From 93fb057ab2384527dbf5e8b1a91cd55c5143a34b Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 12:35:04 -0600 Subject: [PATCH 1/3] feat(runtime-verifier): script-driven proof with video, gitignored + uploaded to per-stage PRs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The runtime-verifier used to drive the app through the haiku-playwright MCP and write screenshots into .haiku/.../proof/ — which was NOT gitignored, so every verification run committed regenerated binary churn into history, and the MCP gave screenshots only (no video). This reshapes proof end to end: - Driver: the web/GUI verifier now writes a SELF-INSTALLED Playwright script (own scratch dir, never the project's deps) that records video + step screenshots. haiku_view boot still returns the URL; the haiku-playwright MCP becomes the fallback when @playwright/test can't be installed. Doctrine + all nine runtime-verifier mandates updated; browser_* tool prose softened to capability language. - Proof is gitignored: ensureWorktreesGitignored → ensureHaikuGitignored seeds the worktree pool + both proof globs idempotently; root .gitignore matches. Engine git-add paths honor .gitignore, so proof stays out of commits and out of dirty_tree_blocking_tick. The SPA still serves it live off disk. - Proof is uploaded to the PR: runtime-verifier joins PR_INTERACTION_ROLES (now in BOTH role classes). Subagent templates grant ADDITIVE scopes (proof-write AND PR-upload). The dispatch builders inject a mode-aware proofTargetPrUrl. GitLab uploads API / GitHub release-asset doctrine in git.md. - Per-stage delivery PR: in discrete / discrete-hybrid mode the engine opens a DRAFT stage PR at stage start (openStageDraftPullRequest, base = intent main), records it in a stage_prs map on intent.md FM, and flips it draft→ready at the gate (instead of opening a second PR). That stage PR is where the stage's proof lands. continuous / autopilot / quick keep the single intent-main draft PR. stage_prs is NOT a tamper-checksummed INTENT_FIELD (like draft_pr_*). Sync: CLAUDE.md concept rows, ARCHITECTURE.md §2, the website architecture map (actors.ts + payload-for.ts). Tests: new stage-pr-and-proof-gitignore.test.mjs (10) + updated verification-doctrine.test.mjs to lock the script/video/upload + additive-scope contract. Full suite 2080 passed / 0 failed; website tsc + build clean. Co-Authored-By: Claude Opus 4.8 (1M context) --- .gitignore | 4 + CLAUDE.md | 6 +- packages/haiku/src/git-worktree.ts | 76 +- .../src/orchestrator/prompts/_shared/index.ts | 2 +- .../intent/review/intent_review/index.ts | 24 +- .../stage/approve/dispatch_approval/index.ts | 36 +- .../src/orchestrator/review-role-classes.ts | 19 +- .../src/orchestrator/workflow/side-effects.ts | 47 + packages/haiku/src/state-tools.ts | 97 +- .../tools/orchestrator/haiku_await_gate.ts | 39 +- .../test/intent-pr-and-stage-handoff.test.mjs | 16 + .../stage-pr-and-proof-gitignore.test.mjs | 310 +++++ .../haiku/test/verification-doctrine.test.mjs | 64 +- plugin/bin/haiku.mjs | 1214 ++++++++--------- .../prompts/_shared/runtime-verification.md | 29 +- .../review/intent_review/subagent.eta.md | 18 +- .../approve/dispatch_approval/subagent.eta.md | 10 + plugin/providers/git.md | 11 + plugin/studios/ARCHITECTURE.md | 2 + .../intent-review-agents/runtime-verifier.md | 2 +- .../draft/review-agents/runtime-verifier.md | 2 +- .../review-agents/runtime-verifier.md | 4 +- .../intent-review-agents/runtime-verifier.md | 2 +- .../design/review-agents/runtime-verifier.md | 2 +- .../content/review-agents/runtime-verifier.md | 8 +- .../intent-review-agents/runtime-verifier.md | 10 +- .../design/review-agents/runtime-verifier.md | 6 +- .../review-agents/runtime-verifier.md | 14 +- .../[slug]/architecture/_data/actors.ts | 2 +- .../[slug]/architecture/_data/payload-for.ts | 2 +- 30 files changed, 1387 insertions(+), 691 deletions(-) create mode 100644 packages/haiku/test/stage-pr-and-proof-gitignore.test.mjs diff --git a/.gitignore b/.gitignore index 0ac2e8731..84857c978 100644 --- a/.gitignore +++ b/.gitignore @@ -69,6 +69,10 @@ terraform.tfvars .haiku/**/write-audit.jsonl # Engine diagnostics (loop-guard log, etc — runtime-only) .haiku/diagnostics/ +# Runtime-verification proof (screenshots/video) + ephemeral Playwright +# driver — regenerated every run, uploaded to the PR, never committed. +.haiku/intents/*/stages/*/proof/ +.haiku/intents/*/proof/ bun.lock plugin/bin/haiku.mjs.map .claude/scheduled_tasks.lock diff --git a/CLAUDE.md b/CLAUDE.md index 9ca728afc..86c13eaba 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -80,6 +80,8 @@ When modifying any component, check if other components need corresponding updat | 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 | +| Per-stage delivery PR (`stage_prs`) | Profiles section / Quality Enforcement | In **discrete / discrete-hybrid** mode the engine opens a per-stage DRAFT PR at stage start (`workflowStartStage` → `openStageDraftPullRequest`, branch `haiku//`, base `haiku//main` — NOT repo default), records it in the `stage_prs: { : { url, status, ready_at } }` map on intent.md FM (`setStagePrField`/`readStagePr`; deliberately NOT in `INTENT_FIELDS`, like `draft_pr_*`), and flips it draft→ready at the stage gate (`haiku_await_gate` external_review block → `markPullRequestReady`, instead of opening a 2nd non-draft PR). That stage PR is where the stage's runtime-verification proof uploads. continuous/autopilot/quick keep one intent-main draft PR (opened at intent_create) and proof uploads there. Idempotent: a stage revisit skips re-open when `stage_prs[stage].url` is set | git-worktree.ts (`openStageDraftPullRequest`), orchestrator/workflow/side-effects.ts (`openStageDraftPrIfDelivery`), tools/orchestrator/haiku_await_gate.ts (gate flip), state-tools.ts (`setStagePrField`/`readStagePr`/`readStagePrs`) | +| Proof gitignore | Quality Enforcement | Runtime-verification proof (`.haiku/intents/*/stages/*/proof/`, `.haiku/intents/*/proof/`, incl. the ephemeral Playwright driver under `proof/.driver/`) is gitignored — regenerated binary churn that bloats history and doesn't travel on merge; the verifier uploads it to the PR and the SPA serves it live off disk. `ensureHaikuGitignored` (was `ensureWorktreesGitignored`) seeds the worktree pool + both proof globs idempotently before any worktree lands; the engine's `git add` paths honor `.gitignore` so nothing more is needed to keep proof out of commits / out of `dirty_tree_blocking_tick` | state-tools.ts (`ensureHaikuGitignored`, `HAIKU_GITIGNORE_PATTERNS`), git-worktree.ts (callers), root `.gitignore` | | 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 | @@ -113,8 +115,8 @@ When modifying any component, check if other components need corresponding updat | View session (MCP) | N/A — implementation | `haiku_view` (open tunneled URL — boot mode spawns the project's dev/start script on an ephemeral port, viewer mode points at the SPA artifact-browser route at `/view/?artifact=&stage=`; mode auto-detects with explicit `mode: "boot"`/`"viewer"` overrides), `haiku_view_close` (explicit shutdown of view session + spawned dev server). Lifecycle: explicit close, 30min TTL, tick-scoped orphan sweep via `killAllOrphanedBootSessions` in `run-tick.ts`. Consumed by any review-agent (or other tool-using agent) that wants to drive a real browser at a rendered artifact or a booted app; per-studio mandate files (e.g. `runtime-verifier.md`) are where studios opt into using it. | view-boot.ts, sessions.ts (`ViewSession`), http/session-routes.ts (`/view/:sessionId`), http/file-serve.ts (extended `/stage-artifacts/:sessionId/*` to allow view sessions). HTML artifacts are never served as renderable `text/html` (FB-21 octet-stream + attachment); the serve layer inlines adjacent local stylesheets (`serveArtifact` in `path-safety.ts` → `inlineAdjacentStylesheets` in `html-inline.ts`, shared with `parser.ts`) and ViewPage fetches the bytes + renders via a sandboxed `srcDoc` iframe (`HtmlRenderer`), so a wireframe authored as `index.html` + `styles.css` styles correctly. Same inliner backs the SPA review surface (StageReview srcDoc). Embedded relative refs (``, `srcset`, CSS `url(…)`) are then rewritten to authed `/stage-artifacts//…?t=` tunnel URLs by `resolveEmbeddedAssetUrls` (haiku-ui `pages/review/shared/inline-asset-urls.ts`, applied in both StageReview + ViewPage) so raster images load inside the srcDoc; inlined-CSS `url(…)` is re-based onto the HTML's dir server-side (`rewriteCssUrls` in `html-inline.ts`) so the client resolver is uniform. `.js`/`.css`/`.svg`/font sub-resources stay octet-stream-blocked (FB-21) — scripts never execute, SVG-as-img / custom fonts degrade to fallbacks. | | Prompts cascade | N/A — implementation | Engine prompt templates (`.eta.md`) live at `plugin/prompts//` (single source of truth, shipped with the plugin). `loadTemplate` in `_load-template.ts` resolves them through a two-tier cascade: project override at `.haiku/prompts//` wins over plugin default at `//`. Build-time `canonicalize-prompt-templates.mjs` esbuild plugin rewrites `loadTemplate(import.meta.url, …)` call sites in the TS builders under `packages/haiku/src/orchestrator/prompts/` to a `"@canon:"` sentinel form — no copy step, the bundle just needs sentinel-form lookups to avoid reading its own `import.meta.url` at runtime. Replaces the older inline-string + copy-to-`plugin/templates/` approach so teams can override engine prompts locally without forking the plugin, and the plugin tree stays the canonical home for prompt bodies. | packages/haiku/src/orchestrator/prompts/_load-template.ts (loader cascade), packages/haiku/scripts/canonicalize-prompt-templates.mjs (build-time sentinel rewrite + existence check), plugin/prompts/ (source of truth), plugin/package.json (`files: [...]` includes `prompts`) | | Observations + reflection | N/A — implementation | Default-on reflection loop. At each stage close, cursor emits `record_observations` so the agent writes a free-form `.haiku/intents//stages//observations.md` capturing out-of-band churn (mandate ambiguity, engine friction, surprises) the FB stream / outputs / iterations don't already show. At intent close, cursor emits `record_reflection` so the agent reads all stage observations + FBs + iterations + outputs and writes a synthesized `.haiku/intents//reflection.md`, lands any override-class findings as project overlays directly under `.haiku/...` (cascade picks them up next tick, no rebuild), and reports engine-class findings via the existing `haiku_report` tool (Sentry pipeline, message prefixed `[autotune engine-class]`). The studio's `reflections/*.md` dimension files are injected into this prompt as analytical lenses (via `readReflectionDefs` in the builder) — they structure the synthesis when present, generic sections otherwise. This automatic phase is the ONLY reflection path: the standalone `/haiku:haiku-reflect` skill + `haiku_reflect` tool were removed (consolidated here). All changes commit with an `autotune:` prefixed message — PR review is the human gate, no FB queue, no tune dashboard. Opt-out via `reflection: false` on intent.md FM (backward-compat: `autotune: false` still respected). | prompts/stage/complete/record_observations, prompts/intent/reflection/record_reflection, cursor.ts (`isReflectionEnabled`) | -| Playwright MCP | N/A — bundled tool | `@playwright/mcp` shipped in `plugin/.mcp.json` under the server name **`haiku-playwright`** (prefixed to avoid colliding with a user's separately-installed Playwright MCP) with `--headless` always-on so dispatch is non-interactive. Available to every agent; per-studio mandates decide how to use it. | plugin/.mcp.json | -| Runtime-verification doctrine | N/A — implementation | Harness-agnostic "verification = runtime observation" doctrine — the cross-harness analog of Claude Code's built-in `verify`/`run` skills (which only reach CC agents). Authored once as the `runtime-verification` shared block (`plugin/prompts/_shared/runtime-verification.md`, registered in `_shared/index.ts`); the dispatch builders inject it via `sharedBlockRef("runtime-verification")` ONLY for `RUNTIME_OBSERVATION_ROLES` (currently `runtime-verifier`) in `dispatch_approval` (post-execute) and `intent_review` (intent-completion). `RUNTIME_OBSERVATION_ROLES` + `PR_INTERACTION_ROLES` were extracted (2026-05-22) to the neutral leaf `orchestrator/review-role-classes.ts` (re-exported from `_shared/index.ts` so the builders' import surface is unchanged) so the workflow role-list builder can read the classification without importing the Eta-laden prompt registry. **The same set gates the PRE-execute review walk: `stageRoleLists` in `workflow/cursor.ts` EXCLUDES `RUNTIME_OBSERVATION_ROLES` from `reviewRoles` (there's no built work to observe before execution) while keeping them in post-execute `approvalRoles`.** Because the doctrine rides the engine-built prompt (not a CC skill), it reaches every harness. Routes by surface — web/GUI → `haiku_view` boot + `haiku-playwright`; CLI → run the command; server → the socket; library → the public export; none → SKIP — and bans tests/typecheck-as-verification. The intent-review subagent's strict no-write scope is carved out to allow `proof/` evidence writes for runtime-observation roles. | orchestrator/review-role-classes.ts (`RUNTIME_OBSERVATION_ROLES`, `PR_INTERACTION_ROLES`), prompts/_shared/index.ts (re-export, `sharedBlockRef`), workflow/cursor.ts (`stageRoleLists` pre-execute exclusion), prompts/stage/approve/dispatch_approval/index.ts, prompts/intent/review/intent_review/index.ts, plugin/prompts/_shared/runtime-verification.md | +| Playwright MCP | N/A — bundled tool | `@playwright/mcp` shipped in `plugin/.mcp.json` under the server name **`haiku-playwright`** (prefixed to avoid colliding with a user's separately-installed Playwright MCP) with `--headless` always-on so dispatch is non-interactive. Available to every agent. As of the script-driver change it is the runtime-verifier's **fallback** driver (when `@playwright/test` can't be self-installed) — the primary web/GUI driver is now a self-installed Playwright script (see Runtime-verification doctrine). Per-studio mandates decide how else to use it. | plugin/.mcp.json | +| Runtime-verification doctrine | N/A — implementation | Harness-agnostic "verification = runtime observation" doctrine — the cross-harness analog of Claude Code's built-in `verify`/`run` skills (which only reach CC agents). Authored once as the `runtime-verification` shared block (`plugin/prompts/_shared/runtime-verification.md`, registered in `_shared/index.ts`); the dispatch builders inject it via `sharedBlockRef("runtime-verification")` ONLY for `RUNTIME_OBSERVATION_ROLES` (currently `runtime-verifier`) in `dispatch_approval` (post-execute) and `intent_review` (intent-completion). `RUNTIME_OBSERVATION_ROLES` + `PR_INTERACTION_ROLES` were extracted (2026-05-22) to the neutral leaf `orchestrator/review-role-classes.ts` (re-exported from `_shared/index.ts` so the builders' import surface is unchanged) so the workflow role-list builder can read the classification without importing the Eta-laden prompt registry. **The same set gates the PRE-execute review walk: `stageRoleLists` in `workflow/cursor.ts` EXCLUDES `RUNTIME_OBSERVATION_ROLES` from `reviewRoles` (there's no built work to observe before execution) while keeping them in post-execute `approvalRoles`.** Because the doctrine rides the engine-built prompt (not a CC skill), it reaches every harness. Routes by surface — web/GUI → `haiku_view` boot returns the URL, then the agent writes a **self-installed Playwright script** (own scratch dir, never the project's deps; `haiku-playwright` MCP is the fallback) that **records video** + step screenshots into the gitignored `proof/`; CLI → run the command; server → the socket; library → the public export; none → SKIP — and bans tests/typecheck-as-verification. `runtime-verifier` is now in BOTH `RUNTIME_OBSERVATION_ROLES` AND `PR_INTERACTION_ROLES` — the dispatch builders compute `prInteraction` + a mode-aware `proofTargetPrUrl` (discrete/discrete-hybrid → the stage's `stage_prs[stage].url`; else the intent-main `draft_pr_url`) and the subagent templates grant ADDITIVE scopes (proof-write AND PR-upload), so the verifier uploads its gitignored proof to the relevant PR (GitLab uploads API / GitHub release-asset). The intent-review + dispatch_approval subagent no-write scopes are carved out for both grants. | orchestrator/review-role-classes.ts (`RUNTIME_OBSERVATION_ROLES`, `PR_INTERACTION_ROLES` — runtime-verifier in both), prompts/_shared/index.ts (re-export, `sharedBlockRef`), workflow/cursor.ts (`stageRoleLists` pre-execute exclusion), prompts/stage/approve/dispatch_approval/index.ts (`prInteraction`, `proofTargetPrUrl`), prompts/intent/review/intent_review/index.ts, plugin/prompts/_shared/runtime-verification.md, plugin/providers/git.md (upload doctrine) | | Project boot recipe | N/A — implementation | `.haiku/boot.md` at the project root — the harness-agnostic analog of `run-skill-generator`. Frontmatter is the machine-readable boot recipe (`command:` single-process, or `processes:` + `primary:` multi-process, plus `cwd`/`env`/`ready_url`/`port_env`); the markdown body is human/agent drive notes the runtime-verifier reads. `readBootRecipe(projectRoot)` in `view-boot.ts` normalizes either form to a `BootProcessSpec[]` group (a single `command:` becomes a one-process group named `app`) so all boots share one supervisor with uniform env/readiness/port handling. `haiku_view` boot precedence: agent-supplied `command`/`processes` → `.haiku/boot.md` recipe → `package.json` dev/start auto-detect. Throws `haiku_view_boot_recipe_invalid` on a structurally-broken recipe; null (auto-detect fallthrough) when absent or notes-only. A process may be marked `service: true` + `requires_tool: docker` to declare a service DEPENDENCY (DB/queue/cache) the app + its quality gates need — `readServiceProcesses(projectRoot)` returns those (the gate runner brings them up before a service-needing gate; see "Environment-blocked quality gates"); a service is never the Playwright `primary`. | view-boot.ts (`readBootRecipe`, `readServiceProcesses`, `BootProcessSpec.env`/`.service`/`.requires_tool`), server/tool-call.ts (haiku_view boot path) | ## H·AI·K·U Terminology (CRITICAL) diff --git a/packages/haiku/src/git-worktree.ts b/packages/haiku/src/git-worktree.ts index 335fb1752..fd068e119 100644 --- a/packages/haiku/src/git-worktree.ts +++ b/packages/haiku/src/git-worktree.ts @@ -37,7 +37,7 @@ import { migrateIntent } from "./orchestrator/migrate-registry.js" // `migrateIntent("0", "4.0.0")` would throw "no migration path." import { hasV3CruftInIntent } from "./orchestrator/migrations/v0-to-v4.js" import { - ensureWorktreesGitignored, + ensureHaikuGitignored, isGitRepo, primaryRepoRoot, } from "./state-tools.js" @@ -1335,6 +1335,74 @@ export function openIntentDraftPullRequest(opts: { return result } +/** Open a DRAFT PR/MR from `haiku//` into the intent's main + * branch (`haiku//main`, NOT the repo mainline). Called once at + * stage start in discrete / discrete-hybrid mode so each stage has a + * place where its proof artifacts land while the work happens. The + * engine flips the draft to ready at the stage gate via + * markPullRequestReady(). + * + * Best-effort: any failure (no git repo, no provider CLI, push or PR + * create error) returns a populated message and lets the caller surface + * it. Stage start never blocks on this. Shape mirrors + * openIntentDraftPullRequest — the only differences are the branch/base + * pair (stage → intent-main) and the default copy. */ +export function openStageDraftPullRequest(opts: { + slug: string + stage: string + title?: string + body?: string +}): OpenIntentMrResult { + const branch = `haiku/${opts.slug}/${opts.stage}` + const base = `haiku/${opts.slug}/main` + const title = + opts.title ?? `H·AI·K·U: ${opts.slug} — stage ${opts.stage}` + const body = + opts.body ?? + `Stage \`${opts.stage}\` of intent \`${opts.slug}\` is in flight. The H·AI·K·U engine opened this PR as a draft so the stage's work — and its runtime-verification proof — can be watched as units land. The engine marks it ready at the stage gate; merging it signals approval.` + + if (!isGitRepo()) { + return { + branch, + base, + message: "Not a git repo — no draft stage PR opened.", + } + } + + const push = pushBranchToOrigin(branch) + const result: OpenIntentMrResult = { + branch, + base, + pushed: push.ok, + pushError: push.ok ? undefined : push.error, + message: "", + } + + if (push.ok) { + const pr = openPullRequest(branch, base, title, body, { draft: true }) + if (pr.ok && pr.url) { + result.createdUrl = pr.url + result.message = `Draft stage PR opened: ${pr.url}` + return result + } + result.prError = pr.error + } + + const compare = buildCompareUrl(branch, base) + if (compare) { + result.compareUrl = compare + result.message = push.ok + ? `Stage branch \`${branch}\` is pushed. The provider CLI didn't create the draft PR (${result.prError ?? "no tool found"}). Click here to open one manually: ${compare}` + : `Failed to push \`${branch}\` (${push.error}). After resolving, open the draft stage PR at: ${compare}` + return result + } + + result.message = push.ok + ? `Pushed \`${branch}\` but no compare URL could be built (origin host not recognised). Open the draft stage PR manually from \`${branch}\` into \`${base}\`.` + : `Failed to push \`${branch}\` (${push.error}) and no compare URL could be built.` + return result +} + /** Flip a draft PR/MR to "ready for review" / remove draft status. * Detects provider from URL hostname: `gh pr ready ` or * `glab mr update --ready`. Best-effort; the caller logs failures @@ -3747,7 +3815,7 @@ export function createUnitWorktree( // `createFixChainWorktree`. ensureIntentGitAttributes(slug) // Guarantee the worktree pool is ignored before any worktree lands in it. - ensureWorktreesGitignored() + ensureHaikuGitignored() const unitBranch = `haiku/${slug}/${unit}` const worktreeBase = join(primaryRepoRoot(), ".haiku", "worktrees", slug) const worktreePath = join(worktreeBase, unit) @@ -4140,7 +4208,7 @@ export function createDiscoveryWorktree( // `createFixChainWorktree`. ensureIntentGitAttributes(slug) // Guarantee the worktree pool is ignored before any worktree lands in it. - ensureWorktreesGitignored() + ensureHaikuGitignored() const discBranch = discoveryBranchName(slug, stage, template) const worktreePath = discoveryWorktreePath(slug, stage, template) const worktreeBase = join(primaryRepoRoot(), ".haiku", "worktrees", slug) @@ -4435,7 +4503,7 @@ export function createFixChainWorktree( // JSONL appends still trip the integrator cap. ensureIntentGitAttributes(slug) // Guarantee the worktree pool is ignored before any worktree lands in it. - ensureWorktreesGitignored() + ensureHaikuGitignored() const fixBranch = fixChainBranchName(slug, scope, feedbackId) const worktreePath = fixChainWorktreePath(slug, scope, feedbackId) const worktreeBase = join(primaryRepoRoot(), ".haiku", "worktrees", slug) diff --git a/packages/haiku/src/orchestrator/prompts/_shared/index.ts b/packages/haiku/src/orchestrator/prompts/_shared/index.ts index 81020c30e..4f0e9d127 100644 --- a/packages/haiku/src/orchestrator/prompts/_shared/index.ts +++ b/packages/haiku/src/orchestrator/prompts/_shared/index.ts @@ -139,7 +139,7 @@ const REGISTRY: Record = { content: () => runtimeVerificationBlock(), 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 → `haiku_view` boot + `haiku-playwright`; CLI → run the command; server → the socket; library → 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.", + "that verification is runtime observation (NOT running tests/typecheck); how to find the change's surface and route to a handle (web/GUI → `haiku_view` boot + a self-installed Playwright script that records video, with the `haiku-playwright` MCP as fallback; CLI → run the command; server → the socket; library → the public export); the `.haiku/boot.md` project boot recipe; how to drive the smallest path, probe around the change, capture video+screenshot evidence under the gitignored `proof/` and upload it to the change request (GitLab uploads API / GitHub release-asset); and the PASS/FAIL/BLOCKED/SKIP verdict that drives sign-off vs. feedback.", }, "service-dependencies": { content: () => serviceDependenciesBlock(), diff --git a/packages/haiku/src/orchestrator/prompts/intent/review/intent_review/index.ts b/packages/haiku/src/orchestrator/prompts/intent/review/intent_review/index.ts index 20a94a412..1f58a59ad 100644 --- a/packages/haiku/src/orchestrator/prompts/intent/review/intent_review/index.ts +++ b/packages/haiku/src/orchestrator/prompts/intent/review/intent_review/index.ts @@ -18,7 +18,10 @@ // self-stamp (`haiku_review_stamp`'s note); the pre-tick drain signs each // pending role (or re-dispatches the ones that filed findings). +import { existsSync, readFileSync } from "node:fs" +import { join } from "node:path" import { Eta } from "eta" +import { intentDir, parseFrontmatter } from "../../../../../state-tools.js" import { readReviewAgentBody, readStudioReviewAgentPaths, @@ -56,6 +59,19 @@ const eta = new Eta({ autoEscape: false, useWith: true }) const TEMPLATE = loadTemplate(import.meta.url) const SUBAGENT_TEMPLATE = loadTemplate(import.meta.url, "subagent.eta.md") +/** The intent-main draft PR URL off intent.md FM, or empty string when + * absent (no provider CLI / not a git repo). Proof upload is skipped on + * empty — the captures still land on disk and the SPA serves them live. */ +function intentDraftPrUrl(slug: string): string { + const intentFile = join(intentDir(slug), "intent.md") + if (!existsSync(intentFile)) return "" + const fm = parseFrontmatter(readFileSync(intentFile, "utf8")).data as Record< + string, + unknown + > + return (fm.draft_pr_url as string) || "" +} + /** Fallback mandate for a role that's neither an engine built-in nor a * configured studio agent — reached only on registry drift (a test locks * the cursor's `intentRoles` ↔ engine registry sync). Spawned as a normal @@ -115,6 +131,11 @@ function buildRoleBlock( } } + const prInteraction = PR_INTERACTION_ROLES.has(role) + // At intent completion the whole intent is merged onto intent main, so + // proof uploads always target the single intent-main draft PR (there is + // no per-stage PR at this scope). + const proofTargetPrUrl = prInteraction ? intentDraftPrUrl(slug) : "" const promptBody = mandateRef ? eta.renderString(SUBAGENT_TEMPLATE, { slug, @@ -123,7 +144,8 @@ function buildRoleBlock( doctrineRef: RUNTIME_OBSERVATION_ROLES.has(role) ? sharedBlockRef("runtime-verification") : "", - prInteraction: PR_INTERACTION_ROLES.has(role), + prInteraction, + proofTargetPrUrl, existingFeedback: buildExistingFeedbackBlock(slug, ""), decisions: buildDecisionsBlock(slug), }) diff --git a/packages/haiku/src/orchestrator/prompts/stage/approve/dispatch_approval/index.ts b/packages/haiku/src/orchestrator/prompts/stage/approve/dispatch_approval/index.ts index c8e933526..df11ebc8c 100644 --- a/packages/haiku/src/orchestrator/prompts/stage/approve/dispatch_approval/index.ts +++ b/packages/haiku/src/orchestrator/prompts/stage/approve/dispatch_approval/index.ts @@ -18,7 +18,12 @@ import { existsSync, readFileSync } from "node:fs" import { join } from "node:path" import { Eta } from "eta" import matter from "gray-matter" -import { stageDir } from "../../../../../state-tools.js" +import { + intentDir, + parseFrontmatter, + readStagePr, + stageDir, +} from "../../../../../state-tools.js" import { readReviewAgentBody, resolveReviewAgentPath, @@ -33,11 +38,34 @@ import { } from "../../../_helpers.js" import { loadTemplate } from "../../../_load-template.js" import { + PR_INTERACTION_ROLES, RUNTIME_OBSERVATION_ROLES, sharedBlockRef, } from "../../../_shared/index.js" import { definePromptBuilder } from "../../../define.js" +const PER_STAGE_PR_MODES = new Set(["discrete", "discrete-hybrid"]) + +/** The PR/MR a runtime-verifier uploads this stage's proof to. In + * per-stage delivery modes that's the stage's own draft PR (base = + * intent main); otherwise the single intent-main draft PR. Empty string + * when no PR exists (no provider CLI / not a git repo) — the proof still + * lands on disk and the SPA serves it live; upload is just skipped. */ +function resolveProofTargetPrUrl(slug: string, stage: string): string { + const intentFile = join(intentDir(slug), "intent.md") + if (!existsSync(intentFile)) return "" + const fm = parseFrontmatter(readFileSync(intentFile, "utf8")).data as Record< + string, + unknown + > + const mode = (fm.mode as string) || "" + if (stage && PER_STAGE_PR_MODES.has(mode)) { + const stagePr = readStagePr(slug, stage)?.url + if (stagePr) return stagePr + } + return (fm.draft_pr_url as string) || "" +} + const eta = new Eta({ autoEscape: false, useWith: true }) const TEMPLATE = loadTemplate(import.meta.url) const SUBAGENT_TEMPLATE = loadTemplate(import.meta.url, "subagent.eta.md") @@ -128,6 +156,10 @@ function buildRoleBlock(opts: { const doctrineRef = RUNTIME_OBSERVATION_ROLES.has(role) ? sharedBlockRef("runtime-verification") : "" + const prInteraction = PR_INTERACTION_ROLES.has(role) + const proofTargetPrUrl = prInteraction + ? resolveProofTargetPrUrl(slug, stage) + : "" const subagentPrompt = eta.renderString(SUBAGENT_TEMPLATE, { slug, @@ -138,6 +170,8 @@ function buildRoleBlock(opts: { units, outputPaths, doctrineRef, + prInteraction, + proofTargetPrUrl, existingFeedback: buildExistingFeedbackBlock(slug, stage), decisions: buildDecisionsBlock(slug), }) diff --git a/packages/haiku/src/orchestrator/review-role-classes.ts b/packages/haiku/src/orchestrator/review-role-classes.ts index d7551e4b4..5d0a47ded 100644 --- a/packages/haiku/src/orchestrator/review-role-classes.ts +++ b/packages/haiku/src/orchestrator/review-role-classes.ts @@ -18,13 +18,20 @@ * `runtime-verification` doctrine for these roles and let them write * `proof/` evidence captures (but never source). * - * - PR_INTERACTION_ROLES audit the delivery PR on the remote (CI status + - * review conversation) rather than local artifacts or the running app. - * They may interact with the PR via the VCS CLI (`gh`/`glab`) — read - * checks, read/post/resolve review threads — but still MUST NOT edit + * - PR_INTERACTION_ROLES interact with the change request on the remote via + * the VCS CLI (`gh`/`glab`) — read checks, read/post/resolve review + * threads, and upload assets to the PR/MR body. They still MUST NOT edit * source/specs/units; code fixes flow through `haiku_feedback` and the * studio fix-hat loop. * + * A role may be in BOTH sets — `runtime-verifier` is. It drives the live work + * AND captures proof (runtime-observation), and that proof is regenerated + * binary churn that doesn't belong in git, so it uploads the captures to the + * relevant PR/MR (PR-interaction). The dispatch builders + subagent templates + * treat the two scope grants as ADDITIVE — a both-sets role gets the + * proof-write carve-out AND the PR-interaction carve-out, not one or the + * other. + * * To make a NEW agent post-execute-only (no pre-execute spec audit), add its * role name to `RUNTIME_OBSERVATION_ROLES` — that one edit drops it from the * review walk AND grants it the runtime doctrine + proof-write carve-out. @@ -35,4 +42,8 @@ export const RUNTIME_OBSERVATION_ROLES: ReadonlySet = new Set([ export const PR_INTERACTION_ROLES: ReadonlySet = new Set([ "delivery-verifier", + // Uploads its runtime-verification proof (gitignored binary churn) to the + // stage/intent PR so it's durable + reviewable off-git. Also in + // RUNTIME_OBSERVATION_ROLES — the scopes are additive (see header). + "runtime-verifier", ]) diff --git a/packages/haiku/src/orchestrator/workflow/side-effects.ts b/packages/haiku/src/orchestrator/workflow/side-effects.ts index def98f5e9..7f7b3a321 100644 --- a/packages/haiku/src/orchestrator/workflow/side-effects.ts +++ b/packages/haiku/src/orchestrator/workflow/side-effects.ts @@ -39,6 +39,7 @@ import { createIntentBranch, createStageBranch, deleteStageBranch, + detectPrTool, ensureOnIntentMain, ensureOnStageBranch, finalizeIntentBranches, @@ -49,6 +50,7 @@ import { markPullRequestReady, mergeStageBranchForward, mergeStageBranchIntoMain, + openStageDraftPullRequest, pushStageBranch, } from "../../git-worktree.js" import { withIntentMainLock } from "../../locks.js" @@ -62,7 +64,9 @@ import { intentDir, isGitRepo, parseFrontmatter, + readStagePr, setFrontmatterField, + setStagePrField, timestamp, } from "../../state-tools.js" import { emitTelemetry } from "../../telemetry.js" @@ -97,6 +101,44 @@ function readFrontmatter(filePath: string): Record { return data } +/** Modes whose stages each get their own draft PR (base = intent main). + * In discrete delivery the per-stage PR is where that stage's work — and + * its runtime-verification proof — lands; merging it is the approval + * signal. continuous / autopilot / quick keep everything on the single + * intent-main draft PR opened at intent_create. */ +const PER_STAGE_PR_MODES = new Set(["discrete", "discrete-hybrid"]) + +/** Best-effort: open a DRAFT PR for this stage at stage start, in the + * modes that use per-stage delivery. Mirrors the intent-create draft-PR + * contract — gated on a git repo with a provider CLI, never throws, + * stamps the `stage_prs` map so the gate can flip it ready later and the + * dispatch builder can hand the verifier the right upload target. + * Idempotent: a revisit re-enters workflowStartStage, so skip when this + * stage already has a recorded PR URL. */ +function openStageDraftPrIfDelivery(slug: string, stage: string): void { + const intentFile = join(intentDir(slug), "intent.md") + const mode = (readFrontmatter(intentFile).mode as string) || "" + if (!PER_STAGE_PR_MODES.has(mode)) return + if (!isGitRepo() || detectPrTool() === null) return + if (readStagePr(slug, stage)?.url) return + try { + const draft = openStageDraftPullRequest({ slug, stage }) + if (draft.createdUrl) { + setStagePrField(slug, stage, "url", draft.createdUrl) + setStagePrField(slug, stage, "status", "draft") + } else { + setStagePrField(slug, stage, "status", "failed") + console.error( + `[haiku] stage draft PR for ${slug}/${stage} not opened: ${draft.message}`, + ) + } + } catch (err) { + console.error( + `[haiku] stage draft PR for ${slug}/${stage} threw: ${err instanceof Error ? err.message : String(err)}`, + ) + } +} + /** Find the previous completed stage for branch chaining. */ function findPreviousStage(slug: string, stage: string): string | undefined { const intentFile = join(intentDir(slug), "intent.md") @@ -216,6 +258,11 @@ export function workflowStartStage(slug: string, stage: string): void { cleanupOrphanedStageBranches(slug) + // Per-stage delivery PR (discrete / discrete-hybrid): open a draft for + // this stage now that its branch exists, so proof + work land on it. + // Stamps the stage_prs map; the gitCommitState below commits the stamp. + openStageDraftPrIfDelivery(slug, stage) + emitTelemetry("haiku.stage.started", { intent: slug, stage }) gitCommitState(`haiku: start stage ${stage}`) syncStageToOrigin(slug, stage) diff --git a/packages/haiku/src/state-tools.ts b/packages/haiku/src/state-tools.ts index 1c7ab1a14..8546a9b56 100644 --- a/packages/haiku/src/state-tools.ts +++ b/packages/haiku/src/state-tools.ts @@ -4476,6 +4476,56 @@ export function setFrontmatterField( ) } +/** One stage's PR/MR record inside the `stage_prs` map on intent.md FM. + * Per-stage (NOT a flat `stage_pr_url`) because discrete mode opens one + * draft PR per stage over the intent's life, and a flat field would + * clobber across stages. `status` mirrors the intent-main draft lifecycle + * ("draft" → "ready" | "failed"). Engine-written via setStagePrField; + * deliberately NOT in INTENT_FIELDS (same as draft_pr_*) so it's not + * tamper-checksummed — sealIntentState re-seals it cleanly. */ +export interface StagePrRecord { + url?: string + status?: "draft" | "ready" | "failed" + ready_at?: string +} + +/** Read the whole `stage_prs` map (stage → record) off intent.md FM. + * Empty object when absent or malformed. */ +export function readStagePrs(slug: string): Record { + const intentFile = join(intentDir(slug), "intent.md") + if (!existsSync(intentFile)) return {} + const fm = parseFrontmatter(readFileSync(intentFile, "utf8")).data as Record< + string, + unknown + > + const map = fm.stage_prs + if (!map || typeof map !== "object" || Array.isArray(map)) return {} + return map as Record +} + +/** Read one stage's PR record, or null if the stage has none. */ +export function readStagePr(slug: string, stage: string): StagePrRecord | null { + return readStagePrs(slug)[stage] ?? null +} + +/** Merge one field into a stage's record inside the `stage_prs` map and + * write the whole map back. Read-modify-write of the nested map (not a + * whole-map clobber by callers) so two fields set in sequence don't lose + * each other. setFrontmatterField already serializes nested objects. */ +export function setStagePrField( + slug: string, + stage: string, + field: keyof StagePrRecord, + value: string, +): void { + const intentFile = join(intentDir(slug), "intent.md") + if (!existsSync(intentFile)) return + const map = readStagePrs(slug) + const record = { ...(map[stage] ?? {}), [field]: value } + const updated = { ...map, [stage]: record } + setFrontmatterField(intentFile, "stage_prs", updated) +} + /** Remove one or more frontmatter fields from a markdown file. Unlike * setFrontmatterField (which writes a value), this drops the key * entirely so downstream readers don't see a stale empty/null. No-op @@ -4596,11 +4646,30 @@ export function timestamp(): string { * unrelated staged work — and crucially never lands inside a state commit or a * merge-sensitive window. Best-effort — never throws. */ -export function ensureWorktreesGitignored(): void { +/** The engine-managed `.gitignore` entries, each with the slash-free + * variant we also accept so a hand-ignored repo isn't double-written. + * - worktree pool: linked git worktrees, never commit (gitlink leak). + * - proof dirs: runtime-verification evidence (screenshots, video) is + * regenerated every run — binary churn that has no business in git + * history. The verifier uploads it to the PR instead; the SPA reads + * it live off disk. The ephemeral Playwright driver lives under + * `proof/.driver/`, so the proof globs cover it too. */ +const HAIKU_GITIGNORE_PATTERNS: ReadonlyArray<{ + entry: string + accept: ReadonlyArray +}> = [ + { entry: ".haiku/worktrees/", accept: [".haiku/worktrees"] }, + { + entry: ".haiku/intents/*/stages/*/proof/", + accept: [".haiku/intents/*/stages/*/proof"], + }, + { entry: ".haiku/intents/*/proof/", accept: [".haiku/intents/*/proof"] }, +] + +export function ensureHaikuGitignored(): void { if (!isGitRepo()) return try { const gitignorePath = join(primaryRepoRoot(), ".gitignore") - const entry = ".haiku/worktrees/" let existing = "" try { if (existsSync(gitignorePath)) @@ -4608,20 +4677,22 @@ export function ensureWorktreesGitignored(): void { } catch { /* unreadable — fall through and (re)write */ } - // Accept the slash-free variant too so we don't double-write a repo - // that ignored `.haiku/worktrees` by hand. - const present = existing + const lines = existing .split("\n") .map((l) => l.trim()) - .some((l) => l === entry || l === ".haiku/worktrees") - if (present) return + .filter(Boolean) + const lineSet = new Set(lines) + const missing = HAIKU_GITIGNORE_PATTERNS.filter( + (p) => !lineSet.has(p.entry) && !p.accept.some((a) => lineSet.has(a)), + ).map((p) => p.entry) + if (missing.length === 0) return const banner = - "# H·AI·K·U engine worktree pool — each entry is a linked git worktree; never commit these." + "# H·AI·K·U engine-managed: worktree pool (linked git worktrees) + runtime-verification proof (regenerated binary churn — uploaded to the PR, never committed)." const prefix = existing && !existing.endsWith("\n") ? "\n" : "" const separator = existing ? "\n" : "" writeFileSync( gitignorePath, - `${existing}${prefix}${separator}${banner}\n${entry}\n`, + `${existing}${prefix}${separator}${banner}\n${missing.join("\n")}\n`, ) execFileSync("git", ["add", "--", ".gitignore"], { encoding: "utf8", @@ -4632,14 +4703,14 @@ export function ensureWorktreesGitignored(): void { [ "commit", "-m", - "chore(haiku): gitignore engine worktree pool (.haiku/worktrees/)", + `chore(haiku): gitignore engine artifacts (${missing.join(", ")})`, "--", ".gitignore", ], { encoding: "utf8", stdio: "pipe" }, ) } catch { - /* non-fatal — worst case the user sees the worktree pool as untracked */ + /* non-fatal — worst case the user sees the pool/proof as untracked */ } } @@ -4655,7 +4726,7 @@ export function ensureWorktreesGitignored(): void { * * Defense in depth: * 1. The repo `.gitignore` excludes the worktree pool (written by - * `ensureWorktreesGitignored()` before any worktree is created), so the + * `ensureHaikuGitignored()` before any worktree is created), so the * bare `git add` below skips it natively. We do NOT use a * `:(exclude).haiku/worktrees/**` pathspec: once the dir is ignored, that * pathspec makes `git add` exit non-zero on git's ignored-path guard, @@ -4728,7 +4799,7 @@ export function gitCommitAll(message: string): { try { // Stage every dirty path with `git add -A`. The worktree pool // (`.haiku/worktrees/**`, linked-worktree trees) is kept out by the - // repo `.gitignore` — `ensureWorktreesGitignored()` writes that entry + // repo `.gitignore` — `ensureHaikuGitignored()` writes that entry // before any worktree is ever created, so a bare add skips it // natively. We deliberately do NOT pass a `:(exclude).haiku/worktrees/**` // pathspec: once the dir is ignored, combining that exclude with the diff --git a/packages/haiku/src/tools/orchestrator/haiku_await_gate.ts b/packages/haiku/src/tools/orchestrator/haiku_await_gate.ts index f56cfc12e..306217ed3 100644 --- a/packages/haiku/src/tools/orchestrator/haiku_await_gate.ts +++ b/packages/haiku/src/tools/orchestrator/haiku_await_gate.ts @@ -76,8 +76,11 @@ import { intentDir, isGitRepo, parseFrontmatter, + readStagePr, setFrontmatterField, + setStagePrField, syncSessionMetadata, + timestamp, } from "../../state-tools.js" import { defineTool } from "../define.js" import { withAnnouncement } from "./_announce.js" @@ -576,7 +579,41 @@ export default defineTool({ // the provider-specific compare URL so the user can open // the MR in one click. let externalReviewMessage: string - if (isGitRepo()) { + const existingStagePr = readStagePr(slug, stage) + if (isGitRepo() && existingStagePr?.url) { + // Per-stage delivery (discrete / discrete-hybrid): a DRAFT + // stage PR was already opened at stage start. Flip it to + // ready instead of opening a SECOND, non-draft PR. The + // merge is still the approval signal (gate.ts reconciles + // on branch-merged-into-intent-main). + const stagePrUrl = existingStagePr.url + const { markPullRequestReady } = await import( + "../../git-worktree.js" + ) + const ready = markPullRequestReady(stagePrUrl) + try { + const intentMd = join(intentDir(slug), "intent.md") + setFrontmatterField(intentMd, "external_review_url", stagePrUrl) + } catch { + /* non-fatal — agent can still pass via run_next */ + } + if (ready.ok) { + setStagePrField(slug, stage, "status", "ready") + setStagePrField(slug, stage, "ready_at", timestamp()) + externalReviewMessage = withAnnouncement( + `The user routed stage "${stage}" to external review. The engine flipped the stage's draft PR to ready: ${stagePrUrl}`, + `Tell the user: "The stage PR at ${stagePrUrl} is ready for review — merge it when you're satisfied. Run /haiku:haiku-pickup after the merge to continue." It targets \`haiku/${slug}/main\` so the engine detects the merge.`, + ) + } else { + console.error( + `[haiku] flip-to-ready of stage PR ${stagePrUrl} failed: ${ready.error}`, + ) + externalReviewMessage = withAnnouncement( + `The user routed stage "${stage}" to external review. The stage's draft PR is at ${stagePrUrl}.`, + `The engine couldn't flip the draft to ready (${ready.error ?? "unknown"}). Tell the user to mark ${stagePrUrl} ready and merge it — it targets \`haiku/${slug}/main\` so the merge signal lands correctly. Run /haiku:haiku-pickup after the merge.`, + ) + } + } else if (isGitRepo()) { const { openStagePullRequest } = await import("../../git-worktree.js") const opened = openStagePullRequest({ slug, stage }) if (opened.createdUrl) { diff --git a/packages/haiku/test/intent-pr-and-stage-handoff.test.mjs b/packages/haiku/test/intent-pr-and-stage-handoff.test.mjs index e044bd854..2599e3c26 100644 --- a/packages/haiku/test/intent-pr-and-stage-handoff.test.mjs +++ b/packages/haiku/test/intent-pr-and-stage-handoff.test.mjs @@ -27,6 +27,7 @@ const { branchAheadOfOrigin, markPullRequestReady, openIntentDraftPullRequest, + openStageDraftPullRequest, pushStageBranch, } = await import("../src/git-worktree.ts") const { _resetIsGitRepoForTests } = await import("../src/state/shared.ts") @@ -99,6 +100,21 @@ test("no-git-repo path returns benign message, no exception", () => { rmSync(dir, { recursive: true, force: true }) }) +console.log("\n=== openStageDraftPullRequest ===") + +test("no-git-repo path returns benign message, correct stage→intent-main branch pair", () => { + const dir = makeNonRepo() + withCwd(dir, () => { + const r = openStageDraftPullRequest({ slug: "test-intent", stage: "design" }) + // Stage branch → intent main (NOT repo default). + assert.strictEqual(r.branch, "haiku/test-intent/design") + assert.strictEqual(r.base, "haiku/test-intent/main") + assert.match(r.message, /Not a git repo/i) + assert.strictEqual(r.createdUrl, undefined) + }) + rmSync(dir, { recursive: true, force: true }) +}) + console.log("\n=== markPullRequestReady ===") test("empty url returns benign error", () => { diff --git a/packages/haiku/test/stage-pr-and-proof-gitignore.test.mjs b/packages/haiku/test/stage-pr-and-proof-gitignore.test.mjs new file mode 100644 index 000000000..358a52fb4 --- /dev/null +++ b/packages/haiku/test/stage-pr-and-proof-gitignore.test.mjs @@ -0,0 +1,310 @@ +#!/usr/bin/env npx tsx +// stage-pr-and-proof-gitignore.test.mjs — per-stage delivery PR + proof +// gitignore + verifier proof-upload wiring. +// +// Covers the engine half of "script-driven proof, gitignored artifacts, +// PR-uploaded evidence, per-stage draft PRs": +// - runtime-verifier is in BOTH role-classes (additive scope grants) +// - the stage_prs map round-trips on intent.md FM and is NOT a tamper field +// - ensureHaikuGitignored seeds worktrees + proof patterns idempotently +// - dispatch_approval hands a runtime-verifier the mode-aware proof +// upload target (discrete → stage PR; continuous → intent-main PR) +// +// The gh/glab happy path isn't shimmed (no suite precedent) — the +// no-CLI / FM / classification paths are what wedge a real user. +// +// All engine imports are hoisted to top-level await so every test body +// stays fully synchronous (the builder is sync once imported); that +// keeps the manual passed/failed counter honest. + +import assert from "node:assert" +import { execFileSync } from "node:child_process" +import { + mkdirSync, + mkdtempSync, + readFileSync, + rmSync, + writeFileSync, +} from "node:fs" +import { tmpdir } from "node:os" +import { dirname, join, resolve } from "node:path" +import { fileURLToPath } from "node:url" + +const __dirname = dirname(fileURLToPath(import.meta.url)) +const REPO_ROOT = resolve(__dirname, "..", "..", "..") +process.env.CLAUDE_PLUGIN_ROOT = join(REPO_ROOT, "plugin") +process.env.HAIKU_PROJECTS_ROOT = mkdtempSync(join(tmpdir(), "haiku-stagepr-pr-")) + +const SRC = new URL("../src/", import.meta.url).pathname +const { _resetIsGitRepoForTests } = await import(`${SRC}state/shared.ts`) +const { RUNTIME_OBSERVATION_ROLES, PR_INTERACTION_ROLES } = await import( + `${SRC}orchestrator/review-role-classes.ts` +) +const { setStagePrField, readStagePr, readStagePrs, ensureHaikuGitignored } = + await import(`${SRC}state-tools.ts`) +const { INTENT_FIELDS } = await import(`${SRC}workflow-fields.ts`) +const { actionPromptBuilders } = await import(`${SRC}orchestrator/prompts/index.ts`) + +let passed = 0 +let failed = 0 +function test(name, fn) { + _resetIsGitRepoForTests() + try { + fn() + passed++ + console.log(` ✓ ${name}`) + } catch (err) { + failed++ + console.log(` ✗ ${name}`) + console.log(` ${err.message}`) + if (err.stack) + console.log(` ${err.stack.split("\n").slice(1, 4).join("\n ")}`) + } +} + +function withCwd(dir, fn) { + const prev = process.cwd() + process.chdir(dir) + try { + return fn() + } finally { + process.chdir(prev) + } +} + +function makeRepo() { + const dir = mkdtempSync(join(tmpdir(), "haiku-stagepr-")) + execFileSync("git", ["init", "--initial-branch=main"], { + cwd: dir, + stdio: "pipe", + }) + execFileSync("git", ["config", "user.email", "t@e.com"], { + cwd: dir, + stdio: "pipe", + }) + execFileSync("git", ["config", "user.name", "t"], { cwd: dir, stdio: "pipe" }) + writeFileSync(join(dir, "README.md"), "# test\n") + execFileSync("git", ["add", "."], { cwd: dir, stdio: "pipe" }) + execFileSync("git", ["commit", "-m", "init"], { cwd: dir, stdio: "pipe" }) + return dir +} + +/** Lay down `.haiku/intents//intent.md` with the given frontmatter. */ +function seedIntent(repoDir, slug, fm) { + const iDir = join(repoDir, ".haiku", "intents", slug) + mkdirSync(iDir, { recursive: true }) + const lines = Object.entries(fm).map(([k, v]) => + typeof v === "string" ? `${k}: ${v}` : `${k}: ${JSON.stringify(v)}`, + ) + writeFileSync( + join(iDir, "intent.md"), + `---\n${lines.join("\n")}\n---\n\n# ${slug}\n`, + ) + return iDir +} + +function gitignoreLines(repo) { + try { + return readFileSync(join(repo, ".gitignore"), "utf8") + } catch { + return "" + } +} + +/** Build a dispatch_approval prompt for runtime-verifier in `repo` and + * return the file-backed subagent body. Synchronous — builder is sync. */ +function approvalBodyFor(repo, slug, stage) { + const builder = actionPromptBuilders.get("dispatch_approval") + return withCwd(repo, () => { + const out = builder({ + slug, + studio: "software", + action: { + kind: "dispatch_approval", + stage, + role: "runtime-verifier", + units: ["unit-01-foo"], + }, + }) + const m = out.match(/prompt_file="([^"]+)"/) + assert.ok(m, "dispatch_approval must emit a file-backed subagent block") + return readFileSync(m[1], "utf8") + }) +} + +console.log("=== role classification ===") + +test("runtime-verifier is in BOTH runtime-observation AND pr-interaction sets", () => { + assert.ok( + RUNTIME_OBSERVATION_ROLES.has("runtime-verifier"), + "runtime-verifier drives the live work (observation)", + ) + assert.ok( + PR_INTERACTION_ROLES.has("runtime-verifier"), + "runtime-verifier also uploads its proof to the PR (interaction)", + ) + assert.ok( + PR_INTERACTION_ROLES.has("delivery-verifier"), + "delivery-verifier stays a PR-interaction role", + ) + assert.ok( + !RUNTIME_OBSERVATION_ROLES.has("delivery-verifier"), + "delivery-verifier is NOT a runtime-observation role", + ) +}) + +console.log("\n=== stage_prs map on intent.md FM ===") + +test("setStagePrField → readStagePr round-trips one stage record", () => { + const repo = makeRepo() + withCwd(repo, () => { + seedIntent(repo, "demo", { studio: "software", mode: "discrete" }) + setStagePrField("demo", "design", "url", "https://github.com/o/r/pull/7") + setStagePrField("demo", "design", "status", "draft") + const rec = readStagePr("demo", "design") + assert.strictEqual(rec.url, "https://github.com/o/r/pull/7") + assert.strictEqual(rec.status, "draft") + }) + rmSync(repo, { recursive: true, force: true }) +}) + +test("two stages do not clobber each other in the map", () => { + const repo = makeRepo() + withCwd(repo, () => { + seedIntent(repo, "demo", { studio: "software", mode: "discrete" }) + setStagePrField("demo", "design", "url", "https://x/pull/1") + setStagePrField("demo", "development", "url", "https://x/pull/2") + const map = readStagePrs("demo") + assert.strictEqual(map.design.url, "https://x/pull/1") + assert.strictEqual(map.development.url, "https://x/pull/2") + }) + rmSync(repo, { recursive: true, force: true }) +}) + +test("readStagePr returns null for a stage with no PR", () => { + const repo = makeRepo() + withCwd(repo, () => { + seedIntent(repo, "demo", { studio: "software", mode: "discrete" }) + assert.strictEqual(readStagePr("demo", "design"), null) + }) + rmSync(repo, { recursive: true, force: true }) +}) + +test("stage_prs is NOT a tamper-checksummed INTENT_FIELD", () => { + assert.ok( + !INTENT_FIELDS.includes("stage_prs"), + "stage_prs must stay out of INTENT_FIELDS (engine-written, like draft_pr_*)", + ) +}) + +console.log("\n=== ensureHaikuGitignored ===") + +test("fresh repo gets worktree pool + both proof globs", () => { + const repo = makeRepo() + withCwd(repo, () => { + ensureHaikuGitignored() + const gi = gitignoreLines(repo) + assert.match(gi, /\.haiku\/worktrees\//, "worktree pool ignored") + assert.match( + gi, + /\.haiku\/intents\/\*\/stages\/\*\/proof\//, + "per-stage proof ignored", + ) + assert.match(gi, /\.haiku\/intents\/\*\/proof\//, "intent proof ignored") + }) + rmSync(repo, { recursive: true, force: true }) +}) + +test("idempotent — a second call adds nothing and makes no new commit", () => { + const repo = makeRepo() + withCwd(repo, () => { + ensureHaikuGitignored() + const headAfterFirst = execFileSync("git", ["rev-parse", "HEAD"], { + cwd: repo, + encoding: "utf8", + }).trim() + const giAfterFirst = gitignoreLines(repo) + ensureHaikuGitignored() + const headAfterSecond = execFileSync("git", ["rev-parse", "HEAD"], { + cwd: repo, + encoding: "utf8", + }).trim() + assert.strictEqual( + headAfterSecond, + headAfterFirst, + "second call must not create a commit", + ) + assert.strictEqual( + gitignoreLines(repo), + giAfterFirst, + "second call must not rewrite .gitignore", + ) + }) + rmSync(repo, { recursive: true, force: true }) +}) + +test("pre-existing worktrees entry → only the proof globs get added", () => { + const repo = makeRepo() + withCwd(repo, () => { + writeFileSync(join(repo, ".gitignore"), "node_modules/\n.haiku/worktrees/\n") + execFileSync("git", ["add", ".gitignore"], { cwd: repo, stdio: "pipe" }) + execFileSync("git", ["commit", "-m", "pre"], { cwd: repo, stdio: "pipe" }) + ensureHaikuGitignored() + const gi = gitignoreLines(repo) + const worktreeCount = gi + .split("\n") + .filter((l) => l.trim() === ".haiku/worktrees/").length + assert.strictEqual(worktreeCount, 1, "worktrees entry not duplicated") + assert.match(gi, /\.haiku\/intents\/\*\/proof\//, "proof globs added") + }) + rmSync(repo, { recursive: true, force: true }) +}) + +console.log("\n=== mode-aware proof upload target (dispatch_approval) ===") + +test("discrete mode → upload target is the stage PR", () => { + const repo = makeRepo() + seedIntent(repo, "demo", { + studio: "software", + mode: "discrete", + draft_pr_url: "https://github.com/o/r/pull/1", + stage_prs: { development: { url: "https://github.com/o/r/pull/9" } }, + }) + const body = approvalBodyFor(repo, "demo", "development") + assert.ok( + body.includes("PR/MR interaction"), + "runtime-verifier gets the PR-interaction block", + ) + assert.ok( + body.includes("https://github.com/o/r/pull/9"), + "discrete proof target is the stage PR, not the intent-main PR", + ) + assert.ok( + !body.includes("pull/1"), + "the intent-main draft PR is NOT the discrete target", + ) + rmSync(repo, { recursive: true, force: true }) +}) + +test("continuous mode → upload target is the intent-main draft PR", () => { + const repo = makeRepo() + seedIntent(repo, "demo2", { + studio: "software", + mode: "continuous", + draft_pr_url: "https://github.com/o/r/pull/1", + stage_prs: { development: { url: "https://github.com/o/r/pull/9" } }, + }) + const body = approvalBodyFor(repo, "demo2", "development") + assert.ok( + body.includes("https://github.com/o/r/pull/1"), + "continuous proof target is the intent-main draft PR", + ) + assert.ok( + !body.includes("pull/9"), + "a stray stage_prs entry must NOT be used in continuous mode", + ) + rmSync(repo, { recursive: true, force: true }) +}) + +console.log(`\n${passed} passed, ${failed} failed`) +process.exit(failed > 0 ? 1 : 0) diff --git a/packages/haiku/test/verification-doctrine.test.mjs b/packages/haiku/test/verification-doctrine.test.mjs index 5064f87c3..1835d1608 100644 --- a/packages/haiku/test/verification-doctrine.test.mjs +++ b/packages/haiku/test/verification-doctrine.test.mjs @@ -39,12 +39,49 @@ test("runtime-verification shared block is registered and carries the doctrine", "bans tests-as-verification", ) // Routes through OUR machinery, and explicitly steers AWAY from CC's. - assert.match(body, /haiku_view/, "routes web/GUI through haiku_view") - assert.match(body, /haiku-playwright/, "names the bundled playwright MCP") + assert.match(body, /haiku_view/, "routes web/GUI through haiku_view boot") assert.match( body, - /never reach for[\s\S]*?(chromium|\.claude\/skills\/run-)/i, - "frames Claude-Code-only machinery (chromium-cli / .claude/skills/run-*) as something to AVOID, not use", + /haiku-playwright/, + "names the bundled playwright MCP (now the fallback driver)", + ) + assert.match( + body, + /don't hunt for[\s\S]*?\.claude\/skills\/run-/i, + "frames Claude-Code-only machinery (.claude/skills/run-*) as something to AVOID, not use", + ) + // The driver is a self-provisioned Playwright script that records video — + // NOT the project's own deps, and NOT the MCP as the primary driver. + assert.match( + body, + /Playwright script/i, + "the web/GUI driver is a written Playwright script", + ) + assert.match( + body, + /record[\s\S]{0,40}video|video[\s\S]{0,40}(record|proof)/i, + "the script records video of the run", + ) + assert.match( + body, + /never (touch|add)[\s\S]{0,80}(project'?s|package\.json|dependenc)/i, + "the driver is self-provisioned and never couples to the project's deps", + ) + // Proof is gitignored binary churn → uploaded to the PR, not committed. + assert.match( + body, + /gitignored/i, + "proof is framed as gitignored (not committed)", + ) + assert.match( + body, + /upload[\s\S]{0,120}(PR|MR|change request)/i, + "proof is uploaded to the change request", + ) + assert.match( + body, + /release asset/i, + "names GitHub release-asset as the upload path (no inline-attachment API)", ) // All surfaces for (const surface of ["CLI", "Server", "Library"]) { @@ -185,11 +222,24 @@ test("intent_review injects the doctrine for the runtime-verifier studio role", body.includes(DOCTRINE_TITLE), "intent-completion runtime-verifier must reference the doctrine", ) - // Evidence-only write carve-out replaces the strict no-write scope. + // runtime-verifier is in BOTH role-classes (RUNTIME_OBSERVATION + + // PR_INTERACTION), so the scope carve-outs are ADDITIVE — it gets the + // proof-write block AND the PR-interaction (upload) block, not the old + // mutually-exclusive "evidence only" heading. + assert.match( + body, + /Write scope \(evidence \+ delivery/i, + "runtime-verifier gets the combined evidence+delivery write scope", + ) + assert.match(body, /Proof capture/i, "keeps the proof/ write carve-out") assert.match( body, - /Write scope \(evidence only\)/, - "runtime-verifier gets the proof/ write carve-out", + /PR\/MR interaction/i, + "ALSO gets the PR-interaction carve-out (uploads proof to the PR)", + ) + assert.ok( + !/Write scope \(STRICT\)/.test(body), + "the strict no-write block must NOT render for a both-sets role", ) }) diff --git a/plugin/bin/haiku.mjs b/plugin/bin/haiku.mjs index 4eadd80b6..565d9d9fb 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 zCt=Object.create;var $U=Object.defineProperty;var VCt=Object.getOwnPropertyDescriptor;var WCt=Object.getOwnPropertyNames;var KCt=Object.getPrototypeOf,ZCt=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)$U(e,n,{get:t[n],enumerable:!0})},Ive=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of WCt(t))!ZCt.call(e,i)&&i!==n&&$U(e,i,{get:()=>t[i],enumerable:!(r=VCt(t,i))||r.enumerable});return e};var Se=(e,t,n)=>(n=e!=null?zCt(KCt(e)):{},Ive(t||!e||!e.__esModule?$U(n,"default",{value:e,enumerable:!0}):n,e)),ke=e=>Ive($U({},"__esModule",{value:!0}),e);var om,o8=v(()=>{om="1.9.1"});function YCt(e){let t=new Set([e]),n=new Set,r=e.match(xve);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(xve);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 xve,Ove,Nve=v(()=>{o8();xve=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;Ove=YCt(om)});function Ap(e,t,n,r=!1){var i;let s=nO[tO]=(i=nO[tO])!==null&&i!==void 0?i:{version:om};if(!r&&s[e]){let o=new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);return n.error(o.stack||o.message),!1}if(s.version!==om){let o=new Error(`@opentelemetry/api: Registration of version v${s.version} for ${e} does not match previously registered API v${om}`);return n.error(o.stack||o.message),!1}return s[e]=t,n.debug(`@opentelemetry/api: Registered a global for ${e} v${om}.`),!0}function nl(e){var t,n;let r=(t=nO[tO])===null||t===void 0?void 0:t.version;if(!(!r||!Ove(r)))return(n=nO[tO])===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=nO[tO];n&&delete n[e]}var JCt,tO,nO,lb=v(()=>{o8();Nve();JCt=om.split(".")[0],tO=Symbol.for(`opentelemetry.js.api.${JCt}`),nO=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{}});function rO(e,t,n){let r=nl("diag");if(r)return r[e](t,...n)}var eF,Pve=v(()=>{lb();eF=class{constructor(t){this._namespace=t.namespace||"DiagComponentLogger"}debug(...t){return rO("debug",this._namespace,t)}error(...t){return rO("error",this._namespace,t)}info(...t){return rO("info",this._namespace,t)}warn(...t){return rO("warn",this._namespace,t)}verbose(...t){return rO("verbose",this._namespace,t)}}});var ho,tF=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 Cve(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 Mve=v(()=>{tF()});var XCt,No,db=v(()=>{Pve();Mve();tF();lb();XCt="diag",No=class e{static instance(){return this._instance||(this._instance=new e),this._instance}constructor(){function t(i){return function(...s){let o=nl("diag");if(o)return o[i](...s)}}let n=this,r=(i,s={logLevel:ho.INFO})=>{var o,a,c;if(i===n){let d=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return n.error((o=d.stack)!==null&&o!==void 0?o:d.message),!1}typeof s=="number"&&(s={logLevel:s});let u=nl("diag"),l=Cve((a=s.logLevel)!==null&&a!==void 0?a:ho.INFO,i);if(u&&!s.suppressOverrideMessage){let d=(c=new Error().stack)!==null&&c!==void 0?c:"";u.warn(`Current logger will be overwritten from ${d}`),l.warn(`Current logger will overwrite one already registered from ${d}`)}return Ap("diag",l,n,!0)};n.setLogger=r,n.disable=()=>{Rp(XCt,n)},n.createComponentLogger=i=>new eF(i),n.verbose=t("verbose"),n.debug=t("debug"),n.info=t("info"),n.warn=t("warn"),n.error=t("error")}}});var nF,Lve=v(()=>{nF=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 Dve,Uve=v(()=>{Dve=Symbol("BaggageEntryMetadata")});function Fve(e={}){return new nF(new Map(Object.entries(e)))}function jve(e){return typeof e!="string"&&(QCt.error(`Cannot create baggage metadata from unknown type: ${typeof e}`),e=""),{__TYPE__:Dve,toString(){return e}}}var QCt,a8=v(()=>{db();Lve();Uve();QCt=No.instance()});function rl(e){return Symbol.for(e)}var c8,rA,iO=v(()=>{c8=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 c8});var u8,l8,rF,Hve=v(()=>{u8=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],l8={};if(typeof console<"u"){let e=["error","warn","info","debug","trace","log"];for(let t of e)typeof console[t]=="function"&&(l8[t]=console[t])}rF=class{constructor(){function t(n){return function(...r){let i=l8[n];if(typeof i!="function"&&(i=l8.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{d8=class{constructor(){}createGauge(t,n){return eMt}createHistogram(t,n){return tMt}createCounter(t,n){return $Ct}createUpDownCounter(t,n){return nMt}createObservableGauge(t,n){return iMt}createObservableCounter(t,n){return rMt}createObservableUpDownCounter(t,n){return sMt}addBatchObservableCallback(t,n){}removeBatchObservableCallback(t){}},iA=class{},f8=class extends iA{add(t,n){}},p8=class extends iA{add(t,n){}},h8=class extends iA{record(t,n){}},m8=class extends iA{record(t,n){}},sO=class{addCallback(t){}removeCallback(t){}},g8=class extends sO{},y8=class extends sO{},S8=class extends sO{},E8=new d8,$Ct=new f8,eMt=new h8,tMt=new m8,nMt=new p8,rMt=new g8,iMt=new y8,sMt=new S8});var iF,Bve=v(()=>{(function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"})(iF||(iF={}))});var sF,oF,_8=v(()=>{sF={get(e,t){if(e!=null)return e[t]},keys(e){return e==null?[]:Object.keys(e)}},oF={set(e,t,n){e!=null&&(e[t]=n)}}});var aF,Gve=v(()=>{iO();aF=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 T8,oMt,wp,oO=v(()=>{Gve();lb();db();T8="context",oMt=new aF,wp=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalContextManager(t){return Ap(T8,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 nl(T8)||oMt}disable(){this._getContextManager().disable(),Rp(T8,No.instance())}}});var Ha,v8=v(()=>{(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(Ha||(Ha={}))});var aO,fb,cF,uF=v(()=>{v8();aO="0000000000000000",fb="00000000000000000000000000000000",cF={traceId:fb,spanId:aO,traceFlags:Ha.NONE}});var kp,lF=v(()=>{uF();kp=class{constructor(t=cF){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 dF(e){return e.getValue(A8)||void 0}function zve(){return dF(wp.getInstance().active())}function cO(e,t){return e.setValue(A8,t)}function Vve(e){return e.deleteValue(A8)}function Wve(e,t){return cO(e,new kp(t))}function fF(e){var t;return(t=dF(e))===null||t===void 0?void 0:t.spanContext()}var A8,R8=v(()=>{iO();lF();oO();A8=rl("OpenTelemetry Context Key SPAN")});function Kve(e,t){if(typeof e!="string"||e.length!==t)return!1;let n=0;for(let r=0;r{uF();lF();pF=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1])});function aMt(e){return e!==null&&typeof e=="object"&&"spanId"in e&&typeof e.spanId=="string"&&"traceId"in e&&typeof e.traceId=="string"&&"traceFlags"in e&&typeof e.traceFlags=="number"}var I8,sA,x8=v(()=>{oO();R8();lF();hF();I8=wp.getInstance(),sA=class{startSpan(t,n,r=I8.active()){if(!!n?.root)return new kp;let s=r&&fF(r);return aMt(s)&&am(s)?new kp(s):new kp}startActiveSpan(t,n,r,i){let s,o,a;if(arguments.length<2)return;arguments.length===2?a=n:arguments.length===3?(s=n,a=r):(s=n,o=r,a=i);let c=o??I8.active(),u=this.startSpan(t,s,c),l=cO(c,u);return I8.with(l,a,void 0,u)}}});var cMt,oA,O8=v(()=>{x8();cMt=new sA,oA=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}startSpan(t,n,r){return this._getTracer().startSpan(t,n,r)}startActiveSpan(t,n,r,i){let s=this._getTracer();return Reflect.apply(s.startActiveSpan,s,arguments)}_getTracer(){if(this._delegate)return this._delegate;let t=this._provider.getDelegateTracer(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):cMt}}});var mF,Yve=v(()=>{x8();mF=class{getTracer(t,n,r){return new sA}}});var uMt,pb,N8=v(()=>{O8();Yve();uMt=new mF,pb=class{getTracer(t,n,r){var i;return(i=this.getDelegateTracer(t,n,r))!==null&&i!==void 0?i:new oA(this,t,n,r)}getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:uMt}setDelegate(t){this._delegate=t}getDelegateTracer(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getTracer(t,n,r)}}});var gF,Jve=v(()=>{(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(gF||(gF={}))});var $r,Xve=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,Qve=v(()=>{(function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"})(as||(as={}))});function $ve(e){return fMt.test(e)}function eAe(e){return pMt.test(e)&&!hMt.test(e)}var P8,lMt,dMt,fMt,pMt,hMt,tAe=v(()=>{P8="[_0-9a-z-*/]",lMt=`[a-z]${P8}{0,255}`,dMt=`[a-z0-9]${P8}{0,240}@[a-z]${P8}{0,13}`,fMt=new RegExp(`^(?:${lMt}|${dMt})$`),pMt=/^[ -~]{0,255}[!-~]$/,hMt=/,|=/});var nAe,mMt,rAe,iAe,yF,sAe=v(()=>{tAe();nAe=32,mMt=512,rAe=",",iAe="=",yF=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+iAe+this.get(n)),t),[]).join(rAe)}_parse(t){t.length>mMt||(this._internalState=t.split(rAe).reduceRight((n,r)=>{let i=r.trim(),s=i.indexOf(iAe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);$ve(o)&&eAe(a)&&n.set(o,a)}return n},new Map),this._internalState.size>nAe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,nAe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}}});function oAe(e){return new yF(e)}var aAe=v(()=>{sAe()});var Ve,cAe=v(()=>{oO();Ve=wp.getInstance()});var il,uAe=v(()=>{db();il=No.instance()});var C8,lAe,dAe=v(()=>{b8();C8=class{getMeter(t,n,r){return E8}},lAe=new C8});var M8,SF,fAe=v(()=>{dAe();lb();db();M8="metrics",SF=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalMeterProvider(t){return Ap(M8,t,No.instance())}getMeterProvider(){return nl(M8)||lAe}getMeter(t,n,r){return this.getMeterProvider().getMeter(t,n,r)}disable(){Rp(M8,No.instance())}}});var L8,pAe=v(()=>{fAe();L8=SF.getInstance()});var EF,hAe=v(()=>{EF=class{inject(t,n){}extract(t,n){return t}fields(){return[]}}});function U8(e){return e.getValue(D8)||void 0}function mAe(){return U8(wp.getInstance().active())}function gAe(e,t){return e.setValue(D8,t)}function yAe(e){return e.deleteValue(D8)}var D8,SAe=v(()=>{oO();iO();D8=rl("OpenTelemetry Baggage Key")});var F8,gMt,bF,EAe=v(()=>{lb();hAe();_8();SAe();a8();db();F8="propagation",gMt=new EF,bF=class e{constructor(){this.createBaggage=Fve,this.getBaggage=U8,this.getActiveBaggage=mAe,this.setBaggage=gAe,this.deleteBaggage=yAe}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalPropagator(t){return Ap(F8,t,No.instance())}inject(t,n,r=oF){return this._getGlobalPropagator().inject(t,n,r)}extract(t,n,r=sF){return this._getGlobalPropagator().extract(t,n,r)}fields(){return this._getGlobalPropagator().fields()}disable(){Rp(F8,No.instance())}_getGlobalPropagator(){return nl(F8)||gMt}}});var Jd,bAe=v(()=>{EAe();Jd=bF.getInstance()});var j8,_F,_Ae=v(()=>{lb();N8();hF();R8();db();j8="trace",_F=class e{constructor(){this._proxyTracerProvider=new pb,this.wrapSpanContext=Zve,this.isSpanContextValid=am,this.deleteSpan=Vve,this.getSpan=dF,this.getActiveSpan=zve,this.getSpanContext=fF,this.setSpan=cO,this.setSpanContext=Wve}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalTracerProvider(t){let n=Ap(j8,this._proxyTracerProvider,No.instance());return n&&this._proxyTracerProvider.setDelegate(t),n}getTracerProvider(){return nl(j8)||this._proxyTracerProvider}getTracer(t,n){return this.getTracerProvider().getTracer(t,n)}disable(){Rp(j8,No.instance()),this._proxyTracerProvider=new pb}}});var jt,TAe=v(()=>{_Ae();jt=_F.getInstance()});var Ye={};Rr(Ye,{DiagConsoleLogger:()=>rF,DiagLogLevel:()=>ho,INVALID_SPANID:()=>aO,INVALID_SPAN_CONTEXT:()=>cF,INVALID_TRACEID:()=>fb,ProxyTracer:()=>oA,ProxyTracerProvider:()=>pb,ROOT_CONTEXT:()=>rA,SamplingDecision:()=>gF,SpanKind:()=>$r,SpanStatusCode:()=>as,TraceFlags:()=>Ha,ValueType:()=>iF,baggageEntryMetadataFromString:()=>jve,context:()=>Ve,createContextKey:()=>rl,createNoopMeter:()=>qve,createTraceState:()=>oAe,default:()=>yMt,defaultTextMapGetter:()=>sF,defaultTextMapSetter:()=>oF,diag:()=>il,isSpanContextValid:()=>am,isValidSpanId:()=>k8,isValidTraceId:()=>w8,metrics:()=>L8,propagation:()=>Jd,trace:()=>jt});var yMt,Ce=v(()=>{a8();iO();Hve();tF();b8();Bve();_8();O8();N8();Jve();Xve();Qve();v8();aAe();hF();uF();cAe();uAe();pAe();bAe();TAe();yMt={context:Ve,diag:il,metrics:L8,propagation:Jd,trace:jt}});var uO=w(uy=>{"use strict";Object.defineProperty(uy,"__esModule",{value:!0});uy.isTracingSuppressed=uy.unsuppressTracing=uy.suppressTracing=void 0;var SMt=(Ce(),ke(Ye)),H8=(0,SMt.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function EMt(e){return e.setValue(H8,!0)}uy.suppressTracing=EMt;function bMt(e){return e.deleteValue(H8)}uy.unsuppressTracing=bMt;function _Mt(e){return e.getValue(H8)===!0}uy.isTracingSuppressed=_Mt});var q8=w(qa=>{"use strict";Object.defineProperty(qa,"__esModule",{value:!0});qa.BAGGAGE_MAX_TOTAL_LENGTH=qa.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=qa.BAGGAGE_MAX_NAME_VALUE_PAIRS=qa.BAGGAGE_HEADER=qa.BAGGAGE_ITEMS_SEPARATOR=qa.BAGGAGE_PROPERTIES_SEPARATOR=qa.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;qa.BAGGAGE_KEY_PAIR_SEPARATOR="=";qa.BAGGAGE_PROPERTIES_SEPARATOR=";";qa.BAGGAGE_ITEMS_SEPARATOR=",";qa.BAGGAGE_HEADER="baggage";qa.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;qa.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;qa.BAGGAGE_MAX_TOTAL_LENGTH=8192});var B8=w(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});Ip.parseKeyPairsIntoRecord=Ip.parsePairKeyValue=Ip.getKeyPairs=Ip.serializeKeyPairs=void 0;var TMt=(Ce(),ke(Ye)),aA=q8();function vMt(e){return e.reduce((t,n)=>{let r=`${t}${t!==""?aA.BAGGAGE_ITEMS_SEPARATOR:""}${n}`;return r.length>aA.BAGGAGE_MAX_TOTAL_LENGTH?t:r},"")}Ip.serializeKeyPairs=vMt;function AMt(e){return e.getAllEntries().map(([t,n])=>{let r=`${encodeURIComponent(t)}=${encodeURIComponent(n.value)}`;return n.metadata!==void 0&&(r+=aA.BAGGAGE_PROPERTIES_SEPARATOR+n.metadata.toString()),r})}Ip.getKeyPairs=AMt;function vAe(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=vAe(n);r!==void 0&&r.value.length>0&&(t[r.key]=r.value)}),t}Ip.parseKeyPairsIntoRecord=RMt});var AAe=w(TF=>{"use strict";Object.defineProperty(TF,"__esModule",{value:!0});TF.W3CBaggagePropagator=void 0;var G8=(Ce(),ke(Ye)),wMt=uO(),hb=q8(),z8=B8(),V8=class{inject(t,n,r){let i=G8.propagation.getBaggage(t);if(!i||(0,wMt.isTracingSuppressed)(t))return;let s=(0,z8.getKeyPairs)(i).filter(a=>a.length<=hb.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,hb.BAGGAGE_MAX_NAME_VALUE_PAIRS),o=(0,z8.serializeKeyPairs)(s);o.length>0&&r.set(n,hb.BAGGAGE_HEADER,o)}extract(t,n,r){let i=r.get(n,hb.BAGGAGE_HEADER),s=Array.isArray(i)?i.join(hb.BAGGAGE_ITEMS_SEPARATOR):i;if(!s)return t;let o={};return s.length===0||(s.split(hb.BAGGAGE_ITEMS_SEPARATOR).forEach(c=>{let u=(0,z8.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:G8.propagation.setBaggage(t,G8.propagation.createBaggage(o))}fields(){return[hb.BAGGAGE_HEADER]}};TF.W3CBaggagePropagator=V8});var RAe=w(vF=>{"use strict";Object.defineProperty(vF,"__esModule",{value:!0});vF.AnchoredClock=void 0;var W8=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}};vF.AnchoredClock=W8});var OAe=w(ly=>{"use strict";Object.defineProperty(ly,"__esModule",{value:!0});ly.isAttributeValue=ly.isAttributeKey=ly.sanitizeAttributes=void 0;var wAe=(Ce(),ke(Ye));function kMt(e){let t={};if(typeof e!="object"||e==null)return t;for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;if(!kAe(n)){wAe.diag.warn(`Invalid attribute key: ${n}`);continue}let r=e[n];if(!IAe(r)){wAe.diag.warn(`Invalid attribute value set for key: ${n}`);continue}Array.isArray(r)?t[n]=r.slice():t[n]=r}return t}ly.sanitizeAttributes=kMt;function kAe(e){return typeof e=="string"&&e!==""}ly.isAttributeKey=kAe;function IAe(e){return e==null?!0:Array.isArray(e)?IMt(e):xAe(typeof e)}ly.isAttributeValue=IAe;function IMt(e){let t;for(let n of e){if(n==null)continue;let r=typeof n;if(r!==t){if(!t){if(xAe(r)){t=r;continue}return!1}return!1}}return!0}function xAe(e){switch(e){case"number":case"boolean":case"string":return!0}return!1}});var K8=w(AF=>{"use strict";Object.defineProperty(AF,"__esModule",{value:!0});AF.loggingErrorHandler=void 0;var xMt=(Ce(),ke(Ye));function OMt(){return e=>{xMt.diag.error(NMt(e))}}AF.loggingErrorHandler=OMt;function NMt(e){return typeof e=="string"?e:JSON.stringify(PMt(e))}function PMt(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 PAe=w(cA=>{"use strict";Object.defineProperty(cA,"__esModule",{value:!0});cA.globalErrorHandler=cA.setGlobalErrorHandler=void 0;var CMt=K8(),NAe=(0,CMt.loggingErrorHandler)();function MMt(e){NAe=e}cA.setGlobalErrorHandler=MMt;function LMt(e){try{NAe(e)}catch{}}cA.globalErrorHandler=LMt});var DAe=w(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});xp.getStringListFromEnv=xp.getBooleanFromEnv=xp.getStringFromEnv=xp.getNumberFromEnv=void 0;var CAe=(Ce(),ke(Ye)),MAe=Z("util");function DMt(e){let t=process.env[e];if(t==null||t.trim()==="")return;let n=Number(t);if(isNaN(n)){CAe.diag.warn(`Unknown value ${(0,MAe.inspect)(t)} for ${e}, expected a number, using defaults`);return}return n}xp.getNumberFromEnv=DMt;function LAe(e){let t=process.env[e];if(!(t==null||t.trim()===""))return t}xp.getStringFromEnv=LAe;function UMt(e){let t=process.env[e]?.trim().toLowerCase();return t==null||t===""?!1:t==="true"?!0:(t==="false"||CAe.diag.warn(`Unknown value ${(0,MAe.inspect)(t)} for ${e}, expected 'true' or 'false', falling back to 'false' (default)`),!1)}xp.getBooleanFromEnv=UMt;function FMt(e){return LAe(e)?.split(",").map(t=>t.trim()).filter(t=>t!=="")}xp.getStringListFromEnv=FMt});var UAe=w(RF=>{"use strict";Object.defineProperty(RF,"__esModule",{value:!0});RF._globalThis=void 0;RF._globalThis=globalThis});var FAe=w(wF=>{"use strict";Object.defineProperty(wF,"__esModule",{value:!0});wF.VERSION=void 0;wF.VERSION="2.6.1"});function ws(e){let t={},n=e.length;for(let r=0;r{});var 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,LRe,DRe,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,Lwe,Dwe,Uwe,Fwe,jwe,Hwe,qwe,Bwe,Gwe,zwe,Vwe,Wwe,Kwe,Zwe,Ywe,Jwe,Xwe,Qwe,$we,eke,tke,nke,rke,ike,jMt,Y8,HMt,qMt,BMt,GMt,J8,zMt,VMt,WMt,KMt,ZMt,YMt,JMt,XMt,QMt,$Mt,eLt,tLt,nLt,rLt,iLt,sLt,oLt,aLt,X8,cLt,uLt,lLt,dLt,fLt,pLt,hLt,mLt,gLt,yLt,SLt,ELt,Q8,bLt,_Lt,$8,eJ,TLt,vLt,ALt,RLt,wLt,kLt,ILt,xLt,OLt,NLt,PLt,CLt,MLt,LLt,DLt,ULt,FLt,lO,uA,tJ,jLt,HLt,mb,qLt,BLt,GLt,zLt,nJ,rJ,VLt,iJ,WLt,KLt,ZLt,YLt,JLt,XLt,QLt,$Lt,eDt,tDt,nDt,rDt,iDt,sDt,oDt,aDt,cDt,uDt,lDt,dDt,fDt,pDt,hDt,sJ,mDt,gDt,yDt,SDt,EDt,bDt,_Dt,TDt,vDt,ADt,RDt,wDt,kDt,IDt,xDt,ODt,NDt,PDt,CDt,oJ,MDt,aJ,LDt,DDt,UDt,FDt,jDt,HDt,qDt,BDt,GDt,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,Lke,Dke,Uke,Fke,jke,Hke,qke,Bke,Gke,zke,Vke,Wke,Kke,Zke,Yke,Jke,Xke,zDt,VDt,WDt,KDt,ZDt,YDt,JDt,XDt,QDt,$Dt,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,P1t,C1t,M1t,L1t,D1t,U1t,Qke,$ke,eIe,tIe,nIe,rIe,iIe,sIe,oIe,aIe,cIe,F1t,j1t,H1t,q1t,B1t,G1t,z1t,V1t,W1t,K1t,Z1t,Y1t,uIe,lIe,dIe,fIe,pIe,J1t,X1t,Q1t,$1t,eUt,tUt,hIe,mIe,gIe,nUt,rUt,iUt,sUt,yIe,SIe,EIe,bIe,oUt,aUt,cUt,uUt,lUt,_Ie,TIe,vIe,AIe,RIe,wIe,kIe,dUt,fUt,pUt,hUt,mUt,gUt,yUt,SUt,IIe,xIe,OIe,NIe,PIe,EUt,bUt,_Ut,TUt,vUt,AUt,CIe,MIe,LIe,DIe,UIe,FIe,jIe,HIe,qIe,BIe,GIe,zIe,VIe,WIe,KIe,ZIe,YIe,JIe,XIe,QIe,$Ie,RUt,wUt,kUt,IUt,xUt,OUt,NUt,PUt,CUt,MUt,LUt,DUt,UUt,FUt,jUt,HUt,qUt,BUt,GUt,zUt,VUt,WUt,exe,txe,nxe,rxe,ixe,KUt,ZUt,YUt,JUt,XUt,QUt,sxe,oxe,$Ut,eFt,tFt,axe,cxe,nFt,rFt,iFt,uxe,lxe,dxe,fxe,pxe,hxe,mxe,gxe,yxe,Sxe,Exe,bxe,_xe,Txe,vxe,Axe,Rxe,sFt,oFt,aFt,cFt,uFt,lFt,dFt,fFt,pFt,hFt,mFt,gFt,yFt,SFt,EFt,bFt,_Ft,TFt,wxe,kxe,vFt,AFt,RFt,Ixe=v(()=>{Z8();jAe="aws.lambda.invoked_arn",HAe="db.system",qAe="db.connection_string",BAe="db.user",GAe="db.jdbc.driver_classname",zAe="db.name",VAe="db.statement",WAe="db.operation",KAe="db.mssql.instance_name",ZAe="db.cassandra.keyspace",YAe="db.cassandra.page_size",JAe="db.cassandra.consistency_level",XAe="db.cassandra.table",QAe="db.cassandra.idempotence",$Ae="db.cassandra.speculative_execution_count",eRe="db.cassandra.coordinator.id",tRe="db.cassandra.coordinator.dc",nRe="db.hbase.namespace",rRe="db.redis.database_index",iRe="db.mongodb.collection",sRe="db.sql.table",oRe="exception.type",aRe="exception.message",cRe="exception.stacktrace",uRe="exception.escaped",lRe="faas.trigger",dRe="faas.execution",fRe="faas.document.collection",pRe="faas.document.operation",hRe="faas.document.time",mRe="faas.document.name",gRe="faas.time",yRe="faas.cron",SRe="faas.coldstart",ERe="faas.invoked_name",bRe="faas.invoked_provider",_Re="faas.invoked_region",TRe="net.transport",vRe="net.peer.ip",ARe="net.peer.port",RRe="net.peer.name",wRe="net.host.ip",kRe="net.host.port",IRe="net.host.name",xRe="net.host.connection.type",ORe="net.host.connection.subtype",NRe="net.host.carrier.name",PRe="net.host.carrier.mcc",CRe="net.host.carrier.mnc",MRe="net.host.carrier.icc",LRe="peer.service",DRe="enduser.id",URe="enduser.role",FRe="enduser.scope",jRe="thread.id",HRe="thread.name",qRe="code.function",BRe="code.namespace",GRe="code.filepath",zRe="code.lineno",VRe="http.method",WRe="http.url",KRe="http.target",ZRe="http.host",YRe="http.scheme",JRe="http.status_code",XRe="http.flavor",QRe="http.user_agent",$Re="http.request_content_length",ewe="http.request_content_length_uncompressed",twe="http.response_content_length",nwe="http.response_content_length_uncompressed",rwe="http.server_name",iwe="http.route",swe="http.client_ip",owe="aws.dynamodb.table_names",awe="aws.dynamodb.consumed_capacity",cwe="aws.dynamodb.item_collection_metrics",uwe="aws.dynamodb.provisioned_read_capacity",lwe="aws.dynamodb.provisioned_write_capacity",dwe="aws.dynamodb.consistent_read",fwe="aws.dynamodb.projection",pwe="aws.dynamodb.limit",hwe="aws.dynamodb.attributes_to_get",mwe="aws.dynamodb.index_name",gwe="aws.dynamodb.select",ywe="aws.dynamodb.global_secondary_indexes",Swe="aws.dynamodb.local_secondary_indexes",Ewe="aws.dynamodb.exclusive_start_table",bwe="aws.dynamodb.table_count",_we="aws.dynamodb.scan_forward",Twe="aws.dynamodb.segment",vwe="aws.dynamodb.total_segments",Awe="aws.dynamodb.count",Rwe="aws.dynamodb.scanned_count",wwe="aws.dynamodb.attribute_definitions",kwe="aws.dynamodb.global_secondary_index_updates",Iwe="messaging.system",xwe="messaging.destination",Owe="messaging.destination_kind",Nwe="messaging.temp_destination",Pwe="messaging.protocol",Cwe="messaging.protocol_version",Mwe="messaging.url",Lwe="messaging.message_id",Dwe="messaging.conversation_id",Uwe="messaging.message_payload_size_bytes",Fwe="messaging.message_payload_compressed_size_bytes",jwe="messaging.operation",Hwe="messaging.consumer_id",qwe="messaging.rabbitmq.routing_key",Bwe="messaging.kafka.message_key",Gwe="messaging.kafka.consumer_group",zwe="messaging.kafka.client_id",Vwe="messaging.kafka.partition",Wwe="messaging.kafka.tombstone",Kwe="rpc.system",Zwe="rpc.service",Ywe="rpc.method",Jwe="rpc.grpc.status_code",Xwe="rpc.jsonrpc.version",Qwe="rpc.jsonrpc.request_id",$we="rpc.jsonrpc.error_code",eke="rpc.jsonrpc.error_message",tke="message.type",nke="message.id",rke="message.compressed_size",ike="message.uncompressed_size",jMt=jAe,Y8=HAe,HMt=qAe,qMt=BAe,BMt=GAe,GMt=zAe,J8=VAe,zMt=WAe,VMt=KAe,WMt=ZAe,KMt=YAe,ZMt=JAe,YMt=XAe,JMt=QAe,XMt=$Ae,QMt=eRe,$Mt=tRe,eLt=nRe,tLt=rRe,nLt=iRe,rLt=sRe,iLt=oRe,sLt=aRe,oLt=cRe,aLt=uRe,X8=lRe,cLt=dRe,uLt=fRe,lLt=pRe,dLt=hRe,fLt=mRe,pLt=gRe,hLt=yRe,mLt=SRe,gLt=ERe,yLt=bRe,SLt=_Re,ELt=TRe,Q8=vRe,bLt=ARe,_Lt=RRe,$8=wRe,eJ=kRe,TLt=IRe,vLt=xRe,ALt=ORe,RLt=NRe,wLt=PRe,kLt=CRe,ILt=MRe,xLt=LRe,OLt=DRe,NLt=URe,PLt=FRe,CLt=jRe,MLt=HRe,LLt=qRe,DLt=BRe,ULt=GRe,FLt=zRe,lO=VRe,uA=WRe,tJ=KRe,jLt=ZRe,HLt=YRe,mb=JRe,qLt=XRe,BLt=QRe,GLt=$Re,zLt=ewe,nJ=twe,rJ=nwe,VLt=rwe,iJ=iwe,WLt=swe,KLt=owe,ZLt=awe,YLt=cwe,JLt=uwe,XLt=lwe,QLt=dwe,$Lt=fwe,eDt=pwe,tDt=hwe,nDt=mwe,rDt=gwe,iDt=ywe,sDt=Swe,oDt=Ewe,aDt=bwe,cDt=_we,uDt=Twe,lDt=vwe,dDt=Awe,fDt=Rwe,pDt=wwe,hDt=kwe,sJ=Iwe,mDt=xwe,gDt=Owe,yDt=Nwe,SDt=Pwe,EDt=Cwe,bDt=Mwe,_Dt=Lwe,TDt=Dwe,vDt=Uwe,ADt=Fwe,RDt=jwe,wDt=Hwe,kDt=qwe,IDt=Bwe,xDt=Gwe,ODt=zwe,NDt=Vwe,PDt=Wwe,CDt=Kwe,oJ=Zwe,MDt=Ywe,aJ=Jwe,LDt=Xwe,DDt=Qwe,UDt=$we,FDt=eke,jDt=tke,HDt=nke,qDt=rke,BDt=ike,GDt=ws([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,LRe,DRe,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,Lwe,Dwe,Uwe,Fwe,jwe,Hwe,qwe,Bwe,Gwe,zwe,Vwe,Wwe,Kwe,Zwe,Ywe,Jwe,Xwe,Qwe,$we,eke,tke,nke,rke,ike]),ske="other_sql",oke="mssql",ake="mysql",cke="oracle",uke="db2",lke="postgresql",dke="redshift",fke="hive",pke="cloudscape",hke="hsqldb",mke="progress",gke="maxdb",yke="hanadb",Ske="ingres",Eke="firstsql",bke="edb",_ke="cache",Tke="adabas",vke="firebird",Ake="derby",Rke="filemaker",wke="informix",kke="instantdb",Ike="interbase",xke="mariadb",Oke="netezza",Nke="pervasive",Pke="pointbase",Cke="sqlite",Mke="sybase",Lke="teradata",Dke="vertica",Uke="h2",Fke="coldfusion",jke="cassandra",Hke="hbase",qke="mongodb",Bke="redis",Gke="couchbase",zke="couchdb",Vke="cosmosdb",Wke="dynamodb",Kke="neo4j",Zke="geode",Yke="elasticsearch",Jke="memcached",Xke="cockroachdb",zDt=ske,VDt=oke,WDt=ake,KDt=cke,ZDt=uke,YDt=lke,JDt=dke,XDt=fke,QDt=pke,$Dt=hke,e1t=mke,t1t=gke,n1t=yke,r1t=Ske,i1t=Eke,s1t=bke,o1t=_ke,a1t=Tke,c1t=vke,u1t=Ake,l1t=Rke,d1t=wke,f1t=kke,p1t=Ike,h1t=xke,m1t=Oke,g1t=Nke,y1t=Pke,S1t=Cke,E1t=Mke,b1t=Lke,_1t=Dke,T1t=Uke,v1t=Fke,A1t=jke,R1t=Hke,w1t=qke,k1t=Bke,I1t=Gke,x1t=zke,O1t=Vke,N1t=Wke,P1t=Kke,C1t=Zke,M1t=Yke,L1t=Jke,D1t=Xke,U1t=ws([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,Lke,Dke,Uke,Fke,jke,Hke,qke,Bke,Gke,zke,Vke,Wke,Kke,Zke,Yke,Jke,Xke]),Qke="all",$ke="each_quorum",eIe="quorum",tIe="local_quorum",nIe="one",rIe="two",iIe="three",sIe="local_one",oIe="any",aIe="serial",cIe="local_serial",F1t=Qke,j1t=$ke,H1t=eIe,q1t=tIe,B1t=nIe,G1t=rIe,z1t=iIe,V1t=sIe,W1t=oIe,K1t=aIe,Z1t=cIe,Y1t=ws([Qke,$ke,eIe,tIe,nIe,rIe,iIe,sIe,oIe,aIe,cIe]),uIe="datasource",lIe="http",dIe="pubsub",fIe="timer",pIe="other",J1t=uIe,X1t=lIe,Q1t=dIe,$1t=fIe,eUt=pIe,tUt=ws([uIe,lIe,dIe,fIe,pIe]),hIe="insert",mIe="edit",gIe="delete",nUt=hIe,rUt=mIe,iUt=gIe,sUt=ws([hIe,mIe,gIe]),yIe="alibaba_cloud",SIe="aws",EIe="azure",bIe="gcp",oUt=yIe,aUt=SIe,cUt=EIe,uUt=bIe,lUt=ws([yIe,SIe,EIe,bIe]),_Ie="ip_tcp",TIe="ip_udp",vIe="ip",AIe="unix",RIe="pipe",wIe="inproc",kIe="other",dUt=_Ie,fUt=TIe,pUt=vIe,hUt=AIe,mUt=RIe,gUt=wIe,yUt=kIe,SUt=ws([_Ie,TIe,vIe,AIe,RIe,wIe,kIe]),IIe="wifi",xIe="wired",OIe="cell",NIe="unavailable",PIe="unknown",EUt=IIe,bUt=xIe,_Ut=OIe,TUt=NIe,vUt=PIe,AUt=ws([IIe,xIe,OIe,NIe,PIe]),CIe="gprs",MIe="edge",LIe="umts",DIe="cdma",UIe="evdo_0",FIe="evdo_a",jIe="cdma2000_1xrtt",HIe="hsdpa",qIe="hsupa",BIe="hspa",GIe="iden",zIe="evdo_b",VIe="lte",WIe="ehrpd",KIe="hspap",ZIe="gsm",YIe="td_scdma",JIe="iwlan",XIe="nr",QIe="nrnsa",$Ie="lte_ca",RUt=CIe,wUt=MIe,kUt=LIe,IUt=DIe,xUt=UIe,OUt=FIe,NUt=jIe,PUt=HIe,CUt=qIe,MUt=BIe,LUt=GIe,DUt=zIe,UUt=VIe,FUt=WIe,jUt=KIe,HUt=ZIe,qUt=YIe,BUt=JIe,GUt=XIe,zUt=QIe,VUt=$Ie,WUt=ws([CIe,MIe,LIe,DIe,UIe,FIe,jIe,HIe,qIe,BIe,GIe,zIe,VIe,WIe,KIe,ZIe,YIe,JIe,XIe,QIe,$Ie]),exe="1.0",txe="1.1",nxe="2.0",rxe="SPDY",ixe="QUIC",KUt=exe,ZUt=txe,YUt=nxe,JUt=rxe,XUt=ixe,QUt={HTTP_1_0:exe,HTTP_1_1:txe,HTTP_2_0:nxe,SPDY:rxe,QUIC:ixe},sxe="queue",oxe="topic",$Ut=sxe,eFt=oxe,tFt=ws([sxe,oxe]),axe="receive",cxe="process",nFt=axe,rFt=cxe,iFt=ws([axe,cxe]),uxe=0,lxe=1,dxe=2,fxe=3,pxe=4,hxe=5,mxe=6,gxe=7,yxe=8,Sxe=9,Exe=10,bxe=11,_xe=12,Txe=13,vxe=14,Axe=15,Rxe=16,sFt=uxe,oFt=lxe,aFt=dxe,cFt=fxe,uFt=pxe,lFt=hxe,dFt=mxe,fFt=gxe,pFt=yxe,hFt=Sxe,mFt=Exe,gFt=bxe,yFt=_xe,SFt=Txe,EFt=vxe,bFt=Axe,_Ft=Rxe,TFt={OK:uxe,CANCELLED:lxe,UNKNOWN:dxe,INVALID_ARGUMENT:fxe,DEADLINE_EXCEEDED:pxe,NOT_FOUND:hxe,ALREADY_EXISTS:mxe,PERMISSION_DENIED:gxe,RESOURCE_EXHAUSTED:yxe,FAILED_PRECONDITION:Sxe,ABORTED:Exe,OUT_OF_RANGE:bxe,UNIMPLEMENTED:_xe,INTERNAL:Txe,UNAVAILABLE:vxe,DATA_LOSS:Axe,UNAUTHENTICATED:Rxe},wxe="SENT",kxe="RECEIVED",vFt=wxe,AFt=kxe,RFt=ws([wxe,kxe])});var xxe=v(()=>{Ixe()});var Oxe,Nxe,Pxe,Cxe,Mxe,Lxe,Dxe,Uxe,Fxe,jxe,Hxe,qxe,Bxe,Gxe,zxe,Vxe,Wxe,Kxe,Zxe,Yxe,Jxe,Xxe,Qxe,$xe,e0e,t0e,n0e,r0e,i0e,s0e,o0e,a0e,c0e,u0e,l0e,d0e,f0e,p0e,h0e,m0e,g0e,y0e,S0e,E0e,b0e,_0e,T0e,v0e,A0e,R0e,w0e,k0e,I0e,x0e,O0e,N0e,P0e,C0e,M0e,L0e,D0e,U0e,F0e,j0e,H0e,q0e,B0e,G0e,z0e,V0e,W0e,K0e,Z0e,Y0e,J0e,X0e,Q0e,$0e,eOe,tOe,nOe,wFt,kFt,IFt,xFt,OFt,NFt,PFt,CFt,MFt,LFt,DFt,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,Ljt,Djt,Ujt,Fjt,jjt,Hjt,qjt,Bjt,cJ,Gjt,zjt,Vjt,Wjt,Kjt,Zjt,Yjt,Jjt,Xjt,Qjt,rOe,iOe,sOe,oOe,$jt,eHt,tHt,nHt,rHt,aOe,cOe,uOe,lOe,dOe,fOe,pOe,hOe,mOe,gOe,yOe,SOe,EOe,bOe,_Oe,TOe,vOe,iHt,sHt,oHt,aHt,cHt,uHt,lHt,dHt,fHt,pHt,hHt,mHt,gHt,yHt,SHt,EHt,bHt,_Ht,AOe,ROe,THt,vHt,AHt,wOe,kOe,IOe,xOe,OOe,NOe,POe,RHt,wHt,kHt,IHt,xHt,OHt,NHt,PHt,COe,MOe,LOe,DOe,UOe,FOe,jOe,HOe,qOe,BOe,GOe,CHt,MHt,LHt,DHt,UHt,FHt,jHt,HHt,qHt,BHt,GHt,zHt,zOe,VOe,WOe,KOe,ZOe,YOe,JOe,XOe,QOe,$Oe,VHt,WHt,KHt,ZHt,YHt,JHt,XHt,QHt,$Ht,eqt,tqt,eNe=v(()=>{Z8();Oxe="cloud.provider",Nxe="cloud.account.id",Pxe="cloud.region",Cxe="cloud.availability_zone",Mxe="cloud.platform",Lxe="aws.ecs.container.arn",Dxe="aws.ecs.cluster.arn",Uxe="aws.ecs.launchtype",Fxe="aws.ecs.task.arn",jxe="aws.ecs.task.family",Hxe="aws.ecs.task.revision",qxe="aws.eks.cluster.arn",Bxe="aws.log.group.names",Gxe="aws.log.group.arns",zxe="aws.log.stream.names",Vxe="aws.log.stream.arns",Wxe="container.name",Kxe="container.id",Zxe="container.runtime",Yxe="container.image.name",Jxe="container.image.tag",Xxe="deployment.environment",Qxe="device.id",$xe="device.model.identifier",e0e="device.model.name",t0e="faas.name",n0e="faas.id",r0e="faas.version",i0e="faas.instance",s0e="faas.max_memory",o0e="host.id",a0e="host.name",c0e="host.type",u0e="host.arch",l0e="host.image.name",d0e="host.image.id",f0e="host.image.version",p0e="k8s.cluster.name",h0e="k8s.node.name",m0e="k8s.node.uid",g0e="k8s.namespace.name",y0e="k8s.pod.uid",S0e="k8s.pod.name",E0e="k8s.container.name",b0e="k8s.replicaset.uid",_0e="k8s.replicaset.name",T0e="k8s.deployment.uid",v0e="k8s.deployment.name",A0e="k8s.statefulset.uid",R0e="k8s.statefulset.name",w0e="k8s.daemonset.uid",k0e="k8s.daemonset.name",I0e="k8s.job.uid",x0e="k8s.job.name",O0e="k8s.cronjob.uid",N0e="k8s.cronjob.name",P0e="os.type",C0e="os.description",M0e="os.name",L0e="os.version",D0e="process.pid",U0e="process.executable.name",F0e="process.executable.path",j0e="process.command",H0e="process.command_line",q0e="process.command_args",B0e="process.owner",G0e="process.runtime.name",z0e="process.runtime.version",V0e="process.runtime.description",W0e="service.name",K0e="service.namespace",Z0e="service.instance.id",Y0e="service.version",J0e="telemetry.sdk.name",X0e="telemetry.sdk.language",Q0e="telemetry.sdk.version",$0e="telemetry.auto.version",eOe="webengine.name",tOe="webengine.version",nOe="webengine.description",wFt=Oxe,kFt=Nxe,IFt=Pxe,xFt=Cxe,OFt=Mxe,NFt=Lxe,PFt=Dxe,CFt=Uxe,MFt=Fxe,LFt=jxe,DFt=Hxe,UFt=qxe,FFt=Bxe,jFt=Gxe,HFt=zxe,qFt=Vxe,BFt=Wxe,GFt=Kxe,zFt=Zxe,VFt=Yxe,WFt=Jxe,KFt=Xxe,ZFt=Qxe,YFt=$xe,JFt=e0e,XFt=t0e,QFt=n0e,$Ft=r0e,ejt=i0e,tjt=s0e,njt=o0e,rjt=a0e,ijt=c0e,sjt=u0e,ojt=l0e,ajt=d0e,cjt=f0e,ujt=p0e,ljt=h0e,djt=m0e,fjt=g0e,pjt=y0e,hjt=S0e,mjt=E0e,gjt=b0e,yjt=_0e,Sjt=T0e,Ejt=v0e,bjt=A0e,_jt=R0e,Tjt=w0e,vjt=k0e,Ajt=I0e,Rjt=x0e,wjt=O0e,kjt=N0e,Ijt=P0e,xjt=C0e,Ojt=M0e,Njt=L0e,Pjt=D0e,Cjt=U0e,Mjt=F0e,Ljt=j0e,Djt=H0e,Ujt=q0e,Fjt=B0e,jjt=G0e,Hjt=z0e,qjt=V0e,Bjt=W0e,cJ=K0e,Gjt=Z0e,zjt=Y0e,Vjt=J0e,Wjt=X0e,Kjt=Q0e,Zjt=$0e,Yjt=eOe,Jjt=tOe,Xjt=nOe,Qjt=ws([Oxe,Nxe,Pxe,Cxe,Mxe,Lxe,Dxe,Uxe,Fxe,jxe,Hxe,qxe,Bxe,Gxe,zxe,Vxe,Wxe,Kxe,Zxe,Yxe,Jxe,Xxe,Qxe,$xe,e0e,t0e,n0e,r0e,i0e,s0e,o0e,a0e,c0e,u0e,l0e,d0e,f0e,p0e,h0e,m0e,g0e,y0e,S0e,E0e,b0e,_0e,T0e,v0e,A0e,R0e,w0e,k0e,I0e,x0e,O0e,N0e,P0e,C0e,M0e,L0e,D0e,U0e,F0e,j0e,H0e,q0e,B0e,G0e,z0e,V0e,W0e,K0e,Z0e,Y0e,J0e,X0e,Q0e,$0e,eOe,tOe,nOe]),rOe="alibaba_cloud",iOe="aws",sOe="azure",oOe="gcp",$jt=rOe,eHt=iOe,tHt=sOe,nHt=oOe,rHt=ws([rOe,iOe,sOe,oOe]),aOe="alibaba_cloud_ecs",cOe="alibaba_cloud_fc",uOe="aws_ec2",lOe="aws_ecs",dOe="aws_eks",fOe="aws_lambda",pOe="aws_elastic_beanstalk",hOe="azure_vm",mOe="azure_container_instances",gOe="azure_aks",yOe="azure_functions",SOe="azure_app_service",EOe="gcp_compute_engine",bOe="gcp_cloud_run",_Oe="gcp_kubernetes_engine",TOe="gcp_cloud_functions",vOe="gcp_app_engine",iHt=aOe,sHt=cOe,oHt=uOe,aHt=lOe,cHt=dOe,uHt=fOe,lHt=pOe,dHt=hOe,fHt=mOe,pHt=gOe,hHt=yOe,mHt=SOe,gHt=EOe,yHt=bOe,SHt=_Oe,EHt=TOe,bHt=vOe,_Ht=ws([aOe,cOe,uOe,lOe,dOe,fOe,pOe,hOe,mOe,gOe,yOe,SOe,EOe,bOe,_Oe,TOe,vOe]),AOe="ec2",ROe="fargate",THt=AOe,vHt=ROe,AHt=ws([AOe,ROe]),wOe="amd64",kOe="arm32",IOe="arm64",xOe="ia64",OOe="ppc32",NOe="ppc64",POe="x86",RHt=wOe,wHt=kOe,kHt=IOe,IHt=xOe,xHt=OOe,OHt=NOe,NHt=POe,PHt=ws([wOe,kOe,IOe,xOe,OOe,NOe,POe]),COe="windows",MOe="linux",LOe="darwin",DOe="freebsd",UOe="netbsd",FOe="openbsd",jOe="dragonflybsd",HOe="hpux",qOe="aix",BOe="solaris",GOe="z_os",CHt=COe,MHt=MOe,LHt=LOe,DHt=DOe,UHt=UOe,FHt=FOe,jHt=jOe,HHt=HOe,qHt=qOe,BHt=BOe,GHt=GOe,zHt=ws([COe,MOe,LOe,DOe,UOe,FOe,jOe,HOe,qOe,BOe,GOe]),zOe="cpp",VOe="dotnet",WOe="erlang",KOe="go",ZOe="java",YOe="nodejs",JOe="php",XOe="python",QOe="ruby",$Oe="webjs",VHt=zOe,WHt=VOe,KHt=WOe,ZHt=KOe,YHt=ZOe,JHt=YOe,XHt=JOe,QHt=XOe,$Ht=QOe,eqt=$Oe,tqt=ws([zOe,VOe,WOe,KOe,ZOe,YOe,JOe,XOe,QOe,$Oe])});var tNe=v(()=>{eNe()});var nqt,rqt,iqt,sqt,oqt,aqt,cqt,uqt,lqt,dqt,fqt,pqt,hqt,mqt,gqt,yqt,Sqt,Eqt,bqt,_qt,Tqt,vqt,Aqt,Rqt,wqt,uJ,lJ,kqt,lA,Iqt,dJ,fJ,xqt,gb,Oqt,Nqt,Pqt,Cqt,Mqt,Lqt,Dqt,Uqt,ayr,cyr,pJ,Fqt,jqt,Hqt,qqt,Bqt,Gqt,yb,zqt,Vqt,Wqt,uyr,Kqt,Zqt,Yqt,Jqt,lyr,Xqt,Qqt,$qt,eBt,cm,um,tBt,nBt,rBt,iBt,sBt,oBt,aBt,cBt,uBt,dyr,lBt,dBt,fBt,pBt,hBt,mBt,hJ,mJ,gBt,gJ,yJ,yBt,SBt,fyr,pyr,EBt,bBt,_Bt,TBt,vBt,ABt,RBt,wBt,hyr,kBt,SJ,EJ,IBt,bJ,xBt,_J,OBt,NBt,PBt,CBt,MBt,LBt,DBt,UBt,FBt,myr,jBt,HBt,gyr,qBt,BBt,yyr,GBt,zBt,VBt,WBt,KBt,ZBt,YBt,JBt,dy,XBt,QBt,$Bt,TJ,nNe=v(()=>{nqt="aspnetcore.diagnostics.exception.result",rqt="aborted",iqt="handled",sqt="skipped",oqt="unhandled",aqt="aspnetcore.diagnostics.handler.type",cqt="aspnetcore.rate_limiting.policy",uqt="aspnetcore.rate_limiting.result",lqt="acquired",dqt="endpoint_limiter",fqt="global_limiter",pqt="request_canceled",hqt="aspnetcore.request.is_unhandled",mqt="aspnetcore.routing.is_fallback",gqt="aspnetcore.routing.match_status",yqt="failure",Sqt="success",Eqt="aspnetcore.user.is_authenticated",bqt="client.address",_qt="client.port",Tqt="code.column.number",vqt="code.file.path",Aqt="code.function.name",Rqt="code.line.number",wqt="code.stacktrace",uJ="db.collection.name",lJ="db.namespace",kqt="db.operation.batch.size",lA="db.operation.name",Iqt="db.query.summary",dJ="db.query.text",fJ="db.response.status_code",xqt="db.stored_procedure.name",gb="db.system.name",Oqt="mariadb",Nqt="microsoft.sql_server",Pqt="mysql",Cqt="postgresql",Mqt="dotnet.gc.heap.generation",Lqt="gen0",Dqt="gen1",Uqt="gen2",ayr="loh",cyr="poh",pJ="error.type",Fqt="_OTHER",jqt="exception.escaped",Hqt="exception.message",qqt="exception.stacktrace",Bqt="exception.type",Gqt=e=>`http.request.header.${e}`,yb="http.request.method",zqt="_OTHER",Vqt="CONNECT",Wqt="DELETE",uyr="GET",Kqt="HEAD",Zqt="OPTIONS",Yqt="PATCH",Jqt="POST",lyr="PUT",Xqt="TRACE",Qqt="http.request.method_original",$qt="http.request.resend_count",eBt=e=>`http.response.header.${e}`,cm="http.response.status_code",um="http.route",tBt="jvm.gc.action",nBt="jvm.gc.name",rBt="jvm.memory.pool.name",iBt="jvm.memory.type",sBt="heap",oBt="non_heap",aBt="jvm.thread.daemon",cBt="jvm.thread.state",uBt="blocked",dyr="new",lBt="runnable",dBt="terminated",fBt="timed_waiting",pBt="waiting",hBt="network.local.address",mBt="network.local.port",hJ="network.peer.address",mJ="network.peer.port",gBt="network.protocol.name",gJ="network.protocol.version",yJ="network.transport",yBt="pipe",SBt="quic",fyr="tcp",pyr="udp",EBt="unix",bBt="network.type",_Bt="ipv4",TBt="ipv6",vBt="otel.scope.name",ABt="otel.scope.version",RBt="otel.status_code",wBt="ERROR",hyr="OK",kBt="otel.status_description",SJ="server.address",EJ="server.port",IBt="service.instance.id",bJ="service.name",xBt="service.namespace",_J="service.version",OBt="signalr.connection.status",NBt="app_shutdown",PBt="normal_closure",CBt="timeout",MBt="signalr.transport",LBt="long_polling",DBt="server_sent_events",UBt="web_sockets",FBt="telemetry.sdk.language",myr="cpp",jBt="dotnet",HBt="erlang",gyr="go",qBt="java",BBt="nodejs",yyr="php",GBt="python",zBt="ruby",VBt="rust",WBt="swift",KBt="webjs",ZBt="telemetry.sdk.name",YBt="telemetry.sdk.version",JBt="url.fragment",dy="url.full",XBt="url.path",QBt="url.query",$Bt="url.scheme",TJ="user_agent.original"});var 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,LGt,DGt,UGt,FGt,jGt,HGt,qGt,BGt,GGt,zGt,VGt,WGt,KGt,ZGt,YGt,JGt,rNe=v(()=>{eGt="aspnetcore.diagnostics.exceptions",tGt="aspnetcore.rate_limiting.active_request_leases",nGt="aspnetcore.rate_limiting.queued_requests",rGt="aspnetcore.rate_limiting.request.time_in_queue",iGt="aspnetcore.rate_limiting.request_lease.duration",sGt="aspnetcore.rate_limiting.requests",oGt="aspnetcore.routing.match_attempts",aGt="db.client.operation.duration",cGt="dotnet.assembly.count",uGt="dotnet.exceptions",lGt="dotnet.gc.collections",dGt="dotnet.gc.heap.total_allocated",fGt="dotnet.gc.last_collection.heap.fragmentation.size",pGt="dotnet.gc.last_collection.heap.size",hGt="dotnet.gc.last_collection.memory.committed_size",mGt="dotnet.gc.pause.time",gGt="dotnet.jit.compilation.time",yGt="dotnet.jit.compiled_il.size",SGt="dotnet.jit.compiled_methods",EGt="dotnet.monitor.lock_contentions",bGt="dotnet.process.cpu.count",_Gt="dotnet.process.cpu.time",TGt="dotnet.process.memory.working_set",vGt="dotnet.thread_pool.queue.length",AGt="dotnet.thread_pool.thread.count",RGt="dotnet.thread_pool.work_item.count",wGt="dotnet.timer.count",kGt="http.client.request.duration",IGt="http.server.request.duration",xGt="jvm.class.count",OGt="jvm.class.loaded",NGt="jvm.class.unloaded",PGt="jvm.cpu.count",CGt="jvm.cpu.recent_utilization",MGt="jvm.cpu.time",LGt="jvm.gc.duration",DGt="jvm.memory.committed",UGt="jvm.memory.limit",FGt="jvm.memory.used",jGt="jvm.memory.used_after_last_gc",HGt="jvm.thread.count",qGt="kestrel.active_connections",BGt="kestrel.active_tls_handshakes",GGt="kestrel.connection.duration",zGt="kestrel.queued_connections",VGt="kestrel.queued_requests",WGt="kestrel.rejected_connections",KGt="kestrel.tls_handshake.duration",ZGt="kestrel.upgraded_connections",YGt="signalr.server.active_connections",JGt="signalr.server.connection.duration"});var XGt,iNe=v(()=>{XGt="exception"});var Mr={};Rr(Mr,{ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED:()=>rqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED:()=>iqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED:()=>sqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED:()=>oqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED:()=>lqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER:()=>dqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER:()=>fqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED:()=>pqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE:()=>yqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS:()=>Sqt,ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT:()=>nqt,ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE:()=>aqt,ATTR_ASPNETCORE_RATE_LIMITING_POLICY:()=>cqt,ATTR_ASPNETCORE_RATE_LIMITING_RESULT:()=>uqt,ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED:()=>hqt,ATTR_ASPNETCORE_ROUTING_IS_FALLBACK:()=>mqt,ATTR_ASPNETCORE_ROUTING_MATCH_STATUS:()=>gqt,ATTR_ASPNETCORE_USER_IS_AUTHENTICATED:()=>Eqt,ATTR_CLIENT_ADDRESS:()=>bqt,ATTR_CLIENT_PORT:()=>_qt,ATTR_CODE_COLUMN_NUMBER:()=>Tqt,ATTR_CODE_FILE_PATH:()=>vqt,ATTR_CODE_FUNCTION_NAME:()=>Aqt,ATTR_CODE_LINE_NUMBER:()=>Rqt,ATTR_CODE_STACKTRACE:()=>wqt,ATTR_DB_COLLECTION_NAME:()=>uJ,ATTR_DB_NAMESPACE:()=>lJ,ATTR_DB_OPERATION_BATCH_SIZE:()=>kqt,ATTR_DB_OPERATION_NAME:()=>lA,ATTR_DB_QUERY_SUMMARY:()=>Iqt,ATTR_DB_QUERY_TEXT:()=>dJ,ATTR_DB_RESPONSE_STATUS_CODE:()=>fJ,ATTR_DB_STORED_PROCEDURE_NAME:()=>xqt,ATTR_DB_SYSTEM_NAME:()=>gb,ATTR_DOTNET_GC_HEAP_GENERATION:()=>Mqt,ATTR_ERROR_TYPE:()=>pJ,ATTR_EXCEPTION_ESCAPED:()=>jqt,ATTR_EXCEPTION_MESSAGE:()=>Hqt,ATTR_EXCEPTION_STACKTRACE:()=>qqt,ATTR_EXCEPTION_TYPE:()=>Bqt,ATTR_HTTP_REQUEST_HEADER:()=>Gqt,ATTR_HTTP_REQUEST_METHOD:()=>yb,ATTR_HTTP_REQUEST_METHOD_ORIGINAL:()=>Qqt,ATTR_HTTP_REQUEST_RESEND_COUNT:()=>$qt,ATTR_HTTP_RESPONSE_HEADER:()=>eBt,ATTR_HTTP_RESPONSE_STATUS_CODE:()=>cm,ATTR_HTTP_ROUTE:()=>um,ATTR_JVM_GC_ACTION:()=>tBt,ATTR_JVM_GC_NAME:()=>nBt,ATTR_JVM_MEMORY_POOL_NAME:()=>rBt,ATTR_JVM_MEMORY_TYPE:()=>iBt,ATTR_JVM_THREAD_DAEMON:()=>aBt,ATTR_JVM_THREAD_STATE:()=>cBt,ATTR_NETWORK_LOCAL_ADDRESS:()=>hBt,ATTR_NETWORK_LOCAL_PORT:()=>mBt,ATTR_NETWORK_PEER_ADDRESS:()=>hJ,ATTR_NETWORK_PEER_PORT:()=>mJ,ATTR_NETWORK_PROTOCOL_NAME:()=>gBt,ATTR_NETWORK_PROTOCOL_VERSION:()=>gJ,ATTR_NETWORK_TRANSPORT:()=>yJ,ATTR_NETWORK_TYPE:()=>bBt,ATTR_OTEL_SCOPE_NAME:()=>vBt,ATTR_OTEL_SCOPE_VERSION:()=>ABt,ATTR_OTEL_STATUS_CODE:()=>RBt,ATTR_OTEL_STATUS_DESCRIPTION:()=>kBt,ATTR_SERVER_ADDRESS:()=>SJ,ATTR_SERVER_PORT:()=>EJ,ATTR_SERVICE_INSTANCE_ID:()=>IBt,ATTR_SERVICE_NAME:()=>bJ,ATTR_SERVICE_NAMESPACE:()=>xBt,ATTR_SERVICE_VERSION:()=>_J,ATTR_SIGNALR_CONNECTION_STATUS:()=>OBt,ATTR_SIGNALR_TRANSPORT:()=>MBt,ATTR_TELEMETRY_SDK_LANGUAGE:()=>FBt,ATTR_TELEMETRY_SDK_NAME:()=>ZBt,ATTR_TELEMETRY_SDK_VERSION:()=>YBt,ATTR_URL_FRAGMENT:()=>JBt,ATTR_URL_FULL:()=>dy,ATTR_URL_PATH:()=>XBt,ATTR_URL_QUERY:()=>QBt,ATTR_URL_SCHEME:()=>$Bt,ATTR_USER_AGENT_ORIGINAL:()=>TJ,AWSECSLAUNCHTYPEVALUES_EC2:()=>THt,AWSECSLAUNCHTYPEVALUES_FARGATE:()=>vHt,AwsEcsLaunchtypeValues:()=>AHt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS:()=>iHt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC:()=>sHt,CLOUDPLATFORMVALUES_AWS_EC2:()=>oHt,CLOUDPLATFORMVALUES_AWS_ECS:()=>aHt,CLOUDPLATFORMVALUES_AWS_EKS:()=>cHt,CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK:()=>lHt,CLOUDPLATFORMVALUES_AWS_LAMBDA:()=>uHt,CLOUDPLATFORMVALUES_AZURE_AKS:()=>pHt,CLOUDPLATFORMVALUES_AZURE_APP_SERVICE:()=>mHt,CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES:()=>fHt,CLOUDPLATFORMVALUES_AZURE_FUNCTIONS:()=>hHt,CLOUDPLATFORMVALUES_AZURE_VM:()=>dHt,CLOUDPLATFORMVALUES_GCP_APP_ENGINE:()=>bHt,CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS:()=>EHt,CLOUDPLATFORMVALUES_GCP_CLOUD_RUN:()=>yHt,CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE:()=>gHt,CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE:()=>SHt,CLOUDPROVIDERVALUES_ALIBABA_CLOUD:()=>$jt,CLOUDPROVIDERVALUES_AWS:()=>eHt,CLOUDPROVIDERVALUES_AZURE:()=>tHt,CLOUDPROVIDERVALUES_GCP:()=>nHt,CloudPlatformValues:()=>_Ht,CloudProviderValues:()=>rHt,DBCASSANDRACONSISTENCYLEVELVALUES_ALL:()=>F1t,DBCASSANDRACONSISTENCYLEVELVALUES_ANY:()=>W1t,DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM:()=>j1t,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE:()=>V1t,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM:()=>q1t,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL:()=>Z1t,DBCASSANDRACONSISTENCYLEVELVALUES_ONE:()=>B1t,DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM:()=>H1t,DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL:()=>K1t,DBCASSANDRACONSISTENCYLEVELVALUES_THREE:()=>z1t,DBCASSANDRACONSISTENCYLEVELVALUES_TWO:()=>G1t,DBSYSTEMVALUES_ADABAS:()=>a1t,DBSYSTEMVALUES_CACHE:()=>o1t,DBSYSTEMVALUES_CASSANDRA:()=>A1t,DBSYSTEMVALUES_CLOUDSCAPE:()=>QDt,DBSYSTEMVALUES_COCKROACHDB:()=>D1t,DBSYSTEMVALUES_COLDFUSION:()=>v1t,DBSYSTEMVALUES_COSMOSDB:()=>O1t,DBSYSTEMVALUES_COUCHBASE:()=>I1t,DBSYSTEMVALUES_COUCHDB:()=>x1t,DBSYSTEMVALUES_DB2:()=>ZDt,DBSYSTEMVALUES_DERBY:()=>u1t,DBSYSTEMVALUES_DYNAMODB:()=>N1t,DBSYSTEMVALUES_EDB:()=>s1t,DBSYSTEMVALUES_ELASTICSEARCH:()=>M1t,DBSYSTEMVALUES_FILEMAKER:()=>l1t,DBSYSTEMVALUES_FIREBIRD:()=>c1t,DBSYSTEMVALUES_FIRSTSQL:()=>i1t,DBSYSTEMVALUES_GEODE:()=>C1t,DBSYSTEMVALUES_H2:()=>T1t,DBSYSTEMVALUES_HANADB:()=>n1t,DBSYSTEMVALUES_HBASE:()=>R1t,DBSYSTEMVALUES_HIVE:()=>XDt,DBSYSTEMVALUES_HSQLDB:()=>$Dt,DBSYSTEMVALUES_INFORMIX:()=>d1t,DBSYSTEMVALUES_INGRES:()=>r1t,DBSYSTEMVALUES_INSTANTDB:()=>f1t,DBSYSTEMVALUES_INTERBASE:()=>p1t,DBSYSTEMVALUES_MARIADB:()=>h1t,DBSYSTEMVALUES_MAXDB:()=>t1t,DBSYSTEMVALUES_MEMCACHED:()=>L1t,DBSYSTEMVALUES_MONGODB:()=>w1t,DBSYSTEMVALUES_MSSQL:()=>VDt,DBSYSTEMVALUES_MYSQL:()=>WDt,DBSYSTEMVALUES_NEO4J:()=>P1t,DBSYSTEMVALUES_NETEZZA:()=>m1t,DBSYSTEMVALUES_ORACLE:()=>KDt,DBSYSTEMVALUES_OTHER_SQL:()=>zDt,DBSYSTEMVALUES_PERVASIVE:()=>g1t,DBSYSTEMVALUES_POINTBASE:()=>y1t,DBSYSTEMVALUES_POSTGRESQL:()=>YDt,DBSYSTEMVALUES_PROGRESS:()=>e1t,DBSYSTEMVALUES_REDIS:()=>k1t,DBSYSTEMVALUES_REDSHIFT:()=>JDt,DBSYSTEMVALUES_SQLITE:()=>S1t,DBSYSTEMVALUES_SYBASE:()=>E1t,DBSYSTEMVALUES_TERADATA:()=>b1t,DBSYSTEMVALUES_VERTICA:()=>_1t,DB_SYSTEM_NAME_VALUE_MARIADB:()=>Oqt,DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER:()=>Nqt,DB_SYSTEM_NAME_VALUE_MYSQL:()=>Pqt,DB_SYSTEM_NAME_VALUE_POSTGRESQL:()=>Cqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN0:()=>Lqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN1:()=>Dqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN2:()=>Uqt,DOTNET_GC_HEAP_GENERATION_VALUE_LOH:()=>ayr,DOTNET_GC_HEAP_GENERATION_VALUE_POH:()=>cyr,DbCassandraConsistencyLevelValues:()=>Y1t,DbSystemValues:()=>U1t,ERROR_TYPE_VALUE_OTHER:()=>Fqt,EVENT_EXCEPTION:()=>XGt,FAASDOCUMENTOPERATIONVALUES_DELETE:()=>iUt,FAASDOCUMENTOPERATIONVALUES_EDIT:()=>rUt,FAASDOCUMENTOPERATIONVALUES_INSERT:()=>nUt,FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD:()=>oUt,FAASINVOKEDPROVIDERVALUES_AWS:()=>aUt,FAASINVOKEDPROVIDERVALUES_AZURE:()=>cUt,FAASINVOKEDPROVIDERVALUES_GCP:()=>uUt,FAASTRIGGERVALUES_DATASOURCE:()=>J1t,FAASTRIGGERVALUES_HTTP:()=>X1t,FAASTRIGGERVALUES_OTHER:()=>eUt,FAASTRIGGERVALUES_PUBSUB:()=>Q1t,FAASTRIGGERVALUES_TIMER:()=>$1t,FaasDocumentOperationValues:()=>sUt,FaasInvokedProviderValues:()=>lUt,FaasTriggerValues:()=>tUt,HOSTARCHVALUES_AMD64:()=>RHt,HOSTARCHVALUES_ARM32:()=>wHt,HOSTARCHVALUES_ARM64:()=>kHt,HOSTARCHVALUES_IA64:()=>IHt,HOSTARCHVALUES_PPC32:()=>xHt,HOSTARCHVALUES_PPC64:()=>OHt,HOSTARCHVALUES_X86:()=>NHt,HTTPFLAVORVALUES_HTTP_1_0:()=>KUt,HTTPFLAVORVALUES_HTTP_1_1:()=>ZUt,HTTPFLAVORVALUES_HTTP_2_0:()=>YUt,HTTPFLAVORVALUES_QUIC:()=>XUt,HTTPFLAVORVALUES_SPDY:()=>JUt,HTTP_REQUEST_METHOD_VALUE_CONNECT:()=>Vqt,HTTP_REQUEST_METHOD_VALUE_DELETE:()=>Wqt,HTTP_REQUEST_METHOD_VALUE_GET:()=>uyr,HTTP_REQUEST_METHOD_VALUE_HEAD:()=>Kqt,HTTP_REQUEST_METHOD_VALUE_OPTIONS:()=>Zqt,HTTP_REQUEST_METHOD_VALUE_OTHER:()=>zqt,HTTP_REQUEST_METHOD_VALUE_PATCH:()=>Yqt,HTTP_REQUEST_METHOD_VALUE_POST:()=>Jqt,HTTP_REQUEST_METHOD_VALUE_PUT:()=>lyr,HTTP_REQUEST_METHOD_VALUE_TRACE:()=>Xqt,HostArchValues:()=>PHt,HttpFlavorValues:()=>QUt,JVM_MEMORY_TYPE_VALUE_HEAP:()=>sBt,JVM_MEMORY_TYPE_VALUE_NON_HEAP:()=>oBt,JVM_THREAD_STATE_VALUE_BLOCKED:()=>uBt,JVM_THREAD_STATE_VALUE_NEW:()=>dyr,JVM_THREAD_STATE_VALUE_RUNNABLE:()=>lBt,JVM_THREAD_STATE_VALUE_TERMINATED:()=>dBt,JVM_THREAD_STATE_VALUE_TIMED_WAITING:()=>fBt,JVM_THREAD_STATE_VALUE_WAITING:()=>pBt,MESSAGETYPEVALUES_RECEIVED:()=>AFt,MESSAGETYPEVALUES_SENT:()=>vFt,MESSAGINGDESTINATIONKINDVALUES_QUEUE:()=>$Ut,MESSAGINGDESTINATIONKINDVALUES_TOPIC:()=>eFt,MESSAGINGOPERATIONVALUES_PROCESS:()=>rFt,MESSAGINGOPERATIONVALUES_RECEIVE:()=>nFt,METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS:()=>eGt,METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES:()=>tGt,METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS:()=>nGt,METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS:()=>sGt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION:()=>iGt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE:()=>rGt,METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS:()=>oGt,METRIC_DB_CLIENT_OPERATION_DURATION:()=>aGt,METRIC_DOTNET_ASSEMBLY_COUNT:()=>cGt,METRIC_DOTNET_EXCEPTIONS:()=>uGt,METRIC_DOTNET_GC_COLLECTIONS:()=>lGt,METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED:()=>dGt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE:()=>fGt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE:()=>pGt,METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE:()=>hGt,METRIC_DOTNET_GC_PAUSE_TIME:()=>mGt,METRIC_DOTNET_JIT_COMPILATION_TIME:()=>gGt,METRIC_DOTNET_JIT_COMPILED_IL_SIZE:()=>yGt,METRIC_DOTNET_JIT_COMPILED_METHODS:()=>SGt,METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS:()=>EGt,METRIC_DOTNET_PROCESS_CPU_COUNT:()=>bGt,METRIC_DOTNET_PROCESS_CPU_TIME:()=>_Gt,METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET:()=>TGt,METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH:()=>vGt,METRIC_DOTNET_THREAD_POOL_THREAD_COUNT:()=>AGt,METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT:()=>RGt,METRIC_DOTNET_TIMER_COUNT:()=>wGt,METRIC_HTTP_CLIENT_REQUEST_DURATION:()=>kGt,METRIC_HTTP_SERVER_REQUEST_DURATION:()=>IGt,METRIC_JVM_CLASS_COUNT:()=>xGt,METRIC_JVM_CLASS_LOADED:()=>OGt,METRIC_JVM_CLASS_UNLOADED:()=>NGt,METRIC_JVM_CPU_COUNT:()=>PGt,METRIC_JVM_CPU_RECENT_UTILIZATION:()=>CGt,METRIC_JVM_CPU_TIME:()=>MGt,METRIC_JVM_GC_DURATION:()=>LGt,METRIC_JVM_MEMORY_COMMITTED:()=>DGt,METRIC_JVM_MEMORY_LIMIT:()=>UGt,METRIC_JVM_MEMORY_USED:()=>FGt,METRIC_JVM_MEMORY_USED_AFTER_LAST_GC:()=>jGt,METRIC_JVM_THREAD_COUNT:()=>HGt,METRIC_KESTREL_ACTIVE_CONNECTIONS:()=>qGt,METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES:()=>BGt,METRIC_KESTREL_CONNECTION_DURATION:()=>GGt,METRIC_KESTREL_QUEUED_CONNECTIONS:()=>zGt,METRIC_KESTREL_QUEUED_REQUESTS:()=>VGt,METRIC_KESTREL_REJECTED_CONNECTIONS:()=>WGt,METRIC_KESTREL_TLS_HANDSHAKE_DURATION:()=>KGt,METRIC_KESTREL_UPGRADED_CONNECTIONS:()=>ZGt,METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS:()=>YGt,METRIC_SIGNALR_SERVER_CONNECTION_DURATION:()=>JGt,MessageTypeValues:()=>RFt,MessagingDestinationKindValues:()=>tFt,MessagingOperationValues:()=>iFt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA:()=>IUt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT:()=>NUt,NETHOSTCONNECTIONSUBTYPEVALUES_EDGE:()=>wUt,NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD:()=>FUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0:()=>xUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A:()=>OUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B:()=>DUt,NETHOSTCONNECTIONSUBTYPEVALUES_GPRS:()=>RUt,NETHOSTCONNECTIONSUBTYPEVALUES_GSM:()=>HUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA:()=>PUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPA:()=>MUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP:()=>jUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA:()=>CUt,NETHOSTCONNECTIONSUBTYPEVALUES_IDEN:()=>LUt,NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN:()=>BUt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE:()=>UUt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA:()=>VUt,NETHOSTCONNECTIONSUBTYPEVALUES_NR:()=>GUt,NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA:()=>zUt,NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA:()=>qUt,NETHOSTCONNECTIONSUBTYPEVALUES_UMTS:()=>kUt,NETHOSTCONNECTIONTYPEVALUES_CELL:()=>_Ut,NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE:()=>TUt,NETHOSTCONNECTIONTYPEVALUES_UNKNOWN:()=>vUt,NETHOSTCONNECTIONTYPEVALUES_WIFI:()=>EUt,NETHOSTCONNECTIONTYPEVALUES_WIRED:()=>bUt,NETTRANSPORTVALUES_INPROC:()=>gUt,NETTRANSPORTVALUES_IP:()=>pUt,NETTRANSPORTVALUES_IP_TCP:()=>dUt,NETTRANSPORTVALUES_IP_UDP:()=>fUt,NETTRANSPORTVALUES_OTHER:()=>yUt,NETTRANSPORTVALUES_PIPE:()=>mUt,NETTRANSPORTVALUES_UNIX:()=>hUt,NETWORK_TRANSPORT_VALUE_PIPE:()=>yBt,NETWORK_TRANSPORT_VALUE_QUIC:()=>SBt,NETWORK_TRANSPORT_VALUE_TCP:()=>fyr,NETWORK_TRANSPORT_VALUE_UDP:()=>pyr,NETWORK_TRANSPORT_VALUE_UNIX:()=>EBt,NETWORK_TYPE_VALUE_IPV4:()=>_Bt,NETWORK_TYPE_VALUE_IPV6:()=>TBt,NetHostConnectionSubtypeValues:()=>WUt,NetHostConnectionTypeValues:()=>AUt,NetTransportValues:()=>SUt,OSTYPEVALUES_AIX:()=>qHt,OSTYPEVALUES_DARWIN:()=>LHt,OSTYPEVALUES_DRAGONFLYBSD:()=>jHt,OSTYPEVALUES_FREEBSD:()=>DHt,OSTYPEVALUES_HPUX:()=>HHt,OSTYPEVALUES_LINUX:()=>MHt,OSTYPEVALUES_NETBSD:()=>UHt,OSTYPEVALUES_OPENBSD:()=>FHt,OSTYPEVALUES_SOLARIS:()=>BHt,OSTYPEVALUES_WINDOWS:()=>CHt,OSTYPEVALUES_Z_OS:()=>GHt,OTEL_STATUS_CODE_VALUE_ERROR:()=>wBt,OTEL_STATUS_CODE_VALUE_OK:()=>hyr,OsTypeValues:()=>zHt,RPCGRPCSTATUSCODEVALUES_ABORTED:()=>mFt,RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS:()=>dFt,RPCGRPCSTATUSCODEVALUES_CANCELLED:()=>oFt,RPCGRPCSTATUSCODEVALUES_DATA_LOSS:()=>bFt,RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED:()=>uFt,RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION:()=>hFt,RPCGRPCSTATUSCODEVALUES_INTERNAL:()=>SFt,RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT:()=>cFt,RPCGRPCSTATUSCODEVALUES_NOT_FOUND:()=>lFt,RPCGRPCSTATUSCODEVALUES_OK:()=>sFt,RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE:()=>gFt,RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED:()=>fFt,RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED:()=>pFt,RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED:()=>_Ft,RPCGRPCSTATUSCODEVALUES_UNAVAILABLE:()=>EFt,RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED:()=>yFt,RPCGRPCSTATUSCODEVALUES_UNKNOWN:()=>aFt,RpcGrpcStatusCodeValues:()=>TFt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET:()=>tDt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:()=>pDt,SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ:()=>QLt,SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY:()=>ZLt,SEMATTRS_AWS_DYNAMODB_COUNT:()=>dDt,SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE:()=>oDt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:()=>iDt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:()=>hDt,SEMATTRS_AWS_DYNAMODB_INDEX_NAME:()=>nDt,SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS:()=>YLt,SEMATTRS_AWS_DYNAMODB_LIMIT:()=>eDt,SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:()=>sDt,SEMATTRS_AWS_DYNAMODB_PROJECTION:()=>$Lt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:()=>JLt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:()=>XLt,SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT:()=>fDt,SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD:()=>cDt,SEMATTRS_AWS_DYNAMODB_SEGMENT:()=>uDt,SEMATTRS_AWS_DYNAMODB_SELECT:()=>rDt,SEMATTRS_AWS_DYNAMODB_TABLE_COUNT:()=>aDt,SEMATTRS_AWS_DYNAMODB_TABLE_NAMES:()=>KLt,SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS:()=>lDt,SEMATTRS_AWS_LAMBDA_INVOKED_ARN:()=>jMt,SEMATTRS_CODE_FILEPATH:()=>ULt,SEMATTRS_CODE_FUNCTION:()=>LLt,SEMATTRS_CODE_LINENO:()=>FLt,SEMATTRS_CODE_NAMESPACE:()=>DLt,SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL:()=>ZMt,SEMATTRS_DB_CASSANDRA_COORDINATOR_DC:()=>$Mt,SEMATTRS_DB_CASSANDRA_COORDINATOR_ID:()=>QMt,SEMATTRS_DB_CASSANDRA_IDEMPOTENCE:()=>JMt,SEMATTRS_DB_CASSANDRA_KEYSPACE:()=>WMt,SEMATTRS_DB_CASSANDRA_PAGE_SIZE:()=>KMt,SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:()=>XMt,SEMATTRS_DB_CASSANDRA_TABLE:()=>YMt,SEMATTRS_DB_CONNECTION_STRING:()=>HMt,SEMATTRS_DB_HBASE_NAMESPACE:()=>eLt,SEMATTRS_DB_JDBC_DRIVER_CLASSNAME:()=>BMt,SEMATTRS_DB_MONGODB_COLLECTION:()=>nLt,SEMATTRS_DB_MSSQL_INSTANCE_NAME:()=>VMt,SEMATTRS_DB_NAME:()=>GMt,SEMATTRS_DB_OPERATION:()=>zMt,SEMATTRS_DB_REDIS_DATABASE_INDEX:()=>tLt,SEMATTRS_DB_SQL_TABLE:()=>rLt,SEMATTRS_DB_STATEMENT:()=>J8,SEMATTRS_DB_SYSTEM:()=>Y8,SEMATTRS_DB_USER:()=>qMt,SEMATTRS_ENDUSER_ID:()=>OLt,SEMATTRS_ENDUSER_ROLE:()=>NLt,SEMATTRS_ENDUSER_SCOPE:()=>PLt,SEMATTRS_EXCEPTION_ESCAPED:()=>aLt,SEMATTRS_EXCEPTION_MESSAGE:()=>sLt,SEMATTRS_EXCEPTION_STACKTRACE:()=>oLt,SEMATTRS_EXCEPTION_TYPE:()=>iLt,SEMATTRS_FAAS_COLDSTART:()=>mLt,SEMATTRS_FAAS_CRON:()=>hLt,SEMATTRS_FAAS_DOCUMENT_COLLECTION:()=>uLt,SEMATTRS_FAAS_DOCUMENT_NAME:()=>fLt,SEMATTRS_FAAS_DOCUMENT_OPERATION:()=>lLt,SEMATTRS_FAAS_DOCUMENT_TIME:()=>dLt,SEMATTRS_FAAS_EXECUTION:()=>cLt,SEMATTRS_FAAS_INVOKED_NAME:()=>gLt,SEMATTRS_FAAS_INVOKED_PROVIDER:()=>yLt,SEMATTRS_FAAS_INVOKED_REGION:()=>SLt,SEMATTRS_FAAS_TIME:()=>pLt,SEMATTRS_FAAS_TRIGGER:()=>X8,SEMATTRS_HTTP_CLIENT_IP:()=>WLt,SEMATTRS_HTTP_FLAVOR:()=>qLt,SEMATTRS_HTTP_HOST:()=>jLt,SEMATTRS_HTTP_METHOD:()=>lO,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH:()=>GLt,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:()=>zLt,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH:()=>nJ,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:()=>rJ,SEMATTRS_HTTP_ROUTE:()=>iJ,SEMATTRS_HTTP_SCHEME:()=>HLt,SEMATTRS_HTTP_SERVER_NAME:()=>VLt,SEMATTRS_HTTP_STATUS_CODE:()=>mb,SEMATTRS_HTTP_TARGET:()=>tJ,SEMATTRS_HTTP_URL:()=>uA,SEMATTRS_HTTP_USER_AGENT:()=>BLt,SEMATTRS_MESSAGE_COMPRESSED_SIZE:()=>qDt,SEMATTRS_MESSAGE_ID:()=>HDt,SEMATTRS_MESSAGE_TYPE:()=>jDt,SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE:()=>BDt,SEMATTRS_MESSAGING_CONSUMER_ID:()=>wDt,SEMATTRS_MESSAGING_CONVERSATION_ID:()=>TDt,SEMATTRS_MESSAGING_DESTINATION:()=>mDt,SEMATTRS_MESSAGING_DESTINATION_KIND:()=>gDt,SEMATTRS_MESSAGING_KAFKA_CLIENT_ID:()=>ODt,SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP:()=>xDt,SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY:()=>IDt,SEMATTRS_MESSAGING_KAFKA_PARTITION:()=>NDt,SEMATTRS_MESSAGING_KAFKA_TOMBSTONE:()=>PDt,SEMATTRS_MESSAGING_MESSAGE_ID:()=>_Dt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:()=>ADt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:()=>vDt,SEMATTRS_MESSAGING_OPERATION:()=>RDt,SEMATTRS_MESSAGING_PROTOCOL:()=>SDt,SEMATTRS_MESSAGING_PROTOCOL_VERSION:()=>EDt,SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY:()=>kDt,SEMATTRS_MESSAGING_SYSTEM:()=>sJ,SEMATTRS_MESSAGING_TEMP_DESTINATION:()=>yDt,SEMATTRS_MESSAGING_URL:()=>bDt,SEMATTRS_NET_HOST_CARRIER_ICC:()=>ILt,SEMATTRS_NET_HOST_CARRIER_MCC:()=>wLt,SEMATTRS_NET_HOST_CARRIER_MNC:()=>kLt,SEMATTRS_NET_HOST_CARRIER_NAME:()=>RLt,SEMATTRS_NET_HOST_CONNECTION_SUBTYPE:()=>ALt,SEMATTRS_NET_HOST_CONNECTION_TYPE:()=>vLt,SEMATTRS_NET_HOST_IP:()=>$8,SEMATTRS_NET_HOST_NAME:()=>TLt,SEMATTRS_NET_HOST_PORT:()=>eJ,SEMATTRS_NET_PEER_IP:()=>Q8,SEMATTRS_NET_PEER_NAME:()=>_Lt,SEMATTRS_NET_PEER_PORT:()=>bLt,SEMATTRS_NET_TRANSPORT:()=>ELt,SEMATTRS_PEER_SERVICE:()=>xLt,SEMATTRS_RPC_GRPC_STATUS_CODE:()=>aJ,SEMATTRS_RPC_JSONRPC_ERROR_CODE:()=>UDt,SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE:()=>FDt,SEMATTRS_RPC_JSONRPC_REQUEST_ID:()=>DDt,SEMATTRS_RPC_JSONRPC_VERSION:()=>LDt,SEMATTRS_RPC_METHOD:()=>MDt,SEMATTRS_RPC_SERVICE:()=>oJ,SEMATTRS_RPC_SYSTEM:()=>CDt,SEMATTRS_THREAD_ID:()=>CLt,SEMATTRS_THREAD_NAME:()=>MLt,SEMRESATTRS_AWS_ECS_CLUSTER_ARN:()=>PFt,SEMRESATTRS_AWS_ECS_CONTAINER_ARN:()=>NFt,SEMRESATTRS_AWS_ECS_LAUNCHTYPE:()=>CFt,SEMRESATTRS_AWS_ECS_TASK_ARN:()=>MFt,SEMRESATTRS_AWS_ECS_TASK_FAMILY:()=>LFt,SEMRESATTRS_AWS_ECS_TASK_REVISION:()=>DFt,SEMRESATTRS_AWS_EKS_CLUSTER_ARN:()=>UFt,SEMRESATTRS_AWS_LOG_GROUP_ARNS:()=>jFt,SEMRESATTRS_AWS_LOG_GROUP_NAMES:()=>FFt,SEMRESATTRS_AWS_LOG_STREAM_ARNS:()=>qFt,SEMRESATTRS_AWS_LOG_STREAM_NAMES:()=>HFt,SEMRESATTRS_CLOUD_ACCOUNT_ID:()=>kFt,SEMRESATTRS_CLOUD_AVAILABILITY_ZONE:()=>xFt,SEMRESATTRS_CLOUD_PLATFORM:()=>OFt,SEMRESATTRS_CLOUD_PROVIDER:()=>wFt,SEMRESATTRS_CLOUD_REGION:()=>IFt,SEMRESATTRS_CONTAINER_ID:()=>GFt,SEMRESATTRS_CONTAINER_IMAGE_NAME:()=>VFt,SEMRESATTRS_CONTAINER_IMAGE_TAG:()=>WFt,SEMRESATTRS_CONTAINER_NAME:()=>BFt,SEMRESATTRS_CONTAINER_RUNTIME:()=>zFt,SEMRESATTRS_DEPLOYMENT_ENVIRONMENT:()=>KFt,SEMRESATTRS_DEVICE_ID:()=>ZFt,SEMRESATTRS_DEVICE_MODEL_IDENTIFIER:()=>YFt,SEMRESATTRS_DEVICE_MODEL_NAME:()=>JFt,SEMRESATTRS_FAAS_ID:()=>QFt,SEMRESATTRS_FAAS_INSTANCE:()=>ejt,SEMRESATTRS_FAAS_MAX_MEMORY:()=>tjt,SEMRESATTRS_FAAS_NAME:()=>XFt,SEMRESATTRS_FAAS_VERSION:()=>$Ft,SEMRESATTRS_HOST_ARCH:()=>sjt,SEMRESATTRS_HOST_ID:()=>njt,SEMRESATTRS_HOST_IMAGE_ID:()=>ajt,SEMRESATTRS_HOST_IMAGE_NAME:()=>ojt,SEMRESATTRS_HOST_IMAGE_VERSION:()=>cjt,SEMRESATTRS_HOST_NAME:()=>rjt,SEMRESATTRS_HOST_TYPE:()=>ijt,SEMRESATTRS_K8S_CLUSTER_NAME:()=>ujt,SEMRESATTRS_K8S_CONTAINER_NAME:()=>mjt,SEMRESATTRS_K8S_CRONJOB_NAME:()=>kjt,SEMRESATTRS_K8S_CRONJOB_UID:()=>wjt,SEMRESATTRS_K8S_DAEMONSET_NAME:()=>vjt,SEMRESATTRS_K8S_DAEMONSET_UID:()=>Tjt,SEMRESATTRS_K8S_DEPLOYMENT_NAME:()=>Ejt,SEMRESATTRS_K8S_DEPLOYMENT_UID:()=>Sjt,SEMRESATTRS_K8S_JOB_NAME:()=>Rjt,SEMRESATTRS_K8S_JOB_UID:()=>Ajt,SEMRESATTRS_K8S_NAMESPACE_NAME:()=>fjt,SEMRESATTRS_K8S_NODE_NAME:()=>ljt,SEMRESATTRS_K8S_NODE_UID:()=>djt,SEMRESATTRS_K8S_POD_NAME:()=>hjt,SEMRESATTRS_K8S_POD_UID:()=>pjt,SEMRESATTRS_K8S_REPLICASET_NAME:()=>yjt,SEMRESATTRS_K8S_REPLICASET_UID:()=>gjt,SEMRESATTRS_K8S_STATEFULSET_NAME:()=>_jt,SEMRESATTRS_K8S_STATEFULSET_UID:()=>bjt,SEMRESATTRS_OS_DESCRIPTION:()=>xjt,SEMRESATTRS_OS_NAME:()=>Ojt,SEMRESATTRS_OS_TYPE:()=>Ijt,SEMRESATTRS_OS_VERSION:()=>Njt,SEMRESATTRS_PROCESS_COMMAND:()=>Ljt,SEMRESATTRS_PROCESS_COMMAND_ARGS:()=>Ujt,SEMRESATTRS_PROCESS_COMMAND_LINE:()=>Djt,SEMRESATTRS_PROCESS_EXECUTABLE_NAME:()=>Cjt,SEMRESATTRS_PROCESS_EXECUTABLE_PATH:()=>Mjt,SEMRESATTRS_PROCESS_OWNER:()=>Fjt,SEMRESATTRS_PROCESS_PID:()=>Pjt,SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION:()=>qjt,SEMRESATTRS_PROCESS_RUNTIME_NAME:()=>jjt,SEMRESATTRS_PROCESS_RUNTIME_VERSION:()=>Hjt,SEMRESATTRS_SERVICE_INSTANCE_ID:()=>Gjt,SEMRESATTRS_SERVICE_NAME:()=>Bjt,SEMRESATTRS_SERVICE_NAMESPACE:()=>cJ,SEMRESATTRS_SERVICE_VERSION:()=>zjt,SEMRESATTRS_TELEMETRY_AUTO_VERSION:()=>Zjt,SEMRESATTRS_TELEMETRY_SDK_LANGUAGE:()=>Wjt,SEMRESATTRS_TELEMETRY_SDK_NAME:()=>Vjt,SEMRESATTRS_TELEMETRY_SDK_VERSION:()=>Kjt,SEMRESATTRS_WEBENGINE_DESCRIPTION:()=>Xjt,SEMRESATTRS_WEBENGINE_NAME:()=>Yjt,SEMRESATTRS_WEBENGINE_VERSION:()=>Jjt,SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN:()=>NBt,SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE:()=>PBt,SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT:()=>CBt,SIGNALR_TRANSPORT_VALUE_LONG_POLLING:()=>LBt,SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS:()=>DBt,SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS:()=>UBt,SemanticAttributes:()=>GDt,SemanticResourceAttributes:()=>Qjt,TELEMETRYSDKLANGUAGEVALUES_CPP:()=>VHt,TELEMETRYSDKLANGUAGEVALUES_DOTNET:()=>WHt,TELEMETRYSDKLANGUAGEVALUES_ERLANG:()=>KHt,TELEMETRYSDKLANGUAGEVALUES_GO:()=>ZHt,TELEMETRYSDKLANGUAGEVALUES_JAVA:()=>YHt,TELEMETRYSDKLANGUAGEVALUES_NODEJS:()=>JHt,TELEMETRYSDKLANGUAGEVALUES_PHP:()=>XHt,TELEMETRYSDKLANGUAGEVALUES_PYTHON:()=>QHt,TELEMETRYSDKLANGUAGEVALUES_RUBY:()=>$Ht,TELEMETRYSDKLANGUAGEVALUES_WEBJS:()=>eqt,TELEMETRY_SDK_LANGUAGE_VALUE_CPP:()=>myr,TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET:()=>jBt,TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG:()=>HBt,TELEMETRY_SDK_LANGUAGE_VALUE_GO:()=>gyr,TELEMETRY_SDK_LANGUAGE_VALUE_JAVA:()=>qBt,TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS:()=>BBt,TELEMETRY_SDK_LANGUAGE_VALUE_PHP:()=>yyr,TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON:()=>GBt,TELEMETRY_SDK_LANGUAGE_VALUE_RUBY:()=>zBt,TELEMETRY_SDK_LANGUAGE_VALUE_RUST:()=>VBt,TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT:()=>WBt,TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS:()=>KBt,TelemetrySdkLanguageValues:()=>tqt});var Nn=v(()=>{xxe();tNe();nNe();rNe();iNe()});var sNe=w(kF=>{"use strict";Object.defineProperty(kF,"__esModule",{value:!0});kF.ATTR_PROCESS_RUNTIME_NAME=void 0;kF.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var oNe=w(xF=>{"use strict";Object.defineProperty(xF,"__esModule",{value:!0});xF.SDK_INFO=void 0;var QGt=FAe(),IF=(Nn(),ke(Mr)),$Gt=sNe();xF.SDK_INFO={[IF.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[$Gt.ATTR_PROCESS_RUNTIME_NAME]:"node",[IF.ATTR_TELEMETRY_SDK_LANGUAGE]:IF.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[IF.ATTR_TELEMETRY_SDK_VERSION]:QGt.VERSION}});var aNe=w(Ba=>{"use strict";Object.defineProperty(Ba,"__esModule",{value:!0});Ba.otperformance=Ba.SDK_INFO=Ba._globalThis=Ba.getStringListFromEnv=Ba.getNumberFromEnv=Ba.getBooleanFromEnv=Ba.getStringFromEnv=void 0;var OF=DAe();Object.defineProperty(Ba,"getStringFromEnv",{enumerable:!0,get:function(){return OF.getStringFromEnv}});Object.defineProperty(Ba,"getBooleanFromEnv",{enumerable:!0,get:function(){return OF.getBooleanFromEnv}});Object.defineProperty(Ba,"getNumberFromEnv",{enumerable:!0,get:function(){return OF.getNumberFromEnv}});Object.defineProperty(Ba,"getStringListFromEnv",{enumerable:!0,get:function(){return OF.getStringListFromEnv}});var ezt=UAe();Object.defineProperty(Ba,"_globalThis",{enumerable:!0,get:function(){return ezt._globalThis}});var tzt=oNe();Object.defineProperty(Ba,"SDK_INFO",{enumerable:!0,get:function(){return tzt.SDK_INFO}});Ba.otperformance=performance});var vJ=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 Sb=aNe();Object.defineProperty(Ga,"SDK_INFO",{enumerable:!0,get:function(){return Sb.SDK_INFO}});Object.defineProperty(Ga,"_globalThis",{enumerable:!0,get:function(){return Sb._globalThis}});Object.defineProperty(Ga,"otperformance",{enumerable:!0,get:function(){return Sb.otperformance}});Object.defineProperty(Ga,"getBooleanFromEnv",{enumerable:!0,get:function(){return Sb.getBooleanFromEnv}});Object.defineProperty(Ga,"getStringFromEnv",{enumerable:!0,get:function(){return Sb.getStringFromEnv}});Object.defineProperty(Ga,"getNumberFromEnv",{enumerable:!0,get:function(){return Sb.getNumberFromEnv}});Object.defineProperty(Ga,"getStringListFromEnv",{enumerable:!0,get:function(){return Sb.getStringListFromEnv}})});var dNe=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 NF=vJ(),cNe=9,nzt=6,rzt=Math.pow(10,nzt),PF=Math.pow(10,cNe);function dO(e){let t=e/1e3,n=Math.trunc(t),r=Math.round(e%1e3*rzt);return[n,r]}ei.millisToHrTime=dO;function izt(){return NF.otperformance.timeOrigin}ei.getTimeOrigin=izt;function uNe(e){let t=dO(NF.otperformance.timeOrigin),n=dO(typeof e=="number"?e:NF.otperformance.now());return lNe(t,n)}ei.hrTime=uNe;function szt(e){if(AJ(e))return e;if(typeof e=="number")return e=PF&&(n[1]-=PF,n[0]+=1),n}ei.addHrTimes=lNe});var fNe=w(CF=>{"use strict";Object.defineProperty(CF,"__esModule",{value:!0});CF.unrefTimer=void 0;function fzt(e){typeof e!="number"&&e.unref()}CF.unrefTimer=fzt});var pNe=w(fO=>{"use strict";Object.defineProperty(fO,"__esModule",{value:!0});fO.ExportResultCode=void 0;var pzt;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(pzt=fO.ExportResultCode||(fO.ExportResultCode={}))});var mNe=w(MF=>{"use strict";Object.defineProperty(MF,"__esModule",{value:!0});MF.CompositePropagator=void 0;var hNe=(Ce(),ke(Ye)),RJ=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){hNe.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){hNe.diag.warn(`Failed to extract with ${s.constructor.name}. Err: ${o.message}`)}return i},t)}fields(){return this._fields.slice()}};MF.CompositePropagator=RJ});var gNe=w(dA=>{"use strict";Object.defineProperty(dA,"__esModule",{value:!0});dA.validateValue=dA.validateKey=void 0;var wJ="[_0-9a-z-*/]",hzt=`[a-z]${wJ}{0,255}`,mzt=`[a-z0-9]${wJ}{0,240}@[a-z]${wJ}{0,13}`,gzt=new RegExp(`^(?:${hzt}|${mzt})$`),yzt=/^[ -~]{0,255}[!-~]$/,Szt=/,|=/;function Ezt(e){return gzt.test(e)}dA.validateKey=Ezt;function bzt(e){return yzt.test(e)&&!Szt.test(e)}dA.validateValue=bzt});var IJ=w(LF=>{"use strict";Object.defineProperty(LF,"__esModule",{value:!0});LF.TraceState=void 0;var yNe=gNe(),SNe=32,_zt=512,ENe=",",bNe="=",kJ=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+bNe+this.get(n)),t),[]).join(ENe)}_parse(t){t.length>_zt||(this._internalState=t.split(ENe).reverse().reduce((n,r)=>{let i=r.trim(),s=i.indexOf(bNe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);(0,yNe.validateKey)(o)&&(0,yNe.validateValue)(a)&&n.set(o,a)}return n},new Map),this._internalState.size>SNe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,SNe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};LF.TraceState=kJ});var TNe=w(za=>{"use strict";Object.defineProperty(za,"__esModule",{value:!0});za.W3CTraceContextPropagator=za.parseTraceParent=za.TRACE_STATE_HEADER=za.TRACE_PARENT_HEADER=void 0;var DF=(Ce(),ke(Ye)),Tzt=uO(),vzt=IJ();za.TRACE_PARENT_HEADER="traceparent";za.TRACE_STATE_HEADER="tracestate";var Azt="00",Rzt="(?!ff)[\\da-f]{2}",wzt="(?![0]{32})[\\da-f]{32}",kzt="(?![0]{16})[\\da-f]{16}",Izt="[\\da-f]{2}",xzt=new RegExp(`^\\s?(${Rzt})-(${wzt})-(${kzt})-(${Izt})(-.*)?\\s?$`);function _Ne(e){let t=xzt.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}za.parseTraceParent=_Ne;var xJ=class{inject(t,n,r){let i=DF.trace.getSpanContext(t);if(!i||(0,Tzt.isTracingSuppressed)(t)||!(0,DF.isSpanContextValid)(i))return;let s=`${Azt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||DF.TraceFlags.NONE).toString(16)}`;r.set(n,za.TRACE_PARENT_HEADER,s),i.traceState&&r.set(n,za.TRACE_STATE_HEADER,i.traceState.serialize())}extract(t,n,r){let i=r.get(n,za.TRACE_PARENT_HEADER);if(!i)return t;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return t;let o=_Ne(s);if(!o)return t;o.isRemote=!0;let a=r.get(n,za.TRACE_STATE_HEADER);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new vzt.TraceState(typeof c=="string"?c:void 0)}return DF.trace.setSpanContext(t,o)}fields(){return[za.TRACE_PARENT_HEADER,za.TRACE_STATE_HEADER]}};za.W3CTraceContextPropagator=xJ});var vNe=w(Xd=>{"use strict";Object.defineProperty(Xd,"__esModule",{value:!0});Xd.getRPCMetadata=Xd.deleteRPCMetadata=Xd.setRPCMetadata=Xd.RPCType=void 0;var Ozt=(Ce(),ke(Ye)),OJ=(0,Ozt.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),Nzt;(function(e){e.HTTP="http"})(Nzt=Xd.RPCType||(Xd.RPCType={}));function Pzt(e,t){return e.setValue(OJ,t)}Xd.setRPCMetadata=Pzt;function Czt(e){return e.deleteValue(OJ)}Xd.deleteRPCMetadata=Czt;function Mzt(e){return e.getValue(OJ)}Xd.getRPCMetadata=Mzt});var INe=w(UF=>{"use strict";Object.defineProperty(UF,"__esModule",{value:!0});UF.isPlainObject=void 0;var Lzt="[object Object]",Dzt="[object Null]",Uzt="[object Undefined]",Fzt=Function.prototype,ANe=Fzt.toString,jzt=ANe.call(Object),Hzt=Object.getPrototypeOf,RNe=Object.prototype,wNe=RNe.hasOwnProperty,Eb=Symbol?Symbol.toStringTag:void 0,kNe=RNe.toString;function qzt(e){if(!Bzt(e)||Gzt(e)!==Lzt)return!1;let t=Hzt(e);if(t===null)return!0;let n=wNe.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&ANe.call(n)===jzt}UF.isPlainObject=qzt;function Bzt(e){return e!=null&&typeof e=="object"}function Gzt(e){return e==null?e===void 0?Uzt:Dzt:Eb&&Eb in Object(e)?zzt(e):Vzt(e)}function zzt(e){let t=wNe.call(e,Eb),n=e[Eb],r=!1;try{e[Eb]=void 0,r=!0}catch{}let i=kNe.call(e);return r&&(t?e[Eb]=n:delete e[Eb]),i}function Vzt(e){return kNe.call(e)}});var CNe=w(HF=>{"use strict";Object.defineProperty(HF,"__esModule",{value:!0});HF.merge=void 0;var xNe=INe(),Wzt=20;function Kzt(...e){let t=e.shift(),n=new WeakMap;for(;e.length>0;)t=NNe(t,e.shift(),0,n);return t}HF.merge=Kzt;function NJ(e){return jF(e)?e.slice():e}function NNe(e,t,n=0,r){let i;if(!(n>Wzt)){if(n++,FF(e)||FF(t)||PNe(t))i=NJ(t);else if(jF(e)){if(i=e.slice(),jF(t))for(let s=0,o=t.length;s"u"?delete i[c]:i[c]=u;else{let l=i[c],d=u;if(ONe(e,c,r)||ONe(t,c,r))delete i[c];else{if(pO(l)&&pO(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]=NNe(i[c],u,n,r)}}}}else i=t;return i}}function ONe(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 Zzt(e,t){return!(!(0,xNe.isPlainObject)(e)||!(0,xNe.isPlainObject)(t))}});var MNe=w(fA=>{"use strict";Object.defineProperty(fA,"__esModule",{value:!0});fA.callWithTimeout=fA.TimeoutError=void 0;var qF=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};fA.TimeoutError=qF;function Yzt(e,t){let n,r=new Promise(function(s,o){n=setTimeout(function(){o(new qF("Operation timed out."))},t)});return Promise.race([e,r]).then(i=>(clearTimeout(n),i),i=>{throw clearTimeout(n),i})}fA.callWithTimeout=Yzt});var DNe=w(pA=>{"use strict";Object.defineProperty(pA,"__esModule",{value:!0});pA.isUrlIgnored=pA.urlMatches=void 0;function LNe(e,t){return typeof t=="string"?e===t:!!e.match(t)}pA.urlMatches=LNe;function Jzt(e,t){if(!t)return!1;for(let n of t)if(LNe(e,n))return!0;return!1}pA.isUrlIgnored=Jzt});var UNe=w(BF=>{"use strict";Object.defineProperty(BF,"__esModule",{value:!0});BF.Deferred=void 0;var PJ=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)}};BF.Deferred=PJ});var FNe=w(GF=>{"use strict";Object.defineProperty(GF,"__esModule",{value:!0});GF.BindOnceFuture=void 0;var Xzt=UNe(),CJ=class{_isCalled=!1;_deferred=new Xzt.Deferred;_callback;_that;constructor(t,n){this._callback=t,this._that=n}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...t){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...t)).then(n=>this._deferred.resolve(n),n=>this._deferred.reject(n))}catch(n){this._deferred.reject(n)}}return this._deferred.promise}};GF.BindOnceFuture=CJ});var HNe=w(zF=>{"use strict";Object.defineProperty(zF,"__esModule",{value:!0});zF.diagLogLevelFromString=void 0;var lm=(Ce(),ke(Ye)),jNe={ALL:lm.DiagLogLevel.ALL,VERBOSE:lm.DiagLogLevel.VERBOSE,DEBUG:lm.DiagLogLevel.DEBUG,INFO:lm.DiagLogLevel.INFO,WARN:lm.DiagLogLevel.WARN,ERROR:lm.DiagLogLevel.ERROR,NONE:lm.DiagLogLevel.NONE};function Qzt(e){if(e==null)return;let t=jNe[e.toUpperCase()];return t??(lm.diag.warn(`Unknown log level "${e}", expected one of ${Object.keys(jNe)}, using default`),lm.DiagLogLevel.INFO)}zF.diagLogLevelFromString=Qzt});var BNe=w(VF=>{"use strict";Object.defineProperty(VF,"__esModule",{value:!0});VF._export=void 0;var qNe=(Ce(),ke(Ye)),$zt=uO();function e2t(e,t){return new Promise(n=>{qNe.context.with((0,$zt.suppressTracing)(qNe.context.active()),()=>{e.export(t,n)})})}VF._export=e2t});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 t2t=AAe();Object.defineProperty(we,"W3CBaggagePropagator",{enumerable:!0,get:function(){return t2t.W3CBaggagePropagator}});var n2t=RAe();Object.defineProperty(we,"AnchoredClock",{enumerable:!0,get:function(){return n2t.AnchoredClock}});var GNe=OAe();Object.defineProperty(we,"isAttributeValue",{enumerable:!0,get:function(){return GNe.isAttributeValue}});Object.defineProperty(we,"sanitizeAttributes",{enumerable:!0,get:function(){return GNe.sanitizeAttributes}});var zNe=PAe();Object.defineProperty(we,"globalErrorHandler",{enumerable:!0,get:function(){return zNe.globalErrorHandler}});Object.defineProperty(we,"setGlobalErrorHandler",{enumerable:!0,get:function(){return zNe.setGlobalErrorHandler}});var r2t=K8();Object.defineProperty(we,"loggingErrorHandler",{enumerable:!0,get:function(){return r2t.loggingErrorHandler}});var Fl=dNe();Object.defineProperty(we,"addHrTimes",{enumerable:!0,get:function(){return Fl.addHrTimes}});Object.defineProperty(we,"getTimeOrigin",{enumerable:!0,get:function(){return Fl.getTimeOrigin}});Object.defineProperty(we,"hrTime",{enumerable:!0,get:function(){return Fl.hrTime}});Object.defineProperty(we,"hrTimeDuration",{enumerable:!0,get:function(){return Fl.hrTimeDuration}});Object.defineProperty(we,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return Fl.hrTimeToMicroseconds}});Object.defineProperty(we,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return Fl.hrTimeToMilliseconds}});Object.defineProperty(we,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return Fl.hrTimeToNanoseconds}});Object.defineProperty(we,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return Fl.hrTimeToTimeStamp}});Object.defineProperty(we,"isTimeInput",{enumerable:!0,get:function(){return Fl.isTimeInput}});Object.defineProperty(we,"isTimeInputHrTime",{enumerable:!0,get:function(){return Fl.isTimeInputHrTime}});Object.defineProperty(we,"millisToHrTime",{enumerable:!0,get:function(){return Fl.millisToHrTime}});Object.defineProperty(we,"timeInputToHrTime",{enumerable:!0,get:function(){return Fl.timeInputToHrTime}});var i2t=fNe();Object.defineProperty(we,"unrefTimer",{enumerable:!0,get:function(){return i2t.unrefTimer}});var s2t=pNe();Object.defineProperty(we,"ExportResultCode",{enumerable:!0,get:function(){return s2t.ExportResultCode}});var o2t=B8();Object.defineProperty(we,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return o2t.parseKeyPairsIntoRecord}});var bb=vJ();Object.defineProperty(we,"SDK_INFO",{enumerable:!0,get:function(){return bb.SDK_INFO}});Object.defineProperty(we,"_globalThis",{enumerable:!0,get:function(){return bb._globalThis}});Object.defineProperty(we,"getStringFromEnv",{enumerable:!0,get:function(){return bb.getStringFromEnv}});Object.defineProperty(we,"getBooleanFromEnv",{enumerable:!0,get:function(){return bb.getBooleanFromEnv}});Object.defineProperty(we,"getNumberFromEnv",{enumerable:!0,get:function(){return bb.getNumberFromEnv}});Object.defineProperty(we,"getStringListFromEnv",{enumerable:!0,get:function(){return bb.getStringListFromEnv}});Object.defineProperty(we,"otperformance",{enumerable:!0,get:function(){return bb.otperformance}});var a2t=mNe();Object.defineProperty(we,"CompositePropagator",{enumerable:!0,get:function(){return a2t.CompositePropagator}});var WF=TNe();Object.defineProperty(we,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return WF.TRACE_PARENT_HEADER}});Object.defineProperty(we,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return WF.TRACE_STATE_HEADER}});Object.defineProperty(we,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return WF.W3CTraceContextPropagator}});Object.defineProperty(we,"parseTraceParent",{enumerable:!0,get:function(){return WF.parseTraceParent}});var KF=vNe();Object.defineProperty(we,"RPCType",{enumerable:!0,get:function(){return KF.RPCType}});Object.defineProperty(we,"deleteRPCMetadata",{enumerable:!0,get:function(){return KF.deleteRPCMetadata}});Object.defineProperty(we,"getRPCMetadata",{enumerable:!0,get:function(){return KF.getRPCMetadata}});Object.defineProperty(we,"setRPCMetadata",{enumerable:!0,get:function(){return KF.setRPCMetadata}});var MJ=uO();Object.defineProperty(we,"isTracingSuppressed",{enumerable:!0,get:function(){return MJ.isTracingSuppressed}});Object.defineProperty(we,"suppressTracing",{enumerable:!0,get:function(){return MJ.suppressTracing}});Object.defineProperty(we,"unsuppressTracing",{enumerable:!0,get:function(){return MJ.unsuppressTracing}});var c2t=IJ();Object.defineProperty(we,"TraceState",{enumerable:!0,get:function(){return c2t.TraceState}});var u2t=CNe();Object.defineProperty(we,"merge",{enumerable:!0,get:function(){return u2t.merge}});var VNe=MNe();Object.defineProperty(we,"TimeoutError",{enumerable:!0,get:function(){return VNe.TimeoutError}});Object.defineProperty(we,"callWithTimeout",{enumerable:!0,get:function(){return VNe.callWithTimeout}});var WNe=DNe();Object.defineProperty(we,"isUrlIgnored",{enumerable:!0,get:function(){return WNe.isUrlIgnored}});Object.defineProperty(we,"urlMatches",{enumerable:!0,get:function(){return WNe.urlMatches}});var l2t=FNe();Object.defineProperty(we,"BindOnceFuture",{enumerable:!0,get:function(){return l2t.BindOnceFuture}});var d2t=HNe();Object.defineProperty(we,"diagLogLevelFromString",{enumerable:!0,get:function(){return d2t.diagLogLevelFromString}});var f2t=BNe();we.internal={_export:f2t._export}});var KNe=w(ZF=>{"use strict";Object.defineProperty(ZF,"__esModule",{value:!0});ZF.VERSION=void 0;ZF.VERSION="0.214.0"});var ZNe=w(hO=>{"use strict";Object.defineProperty(hO,"__esModule",{value:!0});hO.SeverityNumber=void 0;var p2t;(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"})(p2t=hO.SeverityNumber||(hO.SeverityNumber={}))});var JF=w(hA=>{"use strict";Object.defineProperty(hA,"__esModule",{value:!0});hA.NOOP_LOGGER=hA.NoopLogger=void 0;var YF=class{emit(t){}};hA.NoopLogger=YF;hA.NOOP_LOGGER=new YF});var YNe=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 h2t(e,t,n){return r=>r===e?t:n}Op.makeGetter=h2t;Op.API_BACKWARDS_COMPATIBILITY_VERSION=1});var LJ=w(mA=>{"use strict";Object.defineProperty(mA,"__esModule",{value:!0});mA.NOOP_LOGGER_PROVIDER=mA.NoopLoggerProvider=void 0;var m2t=JF(),XF=class{getLogger(t,n,r){return new m2t.NoopLogger}};mA.NoopLoggerProvider=XF;mA.NOOP_LOGGER_PROVIDER=new XF});var JNe=w(QF=>{"use strict";Object.defineProperty(QF,"__esModule",{value:!0});QF.ProxyLogger=void 0;var g2t=JF(),DJ=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):g2t.NOOP_LOGGER}};QF.ProxyLogger=DJ});var XNe=w($F=>{"use strict";Object.defineProperty($F,"__esModule",{value:!0});$F.ProxyLoggerProvider=void 0;var y2t=LJ(),S2t=JNe(),UJ=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new S2t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:y2t.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)}};$F.ProxyLoggerProvider=UJ});var $Ne=w(ej=>{"use strict";Object.defineProperty(ej,"__esModule",{value:!0});ej.LogsAPI=void 0;var jl=YNe(),E2t=LJ(),QNe=XNe(),FJ=class e{constructor(){this._proxyLoggerProvider=new QNe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return jl._global[jl.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(jl._global[jl.GLOBAL_LOGS_API_KEY]=(0,jl.makeGetter)(jl.API_BACKWARDS_COMPATIBILITY_VERSION,t,E2t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=jl._global[jl.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(jl._global,jl.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete jl._global[jl.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new QNe.ProxyLoggerProvider}};ej.LogsAPI=FJ});var jJ=w(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});Np.logs=Np.NoopLogger=Np.NOOP_LOGGER=Np.SeverityNumber=void 0;var b2t=ZNe();Object.defineProperty(Np,"SeverityNumber",{enumerable:!0,get:function(){return b2t.SeverityNumber}});var ePe=JF();Object.defineProperty(Np,"NOOP_LOGGER",{enumerable:!0,get:function(){return ePe.NOOP_LOGGER}});Object.defineProperty(Np,"NoopLogger",{enumerable:!0,get:function(){return ePe.NoopLogger}});var _2t=$Ne();Np.logs=_2t.LogsAPI.getInstance()});var tPe=w(gA=>{"use strict";Object.defineProperty(gA,"__esModule",{value:!0});gA.disableInstrumentations=gA.enableInstrumentations=void 0;function T2t(e,t,n,r){for(let i=0,s=e.length;it.disable())}gA.disableInstrumentations=v2t});var iPe=w(tj=>{"use strict";Object.defineProperty(tj,"__esModule",{value:!0});tj.registerInstrumentations=void 0;var nPe=(Ce(),ke(Ye)),A2t=jJ(),rPe=tPe();function R2t(e){let t=e.tracerProvider||nPe.trace.getTracerProvider(),n=e.meterProvider||nPe.metrics.getMeterProvider(),r=e.loggerProvider||A2t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,rPe.enableInstrumentations)(i,t,n,r),()=>{(0,rPe.disableInstrumentations)(i)}}tj.registerInstrumentations=R2t});var pPe=w(nj=>{"use strict";Object.defineProperty(nj,"__esModule",{value:!0});nj.satisfies=void 0;var GJ=(Ce(),ke(Ye)),uPe=/^(?: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-]+)*))?$/,w2t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,k2t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function I2t(e,t,n){if(!x2t(e))return GJ.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=C2t(e);if(!r)return!1;let i=[],s=lPe(r,t,i,n);return s&&!n?.includePrerelease?N2t(r,i):s}nj.satisfies=I2t;function x2t(e){return typeof e=="string"&&uPe.test(e)}function lPe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(HJ(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=eVt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!HJ(e,s,n,r))return!1;return!0}return HJ(e,t,n,r)}function HJ(e,t,n,r){if(t=P2t(t,r),t.includes(" "))return lPe(e,t,n,r);{let i=M2t(t);return n.push(i),O2t(e,i)}}function O2t(e,t){if(t.invalid)return!1;if(!t.version||BJ(t.version))return!0;let n=oPe(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=oPe(r,i)}return k2t[t.op]?.includes(n)}function N2t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function P2t(e,t){return e=e.trim(),e=Q2t(e,t),e=X2t(e),e=$2t(e,t),e=e.trim(),e}function wc(e){return!e||e.toLowerCase()==="x"||e==="*"}function C2t(e){let t=e.match(uPe);if(!t){GJ.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 M2t(e){if(!e)return{};let t=e.match(w2t);if(!t)return GJ.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function BJ(e){return e==="*"||e==="x"||e==="X"}function sPe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function L2t(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 D2t(e,t){if(BJ(e)||BJ(t))return 0;let[n,r]=L2t(sPe(e),sPe(t));return n>r?1:n)?=?)",aPe=`(?:${fPe}|${U2t})`,j2t=`(?:-(${aPe}(?:\\.${aPe})*))`,cPe=`${dPe}+`,H2t=`(?:\\+(${cPe}(?:\\.${cPe})*))`,qJ=`${fPe}|x|X|\\*`,mO=`[v=\\s]*(${qJ})(?:\\.(${qJ})(?:\\.(${qJ})(?:${j2t})?${H2t}?)?)?`,q2t=`^${F2t}\\s*${mO}$`,B2t=new RegExp(q2t),G2t=`^\\s*(${mO})\\s+-\\s+(${mO})\\s*$`,z2t=new RegExp(G2t),V2t="(?:~>?)",W2t=`^${V2t}${mO}$`,K2t=new RegExp(W2t),Z2t="(?:\\^)",Y2t=`^${Z2t}${mO}$`,J2t=new RegExp(Y2t);function X2t(e){let t=K2t;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 Q2t(e,t){let n=J2t,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 $2t(e,t){let n=B2t;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 eVt(e,t){let n=z2t;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 zJ=w(ia=>{"use strict";Object.defineProperty(ia,"__esModule",{value:!0});ia.massUnwrap=ia.unwrap=ia.massWrap=ia.wrap=void 0;var kc=console.error.bind(console);function gO(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 tVt=(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 gO(i,"__original",r),gO(i,"__unwrap",()=>{e[t]===i&&gO(e,t,r)}),gO(i,"__wrapped",!0),gO(e,t,i),i};ia.wrap=tVt;var nVt=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{kc("must provide one or more modules to patch"),kc(new Error().stack);return}if(!(t&&Array.isArray(t))){kc("must provide one or more functions to wrap on modules");return}e.forEach(r=>{t.forEach(i=>{(0,ia.wrap)(r,i,n)})})};ia.massWrap=nVt;var rVt=(e,t)=>{if(!e||!e[t]){kc("no function to unwrap."),kc(new Error().stack);return}let n=e[t];if(!n.__unwrap)kc("no original to unwrap to -- has "+String(t)+" already been unwrapped?");else{n.__unwrap();return}};ia.unwrap=rVt;var iVt=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{kc("must provide one or more modules to patch"),kc(new Error().stack);return}if(!(t&&Array.isArray(t))){kc("must provide one or more functions to unwrap on modules");return}e.forEach(n=>{t.forEach(r=>{(0,ia.unwrap)(n,r)})})};ia.massUnwrap=iVt;function yO(e){e&&e.logger&&(typeof e.logger!="function"?kc("new logger isn't a function, not replacing"):kc=e.logger)}ia.default=yO;yO.wrap=ia.wrap;yO.massWrap=ia.massWrap;yO.unwrap=ia.unwrap;yO.massUnwrap=ia.massUnwrap});var hPe=w(ij=>{"use strict";Object.defineProperty(ij,"__esModule",{value:!0});ij.InstrumentationAbstract=void 0;var VJ=(Ce(),ke(Ye)),sVt=jJ(),rj=zJ(),WJ=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=VJ.diag.createComponentLogger({namespace:t}),this._tracer=VJ.trace.getTracer(t,n),this._meter=VJ.metrics.getMeter(t,n),this._logger=sVt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=rj.wrap;_unwrap=rj.unwrap;_massWrap=rj.massWrap;_massUnwrap=rj.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)}}};ij.InstrumentationAbstract=WJ});var gPe=w((aSr,mPe)=>{var yA=1e3,SA=yA*60,EA=SA*60,_b=EA*24,oVt=_b*7,aVt=_b*365.25;mPe.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return cVt(e);if(n==="number"&&isFinite(e))return t.long?lVt(e):uVt(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function cVt(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*aVt;case"weeks":case"week":case"w":return n*oVt;case"days":case"day":case"d":return n*_b;case"hours":case"hour":case"hrs":case"hr":case"h":return n*EA;case"minutes":case"minute":case"mins":case"min":case"m":return n*SA;case"seconds":case"second":case"secs":case"sec":case"s":return n*yA;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function uVt(e){var t=Math.abs(e);return t>=_b?Math.round(e/_b)+"d":t>=EA?Math.round(e/EA)+"h":t>=SA?Math.round(e/SA)+"m":t>=yA?Math.round(e/yA)+"s":e+"ms"}function lVt(e){var t=Math.abs(e);return t>=_b?sj(e,t,_b,"day"):t>=EA?sj(e,t,EA,"hour"):t>=SA?sj(e,t,SA,"minute"):t>=yA?sj(e,t,yA,"second"):e+" ms"}function sj(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var KJ=w((cSr,yPe)=>{function dVt(e){n.debug=n,n.default=n,n.coerce=c,n.disable=o,n.enable=i,n.enabled=a,n.humanize=gPe(),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}yPe.exports=dVt});var SPe=w((au,oj)=>{au.formatArgs=pVt;au.save=hVt;au.load=mVt;au.useColors=fVt;au.storage=gVt();au.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();au.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function fVt(){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 pVt(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+oj.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let n=0,r=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(n++,i==="%c"&&(r=n))}),e.splice(r,0,t)}au.log=console.debug||console.log||(()=>{});function hVt(e){try{e?au.storage.setItem("debug",e):au.storage.removeItem("debug")}catch{}}function mVt(){let e;try{e=au.storage.getItem("debug")||au.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function gVt(){try{return localStorage}catch{}}oj.exports=KJ()(au);var{formatters:yVt}=oj.exports;yVt.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var bPe=w((uSr,EPe)=>{"use strict";EPe.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 SVt=Z("os"),_Pe=Z("tty"),Hl=bPe(),{env:Po}=process,aj;Hl("no-color")||Hl("no-colors")||Hl("color=false")||Hl("color=never")?aj=0:(Hl("color")||Hl("colors")||Hl("color=true")||Hl("color=always"))&&(aj=1);function EVt(){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 bVt(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function _Vt(e,{streamIsTTY:t,sniffFlags:n=!0}={}){let r=EVt();r!==void 0&&(aj=r);let i=n?aj:r;if(i===0)return 0;if(n){if(Hl("color=16m")||Hl("color=full")||Hl("color=truecolor"))return 3;if(Hl("color=256"))return 2}if(e&&!t&&i===void 0)return 0;let s=i||0;if(Po.TERM==="dumb")return s;if(process.platform==="win32"){let o=SVt.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 ZJ(e,t={}){let n=_Vt(e,{streamIsTTY:e&&e.isTTY,...t});return bVt(n)}TPe.exports={supportsColor:ZJ,stdout:ZJ({isTTY:_Pe.isatty(1)}),stderr:ZJ({isTTY:_Pe.isatty(2)})}});var APe=w((Co,uj)=>{var TVt=Z("tty"),cj=Z("util");Co.init=xVt;Co.log=wVt;Co.formatArgs=AVt;Co.save=kVt;Co.load=IVt;Co.useColors=vVt;Co.destroy=cj.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=YJ();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 vVt(){return"colors"in Co.inspectOpts?!!Co.inspectOpts.colors:TVt.isatty(process.stderr.fd)}function AVt(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 aMt=Object.create;var oF=Object.defineProperty;var cMt=Object.getOwnPropertyDescriptor;var uMt=Object.getOwnPropertyNames;var lMt=Object.getPrototypeOf,dMt=Object.prototype.hasOwnProperty;var Y=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var v=(e,t)=>()=>(e&&(t=e(e=0)),t);var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ar=(e,t)=>{for(var n in t)oF(e,n,{get:t[n],enumerable:!0})},Fve=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of uMt(t))!dMt.call(e,i)&&i!==n&&oF(e,i,{get:()=>t[i],enumerable:!(r=cMt(t,i))||r.enumerable});return e};var Re=(e,t,n)=>(n=e!=null?aMt(lMt(e)):{},Fve(t||!e||!e.__esModule?oF(n,"default",{value:e,enumerable:!0}):n,e)),ke=e=>Fve(oF({},"__esModule",{value:!0}),e);var cm,y8=v(()=>{cm="1.9.1"});function fMt(e){let t=new Set([e]),n=new Set,r=e.match(jve);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(jve);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 jve,Hve,qve=v(()=>{y8();jve=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;Hve=fMt(cm)});function Ap(e,t,n,r=!1){var i;let s=pO[fO]=(i=pO[fO])!==null&&i!==void 0?i:{version:cm};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!==cm){let o=new Error(`@opentelemetry/api: Registration of version v${s.version} for ${e} does not match previously registered API v${cm}`);return n.error(o.stack||o.message),!1}return s[e]=t,n.debug(`@opentelemetry/api: Registered a global for ${e} v${cm}.`),!0}function rl(e){var t,n;let r=(t=pO[fO])===null||t===void 0?void 0:t.version;if(!(!r||!Hve(r)))return(n=pO[fO])===null||n===void 0?void 0:n[e]}function wp(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${cm}.`);let n=pO[fO];n&&delete n[e]}var pMt,fO,pO,fE=v(()=>{y8();qve();pMt=cm.split(".")[0],fO=Symbol.for(`opentelemetry.js.api.${pMt}`),pO=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{}});function hO(e,t,n){let r=rl("diag");if(r)return r[e](t,...n)}var aF,Bve=v(()=>{fE();aF=class{constructor(t){this._namespace=t.namespace||"DiagComponentLogger"}debug(...t){return hO("debug",this._namespace,t)}error(...t){return hO("error",this._namespace,t)}info(...t){return hO("info",this._namespace,t)}warn(...t){return hO("warn",this._namespace,t)}verbose(...t){return hO("verbose",this._namespace,t)}}});var ho,cF=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 zve(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 Gve=v(()=>{cF()});var hMt,Po,pE=v(()=>{Bve();Gve();cF();fE();hMt="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=zve((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(hMt,n)},n.createComponentLogger=i=>new aF(i),n.verbose=t("verbose"),n.debug=t("debug"),n.info=t("info"),n.warn=t("warn"),n.error=t("error")}}});var uF,Vve=v(()=>{uF=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 Wve,Kve=v(()=>{Wve=Symbol("BaggageEntryMetadata")});function Yve(e={}){return new uF(new Map(Object.entries(e)))}function Zve(e){return typeof e!="string"&&(mMt.error(`Cannot create baggage metadata from unknown type: ${typeof e}`),e=""),{__TYPE__:Wve,toString(){return e}}}var mMt,S8=v(()=>{pE();Vve();Kve();mMt=Po.instance()});function il(e){return Symbol.for(e)}var b8,lR,mO=v(()=>{b8=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}}},lR=new b8});var E8,_8,lF,Jve=v(()=>{E8=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],_8={};if(typeof console<"u"){let e=["error","warn","info","debug","trace","log"];for(let t of e)typeof console[t]=="function"&&(_8[t]=console[t])}lF=class{constructor(){function t(n){return function(...r){let i=_8[n];if(typeof i!="function"&&(i=_8.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{T8=class{constructor(){}createGauge(t,n){return yMt}createHistogram(t,n){return SMt}createCounter(t,n){return gMt}createUpDownCounter(t,n){return bMt}createObservableGauge(t,n){return _Mt}createObservableCounter(t,n){return EMt}createObservableUpDownCounter(t,n){return TMt}addBatchObservableCallback(t,n){}removeBatchObservableCallback(t){}},dR=class{},v8=class extends dR{add(t,n){}},R8=class extends dR{add(t,n){}},A8=class extends dR{record(t,n){}},w8=class extends dR{record(t,n){}},gO=class{addCallback(t){}removeCallback(t){}},k8=class extends gO{},I8=class extends gO{},x8=class extends gO{},O8=new T8,gMt=new v8,yMt=new A8,SMt=new w8,bMt=new R8,EMt=new k8,_Mt=new I8,TMt=new x8});var dF,Qve=v(()=>{(function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"})(dF||(dF={}))});var fF,pF,N8=v(()=>{fF={get(e,t){if(e!=null)return e[t]},keys(e){return e==null?[]:Object.keys(e)}},pF={set(e,t,n){e!=null&&(e[t]=n)}}});var hF,$ve=v(()=>{mO();hF=class{active(){return lR}with(t,n,r,...i){return n.call(r,...i)}bind(t,n){return n}enable(){return this}disable(){return this}}});var C8,vMt,kp,yO=v(()=>{$ve();fE();pE();C8="context",vMt=new hF,kp=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalContextManager(t){return Ap(C8,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(C8)||vMt}disable(){this._getContextManager().disable(),wp(C8,Po.instance())}}});var qa,M8=v(()=>{(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(qa||(qa={}))});var SO,hE,mF,gF=v(()=>{M8();SO="0000000000000000",hE="00000000000000000000000000000000",mF={traceId:hE,spanId:SO,traceFlags:qa.NONE}});var Ip,yF=v(()=>{gF();Ip=class{constructor(t=mF){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 SF(e){return e.getValue(D8)||void 0}function eRe(){return SF(kp.getInstance().active())}function bO(e,t){return e.setValue(D8,t)}function tRe(e){return e.deleteValue(D8)}function nRe(e,t){return bO(e,new Ip(t))}function bF(e){var t;return(t=SF(e))===null||t===void 0?void 0:t.spanContext()}var D8,L8=v(()=>{mO();yF();yO();D8=il("OpenTelemetry Context Key SPAN")});function rRe(e,t){if(typeof e!="string"||e.length!==t)return!1;let n=0;for(let r=0;r{gF();yF();EF=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 RMt(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 j8,fR,H8=v(()=>{yO();L8();yF();_F();j8=kp.getInstance(),fR=class{startSpan(t,n,r=j8.active()){if(!!n?.root)return new Ip;let s=r&&bF(r);return RMt(s)&&um(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??j8.active(),u=this.startSpan(t,s,c),l=bO(c,u);return j8.with(l,a,void 0,u)}}});var AMt,pR,q8=v(()=>{H8();AMt=new fR,pR=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):AMt}}});var TF,sRe=v(()=>{H8();TF=class{getTracer(t,n,r){return new fR}}});var wMt,mE,B8=v(()=>{q8();sRe();wMt=new TF,mE=class{getTracer(t,n,r){var i;return(i=this.getDelegateTracer(t,n,r))!==null&&i!==void 0?i:new pR(this,t,n,r)}getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:wMt}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 vF,oRe=v(()=>{(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(vF||(vF={}))});var $r,aRe=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,cRe=v(()=>{(function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"})(as||(as={}))});function uRe(e){return xMt.test(e)}function lRe(e){return OMt.test(e)&&!PMt.test(e)}var z8,kMt,IMt,xMt,OMt,PMt,dRe=v(()=>{z8="[_0-9a-z-*/]",kMt=`[a-z]${z8}{0,255}`,IMt=`[a-z0-9]${z8}{0,240}@[a-z]${z8}{0,13}`,xMt=new RegExp(`^(?:${kMt}|${IMt})$`),OMt=/^[ -~]{0,255}[!-~]$/,PMt=/,|=/});var fRe,NMt,pRe,hRe,RF,mRe=v(()=>{dRe();fRe=32,NMt=512,pRe=",",hRe="=",RF=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+hRe+this.get(n)),t),[]).join(pRe)}_parse(t){t.length>NMt||(this._internalState=t.split(pRe).reduceRight((n,r)=>{let i=r.trim(),s=i.indexOf(hRe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);uRe(o)&&lRe(a)&&n.set(o,a)}return n},new Map),this._internalState.size>fRe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,fRe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}}});function gRe(e){return new RF(e)}var yRe=v(()=>{mRe()});var Ve,SRe=v(()=>{yO();Ve=kp.getInstance()});var sl,bRe=v(()=>{pE();sl=Po.instance()});var G8,ERe,_Re=v(()=>{P8();G8=class{getMeter(t,n,r){return O8}},ERe=new G8});var V8,AF,TRe=v(()=>{_Re();fE();pE();V8="metrics",AF=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalMeterProvider(t){return Ap(V8,t,Po.instance())}getMeterProvider(){return rl(V8)||ERe}getMeter(t,n,r){return this.getMeterProvider().getMeter(t,n,r)}disable(){wp(V8,Po.instance())}}});var W8,vRe=v(()=>{TRe();W8=AF.getInstance()});var wF,RRe=v(()=>{wF=class{inject(t,n){}extract(t,n){return t}fields(){return[]}}});function Y8(e){return e.getValue(K8)||void 0}function ARe(){return Y8(kp.getInstance().active())}function wRe(e,t){return e.setValue(K8,t)}function kRe(e){return e.deleteValue(K8)}var K8,IRe=v(()=>{yO();mO();K8=il("OpenTelemetry Baggage Key")});var Z8,CMt,kF,xRe=v(()=>{fE();RRe();N8();IRe();S8();pE();Z8="propagation",CMt=new wF,kF=class e{constructor(){this.createBaggage=Yve,this.getBaggage=Y8,this.getActiveBaggage=ARe,this.setBaggage=wRe,this.deleteBaggage=kRe}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalPropagator(t){return Ap(Z8,t,Po.instance())}inject(t,n,r=pF){return this._getGlobalPropagator().inject(t,n,r)}extract(t,n,r=fF){return this._getGlobalPropagator().extract(t,n,r)}fields(){return this._getGlobalPropagator().fields()}disable(){wp(Z8,Po.instance())}_getGlobalPropagator(){return rl(Z8)||CMt}}});var Qd,ORe=v(()=>{xRe();Qd=kF.getInstance()});var J8,IF,PRe=v(()=>{fE();B8();_F();L8();pE();J8="trace",IF=class e{constructor(){this._proxyTracerProvider=new mE,this.wrapSpanContext=iRe,this.isSpanContextValid=um,this.deleteSpan=tRe,this.getSpan=SF,this.getActiveSpan=eRe,this.getSpanContext=bF,this.setSpan=bO,this.setSpanContext=nRe}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalTracerProvider(t){let n=Ap(J8,this._proxyTracerProvider,Po.instance());return n&&this._proxyTracerProvider.setDelegate(t),n}getTracerProvider(){return rl(J8)||this._proxyTracerProvider}getTracer(t,n){return this.getTracerProvider().getTracer(t,n)}disable(){wp(J8,Po.instance()),this._proxyTracerProvider=new mE}}});var jt,NRe=v(()=>{PRe();jt=IF.getInstance()});var Ze={};Ar(Ze,{DiagConsoleLogger:()=>lF,DiagLogLevel:()=>ho,INVALID_SPANID:()=>SO,INVALID_SPAN_CONTEXT:()=>mF,INVALID_TRACEID:()=>hE,ProxyTracer:()=>pR,ProxyTracerProvider:()=>mE,ROOT_CONTEXT:()=>lR,SamplingDecision:()=>vF,SpanKind:()=>$r,SpanStatusCode:()=>as,TraceFlags:()=>qa,ValueType:()=>dF,baggageEntryMetadataFromString:()=>Zve,context:()=>Ve,createContextKey:()=>il,createNoopMeter:()=>Xve,createTraceState:()=>gRe,default:()=>MMt,defaultTextMapGetter:()=>fF,defaultTextMapSetter:()=>pF,diag:()=>sl,isSpanContextValid:()=>um,isValidSpanId:()=>F8,isValidTraceId:()=>U8,metrics:()=>W8,propagation:()=>Qd,trace:()=>jt});var MMt,Me=v(()=>{S8();mO();Jve();cF();P8();Qve();N8();q8();B8();oRe();aRe();cRe();M8();yRe();_F();gF();SRe();bRe();vRe();ORe();NRe();MMt={context:Ve,diag:sl,metrics:W8,propagation:Qd,trace:jt}});var EO=w(dy=>{"use strict";Object.defineProperty(dy,"__esModule",{value:!0});dy.isTracingSuppressed=dy.unsuppressTracing=dy.suppressTracing=void 0;var DMt=(Me(),ke(Ze)),X8=(0,DMt.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function LMt(e){return e.setValue(X8,!0)}dy.suppressTracing=LMt;function UMt(e){return e.deleteValue(X8)}dy.unsuppressTracing=UMt;function FMt(e){return e.getValue(X8)===!0}dy.isTracingSuppressed=FMt});var Q8=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 $8=w(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});xp.parseKeyPairsIntoRecord=xp.parsePairKeyValue=xp.getKeyPairs=xp.serializeKeyPairs=void 0;var jMt=(Me(),ke(Ze)),hR=Q8();function HMt(e){return e.reduce((t,n)=>{let r=`${t}${t!==""?hR.BAGGAGE_ITEMS_SEPARATOR:""}${n}`;return r.length>hR.BAGGAGE_MAX_TOTAL_LENGTH?t:r},"")}xp.serializeKeyPairs=HMt;function qMt(e){return e.getAllEntries().map(([t,n])=>{let r=`${encodeURIComponent(t)}=${encodeURIComponent(n.value)}`;return n.metadata!==void 0&&(r+=hR.BAGGAGE_PROPERTIES_SEPARATOR+n.metadata.toString()),r})}xp.getKeyPairs=qMt;function CRe(e){if(!e)return;let t=e.indexOf(hR.BAGGAGE_PROPERTIES_SEPARATOR),n=t===-1?e:e.substring(0,t),r=n.indexOf(hR.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(hR.BAGGAGE_ITEMS_SEPARATOR).forEach(n=>{let r=CRe(n);r!==void 0&&r.value.length>0&&(t[r.key]=r.value)}),t}xp.parseKeyPairsIntoRecord=BMt});var MRe=w(xF=>{"use strict";Object.defineProperty(xF,"__esModule",{value:!0});xF.W3CBaggagePropagator=void 0;var e7=(Me(),ke(Ze)),zMt=EO(),gE=Q8(),t7=$8(),n7=class{inject(t,n,r){let i=e7.propagation.getBaggage(t);if(!i||(0,zMt.isTracingSuppressed)(t))return;let s=(0,t7.getKeyPairs)(i).filter(a=>a.length<=gE.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,gE.BAGGAGE_MAX_NAME_VALUE_PAIRS),o=(0,t7.serializeKeyPairs)(s);o.length>0&&r.set(n,gE.BAGGAGE_HEADER,o)}extract(t,n,r){let i=r.get(n,gE.BAGGAGE_HEADER),s=Array.isArray(i)?i.join(gE.BAGGAGE_ITEMS_SEPARATOR):i;if(!s)return t;let o={};return s.length===0||(s.split(gE.BAGGAGE_ITEMS_SEPARATOR).forEach(c=>{let u=(0,t7.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:e7.propagation.setBaggage(t,e7.propagation.createBaggage(o))}fields(){return[gE.BAGGAGE_HEADER]}};xF.W3CBaggagePropagator=n7});var DRe=w(OF=>{"use strict";Object.defineProperty(OF,"__esModule",{value:!0});OF.AnchoredClock=void 0;var r7=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}};OF.AnchoredClock=r7});var HRe=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.isAttributeValue=fy.isAttributeKey=fy.sanitizeAttributes=void 0;var LRe=(Me(),ke(Ze));function GMt(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(!URe(n)){LRe.diag.warn(`Invalid attribute key: ${n}`);continue}let r=e[n];if(!FRe(r)){LRe.diag.warn(`Invalid attribute value set for key: ${n}`);continue}Array.isArray(r)?t[n]=r.slice():t[n]=r}return t}fy.sanitizeAttributes=GMt;function URe(e){return typeof e=="string"&&e!==""}fy.isAttributeKey=URe;function FRe(e){return e==null?!0:Array.isArray(e)?VMt(e):jRe(typeof e)}fy.isAttributeValue=FRe;function VMt(e){let t;for(let n of e){if(n==null)continue;let r=typeof n;if(r!==t){if(!t){if(jRe(r)){t=r;continue}return!1}return!1}}return!0}function jRe(e){switch(e){case"number":case"boolean":case"string":return!0}return!1}});var i7=w(PF=>{"use strict";Object.defineProperty(PF,"__esModule",{value:!0});PF.loggingErrorHandler=void 0;var WMt=(Me(),ke(Ze));function KMt(){return e=>{WMt.diag.error(YMt(e))}}PF.loggingErrorHandler=KMt;function YMt(e){return typeof e=="string"?e:JSON.stringify(ZMt(e))}function ZMt(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 BRe=w(mR=>{"use strict";Object.defineProperty(mR,"__esModule",{value:!0});mR.globalErrorHandler=mR.setGlobalErrorHandler=void 0;var JMt=i7(),qRe=(0,JMt.loggingErrorHandler)();function XMt(e){qRe=e}mR.setGlobalErrorHandler=XMt;function QMt(e){try{qRe(e)}catch{}}mR.globalErrorHandler=QMt});var WRe=w(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});Op.getStringListFromEnv=Op.getBooleanFromEnv=Op.getStringFromEnv=Op.getNumberFromEnv=void 0;var zRe=(Me(),ke(Ze)),GRe=Y("util");function $Mt(e){let t=process.env[e];if(t==null||t.trim()==="")return;let n=Number(t);if(isNaN(n)){zRe.diag.warn(`Unknown value ${(0,GRe.inspect)(t)} for ${e}, expected a number, using defaults`);return}return n}Op.getNumberFromEnv=$Mt;function VRe(e){let t=process.env[e];if(!(t==null||t.trim()===""))return t}Op.getStringFromEnv=VRe;function eDt(e){let t=process.env[e]?.trim().toLowerCase();return t==null||t===""?!1:t==="true"?!0:(t==="false"||zRe.diag.warn(`Unknown value ${(0,GRe.inspect)(t)} for ${e}, expected 'true' or 'false', falling back to 'false' (default)`),!1)}Op.getBooleanFromEnv=eDt;function tDt(e){return VRe(e)?.split(",").map(t=>t.trim()).filter(t=>t!=="")}Op.getStringListFromEnv=tDt});var KRe=w(NF=>{"use strict";Object.defineProperty(NF,"__esModule",{value:!0});NF._globalThis=void 0;NF._globalThis=globalThis});var YRe=w(CF=>{"use strict";Object.defineProperty(CF,"__esModule",{value:!0});CF.VERSION=void 0;CF.VERSION="2.6.1"});function ws(e){let t={},n=e.length;for(let r=0;r{});var 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,fke,pke,hke,nDt,o7,rDt,iDt,sDt,oDt,a7,aDt,cDt,uDt,lDt,dDt,fDt,pDt,hDt,mDt,gDt,yDt,SDt,bDt,EDt,_Dt,TDt,vDt,RDt,c7,ADt,wDt,kDt,IDt,xDt,ODt,PDt,NDt,CDt,MDt,DDt,LDt,u7,UDt,FDt,l7,d7,jDt,HDt,qDt,BDt,zDt,GDt,VDt,WDt,KDt,YDt,ZDt,JDt,XDt,QDt,$Dt,eLt,tLt,_O,gR,f7,nLt,rLt,yE,iLt,sLt,oLt,aLt,p7,h7,cLt,m7,uLt,lLt,dLt,fLt,pLt,hLt,mLt,gLt,yLt,SLt,bLt,ELt,_Lt,TLt,vLt,RLt,ALt,wLt,kLt,ILt,xLt,OLt,PLt,g7,NLt,CLt,MLt,DLt,LLt,ULt,FLt,jLt,HLt,qLt,BLt,zLt,GLt,VLt,WLt,KLt,YLt,ZLt,JLt,y7,XLt,S7,QLt,$Lt,e1t,t1t,n1t,r1t,i1t,s1t,o1t,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,sIe,oIe,aIe,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,Y1t,Z1t,J1t,X1t,Q1t,$1t,eUt,cIe,uIe,lIe,dIe,fIe,pIe,hIe,mIe,gIe,yIe,SIe,tUt,nUt,rUt,iUt,sUt,oUt,aUt,cUt,uUt,lUt,dUt,fUt,bIe,EIe,_Ie,TIe,vIe,pUt,hUt,mUt,gUt,yUt,SUt,RIe,AIe,wIe,bUt,EUt,_Ut,TUt,kIe,IIe,xIe,OIe,vUt,RUt,AUt,wUt,kUt,PIe,NIe,CIe,MIe,DIe,LIe,UIe,IUt,xUt,OUt,PUt,NUt,CUt,MUt,DUt,FIe,jIe,HIe,qIe,BIe,LUt,UUt,FUt,jUt,HUt,qUt,zIe,GIe,VIe,WIe,KIe,YIe,ZIe,JIe,XIe,QIe,$Ie,e0e,t0e,n0e,r0e,i0e,s0e,o0e,a0e,c0e,u0e,BUt,zUt,GUt,VUt,WUt,KUt,YUt,ZUt,JUt,XUt,QUt,$Ut,eFt,tFt,nFt,rFt,iFt,sFt,oFt,aFt,cFt,uFt,l0e,d0e,f0e,p0e,h0e,lFt,dFt,fFt,pFt,hFt,mFt,m0e,g0e,gFt,yFt,SFt,y0e,S0e,bFt,EFt,_Ft,b0e,E0e,_0e,T0e,v0e,R0e,A0e,w0e,k0e,I0e,x0e,O0e,P0e,N0e,C0e,M0e,D0e,TFt,vFt,RFt,AFt,wFt,kFt,IFt,xFt,OFt,PFt,NFt,CFt,MFt,DFt,LFt,UFt,FFt,jFt,L0e,U0e,HFt,qFt,BFt,F0e=v(()=>{s7();ZRe="aws.lambda.invoked_arn",JRe="db.system",XRe="db.connection_string",QRe="db.user",$Re="db.jdbc.driver_classname",eAe="db.name",tAe="db.statement",nAe="db.operation",rAe="db.mssql.instance_name",iAe="db.cassandra.keyspace",sAe="db.cassandra.page_size",oAe="db.cassandra.consistency_level",aAe="db.cassandra.table",cAe="db.cassandra.idempotence",uAe="db.cassandra.speculative_execution_count",lAe="db.cassandra.coordinator.id",dAe="db.cassandra.coordinator.dc",fAe="db.hbase.namespace",pAe="db.redis.database_index",hAe="db.mongodb.collection",mAe="db.sql.table",gAe="exception.type",yAe="exception.message",SAe="exception.stacktrace",bAe="exception.escaped",EAe="faas.trigger",_Ae="faas.execution",TAe="faas.document.collection",vAe="faas.document.operation",RAe="faas.document.time",AAe="faas.document.name",wAe="faas.time",kAe="faas.cron",IAe="faas.coldstart",xAe="faas.invoked_name",OAe="faas.invoked_provider",PAe="faas.invoked_region",NAe="net.transport",CAe="net.peer.ip",MAe="net.peer.port",DAe="net.peer.name",LAe="net.host.ip",UAe="net.host.port",FAe="net.host.name",jAe="net.host.connection.type",HAe="net.host.connection.subtype",qAe="net.host.carrier.name",BAe="net.host.carrier.mcc",zAe="net.host.carrier.mnc",GAe="net.host.carrier.icc",VAe="peer.service",WAe="enduser.id",KAe="enduser.role",YAe="enduser.scope",ZAe="thread.id",JAe="thread.name",XAe="code.function",QAe="code.namespace",$Ae="code.filepath",ewe="code.lineno",twe="http.method",nwe="http.url",rwe="http.target",iwe="http.host",swe="http.scheme",owe="http.status_code",awe="http.flavor",cwe="http.user_agent",uwe="http.request_content_length",lwe="http.request_content_length_uncompressed",dwe="http.response_content_length",fwe="http.response_content_length_uncompressed",pwe="http.server_name",hwe="http.route",mwe="http.client_ip",gwe="aws.dynamodb.table_names",ywe="aws.dynamodb.consumed_capacity",Swe="aws.dynamodb.item_collection_metrics",bwe="aws.dynamodb.provisioned_read_capacity",Ewe="aws.dynamodb.provisioned_write_capacity",_we="aws.dynamodb.consistent_read",Twe="aws.dynamodb.projection",vwe="aws.dynamodb.limit",Rwe="aws.dynamodb.attributes_to_get",Awe="aws.dynamodb.index_name",wwe="aws.dynamodb.select",kwe="aws.dynamodb.global_secondary_indexes",Iwe="aws.dynamodb.local_secondary_indexes",xwe="aws.dynamodb.exclusive_start_table",Owe="aws.dynamodb.table_count",Pwe="aws.dynamodb.scan_forward",Nwe="aws.dynamodb.segment",Cwe="aws.dynamodb.total_segments",Mwe="aws.dynamodb.count",Dwe="aws.dynamodb.scanned_count",Lwe="aws.dynamodb.attribute_definitions",Uwe="aws.dynamodb.global_secondary_index_updates",Fwe="messaging.system",jwe="messaging.destination",Hwe="messaging.destination_kind",qwe="messaging.temp_destination",Bwe="messaging.protocol",zwe="messaging.protocol_version",Gwe="messaging.url",Vwe="messaging.message_id",Wwe="messaging.conversation_id",Kwe="messaging.message_payload_size_bytes",Ywe="messaging.message_payload_compressed_size_bytes",Zwe="messaging.operation",Jwe="messaging.consumer_id",Xwe="messaging.rabbitmq.routing_key",Qwe="messaging.kafka.message_key",$we="messaging.kafka.consumer_group",eke="messaging.kafka.client_id",tke="messaging.kafka.partition",nke="messaging.kafka.tombstone",rke="rpc.system",ike="rpc.service",ske="rpc.method",oke="rpc.grpc.status_code",ake="rpc.jsonrpc.version",cke="rpc.jsonrpc.request_id",uke="rpc.jsonrpc.error_code",lke="rpc.jsonrpc.error_message",dke="message.type",fke="message.id",pke="message.compressed_size",hke="message.uncompressed_size",nDt=ZRe,o7=JRe,rDt=XRe,iDt=QRe,sDt=$Re,oDt=eAe,a7=tAe,aDt=nAe,cDt=rAe,uDt=iAe,lDt=sAe,dDt=oAe,fDt=aAe,pDt=cAe,hDt=uAe,mDt=lAe,gDt=dAe,yDt=fAe,SDt=pAe,bDt=hAe,EDt=mAe,_Dt=gAe,TDt=yAe,vDt=SAe,RDt=bAe,c7=EAe,ADt=_Ae,wDt=TAe,kDt=vAe,IDt=RAe,xDt=AAe,ODt=wAe,PDt=kAe,NDt=IAe,CDt=xAe,MDt=OAe,DDt=PAe,LDt=NAe,u7=CAe,UDt=MAe,FDt=DAe,l7=LAe,d7=UAe,jDt=FAe,HDt=jAe,qDt=HAe,BDt=qAe,zDt=BAe,GDt=zAe,VDt=GAe,WDt=VAe,KDt=WAe,YDt=KAe,ZDt=YAe,JDt=ZAe,XDt=JAe,QDt=XAe,$Dt=QAe,eLt=$Ae,tLt=ewe,_O=twe,gR=nwe,f7=rwe,nLt=iwe,rLt=swe,yE=owe,iLt=awe,sLt=cwe,oLt=uwe,aLt=lwe,p7=dwe,h7=fwe,cLt=pwe,m7=hwe,uLt=mwe,lLt=gwe,dLt=ywe,fLt=Swe,pLt=bwe,hLt=Ewe,mLt=_we,gLt=Twe,yLt=vwe,SLt=Rwe,bLt=Awe,ELt=wwe,_Lt=kwe,TLt=Iwe,vLt=xwe,RLt=Owe,ALt=Pwe,wLt=Nwe,kLt=Cwe,ILt=Mwe,xLt=Dwe,OLt=Lwe,PLt=Uwe,g7=Fwe,NLt=jwe,CLt=Hwe,MLt=qwe,DLt=Bwe,LLt=zwe,ULt=Gwe,FLt=Vwe,jLt=Wwe,HLt=Kwe,qLt=Ywe,BLt=Zwe,zLt=Jwe,GLt=Xwe,VLt=Qwe,WLt=$we,KLt=eke,YLt=tke,ZLt=nke,JLt=rke,y7=ike,XLt=ske,S7=oke,QLt=ake,$Lt=cke,e1t=uke,t1t=lke,n1t=dke,r1t=fke,i1t=pke,s1t=hke,o1t=ws([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,fke,pke,hke]),mke="other_sql",gke="mssql",yke="mysql",Ske="oracle",bke="db2",Eke="postgresql",_ke="redshift",Tke="hive",vke="cloudscape",Rke="hsqldb",Ake="progress",wke="maxdb",kke="hanadb",Ike="ingres",xke="firstsql",Oke="edb",Pke="cache",Nke="adabas",Cke="firebird",Mke="derby",Dke="filemaker",Lke="informix",Uke="instantdb",Fke="interbase",jke="mariadb",Hke="netezza",qke="pervasive",Bke="pointbase",zke="sqlite",Gke="sybase",Vke="teradata",Wke="vertica",Kke="h2",Yke="coldfusion",Zke="cassandra",Jke="hbase",Xke="mongodb",Qke="redis",$ke="couchbase",eIe="couchdb",tIe="cosmosdb",nIe="dynamodb",rIe="neo4j",iIe="geode",sIe="elasticsearch",oIe="memcached",aIe="cockroachdb",a1t=mke,c1t=gke,u1t=yke,l1t=Ske,d1t=bke,f1t=Eke,p1t=_ke,h1t=Tke,m1t=vke,g1t=Rke,y1t=Ake,S1t=wke,b1t=kke,E1t=Ike,_1t=xke,T1t=Oke,v1t=Pke,R1t=Nke,A1t=Cke,w1t=Mke,k1t=Dke,I1t=Lke,x1t=Uke,O1t=Fke,P1t=jke,N1t=Hke,C1t=qke,M1t=Bke,D1t=zke,L1t=Gke,U1t=Vke,F1t=Wke,j1t=Kke,H1t=Yke,q1t=Zke,B1t=Jke,z1t=Xke,G1t=Qke,V1t=$ke,W1t=eIe,K1t=tIe,Y1t=nIe,Z1t=rIe,J1t=iIe,X1t=sIe,Q1t=oIe,$1t=aIe,eUt=ws([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,sIe,oIe,aIe]),cIe="all",uIe="each_quorum",lIe="quorum",dIe="local_quorum",fIe="one",pIe="two",hIe="three",mIe="local_one",gIe="any",yIe="serial",SIe="local_serial",tUt=cIe,nUt=uIe,rUt=lIe,iUt=dIe,sUt=fIe,oUt=pIe,aUt=hIe,cUt=mIe,uUt=gIe,lUt=yIe,dUt=SIe,fUt=ws([cIe,uIe,lIe,dIe,fIe,pIe,hIe,mIe,gIe,yIe,SIe]),bIe="datasource",EIe="http",_Ie="pubsub",TIe="timer",vIe="other",pUt=bIe,hUt=EIe,mUt=_Ie,gUt=TIe,yUt=vIe,SUt=ws([bIe,EIe,_Ie,TIe,vIe]),RIe="insert",AIe="edit",wIe="delete",bUt=RIe,EUt=AIe,_Ut=wIe,TUt=ws([RIe,AIe,wIe]),kIe="alibaba_cloud",IIe="aws",xIe="azure",OIe="gcp",vUt=kIe,RUt=IIe,AUt=xIe,wUt=OIe,kUt=ws([kIe,IIe,xIe,OIe]),PIe="ip_tcp",NIe="ip_udp",CIe="ip",MIe="unix",DIe="pipe",LIe="inproc",UIe="other",IUt=PIe,xUt=NIe,OUt=CIe,PUt=MIe,NUt=DIe,CUt=LIe,MUt=UIe,DUt=ws([PIe,NIe,CIe,MIe,DIe,LIe,UIe]),FIe="wifi",jIe="wired",HIe="cell",qIe="unavailable",BIe="unknown",LUt=FIe,UUt=jIe,FUt=HIe,jUt=qIe,HUt=BIe,qUt=ws([FIe,jIe,HIe,qIe,BIe]),zIe="gprs",GIe="edge",VIe="umts",WIe="cdma",KIe="evdo_0",YIe="evdo_a",ZIe="cdma2000_1xrtt",JIe="hsdpa",XIe="hsupa",QIe="hspa",$Ie="iden",e0e="evdo_b",t0e="lte",n0e="ehrpd",r0e="hspap",i0e="gsm",s0e="td_scdma",o0e="iwlan",a0e="nr",c0e="nrnsa",u0e="lte_ca",BUt=zIe,zUt=GIe,GUt=VIe,VUt=WIe,WUt=KIe,KUt=YIe,YUt=ZIe,ZUt=JIe,JUt=XIe,XUt=QIe,QUt=$Ie,$Ut=e0e,eFt=t0e,tFt=n0e,nFt=r0e,rFt=i0e,iFt=s0e,sFt=o0e,oFt=a0e,aFt=c0e,cFt=u0e,uFt=ws([zIe,GIe,VIe,WIe,KIe,YIe,ZIe,JIe,XIe,QIe,$Ie,e0e,t0e,n0e,r0e,i0e,s0e,o0e,a0e,c0e,u0e]),l0e="1.0",d0e="1.1",f0e="2.0",p0e="SPDY",h0e="QUIC",lFt=l0e,dFt=d0e,fFt=f0e,pFt=p0e,hFt=h0e,mFt={HTTP_1_0:l0e,HTTP_1_1:d0e,HTTP_2_0:f0e,SPDY:p0e,QUIC:h0e},m0e="queue",g0e="topic",gFt=m0e,yFt=g0e,SFt=ws([m0e,g0e]),y0e="receive",S0e="process",bFt=y0e,EFt=S0e,_Ft=ws([y0e,S0e]),b0e=0,E0e=1,_0e=2,T0e=3,v0e=4,R0e=5,A0e=6,w0e=7,k0e=8,I0e=9,x0e=10,O0e=11,P0e=12,N0e=13,C0e=14,M0e=15,D0e=16,TFt=b0e,vFt=E0e,RFt=_0e,AFt=T0e,wFt=v0e,kFt=R0e,IFt=A0e,xFt=w0e,OFt=k0e,PFt=I0e,NFt=x0e,CFt=O0e,MFt=P0e,DFt=N0e,LFt=C0e,UFt=M0e,FFt=D0e,jFt={OK:b0e,CANCELLED:E0e,UNKNOWN:_0e,INVALID_ARGUMENT:T0e,DEADLINE_EXCEEDED:v0e,NOT_FOUND:R0e,ALREADY_EXISTS:A0e,PERMISSION_DENIED:w0e,RESOURCE_EXHAUSTED:k0e,FAILED_PRECONDITION:I0e,ABORTED:x0e,OUT_OF_RANGE:O0e,UNIMPLEMENTED:P0e,INTERNAL:N0e,UNAVAILABLE:C0e,DATA_LOSS:M0e,UNAUTHENTICATED:D0e},L0e="SENT",U0e="RECEIVED",HFt=L0e,qFt=U0e,BFt=ws([L0e,U0e])});var j0e=v(()=>{F0e()});var 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,lOe,dOe,fOe,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,$jt,eHt,tHt,nHt,rHt,iHt,sHt,b7,oHt,aHt,cHt,uHt,lHt,dHt,fHt,pHt,hHt,mHt,pOe,hOe,mOe,gOe,gHt,yHt,SHt,bHt,EHt,yOe,SOe,bOe,EOe,_Oe,TOe,vOe,ROe,AOe,wOe,kOe,IOe,xOe,OOe,POe,NOe,COe,_Ht,THt,vHt,RHt,AHt,wHt,kHt,IHt,xHt,OHt,PHt,NHt,CHt,MHt,DHt,LHt,UHt,FHt,MOe,DOe,jHt,HHt,qHt,LOe,UOe,FOe,jOe,HOe,qOe,BOe,BHt,zHt,GHt,VHt,WHt,KHt,YHt,ZHt,zOe,GOe,VOe,WOe,KOe,YOe,ZOe,JOe,XOe,QOe,$Oe,JHt,XHt,QHt,$Ht,eqt,tqt,nqt,rqt,iqt,sqt,oqt,aqt,ePe,tPe,nPe,rPe,iPe,sPe,oPe,aPe,cPe,uPe,cqt,uqt,lqt,dqt,fqt,pqt,hqt,mqt,gqt,yqt,Sqt,lPe=v(()=>{s7();H0e="cloud.provider",q0e="cloud.account.id",B0e="cloud.region",z0e="cloud.availability_zone",G0e="cloud.platform",V0e="aws.ecs.container.arn",W0e="aws.ecs.cluster.arn",K0e="aws.ecs.launchtype",Y0e="aws.ecs.task.arn",Z0e="aws.ecs.task.family",J0e="aws.ecs.task.revision",X0e="aws.eks.cluster.arn",Q0e="aws.log.group.names",$0e="aws.log.group.arns",exe="aws.log.stream.names",txe="aws.log.stream.arns",nxe="container.name",rxe="container.id",ixe="container.runtime",sxe="container.image.name",oxe="container.image.tag",axe="deployment.environment",cxe="device.id",uxe="device.model.identifier",lxe="device.model.name",dxe="faas.name",fxe="faas.id",pxe="faas.version",hxe="faas.instance",mxe="faas.max_memory",gxe="host.id",yxe="host.name",Sxe="host.type",bxe="host.arch",Exe="host.image.name",_xe="host.image.id",Txe="host.image.version",vxe="k8s.cluster.name",Rxe="k8s.node.name",Axe="k8s.node.uid",wxe="k8s.namespace.name",kxe="k8s.pod.uid",Ixe="k8s.pod.name",xxe="k8s.container.name",Oxe="k8s.replicaset.uid",Pxe="k8s.replicaset.name",Nxe="k8s.deployment.uid",Cxe="k8s.deployment.name",Mxe="k8s.statefulset.uid",Dxe="k8s.statefulset.name",Lxe="k8s.daemonset.uid",Uxe="k8s.daemonset.name",Fxe="k8s.job.uid",jxe="k8s.job.name",Hxe="k8s.cronjob.uid",qxe="k8s.cronjob.name",Bxe="os.type",zxe="os.description",Gxe="os.name",Vxe="os.version",Wxe="process.pid",Kxe="process.executable.name",Yxe="process.executable.path",Zxe="process.command",Jxe="process.command_line",Xxe="process.command_args",Qxe="process.owner",$xe="process.runtime.name",eOe="process.runtime.version",tOe="process.runtime.description",nOe="service.name",rOe="service.namespace",iOe="service.instance.id",sOe="service.version",oOe="telemetry.sdk.name",aOe="telemetry.sdk.language",cOe="telemetry.sdk.version",uOe="telemetry.auto.version",lOe="webengine.name",dOe="webengine.version",fOe="webengine.description",zFt=H0e,GFt=q0e,VFt=B0e,WFt=z0e,KFt=G0e,YFt=V0e,ZFt=W0e,JFt=K0e,XFt=Y0e,QFt=Z0e,$Ft=J0e,ejt=X0e,tjt=Q0e,njt=$0e,rjt=exe,ijt=txe,sjt=nxe,ojt=rxe,ajt=ixe,cjt=sxe,ujt=oxe,ljt=axe,djt=cxe,fjt=uxe,pjt=lxe,hjt=dxe,mjt=fxe,gjt=pxe,yjt=hxe,Sjt=mxe,bjt=gxe,Ejt=yxe,_jt=Sxe,Tjt=bxe,vjt=Exe,Rjt=_xe,Ajt=Txe,wjt=vxe,kjt=Rxe,Ijt=Axe,xjt=wxe,Ojt=kxe,Pjt=Ixe,Njt=xxe,Cjt=Oxe,Mjt=Pxe,Djt=Nxe,Ljt=Cxe,Ujt=Mxe,Fjt=Dxe,jjt=Lxe,Hjt=Uxe,qjt=Fxe,Bjt=jxe,zjt=Hxe,Gjt=qxe,Vjt=Bxe,Wjt=zxe,Kjt=Gxe,Yjt=Vxe,Zjt=Wxe,Jjt=Kxe,Xjt=Yxe,Qjt=Zxe,$jt=Jxe,eHt=Xxe,tHt=Qxe,nHt=$xe,rHt=eOe,iHt=tOe,sHt=nOe,b7=rOe,oHt=iOe,aHt=sOe,cHt=oOe,uHt=aOe,lHt=cOe,dHt=uOe,fHt=lOe,pHt=dOe,hHt=fOe,mHt=ws([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,lOe,dOe,fOe]),pOe="alibaba_cloud",hOe="aws",mOe="azure",gOe="gcp",gHt=pOe,yHt=hOe,SHt=mOe,bHt=gOe,EHt=ws([pOe,hOe,mOe,gOe]),yOe="alibaba_cloud_ecs",SOe="alibaba_cloud_fc",bOe="aws_ec2",EOe="aws_ecs",_Oe="aws_eks",TOe="aws_lambda",vOe="aws_elastic_beanstalk",ROe="azure_vm",AOe="azure_container_instances",wOe="azure_aks",kOe="azure_functions",IOe="azure_app_service",xOe="gcp_compute_engine",OOe="gcp_cloud_run",POe="gcp_kubernetes_engine",NOe="gcp_cloud_functions",COe="gcp_app_engine",_Ht=yOe,THt=SOe,vHt=bOe,RHt=EOe,AHt=_Oe,wHt=TOe,kHt=vOe,IHt=ROe,xHt=AOe,OHt=wOe,PHt=kOe,NHt=IOe,CHt=xOe,MHt=OOe,DHt=POe,LHt=NOe,UHt=COe,FHt=ws([yOe,SOe,bOe,EOe,_Oe,TOe,vOe,ROe,AOe,wOe,kOe,IOe,xOe,OOe,POe,NOe,COe]),MOe="ec2",DOe="fargate",jHt=MOe,HHt=DOe,qHt=ws([MOe,DOe]),LOe="amd64",UOe="arm32",FOe="arm64",jOe="ia64",HOe="ppc32",qOe="ppc64",BOe="x86",BHt=LOe,zHt=UOe,GHt=FOe,VHt=jOe,WHt=HOe,KHt=qOe,YHt=BOe,ZHt=ws([LOe,UOe,FOe,jOe,HOe,qOe,BOe]),zOe="windows",GOe="linux",VOe="darwin",WOe="freebsd",KOe="netbsd",YOe="openbsd",ZOe="dragonflybsd",JOe="hpux",XOe="aix",QOe="solaris",$Oe="z_os",JHt=zOe,XHt=GOe,QHt=VOe,$Ht=WOe,eqt=KOe,tqt=YOe,nqt=ZOe,rqt=JOe,iqt=XOe,sqt=QOe,oqt=$Oe,aqt=ws([zOe,GOe,VOe,WOe,KOe,YOe,ZOe,JOe,XOe,QOe,$Oe]),ePe="cpp",tPe="dotnet",nPe="erlang",rPe="go",iPe="java",sPe="nodejs",oPe="php",aPe="python",cPe="ruby",uPe="webjs",cqt=ePe,uqt=tPe,lqt=nPe,dqt=rPe,fqt=iPe,pqt=sPe,hqt=oPe,mqt=aPe,gqt=cPe,yqt=uPe,Sqt=ws([ePe,tPe,nPe,rPe,iPe,sPe,oPe,aPe,cPe,uPe])});var dPe=v(()=>{lPe()});var bqt,Eqt,_qt,Tqt,vqt,Rqt,Aqt,wqt,kqt,Iqt,xqt,Oqt,Pqt,Nqt,Cqt,Mqt,Dqt,Lqt,Uqt,Fqt,jqt,Hqt,qqt,Bqt,zqt,E7,_7,Gqt,yR,Vqt,T7,v7,Wqt,SE,Kqt,Yqt,Zqt,Jqt,Xqt,Qqt,$qt,eBt,Vyr,Wyr,R7,tBt,nBt,rBt,iBt,sBt,oBt,bE,aBt,cBt,uBt,Kyr,lBt,dBt,fBt,pBt,Yyr,hBt,mBt,gBt,yBt,lm,dm,SBt,bBt,EBt,_Bt,TBt,vBt,RBt,ABt,wBt,Zyr,kBt,IBt,xBt,OBt,PBt,NBt,A7,w7,CBt,k7,I7,MBt,DBt,Jyr,Xyr,LBt,UBt,FBt,jBt,HBt,qBt,BBt,zBt,Qyr,GBt,x7,O7,VBt,P7,WBt,N7,KBt,YBt,ZBt,JBt,XBt,QBt,$Bt,ezt,tzt,$yr,nzt,rzt,eSr,izt,szt,tSr,ozt,azt,czt,uzt,lzt,dzt,fzt,pzt,py,hzt,mzt,gzt,C7,fPe=v(()=>{bqt="aspnetcore.diagnostics.exception.result",Eqt="aborted",_qt="handled",Tqt="skipped",vqt="unhandled",Rqt="aspnetcore.diagnostics.handler.type",Aqt="aspnetcore.rate_limiting.policy",wqt="aspnetcore.rate_limiting.result",kqt="acquired",Iqt="endpoint_limiter",xqt="global_limiter",Oqt="request_canceled",Pqt="aspnetcore.request.is_unhandled",Nqt="aspnetcore.routing.is_fallback",Cqt="aspnetcore.routing.match_status",Mqt="failure",Dqt="success",Lqt="aspnetcore.user.is_authenticated",Uqt="client.address",Fqt="client.port",jqt="code.column.number",Hqt="code.file.path",qqt="code.function.name",Bqt="code.line.number",zqt="code.stacktrace",E7="db.collection.name",_7="db.namespace",Gqt="db.operation.batch.size",yR="db.operation.name",Vqt="db.query.summary",T7="db.query.text",v7="db.response.status_code",Wqt="db.stored_procedure.name",SE="db.system.name",Kqt="mariadb",Yqt="microsoft.sql_server",Zqt="mysql",Jqt="postgresql",Xqt="dotnet.gc.heap.generation",Qqt="gen0",$qt="gen1",eBt="gen2",Vyr="loh",Wyr="poh",R7="error.type",tBt="_OTHER",nBt="exception.escaped",rBt="exception.message",iBt="exception.stacktrace",sBt="exception.type",oBt=e=>`http.request.header.${e}`,bE="http.request.method",aBt="_OTHER",cBt="CONNECT",uBt="DELETE",Kyr="GET",lBt="HEAD",dBt="OPTIONS",fBt="PATCH",pBt="POST",Yyr="PUT",hBt="TRACE",mBt="http.request.method_original",gBt="http.request.resend_count",yBt=e=>`http.response.header.${e}`,lm="http.response.status_code",dm="http.route",SBt="jvm.gc.action",bBt="jvm.gc.name",EBt="jvm.memory.pool.name",_Bt="jvm.memory.type",TBt="heap",vBt="non_heap",RBt="jvm.thread.daemon",ABt="jvm.thread.state",wBt="blocked",Zyr="new",kBt="runnable",IBt="terminated",xBt="timed_waiting",OBt="waiting",PBt="network.local.address",NBt="network.local.port",A7="network.peer.address",w7="network.peer.port",CBt="network.protocol.name",k7="network.protocol.version",I7="network.transport",MBt="pipe",DBt="quic",Jyr="tcp",Xyr="udp",LBt="unix",UBt="network.type",FBt="ipv4",jBt="ipv6",HBt="otel.scope.name",qBt="otel.scope.version",BBt="otel.status_code",zBt="ERROR",Qyr="OK",GBt="otel.status_description",x7="server.address",O7="server.port",VBt="service.instance.id",P7="service.name",WBt="service.namespace",N7="service.version",KBt="signalr.connection.status",YBt="app_shutdown",ZBt="normal_closure",JBt="timeout",XBt="signalr.transport",QBt="long_polling",$Bt="server_sent_events",ezt="web_sockets",tzt="telemetry.sdk.language",$yr="cpp",nzt="dotnet",rzt="erlang",eSr="go",izt="java",szt="nodejs",tSr="php",ozt="python",azt="ruby",czt="rust",uzt="swift",lzt="webjs",dzt="telemetry.sdk.name",fzt="telemetry.sdk.version",pzt="url.fragment",py="url.full",hzt="url.path",mzt="url.query",gzt="url.scheme",C7="user_agent.original"});var 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,aGt,cGt,uGt,lGt,dGt,fGt,pGt,pPe=v(()=>{yzt="aspnetcore.diagnostics.exceptions",Szt="aspnetcore.rate_limiting.active_request_leases",bzt="aspnetcore.rate_limiting.queued_requests",Ezt="aspnetcore.rate_limiting.request.time_in_queue",_zt="aspnetcore.rate_limiting.request_lease.duration",Tzt="aspnetcore.rate_limiting.requests",vzt="aspnetcore.routing.match_attempts",Rzt="db.client.operation.duration",Azt="dotnet.assembly.count",wzt="dotnet.exceptions",kzt="dotnet.gc.collections",Izt="dotnet.gc.heap.total_allocated",xzt="dotnet.gc.last_collection.heap.fragmentation.size",Ozt="dotnet.gc.last_collection.heap.size",Pzt="dotnet.gc.last_collection.memory.committed_size",Nzt="dotnet.gc.pause.time",Czt="dotnet.jit.compilation.time",Mzt="dotnet.jit.compiled_il.size",Dzt="dotnet.jit.compiled_methods",Lzt="dotnet.monitor.lock_contentions",Uzt="dotnet.process.cpu.count",Fzt="dotnet.process.cpu.time",jzt="dotnet.process.memory.working_set",Hzt="dotnet.thread_pool.queue.length",qzt="dotnet.thread_pool.thread.count",Bzt="dotnet.thread_pool.work_item.count",zzt="dotnet.timer.count",Gzt="http.client.request.duration",Vzt="http.server.request.duration",Wzt="jvm.class.count",Kzt="jvm.class.loaded",Yzt="jvm.class.unloaded",Zzt="jvm.cpu.count",Jzt="jvm.cpu.recent_utilization",Xzt="jvm.cpu.time",Qzt="jvm.gc.duration",$zt="jvm.memory.committed",eGt="jvm.memory.limit",tGt="jvm.memory.used",nGt="jvm.memory.used_after_last_gc",rGt="jvm.thread.count",iGt="kestrel.active_connections",sGt="kestrel.active_tls_handshakes",oGt="kestrel.connection.duration",aGt="kestrel.queued_connections",cGt="kestrel.queued_requests",uGt="kestrel.rejected_connections",lGt="kestrel.tls_handshake.duration",dGt="kestrel.upgraded_connections",fGt="signalr.server.active_connections",pGt="signalr.server.connection.duration"});var hGt,hPe=v(()=>{hGt="exception"});var Mr={};Ar(Mr,{ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED:()=>Eqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED:()=>_qt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED:()=>Tqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED:()=>vqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED:()=>kqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER:()=>Iqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER:()=>xqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED:()=>Oqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE:()=>Mqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS:()=>Dqt,ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT:()=>bqt,ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE:()=>Rqt,ATTR_ASPNETCORE_RATE_LIMITING_POLICY:()=>Aqt,ATTR_ASPNETCORE_RATE_LIMITING_RESULT:()=>wqt,ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED:()=>Pqt,ATTR_ASPNETCORE_ROUTING_IS_FALLBACK:()=>Nqt,ATTR_ASPNETCORE_ROUTING_MATCH_STATUS:()=>Cqt,ATTR_ASPNETCORE_USER_IS_AUTHENTICATED:()=>Lqt,ATTR_CLIENT_ADDRESS:()=>Uqt,ATTR_CLIENT_PORT:()=>Fqt,ATTR_CODE_COLUMN_NUMBER:()=>jqt,ATTR_CODE_FILE_PATH:()=>Hqt,ATTR_CODE_FUNCTION_NAME:()=>qqt,ATTR_CODE_LINE_NUMBER:()=>Bqt,ATTR_CODE_STACKTRACE:()=>zqt,ATTR_DB_COLLECTION_NAME:()=>E7,ATTR_DB_NAMESPACE:()=>_7,ATTR_DB_OPERATION_BATCH_SIZE:()=>Gqt,ATTR_DB_OPERATION_NAME:()=>yR,ATTR_DB_QUERY_SUMMARY:()=>Vqt,ATTR_DB_QUERY_TEXT:()=>T7,ATTR_DB_RESPONSE_STATUS_CODE:()=>v7,ATTR_DB_STORED_PROCEDURE_NAME:()=>Wqt,ATTR_DB_SYSTEM_NAME:()=>SE,ATTR_DOTNET_GC_HEAP_GENERATION:()=>Xqt,ATTR_ERROR_TYPE:()=>R7,ATTR_EXCEPTION_ESCAPED:()=>nBt,ATTR_EXCEPTION_MESSAGE:()=>rBt,ATTR_EXCEPTION_STACKTRACE:()=>iBt,ATTR_EXCEPTION_TYPE:()=>sBt,ATTR_HTTP_REQUEST_HEADER:()=>oBt,ATTR_HTTP_REQUEST_METHOD:()=>bE,ATTR_HTTP_REQUEST_METHOD_ORIGINAL:()=>mBt,ATTR_HTTP_REQUEST_RESEND_COUNT:()=>gBt,ATTR_HTTP_RESPONSE_HEADER:()=>yBt,ATTR_HTTP_RESPONSE_STATUS_CODE:()=>lm,ATTR_HTTP_ROUTE:()=>dm,ATTR_JVM_GC_ACTION:()=>SBt,ATTR_JVM_GC_NAME:()=>bBt,ATTR_JVM_MEMORY_POOL_NAME:()=>EBt,ATTR_JVM_MEMORY_TYPE:()=>_Bt,ATTR_JVM_THREAD_DAEMON:()=>RBt,ATTR_JVM_THREAD_STATE:()=>ABt,ATTR_NETWORK_LOCAL_ADDRESS:()=>PBt,ATTR_NETWORK_LOCAL_PORT:()=>NBt,ATTR_NETWORK_PEER_ADDRESS:()=>A7,ATTR_NETWORK_PEER_PORT:()=>w7,ATTR_NETWORK_PROTOCOL_NAME:()=>CBt,ATTR_NETWORK_PROTOCOL_VERSION:()=>k7,ATTR_NETWORK_TRANSPORT:()=>I7,ATTR_NETWORK_TYPE:()=>UBt,ATTR_OTEL_SCOPE_NAME:()=>HBt,ATTR_OTEL_SCOPE_VERSION:()=>qBt,ATTR_OTEL_STATUS_CODE:()=>BBt,ATTR_OTEL_STATUS_DESCRIPTION:()=>GBt,ATTR_SERVER_ADDRESS:()=>x7,ATTR_SERVER_PORT:()=>O7,ATTR_SERVICE_INSTANCE_ID:()=>VBt,ATTR_SERVICE_NAME:()=>P7,ATTR_SERVICE_NAMESPACE:()=>WBt,ATTR_SERVICE_VERSION:()=>N7,ATTR_SIGNALR_CONNECTION_STATUS:()=>KBt,ATTR_SIGNALR_TRANSPORT:()=>XBt,ATTR_TELEMETRY_SDK_LANGUAGE:()=>tzt,ATTR_TELEMETRY_SDK_NAME:()=>dzt,ATTR_TELEMETRY_SDK_VERSION:()=>fzt,ATTR_URL_FRAGMENT:()=>pzt,ATTR_URL_FULL:()=>py,ATTR_URL_PATH:()=>hzt,ATTR_URL_QUERY:()=>mzt,ATTR_URL_SCHEME:()=>gzt,ATTR_USER_AGENT_ORIGINAL:()=>C7,AWSECSLAUNCHTYPEVALUES_EC2:()=>jHt,AWSECSLAUNCHTYPEVALUES_FARGATE:()=>HHt,AwsEcsLaunchtypeValues:()=>qHt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS:()=>_Ht,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC:()=>THt,CLOUDPLATFORMVALUES_AWS_EC2:()=>vHt,CLOUDPLATFORMVALUES_AWS_ECS:()=>RHt,CLOUDPLATFORMVALUES_AWS_EKS:()=>AHt,CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK:()=>kHt,CLOUDPLATFORMVALUES_AWS_LAMBDA:()=>wHt,CLOUDPLATFORMVALUES_AZURE_AKS:()=>OHt,CLOUDPLATFORMVALUES_AZURE_APP_SERVICE:()=>NHt,CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES:()=>xHt,CLOUDPLATFORMVALUES_AZURE_FUNCTIONS:()=>PHt,CLOUDPLATFORMVALUES_AZURE_VM:()=>IHt,CLOUDPLATFORMVALUES_GCP_APP_ENGINE:()=>UHt,CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS:()=>LHt,CLOUDPLATFORMVALUES_GCP_CLOUD_RUN:()=>MHt,CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE:()=>CHt,CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE:()=>DHt,CLOUDPROVIDERVALUES_ALIBABA_CLOUD:()=>gHt,CLOUDPROVIDERVALUES_AWS:()=>yHt,CLOUDPROVIDERVALUES_AZURE:()=>SHt,CLOUDPROVIDERVALUES_GCP:()=>bHt,CloudPlatformValues:()=>FHt,CloudProviderValues:()=>EHt,DBCASSANDRACONSISTENCYLEVELVALUES_ALL:()=>tUt,DBCASSANDRACONSISTENCYLEVELVALUES_ANY:()=>uUt,DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM:()=>nUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE:()=>cUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM:()=>iUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL:()=>dUt,DBCASSANDRACONSISTENCYLEVELVALUES_ONE:()=>sUt,DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM:()=>rUt,DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL:()=>lUt,DBCASSANDRACONSISTENCYLEVELVALUES_THREE:()=>aUt,DBCASSANDRACONSISTENCYLEVELVALUES_TWO:()=>oUt,DBSYSTEMVALUES_ADABAS:()=>R1t,DBSYSTEMVALUES_CACHE:()=>v1t,DBSYSTEMVALUES_CASSANDRA:()=>q1t,DBSYSTEMVALUES_CLOUDSCAPE:()=>m1t,DBSYSTEMVALUES_COCKROACHDB:()=>$1t,DBSYSTEMVALUES_COLDFUSION:()=>H1t,DBSYSTEMVALUES_COSMOSDB:()=>K1t,DBSYSTEMVALUES_COUCHBASE:()=>V1t,DBSYSTEMVALUES_COUCHDB:()=>W1t,DBSYSTEMVALUES_DB2:()=>d1t,DBSYSTEMVALUES_DERBY:()=>w1t,DBSYSTEMVALUES_DYNAMODB:()=>Y1t,DBSYSTEMVALUES_EDB:()=>T1t,DBSYSTEMVALUES_ELASTICSEARCH:()=>X1t,DBSYSTEMVALUES_FILEMAKER:()=>k1t,DBSYSTEMVALUES_FIREBIRD:()=>A1t,DBSYSTEMVALUES_FIRSTSQL:()=>_1t,DBSYSTEMVALUES_GEODE:()=>J1t,DBSYSTEMVALUES_H2:()=>j1t,DBSYSTEMVALUES_HANADB:()=>b1t,DBSYSTEMVALUES_HBASE:()=>B1t,DBSYSTEMVALUES_HIVE:()=>h1t,DBSYSTEMVALUES_HSQLDB:()=>g1t,DBSYSTEMVALUES_INFORMIX:()=>I1t,DBSYSTEMVALUES_INGRES:()=>E1t,DBSYSTEMVALUES_INSTANTDB:()=>x1t,DBSYSTEMVALUES_INTERBASE:()=>O1t,DBSYSTEMVALUES_MARIADB:()=>P1t,DBSYSTEMVALUES_MAXDB:()=>S1t,DBSYSTEMVALUES_MEMCACHED:()=>Q1t,DBSYSTEMVALUES_MONGODB:()=>z1t,DBSYSTEMVALUES_MSSQL:()=>c1t,DBSYSTEMVALUES_MYSQL:()=>u1t,DBSYSTEMVALUES_NEO4J:()=>Z1t,DBSYSTEMVALUES_NETEZZA:()=>N1t,DBSYSTEMVALUES_ORACLE:()=>l1t,DBSYSTEMVALUES_OTHER_SQL:()=>a1t,DBSYSTEMVALUES_PERVASIVE:()=>C1t,DBSYSTEMVALUES_POINTBASE:()=>M1t,DBSYSTEMVALUES_POSTGRESQL:()=>f1t,DBSYSTEMVALUES_PROGRESS:()=>y1t,DBSYSTEMVALUES_REDIS:()=>G1t,DBSYSTEMVALUES_REDSHIFT:()=>p1t,DBSYSTEMVALUES_SQLITE:()=>D1t,DBSYSTEMVALUES_SYBASE:()=>L1t,DBSYSTEMVALUES_TERADATA:()=>U1t,DBSYSTEMVALUES_VERTICA:()=>F1t,DB_SYSTEM_NAME_VALUE_MARIADB:()=>Kqt,DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER:()=>Yqt,DB_SYSTEM_NAME_VALUE_MYSQL:()=>Zqt,DB_SYSTEM_NAME_VALUE_POSTGRESQL:()=>Jqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN0:()=>Qqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN1:()=>$qt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN2:()=>eBt,DOTNET_GC_HEAP_GENERATION_VALUE_LOH:()=>Vyr,DOTNET_GC_HEAP_GENERATION_VALUE_POH:()=>Wyr,DbCassandraConsistencyLevelValues:()=>fUt,DbSystemValues:()=>eUt,ERROR_TYPE_VALUE_OTHER:()=>tBt,EVENT_EXCEPTION:()=>hGt,FAASDOCUMENTOPERATIONVALUES_DELETE:()=>_Ut,FAASDOCUMENTOPERATIONVALUES_EDIT:()=>EUt,FAASDOCUMENTOPERATIONVALUES_INSERT:()=>bUt,FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD:()=>vUt,FAASINVOKEDPROVIDERVALUES_AWS:()=>RUt,FAASINVOKEDPROVIDERVALUES_AZURE:()=>AUt,FAASINVOKEDPROVIDERVALUES_GCP:()=>wUt,FAASTRIGGERVALUES_DATASOURCE:()=>pUt,FAASTRIGGERVALUES_HTTP:()=>hUt,FAASTRIGGERVALUES_OTHER:()=>yUt,FAASTRIGGERVALUES_PUBSUB:()=>mUt,FAASTRIGGERVALUES_TIMER:()=>gUt,FaasDocumentOperationValues:()=>TUt,FaasInvokedProviderValues:()=>kUt,FaasTriggerValues:()=>SUt,HOSTARCHVALUES_AMD64:()=>BHt,HOSTARCHVALUES_ARM32:()=>zHt,HOSTARCHVALUES_ARM64:()=>GHt,HOSTARCHVALUES_IA64:()=>VHt,HOSTARCHVALUES_PPC32:()=>WHt,HOSTARCHVALUES_PPC64:()=>KHt,HOSTARCHVALUES_X86:()=>YHt,HTTPFLAVORVALUES_HTTP_1_0:()=>lFt,HTTPFLAVORVALUES_HTTP_1_1:()=>dFt,HTTPFLAVORVALUES_HTTP_2_0:()=>fFt,HTTPFLAVORVALUES_QUIC:()=>hFt,HTTPFLAVORVALUES_SPDY:()=>pFt,HTTP_REQUEST_METHOD_VALUE_CONNECT:()=>cBt,HTTP_REQUEST_METHOD_VALUE_DELETE:()=>uBt,HTTP_REQUEST_METHOD_VALUE_GET:()=>Kyr,HTTP_REQUEST_METHOD_VALUE_HEAD:()=>lBt,HTTP_REQUEST_METHOD_VALUE_OPTIONS:()=>dBt,HTTP_REQUEST_METHOD_VALUE_OTHER:()=>aBt,HTTP_REQUEST_METHOD_VALUE_PATCH:()=>fBt,HTTP_REQUEST_METHOD_VALUE_POST:()=>pBt,HTTP_REQUEST_METHOD_VALUE_PUT:()=>Yyr,HTTP_REQUEST_METHOD_VALUE_TRACE:()=>hBt,HostArchValues:()=>ZHt,HttpFlavorValues:()=>mFt,JVM_MEMORY_TYPE_VALUE_HEAP:()=>TBt,JVM_MEMORY_TYPE_VALUE_NON_HEAP:()=>vBt,JVM_THREAD_STATE_VALUE_BLOCKED:()=>wBt,JVM_THREAD_STATE_VALUE_NEW:()=>Zyr,JVM_THREAD_STATE_VALUE_RUNNABLE:()=>kBt,JVM_THREAD_STATE_VALUE_TERMINATED:()=>IBt,JVM_THREAD_STATE_VALUE_TIMED_WAITING:()=>xBt,JVM_THREAD_STATE_VALUE_WAITING:()=>OBt,MESSAGETYPEVALUES_RECEIVED:()=>qFt,MESSAGETYPEVALUES_SENT:()=>HFt,MESSAGINGDESTINATIONKINDVALUES_QUEUE:()=>gFt,MESSAGINGDESTINATIONKINDVALUES_TOPIC:()=>yFt,MESSAGINGOPERATIONVALUES_PROCESS:()=>EFt,MESSAGINGOPERATIONVALUES_RECEIVE:()=>bFt,METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS:()=>yzt,METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES:()=>Szt,METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS:()=>bzt,METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS:()=>Tzt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION:()=>_zt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE:()=>Ezt,METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS:()=>vzt,METRIC_DB_CLIENT_OPERATION_DURATION:()=>Rzt,METRIC_DOTNET_ASSEMBLY_COUNT:()=>Azt,METRIC_DOTNET_EXCEPTIONS:()=>wzt,METRIC_DOTNET_GC_COLLECTIONS:()=>kzt,METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED:()=>Izt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE:()=>xzt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE:()=>Ozt,METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE:()=>Pzt,METRIC_DOTNET_GC_PAUSE_TIME:()=>Nzt,METRIC_DOTNET_JIT_COMPILATION_TIME:()=>Czt,METRIC_DOTNET_JIT_COMPILED_IL_SIZE:()=>Mzt,METRIC_DOTNET_JIT_COMPILED_METHODS:()=>Dzt,METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS:()=>Lzt,METRIC_DOTNET_PROCESS_CPU_COUNT:()=>Uzt,METRIC_DOTNET_PROCESS_CPU_TIME:()=>Fzt,METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET:()=>jzt,METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH:()=>Hzt,METRIC_DOTNET_THREAD_POOL_THREAD_COUNT:()=>qzt,METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT:()=>Bzt,METRIC_DOTNET_TIMER_COUNT:()=>zzt,METRIC_HTTP_CLIENT_REQUEST_DURATION:()=>Gzt,METRIC_HTTP_SERVER_REQUEST_DURATION:()=>Vzt,METRIC_JVM_CLASS_COUNT:()=>Wzt,METRIC_JVM_CLASS_LOADED:()=>Kzt,METRIC_JVM_CLASS_UNLOADED:()=>Yzt,METRIC_JVM_CPU_COUNT:()=>Zzt,METRIC_JVM_CPU_RECENT_UTILIZATION:()=>Jzt,METRIC_JVM_CPU_TIME:()=>Xzt,METRIC_JVM_GC_DURATION:()=>Qzt,METRIC_JVM_MEMORY_COMMITTED:()=>$zt,METRIC_JVM_MEMORY_LIMIT:()=>eGt,METRIC_JVM_MEMORY_USED:()=>tGt,METRIC_JVM_MEMORY_USED_AFTER_LAST_GC:()=>nGt,METRIC_JVM_THREAD_COUNT:()=>rGt,METRIC_KESTREL_ACTIVE_CONNECTIONS:()=>iGt,METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES:()=>sGt,METRIC_KESTREL_CONNECTION_DURATION:()=>oGt,METRIC_KESTREL_QUEUED_CONNECTIONS:()=>aGt,METRIC_KESTREL_QUEUED_REQUESTS:()=>cGt,METRIC_KESTREL_REJECTED_CONNECTIONS:()=>uGt,METRIC_KESTREL_TLS_HANDSHAKE_DURATION:()=>lGt,METRIC_KESTREL_UPGRADED_CONNECTIONS:()=>dGt,METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS:()=>fGt,METRIC_SIGNALR_SERVER_CONNECTION_DURATION:()=>pGt,MessageTypeValues:()=>BFt,MessagingDestinationKindValues:()=>SFt,MessagingOperationValues:()=>_Ft,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA:()=>VUt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT:()=>YUt,NETHOSTCONNECTIONSUBTYPEVALUES_EDGE:()=>zUt,NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD:()=>tFt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0:()=>WUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A:()=>KUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B:()=>$Ut,NETHOSTCONNECTIONSUBTYPEVALUES_GPRS:()=>BUt,NETHOSTCONNECTIONSUBTYPEVALUES_GSM:()=>rFt,NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA:()=>ZUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPA:()=>XUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP:()=>nFt,NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA:()=>JUt,NETHOSTCONNECTIONSUBTYPEVALUES_IDEN:()=>QUt,NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN:()=>sFt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE:()=>eFt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA:()=>cFt,NETHOSTCONNECTIONSUBTYPEVALUES_NR:()=>oFt,NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA:()=>aFt,NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA:()=>iFt,NETHOSTCONNECTIONSUBTYPEVALUES_UMTS:()=>GUt,NETHOSTCONNECTIONTYPEVALUES_CELL:()=>FUt,NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE:()=>jUt,NETHOSTCONNECTIONTYPEVALUES_UNKNOWN:()=>HUt,NETHOSTCONNECTIONTYPEVALUES_WIFI:()=>LUt,NETHOSTCONNECTIONTYPEVALUES_WIRED:()=>UUt,NETTRANSPORTVALUES_INPROC:()=>CUt,NETTRANSPORTVALUES_IP:()=>OUt,NETTRANSPORTVALUES_IP_TCP:()=>IUt,NETTRANSPORTVALUES_IP_UDP:()=>xUt,NETTRANSPORTVALUES_OTHER:()=>MUt,NETTRANSPORTVALUES_PIPE:()=>NUt,NETTRANSPORTVALUES_UNIX:()=>PUt,NETWORK_TRANSPORT_VALUE_PIPE:()=>MBt,NETWORK_TRANSPORT_VALUE_QUIC:()=>DBt,NETWORK_TRANSPORT_VALUE_TCP:()=>Jyr,NETWORK_TRANSPORT_VALUE_UDP:()=>Xyr,NETWORK_TRANSPORT_VALUE_UNIX:()=>LBt,NETWORK_TYPE_VALUE_IPV4:()=>FBt,NETWORK_TYPE_VALUE_IPV6:()=>jBt,NetHostConnectionSubtypeValues:()=>uFt,NetHostConnectionTypeValues:()=>qUt,NetTransportValues:()=>DUt,OSTYPEVALUES_AIX:()=>iqt,OSTYPEVALUES_DARWIN:()=>QHt,OSTYPEVALUES_DRAGONFLYBSD:()=>nqt,OSTYPEVALUES_FREEBSD:()=>$Ht,OSTYPEVALUES_HPUX:()=>rqt,OSTYPEVALUES_LINUX:()=>XHt,OSTYPEVALUES_NETBSD:()=>eqt,OSTYPEVALUES_OPENBSD:()=>tqt,OSTYPEVALUES_SOLARIS:()=>sqt,OSTYPEVALUES_WINDOWS:()=>JHt,OSTYPEVALUES_Z_OS:()=>oqt,OTEL_STATUS_CODE_VALUE_ERROR:()=>zBt,OTEL_STATUS_CODE_VALUE_OK:()=>Qyr,OsTypeValues:()=>aqt,RPCGRPCSTATUSCODEVALUES_ABORTED:()=>NFt,RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS:()=>IFt,RPCGRPCSTATUSCODEVALUES_CANCELLED:()=>vFt,RPCGRPCSTATUSCODEVALUES_DATA_LOSS:()=>UFt,RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED:()=>wFt,RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION:()=>PFt,RPCGRPCSTATUSCODEVALUES_INTERNAL:()=>DFt,RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT:()=>AFt,RPCGRPCSTATUSCODEVALUES_NOT_FOUND:()=>kFt,RPCGRPCSTATUSCODEVALUES_OK:()=>TFt,RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE:()=>CFt,RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED:()=>xFt,RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED:()=>OFt,RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED:()=>FFt,RPCGRPCSTATUSCODEVALUES_UNAVAILABLE:()=>LFt,RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED:()=>MFt,RPCGRPCSTATUSCODEVALUES_UNKNOWN:()=>RFt,RpcGrpcStatusCodeValues:()=>jFt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET:()=>SLt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:()=>OLt,SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ:()=>mLt,SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY:()=>dLt,SEMATTRS_AWS_DYNAMODB_COUNT:()=>ILt,SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE:()=>vLt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:()=>_Lt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:()=>PLt,SEMATTRS_AWS_DYNAMODB_INDEX_NAME:()=>bLt,SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS:()=>fLt,SEMATTRS_AWS_DYNAMODB_LIMIT:()=>yLt,SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:()=>TLt,SEMATTRS_AWS_DYNAMODB_PROJECTION:()=>gLt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:()=>pLt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:()=>hLt,SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT:()=>xLt,SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD:()=>ALt,SEMATTRS_AWS_DYNAMODB_SEGMENT:()=>wLt,SEMATTRS_AWS_DYNAMODB_SELECT:()=>ELt,SEMATTRS_AWS_DYNAMODB_TABLE_COUNT:()=>RLt,SEMATTRS_AWS_DYNAMODB_TABLE_NAMES:()=>lLt,SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS:()=>kLt,SEMATTRS_AWS_LAMBDA_INVOKED_ARN:()=>nDt,SEMATTRS_CODE_FILEPATH:()=>eLt,SEMATTRS_CODE_FUNCTION:()=>QDt,SEMATTRS_CODE_LINENO:()=>tLt,SEMATTRS_CODE_NAMESPACE:()=>$Dt,SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL:()=>dDt,SEMATTRS_DB_CASSANDRA_COORDINATOR_DC:()=>gDt,SEMATTRS_DB_CASSANDRA_COORDINATOR_ID:()=>mDt,SEMATTRS_DB_CASSANDRA_IDEMPOTENCE:()=>pDt,SEMATTRS_DB_CASSANDRA_KEYSPACE:()=>uDt,SEMATTRS_DB_CASSANDRA_PAGE_SIZE:()=>lDt,SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:()=>hDt,SEMATTRS_DB_CASSANDRA_TABLE:()=>fDt,SEMATTRS_DB_CONNECTION_STRING:()=>rDt,SEMATTRS_DB_HBASE_NAMESPACE:()=>yDt,SEMATTRS_DB_JDBC_DRIVER_CLASSNAME:()=>sDt,SEMATTRS_DB_MONGODB_COLLECTION:()=>bDt,SEMATTRS_DB_MSSQL_INSTANCE_NAME:()=>cDt,SEMATTRS_DB_NAME:()=>oDt,SEMATTRS_DB_OPERATION:()=>aDt,SEMATTRS_DB_REDIS_DATABASE_INDEX:()=>SDt,SEMATTRS_DB_SQL_TABLE:()=>EDt,SEMATTRS_DB_STATEMENT:()=>a7,SEMATTRS_DB_SYSTEM:()=>o7,SEMATTRS_DB_USER:()=>iDt,SEMATTRS_ENDUSER_ID:()=>KDt,SEMATTRS_ENDUSER_ROLE:()=>YDt,SEMATTRS_ENDUSER_SCOPE:()=>ZDt,SEMATTRS_EXCEPTION_ESCAPED:()=>RDt,SEMATTRS_EXCEPTION_MESSAGE:()=>TDt,SEMATTRS_EXCEPTION_STACKTRACE:()=>vDt,SEMATTRS_EXCEPTION_TYPE:()=>_Dt,SEMATTRS_FAAS_COLDSTART:()=>NDt,SEMATTRS_FAAS_CRON:()=>PDt,SEMATTRS_FAAS_DOCUMENT_COLLECTION:()=>wDt,SEMATTRS_FAAS_DOCUMENT_NAME:()=>xDt,SEMATTRS_FAAS_DOCUMENT_OPERATION:()=>kDt,SEMATTRS_FAAS_DOCUMENT_TIME:()=>IDt,SEMATTRS_FAAS_EXECUTION:()=>ADt,SEMATTRS_FAAS_INVOKED_NAME:()=>CDt,SEMATTRS_FAAS_INVOKED_PROVIDER:()=>MDt,SEMATTRS_FAAS_INVOKED_REGION:()=>DDt,SEMATTRS_FAAS_TIME:()=>ODt,SEMATTRS_FAAS_TRIGGER:()=>c7,SEMATTRS_HTTP_CLIENT_IP:()=>uLt,SEMATTRS_HTTP_FLAVOR:()=>iLt,SEMATTRS_HTTP_HOST:()=>nLt,SEMATTRS_HTTP_METHOD:()=>_O,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH:()=>oLt,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:()=>aLt,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH:()=>p7,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:()=>h7,SEMATTRS_HTTP_ROUTE:()=>m7,SEMATTRS_HTTP_SCHEME:()=>rLt,SEMATTRS_HTTP_SERVER_NAME:()=>cLt,SEMATTRS_HTTP_STATUS_CODE:()=>yE,SEMATTRS_HTTP_TARGET:()=>f7,SEMATTRS_HTTP_URL:()=>gR,SEMATTRS_HTTP_USER_AGENT:()=>sLt,SEMATTRS_MESSAGE_COMPRESSED_SIZE:()=>i1t,SEMATTRS_MESSAGE_ID:()=>r1t,SEMATTRS_MESSAGE_TYPE:()=>n1t,SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE:()=>s1t,SEMATTRS_MESSAGING_CONSUMER_ID:()=>zLt,SEMATTRS_MESSAGING_CONVERSATION_ID:()=>jLt,SEMATTRS_MESSAGING_DESTINATION:()=>NLt,SEMATTRS_MESSAGING_DESTINATION_KIND:()=>CLt,SEMATTRS_MESSAGING_KAFKA_CLIENT_ID:()=>KLt,SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP:()=>WLt,SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY:()=>VLt,SEMATTRS_MESSAGING_KAFKA_PARTITION:()=>YLt,SEMATTRS_MESSAGING_KAFKA_TOMBSTONE:()=>ZLt,SEMATTRS_MESSAGING_MESSAGE_ID:()=>FLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:()=>qLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:()=>HLt,SEMATTRS_MESSAGING_OPERATION:()=>BLt,SEMATTRS_MESSAGING_PROTOCOL:()=>DLt,SEMATTRS_MESSAGING_PROTOCOL_VERSION:()=>LLt,SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY:()=>GLt,SEMATTRS_MESSAGING_SYSTEM:()=>g7,SEMATTRS_MESSAGING_TEMP_DESTINATION:()=>MLt,SEMATTRS_MESSAGING_URL:()=>ULt,SEMATTRS_NET_HOST_CARRIER_ICC:()=>VDt,SEMATTRS_NET_HOST_CARRIER_MCC:()=>zDt,SEMATTRS_NET_HOST_CARRIER_MNC:()=>GDt,SEMATTRS_NET_HOST_CARRIER_NAME:()=>BDt,SEMATTRS_NET_HOST_CONNECTION_SUBTYPE:()=>qDt,SEMATTRS_NET_HOST_CONNECTION_TYPE:()=>HDt,SEMATTRS_NET_HOST_IP:()=>l7,SEMATTRS_NET_HOST_NAME:()=>jDt,SEMATTRS_NET_HOST_PORT:()=>d7,SEMATTRS_NET_PEER_IP:()=>u7,SEMATTRS_NET_PEER_NAME:()=>FDt,SEMATTRS_NET_PEER_PORT:()=>UDt,SEMATTRS_NET_TRANSPORT:()=>LDt,SEMATTRS_PEER_SERVICE:()=>WDt,SEMATTRS_RPC_GRPC_STATUS_CODE:()=>S7,SEMATTRS_RPC_JSONRPC_ERROR_CODE:()=>e1t,SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE:()=>t1t,SEMATTRS_RPC_JSONRPC_REQUEST_ID:()=>$Lt,SEMATTRS_RPC_JSONRPC_VERSION:()=>QLt,SEMATTRS_RPC_METHOD:()=>XLt,SEMATTRS_RPC_SERVICE:()=>y7,SEMATTRS_RPC_SYSTEM:()=>JLt,SEMATTRS_THREAD_ID:()=>JDt,SEMATTRS_THREAD_NAME:()=>XDt,SEMRESATTRS_AWS_ECS_CLUSTER_ARN:()=>ZFt,SEMRESATTRS_AWS_ECS_CONTAINER_ARN:()=>YFt,SEMRESATTRS_AWS_ECS_LAUNCHTYPE:()=>JFt,SEMRESATTRS_AWS_ECS_TASK_ARN:()=>XFt,SEMRESATTRS_AWS_ECS_TASK_FAMILY:()=>QFt,SEMRESATTRS_AWS_ECS_TASK_REVISION:()=>$Ft,SEMRESATTRS_AWS_EKS_CLUSTER_ARN:()=>ejt,SEMRESATTRS_AWS_LOG_GROUP_ARNS:()=>njt,SEMRESATTRS_AWS_LOG_GROUP_NAMES:()=>tjt,SEMRESATTRS_AWS_LOG_STREAM_ARNS:()=>ijt,SEMRESATTRS_AWS_LOG_STREAM_NAMES:()=>rjt,SEMRESATTRS_CLOUD_ACCOUNT_ID:()=>GFt,SEMRESATTRS_CLOUD_AVAILABILITY_ZONE:()=>WFt,SEMRESATTRS_CLOUD_PLATFORM:()=>KFt,SEMRESATTRS_CLOUD_PROVIDER:()=>zFt,SEMRESATTRS_CLOUD_REGION:()=>VFt,SEMRESATTRS_CONTAINER_ID:()=>ojt,SEMRESATTRS_CONTAINER_IMAGE_NAME:()=>cjt,SEMRESATTRS_CONTAINER_IMAGE_TAG:()=>ujt,SEMRESATTRS_CONTAINER_NAME:()=>sjt,SEMRESATTRS_CONTAINER_RUNTIME:()=>ajt,SEMRESATTRS_DEPLOYMENT_ENVIRONMENT:()=>ljt,SEMRESATTRS_DEVICE_ID:()=>djt,SEMRESATTRS_DEVICE_MODEL_IDENTIFIER:()=>fjt,SEMRESATTRS_DEVICE_MODEL_NAME:()=>pjt,SEMRESATTRS_FAAS_ID:()=>mjt,SEMRESATTRS_FAAS_INSTANCE:()=>yjt,SEMRESATTRS_FAAS_MAX_MEMORY:()=>Sjt,SEMRESATTRS_FAAS_NAME:()=>hjt,SEMRESATTRS_FAAS_VERSION:()=>gjt,SEMRESATTRS_HOST_ARCH:()=>Tjt,SEMRESATTRS_HOST_ID:()=>bjt,SEMRESATTRS_HOST_IMAGE_ID:()=>Rjt,SEMRESATTRS_HOST_IMAGE_NAME:()=>vjt,SEMRESATTRS_HOST_IMAGE_VERSION:()=>Ajt,SEMRESATTRS_HOST_NAME:()=>Ejt,SEMRESATTRS_HOST_TYPE:()=>_jt,SEMRESATTRS_K8S_CLUSTER_NAME:()=>wjt,SEMRESATTRS_K8S_CONTAINER_NAME:()=>Njt,SEMRESATTRS_K8S_CRONJOB_NAME:()=>Gjt,SEMRESATTRS_K8S_CRONJOB_UID:()=>zjt,SEMRESATTRS_K8S_DAEMONSET_NAME:()=>Hjt,SEMRESATTRS_K8S_DAEMONSET_UID:()=>jjt,SEMRESATTRS_K8S_DEPLOYMENT_NAME:()=>Ljt,SEMRESATTRS_K8S_DEPLOYMENT_UID:()=>Djt,SEMRESATTRS_K8S_JOB_NAME:()=>Bjt,SEMRESATTRS_K8S_JOB_UID:()=>qjt,SEMRESATTRS_K8S_NAMESPACE_NAME:()=>xjt,SEMRESATTRS_K8S_NODE_NAME:()=>kjt,SEMRESATTRS_K8S_NODE_UID:()=>Ijt,SEMRESATTRS_K8S_POD_NAME:()=>Pjt,SEMRESATTRS_K8S_POD_UID:()=>Ojt,SEMRESATTRS_K8S_REPLICASET_NAME:()=>Mjt,SEMRESATTRS_K8S_REPLICASET_UID:()=>Cjt,SEMRESATTRS_K8S_STATEFULSET_NAME:()=>Fjt,SEMRESATTRS_K8S_STATEFULSET_UID:()=>Ujt,SEMRESATTRS_OS_DESCRIPTION:()=>Wjt,SEMRESATTRS_OS_NAME:()=>Kjt,SEMRESATTRS_OS_TYPE:()=>Vjt,SEMRESATTRS_OS_VERSION:()=>Yjt,SEMRESATTRS_PROCESS_COMMAND:()=>Qjt,SEMRESATTRS_PROCESS_COMMAND_ARGS:()=>eHt,SEMRESATTRS_PROCESS_COMMAND_LINE:()=>$jt,SEMRESATTRS_PROCESS_EXECUTABLE_NAME:()=>Jjt,SEMRESATTRS_PROCESS_EXECUTABLE_PATH:()=>Xjt,SEMRESATTRS_PROCESS_OWNER:()=>tHt,SEMRESATTRS_PROCESS_PID:()=>Zjt,SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION:()=>iHt,SEMRESATTRS_PROCESS_RUNTIME_NAME:()=>nHt,SEMRESATTRS_PROCESS_RUNTIME_VERSION:()=>rHt,SEMRESATTRS_SERVICE_INSTANCE_ID:()=>oHt,SEMRESATTRS_SERVICE_NAME:()=>sHt,SEMRESATTRS_SERVICE_NAMESPACE:()=>b7,SEMRESATTRS_SERVICE_VERSION:()=>aHt,SEMRESATTRS_TELEMETRY_AUTO_VERSION:()=>dHt,SEMRESATTRS_TELEMETRY_SDK_LANGUAGE:()=>uHt,SEMRESATTRS_TELEMETRY_SDK_NAME:()=>cHt,SEMRESATTRS_TELEMETRY_SDK_VERSION:()=>lHt,SEMRESATTRS_WEBENGINE_DESCRIPTION:()=>hHt,SEMRESATTRS_WEBENGINE_NAME:()=>fHt,SEMRESATTRS_WEBENGINE_VERSION:()=>pHt,SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN:()=>YBt,SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE:()=>ZBt,SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT:()=>JBt,SIGNALR_TRANSPORT_VALUE_LONG_POLLING:()=>QBt,SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS:()=>$Bt,SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS:()=>ezt,SemanticAttributes:()=>o1t,SemanticResourceAttributes:()=>mHt,TELEMETRYSDKLANGUAGEVALUES_CPP:()=>cqt,TELEMETRYSDKLANGUAGEVALUES_DOTNET:()=>uqt,TELEMETRYSDKLANGUAGEVALUES_ERLANG:()=>lqt,TELEMETRYSDKLANGUAGEVALUES_GO:()=>dqt,TELEMETRYSDKLANGUAGEVALUES_JAVA:()=>fqt,TELEMETRYSDKLANGUAGEVALUES_NODEJS:()=>pqt,TELEMETRYSDKLANGUAGEVALUES_PHP:()=>hqt,TELEMETRYSDKLANGUAGEVALUES_PYTHON:()=>mqt,TELEMETRYSDKLANGUAGEVALUES_RUBY:()=>gqt,TELEMETRYSDKLANGUAGEVALUES_WEBJS:()=>yqt,TELEMETRY_SDK_LANGUAGE_VALUE_CPP:()=>$yr,TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET:()=>nzt,TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG:()=>rzt,TELEMETRY_SDK_LANGUAGE_VALUE_GO:()=>eSr,TELEMETRY_SDK_LANGUAGE_VALUE_JAVA:()=>izt,TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS:()=>szt,TELEMETRY_SDK_LANGUAGE_VALUE_PHP:()=>tSr,TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON:()=>ozt,TELEMETRY_SDK_LANGUAGE_VALUE_RUBY:()=>azt,TELEMETRY_SDK_LANGUAGE_VALUE_RUST:()=>czt,TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT:()=>uzt,TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS:()=>lzt,TelemetrySdkLanguageValues:()=>Sqt});var Nn=v(()=>{j0e();dPe();fPe();pPe();hPe()});var mPe=w(MF=>{"use strict";Object.defineProperty(MF,"__esModule",{value:!0});MF.ATTR_PROCESS_RUNTIME_NAME=void 0;MF.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var gPe=w(LF=>{"use strict";Object.defineProperty(LF,"__esModule",{value:!0});LF.SDK_INFO=void 0;var mGt=YRe(),DF=(Nn(),ke(Mr)),gGt=mPe();LF.SDK_INFO={[DF.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[gGt.ATTR_PROCESS_RUNTIME_NAME]:"node",[DF.ATTR_TELEMETRY_SDK_LANGUAGE]:DF.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[DF.ATTR_TELEMETRY_SDK_VERSION]:mGt.VERSION}});var yPe=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 UF=WRe();Object.defineProperty(za,"getStringFromEnv",{enumerable:!0,get:function(){return UF.getStringFromEnv}});Object.defineProperty(za,"getBooleanFromEnv",{enumerable:!0,get:function(){return UF.getBooleanFromEnv}});Object.defineProperty(za,"getNumberFromEnv",{enumerable:!0,get:function(){return UF.getNumberFromEnv}});Object.defineProperty(za,"getStringListFromEnv",{enumerable:!0,get:function(){return UF.getStringListFromEnv}});var yGt=KRe();Object.defineProperty(za,"_globalThis",{enumerable:!0,get:function(){return yGt._globalThis}});var SGt=gPe();Object.defineProperty(za,"SDK_INFO",{enumerable:!0,get:function(){return SGt.SDK_INFO}});za.otperformance=performance});var M7=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 EE=yPe();Object.defineProperty(Ga,"SDK_INFO",{enumerable:!0,get:function(){return EE.SDK_INFO}});Object.defineProperty(Ga,"_globalThis",{enumerable:!0,get:function(){return EE._globalThis}});Object.defineProperty(Ga,"otperformance",{enumerable:!0,get:function(){return EE.otperformance}});Object.defineProperty(Ga,"getBooleanFromEnv",{enumerable:!0,get:function(){return EE.getBooleanFromEnv}});Object.defineProperty(Ga,"getStringFromEnv",{enumerable:!0,get:function(){return EE.getStringFromEnv}});Object.defineProperty(Ga,"getNumberFromEnv",{enumerable:!0,get:function(){return EE.getNumberFromEnv}});Object.defineProperty(Ga,"getStringListFromEnv",{enumerable:!0,get:function(){return EE.getStringListFromEnv}})});var _Pe=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 FF=M7(),SPe=9,bGt=6,EGt=Math.pow(10,bGt),jF=Math.pow(10,SPe);function TO(e){let t=e/1e3,n=Math.trunc(t),r=Math.round(e%1e3*EGt);return[n,r]}ei.millisToHrTime=TO;function _Gt(){return FF.otperformance.timeOrigin}ei.getTimeOrigin=_Gt;function bPe(e){let t=TO(FF.otperformance.timeOrigin),n=TO(typeof e=="number"?e:FF.otperformance.now());return EPe(t,n)}ei.hrTime=bPe;function TGt(e){if(D7(e))return e;if(typeof e=="number")return e=jF&&(n[1]-=jF,n[0]+=1),n}ei.addHrTimes=EPe});var TPe=w(HF=>{"use strict";Object.defineProperty(HF,"__esModule",{value:!0});HF.unrefTimer=void 0;function xGt(e){typeof e!="number"&&e.unref()}HF.unrefTimer=xGt});var vPe=w(vO=>{"use strict";Object.defineProperty(vO,"__esModule",{value:!0});vO.ExportResultCode=void 0;var OGt;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(OGt=vO.ExportResultCode||(vO.ExportResultCode={}))});var APe=w(qF=>{"use strict";Object.defineProperty(qF,"__esModule",{value:!0});qF.CompositePropagator=void 0;var RPe=(Me(),ke(Ze)),L7=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){RPe.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){RPe.diag.warn(`Failed to extract with ${s.constructor.name}. Err: ${o.message}`)}return i},t)}fields(){return this._fields.slice()}};qF.CompositePropagator=L7});var wPe=w(SR=>{"use strict";Object.defineProperty(SR,"__esModule",{value:!0});SR.validateValue=SR.validateKey=void 0;var U7="[_0-9a-z-*/]",PGt=`[a-z]${U7}{0,255}`,NGt=`[a-z0-9]${U7}{0,240}@[a-z]${U7}{0,13}`,CGt=new RegExp(`^(?:${PGt}|${NGt})$`),MGt=/^[ -~]{0,255}[!-~]$/,DGt=/,|=/;function LGt(e){return CGt.test(e)}SR.validateKey=LGt;function UGt(e){return MGt.test(e)&&!DGt.test(e)}SR.validateValue=UGt});var j7=w(BF=>{"use strict";Object.defineProperty(BF,"__esModule",{value:!0});BF.TraceState=void 0;var kPe=wPe(),IPe=32,FGt=512,xPe=",",OPe="=",F7=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+OPe+this.get(n)),t),[]).join(xPe)}_parse(t){t.length>FGt||(this._internalState=t.split(xPe).reverse().reduce((n,r)=>{let i=r.trim(),s=i.indexOf(OPe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);(0,kPe.validateKey)(o)&&(0,kPe.validateValue)(a)&&n.set(o,a)}return n},new Map),this._internalState.size>IPe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,IPe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};BF.TraceState=F7});var NPe=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 zF=(Me(),ke(Ze)),jGt=EO(),HGt=j7();Va.TRACE_PARENT_HEADER="traceparent";Va.TRACE_STATE_HEADER="tracestate";var qGt="00",BGt="(?!ff)[\\da-f]{2}",zGt="(?![0]{32})[\\da-f]{32}",GGt="(?![0]{16})[\\da-f]{16}",VGt="[\\da-f]{2}",WGt=new RegExp(`^\\s?(${BGt})-(${zGt})-(${GGt})-(${VGt})(-.*)?\\s?$`);function PPe(e){let t=WGt.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}Va.parseTraceParent=PPe;var H7=class{inject(t,n,r){let i=zF.trace.getSpanContext(t);if(!i||(0,jGt.isTracingSuppressed)(t)||!(0,zF.isSpanContextValid)(i))return;let s=`${qGt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||zF.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=PPe(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 HGt.TraceState(typeof c=="string"?c:void 0)}return zF.trace.setSpanContext(t,o)}fields(){return[Va.TRACE_PARENT_HEADER,Va.TRACE_STATE_HEADER]}};Va.W3CTraceContextPropagator=H7});var CPe=w($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});$d.getRPCMetadata=$d.deleteRPCMetadata=$d.setRPCMetadata=$d.RPCType=void 0;var KGt=(Me(),ke(Ze)),q7=(0,KGt.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),YGt;(function(e){e.HTTP="http"})(YGt=$d.RPCType||($d.RPCType={}));function ZGt(e,t){return e.setValue(q7,t)}$d.setRPCMetadata=ZGt;function JGt(e){return e.deleteValue(q7)}$d.deleteRPCMetadata=JGt;function XGt(e){return e.getValue(q7)}$d.getRPCMetadata=XGt});var FPe=w(GF=>{"use strict";Object.defineProperty(GF,"__esModule",{value:!0});GF.isPlainObject=void 0;var QGt="[object Object]",$Gt="[object Null]",e2t="[object Undefined]",t2t=Function.prototype,MPe=t2t.toString,n2t=MPe.call(Object),r2t=Object.getPrototypeOf,DPe=Object.prototype,LPe=DPe.hasOwnProperty,_E=Symbol?Symbol.toStringTag:void 0,UPe=DPe.toString;function i2t(e){if(!s2t(e)||o2t(e)!==QGt)return!1;let t=r2t(e);if(t===null)return!0;let n=LPe.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&MPe.call(n)===n2t}GF.isPlainObject=i2t;function s2t(e){return e!=null&&typeof e=="object"}function o2t(e){return e==null?e===void 0?e2t:$Gt:_E&&_E in Object(e)?a2t(e):c2t(e)}function a2t(e){let t=LPe.call(e,_E),n=e[_E],r=!1;try{e[_E]=void 0,r=!0}catch{}let i=UPe.call(e);return r&&(t?e[_E]=n:delete e[_E]),i}function c2t(e){return UPe.call(e)}});var zPe=w(KF=>{"use strict";Object.defineProperty(KF,"__esModule",{value:!0});KF.merge=void 0;var jPe=FPe(),u2t=20;function l2t(...e){let t=e.shift(),n=new WeakMap;for(;e.length>0;)t=qPe(t,e.shift(),0,n);return t}KF.merge=l2t;function B7(e){return WF(e)?e.slice():e}function qPe(e,t,n=0,r){let i;if(!(n>u2t)){if(n++,VF(e)||VF(t)||BPe(t))i=B7(t);else if(WF(e)){if(i=e.slice(),WF(t))for(let s=0,o=t.length;s"u"?delete i[c]:i[c]=u;else{let l=i[c],d=u;if(HPe(e,c,r)||HPe(t,c,r))delete i[c];else{if(RO(l)&&RO(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]=qPe(i[c],u,n,r)}}}}else i=t;return i}}function HPe(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 d2t(e,t){return!(!(0,jPe.isPlainObject)(e)||!(0,jPe.isPlainObject)(t))}});var GPe=w(bR=>{"use strict";Object.defineProperty(bR,"__esModule",{value:!0});bR.callWithTimeout=bR.TimeoutError=void 0;var YF=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};bR.TimeoutError=YF;function f2t(e,t){let n,r=new Promise(function(s,o){n=setTimeout(function(){o(new YF("Operation timed out."))},t)});return Promise.race([e,r]).then(i=>(clearTimeout(n),i),i=>{throw clearTimeout(n),i})}bR.callWithTimeout=f2t});var WPe=w(ER=>{"use strict";Object.defineProperty(ER,"__esModule",{value:!0});ER.isUrlIgnored=ER.urlMatches=void 0;function VPe(e,t){return typeof t=="string"?e===t:!!e.match(t)}ER.urlMatches=VPe;function p2t(e,t){if(!t)return!1;for(let n of t)if(VPe(e,n))return!0;return!1}ER.isUrlIgnored=p2t});var KPe=w(ZF=>{"use strict";Object.defineProperty(ZF,"__esModule",{value:!0});ZF.Deferred=void 0;var z7=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)}};ZF.Deferred=z7});var YPe=w(JF=>{"use strict";Object.defineProperty(JF,"__esModule",{value:!0});JF.BindOnceFuture=void 0;var h2t=KPe(),G7=class{_isCalled=!1;_deferred=new h2t.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}};JF.BindOnceFuture=G7});var JPe=w(XF=>{"use strict";Object.defineProperty(XF,"__esModule",{value:!0});XF.diagLogLevelFromString=void 0;var fm=(Me(),ke(Ze)),ZPe={ALL:fm.DiagLogLevel.ALL,VERBOSE:fm.DiagLogLevel.VERBOSE,DEBUG:fm.DiagLogLevel.DEBUG,INFO:fm.DiagLogLevel.INFO,WARN:fm.DiagLogLevel.WARN,ERROR:fm.DiagLogLevel.ERROR,NONE:fm.DiagLogLevel.NONE};function m2t(e){if(e==null)return;let t=ZPe[e.toUpperCase()];return t??(fm.diag.warn(`Unknown log level "${e}", expected one of ${Object.keys(ZPe)}, using default`),fm.DiagLogLevel.INFO)}XF.diagLogLevelFromString=m2t});var QPe=w(QF=>{"use strict";Object.defineProperty(QF,"__esModule",{value:!0});QF._export=void 0;var XPe=(Me(),ke(Ze)),g2t=EO();function y2t(e,t){return new Promise(n=>{XPe.context.with((0,g2t.suppressTracing)(XPe.context.active()),()=>{e.export(t,n)})})}QF._export=y2t});var pr=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 S2t=MRe();Object.defineProperty(we,"W3CBaggagePropagator",{enumerable:!0,get:function(){return S2t.W3CBaggagePropagator}});var b2t=DRe();Object.defineProperty(we,"AnchoredClock",{enumerable:!0,get:function(){return b2t.AnchoredClock}});var $Pe=HRe();Object.defineProperty(we,"isAttributeValue",{enumerable:!0,get:function(){return $Pe.isAttributeValue}});Object.defineProperty(we,"sanitizeAttributes",{enumerable:!0,get:function(){return $Pe.sanitizeAttributes}});var eNe=BRe();Object.defineProperty(we,"globalErrorHandler",{enumerable:!0,get:function(){return eNe.globalErrorHandler}});Object.defineProperty(we,"setGlobalErrorHandler",{enumerable:!0,get:function(){return eNe.setGlobalErrorHandler}});var E2t=i7();Object.defineProperty(we,"loggingErrorHandler",{enumerable:!0,get:function(){return E2t.loggingErrorHandler}});var ql=_Pe();Object.defineProperty(we,"addHrTimes",{enumerable:!0,get:function(){return ql.addHrTimes}});Object.defineProperty(we,"getTimeOrigin",{enumerable:!0,get:function(){return ql.getTimeOrigin}});Object.defineProperty(we,"hrTime",{enumerable:!0,get:function(){return ql.hrTime}});Object.defineProperty(we,"hrTimeDuration",{enumerable:!0,get:function(){return ql.hrTimeDuration}});Object.defineProperty(we,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return ql.hrTimeToMicroseconds}});Object.defineProperty(we,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return ql.hrTimeToMilliseconds}});Object.defineProperty(we,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return ql.hrTimeToNanoseconds}});Object.defineProperty(we,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return ql.hrTimeToTimeStamp}});Object.defineProperty(we,"isTimeInput",{enumerable:!0,get:function(){return ql.isTimeInput}});Object.defineProperty(we,"isTimeInputHrTime",{enumerable:!0,get:function(){return ql.isTimeInputHrTime}});Object.defineProperty(we,"millisToHrTime",{enumerable:!0,get:function(){return ql.millisToHrTime}});Object.defineProperty(we,"timeInputToHrTime",{enumerable:!0,get:function(){return ql.timeInputToHrTime}});var _2t=TPe();Object.defineProperty(we,"unrefTimer",{enumerable:!0,get:function(){return _2t.unrefTimer}});var T2t=vPe();Object.defineProperty(we,"ExportResultCode",{enumerable:!0,get:function(){return T2t.ExportResultCode}});var v2t=$8();Object.defineProperty(we,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return v2t.parseKeyPairsIntoRecord}});var TE=M7();Object.defineProperty(we,"SDK_INFO",{enumerable:!0,get:function(){return TE.SDK_INFO}});Object.defineProperty(we,"_globalThis",{enumerable:!0,get:function(){return TE._globalThis}});Object.defineProperty(we,"getStringFromEnv",{enumerable:!0,get:function(){return TE.getStringFromEnv}});Object.defineProperty(we,"getBooleanFromEnv",{enumerable:!0,get:function(){return TE.getBooleanFromEnv}});Object.defineProperty(we,"getNumberFromEnv",{enumerable:!0,get:function(){return TE.getNumberFromEnv}});Object.defineProperty(we,"getStringListFromEnv",{enumerable:!0,get:function(){return TE.getStringListFromEnv}});Object.defineProperty(we,"otperformance",{enumerable:!0,get:function(){return TE.otperformance}});var R2t=APe();Object.defineProperty(we,"CompositePropagator",{enumerable:!0,get:function(){return R2t.CompositePropagator}});var $F=NPe();Object.defineProperty(we,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return $F.TRACE_PARENT_HEADER}});Object.defineProperty(we,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return $F.TRACE_STATE_HEADER}});Object.defineProperty(we,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return $F.W3CTraceContextPropagator}});Object.defineProperty(we,"parseTraceParent",{enumerable:!0,get:function(){return $F.parseTraceParent}});var ej=CPe();Object.defineProperty(we,"RPCType",{enumerable:!0,get:function(){return ej.RPCType}});Object.defineProperty(we,"deleteRPCMetadata",{enumerable:!0,get:function(){return ej.deleteRPCMetadata}});Object.defineProperty(we,"getRPCMetadata",{enumerable:!0,get:function(){return ej.getRPCMetadata}});Object.defineProperty(we,"setRPCMetadata",{enumerable:!0,get:function(){return ej.setRPCMetadata}});var V7=EO();Object.defineProperty(we,"isTracingSuppressed",{enumerable:!0,get:function(){return V7.isTracingSuppressed}});Object.defineProperty(we,"suppressTracing",{enumerable:!0,get:function(){return V7.suppressTracing}});Object.defineProperty(we,"unsuppressTracing",{enumerable:!0,get:function(){return V7.unsuppressTracing}});var A2t=j7();Object.defineProperty(we,"TraceState",{enumerable:!0,get:function(){return A2t.TraceState}});var w2t=zPe();Object.defineProperty(we,"merge",{enumerable:!0,get:function(){return w2t.merge}});var tNe=GPe();Object.defineProperty(we,"TimeoutError",{enumerable:!0,get:function(){return tNe.TimeoutError}});Object.defineProperty(we,"callWithTimeout",{enumerable:!0,get:function(){return tNe.callWithTimeout}});var nNe=WPe();Object.defineProperty(we,"isUrlIgnored",{enumerable:!0,get:function(){return nNe.isUrlIgnored}});Object.defineProperty(we,"urlMatches",{enumerable:!0,get:function(){return nNe.urlMatches}});var k2t=YPe();Object.defineProperty(we,"BindOnceFuture",{enumerable:!0,get:function(){return k2t.BindOnceFuture}});var I2t=JPe();Object.defineProperty(we,"diagLogLevelFromString",{enumerable:!0,get:function(){return I2t.diagLogLevelFromString}});var x2t=QPe();we.internal={_export:x2t._export}});var rNe=w(tj=>{"use strict";Object.defineProperty(tj,"__esModule",{value:!0});tj.VERSION=void 0;tj.VERSION="0.214.0"});var iNe=w(AO=>{"use strict";Object.defineProperty(AO,"__esModule",{value:!0});AO.SeverityNumber=void 0;var O2t;(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"})(O2t=AO.SeverityNumber||(AO.SeverityNumber={}))});var rj=w(_R=>{"use strict";Object.defineProperty(_R,"__esModule",{value:!0});_R.NOOP_LOGGER=_R.NoopLogger=void 0;var nj=class{emit(t){}};_R.NoopLogger=nj;_R.NOOP_LOGGER=new nj});var sNe=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 P2t(e,t,n){return r=>r===e?t:n}Pp.makeGetter=P2t;Pp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var W7=w(TR=>{"use strict";Object.defineProperty(TR,"__esModule",{value:!0});TR.NOOP_LOGGER_PROVIDER=TR.NoopLoggerProvider=void 0;var N2t=rj(),ij=class{getLogger(t,n,r){return new N2t.NoopLogger}};TR.NoopLoggerProvider=ij;TR.NOOP_LOGGER_PROVIDER=new ij});var oNe=w(sj=>{"use strict";Object.defineProperty(sj,"__esModule",{value:!0});sj.ProxyLogger=void 0;var C2t=rj(),K7=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):C2t.NOOP_LOGGER}};sj.ProxyLogger=K7});var aNe=w(oj=>{"use strict";Object.defineProperty(oj,"__esModule",{value:!0});oj.ProxyLoggerProvider=void 0;var M2t=W7(),D2t=oNe(),Y7=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new D2t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:M2t.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)}};oj.ProxyLoggerProvider=Y7});var uNe=w(aj=>{"use strict";Object.defineProperty(aj,"__esModule",{value:!0});aj.LogsAPI=void 0;var Bl=sNe(),L2t=W7(),cNe=aNe(),Z7=class e{constructor(){this._proxyLoggerProvider=new cNe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return Bl._global[Bl.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(Bl._global[Bl.GLOBAL_LOGS_API_KEY]=(0,Bl.makeGetter)(Bl.API_BACKWARDS_COMPATIBILITY_VERSION,t,L2t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=Bl._global[Bl.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(Bl._global,Bl.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete Bl._global[Bl.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new cNe.ProxyLoggerProvider}};aj.LogsAPI=Z7});var J7=w(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});Np.logs=Np.NoopLogger=Np.NOOP_LOGGER=Np.SeverityNumber=void 0;var U2t=iNe();Object.defineProperty(Np,"SeverityNumber",{enumerable:!0,get:function(){return U2t.SeverityNumber}});var lNe=rj();Object.defineProperty(Np,"NOOP_LOGGER",{enumerable:!0,get:function(){return lNe.NOOP_LOGGER}});Object.defineProperty(Np,"NoopLogger",{enumerable:!0,get:function(){return lNe.NoopLogger}});var F2t=uNe();Np.logs=F2t.LogsAPI.getInstance()});var dNe=w(vR=>{"use strict";Object.defineProperty(vR,"__esModule",{value:!0});vR.disableInstrumentations=vR.enableInstrumentations=void 0;function j2t(e,t,n,r){for(let i=0,s=e.length;it.disable())}vR.disableInstrumentations=H2t});var hNe=w(cj=>{"use strict";Object.defineProperty(cj,"__esModule",{value:!0});cj.registerInstrumentations=void 0;var fNe=(Me(),ke(Ze)),q2t=J7(),pNe=dNe();function B2t(e){let t=e.tracerProvider||fNe.trace.getTracerProvider(),n=e.meterProvider||fNe.metrics.getMeterProvider(),r=e.loggerProvider||q2t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,pNe.enableInstrumentations)(i,t,n,r),()=>{(0,pNe.disableInstrumentations)(i)}}cj.registerInstrumentations=B2t});var vNe=w(uj=>{"use strict";Object.defineProperty(uj,"__esModule",{value:!0});uj.satisfies=void 0;var eJ=(Me(),ke(Ze)),bNe=/^(?: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-]+)*))?$/,z2t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,G2t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function V2t(e,t,n){if(!W2t(e))return eJ.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=J2t(e);if(!r)return!1;let i=[],s=ENe(r,t,i,n);return s&&!n?.includePrerelease?Y2t(r,i):s}uj.satisfies=V2t;function W2t(e){return typeof e=="string"&&bNe.test(e)}function ENe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(X7(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=yVt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!X7(e,s,n,r))return!1;return!0}return X7(e,t,n,r)}function X7(e,t,n,r){if(t=Z2t(t,r),t.includes(" "))return ENe(e,t,n,r);{let i=X2t(t);return n.push(i),K2t(e,i)}}function K2t(e,t){if(t.invalid)return!1;if(!t.version||$7(t.version))return!0;let n=gNe(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=gNe(r,i)}return G2t[t.op]?.includes(n)}function Y2t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function Z2t(e,t){return e=e.trim(),e=mVt(e,t),e=hVt(e),e=gVt(e,t),e=e.trim(),e}function kc(e){return!e||e.toLowerCase()==="x"||e==="*"}function J2t(e){let t=e.match(bNe);if(!t){eJ.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 X2t(e){if(!e)return{};let t=e.match(z2t);if(!t)return eJ.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 $7(e){return e==="*"||e==="x"||e==="X"}function mNe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function Q2t(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 $2t(e,t){if($7(e)||$7(t))return 0;let[n,r]=Q2t(mNe(e),mNe(t));return n>r?1:n)?=?)",yNe=`(?:${TNe}|${eVt})`,nVt=`(?:-(${yNe}(?:\\.${yNe})*))`,SNe=`${_Ne}+`,rVt=`(?:\\+(${SNe}(?:\\.${SNe})*))`,Q7=`${TNe}|x|X|\\*`,wO=`[v=\\s]*(${Q7})(?:\\.(${Q7})(?:\\.(${Q7})(?:${nVt})?${rVt}?)?)?`,iVt=`^${tVt}\\s*${wO}$`,sVt=new RegExp(iVt),oVt=`^\\s*(${wO})\\s+-\\s+(${wO})\\s*$`,aVt=new RegExp(oVt),cVt="(?:~>?)",uVt=`^${cVt}${wO}$`,lVt=new RegExp(uVt),dVt="(?:\\^)",fVt=`^${dVt}${wO}$`,pVt=new RegExp(fVt);function hVt(e){let t=lVt;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 mVt(e,t){let n=pVt,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 gVt(e,t){let n=sVt;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 yVt(e,t){let n=aVt;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 tJ=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 kO(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 SVt=(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 kO(i,"__original",r),kO(i,"__unwrap",()=>{e[t]===i&&kO(e,t,r)}),kO(i,"__wrapped",!0),kO(e,t,i),i};ia.wrap=SVt;var bVt=(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=bVt;var EVt=(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=EVt;var _Vt=(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=_Vt;function IO(e){e&&e.logger&&(typeof e.logger!="function"?Ic("new logger isn't a function, not replacing"):Ic=e.logger)}ia.default=IO;IO.wrap=ia.wrap;IO.massWrap=ia.massWrap;IO.unwrap=ia.unwrap;IO.massUnwrap=ia.massUnwrap});var RNe=w(dj=>{"use strict";Object.defineProperty(dj,"__esModule",{value:!0});dj.InstrumentationAbstract=void 0;var nJ=(Me(),ke(Ze)),TVt=J7(),lj=tJ(),rJ=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=nJ.diag.createComponentLogger({namespace:t}),this._tracer=nJ.trace.getTracer(t,n),this._meter=nJ.metrics.getMeter(t,n),this._logger=TVt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=lj.wrap;_unwrap=lj.unwrap;_massWrap=lj.massWrap;_massUnwrap=lj.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)}}};dj.InstrumentationAbstract=rJ});var wNe=w((VSr,ANe)=>{var RR=1e3,AR=RR*60,wR=AR*60,vE=wR*24,vVt=vE*7,RVt=vE*365.25;ANe.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return AVt(e);if(n==="number"&&isFinite(e))return t.long?kVt(e):wVt(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function AVt(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*RVt;case"weeks":case"week":case"w":return n*vVt;case"days":case"day":case"d":return n*vE;case"hours":case"hour":case"hrs":case"hr":case"h":return n*wR;case"minutes":case"minute":case"mins":case"min":case"m":return n*AR;case"seconds":case"second":case"secs":case"sec":case"s":return n*RR;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function wVt(e){var t=Math.abs(e);return t>=vE?Math.round(e/vE)+"d":t>=wR?Math.round(e/wR)+"h":t>=AR?Math.round(e/AR)+"m":t>=RR?Math.round(e/RR)+"s":e+"ms"}function kVt(e){var t=Math.abs(e);return t>=vE?fj(e,t,vE,"day"):t>=wR?fj(e,t,wR,"hour"):t>=AR?fj(e,t,AR,"minute"):t>=RR?fj(e,t,RR,"second"):e+" ms"}function fj(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var iJ=w((WSr,kNe)=>{function IVt(e){n.debug=n,n.default=n,n.coerce=c,n.disable=o,n.enable=i,n.enabled=a,n.humanize=wNe(),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}kNe.exports=IVt});var INe=w((cu,pj)=>{cu.formatArgs=OVt;cu.save=PVt;cu.load=NVt;cu.useColors=xVt;cu.storage=CVt();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 xVt(){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 OVt(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+pj.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 PVt(e){try{e?cu.storage.setItem("debug",e):cu.storage.removeItem("debug")}catch{}}function NVt(){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 CVt(){try{return localStorage}catch{}}pj.exports=iJ()(cu);var{formatters:MVt}=pj.exports;MVt.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var ONe=w((KSr,xNe)=>{"use strict";xNe.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 DVt=Y("os"),PNe=Y("tty"),zl=ONe(),{env:No}=process,hj;zl("no-color")||zl("no-colors")||zl("color=false")||zl("color=never")?hj=0:(zl("color")||zl("colors")||zl("color=true")||zl("color=always"))&&(hj=1);function LVt(){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 UVt(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function FVt(e,{streamIsTTY:t,sniffFlags:n=!0}={}){let r=LVt();r!==void 0&&(hj=r);let i=n?hj:r;if(i===0)return 0;if(n){if(zl("color=16m")||zl("color=full")||zl("color=truecolor"))return 3;if(zl("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=DVt.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 sJ(e,t={}){let n=FVt(e,{streamIsTTY:e&&e.isTTY,...t});return UVt(n)}NNe.exports={supportsColor:sJ,stdout:sJ({isTTY:PNe.isatty(1)}),stderr:sJ({isTTY:PNe.isatty(2)})}});var MNe=w((Co,yj)=>{var jVt=Y("tty"),gj=Y("util");Co.init=WVt;Co.log=zVt;Co.formatArgs=qVt;Co.save=GVt;Co.load=VVt;Co.useColors=HVt;Co.destroy=gj.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Co.colors=[6,2,3,4,5,1];try{let e=mj();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 HVt(){return"colors"in Co.inspectOpts?!!Co.inspectOpts.colors:jVt.isatty(process.stderr.fd)}function qVt(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+"+uj.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=RVt()+t+" "+e[0]}function RVt(){return Co.inspectOpts.hideDate?"":new Date().toISOString()+" "}function wVt(...e){return process.stderr.write(cj.formatWithOptions(Co.inspectOpts,...e)+` -`)}function kVt(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function IVt(){return process.env.DEBUG}function xVt(e){e.inspectOpts={};let t=Object.keys(Co.inspectOpts);for(let n=0;nt.trim()).join(" ")};vPe.O=function(e){return this.inspectOpts.colors=this.useColors,cj.inspect(e,this.inspectOpts)}});var XJ=w((dSr,JJ)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?JJ.exports=SPe():JJ.exports=APe()});var SO=w((fSr,RPe)=>{"use strict";var QJ=Z("path").sep;RPe.exports=function(e){var t=e.split(QJ),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]+QJ;for(var u="",l=t.length-1,d=n+s;d<=l;d++)d===l?u+=t[d]:u+=t[d]+QJ;return{name:i,basedir:o,path:u}}}});var Tb=w((pSr,t7)=>{"use strict";var bA=Z("path"),Qd=Z("module"),ks=XJ()("require-in-the-middle"),OVt=SO();t7.exports=EO;t7.exports.Hook=EO;var $J,lj;if(Qd.isBuiltin)lj=Qd.isBuiltin;else if(Qd.builtinModules)lj=e=>e.startsWith("node:")?!0:($J===void 0&&($J=new Set(Qd.builtinModules)),$J.has(e));else throw new Error("'require-in-the-middle' requires Node.js >=v9.3.0 or >=v8.10.0");var NVt=/([/\\]index)?(\.js)?$/,e7=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 EO(e,t,n){if(!(this instanceof EO))return new EO(e,t,n);if(typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null),typeof Qd._resolveFilename!="function"){console.error("Error: Expected Module._resolveFilename to be a function (was: %s) - aborting!",typeof Qd._resolveFilename),console.error("Please report this error as an issue related to Node.js %s at https://github.com/nodejs/require-in-the-middle/issues",process.version);return}this._cache=new e7,this._unhooked=!1,this._origRequire=Qd.prototype.require;let r=this,i=new Set,s=t?t.internals===!0:!1,o=Array.isArray(e);ks("registering require hook"),this._require=Qd.prototype.require=function(c){return r._unhooked===!0?(ks("ignoring require call - module is soft-unhooked"),r._origRequire.apply(this,arguments)):a.call(this,arguments,!1)},typeof process.getBuiltinModule=="function"&&(this._origGetBuiltinModule=process.getBuiltinModule,this._getBuiltinModule=process.getBuiltinModule=function(c){return r._unhooked===!0?(ks("ignoring process.getBuiltinModule call - module is soft-unhooked"),r._origGetBuiltinModule.apply(this,arguments)):a.call(this,arguments,!0)});function a(c,u){let l=c[0],d=lj(l),f;if(d){if(f=l,l.startsWith("node:")){let E=l.slice(5);lj(E)&&(f=E)}}else{if(u)return ks("call to process.getBuiltinModule with unknown built-in id"),r._origGetBuiltinModule.apply(this,c);try{f=Qd._resolveFilename(l,this)}catch(E){return ks('Module._resolveFilename("%s") threw %j, calling original Module.require',l,E.message),r._origRequire.apply(this,c)}}let p,h;if(ks("processing %s module require('%s'): %s",d===!0?"core":"non-core",l,f),r._cache.has(f,d)===!0)return ks("returning already patched cached module: %s",f),r._cache.get(f,d);let m=i.has(f);m===!1&&i.add(f);let 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=OVt(f);if(E===void 0)return ks("could not parse filename: %s",f),y;p=E.name,h=E.basedir;let S=PVt(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}}EO.prototype.unhook=function(){this._unhooked=!0,this._require===Qd.prototype.require?(Qd.prototype.require=this._origRequire,ks("require unhook successful")):ks("require unhook unsuccessful"),process.getBuiltinModule!==void 0&&(this._getBuiltinModule===process.getBuiltinModule?(process.getBuiltinModule=this._origGetBuiltinModule,ks("process.getBuiltinModule unhook successful")):ks("process.getBuiltinModule unhook unsuccessful"))};function PVt(e){let t=bA.sep!=="/"?e.path.split(bA.sep).join("/"):e.path;return bA.posix.join(e.name,t).replace(NVt,"")}});var wPe=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.ModuleNameTrie=fy.ModuleNameSeparator=void 0;fy.ModuleNameSeparator="/";var dj=class{hooks=[];children=new Map},n7=class{_trie=new dj;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(fy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new dj,n.children.set(r,i)),n=i}n.hooks.push({hook:t,insertedId:this._counter++})}search(t,{maintainInsertionOrder:n,fullOnly:r}={}){let i=this._trie,s=[],o=!0;for(let a of t.split(fy.ModuleNameSeparator)){let c=i.children.get(a);if(!c){o=!1;break}r||s.push(...c.hooks),i=c}return r&&o&&s.push(...i.hooks),s.length===0?[]:s.length===1?[s[0].hook]:(n&&s.sort((a,c)=>a.insertedId-c.insertedId),s.map(({hook:a})=>a))}};fy.ModuleNameTrie=n7});var IPe=w(fj=>{"use strict";Object.defineProperty(fj,"__esModule",{value:!0});fj.RequireInTheMiddleSingleton=void 0;var CVt=Tb(),kPe=Z("path"),r7=wPe(),MVt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),i7=class e{_moduleNameTrie=new r7.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new CVt.Hook(null,{internals:!0},(t,n,r)=>{let i=LVt(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 MVt?new e:this._instance=this._instance??new e}};fj.RequireInTheMiddleSingleton=i7;function LVt(e){return kPe.sep!==r7.ModuleNameSeparator?e.split(kPe.sep).join(r7.ModuleNameSeparator):e}});var CPe=w(bO=>{var xPe=[],s7=new WeakMap,OPe=new WeakMap,NPe=new Map,PPe=[],DVt={set(e,t,n){let r=s7.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=OPe.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=s7.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function UVt(e,t,n,r,i){NPe.set(e,i),s7.set(t,n),OPe.set(t,r);let s=new Proxy(t,DVt);xPe.forEach(o=>o(e,s,i)),PPe.push([e,s,i])}bO.register=UVt;bO.importHooks=xPe;bO.specifiers=NPe;bO.toHook=PPe});var u7=w((SSr,TA)=>{var MPe=Z("path"),FVt=SO(),{fileURLToPath:jVt}=Z("url"),{MessageChannel:HVt}=Z("worker_threads"),{isBuiltin:o7}=Z("module");o7||(o7=()=>!0);var{importHooks:a7,specifiers:LPe,toHook:qVt}=CPe();function BVt(e,t){if(!(process.env.TURBOPACK??process.argv.includes("--turbo")))return!1;let r=e.slice(0,e.lastIndexOf("-"));return t.endsWith(r)}function DPe(e){a7.push(e),qVt.forEach(([t,n,r])=>e(t,n,r))}function UPe(e){let t=a7.indexOf(e);t>-1&&a7.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 c7;function GVt(){let{port1:e,port2:t}=new HVt,n=0,r;c7=a=>{n++,e.postMessage(a)},e.on("message",()=>{n--,r&&n<=0&&r()}).unref();function i(){let a=setInterval(()=>{},1e3),c=new Promise(u=>{r=u}).then(()=>{clearInterval(a)});return n===0&&r(),c}let s=t;return{registerOptions:{data:{addHookMessagePort:s,include:[]},transferList:[s]},addHookMessagePort:s,waitForAllMessagesAcknowledged:i}}function _O(e,t,n){if(!(this instanceof _O))return new _O(e,t,n);typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null);let r=t?t.internals===!0:!1;c7&&Array.isArray(e)&&c7(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);o7(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=jVt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=FVt(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(LPe.get(a))||BVt(LPe.get(a),l))_A(n,s,i,l);else if(r){let f=i+MPe.sep+MPe.relative(l,u);_A(n,s,f,l)}}else d===o&&_A(n,s,o,l);else _A(n,s,i,l)},DPe(this._iitmHook)}_O.prototype.unhook=function(){UPe(this._iitmHook)};TA.exports=_O;TA.exports.Hook=_O;TA.exports.addHook=DPe;TA.exports.removeHook=UPe;TA.exports.createAddHookMessageChannel=GVt});var l7=w(py=>{"use strict";Object.defineProperty(py,"__esModule",{value:!0});py.isWrapped=py.safeExecuteInTheMiddleAsync=py.safeExecuteInTheMiddle=void 0;function zVt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}py.safeExecuteInTheMiddle=zVt;async function VVt(e,t,n){let r,i;try{i=await e()}catch(s){r=s}finally{if(await t(r,i),r&&!n)throw r;return i}}py.safeExecuteInTheMiddleAsync=VVt;function WVt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}py.isWrapped=WVt});var HPe=w(pj=>{"use strict";Object.defineProperty(pj,"__esModule",{value:!0});pj.InstrumentationBase=void 0;var TO=Z("path"),FPe=Z("util"),KVt=pPe(),d7=zJ(),ZVt=hPe(),YVt=IPe(),JVt=u7(),vO=(Ce(),ke(Ye)),XVt=Tb(),QVt=Z("fs"),$Vt=l7(),f7=class extends ZVt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=YVt.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,$Vt.isWrapped)(t[n])&&this._unwrap(t,n),FPe.types.isProxy(t)){let i=(0,d7.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,d7.wrap)(t,n,r)};_unwrap=(t,n)=>FPe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,d7.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{vO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){vO.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{vO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){vO.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,QVt.readFileSync)(TO.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{vO.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 jPe(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=TO.normalize(r);return o.filter(u=>u.name===a&&jPe(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&&TO.isAbsolute(a)){let u=TO.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=TO.isAbsolute(t.name)?new XVt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new JVt.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}};pj.InstrumentationBase=f7;function jPe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,KVt.satisfies)(t,r,{includePrerelease:n}))}});var qPe=w(hj=>{"use strict";Object.defineProperty(hj,"__esModule",{value:!0});hj.normalize=void 0;var eWt=Z("path");Object.defineProperty(hj,"normalize",{enumerable:!0,get:function(){return eWt.normalize}})});var BPe=w(vA=>{"use strict";Object.defineProperty(vA,"__esModule",{value:!0});vA.normalize=vA.InstrumentationBase=void 0;var tWt=HPe();Object.defineProperty(vA,"InstrumentationBase",{enumerable:!0,get:function(){return tWt.InstrumentationBase}});var nWt=qPe();Object.defineProperty(vA,"normalize",{enumerable:!0,get:function(){return nWt.normalize}})});var p7=w(AA=>{"use strict";Object.defineProperty(AA,"__esModule",{value:!0});AA.normalize=AA.InstrumentationBase=void 0;var GPe=BPe();Object.defineProperty(AA,"InstrumentationBase",{enumerable:!0,get:function(){return GPe.InstrumentationBase}});Object.defineProperty(AA,"normalize",{enumerable:!0,get:function(){return GPe.normalize}})});var zPe=w(mj=>{"use strict";Object.defineProperty(mj,"__esModule",{value:!0});mj.InstrumentationNodeModuleDefinition=void 0;var h7=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}};mj.InstrumentationNodeModuleDefinition=h7});var VPe=w(gj=>{"use strict";Object.defineProperty(gj,"__esModule",{value:!0});gj.InstrumentationNodeModuleFile=void 0;var rWt=p7(),m7=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,rWt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};gj.InstrumentationNodeModuleFile=m7});var WPe=w(vb=>{"use strict";Object.defineProperty(vb,"__esModule",{value:!0});vb.semconvStabilityFromStr=vb.SemconvStability=void 0;var yj;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(yj=vb.SemconvStability||(vb.SemconvStability={}));function iWt(e,t){let n=yj.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=yj.DUPLICATE;break}else i.toLowerCase()===e&&(n=yj.STABLE);return n}vb.semconvStabilityFromStr=iWt});var Jt=w(Bs=>{"use strict";Object.defineProperty(Bs,"__esModule",{value:!0});Bs.semconvStabilityFromStr=Bs.SemconvStability=Bs.safeExecuteInTheMiddleAsync=Bs.safeExecuteInTheMiddle=Bs.isWrapped=Bs.InstrumentationNodeModuleFile=Bs.InstrumentationNodeModuleDefinition=Bs.InstrumentationBase=Bs.registerInstrumentations=void 0;var sWt=iPe();Object.defineProperty(Bs,"registerInstrumentations",{enumerable:!0,get:function(){return sWt.registerInstrumentations}});var oWt=p7();Object.defineProperty(Bs,"InstrumentationBase",{enumerable:!0,get:function(){return oWt.InstrumentationBase}});var aWt=zPe();Object.defineProperty(Bs,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return aWt.InstrumentationNodeModuleDefinition}});var cWt=VPe();Object.defineProperty(Bs,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return cWt.InstrumentationNodeModuleFile}});var g7=l7();Object.defineProperty(Bs,"isWrapped",{enumerable:!0,get:function(){return g7.isWrapped}});Object.defineProperty(Bs,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return g7.safeExecuteInTheMiddle}});Object.defineProperty(Bs,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return g7.safeExecuteInTheMiddleAsync}});var KPe=WPe();Object.defineProperty(Bs,"SemconvStability",{enumerable:!0,get:function(){return KPe.SemconvStability}});Object.defineProperty(Bs,"semconvStabilityFromStr",{enumerable:!0,get:function(){return KPe.semconvStabilityFromStr}})});var ZPe=w(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.HTTP_FLAVOR_VALUE_HTTP_1_1=Et.NET_TRANSPORT_VALUE_IP_UDP=Et.NET_TRANSPORT_VALUE_IP_TCP=Et.ATTR_NET_TRANSPORT=Et.ATTR_NET_PEER_PORT=Et.ATTR_NET_PEER_NAME=Et.ATTR_NET_PEER_IP=Et.ATTR_NET_HOST_PORT=Et.ATTR_NET_HOST_NAME=Et.ATTR_NET_HOST_IP=Et.ATTR_HTTP_USER_AGENT=Et.ATTR_HTTP_URL=Et.ATTR_HTTP_TARGET=Et.ATTR_HTTP_STATUS_CODE=Et.ATTR_HTTP_SERVER_NAME=Et.ATTR_HTTP_SCHEME=Et.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED=Et.ATTR_HTTP_RESPONSE_CONTENT_LENGTH=Et.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED=Et.ATTR_HTTP_REQUEST_CONTENT_LENGTH=Et.ATTR_HTTP_METHOD=Et.ATTR_HTTP_HOST=Et.ATTR_HTTP_FLAVOR=Et.ATTR_HTTP_CLIENT_IP=Et.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST=Et.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT=Et.ATTR_USER_AGENT_SYNTHETIC_TYPE=void 0;Et.ATTR_USER_AGENT_SYNTHETIC_TYPE="user_agent.synthetic.type";Et.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT="bot";Et.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST="test";Et.ATTR_HTTP_CLIENT_IP="http.client_ip";Et.ATTR_HTTP_FLAVOR="http.flavor";Et.ATTR_HTTP_HOST="http.host";Et.ATTR_HTTP_METHOD="http.method";Et.ATTR_HTTP_REQUEST_CONTENT_LENGTH="http.request_content_length";Et.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED="http.request_content_length_uncompressed";Et.ATTR_HTTP_RESPONSE_CONTENT_LENGTH="http.response_content_length";Et.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED="http.response_content_length_uncompressed";Et.ATTR_HTTP_SCHEME="http.scheme";Et.ATTR_HTTP_SERVER_NAME="http.server_name";Et.ATTR_HTTP_STATUS_CODE="http.status_code";Et.ATTR_HTTP_TARGET="http.target";Et.ATTR_HTTP_URL="http.url";Et.ATTR_HTTP_USER_AGENT="http.user_agent";Et.ATTR_NET_HOST_IP="net.host.ip";Et.ATTR_NET_HOST_NAME="net.host.name";Et.ATTR_NET_HOST_PORT="net.host.port";Et.ATTR_NET_PEER_IP="net.peer.ip";Et.ATTR_NET_PEER_NAME="net.peer.name";Et.ATTR_NET_PEER_PORT="net.peer.port";Et.ATTR_NET_TRANSPORT="net.transport";Et.NET_TRANSPORT_VALUE_IP_TCP="ip_tcp";Et.NET_TRANSPORT_VALUE_IP_UDP="ip_udp";Et.HTTP_FLAVOR_VALUE_HTTP_1_1="1.1"});var YPe=w(AO=>{"use strict";Object.defineProperty(AO,"__esModule",{value:!0});AO.AttributeNames=void 0;var uWt;(function(e){e.HTTP_ERROR_NAME="http.error_name",e.HTTP_ERROR_MESSAGE="http.error_message",e.HTTP_STATUS_TEXT="http.status_text"})(uWt=AO.AttributeNames||(AO.AttributeNames={}))});var y7=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 XPe=w((NSr,JPe)=>{"use strict";var lWt=Z("util");function S7(e,t){Error.captureStackTrace(this,S7),this.name=this.constructor.name,this.message=e,this.input=t}lWt.inherits(S7,Error);JPe.exports=S7});var $Pe=w((PSr,QPe)=>{"use strict";function dWt(e){return e===34||e===40||e===41||e===44||e===47||e>=58&&e<=64||e>=91&&e<=93||e===123||e===125}function fWt(e){return e===33||e>=35&&e<=39||e===42||e===43||e===45||e===46||e>=48&&e<=57||e>=65&&e<=90||e>=94&&e<=122||e===124||e===126}function pWt(e){return e>=32&&e<=126}function hWt(e){return e>=128&&e<=255}QPe.exports={isDelimiter:dWt,isTokenChar:fWt,isExtended:hWt,isPrint:pWt}});var iCe=w((CSr,rCe)=>{"use strict";var mWt=Z("util"),RA=XPe(),Sj=$Pe(),gWt=Sj.isDelimiter,eCe=Sj.isTokenChar,tCe=Sj.isExtended,yWt=Sj.isPrint;function nCe(e){return e.replace(/\\(.)/g,"$1")}function RO(e,t){return mWt.format("Unexpected character '%s' at index %d",e.charAt(t),t)}function SWt(e){for(var t=!1,n=!1,r=!1,i={},s=[],o=-1,a=-1,c,u,l=0;l{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.headerCapture=Tt.getIncomingStableRequestMetricAttributesOnResponse=Tt.getIncomingRequestMetricAttributesOnResponse=Tt.getIncomingRequestAttributesOnResponse=Tt.getIncomingRequestMetricAttributes=Tt.getIncomingRequestAttributes=Tt.getRemoteClientAddress=Tt.getOutgoingStableRequestMetricAttributesOnResponse=Tt.getOutgoingRequestMetricAttributesOnResponse=Tt.getOutgoingRequestAttributesOnResponse=Tt.setAttributesFromHttpKind=Tt.getOutgoingRequestMetricAttributes=Tt.getOutgoingRequestAttributes=Tt.extractHostnameAndPort=Tt.isValidOptionsType=Tt.getRequestInfo=Tt.isCompressed=Tt.setResponseContentLengthAttribute=Tt.setRequestContentLengthAttribute=Tt.setSpanWithError=Tt.satisfiesPattern=Tt.parseResponseStatus=Tt.getAbsoluteUrl=void 0;var wO=(Ce(),ke(Ye)),fn=(Nn(),ke(Mr)),dt=ZPe(),sCe=fr(),sl=Jt(),EWt=Z("url"),bj=YPe(),oCe=y7(),Ej=y7(),bWt=iCe(),_Wt=(e,t,n="http:",r=Array.from(Ej.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,Ej.STR_REDACTED);a=`${l.pathname}${l.search}`}catch{}let u=i.auth?`${Ej.STR_REDACTED}:${Ej.STR_REDACTED}@`:"";return`${s}//${u}${c}${a}`};Tt.getAbsoluteUrl=_Wt;var TWt=(e,t)=>{let n=e===wO.SpanKind.CLIENT?400:500;return t&&t>=100&&t{if(typeof t=="string")return t===e;if(t instanceof RegExp)return t.test(e);if(typeof t=="function")return t(e);throw new TypeError("Pattern is in unsupported datatype")};Tt.satisfiesPattern=vWt;var AWt=(e,t,n)=>{let r=t.message;n&sl.SemconvStability.OLD&&(e.setAttribute(bj.AttributeNames.HTTP_ERROR_NAME,t.name),e.setAttribute(bj.AttributeNames.HTTP_ERROR_MESSAGE,r)),n&sl.SemconvStability.STABLE&&e.setAttribute(fn.ATTR_ERROR_TYPE,t.name),e.setStatus({code:wO.SpanStatusCode.ERROR,message:r}),e.recordException(t)};Tt.setSpanWithError=AWt;var RWt=(e,t)=>{let n=cCe(e.headers);n!==null&&((0,Tt.isCompressed)(e.headers)?t[dt.ATTR_HTTP_REQUEST_CONTENT_LENGTH]=n:t[dt.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED]=n)};Tt.setRequestContentLengthAttribute=RWt;var wWt=(e,t)=>{let n=cCe(e.headers);n!==null&&((0,Tt.isCompressed)(e.headers)?t[dt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH]=n:t[dt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED]=n)};Tt.setResponseContentLengthAttribute=wWt;function cCe(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}var kWt=e=>{let t=e["content-encoding"];return!!t&&t!=="identity"};Tt.isCompressed=kWt;function IWt(e){let{hostname:t,pathname:n,port:r,username:i,password:s,search:o,protocol:a,hash:c,href:u,origin:l,host:d}=new URL(e),f={protocol:a,hostname:t&&t[0]==="["?t.slice(1,-1):t,hash:c,search:o,pathname:n,path:`${n||""}${o||""}`,href:u,origin:l,host:d};return r!==""&&(f.port=Number(r)),(i||s)&&(f.auth=`${decodeURIComponent(i)}:${decodeURIComponent(s)}`),f}var xWt=(e,t,n)=>{let r,i,s,o=!1;if(typeof t=="string"){try{let c=IWt(t);s=c,r=c.pathname||"/"}catch(c){o=!0,e.verbose("Unable to parse URL provided to HTTP request, using fallback to determine path. Original error:",c),s={path:t},r=s.path||"/"}i=`${s.protocol||"http:"}//${s.host}`,n!==void 0&&Object.assign(s,n)}else if(t instanceof EWt.URL)s={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,path:`${t.pathname||""}${t.search||""}`},t.port!==""&&(s.port=Number(t.port)),(t.username||t.password)&&(s.auth=`${t.username}:${t.password}`),r=t.pathname,i=t.origin,n!==void 0&&Object.assign(s,n);else{s=Object.assign({protocol:t.host?"http:":void 0},t);let c=s.host||(s.port!=null?`${s.hostname}${s.port}`:s.hostname);if(i=`${s.protocol||"http:"}//${c}`,r=t.pathname,!r&&s.path)try{r=new URL(s.path,i).pathname||"/"}catch{r="/"}}let a=s.method?s.method.toUpperCase():"GET";return{origin:i,pathname:r,method:a,optionsParsed:s,invalidUrl:o}};Tt.getRequestInfo=xWt;var OWt=e=>{if(!e)return!1;let t=typeof e;return t==="string"||t==="object"&&!Array.isArray(e)};Tt.isValidOptionsType=OWt;var NWt=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=NWt;var PWt=(e,t,n,r)=>{let i=t.hostname,s=t.port,o=e.method??"GET",a=dCe(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]=uCe(u)),u!==void 0&&(d[dt.ATTR_HTTP_USER_AGENT]=u),n){case sl.SemconvStability.STABLE:return Object.assign(f,t.hookAttributes);case sl.SemconvStability.OLD:return Object.assign(d,t.hookAttributes)}return Object.assign(d,f,t.hookAttributes)};Tt.getOutgoingRequestAttributes=PWt;var CWt=e=>{let t={};return t[dt.ATTR_HTTP_METHOD]=e[dt.ATTR_HTTP_METHOD],t[dt.ATTR_NET_PEER_NAME]=e[dt.ATTR_NET_PEER_NAME],t};Tt.getOutgoingRequestMetricAttributes=CWt;var MWt=(e,t)=>{e&&(t[dt.ATTR_HTTP_FLAVOR]=e,e.toUpperCase()!=="QUIC"?t[dt.ATTR_NET_TRANSPORT]=dt.NET_TRANSPORT_VALUE_IP_TCP:t[dt.ATTR_NET_TRANSPORT]=dt.NET_TRANSPORT_VALUE_IP_UDP)};Tt.setAttributesFromHttpKind=MWt;var uCe=e=>{let t=String(e).toLowerCase();for(let n of oCe.SYNTHETIC_TEST_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST;for(let n of oCe.SYNTHETIC_BOT_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT},LWt=(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[bj.AttributeNames.HTTP_STATUS_TEXT]=(r||"").toUpperCase()),(0,Tt.setAttributesFromHttpKind)(i,o),t){case sl.SemconvStability.STABLE:return a;case sl.SemconvStability.OLD:return o}return Object.assign(o,a)};Tt.getOutgoingRequestAttributesOnResponse=LWt;var DWt=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=DWt;var UWt=e=>{let t={};return e[fn.ATTR_NETWORK_PROTOCOL_VERSION]&&(t[fn.ATTR_NETWORK_PROTOCOL_VERSION]=e[fn.ATTR_NETWORK_PROTOCOL_VERSION]),e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]&&(t[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]=e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]),t};Tt.getOutgoingStableRequestMetricAttributesOnResponse=UWt;function hy(e,t){let n=e.split(":");if(n.length===1)return t==="http"?{host:n[0],port:"80"}:t==="https"?{host:n[0],port:"443"}:{host:n[0]};if(n.length===2)return{host:n[0],port:n[1]};if(n[0].startsWith("[")){if(n[n.length-1].endsWith("]")){if(t==="http")return{host:e,port:"80"};if(t==="https")return{host:e,port:"443"}}else if(n[n.length-2].endsWith("]"))return{host:n.slice(0,-1).join(":"),port:n[n.length-1]}}return{host:e}}function FWt(e,t){let n=e.headers.forwarded;if(n){for(let s of fCe(n))if(s.host)return hy(s.host,s.proto)}let r=e.headers["x-forwarded-host"];if(typeof r=="string")return typeof e.headers["x-forwarded-proto"]=="string"?hy(r,e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?hy(r,e.headers["x-forwarded-proto"][0]):hy(r);if(Array.isArray(r)&&typeof r[0]=="string"&&r[0].length>0)return typeof e.headers["x-forwarded-proto"]=="string"?hy(r[0],e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?hy(r[0],e.headers["x-forwarded-proto"][0]):hy(r[0]);let i=e.headers.host;return typeof i=="string"&&i.length>0?hy(i,t):null}function lCe(e){let t=e.headers.forwarded;if(t){for(let i of fCe(t))if(i.for)return aCe(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(),aCe(i)}let r=e.socket.remoteAddress;return r||null}Tt.getRemoteClientAddress=lCe;function aCe(e){try{let{hostname:t}=new URL(`http://${e}`);return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}catch{return e}}function jWt(e,t,n){try{if(t.headers.host)return new URL(t.url??"/",`${e}://${t.headers.host}`);{let r=new URL(t.url??"/",`${e}://localhost`);return{pathname:r.pathname,search:r.search,toString:function(){return r.pathname+r.search}}}}catch(r){return n.verbose("Unable to get URL from request",r),{}}}var HWt=(e,t,n)=>{let{component:r,enableSyntheticSourceDetection:i,hookAttributes:s,semconvStability:o,serverName:a}=t,{headers:c,httpVersion:u,method:l}=e,{host:d,"user-agent":f,"x-forwarded-for":p}=c,h=jWt(r,e,n),m,y;if(o!==sl.SemconvStability.OLD){let g=dCe(l),E=FWt(e,r),S=lCe(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]=uCe(f))}if(o!==sl.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 sl.SemconvStability.STABLE:return Object.assign(m,s);case sl.SemconvStability.OLD:return Object.assign(y,s);default:return Object.assign(y,m,s)}};Tt.getIncomingRequestAttributes=HWt;var qWt=e=>{let t={};return t[dt.ATTR_HTTP_SCHEME]=e[dt.ATTR_HTTP_SCHEME],t[dt.ATTR_HTTP_METHOD]=e[dt.ATTR_HTTP_METHOD],t[dt.ATTR_NET_HOST_NAME]=e[dt.ATTR_NET_HOST_NAME],t[dt.ATTR_HTTP_FLAVOR]=e[dt.ATTR_HTTP_FLAVOR],t};Tt.getIncomingRequestMetricAttributes=qWt;var BWt=(e,t,n)=>{let{socket:r}=e,{statusCode:i,statusMessage:s}=t,o={[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]:i},a=(0,sCe.getRPCMetadata)(wO.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[bj.AttributeNames.HTTP_STATUS_TEXT]=(s||"").toUpperCase(),a?.type===sCe.RPCType.HTTP&&a.route!==void 0&&(c[fn.ATTR_HTTP_ROUTE]=a.route,o[fn.ATTR_HTTP_ROUTE]=a.route),n){case sl.SemconvStability.STABLE:return o;case sl.SemconvStability.OLD:return c}return Object.assign(c,o)};Tt.getIncomingRequestAttributesOnResponse=BWt;var GWt=e=>{let t={};return t[dt.ATTR_HTTP_STATUS_CODE]=e[dt.ATTR_HTTP_STATUS_CODE],t[dt.ATTR_NET_HOST_PORT]=e[dt.ATTR_NET_HOST_PORT],e[fn.ATTR_HTTP_ROUTE]!==void 0&&(t[fn.ATTR_HTTP_ROUTE]=e[fn.ATTR_HTTP_ROUTE]),t};Tt.getIncomingRequestMetricAttributesOnResponse=GWt;var zWt=e=>{let t={};return e[fn.ATTR_HTTP_ROUTE]!==void 0&&(t[fn.ATTR_HTTP_ROUTE]=e[fn.ATTR_HTTP_ROUTE]),e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]&&(t[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]=e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]),t};Tt.getIncomingStableRequestMetricAttributesOnResponse=zWt;function VWt(e,t,n){let r=new Map;for(let i=0,s=t.length;i{let s={};for(let o of r.keys()){let a=i(o);if(a===void 0)continue;let c=r.get(o),u=`http.${e}.header.${c}`;typeof a=="string"?s[u]=[a]:Array.isArray(a)?s[u]=a:s[u]=[a]}return s}}Tt.headerCapture=VWt;var WWt=new Set(["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH","QUERY"]);function dCe(e){if(e==null)return"GET";let t=e.toUpperCase();return WWt.has(t)?t:"_OTHER"}function fCe(e){try{return bWt(e)}catch{return[]}}});var hCe=w(_j=>{"use strict";Object.defineProperty(_j,"__esModule",{value:!0});_j.HttpInstrumentation=void 0;var tn=(Ce(),ke(Ye)),my=fr(),KWt=Z("url"),ZWt=KNe(),Mo=Jt(),E7=Z("events"),Oi=(Nn(),ke(Mr)),Is=pCe(),b7=class extends Mo.InstrumentationBase{_spanNotEnded=new WeakSet;_headerCapture;_httpPatched=!1;_httpsPatched=!1;_semconvStability=Mo.SemconvStability.OLD;constructor(t={}){super("@opentelemetry/instrumentation-http",ZWt.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(E7.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(E7.errorMonitor,a=>{this._diag.debug("outgoingRequest on request error()",a),!o&&(o=!0,this._onOutgoingRequestError(n,i,s,r,a))}),this._diag.debug("http.ClientRequest return request"),t}_incomingRequestFunction(t,n){let r=this;return function(s,...o){if(s!=="request")return n.apply(this,[s,...o]);let a=o[0],c=o[1],u=a.method||"GET";if(r._diag.debug(`${t} instrumentation incomingRequest`),(0,Mo.safeExecuteInTheMiddle)(()=>r.getConfig().ignoreIncomingRequestHook?.(a),S=>{S!=null&&r._diag.error("caught ignoreIncomingRequestHook error: ",S)},!0))return tn.context.with((0,my.suppressTracing)(tn.context.active()),()=>(tn.context.bind(tn.context.active(),a),tn.context.bind(tn.context.active(),c),n.apply(this,[s,...o])));let l=a.headers,d=(0,Is.getIncomingRequestAttributes)(a,{component:t,serverName:r.getConfig().serverName,hookAttributes:r._callStartSpanHook(a,r.getConfig().startIncomingSpanHook),semconvStability:r._semconvStability,enableSyntheticSourceDetection:r.getConfig().enableSyntheticSourceDetection||!1},r._diag);Object.assign(d,r._headerCapture.server.captureRequestHeaders(S=>a.headers[S]));let f={kind:tn.SpanKind.SERVER,attributes:d},p=(0,my.hrTime)(),h=(0,Is.getIncomingRequestMetricAttributes)(d),m={[Oi.ATTR_HTTP_REQUEST_METHOD]:d[Oi.ATTR_HTTP_REQUEST_METHOD],[Oi.ATTR_URL_SCHEME]:d[Oi.ATTR_URL_SCHEME]};d[Oi.ATTR_NETWORK_PROTOCOL_VERSION]&&(m[Oi.ATTR_NETWORK_PROTOCOL_VERSION]=d[Oi.ATTR_NETWORK_PROTOCOL_VERSION]);let y=tn.propagation.extract(tn.ROOT_CONTEXT,l),g=r._startHttpSpan(u,f,y),E={type:my.RPCType.HTTP,span:g};return tn.context.with((0,my.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(E7.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 KWt.URL)?o.shift():void 0,{method:c,invalidUrl:u,optionsParsed:l}=(0,Is.getRequestInfo)(r._diag,s,a);if((0,Mo.safeExecuteInTheMiddle)(()=>r.getConfig().ignoreOutgoingRequestHook?.(l),_=>{_!=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,my.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,my.hrTimeToMilliseconds)((0,my.hrTimeDuration)(r,(0,my.hrTime)()));n===tn.SpanKind.SERVER?this._recordServerDuration(o,i,s):n===tn.SpanKind.CLIENT&&this._recordClientDuration(o,i,s)}_callResponseHook(t,n){(0,Mo.safeExecuteInTheMiddle)(()=>this.getConfig().responseHook(t,n),()=>{},!0)}_callRequestHook(t,n){(0,Mo.safeExecuteInTheMiddle)(()=>this.getConfig().requestHook(t,n),()=>{},!0)}_callStartSpanHook(t,n){if(typeof n=="function")return(0,Mo.safeExecuteInTheMiddle)(()=>n(t),()=>{},!0)}_createHeaderCapture(t){let n=this.getConfig();return{client:{captureRequestHeaders:(0,Is.headerCapture)("request",n.headersToSpanAttributes?.client?.requestHeaders??[],t),captureResponseHeaders:(0,Is.headerCapture)("response",n.headersToSpanAttributes?.client?.responseHeaders??[],t)},server:{captureRequestHeaders:(0,Is.headerCapture)("request",n.headersToSpanAttributes?.server?.requestHeaders??[],t),captureResponseHeaders:(0,Is.headerCapture)("response",n.headersToSpanAttributes?.server?.responseHeaders??[],t)}}}};_j.HttpInstrumentation=b7});var mCe=w(Tj=>{"use strict";Object.defineProperty(Tj,"__esModule",{value:!0});Tj.HttpInstrumentation=void 0;var YWt=hCe();Object.defineProperty(Tj,"HttpInstrumentation",{enumerable:!0,get:function(){return YWt.HttpInstrumentation}})});var Fe,Ni=v(()=>{Fe=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var qt,Va=v(()=>{qt=globalThis});var Pn,vj=v(()=>{Pn="10.47.0"});function Ic(){return gy(qt),qt}function gy(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||Pn,t[Pn]=t[Pn]||{}}function $d(e,t,n=qt){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[Pn]=r[Pn]||{};return i[e]||(i[e]=t())}var ql=v(()=>{vj();Va()});function xs(e){if(!("console"in qt))return e();let t=qt.console,n={},r=Object.keys(wA);r.forEach(i=>{let s=wA[i];n[i]=t[i],t[i]=s});try{return e()}finally{r.forEach(i=>{t[i]=n[i]})}}function XWt(){T7().enabled=!0}function QWt(){T7().enabled=!1}function gCe(){return T7().enabled}function $Wt(...e){_7("log",...e)}function e3t(...e){_7("warn",...e)}function t3t(...e){_7("error",...e)}function _7(e,...t){Fe&&gCe()&&xs(()=>{qt.console[e](`${JWt}[${e}]:`,...t)})}function T7(){return Fe?$d("loggerSettings",()=>({enabled:!1})):{enabled:!1}}var kO,JWt,wA,Y,_r=v(()=>{ql();Ni();Va();kO=["debug","info","warn","error","log","assert","trace"],JWt="Sentry Logger ",wA={};Y={enable:XWt,disable:QWt,isEnabled:gCe,log:$Wt,warn:e3t,error:t3t}});function Rj(...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=yCe.test(c)?c.replace(yCe,"$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 ECe(s.slice(i))}}function A7(e){return Array.isArray(e)?Rj(...e):e}function ECe(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(Aj(t).function||"")&&t.pop(),t.reverse(),SCe.test(Aj(t).function||"")&&(t.pop(),SCe.test(Aj(t).function||"")&&t.pop()),t.slice(0,50).map(n=>({...n,filename:n.filename||Aj(t).filename,function:n.function||"?"}))}function Aj(e){return e[e.length-1]||{}}function IO(e){try{return!e||typeof e!="function"?v7:e.name||v7}catch{return v7}}function wj(e){return"__v_isVNode"in e&&e.__v_isVNode?"[VueVNode]":"[VueViewModel]"}function bCe(e){let t=e?.startsWith("file://")?e.slice(7):e;return t?.match(/\/[A-Z]:/)&&(t=t.slice(1)),t}var yCe,SCe,v7,kA=v(()=>{yCe=/\(error: (.*)\)/,SCe=/captureMessage|captureException/;v7=""});function IA(e,t){kj[e]=kj[e]||[],kj[e].push(t)}function xA(e,t){if(!_Ce[e]){_Ce[e]=!0;try{t()}catch(n){Fe&&Y.error(`Error while instrumenting ${e}`,n)}}}function OA(e,t){let n=e&&kj[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+"+yj.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=BVt()+t+" "+e[0]}function BVt(){return Co.inspectOpts.hideDate?"":new Date().toISOString()+" "}function zVt(...e){return process.stderr.write(gj.formatWithOptions(Co.inspectOpts,...e)+` +`)}function GVt(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function VVt(){return process.env.DEBUG}function WVt(e){e.inspectOpts={};let t=Object.keys(Co.inspectOpts);for(let n=0;nt.trim()).join(" ")};CNe.O=function(e){return this.inspectOpts.colors=this.useColors,gj.inspect(e,this.inspectOpts)}});var DNe=w((ZSr,oJ)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?oJ.exports=INe():oJ.exports=MNe()});var xO=w((JSr,LNe)=>{"use strict";var aJ=Y("path").sep;LNe.exports=function(e){var t=e.split(aJ),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]+aJ;for(var u="",l=t.length-1,d=n+s;d<=l;d++)d===l?u+=t[d]:u+=t[d]+aJ;return{name:i,basedir:o,path:u}}}});var RE=w((XSr,lJ)=>{"use strict";var kR=Y("path"),ef=Y("module"),ks=DNe()("require-in-the-middle"),KVt=xO();lJ.exports=OO;lJ.exports.Hook=OO;var cJ,Sj;if(ef.isBuiltin)Sj=ef.isBuiltin;else if(ef.builtinModules)Sj=e=>e.startsWith("node:")?!0:(cJ===void 0&&(cJ=new Set(ef.builtinModules)),cJ.has(e));else throw new Error("'require-in-the-middle' requires Node.js >=v9.3.0 or >=v8.10.0");var YVt=/([/\\]index)?(\.js)?$/,uJ=class{constructor(){this._localCache=new Map,this._kRitmExports=Symbol("RitmExports")}has(t,n){if(this._localCache.has(t))return!0;if(n)return!1;{let r=Y.cache[t];return!!(r&&this._kRitmExports in r)}}get(t,n){let r=this._localCache.get(t);if(r!==void 0)return r;if(!n){let i=Y.cache[t];return i&&i[this._kRitmExports]}}set(t,n,r){r?this._localCache.set(t,n):t in Y.cache?Y.cache[t][this._kRitmExports]=n:(ks('non-core module is unexpectedly not in require.cache: "%s"',t),this._localCache.set(t,n))}};function OO(e,t,n){if(!(this instanceof OO))return new OO(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 uJ,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=Sj(l),f;if(d){if(f=l,l.startsWith("node:")){let b=l.slice(5);Sj(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=kR.parse(f);p=b.name,h=b.dir}else{let b=KVt(f);if(b===void 0)return ks("could not parse filename: %s",f),g;p=b.name,h=b.basedir;let S=ZVt(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{_=Y.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+kR.sep+kR.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}}OO.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 ZVt(e){let t=kR.sep!=="/"?e.path.split(kR.sep).join("/"):e.path;return kR.posix.join(e.name,t).replace(YVt,"")}});var UNe=w(hy=>{"use strict";Object.defineProperty(hy,"__esModule",{value:!0});hy.ModuleNameTrie=hy.ModuleNameSeparator=void 0;hy.ModuleNameSeparator="/";var bj=class{hooks=[];children=new Map},dJ=class{_trie=new bj;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(hy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new bj,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(hy.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))}};hy.ModuleNameTrie=dJ});var jNe=w(Ej=>{"use strict";Object.defineProperty(Ej,"__esModule",{value:!0});Ej.RequireInTheMiddleSingleton=void 0;var JVt=RE(),FNe=Y("path"),fJ=UNe(),XVt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),pJ=class e{_moduleNameTrie=new fJ.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new JVt.Hook(null,{internals:!0},(t,n,r)=>{let i=QVt(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 XVt?new e:this._instance=this._instance??new e}};Ej.RequireInTheMiddleSingleton=pJ;function QVt(e){return FNe.sep!==fJ.ModuleNameSeparator?e.split(FNe.sep).join(fJ.ModuleNameSeparator):e}});var GNe=w(PO=>{var HNe=[],hJ=new WeakMap,qNe=new WeakMap,BNe=new Map,zNe=[],$Vt={set(e,t,n){let r=hJ.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=qNe.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=hJ.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function eWt(e,t,n,r,i){BNe.set(e,i),hJ.set(t,n),qNe.set(t,r);let s=new Proxy(t,$Vt);HNe.forEach(o=>o(e,s,i)),zNe.push([e,s,i])}PO.register=eWt;PO.importHooks=HNe;PO.specifiers=BNe;PO.toHook=zNe});var SJ=w((nbr,xR)=>{var VNe=Y("path"),tWt=xO(),{fileURLToPath:nWt}=Y("url"),{MessageChannel:rWt}=Y("worker_threads"),{isBuiltin:mJ}=Y("module");mJ||(mJ=()=>!0);var{importHooks:gJ,specifiers:WNe,toHook:iWt}=GNe();function sWt(e,t){if(!(process.env.TURBOPACK??process.argv.includes("--turbo")))return!1;let r=e.slice(0,e.lastIndexOf("-"));return t.endsWith(r)}function KNe(e){gJ.push(e),iWt.forEach(([t,n,r])=>e(t,n,r))}function YNe(e){let t=gJ.indexOf(e);t>-1&&gJ.splice(t,1)}function IR(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var yJ;function oWt(){let{port1:e,port2:t}=new rWt,n=0,r;yJ=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 NO(e,t,n){if(!(this instanceof NO))return new NO(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;yJ&&Array.isArray(e)&&yJ(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);mJ(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=nWt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=tWt(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)IR(n,s,u,void 0);else if(d===i){if(!l)IR(n,s,i,l);else if(l.endsWith(WNe.get(a))||sWt(WNe.get(a),l))IR(n,s,i,l);else if(r){let f=i+VNe.sep+VNe.relative(l,u);IR(n,s,f,l)}}else d===o&&IR(n,s,o,l);else IR(n,s,i,l)},KNe(this._iitmHook)}NO.prototype.unhook=function(){YNe(this._iitmHook)};xR.exports=NO;xR.exports.Hook=NO;xR.exports.addHook=KNe;xR.exports.removeHook=YNe;xR.exports.createAddHookMessageChannel=oWt});var bJ=w(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.isWrapped=my.safeExecuteInTheMiddleAsync=my.safeExecuteInTheMiddle=void 0;function aWt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}my.safeExecuteInTheMiddle=aWt;async function cWt(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}}my.safeExecuteInTheMiddleAsync=cWt;function uWt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}my.isWrapped=uWt});var XNe=w(_j=>{"use strict";Object.defineProperty(_j,"__esModule",{value:!0});_j.InstrumentationBase=void 0;var CO=Y("path"),ZNe=Y("util"),lWt=vNe(),EJ=tJ(),dWt=RNe(),fWt=jNe(),pWt=SJ(),MO=(Me(),ke(Ze)),hWt=RE(),mWt=Y("fs"),gWt=bJ(),_J=class extends dWt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=fWt.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,gWt.isWrapped)(t[n])&&this._unwrap(t,n),ZNe.types.isProxy(t)){let i=(0,EJ.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,EJ.wrap)(t,n,r)};_unwrap=(t,n)=>ZNe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,EJ.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{MO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MO.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{MO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MO.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,mWt.readFileSync)(CO.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{MO.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 JNe(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=CO.normalize(r);return o.filter(u=>u.name===a&&JNe(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&&CO.isAbsolute(a)){let u=CO.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=CO.isAbsolute(t.name)?new hWt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new pWt.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}};_j.InstrumentationBase=_J;function JNe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,lWt.satisfies)(t,r,{includePrerelease:n}))}});var QNe=w(Tj=>{"use strict";Object.defineProperty(Tj,"__esModule",{value:!0});Tj.normalize=void 0;var yWt=Y("path");Object.defineProperty(Tj,"normalize",{enumerable:!0,get:function(){return yWt.normalize}})});var $Ne=w(OR=>{"use strict";Object.defineProperty(OR,"__esModule",{value:!0});OR.normalize=OR.InstrumentationBase=void 0;var SWt=XNe();Object.defineProperty(OR,"InstrumentationBase",{enumerable:!0,get:function(){return SWt.InstrumentationBase}});var bWt=QNe();Object.defineProperty(OR,"normalize",{enumerable:!0,get:function(){return bWt.normalize}})});var TJ=w(PR=>{"use strict";Object.defineProperty(PR,"__esModule",{value:!0});PR.normalize=PR.InstrumentationBase=void 0;var eCe=$Ne();Object.defineProperty(PR,"InstrumentationBase",{enumerable:!0,get:function(){return eCe.InstrumentationBase}});Object.defineProperty(PR,"normalize",{enumerable:!0,get:function(){return eCe.normalize}})});var tCe=w(vj=>{"use strict";Object.defineProperty(vj,"__esModule",{value:!0});vj.InstrumentationNodeModuleDefinition=void 0;var vJ=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}};vj.InstrumentationNodeModuleDefinition=vJ});var nCe=w(Rj=>{"use strict";Object.defineProperty(Rj,"__esModule",{value:!0});Rj.InstrumentationNodeModuleFile=void 0;var EWt=TJ(),RJ=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,EWt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};Rj.InstrumentationNodeModuleFile=RJ});var rCe=w(AE=>{"use strict";Object.defineProperty(AE,"__esModule",{value:!0});AE.semconvStabilityFromStr=AE.SemconvStability=void 0;var Aj;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(Aj=AE.SemconvStability||(AE.SemconvStability={}));function _Wt(e,t){let n=Aj.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=Aj.DUPLICATE;break}else i.toLowerCase()===e&&(n=Aj.STABLE);return n}AE.semconvStabilityFromStr=_Wt});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 TWt=hNe();Object.defineProperty(Bs,"registerInstrumentations",{enumerable:!0,get:function(){return TWt.registerInstrumentations}});var vWt=TJ();Object.defineProperty(Bs,"InstrumentationBase",{enumerable:!0,get:function(){return vWt.InstrumentationBase}});var RWt=tCe();Object.defineProperty(Bs,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return RWt.InstrumentationNodeModuleDefinition}});var AWt=nCe();Object.defineProperty(Bs,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return AWt.InstrumentationNodeModuleFile}});var AJ=bJ();Object.defineProperty(Bs,"isWrapped",{enumerable:!0,get:function(){return AJ.isWrapped}});Object.defineProperty(Bs,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return AJ.safeExecuteInTheMiddle}});Object.defineProperty(Bs,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return AJ.safeExecuteInTheMiddleAsync}});var iCe=rCe();Object.defineProperty(Bs,"SemconvStability",{enumerable:!0,get:function(){return iCe.SemconvStability}});Object.defineProperty(Bs,"semconvStabilityFromStr",{enumerable:!0,get:function(){return iCe.semconvStabilityFromStr}})});var sCe=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 oCe=w(DO=>{"use strict";Object.defineProperty(DO,"__esModule",{value:!0});DO.AttributeNames=void 0;var wWt;(function(e){e.HTTP_ERROR_NAME="http.error_name",e.HTTP_ERROR_MESSAGE="http.error_message",e.HTTP_STATUS_TEXT="http.status_text"})(wWt=DO.AttributeNames||(DO.AttributeNames={}))});var wJ=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 cCe=w((mbr,aCe)=>{"use strict";var kWt=Y("util");function kJ(e,t){Error.captureStackTrace(this,kJ),this.name=this.constructor.name,this.message=e,this.input=t}kWt.inherits(kJ,Error);aCe.exports=kJ});var lCe=w((gbr,uCe)=>{"use strict";function IWt(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 xWt(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 OWt(e){return e>=32&&e<=126}function PWt(e){return e>=128&&e<=255}uCe.exports={isDelimiter:IWt,isTokenChar:xWt,isExtended:PWt,isPrint:OWt}});var mCe=w((ybr,hCe)=>{"use strict";var NWt=Y("util"),NR=cCe(),wj=lCe(),CWt=wj.isDelimiter,dCe=wj.isTokenChar,fCe=wj.isExtended,MWt=wj.isPrint;function pCe(e){return e.replace(/\\(.)/g,"$1")}function LO(e,t){return NWt.format("Unexpected character '%s' at index %d",e.charAt(t),t)}function DWt(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 UO=(Me(),ke(Ze)),fn=(Nn(),ke(Mr)),dt=sCe(),gCe=pr(),ol=Jt(),LWt=Y("url"),Ij=oCe(),yCe=wJ(),kj=wJ(),UWt=mCe(),FWt=(e,t,n="http:",r=Array.from(kj.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,kj.STR_REDACTED);a=`${l.pathname}${l.search}`}catch{}let u=i.auth?`${kj.STR_REDACTED}:${kj.STR_REDACTED}@`:"";return`${s}//${u}${c}${a}`};Tt.getAbsoluteUrl=FWt;var jWt=(e,t)=>{let n=e===UO.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=HWt;var qWt=(e,t,n)=>{let r=t.message;n&ol.SemconvStability.OLD&&(e.setAttribute(Ij.AttributeNames.HTTP_ERROR_NAME,t.name),e.setAttribute(Ij.AttributeNames.HTTP_ERROR_MESSAGE,r)),n&ol.SemconvStability.STABLE&&e.setAttribute(fn.ATTR_ERROR_TYPE,t.name),e.setStatus({code:UO.SpanStatusCode.ERROR,message:r}),e.recordException(t)};Tt.setSpanWithError=qWt;var BWt=(e,t)=>{let n=bCe(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=BWt;var zWt=(e,t)=>{let n=bCe(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=zWt;function bCe(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}var GWt=e=>{let t=e["content-encoding"];return!!t&&t!=="identity"};Tt.isCompressed=GWt;function VWt(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 WWt=(e,t,n)=>{let r,i,s,o=!1;if(typeof t=="string"){try{let c=VWt(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 LWt.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=WWt;var KWt=e=>{if(!e)return!1;let t=typeof e;return t==="string"||t==="object"&&!Array.isArray(e)};Tt.isValidOptionsType=KWt;var YWt=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=YWt;var ZWt=(e,t,n,r)=>{let i=t.hostname,s=t.port,o=e.method??"GET",a=TCe(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]=ECe(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=ZWt;var JWt=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=JWt;var XWt=(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=XWt;var ECe=e=>{let t=String(e).toLowerCase();for(let n of yCe.SYNTHETIC_TEST_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST;for(let n of yCe.SYNTHETIC_BOT_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT},QWt=(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[Ij.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=QWt;var $Wt=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=$Wt;var e4t=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=e4t;function gy(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 t4t(e,t){let n=e.headers.forwarded;if(n){for(let s of vCe(n))if(s.host)return gy(s.host,s.proto)}let r=e.headers["x-forwarded-host"];if(typeof r=="string")return typeof e.headers["x-forwarded-proto"]=="string"?gy(r,e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?gy(r,e.headers["x-forwarded-proto"][0]):gy(r);if(Array.isArray(r)&&typeof r[0]=="string"&&r[0].length>0)return typeof e.headers["x-forwarded-proto"]=="string"?gy(r[0],e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?gy(r[0],e.headers["x-forwarded-proto"][0]):gy(r[0]);let i=e.headers.host;return typeof i=="string"&&i.length>0?gy(i,t):null}function _Ce(e){let t=e.headers.forwarded;if(t){for(let i of vCe(t))if(i.for)return SCe(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(),SCe(i)}let r=e.socket.remoteAddress;return r||null}Tt.getRemoteClientAddress=_Ce;function SCe(e){try{let{hostname:t}=new URL(`http://${e}`);return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}catch{return e}}function n4t(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 r4t=(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=n4t(r,e,n),m,g;if(o!==ol.SemconvStability.OLD){let y=TCe(l),b=t4t(e,r),S=_Ce(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]=ECe(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=r4t;var i4t=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=i4t;var s4t=(e,t,n)=>{let{socket:r}=e,{statusCode:i,statusMessage:s}=t,o={[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]:i},a=(0,gCe.getRPCMetadata)(UO.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[Ij.AttributeNames.HTTP_STATUS_TEXT]=(s||"").toUpperCase(),a?.type===gCe.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=s4t;var o4t=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=o4t;var a4t=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=a4t;function c4t(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=c4t;var u4t=new Set(["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH","QUERY"]);function TCe(e){if(e==null)return"GET";let t=e.toUpperCase();return u4t.has(t)?t:"_OTHER"}function vCe(e){try{return UWt(e)}catch{return[]}}});var ACe=w(xj=>{"use strict";Object.defineProperty(xj,"__esModule",{value:!0});xj.HttpInstrumentation=void 0;var tn=(Me(),ke(Ze)),yy=pr(),l4t=Y("url"),d4t=rNe(),Mo=Jt(),IJ=Y("events"),Oi=(Nn(),ke(Mr)),Is=RCe(),xJ=class extends Mo.InstrumentationBase{_spanNotEnded=new WeakSet;_headerCapture;_httpPatched=!1;_httpsPatched=!1;_semconvStability=Mo.SemconvStability.OLD;constructor(t={}){super("@opentelemetry/instrumentation-http",d4t.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(IJ.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(IJ.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,yy.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,yy.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:yy.RPCType.HTTP,span:y};return tn.context.with((0,yy.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(IJ.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 l4t.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,yy.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,yy.hrTimeToMilliseconds)((0,yy.hrTimeDuration)(r,(0,yy.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)}}}};xj.HttpInstrumentation=xJ});var wCe=w(Oj=>{"use strict";Object.defineProperty(Oj,"__esModule",{value:!0});Oj.HttpInstrumentation=void 0;var f4t=ACe();Object.defineProperty(Oj,"HttpInstrumentation",{enumerable:!0,get:function(){return f4t.HttpInstrumentation}})});var Fe,Pi=v(()=>{Fe=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var qt,Wa=v(()=>{qt=globalThis});var Cn,Pj=v(()=>{Cn="10.47.0"});function xc(){return Sy(qt),qt}function Sy(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||Cn,t[Cn]=t[Cn]||{}}function tf(e,t,n=qt){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[Cn]=r[Cn]||{};return i[e]||(i[e]=t())}var Gl=v(()=>{Pj();Wa()});function xs(e){if(!("console"in qt))return e();let t=qt.console,n={},r=Object.keys(CR);r.forEach(i=>{let s=CR[i];n[i]=t[i],t[i]=s});try{return e()}finally{r.forEach(i=>{t[i]=n[i]})}}function h4t(){PJ().enabled=!0}function m4t(){PJ().enabled=!1}function kCe(){return PJ().enabled}function g4t(...e){OJ("log",...e)}function y4t(...e){OJ("warn",...e)}function S4t(...e){OJ("error",...e)}function OJ(e,...t){Fe&&kCe()&&xs(()=>{qt.console[e](`${p4t}[${e}]:`,...t)})}function PJ(){return Fe?tf("loggerSettings",()=>({enabled:!1})):{enabled:!1}}var FO,p4t,CR,Z,_r=v(()=>{Gl();Pi();Wa();FO=["debug","info","warn","error","log","assert","trace"],p4t="Sentry Logger ",CR={};Z={enable:h4t,disable:m4t,isEnabled:kCe,log:g4t,warn:y4t,error:S4t}});function Cj(...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=ICe.test(c)?c.replace(ICe,"$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 OCe(s.slice(i))}}function CJ(e){return Array.isArray(e)?Cj(...e):e}function OCe(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(Nj(t).function||"")&&t.pop(),t.reverse(),xCe.test(Nj(t).function||"")&&(t.pop(),xCe.test(Nj(t).function||"")&&t.pop()),t.slice(0,50).map(n=>({...n,filename:n.filename||Nj(t).filename,function:n.function||"?"}))}function Nj(e){return e[e.length-1]||{}}function jO(e){try{return!e||typeof e!="function"?NJ:e.name||NJ}catch{return NJ}}function Mj(e){return"__v_isVNode"in e&&e.__v_isVNode?"[VueVNode]":"[VueViewModel]"}function PCe(e){let t=e?.startsWith("file://")?e.slice(7):e;return t?.match(/\/[A-Z]:/)&&(t=t.slice(1)),t}var ICe,xCe,NJ,MR=v(()=>{ICe=/\(error: (.*)\)/,xCe=/captureMessage|captureException/;NJ=""});function DR(e,t){Dj[e]=Dj[e]||[],Dj[e].push(t)}function LR(e,t){if(!NCe[e]){NCe[e]=!0;try{t()}catch(n){Fe&&Z.error(`Error while instrumenting ${e}`,n)}}}function UR(e,t){let n=e&&Dj[e];if(n)for(let r of n)try{r(t)}catch(i){Fe&&Z.error(`Error while triggering instrumentation handler. Type: ${e} -Name: ${IO(r)} -Error:`,i)}}var kj,_Ce,Ij=v(()=>{Ni();_r();kA();kj={},_Ce={}});function TCe(e){let t="error";IA(t,e),xA(t,n3t)}function n3t(){R7=qt.onerror,qt.onerror=function(e,t,n,r,i){return OA("error",{column:r,error:i,line:n,msg:e,url:t}),R7?R7.apply(this,arguments):!1},qt.onerror.__SENTRY_INSTRUMENTED__=!0}var R7,vCe=v(()=>{Va();Ij();R7=null});function ACe(e){let t="unhandledrejection";IA(t,e),xA(t,r3t)}function r3t(){w7=qt.onunhandledrejection,qt.onunhandledrejection=function(e){return OA("unhandledrejection",e),w7?w7.apply(this,arguments):!0},qt.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}var w7,RCe=v(()=>{Va();Ij();w7=null});function Cp(e){switch(wCe.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return Mp(e,Error)}}function xj(e,t){return wCe.call(e)===`[object ${t}]`}function k7(e){return xj(e,"ErrorEvent")}function yy(e){return xj(e,"String")}function NA(e){return typeof e=="object"&&e!==null&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function xO(e){return e===null||NA(e)||typeof e!="object"&&typeof e!="function"}function dm(e){return xj(e,"Object")}function I7(e){return typeof Event<"u"&&Mp(e,Event)}function x7(e){return typeof Element<"u"&&Mp(e,Element)}function O7(e){return xj(e,"RegExp")}function sa(e){return!!(e?.then&&typeof e.then=="function")}function N7(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 OO(e){return!!(typeof e=="object"&&e!==null&&(e.__isVue||e._isVue||e.__v_isVNode))}var wCe,Wa=v(()=>{wCe=Object.prototype.toString});function kCe(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||s3t;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 o3t(e,t){let n=e,r=[];if(!n?.tagName)return"";if(i3t.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}r.push(n.tagName.toLowerCase());let i=t?.length?t.filter(s=>n.getAttribute(s)).map(s=>[s,n.getAttribute(s)]):null;if(i?.length)i.forEach(s=>{r.push(`[${s[0]}="${s[1]}"]`)});else{n.id&&r.push(`#${n.id}`);let s=n.className;if(s&&yy(s)){let o=s.split(/\s+/);for(let a of o)r.push(`.${a}`)}}for(let s of["aria-label","type","name","title","alt"]){let o=n.getAttribute(s);o&&r.push(`[${s}="${o}"]`)}return r.join("")}var i3t,s3t,ICe=v(()=>{Wa();Va();i3t=qt,s3t=80});function P7(e,t,n){if(!(t in e))return;let r=e[t];if(typeof r!="function")return;let i=n(r);typeof i=="function"&&NCe(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 NCe(e,t){try{let n=t.prototype||{};e.prototype=t.prototype=n,Gs(e,"__sentry_original__",t)}catch{}}function C7(e){return e.__sentry_original__}function Oj(e){if(Cp(e))return{message:e.message,name:e.name,stack:e.stack,...OCe(e)};if(I7(e)){let t={type:e.type,target:xCe(e.target),currentTarget:xCe(e.currentTarget),...OCe(e)};return typeof CustomEvent<"u"&&Mp(e,CustomEvent)&&(t.detail=e.detail),t}else return e}function xCe(e){try{return x7(e)?kCe(e):Object.prototype.toString.call(e)}catch{return""}}function OCe(e){return typeof e=="object"&&e!==null?Object.fromEntries(Object.entries(e)):{}}function M7(e){let t=Object.keys(Oj(e));return t.sort(),t[0]?t.join(", "):"[object has no keys]"}var ef=v(()=>{Ni();ICe();_r();Wa()});function Ab(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 Lo(){return Ab(()=>Math.random())}function Bl(){return Ab(()=>Date.now())}var PA,Sy=v(()=>{Va()});function Ey(e,t=0){return typeof e!="string"||t===0||e.length<=t?e:`${e.slice(0,t)}...`}function L7(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 _y=v(()=>{Wa();kA()});function a3t(){let e=qt;return e.crypto||e.msCrypto}function c3t(){return Lo()*16}function mo(e=a3t()){try{if(e?.randomUUID)return Ab(()=>e.randomUUID()).replace(/-/g,"")}catch{}return U7||(U7="10000000100040008000"+1e11),U7.replace(/[018]/g,t=>(t^(c3t()&15)>>t/4).toString(16))}function PCe(e){return e.exception?.values?.[0]}function Ty(e){let{message:t,event_id:n}=e;if(t)return t;let r=PCe(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"":n||""}function j7(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=PCe(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 F7(e){return parseInt(e||"",10)}function H7(e){let t=e.match(u3t)||[],n=F7(t[1]),r=F7(t[2]),i=F7(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 Nj(e){if(CCe(e))return!0;try{Gs(e,"__sentry_captured__",!0)}catch{}return!1}function CCe(e){try{return e.__sentry_captured__}catch{}}var U7,u3t,Lp=v(()=>{ef();Sy();Va();u3t=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/});function pm(){return Bl()/LCe}function l3t(){let{performance:e}=qt;if(!e?.now||!e.timeOrigin)return pm;let t=e.timeOrigin;return()=>(t+Ab(()=>e.now()))/LCe}function vy(){return(MCe??(MCe=l3t()))()}var LCe,MCe,Ay=v(()=>{Sy();Va();LCe=1e3});function DCe(e){let t=vy(),n={sid:mo(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>d3t(n)};return e&&hm(n,e),n}function hm(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),!e.did&&!t.did&&(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||vy(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=t.sid.length===32?t.sid:mo()),t.init!==void 0&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),typeof t.started=="number"&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if(typeof t.duration=="number")e.duration=t.duration;else{let n=e.timestamp-e.started;e.duration=n>=0?n:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),typeof t.errors=="number"&&(e.errors=t.errors),t.status&&(e.status=t.status)}function UCe(e,t){let n={};t?n={status:t}:e.status==="ok"&&(n={status:"exited"}),hm(e,n)}function d3t(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 Pj=v(()=>{Lp();Ay()});function Ry(e,t,n=2){if(!t||typeof t!="object"||n<=0)return t;if(e&&Object.keys(t).length===0)return e;let r={...e};for(let i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=Ry(r[i],t[i],n-1));return r}var Cj=v(()=>{});function Ka(){return mo()}function Za(){return mo().substring(16)}var wy=v(()=>{Lp()});function Rb(e,t){t?Gs(e,q7,t):delete e[q7]}function wb(e){return e[q7]}var q7,Mj=v(()=>{ef();q7="_sentrySpan"});var f3t,cu,NO=v(()=>{Ni();Pj();_r();Wa();Cj();Lp();wy();Sy();Mj();_y();Ay();f3t=100,cu=class e{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._attributes={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:Ka(),sampleRand:Lo()}}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,Rb(t,wb(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,Rb(this,void 0),this._attachments=[],this.setPropagationContext({traceId:Ka(),sampleRand:Lo()}),this._notifyScopeListeners(),this}addBreadcrumb(t,n){let r=typeof n=="number"?n:f3t;if(r<=0)return this;let i={timestamp:pm(),...t,message:t.message?Ey(t.message,2048):t.message};return this._breadcrumbs.push(i),this._breadcrumbs.length>r&&(this._breadcrumbs=this._breadcrumbs.slice(-r),this._client?.recordDroppedEvent("buffer_overflow","log_item")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(t){return this._attachments.push(t),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,attributes:this._attributes,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:wb(this),conversationId:this._conversationId}}setSDKProcessingMetadata(t){return this._sdkProcessingMetadata=Ry(this._sdkProcessingMetadata,t,2),this}setPropagationContext(t){return this._propagationContext=t,this}getPropagationContext(){return this._propagationContext}captureException(t,n){let r=n?.event_id||mo();if(!this._client)return Fe&&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||mo();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||mo();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 $d("defaultCurrentScope",()=>new cu)}function Gl(){return $d("defaultIsolationScope",()=>new cu)}var B7=v(()=>{ql();NO()});var FCe,jCe,Lj,p3t,G7=v(()=>{FCe=e=>e instanceof Promise&&!e[jCe],jCe=Symbol("chained PromiseLike"),Lj=(e,t,n)=>{let r=e.then(i=>(t(i),i),i=>{throw n(i),i});return FCe(r)&&FCe(e)?r:p3t(e,r)},p3t=(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,{[jCe]:!0}),t}});function LA(){let e=Ic(),t=gy(e);return t.stack=t.stack||new z7(MA(),Gl())}function h3t(e){return LA().withScope(e)}function m3t(e,t){let n=LA();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function HCe(e){return LA().withScope(()=>e(LA().getIsolationScope()))}function qCe(){return{withIsolationScope:HCe,withScope:h3t,withSetScope:m3t,withSetIsolationScope:(e,t)=>HCe(t),getCurrentScope:()=>LA().getScope(),getIsolationScope:()=>LA().getIsolationScope()}}var z7,BCe=v(()=>{B7();NO();G7();Wa();ql();z7=class{constructor(t,n){let r;t?r=t:r=new cu;let i;n?i=n:i=new cu,this._stack=[{scope:r}],this._isolationScope=i}withScope(t){let n=this._pushScope(),r;try{r=t(n)}catch(i){throw this._popScope(),i}return sa(r)?Lj(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 V7(e){let t=Ic(),n=gy(t);n.acs=e}function tf(e){let t=gy(e);return t.acs?t.acs:qCe()}var DA=v(()=>{ql();BCe()});function zCe(){return GCe?.()}function W7(){return GCe!==void 0}function Un(){let e=Ic();return tf(e).getCurrentScope()}function vn(){let e=Ic();return tf(e).getIsolationScope()}function Dj(){return $d("globalScope",()=>new cu)}function Ya(...e){let t=Ic(),n=tf(t);if(e.length===2){let[r,i]=e;return r?n.withSetScope(r,i):n.withScope(i)}return n.withScope(e[0])}function PO(...e){let t=Ic(),n=tf(t);if(e.length===2){let[r,i]=e;return r?n.withSetIsolationScope(r,i):n.withIsolationScope(i)}return n.withIsolationScope(e[0])}function ct(){return Un().getClient()}function kb(e){let t=zCe();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 GCe,go=v(()=>{DA();ql();NO();wy()});var Wi,nf,K7,Gt,Rt,Z7,Y7,zl,UA,FA,J7,X7,Q7,$7,ky,eX,Do=v(()=>{Wi="sentry.source",nf="sentry.sample_rate",K7="sentry.previous_trace_sample_rate",Gt="sentry.op",Rt="sentry.origin",Z7="sentry.measurement_unit",Y7="sentry.measurement_value",zl="sentry.custom_span_name",UA="sentry.profile_id",FA="sentry.exclusive_time",J7="cache.hit",X7="cache.key",Q7="cache.item_size",$7="http.request.method",ky="url.full",eX="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 VCe=v(()=>{});function g3t(e){try{let t=qt.WeakRef;if(typeof t=="function")return new t(e)}catch{}return e}function y3t(e){if(e){if(typeof e=="object"&&"deref"in e&&typeof e.deref=="function")try{return e.deref()}catch{return}return e}}function CO(e,t,n){e&&(Gs(e,KCe,g3t(n)),Gs(e,WCe,t))}function rf(e){let t=e;return{scope:t[WCe],isolationScope:y3t(t[KCe])}}var WCe,KCe,jA=v(()=>{ef();Va();WCe="_sentryScope",KCe="_sentryIsolationScope"});function gm(e){let t=xb(e);if(!t)return;let n=Object.entries(t).reduce((r,[i,s])=>{if(i.startsWith(Dp)){let o=i.slice(Dp.length);r[o]=s}return r},{});if(Object.keys(n).length>0)return n}function Ib(e){if(!e)return;let t=Object.entries(e).reduce((n,[r,i])=>(i&&(n[`${Dp}${r}`]=i),n),{});return Uj(t)}function xb(e){if(!(!e||!yy(e)&&!Array.isArray(e)))return Array.isArray(e)?e.reduce((t,n)=>{let r=ZCe(n);return Object.entries(r).forEach(([i,s])=>{t[i]=s}),t},{}):ZCe(e)}function ZCe(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 Uj(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>YCe?(Fe&&Y.warn(`Not adding key: ${n} with val: ${r} to baggage header due to exceeding baggage size limits.`),t):o},"")}var Dp,YCe,MO=v(()=>{Ni();_r();Wa();Dp="sentry-",YCe=8192});function b3t(e){return e==="http"||e==="https"}function ol(e,t=!1){let{host:n,path:r,pass:i,port:s,projectId:o,protocol:a,publicKey:c}=e;return`${a}://${c}${t&&i?`:${i}`:""}@${n}${s?`:${s}`:""}/${r&&`${r}/`}${o}`}function _3t(e){let t=E3t.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 JCe({host:s,pass:i,path:c,projectId:u,port:o,protocol:n,publicKey:r})}function JCe(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function T3t(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+$/)?b3t(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 v3t(e){return e.match(S3t)?.[1]}function Fj(e){let t=e.getOptions(),{host:n}=e.getDsn()||{},r;return t.orgId?r=String(t.orgId):n&&(r=v3t(n)),r}function XCe(e){let t=typeof e=="string"?_3t(e):JCe(e);if(!(!t||!T3t(t)))return t}var S3t,E3t,ym=v(()=>{Ni();_r();S3t=/^o(\d+)\./,E3t=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)((?:\[[:.%\w]+\]|[\w.-]+))(?::(\d+))?\/(.+)/});function al(e){if(typeof e=="boolean")return Number(e);let t=typeof e=="string"?parseFloat(e):e;if(!(typeof t!="number"||isNaN(t)||t<0||t>1))return t}var HA=v(()=>{});function QCe(e){if(!e)return;let t=e.match(jj);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 LO(e,t){let n=QCe(e),r=gm(t);if(!n?.traceId)return{traceId:Ka(),sampleRand:Lo()};let i=A3t(n,r);r&&(r.sample_rand=i.toString());let{traceId:s,parentSpanId:o,parentSampled:a}=n;return{traceId:s,parentSpanId:o,sampled:a,dsc:r||{},sampleRand:i}}function Iy(e=Ka(),t=Za(),n){let r="";return n!==void 0&&(r=n?"-1":"-0"),`${e}-${t}${r}`}function xy(e=Ka(),t=Za(),n){return`00-${e}-${t}-${n?"01":"00"}`}function A3t(e,t){let n=al(t?.sample_rand);if(n!==void 0)return n;let r=al(t?.sample_rate);return r&&e?.parentSampled!==void 0?e.parentSampled?Lo()*r:r+Lo()*(1-r):Lo()}function tX(e,t){let n=Fj(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 jj,Hj=v(()=>{_r();MO();ym();HA();wy();Sy();jj=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$")});function tMe(e){let{spanId:t,traceId:n}=e.spanContext(),{data:r,op:i,parent_span_id:s,status:o,origin:a,links:c}=vt(e);return{parent_span_id:s,span_id:t,trace_id:n,data:r,op:i,status:o,origin:a,links:c}}function Oy(e){let{spanId:t,traceId:n,isRemote:r}=e.spanContext(),i=r?t:vt(e).parent_span_id,s=rf(e).scope,o=r?s?.getPropagationContext().propagationSpanId||Za():t;return{parent_span_id:i,span_id:o,trace_id:n}}function zj(e){let{traceId:t,spanId:n}=e.spanContext(),r=sf(e);return Iy(t,n,r)}function nMe(e){let{traceId:t,spanId:n}=e.spanContext(),r=sf(e);return xy(t,n,r)}function Ob(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===Gj,attributes:s,...i}))}function uu(e){return typeof e=="number"?eMe(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?eMe(e.getTime()):vy()}function eMe(e){return e>9999999999?e/1e3:e}function vt(e){if(k3t(e))return e.getSpanJSON();let{spanId:t,traceId:n}=e.spanContext();if(w3t(e)){let{attributes:r,startTime:i,name:s,endTime:o,status:a,links:c}=e,u="parentSpanId"in e?e.parentSpanId:"parentSpanContext"in e?e.parentSpanContext?.spanId:void 0;return{span_id:t,trace_id:n,data:r,description:s,parent_span_id:u,start_timestamp:uu(i),timestamp:uu(o)||void 0,status:Nb(a),op:r[Gt],origin:r[Rt],links:Ob(c)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function w3t(e){let t=e;return!!t.attributes&&!!t.startTime&&!!t.name&&!!t.endTime&&!!t.status}function k3t(e){return typeof e.getSpanJSON=="function"}function sf(e){let{traceFlags:t}=e.spanContext();return t===Gj}function Nb(e){if(!(!e||e.code===0))return e.code===1?"ok":e.message||"internal_error"}function qA(e,t){let n=e[nX]||e;Gs(t,nX,n),e[DO]?e[DO].add(t):Gs(e,DO,new Set([t]))}function Vj(e){let t=new Set;function n(r){if(!t.has(r)&&sf(r)){t.add(r);let i=r[DO]?Array.from(r[DO]):[];for(let s of i)n(s)}}return n(e),Array.from(t)}function cs(e){return e[nX]||e}function Vl(){let e=Ic(),t=tf(e);return t.getActiveSpan?t.getActiveSpan():wb(Un())}function UO(){$Ce||(xs(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),$Ce=!0)}var Bj,Gj,$Ce,DO,nX,xc=v(()=>{DA();ql();go();Do();jA();ef();wy();Ay();Hj();_r();Mj();Bj=0,Gj=1,$Ce=!1;DO="_sentryChildSpans",nX="_sentryRootSpan"});function iMe(){if(rMe)return;function e(){let t=Vl(),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",rMe=!0,TCe(e),ACe(e)}var rMe,sMe=v(()=>{Ni();vCe();RCe();_r();xc();rMe=!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 FO=v(()=>{go()});function oMe(e){Y.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function jO(e,t){if(!t?.length||!e.description)return!1;for(let n of t){if(I3t(n)){if(fm(e.description,n))return Fe&&oMe(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&&oMe(e),!0}return!1}function aMe(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 I3t(e){return typeof e=="string"||e instanceof RegExp}var rX=v(()=>{Ni();_r();_y()});var BA,Wj=v(()=>{BA="production"});function Kj(e,t){Gs(e,cMe,t)}function iX(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:Fj(t)};return t.emit("createDsc",i),i}function Up(e,t){let n=t.getPropagationContext();return n.dsc||iX(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[nf]??i[K7];function a(h){return(typeof o=="number"||typeof o=="string")&&(h.sample_rate=`${o}`),h}let c=n[cMe];if(c)return a(c);let u=s?.get("sentry.dsc"),l=u&&gm(u);if(l)return a(l);let d=iX(e.spanContext().traceId,t),f=i[Wi],p=r.description;return f!=="url"&&p&&(d.transaction=p),Os()&&(d.sampled=String(sf(n)),d.sample_rand=s?.get("sentry.sample_rand")??rf(n).scope?.getPropagationContext().sampleRand.toString()),a(d),t.emit("createDsc",d,n),d}var cMe,Sm=v(()=>{Wj();go();Do();MO();ym();FO();ef();xc();jA();cMe="_frozenDsc"});var Ny,uMe=v(()=>{wy();xc();Ny=class{constructor(t={}){this._traceId=t.traceId||Ka(),this._spanId=t.spanId||Za()}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:Bj}}end(t){}setAttribute(t,n){return this}setAttributes(t){return this}setStatus(t){return this}updateName(t){return this}isRecording(){return!1}addEvent(t,n,r){return this}addLink(t){return this}addLinks(t){return this}recordException(t,n){}}});function of(e,t=100,n=1/0){try{return sX("",e,t,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function oX(e,t=3,n=100*1024){let r=of(e,t);return P3t(r)>n?oX(e,t-1,n):r}function sX(e,t,n=1/0,r=1/0,i=C3t()){let[s,o]=i;if(t==null||["boolean","string"].includes(typeof t)||typeof t=="number"&&Number.isFinite(t))return t;let a=x3t(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 sX("",p,c-1,r,i)}catch{}let l=Array.isArray(t)?[]:{},d=0,f=Oj(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]=sX(p,h,c-1,r,i),d++}return o(t),l}function x3t(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(OO(t))return wj(t);if(N7(t))return"[SyntheticEvent]";if(typeof t=="number"&&!Number.isFinite(t))return`[${t}]`;if(typeof t=="function")return`[Function: ${IO(t)}]`;if(typeof t=="symbol")return`[${String(t)}]`;if(typeof t=="bigint")return`[BigInt: ${String(t)}]`;let n=O3t(t);return/^HTML(\w*)Element$/.test(n)?`[HTMLElement: ${n}]`:`[object ${n}]`}catch(n){return`**non-serializable** (${n})`}}function O3t(e){let t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:"null prototype"}function N3t(e){return~-encodeURI(e).split(/%..|./).length}function P3t(e){return N3t(JSON.stringify(e))}function C3t(){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 Zj=v(()=>{Wa();ef();kA()});function Oc(e,t=[]){return[e,t]}function cX(e,t){let[n,r]=e;return[n,[...r,t]]}function HO(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 uX(e,t){return HO(e,(n,r)=>t.includes(r))}function aX(e){let t=gy(qt);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function qO(e){let[t,n]=e,r=JSON.stringify(t);function i(s){typeof r=="string"?r=typeof s=="string"?r+s:[aX(r),s]:r.push(typeof s=="string"?aX(s):s)}for(let s of n){let[o,a]=s;if(i(` +Name: ${jO(r)} +Error:`,i)}}var Dj,NCe,Lj=v(()=>{Pi();_r();MR();Dj={},NCe={}});function CCe(e){let t="error";DR(t,e),LR(t,b4t)}function b4t(){MJ=qt.onerror,qt.onerror=function(e,t,n,r,i){return UR("error",{column:r,error:i,line:n,msg:e,url:t}),MJ?MJ.apply(this,arguments):!1},qt.onerror.__SENTRY_INSTRUMENTED__=!0}var MJ,MCe=v(()=>{Wa();Lj();MJ=null});function DCe(e){let t="unhandledrejection";DR(t,e),LR(t,E4t)}function E4t(){DJ=qt.onunhandledrejection,qt.onunhandledrejection=function(e){return UR("unhandledrejection",e),DJ?DJ.apply(this,arguments):!0},qt.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}var DJ,LCe=v(()=>{Wa();Lj();DJ=null});function Mp(e){switch(UCe.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return Dp(e,Error)}}function Uj(e,t){return UCe.call(e)===`[object ${t}]`}function LJ(e){return Uj(e,"ErrorEvent")}function by(e){return Uj(e,"String")}function FR(e){return typeof e=="object"&&e!==null&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function HO(e){return e===null||FR(e)||typeof e!="object"&&typeof e!="function"}function pm(e){return Uj(e,"Object")}function UJ(e){return typeof Event<"u"&&Dp(e,Event)}function FJ(e){return typeof Element<"u"&&Dp(e,Element)}function jJ(e){return Uj(e,"RegExp")}function sa(e){return!!(e?.then&&typeof e.then=="function")}function HJ(e){return pm(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}function Dp(e,t){try{return e instanceof t}catch{return!1}}function qO(e){return!!(typeof e=="object"&&e!==null&&(e.__isVue||e._isVue||e.__v_isVNode))}var UCe,Ka=v(()=>{UCe=Object.prototype.toString});function FCe(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||T4t;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 v4t(e,t){let n=e,r=[];if(!n?.tagName)return"";if(_4t.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&&by(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 _4t,T4t,jCe=v(()=>{Ka();Wa();_4t=qt,T4t=80});function qJ(e,t,n){if(!(t in e))return;let r=e[t];if(typeof r!="function")return;let i=n(r);typeof i=="function"&&BCe(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 BCe(e,t){try{let n=t.prototype||{};e.prototype=t.prototype=n,zs(e,"__sentry_original__",t)}catch{}}function BJ(e){return e.__sentry_original__}function Fj(e){if(Mp(e))return{message:e.message,name:e.name,stack:e.stack,...qCe(e)};if(UJ(e)){let t={type:e.type,target:HCe(e.target),currentTarget:HCe(e.currentTarget),...qCe(e)};return typeof CustomEvent<"u"&&Dp(e,CustomEvent)&&(t.detail=e.detail),t}else return e}function HCe(e){try{return FJ(e)?FCe(e):Object.prototype.toString.call(e)}catch{return""}}function qCe(e){return typeof e=="object"&&e!==null?Object.fromEntries(Object.entries(e)):{}}function zJ(e){let t=Object.keys(Fj(e));return t.sort(),t[0]?t.join(", "):"[object has no keys]"}var nf=v(()=>{Pi();jCe();_r();Ka()});function wE(e){if(jR!==void 0)return jR?jR(e):e();let t=Symbol.for("__SENTRY_SAFE_RANDOM_ID_WRAPPER__"),n=qt;return t in n&&typeof n[t]=="function"?(jR=n[t],jR(e)):(jR=null,e())}function Do(){return wE(()=>Math.random())}function Vl(){return wE(()=>Date.now())}var jR,Ey=v(()=>{Wa()});function _y(e,t=0){return typeof e!="string"||t===0||e.length<=t?e:`${e.slice(0,t)}...`}function GJ(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}`),shm(e,r,n))}var vy=v(()=>{Ka();MR()});function R4t(){let e=qt;return e.crypto||e.msCrypto}function A4t(){return Do()*16}function mo(e=R4t()){try{if(e?.randomUUID)return wE(()=>e.randomUUID()).replace(/-/g,"")}catch{}return WJ||(WJ="10000000100040008000"+1e11),WJ.replace(/[018]/g,t=>(t^(A4t()&15)>>t/4).toString(16))}function zCe(e){return e.exception?.values?.[0]}function Ry(e){let{message:t,event_id:n}=e;if(t)return t;let r=zCe(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"":n||""}function YJ(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 HR(e,t){let n=zCe(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 KJ(e){return parseInt(e||"",10)}function ZJ(e){let t=e.match(w4t)||[],n=KJ(t[1]),r=KJ(t[2]),i=KJ(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 jj(e){if(GCe(e))return!0;try{zs(e,"__sentry_captured__",!0)}catch{}return!1}function GCe(e){try{return e.__sentry_captured__}catch{}}var WJ,w4t,Lp=v(()=>{nf();Ey();Wa();w4t=/^(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 mm(){return Vl()/WCe}function k4t(){let{performance:e}=qt;if(!e?.now||!e.timeOrigin)return mm;let t=e.timeOrigin;return()=>(t+wE(()=>e.now()))/WCe}function Ay(){return(VCe??(VCe=k4t()))()}var WCe,VCe,wy=v(()=>{Ey();Wa();WCe=1e3});function KCe(e){let t=Ay(),n={sid:mo(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>I4t(n)};return e&&gm(n,e),n}function gm(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||Ay(),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 YCe(e,t){let n={};t?n={status:t}:e.status==="ok"&&(n={status:"exited"}),gm(e,n)}function I4t(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 Hj=v(()=>{Lp();wy()});function ky(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]=ky(r[i],t[i],n-1));return r}var qj=v(()=>{});function Ya(){return mo()}function Za(){return mo().substring(16)}var Iy=v(()=>{Lp()});function kE(e,t){t?zs(e,JJ,t):delete e[JJ]}function IE(e){return e[JJ]}var JJ,Bj=v(()=>{nf();JJ="_sentrySpan"});var x4t,uu,BO=v(()=>{Pi();Hj();_r();Ka();qj();Lp();Iy();Ey();Bj();vy();wy();x4t=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,kE(t,IE(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&&gm(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():pm(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,kE(this,void 0),this._attachments=[],this.setPropagationContext({traceId:Ya(),sampleRand:Do()}),this._notifyScopeListeners(),this}addBreadcrumb(t,n){let r=typeof n=="number"?n:x4t;if(r<=0)return this;let i={timestamp:mm(),...t,message:t.message?_y(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:IE(this),conversationId:this._conversationId}}setSDKProcessingMetadata(t){return this._sdkProcessingMetadata=ky(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 qR(){return tf("defaultCurrentScope",()=>new uu)}function Wl(){return tf("defaultIsolationScope",()=>new uu)}var XJ=v(()=>{Gl();BO()});var ZCe,JCe,zj,O4t,QJ=v(()=>{ZCe=e=>e instanceof Promise&&!e[JCe],JCe=Symbol("chained PromiseLike"),zj=(e,t,n)=>{let r=e.then(i=>(t(i),i),i=>{throw n(i),i});return ZCe(r)&&ZCe(e)?r:O4t(e,r)},O4t=(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,{[JCe]:!0}),t}});function BR(){let e=xc(),t=Sy(e);return t.stack=t.stack||new $J(qR(),Wl())}function P4t(e){return BR().withScope(e)}function N4t(e,t){let n=BR();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function XCe(e){return BR().withScope(()=>e(BR().getIsolationScope()))}function QCe(){return{withIsolationScope:XCe,withScope:P4t,withSetScope:N4t,withSetIsolationScope:(e,t)=>XCe(t),getCurrentScope:()=>BR().getScope(),getIsolationScope:()=>BR().getIsolationScope()}}var $J,$Ce=v(()=>{XJ();BO();QJ();Ka();Gl();$J=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)?zj(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 eX(e){let t=xc(),n=Sy(t);n.acs=e}function rf(e){let t=Sy(e);return t.acs?t.acs:QCe()}var zR=v(()=>{Gl();$Ce()});function tMe(){return eMe?.()}function tX(){return eMe!==void 0}function Fn(){let e=xc();return rf(e).getCurrentScope()}function vn(){let e=xc();return rf(e).getIsolationScope()}function Gj(){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 zO(...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 Fn().getClient()}function xE(e){let t=tMe();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 eMe,go=v(()=>{zR();Gl();BO();Iy()});var Wi,sf,nX,zt,At,rX,iX,Kl,GR,VR,sX,oX,aX,cX,xy,uX,Lo=v(()=>{Wi="sentry.source",sf="sentry.sample_rate",nX="sentry.previous_trace_sample_rate",zt="sentry.op",At="sentry.origin",rX="sentry.measurement_unit",iX="sentry.measurement_value",Kl="sentry.custom_span_name",GR="sentry.profile_id",VR="sentry.exclusive_time",sX="cache.hit",oX="cache.key",aX="cache.item_size",cX="http.request.method",xy="url.full",uX="gen_ai.conversation.id"});function ym(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 nMe=v(()=>{});function C4t(e){try{let t=qt.WeakRef;if(typeof t=="function")return new t(e)}catch{}return e}function M4t(e){if(e){if(typeof e=="object"&&"deref"in e&&typeof e.deref=="function")try{return e.deref()}catch{return}return e}}function GO(e,t,n){e&&(zs(e,iMe,C4t(n)),zs(e,rMe,t))}function of(e){let t=e;return{scope:t[rMe],isolationScope:M4t(t[iMe])}}var rMe,iMe,WR=v(()=>{nf();Wa();rMe="_sentryScope",iMe="_sentryIsolationScope"});function Sm(e){let t=PE(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 OE(e){if(!e)return;let t=Object.entries(e).reduce((n,[r,i])=>(i&&(n[`${Up}${r}`]=i),n),{});return Vj(t)}function PE(e){if(!(!e||!by(e)&&!Array.isArray(e)))return Array.isArray(e)?e.reduce((t,n)=>{let r=sMe(n);return Object.entries(r).forEach(([i,s])=>{t[i]=s}),t},{}):sMe(e)}function sMe(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 Vj(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>oMe?(Fe&&Z.warn(`Not adding key: ${n} with val: ${r} to baggage header due to exceeding baggage size limits.`),t):o},"")}var Up,oMe,VO=v(()=>{Pi();_r();Ka();Up="sentry-",oMe=8192});function U4t(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 F4t(e){let t=L4t.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 aMe({host:s,pass:i,path:c,projectId:u,port:o,protocol:n,publicKey:r})}function aMe(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function j4t(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+$/)?U4t(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 H4t(e){return e.match(D4t)?.[1]}function Wj(e){let t=e.getOptions(),{host:n}=e.getDsn()||{},r;return t.orgId?r=String(t.orgId):n&&(r=H4t(n)),r}function cMe(e){let t=typeof e=="string"?F4t(e):aMe(e);if(!(!t||!j4t(t)))return t}var D4t,L4t,bm=v(()=>{Pi();_r();D4t=/^o(\d+)\./,L4t=/^(?:(\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 KR=v(()=>{});function uMe(e){if(!e)return;let t=e.match(Kj);if(!t)return;let n;return t[3]==="1"?n=!0:t[3]==="0"&&(n=!1),{traceId:t[1],parentSampled:n,parentSpanId:t[2]}}function WO(e,t){let n=uMe(e),r=Sm(t);if(!n?.traceId)return{traceId:Ya(),sampleRand:Do()};let i=q4t(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 Oy(e=Ya(),t=Za(),n){let r="";return n!==void 0&&(r=n?"-1":"-0"),`${e}-${t}${r}`}function Py(e=Ya(),t=Za(),n){return`00-${e}-${t}-${n?"01":"00"}`}function q4t(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 lX(e,t){let n=Wj(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 Kj,Yj=v(()=>{_r();VO();bm();KR();Iy();Ey();Kj=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$")});function fMe(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 Ny(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 Qj(e){let{traceId:t,spanId:n}=e.spanContext(),r=af(e);return Oy(t,n,r)}function pMe(e){let{traceId:t,spanId:n}=e.spanContext(),r=af(e);return Py(t,n,r)}function NE(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===Xj,attributes:s,...i}))}function lu(e){return typeof e=="number"?dMe(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?dMe(e.getTime()):Ay()}function dMe(e){return e>9999999999?e/1e3:e}function vt(e){if(G4t(e))return e.getSpanJSON();let{spanId:t,traceId:n}=e.spanContext();if(z4t(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:CE(a),op:r[zt],origin:r[At],links:NE(c)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function z4t(e){let t=e;return!!t.attributes&&!!t.startTime&&!!t.name&&!!t.endTime&&!!t.status}function G4t(e){return typeof e.getSpanJSON=="function"}function af(e){let{traceFlags:t}=e.spanContext();return t===Xj}function CE(e){if(!(!e||e.code===0))return e.code===1?"ok":e.message||"internal_error"}function YR(e,t){let n=e[dX]||e;zs(t,dX,n),e[KO]?e[KO].add(t):zs(e,KO,new Set([t]))}function $j(e){let t=new Set;function n(r){if(!t.has(r)&&af(r)){t.add(r);let i=r[KO]?Array.from(r[KO]):[];for(let s of i)n(s)}}return n(e),Array.from(t)}function cs(e){return e[dX]||e}function Yl(){let e=xc(),t=rf(e);return t.getActiveSpan?t.getActiveSpan():IE(Fn())}function YO(){lMe||(xs(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),lMe=!0)}var Jj,Xj,lMe,KO,dX,Oc=v(()=>{zR();Gl();go();Lo();WR();nf();Iy();wy();Yj();_r();Bj();Jj=0,Xj=1,lMe=!1;KO="_sentryChildSpans",dX="_sentryRootSpan"});function mMe(){if(hMe)return;function e(){let t=Yl(),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",hMe=!0,CCe(e),DCe(e)}var hMe,gMe=v(()=>{Pi();MCe();LCe();_r();Oc();hMe=!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 yMe(e){Z.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function JO(e,t){if(!t?.length||!e.description)return!1;for(let n of t){if(V4t(n)){if(hm(e.description,n))return Fe&&yMe(e),!0;continue}if(!n.name&&!n.op)continue;let r=n.name?hm(e.description,n.name):!0,i=n.op?e.op&&hm(e.op,n.op):!0;if(r&&i)return Fe&&yMe(e),!0}return!1}function SMe(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 V4t(e){return typeof e=="string"||e instanceof RegExp}var fX=v(()=>{Pi();_r();vy()});var ZR,eH=v(()=>{ZR="production"});function tH(e,t){zs(e,bMe,t)}function pX(e,t){let n=t.getOptions(),{publicKey:r}=t.getDsn()||{},i={environment:n.environment||ZR,release:n.release,public_key:r,trace_id:e,org_id:Wj(t)};return t.emit("createDsc",i),i}function Fp(e,t){let n=t.getPropagationContext();return n.dsc||pX(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[nX];function a(h){return(typeof o=="number"||typeof o=="string")&&(h.sample_rate=`${o}`),h}let c=n[bMe];if(c)return a(c);let u=s?.get("sentry.dsc"),l=u&&Sm(u);if(l)return a(l);let d=pX(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 bMe,Em=v(()=>{eH();go();Lo();VO();bm();ZO();nf();Oc();WR();bMe="_frozenDsc"});var Cy,EMe=v(()=>{Iy();Oc();Cy=class{constructor(t={}){this._traceId=t.traceId||Ya(),this._spanId=t.spanId||Za()}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:Jj}}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 hX("",e,t,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function mX(e,t=3,n=100*1024){let r=cf(e,t);return Z4t(r)>n?mX(e,t-1,n):r}function hX(e,t,n=1/0,r=1/0,i=J4t()){let[s,o]=i;if(t==null||["boolean","string"].includes(typeof t)||typeof t=="number"&&Number.isFinite(t))return t;let a=W4t(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 hX("",p,c-1,r,i)}catch{}let l=Array.isArray(t)?[]:{},d=0,f=Fj(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]=hX(p,h,c-1,r,i),d++}return o(t),l}function W4t(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(qO(t))return Mj(t);if(HJ(t))return"[SyntheticEvent]";if(typeof t=="number"&&!Number.isFinite(t))return`[${t}]`;if(typeof t=="function")return`[Function: ${jO(t)}]`;if(typeof t=="symbol")return`[${String(t)}]`;if(typeof t=="bigint")return`[BigInt: ${String(t)}]`;let n=K4t(t);return/^HTML(\w*)Element$/.test(n)?`[HTMLElement: ${n}]`:`[object ${n}]`}catch(n){return`**non-serializable** (${n})`}}function K4t(e){let t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:"null prototype"}function Y4t(e){return~-encodeURI(e).split(/%..|./).length}function Z4t(e){return Y4t(JSON.stringify(e))}function J4t(){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 nH=v(()=>{Ka();nf();MR()});function Pc(e,t=[]){return[e,t]}function yX(e,t){let[n,r]=e;return[n,[...r,t]]}function XO(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 SX(e,t){return XO(e,(n,r)=>t.includes(r))}function gX(e){let t=Sy(qt);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function QO(e){let[t,n]=e,r=JSON.stringify(t);function i(s){typeof r=="string"?r=typeof s=="string"?r+s:[gX(r),s]:r.push(typeof s=="string"?gX(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(of(a))}i(c)}}return typeof r=="string"?r:M3t(r)}function M3t(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 lX(e){return[{type:"span"},e]}function dX(e){let t=typeof e.data=="string"?aX(e.data):e.data;return[{type:"attachment",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}function L3t(e){return e in lMe}function Yj(e){return L3t(e)?lMe[e]:e}function Jj(e){if(!e?.sdk)return;let{name:t,version:n}=e.sdk;return{name:t,version:n}}function fX(e,t,n,r){let i=e.sdkProcessingMetadata?.dynamicSamplingContext;return{event_id:e.event_id,sent_at:new Date().toISOString(),...t&&{sdk:t},...!!n&&r&&{dsn:ol(r)},...i&&{trace:i}}}var lMe,Em=v(()=>{ql();ym();Zj();Va();lMe={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 D3t(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 dMe(e,t,n,r){let i=Jj(n),s={sent_at:new Date().toISOString(),...i&&{sdk:i},...!!r&&t&&{dsn:ol(t)}},o="aggregates"in e?[{type:"sessions"},e]:[{type:"session"},e.toJSON()];return Oc(s,[o])}function fMe(e,t,n,r){let i=Jj(n),s=e.type&&e.type!=="replay_event"?e.type:"event";D3t(e,n?.sdk);let o=fX(e,i,r,t);return delete e.sdkProcessingMetadata,Oc(o,[[{type:s},e]])}function pMe(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:ol(i)}},{beforeSendSpan:a,ignoreSpans:c}=t?.getOptions()||{},u=c?.length?e.filter(p=>!jO(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||(UO(),h)}:vt,f=[];for(let p of u){let h=d(p);h&&f.push(lX(h))}return Oc(o,f)}var pX=v(()=>{Sm();ym();Em();rX();xc()});function BO(e){if(!Fe)return;let{description:t="< unknown name >",op:n="< unknown op >",parent_span_id:r}=vt(e),{spanId:i}=e.spanContext(),s=sf(e),o=cs(e),a=o===e,c=`[Tracing] Starting ${s?"sampled":"unsampled"} ${a?"root ":""}span`,u=[`op: ${n}`,`name: ${t}`,`ID: ${i}`];if(r&&u.push(`parent ID: ${r}`),!a){let{op:l,description:d}=vt(o);u.push(`root ID: ${o.spanContext().spanId}`),l&&u.push(`root op: ${l}`),d&&u.push(`root description: ${d}`)}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:X4t(r)}function X4t(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 bX(e){return[{type:"span"},e]}function EX(e){let t=typeof e.data=="string"?gX(e.data):e.data;return[{type:"attachment",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}function Q4t(e){return e in _Me}function rH(e){return Q4t(e)?_Me[e]:e}function iH(e){if(!e?.sdk)return;let{name:t,version:n}=e.sdk;return{name:t,version:n}}function _X(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 _Me,_m=v(()=>{Gl();bm();nH();Wa();_Me={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 $4t(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 TMe(e,t,n,r){let i=iH(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 vMe(e,t,n,r){let i=iH(n),s=e.type&&e.type!=="replay_event"?e.type:"event";$4t(e,n?.sdk);let o=_X(e,i,r,t);return delete e.sdkProcessingMetadata,Pc(o,[[{type:s},e]])}function RMe(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=>!JO(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||(YO(),h)}:vt,f=[];for(let p of u){let h=d(p);h&&f.push(bX(h))}return Pc(o,f)}var TX=v(()=>{Em();bm();_m();fX();Oc()});function $O(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 GO(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 Xj=v(()=>{Ni();_r();xc()});function Pb(e){if(!e||e.length===0)return;let t={};return e.forEach(n=>{let r=n.attributes||{},i=r[Z7],s=r[Y7];typeof i=="string"&&typeof s=="number"&&(t[n.name]={value:s,unit:i})}),t}var hX=v(()=>{Do()});function mMe(e){return e&&typeof e=="number"||e instanceof Date||Array.isArray(e)}function gMe(e){return!!e.start_timestamp&&!!e.timestamp&&!!e.span_id&&!!e.trace_id}function U3t(e){return e instanceof GA&&e.isStandaloneSpan()}function F3t(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 hMe,GA,yMe=v(()=>{go();Ni();pX();Do();_r();wy();xc();Ay();Sm();Xj();hX();jA();hMe=1e3,GA=class{constructor(t={}){this._traceId=t.traceId||Ka(),this._spanId=t.spanId||Za(),this._startTime=t.startTimestamp||vy(),this._links=t.links,this._attributes={},this.setAttributes({[Rt]:"manual",[Gt]: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?Gj:Bj}}setAttribute(t,n){return n===void 0?delete this._attributes[t]:this._attributes[t]=n,this}setAttributes(t){return Object.keys(t).forEach(n=>this.setAttribute(n,t[n])),this}updateStartTime(t){this._startTime=uu(t)}setStatus(t){return this._status=t,this}updateName(t){return this._name=t,this.setAttribute(Wi,"custom"),this}end(t){this._endTime||(this._endTime=uu(t),GO(this),this._onSpanEnded())}getSpanJSON(){return{data:this._attributes,description:this._name,op:this._attributes[Gt],parent_span_id:this._parentSpanId,span_id:this._spanId,start_timestamp:this._startTime,status:Nb(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[Rt],profile_id:this._attributes[UA],exclusive_time:this._attributes[FA],measurements:Pb(this._events),is_segment:this._isStandaloneSpan&&cs(this)===this||void 0,segment_id:this._isStandaloneSpan?cs(this).spanContext().spanId:void 0,links:Ob(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(t,n,r){Fe&&Y.log("[Tracing] Adding an event to span:",t);let i=mMe(n)?n:r||vy(),s=mMe(n)?{}:n||{},o={name:t,time:uu(i),attributes:s};return this._events.push(o),this}isStandaloneSpan(){return!!this._isStandaloneSpan}_onSpanEnded(){let t=ct();if(t&&t.emit("spanEnd",this),!(this._isStandaloneSpan||this===cs(this)))return;if(this._isStandaloneSpan){this._sampled?F3t(pMe([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&&(rf(this).scope||Un()).captureEvent(r)}_convertSpanToTransaction(){if(!gMe(vt(this)))return;this._name||(Fe&&Y.warn("Transaction has no name, falling back to ``."),this._name="");let{scope:t,isolationScope:n}=rf(this),r=t?.getScopeData().sdkProcessingMetadata?.normalizedRequest;if(this._sampled!==!0)return;let s=Vj(this).filter(l=>l!==this&&!U3t(l)).map(l=>vt(l)).filter(gMe),o=this._attributes[Wi];delete this._attributes[zl],s.forEach(l=>{delete l.data[zl]});let a={contexts:{trace:tMe(this)},spans:s.length>hMe?s.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,hMe):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=Pb(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 af(e,t,n=()=>{},r=()=>{}){let i;try{i=e()}catch(s){throw t(s),n(),s}return j3t(i,t,n,r)}function j3t(e,t,n,r){return sa(e)?Lj(e,i=>{n(),r(i)},i=>{t(i),n()}):(n(),r(e),e)}var Qj=v(()=>{G7();Wa()});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=al(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();_r();FO();HA()});function cf(e,t){let n=VO();if(n.startSpan)return n.startSpan(e,t);let r=yX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ya(a,()=>EMe(s)(()=>{let u=Un(),l=SX(u,s),f=e.onlyIfParent&&!l?new Ny:gX({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return Rb(u,f),af(()=>t(f),()=>{let{status:p}=vt(f);f.isRecording()&&(!p||p==="ok")&&f.setStatus({code:2,message:"internal_error"})},()=>{f.end()})}))}function Uo(e,t){let n=VO();if(n.startSpanManual)return n.startSpanManual(e,t);let r=yX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ya(a,()=>EMe(s)(()=>{let u=Un(),l=SX(u,s),f=e.onlyIfParent&&!l?new Ny:gX({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return Rb(u,f),af(()=>t(f,()=>f.end()),()=>{let{status:p}=vt(f);f.isRecording()&&(!p||p==="ok")&&f.setStatus({code:2,message:"internal_error"})})}))}function eH(e){let t=VO();if(t.startInactiveSpan)return t.startInactiveSpan(e);let n=yX(e),{forceTransaction:r,parentSpan:i}=e;return(e.scope?o=>Ya(e.scope,o):i!==void 0?o=>zA(i,o):o=>o())(()=>{let o=Un(),a=SX(o,i);return e.onlyIfParent&&!a?new Ny:gX({parentSpan:a,spanArguments:n,forceTransaction:r,scope:o})})}function zA(e,t){let n=VO();return n.withActiveSpan?n.withActiveSpan(e,t):Ya(r=>(Rb(r,e||void 0),t(r)))}function VA(e){let t=VO();return t.suppressTracing?t.suppressTracing(e):Ya(n=>{n.setSDKProcessingMetadata({[$j]:!0});let r=e();return n.setSDKProcessingMetadata({[$j]:void 0}),r})}function gX({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,...Ns(o)};Kj(o,a)}return o}let i=vn(),s;if(e&&!n)s=H3t(e,r,t),qA(e,s);else if(e){let o=Ns(e),{traceId:a,spanId:c}=e.spanContext(),u=sf(e);s=SMe({traceId:a,parentSpanId:c,...t},r,u),Kj(s,o)}else{let{traceId:o,dsc:a,parentSpanId:c,sampled:u}={...i.getPropagationContext(),...r.getPropagationContext()};s=SMe({traceId:o,parentSpanId:c,...t},r,u),a&&Kj(s,a)}return BO(s),CO(s,r,i),s}function yX(e){let n={isStandalone:(e.experimental||{}).standalone,...e};if(e.startTime){let r={...n};return r.startTimestamp=uu(e.startTime),delete r.startTime,r}return n}function VO(){let e=Ic();return tf(e)}function SMe(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[$j]?[!1]:zO(i,{name:s,parentSampled:a,attributes:c,parentSampleRate:al(u.dsc?.sample_rate)},u.sampleRand),p=new GA({...e,attributes:{[Wi]:"custom",[nf]:d!==void 0&&f?d:void 0,...c},sampled:l});return!l&&r&&(Fe&&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 H3t(e,t,n){let{spanId:r,traceId:i}=e.spanContext(),s=t.getScopeData().sdkProcessingMetadata[$j]?!1:sf(e),o=s?new GA({...n,parentSpanId:r,traceId:i,sampled:s}):new Ny({traceId:i});qA(e,o);let a=ct();return a&&(a.emit("spanStart",o),n.endTimestamp&&a.emit("spanEnd",o)),o}function SX(e,t){if(t)return t;if(t===null)return;let n=wb(e);if(!n)return;let r=ct();return(r?r.getOptions():{}).parentSpanIsAlwaysRootSpan?cs(n):n}function EMe(e){return e!==void 0?t=>zA(e,t):t=>t()}var $j,Py=v(()=>{DA();ql();go();Ni();Do();_r();Qj();FO();HA();Mj();xc();Sm();Xj();mX();uMe();yMe();jA();$j="__SENTRY_SUPPRESS_TRACING__"});function bm(e){return new tH(t=>{t(e)})}function WA(e){return new tH((t,n)=>{n(e)})}var EX,bMe,_Me,tH,KA=v(()=>{Wa();EX=0,bMe=1,_Me=2;tH=class e{constructor(t){this._state=EX,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===EX)return;let t=this._handlers.slice();this._handlers=[],t.forEach(n=>{n[0]||(this._state===bMe&&n[1](this._value),this._state===_Me&&n[2](this._value),n[0]=!0)})}_runExecutor(t){let n=(s,o)=>{if(this._state===EX){if(sa(o)){o.then(r,i);return}this._state=s,this._value=o,this._executeHandlers()}},r=s=>{n(bMe,s)},i=s=>{n(_Me,s)};try{t(r,i)}catch(s){i(s)}}}});function TMe(e,t,n,r=0){try{let i=bX(t,n,e,r);return sa(i)?i:bm(i)}catch(i){return WA(i)}}function bX(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`),sa(s)?s.then(o=>bX(o,t,n,r+1)):bX(s,t,n,r+1)}var vMe=v(()=>{Ni();_r();Wa();KA()});function wMe(e){let t=qt._sentryDebugIds,n=qt._debugIds;if(!t&&!n)return{};let r=t?Object.keys(t):[],i=n?Object.keys(n):[];if(Cy&&r.length===AMe&&i.length===RMe)return Cy;AMe=r.length,RMe=i.length,Cy={},Cb||(Cb={});let s=(o,a)=>{for(let c of o){let u=a[c],l=Cb?.[c];if(l&&Cy&&u)Cy[l[0]]=u,Cb&&(Cb[c]=[l[0],u]);else if(u){let d=e(c);for(let f=d.length-1;f>=0;f--){let h=d[f]?.filename;if(h&&Cy&&Cb){Cy[h]=u,Cb[c]=[h,u];break}}}}};return t&&s(r,t),n&&s(i,n),Cy}var Cb,AMe,RMe,Cy,kMe=v(()=>{Va()});function xMe(e,t){let{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:s}=t;q3t(e,t),r&&z3t(e,r),V3t(e,n),B3t(e,i),G3t(e,s)}function IMe(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;WO(e,"extra",n),WO(e,"tags",r),WO(e,"attributes",i),WO(e,"user",s),WO(e,"contexts",o),e.sdkProcessingMetadata=Ry(e.sdkProcessingMetadata,c,2),a&&(e.level=a),h&&(e.transactionName=h),m&&(e.span=m),u.length&&(e.breadcrumbs=[...e.breadcrumbs,...u]),l.length&&(e.fingerprint=[...e.fingerprint,...l]),d.length&&(e.eventProcessors=[...e.eventProcessors,...d]),f.length&&(e.attachments=[...e.attachments,...f]),e.propagationContext={...e.propagationContext,...p}}function WO(e,t,n){e[t]=Ry(e[t],n,1)}function nH(e,t){let n=Dj().getScopeData();return e&&IMe(n,e.getScopeData()),t&&IMe(n,t.getScopeData()),n}function q3t(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 B3t(e,t){let n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function G3t(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function z3t(e,t){e.contexts={trace:Oy(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 V3t(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 _X=v(()=>{go();Sm();Cj();xc()});function OMe(e,t,n,r,i,s){let{normalizeDepth:o=3,normalizeMaxBreadth:a=1e3}=e,c={...t,event_id:t.event_id||n.event_id||mo(),timestamp:t.timestamp||pm()},u=n.integrations||e.integrations.map(g=>g.name);W3t(c,e),Y3t(c,u),i&&i.emit("applyFrameMetadata",t),t.type===void 0&&K3t(c,e.stackParser);let l=X3t(r,n.captureContext);n.mechanism&&CA(c,n.mechanism);let d=i?i.getEventProcessors():[],f=nH(s,l),p=[...n.attachments||[],...f.attachments];p.length&&(n.attachments=p),xMe(c,f);let h=[...d,...f.eventProcessors];return(n.data&&n.data.__sentry__===!0?bm(c):TMe(h,c,n)).then(g=>(g&&Z3t(g),typeof o=="number"&&o>0?J3t(g,o,a):g))}function W3t(e,t){let{environment:n,release:r,dist:i,maxValueLength:s}=t;e.environment=e.environment||n||BA,!e.release&&r&&(e.release=r),!e.dist&&i&&(e.dist=i);let o=e.request;o?.url&&s&&(o.url=Ey(o.url,s)),s&&e.exception?.values?.forEach(a=>{a.value&&(a.value=Ey(a.value,s))})}function K3t(e,t){let n=wMe(t);e.exception?.values?.forEach(r=>{r.stacktrace?.frames?.forEach(i=>{i.filename&&(i.debug_id=n[i.filename])})})}function Z3t(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 Y3t(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function J3t(e,t,n){if(!e)return null;let r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map(i=>({...i,...i.data&&{data:of(i.data,t,n)}}))},...e.user&&{user:of(e.user,t,n)},...e.contexts&&{contexts:of(e.contexts,t,n)},...e.extra&&{extra:of(e.extra,t,n)}};return e.contexts?.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=of(e.contexts.trace.data,t,n))),e.spans&&(r.spans=e.spans.map(i=>({...i,...i.data&&{data:of(i.data,t,n)}}))),e.contexts?.flags&&r.contexts&&(r.contexts.flags=of(e.contexts.flags,3,n)),r}function X3t(e,t){if(!t)return e;let n=e?e.clone():new cu;return n.update(t),n}function NMe(e){if(e)return Q3t(e)?{captureContext:e}:e4t(e)?{captureContext:e}:e}function Q3t(e){return e instanceof cu||typeof e=="function"}function e4t(e){return Object.keys(e).some(t=>$3t.includes(t))}var $3t,TX=v(()=>{Wj();vMe();NO();kMe();Lp();Zj();_X();_y();KA();Ay();$3t=["user","level","extra","contexts","tags","fingerprint","propagationContext"]});function Wt(e,t){return Un().captureException(e,NMe(t))}function rH(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 iH(){let e=ct();return e?.getOptions().enabled!==!1&&!!e?.getTransport()}function sH(e){let t=vn(),{user:n}=nH(t,Un()),{userAgent:r}=qt.navigator||{},i=DCe({user:n,...r&&{userAgent:r},...e}),s=t.getSession();return s?.status==="ok"&&hm(s,{status:"exited"}),KO(),t.setSession(i),i}function KO(){let e=vn(),n=Un().getSession()||e.getSession();n&&UCe(n),t4t(),e.setSession()}function t4t(){let e=vn(),t=ct(),n=e.getSession();n&&t&&t.captureSession(n)}var cl=v(()=>{go();Ni();Pj();_r();TX();_X();Va()});function r4t(e){let t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function i4t(e){return`${r4t(e)}${e.projectId}/envelope/`}function s4t(e,t){let n={sentry_version:n4t};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function PMe(e,t,n){return t||`${i4t(e)}?${s4t(e,n)}`}var n4t,CMe=v(()=>{n4t="7"});function o4t(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 AX(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 o4t(r)}function MMe(e,t){let n={};return t.forEach(r=>{r&&wX(e,r,n)}),n}function RX(e,t){for(let n of t)n?.afterAllSetup&&n.afterAllSetup(e)}function wX(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,!vX.includes(t.name)&&typeof t.setupOnce=="function"&&(t.setupOnce(),vX.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 vX,kX=v(()=>{Ni();_r();vX=[]});function LMe(e,t){return t?Ya(t,()=>{let n=Vl(),r=n?Oy(n):kb(t);return[n?Ns(n):Up(e,t),r]}):[void 0,void 0]}var DMe=v(()=>{go();Sm();xc()});function a4t(e){return[{type:"log",item_count:e.length,content_type:"application/vnd.sentry.items.log+json"},{items:e}]}function UMe(e,t,n,r){let i={};return t?.sdk&&(i.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(i.dsn=ol(r)),Oc(i,[a4t(e)])}var FMe=v(()=>{ym();Em()});function YA(e,t){let n=t??c4t(e)??[];if(n.length===0)return;let r=e.getOptions(),i=UMe(n,r._metadata,r.tunnel,e.getDsn());jMe().set(e,[]),e.emit("flushLogs"),e.sendEnvelope(i)}function c4t(e){return jMe().get(e)}function jMe(){return $d("clientToLogBufferMap",()=>new WeakMap)}var IX=v(()=>{ql();FMe()});function u4t(e){return[{type:"trace_metric",item_count:e.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{items:e}]}function HMe(e,t,n,r){let i={};return t?.sdk&&(i.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(i.dsn=ol(r)),Oc(i,[u4t(e)])}var qMe=v(()=>{ym();Em()});function BMe(e,t){let n=t??l4t(e)??[];if(n.length===0)return;let r=e.getOptions(),i=HMe(n,r._metadata,r.tunnel,e.getDsn());GMe().set(e,[]),e.emit("flushMetrics"),e.sendEnvelope(i)}function l4t(e){return GMe().get(e)}function GMe(){return $d("clientToMetricBufferMap",()=>new WeakMap)}var zMe=v(()=>{ql();qMe()});function oH(e){return typeof e=="object"&&typeof e.unref=="function"&&e.unref(),e}var xX=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=>oH(setTimeout(()=>u(!1),o)))];return Promise.race(c)}return{get $(){return Array.from(t)},add:i,drain:s}}var ZO,aH=v(()=>{KA();xX();ZO=Symbol.for("SentryBufferFullError")});function f4t(e,t=Bl()){let n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;let r=Date.parse(`${e}`);return isNaN(r)?d4t:r-t}function p4t(e,t){return e[t]||e.all||0}function VMe(e,t,n=Bl()){return p4t(e,t)>n}function WMe(e,{statusCode:t,headers:n},r=Bl()){let i={...e},s=n?.["x-sentry-rate-limits"],o=n?.["retry-after"];if(s)for(let a of s.trim().split(",")){let[c,u,,,l]=a.split(":",5),d=parseInt(c,10),f=(isNaN(d)?60:d)*1e3;if(!u)i.all=r+f;else for(let p of u.split(";"))p==="metric_bucket"?(!l||l.split(";").includes("custom"))&&(i[p]=r+f):i[p]=r+f}else o?i.all=r+f4t(o,r):t===429&&(i.all=r+60*1e3);return i}var d4t,KMe=v(()=>{Sy();d4t=60*1e3});function JO(e,t,n=JA(e.bufferSize||YO)){let r={},i=o=>n.drain(o);function s(o){let a=[];if(HO(o,(d,f)=>{let p=Yj(f);VMe(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(uX(c,["client_report"])){Fe&&Y.warn(`Dropping client report. Will not send outcomes (reason: ${d}).`);return}HO(c,(f,p)=>{e.recordDroppedEvent(d,Yj(p))})},l=()=>t({body:qO(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=WMe(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===ZO)return Fe&&Y.error("Skipped sending event because buffer is full."),u("queue_overflow"),Promise.resolve({});throw d})}return{send:s,flush:i}}var YO,cH=v(()=>{Ni();_r();Em();aH();KMe();YO=64});function ZMe(e,t,n){let r=[{type:"client_report"},{timestamp:n||pm(),discarded_events:e}];return Oc(t?{dsn:t}:{},[r])}var YMe=v(()=>{Em();Ay()});function uH(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 OX=v(()=>{});function JMe(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 XMe(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 QMe=v(()=>{Do()});function lH(e){return{message:e,[oLe]:!0}}function NX(e){return{message:e,[aLe]:!0}}function tLe(e){return!!e&&typeof e=="object"&&oLe in e}function nLe(e){return!!e&&typeof e=="object"&&aLe in e}function rLe(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=oH(setTimeout(()=>{i(e)},h4t)))}),e.on("flush",()=>{i(e)})}function iLe(e){return e==="replay_event"?"replay":e||"error"}function m4t(e,t){let n=`${t} must return \`null\` or a valid event.`;if(sa(e))return e.then(r=>{if(!dm(r)&&r!==null)throw lH(n);return r},r=>{throw lH(`${t} rejected with ${r}`)});if(!dm(e)&&e!==null)throw lH(n);return e}function g4t(e,t,n,r){let{beforeSend:i,beforeSendTransaction:s,beforeSendSpan:o,ignoreSpans:a}=t,c=n;if(PX(c)&&i)return i(c,r);if(cLe(c)){if(o||a){let u=JMe(c);if(a?.length&&jO(u,a))return null;if(o){let l=o(u);l?c=Ry(n,XMe(l)):UO()}if(c.spans){let l=[],d=c.spans;for(let p of d){if(a?.length&&jO(p,a)){aMe(d,p);continue}if(o){let h=o(p);h?l.push(h):(UO(),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 PX(e){return e.type===void 0}function cLe(e){return e.type==="transaction"}function y4t(e){let t=0;return e.name&&(t+=e.name.length*2),t+=8,t+uLe(e.attributes)}function S4t(e){let t=0;return e.message&&(t+=e.message.length*2),t+uLe(e.attributes)}function uLe(e){if(!e)return 0;let t=0;return Object.values(e).forEach(n=>{Array.isArray(n)?t+=n.length*sLe(n[0]):xO(n)?t+=sLe(n):t+=100}),t}function sLe(e){return typeof e=="string"?e.length*2:typeof e=="number"?8:typeof e=="boolean"?4:0}var $Me,eLe,oLe,aLe,h4t,dH,lLe=v(()=>{CMe();Wj();go();Ni();pX();kX();IX();zMe();Pj();Sm();cH();YMe();_r();ym();Em();OX();Wa();Cj();Lp();HA();TX();aH();Sy();rX();xc();KA();xX();QMe();$Me="Not capturing exception because it's already been captured.",eLe="Discarded session because of missing or non-string release",oLe=Symbol.for("SentryInternalError"),aLe=Symbol.for("SentryDoNotSendEventError"),h4t=5e3;dH=class{constructor(t){if(this._options=t,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=JA(t.transportOptions?.bufferSize??YO),t.dsn?this._dsn=XCe(t.dsn):Fe&&Y.warn("No DSN provided, client will not send events."),this._dsn){let r=PMe(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&&rLe(this,"afterCaptureLog","flushLogs",S4t,YA),(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)&&rLe(this,"afterCaptureMetric","flushMetrics",y4t,BMe)}captureException(t,n,r){let i=mo();if(Nj(t))return Fe&&Y.log($Me),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=NA(t)?t:String(t),a=xO(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&&Nj(n.originalException))return Fe&&Y.log($Me),i;let s={event_id:i,...n},o=t.sdkProcessingMetadata||{},a=o.capturedSpanScope,c=o.capturedSpanIsolationScope,u=iLe(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];wX(this,t,this._integrations),n||RX(this,[t])}sendEvent(t,n={}){this.emit("beforeSendEvent",t,n);let r=fMe(t,this._dsn,this._options._metadata,this._options.tunnel);for(let i of n.attachments||[])r=cX(r,dX(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(eLe);return}s.release=s.release||n,s.environment=s.environment||r,t.attrs=s}else{if(!t.release&&!n){Fe&&Y.warn(eLe);return}t.release=t.release||n,t.environment=t.environment||r}this.emit("beforeSendSession",t);let i=dMe(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=MMe(this,t),RX(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),OMe(s,t,n,r,this,i).then(a=>{if(a===null)return a;this.emit("postprocessEvent",a,n),a.contexts={trace:{...a.contexts?.trace,...kb(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&&PX(t)&&Y.log(`Captured error event \`${uH(t)[0]||""}\``),this._processEvent(t,n,r,i).then(s=>s.event_id,s=>{Fe&&(nLe(s)?Y.log(s.message):tLe(s)?Y.warn(s.message):Y.warn(s))})}_processEvent(t,n,r,i){let s=this.getOptions(),{sampleRate:o}=s,a=cLe(t),c=PX(t),l=`before send for type \`${t.type||"error"}\``,d=typeof o>"u"?void 0:al(o);if(c&&typeof d=="number"&&Lo()>d)return this.recordDroppedEvent("sample_rate","error"),WA(NX(`Discarding event because it's not included in the random sample (sampling rate = ${o})`));let f=iLe(t.type);return this._prepareEvent(t,n,r,i).then(p=>{if(p===null)throw this.recordDroppedEvent("event_processor",f),NX("An event processor returned `null`, will not send event.");if(n.data?.__sentry__===!0)return p;let m=g4t(this,s,p,n);return m4t(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 NX(`${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 nLe(p)||tLe(p)?p:(this.captureException(p,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:p}),lH(`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===ZO&&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=ZMe(t,this._options.tunnel&&ol(this._dsn));this.sendEnvelope(n)}}});function dLe(e,t,n,r,i){let s={sent_at:new Date().toISOString()};n?.sdk&&(s.sdk={name:n.sdk.name,version:n.sdk.version}),r&&i&&(s.dsn=ol(i)),t&&(s.trace=t);let o=E4t(e);return Oc(s,[o])}function E4t(e){return[{type:"check_in"},e]}var fLe=v(()=>{ym();Em()});function pLe(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 hLe=v(()=>{});function mLe(e,t){return e(t.stack||"",1)}function b4t(e){return Cp(e)&&"__sentry_fetch_url_host__"in e&&typeof e.__sentry_fetch_url_host__=="string"}function _4t(e){return b4t(e)?`${e.message} (${e.__sentry_fetch_url_host__})`:e.message}function CX(e,t){let n={type:t.name||t.constructor.name,value:_4t(t)},r=mLe(e,t);return r.length&&(n.stacktrace={frames:r}),n}function T4t(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];if(n instanceof Error)return n}}function v4t(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=M7(e);if(k7(e))return`Event \`ErrorEvent\` captured as exception with message \`${e.message}\``;let n=A4t(e);return`${n&&n!=="Object"?`'${n}'`:"Object"} captured as exception with keys: ${t}`}function A4t(e){try{let t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}function R4t(e,t,n,r){if(Cp(n))return[n,void 0];if(t.synthetic=!0,dm(n)){let s=e?.getOptions().normalizeDepth,o={__serialized__:oX(n,s)},a=T4t(n);if(a)return[a,o];let c=v4t(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 gLe(e,t,n,r){let s=r?.data&&r.data.mechanism||{handled:!0,type:"generic"},[o,a]=R4t(e,s,n,r),c={exception:{values:[CX(t,o)]}};return a&&(c.extra=a),j7(c,void 0,void 0),CA(c,s),{...c,event_id:r?.event_id}}function yLe(e,t,n="info",r,i){let s={event_id:r?.event_id,level:n};if(i&&r?.syntheticException){let o=mLe(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 MX=v(()=>{Wa();Lp();Zj();ef()});function SLe(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 XO,ELe=v(()=>{fLe();lLe();go();Ni();sMe();_r();Lp();cH();hLe();MX();aH();KA();DMe();XO=class extends dH{constructor(t){iMe(),pLe(t),super(t),this._setUpMetricsProcessing()}eventFromException(t,n){let r=gLe(this,this._options.stackParser,t,n);return r.level="error",bm(r)}eventFromMessage(t,n="info",r){return bm(yLe(this._options.stackParser,t,n,r,this._options.attachStacktrace))}captureException(t,n,r){return SLe(n),super.captureException(t,n,r)}captureEvent(t,n,r){return!t.type&&t.exception?.values&&t.exception.values.length>0&&SLe(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&&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]=LMe(this,r);d&&(u.contexts={trace:d});let f=dLe(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(YO)}_prepareEvent(t,n,r,i){return this._options.platform&&(t.platform=t.platform||this._options.platform),this._options.runtime&&(t.contexts={...t.contexts,runtime:t.contexts?.runtime||this._options.runtime}),this._options.serverName&&(t.server_name=t.server_name||this._options.serverName),super._prepareEvent(t,n,r,i)}_setUpMetricsProcessing(){this.on("processMetric",t=>{this._options.serverName&&(t.attributes={"server.address":this._options.serverName,...t.attributes})})}}});function DX(e){e.forEach(t=>{LX.add(t),Fe&&Y.log(`AI provider "${t}" wrapping will be skipped`)})}function Mb(e){return LX.has(e)}function UX(){LX.clear(),Fe&&Y.log("Cleared AI provider skip registrations")}var LX,bLe=v(()=>{Ni();_r();LX=new Set});function XA(e,t){let n=String(e).toLowerCase();return w4t.has(n)?!1:k4t.has(n)?!0:t?.strict?null:!!e}var w4t,k4t,_Le=v(()=>{w4t=new Set(["false","f","n","no","off","0"]),k4t=new Set(["true","t","y","yes","on","1"])});function FX(e){return"isRelative"in e}function QO(e,t){let n=e.indexOf("://")<=0&&e.indexOf("//")!==0,r=t??(n?I4t: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 TLe(e){if(FX(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 x4t(e,t,n,r){let i=n?.method?.toUpperCase()??"GET",s=r||(e?t==="client"?TLe(e):e.pathname:"/");return`${i} ${s}`}function jX(e,t,n,r,i){let s={[Rt]:n,[Wi]:"url"};return i&&(s[t==="server"?"http.route":"url.template"]=i,s[Wi]="route"),r?.method&&(s[$7]=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")),FX(e)||(s[ky]=e.href,e.port&&(s["url.port"]=e.port),e.protocol&&(s["url.scheme"]=e.protocol),e.hostname&&(s[t==="server"?"server.address":"url.domain"]=e.hostname))),[x4t(e,t,r,i),s]}function My(e){if(!e)return{};let t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};let n=t[6]||"",r=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],search:n,hash:r,relative:t[5]+n+r}}function _m(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 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 I4t,vLe=v(()=>{Do();I4t="thismessage:/"});function Lb(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 ALe=v(()=>{vj()});function $A(e={}){let t=e.client||ct();if(!iH()||!t)return{};let n=Ic(),r=tf(n);if(r.getTraceData)return r.getTraceData(e);let i=e.scope||Un(),s=e.span||Vl();if(!s&&W7())return{};let o=s?zj(s):O4t(i),a=s?Ns(s):Up(t,i),c=Ib(a);if(!jj.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?nMe(s):N4t(i)),l}function O4t(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Iy(t,r,n)}function N4t(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return xy(t,r,n)}var RLe=v(()=>{DA();ql();go();cl();_r();xc();Sm();MO();Hj()});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(wLe,e),r;let i=by(e,t);return n?.set(e,i),Fe&&!i&&Y.log(wLe,e),i}var wLe,kLe=v(()=>{Ni();_r();_y();wLe="[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:"});function HX(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 ILe=v(()=>{});function PLe(e){let t=Object.create(null);try{Object.entries(e).forEach(([n,r])=>{typeof r=="string"&&(t[n]=r)})}catch{}return t}function $O(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=P4t({url:o,host:r,protocol:s}),c=e.body||void 0,u=e.cookies;return{url:a,method:e.method,query_string:CLe(o),headers:PLe(t),cookies:u,data:c}}function P4t({url:e,protocol:t,host:n}){if(e?.startsWith("http"))return e;if(e&&n)return`${t}://${n}${e}`}function fH(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();NLe(r,o,y,m,t,n)}}else NLe(r,o,"",s,t,n)})}catch{}return r}function OLe(e){return e.replace(/-/g,"_")}function NLe(e,t,n,r,i,s){let o=M4t(n||t,r,i);if(o==null)return;let a=`http.${s}.header.${OLe(t)}${n?`.${OLe(n)}`:""}`;e[a]=o}function M4t(e,t,n){if(n?xLe.some(i=>e.includes(i)):[...C4t,...xLe].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 CLe(e){if(e)try{let t=new URL(e,"http://s.io").search.slice(1);return t.length?t:void 0}catch{return}}var xLe,C4t,MLe=v(()=>{xLe=["auth","token","secret","session","password","passwd","pwd","key","jwt","bearer","sso","saml","csrf","xsrf","credentials","set-cookie","cookie"],C4t=["x-forwarded-","-user"]});function Wl(e,t){let n=ct(),r=vn();if(!n)return;let{beforeBreadcrumb:i=null,maxBreadcrumbs:s=L4t}=n.getOptions();if(s<=0)return;let a={timestamp:pm(),...e},c=i?xs(()=>i(a,t)):a;c!==null&&(n.emit&&n.emit("beforeAddBreadcrumb",c,t),r.addBreadcrumb(c,s))}var L4t,qX=v(()=>{go();_r();Ay();L4t=100});var LLe,D4t,DLe,U4t,pH,ULe=v(()=>{go();ef();D4t="FunctionToString",DLe=new WeakMap,U4t=(()=>({name:D4t,setupOnce(){LLe=Function.prototype.toString;try{Function.prototype.toString=function(...e){let t=C7(this),n=DLe.has(ct())&&t!==void 0?t:this;return LLe.apply(n,e)}}catch{}},setup(e){DLe.set(e,!0)}})),pH=U4t});function FLe(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:F4t],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function H4t(e,t){if(e.type){if(e.type==="transaction"&&B4t(e,t.ignoreTransactions))return Fe&&Y.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. -Event: ${Ty(e)}`),!0}else{if(q4t(e,t.ignoreErrors))return Fe&&Y.warn(`Event dropped due to being matched by \`ignoreErrors\` option. -Event: ${Ty(e)}`),!0;if(W4t(e))return Fe&&Y.warn(`Event dropped due to not having an error message, error type or stacktrace. -Event: ${Ty(e)}`),!0;if(G4t(e,t.denyUrls))return Fe&&Y.warn(`Event dropped due to being matched by \`denyUrls\` option. -Event: ${Ty(e)}. -Url: ${hH(e)}`),!0;if(!z4t(e,t.allowUrls))return Fe&&Y.warn(`Event dropped due to not being matched by \`allowUrls\` option. -Event: ${Ty(e)}. -Url: ${hH(e)}`),!0}return!1}function q4t(e,t){return t?.length?uH(e).some(n=>by(n,t)):!1}function B4t(e,t){if(!t?.length)return!1;let n=e.transaction;return n?by(n,t):!1}function G4t(e,t){if(!t?.length)return!1;let n=hH(e);return n?by(n,t):!1}function z4t(e,t){if(!t?.length)return!0;let n=hH(e);return n?by(n,t):!0}function V4t(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 hH(e){try{let n=[...e.exception?.values??[]].reverse().find(r=>r.mechanism?.parent_id===void 0&&r.stacktrace?.frames?.length)?.stacktrace?.frames;return n?V4t(n):null}catch{return Fe&&Y.error(`Cannot extract url for event ${Ty(e)}`),null}}function W4t(e){return e.exception?.values?.length?!e.message&&!e.exception.values.some(t=>t.stacktrace||t.type&&t.type!=="Error"||t.value):!1}var F4t,j4t,BX,mH,jLe=v(()=>{Ni();_r();OX();Lp();_y();F4t=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,/can't redefine non-configurable property "solana"/,/vv\(\)\.getRestrictions is not a function/,/Can't find variable: _AutofillCallbackHandler/,/Object Not Found Matching Id:\d+, MethodName:simulateEvent/,/^Java exception was raised during method invocation$/],j4t="EventFilters",BX=(e={})=>{let t;return{name:j4t,setup(n){let r=n.getOptions();t=FLe(e,r)},processEvent(n,r,i){if(!t){let s=i.getOptions();t=FLe(e,s)}return H4t(n,t)?null:n}}},mH=((e={})=>({...BX(e),name:"InboundFilters"}))});function BLe(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=GX(e,t,r,s.originalException,n,i.exception.values,o,0))}function GX(e,t,n,r,i,s,o,a){if(s.length>=n+1)return s;let c=[...s];if(Mp(r[i],Error)){HLe(o,a,r);let u=e(t,r[i]),l=c.length;qLe(u,i,l,a),c=GX(e,t,n,r[i],i,[u,...c],u,l)}return GLe(r)&&r.errors.forEach((u,l)=>{if(Mp(u,Error)){HLe(o,a,r);let d=e(t,u),f=c.length;qLe(d,`errors[${l}]`,f,a),c=GX(e,t,n,u,i,[d,...c],d,f)}}),c}function GLe(e){return Array.isArray(e.errors)}function HLe(e,t,n){e.mechanism={handled:!0,type:"auto.core.linked_errors",...GLe(n)&&{is_exception_group:!0},...e.mechanism,exception_id:t}}function qLe(e,t,n,r){e.mechanism={handled:!0,...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}var zLe=v(()=>{Wa()});var K4t,Z4t,Y4t,J4t,gH,VLe=v(()=>{zLe();MX();K4t="cause",Z4t=5,Y4t="LinkedErrors",J4t=((e={})=>{let t=e.limit||Z4t,n=e.key||K4t;return{name:Y4t,preprocessEvent(r,i,s){let o=s.getOptions();BLe(CX,o.stackParser,n,t,r,i)}}}),gH=J4t});function WLe(e){let t={},n=0;for(;n{});function ZLe(e){let t={};for(let s of Object.keys(e))t[s.toLowerCase()]=e[s];return zX.map(s=>{let o=t[s.toLowerCase()],a=Array.isArray(o)?o.join(";"):o;return s==="Forwarded"?X4t(a):a?.split(",").map(c=>c.trim())}).reduce((s,o)=>o?s.concat(o):s,[]).find(s=>s!==null&&Q4t(s))||null}function X4t(e){if(!e)return null;for(let t of e.split(";"))if(t.startsWith("for="))return t.slice(4);return null}function Q4t(e){return/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/.test(e)}var zX,YLe=v(()=>{zX=["X-Client-IP","X-Forwarded-For","Fly-Client-IP","CF-Connecting-IP","Fastly-Client-Ip","True-Client-Ip","X-Real-IP","X-Cluster-Client-IP","X-Forwarded","Forwarded-For","Forwarded","X-Vercel-Forwarded-For"]});function nKt(e,t,n,r){if(e.request={...e.request,...rKt(t,r)},r.ip){let i=t.headers&&ZLe(t.headers)||n.ipAddress;i&&(e.user={...e.user,ip_address:i})}}function rKt(e,t){let n={},r={...e.headers};if(t.headers&&(n.headers=r,t.cookies||delete r.cookie,t.ip||zX.forEach(i=>{delete r[i]})),n.method=e.method,t.url&&(n.url=e.url),t.cookies){let i=e.cookies||(r?.cookie?WLe(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 $4t,eKt,tKt,yH,JLe=v(()=>{KLe();YLe();$4t={cookies:!0,data:!0,headers:!0,query_string:!0,url:!0},eKt="RequestData",tKt=((e={})=>{let t={...$4t,...e.include};return{name:eKt,processEvent(n,r,i){let{sdkProcessingMetadata:s={}}=n,{normalizedRequest:o,ipAddress:a}=s,c={...t,ip:t.ip??i.getOptions().sendDefaultPii};return o&&nKt(n,o,{ipAddress:a},c),n}}}),yH=tKt});function XLe(e){let t="console";IA(t,e),xA(t,iKt)}function iKt(){"console"in qt&&kO.forEach(function(e){e in qt.console&&P7(qt.console,e,function(t){return wA[e]=t,function(...n){OA("console",{args:n,level:e}),wA[e]?.apply(qt.console,n)}})})}var QLe=v(()=>{_r();ef();Va();Ij()});function $Le(e){return e==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(e)?e:"log"}var eDe=v(()=>{});function oKt(e){let t=e.length>1024?`${e.slice(-1024)}`:e,n=sKt.exec(t);return n?n.slice(1):[]}function VX(e){let t=oKt(e),n=t[0]||"",r=t[1];return!n&&!r?".":(r&&(r=r.slice(0,r.length-1)),n+r)}var sKt,tDe=v(()=>{sKt=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/});function ZX(e,t){return!e||typeof e!="function"?(Fe&&Y.warn("instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance"),e):KX(e,{requireParentSpan:!0,...t})}function KX(e,t,n){if(e[WX])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&&rDe(a,r,t),a},get(i,s){let o=i[s];return typeof s!="string"||typeof o!="function"?o:s==="unsafe"||s==="file"?uKt(o,i,r,t):s==="begin"||s==="reserve"?lKt(o,i,r,t):o}});return n?r[SH]=n:mKt(e,r),e[WX]=!0,r[WX]=!0,r}function uKt(e,t,n,r){return function(...i){let s=Reflect.apply(e,t,i);return s&&typeof s=="object"&&"handle"in s&&rDe(s,n,r),s}}function lKt(e,t,n,r){return function(...i){let s=n[SH];if(!(typeof i[i.length-1]=="function")){let l=Reflect.apply(e,t,i);return l&&typeof l.then=="function"?l.then(d=>KX(d,r,s)):l}let a=i.length===1?i[0]:i[1],c=function(l){let d=KX(l,r,s);return a(d)},u=i.length===1?[c]:[i[0],c];return Reflect.apply(e,t,u)}}function rDe(e,t,n){if(e.handle?.__sentryWrapped)return;e[cKt]=!0;let r=e.handle,i=async function(...s){if(!dKt(n))return r.apply(this,s);let o=fKt(e.strings),a=pKt(o);return Uo({name:a||"postgresjs.query",op:"db"},c=>{c.setAttribute(Rt,"auto.db.postgresjs"),c.setAttributes({"db.system.name":"postgres","db.query.text":a});let u=t?t[SH]:void 0;if(hKt(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{nDe(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"),nDe(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 dKt(e){return Vl()!==void 0||!e.requireParentSpan}function fKt(e){if(e?.length)return e.length===1?e[0]||void 0:e.reduce((t,n,r)=>r===0?n:`${t}$${r}${n}`,"")}function pKt(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();Do();_r();xc();Py();aKt=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,SH=Symbol("sentryPostgresConnectionContext"),WX=Symbol.for("sentry.instrumented.postgresjs"),cKt=Symbol.for("sentry.query.from.instrumented.sql")});function yKt(e,t){let n={category:"console",data:{arguments:t,logger:"console"},level:$Le(e),message:sDe(t)};if(e==="assert")if(t[0]===!1){let r=t.slice(1);n.message=r.length>0?`Assertion failed: ${sDe(r)}`:"Assertion failed",n.data.arguments=r}else return;Wl(n,{input:t,level:e})}function sDe(e){return"util"in qt&&typeof qt.util.format=="function"?qt.util.format(...e):D7(e," ")}var gKt,EH,oDe=v(()=>{qX();go();QLe();_r();eDe();_y();Va();gKt="Console",EH=(e={})=>{let t=new Set(e.levels||kO);return{name:gKt,setup(n){XLe(({args:r,level:i})=>{ct()!==n||!t.has(i)||yKt(i,r)})}}}});var SKt,EKt,YX,aDe=v(()=>{go();Do();SKt="ConversationId",EKt=(()=>({name:SKt,setup(e){e.on("spanStart",t=>{let n=Un().getScopeData(),r=vn().getScopeData(),i=n.conversationId||r.conversationId;i&&t.setAttribute(eX,i)})}})),YX=EKt});function bH(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 cDe=v(()=>{go()});var uDe,Dy,us,eR,Uy,tR,Fy,nR,jy,_H,lDe,dDe,lu,yo,Kl,fDe,di,Ps,Nc,oa,Pc,aa,pDe,ul,zs,Fp,Ub,Fo,JX,hDe,eN,mDe,gDe,XX,Hy,TH,yDe,SDe,EDe,bDe,rR,_De,TDe,vDe,ADe,Fb,QX,$X,vH,AH,RDe,eQ,tQ,nQ,wDe,kDe,rQ,Ja=v(()=>{uDe="gen_ai.prompt",Dy="gen_ai.system",us="gen_ai.request.model",eR="gen_ai.request.stream",Uy="gen_ai.request.temperature",tR="gen_ai.request.max_tokens",Fy="gen_ai.request.frequency_penalty",nR="gen_ai.request.presence_penalty",jy="gen_ai.request.top_p",_H="gen_ai.request.top_k",lDe="gen_ai.request.encoding_format",dDe="gen_ai.request.dimensions",lu="gen_ai.response.finish_reasons",yo="gen_ai.response.model",Kl="gen_ai.response.id",fDe="gen_ai.response.stop_reason",di="gen_ai.usage.input_tokens",Ps="gen_ai.usage.output_tokens",Nc="gen_ai.usage.total_tokens",oa="gen_ai.operation.name",Pc="sentry.sdk_meta.gen_ai.input.messages.original_length",aa="gen_ai.input.messages",pDe="gen_ai.output.messages",ul="gen_ai.system_instructions",zs="gen_ai.response.text",Fp="gen_ai.request.available_tools",Ub="gen_ai.response.streaming",Fo="gen_ai.response.tool_calls",JX="gen_ai.agent.name",hDe="gen_ai.pipeline.name",eN="gen_ai.conversation.id",mDe="gen_ai.usage.cache_creation_input_tokens",gDe="gen_ai.usage.cache_read_input_tokens",XX="gen_ai.usage.input_tokens.cache_write",Hy="gen_ai.usage.input_tokens.cached",TH="gen_ai.invoke_agent",yDe="gen_ai.generate_text",SDe="gen_ai.stream_text",EDe="gen_ai.generate_object",bDe="gen_ai.stream_object",rR="gen_ai.embeddings.input",_De="gen_ai.embeddings",TDe="gen_ai.embeddings",vDe="gen_ai.rerank",ADe="gen_ai.execute_tool",Fb="gen_ai.tool.name",QX="gen_ai.tool.call.id",$X="gen_ai.tool.type",vH="gen_ai.tool.input",AH="gen_ai.tool.output",RDe="gen_ai.tool.description",eQ="openai.response.id",tQ="openai.response.model",nQ="openai.response.timestamp",wDe="openai.usage.completion_tokens",kDe="openai.usage.prompt_tokens",rQ="anthropic.response.timestamp"});var tN,iQ,sQ,IDe,xDe,ODe,oQ=v(()=>{tN=new Map,iQ=new Set(["ai.generateText","ai.streamText","ai.generateObject","ai.streamObject"]),sQ=new Set(["ai.generateText.doGenerate","ai.streamText.doStream","ai.generateObject.doGenerate","ai.streamObject.doStream"]),IDe=new Set(["ai.embed.doEmbed","ai.embedMany.doEmbed"]),xDe=new Set(["ai.rerank.doRerank"]),ODe={"ai.embed.doEmbed":"embeddings","ai.embedMany.doEmbed":"embeddings","ai.rerank.doRerank":"rerank"}});function qy(e){return!e||typeof e!="object"?!1:_Kt(e)||PDe(e)||bKt(e)||CDe(e)||MDe(e)||TKt(e)||vKt(e)||AKt(e)||RKt(e)||wKt(e)||kKt(e)||IKt(e)}function bKt(e){return"image_url"in e?typeof e.image_url=="string"?e.image_url.startsWith("data:"):NDe(e):!1}function NDe(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 _Kt(e){return"type"in e&&typeof e.type=="string"&&"source"in e&&qy(e.source)}function PDe(e){return"inlineData"in e&&!!e.inlineData&&typeof e.inlineData=="object"&&"data"in e.inlineData&&typeof e.inlineData.data=="string"}function CDe(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 MDe(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 TKt(e){return"media_type"in e&&typeof e.media_type=="string"&&"data"in e}function vKt(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 AKt(e){return"type"in e&&e.type==="image"&&"image"in e&&typeof e.image=="string"&&!e.image.startsWith("http://")&&!e.image.startsWith("https://")}function RKt(e){return"type"in e&&(e.type==="blob"||e.type==="base64")}function wKt(e){return"b64_json"in e}function kKt(e){return"type"in e&&"result"in e&&e.type==="image_generation"}function IKt(e){return"uri"in e&&typeof e.uri=="string"&&e.uri.startsWith("data:")}function jb(e){let t={...e};qy(t.source)&&(t.source=jb(t.source)),PDe(e)&&(t.inlineData={...e.inlineData,data:nN}),NDe(e)&&(t.image_url={...e.image_url,url:nN}),CDe(e)&&(t.input_audio={...e.input_audio,data:nN}),MDe(e)&&(t.file={...e.file,file_data:nN});for(let n of xKt)typeof t[n]=="string"&&(t[n]=nN);return t}var nN,xKt,aQ=v(()=>{nN="[Blob substitute]",xKt=["image_url","data","content","b64_json","result","uri","image"]});function wH(e,t){if(RH(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);RH(o)<=t?(i=o,n=s+1):r=s-1}return i}function OKt(e){return typeof e=="string"?e:"text"in e&&typeof e.text=="string"?e.text:""}function LDe(e,t){return typeof e=="string"?t:{...e,text:t}}function NKt(e){return e!==null&&typeof e=="object"&&"content"in e&&typeof e.content=="string"}function UDe(e){return e!==null&&typeof e=="object"&&"content"in e&&Array.isArray(e.content)}function FDe(e){return e!==null&&typeof e=="object"&&"parts"in e&&Array.isArray(e.parts)&&e.parts.length>0}function PKt(e,t){let n={...e,content:""},r=uQ(n),i=t-r;if(i<=0)return[];let s=wH(e.content,i);return[{...e,content:s}]}function CKt(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 MKt(e,t){let{key:n,items:r}=CKt(e);if(n===null||r.length===0)return[];let i=r.map(c=>LDe(c,"")),s=uQ({...e,[n]:i}),o=t-s;if(o<=0)return[];let a=[];for(let c of r){let u=OKt(c),l=RH(u);if(l<=o)a.push(c),o-=l;else if(a.length===0){let d=wH(u,o);d&&a.push(LDe(c,d));break}else break}return a.length<=0?[]:[{...e,[n]:a}]}function LKt(e,t){if(!e)return[];if(typeof e=="string"){let n=wH(e,t);return n?[n]:[]}return typeof e!="object"?[]:NKt(e)?PKt(e,t):UDe(e)||FDe(e)?MKt(e,t):[]}function cQ(e){return e.map(n=>{let r;return n&&typeof n=="object"&&(UDe(n)?r={...n,content:cQ(n.content)}:"content"in n&&qy(n.content)&&(r={...n,content:jb(n.content)}),FDe(n)&&(r={...r??n,parts:cQ(n.parts)}),qy(r)?r=jb(r):qy(n)&&(r=jb(n))),r??n})}function DKt(e,t){if(!Array.isArray(e)||e.length===0)return e;let n=t-2,r=e[e.length-1],i=cQ([r]),s=i[0];return uQ(s)<=n?i:LKt(s,n)}function By(e){return DKt(e,DDe)}function jDe(e){return wH(e,DDe)}var DDe,RH,uQ,rN=v(()=>{aQ();DDe=2e4,RH=e=>new TextEncoder().encode(e).length,uQ=e=>RH(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 iN(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 Hb(e){if(typeof e=="string")return jDe(e);if(Array.isArray(e)){let t=By(e);return JSON.stringify(t)}return JSON.stringify(e)}function ll(e){if(!Array.isArray(e))return{systemInstructions:void 0,filteredMessages:e};let t=e.findIndex(o=>o&&typeof o=="object"&&"role"in o&&o.role==="system");if(t===-1)return{systemInstructions:void 0,filteredMessages:e};let n=e[t],r=typeof n.content=="string"?n.content:n.content!==void 0?JSON.stringify(n.content):void 0;if(!r)return{systemInstructions:void 0,filteredMessages:e};let i=JSON.stringify([{type:"text",content:r}]),s=[...e.slice(0,t),...e.slice(t+1)];return{systemInstructions:i,filteredMessages:s}}async function UKt(e,t,n){let r=e.catch(o=>{throw Wt(o,{mechanism:{handled:!1,type:n}}),o}),i=await t,s=await r;return s&&typeof s=="object"&&"data"in s?{...s,data:i}:i}function sR(e,t,n){return sa(e)?new Proxy(e,{get(r,i){let o=i in Promise.prototype||i===Symbol.toStringTag?t:r,a=Reflect.get(o,i);return i==="withResponse"&&typeof a=="function"?function(){let u=a.call(r);return UKt(u,t,n)}:typeof a=="function"?a.bind(o):a}}):t}var Hp=v(()=>{cl();go();Wa();Ja();rN()});var kH,HDe,IH,qDe,BDe,lQ,dQ,fQ,GDe,qb,oR,sN,zDe,VDe,WDe,KDe,ZDe,YDe,pQ,hQ,JDe,XDe,mQ=v(()=>{kH="operation.name",HDe="ai.operationId",IH="ai.prompt",qDe="ai.schema",BDe="ai.response.object",lQ="ai.values",dQ="ai.response.text",fQ="ai.response.toolCalls",GDe="ai.response.finishReason",qb="ai.prompt.messages",oR="ai.prompt.tools",sN="ai.model.id",zDe="ai.response.providerMetadata",VDe="ai.usage.cachedInputTokens",WDe="ai.telemetry.functionId",KDe="ai.usage.completionTokens",ZDe="ai.usage.promptTokens",YDe="ai.usage.tokens",pQ="ai.toolCall.name",hQ="ai.toolCall.id",JDe="ai.toolCall.args",XDe="ai.toolCall.result"});function $De(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 gQ(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 FKt(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 e1e(e,t){let n=FKt(e);for(let r of e){if(r.op==="gen_ai.execute_tool"){let i=r.data[Fb];if(typeof i=="string"){let s=n.get(i);s&&(r.data[RDe]=s)}}r.op==="gen_ai.invoke_agent"&&gQ(r,t)}}function yQ(e){return tN.get(e)}function SQ(e){tN.delete(e)}function t1e(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 QDe(e){return e.filter(t=>!!t&&typeof t=="object"&&"role"in t&&"content"in t)}function jKt(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(...QDe(n)),s;if(Array.isArray(r))return s.push(...QDe(r)),s;if(typeof r=="string"&&s.push({role:"user",content:r}),s.length>0)return s}}catch{}return[]}function n1e(e,t){if(typeof t[IH]=="string"&&!t[aa]&&!t[qb]){let n=t[IH],r=jKt(n);if(r.length){let{systemInstructions:i,filteredMessages:s}=ll(r);i&&e.setAttribute(ul,i);let o=Array.isArray(s)?s.length:0,a=Hb(s);e.setAttributes({[IH]:a,[aa]:a,[Pc]:o})}}else if(typeof t[qb]=="string")try{let n=JSON.parse(t[qb]);if(Array.isArray(n)){let{systemInstructions:r,filteredMessages:i}=ll(n);r&&e.setAttribute(ul,r);let s=Array.isArray(i)?i.length:0,o=Hb(i);e.setAttributes({[qb]:o,[aa]:o,[Pc]:s})}}catch{}}function r1e(e){switch(e){case"ai.generateText":case"ai.streamText":case"ai.generateObject":case"ai.streamObject":return TH;case"ai.generateText.doGenerate":return yDe;case"ai.streamText.doStream":return SDe;case"ai.generateObject.doGenerate":return EDe;case"ai.streamObject.doStream":return bDe;case"ai.embed.doEmbed":return _De;case"ai.embedMany.doEmbed":return TDe;case"ai.rerank.doRerank":return vDe;case"ai.toolCall":return ADe;default:return e.startsWith("ai.stream")?"ai.run":void 0}}var EQ=v(()=>{Ja();Hp();oQ();mQ()});function HKt(e){return iQ.has(e)?"invoke_agent":sQ.has(e)?"generate_content":IDe.has(e)?"embeddings":xDe.has(e)?"rerank":e==="ai.toolCall"?"execute_tool":e}function qKt(e){let{data:t,description:n}=vt(e);if(n){if(t[pQ]&&t[hQ]&&n==="ai.toolCall"){WKt(e,t);return}!t[HDe]&&!n.startsWith("ai.")||KKt(e,n,t)}}function BKt(e){if(e.type==="transaction"&&e.spans){let t=new Map;for(let r of e.spans)VKt(r),$De(r,t);e1e(e.spans,t);let n=e.contexts?.trace;n?.op==="gen_ai.invoke_agent"&&gQ(n,t)}return e}function GKt(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 zKt(e){let t=e[dQ],n=e[fQ],r=e[GDe];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[fQ]}}catch{}if(i.length>0){let s={role:"assistant",parts:i,finish_reason:GKt(r)};e[pDe]=JSON.stringify([s]),delete e[dQ]}}function VKt(e){let{data:t,origin:n}=e;if(n==="auto.vercelai.otel"){if(e.status&&e.status!=="ok"&&(e.status="internal_error"),ca(t,KDe,Ps),ca(t,ZDe,di),ca(t,VDe,Hy),ca(t,"ai.usage.inputTokens",di),ca(t,"ai.usage.outputTokens",Ps),ca(t,YDe,di),ca(t,"ai.response.avgOutputTokensPerSecond","ai.response.avgCompletionTokensPerSecond"),typeof t[di]=="number"&&typeof t[Hy]=="number"&&(t[di]=t[di]+t[Hy]),typeof t[di]=="number"){let r=typeof t[Ps]=="number"?t[Ps]:0;t[Nc]=r+t[di]}if(t[oR]&&Array.isArray(t[oR])&&(t[oR]=t1e(t[oR])),t[kH]){let r=HKt(t[kH]);t[oa]=r,delete t[kH]}if(ca(t,qb,aa),zKt(t),ca(t,BDe,"gen_ai.response.object"),ca(t,oR,"gen_ai.request.available_tools"),ca(t,JDe,vH),ca(t,XDe,AH),ca(t,qDe,"gen_ai.request.schema"),ca(t,sN,us),Array.isArray(t[lQ])){let r=t[lQ].map(i=>{try{return JSON.parse(i)}catch{return i}});t[rR]=r.length===1?r[0]:JSON.stringify(r)}ZKt(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 WKt(e,t){e.setAttribute(Rt,"auto.vercelai.otel"),e.setAttribute(Gt,"gen_ai.execute_tool"),e.setAttribute(oa,"execute_tool"),ca(t,pQ,Fb),ca(t,hQ,QX);let n=t[QX];typeof n=="string"&&tN.set(n,e.spanContext()),t[$X]||e.setAttribute($X,"function");let r=t[Fb];r&&e.updateName(`execute_tool ${r}`)}function KKt(e,t,n){e.setAttribute(Rt,"auto.vercelai.otel");let r=t.replace("ai.","");e.setAttribute("ai.pipeline.name",r),e.updateName(r);let i=n[WDe];i&&typeof i=="string"&&e.setAttribute("gen_ai.function_id",i),n1e(e,n),n[sN]&&!n[yo]&&e.setAttribute(yo,n[sN]),e.setAttribute("ai.streaming",t.includes("stream"));let s=r1e(t);if(s&&e.setAttribute(Gt,s),iQ.has(t)){i&&typeof i=="string"?e.updateName(`invoke_agent ${i}`):e.updateName("invoke_agent");return}let o=n[sN];if(o){let a=sQ.has(t)?"generate_content":ODe[t];a&&e.updateName(`${a} ${o}`)}}function xH(e){e.on("spanStart",qKt),e.addEventProcessor(Object.assign(BKt,{id:"VercelAiEventProcessor"}))}function ZKt(e){let t=e[zDe];if(t)try{let n=JSON.parse(t),r=n.openai??n.azure;if(r&&(uf(e,Hy,r.cachedPromptTokens),uf(e,"gen_ai.usage.output_tokens.reasoning",r.reasoningTokens),uf(e,"gen_ai.usage.output_tokens.prediction_accepted",r.acceptedPredictionTokens),uf(e,"gen_ai.usage.output_tokens.prediction_rejected",r.rejectedPredictionTokens),e["gen_ai.conversation.id"]||uf(e,"gen_ai.conversation.id",r.responseId)),n.anthropic){let i=n.anthropic.usage?.cache_read_input_tokens??n.anthropic.cacheReadInputTokens;uf(e,Hy,i);let s=n.anthropic.usage?.cache_creation_input_tokens??n.anthropic.cacheCreationInputTokens;uf(e,XX,s)}n.bedrock?.usage&&(uf(e,Hy,n.bedrock.usage.cacheReadInputTokens),uf(e,XX,n.bedrock.usage.cacheWriteInputTokens)),n.deepseek&&(uf(e,Hy,n.deepseek.promptCacheHitTokens),uf(e,"gen_ai.usage.input_tokens.cache_miss",n.deepseek.promptCacheMissTokens))}catch{}}function uf(e,t,n){n!=null&&(e[t]=n)}var i1e=v(()=>{Do();xc();Ja();oQ();EQ();mQ()});var Gy,s1e,YKt,o1e,OH=v(()=>{Gy="OpenAI",s1e={"responses.create":{operation:"chat"},"chat.completions.create":{operation:"chat"},"embeddings.create":{operation:"embeddings"},"conversations.create":{operation:"chat"}},YKt=["response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"],o1e=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta",...YKt]});function a1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion"}function c1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="response"}function u1e(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 l1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="conversation"}function d1e(e){return e!==null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"&&e.type.startsWith("response.")}function f1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion.chunk"}function p1e(e,t,n){if(NH(e,t.id,t.model,t.created),t.usage&&oN(e,t.usage.prompt_tokens,t.usage.completion_tokens,t.usage.total_tokens),Array.isArray(t.choices)){let r=t.choices.map(i=>i.finish_reason).filter(i=>i!==null);if(r.length>0&&e.setAttributes({[lu]:JSON.stringify(r)}),n){let i=t.choices.map(s=>s.message?.tool_calls).filter(s=>Array.isArray(s)&&s.length>0).flat();i.length>0&&e.setAttributes({[Fo]:JSON.stringify(i)})}}}function h1e(e,t,n){if(NH(e,t.id,t.model,t.created_at),t.status&&e.setAttributes({[lu]:JSON.stringify([t.status])}),t.usage&&oN(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 m1e(e,t){e.setAttributes({[tQ]:t.model,[yo]:t.model}),t.usage&&oN(e,t.usage.prompt_tokens,void 0,t.usage.total_tokens)}function g1e(e,t){let{id:n,created_at:r}=t;e.setAttributes({[eQ]:n,[Kl]:n,[eN]:n}),r&&e.setAttributes({[nQ]:new Date(r*1e3).toISOString()})}function oN(e,t,n,r){t!==void 0&&e.setAttributes({[kDe]:t,[di]:t}),n!==void 0&&e.setAttributes({[wDe]:n,[Ps]:n}),r!==void 0&&e.setAttributes({[Nc]:r})}function NH(e,t,n,r){e.setAttributes({[eQ]:t,[Kl]:t}),e.setAttributes({[tQ]:n,[yo]:n}),e.setAttributes({[nQ]:new Date(r*1e3).toISOString()})}function JKt(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 y1e(e){let t={[us]:e.model??"unknown"};"temperature"in e&&(t[Uy]=e.temperature),"top_p"in e&&(t[jy]=e.top_p),"frequency_penalty"in e&&(t[Fy]=e.frequency_penalty),"presence_penalty"in e&&(t[nR]=e.presence_penalty),"stream"in e&&(t[eR]=e.stream),"encoding_format"in e&&(t[lDe]=e.encoding_format),"dimensions"in e&&(t[dDe]=e.dimensions);let n=JKt(e);return n&&(t[eN]=n),t}var bQ=v(()=>{Ja()});function XKt(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 QKt(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&&XKt(r.delta.tool_calls,t)),r.finish_reason&&t.finishReasons.push(r.finish_reason)}function $Kt(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(!o1e.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*S1e(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)f1e(i)?QKt(i,r,n):d1e(i)&&$Kt(i,r,n,t),yield i}finally{NH(t,r.responseId,r.responseModel,r.responseTimestamp),oN(t,r.promptTokens,r.completionTokens,r.totalTokens),t.setAttributes({[Ub]:!0}),r.finishReasons.length&&t.setAttributes({[lu]:JSON.stringify(r.finishReasons)}),n&&r.responseTexts.length&&t.setAttributes({[zs]:r.responseTexts.join("")});let s=[...Object.values(r.chatCompletionToolCalls),...r.responsesApiToolCalls];s.length>0&&t.setAttributes({[Fo]:JSON.stringify(s)}),t.end()}}var E1e=v(()=>{cl();Ja();OH();bQ()});function e9t(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 t9t(e,t){let n={[Dy]:"openai",[oa]:t,[Rt]:"auto.ai.openai"};if(e.length>0&&typeof e[0]=="object"&&e[0]!==null){let r=e[0],i=e9t(r);i&&(n[Fp]=i),Object.assign(n,y1e(r))}else n[us]="unknown";return n}function n9t(e,t,n){if(!t||typeof t!="object")return;let r=t;if(a1e(r)){if(p1e(e,r,n),n&&r.choices?.length){let i=r.choices.map(s=>s.message?.content||"");e.setAttributes({[zs]:JSON.stringify(i)})}}else c1e(r)?(h1e(e,r,n),n&&r.output_text&&e.setAttributes({[zs]:r.output_text})):u1e(r)?m1e(e,r):l1e(r)&&g1e(e,r)}function b1e(e,t,n){if(n==="embeddings"&&"input"in t){let a=t.input;if(a==null||typeof a=="string"&&a.length===0||Array.isArray(a)&&a.length===0)return;e.setAttribute(rR,typeof a=="string"?a:JSON.stringify(a));return}let r="input"in t?t.input:"messages"in t?t.messages:void 0;if(!r||Array.isArray(r)&&r.length===0)return;let{systemInstructions:i,filteredMessages:s}=ll(r);i&&e.setAttribute(ul,i);let o=Hb(s);e.setAttribute(aa,o),Array.isArray(s)?e.setAttribute(Pc,s.length):e.setAttribute(Pc,1)}function r9t(e,t,n,r,i){return function(...o){let a=n.operation,c=t9t(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&&b1e(g,l,a),(async()=>{try{let E=await m;return S1e(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=cf(f,m=>(p=e.apply(r,o),i.recordInputs&&l&&b1e(m,l,a),p.then(y=>(n9t(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 _1e(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?r9t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?_1e(s,o,n):s}})}function PH(e,t){return _1e(e,"",jp(t))}var T1e=v(()=>{Ni();cl();Do();_r();Py();Ja();Hp();OH();E1e();bQ()});var zy,v1e,_Q=v(()=>{zy="Anthropic_AI",v1e={"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 A1e(e,t){if(Array.isArray(t)&&t.length===0)return;let{systemInstructions:n,filteredMessages:r}=ll(t);n&&e.setAttributes({[ul]:n});let i=Array.isArray(r)?r.length:1;e.setAttributes({[aa]:Hb(r),[Pc]:i})}function TQ(e){return e&&i9t[e]||"internal_error"}function R1e(e,t){t.error&&(e.setStatus({code:2,message:TQ(t.error.type)}),Wt(t.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}))}function w1e(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 i9t,vQ=v(()=>{cl();Ja();Hp();i9t={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 s9t(e,t){return"type"in e&&typeof e.type=="string"&&e.type==="error"?(t.setStatus({code:2,message:TQ(e.error?.type)}),Wt(e.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0):!1}function o9t(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 a9t(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 c9t(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 u9t(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 k1e(e,t,n,r){!(e&&typeof e=="object")||s9t(e,r)||(o9t(e,t),a9t(e,t),c9t(e,t,n),u9t(e,t))}function l9t(e,t,n){t.isRecording()&&(e.responseId&&t.setAttributes({[Kl]:e.responseId}),e.responseModel&&t.setAttributes({[yo]:e.responseModel}),iN(t,e.promptTokens,e.completionTokens,e.cacheCreationInputTokens,e.cacheReadInputTokens),t.setAttributes({[Ub]:!0}),e.finishReasons.length>0&&t.setAttributes({[lu]:JSON.stringify(e.finishReasons)}),n&&e.responseTexts.length>0&&t.setAttributes({[zs]:e.responseTexts.join("")}),n&&e.toolCalls.length>0&&t.setAttributes({[Fo]:JSON.stringify(e.toolCalls)}),t.end())}async function*I1e(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)k1e(i,r,n,t),yield i}finally{r.responseId&&t.setAttributes({[Kl]:r.responseId}),r.responseModel&&t.setAttributes({[yo]:r.responseModel}),iN(t,r.promptTokens,r.completionTokens,r.cacheCreationInputTokens,r.cacheReadInputTokens),t.setAttributes({[Ub]:!0}),r.finishReasons.length>0&&t.setAttributes({[lu]:JSON.stringify(r.finishReasons)}),n&&r.responseTexts.length>0&&t.setAttributes({[zs]:r.responseTexts.join("")}),n&&r.toolCalls.length>0&&t.setAttributes({[Fo]:JSON.stringify(r.toolCalls)}),t.end()}}function x1e(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=>{k1e(i,r,n,t)}),e.on("message",()=>{l9t(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 O1e=v(()=>{cl();Ja();Hp();vQ()});function d9t(e,t,n){let r={[Dy]:"anthropic",[oa]:n,[Rt]:"auto.ai.anthropic"};if(e.length>0&&typeof e[0]=="object"&&e[0]!==null){let i=e[0];i.tools&&Array.isArray(i.tools)&&(r[Fp]=JSON.stringify(i.tools)),r[us]=i.model??"unknown","temperature"in i&&(r[Uy]=i.temperature),"top_p"in i&&(r[jy]=i.top_p),"stream"in i&&(r[eR]=i.stream),"top_k"in i&&(r[_H]=i.top_k),"frequency_penalty"in i&&(r[Fy]=i.frequency_penalty),"max_tokens"in i&&(r[tR]=i.max_tokens)}else t==="models.retrieve"||t==="models.get"?r[us]=e[0]:r[us]="unknown";return r}function AQ(e,t){let n=w1e(t);A1e(e,n),"prompt"in t&&e.setAttributes({[uDe]:JSON.stringify(t.prompt)})}function f9t(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 p9t(e,t){"id"in t&&"model"in t&&(e.setAttributes({[Kl]:t.id,[yo]:t.model}),"created"in t&&typeof t.created=="number"&&e.setAttributes({[rQ]:new Date(t.created*1e3).toISOString()}),"created_at"in t&&typeof t.created_at=="number"&&e.setAttributes({[rQ]:new Date(t.created_at*1e3).toISOString()}),"usage"in t&&t.usage&&iN(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.cache_creation_input_tokens,t.usage.cache_read_input_tokens))}function h9t(e,t,n){if(!(!t||typeof t!="object")){if("type"in t&&t.type==="error"){R1e(e,t);return}n&&f9t(e,t),p9t(e,t)}}function N1e(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 m9t(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&&AQ(m,a),(async()=>{try{let y=await p;return I1e(y,m,c.recordOutputs??!1)}catch(y){return N1e(y,m,o)}})()));return sR(p,h,"auto.ai.anthropic")}else return Uo(f,p=>{try{c.recordInputs&&a&&AQ(p,a);let h=t.apply(n,r);return x1e(h,p,c.recordOutputs??!1)}catch(h){return N1e(h,p,o)}})}function g9t(e,t,n,r,i){return new Proxy(e,{apply(s,o,a){let c=n.operation,u=d9t(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 m9t(e,s,r,a,u,c,t,d,i,f,p);let h,m=cf({name:`${c} ${l}`,op:`gen_ai.${c}`,attributes:u},y=>(h=s.apply(r,a),i.recordInputs&&d&&AQ(y,d),h.then(g=>(h9t(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 P1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=iR(t,String(i)),a=v1e[o];return typeof s=="function"&&a?g9t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?P1e(s,o,n):s}})}function CH(e,t){return P1e(e,"",jp(t))}var C1e=v(()=>{cl();Do();Py();Ja();Hp();_Q();O1e();vQ()});var Vy,M1e,L1e,RQ,D1e,wQ=v(()=>{Vy="Google_GenAI",M1e={"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}},L1e="google_genai",RQ="chats.create",D1e="chat"});function y9t(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 S9t(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 E9t(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 b9t(e,t,n,r){!e||y9t(e,r)||(S9t(e,t),E9t(e,t,n))}async function*U1e(e,t,n){let r={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(let i of e)b9t(i,r,n,t),yield i}finally{let i={[Ub]:!0};r.responseId&&(i[Kl]=r.responseId),r.responseModel&&(i[yo]=r.responseModel),r.promptTokens!==void 0&&(i[di]=r.promptTokens),r.completionTokens!==void 0&&(i[Ps]=r.completionTokens),r.totalTokens!==void 0&&(i[Nc]=r.totalTokens),r.finishReasons.length&&(i[lu]=JSON.stringify(r.finishReasons)),n&&r.responseTexts.length&&(i[zs]=r.responseTexts.join("")),n&&r.toolCalls.length&&(i[Fo]=JSON.stringify(r.toolCalls)),t.setAttributes(i),t.end()}}var F1e=v(()=>{cl();Ja()});function aR(e,t="user"){return typeof e=="string"?[{role:t,content:e}]:Array.isArray(e)?e.flatMap(n=>aR(n,t)):typeof e!="object"||!e?[]:"role"in e&&typeof e.role=="string"?[e]:"parts"in e?[{...e,role:t}]:[{role:t,content:e}]}var j1e=v(()=>{});function H1e(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 _9t(e){let t={};return"temperature"in e&&typeof e.temperature=="number"&&(t[Uy]=e.temperature),"topP"in e&&typeof e.topP=="number"&&(t[jy]=e.topP),"topK"in e&&typeof e.topK=="number"&&(t[_H]=e.topK),"maxOutputTokens"in e&&typeof e.maxOutputTokens=="number"&&(t[tR]=e.maxOutputTokens),"frequencyPenalty"in e&&typeof e.frequencyPenalty=="number"&&(t[Fy]=e.frequencyPenalty),"presencePenalty"in e&&typeof e.presencePenalty=="number"&&(t[nR]=e.presencePenalty),t}function T9t(e,t,n){let r={[Dy]:L1e,[oa]:e,[Rt]:"auto.ai.google_genai"};if(t){if(r[us]=H1e(t,n),"config"in t&&typeof t.config=="object"&&t.config){let i=t.config;if(Object.assign(r,_9t(i)),"tools"in i&&Array.isArray(i.tools)){let s=i.tools.flatMap(o=>o.functionDeclarations);r[Fp]=JSON.stringify(s)}}}else r[us]=H1e({},n);return r}function q1e(e,t,n){if(n){let i=t.contents;i!=null&&e.setAttribute(rR,typeof i=="string"?i:JSON.stringify(i));return}let r=[];if("config"in t&&t.config&&typeof t.config=="object"&&"systemInstruction"in t.config&&t.config.systemInstruction&&r.push(...aR(t.config.systemInstruction,"system")),"history"in t&&r.push(...aR(t.history,"user")),"contents"in t&&r.push(...aR(t.contents,"user")),"message"in t&&r.push(...aR(t.message,"user")),Array.isArray(r)&&r.length){let{systemInstructions:i,filteredMessages:s}=ll(r);i&&e.setAttribute(ul,i);let o=Array.isArray(s)?s.length:0;e.setAttributes({[Pc]:o,[aa]:JSON.stringify(By(s))})}}function v9t(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({[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 B1e(e,t,n,r,i){let s=t===RQ,o=n.operation==="embeddings";return new Proxy(e,{apply(a,c,u){let l=n.operation,d=u[0],f=T9t(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&&q1e(h,d,o);let m=await a.apply(r,u);return U1e(m,h,!!i.recordOutputs)}catch(m){throw h.setStatus({code:2,message:"internal_error"}),Wt(m,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:t}}}),h.end(),m}}):cf({name:s?`${l} ${p} create`:`${l} ${p}`,op:`gen_ai.${l}`,attributes:f},h=>(i.recordInputs&&d&&q1e(h,d,o),af(()=>a.apply(r,u),m=>{Wt(m,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:t}}})},()=>{},m=>{!s&&!o&&v9t(h,m,i.recordOutputs)})))}})}function kQ(e,t="",n){return new Proxy(e,{get:(r,i,s)=>{let o=Reflect.get(r,i,s),a=iR(t,String(i)),c=M1e[a];if(typeof o=="function"&&c){if(a===RQ){let u=B1e(o,a,c,r,n);return function(...d){let f=u(...d);return f&&typeof f=="object"?kQ(f,D1e,n):f}}return B1e(o,a,c,r,n)}return typeof o=="function"?o.bind(r):o&&typeof o=="object"?kQ(o,a,n):o}})}function MH(e,t){return kQ(e,"",jp(t))}var G1e=v(()=>{cl();Do();Py();Qj();Ja();rN();Hp();wQ();F1e();j1e()});var LH,Bb,z1e,DH=v(()=>{LH="LangChain",Bb="auto.ai.langchain",z1e={human:"user",ai:"assistant",assistant:"assistant",system:"system",function:"function",tool:"tool"}});function Tm(e){if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function cR(e){if(Array.isArray(e))try{let t=e.map(n=>n&&typeof n=="object"&&qy(n)?jb(n):n);return JSON.stringify(t)}catch{return String(e)}return Tm(e)}function aN(e){let t=e.toLowerCase();return z1e[t]??t}function V1e(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 IQ(e){if(!(!e||Array.isArray(e)))return e.invocation_params}function cN(e){return e.map(t=>{let n=t._getType;if(typeof n=="function"){let i=n.call(t);return{role:aN(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"?V1e(s):"user";return{role:aN(o),content:cR(t.kwargs?.content)}}if(t.type){let i=String(t.type).toLowerCase();return{role:aN(i),content:cR(t.content)}}if(t.role)return{role:aN(String(t.role)),content:cR(t.content)};let r=t.constructor?.name;return r&&r!=="Object"?{role:aN(V1e(r)),content:cR(t.content)}:{role:"user",content:cR(t.content)}})}function A9t(e,t,n){let r={},i="kwargs"in e?e.kwargs:void 0,s=t?.temperature??n?.ls_temperature??i?.temperature;dl(r,Uy,s);let o=t?.max_tokens??n?.ls_max_tokens??i?.max_tokens;dl(r,tR,o);let a=t?.top_p??i?.top_p;dl(r,jy,a);let c=t?.frequency_penalty;dl(r,Fy,c);let u=t?.presence_penalty;return dl(r,nR,u),t&&"stream"in t&&Zl(r,eR,!!t.stream),r}function W1e(e,t,n,r,i){return{[Dy]:Tm(e??"langchain"),[oa]:"chat",[us]:Tm(t),[Rt]:Bb,...A9t(n,r,i)}}function K1e(e,t,n,r,i){let s=i?.ls_provider,o=r?.model??i?.ls_model_name??"unknown",a=W1e(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){Zl(a,Pc,t.length);let c=t.map(u=>({role:"user",content:u}));Zl(a,aa,Tm(c))}return a}function Z1e(e,t,n,r,i){let s=i?.ls_provider??e.id?.[2],o=r?.model??i?.ls_model_name??"unknown",a=W1e(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){let c=cN(t.flat()),{systemInstructions:u,filteredMessages:l}=ll(c);u&&Zl(a,ul,u);let d=Array.isArray(l)?l.length:0;Zl(a,Pc,d);let f=By(l);Zl(a,aa,Tm(f))}return a}function R9t(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&&Zl(t,Fo,Tm(n))}function w9t(e,t){if(!e)return;let n=e.tokenUsage,r=e.usage;if(n)dl(t,di,n.promptTokens),dl(t,Ps,n.completionTokens),dl(t,Nc,n.totalTokens);else if(r){dl(t,di,r.input_tokens),dl(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&&dl(t,Nc,o),r.cache_creation_input_tokens!==void 0&&dl(t,mDe,r.cache_creation_input_tokens),r.cache_read_input_tokens!==void 0&&dl(t,gDe,r.cache_read_input_tokens)}}function Y1e(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&&Zl(n,lu,Tm(u)),R9t(e.generations,n),t){let l=e.generations.flat().map(d=>d.text??d.message?.content).filter(d=>typeof d=="string");l.length>0&&Zl(n,zs,Tm(l))}}w9t(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&&Zl(n,yo,o);let a=r?.id??s?.id;a&&Zl(n,Kl,a);let c=r?.stop_reason??s?.response_metadata?.finish_reason;return c&&Zl(n,fDe,Tm(c)),n}var Zl,dl,UH=v(()=>{Do();Ja();aQ();rN();Hp();DH();Zl=(e,t,n)=>{n!=null&&(e[t]=n)},dl=(e,t,n)=>{let r=Number(n);Number.isNaN(r)||(e[t]=r)}});function FH(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=IQ(d),m=K1e(o,a,t,h,f),y=m[us],g=m[oa];Uo({name:`${g} ${y}`,op:"gen_ai.chat",attributes:{...m,[Gt]:"gen_ai.chat"}},E=>(r.set(c,E),E))},handleChatModelStart(o,a,c,u,l,d,f,p){let h=IQ(d),m=Z1e(o,a,t,h,f),y=m[us],g=m[oa];Uo({name:`${g} ${y}`,op:"gen_ai.chat",attributes:{...m,[Gt]:"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=Y1e(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:`${Bb}.llm_error_handler`}})},handleChainStart(o,a,c,u,l,d,f,p){let h=p||o.name||"unknown_chain",m={[Rt]:"auto.ai.langchain","langchain.chain.name":h};t&&(m["langchain.chain.inputs"]=JSON.stringify(a)),Uo({name:`chain ${h}`,op:"gen_ai.invoke_agent",attributes:{...m,[Gt]:"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:`${Bb}.chain_error_handler`}})},handleToolStart(o,a,c,u){let l=o.name||"unknown_tool",d={[Rt]:Bb,[Fb]:l};t&&(d[vH]=a),Uo({name:`execute_tool ${l}`,op:"gen_ai.execute_tool",attributes:{...d,[Gt]:"gen_ai.execute_tool"}},f=>(r.set(c,f),f))},handleToolEnd(o,a){let c=r.get(a);c?.isRecording()&&(n&&c.setAttributes({[AH]: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:`${Bb}.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 J1e=v(()=>{cl();Do();Py();Ja();Hp();DH();UH()});var jH,xQ,OQ=v(()=>{jH="LangGraph",xQ="auto.ai.langgraph"});function k9t(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 I9t(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 x9t(e,t){let n=t;if(n.response_metadata&&typeof n.response_metadata=="object"){let r=n.response_metadata;r.model_name&&typeof r.model_name=="string"&&e.setAttribute(yo,r.model_name),r.finish_reason&&typeof r.finish_reason=="string"&&e.setAttribute(lu,[r.finish_reason])}}function X1e(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 Q1e(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=k9t(o);a&&e.setAttribute(Fo,JSON.stringify(a));let c=cN(o);e.setAttribute(zs,JSON.stringify(c));let u=0,l=0,d=0;for(let f of o){let p=I9t(f);u+=p.inputTokens,l+=p.outputTokens,d+=p.totalTokens,x9t(e,f)}u>0&&e.setAttribute(di,u),l>0&&e.setAttribute(Ps,l),d>0&&e.setAttribute(Nc,d)}var $1e=v(()=>{Ja();UH()});function NQ(e,t){return new Proxy(e,{apply(n,r,i){return cf({op:"gen_ai.create_agent",name:"create_agent",attributes:{[Rt]:xQ,[Gt]:"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(JX,a.name),s.updateName(`create_agent ${a.name}`));let c=o.invoke;return c&&typeof c=="function"&&(o.invoke=O9t(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 O9t(e,t,n,r){return new Proxy(e,{apply(i,s,o){return cf({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[Rt]:xQ,[Gt]:TH,[oa]:"invoke_agent"}},async a=>{try{let c=n?.name;c&&typeof c=="string"&&(a.setAttribute(hDe,c),a.setAttribute(JX,c),a.updateName(`invoke_agent ${c}`));let d=(o.length>1?o[1]:void 0)?.configurable?.thread_id;d&&typeof d=="string"&&a.setAttribute(eN,d);let f=X1e(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=cN(m),{systemInstructions:E,filteredMessages:S}=ll(g);E&&a.setAttribute(ul,E);let b=By(S),_=Array.isArray(S)?S.length:0;a.setAttributes({[aa]:JSON.stringify(b),[Pc]:_})}let y=await Reflect.apply(i,s,o);return h&&Q1e(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 HH(e,t){return e.compile=NQ(e.compile,jp(t)),e}var eUe=v(()=>{cl();Do();Py();Ja();rN();Hp();UH();OQ();$1e()});function uN(e){if(e!==void 0)return e>=400&&e<500?"warning":e>=500?"error":void 0}var tUe=v(()=>{});function lN(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 nUe=v(()=>{});function sUe(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 oUe(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=bCe(o[2]),p=o[5]==="native";!f&&o[5]&&!p&&(f=o[5]);let h=f?N9t(f):void 0;return{filename:h??f,module:h&&e?.(h),function:u,lineno:rUe(o[3]),colno:rUe(o[4]),in_app:sUe(f||"",p)}}if(i.match(t))return{filename:i}}}function PQ(e){return[90,oUe(e)]}function rUe(e){return parseInt(e||"",10)||void 0}function N9t(e){try{return decodeURI(e)}catch{return}}var aUe=v(()=>{kA()});var du,cUe=v(()=>{du=class{constructor(t){this._maxSize=t,this._cache=new Map}get size(){return this._cache.size}get(t){let n=this._cache.get(t);if(n!==void 0)return this._cache.delete(t),this._cache.set(t,n),n}set(t,n){if(this._cache.size>=this._maxSize){let r=this._cache.keys().next().value;this._cache.delete(r)}this._cache.set(t,n)}remove(t){let n=this._cache.get(t);return n&&this._cache.delete(t),n}clear(){this._cache.clear()}keys(){return Array.from(this._cache.keys())}values(){let t=[];return this._cache.forEach(n=>t.push(n)),t}}});var st=v(()=>{jA();VCe();Py();Sm();hX();mX();Xj();Do();cl();go();B7();DA();ELe();cH();kX();bLe();_Le();FO();Qj();xc();HA();ALe();RLe();kLe();ILe();MLe();qX();ULe();jLe();VLe();JLe();iDe();oDe();aDe();cDe();IX();i1e();EQ();T1e();OH();C1e();_Q();G1e();wQ();J1e();DH();eUe();OQ();tUe();Va();Wa();_r();Lp();ef();tDe();nUe();kA();aUe();_y();Hj();Em();MO();vLe();cUe();wy();vj();Sy()});function rt(e,t,n){return n?nZt(e,t,n):tZt(e,t)}function tZt(e,t){return Object.assign(n=>{let r=dN[e];if(r)return n&&r.setConfig(n),r;let i=t(n);return dN[e]=i,(0,CQ.registerInstrumentations)({instrumentations:[i]}),i},{id:e})}function nZt(e,t,n){return Object.assign(r=>{let i=n(r),s=dN[e];if(s)return s.setConfig(i),s;let o=new t(i);return dN[e]=o,(0,CQ.registerInstrumentations)({instrumentations:[o]}),o},{id:e})}function fN(e){let t=!1,n=[];if(!rZt(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 rZt(e){return typeof e._wrap=="function"}var CQ,dN,qH=v(()=>{CQ=Se(Jt(),1),dN={}});var Qt,lf=v(()=>{Qt=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var BH,uUe=v(()=>{BH="@sentry/instrumentation-http"});function lUe(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 dUe=v(()=>{st();lf()});import{subscribe as iZt}from"node:diagnostics_channel";function hUe(e,t){Gs(e,"_startSpanCallback",new WeakRef(t))}function oZt(e,{ignoreRequestBody:t,maxRequestBodySize:n,sessions:r,sessionFlushingDelayMS:i}){let s=e.emit;if(pUe.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(fUe)||!l)return a.apply(c,u);Qt&&Y.log(LQ,"Handling incoming request");let d=vn().clone(),f=u[1],p=u[2],h=$O(f),m=f.ip||f.socket?.remoteAddress,y=f.url||"/";n!=="none"&&!t?.(y,f)&&lUe(f,d,n,LQ),d.setSDKProcessingMetadata({normalizedRequest:h,ipAddress:m});let g=(f.method||"GET").toUpperCase(),E=_m(y),S=`${g} ${E}`;return d.setTransactionName(S),r&&l&&aZt(l,{requestIsolationScope:d,response:p,sessionFlushingDelayMS:i??6e4}),PO(d,()=>{let b={traceId:Ka(),sampleRand:Lo(),propagationSpanId:Za()};Un().setPropagationContext({...b}),d.setPropagationContext({...b});let _=Jd.extract(Ve.active(),h.headers).setValue(fUe,!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)})})}});pUe.add(o),e.emit=o}function aZt(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=MQ.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};MQ.set(e,u);let l=()=>{clearTimeout(f),d(),MQ.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 fUe,LQ,MQ,pUe,sZt,pN,GH=v(()=>{Ce();st();lf();dUe();fUe=rl("sentry_http_server_instrumented"),LQ="Http.Server",MQ=new Map,pUe=new WeakSet;sZt=((e={})=>{let t={sessions:e.sessions??!0,sessionFlushingDelayMS:e.sessionFlushingDelayMS??6e4,maxRequestBodySize:e.maxRequestBodySize??"medium",ignoreRequestBody:e.ignoreRequestBody};return{name:LQ,setupOnce(){iZt("http.server.request.start",(r=>{oZt(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`.")}}}),pN=sZt});import{errorMonitor as cZt}from"node:events";function lZt(e){return e.headers["next-router-prefetch"]==="1"}function dZt(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 fZt(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"&&dZt(r)||n?.(r,e))}function pZt(e){let t=hZt(e.headers);return t==null?{}:mZt(e.headers)?{"http.request_content_length":t}:{"http.request_content_length_uncompressed":t}}function hZt(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}function mZt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}function gZt(e,t){let{socket:n}=e,{statusCode:r,statusMessage:i}=t,s={[cm]:r,[mb]: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[$8]=a,s[eJ]=c,s[Q8]=u,s["net.peer.port"]=l}if(s[mb]=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 yZt(e,t){return t.some(n=>{if(typeof n=="number")return n===e;let[r,i]=n;return e>=r&&e<=i})}var vm,mUe,uZt,hN,DQ=v(()=>{Ce();vm=Se(fr(),1);Nn();st();lf();GH();mUe="Http.ServerSpans",uZt=((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:mUe,setup(c){typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__||c.on("httpServerRequest",(u,l,d)=>{let f=u,p=l;hUe(f,m=>{if(fZt(f,{ignoreStaticAssets:t,ignoreIncomingRequests:n}))return Qt&&Y.log(mUe,"Skipping span creation for incoming request",f.url),m();let y=d.url||f.url||"/",g=QO(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:{[Gt]:"http.server",[Rt]:"auto.http.otel.http","sentry.http.prefetch":lZt(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",...pZt(f),...fH(d.headers||{},c.getOptions().sendDefaultPii??!1)}});s?.(C,f),o?.(C,p),a?.(C,f,p),i?.(C,f,p);let F={type:vm.RPCType.HTTP,span:C};return Ve.with((0,vm.setRPCMetadata)(jt.setSpan(Ve.active(),C),F),()=>{Ve.bind(Ve.active(),f),Ve.bind(Ve.active(),p);let V=!1;function K($){if(V)return;V=!0;let B=gZt(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(cZt,()=>{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"&&yZt(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."))}}}),hN=uZt});function mN(e,t){if(!e)return t;let n=xb(e),r=xb(t);if(!r)return e;let i={},s={};for(let[c,u]of Object.entries(r))c.startsWith(Dp)?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(Dp)||(a[c]=u);Object.assign(a,i);for(let[c,u]of Object.entries(s))a[c]||(a[c]=u);return Uj(a)}var UQ=v(()=>{st()});function gUe(e,t){let n=SZt(e),r=t?.statusCode,i=uN(r);Wl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function zH(e,t){let n=VH(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=mN(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 SZt(e){try{let t=e.getHeader("host")||e.host,n=new URL(e.path,`${e.protocol}//${t}`),r=My(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 yUe(e){return{method:e.method,protocol:e.protocol,host:e.host,hostname:e.host,path:e.path,headers:e.getHeaders()}}function VH(e){let t=e.getHeader("host")||e.host,n=e.protocol,r=e.path;return`${n}//${t}${r}`}var uR,SUe=v(()=>{st();lf();UQ();uR="@sentry/instrumentation-http"});import{subscribe as FQ,unsubscribe as jQ}from"node:diagnostics_channel";import{errorMonitor as EUe}from"node:events";function EZt(e){let t=VH(e),[n,r]=jX(QO(t),"client","auto.http.otel.http",e),i=e.getHeader("user-agent");return[n,{[Gt]:"http.client","otel.kind":"CLIENT",[TJ]:i,[dy]:t,"http.url":t,"http.method":e.method,"http.target":e.path||"/","net.peer.name":e.host,"http.host":e.getHeader("host"),...r}]}function bZt(e){let{statusCode:t,statusMessage:n,httpVersion:r,socket:i}=e,s=r.toUpperCase()!=="QUIC"?"ip_tcp":"ip_udp",o={[cm]:t,[gJ]:r,"http.flavor":r,[yJ]:s,"net.transport":s,"http.status_text":n?.toUpperCase(),"http.status_code":t,..._Zt(e)};if(i){let{remoteAddress:a,remotePort:c}=i;o[hJ]=a,o[mJ]=c,o["net.peer.ip"]=a,o["net.peer.port"]=c}return o}function _Zt(e){let t=TZt(e.headers);return t==null?{}:vZt(e.headers)?{[nJ]:t}:{[rJ]:t}}function TZt(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 vZt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}var bUe,gN,Gb,HQ=v(()=>{Ce();bUe=Se(fr(),1),gN=Se(Jt(),1);Nn();st();lf();uUe();SUe();Gb=class extends gN.InstrumentationBase{constructor(t={}){super(BH,Pn,t),this._propagationDecisionMap=new du(100),this._ignoreOutgoingRequestsMap=new WeakMap}init(){let t=!1,n=(a=>{let c=a;this._onOutgoingRequestFinish(c.request,c.response)}),r=(a=>{let c=a;this._onOutgoingRequestFinish(c.request,void 0)}),i=(a=>{let c=a;this._onOutgoingRequestCreated(c.request)}),s=a=>(t||(t=!0,FQ("http.client.response.finish",n),FQ("http.client.request.error",r),(this.getConfig().propagateTraceInOutgoingRequests||this.getConfig().createSpansForOutgoingRequests)&&FQ("http.client.request.created",i)),a),o=()=>{jQ("http.client.response.finish",n),jQ("http.client.request.error",r),jQ("http.client.request.created",i)};return[new gN.InstrumentationNodeModuleDefinition("http",["*"],s,o),new gN.InstrumentationNodeModuleDefinition("https",["*"],s,o)]}_startSpanForOutgoingRequest(t){let n=t.once,[r,i]=EZt(t),s=eH({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=bZt(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(EUe,f=>{this._diag.debug("outgoingRequest on response error()",f),d(!0)})}),t.on("close",()=>{c({code:as.UNSET})}),t.on(EUe,u=>{this._diag.debug("outgoingRequest on request error()",u),c({code:as.ERROR})}),s}_onOutgoingRequestFinish(t,n){Qt&&Y.log(BH,"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&&gUe(t,n)}_onOutgoingRequestCreated(t){Qt&&Y.log(BH,"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,()=>{zH(t,this._propagationDecisionMap)})}else i&&zH(t,this._propagationDecisionMap)}else i&&zH(t,this._propagationDecisionMap)}_shouldIgnoreOutgoingRequest(t){if((0,bUe.isTracingSuppressed)(Ve.active()))return!0;let n=this.getConfig().ignoreOutgoingRequests;if(!n)return!1;let r=yUe(t),i=VH(t);return n(i,r)}}});var _Ue,AZt,TUe,vUe=v(()=>{qH();GH();DQ();HQ();_Ue="Http",AZt=rt(`${_Ue}.sentry`,e=>new Gb(e)),TUe=(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=pN(t),s=hN(n),o=e.spans??!1,a=e.disableIncomingRequestSpans??!1,c=o&&!a;return{name:_Ue,setup(u){c&&s.setup(u)},setupOnce(){i.setupOnce(),AZt(r)},processEvent(u){return s.processEvent(u)}}}});var df,Am,yN,lR=v(()=>{st();df=H7(process.versions.node),Am=df.major,yN=df.minor});function AUe(e,t){let n=KH(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:wZt(e.headers);if(BQ(u,qQ),BQ(u,WH),i&&BQ(u,RZt),!(GQ(u,qQ)!==-1)){o&&u.push(qQ,o),c&&GQ(u,"traceparent")===-1&&u.push("traceparent",c);let d=GQ(u,WH);if(a&&d===-1)u.push(WH,a);else if(a){let f=u[d+1],p=mN(f,a);p&&(u[d+1]=p)}}Array.isArray(e.headers)||(e.headers=kZt(u))}function wZt(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 kZt(e){let t=[];for(let n=0;n{Pi();_r();Oc()});function ME(e){if(!e||e.length===0)return;let t={};return e.forEach(n=>{let r=n.attributes||{},i=r[rX],s=r[iX];typeof i=="string"&&typeof s=="number"&&(t[n.name]={value:s,unit:i})}),t}var vX=v(()=>{Lo()});function wMe(e){return e&&typeof e=="number"||e instanceof Date||Array.isArray(e)}function kMe(e){return!!e.start_timestamp&&!!e.timestamp&&!!e.span_id&&!!e.trace_id}function eKt(e){return e instanceof JR&&e.isStandaloneSpan()}function tKt(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 AMe,JR,IMe=v(()=>{go();Pi();TX();Lo();_r();Iy();Oc();wy();Em();sH();vX();WR();AMe=1e3,JR=class{constructor(t={}){this._traceId=t.traceId||Ya(),this._spanId=t.spanId||Za(),this._startTime=t.startTimestamp||Ay(),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?Xj:Jj}}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),eP(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:CE(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[At],profile_id:this._attributes[GR],exclusive_time:this._attributes[VR],measurements:ME(this._events),is_segment:this._isStandaloneSpan&&cs(this)===this||void 0,segment_id:this._isStandaloneSpan?cs(this).spanContext().spanId:void 0,links:NE(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(t,n,r){Fe&&Z.log("[Tracing] Adding an event to span:",t);let i=wMe(n)?n:r||Ay(),s=wMe(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?tKt(RMe([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||Fn()).captureEvent(r)}_convertSpanToTransaction(){if(!kMe(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=$j(this).filter(l=>l!==this&&!eKt(l)).map(l=>vt(l)).filter(kMe),o=this._attributes[Wi];delete this._attributes[Kl],s.forEach(l=>{delete l.data[Kl]});let a={contexts:{trace:fMe(this)},spans:s.length>AMe?s.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,AMe):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=ME(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 nKt(i,t,n,r)}function nKt(e,t,n,r){return sa(e)?zj(e,i=>{n(),r(i)},i=>{t(i),n()}):(n(),r(e),e)}var oH=v(()=>{QJ();Ka()});function tP(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();KR()});function lf(e,t){let n=nP();if(n.startSpan)return n.startSpan(e,t);let r=wX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ja(a,()=>OMe(s)(()=>{let u=Fn(),l=kX(u,s),f=e.onlyIfParent&&!l?new Cy:AX({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return kE(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=nP();if(n.startSpanManual)return n.startSpanManual(e,t);let r=wX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ja(a,()=>OMe(s)(()=>{let u=Fn(),l=kX(u,s),f=e.onlyIfParent&&!l?new Cy:AX({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return kE(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 cH(e){let t=nP();if(t.startInactiveSpan)return t.startInactiveSpan(e);let n=wX(e),{forceTransaction:r,parentSpan:i}=e;return(e.scope?o=>Ja(e.scope,o):i!==void 0?o=>XR(i,o):o=>o())(()=>{let o=Fn(),a=kX(o,i);return e.onlyIfParent&&!a?new Cy:AX({parentSpan:a,spanArguments:n,forceTransaction:r,scope:o})})}function XR(e,t){let n=nP();return n.withActiveSpan?n.withActiveSpan(e,t):Ja(r=>(kE(r,e||void 0),t(r)))}function QR(e){let t=nP();return t.suppressTracing?t.suppressTracing(e):Ja(n=>{n.setSDKProcessingMetadata({[aH]:!0});let r=e();return n.setSDKProcessingMetadata({[aH]:void 0}),r})}function AX({parentSpan:e,spanArguments:t,forceTransaction:n,scope:r}){if(!Os()){let o=new Cy;if(n||!e){let a={sampled:"false",sample_rate:"0",transaction:t.name,...Ps(o)};tH(o,a)}return o}let i=vn(),s;if(e&&!n)s=rKt(e,r,t),YR(e,s);else if(e){let o=Ps(e),{traceId:a,spanId:c}=e.spanContext(),u=af(e);s=xMe({traceId:a,parentSpanId:c,...t},r,u),tH(s,o)}else{let{traceId:o,dsc:a,parentSpanId:c,sampled:u}={...i.getPropagationContext(),...r.getPropagationContext()};s=xMe({traceId:o,parentSpanId:c,...t},r,u),a&&tH(s,a)}return $O(s),GO(s,r,i),s}function wX(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 nP(){let e=xc();return rf(e)}function xMe(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[aH]?[!1]:tP(i,{name:s,parentSampled:a,attributes:c,parentSampleRate:cl(u.dsc?.sample_rate)},u.sampleRand),p=new JR({...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 rKt(e,t,n){let{spanId:r,traceId:i}=e.spanContext(),s=t.getScopeData().sdkProcessingMetadata[aH]?!1:af(e),o=s?new JR({...n,parentSpanId:r,traceId:i,sampled:s}):new Cy({traceId:i});YR(e,o);let a=ct();return a&&(a.emit("spanStart",o),n.endTimestamp&&a.emit("spanEnd",o)),o}function kX(e,t){if(t)return t;if(t===null)return;let n=IE(e);if(!n)return;let r=ct();return(r?r.getOptions():{}).parentSpanIsAlwaysRootSpan?cs(n):n}function OMe(e){return e!==void 0?t=>XR(e,t):t=>t()}var aH,My=v(()=>{zR();Gl();go();Pi();Lo();_r();oH();ZO();KR();Bj();Oc();Em();sH();RX();EMe();IMe();WR();aH="__SENTRY_SUPPRESS_TRACING__"});function Tm(e){return new uH(t=>{t(e)})}function $R(e){return new uH((t,n)=>{n(e)})}var IX,PMe,NMe,uH,eA=v(()=>{Ka();IX=0,PMe=1,NMe=2;uH=class e{constructor(t){this._state=IX,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===IX)return;let t=this._handlers.slice();this._handlers=[],t.forEach(n=>{n[0]||(this._state===PMe&&n[1](this._value),this._state===NMe&&n[2](this._value),n[0]=!0)})}_runExecutor(t){let n=(s,o)=>{if(this._state===IX){if(sa(o)){o.then(r,i);return}this._state=s,this._value=o,this._executeHandlers()}},r=s=>{n(PMe,s)},i=s=>{n(NMe,s)};try{t(r,i)}catch(s){i(s)}}}});function CMe(e,t,n,r=0){try{let i=xX(t,n,e,r);return sa(i)?i:Tm(i)}catch(i){return $R(i)}}function xX(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=>xX(o,t,n,r+1)):xX(s,t,n,r+1)}var MMe=v(()=>{Pi();_r();Ka();eA()});function UMe(e){let t=qt._sentryDebugIds,n=qt._debugIds;if(!t&&!n)return{};let r=t?Object.keys(t):[],i=n?Object.keys(n):[];if(Dy&&r.length===DMe&&i.length===LMe)return Dy;DMe=r.length,LMe=i.length,Dy={},DE||(DE={});let s=(o,a)=>{for(let c of o){let u=a[c],l=DE?.[c];if(l&&Dy&&u)Dy[l[0]]=u,DE&&(DE[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&&Dy&&DE){Dy[h]=u,DE[c]=[h,u];break}}}}};return t&&s(r,t),n&&s(i,n),Dy}var DE,DMe,LMe,Dy,FMe=v(()=>{Wa()});function HMe(e,t){let{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:s}=t;iKt(e,t),r&&aKt(e,r),cKt(e,n),sKt(e,i),oKt(e,s)}function jMe(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;rP(e,"extra",n),rP(e,"tags",r),rP(e,"attributes",i),rP(e,"user",s),rP(e,"contexts",o),e.sdkProcessingMetadata=ky(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 rP(e,t,n){e[t]=ky(e[t],n,1)}function lH(e,t){let n=Gj().getScopeData();return e&&jMe(n,e.getScopeData()),t&&jMe(n,t.getScopeData()),n}function iKt(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 sKt(e,t){let n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function oKt(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function aKt(e,t){e.contexts={trace:Ny(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 cKt(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 OX=v(()=>{go();Em();qj();Oc()});function qMe(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||mm()},u=n.integrations||e.integrations.map(y=>y.name);uKt(c,e),fKt(c,u),i&&i.emit("applyFrameMetadata",t),t.type===void 0&&lKt(c,e.stackParser);let l=hKt(r,n.captureContext);n.mechanism&&HR(c,n.mechanism);let d=i?i.getEventProcessors():[],f=lH(s,l),p=[...n.attachments||[],...f.attachments];p.length&&(n.attachments=p),HMe(c,f);let h=[...d,...f.eventProcessors];return(n.data&&n.data.__sentry__===!0?Tm(c):CMe(h,c,n)).then(y=>(y&&dKt(y),typeof o=="number"&&o>0?pKt(y,o,a):y))}function uKt(e,t){let{environment:n,release:r,dist:i,maxValueLength:s}=t;e.environment=e.environment||n||ZR,!e.release&&r&&(e.release=r),!e.dist&&i&&(e.dist=i);let o=e.request;o?.url&&s&&(o.url=_y(o.url,s)),s&&e.exception?.values?.forEach(a=>{a.value&&(a.value=_y(a.value,s))})}function lKt(e,t){let n=UMe(t);e.exception?.values?.forEach(r=>{r.stacktrace?.frames?.forEach(i=>{i.filename&&(i.debug_id=n[i.filename])})})}function dKt(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 fKt(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function pKt(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 hKt(e,t){if(!t)return e;let n=e?e.clone():new uu;return n.update(t),n}function BMe(e){if(e)return mKt(e)?{captureContext:e}:yKt(e)?{captureContext:e}:e}function mKt(e){return e instanceof uu||typeof e=="function"}function yKt(e){return Object.keys(e).some(t=>gKt.includes(t))}var gKt,PX=v(()=>{eH();MMe();BO();FMe();Lp();nH();OX();vy();eA();wy();gKt=["user","level","extra","contexts","tags","fingerprint","propagationContext"]});function Wt(e,t){return Fn().captureException(e,BMe(t))}function dH(e,t){return Fn().captureEvent(e,t)}async function tA(e){let t=ct();return t?t.flush(e):(Fe&&Z.warn("Cannot flush events. No client defined."),Promise.resolve(!1))}function fH(){let e=ct();return e?.getOptions().enabled!==!1&&!!e?.getTransport()}function pH(e){let t=vn(),{user:n}=lH(t,Fn()),{userAgent:r}=qt.navigator||{},i=KCe({user:n,...r&&{userAgent:r},...e}),s=t.getSession();return s?.status==="ok"&&gm(s,{status:"exited"}),iP(),t.setSession(i),i}function iP(){let e=vn(),n=Fn().getSession()||e.getSession();n&&YCe(n),SKt(),e.setSession()}function SKt(){let e=vn(),t=ct(),n=e.getSession();n&&t&&t.captureSession(n)}var ul=v(()=>{go();Pi();Hj();_r();PX();OX();Wa()});function EKt(e){let t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function _Kt(e){return`${EKt(e)}${e.projectId}/envelope/`}function TKt(e,t){let n={sentry_version:bKt};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function zMe(e,t,n){return t||`${_Kt(e)}?${TKt(e,n)}`}var bKt,GMe=v(()=>{bKt="7"});function vKt(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 CX(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 vKt(r)}function VMe(e,t){let n={};return t.forEach(r=>{r&&DX(e,r,n)}),n}function MX(e,t){for(let n of t)n?.afterAllSetup&&n.afterAllSetup(e)}function DX(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,!NX.includes(t.name)&&typeof t.setupOnce=="function"&&(t.setupOnce(),NX.push(t.name)),t.setup&&typeof t.setup=="function"&&t.setup(e),typeof t.preprocessEvent=="function"){let r=t.preprocessEvent.bind(t);e.on("preprocessEvent",(i,s)=>r(i,s,e))}if(typeof t.processEvent=="function"){let r=t.processEvent.bind(t),i=Object.assign((s,o)=>r(s,o,e),{id:t.name});e.addEventProcessor(i)}Fe&&Z.log(`Integration installed: ${t.name}`)}var NX,LX=v(()=>{Pi();_r();NX=[]});function WMe(e,t){return t?Ja(t,()=>{let n=Yl(),r=n?Ny(n):xE(t);return[n?Ps(n):Fp(e,t),r]}):[void 0,void 0]}var KMe=v(()=>{go();Em();Oc()});function RKt(e){return[{type:"log",item_count:e.length,content_type:"application/vnd.sentry.items.log+json"},{items:e}]}function YMe(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,[RKt(e)])}var ZMe=v(()=>{bm();_m()});function nA(e,t){let n=t??AKt(e)??[];if(n.length===0)return;let r=e.getOptions(),i=YMe(n,r._metadata,r.tunnel,e.getDsn());JMe().set(e,[]),e.emit("flushLogs"),e.sendEnvelope(i)}function AKt(e){return JMe().get(e)}function JMe(){return tf("clientToLogBufferMap",()=>new WeakMap)}var UX=v(()=>{Gl();ZMe()});function wKt(e){return[{type:"trace_metric",item_count:e.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{items:e}]}function XMe(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,[wKt(e)])}var QMe=v(()=>{bm();_m()});function $Me(e,t){let n=t??kKt(e)??[];if(n.length===0)return;let r=e.getOptions(),i=XMe(n,r._metadata,r.tunnel,e.getDsn());eDe().set(e,[]),e.emit("flushMetrics"),e.sendEnvelope(i)}function kKt(e){return eDe().get(e)}function eDe(){return tf("clientToMetricBufferMap",()=>new WeakMap)}var tDe=v(()=>{Gl();QMe()});function hH(e){return typeof e=="object"&&typeof e.unref=="function"&&e.unref(),e}var FX=v(()=>{});function rA(e=100){let t=new Set;function n(){return t.sizer(a),()=>r(a)),a}function s(o){if(!t.size)return Tm(!0);let a=Promise.allSettled(Array.from(t)).then(()=>!0);if(!o)return a;let c=[a,new Promise(u=>hH(setTimeout(()=>u(!1),o)))];return Promise.race(c)}return{get $(){return Array.from(t)},add:i,drain:s}}var sP,mH=v(()=>{eA();FX();sP=Symbol.for("SentryBufferFullError")});function xKt(e,t=Vl()){let n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;let r=Date.parse(`${e}`);return isNaN(r)?IKt:r-t}function OKt(e,t){return e[t]||e.all||0}function nDe(e,t,n=Vl()){return OKt(e,t)>n}function rDe(e,{statusCode:t,headers:n},r=Vl()){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+xKt(o,r):t===429&&(i.all=r+60*1e3);return i}var IKt,iDe=v(()=>{Ey();IKt=60*1e3});function aP(e,t,n=rA(e.bufferSize||oP)){let r={},i=o=>n.drain(o);function s(o){let a=[];if(XO(o,(d,f)=>{let p=rH(f);nDe(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(SX(c,["client_report"])){Fe&&Z.warn(`Dropping client report. Will not send outcomes (reason: ${d}).`);return}XO(c,(f,p)=>{e.recordDroppedEvent(d,rH(p))})},l=()=>t({body:QO(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=rDe(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===sP)return Fe&&Z.error("Skipped sending event because buffer is full."),u("queue_overflow"),Promise.resolve({});throw d})}return{send:s,flush:i}}var oP,gH=v(()=>{Pi();_r();_m();mH();iDe();oP=64});function sDe(e,t,n){let r=[{type:"client_report"},{timestamp:n||mm(),discarded_events:e}];return Pc(t?{dsn:t}:{},[r])}var oDe=v(()=>{_m();wy()});function yH(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 jX=v(()=>{});function aDe(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?.[GR],exclusive_time:o?.[VR],measurements:e.measurements,is_segment:!0}}function cDe(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&&{[GR]:e.profile_id},...e.exclusive_time&&{[VR]:e.exclusive_time}}}},measurements:e.measurements}}var uDe=v(()=>{Lo()});function SH(e){return{message:e,[yDe]:!0}}function HX(e){return{message:e,[SDe]:!0}}function fDe(e){return!!e&&typeof e=="object"&&yDe in e}function pDe(e){return!!e&&typeof e=="object"&&SDe in e}function hDe(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=hH(setTimeout(()=>{i(e)},PKt)))}),e.on("flush",()=>{i(e)})}function mDe(e){return e==="replay_event"?"replay":e||"error"}function NKt(e,t){let n=`${t} must return \`null\` or a valid event.`;if(sa(e))return e.then(r=>{if(!pm(r)&&r!==null)throw SH(n);return r},r=>{throw SH(`${t} rejected with ${r}`)});if(!pm(e)&&e!==null)throw SH(n);return e}function CKt(e,t,n,r){let{beforeSend:i,beforeSendTransaction:s,beforeSendSpan:o,ignoreSpans:a}=t,c=n;if(qX(c)&&i)return i(c,r);if(bDe(c)){if(o||a){let u=aDe(c);if(a?.length&&JO(u,a))return null;if(o){let l=o(u);l?c=ky(n,cDe(l)):YO()}if(c.spans){let l=[],d=c.spans;for(let p of d){if(a?.length&&JO(p,a)){SMe(d,p);continue}if(o){let h=o(p);h?l.push(h):(YO(),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 qX(e){return e.type===void 0}function bDe(e){return e.type==="transaction"}function MKt(e){let t=0;return e.name&&(t+=e.name.length*2),t+=8,t+EDe(e.attributes)}function DKt(e){let t=0;return e.message&&(t+=e.message.length*2),t+EDe(e.attributes)}function EDe(e){if(!e)return 0;let t=0;return Object.values(e).forEach(n=>{Array.isArray(n)?t+=n.length*gDe(n[0]):HO(n)?t+=gDe(n):t+=100}),t}function gDe(e){return typeof e=="string"?e.length*2:typeof e=="number"?8:typeof e=="boolean"?4:0}var lDe,dDe,yDe,SDe,PKt,bH,_De=v(()=>{GMe();eH();go();Pi();TX();LX();UX();tDe();Hj();Em();gH();oDe();_r();bm();_m();jX();Ka();qj();Lp();KR();PX();mH();Ey();fX();Oc();eA();FX();uDe();lDe="Not capturing exception because it's already been captured.",dDe="Discarded session because of missing or non-string release",yDe=Symbol.for("SentryInternalError"),SDe=Symbol.for("SentryDoNotSendEventError"),PKt=5e3;bH=class{constructor(t){if(this._options=t,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=rA(t.transportOptions?.bufferSize??oP),t.dsn?this._dsn=cMe(t.dsn):Fe&&Z.warn("No DSN provided, client will not send events."),this._dsn){let r=zMe(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&&hDe(this,"afterCaptureLog","flushLogs",DKt,nA),(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)&&hDe(this,"afterCaptureMetric","flushMetrics",MKt,$Me)}captureException(t,n,r){let i=mo();if(jj(t))return Fe&&Z.log(lDe),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=FR(t)?t:String(t),a=HO(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&&jj(n.originalException))return Fe&&Z.log(lDe),i;let s={event_id:i,...n},o=t.sdkProcessingMetadata||{},a=o.capturedSpanScope,c=o.capturedSpanIsolationScope,u=mDe(t.type);return this._process(()=>this._captureEvent(t,s,a||r,c),u),s.event_id}captureSession(t){this.sendSession(t),gm(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){nA(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];DX(this,t,this._integrations),n||MX(this,[t])}sendEvent(t,n={}){this.emit("beforeSendEvent",t,n);let r=vMe(t,this._dsn,this._options._metadata,this._options.tunnel);for(let i of n.attachments||[])r=yX(r,EX(i));this.sendEnvelope(r).then(i=>this.emit("afterSendEvent",t,i))}sendSession(t){let{release:n,environment:r=ZR}=this._options;if("aggregates"in t){let s=t.attrs||{};if(!s.release&&!n){Fe&&Z.warn(dDe);return}s.release=s.release||n,s.environment=s.environment||r,t.attrs=s}else{if(!t.release&&!n){Fe&&Z.warn(dDe);return}t.release=t.release||n,t.environment=t.environment||r}this.emit("beforeSendSession",t);let i=TMe(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=VMe(this,t),MX(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)&&(gm(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),qMe(s,t,n,r,this,i).then(a=>{if(a===null)return a;this.emit("postprocessEvent",a,n),a.contexts={trace:{...a.contexts?.trace,...xE(r)},...a.contexts};let c=Fp(this,r);return a.sdkProcessingMetadata={dynamicSamplingContext:c,...a.sdkProcessingMetadata},a})}_captureEvent(t,n={},r=Fn(),i=vn()){return Fe&&qX(t)&&Z.log(`Captured error event \`${yH(t)[0]||""}\``),this._processEvent(t,n,r,i).then(s=>s.event_id,s=>{Fe&&(pDe(s)?Z.log(s.message):fDe(s)?Z.warn(s.message):Z.warn(s))})}_processEvent(t,n,r,i){let s=this.getOptions(),{sampleRate:o}=s,a=bDe(t),c=qX(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"),$R(HX(`Discarding event because it's not included in the random sample (sampling rate = ${o})`));let f=mDe(t.type);return this._prepareEvent(t,n,r,i).then(p=>{if(p===null)throw this.recordDroppedEvent("event_processor",f),HX("An event processor returned `null`, will not send event.");if(n.data?.__sentry__===!0)return p;let m=CKt(this,s,p,n);return NKt(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 HX(`${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 pDe(p)||fDe(p)?p:(this.captureException(p,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:p}),SH(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. +Reason: ${p}`))})}_process(t,n){this._numProcessing++,this._promiseBuffer.add(t).then(r=>(this._numProcessing--,r),r=>(this._numProcessing--,r===sP&&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=sDe(t,this._options.tunnel&&al(this._dsn));this.sendEnvelope(n)}}});function TDe(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=LKt(e);return Pc(s,[o])}function LKt(e){return[{type:"check_in"},e]}var vDe=v(()=>{bm();_m()});function RDe(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 ADe=v(()=>{});function wDe(e,t){return e(t.stack||"",1)}function UKt(e){return Mp(e)&&"__sentry_fetch_url_host__"in e&&typeof e.__sentry_fetch_url_host__=="string"}function FKt(e){return UKt(e)?`${e.message} (${e.__sentry_fetch_url_host__})`:e.message}function BX(e,t){let n={type:t.name||t.constructor.name,value:FKt(t)},r=wDe(e,t);return r.length&&(n.stacktrace={frames:r}),n}function jKt(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];if(n instanceof Error)return n}}function HKt(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=zJ(e);if(LJ(e))return`Event \`ErrorEvent\` captured as exception with message \`${e.message}\``;let n=qKt(e);return`${n&&n!=="Object"?`'${n}'`:"Object"} captured as exception with keys: ${t}`}function qKt(e){try{let t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}function BKt(e,t,n,r){if(Mp(n))return[n,void 0];if(t.synthetic=!0,pm(n)){let s=e?.getOptions().normalizeDepth,o={__serialized__:mX(n,s)},a=jKt(n);if(a)return[a,o];let c=HKt(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 kDe(e,t,n,r){let s=r?.data&&r.data.mechanism||{handled:!0,type:"generic"},[o,a]=BKt(e,s,n,r),c={exception:{values:[BX(t,o)]}};return a&&(c.extra=a),YJ(c,void 0,void 0),HR(c,s),{...c,event_id:r?.event_id}}function IDe(e,t,n="info",r,i){let s={event_id:r?.event_id,level:n};if(i&&r?.syntheticException){let o=wDe(e,r.syntheticException);o.length&&(s.exception={values:[{value:t,stacktrace:{frames:o}}]},HR(s,{synthetic:!0}))}if(FR(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 zX=v(()=>{Ka();Lp();nH();nf()});function xDe(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 cP,ODe=v(()=>{vDe();_De();go();Pi();gMe();_r();Lp();gH();ADe();zX();mH();eA();KMe();cP=class extends bH{constructor(t){mMe(),RDe(t),super(t),this._setUpMetricsProcessing()}eventFromException(t,n){let r=kDe(this,this._options.stackParser,t,n);return r.level="error",Tm(r)}eventFromMessage(t,n="info",r){return Tm(IDe(this._options.stackParser,t,n,r,this._options.attachStacktrace))}captureException(t,n,r){return xDe(n),super.captureException(t,n,r)}captureEvent(t,n,r){return!t.type&&t.exception?.values&&t.exception.values.length>0&&xDe(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]=WMe(this,r);d&&(u.contexts={trace:d});let f=TDe(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=rA(oP)}_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 VX(e){e.forEach(t=>{GX.add(t),Fe&&Z.log(`AI provider "${t}" wrapping will be skipped`)})}function LE(e){return GX.has(e)}function WX(){GX.clear(),Fe&&Z.log("Cleared AI provider skip registrations")}var GX,PDe=v(()=>{Pi();_r();GX=new Set});function iA(e,t){let n=String(e).toLowerCase();return zKt.has(n)?!1:GKt.has(n)?!0:t?.strict?null:!!e}var zKt,GKt,NDe=v(()=>{zKt=new Set(["false","f","n","no","off","0"]),GKt=new Set(["true","t","y","yes","on","1"])});function KX(e){return"isRelative"in e}function uP(e,t){let n=e.indexOf("://")<=0&&e.indexOf("//")!==0,r=t??(n?VKt: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 CDe(e){if(KX(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 WKt(e,t,n,r){let i=n?.method?.toUpperCase()??"GET",s=r||(e?t==="client"?CDe(e):e.pathname:"/");return`${i} ${s}`}function YX(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[cX]=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")),KX(e)||(s[xy]=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))),[WKt(e,t,r,i),s]}function Ly(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 vm(e){return e.split(/[?#]/,1)[0]}function Uy(e){let{protocol:t,host:n,path:r}=e,i=n?.replace(/^.*@/,"[filtered]:[filtered]@").replace(/(:80)$/,"").replace(/(:443)$/,"")||"";return`${t?`${t}://`:""}${i}${r}`}function sA(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 VKt,MDe=v(()=>{Lo();VKt="thismessage:/"});function UE(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:Cn})),i.version=Cn)}var DDe=v(()=>{Pj()});function oA(e={}){let t=e.client||ct();if(!fH()||!t)return{};let n=xc(),r=rf(n);if(r.getTraceData)return r.getTraceData(e);let i=e.scope||Fn(),s=e.span||Yl();if(!s&&tX())return{};let o=s?Qj(s):KKt(i),a=s?Ps(s):Fp(t,i),c=OE(a);if(!Kj.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?pMe(s):YKt(i)),l}function KKt(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Oy(t,r,n)}function YKt(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Py(t,r,n)}var LDe=v(()=>{zR();Gl();go();ul();_r();Oc();Em();VO();Yj()});function FE(e,t,n){if(typeof e!="string"||!t)return!0;let r=n?.get(e);if(r!==void 0)return Fe&&!r&&Z.log(UDe,e),r;let i=Ty(e,t);return n?.set(e,i),Fe&&!i&&Z.log(UDe,e),i}var UDe,FDe=v(()=>{Pi();_r();vy();UDe="[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:"});function ZX(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 jDe=v(()=>{});function zDe(e){let t=Object.create(null);try{Object.entries(e).forEach(([n,r])=>{typeof r=="string"&&(t[n]=r)})}catch{}return t}function lP(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=ZKt({url:o,host:r,protocol:s}),c=e.body||void 0,u=e.cookies;return{url:a,method:e.method,query_string:GDe(o),headers:zDe(t),cookies:u,data:c}}function ZKt({url:e,protocol:t,host:n}){if(e?.startsWith("http"))return e;if(e&&n)return`${t}://${n}${e}`}function EH(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();BDe(r,o,g,m,t,n)}}else BDe(r,o,"",s,t,n)})}catch{}return r}function qDe(e){return e.replace(/-/g,"_")}function BDe(e,t,n,r,i,s){let o=XKt(n||t,r,i);if(o==null)return;let a=`http.${s}.header.${qDe(t)}${n?`.${qDe(n)}`:""}`;e[a]=o}function XKt(e,t,n){if(n?HDe.some(i=>e.includes(i)):[...JKt,...HDe].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 GDe(e){if(e)try{let t=new URL(e,"http://s.io").search.slice(1);return t.length?t:void 0}catch{return}}var HDe,JKt,VDe=v(()=>{HDe=["auth","token","secret","session","password","passwd","pwd","key","jwt","bearer","sso","saml","csrf","xsrf","credentials","set-cookie","cookie"],JKt=["x-forwarded-","-user"]});function Zl(e,t){let n=ct(),r=vn();if(!n)return;let{beforeBreadcrumb:i=null,maxBreadcrumbs:s=QKt}=n.getOptions();if(s<=0)return;let a={timestamp:mm(),...e},c=i?xs(()=>i(a,t)):a;c!==null&&(n.emit&&n.emit("beforeAddBreadcrumb",c,t),r.addBreadcrumb(c,s))}var QKt,JX=v(()=>{go();_r();wy();QKt=100});var WDe,$Kt,KDe,e3t,_H,YDe=v(()=>{go();nf();$Kt="FunctionToString",KDe=new WeakMap,e3t=(()=>({name:$Kt,setupOnce(){WDe=Function.prototype.toString;try{Function.prototype.toString=function(...e){let t=BJ(this),n=KDe.has(ct())&&t!==void 0?t:this;return WDe.apply(n,e)}}catch{}},setup(e){KDe.set(e,!0)}})),_H=e3t});function ZDe(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:t3t],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function r3t(e,t){if(e.type){if(e.type==="transaction"&&s3t(e,t.ignoreTransactions))return Fe&&Z.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. +Event: ${Ry(e)}`),!0}else{if(i3t(e,t.ignoreErrors))return Fe&&Z.warn(`Event dropped due to being matched by \`ignoreErrors\` option. +Event: ${Ry(e)}`),!0;if(u3t(e))return Fe&&Z.warn(`Event dropped due to not having an error message, error type or stacktrace. +Event: ${Ry(e)}`),!0;if(o3t(e,t.denyUrls))return Fe&&Z.warn(`Event dropped due to being matched by \`denyUrls\` option. +Event: ${Ry(e)}. +Url: ${TH(e)}`),!0;if(!a3t(e,t.allowUrls))return Fe&&Z.warn(`Event dropped due to not being matched by \`allowUrls\` option. +Event: ${Ry(e)}. +Url: ${TH(e)}`),!0}return!1}function i3t(e,t){return t?.length?yH(e).some(n=>Ty(n,t)):!1}function s3t(e,t){if(!t?.length)return!1;let n=e.transaction;return n?Ty(n,t):!1}function o3t(e,t){if(!t?.length)return!1;let n=TH(e);return n?Ty(n,t):!1}function a3t(e,t){if(!t?.length)return!0;let n=TH(e);return n?Ty(n,t):!0}function c3t(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 TH(e){try{let n=[...e.exception?.values??[]].reverse().find(r=>r.mechanism?.parent_id===void 0&&r.stacktrace?.frames?.length)?.stacktrace?.frames;return n?c3t(n):null}catch{return Fe&&Z.error(`Cannot extract url for event ${Ry(e)}`),null}}function u3t(e){return e.exception?.values?.length?!e.message&&!e.exception.values.some(t=>t.stacktrace||t.type&&t.type!=="Error"||t.value):!1}var t3t,n3t,XX,vH,JDe=v(()=>{Pi();_r();jX();Lp();vy();t3t=[/^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$/],n3t="EventFilters",XX=(e={})=>{let t;return{name:n3t,setup(n){let r=n.getOptions();t=ZDe(e,r)},processEvent(n,r,i){if(!t){let s=i.getOptions();t=ZDe(e,s)}return r3t(n,t)?null:n}}},vH=((e={})=>({...XX(e),name:"InboundFilters"}))});function $De(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=QX(e,t,r,s.originalException,n,i.exception.values,o,0))}function QX(e,t,n,r,i,s,o,a){if(s.length>=n+1)return s;let c=[...s];if(Dp(r[i],Error)){XDe(o,a,r);let u=e(t,r[i]),l=c.length;QDe(u,i,l,a),c=QX(e,t,n,r[i],i,[u,...c],u,l)}return eLe(r)&&r.errors.forEach((u,l)=>{if(Dp(u,Error)){XDe(o,a,r);let d=e(t,u),f=c.length;QDe(d,`errors[${l}]`,f,a),c=QX(e,t,n,u,i,[d,...c],d,f)}}),c}function eLe(e){return Array.isArray(e.errors)}function XDe(e,t,n){e.mechanism={handled:!0,type:"auto.core.linked_errors",...eLe(n)&&{is_exception_group:!0},...e.mechanism,exception_id:t}}function QDe(e,t,n,r){e.mechanism={handled:!0,...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}var tLe=v(()=>{Ka()});var l3t,d3t,f3t,p3t,RH,nLe=v(()=>{tLe();zX();l3t="cause",d3t=5,f3t="LinkedErrors",p3t=((e={})=>{let t=e.limit||d3t,n=e.key||l3t;return{name:f3t,preprocessEvent(r,i,s){let o=s.getOptions();$De(BX,o.stackParser,n,t,r,i)}}}),RH=p3t});function rLe(e){let t={},n=0;for(;n{});function sLe(e){let t={};for(let s of Object.keys(e))t[s.toLowerCase()]=e[s];return $X.map(s=>{let o=t[s.toLowerCase()],a=Array.isArray(o)?o.join(";"):o;return s==="Forwarded"?h3t(a):a?.split(",").map(c=>c.trim())}).reduce((s,o)=>o?s.concat(o):s,[]).find(s=>s!==null&&m3t(s))||null}function h3t(e){if(!e)return null;for(let t of e.split(";"))if(t.startsWith("for="))return t.slice(4);return null}function m3t(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 $X,oLe=v(()=>{$X=["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 b3t(e,t,n,r){if(e.request={...e.request,...E3t(t,r)},r.ip){let i=t.headers&&sLe(t.headers)||n.ipAddress;i&&(e.user={...e.user,ip_address:i})}}function E3t(e,t){let n={},r={...e.headers};if(t.headers&&(n.headers=r,t.cookies||delete r.cookie,t.ip||$X.forEach(i=>{delete r[i]})),n.method=e.method,t.url&&(n.url=e.url),t.cookies){let i=e.cookies||(r?.cookie?rLe(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 g3t,y3t,S3t,AH,aLe=v(()=>{iLe();oLe();g3t={cookies:!0,data:!0,headers:!0,query_string:!0,url:!0},y3t="RequestData",S3t=((e={})=>{let t={...g3t,...e.include};return{name:y3t,processEvent(n,r,i){let{sdkProcessingMetadata:s={}}=n,{normalizedRequest:o,ipAddress:a}=s,c={...t,ip:t.ip??i.getOptions().sendDefaultPii};return o&&b3t(n,o,{ipAddress:a},c),n}}}),AH=S3t});function cLe(e){let t="console";DR(t,e),LR(t,_3t)}function _3t(){"console"in qt&&FO.forEach(function(e){e in qt.console&&qJ(qt.console,e,function(t){return CR[e]=t,function(...n){UR("console",{args:n,level:e}),CR[e]?.apply(qt.console,n)}})})}var uLe=v(()=>{_r();nf();Wa();Lj()});function lLe(e){return e==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(e)?e:"log"}var dLe=v(()=>{});function v3t(e){let t=e.length>1024?`${e.slice(-1024)}`:e,n=T3t.exec(t);return n?n.slice(1):[]}function eQ(e){let t=v3t(e),n=t[0]||"",r=t[1];return!n&&!r?".":(r&&(r=r.slice(0,r.length-1)),n+r)}var T3t,fLe=v(()=>{T3t=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/});function rQ(e,t){return!e||typeof e!="function"?(Fe&&Z.warn("instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance"),e):nQ(e,{requireParentSpan:!0,...t})}function nQ(e,t,n){if(e[tQ])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&&hLe(a,r,t),a},get(i,s){let o=i[s];return typeof s!="string"||typeof o!="function"?o:s==="unsafe"||s==="file"?w3t(o,i,r,t):s==="begin"||s==="reserve"?k3t(o,i,r,t):o}});return n?r[wH]=n:N3t(e,r),e[tQ]=!0,r[tQ]=!0,r}function w3t(e,t,n,r){return function(...i){let s=Reflect.apply(e,t,i);return s&&typeof s=="object"&&"handle"in s&&hLe(s,n,r),s}}function k3t(e,t,n,r){return function(...i){let s=n[wH];if(!(typeof i[i.length-1]=="function")){let l=Reflect.apply(e,t,i);return l&&typeof l.then=="function"?l.then(d=>nQ(d,r,s)):l}let a=i.length===1?i[0]:i[1],c=function(l){let d=nQ(l,r,s);return a(d)},u=i.length===1?[c]:[i[0],c];return Reflect.apply(e,t,u)}}function hLe(e,t,n){if(e.handle?.__sentryWrapped)return;e[A3t]=!0;let r=e.handle,i=async function(...s){if(!I3t(n))return r.apply(this,s);let o=x3t(e.strings),a=O3t(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[wH]:void 0;if(P3t(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{pLe(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"),pLe(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 I3t(e){return Yl()!==void 0||!e.requireParentSpan}function x3t(e){if(e?.length)return e.length===1?e[0]||void 0:e.reduce((t,n,r)=>r===0?n:`${t}$${r}${n}`,"")}function O3t(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();My();R3t=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,wH=Symbol("sentryPostgresConnectionContext"),tQ=Symbol.for("sentry.instrumented.postgresjs"),A3t=Symbol.for("sentry.query.from.instrumented.sql")});function M3t(e,t){let n={category:"console",data:{arguments:t,logger:"console"},level:lLe(e),message:gLe(t)};if(e==="assert")if(t[0]===!1){let r=t.slice(1);n.message=r.length>0?`Assertion failed: ${gLe(r)}`:"Assertion failed",n.data.arguments=r}else return;Zl(n,{input:t,level:e})}function gLe(e){return"util"in qt&&typeof qt.util.format=="function"?qt.util.format(...e):VJ(e," ")}var C3t,kH,yLe=v(()=>{JX();go();uLe();_r();dLe();vy();Wa();C3t="Console",kH=(e={})=>{let t=new Set(e.levels||FO);return{name:C3t,setup(n){cLe(({args:r,level:i})=>{ct()!==n||!t.has(i)||M3t(i,r)})}}}});var D3t,L3t,iQ,SLe=v(()=>{go();Lo();D3t="ConversationId",L3t=(()=>({name:D3t,setup(e){e.on("spanStart",t=>{let n=Fn().getScopeData(),r=vn().getScopeData(),i=n.conversationId||r.conversationId;i&&t.setAttribute(uX,i)})}})),iQ=L3t});function IH(e,t={},n=Fn()){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 bLe=v(()=>{go()});var ELe,Fy,us,aA,jy,cA,Hy,uA,qy,xH,_Le,TLe,du,yo,Jl,vLe,di,Ns,Nc,oa,Cc,aa,RLe,ll,Gs,jp,jE,Fo,sQ,ALe,dP,wLe,kLe,oQ,By,OH,ILe,xLe,OLe,PLe,lA,NLe,CLe,MLe,DLe,HE,aQ,cQ,PH,NH,LLe,uQ,lQ,dQ,ULe,FLe,fQ,Xa=v(()=>{ELe="gen_ai.prompt",Fy="gen_ai.system",us="gen_ai.request.model",aA="gen_ai.request.stream",jy="gen_ai.request.temperature",cA="gen_ai.request.max_tokens",Hy="gen_ai.request.frequency_penalty",uA="gen_ai.request.presence_penalty",qy="gen_ai.request.top_p",xH="gen_ai.request.top_k",_Le="gen_ai.request.encoding_format",TLe="gen_ai.request.dimensions",du="gen_ai.response.finish_reasons",yo="gen_ai.response.model",Jl="gen_ai.response.id",vLe="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",RLe="gen_ai.output.messages",ll="gen_ai.system_instructions",Gs="gen_ai.response.text",jp="gen_ai.request.available_tools",jE="gen_ai.response.streaming",Fo="gen_ai.response.tool_calls",sQ="gen_ai.agent.name",ALe="gen_ai.pipeline.name",dP="gen_ai.conversation.id",wLe="gen_ai.usage.cache_creation_input_tokens",kLe="gen_ai.usage.cache_read_input_tokens",oQ="gen_ai.usage.input_tokens.cache_write",By="gen_ai.usage.input_tokens.cached",OH="gen_ai.invoke_agent",ILe="gen_ai.generate_text",xLe="gen_ai.stream_text",OLe="gen_ai.generate_object",PLe="gen_ai.stream_object",lA="gen_ai.embeddings.input",NLe="gen_ai.embeddings",CLe="gen_ai.embeddings",MLe="gen_ai.rerank",DLe="gen_ai.execute_tool",HE="gen_ai.tool.name",aQ="gen_ai.tool.call.id",cQ="gen_ai.tool.type",PH="gen_ai.tool.input",NH="gen_ai.tool.output",LLe="gen_ai.tool.description",uQ="openai.response.id",lQ="openai.response.model",dQ="openai.response.timestamp",ULe="openai.usage.completion_tokens",FLe="openai.usage.prompt_tokens",fQ="anthropic.response.timestamp"});var fP,pQ,hQ,jLe,HLe,qLe,mQ=v(()=>{fP=new Map,pQ=new Set(["ai.generateText","ai.streamText","ai.generateObject","ai.streamObject"]),hQ=new Set(["ai.generateText.doGenerate","ai.streamText.doStream","ai.generateObject.doGenerate","ai.streamObject.doStream"]),jLe=new Set(["ai.embed.doEmbed","ai.embedMany.doEmbed"]),HLe=new Set(["ai.rerank.doRerank"]),qLe={"ai.embed.doEmbed":"embeddings","ai.embedMany.doEmbed":"embeddings","ai.rerank.doRerank":"rerank"}});function zy(e){return!e||typeof e!="object"?!1:F3t(e)||zLe(e)||U3t(e)||GLe(e)||VLe(e)||j3t(e)||H3t(e)||q3t(e)||B3t(e)||z3t(e)||G3t(e)||V3t(e)}function U3t(e){return"image_url"in e?typeof e.image_url=="string"?e.image_url.startsWith("data:"):BLe(e):!1}function BLe(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 F3t(e){return"type"in e&&typeof e.type=="string"&&"source"in e&&zy(e.source)}function zLe(e){return"inlineData"in e&&!!e.inlineData&&typeof e.inlineData=="object"&&"data"in e.inlineData&&typeof e.inlineData.data=="string"}function GLe(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 VLe(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 j3t(e){return"media_type"in e&&typeof e.media_type=="string"&&"data"in e}function H3t(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 q3t(e){return"type"in e&&e.type==="image"&&"image"in e&&typeof e.image=="string"&&!e.image.startsWith("http://")&&!e.image.startsWith("https://")}function B3t(e){return"type"in e&&(e.type==="blob"||e.type==="base64")}function z3t(e){return"b64_json"in e}function G3t(e){return"type"in e&&"result"in e&&e.type==="image_generation"}function V3t(e){return"uri"in e&&typeof e.uri=="string"&&e.uri.startsWith("data:")}function qE(e){let t={...e};zy(t.source)&&(t.source=qE(t.source)),zLe(e)&&(t.inlineData={...e.inlineData,data:pP}),BLe(e)&&(t.image_url={...e.image_url,url:pP}),GLe(e)&&(t.input_audio={...e.input_audio,data:pP}),VLe(e)&&(t.file={...e.file,file_data:pP});for(let n of W3t)typeof t[n]=="string"&&(t[n]=pP);return t}var pP,W3t,gQ=v(()=>{pP="[Blob substitute]",W3t=["image_url","data","content","b64_json","result","uri","image"]});function MH(e,t){if(CH(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);CH(o)<=t?(i=o,n=s+1):r=s-1}return i}function K3t(e){return typeof e=="string"?e:"text"in e&&typeof e.text=="string"?e.text:""}function WLe(e,t){return typeof e=="string"?t:{...e,text:t}}function Y3t(e){return e!==null&&typeof e=="object"&&"content"in e&&typeof e.content=="string"}function YLe(e){return e!==null&&typeof e=="object"&&"content"in e&&Array.isArray(e.content)}function ZLe(e){return e!==null&&typeof e=="object"&&"parts"in e&&Array.isArray(e.parts)&&e.parts.length>0}function Z3t(e,t){let n={...e,content:""},r=SQ(n),i=t-r;if(i<=0)return[];let s=MH(e.content,i);return[{...e,content:s}]}function J3t(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 X3t(e,t){let{key:n,items:r}=J3t(e);if(n===null||r.length===0)return[];let i=r.map(c=>WLe(c,"")),s=SQ({...e,[n]:i}),o=t-s;if(o<=0)return[];let a=[];for(let c of r){let u=K3t(c),l=CH(u);if(l<=o)a.push(c),o-=l;else if(a.length===0){let d=MH(u,o);d&&a.push(WLe(c,d));break}else break}return a.length<=0?[]:[{...e,[n]:a}]}function Q3t(e,t){if(!e)return[];if(typeof e=="string"){let n=MH(e,t);return n?[n]:[]}return typeof e!="object"?[]:Y3t(e)?Z3t(e,t):YLe(e)||ZLe(e)?X3t(e,t):[]}function yQ(e){return e.map(n=>{let r;return n&&typeof n=="object"&&(YLe(n)?r={...n,content:yQ(n.content)}:"content"in n&&zy(n.content)&&(r={...n,content:qE(n.content)}),ZLe(n)&&(r={...r??n,parts:yQ(n.parts)}),zy(r)?r=qE(r):zy(n)&&(r=qE(n))),r??n})}function $3t(e,t){if(!Array.isArray(e)||e.length===0)return e;let n=t-2,r=e[e.length-1],i=yQ([r]),s=i[0];return SQ(s)<=n?i:Q3t(s,n)}function Gy(e){return $3t(e,KLe)}function JLe(e){return MH(e,KLe)}var KLe,CH,SQ,hP=v(()=>{gQ();KLe=2e4,CH=e=>new TextEncoder().encode(e).length,SQ=e=>CH(JSON.stringify(e))});function Hp(e){let t=!!ct()?.getOptions().sendDefaultPii;return{...e,recordInputs:e?.recordInputs??t,recordOutputs:e?.recordOutputs??t}}function dA(e,t){return e?`${e}.${t}`:t}function mP(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 BE(e){if(typeof e=="string")return JLe(e);if(Array.isArray(e)){let t=Gy(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 e9t(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 fA(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 e9t(u,t,n)}:typeof a=="function"?a.bind(o):a}}):t}var qp=v(()=>{ul();go();Ka();Xa();hP()});var DH,XLe,LH,QLe,$Le,bQ,EQ,_Q,e1e,zE,pA,gP,t1e,n1e,r1e,i1e,s1e,o1e,TQ,vQ,a1e,c1e,RQ=v(()=>{DH="operation.name",XLe="ai.operationId",LH="ai.prompt",QLe="ai.schema",$Le="ai.response.object",bQ="ai.values",EQ="ai.response.text",_Q="ai.response.toolCalls",e1e="ai.response.finishReason",zE="ai.prompt.messages",pA="ai.prompt.tools",gP="ai.model.id",t1e="ai.response.providerMetadata",n1e="ai.usage.cachedInputTokens",r1e="ai.telemetry.functionId",i1e="ai.usage.completionTokens",s1e="ai.usage.promptTokens",o1e="ai.usage.tokens",TQ="ai.toolCall.name",vQ="ai.toolCall.id",a1e="ai.toolCall.args",c1e="ai.toolCall.result"});function l1e(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 AQ(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 t9t(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 d1e(e,t){let n=t9t(e);for(let r of e){if(r.op==="gen_ai.execute_tool"){let i=r.data[HE];if(typeof i=="string"){let s=n.get(i);s&&(r.data[LLe]=s)}}r.op==="gen_ai.invoke_agent"&&AQ(r,t)}}function wQ(e){return fP.get(e)}function kQ(e){fP.delete(e)}function f1e(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 u1e(e){return e.filter(t=>!!t&&typeof t=="object"&&"role"in t&&"content"in t)}function n9t(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(...u1e(n)),s;if(Array.isArray(r))return s.push(...u1e(r)),s;if(typeof r=="string"&&s.push({role:"user",content:r}),s.length>0)return s}}catch{}return[]}function p1e(e,t){if(typeof t[LH]=="string"&&!t[aa]&&!t[zE]){let n=t[LH],r=n9t(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=BE(s);e.setAttributes({[LH]:a,[aa]:a,[Cc]:o})}}else if(typeof t[zE]=="string")try{let n=JSON.parse(t[zE]);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=BE(i);e.setAttributes({[zE]:o,[aa]:o,[Cc]:s})}}catch{}}function h1e(e){switch(e){case"ai.generateText":case"ai.streamText":case"ai.generateObject":case"ai.streamObject":return OH;case"ai.generateText.doGenerate":return ILe;case"ai.streamText.doStream":return xLe;case"ai.generateObject.doGenerate":return OLe;case"ai.streamObject.doStream":return PLe;case"ai.embed.doEmbed":return NLe;case"ai.embedMany.doEmbed":return CLe;case"ai.rerank.doRerank":return MLe;case"ai.toolCall":return DLe;default:return e.startsWith("ai.stream")?"ai.run":void 0}}var IQ=v(()=>{Xa();qp();mQ();RQ()});function r9t(e){return pQ.has(e)?"invoke_agent":hQ.has(e)?"generate_content":jLe.has(e)?"embeddings":HLe.has(e)?"rerank":e==="ai.toolCall"?"execute_tool":e}function i9t(e){let{data:t,description:n}=vt(e);if(n){if(t[TQ]&&t[vQ]&&n==="ai.toolCall"){u9t(e,t);return}!t[XLe]&&!n.startsWith("ai.")||l9t(e,n,t)}}function s9t(e){if(e.type==="transaction"&&e.spans){let t=new Map;for(let r of e.spans)c9t(r),l1e(r,t);d1e(e.spans,t);let n=e.contexts?.trace;n?.op==="gen_ai.invoke_agent"&&AQ(n,t)}return e}function o9t(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 a9t(e){let t=e[EQ],n=e[_Q],r=e[e1e];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[_Q]}}catch{}if(i.length>0){let s={role:"assistant",parts:i,finish_reason:o9t(r)};e[RLe]=JSON.stringify([s]),delete e[EQ]}}function c9t(e){let{data:t,origin:n}=e;if(n==="auto.vercelai.otel"){if(e.status&&e.status!=="ok"&&(e.status="internal_error"),ca(t,i1e,Ns),ca(t,s1e,di),ca(t,n1e,By),ca(t,"ai.usage.inputTokens",di),ca(t,"ai.usage.outputTokens",Ns),ca(t,o1e,di),ca(t,"ai.response.avgOutputTokensPerSecond","ai.response.avgCompletionTokensPerSecond"),typeof t[di]=="number"&&typeof t[By]=="number"&&(t[di]=t[di]+t[By]),typeof t[di]=="number"){let r=typeof t[Ns]=="number"?t[Ns]:0;t[Nc]=r+t[di]}if(t[pA]&&Array.isArray(t[pA])&&(t[pA]=f1e(t[pA])),t[DH]){let r=r9t(t[DH]);t[oa]=r,delete t[DH]}if(ca(t,zE,aa),a9t(t),ca(t,$Le,"gen_ai.response.object"),ca(t,pA,"gen_ai.request.available_tools"),ca(t,a1e,PH),ca(t,c1e,NH),ca(t,QLe,"gen_ai.request.schema"),ca(t,gP,us),Array.isArray(t[bQ])){let r=t[bQ].map(i=>{try{return JSON.parse(i)}catch{return i}});t[lA]=r.length===1?r[0]:JSON.stringify(r)}d9t(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 u9t(e,t){e.setAttribute(At,"auto.vercelai.otel"),e.setAttribute(zt,"gen_ai.execute_tool"),e.setAttribute(oa,"execute_tool"),ca(t,TQ,HE),ca(t,vQ,aQ);let n=t[aQ];typeof n=="string"&&fP.set(n,e.spanContext()),t[cQ]||e.setAttribute(cQ,"function");let r=t[HE];r&&e.updateName(`execute_tool ${r}`)}function l9t(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[r1e];i&&typeof i=="string"&&e.setAttribute("gen_ai.function_id",i),p1e(e,n),n[gP]&&!n[yo]&&e.setAttribute(yo,n[gP]),e.setAttribute("ai.streaming",t.includes("stream"));let s=h1e(t);if(s&&e.setAttribute(zt,s),pQ.has(t)){i&&typeof i=="string"?e.updateName(`invoke_agent ${i}`):e.updateName("invoke_agent");return}let o=n[gP];if(o){let a=hQ.has(t)?"generate_content":qLe[t];a&&e.updateName(`${a} ${o}`)}}function UH(e){e.on("spanStart",i9t),e.addEventProcessor(Object.assign(s9t,{id:"VercelAiEventProcessor"}))}function d9t(e){let t=e[t1e];if(t)try{let n=JSON.parse(t),r=n.openai??n.azure;if(r&&(df(e,By,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,By,i);let s=n.anthropic.usage?.cache_creation_input_tokens??n.anthropic.cacheCreationInputTokens;df(e,oQ,s)}n.bedrock?.usage&&(df(e,By,n.bedrock.usage.cacheReadInputTokens),df(e,oQ,n.bedrock.usage.cacheWriteInputTokens)),n.deepseek&&(df(e,By,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 m1e=v(()=>{Lo();Oc();Xa();mQ();IQ();RQ()});var Vy,g1e,f9t,y1e,FH=v(()=>{Vy="OpenAI",g1e={"responses.create":{operation:"chat"},"chat.completions.create":{operation:"chat"},"embeddings.create":{operation:"embeddings"},"conversations.create":{operation:"chat"}},f9t=["response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"],y1e=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta",...f9t]});function S1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion"}function b1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="response"}function E1e(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 _1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="conversation"}function T1e(e){return e!==null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"&&e.type.startsWith("response.")}function v1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion.chunk"}function R1e(e,t,n){if(jH(e,t.id,t.model,t.created),t.usage&&yP(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 A1e(e,t,n){if(jH(e,t.id,t.model,t.created_at),t.status&&e.setAttributes({[du]:JSON.stringify([t.status])}),t.usage&&yP(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 w1e(e,t){e.setAttributes({[lQ]:t.model,[yo]:t.model}),t.usage&&yP(e,t.usage.prompt_tokens,void 0,t.usage.total_tokens)}function k1e(e,t){let{id:n,created_at:r}=t;e.setAttributes({[uQ]:n,[Jl]:n,[dP]:n}),r&&e.setAttributes({[dQ]:new Date(r*1e3).toISOString()})}function yP(e,t,n,r){t!==void 0&&e.setAttributes({[FLe]:t,[di]:t}),n!==void 0&&e.setAttributes({[ULe]:n,[Ns]:n}),r!==void 0&&e.setAttributes({[Nc]:r})}function jH(e,t,n,r){e.setAttributes({[uQ]:t,[Jl]:t}),e.setAttributes({[lQ]:n,[yo]:n}),e.setAttributes({[dQ]:new Date(r*1e3).toISOString()})}function p9t(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 I1e(e){let t={[us]:e.model??"unknown"};"temperature"in e&&(t[jy]=e.temperature),"top_p"in e&&(t[qy]=e.top_p),"frequency_penalty"in e&&(t[Hy]=e.frequency_penalty),"presence_penalty"in e&&(t[uA]=e.presence_penalty),"stream"in e&&(t[aA]=e.stream),"encoding_format"in e&&(t[_Le]=e.encoding_format),"dimensions"in e&&(t[TLe]=e.dimensions);let n=p9t(e);return n&&(t[dP]=n),t}var xQ=v(()=>{Xa()});function h9t(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 m9t(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&&h9t(r.delta.tool_calls,t)),r.finish_reason&&t.finishReasons.push(r.finish_reason)}function g9t(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(!y1e.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*x1e(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)v1e(i)?m9t(i,r,n):T1e(i)&&g9t(i,r,n,t),yield i}finally{jH(t,r.responseId,r.responseModel,r.responseTimestamp),yP(t,r.promptTokens,r.completionTokens,r.totalTokens),t.setAttributes({[jE]:!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 O1e=v(()=>{ul();Xa();FH();xQ()});function y9t(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 S9t(e,t){let n={[Fy]:"openai",[oa]:t,[At]:"auto.ai.openai"};if(e.length>0&&typeof e[0]=="object"&&e[0]!==null){let r=e[0],i=y9t(r);i&&(n[jp]=i),Object.assign(n,I1e(r))}else n[us]="unknown";return n}function b9t(e,t,n){if(!t||typeof t!="object")return;let r=t;if(S1e(r)){if(R1e(e,r,n),n&&r.choices?.length){let i=r.choices.map(s=>s.message?.content||"");e.setAttributes({[Gs]:JSON.stringify(i)})}}else b1e(r)?(A1e(e,r,n),n&&r.output_text&&e.setAttributes({[Gs]:r.output_text})):E1e(r)?w1e(e,r):_1e(r)&&k1e(e,r)}function P1e(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(lA,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=BE(s);e.setAttribute(aa,o),Array.isArray(s)?e.setAttribute(Cc,s.length):e.setAttribute(Cc,1)}function E9t(e,t,n,r,i){return function(...o){let a=n.operation,c=S9t(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&&P1e(y,l,a),(async()=>{try{let b=await m;return x1e(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 fA(m,g,"auto.ai.openai")}let p,h=lf(f,m=>(p=e.apply(r,o),i.recordInputs&&l&&P1e(m,l,a),p.then(g=>(b9t(m,g,i.recordOutputs),g),g=>{throw Wt(g,{mechanism:{handled:!1,type:"auto.ai.openai",data:{function:t}}}),g})));return fA(p,h,"auto.ai.openai")}}function N1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=dA(t,String(i)),a=g1e[o];return typeof s=="function"&&a?E9t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?N1e(s,o,n):s}})}function HH(e,t){return N1e(e,"",Hp(t))}var C1e=v(()=>{Pi();ul();Lo();_r();My();Xa();qp();FH();O1e();xQ()});var Wy,M1e,OQ=v(()=>{Wy="Anthropic_AI",M1e={"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 D1e(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]:BE(r),[Cc]:i})}function PQ(e){return e&&_9t[e]||"internal_error"}function L1e(e,t){t.error&&(e.setStatus({code:2,message:PQ(t.error.type)}),Wt(t.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}))}function U1e(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 _9t,NQ=v(()=>{ul();Xa();qp();_9t={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 T9t(e,t){return"type"in e&&typeof e.type=="string"&&e.type==="error"?(t.setStatus({code:2,message:PQ(e.error?.type)}),Wt(e.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0):!1}function v9t(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 R9t(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 A9t(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 w9t(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 F1e(e,t,n,r){!(e&&typeof e=="object")||T9t(e,r)||(v9t(e,t),R9t(e,t),A9t(e,t,n),w9t(e,t))}function k9t(e,t,n){t.isRecording()&&(e.responseId&&t.setAttributes({[Jl]:e.responseId}),e.responseModel&&t.setAttributes({[yo]:e.responseModel}),mP(t,e.promptTokens,e.completionTokens,e.cacheCreationInputTokens,e.cacheReadInputTokens),t.setAttributes({[jE]:!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*j1e(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)F1e(i,r,n,t),yield i}finally{r.responseId&&t.setAttributes({[Jl]:r.responseId}),r.responseModel&&t.setAttributes({[yo]:r.responseModel}),mP(t,r.promptTokens,r.completionTokens,r.cacheCreationInputTokens,r.cacheReadInputTokens),t.setAttributes({[jE]:!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 H1e(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=>{F1e(i,r,n,t)}),e.on("message",()=>{k9t(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 q1e=v(()=>{ul();Xa();qp();NQ()});function I9t(e,t,n){let r={[Fy]:"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[jy]=i.temperature),"top_p"in i&&(r[qy]=i.top_p),"stream"in i&&(r[aA]=i.stream),"top_k"in i&&(r[xH]=i.top_k),"frequency_penalty"in i&&(r[Hy]=i.frequency_penalty),"max_tokens"in i&&(r[cA]=i.max_tokens)}else t==="models.retrieve"||t==="models.get"?r[us]=e[0]:r[us]="unknown";return r}function CQ(e,t){let n=U1e(t);D1e(e,n),"prompt"in t&&e.setAttributes({[ELe]:JSON.stringify(t.prompt)})}function x9t(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 O9t(e,t){"id"in t&&"model"in t&&(e.setAttributes({[Jl]:t.id,[yo]:t.model}),"created"in t&&typeof t.created=="number"&&e.setAttributes({[fQ]:new Date(t.created*1e3).toISOString()}),"created_at"in t&&typeof t.created_at=="number"&&e.setAttributes({[fQ]:new Date(t.created_at*1e3).toISOString()}),"usage"in t&&t.usage&&mP(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.cache_creation_input_tokens,t.usage.cache_read_input_tokens))}function P9t(e,t,n){if(!(!t||typeof t!="object")){if("type"in t&&t.type==="error"){L1e(e,t);return}n&&x9t(e,t),O9t(e,t)}}function B1e(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 N9t(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&&CQ(m,a),(async()=>{try{let g=await p;return j1e(g,m,c.recordOutputs??!1)}catch(g){return B1e(g,m,o)}})()));return fA(p,h,"auto.ai.anthropic")}else return Uo(f,p=>{try{c.recordInputs&&a&&CQ(p,a);let h=t.apply(n,r);return H1e(h,p,c.recordOutputs??!1)}catch(h){return B1e(h,p,o)}})}function C9t(e,t,n,r,i){return new Proxy(e,{apply(s,o,a){let c=n.operation,u=I9t(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 N9t(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&&CQ(g,d),h.then(y=>(P9t(g,y,i.recordOutputs),y),y=>{throw Wt(y,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:t}}}),y})));return fA(h,m,"auto.ai.anthropic")}})}function z1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=dA(t,String(i)),a=M1e[o];return typeof s=="function"&&a?C9t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?z1e(s,o,n):s}})}function qH(e,t){return z1e(e,"",Hp(t))}var G1e=v(()=>{ul();Lo();My();Xa();qp();OQ();q1e();NQ()});var Ky,V1e,W1e,MQ,K1e,DQ=v(()=>{Ky="Google_GenAI",V1e={"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}},W1e="google_genai",MQ="chats.create",K1e="chat"});function M9t(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 D9t(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 L9t(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 U9t(e,t,n,r){!e||M9t(e,r)||(D9t(e,t),L9t(e,t,n))}async function*Y1e(e,t,n){let r={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(let i of e)U9t(i,r,n,t),yield i}finally{let i={[jE]:!0};r.responseId&&(i[Jl]=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 Z1e=v(()=>{ul();Xa()});function hA(e,t="user"){return typeof e=="string"?[{role:t,content:e}]:Array.isArray(e)?e.flatMap(n=>hA(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 J1e=v(()=>{});function X1e(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 F9t(e){let t={};return"temperature"in e&&typeof e.temperature=="number"&&(t[jy]=e.temperature),"topP"in e&&typeof e.topP=="number"&&(t[qy]=e.topP),"topK"in e&&typeof e.topK=="number"&&(t[xH]=e.topK),"maxOutputTokens"in e&&typeof e.maxOutputTokens=="number"&&(t[cA]=e.maxOutputTokens),"frequencyPenalty"in e&&typeof e.frequencyPenalty=="number"&&(t[Hy]=e.frequencyPenalty),"presencePenalty"in e&&typeof e.presencePenalty=="number"&&(t[uA]=e.presencePenalty),t}function j9t(e,t,n){let r={[Fy]:W1e,[oa]:e,[At]:"auto.ai.google_genai"};if(t){if(r[us]=X1e(t,n),"config"in t&&typeof t.config=="object"&&t.config){let i=t.config;if(Object.assign(r,F9t(i)),"tools"in i&&Array.isArray(i.tools)){let s=i.tools.flatMap(o=>o.functionDeclarations);r[jp]=JSON.stringify(s)}}}else r[us]=X1e({},n);return r}function Q1e(e,t,n){if(n){let i=t.contents;i!=null&&e.setAttribute(lA,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(...hA(t.config.systemInstruction,"system")),"history"in t&&r.push(...hA(t.history,"user")),"contents"in t&&r.push(...hA(t.contents,"user")),"message"in t&&r.push(...hA(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(Gy(s))})}}function H9t(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 $1e(e,t,n,r,i){let s=t===MQ,o=n.operation==="embeddings";return new Proxy(e,{apply(a,c,u){let l=n.operation,d=u[0],f=j9t(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&&Q1e(h,d,o);let m=await a.apply(r,u);return Y1e(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&&Q1e(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&&H9t(h,m,i.recordOutputs)})))}})}function LQ(e,t="",n){return new Proxy(e,{get:(r,i,s)=>{let o=Reflect.get(r,i,s),a=dA(t,String(i)),c=V1e[a];if(typeof o=="function"&&c){if(a===MQ){let u=$1e(o,a,c,r,n);return function(...d){let f=u(...d);return f&&typeof f=="object"?LQ(f,K1e,n):f}}return $1e(o,a,c,r,n)}return typeof o=="function"?o.bind(r):o&&typeof o=="object"?LQ(o,a,n):o}})}function BH(e,t){return LQ(e,"",Hp(t))}var eUe=v(()=>{ul();Lo();My();oH();Xa();hP();qp();DQ();Z1e();J1e()});var zH,GE,tUe,GH=v(()=>{zH="LangChain",GE="auto.ai.langchain",tUe={human:"user",ai:"assistant",assistant:"assistant",system:"system",function:"function",tool:"tool"}});function Rm(e){if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function mA(e){if(Array.isArray(e))try{let t=e.map(n=>n&&typeof n=="object"&&zy(n)?qE(n):n);return JSON.stringify(t)}catch{return String(e)}return Rm(e)}function SP(e){let t=e.toLowerCase();return tUe[t]??t}function nUe(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 UQ(e){if(!(!e||Array.isArray(e)))return e.invocation_params}function bP(e){return e.map(t=>{let n=t._getType;if(typeof n=="function"){let i=n.call(t);return{role:SP(i),content:mA(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"?nUe(s):"user";return{role:SP(o),content:mA(t.kwargs?.content)}}if(t.type){let i=String(t.type).toLowerCase();return{role:SP(i),content:mA(t.content)}}if(t.role)return{role:SP(String(t.role)),content:mA(t.content)};let r=t.constructor?.name;return r&&r!=="Object"?{role:SP(nUe(r)),content:mA(t.content)}:{role:"user",content:mA(t.content)}})}function q9t(e,t,n){let r={},i="kwargs"in e?e.kwargs:void 0,s=t?.temperature??n?.ls_temperature??i?.temperature;fl(r,jy,s);let o=t?.max_tokens??n?.ls_max_tokens??i?.max_tokens;fl(r,cA,o);let a=t?.top_p??i?.top_p;fl(r,qy,a);let c=t?.frequency_penalty;fl(r,Hy,c);let u=t?.presence_penalty;return fl(r,uA,u),t&&"stream"in t&&Xl(r,aA,!!t.stream),r}function rUe(e,t,n,r,i){return{[Fy]:Rm(e??"langchain"),[oa]:"chat",[us]:Rm(t),[At]:GE,...q9t(n,r,i)}}function iUe(e,t,n,r,i){let s=i?.ls_provider,o=r?.model??i?.ls_model_name??"unknown",a=rUe(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){Xl(a,Cc,t.length);let c=t.map(u=>({role:"user",content:u}));Xl(a,aa,Rm(c))}return a}function sUe(e,t,n,r,i){let s=i?.ls_provider??e.id?.[2],o=r?.model??i?.ls_model_name??"unknown",a=rUe(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){let c=bP(t.flat()),{systemInstructions:u,filteredMessages:l}=dl(c);u&&Xl(a,ll,u);let d=Array.isArray(l)?l.length:0;Xl(a,Cc,d);let f=Gy(l);Xl(a,aa,Rm(f))}return a}function B9t(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&&Xl(t,Fo,Rm(n))}function z9t(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,wLe,r.cache_creation_input_tokens),r.cache_read_input_tokens!==void 0&&fl(t,kLe,r.cache_read_input_tokens)}}function oUe(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&&Xl(n,du,Rm(u)),B9t(e.generations,n),t){let l=e.generations.flat().map(d=>d.text??d.message?.content).filter(d=>typeof d=="string");l.length>0&&Xl(n,Gs,Rm(l))}}z9t(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&&Xl(n,yo,o);let a=r?.id??s?.id;a&&Xl(n,Jl,a);let c=r?.stop_reason??s?.response_metadata?.finish_reason;return c&&Xl(n,vLe,Rm(c)),n}var Xl,fl,VH=v(()=>{Lo();Xa();gQ();hP();qp();GH();Xl=(e,t,n)=>{n!=null&&(e[t]=n)},fl=(e,t,n)=>{let r=Number(n);Number.isNaN(r)||(e[t]=r)}});function WH(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=UQ(d),m=iUe(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=UQ(d),m=sUe(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=oUe(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:`${GE}.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:`${GE}.chain_error_handler`}})},handleToolStart(o,a,c,u){let l=o.name||"unknown_tool",d={[At]:GE,[HE]:l};t&&(d[PH]=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({[NH]: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:`${GE}.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 aUe=v(()=>{ul();Lo();My();Xa();qp();GH();VH()});var KH,FQ,jQ=v(()=>{KH="LangGraph",FQ="auto.ai.langgraph"});function G9t(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 V9t(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 W9t(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 cUe(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 uUe(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=G9t(o);a&&e.setAttribute(Fo,JSON.stringify(a));let c=bP(o);e.setAttribute(Gs,JSON.stringify(c));let u=0,l=0,d=0;for(let f of o){let p=V9t(f);u+=p.inputTokens,l+=p.outputTokens,d+=p.totalTokens,W9t(e,f)}u>0&&e.setAttribute(di,u),l>0&&e.setAttribute(Ns,l),d>0&&e.setAttribute(Nc,d)}var lUe=v(()=>{Xa();VH()});function HQ(e,t){return new Proxy(e,{apply(n,r,i){return lf({op:"gen_ai.create_agent",name:"create_agent",attributes:{[At]:FQ,[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(sQ,a.name),s.updateName(`create_agent ${a.name}`));let c=o.invoke;return c&&typeof c=="function"&&(o.invoke=K9t(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 K9t(e,t,n,r){return new Proxy(e,{apply(i,s,o){return lf({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[At]:FQ,[zt]:OH,[oa]:"invoke_agent"}},async a=>{try{let c=n?.name;c&&typeof c=="string"&&(a.setAttribute(ALe,c),a.setAttribute(sQ,c),a.updateName(`invoke_agent ${c}`));let d=(o.length>1?o[1]:void 0)?.configurable?.thread_id;d&&typeof d=="string"&&a.setAttribute(dP,d);let f=cUe(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=bP(m),{systemInstructions:b,filteredMessages:S}=dl(y);b&&a.setAttribute(ll,b);let E=Gy(S),_=Array.isArray(S)?S.length:0;a.setAttributes({[aa]:JSON.stringify(E),[Cc]:_})}let g=await Reflect.apply(i,s,o);return h&&uUe(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 YH(e,t){return e.compile=HQ(e.compile,Hp(t)),e}var dUe=v(()=>{ul();Lo();My();Xa();hP();qp();VH();jQ();lUe()});function EP(e){if(e!==void 0)return e>=400&&e<500?"warning":e>=500?"error":void 0}var fUe=v(()=>{});function _P(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 pUe=v(()=>{});function gUe(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 yUe(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=PCe(o[2]),p=o[5]==="native";!f&&o[5]&&!p&&(f=o[5]);let h=f?Y9t(f):void 0;return{filename:h??f,module:h&&e?.(h),function:u,lineno:hUe(o[3]),colno:hUe(o[4]),in_app:gUe(f||"",p)}}if(i.match(t))return{filename:i}}}function qQ(e){return[90,yUe(e)]}function hUe(e){return parseInt(e||"",10)||void 0}function Y9t(e){try{return decodeURI(e)}catch{return}}var SUe=v(()=>{MR()});var fu,bUe=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(()=>{WR();nMe();My();Em();vX();RX();sH();Lo();ul();go();XJ();zR();ODe();gH();LX();PDe();NDe();ZO();oH();Oc();KR();DDe();LDe();FDe();jDe();VDe();JX();YDe();JDe();nLe();aLe();mLe();yLe();SLe();bLe();UX();m1e();IQ();C1e();FH();G1e();OQ();eUe();DQ();aUe();GH();dUe();jQ();fUe();Wa();Ka();_r();Lp();nf();fLe();pUe();MR();SUe();vy();Yj();_m();VO();MDe();bUe();Iy();Pj();Ey()});function rt(e,t,n){return n?bYt(e,t,n):SYt(e,t)}function SYt(e,t){return Object.assign(n=>{let r=TP[e];if(r)return n&&r.setConfig(n),r;let i=t(n);return TP[e]=i,(0,BQ.registerInstrumentations)({instrumentations:[i]}),i},{id:e})}function bYt(e,t,n){return Object.assign(r=>{let i=n(r),s=TP[e];if(s)return s.setConfig(i),s;let o=new t(i);return TP[e]=o,(0,BQ.registerInstrumentations)({instrumentations:[o]}),o},{id:e})}function vP(e){let t=!1,n=[];if(!EYt(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 EYt(e){return typeof e._wrap=="function"}var BQ,TP,ZH=v(()=>{BQ=Re(Jt(),1),TP={}});var Qt,ff=v(()=>{Qt=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var JH,EUe=v(()=>{JH="@sentry/instrumentation-http"});function _Ue(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 TUe=v(()=>{st();ff()});import{subscribe as _Yt}from"node:diagnostics_channel";function AUe(e,t){zs(e,"_startSpanCallback",new WeakRef(t))}function vYt(e,{ignoreRequestBody:t,maxRequestBodySize:n,sessions:r,sessionFlushingDelayMS:i}){let s=e.emit;if(RUe.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(vUe)||!l)return a.apply(c,u);Qt&&Z.log(GQ,"Handling incoming request");let d=vn().clone(),f=u[1],p=u[2],h=lP(f),m=f.ip||f.socket?.remoteAddress,g=f.url||"/";n!=="none"&&!t?.(g,f)&&_Ue(f,d,n,GQ),d.setSDKProcessingMetadata({normalizedRequest:h,ipAddress:m});let y=(f.method||"GET").toUpperCase(),b=vm(g),S=`${y} ${b}`;return d.setTransactionName(S),r&&l&&RYt(l,{requestIsolationScope:d,response:p,sessionFlushingDelayMS:i??6e4}),zO(d,()=>{let E={traceId:Ya(),sampleRand:Do(),propagationSpanId:Za()};Fn().setPropagationContext({...E}),d.setPropagationContext({...E});let _=Qd.extract(Ve.active(),h.headers).setValue(vUe,!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)})})}});RUe.add(o),e.emit=o}function RYt(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=zQ.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};zQ.set(e,u);let l=()=>{clearTimeout(f),d(),zQ.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 vUe,GQ,zQ,RUe,TYt,RP,XH=v(()=>{Me();st();ff();TUe();vUe=il("sentry_http_server_instrumented"),GQ="Http.Server",zQ=new Map,RUe=new WeakSet;TYt=((e={})=>{let t={sessions:e.sessions??!0,sessionFlushingDelayMS:e.sessionFlushingDelayMS??6e4,maxRequestBodySize:e.maxRequestBodySize??"medium",ignoreRequestBody:e.ignoreRequestBody};return{name:GQ,setupOnce(){_Yt("http.server.request.start",(r=>{vYt(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`.")}}}),RP=TYt});import{errorMonitor as AYt}from"node:events";function kYt(e){return e.headers["next-router-prefetch"]==="1"}function IYt(e){let t=vm(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 xYt(e,{ignoreStaticAssets:t,ignoreIncomingRequests:n}){if((0,Am.isTracingSuppressed)(Ve.active()))return!0;let r=e.url,i=e.method?.toUpperCase();return!!(i==="OPTIONS"||i==="HEAD"||!r||t&&i==="GET"&&IYt(r)||n?.(r,e))}function OYt(e){let t=PYt(e.headers);return t==null?{}:NYt(e.headers)?{"http.request_content_length":t}:{"http.request_content_length_uncompressed":t}}function PYt(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}function NYt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}function CYt(e,t){let{socket:n}=e,{statusCode:r,statusMessage:i}=t,s={[lm]:r,[yE]:r,"http.status_text":i?.toUpperCase()},o=(0,Am.getRPCMetadata)(Ve.active());if(n){let{localAddress:a,localPort:c,remoteAddress:u,remotePort:l}=n;s[l7]=a,s[d7]=c,s[u7]=u,s["net.peer.port"]=l}if(s[yE]=r,s["http.status_text"]=(i||"").toUpperCase(),o?.type===Am.RPCType.HTTP&&o.route!==void 0){let a=o.route;s[dm]=a}return s}function MYt(e,t){return t.some(n=>{if(typeof n=="number")return n===e;let[r,i]=n;return e>=r&&e<=i})}var Am,wUe,wYt,AP,VQ=v(()=>{Me();Am=Re(pr(),1);Nn();st();ff();XH();wUe="Http.ServerSpans",wYt=((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:wUe,setup(c){typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__||c.on("httpServerRequest",(u,l,d)=>{let f=u,p=l;AUe(f,m=>{if(xYt(f,{ignoreStaticAssets:t,ignoreIncomingRequests:n}))return Qt&&Z.log(wUe,"Skipping span creation for incoming request",f.url),m();let g=d.url||f.url||"/",y=uP(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:vm(g),N=`${k} ${P}`,C=A.startSpan(N,{kind:$r.SERVER,attributes:{[zt]:"http.server",[At]:"auto.http.otel.http","sentry.http.prefetch":kYt(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",...OYt(f),...EH(d.headers||{},c.getOptions().sendDefaultPii??!1)}});s?.(C,f),o?.(C,p),a?.(C,f,p),i?.(C,f,p);let L={type:Am.RPCType.HTTP,span:C};return Ve.with((0,Am.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=CYt(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(ym(p.statusCode))}),p.on(AYt,()=>{let $=ym(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"&&MYt(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."))}}}),AP=wYt});function wP(e,t){if(!e)return t;let n=PE(e),r=PE(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 Vj(a)}var WQ=v(()=>{st()});function kUe(e,t){let n=DYt(e),r=t?.statusCode,i=EP(r);Zl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function QH(e,t){let n=$H(e),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=FE(n,r,t)?oA({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(gA,"Added sentry-trace header to outgoing request")}catch(l){Qt&&Z.error(gA,"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(gA,"Added traceparent header to outgoing request")}catch(l){Qt&&Z.error(gA,"Failed to add traceparent header to outgoing request:",Mp(l)?l.message:"Unknown error")}if(a){let l=e.getHeader("baggage"),d=wP(l,a);if(d)try{e.setHeader("baggage",d),Qt&&Z.log(gA,"Added baggage header to outgoing request")}catch(f){Qt&&Z.error(gA,"Failed to add baggage header to outgoing request:",Mp(f)?f.message:"Unknown error")}}}}function DYt(e){try{let t=e.getHeader("host")||e.host,n=new URL(e.path,`${e.protocol}//${t}`),r=Ly(n.toString()),i={url:Uy(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 IUe(e){return{method:e.method,protocol:e.protocol,host:e.host,hostname:e.host,path:e.path,headers:e.getHeaders()}}function $H(e){let t=e.getHeader("host")||e.host,n=e.protocol,r=e.path;return`${n}//${t}${r}`}var gA,xUe=v(()=>{st();ff();WQ();gA="@sentry/instrumentation-http"});import{subscribe as KQ,unsubscribe as YQ}from"node:diagnostics_channel";import{errorMonitor as OUe}from"node:events";function LYt(e){let t=$H(e),[n,r]=YX(uP(t),"client","auto.http.otel.http",e),i=e.getHeader("user-agent");return[n,{[zt]:"http.client","otel.kind":"CLIENT",[C7]:i,[py]:t,"http.url":t,"http.method":e.method,"http.target":e.path||"/","net.peer.name":e.host,"http.host":e.getHeader("host"),...r}]}function UYt(e){let{statusCode:t,statusMessage:n,httpVersion:r,socket:i}=e,s=r.toUpperCase()!=="QUIC"?"ip_tcp":"ip_udp",o={[lm]:t,[k7]:r,"http.flavor":r,[I7]:s,"net.transport":s,"http.status_text":n?.toUpperCase(),"http.status_code":t,...FYt(e)};if(i){let{remoteAddress:a,remotePort:c}=i;o[A7]=a,o[w7]=c,o["net.peer.ip"]=a,o["net.peer.port"]=c}return o}function FYt(e){let t=jYt(e.headers);return t==null?{}:HYt(e.headers)?{[p7]:t}:{[h7]:t}}function jYt(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 HYt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}var PUe,kP,VE,ZQ=v(()=>{Me();PUe=Re(pr(),1),kP=Re(Jt(),1);Nn();st();ff();EUe();xUe();VE=class extends kP.InstrumentationBase{constructor(t={}){super(JH,Cn,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,KQ("http.client.response.finish",n),KQ("http.client.request.error",r),(this.getConfig().propagateTraceInOutgoingRequests||this.getConfig().createSpansForOutgoingRequests)&&KQ("http.client.request.created",i)),a),o=()=>{YQ("http.client.response.finish",n),YQ("http.client.request.error",r),YQ("http.client.request.created",i)};return[new kP.InstrumentationNodeModuleDefinition("http",["*"],s,o),new kP.InstrumentationNodeModuleDefinition("https",["*"],s,o)]}_startSpanForOutgoingRequest(t){let n=t.once,[r,i]=LYt(t),s=cH({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=UYt(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}:ym(u.statusCode);c(p)};u.on("end",()=>{d()}),u.on(OUe,f=>{this._diag.debug("outgoingRequest on response error()",f),d(!0)})}),t.on("close",()=>{c({code:as.UNSET})}),t.on(OUe,u=>{this._diag.debug("outgoingRequest on request error()",u),c({code:as.ERROR})}),s}_onOutgoingRequestFinish(t,n){Qt&&Z.log(JH,"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&&kUe(t,n)}_onOutgoingRequestCreated(t){Qt&&Z.log(JH,"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,()=>{QH(t,this._propagationDecisionMap)})}else i&&QH(t,this._propagationDecisionMap)}else i&&QH(t,this._propagationDecisionMap)}_shouldIgnoreOutgoingRequest(t){if((0,PUe.isTracingSuppressed)(Ve.active()))return!0;let n=this.getConfig().ignoreOutgoingRequests;if(!n)return!1;let r=IUe(t),i=$H(t);return n(i,r)}}});var NUe,qYt,CUe,MUe=v(()=>{ZH();XH();VQ();ZQ();NUe="Http",qYt=rt(`${NUe}.sentry`,e=>new VE(e)),CUe=(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=RP(t),s=AP(n),o=e.spans??!1,a=e.disableIncomingRequestSpans??!1,c=o&&!a;return{name:NUe,setup(u){c&&s.setup(u)},setupOnce(){i.setupOnce(),qYt(r)},processEvent(u){return s.processEvent(u)}}}});var pf,wm,IP,yA=v(()=>{st();pf=ZJ(process.versions.node),wm=pf.major,IP=pf.minor});function DUe(e,t){let n=tq(e.origin,e.path),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=FE(n,r,t)?oA({propagateTraceparent:i}):void 0;if(!s)return;let{"sentry-trace":o,baggage:a,traceparent:c}=s,u=Array.isArray(e.headers)?e.headers:zYt(e.headers);if(XQ(u,JQ),XQ(u,eq),i&&XQ(u,BYt),!(QQ(u,JQ)!==-1)){o&&u.push(JQ,o),c&&QQ(u,"traceparent")===-1&&u.push("traceparent",c);let d=QQ(u,eq);if(a&&d===-1)u.push(eq,a);else if(a){let f=u[d+1],p=wP(f,a);p&&(u[d+1]=p)}}Array.isArray(e.headers)||(e.headers=GYt(u))}function zYt(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 GYt(e){let t=[];for(let n=0;nr%2===0&&n===t)}function RUe(e,t){let n=IZt(e),r=t.statusCode,i=uN(r);Wl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function IZt(e){try{let t=KH(e.origin,e.path),n=My(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 KH(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 qQ,WH,RZt,wUe=v(()=>{st();UQ();qQ="sentry-trace",WH="baggage",RZt="traceparent"});import*as dR from"diagnostics_channel";var kUe,IUe,zb,zQ=v(()=>{Ce();kUe=Se(fr(),1),IUe=Se(Jt(),1);st();lR();wUe();zb=class extends IUe.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-node-fetch",Pn,t),this._channelSubs=[],this._propagationDecisionMap=new du(100),this._ignoreOutgoingRequestsMap=new WeakMap}init(){}disable(){super.disable(),this._channelSubs.forEach(t=>t.unsubscribe()),this._channelSubs=[]}enable(){super.enable(),this._channelSubs=this._channelSubs||[],!(this._channelSubs.length>0)&&(this._subscribeToChannel("undici:request:create",this._onRequestCreated.bind(this)),this._subscribeToChannel("undici:request:headers",this._onResponseHeaders.bind(this)))}_onRequestCreated({request:t}){let n=this.getConfig();if(!(n.enabled!==!1))return;let i=this._shouldIgnoreOutgoingRequest(t);this._ignoreOutgoingRequestsMap.set(t,i),!i&&n.tracePropagation!==!1&&AUe(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&&RUe(t,n)}_subscribeToChannel(t,n){let r=Am>18||Am===18&&yN>=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,kUe.isTracingSuppressed)(Ve.active()))return!0;let n=KH(t.origin,t.path),r=this.getConfig().ignoreOutgoingRequests;return typeof r!="function"||!n?!1:r(n)}}});var xZt,OZt,NZt,xUe,OUe=v(()=>{qH();zQ();xZt="NodeFetch",OZt=rt(`${xZt}.sentry`,zb,e=>e),NZt=((e={})=>({name:"NodeFetch",setupOnce(){OZt(e)}})),xUe=NZt});var WQ=w(ZH=>{"use strict";Object.defineProperty(ZH,"__esModule",{value:!0});ZH.AbstractAsyncHooksContextManager=void 0;var PZt=Z("events"),CZt=["addListener","on","once","prependListener","prependOnceListener"],VQ=class{bind(t,n){return n instanceof PZt.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),CZt.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};ZH.AbstractAsyncHooksContextManager=VQ});var NUe=w(YH=>{"use strict";Object.defineProperty(YH,"__esModule",{value:!0});YH.AsyncHooksContextManager=void 0;var MZt=(Ce(),ke(Ye)),LZt=Z("async_hooks"),DZt=WQ(),KQ=class extends DZt.AbstractAsyncHooksContextManager{_asyncHook;_contexts=new Map;_stack=[];constructor(){super(),this._asyncHook=LZt.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]??MZt.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()}};YH.AsyncHooksContextManager=KQ});var PUe=w(JH=>{"use strict";Object.defineProperty(JH,"__esModule",{value:!0});JH.AsyncLocalStorageContextManager=void 0;var UZt=(Ce(),ke(Ye)),FZt=Z("async_hooks"),jZt=WQ(),ZQ=class extends jZt.AbstractAsyncHooksContextManager{_asyncLocalStorage;constructor(){super(),this._asyncLocalStorage=new FZt.AsyncLocalStorage}active(){return this._asyncLocalStorage.getStore()??UZt.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}};JH.AsyncLocalStorageContextManager=ZQ});var CUe=w(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});fR.AsyncLocalStorageContextManager=fR.AsyncHooksContextManager=void 0;var HZt=NUe();Object.defineProperty(fR,"AsyncHooksContextManager",{enumerable:!0,get:function(){return HZt.AsyncHooksContextManager}});var qZt=PUe();Object.defineProperty(fR,"AsyncLocalStorageContextManager",{enumerable:!0,get:function(){return qZt.AsyncLocalStorageContextManager}})});var YQ=w(pR=>{"use strict";Object.defineProperty(pR,"__esModule",{value:!0});pR._clearDefaultServiceNameCache=pR.defaultServiceName=void 0;var SN;function BZt(){if(SN===void 0)try{let e=globalThis.process.argv0;SN=e?`unknown_service:${e}`:"unknown_service"}catch{SN="unknown_service"}return SN}pR.defaultServiceName=BZt;function GZt(){SN=void 0}pR._clearDefaultServiceNameCache=GZt});var MUe=w(XH=>{"use strict";Object.defineProperty(XH,"__esModule",{value:!0});XH.isPromiseLike=void 0;var zZt=e=>e!==null&&typeof e=="object"&&typeof e.then=="function";XH.isPromiseLike=zZt});var QQ=w(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});qp.defaultResource=qp.emptyResource=qp.resourceFromDetectedResource=qp.resourceFromAttributes=void 0;var bN=(Ce(),ke(Ye)),JQ=fr(),Vb=(Nn(),ke(Mr)),VZt=YQ(),EN=MUe(),QH=class e{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(t,n){let r=new e({},n);return r._rawAttributes=LUe(t),r._asyncAttributesPending=t.filter(([i,s])=>(0,EN.isPromiseLike)(s)).length>0,r}constructor(t,n){let r=t.attributes??{};this._rawAttributes=Object.entries(r).map(([i,s])=>((0,EN.isPromiseLike)(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=LUe(this._rawAttributes),this._schemaUrl=YZt(n?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let t=0;t(0,EN.isPromiseLike)(n)?[t,n.catch(r=>{bN.diag.debug("promise rejection for resource attribute: %s - %s",t,r)})]:[t,n])}function YZt(e){if(typeof e=="string"||e===void 0)return e;bN.diag.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",e)}function JZt(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;bN.diag.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',n,r)}});var UUe=w($H=>{"use strict";Object.defineProperty($H,"__esModule",{value:!0});$H.detectResources=void 0;var DUe=(Ce(),ke(Ye)),$Q=QQ(),XZt=(e={})=>(e.detectors||[]).map(n=>{try{let r=(0,$Q.resourceFromDetectedResource)(n.detect(e));return DUe.diag.debug(`${n.constructor.name} found resource.`,r),r}catch(r){return DUe.diag.debug(`${n.constructor.name} failed: ${r.message}`),(0,$Q.emptyResource)()}}).reduce((n,r)=>n.merge(r),(0,$Q.emptyResource)());$H.detectResources=XZt});var jUe=w(eq=>{"use strict";Object.defineProperty(eq,"__esModule",{value:!0});eq.envDetector=void 0;var QZt=(Ce(),ke(Ye)),$Zt=(Nn(),ke(Mr)),FUe=fr(),e$=class{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect(t){let n={},r=(0,FUe.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),i=(0,FUe.getStringFromEnv)("OTEL_SERVICE_NAME");if(r)try{let s=this._parseResourceAttributes(r);Object.assign(n,s)}catch(s){QZt.diag.debug(`EnvDetector failed: ${s instanceof Error?s.message:s}`)}return i&&(n[$Zt.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}};eq.envDetector=new e$});var _N=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 nq=w(tq=>{"use strict";Object.defineProperty(tq,"__esModule",{value:!0});tq.execAsync=void 0;var eYt=Z("child_process"),tYt=Z("util");tq.execAsync=tYt.promisify(eYt.exec)});var HUe=w(rq=>{"use strict";Object.defineProperty(rq,"__esModule",{value:!0});rq.getMachineId=void 0;var nYt=nq(),rYt=(Ce(),ke(Ye));async function iYt(){try{let t=(await(0,nYt.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){rYt.diag.debug(`error reading machine id: ${e}`)}}rq.getMachineId=iYt});var qUe=w(iq=>{"use strict";Object.defineProperty(iq,"__esModule",{value:!0});iq.getMachineId=void 0;var sYt=Z("fs"),oYt=(Ce(),ke(Ye));async function aYt(){let e=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let t of e)try{return(await sYt.promises.readFile(t,{encoding:"utf8"})).trim()}catch(n){oYt.diag.debug(`error reading machine id: ${n}`)}}iq.getMachineId=aYt});var GUe=w(sq=>{"use strict";Object.defineProperty(sq,"__esModule",{value:!0});sq.getMachineId=void 0;var cYt=Z("fs"),uYt=nq(),BUe=(Ce(),ke(Ye));async function lYt(){try{return(await cYt.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(e){BUe.diag.debug(`error reading machine id: ${e}`)}try{return(await(0,uYt.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(e){BUe.diag.debug(`error reading machine id: ${e}`)}}sq.getMachineId=lYt});var VUe=w(oq=>{"use strict";Object.defineProperty(oq,"__esModule",{value:!0});oq.getMachineId=void 0;var zUe=Z("process"),dYt=nq(),fYt=(Ce(),ke(Ye));async function pYt(){let e="QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",t="%windir%\\System32\\REG.exe";zUe.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in zUe.env&&(t="%windir%\\sysnative\\cmd.exe /c "+t);try{let r=(await(0,dYt.execAsync)(`${t} ${e}`)).stdout.split("REG_SZ");if(r.length===2)return r[1].trim()}catch(n){fYt.diag.debug(`error reading machine id: ${n}`)}}oq.getMachineId=pYt});var WUe=w(aq=>{"use strict";Object.defineProperty(aq,"__esModule",{value:!0});aq.getMachineId=void 0;var hYt=(Ce(),ke(Ye));async function mYt(){hYt.diag.debug("could not read machine-id: unsupported platform")}aq.getMachineId=mYt});var KUe=w(cq=>{"use strict";Object.defineProperty(cq,"__esModule",{value:!0});cq.getMachineId=void 0;var gYt=Z("process"),Wb;async function yYt(){if(!Wb)switch(gYt.platform){case"darwin":Wb=(await Promise.resolve().then(()=>Se(HUe()))).getMachineId;break;case"linux":Wb=(await Promise.resolve().then(()=>Se(qUe()))).getMachineId;break;case"freebsd":Wb=(await Promise.resolve().then(()=>Se(GUe()))).getMachineId;break;case"win32":Wb=(await Promise.resolve().then(()=>Se(VUe()))).getMachineId;break;default:Wb=(await Promise.resolve().then(()=>Se(WUe()))).getMachineId;break}return Wb()}cq.getMachineId=yYt});var t$=w(hR=>{"use strict";Object.defineProperty(hR,"__esModule",{value:!0});hR.normalizeType=hR.normalizeArch=void 0;var SYt=e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}};hR.normalizeArch=SYt;var EYt=e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}};hR.normalizeType=EYt});var YUe=w(uq=>{"use strict";Object.defineProperty(uq,"__esModule",{value:!0});uq.hostDetector=void 0;var n$=_N(),ZUe=Z("os"),bYt=KUe(),_Yt=t$(),r$=class{detect(t){return{attributes:{[n$.ATTR_HOST_NAME]:(0,ZUe.hostname)(),[n$.ATTR_HOST_ARCH]:(0,_Yt.normalizeArch)((0,ZUe.arch)()),[n$.ATTR_HOST_ID]:(0,bYt.getMachineId)()}}}};uq.hostDetector=new r$});var QUe=w(lq=>{"use strict";Object.defineProperty(lq,"__esModule",{value:!0});lq.osDetector=void 0;var JUe=_N(),XUe=Z("os"),TYt=t$(),i$=class{detect(t){return{attributes:{[JUe.ATTR_OS_TYPE]:(0,TYt.normalizeType)((0,XUe.platform)()),[JUe.ATTR_OS_VERSION]:(0,XUe.release)()}}}};lq.osDetector=new i$});var $Ue=w(dq=>{"use strict";Object.defineProperty(dq,"__esModule",{value:!0});dq.processDetector=void 0;var vYt=(Ce(),ke(Ye)),Rm=_N(),AYt=Z("os"),s$=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=AYt.userInfo();n[Rm.ATTR_PROCESS_OWNER]=r.username}catch(r){vYt.diag.debug(`error obtaining process owner: ${r}`)}return{attributes:n}}};dq.processDetector=new s$});var eFe=w(fq=>{"use strict";Object.defineProperty(fq,"__esModule",{value:!0});fq.serviceInstanceIdDetector=void 0;var RYt=_N(),wYt=Z("crypto"),o$=class{detect(t){return{attributes:{[RYt.ATTR_SERVICE_INSTANCE_ID]:(0,wYt.randomUUID)()}}}};fq.serviceInstanceIdDetector=new o$});var tFe=w(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});Bp.serviceInstanceIdDetector=Bp.processDetector=Bp.osDetector=Bp.hostDetector=void 0;var kYt=YUe();Object.defineProperty(Bp,"hostDetector",{enumerable:!0,get:function(){return kYt.hostDetector}});var IYt=QUe();Object.defineProperty(Bp,"osDetector",{enumerable:!0,get:function(){return IYt.osDetector}});var xYt=$Ue();Object.defineProperty(Bp,"processDetector",{enumerable:!0,get:function(){return xYt.processDetector}});var OYt=eFe();Object.defineProperty(Bp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return OYt.serviceInstanceIdDetector}})});var nFe=w(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});Gp.serviceInstanceIdDetector=Gp.processDetector=Gp.osDetector=Gp.hostDetector=void 0;var pq=tFe();Object.defineProperty(Gp,"hostDetector",{enumerable:!0,get:function(){return pq.hostDetector}});Object.defineProperty(Gp,"osDetector",{enumerable:!0,get:function(){return pq.osDetector}});Object.defineProperty(Gp,"processDetector",{enumerable:!0,get:function(){return pq.processDetector}});Object.defineProperty(Gp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return pq.serviceInstanceIdDetector}})});var rFe=w(mR=>{"use strict";Object.defineProperty(mR,"__esModule",{value:!0});mR.noopDetector=mR.NoopDetector=void 0;var hq=class{detect(){return{attributes:{}}}};mR.NoopDetector=hq;mR.noopDetector=new hq});var iFe=w(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.noopDetector=fu.serviceInstanceIdDetector=fu.processDetector=fu.osDetector=fu.hostDetector=fu.envDetector=void 0;var NYt=jUe();Object.defineProperty(fu,"envDetector",{enumerable:!0,get:function(){return NYt.envDetector}});var mq=nFe();Object.defineProperty(fu,"hostDetector",{enumerable:!0,get:function(){return mq.hostDetector}});Object.defineProperty(fu,"osDetector",{enumerable:!0,get:function(){return mq.osDetector}});Object.defineProperty(fu,"processDetector",{enumerable:!0,get:function(){return mq.processDetector}});Object.defineProperty(fu,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return mq.serviceInstanceIdDetector}});var PYt=rFe();Object.defineProperty(fu,"noopDetector",{enumerable:!0,get:function(){return PYt.noopDetector}})});var c$=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 CYt=UUe();Object.defineProperty(ls,"detectResources",{enumerable:!0,get:function(){return CYt.detectResources}});var TN=iFe();Object.defineProperty(ls,"envDetector",{enumerable:!0,get:function(){return TN.envDetector}});Object.defineProperty(ls,"hostDetector",{enumerable:!0,get:function(){return TN.hostDetector}});Object.defineProperty(ls,"osDetector",{enumerable:!0,get:function(){return TN.osDetector}});Object.defineProperty(ls,"processDetector",{enumerable:!0,get:function(){return TN.processDetector}});Object.defineProperty(ls,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return TN.serviceInstanceIdDetector}});var a$=QQ();Object.defineProperty(ls,"resourceFromAttributes",{enumerable:!0,get:function(){return a$.resourceFromAttributes}});Object.defineProperty(ls,"defaultResource",{enumerable:!0,get:function(){return a$.defaultResource}});Object.defineProperty(ls,"emptyResource",{enumerable:!0,get:function(){return a$.emptyResource}});var MYt=YQ();Object.defineProperty(ls,"defaultServiceName",{enumerable:!0,get:function(){return MYt.defaultServiceName}})});var sFe=w(gq=>{"use strict";Object.defineProperty(gq,"__esModule",{value:!0});gq.ExceptionEventName=void 0;gq.ExceptionEventName="exception"});var oFe=w(yq=>{"use strict";Object.defineProperty(yq,"__esModule",{value:!0});yq.SpanImpl=void 0;var ua=(Ce(),ke(Ye)),la=fr(),Kb=(Nn(),ke(Mr)),LYt=sFe(),u$=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[Kb.ATTR_EXCEPTION_MESSAGE]=t:t&&(t.code?r[Kb.ATTR_EXCEPTION_TYPE]=t.code.toString():t.name&&(r[Kb.ATTR_EXCEPTION_TYPE]=t.name),t.message&&(r[Kb.ATTR_EXCEPTION_MESSAGE]=t.message),t.stack&&(r[Kb.ATTR_EXCEPTION_STACKTRACE]=t.stack)),r[Kb.ATTR_EXCEPTION_TYPE]||r[Kb.ATTR_EXCEPTION_MESSAGE]?this.addEvent(LYt.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}};yq.SpanImpl=u$});var gR=w(vN=>{"use strict";Object.defineProperty(vN,"__esModule",{value:!0});vN.SamplingDecision=void 0;var DYt;(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(DYt=vN.SamplingDecision||(vN.SamplingDecision={}))});var Eq=w(Sq=>{"use strict";Object.defineProperty(Sq,"__esModule",{value:!0});Sq.AlwaysOffSampler=void 0;var UYt=gR(),l$=class{shouldSample(){return{decision:UYt.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};Sq.AlwaysOffSampler=l$});var _q=w(bq=>{"use strict";Object.defineProperty(bq,"__esModule",{value:!0});bq.AlwaysOnSampler=void 0;var FYt=gR(),d$=class{shouldSample(){return{decision:FYt.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};bq.AlwaysOnSampler=d$});var h$=w(vq=>{"use strict";Object.defineProperty(vq,"__esModule",{value:!0});vq.ParentBasedSampler=void 0;var Tq=(Ce(),ke(Ye)),jYt=fr(),aFe=Eq(),f$=_q(),p$=class{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor(t){this._root=t.root,this._root||((0,jYt.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new f$.AlwaysOnSampler),this._remoteParentSampled=t.remoteParentSampled??new f$.AlwaysOnSampler,this._remoteParentNotSampled=t.remoteParentNotSampled??new aFe.AlwaysOffSampler,this._localParentSampled=t.localParentSampled??new f$.AlwaysOnSampler,this._localParentNotSampled=t.localParentNotSampled??new aFe.AlwaysOffSampler}shouldSample(t,n,r,i,s,o){let a=Tq.trace.getSpanContext(t);return!a||!(0,Tq.isSpanContextValid)(a)?this._root.shouldSample(t,n,r,i,s,o):a.isRemote?a.traceFlags&Tq.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,n,r,i,s,o):this._remoteParentNotSampled.shouldSample(t,n,r,i,s,o):a.traceFlags&Tq.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()}}`}};vq.ParentBasedSampler=p$});var g$=w(Aq=>{"use strict";Object.defineProperty(Aq,"__esModule",{value:!0});Aq.TraceIdRatioBasedSampler=void 0;var HYt=(Ce(),ke(Ye)),cFe=gR(),m$=class{_ratio;_upperBound;constructor(t=0){this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,n){return{decision:(0,HYt.isValidTraceId)(n)&&this._accumulate(n)=1?1:t<=0?0:t}_accumulate(t){let n=0;for(let r=0;r>>0}return n}};Aq.TraceIdRatioBasedSampler=m$});var E$=w(yR=>{"use strict";Object.defineProperty(yR,"__esModule",{value:!0});yR.buildSamplerFromEnv=yR.loadDefaultConfig=void 0;var S$=(Ce(),ke(Ye)),zp=fr(),uFe=Eq(),y$=_q(),Rq=h$(),lFe=g$(),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 wq=1;function qYt(){return{sampler:fFe(),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=qYt;function fFe(){let e=(0,zp.getStringFromEnv)("OTEL_TRACES_SAMPLER")??Vp.ParentBasedAlwaysOn;switch(e){case Vp.AlwaysOn:return new y$.AlwaysOnSampler;case Vp.AlwaysOff:return new uFe.AlwaysOffSampler;case Vp.ParentBasedAlwaysOn:return new Rq.ParentBasedSampler({root:new y$.AlwaysOnSampler});case Vp.ParentBasedAlwaysOff:return new Rq.ParentBasedSampler({root:new uFe.AlwaysOffSampler});case Vp.TraceIdRatio:return new lFe.TraceIdRatioBasedSampler(dFe());case Vp.ParentBasedTraceIdRatio:return new Rq.ParentBasedSampler({root:new lFe.TraceIdRatioBasedSampler(dFe())});default:return S$.diag.error(`OTEL_TRACES_SAMPLER value "${e}" invalid, defaulting to "${Vp.ParentBasedAlwaysOn}".`),new Rq.ParentBasedSampler({root:new y$.AlwaysOnSampler})}}yR.buildSamplerFromEnv=fFe;function dFe(){let e=(0,zp.getNumberFromEnv)("OTEL_TRACES_SAMPLER_ARG");return e==null?(S$.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${wq}.`),wq):e<0||e>1?(S$.diag.error(`OTEL_TRACES_SAMPLER_ARG=${e} was given, but it is out of range ([0..1]), defaulting to ${wq}.`),wq):e}});var b$=w(Yl=>{"use strict";Object.defineProperty(Yl,"__esModule",{value:!0});Yl.reconfigureLimits=Yl.mergeConfig=Yl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=Yl.DEFAULT_ATTRIBUTE_COUNT_LIMIT=void 0;var pFe=E$(),kq=fr();Yl.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;Yl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function BYt(e){let t={sampler:(0,pFe.buildSamplerFromEnv)()},n=(0,pFe.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}Yl.mergeConfig=BYt;function GYt(e){let t=Object.assign({},e.spanLimits);return t.attributeCountLimit=e.spanLimits?.attributeCountLimit??e.generalLimits?.attributeCountLimit??(0,kq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??(0,kq.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??Yl.DEFAULT_ATTRIBUTE_COUNT_LIMIT,t.attributeValueLengthLimit=e.spanLimits?.attributeValueLengthLimit??e.generalLimits?.attributeValueLengthLimit??(0,kq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??(0,kq.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??Yl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},e,{spanLimits:t})}Yl.reconfigureLimits=GYt});var hFe=w(Iq=>{"use strict";Object.defineProperty(Iq,"__esModule",{value:!0});Iq.BatchSpanProcessorBase=void 0;var SR=(Ce(),ke(Ye)),wm=fr(),_$=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)}};Iq.BatchSpanProcessorBase=_$});var mFe=w(xq=>{"use strict";Object.defineProperty(xq,"__esModule",{value:!0});xq.BatchSpanProcessor=void 0;var zYt=hFe(),T$=class extends zYt.BatchSpanProcessorBase{onShutdown(){}};xq.BatchSpanProcessor=T$});var SFe=w(Nq=>{"use strict";Object.defineProperty(Nq,"__esModule",{value:!0});Nq.RandomIdGenerator=void 0;var VYt=8,yFe=16,v$=class{generateTraceId=gFe(yFe);generateSpanId=gFe(VYt)};Nq.RandomIdGenerator=v$;var Oq=Buffer.allocUnsafe(yFe);function gFe(e){return function(){for(let n=0;n>>0,n*4);for(let n=0;n0);n++)n===e-1&&(Oq[e-1]=1);return Oq.toString("hex",0,e)}}});var EFe=w(ER=>{"use strict";Object.defineProperty(ER,"__esModule",{value:!0});ER.RandomIdGenerator=ER.BatchSpanProcessor=void 0;var WYt=mFe();Object.defineProperty(ER,"BatchSpanProcessor",{enumerable:!0,get:function(){return WYt.BatchSpanProcessor}});var KYt=SFe();Object.defineProperty(ER,"RandomIdGenerator",{enumerable:!0,get:function(){return KYt.RandomIdGenerator}})});var A$=w(bR=>{"use strict";Object.defineProperty(bR,"__esModule",{value:!0});bR.RandomIdGenerator=bR.BatchSpanProcessor=void 0;var bFe=EFe();Object.defineProperty(bR,"BatchSpanProcessor",{enumerable:!0,get:function(){return bFe.BatchSpanProcessor}});Object.defineProperty(bR,"RandomIdGenerator",{enumerable:!0,get:function(){return bFe.RandomIdGenerator}})});var _Fe=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 TFe=w(Cq=>{"use strict";Object.defineProperty(Cq,"__esModule",{value:!0});Cq.TracerMetrics=void 0;var Pq=gR(),AN=_Fe(),R$=class{startedSpans;liveSpans;constructor(t){this.startedSpans=t.createCounter(AN.METRIC_OTEL_SDK_SPAN_STARTED,{unit:"{span}",description:"The number of created spans."}),this.liveSpans=t.createUpDownCounter(AN.METRIC_OTEL_SDK_SPAN_LIVE,{unit:"{span}",description:"The number of currently live spans."})}startSpan(t,n){let r=YYt(n);if(this.startedSpans.add(1,{[AN.ATTR_OTEL_SPAN_PARENT_ORIGIN]:ZYt(t),[AN.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r}),n===Pq.SamplingDecision.NOT_RECORD)return()=>{};let i={[AN.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r};return this.liveSpans.add(1,i),()=>{this.liveSpans.add(-1,i)}}};Cq.TracerMetrics=R$;function ZYt(e){return e?e.isRemote?"remote":"local":"none"}function YYt(e){switch(e){case Pq.SamplingDecision.RECORD_AND_SAMPLED:return"RECORD_AND_SAMPLE";case Pq.SamplingDecision.RECORD:return"RECORD_ONLY";case Pq.SamplingDecision.NOT_RECORD:return"DROP"}}});var vFe=w(Mq=>{"use strict";Object.defineProperty(Mq,"__esModule",{value:!0});Mq.VERSION=void 0;Mq.VERSION="2.6.1"});var AFe=w(Dq=>{"use strict";Object.defineProperty(Dq,"__esModule",{value:!0});Dq.Tracer=void 0;var jo=(Ce(),ke(Ye)),Lq=fr(),JYt=oFe(),XYt=b$(),QYt=A$(),$Yt=TFe(),e5t=vFe(),w$=class{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;_tracerMetrics;constructor(t,n,r,i){let s=(0,XYt.mergeConfig)(n);this._sampler=s.sampler,this._generalLimits=s.generalLimits,this._spanLimits=s.spanLimits,this._idGenerator=n.idGenerator||new QYt.RandomIdGenerator,this._resource=r,this._spanProcessor=i,this.instrumentationScope=t;let o=s.meterProvider?s.meterProvider.getMeter("@opentelemetry/sdk-trace",e5t.VERSION):jo.createNoopMeter();this._tracerMetrics=new $Yt.TracerMetrics(o)}startSpan(t,n={},r=jo.context.active()){n.root&&(r=jo.trace.deleteSpan(r));let i=jo.trace.getSpan(r);if((0,Lq.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,Lq.sanitizeAttributes)(S.attributes)})),f=(0,Lq.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,Lq.sanitizeAttributes)(Object.assign(f,p.attributes));return new JYt.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}};Dq.Tracer=w$});var RFe=w(Uq=>{"use strict";Object.defineProperty(Uq,"__esModule",{value:!0});Uq.MultiSpanProcessor=void 0;var t5t=fr(),k$=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,t5t.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)})}};Uq.MultiSpanProcessor=k$});var wFe=w(Zb=>{"use strict";Object.defineProperty(Zb,"__esModule",{value:!0});Zb.BasicTracerProvider=Zb.ForceFlushState=void 0;var n5t=fr(),r5t=c$(),i5t=AFe(),s5t=E$(),o5t=RFe(),a5t=b$(),_R;(function(e){e[e.resolved=0]="resolved",e[e.timeout=1]="timeout",e[e.error=2]="error",e[e.unresolved=3]="unresolved"})(_R=Zb.ForceFlushState||(Zb.ForceFlushState={}));var I$=class{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor(t={}){let n=(0,n5t.merge)({},(0,s5t.loadDefaultConfig)(),(0,a5t.reconfigureLimits)(t));this._resource=n.resource??(0,r5t.defaultResource)(),this._config=Object.assign({},n,{resource:this._resource});let r=[];t.spanProcessors?.length&&r.push(...t.spanProcessors),this._activeSpanProcessor=new o5t.MultiSpanProcessor(r)}getTracer(t,n,r){let i=`${t}@${n||""}:${r?.schemaUrl||""}`;return this._tracers.has(i)||this._tracers.set(i,new i5t.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()}};Zb.BasicTracerProvider=I$});var kFe=w(Fq=>{"use strict";Object.defineProperty(Fq,"__esModule",{value:!0});Fq.ConsoleSpanExporter=void 0;var x$=fr(),O$=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,x$.hrTimeToMicroseconds)(t.startTime),duration:(0,x$.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:x$.ExportResultCode.SUCCESS})}};Fq.ConsoleSpanExporter=O$});var xFe=w(jq=>{"use strict";Object.defineProperty(jq,"__esModule",{value:!0});jq.InMemorySpanExporter=void 0;var IFe=fr(),N$=class{_finishedSpans=[];_stopped=!1;export(t,n){if(this._stopped)return n({code:IFe.ExportResultCode.FAILED,error:new Error("Exporter has been stopped")});this._finishedSpans.push(...t),setTimeout(()=>n({code:IFe.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}};jq.InMemorySpanExporter=N$});var OFe=w(qq=>{"use strict";Object.defineProperty(qq,"__esModule",{value:!0});qq.SimpleSpanProcessor=void 0;var c5t=(Ce(),ke(Ye)),Hq=fr(),P$=class{_exporter;_shutdownOnce;_pendingExports;constructor(t){this._exporter=t,this._shutdownOnce=new Hq.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&c5t.TraceFlags.SAMPLED)===0)return;let n=this._doExport(t).catch(r=>(0,Hq.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 Hq.internal._export(this._exporter,[t]);if(n.code!==Hq.ExportResultCode.SUCCESS)throw n.error??new Error(`SimpleSpanProcessor: span export failed (status ${n})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}};qq.SimpleSpanProcessor=P$});var NFe=w(Bq=>{"use strict";Object.defineProperty(Bq,"__esModule",{value:!0});Bq.NoopSpanProcessor=void 0;var C$=class{onStart(t,n){}onEnd(t){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}};Bq.NoopSpanProcessor=C$});var M$=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 u5t=wFe();Object.defineProperty(ti,"BasicTracerProvider",{enumerable:!0,get:function(){return u5t.BasicTracerProvider}});var PFe=A$();Object.defineProperty(ti,"BatchSpanProcessor",{enumerable:!0,get:function(){return PFe.BatchSpanProcessor}});Object.defineProperty(ti,"RandomIdGenerator",{enumerable:!0,get:function(){return PFe.RandomIdGenerator}});var l5t=kFe();Object.defineProperty(ti,"ConsoleSpanExporter",{enumerable:!0,get:function(){return l5t.ConsoleSpanExporter}});var d5t=xFe();Object.defineProperty(ti,"InMemorySpanExporter",{enumerable:!0,get:function(){return d5t.InMemorySpanExporter}});var f5t=OFe();Object.defineProperty(ti,"SimpleSpanProcessor",{enumerable:!0,get:function(){return f5t.SimpleSpanProcessor}});var p5t=NFe();Object.defineProperty(ti,"NoopSpanProcessor",{enumerable:!0,get:function(){return p5t.NoopSpanProcessor}});var h5t=Eq();Object.defineProperty(ti,"AlwaysOffSampler",{enumerable:!0,get:function(){return h5t.AlwaysOffSampler}});var m5t=_q();Object.defineProperty(ti,"AlwaysOnSampler",{enumerable:!0,get:function(){return m5t.AlwaysOnSampler}});var g5t=h$();Object.defineProperty(ti,"ParentBasedSampler",{enumerable:!0,get:function(){return g5t.ParentBasedSampler}});var y5t=g$();Object.defineProperty(ti,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return y5t.TraceIdRatioBasedSampler}});var S5t=gR();Object.defineProperty(ti,"SamplingDecision",{enumerable:!0,get:function(){return S5t.SamplingDecision}})});function z$(e){if("parentSpanId"in e)return e.parentSpanId;if("parentSpanContext"in e)return e.parentSpanContext?.spanId}function V$(e){let t=e;return!!t.attributes&&typeof t.attributes=="object"}function E5t(e){return typeof e.kind=="number"}function b5t(e){return!!e.status}function DFe(e){return!!e.name}function _5t(e){if(!V$(e))return{};let t=e.attributes[dy]||e.attributes[uA],n={url:t,"http.method":e.attributes[yb]||e.attributes[lO]};!n["http.method"]&&n.url&&(n["http.method"]="GET");try{if(typeof t=="string"){let r=My(t);n.url=Ly(r),r.search&&(n["http.query"]=r.search),r.hash&&(n["http.fragment"]=r.hash)}}catch{}return n}function T5t(e){return E5t(e)?e.kind:$r.INTERNAL}function RR(e){return e.getValue(Z$)}function jFe(e,t){return e.setValue(Z$,t)}function R5t(e,t){Gs(e,FFe,t)}function wN(e){return e[FFe]}function vR(e){let{traceFlags:t,traceState:n}=e,r=n?n.get(K$)==="1":!1;if(t===Ha.SAMPLED)return!0;if(r)return!1;let i=n?n.get(W$):void 0,s=i?gm(i):void 0;if(s?.sampled==="true")return!0;if(s?.sampled==="false")return!1}function HFe(e,t,n){let r=t[yb]||t[lO];if(r)return k5t({attributes:t,name:e,kind:n},r);let i=t[gb]||t[Y8],s=typeof t[Gt]=="string"&&t[Gt].startsWith("cache.");if(i&&!s)return w5t({attributes:t,name:e});let o=t[Wi]==="custom"?"custom":"route";if(t[oJ])return{...RN(e,t,"route"),op:"rpc"};if(t[sJ])return{...RN(e,t,o),op:"message"};let u=t[X8];return u?{...RN(e,t,o),op:u.toString()}:{op:void 0,description:e,source:"custom"}}function qFe(e){let t=V$(e)?e.attributes:{},n=DFe(e)?e.name:"",r=T5t(e);return HFe(n,t,r)}function w5t({attributes:e,name:t}){let n=e[zl];if(typeof n=="string")return{op:"db",description:n,source:e[Wi]||"custom"};if(e[Wi]==="custom")return{op:"db",description:t,source:"custom"};let r=e[J8];return{op:"db",description:r?r.toString():t,source:"task"}}function k5t({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}=x5t(n,t);if(!s)return{...RN(e,n),op:i.join(".")};let l=n[AR],d=`${r} ${s}`,f=l?`${d} (${I5t(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[Rt]||"manual"}`.startsWith("auto"),E=n[Wi]==="custom",S=n[zl],b=!E&&S==null&&(m||!g),{description:_,source:T}=b?{description:f,source:p}:RN(e,n);return{op:i.join("."),description:_,source:T,data:h}}function I5t(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 x5t(e,t){let n=e[tJ],r=e[uA]||e[dy],i=e[um],s=typeof r=="string"?My(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:_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 RN(e,t,n="custom"){let r=t[Wi]||n,i=t[zl];return i&&typeof i=="string"?{description:i,source:r}:{description:e,source:r}}function BFe(e){e.on("createDsc",(t,n)=>{if(!n)return;let s=vt(n).data[Wi],{description:o}=DFe(n)?qFe(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 GFe(){return jt.getActiveSpan()}function zFe({dsc:e,sampled:t}){let n=e?Ib(e):void 0,r=new Cc.TraceState,i=n?r.set(W$,n):r;return t===!1?i.set(K$,"1"):i}function WFe(){return Array.from(VFe)}function Kq(e){VFe.add(e)}function KFe(e,t={}){let n=jt.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 ZFe(e,{sentryTrace:t,baggage:n}){let r=LO(t,n),{traceId:i,parentSpanId:s,sampled:o,dsc:a}=r,c=ct(),u=gm(n);if(!s||c&&!tX(c,u?.org_id))return e;let l=M5t({traceId:i,spanId:s,sampled:o,dsc:a});return jt.setSpanContext(e,l)}function O5t(e,t,n){let r=YFe(ZFe(e,t));return Ve.with(r,n)}function YFe(e){let t=RR(e),n={scope:t?t.scope:Un().clone(),isolationScope:t?t.isolationScope:vn()};return jFe(e,n)}function N5t(e){try{let t=e[L$];return Array.isArray(t)?t.join(","):t}catch{return}}function P5t(e){try{return e[Gq]}catch{return}}function C5t(e){let t=vt(e).data,n=t[uA]||t[dy];if(typeof n=="string")return n;let r=e.spanContext().traceState?.get(UFe);if(r)return r}function M5t({spanId:e,traceId:t,sampled:n,dsc:r}){let i=zFe({dsc:r,sampled:n});return{traceId:t,spanId:e,isRemote:!0,traceFlags:n?Ha.SAMPLED:Ha.NONE,traceState:i}}function JFe(e,t,n){let r=QFe(),{name:i,parentSpan:s}=e;return rje(s)(()=>{let a=tje(e.scope,e.forceTransaction),u=e.onlyIfParent&&!jt.getSpan(a)?(0,Cc.suppressTracing)(a):a,l=$Fe(e);if(!Os()){let d=(0,Cc.isTracingSuppressed)(u)?u:(0,Cc.suppressTracing)(u);return Ve.with(d,()=>r.startActiveSpan(i,l,d,f=>(j$(f),Ve.with(a,()=>af(()=>t(f),()=>{vt(f).status===void 0&&f.setStatus({code:as.ERROR})},n?()=>f.end():void 0)))))}return r.startActiveSpan(i,l,u,d=>(j$(d),af(()=>t(d),()=>{vt(d).status===void 0&&d.setStatus({code:as.ERROR})},n?()=>d.end():void 0)))})}function L5t(e,t){return JFe(e,t,!0)}function D5t(e,t){return JFe(e,n=>t(n,()=>n.end()),!1)}function U5t(e){let t=QFe(),{name:n,parentSpan:r}=e;return rje(r)(()=>{let s=tje(e.scope,e.forceTransaction),a=e.onlyIfParent&&!jt.getSpan(s)?(0,Cc.suppressTracing)(s):s,c=$Fe(e);Os()||(a=(0,Cc.isTracingSuppressed)(a)?a:(0,Cc.suppressTracing)(a));let u=t.startSpan(n,c,a);return j$(u),u})}function XFe(e,t){let n=e?jt.setSpan(Ve.active(),e):jt.deleteSpan(Ve.active());return Ve.with(n,()=>t(Un()))}function QFe(){return ct()?.tracer||jt.getTracer("@sentry/opentelemetry",Pn)}function $Fe(e){let{startTime:t,attributes:n,kind:r,op:i,links:s}=e,o=typeof t=="number"?eje(t):t;return{attributes:i?{[Gt]:i,...n}:n,kind:r,links:s,startTime:o}}function eje(e){return e<9999999999?e*1e3:e}function j$(e){let t=e.end.bind(e);e.end=n=>t(typeof n=="number"?eje(n):n)}function tje(e,t){let n=F5t(e),r=jt.getSpan(n);if(!r||!t)return n;let i=jt.deleteSpan(n),{spanId:s,traceId:o}=r.spanContext(),a=vR(r.spanContext()),c=cs(r),u=Ns(c),l=zFe({dsc:u,sampled:a}),d={traceId:o,spanId:s,isRemote:!0,traceFlags:a?Ha.SAMPLED:Ha.NONE,traceState:l};return jt.setSpanContext(i,d)}function F5t(e){if(e){let t=wN(e);if(t)return t}return Ve.active()}function j5t(e,t){return O5t(Ve.active(),e,t)}function H5t(e){let t=Ka(),n=Za(),r={traceId:t,spanId:n,isRemote:!0,traceFlags:Ha.NONE},i=jt.setSpanContext(Ve.active(),r);return Ve.with(i,()=>(Un().setPropagationContext({traceId:t,sampleRand:Lo()}),e()))}function nje(e,t){let n=wN(t),r=n&&jt.getSpan(n),i=r?Oy(r):kb(t);return[r?Ns(r):Up(e,t),i]}function rje(e){return e!==void 0?t=>XFe(e,t):t=>t()}function q5t(e){let t=(0,Cc.suppressTracing)(Ve.active());return Ve.with(t,e)}function ije(e){e.on("preprocessEvent",t=>{let n=GFe();if(!n||t.type==="transaction")return;t.contexts={trace:Oy(n),...t.contexts};let r=cs(n);return t.sdkProcessingMetadata={dynamicSamplingContext:Ns(r),...t.sdkProcessingMetadata},t})}function B5t({span:e,scope:t,client:n,propagateTraceparent:r}={}){let i=(t&&wN(t))??Ve.active();if(e){let{scope:l}=rf(e);i=l&&wN(l)||jt.setSpan(Ve.active(),e)}let{traceId:s,spanId:o,sampled:a,dynamicSamplingContext:c}=KFe(i,{scope:t,client:n}),u={"sentry-trace":Iy(s,o,a),baggage:Ib(c)};return r&&(u.traceparent=xy(s,o,a)),u}function sje(){function e(){let a=Ve.active(),c=RR(a);return c||{scope:MA(),isolationScope:Gl()}}function t(a){let c=Ve.active();return Ve.with(c,()=>a(s()))}function n(a,c){let u=wN(a)||Ve.active();return Ve.with(u.setValue(U$,a),()=>c(a))}function r(a){let c=Ve.active();return Ve.with(c.setValue(D$,!0),()=>a(o()))}function i(a,c){let u=Ve.active();return Ve.with(u.setValue(F$,a),()=>c(o()))}function s(){return e().scope}function o(){return e().isolationScope}V7({withScope:t,withSetScope:n,withSetIsolationScope:i,withIsolationScope:r,getCurrentScope:s,getIsolationScope:o,startSpan:L5t,startSpanManual:D5t,startInactiveSpan:U5t,getActiveSpan:GFe,suppressTracing:q5t,getTraceData:B5t,continueTrace:j5t,startNewTrace:H5t,withActiveSpan:XFe})}function oje(e){class t extends e{constructor(...r){super(...r),Kq("SentryContextManager")}with(r,i,s,...o){let a=RR(r),c=a?.scope||Un(),u=a?.isolationScope||vn(),l=r.getValue(D$)===!0,d=r.getValue(U$),f=r.getValue(F$),p=d||c.clone(),h=f||(l?u.clone():u),g=jFe(r,{scope:p,isolationScope:h}).deleteValue(D$).deleteValue(U$).deleteValue(F$);return R5t(p,g),super.with(g,i,s,...o)}getAsyncLocalStorageLookup(){return{asyncLocalStorage:this._asyncLocalStorage,contextSymbol:Z$}}}return t}function G5t(e){let t=new Map;for(let n of e)z5t(t,n);return Array.from(t,function([n,r]){return r})}function aje(e){return e.attributes[G$]===!0?void 0:z$(e)}function z5t(e,t){let n=t.spanContext().spanId,r=aje(t);if(!r){H$(e,{id:n,span:t,children:[]});return}let i=V5t(e,r),s=H$(e,{id:n,span:t,parentNode:i,children:[]});i.children.push(s)}function V5t(e,t){let n=e.get(t);return n||H$(e,{id:t,children:[]})}function H$(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 uje(e){let t=V$(e)?e.attributes:{},n=b5t(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=CFe(t);if(i)return i}return n.message&&W5t(n.message)?{code:2,message:n.message}:{code:2,message:"internal_error"}}}let r=CFe(t);return r||(n?.code===as.UNSET?{code:1}:{code:2,message:"unknown_error"})}function CFe(e){let t=e[cm]||e[mb],n=e[aJ],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:cje[n]||"unknown_error"}}function K5t(e){let t=e.attributes,n=t[Rt],r=t[Gt],i=t[Wi];return{origin:n,op:r,source:i}}function Z5t(e){let{op:t,description:n,data:r,origin:i="manual",source:s}=lje(e),o=rf(e),a=e.attributes[nf],c={[Wi]:s,[nf]:a,[Gt]:t,[Rt]:i,...r,...dje(e.attributes)},{links:u}=e,{traceId:l,spanId:d}=e.spanContext(),f=z$(e),p=uje(e),h={parent_span_id:f,span_id:d,trace_id:l,data:c,origin:i,op:t,status:Nb(p),links:Ob(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:uu(e.startTime),timestamp:uu(e.endTime),transaction:n,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:o.scope,capturedSpanIsolationScope:o.isolationScope,sampleRate:a,dynamicSamplingContext:Ns(e)},...s&&{transaction_info:{source:s}}}}function B$(e,t,n){let r=e.span;if(r&&n.add(r),!r){e.children.forEach(S=>{B$(S,t,n)});return}let s=r.spanContext().spanId,o=r.spanContext().traceId,a=z$(r),{attributes:c,startTime:u,endTime:l,links:d}=r,{op:f,description:p,data:h,origin:m="manual"}=lje(r),y={[Rt]:m,[Gt]:f,...dje(c),...h},g=uje(r),E={span_id:s,trace_id:o,data:y,description:p,parent_span_id:a,start_timestamp:uu(u),timestamp:uu(l)||void 0,status:Nb(g),op:f,origin:m,measurements:Pb(r.events),links:Ob(d)};t.push(E),e.children.forEach(S=>{B$(S,t,n)})}function lje(e){let{op:t,source:n,origin:r}=K5t(e),{op:i,description:s,source:o,data:a}=qFe(e),c=t||i,u=n||o,l={...a,...Y5t(e)};return{op:c,description:s,source:u,origin:r,data:l}}function dje(e){let t={...e};return delete t[nf],delete t[G$],delete t[zl],t}function Y5t(e){let t=e.attributes,n={};e.kind!==$r.INTERNAL&&(n["otel.kind"]=$r[e.kind]);let r=t[mb];r&&(n[cm]=r);let i=_5t(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 J5t(e,t){let n=jt.getSpan(t),r=RR(t);n&&!n.spanContext().isRemote&&qA(n,e),n?.spanContext().isRemote&&e.setAttribute(G$,!0),t===rA&&(r={scope:MA(),isolationScope:Gl()}),r&&CO(e,r.scope,r.isolationScope),BO(e),ct()?.emit("spanStart",e)}function X5t(e){GO(e),ct()?.emit("spanEnd",e)}function Q5t(e,t,n){let r=e.spanContext();if(am(r)&&r.traceId===t){if(r.isRemote){let s=vR(e.spanContext());return Ky&&Y.log(`[Tracing] Inheriting remote parent's sampled decision for ${n}: ${s}`),s}let i=vR(r);return Ky&&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=$5t(t,n);return i!==void 0&&(s=s.set(A5t,`${i}`)),r!==void 0&&(s=s.set(v5t,`${r}`)),e==null?{decision:Wy.SamplingDecision.NOT_RECORD,traceState:s}:e===Wy.SamplingDecision.NOT_RECORD?{decision:e,traceState:s.set(K$,"1")}:{decision:e,traceState:s}}function $5t(e,t){let i=jt.getSpan(e)?.spanContext()?.traceState||new Cc.TraceState,s=t[uA]||t[dy];return s&&typeof s=="string"&&(i=i.set(UFe,s)),i}function e6t(e){let t=jt.getSpan(e);return t&&am(t.spanContext())?t:void 0}var Cc,Wy,G$,AR,Gq,L$,W$,K$,UFe,v5t,A5t,Z$,D$,U$,F$,FFe,Ky,VFe,zq,cje,W5t,MFe,LFe,q$,Vq,Wq,wR=v(()=>{Nn();st();Ce();Ce();Cc=Se(fr(),1),Wy=Se(M$(),1),G$="sentry.parentIsRemote",AR="sentry.graphql.operation";Gq="sentry-trace",L$="baggage",W$="sentry.dsc",K$="sentry.sampled_not_recording",UFe="sentry.url",v5t="sentry.sample_rand",A5t="sentry.sample_rate",Z$=rl("sentry_scopes"),D$=rl("sentry_fork_isolation_scope"),U$=rl("sentry_fork_set_scope"),F$=rl("sentry_fork_set_isolation_scope"),FFe="_scopeContext";Ky=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;VFe=new Set;zq=class extends Cc.W3CBaggagePropagator{constructor(){super(),Kq("SentryPropagator"),this._urlMatchesTargetsMap=new du(100)}inject(t,n,r){if((0,Cc.isTracingSuppressed)(t)){Ky&&Y.log("[Tracing] Not injecting trace data for url because tracing is suppressed.");return}let i=jt.getSpan(t),s=i&&C5t(i),{tracePropagationTargets:o,propagateTraceparent:a}=ct()?.getOptions()||{};if(!Db(s,o,this._urlMatchesTargetsMap)){Ky&&Y.log("[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:",s);return}let c=N5t(n),u=P5t(n),l=Jd.getBaggage(t)||Jd.createBaggage({}),{dynamicSamplingContext:d,traceId:f,spanId:p,sampled:h}=KFe(t);if(c){let m=xb(c);m&&Object.entries(m).forEach(([y,g])=>{!u&&y.startsWith(Dp)||(l=l.setEntry(y,{value:g}))})}!u&&d&&(l=Object.entries(d).reduce((m,[y,g])=>g?m.setEntry(`${Dp}${y}`,{value:g}):m,l)),!u&&f&&f!==fb&&(r.set(n,Gq,Iy(f,p,h)),a&&r.set(n,"traceparent",xy(f,p,h))),super.inject(Jd.setBaggage(t,l),n,r)}extract(t,n,r){let i=r.get(n,Gq),s=r.get(n,L$),o=i?Array.isArray(i)?i[0]:i:void 0;return YFe(ZFe(t,{sentryTrace:o,baggage:s}))}fields(){return[Gq,L$,"traceparent"]}};cje={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"},W5t=e=>Object.values(cje).includes(e);MFe=1e3,LFe=300,q$=class{constructor(t){this._finishedSpanBucketSize=t?.timeout||LFe,this._finishedSpanBuckets=new Array(this._finishedSpanBucketSize).fill(void 0),this._lastCleanupTimestampInS=Math.floor(Bl()/1e3),this._spansToBucketEntry=new WeakMap,this._sentSpans=new Map,this._debouncedFlush=HX(this.flush.bind(this),1,{maxWait:100})}export(t){let n=Math.floor(Bl()/1e3);if(this._lastCleanupTimestampInS!==n){let o=0;this._finishedSpanBuckets.forEach((a,c)=>{a&&a.timestampInS<=n-this._finishedSpanBucketSize&&(o+=a.spans.size,this._finishedSpanBuckets[c]=void 0)}),o>0&&Ky&&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=aje(t);(!s||this._sentSpans.has(s))&&this._debouncedFlush()}flush(){let t=this._finishedSpanBuckets.flatMap(o=>o?Array.from(o.spans):[]);this._flushSentSpanCache();let n=this._maybeSend(t),r=n.size,i=t.length-r;Ky&&Y.log(`SpanExporter exported ${r} spans, ${i} spans are waiting for their parent spans to finish`);let s=Bl()+LFe*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=G5t(t),r=new Set,i=this._getCompletedRootNodes(n);for(let s of i){let o=s.span;r.add(o);let a=Z5t(o);if(s.parentNode&&this._sentSpans.has(s.parentNode.id)){let l=a.contexts?.trace?.data;l&&(l["sentry.parent_span_already_sent"]=!0)}let c=a.spans||[];for(let l of s.children)B$(l,c,r);a.spans=c.length>MFe?c.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,MFe):c;let u=Pb(o.events);u&&(a.measurements=u),rH(a)}return r}_flushSentSpanCache(){let t=Bl();for(let[n,r]of this._sentSpans.entries())r<=t&&this._sentSpans.delete(n)}_nodeIsCompletedRootNodeOrHasSentParent(t){return!!t.span&&(!t.parentNode||this._sentSpans.has(t.parentNode.id))}_getCompletedRootNodes(t){return t.filter(n=>this._nodeIsCompletedRootNodeOrHasSentParent(n))}};Vq=class{constructor(t){Kq("SentrySpanProcessor"),this._exporter=new q$(t)}async forceFlush(){this._exporter.flush()}async shutdown(){this._exporter.clear()}onStart(t,n){J5t(t,n)}onEnd(t){X5t(t),this._exporter.export(t)}},Wq=class{constructor(t){this._client=t,Kq("SentrySampler")}shouldSample(t,n,r,i,s,o){let a=this._client.getOptions(),c=e6t(t),u=c?.spanContext();if(!Os(a))return TR({decision:void 0,context:t,spanAttributes:s});let l=s[lO]||s[yb];if(i===$r.CLIENT&&l&&(!c||u?.isRemote))return TR({decision:void 0,context:t,spanAttributes:s});let d=c?Q5t(c,n,r):void 0;if(!(!c||u?.isRemote))return TR({decision:d?Wy.SamplingDecision.RECORD_AND_SAMPLED:Wy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s});let{description:p,data:h,op:m}=HFe(r,s,i),y={...h,...s};m&&(y[Gt]=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(W$):void 0,b=S?gm(S):void 0,_=al(b?.sample_rand)??Lo(),[T,A,R]=zO(a,{name:p,attributes:y,normalizedRequest:E?.getScopeData().sdkProcessingMetadata.normalizedRequest,parentSampled:d,parentSampleRate:al(b?.sample_rate)},_),x=`${l}`.toUpperCase();return x==="OPTIONS"||x==="HEAD"?(Ky&&Y.log(`[Tracing] Not sampling span because HTTP method is '${x}' for ${r}`),TR({decision:Wy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:0})):(!T&&d===void 0&&(Ky&&Y.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),this._client.recordDroppedEvent("sample_rate","transaction")),{...TR({decision:T?Wy.SamplingDecision.RECORD_AND_SAMPLED:Wy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:R?A:void 0}),attributes:{[nf]:R?A:void 0}})}toString(){return"SentrySampler"}}});var fje,Y$,pje=v(()=>{fje=Se(CUe(),1);wR();Y$=oje(fje.AsyncLocalStorageContextManager)});function J$(){il.disable(),il.setLogger({error:Y.error,warn:Y.warn,info:Y.log,debug:Y.log,verbose:Y.log},ho.DEBUG)}var hje=v(()=>{Ce();st()});import*as X$ from"node:diagnostics_channel";function n6t(e,t){let n=!1,r;e.on("spawn",()=>{if(e.spawnfile==="/usr/bin/sw_vers"){n=!0;return}r={spawnfile:e.spawnfile},t.includeChildProcessArgs&&(r.spawnargs=e.spawnargs)}).on("exit",i=>{n||(n=!0,i!==null&&i!==0&&Wl({category:"child_process",message:`Child process exited with code '${i}'`,level:i===0?"info":"warning",data:r}))}).on("error",i=>{n||(n=!0,Wl({category:"child_process",message:`Child process errored with '${i.message}'`,level:"error",data:r}))})}function r6t(e,t){let n;e.on("online",()=>{n=e.threadId}).on("error",r=>{t.captureWorkerErrors!==!1?Wt(r,{mechanism:{type:"auto.child_process.worker_thread",handled:!1,data:{threadId:String(n)}}}):Wl({category:"worker_thread",message:`Worker thread errored with '${r.message}'`,level:"error",data:{threadId:n}})})}var t6t,mje,gje=v(()=>{st();t6t="ChildProcess",mje=(e={})=>({name:t6t,setup(){X$.channel("child_process").subscribe(t=>{t&&typeof t=="object"&&"process"in t&&n6t(t.process,e)}),X$.channel("worker_threads").subscribe(t=>{t&&typeof t=="object"&&"worker"in t&&r6t(t.worker,e)})}})});import{execFile as i6t}from"node:child_process";import{readFile as s6t,readdir as o6t}from"node:fs";import*as Ho from"node:os";import{join as a6t}from"node:path";import{promisify as Sje}from"node:util";function f6t(e){if(e.app?.app_memory&&(e.app.app_memory=process.memoryUsage().rss),e.app?.free_memory&&typeof process.availableMemory=="function"){let t=process.availableMemory?.();t!=null&&(e.app.free_memory=t)}return e.device?.free_memory&&(e.device.free_memory=Ho.freemem()),e}async function p6t(){let e=Ho.platform();switch(e){case"darwin":return b6t();case"linux":return _6t();default:return{name:y6t[e]||e,version:Ho.release()}}}function h6t(){try{if(typeof process.versions.icu!="string")return;let e=new Date(9e8);if(new Intl.DateTimeFormat("es",{month:"long"}).format(e)==="enero"){let n=Intl.DateTimeFormat().resolvedOptions();return{locale:n.locale,timezone:n.timeZone}}}catch{}}function m6t(){let e=process.memoryUsage().rss,n={app_start_time:new Date(Date.now()-process.uptime()*1e3).toISOString(),app_memory:e};if(typeof process.availableMemory=="function"){let r=process.availableMemory?.();r!=null&&(n.free_memory=r)}return n}function g6t(e){let t={},n;try{n=Ho.uptime()}catch{}if(typeof n=="number"&&(t.boot_time=new Date(Date.now()-n*1e3).toISOString()),t.arch=Ho.arch(),(e===!0||e.memory)&&(t.memory_size=Ho.totalmem(),t.free_memory=Ho.freemem()),e===!0||e.cpu){let r=Ho.cpus(),i=r?.[0];i&&(t.processor_count=r.length,t.cpu_description=i.model,t.processor_frequency=i.speed)}return t}function Kp(e,t){let n=e.exec(t);return n?n[1]:void 0}async function b6t(){let e={kernel_version:Ho.release(),name:"Mac OS X",version:`10.${Number(Ho.release().split(".")[0])-4}`};try{let t=await new Promise((n,r)=>{i6t("/usr/bin/sw_vers",(i,s)=>{if(i){r(i);return}n(s)})});e.name=Kp(/^ProductName:\s+(.*)$/m,t),e.version=Kp(/^ProductVersion:\s+(.*)$/m,t),e.build=Kp(/^BuildVersion:\s+(.*)$/m,t)}catch{}return e}function yje(e){return e.split(" ")[0].toLowerCase()}async function _6t(){let e={kernel_version:Ho.release(),name:"Linux"};try{let t=await u6t("/etc"),n=S6t.find(a=>t.includes(a.name));if(!n)return e;let r=a6t("/etc",n.name),i=(await c6t(r,{encoding:"utf-8"})).toLowerCase(),{distros:s}=n;e.name=s.find(a=>i.indexOf(yje(a))>=0)||s[0];let o=yje(e.name);e.version=E6t[o]?.(i)}catch{}return e}function T6t(){return process.env.VERCEL?{"cloud.provider":"vercel","cloud.region":process.env.VERCEL_REGION}:process.env.AWS_REGION?{"cloud.provider":"aws","cloud.region":process.env.AWS_REGION,"cloud.platform":process.env.AWS_EXECUTION_ENV}:process.env.GCP_PROJECT?{"cloud.provider":"gcp"}:process.env.ALIYUN_REGION_ID?{"cloud.provider":"alibaba_cloud","cloud.region":process.env.ALIYUN_REGION_ID}:process.env.WEBSITE_SITE_NAME&&process.env.REGION_NAME?{"cloud.provider":"azure","cloud.region":process.env.REGION_NAME}:process.env.IBM_CLOUD_REGION?{"cloud.provider":"ibm_cloud","cloud.region":process.env.IBM_CLOUD_REGION}:process.env.TENCENTCLOUD_REGION?{"cloud.provider":"tencent_cloud","cloud.region":process.env.TENCENTCLOUD_REGION,"cloud.account.id":process.env.TENCENTCLOUD_APPID,"cloud.availability_zone":process.env.TENCENTCLOUD_ZONE}:process.env.NETLIFY?{"cloud.provider":"netlify"}:process.env.FLY_REGION?{"cloud.provider":"fly.io","cloud.region":process.env.FLY_REGION}:process.env.DYNO?{"cloud.provider":"heroku"}:void 0}var c6t,u6t,l6t,d6t,Eje,y6t,S6t,E6t,bje=v(()=>{c6t=Sje(s6t),u6t=Sje(o6t),l6t="Context",d6t=((e={})=>{let t,n={app:!0,os:!0,device:!0,culture:!0,cloudResource:!0,...e};async function r(s){t===void 0&&(t=i());let o=f6t(await t);return s.contexts={...s.contexts,app:{...o.app,...s.contexts?.app},os:{...o.os,...s.contexts?.os},device:{...o.device,...s.contexts?.device},culture:{...o.culture,...s.contexts?.culture},cloud_resource:{...o.cloud_resource,...s.contexts?.cloud_resource}},s}async function i(){let s={};if(n.os&&(s.os=await p6t()),n.app&&(s.app=m6t()),n.device&&(s.device=g6t(n.device)),n.culture){let o=h6t();o&&(s.culture=o)}return n.cloudResource&&(s.cloud_resource=T6t()),s}return{name:l6t,processEvent(s){return r(s)}}}),Eje=d6t;y6t={aix:"IBM AIX",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"SunOS",win32:"Windows",ohos:"OpenHarmony",android:"Android"},S6t=[{name:"fedora-release",distros:["Fedora"]},{name:"redhat-release",distros:["Red Hat Linux","Centos"]},{name:"redhat_version",distros:["Red Hat Linux"]},{name:"SuSE-release",distros:["SUSE Linux"]},{name:"lsb-release",distros:["Ubuntu Linux","Arch Linux"]},{name:"debian_version",distros:["Debian"]},{name:"debian_release",distros:["Debian"]},{name:"arch-release",distros:["Arch Linux"]},{name:"gentoo-release",distros:["Gentoo Linux"]},{name:"novell-release",distros:["SUSE Linux"]},{name:"alpine-release",distros:["Alpine Linux"]}],E6t={alpine:e=>e,arch:e=>Kp(/distrib_release=(.*)/,e),centos:e=>Kp(/release ([^ ]+)/,e),debian:e=>e,fedora:e=>Kp(/release (..)/,e),mint:e=>Kp(/distrib_release=(.*)/,e),red:e=>Kp(/release ([^ ]+)/,e),suse:e=>Kp(/VERSION = (.*)\n/,e),ubuntu:e=>Kp(/distrib_release=(.*)/,e)}});import{createReadStream as v6t}from"node:fs";import{createInterface as A6t}from"node:readline";function x6t(e,t,n){let r=e.get(t);return r===void 0?(e.set(t,n),n):r}function O6t(e){return!!(e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:"))}function N6t(e){return e.lineno!==void 0&&e.lineno>I6t||e.colno!==void 0&&e.colno>k6t}function P6t(e,t){let n=Q$.get(e);if(n===void 0)return!1;for(let r=t[0];r<=t[1];r++)if(n[r]===void 0)return!1;return!0}function C6t(e,t){if(!e.length)return[];let n=0,r=e[0];if(typeof r!="number")return[];let i=Tje(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=Tje(o,t)),n++}return s}function M6t(e,t,n){return new Promise((r,i)=>{let s=v6t(e),o=A6t({input:s});function a(){s.destroy(),r()}let c=0,u=0,l=t[u];if(l===void 0){a();return}let d=l[0],f=l[1];function p(h){vje.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 L6t(e,t){let n={};if(t>0&&e.exception?.values){for(let s of e.exception.values)if(s.stacktrace?.frames?.length)for(let o=s.stacktrace.frames.length-1;o>=0;o--){let a=s.stacktrace.frames[o],c=a?.filename;if(!a||typeof c!="string"||typeof a.lineno!="number"||O6t(c)||N6t(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(vje.get(s))continue;let o=n[s];if(!o)continue;o.sort((u,l)=>u-l);let a=C6t(o,t);if(a.every(u=>P6t(s,u)))continue;let c=x6t(Q$,s,{});i.push(M6t(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&&D6t(s.stacktrace.frames,t,Q$);return e}function D6t(e,t,n){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno=="number"){let i=n.get(r.filename);if(i===void 0)continue;U6t(r.lineno,r,t,i)}}function _je(e){delete e.pre_context,delete e.context_line,delete e.post_context}function U6t(e,t,n,r){if(t.lineno===void 0||r===void 0){Qt&&Y.error("Cannot resolve context for frame with no lineno or file contents");return}t.pre_context=[];for(let s=Aje(e,n);s{st();lf();Q$=new du(10),vje=new du(20),R6t=7,w6t="ContextLines",k6t=1e3,I6t=1e4;F6t=((e={})=>{let t=e.frameContextLines!==void 0?e.frameContextLines:R6t;return{name:w6t,processEvent(n){return L6t(n,t)}}}),wje=F6t});async function Yq(){if(Zq===void 0)try{Zq=!!(await import("node:inspector")).url()}catch{Zq=!1}return Zq}var Zq,$$=v(()=>{});function xje(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 Ije(e){return e!==void 0&&(e.length===0||e==="?"||e==="")}function Jq(e,t){return e===t||`Object.${e}`===t||e===`Object.${t}`||Ije(e)&&Ije(t)}var kN,eee=v(()=>{kN="__SENTRY_ERROR_LOCAL_VARIABLES__"});import{Worker as j6t}from"node:worker_threads";function Oje(...e){Y.log("[LocalVariables]",...e)}var H6t,Nje,Pje=v(()=>{st();$$();eee();H6t="LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQ3LjAgKGE1YTRlNzMpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=";Nje=((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=>{Oje("Worker error",a)}),o.once("exit",a=>{Oje("Worker exit",a)}),o.unref()}return{name:"LocalVariablesAsync",async setup(s){if(!s.getOptions().includeLocalVariables)return;if(await Yq()){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 Cje(e){if(e!==void 0)return e.slice(-10).reduce((t,n)=>`${t},${n.function},${n.lineno},${n.colno}`,"")}function q6t(e,t){if(t!==void 0)return Cje(e(t,1))}function Mje(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 tee,B6t,G6t,Lje,Dje=v(()=>{st();lR();$$();eee();tee=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}=Mje(n);for(let o of r)if(o.value?.objectId&&o.value.className==="Array"){let a=o.value.objectId;i(c=>this._unrollArray(a,o.name,c,s))}else if(o.value?.objectId&&o.value.className==="Object"){let a=o.value.objectId;i(c=>this._unrollObject(a,o.name,c,s))}else o.value&&i(a=>this._unrollOther(o,a,s));s({})})}_getProperties(t,n){this._session.post("Runtime.getProperties",{objectId:t,ownProperties:!0},(r,i)=>{n(r?[]:i.result)})}_unrollArray(t,n,r,i){this._getProperties(t,s=>{r[n]=s.filter(o=>o.name!=="length"&&!isNaN(parseInt(o.name,10))).sort((o,a)=>parseInt(o.name,10)-parseInt(a.name,10)).map(o=>o.value?.value),i(r)})}_unrollObject(t,n,r,i){this._getProperties(t,s=>{r[n]=s.map(o=>[o.name,o.value?.value]).reduce((o,[a,c])=>(o[a]=c,o),{}),i(r)})}_unrollOther(t,n,r){t.value&&("value"in t.value?t.value.value===void 0||t.value.value===null?n[t.name]=`<${t.value.value}>`:n[t.name]=t.value.value:"description"in t.value&&t.value.type!=="function"?n[t.name]=`<${t.value.description}>`:t.value.type==="undefined"&&(n[t.name]="")),r(n)}},B6t="LocalVariables",G6t=((e={},t)=>{let n=new du(20),r,i=!1;function s(u){let l=Cje(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 Yq()){Y.warn("Local variables capture has been disabled because the debugger was already enabled");return}try{let f=await tee.create(t),p=(m,{params:{reason:y,data:g,callFrames:E}},S)=>{if(y!=="exception"&&y!=="promiseRejection"){S();return}r?.();let b=q6t(m,g.description);if(b==null){S();return}let{add:_,next:T}=Mje(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=xje(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:B6t,setupOnce(){a=c()},async processEvent(u){return await a,i?o(u):u},_getCachedFramesCount(){return n.size},_getFirstCachedFrame(){return n.values()[0]}}}),Lje=G6t});var Uje,Fje=v(()=>{lR();Pje();Dje();Uje=(e={})=>df.major<19?Lje(e):Nje(e)});function IN(){try{return typeof module<"u"&&typeof module.exports<"u"}catch{return!1}}function Hje(){return IN()?!1:Am>=21||Am===20&&yN>=6||Am===18&&yN>=19?!0:(jje||(jje=!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 jje,Xq=v(()=>{st();lR()});import{existsSync as z6t,readFileSync as Bje}from"node:fs";import{dirname as V6t,join as Gje}from"node:path";function Y6t(){try{return Z.cache?Object.keys(Z.cache):[]}catch{return[]}}function J6t(){return{...K6t,...$6t(),...IN()?X6t():{}}}function X6t(){let e=Z.main?.paths||[],t=Y6t(),n={},r=new Set;return t.forEach(i=>{let s=i,o=()=>{let a=s;if(s=V6t(a),!s||a===s||r.has(a))return;if(e.indexOf(s)<0)return o();let c=Gje(a,"package.json");if(r.add(a),!z6t(c))return o();try{let u=JSON.parse(Bje(c,"utf8"));n[u.name]=u.version}catch{}};o()}),n}function qje(){return nee||(nee=J6t()),nee}function Q6t(){try{let e=Gje(process.cwd(),"package.json");return JSON.parse(Bje(e,"utf8"))}catch{return{}}}function $6t(){let e=Q6t();return{...e.dependencies,...e.devDependencies}}var nee,W6t,K6t,Z6t,zje,Vje=v(()=>{Xq();W6t="Modules",K6t=typeof __SENTRY_SERVER_MODULES__>"u"?{}:__SENTRY_SERVER_MODULES__,Z6t=(()=>({name:W6t,processEvent(e){return e.modules={...e.modules,...qje()},e},getModules:qje})),zje=Z6t});function xN(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:e8t;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 e8t,ree=v(()=>{st();lf();e8t=2e3});import{isMainThread as t8t}from"worker_threads";function r8t(e,t){let r=!1,i=!1,s=!1,o,a=e.getOptions();return Object.assign(c=>{let u=xN;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"),xN(c)):i||(i=!0,setTimeout(()=>{s||(s=!0,u(o,c))},2e3))):(o=c,r=!0,ct()===e&&Wt(c,{originalException:c,captureContext:{level:"fatal"},mechanism:{handled:!1,type:"auto.node.onuncaughtexception"}}),!s&&f&&(s=!0,u(c)))},{_errorHandler:!0})}var n8t,Wje,Kje=v(()=>{st();lf();ree();n8t="OnUncaughtException",Wje=(e={})=>{let t={exitEvenIfOtherHandlersAreRegistered:!1,...e};return{name:n8t,setup(n){t8t&&global.process.on("uncaughtException",r8t(n,t))}}}});function a8t(e){if(typeof e!="object"||e===null)return{name:"",message:String(e??"")};let t=e,n=typeof t.name=="string"?t.name:"",r=typeof t.message=="string"?t.message:String(e);return{name:n,message:r}}function c8t(e,t){let n=e.name===void 0||fm(t.name,e.name,!0),r=e.message===void 0||fm(t.message,e.message);return n&&r}function u8t(e,t){let n=a8t(t);return e.some(r=>c8t(r,n))}function l8t(e,t){return function(r,i){if(ct()!==e||u8t(t.ignore??[],r))return;let s=t.mode==="strict"?"fatal":"error",o=r&&typeof r=="object"?r._sentry_active_span:void 0;(o?c=>zA(o,c):c=>c())(()=>{Wt(r,{originalException:i,captureContext:{extra:{unhandledPromiseRejection:!0},level:s},mechanism:{handled:!1,type:"auto.node.onunhandledrejection"}})}),d8t(r,t.mode)}}function d8t(e,t){let n="This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:";t==="warn"?xs(()=>{console.warn(n),console.error(e&&typeof e=="object"&&"stack"in e?e.stack:e)}):t==="strict"&&(xs(()=>{console.warn(n)}),xN(e))}var i8t,s8t,o8t,Zje,Yje=v(()=>{st();ree();i8t="OnUnhandledRejection",s8t=[{name:"AI_NoOutputGeneratedError"},{name:"AbortError"}],o8t=((e={})=>{let t={mode:e.mode??"warn",ignore:[...s8t,...e.ignore??[]]};return{name:i8t,setup(n){global.process.on("unhandledRejection",l8t(n,t))}}}),Zje=o8t});var f8t,Jje,Xje=v(()=>{st();f8t="ProcessSession",Jje=()=>({name:f8t,setupOnce(){sH(),process.on("beforeExit",()=>{vn().getSession()?.status!=="ok"&&KO()})}})});import*as Qje from"node:http";function h8t(e,t){let n=m8t(t.sidecarUrl);if(!n)return;let r=0;e.on("beforeEnvelope",i=>{if(r>3){Y.warn("[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests");return}let s=qO(i);VA(()=>{let o=Qje.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 m8t(e){try{return new URL(`${e}`)}catch{Y.warn(`[Spotlight] Invalid sidecar URL: ${e}`);return}}var iee,p8t,$je,eHe=v(()=>{st();iee="Spotlight",p8t=((e={})=>{let t={sidecarUrl:e.sidecarUrl||"http://localhost:8969/stream"};return{name:iee,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{}h8t(n,t)}}}),$je=p8t});import*as tHe from"node:util";function y8t(e){return!(e instanceof Error)||!("errno"in e)||typeof e.errno!="number"?!1:tHe.getSystemErrorMap().has(e.errno)}var g8t,nHe,rHe=v(()=>{g8t="NodeSystemError";nHe=(e={})=>({name:g8t,processEvent:(t,n,r)=>{if(!y8t(n.originalException))return t;let i=n.originalException,s={...i};!r.getOptions().sendDefaultPii&&e.includePaths!==!0&&(delete s.path,delete s.dest),t.contexts={...t.contexts,node_system_error:s};for(let o of t.exception?.values||[])o.value&&(i.path&&o.value.includes(i.path)&&(o.value=o.value.replace(`'${i.path}'`,"").trim()),i.dest&&o.value.includes(i.dest)&&(o.value=o.value.replace(`'${i.dest}'`,"").trim()));return t}})});import*as see from"node:http";var Zp,Qq,iHe=v(()=>{Zp=Symbol("AgentBaseInternalState"),Qq=class extends see.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 see.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 $q(...e){Y.log("[https-proxy-agent:parse-proxy-response]",...e)}function sHe(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(),$q("onend"),n(new Error("Proxy connection ended before receiving CONNECT response"))}function c(l){o(),$q("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 XQ(e,t){let n=-1;for(let r=0;rr%2===0&&n===t)}function LUe(e,t){let n=VYt(e),r=t.statusCode,i=EP(r);Zl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function VYt(e){try{let t=tq(e.origin,e.path),n=Ly(t),r={url:Uy(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 tq(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 JQ,eq,BYt,UUe=v(()=>{st();WQ();JQ="sentry-trace",eq="baggage",BYt="traceparent"});import*as SA from"diagnostics_channel";var FUe,jUe,WE,$Q=v(()=>{Me();FUe=Re(pr(),1),jUe=Re(Jt(),1);st();yA();UUe();WE=class extends jUe.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-node-fetch",Cn,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&&DUe(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&&LUe(t,n)}_subscribeToChannel(t,n){let r=wm>18||wm===18&&IP>=19,i;if(r)SA.subscribe?.(t,n),i=()=>SA.unsubscribe?.(t,n);else{let s=SA.channel(t);s.subscribe(n),i=()=>s.unsubscribe(n)}this._channelSubs.push({name:t,unsubscribe:i})}_shouldIgnoreOutgoingRequest(t){if((0,FUe.isTracingSuppressed)(Ve.active()))return!0;let n=tq(t.origin,t.path),r=this.getConfig().ignoreOutgoingRequests;return typeof r!="function"||!n?!1:r(n)}}});var WYt,KYt,YYt,HUe,qUe=v(()=>{ZH();$Q();WYt="NodeFetch",KYt=rt(`${WYt}.sentry`,WE,e=>e),YYt=((e={})=>({name:"NodeFetch",setupOnce(){KYt(e)}})),HUe=YYt});var t$=w(nq=>{"use strict";Object.defineProperty(nq,"__esModule",{value:!0});nq.AbstractAsyncHooksContextManager=void 0;var ZYt=Y("events"),JYt=["addListener","on","once","prependListener","prependOnceListener"],e$=class{bind(t,n){return n instanceof ZYt.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),JYt.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};nq.AbstractAsyncHooksContextManager=e$});var BUe=w(rq=>{"use strict";Object.defineProperty(rq,"__esModule",{value:!0});rq.AsyncHooksContextManager=void 0;var XYt=(Me(),ke(Ze)),QYt=Y("async_hooks"),$Yt=t$(),n$=class extends $Yt.AbstractAsyncHooksContextManager{_asyncHook;_contexts=new Map;_stack=[];constructor(){super(),this._asyncHook=QYt.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]??XYt.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()}};rq.AsyncHooksContextManager=n$});var zUe=w(iq=>{"use strict";Object.defineProperty(iq,"__esModule",{value:!0});iq.AsyncLocalStorageContextManager=void 0;var eZt=(Me(),ke(Ze)),tZt=Y("async_hooks"),nZt=t$(),r$=class extends nZt.AbstractAsyncHooksContextManager{_asyncLocalStorage;constructor(){super(),this._asyncLocalStorage=new tZt.AsyncLocalStorage}active(){return this._asyncLocalStorage.getStore()??eZt.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}};iq.AsyncLocalStorageContextManager=r$});var GUe=w(bA=>{"use strict";Object.defineProperty(bA,"__esModule",{value:!0});bA.AsyncLocalStorageContextManager=bA.AsyncHooksContextManager=void 0;var rZt=BUe();Object.defineProperty(bA,"AsyncHooksContextManager",{enumerable:!0,get:function(){return rZt.AsyncHooksContextManager}});var iZt=zUe();Object.defineProperty(bA,"AsyncLocalStorageContextManager",{enumerable:!0,get:function(){return iZt.AsyncLocalStorageContextManager}})});var i$=w(EA=>{"use strict";Object.defineProperty(EA,"__esModule",{value:!0});EA._clearDefaultServiceNameCache=EA.defaultServiceName=void 0;var xP;function sZt(){if(xP===void 0)try{let e=globalThis.process.argv0;xP=e?`unknown_service:${e}`:"unknown_service"}catch{xP="unknown_service"}return xP}EA.defaultServiceName=sZt;function oZt(){xP=void 0}EA._clearDefaultServiceNameCache=oZt});var VUe=w(sq=>{"use strict";Object.defineProperty(sq,"__esModule",{value:!0});sq.isPromiseLike=void 0;var aZt=e=>e!==null&&typeof e=="object"&&typeof e.then=="function";sq.isPromiseLike=aZt});var a$=w(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});Bp.defaultResource=Bp.emptyResource=Bp.resourceFromDetectedResource=Bp.resourceFromAttributes=void 0;var PP=(Me(),ke(Ze)),s$=pr(),KE=(Nn(),ke(Mr)),cZt=i$(),OP=VUe(),oq=class e{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(t,n){let r=new e({},n);return r._rawAttributes=WUe(t),r._asyncAttributesPending=t.filter(([i,s])=>(0,OP.isPromiseLike)(s)).length>0,r}constructor(t,n){let r=t.attributes??{};this._rawAttributes=Object.entries(r).map(([i,s])=>((0,OP.isPromiseLike)(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=WUe(this._rawAttributes),this._schemaUrl=fZt(n?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let t=0;t(0,OP.isPromiseLike)(n)?[t,n.catch(r=>{PP.diag.debug("promise rejection for resource attribute: %s - %s",t,r)})]:[t,n])}function fZt(e){if(typeof e=="string"||e===void 0)return e;PP.diag.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",e)}function pZt(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;PP.diag.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',n,r)}});var YUe=w(aq=>{"use strict";Object.defineProperty(aq,"__esModule",{value:!0});aq.detectResources=void 0;var KUe=(Me(),ke(Ze)),c$=a$(),hZt=(e={})=>(e.detectors||[]).map(n=>{try{let r=(0,c$.resourceFromDetectedResource)(n.detect(e));return KUe.diag.debug(`${n.constructor.name} found resource.`,r),r}catch(r){return KUe.diag.debug(`${n.constructor.name} failed: ${r.message}`),(0,c$.emptyResource)()}}).reduce((n,r)=>n.merge(r),(0,c$.emptyResource)());aq.detectResources=hZt});var JUe=w(cq=>{"use strict";Object.defineProperty(cq,"__esModule",{value:!0});cq.envDetector=void 0;var mZt=(Me(),ke(Ze)),gZt=(Nn(),ke(Mr)),ZUe=pr(),u$=class{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect(t){let n={},r=(0,ZUe.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),i=(0,ZUe.getStringFromEnv)("OTEL_SERVICE_NAME");if(r)try{let s=this._parseResourceAttributes(r);Object.assign(n,s)}catch(s){mZt.diag.debug(`EnvDetector failed: ${s instanceof Error?s.message:s}`)}return i&&(n[gZt.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}};cq.envDetector=new u$});var NP=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 lq=w(uq=>{"use strict";Object.defineProperty(uq,"__esModule",{value:!0});uq.execAsync=void 0;var yZt=Y("child_process"),SZt=Y("util");uq.execAsync=SZt.promisify(yZt.exec)});var XUe=w(dq=>{"use strict";Object.defineProperty(dq,"__esModule",{value:!0});dq.getMachineId=void 0;var bZt=lq(),EZt=(Me(),ke(Ze));async function _Zt(){try{let t=(await(0,bZt.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){EZt.diag.debug(`error reading machine id: ${e}`)}}dq.getMachineId=_Zt});var QUe=w(fq=>{"use strict";Object.defineProperty(fq,"__esModule",{value:!0});fq.getMachineId=void 0;var TZt=Y("fs"),vZt=(Me(),ke(Ze));async function RZt(){let e=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let t of e)try{return(await TZt.promises.readFile(t,{encoding:"utf8"})).trim()}catch(n){vZt.diag.debug(`error reading machine id: ${n}`)}}fq.getMachineId=RZt});var eFe=w(pq=>{"use strict";Object.defineProperty(pq,"__esModule",{value:!0});pq.getMachineId=void 0;var AZt=Y("fs"),wZt=lq(),$Ue=(Me(),ke(Ze));async function kZt(){try{return(await AZt.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(e){$Ue.diag.debug(`error reading machine id: ${e}`)}try{return(await(0,wZt.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(e){$Ue.diag.debug(`error reading machine id: ${e}`)}}pq.getMachineId=kZt});var nFe=w(hq=>{"use strict";Object.defineProperty(hq,"__esModule",{value:!0});hq.getMachineId=void 0;var tFe=Y("process"),IZt=lq(),xZt=(Me(),ke(Ze));async function OZt(){let e="QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",t="%windir%\\System32\\REG.exe";tFe.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in tFe.env&&(t="%windir%\\sysnative\\cmd.exe /c "+t);try{let r=(await(0,IZt.execAsync)(`${t} ${e}`)).stdout.split("REG_SZ");if(r.length===2)return r[1].trim()}catch(n){xZt.diag.debug(`error reading machine id: ${n}`)}}hq.getMachineId=OZt});var rFe=w(mq=>{"use strict";Object.defineProperty(mq,"__esModule",{value:!0});mq.getMachineId=void 0;var PZt=(Me(),ke(Ze));async function NZt(){PZt.diag.debug("could not read machine-id: unsupported platform")}mq.getMachineId=NZt});var iFe=w(gq=>{"use strict";Object.defineProperty(gq,"__esModule",{value:!0});gq.getMachineId=void 0;var CZt=Y("process"),YE;async function MZt(){if(!YE)switch(CZt.platform){case"darwin":YE=(await Promise.resolve().then(()=>Re(XUe()))).getMachineId;break;case"linux":YE=(await Promise.resolve().then(()=>Re(QUe()))).getMachineId;break;case"freebsd":YE=(await Promise.resolve().then(()=>Re(eFe()))).getMachineId;break;case"win32":YE=(await Promise.resolve().then(()=>Re(nFe()))).getMachineId;break;default:YE=(await Promise.resolve().then(()=>Re(rFe()))).getMachineId;break}return YE()}gq.getMachineId=MZt});var l$=w(_A=>{"use strict";Object.defineProperty(_A,"__esModule",{value:!0});_A.normalizeType=_A.normalizeArch=void 0;var DZt=e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}};_A.normalizeArch=DZt;var LZt=e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}};_A.normalizeType=LZt});var oFe=w(yq=>{"use strict";Object.defineProperty(yq,"__esModule",{value:!0});yq.hostDetector=void 0;var d$=NP(),sFe=Y("os"),UZt=iFe(),FZt=l$(),f$=class{detect(t){return{attributes:{[d$.ATTR_HOST_NAME]:(0,sFe.hostname)(),[d$.ATTR_HOST_ARCH]:(0,FZt.normalizeArch)((0,sFe.arch)()),[d$.ATTR_HOST_ID]:(0,UZt.getMachineId)()}}}};yq.hostDetector=new f$});var uFe=w(Sq=>{"use strict";Object.defineProperty(Sq,"__esModule",{value:!0});Sq.osDetector=void 0;var aFe=NP(),cFe=Y("os"),jZt=l$(),p$=class{detect(t){return{attributes:{[aFe.ATTR_OS_TYPE]:(0,jZt.normalizeType)((0,cFe.platform)()),[aFe.ATTR_OS_VERSION]:(0,cFe.release)()}}}};Sq.osDetector=new p$});var lFe=w(bq=>{"use strict";Object.defineProperty(bq,"__esModule",{value:!0});bq.processDetector=void 0;var HZt=(Me(),ke(Ze)),km=NP(),qZt=Y("os"),h$=class{detect(t){let n={[km.ATTR_PROCESS_PID]:process.pid,[km.ATTR_PROCESS_EXECUTABLE_NAME]:process.title,[km.ATTR_PROCESS_EXECUTABLE_PATH]:process.execPath,[km.ATTR_PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[km.ATTR_PROCESS_RUNTIME_VERSION]:process.versions.node,[km.ATTR_PROCESS_RUNTIME_NAME]:"nodejs",[km.ATTR_PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};process.argv.length>1&&(n[km.ATTR_PROCESS_COMMAND]=process.argv[1]);try{let r=qZt.userInfo();n[km.ATTR_PROCESS_OWNER]=r.username}catch(r){HZt.diag.debug(`error obtaining process owner: ${r}`)}return{attributes:n}}};bq.processDetector=new h$});var dFe=w(Eq=>{"use strict";Object.defineProperty(Eq,"__esModule",{value:!0});Eq.serviceInstanceIdDetector=void 0;var BZt=NP(),zZt=Y("crypto"),m$=class{detect(t){return{attributes:{[BZt.ATTR_SERVICE_INSTANCE_ID]:(0,zZt.randomUUID)()}}}};Eq.serviceInstanceIdDetector=new m$});var fFe=w(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});zp.serviceInstanceIdDetector=zp.processDetector=zp.osDetector=zp.hostDetector=void 0;var GZt=oFe();Object.defineProperty(zp,"hostDetector",{enumerable:!0,get:function(){return GZt.hostDetector}});var VZt=uFe();Object.defineProperty(zp,"osDetector",{enumerable:!0,get:function(){return VZt.osDetector}});var WZt=lFe();Object.defineProperty(zp,"processDetector",{enumerable:!0,get:function(){return WZt.processDetector}});var KZt=dFe();Object.defineProperty(zp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return KZt.serviceInstanceIdDetector}})});var pFe=w(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});Gp.serviceInstanceIdDetector=Gp.processDetector=Gp.osDetector=Gp.hostDetector=void 0;var _q=fFe();Object.defineProperty(Gp,"hostDetector",{enumerable:!0,get:function(){return _q.hostDetector}});Object.defineProperty(Gp,"osDetector",{enumerable:!0,get:function(){return _q.osDetector}});Object.defineProperty(Gp,"processDetector",{enumerable:!0,get:function(){return _q.processDetector}});Object.defineProperty(Gp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return _q.serviceInstanceIdDetector}})});var hFe=w(TA=>{"use strict";Object.defineProperty(TA,"__esModule",{value:!0});TA.noopDetector=TA.NoopDetector=void 0;var Tq=class{detect(){return{attributes:{}}}};TA.NoopDetector=Tq;TA.noopDetector=new Tq});var mFe=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 YZt=JUe();Object.defineProperty(pu,"envDetector",{enumerable:!0,get:function(){return YZt.envDetector}});var vq=pFe();Object.defineProperty(pu,"hostDetector",{enumerable:!0,get:function(){return vq.hostDetector}});Object.defineProperty(pu,"osDetector",{enumerable:!0,get:function(){return vq.osDetector}});Object.defineProperty(pu,"processDetector",{enumerable:!0,get:function(){return vq.processDetector}});Object.defineProperty(pu,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return vq.serviceInstanceIdDetector}});var ZZt=hFe();Object.defineProperty(pu,"noopDetector",{enumerable:!0,get:function(){return ZZt.noopDetector}})});var y$=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 JZt=YUe();Object.defineProperty(ls,"detectResources",{enumerable:!0,get:function(){return JZt.detectResources}});var CP=mFe();Object.defineProperty(ls,"envDetector",{enumerable:!0,get:function(){return CP.envDetector}});Object.defineProperty(ls,"hostDetector",{enumerable:!0,get:function(){return CP.hostDetector}});Object.defineProperty(ls,"osDetector",{enumerable:!0,get:function(){return CP.osDetector}});Object.defineProperty(ls,"processDetector",{enumerable:!0,get:function(){return CP.processDetector}});Object.defineProperty(ls,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return CP.serviceInstanceIdDetector}});var g$=a$();Object.defineProperty(ls,"resourceFromAttributes",{enumerable:!0,get:function(){return g$.resourceFromAttributes}});Object.defineProperty(ls,"defaultResource",{enumerable:!0,get:function(){return g$.defaultResource}});Object.defineProperty(ls,"emptyResource",{enumerable:!0,get:function(){return g$.emptyResource}});var XZt=i$();Object.defineProperty(ls,"defaultServiceName",{enumerable:!0,get:function(){return XZt.defaultServiceName}})});var gFe=w(Rq=>{"use strict";Object.defineProperty(Rq,"__esModule",{value:!0});Rq.ExceptionEventName=void 0;Rq.ExceptionEventName="exception"});var yFe=w(Aq=>{"use strict";Object.defineProperty(Aq,"__esModule",{value:!0});Aq.SpanImpl=void 0;var ua=(Me(),ke(Ze)),la=pr(),ZE=(Nn(),ke(Mr)),QZt=gFe(),S$=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[ZE.ATTR_EXCEPTION_MESSAGE]=t:t&&(t.code?r[ZE.ATTR_EXCEPTION_TYPE]=t.code.toString():t.name&&(r[ZE.ATTR_EXCEPTION_TYPE]=t.name),t.message&&(r[ZE.ATTR_EXCEPTION_MESSAGE]=t.message),t.stack&&(r[ZE.ATTR_EXCEPTION_STACKTRACE]=t.stack)),r[ZE.ATTR_EXCEPTION_TYPE]||r[ZE.ATTR_EXCEPTION_MESSAGE]?this.addEvent(QZt.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}};Aq.SpanImpl=S$});var vA=w(MP=>{"use strict";Object.defineProperty(MP,"__esModule",{value:!0});MP.SamplingDecision=void 0;var $Zt;(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})($Zt=MP.SamplingDecision||(MP.SamplingDecision={}))});var kq=w(wq=>{"use strict";Object.defineProperty(wq,"__esModule",{value:!0});wq.AlwaysOffSampler=void 0;var e6t=vA(),b$=class{shouldSample(){return{decision:e6t.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};wq.AlwaysOffSampler=b$});var xq=w(Iq=>{"use strict";Object.defineProperty(Iq,"__esModule",{value:!0});Iq.AlwaysOnSampler=void 0;var t6t=vA(),E$=class{shouldSample(){return{decision:t6t.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};Iq.AlwaysOnSampler=E$});var v$=w(Pq=>{"use strict";Object.defineProperty(Pq,"__esModule",{value:!0});Pq.ParentBasedSampler=void 0;var Oq=(Me(),ke(Ze)),n6t=pr(),SFe=kq(),_$=xq(),T$=class{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor(t){this._root=t.root,this._root||((0,n6t.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new _$.AlwaysOnSampler),this._remoteParentSampled=t.remoteParentSampled??new _$.AlwaysOnSampler,this._remoteParentNotSampled=t.remoteParentNotSampled??new SFe.AlwaysOffSampler,this._localParentSampled=t.localParentSampled??new _$.AlwaysOnSampler,this._localParentNotSampled=t.localParentNotSampled??new SFe.AlwaysOffSampler}shouldSample(t,n,r,i,s,o){let a=Oq.trace.getSpanContext(t);return!a||!(0,Oq.isSpanContextValid)(a)?this._root.shouldSample(t,n,r,i,s,o):a.isRemote?a.traceFlags&Oq.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,n,r,i,s,o):this._remoteParentNotSampled.shouldSample(t,n,r,i,s,o):a.traceFlags&Oq.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()}}`}};Pq.ParentBasedSampler=T$});var A$=w(Nq=>{"use strict";Object.defineProperty(Nq,"__esModule",{value:!0});Nq.TraceIdRatioBasedSampler=void 0;var r6t=(Me(),ke(Ze)),bFe=vA(),R$=class{_ratio;_upperBound;constructor(t=0){this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,n){return{decision:(0,r6t.isValidTraceId)(n)&&this._accumulate(n)=1?1:t<=0?0:t}_accumulate(t){let n=0;for(let r=0;r>>0}return n}};Nq.TraceIdRatioBasedSampler=R$});var I$=w(RA=>{"use strict";Object.defineProperty(RA,"__esModule",{value:!0});RA.buildSamplerFromEnv=RA.loadDefaultConfig=void 0;var k$=(Me(),ke(Ze)),Vp=pr(),EFe=kq(),w$=xq(),Cq=v$(),_Fe=A$(),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 Mq=1;function i6t(){return{sampler:vFe(),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}}}RA.loadDefaultConfig=i6t;function vFe(){let e=(0,Vp.getStringFromEnv)("OTEL_TRACES_SAMPLER")??Wp.ParentBasedAlwaysOn;switch(e){case Wp.AlwaysOn:return new w$.AlwaysOnSampler;case Wp.AlwaysOff:return new EFe.AlwaysOffSampler;case Wp.ParentBasedAlwaysOn:return new Cq.ParentBasedSampler({root:new w$.AlwaysOnSampler});case Wp.ParentBasedAlwaysOff:return new Cq.ParentBasedSampler({root:new EFe.AlwaysOffSampler});case Wp.TraceIdRatio:return new _Fe.TraceIdRatioBasedSampler(TFe());case Wp.ParentBasedTraceIdRatio:return new Cq.ParentBasedSampler({root:new _Fe.TraceIdRatioBasedSampler(TFe())});default:return k$.diag.error(`OTEL_TRACES_SAMPLER value "${e}" invalid, defaulting to "${Wp.ParentBasedAlwaysOn}".`),new Cq.ParentBasedSampler({root:new w$.AlwaysOnSampler})}}RA.buildSamplerFromEnv=vFe;function TFe(){let e=(0,Vp.getNumberFromEnv)("OTEL_TRACES_SAMPLER_ARG");return e==null?(k$.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${Mq}.`),Mq):e<0||e>1?(k$.diag.error(`OTEL_TRACES_SAMPLER_ARG=${e} was given, but it is out of range ([0..1]), defaulting to ${Mq}.`),Mq):e}});var x$=w(Ql=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});Ql.reconfigureLimits=Ql.mergeConfig=Ql.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=Ql.DEFAULT_ATTRIBUTE_COUNT_LIMIT=void 0;var RFe=I$(),Dq=pr();Ql.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;Ql.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function s6t(e){let t={sampler:(0,RFe.buildSamplerFromEnv)()},n=(0,RFe.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}Ql.mergeConfig=s6t;function o6t(e){let t=Object.assign({},e.spanLimits);return t.attributeCountLimit=e.spanLimits?.attributeCountLimit??e.generalLimits?.attributeCountLimit??(0,Dq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??(0,Dq.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??Ql.DEFAULT_ATTRIBUTE_COUNT_LIMIT,t.attributeValueLengthLimit=e.spanLimits?.attributeValueLengthLimit??e.generalLimits?.attributeValueLengthLimit??(0,Dq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??(0,Dq.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??Ql.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},e,{spanLimits:t})}Ql.reconfigureLimits=o6t});var AFe=w(Lq=>{"use strict";Object.defineProperty(Lq,"__esModule",{value:!0});Lq.BatchSpanProcessorBase=void 0;var AA=(Me(),ke(Ze)),Im=pr(),O$=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,Im.getNumberFromEnv)("OTEL_BSP_MAX_EXPORT_BATCH_SIZE")??512,this._maxQueueSize=typeof n?.maxQueueSize=="number"?n.maxQueueSize:(0,Im.getNumberFromEnv)("OTEL_BSP_MAX_QUEUE_SIZE")??2048,this._scheduledDelayMillis=typeof n?.scheduledDelayMillis=="number"?n.scheduledDelayMillis:(0,Im.getNumberFromEnv)("OTEL_BSP_SCHEDULE_DELAY")??5e3,this._exportTimeoutMillis=typeof n?.exportTimeoutMillis=="number"?n.exportTimeoutMillis:(0,Im.getNumberFromEnv)("OTEL_BSP_EXPORT_TIMEOUT")??3e4,this._shutdownOnce=new Im.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(AA.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&AA.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&&AA.diag.debug("maxQueueSize reached, dropping spans"),this._droppedSpansCount++;return}this._droppedSpansCount>0&&(AA.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);AA.context.with((0,Im.suppressTracing)(AA.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===Im.ExportResultCode.SUCCESS?t():n(a.error??new Error("BatchSpanProcessor: span export failed"))}),o=null;for(let a=0,c=i.length;a{(0,Im.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,Im.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)}};Lq.BatchSpanProcessorBase=O$});var wFe=w(Uq=>{"use strict";Object.defineProperty(Uq,"__esModule",{value:!0});Uq.BatchSpanProcessor=void 0;var a6t=AFe(),P$=class extends a6t.BatchSpanProcessorBase{onShutdown(){}};Uq.BatchSpanProcessor=P$});var xFe=w(jq=>{"use strict";Object.defineProperty(jq,"__esModule",{value:!0});jq.RandomIdGenerator=void 0;var c6t=8,IFe=16,N$=class{generateTraceId=kFe(IFe);generateSpanId=kFe(c6t)};jq.RandomIdGenerator=N$;var Fq=Buffer.allocUnsafe(IFe);function kFe(e){return function(){for(let n=0;n>>0,n*4);for(let n=0;n0);n++)n===e-1&&(Fq[e-1]=1);return Fq.toString("hex",0,e)}}});var OFe=w(wA=>{"use strict";Object.defineProperty(wA,"__esModule",{value:!0});wA.RandomIdGenerator=wA.BatchSpanProcessor=void 0;var u6t=wFe();Object.defineProperty(wA,"BatchSpanProcessor",{enumerable:!0,get:function(){return u6t.BatchSpanProcessor}});var l6t=xFe();Object.defineProperty(wA,"RandomIdGenerator",{enumerable:!0,get:function(){return l6t.RandomIdGenerator}})});var C$=w(kA=>{"use strict";Object.defineProperty(kA,"__esModule",{value:!0});kA.RandomIdGenerator=kA.BatchSpanProcessor=void 0;var PFe=OFe();Object.defineProperty(kA,"BatchSpanProcessor",{enumerable:!0,get:function(){return PFe.BatchSpanProcessor}});Object.defineProperty(kA,"RandomIdGenerator",{enumerable:!0,get:function(){return PFe.RandomIdGenerator}})});var NFe=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 CFe=w(qq=>{"use strict";Object.defineProperty(qq,"__esModule",{value:!0});qq.TracerMetrics=void 0;var Hq=vA(),DP=NFe(),M$=class{startedSpans;liveSpans;constructor(t){this.startedSpans=t.createCounter(DP.METRIC_OTEL_SDK_SPAN_STARTED,{unit:"{span}",description:"The number of created spans."}),this.liveSpans=t.createUpDownCounter(DP.METRIC_OTEL_SDK_SPAN_LIVE,{unit:"{span}",description:"The number of currently live spans."})}startSpan(t,n){let r=f6t(n);if(this.startedSpans.add(1,{[DP.ATTR_OTEL_SPAN_PARENT_ORIGIN]:d6t(t),[DP.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r}),n===Hq.SamplingDecision.NOT_RECORD)return()=>{};let i={[DP.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r};return this.liveSpans.add(1,i),()=>{this.liveSpans.add(-1,i)}}};qq.TracerMetrics=M$;function d6t(e){return e?e.isRemote?"remote":"local":"none"}function f6t(e){switch(e){case Hq.SamplingDecision.RECORD_AND_SAMPLED:return"RECORD_AND_SAMPLE";case Hq.SamplingDecision.RECORD:return"RECORD_ONLY";case Hq.SamplingDecision.NOT_RECORD:return"DROP"}}});var MFe=w(Bq=>{"use strict";Object.defineProperty(Bq,"__esModule",{value:!0});Bq.VERSION=void 0;Bq.VERSION="2.6.1"});var DFe=w(Gq=>{"use strict";Object.defineProperty(Gq,"__esModule",{value:!0});Gq.Tracer=void 0;var jo=(Me(),ke(Ze)),zq=pr(),p6t=yFe(),h6t=x$(),m6t=C$(),g6t=CFe(),y6t=MFe(),D$=class{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;_tracerMetrics;constructor(t,n,r,i){let s=(0,h6t.mergeConfig)(n);this._sampler=s.sampler,this._generalLimits=s.generalLimits,this._spanLimits=s.spanLimits,this._idGenerator=n.idGenerator||new m6t.RandomIdGenerator,this._resource=r,this._spanProcessor=i,this.instrumentationScope=t;let o=s.meterProvider?s.meterProvider.getMeter("@opentelemetry/sdk-trace",y6t.VERSION):jo.createNoopMeter();this._tracerMetrics=new g6t.TracerMetrics(o)}startSpan(t,n={},r=jo.context.active()){n.root&&(r=jo.trace.deleteSpan(r));let i=jo.trace.getSpan(r);if((0,zq.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,zq.sanitizeAttributes)(S.attributes)})),f=(0,zq.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,zq.sanitizeAttributes)(Object.assign(f,p.attributes));return new p6t.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}};Gq.Tracer=D$});var LFe=w(Vq=>{"use strict";Object.defineProperty(Vq,"__esModule",{value:!0});Vq.MultiSpanProcessor=void 0;var S6t=pr(),L$=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,S6t.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)})}};Vq.MultiSpanProcessor=L$});var UFe=w(JE=>{"use strict";Object.defineProperty(JE,"__esModule",{value:!0});JE.BasicTracerProvider=JE.ForceFlushState=void 0;var b6t=pr(),E6t=y$(),_6t=DFe(),T6t=I$(),v6t=LFe(),R6t=x$(),IA;(function(e){e[e.resolved=0]="resolved",e[e.timeout=1]="timeout",e[e.error=2]="error",e[e.unresolved=3]="unresolved"})(IA=JE.ForceFlushState||(JE.ForceFlushState={}));var U$=class{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor(t={}){let n=(0,b6t.merge)({},(0,T6t.loadDefaultConfig)(),(0,R6t.reconfigureLimits)(t));this._resource=n.resource??(0,E6t.defaultResource)(),this._config=Object.assign({},n,{resource:this._resource});let r=[];t.spanProcessors?.length&&r.push(...t.spanProcessors),this._activeSpanProcessor=new v6t.MultiSpanProcessor(r)}getTracer(t,n,r){let i=`${t}@${n||""}:${r?.schemaUrl||""}`;return this._tracers.has(i)||this._tracers.set(i,new _6t.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=IA.timeout},t);r.forceFlush().then(()=>{clearTimeout(o),s!==IA.timeout&&(s=IA.resolved,i(s))}).catch(a=>{clearTimeout(o),s=IA.error,i(a)})}));return new Promise((r,i)=>{Promise.all(n).then(s=>{let o=s.filter(a=>a!==IA.resolved);o.length>0?i(o):r()}).catch(s=>i([s]))})}shutdown(){return this._activeSpanProcessor.shutdown()}};JE.BasicTracerProvider=U$});var FFe=w(Wq=>{"use strict";Object.defineProperty(Wq,"__esModule",{value:!0});Wq.ConsoleSpanExporter=void 0;var F$=pr(),j$=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,F$.hrTimeToMicroseconds)(t.startTime),duration:(0,F$.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:F$.ExportResultCode.SUCCESS})}};Wq.ConsoleSpanExporter=j$});var HFe=w(Kq=>{"use strict";Object.defineProperty(Kq,"__esModule",{value:!0});Kq.InMemorySpanExporter=void 0;var jFe=pr(),H$=class{_finishedSpans=[];_stopped=!1;export(t,n){if(this._stopped)return n({code:jFe.ExportResultCode.FAILED,error:new Error("Exporter has been stopped")});this._finishedSpans.push(...t),setTimeout(()=>n({code:jFe.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}};Kq.InMemorySpanExporter=H$});var qFe=w(Zq=>{"use strict";Object.defineProperty(Zq,"__esModule",{value:!0});Zq.SimpleSpanProcessor=void 0;var A6t=(Me(),ke(Ze)),Yq=pr(),q$=class{_exporter;_shutdownOnce;_pendingExports;constructor(t){this._exporter=t,this._shutdownOnce=new Yq.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&A6t.TraceFlags.SAMPLED)===0)return;let n=this._doExport(t).catch(r=>(0,Yq.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 Yq.internal._export(this._exporter,[t]);if(n.code!==Yq.ExportResultCode.SUCCESS)throw n.error??new Error(`SimpleSpanProcessor: span export failed (status ${n})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}};Zq.SimpleSpanProcessor=q$});var BFe=w(Jq=>{"use strict";Object.defineProperty(Jq,"__esModule",{value:!0});Jq.NoopSpanProcessor=void 0;var B$=class{onStart(t,n){}onEnd(t){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}};Jq.NoopSpanProcessor=B$});var z$=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 w6t=UFe();Object.defineProperty(ti,"BasicTracerProvider",{enumerable:!0,get:function(){return w6t.BasicTracerProvider}});var zFe=C$();Object.defineProperty(ti,"BatchSpanProcessor",{enumerable:!0,get:function(){return zFe.BatchSpanProcessor}});Object.defineProperty(ti,"RandomIdGenerator",{enumerable:!0,get:function(){return zFe.RandomIdGenerator}});var k6t=FFe();Object.defineProperty(ti,"ConsoleSpanExporter",{enumerable:!0,get:function(){return k6t.ConsoleSpanExporter}});var I6t=HFe();Object.defineProperty(ti,"InMemorySpanExporter",{enumerable:!0,get:function(){return I6t.InMemorySpanExporter}});var x6t=qFe();Object.defineProperty(ti,"SimpleSpanProcessor",{enumerable:!0,get:function(){return x6t.SimpleSpanProcessor}});var O6t=BFe();Object.defineProperty(ti,"NoopSpanProcessor",{enumerable:!0,get:function(){return O6t.NoopSpanProcessor}});var P6t=kq();Object.defineProperty(ti,"AlwaysOffSampler",{enumerable:!0,get:function(){return P6t.AlwaysOffSampler}});var N6t=xq();Object.defineProperty(ti,"AlwaysOnSampler",{enumerable:!0,get:function(){return N6t.AlwaysOnSampler}});var C6t=v$();Object.defineProperty(ti,"ParentBasedSampler",{enumerable:!0,get:function(){return C6t.ParentBasedSampler}});var M6t=A$();Object.defineProperty(ti,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return M6t.TraceIdRatioBasedSampler}});var D6t=vA();Object.defineProperty(ti,"SamplingDecision",{enumerable:!0,get:function(){return D6t.SamplingDecision}})});function $$(e){if("parentSpanId"in e)return e.parentSpanId;if("parentSpanContext"in e)return e.parentSpanContext?.spanId}function eee(e){let t=e;return!!t.attributes&&typeof t.attributes=="object"}function L6t(e){return typeof e.kind=="number"}function U6t(e){return!!e.status}function KFe(e){return!!e.name}function F6t(e){if(!eee(e))return{};let t=e.attributes[py]||e.attributes[gR],n={url:t,"http.method":e.attributes[bE]||e.attributes[_O]};!n["http.method"]&&n.url&&(n["http.method"]="GET");try{if(typeof t=="string"){let r=Ly(t);n.url=Uy(r),r.search&&(n["http.query"]=r.search),r.hash&&(n["http.fragment"]=r.hash)}}catch{}return n}function j6t(e){return L6t(e)?e.kind:$r.INTERNAL}function NA(e){return e.getValue(ree)}function JFe(e,t){return e.setValue(ree,t)}function B6t(e,t){zs(e,ZFe,t)}function UP(e){return e[ZFe]}function OA(e){let{traceFlags:t,traceState:n}=e,r=n?n.get(nee)==="1":!1;if(t===qa.SAMPLED)return!0;if(r)return!1;let i=n?n.get(tee):void 0,s=i?Sm(i):void 0;if(s?.sampled==="true")return!0;if(s?.sampled==="false")return!1}function XFe(e,t,n){let r=t[bE]||t[_O];if(r)return G6t({attributes:t,name:e,kind:n},r);let i=t[SE]||t[o7],s=typeof t[zt]=="string"&&t[zt].startsWith("cache.");if(i&&!s)return z6t({attributes:t,name:e});let o=t[Wi]==="custom"?"custom":"route";if(t[y7])return{...LP(e,t,"route"),op:"rpc"};if(t[g7])return{...LP(e,t,o),op:"message"};let u=t[c7];return u?{...LP(e,t,o),op:u.toString()}:{op:void 0,description:e,source:"custom"}}function QFe(e){let t=eee(e)?e.attributes:{},n=KFe(e)?e.name:"",r=j6t(e);return XFe(n,t,r)}function z6t({attributes:e,name:t}){let n=e[Kl];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[a7];return{op:"db",description:r?r.toString():t,source:"task"}}function G6t({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}=W6t(n,t);if(!s)return{...LP(e,n),op:i.join(".")};let l=n[PA],d=`${r} ${s}`,f=l?`${d} (${V6t(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[Kl],E=!b&&S==null&&(m||!y),{description:_,source:T}=E?{description:f,source:p}:LP(e,n);return{op:i.join("."),description:_,source:T,data:h}}function V6t(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 W6t(e,t){let n=e[f7],r=e[gR]||e[py],i=e[dm],s=typeof r=="string"?Ly(r):void 0,o=s?Uy(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:vm(n),url:o,query:a,fragment:c,hasRoute:!1}:s?{urlPath:o,url:o,query:a,fragment:c,hasRoute:!1}:typeof n=="string"?{urlPath:vm(n),url:o,query:a,fragment:c,hasRoute:!1}:{urlPath:void 0,url:o,query:a,fragment:c,hasRoute:!1}}function LP(e,t,n="custom"){let r=t[Wi]||n,i=t[Kl];return i&&typeof i=="string"?{description:i,source:r}:{description:e,source:r}}function $Fe(e){e.on("createDsc",(t,n)=>{if(!n)return;let s=vt(n).data[Wi],{description:o}=KFe(n)?QFe(n):{description:void 0};if(s!=="url"&&o&&(t.transaction=o),Os()){let a=OA(n.spanContext());t.sampled=a==null?void 0:String(a)}})}function eje(){return jt.getActiveSpan()}function tje({dsc:e,sampled:t}){let n=e?OE(e):void 0,r=new Mc.TraceState,i=n?r.set(tee,n):r;return t===!1?i.set(nee,"1"):i}function rje(){return Array.from(nje)}function tB(e){nje.add(e)}function ije(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:OA(a)}}if(n){let a=n.spanContext();return{dynamicSamplingContext:Ps(n),traceId:a.traceId,spanId:a.spanId,sampled:OA(a)}}let r=t.scope||NA(e)?.scope||Fn(),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 sje(e,{sentryTrace:t,baggage:n}){let r=WO(t,n),{traceId:i,parentSpanId:s,sampled:o,dsc:a}=r,c=ct(),u=Sm(n);if(!s||c&&!lX(c,u?.org_id))return e;let l=X6t({traceId:i,spanId:s,sampled:o,dsc:a});return jt.setSpanContext(e,l)}function K6t(e,t,n){let r=oje(sje(e,t));return Ve.with(r,n)}function oje(e){let t=NA(e),n={scope:t?t.scope:Fn().clone(),isolationScope:t?t.isolationScope:vn()};return JFe(e,n)}function Y6t(e){try{let t=e[G$];return Array.isArray(t)?t.join(","):t}catch{return}}function Z6t(e){try{return e[Xq]}catch{return}}function J6t(e){let t=vt(e).data,n=t[gR]||t[py];if(typeof n=="string")return n;let r=e.spanContext().traceState?.get(YFe);if(r)return r}function X6t({spanId:e,traceId:t,sampled:n,dsc:r}){let i=tje({dsc:r,sampled:n});return{traceId:t,spanId:e,isRemote:!0,traceFlags:n?qa.SAMPLED:qa.NONE,traceState:i}}function aje(e,t,n){let r=uje(),{name:i,parentSpan:s}=e;return hje(s)(()=>{let a=fje(e.scope,e.forceTransaction),u=e.onlyIfParent&&!jt.getSpan(a)?(0,Mc.suppressTracing)(a):a,l=lje(e);if(!Os()){let d=(0,Mc.isTracingSuppressed)(u)?u:(0,Mc.suppressTracing)(u);return Ve.with(d,()=>r.startActiveSpan(i,l,d,f=>(Y$(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=>(Y$(d),uf(()=>t(d),()=>{vt(d).status===void 0&&d.setStatus({code:as.ERROR})},n?()=>d.end():void 0)))})}function Q6t(e,t){return aje(e,t,!0)}function $6t(e,t){return aje(e,n=>t(n,()=>n.end()),!1)}function e5t(e){let t=uje(),{name:n,parentSpan:r}=e;return hje(r)(()=>{let s=fje(e.scope,e.forceTransaction),a=e.onlyIfParent&&!jt.getSpan(s)?(0,Mc.suppressTracing)(s):s,c=lje(e);Os()||(a=(0,Mc.isTracingSuppressed)(a)?a:(0,Mc.suppressTracing)(a));let u=t.startSpan(n,c,a);return Y$(u),u})}function cje(e,t){let n=e?jt.setSpan(Ve.active(),e):jt.deleteSpan(Ve.active());return Ve.with(n,()=>t(Fn()))}function uje(){return ct()?.tracer||jt.getTracer("@sentry/opentelemetry",Cn)}function lje(e){let{startTime:t,attributes:n,kind:r,op:i,links:s}=e,o=typeof t=="number"?dje(t):t;return{attributes:i?{[zt]:i,...n}:n,kind:r,links:s,startTime:o}}function dje(e){return e<9999999999?e*1e3:e}function Y$(e){let t=e.end.bind(e);e.end=n=>t(typeof n=="number"?dje(n):n)}function fje(e,t){let n=t5t(e),r=jt.getSpan(n);if(!r||!t)return n;let i=jt.deleteSpan(n),{spanId:s,traceId:o}=r.spanContext(),a=OA(r.spanContext()),c=cs(r),u=Ps(c),l=tje({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 t5t(e){if(e){let t=UP(e);if(t)return t}return Ve.active()}function n5t(e,t){return K6t(Ve.active(),e,t)}function r5t(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,()=>(Fn().setPropagationContext({traceId:t,sampleRand:Do()}),e()))}function pje(e,t){let n=UP(t),r=n&&jt.getSpan(n),i=r?Ny(r):xE(t);return[r?Ps(r):Fp(e,t),i]}function hje(e){return e!==void 0?t=>cje(e,t):t=>t()}function i5t(e){let t=(0,Mc.suppressTracing)(Ve.active());return Ve.with(t,e)}function mje(e){e.on("preprocessEvent",t=>{let n=eje();if(!n||t.type==="transaction")return;t.contexts={trace:Ny(n),...t.contexts};let r=cs(n);return t.sdkProcessingMetadata={dynamicSamplingContext:Ps(r),...t.sdkProcessingMetadata},t})}function s5t({span:e,scope:t,client:n,propagateTraceparent:r}={}){let i=(t&&UP(t))??Ve.active();if(e){let{scope:l}=of(e);i=l&&UP(l)||jt.setSpan(Ve.active(),e)}let{traceId:s,spanId:o,sampled:a,dynamicSamplingContext:c}=ije(i,{scope:t,client:n}),u={"sentry-trace":Oy(s,o,a),baggage:OE(c)};return r&&(u.traceparent=Py(s,o,a)),u}function gje(){function e(){let a=Ve.active(),c=NA(a);return c||{scope:qR(),isolationScope:Wl()}}function t(a){let c=Ve.active();return Ve.with(c,()=>a(s()))}function n(a,c){let u=UP(a)||Ve.active();return Ve.with(u.setValue(W$,a),()=>c(a))}function r(a){let c=Ve.active();return Ve.with(c.setValue(V$,!0),()=>a(o()))}function i(a,c){let u=Ve.active();return Ve.with(u.setValue(K$,a),()=>c(o()))}function s(){return e().scope}function o(){return e().isolationScope}eX({withScope:t,withSetScope:n,withSetIsolationScope:i,withIsolationScope:r,getCurrentScope:s,getIsolationScope:o,startSpan:Q6t,startSpanManual:$6t,startInactiveSpan:e5t,getActiveSpan:eje,suppressTracing:i5t,getTraceData:s5t,continueTrace:n5t,startNewTrace:r5t,withActiveSpan:cje})}function yje(e){class t extends e{constructor(...r){super(...r),tB("SentryContextManager")}with(r,i,s,...o){let a=NA(r),c=a?.scope||Fn(),u=a?.isolationScope||vn(),l=r.getValue(V$)===!0,d=r.getValue(W$),f=r.getValue(K$),p=d||c.clone(),h=f||(l?u.clone():u),y=JFe(r,{scope:p,isolationScope:h}).deleteValue(V$).deleteValue(W$).deleteValue(K$);return B6t(p,y),super.with(y,i,s,...o)}getAsyncLocalStorageLookup(){return{asyncLocalStorage:this._asyncLocalStorage,contextSymbol:ree}}}return t}function o5t(e){let t=new Map;for(let n of e)a5t(t,n);return Array.from(t,function([n,r]){return r})}function Sje(e){return e.attributes[Q$]===!0?void 0:$$(e)}function a5t(e,t){let n=t.spanContext().spanId,r=Sje(t);if(!r){Z$(e,{id:n,span:t,children:[]});return}let i=c5t(e,r),s=Z$(e,{id:n,span:t,parentNode:i,children:[]});i.children.push(s)}function c5t(e,t){let n=e.get(t);return n||Z$(e,{id:t,children:[]})}function Z$(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 Eje(e){let t=eee(e)?e.attributes:{},n=U6t(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=GFe(t);if(i)return i}return n.message&&u5t(n.message)?{code:2,message:n.message}:{code:2,message:"internal_error"}}}let r=GFe(t);return r||(n?.code===as.UNSET?{code:1}:{code:2,message:"unknown_error"})}function GFe(e){let t=e[lm]||e[yE],n=e[S7],r=typeof t=="number"?t:typeof t=="string"?parseInt(t):void 0;if(typeof r=="number")return ym(r);if(typeof n=="string")return{code:2,message:bje[n]||"unknown_error"}}function l5t(e){let t=e.attributes,n=t[At],r=t[zt],i=t[Wi];return{origin:n,op:r,source:i}}function d5t(e){let{op:t,description:n,data:r,origin:i="manual",source:s}=_je(e),o=of(e),a=e.attributes[sf],c={[Wi]:s,[sf]:a,[zt]:t,[At]:i,...r,...Tje(e.attributes)},{links:u}=e,{traceId:l,spanId:d}=e.spanContext(),f=$$(e),p=Eje(e),h={parent_span_id:f,span_id:d,trace_id:l,data:c,origin:i,op:t,status:CE(p),links:NE(u)},m=c[lm],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 X$(e,t,n){let r=e.span;if(r&&n.add(r),!r){e.children.forEach(S=>{X$(S,t,n)});return}let s=r.spanContext().spanId,o=r.spanContext().traceId,a=$$(r),{attributes:c,startTime:u,endTime:l,links:d}=r,{op:f,description:p,data:h,origin:m="manual"}=_je(r),g={[At]:m,[zt]:f,...Tje(c),...h},y=Eje(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:CE(y),op:f,origin:m,measurements:ME(r.events),links:NE(d)};t.push(b),e.children.forEach(S=>{X$(S,t,n)})}function _je(e){let{op:t,source:n,origin:r}=l5t(e),{op:i,description:s,source:o,data:a}=QFe(e),c=t||i,u=n||o,l={...a,...f5t(e)};return{op:c,description:s,source:u,origin:r,data:l}}function Tje(e){let t={...e};return delete t[sf],delete t[Q$],delete t[Kl],t}function f5t(e){let t=e.attributes,n={};e.kind!==$r.INTERNAL&&(n["otel.kind"]=$r[e.kind]);let r=t[yE];r&&(n[lm]=r);let i=F6t(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 p5t(e,t){let n=jt.getSpan(t),r=NA(t);n&&!n.spanContext().isRemote&&YR(n,e),n?.spanContext().isRemote&&e.setAttribute(Q$,!0),t===lR&&(r={scope:qR(),isolationScope:Wl()}),r&&GO(e,r.scope,r.isolationScope),$O(e),ct()?.emit("spanStart",e)}function h5t(e){eP(e),ct()?.emit("spanEnd",e)}function m5t(e,t,n){let r=e.spanContext();if(um(r)&&r.traceId===t){if(r.isRemote){let s=OA(e.spanContext());return Zy&&Z.log(`[Tracing] Inheriting remote parent's sampled decision for ${n}: ${s}`),s}let i=OA(r);return Zy&&Z.log(`[Tracing] Inheriting parent's sampled decision for ${n}: ${i}`),i}}function xA({decision:e,context:t,spanAttributes:n,sampleRand:r,downstreamTraceSampleRate:i}){let s=g5t(t,n);return i!==void 0&&(s=s.set(q6t,`${i}`)),r!==void 0&&(s=s.set(H6t,`${r}`)),e==null?{decision:Yy.SamplingDecision.NOT_RECORD,traceState:s}:e===Yy.SamplingDecision.NOT_RECORD?{decision:e,traceState:s.set(nee,"1")}:{decision:e,traceState:s}}function g5t(e,t){let i=jt.getSpan(e)?.spanContext()?.traceState||new Mc.TraceState,s=t[gR]||t[py];return s&&typeof s=="string"&&(i=i.set(YFe,s)),i}function y5t(e){let t=jt.getSpan(e);return t&&um(t.spanContext())?t:void 0}var Mc,Yy,Q$,PA,Xq,G$,tee,nee,YFe,H6t,q6t,ree,V$,W$,K$,ZFe,Zy,nje,Qq,bje,u5t,VFe,WFe,J$,$q,eB,CA=v(()=>{Nn();st();Me();Me();Mc=Re(pr(),1),Yy=Re(z$(),1),Q$="sentry.parentIsRemote",PA="sentry.graphql.operation";Xq="sentry-trace",G$="baggage",tee="sentry.dsc",nee="sentry.sampled_not_recording",YFe="sentry.url",H6t="sentry.sample_rand",q6t="sentry.sample_rate",ree=il("sentry_scopes"),V$=il("sentry_fork_isolation_scope"),W$=il("sentry_fork_set_scope"),K$=il("sentry_fork_set_isolation_scope"),ZFe="_scopeContext";Zy=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;nje=new Set;Qq=class extends Mc.W3CBaggagePropagator{constructor(){super(),tB("SentryPropagator"),this._urlMatchesTargetsMap=new fu(100)}inject(t,n,r){if((0,Mc.isTracingSuppressed)(t)){Zy&&Z.log("[Tracing] Not injecting trace data for url because tracing is suppressed.");return}let i=jt.getSpan(t),s=i&&J6t(i),{tracePropagationTargets:o,propagateTraceparent:a}=ct()?.getOptions()||{};if(!FE(s,o,this._urlMatchesTargetsMap)){Zy&&Z.log("[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:",s);return}let c=Y6t(n),u=Z6t(n),l=Qd.getBaggage(t)||Qd.createBaggage({}),{dynamicSamplingContext:d,traceId:f,spanId:p,sampled:h}=ije(t);if(c){let m=PE(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!==hE&&(r.set(n,Xq,Oy(f,p,h)),a&&r.set(n,"traceparent",Py(f,p,h))),super.inject(Qd.setBaggage(t,l),n,r)}extract(t,n,r){let i=r.get(n,Xq),s=r.get(n,G$),o=i?Array.isArray(i)?i[0]:i:void 0;return oje(sje(t,{sentryTrace:o,baggage:s}))}fields(){return[Xq,G$,"traceparent"]}};bje={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"},u5t=e=>Object.values(bje).includes(e);VFe=1e3,WFe=300,J$=class{constructor(t){this._finishedSpanBucketSize=t?.timeout||WFe,this._finishedSpanBuckets=new Array(this._finishedSpanBucketSize).fill(void 0),this._lastCleanupTimestampInS=Math.floor(Vl()/1e3),this._spansToBucketEntry=new WeakMap,this._sentSpans=new Map,this._debouncedFlush=ZX(this.flush.bind(this),1,{maxWait:100})}export(t){let n=Math.floor(Vl()/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&&Zy&&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=Sje(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;Zy&&Z.log(`SpanExporter exported ${r} spans, ${i} spans are waiting for their parent spans to finish`);let s=Vl()+WFe*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=o5t(t),r=new Set,i=this._getCompletedRootNodes(n);for(let s of i){let o=s.span;r.add(o);let a=d5t(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)X$(l,c,r);a.spans=c.length>VFe?c.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,VFe):c;let u=ME(o.events);u&&(a.measurements=u),dH(a)}return r}_flushSentSpanCache(){let t=Vl();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))}};$q=class{constructor(t){tB("SentrySpanProcessor"),this._exporter=new J$(t)}async forceFlush(){this._exporter.flush()}async shutdown(){this._exporter.clear()}onStart(t,n){p5t(t,n)}onEnd(t){h5t(t),this._exporter.export(t)}},eB=class{constructor(t){this._client=t,tB("SentrySampler")}shouldSample(t,n,r,i,s,o){let a=this._client.getOptions(),c=y5t(t),u=c?.spanContext();if(!Os(a))return xA({decision:void 0,context:t,spanAttributes:s});let l=s[_O]||s[bE];if(i===$r.CLIENT&&l&&(!c||u?.isRemote))return xA({decision:void 0,context:t,spanAttributes:s});let d=c?m5t(c,n,r):void 0;if(!(!c||u?.isRemote))return xA({decision:d?Yy.SamplingDecision.RECORD_AND_SAMPLED:Yy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s});let{description:p,data:h,op:m}=XFe(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 xA({decision:void 0,context:t,spanAttributes:s});let{isolationScope:b}=NA(t)??{},S=u?.traceState?u.traceState.get(tee):void 0,E=S?Sm(S):void 0,_=cl(E?.sample_rand)??Do(),[T,R,A]=tP(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"?(Zy&&Z.log(`[Tracing] Not sampling span because HTTP method is '${x}' for ${r}`),xA({decision:Yy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:0})):(!T&&d===void 0&&(Zy&&Z.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),this._client.recordDroppedEvent("sample_rate","transaction")),{...xA({decision:T?Yy.SamplingDecision.RECORD_AND_SAMPLED:Yy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:A?R:void 0}),attributes:{[sf]:A?R:void 0}})}toString(){return"SentrySampler"}}});var vje,iee,Rje=v(()=>{vje=Re(GUe(),1);CA();iee=yje(vje.AsyncLocalStorageContextManager)});function see(){sl.disable(),sl.setLogger({error:Z.error,warn:Z.warn,info:Z.log,debug:Z.log,verbose:Z.log},ho.DEBUG)}var Aje=v(()=>{Me();st()});import*as oee from"node:diagnostics_channel";function b5t(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&&Zl({category:"child_process",message:`Child process exited with code '${i}'`,level:i===0?"info":"warning",data:r}))}).on("error",i=>{n||(n=!0,Zl({category:"child_process",message:`Child process errored with '${i.message}'`,level:"error",data:r}))})}function E5t(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)}}}):Zl({category:"worker_thread",message:`Worker thread errored with '${r.message}'`,level:"error",data:{threadId:n}})})}var S5t,wje,kje=v(()=>{st();S5t="ChildProcess",wje=(e={})=>({name:S5t,setup(){oee.channel("child_process").subscribe(t=>{t&&typeof t=="object"&&"process"in t&&b5t(t.process,e)}),oee.channel("worker_threads").subscribe(t=>{t&&typeof t=="object"&&"worker"in t&&E5t(t.worker,e)})}})});import{execFile as _5t}from"node:child_process";import{readFile as T5t,readdir as v5t}from"node:fs";import*as Ho from"node:os";import{join as R5t}from"node:path";import{promisify as xje}from"node:util";function x5t(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 O5t(){let e=Ho.platform();switch(e){case"darwin":return U5t();case"linux":return F5t();default:return{name:M5t[e]||e,version:Ho.release()}}}function P5t(){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 N5t(){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 C5t(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 U5t(){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)=>{_5t("/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 Ije(e){return e.split(" ")[0].toLowerCase()}async function F5t(){let e={kernel_version:Ho.release(),name:"Linux"};try{let t=await w5t("/etc"),n=D5t.find(a=>t.includes(a.name));if(!n)return e;let r=R5t("/etc",n.name),i=(await A5t(r,{encoding:"utf-8"})).toLowerCase(),{distros:s}=n;e.name=s.find(a=>i.indexOf(Ije(a))>=0)||s[0];let o=Ije(e.name);e.version=L5t[o]?.(i)}catch{}return e}function j5t(){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 A5t,w5t,k5t,I5t,Oje,M5t,D5t,L5t,Pje=v(()=>{A5t=xje(T5t),w5t=xje(v5t),k5t="Context",I5t=((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=x5t(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 O5t()),n.app&&(s.app=N5t()),n.device&&(s.device=C5t(n.device)),n.culture){let o=P5t();o&&(s.culture=o)}return n.cloudResource&&(s.cloud_resource=j5t()),s}return{name:k5t,processEvent(s){return r(s)}}}),Oje=I5t;M5t={aix:"IBM AIX",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"SunOS",win32:"Windows",ohos:"OpenHarmony",android:"Android"},D5t=[{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"]}],L5t={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 H5t}from"node:fs";import{createInterface as q5t}from"node:readline";function W5t(e,t,n){let r=e.get(t);return r===void 0?(e.set(t,n),n):r}function K5t(e){return!!(e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:"))}function Y5t(e){return e.lineno!==void 0&&e.lineno>V5t||e.colno!==void 0&&e.colno>G5t}function Z5t(e,t){let n=aee.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 J5t(e,t){if(!e.length)return[];let n=0,r=e[0];if(typeof r!="number")return[];let i=Cje(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=Cje(o,t)),n++}return s}function X5t(e,t,n){return new Promise((r,i)=>{let s=H5t(e),o=q5t({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){Mje.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 Q5t(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"||K5t(c)||Y5t(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(Mje.get(s))continue;let o=n[s];if(!o)continue;o.sort((u,l)=>u-l);let a=J5t(o,t);if(a.every(u=>Z5t(s,u)))continue;let c=W5t(aee,s,{});i.push(X5t(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&&$5t(s.stacktrace.frames,t,aee);return e}function $5t(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;e8t(r.lineno,r,t,i)}}function Nje(e){delete e.pre_context,delete e.context_line,delete e.post_context}function e8t(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=Dje(e,n);s{st();ff();aee=new fu(10),Mje=new fu(20),B5t=7,z5t="ContextLines",G5t=1e3,V5t=1e4;t8t=((e={})=>{let t=e.frameContextLines!==void 0?e.frameContextLines:B5t;return{name:z5t,processEvent(n){return Q5t(n,t)}}}),Uje=t8t});async function rB(){if(nB===void 0)try{nB=!!(await import("node:inspector")).url()}catch{nB=!1}return nB}var nB,cee=v(()=>{});function Hje(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 jje(e){return e!==void 0&&(e.length===0||e==="?"||e==="")}function iB(e,t){return e===t||`Object.${e}`===t||e===`Object.${t}`||jje(e)&&jje(t)}var FP,uee=v(()=>{FP="__SENTRY_ERROR_LOCAL_VARIABLES__"});import{Worker as n8t}from"node:worker_threads";function qje(...e){Z.log("[LocalVariables]",...e)}var r8t,Bje,zje=v(()=>{st();cee();uee();r8t="LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQ3LjAgKGE1YTRlNzMpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=";Bje=((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=>{qje("Worker error",a)}),o.once("exit",a=>{qje("Worker exit",a)}),o.unref()}return{name:"LocalVariablesAsync",async setup(s){if(!s.getOptions().includeLocalVariables)return;if(await rB()){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 Gje(e){if(e!==void 0)return e.slice(-10).reduce((t,n)=>`${t},${n.function},${n.lineno},${n.colno}`,"")}function i8t(e,t){if(t!==void 0)return Gje(e(t,1))}function Vje(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 lee,s8t,o8t,Wje,Kje=v(()=>{st();yA();cee();uee();lee=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}=Vje(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)}},s8t="LocalVariables",o8t=((e={},t)=>{let n=new fu(20),r,i=!1;function s(u){let l=Gje(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 rB()){Z.warn("Local variables capture has been disabled because the debugger was already enabled");return}try{let f=await lee.create(t),p=(m,{params:{reason:g,data:y,callFrames:b}},S)=>{if(g!=="exception"&&g!=="promiseRejection"){S();return}r?.();let E=i8t(m,y.description);if(E==null){S();return}let{add:_,next:T}=Vje(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=Hje(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:s8t,setupOnce(){a=c()},async processEvent(u){return await a,i?o(u):u},_getCachedFramesCount(){return n.size},_getFirstCachedFrame(){return n.values()[0]}}}),Wje=o8t});var Yje,Zje=v(()=>{yA();zje();Kje();Yje=(e={})=>pf.major<19?Wje(e):Bje(e)});function jP(){try{return typeof module<"u"&&typeof module.exports<"u"}catch{return!1}}function Xje(){return jP()?!1:wm>=21||wm===20&&IP>=6||wm===18&&IP>=19?!0:(Jje||(Jje=!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 Jje,sB=v(()=>{st();yA()});import{existsSync as a8t,readFileSync as $je}from"node:fs";import{dirname as c8t,join as eHe}from"node:path";function f8t(){try{return Y.cache?Object.keys(Y.cache):[]}catch{return[]}}function p8t(){return{...l8t,...g8t(),...jP()?h8t():{}}}function h8t(){let e=Y.main?.paths||[],t=f8t(),n={},r=new Set;return t.forEach(i=>{let s=i,o=()=>{let a=s;if(s=c8t(a),!s||a===s||r.has(a))return;if(e.indexOf(s)<0)return o();let c=eHe(a,"package.json");if(r.add(a),!a8t(c))return o();try{let u=JSON.parse($je(c,"utf8"));n[u.name]=u.version}catch{}};o()}),n}function Qje(){return dee||(dee=p8t()),dee}function m8t(){try{let e=eHe(process.cwd(),"package.json");return JSON.parse($je(e,"utf8"))}catch{return{}}}function g8t(){let e=m8t();return{...e.dependencies,...e.devDependencies}}var dee,u8t,l8t,d8t,tHe,nHe=v(()=>{sB();u8t="Modules",l8t=typeof __SENTRY_SERVER_MODULES__>"u"?{}:__SENTRY_SERVER_MODULES__,d8t=(()=>({name:u8t,processEvent(e){return e.modules={...e.modules,...Qje()},e},getModules:Qje})),tHe=d8t});function HP(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:y8t;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 y8t,fee=v(()=>{st();ff();y8t=2e3});import{isMainThread as S8t}from"worker_threads";function E8t(e,t){let r=!1,i=!1,s=!1,o,a=e.getOptions();return Object.assign(c=>{let u=HP;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"),HP(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 b8t,rHe,iHe=v(()=>{st();ff();fee();b8t="OnUncaughtException",rHe=(e={})=>{let t={exitEvenIfOtherHandlersAreRegistered:!1,...e};return{name:b8t,setup(n){S8t&&global.process.on("uncaughtException",E8t(n,t))}}}});function R8t(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 A8t(e,t){let n=e.name===void 0||hm(t.name,e.name,!0),r=e.message===void 0||hm(t.message,e.message);return n&&r}function w8t(e,t){let n=R8t(t);return e.some(r=>A8t(r,n))}function k8t(e,t){return function(r,i){if(ct()!==e||w8t(t.ignore??[],r))return;let s=t.mode==="strict"?"fatal":"error",o=r&&typeof r=="object"?r._sentry_active_span:void 0;(o?c=>XR(o,c):c=>c())(()=>{Wt(r,{originalException:i,captureContext:{extra:{unhandledPromiseRejection:!0},level:s},mechanism:{handled:!1,type:"auto.node.onunhandledrejection"}})}),I8t(r,t.mode)}}function I8t(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)}),HP(e))}var _8t,T8t,v8t,sHe,oHe=v(()=>{st();fee();_8t="OnUnhandledRejection",T8t=[{name:"AI_NoOutputGeneratedError"},{name:"AbortError"}],v8t=((e={})=>{let t={mode:e.mode??"warn",ignore:[...T8t,...e.ignore??[]]};return{name:_8t,setup(n){global.process.on("unhandledRejection",k8t(n,t))}}}),sHe=v8t});var x8t,aHe,cHe=v(()=>{st();x8t="ProcessSession",aHe=()=>({name:x8t,setupOnce(){pH(),process.on("beforeExit",()=>{vn().getSession()?.status!=="ok"&&iP()})}})});import*as uHe from"node:http";function P8t(e,t){let n=N8t(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=QO(i);QR(()=>{let o=uHe.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 N8t(e){try{return new URL(`${e}`)}catch{Z.warn(`[Spotlight] Invalid sidecar URL: ${e}`);return}}var pee,O8t,lHe,dHe=v(()=>{st();pee="Spotlight",O8t=((e={})=>{let t={sidecarUrl:e.sidecarUrl||"http://localhost:8969/stream"};return{name:pee,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{}P8t(n,t)}}}),lHe=O8t});import*as fHe from"node:util";function M8t(e){return!(e instanceof Error)||!("errno"in e)||typeof e.errno!="number"?!1:fHe.getSystemErrorMap().has(e.errno)}var C8t,pHe,hHe=v(()=>{C8t="NodeSystemError";pHe=(e={})=>({name:C8t,processEvent:(t,n,r)=>{if(!M8t(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 hee from"node:http";var Zp,oB,mHe=v(()=>{Zp=Symbol("AgentBaseInternalState"),oB=class extends hee.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 hee.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 aB(...e){Z.log("[https-proxy-agent:parse-proxy-response]",...e)}function gHe(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(),aB("onend"),n(new Error("Proxy connection ended before receiving CONNECT response"))}function c(l){o(),aB("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){$q("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}$q("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 oHe=v(()=>{st()});import*as km from"node:net";import*as oee from"node:tls";function ON(...e){Y.log("[https-proxy-agent]",...e)}function S8t(e){e.resume()}function aHe(e,...t){let n={},r;for(r in e)t.includes(r)||(n[r]=e[r]);return n}var NN,cHe=v(()=>{st();iHe();oHe();NN=class extends Qq{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??{},ON("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?aHe(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:"){ON("Creating `tls.Socket`: %o",this.connectOpts);let f=this.connectOpts.servername||this.connectOpts.host;i=oee.connect({...this.connectOpts,servername:f&&km.isIP(f)?void 0:f})}else ON("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){aB("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}aB("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 yHe=v(()=>{st()});import*as xm from"node:net";import*as mee from"node:tls";function qP(...e){Z.log("[https-proxy-agent]",...e)}function D8t(e){e.resume()}function SHe(e,...t){let n={},r;for(r in e)t.includes(r)||(n[r]=e[r]);return n}var BP,bHe=v(()=>{st();mHe();yHe();BP=class extends oB{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??{},qP("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?SHe(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:"){qP("Creating `tls.Socket`: %o",this.connectOpts);let f=this.connectOpts.servername||this.connectOpts.host;i=mee.connect({...this.connectOpts,servername:f&&xm.isIP(f)?void 0:f})}else qP("Creating `net.Socket`: %o",this.connectOpts),i=xm.connect(this.connectOpts);let s=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},o=xm.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=sHe(i);i.write(`${a}\r -`);let{connect:u,buffered:l}=await c;if(t.emit("proxyConnect",u),this.emit("proxyConnect",u,t),u.statusCode===200){if(t.once("socket",S8t),n.secureEndpoint){ON("Upgrading socket connection to TLS");let f=n.servername||n.host;return oee.connect({...aHe(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=>{ON("Replaying proxy buffer for failed request"),f.push(l),f.push(null)}),d}};NN.__initStatic()});import*as E8t from"node:http";import*as b8t from"node:https";import{Readable as _8t}from"node:stream";import{createGzip as T8t}from"node:zlib";function A8t(e){return new _8t({read(){this.push(e),this.push(null)}})}function uHe(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.")}),JO(e,()=>Promise.resolve({}))}let n=t.protocol==="https:",r=R8t(t,e.proxy||(n?process.env.https_proxy:void 0)||process.env.http_proxy),i=n?b8t:E8t,s=e.keepAlive===void 0?!1:e.keepAlive,o=r?new NN(r):new i.Agent({keepAlive:s,maxSockets:30,timeout:2e3}),a=w8t(e,e.httpModule??i,o);return JO(e,a)}function R8t(e,t){let{no_proxy:n}=process.env;if(!n?.split(",").some(i=>e.host.endsWith(i)||e.hostname.endsWith(i)))return t}function w8t(e,t,n){let{hostname:r,pathname:i,port:s,protocol:o,search:a}=new URL(e.url);return function(u){return new Promise((l,d)=>{VA(()=>{let f=A8t(u.body),p={...e.headers};u.body.length>v8t&&(p["content-encoding"]="gzip",f=f.pipe(T8t()));let h=r.startsWith("["),m=t.request({method:"POST",agent:n,headers:p,hostname:h?r.slice(1,-1):r,path:`${i}${a}`,port:s,protocol:o,ca:e.caCerts},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 v8t,lHe=v(()=>{st();cHe();v8t=1024*32});function dHe(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 fHe=v(()=>{st()});import{posix as k8t,sep as I8t}from"node:path";function pHe(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}function hHe(e=process.argv[1]?VX(process.argv[1]):process.cwd(),t=I8t==="\\"){let n=t?pHe(e):e;return r=>{if(!r)return;let i=t?pHe(r):r,{dir:s,base:o,ext:a}=k8t.parse(i);(a===".js"||a===".mjs"||a===".cjs")&&(o=o.slice(0,a.length*-1));let c=decodeURIComponent(o);s||(s=".");let u=s.lastIndexOf("/node_modules");if(u>-1)return`${s.slice(u+14).replace(/\//g,".")}:${c}`;if(s.startsWith(n)){let l=s.slice(n.length+1).replace(/\//g,".");return l?`${l}:${c}`:c}return c}}var mHe=v(()=>{st()});function gHe(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 yHe,SHe=v(()=>{st();mHe();yHe=Rj(PQ(hHe()))});import*as EHe from"node:os";import{threadId as x8t,isMainThread as O8t}from"worker_threads";var bHe,N8t,eB,_He=v(()=>{Ce();bHe=Se(Jt(),1);st();wR();lf();N8t=6e4,eB=class extends XO{constructor(t){let n=t.includeServerName===!1?void 0:t.serverName||global.process.env.SENTRY_NAME||EHe.hostname(),r={...t,platform:"node",runtime:t.runtime||{name:"node",version:global.process.version},serverName:n};t.openTelemetryInstrumentations&&(0,bHe.registerInstrumentations)({instrumentations:t.openTelemetryInstrumentations}),Lb(r,"node"),Y.log(`Initializing Sentry: process: ${process.pid}, thread: ${O8t?"main":`worker-${x8t}`}.`),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=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&&Y.log("Flushing client reports based on interval."),this._flushOutcomes()},t.clientReportFlushInterval??N8t).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener))}_setupIntegrations(){UX(),super._setupIntegrations()}_getTraceInfoFromScope(t){return t?nje(this,t):[void 0,void 0]}}});import*as vHe from"module";function aee(){if(Hje()&&!qt._sentryEsmLoaderHookRegistered){qt._sentryEsmLoaderHookRegistered=!0;try{let{addHookMessagePort:e}=(0,THe.createAddHookMessageChannel)();vHe.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 THe,AHe=v(()=>{st();THe=Se(u7(),1);Xq()});function tB(){return[mH(),pH(),gH(),yH(),nHe(),YX(),EH(),TUe(),xUe(),Wje(),Zje(),wje(),Uje(),Eje(),mje(),Jje(),zje()]}function cee(e={}){return P8t(e,tB)}function P8t(e={},t){let n=C8t(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&&aee(),sje(),Un().update(n.initialScope),n.spotlight&&!n.integrations.some(({name:s})=>s===iee)&&n.integrations.push($je({sidecarUrl:typeof n.spotlight=="string"?n.spotlight:void 0})),Lb(n,"node-core");let i=new eB(n);return Un().setClient(i),i.init(),Y.log(`SDK initialized from ${IN()?"CommonJS":"ESM"}`),i.startClientReportTracking(),D8t(),BFe(i),ije(i),process.env.VERCEL&&process.on("SIGTERM",async()=>{await i.flush(200)}),i}function uee(){if(!Qt)return;let e=WFe(),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 C8t(e,t){let n=M8t(e.release),r=dHe(e.spotlight),i=L8t(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??uHe,stackParser:A7(e.stackParser||yHe),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:AX({defaultIntegrations:a,integrations:o})}}function M8t(e){if(e!==void 0)return e;let t=gHe();if(t!==void 0)return t}function L8t(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 D8t(){if(XA(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let e=process.env.SENTRY_TRACE,t=process.env.SENTRY_BAGGAGE,n=LO(e,t);Un().setPropagationContext(n)}}var RHe=v(()=>{st();wR();lf();gje();bje();kje();vUe();Fje();Vje();OUe();Kje();Yje();Xje();eHe();rHe();lHe();Xq();fHe();SHe();_He();AHe()});function Lr(e,t){e.setAttribute(Rt,t)}var wHe=v(()=>{st()});function PN(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 kHe=v(()=>{});var sr=v(()=>{DQ();GH();HQ();zQ();pje();hje();qH();RHe();wHe();kHe();lR()});function j8t(e,t={}){return typeof e.spans=="boolean"?e.spans:!(t.skipOpenTelemetrySetup||!Os(t)&&nB)}function H8t(e={}){return{disableOutgoingRequestInstrumentation:nB,ignoreOutgoingRequestHook:n=>{let r=PN(n);if(!r)return!1;let i=e.ignoreOutgoingRequests;return!!i?.(r,n)},requireParentforOutgoingSpans:!1,requestHook:(n,r)=>{Lr(n,"auto.http.otel.http");let i=PN(r);if(i.startsWith("data:")){let s=QA(i);n.setAttribute("http.url",s),n.setAttribute(ky,s),n.updateName(`${r.method||"GET"} ${s}`)}e.instrumentation?.requestHook?.(n,r)},responseHook:(n,r)=>{e.instrumentation?.responseHook?.(n,r)},applyCustomAttributesOnSpan:(n,r,i)=>{e.instrumentation?.applyCustomAttributesOnSpan?.(n,r,i)}}}var xHe,lee,IHe,nB,U8t,F8t,OHe,NHe=v(()=>{Ce();xHe=Se(mCe(),1);st();sr();lee="Http",IHe="@opentelemetry_sentry-patched/instrumentation-http",nB=df.major===22&&df.minor>=12||df.major===23&&df.minor>=2||df.major>=24,U8t=rt(`${lee}.sentry`,e=>new Gb(e)),F8t=rt(lee,e=>{let t=new xHe.HttpInstrumentation({...e,disableIncomingRequestInstrumentation:!0});try{t._diag=il.createComponentLogger({namespace:IHe}),t.instrumentationName=IHe}catch{}try{let n={get:()=>!1,set:()=>{}};Object.defineProperty(t,"_httpPatched",n),Object.defineProperty(t,"_httpsPatched",n)}catch{}return t});OHe=(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=pN(r),o=hN(i),a=t&&!n;return{name:lee,setup(c){let u=c.getOptions();a&&Os(u)&&o.setup(c)},setupOnce(){let c=ct()?.getOptions()||{},u=j8t(e,c);s.setupOnce();let l={breadcrumbs:e.breadcrumbs,propagateTraceInOutgoingRequests:typeof e.tracePropagation=="boolean"?e.tracePropagation:nB||!u,createSpansForOutgoingRequests:nB,spans:e.spans,ignoreOutgoingRequests:e.ignoreOutgoingRequests,outgoingRequestHook:(d,f)=>{let p=PN(f);if(p.startsWith("data:")){let h=QA(p);d.setAttribute("http.url",h),d.setAttribute(ky,h),d.updateName(`${f.method||"GET"} ${h}`)}e.instrumentation?.requestHook?.(d,f)},outgoingResponseHook:e.instrumentation?.responseHook,outgoingRequestApplyCustomAttributes:e.instrumentation?.applyCustomAttributesOnSpan};if(U8t(l),u){let d=H8t(e);F8t(d)}},processEvent(c){return o.processEvent(c)}}}});var PHe=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 MHe=w(iB=>{"use strict";Object.defineProperty(iB,"__esModule",{value:!0});iB.UndiciInstrumentation=void 0;var dee=Z("diagnostics_channel"),q8t=Z("url"),CN=Jt(),fl=(Ce(),ke(Ye)),rB=fr(),Vs=(Nn(),ke(Mr)),CHe=PHe(),fee=class extends CN.InstrumentationBase{_recordFromReq=new WeakMap;constructor(t={}){super(CHe.PACKAGE_NAME,CHe.PACKAGE_VERSION,t)}init(){}disable(){super.disable(),this._channelSubs.forEach(t=>t.unsubscribe()),this._channelSubs.length=0}enable(){super.enable(),this._channelSubs=this._channelSubs||[],!(this._channelSubs.length>0)&&(this.subscribeToChannel("undici:request:create",this.onRequestCreated.bind(this)),this.subscribeToChannel("undici:client:sendHeaders",this.onRequestHeaders.bind(this)),this.subscribeToChannel("undici:request:headers",this.onResponseHeaders.bind(this)),this.subscribeToChannel("undici:request:trailers",this.onDone.bind(this)),this.subscribeToChannel("undici:request:error",this.onError.bind(this)))}_updateMetricInstruments(){this._httpClientDurationHistogram=this.meter.createHistogram(Vs.METRIC_HTTP_CLIENT_REQUEST_DURATION,{description:"Measures the duration of outbound HTTP requests.",unit:"s",valueType:fl.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10]}})}subscribeToChannel(t,n){let[r,i]=process.version.replace("v","").split(".").map(a=>Number(a)),s=r>18||r===18&&i>=19,o;if(s)dee.subscribe?.(t,n),o=()=>dee.unsubscribe?.(t,n);else{let a=dee.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,rB.hrTime)(),o;try{o=new q8t.URL(t.path,t.origin)}catch(T){this._diag.warn("could not determine url.full:",T);return}let a=o.protocol.replace(":",""),c=this.getRequestMethod(t.method),u={[Vs.ATTR_HTTP_REQUEST_METHOD]:c,[Vs.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]:t.method,[Vs.ATTR_URL_FULL]:o.toString(),[Vs.ATTR_URL_PATH]:o.pathname,[Vs.ATTR_URL_QUERY]:o.search,[Vs.ATTR_URL_SCHEME]:a},l={https:"443",http:"80"},d=o.hostname,f=o.port||l[a];u[Vs.ATTR_SERVER_ADDRESS]=d,f&&!isNaN(Number(f))&&(u[Vs.ATTR_SERVER_PORT]=Number(f));let h=this.parseRequestHeaders(t).get("user-agent");if(h){let T=Array.isArray(h)?h[h.length-1]:h;u[Vs.ATTR_USER_AGENT_ORIGINAL]=T}let m=(0,CN.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=fl.context.active(),g=fl.trace.getSpan(y),E;n.requireParentforSpans&&(!g||!fl.trace.isSpanContextValid(g.spanContext()))?E=fl.trace.wrapSpanContext(fl.INVALID_SPAN_CONTEXT):E=this.tracer.startSpan(c==="_OTHER"?"HTTP":c,{kind:fl.SpanKind.CLIENT,attributes:u},y),(0,CN.safeExecuteInTheMiddle)(()=>n.requestHook?.(E,t),T=>T&&this._diag.error("caught requestHook error: ",T),!0);let S=fl.trace.setSpan(fl.context.active(),E),b={};fl.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,CN.safeExecuteInTheMiddle)(()=>a.responseHook?.(i,{request:t,response:n}),c=>c&&this._diag.error("caught responseHook error: ",c),!0),a.headersToSpanAttributes?.responseHeaders){let c=new Set;a.headersToSpanAttributes?.responseHeaders.forEach(u=>c.add(u.toLowerCase()));for(let u=0;u=400?fl.SpanStatusCode.ERROR:fl.SpanStatusCode.UNSET}),r.attributes=Object.assign(s,o)}onDone({request:t}){let n=this._recordFromReq.get(t);if(!n)return;let{span:r,attributes:i,startTime:s}=n;r.end(),this._recordFromReq.delete(t),this.recordRequestDuration(i,s)}onError({request:t,error:n}){let r=this._recordFromReq.get(t);if(!r)return;let{span:i,attributes:s,startTime:o}=r;i.recordException(n),i.setStatus({code:fl.SpanStatusCode.ERROR,message:n.message}),i.end(),this._recordFromReq.delete(t),s[Vs.ATTR_ERROR_TYPE]=n.message,this.recordRequestDuration(s,o)}recordRequestDuration(t,n){let r={};[Vs.ATTR_HTTP_RESPONSE_STATUS_CODE,Vs.ATTR_HTTP_REQUEST_METHOD,Vs.ATTR_SERVER_ADDRESS,Vs.ATTR_SERVER_PORT,Vs.ATTR_URL_SCHEME,Vs.ATTR_ERROR_TYPE].forEach(o=>{o in t&&(r[o]=t[o])});let s=(0,rB.hrTimeToMilliseconds)((0,rB.hrTimeDuration)(n,(0,rB.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"}};iB.UndiciInstrumentation=fee});var LHe=w(sB=>{"use strict";Object.defineProperty(sB,"__esModule",{value:!0});sB.UndiciInstrumentation=void 0;var B8t=MHe();Object.defineProperty(sB,"UndiciInstrumentation",{enumerable:!0,get:function(){return B8t.UndiciInstrumentation}})});function DHe(e,t="/"){let n=`${e}`;return n.endsWith("/")&&t.startsWith("/")?`${n}${t.slice(1)}`:!n.endsWith("/")&&!t.startsWith("/")?`${n}/${t}`:`${n}${t}`}function W8t(e,t={}){return typeof e.spans=="boolean"?e.spans:!t.skipOpenTelemetrySetup&&Os(t)}function K8t(e={}){return{requireParentforSpans:!1,ignoreRequestHook:n=>{let r=DHe(n.origin,n.path),i=e.ignoreOutgoingRequests;return!!(i&&r&&i(r))},startSpanHook:n=>{let r=DHe(n.origin,n.path);if(r.startsWith("data:")){let i=QA(r);return{[Rt]:"auto.http.otel.node_fetch","http.url":i,[ky]:i,[zl]:`${n.method||"GET"} ${i}`}}return{[Rt]:"auto.http.otel.node_fetch"}},requestHook:e.requestHook,responseHook:e.responseHook,headersToSpanAttributes:e.headersToSpanAttributes}}var UHe,FHe,G8t,z8t,V8t,jHe,HHe=v(()=>{UHe=Se(LHe(),1);st();sr();FHe="NodeFetch",G8t=rt(FHe,UHe.UndiciInstrumentation,e=>K8t(e)),z8t=rt(`${FHe}.sentry`,zb,e=>e),V8t=((e={})=>({name:"NodeFetch",setupOnce(){W8t(e,ct()?.getOptions())&&G8t(e),z8t(e)}})),jHe=V8t});var oB=w(MN=>{"use strict";Object.defineProperty(MN,"__esModule",{value:!0});MN.ExpressLayerType=void 0;var Z8t;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(Z8t=MN.ExpressLayerType||(MN.ExpressLayerType={}))});var aB=w(LN=>{"use strict";Object.defineProperty(LN,"__esModule",{value:!0});LN.AttributeNames=void 0;var Y8t;(function(e){e.EXPRESS_TYPE="express.type",e.EXPRESS_NAME="express.name"})(Y8t=LN.AttributeNames||(LN.AttributeNames={}))});var pee=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 GHe=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 hee=oB(),xR=aB(),Yb=pee(),J8t=(e,t)=>(Array.isArray(e[Yb._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,Yb._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),t===void 0?{isLayerPathStored:!1}:(e[Yb._LAYERS_STORE_PROPERTY].push(t),{isLayerPathStored:!0}));Ws.storeLayerPath=J8t;var X8t=(e,t)=>{let n=t.handle?.stack?.[0];return n?.route?.path?`${e}${n.route.path}`:n?.handle?.stack?(0,Ws.getRouterPath)(e,n):e};Ws.getRouterPath=X8t;var Q8t=(e,t,n)=>{if(t.name==="router"){let r=(0,Ws.getRouterPath)("",t),i=r||n||e||"/";return{attributes:{[xR.AttributeNames.EXPRESS_NAME]:i,[xR.AttributeNames.EXPRESS_TYPE]:hee.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]:hee.ExpressLayerType.REQUEST_HANDLER},name:`request handler${t.path?` - ${e||n}`:""}`}:{attributes:{[xR.AttributeNames.EXPRESS_NAME]:t.name,[xR.AttributeNames.EXPRESS_TYPE]:hee.ExpressLayerType.MIDDLEWARE},name:`middleware - ${t.name}`}};Ws.getLayerMetadata=Q8t;var $8t=(e,t)=>{if(typeof t=="string")return t===e;if(t instanceof RegExp)return t.test(e);if(typeof t=="function")return t(e);throw new TypeError("Pattern is in unsupported datatype")},eJt=(e,t,n)=>{if(Array.isArray(n?.ignoreLayersType)&&n?.ignoreLayersType?.includes(t))return!0;if(Array.isArray(n?.ignoreLayers)===!1)return!1;try{for(let r of n.ignoreLayers)if($8t(e,r))return!0}catch{}return!1};Ws.isLayerIgnored=eJt;var tJt=e=>e instanceof Error?[e,e.message]:[String(e),String(e)];Ws.asErrorAndMessage=tJt;var nJt=e=>{let t=e[0];return Array.isArray(t)?t.map(n=>qHe(n)||"").join(","):qHe(t)};Ws.getLayerPath=nJt;var qHe=e=>{if(typeof e=="string")return e;if(e instanceof RegExp||typeof e=="number")return e.toString()};function BHe(e){let n=(Array.isArray(e[Yb._LAYERS_STORE_PROPERTY])?e[Yb._LAYERS_STORE_PROPERTY]:[]).filter(r=>r!=="/"&&r!=="/*");return n.length===1&&n[0]==="*"?"*":n.join("").replace(/\/{2,}/g,"/")}Ws.getConstructedRoute=BHe;function rJt(e){let t=Array.isArray(e[Yb._LAYERS_STORE_PROPERTY])?e[Yb._LAYERS_STORE_PROPERTY]:[];if(t.length===0)return;if(t.every(s=>s==="/"))return e.originalUrl==="/"?"/":void 0;let n=BHe(e);if(n==="*"||n.includes("/")&&(n.includes(",")||n.includes("\\")||n.includes("*")||n.includes("[")))return n;let r=n.startsWith("/")?n:`/${n}`;return r.length>0&&(e.originalUrl===r||e.originalUrl.startsWith(r)||iJt(r))?r:void 0}Ws.getActualMatchedRoute=rJt;function iJt(e){return e.includes(":")||e.includes("*")}});var zHe=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 YHe=w(uB=>{"use strict";Object.defineProperty(uB,"__esModule",{value:!0});uB.ExpressInstrumentation=void 0;var VHe=fr(),pu=(Ce(),ke(Ye)),WHe=oB(),KHe=aB(),Yp=GHe(),ZHe=zHe(),NR=Jt(),sJt=(Nn(),ke(Mr)),cB=pee(),mee=class extends NR.InstrumentationBase{constructor(t={}){super(ZHe.PACKAGE_NAME,ZHe.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[cB.kLayerPatched]!==!0&&(t[cB.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={[sJt.ATTR_HTTP_ROUTE]:l},f=(0,Yp.getLayerMetadata)(u,t,n),p=f.attributes[KHe.AttributeNames.EXPRESS_TYPE],h=(0,VHe.getRPCMetadata)(pu.context.active());if(h?.type===VHe.RPCType.HTTP&&(h.route=l),(0,Yp.isLayerIgnored)(f.name,p,r.getConfig()))return p===WHe.ExpressLayerType.MIDDLEWARE&&o[cB._LAYERS_STORE_PROPERTY].pop(),i.apply(this,arguments);if(pu.trace.getSpan(pu.context.active())===void 0)return i.apply(this,arguments);let m=r._getSpanName({request:o,layerType:p,route:u},f.name),y=r.tracer.startSpan(m,{attributes:Object.assign(d,f.attributes)}),g=pu.context.active(),E=pu.trace.setSpan(g,y),{requestHook:S}=r.getConfig();S&&(0,NR.safeExecuteInTheMiddle)(()=>S(y,{request:o,layerType:p,route:u}),R=>{R&&pu.diag.error("express instrumentation: request hook failed",R)},!0);let b=!1;f.attributes[KHe.AttributeNames.EXPRESS_TYPE]===WHe.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:pu.SpanStatusCode.ERROR,message:V})}b===!1&&(b=!0,o.res?.removeListener("finish",_),y.end()),!(o.route&&x)&&c&&o[cB._LAYERS_STORE_PROPERTY].pop();let k=T[A],N=pu.context.active(),P=pu.trace.getSpan(g),C=P?pu.trace.setSpan(N,P):N;return pu.context.bind(C,k).apply(this,arguments)});try{return pu.context.bind(E,i).apply(this,arguments)}catch(R){let[x,k]=(0,Yp.asErrorAndMessage)(R);throw y.recordException(x),y.setStatus({code:pu.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 pu.diag.error("express instrumentation: error calling span name rewrite hook",i),n}}};uB.ExpressInstrumentation=mee});var JHe=w(Zy=>{"use strict";Object.defineProperty(Zy,"__esModule",{value:!0});Zy.AttributeNames=Zy.ExpressLayerType=Zy.ExpressInstrumentation=void 0;var oJt=YHe();Object.defineProperty(Zy,"ExpressInstrumentation",{enumerable:!0,get:function(){return oJt.ExpressInstrumentation}});var aJt=oB();Object.defineProperty(Zy,"ExpressLayerType",{enumerable:!0,get:function(){return aJt.ExpressLayerType}});var cJt=aB();Object.defineProperty(Zy,"AttributeNames",{enumerable:!0,get:function(){return cJt.AttributeNames}})});var So,Jb=v(()=>{So=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});function uJt(e){Lr(e,"auto.http.otel.express");let t=vt(e).data,n=t["express.type"];n&&e.setAttribute(Gt,`${n}.express`);let r=t["express.name"];typeof r=="string"&&e.updateName(r)}function lJt(e,t){if(vn()===Gl())return So&&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 XHe,QHe,$He,dJt,eqe,tqe=v(()=>{XHe=Se(JHe(),1);st();sr();Jb();QHe="Express";$He=rt(QHe,()=>new XHe.ExpressInstrumentation({requestHook:e=>uJt(e),spanNameHook:(e,t)=>lJt(e,t)})),dJt=(()=>({name:QHe,setupOnce(){$He()}})),eqe=dJt});var nqe=w(DN=>{"use strict";Object.defineProperty(DN,"__esModule",{value:!0});DN.SeverityNumber=void 0;var fJt;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(fJt=DN.SeverityNumber||(DN.SeverityNumber={}))});var fB=w(PR=>{"use strict";Object.defineProperty(PR,"__esModule",{value:!0});PR.NOOP_LOGGER=PR.NoopLogger=void 0;var dB=class{emit(t){}};PR.NoopLogger=dB;PR.NOOP_LOGGER=new dB});var rqe=w(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});Jp.API_BACKWARDS_COMPATIBILITY_VERSION=Jp.makeGetter=Jp._global=Jp.GLOBAL_LOGS_API_KEY=void 0;Jp.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");Jp._global=globalThis;function pJt(e,t,n){return r=>r===e?t:n}Jp.makeGetter=pJt;Jp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var gee=w(CR=>{"use strict";Object.defineProperty(CR,"__esModule",{value:!0});CR.NOOP_LOGGER_PROVIDER=CR.NoopLoggerProvider=void 0;var hJt=fB(),pB=class{getLogger(t,n,r){return new hJt.NoopLogger}};CR.NoopLoggerProvider=pB;CR.NOOP_LOGGER_PROVIDER=new pB});var iqe=w(hB=>{"use strict";Object.defineProperty(hB,"__esModule",{value:!0});hB.ProxyLogger=void 0;var mJt=fB(),yee=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}emit(t){this._getLogger().emit(t)}_getLogger(){if(this._delegate)return this._delegate;let t=this._provider._getDelegateLogger(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):mJt.NOOP_LOGGER}};hB.ProxyLogger=yee});var sqe=w(mB=>{"use strict";Object.defineProperty(mB,"__esModule",{value:!0});mB.ProxyLoggerProvider=void 0;var gJt=gee(),yJt=iqe(),See=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new yJt.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:gJt.NOOP_LOGGER_PROVIDER}_setDelegate(t){this._delegate=t}_getDelegateLogger(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(t,n,r)}};mB.ProxyLoggerProvider=See});var aqe=w(gB=>{"use strict";Object.defineProperty(gB,"__esModule",{value:!0});gB.LogsAPI=void 0;var Jl=rqe(),SJt=gee(),oqe=sqe(),Eee=class e{constructor(){this._proxyLoggerProvider=new oqe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return Jl._global[Jl.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(Jl._global[Jl.GLOBAL_LOGS_API_KEY]=(0,Jl.makeGetter)(Jl.API_BACKWARDS_COMPATIBILITY_VERSION,t,SJt.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=Jl._global[Jl.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(Jl._global,Jl.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete Jl._global[Jl.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new oqe.ProxyLoggerProvider}};gB.LogsAPI=Eee});var bee=w(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});Xp.logs=Xp.NoopLogger=Xp.NOOP_LOGGER=Xp.SeverityNumber=void 0;var EJt=nqe();Object.defineProperty(Xp,"SeverityNumber",{enumerable:!0,get:function(){return EJt.SeverityNumber}});var cqe=fB();Object.defineProperty(Xp,"NOOP_LOGGER",{enumerable:!0,get:function(){return cqe.NOOP_LOGGER}});Object.defineProperty(Xp,"NoopLogger",{enumerable:!0,get:function(){return cqe.NoopLogger}});var bJt=aqe();Xp.logs=bJt.LogsAPI.getInstance()});var uqe=w(MR=>{"use strict";Object.defineProperty(MR,"__esModule",{value:!0});MR.disableInstrumentations=MR.enableInstrumentations=void 0;function _Jt(e,t,n,r){for(let i=0,s=e.length;it.disable())}MR.disableInstrumentations=TJt});var fqe=w(yB=>{"use strict";Object.defineProperty(yB,"__esModule",{value:!0});yB.registerInstrumentations=void 0;var lqe=(Ce(),ke(Ye)),vJt=bee(),dqe=uqe();function AJt(e){let t=e.tracerProvider||lqe.trace.getTracerProvider(),n=e.meterProvider||lqe.metrics.getMeterProvider(),r=e.loggerProvider||vJt.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,dqe.enableInstrumentations)(i,t,n,r),()=>{(0,dqe.disableInstrumentations)(i)}}yB.registerInstrumentations=AJt});var _qe=w(SB=>{"use strict";Object.defineProperty(SB,"__esModule",{value:!0});SB.satisfies=void 0;var Aee=(Ce(),ke(Ye)),yqe=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,RJt=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,wJt={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function kJt(e,t,n){if(!IJt(e))return Aee.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=PJt(e);if(!r)return!1;let i=[],s=Sqe(r,t,i,n);return s&&!n?.includePrerelease?OJt(r,i):s}SB.satisfies=kJt;function IJt(e){return typeof e=="string"&&yqe.test(e)}function Sqe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(_ee(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=$Jt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!_ee(e,s,n,r))return!1;return!0}return _ee(e,t,n,r)}function _ee(e,t,n,r){if(t=NJt(t,r),t.includes(" "))return Sqe(e,t,n,r);{let i=CJt(t);return n.push(i),xJt(e,i)}}function xJt(e,t){if(t.invalid)return!1;if(!t.version||vee(t.version))return!0;let n=hqe(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=hqe(r,i)}return wJt[t.op]?.includes(n)}function OJt(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function NJt(e,t){return e=e.trim(),e=XJt(e,t),e=JJt(e),e=QJt(e,t),e=e.trim(),e}function Mc(e){return!e||e.toLowerCase()==="x"||e==="*"}function PJt(e){let t=e.match(yqe);if(!t){Aee.diag.error(`Invalid version: ${e}`);return}let n=t.groups.version,r=t.groups.prerelease,i=t.groups.build,s=n.split("."),o=r?.split(".");return{op:void 0,version:n,versionSegments:s,versionSegmentCount:s.length,prerelease:r,prereleaseSegments:o,prereleaseSegmentCount:o?o.length:0,build:i}}function CJt(e){if(!e)return{};let t=e.match(RJt);if(!t)return Aee.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 vee(e){return e==="*"||e==="x"||e==="X"}function pqe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function MJt(e,t){if(typeof e==typeof t){if(typeof e=="number")return[e,t];if(typeof e=="string")return[e,t];throw new Error("Version segments can only be strings or numbers")}else return[String(e),String(t)]}function LJt(e,t){if(vee(e)||vee(t))return 0;let[n,r]=MJt(pqe(e),pqe(t));return n>r?1:n)?=?)",mqe=`(?:${bqe}|${DJt})`,FJt=`(?:-(${mqe}(?:\\.${mqe})*))`,gqe=`${Eqe}+`,jJt=`(?:\\+(${gqe}(?:\\.${gqe})*))`,Tee=`${bqe}|x|X|\\*`,UN=`[v=\\s]*(${Tee})(?:\\.(${Tee})(?:\\.(${Tee})(?:${FJt})?${jJt}?)?)?`,HJt=`^${UJt}\\s*${UN}$`,qJt=new RegExp(HJt),BJt=`^\\s*(${UN})\\s+-\\s+(${UN})\\s*$`,GJt=new RegExp(BJt),zJt="(?:~>?)",VJt=`^${zJt}${UN}$`,WJt=new RegExp(VJt),KJt="(?:\\^)",ZJt=`^${KJt}${UN}$`,YJt=new RegExp(ZJt);function JJt(e){let t=WJt;return e.replace(t,(n,r,i,s,o)=>{let a;return Mc(r)?a="":Mc(i)?a=`>=${r}.0.0 <${+r+1}.0.0-0`:Mc(s)?a=`>=${r}.${i}.0 <${r}.${+i+1}.0-0`:o?a=`>=${r}.${i}.${s}-${o} <${r}.${+i+1}.0-0`:a=`>=${r}.${i}.${s} <${r}.${+i+1}.0-0`,a})}function XJt(e,t){let n=YJt,r=t?.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{let u;return Mc(s)?u="":Mc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:Mc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`:s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`,u})}function QJt(e,t){let n=qJt;return e.replace(n,(r,i,s,o,a,c)=>{let u=Mc(s),l=u||Mc(o),d=l||Mc(a),f=d;return i==="="&&f&&(i=""),c=t?.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),r})}function $Jt(e,t){let n=GJt;return e.replace(n,(r,i,s,o,a,c,u,l,d,f,p,h)=>(Mc(s)?i="":Mc(o)?i=`>=${s}.0.0${t?.includePrerelease?"-0":""}`:Mc(a)?i=`>=${s}.${o}.0${t?.includePrerelease?"-0":""}`:c?i=`>=${i}`:i=`>=${i}${t?.includePrerelease?"-0":""}`,Mc(d)?l="":Mc(f)?l=`<${+d+1}.0.0-0`:Mc(p)?l=`<${d}.${+f+1}.0-0`:h?l=`<=${d}.${f}.${p}-${h}`:t?.includePrerelease?l=`<${d}.${f}.${+p+1}-0`:l=`<=${l}`,`${i} ${l}`.trim()))}});var Ree=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 FN(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var e7t=(e,t,n)=>{if(!e||!e[t]){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 FN(i,"__original",r),FN(i,"__unwrap",()=>{e[t]===i&&FN(e,t,r)}),FN(i,"__wrapped",!0),FN(e,t,i),i};da.wrap=e7t;var t7t=(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=t7t;var n7t=(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=n7t;var r7t=(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=r7t;function jN(e){e&&e.logger&&(typeof e.logger!="function"?Lc("new logger isn't a function, not replacing"):Lc=e.logger)}da.default=jN;jN.wrap=da.wrap;jN.massWrap=da.massWrap;jN.unwrap=da.unwrap;jN.massUnwrap=da.massUnwrap});var Tqe=w(bB=>{"use strict";Object.defineProperty(bB,"__esModule",{value:!0});bB.InstrumentationAbstract=void 0;var wee=(Ce(),ke(Ye)),i7t=bee(),EB=Ree(),kee=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=wee.diag.createComponentLogger({namespace:t}),this._tracer=wee.trace.getTracer(t,n),this._meter=wee.metrics.getMeter(t,n),this._logger=i7t.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=EB.wrap;_unwrap=EB.unwrap;_massWrap=EB.massWrap;_massUnwrap=EB.massUnwrap;get meter(){return this._meter}setMeterProvider(t){this._meter=t.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(t){this._logger=t.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let t=this.init()??[];return Array.isArray(t)?t:[t]}_updateMetricInstruments(){}getConfig(){return this._config}setConfig(t){this._config={enabled:!0,...t}}setTracerProvider(t){this._tracer=t.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(t,n,r,i){if(t)try{t(r,i)}catch(s){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:n},s)}}};bB.InstrumentationAbstract=kee});var vqe=w(Yy=>{"use strict";Object.defineProperty(Yy,"__esModule",{value:!0});Yy.ModuleNameTrie=Yy.ModuleNameSeparator=void 0;Yy.ModuleNameSeparator="/";var _B=class{hooks=[];children=new Map},Iee=class{_trie=new _B;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(Yy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new _B,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(Yy.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))}};Yy.ModuleNameTrie=Iee});var Rqe=w(TB=>{"use strict";Object.defineProperty(TB,"__esModule",{value:!0});TB.RequireInTheMiddleSingleton=void 0;var s7t=Tb(),Aqe=Z("path"),xee=vqe(),o7t=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),Oee=class e{_moduleNameTrie=new xee.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new s7t.Hook(null,{internals:!0},(t,n,r)=>{let i=a7t(n),s=this._moduleNameTrie.search(i,{maintainInsertionOrder:!0,fullOnly:r===void 0});for(let{onRequire:o}of s)t=o(t,n,r);return t})}register(t,n){let r={moduleName:t,onRequire:n};return this._moduleNameTrie.insert(r),r}static getInstance(){return o7t?new e:this._instance=this._instance??new e}};TB.RequireInTheMiddleSingleton=Oee;function a7t(e){return Aqe.sep!==xee.ModuleNameSeparator?e.split(Aqe.sep).join(xee.ModuleNameSeparator):e}});var Oqe=w(HN=>{var wqe=[],Nee=new WeakMap,kqe=new WeakMap,Iqe=new Map,xqe=[],c7t={set(e,t,n){let r=Nee.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=kqe.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=Nee.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function u7t(e,t,n,r,i){Iqe.set(e,i),Nee.set(t,n),kqe.set(t,r);let s=new Proxy(t,c7t);wqe.forEach(o=>o(e,s,i)),xqe.push([e,s,i])}HN.register=u7t;HN.importHooks=wqe;HN.specifiers=Iqe;HN.toHook=xqe});var Mqe=w((HCr,DR)=>{var Nqe=Z("path"),l7t=SO(),{fileURLToPath:d7t}=Z("url"),{MessageChannel:f7t}=Z("worker_threads"),{isBuiltin:Pee}=Z("module");Pee||(Pee=()=>!0);var{importHooks:Cee,specifiers:p7t,toHook:h7t}=Oqe();function Pqe(e){Cee.push(e),h7t.forEach(([t,n,r])=>e(t,n,r))}function Cqe(e){let t=Cee.indexOf(e);t>-1&&Cee.splice(t,1)}function LR(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var Mee;function m7t(){let{port1:e,port2:t}=new f7t,n=0,r;Mee=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 qN(e,t,n){if(!(this instanceof qN))return new qN(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;Mee&&Array.isArray(e)&&Mee(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);Pee(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=d7t(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=l7t(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)LR(n,s,u,void 0);else if(d===i){if(!l)LR(n,s,i,l);else if(l.endsWith(p7t.get(a)))LR(n,s,i,l);else if(r){let f=i+Nqe.sep+Nqe.relative(l,u);LR(n,s,f,l)}}else d===o&&LR(n,s,o,l);else LR(n,s,i,l)},Pqe(this._iitmHook)}qN.prototype.unhook=function(){Cqe(this._iitmHook)};DR.exports=qN;DR.exports.Hook=qN;DR.exports.addHook=Pqe;DR.exports.removeHook=Cqe;DR.exports.createAddHookMessageChannel=m7t});var Lee=w(Jy=>{"use strict";Object.defineProperty(Jy,"__esModule",{value:!0});Jy.isWrapped=Jy.safeExecuteInTheMiddleAsync=Jy.safeExecuteInTheMiddle=void 0;function g7t(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}Jy.safeExecuteInTheMiddle=g7t;async function y7t(e,t,n){let r,i;try{i=await e()}catch(s){r=s}finally{if(await t(r,i),r&&!n)throw r;return i}}Jy.safeExecuteInTheMiddleAsync=y7t;function S7t(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}Jy.isWrapped=S7t});var Uqe=w(vB=>{"use strict";Object.defineProperty(vB,"__esModule",{value:!0});vB.InstrumentationBase=void 0;var BN=Z("path"),Lqe=Z("util"),E7t=_qe(),Dee=Ree(),b7t=Tqe(),_7t=Rqe(),T7t=Mqe(),GN=(Ce(),ke(Ye)),v7t=Tb(),A7t=Z("fs"),R7t=Lee(),Uee=class extends b7t.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=_7t.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(t,n,r){super(t,n,r);let i=this.init();i&&!Array.isArray(i)&&(i=[i]),this._modules=i||[],this._config.enabled&&this.enable()}_wrap=(t,n,r)=>{if((0,R7t.isWrapped)(t[n])&&this._unwrap(t,n),Lqe.types.isProxy(t)){let i=(0,Dee.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,Dee.wrap)(t,n,r)};_unwrap=(t,n)=>Lqe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,Dee.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{GN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){GN.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{GN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){GN.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,A7t.readFileSync)(BN.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{GN.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 Dqe(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=BN.normalize(r);return o.filter(u=>u.name===a&&Dqe(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&BN.isAbsolute(a)){let u=BN.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=BN.isAbsolute(t.name)?new v7t.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new T7t.Hook([t.name],{internals:!0},n);this._hooks.push(s)}}}disable(){if(this._enabled){this._enabled=!1;for(let t of this._modules){typeof t.unpatch=="function"&&t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:t.name,version:t.moduleVersion}),t.unpatch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.unpatch(n.moduleExports,t.moduleVersion))}}}isEnabled(){return this._enabled}};vB.InstrumentationBase=Uee;function Dqe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,E7t.satisfies)(t,r,{includePrerelease:n}))}});var Fqe=w(AB=>{"use strict";Object.defineProperty(AB,"__esModule",{value:!0});AB.normalize=void 0;var w7t=Z("path");Object.defineProperty(AB,"normalize",{enumerable:!0,get:function(){return w7t.normalize}})});var jqe=w(UR=>{"use strict";Object.defineProperty(UR,"__esModule",{value:!0});UR.normalize=UR.InstrumentationBase=void 0;var k7t=Uqe();Object.defineProperty(UR,"InstrumentationBase",{enumerable:!0,get:function(){return k7t.InstrumentationBase}});var I7t=Fqe();Object.defineProperty(UR,"normalize",{enumerable:!0,get:function(){return I7t.normalize}})});var Fee=w(FR=>{"use strict";Object.defineProperty(FR,"__esModule",{value:!0});FR.normalize=FR.InstrumentationBase=void 0;var Hqe=jqe();Object.defineProperty(FR,"InstrumentationBase",{enumerable:!0,get:function(){return Hqe.InstrumentationBase}});Object.defineProperty(FR,"normalize",{enumerable:!0,get:function(){return Hqe.normalize}})});var qqe=w(RB=>{"use strict";Object.defineProperty(RB,"__esModule",{value:!0});RB.InstrumentationNodeModuleDefinition=void 0;var jee=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}};RB.InstrumentationNodeModuleDefinition=jee});var Bqe=w(wB=>{"use strict";Object.defineProperty(wB,"__esModule",{value:!0});wB.InstrumentationNodeModuleFile=void 0;var x7t=Fee(),Hee=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,x7t.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};wB.InstrumentationNodeModuleFile=Hee});var Gqe=w(Xb=>{"use strict";Object.defineProperty(Xb,"__esModule",{value:!0});Xb.semconvStabilityFromStr=Xb.SemconvStability=void 0;var kB;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(kB=Xb.SemconvStability||(Xb.SemconvStability={}));function O7t(e,t){let n=kB.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=kB.DUPLICATE;break}else i.toLowerCase()===e&&(n=kB.STABLE);return n}Xb.semconvStabilityFromStr=O7t});var Vqe=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 N7t=fqe();Object.defineProperty(Ks,"registerInstrumentations",{enumerable:!0,get:function(){return N7t.registerInstrumentations}});var P7t=Fee();Object.defineProperty(Ks,"InstrumentationBase",{enumerable:!0,get:function(){return P7t.InstrumentationBase}});var C7t=qqe();Object.defineProperty(Ks,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return C7t.InstrumentationNodeModuleDefinition}});var M7t=Bqe();Object.defineProperty(Ks,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return M7t.InstrumentationNodeModuleFile}});var qee=Lee();Object.defineProperty(Ks,"isWrapped",{enumerable:!0,get:function(){return qee.isWrapped}});Object.defineProperty(Ks,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return qee.safeExecuteInTheMiddle}});Object.defineProperty(Ks,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return qee.safeExecuteInTheMiddleAsync}});var zqe=Gqe();Object.defineProperty(Ks,"SemconvStability",{enumerable:!0,get:function(){return zqe.SemconvStability}});Object.defineProperty(Ks,"semconvStabilityFromStr",{enumerable:!0,get:function(){return zqe.semconvStabilityFromStr}})});var Wqe=w((XCr,L7t)=>{L7t.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 Zqe=w(Qb=>{"use strict";Object.defineProperty(Qb,"__esModule",{value:!0});Qb.range=Qb.balanced=void 0;var D7t=(e,t,n)=>{let r=e instanceof RegExp?Kqe(e,n):e,i=t instanceof RegExp?Kqe(t,n):t,s=r!==null&&i!=null&&(0,Qb.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)}};Qb.balanced=D7t;var Kqe=(e,t)=>{let n=t.match(e);return n?n[0]:null},U7t=(e,t,n)=>{let r,i,s,o,a,c=n.indexOf(e),u=n.indexOf(t,c+1),l=c;if(c>=0&&u>0){if(e===t)return[c,u];for(r=[],s=n.length;l>=0&&!a;){if(l===c)r.push(l),c=n.indexOf(e,l+1);else if(r.length===1){let d=r.pop();d!==void 0&&(a=[d,u])}else i=r.pop(),i!==void 0&&i=0?c:u}r.length&&o!==void 0&&(a=[s,o])}return a};Qb.range=U7t});var tBe=w(jR=>{"use strict";Object.defineProperty(jR,"__esModule",{value:!0});jR.EXPANSION_MAX=void 0;jR.expand=J7t;var Yqe=Zqe(),Jqe="\0SLASH"+Math.random()+"\0",Xqe="\0OPEN"+Math.random()+"\0",Gee="\0CLOSE"+Math.random()+"\0",Qqe="\0COMMA"+Math.random()+"\0",$qe="\0PERIOD"+Math.random()+"\0",F7t=new RegExp(Jqe,"g"),j7t=new RegExp(Xqe,"g"),H7t=new RegExp(Gee,"g"),q7t=new RegExp(Qqe,"g"),B7t=new RegExp($qe,"g"),G7t=/\\\\/g,z7t=/\\{/g,V7t=/\\}/g,W7t=/\\,/g,K7t=/\\\./g;jR.EXPANSION_MAX=1e5;function Bee(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function Z7t(e){return e.replace(G7t,Jqe).replace(z7t,Xqe).replace(V7t,Gee).replace(W7t,Qqe).replace(K7t,$qe)}function Y7t(e){return e.replace(F7t,"\\").replace(j7t,"{").replace(H7t,"}").replace(q7t,",").replace(B7t,".")}function eBe(e){if(!e)return[""];let t=[],n=(0,Yqe.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=eBe(s);return s.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function J7t(e,t={}){if(!e)return[];let{max:n=jR.EXPANSION_MAX}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),zN(Z7t(e),n,!0).map(Y7t)}function X7t(e){return"{"+e+"}"}function Q7t(e){return/^-?0\d/.test(e)}function $7t(e,t){return e<=t}function eXt(e,t){return e>=t}function zN(e,t,n){let r=[],i=(0,Yqe.balanced)("{","}",e);if(!i)return[e];let s=i.pre,o=i.post.length?zN(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+Gee+i.post,zN(e,t,!0)):[e];let d;if(u)d=i.body.split(/\.\./);else if(d=eBe(i.body),d.length===1&&d[0]!==void 0&&(d=zN(d[0],t,!1).map(X7t),d.length===1))return o.map(p=>i.pre+d[0]+p);let f;if(u&&d[0]!==void 0&&d[1]!==void 0){let p=Bee(d[0]),h=Bee(d[1]),m=Math.max(d[0].length,d[1].length),y=d.length===3&&d[2]!==void 0?Math.max(Math.abs(Bee(d[2])),1):1,g=$7t;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(IB,"__esModule",{value:!0});IB.assertValidPattern=void 0;var tXt=1024*64,nXt=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>tXt)throw new TypeError("pattern is too long")};IB.assertValidPattern=nXt});var iBe=w(xB=>{"use strict";Object.defineProperty(xB,"__esModule",{value:!0});xB.parseClass=void 0;var rXt={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},VN=e=>e.replace(/[[\]\\-]/g,"\\$&"),iXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),rBe=e=>e.join(""),sXt=(e,t)=>{let n=t;if(e.charAt(n)!=="[")throw new Error("not in a brace expression");let r=[],i=[],s=n+1,o=!1,a=!1,c=!1,u=!1,l=n,d="";e:for(;sd?r.push(VN(d)+"-"+VN(m)):m===d&&r.push(VN(m)),d="",s++;continue}if(e.startsWith("-]",s+1)){r.push(VN(m+"-")),s+=2;continue}if(e.startsWith("-",s+1)){d=m,s+=2;continue}r.push(VN(m)),s++}if(l{"use strict";Object.defineProperty(OB,"__esModule",{value:!0});OB.unescape=void 0;var oXt=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!0}={})=>n?t?e.replace(/\[([^/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\])\]/g,"$1$2").replace(/\\([^/])/g,"$1"):t?e.replace(/\[([^/\\{}])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\{}])\]/g,"$1$2").replace(/\\([^/{}])/g,"$1");OB.unescape=oXt});var Wee=w(LB=>{"use strict";var hu;Object.defineProperty(LB,"__esModule",{value:!0});LB.AST=void 0;var aXt=iBe(),PB=NB(),cXt=new Set(["!","?","+","*","@"]),zee=e=>cXt.has(e),sBe=e=>zee(e.type),uXt=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),lXt=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),dXt=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),oBe=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),fXt="(?!(?:^|/)\\.\\.?(?:$|/))",CB="(?!\\.)",pXt=new Set(["[","."]),hXt=new Set(["..","."]),mXt=new Set("().*{}+?[]^$\\!"),gXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Vee="[^/]",aBe=Vee+"*?",cBe=Vee+"+?",yXt=0,MB=class{type;#t;#n;#i=!1;#e=[];#r;#s;#c;#u=!1;#o;#a;#l=!1;id=++yXt;get depth(){return(this.#r?.depth??-1)+1}[Symbol.for("nodejs.util.inspect.custom")](){return{"@@type":"AST",id:this.id,type:this.type,root:this.#t.id,parent:this.#r?.id,depth:this.depth,partsLength:this.#e.length,parts:this.#e}}constructor(t,n,r={}){this.type=t,t&&(this.#n=!0),this.#r=n,this.#t=this.#r?this.#r.#t:this,this.#o=this.#t===this?r:this.#t.#o,this.#c=this.#t===this?[]:this.#t.#c,t==="!"&&!this.#t.#u&&this.#c.push(this),this.#s=this.#r?this.#r.#e.length:0}get hasMagic(){if(this.#n!==void 0)return this.#n;for(let t of this.#e)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#n=!0;return this.#n}toString(){return this.#a!==void 0?this.#a:this.type?this.#a=this.type+"("+this.#e.map(t=>String(t)).join("|")+")":this.#a=this.#e.map(t=>String(t)).join("")}#d(){if(this!==this.#t)throw new Error("should only call on root");if(this.#u)return this;this.toString(),this.#u=!0;let t;for(;t=this.#c.pop();){if(t.type!=="!")continue;let n=t,r=n.#r;for(;r;){for(let i=n.#s+1;!r.type&&itypeof n=="string"?n:n.toJSON()):[this.type,...this.#e.map(n=>n.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#u&&this.#r?.type==="!")&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#r?.isStart())return!1;if(this.#s===0)return!0;let t=this.#r;for(let n=0;ntypeof p!="string"),u=this.#e.map(p=>{let[h,m,y,g]=typeof p=="string"?hu.#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&&hXt.has(this.#e[0]))){let h=pXt,m=n&&h.has(u.charAt(0))||u.startsWith("\\.")&&h.has(u.charAt(2))||u.startsWith("\\.\\.")&&h.has(u.charAt(4)),y=!n&&!t&&h.has(u.charAt(0));l=m?fXt:y?CB:""}let d="";return this.isEnd()&&this.#t.#u&&this.#r?.type==="!"&&(d="(?:$|\\/)"),[l+u+d,(0,PB.unescape)(u),this.#n=!!this.#n,this.#i]}let r=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",s=this.#y(n);if(this.isStart()&&this.isEnd()&&!s&&this.type!=="!"){let c=this.toString(),u=this;return u.#e=[c],u.type=null,u.#n=void 0,[c,(0,PB.unescape)(this.toString()),!1,!1]}let o=!r||t||n||!CB?"":this.#y(!0);o===s&&(o=""),o&&(s=`(?:${s})(?:${o})*?`);let a="";if(this.type==="!"&&this.#l)a=(this.isStart()&&!n?CB:"")+cBe;else{let c=this.type==="!"?"))"+(this.isStart()&&!n&&!t?CB:"")+aBe+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+s+c}return[a,(0,PB.unescape)(s),this.#n=!!this.#n,this.#i]}#h(){if(sBe(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(DB,"__esModule",{value:!0});DB.escape=void 0;var SXt=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");DB.escape=SXt});var mBe=w(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});it.unescape=it.escape=it.AST=it.Minimatch=it.match=it.makeRe=it.braceExpand=it.defaults=it.filter=it.GLOBSTAR=it.sep=it.minimatch=void 0;var EXt=tBe(),UB=nBe(),dBe=Wee(),bXt=Kee(),_Xt=NB(),TXt=(e,t,n={})=>((0,UB.assertValidPattern)(t),!n.nocomment&&t.charAt(0)==="#"?!1:new $b(t,n).match(e));it.minimatch=TXt;var vXt=/^\*+([^+@!?*[(]*)$/,AXt=e=>t=>!t.startsWith(".")&&t.endsWith(e),RXt=e=>t=>t.endsWith(e),wXt=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),kXt=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),IXt=/^\*+\.\*+$/,xXt=e=>!e.startsWith(".")&&e.includes("."),OXt=e=>e!=="."&&e!==".."&&e.includes("."),NXt=/^\.\*+$/,PXt=e=>e!=="."&&e!==".."&&e.startsWith("."),CXt=/^\*+$/,MXt=e=>e.length!==0&&!e.startsWith("."),LXt=e=>e.length!==0&&e!=="."&&e!=="..",DXt=/^\?+([^+@!?*[(]*)?$/,UXt=([e,t=""])=>{let n=fBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},FXt=([e,t=""])=>{let n=pBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},jXt=([e,t=""])=>{let n=pBe([e]);return t?r=>n(r)&&r.endsWith(t):n},HXt=([e,t=""])=>{let n=fBe([e]);return t?r=>n(r)&&r.endsWith(t):n},fBe=([e])=>{let t=e.length;return n=>n.length===t&&!n.startsWith(".")},pBe=([e])=>{let t=e.length;return n=>n.length===t&&n!=="."&&n!==".."},hBe=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",uBe={win32:{sep:"\\"},posix:{sep:"/"}};it.sep=hBe==="win32"?uBe.win32.sep:uBe.posix.sep;it.minimatch.sep=it.sep;it.GLOBSTAR=Symbol("globstar **");it.minimatch.GLOBSTAR=it.GLOBSTAR;var qXt="[^/]",BXt=qXt+"*?",GXt="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",zXt="(?:(?!(?:\\/|^)\\.).)*?",VXt=(e,t={})=>n=>(0,it.minimatch)(n,e,t);it.filter=VXt;it.minimatch.filter=it.filter;var Xl=(e,t={})=>Object.assign({},e,t),WXt=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return it.minimatch;let t=it.minimatch;return Object.assign((r,i,s={})=>t(r,i,Xl(e,s)),{Minimatch:class extends t.Minimatch{constructor(i,s={}){super(i,Xl(e,s))}static defaults(i){return t.defaults(Xl(e,i)).Minimatch}},AST:class extends t.AST{constructor(i,s,o={}){super(i,s,Xl(e,o))}static fromGlob(i,s={}){return t.AST.fromGlob(i,Xl(e,s))}},unescape:(r,i={})=>t.unescape(r,Xl(e,i)),escape:(r,i={})=>t.escape(r,Xl(e,i)),filter:(r,i={})=>t.filter(r,Xl(e,i)),defaults:r=>t.defaults(Xl(e,r)),makeRe:(r,i={})=>t.makeRe(r,Xl(e,i)),braceExpand:(r,i={})=>t.braceExpand(r,Xl(e,i)),match:(r,i,s={})=>t.match(r,i,Xl(e,s)),sep:t.sep,GLOBSTAR:it.GLOBSTAR})};it.defaults=WXt;it.minimatch.defaults=it.defaults;var KXt=(e,t={})=>((0,UB.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,EXt.expand)(e,{max:t.braceExpandMax}));it.braceExpand=KXt;it.minimatch.braceExpand=it.braceExpand;var ZXt=(e,t={})=>new $b(e,t).makeRe();it.makeRe=ZXt;it.minimatch.makeRe=it.makeRe;var YXt=(e,t,n={})=>{let r=new $b(t,n);return e=e.filter(i=>r.match(i)),r.options.nonull&&!e.length&&e.push(t),e};it.match=YXt;it.minimatch.match=it.match;var lBe=/[?*]|[+@!]\(.*?\)|\[|\]/,JXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),$b=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,n={}){(0,UB.assertValidPattern)(t),n=n||{},this.options=n,this.maxGlobstarRecursion=n.maxGlobstarRecursion??200,this.pattern=t,this.platform=n.platform||hBe,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]==="?"||!lBe.test(s[2]))&&!lBe.test(s[3]),u=/^[a-z]:/i.test(s[0]);if(c)return[...s.slice(0,4),...s.slice(4).map(l=>this.parse(l))];if(u)return[s[0],...s.slice(1).map(l=>this.parse(l))]}return s.map(c=>this.parse(c))});if(this.debug(this.pattern,i),this.set=i.filter(s=>s.indexOf(!1)===-1),this.isWindows)for(let s=0;s=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):n>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(n=>{let r=-1;for(;(r=n.indexOf("**",r+1))!==-1;){let i=r;for(;n[i+1]==="**";)i++;i!==r&&n.splice(r,i-r)}return n})}levelOneOptimize(t){return t.map(n=>(n=n.reduce((r,i)=>{let s=r[r.length-1];return i==="**"&&s==="**"?r:i===".."&&s&&s!==".."&&s!=="."&&s!=="**"?(r.pop(),r):(r.push(i),r)},[]),n.length===0?[""]:n))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let n=!1;do{if(n=!1,!this.preserveMultipleSlashes){for(let i=1;ii&&r.splice(i+1,o-i);let a=r[i+1],c=r[i+2],u=r[i+3];if(a!==".."||!c||c==="."||c===".."||!u||u==="."||u==="..")continue;n=!0,r.splice(i,1);let l=r.slice(0);l[i]="**",t.push(l),i--}if(!this.preserveMultipleSlashes){for(let o=1;on.length)}partsMatch(t,n,r=!1){let i=0,s=0,o=[],a="";for(;i=2&&(t=this.levelTwoFileOptimize(t)),n.includes(it.GLOBSTAR)?this.#t(t,n,r,i,s):this.#i(t,n,r,i,s)}#t(t,n,r,i,s){let o=n.indexOf(it.GLOBSTAR,s),a=n.lastIndexOf(it.GLOBSTAR),[c,u,l]=r?[n.slice(s,o),n.slice(o+1),[]]:[n.slice(s,o),n.slice(o+1,a),n.slice(a+1)];if(c.length){let E=t.slice(i,i+c.length);if(!this.#i(E,c,r,0,0))return!1;i+=c.length,s+=c.length}let d=0;if(l.length){if(l.length+i>t.length)return!1;let E=t.length-l.length;if(this.#i(t,l,r,E,0))d=l.length;else{if(t[t.length-1]!==""||i+l.length===t.length||(E--,!this.#i(t,l,r,E,0)))return!1;d=l.length+1}}if(!u.length){let E=!!d;for(let S=i;S{let u=c.map(d=>{if(d instanceof RegExp)for(let f of d.flags.split(""))i.add(f);return typeof d=="string"?JXt(d):d===it.GLOBSTAR?it.GLOBSTAR:d._src});u.forEach((d,f)=>{let p=u[f+1],h=u[f-1];d!==it.GLOBSTAR||h===it.GLOBSTAR||(h===void 0?p!==void 0&&p!==it.GLOBSTAR?u[f+1]="(?:\\/|"+r+"\\/)?"+p:u[f]=r:p===void 0?u[f-1]=h+"(?:\\/|\\/"+r+")?":p!==it.GLOBSTAR&&(u[f-1]=h+"(?:\\/|\\/"+r+"\\/)"+p,u[f+1]=it.GLOBSTAR))});let l=u.filter(d=>d!==it.GLOBSTAR);if(this.partial&&l.length>=1){let d=[];for(let f=1;f<=l.length;f++)d.push(l.slice(0,f).join("/"));return"(?:"+d.join("|")+")"}return l.join("/")}).join("|"),[o,a]=t.length>1?["(?:",")"]:["",""];s="^"+o+s+a+"$",this.partial&&(s="^(?:\\/|"+o+s.slice(1,-1)+a+")$"),this.negate&&(s="^(?!"+s+").+$");try{this.regexp=new RegExp(s,[...i].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,n=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&n)return!0;let r=this.options;this.isWindows&&(t=t.split("\\").join("/"));let i=this.slashSplit(t);this.debug(this.pattern,"split",i);let s=this.set;this.debug(this.pattern,"set",s);let o=i[i.length-1];if(!o)for(let a=i.length-2;!o&&a>=0;a--)o=i[a];for(let a of s){let c=i;if(r.matchBase&&a.length===1&&(c=[o]),this.matchOne(c,a,n))return r.flipNegate?!0:!this.negate}return r.flipNegate?!1:this.negate}static defaults(t){return it.minimatch.defaults(t).Minimatch}};it.Minimatch=$b;var XXt=Wee();Object.defineProperty(it,"AST",{enumerable:!0,get:function(){return XXt.AST}});var QXt=Kee();Object.defineProperty(it,"escape",{enumerable:!0,get:function(){return QXt.escape}});var $Xt=NB();Object.defineProperty(it,"unescape",{enumerable:!0,get:function(){return $Xt.unescape}});it.minimatch.AST=dBe.AST;it.minimatch.Minimatch=$b;it.minimatch.escape=bXt.escape;it.minimatch.unescape=_Xt.unescape});var TBe=w((cMr,Jee)=>{"use strict";var gBe=Z("node:diagnostics_channel"),{context:FB,trace:Zee,SpanStatusCode:jB,propagation:Yee,diag:eQt}=(Ce(),ke(Ye)),{getRPCMetadata:tQt,RPCType:nQt}=fr(),{ATTR_HTTP_ROUTE:HB,ATTR_HTTP_RESPONSE_STATUS_CODE:yBe,ATTR_HTTP_REQUEST_METHOD:rQt,ATTR_URL_PATH:iQt}=(Nn(),ke(Mr)),{InstrumentationBase:sQt}=Vqe(),{version:oQt,name:SBe}=Wqe(),aQt=">=4.0.0 <6",EBe=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend","onResponse","onError"],fi={HOOK_NAME:"hook.name",FASTIFY_TYPE:"fastify.type",HOOK_CALLBACK_NAME:"hook.callback.name",ROOT:"fastify.root"},Xy={ROUTE:"route-hook",INSTANCE:"hook",HANDLER:"request-handler"},Im="anonymous",Qy=Symbol("fastify otel instance"),$y=Symbol("fastify otel request spans"),WN=Symbol("fastify otel request context"),bBe=Symbol("fastify otel addhook original"),_Be=Symbol("fastify otel setnotfound original"),KN=Symbol("fastify otel ignore path"),ZN=Symbol("fastify otel record exceptions"),qB=class extends sQt{logger=null;_requestHook=null;_lifecycleHook=null;constructor(t){if(super(SBe,oQt,t),this.logger=eQt.createComponentLogger({namespace:SBe}),this[KN]=null,this[ZN]=!0,t?.recordExceptions!=null){if(typeof t.recordExceptions!="boolean")throw new TypeError("recordExceptions must be a boolean");this[ZN]=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[KN]=i=>typeof n=="function"?n(i):(r==null&&(r=mBe().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)},gBe.subscribe("fastify.initialization",this._handleInitialization)),super.enable()}disable(){return this._handleInitialization&&(gBe.unsubscribe("fastify.initialization",this._handleInitialization),this._handleInitialization=void 0),super.disable()}init(){return[]}plugin(){let t=this;return n[Symbol.for("skip-override")]=!0,n[Symbol.for("fastify.display-name")]="@fastify/otel",n[Symbol.for("plugin-meta")]={fastify:aQt,name:"@fastify/otel"},n;function n(r,i,s){r.decorate(Qy,t),r.decorate(bBe,r.addHook),r.decorate(_Be,r.setNotFoundHandler),r.decorateRequest("opentelemetry",function(){let p=this[WN],h=this[$y];return{enabled:this.routeOptions.config?.otel!==!1,span:h,tracer:t.tracer,context:p,inject:(m,y)=>Yee.inject(p,m,y),extract:(m,y)=>Yee.extract(p,m,y)}}),r.decorateRequest($y,null),r.decorateRequest(WN,null),r.addHook("onRoute",function(p){if(t[KN]?.(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 EBe)if(p[h]!=null){let m=p[h];if(typeof m=="function")p[h]=d(m,h,{[fi.HOOK_NAME]:`${this.pluginName} - route -> ${h}`,[fi.FASTIFY_TYPE]:Xy.ROUTE,[HB]: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]:Xy.ROUTE,[HB]: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]:Xy.HANDLER,[HB]:p.url,[fi.HOOK_CALLBACK_NAME]:p.handler.name.length>0?p.handler.name:Im})}),r.addHook("onRequest",function(p,h,m){if(this[Qy].isEnabled()===!1||p.routeOptions.config?.otel===!1)return m();if(this[Qy][KN]?.({url:p.url,method:p.method})===!0)return this[Qy].logger.debug(`Ignoring request ${p.method} ${p.url} because it matches the ignore path`),m();let y=FB.active();Zee.getSpan(y)==null&&(y=Yee.extract(y,p.headers));let g=tQt(y);p.routeOptions.url!=null&&g?.type===nQt.HTTP&&(g.route=p.routeOptions.url);let E={[fi.ROOT]:"@fastify/otel",[rQt]:p.method,[iQt]:p.url};p.routeOptions.url!=null&&(E[HB]=p.routeOptions.url);let S=this[Qy].tracer.startSpan("request",{attributes:E},y);try{this[Qy]._requestHook?.(S,p)}catch(b){this[Qy].logger.error({err:b},"requestHook threw")}p[WN]=Zee.setSpan(y,S),p[$y]=S,FB.with(p[WN],()=>{m()})}),r.addHook("onResponse",function(p,h,m){let y=p[$y];y!=null&&(y.setAttributes({[yBe]:h.statusCode}),y.end()),p[$y]=null,m()}),r.addHook=c,r.setNotFoundHandler=u,s();function o(f,p,h,m){let y=f[$y];y!=null&&(p.statusCode>=500&&y.setStatus({code:jB.ERROR}),y.setAttributes({[yBe]:p.statusCode}),y.end()),f[$y]=null,m(null,h)}function a(f,p,h,m){let y=f[$y];y!=null&&(y.setStatus({code:jB.ERROR,message:h.message}),t[ZN]!==!1&&y.recordException(h)),m()}function c(f,p){let h=this[bBe];return EBe.includes(f)?h.call(this,f,d(p,f,{[fi.HOOK_NAME]:`${this.pluginName} - ${f}`,[fi.FASTIFY_TYPE]:Xy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:Im})):h.call(this,f,p)}function u(f,p){let h=this[_Be];typeof f=="function"?(p=d(f,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:Xy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.name?.length>0?f.name:Im}),h.call(this,p)):(f.preValidation!=null&&(f.preValidation=d(f.preValidation,"notFoundHandler - preValidation",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler - preValidation`,[fi.FASTIFY_TYPE]:Xy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preValidation.name?.length>0?f.preValidation.name:Im})),f.preHandler!=null&&(f.preHandler=d(f.preHandler,"notFoundHandler - preHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler - preHandler`,[fi.FASTIFY_TYPE]:Xy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preHandler.name?.length>0?f.preHandler.name:Im})),p=d(p,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:Xy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:Im}),h.call(this,f,p))}function l(f){for(let p of f)if(p?.routeOptions&&p.url&&p.method)return p;return null}function d(f,p,h={}){return function(...y){let g=this[Qy],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[KN]?.({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[WN]??FB.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 FB.with(Zee.setSpan(S,_),function(){try{let T=f.call(this,...y);return typeof T?.then=="function"?T.then(A=>(_.end(),A),A=>(_.setStatus({code:jB.ERROR,message:A.message}),g[ZN]!==!1&&_.recordException(A),_.end(),Promise.reject(A))):(_.end(),T)}catch(T){throw _.setStatus({code:jB.ERROR,message:T.message}),g[ZN]!==!1&&_.recordException(T),_.end(),T}},this)}}}}};Jee.exports=qB;Jee.exports.FastifyOtelInstrumentation=qB});var xm,YN,JN,vBe=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})(YN||(YN={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request handler";e.REQUEST_HANDLER=n})(JN||(JN={}))});var XN,ABe=v(()=>{XN=Symbol("opentelemetry.instrumentation.fastify.request_active_span")});function Xee(e,t,n,r={}){let i=t.startSpan(n,{attributes:r}),s=e[XN]||[];return s.push(i),Object.defineProperty(e,XN,{enumerable:!1,configurable:!0,value:s}),i}function BB(e,t){let n=e[XN]||[];n.length&&(n.forEach(r=>{t&&(r.setStatus({code:as.ERROR,message:t.message}),r.recordException(t)),r.end()}),delete e[XN])}function wBe(e,t,n){let r,i;try{i=e(),RBe(i)&&i.then(s=>t(void 0,s),s=>t(s))}catch(s){r=s}finally{if(!RBe(i)&&(t(r,i),r))throw r;return i}}function RBe(e){return typeof e=="object"&&e&&typeof Object.getOwnPropertyDescriptor(e,"then")?.value=="function"||!1}var kBe=v(()=>{Ce();ABe()});function dQt(){let e=ct();e&&e.on("spanStart",t=>{xBe(t)})}function xBe(e){let t=vt(e).data,n=t["fastify.type"];if(t[Gt]||!n)return;e.setAttributes({[Rt]:"auto.http.otel.fastify",[Gt]:`${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 zB,e_,cQt,uQt,IBe,lQt,GB,OBe=v(()=>{Ce();zB=Se(fr(),1),e_=Se(Jt(),1);Nn();st();vBe();kBe();cQt="0.1.0",uQt="@sentry/instrumentation-fastify-v3",IBe="anonymous",lQt=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]),GB=class extends e_.InstrumentationBase{constructor(t={}){super(uQt,cQt,t)}init(){return[new e_.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,zB.getRPCMetadata)(Ve.active()),c=o.routeOptions?o.routeOptions.url:r.routerPath;c&&a?.type===zB.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||IBe,c=`${JN.MIDDLEWARE} - ${a}`,u=o[1],l=Xee(u,s.tracer,c,{[xm.FASTIFY_TYPE]:YN.MIDDLEWARE,[xm.PLUGIN_NAME]:t,[xm.HOOK_NAME]:n}),d=i&&o[o.length-1];return d&&(o[o.length-1]=function(...f){BB(u),d.apply(this,f)}),Ve.with(jt.setSpan(Ve.active(),l),()=>wBe(()=>r.apply(this,o),f=>{f instanceof Error&&(l.setStatus({code:as.ERROR,message:f.message}),l.recordException(f)),i||BB(u)}))}}_wrapAddHook(){let t=this;return this._diag.debug("Patching fastify server.addHook function"),function(n){return function(...i){let s=i[0],o=i[1],a=this.pluginName;if(!lQt.has(s))return n.apply(this,i);let c=typeof i[i.length-1]=="function"&&o.constructor.name!=="AsyncFunction";return n.apply(this,[s,t._wrapHandler(a,s,o,c)])}}}_patchConstructor(t){let n=this;function r(...i){let s=t.fastify.apply(this,i);return s.addHook("onRequest",n._hookOnRequest()),s.addHook("preHandler",n._hookPreHandler()),dQt(),n._wrap(s,"addHook",n._wrapAddHook()),s}return t.errorCodes!==void 0&&(r.errorCodes=t.errorCodes),r.fastify=r,r.default=r,r}_patchSend(){let t=this;return this._diag.debug("Patching fastify reply.send function"),function(r){return function(...s){let o=s[0];return t.isEnabled()?(0,e_.safeExecuteInTheMiddle)(()=>r.apply(this,s),a=>{!a&&o instanceof Error&&(a=o),BB(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=`${JN.REQUEST_HANDLER} - ${c||this.pluginName||IBe}`,l={[xm.PLUGIN_NAME]:this.pluginName,[xm.FASTIFY_TYPE]:YN.REQUEST_HANDLER,[iJ]:o.routeOptions?o.routeOptions.url:r.routerPath};c&&(l[xm.FASTIFY_NAME]=c);let d=Xee(i,t.tracer,u,l);xBe(d);let{requestHook:f}=t.getConfig();return f&&(0,e_.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 Qee from"node:diagnostics_channel";function fQt(){let e=ct();if(e)return e.getIntegrationByName(VB)}function NBe(e,t,n,r){let i=fQt()?.getShouldHandleError()||DBe;if(r==="diagnostics-channel"&&(this.diagnosticsChannelExists=!0),this.diagnosticsChannelExists&&r==="onError-hook"){So&&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 DBe(e,t,n){let r=n.statusCode;return r>=500||r<=299}function UBe(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[Gt]||!o&&!a&&!s)return;let c=s?"hook":o?"middleware":a?"request_handler":"";e.setAttributes({[Rt]:"auto.http.otel.fastify",[Gt]:`${c}.fastify`});let u=r["fastify.name"]||r["plugin.name"]||r["hook.name"];if(typeof u=="string"){let l=u.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");e.updateName(l)}}function hQt(){let e=ct();e&&e.on("spanStart",t=>{UBe(t)})}function mQt(e){e.addHook("onRequest",async(t,n)=>{if(t.opentelemetry){let{span:s}=t.opentelemetry();s&&UBe(s)}let r=t.routeOptions?.url,i=t.method||"GET";vn().setTransactionName(`${i} ${r}`)})}var PBe,VB,CBe,MBe,pQt,LBe,FBe=v(()=>{PBe=Se(TBe(),1);st();sr();Jb();OBe();VB="Fastify",CBe=rt(`${VB}.v3`,()=>new GB);MBe=rt(`${VB}.v5`,()=>{let e=new PBe.FastifyOtelInstrumentation,t=e.plugin();return Qee.subscribe("fastify.initialization",n=>{let r=n.fastify;r?.register(t).after(i=>{i?So&&Y.error("Failed to setup Fastify instrumentation",i):(hQt(),r&&mQt(r))})}),Qee.subscribe("tracing:fastify.request.handler:error",n=>{let{error:r,request:i,reply:s}=n;NBe.call(NBe,r,i,s,"diagnostics-channel")}),e}),pQt=(({shouldHandleError:e})=>{let t;return{name:VB,setupOnce(){t=e||DBe,CBe(),MBe()},getShouldHandleError(){return t},setShouldHandleError(n){t=n}}}),LBe=(e={})=>pQt(e)});var $ee=w(ff=>{"use strict";Object.defineProperty(ff,"__esModule",{value:!0});ff.SpanNames=ff.TokenKind=ff.AllowedOperationTypes=void 0;var gQt;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})(gQt=ff.AllowedOperationTypes||(ff.AllowedOperationTypes={}));var yQt;(function(e){e.SOF="",e.EOF="",e.BANG="!",e.DOLLAR="$",e.AMP="&",e.PAREN_L="(",e.PAREN_R=")",e.SPREAD="...",e.COLON=":",e.EQUALS="=",e.AT="@",e.BRACKET_L="[",e.BRACKET_R="]",e.BRACE_L="{",e.PIPE="|",e.BRACE_R="}",e.NAME="Name",e.INT="Int",e.FLOAT="Float",e.STRING="String",e.BLOCK_STRING="BlockString",e.COMMENT="Comment"})(yQt=ff.TokenKind||(ff.TokenKind={}));var SQt;(function(e){e.EXECUTE="graphql.execute",e.PARSE="graphql.parse",e.RESOLVE="graphql.resolve",e.VALIDATE="graphql.validate",e.SCHEMA_VALIDATE="graphql.validateSchema",e.SCHEMA_PARSE="graphql.parseSchema"})(SQt=ff.SpanNames||(ff.SpanNames={}))});var ete=w(QN=>{"use strict";Object.defineProperty(QN,"__esModule",{value:!0});QN.AttributeNames=void 0;var EQt;(function(e){e.SOURCE="graphql.source",e.FIELD_NAME="graphql.field.name",e.FIELD_PATH="graphql.field.path",e.FIELD_TYPE="graphql.field.type",e.PARENT_NAME="graphql.parent.name",e.OPERATION_TYPE="graphql.operation.type",e.OPERATION_NAME="graphql.operation.name",e.VARIABLES="graphql.variables.",e.ERROR_VALIDATION_NAME="graphql.validation.error"})(EQt=QN.AttributeNames||(QN.AttributeNames={}))});var WB=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 jBe=w(KB=>{"use strict";Object.defineProperty(KB,"__esModule",{value:!0});KB.OPERATION_NOT_SUPPORTED=void 0;var IMr=WB();KB.OPERATION_NOT_SUPPORTED="Operation$operationName$not supported"});var $Be=w(Eo=>{"use strict";Object.defineProperty(Eo,"__esModule",{value:!0});Eo.wrapFieldResolver=Eo.wrapFields=Eo.getSourceFromLocation=Eo.getOperation=Eo.endSpan=Eo.addSpanSource=Eo.addInputVariableAttributes=Eo.isPromise=void 0;var qR=(Ce(),ke(Ye)),eS=$ee(),t_=ete(),Om=WB(),HBe=Object.values(eS.AllowedOperationTypes),bQt=e=>typeof e?.then=="function";Eo.isPromise=bQt;var _Qt=e=>typeof e=="object"&&e!==null;function tte(e,t,n){Array.isArray(n)?n.forEach((r,i)=>{tte(e,`${t}.${i}`,r)}):n instanceof Object?Object.entries(n).forEach(([r,i])=>{tte(e,`${t}.${r}`,i)}):e.setAttribute(`${t_.AttributeNames.VARIABLES}${String(t)}`,n)}function TQt(e,t){Object.entries(t).forEach(([n,r])=>{tte(e,n,r)})}Eo.addInputVariableAttributes=TQt;function zBe(e,t,n,r,i){let s=YBe(t,n,r,i);e.setAttribute(t_.AttributeNames.SOURCE,s)}Eo.addSpanSource=zBe;function vQt(e,t,n,r,i){let s=VBe(n,i);if(s)return{field:s,spanAdded:!1};let a=t().flatResolveSpans?KBe(n):WBe(n,i);return s={span:AQt(e,t,n,r,i,a)},kQt(n,i,s),{field:s,spanAdded:!0}}function AQt(e,t,n,r,i,s){let o={[t_.AttributeNames.FIELD_NAME]:r.fieldName,[t_.AttributeNames.FIELD_PATH]:i.join("."),[t_.AttributeNames.FIELD_TYPE]:r.returnType.toString(),[t_.AttributeNames.PARENT_NAME]:r.parentType.name},a=e.startSpan(`${eS.SpanNames.RESOLVE} ${o[t_.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&&zBe(a,c.loc,t().allowValues,u.loc?.start,u.loc?.end),a}function RQt(e,t){t&&e.recordException(t),e.end()}Eo.endSpan=RQt;function wQt(e,t){if(!(!e||!Array.isArray(e.definitions)))return t?e.definitions.filter(n=>HBe.indexOf(n?.operation)!==-1).find(n=>t===n?.name?.value):e.definitions.find(n=>HBe.indexOf(n?.operation)!==-1)}Eo.getOperation=wQt;function kQt(e,t,n){return e[Om.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]=n}function VBe(e,t){return e[Om.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]}function WBe(e,t){for(let n=t.length-1;n>0;n--){let r=VBe(e,t.slice(0,n));if(r)return r.span}return KBe(e)}function KBe(e){return e[Om.OTEL_GRAPHQL_DATA_SYMBOL].span}function IQt(e,t){let n=[],r=t;for(;r;){let i=r.key;e&&typeof i=="number"&&(i="*"),n.push(String(i)),r=r.prev}return n.reverse()}function xQt(e){return ZBe(` -`,e)}function qBe(e){return ZBe(" ",e)}function ZBe(e,t){let n="";for(let r=0;ro){a=a.next,c=a?.line;continue}let u=a.value||a.kind,l="";!t&&OQt.indexOf(a.kind)>=0&&(u="*"),a.kind===eS.TokenKind.STRING&&(u=`"${u}"`),a.kind===eS.TokenKind.EOF&&(u=""),a.line>c?(i+=xQt(a.line-c),c=a.line,l=qBe(a.column-1)):a.line===a.prev?.line&&(l=qBe(a.start-(a.prev?.end||0))),i+=l+u,a&&(a=a.next)}}return i}Eo.getSourceFromLocation=YBe;function JBe(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=QBe(t,n,s.resolve)),s.type)){let o=XBe(s.type);for(let a of o)JBe(a,t,n)}})}Eo.wrapFields=JBe;function XBe(e){return"ofType"in e?XBe(e.ofType):NQt(e)?e.getTypes():PQt(e)?[e]:[]}function NQt(e){return"getTypes"in e&&typeof e.getTypes=="function"}function PQt(e){return"getFields"in e&&typeof e.getFields=="function"}var BBe=(e,t,n)=>{n&&(e.recordException(t),e.setStatus({code:qR.SpanStatusCode.ERROR,message:t.message}),e.end())},GBe=(e,t)=>{t&&e.end()};function QBe(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&&(_Qt(s)||typeof s=="function")&&typeof s[c.fieldName]!="function")return n.call(this,s,o,a,c);if(!a[Om.OTEL_GRAPHQL_DATA_SYMBOL])return n.call(this,s,o,a,c);let l=IQt(u.mergeItems,c&&c.path),d=l.filter(h=>typeof h=="string").length,f,p=!1;if(u.depth>=0&&u.depth{try{let h=n.call(this,s,o,a,c);return(0,Eo.isPromise)(h)?h.then(m=>(GBe(f,p),m),m=>{throw BBe(f,m,p),m}):(GBe(f,p),h)}catch(h){throw BBe(f,h,p),h}})}return i[Om.OTEL_PATCHED_SYMBOL]=!0,i}Eo.wrapFieldResolver=QBe});var eGe=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 rGe=w(JB=>{"use strict";Object.defineProperty(JB,"__esModule",{value:!0});JB.GraphQLInstrumentation=void 0;var Nm=(Ce(),ke(Ye)),Ql=Jt(),$N=$ee(),ZB=ete(),nte=WB(),CQt=jBe(),Xa=$Be(),tGe=eGe(),nGe={mergeItems:!1,depth:-1,allowValues:!1,ignoreResolveSpans:!1},YB=[">=14.0.0 <17"],rte=class extends Ql.InstrumentationBase{constructor(t={}){super(tGe.PACKAGE_NAME,tGe.PACKAGE_VERSION,{...nGe,...t})}setConfig(t={}){super.setConfig({...nGe,...t})}init(){let t=new Ql.InstrumentationNodeModuleDefinition("graphql",YB);return t.files.push(this._addPatchingExecute()),t.files.push(this._addPatchingParser()),t.files.push(this._addPatchingValidate()),t}_addPatchingExecute(){return new Ql.InstrumentationNodeModuleFile("graphql/execution/execute.js",YB,t=>((0,Ql.isWrapped)(t.execute)&&this._unwrap(t,"execute"),this._wrap(t,"execute",this._patchExecute(t.defaultFieldResolver)),t),t=>{t&&this._unwrap(t,"execute")})}_addPatchingParser(){return new Ql.InstrumentationNodeModuleFile("graphql/language/parser.js",YB,t=>((0,Ql.isWrapped)(t.parse)&&this._unwrap(t,"parse"),this._wrap(t,"parse",this._patchParse()),t),t=>{t&&this._unwrap(t,"parse")})}_addPatchingValidate(){return new Ql.InstrumentationNodeModuleFile("graphql/validation/validate.js",YB,t=>((0,Ql.isWrapped)(t.validate)&&this._unwrap(t,"validate"),this._wrap(t,"validate",this._patchValidate()),t),t=>{t&&this._unwrap(t,"validate")})}_patchExecute(t){let n=this;return function(i){return function(){let o;if(arguments.length>=2){let u=arguments;o=n._wrapExecuteArgs(u[0],u[1],u[2],u[3],u[4],u[5],u[6],u[7],t)}else{let u=arguments[0];o=n._wrapExecuteArgs(u.schema,u.document,u.rootValue,u.contextValue,u.variableValues,u.operationName,u.fieldResolver,u.typeResolver,t)}let a=(0,Xa.getOperation)(o.document,o.operationName),c=n._createExecuteSpan(a,o);return o.contextValue[nte.OTEL_GRAPHQL_DATA_SYMBOL]={source:o.document?o.document||o.document[nte.OTEL_GRAPHQL_DATA_SYMBOL]:void 0,span:c,fields:{}},Nm.context.with(Nm.trace.setSpan(Nm.context.active(),c),()=>(0,Ql.safeExecuteInTheMiddle)(()=>i.apply(this,[o]),(u,l)=>{n._handleExecutionResult(c,u,l)}))}}}_handleExecutionResult(t,n,r){let i=this.getConfig();if(r===void 0||n){(0,Xa.endSpan)(t,n);return}if((0,Xa.isPromise)(r))r.then(s=>{if(typeof i.responseHook!="function"){(0,Xa.endSpan)(t);return}this._executeResponseHook(t,s)},s=>{(0,Xa.endSpan)(t,s)});else{if(typeof i.responseHook!="function"){(0,Xa.endSpan)(t);return}this._executeResponseHook(t,r)}}_executeResponseHook(t,n){let{responseHook:r}=this.getConfig();r&&(0,Ql.safeExecuteInTheMiddle)(()=>{r(t,n)},i=>{i&&this._diag.error("Error running response hook",i),(0,Xa.endSpan)(t,void 0)},!0)}_patchParse(){let t=this;return function(r){return function(s,o){return t._parse(this,r,s,o)}}}_patchValidate(){let t=this;return function(r){return function(s,o,a,c,u){return t._validate(this,r,s,o,a,u,c)}}}_parse(t,n,r,i){let s=this.getConfig(),o=this.tracer.startSpan($N.SpanNames.PARSE);return Nm.context.with(Nm.trace.setSpan(Nm.context.active(),o),()=>(0,Ql.safeExecuteInTheMiddle)(()=>n.call(t,r,i),(a,c)=>{c&&((0,Xa.getOperation)(c)?c.loc&&(0,Xa.addSpanSource)(o,c.loc,s.allowValues):o.updateName($N.SpanNames.SCHEMA_PARSE)),(0,Xa.endSpan)(o,a)}))}_validate(t,n,r,i,s,o,a){let c=this.tracer.startSpan($N.SpanNames.VALIDATE,{});return Nm.context.with(Nm.trace.setSpan(Nm.context.active(),c),()=>(0,Ql.safeExecuteInTheMiddle)(()=>n.call(t,r,i,s,a,o),(u,l)=>{i.loc||c.updateName($N.SpanNames.SCHEMA_VALIDATE),l&&l.length&&c.recordException({name:ZB.AttributeNames.ERROR_VALIDATION_NAME,message:JSON.stringify(l)}),(0,Xa.endSpan)(c,u)}))}_createExecuteSpan(t,n){let r=this.getConfig(),i=this.tracer.startSpan($N.SpanNames.EXECUTE,{});if(t){let{operation:s,name:o}=t;i.setAttribute(ZB.AttributeNames.OPERATION_TYPE,s);let a=o?.value;a?(i.setAttribute(ZB.AttributeNames.OPERATION_NAME,a),i.updateName(`${s} ${a}`)):i.updateName(s)}else{let s=" ";n.operationName&&(s=` "${n.operationName}" `),s=CQt.OPERATION_NOT_SUPPORTED.replace("$operationName$",s),i.setAttribute(ZB.AttributeNames.OPERATION_NAME,s)}return n.document?.loc&&(0,Xa.addSpanSource)(i,n.document.loc,r.allowValues),n.variableValues&&r.allowValues&&(0,Xa.addInputVariableAttributes)(i,n.variableValues),i}_wrapExecuteArgs(t,n,r,i,s,o,a,c,u){if(i||(i={}),i[nte.OTEL_GRAPHQL_DATA_SYMBOL]||this.getConfig().ignoreResolveSpans)return{schema:t,document:n,rootValue:r,contextValue:i,variableValues:s,operationName:o,fieldResolver:a,typeResolver:c};let l=a==null,d=a??u;return a=(0,Xa.wrapFieldResolver)(this.tracer,()=>this.getConfig(),d,l),t&&((0,Xa.wrapFields)(t.getQueryType(),this.tracer,()=>this.getConfig()),(0,Xa.wrapFields)(t.getMutationType(),this.tracer,()=>this.getConfig())),{schema:t,document:n,rootValue:r,contextValue:i,variableValues:s,operationName:o,fieldResolver:a,typeResolver:c}}};JB.GraphQLInstrumentation=rte});var iGe=w(XB=>{"use strict";Object.defineProperty(XB,"__esModule",{value:!0});XB.GraphQLInstrumentation=void 0;var MQt=rGe();Object.defineProperty(XB,"GraphQLInstrumentation",{enumerable:!0,get:function(){return MQt.GraphQLInstrumentation}})});function uGe(e){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...e}}function DQt(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 sGe,oGe,aGe,LQt,cGe,lGe=v(()=>{Ce();sGe=Se(iGe(),1);st();sr();wR();oGe="Graphql",aGe=rt(oGe,sGe.GraphQLInstrumentation,e=>{let t=uGe(e);return{...t,responseHook(n,r){Lr(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"]} (${DQt(l)})`)}}}}),LQt=((e={})=>({name:oGe,setupOnce(){aGe(uGe(e))}})),cGe=LQt});var dGe=w(QB=>{"use strict";Object.defineProperty(QB,"__esModule",{value:!0});QB.EVENT_LISTENERS_SET=void 0;QB.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.kafkajs.eventListenersSet")});var fGe=w($B=>{"use strict";Object.defineProperty($B,"__esModule",{value:!0});$B.bufferTextMapGetter=void 0;$B.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 pGe=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 hGe=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 bGe=w(tG=>{"use strict";Object.defineProperty(tG,"__esModule",{value:!0});tG.KafkaJsInstrumentation=void 0;var Dr=(Ce(),ke(Ye)),$l=Jt(),zR=(Nn(),ke(Mr)),mGe=dGe(),gGe=fGe(),ot=pGe(),yGe=hGe();function eG(e,t,n){return r=>{e.add(t,{...n,...r?{[zR.ATTR_ERROR_TYPE]:r}:{}})}}function SGe(e,t,n){return r=>{e.record((Date.now()-t)/1e3,{...n,...r?{[zR.ATTR_ERROR_TYPE]:r}:{}})}}var EGe=[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10],ite=class extends $l.InstrumentationBase{constructor(t={}){super(yGe.PACKAGE_NAME,yGe.PACKAGE_VERSION,t)}_updateMetricInstruments(){this._clientDuration=this.meter.createHistogram(ot.METRIC_MESSAGING_CLIENT_OPERATION_DURATION,{advice:{explicitBucketBoundaries:EGe}}),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:EGe}})}init(){let t=r=>{(0,$l.isWrapped)(r?.Kafka?.prototype.producer)&&this._unwrap(r.Kafka.prototype,"producer"),(0,$l.isWrapped)(r?.Kafka?.prototype.consumer)&&this._unwrap(r.Kafka.prototype,"consumer")};return new $l.InstrumentationNodeModuleDefinition("kafkajs",[">=0.3.0 <3"],r=>(t(r),this._wrap(r?.Kafka?.prototype,"producer",this._getProducerPatch()),this._wrap(r?.Kafka?.prototype,"consumer",this._getConsumerPatch()),r),t)}_getConsumerPatch(){let t=this;return n=>function(...i){let s=n.apply(this,i);return(0,$l.isWrapped)(s.run)&&t._unwrap(s,"run"),t._wrap(s,"run",t._getConsumerRunPatch()),t._setKafkaEventListeners(s),s}}_setKafkaEventListeners(t){t[mGe.EVENT_LISTENERS_SET]||(t.events?.REQUEST&&t.on(t.events.REQUEST,this._recordClientDurationMetric.bind(this)),t[mGe.EVENT_LISTENERS_SET]=!0)}_recordClientDurationMetric(t){let[n,r]=t.payload.broker.split(":");this._clientDuration.record(t.payload.duration/1e3,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:`${t.payload.apiName}`,[zR.ATTR_SERVER_ADDRESS]:n,[zR.ATTR_SERVER_PORT]:Number.parseInt(r,10)})}_getProducerPatch(){let t=this;return n=>function(...i){let s=n.apply(this,i);return(0,$l.isWrapped)(s.sendBatch)&&t._unwrap(s,"sendBatch"),t._wrap(s,"sendBatch",t._getSendBatchPatch()),(0,$l.isWrapped)(s.send)&&t._unwrap(s,"send"),t._wrap(s,"send",t._getSendPatch()),(0,$l.isWrapped)(s.transaction)&&t._unwrap(s,"transaction"),t._wrap(s,"transaction",t._getProducerTransactionPatch()),t._setKafkaEventListeners(s),s}}_getConsumerRunPatch(){let t=this;return n=>function(...i){let s=i[0];return s?.eachMessage&&((0,$l.isWrapped)(s.eachMessage)&&t._unwrap(s,"eachMessage"),t._wrap(s,"eachMessage",t._getConsumerEachMessagePatch())),s?.eachBatch&&((0,$l.isWrapped)(s.eachBatch)&&t._unwrap(s,"eachBatch"),t._wrap(s,"eachBatch",t._getConsumerEachBatchPatch())),n.call(this,s)}}_getConsumerEachMessagePatch(){let t=this;return n=>function(...i){let s=i[0],o=Dr.propagation.extract(Dr.ROOT_CONTEXT,s.message.headers,gGe.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=[SGe(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)}),eG(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=Dr.context.with(Dr.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:Dr.ROOT_CONTEXT,attributes:{[ot.ATTR_MESSAGING_BATCH_MESSAGE_COUNT]:s.batch.messages.length,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)}});return Dr.context.with(Dr.trace.setSpan(Dr.context.active(),o),()=>{let a=Date.now(),c=[],u=[eG(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=Dr.propagation.extract(Dr.ROOT_CONTEXT,d.headers,gGe.bufferTextMapGetter),p=Dr.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(SGe(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 Dr.context.with(Dr.trace.setSpan(Dr.context.active(),s),()=>t._getSendPatch()(c).apply(this,p).catch(m=>{throw s.setStatus({code:Dr.SpanStatusCode.ERROR,message:m?.message}),s.recordException(m),m}))};let u=a.sendBatch;a.sendBatch=function(...p){return Dr.context.with(Dr.trace.setSpan(Dr.context.active(),s),()=>t._getSendBatchPatch()(u).apply(this,p).catch(m=>{throw s.setStatus({code:Dr.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:Dr.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:Dr.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(eG(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=>eG(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:Dr.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?Dr.SpanKind.CLIENT:Dr.SpanKind.CONSUMER,attributes:{...o,[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_DESTINATION_NAME]:t,[ot.ATTR_MESSAGING_OPERATION_TYPE]:r,[ot.ATTR_MESSAGING_OPERATION_NAME]:a,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]:n?.key?String(n.key):void 0,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:n?.key&&n.value===null?!0:void 0,[ot.ATTR_MESSAGING_KAFKA_OFFSET]:n?.offset},links:s?[s]:[]},i),{consumerHook:u}=this.getConfig();return u&&n&&(0,$l.safeExecuteInTheMiddle)(()=>u(c,{topic:t,message:n}),l=>{l&&this._diag.error("consumerHook error",l)},!0),c}_startProducerSpan(t,n){let r=this.tracer.startSpan(`send ${t}`,{kind:Dr.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??{},Dr.propagation.inject(Dr.trace.setSpan(Dr.context.active(),r),n.headers);let{producerHook:i}=this.getConfig();return i&&(0,$l.safeExecuteInTheMiddle)(()=>i(r,{topic:t,message:n}),s=>{s&&this._diag.error("producerHook error",s)},!0),r}};tG.KafkaJsInstrumentation=ite});var _Ge=w(nG=>{"use strict";Object.defineProperty(nG,"__esModule",{value:!0});nG.KafkaJsInstrumentation=void 0;var UQt=bGe();Object.defineProperty(nG,"KafkaJsInstrumentation",{enumerable:!0,get:function(){return UQt.KafkaJsInstrumentation}})});var TGe,vGe,AGe,FQt,RGe,wGe=v(()=>{TGe=Se(_Ge(),1);sr();vGe="Kafka",AGe=rt(vGe,()=>new TGe.KafkaJsInstrumentation({consumerHook(e){Lr(e,"auto.kafkajs.otel.consumer")},producerHook(e){Lr(e,"auto.kafkajs.otel.producer")}})),FQt=(()=>({name:vGe,setupOnce(){AGe()}})),RGe=FQt});var kGe=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 NGe=w(rG=>{"use strict";Object.defineProperty(rG,"__esModule",{value:!0});rG.LruMemoizerInstrumentation=void 0;var IGe=(Ce(),ke(Ye)),xGe=Jt(),OGe=kGe(),ste=class extends xGe.InstrumentationBase{constructor(t={}){super(OGe.PACKAGE_NAME,OGe.PACKAGE_VERSION,t)}init(){return[new xGe.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"?IGe.context.bind(IGe.context.active(),s):s;return i.push(o),r.apply(this,i)}};return n.sync=t.sync,n},void 0)]}};rG.LruMemoizerInstrumentation=ste});var PGe=w(iG=>{"use strict";Object.defineProperty(iG,"__esModule",{value:!0});iG.LruMemoizerInstrumentation=void 0;var jQt=NGe();Object.defineProperty(iG,"LruMemoizerInstrumentation",{enumerable:!0,get:function(){return jQt.LruMemoizerInstrumentation}})});var CGe,MGe,LGe,HQt,DGe,UGe=v(()=>{CGe=Se(PGe(),1);sr();MGe="LruMemoizer",LGe=rt(MGe,()=>new CGe.LruMemoizerInstrumentation),HQt=(()=>({name:MGe,setupOnce(){LGe()}})),DGe=HQt});var FGe=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 jGe=w(eP=>{"use strict";Object.defineProperty(eP,"__esModule",{value:!0});eP.MongodbCommandType=void 0;var qQt;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.AGGREGATE="aggregate",e.UNKNOWN="unknown"})(qQt=eP.MongodbCommandType||(eP.MongodbCommandType={}))});var HGe=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 GGe=w(sG=>{"use strict";Object.defineProperty(sG,"__esModule",{value:!0});sG.MongoDBInstrumentation=void 0;var Ki=(Ce(),ke(Ye)),jn=Jt(),Pm=(Nn(),ke(Mr)),pl=FGe(),n_=jGe(),qGe=HGe(),BGe={requireParentSpan:!0},ote=class e extends jn.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(qGe.PACKAGE_NAME,qGe.PACKAGE_VERSION,{...BGe,...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({...BGe,...t})}_updateMetricInstruments(){this._connectionsUsage=this.meter.createUpDownCounter(pl.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(t,n,r){this._connectionsUsage?.add(t,{"pool.name":n,state:r})}init(){let{v3PatchConnection:t,v3UnpatchConnection:n}=this._getV3ConnectionPatches(),{v4PatchConnect:r,v4UnpatchConnect:i}=this._getV4ConnectPatches(),{v4PatchConnectionCallback:s,v4PatchConnectionPromise:o,v4UnpatchConnection:a}=this._getV4ConnectionPatches(),{v4PatchConnectionPool:c,v4UnpatchConnectionPool:u}=this._getV4ConnectionPoolPatches(),{v4PatchSessions:l,v4UnpatchSessions:d}=this._getV4SessionsPatches();return[new jn.InstrumentationNodeModuleDefinition("mongodb",[">=3.3.0 <4"],void 0,void 0,[new jn.InstrumentationNodeModuleFile("mongodb/lib/core/wireprotocol/index.js",[">=3.3.0 <4"],t,n)]),new jn.InstrumentationNodeModuleDefinition("mongodb",[">=4.0.0 <8"],void 0,void 0,[new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=4.0.0 <6.4"],s,a),new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=6.4.0 <8"],o,a),new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection_pool.js",[">=4.0.0 <6.4"],c,u),new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connect.js",[">=4.0.0 <8"],r,i),new jn.InstrumentationNodeModuleFile("mongodb/lib/sessions.js",[">=4.0.0 <8"],l,d)])]}_getV3ConnectionPatches(){return{v3PatchConnection:t=>((0,jn.isWrapped)(t.insert)&&this._unwrap(t,"insert"),this._wrap(t,"insert",this._getV3PatchOperation("insert")),(0,jn.isWrapped)(t.remove)&&this._unwrap(t,"remove"),this._wrap(t,"remove",this._getV3PatchOperation("remove")),(0,jn.isWrapped)(t.update)&&this._unwrap(t,"update"),this._wrap(t,"update",this._getV3PatchOperation("update")),(0,jn.isWrapped)(t.command)&&this._unwrap(t,"command"),this._wrap(t,"command",this._getV3PatchCommand()),(0,jn.isWrapped)(t.query)&&this._unwrap(t,"query"),this._wrap(t,"query",this._getV3PatchFind()),(0,jn.isWrapped)(t.getMore)&&this._unwrap(t,"getMore"),this._wrap(t,"getMore",this._getV3PatchCursor()),t),v3UnpatchConnection:t=>{t!==void 0&&(this._unwrap(t,"insert"),this._unwrap(t,"remove"),this._unwrap(t,"update"),this._unwrap(t,"command"),this._unwrap(t,"query"),this._unwrap(t,"getMore"))}}}_getV4SessionsPatches(){return{v4PatchSessions:t=>((0,jn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),this._wrap(t.ServerSessionPool.prototype,"acquire",this._getV4AcquireCommand()),(0,jn.isWrapped)(t.release)&&this._unwrap(t,"release"),this._wrap(t.ServerSessionPool.prototype,"release",this._getV4ReleaseCommand()),t),v4UnpatchSessions:t=>{t!==void 0&&((0,jn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),(0,jn.isWrapped)(t.release)&&this._unwrap(t,"release"))}}}_getV4AcquireCommand(){let t=this;return n=>function(){let i=this.sessions.length,s=n.call(this),o=this.sessions.length;return i===o?t._connCountAdd(1,t._poolName,"used"):i-1===o&&(t._connCountAdd(-1,t._poolName,"idle"),t._connCountAdd(1,t._poolName,"used")),s}}_getV4ReleaseCommand(){let t=this;return n=>function(i){let s=n.call(this,i);return t._connCountAdd(-1,t._poolName,"used"),t._connCountAdd(1,t._poolName,"idle"),s}}_getV4ConnectionPoolPatches(){return{v4PatchConnectionPool:t=>{let n=t.ConnectionPool.prototype;return(0,jn.isWrapped)(n.checkOut)&&this._unwrap(n,"checkOut"),this._wrap(n,"checkOut",this._getV4ConnectionPoolCheckOut()),t},v4UnpatchConnectionPool:t=>{t!==void 0&&this._unwrap(t.ConnectionPool.prototype,"checkOut")}}}_getV4ConnectPatches(){return{v4PatchConnect:t=>((0,jn.isWrapped)(t.connect)&&this._unwrap(t,"connect"),this._wrap(t,"connect",this._getV4ConnectCommand()),t),v4UnpatchConnect:t=>{t!==void 0&&this._unwrap(t,"connect")}}}_getV4ConnectionPoolCheckOut(){return t=>function(r){let i=Ki.context.bind(Ki.context.active(),r);return t.call(this,i)}}_getV4ConnectCommand(){let t=this;return n=>function(i,s){if(n.length===1){let a=n.call(this,i);return a&&typeof a.then=="function"&&a.then(()=>t.setPoolName(i),()=>{}),a}let o=function(a,c){if(a||!c){s(a,c);return}t.setPoolName(i),s(a,c)};return n.call(this,i,o)}}_getV4ConnectionPatches(){return{v4PatchConnectionCallback:t=>((0,jn.isWrapped)(t.Connection.prototype.command)&&this._unwrap(t.Connection.prototype,"command"),this._wrap(t.Connection.prototype,"command",this._getV4PatchCommandCallback()),t),v4PatchConnectionPromise:t=>((0,jn.isWrapped)(t.Connection.prototype.command)&&this._unwrap(t.Connection.prototype,"command"),this._wrap(t.Connection.prototype,"command",this._getV4PatchCommandPromise()),t),v4UnpatchConnection:t=>{t!==void 0&&this._unwrap(t.Connection.prototype,"command")}}}_getV3PatchOperation(t){let n=this;return r=>function(s,o,a,c,u){let l=Ki.trace.getSpan(Ki.context.active()),d=n._checkSkipInstrumentation(l),f=typeof c=="function"?c:u;if(d||typeof f!="function"||typeof a!="object")return typeof c=="function"?r.call(this,s,o,a,c):r.call(this,s,o,a,c,u);let p=n._getV3SpanAttributes(o,s,a[0],t),h=n._spanNameFromAttrs(p),m=n.tracer.startSpan(h,{kind:Ki.SpanKind.CLIENT,attributes:p}),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===n_.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?n_.MongodbCommandType.CREATE_INDEXES:t.findandmodify!==void 0?n_.MongodbCommandType.FIND_AND_MODIFY:t.ismaster!==void 0?n_.MongodbCommandType.IS_MASTER:t.count!==void 0?n_.MongodbCommandType.COUNT:t.aggregate!==void 0?n_.MongodbCommandType.AGGREGATE:n_.MongodbCommandType.UNKNOWN}_getV4SpanAttributes(t,n,r,i){let s,o;if(t){let c=typeof t.address=="string"?t.address.split(":"):"";c.length===2&&(s=c[0],o=c[1])}let a;return r?.documents&&r.documents[0]?a=r.documents[0]:r?.cursors?a=r.cursors:a=r,this._getSpanAttributes(n.db,n.collection,s,o,a,i)}_getV3SpanAttributes(t,n,r,i){let s,o;if(n&&n.s&&(s=n.s.options?.host??n.s.host,o=(n.s.options?.port??n.s.port)?.toString(),s==null||o==null)){let l=n.description?.address;if(l){let d=l.split(":");s=d[0],o=d[1]}}let[a,c]=t.toString().split("."),u=r?.query??r?.q??r;return this._getSpanAttributes(a,c,s,o,u,i)}_getSpanAttributes(t,n,r,i,s,o){let a={};if(this._dbSemconvStability&jn.SemconvStability.OLD&&(a[pl.ATTR_DB_SYSTEM]=pl.DB_SYSTEM_VALUE_MONGODB,a[pl.ATTR_DB_NAME]=t,a[pl.ATTR_DB_MONGODB_COLLECTION]=n,a[pl.ATTR_DB_OPERATION]=o,a[pl.ATTR_DB_CONNECTION_STRING]=`mongodb://${r}:${i}/${t}`),this._dbSemconvStability&jn.SemconvStability.STABLE&&(a[Pm.ATTR_DB_SYSTEM_NAME]=pl.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[pl.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[pl.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[pl.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(" ")||pl.DB_SYSTEM_NAME_VALUE_MONGODB:n=`mongodb.${t[pl.ATTR_DB_OPERATION]||"command"}`,n}_getDefaultDbStatementReplacer(){let t=new WeakSet;return(n,r)=>typeof r!="object"||!r?"?":t.has(r)?"[Circular]":(t.add(r),r)}_defaultDbStatementSerializer(t){let{enhancedDatabaseReporting:n}=this.getConfig();return n?JSON.stringify(t):JSON.stringify(t,this._getDefaultDbStatementReplacer())}_handleExecutionResult(t,n){let{responseHook:r}=this.getConfig();typeof r=="function"&&(0,jn.safeExecuteInTheMiddle)(()=>{r(t,{data:n})},i=>{i&&this._diag.error("Error running response hook",i)},!0)}_patchEnd(t,n,r,i){let s=Ki.context.active(),o=this,a=!1;return function(...u){if(!a){a=!0;let l=u[0];if(t){if(l instanceof Error)t.setStatus({code:Ki.SpanStatusCode.ERROR,message:l.message});else{let d=u[1];o._handleExecutionResult(t,d)}t.end()}i==="endSessions"&&o._connCountAdd(-1,o._poolName,"idle")}return Ki.context.with(s,()=>n.apply(this,u))}}setPoolName(t){let n=t.hostAddress?.host,r=t.hostAddress?.port,i=t.dbName,s=`mongodb://${n}:${r}/${i}`;this._poolName=s}_checkSkipInstrumentation(t){return this.getConfig().requireParentSpan===!0&&t===void 0}};sG.MongoDBInstrumentation=ote});var zGe=w(tP=>{"use strict";Object.defineProperty(tP,"__esModule",{value:!0});tP.MongodbCommandType=void 0;var BQt;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.UNKNOWN="unknown"})(BQt=tP.MongodbCommandType||(tP.MongodbCommandType={}))});var VGe=w(KR=>{"use strict";Object.defineProperty(KR,"__esModule",{value:!0});KR.MongodbCommandType=KR.MongoDBInstrumentation=void 0;var GQt=GGe();Object.defineProperty(KR,"MongoDBInstrumentation",{enumerable:!0,get:function(){return GQt.MongoDBInstrumentation}});var zQt=zGe();Object.defineProperty(KR,"MongodbCommandType",{enumerable:!0,get:function(){return zQt.MongodbCommandType}})});function VQt(e){let t=ate(e);return JSON.stringify(t)}function ate(e){if(Array.isArray(e))return e.map(t=>ate(t));if(WQt(e)){let t={};return Object.entries(e).map(([n,r])=>[n,ate(r)]).reduce((n,r)=>(ZQt(r)&&(n[r[0]]=r[1]),n),t)}return"?"}function WQt(e){return typeof e=="object"&&e!==null&&!KQt(e)}function KQt(e){let t=!1;return typeof Buffer<"u"&&(t=Buffer.isBuffer(e)),t}function ZQt(e){return Array.isArray(e)}var WGe,KGe,ZGe,YQt,YGe,JGe=v(()=>{WGe=Se(VGe(),1);sr();KGe="Mongo",ZGe=rt(KGe,()=>new WGe.MongoDBInstrumentation({dbStatementSerializer:VQt,responseHook(e){Lr(e,"auto.db.otel.mongo")}}));YQt=(()=>({name:KGe,setupOnce(){ZGe()}})),YGe=YQt});var cte=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 $Ge=w(tS=>{"use strict";Object.defineProperty(tS,"__esModule",{value:!0});tS.handleCallbackResponse=tS.handlePromiseResponse=tS.getAttributesFromCollection=void 0;var XGe=(Ce(),ke(Ye)),rP=Jt(),nP=cte(),oG=(Nn(),ke(Mr));function JQt(e,t,n){let r={};return t&rP.SemconvStability.OLD&&(r[nP.ATTR_DB_MONGODB_COLLECTION]=e.name,r[nP.ATTR_DB_NAME]=e.conn.name,r[nP.ATTR_DB_USER]=e.conn.user),t&rP.SemconvStability.STABLE&&(r[oG.ATTR_DB_COLLECTION_NAME]=e.name,r[oG.ATTR_DB_NAMESPACE]=e.conn.name),n&rP.SemconvStability.OLD&&(r[nP.ATTR_NET_PEER_NAME]=e.conn.host,r[nP.ATTR_NET_PEER_PORT]=e.conn.port),n&rP.SemconvStability.STABLE&&(r[oG.ATTR_SERVER_ADDRESS]=e.conn.host,r[oG.ATTR_SERVER_PORT]=e.conn.port),r}tS.getAttributesFromCollection=JQt;function QGe(e,t={}){e.recordException(t),e.setStatus({code:XGe.SpanStatusCode.ERROR,message:`${t.message} ${t.code?` -Mongoose Error Code: ${t.code}`:""}`})}function ute(e,t,n,r=void 0){n&&(0,rP.safeExecuteInTheMiddle)(()=>n(e,{moduleVersion:r,response:t}),i=>{i&&XGe.diag.error("mongoose instrumentation: responseHook error",i)},!0)}function XQt(e,t,n,r=void 0){return e instanceof Promise?e.then(i=>(ute(t,i,n,r),i)).catch(i=>{throw QGe(t,i),i}).finally(()=>t.end()):(ute(t,e,n,r),t.end(),e)}tS.handlePromiseResponse=XQt;function QQt(e,t,n,r,i,s,o=void 0){let a=0;return i.length===2?a=1:i.length===3&&(a=2),i[a]=(c,u)=>(c?QGe(r,c):ute(r,u,s,o),r.end(),e(c,u)),t.apply(n,i)}tS.handleCallbackResponse=QQt});var eze=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 sze=w(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.MongooseInstrumentation=mu._ALREADY_INSTRUMENTED=mu._STORED_PARENT_SPAN=void 0;var bo=(Ce(),ke(Ye)),$Qt=fr(),lte=$Ge(),fa=Jt(),tze=eze(),nS=cte(),r_=(Nn(),ke(Mr)),aG=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],e$t=["remove","count","findOneAndRemove",...aG],t$t=["count","findOneAndRemove",...aG],n$t=[...aG];function nze(e){return e?e.startsWith("6.")||e.startsWith("5.")?e$t:e.startsWith("7.")?t$t:n$t:aG}function rze(e){return e&&(e.startsWith("5.")||e.startsWith("6."))||!1}function ize(e){return!e||!e.startsWith("8.")?!1:parseInt(e.split(".")[1],10)>=21}mu._STORED_PARENT_SPAN=Symbol("stored-parent-span");mu._ALREADY_INSTRUMENTED=Symbol("already-instrumented");var dte=class extends fa.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(tze.PACKAGE_NAME,tze.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,rze(n)&&this._wrap(r.Model.prototype,"remove",this.patchOnModelMethods("remove",n)),ize(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)),nze(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=nze(n);this._unwrap(r.Model.prototype,"save"),r.Model.prototype.$save=r.Model.prototype.save,rze(n)&&this._unwrap(r.Model.prototype,"remove"),ize(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&&bo.trace.getSpan(bo.context.active())===void 0)return r.apply(this,arguments);let o=this[mu._STORED_PARENT_SPAN],a={},{dbStatementSerializer:c}=n.getConfig();if(c){let l=c("aggregate",{options:this.options,aggregatePipeline:this._pipeline});n._dbSemconvStability&fa.SemconvStability.OLD&&(a[nS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[r_.ATTR_DB_QUERY_TEXT]=l)}let u=n._startSpan(this._model.collection,this._model?.modelName,"aggregate",a,o);return n._handleResponse(u,r,this,arguments,s,t)}}patchQueryExec(t){let n=this;return r=>function(s){if(this[mu._ALREADY_INSTRUMENTED])return r.apply(this,arguments);if(n.getConfig().requireParentSpan&&bo.trace.getSpan(bo.context.active())===void 0)return r.apply(this,arguments);let o=this[mu._STORED_PARENT_SPAN],a={},{dbStatementSerializer:c}=n.getConfig();if(c){let l=c(this.op,{condition:this.getFilter?.()??this._conditions,updates:this._update,options:this.getOptions?.()??this.options,fields:this._fields});n._dbSemconvStability&fa.SemconvStability.OLD&&(a[nS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[r_.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&&bo.trace.getSpan(bo.context.active())===void 0)return i.apply(this,arguments);let c={document:this};o&&!(o instanceof Function)&&(c.options=o);let u={},{dbStatementSerializer:l}=r.getConfig();if(l){let f=l(t,c);r._dbSemconvStability&fa.SemconvStability.OLD&&(u[nS.ATTR_DB_STATEMENT]=f),r._dbSemconvStability&fa.SemconvStability.STABLE&&(u[r_.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&&bo.trace.getSpan(bo.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&fa.SemconvStability.OLD&&(f[nS.ATTR_DB_STATEMENT]=y),r._dbSemconvStability&fa.SemconvStability.STABLE&&(f[r_.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[mu._ALREADY_INSTRUMENTED]=!0),m}}patchModelStatic(t,n){let r=this;return i=>function(o,a,c){if(r.getConfig().requireParentSpan&&bo.trace.getSpan(bo.context.active())===void 0)return i.apply(this,arguments);typeof a=="function"&&(c=a,a=void 0);let u={};switch(t){case"insertMany":u.documents=o;break;case"bulkWrite":u.operations=o;break;default:u.document=o;break}a!==void 0&&(u.options=a);let l={},{dbStatementSerializer:d}=r.getConfig();if(d){let p=d(t,u);r._dbSemconvStability&fa.SemconvStability.OLD&&(l[nS.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&fa.SemconvStability.STABLE&&(l[r_.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=bo.trace.getSpan(bo.context.active()),s=t._callOriginalFunction(()=>n.apply(this,arguments));return s&&(s[mu._STORED_PARENT_SPAN]=i),s}}patchAndCaptureSpanContext(t){let n=this;return r=>function(){return this[mu._STORED_PARENT_SPAN]=bo.trace.getSpan(bo.context.active()),n._callOriginalFunction(()=>r.apply(this,arguments))}}_startSpan(t,n,r,i,s){let o={...i,...(0,lte.getAttributesFromCollection)(t,this._dbSemconvStability,this._netSemconvStability)};this._dbSemconvStability&fa.SemconvStability.OLD&&(o[nS.ATTR_DB_OPERATION]=r,o[nS.ATTR_DB_SYSTEM]="mongoose"),this._dbSemconvStability&fa.SemconvStability.STABLE&&(o[r_.ATTR_DB_OPERATION_NAME]=r,o[r_.ATTR_DB_SYSTEM_NAME]=nS.DB_SYSTEM_NAME_VALUE_MONGODB);let a=this._dbSemconvStability&fa.SemconvStability.STABLE?`${r} ${t.name}`:`mongoose.${n}.${r}`;return this.tracer.startSpan(a,{kind:bo.SpanKind.CLIENT,attributes:o},s?bo.trace.setSpan(bo.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,lte.handleCallbackResponse)(s,n,r,t,i,a.getConfig().responseHook,o));{let c=a._callOriginalFunction(()=>n.apply(r,i));return(0,lte.handlePromiseResponse)(c,t,a.getConfig().responseHook,o)}}_callOriginalFunction(t){return this.getConfig().suppressInternalInstrumentation?bo.context.with((0,$Qt.suppressTracing)(bo.context.active()),t):t()}};mu.MongooseInstrumentation=dte});var oze=w(cG=>{"use strict";Object.defineProperty(cG,"__esModule",{value:!0});cG.MongooseInstrumentation=void 0;var r$t=sze();Object.defineProperty(cG,"MongooseInstrumentation",{enumerable:!0,get:function(){return r$t.MongooseInstrumentation}})});var aze,cze,uze,i$t,lze,dze=v(()=>{aze=Se(oze(),1);sr();cze="Mongoose",uze=rt(cze,()=>new aze.MongooseInstrumentation({responseHook(e){Lr(e,"auto.db.otel.mongoose")}})),i$t=(()=>({name:cze,setupOnce(){uze()}})),lze=i$t});var fze=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 pze=w(iP=>{"use strict";Object.defineProperty(iP,"__esModule",{value:!0});iP.AttributeNames=void 0;var s$t;(function(e){e.MYSQL_VALUES="db.mysql.values"})(s$t=iP.AttributeNames||(iP.AttributeNames={}))});var hze=w(Qa=>{"use strict";Object.defineProperty(Qa,"__esModule",{value:!0});Qa.getPoolNameOld=Qa.arrayStringifyHelper=Qa.getSpanName=Qa.getDbValues=Qa.getDbQueryText=Qa.getJDBCString=Qa.getConfig=void 0;function o$t(e){let{host:t,port:n,database:r,user:i}=e&&e.connectionConfig||e||{};return{host:t,port:n,database:r,user:i}}Qa.getConfig=o$t;function a$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}Qa.getJDBCString=a$t;function c$t(e){return typeof e=="string"?e:e.sql}Qa.getDbQueryText=c$t;function u$t(e,t){return fte(typeof e=="string"?t:t||e.values)}Qa.getDbValues=u$t;function l$t(e){let t=typeof e=="object"?e.sql:e,n=t?.indexOf(" ");return typeof n=="number"&&n!==-1?t?.substring(0,n):t}Qa.getSpanName=l$t;function fte(e){return e?`[${e.toString()}]`:""}Qa.arrayStringifyHelper=fte;function d$t(e){let t=e.config.connectionConfig,n="";return n+=t.host?`host: '${t.host}', `:"",n+=t.port?`port: ${t.port}, `:"",n+=t.database?`database: '${t.database}', `:"",n+=t.user?`user: '${t.user}'`:"",t.user||(n=n.substring(0,n.length-2)),n.trim()}Qa.getPoolNameOld=d$t});var mze=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 yze=w(uG=>{"use strict";Object.defineProperty(uG,"__esModule",{value:!0});uG.MySQLInstrumentation=void 0;var gu=(Ce(),ke(Ye)),ed=Jt(),JR=(Nn(),ke(Mr)),Cm=fze(),f$t=pze(),i_=hze(),gze=mze(),pte=class extends ed.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(gze.PACKAGE_NAME,gze.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,ed.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,ed.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._connectionsUsageOld=this.meter.createUpDownCounter(Cm.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(t,n,r){this._connectionsUsageOld?.add(t,{state:r,name:n})}init(){return[new ed.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],t=>((0,ed.isWrapped)(t.createConnection)&&this._unwrap(t,"createConnection"),this._wrap(t,"createConnection",this._patchCreateConnection()),(0,ed.isWrapped)(t.createPool)&&this._unwrap(t,"createPool"),this._wrap(t,"createPool",this._patchCreatePool()),(0,ed.isWrapped)(t.createPoolCluster)&&this._unwrap(t,"createPoolCluster"),this._wrap(t,"createPoolCluster",this._patchCreatePoolCluster()),t),t=>{t!==void 0&&(this._unwrap(t,"createConnection"),this._unwrap(t,"createPool"),this._unwrap(t,"createPoolCluster"))})]}_patchCreateConnection(){return t=>{let n=this;return function(i){let s=t(...arguments);return n._wrap(s,"query",n._patchQuery(s)),s}}}_patchCreatePool(){return t=>{let n=this;return function(i){let s=t(...arguments);return n._wrap(s,"query",n._patchQuery(s)),n._wrap(s,"getConnection",n._patchGetConnection(s)),n._wrap(s,"end",n._patchPoolEnd(s)),n._setPoolCallbacks(s,""),s}}}_patchPoolEnd(t){return n=>{let r=this;return function(s){let o=t._allConnections.length,a=t._freeConnections.length,c=o-a,u=(0,i_.getPoolNameOld)(t);r._connCountAdd(-c,u,"used"),r._connCountAdd(-a,u,"idle"),n.apply(t,arguments)}}}_patchCreatePoolCluster(){return t=>{let n=this;return function(i){let s=t(...arguments);return n._wrap(s,"getConnection",n._patchGetConnection(s)),n._wrap(s,"add",n._patchAdd(s)),s}}}_patchAdd(t){return n=>{let r=this;return function(s,o){if(!r._enabled)return r._unwrap(t,"add"),n.apply(t,arguments);n.apply(t,arguments);let a=t._nodes;if(a){let c=typeof s=="object"?"CLUSTER::"+t._lastId:String(s),u=a[c].pool;r._setPoolCallbacks(u,s)}}}}_patchGetConnection(t){return n=>{let r=this;return function(s,o,a){if(!r._enabled)return r._unwrap(t,"getConnection"),n.apply(t,arguments);if(arguments.length===1&&typeof s=="function"){let c=r._getConnectionCallbackPatchFn(s);return n.call(t,c)}if(arguments.length===2&&typeof o=="function"){let c=r._getConnectionCallbackPatchFn(o);return n.call(t,s,c)}if(arguments.length===3&&typeof a=="function"){let c=r._getConnectionCallbackPatchFn(a);return n.call(t,s,o,c)}return n.apply(t,arguments)}}}_getConnectionCallbackPatchFn(t){let n=this,r=gu.context.active();return function(i,s){s&&((0,ed.isWrapped)(s.query)||n._wrap(s,"query",n._patchQuery(s))),typeof t=="function"&&gu.context.with(r,t,this,i,s)}}_patchQuery(t){return n=>{let r=this;return function(i,s,o){if(!r._enabled)return r._unwrap(t,"query"),n.apply(t,arguments);let a={},{host:c,port:u,database:l,user:d}=(0,i_.getConfig)(t.config),f=parseInt(u,10),p=(0,i_.getDbQueryText)(i);r._dbSemconvStability&ed.SemconvStability.OLD&&(a[Cm.ATTR_DB_SYSTEM]=Cm.DB_SYSTEM_VALUE_MYSQL,a[Cm.ATTR_DB_CONNECTION_STRING]=(0,i_.getJDBCString)(c,u,l),a[Cm.ATTR_DB_NAME]=l,a[Cm.ATTR_DB_USER]=d,a[Cm.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&ed.SemconvStability.STABLE&&(a[JR.ATTR_DB_SYSTEM_NAME]=JR.DB_SYSTEM_NAME_VALUE_MYSQL,a[JR.ATTR_DB_NAMESPACE]=l,a[JR.ATTR_DB_QUERY_TEXT]=p),r._netSemconvStability&ed.SemconvStability.OLD&&(a[Cm.ATTR_NET_PEER_NAME]=c,isNaN(f)||(a[Cm.ATTR_NET_PEER_PORT]=f)),r._netSemconvStability&ed.SemconvStability.STABLE&&(a[JR.ATTR_SERVER_ADDRESS]=c,isNaN(f)||(a[JR.ATTR_SERVER_PORT]=f));let h=r.tracer.startSpan((0,i_.getSpanName)(i),{kind:gu.SpanKind.CLIENT,attributes:a});if(r.getConfig().enhancedDatabaseReporting){let g;Array.isArray(s)?g=s:arguments[2]&&(g=[s]),h.setAttribute(f$t.AttributeNames.MYSQL_VALUES,(0,i_.getDbValues)(i,g))}let m=Array.from(arguments).findIndex(g=>typeof g=="function"),y=gu.context.active();if(m===-1){let g=gu.context.with(gu.trace.setSpan(gu.context.active(),h),()=>n.apply(t,arguments));return gu.context.bind(y,g),g.on("error",E=>h.setStatus({code:gu.SpanStatusCode.ERROR,message:E.message})).on("end",()=>{h.end()})}else return r._wrap(arguments,m,r._patchCallbackQuery(h,y)),gu.context.with(gu.trace.setSpan(gu.context.active(),h),()=>n.apply(t,arguments))}}}_patchCallbackQuery(t,n){return r=>function(i,s,o){return i&&t.setStatus({code:gu.SpanStatusCode.ERROR,message:i.message}),t.end(),gu.context.with(n,()=>r(...arguments))}}_setPoolCallbacks(t,n){let r=n||(0,i_.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")})}};uG.MySQLInstrumentation=pte});var Sze=w(lG=>{"use strict";Object.defineProperty(lG,"__esModule",{value:!0});lG.MySQLInstrumentation=void 0;var p$t=yze();Object.defineProperty(lG,"MySQLInstrumentation",{enumerable:!0,get:function(){return p$t.MySQLInstrumentation}})});var Eze,bze,_ze,h$t,Tze,vze=v(()=>{Eze=Se(Sze(),1);sr();bze="Mysql",_ze=rt(bze,()=>new Eze.MySQLInstrumentation({})),h$t=(()=>({name:bze,setupOnce(){_ze()}})),Tze=h$t});var hte=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 gte=w(dG=>{"use strict";Object.defineProperty(dG,"__esModule",{value:!0});dG.addSqlCommenterComment=void 0;var mte=(Ce(),ke(Ye)),m$t=fr();function g$t(e){let t=e.indexOf("--");if(t>=0)return!0;if(e.indexOf("/*")<0)return!1;let r=e.indexOf("*/");return t`%${t.charCodeAt(0).toString(16).toUpperCase()}`)}function S$t(e,t){if(typeof t!="string"||t.length===0||g$t(t))return t;let n=new m$t.W3CTraceContextPropagator,r={};n.inject(mte.trace.setSpan(mte.ROOT_CONTEXT,e),r,mte.defaultTextMapSetter);let i=Object.keys(r).sort();if(i.length===0)return t;let s=i.map(o=>{let a=y$t(r[o]);return`${o}='${a}'`}).join(",");return`${t} /*${s}*/`}dG.addSqlCommenterComment=S$t});var Aze=w(td=>{"use strict";Object.defineProperty(td,"__esModule",{value:!0});td.getConnectionPrototypeToInstrument=td.once=td.getSpanName=td.getQueryText=td.getConnectionAttributes=void 0;var sP=hte(),fG=Jt(),yte=(Nn(),ke(Mr));function E$t(e,t,n){let{host:r,port:i,database:s,user:o}=b$t(e),a={};t&fG.SemconvStability.OLD&&(a[sP.ATTR_DB_CONNECTION_STRING]=_$t(r,i,s),a[sP.ATTR_DB_NAME]=s,a[sP.ATTR_DB_USER]=o),t&fG.SemconvStability.STABLE&&(a[yte.ATTR_DB_NAMESPACE]=s);let c=parseInt(i,10);return n&fG.SemconvStability.OLD&&(a[sP.ATTR_NET_PEER_NAME]=r,isNaN(c)||(a[sP.ATTR_NET_PEER_PORT]=c)),n&fG.SemconvStability.STABLE&&(a[yte.ATTR_SERVER_ADDRESS]=r,isNaN(c)||(a[yte.ATTR_SERVER_PORT]=c)),a}td.getConnectionAttributes=E$t;function b$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 _$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}function T$t(e,t,n,r=!1,i=v$t){let[s,o]=typeof e=="string"?[e,n]:[e.sql,A$t(e)?n||e.values:n];try{return r?i(s):t&&o?t(s,o):s}catch{return"Could not determine the query due to an error in masking or formatting"}}td.getQueryText=T$t;function v$t(e){return e.replace(/\b\d+\b/g,"?").replace(/(["'])(?:(?=(\\?))\2.)*?\1/g,"?")}function A$t(e){return"values"in e}function R$t(e){let t=typeof e=="object"?e.sql:e,n=t?.indexOf(" ");return typeof n=="number"&&n!==-1?t?.substring(0,n):t}td.getSpanName=R$t;var w$t=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};td.once=w$t;function k$t(e){let t=e.prototype,n=Object.getPrototypeOf(t);return typeof n?.query=="function"&&typeof n?.execute=="function"?n:t}td.getConnectionPrototypeToInstrument=k$t});var Rze=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 xze=w(pG=>{"use strict";Object.defineProperty(pG,"__esModule",{value:!0});pG.MySQL2Instrumentation=void 0;var wze=(Ce(),ke(Ye)),pf=Jt(),Ste=hte(),kze=gte(),QR=Aze(),Ize=Rze(),Ete=(Nn(),ke(Mr)),bte=[">=1.4.2 <4"],_te=class extends pf.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(Ize.PACKAGE_NAME,Ize.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,pf.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,pf.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){let t;function n(s){!t&&s.format&&(t=s.format)}let r=s=>{(0,pf.isWrapped)(s.query)&&this._unwrap(s,"query"),this._wrap(s,"query",this._patchQuery(t,!1)),(0,pf.isWrapped)(s.execute)&&this._unwrap(s,"execute"),this._wrap(s,"execute",this._patchQuery(t,!0))},i=s=>{this._unwrap(s,"query"),this._unwrap(s,"execute")};return[new pf.InstrumentationNodeModuleDefinition("mysql2",bte,s=>(n(s),s),()=>{},[new pf.InstrumentationNodeModuleFile("mysql2/promise.js",bte,s=>(n(s),s),()=>{}),new pf.InstrumentationNodeModuleFile("mysql2/lib/connection.js",bte,s=>{let o=(0,QR.getConnectionPrototypeToInstrument)(s);return r(o),s},s=>{if(s===void 0)return;let o=(0,QR.getConnectionPrototypeToInstrument)(s);i(o)})])]}_patchQuery(t,n){return r=>{let i=this;return function(s,o,a){let c;Array.isArray(o)?c=o:arguments[2]&&(c=[o]);let{maskStatement:u,maskStatementHook:l,responseHook:d}=i.getConfig(),f=(0,QR.getConnectionAttributes)(this.config,i._dbSemconvStability,i._netSemconvStability),p=(0,QR.getQueryText)(s,t,c,u,l);i._dbSemconvStability&pf.SemconvStability.OLD&&(f[Ste.ATTR_DB_SYSTEM]=Ste.DB_SYSTEM_VALUE_MYSQL,f[Ste.ATTR_DB_STATEMENT]=p),i._dbSemconvStability&pf.SemconvStability.STABLE&&(f[Ete.ATTR_DB_SYSTEM_NAME]=Ete.DB_SYSTEM_NAME_VALUE_MYSQL,f[Ete.ATTR_DB_QUERY_TEXT]=p);let h=i.tracer.startSpan((0,QR.getSpanName)(s),{kind:wze.SpanKind.CLIENT,attributes:f});!n&&i.getConfig().addSqlCommenterCommentToQueries&&(arguments[0]=s=typeof s=="string"?(0,kze.addSqlCommenterComment)(h,s):Object.assign(s,{sql:(0,kze.addSqlCommenterComment)(h,s.sql)}));let m=(0,QR.once)((y,g)=>{y?h.setStatus({code:wze.SpanStatusCode.ERROR,message:y.message}):typeof d=="function"&&(0,pf.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)}}};pG.MySQL2Instrumentation=_te});var Oze=w(hG=>{"use strict";Object.defineProperty(hG,"__esModule",{value:!0});hG.MySQL2Instrumentation=void 0;var I$t=xze();Object.defineProperty(hG,"MySQL2Instrumentation",{enumerable:!0,get:function(){return I$t.MySQL2Instrumentation}})});var Nze,Pze,Cze,x$t,Mze,Lze=v(()=>{Nze=Se(Oze(),1);sr();Pze="Mysql2",Cze=rt(Pze,()=>new Nze.MySQL2Instrumentation({responseHook(e){Lr(e,"auto.db.otel.mysql2")}})),x$t=(()=>({name:Pze,setupOnce(){Cze()}})),Mze=x$t});var Dze=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 Uze=w(mG=>{"use strict";Object.defineProperty(mG,"__esModule",{value:!0});mG.endSpan=void 0;var O$t=(Ce(),ke(Ye)),N$t=(e,t)=>{t&&(e.recordException(t),e.setStatus({code:O$t.SpanStatusCode.ERROR,message:t.message})),e.end()};mG.endSpan=N$t});var yG=w(gG=>{"use strict";Object.defineProperty(gG,"__esModule",{value:!0});gG.defaultDbStatementSerializer=void 0;var P$t=[{regex:/^ECHO/i,args:0},{regex:/^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,args:1},{regex:/^(HSET|HMSET|LSET|LINSERT)/i,args:2},{regex:/^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,args:-1}],C$t=(e,t)=>{if(Array.isArray(t)&&t.length){let n=P$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};gG.defaultDbStatementSerializer=C$t});var Fze=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 Bze=w(SG=>{"use strict";Object.defineProperty(SG,"__esModule",{value:!0});SG.IORedisInstrumentation=void 0;var rS=(Ce(),ke(Ye)),yu=Jt(),iS=(Nn(),ke(Mr)),Su=Dze(),jze=Jt(),oP=Uze(),M$t=yG(),Hze=Fze(),qze={requireParentSpan:!0},Tte=class extends yu.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(Hze.PACKAGE_NAME,Hze.PACKAGE_VERSION,{...qze,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,yu.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,yu.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...qze,...t})}init(){return[new yu.InstrumentationNodeModuleDefinition("ioredis",[">=2.0.0 <6"],(t,n)=>{let r=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,yu.isWrapped)(r.prototype.sendCommand)&&this._unwrap(r.prototype,"sendCommand"),this._wrap(r.prototype,"sendCommand",this._patchSendCommand(n)),(0,yu.isWrapped)(r.prototype.connect)&&this._unwrap(r.prototype,"connect"),this._wrap(r.prototype,"connect",this._patchConnection()),t},t=>{if(t===void 0)return;let n=t[Symbol.toStringTag]==="Module"?t.default:t;this._unwrap(n.prototype,"sendCommand"),this._unwrap(n.prototype,"connect")})]}_patchSendCommand(t){return n=>this._traceSendCommand(n,t)}_patchConnection(){return t=>this._traceConnection(t)}_traceSendCommand(t,n){let r=this;return function(i){if(arguments.length<1||typeof i!="object")return t.apply(this,arguments);let s=r.getConfig(),o=s.dbStatementSerializer||M$t.defaultDbStatementSerializer,a=rS.trace.getSpan(rS.context.active())===void 0;if(s.requireParentSpan===!0&&a)return t.apply(this,arguments);let c={},{host:u,port:l}=this.options,d=o(i.name,i.args);r._dbSemconvStability&yu.SemconvStability.OLD&&(c[Su.ATTR_DB_SYSTEM]=Su.DB_SYSTEM_VALUE_REDIS,c[Su.ATTR_DB_STATEMENT]=d,c[Su.ATTR_DB_CONNECTION_STRING]=`redis://${u}:${l}`),r._dbSemconvStability&yu.SemconvStability.STABLE&&(c[iS.ATTR_DB_SYSTEM_NAME]=Su.DB_SYSTEM_NAME_VALUE_REDIS,c[iS.ATTR_DB_QUERY_TEXT]=d),r._netSemconvStability&yu.SemconvStability.OLD&&(c[Su.ATTR_NET_PEER_NAME]=u,c[Su.ATTR_NET_PEER_PORT]=l),r._netSemconvStability&yu.SemconvStability.STABLE&&(c[iS.ATTR_SERVER_ADDRESS]=u,c[iS.ATTR_SERVER_PORT]=l);let f=r.tracer.startSpan(i.name,{kind:rS.SpanKind.CLIENT,attributes:c}),{requestHook:p}=s;p&&(0,jze.safeExecuteInTheMiddle)(()=>p(f,{moduleVersion:n,cmdName:i.name,cmdArgs:i.args}),h=>{h&&rS.diag.error("ioredis instrumentation: request hook failed",h)},!0);try{let h=t.apply(this,arguments),m=i.resolve;i.resolve=function(g){(0,jze.safeExecuteInTheMiddle)(()=>s.responseHook?.(f,i.name,i.args,g),E=>{E&&rS.diag.error("ioredis instrumentation: response hook failed",E)},!0),(0,oP.endSpan)(f,null),m(g)};let y=i.reject;return i.reject=function(g){(0,oP.endSpan)(f,g),y(g)},h}catch(h){throw(0,oP.endSpan)(f,h),h}}}_traceConnection(t){let n=this;return function(){let r=rS.trace.getSpan(rS.context.active())===void 0;if(n.getConfig().requireParentSpan===!0&&r)return t.apply(this,arguments);let i={},{host:s,port:o}=this.options;n._dbSemconvStability&yu.SemconvStability.OLD&&(i[Su.ATTR_DB_SYSTEM]=Su.DB_SYSTEM_VALUE_REDIS,i[Su.ATTR_DB_STATEMENT]="connect",i[Su.ATTR_DB_CONNECTION_STRING]=`redis://${s}:${o}`),n._dbSemconvStability&yu.SemconvStability.STABLE&&(i[iS.ATTR_DB_SYSTEM_NAME]=Su.DB_SYSTEM_NAME_VALUE_REDIS,i[iS.ATTR_DB_QUERY_TEXT]="connect"),n._netSemconvStability&yu.SemconvStability.OLD&&(i[Su.ATTR_NET_PEER_NAME]=s,i[Su.ATTR_NET_PEER_PORT]=o),n._netSemconvStability&yu.SemconvStability.STABLE&&(i[iS.ATTR_SERVER_ADDRESS]=s,i[iS.ATTR_SERVER_PORT]=o);let a=n.tracer.startSpan("connect",{kind:rS.SpanKind.CLIENT,attributes:i});try{let c=t.apply(this,arguments);return(0,oP.endSpan)(a,null),c}catch(c){throw(0,oP.endSpan)(a,c),c}}}};SG.IORedisInstrumentation=Tte});var Gze=w(EG=>{"use strict";Object.defineProperty(EG,"__esModule",{value:!0});EG.IORedisInstrumentation=void 0;var L$t=Bze();Object.defineProperty(EG,"IORedisInstrumentation",{enumerable:!0,get:function(){return L$t.IORedisInstrumentation}})});var bG=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 zze=w(sS=>{"use strict";Object.defineProperty(sS,"__esModule",{value:!0});sS.getTracedCreateStreamTrace=sS.getTracedCreateClient=sS.endSpan=void 0;var aP=(Ce(),ke(Ye)),D$t=(e,t)=>{t&&e.setStatus({code:aP.SpanStatusCode.ERROR,message:t.message}),e.end()};sS.endSpan=D$t;var U$t=e=>function(){let n=e.apply(this,arguments);return aP.context.bind(aP.context.active(),n)};sS.getTracedCreateClient=U$t;var F$t=e=>function(){return Object.prototype.hasOwnProperty.call(this,"stream")||Object.defineProperty(this,"stream",{get(){return this._patched_redis_stream},set(n){aP.context.bind(aP.context.active(),n),this._patched_redis_stream=n}}),e.apply(this,arguments)};sS.getTracedCreateStreamTrace=F$t});var _G=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 Wze=w(vG=>{"use strict";Object.defineProperty(vG,"__esModule",{value:!0});vG.RedisInstrumentationV2_V3=void 0;var hl=Jt(),TG=zze(),Vze=bG(),cP=(Ce(),ke(Ye)),uP=(Nn(),ke(Mr)),s_=_G(),j$t=yG(),vte=class e extends hl.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(Vze.PACKAGE_NAME,Vze.PACKAGE_VERSION,t),this._semconvStability=t.semconvStability?t.semconvStability:(0,hl.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig(t),this._semconvStability=t.semconvStability?t.semconvStability:(0,hl.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new hl.InstrumentationNodeModuleDefinition("redis",[">=2.6.0 <4"],t=>((0,hl.isWrapped)(t.RedisClient.prototype.internal_send_command)&&this._unwrap(t.RedisClient.prototype,"internal_send_command"),this._wrap(t.RedisClient.prototype,"internal_send_command",this._getPatchInternalSendCommand()),(0,hl.isWrapped)(t.RedisClient.prototype.create_stream)&&this._unwrap(t.RedisClient.prototype,"create_stream"),this._wrap(t.RedisClient.prototype,"create_stream",this._getPatchCreateStream()),(0,hl.isWrapped)(t.createClient)&&this._unwrap(t,"createClient"),this._wrap(t,"createClient",this._getPatchCreateClient()),t),t=>{t!==void 0&&(this._unwrap(t.RedisClient.prototype,"internal_send_command"),this._unwrap(t.RedisClient.prototype,"create_stream"),this._unwrap(t,"createClient"))})]}_getPatchInternalSendCommand(){let t=this;return function(r){return function(s){if(arguments.length!==1||typeof s!="object")return r.apply(this,arguments);let o=t.getConfig(),a=cP.trace.getSpan(cP.context.active())===void 0;if(o.requireParentSpan===!0&&a)return r.apply(this,arguments);let c=o?.dbStatementSerializer||j$t.defaultDbStatementSerializer,u={};t._semconvStability&hl.SemconvStability.OLD&&Object.assign(u,{[s_.ATTR_DB_SYSTEM]:s_.DB_SYSTEM_VALUE_REDIS,[s_.ATTR_DB_STATEMENT]:c(s.command,s.args)}),t._semconvStability&hl.SemconvStability.STABLE&&Object.assign(u,{[uP.ATTR_DB_SYSTEM_NAME]:s_.DB_SYSTEM_NAME_VALUE_REDIS,[uP.ATTR_DB_OPERATION_NAME]:s.command,[uP.ATTR_DB_QUERY_TEXT]:c(s.command,s.args)});let l=t.tracer.startSpan(`${e.COMPONENT}-${s.command}`,{kind:cP.SpanKind.CLIENT,attributes:u});if(this.connection_options){let f={};t._semconvStability&hl.SemconvStability.OLD&&Object.assign(f,{[s_.ATTR_NET_PEER_NAME]:this.connection_options.host,[s_.ATTR_NET_PEER_PORT]:this.connection_options.port}),t._semconvStability&hl.SemconvStability.STABLE&&Object.assign(f,{[uP.ATTR_SERVER_ADDRESS]:this.connection_options.host,[uP.ATTR_SERVER_PORT]:this.connection_options.port}),l.setAttributes(f)}this.address&&t._semconvStability&hl.SemconvStability.OLD&&l.setAttribute(s_.ATTR_DB_CONNECTION_STRING,`redis://${this.address}`);let d=arguments[0].callback;if(d){let f=cP.context.active();arguments[0].callback=function(h,m){if(o?.responseHook){let y=o.responseHook;(0,hl.safeExecuteInTheMiddle)(()=>{y(l,s.command,s.args,m)},g=>{g&&t._diag.error("Error executing responseHook",g)},!0)}return(0,TG.endSpan)(l,h),cP.context.with(f,d,this,...arguments)}}try{return r.apply(this,arguments)}catch(f){throw(0,TG.endSpan)(l,f),f}}}}_getPatchCreateClient(){return function(n){return(0,TG.getTracedCreateClient)(n)}}_getPatchCreateStream(){return function(n){return(0,TG.getTracedCreateStreamTrace)(n)}}};vG.RedisInstrumentationV2_V3=vte});var Zze=w(AG=>{"use strict";Object.defineProperty(AG,"__esModule",{value:!0});AG.getClientAttributes=void 0;var Ate=(Nn(),ke(Mr)),tw=_G(),Kze=Jt();function H$t(e,t,n){let r={};return n&Kze.SemconvStability.OLD&&Object.assign(r,{[tw.ATTR_DB_SYSTEM]:tw.DB_SYSTEM_VALUE_REDIS,[tw.ATTR_NET_PEER_NAME]:t?.socket?.host,[tw.ATTR_NET_PEER_PORT]:t?.socket?.port,[tw.ATTR_DB_CONNECTION_STRING]:q$t(e,t?.url)}),n&Kze.SemconvStability.STABLE&&Object.assign(r,{[Ate.ATTR_DB_SYSTEM_NAME]:tw.DB_SYSTEM_NAME_VALUE_REDIS,[Ate.ATTR_SERVER_ADDRESS]:t?.socket?.host,[Ate.ATTR_SERVER_PORT]:t?.socket?.port}),r}AG.getClientAttributes=H$t;function q$t(e,t){if(!(typeof t!="string"||!t))try{let n=new URL(t);return n.searchParams.delete("user_pwd"),n.username="",n.password="",n.href}catch(n){e.error("failed to sanitize redis connection url",n)}}});var Qze=w(RG=>{"use strict";Object.defineProperty(RG,"__esModule",{value:!0});RG.RedisInstrumentationV4_V5=void 0;var nd=(Ce(),ke(Ye)),pi=Jt(),Yze=Zze(),B$t=yG(),Jze=bG(),Rte=(Nn(),ke(Mr)),G$t=_G(),lP=Symbol("opentelemetry.instrumentation.redis.open_spans"),Xze=Symbol("opentelemetry.instrumentation.redis.multi_command_options"),wte=class e extends pi.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(Jze.PACKAGE_NAME,Jze.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[lP];return n._endSpansWithRedisReplies(c,a,t),a}).catch(a=>{let c=this[lP];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[Xze]=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,Yze.getClientAttributes)(t._diag,s,t._semconvStability),a=t.tracer.startSpan(`${e.COMPONENT}-connect`,{kind:nd.SpanKind.CLIENT,attributes:o});return nd.context.with(nd.trace.setSpan(nd.context.active(),a),()=>r.apply(this)).then(u=>(a.end(),u)).catch(u=>(a.recordException(u),a.setStatus({code:nd.SpanStatusCode.ERROR,message:u.message}),a.end(),Promise.reject(u)))}}}_traceClientCommand(t,n,r,i){if(nd.trace.getSpan(nd.context.active())===void 0&&this.getConfig().requireParentSpan)return t.apply(n,r);let o=n.options||n[Xze],a=i[0],c=i.slice(1),u=this.getConfig().dbStatementSerializer||B$t.defaultDbStatementSerializer,l=(0,Yze.getClientAttributes)(this._diag,o,this._semconvStability);this._semconvStability&pi.SemconvStability.STABLE&&(l[Rte.ATTR_DB_OPERATION_NAME]=a);try{let p=u(a,c);p!=null&&(this._semconvStability&pi.SemconvStability.OLD&&(l[G$t.ATTR_DB_STATEMENT]=p),this._semconvStability&pi.SemconvStability.STABLE&&(l[Rte.ATTR_DB_QUERY_TEXT]=p))}catch(p){this._diag.error("dbStatementSerializer throw an exception",p,{commandName:a})}let d=this.tracer.startSpan(`${e.COMPONENT}-${a}`,{kind:nd.SpanKind.CLIENT,attributes:l}),f=nd.context.with(nd.trace.setSpan(nd.context.active(),d),()=>t.apply(n,r));if(typeof f?.then=="function")f.then(p=>{this._endSpanWithResponse(d,a,c,p,void 0)},p=>{this._endSpanWithResponse(d,a,c,null,p)});else{let p=f;p[lP]=p[lP]||[],p[lP].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(wG,"__esModule",{value:!0});wG.RedisInstrumentation=void 0;var z$t=Jt(),$ze=bG(),V$t=Wze(),W$t=Qze(),e2e={requireParentSpan:!1},kte=class extends z$t.InstrumentationBase{instrumentationV2_V3;instrumentationV4_V5;initialized=!1;constructor(t={}){let n={...e2e,...t};super($ze.PACKAGE_NAME,$ze.PACKAGE_VERSION,n),this.instrumentationV2_V3=new V$t.RedisInstrumentationV2_V3(this.getConfig()),this.instrumentationV4_V5=new W$t.RedisInstrumentationV4_V5(this.getConfig()),this.initialized=!0}setConfig(t={}){let n={...e2e,...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())}};wG.RedisInstrumentation=kte});var n2e=w(kG=>{"use strict";Object.defineProperty(kG,"__esModule",{value:!0});kG.RedisInstrumentation=void 0;var K$t=t2e();Object.defineProperty(kG,"RedisInstrumentation",{enumerable:!0,get:function(){return K$t.RedisInstrumentation}})});function dP(e,t){return e.includes(t.toLowerCase())}function xte(e){return dP(Ite,e)?"cache.get":dP(Y$t,e)?"cache.put":void 0}function J$t(e,t){return t.some(n=>e.startsWith(n))}function i2e(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)?r2e(i.map(s=>n(s))):[""],r=t[0];return dP(Z$t,e)&&r!=null?n(r):r2e(t.map(i=>n(i)))}catch{return}}function s2e(e,t,n){if(!xte(e))return!1;for(let r of t)if(J$t(r,n))return!0;return!1}function o2e(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 r2e(e){let t=[],n=r=>{r.forEach(i=>{Array.isArray(i)?n(i):t.push(i)})};return n(e),t}var Z$t,Ite,Y$t,a2e=v(()=>{Z$t=["get","set","setex"],Ite=["get","mget"],Y$t=["set","setex"]});var c2e,u2e,IG,fP,l2e,X$t,Q$t,d2e,$$t,f2e,p2e=v(()=>{c2e=Se(Gze(),1),u2e=Se(n2e(),1);st();sr();a2e();IG="Redis",fP={},l2e=(e,t,n,r)=>{e.setAttribute(Rt,"auto.db.otel.redis");let i=i2e(t,n),s=xte(t);if(!i||!s||!fP.cachePrefixes||!s2e(t,i,fP.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=o2e(r);c&&e.setAttribute(Q7,c),dP(Ite,t)&&c!==void 0&&e.setAttribute(J7,c>0),e.setAttributes({[Gt]:s,[X7]:i});let u=i.join(", ");e.updateName(fP.maxCacheKeyLength?Ey(u,fP.maxCacheKeyLength):u)},X$t=rt(`${IG}.IORedis`,()=>new c2e.IORedisInstrumentation({responseHook:l2e})),Q$t=rt(`${IG}.Redis`,()=>new u2e.RedisInstrumentation({responseHook:l2e})),d2e=Object.assign(()=>{X$t(),Q$t()},{id:IG}),$$t=((e={})=>({name:IG,setupOnce(){fP=e,d2e()}})),f2e=$$t});var h2e=w(xG=>{"use strict";Object.defineProperty(xG,"__esModule",{value:!0});xG.EVENT_LISTENERS_SET=void 0;xG.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.pg.eventListenersSet")});var Ote=w(pP=>{"use strict";Object.defineProperty(pP,"__esModule",{value:!0});pP.AttributeNames=void 0;var een;(function(e){e.PG_VALUES="db.postgresql.values",e.PG_PLAN="db.postgresql.plan",e.IDLE_TIMEOUT_MILLIS="db.postgresql.idle.timeout.millis",e.MAX_CLIENT="db.postgresql.max.client"})(een=pP.AttributeNames||(pP.AttributeNames={}))});var Nte=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 Pte=w(hP=>{"use strict";Object.defineProperty(hP,"__esModule",{value:!0});hP.SpanNames=void 0;var ten;(function(e){e.QUERY_PREFIX="pg.query",e.CONNECT="pg.connect",e.POOL_CONNECT="pg-pool.connect"})(ten=hP.SpanNames||(hP.SpanNames={}))});var _2e=w(Hn=>{"use strict";Object.defineProperty(Hn,"__esModule",{value:!0});Hn.sanitizedErrorMessage=Hn.isObjectWithTextString=Hn.getErrorMessage=Hn.patchClientConnectCallback=Hn.patchCallbackPGPool=Hn.updateCounter=Hn.getPoolName=Hn.patchCallback=Hn.handleExecutionResult=Hn.handleConfigQuery=Hn.shouldSkipInstrumentation=Hn.getSemanticAttributesFromPoolConnection=Hn.getSemanticAttributesFromConnection=Hn.getConnectionString=Hn.parseAndMaskConnectionString=Hn.parseNormalizedOperationName=Hn.getQuerySpanName=void 0;var oS=(Ce(),ke(Ye)),OG=Ote(),rd=(Nn(),ke(Mr)),ds=Nte(),o_=Jt(),m2e=Pte();function g2e(e,t){if(!t)return m2e.SpanNames.QUERY_PREFIX;let n=typeof t.name=="string"&&t.name?t.name:y2e(t.text);return`${m2e.SpanNames.QUERY_PREFIX}:${n}${e?` ${e}`:""}`}Hn.getQuerySpanName=g2e;function y2e(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=y2e;function S2e(e){try{let t=new URL(e);return t.username="",t.password="",t.toString()}catch{return"postgresql://localhost:5432/"}}Hn.parseAndMaskConnectionString=S2e;function Cte(e){if("connectionString"in e&&e.connectionString)return S2e(e.connectionString);let t=e.host||"localhost",n=e.port||5432,r=e.database||"";return`postgresql://${t}:${n}/${r}`}Hn.getConnectionString=Cte;function NG(e){if(Number.isInteger(e))return e}function E2e(e,t){let n={};return t&o_.SemconvStability.OLD&&(n={...n,[ds.ATTR_DB_SYSTEM]:ds.DB_SYSTEM_VALUE_POSTGRESQL,[ds.ATTR_DB_NAME]:e.database,[ds.ATTR_DB_CONNECTION_STRING]:Cte(e),[ds.ATTR_DB_USER]:e.user,[ds.ATTR_NET_PEER_NAME]:e.host,[ds.ATTR_NET_PEER_PORT]:NG(e.port)}),t&o_.SemconvStability.STABLE&&(n={...n,[rd.ATTR_DB_SYSTEM_NAME]:rd.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[rd.ATTR_DB_NAMESPACE]:e.namespace,[rd.ATTR_SERVER_ADDRESS]:e.host,[rd.ATTR_SERVER_PORT]:NG(e.port)}),n}Hn.getSemanticAttributesFromConnection=E2e;function nen(e,t){let n;try{n=e.connectionString?new URL(e.connectionString):void 0}catch{n=void 0}let r={[OG.AttributeNames.IDLE_TIMEOUT_MILLIS]:e.idleTimeoutMillis,[OG.AttributeNames.MAX_CLIENT]:e.maxClient};return t&o_.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]:Cte(e),[ds.ATTR_NET_PEER_NAME]:n?.hostname??e.host,[ds.ATTR_NET_PEER_PORT]:Number(n?.port)||NG(e.port),[ds.ATTR_DB_USER]:n?.username??e.user}),t&o_.SemconvStability.STABLE&&(r={...r,[rd.ATTR_DB_SYSTEM_NAME]:rd.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[rd.ATTR_DB_NAMESPACE]:e.namespace,[rd.ATTR_SERVER_ADDRESS]:n?.hostname??e.host,[rd.ATTR_SERVER_PORT]:Number(n?.port)||NG(e.port)}),r}Hn.getSemanticAttributesFromPoolConnection=nen;function ren(e){return e.requireParentSpan===!0&&oS.trace.getSpan(oS.context.active())===void 0}Hn.shouldSkipInstrumentation=ren;function ien(e,t,n,r){let{connectionParameters:i}=this,s=i.database,o=g2e(s,r),a=e.startSpan(o,{kind:oS.SpanKind.CLIENT,attributes:E2e(i,n)});if(!r)return a;if(r.text&&(n&o_.SemconvStability.OLD&&a.setAttribute(ds.ATTR_DB_STATEMENT,r.text),n&o_.SemconvStability.STABLE&&a.setAttribute(rd.ATTR_DB_QUERY_TEXT,r.text)),t.enhancedDatabaseReporting&&Array.isArray(r.values))try{let c=r.values.map(u=>u==null?"null":u instanceof Buffer?u.toString():typeof u=="object"?typeof u.toPostgres=="function"?u.toPostgres():JSON.stringify(u):u.toString());a.setAttribute(OG.AttributeNames.PG_VALUES,c)}catch(c){oS.diag.error("failed to stringify ",r.values,c)}return typeof r.name=="string"&&a.setAttribute(OG.AttributeNames.PG_PLAN,r.name),a}Hn.handleConfigQuery=ien;function b2e(e,t,n){typeof e.responseHook=="function"&&(0,o_.safeExecuteInTheMiddle)(()=>{e.responseHook(t,{data:n})},r=>{r&&oS.diag.error("Error running response hook",r)},!0)}Hn.handleExecutionResult=b2e;function sen(e,t,n,r,i){return function(o,a){o?(Object.prototype.hasOwnProperty.call(o,"code")&&(r[rd.ATTR_ERROR_TYPE]=o.code),o instanceof Error&&t.recordException(PG(o)),t.setStatus({code:oS.SpanStatusCode.ERROR,message:o.message})):b2e(e,t,a),i(),t.end(),n.call(this,o,a)}}Hn.patchCallback=sen;function oen(e){let t="";return t+=(e?.host?`${e.host}`:"unknown_host")+":",t+=(e?.port?`${e.port}`:"unknown_port")+"/",t+=e?.database?`${e.database}`:"unknown_database",t.trim()}Hn.getPoolName=oen;function aen(e,t,n,r,i){let s=t.totalCount,o=t.waitingCount,a=t.idleCount,c=s-a;return n.add(c-i.used,{[ds.ATTR_DB_CLIENT_CONNECTION_STATE]:ds.DB_CLIENT_CONNECTION_STATE_VALUE_USED,[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),n.add(a-i.idle,{[ds.ATTR_DB_CLIENT_CONNECTION_STATE]:ds.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE,[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),r.add(o-i.pending,{[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),{used:c,idle:a,pending:o}}Hn.updateCounter=aen;function cen(e,t){return function(r,i,s){r&&(r instanceof Error&&e.recordException(PG(r)),e.setStatus({code:oS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.call(this,r,i,s)}}Hn.patchCallbackPGPool=cen;function uen(e,t){return function(r){r&&(r instanceof Error&&e.recordException(PG(r)),e.setStatus({code:oS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.apply(this,arguments)}}Hn.patchClientConnectCallback=uen;function len(e){return typeof e=="object"&&e!==null&&"message"in e?String(e.message):void 0}Hn.getErrorMessage=len;function den(e){return typeof e=="object"&&typeof e?.text=="string"}Hn.isObjectWithTextString=den;function PG(e){let t=e?.name??"PostgreSQLError",n=e?.code??"UNKNOWN";return`PostgreSQL error of type '${t}' occurred (code: ${n})`}Hn.sanitizedErrorMessage=PG});var T2e=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 I2e=w(MG=>{"use strict";Object.defineProperty(MG,"__esModule",{value:!0});MG.PgInstrumentation=void 0;var Dc=Jt(),Ur=(Ce(),ke(Ye)),v2e=h2e(),Zi=_2e(),A2e=gte(),R2e=T2e(),w2e=Pte(),CG=fr(),hf=(Nn(),ke(Mr)),mP=Nte();function rw(e){return e[Symbol.toStringTag]==="Module"?e.default:e}var Mte=class extends Dc.InstrumentationBase{_connectionsCounter={used:0,idle:0,pending:0};_semconvStability;constructor(t={}){super(R2e.PACKAGE_NAME,R2e.PACKAGE_VERSION,t),this._semconvStability=(0,Dc.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._operationDuration=this.meter.createHistogram(hf.METRIC_DB_CLIENT_OPERATION_DURATION,{description:"Duration of database client operations.",unit:"s",valueType:Ur.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.001,.005,.01,.05,.1,.5,1,5,10]}}),this._connectionsCounter={idle:0,pending:0,used:0},this._connectionsCount=this.meter.createUpDownCounter(mP.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(mP.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 Dc.InstrumentationNodeModuleFile("pg/lib/native/client.js",t,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),i=new Dc.InstrumentationNodeModuleFile("pg/lib/client.js",t,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),s=new Dc.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 Dc.InstrumentationNodeModuleDefinition("pg-pool",n,a=>{let c=rw(a);return(0,Dc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect"),this._wrap(c.prototype,"connect",this._getPoolConnectPatch()),c},a=>{let c=rw(a);(0,Dc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect")});return[s,o]}_patchPgClient(t){if(!t)return;let n=rw(t);return(0,Dc.isWrapped)(n.prototype.query)&&this._unwrap(n.prototype,"query"),(0,Dc.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,Dc.isWrapped)(n.prototype.query)&&this._unwrap(n.prototype,"query"),(0,Dc.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(w2e.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 k2e(o,a)}}recordOperationDuration(t,n){let r={},i=[hf.ATTR_DB_NAMESPACE,hf.ATTR_ERROR_TYPE,hf.ATTR_SERVER_PORT,hf.ATTR_SERVER_ADDRESS,hf.ATTR_DB_OPERATION_NAME];this._semconvStability&Dc.SemconvStability.OLD&&i.push(mP.ATTR_DB_SYSTEM),this._semconvStability&Dc.SemconvStability.STABLE&&i.push(hf.ATTR_DB_SYSTEM_NAME),i.forEach(o=>{o in t&&(r[o]=t[o])});let s=(0,CG.hrTimeToMilliseconds)((0,CG.hrTimeDuration)(n,(0,CG.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,CG.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={[mP.ATTR_DB_SYSTEM]:mP.DB_SYSTEM_VALUE_POSTGRESQL,[hf.ATTR_DB_NAMESPACE]:this.database,[hf.ATTR_SERVER_PORT]:this.connectionParameters.port,[hf.ATTR_SERVER_ADDRESS]:this.connectionParameters.host};u?.text&&(l[hf.ATTR_DB_OPERATION_NAME]=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,A2e.addSqlCommenterComment)(p,o):c&&!("name"in o)&&(i[0]={...o,text:(0,A2e.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,Dc.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[v2e.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[v2e.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(w2e.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 k2e(o,a)}}};MG.PgInstrumentation=Mte;function k2e(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 x2e=w(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.AttributeNames=iw.PgInstrumentation=void 0;var fen=I2e();Object.defineProperty(iw,"PgInstrumentation",{enumerable:!0,get:function(){return fen.PgInstrumentation}});var pen=Ote();Object.defineProperty(iw,"AttributeNames",{enumerable:!0,get:function(){return pen.AttributeNames}})});var O2e,N2e,P2e,hen,C2e,M2e=v(()=>{O2e=Se(x2e(),1);sr();N2e="Postgres",P2e=rt(N2e,O2e.PgInstrumentation,e=>({requireParentSpan:!0,requestHook(t){Lr(t,"auto.db.otel.postgres")},ignoreConnectSpans:e?.ignoreConnectSpans??!1})),hen=(e=>({name:N2e,setupOnce(){P2e(e)}})),C2e=hen});var aS,Dte,L2e,men,gen,D2e,Lte,yen,U2e,F2e=v(()=>{Ce();aS=Se(Jt(),1);Nn();st();sr();Jb();Dte="PostgresJs",L2e=[">=3.0.0 <4"],men=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,gen=Symbol.for("sentry.query.from.instrumented.sql"),D2e=rt(Dte,e=>new Lte({requireParentSpan:e?.requireParentSpan??!0,requestHook:e?.requestHook})),Lte=class extends aS.InstrumentationBase{constructor(t){super("sentry-postgres-js",Pn,t)}init(){let t=new aS.InstrumentationNodeModuleDefinition("postgres",L2e,n=>{try{return this._patchPostgres(n)}catch(r){return So&&Y.error("Failed to patch postgres module:",r),n}},n=>n);return["src","cf/src","cjs/src"].forEach(n=>{t.files.push(new aS.InstrumentationNodeModuleFile(`postgres/${n}/query.js`,L2e,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&&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 So&&Y.warn("postgres() did not return a valid instance"),a;let c=i.getConfig();return ZX(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:(lN(t,"default",s),t)}_shouldCreateSpans(){let t=this.getConfig();return jt.getSpan(Ve.active())!==void 0||!t.requireParentSpan}_setOperationName(t,n,r){if(r){t.setAttribute(lA,r);return}let i=n?.match(men);i?.[1]&&t.setAttribute(lA,i[1].toUpperCase())}_reconstructQuery(t){if(t?.length)return t.length===1?t[0]||void 0:t.reduce((n,r,i)=>i===0?r:`${n}$${i}${r}`,"")}_sanitizeSqlQuery(t){return t?t.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{Lr(a,"auto.db.postgresjs"),a.setAttributes({[gb]:"postgres",[dJ]:o});let c=n.getConfig(),{requestHook:u}=c;u&&(0,aS.safeExecuteInTheMiddle)(()=>u(a,o,void 0),f=>{f&&(a.setAttribute("sentry.hook.error","requestHook failed"),So&&Y.error(`Error in requestHook for ${Dte} 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&&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(fJ,h?.[0]?.code||"unknown"),a.setAttribute(pJ,h?.[0]?.name||"unknown"),n._setOperationName(a,o),a.end()}catch(m){So&&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}},yen=(e=>({name:Dte,setupOnce(){D2e(e)}})),U2e=yen});var j2e=w(gP=>{"use strict";Object.defineProperty(gP,"__esModule",{value:!0});gP.SeverityNumber=void 0;var Sen;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(Sen=gP.SeverityNumber||(gP.SeverityNumber={}))});var DG=w(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.NOOP_LOGGER=sw.NoopLogger=void 0;var LG=class{emit(t){}};sw.NoopLogger=LG;sw.NOOP_LOGGER=new LG});var FG=w(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.NOOP_LOGGER_PROVIDER=ow.NoopLoggerProvider=void 0;var Een=DG(),UG=class{getLogger(t,n,r){return new Een.NoopLogger}};ow.NoopLoggerProvider=UG;ow.NOOP_LOGGER_PROVIDER=new UG});var Fte=w(jG=>{"use strict";Object.defineProperty(jG,"__esModule",{value:!0});jG.ProxyLogger=void 0;var ben=DG(),Ute=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):ben.NOOP_LOGGER}};jG.ProxyLogger=Ute});var Hte=w(HG=>{"use strict";Object.defineProperty(HG,"__esModule",{value:!0});HG.ProxyLoggerProvider=void 0;var _en=FG(),Ten=Fte(),jte=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new Ten.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:_en.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)}};HG.ProxyLoggerProvider=jte});var H2e=w(qG=>{"use strict";Object.defineProperty(qG,"__esModule",{value:!0});qG._globalThis=void 0;qG._globalThis=typeof globalThis=="object"?globalThis:global});var q2e=w(BG=>{"use strict";Object.defineProperty(BG,"__esModule",{value:!0});BG._globalThis=void 0;var ven=H2e();Object.defineProperty(BG,"_globalThis",{enumerable:!0,get:function(){return ven._globalThis}})});var B2e=w(GG=>{"use strict";Object.defineProperty(GG,"__esModule",{value:!0});GG._globalThis=void 0;var Aen=q2e();Object.defineProperty(GG,"_globalThis",{enumerable:!0,get:function(){return Aen._globalThis}})});var G2e=w(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});Qp.API_BACKWARDS_COMPATIBILITY_VERSION=Qp.makeGetter=Qp._global=Qp.GLOBAL_LOGS_API_KEY=void 0;var Ren=B2e();Qp.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");Qp._global=Ren._globalThis;function wen(e,t,n){return r=>r===e?t:n}Qp.makeGetter=wen;Qp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var V2e=w(zG=>{"use strict";Object.defineProperty(zG,"__esModule",{value:!0});zG.LogsAPI=void 0;var id=G2e(),ken=FG(),z2e=Hte(),qte=class e{constructor(){this._proxyLoggerProvider=new z2e.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return id._global[id.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(id._global[id.GLOBAL_LOGS_API_KEY]=(0,id.makeGetter)(id.API_BACKWARDS_COMPATIBILITY_VERSION,t,ken.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=id._global[id.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(id._global,id.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete id._global[id.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new z2e.ProxyLoggerProvider}};zG.LogsAPI=qte});var Bte=w(Bo=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});Bo.logs=Bo.ProxyLoggerProvider=Bo.ProxyLogger=Bo.NoopLoggerProvider=Bo.NOOP_LOGGER_PROVIDER=Bo.NoopLogger=Bo.NOOP_LOGGER=Bo.SeverityNumber=void 0;var Ien=j2e();Object.defineProperty(Bo,"SeverityNumber",{enumerable:!0,get:function(){return Ien.SeverityNumber}});var W2e=DG();Object.defineProperty(Bo,"NOOP_LOGGER",{enumerable:!0,get:function(){return W2e.NOOP_LOGGER}});Object.defineProperty(Bo,"NoopLogger",{enumerable:!0,get:function(){return W2e.NoopLogger}});var K2e=FG();Object.defineProperty(Bo,"NOOP_LOGGER_PROVIDER",{enumerable:!0,get:function(){return K2e.NOOP_LOGGER_PROVIDER}});Object.defineProperty(Bo,"NoopLoggerProvider",{enumerable:!0,get:function(){return K2e.NoopLoggerProvider}});var xen=Fte();Object.defineProperty(Bo,"ProxyLogger",{enumerable:!0,get:function(){return xen.ProxyLogger}});var Oen=Hte();Object.defineProperty(Bo,"ProxyLoggerProvider",{enumerable:!0,get:function(){return Oen.ProxyLoggerProvider}});var Nen=V2e();Bo.logs=Nen.LogsAPI.getInstance()});var Z2e=w(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});aw.disableInstrumentations=aw.enableInstrumentations=void 0;function Pen(e,t,n,r){for(let i=0,s=e.length;it.disable())}aw.disableInstrumentations=Cen});var X2e=w(VG=>{"use strict";Object.defineProperty(VG,"__esModule",{value:!0});VG.registerInstrumentations=void 0;var Y2e=(Ce(),ke(Ye)),Men=Bte(),J2e=Z2e();function Len(e){let t=e.tracerProvider||Y2e.trace.getTracerProvider(),n=e.meterProvider||Y2e.metrics.getMeterProvider(),r=e.loggerProvider||Men.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,J2e.enableInstrumentations)(i,t,n,r),()=>{(0,J2e.disableInstrumentations)(i)}}VG.registerInstrumentations=Len});var oVe=w(WG=>{"use strict";Object.defineProperty(WG,"__esModule",{value:!0});WG.satisfies=void 0;var Wte=(Ce(),ke(Ye)),nVe=/^(?: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-]+)*))?$/,Den=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,Uen={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function Fen(e,t,n){if(!jen(e))return Wte.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=Gen(e);if(!r)return!1;let i=[],s=rVe(r,t,i,n);return s&&!n?.includePrerelease?qen(r,i):s}WG.satisfies=Fen;function jen(e){return typeof e=="string"&&nVe.test(e)}function rVe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Gte(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=ltn(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!Gte(e,s,n,r))return!1;return!0}return Gte(e,t,n,r)}function Gte(e,t,n,r){if(t=Ben(t,r),t.includes(" "))return rVe(e,t,n,r);{let i=zen(t);return n.push(i),Hen(e,i)}}function Hen(e,t){if(t.invalid)return!1;if(!t.version||Vte(t.version))return!0;let n=$2e(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=$2e(r,i)}return Uen[t.op]?.includes(n)}function qen(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function Ben(e,t){return e=e.trim(),e=ctn(e,t),e=atn(e),e=utn(e,t),e=e.trim(),e}function Uc(e){return!e||e.toLowerCase()==="x"||e==="*"}function Gen(e){let t=e.match(nVe);if(!t){Wte.diag.error(`Invalid version: ${e}`);return}let n=t.groups.version,r=t.groups.prerelease,i=t.groups.build,s=n.split("."),o=r?.split(".");return{op:void 0,version:n,versionSegments:s,versionSegmentCount:s.length,prerelease:r,prereleaseSegments:o,prereleaseSegmentCount:o?o.length:0,build:i}}function zen(e){if(!e)return{};let t=e.match(Den);if(!t)return Wte.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 Vte(e){return e==="*"||e==="x"||e==="X"}function Q2e(e){let t=parseInt(e,10);return isNaN(t)?e:t}function Ven(e,t){if(typeof e==typeof t){if(typeof e=="number")return[e,t];if(typeof e=="string")return[e,t];throw new Error("Version segments can only be strings or numbers")}else return[String(e),String(t)]}function Wen(e,t){if(Vte(e)||Vte(t))return 0;let[n,r]=Ven(Q2e(e),Q2e(t));return n>r?1:n)?=?)",eVe=`(?:${sVe}|${Ken})`,Yen=`(?:-(${eVe}(?:\\.${eVe})*))`,tVe=`${iVe}+`,Jen=`(?:\\+(${tVe}(?:\\.${tVe})*))`,zte=`${sVe}|x|X|\\*`,yP=`[v=\\s]*(${zte})(?:\\.(${zte})(?:\\.(${zte})(?:${Yen})?${Jen}?)?)?`,Xen=`^${Zen}\\s*${yP}$`,Qen=new RegExp(Xen),$en=`^\\s*(${yP})\\s+-\\s+(${yP})\\s*$`,etn=new RegExp($en),ttn="(?:~>?)",ntn=`^${ttn}${yP}$`,rtn=new RegExp(ntn),itn="(?:\\^)",stn=`^${itn}${yP}$`,otn=new RegExp(stn);function atn(e){let t=rtn;return e.replace(t,(n,r,i,s,o)=>{let a;return Uc(r)?a="":Uc(i)?a=`>=${r}.0.0 <${+r+1}.0.0-0`:Uc(s)?a=`>=${r}.${i}.0 <${r}.${+i+1}.0-0`:o?a=`>=${r}.${i}.${s}-${o} <${r}.${+i+1}.0-0`:a=`>=${r}.${i}.${s} <${r}.${+i+1}.0-0`,a})}function ctn(e,t){let n=otn,r=t?.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{let u;return Uc(s)?u="":Uc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:Uc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`:s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`,u})}function utn(e,t){let n=Qen;return e.replace(n,(r,i,s,o,a,c)=>{let u=Uc(s),l=u||Uc(o),d=l||Uc(a),f=d;return i==="="&&f&&(i=""),c=t?.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),r})}function ltn(e,t){let n=etn;return e.replace(n,(r,i,s,o,a,c,u,l,d,f,p,h)=>(Uc(s)?i="":Uc(o)?i=`>=${s}.0.0${t?.includePrerelease?"-0":""}`:Uc(a)?i=`>=${s}.${o}.0${t?.includePrerelease?"-0":""}`:c?i=`>=${i}`:i=`>=${i}${t?.includePrerelease?"-0":""}`,Uc(d)?l="":Uc(f)?l=`<${+d+1}.0.0-0`:Uc(p)?l=`<${d}.${+f+1}.0-0`:h?l=`<=${d}.${f}.${p}-${h}`:t?.includePrerelease?l=`<${d}.${f}.${+p+1}-0`:l=`<=${l}`,`${i} ${l}`.trim()))}});var Kte=w(pa=>{"use strict";Object.defineProperty(pa,"__esModule",{value:!0});pa.massUnwrap=pa.unwrap=pa.massWrap=pa.wrap=void 0;var Fc=console.error.bind(console);function SP(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var dtn=(e,t,n)=>{if(!e||!e[t]){Fc("no original function "+String(t)+" to wrap");return}if(!n){Fc("no wrapper function"),Fc(new Error().stack);return}let r=e[t];if(typeof r!="function"||typeof n!="function"){Fc("original object and wrapper must be functions");return}let i=n(r,t);return SP(i,"__original",r),SP(i,"__unwrap",()=>{e[t]===i&&SP(e,t,r)}),SP(i,"__wrapped",!0),SP(e,t,i),i};pa.wrap=dtn;var ftn=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{Fc("must provide one or more modules to patch"),Fc(new Error().stack);return}if(!(t&&Array.isArray(t))){Fc("must provide one or more functions to wrap on modules");return}e.forEach(r=>{t.forEach(i=>{(0,pa.wrap)(r,i,n)})})};pa.massWrap=ftn;var ptn=(e,t)=>{if(!e||!e[t]){Fc("no function to unwrap."),Fc(new Error().stack);return}let n=e[t];if(!n.__unwrap)Fc("no original to unwrap to -- has "+String(t)+" already been unwrapped?");else{n.__unwrap();return}};pa.unwrap=ptn;var htn=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{Fc("must provide one or more modules to patch"),Fc(new Error().stack);return}if(!(t&&Array.isArray(t))){Fc("must provide one or more functions to unwrap on modules");return}e.forEach(n=>{t.forEach(r=>{(0,pa.unwrap)(n,r)})})};pa.massUnwrap=htn;function EP(e){e&&e.logger&&(typeof e.logger!="function"?Fc("new logger isn't a function, not replacing"):Fc=e.logger)}pa.default=EP;EP.wrap=pa.wrap;EP.massWrap=pa.massWrap;EP.unwrap=pa.unwrap;EP.massUnwrap=pa.massUnwrap});var aVe=w(ZG=>{"use strict";Object.defineProperty(ZG,"__esModule",{value:!0});ZG.InstrumentationAbstract=void 0;var Zte=(Ce(),ke(Ye)),mtn=Bte(),KG=Kte(),Yte=class{instrumentationName;instrumentationVersion;_config={};_tracer;_meter;_logger;_diag;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=Zte.diag.createComponentLogger({namespace:t}),this._tracer=Zte.trace.getTracer(t,n),this._meter=Zte.metrics.getMeter(t,n),this._logger=mtn.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=KG.wrap;_unwrap=KG.unwrap;_massWrap=KG.massWrap;_massUnwrap=KG.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)}}};ZG.InstrumentationAbstract=Yte});var cVe=w(cS=>{"use strict";Object.defineProperty(cS,"__esModule",{value:!0});cS.ModuleNameTrie=cS.ModuleNameSeparator=void 0;cS.ModuleNameSeparator="/";var YG=class{hooks=[];children=new Map},Jte=class{_trie=new YG;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(cS.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new YG,n.children.set(r,i)),n=i}n.hooks.push({hook:t,insertedId:this._counter++})}search(t,{maintainInsertionOrder:n,fullOnly:r}={}){let i=this._trie,s=[],o=!0;for(let a of t.split(cS.ModuleNameSeparator)){let c=i.children.get(a);if(!c){o=!1;break}r||s.push(...c.hooks),i=c}return r&&o&&s.push(...i.hooks),s.length===0?[]:s.length===1?[s[0].hook]:(n&&s.sort((a,c)=>a.insertedId-c.insertedId),s.map(({hook:a})=>a))}};cS.ModuleNameTrie=Jte});var lVe=w(JG=>{"use strict";Object.defineProperty(JG,"__esModule",{value:!0});JG.RequireInTheMiddleSingleton=void 0;var gtn=Tb(),uVe=Z("path"),Xte=cVe(),ytn=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),Qte=class e{_moduleNameTrie=new Xte.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new gtn.Hook(null,{internals:!0},(t,n,r)=>{let i=Stn(n),s=this._moduleNameTrie.search(i,{maintainInsertionOrder:!0,fullOnly:r===void 0});for(let{onRequire:o}of s)t=o(t,n,r);return t})}register(t,n){let r={moduleName:t,onRequire:n};return this._moduleNameTrie.insert(r),r}static getInstance(){return ytn?new e:this._instance=this._instance??new e}};JG.RequireInTheMiddleSingleton=Qte;function Stn(e){return uVe.sep!==Xte.ModuleNameSeparator?e.split(uVe.sep).join(Xte.ModuleNameSeparator):e}});var mVe=w(bP=>{var dVe=[],$te=new WeakMap,fVe=new WeakMap,pVe=new Map,hVe=[],Etn={set(e,t,n){let r=$te.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=fVe.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=$te.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function btn(e,t,n,r,i){pVe.set(e,i),$te.set(t,n),fVe.set(t,r);let s=new Proxy(t,Etn);dVe.forEach(o=>o(e,s,i)),hVe.push([e,s,i])}bP.register=btn;bP.importHooks=dVe;bP.specifiers=pVe;bP.toHook=hVe});var EVe=w((xDr,uw)=>{var gVe=Z("path"),_tn=SO(),{fileURLToPath:Ttn}=Z("url"),{MessageChannel:vtn}=Z("worker_threads"),{isBuiltin:ene}=Z("module");ene||(ene=()=>!0);var{importHooks:tne,specifiers:Atn,toHook:Rtn}=mVe();function yVe(e){tne.push(e),Rtn.forEach(([t,n,r])=>e(t,n,r))}function SVe(e){let t=tne.indexOf(e);t>-1&&tne.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 nne;function wtn(){let{port1:e,port2:t}=new vtn,n=0,r;nne=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 _P(e,t,n){if(!(this instanceof _P))return new _P(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;nne&&Array.isArray(e)&&nne(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);ene(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=Ttn(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=_tn(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)cw(n,s,u,void 0);else if(d===i){if(!l)cw(n,s,i,l);else if(l.endsWith(Atn.get(a)))cw(n,s,i,l);else if(r){let f=i+gVe.sep+gVe.relative(l,u);cw(n,s,f,l)}}else d===o&&cw(n,s,o,l);else cw(n,s,i,l)},yVe(this._iitmHook)}_P.prototype.unhook=function(){SVe(this._iitmHook)};uw.exports=_P;uw.exports.Hook=_P;uw.exports.addHook=yVe;uw.exports.removeHook=SVe;uw.exports.createAddHookMessageChannel=wtn});var rne=w(uS=>{"use strict";Object.defineProperty(uS,"__esModule",{value:!0});uS.isWrapped=uS.safeExecuteInTheMiddleAsync=uS.safeExecuteInTheMiddle=void 0;function ktn(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}uS.safeExecuteInTheMiddle=ktn;async function Itn(e,t,n){let r,i;try{i=await e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}uS.safeExecuteInTheMiddleAsync=Itn;function xtn(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}uS.isWrapped=xtn});var TVe=w(XG=>{"use strict";Object.defineProperty(XG,"__esModule",{value:!0});XG.InstrumentationBase=void 0;var TP=Z("path"),bVe=Z("util"),Otn=oVe(),ine=Kte(),Ntn=aVe(),Ptn=lVe(),Ctn=EVe(),vP=(Ce(),ke(Ye)),Mtn=Tb(),Ltn=Z("fs"),Dtn=rne(),sne=class extends Ntn.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=Ptn.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,Dtn.isWrapped)(t[n])&&this._unwrap(t,n),bVe.types.isProxy(t)){let i=(0,ine.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,ine.wrap)(t,n,r)};_unwrap=(t,n)=>bVe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,ine.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{vP.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){vP.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{vP.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){vP.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,Ltn.readFileSync)(TP.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{vP.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 _Ve(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=TP.normalize(r);return o.filter(u=>u.name===a).filter(u=>_Ve(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&&TP.isAbsolute(a)){let u=TP.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=TP.isAbsolute(t.name)?new Mtn.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new Ctn.Hook([t.name],{internals:!1},n);this._hooks.push(s)}}}disable(){if(this._enabled){this._enabled=!1;for(let t of this._modules){typeof t.unpatch=="function"&&t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:t.name,version:t.moduleVersion}),t.unpatch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.unpatch(n.moduleExports,t.moduleVersion))}}}isEnabled(){return this._enabled}};XG.InstrumentationBase=sne;function _Ve(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,Otn.satisfies)(t,r,{includePrerelease:n}))}});var vVe=w(QG=>{"use strict";Object.defineProperty(QG,"__esModule",{value:!0});QG.normalize=void 0;var Utn=Z("path");Object.defineProperty(QG,"normalize",{enumerable:!0,get:function(){return Utn.normalize}})});var AVe=w(lw=>{"use strict";Object.defineProperty(lw,"__esModule",{value:!0});lw.normalize=lw.InstrumentationBase=void 0;var Ftn=TVe();Object.defineProperty(lw,"InstrumentationBase",{enumerable:!0,get:function(){return Ftn.InstrumentationBase}});var jtn=vVe();Object.defineProperty(lw,"normalize",{enumerable:!0,get:function(){return jtn.normalize}})});var one=w(dw=>{"use strict";Object.defineProperty(dw,"__esModule",{value:!0});dw.normalize=dw.InstrumentationBase=void 0;var RVe=AVe();Object.defineProperty(dw,"InstrumentationBase",{enumerable:!0,get:function(){return RVe.InstrumentationBase}});Object.defineProperty(dw,"normalize",{enumerable:!0,get:function(){return RVe.normalize}})});var wVe=w($G=>{"use strict";Object.defineProperty($G,"__esModule",{value:!0});$G.InstrumentationNodeModuleDefinition=void 0;var ane=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||[]}};$G.InstrumentationNodeModuleDefinition=ane});var kVe=w(ez=>{"use strict";Object.defineProperty(ez,"__esModule",{value:!0});ez.InstrumentationNodeModuleFile=void 0;var Htn=one(),cne=class{supportedVersions;patch;unpatch;name;constructor(t,n,r,i){this.supportedVersions=n,this.patch=r,this.unpatch=i,this.name=(0,Htn.normalize)(t)}};ez.InstrumentationNodeModuleFile=cne});var IVe=w(a_=>{"use strict";Object.defineProperty(a_,"__esModule",{value:!0});a_.semconvStabilityFromStr=a_.SemconvStability=void 0;var tz;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(tz=a_.SemconvStability||(a_.SemconvStability={}));function qtn(e,t){let n=tz.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=tz.DUPLICATE;break}else i.toLowerCase()===e&&(n=tz.STABLE);return n}a_.semconvStabilityFromStr=qtn});var OVe=w(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.semconvStabilityFromStr=Js.SemconvStability=Js.safeExecuteInTheMiddleAsync=Js.safeExecuteInTheMiddle=Js.isWrapped=Js.InstrumentationNodeModuleFile=Js.InstrumentationNodeModuleDefinition=Js.InstrumentationBase=Js.registerInstrumentations=void 0;var Btn=X2e();Object.defineProperty(Js,"registerInstrumentations",{enumerable:!0,get:function(){return Btn.registerInstrumentations}});var Gtn=one();Object.defineProperty(Js,"InstrumentationBase",{enumerable:!0,get:function(){return Gtn.InstrumentationBase}});var ztn=wVe();Object.defineProperty(Js,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return ztn.InstrumentationNodeModuleDefinition}});var Vtn=kVe();Object.defineProperty(Js,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return Vtn.InstrumentationNodeModuleFile}});var une=rne();Object.defineProperty(Js,"isWrapped",{enumerable:!0,get:function(){return une.isWrapped}});Object.defineProperty(Js,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return une.safeExecuteInTheMiddle}});Object.defineProperty(Js,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return une.safeExecuteInTheMiddleAsync}});var xVe=IVe();Object.defineProperty(Js,"SemconvStability",{enumerable:!0,get:function(){return xVe.SemconvStability}});Object.defineProperty(Js,"semconvStabilityFromStr",{enumerable:!0,get:function(){return xVe.semconvStabilityFromStr}})});function Ztn(){let e=fw[dne];return e?.helper?e.helper:fw[lne]?.helper}function Ytn(e){let t={helper:e};fw[dne]=t,fw[lne]=t}function Jtn(){delete fw[dne],delete fw[lne]}function $tn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}function CVe(e,t,n,r,i){if(MVe(t.name,i))return;let s={attributes:t.attributes,kind:$tn(t.kind),startTime:t.startTime};e.startActiveSpan(t.name,s,o=>{r.set(t.id,o.spanContext().spanId),t.links&&o.addLinks(t.links.flatMap(c=>{let u=r.get(c);return u?{context:{spanId:u,traceId:o.spanContext().traceId,traceFlags:o.spanContext().traceFlags}}:[]}));let a=n.filter(c=>c.parentId===t.id);for(let c of a)CVe(e,c,n,r,i);o.end(t.endTime)})}function NVe(e,t){return tnn(t)?t.then(n=>(e.end(),n),n=>{throw e.end(),n}):(e.end(),t)}function tnn(e){return e!=null&&typeof e.then=="function"}function MVe(e,t){return t.some(n=>typeof n=="string"?n===e:n.test(e))}var nz,Wtn,Ktn,lne,dne,fw,Xtn,Qtn,enn,LVe,PVe,nnn,rnn,DVe,UVe=v(()=>{Ce();nz=Se(OVe(),1);Ce();Wtn={name:"@prisma/instrumentation-contract",version:"7.6.0",description:"Shared types and utilities for Prisma instrumentation",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",exports:{".":{require:{types:"./dist/index.d.ts",default:"./dist/index.js"},import:{types:"./dist/index.d.mts",default:"./dist/index.mjs"}}},license:"Apache-2.0",homepage:"https://www.prisma.io",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/instrumentation-contract"},bugs:"https://github.com/prisma/prisma/issues",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",prepublishOnly:"pnpm run build",test:"vitest run"},files:["dist"],sideEffects:!1,devDependencies:{"@opentelemetry/api":"1.9.0"},peerDependencies:{"@opentelemetry/api":"^1.8"}},Ktn=Wtn.version.split(".")[0],lne="PRISMA_INSTRUMENTATION",dne=`V${Ktn}_PRISMA_INSTRUMENTATION`,fw=globalThis;Xtn=process.env.PRISMA_SHOW_ALL_TRACES==="true",Qtn="00-10-10-00";enn=class{tracerProvider;ignoreSpanTypes;constructor({tracerProvider:e,ignoreSpanTypes:t}){this.tracerProvider=e,this.ignoreSpanTypes=t}isEnabled(){return!0}getTraceParent(e){let t=jt.getSpanContext(e??Ve.active());return t?`00-${t.traceId}-${t.spanId}-0${t.traceFlags}`:Qtn}dispatchEngineSpans(e){let t=this.tracerProvider.getTracer("prisma"),n=new Map,r=e.filter(i=>i.parentId===null);for(let i of r)CVe(t,i,e,n,this.ignoreSpanTypes)}getActiveContext(){return Ve.active()}runInChildSpan(e,t){if(typeof e=="string"&&(e={name:e}),e.internal&&!Xtn)return t();let n=this.tracerProvider.getTracer("prisma"),r=e.context??this.getActiveContext(),i=`prisma:client:${e.name}`;if(MVe(i,this.ignoreSpanTypes))return t();if(e.active===!1){let s=n.startSpan(i,e,r);return NVe(s,t(s,r))}return n.startActiveSpan(i,e,s=>NVe(s,t(s,r)))}};LVe={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},PVe=LVe.version,nnn=LVe.name,rnn="@prisma/client",DVe=class extends nz.InstrumentationBase{tracerProvider;constructor(e={}){super(nnn,PVe,e)}setTracerProvider(e){this.tracerProvider=e}init(){return[new nz.InstrumentationNodeModuleDefinition(rnn,[PVe])]}enable(){let e=this._config;Ytn(new enn({tracerProvider:this.tracerProvider??jt.getTracerProvider(),ignoreSpanTypes:e.ignoreSpanTypes??[]}))}disable(){Jtn()}isEnabled(){return Ztn()!==void 0}}});function inn(e){return!!e&&typeof e=="object"&&"dispatchEngineSpans"in e}function jVe(){let e=globalThis.PRISMA_INSTRUMENTATION;return e&&typeof e=="object"&&"helper"in e?e.helper:void 0}function snn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}var FVe,fne,onn,HVe,qVe=v(()=>{Ce();UVe();st();sr();FVe="Prisma";fne=class extends DVe{constructor(t){super(t?.instrumentationConfig)}enable(){super.enable();let t=jVe();inn(t)&&(t.createEngineSpan=n=>{let r=jt.getTracer("prismaV5Compatibility"),i=r._idGenerator;if(!i){xs(()=>{console.warn("[Sentry] Could not find _idGenerator on tracer, skipping Prisma v5 compatibility - some Prisma spans may be missing!")});return}try{n.spans.forEach(s=>{let o=snn(s.kind),a=s.parent_span_id,c=s.span_id,u=s.trace_id,l=s.links?.map(f=>({context:{traceId:f.trace_id,spanId:f.span_id,traceFlags:Ha.SAMPLED}})),d=jt.setSpanContext(Ve.active(),{traceId:u,spanId:a,traceFlags:Ha.SAMPLED});Ve.with(d,()=>{let f={generateTraceId:()=>u,generateSpanId:()=>c};r._idGenerator=f,r.startSpan(s.name,{kind:o,links:l,startTime:s.start_time,attributes:s.attributes}).end(s.end_time),r._idGenerator=i})})}finally{r._idGenerator=i}})}};onn=rt(FVe,e=>new fne(e)),HVe=e=>({name:FVe,setupOnce(){onn(e)},setup(t){jVe()&&t.on("spanStart",n=>{let r=vt(n);r.description?.startsWith("prisma:")&&n.setAttribute(Rt,"auto.db.otel.prisma"),r.description==="prisma:engine:db_query"&&r.data["db.query.text"]&&n.updateName(r.data["db.query.text"]),r.description==="prisma:engine:db_query"&&!r.data["db.system"]&&n.setAttribute("db.system","prisma")})}})});var BVe=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 pne=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 GVe=w(rz=>{"use strict";Object.defineProperty(rz,"__esModule",{value:!0});rz.ATTR_HTTP_METHOD=void 0;rz.ATTR_HTTP_METHOD="http.method"});var hne=w(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});AP.AttributeNames=void 0;var ann;(function(e){e.HAPI_TYPE="hapi.type",e.PLUGIN_NAME="hapi.plugin.name",e.EXT_TYPE="server.ext.type"})(ann=AP.AttributeNames||(AP.AttributeNames={}))});var WVe=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 zVe=(Nn(),ke(Mr)),cnn=GVe(),RP=pne(),lS=hne(),VVe=Jt();function unn(e){return e.name?e.name:e.pkg.name}Xs.getPluginName=unn;var lnn=e=>typeof e=="string"&&RP.HapiLifecycleMethodNames.has(e);Xs.isLifecycleExtType=lnn;var dnn=e=>{let t=e?.type;return t!==void 0&&(0,Xs.isLifecycleExtType)(t)};Xs.isLifecycleExtEventObj=dnn;var fnn=e=>Array.isArray(e)&&e.length<=3&&(0,Xs.isLifecycleExtType)(e[0])&&typeof e[1]=="function";Xs.isDirectExtInput=fnn;var pnn=e=>!Array.isArray(e);Xs.isPatchableExtMethod=pnn;var hnn=(e,t,n)=>{let r={[zVe.ATTR_HTTP_ROUTE]:e.path};t&VVe.SemconvStability.OLD&&(r[cnn.ATTR_HTTP_METHOD]=e.method),t&VVe.SemconvStability.STABLE&&(r[zVe.ATTR_HTTP_REQUEST_METHOD]=e.method);let i;return n?(r[lS.AttributeNames.HAPI_TYPE]=RP.HapiLayerType.PLUGIN,r[lS.AttributeNames.PLUGIN_NAME]=n,i=`${n}: route - ${e.path}`):(r[lS.AttributeNames.HAPI_TYPE]=RP.HapiLayerType.ROUTER,i=`route - ${e.path}`),{attributes:r,name:i}};Xs.getRouteMetadata=hnn;var mnn=(e,t,n)=>{let r=`ext - ${e}`;return n&&n!=="method"&&(r=`ext - ${e} - ${n}`),t?{attributes:{[lS.AttributeNames.EXT_TYPE]:e,[lS.AttributeNames.HAPI_TYPE]:RP.HapiLayerType.EXT,[lS.AttributeNames.PLUGIN_NAME]:t},name:`${t}: ${r}`}:{attributes:{[lS.AttributeNames.EXT_TYPE]:e,[lS.AttributeNames.HAPI_TYPE]:RP.HapiLayerType.EXT},name:r}};Xs.getExtMetadata=mnn;var gnn=e=>"plugin"in e?"plugin"in e.plugin?e.plugin.plugin:e.plugin:e;Xs.getPluginFromInput=gnn});var YVe=w(iz=>{"use strict";Object.defineProperty(iz,"__esModule",{value:!0});iz.HapiInstrumentation=void 0;var ml=(Ce(),ke(Ye)),KVe=fr(),wP=Jt(),ZVe=BVe(),kP=pne(),Mm=WVe(),mne=class extends wP.InstrumentationBase{_semconvStability;constructor(t={}){super(ZVe.PACKAGE_NAME,ZVe.PACKAGE_VERSION,t),this._semconvStability=(0,wP.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new wP.InstrumentationNodeModuleDefinition(kP.HapiComponentName,[">=17.0.0 <22"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,wP.isWrapped)(n.server)||this._wrap(n,"server",this._getServerPatch.bind(this)),(0,wP.isWrapped)(n.Server)||this._wrap(n,"Server",this._getServerPatch.bind(this)),n},t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;this._massUnwrap([n],["server","Server"])})}_getServerPatch(t){let n=this,r=this;return function(s){let o=t.apply(this,[s]);return r._wrap(o,"route",a=>n._getServerRoutePatch.bind(n)(a)),r._wrap(o,"ext",a=>n._getServerExtPatch.bind(n)(a)),r._wrap(o,"register",n._getServerRegisterPatch.bind(n)),o}}_getServerRegisterPatch(t){let n=this;return function(i,s){if(Array.isArray(i))for(let o of i){let a=(0,Mm.getPluginFromInput)(o);n._wrapRegisterHandler(a)}else{let o=(0,Mm.getPluginFromInput)(i);n._wrapRegisterHandler(o)}return t.apply(this,[i,s])}}_getServerExtPatch(t,n){let r=this;return function(...s){if(Array.isArray(s[0])){let o=s[0];for(let a=0;an._getServerRoutePatch.bind(n)(u,r)),s._wrap(a,"ext",u=>n._getServerExtPatch.bind(n)(u,r)),i.call(this,a,c)};t.register=o}_wrapExtMethods(t,n,r){let i=this;if(t instanceof Array){for(let s=0;sasync function(...o){if(ml.trace.getSpan(ml.context.active())===void 0)return await s.call(this,...o);let a=(0,KVe.getRPCMetadata)(ml.context.active());a?.type===KVe.RPCType.HTTP&&(a.route=t.path);let c=(0,Mm.getRouteMetadata)(t,r._semconvStability,n),u=r.tracer.startSpan(c.name,{attributes:c.attributes});try{return await ml.context.with(ml.trace.setSpan(ml.context.active(),u),()=>s.call(this,...o))}catch(l){throw u.recordException(l),u.setStatus({code:ml.SpanStatusCode.ERROR,message:l.message}),l}finally{u.end()}};if(typeof t.handler=="function")t.handler=i(t.handler);else if(typeof t.options=="function"){let s=t.options;t.options=function(o){let a=s(o);return typeof a.handler=="function"&&(a.handler=i(a.handler)),a}}else typeof t.options?.handler=="function"&&(t.options.handler=i(t.options.handler));return t}};iz.HapiInstrumentation=mne});var JVe=w(hw=>{"use strict";Object.defineProperty(hw,"__esModule",{value:!0});hw.AttributeNames=hw.HapiInstrumentation=void 0;var ynn=YVe();Object.defineProperty(hw,"HapiInstrumentation",{enumerable:!0,get:function(){return ynn.HapiInstrumentation}});var Snn=hne();Object.defineProperty(hw,"AttributeNames",{enumerable:!0,get:function(){return Snn.AttributeNames}})});var XVe,QVe,$Ve,Enn,eWe,tWe=v(()=>{XVe=Se(JVe(),1);sr();QVe="Hapi",$Ve=rt(QVe,()=>new XVe.HapiInstrumentation),Enn=(()=>({name:QVe,setupOnce(){$Ve()}})),eWe=Enn});var dS,IP,gne=v(()=>{dS={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},IP={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"}});var oz,bnn,_nn,sz,nWe=v(()=>{Ce();oz=Se(Jt(),1);st();gne();bnn="@sentry/instrumentation-hono",_nn="0.0.1",sz=class extends oz.InstrumentationBase{constructor(t={}){super(bnn,_nn,t)}init(){return[new oz.InstrumentationNodeModuleDefinition("hono",[">=4.0.0 <5"],t=>this._patch(t))]}_patch(t){let n=this;class r extends t.Hono{constructor(...s){super(...s),n._wrap(this,"get",n._patchHandler()),n._wrap(this,"post",n._patchHandler()),n._wrap(this,"put",n._patchHandler()),n._wrap(this,"delete",n._patchHandler()),n._wrap(this,"options",n._patchHandler()),n._wrap(this,"patch",n._patchHandler()),n._wrap(this,"all",n._patchHandler()),n._wrap(this,"on",n._patchOnHandler()),n._wrap(this,"use",n._patchMiddlewareHandler())}}try{t.Hono=r}catch{return{...t,Hono:r}}return t}_patchHandler(){let t=this;return function(n){return function(...i){if(typeof i[0]=="string"){let s=i[0];if(i.length===1)return n.apply(this,[s]);let o=i.slice(1);return n.apply(this,[s,...o.map(a=>t._wrapHandler(a))])}return n.apply(this,i.map(s=>t._wrapHandler(s)))}}}_patchOnHandler(){let t=this;return function(n){return function(...i){let s=i.slice(2);return n.apply(this,[...i.slice(0,2),...s.map(o=>t._wrapHandler(o))])}}}_patchMiddlewareHandler(){let t=this;return function(n){return function(...i){if(typeof i[0]=="string"){let s=i[0];if(i.length===1)return n.apply(this,[s]);let o=i.slice(1);return n.apply(this,[s,...o.map(a=>t._wrapHandler(a))])}return n.apply(this,i.map(s=>t._wrapHandler(s)))}}}_wrapHandler(t){let n=this;return function(r,i){if(!n.isEnabled())return t.apply(this,[r,i]);let s=r.req.path,o=n.tracer.startSpan(s);return Ve.with(jt.setSpan(Ve.active(),o),()=>n._safeExecute(()=>{let a=t.apply(this,[r,i]);if(sa(a))return a.then(c=>{let u=n._determineHandlerType(c);return o.setAttributes({[dS.HONO_TYPE]:u,[dS.HONO_NAME]:u===IP.REQUEST_HANDLER?s:t.name||"anonymous"}),n.getConfig().responseHook?.(o),c});{let c=n._determineHandlerType(a);return o.setAttributes({[dS.HONO_TYPE]:c,[dS.HONO_NAME]:c===IP.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?IP.MIDDLEWARE:IP.REQUEST_HANDLER}_handleError(t,n){n instanceof Error&&(t.setStatus({code:as.ERROR,message:n.message}),t.recordException(n))}}});function Tnn(e){let t=vt(e).data,n=t[dS.HONO_TYPE];if(t[Gt]||!n)return;e.setAttributes({[Rt]:"auto.http.otel.hono",[Gt]:`${n}.hono`});let r=t[dS.HONO_NAME];if(typeof r=="string"&&e.updateName(r),vn()===Gl()){So&&Y.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let i=t[um],s=t[yb];typeof i=="string"&&typeof s=="string"&&vn().setTransactionName(`${s} ${i}`)}var rWe,iWe,vnn,sWe,oWe=v(()=>{Nn();st();sr();Jb();gne();nWe();rWe="Hono";iWe=rt(rWe,()=>new sz({responseHook:e=>{Tnn(e)}})),vnn=(()=>({name:rWe,setupOnce(){iWe()}})),sWe=vnn});var az=w(xP=>{"use strict";Object.defineProperty(xP,"__esModule",{value:!0});xP.KoaLayerType=void 0;var Ann;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware"})(Ann=xP.KoaLayerType||(xP.KoaLayerType={}))});var aWe=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 yne=w(OP=>{"use strict";Object.defineProperty(OP,"__esModule",{value:!0});OP.AttributeNames=void 0;var Rnn;(function(e){e.KOA_TYPE="koa.type",e.KOA_NAME="koa.name"})(Rnn=OP.AttributeNames||(OP.AttributeNames={}))});var uWe=w(gw=>{"use strict";Object.defineProperty(gw,"__esModule",{value:!0});gw.isLayerIgnored=gw.getMiddlewareMetadata=void 0;var cWe=az(),cz=yne(),wnn=(Nn(),ke(Mr)),knn=(e,t,n,r)=>n?{attributes:{[cz.AttributeNames.KOA_NAME]:r?.toString(),[cz.AttributeNames.KOA_TYPE]:cWe.KoaLayerType.ROUTER,[wnn.ATTR_HTTP_ROUTE]:r?.toString()},name:e._matchedRouteName||`router - ${r}`}:{attributes:{[cz.AttributeNames.KOA_NAME]:t.name??"middleware",[cz.AttributeNames.KOA_TYPE]:cWe.KoaLayerType.MIDDLEWARE},name:`middleware - ${t.name}`};gw.getMiddlewareMetadata=knn;var Inn=(e,t)=>!!(Array.isArray(t?.ignoreLayersType)&&t?.ignoreLayersType?.includes(e));gw.isLayerIgnored=Inn});var lWe=w(uz=>{"use strict";Object.defineProperty(uz,"__esModule",{value:!0});uz.kLayerPatched=void 0;uz.kLayerPatched=Symbol("koa-layer-patched")});var gWe=w(lz=>{"use strict";Object.defineProperty(lz,"__esModule",{value:!0});lz.KoaInstrumentation=void 0;var eh=(Ce(),ke(Ye)),NP=Jt(),dWe=az(),fWe=aWe(),pWe=uWe(),hWe=fr(),mWe=lWe(),Sne=class extends NP.InstrumentationBase{constructor(t={}){super(fWe.PACKAGE_NAME,fWe.PACKAGE_VERSION,t)}init(){return new NP.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return n==null?n:((0,NP.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,NP.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,pWe.getMiddlewareMetadata)(s,t,n,r),u=this.tracer.startSpan(c.name,{attributes:c.attributes}),l=(0,hWe.getRPCMetadata)(eh.context.active());l?.type===hWe.RPCType.HTTP&&s._matchedRoute&&(l.route=s._matchedRoute.toString());let{requestHook:d}=this.getConfig();d&&(0,NP.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()}})})}};lz.KoaInstrumentation=Sne});var yWe=w(fS=>{"use strict";Object.defineProperty(fS,"__esModule",{value:!0});fS.KoaLayerType=fS.AttributeNames=fS.KoaInstrumentation=void 0;var xnn=gWe();Object.defineProperty(fS,"KoaInstrumentation",{enumerable:!0,get:function(){return xnn.KoaInstrumentation}});var Onn=yne();Object.defineProperty(fS,"AttributeNames",{enumerable:!0,get:function(){return Onn.AttributeNames}});var Nnn=az();Object.defineProperty(fS,"KoaLayerType",{enumerable:!0,get:function(){return Nnn.KoaLayerType}})});var SWe,EWe,bWe,Pnn,_We,TWe=v(()=>{SWe=Se(yWe(),1);Nn();st();sr();Jb();EWe="Koa",bWe=rt(EWe,SWe.KoaInstrumentation,(e={})=>({ignoreLayersType:e.ignoreLayersType,requestHook(t,n){Lr(t,"auto.http.otel.koa");let r=vt(t).data,i=r["koa.type"];i&&t.setAttribute(Gt,`${i}.koa`);let s=r["koa.name"];if(typeof s=="string"&&t.updateName(s||"< unknown >"),vn()===Gl()){So&&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}`)}})),Pnn=((e={})=>({name:EWe,setupOnce(){bWe(e)}})),_We=Pnn});var Ene=w(mf=>{"use strict";Object.defineProperty(mf,"__esModule",{value:!0});mf.ConnectNames=mf.ConnectTypes=mf.AttributeNames=void 0;var Cnn;(function(e){e.CONNECT_TYPE="connect.type",e.CONNECT_NAME="connect.name"})(Cnn=mf.AttributeNames||(mf.AttributeNames={}));var Mnn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(Mnn=mf.ConnectTypes||(mf.ConnectTypes={}));var Lnn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request handler"})(Lnn=mf.ConnectNames||(mf.ConnectNames={}))});var vWe=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 AWe=w(dz=>{"use strict";Object.defineProperty(dz,"__esModule",{value:!0});dz._LAYERS_STORE_PROPERTY=void 0;dz._LAYERS_STORE_PROPERTY=Symbol("opentelemetry.instrumentation-connect.request-route-stack")});var RWe=w(hS=>{"use strict";Object.defineProperty(hS,"__esModule",{value:!0});hS.generateRoute=hS.replaceCurrentStackRoute=hS.addNewStackLayer=void 0;var Dnn=(Ce(),ke(Ye)),pS=AWe(),Unn=e=>{Array.isArray(e[pS._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,pS._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),e[pS._LAYERS_STORE_PROPERTY].push("/");let t=e[pS._LAYERS_STORE_PROPERTY].length;return()=>{t===e[pS._LAYERS_STORE_PROPERTY].length?e[pS._LAYERS_STORE_PROPERTY].pop():Dnn.diag.warn("Connect: Trying to pop the stack multiple time")}};hS.addNewStackLayer=Unn;var Fnn=(e,t)=>{t&&e[pS._LAYERS_STORE_PROPERTY].splice(-1,1,t)};hS.replaceCurrentStackRoute=Fnn;var jnn=e=>e[pS._LAYERS_STORE_PROPERTY].reduce((t,n)=>t.replace(/\/+$/,"")+n);hS.generateRoute=jnn});var IWe=w(mS=>{"use strict";Object.defineProperty(mS,"__esModule",{value:!0});mS.ConnectInstrumentation=mS.ANONYMOUS_NAME=void 0;var Hnn=(Ce(),ke(Ye)),wWe=fr(),Sw=Ene(),kWe=vWe(),fz=Jt(),qnn=(Nn(),ke(Mr)),bne=RWe();mS.ANONYMOUS_NAME="anonymous";var _ne=class extends fz.InstrumentationBase{constructor(t={}){super(kWe.PACKAGE_NAME,kWe.PACKAGE_VERSION,t)}init(){return[new fz.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],t=>this._patchConstructor(t))]}_patchApp(t){(0,fz.isWrapped)(t.use)||this._wrap(t,"use",this._patchUse.bind(this)),(0,fz.isWrapped)(t.handle)||this._wrap(t,"handle",this._patchHandle.bind(this))}_patchConstructor(t){let n=this;return function(...r){let i=t.apply(this,r);return n._patchApp(i),i}}_patchNext(t,n){return function(i){let s=t.apply(this,[i]);return n(),s}}_startSpan(t,n){let r,i,s;t?(r=Sw.ConnectTypes.REQUEST_HANDLER,s=Sw.ConnectNames.REQUEST_HANDLER,i=t):(r=Sw.ConnectTypes.MIDDLEWARE,s=Sw.ConnectNames.MIDDLEWARE,i=n.name||mS.ANONYMOUS_NAME);let o=`${s} - ${i}`,a={attributes:{[qnn.ATTR_HTTP_ROUTE]:t.length>0?t:"/",[Sw.AttributeNames.CONNECT_TYPE]:r,[Sw.AttributeNames.CONNECT_NAME]:i}};return this.tracer.startSpan(o,a)}_patchMiddleware(t,n){let r=this,i=n.length===4;function s(){if(!r.isEnabled())return n.apply(this,arguments);let[o,a,c]=i?[1,2,3]:[0,1,2],u=arguments[o],l=arguments[a],d=arguments[c];(0,bne.replaceCurrentStackRoute)(u,t);let f=(0,wWe.getRPCMetadata)(Hnn.context.active());t&&f?.type===wWe.RPCType.HTTP&&(f.route=(0,bne.generateRoute)(u));let p="";t?p=`request handler - ${t}`:p=`middleware - ${n.name||mS.ANONYMOUS_NAME}`;let h=r._startSpan(t,n);r._diag.debug("start span",p);let m=!1;function 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,bne.addNewStackLayer)(s);return typeof o=="function"&&(arguments[i]=n._patchOut(o,a)),t.apply(this,arguments)}}_patchOut(t,n){return function(...i){return n(),Reflect.apply(t,this,i)}}};mS.ConnectInstrumentation=_ne});var OWe=w(sd=>{"use strict";Object.defineProperty(sd,"__esModule",{value:!0});sd.ConnectTypes=sd.ConnectNames=sd.AttributeNames=sd.ANONYMOUS_NAME=sd.ConnectInstrumentation=void 0;var xWe=IWe();Object.defineProperty(sd,"ConnectInstrumentation",{enumerable:!0,get:function(){return xWe.ConnectInstrumentation}});Object.defineProperty(sd,"ANONYMOUS_NAME",{enumerable:!0,get:function(){return xWe.ANONYMOUS_NAME}});var Tne=Ene();Object.defineProperty(sd,"AttributeNames",{enumerable:!0,get:function(){return Tne.AttributeNames}});Object.defineProperty(sd,"ConnectNames",{enumerable:!0,get:function(){return Tne.ConnectNames}});Object.defineProperty(sd,"ConnectTypes",{enumerable:!0,get:function(){return Tne.ConnectTypes}})});var NWe,PWe,CWe,Bnn,MWe,LWe=v(()=>{NWe=Se(OWe(),1);sr();PWe="Connect",CWe=rt(PWe,()=>new NWe.ConnectInstrumentation),Bnn=(()=>({name:PWe,setupOnce(){CWe()}})),MWe=Bnn});var DWe=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 UWe=w(Ew=>{"use strict";Object.defineProperty(Ew,"__esModule",{value:!0});Ew.once=Ew.getSpanName=void 0;function Gnn(e,t,n,r){return e==="execBulkLoad"&&r&&t?`${e} ${r} ${t}`:e==="callProcedure"?t?`${e} ${n} ${t}`:`${e} ${n}`:t?`${e} ${t}`:`${e}`}Ew.getSpanName=Gnn;var znn=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};Ew.once=znn});var FWe=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 GWe=w(yS=>{"use strict";Object.defineProperty(yS,"__esModule",{value:!0});yS.TediousInstrumentation=yS.INJECTED_CTX=void 0;var _w=(Ce(),ke(Ye)),Vnn=Z("events"),th=Jt(),c_=(Nn(),ke(Mr)),gS=DWe(),jWe=UWe(),HWe=FWe(),BWe=Symbol("opentelemetry.instrumentation-tedious.current-database");yS.INJECTED_CTX=Symbol("opentelemetry.instrumentation-tedious.context-info-injected");var qWe=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function pz(e){Object.defineProperty(this,BWe,{value:e,writable:!0})}var vne=class e extends th.InstrumentationBase{static COMPONENT="tedious";_netSemconvStability;_dbSemconvStability;constructor(t={}){super(HWe.PACKAGE_NAME,HWe.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 qWe)(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 qWe)this._unwrap(n,r);this._unwrap(n,"connect")})]}_patchConnect(t){return function(){return pz.call(this,this.config?.options?.database),this.removeListener("databaseChange",pz),this.on("databaseChange",pz),this.once("end",()=>{this.removeListener("databaseChange",pz)}),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,yS.INJECTED_CTX,{value:!0});let a=Buffer.from(r,"utf8");o.addParameter("opentelemetry_traceparent",n.TYPES.VarBinary,a,{length:a.length}),t.execSql(o)}catch{i()}})}_shouldInjectFor(t){return t==="execSql"||t==="execSqlBatch"||t==="callProcedure"||t==="execute"}_patchQuery(t,n){return r=>{let i=this;function s(o){if(o?.[yS.INJECTED_CTX])return r.apply(this,arguments);if(!(o instanceof Vnn.EventEmitter))return i._diag.warn(`Unexpected invocation of patched ${t} method. Span not recorded`),r.apply(this,arguments);let a=0,c=0,u=()=>c++,l=()=>a++,d=this[BWe],f=(b=>b.sqlTextOrProcedure==="sp_prepare"&&b.parametersByName?.stmt?.value?b.parametersByName.stmt.value:b.sqlTextOrProcedure)(o),p={};i._dbSemconvStability&th.SemconvStability.OLD&&(p[gS.ATTR_DB_SYSTEM]=gS.DB_SYSTEM_VALUE_MSSQL,p[gS.ATTR_DB_NAME]=d,p[gS.ATTR_DB_USER]=this.config?.userName??this.config?.authentication?.options?.userName,p[gS.ATTR_DB_STATEMENT]=f,p[gS.ATTR_DB_SQL_TABLE]=o.table),i._dbSemconvStability&th.SemconvStability.STABLE&&(p[c_.ATTR_DB_NAMESPACE]=d,p[c_.ATTR_DB_SYSTEM_NAME]=c_.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER,p[c_.ATTR_DB_QUERY_TEXT]=f,p[c_.ATTR_DB_COLLECTION_NAME]=o.table),i._netSemconvStability&th.SemconvStability.OLD&&(p[gS.ATTR_NET_PEER_NAME]=this.config?.server,p[gS.ATTR_NET_PEER_PORT]=this.config?.options?.port),i._netSemconvStability&th.SemconvStability.STABLE&&(p[c_.ATTR_SERVER_ADDRESS]=this.config?.server,p[c_.ATTR_SERVER_PORT]=this.config?.options?.port);let h=i.tracer.startSpan((0,jWe.getSpanName)(t,d,f,o.table),{kind:_w.SpanKind.CLIENT,attributes:p}),m=(0,jWe.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)}}};yS.TediousInstrumentation=vne});var zWe=w(hz=>{"use strict";Object.defineProperty(hz,"__esModule",{value:!0});hz.TediousInstrumentation=void 0;var Wnn=GWe();Object.defineProperty(hz,"TediousInstrumentation",{enumerable:!0,get:function(){return Wnn.TediousInstrumentation}})});var VWe,Knn,WWe,KWe,Znn,ZWe,YWe=v(()=>{VWe=Se(zWe(),1);st();sr();Knn=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),WWe="Tedious",KWe=rt(WWe,()=>new VWe.TediousInstrumentation({})),Znn=(()=>{let e;return{name:WWe,setupOnce(){let t=KWe();e=fN(t)},setup(t){e?.(()=>t.on("spanStart",n=>{let{description:r,data:i}=vt(n);if(!r||i["db.system"]!=="mssql")return;let s=r.split(" ")[0]||"";Knn.has(s)&&n.setAttribute(Rt,"auto.db.otel.tedious")}))}}}),ZWe=Znn});var JWe=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 QWe=w(mz=>{"use strict";Object.defineProperty(mz,"__esModule",{value:!0});mz.GenericPoolInstrumentation=void 0;var vw=(Ce(),ke(Ye)),u_=Jt(),XWe=JWe(),Ane="generic-pool",Rne=class extends u_.InstrumentationBase{_isDisabled=!1;constructor(t={}){super(XWe.PACKAGE_NAME,XWe.PACKAGE_VERSION,t)}init(){return[new u_.InstrumentationNodeModuleDefinition(Ane,[">=3.0.0 <4"],t=>{let n=t.Pool;return(0,u_.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 u_.InstrumentationNodeModuleDefinition(Ane,[">=2.4.0 <3"],t=>{let n=t.Pool;return(0,u_.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 u_.InstrumentationNodeModuleDefinition(Ane,[">=2.0.0 <2.4"],t=>(this._isDisabled=!1,(0,u_.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)})}}};mz.GenericPoolInstrumentation=Rne});var $We=w(gz=>{"use strict";Object.defineProperty(gz,"__esModule",{value:!0});gz.GenericPoolInstrumentation=void 0;var Ynn=QWe();Object.defineProperty(gz,"GenericPoolInstrumentation",{enumerable:!0,get:function(){return Ynn.GenericPoolInstrumentation}})});var e3e,t3e,n3e,Jnn,r3e,i3e=v(()=>{e3e=Se($We(),1);st();sr();t3e="GenericPool",n3e=rt(t3e,()=>new e3e.GenericPoolInstrumentation({})),Jnn=(()=>{let e;return{name:t3e,setupOnce(){let t=n3e();e=fN(t)},setup(t){e?.(()=>t.on("spanStart",n=>{let i=vt(n).description;(i==="generic-pool.aquire"||i==="generic-pool.acquire")&&n.setAttribute(Rt,"auto.db.otel.generic_pool")}))}}}),r3e=Jnn});var wne=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 kne=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 Ine=w(l_=>{"use strict";Object.defineProperty(l_,"__esModule",{value:!0});l_.DEFAULT_CONFIG=l_.EndOperation=void 0;var Xnn;(function(e){e.AutoAck="auto ack",e.Ack="ack",e.AckAll="ackAll",e.Reject="reject",e.Nack="nack",e.NackAll="nackAll",e.ChannelClosed="channel closed",e.ChannelError="channel error",e.InstrumentationTimeout="instrumentation timeout"})(Xnn=l_.EndOperation||(l_.EndOperation={}));l_.DEFAULT_CONFIG={consumeTimeoutMs:1e3*60,useLinksForConsume:!1}});var c3e=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 xne=(Ce(),ke(Ye)),SS=Jt(),yz=(Nn(),ke(Mr)),PP=wne(),Sz=kne();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 One=(0,xne.createContextKey)("opentelemetry.amqplib.channel.is-confirm-channel"),Qnn=e=>e!==""?e:"";ps.normalizeExchange=Qnn;var $nn=e=>e.replace(/:[^:@/]*@/,":***@"),s3e=(e,t)=>e||(t==="AMQP"?5672:5671),o3e=e=>{let t=e||"amqp";return(t.endsWith(":")?t.substring(0,t.length-1):t).toUpperCase()},a3e=e=>e||"localhost",rh=(e,t,n,r)=>n?{[t]:n}:(xne.diag.error(`amqplib instrumentation: could not extract connection attribute ${r} from user supplied url`,{url:e}),{}),ern=e=>{let t=e.serverProperties.product?.toLowerCase?.();return t?{[PP.ATTR_MESSAGING_SYSTEM]:t}:{}};ps.getConnectionAttributesFromServer=ern;var trn=(e,t)=>{let n={[Sz.ATTR_MESSAGING_PROTOCOL_VERSION]:"0.9.1"};if(e=e||"amqp://localhost",typeof e=="object"){let r=e,i=o3e(r?.protocol);Object.assign(n,{...rh(e,Sz.ATTR_MESSAGING_PROTOCOL,i,"protocol")});let s=a3e(r?.hostname);t&SS.SemconvStability.OLD&&Object.assign(n,{...rh(e,PP.ATTR_NET_PEER_NAME,s,"hostname")}),t&SS.SemconvStability.STABLE&&Object.assign(n,{...rh(e,yz.ATTR_SERVER_ADDRESS,s,"hostname")});let o=s3e(r.port,i);t&SS.SemconvStability.OLD&&Object.assign(n,rh(e,PP.ATTR_NET_PEER_PORT,o,"port")),t&SS.SemconvStability.STABLE&&Object.assign(n,rh(e,yz.ATTR_SERVER_PORT,o,"port"))}else{let r=$nn(e);n[Sz.ATTR_MESSAGING_URL]=r;try{let i=new URL(r),s=o3e(i.protocol);Object.assign(n,{...rh(r,Sz.ATTR_MESSAGING_PROTOCOL,s,"protocol")});let o=a3e(i.hostname);t&SS.SemconvStability.OLD&&Object.assign(n,{...rh(r,PP.ATTR_NET_PEER_NAME,o,"hostname")}),t&SS.SemconvStability.STABLE&&Object.assign(n,{...rh(r,yz.ATTR_SERVER_ADDRESS,o,"hostname")});let a=s3e(i.port?parseInt(i.port):void 0,s);t&SS.SemconvStability.OLD&&Object.assign(n,rh(r,PP.ATTR_NET_PEER_PORT,a,"port")),t&SS.SemconvStability.STABLE&&Object.assign(n,rh(r,yz.ATTR_SERVER_PORT,a,"port"))}catch(i){xne.diag.error("amqplib instrumentation: error while extracting connection details from connection url",{censoredUrl:r,err:i})}}return n};ps.getConnectionAttributesFromUrl=trn;var nrn=e=>e.setValue(One,!0);ps.markConfirmChannelTracing=nrn;var rrn=e=>e.deleteValue(One);ps.unmarkConfirmChannelTracing=rrn;var irn=e=>e.getValue(One)===!0;ps.isConfirmChannelTracing=irn});var u3e=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 d3e=w(_z=>{"use strict";Object.defineProperty(_z,"__esModule",{value:!0});_z.AmqplibInstrumentation=void 0;var Yi=(Ce(),ke(Ye)),Ez=fr(),pr=Jt(),srn=wne(),gl=kne(),jc=Ine(),hs=c3e(),l3e=u3e(),bz=[">=0.5.5 <1"],Nne=class extends pr.InstrumentationBase{_netSemconvStability;constructor(t={}){super(l3e.PACKAGE_NAME,l3e.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",bz,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),n=new pr.InstrumentationNodeModuleFile("amqplib/lib/callback_model.js",bz,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),r=new pr.InstrumentationNodeModuleFile("amqplib/lib/connect.js",bz,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new pr.InstrumentationNodeModuleDefinition("amqplib",bz,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],[gl.ATTR_MESSAGING_DESTINATION]:p,[gl.ATTR_MESSAGING_DESTINATION_KIND]:gl.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[gl.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:l.fields?.routingKey,[srn.ATTR_MESSAGING_OPERATION]:gl.MESSAGING_OPERATION_VALUE_PROCESS,[gl.OLD_ATTR_MESSAGING_MESSAGE_ID]:l?.properties.messageId,[gl.ATTR_MESSAGING_CONVERSATION_ID]:l?.properties.correlationId},links:h},f),{consumeHook: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,Ez.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],[gl.ATTR_MESSAGING_DESTINATION]:n,[gl.ATTR_MESSAGING_DESTINATION_KIND]:gl.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[gl.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:r,[gl.OLD_ATTR_MESSAGING_MESSAGE_ID]:s?.messageId,[gl.ATTR_MESSAGING_CONVERSATION_ID]:s?.correlationId}}),c=s??{};return c.headers=c.headers??{},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,Ez.hrTime)(),r=t[hs.CHANNEL_SPANS_NOT_ENDED]??[],i,{consumeTimeoutMs:s}=this.getConfig();for(i=0;i{"use strict";Object.defineProperty(ES,"__esModule",{value:!0});ES.EndOperation=ES.DEFAULT_CONFIG=ES.AmqplibInstrumentation=void 0;var orn=d3e();Object.defineProperty(ES,"AmqplibInstrumentation",{enumerable:!0,get:function(){return orn.AmqplibInstrumentation}});var f3e=Ine();Object.defineProperty(ES,"DEFAULT_CONFIG",{enumerable:!0,get:function(){return f3e.DEFAULT_CONFIG}});Object.defineProperty(ES,"EndOperation",{enumerable:!0,get:function(){return f3e.EndOperation}})});var h3e,m3e,arn,g3e,crn,y3e,S3e=v(()=>{h3e=Se(p3e(),1);sr();m3e="Amqplib",arn={consumeEndHook:e=>{Lr(e,"auto.amqplib.otel.consumer")},publishHook:e=>{Lr(e,"auto.amqplib.otel.publisher")}},g3e=rt(m3e,()=>new h3e.AmqplibInstrumentation(arn)),crn=(()=>({name:m3e,setupOnce(){g3e()}})),y3e=crn});var CP,Pne=v(()=>{CP="VercelAI"});function lrn(e){if(typeof e!="object"||e===null)return!1;let t=e;return"type"in t&&"error"in t&&"toolName"in t&&"toolCallId"in t&&t.type==="tool-error"&&t.error instanceof Error}function drn(e){if(typeof e!="object"||e===null||!("content"in e))return;let t=e;Array.isArray(t.content)&&(frn(t.content),prn(t.content))}function frn(e){for(let t of e){if(!lrn(t))continue;let n=yQ(t.toolCallId);n?Ya(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}})}):Ya(r=>{r.setTag("vercel.ai.tool.name",t.toolName),r.setTag("vercel.ai.tool.callId",t.toolCallId),r.setLevel("error"),Wt(t.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})})}}function prn(e){for(let t of e)typeof t=="object"&&t!==null&&"toolCallId"in t&&typeof t.toolCallId=="string"&&SQ(t.toolCallId)}function hrn(e,t,n,r){let i=e?.recordInputs!==void 0?e.recordInputs:t.recordInputs!==void 0?t.recordInputs:n===!0?!0:r,s=e?.recordOutputs!==void 0?e.recordOutputs:t.recordOutputs!==void 0?t.recordOutputs:n===!0?!0:r;return{recordInputs:i,recordOutputs:s}}var vz,urn,E3e,Tz,b3e=v(()=>{vz=Se(Jt(),1);st();Pne();urn=[">=3.0.0 <7"],E3e=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];Tz=class e extends vz.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 vz.InstrumentationNodeModuleDefinition("ai",urn,this._patch.bind(this))}callWhenPatched(t){this._isPatched?t():this._callbacks.push(t)}_patch(t){this._isPatched=!0,this._callbacks.forEach(r=>r()),this._callbacks=[];let n=r=>new Proxy(r,{apply:(i,s,o)=>{let a=o[0].experimental_telemetry||{},c=a.isEnabled,u=ct(),l=u?.getIntegrationByName(CP),d=l?.options,f=l?!!u?.getOptions().sendDefaultPii:!1,{recordInputs:p,recordOutputs:h}=hrn(d,a,c,f);return o[0].experimental_telemetry={...a,isEnabled:c!==void 0?c:!0,recordInputs:p,recordOutputs:h},af(()=>Reflect.apply(i,s,o),m=>{m&&typeof m=="object"&&Gs(m,"_sentry_active_span",Vl())},()=>{},m=>{drn(m)})}});if(Object.prototype.toString.call(t)==="[object Module]"){for(let r of E3e)t[r]!=null&&(t[r]=n(t[r]));return t}else{let r=E3e.reduce((i,s)=>(t[s]!=null&&(i[s]=n(t[s])),i),{});return{...t,...r}}}}});function mrn(e){return!!e.getIntegrationByName("Modules")?.getModules?.()?.ai}var _3e,grn,T3e,v3e=v(()=>{st();sr();Pne();b3e();_3e=rt(CP,()=>new Tz({}));grn=((e={})=>{let t;return{name:CP,options:e,setupOnce(){t=_3e()},afterAllSetup(n){e.force??mrn(n)?xH(n):t?.callWhenPatched(()=>xH(n))}}}),T3e=grn});var Rz,yrn,Az,A3e=v(()=>{Rz=Se(Jt(),1);st();yrn=[">=4.0.0 <7"],Az=class extends Rz.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-openai",Pn,t)}init(){return new Rz.InstrumentationNodeModuleDefinition("openai",yrn,this._patch.bind(this))}_patch(t){let n=t;return n=this._patchClient(n,"OpenAI"),n=this._patchClient(n,"AzureOpenAI"),n}_patchClient(t,n){let r=t[n];if(!r)return t;let i=this.getConfig(),s=function(...o){if(Mb(Gy))return Reflect.construct(r,o);let a=Reflect.construct(r,o);return PH(a,i)};Object.setPrototypeOf(s,r),Object.setPrototypeOf(s.prototype,r.prototype);for(let o of Object.getOwnPropertyNames(r))if(!["length","name","prototype"].includes(o)){let a=Object.getOwnPropertyDescriptor(r,o);a&&Object.defineProperty(s,o,a)}try{t[n]=s}catch{Object.defineProperty(t,n,{value:s,writable:!0,configurable:!0,enumerable:!0})}if(t.default===r)try{t.default=s}catch{Object.defineProperty(t,"default",{value:s,writable:!0,configurable:!0,enumerable:!0})}return t}}});var R3e,Srn,w3e,k3e=v(()=>{st();sr();A3e();R3e=rt(Gy,e=>new Az(e)),Srn=((e={})=>({name:Gy,setupOnce(){R3e(e)}})),w3e=Srn});var kz,Ern,wz,I3e=v(()=>{kz=Se(Jt(),1);st();Ern=[">=0.19.2 <1.0.0"],wz=class extends kz.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-anthropic-ai",Pn,t)}init(){return new kz.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",Ern,this._patch.bind(this))}_patch(t){let n=t.Anthropic,r=this.getConfig(),i=function(...s){if(Mb(zy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return CH(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 x3e,brn,O3e,N3e=v(()=>{st();sr();I3e();x3e=rt(zy,e=>new wz(e)),brn=((e={})=>({name:zy,options:e,setupOnce(){x3e(e)}})),O3e=brn});var Rw,P3e,Iz,C3e=v(()=>{Rw=Se(Jt(),1);st();P3e=[">=0.10.0 <2"],Iz=class extends Rw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-google-genai",Pn,t)}init(){return new Rw.InstrumentationNodeModuleDefinition("@google/genai",P3e,n=>this._patch(n),n=>n,[new Rw.InstrumentationNodeModuleFile("@google/genai/dist/node/index.cjs",P3e,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(Mb(Vy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return MH(o,r)};Object.setPrototypeOf(i,n),Object.setPrototypeOf(i.prototype,n.prototype);for(let s of Object.getOwnPropertyNames(n))if(!["length","name","prototype"].includes(s)){let o=Object.getOwnPropertyDescriptor(n,s);o&&Object.defineProperty(i,s,o)}return lN(t,"GoogleGenAI",i),t}}});var M3e,_rn,L3e,D3e=v(()=>{st();sr();C3e();M3e=rt(Vy,e=>new Iz(e)),_rn=((e={})=>({name:Vy,setupOnce(){M3e(e)}})),L3e=_rn});function Trn(e,t){return e?Array.isArray(e)?e.includes(t)?e:[...e,t]:typeof e=="object"?[e,t]:e:[t]}function vrn(e,t,n){return new Proxy(e,{apply(r,i,s){let a=s[1];(!a||typeof a!="object"||Array.isArray(a))&&(a={},s[1]=a);let c=a.callbacks,u=Trn(c,t);return a.callbacks=u,Reflect.apply(r,i,s)}})}var bS,xz,Oz,U3e=v(()=>{bS=Se(Jt(),1);st();xz=[">=0.1.0 <2.0.0"];Oz=class extends bS.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 bS.InstrumentationNodeModuleDefinition(r,xz,this._patch.bind(this),i=>i,[new bS.InstrumentationNodeModuleFile(`${r}/dist/index.cjs`,xz,this._patch.bind(this),i=>i)]));return t.push(new bS.InstrumentationNodeModuleDefinition("langchain",xz,this._patch.bind(this),r=>r,[new bS.InstrumentationNodeModuleFile("langchain/dist/chat_models/universal.cjs",xz,this._patch.bind(this),r=>r)])),t}_patch(t){DX([Gy,zy,Vy]);let n=FH(this.getConfig());return this._patchRunnableMethods(t,n),t}_patchRunnableMethods(t,n){let r=["ChatAnthropic","ChatOpenAI","ChatGoogleGenerativeAI","ChatMistralAI","ChatVertexAI","ChatGroq","ConfigurableModel"],i=t.universal_exports??t,s=Object.values(i).find(c=>typeof c=="function"&&r.includes(c.name));if(!s)return;let o=s.prototype;if(o.__sentry_patched__)return;o.__sentry_patched__=!0;let a=["invoke","stream","batch"];for(let c of a){let u=o[c];typeof u=="function"&&(o[c]=vrn(u,n))}}}});var F3e,Arn,j3e,H3e=v(()=>{st();sr();U3e();F3e=rt(LH,e=>new Oz(e)),Arn=((e={})=>({name:LH,setupOnce(){F3e(e)}})),j3e=Arn});var ww,q3e,Nz,B3e=v(()=>{ww=Se(Jt(),1);st();q3e=[">=0.0.0 <2.0.0"],Nz=class extends ww.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langgraph",Pn,t)}init(){return new ww.InstrumentationNodeModuleDefinition("@langchain/langgraph",q3e,this._patch.bind(this),n=>n,[new ww.InstrumentationNodeModuleFile("@langchain/langgraph/dist/index.cjs",q3e,this._patch.bind(this),n=>n)])}_patch(t){return t.StateGraph&&typeof t.StateGraph=="function"&&HH(t.StateGraph.prototype,this.getConfig()),t}}});var G3e,Rrn,z3e,V3e=v(()=>{st();sr();B3e();G3e=rt(jH,e=>new Nz(e)),Rrn=((e={})=>({name:jH,setupOnce(){G3e(e)}})),z3e=Rrn});import*as K3e from"node:net";function Z3e(e,t,n,r,i){let o=()=>{},a=i.firestoreSpanCreationHook;typeof a=="function"&&(o=l=>{(0,Lm.safeExecuteInTheMiddle)(()=>a(l),d=>{d&&il.error(d?.message)},!0)});let c=new Lm.InstrumentationNodeModuleDefinition("@firebase/firestore",t,l=>W3e(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=>W3e(d,n,r,e,o),d=>Y3e(d,r)));return c}function W3e(e,t,n,r,i){return Y3e(e,n),t(e,"addDoc",wrn(r,i)),t(e,"getDocs",Irn(r,i)),t(e,"setDoc",xrn(r,i)),t(e,"deleteDoc",krn(r,i)),e}function Y3e(e,t){for(let n of["addDoc","getDocs","setDoc","deleteDoc"])(0,Lm.isWrapped)(e[n])&&t(e,n);return e}function wrn(e,t){return function(r){return function(i,s){let o=Cz(e,"addDoc",i);return t(o),Pz(o,()=>r(i,s))}}}function krn(e,t){return function(r){return function(i){let s=Cz(e,"deleteDoc",i.parent||i);return t(s),Pz(s,()=>r(i))}}}function Irn(e,t){return function(r){return function(i){let s=Cz(e,"getDocs",i);return t(s),Pz(s,()=>r(i))}}}function xrn(e,t){return function(r){return function(i,s,o){let a=Cz(e,"setDoc",i.parent||i);return t(a),Pz(a,()=>typeof o<"u"?r(i,s,o):r(i,s))}}}function Pz(e,t){return Ve.with(jt.setSpan(Ve.active(),e),()=>(0,Lm.safeExecuteInTheMiddle)(()=>t(),n=>{n&&e.recordException(n),e.end()},!0))}function Cz(e,t,n){let r=e.startSpan(`${t} ${n.path}`,{kind:$r.CLIENT});return Nrn(r,n),r.setAttribute(lA,t),r}function Orn(e){let t,n;if(typeof e.host=="string")if(e.host.startsWith("[")){if(e.host.endsWith("]"))t=e.host.replace(/^\[|\]$/g,"");else if(e.host.includes("]:")){let r=e.host.lastIndexOf(":");r!==-1&&(t=e.host.slice(1,r).replace(/^\[|\]$/g,""),n=e.host.slice(r+1))}}else if(K3e.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 Nrn(e,t){let n=t.firestore.app,r=n.options,s=(t.firestore.toJSON()||{}).settings||{},o={[uJ]:t.path,[lJ]:n.name,[gb]:"firebase.firestore","firebase.firestore.type":t.type,"firebase.firestore.options.projectId":r.projectId,"firebase.firestore.options.appId":r.appId,"firebase.firestore.options.messagingSenderId":r.messagingSenderId,"firebase.firestore.options.storageBucket":r.storageBucket},{address:a,port:c}=Orn(s);a&&(o[SJ]=a),c&&(o[EJ]=c),e.setAttributes(o)}var Lm,J3e=v(()=>{Ce();Lm=Se(Jt(),1);Nn()});function X3e(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,Dm.safeExecuteInTheMiddle)(()=>u(f,p),h=>{h&&il.error(h?.message)},!0)}),typeof c=="function"&&(s=f=>{(0,Dm.safeExecuteInTheMiddle)(()=>c(f),p=>{p&&il.error(p?.message)},!0)});let l=new Dm.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 Dm.InstrumentationNodeModuleFile(f,t,h=>Prn(h,n,r,e,{requestHook:s,responseHook:o,errorHook:a},p),h=>Q3e(h,r)))}),l}function Hc(e,t,n){return function(i){return function(...s){let o=typeof s[0]=="function"?s[0]:s[1],a=typeof s[0]=="function"?void 0:s[0];if(!o)return i.call(this,...s);let c=async function(...u){let l=process.env.FUNCTION_TARGET||process.env.K_SERVICE||"unknown",d=e.startSpan(`firebase.function.${n}`,{kind:$r.SERVER}),f={"faas.name":l,"faas.trigger":n,"faas.provider":"firebase"};return process.env.GCLOUD_PROJECT&&(f["cloud.project_id"]=process.env.GCLOUD_PROJECT),process.env.EVENTARC_CLOUD_EVENT_SOURCE&&(f["cloud.event_source"]=process.env.EVENTARC_CLOUD_EVENT_SOURCE),d.setAttributes(f),t?.requestHook?.(d),Ve.with(jt.setSpan(Ve.active(),d),async()=>{let p,h;try{h=await o.apply(this,u)}catch(m){p=m}if(t?.responseHook?.(d,p),p&&d.recordException(p),d.end(),p)throw await t?.errorHook?.(d,p),p;return h})};return a?i.call(this,a,c):i.call(this,c)}}}function Prn(e,t,n,r,i,s){switch(Q3e(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 Q3e(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,Dm.isWrapped)(e[r])&&t(e,r);return e}var Dm,$3e=v(()=>{Ce();Dm=Se(Jt(),1)});var t4e,e4e,Crn,Mrn,Mz,n4e=v(()=>{t4e=Se(Jt(),1);st();J3e();$3e();e4e={},Crn=[">=3.0.0 <5"],Mrn=[">=6.0.0 <7"],Mz=class extends t4e.InstrumentationBase{constructor(t=e4e){super("@sentry/instrumentation-firebase",Pn,t)}setConfig(t={}){super.setConfig({...e4e,...t})}init(){let t=[];return t.push(Z3e(this.tracer,Crn,this._wrap,this._unwrap,this.getConfig())),t.push(X3e(this.tracer,Mrn,this._wrap,this._unwrap,this.getConfig())),t}}});var r4e,Lrn,i4e,Drn,s4e,o4e=v(()=>{st();sr();n4e();r4e="Firebase",Lrn={firestoreSpanCreationHook:e=>{Lr(e,"auto.firebase.otel.firestore"),e.setAttribute(Gt,"db.query")},functions:{requestHook:e=>{Lr(e,"auto.firebase.otel.functions"),e.setAttribute(Gt,"http.request")},errorHook:async(e,t)=>{t&&(Wt(t,{mechanism:{type:"auto.firebase.otel.functions",handled:!1}}),await ZA(2e3))}}},i4e=rt(r4e,()=>new Mz(Lrn)),Drn=(()=>({name:r4e,setupOnce(){i4e()}})),s4e=Drn});function a4e(){return[eqe(),LBe(),cGe(),sWe(),YGe(),lze(),Tze(),Mze(),f2e(),C2e(),HVe(),eWe(),_We(),MWe(),ZWe(),r3e(),RGe(),y3e(),DGe(),j3e(),z3e(),T3e(),w3e(),O3e(),L3e(),U2e(),s4e()]}var c4e=v(()=>{S3e();N3e();LWe();tqe();FBe();o4e();i3e();D3e();lGe();tWe();oWe();wGe();TWe();H3e();V3e();UGe();JGe();dze();vze();Lze();k3e();M2e();F2e();qVe();p2e();YWe();v3e()});function l4e(e,t={}){e.getOptions().debug&&J$();let[n,r]=Urn(e,t);e.traceProvider=n,e.asyncLocalStorageLookup=r}function Urn(e,t={}){let n=new u4e.BasicTracerProvider({sampler:new Wq(e),resource:(0,Lz.defaultResource)().merge((0,Lz.resourceFromAttributes)({[bJ]:"node",[cJ]:"sentry",[_J]:Pn})),forceFlushTimeoutMillis:500,spanProcessors:[new Vq({timeout:Frn(e.getOptions().maxSpanWaitDuration)}),...t.spanProcessors||[]]});jt.setGlobalTracerProvider(n),Jd.setGlobalPropagator(new zq);let r=new Y$;return Ve.setGlobalContextManager(r),[n,r.getAsyncLocalStorageLookup()]}function Frn(e){if(e!=null){if(e>Cne)return So&&Y.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${Cne}`),Cne;if(e<=0||Number.isNaN(e)){So&&Y.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return e}}var Lz,u4e,Cne,d4e=v(()=>{Ce();Lz=Se(c$(),1),u4e=Se(M$(),1);Nn();st();sr();wR();Jb();Cne=1e6});function f4e(){return tB().filter(t=>t.name!=="Http"&&t.name!=="NodeFetch").concat(OHe(),jHe())}function p4e(e){return[...f4e(),...Os(e)?a4e():[]]}function Mne(e={}){return jrn(e,p4e)}function jrn(e={},t){Lb(e,"node");let n=cee({...e,defaultIntegrations:e.defaultIntegrations??t(e)});return n&&!e.skipOpenTelemetrySetup&&(l4e(n,{spanProcessors:e.openTelemetrySpanProcessors}),uee()),n}var h4e=v(()=>{st();sr();NHe();HHe();c4e();d4e()});var m4e=v(()=>{h4e();st()});var T4e={};Rr(T4e,{_resetPluginRootForTests:()=>Brn,features:()=>zo,observability:()=>Une,resolvePluginRoot:()=>nn,review:()=>yf,stripWildcardAllowedOrigins:()=>Dne});import{existsSync as g4e}from"node:fs";import{dirname as y4e,join as S4e}from"node:path";import{fileURLToPath as qrn}from"node:url";function _4e(e){if(!e.startsWith("HAIKU_")){let t=process.env[`HAIKU_${e}`];if(t!==void 0)return t}return process.env[e]}function Lne(e,t){let n=_4e(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 E4e(e,t){let n=_4e(e);return n===void 0||n===""?t:n}function Brn(){gf=null}function nn(){if(gf!==null)return gf;let e=process.env.CLAUDE_PLUGIN_ROOT;if(e)return gf=e,gf;let t=b4e(process.argv[1]);if(t)return gf=t,process.env.CLAUDE_PLUGIN_ROOT=t,console.error(`[haiku] Self-resolved plugin root from argv: ${t}`),gf;try{let n=qrn(import.meta.url),r=b4e(n);if(r)return gf=r,process.env.CLAUDE_PLUGIN_ROOT=r,console.error(`[haiku] Self-resolved plugin root from module: ${r}`),gf}catch{}return gf="",gf}function b4e(e){if(!e)return null;let t=y4e(e);for(let n=0;n<6;n++){if(g4e(S4e(t,"studios"))||g4e(S4e(t,".claude-plugin","plugin.json")))return t;let r=y4e(t);if(r===t)return null;t=r}return null}function Dne(){let e=yf.allowedOrigins.length,t=yf.allowedOrigins.filter(r=>r!=="*"),n=e-t.length;return n>0&&(console.warn(`[haiku] WARN: HAIKU_REVIEW_ALLOWED_ORIGINS contained "*". Ignoring \u2014 wildcard CORS is unsafe with this server's auth model. Set an explicit allow-list.`),yf.allowedOrigins.length=0,yf.allowedOrigins.push(...t)),n}var gf,zo,yf,Une,Ci=v(()=>{"use strict";gf=null;zo={modelSelection:Lne("HAIKU_MODEL_SELECTION",!0),remoteReview:Lne("HAIKU_REMOTE_REVIEW",!1),telemetry:Lne("CLAUDE_CODE_ENABLE_TELEMETRY",!1)},yf={siteUrl:E4e("HAIKU_REVIEW_SITE_URL","https://haikumethod.ai"),allowedOrigins:E4e("HAIKU_REVIEW_ALLOWED_ORIGINS","").split(",").map(e=>e.trim()).filter(Boolean)};Une={sentryDsn:"https://7c8c74eb8aa4b065a79765c8eb14f1c3@sentry.ops.gigsmart.com/1011"}});import{readFileSync as Grn}from"node:fs";import{join as zrn}from"node:path";function _S(){try{let e=nn();if(e)return JSON.parse(Grn(zrn(e,".claude-plugin","plugin.json"),"utf8")).version??"unknown"}catch{}return"unknown"}var od,d_=v(()=>{"use strict";Ci();od="10.1.0"});var A4e={};Rr(A4e,{flush:()=>Sf,isSentryConfigured:()=>jne,reportError:()=>ms,reportFeedback:()=>Fne});function v4e(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&&Ya(r=>{v4e(r,n),Wt(e,{extra:t})})}function Fne(e,t,n,r){kw&&Ya(i=>{v4e(i,t),i.setTag("feedback","true"),bH({message:e,email:n,name:r||"H\xB7AI\xB7K\xB7U User"})})}function jne(){return kw!==""}async function Sf(e=2e3){kw&&await ZA(e)}var kw,ih=v(()=>{"use strict";m4e();Ci();d_();kw=Une.sentryDsn;kw&&Mne({dsn:kw,release:`haiku-mcp@${od}`,tracesSampleRate:0})});var w4e={};Rr(w4e,{maybeRebuildSpaForDev:()=>Xrn});import{execFileSync as Vrn}from"node:child_process";import{existsSync as Uz,readdirSync as Wrn,statSync as R4e}from"node:fs";import{dirname as Krn,join as Dz,resolve as Hne}from"node:path";import{fileURLToPath as Zrn}from"node:url";function Yrn(e){if(!Uz(e))return 0;let t=0,n=[e];for(;n.length>0;){let r=n.pop(),i;try{i=Wrn(r)}catch{continue}for(let s of i){if(s==="node_modules"||s==="dist"||s==="__tests__")continue;let o=Dz(r,s),a;try{a=R4e(o)}catch{continue}a.isDirectory()?n.push(o):a.isFile()&&a.mtimeMs>t&&(t=a.mtimeMs)}}return t}function Jrn(e){let t;try{t=Krn(Zrn(e))}catch{t=process.cwd()}let n=Hne(t,".."),r=Hne(n,".."),i=Dz(r,"haiku-ui","src"),s=Dz(n,"scripts","bundle-haiku-ui.mjs"),o=Dz(n,"src","haiku-ui-html.ts");return!Uz(i)||!Uz(s)?null:{repoRoot:Hne(r,".."),uiSrcDir:i,bundledHtml:o,bundleScript:s}}function Xrn(e){if(process.env.HAIKU_DEV_SPA_AUTO_REBUILD==="0")return;let t=Jrn(e);if(!t)return;let n=Yrn(t.uiSrcDir),r=Uz(t.bundledHtml)?R4e(t.bundledHtml).mtimeMs:0;if(n<=r)return;console.error("[haiku] SPA sources newer than haiku-ui-html.ts \u2014 rebuilding (dev mode)\u2026");let i=Date.now();try{Vrn("node",[t.bundleScript],{cwd:t.repoRoot,stdio:["ignore","ignore","inherit"]})}catch(s){throw new Error(`[haiku] SPA rebuild failed: ${s instanceof Error?s.message:String(s)} - Run 'node packages/haiku/scripts/bundle-haiku-ui.mjs' manually to see full output, or set HAIKU_DEV_SPA_AUTO_REBUILD=0 to skip the check.`)}console.error(`[haiku] SPA rebuild complete in ${((Date.now()-i)/1e3).toFixed(1)}s.`)}var k4e=v(()=>{"use strict"});var I4e={};Rr(I4e,{askUserInstruction:()=>nin,getCapabilities:()=>Mi,getHarness:()=>$rn,isClaudeCode:()=>sh,listHarnesses:()=>ein,mapModelTier:()=>rin,setHarness:()=>Qrn,skillReference:()=>LP,subagentInstruction:()=>tin});function Qrn(e){let t=e.toLowerCase().replace(/[\s_]/g,"-");t in MP?Iw=t:(console.error(`[haiku] Unknown harness "${e}" \u2014 falling back to claude-code. Known: ${Object.keys(MP).join(", ")}`),Iw="claude-code"),console.error(`[haiku] Harness: ${MP[Iw].displayName}`)}function $rn(){return Iw}function Mi(){return MP[Iw]}function sh(){return Iw==="claude-code"}function ein(){return Object.keys(MP)}function tin(e){let t=Mi();if(!t.subagents.supported)return e.count&&e.count>1?`Execute ${e.count} tasks sequentially for: ${e.purpose}. Complete each task fully before starting the next.`:`Execute the following task directly: ${e.purpose}.`;let n=t.subagents.toolNames[0]||"subagent",r=[];if(e.count&&e.count>1&&t.subagents.parallelSpawn?r.push(`Spawn ${e.count} \`${n}\` calls in a single response (parallel) for: ${e.purpose}.`):e.count&&e.count>1?r.push(`Spawn ${e.count} \`${n}\` calls for: ${e.purpose}.`):r.push(`Spawn a \`${n}\` for: ${e.purpose}.`),e.agentType&&t.subagents.toolNames.includes("Agent")&&sh()&&r.push(`Agent type: \`${e.agentType}\``),e.model&&t.subagents.modelParam){let i=t.modelTierMap[e.model]||e.model;r.push(`Spawn with \`model: "${i}"\`.`)}return r.join(` -`)}function LP(e){let t=Mi();return t.promptsAsSlashCommands?`/haiku:${e}`:t.mcpPrompts?`the \`haiku:${e}\` prompt`:`the haiku ${e} workflow`}function nin(){let e=Mi();return e.nativeAskUser?"Use `AskUserQuestion` with an `options[]` array for every decision that has known alternatives \u2014 NEVER output option lists as plain text":e.elicitation?"When you have questions with known alternatives, present them as a numbered list and ask the user to pick. Use MCP elicitation when available for structured input.":"When you have questions with known alternatives, present them as a clear numbered list and ask the user to pick."}function rin(e){return Mi().modelTierMap[e]||e}var MP,Iw,Ef=v(()=>{"use strict";MP={"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,qne,Qe,oh,DP=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})})(qne||(qne={}));Qe=Cn.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),oh=e=>{switch(typeof e){case"undefined":return Qe.undefined;case"string":return Qe.string;case"number":return Number.isNaN(e)?Qe.nan:Qe.number;case"boolean":return Qe.boolean;case"function":return Qe.function;case"bigint":return Qe.bigint;case"symbol":return Qe.symbol;case"object":return Array.isArray(e)?Qe.array:e===null?Qe.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?Qe.promise:typeof Map<"u"&&e instanceof Map?Qe.map:typeof Set<"u"&&e instanceof Set?Qe.set:typeof Date<"u"&&e instanceof Date?Qe.date:Qe.object;default:return Qe.unknown}}});var Ie,iin,Eu,Fz=v(()=>{DP();Ie=Cn.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),iin=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),Eu=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;cn.message){let n={},r=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];n[s]=n[s]||[],n[s].push(t(i))}else r.push(t(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};Eu.create=e=>new Eu(e)});var sin,Um,Bne=v(()=>{Fz();DP();sin=(e,t)=>{let n;switch(e.code){case Ie.invalid_type:e.received===Qe.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case Ie.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Cn.jsonStringifyReplacer)}`;break;case Ie.unrecognized_keys:n=`Unrecognized key(s) in object: ${Cn.joinValues(e.keys,", ")}`;break;case Ie.invalid_union:n="Invalid input";break;case Ie.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Cn.joinValues(e.options)}`;break;case Ie.invalid_enum_value:n=`Invalid enum value. Expected ${Cn.joinValues(e.options)}, received '${e.received}'`;break;case Ie.invalid_arguments:n="Invalid function arguments";break;case Ie.invalid_return_type:n="Invalid function return type";break;case Ie.invalid_date:n="Invalid date";break;case Ie.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Cn.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case Ie.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case Ie.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case Ie.custom:n="Invalid input";break;case Ie.invalid_intersection_types:n="Intersection results could not be merged";break;case Ie.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Ie.not_finite:n="Number must be finite";break;default:n=t.defaultError,Cn.assertNever(e)}return{message:n}},Um=sin});function oin(e){x4e=e}function xw(){return x4e}var x4e,jz=v(()=>{Bne();x4e=Um});function We(e,t){let n=xw(),r=UP({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 UP,ain,ha,Mt,f_,tc,Hz,qz,TS,Ow,Gne=v(()=>{jz();Bne();UP=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,s=[...n,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",c=r.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:t,defaultError:a}).message;return{...i,path:s,message:a}},ain=[];ha=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let i of n){if(i.status==="aborted")return Mt;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let i of n){let s=await i.key,o=await i.value;r.push({key:s,value:o})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let i of n){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return Mt;s.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(r[s.value]=o.value)}return{status:t.value,value:r}}},Mt=Object.freeze({status:"aborted"}),f_=e=>({status:"dirty",value:e}),tc=e=>({status:"valid",value:e}),Hz=e=>e.status==="aborted",qz=e=>e.status==="dirty",TS=e=>e.status==="valid",Ow=e=>typeof Promise<"u"&&e instanceof Promise});var O4e=v(()=>{});var ut,N4e=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 L4e(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Ain(e){return new RegExp(`^${L4e(e)}$`)}function D4e(e){let t=`${M4e}T${L4e(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Rin(e,t){return!!((t==="v4"||!t)&&yin.test(e)||(t==="v6"||!t)&&Ein.test(e))}function win(e,t){if(!pin.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function kin(e,t){return!!((t==="v4"||!t)&&Sin.test(e)||(t==="v6"||!t)&&bin.test(e))}function Iin(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function Nw(e){if(e instanceof bu){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=ad.create(Nw(r))}return new bu({...e._def,shape:()=>t})}else return e instanceof Hm?new Hm({...e._def,type:Nw(e.element)}):e instanceof ad?ad.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 Vne(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=Vne(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=C4e(t,r),c=a.fatal??n??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!s){let o=C4e(t,r),a=o.fatal??n??!0;i.addIssue({code:"custom",...o,fatal:a})}}):AS.create()}var cd,P4e,mn,cin,uin,lin,din,fin,pin,hin,min,gin,zne,yin,Sin,Ein,bin,_in,Tin,M4e,vin,vS,p_,h_,m_,g_,Pw,y_,S_,AS,jm,bf,Cw,Hm,bu,E_,Fm,Bz,b_,ah,Gz,Mw,Lw,zz,__,T_,v_,A_,RS,ud,ad,ch,R_,w_,Dw,xin,FP,jP,k_,Oin,Bt,Nin,j4e,H4e,Pin,Cin,q4e,Min,Lin,Din,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,csn,usn,lsn,dsn,fsn,psn,B4e=v(()=>{Fz();jz();N4e();Gne();DP();cd=class{constructor(t,n,r,i){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},P4e=(e,t)=>{if(TS(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new Eu(e.common.issues);return this._error=n,this._error}}};mn=class{get description(){return this._def.description}_getType(t){return oh(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:oh(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new ha,ctx:{common:t.parent.common,data:t.data,parsedType:oh(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(Ow(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:oh(t)},i=this._parseSync({data:t,path:r.path,parent:r});return P4e(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:oh(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return TS(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>TS(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:oh(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(Ow(i)?i:Promise.resolve(i));return P4e(r,s)}refine(t,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{let o=t(i),a=()=>s.addIssue({code:Ie.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new ud({schema:this,typeName:Bt.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return ad.create(this,this._def)}nullable(){return ch.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Hm.create(this)}promise(){return RS.create(this,this._def)}or(t){return E_.create([this,t],this._def)}and(t){return b_.create(this,t,this._def)}transform(t){return new ud({...un(this._def),schema:this,typeName:Bt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new R_({...un(this._def),innerType:this,defaultValue:n,typeName:Bt.ZodDefault})}brand(){return new FP({typeName:Bt.ZodBranded,type:this,...un(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new w_({...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 jP.create(this,t)}readonly(){return k_.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},cin=/^c[^\s-]{8,}$/i,uin=/^[0-9a-z]+$/,lin=/^[0-9A-HJKMNP-TV-Z]{26}$/i,din=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,fin=/^[a-z0-9_-]{21}$/i,pin=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,hin=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,min=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,gin="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",yin=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Sin=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Ein=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,bin=/^(([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])$/,_in=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Tin=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,M4e="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",vin=new RegExp(`^${M4e}$`);vS=class e extends mn{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==Qe.string){let s=this._getOrReturnCtx(t);return We(s,{code:Ie.invalid_type,expected:Qe.string,received:s.parsedType}),Mt}let r=new ha,i;for(let s of this._def.checks)if(s.kind==="min")t.data.lengths.value&&(i=this._getOrReturnCtx(t,i),We(i,{code:Ie.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let o=t.data.length>s.value,a=t.data.lengtht.test(i),{validation:n,code:Ie.invalid_string,...ut.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...ut.errToObj(t)})}url(t){return this._addCheck({kind:"url",...ut.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...ut.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...ut.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...ut.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...ut.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...ut.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...ut.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...ut.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...ut.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...ut.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...ut.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...ut.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...ut.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...ut.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...ut.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...ut.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...ut.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...ut.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...ut.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...ut.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...ut.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...ut.errToObj(n)})}nonempty(t){return this.min(1,ut.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew vS({checks:[],typeName:Bt.ZodString,coerce:e?.coerce??!1,...un(e)});p_=class e extends mn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==Qe.number){let s=this._getOrReturnCtx(t);return We(s,{code:Ie.invalid_type,expected:Qe.number,received:s.parsedType}),Mt}let r,i=new ha;for(let s of this._def.checks)s.kind==="int"?Cn.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?Iin(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.not_finite,message:s.message}),i.dirty()):Cn.assertNever(s);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,ut.toString(n))}gt(t,n){return this.setLimit("min",t,!1,ut.toString(n))}lte(t,n){return this.setLimit("max",t,!0,ut.toString(n))}lt(t,n){return this.setLimit("max",t,!1,ut.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:ut.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:ut.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ut.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ut.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ut.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ut.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:ut.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:ut.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ut.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ut.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&Cn.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew p_({checks:[],typeName:Bt.ZodNumber,coerce:e?.coerce||!1,...un(e)});h_=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 h_({checks:[],typeName:Bt.ZodBigInt,coerce:e?.coerce??!1,...un(e)});m_=class extends mn{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==Qe.boolean){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.boolean,received:r.parsedType}),Mt}return tc(t.data)}};m_.create=e=>new m_({typeName:Bt.ZodBoolean,coerce:e?.coerce||!1,...un(e)});g_=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 g_({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}),Mt}return tc(t.data)}};Pw.create=e=>new Pw({typeName:Bt.ZodSymbol,...un(e)});y_=class extends mn{_parse(t){if(this._getType(t)!==Qe.undefined){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.undefined,received:r.parsedType}),Mt}return tc(t.data)}};y_.create=e=>new y_({typeName:Bt.ZodUndefined,...un(e)});S_=class extends mn{_parse(t){if(this._getType(t)!==Qe.null){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.null,received:r.parsedType}),Mt}return tc(t.data)}};S_.create=e=>new S_({typeName:Bt.ZodNull,...un(e)});AS=class extends mn{constructor(){super(...arguments),this._any=!0}_parse(t){return tc(t.data)}};AS.create=e=>new AS({typeName:Bt.ZodAny,...un(e)});jm=class extends mn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return tc(t.data)}};jm.create=e=>new jm({typeName:Bt.ZodUnknown,...un(e)});bf=class extends mn{_parse(t){let n=this._getOrReturnCtx(t);return We(n,{code:Ie.invalid_type,expected:Qe.never,received:n.parsedType}),Mt}};bf.create=e=>new bf({typeName:Bt.ZodNever,...un(e)});Cw=class extends mn{_parse(t){if(this._getType(t)!==Qe.undefined){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.void,received:r.parsedType}),Mt}return tc(t.data)}};Cw.create=e=>new Cw({typeName:Bt.ZodVoid,...un(e)});Hm=class e extends mn{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),i=this._def;if(n.parsedType!==Qe.array)return We(n,{code:Ie.invalid_type,expected:Qe.array,received:n.parsedType}),Mt;if(i.exactLength!==null){let o=n.data.length>i.exactLength.value,a=n.data.lengthi.maxLength.value&&(We(n,{code:Ie.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,a)=>i.type._parseAsync(new cd(n,o,n.path,a)))).then(o=>ha.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new cd(n,o,n.path,a)));return ha.mergeArray(r,s)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:ut.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:ut.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:ut.toString(n)}})}nonempty(t){return this.min(1,t)}};Hm.create=(e,t)=>new Hm({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Bt.ZodArray,...un(t)});bu=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 bf&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||a.push(u);let c=[];for(let u of o){let l=s[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new cd(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof bf){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")a.length>0&&(We(i,{code:Ie.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new cd(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,f=await l.value;u.push({key:d,value:f,alwaysSet:l.alwaysSet})}return u}).then(u=>ha.mergeObjectSync(r,u)):ha.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return ut.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let i=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:ut.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Bt.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of Cn.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of Cn.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return 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 ad;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return U4e(Cn.objectKeys(this.shape))}};bu.create=(e,t)=>new bu({shape:()=>e,unknownKeys:"strip",catchall:bf.create(),typeName:Bt.ZodObject,...un(t)});bu.strictCreate=(e,t)=>new bu({shape:()=>e,unknownKeys:"strict",catchall:bf.create(),typeName:Bt.ZodObject,...un(t)});bu.lazycreate=(e,t)=>new bu({shape:e,unknownKeys:"strip",catchall:bf.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)});Fm=e=>e instanceof __?Fm(e.schema):e instanceof ud?Fm(e.innerType()):e instanceof T_?[e.value]:e instanceof v_?e.options:e instanceof A_?Cn.objectValues(e.enum):e instanceof R_?Fm(e._def.innerType):e instanceof y_?[void 0]:e instanceof S_?[null]:e instanceof ad?[void 0,...Fm(e.unwrap())]:e instanceof ch?[null,...Fm(e.unwrap())]:e instanceof FP||e instanceof k_?Fm(e.unwrap()):e instanceof w_?Fm(e._def.innerType):[],Bz=class e extends mn{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==Qe.object)return We(n,{code:Ie.invalid_type,expected:Qe.object,received:n.parsedType}),Mt;let r=this.discriminator,i=n.data[r],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(We(n,{code:Ie.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Mt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let s of n){let o=Fm(s.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);i.set(a,s)}}return new e({typeName:Bt.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...un(r)})}};b_=class extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(Hz(s)||Hz(o))return Mt;let a=Vne(s.value,o.value);return a.valid?((qz(s)||qz(o))&&n.dirty(),{status:n.value,value:a.data}):(We(r,{code:Ie.invalid_intersection_types}),Mt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};b_.create=(e,t,n)=>new b_({left:e,right:t,typeName:Bt.ZodIntersection,...un(n)});ah=class e extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Qe.array)return We(r,{code:Ie.invalid_type,expected:Qe.array,received:r.parsedType}),Mt;if(r.data.lengththis._def.items.length&&(We(r,{code:Ie.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new cd(r,o,r.path,a)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>ha.mergeArray(n,o)):ha.mergeArray(n,s)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};ah.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ah({items:e,typeName:Bt.ZodTuple,rest:null,...un(t)})};Gz=class e extends mn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Qe.object)return We(r,{code:Ie.invalid_type,expected:Qe.object,received:r.parsedType}),Mt;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in r.data)i.push({key:s._parse(new cd(r,a,r.path,a)),value:o._parse(new cd(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?ha.mergeObjectAsync(n,i):ha.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof mn?new e({keyType:t,valueType:n,typeName:Bt.ZodRecord,...un(r)}):new e({keyType:vS.create(),valueType:t,typeName:Bt.ZodRecord,...un(n)})}},Mw=class extends mn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Qe.map)return We(r,{code:Ie.invalid_type,expected:Qe.map,received:r.parsedType}),Mt;let i=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([a,c],u)=>({key:i._parse(new cd(r,a,r.path,[u,"key"])),value:s._parse(new cd(r,c,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return Mt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let c of o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Mt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}}}};Mw.create=(e,t,n)=>new Mw({valueType:t,keyType:e,typeName:Bt.ZodMap,...un(n)});Lw=class e extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Qe.set)return We(r,{code:Ie.invalid_type,expected:Qe.set,received:r.parsedType}),Mt;let i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(We(r,{code:Ie.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Mt;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((c,u)=>s._parse(new cd(r,c,r.path,u)));return r.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:ut.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:ut.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};Lw.create=(e,t)=>new Lw({valueType:e,minSize:null,maxSize:null,typeName:Bt.ZodSet,...un(t)});zz=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 UP({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 UP({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,xw(),Um].filter(u=>!!u),issueData:{code:Ie.invalid_return_type,returnTypeError:c}})}let s={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof RS){let a=this;return tc(async function(...c){let u=new Eu([]),l=await a._def.args.parseAsync(c,s).catch(p=>{throw u.addIssue(r(c,p)),u}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw u.addIssue(i(d,p)),u})})}else{let a=this;return tc(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new Eu([r(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Eu([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:ah.create(t).rest(jm.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||ah.create([]).rest(jm.create()),returns:n||jm.create(),typeName:Bt.ZodFunction,...un(r)})}},__=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})}};__.create=(e,t)=>new __({getter:e,typeName:Bt.ZodLazy,...un(t)});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}),Mt}return{status:"valid",value:t.data}}get value(){return this._def.value}};T_.create=(e,t)=>new T_({value:e,typeName:Bt.ZodLiteral,...un(t)});v_=class e extends mn{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return We(n,{expected:Cn.joinValues(r),received:n.parsedType,code:Ie.invalid_type}),Mt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return We(n,{received:n.data,code:Ie.invalid_enum_value,options:r}),Mt}return tc(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};v_.create=U4e;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 tc(t.data)}get enum(){return this._def.values}};A_.create=(e,t)=>new A_({values:e,typeName:Bt.ZodNativeEnum,...un(t)});RS=class extends mn{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==Qe.promise&&n.common.async===!1)return We(n,{code:Ie.invalid_type,expected:Qe.promise,received:n.parsedType}),Mt;let r=n.parsedType===Qe.promise?n.data:Promise.resolve(n.data);return tc(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}};RS.create=(e,t)=>new RS({type:e,typeName:Bt.ZodPromise,...un(t)});ud=class extends mn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Bt.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=this._def.effect||null,s={addIssue:o=>{We(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(r.data,s);if(r.common.async)return Promise.resolve(o).then(async a=>{if(n.value==="aborted")return Mt;let c=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return c.status==="aborted"?Mt:c.status==="dirty"?f_(c.value):n.value==="dirty"?f_(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"?f_(a.value):n.value==="dirty"?f_(a.value):a}}if(i.type==="refinement"){let o=a=>{let c=i.refinement(a,s);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?Mt:(a.status==="dirty"&&n.dirty(),o(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?Mt:(a.status==="dirty"&&n.dirty(),o(a.value).then(()=>({status:n.value,value:a.value}))))}if(i.type==="transform")if(r.common.async===!1){let o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!TS(o))return Mt;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>TS(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:n.value,value:a})):Mt);Cn.assertNever(i)}};ud.create=(e,t,n)=>new ud({schema:e,typeName:Bt.ZodEffects,effect:t,...un(n)});ud.createWithPreprocess=(e,t,n)=>new ud({schema:t,effect:{type:"preprocess",transform:e},typeName:Bt.ZodEffects,...un(n)});ad=class extends mn{_parse(t){return this._getType(t)===Qe.undefined?tc(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ad.create=(e,t)=>new ad({innerType:e,typeName:Bt.ZodOptional,...un(t)});ch=class extends mn{_parse(t){return this._getType(t)===Qe.null?tc(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ch.create=(e,t)=>new ch({innerType:e,typeName:Bt.ZodNullable,...un(t)});R_=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}};R_.create=(e,t)=>new R_({innerType:e,typeName:Bt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...un(t)});w_=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Ow(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Eu(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Eu(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};w_.create=(e,t)=>new w_({innerType:e,typeName:Bt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...un(t)});Dw=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}}};Dw.create=e=>new Dw({typeName:Bt.ZodNaN,...un(e)});xin=Symbol("zod_brand"),FP=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}},jP=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(),f_(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})}},k_=class extends mn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(TS(i)&&(i.value=Object.freeze(i.value)),i);return Ow(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};k_.create=(e,t)=>new k_({innerType:e,typeName:Bt.ZodReadonly,...un(t)});Oin={object:bu.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={}));Nin=(e,t={message:`Input not instance of ${e.name}`})=>F4e(n=>n instanceof e,t),j4e=vS.create,H4e=p_.create,Pin=Dw.create,Cin=h_.create,q4e=m_.create,Min=g_.create,Lin=Pw.create,Din=y_.create,Uin=S_.create,Fin=AS.create,jin=jm.create,Hin=bf.create,qin=Cw.create,Bin=Hm.create,Gin=bu.create,zin=bu.strictCreate,Vin=E_.create,Win=Bz.create,Kin=b_.create,Zin=ah.create,Yin=Gz.create,Jin=Mw.create,Xin=Lw.create,Qin=zz.create,$in=__.create,esn=T_.create,tsn=v_.create,nsn=A_.create,rsn=RS.create,isn=ud.create,ssn=ad.create,osn=ch.create,asn=ud.createWithPreprocess,csn=jP.create,usn=()=>j4e().optional(),lsn=()=>H4e().optional(),dsn=()=>q4e().optional(),fsn={string:(e=>vS.create({...e,coerce:!0})),number:(e=>p_.create({...e,coerce:!0})),boolean:(e=>m_.create({...e,coerce:!0})),bigint:(e=>h_.create({...e,coerce:!0})),date:(e=>g_.create({...e,coerce:!0}))},psn=Mt});var O={};Rr(O,{BRAND:()=>xin,DIRTY:()=>f_,EMPTY_PATH:()=>ain,INVALID:()=>Mt,NEVER:()=>psn,OK:()=>tc,ParseStatus:()=>ha,Schema:()=>mn,ZodAny:()=>AS,ZodArray:()=>Hm,ZodBigInt:()=>h_,ZodBoolean:()=>m_,ZodBranded:()=>FP,ZodCatch:()=>w_,ZodDate:()=>g_,ZodDefault:()=>R_,ZodDiscriminatedUnion:()=>Bz,ZodEffects:()=>ud,ZodEnum:()=>v_,ZodError:()=>Eu,ZodFirstPartyTypeKind:()=>Bt,ZodFunction:()=>zz,ZodIntersection:()=>b_,ZodIssueCode:()=>Ie,ZodLazy:()=>__,ZodLiteral:()=>T_,ZodMap:()=>Mw,ZodNaN:()=>Dw,ZodNativeEnum:()=>A_,ZodNever:()=>bf,ZodNull:()=>S_,ZodNullable:()=>ch,ZodNumber:()=>p_,ZodObject:()=>bu,ZodOptional:()=>ad,ZodParsedType:()=>Qe,ZodPipeline:()=>jP,ZodPromise:()=>RS,ZodReadonly:()=>k_,ZodRecord:()=>Gz,ZodSchema:()=>mn,ZodSet:()=>Lw,ZodString:()=>vS,ZodSymbol:()=>Pw,ZodTransformer:()=>ud,ZodTuple:()=>ah,ZodType:()=>mn,ZodUndefined:()=>y_,ZodUnion:()=>E_,ZodUnknown:()=>jm,ZodVoid:()=>Cw,addIssueToContext:()=>We,any:()=>Fin,array:()=>Bin,bigint:()=>Cin,boolean:()=>q4e,coerce:()=>fsn,custom:()=>F4e,date:()=>Min,datetimeRegex:()=>D4e,defaultErrorMap:()=>Um,discriminatedUnion:()=>Win,effect:()=>isn,enum:()=>tsn,function:()=>Qin,getErrorMap:()=>xw,getParsedType:()=>oh,instanceof:()=>Nin,intersection:()=>Kin,isAborted:()=>Hz,isAsync:()=>Ow,isDirty:()=>qz,isValid:()=>TS,late:()=>Oin,lazy:()=>$in,literal:()=>esn,makeIssue:()=>UP,map:()=>Jin,nan:()=>Pin,nativeEnum:()=>nsn,never:()=>Hin,null:()=>Uin,nullable:()=>osn,number:()=>H4e,object:()=>Gin,objectUtil:()=>qne,oboolean:()=>dsn,onumber:()=>lsn,optional:()=>ssn,ostring:()=>usn,pipeline:()=>csn,preprocess:()=>asn,promise:()=>rsn,quotelessJson:()=>iin,record:()=>Yin,set:()=>Xin,setErrorMap:()=>oin,strictObject:()=>zin,string:()=>j4e,symbol:()=>Lin,transformer:()=>isn,tuple:()=>Zin,undefined:()=>Din,union:()=>Vin,unknown:()=>jin,util:()=>Cn,void:()=>qin});var Wne=v(()=>{jz();Gne();O4e();DP();B4e();Fz()});function me(e,t,n){function r(a,c){var u;Object.defineProperty(a,"_zod",{value:a._zod??{},enumerable:!1}),(u=a._zod).traits??(u.traits=new Set),a._zod.traits.add(e),t(a,c);for(let l in o.prototype)l in a||Object.defineProperty(a,l,{value:o.prototype[l].bind(a)});a._zod.constr=o,a._zod.def=c}let i=n?.Parent??Object;class s extends i{}Object.defineProperty(s,"name",{value:e});function o(a){var c;let u=n?.Parent?new s:this;r(u,a),(c=u._zod).deferred??(c.deferred=[]);for(let l of u._zod.deferred)l();return u}return Object.defineProperty(o,"init",{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:a=>n?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}function ld(e){return e&&Object.assign(Vz,e),Vz}var Zjr,qm,Vz,Uw=v(()=>{Zjr=Object.freeze({status:"aborted"});qm=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Vz={}});var or={};Rr(or,{BIGINT_FORMAT_RANGES:()=>z4e,Class:()=>Zne,NUMBER_FORMAT_RANGES:()=>nre,aborted:()=>x_,allowsEval:()=>$ne,assert:()=>Ssn,assertEqual:()=>hsn,assertIs:()=>gsn,assertNever:()=>ysn,assertNotEqual:()=>msn,assignProp:()=>Qne,cached:()=>qP,captureStackTrace:()=>Kz,cleanEnum:()=>Nsn,cleanRegex:()=>GP,clone:()=>uh,createTransparentProxy:()=>Asn,defineLazy:()=>ni,esc:()=>I_,escapeRegex:()=>wS,extend:()=>ksn,finalizeIssue:()=>_f,floatSafeRemainder:()=>Xne,getElementAtPath:()=>Esn,getEnumValues:()=>Yne,getLengthableOrigin:()=>zP,getParsedType:()=>vsn,getSizableOrigin:()=>V4e,isObject:()=>Fw,isPlainObject:()=>jw,issue:()=>rre,joinValues:()=>Wz,jsonStringifyReplacer:()=>Jne,merge:()=>Isn,normalizeParams:()=>Lt,nullish:()=>BP,numKeys:()=>Tsn,omit:()=>wsn,optionalKeys:()=>tre,partial:()=>xsn,pick:()=>Rsn,prefixIssues:()=>lh,primitiveTypes:()=>G4e,promiseAllObject:()=>bsn,propertyKeyTypes:()=>ere,randomString:()=>_sn,required:()=>Osn,stringifyPrimitive:()=>Zz,unwrapMessage:()=>HP});function hsn(e){return e}function msn(e){return e}function gsn(e){}function ysn(e){throw new Error}function Ssn(e){}function Yne(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 Wz(e,t="|"){return e.map(n=>Zz(n)).join(t)}function Jne(e,t){return typeof t=="bigint"?t.toString():t}function qP(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function BP(e){return e==null}function GP(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function Xne(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 Qne(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Esn(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function bsn(e){let t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{let i={};for(let s=0;st};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function Asn(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,s){return t??(t=e()),Reflect.set(t,r,i,s)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function Zz(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function tre(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Rsn(e,t){let n={},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(n[i]=r.shape[i])}return uh(e,{...e._zod.def,shape:n,checks:[]})}function wsn(e,t){let n={...e._zod.def.shape},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete n[i]}return uh(e,{...e._zod.def,shape:n,checks:[]})}function ksn(e,t){if(!jw(t))throw new Error("Invalid input to extend: expected a plain object");let n={...e._zod.def,get shape(){let r={...e._zod.def.shape,...t};return Qne(this,"shape",r),r},checks:[]};return uh(e,n)}function Isn(e,t){return uh(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Qne(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function xsn(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in r))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=e?new e({type:"optional",innerType:r[s]}):r[s])}else for(let s in r)i[s]=e?new e({type:"optional",innerType:r[s]}):r[s];return uh(t,{...t._zod.def,shape:i,checks:[]})}function Osn(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=new e({type:"nonoptional",innerType:r[s]}))}else for(let s in r)i[s]=new e({type:"nonoptional",innerType:r[s]});return uh(t,{...t._zod.def,shape:i,checks:[]})}function x_(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function HP(e){return typeof e=="string"?e:e?.message}function _f(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=HP(e.inst?._zod.def?.error?.(e))??HP(t?.error?.(e))??HP(n.customError?.(e))??HP(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function V4e(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function zP(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function rre(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Nsn(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}var Kz,$ne,vsn,ere,G4e,nre,z4e,Zne,Bm=v(()=>{Kz=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};$ne=qP(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});vsn=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},ere=new Set(["string","number","symbol"]),G4e=new Set(["string","number","bigint","boolean","symbol","undefined"]);nre={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]},z4e={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};Zne=class{constructor(...t){}}});function K4e(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 Z4e(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();W4e=(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,Jne,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Yz=me("$ZodError",W4e),ire=me("$ZodError",W4e,{Parent:Error})});var Y4e,J4e,ore,VP,are,Jz,cre=v(()=>{Uw();sre();Bm();Y4e=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=>_f(c,s,ld())));throw Kz(a,i?.callee),a}return o.value},J4e=e=>async(t,n,r,i)=>{let s=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise&&(o=await o),o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>_f(c,s,ld())));throw Kz(a,i?.callee),a}return o.value},ore=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??Yz)(s.issues.map(o=>_f(o,i,ld())))}:{success:!0,data:s.value}},VP=ore(ire),are=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},s=t._zod.run({value:n,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(o=>_f(o,i,ld())))}:{success:!0,data:s.value}},Jz=are(ire)});function oKe(){return new RegExp(Csn,"u")}function gKe(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 yKe(e){return new RegExp(`^${gKe(e)}$`)}function SKe(e){let t=gKe({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(`^${hKe}T(?:${r})$`)}var X4e,Q4e,$4e,eKe,tKe,nKe,rKe,iKe,ure,sKe,Csn,aKe,cKe,uKe,lKe,dKe,lre,fKe,pKe,hKe,mKe,EKe,bKe,_Ke,TKe,vKe,AKe,RKe,Xz=v(()=>{X4e=/^[cC][^\s-]{8,}$/,Q4e=/^[0-9a-z]+$/,$4e=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,eKe=/^[0-9a-vA-V]{20}$/,tKe=/^[A-Za-z0-9]{27}$/,nKe=/^[a-zA-Z0-9_-]{21}$/,rKe=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,iKe=/^([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})$/,ure=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)$/,sKe=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Csn="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";aKe=/^(?:(?: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])$/,cKe=/^(([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})$/,uKe=/^((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])$/,lKe=/^(([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])$/,dKe=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,lre=/^[A-Za-z0-9_-]*$/,fKe=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,pKe=/^\+(?:[0-9]){6,14}[0-9]$/,hKe="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",mKe=new RegExp(`^${hKe}$`);EKe=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},bKe=/^\d+$/,_Ke=/^-?\d+(?:\.\d+)?/i,TKe=/true|false/i,vKe=/null/i,AKe=/^[^A-Z]*$/,RKe=/^[^a-z]*$/});var nc,wKe,fre,pre,kKe,IKe,xKe,OKe,NKe,WP,PKe,CKe,MKe,LKe,DKe,UKe,FKe,Qz=v(()=>{Uw();Xz();Bm();nc=me("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),wKe={number:"number",bigint:"bigint",object:"date"},fre=me("$ZodCheckLessThan",(e,t)=>{nc.init(e,t);let n=wKe[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?r.value<=t.value:r.value{nc.init(e,t);let n=wKe[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?i.minimum=t.value:i.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),kKe=me("$ZodCheckMultipleOf",(e,t)=>{nc.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):Xne(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})}}),IKe=me("$ZodCheckNumberFormat",(e,t)=>{nc.init(e,t),t.format=t.format||"float64";let n=t.format?.includes("int"),r=n?"int":"number",[i,s]=nre[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=bKe)}),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})}}),xKe=me("$ZodCheckMaxLength",(e,t)=>{var n;nc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!BP(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=zP(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),OKe=me("$ZodCheckMinLength",(e,t)=>{var n;nc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!BP(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=zP(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),NKe=me("$ZodCheckLengthEquals",(e,t)=>{var n;nc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!BP(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=zP(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})}}),WP=me("$ZodCheckStringFormat",(e,t)=>{var n,r;nc.init(e,t),e._zod.onattach.push(i=>{let s=i._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),PKe=me("$ZodCheckRegex",(e,t)=>{WP.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})}}),CKe=me("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=AKe),WP.init(e,t)}),MKe=me("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=RKe),WP.init(e,t)}),LKe=me("$ZodCheckIncludes",(e,t)=>{nc.init(e,t);let n=wS(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(i=>{let s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),DKe=me("$ZodCheckStartsWith",(e,t)=>{nc.init(e,t);let n=new RegExp(`^${wS(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),UKe=me("$ZodCheckEndsWith",(e,t)=>{nc.init(e,t);let n=new RegExp(`.*${wS(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),FKe=me("$ZodCheckOverwrite",(e,t)=>{nc.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}})});var $z,hre=v(()=>{$z=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=gHe(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",D8t),n.secureEndpoint){qP("Upgrading socket connection to TLS");let f=n.servername||n.host;return mee.connect({...SHe(n,"host","path","port"),socket:i,servername:xm.isIP(f)?void 0:f})}return i}i.destroy();let d=new xm.Socket({writable:!1});return d.readable=!0,t.once("socket",f=>{qP("Replaying proxy buffer for failed request"),f.push(l),f.push(null)}),d}};BP.__initStatic()});import*as L8t from"node:http";import*as U8t from"node:https";import{Readable as F8t}from"node:stream";import{createGzip as j8t}from"node:zlib";function q8t(e){return new F8t({read(){this.push(e),this.push(null)}})}function EHe(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.")}),aP(e,()=>Promise.resolve({}))}let n=t.protocol==="https:",r=B8t(t,e.proxy||(n?process.env.https_proxy:void 0)||process.env.http_proxy),i=n?U8t:L8t,s=e.keepAlive===void 0?!1:e.keepAlive,o=r?new BP(r):new i.Agent({keepAlive:s,maxSockets:30,timeout:2e3}),a=z8t(e,e.httpModule??i,o);return aP(e,a)}function B8t(e,t){let{no_proxy:n}=process.env;if(!n?.split(",").some(i=>e.host.endsWith(i)||e.hostname.endsWith(i)))return t}function z8t(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)=>{QR(()=>{let f=q8t(u.body),p={...e.headers};u.body.length>H8t&&(p["content-encoding"]="gzip",f=f.pipe(j8t()));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 H8t,_He=v(()=>{st();bHe();H8t=1024*32});function THe(e){if(e===!1)return!1;if(typeof e=="string")return e;let t=iA(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 vHe=v(()=>{st()});import{posix as G8t,sep as V8t}from"node:path";function RHe(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}function AHe(e=process.argv[1]?eQ(process.argv[1]):process.cwd(),t=V8t==="\\"){let n=t?RHe(e):e;return r=>{if(!r)return;let i=t?RHe(r):r,{dir:s,base:o,ext:a}=G8t.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 wHe=v(()=>{st()});function kHe(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 IHe,xHe=v(()=>{st();wHe();IHe=Cj(qQ(AHe()))});import*as OHe from"node:os";import{threadId as W8t,isMainThread as K8t}from"worker_threads";var PHe,Y8t,cB,NHe=v(()=>{Me();PHe=Re(Jt(),1);st();CA();ff();Y8t=6e4,cB=class extends cP{constructor(t){let n=t.includeServerName===!1?void 0:t.serverName||global.process.env.SENTRY_NAME||OHe.hostname(),r={...t,platform:"node",runtime:t.runtime||{name:"node",version:global.process.version},serverName:n};t.openTelemetryInstrumentations&&(0,PHe.registerInstrumentations)({instrumentations:t.openTelemetryInstrumentations}),UE(r,"node"),Z.log(`Initializing Sentry: process: ${process.pid}, thread: ${K8t?"main":`worker-${W8t}`}.`),super(r),this.getOptions().enableLogs&&(this._logOnExitFlushListener=()=>{nA(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=Cn,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??Y8t).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener))}_setupIntegrations(){WX(),super._setupIntegrations()}_getTraceInfoFromScope(t){return t?pje(this,t):[void 0,void 0]}}});import*as MHe from"module";function gee(){if(Xje()&&!qt._sentryEsmLoaderHookRegistered){qt._sentryEsmLoaderHookRegistered=!0;try{let{addHookMessagePort:e}=(0,CHe.createAddHookMessageChannel)();MHe.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 CHe,DHe=v(()=>{st();CHe=Re(SJ(),1);sB()});function uB(){return[vH(),_H(),RH(),AH(),pHe(),iQ(),kH(),CUe(),HUe(),rHe(),sHe(),Uje(),Yje(),Oje(),wje(),aHe(),tHe()]}function yee(e={}){return Z8t(e,uB)}function Z8t(e={},t){let n=J8t(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&&gee(),gje(),Fn().update(n.initialScope),n.spotlight&&!n.integrations.some(({name:s})=>s===pee)&&n.integrations.push(lHe({sidecarUrl:typeof n.spotlight=="string"?n.spotlight:void 0})),UE(n,"node-core");let i=new cB(n);return Fn().setClient(i),i.init(),Z.log(`SDK initialized from ${jP()?"CommonJS":"ESM"}`),i.startClientReportTracking(),$8t(),$Fe(i),mje(i),process.env.VERCEL&&process.on("SIGTERM",async()=>{await i.flush(200)}),i}function See(){if(!Qt)return;let e=rje(),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 J8t(e,t){let n=X8t(e.release),r=THe(e.spotlight),i=Q8t(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??EHe,stackParser:CJ(e.stackParser||IHe),release:n,tracesSampleRate:i,spotlight:r,debug:iA(e.debug??process.env.SENTRY_DEBUG)},o=e.integrations,a=e.defaultIntegrations??t(s);return{...s,integrations:CX({defaultIntegrations:a,integrations:o})}}function X8t(e){if(e!==void 0)return e;let t=kHe();if(t!==void 0)return t}function Q8t(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 $8t(){if(iA(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let e=process.env.SENTRY_TRACE,t=process.env.SENTRY_BAGGAGE,n=WO(e,t);Fn().setPropagationContext(n)}}var LHe=v(()=>{st();CA();ff();kje();Pje();Fje();MUe();Zje();nHe();qUe();iHe();oHe();cHe();dHe();hHe();_He();sB();vHe();xHe();NHe();DHe()});function Dr(e,t){e.setAttribute(At,t)}var UHe=v(()=>{st()});function zP(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 FHe=v(()=>{});var sr=v(()=>{VQ();XH();ZQ();$Q();Rje();Aje();ZH();LHe();UHe();FHe();yA()});function n7t(e,t={}){return typeof e.spans=="boolean"?e.spans:!(t.skipOpenTelemetrySetup||!Os(t)&&lB)}function r7t(e={}){return{disableOutgoingRequestInstrumentation:lB,ignoreOutgoingRequestHook:n=>{let r=zP(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=zP(r);if(i.startsWith("data:")){let s=sA(i);n.setAttribute("http.url",s),n.setAttribute(xy,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 HHe,bee,jHe,lB,e7t,t7t,qHe,BHe=v(()=>{Me();HHe=Re(wCe(),1);st();sr();bee="Http",jHe="@opentelemetry_sentry-patched/instrumentation-http",lB=pf.major===22&&pf.minor>=12||pf.major===23&&pf.minor>=2||pf.major>=24,e7t=rt(`${bee}.sentry`,e=>new VE(e)),t7t=rt(bee,e=>{let t=new HHe.HttpInstrumentation({...e,disableIncomingRequestInstrumentation:!0});try{t._diag=sl.createComponentLogger({namespace:jHe}),t.instrumentationName=jHe}catch{}try{let n={get:()=>!1,set:()=>{}};Object.defineProperty(t,"_httpPatched",n),Object.defineProperty(t,"_httpsPatched",n)}catch{}return t});qHe=(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=RP(r),o=AP(i),a=t&&!n;return{name:bee,setup(c){let u=c.getOptions();a&&Os(u)&&o.setup(c)},setupOnce(){let c=ct()?.getOptions()||{},u=n7t(e,c);s.setupOnce();let l={breadcrumbs:e.breadcrumbs,propagateTraceInOutgoingRequests:typeof e.tracePropagation=="boolean"?e.tracePropagation:lB||!u,createSpansForOutgoingRequests:lB,spans:e.spans,ignoreOutgoingRequests:e.ignoreOutgoingRequests,outgoingRequestHook:(d,f)=>{let p=zP(f);if(p.startsWith("data:")){let h=sA(p);d.setAttribute("http.url",h),d.setAttribute(xy,h),d.updateName(`${f.method||"GET"} ${h}`)}e.instrumentation?.requestHook?.(d,f)},outgoingResponseHook:e.instrumentation?.responseHook,outgoingRequestApplyCustomAttributes:e.instrumentation?.applyCustomAttributesOnSpan};if(e7t(l),u){let d=r7t(e);t7t(d)}},processEvent(c){return o.processEvent(c)}}}});var zHe=w(MA=>{"use strict";Object.defineProperty(MA,"__esModule",{value:!0});MA.PACKAGE_NAME=MA.PACKAGE_VERSION=void 0;MA.PACKAGE_VERSION="0.24.0";MA.PACKAGE_NAME="@opentelemetry/instrumentation-undici"});var VHe=w(fB=>{"use strict";Object.defineProperty(fB,"__esModule",{value:!0});fB.UndiciInstrumentation=void 0;var Eee=Y("diagnostics_channel"),i7t=Y("url"),GP=Jt(),pl=(Me(),ke(Ze)),dB=pr(),Vs=(Nn(),ke(Mr)),GHe=zHe(),_ee=class extends GP.InstrumentationBase{_recordFromReq=new WeakMap;constructor(t={}){super(GHe.PACKAGE_NAME,GHe.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)Eee.subscribe?.(t,n),o=()=>Eee.unsubscribe?.(t,n);else{let a=Eee.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,dB.hrTime)(),o;try{o=new i7t.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,GP.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,GP.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,GP.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,dB.hrTimeToMilliseconds)((0,dB.hrTimeDuration)(n,(0,dB.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"}};fB.UndiciInstrumentation=_ee});var WHe=w(pB=>{"use strict";Object.defineProperty(pB,"__esModule",{value:!0});pB.UndiciInstrumentation=void 0;var s7t=VHe();Object.defineProperty(pB,"UndiciInstrumentation",{enumerable:!0,get:function(){return s7t.UndiciInstrumentation}})});function KHe(e,t="/"){let n=`${e}`;return n.endsWith("/")&&t.startsWith("/")?`${n}${t.slice(1)}`:!n.endsWith("/")&&!t.startsWith("/")?`${n}/${t}`:`${n}${t}`}function u7t(e,t={}){return typeof e.spans=="boolean"?e.spans:!t.skipOpenTelemetrySetup&&Os(t)}function l7t(e={}){return{requireParentforSpans:!1,ignoreRequestHook:n=>{let r=KHe(n.origin,n.path),i=e.ignoreOutgoingRequests;return!!(i&&r&&i(r))},startSpanHook:n=>{let r=KHe(n.origin,n.path);if(r.startsWith("data:")){let i=sA(r);return{[At]:"auto.http.otel.node_fetch","http.url":i,[xy]:i,[Kl]:`${n.method||"GET"} ${i}`}}return{[At]:"auto.http.otel.node_fetch"}},requestHook:e.requestHook,responseHook:e.responseHook,headersToSpanAttributes:e.headersToSpanAttributes}}var YHe,ZHe,o7t,a7t,c7t,JHe,XHe=v(()=>{YHe=Re(WHe(),1);st();sr();ZHe="NodeFetch",o7t=rt(ZHe,YHe.UndiciInstrumentation,e=>l7t(e)),a7t=rt(`${ZHe}.sentry`,WE,e=>e),c7t=((e={})=>({name:"NodeFetch",setupOnce(){u7t(e,ct()?.getOptions())&&o7t(e),a7t(e)}})),JHe=c7t});var hB=w(VP=>{"use strict";Object.defineProperty(VP,"__esModule",{value:!0});VP.ExpressLayerType=void 0;var d7t;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(d7t=VP.ExpressLayerType||(VP.ExpressLayerType={}))});var mB=w(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});WP.AttributeNames=void 0;var f7t;(function(e){e.EXPRESS_TYPE="express.type",e.EXPRESS_NAME="express.name"})(f7t=WP.AttributeNames||(WP.AttributeNames={}))});var Tee=w(DA=>{"use strict";Object.defineProperty(DA,"__esModule",{value:!0});DA._LAYERS_STORE_PROPERTY=DA.kLayerPatched=void 0;DA.kLayerPatched=Symbol("express-layer-patched");DA._LAYERS_STORE_PROPERTY="__ot_middlewares"});var eqe=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 vee=hB(),LA=mB(),XE=Tee(),p7t=(e,t)=>(Array.isArray(e[XE._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,XE._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),t===void 0?{isLayerPathStored:!1}:(e[XE._LAYERS_STORE_PROPERTY].push(t),{isLayerPathStored:!0}));Ws.storeLayerPath=p7t;var h7t=(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=h7t;var m7t=(e,t,n)=>{if(t.name==="router"){let r=(0,Ws.getRouterPath)("",t),i=r||n||e||"/";return{attributes:{[LA.AttributeNames.EXPRESS_NAME]:i,[LA.AttributeNames.EXPRESS_TYPE]:vee.ExpressLayerType.ROUTER},name:`router - ${i}`}}else return t.name==="bound dispatch"||t.name==="handle"?{attributes:{[LA.AttributeNames.EXPRESS_NAME]:(e||n)??"request handler",[LA.AttributeNames.EXPRESS_TYPE]:vee.ExpressLayerType.REQUEST_HANDLER},name:`request handler${t.path?` - ${e||n}`:""}`}:{attributes:{[LA.AttributeNames.EXPRESS_NAME]:t.name,[LA.AttributeNames.EXPRESS_TYPE]:vee.ExpressLayerType.MIDDLEWARE},name:`middleware - ${t.name}`}};Ws.getLayerMetadata=m7t;var g7t=(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")},y7t=(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(g7t(e,r))return!0}catch{}return!1};Ws.isLayerIgnored=y7t;var S7t=e=>e instanceof Error?[e,e.message]:[String(e),String(e)];Ws.asErrorAndMessage=S7t;var b7t=e=>{let t=e[0];return Array.isArray(t)?t.map(n=>QHe(n)||"").join(","):QHe(t)};Ws.getLayerPath=b7t;var QHe=e=>{if(typeof e=="string")return e;if(e instanceof RegExp||typeof e=="number")return e.toString()};function $He(e){let n=(Array.isArray(e[XE._LAYERS_STORE_PROPERTY])?e[XE._LAYERS_STORE_PROPERTY]:[]).filter(r=>r!=="/"&&r!=="/*");return n.length===1&&n[0]==="*"?"*":n.join("").replace(/\/{2,}/g,"/")}Ws.getConstructedRoute=$He;function E7t(e){let t=Array.isArray(e[XE._LAYERS_STORE_PROPERTY])?e[XE._LAYERS_STORE_PROPERTY]:[];if(t.length===0)return;if(t.every(s=>s==="/"))return e.originalUrl==="/"?"/":void 0;let n=$He(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)||_7t(r))?r:void 0}Ws.getActualMatchedRoute=E7t;function _7t(e){return e.includes(":")||e.includes("*")}});var tqe=w(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.PACKAGE_NAME=UA.PACKAGE_VERSION=void 0;UA.PACKAGE_VERSION="0.62.0";UA.PACKAGE_NAME="@opentelemetry/instrumentation-express"});var oqe=w(yB=>{"use strict";Object.defineProperty(yB,"__esModule",{value:!0});yB.ExpressInstrumentation=void 0;var nqe=pr(),hu=(Me(),ke(Ze)),rqe=hB(),iqe=mB(),Jp=eqe(),sqe=tqe(),FA=Jt(),T7t=(Nn(),ke(Mr)),gB=Tee(),Ree=class extends FA.InstrumentationBase{constructor(t={}){super(sqe.PACKAGE_NAME,sqe.PACKAGE_VERSION,t)}init(){return[new FA.InstrumentationNodeModuleDefinition("express",[">=4.0.0 <6"],t=>{let n=typeof t?.Router?.prototype?.route=="function",r=n?t.Router.prototype:t.Router;return(0,FA.isWrapped)(r.route)&&this._unwrap(r,"route"),this._wrap(r,"route",this._getRoutePatch()),(0,FA.isWrapped)(r.use)&&this._unwrap(r,"use"),this._wrap(r,"use",this._getRouterUsePatch()),(0,FA.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[gB.kLayerPatched]!==!0&&(t[gB.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={[T7t.ATTR_HTTP_ROUTE]:l},f=(0,Jp.getLayerMetadata)(u,t,n),p=f.attributes[iqe.AttributeNames.EXPRESS_TYPE],h=(0,nqe.getRPCMetadata)(hu.context.active());if(h?.type===nqe.RPCType.HTTP&&(h.route=l),(0,Jp.isLayerIgnored)(f.name,p,r.getConfig()))return p===rqe.ExpressLayerType.MIDDLEWARE&&o[gB._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,FA.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[iqe.AttributeNames.EXPRESS_TYPE]===rqe.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[gB._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}}};yB.ExpressInstrumentation=Ree});var aqe=w(Jy=>{"use strict";Object.defineProperty(Jy,"__esModule",{value:!0});Jy.AttributeNames=Jy.ExpressLayerType=Jy.ExpressInstrumentation=void 0;var v7t=oqe();Object.defineProperty(Jy,"ExpressInstrumentation",{enumerable:!0,get:function(){return v7t.ExpressInstrumentation}});var R7t=hB();Object.defineProperty(Jy,"ExpressLayerType",{enumerable:!0,get:function(){return R7t.ExpressLayerType}});var A7t=mB();Object.defineProperty(Jy,"AttributeNames",{enumerable:!0,get:function(){return A7t.AttributeNames}})});var So,QE=v(()=>{So=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});function w7t(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 k7t(e,t){if(vn()===Wl())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 cqe,uqe,lqe,I7t,dqe,fqe=v(()=>{cqe=Re(aqe(),1);st();sr();QE();uqe="Express";lqe=rt(uqe,()=>new cqe.ExpressInstrumentation({requestHook:e=>w7t(e),spanNameHook:(e,t)=>k7t(e,t)})),I7t=(()=>({name:uqe,setupOnce(){lqe()}})),dqe=I7t});var pqe=w(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});KP.SeverityNumber=void 0;var x7t;(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"})(x7t=KP.SeverityNumber||(KP.SeverityNumber={}))});var EB=w(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.NOOP_LOGGER=jA.NoopLogger=void 0;var bB=class{emit(t){}};jA.NoopLogger=bB;jA.NOOP_LOGGER=new bB});var hqe=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 O7t(e,t,n){return r=>r===e?t:n}Xp.makeGetter=O7t;Xp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var Aee=w(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.NOOP_LOGGER_PROVIDER=HA.NoopLoggerProvider=void 0;var P7t=EB(),_B=class{getLogger(t,n,r){return new P7t.NoopLogger}};HA.NoopLoggerProvider=_B;HA.NOOP_LOGGER_PROVIDER=new _B});var mqe=w(TB=>{"use strict";Object.defineProperty(TB,"__esModule",{value:!0});TB.ProxyLogger=void 0;var N7t=EB(),wee=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):N7t.NOOP_LOGGER}};TB.ProxyLogger=wee});var gqe=w(vB=>{"use strict";Object.defineProperty(vB,"__esModule",{value:!0});vB.ProxyLoggerProvider=void 0;var C7t=Aee(),M7t=mqe(),kee=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new M7t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:C7t.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)}};vB.ProxyLoggerProvider=kee});var Sqe=w(RB=>{"use strict";Object.defineProperty(RB,"__esModule",{value:!0});RB.LogsAPI=void 0;var $l=hqe(),D7t=Aee(),yqe=gqe(),Iee=class e{constructor(){this._proxyLoggerProvider=new yqe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return $l._global[$l.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():($l._global[$l.GLOBAL_LOGS_API_KEY]=(0,$l.makeGetter)($l.API_BACKWARDS_COMPATIBILITY_VERSION,t,D7t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=$l._global[$l.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call($l._global,$l.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete $l._global[$l.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new yqe.ProxyLoggerProvider}};RB.LogsAPI=Iee});var xee=w(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});Qp.logs=Qp.NoopLogger=Qp.NOOP_LOGGER=Qp.SeverityNumber=void 0;var L7t=pqe();Object.defineProperty(Qp,"SeverityNumber",{enumerable:!0,get:function(){return L7t.SeverityNumber}});var bqe=EB();Object.defineProperty(Qp,"NOOP_LOGGER",{enumerable:!0,get:function(){return bqe.NOOP_LOGGER}});Object.defineProperty(Qp,"NoopLogger",{enumerable:!0,get:function(){return bqe.NoopLogger}});var U7t=Sqe();Qp.logs=U7t.LogsAPI.getInstance()});var Eqe=w(qA=>{"use strict";Object.defineProperty(qA,"__esModule",{value:!0});qA.disableInstrumentations=qA.enableInstrumentations=void 0;function F7t(e,t,n,r){for(let i=0,s=e.length;it.disable())}qA.disableInstrumentations=j7t});var vqe=w(AB=>{"use strict";Object.defineProperty(AB,"__esModule",{value:!0});AB.registerInstrumentations=void 0;var _qe=(Me(),ke(Ze)),H7t=xee(),Tqe=Eqe();function q7t(e){let t=e.tracerProvider||_qe.trace.getTracerProvider(),n=e.meterProvider||_qe.metrics.getMeterProvider(),r=e.loggerProvider||H7t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,Tqe.enableInstrumentations)(i,t,n,r),()=>{(0,Tqe.disableInstrumentations)(i)}}AB.registerInstrumentations=q7t});var Nqe=w(wB=>{"use strict";Object.defineProperty(wB,"__esModule",{value:!0});wB.satisfies=void 0;var Cee=(Me(),ke(Ze)),Iqe=/^(?: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-]+)*))?$/,B7t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,z7t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function G7t(e,t,n){if(!V7t(e))return Cee.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=Z7t(e);if(!r)return!1;let i=[],s=xqe(r,t,i,n);return s&&!n?.includePrerelease?K7t(r,i):s}wB.satisfies=G7t;function V7t(e){return typeof e=="string"&&Iqe.test(e)}function xqe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Oee(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=gJt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!Oee(e,s,n,r))return!1;return!0}return Oee(e,t,n,r)}function Oee(e,t,n,r){if(t=Y7t(t,r),t.includes(" "))return xqe(e,t,n,r);{let i=J7t(t);return n.push(i),W7t(e,i)}}function W7t(e,t){if(t.invalid)return!1;if(!t.version||Nee(t.version))return!0;let n=Aqe(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=Aqe(r,i)}return z7t[t.op]?.includes(n)}function K7t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function Y7t(e,t){return e=e.trim(),e=hJt(e,t),e=pJt(e),e=mJt(e,t),e=e.trim(),e}function Dc(e){return!e||e.toLowerCase()==="x"||e==="*"}function Z7t(e){let t=e.match(Iqe);if(!t){Cee.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 J7t(e){if(!e)return{};let t=e.match(B7t);if(!t)return Cee.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function Nee(e){return e==="*"||e==="x"||e==="X"}function Rqe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function X7t(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 Q7t(e,t){if(Nee(e)||Nee(t))return 0;let[n,r]=X7t(Rqe(e),Rqe(t));return n>r?1:n)?=?)",wqe=`(?:${Pqe}|${$7t})`,tJt=`(?:-(${wqe}(?:\\.${wqe})*))`,kqe=`${Oqe}+`,nJt=`(?:\\+(${kqe}(?:\\.${kqe})*))`,Pee=`${Pqe}|x|X|\\*`,YP=`[v=\\s]*(${Pee})(?:\\.(${Pee})(?:\\.(${Pee})(?:${tJt})?${nJt}?)?)?`,rJt=`^${eJt}\\s*${YP}$`,iJt=new RegExp(rJt),sJt=`^\\s*(${YP})\\s+-\\s+(${YP})\\s*$`,oJt=new RegExp(sJt),aJt="(?:~>?)",cJt=`^${aJt}${YP}$`,uJt=new RegExp(cJt),lJt="(?:\\^)",dJt=`^${lJt}${YP}$`,fJt=new RegExp(dJt);function pJt(e){let t=uJt;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 hJt(e,t){let n=fJt,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 mJt(e,t){let n=iJt;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 gJt(e,t){let n=oJt;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 Mee=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 yJt=(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=yJt;var SJt=(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=SJt;var bJt=(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=bJt;var EJt=(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=EJt;function JP(e){e&&e.logger&&(typeof e.logger!="function"?Lc("new logger isn't a function, not replacing"):Lc=e.logger)}da.default=JP;JP.wrap=da.wrap;JP.massWrap=da.massWrap;JP.unwrap=da.unwrap;JP.massUnwrap=da.massUnwrap});var Cqe=w(IB=>{"use strict";Object.defineProperty(IB,"__esModule",{value:!0});IB.InstrumentationAbstract=void 0;var Dee=(Me(),ke(Ze)),_Jt=xee(),kB=Mee(),Lee=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=Dee.diag.createComponentLogger({namespace:t}),this._tracer=Dee.trace.getTracer(t,n),this._meter=Dee.metrics.getMeter(t,n),this._logger=_Jt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=kB.wrap;_unwrap=kB.unwrap;_massWrap=kB.massWrap;_massUnwrap=kB.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)}}};IB.InstrumentationAbstract=Lee});var Mqe=w(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});Xy.ModuleNameTrie=Xy.ModuleNameSeparator=void 0;Xy.ModuleNameSeparator="/";var xB=class{hooks=[];children=new Map},Uee=class{_trie=new xB;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(Xy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new xB,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(Xy.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))}};Xy.ModuleNameTrie=Uee});var Lqe=w(OB=>{"use strict";Object.defineProperty(OB,"__esModule",{value:!0});OB.RequireInTheMiddleSingleton=void 0;var TJt=RE(),Dqe=Y("path"),Fee=Mqe(),vJt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),jee=class e{_moduleNameTrie=new Fee.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new TJt.Hook(null,{internals:!0},(t,n,r)=>{let i=RJt(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 vJt?new e:this._instance=this._instance??new e}};OB.RequireInTheMiddleSingleton=jee;function RJt(e){return Dqe.sep!==Fee.ModuleNameSeparator?e.split(Dqe.sep).join(Fee.ModuleNameSeparator):e}});var qqe=w(XP=>{var Uqe=[],Hee=new WeakMap,Fqe=new WeakMap,jqe=new Map,Hqe=[],AJt={set(e,t,n){let r=Hee.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=Fqe.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=Hee.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function wJt(e,t,n,r,i){jqe.set(e,i),Hee.set(t,n),Fqe.set(t,r);let s=new Proxy(t,AJt);Uqe.forEach(o=>o(e,s,i)),Hqe.push([e,s,i])}XP.register=wJt;XP.importHooks=Uqe;XP.specifiers=jqe;XP.toHook=Hqe});var Vqe=w((RMr,zA)=>{var Bqe=Y("path"),kJt=xO(),{fileURLToPath:IJt}=Y("url"),{MessageChannel:xJt}=Y("worker_threads"),{isBuiltin:qee}=Y("module");qee||(qee=()=>!0);var{importHooks:Bee,specifiers:OJt,toHook:PJt}=qqe();function zqe(e){Bee.push(e),PJt.forEach(([t,n,r])=>e(t,n,r))}function Gqe(e){let t=Bee.indexOf(e);t>-1&&Bee.splice(t,1)}function BA(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var zee;function NJt(){let{port1:e,port2:t}=new xJt,n=0,r;zee=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 QP(e,t,n){if(!(this instanceof QP))return new QP(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;zee&&Array.isArray(e)&&zee(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);qee(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=IJt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=kJt(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)BA(n,s,u,void 0);else if(d===i){if(!l)BA(n,s,i,l);else if(l.endsWith(OJt.get(a)))BA(n,s,i,l);else if(r){let f=i+Bqe.sep+Bqe.relative(l,u);BA(n,s,f,l)}}else d===o&&BA(n,s,o,l);else BA(n,s,i,l)},zqe(this._iitmHook)}QP.prototype.unhook=function(){Gqe(this._iitmHook)};zA.exports=QP;zA.exports.Hook=QP;zA.exports.addHook=zqe;zA.exports.removeHook=Gqe;zA.exports.createAddHookMessageChannel=NJt});var Gee=w(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.isWrapped=Qy.safeExecuteInTheMiddleAsync=Qy.safeExecuteInTheMiddle=void 0;function CJt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}Qy.safeExecuteInTheMiddle=CJt;async function MJt(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}}Qy.safeExecuteInTheMiddleAsync=MJt;function DJt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}Qy.isWrapped=DJt});var Yqe=w(PB=>{"use strict";Object.defineProperty(PB,"__esModule",{value:!0});PB.InstrumentationBase=void 0;var $P=Y("path"),Wqe=Y("util"),LJt=Nqe(),Vee=Mee(),UJt=Cqe(),FJt=Lqe(),jJt=Vqe(),eN=(Me(),ke(Ze)),HJt=RE(),qJt=Y("fs"),BJt=Gee(),Wee=class extends UJt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=FJt.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,BJt.isWrapped)(t[n])&&this._unwrap(t,n),Wqe.types.isProxy(t)){let i=(0,Vee.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,Vee.wrap)(t,n,r)};_unwrap=(t,n)=>Wqe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,Vee.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{eN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){eN.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{eN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){eN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=Y.resolve(n);Y.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,qJt.readFileSync)($P.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{eN.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 Kqe(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=$P.normalize(r);return o.filter(u=>u.name===a&&Kqe(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&&$P.isAbsolute(a)){let u=$P.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=$P.isAbsolute(t.name)?new HJt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new jJt.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}};PB.InstrumentationBase=Wee;function Kqe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,LJt.satisfies)(t,r,{includePrerelease:n}))}});var Zqe=w(NB=>{"use strict";Object.defineProperty(NB,"__esModule",{value:!0});NB.normalize=void 0;var zJt=Y("path");Object.defineProperty(NB,"normalize",{enumerable:!0,get:function(){return zJt.normalize}})});var Jqe=w(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.normalize=GA.InstrumentationBase=void 0;var GJt=Yqe();Object.defineProperty(GA,"InstrumentationBase",{enumerable:!0,get:function(){return GJt.InstrumentationBase}});var VJt=Zqe();Object.defineProperty(GA,"normalize",{enumerable:!0,get:function(){return VJt.normalize}})});var Kee=w(VA=>{"use strict";Object.defineProperty(VA,"__esModule",{value:!0});VA.normalize=VA.InstrumentationBase=void 0;var Xqe=Jqe();Object.defineProperty(VA,"InstrumentationBase",{enumerable:!0,get:function(){return Xqe.InstrumentationBase}});Object.defineProperty(VA,"normalize",{enumerable:!0,get:function(){return Xqe.normalize}})});var Qqe=w(CB=>{"use strict";Object.defineProperty(CB,"__esModule",{value:!0});CB.InstrumentationNodeModuleDefinition=void 0;var Yee=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}};CB.InstrumentationNodeModuleDefinition=Yee});var $qe=w(MB=>{"use strict";Object.defineProperty(MB,"__esModule",{value:!0});MB.InstrumentationNodeModuleFile=void 0;var WJt=Kee(),Zee=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,WJt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};MB.InstrumentationNodeModuleFile=Zee});var eBe=w($E=>{"use strict";Object.defineProperty($E,"__esModule",{value:!0});$E.semconvStabilityFromStr=$E.SemconvStability=void 0;var DB;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(DB=$E.SemconvStability||($E.SemconvStability={}));function KJt(e,t){let n=DB.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=DB.DUPLICATE;break}else i.toLowerCase()===e&&(n=DB.STABLE);return n}$E.semconvStabilityFromStr=KJt});var nBe=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 YJt=vqe();Object.defineProperty(Ks,"registerInstrumentations",{enumerable:!0,get:function(){return YJt.registerInstrumentations}});var ZJt=Kee();Object.defineProperty(Ks,"InstrumentationBase",{enumerable:!0,get:function(){return ZJt.InstrumentationBase}});var JJt=Qqe();Object.defineProperty(Ks,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return JJt.InstrumentationNodeModuleDefinition}});var XJt=$qe();Object.defineProperty(Ks,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return XJt.InstrumentationNodeModuleFile}});var Jee=Gee();Object.defineProperty(Ks,"isWrapped",{enumerable:!0,get:function(){return Jee.isWrapped}});Object.defineProperty(Ks,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return Jee.safeExecuteInTheMiddle}});Object.defineProperty(Ks,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return Jee.safeExecuteInTheMiddleAsync}});var tBe=eBe();Object.defineProperty(Ks,"SemconvStability",{enumerable:!0,get:function(){return tBe.SemconvStability}});Object.defineProperty(Ks,"semconvStabilityFromStr",{enumerable:!0,get:function(){return tBe.semconvStabilityFromStr}})});var rBe=w((DMr,QJt)=>{QJt.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 sBe=w(e_=>{"use strict";Object.defineProperty(e_,"__esModule",{value:!0});e_.range=e_.balanced=void 0;var $Jt=(e,t,n)=>{let r=e instanceof RegExp?iBe(e,n):e,i=t instanceof RegExp?iBe(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=$Jt;var iBe=(e,t)=>{let n=t.match(e);return n?n[0]:null},eXt=(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=eXt});var fBe=w(WA=>{"use strict";Object.defineProperty(WA,"__esModule",{value:!0});WA.EXPANSION_MAX=void 0;WA.expand=pXt;var oBe=sBe(),aBe="\0SLASH"+Math.random()+"\0",cBe="\0OPEN"+Math.random()+"\0",Qee="\0CLOSE"+Math.random()+"\0",uBe="\0COMMA"+Math.random()+"\0",lBe="\0PERIOD"+Math.random()+"\0",tXt=new RegExp(aBe,"g"),nXt=new RegExp(cBe,"g"),rXt=new RegExp(Qee,"g"),iXt=new RegExp(uBe,"g"),sXt=new RegExp(lBe,"g"),oXt=/\\\\/g,aXt=/\\{/g,cXt=/\\}/g,uXt=/\\,/g,lXt=/\\\./g;WA.EXPANSION_MAX=1e5;function Xee(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function dXt(e){return e.replace(oXt,aBe).replace(aXt,cBe).replace(cXt,Qee).replace(uXt,uBe).replace(lXt,lBe)}function fXt(e){return e.replace(tXt,"\\").replace(nXt,"{").replace(rXt,"}").replace(iXt,",").replace(sXt,".")}function dBe(e){if(!e)return[""];let t=[],n=(0,oBe.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=dBe(s);return s.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function pXt(e,t={}){if(!e)return[];let{max:n=WA.EXPANSION_MAX}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),tN(dXt(e),n,!0).map(fXt)}function hXt(e){return"{"+e+"}"}function mXt(e){return/^-?0\d/.test(e)}function gXt(e,t){return e<=t}function yXt(e,t){return e>=t}function tN(e,t,n){let r=[],i=(0,oBe.balanced)("{","}",e);if(!i)return[e];let s=i.pre,o=i.post.length?tN(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+Qee+i.post,tN(e,t,!0)):[e];let d;if(u)d=i.body.split(/\.\./);else if(d=dBe(i.body),d.length===1&&d[0]!==void 0&&(d=tN(d[0],t,!1).map(hXt),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=Xee(d[0]),h=Xee(d[1]),m=Math.max(d[0].length,d[1].length),g=d.length===3&&d[2]!==void 0?Math.max(Math.abs(Xee(d[2])),1):1,y=gXt;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(LB,"__esModule",{value:!0});LB.assertValidPattern=void 0;var SXt=1024*64,bXt=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>SXt)throw new TypeError("pattern is too long")};LB.assertValidPattern=bXt});var mBe=w(UB=>{"use strict";Object.defineProperty(UB,"__esModule",{value:!0});UB.parseClass=void 0;var EXt={"[: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]},nN=e=>e.replace(/[[\]\\-]/g,"\\$&"),_Xt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),hBe=e=>e.join(""),TXt=(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(nN(d)+"-"+nN(m)):m===d&&r.push(nN(m)),d="",s++;continue}if(e.startsWith("-]",s+1)){r.push(nN(m+"-")),s+=2;continue}if(e.startsWith("-",s+1)){d=m,s+=2;continue}r.push(nN(m)),s++}if(l{"use strict";Object.defineProperty(FB,"__esModule",{value:!0});FB.unescape=void 0;var vXt=(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");FB.unescape=vXt});var tte=w(zB=>{"use strict";var mu;Object.defineProperty(zB,"__esModule",{value:!0});zB.AST=void 0;var RXt=mBe(),HB=jB(),AXt=new Set(["!","?","+","*","@"]),$ee=e=>AXt.has(e),gBe=e=>$ee(e.type),wXt=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),kXt=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),IXt=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),yBe=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),xXt="(?!(?:^|/)\\.\\.?(?:$|/))",qB="(?!\\.)",OXt=new Set(["[","."]),PXt=new Set(["..","."]),NXt=new Set("().*{}+?[]^$\\!"),CXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),ete="[^/]",SBe=ete+"*?",bBe=ete+"+?",MXt=0,BB=class{type;#t;#n;#i=!1;#e=[];#r;#s;#c;#u=!1;#o;#a;#l=!1;id=++MXt;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&&PXt.has(this.#e[0]))){let h=OXt,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?xXt:g?qB:""}let d="";return this.isEnd()&&this.#t.#u&&this.#r?.type==="!"&&(d="(?:$|\\/)"),[l+u+d,(0,HB.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,HB.unescape)(this.toString()),!1,!1]}let o=!r||t||n||!qB?"":this.#y(!0);o===s&&(o=""),o&&(s=`(?:${s})(?:${o})*?`);let a="";if(this.type==="!"&&this.#l)a=(this.isStart()&&!n?qB:"")+bBe;else{let c=this.type==="!"?"))"+(this.isStart()&&!n&&!t?qB:"")+SBe+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+s+c}return[a,(0,HB.unescape)(s),this.#n=!!this.#n,this.#i]}#h(){if(gBe(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(GB,"__esModule",{value:!0});GB.escape=void 0;var DXt=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");GB.escape=DXt});var wBe=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 LXt=fBe(),VB=pBe(),TBe=tte(),UXt=nte(),FXt=jB(),jXt=(e,t,n={})=>((0,VB.assertValidPattern)(t),!n.nocomment&&t.charAt(0)==="#"?!1:new t_(t,n).match(e));it.minimatch=jXt;var HXt=/^\*+([^+@!?*[(]*)$/,qXt=e=>t=>!t.startsWith(".")&&t.endsWith(e),BXt=e=>t=>t.endsWith(e),zXt=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),GXt=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),VXt=/^\*+\.\*+$/,WXt=e=>!e.startsWith(".")&&e.includes("."),KXt=e=>e!=="."&&e!==".."&&e.includes("."),YXt=/^\.\*+$/,ZXt=e=>e!=="."&&e!==".."&&e.startsWith("."),JXt=/^\*+$/,XXt=e=>e.length!==0&&!e.startsWith("."),QXt=e=>e.length!==0&&e!=="."&&e!=="..",$Xt=/^\?+([^+@!?*[(]*)?$/,eQt=([e,t=""])=>{let n=vBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},tQt=([e,t=""])=>{let n=RBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},nQt=([e,t=""])=>{let n=RBe([e]);return t?r=>n(r)&&r.endsWith(t):n},rQt=([e,t=""])=>{let n=vBe([e]);return t?r=>n(r)&&r.endsWith(t):n},vBe=([e])=>{let t=e.length;return n=>n.length===t&&!n.startsWith(".")},RBe=([e])=>{let t=e.length;return n=>n.length===t&&n!=="."&&n!==".."},ABe=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",EBe={win32:{sep:"\\"},posix:{sep:"/"}};it.sep=ABe==="win32"?EBe.win32.sep:EBe.posix.sep;it.minimatch.sep=it.sep;it.GLOBSTAR=Symbol("globstar **");it.minimatch.GLOBSTAR=it.GLOBSTAR;var iQt="[^/]",sQt=iQt+"*?",oQt="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",aQt="(?:(?!(?:\\/|^)\\.).)*?",cQt=(e,t={})=>n=>(0,it.minimatch)(n,e,t);it.filter=cQt;it.minimatch.filter=it.filter;var ed=(e,t={})=>Object.assign({},e,t),uQt=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,ed(e,s)),{Minimatch:class extends t.Minimatch{constructor(i,s={}){super(i,ed(e,s))}static defaults(i){return t.defaults(ed(e,i)).Minimatch}},AST:class extends t.AST{constructor(i,s,o={}){super(i,s,ed(e,o))}static fromGlob(i,s={}){return t.AST.fromGlob(i,ed(e,s))}},unescape:(r,i={})=>t.unescape(r,ed(e,i)),escape:(r,i={})=>t.escape(r,ed(e,i)),filter:(r,i={})=>t.filter(r,ed(e,i)),defaults:r=>t.defaults(ed(e,r)),makeRe:(r,i={})=>t.makeRe(r,ed(e,i)),braceExpand:(r,i={})=>t.braceExpand(r,ed(e,i)),match:(r,i,s={})=>t.match(r,i,ed(e,s)),sep:t.sep,GLOBSTAR:it.GLOBSTAR})};it.defaults=uQt;it.minimatch.defaults=it.defaults;var lQt=(e,t={})=>((0,VB.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,LXt.expand)(e,{max:t.braceExpandMax}));it.braceExpand=lQt;it.minimatch.braceExpand=it.braceExpand;var dQt=(e,t={})=>new t_(e,t).makeRe();it.makeRe=dQt;it.minimatch.makeRe=it.makeRe;var fQt=(e,t,n={})=>{let r=new t_(t,n);return e=e.filter(i=>r.match(i)),r.options.nonull&&!e.length&&e.push(t),e};it.match=fQt;it.minimatch.match=it.match;var _Be=/[?*]|[+@!]\(.*?\)|\[|\]/,pQt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),t_=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,n={}){(0,VB.assertValidPattern)(t),n=n||{},this.options=n,this.maxGlobstarRecursion=n.maxGlobstarRecursion??200,this.pattern=t,this.platform=n.platform||ABe,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]==="?"||!_Be.test(s[2]))&&!_Be.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"?pQt(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=t_;var hQt=tte();Object.defineProperty(it,"AST",{enumerable:!0,get:function(){return hQt.AST}});var mQt=nte();Object.defineProperty(it,"escape",{enumerable:!0,get:function(){return mQt.escape}});var gQt=jB();Object.defineProperty(it,"unescape",{enumerable:!0,get:function(){return gQt.unescape}});it.minimatch.AST=TBe.AST;it.minimatch.Minimatch=t_;it.minimatch.escape=UXt.escape;it.minimatch.unescape=FXt.unescape});var CBe=w((WMr,ste)=>{"use strict";var kBe=Y("node:diagnostics_channel"),{context:WB,trace:rte,SpanStatusCode:KB,propagation:ite,diag:yQt}=(Me(),ke(Ze)),{getRPCMetadata:SQt,RPCType:bQt}=pr(),{ATTR_HTTP_ROUTE:YB,ATTR_HTTP_RESPONSE_STATUS_CODE:IBe,ATTR_HTTP_REQUEST_METHOD:EQt,ATTR_URL_PATH:_Qt}=(Nn(),ke(Mr)),{InstrumentationBase:TQt}=nBe(),{version:vQt,name:xBe}=rBe(),RQt=">=4.0.0 <6",OBe=["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"},$y={ROUTE:"route-hook",INSTANCE:"hook",HANDLER:"request-handler"},Om="anonymous",eS=Symbol("fastify otel instance"),tS=Symbol("fastify otel request spans"),rN=Symbol("fastify otel request context"),PBe=Symbol("fastify otel addhook original"),NBe=Symbol("fastify otel setnotfound original"),iN=Symbol("fastify otel ignore path"),sN=Symbol("fastify otel record exceptions"),ZB=class extends TQt{logger=null;_requestHook=null;_lifecycleHook=null;constructor(t){if(super(xBe,vQt,t),this.logger=yQt.createComponentLogger({namespace:xBe}),this[iN]=null,this[sN]=!0,t?.recordExceptions!=null){if(typeof t.recordExceptions!="boolean")throw new TypeError("recordExceptions must be a boolean");this[sN]=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[iN]=i=>typeof n=="function"?n(i):(r==null&&(r=wBe().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)},kBe.subscribe("fastify.initialization",this._handleInitialization)),super.enable()}disable(){return this._handleInitialization&&(kBe.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:RQt,name:"@fastify/otel"},n;function n(r,i,s){r.decorate(eS,t),r.decorate(PBe,r.addHook),r.decorate(NBe,r.setNotFoundHandler),r.decorateRequest("opentelemetry",function(){let p=this[rN],h=this[tS];return{enabled:this.routeOptions.config?.otel!==!1,span:h,tracer:t.tracer,context:p,inject:(m,g)=>ite.inject(p,m,g),extract:(m,g)=>ite.extract(p,m,g)}}),r.decorateRequest(tS,null),r.decorateRequest(rN,null),r.addHook("onRoute",function(p){if(t[iN]?.(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 OBe)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]:$y.ROUTE,[YB]:p.url,[fi.HOOK_CALLBACK_NAME]:m.name?.length>0?m.name:Om});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]:$y.ROUTE,[YB]:p.url,[fi.HOOK_CALLBACK_NAME]:y.name?.length>0?y.name:Om}));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]:$y.HANDLER,[YB]:p.url,[fi.HOOK_CALLBACK_NAME]:p.handler.name.length>0?p.handler.name:Om})}),r.addHook("onRequest",function(p,h,m){if(this[eS].isEnabled()===!1||p.routeOptions.config?.otel===!1)return m();if(this[eS][iN]?.({url:p.url,method:p.method})===!0)return this[eS].logger.debug(`Ignoring request ${p.method} ${p.url} because it matches the ignore path`),m();let g=WB.active();rte.getSpan(g)==null&&(g=ite.extract(g,p.headers));let y=SQt(g);p.routeOptions.url!=null&&y?.type===bQt.HTTP&&(y.route=p.routeOptions.url);let b={[fi.ROOT]:"@fastify/otel",[EQt]:p.method,[_Qt]:p.url};p.routeOptions.url!=null&&(b[YB]=p.routeOptions.url);let S=this[eS].tracer.startSpan("request",{attributes:b},g);try{this[eS]._requestHook?.(S,p)}catch(E){this[eS].logger.error({err:E},"requestHook threw")}p[rN]=rte.setSpan(g,S),p[tS]=S,WB.with(p[rN],()=>{m()})}),r.addHook("onResponse",function(p,h,m){let g=p[tS];g!=null&&(g.setAttributes({[IBe]:h.statusCode}),g.end()),p[tS]=null,m()}),r.addHook=c,r.setNotFoundHandler=u,s();function o(f,p,h,m){let g=f[tS];g!=null&&(p.statusCode>=500&&g.setStatus({code:KB.ERROR}),g.setAttributes({[IBe]:p.statusCode}),g.end()),f[tS]=null,m(null,h)}function a(f,p,h,m){let g=f[tS];g!=null&&(g.setStatus({code:KB.ERROR,message:h.message}),t[sN]!==!1&&g.recordException(h)),m()}function c(f,p){let h=this[PBe];return OBe.includes(f)?h.call(this,f,d(p,f,{[fi.HOOK_NAME]:`${this.pluginName} - ${f}`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:Om})):h.call(this,f,p)}function u(f,p){let h=this[NBe];typeof f=="function"?(p=d(f,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.name?.length>0?f.name:Om}),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]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preValidation.name?.length>0?f.preValidation.name:Om})),f.preHandler!=null&&(f.preHandler=d(f.preHandler,"notFoundHandler - preHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler - preHandler`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preHandler.name?.length>0?f.preHandler.name:Om})),p=d(p,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:Om}),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[eS],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[iN]?.({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[rN]??WB.active(),E=f.name?.length>0?f.name:this.pluginName??Om,_=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 WB.with(rte.setSpan(S,_),function(){try{let T=f.call(this,...g);return typeof T?.then=="function"?T.then(R=>(_.end(),R),R=>(_.setStatus({code:KB.ERROR,message:R.message}),y[sN]!==!1&&_.recordException(R),_.end(),Promise.reject(R))):(_.end(),T)}catch(T){throw _.setStatus({code:KB.ERROR,message:T.message}),y[sN]!==!1&&_.recordException(T),_.end(),T}},this)}}}}};ste.exports=ZB;ste.exports.FastifyOtelInstrumentation=ZB});var Pm,oN,aN,MBe=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})(Pm||(Pm={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request_handler";e.REQUEST_HANDLER=n})(oN||(oN={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request handler";e.REQUEST_HANDLER=n})(aN||(aN={}))});var cN,DBe=v(()=>{cN=Symbol("opentelemetry.instrumentation.fastify.request_active_span")});function ote(e,t,n,r={}){let i=t.startSpan(n,{attributes:r}),s=e[cN]||[];return s.push(i),Object.defineProperty(e,cN,{enumerable:!1,configurable:!0,value:s}),i}function JB(e,t){let n=e[cN]||[];n.length&&(n.forEach(r=>{t&&(r.setStatus({code:as.ERROR,message:t.message}),r.recordException(t)),r.end()}),delete e[cN])}function UBe(e,t,n){let r,i;try{i=e(),LBe(i)&&i.then(s=>t(void 0,s),s=>t(s))}catch(s){r=s}finally{if(!LBe(i)&&(t(r,i),r))throw r;return i}}function LBe(e){return typeof e=="object"&&e&&typeof Object.getOwnPropertyDescriptor(e,"then")?.value=="function"||!1}var FBe=v(()=>{Me();DBe()});function IQt(){let e=ct();e&&e.on("spanStart",t=>{HBe(t)})}function HBe(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 QB,n_,AQt,wQt,jBe,kQt,XB,qBe=v(()=>{Me();QB=Re(pr(),1),n_=Re(Jt(),1);Nn();st();MBe();FBe();AQt="0.1.0",wQt="@sentry/instrumentation-fastify-v3",jBe="anonymous",kQt=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]),XB=class extends n_.InstrumentationBase{constructor(t={}){super(wQt,AQt,t)}init(){return[new n_.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,QB.getRPCMetadata)(Ve.active()),c=o.routeOptions?o.routeOptions.url:r.routerPath;c&&a?.type===QB.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||jBe,c=`${aN.MIDDLEWARE} - ${a}`,u=o[1],l=ote(u,s.tracer,c,{[Pm.FASTIFY_TYPE]:oN.MIDDLEWARE,[Pm.PLUGIN_NAME]:t,[Pm.HOOK_NAME]:n}),d=i&&o[o.length-1];return d&&(o[o.length-1]=function(...f){JB(u),d.apply(this,f)}),Ve.with(jt.setSpan(Ve.active(),l),()=>UBe(()=>r.apply(this,o),f=>{f instanceof Error&&(l.setStatus({code:as.ERROR,message:f.message}),l.recordException(f)),i||JB(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(!kQt.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()),IQt(),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,n_.safeExecuteInTheMiddle)(()=>r.apply(this,s),a=>{!a&&o instanceof Error&&(a=o),JB(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=`${aN.REQUEST_HANDLER} - ${c||this.pluginName||jBe}`,l={[Pm.PLUGIN_NAME]:this.pluginName,[Pm.FASTIFY_TYPE]:oN.REQUEST_HANDLER,[m7]:o.routeOptions?o.routeOptions.url:r.routerPath};c&&(l[Pm.FASTIFY_NAME]=c);let d=ote(i,t.tracer,u,l);HBe(d);let{requestHook:f}=t.getConfig();return f&&(0,n_.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 ate from"node:diagnostics_channel";function xQt(){let e=ct();if(e)return e.getIntegrationByName($B)}function BBe(e,t,n,r){let i=xQt()?.getShouldHandleError()||KBe;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 KBe(e,t,n){let r=n.statusCode;return r>=500||r<=299}function YBe(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 PQt(){let e=ct();e&&e.on("spanStart",t=>{YBe(t)})}function NQt(e){e.addHook("onRequest",async(t,n)=>{if(t.opentelemetry){let{span:s}=t.opentelemetry();s&&YBe(s)}let r=t.routeOptions?.url,i=t.method||"GET";vn().setTransactionName(`${i} ${r}`)})}var zBe,$B,GBe,VBe,OQt,WBe,ZBe=v(()=>{zBe=Re(CBe(),1);st();sr();QE();qBe();$B="Fastify",GBe=rt(`${$B}.v3`,()=>new XB);VBe=rt(`${$B}.v5`,()=>{let e=new zBe.FastifyOtelInstrumentation,t=e.plugin();return ate.subscribe("fastify.initialization",n=>{let r=n.fastify;r?.register(t).after(i=>{i?So&&Z.error("Failed to setup Fastify instrumentation",i):(PQt(),r&&NQt(r))})}),ate.subscribe("tracing:fastify.request.handler:error",n=>{let{error:r,request:i,reply:s}=n;BBe.call(BBe,r,i,s,"diagnostics-channel")}),e}),OQt=(({shouldHandleError:e})=>{let t;return{name:$B,setupOnce(){t=e||KBe,GBe(),VBe()},getShouldHandleError(){return t},setShouldHandleError(n){t=n}}}),WBe=(e={})=>OQt(e)});var cte=w(hf=>{"use strict";Object.defineProperty(hf,"__esModule",{value:!0});hf.SpanNames=hf.TokenKind=hf.AllowedOperationTypes=void 0;var CQt;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})(CQt=hf.AllowedOperationTypes||(hf.AllowedOperationTypes={}));var MQt;(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"})(MQt=hf.TokenKind||(hf.TokenKind={}));var DQt;(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"})(DQt=hf.SpanNames||(hf.SpanNames={}))});var ute=w(uN=>{"use strict";Object.defineProperty(uN,"__esModule",{value:!0});uN.AttributeNames=void 0;var LQt;(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"})(LQt=uN.AttributeNames||(uN.AttributeNames={}))});var ez=w(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.OTEL_GRAPHQL_DATA_SYMBOL=KA.OTEL_PATCHED_SYMBOL=void 0;KA.OTEL_PATCHED_SYMBOL=Symbol.for("opentelemetry.patched");KA.OTEL_GRAPHQL_DATA_SYMBOL=Symbol.for("opentelemetry.graphql_data")});var JBe=w(tz=>{"use strict";Object.defineProperty(tz,"__esModule",{value:!0});tz.OPERATION_NOT_SUPPORTED=void 0;var fDr=ez();tz.OPERATION_NOT_SUPPORTED="Operation$operationName$not supported"});var lze=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 YA=(Me(),ke(Ze)),nS=cte(),r_=ute(),Nm=ez(),XBe=Object.values(nS.AllowedOperationTypes),UQt=e=>typeof e?.then=="function";bo.isPromise=UQt;var FQt=e=>typeof e=="object"&&e!==null;function lte(e,t,n){Array.isArray(n)?n.forEach((r,i)=>{lte(e,`${t}.${i}`,r)}):n instanceof Object?Object.entries(n).forEach(([r,i])=>{lte(e,`${t}.${r}`,i)}):e.setAttribute(`${r_.AttributeNames.VARIABLES}${String(t)}`,n)}function jQt(e,t){Object.entries(t).forEach(([n,r])=>{lte(e,n,r)})}bo.addInputVariableAttributes=jQt;function tze(e,t,n,r,i){let s=oze(t,n,r,i);e.setAttribute(r_.AttributeNames.SOURCE,s)}bo.addSpanSource=tze;function HQt(e,t,n,r,i){let s=nze(n,i);if(s)return{field:s,spanAdded:!1};let a=t().flatResolveSpans?ize(n):rze(n,i);return s={span:qQt(e,t,n,r,i,a)},GQt(n,i,s),{field:s,spanAdded:!0}}function qQt(e,t,n,r,i,s){let o={[r_.AttributeNames.FIELD_NAME]:r.fieldName,[r_.AttributeNames.FIELD_PATH]:i.join("."),[r_.AttributeNames.FIELD_TYPE]:r.returnType.toString(),[r_.AttributeNames.PARENT_NAME]:r.parentType.name},a=e.startSpan(`${nS.SpanNames.RESOLVE} ${o[r_.AttributeNames.FIELD_PATH]}`,{attributes:o},s?YA.trace.setSpan(YA.context.active(),s):void 0),c=n[Nm.OTEL_GRAPHQL_DATA_SYMBOL].source,u=r.fieldNodes.find(l=>l.kind==="Field");return u&&tze(a,c.loc,t().allowValues,u.loc?.start,u.loc?.end),a}function BQt(e,t){t&&e.recordException(t),e.end()}bo.endSpan=BQt;function zQt(e,t){if(!(!e||!Array.isArray(e.definitions)))return t?e.definitions.filter(n=>XBe.indexOf(n?.operation)!==-1).find(n=>t===n?.name?.value):e.definitions.find(n=>XBe.indexOf(n?.operation)!==-1)}bo.getOperation=zQt;function GQt(e,t,n){return e[Nm.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]=n}function nze(e,t){return e[Nm.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]}function rze(e,t){for(let n=t.length-1;n>0;n--){let r=nze(e,t.slice(0,n));if(r)return r.span}return ize(e)}function ize(e){return e[Nm.OTEL_GRAPHQL_DATA_SYMBOL].span}function VQt(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 WQt(e){return sze(` +`,e)}function QBe(e){return sze(" ",e)}function sze(e,t){let n="";for(let r=0;ro){a=a.next,c=a?.line;continue}let u=a.value||a.kind,l="";!t&&KQt.indexOf(a.kind)>=0&&(u="*"),a.kind===nS.TokenKind.STRING&&(u=`"${u}"`),a.kind===nS.TokenKind.EOF&&(u=""),a.line>c?(i+=WQt(a.line-c),c=a.line,l=QBe(a.column-1)):a.line===a.prev?.line&&(l=QBe(a.start-(a.prev?.end||0))),i+=l+u,a&&(a=a.next)}}return i}bo.getSourceFromLocation=oze;function aze(e,t,n){if(!e||e[Nm.OTEL_PATCHED_SYMBOL])return;let r=e.getFields();e[Nm.OTEL_PATCHED_SYMBOL]=!0,Object.keys(r).forEach(i=>{let s=r[i];if(s&&(s.resolve&&(s.resolve=uze(t,n,s.resolve)),s.type)){let o=cze(s.type);for(let a of o)aze(a,t,n)}})}bo.wrapFields=aze;function cze(e){return"ofType"in e?cze(e.ofType):YQt(e)?e.getTypes():ZQt(e)?[e]:[]}function YQt(e){return"getTypes"in e&&typeof e.getTypes=="function"}function ZQt(e){return"getFields"in e&&typeof e.getFields=="function"}var $Be=(e,t,n)=>{n&&(e.recordException(t),e.setStatus({code:YA.SpanStatusCode.ERROR,message:t.message}),e.end())},eze=(e,t)=>{t&&e.end()};function uze(e,t,n,r=!1){if(i[Nm.OTEL_PATCHED_SYMBOL]||typeof n!="function")return n;function i(s,o,a,c){if(!n)return;let u=t();if(u.ignoreTrivialResolveSpans&&r&&(FQt(s)||typeof s=="function")&&typeof s[c.fieldName]!="function")return n.call(this,s,o,a,c);if(!a[Nm.OTEL_GRAPHQL_DATA_SYMBOL])return n.call(this,s,o,a,c);let l=VQt(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=>(eze(f,p),m),m=>{throw $Be(f,m,p),m}):(eze(f,p),h)}catch(h){throw $Be(f,h,p),h}})}return i[Nm.OTEL_PATCHED_SYMBOL]=!0,i}bo.wrapFieldResolver=uze});var dze=w(ZA=>{"use strict";Object.defineProperty(ZA,"__esModule",{value:!0});ZA.PACKAGE_NAME=ZA.PACKAGE_VERSION=void 0;ZA.PACKAGE_VERSION="0.62.0";ZA.PACKAGE_NAME="@opentelemetry/instrumentation-graphql"});var hze=w(iz=>{"use strict";Object.defineProperty(iz,"__esModule",{value:!0});iz.GraphQLInstrumentation=void 0;var Cm=(Me(),ke(Ze)),td=Jt(),lN=cte(),nz=ute(),dte=ez(),JQt=JBe(),Qa=lze(),fze=dze(),pze={mergeItems:!1,depth:-1,allowValues:!1,ignoreResolveSpans:!1},rz=[">=14.0.0 <17"],fte=class extends td.InstrumentationBase{constructor(t={}){super(fze.PACKAGE_NAME,fze.PACKAGE_VERSION,{...pze,...t})}setConfig(t={}){super.setConfig({...pze,...t})}init(){let t=new td.InstrumentationNodeModuleDefinition("graphql",rz);return t.files.push(this._addPatchingExecute()),t.files.push(this._addPatchingParser()),t.files.push(this._addPatchingValidate()),t}_addPatchingExecute(){return new td.InstrumentationNodeModuleFile("graphql/execution/execute.js",rz,t=>((0,td.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 td.InstrumentationNodeModuleFile("graphql/language/parser.js",rz,t=>((0,td.isWrapped)(t.parse)&&this._unwrap(t,"parse"),this._wrap(t,"parse",this._patchParse()),t),t=>{t&&this._unwrap(t,"parse")})}_addPatchingValidate(){return new td.InstrumentationNodeModuleFile("graphql/validation/validate.js",rz,t=>((0,td.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[dte.OTEL_GRAPHQL_DATA_SYMBOL]={source:o.document?o.document||o.document[dte.OTEL_GRAPHQL_DATA_SYMBOL]:void 0,span:c,fields:{}},Cm.context.with(Cm.trace.setSpan(Cm.context.active(),c),()=>(0,td.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,td.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(lN.SpanNames.PARSE);return Cm.context.with(Cm.trace.setSpan(Cm.context.active(),o),()=>(0,td.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(lN.SpanNames.SCHEMA_PARSE)),(0,Qa.endSpan)(o,a)}))}_validate(t,n,r,i,s,o,a){let c=this.tracer.startSpan(lN.SpanNames.VALIDATE,{});return Cm.context.with(Cm.trace.setSpan(Cm.context.active(),c),()=>(0,td.safeExecuteInTheMiddle)(()=>n.call(t,r,i,s,a,o),(u,l)=>{i.loc||c.updateName(lN.SpanNames.SCHEMA_VALIDATE),l&&l.length&&c.recordException({name:nz.AttributeNames.ERROR_VALIDATION_NAME,message:JSON.stringify(l)}),(0,Qa.endSpan)(c,u)}))}_createExecuteSpan(t,n){let r=this.getConfig(),i=this.tracer.startSpan(lN.SpanNames.EXECUTE,{});if(t){let{operation:s,name:o}=t;i.setAttribute(nz.AttributeNames.OPERATION_TYPE,s);let a=o?.value;a?(i.setAttribute(nz.AttributeNames.OPERATION_NAME,a),i.updateName(`${s} ${a}`)):i.updateName(s)}else{let s=" ";n.operationName&&(s=` "${n.operationName}" `),s=JQt.OPERATION_NOT_SUPPORTED.replace("$operationName$",s),i.setAttribute(nz.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[dte.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}}};iz.GraphQLInstrumentation=fte});var mze=w(sz=>{"use strict";Object.defineProperty(sz,"__esModule",{value:!0});sz.GraphQLInstrumentation=void 0;var XQt=hze();Object.defineProperty(sz,"GraphQLInstrumentation",{enumerable:!0,get:function(){return XQt.GraphQLInstrumentation}})});function Eze(e){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...e}}function $Qt(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 gze,yze,Sze,QQt,bze,_ze=v(()=>{Me();gze=Re(mze(),1);st();sr();CA();yze="Graphql",Sze=rt(yze,gze.GraphQLInstrumentation,e=>{let t=Eze(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[PA]||[],d=a?`${o} ${a}`:`${o}`;Array.isArray(l)?(l.push(d),c.setAttribute(PA,l)):typeof l=="string"?c.setAttribute(PA,[l,d]):c.setAttribute(PA,d),vt(c).data["original-description"]||c.setAttribute("original-description",vt(c).description),c.updateName(`${vt(c).data["original-description"]} (${$Qt(l)})`)}}}}),QQt=((e={})=>({name:yze,setupOnce(){Sze(Eze(e))}})),bze=QQt});var Tze=w(oz=>{"use strict";Object.defineProperty(oz,"__esModule",{value:!0});oz.EVENT_LISTENERS_SET=void 0;oz.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.kafkajs.eventListenersSet")});var vze=w(az=>{"use strict";Object.defineProperty(az,"__esModule",{value:!0});az.bufferTextMapGetter=void 0;az.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 Rze=w(jn=>{"use strict";Object.defineProperty(jn,"__esModule",{value:!0});jn.METRIC_MESSAGING_PROCESS_DURATION=jn.METRIC_MESSAGING_CLIENT_SENT_MESSAGES=jn.METRIC_MESSAGING_CLIENT_OPERATION_DURATION=jn.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES=jn.MESSAGING_SYSTEM_VALUE_KAFKA=jn.MESSAGING_OPERATION_TYPE_VALUE_SEND=jn.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE=jn.MESSAGING_OPERATION_TYPE_VALUE_PROCESS=jn.ATTR_MESSAGING_SYSTEM=jn.ATTR_MESSAGING_OPERATION_TYPE=jn.ATTR_MESSAGING_OPERATION_NAME=jn.ATTR_MESSAGING_KAFKA_OFFSET=jn.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE=jn.ATTR_MESSAGING_KAFKA_MESSAGE_KEY=jn.ATTR_MESSAGING_DESTINATION_PARTITION_ID=jn.ATTR_MESSAGING_DESTINATION_NAME=jn.ATTR_MESSAGING_BATCH_MESSAGE_COUNT=void 0;jn.ATTR_MESSAGING_BATCH_MESSAGE_COUNT="messaging.batch.message_count";jn.ATTR_MESSAGING_DESTINATION_NAME="messaging.destination.name";jn.ATTR_MESSAGING_DESTINATION_PARTITION_ID="messaging.destination.partition.id";jn.ATTR_MESSAGING_KAFKA_MESSAGE_KEY="messaging.kafka.message.key";jn.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE="messaging.kafka.message.tombstone";jn.ATTR_MESSAGING_KAFKA_OFFSET="messaging.kafka.offset";jn.ATTR_MESSAGING_OPERATION_NAME="messaging.operation.name";jn.ATTR_MESSAGING_OPERATION_TYPE="messaging.operation.type";jn.ATTR_MESSAGING_SYSTEM="messaging.system";jn.MESSAGING_OPERATION_TYPE_VALUE_PROCESS="process";jn.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE="receive";jn.MESSAGING_OPERATION_TYPE_VALUE_SEND="send";jn.MESSAGING_SYSTEM_VALUE_KAFKA="kafka";jn.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES="messaging.client.consumed.messages";jn.METRIC_MESSAGING_CLIENT_OPERATION_DURATION="messaging.client.operation.duration";jn.METRIC_MESSAGING_CLIENT_SENT_MESSAGES="messaging.client.sent.messages";jn.METRIC_MESSAGING_PROCESS_DURATION="messaging.process.duration"});var Aze=w(JA=>{"use strict";Object.defineProperty(JA,"__esModule",{value:!0});JA.PACKAGE_NAME=JA.PACKAGE_VERSION=void 0;JA.PACKAGE_VERSION="0.23.0";JA.PACKAGE_NAME="@opentelemetry/instrumentation-kafkajs"});var Pze=w(uz=>{"use strict";Object.defineProperty(uz,"__esModule",{value:!0});uz.KafkaJsInstrumentation=void 0;var Lr=(Me(),ke(Ze)),nd=Jt(),XA=(Nn(),ke(Mr)),wze=Tze(),kze=vze(),ot=Rze(),Ize=Aze();function cz(e,t,n){return r=>{e.add(t,{...n,...r?{[XA.ATTR_ERROR_TYPE]:r}:{}})}}function xze(e,t,n){return r=>{e.record((Date.now()-t)/1e3,{...n,...r?{[XA.ATTR_ERROR_TYPE]:r}:{}})}}var Oze=[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10],pte=class extends nd.InstrumentationBase{constructor(t={}){super(Ize.PACKAGE_NAME,Ize.PACKAGE_VERSION,t)}_updateMetricInstruments(){this._clientDuration=this.meter.createHistogram(ot.METRIC_MESSAGING_CLIENT_OPERATION_DURATION,{advice:{explicitBucketBoundaries:Oze}}),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:Oze}})}init(){let t=r=>{(0,nd.isWrapped)(r?.Kafka?.prototype.producer)&&this._unwrap(r.Kafka.prototype,"producer"),(0,nd.isWrapped)(r?.Kafka?.prototype.consumer)&&this._unwrap(r.Kafka.prototype,"consumer")};return new nd.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,nd.isWrapped)(s.run)&&t._unwrap(s,"run"),t._wrap(s,"run",t._getConsumerRunPatch()),t._setKafkaEventListeners(s),s}}_setKafkaEventListeners(t){t[wze.EVENT_LISTENERS_SET]||(t.events?.REQUEST&&t.on(t.events.REQUEST,this._recordClientDurationMetric.bind(this)),t[wze.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}`,[XA.ATTR_SERVER_ADDRESS]:n,[XA.ATTR_SERVER_PORT]:Number.parseInt(r,10)})}_getProducerPatch(){let t=this;return n=>function(...i){let s=n.apply(this,i);return(0,nd.isWrapped)(s.sendBatch)&&t._unwrap(s,"sendBatch"),t._wrap(s,"sendBatch",t._getSendBatchPatch()),(0,nd.isWrapped)(s.send)&&t._unwrap(s,"send"),t._wrap(s,"send",t._getSendPatch()),(0,nd.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,nd.isWrapped)(s.eachMessage)&&t._unwrap(s,"eachMessage"),t._wrap(s,"eachMessage",t._getConsumerEachMessagePatch())),s?.eachBatch&&((0,nd.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,kze.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=[xze(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)}),cz(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=[cz(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,kze.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(xze(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(cz(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=>cz(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=XA.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(XA.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,nd.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,nd.safeExecuteInTheMiddle)(()=>i(r,{topic:t,message:n}),s=>{s&&this._diag.error("producerHook error",s)},!0),r}};uz.KafkaJsInstrumentation=pte});var Nze=w(lz=>{"use strict";Object.defineProperty(lz,"__esModule",{value:!0});lz.KafkaJsInstrumentation=void 0;var e$t=Pze();Object.defineProperty(lz,"KafkaJsInstrumentation",{enumerable:!0,get:function(){return e$t.KafkaJsInstrumentation}})});var Cze,Mze,Dze,t$t,Lze,Uze=v(()=>{Cze=Re(Nze(),1);sr();Mze="Kafka",Dze=rt(Mze,()=>new Cze.KafkaJsInstrumentation({consumerHook(e){Dr(e,"auto.kafkajs.otel.consumer")},producerHook(e){Dr(e,"auto.kafkajs.otel.producer")}})),t$t=(()=>({name:Mze,setupOnce(){Dze()}})),Lze=t$t});var Fze=w(QA=>{"use strict";Object.defineProperty(QA,"__esModule",{value:!0});QA.PACKAGE_NAME=QA.PACKAGE_VERSION=void 0;QA.PACKAGE_VERSION="0.58.0";QA.PACKAGE_NAME="@opentelemetry/instrumentation-lru-memoizer"});var Bze=w(dz=>{"use strict";Object.defineProperty(dz,"__esModule",{value:!0});dz.LruMemoizerInstrumentation=void 0;var jze=(Me(),ke(Ze)),Hze=Jt(),qze=Fze(),hte=class extends Hze.InstrumentationBase{constructor(t={}){super(qze.PACKAGE_NAME,qze.PACKAGE_VERSION,t)}init(){return[new Hze.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"?jze.context.bind(jze.context.active(),s):s;return i.push(o),r.apply(this,i)}};return n.sync=t.sync,n},void 0)]}};dz.LruMemoizerInstrumentation=hte});var zze=w(fz=>{"use strict";Object.defineProperty(fz,"__esModule",{value:!0});fz.LruMemoizerInstrumentation=void 0;var n$t=Bze();Object.defineProperty(fz,"LruMemoizerInstrumentation",{enumerable:!0,get:function(){return n$t.LruMemoizerInstrumentation}})});var Gze,Vze,Wze,r$t,Kze,Yze=v(()=>{Gze=Re(zze(),1);sr();Vze="LruMemoizer",Wze=rt(Vze,()=>new Gze.LruMemoizerInstrumentation),r$t=(()=>({name:Vze,setupOnce(){Wze()}})),Kze=r$t});var Zze=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 Jze=w(dN=>{"use strict";Object.defineProperty(dN,"__esModule",{value:!0});dN.MongodbCommandType=void 0;var i$t;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.AGGREGATE="aggregate",e.UNKNOWN="unknown"})(i$t=dN.MongodbCommandType||(dN.MongodbCommandType={}))});var Xze=w($A=>{"use strict";Object.defineProperty($A,"__esModule",{value:!0});$A.PACKAGE_NAME=$A.PACKAGE_VERSION=void 0;$A.PACKAGE_VERSION="0.67.0";$A.PACKAGE_NAME="@opentelemetry/instrumentation-mongodb"});var eGe=w(pz=>{"use strict";Object.defineProperty(pz,"__esModule",{value:!0});pz.MongoDBInstrumentation=void 0;var Ki=(Me(),ke(Ze)),Hn=Jt(),Mm=(Nn(),ke(Mr)),hl=Zze(),i_=Jze(),Qze=Xze(),$ze={requireParentSpan:!0},mte=class e extends Hn.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(Qze.PACKAGE_NAME,Qze.PACKAGE_VERSION,{...$ze,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,Hn.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,Hn.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...$ze,...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 Hn.InstrumentationNodeModuleDefinition("mongodb",[">=3.3.0 <4"],void 0,void 0,[new Hn.InstrumentationNodeModuleFile("mongodb/lib/core/wireprotocol/index.js",[">=3.3.0 <4"],t,n)]),new Hn.InstrumentationNodeModuleDefinition("mongodb",[">=4.0.0 <8"],void 0,void 0,[new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=4.0.0 <6.4"],s,a),new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=6.4.0 <8"],o,a),new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection_pool.js",[">=4.0.0 <6.4"],c,u),new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connect.js",[">=4.0.0 <8"],r,i),new Hn.InstrumentationNodeModuleFile("mongodb/lib/sessions.js",[">=4.0.0 <8"],l,d)])]}_getV3ConnectionPatches(){return{v3PatchConnection:t=>((0,Hn.isWrapped)(t.insert)&&this._unwrap(t,"insert"),this._wrap(t,"insert",this._getV3PatchOperation("insert")),(0,Hn.isWrapped)(t.remove)&&this._unwrap(t,"remove"),this._wrap(t,"remove",this._getV3PatchOperation("remove")),(0,Hn.isWrapped)(t.update)&&this._unwrap(t,"update"),this._wrap(t,"update",this._getV3PatchOperation("update")),(0,Hn.isWrapped)(t.command)&&this._unwrap(t,"command"),this._wrap(t,"command",this._getV3PatchCommand()),(0,Hn.isWrapped)(t.query)&&this._unwrap(t,"query"),this._wrap(t,"query",this._getV3PatchFind()),(0,Hn.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,Hn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),this._wrap(t.ServerSessionPool.prototype,"acquire",this._getV4AcquireCommand()),(0,Hn.isWrapped)(t.release)&&this._unwrap(t,"release"),this._wrap(t.ServerSessionPool.prototype,"release",this._getV4ReleaseCommand()),t),v4UnpatchSessions:t=>{t!==void 0&&((0,Hn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),(0,Hn.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,Hn.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,Hn.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,Hn.isWrapped)(t.Connection.prototype.command)&&this._unwrap(t.Connection.prototype,"command"),this._wrap(t.Connection.prototype,"command",this._getV4PatchCommandCallback()),t),v4PatchConnectionPromise:t=>((0,Hn.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===i_.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?i_.MongodbCommandType.CREATE_INDEXES:t.findandmodify!==void 0?i_.MongodbCommandType.FIND_AND_MODIFY:t.ismaster!==void 0?i_.MongodbCommandType.IS_MASTER:t.count!==void 0?i_.MongodbCommandType.COUNT:t.aggregate!==void 0?i_.MongodbCommandType.AGGREGATE:i_.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&Hn.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&Hn.SemconvStability.STABLE&&(a[Mm.ATTR_DB_SYSTEM_NAME]=hl.DB_SYSTEM_NAME_VALUE_MONGODB,a[Mm.ATTR_DB_NAMESPACE]=t,a[Mm.ATTR_DB_OPERATION_NAME]=o,a[Mm.ATTR_DB_COLLECTION_NAME]=n),r&&i){this._netSemconvStability&Hn.SemconvStability.OLD&&(a[hl.ATTR_NET_PEER_NAME]=r),this._netSemconvStability&Hn.SemconvStability.STABLE&&(a[Mm.ATTR_SERVER_ADDRESS]=r);let c=parseInt(i,10);isNaN(c)||(this._netSemconvStability&Hn.SemconvStability.OLD&&(a[hl.ATTR_NET_PEER_PORT]=c),this._netSemconvStability&Hn.SemconvStability.STABLE&&(a[Mm.ATTR_SERVER_PORT]=c))}if(s){let{dbStatementSerializer:c}=this.getConfig(),u=typeof c=="function"?c:this._defaultDbStatementSerializer.bind(this);(0,Hn.safeExecuteInTheMiddle)(()=>{let l=u(s);this._dbSemconvStability&Hn.SemconvStability.OLD&&(a[hl.ATTR_DB_STATEMENT]=l),this._dbSemconvStability&Hn.SemconvStability.STABLE&&(a[Mm.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&Hn.SemconvStability.STABLE?n=[t[Mm.ATTR_DB_OPERATION_NAME],t[Mm.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,Hn.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}};pz.MongoDBInstrumentation=mte});var tGe=w(fN=>{"use strict";Object.defineProperty(fN,"__esModule",{value:!0});fN.MongodbCommandType=void 0;var s$t;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.UNKNOWN="unknown"})(s$t=fN.MongodbCommandType||(fN.MongodbCommandType={}))});var nGe=w(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.MongodbCommandType=ew.MongoDBInstrumentation=void 0;var o$t=eGe();Object.defineProperty(ew,"MongoDBInstrumentation",{enumerable:!0,get:function(){return o$t.MongoDBInstrumentation}});var a$t=tGe();Object.defineProperty(ew,"MongodbCommandType",{enumerable:!0,get:function(){return a$t.MongodbCommandType}})});function c$t(e){let t=gte(e);return JSON.stringify(t)}function gte(e){if(Array.isArray(e))return e.map(t=>gte(t));if(u$t(e)){let t={};return Object.entries(e).map(([n,r])=>[n,gte(r)]).reduce((n,r)=>(d$t(r)&&(n[r[0]]=r[1]),n),t)}return"?"}function u$t(e){return typeof e=="object"&&e!==null&&!l$t(e)}function l$t(e){let t=!1;return typeof Buffer<"u"&&(t=Buffer.isBuffer(e)),t}function d$t(e){return Array.isArray(e)}var rGe,iGe,sGe,f$t,oGe,aGe=v(()=>{rGe=Re(nGe(),1);sr();iGe="Mongo",sGe=rt(iGe,()=>new rGe.MongoDBInstrumentation({dbStatementSerializer:c$t,responseHook(e){Dr(e,"auto.db.otel.mongo")}}));f$t=(()=>({name:iGe,setupOnce(){sGe()}})),oGe=f$t});var yte=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 lGe=w(rS=>{"use strict";Object.defineProperty(rS,"__esModule",{value:!0});rS.handleCallbackResponse=rS.handlePromiseResponse=rS.getAttributesFromCollection=void 0;var cGe=(Me(),ke(Ze)),hN=Jt(),pN=yte(),hz=(Nn(),ke(Mr));function p$t(e,t,n){let r={};return t&hN.SemconvStability.OLD&&(r[pN.ATTR_DB_MONGODB_COLLECTION]=e.name,r[pN.ATTR_DB_NAME]=e.conn.name,r[pN.ATTR_DB_USER]=e.conn.user),t&hN.SemconvStability.STABLE&&(r[hz.ATTR_DB_COLLECTION_NAME]=e.name,r[hz.ATTR_DB_NAMESPACE]=e.conn.name),n&hN.SemconvStability.OLD&&(r[pN.ATTR_NET_PEER_NAME]=e.conn.host,r[pN.ATTR_NET_PEER_PORT]=e.conn.port),n&hN.SemconvStability.STABLE&&(r[hz.ATTR_SERVER_ADDRESS]=e.conn.host,r[hz.ATTR_SERVER_PORT]=e.conn.port),r}rS.getAttributesFromCollection=p$t;function uGe(e,t={}){e.recordException(t),e.setStatus({code:cGe.SpanStatusCode.ERROR,message:`${t.message} ${t.code?` +Mongoose Error Code: ${t.code}`:""}`})}function Ste(e,t,n,r=void 0){n&&(0,hN.safeExecuteInTheMiddle)(()=>n(e,{moduleVersion:r,response:t}),i=>{i&&cGe.diag.error("mongoose instrumentation: responseHook error",i)},!0)}function h$t(e,t,n,r=void 0){return e instanceof Promise?e.then(i=>(Ste(t,i,n,r),i)).catch(i=>{throw uGe(t,i),i}).finally(()=>t.end()):(Ste(t,e,n,r),t.end(),e)}rS.handlePromiseResponse=h$t;function m$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?uGe(r,c):Ste(r,u,s,o),r.end(),e(c,u)),t.apply(n,i)}rS.handleCallbackResponse=m$t});var dGe=w(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});tw.PACKAGE_NAME=tw.PACKAGE_VERSION=void 0;tw.PACKAGE_VERSION="0.60.0";tw.PACKAGE_NAME="@opentelemetry/instrumentation-mongoose"});var gGe=w(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.MongooseInstrumentation=gu._ALREADY_INSTRUMENTED=gu._STORED_PARENT_SPAN=void 0;var Eo=(Me(),ke(Ze)),g$t=pr(),bte=lGe(),fa=Jt(),fGe=dGe(),iS=yte(),s_=(Nn(),ke(Mr)),mz=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],y$t=["remove","count","findOneAndRemove",...mz],S$t=["count","findOneAndRemove",...mz],b$t=[...mz];function pGe(e){return e?e.startsWith("6.")||e.startsWith("5.")?y$t:e.startsWith("7.")?S$t:b$t:mz}function hGe(e){return e&&(e.startsWith("5.")||e.startsWith("6."))||!1}function mGe(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 Ete=class extends fa.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(fGe.PACKAGE_NAME,fGe.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,hGe(n)&&this._wrap(r.Model.prototype,"remove",this.patchOnModelMethods("remove",n)),mGe(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)),pGe(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=pGe(n);this._unwrap(r.Model.prototype,"save"),r.Model.prototype.$save=r.Model.prototype.save,hGe(n)&&this._unwrap(r.Model.prototype,"remove"),mGe(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[iS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[s_.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[iS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[s_.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[iS.ATTR_DB_STATEMENT]=f),r._dbSemconvStability&fa.SemconvStability.STABLE&&(u[s_.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[iS.ATTR_DB_STATEMENT]=g),r._dbSemconvStability&fa.SemconvStability.STABLE&&(f[s_.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[iS.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&fa.SemconvStability.STABLE&&(l[s_.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,bte.getAttributesFromCollection)(t,this._dbSemconvStability,this._netSemconvStability)};this._dbSemconvStability&fa.SemconvStability.OLD&&(o[iS.ATTR_DB_OPERATION]=r,o[iS.ATTR_DB_SYSTEM]="mongoose"),this._dbSemconvStability&fa.SemconvStability.STABLE&&(o[s_.ATTR_DB_OPERATION_NAME]=r,o[s_.ATTR_DB_SYSTEM_NAME]=iS.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,bte.handleCallbackResponse)(s,n,r,t,i,a.getConfig().responseHook,o));{let c=a._callOriginalFunction(()=>n.apply(r,i));return(0,bte.handlePromiseResponse)(c,t,a.getConfig().responseHook,o)}}_callOriginalFunction(t){return this.getConfig().suppressInternalInstrumentation?Eo.context.with((0,g$t.suppressTracing)(Eo.context.active()),t):t()}};gu.MongooseInstrumentation=Ete});var yGe=w(gz=>{"use strict";Object.defineProperty(gz,"__esModule",{value:!0});gz.MongooseInstrumentation=void 0;var E$t=gGe();Object.defineProperty(gz,"MongooseInstrumentation",{enumerable:!0,get:function(){return E$t.MongooseInstrumentation}})});var SGe,bGe,EGe,_$t,_Ge,TGe=v(()=>{SGe=Re(yGe(),1);sr();bGe="Mongoose",EGe=rt(bGe,()=>new SGe.MongooseInstrumentation({responseHook(e){Dr(e,"auto.db.otel.mongoose")}})),_$t=(()=>({name:bGe,setupOnce(){EGe()}})),_Ge=_$t});var vGe=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 RGe=w(mN=>{"use strict";Object.defineProperty(mN,"__esModule",{value:!0});mN.AttributeNames=void 0;var T$t;(function(e){e.MYSQL_VALUES="db.mysql.values"})(T$t=mN.AttributeNames||(mN.AttributeNames={}))});var AGe=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 v$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=v$t;function R$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}$a.getJDBCString=R$t;function A$t(e){return typeof e=="string"?e:e.sql}$a.getDbQueryText=A$t;function w$t(e,t){return _te(typeof e=="string"?t:t||e.values)}$a.getDbValues=w$t;function k$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=k$t;function _te(e){return e?`[${e.toString()}]`:""}$a.arrayStringifyHelper=_te;function I$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=I$t});var wGe=w(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.PACKAGE_NAME=nw.PACKAGE_VERSION=void 0;nw.PACKAGE_VERSION="0.60.0";nw.PACKAGE_NAME="@opentelemetry/instrumentation-mysql"});var IGe=w(yz=>{"use strict";Object.defineProperty(yz,"__esModule",{value:!0});yz.MySQLInstrumentation=void 0;var yu=(Me(),ke(Ze)),rd=Jt(),rw=(Nn(),ke(Mr)),Dm=vGe(),x$t=RGe(),o_=AGe(),kGe=wGe(),Tte=class extends rd.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(kGe.PACKAGE_NAME,kGe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,rd.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,rd.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._connectionsUsageOld=this.meter.createUpDownCounter(Dm.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 rd.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],t=>((0,rd.isWrapped)(t.createConnection)&&this._unwrap(t,"createConnection"),this._wrap(t,"createConnection",this._patchCreateConnection()),(0,rd.isWrapped)(t.createPool)&&this._unwrap(t,"createPool"),this._wrap(t,"createPool",this._patchCreatePool()),(0,rd.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,o_.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,rd.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,o_.getConfig)(t.config),f=parseInt(u,10),p=(0,o_.getDbQueryText)(i);r._dbSemconvStability&rd.SemconvStability.OLD&&(a[Dm.ATTR_DB_SYSTEM]=Dm.DB_SYSTEM_VALUE_MYSQL,a[Dm.ATTR_DB_CONNECTION_STRING]=(0,o_.getJDBCString)(c,u,l),a[Dm.ATTR_DB_NAME]=l,a[Dm.ATTR_DB_USER]=d,a[Dm.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&rd.SemconvStability.STABLE&&(a[rw.ATTR_DB_SYSTEM_NAME]=rw.DB_SYSTEM_NAME_VALUE_MYSQL,a[rw.ATTR_DB_NAMESPACE]=l,a[rw.ATTR_DB_QUERY_TEXT]=p),r._netSemconvStability&rd.SemconvStability.OLD&&(a[Dm.ATTR_NET_PEER_NAME]=c,isNaN(f)||(a[Dm.ATTR_NET_PEER_PORT]=f)),r._netSemconvStability&rd.SemconvStability.STABLE&&(a[rw.ATTR_SERVER_ADDRESS]=c,isNaN(f)||(a[rw.ATTR_SERVER_PORT]=f));let h=r.tracer.startSpan((0,o_.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(x$t.AttributeNames.MYSQL_VALUES,(0,o_.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,o_.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")})}};yz.MySQLInstrumentation=Tte});var xGe=w(Sz=>{"use strict";Object.defineProperty(Sz,"__esModule",{value:!0});Sz.MySQLInstrumentation=void 0;var O$t=IGe();Object.defineProperty(Sz,"MySQLInstrumentation",{enumerable:!0,get:function(){return O$t.MySQLInstrumentation}})});var OGe,PGe,NGe,P$t,CGe,MGe=v(()=>{OGe=Re(xGe(),1);sr();PGe="Mysql",NGe=rt(PGe,()=>new OGe.MySQLInstrumentation({})),P$t=(()=>({name:PGe,setupOnce(){NGe()}})),CGe=P$t});var vte=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 Ate=w(bz=>{"use strict";Object.defineProperty(bz,"__esModule",{value:!0});bz.addSqlCommenterComment=void 0;var Rte=(Me(),ke(Ze)),N$t=pr();function C$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 D$t(e,t){if(typeof t!="string"||t.length===0||C$t(t))return t;let n=new N$t.W3CTraceContextPropagator,r={};n.inject(Rte.trace.setSpan(Rte.ROOT_CONTEXT,e),r,Rte.defaultTextMapSetter);let i=Object.keys(r).sort();if(i.length===0)return t;let s=i.map(o=>{let a=M$t(r[o]);return`${o}='${a}'`}).join(",");return`${t} /*${s}*/`}bz.addSqlCommenterComment=D$t});var DGe=w(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.getConnectionPrototypeToInstrument=id.once=id.getSpanName=id.getQueryText=id.getConnectionAttributes=void 0;var gN=vte(),Ez=Jt(),wte=(Nn(),ke(Mr));function L$t(e,t,n){let{host:r,port:i,database:s,user:o}=U$t(e),a={};t&Ez.SemconvStability.OLD&&(a[gN.ATTR_DB_CONNECTION_STRING]=F$t(r,i,s),a[gN.ATTR_DB_NAME]=s,a[gN.ATTR_DB_USER]=o),t&Ez.SemconvStability.STABLE&&(a[wte.ATTR_DB_NAMESPACE]=s);let c=parseInt(i,10);return n&Ez.SemconvStability.OLD&&(a[gN.ATTR_NET_PEER_NAME]=r,isNaN(c)||(a[gN.ATTR_NET_PEER_PORT]=c)),n&Ez.SemconvStability.STABLE&&(a[wte.ATTR_SERVER_ADDRESS]=r,isNaN(c)||(a[wte.ATTR_SERVER_PORT]=c)),a}id.getConnectionAttributes=L$t;function U$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 F$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}function j$t(e,t,n,r=!1,i=H$t){let[s,o]=typeof e=="string"?[e,n]:[e.sql,q$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"}}id.getQueryText=j$t;function H$t(e){return e.replace(/\b\d+\b/g,"?").replace(/(["'])(?:(?=(\\?))\2.)*?\1/g,"?")}function q$t(e){return"values"in e}function B$t(e){let t=typeof e=="object"?e.sql:e,n=t?.indexOf(" ");return typeof n=="number"&&n!==-1?t?.substring(0,n):t}id.getSpanName=B$t;var z$t=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};id.once=z$t;function G$t(e){let t=e.prototype,n=Object.getPrototypeOf(t);return typeof n?.query=="function"&&typeof n?.execute=="function"?n:t}id.getConnectionPrototypeToInstrument=G$t});var LGe=w(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.PACKAGE_NAME=iw.PACKAGE_VERSION=void 0;iw.PACKAGE_VERSION="0.60.0";iw.PACKAGE_NAME="@opentelemetry/instrumentation-mysql2"});var HGe=w(_z=>{"use strict";Object.defineProperty(_z,"__esModule",{value:!0});_z.MySQL2Instrumentation=void 0;var UGe=(Me(),ke(Ze)),mf=Jt(),kte=vte(),FGe=Ate(),sw=DGe(),jGe=LGe(),Ite=(Nn(),ke(Mr)),xte=[">=1.4.2 <4"],Ote=class extends mf.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(jGe.PACKAGE_NAME,jGe.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",xte,s=>(n(s),s),()=>{},[new mf.InstrumentationNodeModuleFile("mysql2/promise.js",xte,s=>(n(s),s),()=>{}),new mf.InstrumentationNodeModuleFile("mysql2/lib/connection.js",xte,s=>{let o=(0,sw.getConnectionPrototypeToInstrument)(s);return r(o),s},s=>{if(s===void 0)return;let o=(0,sw.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,sw.getConnectionAttributes)(this.config,i._dbSemconvStability,i._netSemconvStability),p=(0,sw.getQueryText)(s,t,c,u,l);i._dbSemconvStability&mf.SemconvStability.OLD&&(f[kte.ATTR_DB_SYSTEM]=kte.DB_SYSTEM_VALUE_MYSQL,f[kte.ATTR_DB_STATEMENT]=p),i._dbSemconvStability&mf.SemconvStability.STABLE&&(f[Ite.ATTR_DB_SYSTEM_NAME]=Ite.DB_SYSTEM_NAME_VALUE_MYSQL,f[Ite.ATTR_DB_QUERY_TEXT]=p);let h=i.tracer.startSpan((0,sw.getSpanName)(s),{kind:UGe.SpanKind.CLIENT,attributes:f});!n&&i.getConfig().addSqlCommenterCommentToQueries&&(arguments[0]=s=typeof s=="string"?(0,FGe.addSqlCommenterComment)(h,s):Object.assign(s,{sql:(0,FGe.addSqlCommenterComment)(h,s.sql)}));let m=(0,sw.once)((g,y)=>{g?h.setStatus({code:UGe.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)}}};_z.MySQL2Instrumentation=Ote});var qGe=w(Tz=>{"use strict";Object.defineProperty(Tz,"__esModule",{value:!0});Tz.MySQL2Instrumentation=void 0;var V$t=HGe();Object.defineProperty(Tz,"MySQL2Instrumentation",{enumerable:!0,get:function(){return V$t.MySQL2Instrumentation}})});var BGe,zGe,GGe,W$t,VGe,WGe=v(()=>{BGe=Re(qGe(),1);sr();zGe="Mysql2",GGe=rt(zGe,()=>new BGe.MySQL2Instrumentation({responseHook(e){Dr(e,"auto.db.otel.mysql2")}})),W$t=(()=>({name:zGe,setupOnce(){GGe()}})),VGe=W$t});var KGe=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 YGe=w(vz=>{"use strict";Object.defineProperty(vz,"__esModule",{value:!0});vz.endSpan=void 0;var K$t=(Me(),ke(Ze)),Y$t=(e,t)=>{t&&(e.recordException(t),e.setStatus({code:K$t.SpanStatusCode.ERROR,message:t.message})),e.end()};vz.endSpan=Y$t});var Az=w(Rz=>{"use strict";Object.defineProperty(Rz,"__esModule",{value:!0});Rz.defaultDbStatementSerializer=void 0;var Z$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}],J$t=(e,t)=>{if(Array.isArray(t)&&t.length){let n=Z$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};Rz.defaultDbStatementSerializer=J$t});var ZGe=w(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.PACKAGE_NAME=ow.PACKAGE_VERSION=void 0;ow.PACKAGE_VERSION="0.62.0";ow.PACKAGE_NAME="@opentelemetry/instrumentation-ioredis"});var $Ge=w(wz=>{"use strict";Object.defineProperty(wz,"__esModule",{value:!0});wz.IORedisInstrumentation=void 0;var sS=(Me(),ke(Ze)),Su=Jt(),oS=(Nn(),ke(Mr)),bu=KGe(),JGe=Jt(),yN=YGe(),X$t=Az(),XGe=ZGe(),QGe={requireParentSpan:!0},Pte=class extends Su.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(XGe.PACKAGE_NAME,XGe.PACKAGE_VERSION,{...QGe,...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({...QGe,...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||X$t.defaultDbStatementSerializer,a=sS.trace.getSpan(sS.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[oS.ATTR_DB_SYSTEM_NAME]=bu.DB_SYSTEM_NAME_VALUE_REDIS,c[oS.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[oS.ATTR_SERVER_ADDRESS]=u,c[oS.ATTR_SERVER_PORT]=l);let f=r.tracer.startSpan(i.name,{kind:sS.SpanKind.CLIENT,attributes:c}),{requestHook:p}=s;p&&(0,JGe.safeExecuteInTheMiddle)(()=>p(f,{moduleVersion:n,cmdName:i.name,cmdArgs:i.args}),h=>{h&&sS.diag.error("ioredis instrumentation: request hook failed",h)},!0);try{let h=t.apply(this,arguments),m=i.resolve;i.resolve=function(y){(0,JGe.safeExecuteInTheMiddle)(()=>s.responseHook?.(f,i.name,i.args,y),b=>{b&&sS.diag.error("ioredis instrumentation: response hook failed",b)},!0),(0,yN.endSpan)(f,null),m(y)};let g=i.reject;return i.reject=function(y){(0,yN.endSpan)(f,y),g(y)},h}catch(h){throw(0,yN.endSpan)(f,h),h}}}_traceConnection(t){let n=this;return function(){let r=sS.trace.getSpan(sS.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[oS.ATTR_DB_SYSTEM_NAME]=bu.DB_SYSTEM_NAME_VALUE_REDIS,i[oS.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[oS.ATTR_SERVER_ADDRESS]=s,i[oS.ATTR_SERVER_PORT]=o);let a=n.tracer.startSpan("connect",{kind:sS.SpanKind.CLIENT,attributes:i});try{let c=t.apply(this,arguments);return(0,yN.endSpan)(a,null),c}catch(c){throw(0,yN.endSpan)(a,c),c}}}};wz.IORedisInstrumentation=Pte});var e2e=w(kz=>{"use strict";Object.defineProperty(kz,"__esModule",{value:!0});kz.IORedisInstrumentation=void 0;var Q$t=$Ge();Object.defineProperty(kz,"IORedisInstrumentation",{enumerable:!0,get:function(){return Q$t.IORedisInstrumentation}})});var Iz=w(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});aw.PACKAGE_NAME=aw.PACKAGE_VERSION=void 0;aw.PACKAGE_VERSION="0.62.0";aw.PACKAGE_NAME="@opentelemetry/instrumentation-redis"});var t2e=w(aS=>{"use strict";Object.defineProperty(aS,"__esModule",{value:!0});aS.getTracedCreateStreamTrace=aS.getTracedCreateClient=aS.endSpan=void 0;var SN=(Me(),ke(Ze)),$$t=(e,t)=>{t&&e.setStatus({code:SN.SpanStatusCode.ERROR,message:t.message}),e.end()};aS.endSpan=$$t;var een=e=>function(){let n=e.apply(this,arguments);return SN.context.bind(SN.context.active(),n)};aS.getTracedCreateClient=een;var ten=e=>function(){return Object.prototype.hasOwnProperty.call(this,"stream")||Object.defineProperty(this,"stream",{get(){return this._patched_redis_stream},set(n){SN.context.bind(SN.context.active(),n),this._patched_redis_stream=n}}),e.apply(this,arguments)};aS.getTracedCreateStreamTrace=ten});var xz=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 r2e=w(Pz=>{"use strict";Object.defineProperty(Pz,"__esModule",{value:!0});Pz.RedisInstrumentationV2_V3=void 0;var ml=Jt(),Oz=t2e(),n2e=Iz(),bN=(Me(),ke(Ze)),EN=(Nn(),ke(Mr)),a_=xz(),nen=Az(),Nte=class e extends ml.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(n2e.PACKAGE_NAME,n2e.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=bN.trace.getSpan(bN.context.active())===void 0;if(o.requireParentSpan===!0&&a)return r.apply(this,arguments);let c=o?.dbStatementSerializer||nen.defaultDbStatementSerializer,u={};t._semconvStability&ml.SemconvStability.OLD&&Object.assign(u,{[a_.ATTR_DB_SYSTEM]:a_.DB_SYSTEM_VALUE_REDIS,[a_.ATTR_DB_STATEMENT]:c(s.command,s.args)}),t._semconvStability&ml.SemconvStability.STABLE&&Object.assign(u,{[EN.ATTR_DB_SYSTEM_NAME]:a_.DB_SYSTEM_NAME_VALUE_REDIS,[EN.ATTR_DB_OPERATION_NAME]:s.command,[EN.ATTR_DB_QUERY_TEXT]:c(s.command,s.args)});let l=t.tracer.startSpan(`${e.COMPONENT}-${s.command}`,{kind:bN.SpanKind.CLIENT,attributes:u});if(this.connection_options){let f={};t._semconvStability&ml.SemconvStability.OLD&&Object.assign(f,{[a_.ATTR_NET_PEER_NAME]:this.connection_options.host,[a_.ATTR_NET_PEER_PORT]:this.connection_options.port}),t._semconvStability&ml.SemconvStability.STABLE&&Object.assign(f,{[EN.ATTR_SERVER_ADDRESS]:this.connection_options.host,[EN.ATTR_SERVER_PORT]:this.connection_options.port}),l.setAttributes(f)}this.address&&t._semconvStability&ml.SemconvStability.OLD&&l.setAttribute(a_.ATTR_DB_CONNECTION_STRING,`redis://${this.address}`);let d=arguments[0].callback;if(d){let f=bN.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,Oz.endSpan)(l,h),bN.context.with(f,d,this,...arguments)}}try{return r.apply(this,arguments)}catch(f){throw(0,Oz.endSpan)(l,f),f}}}}_getPatchCreateClient(){return function(n){return(0,Oz.getTracedCreateClient)(n)}}_getPatchCreateStream(){return function(n){return(0,Oz.getTracedCreateStreamTrace)(n)}}};Pz.RedisInstrumentationV2_V3=Nte});var s2e=w(Nz=>{"use strict";Object.defineProperty(Nz,"__esModule",{value:!0});Nz.getClientAttributes=void 0;var Cte=(Nn(),ke(Mr)),cw=xz(),i2e=Jt();function ren(e,t,n){let r={};return n&i2e.SemconvStability.OLD&&Object.assign(r,{[cw.ATTR_DB_SYSTEM]:cw.DB_SYSTEM_VALUE_REDIS,[cw.ATTR_NET_PEER_NAME]:t?.socket?.host,[cw.ATTR_NET_PEER_PORT]:t?.socket?.port,[cw.ATTR_DB_CONNECTION_STRING]:ien(e,t?.url)}),n&i2e.SemconvStability.STABLE&&Object.assign(r,{[Cte.ATTR_DB_SYSTEM_NAME]:cw.DB_SYSTEM_NAME_VALUE_REDIS,[Cte.ATTR_SERVER_ADDRESS]:t?.socket?.host,[Cte.ATTR_SERVER_PORT]:t?.socket?.port}),r}Nz.getClientAttributes=ren;function ien(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 u2e=w(Cz=>{"use strict";Object.defineProperty(Cz,"__esModule",{value:!0});Cz.RedisInstrumentationV4_V5=void 0;var sd=(Me(),ke(Ze)),pi=Jt(),o2e=s2e(),sen=Az(),a2e=Iz(),Mte=(Nn(),ke(Mr)),oen=xz(),_N=Symbol("opentelemetry.instrumentation.redis.open_spans"),c2e=Symbol("opentelemetry.instrumentation.redis.multi_command_options"),Dte=class e extends pi.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(a2e.PACKAGE_NAME,a2e.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[_N];return n._endSpansWithRedisReplies(c,a,t),a}).catch(a=>{let c=this[_N];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[c2e]=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,o2e.getClientAttributes)(t._diag,s,t._semconvStability),a=t.tracer.startSpan(`${e.COMPONENT}-connect`,{kind:sd.SpanKind.CLIENT,attributes:o});return sd.context.with(sd.trace.setSpan(sd.context.active(),a),()=>r.apply(this)).then(u=>(a.end(),u)).catch(u=>(a.recordException(u),a.setStatus({code:sd.SpanStatusCode.ERROR,message:u.message}),a.end(),Promise.reject(u)))}}}_traceClientCommand(t,n,r,i){if(sd.trace.getSpan(sd.context.active())===void 0&&this.getConfig().requireParentSpan)return t.apply(n,r);let o=n.options||n[c2e],a=i[0],c=i.slice(1),u=this.getConfig().dbStatementSerializer||sen.defaultDbStatementSerializer,l=(0,o2e.getClientAttributes)(this._diag,o,this._semconvStability);this._semconvStability&pi.SemconvStability.STABLE&&(l[Mte.ATTR_DB_OPERATION_NAME]=a);try{let p=u(a,c);p!=null&&(this._semconvStability&pi.SemconvStability.OLD&&(l[oen.ATTR_DB_STATEMENT]=p),this._semconvStability&pi.SemconvStability.STABLE&&(l[Mte.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:sd.SpanKind.CLIENT,attributes:l}),f=sd.context.with(sd.trace.setSpan(sd.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[_N]=p[_N]||[],p[_N].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(Mz,"__esModule",{value:!0});Mz.RedisInstrumentation=void 0;var aen=Jt(),l2e=Iz(),cen=r2e(),uen=u2e(),d2e={requireParentSpan:!1},Lte=class extends aen.InstrumentationBase{instrumentationV2_V3;instrumentationV4_V5;initialized=!1;constructor(t={}){let n={...d2e,...t};super(l2e.PACKAGE_NAME,l2e.PACKAGE_VERSION,n),this.instrumentationV2_V3=new cen.RedisInstrumentationV2_V3(this.getConfig()),this.instrumentationV4_V5=new uen.RedisInstrumentationV4_V5(this.getConfig()),this.initialized=!0}setConfig(t={}){let n={...d2e,...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())}};Mz.RedisInstrumentation=Lte});var p2e=w(Dz=>{"use strict";Object.defineProperty(Dz,"__esModule",{value:!0});Dz.RedisInstrumentation=void 0;var len=f2e();Object.defineProperty(Dz,"RedisInstrumentation",{enumerable:!0,get:function(){return len.RedisInstrumentation}})});function TN(e,t){return e.includes(t.toLowerCase())}function Fte(e){return TN(Ute,e)?"cache.get":TN(fen,e)?"cache.put":void 0}function pen(e,t){return t.some(n=>e.startsWith(n))}function m2e(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)?h2e(i.map(s=>n(s))):[""],r=t[0];return TN(den,e)&&r!=null?n(r):h2e(t.map(i=>n(i)))}catch{return}}function g2e(e,t,n){if(!Fte(e))return!1;for(let r of t)if(pen(r,n))return!0;return!1}function y2e(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 h2e(e){let t=[],n=r=>{r.forEach(i=>{Array.isArray(i)?n(i):t.push(i)})};return n(e),t}var den,Ute,fen,S2e=v(()=>{den=["get","set","setex"],Ute=["get","mget"],fen=["set","setex"]});var b2e,E2e,Lz,vN,_2e,hen,men,T2e,gen,v2e,R2e=v(()=>{b2e=Re(e2e(),1),E2e=Re(p2e(),1);st();sr();S2e();Lz="Redis",vN={},_2e=(e,t,n,r)=>{e.setAttribute(At,"auto.db.otel.redis");let i=m2e(t,n),s=Fte(t);if(!i||!s||!vN.cachePrefixes||!g2e(t,i,vN.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=y2e(r);c&&e.setAttribute(aX,c),TN(Ute,t)&&c!==void 0&&e.setAttribute(sX,c>0),e.setAttributes({[zt]:s,[oX]:i});let u=i.join(", ");e.updateName(vN.maxCacheKeyLength?_y(u,vN.maxCacheKeyLength):u)},hen=rt(`${Lz}.IORedis`,()=>new b2e.IORedisInstrumentation({responseHook:_2e})),men=rt(`${Lz}.Redis`,()=>new E2e.RedisInstrumentation({responseHook:_2e})),T2e=Object.assign(()=>{hen(),men()},{id:Lz}),gen=((e={})=>({name:Lz,setupOnce(){vN=e,T2e()}})),v2e=gen});var A2e=w(Uz=>{"use strict";Object.defineProperty(Uz,"__esModule",{value:!0});Uz.EVENT_LISTENERS_SET=void 0;Uz.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.pg.eventListenersSet")});var jte=w(RN=>{"use strict";Object.defineProperty(RN,"__esModule",{value:!0});RN.AttributeNames=void 0;var yen;(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"})(yen=RN.AttributeNames||(RN.AttributeNames={}))});var Hte=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 qte=w(AN=>{"use strict";Object.defineProperty(AN,"__esModule",{value:!0});AN.SpanNames=void 0;var Sen;(function(e){e.QUERY_PREFIX="pg.query",e.CONNECT="pg.connect",e.POOL_CONNECT="pg-pool.connect"})(Sen=AN.SpanNames||(AN.SpanNames={}))});var N2e=w(qn=>{"use strict";Object.defineProperty(qn,"__esModule",{value:!0});qn.sanitizedErrorMessage=qn.isObjectWithTextString=qn.getErrorMessage=qn.patchClientConnectCallback=qn.patchCallbackPGPool=qn.updateCounter=qn.getPoolName=qn.patchCallback=qn.handleExecutionResult=qn.handleConfigQuery=qn.shouldSkipInstrumentation=qn.getSemanticAttributesFromPoolConnection=qn.getSemanticAttributesFromConnection=qn.getConnectionString=qn.parseAndMaskConnectionString=qn.parseNormalizedOperationName=qn.getQuerySpanName=void 0;var cS=(Me(),ke(Ze)),Fz=jte(),od=(Nn(),ke(Mr)),ds=Hte(),c_=Jt(),w2e=qte();function k2e(e,t){if(!t)return w2e.SpanNames.QUERY_PREFIX;let n=typeof t.name=="string"&&t.name?t.name:I2e(t.text);return`${w2e.SpanNames.QUERY_PREFIX}:${n}${e?` ${e}`:""}`}qn.getQuerySpanName=k2e;function I2e(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}qn.parseNormalizedOperationName=I2e;function x2e(e){try{let t=new URL(e);return t.username="",t.password="",t.toString()}catch{return"postgresql://localhost:5432/"}}qn.parseAndMaskConnectionString=x2e;function Bte(e){if("connectionString"in e&&e.connectionString)return x2e(e.connectionString);let t=e.host||"localhost",n=e.port||5432,r=e.database||"";return`postgresql://${t}:${n}/${r}`}qn.getConnectionString=Bte;function jz(e){if(Number.isInteger(e))return e}function O2e(e,t){let n={};return t&c_.SemconvStability.OLD&&(n={...n,[ds.ATTR_DB_SYSTEM]:ds.DB_SYSTEM_VALUE_POSTGRESQL,[ds.ATTR_DB_NAME]:e.database,[ds.ATTR_DB_CONNECTION_STRING]:Bte(e),[ds.ATTR_DB_USER]:e.user,[ds.ATTR_NET_PEER_NAME]:e.host,[ds.ATTR_NET_PEER_PORT]:jz(e.port)}),t&c_.SemconvStability.STABLE&&(n={...n,[od.ATTR_DB_SYSTEM_NAME]:od.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[od.ATTR_DB_NAMESPACE]:e.namespace,[od.ATTR_SERVER_ADDRESS]:e.host,[od.ATTR_SERVER_PORT]:jz(e.port)}),n}qn.getSemanticAttributesFromConnection=O2e;function ben(e,t){let n;try{n=e.connectionString?new URL(e.connectionString):void 0}catch{n=void 0}let r={[Fz.AttributeNames.IDLE_TIMEOUT_MILLIS]:e.idleTimeoutMillis,[Fz.AttributeNames.MAX_CLIENT]:e.maxClient};return t&c_.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]:Bte(e),[ds.ATTR_NET_PEER_NAME]:n?.hostname??e.host,[ds.ATTR_NET_PEER_PORT]:Number(n?.port)||jz(e.port),[ds.ATTR_DB_USER]:n?.username??e.user}),t&c_.SemconvStability.STABLE&&(r={...r,[od.ATTR_DB_SYSTEM_NAME]:od.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[od.ATTR_DB_NAMESPACE]:e.namespace,[od.ATTR_SERVER_ADDRESS]:n?.hostname??e.host,[od.ATTR_SERVER_PORT]:Number(n?.port)||jz(e.port)}),r}qn.getSemanticAttributesFromPoolConnection=ben;function Een(e){return e.requireParentSpan===!0&&cS.trace.getSpan(cS.context.active())===void 0}qn.shouldSkipInstrumentation=Een;function _en(e,t,n,r){let{connectionParameters:i}=this,s=i.database,o=k2e(s,r),a=e.startSpan(o,{kind:cS.SpanKind.CLIENT,attributes:O2e(i,n)});if(!r)return a;if(r.text&&(n&c_.SemconvStability.OLD&&a.setAttribute(ds.ATTR_DB_STATEMENT,r.text),n&c_.SemconvStability.STABLE&&a.setAttribute(od.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(Fz.AttributeNames.PG_VALUES,c)}catch(c){cS.diag.error("failed to stringify ",r.values,c)}return typeof r.name=="string"&&a.setAttribute(Fz.AttributeNames.PG_PLAN,r.name),a}qn.handleConfigQuery=_en;function P2e(e,t,n){typeof e.responseHook=="function"&&(0,c_.safeExecuteInTheMiddle)(()=>{e.responseHook(t,{data:n})},r=>{r&&cS.diag.error("Error running response hook",r)},!0)}qn.handleExecutionResult=P2e;function Ten(e,t,n,r,i){return function(o,a){o?(Object.prototype.hasOwnProperty.call(o,"code")&&(r[od.ATTR_ERROR_TYPE]=o.code),o instanceof Error&&t.recordException(Hz(o)),t.setStatus({code:cS.SpanStatusCode.ERROR,message:o.message})):P2e(e,t,a),i(),t.end(),n.call(this,o,a)}}qn.patchCallback=Ten;function ven(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()}qn.getPoolName=ven;function Ren(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}}qn.updateCounter=Ren;function Aen(e,t){return function(r,i,s){r&&(r instanceof Error&&e.recordException(Hz(r)),e.setStatus({code:cS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.call(this,r,i,s)}}qn.patchCallbackPGPool=Aen;function wen(e,t){return function(r){r&&(r instanceof Error&&e.recordException(Hz(r)),e.setStatus({code:cS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.apply(this,arguments)}}qn.patchClientConnectCallback=wen;function ken(e){return typeof e=="object"&&e!==null&&"message"in e?String(e.message):void 0}qn.getErrorMessage=ken;function Ien(e){return typeof e=="object"&&typeof e?.text=="string"}qn.isObjectWithTextString=Ien;function Hz(e){let t=e?.name??"PostgreSQLError",n=e?.code??"UNKNOWN";return`PostgreSQL error of type '${t}' occurred (code: ${n})`}qn.sanitizedErrorMessage=Hz});var C2e=w(uw=>{"use strict";Object.defineProperty(uw,"__esModule",{value:!0});uw.PACKAGE_NAME=uw.PACKAGE_VERSION=void 0;uw.PACKAGE_VERSION="0.66.0";uw.PACKAGE_NAME="@opentelemetry/instrumentation-pg"});var j2e=w(Bz=>{"use strict";Object.defineProperty(Bz,"__esModule",{value:!0});Bz.PgInstrumentation=void 0;var Uc=Jt(),Ur=(Me(),ke(Ze)),M2e=A2e(),Yi=N2e(),D2e=Ate(),L2e=C2e(),U2e=qte(),qz=pr(),gf=(Nn(),ke(Mr)),wN=Hte();function lw(e){return e[Symbol.toStringTag]==="Module"?e.default:e}var zte=class extends Uc.InstrumentationBase{_connectionsCounter={used:0,idle:0,pending:0};_semconvStability;constructor(t={}){super(L2e.PACKAGE_NAME,L2e.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(wN.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(wN.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=lw(a);return this._patchPgClient(c.Client),a},a=>{let c=lw(a);return this._unpatchPgClient(c.Client),a},[i,r]),o=new Uc.InstrumentationNodeModuleDefinition("pg-pool",n,a=>{let c=lw(a);return(0,Uc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect"),this._wrap(c.prototype,"connect",this._getPoolConnectPatch()),c},a=>{let c=lw(a);(0,Uc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect")});return[s,o]}_patchPgClient(t){if(!t)return;let n=lw(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=lw(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(U2e.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 F2e(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(wN.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,qz.hrTimeToMilliseconds)((0,qz.hrTimeDuration)(n,(0,qz.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,qz.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={[wN.ATTR_DB_SYSTEM]:wN.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,D2e.addSqlCommenterComment)(p,o):c&&!("name"in o)&&(i[0]={...o,text:(0,D2e.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[M2e.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[M2e.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(U2e.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 F2e(o,a)}}};Bz.PgInstrumentation=zte;function F2e(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 H2e=w(dw=>{"use strict";Object.defineProperty(dw,"__esModule",{value:!0});dw.AttributeNames=dw.PgInstrumentation=void 0;var xen=j2e();Object.defineProperty(dw,"PgInstrumentation",{enumerable:!0,get:function(){return xen.PgInstrumentation}});var Oen=jte();Object.defineProperty(dw,"AttributeNames",{enumerable:!0,get:function(){return Oen.AttributeNames}})});var q2e,B2e,z2e,Pen,G2e,V2e=v(()=>{q2e=Re(H2e(),1);sr();B2e="Postgres",z2e=rt(B2e,q2e.PgInstrumentation,e=>({requireParentSpan:!0,requestHook(t){Dr(t,"auto.db.otel.postgres")},ignoreConnectSpans:e?.ignoreConnectSpans??!1})),Pen=(e=>({name:B2e,setupOnce(){z2e(e)}})),G2e=Pen});var uS,Vte,W2e,Nen,Cen,K2e,Gte,Men,Y2e,Z2e=v(()=>{Me();uS=Re(Jt(),1);Nn();st();sr();QE();Vte="PostgresJs",W2e=[">=3.0.0 <4"],Nen=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,Cen=Symbol.for("sentry.query.from.instrumented.sql"),K2e=rt(Vte,e=>new Gte({requireParentSpan:e?.requireParentSpan??!0,requestHook:e?.requestHook})),Gte=class extends uS.InstrumentationBase{constructor(t){super("sentry-postgres-js",Cn,t)}init(){let t=new uS.InstrumentationNodeModuleDefinition("postgres",W2e,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 uS.InstrumentationNodeModuleFile(`postgres/${n}/query.js`,W2e,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 rQ(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:(_P(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(yR,r);return}let i=n?.match(Nen);i?.[1]&&t.setAttribute(yR,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({[SE]:"postgres",[T7]:o});let c=n.getConfig(),{requestHook:u}=c;u&&(0,uS.safeExecuteInTheMiddle)(()=>u(a,o,void 0),f=>{f&&(a.setAttribute("sentry.hook.error","requestHook failed"),So&&Z.error(`Error in requestHook for ${Vte} 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(v7,h?.[0]?.code||"unknown"),a.setAttribute(R7,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}},Men=(e=>({name:Vte,setupOnce(){K2e(e)}})),Y2e=Men});var J2e=w(kN=>{"use strict";Object.defineProperty(kN,"__esModule",{value:!0});kN.SeverityNumber=void 0;var Den;(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"})(Den=kN.SeverityNumber||(kN.SeverityNumber={}))});var Gz=w(fw=>{"use strict";Object.defineProperty(fw,"__esModule",{value:!0});fw.NOOP_LOGGER=fw.NoopLogger=void 0;var zz=class{emit(t){}};fw.NoopLogger=zz;fw.NOOP_LOGGER=new zz});var Wz=w(pw=>{"use strict";Object.defineProperty(pw,"__esModule",{value:!0});pw.NOOP_LOGGER_PROVIDER=pw.NoopLoggerProvider=void 0;var Len=Gz(),Vz=class{getLogger(t,n,r){return new Len.NoopLogger}};pw.NoopLoggerProvider=Vz;pw.NOOP_LOGGER_PROVIDER=new Vz});var Kte=w(Kz=>{"use strict";Object.defineProperty(Kz,"__esModule",{value:!0});Kz.ProxyLogger=void 0;var Uen=Gz(),Wte=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):Uen.NOOP_LOGGER}};Kz.ProxyLogger=Wte});var Zte=w(Yz=>{"use strict";Object.defineProperty(Yz,"__esModule",{value:!0});Yz.ProxyLoggerProvider=void 0;var Fen=Wz(),jen=Kte(),Yte=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new jen.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:Fen.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)}};Yz.ProxyLoggerProvider=Yte});var X2e=w(Zz=>{"use strict";Object.defineProperty(Zz,"__esModule",{value:!0});Zz._globalThis=void 0;Zz._globalThis=typeof globalThis=="object"?globalThis:global});var Q2e=w(Jz=>{"use strict";Object.defineProperty(Jz,"__esModule",{value:!0});Jz._globalThis=void 0;var Hen=X2e();Object.defineProperty(Jz,"_globalThis",{enumerable:!0,get:function(){return Hen._globalThis}})});var $2e=w(Xz=>{"use strict";Object.defineProperty(Xz,"__esModule",{value:!0});Xz._globalThis=void 0;var qen=Q2e();Object.defineProperty(Xz,"_globalThis",{enumerable:!0,get:function(){return qen._globalThis}})});var eVe=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 Ben=$2e();$p.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");$p._global=Ben._globalThis;function zen(e,t,n){return r=>r===e?t:n}$p.makeGetter=zen;$p.API_BACKWARDS_COMPATIBILITY_VERSION=1});var nVe=w(Qz=>{"use strict";Object.defineProperty(Qz,"__esModule",{value:!0});Qz.LogsAPI=void 0;var ad=eVe(),Gen=Wz(),tVe=Zte(),Jte=class e{constructor(){this._proxyLoggerProvider=new tVe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return ad._global[ad.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(ad._global[ad.GLOBAL_LOGS_API_KEY]=(0,ad.makeGetter)(ad.API_BACKWARDS_COMPATIBILITY_VERSION,t,Gen.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=ad._global[ad.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(ad._global,ad.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete ad._global[ad.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new tVe.ProxyLoggerProvider}};Qz.LogsAPI=Jte});var Xte=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 Ven=J2e();Object.defineProperty(Bo,"SeverityNumber",{enumerable:!0,get:function(){return Ven.SeverityNumber}});var rVe=Gz();Object.defineProperty(Bo,"NOOP_LOGGER",{enumerable:!0,get:function(){return rVe.NOOP_LOGGER}});Object.defineProperty(Bo,"NoopLogger",{enumerable:!0,get:function(){return rVe.NoopLogger}});var iVe=Wz();Object.defineProperty(Bo,"NOOP_LOGGER_PROVIDER",{enumerable:!0,get:function(){return iVe.NOOP_LOGGER_PROVIDER}});Object.defineProperty(Bo,"NoopLoggerProvider",{enumerable:!0,get:function(){return iVe.NoopLoggerProvider}});var Wen=Kte();Object.defineProperty(Bo,"ProxyLogger",{enumerable:!0,get:function(){return Wen.ProxyLogger}});var Ken=Zte();Object.defineProperty(Bo,"ProxyLoggerProvider",{enumerable:!0,get:function(){return Ken.ProxyLoggerProvider}});var Yen=nVe();Bo.logs=Yen.LogsAPI.getInstance()});var sVe=w(hw=>{"use strict";Object.defineProperty(hw,"__esModule",{value:!0});hw.disableInstrumentations=hw.enableInstrumentations=void 0;function Zen(e,t,n,r){for(let i=0,s=e.length;it.disable())}hw.disableInstrumentations=Jen});var cVe=w($z=>{"use strict";Object.defineProperty($z,"__esModule",{value:!0});$z.registerInstrumentations=void 0;var oVe=(Me(),ke(Ze)),Xen=Xte(),aVe=sVe();function Qen(e){let t=e.tracerProvider||oVe.trace.getTracerProvider(),n=e.meterProvider||oVe.metrics.getMeterProvider(),r=e.loggerProvider||Xen.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,aVe.enableInstrumentations)(i,t,n,r),()=>{(0,aVe.disableInstrumentations)(i)}}$z.registerInstrumentations=Qen});var yVe=w(eG=>{"use strict";Object.defineProperty(eG,"__esModule",{value:!0});eG.satisfies=void 0;var tne=(Me(),ke(Ze)),pVe=/^(?: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-]+)*))?$/,$en=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,etn={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function ttn(e,t,n){if(!ntn(e))return tne.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=otn(e);if(!r)return!1;let i=[],s=hVe(r,t,i,n);return s&&!n?.includePrerelease?itn(r,i):s}eG.satisfies=ttn;function ntn(e){return typeof e=="string"&&pVe.test(e)}function hVe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Qte(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=ktn(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!Qte(e,s,n,r))return!1;return!0}return Qte(e,t,n,r)}function Qte(e,t,n,r){if(t=stn(t,r),t.includes(" "))return hVe(e,t,n,r);{let i=atn(t);return n.push(i),rtn(e,i)}}function rtn(e,t){if(t.invalid)return!1;if(!t.version||ene(t.version))return!0;let n=lVe(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=lVe(r,i)}return etn[t.op]?.includes(n)}function itn(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function stn(e,t){return e=e.trim(),e=Atn(e,t),e=Rtn(e),e=wtn(e,t),e=e.trim(),e}function Fc(e){return!e||e.toLowerCase()==="x"||e==="*"}function otn(e){let t=e.match(pVe);if(!t){tne.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 atn(e){if(!e)return{};let t=e.match($en);if(!t)return tne.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 ene(e){return e==="*"||e==="x"||e==="X"}function uVe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function ctn(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 utn(e,t){if(ene(e)||ene(t))return 0;let[n,r]=ctn(uVe(e),uVe(t));return n>r?1:n)?=?)",dVe=`(?:${gVe}|${ltn})`,ftn=`(?:-(${dVe}(?:\\.${dVe})*))`,fVe=`${mVe}+`,ptn=`(?:\\+(${fVe}(?:\\.${fVe})*))`,$te=`${gVe}|x|X|\\*`,IN=`[v=\\s]*(${$te})(?:\\.(${$te})(?:\\.(${$te})(?:${ftn})?${ptn}?)?)?`,htn=`^${dtn}\\s*${IN}$`,mtn=new RegExp(htn),gtn=`^\\s*(${IN})\\s+-\\s+(${IN})\\s*$`,ytn=new RegExp(gtn),Stn="(?:~>?)",btn=`^${Stn}${IN}$`,Etn=new RegExp(btn),_tn="(?:\\^)",Ttn=`^${_tn}${IN}$`,vtn=new RegExp(Ttn);function Rtn(e){let t=Etn;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 Atn(e,t){let n=vtn,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 wtn(e,t){let n=mtn;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 ktn(e,t){let n=ytn;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 nne=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 xN(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var Itn=(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 xN(i,"__original",r),xN(i,"__unwrap",()=>{e[t]===i&&xN(e,t,r)}),xN(i,"__wrapped",!0),xN(e,t,i),i};pa.wrap=Itn;var xtn=(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=xtn;var Otn=(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=Otn;var Ptn=(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=Ptn;function ON(e){e&&e.logger&&(typeof e.logger!="function"?jc("new logger isn't a function, not replacing"):jc=e.logger)}pa.default=ON;ON.wrap=pa.wrap;ON.massWrap=pa.massWrap;ON.unwrap=pa.unwrap;ON.massUnwrap=pa.massUnwrap});var SVe=w(nG=>{"use strict";Object.defineProperty(nG,"__esModule",{value:!0});nG.InstrumentationAbstract=void 0;var rne=(Me(),ke(Ze)),Ntn=Xte(),tG=nne(),ine=class{instrumentationName;instrumentationVersion;_config={};_tracer;_meter;_logger;_diag;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=rne.diag.createComponentLogger({namespace:t}),this._tracer=rne.trace.getTracer(t,n),this._meter=rne.metrics.getMeter(t,n),this._logger=Ntn.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=tG.wrap;_unwrap=tG.unwrap;_massWrap=tG.massWrap;_massUnwrap=tG.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)}}};nG.InstrumentationAbstract=ine});var bVe=w(lS=>{"use strict";Object.defineProperty(lS,"__esModule",{value:!0});lS.ModuleNameTrie=lS.ModuleNameSeparator=void 0;lS.ModuleNameSeparator="/";var rG=class{hooks=[];children=new Map},sne=class{_trie=new rG;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(lS.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new rG,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(lS.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))}};lS.ModuleNameTrie=sne});var _Ve=w(iG=>{"use strict";Object.defineProperty(iG,"__esModule",{value:!0});iG.RequireInTheMiddleSingleton=void 0;var Ctn=RE(),EVe=Y("path"),one=bVe(),Mtn=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),ane=class e{_moduleNameTrie=new one.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new Ctn.Hook(null,{internals:!0},(t,n,r)=>{let i=Dtn(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 Mtn?new e:this._instance=this._instance??new e}};iG.RequireInTheMiddleSingleton=ane;function Dtn(e){return EVe.sep!==one.ModuleNameSeparator?e.split(EVe.sep).join(one.ModuleNameSeparator):e}});var wVe=w(PN=>{var TVe=[],cne=new WeakMap,vVe=new WeakMap,RVe=new Map,AVe=[],Ltn={set(e,t,n){let r=cne.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=vVe.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=cne.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function Utn(e,t,n,r,i){RVe.set(e,i),cne.set(t,n),vVe.set(t,r);let s=new Proxy(t,Ltn);TVe.forEach(o=>o(e,s,i)),AVe.push([e,s,i])}PN.register=Utn;PN.importHooks=TVe;PN.specifiers=RVe;PN.toHook=AVe});var OVe=w((p1r,gw)=>{var kVe=Y("path"),Ftn=xO(),{fileURLToPath:jtn}=Y("url"),{MessageChannel:Htn}=Y("worker_threads"),{isBuiltin:une}=Y("module");une||(une=()=>!0);var{importHooks:lne,specifiers:qtn,toHook:Btn}=wVe();function IVe(e){lne.push(e),Btn.forEach(([t,n,r])=>e(t,n,r))}function xVe(e){let t=lne.indexOf(e);t>-1&&lne.splice(t,1)}function mw(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var dne;function ztn(){let{port1:e,port2:t}=new Htn,n=0,r;dne=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 NN(e,t,n){if(!(this instanceof NN))return new NN(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;dne&&Array.isArray(e)&&dne(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);une(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=jtn(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=Ftn(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)mw(n,s,u,void 0);else if(d===i){if(!l)mw(n,s,i,l);else if(l.endsWith(qtn.get(a)))mw(n,s,i,l);else if(r){let f=i+kVe.sep+kVe.relative(l,u);mw(n,s,f,l)}}else d===o&&mw(n,s,o,l);else mw(n,s,i,l)},IVe(this._iitmHook)}NN.prototype.unhook=function(){xVe(this._iitmHook)};gw.exports=NN;gw.exports.Hook=NN;gw.exports.addHook=IVe;gw.exports.removeHook=xVe;gw.exports.createAddHookMessageChannel=ztn});var fne=w(dS=>{"use strict";Object.defineProperty(dS,"__esModule",{value:!0});dS.isWrapped=dS.safeExecuteInTheMiddleAsync=dS.safeExecuteInTheMiddle=void 0;function Gtn(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}dS.safeExecuteInTheMiddle=Gtn;async function Vtn(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}}dS.safeExecuteInTheMiddleAsync=Vtn;function Wtn(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}dS.isWrapped=Wtn});var CVe=w(sG=>{"use strict";Object.defineProperty(sG,"__esModule",{value:!0});sG.InstrumentationBase=void 0;var CN=Y("path"),PVe=Y("util"),Ktn=yVe(),pne=nne(),Ytn=SVe(),Ztn=_Ve(),Jtn=OVe(),MN=(Me(),ke(Ze)),Xtn=RE(),Qtn=Y("fs"),$tn=fne(),hne=class extends Ytn.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=Ztn.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,$tn.isWrapped)(t[n])&&this._unwrap(t,n),PVe.types.isProxy(t)){let i=(0,pne.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,pne.wrap)(t,n,r)};_unwrap=(t,n)=>PVe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,pne.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{MN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{MN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=Y.resolve(n);Y.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,Qtn.readFileSync)(CN.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{MN.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return NVe(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=CN.normalize(r);return o.filter(u=>u.name===a).filter(u=>NVe(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&CN.isAbsolute(a)){let u=CN.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=CN.isAbsolute(t.name)?new Xtn.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new Jtn.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}};sG.InstrumentationBase=hne;function NVe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,Ktn.satisfies)(t,r,{includePrerelease:n}))}});var MVe=w(oG=>{"use strict";Object.defineProperty(oG,"__esModule",{value:!0});oG.normalize=void 0;var enn=Y("path");Object.defineProperty(oG,"normalize",{enumerable:!0,get:function(){return enn.normalize}})});var DVe=w(yw=>{"use strict";Object.defineProperty(yw,"__esModule",{value:!0});yw.normalize=yw.InstrumentationBase=void 0;var tnn=CVe();Object.defineProperty(yw,"InstrumentationBase",{enumerable:!0,get:function(){return tnn.InstrumentationBase}});var nnn=MVe();Object.defineProperty(yw,"normalize",{enumerable:!0,get:function(){return nnn.normalize}})});var mne=w(Sw=>{"use strict";Object.defineProperty(Sw,"__esModule",{value:!0});Sw.normalize=Sw.InstrumentationBase=void 0;var LVe=DVe();Object.defineProperty(Sw,"InstrumentationBase",{enumerable:!0,get:function(){return LVe.InstrumentationBase}});Object.defineProperty(Sw,"normalize",{enumerable:!0,get:function(){return LVe.normalize}})});var UVe=w(aG=>{"use strict";Object.defineProperty(aG,"__esModule",{value:!0});aG.InstrumentationNodeModuleDefinition=void 0;var gne=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||[]}};aG.InstrumentationNodeModuleDefinition=gne});var FVe=w(cG=>{"use strict";Object.defineProperty(cG,"__esModule",{value:!0});cG.InstrumentationNodeModuleFile=void 0;var rnn=mne(),yne=class{supportedVersions;patch;unpatch;name;constructor(t,n,r,i){this.supportedVersions=n,this.patch=r,this.unpatch=i,this.name=(0,rnn.normalize)(t)}};cG.InstrumentationNodeModuleFile=yne});var jVe=w(u_=>{"use strict";Object.defineProperty(u_,"__esModule",{value:!0});u_.semconvStabilityFromStr=u_.SemconvStability=void 0;var uG;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(uG=u_.SemconvStability||(u_.SemconvStability={}));function inn(e,t){let n=uG.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=uG.DUPLICATE;break}else i.toLowerCase()===e&&(n=uG.STABLE);return n}u_.semconvStabilityFromStr=inn});var qVe=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 snn=cVe();Object.defineProperty(Js,"registerInstrumentations",{enumerable:!0,get:function(){return snn.registerInstrumentations}});var onn=mne();Object.defineProperty(Js,"InstrumentationBase",{enumerable:!0,get:function(){return onn.InstrumentationBase}});var ann=UVe();Object.defineProperty(Js,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return ann.InstrumentationNodeModuleDefinition}});var cnn=FVe();Object.defineProperty(Js,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return cnn.InstrumentationNodeModuleFile}});var Sne=fne();Object.defineProperty(Js,"isWrapped",{enumerable:!0,get:function(){return Sne.isWrapped}});Object.defineProperty(Js,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return Sne.safeExecuteInTheMiddle}});Object.defineProperty(Js,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return Sne.safeExecuteInTheMiddleAsync}});var HVe=jVe();Object.defineProperty(Js,"SemconvStability",{enumerable:!0,get:function(){return HVe.SemconvStability}});Object.defineProperty(Js,"semconvStabilityFromStr",{enumerable:!0,get:function(){return HVe.semconvStabilityFromStr}})});function dnn(){let e=bw[Ene];return e?.helper?e.helper:bw[bne]?.helper}function fnn(e){let t={helper:e};bw[Ene]=t,bw[bne]=t}function pnn(){delete bw[Ene],delete bw[bne]}function gnn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}function GVe(e,t,n,r,i){if(VVe(t.name,i))return;let s={attributes:t.attributes,kind:gnn(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)GVe(e,c,n,r,i);o.end(t.endTime)})}function BVe(e,t){return Snn(t)?t.then(n=>(e.end(),n),n=>{throw e.end(),n}):(e.end(),t)}function Snn(e){return e!=null&&typeof e.then=="function"}function VVe(e,t){return t.some(n=>typeof n=="string"?n===e:n.test(e))}var lG,unn,lnn,bne,Ene,bw,hnn,mnn,ynn,WVe,zVe,bnn,Enn,KVe,YVe=v(()=>{Me();lG=Re(qVe(),1);Me();unn={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"}},lnn=unn.version.split(".")[0],bne="PRISMA_INSTRUMENTATION",Ene=`V${lnn}_PRISMA_INSTRUMENTATION`,bw=globalThis;hnn=process.env.PRISMA_SHOW_ALL_TRACES==="true",mnn="00-10-10-00";ynn=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}`:mnn}dispatchEngineSpans(e){let t=this.tracerProvider.getTracer("prisma"),n=new Map,r=e.filter(i=>i.parentId===null);for(let i of r)GVe(t,i,e,n,this.ignoreSpanTypes)}getActiveContext(){return Ve.active()}runInChildSpan(e,t){if(typeof e=="string"&&(e={name:e}),e.internal&&!hnn)return t();let n=this.tracerProvider.getTracer("prisma"),r=e.context??this.getActiveContext(),i=`prisma:client:${e.name}`;if(VVe(i,this.ignoreSpanTypes))return t();if(e.active===!1){let s=n.startSpan(i,e,r);return BVe(s,t(s,r))}return n.startActiveSpan(i,e,s=>BVe(s,t(s,r)))}};WVe={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},zVe=WVe.version,bnn=WVe.name,Enn="@prisma/client",KVe=class extends lG.InstrumentationBase{tracerProvider;constructor(e={}){super(bnn,zVe,e)}setTracerProvider(e){this.tracerProvider=e}init(){return[new lG.InstrumentationNodeModuleDefinition(Enn,[zVe])]}enable(){let e=this._config;fnn(new ynn({tracerProvider:this.tracerProvider??jt.getTracerProvider(),ignoreSpanTypes:e.ignoreSpanTypes??[]}))}disable(){pnn()}isEnabled(){return dnn()!==void 0}}});function _nn(e){return!!e&&typeof e=="object"&&"dispatchEngineSpans"in e}function JVe(){let e=globalThis.PRISMA_INSTRUMENTATION;return e&&typeof e=="object"&&"helper"in e?e.helper:void 0}function Tnn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}var ZVe,_ne,vnn,XVe,QVe=v(()=>{Me();YVe();st();sr();ZVe="Prisma";_ne=class extends KVe{constructor(t){super(t?.instrumentationConfig)}enable(){super.enable();let t=JVe();_nn(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=Tnn(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}})}};vnn=rt(ZVe,e=>new _ne(e)),XVe=e=>({name:ZVe,setupOnce(){vnn(e)},setup(t){JVe()&&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 $Ve=w(Ew=>{"use strict";Object.defineProperty(Ew,"__esModule",{value:!0});Ew.PACKAGE_NAME=Ew.PACKAGE_VERSION=void 0;Ew.PACKAGE_VERSION="0.60.0";Ew.PACKAGE_NAME="@opentelemetry/instrumentation-hapi"});var Tne=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 eWe=w(dG=>{"use strict";Object.defineProperty(dG,"__esModule",{value:!0});dG.ATTR_HTTP_METHOD=void 0;dG.ATTR_HTTP_METHOD="http.method"});var vne=w(DN=>{"use strict";Object.defineProperty(DN,"__esModule",{value:!0});DN.AttributeNames=void 0;var Rnn;(function(e){e.HAPI_TYPE="hapi.type",e.PLUGIN_NAME="hapi.plugin.name",e.EXT_TYPE="server.ext.type"})(Rnn=DN.AttributeNames||(DN.AttributeNames={}))});var rWe=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 tWe=(Nn(),ke(Mr)),Ann=eWe(),LN=Tne(),fS=vne(),nWe=Jt();function wnn(e){return e.name?e.name:e.pkg.name}Xs.getPluginName=wnn;var knn=e=>typeof e=="string"&&LN.HapiLifecycleMethodNames.has(e);Xs.isLifecycleExtType=knn;var Inn=e=>{let t=e?.type;return t!==void 0&&(0,Xs.isLifecycleExtType)(t)};Xs.isLifecycleExtEventObj=Inn;var xnn=e=>Array.isArray(e)&&e.length<=3&&(0,Xs.isLifecycleExtType)(e[0])&&typeof e[1]=="function";Xs.isDirectExtInput=xnn;var Onn=e=>!Array.isArray(e);Xs.isPatchableExtMethod=Onn;var Pnn=(e,t,n)=>{let r={[tWe.ATTR_HTTP_ROUTE]:e.path};t&nWe.SemconvStability.OLD&&(r[Ann.ATTR_HTTP_METHOD]=e.method),t&nWe.SemconvStability.STABLE&&(r[tWe.ATTR_HTTP_REQUEST_METHOD]=e.method);let i;return n?(r[fS.AttributeNames.HAPI_TYPE]=LN.HapiLayerType.PLUGIN,r[fS.AttributeNames.PLUGIN_NAME]=n,i=`${n}: route - ${e.path}`):(r[fS.AttributeNames.HAPI_TYPE]=LN.HapiLayerType.ROUTER,i=`route - ${e.path}`),{attributes:r,name:i}};Xs.getRouteMetadata=Pnn;var Nnn=(e,t,n)=>{let r=`ext - ${e}`;return n&&n!=="method"&&(r=`ext - ${e} - ${n}`),t?{attributes:{[fS.AttributeNames.EXT_TYPE]:e,[fS.AttributeNames.HAPI_TYPE]:LN.HapiLayerType.EXT,[fS.AttributeNames.PLUGIN_NAME]:t},name:`${t}: ${r}`}:{attributes:{[fS.AttributeNames.EXT_TYPE]:e,[fS.AttributeNames.HAPI_TYPE]:LN.HapiLayerType.EXT},name:r}};Xs.getExtMetadata=Nnn;var Cnn=e=>"plugin"in e?"plugin"in e.plugin?e.plugin.plugin:e.plugin:e;Xs.getPluginFromInput=Cnn});var oWe=w(fG=>{"use strict";Object.defineProperty(fG,"__esModule",{value:!0});fG.HapiInstrumentation=void 0;var gl=(Me(),ke(Ze)),iWe=pr(),UN=Jt(),sWe=$Ve(),FN=Tne(),Lm=rWe(),Rne=class extends UN.InstrumentationBase{_semconvStability;constructor(t={}){super(sWe.PACKAGE_NAME,sWe.PACKAGE_VERSION,t),this._semconvStability=(0,UN.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new UN.InstrumentationNodeModuleDefinition(FN.HapiComponentName,[">=17.0.0 <22"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,UN.isWrapped)(n.server)||this._wrap(n,"server",this._getServerPatch.bind(this)),(0,UN.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,Lm.getPluginFromInput)(o);n._wrapRegisterHandler(a)}else{let o=(0,Lm.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,iWe.getRPCMetadata)(gl.context.active());a?.type===iWe.RPCType.HTTP&&(a.route=t.path);let c=(0,Lm.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}};fG.HapiInstrumentation=Rne});var aWe=w(_w=>{"use strict";Object.defineProperty(_w,"__esModule",{value:!0});_w.AttributeNames=_w.HapiInstrumentation=void 0;var Mnn=oWe();Object.defineProperty(_w,"HapiInstrumentation",{enumerable:!0,get:function(){return Mnn.HapiInstrumentation}});var Dnn=vne();Object.defineProperty(_w,"AttributeNames",{enumerable:!0,get:function(){return Dnn.AttributeNames}})});var cWe,uWe,lWe,Lnn,dWe,fWe=v(()=>{cWe=Re(aWe(),1);sr();uWe="Hapi",lWe=rt(uWe,()=>new cWe.HapiInstrumentation),Lnn=(()=>({name:uWe,setupOnce(){lWe()}})),dWe=Lnn});var pS,jN,Ane=v(()=>{pS={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},jN={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"}});var hG,Unn,Fnn,pG,pWe=v(()=>{Me();hG=Re(Jt(),1);st();Ane();Unn="@sentry/instrumentation-hono",Fnn="0.0.1",pG=class extends hG.InstrumentationBase{constructor(t={}){super(Unn,Fnn,t)}init(){return[new hG.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({[pS.HONO_TYPE]:u,[pS.HONO_NAME]:u===jN.REQUEST_HANDLER?s:t.name||"anonymous"}),n.getConfig().responseHook?.(o),c});{let c=n._determineHandlerType(a);return o.setAttributes({[pS.HONO_TYPE]:c,[pS.HONO_NAME]:c===jN.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?jN.MIDDLEWARE:jN.REQUEST_HANDLER}_handleError(t,n){n instanceof Error&&(t.setStatus({code:as.ERROR,message:n.message}),t.recordException(n))}}});function jnn(e){let t=vt(e).data,n=t[pS.HONO_TYPE];if(t[zt]||!n)return;e.setAttributes({[At]:"auto.http.otel.hono",[zt]:`${n}.hono`});let r=t[pS.HONO_NAME];if(typeof r=="string"&&e.updateName(r),vn()===Wl()){So&&Z.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let i=t[dm],s=t[bE];typeof i=="string"&&typeof s=="string"&&vn().setTransactionName(`${s} ${i}`)}var hWe,mWe,Hnn,gWe,yWe=v(()=>{Nn();st();sr();QE();Ane();pWe();hWe="Hono";mWe=rt(hWe,()=>new pG({responseHook:e=>{jnn(e)}})),Hnn=(()=>({name:hWe,setupOnce(){mWe()}})),gWe=Hnn});var mG=w(HN=>{"use strict";Object.defineProperty(HN,"__esModule",{value:!0});HN.KoaLayerType=void 0;var qnn;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware"})(qnn=HN.KoaLayerType||(HN.KoaLayerType={}))});var SWe=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-koa"});var wne=w(qN=>{"use strict";Object.defineProperty(qN,"__esModule",{value:!0});qN.AttributeNames=void 0;var Bnn;(function(e){e.KOA_TYPE="koa.type",e.KOA_NAME="koa.name"})(Bnn=qN.AttributeNames||(qN.AttributeNames={}))});var EWe=w(vw=>{"use strict";Object.defineProperty(vw,"__esModule",{value:!0});vw.isLayerIgnored=vw.getMiddlewareMetadata=void 0;var bWe=mG(),gG=wne(),znn=(Nn(),ke(Mr)),Gnn=(e,t,n,r)=>n?{attributes:{[gG.AttributeNames.KOA_NAME]:r?.toString(),[gG.AttributeNames.KOA_TYPE]:bWe.KoaLayerType.ROUTER,[znn.ATTR_HTTP_ROUTE]:r?.toString()},name:e._matchedRouteName||`router - ${r}`}:{attributes:{[gG.AttributeNames.KOA_NAME]:t.name??"middleware",[gG.AttributeNames.KOA_TYPE]:bWe.KoaLayerType.MIDDLEWARE},name:`middleware - ${t.name}`};vw.getMiddlewareMetadata=Gnn;var Vnn=(e,t)=>!!(Array.isArray(t?.ignoreLayersType)&&t?.ignoreLayersType?.includes(e));vw.isLayerIgnored=Vnn});var _We=w(yG=>{"use strict";Object.defineProperty(yG,"__esModule",{value:!0});yG.kLayerPatched=void 0;yG.kLayerPatched=Symbol("koa-layer-patched")});var kWe=w(SG=>{"use strict";Object.defineProperty(SG,"__esModule",{value:!0});SG.KoaInstrumentation=void 0;var th=(Me(),ke(Ze)),BN=Jt(),TWe=mG(),vWe=SWe(),RWe=EWe(),AWe=pr(),wWe=_We(),kne=class extends BN.InstrumentationBase{constructor(t={}){super(vWe.PACKAGE_NAME,vWe.PACKAGE_VERSION,t)}init(){return new BN.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return n==null?n:((0,BN.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,BN.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,RWe.getMiddlewareMetadata)(s,t,n,r),u=this.tracer.startSpan(c.name,{attributes:c.attributes}),l=(0,AWe.getRPCMetadata)(th.context.active());l?.type===AWe.RPCType.HTTP&&s._matchedRoute&&(l.route=s._matchedRoute.toString());let{requestHook:d}=this.getConfig();d&&(0,BN.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()}})})}};SG.KoaInstrumentation=kne});var IWe=w(hS=>{"use strict";Object.defineProperty(hS,"__esModule",{value:!0});hS.KoaLayerType=hS.AttributeNames=hS.KoaInstrumentation=void 0;var Wnn=kWe();Object.defineProperty(hS,"KoaInstrumentation",{enumerable:!0,get:function(){return Wnn.KoaInstrumentation}});var Knn=wne();Object.defineProperty(hS,"AttributeNames",{enumerable:!0,get:function(){return Knn.AttributeNames}});var Ynn=mG();Object.defineProperty(hS,"KoaLayerType",{enumerable:!0,get:function(){return Ynn.KoaLayerType}})});var xWe,OWe,PWe,Znn,NWe,CWe=v(()=>{xWe=Re(IWe(),1);Nn();st();sr();QE();OWe="Koa",PWe=rt(OWe,xWe.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()===Wl()){So&&Z.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let o=r[dm],a=n.context?.request?.method?.toUpperCase()||"GET";o&&vn().setTransactionName(`${a} ${o}`)}})),Znn=((e={})=>({name:OWe,setupOnce(){PWe(e)}})),NWe=Znn});var Ine=w(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});yf.ConnectNames=yf.ConnectTypes=yf.AttributeNames=void 0;var Jnn;(function(e){e.CONNECT_TYPE="connect.type",e.CONNECT_NAME="connect.name"})(Jnn=yf.AttributeNames||(yf.AttributeNames={}));var Xnn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(Xnn=yf.ConnectTypes||(yf.ConnectTypes={}));var Qnn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request handler"})(Qnn=yf.ConnectNames||(yf.ConnectNames={}))});var MWe=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-connect"});var DWe=w(bG=>{"use strict";Object.defineProperty(bG,"__esModule",{value:!0});bG._LAYERS_STORE_PROPERTY=void 0;bG._LAYERS_STORE_PROPERTY=Symbol("opentelemetry.instrumentation-connect.request-route-stack")});var LWe=w(gS=>{"use strict";Object.defineProperty(gS,"__esModule",{value:!0});gS.generateRoute=gS.replaceCurrentStackRoute=gS.addNewStackLayer=void 0;var $nn=(Me(),ke(Ze)),mS=DWe(),ern=e=>{Array.isArray(e[mS._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,mS._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),e[mS._LAYERS_STORE_PROPERTY].push("/");let t=e[mS._LAYERS_STORE_PROPERTY].length;return()=>{t===e[mS._LAYERS_STORE_PROPERTY].length?e[mS._LAYERS_STORE_PROPERTY].pop():$nn.diag.warn("Connect: Trying to pop the stack multiple time")}};gS.addNewStackLayer=ern;var trn=(e,t)=>{t&&e[mS._LAYERS_STORE_PROPERTY].splice(-1,1,t)};gS.replaceCurrentStackRoute=trn;var nrn=e=>e[mS._LAYERS_STORE_PROPERTY].reduce((t,n)=>t.replace(/\/+$/,"")+n);gS.generateRoute=nrn});var jWe=w(yS=>{"use strict";Object.defineProperty(yS,"__esModule",{value:!0});yS.ConnectInstrumentation=yS.ANONYMOUS_NAME=void 0;var rrn=(Me(),ke(Ze)),UWe=pr(),Aw=Ine(),FWe=MWe(),EG=Jt(),irn=(Nn(),ke(Mr)),xne=LWe();yS.ANONYMOUS_NAME="anonymous";var One=class extends EG.InstrumentationBase{constructor(t={}){super(FWe.PACKAGE_NAME,FWe.PACKAGE_VERSION,t)}init(){return[new EG.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],t=>this._patchConstructor(t))]}_patchApp(t){(0,EG.isWrapped)(t.use)||this._wrap(t,"use",this._patchUse.bind(this)),(0,EG.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=Aw.ConnectTypes.REQUEST_HANDLER,s=Aw.ConnectNames.REQUEST_HANDLER,i=t):(r=Aw.ConnectTypes.MIDDLEWARE,s=Aw.ConnectNames.MIDDLEWARE,i=n.name||yS.ANONYMOUS_NAME);let o=`${s} - ${i}`,a={attributes:{[irn.ATTR_HTTP_ROUTE]:t.length>0?t:"/",[Aw.AttributeNames.CONNECT_TYPE]:r,[Aw.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,xne.replaceCurrentStackRoute)(u,t);let f=(0,UWe.getRPCMetadata)(rrn.context.active());t&&f?.type===UWe.RPCType.HTTP&&(f.route=(0,xne.generateRoute)(u));let p="";t?p=`request handler - ${t}`:p=`middleware - ${n.name||yS.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,xne.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)}}};yS.ConnectInstrumentation=One});var qWe=w(cd=>{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.ConnectTypes=cd.ConnectNames=cd.AttributeNames=cd.ANONYMOUS_NAME=cd.ConnectInstrumentation=void 0;var HWe=jWe();Object.defineProperty(cd,"ConnectInstrumentation",{enumerable:!0,get:function(){return HWe.ConnectInstrumentation}});Object.defineProperty(cd,"ANONYMOUS_NAME",{enumerable:!0,get:function(){return HWe.ANONYMOUS_NAME}});var Pne=Ine();Object.defineProperty(cd,"AttributeNames",{enumerable:!0,get:function(){return Pne.AttributeNames}});Object.defineProperty(cd,"ConnectNames",{enumerable:!0,get:function(){return Pne.ConnectNames}});Object.defineProperty(cd,"ConnectTypes",{enumerable:!0,get:function(){return Pne.ConnectTypes}})});var BWe,zWe,GWe,srn,VWe,WWe=v(()=>{BWe=Re(qWe(),1);sr();zWe="Connect",GWe=rt(zWe,()=>new BWe.ConnectInstrumentation),srn=(()=>({name:zWe,setupOnce(){GWe()}})),VWe=srn});var KWe=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 YWe=w(ww=>{"use strict";Object.defineProperty(ww,"__esModule",{value:!0});ww.once=ww.getSpanName=void 0;function orn(e,t,n,r){return e==="execBulkLoad"&&r&&t?`${e} ${r} ${t}`:e==="callProcedure"?t?`${e} ${n} ${t}`:`${e} ${n}`:t?`${e} ${t}`:`${e}`}ww.getSpanName=orn;var arn=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};ww.once=arn});var ZWe=w(kw=>{"use strict";Object.defineProperty(kw,"__esModule",{value:!0});kw.PACKAGE_NAME=kw.PACKAGE_VERSION=void 0;kw.PACKAGE_VERSION="0.33.0";kw.PACKAGE_NAME="@opentelemetry/instrumentation-tedious"});var e4e=w(bS=>{"use strict";Object.defineProperty(bS,"__esModule",{value:!0});bS.TediousInstrumentation=bS.INJECTED_CTX=void 0;var Iw=(Me(),ke(Ze)),crn=Y("events"),nh=Jt(),l_=(Nn(),ke(Mr)),SS=KWe(),JWe=YWe(),XWe=ZWe(),$We=Symbol("opentelemetry.instrumentation-tedious.current-database");bS.INJECTED_CTX=Symbol("opentelemetry.instrumentation-tedious.context-info-injected");var QWe=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function _G(e){Object.defineProperty(this,$We,{value:e,writable:!0})}var Nne=class e extends nh.InstrumentationBase{static COMPONENT="tedious";_netSemconvStability;_dbSemconvStability;constructor(t={}){super(XWe.PACKAGE_NAME,XWe.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 QWe)(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 QWe)this._unwrap(n,r);this._unwrap(n,"connect")})]}_patchConnect(t){return function(){return _G.call(this,this.config?.options?.database),this.removeListener("databaseChange",_G),this.on("databaseChange",_G),this.once("end",()=>{this.removeListener("databaseChange",_G)}),t.apply(this,arguments)}}_buildTraceparent(t){let n=t.spanContext();return`00-${n.traceId}-${n.spanId}-0${Number(n.traceFlags||Iw.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,bS.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?.[bS.INJECTED_CTX])return r.apply(this,arguments);if(!(o instanceof crn.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[$We],f=(E=>E.sqlTextOrProcedure==="sp_prepare"&&E.parametersByName?.stmt?.value?E.parametersByName.stmt.value:E.sqlTextOrProcedure)(o),p={};i._dbSemconvStability&nh.SemconvStability.OLD&&(p[SS.ATTR_DB_SYSTEM]=SS.DB_SYSTEM_VALUE_MSSQL,p[SS.ATTR_DB_NAME]=d,p[SS.ATTR_DB_USER]=this.config?.userName??this.config?.authentication?.options?.userName,p[SS.ATTR_DB_STATEMENT]=f,p[SS.ATTR_DB_SQL_TABLE]=o.table),i._dbSemconvStability&nh.SemconvStability.STABLE&&(p[l_.ATTR_DB_NAMESPACE]=d,p[l_.ATTR_DB_SYSTEM_NAME]=l_.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER,p[l_.ATTR_DB_QUERY_TEXT]=f,p[l_.ATTR_DB_COLLECTION_NAME]=o.table),i._netSemconvStability&nh.SemconvStability.OLD&&(p[SS.ATTR_NET_PEER_NAME]=this.config?.server,p[SS.ATTR_NET_PEER_PORT]=this.config?.options?.port),i._netSemconvStability&nh.SemconvStability.STABLE&&(p[l_.ATTR_SERVER_ADDRESS]=this.config?.server,p[l_.ATTR_SERVER_PORT]=this.config?.options?.port);let h=i.tracer.startSpan((0,JWe.getSpanName)(t,d,f,o.table),{kind:Iw.SpanKind.CLIENT,attributes:p}),m=(0,JWe.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:Iw.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=()=>Iw.context.with(Iw.trace.setSpan(Iw.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)}}};bS.TediousInstrumentation=Nne});var t4e=w(TG=>{"use strict";Object.defineProperty(TG,"__esModule",{value:!0});TG.TediousInstrumentation=void 0;var urn=e4e();Object.defineProperty(TG,"TediousInstrumentation",{enumerable:!0,get:function(){return urn.TediousInstrumentation}})});var n4e,lrn,r4e,i4e,drn,s4e,o4e=v(()=>{n4e=Re(t4e(),1);st();sr();lrn=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),r4e="Tedious",i4e=rt(r4e,()=>new n4e.TediousInstrumentation({})),drn=(()=>{let e;return{name:r4e,setupOnce(){let t=i4e();e=vP(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]||"";lrn.has(s)&&n.setAttribute(At,"auto.db.otel.tedious")}))}}}),s4e=drn});var a4e=w(xw=>{"use strict";Object.defineProperty(xw,"__esModule",{value:!0});xw.PACKAGE_NAME=xw.PACKAGE_VERSION=void 0;xw.PACKAGE_VERSION="0.57.0";xw.PACKAGE_NAME="@opentelemetry/instrumentation-generic-pool"});var u4e=w(vG=>{"use strict";Object.defineProperty(vG,"__esModule",{value:!0});vG.GenericPoolInstrumentation=void 0;var Ow=(Me(),ke(Ze)),d_=Jt(),c4e=a4e(),Cne="generic-pool",Mne=class extends d_.InstrumentationBase{_isDisabled=!1;constructor(t={}){super(c4e.PACKAGE_NAME,c4e.PACKAGE_VERSION,t)}init(){return[new d_.InstrumentationNodeModuleDefinition(Cne,[">=3.0.0 <4"],t=>{let n=t.Pool;return(0,d_.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 d_.InstrumentationNodeModuleDefinition(Cne,[">=2.4.0 <3"],t=>{let n=t.Pool;return(0,d_.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 d_.InstrumentationNodeModuleDefinition(Cne,[">=2.0.0 <2.4"],t=>(this._isDisabled=!1,(0,d_.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=Ow.context.active(),o=n.tracer.startSpan("generic-pool.acquire",{},s);return Ow.context.with(Ow.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=Ow.context.active(),a=n.tracer.startSpan("generic-pool.acquire",{},o);return Ow.context.with(Ow.trace.setSpan(o,a),()=>{t.call(this,(c,u)=>{if(a.end(),i)return i(c,u)},s)})}}};vG.GenericPoolInstrumentation=Mne});var l4e=w(RG=>{"use strict";Object.defineProperty(RG,"__esModule",{value:!0});RG.GenericPoolInstrumentation=void 0;var frn=u4e();Object.defineProperty(RG,"GenericPoolInstrumentation",{enumerable:!0,get:function(){return frn.GenericPoolInstrumentation}})});var d4e,f4e,p4e,prn,h4e,m4e=v(()=>{d4e=Re(l4e(),1);st();sr();f4e="GenericPool",p4e=rt(f4e,()=>new d4e.GenericPoolInstrumentation({})),prn=(()=>{let e;return{name:f4e,setupOnce(){let t=p4e();e=vP(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")}))}}}),h4e=prn});var Dne=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 Lne=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 Une=w(f_=>{"use strict";Object.defineProperty(f_,"__esModule",{value:!0});f_.DEFAULT_CONFIG=f_.EndOperation=void 0;var hrn;(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"})(hrn=f_.EndOperation||(f_.EndOperation={}));f_.DEFAULT_CONFIG={consumeTimeoutMs:1e3*60,useLinksForConsume:!1}});var b4e=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 Fne=(Me(),ke(Ze)),ES=Jt(),AG=(Nn(),ke(Mr)),zN=Dne(),wG=Lne();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 jne=(0,Fne.createContextKey)("opentelemetry.amqplib.channel.is-confirm-channel"),mrn=e=>e!==""?e:"";ps.normalizeExchange=mrn;var grn=e=>e.replace(/:[^:@/]*@/,":***@"),g4e=(e,t)=>e||(t==="AMQP"?5672:5671),y4e=e=>{let t=e||"amqp";return(t.endsWith(":")?t.substring(0,t.length-1):t).toUpperCase()},S4e=e=>e||"localhost",ih=(e,t,n,r)=>n?{[t]:n}:(Fne.diag.error(`amqplib instrumentation: could not extract connection attribute ${r} from user supplied url`,{url:e}),{}),yrn=e=>{let t=e.serverProperties.product?.toLowerCase?.();return t?{[zN.ATTR_MESSAGING_SYSTEM]:t}:{}};ps.getConnectionAttributesFromServer=yrn;var Srn=(e,t)=>{let n={[wG.ATTR_MESSAGING_PROTOCOL_VERSION]:"0.9.1"};if(e=e||"amqp://localhost",typeof e=="object"){let r=e,i=y4e(r?.protocol);Object.assign(n,{...ih(e,wG.ATTR_MESSAGING_PROTOCOL,i,"protocol")});let s=S4e(r?.hostname);t&ES.SemconvStability.OLD&&Object.assign(n,{...ih(e,zN.ATTR_NET_PEER_NAME,s,"hostname")}),t&ES.SemconvStability.STABLE&&Object.assign(n,{...ih(e,AG.ATTR_SERVER_ADDRESS,s,"hostname")});let o=g4e(r.port,i);t&ES.SemconvStability.OLD&&Object.assign(n,ih(e,zN.ATTR_NET_PEER_PORT,o,"port")),t&ES.SemconvStability.STABLE&&Object.assign(n,ih(e,AG.ATTR_SERVER_PORT,o,"port"))}else{let r=grn(e);n[wG.ATTR_MESSAGING_URL]=r;try{let i=new URL(r),s=y4e(i.protocol);Object.assign(n,{...ih(r,wG.ATTR_MESSAGING_PROTOCOL,s,"protocol")});let o=S4e(i.hostname);t&ES.SemconvStability.OLD&&Object.assign(n,{...ih(r,zN.ATTR_NET_PEER_NAME,o,"hostname")}),t&ES.SemconvStability.STABLE&&Object.assign(n,{...ih(r,AG.ATTR_SERVER_ADDRESS,o,"hostname")});let a=g4e(i.port?parseInt(i.port):void 0,s);t&ES.SemconvStability.OLD&&Object.assign(n,ih(r,zN.ATTR_NET_PEER_PORT,a,"port")),t&ES.SemconvStability.STABLE&&Object.assign(n,ih(r,AG.ATTR_SERVER_PORT,a,"port"))}catch(i){Fne.diag.error("amqplib instrumentation: error while extracting connection details from connection url",{censoredUrl:r,err:i})}}return n};ps.getConnectionAttributesFromUrl=Srn;var brn=e=>e.setValue(jne,!0);ps.markConfirmChannelTracing=brn;var Ern=e=>e.deleteValue(jne);ps.unmarkConfirmChannelTracing=Ern;var _rn=e=>e.getValue(jne)===!0;ps.isConfirmChannelTracing=_rn});var E4e=w(Pw=>{"use strict";Object.defineProperty(Pw,"__esModule",{value:!0});Pw.PACKAGE_NAME=Pw.PACKAGE_VERSION=void 0;Pw.PACKAGE_VERSION="0.61.0";Pw.PACKAGE_NAME="@opentelemetry/instrumentation-amqplib"});var T4e=w(xG=>{"use strict";Object.defineProperty(xG,"__esModule",{value:!0});xG.AmqplibInstrumentation=void 0;var Zi=(Me(),ke(Ze)),kG=pr(),hr=Jt(),Trn=Dne(),yl=Lne(),Hc=Une(),hs=b4e(),_4e=E4e(),IG=[">=0.5.5 <1"],Hne=class extends hr.InstrumentationBase{_netSemconvStability;constructor(t={}){super(_4e.PACKAGE_NAME,_4e.PACKAGE_VERSION,{...Hc.DEFAULT_CONFIG,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,hr.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...Hc.DEFAULT_CONFIG,...t})}init(){let t=new hr.InstrumentationNodeModuleFile("amqplib/lib/channel_model.js",IG,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),n=new hr.InstrumentationNodeModuleFile("amqplib/lib/callback_model.js",IG,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),r=new hr.InstrumentationNodeModuleFile("amqplib/lib/connect.js",IG,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new hr.InstrumentationNodeModuleDefinition("amqplib",IG,void 0,void 0,[t,r,n])}patchConnect(t){return t=this.unpatchConnect(t),(0,hr.isWrapped)(t.connect)||this._wrap(t,"connect",this.getConnectPatch.bind(this)),t}unpatchConnect(t){return(0,hr.isWrapped)(t.connect)&&this._unwrap(t,"connect"),t}patchChannelModel(t,n){return(0,hr.isWrapped)(t.Channel.prototype.publish)||this._wrap(t.Channel.prototype,"publish",this.getPublishPatch.bind(this,n)),(0,hr.isWrapped)(t.Channel.prototype.consume)||this._wrap(t.Channel.prototype,"consume",this.getConsumePatch.bind(this,n)),(0,hr.isWrapped)(t.Channel.prototype.ack)||this._wrap(t.Channel.prototype,"ack",this.getAckPatch.bind(this,!1,Hc.EndOperation.Ack)),(0,hr.isWrapped)(t.Channel.prototype.nack)||this._wrap(t.Channel.prototype,"nack",this.getAckPatch.bind(this,!0,Hc.EndOperation.Nack)),(0,hr.isWrapped)(t.Channel.prototype.reject)||this._wrap(t.Channel.prototype,"reject",this.getAckPatch.bind(this,!0,Hc.EndOperation.Reject)),(0,hr.isWrapped)(t.Channel.prototype.ackAll)||this._wrap(t.Channel.prototype,"ackAll",this.getAckAllPatch.bind(this,!1,Hc.EndOperation.AckAll)),(0,hr.isWrapped)(t.Channel.prototype.nackAll)||this._wrap(t.Channel.prototype,"nackAll",this.getAckAllPatch.bind(this,!0,Hc.EndOperation.NackAll)),(0,hr.isWrapped)(t.Channel.prototype.emit)||this._wrap(t.Channel.prototype,"emit",this.getChannelEmitPatch.bind(this)),(0,hr.isWrapped)(t.ConfirmChannel.prototype.publish)||this._wrap(t.ConfirmChannel.prototype,"publish",this.getConfirmedPublishPatch.bind(this,n)),t}unpatchChannelModel(t){return(0,hr.isWrapped)(t.Channel.prototype.publish)&&this._unwrap(t.Channel.prototype,"publish"),(0,hr.isWrapped)(t.Channel.prototype.consume)&&this._unwrap(t.Channel.prototype,"consume"),(0,hr.isWrapped)(t.Channel.prototype.ack)&&this._unwrap(t.Channel.prototype,"ack"),(0,hr.isWrapped)(t.Channel.prototype.nack)&&this._unwrap(t.Channel.prototype,"nack"),(0,hr.isWrapped)(t.Channel.prototype.reject)&&this._unwrap(t.Channel.prototype,"reject"),(0,hr.isWrapped)(t.Channel.prototype.ackAll)&&this._unwrap(t.Channel.prototype,"ackAll"),(0,hr.isWrapped)(t.Channel.prototype.nackAll)&&this._unwrap(t.Channel.prototype,"nackAll"),(0,hr.isWrapped)(t.Channel.prototype.emit)&&this._unwrap(t.Channel.prototype,"emit"),(0,hr.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,[Trn.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,hr.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,kG.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,hr.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,hr.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,hr.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,hr.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,kG.hrTime)(),r=t[hs.CHANNEL_SPANS_NOT_ENDED]??[],i,{consumeTimeoutMs:s}=this.getConfig();for(i=0;i{"use strict";Object.defineProperty(_S,"__esModule",{value:!0});_S.EndOperation=_S.DEFAULT_CONFIG=_S.AmqplibInstrumentation=void 0;var vrn=T4e();Object.defineProperty(_S,"AmqplibInstrumentation",{enumerable:!0,get:function(){return vrn.AmqplibInstrumentation}});var v4e=Une();Object.defineProperty(_S,"DEFAULT_CONFIG",{enumerable:!0,get:function(){return v4e.DEFAULT_CONFIG}});Object.defineProperty(_S,"EndOperation",{enumerable:!0,get:function(){return v4e.EndOperation}})});var A4e,w4e,Rrn,k4e,Arn,I4e,x4e=v(()=>{A4e=Re(R4e(),1);sr();w4e="Amqplib",Rrn={consumeEndHook:e=>{Dr(e,"auto.amqplib.otel.consumer")},publishHook:e=>{Dr(e,"auto.amqplib.otel.publisher")}},k4e=rt(w4e,()=>new A4e.AmqplibInstrumentation(Rrn)),Arn=(()=>({name:w4e,setupOnce(){k4e()}})),I4e=Arn});var GN,qne=v(()=>{GN="VercelAI"});function krn(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 Irn(e){if(typeof e!="object"||e===null||!("content"in e))return;let t=e;Array.isArray(t.content)&&(xrn(t.content),Orn(t.content))}function xrn(e){for(let t of e){if(!krn(t))continue;let n=wQ(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 Orn(e){for(let t of e)typeof t=="object"&&t!==null&&"toolCallId"in t&&typeof t.toolCallId=="string"&&kQ(t.toolCallId)}function Prn(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 PG,wrn,O4e,OG,P4e=v(()=>{PG=Re(Jt(),1);st();qne();wrn=[">=3.0.0 <7"],O4e=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];OG=class e extends PG.InstrumentationBase{__init(){this._isPatched=!1}__init2(){this._callbacks=[]}constructor(t={}){super("@sentry/instrumentation-vercel-ai",Cn,t),e.prototype.__init.call(this),e.prototype.__init2.call(this)}init(){return new PG.InstrumentationNodeModuleDefinition("ai",wrn,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(GN),d=l?.options,f=l?!!u?.getOptions().sendDefaultPii:!1,{recordInputs:p,recordOutputs:h}=Prn(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",Yl())},()=>{},m=>{Irn(m)})}});if(Object.prototype.toString.call(t)==="[object Module]"){for(let r of O4e)t[r]!=null&&(t[r]=n(t[r]));return t}else{let r=O4e.reduce((i,s)=>(t[s]!=null&&(i[s]=n(t[s])),i),{});return{...t,...r}}}}});function Nrn(e){return!!e.getIntegrationByName("Modules")?.getModules?.()?.ai}var N4e,Crn,C4e,M4e=v(()=>{st();sr();qne();P4e();N4e=rt(GN,()=>new OG({}));Crn=((e={})=>{let t;return{name:GN,options:e,setupOnce(){t=N4e()},afterAllSetup(n){e.force??Nrn(n)?UH(n):t?.callWhenPatched(()=>UH(n))}}}),C4e=Crn});var CG,Mrn,NG,D4e=v(()=>{CG=Re(Jt(),1);st();Mrn=[">=4.0.0 <7"],NG=class extends CG.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-openai",Cn,t)}init(){return new CG.InstrumentationNodeModuleDefinition("openai",Mrn,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(LE(Vy))return Reflect.construct(r,o);let a=Reflect.construct(r,o);return HH(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 L4e,Drn,U4e,F4e=v(()=>{st();sr();D4e();L4e=rt(Vy,e=>new NG(e)),Drn=((e={})=>({name:Vy,setupOnce(){L4e(e)}})),U4e=Drn});var DG,Lrn,MG,j4e=v(()=>{DG=Re(Jt(),1);st();Lrn=[">=0.19.2 <1.0.0"],MG=class extends DG.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-anthropic-ai",Cn,t)}init(){return new DG.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",Lrn,this._patch.bind(this))}_patch(t){let n=t.Anthropic,r=this.getConfig(),i=function(...s){if(LE(Wy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return qH(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 H4e,Urn,q4e,B4e=v(()=>{st();sr();j4e();H4e=rt(Wy,e=>new MG(e)),Urn=((e={})=>({name:Wy,options:e,setupOnce(){H4e(e)}})),q4e=Urn});var Nw,z4e,LG,G4e=v(()=>{Nw=Re(Jt(),1);st();z4e=[">=0.10.0 <2"],LG=class extends Nw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-google-genai",Cn,t)}init(){return new Nw.InstrumentationNodeModuleDefinition("@google/genai",z4e,n=>this._patch(n),n=>n,[new Nw.InstrumentationNodeModuleFile("@google/genai/dist/node/index.cjs",z4e,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(LE(Ky))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return BH(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 _P(t,"GoogleGenAI",i),t}}});var V4e,Frn,W4e,K4e=v(()=>{st();sr();G4e();V4e=rt(Ky,e=>new LG(e)),Frn=((e={})=>({name:Ky,setupOnce(){V4e(e)}})),W4e=Frn});function jrn(e,t){return e?Array.isArray(e)?e.includes(t)?e:[...e,t]:typeof e=="object"?[e,t]:e:[t]}function Hrn(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=jrn(c,t);return a.callbacks=u,Reflect.apply(r,i,s)}})}var TS,UG,FG,Y4e=v(()=>{TS=Re(Jt(),1);st();UG=[">=0.1.0 <2.0.0"];FG=class extends TS.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langchain",Cn,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 TS.InstrumentationNodeModuleDefinition(r,UG,this._patch.bind(this),i=>i,[new TS.InstrumentationNodeModuleFile(`${r}/dist/index.cjs`,UG,this._patch.bind(this),i=>i)]));return t.push(new TS.InstrumentationNodeModuleDefinition("langchain",UG,this._patch.bind(this),r=>r,[new TS.InstrumentationNodeModuleFile("langchain/dist/chat_models/universal.cjs",UG,this._patch.bind(this),r=>r)])),t}_patch(t){VX([Vy,Wy,Ky]);let n=WH(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]=Hrn(u,n))}}}});var Z4e,qrn,J4e,X4e=v(()=>{st();sr();Y4e();Z4e=rt(zH,e=>new FG(e)),qrn=((e={})=>({name:zH,setupOnce(){Z4e(e)}})),J4e=qrn});var Cw,Q4e,jG,$4e=v(()=>{Cw=Re(Jt(),1);st();Q4e=[">=0.0.0 <2.0.0"],jG=class extends Cw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langgraph",Cn,t)}init(){return new Cw.InstrumentationNodeModuleDefinition("@langchain/langgraph",Q4e,this._patch.bind(this),n=>n,[new Cw.InstrumentationNodeModuleFile("@langchain/langgraph/dist/index.cjs",Q4e,this._patch.bind(this),n=>n)])}_patch(t){return t.StateGraph&&typeof t.StateGraph=="function"&&YH(t.StateGraph.prototype,this.getConfig()),t}}});var eKe,Brn,tKe,nKe=v(()=>{st();sr();$4e();eKe=rt(KH,e=>new jG(e)),Brn=((e={})=>({name:KH,setupOnce(){eKe(e)}})),tKe=Brn});import*as iKe from"node:net";function sKe(e,t,n,r,i){let o=()=>{},a=i.firestoreSpanCreationHook;typeof a=="function"&&(o=l=>{(0,Um.safeExecuteInTheMiddle)(()=>a(l),d=>{d&&sl.error(d?.message)},!0)});let c=new Um.InstrumentationNodeModuleDefinition("@firebase/firestore",t,l=>rKe(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 Um.InstrumentationNodeModuleFile(l,t,d=>rKe(d,n,r,e,o),d=>oKe(d,r)));return c}function rKe(e,t,n,r,i){return oKe(e,n),t(e,"addDoc",zrn(r,i)),t(e,"getDocs",Vrn(r,i)),t(e,"setDoc",Wrn(r,i)),t(e,"deleteDoc",Grn(r,i)),e}function oKe(e,t){for(let n of["addDoc","getDocs","setDoc","deleteDoc"])(0,Um.isWrapped)(e[n])&&t(e,n);return e}function zrn(e,t){return function(r){return function(i,s){let o=qG(e,"addDoc",i);return t(o),HG(o,()=>r(i,s))}}}function Grn(e,t){return function(r){return function(i){let s=qG(e,"deleteDoc",i.parent||i);return t(s),HG(s,()=>r(i))}}}function Vrn(e,t){return function(r){return function(i){let s=qG(e,"getDocs",i);return t(s),HG(s,()=>r(i))}}}function Wrn(e,t){return function(r){return function(i,s,o){let a=qG(e,"setDoc",i.parent||i);return t(a),HG(a,()=>typeof o<"u"?r(i,s,o):r(i,s))}}}function HG(e,t){return Ve.with(jt.setSpan(Ve.active(),e),()=>(0,Um.safeExecuteInTheMiddle)(()=>t(),n=>{n&&e.recordException(n),e.end()},!0))}function qG(e,t,n){let r=e.startSpan(`${t} ${n.path}`,{kind:$r.CLIENT});return Yrn(r,n),r.setAttribute(yR,t),r}function Krn(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(iKe.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 Yrn(e,t){let n=t.firestore.app,r=n.options,s=(t.firestore.toJSON()||{}).settings||{},o={[E7]:t.path,[_7]:n.name,[SE]:"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}=Krn(s);a&&(o[x7]=a),c&&(o[O7]=c),e.setAttributes(o)}var Um,aKe=v(()=>{Me();Um=Re(Jt(),1);Nn()});function cKe(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,Fm.safeExecuteInTheMiddle)(()=>u(f,p),h=>{h&&sl.error(h?.message)},!0)}),typeof c=="function"&&(s=f=>{(0,Fm.safeExecuteInTheMiddle)(()=>c(f),p=>{p&&sl.error(p?.message)},!0)});let l=new Fm.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 Fm.InstrumentationNodeModuleFile(f,t,h=>Zrn(h,n,r,e,{requestHook:s,responseHook:o,errorHook:a},p),h=>uKe(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 Zrn(e,t,n,r,i,s){switch(uKe(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 uKe(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,Fm.isWrapped)(e[r])&&t(e,r);return e}var Fm,lKe=v(()=>{Me();Fm=Re(Jt(),1)});var fKe,dKe,Jrn,Xrn,BG,pKe=v(()=>{fKe=Re(Jt(),1);st();aKe();lKe();dKe={},Jrn=[">=3.0.0 <5"],Xrn=[">=6.0.0 <7"],BG=class extends fKe.InstrumentationBase{constructor(t=dKe){super("@sentry/instrumentation-firebase",Cn,t)}setConfig(t={}){super.setConfig({...dKe,...t})}init(){let t=[];return t.push(sKe(this.tracer,Jrn,this._wrap,this._unwrap,this.getConfig())),t.push(cKe(this.tracer,Xrn,this._wrap,this._unwrap,this.getConfig())),t}}});var hKe,Qrn,mKe,$rn,gKe,yKe=v(()=>{st();sr();pKe();hKe="Firebase",Qrn={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 tA(2e3))}}},mKe=rt(hKe,()=>new BG(Qrn)),$rn=(()=>({name:hKe,setupOnce(){mKe()}})),gKe=$rn});function SKe(){return[dqe(),WBe(),bze(),gWe(),oGe(),_Ge(),CGe(),VGe(),v2e(),G2e(),XVe(),dWe(),NWe(),VWe(),s4e(),h4e(),Lze(),I4e(),Kze(),J4e(),tKe(),C4e(),U4e(),q4e(),W4e(),Y2e(),gKe()]}var bKe=v(()=>{x4e();B4e();WWe();fqe();ZBe();yKe();m4e();K4e();_ze();fWe();yWe();Uze();CWe();X4e();nKe();Yze();aGe();TGe();MGe();WGe();F4e();V2e();Z2e();QVe();R2e();o4e();M4e()});function _Ke(e,t={}){e.getOptions().debug&&see();let[n,r]=ein(e,t);e.traceProvider=n,e.asyncLocalStorageLookup=r}function ein(e,t={}){let n=new EKe.BasicTracerProvider({sampler:new eB(e),resource:(0,zG.defaultResource)().merge((0,zG.resourceFromAttributes)({[P7]:"node",[b7]:"sentry",[N7]:Cn})),forceFlushTimeoutMillis:500,spanProcessors:[new $q({timeout:tin(e.getOptions().maxSpanWaitDuration)}),...t.spanProcessors||[]]});jt.setGlobalTracerProvider(n),Qd.setGlobalPropagator(new Qq);let r=new iee;return Ve.setGlobalContextManager(r),[n,r.getAsyncLocalStorageLookup()]}function tin(e){if(e!=null){if(e>Bne)return So&&Z.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${Bne}`),Bne;if(e<=0||Number.isNaN(e)){So&&Z.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return e}}var zG,EKe,Bne,TKe=v(()=>{Me();zG=Re(y$(),1),EKe=Re(z$(),1);Nn();st();sr();CA();QE();Bne=1e6});function vKe(){return uB().filter(t=>t.name!=="Http"&&t.name!=="NodeFetch").concat(qHe(),JHe())}function RKe(e){return[...vKe(),...Os(e)?SKe():[]]}function zne(e={}){return nin(e,RKe)}function nin(e={},t){UE(e,"node");let n=yee({...e,defaultIntegrations:e.defaultIntegrations??t(e)});return n&&!e.skipOpenTelemetrySetup&&(_Ke(n,{spanProcessors:e.openTelemetrySpanProcessors}),See()),n}var AKe=v(()=>{st();sr();BHe();XHe();bKe();TKe()});var wKe=v(()=>{AKe();st()});var CKe={};Ar(CKe,{_resetPluginRootForTests:()=>sin,features:()=>Go,observability:()=>Wne,resolvePluginRoot:()=>nn,review:()=>bf,stripWildcardAllowedOrigins:()=>Vne});import{existsSync as kKe}from"node:fs";import{dirname as IKe,join as xKe}from"node:path";import{fileURLToPath as iin}from"node:url";function NKe(e){if(!e.startsWith("HAIKU_")){let t=process.env[`HAIKU_${e}`];if(t!==void 0)return t}return process.env[e]}function Gne(e,t){let n=NKe(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 OKe(e,t){let n=NKe(e);return n===void 0||n===""?t:n}function sin(){Sf=null}function nn(){if(Sf!==null)return Sf;let e=process.env.CLAUDE_PLUGIN_ROOT;if(e)return Sf=e,Sf;let t=PKe(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=iin(import.meta.url),r=PKe(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 PKe(e){if(!e)return null;let t=IKe(e);for(let n=0;n<6;n++){if(kKe(xKe(t,"studios"))||kKe(xKe(t,".claude-plugin","plugin.json")))return t;let r=IKe(t);if(r===t)return null;t=r}return null}function Vne(){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,Wne,Ci=v(()=>{"use strict";Sf=null;Go={modelSelection:Gne("HAIKU_MODEL_SELECTION",!0),remoteReview:Gne("HAIKU_REMOTE_REVIEW",!1),telemetry:Gne("CLAUDE_CODE_ENABLE_TELEMETRY",!1)},bf={siteUrl:OKe("HAIKU_REVIEW_SITE_URL","https://haikumethod.ai"),allowedOrigins:OKe("HAIKU_REVIEW_ALLOWED_ORIGINS","").split(",").map(e=>e.trim()).filter(Boolean)};Wne={sentryDsn:""}});import{readFileSync as oin}from"node:fs";import{join as ain}from"node:path";function vS(){try{let e=nn();if(e)return JSON.parse(oin(ain(e,".claude-plugin","plugin.json"),"utf8")).version??"unknown"}catch{}return"unknown"}var ud,p_=v(()=>{"use strict";Ci();ud="10.1.0"});var DKe={};Ar(DKe,{flush:()=>Ef,isSentryConfigured:()=>Yne,reportError:()=>ms,reportFeedback:()=>Kne});function MKe(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){Mw&&Ja(r=>{MKe(r,n),Wt(e,{extra:t})})}function Kne(e,t,n,r){Mw&&Ja(i=>{MKe(i,t),i.setTag("feedback","true"),IH({message:e,email:n,name:r||"H\xB7AI\xB7K\xB7U User"})})}function Yne(){return Mw!==""}async function Ef(e=2e3){Mw&&await tA(e)}var Mw,sh=v(()=>{"use strict";wKe();Ci();p_();Mw=Wne.sentryDsn;Mw&&zne({dsn:Mw,release:`haiku-mcp@${ud}`,tracesSampleRate:0})});var UKe={};Ar(UKe,{maybeRebuildSpaForDev:()=>hin});import{execFileSync as cin}from"node:child_process";import{existsSync as VG,readdirSync as uin,statSync as LKe}from"node:fs";import{dirname as lin,join as GG,resolve as Zne}from"node:path";import{fileURLToPath as din}from"node:url";function fin(e){if(!VG(e))return 0;let t=0,n=[e];for(;n.length>0;){let r=n.pop(),i;try{i=uin(r)}catch{continue}for(let s of i){if(s==="node_modules"||s==="dist"||s==="__tests__")continue;let o=GG(r,s),a;try{a=LKe(o)}catch{continue}a.isDirectory()?n.push(o):a.isFile()&&a.mtimeMs>t&&(t=a.mtimeMs)}}return t}function pin(e){let t;try{t=lin(din(e))}catch{t=process.cwd()}let n=Zne(t,".."),r=Zne(n,".."),i=GG(r,"haiku-ui","src"),s=GG(n,"scripts","bundle-haiku-ui.mjs"),o=GG(n,"src","haiku-ui-html.ts");return!VG(i)||!VG(s)?null:{repoRoot:Zne(r,".."),uiSrcDir:i,bundledHtml:o,bundleScript:s}}function hin(e){if(process.env.HAIKU_DEV_SPA_AUTO_REBUILD==="0")return;let t=pin(e);if(!t)return;let n=fin(t.uiSrcDir),r=VG(t.bundledHtml)?LKe(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{cin("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 FKe=v(()=>{"use strict"});var jKe={};Ar(jKe,{askUserInstruction:()=>bin,getCapabilities:()=>Mi,getHarness:()=>gin,isClaudeCode:()=>oh,listHarnesses:()=>yin,mapModelTier:()=>Ein,setHarness:()=>min,skillReference:()=>WN,subagentInstruction:()=>Sin});function min(e){let t=e.toLowerCase().replace(/[\s_]/g,"-");t in VN?Dw=t:(console.error(`[haiku] Unknown harness "${e}" \u2014 falling back to claude-code. Known: ${Object.keys(VN).join(", ")}`),Dw="claude-code"),console.error(`[haiku] Harness: ${VN[Dw].displayName}`)}function gin(){return Dw}function Mi(){return VN[Dw]}function oh(){return Dw==="claude-code"}function yin(){return Object.keys(VN)}function Sin(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 WN(e){let t=Mi();return t.promptsAsSlashCommands?`/haiku:${e}`:t.mcpPrompts?`the \`haiku:${e}\` prompt`:`the haiku ${e} workflow`}function bin(){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 Ein(e){return Mi().modelTierMap[e]||e}var VN,Dw,_f=v(()=>{"use strict";VN={"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"}}},Dw="claude-code"});var Mn,Jne,Qe,ah,KN=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})(Mn||(Mn={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Jne||(Jne={}));Qe=Mn.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,_in,Eu,WG=v(()=>{KN();Ie=Mn.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"]),_in=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 Tin,jm,Xne=v(()=>{WG();KN();Tin=(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,Mn.jsonStringifyReplacer)}`;break;case Ie.unrecognized_keys:n=`Unrecognized key(s) in object: ${Mn.joinValues(e.keys,", ")}`;break;case Ie.invalid_union:n="Invalid input";break;case Ie.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Mn.joinValues(e.options)}`;break;case Ie.invalid_enum_value:n=`Invalid enum value. Expected ${Mn.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}"`:Mn.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,Mn.assertNever(e)}return{message:n}},jm=Tin});function vin(e){HKe=e}function Lw(){return HKe}var HKe,KG=v(()=>{Xne();HKe=jm});function We(e,t){let n=Lw(),r=YN({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===jm?void 0:jm].filter(i=>!!i)});e.common.issues.push(r)}var YN,Rin,ha,Mt,h_,nc,YG,ZG,RS,Uw,Qne=v(()=>{KG();Xne();YN=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}},Rin=[];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"}),h_=e=>({status:"dirty",value:e}),nc=e=>({status:"valid",value:e}),YG=e=>e.status==="aborted",ZG=e=>e.status==="dirty",RS=e=>e.status==="valid",Uw=e=>typeof Promise<"u"&&e instanceof Promise});var qKe=v(()=>{});var ut,BKe=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 WKe(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 qin(e){return new RegExp(`^${WKe(e)}$`)}function KKe(e){let t=`${VKe}T${WKe(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 Bin(e,t){return!!((t==="v4"||!t)&&Min.test(e)||(t==="v6"||!t)&&Lin.test(e))}function zin(e,t){if(!Oin.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 Gin(e,t){return!!((t==="v4"||!t)&&Din.test(e)||(t==="v6"||!t)&&Uin.test(e))}function Vin(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 Fw(e){if(e instanceof _u){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=ld.create(Fw(r))}return new _u({...e._def,shape:()=>t})}else return e instanceof Bm?new Bm({...e._def,type:Fw(e.element)}):e instanceof ld?ld.create(Fw(e.unwrap())):e instanceof uh?uh.create(Fw(e.unwrap())):e instanceof ch?ch.create(e.items.map(t=>Fw(t))):e}function ere(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=Mn.objectKeys(t),s=Mn.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of s){let c=ere(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=GKe(t,r),c=a.fatal??n??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!s){let o=GKe(t,r),a=o.fatal??n??!0;i.addIssue({code:"custom",...o,fatal:a})}}):wS.create()}var dd,zKe,gn,Ain,win,kin,Iin,xin,Oin,Pin,Nin,Cin,$ne,Min,Din,Lin,Uin,Fin,jin,VKe,Hin,AS,m_,g_,y_,S_,jw,b_,E_,wS,qm,Tf,Hw,Bm,_u,__,Hm,JG,T_,ch,XG,qw,Bw,QG,v_,R_,A_,w_,kS,fd,ld,uh,k_,I_,zw,Win,ZN,JN,x_,Kin,Bt,Yin,JKe,XKe,Zin,Jin,QKe,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,Rsn,Asn,wsn,ksn,Isn,xsn,Osn,$Ke=v(()=>{WG();KG();BKe();Qne();KN();dd=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}},zKe=(e,t)=>{if(RS(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}}};gn=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(Uw(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 zKe(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 RS(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=>RS(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(Uw(i)?i:Promise.resolve(i));return zKe(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 fd({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 ld.create(this,this._def)}nullable(){return uh.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Bm.create(this)}promise(){return kS.create(this,this._def)}or(t){return __.create([this,t],this._def)}and(t){return T_.create(this,t,this._def)}transform(t){return new fd({...un(this._def),schema:this,typeName:Bt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new k_({...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 I_({...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 JN.create(this,t)}readonly(){return x_.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Ain=/^c[^\s-]{8,}$/i,win=/^[0-9a-z]+$/,kin=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Iin=/^[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,xin=/^[a-z0-9_-]{21}$/i,Oin=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Pin=/^[-+]?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)?)??$/,Nin=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Cin="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Min=/^(?:(?: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])$/,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])\/(3[0-2]|[12]?[0-9])$/,Lin=/^(([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]))$/,Uin=/^(([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])$/,Fin=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,jin=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,VKe="((\\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])))",Hin=new RegExp(`^${VKe}$`);AS=class e extends gn{_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 AS({checks:[],typeName:Bt.ZodString,coerce:e?.coerce??!1,...un(e)});m_=class e extends gn{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"?Mn.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"?Vin(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()):Mn.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"&&Mn.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 m_({checks:[],typeName:Bt.ZodNumber,coerce:e?.coerce||!1,...un(e)});g_=class e extends gn{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()):Mn.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 g_({checks:[],typeName:Bt.ZodBigInt,coerce:e?.coerce??!1,...un(e)});y_=class extends gn{_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)}};y_.create=e=>new y_({typeName:Bt.ZodBoolean,coerce:e?.coerce||!1,...un(e)});S_=class e extends gn{_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()):Mn.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 S_({checks:[],coerce:e?.coerce||!1,typeName:Bt.ZodDate,...un(e)});jw=class extends gn{_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)}};jw.create=e=>new jw({typeName:Bt.ZodSymbol,...un(e)});b_=class extends gn{_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)}};b_.create=e=>new b_({typeName:Bt.ZodUndefined,...un(e)});E_=class extends gn{_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)}};E_.create=e=>new E_({typeName:Bt.ZodNull,...un(e)});wS=class extends gn{constructor(){super(...arguments),this._any=!0}_parse(t){return nc(t.data)}};wS.create=e=>new wS({typeName:Bt.ZodAny,...un(e)});qm=class extends gn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return nc(t.data)}};qm.create=e=>new qm({typeName:Bt.ZodUnknown,...un(e)});Tf=class extends gn{_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)});Hw=class extends gn{_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)}};Hw.create=e=>new Hw({typeName:Bt.ZodVoid,...un(e)});Bm=class e extends gn{_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 dd(n,o,n.path,a)))).then(o=>ha.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new dd(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)}};Bm.create=(e,t)=>new Bm({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Bt.ZodArray,...un(t)});_u=class e extends gn{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=Mn.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 dd(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 dd(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 Mn.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 Mn.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Fw(this)}partial(t){let n={};for(let r of Mn.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 Mn.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof ld;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return YKe(Mn.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)});__=class extends gn{_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}};__.create=(e,t)=>new __({options:e,typeName:Bt.ZodUnion,...un(t)});Hm=e=>e instanceof v_?Hm(e.schema):e instanceof fd?Hm(e.innerType()):e instanceof R_?[e.value]:e instanceof A_?e.options:e instanceof w_?Mn.objectValues(e.enum):e instanceof k_?Hm(e._def.innerType):e instanceof b_?[void 0]:e instanceof E_?[null]:e instanceof ld?[void 0,...Hm(e.unwrap())]:e instanceof uh?[null,...Hm(e.unwrap())]:e instanceof ZN||e instanceof x_?Hm(e.unwrap()):e instanceof I_?Hm(e._def.innerType):[],JG=class e extends gn{_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=Hm(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)})}};T_=class extends gn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(YG(s)||YG(o))return Mt;let a=ere(s.value,o.value);return a.valid?((ZG(s)||ZG(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}))}};T_.create=(e,t,n)=>new T_({left:e,right:t,typeName:Bt.ZodIntersection,...un(n)});ch=class e extends gn{_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 dd(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)})};XG=class e extends gn{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 dd(r,a,r.path,a)),value:o._parse(new dd(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 gn?new e({keyType:t,valueType:n,typeName:Bt.ZodRecord,...un(r)}):new e({keyType:AS.create(),valueType:t,typeName:Bt.ZodRecord,...un(n)})}},qw=class extends gn{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 dd(r,a,r.path,[u,"key"])),value:s._parse(new dd(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}}}};qw.create=(e,t,n)=>new qw({valueType:t,keyType:e,typeName:Bt.ZodMap,...un(n)});Bw=class e extends gn{_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 dd(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)}};Bw.create=(e,t)=>new Bw({valueType:e,minSize:null,maxSize:null,typeName:Bt.ZodSet,...un(t)});QG=class e extends gn{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 YN({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Lw(),jm].filter(u=>!!u),issueData:{code:Ie.invalid_arguments,argumentsError:c}})}function i(a,c){return YN({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Lw(),jm].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 kS){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(qm.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(qm.create()),returns:n||qm.create(),typeName:Bt.ZodFunction,...un(r)})}},v_=class extends gn{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})}};v_.create=(e,t)=>new v_({getter:e,typeName:Bt.ZodLazy,...un(t)});R_=class extends gn{_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}};R_.create=(e,t)=>new R_({value:e,typeName:Bt.ZodLiteral,...un(t)});A_=class e extends gn{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return We(n,{expected:Mn.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})}};A_.create=YKe;w_=class extends gn{_parse(t){let n=Mn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==Qe.string&&r.parsedType!==Qe.number){let i=Mn.objectValues(n);return We(r,{expected:Mn.joinValues(i),received:r.parsedType,code:Ie.invalid_type}),Mt}if(this._cache||(this._cache=new Set(Mn.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=Mn.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}};w_.create=(e,t)=>new w_({values:e,typeName:Bt.ZodNativeEnum,...un(t)});kS=class extends gn{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})))}};kS.create=(e,t)=>new kS({type:e,typeName:Bt.ZodPromise,...un(t)});fd=class extends gn{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"?h_(c.value):n.value==="dirty"?h_(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"?h_(a.value):n.value==="dirty"?h_(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(!RS(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=>RS(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:n.value,value:a})):Mt);Mn.assertNever(i)}};fd.create=(e,t,n)=>new fd({schema:e,typeName:Bt.ZodEffects,effect:t,...un(n)});fd.createWithPreprocess=(e,t,n)=>new fd({schema:t,effect:{type:"preprocess",transform:e},typeName:Bt.ZodEffects,...un(n)});ld=class extends gn{_parse(t){return this._getType(t)===Qe.undefined?nc(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ld.create=(e,t)=>new ld({innerType:e,typeName:Bt.ZodOptional,...un(t)});uh=class extends gn{_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)});k_=class extends gn{_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}};k_.create=(e,t)=>new k_({innerType:e,typeName:Bt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...un(t)});I_=class extends gn{_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 Uw(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}};I_.create=(e,t)=>new I_({innerType:e,typeName:Bt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...un(t)});zw=class extends gn{_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}}};zw.create=e=>new zw({typeName:Bt.ZodNaN,...un(e)});Win=Symbol("zod_brand"),ZN=class extends gn{_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}},JN=class e extends gn{_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(),h_(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})}},x_=class extends gn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(RS(i)&&(i.value=Object.freeze(i.value)),i);return Uw(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};x_.create=(e,t)=>new x_({innerType:e,typeName:Bt.ZodReadonly,...un(t)});Kin={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={}));Yin=(e,t={message:`Input not instance of ${e.name}`})=>ZKe(n=>n instanceof e,t),JKe=AS.create,XKe=m_.create,Zin=zw.create,Jin=g_.create,QKe=y_.create,Xin=S_.create,Qin=jw.create,$in=b_.create,esn=E_.create,tsn=wS.create,nsn=qm.create,rsn=Tf.create,isn=Hw.create,ssn=Bm.create,osn=_u.create,asn=_u.strictCreate,csn=__.create,usn=JG.create,lsn=T_.create,dsn=ch.create,fsn=XG.create,psn=qw.create,hsn=Bw.create,msn=QG.create,gsn=v_.create,ysn=R_.create,Ssn=A_.create,bsn=w_.create,Esn=kS.create,_sn=fd.create,Tsn=ld.create,vsn=uh.create,Rsn=fd.createWithPreprocess,Asn=JN.create,wsn=()=>JKe().optional(),ksn=()=>XKe().optional(),Isn=()=>QKe().optional(),xsn={string:(e=>AS.create({...e,coerce:!0})),number:(e=>m_.create({...e,coerce:!0})),boolean:(e=>y_.create({...e,coerce:!0})),bigint:(e=>g_.create({...e,coerce:!0})),date:(e=>S_.create({...e,coerce:!0}))},Osn=Mt});var O={};Ar(O,{BRAND:()=>Win,DIRTY:()=>h_,EMPTY_PATH:()=>Rin,INVALID:()=>Mt,NEVER:()=>Osn,OK:()=>nc,ParseStatus:()=>ha,Schema:()=>gn,ZodAny:()=>wS,ZodArray:()=>Bm,ZodBigInt:()=>g_,ZodBoolean:()=>y_,ZodBranded:()=>ZN,ZodCatch:()=>I_,ZodDate:()=>S_,ZodDefault:()=>k_,ZodDiscriminatedUnion:()=>JG,ZodEffects:()=>fd,ZodEnum:()=>A_,ZodError:()=>Eu,ZodFirstPartyTypeKind:()=>Bt,ZodFunction:()=>QG,ZodIntersection:()=>T_,ZodIssueCode:()=>Ie,ZodLazy:()=>v_,ZodLiteral:()=>R_,ZodMap:()=>qw,ZodNaN:()=>zw,ZodNativeEnum:()=>w_,ZodNever:()=>Tf,ZodNull:()=>E_,ZodNullable:()=>uh,ZodNumber:()=>m_,ZodObject:()=>_u,ZodOptional:()=>ld,ZodParsedType:()=>Qe,ZodPipeline:()=>JN,ZodPromise:()=>kS,ZodReadonly:()=>x_,ZodRecord:()=>XG,ZodSchema:()=>gn,ZodSet:()=>Bw,ZodString:()=>AS,ZodSymbol:()=>jw,ZodTransformer:()=>fd,ZodTuple:()=>ch,ZodType:()=>gn,ZodUndefined:()=>b_,ZodUnion:()=>__,ZodUnknown:()=>qm,ZodVoid:()=>Hw,addIssueToContext:()=>We,any:()=>tsn,array:()=>ssn,bigint:()=>Jin,boolean:()=>QKe,coerce:()=>xsn,custom:()=>ZKe,date:()=>Xin,datetimeRegex:()=>KKe,defaultErrorMap:()=>jm,discriminatedUnion:()=>usn,effect:()=>_sn,enum:()=>Ssn,function:()=>msn,getErrorMap:()=>Lw,getParsedType:()=>ah,instanceof:()=>Yin,intersection:()=>lsn,isAborted:()=>YG,isAsync:()=>Uw,isDirty:()=>ZG,isValid:()=>RS,late:()=>Kin,lazy:()=>gsn,literal:()=>ysn,makeIssue:()=>YN,map:()=>psn,nan:()=>Zin,nativeEnum:()=>bsn,never:()=>rsn,null:()=>esn,nullable:()=>vsn,number:()=>XKe,object:()=>osn,objectUtil:()=>Jne,oboolean:()=>Isn,onumber:()=>ksn,optional:()=>Tsn,ostring:()=>wsn,pipeline:()=>Asn,preprocess:()=>Rsn,promise:()=>Esn,quotelessJson:()=>_in,record:()=>fsn,set:()=>hsn,setErrorMap:()=>vin,strictObject:()=>asn,string:()=>JKe,symbol:()=>Qin,transformer:()=>_sn,tuple:()=>dsn,undefined:()=>$in,union:()=>csn,unknown:()=>nsn,util:()=>Mn,void:()=>isn});var tre=v(()=>{KG();Qne();qKe();KN();$Ke();WG()});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 pd(e){return e&&Object.assign($G,e),$G}var NHr,zm,$G,Gw=v(()=>{NHr=Object.freeze({status:"aborted"});zm=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},$G={}});var or={};Ar(or,{BIGINT_FORMAT_RANGES:()=>t3e,Class:()=>rre,NUMBER_FORMAT_RANGES:()=>dre,aborted:()=>P_,allowsEval:()=>cre,assert:()=>Dsn,assertEqual:()=>Psn,assertIs:()=>Csn,assertNever:()=>Msn,assertNotEqual:()=>Nsn,assignProp:()=>are,cached:()=>QN,captureStackTrace:()=>t2,cleanEnum:()=>Ysn,cleanRegex:()=>eC,clone:()=>lh,createTransparentProxy:()=>qsn,defineLazy:()=>ni,esc:()=>O_,escapeRegex:()=>IS,extend:()=>Gsn,finalizeIssue:()=>vf,floatSafeRemainder:()=>ore,getElementAtPath:()=>Lsn,getEnumValues:()=>ire,getLengthableOrigin:()=>tC,getParsedType:()=>Hsn,getSizableOrigin:()=>n3e,isObject:()=>Vw,isPlainObject:()=>Ww,issue:()=>fre,joinValues:()=>e2,jsonStringifyReplacer:()=>sre,merge:()=>Vsn,normalizeParams:()=>Dt,nullish:()=>$N,numKeys:()=>jsn,omit:()=>zsn,optionalKeys:()=>lre,partial:()=>Wsn,pick:()=>Bsn,prefixIssues:()=>dh,primitiveTypes:()=>e3e,promiseAllObject:()=>Usn,propertyKeyTypes:()=>ure,randomString:()=>Fsn,required:()=>Ksn,stringifyPrimitive:()=>n2,unwrapMessage:()=>XN});function Psn(e){return e}function Nsn(e){return e}function Csn(e){}function Msn(e){throw new Error}function Dsn(e){}function ire(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 e2(e,t="|"){return e.map(n=>n2(n)).join(t)}function sre(e,t){return typeof t=="bigint"?t.toString():t}function QN(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function $N(e){return e==null}function eC(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function ore(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 are(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Lsn(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function Usn(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 qsn(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 n2(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function lre(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Bsn(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 zsn(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 Gsn(e,t){if(!Ww(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 are(this,"shape",r),r},checks:[]};return lh(e,n)}function Vsn(e,t){return lh(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return are(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function Wsn(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 Ksn(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 P_(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function XN(e){return typeof e=="string"?e:e?.message}function vf(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=XN(e.inst?._zod.def?.error?.(e))??XN(t?.error?.(e))??XN(n.customError?.(e))??XN(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function n3e(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function tC(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function fre(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Ysn(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}var t2,cre,Hsn,ure,e3e,dre,t3e,rre,Gm=v(()=>{t2=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};cre=QN(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});Hsn=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}`)}},ure=new Set(["string","number","symbol"]),e3e=new Set(["string","number","bigint","boolean","symbol","undefined"]);dre={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]},t3e={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};rre=class{constructor(...t){}}});function i3e(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 s3e(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{Gw();Gm();r3e=(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,sre,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},r2=me("$ZodError",r3e),pre=me("$ZodError",r3e,{Parent:Error})});var o3e,a3e,mre,nC,gre,i2,yre=v(()=>{Gw();hre();Gm();o3e=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 zm;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>vf(c,s,pd())));throw t2(a,i?.callee),a}return o.value},a3e=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,pd())));throw t2(a,i?.callee),a}return o.value},mre=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 zm;return s.issues.length?{success:!1,error:new(e??r2)(s.issues.map(o=>vf(o,i,pd())))}:{success:!0,data:s.value}},nC=mre(pre),gre=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,pd())))}:{success:!0,data:s.value}},i2=gre(pre)});function y3e(){return new RegExp(Jsn,"u")}function k3e(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 I3e(e){return new RegExp(`^${k3e(e)}$`)}function x3e(e){let t=k3e({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(`^${A3e}T(?:${r})$`)}var c3e,u3e,l3e,d3e,f3e,p3e,h3e,m3e,Sre,g3e,Jsn,S3e,b3e,E3e,_3e,T3e,bre,v3e,R3e,A3e,w3e,O3e,P3e,N3e,C3e,M3e,D3e,L3e,s2=v(()=>{c3e=/^[cC][^\s-]{8,}$/,u3e=/^[0-9a-z]+$/,l3e=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,d3e=/^[0-9a-vA-V]{20}$/,f3e=/^[A-Za-z0-9]{27}$/,p3e=/^[a-zA-Z0-9_-]{21}$/,h3e=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,m3e=/^([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})$/,Sre=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)$/,g3e=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Jsn="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";S3e=/^(?:(?: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])$/,b3e=/^(([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})$/,E3e=/^((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])$/,_3e=/^(([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])$/,T3e=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,bre=/^[A-Za-z0-9_-]*$/,v3e=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,R3e=/^\+(?:[0-9]){6,14}[0-9]$/,A3e="(?:(?:\\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])))",w3e=new RegExp(`^${A3e}$`);O3e=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},P3e=/^\d+$/,N3e=/^-?\d+(?:\.\d+)?/i,C3e=/true|false/i,M3e=/null/i,D3e=/^[^A-Z]*$/,L3e=/^[^a-z]*$/});var rc,U3e,_re,Tre,F3e,j3e,H3e,q3e,B3e,rC,z3e,G3e,V3e,W3e,K3e,Y3e,Z3e,o2=v(()=>{Gw();s2();Gm();rc=me("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),U3e={number:"number",bigint:"bigint",object:"date"},_re=me("$ZodCheckLessThan",(e,t)=>{rc.init(e,t);let n=U3e[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=U3e[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})}}),F3e=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):ore(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})}}),j3e=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]=dre[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=P3e)}),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})}}),H3e=me("$ZodCheckMaxLength",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!$N(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=tC(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),q3e=me("$ZodCheckMinLength",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!$N(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=tC(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),B3e=me("$ZodCheckLengthEquals",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!$N(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=tC(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})}}),rC=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=()=>{})}),z3e=me("$ZodCheckRegex",(e,t)=>{rC.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})}}),G3e=me("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=D3e),rC.init(e,t)}),V3e=me("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=L3e),rC.init(e,t)}),W3e=me("$ZodCheckIncludes",(e,t)=>{rc.init(e,t);let n=IS(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})}}),K3e=me("$ZodCheckStartsWith",(e,t)=>{rc.init(e,t);let n=new RegExp(`^${IS(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})}}),Y3e=me("$ZodCheckEndsWith",(e,t)=>{rc.init(e,t);let n=new RegExp(`.*${IS(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})}}),Z3e=me("$ZodCheckOverwrite",(e,t)=>{rc.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}})});var a2,vre=v(()=>{a2=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 HKe,mre=v(()=>{HKe={major:4,minor:0,patch:0}});function m9e(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}function Msn(e){if(!lre.test(e))return!1;let t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return m9e(n)}function Lsn(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 qKe(e,t,n){e.issues.length&&t.issues.push(...lh(n,e.issues)),t.value[n]=e.value}function e2(e,t,n){e.issues.length&&t.issues.push(...lh(n,e.issues)),t.value[n]=e.value}function BKe(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 GKe(e,t,n,r){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(i=>i.issues.map(s=>_f(s,r,ld())))}),t}function gre(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=gre(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{Qz();Uw();hre();cre();Xz();Bm();mre();Bm();ri=me("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=HKe;let r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(let i of r)for(let s of i._zod.onattach)s(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(s,o,a)=>{let c=x_(s),u;for(let l of o){if(l._zod.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=x_(s,d)))});else{if(s.issues.length===d)continue;c||(c=x_(s,d))}}return u?u.then(()=>s):s};e._zod.run=(s,o)=>{let a=e._zod.parse(s,o);if(a instanceof Promise){if(o.async===!1)throw new qm;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=VP(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return Jz(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),t2=me("$ZodString",(e,t)=>{ri.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??EKe(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)=>{WP.init(e,t),t2.init(e,t)}),JKe=me("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=iKe),hi.init(e,t)}),XKe=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=ure(r))}else t.pattern??(t.pattern=ure());hi.init(e,t)}),QKe=me("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=sKe),hi.init(e,t)}),$Ke=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:fKe.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})}}}),e9e=me("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=oKe()),hi.init(e,t)}),t9e=me("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=nKe),hi.init(e,t)}),n9e=me("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=X4e),hi.init(e,t)}),r9e=me("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Q4e),hi.init(e,t)}),i9e=me("$ZodULID",(e,t)=>{t.pattern??(t.pattern=$4e),hi.init(e,t)}),s9e=me("$ZodXID",(e,t)=>{t.pattern??(t.pattern=eKe),hi.init(e,t)}),o9e=me("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=tKe),hi.init(e,t)}),a9e=me("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=SKe(t)),hi.init(e,t)}),c9e=me("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=mKe),hi.init(e,t)}),u9e=me("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=yKe(t)),hi.init(e,t)}),l9e=me("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=rKe),hi.init(e,t)}),d9e=me("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=aKe),hi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),f9e=me("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=cKe),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})}}}),p9e=me("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=uKe),hi.init(e,t)}),h9e=me("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=lKe),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})}}});g9e=me("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=dKe),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{m9e(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});y9e=me("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=lre),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{Msn(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),S9e=me("$ZodE164",(e,t)=>{t.pattern??(t.pattern=pKe),hi.init(e,t)});E9e=me("$ZodJWT",(e,t)=>{hi.init(e,t),e._zod.check=n=>{Lsn(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),yre=me("$ZodNumber",(e,t)=>{ri.init(e,t),e._zod.pattern=e._zod.bag.pattern??_Ke,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}}),b9e=me("$ZodNumber",(e,t)=>{IKe.init(e,t),yre.init(e,t)}),_9e=me("$ZodBoolean",(e,t)=>{ri.init(e,t),e._zod.pattern=TKe,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}}),T9e=me("$ZodNull",(e,t)=>{ri.init(e,t),e._zod.pattern=vKe,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}}),v9e=me("$ZodUnknown",(e,t)=>{ri.init(e,t),e._zod.parse=n=>n}),A9e=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)});R9e=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;oqKe(u,n,o))):qKe(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});w9e=me("$ZodObject",(e,t)=>{ri.init(e,t);let n=qP(()=>{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=tre(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 $z(["shape","payload","ctx"]),p=n.value,h=E=>{let S=I_(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=I_(E);f.write(` +`))}}});var X3e,Rre=v(()=>{X3e={major:4,minor:0,patch:0}});function w9e(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}function Xsn(e){if(!bre.test(e))return!1;let t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return w9e(n)}function Qsn(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 Q3e(e,t,n){e.issues.length&&t.issues.push(...dh(n,e.issues)),t.value[n]=e.value}function c2(e,t,n){e.issues.length&&t.issues.push(...dh(n,e.issues)),t.value[n]=e.value}function $3e(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 e9e(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,pd())))}),t}function Are(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(Ww(e)&&Ww(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=Are(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{o2();Gw();vre();yre();s2();Gm();Rre();Gm();ri=me("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=X3e;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=P_(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 zm;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=P_(s,d)))});else{if(s.issues.length===d)continue;c||(c=P_(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 zm;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=nC(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return i2(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),u2=me("$ZodString",(e,t)=>{ri.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??O3e(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)=>{rC.init(e,t),u2.init(e,t)}),a9e=me("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=m3e),hi.init(e,t)}),c9e=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=Sre(r))}else t.pattern??(t.pattern=Sre());hi.init(e,t)}),u9e=me("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=g3e),hi.init(e,t)}),l9e=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:v3e.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})}}}),d9e=me("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=y3e()),hi.init(e,t)}),f9e=me("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=p3e),hi.init(e,t)}),p9e=me("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=c3e),hi.init(e,t)}),h9e=me("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=u3e),hi.init(e,t)}),m9e=me("$ZodULID",(e,t)=>{t.pattern??(t.pattern=l3e),hi.init(e,t)}),g9e=me("$ZodXID",(e,t)=>{t.pattern??(t.pattern=d3e),hi.init(e,t)}),y9e=me("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=f3e),hi.init(e,t)}),S9e=me("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=x3e(t)),hi.init(e,t)}),b9e=me("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=w3e),hi.init(e,t)}),E9e=me("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=I3e(t)),hi.init(e,t)}),_9e=me("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=h3e),hi.init(e,t)}),T9e=me("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=S3e),hi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),v9e=me("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=b3e),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})}}}),R9e=me("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=E3e),hi.init(e,t)}),A9e=me("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=_3e),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})}}});k9e=me("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=T3e),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{w9e(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});I9e=me("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=bre),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{Xsn(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),x9e=me("$ZodE164",(e,t)=>{t.pattern??(t.pattern=R3e),hi.init(e,t)});O9e=me("$ZodJWT",(e,t)=>{hi.init(e,t),e._zod.check=n=>{Qsn(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),wre=me("$ZodNumber",(e,t)=>{ri.init(e,t),e._zod.pattern=e._zod.bag.pattern??N3e,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}}),P9e=me("$ZodNumber",(e,t)=>{j3e.init(e,t),wre.init(e,t)}),N9e=me("$ZodBoolean",(e,t)=>{ri.init(e,t),e._zod.pattern=C3e,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}}),C9e=me("$ZodNull",(e,t)=>{ri.init(e,t),e._zod.pattern=M3e,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}}),M9e=me("$ZodUnknown",(e,t)=>{ri.init(e,t),e._zod.parse=n=>n}),D9e=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)});L9e=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;oQ3e(u,n,o))):Q3e(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});U9e=me("$ZodObject",(e,t)=>{ri.init(e,t);let n=QN(()=>{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=lre(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 a2(["shape","payload","ctx"]),p=n.value,h=b=>{let S=O_(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=O_(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 ? [${I_(E)}, ...iss.path] : [${I_(E)}] - })));`),f.write(`newResult[${I_(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=!Vz.jitless,c=o&&$ne.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?BKe(R,d,b,p):e2(R,d,b))):A?BKe(T,d,b,p):e2(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(_=>e2(_,d,S))):e2(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}});Sre=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=>GP(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=>GKe(o,n,e,r)):GKe(s,n,e,r)}}),k9e=me("$ZodDiscriminatedUnion",(e,t)=>{Sre.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=qP(()=>{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)}}),I9e=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])=>zKe(n,c,u)):zKe(n,s,o)}});x9e=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=>_f(u,r,ld())),input:o,path:[o],inst:e}),n.value[a.value]=a.value;continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&n.issues.push(...lh(o,u.issues)),n.value[a.value]=u.value})):(c.issues.length&&n.issues.push(...lh(o,c.issues)),n.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),O9e=me("$ZodEnum",(e,t)=>{ri.init(e,t);let n=Yne(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>ere.has(typeof r)).map(r=>typeof r=="string"?wS(r):r.toString()).join("|")})$`),e._zod.parse=(r,i)=>{let s=r.value;return e._zod.values.has(s)||r.issues.push({code:"invalid_value",values:n,input:s,inst:e}),r}}),N9e=me("$ZodLiteral",(e,t)=>{ri.init(e,t),e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?wS(n):n?n.toString():String(n)).join("|")})$`),e._zod.parse=(n,r)=>{let i=n.value;return e._zod.values.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),P9e=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}}),C9e=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(`^(${GP(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)}),M9e=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(`^(${GP(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)}),L9e=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=>VKe(s,t)):VKe(i,t)}});D9e=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))}),U9e=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=>WKe(s,e)):WKe(i,e)}});F9e=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=>_f(o,r,ld()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(s=>_f(s,r,ld()))},input:n.value}),n.issues=[]),n)}}),j9e=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=>KKe(s,t,r)):KKe(i,t,r)}});H9e=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(ZKe):ZKe(i)}});q9e=me("$ZodCustom",(e,t)=>{nc.init(e,t),ri.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(s=>YKe(s,n,r,e));YKe(i,n,r,e)}})});function G9e(){return{localeError:Usn()}}var Dsn,Usn,z9e=v(()=>{Bm();Dsn=e=>{let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},Usn=()=>{let e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function t(r){return e[r]??null}let n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${Dsn(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${Zz(r.values[0])}`:`Invalid option: expected one of ${Wz(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":""}: ${Wz(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 n2=v(()=>{});function Fsn(){return new bre}var bre,KP,V9e=v(()=>{bre=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)}};KP=Fsn()});function W9e(e,t){return new e({type:"string",...Lt(t)})}function K9e(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Lt(t)})}function _re(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Lt(t)})}function Z9e(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Lt(t)})}function Y9e(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Lt(t)})}function J9e(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Lt(t)})}function X9e(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Lt(t)})}function Q9e(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Lt(t)})}function $9e(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Lt(t)})}function eZe(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Lt(t)})}function tZe(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Lt(t)})}function nZe(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Lt(t)})}function rZe(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Lt(t)})}function iZe(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Lt(t)})}function sZe(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Lt(t)})}function oZe(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Lt(t)})}function aZe(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Lt(t)})}function cZe(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Lt(t)})}function uZe(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Lt(t)})}function lZe(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Lt(t)})}function dZe(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Lt(t)})}function fZe(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Lt(t)})}function pZe(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Lt(t)})}function hZe(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Lt(t)})}function mZe(e,t){return new e({type:"string",format:"date",check:"string_format",...Lt(t)})}function gZe(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Lt(t)})}function yZe(e,t){return new e({type:"string",format:"duration",check:"string_format",...Lt(t)})}function SZe(e,t){return new e({type:"number",checks:[],...Lt(t)})}function EZe(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Lt(t)})}function bZe(e,t){return new e({type:"boolean",...Lt(t)})}function _Ze(e,t){return new e({type:"null",...Lt(t)})}function TZe(e){return new e({type:"unknown"})}function vZe(e,t){return new e({type:"never",...Lt(t)})}function r2(e,t){return new fre({check:"less_than",...Lt(t),value:e,inclusive:!1})}function ZP(e,t){return new fre({check:"less_than",...Lt(t),value:e,inclusive:!0})}function i2(e,t){return new pre({check:"greater_than",...Lt(t),value:e,inclusive:!1})}function YP(e,t){return new pre({check:"greater_than",...Lt(t),value:e,inclusive:!0})}function s2(e,t){return new kKe({check:"multiple_of",...Lt(t),value:e})}function o2(e,t){return new xKe({check:"max_length",...Lt(t),maximum:e})}function Hw(e,t){return new OKe({check:"min_length",...Lt(t),minimum:e})}function a2(e,t){return new NKe({check:"length_equals",...Lt(t),length:e})}function Tre(e,t){return new PKe({check:"string_format",format:"regex",...Lt(t),pattern:e})}function vre(e){return new CKe({check:"string_format",format:"lowercase",...Lt(e)})}function Are(e){return new MKe({check:"string_format",format:"uppercase",...Lt(e)})}function Rre(e,t){return new LKe({check:"string_format",format:"includes",...Lt(t),includes:e})}function wre(e,t){return new DKe({check:"string_format",format:"starts_with",...Lt(t),prefix:e})}function kre(e,t){return new UKe({check:"string_format",format:"ends_with",...Lt(t),suffix:e})}function O_(e){return new FKe({check:"overwrite",tx:e})}function Ire(e){return O_(t=>t.normalize(e))}function xre(){return O_(e=>e.trim())}function Ore(){return O_(e=>e.toLowerCase())}function Nre(){return O_(e=>e.toUpperCase())}function AZe(e,t,n){return new e({type:"array",element:t,...Lt(n)})}function RZe(e,t,n){let r=Lt(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function wZe(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Lt(n)})}var kZe=v(()=>{Qz();Bm()});var IZe=v(()=>{});var xZe=v(()=>{});var OZe=v(()=>{});var dd=v(()=>{Uw();cre();sre();B9e();Qz();mre();Bm();Xz();n2();V9e();hre();IZe();kZe();xZe();OZe()});var NZe=v(()=>{dd()});var PZe=v(()=>{});var CZe=v(()=>{});var MZe=v(()=>{});var LZe=v(()=>{});var DZe=v(()=>{dd();NZe();PZe();CZe();n2();MZe();LZe()});var UZe=v(()=>{DZe()});var FZe=v(()=>{UZe()});function Bw(e){return!!e._zod}function kS(e,t){return Bw(e)?VP(e,t):e.safeParse(t)}function c2(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 jZe(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 u2=v(()=>{FZe()});var Pre=v(()=>{dd()});var JP={};Rr(JP,{ZodISODate:()=>qZe,ZodISODateTime:()=>HZe,ZodISODuration:()=>GZe,ZodISOTime:()=>BZe,date:()=>Mre,datetime:()=>Cre,duration:()=>Dre,time:()=>Lre});function Cre(e){return hZe(HZe,e)}function Mre(e){return mZe(qZe,e)}function Lre(e){return gZe(BZe,e)}function Dre(e){return yZe(GZe,e)}var HZe,qZe,BZe,GZe,Ure=v(()=>{dd();Fre();HZe=me("ZodISODateTime",(e,t)=>{a9e.init(e,t),Li.init(e,t)});qZe=me("ZodISODate",(e,t)=>{c9e.init(e,t),Li.init(e,t)});BZe=me("ZodISOTime",(e,t)=>{u9e.init(e,t),Li.init(e,t)});GZe=me("ZodISODuration",(e,t)=>{l9e.init(e,t),Li.init(e,t)})});var zZe,XHr,XP,jre=v(()=>{dd();dd();zZe=(e,t)=>{Yz.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>Z4e(e,n)},flatten:{value:n=>K4e(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},XHr=me("ZodError",zZe),XP=me("ZodError",zZe,{Parent:Error})});var VZe,WZe,KZe,ZZe,Hre=v(()=>{dd();jre();VZe=Y4e(XP),WZe=J4e(XP),KZe=ore(XP),ZZe=are(XP)});function ce(e){return W9e(Ysn,e)}function vr(e){return SZe($Ze,e)}function JZe(e){return EZe(pon,e)}function Vo(e){return bZe(hon,e)}function eYe(e){return _Ze(mon,e)}function Di(){return TZe(gon)}function Son(e){return vZe(yon,e)}function Vn(e,t){return AZe(Eon,e,t)}function $e(e,t){let n={type:"object",get shape(){return or.assignProp(this,"shape",{...e}),this.shape},...or.normalizeParams(t)};return new tYe(n)}function qc(e,t){return new tYe({type:"object",get shape(){return or.assignProp(this,"shape",{...e}),this.shape},catchall:Di(),...or.normalizeParams(t)})}function mi(e,t){return new nYe({type:"union",options:e,...or.normalizeParams(t)})}function Gre(e,t,n){return new bon({type:"union",options:t,discriminator:e,...or.normalizeParams(n)})}function d2(e,t){return new _on({type:"intersection",left:e,right:t})}function ii(e,t,n){return new Ton({type:"record",keyType:e,valueType:t,...or.normalizeParams(n)})}function _u(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new qre({type:"enum",entries:n,...or.normalizeParams(t)})}function ft(e,t){return new von({type:"literal",values:Array.isArray(e)?e:[e],...or.normalizeParams(t)})}function rYe(e){return new Aon({type:"transform",transform:e})}function Ui(e){return new iYe({type:"optional",innerType:e})}function XZe(e){return new Ron({type:"nullable",innerType:e})}function kon(e,t){return new won({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function xon(e,t){return new Ion({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Oon(e,t){return new sYe({type:"nonoptional",innerType:e,...or.normalizeParams(t)})}function Pon(e,t){return new Non({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function Bre(e,t){return new Con({type:"pipe",in:e,out:t})}function Lon(e){return new Mon({type:"readonly",innerType:e})}function Don(e){let t=new nc({check:"custom"});return t._zod.check=e,t}function aYe(e,t){return RZe(oYe,e??(()=>!0),t)}function Uon(e,t={}){return wZe(oYe,e,t)}function Fon(e){let t=Don(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(or.issue(r,n.value,t._zod.def));else{let i=r;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=t),i.continue??(i.continue=!t._zod.def.abort),n.issues.push(or.issue(i))}},e(n.value,n)));return t}function zre(e,t){return Bre(rYe(e),t)}var Ji,QZe,Ysn,Li,Jsn,YZe,l2,Xsn,Qsn,$sn,eon,ton,non,ron,ion,son,oon,aon,con,uon,lon,don,fon,$Ze,pon,hon,mon,gon,yon,Eon,tYe,nYe,bon,_on,Ton,qre,von,Aon,iYe,Ron,won,Ion,sYe,Non,Con,Mon,oYe,Fre=v(()=>{dd();dd();Pre();Ure();Hre();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)=>VZe(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>KZe(e,n,r),e.parseAsync=async(n,r)=>WZe(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>ZZe(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(Uon(n,r)),e.superRefine=n=>e.check(Fon(n)),e.overwrite=n=>e.check(O_(n)),e.optional=()=>Ui(e),e.nullable=()=>XZe(e),e.nullish=()=>Ui(XZe(e)),e.nonoptional=n=>Oon(e,n),e.array=()=>Vn(e),e.or=n=>mi([e,n]),e.and=n=>d2(e,n),e.transform=n=>Bre(e,rYe(n)),e.default=n=>kon(e,n),e.prefault=n=>xon(e,n),e.catch=n=>Pon(e,n),e.pipe=n=>Bre(e,n),e.readonly=()=>Lon(e),e.describe=n=>{let r=e.clone();return KP.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return KP.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return KP.get(e);let r=e.clone();return KP.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),QZe=me("_ZodString",(e,t)=>{t2.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(Tre(...r)),e.includes=(...r)=>e.check(Rre(...r)),e.startsWith=(...r)=>e.check(wre(...r)),e.endsWith=(...r)=>e.check(kre(...r)),e.min=(...r)=>e.check(Hw(...r)),e.max=(...r)=>e.check(o2(...r)),e.length=(...r)=>e.check(a2(...r)),e.nonempty=(...r)=>e.check(Hw(1,...r)),e.lowercase=r=>e.check(vre(r)),e.uppercase=r=>e.check(Are(r)),e.trim=()=>e.check(xre()),e.normalize=(...r)=>e.check(Ire(...r)),e.toLowerCase=()=>e.check(Ore()),e.toUpperCase=()=>e.check(Nre())}),Ysn=me("ZodString",(e,t)=>{t2.init(e,t),QZe.init(e,t),e.email=n=>e.check(K9e(Jsn,n)),e.url=n=>e.check(Q9e(Xsn,n)),e.jwt=n=>e.check(pZe(fon,n)),e.emoji=n=>e.check($9e(Qsn,n)),e.guid=n=>e.check(_re(YZe,n)),e.uuid=n=>e.check(Z9e(l2,n)),e.uuidv4=n=>e.check(Y9e(l2,n)),e.uuidv6=n=>e.check(J9e(l2,n)),e.uuidv7=n=>e.check(X9e(l2,n)),e.nanoid=n=>e.check(eZe($sn,n)),e.guid=n=>e.check(_re(YZe,n)),e.cuid=n=>e.check(tZe(eon,n)),e.cuid2=n=>e.check(nZe(ton,n)),e.ulid=n=>e.check(rZe(non,n)),e.base64=n=>e.check(lZe(uon,n)),e.base64url=n=>e.check(dZe(lon,n)),e.xid=n=>e.check(iZe(ron,n)),e.ksuid=n=>e.check(sZe(ion,n)),e.ipv4=n=>e.check(oZe(son,n)),e.ipv6=n=>e.check(aZe(oon,n)),e.cidrv4=n=>e.check(cZe(aon,n)),e.cidrv6=n=>e.check(uZe(con,n)),e.e164=n=>e.check(fZe(don,n)),e.datetime=n=>e.check(Cre(n)),e.date=n=>e.check(Mre(n)),e.time=n=>e.check(Lre(n)),e.duration=n=>e.check(Dre(n))});Li=me("ZodStringFormat",(e,t)=>{hi.init(e,t),QZe.init(e,t)}),Jsn=me("ZodEmail",(e,t)=>{QKe.init(e,t),Li.init(e,t)}),YZe=me("ZodGUID",(e,t)=>{JKe.init(e,t),Li.init(e,t)}),l2=me("ZodUUID",(e,t)=>{XKe.init(e,t),Li.init(e,t)}),Xsn=me("ZodURL",(e,t)=>{$Ke.init(e,t),Li.init(e,t)}),Qsn=me("ZodEmoji",(e,t)=>{e9e.init(e,t),Li.init(e,t)}),$sn=me("ZodNanoID",(e,t)=>{t9e.init(e,t),Li.init(e,t)}),eon=me("ZodCUID",(e,t)=>{n9e.init(e,t),Li.init(e,t)}),ton=me("ZodCUID2",(e,t)=>{r9e.init(e,t),Li.init(e,t)}),non=me("ZodULID",(e,t)=>{i9e.init(e,t),Li.init(e,t)}),ron=me("ZodXID",(e,t)=>{s9e.init(e,t),Li.init(e,t)}),ion=me("ZodKSUID",(e,t)=>{o9e.init(e,t),Li.init(e,t)}),son=me("ZodIPv4",(e,t)=>{d9e.init(e,t),Li.init(e,t)}),oon=me("ZodIPv6",(e,t)=>{f9e.init(e,t),Li.init(e,t)}),aon=me("ZodCIDRv4",(e,t)=>{p9e.init(e,t),Li.init(e,t)}),con=me("ZodCIDRv6",(e,t)=>{h9e.init(e,t),Li.init(e,t)}),uon=me("ZodBase64",(e,t)=>{g9e.init(e,t),Li.init(e,t)}),lon=me("ZodBase64URL",(e,t)=>{y9e.init(e,t),Li.init(e,t)}),don=me("ZodE164",(e,t)=>{S9e.init(e,t),Li.init(e,t)}),fon=me("ZodJWT",(e,t)=>{E9e.init(e,t),Li.init(e,t)}),$Ze=me("ZodNumber",(e,t)=>{yre.init(e,t),Ji.init(e,t),e.gt=(r,i)=>e.check(i2(r,i)),e.gte=(r,i)=>e.check(YP(r,i)),e.min=(r,i)=>e.check(YP(r,i)),e.lt=(r,i)=>e.check(r2(r,i)),e.lte=(r,i)=>e.check(ZP(r,i)),e.max=(r,i)=>e.check(ZP(r,i)),e.int=r=>e.check(JZe(r)),e.safe=r=>e.check(JZe(r)),e.positive=r=>e.check(i2(0,r)),e.nonnegative=r=>e.check(YP(0,r)),e.negative=r=>e.check(r2(0,r)),e.nonpositive=r=>e.check(ZP(0,r)),e.multipleOf=(r,i)=>e.check(s2(r,i)),e.step=(r,i)=>e.check(s2(r,i)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});pon=me("ZodNumberFormat",(e,t)=>{b9e.init(e,t),$Ze.init(e,t)});hon=me("ZodBoolean",(e,t)=>{_9e.init(e,t),Ji.init(e,t)});mon=me("ZodNull",(e,t)=>{T9e.init(e,t),Ji.init(e,t)});gon=me("ZodUnknown",(e,t)=>{v9e.init(e,t),Ji.init(e,t)});yon=me("ZodNever",(e,t)=>{A9e.init(e,t),Ji.init(e,t)});Eon=me("ZodArray",(e,t)=>{R9e.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(o2(n,r)),e.length=(n,r)=>e.check(a2(n,r)),e.unwrap=()=>e.element});tYe=me("ZodObject",(e,t)=>{w9e.init(e,t),Ji.init(e,t),or.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>_u(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Di()}),e.loose=()=>e.clone({...e._zod.def,catchall:Di()}),e.strict=()=>e.clone({...e._zod.def,catchall:Son()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>or.extend(e,n),e.merge=n=>or.merge(e,n),e.pick=n=>or.pick(e,n),e.omit=n=>or.omit(e,n),e.partial=(...n)=>or.partial(iYe,e,n[0]),e.required=(...n)=>or.required(sYe,e,n[0])});nYe=me("ZodUnion",(e,t)=>{Sre.init(e,t),Ji.init(e,t),e.options=t.options});bon=me("ZodDiscriminatedUnion",(e,t)=>{nYe.init(e,t),k9e.init(e,t)});_on=me("ZodIntersection",(e,t)=>{I9e.init(e,t),Ji.init(e,t)});Ton=me("ZodRecord",(e,t)=>{x9e.init(e,t),Ji.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});qre=me("ZodEnum",(e,t)=>{O9e.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 qre({...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 qre({...t,checks:[],...or.normalizeParams(i),entries:s})}});von=me("ZodLiteral",(e,t)=>{N9e.init(e,t),Ji.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});Aon=me("ZodTransform",(e,t)=>{P9e.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)}});iYe=me("ZodOptional",(e,t)=>{C9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});Ron=me("ZodNullable",(e,t)=>{M9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});won=me("ZodDefault",(e,t)=>{L9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});Ion=me("ZodPrefault",(e,t)=>{D9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});sYe=me("ZodNonOptional",(e,t)=>{U9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});Non=me("ZodCatch",(e,t)=>{F9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});Con=me("ZodPipe",(e,t)=>{j9e.init(e,t),Ji.init(e,t),e.in=t.in,e.out=t.out});Mon=me("ZodReadonly",(e,t)=>{H9e.init(e,t),Ji.init(e,t)});oYe=me("ZodCustom",(e,t)=>{q9e.init(e,t),Ji.init(e,t)})});var cYe=v(()=>{});var uYe=v(()=>{});var lYe=v(()=>{dd();Fre();Pre();jre();Hre();cYe();dd();z9e();n2();Ure();uYe();ld(G9e())});var dYe=v(()=>{lYe()});var fYe=v(()=>{dYe()});var Wre,pYe,IS,p2,_o,hYe,mYe,Wqr,qon,Bon,Kre,yl,QP,gYe,ma,fd,pd,ga,h2,yYe,Zre,SYe,EYe,Yre,$P,yn,Jre,bYe,_Ye,Kqr,m2,Gon,g2,zon,eC,Gw,TYe,Von,Won,Kon,Zon,Yon,Jon,Xre,Xon,Qon,Qre,y2,$on,ean,S2,tan,tC,nC,nan,rC,zw,ran,iC,E2,b2,_2,Zqr,T2,v2,A2,vYe,AYe,RYe,$re,wYe,sC,Vw,kYe,ian,san,oan,aan,can,eie,uan,lan,dan,fan,pan,han,man,gan,yan,San,Ean,ban,tie,_an,Tan,nie,rie,iie,sie,van,Aan,Ran,oie,wan,kan,Ian,xan,Oan,IYe,aie,Nan,R2,Yqr,Pan,oC,Can,Jqr,aC,Man,cie,Lan,Dan,Uan,Fan,jan,Han,qan,f2,Ban,Gan,zan,cC,uie,Van,Wan,Kan,Zan,Yan,Jan,Xan,Qan,$an,ecn,tcn,ncn,rcn,icn,scn,ocn,acn,ccn,Ww,ucn,lcn,dcn,lie,fcn,pcn,hcn,die,mcn,Xqr,Qqr,$qr,eBr,tBr,nBr,rn,Vre,N_=v(()=>{fYe();Wre="2025-11-25",pYe=[Wre,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],IS="io.modelcontextprotocol/related-task",p2="2.0",_o=aYe(e=>e!==null&&(typeof e=="object"||typeof e=="function")),hYe=mi([ce(),vr().int()]),mYe=ce(),Wqr=qc({ttl:vr().optional(),pollInterval:vr().optional()}),qon=$e({ttl:vr().optional()}),Bon=$e({taskId:ce()}),Kre=qc({progressToken:hYe.optional(),[IS]:Bon.optional()}),yl=$e({_meta:Kre.optional()}),QP=yl.extend({task:qon.optional()}),gYe=e=>QP.safeParse(e).success,ma=$e({method:ce(),params:yl.loose().optional()}),fd=$e({_meta:Kre.optional()}),pd=$e({method:ce(),params:fd.loose().optional()}),ga=qc({_meta:Kre.optional()}),h2=mi([ce(),vr().int()]),yYe=$e({jsonrpc:ft(p2),id:h2,...ma.shape}).strict(),Zre=e=>yYe.safeParse(e).success,SYe=$e({jsonrpc:ft(p2),...pd.shape}).strict(),EYe=e=>SYe.safeParse(e).success,Yre=$e({jsonrpc:ft(p2),id:h2,result:ga}).strict(),$P=e=>Yre.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={}));Jre=$e({jsonrpc:ft(p2),id:h2.optional(),error:$e({code:vr().int(),message:ce(),data:Di().optional()})}).strict(),bYe=e=>Jre.safeParse(e).success,_Ye=mi([yYe,SYe,Yre,Jre]),Kqr=mi([Yre,Jre]),m2=ga.strict(),Gon=fd.extend({requestId:h2.optional(),reason:ce().optional()}),g2=pd.extend({method:ft("notifications/cancelled"),params:Gon}),zon=$e({src:ce(),mimeType:ce().optional(),sizes:Vn(ce()).optional(),theme:_u(["light","dark"]).optional()}),eC=$e({icons:Vn(zon).optional()}),Gw=$e({name:ce(),title:ce().optional()}),TYe=Gw.extend({...Gw.shape,...eC.shape,version:ce(),websiteUrl:ce().optional(),description:ce().optional()}),Von=d2($e({applyDefaults:Vo().optional()}),ii(ce(),Di())),Won=zre(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,d2($e({form:Von.optional(),url:_o.optional()}),ii(ce(),Di()).optional())),Kon=qc({list:_o.optional(),cancel:_o.optional(),requests:qc({sampling:qc({createMessage:_o.optional()}).optional(),elicitation:qc({create:_o.optional()}).optional()}).optional()}),Zon=qc({list:_o.optional(),cancel:_o.optional(),requests:qc({tools:qc({call:_o.optional()}).optional()}).optional()}),Yon=$e({experimental:ii(ce(),_o).optional(),sampling:$e({context:_o.optional(),tools:_o.optional()}).optional(),elicitation:Won.optional(),roots:$e({listChanged:Vo().optional()}).optional(),tasks:Kon.optional(),extensions:ii(ce(),_o).optional()}),Jon=yl.extend({protocolVersion:ce(),capabilities:Yon,clientInfo:TYe}),Xre=ma.extend({method:ft("initialize"),params:Jon}),Xon=$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:Zon.optional(),extensions:ii(ce(),_o).optional()}),Qon=ga.extend({protocolVersion:ce(),capabilities:Xon,serverInfo:TYe,instructions:ce().optional()}),Qre=pd.extend({method:ft("notifications/initialized"),params:fd.optional()}),y2=ma.extend({method:ft("ping"),params:yl.optional()}),$on=$e({progress:vr(),total:Ui(vr()),message:Ui(ce())}),ean=$e({...fd.shape,...$on.shape,progressToken:hYe}),S2=pd.extend({method:ft("notifications/progress"),params:ean}),tan=yl.extend({cursor:mYe.optional()}),tC=ma.extend({params:tan.optional()}),nC=ga.extend({nextCursor:mYe.optional()}),nan=_u(["working","input_required","completed","failed","cancelled"]),rC=$e({taskId:ce(),status:nan,ttl:mi([vr(),eYe()]),createdAt:ce(),lastUpdatedAt:ce(),pollInterval:Ui(vr()),statusMessage:Ui(ce())}),zw=ga.extend({task:rC}),ran=fd.merge(rC),iC=pd.extend({method:ft("notifications/tasks/status"),params:ran}),E2=ma.extend({method:ft("tasks/get"),params:yl.extend({taskId:ce()})}),b2=ga.merge(rC),_2=ma.extend({method:ft("tasks/result"),params:yl.extend({taskId:ce()})}),Zqr=ga.loose(),T2=tC.extend({method:ft("tasks/list")}),v2=nC.extend({tasks:Vn(rC)}),A2=ma.extend({method:ft("tasks/cancel"),params:yl.extend({taskId:ce()})}),vYe=ga.merge(rC),AYe=$e({uri:ce(),mimeType:Ui(ce()),_meta:ii(ce(),Di()).optional()}),RYe=AYe.extend({text:ce()}),$re=ce().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),wYe=AYe.extend({blob:$re}),sC=_u(["user","assistant"]),Vw=$e({audience:Vn(sC).optional(),priority:vr().min(0).max(1).optional(),lastModified:JP.datetime({offset:!0}).optional()}),kYe=$e({...Gw.shape,...eC.shape,uri:ce(),description:Ui(ce()),mimeType:Ui(ce()),size:Ui(vr()),annotations:Vw.optional(),_meta:Ui(qc({}))}),ian=$e({...Gw.shape,...eC.shape,uriTemplate:ce(),description:Ui(ce()),mimeType:Ui(ce()),annotations:Vw.optional(),_meta:Ui(qc({}))}),san=tC.extend({method:ft("resources/list")}),oan=nC.extend({resources:Vn(kYe)}),aan=tC.extend({method:ft("resources/templates/list")}),can=nC.extend({resourceTemplates:Vn(ian)}),eie=yl.extend({uri:ce()}),uan=eie,lan=ma.extend({method:ft("resources/read"),params:uan}),dan=ga.extend({contents:Vn(mi([RYe,wYe]))}),fan=pd.extend({method:ft("notifications/resources/list_changed"),params:fd.optional()}),pan=eie,han=ma.extend({method:ft("resources/subscribe"),params:pan}),man=eie,gan=ma.extend({method:ft("resources/unsubscribe"),params:man}),yan=fd.extend({uri:ce()}),San=pd.extend({method:ft("notifications/resources/updated"),params:yan}),Ean=$e({name:ce(),description:Ui(ce()),required:Ui(Vo())}),ban=$e({...Gw.shape,...eC.shape,description:Ui(ce()),arguments:Ui(Vn(Ean)),_meta:Ui(qc({}))}),tie=tC.extend({method:ft("prompts/list")}),_an=nC.extend({prompts:Vn(ban)}),Tan=yl.extend({name:ce(),arguments:ii(ce(),ce()).optional()}),nie=ma.extend({method:ft("prompts/get"),params:Tan}),rie=$e({type:ft("text"),text:ce(),annotations:Vw.optional(),_meta:ii(ce(),Di()).optional()}),iie=$e({type:ft("image"),data:$re,mimeType:ce(),annotations:Vw.optional(),_meta:ii(ce(),Di()).optional()}),sie=$e({type:ft("audio"),data:$re,mimeType:ce(),annotations:Vw.optional(),_meta:ii(ce(),Di()).optional()}),van=$e({type:ft("tool_use"),name:ce(),id:ce(),input:ii(ce(),Di()),_meta:ii(ce(),Di()).optional()}),Aan=$e({type:ft("resource"),resource:mi([RYe,wYe]),annotations:Vw.optional(),_meta:ii(ce(),Di()).optional()}),Ran=kYe.extend({type:ft("resource_link")}),oie=mi([rie,iie,sie,Ran,Aan]),wan=$e({role:sC,content:oie}),kan=ga.extend({description:ce().optional(),messages:Vn(wan)}),Ian=pd.extend({method:ft("notifications/prompts/list_changed"),params:fd.optional()}),xan=$e({title:ce().optional(),readOnlyHint:Vo().optional(),destructiveHint:Vo().optional(),idempotentHint:Vo().optional(),openWorldHint:Vo().optional()}),Oan=$e({taskSupport:_u(["required","optional","forbidden"]).optional()}),IYe=$e({...Gw.shape,...eC.shape,description:ce().optional(),inputSchema:$e({type:ft("object"),properties:ii(ce(),_o).optional(),required:Vn(ce()).optional()}).catchall(Di()),outputSchema:$e({type:ft("object"),properties:ii(ce(),_o).optional(),required:Vn(ce()).optional()}).catchall(Di()).optional(),annotations:xan.optional(),execution:Oan.optional(),_meta:ii(ce(),Di()).optional()}),aie=tC.extend({method:ft("tools/list")}),Nan=nC.extend({tools:Vn(IYe)}),R2=ga.extend({content:Vn(oie).default([]),structuredContent:ii(ce(),Di()).optional(),isError:Vo().optional()}),Yqr=R2.or(ga.extend({toolResult:Di()})),Pan=QP.extend({name:ce(),arguments:ii(ce(),Di()).optional()}),oC=ma.extend({method:ft("tools/call"),params:Pan}),Can=pd.extend({method:ft("notifications/tools/list_changed"),params:fd.optional()}),Jqr=$e({autoRefresh:Vo().default(!0),debounceMs:vr().int().nonnegative().default(300)}),aC=_u(["debug","info","notice","warning","error","critical","alert","emergency"]),Man=yl.extend({level:aC}),cie=ma.extend({method:ft("logging/setLevel"),params:Man}),Lan=fd.extend({level:aC,logger:ce().optional(),data:Di()}),Dan=pd.extend({method:ft("notifications/message"),params:Lan}),Uan=$e({name:ce().optional()}),Fan=$e({hints:Vn(Uan).optional(),costPriority:vr().min(0).max(1).optional(),speedPriority:vr().min(0).max(1).optional(),intelligencePriority:vr().min(0).max(1).optional()}),jan=$e({mode:_u(["auto","required","none"]).optional()}),Han=$e({type:ft("tool_result"),toolUseId:ce().describe("The unique identifier for the corresponding tool call."),content:Vn(oie).default([]),structuredContent:$e({}).loose().optional(),isError:Vo().optional(),_meta:ii(ce(),Di()).optional()}),qan=Gre("type",[rie,iie,sie]),f2=Gre("type",[rie,iie,sie,van,Han]),Ban=$e({role:sC,content:mi([f2,Vn(f2)]),_meta:ii(ce(),Di()).optional()}),Gan=QP.extend({messages:Vn(Ban),modelPreferences:Fan.optional(),systemPrompt:ce().optional(),includeContext:_u(["none","thisServer","allServers"]).optional(),temperature:vr().optional(),maxTokens:vr().int(),stopSequences:Vn(ce()).optional(),metadata:_o.optional(),tools:Vn(IYe).optional(),toolChoice:jan.optional()}),zan=ma.extend({method:ft("sampling/createMessage"),params:Gan}),cC=ga.extend({model:ce(),stopReason:Ui(_u(["endTurn","stopSequence","maxTokens"]).or(ce())),role:sC,content:qan}),uie=ga.extend({model:ce(),stopReason:Ui(_u(["endTurn","stopSequence","maxTokens","toolUse"]).or(ce())),role:sC,content:mi([f2,Vn(f2)])}),Van=$e({type:ft("boolean"),title:ce().optional(),description:ce().optional(),default:Vo().optional()}),Wan=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),minLength:vr().optional(),maxLength:vr().optional(),format:_u(["email","uri","date","date-time"]).optional(),default:ce().optional()}),Kan=$e({type:_u(["number","integer"]),title:ce().optional(),description:ce().optional(),minimum:vr().optional(),maximum:vr().optional(),default:vr().optional()}),Zan=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),enum:Vn(ce()),default:ce().optional()}),Yan=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),oneOf:Vn($e({const:ce(),title:ce()})),default:ce().optional()}),Jan=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),enum:Vn(ce()),enumNames:Vn(ce()).optional(),default:ce().optional()}),Xan=mi([Zan,Yan]),Qan=$e({type:ft("array"),title:ce().optional(),description:ce().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({type:ft("string"),enum:Vn(ce())}),default:Vn(ce()).optional()}),$an=$e({type:ft("array"),title:ce().optional(),description:ce().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({anyOf:Vn($e({const:ce(),title:ce()}))}),default:Vn(ce()).optional()}),ecn=mi([Qan,$an]),tcn=mi([Jan,Xan,ecn]),ncn=mi([tcn,Van,Wan,Kan]),rcn=QP.extend({mode:ft("form").optional(),message:ce(),requestedSchema:$e({type:ft("object"),properties:ii(ce(),ncn),required:Vn(ce()).optional()})}),icn=QP.extend({mode:ft("url"),message:ce(),elicitationId:ce(),url:ce().url()}),scn=mi([rcn,icn]),ocn=ma.extend({method:ft("elicitation/create"),params:scn}),acn=fd.extend({elicitationId:ce()}),ccn=pd.extend({method:ft("notifications/elicitation/complete"),params:acn}),Ww=ga.extend({action:_u(["accept","decline","cancel"]),content:zre(e=>e===null?void 0:e,ii(ce(),mi([ce(),vr(),Vo(),Vn(ce())])).optional())}),ucn=$e({type:ft("ref/resource"),uri:ce()}),lcn=$e({type:ft("ref/prompt"),name:ce()}),dcn=yl.extend({ref:mi([lcn,ucn]),argument:$e({name:ce(),value:ce()}),context:$e({arguments:ii(ce(),ce()).optional()}).optional()}),lie=ma.extend({method:ft("completion/complete"),params:dcn}),fcn=ga.extend({completion:qc({values:Vn(ce()).max(100),total:Ui(vr().int()),hasMore:Ui(Vo())})}),pcn=$e({uri:ce().startsWith("file://"),name:ce().optional(),_meta:ii(ce(),Di()).optional()}),hcn=ma.extend({method:ft("roots/list"),params:yl.optional()}),die=ga.extend({roots:Vn(pcn)}),mcn=pd.extend({method:ft("notifications/roots/list_changed"),params:fd.optional()}),Xqr=mi([y2,Xre,lie,cie,nie,tie,san,aan,lan,han,gan,oC,aie,E2,_2,T2,A2]),Qqr=mi([g2,S2,Qre,mcn,iC]),$qr=mi([m2,cC,uie,Ww,die,b2,v2,zw]),eBr=mi([y2,zan,ocn,hcn,E2,_2,T2,A2]),tBr=mi([g2,S2,Dan,San,fan,Can,Ian,iC,ccn]),nBr=mi([m2,Qon,fcn,kan,_an,oan,can,dan,R2,Nan,b2,v2,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 Vre(i.elicitations,n)}return new e(t,n,r)}},Vre=class extends rn{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(yn.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}}});function xS(e){return e==="completed"||e==="failed"||e==="cancelled"}var xYe=v(()=>{});var w2=v(()=>{});var fie=v(()=>{w2()});var OS=v(()=>{});var k2=v(()=>{});var hd=v(()=>{k2()});var pie=v(()=>{OS();Qs()});var hie=v(()=>{OS()});var mie=v(()=>{});var I2=v(()=>{Qs()});var gie=v(()=>{Qs()});var yie=v(()=>{OS()});var Sie=v(()=>{Qs()});var Eie=v(()=>{Qs();hd()});var bie=v(()=>{});var _ie=v(()=>{Qs()});var Tie=v(()=>{});var LBr,x2=v(()=>{OS();LBr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789")});var O2=v(()=>{Qs();x2();I2();hd()});var vie=v(()=>{Qs();O2();hd()});var Aie=v(()=>{});var Rie=v(()=>{hd()});var wie=v(()=>{});var N2=v(()=>{Qs()});var kie=v(()=>{Qs();N2()});var Iie=v(()=>{OS()});var xie=v(()=>{Qs()});var Oie=v(()=>{Qs();hd()});var Nie=v(()=>{Qs()});var Pie=v(()=>{Qs()});var Cie=v(()=>{OS();Qs()});var Mie=v(()=>{Qs()});var Lie=v(()=>{hd()});var Die=v(()=>{hd()});var Uie=v(()=>{Qs()});var Fie=v(()=>{hd();pie();hie();mie();I2();gie();yie();Sie();Eie();bie();_ie();Tie();vie();Aie();Rie();wie();kie();Iie();xie();Oie();Nie();Pie();O2();Cie();x2();Mie();Lie();N2();Die();Uie()});var Qs=v(()=>{w2();Fie();k2();hd()});var OYe=v(()=>{});var jie=v(()=>{Qs();fie();hd()});var Hie=v(()=>{w2();fie();OS();k2();Qs();OYe();hd();pie();hie();mie();I2();gie();yie();Sie();Eie();bie();_ie();Tie();vie();Aie();Rie();wie();kie();Iie();xie();Oie();Nie();Pie();Uie();O2();Cie();x2();Mie();Lie();N2();Die();Fie();jie();jie()});function qie(e){let n=c2(e)?.method;if(!n)throw new Error("Schema is missing a method literal");let r=jZe(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function Bie(e,t){let n=kS(e,t);if(!n.success)throw n.error;return n.data}var PYe=v(()=>{u2();Hie()});function CYe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function MYe(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];CYe(o)&&CYe(s)?n[i]={...o,...s}:n[i]=s}return n}var bcn,P2,LYe=v(()=>{u2();N_();xYe();PYe();bcn=6e4,P2=class{constructor(t){this._options=t,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(g2,n=>{this._oncancel(n)}),this.setNotificationHandler(S2,n=>{this._onprogress(n)}),this.setRequestHandler(y2,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(E2,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(yn.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(_2,async(n,r)=>{let i=async()=>{let s=n.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(s,r.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),a.type==="response")l(c);else{let d=c,f=new rn(d.error.code,d.error.message,d.error.data);l(f)}else{let d=a.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:r.requestId})}}let o=await this._taskStore.getTask(s,r.sessionId);if(!o)throw new rn(yn.InvalidParams,`Task not found: ${s}`);if(!xS(o.status))return await this._waitForTaskUpdate(s,r.signal),await i();if(xS(o.status)){let a=await this._taskStore.getTaskResult(s,r.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[IS]:{taskId:s}}}}return await i()};return await i()}),this.setRequestHandler(T2,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(A2,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(yn.InvalidParams,`Task not found: ${n.params.taskId}`);if(xS(i.status))throw new rn(yn.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",r.sessionId),this._clearTaskQueue(n.params.taskId);let s=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!s)throw new rn(yn.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof rn?i:new rn(yn.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,n,r,i,s=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(i,n),startTime:Date.now(),timeout:n,maxTotalTimeout:r,resetTimeoutOnProgress:s,onTimeout:i})}_resetTimeout(t){let n=this._timeoutInfo.get(t);if(!n)return!1;let r=Date.now()-n.startTime;if(n.maxTotalTimeout&&r>=n.maxTotalTimeout)throw this._timeoutInfo.delete(t),rn.fromError(yn.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:r});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(t){let n=this._timeoutInfo.get(t);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(t))}async connect(t){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=t;let n=this.transport?.onclose;this._transport.onclose=()=>{n?.(),this._onclose()};let r=this.transport?.onerror;this._transport.onerror=s=>{r?.(s),this._onerror(s)};let i=this._transport?.onmessage;this._transport.onmessage=(s,o)=>{i?.(s,o),$P(s)||bYe(s)?this._onresponse(s):Zre(s)?this._onrequest(s,o):EYe(s)?this._onnotification(s):this._onerror(new Error(`Unknown message type: ${JSON.stringify(s)}`))},await this._transport.start()}_onclose(){let t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let r of this._timeoutInfo.values())clearTimeout(r.timeoutId);this._timeoutInfo.clear();for(let r of this._requestHandlerAbortControllers.values())r.abort();this._requestHandlerAbortControllers.clear();let n=rn.fromError(yn.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let r of t.values())r(n)}_onerror(t){this.onerror?.(t)}_onnotification(t){let n=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;n!==void 0&&Promise.resolve().then(()=>n(t)).catch(r=>this._onerror(new Error(`Uncaught error in notification handler: ${r}`)))}_onrequest(t,n){let r=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,i=this._transport,s=t.params?._meta?.[IS]?.taskId;if(r===void 0){let l={jsonrpc:"2.0",id:t.id,error:{code:yn.MethodNotFound,message:"Method not found"}};s&&this._taskMessageQueue?this._enqueueTaskMessage(s,{type:"error",message:l,timestamp:Date.now()},i?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):i?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let o=new AbortController;this._requestHandlerAbortControllers.set(t.id,o);let a=gYe(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),$P(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($P(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),$P(t))i(t);else{let o=rn.fromError(t.error.code,t.error.message,t.error.data);i(o)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,n,r){let{task:i}=r??{};if(!i){try{yield{type:"result",result:await this.request(t,n,r)}}catch(o){yield{type:"error",error:o instanceof rn?o:new rn(yn.InternalError,String(o))}}return}let s;try{let o=await this.request(t,zw,r);if(o.task)s=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new rn(yn.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},r);if(yield{type:"taskStatus",task:a},xS(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:s},n,r)}:a.status==="failed"?yield{type:"error",error:new rn(yn.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new rn(yn.InternalError,`Task ${s} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:s},n,r)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),r?.signal?.throwIfAborted()}}catch(o){yield{type:"error",error:o instanceof rn?o:new rn(yn.InternalError,String(o))}}}request(t,n,r){let{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o,task:a,relatedTask:c}=r??{};return new Promise((u,l)=>{let d=E=>{l(E)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),a&&this.assertTaskCapability(t.method)}catch(E){d(E);return}r?.signal?.throwIfAborted();let f=this._requestMessageId++,p={...t,jsonrpc:"2.0",id:f};r?.onprogress&&(this._progressHandlers.set(f,r.onprogress),p.params={...t.params,_meta:{...t.params?._meta||{},progressToken:f}}),a&&(p.params={...p.params,task:a}),c&&(p.params={...p.params,_meta:{...p.params?._meta||{},[IS]:c}});let h=E=>{this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(E)}},{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(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=kS(n,E.result);S.success?u(S.data):l(S.error)}catch(S){l(S)}}}),r?.signal?.addEventListener("abort",()=>{h(r?.signal?.reason)});let m=r?.timeout??bcn,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},b2,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},v2,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},vYe,n)}async notification(t,n){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let r=n?.relatedTask?.taskId;if(r){let a={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[IS]:n.relatedTask}}};await this._enqueueTaskMessage(r,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let a={...t,jsonrpc:"2.0"};n?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[IS]:n.relatedTask}}}),this._transport?.send(a,n).catch(c=>this._onerror(c))});return}let o={...t,jsonrpc:"2.0"};n?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[IS]:n.relatedTask}}}),await this._transport.send(o,n)}setRequestHandler(t,n){let r=qie(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=Bie(t,i);return Promise.resolve(n(o,s))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,n){let r=qie(t);this._notificationHandlers.set(r,i=>{let s=Bie(t,i);return Promise.resolve(n(s))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let n=this._taskProgressTokens.get(t);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,n,r){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let i=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,n,r,i)}async _clearTaskQueue(t,n){if(this._taskMessageQueue){let r=await this._taskMessageQueue.dequeueAll(t,n);for(let i of r)if(i.type==="request"&&Zre(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=iC.parse({method:"notifications/tasks/status",params:a});await this.notification(c),xS(a.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>r.getTaskResult(i,n),updateTaskStatus:async(i,s,o)=>{let a=await r.getTask(i,n);if(!a)throw new rn(yn.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(xS(a.status))throw new rn(yn.InvalidParams,`Cannot update task "${i}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await r.updateTaskStatus(i,s,o,n);let c=await r.getTask(i,n);if(c){let u=iC.parse({method:"notifications/tasks/status",params:c});await this.notification(u),xS(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}}});var Kw=w(tr=>{"use strict";Object.defineProperty(tr,"__esModule",{value:!0});tr.regexpCode=tr.getEsmExportName=tr.getProperty=tr.safeStringify=tr.stringify=tr.strConcat=tr.addCodeArg=tr.str=tr._=tr.nil=tr._Code=tr.Name=tr.IDENTIFIER=tr._CodeOrName=void 0;var lC=class{};tr._CodeOrName=lC;tr.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var P_=class extends lC{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=P_;var md=class extends lC{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 P_&&(n[r.str]=(n[r.str]||0)+1),n),{})}};tr._Code=md;tr.nil=new md("");function DYe(e,...t){let n=[e[0]],r=0;for(;r{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.ValueScope=vu.ValueScopeName=vu.Scope=vu.varKinds=vu.UsedValueState=void 0;var Tu=Kw(),Vie=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},C2;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(C2||(vu.UsedValueState=C2={}));vu.varKinds={const:new Tu.Name("const"),let:new Tu.Name("let"),var:new Tu.Name("var")};var M2=class{constructor({prefixes:t,parent:n}={}){this._names={},this._prefixes=t,this._parent=n}toName(t){return t instanceof Tu.Name?t:this.name(t)}name(t){return new Tu.Name(this._newName(t))}_newName(t){let n=this._names[t]||this._nameGroup(t);return`${t}${n.index++}`}_nameGroup(t){var n,r;if(!((r=(n=this._parent)===null||n===void 0?void 0:n._prefixes)===null||r===void 0)&&r.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};vu.Scope=M2;var L2=class extends Tu.Name{constructor(t,n){super(n),this.prefix=t}setValue(t,{property:n,itemIndex:r}){this.value=t,this.scopePath=(0,Tu._)`.${new Tu.Name(n)}[${r}]`}};vu.ValueScopeName=L2;var xcn=(0,Tu._)`\n`,Wie=class extends M2{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?xcn:Tu.nil}}get(){return this._scope}name(t){return new L2(t,this._newName(t))}value(t,n){var r;if(n.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(t),{prefix:s}=i,o=(r=n.key)!==null&&r!==void 0?r:n.ref,a=this._values[s];if(a){let l=a.get(o);if(l)return l}else a=this._values[s]=new Map;a.set(o,i);let c=this._scope[s]||(this._scope[s]=[]),u=c.length;return c[u]=n.ref,i.setValue(n,{property:s,itemIndex:u}),i}getValue(t,n){let r=this._values[t];if(r)return r.get(n)}scopeRefs(t,n=this._values){return this._reduceValues(n,r=>{if(r.scopePath===void 0)throw new Error(`CodeGen: name "${r}" has no value`);return(0,Tu._)`${t}${r.scopePath}`})}scopeCode(t=this._values,n,r){return this._reduceValues(t,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},n,r)}_reduceValues(t,n,r={},i){let s=Tu.nil;for(let o in t){let a=t[o];if(!a)continue;let c=r[o]=r[o]||new Map;a.forEach(u=>{if(c.has(u))return;c.set(u,C2.Started);let l=n(u);if(l){let d=this.opts.es5?vu.varKinds.var:vu.varKinds.const;s=(0,Tu._)`${s}${d} ${u} = ${l};${this.opts._n}`}else if(l=i?.(u))s=(0,Tu._)`${s}${l}${this.opts._n}`;else throw new Vie(u);c.set(u,C2.Completed)})}return s}};vu.ValueScope=Wie});var Ot=w(Sn=>{"use strict";Object.defineProperty(Sn,"__esModule",{value:!0});Sn.or=Sn.and=Sn.not=Sn.CodeGen=Sn.operators=Sn.varKinds=Sn.ValueScopeName=Sn.ValueScope=Sn.Scope=Sn.Name=Sn.regexpCode=Sn.stringify=Sn.getProperty=Sn.nil=Sn.strConcat=Sn.str=Sn._=void 0;var Wn=Kw(),Tf=D2(),NS=Kw();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 H2=D2();Object.defineProperty(Sn,"Scope",{enumerable:!0,get:function(){return H2.Scope}});Object.defineProperty(Sn,"ValueScope",{enumerable:!0,get:function(){return H2.ValueScope}});Object.defineProperty(Sn,"ValueScopeName",{enumerable:!0,get:function(){return H2.ValueScopeName}});Object.defineProperty(Sn,"varKinds",{enumerable:!0,get:function(){return H2.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}},Kie=class extends zm{constructor(t,n,r){super(),this.varKind=t,this.name=n,this.rhs=r}render({es5:t,_n:n}){let r=t?Tf.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${r} ${this.name}${i};`+n}optimizeNames(t,n){if(t[this.name.str])return this.rhs&&(this.rhs=Yw(this.rhs,t,n)),this}get names(){return this.rhs instanceof Wn._CodeOrName?this.rhs.names:{}}},U2=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 j2(t,this.rhs)}},Zie=class extends U2{constructor(t,n,r,i){super(t,r,i),this.op=n}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},Yie=class extends zm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},Jie=class extends zm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},Xie=class extends zm{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},Qie=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:{}}},fC=class extends zm{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((n,r)=>n+r.render(t),"")}optimizeNodes(){let{nodes:t}=this,n=t.length;for(;n--;){let r=t[n].optimizeNodes();Array.isArray(r)?t.splice(n,1,...r):r?t[n]=r:t.splice(n,1)}return t.length>0?this:void 0}optimizeNames(t,n){let{nodes:r}=this,i=r.length;for(;i--;){let s=r[i];s.optimizeNames(t,n)||(Ocn(t,s.names),r.splice(i,1))}return r.length>0?this:void 0}get names(){return this.nodes.reduce((t,n)=>L_(t,n.names),{})}},Vm=class extends fC{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},$ie=class extends fC{},Zw=class extends Vm{};Zw.kind="else";var C_=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(FYe(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 j2(t,this.condition),this.else&&L_(t,this.else.names),t}};C_.kind="if";var M_=class extends Vm{};M_.kind="for";var ese=class extends M_{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 L_(super.names,this.iteration.names)}},tse=class extends M_{constructor(t,n,r,i){super(),this.varKind=t,this.name=n,this.from=r,this.to=i}render(t){let n=t.es5?Tf.varKinds.var:this.varKind,{name:r,from:i,to:s}=this;return`for(${n} ${r}=${i}; ${r}<${s}; ${r}++)`+super.render(t)}get names(){let t=j2(super.names,this.from);return j2(t,this.to)}},F2=class extends M_{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 L_(super.names,this.iterable.names)}},pC=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)}};pC.kind="func";var hC=class extends fC{render(t){return"return "+super.render(t)}};hC.kind="return";var nse=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&&L_(t,this.catch.names),this.finally&&L_(t,this.finally.names),t}},mC=class extends Vm{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};mC.kind="catch";var gC=class extends Vm{render(t){return"finally"+super.render(t)}};gC.kind="finally";var rse=class{constructor(t,n={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...n,_n:n.lines?` -`:""},this._extScope=t,this._scope=new Tf.Scope({parent:t}),this._nodes=[new $ie]}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 Kie(t,s,r)),s}const(t,n,r){return this._def(Tf.varKinds.const,t,n,r)}let(t,n,r){return this._def(Tf.varKinds.let,t,n,r)}var(t,n,r){return this._def(Tf.varKinds.var,t,n,r)}assign(t,n,r){return this._leafNode(new U2(t,n,r))}add(t,n){return this._leafNode(new Zie(t,Sn.operators.ADD,n))}code(t){return typeof t=="function"?t():t!==Wn.nil&&this._leafNode(new Qie(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 C_(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 C_(t))}else(){return this._elseNode(new Zw)}endIf(){return this._endBlockNode(C_,Zw)}_for(t,n){return this._blockNode(t),n&&this.code(n).endFor(),this}for(t,n){return this._for(new ese(t),n)}forRange(t,n,r,i,s=this.opts.es5?Tf.varKinds.var:Tf.varKinds.let){let o=this._scope.toName(t);return this._for(new tse(s,o,n,r),()=>i(o))}forOf(t,n,r,i=Tf.varKinds.const){let s=this._scope.toName(t);if(this.opts.es5){let o=n instanceof Wn.Name?n:this.var("_arr",n);return this.forRange("_i",0,(0,Wn._)`${o}.length`,a=>{this.var(s,(0,Wn._)`${o}[${a}]`),r(s)})}return this._for(new F2("of",i,s,n),()=>r(s))}forIn(t,n,r,i=this.opts.es5?Tf.varKinds.var:Tf.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,Wn._)`Object.keys(${n})`,r);let s=this._scope.toName(t);return this._for(new F2("in",i,s,n),()=>r(s))}endFor(){return this._endBlockNode(M_)}label(t){return this._leafNode(new Yie(t))}break(t){return this._leafNode(new Jie(t))}return(t){let n=new hC;if(this._blockNode(n),this.code(t),n.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(hC)}try(t,n,r){if(!n&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new nse;if(this._blockNode(i),this.code(t),n){let s=this.name("e");this._currNode=i.catch=new mC(s),n(s)}return r&&(this._currNode=i.finally=new gC,this.code(r)),this._endBlockNode(mC,gC)}throw(t){return this._leafNode(new Xie(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 pC(t,n,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(pC)}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 C_))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=rse;function L_(e,t){for(let n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function j2(e,t){return t instanceof Wn._CodeOrName?L_(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 Ocn(e,t){for(let n in t)e[n]=(e[n]||0)-(t[n]||0)}function FYe(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,Wn._)`!${ise(e)}`}Sn.not=FYe;var Ncn=jYe(Sn.operators.AND);function Pcn(...e){return e.reduce(Ncn)}Sn.and=Pcn;var Ccn=jYe(Sn.operators.OR);function Mcn(...e){return e.reduce(Ccn)}Sn.or=Mcn;function jYe(e){return(t,n)=>t===Wn.nil?n:n===Wn.nil?t:(0,Wn._)`${ise(t)} ${e} ${ise(n)}`}function ise(e){return e instanceof Wn.Name?e:(0,Wn._)`(${e})`}});var pn=w(An=>{"use strict";Object.defineProperty(An,"__esModule",{value:!0});An.checkStrictMode=An.getErrorPath=An.Type=An.useFunc=An.setEvaluated=An.evaluatedPropsToName=An.mergeEvaluated=An.eachItem=An.unescapeJsonPointer=An.escapeJsonPointer=An.escapeFragment=An.unescapeFragment=An.schemaRefOrVal=An.schemaHasRulesButRef=An.schemaHasRules=An.checkUnknownRules=An.alwaysValidSchema=An.toHash=void 0;var Wr=Ot(),Lcn=Kw();function Dcn(e){let t={};for(let n of e)t[n]=!0;return t}An.toHash=Dcn;function Ucn(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(BYe(e,t),!GYe(t,e.self.RULES.all))}An.alwaysValidSchema=Ucn;function BYe(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]||WYe(e,`unknown keyword: "${s}"`)}An.checkUnknownRules=BYe;function GYe(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(t[n])return!0;return!1}An.schemaHasRules=GYe;function Fcn(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(n!=="$ref"&&t.all[n])return!0;return!1}An.schemaHasRulesButRef=Fcn;function jcn({topSchemaRef:e,schemaPath:t},n,r,i){if(!i){if(typeof n=="number"||typeof n=="boolean")return n;if(typeof n=="string")return(0,Wr._)`${n}`}return(0,Wr._)`${e}${t}${(0,Wr.getProperty)(r)}`}An.schemaRefOrVal=jcn;function Hcn(e){return zYe(decodeURIComponent(e))}An.unescapeFragment=Hcn;function qcn(e){return encodeURIComponent(ose(e))}An.escapeFragment=qcn;function ose(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}An.escapeJsonPointer=ose;function zYe(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}An.unescapeJsonPointer=zYe;function Bcn(e,t){if(Array.isArray(e))for(let n of e)t(n);else t(e)}An.eachItem=Bcn;function HYe({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:HYe({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} || {}`),ase(e,n,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:VYe}),items:HYe({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 VYe(e,t){if(t===!0)return e.var("props",!0);let n=e.var("props",(0,Wr._)`{}`);return t!==void 0&&ase(e,n,t),n}An.evaluatedPropsToName=VYe;function ase(e,t,n){Object.keys(n).forEach(r=>e.assign((0,Wr._)`${t}${(0,Wr.getProperty)(r)}`,!0))}An.setEvaluated=ase;var qYe={};function Gcn(e,t){return e.scopeValue("func",{ref:t,code:qYe[t.code]||(qYe[t.code]=new Lcn._Code(t.code))})}An.useFunc=Gcn;var sse;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(sse||(An.Type=sse={}));function zcn(e,t,n){if(e instanceof Wr.Name){let r=t===sse.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():"/"+ose(e)}An.getErrorPath=zcn;function WYe(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=WYe});var gd=w(cse=>{"use strict";Object.defineProperty(cse,"__esModule",{value:!0});var rc=Ot(),Vcn={data:new rc.Name("data"),valCxt:new rc.Name("valCxt"),instancePath:new rc.Name("instancePath"),parentData:new rc.Name("parentData"),parentDataProperty:new rc.Name("parentDataProperty"),rootData:new rc.Name("rootData"),dynamicAnchors:new rc.Name("dynamicAnchors"),vErrors:new rc.Name("vErrors"),errors:new rc.Name("errors"),this:new rc.Name("this"),self:new rc.Name("self"),scope:new rc.Name("scope"),json:new rc.Name("json"),jsonPos:new rc.Name("jsonPos"),jsonLen:new rc.Name("jsonLen"),jsonPart:new rc.Name("jsonPart")};cse.default=Vcn});var yC=w(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});ic.extendErrors=ic.resetErrorsCount=ic.reportExtraError=ic.reportError=ic.keyword$DataError=ic.keywordError=void 0;var Jn=Ot(),q2=pn(),Bc=gd();ic.keywordError={message:({keyword:e})=>(0,Jn.str)`must pass "${e}" keyword validation`};ic.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,Jn.str)`"${e}" keyword must be ${t} ($data)`:(0,Jn.str)`"${e}" keyword is invalid ($data)`};function Wcn(e,t=ic.keywordError,n,r){let{it:i}=e,{gen:s,compositeRule:o,allErrors:a}=i,c=YYe(e,t,n);r??(o||a)?KYe(s,c):ZYe(i,(0,Jn._)`[${c}]`)}ic.reportError=Wcn;function Kcn(e,t=ic.keywordError,n){let{it:r}=e,{gen:i,compositeRule:s,allErrors:o}=r,a=YYe(e,t,n);KYe(i,a),s||o||ZYe(r,Bc.default.vErrors)}ic.reportExtraError=Kcn;function Zcn(e,t){e.assign(Bc.default.errors,t),e.if((0,Jn._)`${Bc.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,Jn._)`${Bc.default.vErrors}.length`,t),()=>e.assign(Bc.default.vErrors,null)))}ic.resetErrorsCount=Zcn;function Ycn({gen:e,keyword:t,schemaValue:n,data:r,errsCount:i,it:s}){if(i===void 0)throw new Error("ajv implementation error");let o=e.name("err");e.forRange("i",i,Bc.default.errors,a=>{e.const(o,(0,Jn._)`${Bc.default.vErrors}[${a}]`),e.if((0,Jn._)`${o}.instancePath === undefined`,()=>e.assign((0,Jn._)`${o}.instancePath`,(0,Jn.strConcat)(Bc.default.instancePath,s.errorPath))),e.assign((0,Jn._)`${o}.schemaPath`,(0,Jn.str)`${s.errSchemaPath}/${t}`),s.opts.verbose&&(e.assign((0,Jn._)`${o}.schema`,n),e.assign((0,Jn._)`${o}.data`,r))})}ic.extendErrors=Ycn;function KYe(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 ZYe(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 YYe(e,t,n){let{createErrors:r}=e.it;return r===!1?(0,Jn._)`{}`:Jcn(e,t,n)}function Jcn(e,t,n={}){let{gen:r,it:i}=e,s=[Xcn(i,n),Qcn(e,n)];return $cn(e,t,s),r.object(...s)}function Xcn({errorPath:e},{instancePath:t}){let n=t?(0,Jn.str)`${e}${(0,q2.getErrorPath)(t,q2.Type.Str)}`:e;return[Bc.default.instancePath,(0,Jn.strConcat)(Bc.default.instancePath,n)]}function Qcn({keyword:e,it:{errSchemaPath:t}},{schemaPath:n,parentSchema:r}){let i=r?t:(0,Jn.str)`${t}/${e}`;return n&&(i=(0,Jn.str)`${i}${(0,q2.getErrorPath)(n,q2.Type.Str)}`),[D_.schemaPath,i]}function $cn(e,{params:t,message:n},r){let{keyword:i,data:s,schemaValue:o,it:a}=e,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:d}=a;r.push([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 XYe=w(Jw=>{"use strict";Object.defineProperty(Jw,"__esModule",{value:!0});Jw.boolOrEmptySchema=Jw.topBoolOrEmptySchema=void 0;var eun=yC(),tun=Ot(),nun=gd(),run={message:"boolean schema is false"};function iun(e){let{gen:t,schema:n,validateName:r}=e;n===!1?JYe(e,!1):typeof n=="object"&&n.$async===!0?t.return(nun.default.data):(t.assign((0,tun._)`${r}.errors`,null),t.return(!0))}Jw.topBoolOrEmptySchema=iun;function sun(e,t){let{gen:n,schema:r}=e;r===!1?(n.var(t,!1),JYe(e)):n.var(t,!0)}Jw.boolOrEmptySchema=sun;function JYe(e,t){let{gen:n,data:r}=e,i={gen:n,keyword:"false schema",data:r,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,eun.reportError)(i,run,void 0,t)}});var use=w(Xw=>{"use strict";Object.defineProperty(Xw,"__esModule",{value:!0});Xw.getRules=Xw.isJSONType=void 0;var oun=["string","number","integer","boolean","null","object","array"],aun=new Set(oun);function cun(e){return typeof e=="string"&&aun.has(e)}Xw.isJSONType=cun;function uun(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}Xw.getRules=uun});var lse=w(PS=>{"use strict";Object.defineProperty(PS,"__esModule",{value:!0});PS.shouldUseRule=PS.shouldUseGroup=PS.schemaHasRulesForType=void 0;function lun({schema:e,self:t},n){let r=t.RULES.types[n];return r&&r!==!0&&QYe(e,r)}PS.schemaHasRulesForType=lun;function QYe(e,t){return t.rules.some(n=>$Ye(e,n))}PS.shouldUseGroup=QYe;function $Ye(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))}PS.shouldUseRule=$Ye});var SC=w(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});sc.reportTypeError=sc.checkDataTypes=sc.checkDataType=sc.coerceAndCheckDataType=sc.getJSONTypes=sc.getSchemaTypes=sc.DataType=void 0;var dun=use(),fun=lse(),pun=yC(),hn=Ot(),e5e=pn(),Qw;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(Qw||(sc.DataType=Qw={}));function hun(e){let t=t5e(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}sc.getSchemaTypes=hun;function t5e(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(dun.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}sc.getJSONTypes=t5e;function mun(e,t){let{gen:n,data:r,opts:i}=e,s=gun(t,i.coerceTypes),o=t.length>0&&!(s.length===0&&t.length===1&&(0,fun.schemaHasRulesForType)(e,t[0]));if(o){let a=fse(t,r,i.strictNumbers,Qw.Wrong);n.if(a,()=>{s.length?yun(e,t,s):pse(e)})}return o}sc.coerceAndCheckDataType=mun;var n5e=new Set(["string","number","integer","boolean","null"]);function gun(e,t){return t?e.filter(n=>n5e.has(n)||t==="array"&&n==="array"):[]}function yun(e,t,n){let{gen:r,data:i,opts:s}=e,o=r.let("dataType",(0,hn._)`typeof ${i}`),a=r.let("coerced",(0,hn._)`undefined`);s.coerceTypes==="array"&&r.if((0,hn._)`${o} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>r.assign(i,(0,hn._)`${i}[0]`).assign(o,(0,hn._)`typeof ${i}`).if(fse(t,i,s.strictNumbers),()=>r.assign(a,i))),r.if((0,hn._)`${a} !== undefined`);for(let u of n)(n5e.has(u)||u==="array"&&s.coerceTypes==="array")&&c(u);r.else(),pse(e),r.endIf(),r.if((0,hn._)`${a} !== undefined`,()=>{r.assign(i,a),Sun(e,a)});function c(u){switch(u){case"string":r.elseIf((0,hn._)`${o} == "number" || ${o} == "boolean"`).assign(a,(0,hn._)`"" + ${i}`).elseIf((0,hn._)`${i} === null`).assign(a,(0,hn._)`""`);return;case"number":r.elseIf((0,hn._)`${o} == "boolean" || ${i} === null + path: iss.path ? [${O_(b)}, ...iss.path] : [${O_(b)}] + })));`),f.write(`newResult[${O_(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=Vw,o=!$G.jitless,c=o&&cre.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?$3e(A,d,E,p):c2(A,d,E))):R?$3e(T,d,E,p):c2(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(_=>c2(_,d,S))):c2(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}});kre=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=>eC(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=>e9e(o,n,e,r)):e9e(s,n,e,r)}}),F9e=me("$ZodDiscriminatedUnion",(e,t)=>{kre.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=QN(()=>{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(!Vw(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)}}),j9e=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])=>t9e(n,c,u)):t9e(n,s,o)}});H9e=me("$ZodRecord",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Ww(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,pd())),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}}),q9e=me("$ZodEnum",(e,t)=>{ri.init(e,t);let n=ire(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>ure.has(typeof r)).map(r=>typeof r=="string"?IS(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}}),B9e=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"?IS(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}}),z9e=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 zm;return n.value=i,n}}),G9e=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(`^(${eC(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)}),V9e=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(`^(${eC(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)}),W9e=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=>n9e(s,t)):n9e(i,t)}});K9e=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))}),Y9e=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=>r9e(s,e)):r9e(i,e)}});Z9e=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,pd()))},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,pd()))},input:n.value}),n.issues=[]),n)}}),J9e=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=>i9e(s,t,r)):i9e(i,t,r)}});X9e=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(s9e):s9e(i)}});Q9e=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=>o9e(s,n,r,e));o9e(i,n,r,e)}})});function eYe(){return{localeError:eon()}}var $sn,eon,tYe=v(()=>{Gm();$sn=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},eon=()=>{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 ${$sn(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${n2(r.values[0])}`:`Invalid option: expected one of ${e2(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":""}: ${e2(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 l2=v(()=>{});function ton(){return new xre}var xre,iC,nYe=v(()=>{xre=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)}};iC=ton()});function rYe(e,t){return new e({type:"string",...Dt(t)})}function iYe(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Dt(t)})}function Ore(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Dt(t)})}function sYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Dt(t)})}function oYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Dt(t)})}function aYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Dt(t)})}function cYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Dt(t)})}function uYe(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Dt(t)})}function lYe(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Dt(t)})}function dYe(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Dt(t)})}function fYe(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Dt(t)})}function pYe(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Dt(t)})}function hYe(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Dt(t)})}function mYe(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Dt(t)})}function gYe(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Dt(t)})}function yYe(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Dt(t)})}function SYe(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Dt(t)})}function bYe(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Dt(t)})}function EYe(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Dt(t)})}function _Ye(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Dt(t)})}function TYe(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Dt(t)})}function vYe(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Dt(t)})}function RYe(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Dt(t)})}function AYe(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Dt(t)})}function wYe(e,t){return new e({type:"string",format:"date",check:"string_format",...Dt(t)})}function kYe(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Dt(t)})}function IYe(e,t){return new e({type:"string",format:"duration",check:"string_format",...Dt(t)})}function xYe(e,t){return new e({type:"number",checks:[],...Dt(t)})}function OYe(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Dt(t)})}function PYe(e,t){return new e({type:"boolean",...Dt(t)})}function NYe(e,t){return new e({type:"null",...Dt(t)})}function CYe(e){return new e({type:"unknown"})}function MYe(e,t){return new e({type:"never",...Dt(t)})}function d2(e,t){return new _re({check:"less_than",...Dt(t),value:e,inclusive:!1})}function sC(e,t){return new _re({check:"less_than",...Dt(t),value:e,inclusive:!0})}function f2(e,t){return new Tre({check:"greater_than",...Dt(t),value:e,inclusive:!1})}function oC(e,t){return new Tre({check:"greater_than",...Dt(t),value:e,inclusive:!0})}function p2(e,t){return new F3e({check:"multiple_of",...Dt(t),value:e})}function h2(e,t){return new H3e({check:"max_length",...Dt(t),maximum:e})}function Kw(e,t){return new q3e({check:"min_length",...Dt(t),minimum:e})}function m2(e,t){return new B3e({check:"length_equals",...Dt(t),length:e})}function Pre(e,t){return new z3e({check:"string_format",format:"regex",...Dt(t),pattern:e})}function Nre(e){return new G3e({check:"string_format",format:"lowercase",...Dt(e)})}function Cre(e){return new V3e({check:"string_format",format:"uppercase",...Dt(e)})}function Mre(e,t){return new W3e({check:"string_format",format:"includes",...Dt(t),includes:e})}function Dre(e,t){return new K3e({check:"string_format",format:"starts_with",...Dt(t),prefix:e})}function Lre(e,t){return new Y3e({check:"string_format",format:"ends_with",...Dt(t),suffix:e})}function N_(e){return new Z3e({check:"overwrite",tx:e})}function Ure(e){return N_(t=>t.normalize(e))}function Fre(){return N_(e=>e.trim())}function jre(){return N_(e=>e.toLowerCase())}function Hre(){return N_(e=>e.toUpperCase())}function DYe(e,t,n){return new e({type:"array",element:t,...Dt(n)})}function LYe(e,t,n){let r=Dt(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function UYe(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Dt(n)})}var FYe=v(()=>{o2();Gm()});var jYe=v(()=>{});var HYe=v(()=>{});var qYe=v(()=>{});var hd=v(()=>{Gw();yre();hre();$9e();o2();Rre();Gm();s2();l2();nYe();vre();jYe();FYe();HYe();qYe()});var BYe=v(()=>{hd()});var zYe=v(()=>{});var GYe=v(()=>{});var VYe=v(()=>{});var WYe=v(()=>{});var KYe=v(()=>{hd();BYe();zYe();GYe();l2();VYe();WYe()});var YYe=v(()=>{KYe()});var ZYe=v(()=>{YYe()});function Zw(e){return!!e._zod}function xS(e,t){return Zw(e)?nC(e,t):e.safeParse(t)}function g2(e){if(!e)return;let t;if(Zw(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function JYe(e){if(Zw(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 y2=v(()=>{ZYe()});var qre=v(()=>{hd()});var aC={};Ar(aC,{ZodISODate:()=>QYe,ZodISODateTime:()=>XYe,ZodISODuration:()=>eZe,ZodISOTime:()=>$Ye,date:()=>zre,datetime:()=>Bre,duration:()=>Vre,time:()=>Gre});function Bre(e){return AYe(XYe,e)}function zre(e){return wYe(QYe,e)}function Gre(e){return kYe($Ye,e)}function Vre(e){return IYe(eZe,e)}var XYe,QYe,$Ye,eZe,Wre=v(()=>{hd();Kre();XYe=me("ZodISODateTime",(e,t)=>{S9e.init(e,t),Di.init(e,t)});QYe=me("ZodISODate",(e,t)=>{b9e.init(e,t),Di.init(e,t)});$Ye=me("ZodISOTime",(e,t)=>{E9e.init(e,t),Di.init(e,t)});eZe=me("ZodISODuration",(e,t)=>{_9e.init(e,t),Di.init(e,t)})});var tZe,Dqr,cC,Yre=v(()=>{hd();hd();tZe=(e,t)=>{r2.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>s3e(e,n)},flatten:{value:n=>i3e(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},Dqr=me("ZodError",tZe),cC=me("ZodError",tZe,{Parent:Error})});var nZe,rZe,iZe,sZe,Zre=v(()=>{hd();Yre();nZe=o3e(cC),rZe=a3e(cC),iZe=mre(cC),sZe=gre(cC)});function le(e){return rYe(fon,e)}function vr(e){return xYe(lZe,e)}function aZe(e){return OYe(Oon,e)}function Vo(e){return PYe(Pon,e)}function dZe(e){return NYe(Non,e)}function Li(){return CYe(Con)}function Don(e){return MYe(Mon,e)}function Vn(e,t){return DYe(Lon,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 fZe(n)}function Bc(e,t){return new fZe({type:"object",get shape(){return or.assignProp(this,"shape",{...e}),this.shape},catchall:Li(),...or.normalizeParams(t)})}function mi(e,t){return new pZe({type:"union",options:e,...or.normalizeParams(t)})}function Qre(e,t,n){return new Uon({type:"union",options:t,discriminator:e,...or.normalizeParams(n)})}function b2(e,t){return new Fon({type:"intersection",left:e,right:t})}function ii(e,t,n){return new jon({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 Jre({type:"enum",entries:n,...or.normalizeParams(t)})}function ft(e,t){return new Hon({type:"literal",values:Array.isArray(e)?e:[e],...or.normalizeParams(t)})}function hZe(e){return new qon({type:"transform",transform:e})}function Ui(e){return new mZe({type:"optional",innerType:e})}function cZe(e){return new Bon({type:"nullable",innerType:e})}function Gon(e,t){return new zon({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Won(e,t){return new Von({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Kon(e,t){return new gZe({type:"nonoptional",innerType:e,...or.normalizeParams(t)})}function Zon(e,t){return new Yon({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function Xre(e,t){return new Jon({type:"pipe",in:e,out:t})}function Qon(e){return new Xon({type:"readonly",innerType:e})}function $on(e){let t=new rc({check:"custom"});return t._zod.check=e,t}function SZe(e,t){return LYe(yZe,e??(()=>!0),t)}function ean(e,t={}){return UYe(yZe,e,t)}function tan(e){let t=$on(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 $re(e,t){return Xre(hZe(e),t)}var Ji,uZe,fon,Di,pon,oZe,S2,hon,mon,gon,yon,Son,bon,Eon,_on,Ton,von,Ron,Aon,won,kon,Ion,xon,lZe,Oon,Pon,Non,Con,Mon,Lon,fZe,pZe,Uon,Fon,jon,Jre,Hon,qon,mZe,Bon,zon,Von,gZe,Yon,Jon,Xon,yZe,Kre=v(()=>{hd();hd();qre();Wre();Zre();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)=>nZe(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>iZe(e,n,r),e.parseAsync=async(n,r)=>rZe(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>sZe(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(ean(n,r)),e.superRefine=n=>e.check(tan(n)),e.overwrite=n=>e.check(N_(n)),e.optional=()=>Ui(e),e.nullable=()=>cZe(e),e.nullish=()=>Ui(cZe(e)),e.nonoptional=n=>Kon(e,n),e.array=()=>Vn(e),e.or=n=>mi([e,n]),e.and=n=>b2(e,n),e.transform=n=>Xre(e,hZe(n)),e.default=n=>Gon(e,n),e.prefault=n=>Won(e,n),e.catch=n=>Zon(e,n),e.pipe=n=>Xre(e,n),e.readonly=()=>Qon(e),e.describe=n=>{let r=e.clone();return iC.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return iC.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return iC.get(e);let r=e.clone();return iC.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),uZe=me("_ZodString",(e,t)=>{u2.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(Pre(...r)),e.includes=(...r)=>e.check(Mre(...r)),e.startsWith=(...r)=>e.check(Dre(...r)),e.endsWith=(...r)=>e.check(Lre(...r)),e.min=(...r)=>e.check(Kw(...r)),e.max=(...r)=>e.check(h2(...r)),e.length=(...r)=>e.check(m2(...r)),e.nonempty=(...r)=>e.check(Kw(1,...r)),e.lowercase=r=>e.check(Nre(r)),e.uppercase=r=>e.check(Cre(r)),e.trim=()=>e.check(Fre()),e.normalize=(...r)=>e.check(Ure(...r)),e.toLowerCase=()=>e.check(jre()),e.toUpperCase=()=>e.check(Hre())}),fon=me("ZodString",(e,t)=>{u2.init(e,t),uZe.init(e,t),e.email=n=>e.check(iYe(pon,n)),e.url=n=>e.check(uYe(hon,n)),e.jwt=n=>e.check(RYe(xon,n)),e.emoji=n=>e.check(lYe(mon,n)),e.guid=n=>e.check(Ore(oZe,n)),e.uuid=n=>e.check(sYe(S2,n)),e.uuidv4=n=>e.check(oYe(S2,n)),e.uuidv6=n=>e.check(aYe(S2,n)),e.uuidv7=n=>e.check(cYe(S2,n)),e.nanoid=n=>e.check(dYe(gon,n)),e.guid=n=>e.check(Ore(oZe,n)),e.cuid=n=>e.check(fYe(yon,n)),e.cuid2=n=>e.check(pYe(Son,n)),e.ulid=n=>e.check(hYe(bon,n)),e.base64=n=>e.check(_Ye(won,n)),e.base64url=n=>e.check(TYe(kon,n)),e.xid=n=>e.check(mYe(Eon,n)),e.ksuid=n=>e.check(gYe(_on,n)),e.ipv4=n=>e.check(yYe(Ton,n)),e.ipv6=n=>e.check(SYe(von,n)),e.cidrv4=n=>e.check(bYe(Ron,n)),e.cidrv6=n=>e.check(EYe(Aon,n)),e.e164=n=>e.check(vYe(Ion,n)),e.datetime=n=>e.check(Bre(n)),e.date=n=>e.check(zre(n)),e.time=n=>e.check(Gre(n)),e.duration=n=>e.check(Vre(n))});Di=me("ZodStringFormat",(e,t)=>{hi.init(e,t),uZe.init(e,t)}),pon=me("ZodEmail",(e,t)=>{u9e.init(e,t),Di.init(e,t)}),oZe=me("ZodGUID",(e,t)=>{a9e.init(e,t),Di.init(e,t)}),S2=me("ZodUUID",(e,t)=>{c9e.init(e,t),Di.init(e,t)}),hon=me("ZodURL",(e,t)=>{l9e.init(e,t),Di.init(e,t)}),mon=me("ZodEmoji",(e,t)=>{d9e.init(e,t),Di.init(e,t)}),gon=me("ZodNanoID",(e,t)=>{f9e.init(e,t),Di.init(e,t)}),yon=me("ZodCUID",(e,t)=>{p9e.init(e,t),Di.init(e,t)}),Son=me("ZodCUID2",(e,t)=>{h9e.init(e,t),Di.init(e,t)}),bon=me("ZodULID",(e,t)=>{m9e.init(e,t),Di.init(e,t)}),Eon=me("ZodXID",(e,t)=>{g9e.init(e,t),Di.init(e,t)}),_on=me("ZodKSUID",(e,t)=>{y9e.init(e,t),Di.init(e,t)}),Ton=me("ZodIPv4",(e,t)=>{T9e.init(e,t),Di.init(e,t)}),von=me("ZodIPv6",(e,t)=>{v9e.init(e,t),Di.init(e,t)}),Ron=me("ZodCIDRv4",(e,t)=>{R9e.init(e,t),Di.init(e,t)}),Aon=me("ZodCIDRv6",(e,t)=>{A9e.init(e,t),Di.init(e,t)}),won=me("ZodBase64",(e,t)=>{k9e.init(e,t),Di.init(e,t)}),kon=me("ZodBase64URL",(e,t)=>{I9e.init(e,t),Di.init(e,t)}),Ion=me("ZodE164",(e,t)=>{x9e.init(e,t),Di.init(e,t)}),xon=me("ZodJWT",(e,t)=>{O9e.init(e,t),Di.init(e,t)}),lZe=me("ZodNumber",(e,t)=>{wre.init(e,t),Ji.init(e,t),e.gt=(r,i)=>e.check(f2(r,i)),e.gte=(r,i)=>e.check(oC(r,i)),e.min=(r,i)=>e.check(oC(r,i)),e.lt=(r,i)=>e.check(d2(r,i)),e.lte=(r,i)=>e.check(sC(r,i)),e.max=(r,i)=>e.check(sC(r,i)),e.int=r=>e.check(aZe(r)),e.safe=r=>e.check(aZe(r)),e.positive=r=>e.check(f2(0,r)),e.nonnegative=r=>e.check(oC(0,r)),e.negative=r=>e.check(d2(0,r)),e.nonpositive=r=>e.check(sC(0,r)),e.multipleOf=(r,i)=>e.check(p2(r,i)),e.step=(r,i)=>e.check(p2(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});Oon=me("ZodNumberFormat",(e,t)=>{P9e.init(e,t),lZe.init(e,t)});Pon=me("ZodBoolean",(e,t)=>{N9e.init(e,t),Ji.init(e,t)});Non=me("ZodNull",(e,t)=>{C9e.init(e,t),Ji.init(e,t)});Con=me("ZodUnknown",(e,t)=>{M9e.init(e,t),Ji.init(e,t)});Mon=me("ZodNever",(e,t)=>{D9e.init(e,t),Ji.init(e,t)});Lon=me("ZodArray",(e,t)=>{L9e.init(e,t),Ji.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(Kw(n,r)),e.nonempty=n=>e.check(Kw(1,n)),e.max=(n,r)=>e.check(h2(n,r)),e.length=(n,r)=>e.check(m2(n,r)),e.unwrap=()=>e.element});fZe=me("ZodObject",(e,t)=>{U9e.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:Don()}),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(mZe,e,n[0]),e.required=(...n)=>or.required(gZe,e,n[0])});pZe=me("ZodUnion",(e,t)=>{kre.init(e,t),Ji.init(e,t),e.options=t.options});Uon=me("ZodDiscriminatedUnion",(e,t)=>{pZe.init(e,t),F9e.init(e,t)});Fon=me("ZodIntersection",(e,t)=>{j9e.init(e,t),Ji.init(e,t)});jon=me("ZodRecord",(e,t)=>{H9e.init(e,t),Ji.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});Jre=me("ZodEnum",(e,t)=>{q9e.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 Jre({...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 Jre({...t,checks:[],...or.normalizeParams(i),entries:s})}});Hon=me("ZodLiteral",(e,t)=>{B9e.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]}})});qon=me("ZodTransform",(e,t)=>{z9e.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)}});mZe=me("ZodOptional",(e,t)=>{G9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});Bon=me("ZodNullable",(e,t)=>{V9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});zon=me("ZodDefault",(e,t)=>{W9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});Von=me("ZodPrefault",(e,t)=>{K9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});gZe=me("ZodNonOptional",(e,t)=>{Y9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});Yon=me("ZodCatch",(e,t)=>{Z9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});Jon=me("ZodPipe",(e,t)=>{J9e.init(e,t),Ji.init(e,t),e.in=t.in,e.out=t.out});Xon=me("ZodReadonly",(e,t)=>{X9e.init(e,t),Ji.init(e,t)});yZe=me("ZodCustom",(e,t)=>{Q9e.init(e,t),Ji.init(e,t)})});var bZe=v(()=>{});var EZe=v(()=>{});var _Ze=v(()=>{hd();Kre();qre();Yre();Zre();bZe();hd();tYe();l2();Wre();EZe();pd(eYe())});var TZe=v(()=>{_Ze()});var vZe=v(()=>{TZe()});var tie,RZe,OS,_2,_o,AZe,wZe,OBr,ian,san,nie,Sl,uC,kZe,ma,md,gd,ga,T2,IZe,rie,xZe,OZe,iie,lC,Sn,sie,PZe,NZe,PBr,v2,oan,R2,aan,dC,Jw,CZe,can,uan,lan,dan,fan,pan,oie,han,man,aie,A2,gan,yan,w2,San,fC,pC,ban,hC,Xw,Ean,mC,k2,I2,x2,NBr,O2,P2,N2,MZe,DZe,LZe,cie,UZe,gC,Qw,FZe,_an,Tan,van,Ran,Aan,uie,wan,kan,Ian,xan,Oan,Pan,Nan,Can,Man,Dan,Lan,Uan,lie,Fan,jan,die,fie,pie,hie,Han,qan,Ban,mie,zan,Gan,Van,Wan,Kan,jZe,gie,Yan,C2,CBr,Zan,yC,Jan,MBr,SC,Xan,yie,Qan,$an,ecn,tcn,ncn,rcn,icn,E2,scn,ocn,acn,bC,Sie,ccn,ucn,lcn,dcn,fcn,pcn,hcn,mcn,gcn,ycn,Scn,bcn,Ecn,_cn,Tcn,vcn,Rcn,Acn,$w,wcn,kcn,Icn,bie,xcn,Ocn,Pcn,Eie,Ncn,DBr,LBr,UBr,FBr,jBr,HBr,rn,eie,C_=v(()=>{vZe();tie="2025-11-25",RZe=[tie,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],OS="io.modelcontextprotocol/related-task",_2="2.0",_o=SZe(e=>e!==null&&(typeof e=="object"||typeof e=="function")),AZe=mi([le(),vr().int()]),wZe=le(),OBr=Bc({ttl:vr().optional(),pollInterval:vr().optional()}),ian=$e({ttl:vr().optional()}),san=$e({taskId:le()}),nie=Bc({progressToken:AZe.optional(),[OS]:san.optional()}),Sl=$e({_meta:nie.optional()}),uC=Sl.extend({task:ian.optional()}),kZe=e=>uC.safeParse(e).success,ma=$e({method:le(),params:Sl.loose().optional()}),md=$e({_meta:nie.optional()}),gd=$e({method:le(),params:md.loose().optional()}),ga=Bc({_meta:nie.optional()}),T2=mi([le(),vr().int()]),IZe=$e({jsonrpc:ft(_2),id:T2,...ma.shape}).strict(),rie=e=>IZe.safeParse(e).success,xZe=$e({jsonrpc:ft(_2),...gd.shape}).strict(),OZe=e=>xZe.safeParse(e).success,iie=$e({jsonrpc:ft(_2),id:T2,result:ga}).strict(),lC=e=>iie.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"})(Sn||(Sn={}));sie=$e({jsonrpc:ft(_2),id:T2.optional(),error:$e({code:vr().int(),message:le(),data:Li().optional()})}).strict(),PZe=e=>sie.safeParse(e).success,NZe=mi([IZe,xZe,iie,sie]),PBr=mi([iie,sie]),v2=ga.strict(),oan=md.extend({requestId:T2.optional(),reason:le().optional()}),R2=gd.extend({method:ft("notifications/cancelled"),params:oan}),aan=$e({src:le(),mimeType:le().optional(),sizes:Vn(le()).optional(),theme:Tu(["light","dark"]).optional()}),dC=$e({icons:Vn(aan).optional()}),Jw=$e({name:le(),title:le().optional()}),CZe=Jw.extend({...Jw.shape,...dC.shape,version:le(),websiteUrl:le().optional(),description:le().optional()}),can=b2($e({applyDefaults:Vo().optional()}),ii(le(),Li())),uan=$re(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,b2($e({form:can.optional(),url:_o.optional()}),ii(le(),Li()).optional())),lan=Bc({list:_o.optional(),cancel:_o.optional(),requests:Bc({sampling:Bc({createMessage:_o.optional()}).optional(),elicitation:Bc({create:_o.optional()}).optional()}).optional()}),dan=Bc({list:_o.optional(),cancel:_o.optional(),requests:Bc({tools:Bc({call:_o.optional()}).optional()}).optional()}),fan=$e({experimental:ii(le(),_o).optional(),sampling:$e({context:_o.optional(),tools:_o.optional()}).optional(),elicitation:uan.optional(),roots:$e({listChanged:Vo().optional()}).optional(),tasks:lan.optional(),extensions:ii(le(),_o).optional()}),pan=Sl.extend({protocolVersion:le(),capabilities:fan,clientInfo:CZe}),oie=ma.extend({method:ft("initialize"),params:pan}),han=$e({experimental:ii(le(),_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:dan.optional(),extensions:ii(le(),_o).optional()}),man=ga.extend({protocolVersion:le(),capabilities:han,serverInfo:CZe,instructions:le().optional()}),aie=gd.extend({method:ft("notifications/initialized"),params:md.optional()}),A2=ma.extend({method:ft("ping"),params:Sl.optional()}),gan=$e({progress:vr(),total:Ui(vr()),message:Ui(le())}),yan=$e({...md.shape,...gan.shape,progressToken:AZe}),w2=gd.extend({method:ft("notifications/progress"),params:yan}),San=Sl.extend({cursor:wZe.optional()}),fC=ma.extend({params:San.optional()}),pC=ga.extend({nextCursor:wZe.optional()}),ban=Tu(["working","input_required","completed","failed","cancelled"]),hC=$e({taskId:le(),status:ban,ttl:mi([vr(),dZe()]),createdAt:le(),lastUpdatedAt:le(),pollInterval:Ui(vr()),statusMessage:Ui(le())}),Xw=ga.extend({task:hC}),Ean=md.merge(hC),mC=gd.extend({method:ft("notifications/tasks/status"),params:Ean}),k2=ma.extend({method:ft("tasks/get"),params:Sl.extend({taskId:le()})}),I2=ga.merge(hC),x2=ma.extend({method:ft("tasks/result"),params:Sl.extend({taskId:le()})}),NBr=ga.loose(),O2=fC.extend({method:ft("tasks/list")}),P2=pC.extend({tasks:Vn(hC)}),N2=ma.extend({method:ft("tasks/cancel"),params:Sl.extend({taskId:le()})}),MZe=ga.merge(hC),DZe=$e({uri:le(),mimeType:Ui(le()),_meta:ii(le(),Li()).optional()}),LZe=DZe.extend({text:le()}),cie=le().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),UZe=DZe.extend({blob:cie}),gC=Tu(["user","assistant"]),Qw=$e({audience:Vn(gC).optional(),priority:vr().min(0).max(1).optional(),lastModified:aC.datetime({offset:!0}).optional()}),FZe=$e({...Jw.shape,...dC.shape,uri:le(),description:Ui(le()),mimeType:Ui(le()),size:Ui(vr()),annotations:Qw.optional(),_meta:Ui(Bc({}))}),_an=$e({...Jw.shape,...dC.shape,uriTemplate:le(),description:Ui(le()),mimeType:Ui(le()),annotations:Qw.optional(),_meta:Ui(Bc({}))}),Tan=fC.extend({method:ft("resources/list")}),van=pC.extend({resources:Vn(FZe)}),Ran=fC.extend({method:ft("resources/templates/list")}),Aan=pC.extend({resourceTemplates:Vn(_an)}),uie=Sl.extend({uri:le()}),wan=uie,kan=ma.extend({method:ft("resources/read"),params:wan}),Ian=ga.extend({contents:Vn(mi([LZe,UZe]))}),xan=gd.extend({method:ft("notifications/resources/list_changed"),params:md.optional()}),Oan=uie,Pan=ma.extend({method:ft("resources/subscribe"),params:Oan}),Nan=uie,Can=ma.extend({method:ft("resources/unsubscribe"),params:Nan}),Man=md.extend({uri:le()}),Dan=gd.extend({method:ft("notifications/resources/updated"),params:Man}),Lan=$e({name:le(),description:Ui(le()),required:Ui(Vo())}),Uan=$e({...Jw.shape,...dC.shape,description:Ui(le()),arguments:Ui(Vn(Lan)),_meta:Ui(Bc({}))}),lie=fC.extend({method:ft("prompts/list")}),Fan=pC.extend({prompts:Vn(Uan)}),jan=Sl.extend({name:le(),arguments:ii(le(),le()).optional()}),die=ma.extend({method:ft("prompts/get"),params:jan}),fie=$e({type:ft("text"),text:le(),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),pie=$e({type:ft("image"),data:cie,mimeType:le(),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),hie=$e({type:ft("audio"),data:cie,mimeType:le(),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),Han=$e({type:ft("tool_use"),name:le(),id:le(),input:ii(le(),Li()),_meta:ii(le(),Li()).optional()}),qan=$e({type:ft("resource"),resource:mi([LZe,UZe]),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),Ban=FZe.extend({type:ft("resource_link")}),mie=mi([fie,pie,hie,Ban,qan]),zan=$e({role:gC,content:mie}),Gan=ga.extend({description:le().optional(),messages:Vn(zan)}),Van=gd.extend({method:ft("notifications/prompts/list_changed"),params:md.optional()}),Wan=$e({title:le().optional(),readOnlyHint:Vo().optional(),destructiveHint:Vo().optional(),idempotentHint:Vo().optional(),openWorldHint:Vo().optional()}),Kan=$e({taskSupport:Tu(["required","optional","forbidden"]).optional()}),jZe=$e({...Jw.shape,...dC.shape,description:le().optional(),inputSchema:$e({type:ft("object"),properties:ii(le(),_o).optional(),required:Vn(le()).optional()}).catchall(Li()),outputSchema:$e({type:ft("object"),properties:ii(le(),_o).optional(),required:Vn(le()).optional()}).catchall(Li()).optional(),annotations:Wan.optional(),execution:Kan.optional(),_meta:ii(le(),Li()).optional()}),gie=fC.extend({method:ft("tools/list")}),Yan=pC.extend({tools:Vn(jZe)}),C2=ga.extend({content:Vn(mie).default([]),structuredContent:ii(le(),Li()).optional(),isError:Vo().optional()}),CBr=C2.or(ga.extend({toolResult:Li()})),Zan=uC.extend({name:le(),arguments:ii(le(),Li()).optional()}),yC=ma.extend({method:ft("tools/call"),params:Zan}),Jan=gd.extend({method:ft("notifications/tools/list_changed"),params:md.optional()}),MBr=$e({autoRefresh:Vo().default(!0),debounceMs:vr().int().nonnegative().default(300)}),SC=Tu(["debug","info","notice","warning","error","critical","alert","emergency"]),Xan=Sl.extend({level:SC}),yie=ma.extend({method:ft("logging/setLevel"),params:Xan}),Qan=md.extend({level:SC,logger:le().optional(),data:Li()}),$an=gd.extend({method:ft("notifications/message"),params:Qan}),ecn=$e({name:le().optional()}),tcn=$e({hints:Vn(ecn).optional(),costPriority:vr().min(0).max(1).optional(),speedPriority:vr().min(0).max(1).optional(),intelligencePriority:vr().min(0).max(1).optional()}),ncn=$e({mode:Tu(["auto","required","none"]).optional()}),rcn=$e({type:ft("tool_result"),toolUseId:le().describe("The unique identifier for the corresponding tool call."),content:Vn(mie).default([]),structuredContent:$e({}).loose().optional(),isError:Vo().optional(),_meta:ii(le(),Li()).optional()}),icn=Qre("type",[fie,pie,hie]),E2=Qre("type",[fie,pie,hie,Han,rcn]),scn=$e({role:gC,content:mi([E2,Vn(E2)]),_meta:ii(le(),Li()).optional()}),ocn=uC.extend({messages:Vn(scn),modelPreferences:tcn.optional(),systemPrompt:le().optional(),includeContext:Tu(["none","thisServer","allServers"]).optional(),temperature:vr().optional(),maxTokens:vr().int(),stopSequences:Vn(le()).optional(),metadata:_o.optional(),tools:Vn(jZe).optional(),toolChoice:ncn.optional()}),acn=ma.extend({method:ft("sampling/createMessage"),params:ocn}),bC=ga.extend({model:le(),stopReason:Ui(Tu(["endTurn","stopSequence","maxTokens"]).or(le())),role:gC,content:icn}),Sie=ga.extend({model:le(),stopReason:Ui(Tu(["endTurn","stopSequence","maxTokens","toolUse"]).or(le())),role:gC,content:mi([E2,Vn(E2)])}),ccn=$e({type:ft("boolean"),title:le().optional(),description:le().optional(),default:Vo().optional()}),ucn=$e({type:ft("string"),title:le().optional(),description:le().optional(),minLength:vr().optional(),maxLength:vr().optional(),format:Tu(["email","uri","date","date-time"]).optional(),default:le().optional()}),lcn=$e({type:Tu(["number","integer"]),title:le().optional(),description:le().optional(),minimum:vr().optional(),maximum:vr().optional(),default:vr().optional()}),dcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),enum:Vn(le()),default:le().optional()}),fcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),oneOf:Vn($e({const:le(),title:le()})),default:le().optional()}),pcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),enum:Vn(le()),enumNames:Vn(le()).optional(),default:le().optional()}),hcn=mi([dcn,fcn]),mcn=$e({type:ft("array"),title:le().optional(),description:le().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({type:ft("string"),enum:Vn(le())}),default:Vn(le()).optional()}),gcn=$e({type:ft("array"),title:le().optional(),description:le().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({anyOf:Vn($e({const:le(),title:le()}))}),default:Vn(le()).optional()}),ycn=mi([mcn,gcn]),Scn=mi([pcn,hcn,ycn]),bcn=mi([Scn,ccn,ucn,lcn]),Ecn=uC.extend({mode:ft("form").optional(),message:le(),requestedSchema:$e({type:ft("object"),properties:ii(le(),bcn),required:Vn(le()).optional()})}),_cn=uC.extend({mode:ft("url"),message:le(),elicitationId:le(),url:le().url()}),Tcn=mi([Ecn,_cn]),vcn=ma.extend({method:ft("elicitation/create"),params:Tcn}),Rcn=md.extend({elicitationId:le()}),Acn=gd.extend({method:ft("notifications/elicitation/complete"),params:Rcn}),$w=ga.extend({action:Tu(["accept","decline","cancel"]),content:$re(e=>e===null?void 0:e,ii(le(),mi([le(),vr(),Vo(),Vn(le())])).optional())}),wcn=$e({type:ft("ref/resource"),uri:le()}),kcn=$e({type:ft("ref/prompt"),name:le()}),Icn=Sl.extend({ref:mi([kcn,wcn]),argument:$e({name:le(),value:le()}),context:$e({arguments:ii(le(),le()).optional()}).optional()}),bie=ma.extend({method:ft("completion/complete"),params:Icn}),xcn=ga.extend({completion:Bc({values:Vn(le()).max(100),total:Ui(vr().int()),hasMore:Ui(Vo())})}),Ocn=$e({uri:le().startsWith("file://"),name:le().optional(),_meta:ii(le(),Li()).optional()}),Pcn=ma.extend({method:ft("roots/list"),params:Sl.optional()}),Eie=ga.extend({roots:Vn(Ocn)}),Ncn=gd.extend({method:ft("notifications/roots/list_changed"),params:md.optional()}),DBr=mi([A2,oie,bie,yie,die,lie,Tan,Ran,kan,Pan,Can,yC,gie,k2,x2,O2,N2]),LBr=mi([R2,w2,aie,Ncn,mC]),UBr=mi([v2,bC,Sie,$w,Eie,I2,P2,Xw]),FBr=mi([A2,acn,vcn,Pcn,k2,x2,O2,N2]),jBr=mi([R2,w2,$an,Dan,xan,Jan,Van,mC,Acn]),HBr=mi([v2,man,xcn,Gan,Fan,van,Aan,Ian,C2,Yan,I2,P2,Xw]),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===Sn.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new eie(i.elicitations,n)}return new e(t,n,r)}},eie=class extends rn{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(Sn.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}}});function PS(e){return e==="completed"||e==="failed"||e==="cancelled"}var HZe=v(()=>{});var M2=v(()=>{});var _ie=v(()=>{M2()});var NS=v(()=>{});var D2=v(()=>{});var yd=v(()=>{D2()});var Tie=v(()=>{NS();Qs()});var vie=v(()=>{NS()});var Rie=v(()=>{});var L2=v(()=>{Qs()});var Aie=v(()=>{Qs()});var wie=v(()=>{NS()});var kie=v(()=>{Qs()});var Iie=v(()=>{Qs();yd()});var xie=v(()=>{});var Oie=v(()=>{Qs()});var Pie=v(()=>{});var bzr,U2=v(()=>{NS();bzr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789")});var F2=v(()=>{Qs();U2();L2();yd()});var Nie=v(()=>{Qs();F2();yd()});var Cie=v(()=>{});var Mie=v(()=>{yd()});var Die=v(()=>{});var j2=v(()=>{Qs()});var Lie=v(()=>{Qs();j2()});var Uie=v(()=>{NS()});var Fie=v(()=>{Qs()});var jie=v(()=>{Qs();yd()});var Hie=v(()=>{Qs()});var qie=v(()=>{Qs()});var Bie=v(()=>{NS();Qs()});var zie=v(()=>{Qs()});var Gie=v(()=>{yd()});var Vie=v(()=>{yd()});var Wie=v(()=>{Qs()});var Kie=v(()=>{yd();Tie();vie();Rie();L2();Aie();wie();kie();Iie();xie();Oie();Pie();Nie();Cie();Mie();Die();Lie();Uie();Fie();jie();Hie();qie();F2();Bie();U2();zie();Gie();j2();Vie();Wie()});var Qs=v(()=>{M2();Kie();D2();yd()});var qZe=v(()=>{});var Yie=v(()=>{Qs();_ie();yd()});var Zie=v(()=>{M2();_ie();NS();D2();Qs();qZe();yd();Tie();vie();Rie();L2();Aie();wie();kie();Iie();xie();Oie();Pie();Nie();Cie();Mie();Die();Lie();Uie();Fie();jie();Hie();qie();Wie();F2();Bie();U2();zie();Gie();j2();Vie();Kie();Yie();Yie()});function Jie(e){let n=g2(e)?.method;if(!n)throw new Error("Schema is missing a method literal");let r=JYe(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function Xie(e,t){let n=xS(e,t);if(!n.success)throw n.error;return n.data}var zZe=v(()=>{y2();Zie()});function GZe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function VZe(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];GZe(o)&&GZe(s)?n[i]={...o,...s}:n[i]=s}return n}var Ucn,H2,WZe=v(()=>{y2();C_();HZe();zZe();Ucn=6e4,H2=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(R2,n=>{this._oncancel(n)}),this.setNotificationHandler(w2,n=>{this._onprogress(n)}),this.setRequestHandler(A2,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(k2,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(Sn.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(x2,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(Sn.InvalidParams,`Task not found: ${s}`);if(!PS(o.status))return await this._waitForTaskUpdate(s,r.signal),await i();if(PS(o.status)){let a=await this._taskStore.getTaskResult(s,r.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[OS]:{taskId:s}}}}return await i()};return await i()}),this.setRequestHandler(O2,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(Sn.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(N2,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(Sn.InvalidParams,`Task not found: ${n.params.taskId}`);if(PS(i.status))throw new rn(Sn.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(Sn.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof rn?i:new rn(Sn.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(Sn.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),lC(s)||PZe(s)?this._onresponse(s):rie(s)?this._onrequest(s,o):OZe(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(Sn.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?.[OS]?.taskId;if(r===void 0){let l={jsonrpc:"2.0",id:t.id,error:{code:Sn.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=kZe(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(Sn.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:Sn.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),lC(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(lC(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),lC(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(Sn.InternalError,String(o))}}return}let s;try{let o=await this.request(t,Xw,r);if(o.task)s=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new rn(Sn.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},r);if(yield{type:"taskStatus",task:a},PS(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(Sn.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new rn(Sn.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(Sn.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||{},[OS]: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(Sn.RequestTimeout,String(b));l(S)};this._responseHandlers.set(f,b=>{if(!r?.signal?.aborted){if(b instanceof Error)return l(b);try{let S=xS(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??Ucn,g=()=>h(rn.fromError(Sn.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},I2,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},P2,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},MZe,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||{},[OS]: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||{},[OS]: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||{},[OS]:n.relatedTask}}}),await this._transport.send(o,n)}setRequestHandler(t,n){let r=Jie(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=Xie(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=Jie(t);this._notificationHandlers.set(r,i=>{let s=Xie(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"&&rie(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new rn(Sn.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(Sn.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,r);n.addEventListener("abort",()=>{clearTimeout(o),s(new rn(Sn.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(Sn.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=mC.parse({method:"notifications/tasks/status",params:a});await this.notification(c),PS(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(Sn.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(PS(a.status))throw new rn(Sn.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=mC.parse({method:"notifications/tasks/status",params:c});await this.notification(u),PS(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}}});var ek=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 _C=class{};tr._CodeOrName=_C;tr.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var M_=class extends _C{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=M_;var Sd=class extends _C{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 M_&&(n[r.str]=(n[r.str]||0)+1),n),{})}};tr._Code=Sd;tr.nil=new Sd("");function KZe(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=ek(),ese=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},q2;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(q2||(Ru.UsedValueState=q2={}));Ru.varKinds={const:new vu.Name("const"),let:new vu.Name("let"),var:new vu.Name("var")};var B2=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=B2;var z2=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=z2;var Wcn=(0,vu._)`\n`,tse=class extends B2{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?Wcn:vu.nil}}get(){return this._scope}name(t){return new z2(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,q2.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 ese(u);c.set(u,q2.Completed)})}return s}};Ru.ValueScope=tse});var Ot=w(bn=>{"use strict";Object.defineProperty(bn,"__esModule",{value:!0});bn.or=bn.and=bn.not=bn.CodeGen=bn.operators=bn.varKinds=bn.ValueScopeName=bn.ValueScope=bn.Scope=bn.Name=bn.regexpCode=bn.stringify=bn.getProperty=bn.nil=bn.strConcat=bn.str=bn._=void 0;var Wn=ek(),Rf=G2(),CS=ek();Object.defineProperty(bn,"_",{enumerable:!0,get:function(){return CS._}});Object.defineProperty(bn,"str",{enumerable:!0,get:function(){return CS.str}});Object.defineProperty(bn,"strConcat",{enumerable:!0,get:function(){return CS.strConcat}});Object.defineProperty(bn,"nil",{enumerable:!0,get:function(){return CS.nil}});Object.defineProperty(bn,"getProperty",{enumerable:!0,get:function(){return CS.getProperty}});Object.defineProperty(bn,"stringify",{enumerable:!0,get:function(){return CS.stringify}});Object.defineProperty(bn,"regexpCode",{enumerable:!0,get:function(){return CS.regexpCode}});Object.defineProperty(bn,"Name",{enumerable:!0,get:function(){return CS.Name}});var Y2=G2();Object.defineProperty(bn,"Scope",{enumerable:!0,get:function(){return Y2.Scope}});Object.defineProperty(bn,"ValueScope",{enumerable:!0,get:function(){return Y2.ValueScope}});Object.defineProperty(bn,"ValueScopeName",{enumerable:!0,get:function(){return Y2.ValueScopeName}});Object.defineProperty(bn,"varKinds",{enumerable:!0,get:function(){return Y2.varKinds}});bn.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 Wm=class{optimizeNodes(){return this}optimizeNames(t,n){return this}},nse=class extends Wm{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=nk(this.rhs,t,n)),this}get names(){return this.rhs instanceof Wn._CodeOrName?this.rhs.names:{}}},V2=class extends Wm{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=nk(this.rhs,t,n),this}get names(){let t=this.lhs instanceof Wn.Name?{}:{...this.lhs.names};return K2(t,this.rhs)}},rse=class extends V2{constructor(t,n,r,i){super(t,r,i),this.op=n}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},ise=class extends Wm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},sse=class extends Wm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},ose=class extends Wm{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},ase=class extends Wm{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=nk(this.code,t,n),this}get names(){return this.code instanceof Wn._CodeOrName?this.code.names:{}}},vC=class extends Wm{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)||(Kcn(t,s.names),r.splice(i,1))}return r.length>0?this:void 0}get names(){return this.nodes.reduce((t,n)=>U_(t,n.names),{})}},Km=class extends vC{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},cse=class extends vC{},tk=class extends Km{};tk.kind="else";var D_=class e extends Km{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 tk(r):r}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(ZZe(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=nk(this.condition,t,n),this}get names(){let t=super.names;return K2(t,this.condition),this.else&&U_(t,this.else.names),t}};D_.kind="if";var L_=class extends Km{};L_.kind="for";var use=class extends L_{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=nk(this.iteration,t,n),this}get names(){return U_(super.names,this.iteration.names)}},lse=class extends L_{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=K2(super.names,this.from);return K2(t,this.to)}},W2=class extends L_{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=nk(this.iterable,t,n),this}get names(){return U_(super.names,this.iterable.names)}},RC=class extends Km{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)}};RC.kind="func";var AC=class extends vC{render(t){return"return "+super.render(t)}};AC.kind="return";var dse=class extends Km{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&&U_(t,this.catch.names),this.finally&&U_(t,this.finally.names),t}},wC=class extends Km{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};wC.kind="catch";var kC=class extends Km{render(t){return"finally"+super.render(t)}};kC.kind="finally";var fse=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 cse]}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 nse(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 V2(t,n,r))}add(t,n){return this._leafNode(new rse(t,bn.operators.ADD,n))}code(t){return typeof t=="function"?t():t!==Wn.nil&&this._leafNode(new ase(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 D_(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 D_(t))}else(){return this._elseNode(new tk)}endIf(){return this._endBlockNode(D_,tk)}_for(t,n){return this._blockNode(t),n&&this.code(n).endFor(),this}for(t,n){return this._for(new use(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 lse(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 W2("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 W2("in",i,s,n),()=>r(s))}endFor(){return this._endBlockNode(L_)}label(t){return this._leafNode(new ise(t))}break(t){return this._leafNode(new sse(t))}return(t){let n=new AC;if(this._blockNode(n),this.code(t),n.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(AC)}try(t,n,r){if(!n&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new dse;if(this._blockNode(i),this.code(t),n){let s=this.name("e");this._currNode=i.catch=new wC(s),n(s)}return r&&(this._currNode=i.finally=new kC,this.code(r)),this._endBlockNode(wC,kC)}throw(t){return this._leafNode(new ose(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 RC(t,n,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(RC)}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 D_))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}};bn.CodeGen=fse;function U_(e,t){for(let n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function K2(e,t){return t instanceof Wn._CodeOrName?U_(e,t.names):e}function nk(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 Kcn(e,t){for(let n in t)e[n]=(e[n]||0)-(t[n]||0)}function ZZe(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,Wn._)`!${pse(e)}`}bn.not=ZZe;var Ycn=JZe(bn.operators.AND);function Zcn(...e){return e.reduce(Ycn)}bn.and=Zcn;var Jcn=JZe(bn.operators.OR);function Xcn(...e){return e.reduce(Jcn)}bn.or=Xcn;function JZe(e){return(t,n)=>t===Wn.nil?n:n===Wn.nil?t:(0,Wn._)`${pse(t)} ${e} ${pse(n)}`}function pse(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(),Qcn=ek();function $cn(e){let t={};for(let n of e)t[n]=!0;return t}Rn.toHash=$cn;function eun(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:($Ze(e,t),!e6e(t,e.self.RULES.all))}Rn.alwaysValidSchema=eun;function $Ze(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]||r6e(e,`unknown keyword: "${s}"`)}Rn.checkUnknownRules=$Ze;function e6e(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(t[n])return!0;return!1}Rn.schemaHasRules=e6e;function tun(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=tun;function nun({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=nun;function run(e){return t6e(decodeURIComponent(e))}Rn.unescapeFragment=run;function iun(e){return encodeURIComponent(mse(e))}Rn.escapeFragment=iun;function mse(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}Rn.escapeJsonPointer=mse;function t6e(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}Rn.unescapeJsonPointer=t6e;function sun(e,t){if(Array.isArray(e))for(let n of e)t(n);else t(e)}Rn.eachItem=sun;function XZe({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:XZe({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} || {}`),gse(e,n,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:n6e}),items:XZe({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 n6e(e,t){if(t===!0)return e.var("props",!0);let n=e.var("props",(0,Wr._)`{}`);return t!==void 0&&gse(e,n,t),n}Rn.evaluatedPropsToName=n6e;function gse(e,t,n){Object.keys(n).forEach(r=>e.assign((0,Wr._)`${t}${(0,Wr.getProperty)(r)}`,!0))}Rn.setEvaluated=gse;var QZe={};function oun(e,t){return e.scopeValue("func",{ref:t,code:QZe[t.code]||(QZe[t.code]=new Qcn._Code(t.code))})}Rn.useFunc=oun;var hse;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(hse||(Rn.Type=hse={}));function aun(e,t,n){if(e instanceof Wr.Name){let r=t===hse.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():"/"+mse(e)}Rn.getErrorPath=aun;function r6e(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=r6e});var bd=w(yse=>{"use strict";Object.defineProperty(yse,"__esModule",{value:!0});var ic=Ot(),cun={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")};yse.default=cun});var IC=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(),Z2=pn(),zc=bd();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 uun(e,t=sc.keywordError,n,r){let{it:i}=e,{gen:s,compositeRule:o,allErrors:a}=i,c=o6e(e,t,n);r??(o||a)?i6e(s,c):s6e(i,(0,Jn._)`[${c}]`)}sc.reportError=uun;function lun(e,t=sc.keywordError,n){let{it:r}=e,{gen:i,compositeRule:s,allErrors:o}=r,a=o6e(e,t,n);i6e(i,a),s||o||s6e(r,zc.default.vErrors)}sc.reportExtraError=lun;function dun(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=dun;function fun({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=fun;function i6e(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 s6e(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 F_={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 o6e(e,t,n){let{createErrors:r}=e.it;return r===!1?(0,Jn._)`{}`:pun(e,t,n)}function pun(e,t,n={}){let{gen:r,it:i}=e,s=[hun(i,n),mun(e,n)];return gun(e,t,s),r.object(...s)}function hun({errorPath:e},{instancePath:t}){let n=t?(0,Jn.str)`${e}${(0,Z2.getErrorPath)(t,Z2.Type.Str)}`:e;return[zc.default.instancePath,(0,Jn.strConcat)(zc.default.instancePath,n)]}function mun({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,Z2.getErrorPath)(n,Z2.Type.Str)}`),[F_.schemaPath,i]}function gun(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([F_.keyword,i],[F_.params,typeof t=="function"?t(e):t||(0,Jn._)`{}`]),c.messages&&r.push([F_.message,typeof n=="function"?n(e):n]),c.verbose&&r.push([F_.schema,o],[F_.parentSchema,(0,Jn._)`${l}${d}`],[zc.default.data,s]),u&&r.push([F_.propertyName,u])}});var c6e=w(rk=>{"use strict";Object.defineProperty(rk,"__esModule",{value:!0});rk.boolOrEmptySchema=rk.topBoolOrEmptySchema=void 0;var yun=IC(),Sun=Ot(),bun=bd(),Eun={message:"boolean schema is false"};function _un(e){let{gen:t,schema:n,validateName:r}=e;n===!1?a6e(e,!1):typeof n=="object"&&n.$async===!0?t.return(bun.default.data):(t.assign((0,Sun._)`${r}.errors`,null),t.return(!0))}rk.topBoolOrEmptySchema=_un;function Tun(e,t){let{gen:n,schema:r}=e;r===!1?(n.var(t,!1),a6e(e)):n.var(t,!0)}rk.boolOrEmptySchema=Tun;function a6e(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,yun.reportError)(i,Eun,void 0,t)}});var Sse=w(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});ik.getRules=ik.isJSONType=void 0;var vun=["string","number","integer","boolean","null","object","array"],Run=new Set(vun);function Aun(e){return typeof e=="string"&&Run.has(e)}ik.isJSONType=Aun;function wun(){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:{}}}ik.getRules=wun});var bse=w(MS=>{"use strict";Object.defineProperty(MS,"__esModule",{value:!0});MS.shouldUseRule=MS.shouldUseGroup=MS.schemaHasRulesForType=void 0;function kun({schema:e,self:t},n){let r=t.RULES.types[n];return r&&r!==!0&&u6e(e,r)}MS.schemaHasRulesForType=kun;function u6e(e,t){return t.rules.some(n=>l6e(e,n))}MS.shouldUseGroup=u6e;function l6e(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))}MS.shouldUseRule=l6e});var xC=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 Iun=Sse(),xun=bse(),Oun=IC(),hn=Ot(),d6e=pn(),sk;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(sk||(oc.DataType=sk={}));function Pun(e){let t=f6e(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=Pun;function f6e(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(Iun.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}oc.getJSONTypes=f6e;function Nun(e,t){let{gen:n,data:r,opts:i}=e,s=Cun(t,i.coerceTypes),o=t.length>0&&!(s.length===0&&t.length===1&&(0,xun.schemaHasRulesForType)(e,t[0]));if(o){let a=_se(t,r,i.strictNumbers,sk.Wrong);n.if(a,()=>{s.length?Mun(e,t,s):Tse(e)})}return o}oc.coerceAndCheckDataType=Nun;var p6e=new Set(["string","number","integer","boolean","null"]);function Cun(e,t){return t?e.filter(n=>p6e.has(n)||t==="array"&&n==="array"):[]}function Mun(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(_se(t,i,s.strictNumbers),()=>r.assign(a,i))),r.if((0,hn._)`${a} !== undefined`);for(let u of n)(p6e.has(u)||u==="array"&&s.coerceTypes==="array")&&c(u);r.else(),Tse(e),r.endIf(),r.if((0,hn._)`${a} !== undefined`,()=>{r.assign(i,a),Dun(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 Sun({gen:e,parentData:t,parentDataProperty:n},r){e.if((0,hn._)`${t} !== undefined`,()=>e.assign((0,hn._)`${t}[${n}]`,r))}function dse(e,t,n,r=Qw.Correct){let i=r===Qw.Correct?hn.operators.EQ:hn.operators.NEQ,s;switch(e){case"null":return(0,hn._)`${t} ${i} null`;case"array":s=(0,hn._)`Array.isArray(${t})`;break;case"object":s=(0,hn._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":s=o((0,hn._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":s=o();break;default:return(0,hn._)`typeof ${t} ${i} ${e}`}return r===Qw.Correct?s:(0,hn.not)(s);function o(a=hn.nil){return(0,hn.and)((0,hn._)`typeof ${t} == "number"`,a,n?(0,hn._)`isFinite(${t})`:hn.nil)}}sc.checkDataType=dse;function fse(e,t,n,r){if(e.length===1)return dse(e[0],t,n,r);let i,s=(0,e5e.toHash)(e);if(s.array&&s.object){let o=(0,hn._)`typeof ${t} != "object"`;i=s.null?o:(0,hn._)`!${t} || ${o}`,delete s.null,delete s.array,delete s.object}else i=hn.nil;s.number&&delete s.integer;for(let o in s)i=(0,hn.and)(i,dse(o,t,n,r));return i}sc.checkDataTypes=fse;var Eun={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,hn._)`{type: ${e}}`:(0,hn._)`{type: ${t}}`};function pse(e){let t=bun(e);(0,pun.reportError)(t,Eun)}sc.reportTypeError=pse;function bun(e){let{gen:t,data:n,schema:r}=e,i=(0,e5e.schemaRefOrVal)(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:e}}});var i5e=w(B2=>{"use strict";Object.defineProperty(B2,"__esModule",{value:!0});B2.assignDefaults=void 0;var $w=Ot(),_un=pn();function Tun(e,t){let{properties:n,items:r}=e.schema;if(t==="object"&&n)for(let i in n)r5e(e,i,n[i].default);else t==="array"&&Array.isArray(r)&&r.forEach((i,s)=>r5e(e,s,i.default))}B2.assignDefaults=Tun;function r5e(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,_un.checkStrictMode)(e,`default is ignored for: ${a}`);return}let c=(0,$w._)`${a} === undefined`;o.useDefaults==="empty"&&(c=(0,$w._)`${c} || ${a} === null || ${a} === ""`),r.if(c,(0,$w._)`${a} = ${(0,$w.stringify)(n)}`)}});var Sa=w(Fr=>{"use strict";Object.defineProperty(Fr,"__esModule",{value:!0});Fr.validateUnion=Fr.validateArray=Fr.usePattern=Fr.callValidateCode=Fr.schemaProperties=Fr.allSchemaProperties=Fr.noPropertyInData=Fr.propertyInData=Fr.isOwnProperty=Fr.hasPropFunc=Fr.reportMissingProp=Fr.checkMissingProp=Fr.checkReportMissingProp=void 0;var gi=Ot(),hse=pn(),CS=gd(),vun=pn();function Aun(e,t){let{gen:n,data:r,it:i}=e;n.if(gse(n,r,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,gi._)`${t}`},!0),e.error()})}Fr.checkReportMissingProp=Aun;function Run({gen:e,data:t,it:{opts:n}},r,i){return(0,gi.or)(...r.map(s=>(0,gi.and)(gse(e,t,s,n.ownProperties),(0,gi._)`${i} = ${s}`)))}Fr.checkMissingProp=Run;function wun(e,t){e.setParams({missingProperty:t},!0),e.error()}Fr.reportMissingProp=wun;function s5e(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,gi._)`Object.prototype.hasOwnProperty`})}Fr.hasPropFunc=s5e;function mse(e,t,n){return(0,gi._)`${s5e(e)}.call(${t}, ${n})`}Fr.isOwnProperty=mse;function kun(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} !== undefined`;return r?(0,gi._)`${i} && ${mse(e,t,n)}`:i}Fr.propertyInData=kun;function gse(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} === undefined`;return r?(0,gi.or)(i,(0,gi.not)(mse(e,t,n))):i}Fr.noPropertyInData=gse;function o5e(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}Fr.allSchemaProperties=o5e;function Iun(e,t){return o5e(t).filter(n=>!(0,hse.alwaysValidSchema)(e,t[n]))}Fr.schemaProperties=Iun;function xun({schemaCode:e,data:t,it:{gen:n,topSchemaRef:r,schemaPath:i,errorPath:s},it:o},a,c,u){let l=u?(0,gi._)`${e}, ${t}, ${r}${i}`:t,d=[[CS.default.instancePath,(0,gi.strConcat)(CS.default.instancePath,s)],[CS.default.parentData,o.parentData],[CS.default.parentDataProperty,o.parentDataProperty],[CS.default.rootData,CS.default.rootData]];o.opts.dynamicRef&&d.push([CS.default.dynamicAnchors,CS.default.dynamicAnchors]);let f=(0,gi._)`${l}, ${n.object(...d)}`;return c!==gi.nil?(0,gi._)`${a}.call(${c}, ${f})`:(0,gi._)`${a}(${f})`}Fr.callValidateCode=xun;var Oun=(0,gi._)`new RegExp`;function Nun({gen:e,it:{opts:t}},n){let r=t.unicodeRegExp?"u":"",{regExp:i}=t.code,s=i(n,r);return e.scopeValue("pattern",{key:s.toString(),ref:s,code:(0,gi._)`${i.code==="new RegExp"?Oun:(0,vun.useFunc)(e,i)}(${n}, ${r})`})}Fr.usePattern=Nun;function Pun(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:hse.Type.Num},s),t.if((0,gi.not)(s),a)})}}Fr.validateArray=Pun;function Cun(e){let{gen:t,schema:n,keyword:r,it:i}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(n.some(c=>(0,hse.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let o=t.let("valid",!1),a=t.name("_valid");t.block(()=>n.forEach((c,u)=>{let l=e.subschema({keyword:r,schemaProp:u,compositeRule:!0},a);t.assign(o,(0,gi._)`${o} || ${a}`),e.mergeValidEvaluated(l,a)||t.if((0,gi.not)(o))})),e.result(o,()=>e.reset(),()=>e.error(!0))}Fr.validateUnion=Cun});var u5e=w(dh=>{"use strict";Object.defineProperty(dh,"__esModule",{value:!0});dh.validateKeywordUsage=dh.validSchemaType=dh.funcKeywordCode=dh.macroKeywordCode=void 0;var Gc=Ot(),U_=gd(),Mun=Sa(),Lun=yC();function Dun(e,t){let{gen:n,keyword:r,schema:i,parentSchema:s,it:o}=e,a=t.macro.call(o.self,i,s,o),c=c5e(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=Dun;function Uun(e,t){var n;let{gen:r,keyword:i,schema:s,parentSchema:o,$data:a,it:c}=e;jun(c,t);let u=!a&&t.compile?t.compile.call(c.self,s,o,c):t.validate,l=c5e(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&&a5e(e),y(()=>e.error());else{let g=t.async?p():h();t.modifying&&a5e(e),y(()=>Fun(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?U_.default.this:U_.default.self,S=!("compile"in t&&!a||t.schema===!1);r.assign(d,(0,Gc._)`${g}${(0,Mun.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=Uun;function a5e(e){let{gen:t,data:n,it:r}=e;t.if(r.parentData,()=>t.assign(n,(0,Gc._)`${r.parentData}[${r.parentDataProperty}]`))}function Fun(e,t){let{gen:n}=e;n.if((0,Gc._)`Array.isArray(${t})`,()=>{n.assign(U_.default.vErrors,(0,Gc._)`${U_.default.vErrors} === null ? ${t} : ${U_.default.vErrors}.concat(${t})`).assign(U_.default.errors,(0,Gc._)`${U_.default.vErrors}.length`),(0,Lun.extendErrors)(e)},()=>e.error())}function jun({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function c5e(e,t,n){if(n===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof n=="function"?{ref:n}:{ref:n,code:(0,Gc.stringify)(n)})}function Hun(e,t,n=!1){return!t.length||t.some(r=>r==="array"?Array.isArray(e):r==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==r||n&&typeof e>"u")}dh.validSchemaType=Hun;function qun({schema:e,opts:t,self:n,errSchemaPath:r},i,s){if(Array.isArray(i.keyword)?!i.keyword.includes(s):i.keyword!==s)throw new Error("ajv implementation error");let o=i.dependencies;if(o?.some(a=>!Object.prototype.hasOwnProperty.call(e,a)))throw new Error(`parent schema must have dependencies of ${s}: ${o.join(",")}`);if(i.validateSchema&&!i.validateSchema(e[s])){let c=`keyword "${s}" value is invalid at path "${r}": `+n.errorsText(i.validateSchema.errors);if(t.validateSchema==="log")n.logger.error(c);else throw new Error(c)}}dh.validateKeywordUsage=qun});var d5e=w(MS=>{"use strict";Object.defineProperty(MS,"__esModule",{value:!0});MS.extendSubschemaMode=MS.extendSubschemaData=MS.getSubschema=void 0;var fh=Ot(),l5e=pn();function Bun(e,{keyword:t,schemaProp:n,schema:r,schemaPath:i,errSchemaPath:s,topSchemaRef:o}){if(t!==void 0&&r!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let a=e.schema[t];return n===void 0?{schema:a,schemaPath:(0,fh._)`${e.schemaPath}${(0,fh.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:a[n],schemaPath:(0,fh._)`${e.schemaPath}${(0,fh.getProperty)(t)}${(0,fh.getProperty)(n)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,l5e.escapeFragment)(n)}`}}if(r!==void 0){if(i===void 0||s===void 0||o===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:r,schemaPath:i,topSchemaRef:o,errSchemaPath:s}}throw new Error('either "keyword" or "schema" must be passed')}MS.getSubschema=Bun;function Gun(e,t,{dataProp:n,dataPropType:r,data:i,dataTypes:s,propertyName:o}){if(i!==void 0&&n!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:a}=t;if(n!==void 0){let{errorPath:u,dataPathArr:l,opts:d}=t,f=a.let("data",(0,fh._)`${t.data}${(0,fh.getProperty)(n)}`,!0);c(f),e.errorPath=(0,fh.str)`${u}${(0,l5e.getErrorPath)(n,r,d.jsPropertySyntax)}`,e.parentDataProperty=(0,fh._)`${n}`,e.dataPathArr=[...l,e.parentDataProperty]}if(i!==void 0){let u=i instanceof fh.Name?i:a.let("data",i,!0);c(u),o!==void 0&&(e.propertyName=o)}s&&(e.dataTypes=s);function c(u){e.data=u,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,u]}}MS.extendSubschemaData=Gun;function zun(e,{jtdDiscriminator:t,jtdMetadata:n,compositeRule:r,createErrors:i,allErrors:s}){r!==void 0&&(e.compositeRule=r),i!==void 0&&(e.createErrors=i),s!==void 0&&(e.allErrors=s),e.jtdDiscriminator=t,e.jtdMetadata=n}MS.extendSubschemaMode=zun});var EC=w((Z2r,f5e)=>{"use strict";f5e.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 h5e=w((Y2r,p5e)=>{"use strict";var LS=p5e.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(){};G2(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 G2(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 Wun=pn(),Kun=EC(),Zun=h5e(),Yun=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Jun(e,t=!0){return typeof e=="boolean"?!0:t===!0?!yse(e):t?m5e(e)<=t:!1}Au.inlineRef=Jun;var Xun=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function yse(e){for(let t in e){if(Xun.has(t))return!0;let n=e[t];if(Array.isArray(n)&&n.some(yse)||typeof n=="object"&&yse(n))return!0}return!1}function m5e(e){let t=0;for(let n in e){if(n==="$ref")return 1/0;if(t++,!Yun.has(n)&&(typeof e[n]=="object"&&(0,Wun.eachItem)(e[n],r=>t+=m5e(r)),t===1/0))return 1/0}return t}function g5e(e,t="",n){n!==!1&&(t=ek(t));let r=e.parse(t);return y5e(e,r)}Au.getFullPath=g5e;function y5e(e,t){return e.serialize(t).split("#")[0]+"#"}Au._getFullPath=y5e;var Qun=/#\/?$/;function ek(e){return e?e.replace(Qun,""):""}Au.normalizeId=ek;function $un(e,t,n){return n=ek(n),e.resolve(t,n)}Au.resolveUrl=$un;var eln=/^[a-z_][-a-z0-9._]*$/i;function tln(e,t){if(typeof e=="boolean")return{};let{schemaId:n,uriResolver:r}=this.opts,i=ek(e[n]||t),s={"":i},o=g5e(r,i,!1),a={},c=new Set;return Zun(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(!eln.test(S))throw new Error(`invalid anchor "${S}"`);g.call(this,`#${S}`)}}}),a;function u(d,f,p){if(f!==void 0&&!Kun(d,f))throw l(p)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Au.getSchemaRefs=tln});var tk=w(DS=>{"use strict";Object.defineProperty(DS,"__esModule",{value:!0});DS.getData=DS.KeywordCxt=DS.validateFunctionCode=void 0;var T5e=XYe(),S5e=SC(),Ese=lse(),z2=SC(),nln=i5e(),TC=u5e(),Sse=d5e(),pt=Ot(),Xt=gd(),rln=bC(),Wm=pn(),_C=yC();function iln(e){if(R5e(e)&&(w5e(e),A5e(e))){aln(e);return}v5e(e,()=>(0,T5e.topBoolOrEmptySchema)(e))}DS.validateFunctionCode=iln;function v5e({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"; ${E5e(n,i)}`),oln(e,i),e.code(s)}):e.func(t,(0,pt._)`${Xt.default.data}, ${sln(i)}`,r.$async,()=>e.code(E5e(n,i)).code(s))}function sln(e){return(0,pt._)`{${Xt.default.instancePath}="", ${Xt.default.parentData}, ${Xt.default.parentDataProperty}, ${Xt.default.rootData}=${Xt.default.data}${e.dynamicRef?(0,pt._)`, ${Xt.default.dynamicAnchors}={}`:pt.nil}}={}`}function oln(e,t){e.if(Xt.default.valCxt,()=>{e.var(Xt.default.instancePath,(0,pt._)`${Xt.default.valCxt}.${Xt.default.instancePath}`),e.var(Xt.default.parentData,(0,pt._)`${Xt.default.valCxt}.${Xt.default.parentData}`),e.var(Xt.default.parentDataProperty,(0,pt._)`${Xt.default.valCxt}.${Xt.default.parentDataProperty}`),e.var(Xt.default.rootData,(0,pt._)`${Xt.default.valCxt}.${Xt.default.rootData}`),t.dynamicRef&&e.var(Xt.default.dynamicAnchors,(0,pt._)`${Xt.default.valCxt}.${Xt.default.dynamicAnchors}`)},()=>{e.var(Xt.default.instancePath,(0,pt._)`""`),e.var(Xt.default.parentData,(0,pt._)`undefined`),e.var(Xt.default.parentDataProperty,(0,pt._)`undefined`),e.var(Xt.default.rootData,Xt.default.data),t.dynamicRef&&e.var(Xt.default.dynamicAnchors,(0,pt._)`{}`)})}function aln(e){let{schema:t,opts:n,gen:r}=e;v5e(e,()=>{n.$comment&&t.$comment&&I5e(e),fln(e),r.let(Xt.default.vErrors,null),r.let(Xt.default.errors,0),n.unevaluated&&cln(e),k5e(e),mln(e)})}function cln(e){let{gen:t,validateName:n}=e;e.evaluated=t.const("evaluated",(0,pt._)`${n}.evaluated`),t.if((0,pt._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,pt._)`${e.evaluated}.props`,(0,pt._)`undefined`)),t.if((0,pt._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,pt._)`${e.evaluated}.items`,(0,pt._)`undefined`))}function E5e(e,t){let n=typeof e=="object"&&e[t.schemaId];return n&&(t.code.source||t.code.process)?(0,pt._)`/*# sourceURL=${n} */`:pt.nil}function uln(e,t){if(R5e(e)&&(w5e(e),A5e(e))){lln(e,t);return}(0,T5e.boolOrEmptySchema)(e,t)}function A5e({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 R5e(e){return typeof e.schema!="boolean"}function lln(e,t){let{schema:n,gen:r,opts:i}=e;i.$comment&&n.$comment&&I5e(e),pln(e),hln(e);let s=r.const("_errs",Xt.default.errors);k5e(e,s),r.var(t,(0,pt._)`${s} === ${Xt.default.errors}`)}function w5e(e){(0,Wm.checkUnknownRules)(e),dln(e)}function k5e(e,t){if(e.opts.jtd)return b5e(e,[],!1,t);let n=(0,S5e.getSchemaTypes)(e.schema),r=(0,S5e.coerceAndCheckDataType)(e,n);b5e(e,n,!r,t)}function dln(e){let{schema:t,errSchemaPath:n,opts:r,self:i}=e;t.$ref&&r.ignoreKeywordsWithRef&&(0,Wm.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}function fln(e){let{schema:t,opts:n}=e;t.default!==void 0&&n.useDefaults&&n.strictSchema&&(0,Wm.checkStrictMode)(e,"default is ignored in the schema root")}function pln(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,rln.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function hln(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function I5e({gen:e,schemaEnv:t,schema:n,errSchemaPath:r,opts:i}){let s=n.$comment;if(i.$comment===!0)e.code((0,pt._)`${Xt.default.self}.logger.log(${s})`);else if(typeof i.$comment=="function"){let o=(0,pt.str)`${r}/$comment`,a=e.scopeValue("root",{ref:t.root});e.code((0,pt._)`${Xt.default.self}.opts.$comment(${s}, ${o}, ${a}.schema)`)}}function mln(e){let{gen:t,schemaEnv:n,validateName:r,ValidationError:i,opts:s}=e;n.$async?t.if((0,pt._)`${Xt.default.errors} === 0`,()=>t.return(Xt.default.data),()=>t.throw((0,pt._)`new ${i}(${Xt.default.vErrors})`)):(t.assign((0,pt._)`${r}.errors`,Xt.default.vErrors),s.unevaluated&&gln(e),t.return((0,pt._)`${Xt.default.errors} === 0`))}function gln({gen:e,evaluated:t,props:n,items:r}){n instanceof pt.Name&&e.assign((0,pt._)`${t}.props`,n),r instanceof pt.Name&&e.assign((0,pt._)`${t}.items`,r)}function b5e(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(()=>O5e(e,"$ref",l.all.$ref.definition));return}c.jtd||yln(e,t),i.block(()=>{for(let f of l.rules)d(f);d(l.post)});function d(f){(0,Ese.shouldUseGroup)(s,f)&&(f.type?(i.if((0,z2.checkDataType)(f.type,o,c.strictNumbers)),_5e(e,f),t.length===1&&t[0]===f.type&&n&&(i.else(),(0,z2.reportTypeError)(e)),i.endIf()):_5e(e,f),a||i.if((0,pt._)`${Xt.default.errors} === ${r||0}`))}}function _5e(e,t){let{gen:n,schema:r,opts:{useDefaults:i}}=e;i&&(0,nln.assignDefaults)(e,t.type),n.block(()=>{for(let s of t.rules)(0,Ese.shouldUseRule)(r,s)&&O5e(e,s.keyword,s.definition,t.type)})}function yln(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(Sln(e,t),e.opts.allowUnionTypes||Eln(e,t),bln(e,e.dataTypes))}function Sln(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(n=>{x5e(e.dataTypes,n)||bse(e,`type "${n}" not allowed by context "${e.dataTypes.join(",")}"`)}),Tln(e,t)}}function Eln(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&bse(e,"use allowUnionTypes to allow union type keyword")}function bln(e,t){let n=e.self.RULES.all;for(let r in n){let i=n[r];if(typeof i=="object"&&(0,Ese.shouldUseRule)(e.schema,i)){let{type:s}=i.definition;s.length&&!s.some(o=>_ln(t,o))&&bse(e,`missing type "${s.join(",")}" for keyword "${r}"`)}}}function _ln(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function x5e(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function Tln(e,t){let n=[];for(let r of e.dataTypes)x5e(t,r)?n.push(r):t.includes("integer")&&r==="number"&&n.push("integer");e.dataTypes=n}function bse(e,t){let n=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${n}" (strictTypes)`,(0,Wm.checkStrictMode)(e,t,e.opts.strictTypes)}var V2=class{constructor(t,n,r){if((0,TC.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",N5e(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,TC.validSchemaType)(this.schema,n.schemaType,n.allowUndefined))throw new Error(`${r} value must be ${JSON.stringify(n.schemaType)}`);("code"in n?n.trackErrors:n.errors!==!1)&&(this.errsCount=t.gen.const("_errs",Xt.default.errors))}result(t,n,r){this.failResult((0,pt.not)(t),n,r)}failResult(t,n,r){this.gen.if(t),r?r():this.error(),n?(this.gen.else(),n(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,n){this.failResult((0,pt.not)(t),void 0,n)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:n}=this;this.fail((0,pt._)`${n} !== undefined && (${(0,pt.or)(this.invalid$data(),t)})`)}error(t,n,r){if(n){this.setParams(n),this._error(t,r),this.setParams({});return}this._error(t,r)}_error(t,n){(t?_C.reportExtraError:_C.reportError)(this,this.def.error,n)}$dataError(){(0,_C.reportError)(this,this.def.$dataError||_C.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,_C.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,n){n?Object.assign(this.params,t):this.params=t}block$data(t,n,r=pt.nil){this.gen.block(()=>{this.check$data(t,r),n()})}check$data(t=pt.nil,n=pt.nil){if(!this.$data)return;let{gen:r,schemaCode:i,schemaType:s,def:o}=this;r.if((0,pt.or)((0,pt._)`${i} === undefined`,n)),t!==pt.nil&&r.assign(t,!0),(s.length||o.validateSchema)&&(r.elseIf(this.invalid$data()),this.$dataError(),t!==pt.nil&&r.assign(t,!1)),r.else()}invalid$data(){let{gen:t,schemaCode:n,schemaType:r,def:i,it:s}=this;return(0,pt.or)(o(),a());function o(){if(r.length){if(!(n instanceof pt.Name))throw new Error("ajv implementation error");let c=Array.isArray(r)?r:[r];return(0,pt._)`${(0,z2.checkDataTypes)(c,n,s.opts.strictNumbers,z2.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,Sse.getSubschema)(this.it,t);(0,Sse.extendSubschemaData)(r,this.it,t),(0,Sse.extendSubschemaMode)(r,t);let i={...this.it,...r,items:void 0,props:void 0};return uln(i,n),i}mergeEvaluated(t,n){let{it:r,gen:i}=this;r.opts.unevaluated&&(r.props!==!0&&t.props!==void 0&&(r.props=Wm.mergeEvaluated.props(i,t.props,r.props,n)),r.items!==!0&&t.items!==void 0&&(r.items=Wm.mergeEvaluated.items(i,t.items,r.items,n)))}mergeValidEvaluated(t,n){let{it:r,gen:i}=this;if(r.opts.unevaluated&&(r.props!==!0||r.items!==!0))return i.if(n,()=>this.mergeEvaluated(t,pt.Name)),!0}};DS.KeywordCxt=V2;function O5e(e,t,n,r){let i=new V2(e,n,t);"code"in n?n.code(i,r):i.$data&&n.validate?(0,TC.funcKeywordCode)(i,n):"macro"in n?(0,TC.macroKeywordCode)(i,n):(n.compile||n.validate)&&(0,TC.funcKeywordCode)(i,n)}var vln=/^\/(?:[^~]|~0|~1)*$/,Aln=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function N5e(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let i,s;if(e==="")return Xt.default.rootData;if(e[0]==="/"){if(!vln.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,s=Xt.default.rootData}else{let u=Aln.exec(e);if(!u)throw new Error(`Invalid JSON-pointer: ${e}`);let l=+u[1];if(i=u[2],i==="#"){if(l>=t)throw new Error(c("property/index",l));return r[t-l]}if(l>t)throw new Error(c("data",l));if(s=n[t-l],!i)return s}let o=s,a=i.split("/");for(let u of a)u&&(s=(0,pt._)`${s}${(0,pt.getProperty)((0,Wm.unescapeJsonPointer)(u))}`,o=(0,pt._)`${o} && ${s}`);return o;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${t}`}}DS.getData=N5e});var vC=w(Tse=>{"use strict";Object.defineProperty(Tse,"__esModule",{value:!0});var _se=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Tse.default=_se});var Km=w(Rse=>{"use strict";Object.defineProperty(Rse,"__esModule",{value:!0});var vse=bC(),Ase=class extends Error{constructor(t,n,r,i){super(i||`can't resolve reference ${r} from id ${n}`),this.missingRef=(0,vse.resolveUrl)(t,n,r),this.missingSchema=(0,vse.normalizeId)((0,vse.getFullPath)(t,this.missingRef))}};Rse.default=Ase});var j_=w(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.resolveSchema=yd.getCompilingSchema=yd.resolveRef=yd.compileSchema=yd.SchemaEnv=void 0;var vf=Ot(),Rln=vC(),F_=gd(),Af=bC(),P5e=pn(),wln=tk(),nk=class{constructor(t){var n;this.refs={},this.dynamicAnchors={};let r;typeof t.schema=="object"&&(r=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(n=t.baseId)!==null&&n!==void 0?n:(0,Af.normalizeId)(r?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=r?.$async,this.refs={}}};yd.SchemaEnv=nk;function kse(e){let t=C5e.call(this,e);if(t)return t;let n=(0,Af.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:r,lines:i}=this.opts.code,{ownProperties:s}=this.opts,o=new vf.CodeGen(this.scope,{es5:r,lines:i,ownProperties:s}),a;e.$async&&(a=o.scopeValue("Error",{ref:Rln.default,code:(0,vf._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");e.validateName=c;let u={gen:o,allErrors:this.opts.allErrors,data:F_.default.data,parentData:F_.default.parentData,parentDataProperty:F_.default.parentDataProperty,dataNames:[F_.default.data],dataPathArr:[vf.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,vf.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:a,schema:e.schema,schemaEnv:e,rootId:n,baseId:e.baseId||n,schemaPath:vf.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,vf._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(e),(0,wln.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let d=o.toString();l=`${o.scopeRefs(F_.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let p=new Function(`${F_.default.self}`,`${F_.default.scope}`,l)(this,this.scope.get());if(this.scope.value(c,{ref:p}),p.errors=null,p.schema=e.schema,p.schemaEnv=e,e.$async&&(p.$async=!0),this.opts.code.source===!0&&(p.source={validateName:c,validateCode:d,scopeValues:o._values}),this.opts.unevaluated){let{props:h,items:m}=u;p.evaluated={props:h instanceof vf.Name?void 0:h,items:m instanceof vf.Name?void 0:m,dynamicProps:h instanceof vf.Name,dynamicItems:m instanceof vf.Name},p.source&&(p.source.evaluated=(0,vf.stringify)(p.evaluated))}return e.validate=p,e}catch(d){throw delete e.validate,delete e.validateName,l&&this.logger.error("Error compiling schema, function code:",l),d}finally{this._compilations.delete(e)}}yd.compileSchema=kse;function kln(e,t,n){var r;n=(0,Af.resolveUrl)(this.opts.uriResolver,t,n);let i=e.refs[n];if(i)return i;let s=Oln.call(this,e,n);if(s===void 0){let o=(r=e.localRefs)===null||r===void 0?void 0:r[n],{schemaId:a}=this.opts;o&&(s=new nk({schema:o,schemaId:a,root:e,baseId:t}))}if(s!==void 0)return e.refs[n]=Iln.call(this,s)}yd.resolveRef=kln;function Iln(e){return(0,Af.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:kse.call(this,e)}function C5e(e){for(let t of this._compilations)if(xln(t,e))return t}yd.getCompilingSchema=C5e;function xln(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function Oln(e,t){let n;for(;typeof(n=this.refs[t])=="string";)t=n;return n||this.schemas[t]||W2.call(this,e,t)}function W2(e,t){let n=this.opts.uriResolver.parse(t),r=(0,Af._getFullPath)(this.opts.uriResolver,n),i=(0,Af.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&r===i)return wse.call(this,n,e);let s=(0,Af.normalizeId)(r),o=this.refs[s]||this.schemas[s];if(typeof o=="string"){let a=W2.call(this,e,o);return typeof a?.schema!="object"?void 0:wse.call(this,n,a)}if(typeof o?.schema=="object"){if(o.validate||kse.call(this,o),s===(0,Af.normalizeId)(t)){let{schema:a}=o,{schemaId:c}=this.opts,u=a[c];return u&&(i=(0,Af.resolveUrl)(this.opts.uriResolver,i,u)),new nk({schema:a,schemaId:c,root:e,baseId:i})}return wse.call(this,n,o)}}yd.resolveSchema=W2;var Nln=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function wse(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,P5e.unescapeFragment)(a)];if(c===void 0)return;n=c;let u=typeof n=="object"&&n[this.opts.schemaId];!Nln.has(a)&&u&&(t=(0,Af.resolveUrl)(this.opts.uriResolver,t,u))}let s;if(typeof n!="boolean"&&n.$ref&&!(0,P5e.schemaHasRulesButRef)(n,this.RULES)){let a=(0,Af.resolveUrl)(this.opts.uriResolver,t,n.$ref);s=W2.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 M5e=w((tVr,Pln)=>{Pln.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 xse=w((nVr,F5e)=>{"use strict";var Cln=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),D5e=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 Ise(e){let t="",n=0,r=0;for(r=0;r=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return"";t+=e[r];break}for(r+=1;r=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return"";t+=e[r]}return t}var Mln=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function L5e(e){return e.length=0,!0}function Lln(e,t,n){if(e.length){let r=Ise(e);if(r!=="")t.push(r);else return n.error=!0,!1;e.length=0}return!0}function Dln(e){let t=0,n={error:!1,address:"",zone:""},r=[],i=[],s=!1,o=!1,a=Lln;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=L5e}else{i.push(u);continue}}return i.length&&(a===L5e?n.zone=i.join(""):o?r.push(i.join("")):r.push(Ise(i))),n.address=r.join(""),n}function U5e(e){if(Uln(e,":")<2)return{host:e,isIPV6:!1};let t=Dln(e);if(t.error)return{host:e,isIPV6:!1};{let n=t.address,r=t.address;return t.zone&&(n+="%"+t.zone,r+="%25"+t.zone),{host:n,isIPV6:!0,escapedHost:r}}}function Uln(e,t){let n=0;for(let r=0;r{"use strict";var{isUUID:qln}=xse(),Bln=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Gln=["http","https","ws","wss","urn","urn:uuid"];function zln(e){return Gln.indexOf(e)!==-1}function Ose(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 j5e(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function H5e(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function Vln(e){return e.secure=Ose(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function Wln(e){if((e.port===(Ose(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,n]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=n,e.resourceName=void 0}return e.fragment=void 0,e}function Kln(e,t){if(!e.path)return e.error="URN can not be parsed",e;let n=e.path.match(Bln);if(n){let r=t.scheme||e.scheme||"urn";e.nid=n[1].toLowerCase(),e.nss=n[2];let i=`${r}:${t.nid||e.nid}`,s=Nse(i);e.path=void 0,s&&(e=s.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function Zln(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=Nse(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 Yln(e,t){let n=e;return n.uuid=n.nss,n.nss=void 0,!t.tolerant&&(!n.uuid||!qln(n.uuid))&&(n.error=n.error||"UUID is not valid."),n}function Jln(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var q5e={scheme:"http",domainHost:!0,parse:j5e,serialize:H5e},Xln={scheme:"https",domainHost:q5e.domainHost,parse:j5e,serialize:H5e},K2={scheme:"ws",domainHost:!0,parse:Vln,serialize:Wln},Qln={scheme:"wss",domainHost:K2.domainHost,parse:K2.parse,serialize:K2.serialize},$ln={scheme:"urn",parse:Kln,serialize:Zln,skipNormalize:!0},edn={scheme:"urn:uuid",parse:Yln,serialize:Jln,skipNormalize:!0},Z2={http:q5e,https:Xln,ws:K2,wss:Qln,urn:$ln,"urn:uuid":edn};Object.setPrototypeOf(Z2,null);function Nse(e){return e&&(Z2[e]||Z2[e.toLowerCase()])||void 0}B5e.exports={wsIsSecure:Ose,SCHEMES:Z2,isValidSchemeName:zln,getSchemeHandler:Nse}});var X2=w((iVr,J2)=>{"use strict";var{normalizeIPv6:tdn,removeDotSegments:AC,recomposeAuthority:ndn,normalizeComponentEncoding:Y2,isIPv4:rdn,nonSimpleDomain:idn}=xse(),{SCHEMES:sdn,getSchemeHandler:z5e}=G5e();function odn(e,t){return typeof e=="string"?e=ph(Zm(e,t),t):typeof e=="object"&&(e=Zm(ph(e,t),t)),e}function adn(e,t,n){let r=n?Object.assign({scheme:"null"},n):{scheme:"null"},i=V5e(Zm(e,r),Zm(t,r),r,!0);return r.skipEscape=!0,ph(i,r)}function V5e(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=AC(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=AC(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=AC(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=AC(i.path)),i.query=t.query):(i.path=e.path,t.query!==void 0?i.query=t.query:i.query=e.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function cdn(e,t,n){return typeof e=="string"?(e=unescape(e),e=ph(Y2(Zm(e,n),!0),{...n,skipEscape:!0})):typeof e=="object"&&(e=ph(Y2(e,!0),{...n,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=ph(Y2(Zm(t,n),!0),{...n,skipEscape:!0})):typeof t=="object"&&(t=ph(Y2(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=z5e(r.scheme||n.scheme);s&&s.serialize&&s.serialize(n,r),n.path!==void 0&&(r.skipEscape?n.path=unescape(n.path):(n.path=escape(n.path),n.scheme!==void 0&&(n.path=n.path.split("%3A").join(":")))),r.reference!=="suffix"&&n.scheme&&i.push(n.scheme,":");let o=ndn(n);if(o!==void 0&&(r.reference!=="suffix"&&i.push("//"),i.push(o),n.path&&n.path[0]!=="/"&&i.push("/")),n.path!==void 0){let a=n.path;!r.absolutePath&&(!s||!s.absolutePath)&&(a=AC(a)),o===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),i.push(a)}return n.query!==void 0&&i.push("?",n.query),n.fragment!==void 0&&i.push("#",n.fragment),i.join("")}var udn=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function 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(udn);if(s){if(r.scheme=s[1],r.userinfo=s[3],r.host=s[4],r.port=parseInt(s[5],10),r.path=s[6]||"",r.query=s[7],r.fragment=s[8],isNaN(r.port)&&(r.port=s[5]),r.host)if(rdn(r.host)===!1){let c=tdn(r.host);r.host=c.host.toLowerCase(),i=c.isIPV6}else i=!0;r.scheme===void 0&&r.userinfo===void 0&&r.host===void 0&&r.port===void 0&&r.query===void 0&&!r.path?r.reference="same-document":r.scheme===void 0?r.reference="relative":r.fragment===void 0?r.reference="absolute":r.reference="uri",n.reference&&n.reference!=="suffix"&&n.reference!==r.reference&&(r.error=r.error||"URI is not a "+n.reference+" reference.");let o=z5e(n.scheme||r.scheme);if(!n.unicodeSupport&&(!o||!o.unicodeSupport)&&r.host&&(n.domainHost||o&&o.domainHost)&&i===!1&&idn(r.host))try{r.host=URL.domainToASCII(r.host.toLowerCase())}catch(a){r.error=r.error||"Host's domain name can not be converted to ASCII: "+a}(!o||o&&!o.skipNormalize)&&(e.indexOf("%")!==-1&&(r.scheme!==void 0&&(r.scheme=unescape(r.scheme)),r.host!==void 0&&(r.host=unescape(r.host))),r.path&&(r.path=escape(unescape(r.path))),r.fragment&&(r.fragment=encodeURI(decodeURIComponent(r.fragment)))),o&&o.parse&&o.parse(r,n)}else r.error=r.error||"URI can not be parsed.";return r}var Pse={SCHEMES:sdn,normalize:odn,resolve:adn,resolveComponent:V5e,equal:cdn,serialize:ph,parse:Zm};J2.exports=Pse;J2.exports.default=Pse;J2.exports.fastUri=Pse});var K5e=w(Cse=>{"use strict";Object.defineProperty(Cse,"__esModule",{value:!0});var W5e=X2();W5e.code='require("ajv/dist/runtime/uri").default';Cse.default=W5e});var Dse=w(Ea=>{"use strict";Object.defineProperty(Ea,"__esModule",{value:!0});Ea.CodeGen=Ea.Name=Ea.nil=Ea.stringify=Ea.str=Ea._=Ea.KeywordCxt=void 0;var ldn=tk();Object.defineProperty(Ea,"KeywordCxt",{enumerable:!0,get:function(){return ldn.KeywordCxt}});var rk=Ot();Object.defineProperty(Ea,"_",{enumerable:!0,get:function(){return rk._}});Object.defineProperty(Ea,"str",{enumerable:!0,get:function(){return rk.str}});Object.defineProperty(Ea,"stringify",{enumerable:!0,get:function(){return rk.stringify}});Object.defineProperty(Ea,"nil",{enumerable:!0,get:function(){return rk.nil}});Object.defineProperty(Ea,"Name",{enumerable:!0,get:function(){return rk.Name}});Object.defineProperty(Ea,"CodeGen",{enumerable:!0,get:function(){return rk.CodeGen}});var ddn=vC(),Q5e=Km(),fdn=use(),RC=j_(),pdn=Ot(),wC=bC(),Q2=SC(),Lse=pn(),Z5e=M5e(),hdn=K5e(),$5e=(e,t)=>new RegExp(e,t);$5e.code="new RegExp";var mdn=["removeAdditional","useDefaults","coerceTypes"],gdn=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),ydn={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},Sdn={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Y5e=200;function Edn(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:$5e,F=(i=e.uriResolver)!==null&&i!==void 0?i:hdn.default;return{strictSchema:(o=(s=e.strictSchema)!==null&&s!==void 0?s:k)!==null&&o!==void 0?o:!0,strictNumbers:(c=(a=e.strictNumbers)!==null&&a!==void 0?a:k)!==null&&c!==void 0?c:!0,strictTypes:(l=(u=e.strictTypes)!==null&&u!==void 0?u:k)!==null&&l!==void 0?l:"log",strictTuples:(f=(d=e.strictTuples)!==null&&d!==void 0?d:k)!==null&&f!==void 0?f:"log",strictRequired:(h=(p=e.strictRequired)!==null&&p!==void 0?p:k)!==null&&h!==void 0?h:!1,code:e.code?{...e.code,optimize:P,regExp:C}:{optimize:P,regExp:C},loopRequired:(m=e.loopRequired)!==null&&m!==void 0?m:Y5e,loopEnum:(y=e.loopEnum)!==null&&y!==void 0?y:Y5e,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 kC=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...Edn(t)};let{es5:n,lines:r}=this.opts.code;this.scope=new pdn.ValueScope({scope:{},prefixes:gdn,es5:n,lines:r}),this.logger=Rdn(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,fdn.getRules)(),J5e.call(this,ydn,t,"NOT SUPPORTED"),J5e.call(this,Sdn,t,"DEPRECATED","warn"),this._metaOpts=vdn.call(this),t.formats&&_dn.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&Tdn.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),bdn.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:n,schemaId:r}=this.opts,i=Z5e;r==="id"&&(i={...Z5e},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 Q5e.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,wC.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=X5e.call(this,t))=="string";)t=n;if(n===void 0){let{schemaId:r}=this.opts,i=new RC.SchemaEnv({schema:{},schemaId:r});if(n=RC.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=X5e.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,wC.normalizeId)(r),delete this.schemas[r],delete this.refs[r]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let n of t)this.addKeyword(n);return this}addKeyword(t,n){let r;if(typeof t=="string")r=t,typeof n=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),n.keyword=r);else if(typeof t=="object"&&n===void 0){if(n=t,r=n.keyword,Array.isArray(r)&&!r.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(kdn.call(this,r,n),!n)return(0,Lse.eachItem)(r,s=>Mse.call(this,s)),this;xdn.call(this,n);let i={...n,type:(0,Q2.getJSONTypes)(n.type),schemaType:(0,Q2.getJSONTypes)(n.schemaType)};return(0,Lse.eachItem)(r,i.type.length===0?s=>Mse.call(this,s,i):s=>i.type.forEach(o=>Mse.call(this,s,i,o))),this}getKeyword(t){let n=this.RULES.all[t];return typeof n=="object"?n.definition:!!n}removeKeyword(t){let{RULES:n}=this;delete n.keywords[t],delete n.all[t];for(let r of n.rules){let i=r.rules.findIndex(s=>s.keyword===t);i>=0&&r.rules.splice(i,1)}return this}addFormat(t,n){return typeof n=="string"&&(n=new RegExp(n)),this.formats[t]=n,this}errorsText(t=this.errors,{separator:n=", ",dataVar:r="data"}={}){return!t||t.length===0?"No errors":t.map(i=>`${r}${i.instancePath} ${i.message}`).reduce((i,s)=>i+n+s)}$dataMetaSchema(t,n){let r=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let i of n){let s=i.split("/").slice(1),o=t;for(let a of s)o=o[a];for(let a in r){let c=r[a];if(typeof c!="object")continue;let{$data:u}=c.definition,l=o[a];u&&l&&(o[a]=e6e(l))}}return t}_removeAllSchemas(t,n){for(let r in t){let i=t[r];(!n||n.test(r))&&(typeof i=="string"?delete t[r]:i&&!i.meta&&(this._cache.delete(i.schema),delete t[r]))}}_addSchema(t,n,r,i=this.opts.validateSchema,s=this.opts.addUsedSchema){let o,{schemaId:a}=this.opts;if(typeof t=="object")o=t[a];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(t);if(c!==void 0)return c;r=(0,wC.normalizeId)(o||r);let u=wC.getSchemaRefs.call(this,t,r);return c=new RC.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):RC.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{RC.compileSchema.call(this,t)}finally{this.opts=n}}};kC.ValidationError=ddn.default;kC.MissingRefError=Q5e.default;Ea.default=kC;function J5e(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 X5e(e){return e=(0,wC.normalizeId)(e),this.schemas[e]||this.refs[e]}function bdn(){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 _dn(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function Tdn(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let n=e[t];n.keyword||(n.keyword=t),this.addKeyword(n)}}function vdn(){let e={...this.opts};for(let t of mdn)delete e[t];return e}var Adn={log(){},warn(){},error(){}};function Rdn(e){if(e===!1)return Adn;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var wdn=/^[a-z_$][a-z0-9_$:-]*$/i;function kdn(e,t){let{RULES:n}=this;if((0,Lse.eachItem)(e,r=>{if(n.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!wdn.test(r))throw new Error(`Keyword ${r} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function Mse(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,Q2.getJSONTypes)(t.type),schemaType:(0,Q2.getJSONTypes)(t.schemaType)}};t.before?Idn.call(this,o,a,t.before):o.rules.push(a),s.all[e]=a,(r=t.implements)===null||r===void 0||r.forEach(c=>this.addKeyword(c))}function Idn(e,t,n){let r=e.rules.findIndex(i=>i.keyword===n);r>=0?e.rules.splice(r,0,t):(e.rules.push(t),this.logger.warn(`rule ${n} is not defined`))}function xdn(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=e6e(t)),e.validateSchema=this.compile(t,!0))}var Odn={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function e6e(e){return{anyOf:[e,Odn]}}});var t6e=w(Use=>{"use strict";Object.defineProperty(Use,"__esModule",{value:!0});var Ndn={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Use.default=Ndn});var Fse=w(H_=>{"use strict";Object.defineProperty(H_,"__esModule",{value:!0});H_.callRef=H_.getValidate=void 0;var Pdn=Km(),n6e=Sa(),Ru=Ot(),ik=gd(),r6e=j_(),$2=pn(),Cdn={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:n,it:r}=e,{baseId:i,schemaEnv:s,validateName:o,opts:a,self:c}=r,{root:u}=s;if((n==="#"||n==="#/")&&i===u.baseId)return d();let l=r6e.resolveRef.call(c,u,i,n);if(l===void 0)throw new Pdn.default(r.opts.uriResolver,i,n);if(l instanceof r6e.SchemaEnv)return f(l);return p(l);function d(){if(s===u)return eV(e,o,s,s.$async);let h=t.scopeValue("root",{ref:u});return eV(e,(0,Ru._)`${h}.validate`,u,u.$async)}function f(h){let m=i6e(e,h);eV(e,m,h,h.$async)}function p(h){let m=t.scopeValue("schema",a.code.source===!0?{ref:h,code:(0,Ru.stringify)(h)}:{ref:h}),y=t.name("valid"),g=e.subschema({schema:h,dataTypes:[],schemaPath:Ru.nil,topSchemaRef:m,errSchemaPath:n},y);e.mergeEvaluated(g),e.ok(y)}}};function i6e(e,t){let{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):(0,Ru._)`${n.scopeValue("wrapper",{ref:t})}.validate`}H_.getValidate=i6e;function eV(e,t,n,r){let{gen:i,it:s}=e,{allErrors:o,schemaEnv:a,opts:c}=s,u=c.passContext?ik.default.this:Ru.nil;r?l():d();function l(){if(!a.$async)throw new Error("async schema referenced by sync schema");let h=i.let("valid");i.try(()=>{i.code((0,Ru._)`await ${(0,n6e.callValidateCode)(e,t,u)}`),p(t),o||i.assign(h,!0)},m=>{i.if((0,Ru._)`!(${m} instanceof ${s.ValidationError})`,()=>i.throw(m)),f(m),o||i.assign(h,!1)}),e.ok(h)}function d(){e.result((0,n6e.callValidateCode)(e,t,u),()=>p(t),()=>f(t))}function f(h){let m=(0,Ru._)`${h}.errors`;i.assign(ik.default.vErrors,(0,Ru._)`${ik.default.vErrors} === null ? ${m} : ${ik.default.vErrors}.concat(${m})`),i.assign(ik.default.errors,(0,Ru._)`${ik.default.vErrors}.length`)}function p(h){var m;if(!s.opts.unevaluated)return;let 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=$2.mergeEvaluated.props(i,y.props,s.props));else{let g=i.var("props",(0,Ru._)`${h}.evaluated.props`);s.props=$2.mergeEvaluated.props(i,g,s.props,Ru.Name)}if(s.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(s.items=$2.mergeEvaluated.items(i,y.items,s.items));else{let g=i.var("items",(0,Ru._)`${h}.evaluated.items`);s.items=$2.mergeEvaluated.items(i,g,s.items,Ru.Name)}}}H_.callRef=eV;H_.default=Cdn});var s6e=w(jse=>{"use strict";Object.defineProperty(jse,"__esModule",{value:!0});var Mdn=t6e(),Ldn=Fse(),Ddn=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Mdn.default,Ldn.default];jse.default=Ddn});var o6e=w(Hse=>{"use strict";Object.defineProperty(Hse,"__esModule",{value:!0});var tV=Ot(),US=tV.operators,nV={maximum:{okStr:"<=",ok:US.LTE,fail:US.GT},minimum:{okStr:">=",ok:US.GTE,fail:US.LT},exclusiveMaximum:{okStr:"<",ok:US.LT,fail:US.GTE},exclusiveMinimum:{okStr:">",ok:US.GT,fail:US.LTE}},Udn={message:({keyword:e,schemaCode:t})=>(0,tV.str)`must be ${nV[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,tV._)`{comparison: ${nV[e].okStr}, limit: ${t}}`},Fdn={keyword:Object.keys(nV),type:"number",schemaType:"number",$data:!0,error:Udn,code(e){let{keyword:t,data:n,schemaCode:r}=e;e.fail$data((0,tV._)`${n} ${nV[t].fail} ${r} || isNaN(${n})`)}};Hse.default=Fdn});var a6e=w(qse=>{"use strict";Object.defineProperty(qse,"__esModule",{value:!0});var IC=Ot(),jdn={message:({schemaCode:e})=>(0,IC.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,IC._)`{multipleOf: ${e}}`},Hdn={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:jdn,code(e){let{gen:t,data:n,schemaCode:r,it:i}=e,s=i.opts.multipleOfPrecision,o=t.let("res"),a=s?(0,IC._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${s}`:(0,IC._)`${o} !== parseInt(${o})`;e.fail$data((0,IC._)`(${r} === 0 || (${o} = ${n}/${r}, ${a}))`)}};qse.default=Hdn});var u6e=w(Bse=>{"use strict";Object.defineProperty(Bse,"__esModule",{value:!0});function c6e(e){let t=e.length,n=0,r=0,i;for(;r=55296&&i<=56319&&r{"use strict";Object.defineProperty(Gse,"__esModule",{value:!0});var q_=Ot(),qdn=pn(),Bdn=u6e(),Gdn={message({keyword:e,schemaCode:t}){let n=e==="maxLength"?"more":"fewer";return(0,q_.str)`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>(0,q_._)`{limit: ${e}}`},zdn={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Gdn,code(e){let{keyword:t,data:n,schemaCode:r,it:i}=e,s=t==="maxLength"?q_.operators.GT:q_.operators.LT,o=i.opts.unicode===!1?(0,q_._)`${n}.length`:(0,q_._)`${(0,qdn.useFunc)(e.gen,Bdn.default)}(${n})`;e.fail$data((0,q_._)`${o} ${s} ${r}`)}};Gse.default=zdn});var d6e=w(zse=>{"use strict";Object.defineProperty(zse,"__esModule",{value:!0});var Vdn=Sa(),Wdn=pn(),sk=Ot(),Kdn={message:({schemaCode:e})=>(0,sk.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,sk._)`{pattern: ${e}}`},Zdn={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Kdn,code(e){let{gen:t,data:n,$data:r,schema:i,schemaCode:s,it:o}=e,a=o.opts.unicodeRegExp?"u":"";if(r){let{regExp:c}=o.opts.code,u=c.code==="new RegExp"?(0,sk._)`new RegExp`:(0,Wdn.useFunc)(t,c),l=t.let("valid");t.try(()=>t.assign(l,(0,sk._)`${u}(${s}, ${a}).test(${n})`),()=>t.assign(l,!1)),e.fail$data((0,sk._)`!${l}`)}else{let c=(0,Vdn.usePattern)(e,i);e.fail$data((0,sk._)`!${c}.test(${n})`)}}};zse.default=Zdn});var f6e=w(Vse=>{"use strict";Object.defineProperty(Vse,"__esModule",{value:!0});var xC=Ot(),Ydn={message({keyword:e,schemaCode:t}){let n=e==="maxProperties"?"more":"fewer";return(0,xC.str)`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>(0,xC._)`{limit: ${e}}`},Jdn={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Ydn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxProperties"?xC.operators.GT:xC.operators.LT;e.fail$data((0,xC._)`Object.keys(${n}).length ${i} ${r}`)}};Vse.default=Jdn});var p6e=w(Wse=>{"use strict";Object.defineProperty(Wse,"__esModule",{value:!0});var OC=Sa(),NC=Ot(),Xdn=pn(),Qdn={message:({params:{missingProperty:e}})=>(0,NC.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,NC._)`{missingProperty: ${e}}`},$dn={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Qdn,code(e){let{gen:t,schema:n,schemaCode:r,data:i,$data:s,it:o}=e,{opts:a}=o;if(!s&&n.length===0)return;let c=n.length>=a.loopRequired;if(o.allErrors?u():l(),a.strictRequired){let p=e.parentSchema.properties,{definedProperties:h}=e.it;for(let m of n)if(p?.[m]===void 0&&!h.has(m)){let y=o.schemaEnv.baseId+o.errSchemaPath,g=`required property "${m}" is not defined at "${y}" (strictRequired)`;(0,Xdn.checkStrictMode)(o,g,o.opts.strictRequired)}}function u(){if(c||s)e.block$data(NC.nil,d);else for(let p of n)(0,OC.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,OC.checkMissingProp)(e,n,p)),(0,OC.reportMissingProp)(e,p),t.else()}function d(){t.forOf("prop",r,p=>{e.setParams({missingProperty:p}),t.if((0,OC.noPropertyInData)(t,i,p,a.ownProperties),()=>e.error())})}function f(p,h){e.setParams({missingProperty:p}),t.forOf(p,r,()=>{t.assign(h,(0,OC.propertyInData)(t,i,p,a.ownProperties)),t.if((0,NC.not)(h),()=>{e.error(),t.break()})},NC.nil)}}};Wse.default=$dn});var h6e=w(Kse=>{"use strict";Object.defineProperty(Kse,"__esModule",{value:!0});var PC=Ot(),efn={message({keyword:e,schemaCode:t}){let n=e==="maxItems"?"more":"fewer";return(0,PC.str)`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>(0,PC._)`{limit: ${e}}`},tfn={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:efn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxItems"?PC.operators.GT:PC.operators.LT;e.fail$data((0,PC._)`${n}.length ${i} ${r}`)}};Kse.default=tfn});var CC=w(Zse=>{"use strict";Object.defineProperty(Zse,"__esModule",{value:!0});var m6e=EC();m6e.code='require("ajv/dist/runtime/equal").default';Zse.default=m6e});var g6e=w(Jse=>{"use strict";Object.defineProperty(Jse,"__esModule",{value:!0});var Yse=SC(),ba=Ot(),nfn=pn(),rfn=CC(),ifn={message:({params:{i:e,j:t}})=>(0,ba.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,ba._)`{i: ${e}, j: ${t}}`},sfn={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:ifn,code(e){let{gen:t,data:n,$data:r,schema:i,parentSchema:s,schemaCode:o,it:a}=e;if(!r&&!i)return;let c=t.let("valid"),u=s.items?(0,Yse.getSchemaTypes)(s.items):[];e.block$data(c,l,(0,ba._)`${o} === false`),e.ok(c);function l(){let h=t.let("i",(0,ba._)`${n}.length`),m=t.let("j");e.setParams({i:h,j:m}),t.assign(c,!0),t.if((0,ba._)`${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,Yse.checkDataTypes)(u,y,a.opts.strictNumbers,Yse.DataType.Wrong),E=t.const("indices",(0,ba._)`{}`);t.for((0,ba._)`;${h}--;`,()=>{t.let(y,(0,ba._)`${n}[${h}]`),t.if(g,(0,ba._)`continue`),u.length>1&&t.if((0,ba._)`typeof ${y} == "string"`,(0,ba._)`${y} += "_"`),t.if((0,ba._)`typeof ${E}[${y}] == "number"`,()=>{t.assign(m,(0,ba._)`${E}[${y}]`),e.error(),t.assign(c,!1).break()}).code((0,ba._)`${E}[${y}] = ${h}`)})}function p(h,m){let y=(0,nfn.useFunc)(t,rfn.default),g=t.name("outer");t.label(g).for((0,ba._)`;${h}--;`,()=>t.for((0,ba._)`${m} = ${h}; ${m}--;`,()=>t.if((0,ba._)`${y}(${n}[${h}], ${n}[${m}])`,()=>{e.error(),t.assign(c,!1).break(g)})))}}};Jse.default=sfn});var y6e=w(Qse=>{"use strict";Object.defineProperty(Qse,"__esModule",{value:!0});var Xse=Ot(),ofn=pn(),afn=CC(),cfn={message:"must be equal to constant",params:({schemaCode:e})=>(0,Xse._)`{allowedValue: ${e}}`},ufn={keyword:"const",$data:!0,error:cfn,code(e){let{gen:t,data:n,$data:r,schemaCode:i,schema:s}=e;r||s&&typeof s=="object"?e.fail$data((0,Xse._)`!${(0,ofn.useFunc)(t,afn.default)}(${n}, ${i})`):e.fail((0,Xse._)`${s} !== ${n}`)}};Qse.default=ufn});var S6e=w($se=>{"use strict";Object.defineProperty($se,"__esModule",{value:!0});var MC=Ot(),lfn=pn(),dfn=CC(),ffn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,MC._)`{allowedValues: ${e}}`},pfn={keyword:"enum",schemaType:"array",$data:!0,error:ffn,code(e){let{gen:t,data:n,$data:r,schema:i,schemaCode:s,it:o}=e;if(!r&&i.length===0)throw new Error("enum must have non-empty array");let a=i.length>=o.opts.loopEnum,c,u=()=>c??(c=(0,lfn.useFunc)(t,dfn.default)),l;if(a||r)l=t.let("valid"),e.block$data(l,d);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let p=t.const("vSchema",s);l=(0,MC.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,MC._)`${u()}(${n}, ${p})`,()=>t.assign(l,!0).break()))}function f(p,h){let m=i[h];return typeof m=="object"&&m!==null?(0,MC._)`${u()}(${n}, ${p}[${h}])`:(0,MC._)`${n} === ${m}`}}};$se.default=pfn});var E6e=w(eoe=>{"use strict";Object.defineProperty(eoe,"__esModule",{value:!0});var hfn=o6e(),mfn=a6e(),gfn=l6e(),yfn=d6e(),Sfn=f6e(),Efn=p6e(),bfn=h6e(),_fn=g6e(),Tfn=y6e(),vfn=S6e(),Afn=[hfn.default,mfn.default,gfn.default,yfn.default,Sfn.default,Efn.default,bfn.default,_fn.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Tfn.default,vfn.default];eoe.default=Afn});var noe=w(LC=>{"use strict";Object.defineProperty(LC,"__esModule",{value:!0});LC.validateAdditionalItems=void 0;var B_=Ot(),toe=pn(),Rfn={message:({params:{len:e}})=>(0,B_.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,B_._)`{limit: ${e}}`},wfn={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Rfn,code(e){let{parentSchema:t,it:n}=e,{items:r}=t;if(!Array.isArray(r)){(0,toe.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas');return}b6e(e,r)}};function b6e(e,t){let{gen:n,schema:r,data:i,keyword:s,it:o}=e;o.items=!0;let a=n.const("len",(0,B_._)`${i}.length`);if(r===!1)e.setParams({len:t.length}),e.pass((0,B_._)`${a} <= ${t.length}`);else if(typeof r=="object"&&!(0,toe.alwaysValidSchema)(o,r)){let u=n.var("valid",(0,B_._)`${a} <= ${t.length}`);n.if((0,B_.not)(u),()=>c(u)),e.ok(u)}function c(u){n.forRange("i",t.length,a,l=>{e.subschema({keyword:s,dataProp:l,dataPropType:toe.Type.Num},u),o.allErrors||n.if((0,B_.not)(u),()=>n.break())})}}LC.validateAdditionalItems=b6e;LC.default=wfn});var roe=w(DC=>{"use strict";Object.defineProperty(DC,"__esModule",{value:!0});DC.validateTuple=void 0;var _6e=Ot(),rV=pn(),kfn=Sa(),Ifn={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:n}=e;if(Array.isArray(t))return T6e(e,"additionalItems",t);n.items=!0,!(0,rV.alwaysValidSchema)(n,t)&&e.ok((0,kfn.validateArray)(e))}};function T6e(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=rV.mergeEvaluated.items(r,n.length,a.items));let c=r.name("valid"),u=r.const("len",(0,_6e._)`${s}.length`);n.forEach((d,f)=>{(0,rV.alwaysValidSchema)(a,d)||(r.if((0,_6e._)`${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,rV.checkStrictMode)(a,y,f.strictTuples)}}}DC.validateTuple=T6e;DC.default=Ifn});var v6e=w(ioe=>{"use strict";Object.defineProperty(ioe,"__esModule",{value:!0});var xfn=roe(),Ofn={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,xfn.validateTuple)(e,"items")};ioe.default=Ofn});var R6e=w(soe=>{"use strict";Object.defineProperty(soe,"__esModule",{value:!0});var A6e=Ot(),Nfn=pn(),Pfn=Sa(),Cfn=noe(),Mfn={message:({params:{len:e}})=>(0,A6e.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,A6e._)`{limit: ${e}}`},Lfn={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Mfn,code(e){let{schema:t,parentSchema:n,it:r}=e,{prefixItems:i}=n;r.items=!0,!(0,Nfn.alwaysValidSchema)(r,t)&&(i?(0,Cfn.validateAdditionalItems)(e,i):e.ok((0,Pfn.validateArray)(e)))}};soe.default=Lfn});var w6e=w(ooe=>{"use strict";Object.defineProperty(ooe,"__esModule",{value:!0});var Sd=Ot(),iV=pn(),Dfn={message:({params:{min:e,max:t}})=>t===void 0?(0,Sd.str)`must contain at least ${e} valid item(s)`:(0,Sd.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,Sd._)`{minContains: ${e}}`:(0,Sd._)`{minContains: ${e}, maxContains: ${t}}`},Ufn={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Dfn,code(e){let{gen:t,schema:n,parentSchema:r,data:i,it:s}=e,o,a,{minContains:c,maxContains:u}=r;s.opts.next?(o=c===void 0?1:c,a=u):o=1;let l=t.const("len",(0,Sd._)`${i}.length`);if(e.setParams({min:o,max:a}),a===void 0&&o===0){(0,iV.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&o>a){(0,iV.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,iV.alwaysValidSchema)(s,n)){let m=(0,Sd._)`${l} >= ${o}`;a!==void 0&&(m=(0,Sd._)`${m} && ${l} <= ${a}`),e.pass(m);return}s.items=!0;let d=t.name("valid");a===void 0&&o===1?p(d,()=>t.if(d,()=>t.break())):o===0?(t.let(d,!0),a!==void 0&&t.if((0,Sd._)`${i}.length > 0`,f)):(t.let(d,!1),f()),e.result(d,()=>e.reset());function f(){let m=t.name("_valid"),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:iV.Type.Num,compositeRule:!0},m),y()})}function h(m){t.code((0,Sd._)`${m}++`),a===void 0?t.if((0,Sd._)`${m} >= ${o}`,()=>t.assign(d,!0).break()):(t.if((0,Sd._)`${m} > ${a}`,()=>t.assign(d,!1).break()),o===1?t.assign(d,!0):t.if((0,Sd._)`${m} >= ${o}`,()=>t.assign(d,!0)))}}};ooe.default=Ufn});var x6e=w(hh=>{"use strict";Object.defineProperty(hh,"__esModule",{value:!0});hh.validateSchemaDeps=hh.validatePropertyDeps=hh.error=void 0;var aoe=Ot(),Ffn=pn(),UC=Sa();hh.error={message:({params:{property:e,depsCount:t,deps:n}})=>{let r=t===1?"property":"properties";return(0,aoe.str)`must have ${r} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:r}})=>(0,aoe._)`{property: ${e}, + || ${o} === "boolean" || ${i} === null`).assign(a,(0,hn._)`[${i}]`)}}}function Dun({gen:e,parentData:t,parentDataProperty:n},r){e.if((0,hn._)`${t} !== undefined`,()=>e.assign((0,hn._)`${t}[${n}]`,r))}function Ese(e,t,n,r=sk.Correct){let i=r===sk.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===sk.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=Ese;function _se(e,t,n,r){if(e.length===1)return Ese(e[0],t,n,r);let i,s=(0,d6e.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,Ese(o,t,n,r));return i}oc.checkDataTypes=_se;var Lun={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,hn._)`{type: ${e}}`:(0,hn._)`{type: ${t}}`};function Tse(e){let t=Uun(e);(0,Oun.reportError)(t,Lun)}oc.reportTypeError=Tse;function Uun(e){let{gen:t,data:n,schema:r}=e,i=(0,d6e.schemaRefOrVal)(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:e}}});var m6e=w(J2=>{"use strict";Object.defineProperty(J2,"__esModule",{value:!0});J2.assignDefaults=void 0;var ok=Ot(),Fun=pn();function jun(e,t){let{properties:n,items:r}=e.schema;if(t==="object"&&n)for(let i in n)h6e(e,i,n[i].default);else t==="array"&&Array.isArray(r)&&r.forEach((i,s)=>h6e(e,s,i.default))}J2.assignDefaults=jun;function h6e(e,t,n){let{gen:r,compositeRule:i,data:s,opts:o}=e;if(n===void 0)return;let a=(0,ok._)`${s}${(0,ok.getProperty)(t)}`;if(i){(0,Fun.checkStrictMode)(e,`default is ignored for: ${a}`);return}let c=(0,ok._)`${a} === undefined`;o.useDefaults==="empty"&&(c=(0,ok._)`${c} || ${a} === null || ${a} === ""`),r.if(c,(0,ok._)`${a} = ${(0,ok.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(),vse=pn(),DS=bd(),Hun=pn();function qun(e,t){let{gen:n,data:r,it:i}=e;n.if(Ase(n,r,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,gi._)`${t}`},!0),e.error()})}Fr.checkReportMissingProp=qun;function Bun({gen:e,data:t,it:{opts:n}},r,i){return(0,gi.or)(...r.map(s=>(0,gi.and)(Ase(e,t,s,n.ownProperties),(0,gi._)`${i} = ${s}`)))}Fr.checkMissingProp=Bun;function zun(e,t){e.setParams({missingProperty:t},!0),e.error()}Fr.reportMissingProp=zun;function g6e(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,gi._)`Object.prototype.hasOwnProperty`})}Fr.hasPropFunc=g6e;function Rse(e,t,n){return(0,gi._)`${g6e(e)}.call(${t}, ${n})`}Fr.isOwnProperty=Rse;function Gun(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} !== undefined`;return r?(0,gi._)`${i} && ${Rse(e,t,n)}`:i}Fr.propertyInData=Gun;function Ase(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} === undefined`;return r?(0,gi.or)(i,(0,gi.not)(Rse(e,t,n))):i}Fr.noPropertyInData=Ase;function y6e(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}Fr.allSchemaProperties=y6e;function Vun(e,t){return y6e(t).filter(n=>!(0,vse.alwaysValidSchema)(e,t[n]))}Fr.schemaProperties=Vun;function Wun({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=[[DS.default.instancePath,(0,gi.strConcat)(DS.default.instancePath,s)],[DS.default.parentData,o.parentData],[DS.default.parentDataProperty,o.parentDataProperty],[DS.default.rootData,DS.default.rootData]];o.opts.dynamicRef&&d.push([DS.default.dynamicAnchors,DS.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=Wun;var Kun=(0,gi._)`new RegExp`;function Yun({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"?Kun:(0,Hun.useFunc)(e,i)}(${n}, ${r})`})}Fr.usePattern=Yun;function Zun(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:vse.Type.Num},s),t.if((0,gi.not)(s),a)})}}Fr.validateArray=Zun;function Jun(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,vse.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=Jun});var E6e=w(fh=>{"use strict";Object.defineProperty(fh,"__esModule",{value:!0});fh.validateKeywordUsage=fh.validSchemaType=fh.funcKeywordCode=fh.macroKeywordCode=void 0;var Gc=Ot(),j_=bd(),Xun=Sa(),Qun=IC();function $un(e,t){let{gen:n,keyword:r,schema:i,parentSchema:s,it:o}=e,a=t.macro.call(o.self,i,s,o),c=b6e(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=$un;function eln(e,t){var n;let{gen:r,keyword:i,schema:s,parentSchema:o,$data:a,it:c}=e;nln(c,t);let u=!a&&t.compile?t.compile.call(c.self,s,o,c):t.validate,l=b6e(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&&S6e(e),g(()=>e.error());else{let y=t.async?p():h();t.modifying&&S6e(e),g(()=>tln(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?j_.default.this:j_.default.self,S=!("compile"in t&&!a||t.schema===!1);r.assign(d,(0,Gc._)`${y}${(0,Xun.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=eln;function S6e(e){let{gen:t,data:n,it:r}=e;t.if(r.parentData,()=>t.assign(n,(0,Gc._)`${r.parentData}[${r.parentDataProperty}]`))}function tln(e,t){let{gen:n}=e;n.if((0,Gc._)`Array.isArray(${t})`,()=>{n.assign(j_.default.vErrors,(0,Gc._)`${j_.default.vErrors} === null ? ${t} : ${j_.default.vErrors}.concat(${t})`).assign(j_.default.errors,(0,Gc._)`${j_.default.vErrors}.length`),(0,Qun.extendErrors)(e)},()=>e.error())}function nln({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function b6e(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 rln(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=rln;function iln({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=iln});var T6e=w(LS=>{"use strict";Object.defineProperty(LS,"__esModule",{value:!0});LS.extendSubschemaMode=LS.extendSubschemaData=LS.getSubschema=void 0;var ph=Ot(),_6e=pn();function sln(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,_6e.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')}LS.getSubschema=sln;function oln(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,_6e.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]}}LS.extendSubschemaData=oln;function aln(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}LS.extendSubschemaMode=aln});var OC=w((NVr,v6e)=>{"use strict";v6e.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 A6e=w((CVr,R6e)=>{"use strict";var US=R6e.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(){};X2(t,r,i,e,"",e)};US.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};US.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};US.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};US.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 X2(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 US.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 uln=pn(),lln=OC(),dln=A6e(),fln=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function pln(e,t=!0){return typeof e=="boolean"?!0:t===!0?!wse(e):t?w6e(e)<=t:!1}Au.inlineRef=pln;var hln=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function wse(e){for(let t in e){if(hln.has(t))return!0;let n=e[t];if(Array.isArray(n)&&n.some(wse)||typeof n=="object"&&wse(n))return!0}return!1}function w6e(e){let t=0;for(let n in e){if(n==="$ref")return 1/0;if(t++,!fln.has(n)&&(typeof e[n]=="object"&&(0,uln.eachItem)(e[n],r=>t+=w6e(r)),t===1/0))return 1/0}return t}function k6e(e,t="",n){n!==!1&&(t=ak(t));let r=e.parse(t);return I6e(e,r)}Au.getFullPath=k6e;function I6e(e,t){return e.serialize(t).split("#")[0]+"#"}Au._getFullPath=I6e;var mln=/#\/?$/;function ak(e){return e?e.replace(mln,""):""}Au.normalizeId=ak;function gln(e,t,n){return n=ak(n),e.resolve(t,n)}Au.resolveUrl=gln;var yln=/^[a-z_][-a-z0-9._]*$/i;function Sln(e,t){if(typeof e=="boolean")return{};let{schemaId:n,uriResolver:r}=this.opts,i=ak(e[n]||t),s={"":i},o=k6e(r,i,!1),a={},c=new Set;return dln(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=ak(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!==ak(m)&&(S[0]==="#"?(u(d,a[S],S),a[S]=d):this.refs[S]=m),S}function b(S){if(typeof S=="string"){if(!yln.test(S))throw new Error(`invalid anchor "${S}"`);y.call(this,`#${S}`)}}}),a;function u(d,f,p){if(f!==void 0&&!lln(d,f))throw l(p)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Au.getSchemaRefs=Sln});var ck=w(FS=>{"use strict";Object.defineProperty(FS,"__esModule",{value:!0});FS.getData=FS.KeywordCxt=FS.validateFunctionCode=void 0;var C6e=c6e(),x6e=xC(),Ise=bse(),Q2=xC(),bln=m6e(),CC=E6e(),kse=T6e(),pt=Ot(),Xt=bd(),Eln=PC(),Ym=pn(),NC=IC();function _ln(e){if(L6e(e)&&(U6e(e),D6e(e))){Rln(e);return}M6e(e,()=>(0,C6e.topBoolOrEmptySchema)(e))}FS.validateFunctionCode=_ln;function M6e({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"; ${O6e(n,i)}`),vln(e,i),e.code(s)}):e.func(t,(0,pt._)`${Xt.default.data}, ${Tln(i)}`,r.$async,()=>e.code(O6e(n,i)).code(s))}function Tln(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 vln(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 Rln(e){let{schema:t,opts:n,gen:r}=e;M6e(e,()=>{n.$comment&&t.$comment&&j6e(e),xln(e),r.let(Xt.default.vErrors,null),r.let(Xt.default.errors,0),n.unevaluated&&Aln(e),F6e(e),Nln(e)})}function Aln(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 O6e(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 wln(e,t){if(L6e(e)&&(U6e(e),D6e(e))){kln(e,t);return}(0,C6e.boolOrEmptySchema)(e,t)}function D6e({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 L6e(e){return typeof e.schema!="boolean"}function kln(e,t){let{schema:n,gen:r,opts:i}=e;i.$comment&&n.$comment&&j6e(e),Oln(e),Pln(e);let s=r.const("_errs",Xt.default.errors);F6e(e,s),r.var(t,(0,pt._)`${s} === ${Xt.default.errors}`)}function U6e(e){(0,Ym.checkUnknownRules)(e),Iln(e)}function F6e(e,t){if(e.opts.jtd)return P6e(e,[],!1,t);let n=(0,x6e.getSchemaTypes)(e.schema),r=(0,x6e.coerceAndCheckDataType)(e,n);P6e(e,n,!r,t)}function Iln(e){let{schema:t,errSchemaPath:n,opts:r,self:i}=e;t.$ref&&r.ignoreKeywordsWithRef&&(0,Ym.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}function xln(e){let{schema:t,opts:n}=e;t.default!==void 0&&n.useDefaults&&n.strictSchema&&(0,Ym.checkStrictMode)(e,"default is ignored in the schema root")}function Oln(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,Eln.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function Pln(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function j6e({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 Nln(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&&Cln(e),t.return((0,pt._)`${Xt.default.errors} === 0`))}function Cln({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 P6e(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,Ym.schemaHasRulesButRef)(s,l))){i.block(()=>q6e(e,"$ref",l.all.$ref.definition));return}c.jtd||Mln(e,t),i.block(()=>{for(let f of l.rules)d(f);d(l.post)});function d(f){(0,Ise.shouldUseGroup)(s,f)&&(f.type?(i.if((0,Q2.checkDataType)(f.type,o,c.strictNumbers)),N6e(e,f),t.length===1&&t[0]===f.type&&n&&(i.else(),(0,Q2.reportTypeError)(e)),i.endIf()):N6e(e,f),a||i.if((0,pt._)`${Xt.default.errors} === ${r||0}`))}}function N6e(e,t){let{gen:n,schema:r,opts:{useDefaults:i}}=e;i&&(0,bln.assignDefaults)(e,t.type),n.block(()=>{for(let s of t.rules)(0,Ise.shouldUseRule)(r,s)&&q6e(e,s.keyword,s.definition,t.type)})}function Mln(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(Dln(e,t),e.opts.allowUnionTypes||Lln(e,t),Uln(e,e.dataTypes))}function Dln(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(n=>{H6e(e.dataTypes,n)||xse(e,`type "${n}" not allowed by context "${e.dataTypes.join(",")}"`)}),jln(e,t)}}function Lln(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&xse(e,"use allowUnionTypes to allow union type keyword")}function Uln(e,t){let n=e.self.RULES.all;for(let r in n){let i=n[r];if(typeof i=="object"&&(0,Ise.shouldUseRule)(e.schema,i)){let{type:s}=i.definition;s.length&&!s.some(o=>Fln(t,o))&&xse(e,`missing type "${s.join(",")}" for keyword "${r}"`)}}}function Fln(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function H6e(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function jln(e,t){let n=[];for(let r of e.dataTypes)H6e(t,r)?n.push(r):t.includes("integer")&&r==="number"&&n.push("integer");e.dataTypes=n}function xse(e,t){let n=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${n}" (strictTypes)`,(0,Ym.checkStrictMode)(e,t,e.opts.strictTypes)}var $2=class{constructor(t,n,r){if((0,CC.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,Ym.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",B6e(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,CC.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?NC.reportExtraError:NC.reportError)(this,this.def.error,n)}$dataError(){(0,NC.reportError)(this,this.def.$dataError||NC.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,NC.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,Q2.checkDataTypes)(c,n,s.opts.strictNumbers,Q2.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,kse.getSubschema)(this.it,t);(0,kse.extendSubschemaData)(r,this.it,t),(0,kse.extendSubschemaMode)(r,t);let i={...this.it,...r,items:void 0,props:void 0};return wln(i,n),i}mergeEvaluated(t,n){let{it:r,gen:i}=this;r.opts.unevaluated&&(r.props!==!0&&t.props!==void 0&&(r.props=Ym.mergeEvaluated.props(i,t.props,r.props,n)),r.items!==!0&&t.items!==void 0&&(r.items=Ym.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}};FS.KeywordCxt=$2;function q6e(e,t,n,r){let i=new $2(e,n,t);"code"in n?n.code(i,r):i.$data&&n.validate?(0,CC.funcKeywordCode)(i,n):"macro"in n?(0,CC.macroKeywordCode)(i,n):(n.compile||n.validate)&&(0,CC.funcKeywordCode)(i,n)}var Hln=/^\/(?:[^~]|~0|~1)*$/,qln=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function B6e(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let i,s;if(e==="")return Xt.default.rootData;if(e[0]==="/"){if(!Hln.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,s=Xt.default.rootData}else{let u=qln.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,Ym.unescapeJsonPointer)(u))}`,o=(0,pt._)`${o} && ${s}`);return o;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${t}`}}FS.getData=B6e});var MC=w(Pse=>{"use strict";Object.defineProperty(Pse,"__esModule",{value:!0});var Ose=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Pse.default=Ose});var Zm=w(Mse=>{"use strict";Object.defineProperty(Mse,"__esModule",{value:!0});var Nse=PC(),Cse=class extends Error{constructor(t,n,r,i){super(i||`can't resolve reference ${r} from id ${n}`),this.missingRef=(0,Nse.resolveUrl)(t,n,r),this.missingSchema=(0,Nse.normalizeId)((0,Nse.getFullPath)(t,this.missingRef))}};Mse.default=Cse});var q_=w(Ed=>{"use strict";Object.defineProperty(Ed,"__esModule",{value:!0});Ed.resolveSchema=Ed.getCompilingSchema=Ed.resolveRef=Ed.compileSchema=Ed.SchemaEnv=void 0;var Af=Ot(),Bln=MC(),H_=bd(),wf=PC(),z6e=pn(),zln=ck(),uk=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={}}};Ed.SchemaEnv=uk;function Lse(e){let t=G6e.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:Bln.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:H_.default.data,parentData:H_.default.parentData,parentDataProperty:H_.default.parentDataProperty,dataNames:[H_.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,zln.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let d=o.toString();l=`${o.scopeRefs(H_.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let p=new Function(`${H_.default.self}`,`${H_.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)}}Ed.compileSchema=Lse;function Gln(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=Kln.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 uk({schema:o,schemaId:a,root:e,baseId:t}))}if(s!==void 0)return e.refs[n]=Vln.call(this,s)}Ed.resolveRef=Gln;function Vln(e){return(0,wf.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:Lse.call(this,e)}function G6e(e){for(let t of this._compilations)if(Wln(t,e))return t}Ed.getCompilingSchema=G6e;function Wln(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function Kln(e,t){let n;for(;typeof(n=this.refs[t])=="string";)t=n;return n||this.schemas[t]||eV.call(this,e,t)}function eV(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 Dse.call(this,n,e);let s=(0,wf.normalizeId)(r),o=this.refs[s]||this.schemas[s];if(typeof o=="string"){let a=eV.call(this,e,o);return typeof a?.schema!="object"?void 0:Dse.call(this,n,a)}if(typeof o?.schema=="object"){if(o.validate||Lse.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 uk({schema:a,schemaId:c,root:e,baseId:i})}return Dse.call(this,n,o)}}Ed.resolveSchema=eV;var Yln=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Dse(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,z6e.unescapeFragment)(a)];if(c===void 0)return;n=c;let u=typeof n=="object"&&n[this.opts.schemaId];!Yln.has(a)&&u&&(t=(0,wf.resolveUrl)(this.opts.uriResolver,t,u))}let s;if(typeof n!="boolean"&&n.$ref&&!(0,z6e.schemaHasRulesButRef)(n,this.RULES)){let a=(0,wf.resolveUrl)(this.opts.uriResolver,t,n.$ref);s=eV.call(this,r,a)}let{schemaId:o}=this.opts;if(s=s||new uk({schema:n,schemaId:o,root:r,baseId:t}),s.schema!==s.root.schema)return s}});var V6e=w((jVr,Zln)=>{Zln.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 Fse=w((HVr,Z6e)=>{"use strict";var Jln=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),K6e=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 Use(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 Xln=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function W6e(e){return e.length=0,!0}function Qln(e,t,n){if(e.length){let r=Use(e);if(r!=="")t.push(r);else return n.error=!0,!1;e.length=0}return!0}function $ln(e){let t=0,n={error:!1,address:"",zone:""},r=[],i=[],s=!1,o=!1,a=Qln;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=W6e}else{i.push(u);continue}}return i.length&&(a===W6e?n.zone=i.join(""):o?r.push(i.join("")):r.push(Use(i))),n.address=r.join(""),n}function Y6e(e){if(edn(e,":")<2)return{host:e,isIPV6:!1};let t=$ln(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 edn(e,t){let n=0;for(let r=0;r{"use strict";var{isUUID:idn}=Fse(),sdn=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,odn=["http","https","ws","wss","urn","urn:uuid"];function adn(e){return odn.indexOf(e)!==-1}function jse(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 J6e(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function X6e(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 cdn(e){return e.secure=jse(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function udn(e){if((e.port===(jse(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 ldn(e,t){if(!e.path)return e.error="URN can not be parsed",e;let n=e.path.match(sdn);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=Hse(i);e.path=void 0,s&&(e=s.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function ddn(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=Hse(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 fdn(e,t){let n=e;return n.uuid=n.nss,n.nss=void 0,!t.tolerant&&(!n.uuid||!idn(n.uuid))&&(n.error=n.error||"UUID is not valid."),n}function pdn(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var Q6e={scheme:"http",domainHost:!0,parse:J6e,serialize:X6e},hdn={scheme:"https",domainHost:Q6e.domainHost,parse:J6e,serialize:X6e},tV={scheme:"ws",domainHost:!0,parse:cdn,serialize:udn},mdn={scheme:"wss",domainHost:tV.domainHost,parse:tV.parse,serialize:tV.serialize},gdn={scheme:"urn",parse:ldn,serialize:ddn,skipNormalize:!0},ydn={scheme:"urn:uuid",parse:fdn,serialize:pdn,skipNormalize:!0},nV={http:Q6e,https:hdn,ws:tV,wss:mdn,urn:gdn,"urn:uuid":ydn};Object.setPrototypeOf(nV,null);function Hse(e){return e&&(nV[e]||nV[e.toLowerCase()])||void 0}$6e.exports={wsIsSecure:jse,SCHEMES:nV,isValidSchemeName:adn,getSchemeHandler:Hse}});var sV=w((BVr,iV)=>{"use strict";var{normalizeIPv6:Sdn,removeDotSegments:DC,recomposeAuthority:bdn,normalizeComponentEncoding:rV,isIPv4:Edn,nonSimpleDomain:_dn}=Fse(),{SCHEMES:Tdn,getSchemeHandler:t5e}=e5e();function vdn(e,t){return typeof e=="string"?e=hh(Jm(e,t),t):typeof e=="object"&&(e=Jm(hh(e,t),t)),e}function Rdn(e,t,n){let r=n?Object.assign({scheme:"null"},n):{scheme:"null"},i=n5e(Jm(e,r),Jm(t,r),r,!0);return r.skipEscape=!0,hh(i,r)}function n5e(e,t,n,r){let i={};return r||(e=Jm(hh(e,n),n),t=Jm(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=DC(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=DC(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=DC(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=DC(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 Adn(e,t,n){return typeof e=="string"?(e=unescape(e),e=hh(rV(Jm(e,n),!0),{...n,skipEscape:!0})):typeof e=="object"&&(e=hh(rV(e,!0),{...n,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=hh(rV(Jm(t,n),!0),{...n,skipEscape:!0})):typeof t=="object"&&(t=hh(rV(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=t5e(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=bdn(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=DC(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 wdn=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Jm(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(wdn);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(Edn(r.host)===!1){let c=Sdn(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=t5e(n.scheme||r.scheme);if(!n.unicodeSupport&&(!o||!o.unicodeSupport)&&r.host&&(n.domainHost||o&&o.domainHost)&&i===!1&&_dn(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 qse={SCHEMES:Tdn,normalize:vdn,resolve:Rdn,resolveComponent:n5e,equal:Adn,serialize:hh,parse:Jm};iV.exports=qse;iV.exports.default=qse;iV.exports.fastUri=qse});var i5e=w(Bse=>{"use strict";Object.defineProperty(Bse,"__esModule",{value:!0});var r5e=sV();r5e.code='require("ajv/dist/runtime/uri").default';Bse.default=r5e});var Vse=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 kdn=ck();Object.defineProperty(ba,"KeywordCxt",{enumerable:!0,get:function(){return kdn.KeywordCxt}});var lk=Ot();Object.defineProperty(ba,"_",{enumerable:!0,get:function(){return lk._}});Object.defineProperty(ba,"str",{enumerable:!0,get:function(){return lk.str}});Object.defineProperty(ba,"stringify",{enumerable:!0,get:function(){return lk.stringify}});Object.defineProperty(ba,"nil",{enumerable:!0,get:function(){return lk.nil}});Object.defineProperty(ba,"Name",{enumerable:!0,get:function(){return lk.Name}});Object.defineProperty(ba,"CodeGen",{enumerable:!0,get:function(){return lk.CodeGen}});var Idn=MC(),u5e=Zm(),xdn=Sse(),LC=q_(),Odn=Ot(),UC=PC(),oV=xC(),Gse=pn(),s5e=V6e(),Pdn=i5e(),l5e=(e,t)=>new RegExp(e,t);l5e.code="new RegExp";var Ndn=["removeAdditional","useDefaults","coerceTypes"],Cdn=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),Mdn={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."},Ddn={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},o5e=200;function Ldn(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:l5e,L=(i=e.uriResolver)!==null&&i!==void 0?i:Pdn.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:o5e,loopEnum:(g=e.loopEnum)!==null&&g!==void 0?g:o5e,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 FC=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...Ldn(t)};let{es5:n,lines:r}=this.opts.code;this.scope=new Odn.ValueScope({scope:{},prefixes:Cdn,es5:n,lines:r}),this.logger=Bdn(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,xdn.getRules)(),a5e.call(this,Mdn,t,"NOT SUPPORTED"),a5e.call(this,Ddn,t,"DEPRECATED","warn"),this._metaOpts=Hdn.call(this),t.formats&&Fdn.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&jdn.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),Udn.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:n,schemaId:r}=this.opts,i=s5e;r==="id"&&(i={...s5e},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 u5e.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,UC.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=c5e.call(this,t))=="string";)t=n;if(n===void 0){let{schemaId:r}=this.opts,i=new LC.SchemaEnv({schema:{},schemaId:r});if(n=LC.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=c5e.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,UC.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(Gdn.call(this,r,n),!n)return(0,Gse.eachItem)(r,s=>zse.call(this,s)),this;Wdn.call(this,n);let i={...n,type:(0,oV.getJSONTypes)(n.type),schemaType:(0,oV.getJSONTypes)(n.schemaType)};return(0,Gse.eachItem)(r,i.type.length===0?s=>zse.call(this,s,i):s=>i.type.forEach(o=>zse.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]=d5e(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,UC.normalizeId)(o||r);let u=UC.getSchemaRefs.call(this,t,r);return c=new LC.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):LC.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{LC.compileSchema.call(this,t)}finally{this.opts=n}}};FC.ValidationError=Idn.default;FC.MissingRefError=u5e.default;ba.default=FC;function a5e(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 c5e(e){return e=(0,UC.normalizeId)(e),this.schemas[e]||this.refs[e]}function Udn(){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 Fdn(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function jdn(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 Hdn(){let e={...this.opts};for(let t of Ndn)delete e[t];return e}var qdn={log(){},warn(){},error(){}};function Bdn(e){if(e===!1)return qdn;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 zdn=/^[a-z_$][a-z0-9_$:-]*$/i;function Gdn(e,t){let{RULES:n}=this;if((0,Gse.eachItem)(e,r=>{if(n.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!zdn.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 zse(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,oV.getJSONTypes)(t.type),schemaType:(0,oV.getJSONTypes)(t.schemaType)}};t.before?Vdn.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 Vdn(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 Wdn(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=d5e(t)),e.validateSchema=this.compile(t,!0))}var Kdn={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function d5e(e){return{anyOf:[e,Kdn]}}});var f5e=w(Wse=>{"use strict";Object.defineProperty(Wse,"__esModule",{value:!0});var Ydn={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Wse.default=Ydn});var Kse=w(B_=>{"use strict";Object.defineProperty(B_,"__esModule",{value:!0});B_.callRef=B_.getValidate=void 0;var Zdn=Zm(),p5e=Sa(),wu=Ot(),dk=bd(),h5e=q_(),aV=pn(),Jdn={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=h5e.resolveRef.call(c,u,i,n);if(l===void 0)throw new Zdn.default(r.opts.uriResolver,i,n);if(l instanceof h5e.SchemaEnv)return f(l);return p(l);function d(){if(s===u)return cV(e,o,s,s.$async);let h=t.scopeValue("root",{ref:u});return cV(e,(0,wu._)`${h}.validate`,u,u.$async)}function f(h){let m=m5e(e,h);cV(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 m5e(e,t){let{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):(0,wu._)`${n.scopeValue("wrapper",{ref:t})}.validate`}B_.getValidate=m5e;function cV(e,t,n,r){let{gen:i,it:s}=e,{allErrors:o,schemaEnv:a,opts:c}=s,u=c.passContext?dk.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,p5e.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,p5e.callValidateCode)(e,t,u),()=>p(t),()=>f(t))}function f(h){let m=(0,wu._)`${h}.errors`;i.assign(dk.default.vErrors,(0,wu._)`${dk.default.vErrors} === null ? ${m} : ${dk.default.vErrors}.concat(${m})`),i.assign(dk.default.errors,(0,wu._)`${dk.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=aV.mergeEvaluated.props(i,g.props,s.props));else{let y=i.var("props",(0,wu._)`${h}.evaluated.props`);s.props=aV.mergeEvaluated.props(i,y,s.props,wu.Name)}if(s.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(s.items=aV.mergeEvaluated.items(i,g.items,s.items));else{let y=i.var("items",(0,wu._)`${h}.evaluated.items`);s.items=aV.mergeEvaluated.items(i,y,s.items,wu.Name)}}}B_.callRef=cV;B_.default=Jdn});var g5e=w(Yse=>{"use strict";Object.defineProperty(Yse,"__esModule",{value:!0});var Xdn=f5e(),Qdn=Kse(),$dn=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Xdn.default,Qdn.default];Yse.default=$dn});var y5e=w(Zse=>{"use strict";Object.defineProperty(Zse,"__esModule",{value:!0});var uV=Ot(),jS=uV.operators,lV={maximum:{okStr:"<=",ok:jS.LTE,fail:jS.GT},minimum:{okStr:">=",ok:jS.GTE,fail:jS.LT},exclusiveMaximum:{okStr:"<",ok:jS.LT,fail:jS.GTE},exclusiveMinimum:{okStr:">",ok:jS.GT,fail:jS.LTE}},efn={message:({keyword:e,schemaCode:t})=>(0,uV.str)`must be ${lV[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,uV._)`{comparison: ${lV[e].okStr}, limit: ${t}}`},tfn={keyword:Object.keys(lV),type:"number",schemaType:"number",$data:!0,error:efn,code(e){let{keyword:t,data:n,schemaCode:r}=e;e.fail$data((0,uV._)`${n} ${lV[t].fail} ${r} || isNaN(${n})`)}};Zse.default=tfn});var S5e=w(Jse=>{"use strict";Object.defineProperty(Jse,"__esModule",{value:!0});var jC=Ot(),nfn={message:({schemaCode:e})=>(0,jC.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,jC._)`{multipleOf: ${e}}`},rfn={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:nfn,code(e){let{gen:t,data:n,schemaCode:r,it:i}=e,s=i.opts.multipleOfPrecision,o=t.let("res"),a=s?(0,jC._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${s}`:(0,jC._)`${o} !== parseInt(${o})`;e.fail$data((0,jC._)`(${r} === 0 || (${o} = ${n}/${r}, ${a}))`)}};Jse.default=rfn});var E5e=w(Xse=>{"use strict";Object.defineProperty(Xse,"__esModule",{value:!0});function b5e(e){let t=e.length,n=0,r=0,i;for(;r=55296&&i<=56319&&r{"use strict";Object.defineProperty(Qse,"__esModule",{value:!0});var z_=Ot(),ifn=pn(),sfn=E5e(),ofn={message({keyword:e,schemaCode:t}){let n=e==="maxLength"?"more":"fewer";return(0,z_.str)`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>(0,z_._)`{limit: ${e}}`},afn={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:ofn,code(e){let{keyword:t,data:n,schemaCode:r,it:i}=e,s=t==="maxLength"?z_.operators.GT:z_.operators.LT,o=i.opts.unicode===!1?(0,z_._)`${n}.length`:(0,z_._)`${(0,ifn.useFunc)(e.gen,sfn.default)}(${n})`;e.fail$data((0,z_._)`${o} ${s} ${r}`)}};Qse.default=afn});var T5e=w($se=>{"use strict";Object.defineProperty($se,"__esModule",{value:!0});var cfn=Sa(),ufn=pn(),fk=Ot(),lfn={message:({schemaCode:e})=>(0,fk.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,fk._)`{pattern: ${e}}`},dfn={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:lfn,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,fk._)`new RegExp`:(0,ufn.useFunc)(t,c),l=t.let("valid");t.try(()=>t.assign(l,(0,fk._)`${u}(${s}, ${a}).test(${n})`),()=>t.assign(l,!1)),e.fail$data((0,fk._)`!${l}`)}else{let c=(0,cfn.usePattern)(e,i);e.fail$data((0,fk._)`!${c}.test(${n})`)}}};$se.default=dfn});var v5e=w(eoe=>{"use strict";Object.defineProperty(eoe,"__esModule",{value:!0});var HC=Ot(),ffn={message({keyword:e,schemaCode:t}){let n=e==="maxProperties"?"more":"fewer";return(0,HC.str)`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>(0,HC._)`{limit: ${e}}`},pfn={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:ffn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxProperties"?HC.operators.GT:HC.operators.LT;e.fail$data((0,HC._)`Object.keys(${n}).length ${i} ${r}`)}};eoe.default=pfn});var R5e=w(toe=>{"use strict";Object.defineProperty(toe,"__esModule",{value:!0});var qC=Sa(),BC=Ot(),hfn=pn(),mfn={message:({params:{missingProperty:e}})=>(0,BC.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,BC._)`{missingProperty: ${e}}`},gfn={keyword:"required",type:"object",schemaType:"array",$data:!0,error:mfn,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,hfn.checkStrictMode)(o,y,o.opts.strictRequired)}}function u(){if(c||s)e.block$data(BC.nil,d);else for(let p of n)(0,qC.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,qC.checkMissingProp)(e,n,p)),(0,qC.reportMissingProp)(e,p),t.else()}function d(){t.forOf("prop",r,p=>{e.setParams({missingProperty:p}),t.if((0,qC.noPropertyInData)(t,i,p,a.ownProperties),()=>e.error())})}function f(p,h){e.setParams({missingProperty:p}),t.forOf(p,r,()=>{t.assign(h,(0,qC.propertyInData)(t,i,p,a.ownProperties)),t.if((0,BC.not)(h),()=>{e.error(),t.break()})},BC.nil)}}};toe.default=gfn});var A5e=w(noe=>{"use strict";Object.defineProperty(noe,"__esModule",{value:!0});var zC=Ot(),yfn={message({keyword:e,schemaCode:t}){let n=e==="maxItems"?"more":"fewer";return(0,zC.str)`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>(0,zC._)`{limit: ${e}}`},Sfn={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:yfn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxItems"?zC.operators.GT:zC.operators.LT;e.fail$data((0,zC._)`${n}.length ${i} ${r}`)}};noe.default=Sfn});var GC=w(roe=>{"use strict";Object.defineProperty(roe,"__esModule",{value:!0});var w5e=OC();w5e.code='require("ajv/dist/runtime/equal").default';roe.default=w5e});var k5e=w(soe=>{"use strict";Object.defineProperty(soe,"__esModule",{value:!0});var ioe=xC(),Ea=Ot(),bfn=pn(),Efn=GC(),_fn={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}}`},Tfn={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:_fn,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,ioe.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,ioe.checkDataTypes)(u,g,a.opts.strictNumbers,ioe.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,bfn.useFunc)(t,Efn.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)})))}}};soe.default=Tfn});var I5e=w(aoe=>{"use strict";Object.defineProperty(aoe,"__esModule",{value:!0});var ooe=Ot(),vfn=pn(),Rfn=GC(),Afn={message:"must be equal to constant",params:({schemaCode:e})=>(0,ooe._)`{allowedValue: ${e}}`},wfn={keyword:"const",$data:!0,error:Afn,code(e){let{gen:t,data:n,$data:r,schemaCode:i,schema:s}=e;r||s&&typeof s=="object"?e.fail$data((0,ooe._)`!${(0,vfn.useFunc)(t,Rfn.default)}(${n}, ${i})`):e.fail((0,ooe._)`${s} !== ${n}`)}};aoe.default=wfn});var x5e=w(coe=>{"use strict";Object.defineProperty(coe,"__esModule",{value:!0});var VC=Ot(),kfn=pn(),Ifn=GC(),xfn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,VC._)`{allowedValues: ${e}}`},Ofn={keyword:"enum",schemaType:"array",$data:!0,error:xfn,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,kfn.useFunc)(t,Ifn.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,VC.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,VC._)`${u()}(${n}, ${p})`,()=>t.assign(l,!0).break()))}function f(p,h){let m=i[h];return typeof m=="object"&&m!==null?(0,VC._)`${u()}(${n}, ${p}[${h}])`:(0,VC._)`${n} === ${m}`}}};coe.default=Ofn});var O5e=w(uoe=>{"use strict";Object.defineProperty(uoe,"__esModule",{value:!0});var Pfn=y5e(),Nfn=S5e(),Cfn=_5e(),Mfn=T5e(),Dfn=v5e(),Lfn=R5e(),Ufn=A5e(),Ffn=k5e(),jfn=I5e(),Hfn=x5e(),qfn=[Pfn.default,Nfn.default,Cfn.default,Mfn.default,Dfn.default,Lfn.default,Ufn.default,Ffn.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},jfn.default,Hfn.default];uoe.default=qfn});var doe=w(WC=>{"use strict";Object.defineProperty(WC,"__esModule",{value:!0});WC.validateAdditionalItems=void 0;var G_=Ot(),loe=pn(),Bfn={message:({params:{len:e}})=>(0,G_.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,G_._)`{limit: ${e}}`},zfn={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Bfn,code(e){let{parentSchema:t,it:n}=e,{items:r}=t;if(!Array.isArray(r)){(0,loe.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas');return}P5e(e,r)}};function P5e(e,t){let{gen:n,schema:r,data:i,keyword:s,it:o}=e;o.items=!0;let a=n.const("len",(0,G_._)`${i}.length`);if(r===!1)e.setParams({len:t.length}),e.pass((0,G_._)`${a} <= ${t.length}`);else if(typeof r=="object"&&!(0,loe.alwaysValidSchema)(o,r)){let u=n.var("valid",(0,G_._)`${a} <= ${t.length}`);n.if((0,G_.not)(u),()=>c(u)),e.ok(u)}function c(u){n.forRange("i",t.length,a,l=>{e.subschema({keyword:s,dataProp:l,dataPropType:loe.Type.Num},u),o.allErrors||n.if((0,G_.not)(u),()=>n.break())})}}WC.validateAdditionalItems=P5e;WC.default=zfn});var foe=w(KC=>{"use strict";Object.defineProperty(KC,"__esModule",{value:!0});KC.validateTuple=void 0;var N5e=Ot(),dV=pn(),Gfn=Sa(),Vfn={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:n}=e;if(Array.isArray(t))return C5e(e,"additionalItems",t);n.items=!0,!(0,dV.alwaysValidSchema)(n,t)&&e.ok((0,Gfn.validateArray)(e))}};function C5e(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=dV.mergeEvaluated.items(r,n.length,a.items));let c=r.name("valid"),u=r.const("len",(0,N5e._)`${s}.length`);n.forEach((d,f)=>{(0,dV.alwaysValidSchema)(a,d)||(r.if((0,N5e._)`${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,dV.checkStrictMode)(a,g,f.strictTuples)}}}KC.validateTuple=C5e;KC.default=Vfn});var M5e=w(poe=>{"use strict";Object.defineProperty(poe,"__esModule",{value:!0});var Wfn=foe(),Kfn={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,Wfn.validateTuple)(e,"items")};poe.default=Kfn});var L5e=w(hoe=>{"use strict";Object.defineProperty(hoe,"__esModule",{value:!0});var D5e=Ot(),Yfn=pn(),Zfn=Sa(),Jfn=doe(),Xfn={message:({params:{len:e}})=>(0,D5e.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,D5e._)`{limit: ${e}}`},Qfn={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Xfn,code(e){let{schema:t,parentSchema:n,it:r}=e,{prefixItems:i}=n;r.items=!0,!(0,Yfn.alwaysValidSchema)(r,t)&&(i?(0,Jfn.validateAdditionalItems)(e,i):e.ok((0,Zfn.validateArray)(e)))}};hoe.default=Qfn});var U5e=w(moe=>{"use strict";Object.defineProperty(moe,"__esModule",{value:!0});var _d=Ot(),fV=pn(),$fn={message:({params:{min:e,max:t}})=>t===void 0?(0,_d.str)`must contain at least ${e} valid item(s)`:(0,_d.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,_d._)`{minContains: ${e}}`:(0,_d._)`{minContains: ${e}, maxContains: ${t}}`},epn={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:$fn,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,_d._)`${i}.length`);if(e.setParams({min:o,max:a}),a===void 0&&o===0){(0,fV.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&o>a){(0,fV.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,fV.alwaysValidSchema)(s,n)){let m=(0,_d._)`${l} >= ${o}`;a!==void 0&&(m=(0,_d._)`${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,_d._)`${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:fV.Type.Num,compositeRule:!0},m),g()})}function h(m){t.code((0,_d._)`${m}++`),a===void 0?t.if((0,_d._)`${m} >= ${o}`,()=>t.assign(d,!0).break()):(t.if((0,_d._)`${m} > ${a}`,()=>t.assign(d,!1).break()),o===1?t.assign(d,!0):t.if((0,_d._)`${m} >= ${o}`,()=>t.assign(d,!0)))}}};moe.default=epn});var H5e=w(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0});mh.validateSchemaDeps=mh.validatePropertyDeps=mh.error=void 0;var goe=Ot(),tpn=pn(),YC=Sa();mh.error={message:({params:{property:e,depsCount:t,deps:n}})=>{let r=t===1?"property":"properties";return(0,goe.str)`must have ${r} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:r}})=>(0,goe._)`{property: ${e}, missingProperty: ${r}, depsCount: ${t}, - deps: ${n}}`};var jfn={keyword:"dependencies",type:"object",schemaType:"object",error:hh.error,code(e){let[t,n]=Hfn(e);k6e(e,t),I6e(e,n)}};function Hfn({schema:e}){let t={},n={};for(let r in e){if(r==="__proto__")continue;let i=Array.isArray(e[r])?t:n;i[r]=e[r]}return[t,n]}function k6e(e,t=e.schema){let{gen:n,data:r,it:i}=e;if(Object.keys(t).length===0)return;let s=n.let("missing");for(let o in t){let a=t[o];if(a.length===0)continue;let c=(0,UC.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,UC.checkReportMissingProp)(e,u)}):(n.if((0,aoe._)`${c} && (${(0,UC.checkMissingProp)(e,a,s)})`),(0,UC.reportMissingProp)(e,s),n.else())}}hh.validatePropertyDeps=k6e;function I6e(e,t=e.schema){let{gen:n,data:r,keyword:i,it:s}=e,o=n.name("valid");for(let a in t)(0,Ffn.alwaysValidSchema)(s,t[a])||(n.if((0,UC.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=I6e;hh.default=jfn});var N6e=w(coe=>{"use strict";Object.defineProperty(coe,"__esModule",{value:!0});var O6e=Ot(),qfn=pn(),Bfn={message:"property name must be valid",params:({params:e})=>(0,O6e._)`{propertyName: ${e.propertyName}}`},Gfn={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Bfn,code(e){let{gen:t,schema:n,data:r,it:i}=e;if((0,qfn.alwaysValidSchema)(i,n))return;let s=t.name("valid");t.forIn("key",r,o=>{e.setParams({propertyName:o}),e.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},s),t.if((0,O6e.not)(s),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(s)}};coe.default=Gfn});var loe=w(uoe=>{"use strict";Object.defineProperty(uoe,"__esModule",{value:!0});var sV=Sa(),Rf=Ot(),zfn=gd(),oV=pn(),Vfn={message:"must NOT have additional properties",params:({params:e})=>(0,Rf._)`{additionalProperty: ${e.additionalProperty}}`},Wfn={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Vfn,code(e){let{gen:t,schema:n,parentSchema:r,data:i,errsCount:s,it:o}=e;if(!s)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=o;if(o.props=!0,c.removeAdditional!=="all"&&(0,oV.alwaysValidSchema)(o,n))return;let u=(0,sV.allSchemaProperties)(r.properties),l=(0,sV.allSchemaProperties)(r.patternProperties);d(),e.ok((0,Rf._)`${s} === ${zfn.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,oV.schemaRefOrVal)(o,r.properties,"properties");g=(0,sV.isOwnProperty)(t,E,y)}else u.length?g=(0,Rf.or)(...u.map(E=>(0,Rf._)`${y} === ${E}`)):g=Rf.nil;return l.length&&(g=(0,Rf.or)(g,...l.map(E=>(0,Rf._)`${(0,sV.usePattern)(e,E)}.test(${y})`))),(0,Rf.not)(g)}function p(y){t.code((0,Rf._)`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,oV.alwaysValidSchema)(o,n)){let g=t.name("valid");c.removeAdditional==="failing"?(m(y,g,!1),t.if((0,Rf.not)(g),()=>{e.reset(),p(y)})):(m(y,g),a||t.if((0,Rf.not)(g),()=>t.break()))}}function m(y,g,E){let S={keyword:"additionalProperties",dataProp:y,dataPropType:oV.Type.Str};E===!1&&Object.assign(S,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(S,g)}}};uoe.default=Wfn});var M6e=w(foe=>{"use strict";Object.defineProperty(foe,"__esModule",{value:!0});var Kfn=tk(),P6e=Sa(),doe=pn(),C6e=loe(),Zfn={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&&C6e.default.code(new Kfn.KeywordCxt(s,C6e.default,"additionalProperties"));let o=(0,P6e.allSchemaProperties)(n);for(let d of o)s.definedProperties.add(d);s.opts.unevaluated&&o.length&&s.props!==!0&&(s.props=doe.mergeEvaluated.props(t,(0,doe.toHash)(o),s.props));let a=o.filter(d=>!(0,doe.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,P6e.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)}}};foe.default=Zfn});var F6e=w(poe=>{"use strict";Object.defineProperty(poe,"__esModule",{value:!0});var L6e=Sa(),aV=Ot(),D6e=pn(),U6e=pn(),Yfn={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,L6e.allSchemaProperties)(n),c=a.filter(m=>(0,D6e.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 aV.Name)&&(s.props=(0,U6e.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,D6e.checkStrictMode)(s,`property ${y} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){t.forIn("key",r,y=>{t.if((0,aV._)`${(0,L6e.usePattern)(e,m)}.test(${y})`,()=>{let g=c.includes(m);g||e.subschema({keyword:"patternProperties",schemaProp:m,dataProp:y,dataPropType:U6e.Type.Str},l),s.opts.unevaluated&&d!==!0?t.assign((0,aV._)`${d}[${y}]`,!0):!g&&!s.allErrors&&t.if((0,aV.not)(l),()=>t.break())})})}}};poe.default=Yfn});var j6e=w(hoe=>{"use strict";Object.defineProperty(hoe,"__esModule",{value:!0});var Jfn=pn(),Xfn={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:n,it:r}=e;if((0,Jfn.alwaysValidSchema)(r,n)){e.fail();return}let i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.failResult(i,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};hoe.default=Xfn});var H6e=w(moe=>{"use strict";Object.defineProperty(moe,"__esModule",{value:!0});var Qfn=Sa(),$fn={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Qfn.validateUnion,error:{message:"must match a schema in anyOf"}};moe.default=$fn});var q6e=w(goe=>{"use strict";Object.defineProperty(goe,"__esModule",{value:!0});var cV=Ot(),epn=pn(),tpn={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,cV._)`{passingSchemas: ${e.passing}}`},npn={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:tpn,code(e){let{gen:t,schema:n,parentSchema:r,it:i}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(i.opts.discriminator&&r.discriminator)return;let s=n,o=t.let("valid",!1),a=t.let("passing",null),c=t.name("_valid");e.setParams({passing:a}),t.block(u),e.result(o,()=>e.reset(),()=>e.error(!0));function u(){s.forEach((l,d)=>{let f;(0,epn.alwaysValidSchema)(i,l)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,cV._)`${c} && ${o}`).assign(o,!1).assign(a,(0,cV._)`[${a}, ${d}]`).else(),t.if(c,()=>{t.assign(o,!0),t.assign(a,d),f&&e.mergeEvaluated(f,cV.Name)})})}}};goe.default=npn});var B6e=w(yoe=>{"use strict";Object.defineProperty(yoe,"__esModule",{value:!0});var rpn=pn(),ipn={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:n,it:r}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");let i=t.name("valid");n.forEach((s,o)=>{if((0,rpn.alwaysValidSchema)(r,s))return;let a=e.subschema({keyword:"allOf",schemaProp:o},i);e.ok(i),e.mergeEvaluated(a)})}};yoe.default=ipn});var V6e=w(Soe=>{"use strict";Object.defineProperty(Soe,"__esModule",{value:!0});var uV=Ot(),z6e=pn(),spn={message:({params:e})=>(0,uV.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,uV._)`{failingKeyword: ${e.ifClause}}`},opn={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:spn,code(e){let{gen:t,parentSchema:n,it:r}=e;n.then===void 0&&n.else===void 0&&(0,z6e.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=G6e(r,"then"),s=G6e(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,uV.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,uV._)`${l}`):e.setParams({ifClause:l})}}}};function G6e(e,t){let n=e.schema[t];return n!==void 0&&!(0,z6e.alwaysValidSchema)(e,n)}Soe.default=opn});var W6e=w(Eoe=>{"use strict";Object.defineProperty(Eoe,"__esModule",{value:!0});var apn=pn(),cpn={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,apn.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};Eoe.default=cpn});var K6e=w(boe=>{"use strict";Object.defineProperty(boe,"__esModule",{value:!0});var upn=noe(),lpn=v6e(),dpn=roe(),fpn=R6e(),ppn=w6e(),hpn=x6e(),mpn=N6e(),gpn=loe(),ypn=M6e(),Spn=F6e(),Epn=j6e(),bpn=H6e(),_pn=q6e(),Tpn=B6e(),vpn=V6e(),Apn=W6e();function Rpn(e=!1){let t=[Epn.default,bpn.default,_pn.default,Tpn.default,vpn.default,Apn.default,mpn.default,gpn.default,hpn.default,ypn.default,Spn.default];return e?t.push(lpn.default,fpn.default):t.push(upn.default,dpn.default),t.push(ppn.default),t}boe.default=Rpn});var Z6e=w(_oe=>{"use strict";Object.defineProperty(_oe,"__esModule",{value:!0});var Cs=Ot(),wpn={message:({schemaCode:e})=>(0,Cs.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,Cs._)`{format: ${e}}`},kpn={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:wpn,code(e,t){let{gen:n,data:r,$data:i,schema:s,schemaCode:o,it:a}=e,{opts:c,errSchemaPath:u,schemaEnv:l,self:d}=a;if(!c.validateFormats)return;i?f():p();function f(){let h=n.scopeValue("formats",{ref:d.formats,code:c.code.formats}),m=n.const("fDef",(0,Cs._)`${h}[${o}]`),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})`}}}};_oe.default=kpn});var Y6e=w(Toe=>{"use strict";Object.defineProperty(Toe,"__esModule",{value:!0});var Ipn=Z6e(),xpn=[Ipn.default];Toe.default=xpn});var J6e=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 Q6e=w(voe=>{"use strict";Object.defineProperty(voe,"__esModule",{value:!0});var Opn=s6e(),Npn=E6e(),Ppn=K6e(),Cpn=Y6e(),X6e=J6e(),Mpn=[Opn.default,Npn.default,(0,Ppn.default)(),Cpn.default,X6e.metadataVocabulary,X6e.contentVocabulary];voe.default=Mpn});var Aoe=w(lV=>{"use strict";Object.defineProperty(lV,"__esModule",{value:!0});lV.DiscrError=void 0;var $6e;(function(e){e.Tag="tag",e.Mapping="mapping"})($6e||(lV.DiscrError=$6e={}))});var t8e=w(woe=>{"use strict";Object.defineProperty(woe,"__esModule",{value:!0});var ak=Ot(),Roe=Aoe(),e8e=j_(),Lpn=Km(),Dpn=pn(),Upn={message:({params:{discrError:e,tagName:t}})=>e===Roe.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,ak._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},Fpn={keyword:"discriminator",type:"object",schemaType:"object",error:Upn,code(e){let{gen:t,data:n,schema:r,parentSchema:i,it:s}=e,{oneOf:o}=i;if(!s.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=r.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!o)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),u=t.const("tag",(0,ak._)`${n}${(0,ak.getProperty)(a)}`);t.if((0,ak._)`typeof ${u} == "string"`,()=>l(),()=>e.error(!1,{discrError:Roe.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:Roe.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{jpn.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var G_=w((yi,koe)=>{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.MissingRefError=yi.ValidationError=yi.CodeGen=yi.Name=yi.nil=yi.stringify=yi.str=yi._=yi.KeywordCxt=yi.Ajv=void 0;var Hpn=Dse(),qpn=Q6e(),Bpn=t8e(),r8e=n8e(),Gpn=["/properties"],dV="http://json-schema.org/draft-07/schema",ck=class extends Hpn.default{_addVocabularies(){super._addVocabularies(),qpn.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(Bpn.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(r8e,Gpn):r8e;this.addMetaSchema(t,dV,!1),this.refs["http://json-schema.org/schema"]=dV}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(dV)?dV:void 0)}};yi.Ajv=ck;koe.exports=yi=ck;koe.exports.Ajv=ck;Object.defineProperty(yi,"__esModule",{value:!0});yi.default=ck;var zpn=tk();Object.defineProperty(yi,"KeywordCxt",{enumerable:!0,get:function(){return zpn.KeywordCxt}});var uk=Ot();Object.defineProperty(yi,"_",{enumerable:!0,get:function(){return uk._}});Object.defineProperty(yi,"str",{enumerable:!0,get:function(){return uk.str}});Object.defineProperty(yi,"stringify",{enumerable:!0,get:function(){return uk.stringify}});Object.defineProperty(yi,"nil",{enumerable:!0,get:function(){return uk.nil}});Object.defineProperty(yi,"Name",{enumerable:!0,get:function(){return uk.Name}});Object.defineProperty(yi,"CodeGen",{enumerable:!0,get:function(){return uk.CodeGen}});var Vpn=vC();Object.defineProperty(yi,"ValidationError",{enumerable:!0,get:function(){return Vpn.default}});var Wpn=Km();Object.defineProperty(yi,"MissingRefError",{enumerable:!0,get:function(){return Wpn.default}})});var fV=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(a8e,Noe),time:mh(xoe(!0),Poe),"date-time":mh(i8e(!0),u8e),"iso-time":mh(xoe(),c8e),"iso-date-time":mh(i8e(),l8e),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:Qpn,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:shn,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:$pn,int32:{type:"number",validate:nhn},int64:{type:"number",validate:rhn},float:{type:"number",validate:o8e},double:{type:"number",validate:o8e},password:!0,binary:!0};gh.fastFormats={...gh.fullFormats,date:mh(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,Noe),time:mh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,Poe),"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,u8e),"iso-time":mh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,c8e),"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,l8e),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};gh.formatNames=Object.keys(gh.fullFormats);function Kpn(e){return e%4===0&&(e%100!==0||e%400===0)}var Zpn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Ypn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function a8e(e){let t=Zpn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&i<=(r===2&&Kpn(n)?29:Ypn[r])}function Noe(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 Poe(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 c8e(e,t){if(!(e&&t))return;let n=Ioe.exec(e),r=Ioe.exec(t);if(n&&r)return e=n[1]+n[2]+n[3],t=r[1]+r[2]+r[3],e>t?1:e=ehn}function rhn(e){return Number.isInteger(e)}function o8e(){return!0}var ihn=/[^\\]\\Z/;function shn(e){if(ihn.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var d8e=w(lk=>{"use strict";Object.defineProperty(lk,"__esModule",{value:!0});lk.formatLimitDefinition=void 0;var ohn=G_(),wf=Ot(),FS=wf.operators,pV={formatMaximum:{okStr:"<=",ok:FS.LTE,fail:FS.GT},formatMinimum:{okStr:">=",ok:FS.GTE,fail:FS.LT},formatExclusiveMaximum:{okStr:"<",ok:FS.LT,fail:FS.GTE},formatExclusiveMinimum:{okStr:">",ok:FS.GT,fail:FS.LTE}},ahn={message:({keyword:e,schemaCode:t})=>(0,wf.str)`should be ${pV[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,wf._)`{comparison: ${pV[e].okStr}, limit: ${t}}`};lk.formatLimitDefinition={keyword:Object.keys(pV),type:"string",schemaType:"string",$data:!0,error:ahn,code(e){let{gen:t,data:n,schemaCode:r,keyword:i,it:s}=e,{opts:o,self:a}=s;if(!o.validateFormats)return;let c=new ohn.KeywordCxt(s,a.RULES.all.format.definition,"format");c.$data?u():l();function u(){let f=t.scopeValue("formats",{ref:a.formats,code:o.code.formats}),p=t.const("fmt",(0,wf._)`${f}[${c.schemaCode}]`);e.fail$data((0,wf.or)((0,wf._)`typeof ${p} != "object"`,(0,wf._)`${p} instanceof RegExp`,(0,wf._)`typeof ${p}.compare != "function"`,d(p)))}function l(){let f=c.schema,p=a.formats[f];if(!p||p===!0)return;if(typeof p!="object"||p instanceof RegExp||typeof p.compare!="function")throw new Error(`"${i}": format "${f}" does not define "compare" function`);let h=t.scopeValue("formats",{key:f,ref:p,code:o.code.formats?(0,wf._)`${o.code.formats}${(0,wf.getProperty)(f)}`:void 0});e.fail$data(d(h))}function d(f){return(0,wf._)`${f}.compare(${n}, ${r}) ${pV[i].fail} 0`}},dependencies:["format"]};var chn=e=>(e.addKeyword(lk.formatLimitDefinition),e);lk.default=chn});var hV=w((FC,h8e)=>{"use strict";Object.defineProperty(FC,"__esModule",{value:!0});var dk=fV(),uhn=d8e(),Coe=Ot(),f8e=new Coe.Name("fullFormats"),lhn=new Coe.Name("fastFormats"),Moe=(e,t={keywords:!0})=>{if(Array.isArray(t))return p8e(e,t,dk.fullFormats,f8e),e;let[n,r]=t.mode==="fast"?[dk.fastFormats,lhn]:[dk.fullFormats,f8e],i=t.formats||dk.formatNames;return p8e(e,i,n,r),t.keywords&&(0,uhn.default)(e),e};Moe.get=(e,t="full")=>{let r=(t==="fast"?dk.fastFormats:dk.fullFormats)[e];if(!r)throw new Error(`Unknown format "${e}"`);return r};function p8e(e,t,n,r){var i,s;(i=(s=e.opts.code).formats)!==null&&i!==void 0||(s.formats=(0,Coe._)`require("ajv-formats/dist/formats").${r}`);for(let o of t)e.addFormat(o,n[o])}h8e.exports=FC=Moe;Object.defineProperty(FC,"__esModule",{value:!0});FC.default=Moe});function dhn(){let e=new m8e.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,g8e.default)(e),e}var m8e,g8e,mV,y8e=v(()=>{m8e=Se(G_(),1),g8e=Se(hV(),1);mV=class{constructor(t){this._ajv=t??dhn()}getValidator(t){let n="$id"in t&&typeof t.$id=="string"?this._ajv.getSchema(t.$id)??this._ajv.compile(t):this._ajv.compile(t);return r=>n(r)?{valid:!0,data:r,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(n.errors)}}}});var gV,S8e=v(()=>{N_();gV=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},cC,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 E8e(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 b8e(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 _8e=v(()=>{});var yV,T8e=v(()=>{LYe();N_();y8e();u2();S8e();_8e();yV=class extends P2{constructor(t,n){super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(aC.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(Qre,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(cie,async(r,i)=>{let s=i.sessionId||i.requestInfo?.headers["mcp-session-id"]||void 0,{level:o}=r.params,a=aC.safeParse(o);return a.success&&this._loggingLevels.set(s,a.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new gV(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=MYe(this._capabilities,t)}setRequestHandler(t,n){let i=c2(t)?.method;if(!i)throw new Error("Schema is missing a method literal");let s;if(Bw(i)){let a=i;s=a._zod?.def?.value??a.value}else{let a=i;s=a._def?.value??a.value}if(typeof s!="string")throw new Error("Schema method literal must be a string");if(s==="tools/call"){let a=async(c,u)=>{let l=kS(oC,c);if(!l.success){let h=l.error instanceof Error?l.error.message:String(l.error);throw new rn(yn.InvalidParams,`Invalid tools/call request: ${h}`)}let{params:d}=l.data,f=await Promise.resolve(n(c,u));if(d.task){let h=kS(zw,f);if(!h.success){let m=h.error instanceof Error?h.error.message:String(h.error);throw new rn(yn.InvalidParams,`Invalid task creation result: ${m}`)}return h.data}let p=kS(R2,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){b8e(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&E8e(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:pYe.includes(n)?n:Wre,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"},m2)}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},uie,n):this.request({method:"sampling/createMessage",params:t},cC,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},die,n)}async sendLoggingMessage(t,n){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,n))return this.notification({method:"notifications/message",params:t})}async sendResourceUpdated(t){return this.notification({method:"notifications/resources/updated",params:t})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}}});function fhn(e){return _Ye.parse(JSON.parse(e))}function v8e(e){return JSON.stringify(e)+` -`}var SV,A8e=v(()=>{N_();SV=class{append(t){this._buffer=this._buffer?Buffer.concat([this._buffer,t]):t}readMessage(){if(!this._buffer)return null;let t=this._buffer.indexOf(` -`);if(t===-1)return null;let n=this._buffer.toString("utf8",0,t).replace(/\r$/,"");return this._buffer=this._buffer.subarray(t+1),fhn(n)}clear(){this._buffer=void 0}}});import R8e from"node:process";var EV,w8e=v(()=>{A8e();EV=class{constructor(t=R8e.stdin,n=R8e.stdout){this._stdin=t,this._stdout=n,this._readBuffer=new SV,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=v8e(t);this._stdout.write(r)?n():this._stdout.once("drain",n)})}}});var I8e=w((dWr,Loe)=>{"use strict";var phn=/at\s(?:.*\.)?plugin\s.*\n\s*(.*)/,hhn=/(\w*(\.\w*)*)\..*/;Loe.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,k8e(r.stack)}};function k8e(e){let t=e.match(phn);return t?t[1].split(/[/\\]/).slice(-1)[0].match(hhn)[1]:"anonymous"}Loe.exports.extractPluginName=k8e});var O8e=w((fWr,x8e)=>{"use strict";x8e.exports=function(t){return t[0]==="@"&&(t=t.slice(1).replace("/","-")),t.replace(/-(.)/g,function(n,r){return r.toUpperCase()})}});var jC=w((pWr,bV)=>{"use strict";var mhn=I8e(),ghn=O8e(),yhn=0;function Doe(e,t={}){let n=!1;if(e.default!==void 0&&(e=e.default),typeof e!="function")throw new TypeError(`fastify-plugin expects a function, instead got a '${typeof e}'`);if(typeof t=="string"&&(t={fastify:t}),typeof t!="object"||Array.isArray(t)||t===null)throw new TypeError("The options object should be an object");if(t.fastify!==void 0&&typeof t.fastify!="string")throw new TypeError(`fastify-plugin expects a version string, instead got '${typeof t.fastify}'`);t.name||(n=!0,t.name=mhn(e)+"-auto-"+yhn++),e[Symbol.for("skip-override")]=t.encapsulate!==!0,e[Symbol.for("fastify.display-name")]=t.name,e[Symbol.for("plugin-meta")]=t,e.default||(e.default=e);let r=ghn(t.name);return!n&&!e[r]&&(e[r]=e),e}bV.exports=Doe;bV.exports.default=Doe;bV.exports.fastifyPlugin=Doe});var AV=w(yh=>{"use strict";var Uoe=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}},Foe=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}},HC=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}},_V=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 N8e(e){return`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}-${e.getDate().toString().padStart(2,"0")}`}var joe=class{constructor(t,n,r){this.cacheId=t,this.statisticTtlInHours=n,this.collectionStart=new Date,this.currentTimeStamp=N8e(this.collectionStart),this.records=r||new _V,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=N8e(this.collectionStart),this.records.initForCache(this.cacheId,this.currentTimeStamp))}},TV=class extends HC{constructor(t,n,r,i,s){if(super(t||1e3,n||0),!r)throw new Error("Cache id is mandatory");this.hitStatistics=new joe(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()}},vV=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=vV;yh.FifoMap=Uoe;yh.FifoObject=vV;yh.HitStatisticsRecord=_V;yh.Lru=HC;yh.LruHitStatistics=TV;yh.LruMap=Foe;yh.LruObject=HC;yh.LruObjectHitStatistics=TV});var C8e=w((mWr,qC)=>{"use strict";var{FifoMap:Shn}=AV(),Ehn=/^[!#$%&'*+\-.^\w`|~]+$/u;function bhn(e){if(Ehn.test(e)===!1)throw new TypeError("Fieldname contains invalid characters.")}function P8e(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 _hn=jC(),{addAccessControlRequestHeadersToVaryHeader:Thn,addOriginToVaryHeader:vhn}=C8e(),Boe={origin:"*",methods:"GET,HEAD,POST",hook:"onRequest",preflightContinue:!1,optionsSuccessStatus:204,credentials:!1,exposedHeaders:null,allowedHeaders:null,maxAge:null,preflight:!0,strictPreflight:!0},Ahn=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend"],qoe=["preSerialization","preParsing","onSend"];function D8e(e,t){Ahn.indexOf(e)===-1&&t(new TypeError("@fastify/cors: Invalid hook option provided."))}function Rhn(e,t,n){e.decorateRequest("corsPreflightEnabled",!1);let r=!0,i;if(typeof t=="function")M8e(t,e,{hook:Boe.hook},n);else if(t.delegator){let{delegator:s,...o}=t;M8e(s,e,o,n)}else{let s=RV(t);D8e(s.hook,n),qoe.indexOf(s.hook)!==-1?e.addHook(s.hook,function(a,c,u,l){BC(e,s,a,c,l)}):e.addHook(s.hook,function(a,c,u){BC(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 M8e(e,t,n,r){let i=n?.hook||Boe.hook;D8e(i,r),e.length===2?qoe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){L8e(e,t,o,a,u)}):t.addHook(i,function(o,a,c){L8e(e,t,o,a,c)}):qoe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){let l=e(o);if(l&&typeof l.then=="function"){l.then(d=>BC(t,RV(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=>BC(t,RV(l,!0),o,a,c)).catch(c);return}c(new Error("Invalid CORS origin option"))})}function L8e(e,t,n,r,i){e(n,(s,o)=>{s?i(s):BC(t,RV(o,!0),n,r,i)})}function RV(e,t){let n={...Boe,...e};return Array.isArray(e.origin)&&e.origin.indexOf("*")!==-1&&(n.origin="*"),Number.isInteger(n.cacheControl)?n.cacheControl=`max-age=${n.cacheControl}`:typeof n.cacheControl!="string"&&(n.cacheControl=null),n.dynamic=t||!1,n}function BC(e,t,n,r,i){let s={...t,...n.routeOptions.config?.cors};(typeof s.origin!="string"&&s.origin!==!1||s.dynamic)&&vhn(r),(typeof s.origin=="function"?Ihn(e,s.origin):(a,c)=>c(null,s.origin))(n,(a,c)=>{if(a!==null)return i(a);if(c===!1||n.routeOptions.config?.cors===!1)return i();if(!c)return i(new Error("Invalid CORS origin option"));if(whn(n,r,c,s),n.raw.method==="OPTIONS"&&s.preflight===!0){if(s.strictPreflight===!0&&(!n.headers.origin||!n.headers["access-control-request-method"])){r.status(400).type("text/plain").send("Invalid Preflight Request");return}if(n.corsPreflightEnabled=!0,khn(n,r,s),!s.preflightContinue){r.code(s.optionsSuccessStatus).header("Content-Length","0").send();return}}return i()})}function whn(e,t,n,r){let i=xhn(e.headers.origin,n);i&&t.header("Access-Control-Allow-Origin",i),r.credentials&&t.header("Access-Control-Allow-Credentials","true"),r.exposedHeaders!==null&&t.header("Access-Control-Expose-Headers",Array.isArray(r.exposedHeaders)?r.exposedHeaders.join(", "):r.exposedHeaders)}function khn(e,t,n){if(t.header("Access-Control-Allow-Methods",Array.isArray(n.methods)?n.methods.join(", "):n.methods),n.allowedHeaders===null){Thn(t);let r=e.headers["access-control-request-headers"];r!==void 0&&t.header("Access-Control-Allow-Headers",r)}else t.header("Access-Control-Allow-Headers",Array.isArray(n.allowedHeaders)?n.allowedHeaders.join(", "):n.allowedHeaders);n.maxAge!==null&&t.header("Access-Control-Max-Age",String(n.maxAge)),n.cacheControl&&t.header("Cache-Control",n.cacheControl)}function Ihn(e,t){return function(n,r){let i=t.call(e,n.headers.origin,r);i&&typeof i.then=="function"&&i.then(s=>r(null,s),r)}}function xhn(e,t){return typeof t=="string"?t:U8e(e,t)?e:!1}function U8e(e,t){if(Array.isArray(t)){for(let n=0;n{var Ohn=/^(-?(?:\d+)?\.?\d+) *(m(?:illiseconds?|s(?:ecs?)?))?(s(?:ec(?:onds?|s)?)?)?(m(?:in(?:utes?|s)?)?)?(h(?:ours?|rs?)?)?(d(?:ays?)?)?(w(?:eeks?|ks?)?)?(y(?:ears?|rs?)?)?$/,kV=1e3,IV=kV*60,xV=IV*60,zC=xV*24,zoe=zC*365.25;function Nhn(e){var t,n=e.toLowerCase().match(Ohn);if(n!=null&&(t=parseFloat(n[1])))return n[3]!=null?t*kV:n[4]!=null?t*IV:n[5]!=null?t*xV:n[6]!=null?t*zC:n[7]!=null?t*zC*7:n[8]!=null?t*zoe:t}function GC(e,t,n,r){var i=(e|0)===e?e:~~(e+.5);return t+i+(r?" "+n+(i!=1?"s":""):n[0])}function Phn(e,t){var n=e<0?"-":"",r=e<0?-e:e;return r{"use strict";var{LruMap:Chn}=AV();function OV(e,t,n=5e3){this.continueExceeding=e,this.exponentialBackoff=t,this.lru=new Chn(n)}OV.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)};OV.prototype.child=function(e){return new OV(e.continueExceeding,e.exponentialBackoff,e.cache)};H8e.exports=OV});var G8e=w((EWr,B8e)=>{"use strict";var Mhn=` + deps: ${n}}`};var npn={keyword:"dependencies",type:"object",schemaType:"object",error:mh.error,code(e){let[t,n]=rpn(e);F5e(e,t),j5e(e,n)}};function rpn({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 F5e(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,YC.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,YC.checkReportMissingProp)(e,u)}):(n.if((0,goe._)`${c} && (${(0,YC.checkMissingProp)(e,a,s)})`),(0,YC.reportMissingProp)(e,s),n.else())}}mh.validatePropertyDeps=F5e;function j5e(e,t=e.schema){let{gen:n,data:r,keyword:i,it:s}=e,o=n.name("valid");for(let a in t)(0,tpn.alwaysValidSchema)(s,t[a])||(n.if((0,YC.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=j5e;mh.default=npn});var B5e=w(yoe=>{"use strict";Object.defineProperty(yoe,"__esModule",{value:!0});var q5e=Ot(),ipn=pn(),spn={message:"property name must be valid",params:({params:e})=>(0,q5e._)`{propertyName: ${e.propertyName}}`},opn={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:spn,code(e){let{gen:t,schema:n,data:r,it:i}=e;if((0,ipn.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,q5e.not)(s),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(s)}};yoe.default=opn});var boe=w(Soe=>{"use strict";Object.defineProperty(Soe,"__esModule",{value:!0});var pV=Sa(),kf=Ot(),apn=bd(),hV=pn(),cpn={message:"must NOT have additional properties",params:({params:e})=>(0,kf._)`{additionalProperty: ${e.additionalProperty}}`},upn={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:cpn,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,hV.alwaysValidSchema)(o,n))return;let u=(0,pV.allSchemaProperties)(r.properties),l=(0,pV.allSchemaProperties)(r.patternProperties);d(),e.ok((0,kf._)`${s} === ${apn.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,hV.schemaRefOrVal)(o,r.properties,"properties");y=(0,pV.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,pV.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,hV.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:hV.Type.Str};b===!1&&Object.assign(S,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(S,y)}}};Soe.default=upn});var V5e=w(_oe=>{"use strict";Object.defineProperty(_oe,"__esModule",{value:!0});var lpn=ck(),z5e=Sa(),Eoe=pn(),G5e=boe(),dpn={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&&G5e.default.code(new lpn.KeywordCxt(s,G5e.default,"additionalProperties"));let o=(0,z5e.allSchemaProperties)(n);for(let d of o)s.definedProperties.add(d);s.opts.unevaluated&&o.length&&s.props!==!0&&(s.props=Eoe.mergeEvaluated.props(t,(0,Eoe.toHash)(o),s.props));let a=o.filter(d=>!(0,Eoe.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,z5e.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)}}};_oe.default=dpn});var Z5e=w(Toe=>{"use strict";Object.defineProperty(Toe,"__esModule",{value:!0});var W5e=Sa(),mV=Ot(),K5e=pn(),Y5e=pn(),fpn={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,W5e.allSchemaProperties)(n),c=a.filter(m=>(0,K5e.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 mV.Name)&&(s.props=(0,Y5e.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,K5e.checkStrictMode)(s,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){t.forIn("key",r,g=>{t.if((0,mV._)`${(0,W5e.usePattern)(e,m)}.test(${g})`,()=>{let y=c.includes(m);y||e.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:Y5e.Type.Str},l),s.opts.unevaluated&&d!==!0?t.assign((0,mV._)`${d}[${g}]`,!0):!y&&!s.allErrors&&t.if((0,mV.not)(l),()=>t.break())})})}}};Toe.default=fpn});var J5e=w(voe=>{"use strict";Object.defineProperty(voe,"__esModule",{value:!0});var ppn=pn(),hpn={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:n,it:r}=e;if((0,ppn.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"}};voe.default=hpn});var X5e=w(Roe=>{"use strict";Object.defineProperty(Roe,"__esModule",{value:!0});var mpn=Sa(),gpn={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:mpn.validateUnion,error:{message:"must match a schema in anyOf"}};Roe.default=gpn});var Q5e=w(Aoe=>{"use strict";Object.defineProperty(Aoe,"__esModule",{value:!0});var gV=Ot(),ypn=pn(),Spn={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,gV._)`{passingSchemas: ${e.passing}}`},bpn={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Spn,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,ypn.alwaysValidSchema)(i,l)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,gV._)`${c} && ${o}`).assign(o,!1).assign(a,(0,gV._)`[${a}, ${d}]`).else(),t.if(c,()=>{t.assign(o,!0),t.assign(a,d),f&&e.mergeEvaluated(f,gV.Name)})})}}};Aoe.default=bpn});var $5e=w(woe=>{"use strict";Object.defineProperty(woe,"__esModule",{value:!0});var Epn=pn(),_pn={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,Epn.alwaysValidSchema)(r,s))return;let a=e.subschema({keyword:"allOf",schemaProp:o},i);e.ok(i),e.mergeEvaluated(a)})}};woe.default=_pn});var n8e=w(koe=>{"use strict";Object.defineProperty(koe,"__esModule",{value:!0});var yV=Ot(),t8e=pn(),Tpn={message:({params:e})=>(0,yV.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,yV._)`{failingKeyword: ${e.ifClause}}`},vpn={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Tpn,code(e){let{gen:t,parentSchema:n,it:r}=e;n.then===void 0&&n.else===void 0&&(0,t8e.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=e8e(r,"then"),s=e8e(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,yV.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,yV._)`${l}`):e.setParams({ifClause:l})}}}};function e8e(e,t){let n=e.schema[t];return n!==void 0&&!(0,t8e.alwaysValidSchema)(e,n)}koe.default=vpn});var r8e=w(Ioe=>{"use strict";Object.defineProperty(Ioe,"__esModule",{value:!0});var Rpn=pn(),Apn={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,Rpn.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};Ioe.default=Apn});var i8e=w(xoe=>{"use strict";Object.defineProperty(xoe,"__esModule",{value:!0});var wpn=doe(),kpn=M5e(),Ipn=foe(),xpn=L5e(),Opn=U5e(),Ppn=H5e(),Npn=B5e(),Cpn=boe(),Mpn=V5e(),Dpn=Z5e(),Lpn=J5e(),Upn=X5e(),Fpn=Q5e(),jpn=$5e(),Hpn=n8e(),qpn=r8e();function Bpn(e=!1){let t=[Lpn.default,Upn.default,Fpn.default,jpn.default,Hpn.default,qpn.default,Npn.default,Cpn.default,Ppn.default,Mpn.default,Dpn.default];return e?t.push(kpn.default,xpn.default):t.push(wpn.default,Ipn.default),t.push(Opn.default),t}xoe.default=Bpn});var s8e=w(Ooe=>{"use strict";Object.defineProperty(Ooe,"__esModule",{value:!0});var Cs=Ot(),zpn={message:({schemaCode:e})=>(0,Cs.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,Cs._)`{format: ${e}}`},Gpn={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:zpn,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})`}}}};Ooe.default=Gpn});var o8e=w(Poe=>{"use strict";Object.defineProperty(Poe,"__esModule",{value:!0});var Vpn=s8e(),Wpn=[Vpn.default];Poe.default=Wpn});var a8e=w(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});pk.contentVocabulary=pk.metadataVocabulary=void 0;pk.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];pk.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var u8e=w(Noe=>{"use strict";Object.defineProperty(Noe,"__esModule",{value:!0});var Kpn=g5e(),Ypn=O5e(),Zpn=i8e(),Jpn=o8e(),c8e=a8e(),Xpn=[Kpn.default,Ypn.default,(0,Zpn.default)(),Jpn.default,c8e.metadataVocabulary,c8e.contentVocabulary];Noe.default=Xpn});var Coe=w(SV=>{"use strict";Object.defineProperty(SV,"__esModule",{value:!0});SV.DiscrError=void 0;var l8e;(function(e){e.Tag="tag",e.Mapping="mapping"})(l8e||(SV.DiscrError=l8e={}))});var f8e=w(Doe=>{"use strict";Object.defineProperty(Doe,"__esModule",{value:!0});var hk=Ot(),Moe=Coe(),d8e=q_(),Qpn=Zm(),$pn=pn(),ehn={message:({params:{discrError:e,tagName:t}})=>e===Moe.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,hk._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},thn={keyword:"discriminator",type:"object",schemaType:"object",error:ehn,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,hk._)`${n}${(0,hk.getProperty)(a)}`);t.if((0,hk._)`typeof ${u} == "string"`,()=>l(),()=>e.error(!1,{discrError:Moe.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,hk._)`${u} === ${h}`),t.assign(c,d(p[h]));t.else(),e.error(!1,{discrError:Moe.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,hk.Name),h}function f(){var p;let h={},m=y(i),g=!0;for(let E=0;E{nhn.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 V_=w((yi,Loe)=>{"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 rhn=Vse(),ihn=u8e(),shn=f8e(),h8e=p8e(),ohn=["/properties"],bV="http://json-schema.org/draft-07/schema",mk=class extends rhn.default{_addVocabularies(){super._addVocabularies(),ihn.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(shn.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(h8e,ohn):h8e;this.addMetaSchema(t,bV,!1),this.refs["http://json-schema.org/schema"]=bV}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(bV)?bV:void 0)}};yi.Ajv=mk;Loe.exports=yi=mk;Loe.exports.Ajv=mk;Object.defineProperty(yi,"__esModule",{value:!0});yi.default=mk;var ahn=ck();Object.defineProperty(yi,"KeywordCxt",{enumerable:!0,get:function(){return ahn.KeywordCxt}});var gk=Ot();Object.defineProperty(yi,"_",{enumerable:!0,get:function(){return gk._}});Object.defineProperty(yi,"str",{enumerable:!0,get:function(){return gk.str}});Object.defineProperty(yi,"stringify",{enumerable:!0,get:function(){return gk.stringify}});Object.defineProperty(yi,"nil",{enumerable:!0,get:function(){return gk.nil}});Object.defineProperty(yi,"Name",{enumerable:!0,get:function(){return gk.Name}});Object.defineProperty(yi,"CodeGen",{enumerable:!0,get:function(){return gk.CodeGen}});var chn=MC();Object.defineProperty(yi,"ValidationError",{enumerable:!0,get:function(){return chn.default}});var uhn=Zm();Object.defineProperty(yi,"MissingRefError",{enumerable:!0,get:function(){return uhn.default}})});var EV=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(S8e,Hoe),time:gh(Foe(!0),qoe),"date-time":gh(m8e(!0),E8e),"iso-time":gh(Foe(),b8e),"iso-date-time":gh(m8e(),_8e),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:mhn,"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:Thn,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:ghn,int32:{type:"number",validate:bhn},int64:{type:"number",validate:Ehn},float:{type:"number",validate:y8e},double:{type:"number",validate:y8e},password:!0,binary:!0};yh.fastFormats={...yh.fullFormats,date:gh(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,Hoe),time:gh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,qoe),"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,E8e),"iso-time":gh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,b8e),"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,_8e),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 lhn(e){return e%4===0&&(e%100!==0||e%400===0)}var dhn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,fhn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function S8e(e){let t=dhn.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&&lhn(n)?29:fhn[r])}function Hoe(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 qoe(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 b8e(e,t){if(!(e&&t))return;let n=Uoe.exec(e),r=Uoe.exec(t);if(n&&r)return e=n[1]+n[2]+n[3],t=r[1]+r[2]+r[3],e>t?1:e=yhn}function Ehn(e){return Number.isInteger(e)}function y8e(){return!0}var _hn=/[^\\]\\Z/;function Thn(e){if(_hn.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var T8e=w(yk=>{"use strict";Object.defineProperty(yk,"__esModule",{value:!0});yk.formatLimitDefinition=void 0;var vhn=V_(),If=Ot(),HS=If.operators,_V={formatMaximum:{okStr:"<=",ok:HS.LTE,fail:HS.GT},formatMinimum:{okStr:">=",ok:HS.GTE,fail:HS.LT},formatExclusiveMaximum:{okStr:"<",ok:HS.LT,fail:HS.GTE},formatExclusiveMinimum:{okStr:">",ok:HS.GT,fail:HS.LTE}},Rhn={message:({keyword:e,schemaCode:t})=>(0,If.str)`should be ${_V[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,If._)`{comparison: ${_V[e].okStr}, limit: ${t}}`};yk.formatLimitDefinition={keyword:Object.keys(_V),type:"string",schemaType:"string",$data:!0,error:Rhn,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 vhn.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}) ${_V[i].fail} 0`}},dependencies:["format"]};var Ahn=e=>(e.addKeyword(yk.formatLimitDefinition),e);yk.default=Ahn});var TV=w((ZC,A8e)=>{"use strict";Object.defineProperty(ZC,"__esModule",{value:!0});var Sk=EV(),whn=T8e(),Boe=Ot(),v8e=new Boe.Name("fullFormats"),khn=new Boe.Name("fastFormats"),zoe=(e,t={keywords:!0})=>{if(Array.isArray(t))return R8e(e,t,Sk.fullFormats,v8e),e;let[n,r]=t.mode==="fast"?[Sk.fastFormats,khn]:[Sk.fullFormats,v8e],i=t.formats||Sk.formatNames;return R8e(e,i,n,r),t.keywords&&(0,whn.default)(e),e};zoe.get=(e,t="full")=>{let r=(t==="fast"?Sk.fastFormats:Sk.fullFormats)[e];if(!r)throw new Error(`Unknown format "${e}"`);return r};function R8e(e,t,n,r){var i,s;(i=(s=e.opts.code).formats)!==null&&i!==void 0||(s.formats=(0,Boe._)`require("ajv-formats/dist/formats").${r}`);for(let o of t)e.addFormat(o,n[o])}A8e.exports=ZC=zoe;Object.defineProperty(ZC,"__esModule",{value:!0});ZC.default=zoe});function Ihn(){let e=new w8e.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,k8e.default)(e),e}var w8e,k8e,vV,I8e=v(()=>{w8e=Re(V_(),1),k8e=Re(TV(),1);vV=class{constructor(t){this._ajv=t??Ihn()}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 RV,x8e=v(()=>{C_();RV=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},bC,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},$w,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 O8e(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 P8e(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 N8e=v(()=>{});var AV,C8e=v(()=>{WZe();C_();I8e();y2();x8e();N8e();AV=class extends H2{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(aie,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(yie,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 RV(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=VZe(this._capabilities,t)}setRequestHandler(t,n){let i=g2(t)?.method;if(!i)throw new Error("Schema is missing a method literal");let s;if(Zw(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=xS(yC,c);if(!l.success){let h=l.error instanceof Error?l.error.message:String(l.error);throw new rn(Sn.InvalidParams,`Invalid tools/call request: ${h}`)}let{params:d}=l.data,f=await Promise.resolve(n(c,u));if(d.task){let h=xS(Xw,f);if(!h.success){let m=h.error instanceof Error?h.error.message:String(h.error);throw new rn(Sn.InvalidParams,`Invalid task creation result: ${m}`)}return h.data}let p=xS(C2,f);if(!p.success){let h=p.error instanceof Error?p.error.message:String(p.error);throw new rn(Sn.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){P8e(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&O8e(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:RZe.includes(n)?n:tie,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"},v2)}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},Sie,n):this.request({method:"sampling/createMessage",params:t},bC,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},$w,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},$w,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(Sn.InvalidParams,`Elicitation response content does not match requested schema: ${a.errorMessage}`)}catch(o){throw o instanceof rn?o:new rn(Sn.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},Eie,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 xhn(e){return NZe.parse(JSON.parse(e))}function M8e(e){return JSON.stringify(e)+` +`}var wV,D8e=v(()=>{C_();wV=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),xhn(n)}clear(){this._buffer=void 0}}});import L8e from"node:process";var kV,U8e=v(()=>{D8e();kV=class{constructor(t=L8e.stdin,n=L8e.stdout){this._stdin=t,this._stdout=n,this._readBuffer=new wV,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=M8e(t);this._stdout.write(r)?n():this._stdout.once("drain",n)})}}});var j8e=w((ZWr,Goe)=>{"use strict";var Ohn=/at\s(?:.*\.)?plugin\s.*\n\s*(.*)/,Phn=/(\w*(\.\w*)*)\..*/;Goe.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,F8e(r.stack)}};function F8e(e){let t=e.match(Ohn);return t?t[1].split(/[/\\]/).slice(-1)[0].match(Phn)[1]:"anonymous"}Goe.exports.extractPluginName=F8e});var q8e=w((JWr,H8e)=>{"use strict";H8e.exports=function(t){return t[0]==="@"&&(t=t.slice(1).replace("/","-")),t.replace(/-(.)/g,function(n,r){return r.toUpperCase()})}});var JC=w((XWr,IV)=>{"use strict";var Nhn=j8e(),Chn=q8e(),Mhn=0;function Voe(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=Nhn(e)+"-auto-"+Mhn++),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=Chn(t.name);return!n&&!e[r]&&(e[r]=e),e}IV.exports=Voe;IV.exports.default=Voe;IV.exports.fastifyPlugin=Voe});var NV=w(Sh=>{"use strict";var Woe=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}},Koe=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}},XC=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}},xV=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 B8e(e){return`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}-${e.getDate().toString().padStart(2,"0")}`}var Yoe=class{constructor(t,n,r){this.cacheId=t,this.statisticTtlInHours=n,this.collectionStart=new Date,this.currentTimeStamp=B8e(this.collectionStart),this.records=r||new xV,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=B8e(this.collectionStart),this.records.initForCache(this.cacheId,this.currentTimeStamp))}},OV=class extends XC{constructor(t,n,r,i,s){if(super(t||1e3,n||0),!r)throw new Error("Cache id is mandatory");this.hitStatistics=new Yoe(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()}},PV=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=PV;Sh.FifoMap=Woe;Sh.FifoObject=PV;Sh.HitStatisticsRecord=xV;Sh.Lru=XC;Sh.LruHitStatistics=OV;Sh.LruMap=Koe;Sh.LruObject=XC;Sh.LruObjectHitStatistics=OV});var G8e=w(($Wr,QC)=>{"use strict";var{FifoMap:Dhn}=NV(),Lhn=/^[!#$%&'*+\-.^\w`|~]+$/u;function Uhn(e){if(Lhn.test(e)===!1)throw new TypeError("Fieldname contains invalid characters.")}function z8e(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 Fhn=JC(),{addAccessControlRequestHeadersToVaryHeader:jhn,addOriginToVaryHeader:Hhn}=G8e(),Xoe={origin:"*",methods:"GET,HEAD,POST",hook:"onRequest",preflightContinue:!1,optionsSuccessStatus:204,credentials:!1,exposedHeaders:null,allowedHeaders:null,maxAge:null,preflight:!0,strictPreflight:!0},qhn=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend"],Joe=["preSerialization","preParsing","onSend"];function K8e(e,t){qhn.indexOf(e)===-1&&t(new TypeError("@fastify/cors: Invalid hook option provided."))}function Bhn(e,t,n){e.decorateRequest("corsPreflightEnabled",!1);let r=!0,i;if(typeof t=="function")V8e(t,e,{hook:Xoe.hook},n);else if(t.delegator){let{delegator:s,...o}=t;V8e(s,e,o,n)}else{let s=CV(t);K8e(s.hook,n),Joe.indexOf(s.hook)!==-1?e.addHook(s.hook,function(a,c,u,l){$C(e,s,a,c,l)}):e.addHook(s.hook,function(a,c,u){$C(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 V8e(e,t,n,r){let i=n?.hook||Xoe.hook;K8e(i,r),e.length===2?Joe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){W8e(e,t,o,a,u)}):t.addHook(i,function(o,a,c){W8e(e,t,o,a,c)}):Joe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){let l=e(o);if(l&&typeof l.then=="function"){l.then(d=>$C(t,CV(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=>$C(t,CV(l,!0),o,a,c)).catch(c);return}c(new Error("Invalid CORS origin option"))})}function W8e(e,t,n,r,i){e(n,(s,o)=>{s?i(s):$C(t,CV(o,!0),n,r,i)})}function CV(e,t){let n={...Xoe,...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 $C(e,t,n,r,i){let s={...t,...n.routeOptions.config?.cors};(typeof s.origin!="string"&&s.origin!==!1||s.dynamic)&&Hhn(r),(typeof s.origin=="function"?Vhn(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(zhn(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,Ghn(n,r,s),!s.preflightContinue){r.code(s.optionsSuccessStatus).header("Content-Length","0").send();return}}return i()})}function zhn(e,t,n,r){let i=Whn(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 Ghn(e,t,n){if(t.header("Access-Control-Allow-Methods",Array.isArray(n.methods)?n.methods.join(", "):n.methods),n.allowedHeaders===null){jhn(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 Vhn(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 Whn(e,t){return typeof t=="string"?t:Y8e(e,t)?e:!1}function Y8e(e,t){if(Array.isArray(t)){for(let n=0;n{var Khn=/^(-?(?:\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?)?)?$/,DV=1e3,LV=DV*60,UV=LV*60,tM=UV*24,$oe=tM*365.25;function Yhn(e){var t,n=e.toLowerCase().match(Khn);if(n!=null&&(t=parseFloat(n[1])))return n[3]!=null?t*DV:n[4]!=null?t*LV:n[5]!=null?t*UV:n[6]!=null?t*tM:n[7]!=null?t*tM*7:n[8]!=null?t*$oe:t}function eM(e,t,n,r){var i=(e|0)===e?e:~~(e+.5);return t+i+(r?" "+n+(i!=1?"s":""):n[0])}function Zhn(e,t){var n=e<0?"-":"",r=e<0?-e:e;return r{"use strict";var{LruMap:Jhn}=NV();function FV(e,t,n=5e3){this.continueExceeding=e,this.exponentialBackoff=t,this.lru=new Jhn(n)}FV.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)};FV.prototype.child=function(e){return new FV(e.continueExceeding,e.exponentialBackoff,e.cache)};X8e.exports=FV});var e7e=w((r4r,$8e)=>{"use strict";var Xhn=` -- Key to operate on local key = KEYS[1] -- Time window for the TTL @@ -100,38 +100,38 @@ Mongoose Error Code: ${t.code}`:""}`})}function ute(e,t,n,r=void 0){n&&(0,rP.saf end return {current, timeWindow} -`;function NV(e,t,n,r="fastify-rate-limit-"){this.continueExceeding=e,this.exponentialBackoff=t,this.redis=n,this.key=r,this.redis.rateLimit||this.redis.defineCommand("rateLimit",{numberOfKeys:1,lua:Mhn})}NV.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]})})};NV.prototype.child=function(e){return new NV(e.continueExceeding,e.exponentialBackoff,this.redis,`${this.key}${e.routeInfo.method}${e.routeInfo.url}-`)};B8e.exports=NV});var Q8e=w((bWr,PV)=>{"use strict";var Lhn=jC(),{parse:W8e,format:Dhn}=j8e(),Uhn=q8e(),Fhn=G8e(),K8e=1e3,Z8e=6e4,jhn="onRequest",Hhn={rateLimit:"x-ratelimit-limit",rateRemaining:"x-ratelimit-remaining",rateReset:"x-ratelimit-reset",retryAfter:"retry-after"},qhn={rateLimit:"ratelimit-limit",rateRemaining:"ratelimit-remaining",rateReset:"ratelimit-reset",retryAfter:"retry-after"},Woe=()=>{},Bhn=e=>e.ip,Ghn=(e,t)=>{let n=new Error(`Rate limit exceeded, retry in ${t.after}`);return n.statusCode=t.statusCode,n};async function Koe(e,t){let n={global:typeof t.global=="boolean"?t.global:!0};typeof t.enableDraftSpec=="boolean"&&t.enableDraftSpec?(n.enableDraftSpec=!0,n.labels=qhn):(n.enableDraftSpec=!1,n.labels=Hhn),n.addHeaders=Object.assign({[n.labels.rateLimit]:!0,[n.labels.rateRemaining]:!0,[n.labels.rateReset]:!0,[n.labels.retryAfter]:!0},t.addHeaders),n.addHeadersOnExceeding=Object.assign({[n.labels.rateLimit]:!0,[n.labels.rateRemaining]:!0,[n.labels.rateReset]:!0},t.addHeadersOnExceeding),Number.isFinite(t.max)&&t.max>=0?n.max=Math.trunc(t.max):typeof t.max=="function"?n.max=t.max:n.max=K8e,Number.isFinite(t.timeWindow)&&t.timeWindow>=0?n.timeWindow=Math.trunc(t.timeWindow):typeof t.timeWindow=="string"?n.timeWindow=W8e(t.timeWindow):typeof t.timeWindow=="function"?n.timeWindow=t.timeWindow:n.timeWindow=Z8e,n.hook=t.hook||jhn,n.allowList=t.allowList||t.whitelist||null,n.ban=Number.isFinite(t.ban)&&t.ban>=0?Math.trunc(t.ban):-1,n.onBanReach=typeof t.onBanReach=="function"?t.onBanReach:Woe,n.onExceeding=typeof t.onExceeding=="function"?t.onExceeding:Woe,n.onExceeded=typeof t.onExceeded=="function"?t.onExceeded:Woe,n.continueExceeding=typeof t.continueExceeding=="boolean"?t.continueExceeding:!1,n.exponentialBackoff=typeof t.exponentialBackoff=="boolean"?t.exponentialBackoff:!1,n.keyGenerator=typeof t.keyGenerator=="function"?t.keyGenerator:Bhn,typeof t.errorResponseBuilder=="function"?(n.errorResponseBuilder=t.errorResponseBuilder,n.isCustomErrorMessage=!0):(n.errorResponseBuilder=Ghn,n.isCustomErrorMessage=!1),n.skipOnError=typeof t.skipOnError=="boolean"?t.skipOnError:!1;let r={rateLimitRan:Symbol("fastify.request.rateLimitRan"),store:null};if(t.store){let i=t.store;r.store=new i(n)}else t.redis?r.store=new Fhn(n.continueExceeding,n.exponentialBackoff,t.redis,t.nameSpace):r.store=new Uhn(n.continueExceeding,n.exponentialBackoff,t.cache);e.decorateRequest(r.rateLimitRan,!1),e.hasDecorator("createRateLimit")||e.decorate("createRateLimit",i=>{let s=z8e(r,n,i);return o=>J8e.apply(this,s.concat(o))}),e.hasDecorator("rateLimit")||e.decorate("rateLimit",i=>{let s=z8e(r,n,i);return X8e(...s)}),e.addHook("onRoute",i=>{if(i.config?.rateLimit!=null){if(typeof i.config.rateLimit=="object"){let s=Object.create(r),o=Y8e(n,i.config.rateLimit,{routeInfo:i});s.store=r.store.child(o),V8e(s,o,i)}else if(i.config.rateLimit!==!1)throw new Error("Unknown value for route rate-limit configuration")}else n.global&&V8e(r,n,i)})}function Y8e(...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=W8e(t.timeWindow):typeof t.timeWindow!="function"&&(t.timeWindow=Z8e),Number.isFinite(t.max)&&t.max>=0?t.max=Math.trunc(t.max):typeof t.max!="function"&&(t.max=K8e),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 z8e(e,t,n){if(typeof n=="object"){let r=Object.create(e),i=Y8e(t,n,{routeInfo:{}});return r.store=r.store.child(i),[r,i]}return[e,t]}function V8e(e,t,n){let r=t.hook,i=X8e(e,t);Array.isArray(n[r])?n[r].push(i):typeof n[r]=="function"?n[r]=[n[r],i]:n[r]=[i]}async function J8e(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 X8e(e,t){let{rateLimitRan:n}=e;return async(r,i)=>{if(r[n])return;r[n]=!0;let s=await J8e(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:Dhn(l*1e3,!0)};throw f&&(p.statusCode=403,p.ban=!0,t.onBanReach(r,o)),t.errorResponseBuilder(r,p)}}PV.exports=Lhn(Koe,{fastify:"5.x",name:"@fastify/rate-limit"});PV.exports.default=Koe;PV.exports.fastifyRateLimit=Koe});var Ym=w((_Wr,tJe)=>{"use strict";var $8e=["nodebuffer","arraybuffer","fragments"],eJe=typeof Blob<"u";eJe&&$8e.push("blob");tJe.exports={BINARY_TYPES:$8e,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:eJe,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var VC=w((TWr,CV)=>{"use strict";var{EMPTY_BUFFER:zhn}=Ym(),Zoe=Buffer[Symbol.species];function Vhn(e,t){if(e.length===0)return zhn;if(e.length===1)return e[0];let n=Buffer.allocUnsafe(t),r=0;for(let i=0;i{"use strict";var iJe=Symbol("kDone"),Joe=Symbol("kRun"),Xoe=class{constructor(t){this[iJe]=()=>{this.pending--,this[Joe]()},this.concurrency=t||1/0,this.jobs=[],this.pending=0}add(t){this.jobs.push(t),this[Joe]()}[Joe](){if(this.pending!==this.concurrency&&this.jobs.length){let t=this.jobs.shift();this.pending++,t(this[iJe])}}};sJe.exports=Xoe});var hk=w((AWr,lJe)=>{"use strict";var WC=Z("zlib"),aJe=VC(),Khn=oJe(),{kStatusCode:cJe}=Ym(),Zhn=Buffer[Symbol.species],Yhn=Buffer.from([0,0,255,255]),LV=Symbol("permessage-deflate"),Jm=Symbol("total-length"),fk=Symbol("callback"),jS=Symbol("buffers"),pk=Symbol("error"),MV,Qoe=class{constructor(t){if(this._options=t||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!MV){let n=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;MV=new Khn(n)}}static get extensionName(){return"permessage-deflate"}offer(){let t={};return this._options.serverNoContextTakeover&&(t.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(t.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(t.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?t.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(t.client_max_window_bits=!0),t}accept(t){return t=this.normalizeParams(t),this.params=this._isServer?this.acceptAsServer(t):this.acceptAsClient(t),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let t=this._deflate[fk];this._deflate.close(),this._deflate=null,t&&t(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(t){let n=this._options,r=t.find(i=>!(n.serverNoContextTakeover===!1&&i.server_no_context_takeover||i.server_max_window_bits&&(n.serverMaxWindowBits===!1||typeof n.serverMaxWindowBits=="number"&&n.serverMaxWindowBits>i.server_max_window_bits)||typeof n.clientMaxWindowBits=="number"&&!i.client_max_window_bits));if(!r)throw new Error("None of the extension offers can be accepted");return n.serverNoContextTakeover&&(r.server_no_context_takeover=!0),n.clientNoContextTakeover&&(r.client_no_context_takeover=!0),typeof n.serverMaxWindowBits=="number"&&(r.server_max_window_bits=n.serverMaxWindowBits),typeof n.clientMaxWindowBits=="number"?r.client_max_window_bits=n.clientMaxWindowBits:(r.client_max_window_bits===!0||n.clientMaxWindowBits===!1)&&delete r.client_max_window_bits,r}acceptAsClient(t){let n=t[0];if(this._options.clientNoContextTakeover===!1&&n.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!n.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(n.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&n.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return n}normalizeParams(t){return t.forEach(n=>{Object.keys(n).forEach(r=>{let i=n[r];if(i.length>1)throw new Error(`Parameter "${r}" must have only a single value`);if(i=i[0],r==="client_max_window_bits"){if(i!==!0){let s=+i;if(!Number.isInteger(s)||s<8||s>15)throw new TypeError(`Invalid value for parameter "${r}": ${i}`);i=s}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${r}": ${i}`)}else if(r==="server_max_window_bits"){let s=+i;if(!Number.isInteger(s)||s<8||s>15)throw new TypeError(`Invalid value for parameter "${r}": ${i}`);i=s}else if(r==="client_no_context_takeover"||r==="server_no_context_takeover"){if(i!==!0)throw new TypeError(`Invalid value for parameter "${r}": ${i}`)}else throw new Error(`Unknown parameter "${r}"`);n[r]=i})}),t}decompress(t,n,r){MV.add(i=>{this._decompress(t,n,(s,o)=>{i(),r(s,o)})})}compress(t,n,r){MV.add(i=>{this._compress(t,n,(s,o)=>{i(),r(s,o)})})}_decompress(t,n,r){let i=this._isServer?"client":"server";if(!this._inflate){let s=`${i}_max_window_bits`,o=typeof this.params[s]!="number"?WC.Z_DEFAULT_WINDOWBITS:this.params[s];this._inflate=WC.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[LV]=this,this._inflate[Jm]=0,this._inflate[jS]=[],this._inflate.on("error",Xhn),this._inflate.on("data",uJe)}this._inflate[fk]=r,this._inflate.write(t),n&&this._inflate.write(Yhn),this._inflate.flush(()=>{let s=this._inflate[pk];if(s){this._inflate.close(),this._inflate=null,r(s);return}let o=aJe.concat(this._inflate[jS],this._inflate[Jm]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Jm]=0,this._inflate[jS]=[],n&&this.params[`${i}_no_context_takeover`]&&this._inflate.reset()),r(null,o)})}_compress(t,n,r){let i=this._isServer?"server":"client";if(!this._deflate){let s=`${i}_max_window_bits`,o=typeof this.params[s]!="number"?WC.Z_DEFAULT_WINDOWBITS:this.params[s];this._deflate=WC.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[Jm]=0,this._deflate[jS]=[],this._deflate.on("data",Jhn)}this._deflate[fk]=r,this._deflate.write(t),this._deflate.flush(WC.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let s=aJe.concat(this._deflate[jS],this._deflate[Jm]);n&&(s=new Zhn(s.buffer,s.byteOffset,s.length-4)),this._deflate[fk]=null,this._deflate[Jm]=0,this._deflate[jS]=[],n&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),r(null,s)})}};lJe.exports=Qoe;function Jhn(e){this[jS].push(e),this[Jm]+=e.length}function uJe(e){if(this[Jm]+=e.length,this[LV]._maxPayload<1||this[Jm]<=this[LV]._maxPayload){this[jS].push(e);return}this[pk]=new RangeError("Max payload size exceeded"),this[pk].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[pk][cJe]=1009,this.removeListener("data",uJe),this.reset()}function Xhn(e){if(this[LV]._inflate=null,this[pk]){this[fk](this[pk]);return}e[cJe]=1007,this[fk](e)}});var mk=w((RWr,DV)=>{"use strict";var{isUtf8:dJe}=Z("buffer"),{hasBlob:Qhn}=Ym(),$hn=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function emn(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function $oe(e){let t=e.length,n=0;for(;n=t||(e[n+1]&192)!==128||(e[n+2]&192)!==128||e[n]===224&&(e[n+1]&224)===128||e[n]===237&&(e[n+1]&224)===160)return!1;n+=3}else if((e[n]&248)===240){if(n+3>=t||(e[n+1]&192)!==128||(e[n+2]&192)!==128||(e[n+3]&192)!==128||e[n]===240&&(e[n+1]&240)===128||e[n]===244&&e[n+1]>143||e[n]>244)return!1;n+=4}else return!1;return!0}function tmn(e){return Qhn&&typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}DV.exports={isBlob:tmn,isValidStatusCode:emn,isValidUTF8:$oe,tokenChars:$hn};if(dJe)DV.exports.isValidUTF8=function(e){return e.length<24?$oe(e):dJe(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let e=Z("utf-8-validate");DV.exports.isValidUTF8=function(t){return t.length<32?$oe(t):e(t)}}catch{}});var iae=w((wWr,SJe)=>{"use strict";var{Writable:nmn}=Z("stream"),fJe=hk(),{BINARY_TYPES:rmn,EMPTY_BUFFER:pJe,kStatusCode:imn,kWebSocket:smn}=Ym(),{concat:eae,toArrayBuffer:omn,unmask:amn}=VC(),{isValidStatusCode:cmn,isValidUTF8:hJe}=mk(),UV=Buffer[Symbol.species],Ed=0,mJe=1,gJe=2,yJe=3,tae=4,nae=5,FV=6,rae=class extends nmn{constructor(t={}){super(),this._allowSynchronousEvents=t.allowSynchronousEvents!==void 0?t.allowSynchronousEvents:!0,this._binaryType=t.binaryType||rmn[0],this._extensions=t.extensions||{},this._isServer=!!t.isServer,this._maxPayload=t.maxPayload|0,this._skipUTF8Validation=!!t.skipUTF8Validation,this[smn]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=Ed}_write(t,n,r){if(this._opcode===8&&this._state==Ed)return r();this._bufferedBytes+=t.length,this._buffers.push(t),this.startLoop(r)}consume(t){if(this._bufferedBytes-=t,t===this._buffers[0].length)return this._buffers.shift();if(t=r.length?n.set(this._buffers.shift(),i):(n.set(new Uint8Array(r.buffer,r.byteOffset,t),i),this._buffers[0]=new UV(r.buffer,r.byteOffset+t,r.length-t)),t-=r.length}while(t>0);return n}startLoop(t){this._loop=!0;do switch(this._state){case Ed:this.getInfo(t);break;case mJe:this.getPayloadLength16(t);break;case gJe:this.getPayloadLength64(t);break;case yJe:this.getMask();break;case tae:this.getData(t);break;case nae:case FV: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[fJe.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=mJe:this._payloadLength===127?this._state=gJe: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=yJe:this._state=tae}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=tae}getData(t){let n=pJe;if(this._payloadLength){if(this._bufferedBytes7){this.controlMessage(n,t);return}if(this._compressed){this._state=nae,this.decompress(n,t);return}n.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(n)),this.dataMessage(t)}decompress(t,n){this._extensions[fJe.extensionName].decompress(t,this._fin,(i,s)=>{if(i)return n(i);if(s.length){if(this._messageLength+=s.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let o=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");n(o);return}this._fragments.push(s)}this.dataMessage(n),this._state===Ed&&this.startLoop(n)})}dataMessage(t){if(!this._fin){this._state=Ed;return}let n=this._messageLength,r=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let i;this._binaryType==="nodebuffer"?i=eae(r,n):this._binaryType==="arraybuffer"?i=omn(eae(r,n)):this._binaryType==="blob"?i=new Blob(r):i=r,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=Ed):(this._state=FV,setImmediate(()=>{this.emit("message",i,!0),this._state=Ed,this.startLoop(t)}))}else{let i=eae(r,n);if(!this._skipUTF8Validation&&!hJe(i)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(s);return}this._state===nae||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=Ed):(this._state=FV,setImmediate(()=>{this.emit("message",i,!1),this._state=Ed,this.startLoop(t)}))}}controlMessage(t,n){if(this._opcode===8){if(t.length===0)this._loop=!1,this.emit("conclude",1005,pJe),this.end();else{let r=t.readUInt16BE(0);if(!cmn(r)){let s=this.createError(RangeError,`invalid status code ${r}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");n(s);return}let i=new UV(t.buffer,t.byteOffset+2,t.length-2);if(!this._skipUTF8Validation&&!hJe(i)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");n(s);return}this._loop=!1,this.emit("conclude",r,i),this.end()}this._state=Ed;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",t),this._state=Ed):(this._state=FV,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",t),this._state=Ed,this.startLoop(n)}))}createError(t,n,r,i,s){this._loop=!1,this._errored=!0;let o=new t(r?`Invalid WebSocket frame: ${n}`:n);return Error.captureStackTrace(o,this.createError),o.code=s,o[imn]=i,o}};SJe.exports=rae});var aae=w((IWr,_Je)=>{"use strict";var{Duplex:kWr}=Z("stream"),{randomFillSync:umn}=Z("crypto"),EJe=hk(),{EMPTY_BUFFER:lmn,kWebSocket:dmn,NOOP:fmn}=Ym(),{isBlob:gk,isValidStatusCode:pmn}=mk(),{mask:bJe,toBuffer:z_}=VC(),bd=Symbol("kByteLength"),hmn=Buffer.alloc(4),jV=8*1024,V_,yk=jV,kf=0,mmn=1,gmn=2,sae=class e{constructor(t,n,r){this._extensions=n||{},r&&(this._generateMask=r,this._maskBuffer=Buffer.alloc(4)),this._socket=t,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=kf,this.onerror=fmn,this[dmn]=void 0}static frame(t,n){let r,i=!1,s=2,o=!1;n.mask&&(r=n.maskBuffer||hmn,n.generateMask?n.generateMask(r):(yk===jV&&(V_===void 0&&(V_=Buffer.alloc(jV)),umn(V_,0,jV),yk=0),r[0]=V_[yk++],r[1]=V_[yk++],r[2]=V_[yk++],r[3]=V_[yk++]),o=(r[0]|r[1]|r[2]|r[3])===0,s=6);let a;typeof t=="string"?(!n.mask||o)&&n[bd]!==void 0?a=n[bd]:(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?(bJe(t,r,u,s,a),[u]):(bJe(t,r,t,0,a),[u,t])):[u,t]}close(t,n,r,i){let s;if(t===void 0)s=lmn;else{if(typeof t!="number"||!pmn(t))throw new TypeError("First argument must be a valid error code number");if(n===void 0||!n.length)s=Buffer.allocUnsafe(2),s.writeUInt16BE(t,0);else{let a=Buffer.byteLength(n);if(a>123)throw new RangeError("The message must not be greater than 123 bytes");s=Buffer.allocUnsafe(2+a),s.writeUInt16BE(t,0),typeof n=="string"?s.write(n,2):s.set(n,2)}}let o={[bd]:s.length,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==kf?this.enqueue([this.dispatch,s,!1,o,i]):this.sendFrame(e.frame(s,o),i)}ping(t,n,r){let i,s;if(typeof t=="string"?(i=Buffer.byteLength(t),s=!1):gk(t)?(i=t.size,s=!1):(t=z_(t),i=t.length,s=z_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[bd]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:s,rsv1:!1};gk(t)?this._state!==kf?this.enqueue([this.getBlobData,t,!1,o,r]):this.getBlobData(t,!1,o,r):this._state!==kf?this.enqueue([this.dispatch,t,!1,o,r]):this.sendFrame(e.frame(t,o),r)}pong(t,n,r){let i,s;if(typeof t=="string"?(i=Buffer.byteLength(t),s=!1):gk(t)?(i=t.size,s=!1):(t=z_(t),i=t.length,s=z_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[bd]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:s,rsv1:!1};gk(t)?this._state!==kf?this.enqueue([this.getBlobData,t,!1,o,r]):this.getBlobData(t,!1,o,r):this._state!==kf?this.enqueue([this.dispatch,t,!1,o,r]):this.sendFrame(e.frame(t,o),r)}send(t,n,r){let i=this._extensions[EJe.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=z_(t),a=t.length,c=z_.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={[bd]:a,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:s,readOnly:c,rsv1:o};gk(t)?this._state!==kf?this.enqueue([this.getBlobData,t,this._compress,u,r]):this.getBlobData(t,this._compress,u,r):this._state!==kf?this.enqueue([this.dispatch,t,this._compress,u,r]):this.dispatch(t,this._compress,u,r)}getBlobData(t,n,r,i){this._bufferedBytes+=r[bd],this._state=gmn,t.arrayBuffer().then(s=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick(oae,this,a,i);return}this._bufferedBytes-=r[bd];let o=z_(s);n?this.dispatch(o,n,r,i):(this._state=kf,this.sendFrame(e.frame(o,r),i),this.dequeue())}).catch(s=>{process.nextTick(ymn,this,s,i)})}dispatch(t,n,r,i){if(!n){this.sendFrame(e.frame(t,r),i);return}let s=this._extensions[EJe.extensionName];this._bufferedBytes+=r[bd],this._state=mmn,s.compress(t,r.fin,(o,a)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");oae(this,c,i);return}this._bufferedBytes-=r[bd],this._state=kf,r.readOnly=!1,this.sendFrame(e.frame(a,r),i),this.dequeue()})}dequeue(){for(;this._state===kf&&this._queue.length;){let t=this._queue.shift();this._bufferedBytes-=t[3][bd],Reflect.apply(t[0],this,t.slice(1))}}enqueue(t){this._bufferedBytes+=t[3][bd],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)}};_Je.exports=sae;function oae(e,t,n){typeof n=="function"&&n(t);for(let r=0;r{"use strict";var{kForOnEventAttribute:KC,kListener:cae}=Ym(),TJe=Symbol("kCode"),vJe=Symbol("kData"),AJe=Symbol("kError"),RJe=Symbol("kMessage"),wJe=Symbol("kReason"),Sk=Symbol("kTarget"),kJe=Symbol("kType"),IJe=Symbol("kWasClean"),Xm=class{constructor(t){this[Sk]=null,this[kJe]=t}get target(){return this[Sk]}get type(){return this[kJe]}};Object.defineProperty(Xm.prototype,"target",{enumerable:!0});Object.defineProperty(Xm.prototype,"type",{enumerable:!0});var W_=class extends Xm{constructor(t,n={}){super(t),this[TJe]=n.code===void 0?0:n.code,this[wJe]=n.reason===void 0?"":n.reason,this[IJe]=n.wasClean===void 0?!1:n.wasClean}get code(){return this[TJe]}get reason(){return this[wJe]}get wasClean(){return this[IJe]}};Object.defineProperty(W_.prototype,"code",{enumerable:!0});Object.defineProperty(W_.prototype,"reason",{enumerable:!0});Object.defineProperty(W_.prototype,"wasClean",{enumerable:!0});var Ek=class extends Xm{constructor(t,n={}){super(t),this[AJe]=n.error===void 0?null:n.error,this[RJe]=n.message===void 0?"":n.message}get error(){return this[AJe]}get message(){return this[RJe]}};Object.defineProperty(Ek.prototype,"error",{enumerable:!0});Object.defineProperty(Ek.prototype,"message",{enumerable:!0});var ZC=class extends Xm{constructor(t,n={}){super(t),this[vJe]=n.data===void 0?null:n.data}get data(){return this[vJe]}};Object.defineProperty(ZC.prototype,"data",{enumerable:!0});var Smn={addEventListener(e,t,n={}){for(let i of this.listeners(e))if(!n[KC]&&i[cae]===t&&!i[KC])return;let r;if(e==="message")r=function(s,o){let a=new ZC("message",{data:o?s:s.toString()});a[Sk]=this,HV(t,this,a)};else if(e==="close")r=function(s,o){let a=new W_("close",{code:s,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[Sk]=this,HV(t,this,a)};else if(e==="error")r=function(s){let o=new Ek("error",{error:s,message:s.message});o[Sk]=this,HV(t,this,o)};else if(e==="open")r=function(){let s=new Xm("open");s[Sk]=this,HV(t,this,s)};else return;r[KC]=!!n[KC],r[cae]=t,n.once?this.once(e,r):this.on(e,r)},removeEventListener(e,t){for(let n of this.listeners(e))if(n[cae]===t&&!n[KC]){this.removeListener(e,n);break}}};xJe.exports={CloseEvent:W_,ErrorEvent:Ek,Event:Xm,EventTarget:Smn,MessageEvent:ZC};function HV(e,t,n){typeof e=="object"&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}});var qV=w((OWr,NJe)=>{"use strict";var{tokenChars:YC}=mk();function Sh(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}function Emn(e){let t=Object.create(null),n=Object.create(null),r=!1,i=!1,s=!1,o,a,c=-1,u=-1,l=-1,d=0;for(;d{let n=e[t];return Array.isArray(n)||(n=[n]),n.map(r=>[t].concat(Object.keys(r).map(i=>{let s=r[i];return Array.isArray(s)||(s=[s]),s.map(o=>o===!0?i:`${i}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}NJe.exports={format:bmn,parse:Emn}});var VV=w((CWr,GJe)=>{"use strict";var _mn=Z("events"),Tmn=Z("https"),vmn=Z("http"),MJe=Z("net"),Amn=Z("tls"),{randomBytes:Rmn,createHash:wmn}=Z("crypto"),{Duplex:NWr,Readable:PWr}=Z("stream"),{URL:uae}=Z("url"),HS=hk(),kmn=iae(),Imn=aae(),{isBlob:xmn}=mk(),{BINARY_TYPES:PJe,CLOSE_TIMEOUT:Omn,EMPTY_BUFFER:BV,GUID:Nmn,kForOnEventAttribute:lae,kListener:Pmn,kStatusCode:Cmn,kWebSocket:Wo,NOOP:LJe}=Ym(),{EventTarget:{addEventListener:Mmn,removeEventListener:Lmn}}=OJe(),{format:Dmn,parse:Umn}=qV(),{toBuffer:Fmn}=VC(),DJe=Symbol("kAborted"),dae=[8,13],Qm=["CONNECTING","OPEN","CLOSING","CLOSED"],jmn=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,Fi=class e extends _mn{constructor(t,n,r){super(),this._binaryType=PJe[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=BV,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]),UJe(this,t,n,r)):(this._autoPong=r.autoPong,this._closeTimeout=r.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(t){PJe.includes(t)&&(this._binaryType=t,this._receiver&&(this._receiver._binaryType=t))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(t,n,r){let i=new kmn({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation}),s=new Imn(t,this._extensions,r.generateMask);this._receiver=i,this._sender=s,this._socket=t,i[Wo]=this,s[Wo]=this,t[Wo]=this,i.on("conclude",Bmn),i.on("drain",Gmn),i.on("error",zmn),i.on("message",Vmn),i.on("ping",Wmn),i.on("pong",Kmn),s.onerror=Zmn,t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on("close",HJe),t.on("data",zV),t.on("end",qJe),t.on("error",BJe),this._readyState=e.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[HS.extensionName]&&this._extensions[HS.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(t,n){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){Sl(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===e.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=e.CLOSING,this._sender.close(t,n,!this._isServer,r=>{r||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),jJe(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){fae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.ping(t||BV,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){fae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.pong(t||BV,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){fae(this,t,r);return}let i={binary:typeof t!="string",mask:!this._isServer,compress:!0,fin:!0,...n};this._extensions[HS.extensionName]||(i.compress=!1),this._sender.send(t||BV,i,r)}terminate(){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){Sl(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=e.CLOSING,this._socket.destroy())}}};Object.defineProperty(Fi,"CONNECTING",{enumerable:!0,value:Qm.indexOf("CONNECTING")});Object.defineProperty(Fi.prototype,"CONNECTING",{enumerable:!0,value:Qm.indexOf("CONNECTING")});Object.defineProperty(Fi,"OPEN",{enumerable:!0,value:Qm.indexOf("OPEN")});Object.defineProperty(Fi.prototype,"OPEN",{enumerable:!0,value:Qm.indexOf("OPEN")});Object.defineProperty(Fi,"CLOSING",{enumerable:!0,value:Qm.indexOf("CLOSING")});Object.defineProperty(Fi.prototype,"CLOSING",{enumerable:!0,value:Qm.indexOf("CLOSING")});Object.defineProperty(Fi,"CLOSED",{enumerable:!0,value:Qm.indexOf("CLOSED")});Object.defineProperty(Fi.prototype,"CLOSED",{enumerable:!0,value:Qm.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(e=>{Object.defineProperty(Fi.prototype,e,{enumerable:!0})});["open","error","close","message"].forEach(e=>{Object.defineProperty(Fi.prototype,`on${e}`,{enumerable:!0,get(){for(let t of this.listeners(e))if(t[lae])return t[Pmn];return null},set(t){for(let n of this.listeners(e))if(n[lae]){this.removeListener(e,n);break}typeof t=="function"&&this.addEventListener(e,t,{[lae]:!0})}})});Fi.prototype.addEventListener=Mmn;Fi.prototype.removeEventListener=Lmn;GJe.exports=Fi;function UJe(e,t,n,r){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:Omn,protocolVersion:dae[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,!dae.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${dae.join(", ")})`);let s;if(t instanceof uae)s=t;else try{s=new uae(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;GV(e,m);return}let u=o?443:80,l=Rmn(16).toString("base64"),d=o?Tmn.request:vmn.request,f=new Set,p;if(i.createConnection=i.createConnection||(o?qmn:Hmn),i.defaultPort=i.defaultPort||u,i.port=s.port||u,i.host=s.hostname.startsWith("[")?s.hostname.slice(1,-1):s.hostname,i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":l,Connection:"Upgrade",Upgrade:"websocket"},i.path=s.pathname+s.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(p=new HS({...i.perMessageDeflate,isServer:!1,maxPayload:i.maxPayload}),i.headers["Sec-WebSocket-Extensions"]=Dmn({[HS.extensionName]:p.offer()})),n.length){for(let m of n){if(typeof m!="string"||!jmn.test(m)||f.has(m))throw new SyntaxError("An invalid or duplicated subprotocol was specified");f.add(m)}i.headers["Sec-WebSocket-Protocol"]=n.join(",")}if(i.origin&&(i.protocolVersion<13?i.headers["Sec-WebSocket-Origin"]=i.origin:i.headers.Origin=i.origin),(s.username||s.password)&&(i.auth=`${s.username}:${s.password}`),a){let m=i.path.split(":");i.socketPath=m[0],i.path=m[1]}let h;if(i.followRedirects){if(e._redirects===0){e._originalIpc=a,e._originalSecure=o,e._originalHostOrSocketPath=a?i.socketPath:s.host;let m=r&&r.headers;if(r={...r,headers:{}},m)for(let[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",()=>{Sl(e,h,"Opening handshake has timed out")}),h.on("error",m=>{h===null||h[DJe]||(h=e._req=null,GV(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){Sl(e,h,"Maximum redirects exceeded");return}h.abort();let E;try{E=new uae(y,t)}catch{let b=new SyntaxError(`Invalid URL: ${y}`);GV(e,b);return}UJe(e,E,n,r)}else e.emit("unexpected-response",h,m)||Sl(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"){Sl(e,y,"Invalid Upgrade header");return}let S=wmn("sha1").update(l+Nmn).digest("base64");if(m.headers["sec-websocket-accept"]!==S){Sl(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"),_){Sl(e,y,_);return}b&&(e._protocol=b);let T=m.headers["sec-websocket-extensions"];if(T!==void 0){if(!p){Sl(e,y,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let A;try{A=Umn(T)}catch{Sl(e,y,"Invalid Sec-WebSocket-Extensions header");return}let R=Object.keys(A);if(R.length!==1||R[0]!==HS.extensionName){Sl(e,y,"Server indicated an extension that was not requested");return}try{p.accept(A[HS.extensionName])}catch{Sl(e,y,"Invalid Sec-WebSocket-Extensions header");return}e._extensions[HS.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 GV(e,t){e._readyState=Fi.CLOSING,e._errorEmitted=!0,e.emit("error",t),e.emitClose()}function Hmn(e){return e.path=e.socketPath,MJe.connect(e)}function qmn(e){return e.path=void 0,!e.servername&&e.servername!==""&&(e.servername=MJe.isIP(e.host)?"":e.host),Amn.connect(e)}function Sl(e,t,n){e._readyState=Fi.CLOSING;let r=new Error(n);Error.captureStackTrace(r,Sl),t.setHeader?(t[DJe]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(GV,e,r)):(t.destroy(r),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function fae(e,t,n){if(t){let r=xmn(t)?t.size:Fmn(t).length;e._socket?e._sender._bufferedBytes+=r:e._bufferedAmount+=r}if(n){let r=new Error(`WebSocket is not open: readyState ${e.readyState} (${Qm[e.readyState]})`);process.nextTick(n,r)}}function Bmn(e,t){let n=this[Wo];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,n._socket[Wo]!==void 0&&(n._socket.removeListener("data",zV),process.nextTick(FJe,n._socket),e===1005?n.close():n.close(e,t))}function Gmn(){let e=this[Wo];e.isPaused||e._socket.resume()}function zmn(e){let t=this[Wo];t._socket[Wo]!==void 0&&(t._socket.removeListener("data",zV),process.nextTick(FJe,t._socket),t.close(e[Cmn])),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e))}function CJe(){this[Wo].emitClose()}function Vmn(e,t){this[Wo].emit("message",e,t)}function Wmn(e){let t=this[Wo];t._autoPong&&t.pong(e,!this._isServer,LJe),t.emit("ping",e)}function Kmn(e){this[Wo].emit("pong",e)}function FJe(e){e.resume()}function Zmn(e){let t=this[Wo];t.readyState!==Fi.CLOSED&&(t.readyState===Fi.OPEN&&(t._readyState=Fi.CLOSING,jJe(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e)))}function jJe(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function HJe(){let e=this[Wo];if(this.removeListener("close",HJe),this.removeListener("data",zV),this.removeListener("end",qJe),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",CJe),e._receiver.on("finish",CJe))}function zV(e){this[Wo]._receiver.write(e)||this.pause()}function qJe(){let e=this[Wo];e._readyState=Fi.CLOSING,e._receiver.end(),this.end()}function BJe(){let e=this[Wo];this.removeListener("error",BJe),this.on("error",LJe),e&&(e._readyState=Fi.CLOSING,this.destroy())}});var KJe=w((LWr,WJe)=>{"use strict";var MWr=VV(),{Duplex:Ymn}=Z("stream");function zJe(e){e.emit("close")}function Jmn(){!this.destroyed&&this._writableState.finished&&this.destroy()}function VJe(e){this.removeListener("error",VJe),this.destroy(),this.listenerCount("error")===0&&this.emit("error",e)}function Xmn(e,t){let n=!0,r=new Ymn({...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(zJe,r);return}let o=!1;e.once("error",function(c){o=!0,s(c)}),e.once("close",function(){o||s(i),process.nextTick(zJe,r)}),n&&e.terminate()},r._final=function(i){if(e.readyState===e.CONNECTING){e.once("open",function(){r._final(i)});return}e._socket!==null&&(e._socket._writableState.finished?(i(),r._readableState.endEmitted&&r.destroy()):(e._socket.once("finish",function(){i()}),e.close()))},r._read=function(){e.isPaused&&e.resume()},r._write=function(i,s,o){if(e.readyState===e.CONNECTING){e.once("open",function(){r._write(i,s,o)});return}e.send(i,o)},r.on("end",Jmn),r.on("error",VJe),r}WJe.exports=Xmn});var pae=w((DWr,ZJe)=>{"use strict";var{tokenChars:Qmn}=mk();function $mn(e){let t=new Set,n=-1,r=-1,i=0;for(i;i{"use strict";var egn=Z("events"),WV=Z("http"),{Duplex:UWr}=Z("stream"),{createHash:tgn}=Z("crypto"),YJe=qV(),K_=hk(),ngn=pae(),rgn=VV(),{CLOSE_TIMEOUT:ign,GUID:sgn,kWebSocket:ogn}=Ym(),agn=/^[+/0-9A-Za-z]{22}==$/,JJe=0,XJe=1,$Je=2,hae=class extends egn{constructor(t,n){if(super(),t={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:ign,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:rgn,...t},t.port==null&&!t.server&&!t.noServer||t.port!=null&&(t.server||t.noServer)||t.server&&t.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(t.port!=null?(this._server=WV.createServer((r,i)=>{let s=WV.STATUS_CODES[426];i.writeHead(426,{"Content-Length":s.length,"Content-Type":"text/plain"}),i.end(s)}),this._server.listen(t.port,t.host,t.backlog,n)):t.server&&(this._server=t.server),this._server){let r=this.emit.bind(this,"connection");this._removeListeners=cgn(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(i,s,o)=>{this.handleUpgrade(i,s,o,r)}})}t.perMessageDeflate===!0&&(t.perMessageDeflate={}),t.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=t,this._state=JJe}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(t){if(this._state===$Je){t&&this.once("close",()=>{t(new Error("The server is not running"))}),process.nextTick(JC,this);return}if(t&&this.once("close",t),this._state!==XJe)if(this._state=XJe,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(JC,this):process.nextTick(JC,this);else{let n=this._server;this._removeListeners(),this._removeListeners=this._server=null,n.close(()=>{JC(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",QJe);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||!agn.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)){XC(n,400);return}let c=t.headers["sec-websocket-protocol"],u=new Set;if(c!==void 0)try{u=ngn.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 K_({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let p=YJe.parse(l);p[K_.extensionName]&&(f.accept(p[K_.extensionName]),d[K_.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,y)=>{if(!p)return XC(n,h||401,m,y);this.completeUpgrade(d,s,u,t,n,r,i)});return}if(!this.options.verifyClient(f))return XC(n,401)}this.completeUpgrade(d,s,u,t,n,r,i)}completeUpgrade(t,n,r,i,s,o,a){if(!s.readable||!s.writable)return s.destroy();if(s[ogn])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>JJe)return XC(s,503);let u=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${tgn("sha1").update(n+sgn).digest("base64")}`],l=new this.options.WebSocket(null,void 0,this.options);if(r.size){let d=this.options.handleProtocols?this.options.handleProtocols(r,i):r.values().next().value;d&&(u.push(`Sec-WebSocket-Protocol: ${d}`),l._protocol=d)}if(t[K_.extensionName]){let d=t[K_.extensionName].params,f=YJe.format({[K_.extensionName]:[d]});u.push(`Sec-WebSocket-Extensions: ${f}`),l._extensions=t}this.emit("headers",u,i),s.write(u.concat(`\r +`;function jV(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:Xhn})}jV.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]})})};jV.prototype.child=function(e){return new jV(e.continueExceeding,e.exponentialBackoff,this.redis,`${this.key}${e.routeInfo.method}${e.routeInfo.url}-`)};$8e.exports=jV});var u7e=w((i4r,HV)=>{"use strict";var Qhn=JC(),{parse:r7e,format:$hn}=J8e(),emn=Q8e(),tmn=e7e(),i7e=1e3,s7e=6e4,nmn="onRequest",rmn={rateLimit:"x-ratelimit-limit",rateRemaining:"x-ratelimit-remaining",rateReset:"x-ratelimit-reset",retryAfter:"retry-after"},imn={rateLimit:"ratelimit-limit",rateRemaining:"ratelimit-remaining",rateReset:"ratelimit-reset",retryAfter:"retry-after"},tae=()=>{},smn=e=>e.ip,omn=(e,t)=>{let n=new Error(`Rate limit exceeded, retry in ${t.after}`);return n.statusCode=t.statusCode,n};async function nae(e,t){let n={global:typeof t.global=="boolean"?t.global:!0};typeof t.enableDraftSpec=="boolean"&&t.enableDraftSpec?(n.enableDraftSpec=!0,n.labels=imn):(n.enableDraftSpec=!1,n.labels=rmn),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=i7e,Number.isFinite(t.timeWindow)&&t.timeWindow>=0?n.timeWindow=Math.trunc(t.timeWindow):typeof t.timeWindow=="string"?n.timeWindow=r7e(t.timeWindow):typeof t.timeWindow=="function"?n.timeWindow=t.timeWindow:n.timeWindow=s7e,n.hook=t.hook||nmn,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:tae,n.onExceeding=typeof t.onExceeding=="function"?t.onExceeding:tae,n.onExceeded=typeof t.onExceeded=="function"?t.onExceeded:tae,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:smn,typeof t.errorResponseBuilder=="function"?(n.errorResponseBuilder=t.errorResponseBuilder,n.isCustomErrorMessage=!0):(n.errorResponseBuilder=omn,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 tmn(n.continueExceeding,n.exponentialBackoff,t.redis,t.nameSpace):r.store=new emn(n.continueExceeding,n.exponentialBackoff,t.cache);e.decorateRequest(r.rateLimitRan,!1),e.hasDecorator("createRateLimit")||e.decorate("createRateLimit",i=>{let s=t7e(r,n,i);return o=>a7e.apply(this,s.concat(o))}),e.hasDecorator("rateLimit")||e.decorate("rateLimit",i=>{let s=t7e(r,n,i);return c7e(...s)}),e.addHook("onRoute",i=>{if(i.config?.rateLimit!=null){if(typeof i.config.rateLimit=="object"){let s=Object.create(r),o=o7e(n,i.config.rateLimit,{routeInfo:i});s.store=r.store.child(o),n7e(s,o,i)}else if(i.config.rateLimit!==!1)throw new Error("Unknown value for route rate-limit configuration")}else n.global&&n7e(r,n,i)})}function o7e(...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=r7e(t.timeWindow):typeof t.timeWindow!="function"&&(t.timeWindow=s7e),Number.isFinite(t.max)&&t.max>=0?t.max=Math.trunc(t.max):typeof t.max!="function"&&(t.max=i7e),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 t7e(e,t,n){if(typeof n=="object"){let r=Object.create(e),i=o7e(t,n,{routeInfo:{}});return r.store=r.store.child(i),[r,i]}return[e,t]}function n7e(e,t,n){let r=t.hook,i=c7e(e,t);Array.isArray(n[r])?n[r].push(i):typeof n[r]=="function"?n[r]=[n[r],i]:n[r]=[i]}async function a7e(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 c7e(e,t){let{rateLimitRan:n}=e;return async(r,i)=>{if(r[n])return;r[n]=!0;let s=await a7e(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:$hn(l*1e3,!0)};throw f&&(p.statusCode=403,p.ban=!0,t.onBanReach(r,o)),t.errorResponseBuilder(r,p)}}HV.exports=Qhn(nae,{fastify:"5.x",name:"@fastify/rate-limit"});HV.exports.default=nae;HV.exports.fastifyRateLimit=nae});var Xm=w((s4r,f7e)=>{"use strict";var l7e=["nodebuffer","arraybuffer","fragments"],d7e=typeof Blob<"u";d7e&&l7e.push("blob");f7e.exports={BINARY_TYPES:l7e,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:d7e,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var nM=w((o4r,qV)=>{"use strict";var{EMPTY_BUFFER:amn}=Xm(),rae=Buffer[Symbol.species];function cmn(e,t){if(e.length===0)return amn;if(e.length===1)return e[0];let n=Buffer.allocUnsafe(t),r=0;for(let i=0;i{"use strict";var m7e=Symbol("kDone"),sae=Symbol("kRun"),oae=class{constructor(t){this[m7e]=()=>{this.pending--,this[sae]()},this.concurrency=t||1/0,this.jobs=[],this.pending=0}add(t){this.jobs.push(t),this[sae]()}[sae](){if(this.pending!==this.concurrency&&this.jobs.length){let t=this.jobs.shift();this.pending++,t(this[m7e])}}};g7e.exports=oae});var _k=w((c4r,_7e)=>{"use strict";var rM=Y("zlib"),S7e=nM(),lmn=y7e(),{kStatusCode:b7e}=Xm(),dmn=Buffer[Symbol.species],fmn=Buffer.from([0,0,255,255]),zV=Symbol("permessage-deflate"),Qm=Symbol("total-length"),bk=Symbol("callback"),qS=Symbol("buffers"),Ek=Symbol("error"),BV,aae=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,!BV){let n=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;BV=new lmn(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[bk];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){BV.add(i=>{this._decompress(t,n,(s,o)=>{i(),r(s,o)})})}compress(t,n,r){BV.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"?rM.Z_DEFAULT_WINDOWBITS:this.params[s];this._inflate=rM.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[zV]=this,this._inflate[Qm]=0,this._inflate[qS]=[],this._inflate.on("error",hmn),this._inflate.on("data",E7e)}this._inflate[bk]=r,this._inflate.write(t),n&&this._inflate.write(fmn),this._inflate.flush(()=>{let s=this._inflate[Ek];if(s){this._inflate.close(),this._inflate=null,r(s);return}let o=S7e.concat(this._inflate[qS],this._inflate[Qm]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Qm]=0,this._inflate[qS]=[],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"?rM.Z_DEFAULT_WINDOWBITS:this.params[s];this._deflate=rM.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[Qm]=0,this._deflate[qS]=[],this._deflate.on("data",pmn)}this._deflate[bk]=r,this._deflate.write(t),this._deflate.flush(rM.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let s=S7e.concat(this._deflate[qS],this._deflate[Qm]);n&&(s=new dmn(s.buffer,s.byteOffset,s.length-4)),this._deflate[bk]=null,this._deflate[Qm]=0,this._deflate[qS]=[],n&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),r(null,s)})}};_7e.exports=aae;function pmn(e){this[qS].push(e),this[Qm]+=e.length}function E7e(e){if(this[Qm]+=e.length,this[zV]._maxPayload<1||this[Qm]<=this[zV]._maxPayload){this[qS].push(e);return}this[Ek]=new RangeError("Max payload size exceeded"),this[Ek].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[Ek][b7e]=1009,this.removeListener("data",E7e),this.reset()}function hmn(e){if(this[zV]._inflate=null,this[Ek]){this[bk](this[Ek]);return}e[b7e]=1007,this[bk](e)}});var Tk=w((u4r,GV)=>{"use strict";var{isUtf8:T7e}=Y("buffer"),{hasBlob:mmn}=Xm(),gmn=[0,0,0,0,0,0,0,0,0,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 ymn(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function cae(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 Smn(e){return mmn&&typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}GV.exports={isBlob:Smn,isValidStatusCode:ymn,isValidUTF8:cae,tokenChars:gmn};if(T7e)GV.exports.isValidUTF8=function(e){return e.length<24?cae(e):T7e(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let e=Y("utf-8-validate");GV.exports.isValidUTF8=function(t){return t.length<32?cae(t):e(t)}}catch{}});var pae=w((l4r,x7e)=>{"use strict";var{Writable:bmn}=Y("stream"),v7e=_k(),{BINARY_TYPES:Emn,EMPTY_BUFFER:R7e,kStatusCode:_mn,kWebSocket:Tmn}=Xm(),{concat:uae,toArrayBuffer:vmn,unmask:Rmn}=nM(),{isValidStatusCode:Amn,isValidUTF8:A7e}=Tk(),VV=Buffer[Symbol.species],Td=0,w7e=1,k7e=2,I7e=3,lae=4,dae=5,WV=6,fae=class extends bmn{constructor(t={}){super(),this._allowSynchronousEvents=t.allowSynchronousEvents!==void 0?t.allowSynchronousEvents:!0,this._binaryType=t.binaryType||Emn[0],this._extensions=t.extensions||{},this._isServer=!!t.isServer,this._maxPayload=t.maxPayload|0,this._skipUTF8Validation=!!t.skipUTF8Validation,this[Tmn]=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=Td}_write(t,n,r){if(this._opcode===8&&this._state==Td)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 VV(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 Td:this.getInfo(t);break;case w7e:this.getPayloadLength16(t);break;case k7e:this.getPayloadLength64(t);break;case I7e:this.getMask();break;case lae:this.getData(t);break;case dae:case WV: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[v7e.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=w7e:this._payloadLength===127?this._state=k7e: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=I7e:this._state=lae}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=lae}getData(t){let n=R7e;if(this._payloadLength){if(this._bufferedBytes7){this.controlMessage(n,t);return}if(this._compressed){this._state=dae,this.decompress(n,t);return}n.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(n)),this.dataMessage(t)}decompress(t,n){this._extensions[v7e.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===Td&&this.startLoop(n)})}dataMessage(t){if(!this._fin){this._state=Td;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=uae(r,n):this._binaryType==="arraybuffer"?i=vmn(uae(r,n)):this._binaryType==="blob"?i=new Blob(r):i=r,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=Td):(this._state=WV,setImmediate(()=>{this.emit("message",i,!0),this._state=Td,this.startLoop(t)}))}else{let i=uae(r,n);if(!this._skipUTF8Validation&&!A7e(i)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(s);return}this._state===dae||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=Td):(this._state=WV,setImmediate(()=>{this.emit("message",i,!1),this._state=Td,this.startLoop(t)}))}}controlMessage(t,n){if(this._opcode===8){if(t.length===0)this._loop=!1,this.emit("conclude",1005,R7e),this.end();else{let r=t.readUInt16BE(0);if(!Amn(r)){let s=this.createError(RangeError,`invalid status code ${r}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");n(s);return}let i=new VV(t.buffer,t.byteOffset+2,t.length-2);if(!this._skipUTF8Validation&&!A7e(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=Td;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",t),this._state=Td):(this._state=WV,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",t),this._state=Td,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[_mn]=i,o}};x7e.exports=fae});var gae=w((f4r,N7e)=>{"use strict";var{Duplex:d4r}=Y("stream"),{randomFillSync:wmn}=Y("crypto"),O7e=_k(),{EMPTY_BUFFER:kmn,kWebSocket:Imn,NOOP:xmn}=Xm(),{isBlob:vk,isValidStatusCode:Omn}=Tk(),{mask:P7e,toBuffer:W_}=nM(),vd=Symbol("kByteLength"),Pmn=Buffer.alloc(4),KV=8*1024,K_,Rk=KV,xf=0,Nmn=1,Cmn=2,hae=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=xmn,this[Imn]=void 0}static frame(t,n){let r,i=!1,s=2,o=!1;n.mask&&(r=n.maskBuffer||Pmn,n.generateMask?n.generateMask(r):(Rk===KV&&(K_===void 0&&(K_=Buffer.alloc(KV)),wmn(K_,0,KV),Rk=0),r[0]=K_[Rk++],r[1]=K_[Rk++],r[2]=K_[Rk++],r[3]=K_[Rk++]),o=(r[0]|r[1]|r[2]|r[3])===0,s=6);let a;typeof t=="string"?(!n.mask||o)&&n[vd]!==void 0?a=n[vd]:(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?(P7e(t,r,u,s,a),[u]):(P7e(t,r,t,0,a),[u,t])):[u,t]}close(t,n,r,i){let s;if(t===void 0)s=kmn;else{if(typeof t!="number"||!Omn(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={[vd]: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):vk(t)?(i=t.size,s=!1):(t=W_(t),i=t.length,s=W_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[vd]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:s,rsv1:!1};vk(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):vk(t)?(i=t.size,s=!1):(t=W_(t),i=t.length,s=W_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[vd]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:s,rsv1:!1};vk(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[O7e.extensionName],s=n.binary?2:1,o=n.compress,a,c;typeof t=="string"?(a=Buffer.byteLength(t),c=!1):vk(t)?(a=t.size,c=!1):(t=W_(t),a=t.length,c=W_.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={[vd]:a,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:s,readOnly:c,rsv1:o};vk(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[vd],this._state=Cmn,t.arrayBuffer().then(s=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick(mae,this,a,i);return}this._bufferedBytes-=r[vd];let o=W_(s);n?this.dispatch(o,n,r,i):(this._state=xf,this.sendFrame(e.frame(o,r),i),this.dequeue())}).catch(s=>{process.nextTick(Mmn,this,s,i)})}dispatch(t,n,r,i){if(!n){this.sendFrame(e.frame(t,r),i);return}let s=this._extensions[O7e.extensionName];this._bufferedBytes+=r[vd],this._state=Nmn,s.compress(t,r.fin,(o,a)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");mae(this,c,i);return}this._bufferedBytes-=r[vd],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][vd],Reflect.apply(t[0],this,t.slice(1))}}enqueue(t){this._bufferedBytes+=t[3][vd],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)}};N7e.exports=hae;function mae(e,t,n){typeof n=="function"&&n(t);for(let r=0;r{"use strict";var{kForOnEventAttribute:iM,kListener:yae}=Xm(),C7e=Symbol("kCode"),M7e=Symbol("kData"),D7e=Symbol("kError"),L7e=Symbol("kMessage"),U7e=Symbol("kReason"),Ak=Symbol("kTarget"),F7e=Symbol("kType"),j7e=Symbol("kWasClean"),$m=class{constructor(t){this[Ak]=null,this[F7e]=t}get target(){return this[Ak]}get type(){return this[F7e]}};Object.defineProperty($m.prototype,"target",{enumerable:!0});Object.defineProperty($m.prototype,"type",{enumerable:!0});var Y_=class extends $m{constructor(t,n={}){super(t),this[C7e]=n.code===void 0?0:n.code,this[U7e]=n.reason===void 0?"":n.reason,this[j7e]=n.wasClean===void 0?!1:n.wasClean}get code(){return this[C7e]}get reason(){return this[U7e]}get wasClean(){return this[j7e]}};Object.defineProperty(Y_.prototype,"code",{enumerable:!0});Object.defineProperty(Y_.prototype,"reason",{enumerable:!0});Object.defineProperty(Y_.prototype,"wasClean",{enumerable:!0});var wk=class extends $m{constructor(t,n={}){super(t),this[D7e]=n.error===void 0?null:n.error,this[L7e]=n.message===void 0?"":n.message}get error(){return this[D7e]}get message(){return this[L7e]}};Object.defineProperty(wk.prototype,"error",{enumerable:!0});Object.defineProperty(wk.prototype,"message",{enumerable:!0});var sM=class extends $m{constructor(t,n={}){super(t),this[M7e]=n.data===void 0?null:n.data}get data(){return this[M7e]}};Object.defineProperty(sM.prototype,"data",{enumerable:!0});var Dmn={addEventListener(e,t,n={}){for(let i of this.listeners(e))if(!n[iM]&&i[yae]===t&&!i[iM])return;let r;if(e==="message")r=function(s,o){let a=new sM("message",{data:o?s:s.toString()});a[Ak]=this,YV(t,this,a)};else if(e==="close")r=function(s,o){let a=new Y_("close",{code:s,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[Ak]=this,YV(t,this,a)};else if(e==="error")r=function(s){let o=new wk("error",{error:s,message:s.message});o[Ak]=this,YV(t,this,o)};else if(e==="open")r=function(){let s=new $m("open");s[Ak]=this,YV(t,this,s)};else return;r[iM]=!!n[iM],r[yae]=t,n.once?this.once(e,r):this.on(e,r)},removeEventListener(e,t){for(let n of this.listeners(e))if(n[yae]===t&&!n[iM]){this.removeListener(e,n);break}}};H7e.exports={CloseEvent:Y_,ErrorEvent:wk,Event:$m,EventTarget:Dmn,MessageEvent:sM};function YV(e,t,n){typeof e=="object"&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}});var ZV=w((h4r,B7e)=>{"use strict";var{tokenChars:oM}=Tk();function bh(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}function Lmn(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(", ")}B7e.exports={format:Umn,parse:Lmn}});var $V=w((y4r,eJe)=>{"use strict";var Fmn=Y("events"),jmn=Y("https"),Hmn=Y("http"),V7e=Y("net"),qmn=Y("tls"),{randomBytes:Bmn,createHash:zmn}=Y("crypto"),{Duplex:m4r,Readable:g4r}=Y("stream"),{URL:Sae}=Y("url"),BS=_k(),Gmn=pae(),Vmn=gae(),{isBlob:Wmn}=Tk(),{BINARY_TYPES:z7e,CLOSE_TIMEOUT:Kmn,EMPTY_BUFFER:JV,GUID:Ymn,kForOnEventAttribute:bae,kListener:Zmn,kStatusCode:Jmn,kWebSocket:Wo,NOOP:W7e}=Xm(),{EventTarget:{addEventListener:Xmn,removeEventListener:Qmn}}=q7e(),{format:$mn,parse:egn}=ZV(),{toBuffer:tgn}=nM(),K7e=Symbol("kAborted"),Eae=[8,13],eg=["CONNECTING","OPEN","CLOSING","CLOSED"],ngn=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,Fi=class e extends Fmn{constructor(t,n,r){super(),this._binaryType=z7e[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=JV,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]),Y7e(this,t,n,r)):(this._autoPong=r.autoPong,this._closeTimeout=r.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(t){z7e.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 Gmn({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation}),s=new Vmn(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",sgn),i.on("drain",ogn),i.on("error",agn),i.on("message",cgn),i.on("ping",ugn),i.on("pong",lgn),s.onerror=dgn,t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on("close",X7e),t.on("data",QV),t.on("end",Q7e),t.on("error",$7e),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[BS.extensionName]&&this._extensions[BS.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())}),J7e(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){_ae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.ping(t||JV,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){_ae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.pong(t||JV,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){_ae(this,t,r);return}let i={binary:typeof t!="string",mask:!this._isServer,compress:!0,fin:!0,...n};this._extensions[BS.extensionName]||(i.compress=!1),this._sender.send(t||JV,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:eg.indexOf("CONNECTING")});Object.defineProperty(Fi.prototype,"CONNECTING",{enumerable:!0,value:eg.indexOf("CONNECTING")});Object.defineProperty(Fi,"OPEN",{enumerable:!0,value:eg.indexOf("OPEN")});Object.defineProperty(Fi.prototype,"OPEN",{enumerable:!0,value:eg.indexOf("OPEN")});Object.defineProperty(Fi,"CLOSING",{enumerable:!0,value:eg.indexOf("CLOSING")});Object.defineProperty(Fi.prototype,"CLOSING",{enumerable:!0,value:eg.indexOf("CLOSING")});Object.defineProperty(Fi,"CLOSED",{enumerable:!0,value:eg.indexOf("CLOSED")});Object.defineProperty(Fi.prototype,"CLOSED",{enumerable:!0,value:eg.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[bae])return t[Zmn];return null},set(t){for(let n of this.listeners(e))if(n[bae]){this.removeListener(e,n);break}typeof t=="function"&&this.addEventListener(e,t,{[bae]:!0})}})});Fi.prototype.addEventListener=Xmn;Fi.prototype.removeEventListener=Qmn;eJe.exports=Fi;function Y7e(e,t,n,r){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:Kmn,protocolVersion:Eae[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,!Eae.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${Eae.join(", ")})`);let s;if(t instanceof Sae)s=t;else try{s=new Sae(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;XV(e,m);return}let u=o?443:80,l=Bmn(16).toString("base64"),d=o?jmn.request:Hmn.request,f=new Set,p;if(i.createConnection=i.createConnection||(o?ign:rgn),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 BS({...i.perMessageDeflate,isServer:!1,maxPayload:i.maxPayload}),i.headers["Sec-WebSocket-Extensions"]=$mn({[BS.extensionName]:p.offer()})),n.length){for(let m of n){if(typeof m!="string"||!ngn.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[K7e]||(h=e._req=null,XV(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 Sae(g,t)}catch{let E=new SyntaxError(`Invalid URL: ${g}`);XV(e,E);return}Y7e(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=zmn("sha1").update(l+Ymn).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=egn(T)}catch{bl(e,g,"Invalid Sec-WebSocket-Extensions header");return}let A=Object.keys(R);if(A.length!==1||A[0]!==BS.extensionName){bl(e,g,"Server indicated an extension that was not requested");return}try{p.accept(R[BS.extensionName])}catch{bl(e,g,"Invalid Sec-WebSocket-Extensions header");return}e._extensions[BS.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 XV(e,t){e._readyState=Fi.CLOSING,e._errorEmitted=!0,e.emit("error",t),e.emitClose()}function rgn(e){return e.path=e.socketPath,V7e.connect(e)}function ign(e){return e.path=void 0,!e.servername&&e.servername!==""&&(e.servername=V7e.isIP(e.host)?"":e.host),qmn.connect(e)}function bl(e,t,n){e._readyState=Fi.CLOSING;let r=new Error(n);Error.captureStackTrace(r,bl),t.setHeader?(t[K7e]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(XV,e,r)):(t.destroy(r),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function _ae(e,t,n){if(t){let r=Wmn(t)?t.size:tgn(t).length;e._socket?e._sender._bufferedBytes+=r:e._bufferedAmount+=r}if(n){let r=new Error(`WebSocket is not open: readyState ${e.readyState} (${eg[e.readyState]})`);process.nextTick(n,r)}}function sgn(e,t){let n=this[Wo];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,n._socket[Wo]!==void 0&&(n._socket.removeListener("data",QV),process.nextTick(Z7e,n._socket),e===1005?n.close():n.close(e,t))}function ogn(){let e=this[Wo];e.isPaused||e._socket.resume()}function agn(e){let t=this[Wo];t._socket[Wo]!==void 0&&(t._socket.removeListener("data",QV),process.nextTick(Z7e,t._socket),t.close(e[Jmn])),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e))}function G7e(){this[Wo].emitClose()}function cgn(e,t){this[Wo].emit("message",e,t)}function ugn(e){let t=this[Wo];t._autoPong&&t.pong(e,!this._isServer,W7e),t.emit("ping",e)}function lgn(e){this[Wo].emit("pong",e)}function Z7e(e){e.resume()}function dgn(e){let t=this[Wo];t.readyState!==Fi.CLOSED&&(t.readyState===Fi.OPEN&&(t._readyState=Fi.CLOSING,J7e(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e)))}function J7e(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function X7e(){let e=this[Wo];if(this.removeListener("close",X7e),this.removeListener("data",QV),this.removeListener("end",Q7e),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",G7e),e._receiver.on("finish",G7e))}function QV(e){this[Wo]._receiver.write(e)||this.pause()}function Q7e(){let e=this[Wo];e._readyState=Fi.CLOSING,e._receiver.end(),this.end()}function $7e(){let e=this[Wo];this.removeListener("error",$7e),this.on("error",W7e),e&&(e._readyState=Fi.CLOSING,this.destroy())}});var iJe=w((b4r,rJe)=>{"use strict";var S4r=$V(),{Duplex:fgn}=Y("stream");function tJe(e){e.emit("close")}function pgn(){!this.destroyed&&this._writableState.finished&&this.destroy()}function nJe(e){this.removeListener("error",nJe),this.destroy(),this.listenerCount("error")===0&&this.emit("error",e)}function hgn(e,t){let n=!0,r=new fgn({...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(tJe,r);return}let o=!1;e.once("error",function(c){o=!0,s(c)}),e.once("close",function(){o||s(i),process.nextTick(tJe,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",pgn),r.on("error",nJe),r}rJe.exports=hgn});var Tae=w((E4r,sJe)=>{"use strict";var{tokenChars:mgn}=Tk();function ggn(e){let t=new Set,n=-1,r=-1,i=0;for(i;i{"use strict";var ygn=Y("events"),eW=Y("http"),{Duplex:_4r}=Y("stream"),{createHash:Sgn}=Y("crypto"),oJe=ZV(),Z_=_k(),bgn=Tae(),Egn=$V(),{CLOSE_TIMEOUT:_gn,GUID:Tgn,kWebSocket:vgn}=Xm(),Rgn=/^[+/0-9A-Za-z]{22}==$/,aJe=0,cJe=1,lJe=2,vae=class extends ygn{constructor(t,n){if(super(),t={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:_gn,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:Egn,...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=eW.createServer((r,i)=>{let s=eW.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=Agn(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=aJe}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===lJe){t&&this.once("close",()=>{t(new Error("The server is not running"))}),process.nextTick(aM,this);return}if(t&&this.once("close",t),this._state!==cJe)if(this._state=cJe,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(aM,this):process.nextTick(aM,this);else{let n=this._server;this._removeListeners(),this._removeListeners=this._server=null,n.close(()=>{aM(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",uJe);let s=t.headers["sec-websocket-key"],o=t.headers.upgrade,a=+t.headers["sec-websocket-version"];if(t.method!=="GET"){J_(this,t,n,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){J_(this,t,n,400,"Invalid Upgrade header");return}if(s===void 0||!Rgn.test(s)){J_(this,t,n,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==13&&a!==8){J_(this,t,n,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(t)){cM(n,400);return}let c=t.headers["sec-websocket-protocol"],u=new Set;if(c!==void 0)try{u=bgn.parse(c)}catch{J_(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 Z_({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let p=oJe.parse(l);p[Z_.extensionName]&&(f.accept(p[Z_.extensionName]),d[Z_.extensionName]=f)}catch{J_(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 cM(n,h||401,m,g);this.completeUpgrade(d,s,u,t,n,r,i)});return}if(!this.options.verifyClient(f))return cM(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[vgn])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>aJe)return cM(s,503);let u=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${Sgn("sha1").update(n+Tgn).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[Z_.extensionName]){let d=t[Z_.extensionName].params,f=oJe.format({[Z_.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",QJe),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(JC,this)})),a(l,i)}};e7e.exports=hae;function cgn(e,t){for(let n of Object.keys(t))e.on(n,t[n]);return function(){for(let r of Object.keys(t))e.removeListener(r,t[r])}}function JC(e){e._state=$Je,e.emit("close")}function QJe(){this.destroy()}function XC(e,t,n,r){n=n||WV.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} ${WV.STATUS_CODES[t]}\r +`)),s.removeListener("error",uJe),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(aM,this)})),a(l,i)}};dJe.exports=vae;function Agn(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 aM(e){e._state=lJe,e.emit("close")}function uJe(){this.destroy()}function cM(e,t,n,r){n=n||eW.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} ${eW.STATUS_CODES[t]}\r `+Object.keys(r).map(i=>`${i}: ${r[i]}`).join(`\r `)+`\r \r -`+n)}function Z_(e,t,n,r,i,s){if(e.listenerCount("wsClientError")){let o=new Error(i);Error.captureStackTrace(o,Z_),e.emit("wsClientError",o,n,t)}else XC(n,r,i,s)}});var i7e=w((jWr,r7e)=>{"use strict";var ugn=KJe(),lgn=qV(),dgn=hk(),fgn=iae(),pgn=aae(),hgn=pae(),If=VV(),n7e=t7e();If.createWebSocketStream=ugn;If.extension=lgn;If.PerMessageDeflate=dgn;If.Receiver=fgn;If.Sender=pgn;If.Server=n7e;If.subprotocol=hgn;If.WebSocket=If;If.WebSocketServer=n7e;r7e.exports=If});var mae=w((HWr,s7e)=>{s7e.exports=Z("stream")});var d7e=w((qWr,l7e)=>{"use strict";function o7e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function a7e(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 KV.alloc(0);for(var r=KV.allocUnsafe(n>>>0),i=this.head,s=0;i;)Tgn(i.data,r,s),s+=i.data.length,i=i.next;return r}},{key:"consume",value:function(n,r){var i;return no.length?o.length:n;if(a===o.length?s+=o:s+=o.slice(0,n),n-=a,n===0){a===o.length?(++i,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=o.slice(a));break}++i}return this.length-=i,s}},{key:"_getBuffer",value:function(n){var r=KV.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:_gn,value:function(n,r){return gae(this,a7e(a7e({},r),{},{depth:0,customInspect:!1}))}}]),e})()});var Sae=w((BWr,p7e)=>{"use strict";function vgn(e,t){var n=this,r=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;return r||i?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(yae,this,e)):process.nextTick(yae,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(ZV,n):(n._writableState.errorEmitted=!0,process.nextTick(f7e,n,s)):process.nextTick(f7e,n,s):t?(process.nextTick(ZV,n),t(s)):process.nextTick(ZV,n)}),this)}function f7e(e,t){yae(e,t),ZV(e)}function ZV(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function Agn(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function yae(e,t){e.emit("error",t)}function Rgn(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}p7e.exports={destroy:vgn,undestroy:Agn,errorOrDestroy:Rgn}});var qS=w((GWr,g7e)=>{"use strict";var m7e={};function _d(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,m7e[e]=i}function h7e(e,t){if(Array.isArray(e)){let n=e.length;return e=e.map(r=>String(r)),n>2?`one of ${t} ${e.slice(0,n-1).join(", ")}, or `+e[n-1]:n===2?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}else return`of ${t} ${String(e)}`}function wgn(e,t,n){return e.substr(!n||n<0?0:+n,t.length)===t}function kgn(e,t,n){return(n===void 0||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}function Ign(e,t,n){return typeof n!="number"&&(n=0),n+t.length>e.length?!1:e.indexOf(t,n)!==-1}_d("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);_d("ERR_INVALID_ARG_TYPE",function(e,t,n){let r;typeof t=="string"&&wgn(t,"not ")?(r="must not be",t=t.replace(/^not /,"")):r="must be";let i;if(kgn(e," argument"))i=`The ${e} ${r} ${h7e(t,"type")}`;else{let s=Ign(e,".")?"property":"argument";i=`The "${e}" ${s} ${r} ${h7e(t,"type")}`}return i+=`. Received type ${typeof n}`,i},TypeError);_d("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");_d("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});_d("ERR_STREAM_PREMATURE_CLOSE","Premature close");_d("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});_d("ERR_MULTIPLE_CALLBACK","Callback called multiple times");_d("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");_d("ERR_STREAM_WRITE_AFTER_END","write after end");_d("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);_d("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);_d("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");g7e.exports.codes=m7e});var Eae=w((zWr,y7e)=>{"use strict";var xgn=qS().codes.ERR_INVALID_OPT_VALUE;function Ogn(e,t,n){return e.highWaterMark!=null?e.highWaterMark:t?e[n]:null}function Ngn(e,t,n,r){var i=Ogn(t,r,n);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var s=r?n:"highWaterMark";throw new xgn(s,i)}return Math.floor(i)}return e.objectMode?16:16*1024}y7e.exports={getHighWaterMark:Ngn}});var S7e=w((VWr,bae)=>{typeof Object.create=="function"?bae.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:bae.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 Y_=w((WWr,Tae)=>{try{if(_ae=Z("util"),typeof _ae.inherits!="function")throw"";Tae.exports=_ae.inherits}catch{Tae.exports=S7e()}var _ae});var b7e=w((KWr,E7e)=>{E7e.exports=Z("util").deprecate});var Rae=w((ZWr,w7e)=>{"use strict";w7e.exports=gs;function T7e(e){var t=this;this.next=null,this.entry=null,this.finish=function(){iyn(t,e)}}var bk;gs.WritableState=$C;var Pgn={deprecate:b7e()},v7e=mae(),JV=Z("buffer").Buffer,Cgn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Mgn(e){return JV.from(e)}function Lgn(e){return JV.isBuffer(e)||e instanceof Cgn}var Aae=Sae(),Dgn=Eae(),Ugn=Dgn.getHighWaterMark,BS=qS().codes,Fgn=BS.ERR_INVALID_ARG_TYPE,jgn=BS.ERR_METHOD_NOT_IMPLEMENTED,Hgn=BS.ERR_MULTIPLE_CALLBACK,qgn=BS.ERR_STREAM_CANNOT_PIPE,Bgn=BS.ERR_STREAM_DESTROYED,Ggn=BS.ERR_STREAM_NULL_VALUES,zgn=BS.ERR_STREAM_WRITE_AFTER_END,Vgn=BS.ERR_UNKNOWN_ENCODING,_k=Aae.errorOrDestroy;Y_()(gs,v7e);function Wgn(){}function $C(e,t,n){bk=bk||J_(),e=e||{},typeof n!="boolean"&&(n=t instanceof bk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=Ugn(this,e,"writableHighWaterMark",n),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var r=e.decodeStrings===!1;this.decodeStrings=!r,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(i){$gn(t,i)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new T7e(this)}$C.prototype.getBuffer=function(){for(var t=this.bufferedRequest,n=[];t;)n.push(t),t=t.next;return n};(function(){try{Object.defineProperty($C.prototype,"buffer",{get:Pgn.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var YV;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(YV=Function.prototype[Symbol.hasInstance],Object.defineProperty(gs,Symbol.hasInstance,{value:function(t){return YV.call(this,t)?!0:this!==gs?!1:t&&t._writableState instanceof $C}})):YV=function(t){return t instanceof this};function gs(e){bk=bk||J_();var t=this instanceof bk;if(!t&&!YV.call(gs,this))return new gs(e);this._writableState=new $C(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)),v7e.call(this)}gs.prototype.pipe=function(){_k(this,new qgn)};function Kgn(e,t){var n=new zgn;_k(e,n),process.nextTick(t,n)}function Zgn(e,t,n,r){var i;return n===null?i=new Ggn:typeof n!="string"&&!t.objectMode&&(i=new Fgn("chunk",["string","Buffer"],n)),i?(_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&&Lgn(e);return s&&!JV.isBuffer(e)&&(e=Mgn(e)),typeof t=="function"&&(n=t,t=null),s?t="buffer":t||(t=r.defaultEncoding),typeof n!="function"&&(n=Wgn),r.ending?Kgn(this,n):(s||Zgn(this,r,e,n))&&(r.pendingcb++,i=Jgn(this,r,s,e,t,n)),i};gs.prototype.cork=function(){this._writableState.corked++};gs.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&A7e(this,e))};gs.prototype.setDefaultEncoding=function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new Vgn(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(gs.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function Ygn(e,t,n){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=JV.from(t,n)),t}Object.defineProperty(gs.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Jgn(e,t,n,r,i,s){if(!n){var o=Ygn(t,r,i);r!==o&&(n=!0,i="buffer",r=o)}var a=t.objectMode?1:r.length;t.length+=a;var c=t.length{"use strict";var syn=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};I7e.exports=Eh;var k7e=Iae(),kae=Rae();Y_()(Eh,k7e);for(wae=syn(kae.prototype),XV=0;XV{var $V=Z("buffer"),bh=$V.Buffer;function x7e(e,t){for(var n in e)t[n]=e[n]}bh.from&&bh.alloc&&bh.allocUnsafe&&bh.allocUnsafeSlow?O7e.exports=$V:(x7e($V,xae),xae.Buffer=X_);function X_(e,t,n){return bh(e,t,n)}X_.prototype=Object.create(bh.prototype);x7e(bh,X_);X_.from=function(e,t,n){if(typeof e=="number")throw new TypeError("Argument must not be a number");return bh(e,t,n)};X_.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};X_.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return bh(e)};X_.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return $V.SlowBuffer(e)}});var Pae=w(C7e=>{"use strict";var Nae=N7e().Buffer,P7e=Nae.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function cyn(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function uyn(e){var t=cyn(e);if(typeof t!="string"&&(Nae.isEncoding===P7e||!P7e(e)))throw new Error("Unknown encoding: "+e);return t||e}C7e.StringDecoder=eM;function eM(e){this.encoding=uyn(e);var t;switch(this.encoding){case"utf16le":this.text=myn,this.end=gyn,t=4;break;case"utf8":this.fillLast=fyn,t=4;break;case"base64":this.text=yyn,this.end=Syn,t=3;break;default:this.write=Eyn,this.end=byn;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Nae.allocUnsafe(t)}eM.prototype.write=function(e){if(e.length===0)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function lyn(e,t,n){var r=t.length-1;if(r=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function dyn(e,t,n){if((t[0]&192)!==128)return e.lastNeed=0,"\uFFFD";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"\uFFFD";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"\uFFFD"}}function fyn(e){var t=this.lastTotal-this.lastNeed,n=dyn(this,e,t);if(n!==void 0)return n;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function pyn(e,t){var n=lyn(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function hyn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function myn(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function gyn(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function yyn(e,t){var n=(e.length-t)%3;return n===0?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function Syn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Eyn(e){return e.toString(this.encoding)}function byn(e){return e&&e.length?this.write(e):""}});var eW=w((XWr,D7e)=>{"use strict";var M7e=qS().codes.ERR_STREAM_PREMATURE_CLOSE;function _yn(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 tW;function GS(e,t,n){return t=Ayn(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ayn(e){var t=Ryn(e,"string");return typeof t=="symbol"?t:String(t)}function Ryn(e,t){if(typeof e!="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var wyn=eW(),zS=Symbol("lastResolve"),Q_=Symbol("lastReject"),tM=Symbol("error"),nW=Symbol("ended"),$_=Symbol("lastPromise"),Cae=Symbol("handlePromise"),eT=Symbol("stream");function VS(e,t){return{value:e,done:t}}function kyn(e){var t=e[zS];if(t!==null){var n=e[eT].read();n!==null&&(e[$_]=null,e[zS]=null,e[Q_]=null,t(VS(n,!1)))}}function Iyn(e){process.nextTick(kyn,e)}function xyn(e,t){return function(n,r){e.then(function(){if(t[nW]){n(VS(void 0,!0));return}t[Cae](n,r)},r)}}var Oyn=Object.getPrototypeOf(function(){}),Nyn=Object.setPrototypeOf((tW={get stream(){return this[eT]},next:function(){var t=this,n=this[tM];if(n!==null)return Promise.reject(n);if(this[nW])return Promise.resolve(VS(void 0,!0));if(this[eT].destroyed)return new Promise(function(o,a){process.nextTick(function(){t[tM]?a(t[tM]):o(VS(void 0,!0))})});var r=this[$_],i;if(r)i=new Promise(xyn(r,this));else{var s=this[eT].read();if(s!==null)return Promise.resolve(VS(s,!1));i=new Promise(this[Cae])}return this[$_]=i,i}},GS(tW,Symbol.asyncIterator,function(){return this}),GS(tW,"return",function(){var t=this;return new Promise(function(n,r){t[eT].destroy(null,function(i){if(i){r(i);return}n(VS(void 0,!0))})})}),tW),Oyn),Pyn=function(t){var n,r=Object.create(Nyn,(n={},GS(n,eT,{value:t,writable:!0}),GS(n,zS,{value:null,writable:!0}),GS(n,Q_,{value:null,writable:!0}),GS(n,tM,{value:null,writable:!0}),GS(n,nW,{value:t._readableState.endEmitted,writable:!0}),GS(n,Cae,{value:function(s,o){var a=r[eT].read();a?(r[$_]=null,r[zS]=null,r[Q_]=null,s(VS(a,!1))):(r[zS]=s,r[Q_]=o)},writable:!0}),n));return r[$_]=null,wyn(t,function(i){if(i&&i.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=r[Q_];s!==null&&(r[$_]=null,r[zS]=null,r[Q_]=null,s(i)),r[tM]=i;return}var o=r[zS];o!==null&&(r[$_]=null,r[zS]=null,r[Q_]=null,o(VS(void 0,!0))),r[nW]=!0}),t.on("readable",Iyn.bind(null,r)),r};U7e.exports=Pyn});var B7e=w(($Wr,q7e)=>{"use strict";function j7e(e,t,n,r,i,s,o){try{var a=e[s](o),c=a.value}catch(u){n(u);return}a.done?t(c):Promise.resolve(c).then(r,i)}function Cyn(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var s=e.apply(t,n);function o(c){j7e(s,r,i,o,a,"next",c)}function a(c){j7e(s,r,i,o,a,"throw",c)}o(void 0)})}}function H7e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Myn(e){for(var t=1;t{"use strict";Q7e.exports=nr;var Tk;nr.ReadableState=W7e;var e3r=Z("events").EventEmitter,V7e=function(t,n){return t.listeners(n).length},rM=mae(),rW=Z("buffer").Buffer,Hyn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function qyn(e){return rW.from(e)}function Byn(e){return rW.isBuffer(e)||e instanceof Hyn}var Mae=Z("util"),Rn;Mae&&Mae.debuglog?Rn=Mae.debuglog("stream"):Rn=function(){};var Gyn=d7e(),qae=Sae(),zyn=Eae(),Vyn=zyn.getHighWaterMark,iW=qS().codes,Wyn=iW.ERR_INVALID_ARG_TYPE,Kyn=iW.ERR_STREAM_PUSH_AFTER_EOF,Zyn=iW.ERR_METHOD_NOT_IMPLEMENTED,Yyn=iW.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,vk,Lae,Dae;Y_()(nr,rM);var nM=qae.errorOrDestroy,Uae=["error","close","destroy","pause","resume"];function Jyn(e,t,n){if(typeof e.prependListener=="function")return e.prependListener(t,n);!e._events||!e._events[t]?e.on(t,n):Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]}function W7e(e,t,n){Tk=Tk||J_(),e=e||{},typeof n!="boolean"&&(n=t instanceof Tk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=Vyn(this,e,"readableHighWaterMark",n),this.buffer=new Gyn,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(vk||(vk=Pae().StringDecoder),this.decoder=new vk(e.encoding),this.encoding=e.encoding)}function nr(e){if(Tk=Tk||J_(),!(this instanceof nr))return new nr(e);var t=this instanceof Tk;this._readableState=new W7e(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),rM.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=qae.destroy;nr.prototype._undestroy=qae.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=rW.from(e,t),t=""),r=!0),K7e(this,e,t,!1,r)};nr.prototype.unshift=function(e){return K7e(this,e,null,!0,!1)};function K7e(e,t,n,r,i){Rn("readableAddChunk",t);var s=e._readableState;if(t===null)s.reading=!1,$yn(e,s);else{var o;if(i||(o=Xyn(s,t)),o)nM(e,o);else if(s.objectMode||t&&t.length>0)if(typeof t!="string"&&!s.objectMode&&Object.getPrototypeOf(t)!==rW.prototype&&(t=qyn(t)),r)s.endEmitted?nM(e,new Yyn):Fae(e,s,t,!0);else if(s.ended)nM(e,new Kyn);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||t.length!==0?Fae(e,s,t,!1):Hae(e,s)):Fae(e,s,t,!1)}else r||(s.reading=!1,Hae(e,s))}return!s.ended&&(s.length=G7e?e=G7e:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function z7e(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=Qyn(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}nr.prototype.read=function(e){Rn("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&((t.highWaterMark!==0?t.length>=t.highWaterMark:t.length>0)||t.ended))return Rn("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?jae(this):sW(this),null;if(e=z7e(e,t),e===0&&t.ended)return t.length===0&&jae(this),null;var r=t.needReadable;Rn("need readable",r),(t.length===0||t.length-e0?i=J7e(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&&jae(this)),i!==null&&this.emit("data",i),i};function $yn(e,t){if(Rn("onEofChunk"),!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?sW(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,Z7e(e)))}}function sW(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(Z7e,e))}function Z7e(e){var t=e._readableState;Rn("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,Bae(e)}function Hae(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(eSn,e,t))}function eSn(e,t){for(;!t.reading&&!t.ended&&(t.length1&&X7e(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),V7e(e,"error")===0&&nM(e,y)}Jyn(e,"error",f);function p(){e.removeListener("finish",h),m()}e.once("close",p);function h(){Rn("onfinish"),e.removeListener("close",p),m()}e.once("finish",h);function m(){Rn("unpipe"),n.unpipe(e)}return e.emit("pipe",n),r.flowing||(Rn("pipe resume"),n.resume()),e};function tSn(e){return function(){var n=e._readableState;Rn("pipeOnDrain",n.awaitDrain),n.awaitDrain&&n.awaitDrain--,n.awaitDrain===0&&V7e(e,"data")&&(n.flowing=!0,Bae(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?sW(this):r.reading||process.nextTick(nSn,this)),n};nr.prototype.addListener=nr.prototype.on;nr.prototype.removeListener=function(e,t){var n=rM.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(Y7e,this),n};nr.prototype.removeAllListeners=function(e){var t=rM.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(Y7e,this),t};function Y7e(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function nSn(e){Rn("readable nexttick read 0"),e.read(0)}nr.prototype.resume=function(){var e=this._readableState;return e.flowing||(Rn("resume"),e.flowing=!e.readableListening,rSn(this,e)),e.paused=!1,this};function rSn(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(iSn,e,t))}function iSn(e,t){Rn("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),Bae(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 Bae(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 jae(e){var t=e._readableState;Rn("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(sSn,t,e))}function sSn(e,t){if(Rn("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}typeof Symbol=="function"&&(nr.from=function(e,t){return Dae===void 0&&(Dae=B7e()),Dae(nr,e,t)});function X7e(e,t){for(var n=0,r=e.length;n{"use strict";eXe.exports=$m;var oW=qS().codes,oSn=oW.ERR_METHOD_NOT_IMPLEMENTED,aSn=oW.ERR_MULTIPLE_CALLBACK,cSn=oW.ERR_TRANSFORM_ALREADY_TRANSFORMING,uSn=oW.ERR_TRANSFORM_WITH_LENGTH_0,aW=J_();Y_()($m,aW);function lSn(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(r===null)return this.emit("error",new aSn);n.writechunk=null,n.writecb=null,t!=null&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{"use strict";nXe.exports=iM;var tXe=Gae();Y_()(iM,tXe);function iM(e){if(!(this instanceof iM))return new iM(e);tXe.call(this,e)}iM.prototype._transform=function(e,t,n){n(null,e)}});var cXe=w((i3r,aXe)=>{"use strict";var zae;function fSn(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var oXe=qS().codes,pSn=oXe.ERR_MISSING_ARGS,hSn=oXe.ERR_STREAM_DESTROYED;function iXe(e){if(e)throw e}function mSn(e){return e.setHeader&&typeof e.abort=="function"}function gSn(e,t,n,r){r=fSn(r);var i=!1;e.on("close",function(){i=!0}),zae===void 0&&(zae=eW()),zae(e,{readable:t,writable:n},function(o){if(o)return r(o);i=!0,r()});var s=!1;return function(o){if(!i&&!s){if(s=!0,mSn(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();r(o||new hSn("pipe"))}}}function sXe(e){e()}function ySn(e,t){return e.pipe(t)}function SSn(e){return!e.length||typeof e[e.length-1]!="function"?iXe:e.pop()}function ESn(){for(var e=arguments.length,t=new Array(e),n=0;n0;return gSn(o,c,u,function(l){i||(i=l),l&&s.forEach(sXe),!c&&(s.forEach(sXe),r(i))})});return t.reduce(ySn)}aXe.exports=ESn});var uXe=w((Td,oM)=>{var sM=Z("stream");process.env.READABLE_STREAM==="disable"&&sM?(oM.exports=sM.Readable,Object.assign(oM.exports,sM),oM.exports.Stream=sM):(Td=oM.exports=Iae(),Td.Stream=sM||Td,Td.Readable=Td,Td.Writable=Rae(),Td.Duplex=J_(),Td.Transform=Gae(),Td.PassThrough=rXe(),Td.finished=eW(),Td.pipeline=cXe())});var fXe=w((s3r,dXe)=>{dXe.exports=lXe;function lXe(e,t){if(e&&t)return lXe(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 pXe=fXe();Vae.exports=pXe(cW);Vae.exports.strict=pXe(hXe);cW.proto=cW(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return cW(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return hXe(this)},configurable:!0})});function cW(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function hXe(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 SXe=w((a3r,yXe)=>{var bSn=mXe(),_Sn=function(){},TSn=global.Bare?queueMicrotask:process.nextTick.bind(process),vSn=function(e){return e.setHeader&&typeof e.abort=="function"},ASn=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},gXe=function(e,t,n){if(typeof t=="function")return gXe(e,null,t);t||(t={}),n=bSn(n||_Sn);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(){TSn(h)},h=function(){if(!a){if(s&&!(i&&i.ended&&!i.destroyed))return n.call(e,new Error("premature close"));if(o&&!(r&&r.ended&&!r.destroyed))return n.call(e,new Error("premature close"))}},m=function(){e.req.on("finish",u)};return vSn(e)?(e.on("complete",u),e.on("abort",p),e.req?m():e.on("request",m)):o&&!r&&(e.on("end",c),e.on("close",c)),ASn(e)&&e.on("exit",d),e.on("end",l),e.on("finish",u),t.error!==!1&&e.on("error",f),e.on("close",p),function(){a=!0,e.removeListener("complete",u),e.removeListener("abort",p),e.removeListener("request",m),e.req&&e.req.removeListener("finish",u),e.removeListener("end",c),e.removeListener("close",c),e.removeListener("finish",u),e.removeListener("exit",d),e.removeListener("end",l),e.removeListener("error",f),e.removeListener("close",p)}};yXe.exports=gXe});var bXe=w((c3r,EXe)=>{EXe.exports=RSn;function RSn(e){var t=e._readableState;return t?t.objectMode||typeof e._duplexState=="number"?e.read():e.read(wSn(t)):null}function wSn(e){if(e.buffer.length){var t=e.bufferIndex||0;if(e.buffer.head)return e.buffer.head.data.length;if(e.buffer.length-t>0&&e.buffer[t])return e.buffer[t].length}return e.length}});var RXe=w((u3r,AXe)=>{var uW=uXe(),_Xe=SXe(),kSn=Y_(),ISn=bXe(),TXe=Buffer.from&&Buffer.from!==Uint8Array.from?Buffer.from([0]):new Buffer([0]),Wae=function(e,t){e._corked?e.once("uncork",t):t()},xSn=function(e,t){e._autoDestroy&&e.destroy(t)},vXe=function(e,t){return function(n){n?xSn(e,n.message==="premature close"?null:n):t&&!e._ended&&e.end()}},OSn=function(e,t){if(!e||e._writableState&&e._writableState.finished)return t();if(e._writableState)return e.end(t);e.end(),t()},NSn=function(){},PSn=function(e){return new uW.Readable({objectMode:!0,highWaterMark:16}).wrap(e)},_a=function(e,t,n){if(!(this instanceof _a))return new _a(e,t,n);uW.Duplex.call(this,n),this._writable=null,this._readable=null,this._readable2=null,this._autoDestroy=!n||n.autoDestroy!==!1,this._forwardDestroy=!n||n.destroy!==!1,this._forwardEnd=!n||n.end!==!1,this._corked=1,this._ondrain=null,this._drained=!1,this._forwarding=!1,this._unwrite=null,this._unread=null,this._ended=!1,this.destroyed=!1,e&&this.setWritable(e),t&&this.setReadable(t)};kSn(_a,uW.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=_Xe(e,{writable:!0,readable:!1},vXe(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=_Xe(e,{writable:!1,readable:!0},vXe(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:PSn(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=ISn(this._readable2))!==null;)this.destroyed||(this._drained=this.push(e));this._forwarding=!1}};_a.prototype.destroy=function(e,t){if(t||(t=NSn),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 Wae(this,this._write.bind(this,e,t,n));if(e===TXe)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"),Wae(this,function(){OSn(t._forwardEnd&&t._writable,function(){t._writableState.prefinished===!1&&(t._writableState.prefinished=!0),t.emit("prefinish"),Wae(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(TXe),uW.Writable.prototype.end.call(this,n))};AXe.exports=_a});var xXe=w((l3r,dW)=>{"use strict";var{ServerResponse:CSn}=Z("node:http"),{PassThrough:wXe}=Z("node:stream"),{randomBytes:MSn}=Z("node:crypto"),LSn=jC(),kXe=i7e(),IXe=RXe(),tT=Symbol("ws-socket"),lW=Symbol("ws-head"),DSn=/HTTP\/1.1 (\d+)/u;function Kae(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 kXe.Server(s);e.decorate("websocketServer",a);async function c(h="/",m={},y={}){let g=new wXe,E=new wXe,S=new IXe(g,E),b=new IXe(E,g),_=new kXe(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(DSn.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":MSn(16).toString("base64")},httpVersion:"1.1",url:h,[tT]:S,[lW]:T};return o.emit("upgrade",N,N[tT],N[lW]),x}e.decorate("injectWS",c);function u(h,m,y){h[tT]=m,h[lW]=y;let g=new CSn(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[tT],h[lW],y=>{a.emit("connection",y,h),y.on("error",g=>{e.log.error(g)}),m(y)})};e.addHook("onRequest",(h,m,y)=>{h.raw[tT]?h.ws=!0:h.ws=!1,y()}),e.addHook("onResponse",(h,m,y)=>{h.ws&&h.raw[tT].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[tT])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()}dW.exports=LSn(Kae,{fastify:"5.x",name:"@fastify/websocket"});dW.exports.default=Kae;dW.exports.fastifyWebsocket=Kae});var NXe=w((d3r,OXe)=>{"use strict";function USn(e){var t=new e,n=t;function r(){var s=t;return s.next?t=s.next:(t=new e,n=t),s.next=null,s}function i(s){n.next=s,n=s}return{get:r,release:i}}OXe.exports=USn});var CXe=w((f3r,Zae)=>{"use strict";var FSn=NXe();function PXe(e,t,n){if(typeof e=="function"&&(n=t,t=e,e=null),!(n>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var r=FSn(jSn),i=null,s=null,o=0,a=null,c={push:m,drain:wu,saturated:wu,pause:l,paused:!1,get concurrency(){return n},set concurrency(T){if(!(T>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(n=T,!c.paused)for(;i&&o=n||c.paused?s?(s.next=R,s=R):(i=R,s=R,c.saturated()):(o++,t.call(e,R.value,R.worked))}function y(T,A){var R=r.get();R.context=e,R.release=g,R.value=T,R.callback=A||wu,R.errorHandler=a,o>=n||c.paused?i?(R.next=i,i=R):(i=R,s=R,c.saturated()):(o++,t.call(e,R.value,R.worked))}function 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=wu}function S(){i=null,s=null,c.drain(),c.drain=wu}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=wu,T.errorHandler=null,x&&x(new Error("abort"),k),R.call(N,new Error("abort")),T.release(T),T=A}c.drain=wu}function _(T){a=T}}function wu(){}function jSn(){this.value=null,this.callback=wu,this.next=null,this.release=wu,this.context=null,this.errorHandler=null;var e=this;this.worked=function(n,r){var i=e.callback,s=e.errorHandler,o=e.value;e.value=null,e.callback=wu,e.errorHandler&&s(n,o),i.call(e.context,n,r),e.release(e)}}function HSn(e,t,n){typeof e=="function"&&(n=t,t=e,e=null);function r(l,d){t.call(this,l).then(function(f){d(null,f)},d)}var i=PXe(e,r,n),s=i.push,o=i.unshift;return i.push=a,i.unshift=c,i.drained=u,i;function a(l){var d=new Promise(function(f,p){s(l,function(h,m){if(h){p(h);return}f(m)})});return d.catch(wu),d}function c(l){var d=new Promise(function(f,p){o(l,function(h,m){if(h){p(h);return}f(m)})});return d.catch(wu),d}function u(){var l=new Promise(function(d){process.nextTick(function(){if(i.idle())d();else{var f=i.drain;i.drain=function(){typeof f=="function"&&f(),d(),i.drain=f}}})});return l}}Zae.exports=PXe;Zae.exports.promise=HSn});var pW=w((p3r,aM)=>{"use strict";var{format:qSn}=Z("node:util");function BSn(){return`${this.name} [${this.code}]: ${this.message}`}var fW=Symbol.for("fastify-error-generic");function Ak(e,t,n=500,r=Error,i=Ak.captureStackTrace){let s=e===fW;if(s&&(e="FST_ERR"),!e)throw new Error("Fastify error code must not be empty");if(!t)throw new Error("Fastify error message must not be empty");e=e.toUpperCase(),!n&&(n=void 0);let o=Symbol.for(`fastify-error ${e}`);function a(...c){if(!new.target)return new a(...c);this.code=e,this.name="FastifyError",this.statusCode=n;let u=c.length-1;u!==-1&&c[u]&&typeof c[u]=="object"&&"cause"in c[u]&&(this.cause=c.pop().cause),this.message=qSn(t,...c),Error.stackTraceLimit&&i&&Error.captureStackTrace(this,a)}return a.prototype=Object.create(r.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0},[fW]:{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[fW]},configurable:!1,writable:!1,enumerable:!1}):Object.defineProperty(a,Symbol.hasInstance,{value(c){return c&&c[o]},configurable:!1,writable:!1,enumerable:!1}),a.prototype[Symbol.toStringTag]="Error",a.prototype.toString=BSn,a}Ak.captureStackTrace=!0;var GSn=Ak(fW,"Fastify Error",500,Error);aM.exports=Ak;aM.exports.FastifyError=GSn;aM.exports.default=Ak;aM.exports.createError=Ak});var hW=w((h3r,MXe)=>{"use strict";var{createError:WS}=pW();MXe.exports={AVV_ERR_EXPOSE_ALREADY_DEFINED:WS("AVV_ERR_EXPOSE_ALREADY_DEFINED","'%s' is already defined, specify an expose option for '%s'"),AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:WS("AVV_ERR_ATTRIBUTE_ALREADY_DEFINED","'%s' is already defined"),AVV_ERR_CALLBACK_NOT_FN:WS("AVV_ERR_CALLBACK_NOT_FN","Callback for '%s' hook is not a function. Received: '%s'"),AVV_ERR_PLUGIN_NOT_VALID:WS("AVV_ERR_PLUGIN_NOT_VALID","Plugin must be a function or a promise. Received: '%s'"),AVV_ERR_ROOT_PLG_BOOTED:WS("AVV_ERR_ROOT_PLG_BOOTED","Root plugin has already booted"),AVV_ERR_PARENT_PLG_LOADED:WS("AVV_ERR_PARENT_PLG_LOADED","Impossible to load '%s' plugin because the parent '%s' was already loaded"),AVV_ERR_READY_TIMEOUT:WS("AVV_ERR_READY_TIMEOUT","Plugin did not start in time: '%s'. You may have forgotten to call 'done' function or to resolve a Promise"),AVV_ERR_PLUGIN_EXEC_TIMEOUT:WS("AVV_ERR_PLUGIN_EXEC_TIMEOUT","Plugin did not start in time: '%s'. You may have forgotten to call 'done' function or to resolve a Promise")}});var Rk=w((m3r,LXe)=>{"use strict";var zSn=Symbol("avvio.Boot"),VSn=Symbol("isOnCloseHandler"),WSn=Symbol("avvio.ThenifyDoNotWrap"),KSn=Symbol("avvio.TimeTree.untrackNode"),ZSn=Symbol("avvio.TimeTree.trackNode"),YSn=Symbol("avvio.TimeTree.getParent"),JSn=Symbol("avvio.TimeTree.getNode"),XSn=Symbol("avvio.TimeTree.addNode"),QSn=Symbol.for("plugin-meta");LXe.exports={kAvvio:zSn,kIsOnCloseHandler:VSn,kThenifyDoNotWrap:WSn,kUntrackNode:KSn,kTrackNode:ZSn,kGetParent:YSn,kGetNode:JSn,kAddNode:XSn,kPluginMeta:QSn}});var BXe=w((g3r,qXe)=>{"use strict";var{kUntrackNode:DXe,kTrackNode:Yae,kGetParent:UXe,kGetNode:FXe,kAddNode:jXe}=Rk(),Jae=class{constructor(){this.root=null,this.tableId=new Map,this.tableLabel=new Map}[Yae](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])}[DXe](t){this.tableId.delete(t.id);let n=this.tableLabel.get(t.label);n.pop(),n.length===0&&this.tableLabel.delete(t.label)}[UXe](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}[FXe](t){return this.tableId.get(t)}[jXe](t,n,r){let i=this[UXe](t);if(i===null)return this.root={parent:null,id:"root",label:n,nodes:[],start:r,stop:null,diff:-1},this[Yae](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[Yae](a),o}start(t,n,r=Date.now()){return this[jXe](t,n,r)}stop(t,n=Date.now()){let r=this[FXe](t);r&&(r.stop=n,r.diff=r.stop-r.start||0,this[DXe](r))}toJSON(){return Object.assign({},this.root)}prettyPrint(){return HXe(this.toJSON())}};function HXe(e,t=""){let n=t,r=e.nodes.length,i=r-1;n+=`${e.label} ${e.diff} ms -`;for(let s=0;s{"use strict";var{debuglog:$Sn}=Z("node:util"),eEn=$Sn("avvio");GXe.exports={debug:eEn}});var VXe=w((S3r,zXe)=>{"use strict";function tEn(){let e={resolve:null,reject:null,promise:null};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}zXe.exports={createPromise:tEn}});var ZXe=w((E3r,KXe)=>{"use strict";var{kPluginMeta:WXe}=Rk();function nEn(e,t){return e[WXe]?.name?e[WXe].name:t?.name?t.name:e.name?e.name:e.toString().split(` -`).slice(0,2).map(n=>n.trim()).join(" -- ")}KXe.exports={getPluginName:nEn}});var gW=w((b3r,YXe)=>{"use strict";function rEn(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}YXe.exports={isPromiseLike:rEn}});var XXe=w((_3r,JXe)=>{"use strict";var{EventEmitter:iEn}=Z("node:events"),{inherits:sEn}=Z("node:util"),{debug:Ta}=mW(),{createPromise:oEn}=VXe(),{AVV_ERR_PLUGIN_EXEC_TIMEOUT:aEn}=hW(),{getPluginName:cEn}=ZXe(),{isPromiseLike:uEn}=gW();function wk(e,t,n,r,i){this.queue=e,this.func=t,this.options=n,this.isAfter=r,this.timeout=i,this.started=!1,this.name=cEn(t,n),this.queue.pause(),this._error=null,this.loaded=!1,this._promise=null,this.startTime=null}sEn(wk,iEn);wk.prototype.exec=function(e,t){Ta("exec",this.name),this.server=e;let n=this.func,r=this.name,i=!1;this.options=typeof this.options=="function"?this.options(this.server):this.options;let s=null,o=c=>{if(i){Ta("loading complete",r);return}this._error=c,Ta(c?"exec errored":"exec completed",r),i=!0,s&&clearTimeout(s),t(c)};this.timeout>0&&(Ta("setting up timeout",r,this.timeout),s=setTimeout(function(){Ta("timed out",r),s=null;let c=new aEn(r);c.fn=n,o(c)},this.timeout)),this.started=!0,this.startTime=Date.now(),this.emit("start",this.server?this.server.name:null,this.name,Date.now());let a=n(this.server,this.options,o);uEn(a)?(Ta("exec: resolving promise",r),a.then(()=>process.nextTick(o),c=>process.nextTick(o,c))):n.length<3&&o()};wk.prototype.loadedSoFar=function(){if(Ta("loadedSoFar",this.name),this.loaded)return Promise.resolve();let e=()=>{this.server.after((n,r)=>{this._error=n,this.queue.pause(),this._promise&&(n?(Ta("rejecting promise",this.name,n),this._promise.reject(n)):(Ta("resolving promise",this.name),this._promise.resolve()),this._promise=null),process.nextTick(r,n)}),this.queue.resume()},t;return this._promise?t=Promise.resolve():(this._promise=oEn(),t=this._promise.promise,this.server?e():this.on("start",e)),t};wk.prototype.enqueue=function(e,t){Ta("enqueue",this.name,e.name),this.emit("enqueue",this.server?this.server.name:null,this.name,Date.now()),this.queue.push(e,t)};wk.prototype.finish=function(e,t){Ta("finish",this.name,e);let n=()=>{this.loaded||(Ta("loaded",this.name),this.emit("loaded",this.server?this.server.name:null,this.name,Date.now()),this.loaded=!0,t(e))};if(e){this._promise&&(this._promise.reject(e),this._promise=null),n();return}let r=()=>{if(Ta("check",this.name,this.queue.length(),this.queue.running(),this._promise),this.queue.length()===0&&this.queue.running()===0)if(this._promise){let i=()=>{Ta("wrap"),queueMicrotask(r)};this._promise.resolve(),this._promise.promise.then(i,i),this._promise=null}else n();else Ta("delayed",this.name),this.queue.drain=()=>{Ta("drain",this.name),this.queue.drain=lEn,queueMicrotask(r)}};queueMicrotask(r),this.queue.resume()};function lEn(){}JXe.exports={Plugin:wk}});var $Xe=w((T3r,QXe)=>{"use strict";var{AVV_ERR_PLUGIN_NOT_VALID:Xae}=hW();function dEn(e){if(!(e&&(typeof e=="function"||typeof e.then=="function")))throw Array.isArray(e)?new Xae("array"):e===null?new Xae("null"):new Xae(typeof e)}QXe.exports={validatePlugin:dEn}});var tQe=w((v3r,eQe)=>{"use strict";function fEn(e){return e!==null&&typeof e=="object"&&typeof e.default=="function"}eQe.exports={isBundledOrTypescriptPlugin:fEn}});var iQe=w((A3r,rQe)=>{"use strict";var{debug:nQe}=mW(),{kThenifyDoNotWrap:Qae}=Rk();function pEn(){if(this.booted){nQe("thenify returning undefined because we are already booted");return}if(this[Qae]){this[Qae]=!1;return}return nQe("thenify"),(e,t)=>this._loadRegistered().then(()=>(this[Qae]=!0,e(this._server)),t)}rQe.exports={thenify:pEn}});var oQe=w((R3r,sQe)=>{"use strict";var{isPromiseLike:hEn}=gW(),{kAvvio:mEn}=Rk();function gEn(e,t,n){let r;try{r=e.apply(e,t)}catch(i){n&&process.nextTick(n,i);return}hEn(r)&&!r[mEn]?r.then(()=>process.nextTick(n),i=>process.nextTick(n,i)):n&&process.nextTick(n)}sQe.exports={executeWithThenable:gEn}});var mQe=w((w3r,hQe)=>{"use strict";var yW=CXe(),yEn=Z("node:events").EventEmitter,SEn=Z("node:util").inherits,{AVV_ERR_EXPOSE_ALREADY_DEFINED:cM,AVV_ERR_CALLBACK_NOT_FN:kk,AVV_ERR_ROOT_PLG_BOOTED:EEn,AVV_ERR_READY_TIMEOUT:bEn,AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:_En}=hW(),{kAvvio:uQe,kIsOnCloseHandler:lQe}=Rk(),{TimeTree:TEn}=BXe(),{Plugin:dQe}=XXe(),{debug:Ik}=mW(),{validatePlugin:vEn}=$Xe(),{isBundledOrTypescriptPlugin:AEn}=tQe(),{isPromiseLike:REn}=gW(),{thenify:fQe}=iQe(),{executeWithThenable:aQe}=oQe();function Ms(e,t,n){if(typeof e=="function"&&arguments.length===1&&(n=e,t={},e=null),typeof t=="function"&&(n=t,t={}),t=t||{},t.autostart=t.autostart!==!1,t.timeout=Number(t.timeout)||0,t.expose=t.expose||{},!new.target)return new Ms(e,t,n);this._server=e||this,this._opts=t,e&&this._expose(),this._current=[],this._error=null,this._lastUsed=null,this.setMaxListeners(0),n&&this.once("start",n),this.started=!1,this.booted=!1,this.pluginTree=new TEn,this._readyQ=yW(this,pQe,1),this._readyQ.pause(),this._readyQ.drain=()=>{this.emit("start"),this._readyQ.drain=cQe},this._closeQ=yW(this,kEn,1),this._closeQ.pause(),this._closeQ.drain=()=>{this.emit("close"),this._closeQ.drain=cQe},this._doStart=null;let r=this;this._root=new dQe(yW(this,this._loadPluginNextTick,1),function(s,o,a){r._doStart=a,o.autostart&&r.start()},t,!1,0),this._trackPluginLoading(this._root),this._loadPlugin(this._root,i=>{Ik("root plugin ready");try{this.emit("preReady"),this._root=null}catch(s){i=i||this._error||s}if(i){if(this._error=i,this._readyQ.length()===0)throw i}else this.booted=!0;this._readyQ.resume()})}SEn(Ms,yEn);"asyncDispose"in Symbol&&(Ms.prototype[Symbol.asyncDispose]=function(){return new Promise((e,t)=>{this.close(n=>{if(n)return t(n);e()})})});Ms.prototype.start=function(){return this.started=!0,process.nextTick(this._doStart),this};Ms.prototype.override=function(e,t,n){return e};Ms.prototype[uQe]=!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:fQe});Ms.prototype._addPlugin=function(e,t,n){if(AEn(e)&&(e=e.default),vEn(e),t=t||{},this.booted)throw new EEn;let r=this._current[0],i=this._opts.timeout;if(!r.loaded&&r.timeout>0){let o=Date.now()-r.startTime;i=r.timeout-(o+3)}let s=new dQe(yW(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 cM(r,"use");if(n[r]=function(c,u){return t.use(c,u),this},n[i])throw new cM(i,"after");if(n[i]=function(c){return typeof c!="function"?t._loadRegistered():(t.after($ae(c,this)),this)},n[s])throw new cM(s,"ready");if(n[s]=function(c){if(c&&typeof c!="function")throw new kk(s,typeof c);return t.ready(c?$ae(c,this):void 0)},n[o])throw new cM(o,"onClose");if(n[o]=function(c){if(typeof c!="function")throw new kk(o,typeof c);return t.onClose(IEn(c,this)),this},n[a])throw new cM(a,"close");if(n[a]=function(c){if(c&&typeof c!="function")throw new kk(a,typeof c);return c?(t.close($ae(c,this)),this):t.close()},n.then)throw new _En("then");Object.defineProperty(n,"then",{get:fQe.bind(t)}),n[uQe]=!0};Ms.prototype.after=function(e){if(!e)return this._loadRegistered();this._addPlugin(t.bind(this),{},!0);function t(n,r,i){pQe.call(this,e,i)}return this};Ms.prototype.onClose=function(e){if(typeof e!="function")throw new kk("onClose",typeof e);return e[lQe]=!0,this._closeQ.unshift(e,t=>{t&&(this._error=t)}),this};Ms.prototype.close=function(e){let t;if(e){if(typeof e!="function")throw new kk("close",typeof e)}else t=new Promise(function(n,r){e=function(i){if(i)return r(i);n()}});return this.ready(()=>{this._error=null,this._closeQ.push(e),process.nextTick(this._closeQ.resume.bind(this._closeQ))}),t};Ms.prototype.ready=function(e){if(e){if(typeof e!="function")throw new kk("ready",typeof e);this._readyQ.push(e),queueMicrotask(this.start.bind(this));return}return new Promise((t,n)=>{this._readyQ.push(i),this.start();let r=this._current[0].server;function i(s,o,a){s?n(s):t(r),process.nextTick(a)}})};Ms.prototype._trackPluginLoading=function(e){let t=this._current[0]?.name||null;e.once("start",(n,r,i)=>{let s=this.pluginTree.start(t||null,r,i);e.once("loaded",(o,a,c)=>{this.pluginTree.stop(s,c)})})};Ms.prototype.prettyPrint=function(){return this.pluginTree.prettyPrint()};Ms.prototype.toJSON=function(){return this.pluginTree.toJSON()};Ms.prototype._loadPlugin=function(e,t){let n=this;if(REn(e.func)){e.func.then(o=>{typeof o.default=="function"&&(o=o.default),e.func=o,this._loadPlugin(e,t)},t);return}let r=n._current[0];if(n._current.unshift(e),n._error&&!e.isAfter){Ik("skipping loading of plugin as instance errored and it is not an after",e.name),process.nextTick(s);return}let i=r?.server||n._server;if(!e.isAfter)try{i=n.override(i,e.func,e.options)}catch(o){return Ik("override errored",e.name),s(o)}e.exec(i,s);function s(o){e.finish(o,a=>{n._current.shift(),t(a)})}};Ms.prototype._loadPluginNextTick=function(e,t){process.nextTick(this._loadPlugin.bind(this),e,t)};function cQe(){}function pQe(e,t){let n=this._server,r=this._error;if(this._error=null,e.length===0)this._error=r,aQe(e,[],t);else if(e.length===1)aQe(e,[r],t);else if(this._opts.timeout===0){let i=s=>{this._error=s,t(this._error)};e.length===2?e(r,i):e(r,n,i)}else wEn.call(this,e,r,n,t)}function wEn(e,t,n,r){let i=e.unwrappedName??e.name;Ik("setting up ready timeout",i,this._opts.timeout);let s=setTimeout(()=>{Ik("timed out",i),s=null;let a=new bEn(i);a.fn=e,this._error=a,r(a)},this._opts.timeout);e.length===2?e(t,o.bind(this)):e(t,n,o.bind(this));function o(a){s&&(clearTimeout(s),this._error=a,r(this._error))}}function kEn(e,t){let n=this._server,r=e[lQe];if(e.length===0||e.length===1){let i;r?i=e(n):i=e(this._error),i&&typeof i.then=="function"?(Ik("resolving close/onClose promise"),i.then(()=>process.nextTick(t),s=>process.nextTick(t,s))):process.nextTick(t)}else e.length===2?e(r?n:this._error,t):r?e(n,t):e(this._error,n,t)}function IEn(e,t){return n.bind(t);function n(r,i){let s;e.length===0?(s=e(),s?.then?s.then(function(){process.nextTick(i)},i):process.nextTick(i)):e.length===1?(s=e(this),s?.then?s.then(function(){process.nextTick(i)},i):process.nextTick(i)):e(this,i)}}function $ae(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)}}hQe.exports=Ms});var $s=w((k3r,gQe)=>{"use strict";var xEn={kAvvioBoot:Symbol("fastify.avvioBoot"),kChildren:Symbol("fastify.children"),kServerBindings:Symbol("fastify.serverBindings"),kBodyLimit:Symbol("fastify.bodyLimit"),kSupportedHTTPMethods:Symbol("fastify.acceptedHTTPMethods"),kRoutePrefix:Symbol("fastify.routePrefix"),kLogLevel:Symbol("fastify.logLevel"),kLogSerializers:Symbol("fastify.logSerializers"),kHooks:Symbol("fastify.hooks"),kContentTypeParser:Symbol("fastify.contentTypeParser"),kState:Symbol("fastify.state"),kOptions:Symbol("fastify.options"),kDisableRequestLogging:Symbol("fastify.disableRequestLogging"),kPluginNameChain:Symbol("fastify.pluginNameChain"),kRouteContext:Symbol("fastify.context"),kGenReqId:Symbol("fastify.genReqId"),kHttp2ServerSessions:Symbol("fastify.http2ServerSessions"),kSchemaController:Symbol("fastify.schemaController"),kSchemaHeaders:Symbol("headers-schema"),kSchemaParams:Symbol("params-schema"),kSchemaQuerystring:Symbol("querystring-schema"),kSchemaBody:Symbol("body-schema"),kSchemaResponse:Symbol("response-schema"),kSchemaErrorFormatter:Symbol("fastify.schemaErrorFormatter"),kSchemaVisited:Symbol("fastify.schemas.visited"),kRequest:Symbol("fastify.Request"),kRequestPayloadStream:Symbol("fastify.RequestPayloadStream"),kRequestAcceptVersion:Symbol("fastify.RequestAcceptVersion"),kRequestCacheValidateFns:Symbol("fastify.request.cache.validateFns"),kRequestOriginalUrl:Symbol("fastify.request.originalUrl"),kRequestSignal:Symbol("fastify.request.signal"),kHandlerTimeout:Symbol("fastify.handlerTimeout"),kTimeoutTimer:Symbol("fastify.request.timeoutTimer"),kOnAbort:Symbol("fastify.request.onAbort"),kFourOhFour:Symbol("fastify.404"),kCanSetNotFoundHandler:Symbol("fastify.canSetNotFoundHandler"),kFourOhFourLevelInstance:Symbol("fastify.404LogLevelInstance"),kFourOhFourContext:Symbol("fastify.404ContextKey"),kDefaultJsonParse:Symbol("fastify.defaultJSONParse"),kReply:Symbol("fastify.Reply"),kReplySerializer:Symbol("fastify.reply.serializer"),kReplyIsError:Symbol("fastify.reply.isError"),kReplyHeaders:Symbol("fastify.reply.headers"),kReplyTrailers:Symbol("fastify.reply.trailers"),kReplyHasStatusCode:Symbol("fastify.reply.hasStatusCode"),kReplyHijacked:Symbol("fastify.reply.hijacked"),kReplyStartTime:Symbol("fastify.reply.startTime"),kReplyNextErrorHandler:Symbol("fastify.reply.nextErrorHandler"),kReplyEndTime:Symbol("fastify.reply.endTime"),kReplyErrorHandlerCalled:Symbol("fastify.reply.errorHandlerCalled"),kReplyIsRunningOnErrorHook:Symbol("fastify.reply.isRunningOnErrorHook"),kReplySerializerDefault:Symbol("fastify.replySerializerDefault"),kReplyCacheSerializeFns:Symbol("fastify.reply.cache.serializeFns"),kTestInternals:Symbol("fastify.testInternals"),kErrorHandler:Symbol("fastify.errorHandler"),kErrorHandlerAlreadySet:Symbol("fastify.errorHandlerAlreadySet"),kChildLoggerFactory:Symbol("fastify.childLoggerFactory"),kHasBeenDecorated:Symbol("fastify.hasBeenDecorated"),kKeepAliveConnections:Symbol("fastify.keepAliveConnections"),kRouteByFastify:Symbol("fastify.routeByFastify")};gQe.exports=xEn});var SQe=w((I3r,SW)=>{"use strict";var{format:ece}=Z("node:util");function OEn(e){return yQe({...e,name:"DeprecationWarning"})}function yQe({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=ece(n,o,a,c):o&&a?u=ece(n,o,a):o?u=ece(n,o):u=n,u},s}var tce={createWarning:yQe,createDeprecation:OEn};SW.exports=tce;SW.exports.default=tce;SW.exports.processWarning=tce});var xk=w((x3r,EQe)=>{"use strict";var{createWarning:uM}=SQe(),NEn=uM({name:"FastifyWarning",code:"FSTWRN001",message:"The %s schema for %s: %s is missing. This may indicate the schema is not well specified.",unlimited:!0}),PEn=uM({name:"FastifyWarning",code:"FSTWRN003",message:"The %s mixes async and callback styles that may lead to unhandled rejections. Please use only one of them.",unlimited:!0}),CEn=uM({name:"FastifyWarning",code:"FSTWRN004",message:"It seems that you are overriding an errorHandler in the same scope, which can lead to subtle bugs.",unlimited:!0}),MEn=uM({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}),LEn=uM({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});EQe.exports={FSTWRN001:NEn,FSTWRN003:PEn,FSTWRN004:CEn,FSTSEC001:MEn,FSTDEP022:LEn}});var Ko=w((O3r,EW)=>{"use strict";var je=pW(),nT={FST_ERR_NOT_FOUND:je("FST_ERR_NOT_FOUND","Not Found",404),FST_ERR_OPTIONS_NOT_OBJ:je("FST_ERR_OPTIONS_NOT_OBJ","Options must be an object",500,TypeError),FST_ERR_QSP_NOT_FN:je("FST_ERR_QSP_NOT_FN","querystringParser option should be a function, instead got '%s'",500,TypeError),FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:je("FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN","schemaController.bucket option should be a function, instead got '%s'",500,TypeError),FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:je("FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN","schemaErrorFormatter option should be a non async function. Instead got '%s'.",500,TypeError),FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:je("FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ","ajv.customOptions option should be an object, instead got '%s'",500,TypeError),FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:je("FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR","ajv.plugins option should be an array, instead got '%s'",500,TypeError),FST_ERR_VALIDATION:je("FST_ERR_VALIDATION","%s",400),FST_ERR_LISTEN_OPTIONS_INVALID:je("FST_ERR_LISTEN_OPTIONS_INVALID","Invalid listen options: '%s'",500,TypeError),FST_ERR_ERROR_HANDLER_NOT_FN:je("FST_ERR_ERROR_HANDLER_NOT_FN","Error Handler must be a function",500,TypeError),FST_ERR_ERROR_HANDLER_ALREADY_SET:je("FST_ERR_ERROR_HANDLER_ALREADY_SET","Error Handler already set in this scope. Set 'allowErrorHandlerOverride: true' to allow overriding.",500,TypeError),FST_ERR_CTP_ALREADY_PRESENT:je("FST_ERR_CTP_ALREADY_PRESENT","Content type parser '%s' already present."),FST_ERR_CTP_INVALID_TYPE:je("FST_ERR_CTP_INVALID_TYPE","The content type should be a string or a RegExp",500,TypeError),FST_ERR_CTP_EMPTY_TYPE:je("FST_ERR_CTP_EMPTY_TYPE","The content type cannot be an empty string",500,TypeError),FST_ERR_CTP_INVALID_HANDLER:je("FST_ERR_CTP_INVALID_HANDLER","The content type handler should be a function",500,TypeError),FST_ERR_CTP_INVALID_PARSE_TYPE:je("FST_ERR_CTP_INVALID_PARSE_TYPE","The body parser can only parse your data as 'string' or 'buffer', you asked '%s' which is not supported.",500,TypeError),FST_ERR_CTP_BODY_TOO_LARGE:je("FST_ERR_CTP_BODY_TOO_LARGE","Request body is too large",413,RangeError),FST_ERR_CTP_INVALID_MEDIA_TYPE:je("FST_ERR_CTP_INVALID_MEDIA_TYPE","Unsupported Media Type",415),FST_ERR_CTP_INVALID_CONTENT_LENGTH:je("FST_ERR_CTP_INVALID_CONTENT_LENGTH","Request body size did not match Content-Length",400,RangeError),FST_ERR_CTP_EMPTY_JSON_BODY:je("FST_ERR_CTP_EMPTY_JSON_BODY","Body cannot be empty when content-type is set to 'application/json'",400),FST_ERR_CTP_INVALID_JSON_BODY:je("FST_ERR_CTP_INVALID_JSON_BODY","Body is not valid JSON but content-type is set to 'application/json'",400),FST_ERR_CTP_INSTANCE_ALREADY_STARTED:je("FST_ERR_CTP_INSTANCE_ALREADY_STARTED",'Cannot call "%s" when fastify instance is already started!',400),FST_ERR_DEC_ALREADY_PRESENT:je("FST_ERR_DEC_ALREADY_PRESENT","The decorator '%s' has already been added!"),FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:je("FST_ERR_DEC_DEPENDENCY_INVALID_TYPE","The dependencies of decorator '%s' must be of type Array.",500,TypeError),FST_ERR_DEC_MISSING_DEPENDENCY:je("FST_ERR_DEC_MISSING_DEPENDENCY","The decorator is missing dependency '%s'."),FST_ERR_DEC_AFTER_START:je("FST_ERR_DEC_AFTER_START","The decorator '%s' has been added after start!"),FST_ERR_DEC_REFERENCE_TYPE:je("FST_ERR_DEC_REFERENCE_TYPE","The decorator '%s' of type '%s' is a reference type. Use the { getter, setter } interface instead."),FST_ERR_DEC_UNDECLARED:je("FST_ERR_DEC_UNDECLARED","No decorator '%s' has been declared on %s."),FST_ERR_HOOK_INVALID_TYPE:je("FST_ERR_HOOK_INVALID_TYPE","The hook name must be a string",500,TypeError),FST_ERR_HOOK_INVALID_HANDLER:je("FST_ERR_HOOK_INVALID_HANDLER","%s hook should be a function, instead got %s",500,TypeError),FST_ERR_HOOK_INVALID_ASYNC_HANDLER:je("FST_ERR_HOOK_INVALID_ASYNC_HANDLER","Async function has too many arguments. Async hooks should not use the 'done' argument.",500,TypeError),FST_ERR_HOOK_NOT_SUPPORTED:je("FST_ERR_HOOK_NOT_SUPPORTED","%s hook not supported!",500,TypeError),FST_ERR_MISSING_MIDDLEWARE:je("FST_ERR_MISSING_MIDDLEWARE","You must register a plugin for handling middlewares, visit fastify.dev/docs/latest/Reference/Middleware/ for more info.",500),FST_ERR_HOOK_TIMEOUT:je("FST_ERR_HOOK_TIMEOUT","A callback for '%s' hook%s timed out. You may have forgotten to call 'done' function or to resolve a Promise"),FST_ERR_LOG_INVALID_DESTINATION:je("FST_ERR_LOG_INVALID_DESTINATION","Cannot specify both logger.stream and logger.file options"),FST_ERR_LOG_INVALID_LOGGER:je("FST_ERR_LOG_INVALID_LOGGER","Invalid logger object provided. The logger instance should have these functions(s): '%s'.",500,TypeError),FST_ERR_LOG_INVALID_LOGGER_INSTANCE:je("FST_ERR_LOG_INVALID_LOGGER_INSTANCE","loggerInstance only accepts a logger instance.",500,TypeError),FST_ERR_LOG_INVALID_LOGGER_CONFIG:je("FST_ERR_LOG_INVALID_LOGGER_CONFIG","logger options only accepts a configuration object.",500,TypeError),FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:je("FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED","You cannot provide both logger and loggerInstance. Please provide only one.",500,TypeError),FST_ERR_REP_INVALID_PAYLOAD_TYPE:je("FST_ERR_REP_INVALID_PAYLOAD_TYPE","Attempted to send payload of invalid type '%s'. Expected a string or Buffer.",500,TypeError),FST_ERR_REP_RESPONSE_BODY_CONSUMED:je("FST_ERR_REP_RESPONSE_BODY_CONSUMED","Response.body is already consumed."),FST_ERR_REP_READABLE_STREAM_LOCKED:je("FST_ERR_REP_READABLE_STREAM_LOCKED","ReadableStream was locked. You should call releaseLock() method on reader before sending."),FST_ERR_REP_ALREADY_SENT:je("FST_ERR_REP_ALREADY_SENT",'Reply was already sent, did you forget to "return reply" in "%s" (%s)?'),FST_ERR_REP_SENT_VALUE:je("FST_ERR_REP_SENT_VALUE","The only possible value for reply.sent is true.",500,TypeError),FST_ERR_SEND_INSIDE_ONERR:je("FST_ERR_SEND_INSIDE_ONERR","You cannot use `send` inside the `onError` hook"),FST_ERR_SEND_UNDEFINED_ERR:je("FST_ERR_SEND_UNDEFINED_ERR","Undefined error has occurred"),FST_ERR_BAD_STATUS_CODE:je("FST_ERR_BAD_STATUS_CODE","Called reply with an invalid status code: %s"),FST_ERR_BAD_TRAILER_NAME:je("FST_ERR_BAD_TRAILER_NAME","Called reply.trailer with an invalid header name: %s"),FST_ERR_BAD_TRAILER_VALUE:je("FST_ERR_BAD_TRAILER_VALUE","Called reply.trailer('%s', fn) with an invalid type: %s. Expected a function."),FST_ERR_FAILED_ERROR_SERIALIZATION:je("FST_ERR_FAILED_ERROR_SERIALIZATION","Failed to serialize an error. Error: %s. Original error: %s"),FST_ERR_MISSING_SERIALIZATION_FN:je("FST_ERR_MISSING_SERIALIZATION_FN",'Missing serialization function. Key "%s"'),FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:je("FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN",'Missing serialization function. Key "%s:%s"'),FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:je("FST_ERR_REQ_INVALID_VALIDATION_INVOCATION",'Invalid validation invocation. Missing validation function for HTTP part "%s" nor schema provided.'),FST_ERR_SCH_MISSING_ID:je("FST_ERR_SCH_MISSING_ID","Missing schema $id property"),FST_ERR_SCH_ALREADY_PRESENT:je("FST_ERR_SCH_ALREADY_PRESENT","Schema with id '%s' already declared!"),FST_ERR_SCH_CONTENT_MISSING_SCHEMA:je("FST_ERR_SCH_CONTENT_MISSING_SCHEMA","Schema is missing for the content type '%s'"),FST_ERR_SCH_DUPLICATE:je("FST_ERR_SCH_DUPLICATE","Schema with '%s' already present!"),FST_ERR_SCH_VALIDATION_BUILD:je("FST_ERR_SCH_VALIDATION_BUILD","Failed building the validation schema for %s: %s, due to error %s"),FST_ERR_SCH_SERIALIZATION_BUILD:je("FST_ERR_SCH_SERIALIZATION_BUILD","Failed building the serialization schema for %s: %s, due to error %s"),FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:je("FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX",'response schemas should be nested under a valid status code, e.g { 2xx: { type: "object" } }'),FST_ERR_INIT_OPTS_INVALID:je("FST_ERR_INIT_OPTS_INVALID","Invalid initialization options: '%s'"),FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:je("FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE","Cannot set forceCloseConnections to 'idle' as your HTTP server does not support closeIdleConnections method"),FST_ERR_DUPLICATED_ROUTE:je("FST_ERR_DUPLICATED_ROUTE","Method '%s' already declared for route '%s'"),FST_ERR_BAD_URL:je("FST_ERR_BAD_URL","'%s' is not a valid url component",400,URIError),FST_ERR_ASYNC_CONSTRAINT:je("FST_ERR_ASYNC_CONSTRAINT","Unexpected error from async constraint",500),FST_ERR_INVALID_URL:je("FST_ERR_INVALID_URL","URL must be a string. Received '%s'",400,TypeError),FST_ERR_ROUTE_OPTIONS_NOT_OBJ:je("FST_ERR_ROUTE_OPTIONS_NOT_OBJ",'Options for "%s:%s" route must be an object',500,TypeError),FST_ERR_ROUTE_DUPLICATED_HANDLER:je("FST_ERR_ROUTE_DUPLICATED_HANDLER",'Duplicate handler for "%s:%s" route is not allowed!',500),FST_ERR_ROUTE_HANDLER_NOT_FN:je("FST_ERR_ROUTE_HANDLER_NOT_FN","Error Handler for %s:%s route, if defined, must be a function",500,TypeError),FST_ERR_ROUTE_MISSING_HANDLER:je("FST_ERR_ROUTE_MISSING_HANDLER",'Missing handler function for "%s:%s" route.',500),FST_ERR_ROUTE_METHOD_INVALID:je("FST_ERR_ROUTE_METHOD_INVALID","Provided method is invalid!",500,TypeError),FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:je("FST_ERR_ROUTE_METHOD_NOT_SUPPORTED","%s method is not supported.",500),FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:je("FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED","Body validation schema for %s:%s route is not supported!",500),FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:je("FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT","'bodyLimit' option must be an integer > 0. Got '%s'",500,TypeError),FST_ERR_HANDLER_TIMEOUT:je("FST_ERR_HANDLER_TIMEOUT","Request timed out after %s ms on route '%s'",503),FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:je("FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT","'handlerTimeout' option must be an integer > 0. Got '%s'",500,TypeError),FST_ERR_ROUTE_REWRITE_NOT_STR:je("FST_ERR_ROUTE_REWRITE_NOT_STR",'Rewrite url for "%s" needs to be of type "string" but received "%s"',500,TypeError),FST_ERR_REOPENED_CLOSE_SERVER:je("FST_ERR_REOPENED_CLOSE_SERVER","Fastify has already been closed and cannot be reopened"),FST_ERR_REOPENED_SERVER:je("FST_ERR_REOPENED_SERVER","Fastify is already listening"),FST_ERR_INSTANCE_ALREADY_LISTENING:je("FST_ERR_INSTANCE_ALREADY_LISTENING","Fastify instance is already listening. %s"),FST_ERR_PLUGIN_VERSION_MISMATCH:je("FST_ERR_PLUGIN_VERSION_MISMATCH","fastify-plugin: %s - expected '%s' fastify version, '%s' is installed"),FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:je("FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE","The decorator '%s'%s is not present in %s"),FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:je("FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER","The %s plugin being registered mixes async and callback styles. Async plugin should not mix async and callback style.",500,TypeError),FST_ERR_PLUGIN_CALLBACK_NOT_FN:je("FST_ERR_PLUGIN_CALLBACK_NOT_FN","fastify-plugin: %s",500,TypeError),FST_ERR_PLUGIN_NOT_VALID:je("FST_ERR_PLUGIN_NOT_VALID","fastify-plugin: %s"),FST_ERR_ROOT_PLG_BOOTED:je("FST_ERR_ROOT_PLG_BOOTED","fastify-plugin: %s"),FST_ERR_PARENT_PLUGIN_BOOTED:je("FST_ERR_PARENT_PLUGIN_BOOTED","fastify-plugin: %s"),FST_ERR_PLUGIN_TIMEOUT:je("FST_ERR_PLUGIN_TIMEOUT","fastify-plugin: %s")};function DEn(e,t){return t.cause=e,t}EW.exports=nT;EW.exports.appendStackTrace=DEn;EW.exports.AVVIO_ERRORS_MAP={AVV_ERR_CALLBACK_NOT_FN:nT.FST_ERR_PLUGIN_CALLBACK_NOT_FN,AVV_ERR_PLUGIN_NOT_VALID:nT.FST_ERR_PLUGIN_NOT_VALID,AVV_ERR_ROOT_PLG_BOOTED:nT.FST_ERR_ROOT_PLG_BOOTED,AVV_ERR_PARENT_PLG_LOADED:nT.FST_ERR_PARENT_PLUGIN_BOOTED,AVV_ERR_READY_TIMEOUT:nT.FST_ERR_PLUGIN_TIMEOUT,AVV_ERR_PLUGIN_EXEC_TIMEOUT:nT.FST_ERR_PLUGIN_TIMEOUT}});var KS=w((N3r,IQe)=>{"use strict";var UEn=["onRoute","onRegister","onReady","onListen","preClose","onClose"],vQe=["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError","onRequestAbort"],FEn=vQe.concat(UEn),{FST_ERR_HOOK_INVALID_TYPE:jEn,FST_ERR_HOOK_INVALID_HANDLER:HEn,FST_ERR_SEND_UNDEFINED_ERR:bW,FST_ERR_HOOK_TIMEOUT:qEn,FST_ERR_HOOK_NOT_SUPPORTED:BEn,AVVIO_ERRORS_MAP:bQe,appendStackTrace:_Qe}=Ko(),{kChildren:lM,kHooks:AQe,kRequestPayloadStream:TQe}=$s();function dM(){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=[]}dM.prototype=Object.create(null);dM.prototype.validate=function(e,t){if(typeof e!="string")throw new jEn;if(Array.isArray(this[e])===!1)throw new BEn(e);if(typeof t!="function")throw new HEn(e,Object.prototype.toString.call(t))};dM.prototype.add=function(e,t){this.validate(e,t),this[e].push(t)};function GEn(e){let t=new dM;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 RQe(e,t,n,r){let i=n[AQe][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=_Qe(l,new qEn(e,f)):l=bQe[l.code]!=null?_Qe(l,new bQe[l.code](l.message)):l,r(l);return}r()}function c(l){if(l){a(l);return}if(s===i.length&&o===n[lM].length){s===0&&o===0?a():t(function(f,p){a(f),p(f)});return}if(s===i.length&&o{"use strict";xQe.exports=function(){return{[Symbol.iterator]:function*(){},add(){},delete(){},has(){return!0}}}});var nce=w((C3r,PQe)=>{"use strict";var{kTestInternals:$En}=$s();function NQe(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}PQe.exports={withResolvers:typeof Promise.withResolvers=="function"?Promise.withResolvers.bind(Promise):NQe,[$En]:{withResolvers:NQe}}});var GQe=w((M3r,BQe)=>{"use strict";var ebn=Z("node:http"),tbn=Z("node:https"),CQe=Z("node:http2"),nbn=Z("node:dns"),rbn=Z("node:os"),{kState:Ls,kOptions:ibn,kServerBindings:sbn,kHttp2ServerSessions:rT}=$s(),{FSTWRN003:obn}=xk(),{onListenHookRunner:_W}=KS(),{FST_ERR_REOPENED_CLOSE_SERVER:LQe,FST_ERR_REOPENED_SERVER:DQe,FST_ERR_LISTEN_OPTIONS_INVALID:abn,FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:cbn}=Ko(),ubn=OQe(),UQe=nce();BQe.exports.createServer=lbn;function FQe(e){return`Server listening at ${e}`}function lbn(e,t){let n=HQe(e,t);function r(u={port:0,host:"localhost"},l=void 0){if(typeof l=="function"&&(l.constructor.name==="AsyncFunction"&&obn("listen method"),u.cb=l),u.signal){if(typeof u.signal.on!="function"&&typeof u.signal.addEventListener!="function")throw new abn("Invalid options.signal");if(this[Ls].aborted=u.signal.aborted,this[Ls].aborted)return this.close();{let f=()=>{this[Ls].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}MQe.call(this,n,t,e,u,()=>{this[Ls].listening=!0,l(null,p),_W(this)})}:u.cb=(f,p)=>{if(f){l(f,p);return}this[Ls].listening=!0,l(null,p),_W(this)},l===void 0)return dbn.call(this,n,u).then(p=>{let{promise:h,resolve:m}=UQe.withResolvers();return d==="localhost"?MQe.call(this,n,t,e,u,()=>{this[Ls].listening=!0,m(p),_W(this)}):(m(p),_W(this)),h});this.ready(jQe.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 cbn;typeof a!="boolean"&&(a=s?"idle":!1);let c=!i&&a===!0?new Set:ubn();return{server:n,listen:r,forceCloseConnections:a,serverHasCloseAllConnections:i,serverHasCloseHttp2Sessions:o,keepAliveConnections:c}}function MQe(e,t,n,r,i){this[Ls].listening=!1,nbn.lookup(r.host,{all:!0},(s,o)=>{if(s||this[Ls].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[sbn].push(h),u===c&&i()}}),h=HQe(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[Ls].listening=!1,jQe.call(this,h,p)()}}if(c===0){i();return}let l=e.unref;e.unref=function(){l.call(e),e.emit("unref")}})}function jQe(e,t){let n=r=>{if(e.removeListener("error",n),e.removeListener("listening",n),r)this[Ls].listening=!1,t.cb(r,null);else{let i=qQe.call(this,e,t.listenTextResolver||FQe);t.cb(null,i)}};return r=>{if(r!=null)return t.cb(r);if(this[Ls].listening&&this[Ls].closing)return t.cb(new LQe,null);if(this[Ls].listening)return t.cb(new DQe,null);e.once("error",n),this[Ls].closing||(e.once("listening",n),e.listen(t),this[Ls].listening=!0)}}function dbn(e,t){return this[Ls].listening&&this[Ls].closing?Promise.reject(new LQe):this[Ls].listening?Promise.reject(new DQe):this.ready().then(()=>{if(this[Ls].aborted)return;let{promise:n,resolve:r,reject:i}=UQe.withResolvers(),s=c=>{a(),this[Ls].listening=!1,i(c)},o=()=>{a(),this[Ls].listening=!0,r(qQe.call(this,e,t.listenTextResolver||FQe))};function a(){e.removeListener("error",s),e.removeListener("listening",o)}return e.once("error",s),e.once("listening",o),e.listen(t),n})}function HQe(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"?CQe.createSecureServer(n,t):CQe.createServer(e.http,t);return i.on("session",s=>s.setTimeout(e.http2SessionTimeout,()=>{s.close()})),e.forceCloseConnections===!0&&(i.closeHttp2Sessions=pbn(i)),i.setTimeout(e.connectionTimeout),i}let r=n?tbn.createServer(n,t):ebn.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 fbn(e){return e.address==="0.0.0.0"?Object.values(rbn.networkInterfaces()).flatMap(t=>t.filter(n=>n.family==="IPv4")).sort(t=>t.internal?-1:1).map(t=>t.address):[e.address]}function qQe(e,t){let n;typeof e.address()=="string"?n=[e.address()]:(e.address().address.indexOf(":")===-1?n=fbn(e.address()).map(i=>i+":"+e.address().port):n=["["+e.address().address+"]:"+e.address().port],n=n.map(i=>"http"+(this[ibn].https?"s":"")+"://"+i));for(let i of n)this.log.info(t(i));return n[0]}function pbn(e){return e[rT]=new Set,e.on("session",function(t){t.once("connect",function(){e[rT].add(t)}),t.once("close",function(){e[rT].delete(t)}),t.once("frameError",function(n,r,i){i===0&&e[rT].delete(t)}),t.once("goaway",function(){e[rT].delete(t)})}),function(){if(e[rT].size!==0)for(let n of e[rT])n.close()}}});var sce=w((L3r,WQe)=>{"use strict";var rce=/(?:^|;)\s*([\w!#$%&'*+.^`|~-]+)=([^;]*)/gm,zQe=/^[\w!#$%&'*+.^`|~-]+$/,VQe=/^[\w!#$%&'*+.^`|~-]+\s*$/,ice=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();zQe.test(c)===!0&&VQe.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(zQe.test(s)===!1||VQe.test(o)===!1)return;this.#i=s,this.#e=o,this.#t=!0,this.#n=!1;let a=rce.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=rce.exec(i);continue}this.#r.set(c,u.slice(1,u.length-1))}else this.#r.set(c,u);a=rce.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}};WQe.exports=ice});var TW=w((D3r,KQe)=>{"use strict";var{kReplyHasStatusCode:hbn}=$s();function mbn(e,t){if(!e[hbn]||e.statusCode===200){let n=t&&(t.statusCode||t.status);e.code(n>=400?n:500)}}KQe.exports={setErrorStatusCode:mbn}});var oce=w((U3r,YQe)=>{"use strict";var{kReplyIsError:ZQe,kReplyHijacked:gbn}=$s(),{setErrorStatusCode:ybn}=TW(),Sbn=Z("node:diagnostics_channel"),pM=Sbn.tracingChannel("fastify.request.handler");function Ebn(e,t,n){n&&(n.async=!0),e.then(function(r){if(t[gbn]!==!0){n&&pM.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[ZQe]=!0,t.send(i)}}finally{n&&pM.asyncEnd.publish(n)}}},function(r){n&&(n.error=r,ybn(t,r),pM.error.publish(n),pM.asyncStart.publish(n));try{if(t.sent===!0){t.log.error({err:r},"Promise errored, but reply.sent = true was set");return}t[ZQe]=!0,t.send(r)}catch(i){t.send(i)}finally{n&&pM.asyncEnd.publish(n)}})}YQe.exports=Ebn});var uce=w((F3r,XQe)=>{"use strict";var{kSchemaHeaders:RW,kSchemaParams:ace,kSchemaQuerystring:cce,kSchemaBody:iT,kSchemaResponse:JQe}=$s(),bbn=/^[1-5](?:\d{2}|xx)$|^default$/,{FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:_bn}=Ko(),{FSTWRN001:vW}=xk();function Tbn(e,t){if(!e.schema||!e.schema.response)return;let{method:n,url:r}=e.config||{};e[JQe]=Object.keys(e.schema.response).reduce(function(i,s){let o=e.schema.response[s];if(s=s.toLowerCase(),!bbn.test(s))throw new _bn;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 vbn(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[RW]=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[RW]=t({schema:a,method:i,url:s,httpPart:"headers"})}else Object.hasOwn(r,"headers")&&vW("headers",i,s);if(r.body){let a=r.body.content;if(a){let c={};for(let u of Object.keys(a)){let l=a[u].schema;c[u]=t({schema:l,method:i,url:s,httpPart:"body",contentType:u})}e[iT]=c}else e[iT]=t({schema:r.body,method:i,url:s,httpPart:"body"})}else Object.hasOwn(r,"body")&&vW("body",i,s);r.querystring?e[cce]=t({schema:r.querystring,method:i,url:s,httpPart:"querystring"}):Object.hasOwn(r,"querystring")&&vW("querystring",i,s),r.params?e[ace]=t({schema:r.params,method:i,url:s,httpPart:"params"}):Object.hasOwn(r,"params")&&vW("params",i,s)}function AW(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 wW(e,t,n){let r=n===void 0;if(r||!n.skipParams){let s=AW(e[ace],t,"params");if(s)return typeof s.then!="function"?ZS(s,"params",e.schemaErrorFormatter):Abn(s,e,t)}if(r||!n.skipBody){let s=null;if(typeof e[iT]=="function")s=e[iT];else if(e[iT]){let a=Ibn(t.headers["content-type"]),c=e[iT][a];c&&(s=c)}let o=AW(s,t,"body");if(o)return typeof o.then!="function"?ZS(o,"body",e.schemaErrorFormatter):Rbn(o,e,t)}if(r||!n.skipQuery){let s=AW(e[cce],t,"query");if(s)return typeof s.then!="function"?ZS(s,"querystring",e.schemaErrorFormatter):wbn(s,e,t)}let i=AW(e[RW],t,"headers");return i?typeof i.then!="function"?ZS(i,"headers",e.schemaErrorFormatter):kbn(i,e,t):!1}function Abn(e,t,n){return e.then(r=>r?ZS(r,"params",t.schemaErrorFormatter):wW(t,n,{skipParams:!0}))}function Rbn(e,t,n){return e.then(r=>r?ZS(r,"body",t.schemaErrorFormatter):wW(t,n,{skipParams:!0,skipBody:!0}))}function wbn(e,t,n){return e.then(r=>r?ZS(r,"querystring",t.schemaErrorFormatter):wW(t,n,{skipParams:!0,skipBody:!0,skipQuery:!0}))}function kbn(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 Ibn(e){return e?e.trimStart().split(/[ ;]/,1)[0].trim().toLowerCase():""}XQe.exports={symbols:{bodySchema:iT,querystringSchema:cce,responseSchema:JQe,paramsSchema:ace,headersSchema:RW},compileSchemasForValidation:vbn,compileSchemasForSerialization:Tbn,validate:wW}});var pce=w((j3r,fce)=>{"use strict";var xbn=Z("node:diagnostics_channel"),Obn=sce(),Nbn=oce(),{validate:Pbn}=uce(),{preValidationHookRunner:Cbn,preHandlerHookRunner:Mbn}=KS(),{FST_ERR_CTP_INVALID_MEDIA_TYPE:Lbn}=Ko(),{setErrorStatusCode:QQe}=TW(),{kReplyIsError:mM,kRouteContext:_h,kFourOhFourContext:Dbn,kSupportedHTTPMethods:$Qe}=$s(),hM=xbn.tracingChannel("fastify.request.handler");function Ubn(e,t,n){if(n.sent===!0)return;if(e!=null){n[mM]=!0,n.send(e);return}let r=t.method;if(this[$Qe].bodyless.has(r)){Nk(t,n);return}if(this[$Qe].bodywith.has(r)){let i=t.headers,s=i["content-type"];if(s===void 0){let a=i["content-length"];if(i["transfer-encoding"]===void 0&&(a===void 0||a==="0")){Nk(t,n);return}t[_h].contentTypeParser.run("",Nk,t,n);return}let o=new Obn(s);if(o.isValid===!1){n[mM]=!0,n.status(415).send(new Lbn);return}t[_h].contentTypeParser.run(o.toString(),Nk,t,n);return}Nk(t,n)}function Nk(e,t){try{e[_h].preValidation!==null?Cbn(e[_h].preValidation,e,t,lce):lce(null,e,t)}catch(n){lce(n,e,t)}}function lce(e,t,n){if(n.sent===!0)return;if(e!=null){n[mM]=!0,n.send(e);return}let r=Pbn(n[_h],t);if(r&&typeof r.then=="function"||!1){let s=e$e.bind(null,t,n);r.then(s,s)}else e$e(t,n,r)}function e$e(e,t,n){if(n){if(t[_h].attachValidation===!1){t.send(n);return}t.request.validationError=n}e[_h].preHandler!==null?Mbn(e[_h].preHandler,e,t,dce):dce(null,e,t)}function dce(e,t,n){if(n.sent)return;let r=t[_h];if(!hM.hasSubscribers||r[Dbn]===null)t$e(e,t,n);else{let i={request:t,reply:n,async:!1,route:{url:r.config.url,method:r.config.method}};hM.start.runStores(i,t$e,void 0,e,t,n,i)}}function t$e(e,t,n,r){let i=t[_h];try{if(e!=null){n[mM]=!0,r&&(r.error=e,QQe(n,e),hM.error.publish(r)),n.send(e);return}let s;try{s=i.handler(t,n)}catch(o){r&&(r.error=o,QQe(n,o),hM.error.publish(r)),n[mM]=!0,n.send(o);return}s!==void 0&&(s!==null&&typeof s.then=="function"?Nbn(s,n,r):n.send(s))}finally{r&&hM.end.publish(r)}}fce.exports=Ubn;fce.exports[Symbol.for("internals")]={handler:Nk,preHandlerCallback:dce}});var r$e=w((H3r,n$e)=>{"use strict";function Pk(){}var Fbn={fatal:Pk,error:Pk,warn:Pk,info:Pk,debug:Pk,trace:Pk};Object.defineProperty(n$e,"exports",{get(){return Object.create(Fbn)}})});var mce=w((q3r,o$e)=>{"use strict";var gM=e=>e&&typeof e.message=="string",hce=e=>{if(!e)return;let t=e.cause;if(typeof t=="function"){let n=e.cause();return gM(n)?n:void 0}else return gM(t)?t:void 0},i$e=(e,t)=>{if(!gM(e))return"";let n=e.stack||"";if(t.has(e))return n+` -causes have become circular...`;let r=hce(e);return r?(t.add(e),n+` -caused by: `+i$e(r,t)):n},jbn=e=>i$e(e,new Set),s$e=(e,t,n)=>{if(!gM(e))return"";let r=n?"":e.message||"";if(t.has(e))return r+": ...";let i=hce(e);if(i){t.add(e);let s=typeof e.cause=="function";return r+(s?"":": ")+s$e(i,t,s)}else return r},Hbn=e=>s$e(e,new Set);o$e.exports={isErrorLike:gM,getErrorCause:hce,stackWithCauses:jbn,messageWithCauses:Hbn}});var gce=w((B3r,c$e)=>{"use strict";var qbn=Symbol("circular-ref-tag"),kW=Symbol("pino-raw-err-ref"),a$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[kW]},set:function(e){this[kW]=e}}});Object.defineProperty(a$e,kW,{writable:!0,value:{}});c$e.exports={pinoErrProto:a$e,pinoErrorSymbols:{seen:qbn,rawSymbol:kW}}});var d$e=w((G3r,l$e)=>{"use strict";l$e.exports=Sce;var{messageWithCauses:Bbn,stackWithCauses:Gbn,isErrorLike:u$e}=mce(),{pinoErrProto:zbn,pinoErrorSymbols:Vbn}=gce(),{seen:yce}=Vbn,{toString:Wbn}=Object.prototype;function Sce(e){if(!u$e(e))return e;e[yce]=void 0;let t=Object.create(zbn);t.type=Wbn.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,t.message=Bbn(e),t.stack=Gbn(e),Array.isArray(e.errors)&&(t.aggregateErrors=e.errors.map(n=>Sce(n)));for(let n in e)if(t[n]===void 0){let r=e[n];u$e(r)?n!=="cause"&&!Object.prototype.hasOwnProperty.call(r,yce)&&(t[n]=Sce(r)):t[n]=r}return delete e[yce],t.raw=e,t}});var p$e=w((z3r,f$e)=>{"use strict";f$e.exports=xW;var{isErrorLike:Ece}=mce(),{pinoErrProto:Kbn,pinoErrorSymbols:Zbn}=gce(),{seen:IW}=Zbn,{toString:Ybn}=Object.prototype;function xW(e){if(!Ece(e))return e;e[IW]=void 0;let t=Object.create(Kbn);t.type=Ybn.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=>xW(n))),Ece(e.cause)&&!Object.prototype.hasOwnProperty.call(e.cause,IW)&&(t.cause=xW(e.cause));for(let n in e)if(t[n]===void 0){let r=e[n];Ece(r)?Object.prototype.hasOwnProperty.call(r,IW)||(t[n]=xW(r)):t[n]=r}return delete e[IW],t.raw=e,t}});var y$e=w((V3r,g$e)=>{"use strict";g$e.exports={mapHttpRequest:Jbn,reqSerializer:m$e};var bce=Symbol("pino-raw-req-ref"),h$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[bce]},set:function(e){this[bce]=e}}});Object.defineProperty(h$e,bce,{writable:!0,value:{}});function m$e(e){let t=e.info||e.socket,n=Object.create(h$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 Jbn(e){return{req:m$e(e)}}});var _$e=w((W3r,b$e)=>{"use strict";b$e.exports={mapHttpResponse:Xbn,resSerializer:E$e};var _ce=Symbol("pino-raw-res-ref"),S$e=Object.create({},{statusCode:{enumerable:!0,writable:!0,value:0},headers:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[_ce]},set:function(e){this[_ce]=e}}});Object.defineProperty(S$e,_ce,{writable:!0,value:{}});function E$e(e){let t=Object.create(S$e);return t.statusCode=e.headersSent?e.statusCode:null,t.headers=e.getHeaders?e.getHeaders():e._headers,t.raw=e,t}function Xbn(e){return{res:E$e(e)}}});var vce=w((K3r,T$e)=>{"use strict";var Tce=d$e(),Qbn=p$e(),OW=y$e(),NW=_$e();T$e.exports={err:Tce,errWithCause:Qbn,mapHttpRequest:OW.mapHttpRequest,mapHttpResponse:NW.mapHttpResponse,req:OW.reqSerializer,res:NW.resSerializer,wrapErrorSerializer:function(t){return t===Tce?t:function(r){return t(Tce(r))}},wrapRequestSerializer:function(t){return t===OW.reqSerializer?t:function(r){return t(OW.reqSerializer(r))}},wrapResponseSerializer:function(t){return t===NW.resSerializer?t:function(r){return t(NW.resSerializer(r))}}}});var Ace=w((Z3r,v$e)=>{"use strict";function $bn(e,t){return t}v$e.exports=function(){let t=Error.prepareStackTrace;Error.prepareStackTrace=$bn;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 x$e=w((Y3r,I$e)=>{"use strict";function Rce(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)w$e(l,a);else{let f=typeof n=="function"?n(t_n(l,a),[...c.slice(0,d),...a]):n;R$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 a_n(e){if(!Array.isArray(e))throw new TypeError("paths must be an array");for(let t of e)o_n(t)}function c_n(e={}){let{paths:t=[],censor:n="[REDACTED]",serialize:r=JSON.stringify,strict:i=!0,remove:s=!1}=e;a_n(t);let o=i_n(t);return function(c){if(i&&(c===null||typeof c!="object")&&(c==null||typeof c!="object"))return r?r(c):c;let u=s_n(c,o),l=c,d=n;return typeof n=="function"&&(d=n),n_n(u,t,d,s),r===!1?(u.restore=function(){return Rce(l)},u):typeof r=="function"?r(u):JSON.stringify(u)}}I$e.exports=c_n});var Ck=w((J3r,O$e)=>{"use strict";var u_n=Symbol("pino.setLevel"),l_n=Symbol("pino.getLevel"),d_n=Symbol("pino.levelVal"),f_n=Symbol("pino.levelComp"),p_n=Symbol("pino.useLevelLabels"),h_n=Symbol("pino.useOnlyCustomLevels"),m_n=Symbol("pino.mixin"),g_n=Symbol("pino.lsCache"),y_n=Symbol("pino.chindings"),S_n=Symbol("pino.asJson"),E_n=Symbol("pino.write"),b_n=Symbol("pino.redactFmt"),__n=Symbol("pino.time"),T_n=Symbol("pino.timeSliceIndex"),v_n=Symbol("pino.stream"),A_n=Symbol("pino.stringify"),R_n=Symbol("pino.stringifySafe"),w_n=Symbol("pino.stringifiers"),k_n=Symbol("pino.end"),I_n=Symbol("pino.formatOpts"),x_n=Symbol("pino.messageKey"),O_n=Symbol("pino.errorKey"),N_n=Symbol("pino.nestedKey"),P_n=Symbol("pino.nestedKeyStr"),C_n=Symbol("pino.mixinMergeStrategy"),M_n=Symbol("pino.msgPrefix"),L_n=Symbol("pino.wildcardFirst"),D_n=Symbol.for("pino.serializers"),U_n=Symbol.for("pino.formatters"),F_n=Symbol.for("pino.hooks"),j_n=Symbol.for("pino.metadata");O$e.exports={setLevelSym:u_n,getLevelSym:l_n,levelValSym:d_n,levelCompSym:f_n,useLevelLabelsSym:p_n,mixinSym:m_n,lsCacheSym:g_n,chindingsSym:y_n,asJsonSym:S_n,writeSym:E_n,serializersSym:D_n,redactFmtSym:b_n,timeSym:__n,timeSliceIndexSym:T_n,streamSym:v_n,stringifySym:A_n,stringifySafeSym:R_n,stringifiersSym:w_n,endSym:k_n,formatOptsSym:I_n,messageKeySym:x_n,errorKeySym:O_n,nestedKeySym:N_n,wildcardFirstSym:L_n,needsMetadataGsym:j_n,useOnlyCustomLevelsSym:h_n,formattersSym:U_n,hooksSym:F_n,nestedKeyStrSym:P_n,mixinMergeStrategySym:C_n,msgPrefixSym:M_n}});var kce=w((X3r,M$e)=>{"use strict";var N$e=x$e(),{redactFmtSym:H_n,wildcardFirstSym:CW}=Ck(),wce=/[^.[\]]+|\[([^[\]]*?)\]/g,P$e="[Redacted]",C$e=!1;function q_n(e,t){let{paths:n,censor:r,remove:i}=B_n(e),s=n.reduce((c,u)=>{wce.lastIndex=0;let l=wce.exec(u),d=wce.exec(u),f=l[1]!==void 0?l[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):l[0];if(f==="*"&&(f=CW),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!==CW&&c[f].length===0&&c[f].push(...c[CW]||[]),f===CW&&Object.keys(c).forEach(function(m){c[m]&&c[m].push(h)}),c[f].push(h),c},{}),o={[H_n]:N$e({paths:n,censor:r,serialize:t,strict:C$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]=N$e({paths:s[u],censor:l,serialize:t,strict:C$e,remove:i})}return c},o)}function B_n(e){if(Array.isArray(e))return e={paths:e,censor:P$e},e;let{paths:t,censor:n=P$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}}M$e.exports=q_n});var U$e=w((Q3r,D$e)=>{"use strict";var G_n=()=>"",z_n=()=>`,"time":${Date.now()}`,V_n=()=>`,"time":${Math.round(Date.now()/1e3)}`,W_n=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,K_n=1000000n,L$e=1000000000n,Z_n=BigInt(Date.now())*K_n,Y_n=process.hrtime.bigint(),J_n=()=>{let e=process.hrtime.bigint()-Y_n,t=Z_n+e,n=t/L$e,r=t%L$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"`};D$e.exports={nullTime:G_n,epochTime:z_n,unixTime:V_n,isoTime:W_n,isoTimeNano:J_n}});var j$e=w(($3r,F$e)=>{"use strict";function X_n(e){try{return JSON.stringify(e)}catch{return'"[Circular]"'}}F$e.exports=Q_n;function Q_n(e,t,n){var r=n&&n.stringify||X_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));Ice.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(););};Ice.exports=e}});var K$e=w((t4r,W$e)=>{"use strict";var Si=Z("fs"),$_n=Z("events"),eTn=Z("util").inherits,H$e=Z("path"),Nce=xce(),tTn=Z("assert"),MW=100,LW=Buffer.allocUnsafe(0),nTn=16*1024,q$e="buffer",B$e="utf8",[rTn,iTn]=(process.versions.node||"0.0").split(".").map(Number),sTn=rTn>=22&&iTn>=7;function G$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(H$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(H$e.dirname(e),{recursive:!0},s=>{if(s)return n(s);Si.open(e,r,i,n)}):Si.open(e,r,i,n)}function xf(e){if(!(this instanceof xf))return new xf(e);let{fd:t,dest:n,minLength:r,maxLength:i,maxWrite:s,periodicFlush:o,sync:a,append:c=!0,mkdir:u,retryEAGAIN:l,fsync:d,contentMode:f,mode:p}=e||{};t=t||n,this._len=0,this.fd=-1,this._bufs=[],this._lens=[],this._writing=!1,this._ending=!1,this._reopening=!1,this._asyncDrainScheduled=!1,this._flushPending=!1,this._hwm=Math.max(r||0,16387),this.file=null,this.destroyed=!1,this.minLength=r||0,this.maxLength=i||0,this.maxWrite=s||nTn,this._periodicFlush=o||0,this._periodicFlushTimer=void 0,this.sync=a||!1,this.writable=!0,this._fsync=d||!1,this.append=c||!1,this.mode=p,this.retryEAGAIN=l||(()=>!0),this.mkdir=u||!1;let h,m;if(f===q$e)this._writingBuf=LW,this.write=cTn,this.flush=lTn,this.flushSync=fTn,this._actualWrite=hTn,h=()=>Si.writeSync(this.fd,this._writingBuf),m=()=>Si.write(this.fd,this._writingBuf,this.release);else if(f===void 0||f===B$e)this._writingBuf="",this.write=aTn,this.flush=uTn,this.flushSync=dTn,this._actualWrite=pTn,h=()=>Buffer.isBuffer(this._writingBuf)?Si.writeSync(this.fd,this._writingBuf):Si.writeSync(this.fd,this._writingBuf,"utf8"),m=()=>Buffer.isBuffer(this._writingBuf)?Si.write(this.fd,this._writingBuf,this.release):Si.write(this.fd,this._writingBuf,"utf8",this.release);else throw new Error(`SonicBoom supports "${B$e}" and "${q$e}", but passed ${f}`);if(typeof t=="number")this.fd=t,process.nextTick(()=>this.emit("ready"));else if(typeof t=="string")G$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{Nce(MW),this.release(void 0,0)}catch(b){this.release(b)}else setTimeout(m,MW);else this._writing=!1,this.emit("error",y);return}this.emit("write",g);let E=Oce(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(),_=Oce(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,DW(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(oTn,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 Oce(e,t,n){return typeof e=="string"&&(e=Buffer.from(e)),t=Math.max(t-n,0),e=e.subarray(n),{writingBuf:e,len:t}}function oTn(e){e.listenerCount("drain")>0&&(e._asyncDrainScheduled=!1,e.emit("drain"))}eTn(xf,$_n);function z$e(e,t){return e.length===0?LW:e.length===1?e[0]:Buffer.concat(e,t)}function aTn(e){if(this.destroyed)throw new Error("SonicBoom destroyed");e=""+e;let t=Buffer.byteLength(e),n=this._len+t,r=this._bufs;return this.maxLength&&n>this.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?r.push(e):r[r.length-1]+=e,this._len=n,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._lenthis.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?(n.push([e]),r.push(e.length)):(n[n.length-1].push(e),r[r.length-1]+=e.length),this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._len{if(this._fsync)this._flushPending=!1,e();else try{Si.fsync(this.fd,r=>{this._flushPending=!1,e(r)})}catch(r){e(r)}this.off("error",n)},n=r=>{this._flushPending=!1,e(r),this.off("drain",t)};this.once("drain",t),this.once("error",n)}function uTn(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&V$e.call(this,e),!this._writing&&(this._bufs.length===0&&this._bufs.push(""),this._actualWrite())}function lTn(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&V$e.call(this,e),!this._writing&&(this._bufs.length===0&&(this._bufs.push([]),this._lens.push(0)),this._actualWrite())}xf.prototype.reopen=function(e){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.reopen(e)});return}if(this._ending)return;if(!this.file)throw new Error("Unable to reopen a file descriptor, you must pass a file to SonicBoom");if(e&&(this.file=e),this._reopening=!0,this._writing)return;let t=this.fd;this.once("ready",()=>{t!==this.fd&&Si.close(t,n=>{if(n)return this.emit("error",n)})}),G$e(this.file,this)};xf.prototype.end=function(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.end()});return}this._ending||(this._ending=!0,!this._writing&&(this._len>0&&this.fd>=0?this._actualWrite():DW(this)))};function dTn(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift(this._writingBuf),this._writingBuf="");let e="";for(;this._bufs.length||e.length;){e.length<=0&&(e=this._bufs[0]);try{let t=Buffer.isBuffer(e)?Si.writeSync(this.fd,e):Si.writeSync(this.fd,e,"utf8"),n=Oce(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;Nce(MW)}}try{Si.fsyncSync(this.fd)}catch{}}function fTn(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift([this._writingBuf]),this._writingBuf=LW);let e=LW;for(;this._bufs.length||e.length;){e.length<=0&&(e=z$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;Nce(MW)}}}xf.prototype.destroy=function(){this.destroyed||DW(this)};function pTn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:this._bufs.shift()||"",this.sync)try{let t=Buffer.isBuffer(this._writingBuf)?Si.writeSync(this.fd,this._writingBuf):Si.writeSync(this.fd,this._writingBuf,"utf8");e(null,t)}catch(t){e(t)}else Si.write(this.fd,this._writingBuf,e)}function hTn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:z$e(this._bufs.shift(),this._lens.shift()),this.sync)try{let t=Si.writeSync(this.fd,this._writingBuf);e(null,t)}catch(t){e(t)}else sTn&&(this._writingBuf=Buffer.from(this._writingBuf)),Si.write(this.fd,this._writingBuf,e)}function DW(e){if(e.fd===-1){e.once("ready",DW.bind(null,e));return}e._periodicFlushTimer!==void 0&&clearInterval(e._periodicFlushTimer),e.destroyed=!0,e._bufs=[],e._lens=[],tTn(typeof e.fd=="number",`sonic.fd must be a number, got ${typeof e.fd}`);try{Si.fsync(e.fd,t)}catch{}function t(){e.fd!==1&&e.fd!==2?Si.close(e.fd,n):n()}function n(r){if(r){e.emit("error",r);return}e._ending&&!e._writing&&e.emit("finish"),e.emit("close")}}xf.SonicBoom=xf;xf.default=xf;W$e.exports=xf});var Pce=w((n4r,Q$e)=>{"use strict";var Of={exit:[],beforeExit:[]},Z$e={exit:yTn,beforeExit:STn},Mk;function mTn(){Mk===void 0&&(Mk=new FinalizationRegistry(ETn))}function gTn(e){Of[e].length>0||process.on(e,Z$e[e])}function Y$e(e){Of[e].length>0||(process.removeListener(e,Z$e[e]),Of.exit.length===0&&Of.beforeExit.length===0&&(Mk=void 0))}function yTn(){J$e("exit")}function STn(){J$e("beforeExit")}function J$e(e){for(let t of Of[e]){let n=t.deref(),r=t.fn;n!==void 0&&r(n,e)}Of[e]=[]}function ETn(e){for(let t of["exit","beforeExit"]){let n=Of[t].indexOf(e);Of[t].splice(n,n+1),Y$e(t)}}function X$e(e,t,n){if(t===void 0)throw new Error("the object can't be undefined");gTn(e);let r=new WeakRef(t);r.fn=n,mTn(),Mk.register(t,r),Of[e].push(r)}function bTn(e,t){X$e("exit",e,t)}function _Tn(e,t){X$e("beforeExit",e,t)}function TTn(e){if(Mk!==void 0){Mk.unregister(e);for(let t of["exit","beforeExit"])Of[t]=Of[t].filter(n=>{let r=n.deref();return r&&r!==e}),Y$e(t)}}Q$e.exports={register:bTn,registerBeforeExit:_Tn,unregister:TTn}});var $$e=w((r4r,vTn)=>{vTn.exports={name:"thread-stream",version:"4.0.0",description:"A streaming way to send data to a Node.js Worker Thread",main:"index.js",types:"index.d.ts",engines:{node:">=20"},dependencies:{"real-require":"^0.2.0"},devDependencies:{"@types/node":"^22.0.0","@yao-pkg/pkg":"^6.0.0",borp:"^0.21.0",desm:"^1.3.0",eslint:"^9.39.1",fastbench:"^1.0.1",husky:"^9.0.6",neostandard:"^0.12.2","pino-elasticsearch":"^8.0.0","sonic-boom":"^4.0.1","ts-node":"^10.8.0",typescript:"~5.7.3"},scripts:{build:"tsc --noEmit",lint:"eslint",test:"npm run lint && npm run build && npm run transpile && borp --pattern 'test/*.test.{js,mjs}'","test:ci":"npm run lint && npm run transpile && borp --pattern 'test/*.test.{js,mjs}'","test:yarn":"npm run transpile && borp --pattern 'test/*.test.js'",transpile:"sh ./test/ts/transpile.sh",prepare:"husky install"},repository:{type:"git",url:"git+https://github.com/mcollina/thread-stream.git"},keywords:["worker","thread","threads","stream"],author:"Matteo Collina ",license:"MIT",bugs:{url:"https://github.com/mcollina/thread-stream/issues"},homepage:"https://github.com/mcollina/thread-stream#readme"}});var tet=w((i4r,eet)=>{"use strict";function ATn(e,t,n,r,i){let s=r===1/0?1/0:Date.now()+r,o=()=>{let a=Atomics.load(e,t);if(a===n){i(null,"ok");return}if(s!==1/0&&Date.now()>s){i(null,"timed-out");return}let c=s===1/0?1e4:Math.min(1e4,Math.max(1,s-Date.now())),u=Atomics.waitAsync(e,t,a,c);u.async?u.value.then(o):setImmediate(o)};o()}function RTn(e,t,n,r,i){let s=r===1/0?1/0:Date.now()+r,o=()=>{if(Atomics.load(e,t)!==n){i(null,"ok");return}if(s!==1/0&&Date.now()>s){i(null,"timed-out");return}let c=s===1/0?1e4:Math.min(1e4,Math.max(1,s-Date.now())),u=Atomics.waitAsync(e,t,n,c);u.async?u.value.then(o):setImmediate(o)};o()}eet.exports={wait:ATn,waitDiff:RTn}});var ret=w((s4r,net)=>{"use strict";net.exports={WRITE_INDEX:4,READ_INDEX:8}});var cet=w((o4r,aet)=>{"use strict";var{version:wTn}=$$e(),{EventEmitter:kTn}=Z("events"),{Worker:ITn}=Z("worker_threads"),{join:xTn}=Z("path"),{pathToFileURL:OTn}=Z("url"),{wait:NTn}=tet(),{WRITE_INDEX:Iu,READ_INDEX:ku}=ret(),PTn=Z("buffer"),CTn=Z("assert"),be=Symbol("kImpl"),MTn=PTn.constants.MAX_STRING_LENGTH,yM=class{constructor(t){this._value=t}deref(){return this._value}},FW=class{register(){}unregister(){}},LTn=process.env.NODE_V8_COVERAGE?FW:global.FinalizationRegistry||FW,DTn=process.env.NODE_V8_COVERAGE?yM:global.WeakRef||yM,iet=new LTn(e=>{e.exited||e.terminate()});function UTn(e,t){let{filename:n,workerData:r}=t,s=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||xTn(__dirname,"lib","worker.js"),o=new ITn(s,{...t.workerOpts,trackUnmanagedFds:!1,workerData:{filename:n.indexOf("file://")===0?n:OTn(n).href,dataBuf:e[be].dataBuf,stateBuf:e[be].stateBuf,workerData:{$context:{threadStreamVersion:wTn},...r}}});return o.stream=new yM(e),o.on("message",FTn),o.on("exit",oet),iet.register(e,o),o}function set(e){CTn(!e[be].sync),e[be].needDrain&&(e[be].needDrain=!1,e.emit("drain"))}function UW(e){let t=Atomics.load(e[be].state,Iu),n=e[be].data.length-t;if(n>0){if(e[be].buf.length===0){e[be].flushing=!1,e[be].ending?Uce(e):e[be].needDrain&&process.nextTick(set,e);return}let r=e[be].buf.slice(0,n),i=Buffer.byteLength(r);i<=n?(e[be].buf=e[be].buf.slice(n),jW(e,r,UW.bind(null,e))):e.flush(()=>{if(!e.destroyed){for(Atomics.store(e[be].state,ku,0),Atomics.store(e[be].state,Iu,0),Atomics.notify(e[be].state,ku);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),jW(e,r,UW.bind(null,e))}})}else if(n===0){if(t===0&&e[be].buf.length===0)return;e.flush(()=>{Atomics.store(e[be].state,ku,0),Atomics.store(e[be].state,Iu,0),Atomics.notify(e[be].state,ku),UW(e)})}else Th(e,new Error("overwritten"))}function FTn(e){let t=this.stream.deref();if(t===void 0){this.exited=!0,this.terminate();return}switch(e.code){case"READY":this.stream=new DTn(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 oet(e){let t=this.stream.deref();t!==void 0&&(iet.unregister(t),t.worker.exited=!0,t.worker.off("exit",oet),Th(t,e!==0?new Error("the worker thread exited"):null))}var Mce=class extends kTn{constructor(t={}){if(super(),t.bufferSize<4)throw new Error("bufferSize must at least fit a 4-byte utf-8 char");this[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=UTn(this,t),this.on("message",(n,r)=>{this.worker.postMessage(n,r)})}write(t){if(this[be].destroyed)return Lce(this,new Error("the worker has exited")),!1;if(this[be].ending)return Lce(this,new Error("the worker is ending")),!1;if(this[be].flushing&&this[be].buf.length+t.length>=MTn)try{Cce(this),this[be].flushing=!0}catch(n){return Th(this,n),!1}if(this[be].buf+=t,this[be].sync)try{return Cce(this),!0}catch(n){return Th(this,n),!1}return this[be].flushing||(this[be].flushing=!0,setImmediate(UW,this)),this[be].needDrain=this[be].data.length-this[be].buf.length-Atomics.load(this[be].state,Iu)<=0,!this[be].needDrain}end(){this[be].destroyed||(this[be].ending=!0,Uce(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,Iu);NTn(this[be].state,ku,n,1/0,(r,i)=>{if(r){Th(this,r),process.nextTick(t,r);return}if(i==="not-equal"){this.flush(t);return}process.nextTick(t)})}flushSync(){this[be].destroyed||(Cce(this),Dce(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 Lce(e,t){setImmediate(()=>{e.emit("error",t)})}function Th(e,t){e[be].destroyed||(e[be].destroyed=!0,t&&(e[be].errored=t,Lce(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 jW(e,t,n){let r=Atomics.load(e[be].state,Iu),i=Buffer.byteLength(t);return e[be].data.write(t,r),Atomics.store(e[be].state,Iu,r+i),Atomics.notify(e[be].state,Iu),n(),!0}function Uce(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,ku);Atomics.store(e[be].state,Iu,-1),Atomics.notify(e[be].state,Iu);let n=0;for(;t!==-1;){if(Atomics.wait(e[be].state,ku,t,1e3),t=Atomics.load(e[be].state,ku),t===-2){Th(e,new Error("end() failed"));return}if(++n===10){Th(e,new Error("end() took too long (10s)"));return}}process.nextTick(()=>{e[be].finished=!0,e.emit("finish")})}catch(t){Th(e,t)}}}function Cce(e){let t=()=>{e[be].ending?Uce(e):e[be].needDrain&&process.nextTick(set,e)};for(e[be].flushing=!1;e[be].buf.length!==0;){let n=Atomics.load(e[be].state,Iu),r=e[be].data.length-n;if(r===0){Dce(e),Atomics.store(e[be].state,ku,0),Atomics.store(e[be].state,Iu,0),Atomics.notify(e[be].state,ku);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),jW(e,i,t);else{for(Dce(e),Atomics.store(e[be].state,ku,0),Atomics.store(e[be].state,Iu,0),Atomics.notify(e[be].state,ku);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),jW(e,i,t)}}}function Dce(e){if(e[be].flushing)throw new Error("unable to flush while flushing");let t=Atomics.load(e[be].state,Iu),n=0;for(;;){let r=Atomics.load(e[be].state,ku);if(r===-2)throw Error("_flushSync failed");if(r!==t)Atomics.wait(e[be].state,ku,r,1e3);else break;if(++n===10)throw new Error("_flushSync took too long (10s)")}}aet.exports=Mce});var Hce=w((a4r,fet)=>{"use strict";var{createRequire:jTn}=Z("module"),{existsSync:HTn}=Z("node:fs"),qTn=Ace(),{join:Fce,isAbsolute:det,sep:BTn}=Z("node:path"),{fileURLToPath:GTn}=Z("node:url"),zTn=xce(),jce=Pce(),VTn=cet();function WTn(e){jce.register(e,XTn),jce.registerBeforeExit(e,QTn),e.on("close",function(){jce.unregister(e)})}function KTn(){let e=process.execArgv;for(let t=0;th.target).map(h=>({...h,target:p(h.target)})),c.pipelines=n.filter(h=>h.pipeline).map(h=>h.pipeline.map(m=>({...m,level:h.level,target:p(m.target)})))):t&&(d=l["pino-worker"]||Fce(__dirname,"worker.js"),c.pipelines=[t.map(h=>({...h,target:p(h.target)}))]),r&&(c.levels=r),i&&(c.dedupe=i),c.pinoWillSendConfig=!0;let f=n||t?"pino.transport":d;return JTn(p(d),c,s,a,f);function p(h){if(h=l[h]||h,det(h)||h.indexOf("file://")===0)return h;if(h==="pino/file")return Fce(__dirname,"..","file.js");let m;for(let y of u)try{let g=y==="node:repl"?process.cwd()+BTn:y;m=jTn(g).resolve(h);break}catch{continue}if(!m)throw new Error(`unable to determine transport target for "${h}"`);return m}}fet.exports=$Tn});var BW=w((u4r,wet)=>{"use strict";var evn=Z("node:diagnostics_channel"),pet=j$e(),{mapHttpRequest:tvn,mapHttpResponse:nvn}=vce(),Bce=K$e(),het=Pce(),{lsCacheSym:rvn,chindingsSym:bet,writeSym:met,serializersSym:_et,formatOptsSym:get,endSym:ivn,stringifiersSym:Tet,stringifySym:vet,stringifySafeSym:Gce,wildcardFirstSym:Aet,nestedKeySym:svn,formattersSym:Ret,messageKeySym:ovn,errorKeySym:avn,nestedKeyStrSym:cvn,msgPrefixSym:HW}=Ck(),{isMainThread:uvn}=Z("worker_threads"),lvn=Hce(),[dvn]=process.versions.node.split(".").map(e=>Number(e)),yet=evn.tracingChannel("pino_asJson"),qce=dvn>=25?e=>JSON.stringify(e):pvn;function Lk(){}function fvn(e,t){if(!t)return n;return function(...i){t.call(this,i,n,e)};function n(r,...i){if(typeof r=="object"){let s=r;r!==null&&(r.method&&r.headers&&r.socket?r=tvn(r):typeof r.setHeader=="function"&&(r=nvn(r)));let o;s===null&&i.length===0?o=[null]:(s=i.shift(),o=i),typeof this[HW]=="string"&&s!==void 0&&s!==null&&(s=this[HW]+s),this[met](r,pet(s,o,this[get]),e)}else{let s=r===void 0?i.shift():r;typeof this[HW]=="string"&&s!==void 0&&s!==null&&(s=this[HW]+s),this[met](null,pet(s,i,this[get]),e)}}}function pvn(e){let t="",n=0,r=!1,i=255,s=e.length;if(s>100)return JSON.stringify(e);for(var o=0;o=32;o++)i=e.charCodeAt(o),(i===34||i===92)&&(t+=e.slice(n,o)+"\\",n=o,r=!0);return r?t+=e.slice(n):t=e,i<32?JSON.stringify(e):'"'+t+'"'}function hvn(e,t,n,r){if(yet.hasSubscribers===!1)return Eet.call(this,e,t,n,r);let i={instance:this,arguments};return yet.traceSync(Eet,i,this,e,t,n,r)}function Eet(e,t,n,r){let i=this[vet],s=this[Gce],o=this[Tet],a=this[ivn],c=this[bet],u=this[_et],l=this[Ret],d=this[ovn],f=this[avn],p=this[rvn][n]+r;p=p+c;let h;l.log&&(e=l.log(e));let m=o[Aet],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||qce)(h);break;default:h=(S||i)(h,s)}if(h===void 0)continue;let b=qce(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||qce)(h),g=',"'+d+'":'+h;break;default:h=(E||i)(h,s),g=',"'+d+'":'+h}}return this[svn]&&y?p+this[cvn]+y.slice(1)+"}"+g+a:p+y+g+a}function mvn(e,t){let n,r=e[bet],i=e[vet],s=e[Gce],o=e[Tet],a=o[Aet],c=e[_et],u=e[Ret].bindings;t=u(t);for(let l in t)if(n=t[l],((l.length<5||l!=="level"&&l!=="serializers"&&l!=="formatters"&&l!=="customLevels")&&t.hasOwnProperty(l)&&n!==void 0)===!0){if(n=c[l]?c[l](n):n,n=(o[l]||a||i)(n,s),n===void 0)continue;r+=',"'+l+'":'+n}return r}function gvn(e){return e.write!==e.constructor.prototype.write}function qW(e){let t=new Bce(e);return t.on("error",n),!e.sync&&uvn&&(het.register(t,yvn),t.on("close",function(){het.unregister(t)})),t;function n(r){if(r.code==="EPIPE"){t.write=Lk,t.end=Lk,t.flushSync=Lk,t.destroy=Lk;return}t.removeListener("error",n),t.emit("error",r)}}function yvn(e,t){e.destroyed||(t==="beforeExit"?(e.flush(),e.on("drain",function(){e.end()})):e.flushSync())}function Svn(e){return function(n,r,i={},s){if(typeof i=="string")s=qW({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=qW({dest:s})}else if(i instanceof Bce||i.writable||i._writableState)s=i,i={};else if(i.transport){if(i.transport instanceof Bce||i.transport.writable||i.transport._writableState)throw Error("option.transport do not allow stream, please pass to option directly. e.g. pino(transport)");if(i.transport.targets&&i.transport.targets.length&&i.formatters&&typeof i.formatters.level=="function")throw Error("option.transport.targets do not allow custom level formatters");let c;i.customLevels&&(c=i.useOnlyCustomLevels?i.customLevels:Object.assign({},i.levels,i.customLevels)),s=lvn({caller:r,...i.transport,levels:c})}if(i=Object.assign({},e,i),i.serializers=Object.assign({},e.serializers,i.serializers),i.formatters=Object.assign({},e.formatters,i.formatters),i.prettyPrint)throw new Error("prettyPrint option is no longer supported, see the pino-pretty package (https://github.com/pinojs/pino-pretty)");let{enabled:o,onChild:a}=i;return o===!1&&(i.level="silent"),a||(i.onChild=Lk),s||(gvn(process.stdout)?s=process.stdout:s=qW({fd:process.stdout.fd||1})),{opts:i,stream:s}}}function Evn(e,t){try{return JSON.stringify(e)}catch{try{return(t||this[Gce])(e)}catch{return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function bvn(e,t,n){return{level:e,bindings:t,log:n}}function _vn(e){let t=Number(e);return typeof e=="string"&&Number.isFinite(t)?t:e===void 0?1:e}wet.exports={noop:Lk,buildSafeSonicBoom:qW,asChindings:mvn,asJson:hvn,genLog:fvn,createArgsNormalizer:Svn,stringify:Evn,buildFormatters:bvn,normalizeDestFileDescriptor:_vn}});var GW=w((l4r,ket)=>{var Tvn={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},vvn={ASC:"ASC",DESC:"DESC"};ket.exports={DEFAULT_LEVELS:Tvn,SORTING_ORDER:vvn}});var Wce=w((d4r,Net)=>{"use strict";var{lsCacheSym:Avn,levelValSym:zce,useOnlyCustomLevelsSym:Rvn,streamSym:wvn,formattersSym:kvn,hooksSym:Ivn,levelCompSym:Iet}=Ck(),{noop:xvn,genLog:sT}=BW(),{DEFAULT_LEVELS:vh,SORTING_ORDER:xet}=GW(),Oet={fatal:e=>{let t=sT(vh.fatal,e);return function(...n){let r=this[wvn];if(t.call(this,...n),typeof r.flushSync=="function")try{r.flushSync()}catch{}}},error:e=>sT(vh.error,e),warn:e=>sT(vh.warn,e),info:e=>sT(vh.info,e),debug:e=>sT(vh.debug,e),trace:e=>sT(vh.trace,e)},Vce=Object.keys(vh).reduce((e,t)=>(e[vh[t]]=t,e),{}),Ovn=Object.keys(Vce).reduce((e,t)=>(e[t]='{"level":'+Number(t),e),{});function Nvn(e){let t=e[kvn].level,{labels:n}=e.levels,r={};for(let i in n){let s=t(n[i],Number(i));r[i]=JSON.stringify(s).slice(0,-1)}return e[Avn]=r,e}function Pvn(e,t){if(t)return!1;switch(e){case"fatal":case"error":case"warn":case"info":case"debug":case"trace":return!0;default:return!1}}function Cvn(e){let{labels:t,values:n}=this.levels;if(typeof e=="number"){if(t[e]===void 0)throw Error("unknown level value"+e);e=t[e]}if(n[e]===void 0)throw Error("unknown level "+e);let r=this[zce],i=this[zce]=n[e],s=this[Rvn],o=this[Iet],a=this[Ivn].logMethod;for(let c in n){if(o(n[c],i)===!1){this[c]=xvn;continue}this[c]=Pvn(c,s)?Oet[c](a):sT(n[c],a)}this.emit("level-change",e,i,t[r],r,this)}function Mvn(e){let{levels:t,levelVal:n}=this;return t&&t.labels?t.labels[n]:""}function Lvn(e){let{values:t}=this.levels,n=t[e];return n!==void 0&&this[Iet](n,this[zce])}function Dvn(e,t,n){return e===xet.DESC?t<=n:t>=n}function Uvn(e){return typeof e=="string"?Dvn.bind(null,e):e}function Fvn(e=null,t=!1){let n=e?Object.keys(e).reduce((s,o)=>(s[e[o]]=o,s),{}):null,r=Object.assign(Object.create(Object.prototype,{Infinity:{value:"silent"}}),t?null:Vce,n),i=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),t?null:vh,e);return{labels:r,values:i}}function jvn(e,t,n){if(typeof e=="number"){if(![].concat(Object.keys(t||{}).map(s=>t[s]),n?[]:Object.keys(Vce).map(s=>+s),1/0).includes(e))throw Error(`default level:${e} must be included in custom levels`);return}let r=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),n?null:vh,t);if(!(e in r))throw Error(`default level:${e} must be included in custom levels`)}function Hvn(e,t){let{labels:n,values:r}=e;for(let i in t){if(i in r)throw Error("levels cannot be overridden");if(t[i]in n)throw Error("pre-existing level values cannot be used for new levels")}}function qvn(e){if(typeof e!="function"&&!(typeof e=="string"&&Object.values(xet).includes(e)))throw new Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}Net.exports={initialLsCache:Ovn,genLsCache:Nvn,levelMethods:Oet,getLevel:Mvn,setLevel:Cvn,isLevelEnabled:Lvn,mappings:Fvn,assertNoLevelCollisions:Hvn,assertDefaultLevelFound:jvn,genLevelComparison:Uvn,assertLevelComparison:qvn}});var Kce=w((f4r,Pet)=>{"use strict";Pet.exports={version:"10.3.1"}});var Het=w((h4r,jet)=>{"use strict";var{EventEmitter:Bvn}=Z("node:events"),{lsCacheSym:Gvn,levelValSym:zvn,setLevelSym:Yce,getLevelSym:Cet,chindingsSym:VW,mixinSym:Vvn,asJsonSym:Let,writeSym:Wvn,mixinMergeStrategySym:Kvn,timeSym:Zvn,timeSliceIndexSym:Yvn,streamSym:Det,serializersSym:oT,formattersSym:SM,errorKeySym:Jvn,messageKeySym:Xvn,useOnlyCustomLevelsSym:Qvn,needsMetadataGsym:$vn,redactFmtSym:eAn,stringifySym:tAn,formatOptsSym:nAn,stringifiersSym:rAn,msgPrefixSym:Jce,hooksSym:iAn}=Ck(),{getLevel:sAn,setLevel:oAn,isLevelEnabled:aAn,mappings:cAn,initialLsCache:uAn,genLsCache:lAn,assertNoLevelCollisions:dAn}=Wce(),{asChindings:Xce,asJson:fAn,buildFormatters:Zce,stringify:Met,noop:Uet}=BW(),{version:pAn}=Kce(),hAn=kce(),mAn=class{},Fet={constructor:mAn,child:gAn,bindings:yAn,setBindings:SAn,flush:_An,isLevelEnabled:aAn,version:pAn,get level(){return this[Cet]()},set level(e){this[Yce](e)},get levelVal(){return this[zvn]},set levelVal(e){throw Error("levelVal is read-only")},get msgPrefix(){return this[Jce]},get[Symbol.toStringTag](){return"Pino"},[Gvn]:uAn,[Wvn]:bAn,[Let]:fAn,[Cet]:sAn,[Yce]:oAn};Object.setPrototypeOf(Fet,Bvn.prototype);jet.exports=function(){return Object.create(Fet)};var zW=e=>e;function gAn(e,t){if(!e)throw Error("missing bindings for child Pino");let n=this[oT],r=this[SM],i=Object.create(this);if(t==null)return i[SM].bindings!==zW&&(i[SM]=Zce(r.level,zW,r.log)),i[VW]=Xce(i,e),this.onChild!==Uet&&this.onChild(i),i;if(t.hasOwnProperty("serializers")===!0){i[oT]=Object.create(null);for(let u in n)i[oT][u]=n[u];let a=Object.getOwnPropertySymbols(n);for(var s=0;s{"use strict";var{hasOwnProperty:EM}=Object.prototype,cT=eue();cT.configure=eue;cT.stringify=cT;cT.default=cT;tue.stringify=cT;tue.configure=eue;Get.exports=cT;var TAn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function YS(e){return e.length<5e3&&!TAn.test(e)?`"${e}"`:JSON.stringify(e)}function Qce(e,t){if(e.length>200||t)return e.sort(t);for(let n=1;nr;)e[i]=e[i-1],i--;e[i]=r}return e}var vAn=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function $ce(e){return vAn.call(e)!==void 0&&e.length!==0}function qet(e,t,n){e.length= 1`)}return n===void 0?1/0:n}function aT(e){return e===1?"1 item":`${e} items`}function kAn(e){let t=new Set;for(let n of e)(typeof n=="string"||typeof n=="number")&&t.add(String(n));return t}function IAn(e){if(EM.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 eue(e){e={...e};let t=IAn(e);t&&(e.bigint===void 0&&(e.bigint=!1),"circularValue"in e||(e.circularValue=Error));let n=AAn(e),r=wAn(e,"bigint"),i=RAn(e),s=typeof i=="function"?i:void 0,o=Bet(e,"maximumDepth"),a=Bet(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 YS(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+=`${_}"... ${aT(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}"${aT(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 YS(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+=`${_}"... ${aT(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}${YS(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 YS(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}"... ${aT(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}"...": "${aT(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 YS(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+=`,"... ${aT(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}"...":"${aT(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,[],kAn(h),y,"")}if(y.length!==0)return l("",p,[],y,"")}return d("",p,[])}return f}});var Zet=w((m4r,Ket)=>{"use strict";var nue=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:Wet}=GW(),xAn=Wet.info;function OAn(e,t){e=e||[],t=t||{dedupe:!1};let n=Object.create(Wet);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,[nue]:!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=NAn(h.length,t.dedupe);CAn(g,h.length,t.dedupe);g=PAn(g,t.dedupe))if(f=h[g],f.level<=p){if(m!==0&&m!==f.level)break;if(y=f.stream,y[nue]){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=xAn;let g={stream:p,level:y,levelVal:void 0,id:++r.lastId};return h.unshift(g),h.sort(Vet),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(Vet),this.minLevel=f.length>0?f[0].level:-1),r}function u(){for(let{stream:d}of this.streams)typeof d.flushSync=="function"&&d.flushSync(),d.end()}function l(d){let f=new Array(this.streams.length);for(let p=0;p=0:e{"use strict";var MAn=Z("node:os"),ntt=vce(),LAn=Ace(),DAn=kce(),rtt=U$e(),UAn=Het(),itt=Ck(),{configure:FAn}=zet(),{assertDefaultLevelFound:jAn,mappings:stt,genLsCache:HAn,genLevelComparison:qAn,assertLevelComparison:BAn}=Wce(),{DEFAULT_LEVELS:ott,SORTING_ORDER:GAn}=GW(),{createArgsNormalizer:zAn,asChindings:VAn,buildSafeSonicBoom:Yet,buildFormatters:WAn,stringify:rue,normalizeDestFileDescriptor:Jet,noop:KAn}=BW(),{version:ZAn}=Kce(),{chindingsSym:Xet,redactFmtSym:YAn,serializersSym:Qet,timeSym:JAn,timeSliceIndexSym:XAn,streamSym:QAn,stringifySym:$et,stringifySafeSym:iue,stringifiersSym:ett,setLevelSym:$An,endSym:eRn,formatOptsSym:tRn,messageKeySym:nRn,errorKeySym:rRn,nestedKeySym:iRn,mixinSym:sRn,levelCompSym:oRn,useOnlyCustomLevelsSym:aRn,formattersSym:ttt,hooksSym:cRn,nestedKeyStrSym:uRn,mixinMergeStrategySym:lRn,msgPrefixSym:dRn}=itt,{epochTime:att,nullTime:fRn}=rtt,{pid:pRn}=process,hRn=MAn.hostname(),mRn=ntt.err,gRn={level:"info",levelComparison:GAn.ASC,levels:ott,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:pRn,hostname:hRn},serializers:Object.assign(Object.create(null),{err:mRn}),formatters:Object.assign(Object.create(null),{bindings(e){return e},level(e,t){return{level:t}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:att,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},yRn=zAn(gRn),SRn=Object.assign(Object.create(null),ntt);function sue(...e){let t={},{opts:n,stream:r}=yRn(t,LAn(),...e);n.level&&typeof n.level=="string"&&ott[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=FAn({maximumDepth:_,maximumBreadth:T}),k=WAn(S.level,S.bindings,S.log),N=rue.bind({[iue]:x}),P=i?DAn(i,N):{},C=i?{stringify:P[YAn]}:{stringify:N},F="}"+(s?`\r +`+n)}function J_(e,t,n,r,i,s){if(e.listenerCount("wsClientError")){let o=new Error(i);Error.captureStackTrace(o,J_),e.emit("wsClientError",o,n,t)}else cM(n,r,i,s)}});var mJe=w((v4r,hJe)=>{"use strict";var wgn=iJe(),kgn=ZV(),Ign=_k(),xgn=pae(),Ogn=gae(),Pgn=Tae(),Of=$V(),pJe=fJe();Of.createWebSocketStream=wgn;Of.extension=kgn;Of.PerMessageDeflate=Ign;Of.Receiver=xgn;Of.Sender=Ogn;Of.Server=pJe;Of.subprotocol=Pgn;Of.WebSocket=Of;Of.WebSocketServer=pJe;hJe.exports=Of});var Rae=w((R4r,gJe)=>{gJe.exports=Y("stream")});var TJe=w((A4r,_Je)=>{"use strict";function yJe(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 SJe(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 tW.alloc(0);for(var r=tW.allocUnsafe(n>>>0),i=this.head,s=0;i;)jgn(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=tW.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:Fgn,value:function(n,r){return Aae(this,SJe(SJe({},r),{},{depth:0,customInspect:!1}))}}]),e})()});var kae=w((w4r,RJe)=>{"use strict";function Hgn(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(wae,this,e)):process.nextTick(wae,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(nW,n):(n._writableState.errorEmitted=!0,process.nextTick(vJe,n,s)):process.nextTick(vJe,n,s):t?(process.nextTick(nW,n),t(s)):process.nextTick(nW,n)}),this)}function vJe(e,t){wae(e,t),nW(e)}function nW(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function qgn(){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 wae(e,t){e.emit("error",t)}function Bgn(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}RJe.exports={destroy:Hgn,undestroy:qgn,errorOrDestroy:Bgn}});var zS=w((k4r,kJe)=>{"use strict";var wJe={};function Rd(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,wJe[e]=i}function AJe(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 zgn(e,t,n){return e.substr(!n||n<0?0:+n,t.length)===t}function Ggn(e,t,n){return(n===void 0||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}function Vgn(e,t,n){return typeof n!="number"&&(n=0),n+t.length>e.length?!1:e.indexOf(t,n)!==-1}Rd("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);Rd("ERR_INVALID_ARG_TYPE",function(e,t,n){let r;typeof t=="string"&&zgn(t,"not ")?(r="must not be",t=t.replace(/^not /,"")):r="must be";let i;if(Ggn(e," argument"))i=`The ${e} ${r} ${AJe(t,"type")}`;else{let s=Vgn(e,".")?"property":"argument";i=`The "${e}" ${s} ${r} ${AJe(t,"type")}`}return i+=`. Received type ${typeof n}`,i},TypeError);Rd("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Rd("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});Rd("ERR_STREAM_PREMATURE_CLOSE","Premature close");Rd("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});Rd("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Rd("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Rd("ERR_STREAM_WRITE_AFTER_END","write after end");Rd("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Rd("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);Rd("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");kJe.exports.codes=wJe});var Iae=w((I4r,IJe)=>{"use strict";var Wgn=zS().codes.ERR_INVALID_OPT_VALUE;function Kgn(e,t,n){return e.highWaterMark!=null?e.highWaterMark:t?e[n]:null}function Ygn(e,t,n,r){var i=Kgn(t,r,n);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var s=r?n:"highWaterMark";throw new Wgn(s,i)}return Math.floor(i)}return e.objectMode?16:16*1024}IJe.exports={getHighWaterMark:Ygn}});var xJe=w((x4r,xae)=>{typeof Object.create=="function"?xae.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:xae.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 X_=w((O4r,Pae)=>{try{if(Oae=Y("util"),typeof Oae.inherits!="function")throw"";Pae.exports=Oae.inherits}catch{Pae.exports=xJe()}var Oae});var PJe=w((P4r,OJe)=>{OJe.exports=Y("util").deprecate});var Mae=w((N4r,UJe)=>{"use strict";UJe.exports=gs;function CJe(e){var t=this;this.next=null,this.entry=null,this.finish=function(){_yn(t,e)}}var kk;gs.WritableState=lM;var Zgn={deprecate:PJe()},MJe=Rae(),iW=Y("buffer").Buffer,Jgn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Xgn(e){return iW.from(e)}function Qgn(e){return iW.isBuffer(e)||e instanceof Jgn}var Cae=kae(),$gn=Iae(),eyn=$gn.getHighWaterMark,GS=zS().codes,tyn=GS.ERR_INVALID_ARG_TYPE,nyn=GS.ERR_METHOD_NOT_IMPLEMENTED,ryn=GS.ERR_MULTIPLE_CALLBACK,iyn=GS.ERR_STREAM_CANNOT_PIPE,syn=GS.ERR_STREAM_DESTROYED,oyn=GS.ERR_STREAM_NULL_VALUES,ayn=GS.ERR_STREAM_WRITE_AFTER_END,cyn=GS.ERR_UNKNOWN_ENCODING,Ik=Cae.errorOrDestroy;X_()(gs,MJe);function uyn(){}function lM(e,t,n){kk=kk||Q_(),e=e||{},typeof n!="boolean"&&(n=t instanceof kk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=eyn(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){gyn(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 CJe(this)}lM.prototype.getBuffer=function(){for(var t=this.bufferedRequest,n=[];t;)n.push(t),t=t.next;return n};(function(){try{Object.defineProperty(lM.prototype,"buffer",{get:Zgn.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var rW;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(rW=Function.prototype[Symbol.hasInstance],Object.defineProperty(gs,Symbol.hasInstance,{value:function(t){return rW.call(this,t)?!0:this!==gs?!1:t&&t._writableState instanceof lM}})):rW=function(t){return t instanceof this};function gs(e){kk=kk||Q_();var t=this instanceof kk;if(!t&&!rW.call(gs,this))return new gs(e);this._writableState=new lM(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)),MJe.call(this)}gs.prototype.pipe=function(){Ik(this,new iyn)};function lyn(e,t){var n=new ayn;Ik(e,n),process.nextTick(t,n)}function dyn(e,t,n,r){var i;return n===null?i=new oyn:typeof n!="string"&&!t.objectMode&&(i=new tyn("chunk",["string","Buffer"],n)),i?(Ik(e,i),process.nextTick(r,i),!1):!0}gs.prototype.write=function(e,t,n){var r=this._writableState,i=!1,s=!r.objectMode&&Qgn(e);return s&&!iW.isBuffer(e)&&(e=Xgn(e)),typeof t=="function"&&(n=t,t=null),s?t="buffer":t||(t=r.defaultEncoding),typeof n!="function"&&(n=uyn),r.ending?lyn(this,n):(s||dyn(this,r,e,n))&&(r.pendingcb++,i=pyn(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&&DJe(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 cyn(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(gs.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function fyn(e,t,n){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=iW.from(t,n)),t}Object.defineProperty(gs.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function pyn(e,t,n,r,i,s){if(!n){var o=fyn(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 Tyn=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};jJe.exports=Eh;var FJe=Uae(),Lae=Mae();X_()(Eh,FJe);for(Dae=Tyn(Lae.prototype),sW=0;sW{var aW=Y("buffer"),_h=aW.Buffer;function HJe(e,t){for(var n in e)t[n]=e[n]}_h.from&&_h.alloc&&_h.allocUnsafe&&_h.allocUnsafeSlow?qJe.exports=aW:(HJe(aW,Fae),Fae.Buffer=$_);function $_(e,t,n){return _h(e,t,n)}$_.prototype=Object.create(_h.prototype);HJe(_h,$_);$_.from=function(e,t,n){if(typeof e=="number")throw new TypeError("Argument must not be a number");return _h(e,t,n)};$_.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};$_.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return _h(e)};$_.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return aW.SlowBuffer(e)}});var qae=w(GJe=>{"use strict";var Hae=BJe().Buffer,zJe=Hae.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 Ayn(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 wyn(e){var t=Ayn(e);if(typeof t!="string"&&(Hae.isEncoding===zJe||!zJe(e)))throw new Error("Unknown encoding: "+e);return t||e}GJe.StringDecoder=dM;function dM(e){this.encoding=wyn(e);var t;switch(this.encoding){case"utf16le":this.text=Nyn,this.end=Cyn,t=4;break;case"utf8":this.fillLast=xyn,t=4;break;case"base64":this.text=Myn,this.end=Dyn,t=3;break;default:this.write=Lyn,this.end=Uyn;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Hae.allocUnsafe(t)}dM.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 kyn(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 Iyn(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 xyn(e){var t=this.lastTotal-this.lastNeed,n=Iyn(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 Oyn(e,t){var n=kyn(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 Pyn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function Nyn(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 Cyn(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 Myn(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 Dyn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Lyn(e){return e.toString(this.encoding)}function Uyn(e){return e&&e.length?this.write(e):""}});var cW=w((D4r,KJe)=>{"use strict";var VJe=zS().codes.ERR_STREAM_PREMATURE_CLOSE;function Fyn(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 uW;function VS(e,t,n){return t=qyn(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qyn(e){var t=Byn(e,"string");return typeof t=="symbol"?t:String(t)}function Byn(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 zyn=cW(),WS=Symbol("lastResolve"),eT=Symbol("lastReject"),fM=Symbol("error"),lW=Symbol("ended"),tT=Symbol("lastPromise"),Bae=Symbol("handlePromise"),nT=Symbol("stream");function KS(e,t){return{value:e,done:t}}function Gyn(e){var t=e[WS];if(t!==null){var n=e[nT].read();n!==null&&(e[tT]=null,e[WS]=null,e[eT]=null,t(KS(n,!1)))}}function Vyn(e){process.nextTick(Gyn,e)}function Wyn(e,t){return function(n,r){e.then(function(){if(t[lW]){n(KS(void 0,!0));return}t[Bae](n,r)},r)}}var Kyn=Object.getPrototypeOf(function(){}),Yyn=Object.setPrototypeOf((uW={get stream(){return this[nT]},next:function(){var t=this,n=this[fM];if(n!==null)return Promise.reject(n);if(this[lW])return Promise.resolve(KS(void 0,!0));if(this[nT].destroyed)return new Promise(function(o,a){process.nextTick(function(){t[fM]?a(t[fM]):o(KS(void 0,!0))})});var r=this[tT],i;if(r)i=new Promise(Wyn(r,this));else{var s=this[nT].read();if(s!==null)return Promise.resolve(KS(s,!1));i=new Promise(this[Bae])}return this[tT]=i,i}},VS(uW,Symbol.asyncIterator,function(){return this}),VS(uW,"return",function(){var t=this;return new Promise(function(n,r){t[nT].destroy(null,function(i){if(i){r(i);return}n(KS(void 0,!0))})})}),uW),Kyn),Zyn=function(t){var n,r=Object.create(Yyn,(n={},VS(n,nT,{value:t,writable:!0}),VS(n,WS,{value:null,writable:!0}),VS(n,eT,{value:null,writable:!0}),VS(n,fM,{value:null,writable:!0}),VS(n,lW,{value:t._readableState.endEmitted,writable:!0}),VS(n,Bae,{value:function(s,o){var a=r[nT].read();a?(r[tT]=null,r[WS]=null,r[eT]=null,s(KS(a,!1))):(r[WS]=s,r[eT]=o)},writable:!0}),n));return r[tT]=null,zyn(t,function(i){if(i&&i.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=r[eT];s!==null&&(r[tT]=null,r[WS]=null,r[eT]=null,s(i)),r[fM]=i;return}var o=r[WS];o!==null&&(r[tT]=null,r[WS]=null,r[eT]=null,o(KS(void 0,!0))),r[lW]=!0}),t.on("readable",Vyn.bind(null,r)),r};YJe.exports=Zyn});var $Je=w((U4r,QJe)=>{"use strict";function JJe(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 Jyn(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var s=e.apply(t,n);function o(c){JJe(s,r,i,o,a,"next",c)}function a(c){JJe(s,r,i,o,a,"throw",c)}o(void 0)})}}function XJe(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 Xyn(e){for(var t=1;t{"use strict";uXe.exports=nr;var xk;nr.ReadableState=rXe;var F4r=Y("events").EventEmitter,nXe=function(t,n){return t.listeners(n).length},hM=Rae(),dW=Y("buffer").Buffer,rSn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function iSn(e){return dW.from(e)}function sSn(e){return dW.isBuffer(e)||e instanceof rSn}var zae=Y("util"),An;zae&&zae.debuglog?An=zae.debuglog("stream"):An=function(){};var oSn=TJe(),Jae=kae(),aSn=Iae(),cSn=aSn.getHighWaterMark,fW=zS().codes,uSn=fW.ERR_INVALID_ARG_TYPE,lSn=fW.ERR_STREAM_PUSH_AFTER_EOF,dSn=fW.ERR_METHOD_NOT_IMPLEMENTED,fSn=fW.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,Ok,Gae,Vae;X_()(nr,hM);var pM=Jae.errorOrDestroy,Wae=["error","close","destroy","pause","resume"];function pSn(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 rXe(e,t,n){xk=xk||Q_(),e=e||{},typeof n!="boolean"&&(n=t instanceof xk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=cSn(this,e,"readableHighWaterMark",n),this.buffer=new oSn,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&&(Ok||(Ok=qae().StringDecoder),this.decoder=new Ok(e.encoding),this.encoding=e.encoding)}function nr(e){if(xk=xk||Q_(),!(this instanceof nr))return new nr(e);var t=this instanceof xk;this._readableState=new rXe(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),hM.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=Jae.destroy;nr.prototype._undestroy=Jae.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=dW.from(e,t),t=""),r=!0),iXe(this,e,t,!1,r)};nr.prototype.unshift=function(e){return iXe(this,e,null,!0,!1)};function iXe(e,t,n,r,i){An("readableAddChunk",t);var s=e._readableState;if(t===null)s.reading=!1,gSn(e,s);else{var o;if(i||(o=hSn(s,t)),o)pM(e,o);else if(s.objectMode||t&&t.length>0)if(typeof t!="string"&&!s.objectMode&&Object.getPrototypeOf(t)!==dW.prototype&&(t=iSn(t)),r)s.endEmitted?pM(e,new fSn):Kae(e,s,t,!0);else if(s.ended)pM(e,new lSn);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||t.length!==0?Kae(e,s,t,!1):Zae(e,s)):Kae(e,s,t,!1)}else r||(s.reading=!1,Zae(e,s))}return!s.ended&&(s.length=eXe?e=eXe:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function tXe(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=mSn(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?Yae(this):pW(this),null;if(e=tXe(e,t),e===0&&t.ended)return t.length===0&&Yae(this),null;var r=t.needReadable;An("need readable",r),(t.length===0||t.length-e0?i=aXe(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&&Yae(this)),i!==null&&this.emit("data",i),i};function gSn(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?pW(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,sXe(e)))}}function pW(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(sXe,e))}function sXe(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,Xae(e)}function Zae(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(ySn,e,t))}function ySn(e,t){for(;!t.reading&&!t.ended&&(t.length1&&cXe(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),nXe(e,"error")===0&&pM(e,g)}pSn(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 SSn(e){return function(){var n=e._readableState;An("pipeOnDrain",n.awaitDrain),n.awaitDrain&&n.awaitDrain--,n.awaitDrain===0&&nXe(e,"data")&&(n.flowing=!0,Xae(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?pW(this):r.reading||process.nextTick(bSn,this)),n};nr.prototype.addListener=nr.prototype.on;nr.prototype.removeListener=function(e,t){var n=hM.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(oXe,this),n};nr.prototype.removeAllListeners=function(e){var t=hM.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(oXe,this),t};function oXe(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 bSn(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,ESn(this,e)),e.paused=!1,this};function ESn(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(_Sn,e,t))}function _Sn(e,t){An("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),Xae(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 Xae(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 Yae(e){var t=e._readableState;An("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(TSn,t,e))}function TSn(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 Vae===void 0&&(Vae=$Je()),Vae(nr,e,t)});function cXe(e,t){for(var n=0,r=e.length;n{"use strict";dXe.exports=tg;var hW=zS().codes,vSn=hW.ERR_METHOD_NOT_IMPLEMENTED,RSn=hW.ERR_MULTIPLE_CALLBACK,ASn=hW.ERR_TRANSFORM_ALREADY_TRANSFORMING,wSn=hW.ERR_TRANSFORM_WITH_LENGTH_0,mW=Q_();X_()(tg,mW);function kSn(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(r===null)return this.emit("error",new RSn);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";pXe.exports=mM;var fXe=Qae();X_()(mM,fXe);function mM(e){if(!(this instanceof mM))return new mM(e);fXe.call(this,e)}mM.prototype._transform=function(e,t,n){n(null,e)}});var bXe=w((B4r,SXe)=>{"use strict";var $ae;function xSn(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var yXe=zS().codes,OSn=yXe.ERR_MISSING_ARGS,PSn=yXe.ERR_STREAM_DESTROYED;function mXe(e){if(e)throw e}function NSn(e){return e.setHeader&&typeof e.abort=="function"}function CSn(e,t,n,r){r=xSn(r);var i=!1;e.on("close",function(){i=!0}),$ae===void 0&&($ae=cW()),$ae(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,NSn(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();r(o||new PSn("pipe"))}}}function gXe(e){e()}function MSn(e,t){return e.pipe(t)}function DSn(e){return!e.length||typeof e[e.length-1]!="function"?mXe:e.pop()}function LSn(){for(var e=arguments.length,t=new Array(e),n=0;n0;return CSn(o,c,u,function(l){i||(i=l),l&&s.forEach(gXe),!c&&(s.forEach(gXe),r(i))})});return t.reduce(MSn)}SXe.exports=LSn});var EXe=w((Ad,yM)=>{var gM=Y("stream");process.env.READABLE_STREAM==="disable"&&gM?(yM.exports=gM.Readable,Object.assign(yM.exports,gM),yM.exports.Stream=gM):(Ad=yM.exports=Uae(),Ad.Stream=gM||Ad,Ad.Readable=Ad,Ad.Writable=Mae(),Ad.Duplex=Q_(),Ad.Transform=Qae(),Ad.PassThrough=hXe(),Ad.finished=cW(),Ad.pipeline=bXe())});var vXe=w((z4r,TXe)=>{TXe.exports=_Xe;function _Xe(e,t){if(e&&t)return _Xe(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 RXe=vXe();ece.exports=RXe(gW);ece.exports.strict=RXe(AXe);gW.proto=gW(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return gW(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return AXe(this)},configurable:!0})});function gW(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function AXe(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 xXe=w((V4r,IXe)=>{var USn=wXe(),FSn=function(){},jSn=global.Bare?queueMicrotask:process.nextTick.bind(process),HSn=function(e){return e.setHeader&&typeof e.abort=="function"},qSn=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},kXe=function(e,t,n){if(typeof t=="function")return kXe(e,null,t);t||(t={}),n=USn(n||FSn);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(){jSn(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 HSn(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)),qSn(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)}};IXe.exports=kXe});var PXe=w((W4r,OXe)=>{OXe.exports=BSn;function BSn(e){var t=e._readableState;return t?t.objectMode||typeof e._duplexState=="number"?e.read():e.read(zSn(t)):null}function zSn(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 LXe=w((K4r,DXe)=>{var yW=EXe(),NXe=xXe(),GSn=X_(),VSn=PXe(),CXe=Buffer.from&&Buffer.from!==Uint8Array.from?Buffer.from([0]):new Buffer([0]),tce=function(e,t){e._corked?e.once("uncork",t):t()},WSn=function(e,t){e._autoDestroy&&e.destroy(t)},MXe=function(e,t){return function(n){n?WSn(e,n.message==="premature close"?null:n):t&&!e._ended&&e.end()}},KSn=function(e,t){if(!e||e._writableState&&e._writableState.finished)return t();if(e._writableState)return e.end(t);e.end(),t()},YSn=function(){},ZSn=function(e){return new yW.Readable({objectMode:!0,highWaterMark:16}).wrap(e)},_a=function(e,t,n){if(!(this instanceof _a))return new _a(e,t,n);yW.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)};GSn(_a,yW.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=NXe(e,{writable:!0,readable:!1},MXe(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=NXe(e,{writable:!1,readable:!0},MXe(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:ZSn(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=VSn(this._readable2))!==null;)this.destroyed||(this._drained=this.push(e));this._forwarding=!1}};_a.prototype.destroy=function(e,t){if(t||(t=YSn),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 tce(this,this._write.bind(this,e,t,n));if(e===CXe)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"),tce(this,function(){KSn(t._forwardEnd&&t._writable,function(){t._writableState.prefinished===!1&&(t._writableState.prefinished=!0),t.emit("prefinish"),tce(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(CXe),yW.Writable.prototype.end.call(this,n))};DXe.exports=_a});var HXe=w((Y4r,bW)=>{"use strict";var{ServerResponse:JSn}=Y("node:http"),{PassThrough:UXe}=Y("node:stream"),{randomBytes:XSn}=Y("node:crypto"),QSn=JC(),FXe=mJe(),jXe=LXe(),rT=Symbol("ws-socket"),SW=Symbol("ws-head"),$Sn=/HTTP\/1.1 (\d+)/u;function nce(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 FXe.Server(s);e.decorate("websocketServer",a);async function c(h="/",m={},g={}){let y=new UXe,b=new UXe,S=new jXe(y,b),E=new jXe(b,y),_=new FXe(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($Sn.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":XSn(16).toString("base64")},httpVersion:"1.1",url:h,[rT]:S,[SW]:T};return o.emit("upgrade",P,P[rT],P[SW]),x}e.decorate("injectWS",c);function u(h,m,g){h[rT]=m,h[SW]=g;let y=new JSn(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[rT],h[SW],g=>{a.emit("connection",g,h),g.on("error",y=>{e.log.error(y)}),m(g)})};e.addHook("onRequest",(h,m,g)=>{h.raw[rT]?h.ws=!0:h.ws=!1,g()}),e.addHook("onResponse",(h,m,g)=>{h.ws&&h.raw[rT].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[rT])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()}bW.exports=QSn(nce,{fastify:"5.x",name:"@fastify/websocket"});bW.exports.default=nce;bW.exports.fastifyWebsocket=nce});var BXe=w((Z4r,qXe)=>{"use strict";function ebn(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}}qXe.exports=ebn});var GXe=w((J4r,rce)=>{"use strict";var tbn=BXe();function zXe(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=tbn(nbn),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 nbn(){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 rbn(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=zXe(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}}rce.exports=zXe;rce.exports.promise=rbn});var _W=w((X4r,SM)=>{"use strict";var{format:ibn}=Y("node:util");function sbn(){return`${this.name} [${this.code}]: ${this.message}`}var EW=Symbol.for("fastify-error-generic");function Pk(e,t,n=500,r=Error,i=Pk.captureStackTrace){let s=e===EW;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=ibn(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},[EW]:{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[EW]},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=sbn,a}Pk.captureStackTrace=!0;var obn=Pk(EW,"Fastify Error",500,Error);SM.exports=Pk;SM.exports.FastifyError=obn;SM.exports.default=Pk;SM.exports.createError=Pk});var TW=w((Q4r,VXe)=>{"use strict";var{createError:YS}=_W();VXe.exports={AVV_ERR_EXPOSE_ALREADY_DEFINED:YS("AVV_ERR_EXPOSE_ALREADY_DEFINED","'%s' is already defined, specify an expose option for '%s'"),AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:YS("AVV_ERR_ATTRIBUTE_ALREADY_DEFINED","'%s' is already defined"),AVV_ERR_CALLBACK_NOT_FN:YS("AVV_ERR_CALLBACK_NOT_FN","Callback for '%s' hook is not a function. Received: '%s'"),AVV_ERR_PLUGIN_NOT_VALID:YS("AVV_ERR_PLUGIN_NOT_VALID","Plugin must be a function or a promise. Received: '%s'"),AVV_ERR_ROOT_PLG_BOOTED:YS("AVV_ERR_ROOT_PLG_BOOTED","Root plugin has already booted"),AVV_ERR_PARENT_PLG_LOADED:YS("AVV_ERR_PARENT_PLG_LOADED","Impossible to load '%s' plugin because the parent '%s' was already loaded"),AVV_ERR_READY_TIMEOUT:YS("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:YS("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 Nk=w(($4r,WXe)=>{"use strict";var abn=Symbol("avvio.Boot"),cbn=Symbol("isOnCloseHandler"),ubn=Symbol("avvio.ThenifyDoNotWrap"),lbn=Symbol("avvio.TimeTree.untrackNode"),dbn=Symbol("avvio.TimeTree.trackNode"),fbn=Symbol("avvio.TimeTree.getParent"),pbn=Symbol("avvio.TimeTree.getNode"),hbn=Symbol("avvio.TimeTree.addNode"),mbn=Symbol.for("plugin-meta");WXe.exports={kAvvio:abn,kIsOnCloseHandler:cbn,kThenifyDoNotWrap:ubn,kUntrackNode:lbn,kTrackNode:dbn,kGetParent:fbn,kGetNode:pbn,kAddNode:hbn,kPluginMeta:mbn}});var $Xe=w((eKr,QXe)=>{"use strict";var{kUntrackNode:KXe,kTrackNode:ice,kGetParent:YXe,kGetNode:ZXe,kAddNode:JXe}=Nk(),sce=class{constructor(){this.root=null,this.tableId=new Map,this.tableLabel=new Map}[ice](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])}[KXe](t){this.tableId.delete(t.id);let n=this.tableLabel.get(t.label);n.pop(),n.length===0&&this.tableLabel.delete(t.label)}[YXe](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}[ZXe](t){return this.tableId.get(t)}[JXe](t,n,r){let i=this[YXe](t);if(i===null)return this.root={parent:null,id:"root",label:n,nodes:[],start:r,stop:null,diff:-1},this[ice](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[ice](a),o}start(t,n,r=Date.now()){return this[JXe](t,n,r)}stop(t,n=Date.now()){let r=this[ZXe](t);r&&(r.stop=n,r.diff=r.stop-r.start||0,this[KXe](r))}toJSON(){return Object.assign({},this.root)}prettyPrint(){return XXe(this.toJSON())}};function XXe(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:gbn}=Y("node:util"),ybn=gbn("avvio");eQe.exports={debug:ybn}});var nQe=w((nKr,tQe)=>{"use strict";function Sbn(){let e={resolve:null,reject:null,promise:null};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}tQe.exports={createPromise:Sbn}});var sQe=w((rKr,iQe)=>{"use strict";var{kPluginMeta:rQe}=Nk();function bbn(e,t){return e[rQe]?.name?e[rQe].name:t?.name?t.name:e.name?e.name:e.toString().split(` +`).slice(0,2).map(n=>n.trim()).join(" -- ")}iQe.exports={getPluginName:bbn}});var RW=w((iKr,oQe)=>{"use strict";function Ebn(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}oQe.exports={isPromiseLike:Ebn}});var cQe=w((sKr,aQe)=>{"use strict";var{EventEmitter:_bn}=Y("node:events"),{inherits:Tbn}=Y("node:util"),{debug:Ta}=vW(),{createPromise:vbn}=nQe(),{AVV_ERR_PLUGIN_EXEC_TIMEOUT:Rbn}=TW(),{getPluginName:Abn}=sQe(),{isPromiseLike:wbn}=RW();function Ck(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=Abn(t,n),this.queue.pause(),this._error=null,this.loaded=!1,this._promise=null,this.startTime=null}Tbn(Ck,_bn);Ck.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 Rbn(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);wbn(a)?(Ta("exec: resolving promise",r),a.then(()=>process.nextTick(o),c=>process.nextTick(o,c))):n.length<3&&o()};Ck.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=vbn(),t=this._promise.promise,this.server?e():this.on("start",e)),t};Ck.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)};Ck.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=kbn,queueMicrotask(r)}};queueMicrotask(r),this.queue.resume()};function kbn(){}aQe.exports={Plugin:Ck}});var lQe=w((oKr,uQe)=>{"use strict";var{AVV_ERR_PLUGIN_NOT_VALID:oce}=TW();function Ibn(e){if(!(e&&(typeof e=="function"||typeof e.then=="function")))throw Array.isArray(e)?new oce("array"):e===null?new oce("null"):new oce(typeof e)}uQe.exports={validatePlugin:Ibn}});var fQe=w((aKr,dQe)=>{"use strict";function xbn(e){return e!==null&&typeof e=="object"&&typeof e.default=="function"}dQe.exports={isBundledOrTypescriptPlugin:xbn}});var mQe=w((cKr,hQe)=>{"use strict";var{debug:pQe}=vW(),{kThenifyDoNotWrap:ace}=Nk();function Obn(){if(this.booted){pQe("thenify returning undefined because we are already booted");return}if(this[ace]){this[ace]=!1;return}return pQe("thenify"),(e,t)=>this._loadRegistered().then(()=>(this[ace]=!0,e(this._server)),t)}hQe.exports={thenify:Obn}});var yQe=w((uKr,gQe)=>{"use strict";var{isPromiseLike:Pbn}=RW(),{kAvvio:Nbn}=Nk();function Cbn(e,t,n){let r;try{r=e.apply(e,t)}catch(i){n&&process.nextTick(n,i);return}Pbn(r)&&!r[Nbn]?r.then(()=>process.nextTick(n),i=>process.nextTick(n,i)):n&&process.nextTick(n)}gQe.exports={executeWithThenable:Cbn}});var wQe=w((lKr,AQe)=>{"use strict";var AW=GXe(),Mbn=Y("node:events").EventEmitter,Dbn=Y("node:util").inherits,{AVV_ERR_EXPOSE_ALREADY_DEFINED:bM,AVV_ERR_CALLBACK_NOT_FN:Mk,AVV_ERR_ROOT_PLG_BOOTED:Lbn,AVV_ERR_READY_TIMEOUT:Ubn,AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:Fbn}=TW(),{kAvvio:EQe,kIsOnCloseHandler:_Qe}=Nk(),{TimeTree:jbn}=$Xe(),{Plugin:TQe}=cQe(),{debug:Dk}=vW(),{validatePlugin:Hbn}=lQe(),{isBundledOrTypescriptPlugin:qbn}=fQe(),{isPromiseLike:Bbn}=RW(),{thenify:vQe}=mQe(),{executeWithThenable:SQe}=yQe();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 jbn,this._readyQ=AW(this,RQe,1),this._readyQ.pause(),this._readyQ.drain=()=>{this.emit("start"),this._readyQ.drain=bQe},this._closeQ=AW(this,Gbn,1),this._closeQ.pause(),this._closeQ.drain=()=>{this.emit("close"),this._closeQ.drain=bQe},this._doStart=null;let r=this;this._root=new TQe(AW(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=>{Dk("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()})}Dbn(Ms,Mbn);"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[EQe]=!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:vQe});Ms.prototype._addPlugin=function(e,t,n){if(qbn(e)&&(e=e.default),Hbn(e),t=t||{},this.booted)throw new Lbn;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 TQe(AW(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 bM(r,"use");if(n[r]=function(c,u){return t.use(c,u),this},n[i])throw new bM(i,"after");if(n[i]=function(c){return typeof c!="function"?t._loadRegistered():(t.after(cce(c,this)),this)},n[s])throw new bM(s,"ready");if(n[s]=function(c){if(c&&typeof c!="function")throw new Mk(s,typeof c);return t.ready(c?cce(c,this):void 0)},n[o])throw new bM(o,"onClose");if(n[o]=function(c){if(typeof c!="function")throw new Mk(o,typeof c);return t.onClose(Vbn(c,this)),this},n[a])throw new bM(a,"close");if(n[a]=function(c){if(c&&typeof c!="function")throw new Mk(a,typeof c);return c?(t.close(cce(c,this)),this):t.close()},n.then)throw new Fbn("then");Object.defineProperty(n,"then",{get:vQe.bind(t)}),n[EQe]=!0};Ms.prototype.after=function(e){if(!e)return this._loadRegistered();this._addPlugin(t.bind(this),{},!0);function t(n,r,i){RQe.call(this,e,i)}return this};Ms.prototype.onClose=function(e){if(typeof e!="function")throw new Mk("onClose",typeof e);return e[_Qe]=!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 Mk("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 Mk("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(Bbn(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){Dk("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 Dk("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 bQe(){}function RQe(e,t){let n=this._server,r=this._error;if(this._error=null,e.length===0)this._error=r,SQe(e,[],t);else if(e.length===1)SQe(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 zbn.call(this,e,r,n,t)}function zbn(e,t,n,r){let i=e.unwrappedName??e.name;Dk("setting up ready timeout",i,this._opts.timeout);let s=setTimeout(()=>{Dk("timed out",i),s=null;let a=new Ubn(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 Gbn(e,t){let n=this._server,r=e[_Qe];if(e.length===0||e.length===1){let i;r?i=e(n):i=e(this._error),i&&typeof i.then=="function"?(Dk("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 Vbn(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 cce(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)}}AQe.exports=Ms});var $s=w((dKr,kQe)=>{"use strict";var Wbn={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")};kQe.exports=Wbn});var xQe=w((fKr,wW)=>{"use strict";var{format:uce}=Y("node:util");function Kbn(e){return IQe({...e,name:"DeprecationWarning"})}function IQe({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=uce(n,o,a,c):o&&a?u=uce(n,o,a):o?u=uce(n,o):u=n,u},s}var lce={createWarning:IQe,createDeprecation:Kbn};wW.exports=lce;wW.exports.default=lce;wW.exports.processWarning=lce});var Lk=w((pKr,OQe)=>{"use strict";var{createWarning:EM}=xQe(),Ybn=EM({name:"FastifyWarning",code:"FSTWRN001",message:"The %s schema for %s: %s is missing. This may indicate the schema is not well specified.",unlimited:!0}),Zbn=EM({name:"FastifyWarning",code:"FSTWRN003",message:"The %s mixes async and callback styles that may lead to unhandled rejections. Please use only one of them.",unlimited:!0}),Jbn=EM({name:"FastifyWarning",code:"FSTWRN004",message:"It seems that you are overriding an errorHandler in the same scope, which can lead to subtle bugs.",unlimited:!0}),Xbn=EM({name:"FastifySecurity",code:"FSTSEC001",message:'You are using /%s/ Content-Type which may be vulnerable to CORS attack. Please make sure your RegExp start with "^" or include ";?" to proper detection of the essence MIME type.',unlimited:!0}),Qbn=EM({name:"FastifyWarning",code:"FSTDEP022",message:'The router options for %s property access is deprecated. Please use "options.routerOptions" instead for accessing router options. The router options will be removed in `fastify@6`.',unlimited:!0});OQe.exports={FSTWRN001:Ybn,FSTWRN003:Zbn,FSTWRN004:Jbn,FSTSEC001:Xbn,FSTDEP022:Qbn}});var Ko=w((hKr,kW)=>{"use strict";var je=_W(),iT={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 $bn(e,t){return t.cause=e,t}kW.exports=iT;kW.exports.appendStackTrace=$bn;kW.exports.AVVIO_ERRORS_MAP={AVV_ERR_CALLBACK_NOT_FN:iT.FST_ERR_PLUGIN_CALLBACK_NOT_FN,AVV_ERR_PLUGIN_NOT_VALID:iT.FST_ERR_PLUGIN_NOT_VALID,AVV_ERR_ROOT_PLG_BOOTED:iT.FST_ERR_ROOT_PLG_BOOTED,AVV_ERR_PARENT_PLG_LOADED:iT.FST_ERR_PARENT_PLUGIN_BOOTED,AVV_ERR_READY_TIMEOUT:iT.FST_ERR_PLUGIN_TIMEOUT,AVV_ERR_PLUGIN_EXEC_TIMEOUT:iT.FST_ERR_PLUGIN_TIMEOUT}});var ZS=w((mKr,jQe)=>{"use strict";var eEn=["onRoute","onRegister","onReady","onListen","preClose","onClose"],MQe=["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError","onRequestAbort"],tEn=MQe.concat(eEn),{FST_ERR_HOOK_INVALID_TYPE:nEn,FST_ERR_HOOK_INVALID_HANDLER:rEn,FST_ERR_SEND_UNDEFINED_ERR:IW,FST_ERR_HOOK_TIMEOUT:iEn,FST_ERR_HOOK_NOT_SUPPORTED:sEn,AVVIO_ERRORS_MAP:PQe,appendStackTrace:NQe}=Ko(),{kChildren:_M,kHooks:DQe,kRequestPayloadStream:CQe}=$s();function TM(){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=[]}TM.prototype=Object.create(null);TM.prototype.validate=function(e,t){if(typeof e!="string")throw new nEn;if(Array.isArray(this[e])===!1)throw new sEn(e);if(typeof t!="function")throw new rEn(e,Object.prototype.toString.call(t))};TM.prototype.add=function(e,t){this.validate(e,t),this[e].push(t)};function oEn(e){let t=new TM;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 LQe(e,t,n,r){let i=n[DQe][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=NQe(l,new iEn(e,f)):l=PQe[l.code]!=null?NQe(l,new PQe[l.code](l.message)):l,r(l);return}r()}function c(l){if(l){a(l);return}if(s===i.length&&o===n[_M].length){s===0&&o===0?a():t(function(f,p){a(f),p(f)});return}if(s===i.length&&o{"use strict";HQe.exports=function(){return{[Symbol.iterator]:function*(){},add(){},delete(){},has(){return!0}}}});var dce=w((yKr,zQe)=>{"use strict";var{kTestInternals:gEn}=$s();function BQe(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}zQe.exports={withResolvers:typeof Promise.withResolvers=="function"?Promise.withResolvers.bind(Promise):BQe,[gEn]:{withResolvers:BQe}}});var e$e=w((SKr,$Qe)=>{"use strict";var yEn=Y("node:http"),SEn=Y("node:https"),GQe=Y("node:http2"),bEn=Y("node:dns"),EEn=Y("node:os"),{kState:Ds,kOptions:_En,kServerBindings:TEn,kHttp2ServerSessions:sT}=$s(),{FSTWRN003:vEn}=Lk(),{onListenHookRunner:xW}=ZS(),{FST_ERR_REOPENED_CLOSE_SERVER:WQe,FST_ERR_REOPENED_SERVER:KQe,FST_ERR_LISTEN_OPTIONS_INVALID:REn,FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:AEn}=Ko(),wEn=qQe(),YQe=dce();$Qe.exports.createServer=kEn;function ZQe(e){return`Server listening at ${e}`}function kEn(e,t){let n=XQe(e,t);function r(u={port:0,host:"localhost"},l=void 0){if(typeof l=="function"&&(l.constructor.name==="AsyncFunction"&&vEn("listen method"),u.cb=l),u.signal){if(typeof u.signal.on!="function"&&typeof u.signal.addEventListener!="function")throw new REn("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}VQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,l(null,p),xW(this)})}:u.cb=(f,p)=>{if(f){l(f,p);return}this[Ds].listening=!0,l(null,p),xW(this)},l===void 0)return IEn.call(this,n,u).then(p=>{let{promise:h,resolve:m}=YQe.withResolvers();return d==="localhost"?VQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,m(p),xW(this)}):(m(p),xW(this)),h});this.ready(JQe.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 AEn;typeof a!="boolean"&&(a=s?"idle":!1);let c=!i&&a===!0?new Set:wEn();return{server:n,listen:r,forceCloseConnections:a,serverHasCloseAllConnections:i,serverHasCloseHttp2Sessions:o,keepAliveConnections:c}}function VQe(e,t,n,r,i){this[Ds].listening=!1,bEn.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[TEn].push(h),u===c&&i()}}),h=XQe(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,JQe.call(this,h,p)()}}if(c===0){i();return}let l=e.unref;e.unref=function(){l.call(e),e.emit("unref")}})}function JQe(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=QQe.call(this,e,t.listenTextResolver||ZQe);t.cb(null,i)}};return r=>{if(r!=null)return t.cb(r);if(this[Ds].listening&&this[Ds].closing)return t.cb(new WQe,null);if(this[Ds].listening)return t.cb(new KQe,null);e.once("error",n),this[Ds].closing||(e.once("listening",n),e.listen(t),this[Ds].listening=!0)}}function IEn(e,t){return this[Ds].listening&&this[Ds].closing?Promise.reject(new WQe):this[Ds].listening?Promise.reject(new KQe):this.ready().then(()=>{if(this[Ds].aborted)return;let{promise:n,resolve:r,reject:i}=YQe.withResolvers(),s=c=>{a(),this[Ds].listening=!1,i(c)},o=()=>{a(),this[Ds].listening=!0,r(QQe.call(this,e,t.listenTextResolver||ZQe))};function a(){e.removeListener("error",s),e.removeListener("listening",o)}return e.once("error",s),e.once("listening",o),e.listen(t),n})}function XQe(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"?GQe.createSecureServer(n,t):GQe.createServer(e.http,t);return i.on("session",s=>s.setTimeout(e.http2SessionTimeout,()=>{s.close()})),e.forceCloseConnections===!0&&(i.closeHttp2Sessions=OEn(i)),i.setTimeout(e.connectionTimeout),i}let r=n?SEn.createServer(n,t):yEn.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 xEn(e){return e.address==="0.0.0.0"?Object.values(EEn.networkInterfaces()).flatMap(t=>t.filter(n=>n.family==="IPv4")).sort(t=>t.internal?-1:1).map(t=>t.address):[e.address]}function QQe(e,t){let n;typeof e.address()=="string"?n=[e.address()]:(e.address().address.indexOf(":")===-1?n=xEn(e.address()).map(i=>i+":"+e.address().port):n=["["+e.address().address+"]:"+e.address().port],n=n.map(i=>"http"+(this[_En].https?"s":"")+"://"+i));for(let i of n)this.log.info(t(i));return n[0]}function OEn(e){return e[sT]=new Set,e.on("session",function(t){t.once("connect",function(){e[sT].add(t)}),t.once("close",function(){e[sT].delete(t)}),t.once("frameError",function(n,r,i){i===0&&e[sT].delete(t)}),t.once("goaway",function(){e[sT].delete(t)})}),function(){if(e[sT].size!==0)for(let n of e[sT])n.close()}}});var hce=w((bKr,r$e)=>{"use strict";var fce=/(?:^|;)\s*([\w!#$%&'*+.^`|~-]+)=([^;]*)/gm,t$e=/^[\w!#$%&'*+.^`|~-]+$/,n$e=/^[\w!#$%&'*+.^`|~-]+\s*$/,pce=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();t$e.test(c)===!0&&n$e.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(t$e.test(s)===!1||n$e.test(o)===!1)return;this.#i=s,this.#e=o,this.#t=!0,this.#n=!1;let a=fce.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=fce.exec(i);continue}this.#r.set(c,u.slice(1,u.length-1))}else this.#r.set(c,u);a=fce.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}};r$e.exports=pce});var OW=w((EKr,i$e)=>{"use strict";var{kReplyHasStatusCode:PEn}=$s();function NEn(e,t){if(!e[PEn]||e.statusCode===200){let n=t&&(t.statusCode||t.status);e.code(n>=400?n:500)}}i$e.exports={setErrorStatusCode:NEn}});var mce=w((_Kr,o$e)=>{"use strict";var{kReplyIsError:s$e,kReplyHijacked:CEn}=$s(),{setErrorStatusCode:MEn}=OW(),DEn=Y("node:diagnostics_channel"),RM=DEn.tracingChannel("fastify.request.handler");function LEn(e,t,n){n&&(n.async=!0),e.then(function(r){if(t[CEn]!==!0){n&&RM.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[s$e]=!0,t.send(i)}}finally{n&&RM.asyncEnd.publish(n)}}},function(r){n&&(n.error=r,MEn(t,r),RM.error.publish(n),RM.asyncStart.publish(n));try{if(t.sent===!0){t.log.error({err:r},"Promise errored, but reply.sent = true was set");return}t[s$e]=!0,t.send(r)}catch(i){t.send(i)}finally{n&&RM.asyncEnd.publish(n)}})}o$e.exports=LEn});var Sce=w((TKr,c$e)=>{"use strict";var{kSchemaHeaders:CW,kSchemaParams:gce,kSchemaQuerystring:yce,kSchemaBody:oT,kSchemaResponse:a$e}=$s(),UEn=/^[1-5](?:\d{2}|xx)$|^default$/,{FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:FEn}=Ko(),{FSTWRN001:PW}=Lk();function jEn(e,t){if(!e.schema||!e.schema.response)return;let{method:n,url:r}=e.config||{};e[a$e]=Object.keys(e.schema.response).reduce(function(i,s){let o=e.schema.response[s];if(s=s.toLowerCase(),!UEn.test(s))throw new FEn;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 HEn(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[CW]=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[CW]=t({schema:a,method:i,url:s,httpPart:"headers"})}else Object.hasOwn(r,"headers")&&PW("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[oT]=c}else e[oT]=t({schema:r.body,method:i,url:s,httpPart:"body"})}else Object.hasOwn(r,"body")&&PW("body",i,s);r.querystring?e[yce]=t({schema:r.querystring,method:i,url:s,httpPart:"querystring"}):Object.hasOwn(r,"querystring")&&PW("querystring",i,s),r.params?e[gce]=t({schema:r.params,method:i,url:s,httpPart:"params"}):Object.hasOwn(r,"params")&&PW("params",i,s)}function NW(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 MW(e,t,n){let r=n===void 0;if(r||!n.skipParams){let s=NW(e[gce],t,"params");if(s)return typeof s.then!="function"?JS(s,"params",e.schemaErrorFormatter):qEn(s,e,t)}if(r||!n.skipBody){let s=null;if(typeof e[oT]=="function")s=e[oT];else if(e[oT]){let a=VEn(t.headers["content-type"]),c=e[oT][a];c&&(s=c)}let o=NW(s,t,"body");if(o)return typeof o.then!="function"?JS(o,"body",e.schemaErrorFormatter):BEn(o,e,t)}if(r||!n.skipQuery){let s=NW(e[yce],t,"query");if(s)return typeof s.then!="function"?JS(s,"querystring",e.schemaErrorFormatter):zEn(s,e,t)}let i=NW(e[CW],t,"headers");return i?typeof i.then!="function"?JS(i,"headers",e.schemaErrorFormatter):GEn(i,e,t):!1}function qEn(e,t,n){return e.then(r=>r?JS(r,"params",t.schemaErrorFormatter):MW(t,n,{skipParams:!0}))}function BEn(e,t,n){return e.then(r=>r?JS(r,"body",t.schemaErrorFormatter):MW(t,n,{skipParams:!0,skipBody:!0}))}function zEn(e,t,n){return e.then(r=>r?JS(r,"querystring",t.schemaErrorFormatter):MW(t,n,{skipParams:!0,skipBody:!0,skipQuery:!0}))}function GEn(e,t,n){return e.then(r=>r?JS(r,"headers",t.schemaErrorFormatter):!1)}function JS(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 VEn(e){return e?e.trimStart().split(/[ ;]/,1)[0].trim().toLowerCase():""}c$e.exports={symbols:{bodySchema:oT,querystringSchema:yce,responseSchema:a$e,paramsSchema:gce,headersSchema:CW},compileSchemasForValidation:HEn,compileSchemasForSerialization:jEn,validate:MW}});var Tce=w((vKr,_ce)=>{"use strict";var WEn=Y("node:diagnostics_channel"),KEn=hce(),YEn=mce(),{validate:ZEn}=Sce(),{preValidationHookRunner:JEn,preHandlerHookRunner:XEn}=ZS(),{FST_ERR_CTP_INVALID_MEDIA_TYPE:QEn}=Ko(),{setErrorStatusCode:u$e}=OW(),{kReplyIsError:wM,kRouteContext:Th,kFourOhFourContext:$En,kSupportedHTTPMethods:l$e}=$s(),AM=WEn.tracingChannel("fastify.request.handler");function e_n(e,t,n){if(n.sent===!0)return;if(e!=null){n[wM]=!0,n.send(e);return}let r=t.method;if(this[l$e].bodyless.has(r)){Fk(t,n);return}if(this[l$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")){Fk(t,n);return}t[Th].contentTypeParser.run("",Fk,t,n);return}let o=new KEn(s);if(o.isValid===!1){n[wM]=!0,n.status(415).send(new QEn);return}t[Th].contentTypeParser.run(o.toString(),Fk,t,n);return}Fk(t,n)}function Fk(e,t){try{e[Th].preValidation!==null?JEn(e[Th].preValidation,e,t,bce):bce(null,e,t)}catch(n){bce(n,e,t)}}function bce(e,t,n){if(n.sent===!0)return;if(e!=null){n[wM]=!0,n.send(e);return}let r=ZEn(n[Th],t);if(r&&typeof r.then=="function"||!1){let s=d$e.bind(null,t,n);r.then(s,s)}else d$e(t,n,r)}function d$e(e,t,n){if(n){if(t[Th].attachValidation===!1){t.send(n);return}t.request.validationError=n}e[Th].preHandler!==null?XEn(e[Th].preHandler,e,t,Ece):Ece(null,e,t)}function Ece(e,t,n){if(n.sent)return;let r=t[Th];if(!AM.hasSubscribers||r[$En]===null)f$e(e,t,n);else{let i={request:t,reply:n,async:!1,route:{url:r.config.url,method:r.config.method}};AM.start.runStores(i,f$e,void 0,e,t,n,i)}}function f$e(e,t,n,r){let i=t[Th];try{if(e!=null){n[wM]=!0,r&&(r.error=e,u$e(n,e),AM.error.publish(r)),n.send(e);return}let s;try{s=i.handler(t,n)}catch(o){r&&(r.error=o,u$e(n,o),AM.error.publish(r)),n[wM]=!0,n.send(o);return}s!==void 0&&(s!==null&&typeof s.then=="function"?YEn(s,n,r):n.send(s))}finally{r&&AM.end.publish(r)}}_ce.exports=e_n;_ce.exports[Symbol.for("internals")]={handler:Fk,preHandlerCallback:Ece}});var h$e=w((RKr,p$e)=>{"use strict";function jk(){}var t_n={fatal:jk,error:jk,warn:jk,info:jk,debug:jk,trace:jk};Object.defineProperty(p$e,"exports",{get(){return Object.create(t_n)}})});var Rce=w((AKr,y$e)=>{"use strict";var kM=e=>e&&typeof e.message=="string",vce=e=>{if(!e)return;let t=e.cause;if(typeof t=="function"){let n=e.cause();return kM(n)?n:void 0}else return kM(t)?t:void 0},m$e=(e,t)=>{if(!kM(e))return"";let n=e.stack||"";if(t.has(e))return n+` +causes have become circular...`;let r=vce(e);return r?(t.add(e),n+` +caused by: `+m$e(r,t)):n},n_n=e=>m$e(e,new Set),g$e=(e,t,n)=>{if(!kM(e))return"";let r=n?"":e.message||"";if(t.has(e))return r+": ...";let i=vce(e);if(i){t.add(e);let s=typeof e.cause=="function";return r+(s?"":": ")+g$e(i,t,s)}else return r},r_n=e=>g$e(e,new Set);y$e.exports={isErrorLike:kM,getErrorCause:vce,stackWithCauses:n_n,messageWithCauses:r_n}});var Ace=w((wKr,b$e)=>{"use strict";var i_n=Symbol("circular-ref-tag"),DW=Symbol("pino-raw-err-ref"),S$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[DW]},set:function(e){this[DW]=e}}});Object.defineProperty(S$e,DW,{writable:!0,value:{}});b$e.exports={pinoErrProto:S$e,pinoErrorSymbols:{seen:i_n,rawSymbol:DW}}});var T$e=w((kKr,_$e)=>{"use strict";_$e.exports=kce;var{messageWithCauses:s_n,stackWithCauses:o_n,isErrorLike:E$e}=Rce(),{pinoErrProto:a_n,pinoErrorSymbols:c_n}=Ace(),{seen:wce}=c_n,{toString:u_n}=Object.prototype;function kce(e){if(!E$e(e))return e;e[wce]=void 0;let t=Object.create(a_n);t.type=u_n.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,t.message=s_n(e),t.stack=o_n(e),Array.isArray(e.errors)&&(t.aggregateErrors=e.errors.map(n=>kce(n)));for(let n in e)if(t[n]===void 0){let r=e[n];E$e(r)?n!=="cause"&&!Object.prototype.hasOwnProperty.call(r,wce)&&(t[n]=kce(r)):t[n]=r}return delete e[wce],t.raw=e,t}});var R$e=w((IKr,v$e)=>{"use strict";v$e.exports=UW;var{isErrorLike:Ice}=Rce(),{pinoErrProto:l_n,pinoErrorSymbols:d_n}=Ace(),{seen:LW}=d_n,{toString:f_n}=Object.prototype;function UW(e){if(!Ice(e))return e;e[LW]=void 0;let t=Object.create(l_n);t.type=f_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=>UW(n))),Ice(e.cause)&&!Object.prototype.hasOwnProperty.call(e.cause,LW)&&(t.cause=UW(e.cause));for(let n in e)if(t[n]===void 0){let r=e[n];Ice(r)?Object.prototype.hasOwnProperty.call(r,LW)||(t[n]=UW(r)):t[n]=r}return delete e[LW],t.raw=e,t}});var I$e=w((xKr,k$e)=>{"use strict";k$e.exports={mapHttpRequest:p_n,reqSerializer:w$e};var xce=Symbol("pino-raw-req-ref"),A$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[xce]},set:function(e){this[xce]=e}}});Object.defineProperty(A$e,xce,{writable:!0,value:{}});function w$e(e){let t=e.info||e.socket,n=Object.create(A$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 p_n(e){return{req:w$e(e)}}});var N$e=w((OKr,P$e)=>{"use strict";P$e.exports={mapHttpResponse:h_n,resSerializer:O$e};var Oce=Symbol("pino-raw-res-ref"),x$e=Object.create({},{statusCode:{enumerable:!0,writable:!0,value:0},headers:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[Oce]},set:function(e){this[Oce]=e}}});Object.defineProperty(x$e,Oce,{writable:!0,value:{}});function O$e(e){let t=Object.create(x$e);return t.statusCode=e.headersSent?e.statusCode:null,t.headers=e.getHeaders?e.getHeaders():e._headers,t.raw=e,t}function h_n(e){return{res:O$e(e)}}});var Nce=w((PKr,C$e)=>{"use strict";var Pce=T$e(),m_n=R$e(),FW=I$e(),jW=N$e();C$e.exports={err:Pce,errWithCause:m_n,mapHttpRequest:FW.mapHttpRequest,mapHttpResponse:jW.mapHttpResponse,req:FW.reqSerializer,res:jW.resSerializer,wrapErrorSerializer:function(t){return t===Pce?t:function(r){return t(Pce(r))}},wrapRequestSerializer:function(t){return t===FW.reqSerializer?t:function(r){return t(FW.reqSerializer(r))}},wrapResponseSerializer:function(t){return t===jW.resSerializer?t:function(r){return t(jW.resSerializer(r))}}}});var Cce=w((NKr,M$e)=>{"use strict";function g_n(e,t){return t}M$e.exports=function(){let t=Error.prepareStackTrace;Error.prepareStackTrace=g_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 H$e=w((CKr,j$e)=>{"use strict";function Mce(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)U$e(l,a);else{let f=typeof n=="function"?n(S_n(l,a),[...c.slice(0,d),...a]):n;L$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 R_n(e){if(!Array.isArray(e))throw new TypeError("paths must be an array");for(let t of e)v_n(t)}function A_n(e={}){let{paths:t=[],censor:n="[REDACTED]",serialize:r=JSON.stringify,strict:i=!0,remove:s=!1}=e;R_n(t);let o=__n(t);return function(c){if(i&&(c===null||typeof c!="object")&&(c==null||typeof c!="object"))return r?r(c):c;let u=T_n(c,o),l=c,d=n;return typeof n=="function"&&(d=n),b_n(u,t,d,s),r===!1?(u.restore=function(){return Mce(l)},u):typeof r=="function"?r(u):JSON.stringify(u)}}j$e.exports=A_n});var Hk=w((MKr,q$e)=>{"use strict";var w_n=Symbol("pino.setLevel"),k_n=Symbol("pino.getLevel"),I_n=Symbol("pino.levelVal"),x_n=Symbol("pino.levelComp"),O_n=Symbol("pino.useLevelLabels"),P_n=Symbol("pino.useOnlyCustomLevels"),N_n=Symbol("pino.mixin"),C_n=Symbol("pino.lsCache"),M_n=Symbol("pino.chindings"),D_n=Symbol("pino.asJson"),L_n=Symbol("pino.write"),U_n=Symbol("pino.redactFmt"),F_n=Symbol("pino.time"),j_n=Symbol("pino.timeSliceIndex"),H_n=Symbol("pino.stream"),q_n=Symbol("pino.stringify"),B_n=Symbol("pino.stringifySafe"),z_n=Symbol("pino.stringifiers"),G_n=Symbol("pino.end"),V_n=Symbol("pino.formatOpts"),W_n=Symbol("pino.messageKey"),K_n=Symbol("pino.errorKey"),Y_n=Symbol("pino.nestedKey"),Z_n=Symbol("pino.nestedKeyStr"),J_n=Symbol("pino.mixinMergeStrategy"),X_n=Symbol("pino.msgPrefix"),Q_n=Symbol("pino.wildcardFirst"),$_n=Symbol.for("pino.serializers"),eTn=Symbol.for("pino.formatters"),tTn=Symbol.for("pino.hooks"),nTn=Symbol.for("pino.metadata");q$e.exports={setLevelSym:w_n,getLevelSym:k_n,levelValSym:I_n,levelCompSym:x_n,useLevelLabelsSym:O_n,mixinSym:N_n,lsCacheSym:C_n,chindingsSym:M_n,asJsonSym:D_n,writeSym:L_n,serializersSym:$_n,redactFmtSym:U_n,timeSym:F_n,timeSliceIndexSym:j_n,streamSym:H_n,stringifySym:q_n,stringifySafeSym:B_n,stringifiersSym:z_n,endSym:G_n,formatOptsSym:V_n,messageKeySym:W_n,errorKeySym:K_n,nestedKeySym:Y_n,wildcardFirstSym:Q_n,needsMetadataGsym:nTn,useOnlyCustomLevelsSym:P_n,formattersSym:eTn,hooksSym:tTn,nestedKeyStrSym:Z_n,mixinMergeStrategySym:J_n,msgPrefixSym:X_n}});var Lce=w((DKr,V$e)=>{"use strict";var B$e=H$e(),{redactFmtSym:rTn,wildcardFirstSym:qW}=Hk(),Dce=/[^.[\]]+|\[([^[\]]*?)\]/g,z$e="[Redacted]",G$e=!1;function iTn(e,t){let{paths:n,censor:r,remove:i}=sTn(e),s=n.reduce((c,u)=>{Dce.lastIndex=0;let l=Dce.exec(u),d=Dce.exec(u),f=l[1]!==void 0?l[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):l[0];if(f==="*"&&(f=qW),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!==qW&&c[f].length===0&&c[f].push(...c[qW]||[]),f===qW&&Object.keys(c).forEach(function(m){c[m]&&c[m].push(h)}),c[f].push(h),c},{}),o={[rTn]:B$e({paths:n,censor:r,serialize:t,strict:G$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]=B$e({paths:s[u],censor:l,serialize:t,strict:G$e,remove:i})}return c},o)}function sTn(e){if(Array.isArray(e))return e={paths:e,censor:z$e},e;let{paths:t,censor:n=z$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}}V$e.exports=iTn});var Y$e=w((LKr,K$e)=>{"use strict";var oTn=()=>"",aTn=()=>`,"time":${Date.now()}`,cTn=()=>`,"time":${Math.round(Date.now()/1e3)}`,uTn=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,lTn=1000000n,W$e=1000000000n,dTn=BigInt(Date.now())*lTn,fTn=process.hrtime.bigint(),pTn=()=>{let e=process.hrtime.bigint()-fTn,t=dTn+e,n=t/W$e,r=t%W$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"`};K$e.exports={nullTime:oTn,epochTime:aTn,unixTime:cTn,isoTime:uTn,isoTimeNano:pTn}});var J$e=w((UKr,Z$e)=>{"use strict";function hTn(e){try{return JSON.stringify(e)}catch{return'"[Circular]"'}}Z$e.exports=mTn;function mTn(e,t,n){var r=n&&n.stringify||hTn,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));Uce.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(););};Uce.exports=e}});var iet=w((jKr,ret)=>{"use strict";var Si=Y("fs"),gTn=Y("events"),yTn=Y("util").inherits,X$e=Y("path"),Hce=Fce(),STn=Y("assert"),BW=100,zW=Buffer.allocUnsafe(0),bTn=16*1024,Q$e="buffer",$$e="utf8",[ETn,_Tn]=(process.versions.node||"0.0").split(".").map(Number),TTn=ETn>=22&&_Tn>=7;function eet(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(X$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(X$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||bTn,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===Q$e)this._writingBuf=zW,this.write=ATn,this.flush=kTn,this.flushSync=xTn,this._actualWrite=PTn,h=()=>Si.writeSync(this.fd,this._writingBuf),m=()=>Si.write(this.fd,this._writingBuf,this.release);else if(f===void 0||f===$$e)this._writingBuf="",this.write=RTn,this.flush=wTn,this.flushSync=ITn,this._actualWrite=OTn,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 "${$$e}" and "${Q$e}", but passed ${f}`);if(typeof t=="number")this.fd=t,process.nextTick(()=>this.emit("ready"));else if(typeof t=="string")eet(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{Hce(BW),this.release(void 0,0)}catch(E){this.release(E)}else setTimeout(m,BW);else this._writing=!1,this.emit("error",g);return}this.emit("write",y);let b=jce(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(),_=jce(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,GW(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(vTn,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 jce(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 vTn(e){e.listenerCount("drain")>0&&(e._asyncDrainScheduled=!1,e.emit("drain"))}yTn(Pf,gTn);function tet(e,t){return e.length===0?zW:e.length===1?e[0]:Buffer.concat(e,t)}function RTn(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 wTn(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&&net.call(this,e),!this._writing&&(this._bufs.length===0&&this._bufs.push(""),this._actualWrite())}function kTn(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&&net.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)})}),eet(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():GW(this)))};function ITn(){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=jce(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;Hce(BW)}}try{Si.fsyncSync(this.fd)}catch{}}function xTn(){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=zW);let e=zW;for(;this._bufs.length||e.length;){e.length<=0&&(e=tet(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;Hce(BW)}}}Pf.prototype.destroy=function(){this.destroyed||GW(this)};function OTn(){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 PTn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:tet(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 TTn&&(this._writingBuf=Buffer.from(this._writingBuf)),Si.write(this.fd,this._writingBuf,e)}function GW(e){if(e.fd===-1){e.once("ready",GW.bind(null,e));return}e._periodicFlushTimer!==void 0&&clearInterval(e._periodicFlushTimer),e.destroyed=!0,e._bufs=[],e._lens=[],STn(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;ret.exports=Pf});var qce=w((HKr,uet)=>{"use strict";var Nf={exit:[],beforeExit:[]},set={exit:MTn,beforeExit:DTn},qk;function NTn(){qk===void 0&&(qk=new FinalizationRegistry(LTn))}function CTn(e){Nf[e].length>0||process.on(e,set[e])}function oet(e){Nf[e].length>0||(process.removeListener(e,set[e]),Nf.exit.length===0&&Nf.beforeExit.length===0&&(qk=void 0))}function MTn(){aet("exit")}function DTn(){aet("beforeExit")}function aet(e){for(let t of Nf[e]){let n=t.deref(),r=t.fn;n!==void 0&&r(n,e)}Nf[e]=[]}function LTn(e){for(let t of["exit","beforeExit"]){let n=Nf[t].indexOf(e);Nf[t].splice(n,n+1),oet(t)}}function cet(e,t,n){if(t===void 0)throw new Error("the object can't be undefined");CTn(e);let r=new WeakRef(t);r.fn=n,NTn(),qk.register(t,r),Nf[e].push(r)}function UTn(e,t){cet("exit",e,t)}function FTn(e,t){cet("beforeExit",e,t)}function jTn(e){if(qk!==void 0){qk.unregister(e);for(let t of["exit","beforeExit"])Nf[t]=Nf[t].filter(n=>{let r=n.deref();return r&&r!==e}),oet(t)}}uet.exports={register:UTn,registerBeforeExit:FTn,unregister:jTn}});var det=w((qKr,HTn)=>{HTn.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 pet=w((BKr,fet)=>{"use strict";function qTn(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 BTn(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()}fet.exports={wait:qTn,waitDiff:BTn}});var met=w((zKr,het)=>{"use strict";het.exports={WRITE_INDEX:4,READ_INDEX:8}});var _et=w((GKr,Eet)=>{"use strict";var{version:zTn}=det(),{EventEmitter:GTn}=Y("events"),{Worker:VTn}=Y("worker_threads"),{join:WTn}=Y("path"),{pathToFileURL:KTn}=Y("url"),{wait:YTn}=pet(),{WRITE_INDEX:xu,READ_INDEX:Iu}=met(),ZTn=Y("buffer"),JTn=Y("assert"),be=Symbol("kImpl"),XTn=ZTn.constants.MAX_STRING_LENGTH,IM=class{constructor(t){this._value=t}deref(){return this._value}},WW=class{register(){}unregister(){}},QTn=process.env.NODE_V8_COVERAGE?WW:global.FinalizationRegistry||WW,$Tn=process.env.NODE_V8_COVERAGE?IM:global.WeakRef||IM,get=new QTn(e=>{e.exited||e.terminate()});function evn(e,t){let{filename:n,workerData:r}=t,s=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||WTn(__dirname,"lib","worker.js"),o=new VTn(s,{...t.workerOpts,trackUnmanagedFds:!1,workerData:{filename:n.indexOf("file://")===0?n:KTn(n).href,dataBuf:e[be].dataBuf,stateBuf:e[be].stateBuf,workerData:{$context:{threadStreamVersion:zTn},...r}}});return o.stream=new IM(e),o.on("message",tvn),o.on("exit",bet),get.register(e,o),o}function yet(e){JTn(!e[be].sync),e[be].needDrain&&(e[be].needDrain=!1,e.emit("drain"))}function VW(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?Wce(e):e[be].needDrain&&process.nextTick(yet,e);return}let r=e[be].buf.slice(0,n),i=Buffer.byteLength(r);i<=n?(e[be].buf=e[be].buf.slice(n),KW(e,r,VW.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),KW(e,r,VW.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),VW(e)})}else vh(e,new Error("overwritten"))}function tvn(e){let t=this.stream.deref();if(t===void 0){this.exited=!0,this.terminate();return}switch(e.code){case"READY":this.stream=new $Tn(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 bet(e){let t=this.stream.deref();t!==void 0&&(get.unregister(t),t.worker.exited=!0,t.worker.off("exit",bet),vh(t,e!==0?new Error("the worker thread exited"):null))}var zce=class extends GTn{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=evn(this,t),this.on("message",(n,r)=>{this.worker.postMessage(n,r)})}write(t){if(this[be].destroyed)return Gce(this,new Error("the worker has exited")),!1;if(this[be].ending)return Gce(this,new Error("the worker is ending")),!1;if(this[be].flushing&&this[be].buf.length+t.length>=XTn)try{Bce(this),this[be].flushing=!0}catch(n){return vh(this,n),!1}if(this[be].buf+=t,this[be].sync)try{return Bce(this),!0}catch(n){return vh(this,n),!1}return this[be].flushing||(this[be].flushing=!0,setImmediate(VW,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,Wce(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);YTn(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||(Bce(this),Vce(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 Gce(e,t){setImmediate(()=>{e.emit("error",t)})}function vh(e,t){e[be].destroyed||(e[be].destroyed=!0,t&&(e[be].errored=t,Gce(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 KW(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 Wce(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 Bce(e){let t=()=>{e[be].ending?Wce(e):e[be].needDrain&&process.nextTick(yet,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){Vce(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),KW(e,i,t);else{for(Vce(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),KW(e,i,t)}}}function Vce(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)")}}Eet.exports=zce});var Zce=w((VKr,Ret)=>{"use strict";var{createRequire:nvn}=Y("module"),{existsSync:rvn}=Y("node:fs"),ivn=Cce(),{join:Kce,isAbsolute:vet,sep:svn}=Y("node:path"),{fileURLToPath:ovn}=Y("node:url"),avn=Fce(),Yce=qce(),cvn=_et();function uvn(e){Yce.register(e,hvn),Yce.registerBeforeExit(e,mvn),e.on("close",function(){Yce.unregister(e)})}function lvn(){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"]||Kce(__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 pvn(p(d),c,s,a,f);function p(h){if(h=l[h]||h,vet(h)||h.indexOf("file://")===0)return h;if(h==="pino/file")return Kce(__dirname,"..","file.js");let m;for(let g of u)try{let y=g==="node:repl"?process.cwd()+svn:g;m=nvn(y).resolve(h);break}catch{continue}if(!m)throw new Error(`unable to determine transport target for "${h}"`);return m}}Ret.exports=gvn});var JW=w((KKr,Uet)=>{"use strict";var yvn=Y("node:diagnostics_channel"),Aet=J$e(),{mapHttpRequest:Svn,mapHttpResponse:bvn}=Nce(),Xce=iet(),wet=qce(),{lsCacheSym:Evn,chindingsSym:Pet,writeSym:ket,serializersSym:Net,formatOptsSym:Iet,endSym:_vn,stringifiersSym:Cet,stringifySym:Met,stringifySafeSym:Qce,wildcardFirstSym:Det,nestedKeySym:Tvn,formattersSym:Let,messageKeySym:vvn,errorKeySym:Rvn,nestedKeyStrSym:Avn,msgPrefixSym:YW}=Hk(),{isMainThread:wvn}=Y("worker_threads"),kvn=Zce(),[Ivn]=process.versions.node.split(".").map(e=>Number(e)),xet=yvn.tracingChannel("pino_asJson"),Jce=Ivn>=25?e=>JSON.stringify(e):Ovn;function Bk(){}function xvn(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=Svn(r):typeof r.setHeader=="function"&&(r=bvn(r)));let o;s===null&&i.length===0?o=[null]:(s=i.shift(),o=i),typeof this[YW]=="string"&&s!==void 0&&s!==null&&(s=this[YW]+s),this[ket](r,Aet(s,o,this[Iet]),e)}else{let s=r===void 0?i.shift():r;typeof this[YW]=="string"&&s!==void 0&&s!==null&&(s=this[YW]+s),this[ket](null,Aet(s,i,this[Iet]),e)}}}function Ovn(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 Pvn(e,t,n,r){if(xet.hasSubscribers===!1)return Oet.call(this,e,t,n,r);let i={instance:this,arguments};return xet.traceSync(Oet,i,this,e,t,n,r)}function Oet(e,t,n,r){let i=this[Met],s=this[Qce],o=this[Cet],a=this[_vn],c=this[Pet],u=this[Net],l=this[Let],d=this[vvn],f=this[Rvn],p=this[Evn][n]+r;p=p+c;let h;l.log&&(e=l.log(e));let m=o[Det],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||Jce)(h);break;default:h=(S||i)(h,s)}if(h===void 0)continue;let E=Jce(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||Jce)(h),y=',"'+d+'":'+h;break;default:h=(b||i)(h,s),y=',"'+d+'":'+h}}return this[Tvn]&&g?p+this[Avn]+g.slice(1)+"}"+y+a:p+g+y+a}function Nvn(e,t){let n,r=e[Pet],i=e[Met],s=e[Qce],o=e[Cet],a=o[Det],c=e[Net],u=e[Let].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 Cvn(e){return e.write!==e.constructor.prototype.write}function ZW(e){let t=new Xce(e);return t.on("error",n),!e.sync&&wvn&&(wet.register(t,Mvn),t.on("close",function(){wet.unregister(t)})),t;function n(r){if(r.code==="EPIPE"){t.write=Bk,t.end=Bk,t.flushSync=Bk,t.destroy=Bk;return}t.removeListener("error",n),t.emit("error",r)}}function Mvn(e,t){e.destroyed||(t==="beforeExit"?(e.flush(),e.on("drain",function(){e.end()})):e.flushSync())}function Dvn(e){return function(n,r,i={},s){if(typeof i=="string")s=ZW({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=ZW({dest:s})}else if(i instanceof Xce||i.writable||i._writableState)s=i,i={};else if(i.transport){if(i.transport instanceof Xce||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=kvn({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=Bk),s||(Cvn(process.stdout)?s=process.stdout:s=ZW({fd:process.stdout.fd||1})),{opts:i,stream:s}}}function Lvn(e,t){try{return JSON.stringify(e)}catch{try{return(t||this[Qce])(e)}catch{return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function Uvn(e,t,n){return{level:e,bindings:t,log:n}}function Fvn(e){let t=Number(e);return typeof e=="string"&&Number.isFinite(t)?t:e===void 0?1:e}Uet.exports={noop:Bk,buildSafeSonicBoom:ZW,asChindings:Nvn,asJson:Pvn,genLog:xvn,createArgsNormalizer:Dvn,stringify:Lvn,buildFormatters:Uvn,normalizeDestFileDescriptor:Fvn}});var XW=w((YKr,Fet)=>{var jvn={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},Hvn={ASC:"ASC",DESC:"DESC"};Fet.exports={DEFAULT_LEVELS:jvn,SORTING_ORDER:Hvn}});var tue=w((ZKr,Bet)=>{"use strict";var{lsCacheSym:qvn,levelValSym:$ce,useOnlyCustomLevelsSym:Bvn,streamSym:zvn,formattersSym:Gvn,hooksSym:Vvn,levelCompSym:jet}=Hk(),{noop:Wvn,genLog:aT}=JW(),{DEFAULT_LEVELS:Rh,SORTING_ORDER:Het}=XW(),qet={fatal:e=>{let t=aT(Rh.fatal,e);return function(...n){let r=this[zvn];if(t.call(this,...n),typeof r.flushSync=="function")try{r.flushSync()}catch{}}},error:e=>aT(Rh.error,e),warn:e=>aT(Rh.warn,e),info:e=>aT(Rh.info,e),debug:e=>aT(Rh.debug,e),trace:e=>aT(Rh.trace,e)},eue=Object.keys(Rh).reduce((e,t)=>(e[Rh[t]]=t,e),{}),Kvn=Object.keys(eue).reduce((e,t)=>(e[t]='{"level":'+Number(t),e),{});function Yvn(e){let t=e[Gvn].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[qvn]=r,e}function Zvn(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 Jvn(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[$ce],i=this[$ce]=n[e],s=this[Bvn],o=this[jet],a=this[Vvn].logMethod;for(let c in n){if(o(n[c],i)===!1){this[c]=Wvn;continue}this[c]=Zvn(c,s)?qet[c](a):aT(n[c],a)}this.emit("level-change",e,i,t[r],r,this)}function Xvn(e){let{levels:t,levelVal:n}=this;return t&&t.labels?t.labels[n]:""}function Qvn(e){let{values:t}=this.levels,n=t[e];return n!==void 0&&this[jet](n,this[$ce])}function $vn(e,t,n){return e===Het.DESC?t<=n:t>=n}function eRn(e){return typeof e=="string"?$vn.bind(null,e):e}function tRn(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:eue,n),i=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),t?null:Rh,e);return{labels:r,values:i}}function nRn(e,t,n){if(typeof e=="number"){if(![].concat(Object.keys(t||{}).map(s=>t[s]),n?[]:Object.keys(eue).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 rRn(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 iRn(e){if(typeof e!="function"&&!(typeof e=="string"&&Object.values(Het).includes(e)))throw new Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}Bet.exports={initialLsCache:Kvn,genLsCache:Yvn,levelMethods:qet,getLevel:Xvn,setLevel:Jvn,isLevelEnabled:Qvn,mappings:tRn,assertNoLevelCollisions:rRn,assertDefaultLevelFound:nRn,genLevelComparison:eRn,assertLevelComparison:iRn}});var nue=w((JKr,zet)=>{"use strict";zet.exports={version:"10.3.1"}});var Xet=w((QKr,Jet)=>{"use strict";var{EventEmitter:sRn}=Y("node:events"),{lsCacheSym:oRn,levelValSym:aRn,setLevelSym:iue,getLevelSym:Get,chindingsSym:$W,mixinSym:cRn,asJsonSym:Wet,writeSym:uRn,mixinMergeStrategySym:lRn,timeSym:dRn,timeSliceIndexSym:fRn,streamSym:Ket,serializersSym:cT,formattersSym:xM,errorKeySym:pRn,messageKeySym:hRn,useOnlyCustomLevelsSym:mRn,needsMetadataGsym:gRn,redactFmtSym:yRn,stringifySym:SRn,formatOptsSym:bRn,stringifiersSym:ERn,msgPrefixSym:sue,hooksSym:_Rn}=Hk(),{getLevel:TRn,setLevel:vRn,isLevelEnabled:RRn,mappings:ARn,initialLsCache:wRn,genLsCache:kRn,assertNoLevelCollisions:IRn}=tue(),{asChindings:oue,asJson:xRn,buildFormatters:rue,stringify:Vet,noop:Yet}=JW(),{version:ORn}=nue(),PRn=Lce(),NRn=class{},Zet={constructor:NRn,child:CRn,bindings:MRn,setBindings:DRn,flush:FRn,isLevelEnabled:RRn,version:ORn,get level(){return this[Get]()},set level(e){this[iue](e)},get levelVal(){return this[aRn]},set levelVal(e){throw Error("levelVal is read-only")},get msgPrefix(){return this[sue]},get[Symbol.toStringTag](){return"Pino"},[oRn]:wRn,[uRn]:URn,[Wet]:xRn,[Get]:TRn,[iue]:vRn};Object.setPrototypeOf(Zet,sRn.prototype);Jet.exports=function(){return Object.create(Zet)};var QW=e=>e;function CRn(e,t){if(!e)throw Error("missing bindings for child Pino");let n=this[cT],r=this[xM],i=Object.create(this);if(t==null)return i[xM].bindings!==QW&&(i[xM]=rue(r.level,QW,r.log)),i[$W]=oue(i,e),this.onChild!==Yet&&this.onChild(i),i;if(t.hasOwnProperty("serializers")===!0){i[cT]=Object.create(null);for(let u in n)i[cT][u]=n[u];let a=Object.getOwnPropertySymbols(n);for(var s=0;s{"use strict";var{hasOwnProperty:OM}=Object.prototype,lT=uue();lT.configure=uue;lT.stringify=lT;lT.default=lT;lue.stringify=lT;lue.configure=uue;ett.exports=lT;var jRn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function XS(e){return e.length<5e3&&!jRn.test(e)?`"${e}"`:JSON.stringify(e)}function aue(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 HRn=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function cue(e){return HRn.call(e)!==void 0&&e.length!==0}function Qet(e,t,n){e.length= 1`)}return n===void 0?1/0:n}function uT(e){return e===1?"1 item":`${e} items`}function GRn(e){let t=new Set;for(let n of e)(typeof n=="string"||typeof n=="number")&&t.add(String(n));return t}function VRn(e){if(OM.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 uue(e){e={...e};let t=VRn(e);t&&(e.bigint===void 0&&(e.bigint=!1),"circularValue"in e||(e.circularValue=Error));let n=qRn(e),r=zRn(e,"bigint"),i=BRn(e),s=typeof i=="function"?i:void 0,o=$et(e,"maximumDepth"),a=$et(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 XS(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+=`${_}"... ${uT(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}"${uT(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 XS(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+=`${_}"... ${uT(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}${XS(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 XS(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}"... ${uT(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}"...": "${uT(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 XS(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+=`,"... ${uT(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}"...":"${uT(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,[],GRn(h),g,"")}if(g.length!==0)return l("",p,[],g,"")}return d("",p,[])}return f}});var stt=w(($Kr,itt)=>{"use strict";var due=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:rtt}=XW(),WRn=rtt.info;function KRn(e,t){e=e||[],t=t||{dedupe:!1};let n=Object.create(rtt);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,[due]:!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=YRn(h.length,t.dedupe);JRn(y,h.length,t.dedupe);y=ZRn(y,t.dedupe))if(f=h[y],f.level<=p){if(m!==0&&m!==f.level)break;if(g=f.stream,g[due]){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=WRn;let y={stream:p,level:g,levelVal:void 0,id:++r.lastId};return h.unshift(y),h.sort(ntt),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(ntt),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 XRn=Y("node:os"),ptt=Nce(),QRn=Cce(),$Rn=Lce(),htt=Y$e(),eAn=Xet(),mtt=Hk(),{configure:tAn}=ttt(),{assertDefaultLevelFound:nAn,mappings:gtt,genLsCache:rAn,genLevelComparison:iAn,assertLevelComparison:sAn}=tue(),{DEFAULT_LEVELS:ytt,SORTING_ORDER:oAn}=XW(),{createArgsNormalizer:aAn,asChindings:cAn,buildSafeSonicBoom:ott,buildFormatters:uAn,stringify:fue,normalizeDestFileDescriptor:att,noop:lAn}=JW(),{version:dAn}=nue(),{chindingsSym:ctt,redactFmtSym:fAn,serializersSym:utt,timeSym:pAn,timeSliceIndexSym:hAn,streamSym:mAn,stringifySym:ltt,stringifySafeSym:pue,stringifiersSym:dtt,setLevelSym:gAn,endSym:yAn,formatOptsSym:SAn,messageKeySym:bAn,errorKeySym:EAn,nestedKeySym:_An,mixinSym:TAn,levelCompSym:vAn,useOnlyCustomLevelsSym:RAn,formattersSym:ftt,hooksSym:AAn,nestedKeyStrSym:wAn,mixinMergeStrategySym:kAn,msgPrefixSym:IAn}=mtt,{epochTime:Stt,nullTime:xAn}=htt,{pid:OAn}=process,PAn=XRn.hostname(),NAn=ptt.err,CAn={level:"info",levelComparison:oAn.ASC,levels:ytt,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:OAn,hostname:PAn},serializers:Object.assign(Object.create(null),{err:NAn}),formatters:Object.assign(Object.create(null),{bindings(e){return e},level(e,t){return{level:t}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:Stt,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},MAn=aAn(CAn),DAn=Object.assign(Object.create(null),ptt);function hue(...e){let t={},{opts:n,stream:r}=MAn(t,QRn(),...e);n.level&&typeof n.level=="string"&&ytt[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=tAn({maximumDepth:_,maximumBreadth:T}),k=uAn(S.level,S.bindings,S.log),P=fue.bind({[pue]:x}),N=i?$Rn(i,P):{},C=i?{stringify:N[fAn]}:{stringify:P},L="}"+(s?`\r `:` -`),V=VAn.bind(null,{[Xet]:"",[Qet]:o,[ett]:P,[$et]:rue,[iue]:x,[ttt]:k}),K="";d!==null&&(f===void 0?K=V(d):K=V(Object.assign({},d,{name:f})));let $=a instanceof Function?a:a?att:fRn,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"`);jAn(p,h,E);let X=stt(h,E);typeof r.emit=="function"&&r.emit("message",{code:"PINO_CONFIG",config:{levels:X,messageKey:c,errorKey:u}}),BAn(m);let G=qAn(m);return Object.assign(t,{levels:X,[oRn]:G,[aRn]:E,[QAn]:r,[JAn]:$,[XAn]:B,[$et]:rue,[iue]:x,[ett]:P,[eRn]:F,[tRn]:C,[nRn]:c,[rRn]:u,[iRn]:l,[uRn]:l?`,${JSON.stringify(l)}:{`:"",[Qet]:o,[sRn]:y,[lRn]:g,[Xet]:K,[ttt]:k,[cRn]:b,silent:KAn,onChild:A,[dRn]:R}),Object.setPrototypeOf(t,UAn()),HAn(t),t[$An](p),t}vd.exports=sue;vd.exports.destination=(e=process.stdout.fd)=>typeof e=="object"?(e.dest=Jet(e.dest||process.stdout.fd),Yet(e)):Yet({dest:Jet(e),minLength:0});vd.exports.transport=Hce();vd.exports.multistream=Zet();vd.exports.levels=stt();vd.exports.stdSerializers=SRn;vd.exports.stdTimeFunctions=Object.assign({},rtt);vd.exports.symbols=itt;vd.exports.version=ZAn;vd.exports.default=sue;vd.exports.pino=sue});var dtt=w((y4r,ltt)=>{"use strict";var WW=ctt(),{serializersSym:utt}=WW.symbols,{FST_ERR_LOG_INVALID_DESTINATION:ERn}=Ko();function bRn(e){if(e.stream&&e.file)throw new ERn;e.file&&(e.stream=WW.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[utt]&&(e.serializers=Object.assign({},e.serializers,t[utt])),r=t.child({},e),e.logger=t,e.genReqId=n):r=WW(e,e.stream),r}var _Rn={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:WW.stdSerializers.err,res:function(t){return{statusCode:t.statusCode}}};ltt.exports={serializers:_Rn,createPinoLogger:bRn}});var bM=w((S4r,ptt)=>{"use strict";var{FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:TRn,FST_ERR_LOG_INVALID_LOGGER_CONFIG:vRn,FST_ERR_LOG_INVALID_LOGGER_INSTANCE:ARn,FST_ERR_LOG_INVALID_LOGGER:RRn}=Ko();function wRn(e,t,n,r,i){let s={[e.requestIdLogLabel]:r},o=e.childLoggerFactory.call(e.server,t,s,i||{},n);return e.childLoggerFactory!==ftt&&KW(o,!0),o}function ftt(e,t,n){return e.child(t,n)}function KW(e,t){let n=["info","error","debug","fatal","warn","trace","child"],r=e?n.filter(i=>!e[i]||typeof e[i]!="function"):n;if(r.length){if(r.length===n.length&&!t)return!1;throw RRn(r.join(","))}else return!0}function kRn(e){if(e.logger&&e.loggerInstance)throw new TRn;if(!e.loggerInstance&&!e.logger){let o=r$e();return o.child=()=>o,{logger:o,hasLogger:!1}}let{createPinoLogger:t,serializers:n}=dtt();if(KW(e.loggerInstance))return{logger:t({logger:e.loggerInstance,serializers:Object.assign({},n,e.loggerInstance.serializers)}),hasLogger:!0};if(KW(e.logger))throw vRn();if(e.loggerInstance)throw ARn();let r={};return Object.prototype.toString.call(e.logger)==="[object Object]"&&Reflect.ownKeys(e.logger).forEach(s=>{Object.defineProperty(r,s,{value:e.logger[s],writable:!0,enumerable:!0,configurable:!0})}),r.level=r.level||"info",r.serializers=Object.assign({},n,r.serializers),e.logger=r,{logger:t(e.logger),hasLogger:!0}}function IRn(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}ptt.exports={createChildLogger:wRn,defaultChildLoggerFactory:ftt,createLogger:kRn,validateLogger:KW,now:IRn}});var ZW=w((E4r,htt)=>{"use strict";htt.exports=xRn;function Dk(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function xRn(e){if(e=e||{},e.circles)return ORn(e);let t=new Map;if(t.set(Date,o=>new Date(o)),t.set(Map,(o,a)=>new Map(r(Array.from(o),a))),t.set(Set,(o,a)=>new Set(r(Array.from(o),a))),e.constructorHandlers)for(let o of e.constructorHandlers)t.set(o[0],o[1]);let n=null;return e.proto?s:i;function r(o,a){let c=Object.keys(o),u=new Array(c.length);for(let l=0;lnew Date(c)),r.set(Map,(c,u)=>new Map(s(Array.from(c),u))),r.set(Set,(c,u)=>new Set(s(Array.from(c),u))),e.constructorHandlers)for(let c of e.constructorHandlers)r.set(c[0],c[1]);let i=null;return e.proto?a:o;function s(c,u){let l=Object.keys(c),d=new Array(l.length);for(let f=0;f{"use strict";var NRn=ZW()({circles:!1,proto:!0}),{kSchemaVisited:mtt,kSchemaResponse:PRn}=$s(),oue=Symbol.for("fluent-schema-object"),{FST_ERR_SCH_MISSING_ID:CRn,FST_ERR_SCH_ALREADY_PRESENT:MRn,FST_ERR_SCH_DUPLICATE:LRn,FST_ERR_SCH_CONTENT_MISSING_SCHEMA:gtt}=Ko(),Stt=["params","body","querystring","query","headers"];function YW(e){this.store=e||{}}YW.prototype.add=function(e){let t=NRn(e.isFluentSchema||e.isFluentJSONSchema||e[oue]?e.valueOf():e),n=t.$id;if(!n)throw new CRn;if(this.store[n])throw new MRn(n);this.store[n]=t};YW.prototype.getSchemas=function(){return Object.assign({},this.store)};YW.prototype.getSchema=function(e){return this.store[e]};function ytt(e){return typeof e=="object"&&Object.getPrototypeOf(e)!==Object.prototype}function DRn(e,t){if(e[mtt])return e;if(e.query){if(e.querystring)throw new LRn("querystring");e.querystring=e.query}URn(e);for(let n of Stt){let r=e[n];if(r&&!ytt(r)&&n==="body"&&r.content){let i=r.content,s=Object.keys(i);for(let o=0;o{"use strict";var jRn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;_tt.exports=class btt{constructor(t){switch(t&&t.rounding){case"floor":this.parseInteger=Math.floor;break;case"ceil":this.parseInteger=Math.ceil;break;case"round":this.parseInteger=Math.round;break;default:this.parseInteger=Math.trunc;break}this._options=t}asInteger(t){if(Number.isInteger(t))return""+t;if(typeof t=="bigint")return t.toString();let n=this.parseInteger(t);if(n===1/0||n===-1/0||n!==n)throw new Error(`The value "${t}" cannot be converted to an integer.`);return""+n}asNumber(t){let n=Number(t);if(n!==n)throw new Error(`The value "${t}" cannot be converted to a number.`);return n===1/0||n===-1/0?"null":""+n}asBoolean(t){return t&&"true"||"false"}asDateTime(t){if(t===null)return'""';if(t instanceof Date)return'"'+t.toISOString()+'"';if(typeof t=="string")return'"'+t+'"';throw new Error(`The value "${t}" cannot be converted to a date-time.`)}asDate(t){if(t===null)return'""';if(t instanceof Date)return'"'+new Date(t.getTime()-t.getTimezoneOffset()*6e4).toISOString().slice(0,10)+'"';if(typeof t=="string")return'"'+t+'"';throw new Error(`The value "${t}" cannot be converted to a date.`)}asTime(t){if(t===null)return'""';if(t instanceof Date)return'"'+new Date(t.getTime()-t.getTimezoneOffset()*6e4).toISOString().slice(11,19)+'"';if(typeof t=="string")return'"'+t+'"';throw new Error(`The value "${t}" cannot be converted to a time.`)}asString(t){let n=t.length;if(n===0)return'""';if(n<42){let r="",i=-1,s=255;for(let o=0;o=55296&&s<=57343)return JSON.stringify(t);return i===-1&&'"'+t+'"'||'"'+r+t.slice(i)+'"'}else return n<5e3&&jRn.test(t)===!1?'"'+t+'"':JSON.stringify(t)}asUnsafeString(t){return'"'+t+'"'}getState(){return this._options}static restoreFromState(t){return new btt(t)}}});var vtt=w((T4r,Ttt)=>{"use strict";var HRn=JW(),qRn={mode:"standalone"},BRn=HRn.restoreFromState(qRn),GRn=null;Ttt.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})(GRn,BRn)});var TM=w((v4r,ktt)=>{"use strict";var Att=Z("node:http").STATUS_CODES,zRn=oce(),{setErrorStatusCode:VRn}=TW(),{kReplyHeaders:uT,kReplyNextErrorHandler:XW,kReplyIsRunningOnErrorHook:WRn,kRouteContext:wtt,kDisableRequestLogging:QW}=$s(),{FST_ERR_REP_INVALID_PAYLOAD_TYPE:KRn,FST_ERR_FAILED_ERROR_SERIALIZATION:ZRn}=Ko(),{getSchemaSerializer:YRn}=_M(),aue=vtt(),JRn={func:QRn,toJSON(){return this.func.name.toString()+"()"}};function XRn(e,t,n){e[WRn]=!1;let r=e[wtt];if(e[XW]===!1){Rtt(t,e,function(o,a){try{o.raw.writeHead(o.raw.statusCode,o[uT])}catch(c){o.log[QW]||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[XW]||r.errorHandler;e[XW]=Object.getPrototypeOf(i),delete e[uT]["content-type"],delete e[uT]["content-length"];let s=i.func;if(!s){e[XW]=!1,Rtt(t,e,n);return}try{let o=s(t,e.request,e);o!==void 0&&(o!==null&&typeof o.then=="function"?zRn(o,e):e.send(o))}catch(o){e.send(o)}}function QRn(e,t,n){ewn(e,n),VRn(n,e),n.statusCode<500?n.log[QW]||n.log.info({res:n,err:e},e?.message):n.log[QW]||n.log.error({req:t,res:n,err:e},e?.message),n.send(e)}function Rtt(e,t,n){let r=t.raw,i=t.statusCode;t[uT]["content-type"]=t[uT]["content-type"]??"application/json; charset=utf-8";let s;try{let o=YRn(t[wtt],i,t[uT]["content-type"]);o===!1?s=aue({error:Att[i+""],code:e.code,message:e.message,statusCode:i}):s=o(Object.create(e,{error:{value:Att[i+""]},message:{value:e.message},statusCode:{value:i}}))}catch(o){t.log[QW]||t.log.error({err:o,statusCode:r.statusCode},"The serializer for the given status code failed"),t.code(500),s=aue(new ZRn(o.message,e.message))}typeof s!="string"&&!Buffer.isBuffer(s)&&(s=aue(new KRn(typeof s))),t[uT]["content-length"]=""+Buffer.byteLength(s),n(t,s)}function $Rn(e=JRn,t){if(!t)return e;let n=Object.create(e);return n.func=t,n}function ewn(e,t){let n=t.raw,r=n.statusCode;r=r>=400?r:500,e!=null&&(e.headers!==void 0&&t.headers(e.headers),e.status>=400?r=e.status:e.statusCode>=400&&(r=e.statusCode)),n.statusCode=r}ktt.exports={buildErrorHandler:$Rn,handleError:XRn}});var RM=w((A4r,Ntt)=>{"use strict";var{kReply:cue,kRequest:uue,kState:twn,kHasBeenDecorated:nwn}=$s(),{FST_ERR_DEC_ALREADY_PRESENT:Itt,FST_ERR_DEC_MISSING_DEPENDENCY:rwn,FST_ERR_DEC_AFTER_START:iwn,FST_ERR_DEC_REFERENCE_TYPE:swn,FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:own,FST_ERR_DEC_UNDECLARED:awn}=Ko();function cwn(e,t,n,r){if(Object.hasOwn(e,t))throw new Itt(t);lue(e,t,r),n&&(typeof n.getter=="function"||typeof n.setter=="function")?Object.defineProperty(e,t,{get:n.getter,set:n.setter}):e[t]=n}function uwn(e){if(!vM(this,e))throw new awn(e,"instance");return typeof this[e]=="function"?this[e].bind(this):this[e]}function xtt(e,t,n,r){let i=e.prototype;if(Object.hasOwn(i,t)||AM(e,t))throw new Itt(t);e[nwn]=!0,lue(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 Ott(e,t){if(typeof t=="object"&&t&&!(typeof t.getter=="function"||typeof t.setter=="function"))throw new swn(e,typeof t)}function lwn(e,t,n){return due(this,e),cwn(this,e,t,n),this}function vM(e,t){return t?t in e||e.prototype&&t in e.prototype||AM(e,t):e in this}function AM(e,t){return e.props?e.props.find(({key:n})=>n===t):!1}function dwn(e){return e&&AM(this[uue],e)?!0:vM(this[uue].prototype,e)}function fwn(e){return e&&AM(this[cue],e)?!0:vM(this[cue].prototype,e)}function lue(e,t,n){if(n!=null){if(!Array.isArray(n))throw new own(t);for(let r=0;r!==n.length;++r)if(!vM(e,n[r]))throw new rwn(n[r])}}function pwn(e,t,n){return due(this,e),Ott(e,t),xtt(this[cue],e,t,n),this}function hwn(e,t,n){return due(this,e),Ott(e,t),xtt(this[uue],e,t,n),this}function due(e,t){if(e[twn].started)throw new iwn(t)}Ntt.exports={add:lwn,exist:vM,existRequest:dwn,existReply:fwn,dependencies:lue,decorateReply:pwn,decorateRequest:hwn,getInstanceDecorator:uwn,hasKey:AM}});var a3=w((R4r,o3)=>{"use strict";var $W=Z("node:stream").finished,{kFourOhFourContext:Ptt,kReplyErrorHandlerCalled:jtt,kReplyHijacked:gue,kReplyStartTime:kM,kReplyEndTime:yue,kReplySerializer:eg,kReplySerializerDefault:e3,kReplyIsError:t3,kReplyHeaders:jr,kReplyTrailers:Zo,kReplyHasStatusCode:Sue,kReplyIsRunningOnErrorHook:Eue,kReplyNextErrorHandler:mwn,kDisableRequestLogging:Htt,kSchemaResponse:n3,kReplyCacheSerializeFns:JS,kSchemaController:fue,kOptions:gwn,kRouteContext:Mn,kTimeoutTimer:r3,kOnAbort:Uk,kRequestSignal:qtt}=$s(),{onSendHookRunner:Btt,onResponseHookRunner:ywn,preHandlerHookRunner:Swn,preSerializationHookRunner:Ewn}=KS(),Ctt=pce()[Symbol.for("internals")],bwn=bM(),mue=bwn.now,{handleError:Mtt}=TM(),{getSchemaSerializer:_wn}=_M(),pue={JSON:"application/json; charset=utf-8",PLAIN:"text/plain; charset=utf-8",OCTET:"application/octet-stream"},{FST_ERR_REP_INVALID_PAYLOAD_TYPE:Twn,FST_ERR_REP_RESPONSE_BODY_CONSUMED:vwn,FST_ERR_REP_READABLE_STREAM_LOCKED:Awn,FST_ERR_REP_ALREADY_SENT:Rwn,FST_ERR_SEND_INSIDE_ONERR:wwn,FST_ERR_BAD_STATUS_CODE:kwn,FST_ERR_BAD_TRAILER_NAME:Iwn,FST_ERR_BAD_TRAILER_VALUE:xwn,FST_ERR_MISSING_SERIALIZATION_FN:Own,FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:Nwn,FST_ERR_DEC_UNDECLARED:Pwn}=Ko(),Ltt=RM(),Gtt=Object.prototype.toString;function Hr(e,t,n){this.raw=e,this[eg]=null,this[jtt]=!1,this[t3]=!1,this[Eue]=!1,this.request=t,this[jr]={},this[Zo]=null,this[Sue]=!1,this[kM]=void 0,this.log=n}Hr.props=[];Object.defineProperties(Hr.prototype,{[Mn]:{get(){return this.request[Mn]}},elapsedTime:{get(){return this[kM]===void 0?0:(this[yue]||mue())-this[kM]}},server:{get(){return this.request[Mn].server}},sent:{enumerable:!0,get(){return(this[gue]||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[gue]=!0,this.request[qtt]&&(clearTimeout(this.request[r3]),this.request[r3]=null,this.request[Uk]&&(this.request.raw.removeListener("close",this.request[Uk]),this.request[Uk]=null)),this};Hr.prototype.send=function(e){if(this[Eue])throw new wwn;if(this.sent===!0)return this.log.warn({err:new Rwn(this.request.url,this.request.method)}),this;if(this[t3]||e instanceof Error)return this[t3]=!1,Fk(this,e,lT),this;if(e===void 0)return lT(this,e),this;let t=this.getHeader("content-type"),n=t!==void 0;if(e!==null){if(typeof e.pipe=="function"||typeof e.getReader=="function"||Gtt.call(e)==="[object Response]")return lT(this,e),this;if(e.buffer instanceof ArrayBuffer){n||(this[jr]["content-type"]=pue.OCTET);let r=Buffer.isBuffer(e)?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength);return lT(this,r),this}if(!n&&typeof e=="string")return this[jr]["content-type"]=pue.PLAIN,lT(this,e),this}if(this[eg]!==null){if(typeof e!="string")return Dtt(this,e),this;e=this[eg](e)}else if(!n||t.indexOf("json")!==-1){if(!n)this[jr]["content-type"]=pue.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 Dtt(this,e),this}return lT(this,e),this};Hr.prototype.getHeader=function(e){e=e.toLowerCase();let t=this[jr][e];return t!==void 0?t:this.raw.getHeader(e)};Hr.prototype.getHeaders=function(){return{...this.raw.getHeaders(),...this[jr]}};Hr.prototype.hasHeader=function(e){return e=e.toLowerCase(),this[jr][e]!==void 0||this.raw.hasHeader(e)};Hr.prototype.removeHeader=function(e){return delete this[jr][e.toLowerCase()],this};Hr.prototype.header=function(e,t=""){return e=e.toLowerCase(),this[jr][e]&&e==="set-cookie"?(typeof this[jr][e]=="string"&&(this[jr][e]=[this[jr][e]]),Array.isArray(t)?Array.prototype.push.apply(this[jr][e],t):this[jr][e].push(t)):this[jr][e]=t,this};Hr.prototype.headers=function(e){let t=Object.keys(e);for(let n=0;n!==t.length;++n){let r=t[n];this.header(r,e[r])}return this};var Cwn=new Set(["transfer-encoding","content-length","host","cache-control","max-forwards","te","authorization","set-cookie","content-encoding","content-type","content-range","trailer"]);Hr.prototype.trailer=function(e,t){if(e=e.toLowerCase(),Cwn.has(e))throw new Iwn(e);if(typeof t!="function")throw new xwn(e,typeof t);return this[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 kwn(e||String(e));return this.raw.statusCode=t,this[Sue]=!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][n3]?.[e]?.[t]:n=this[Mn][n3]?.[e]:typeof e=="object"&&(n=this[Mn][JS]?.get(e)),n};Hr.prototype.compileSerializationSchema=function(e,t=null,n=null){let{request:r}=this,{method:i,url:s}=r;if(this[Mn][JS]?.has(e))return this[Mn][JS].get(e);let a=(this[Mn].serializerCompiler||this.server[fue].serializerCompiler||this.server[fue].setupSerializer(this.server[gwn])||this.server[fue].serializerCompiler)({schema:e,method:i,url:s,httpStatus:t,contentType:n});return this[Mn][JS]==null&&(this[Mn][JS]=new WeakMap),this[Mn][JS].set(e,a),a};Hr.prototype.serializeInput=function(e,t,n,r){let i=n,s;if(n=typeof t=="string"||typeof t=="number"?t:n,r=n&&i!==n?i:r,n!=null){if(r!=null?s=this[Mn][n3]?.[n]?.[r]:s=this[Mn][n3]?.[n],s==null)throw r?new Nwn(n,r):new Own(n)}else this[Mn][JS]?.has(t)?s=this[Mn][JS].get(t):s=this.compileSerializationSchema(t,n,r);return s(e)};Hr.prototype.serialize=function(e){return this[eg]!==null?this[eg](e):this[Mn]&&this[Mn][e3]?this[Mn][e3](e,this.raw.statusCode):Vtt(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[Sue]?this.raw.statusCode:302),this.header("location",e).code(t).send()};Hr.prototype.callNotFound=function(){return qwn(this),this};Hr.prototype.then=function(e,t){if(this.sent){e();return}$W(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(!Ltt.hasKey(this,e)&&!Ltt.exist(this,e))throw new Pwn(e,"reply");let t=this[e];return typeof t=="function"?t.bind(this):t};function Dtt(e,t){e[Mn].preSerialization!==null?Ewn(e[Mn].preSerialization,e.request,e,t,Utt):Utt(null,void 0,e,t)}function Utt(e,t,n,r){if(e!=null){Fk(n,e);return}try{n[eg]!==null?r=n[eg](r):n[Mn]&&n[Mn][e3]?r=n[Mn][e3](r,n.raw.statusCode):r=Vtt(n[Mn],r,n.raw.statusCode,n[jr]["content-type"])}catch(i){Mwn(i,n),Fk(n,i);return}lT(n,r)}function Mwn(e,t){e.serialization=t[Mn].config}function lT(e,t){e[Mn].onSend!==null?Btt(e[Mn].onSend,e.request,e,t,Lwn):ztt(e,t)}function Lwn(e,t,n,r){e!=null?Fk(n,e):ztt(n,r)}function hue(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 ztt(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(Gtt.call(t)==="[object Response]"){if(typeof t.status=="number"&&e.code(t.status),typeof t.headers=="object"&&typeof t.headers.forEach=="function")for(let[s,o]of t.headers)e.header(s,o);if(t.body!==null&&t.bodyUsed)throw new vwn;t=t.body}let i=n.statusCode;if(t==null){i>=200&&i!==204&&i!==304&&r.method!=="HEAD"&&e[Zo]===null&&(e[jr]["content-length"]="0"),hue(e,i),wM(t,n,e);return}if(i>=100&&i<200||i===204){e.removeHeader("content-type"),e.removeHeader("content-length"),hue(e,i),wM(void 0,n,e),typeof t.resume=="function"&&(t.on("error",s3),t.resume());return}if(typeof t.pipe=="function"){Uwn(t,n,e);return}if(typeof t.getReader=="function"){Dwn(t,n,e);return}if(typeof t!="string"&&!Buffer.isBuffer(t))throw new Twn(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))}hue(e,i),n.write(t),wM(t,n,e)}function i3(e,t,n){t.code==="ERR_STREAM_PREMATURE_CLOSE"?e[Htt]||e.info({res:n},"stream closed prematurely"):e.warn({err:t},"response terminated with an error with headers already sent")}function Dwn(e,t,n){if(e.locked)throw new Awn;let r=!0,i=!1,s=!1,o=e.getReader();if($W(t,function(l){r&&(l!=null&&t.headersSent&&!i&&(i=!0,i3(n.log,l,t)),o.cancel().catch(s3))}),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,wM(null,t,n);return}if(t.destroyed){r=!1,o.cancel().catch(s3);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,i3(n.log,l,n)),t.destroy()):Fk(n,l)}o.read().then(a,u)}function Uwn(e,t,n){let r=!0,i=!1;if(Fwn(e,t,n),$W(e,{readable:!0,writable:!1},function(s){r=!1,s!=null&&(t.headersSent||n.request.raw.aborted===!0?(i||(i=!0,i3(n.log,s,n)),t.destroy()):Fk(n,s))}),$W(t,function(s){r&&(s!=null&&t.headersSent&&!i&&(i=!0,i3(n.log,s,t)),typeof e.destroy=="function"?e.destroy():typeof e.close=="function"?e.close(s3):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 wM(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 Fwn(e,t,n){n[Zo]!==null&&e.on("end",()=>wM(null,t,n))}function Fk(e,t,n){e[Mn].onError!==null&&!e[mwn]?(e[Eue]=!0,Btt(e[Mn].onError,e.request,e,t,()=>Mtt(e,t,n))):Mtt(e,t,n)}function jwn(e){e[kM]=mue();let t=n=>{e[yue]=mue(),e.raw.removeListener("finish",t),e.raw.removeListener("error",t);let r=e[Mn];e.request[qtt]&&(clearTimeout(e.request[r3]),e.request[r3]=null,e.request[Uk]&&(e.request.raw.removeListener("close",e.request[Uk]),e.request[Uk]=null)),r&&r.onResponse!==null?ywn(r.onResponse,e.request,e,Ftt):Ftt(n,e.request,e)};e.raw.on("finish",t),e.raw.on("error",t)}function Ftt(e,t,n){if(n.log[Htt])return;let r=n.elapsedTime;if(e!=null){n.log.error({res:n,err:e,responseTime:r},"request errored");return}n.log.info({res:n,responseTime:r},"request completed")}function Hwn(e){let t=e.props.slice();function n(r,i,s){this.raw=r,this[t3]=!1,this[jtt]=!1,this[gue]=!1,this[eg]=null,this.request=i,this[jr]={},this[Zo]=null,this[kM]=void 0,this[yue]=void 0,this.log=s;let o;for(let a=0;a{"use strict";function bue(e){if(!e)throw new TypeError("argument req is required");let t=e.headers["x-forwarded-for"],n=e.socket.remoteAddress;if(!t||typeof t!="string")return[n];if(t.indexOf(",")===-1){let r=t.trim();return r.length?[n,r]:[n]}else return Bwn(t,n)}function Bwn(e,t){let n=[t],r=e.length,i=r,s,o;for(o=r-1;o>=0;--o)s=e[o],s===" "?i===r&&(i=r=o):s===","?(i!==r&&n.push(e.slice(i,r)),i=r=o):i=o;return i!==r&&n.push(e.substring(i,r)),n}c3.exports=bue;c3.exports.default=bue;c3.exports.forwarded=bue});var Ztt=w((Ktt,u3)=>{(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=_ue;jk.exports.default=_ue;jk.exports.proxyaddr=_ue;jk.exports.all=Xtt;jk.exports.compile=Qtt;var Gwn=Wtt(),Jtt=Ztt(),zwn=/^\d+$/u,l3=Jtt.isValid,d3=Jtt.parse,Ytt={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 Xtt(e,t){let n=Gwn(e);if(!t)return n;typeof t!="function"&&(t=Qtt(t));for(let r=0;ri)throw new TypeError("invalid range on address: "+e);return[r,s]}function Zwn(e){let t=d3(e);return t.kind()==="ipv4"?t.prefixLengthFromSubnetMask():null}function _ue(e,t){if(!e)throw new TypeError("req argument is required");if(!t)throw new TypeError("trust argument is required");let n=Xtt(e,t);return n[n.length-1]}function Ywn(){return!1}function Jwn(e){return function(n){if(!l3(n))return!1;let r=d3(n),i,s=r.kind();for(let o=0;o{"use strict";var f3=$tt(),{kHasBeenDecorated:Qwn,kSchemaBody:$wn,kSchemaHeaders:ekn,kSchemaParams:tkn,kSchemaQuerystring:ent,kSchemaController:Tue,kOptions:nkn,kRequestCacheValidateFns:XS,kRouteContext:oc,kRequestOriginalUrl:vue,kRequestSignal:tnt,kOnAbort:rkn}=$s(),{FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:ikn,FST_ERR_DEC_UNDECLARED:skn}=Ko(),nnt=RM(),rnt={body:$wn,headers:ekn,params:tkn,querystring:ent,query:ent};function Aue(e,t,n,r,i,s){this.id=e,this[oc]=s,this.params=t,this.raw=n,this.query=r,this.log=i,this.body=void 0}Aue.props=[];function okn(e){if(typeof e=="function")return e;if(e===!0)return function(){return!0};if(typeof e=="number")return function(t,n){return nn.trim());return f3.compile(t)}return f3.compile(e)}function akn(e,t){return t?ckn(e,t):ont(e)}function ont(e){let t=e.props.slice();function n(r,i,s,o,a,c){this.id=r,this[oc]=c,this.params=i,this.raw=s,this.query=o,this.log=a,this.body=void 0;let u;for(let l=0;l{e.signal.aborted||e.abort()};return this.raw.on("close",t),this[rkn]=t,e.signal}},ip:{get(){if(this.socket)return this.socket.remoteAddress}},host:{get(){return this.raw.headers.host??this.raw.headers[":authority"]??""}},hostname:{get(){return this.host[0]==="["?this.host.slice(0,this.host.indexOf("]")+1):this.host.split(":",1)[0]}},port:{get(){let e=/(?:\d+)$/,t=this.headers.host??this.headers[":authority"]??"",n=e.exec(t);return n===null||n[1]===void 0?null:parseInt(n.groups.port.slice(1),10)}},protocol:{get(){if(this.socket)return this.socket.encrypted?"https":"http"}},headers:{get(){return this.additionalHeaders?Object.assign({},this.raw.headers,this.additionalHeaders):this.raw.headers},set(e){this.additionalHeaders=e}},getValidationFunction:{value:function(e){if(typeof e=="string"){let t=rnt[e];return this[oc][t]}else if(typeof e=="object")return this[oc][XS]?.get(e)}},compileValidationSchema:{value:function(e,t=null){let{method:n,url:r}=this;if(this[oc][XS]?.has(e))return this[oc][XS].get(e);let s=(this[oc].validatorCompiler||this.server[Tue].validatorCompiler||this.server[Tue].setupValidator(this.server[nkn])||this.server[Tue].validatorCompiler)({schema:e,method:n,url:r,httpPart:t});return this[oc][XS]==null&&(this[oc][XS]=new WeakMap),this[oc][XS].set(e,s),s}},validateInput:{value:function(e,t,n){n=typeof t=="string"?t:n;let r=n!=null&&typeof n=="string"&&rnt[n],i;if(r&&(i=this[oc][r]),i==null&&(t==null||typeof t!="object"||Array.isArray(t)))throw new ikn(n);return i==null&&(this[oc][XS]?.has(t)?i=this[oc][XS].get(t):i=this.compileValidationSchema(t,n)),i(e)}},getDecorator:{value:function(e){snt(this,e);let t=this[e];return typeof t=="function"?t.bind(this):t}},setDecorator:{value:function(e,t){snt(this,e),this[e]=t}}});Rue.exports=Aue;Rue.exports.buildRequest=akn});var h3=w((x4r,ant)=>{"use strict";var{kFourOhFourContext:ukn,kReplySerializerDefault:lkn,kSchemaErrorFormatter:dkn,kErrorHandler:fkn,kChildLoggerFactory:pkn,kOptions:hkn,kReply:mkn,kRequest:gkn,kBodyLimit:ykn,kLogLevel:Skn,kContentTypeParser:Ekn,kRouteByFastify:bkn,kRequestCacheValidateFns:_kn,kReplyCacheSerializeFns:Tkn,kHandlerTimeout:vkn}=$s();function Akn({schema:e,handler:t,config:n,requestIdLogLabel:r,childLoggerFactory:i,errorHandler:s,bodyLimit:o,logLevel:a,logSerializers:c,attachValidation:u,validatorCompiler:l,serializerCompiler:d,replySerializer:f,schemaErrorFormatter:p,exposeHeadRoute:h,prefixTrailingSlash:m,server:y,isFastify:g,handlerTimeout:E}){this.schema=e,this.handler=t,this.Reply=y[mkn],this.Request=y[gkn],this.contentTypeParser=y[Ekn],this.onRequest=null,this.onSend=null,this.onError=null,this.onTimeout=null,this.preHandler=null,this.onResponse=null,this.preSerialization=null,this.onRequestAbort=null,this.config=n,this.errorHandler=s||y[fkn],this.requestIdLogLabel=r||y[hkn].requestIdLogLabel,this.childLoggerFactory=i||y[pkn],this._middie=null,this._parserOptions={limit:o||y[ykn]},this.exposeHeadRoute=h,this.prefixTrailingSlash=m,this.logLevel=a||y[Skn],this.logSerializers=c,this[ukn]=null,this.attachValidation=u,this[lkn]=f,this.schemaErrorFormatter=p||y[dkn]||Rkn,this[bkn]=g,this[_kn]=null,this[Tkn]=null,this.validatorCompiler=l||null,this.serializerCompiler=d||null,this.handlerTimeout=E||y[vkn]||0,this.server=y}function Rkn(e,t){let n="";for(let i=0;i!==e.length;++i){let s=e[i];n+=t+(s.instancePath||"")+" "+s.message+", "}return new Error(n.slice(0,-2))}ant.exports=Akn});var kue=w((O4r,Hk)=>{"use strict";var wkn=typeof Buffer<"u",cnt=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,unt=/"(?: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 lnt(e,t,n){n==null&&t!==null&&typeof t=="object"&&(n=t,t=void 0),wkn&&Buffer.isBuffer(e)&&(e=e.toString()),e&&e.charCodeAt(0)===65279&&(e=e.slice(1));let r=JSON.parse(e,t);if(r===null||typeof r!="object")return r;let i=n&&n.protoAction||"error",s=n&&n.constructorAction||"error";if(i==="ignore"&&s==="ignore")return r;if(i!=="ignore"&&s!=="ignore"){if(cnt.test(e)===!1&&unt.test(e)===!1)return r}else if(i!=="ignore"&&s==="ignore"){if(cnt.test(e)===!1)return r}else if(unt.test(e)===!1)return r;return dnt(r,{protoAction:i,constructorAction:s,safe:n&&n.safe})}function dnt(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 wue(e,t,n){let{stackTraceLimit:r}=Error;Error.stackTraceLimit=0;try{return lnt(e,t,n)}finally{Error.stackTraceLimit=r}}function kkn(e,t){let{stackTraceLimit:n}=Error;Error.stackTraceLimit=0;try{return lnt(e,t,{safe:!0})}catch{return}finally{Error.stackTraceLimit=n}}Hk.exports=wue;Hk.exports.default=wue;Hk.exports.parse=wue;Hk.exports.safeParse=kkn;Hk.exports.scan=dnt});var Pue=w((N4r,OM)=>{"use strict";var{AsyncResource:Ikn}=Z("node:async_hooks"),{FifoMap:hnt}=AV(),{parse:xkn}=kue(),xM=sce(),{kDefaultJsonParse:IM,kContentTypeParser:qk,kBodyLimit:Okn,kRequestPayloadStream:mnt,kState:xue,kTestInternals:Nkn,kReplyIsError:fnt,kRouteContext:Pkn}=$s(),{FST_ERR_CTP_INVALID_TYPE:m3,FST_ERR_CTP_EMPTY_TYPE:Ckn,FST_ERR_CTP_ALREADY_PRESENT:Mkn,FST_ERR_CTP_INVALID_HANDLER:Lkn,FST_ERR_CTP_INVALID_PARSE_TYPE:Dkn,FST_ERR_CTP_BODY_TOO_LARGE:pnt,FST_ERR_CTP_INVALID_MEDIA_TYPE:Ukn,FST_ERR_CTP_INVALID_CONTENT_LENGTH:Fkn,FST_ERR_CTP_EMPTY_JSON_BODY:jkn,FST_ERR_CTP_INSTANCE_ALREADY_STARTED:Oue,FST_ERR_CTP_INVALID_JSON_BODY:Hkn}=Ko(),{FSTSEC001:qkn}=xk();function tg(e,t,n){this[IM]=ynt(t,n),this.customParsers=new Map,this.customParsers.set("application/json",new Iue(!0,!1,e,this[IM])),this.customParsers.set("text/plain",new Iue(!0,!1,e,Nue)),this.parserList=["application/json","text/plain"],this.parserRegExpList=[],this.cache=new hnt(100)}tg.prototype.add=function(e,t,n){let r=typeof e=="string";if(r){if(e=e.trim().toLowerCase(),e.length===0)throw new Ckn}else if(!(e instanceof RegExp))throw new m3;if(typeof n!="function")throw new Lkn;if(this.existingParser(e))throw new Mkn(e);if(t.parseAs!==void 0&&t.parseAs!=="string"&&t.parseAs!=="buffer")throw new Dkn(t.parseAs);let i=new Iue(t.parseAs==="string",t.parseAs==="buffer",t.bodyLimit,n);if(e==="*")this.customParsers.set("",i);else if(r){let s=new xM(e);if(s.isValid===!1)throw new m3;let o=s.toString();this.parserList.unshift(o),this.customParsers.set(o,i)}else Kkn(e),this.parserRegExpList.unshift(e),this.customParsers.set(e.toString(),i)};tg.prototype.hasParser=function(e){if(typeof e=="string")e=new xM(e).toString();else{if(!(e instanceof RegExp))throw new m3;e=e.toString()}return this.customParsers.has(e)};tg.prototype.existingParser=function(e){if(typeof e=="string"){let t=new xM(e).toString();if(e==="application/json"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==this[IM];if(e==="text/plain"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==Nue}return this.hasParser(e)};tg.prototype.getParser=function(e){typeof e=="string"&&(e=new xM(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 hnt(100)};tg.prototype.remove=function(e){let t;if(typeof e=="string")e=new xM(e).toString(),t=this.parserList;else{if(!(e instanceof RegExp))throw new m3;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[fnt]=!0,r.send(new Ukn);return}let s=new Ikn("content-type-parser:run",n),o=s.bind(c);if(i.asString===!0||i.asBuffer===!0){gnt(n,r,r[Pkn]._parserOptions,i,o);return}let a=i.fn(n,n[mnt],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[fnt]=!0,r.send(u);return}n.body=l,t(n,r)}};function gnt(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 pnt,void 0);return}let c=0,u=s?"":[],l=e[mnt]||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 pnt,void 0);return}s?u+=p:u.push(p)}function f(p){if(l.removeListener("data",d),l.removeListener("end",f),l.removeListener("error",f),p!=null){typeof p.statusCode=="number"&&p.statusCode>=400||(p.statusCode=400),i(p,void 0);return}if(!Number.isNaN(a)&&(l.receivedEncodedLength||c)!==a){i(new Fkn,void 0);return}s||(u=Buffer.concat(u));let h=r.fn(e,u,i);h&&typeof h.then=="function"&&h.then(m=>{i(null,m)},i)}}function ynt(e,t){let n={protoAction:e,constructorAction:t};return r;function r(i,s,o){if(s.length===0){o(new jkn,void 0);return}try{o(null,xkn(s,n))}catch{o(new Hkn,void 0)}}}function Nue(e,t,n){n(null,t)}function Iue(e,t,n,r){this.asString=e,this.asBuffer=t,this.bodyLimit=n,this.fn=r}function Bkn(e){let t=new tg;return t[IM]=e[IM],t.customParsers=new Map(e.customParsers.entries()),t.parserList=e.parserList.slice(),t.parserRegExpList=e.parserRegExpList.slice(),t}function Gkn(e,t,n){if(this[xue].started)throw new Oue("addContentTypeParser");return typeof t=="function"&&(n=t,t={}),t||(t={}),t.bodyLimit||(t.bodyLimit=this[Okn]),Array.isArray(e)?e.forEach(r=>this[qk].add(r,t,n)):this[qk].add(e,t,n),this}function zkn(e){return this[qk].hasParser(e)}function Vkn(e){if(this[xue].started)throw new Oue("removeContentTypeParser");if(Array.isArray(e))for(let t of e)this[qk].remove(t);else this[qk].remove(e)}function Wkn(){if(this[xue].started)throw new Oue("removeAllContentTypeParsers");this[qk].removeAll()}function Kkn(e){e.source[0]!=="^"&&e.source.includes(";?")===!1&&qkn(e.source)}OM.exports=tg;OM.exports.helpers={buildContentTypeParser:Bkn,addContentTypeParser:Gkn,hasContentTypeParser:zkn,removeContentTypeParser:Vkn,removeAllContentTypeParsers:Wkn};OM.exports.defaultParsers={getDefaultJsonParser:ynt,defaultTextParser:Nue};OM.exports[Nkn]={rawBody:gnt}});var ng=w(NM=>{"use strict";Object.defineProperty(NM,"__esModule",{value:!0});NM.checkMetadata=void 0;var Zkn=pn(),Ykn={keyword:"metadata",schemaType:"object",code(e){Snt(e);let{gen:t,schema:n,it:r}=e;if((0,Zkn.alwaysValidSchema)(r,n))return;let i=t.name("valid");e.subschema({keyword:"metadata",jtdMetadata:!0},i),e.ok(i)}};function Snt({it:e,keyword:t},n){if(e.jtdMetadata!==n)throw new Error(`JTD: "${t}" cannot be used in this schema location`)}NM.checkMetadata=Snt;NM.default=Ykn});var g3=w(CM=>{"use strict";Object.defineProperty(CM,"__esModule",{value:!0});CM.hasRef=void 0;var Ent=j_(),PM=Ot(),Jkn=Km(),bnt=gd(),_nt=Fse(),Xkn=ng(),Qkn={keyword:"ref",schemaType:"string",code(e){(0,Xkn.checkMetadata)(e);let{gen:t,data:n,schema:r,parentSchema:i,it:s}=e,{schemaEnv:{root:o}}=s,a=t.name("valid");i.nullable?(t.var(a,(0,PM._)`${n} === null`),t.if((0,PM.not)(a),c)):(t.var(a,!1),c()),e.ok(a);function c(){var d;let f=(d=o.schema.definitions)===null||d===void 0?void 0:d[r];if(!f)throw new Jkn.default(s.opts.uriResolver,"",r,`No definition ${r}`);Cue(f)||!s.opts.inlineRefs?u(f):l(f)}function u(d){let f=Ent.compileSchema.call(s.self,new Ent.SchemaEnv({schema:d,root:o,schemaPath:`/definitions/${r}`})),p=(0,_nt.getValidate)(e,f),h=t.const("_errs",bnt.default.errors);(0,_nt.callRef)(e,p,f,f.$async),t.assign(a,(0,PM._)`${h} === ${bnt.default.errors}`)}function l(d){let f=t.scopeValue("schema",s.opts.code.source===!0?{ref:d,code:(0,PM.stringify)(d)}:{ref:d});e.subschema({schema:d,dataTypes:[],schemaPath:PM.nil,topSchemaRef:f,errSchemaPath:`/definitions/${r}`},a)}}};function Cue(e){for(let t in e){let n;if(t==="ref"||typeof(n=e[t])=="object"&&Cue(n))return!0}return!1}CM.hasRef=Cue;CM.default=Qkn});var Lue=w(Mue=>{"use strict";Object.defineProperty(Mue,"__esModule",{value:!0});var $kn=/t|\s/i,eIn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,tIn=/^(\d\d):(\d\d):(\d\d)(?:\.\d+)?(?:z|([+-]\d\d)(?::?(\d\d))?)$/i,nIn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function vnt(e,t){let n=e.split($kn);return n.length===2&&Tnt(n[0])&&rIn(n[1])||t&&n.length===1&&Tnt(n[0])}Mue.default=vnt;function Tnt(e){let t=eIn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&(i<=nIn[r]||r===2&&i===29&&(n%100===0?n%400===0:n%4===0))}function rIn(e){let t=tIn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3],s=+(t[4]||0),o=+(t[5]||0);return n<=23&&r<=59&&i<=59||n-s===23&&r-o===59&&i===60}vnt.code='require("ajv/dist/runtime/timestamp").default'});var Bk=w(QS=>{"use strict";Object.defineProperty(QS,"__esModule",{value:!0});QS.typeErrorParams=QS.typeErrorMessage=QS.typeError=void 0;var iIn=Ot();function sIn(e){return{message:t=>Ant(t,e),params:t=>Rnt(t,e)}}QS.typeError=sIn;function Ant({parentSchema:e},t){return e?.nullable?`must be ${t} or null`:`must be ${t}`}QS.typeErrorMessage=Ant;function Rnt({parentSchema:e},t){return(0,iIn._)`{type: ${t}, nullable: ${!!e?.nullable}}`}QS.typeErrorParams=Rnt});var Due=w(Gk=>{"use strict";Object.defineProperty(Gk,"__esModule",{value:!0});Gk.intRange=void 0;var El=Ot(),oIn=Lue(),aIn=pn(),cIn=ng(),wnt=Bk();Gk.intRange={int8:[-128,127,3],uint8:[0,255,3],int16:[-32768,32767,5],uint16:[0,65535,5],int32:[-2147483648,2147483647,10],uint32:[0,4294967295,10]};var uIn={message:e=>(0,wnt.typeErrorMessage)(e,e.schema),params:e=>(0,wnt.typeErrorParams)(e,e.schema)};function lIn(e){let{gen:t,data:n,it:r}=e,{timestamp:i,allowDate:s}=r.opts;if(i==="date")return(0,El._)`${n} instanceof Date `;let o=(0,aIn.useFunc)(t,oIn.default),a=s?(0,El._)`, true`:El.nil,c=(0,El._)`typeof ${n} == "string" && ${o}(${n}${a})`;return i==="string"?c:(0,El.or)((0,El._)`${n} instanceof Date`,c)}var dIn={keyword:"type",schemaType:"string",error:uIn,code(e){(0,cIn.checkMetadata)(e);let{data:t,schema:n,parentSchema:r,it:i}=e,s;switch(n){case"boolean":case"string":s=(0,El._)`typeof ${t} == ${n}`;break;case"timestamp":{s=lIn(e);break}case"float32":case"float64":s=(0,El._)`typeof ${t} == "number"`;break;default:{let o=n;if(s=(0,El._)`typeof ${t} == "number" && isFinite(${t}) && !(${t} % 1)`,!i.opts.int32range&&(o==="int32"||o==="uint32"))o==="uint32"&&(s=(0,El._)`${s} && ${t} >= 0`);else{let[a,c]=Gk.intRange[o];s=(0,El._)`${s} && ${t} >= ${a} && ${t} <= ${c}`}}}e.pass(r.nullable?(0,El.or)((0,El._)`${t} === null`,s):s)}};Gk.default=dIn});var Vk=w(zk=>{"use strict";Object.defineProperty(zk,"__esModule",{value:!0});zk.checkNullableObject=zk.checkNullable=void 0;var y3=Ot();function knt({gen:e,data:t,parentSchema:n},r=y3.nil){let i=e.name("valid");return n.nullable?(e.let(i,(0,y3._)`${t} === null`),r=(0,y3.not)(i)):e.let(i,!1),[i,r]}zk.checkNullable=knt;function fIn(e,t){let[n,r]=knt(e,t);return[n,(0,y3._)`${r} && typeof ${e.data} == "object" && !Array.isArray(${e.data})`]}zk.checkNullableObject=fIn});var Int=w(Uue=>{"use strict";Object.defineProperty(Uue,"__esModule",{value:!0});var $S=Ot(),pIn=ng(),hIn=Vk(),mIn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,$S._)`{allowedValues: ${e}}`},gIn={keyword:"enum",schemaType:"array",error:mIn,code(e){(0,pIn.checkMetadata)(e);let{gen:t,data:n,schema:r,schemaValue:i,parentSchema:s,it:o}=e;if(r.length===0)throw new Error("enum must have non-empty array");if(r.length!==new Set(r).size)throw new Error("enum items must be unique");let a,c=(0,$S._)`typeof ${n} == "string"`;if(r.length>=o.opts.loopEnum){let l;[a,l]=(0,hIn.checkNullable)(e,c),t.if(l,u)}else{if(!Array.isArray(r))throw new Error("ajv implementation error");a=(0,$S.and)(c,(0,$S.or)(...r.map(l=>(0,$S._)`${n} === ${l}`))),s.nullable&&(a=(0,$S.or)((0,$S._)`${n} === null`,a))}e.pass(a);function u(){t.forOf("v",i,l=>t.if((0,$S._)`${a} = ${n} === ${l}`,()=>t.break()))}}};Uue.default=gIn});var Ont=w(Fue=>{"use strict";Object.defineProperty(Fue,"__esModule",{value:!0});var yIn=pn(),SIn=Sa(),xnt=Ot(),EIn=ng(),bIn=Vk(),_In=Bk(),TIn={keyword:"elements",schemaType:"object",error:(0,_In.typeError)("array"),code(e){(0,EIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e;if((0,yIn.alwaysValidSchema)(i,r))return;let[s]=(0,bIn.checkNullable)(e);t.if((0,xnt.not)(s),()=>t.if((0,xnt._)`Array.isArray(${n})`,()=>t.assign(s,(0,SIn.validateArray)(e)),()=>e.error())),e.ok(s)}};Fue.default=TIn});var Hue=w(eE=>{"use strict";Object.defineProperty(eE,"__esModule",{value:!0});eE.validateProperties=eE.error=void 0;var jue=Sa(),Nnt=pn(),rg=Ot(),vIn=ng(),AIn=Vk(),Pnt=Bk(),Wk;(function(e){e.Additional="additional",e.Missing="missing"})(Wk||(Wk={}));eE.error={message:e=>{let{params:t}=e;return t.propError?t.propError===Wk.Additional?"must NOT have additional properties":`must have property '${t.missingProperty}'`:(0,Pnt.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,Pnt.typeErrorParams)(e,"object")}};var RIn={keyword:"properties",schemaType:"object",error:eE.error,code:Cnt};function Cnt(e){(0,vIn.checkMetadata)(e);let{gen:t,data:n,parentSchema:r,it:i}=e,{additionalProperties:s,nullable:o}=r;if(i.jtdDiscriminator&&o)throw new Error("JTD: nullable inside discriminator mapping");if(p())throw new Error("JTD: properties and optionalProperties have common members");let[a,c]=h("properties"),[u,l]=h("optionalProperties");if(c.length===0&&l.length===0&&s)return;let[d,f]=i.jtdDiscriminator===void 0?(0,AIn.checkNullableObject)(e,n):[t.let("valid",!1),!0];t.if(f,()=>t.assign(d,!0).block(()=>{m(c,"properties",!0),m(l,"optionalProperties"),s||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,jue.allSchemaProperties)(b):[];if(i.jtdDiscriminator&&_.some(A=>A===i.jtdDiscriminator))throw new Error(`JTD: discriminator tag used in ${S}`);let T=_.filter(A=>!(0,Nnt.alwaysValidSchema)(i,b[A]));return[_,T]}function m(S,b,_){let T=t.var("valid");for(let R of S)t.if((0,jue.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,Nnt.schemaRefOrVal)(i,r[_],_);A=(0,rg.not)((0,jue.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}}eE.validateProperties=Cnt;eE.default=RIn});var Lnt=w(que=>{"use strict";Object.defineProperty(que,"__esModule",{value:!0});var Mnt=Hue(),wIn={keyword:"optionalProperties",schemaType:"object",error:Mnt.error,code(e){e.parentSchema.properties||(0,Mnt.validateProperties)(e)}};que.default=wIn});var Unt=w(Bue=>{"use strict";Object.defineProperty(Bue,"__esModule",{value:!0});var dT=Ot(),kIn=ng(),IIn=Vk(),Dnt=Bk(),S3=Aoe(),xIn={message:e=>{let{schema:t,params:n}=e;return n.discrError?n.discrError===S3.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in mapping`:(0,Dnt.typeErrorMessage)(e,"object")},params:e=>{let{schema:t,params:n}=e;return n.discrError?(0,dT._)`{error: ${n.discrError}, tag: ${t}, tagValue: ${n.tag}}`:(0,Dnt.typeErrorParams)(e,"object")}},OIn={keyword:"discriminator",schemaType:"string",implements:["mapping"],error:xIn,code(e){(0,kIn.checkMetadata)(e);let{gen:t,data:n,schema:r,parentSchema:i}=e,[s,o]=(0,IIn.checkNullableObject)(e,n);t.if(o),a(),t.elseIf((0,dT.not)(s)),e.error(),t.endIf(),e.ok(s);function a(){let l=t.const("tag",(0,dT._)`${n}${(0,dT.getProperty)(r)}`);t.if((0,dT._)`${l} === undefined`),e.error(!1,{discrError:S3.DiscrError.Tag,tag:l}),t.elseIf((0,dT._)`typeof ${l} == "string"`),c(l),t.else(),e.error(!1,{discrError:S3.DiscrError.Tag,tag:l},{instancePath:r}),t.endIf()}function c(l){t.if(!1);for(let d in i.mapping)t.elseIf((0,dT._)`${l} === ${d}`),t.assign(s,u(d));t.else(),e.error(!1,{discrError:S3.DiscrError.Mapping,tag:l},{instancePath:r,schemaPath:"mapping",parentSchema:!0}),t.endIf()}function u(l){let d=t.name("valid");return e.subschema({keyword:"mapping",schemaProp:l,jtdDiscriminator:r},d),d}}};Bue.default=OIn});var jnt=w(Gue=>{"use strict";Object.defineProperty(Gue,"__esModule",{value:!0});var Fnt=pn(),E3=Ot(),NIn=ng(),PIn=Vk(),CIn=Bk(),MIn={keyword:"values",schemaType:"object",error:(0,CIn.typeError)("object"),code(e){(0,NIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e,[s,o]=(0,PIn.checkNullableObject)(e,n);(0,Fnt.alwaysValidSchema)(i,r)?t.if((0,E3.not)((0,E3.or)(o,s)),()=>e.error()):(t.if(o),t.assign(s,a()),t.elseIf((0,E3.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:Fnt.Type.Str},c),t.if((0,E3.not)(c),l)})}}}};Gue.default=MIn});var Hnt=w(zue=>{"use strict";Object.defineProperty(zue,"__esModule",{value:!0});var LIn=Sa(),DIn={keyword:"union",schemaType:"array",trackErrors:!0,code:LIn.validateUnion,error:{message:"must match a schema in union"}};zue.default=DIn});var qnt=w(Vue=>{"use strict";Object.defineProperty(Vue,"__esModule",{value:!0});var UIn=g3(),FIn=Due(),jIn=Int(),HIn=Ont(),qIn=Hue(),BIn=Lnt(),GIn=Unt(),zIn=jnt(),VIn=Hnt(),WIn=ng(),KIn=["definitions",UIn.default,FIn.default,jIn.default,HIn.default,qIn.default,BIn.default,GIn.default,zIn.default,VIn.default,WIn.default,{keyword:"additionalProperties",schemaType:"boolean"},{keyword:"nullable",schemaType:"boolean"}];Vue.default=KIn});var Vnt=w(Wue=>{"use strict";Object.defineProperty(Wue,"__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},ZIn=e=>({optionalProperties:ig(e)}),YIn=e=>({properties:{ref:{type:"string"}},optionalProperties:ig(e)}),JIn=e=>({properties:{type:{enum:["boolean","timestamp","string","float32","float64","int8","uint8","int16","uint16","int32","uint32"]}},optionalProperties:ig(e)}),XIn=e=>({properties:{enum:{elements:{type:"string"}}},optionalProperties:ig(e)}),QIn=e=>({properties:{elements:{ref:"schema"}},optionalProperties:ig(e)}),Gnt=e=>({properties:{properties:{values:{ref:"schema"}}},optionalProperties:{optionalProperties:{values:{ref:"schema"}},additionalProperties:{type:"boolean"},...ig(e)}}),znt=e=>({properties:{optionalProperties:{values:{ref:"schema"}}},optionalProperties:{additionalProperties:{type:"boolean"},...ig(e)}}),$In=e=>({properties:{discriminator:{type:"string"},mapping:{values:{metadata:{union:[Gnt(!1),znt(!1)]}}}},optionalProperties:ig(e)}),exn=e=>({properties:{values:{ref:"schema"}},optionalProperties:ig(e)}),Bnt=e=>({metadata:{union:[ZIn,YIn,JIn,XIn,QIn,Gnt,znt,$In,exn].map(t=>t(e))}}),txn={definitions:{schema:Bnt(!1)},...Bnt(!0)};Wue.default=txn});var Kue=w(b3=>{"use strict";Object.defineProperty(b3,"__esModule",{value:!0});b3.jtdForms=void 0;b3.jtdForms=["elements","values","discriminator","properties","optionalProperties","enum","type","ref"]});var Knt=w(Yue=>{"use strict";Object.defineProperty(Yue,"__esModule",{value:!0});var Zue=/[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,nxn={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function Wnt(e){return Zue.lastIndex=0,'"'+(Zue.test(e)?e.replace(Zue,t=>{let n=nxn[t];return typeof n=="string"?n:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)}):e)+'"'}Yue.default=Wnt;Wnt.code='require("ajv/dist/runtime/quote").default'});var $nt=w(Xue=>{"use strict";Object.defineProperty(Xue,"__esModule",{value:!0});var rxn=Kue(),Ynt=j_(),En=Ot(),ixn=Km(),qr=gd(),sxn=Sa(),oxn=g3(),axn=pn(),cxn=Knt(),uxn={elements:dxn,values:fxn,discriminator:pxn,properties:Znt,optionalProperties:Znt,enum:MM,type:hxn,ref:gxn};function Jnt(e,t){let n=Ynt.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)``),LM(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}Xue.default=Jnt;function LM(e){let t;for(let n of rxn.jtdForms)if(n in e.schema){t=n;break}lxn(e,t?uxn[t]:Sxn)}function lxn(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 dxn(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=>{Jue(e,i),LM({...e,schema:n.elements,data:s})}),t.add(qr.default.json,(0,En.str)`]`)}function fxn(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=>Xnt(e,s,n.values,i)),t.add(qr.default.json,(0,En.str)`}`)}function Xnt(e,t,n,r){let{gen:i,data:s}=e;Jue(e,r),MM({...e,data:t}),i.add(qr.default.json,(0,En.str)`:`);let o=i.const("value",(0,En._)`${s}${(0,En.getProperty)(t)}`);LM({...e,schema:n,data:o})}function pxn(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)}`);MM({...e,data:s}),t.if(!1);for(let o in n.mapping){t.elseIf((0,En._)`${s} === ${o}`);let a=n.mapping[o];Qnt({...e,schema:a},i)}t.endIf(),t.add(qr.default.json,(0,En.str)`}`)}function Znt(e){let{gen:t}=e;t.add(qr.default.json,(0,En.str)`{`),Qnt(e),t.add(qr.default.json,(0,En.str)`}`)}function Qnt(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,sxn.isOwnProperty)(n,i,g)),()=>{Jue(e,d),m(g,o[g],E)})}r.additionalProperties&&n.forIn("key",i,g=>n.if(y(g,u),()=>Xnt(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)}:`),LM({...e,schema:E,data:S})}function y(g,E){return E.length?(0,En.and)(...E.map(S=>(0,En._)`${g} !== ${S}`)):!0}}function hxn(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":MM(e);break;case"timestamp":t.if((0,En._)`${r} instanceof Date`,()=>t.add(qr.default.json,(0,En._)`'"' + ${r}.toISOString() + '"'`),()=>MM(e));break;default:mxn(e)}}function MM({gen:e,data:t}){e.add(qr.default.json,(0,En._)`${(0,axn.useFunc)(e,cxn.default)}(${t})`)}function mxn({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 gxn(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 ixn.default(n.opts.uriResolver,"",a,`No definition ${a}`);if(!(0,oxn.hasRef)(c))return LM({...e,schema:c});let{root:u}=o,l=Jnt.call(n,new Ynt.SchemaEnv({schema:c,root:u}),i);t.add(qr.default.json,(0,En._)`${yxn(t,l)}(${r})`)}function yxn(e,t){return t.serialize?e.scopeValue("serialize",{ref:t.serialize}):(0,En._)`${e.scopeValue("wrapper",{ref:t})}.serialize`}function Sxn({gen:e,data:t}){e.add(qr.default.json,(0,En._)`JSON.stringify(${t})`)}function Jue({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 trt=w(nE=>{"use strict";Object.defineProperty(nE,"__esModule",{value:!0});nE.parseJsonString=nE.parseJsonNumber=nE.parseJson=void 0;var Exn=/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=Exn.exec(i.message),!r){sg.message="unexpected end";return}n=+r[1];let s=e[n];e=e.slice(0,n),sg.position=t+n;try{return JSON.parse(e)}catch{sg.message=`unexpected token ${s}`;return}}}nE.parseJson=sg;sg.message=void 0;sg.position=0;sg.code='require("ajv/dist/runtime/parseJson").parseJson';function og(e,t,n){let r="",i;if(og.message=void 0,e[t]==="-"&&(r+="-",t++),e[t]==="0")r+="0",t++;else if(!s(n)){o();return}if(n)return og.position=t,+r;if(e[t]==="."&&(r+=".",t++,!s())){o();return}if(i=e[t],(i==="e"||i==="E")&&(r+="e",t++,i=e[t],(i==="+"||i==="-")&&(r+=i,t++),!s())){o();return}return og.position=t,+r;function s(a){let c=!1;for(;i=e[t],i>="0"&&i<="9"&&(a===void 0||a-- >0);)c=!0,r+=i,t++;return c}function o(){og.position=t,og.message=t="a"&&r<="f")o+=r.charCodeAt(0)-bxn+10;else if(r>="0"&&r<="9")o+=r.charCodeAt(0)-_xn;else{i(`unexpected token ${r}`);return}t++}n+=String.fromCharCode(o)}else{i(`unexpected token ${r}`);return}else if(r===void 0){i("unexpected end");return}else if(r.charCodeAt(0)>=32)n+=r;else{i(`unexpected token ${r}`);return}return tE.position=t,n;function i(s){tE.position=t,tE.message=s}}nE.parseJsonString=tE;tE.message=void 0;tE.position=0;tE.code='require("ajv/dist/runtime/parseJson").parseJsonString'});var frt=w(sle=>{"use strict";Object.defineProperty(sle,"__esModule",{value:!0});var Txn=Kue(),srt=j_(),mt=Ot(),vxn=Km(),Ln=gd(),Axn=Sa(),Rxn=g3(),wxn=Due(),ele=trt(),ort=pn(),kxn=Lue(),Ixn={elements:Pxn,values:Cxn,discriminator:Lxn,properties:nrt,optionalProperties:nrt,enum:Uxn,type:Dxn,ref:Fxn};function art(e,t){let n=srt.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:Ln.default.data,parseName:a,char:o.name("c")},u;try{this._compilations.add(e),e.parseName=a,xxn(c),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(Ln.default.scope)}return ${l}`;let f=new Function(`${Ln.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}sle.default=art;var $ue=(0,mt._)`undefined`;function xxn(e){let{gen:t,parseName:n,char:r}=e;t.func(n,(0,mt._)`${Ln.default.json}, ${Ln.default.jsonPos}, ${Ln.default.jsonPart}`,!1,()=>{t.let(Ln.default.data),t.let(r),t.assign((0,mt._)`${n}.message`,$ue),t.assign((0,mt._)`${n}.position`,$ue),t.assign(Ln.default.jsonPos,(0,mt._)`${Ln.default.jsonPos} || 0`),t.const(Ln.default.jsonLen,(0,mt._)`${Ln.default.json}.length`),_3(e),ile(e),t.if(Ln.default.jsonPart,()=>{t.assign((0,mt._)`${n}.position`,Ln.default.jsonPos),t.return(Ln.default.data)}),t.if((0,mt._)`${Ln.default.jsonPos} === ${Ln.default.jsonLen}`,()=>t.return(Ln.default.data)),Kk(e)})}function _3(e){let t;for(let n of Txn.jtdForms)if(n in e.schema){t=n;break}t?Nxn(e,Ixn[t]):nle(e)}var Oxn=irt(!0,irt(!1,Kk));function Nxn(e,t){let{gen:n,schema:r,data:i}=e;if(!r.nullable)return t(e);DM(e,"null",t,()=>n.assign(i,null))}function Pxn(e){let{gen:t,schema:n,data:r}=e;Ah(e,"[");let i=t.let("i",0);t.assign(r,(0,mt._)`[]`),tle(e,"]",()=>{let s=t.let("el");_3({...e,schema:n.elements,data:s}),t.assign((0,mt._)`${r}[${i}++]`,s)})}function Cxn(e){let{gen:t,schema:n,data:r}=e;Ah(e,"{"),t.assign(r,(0,mt._)`{}`),tle(e,"}",()=>Mxn(e,n.values))}function tle(e,t,n){crt(e,t,n),Ah(e,t)}function crt(e,t,n){let{gen:r}=e;r.for((0,mt._)`;${Ln.default.jsonPos}<${Ln.default.jsonLen} && ${T3(1)}!==${t};`,()=>{n(),DM(e,",",()=>r.break(),i)});function i(){DM(e,t,()=>{},Kk)}}function Mxn(e,t){let{gen:n}=e,r=n.let("key");fT({...e,data:r}),Ah(e,":"),lrt(e,r,t)}function Lxn(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",Ln.default.jsonPos),a=t.let("value"),c=t.let("tag");crt(e,"}",()=>{let u=t.let("key");fT({...e,data:u}),Ah(e,":"),t.if((0,mt._)`${u} === ${i}`,()=>{fT({...e,data:c}),t.assign((0,mt._)`${n}[${u}]`,c),t.break()},()=>nle({...e,data:a}))}),t.assign(Ln.default.jsonPos,o),t.if((0,mt._)`${c} === undefined`),ag(e,(0,mt.str)`discriminator tag not found`);for(let u in s)t.elseIf((0,mt._)`${c} === ${u}`),urt({...e,schema:s[u]},i);t.else(),ag(e,(0,mt.str)`discriminator value not in schema`),t.endIf()}function nrt(e){let{gen:t,data:n}=e;Ah(e,"{"),t.assign(n,(0,mt._)`{}`),urt(e)}function urt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o,additionalProperties:a}=r;if(tle(e,"}",()=>{let c=n.let("key");if(fT({...e,data:c}),Ah(e,":"),n.if(!1),rrt(e,c,s),rrt(e,c,o),t){n.elseIf((0,mt._)`${c} === ${t}`);let u=n.let("tag");fT({...e,data:u})}n.else(),a?nle({...e,data:(0,mt._)`${i}[${c}]`}):ag(e,(0,mt.str)`property ${c} not allowed`),n.endIf()}),s){let c=(0,Axn.hasPropFunc)(n),u=(0,mt.and)(...Object.keys(s).map(l=>(0,mt._)`${c}.call(${i}, ${l})`));n.if((0,mt.not)(u),()=>ag(e,(0,mt.str)`missing required properties`))}}function rrt(e,t,n={}){let{gen:r}=e;for(let i in n)r.elseIf((0,mt._)`${t} === ${i}`),lrt(e,t,n[i])}function lrt(e,t,n){_3({...e,schema:n,data:(0,mt._)`${e.data}[${t}]`})}function Dxn(e){let{gen:t,schema:n,data:r,self:i}=e;switch(n.type){case"boolean":Oxn(e);break;case"string":fT(e);break;case"timestamp":{fT(e);let s=(0,ort.useFunc)(t,kxn.default),{allowDate:o,parseDate:a}=i.opts,c=o?(0,mt._)`!${s}(${r}, true)`:(0,mt._)`!${s}(${r})`,u=a?(0,mt.or)(c,(0,mt._)`(${r} = new Date(${r}), false)`,(0,mt._)`isNaN(${r}.valueOf())`):c;t.if(u,()=>ag(e,(0,mt.str)`invalid timestamp`));break}case"float32":case"float64":Que(e);break;default:{let s=n.type;if(!i.opts.int32range&&(s==="int32"||s==="uint32"))Que(e,16),s==="uint32"&&t.if((0,mt._)`${r} < 0`,()=>ag(e,(0,mt.str)`integer out of range`));else{let[o,a,c]=wxn.intRange[s];Que(e,c),t.if((0,mt._)`${r} < ${o} || ${r} > ${a}`,()=>ag(e,(0,mt.str)`integer out of range`))}}}}function fT(e){Ah(e,'"'),rle(e,ele.parseJsonString)}function Uxn(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._)`${T3(o.length)} === ${o}`),t.assign(n,(0,mt.str)`${s}`),t.add(Ln.default.jsonPos,o.length)}t.else(),Kk(e),t.endIf()}function Que(e,t){let{gen:n}=e;ile(e),n.if((0,mt._)`"-0123456789".indexOf(${T3(1)}) < 0`,()=>Kk(e),()=>rle(e,ele.parseJsonNumber,t))}function irt(e,t){return n=>{let{gen:r,data:i}=n;DM(n,`${e}`,()=>t(n),()=>r.assign(i,e))}}function Fxn(e){let{gen:t,self:n,definitions:r,schema:i,schemaEnv:s}=e,{ref:o}=i,a=r[o];if(!a)throw new vxn.default(n.opts.uriResolver,"",o,`No definition ${o}`);if(!(0,Rxn.hasRef)(a))return _3({...e,schema:a});let{root:c}=s,u=art.call(n,new srt.SchemaEnv({schema:a,root:c}),r);drt(e,jxn(t,u),!0)}function jxn(e,t){return t.parse?e.scopeValue("parse",{ref:t.parse}):(0,mt._)`${e.scopeValue("wrapper",{ref:t})}.parse`}function nle(e){rle(e,ele.parseJson)}function rle(e,t,n){drt(e,(0,ort.useFunc)(e.gen,t),n)}function drt(e,t,n){let{gen:r,data:i}=e;r.assign(i,(0,mt._)`${t}(${Ln.default.json}, ${Ln.default.jsonPos}${n?(0,mt._)`, ${n}`:mt.nil})`),r.assign(Ln.default.jsonPos,(0,mt._)`${t}.position`),r.if((0,mt._)`${i} === undefined`,()=>ag(e,(0,mt._)`${t}.message`))}function Ah(e,t){DM(e,t,Kk)}function DM(e,t,n,r){let{gen:i}=e,s=t.length;ile(e),i.if((0,mt._)`${T3(s)} === ${t}`,()=>{i.add(Ln.default.jsonPos,s),r?.(e)},()=>n(e))}function ile({gen:e,char:t}){e.code((0,mt._)`while((${t}=${Ln.default.json}[${Ln.default.jsonPos}],${t}===" "||${t}==="\\n"||${t}==="\\r"||${t}==="\\t"))${Ln.default.jsonPos}++;`)}function T3(e){return e===1?(0,mt._)`${Ln.default.json}[${Ln.default.jsonPos}]`:(0,mt._)`${Ln.default.json}.slice(${Ln.default.jsonPos}, ${Ln.default.jsonPos}+${e})`}function Kk(e){ag(e,(0,mt._)`"unexpected token " + ${Ln.default.json}[${Ln.default.jsonPos}]`)}function ag({gen:e,parseName:t},n){e.assign((0,mt._)`${t}.message`,n),e.assign((0,mt._)`${t}.position`,Ln.default.jsonPos),e.return($ue)}});var cle=w((Ei,ale)=>{"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 Hxn=Dse(),qxn=qnt(),Bxn=Vnt(),Gxn=$nt(),zxn=frt(),ole="JTD-meta-schema",Zk=class extends Hxn.default{constructor(t={}){super({...t,jtd:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(qxn.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema(),this.opts.meta&&this.addMetaSchema(Bxn.default,ole,!1)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(ole)?ole: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(Gxn.default.call(this,t,t.schema.definitions||{}),!t.serialize)throw new Error("ajv implementation error");return t.serialize}_compileParser(t){if(zxn.default.call(this,t,t.schema.definitions||{}),!t.parse)throw new Error("ajv implementation error");return t.parse}};Ei.Ajv=Zk;ale.exports=Ei=Zk;ale.exports.Ajv=Zk;Object.defineProperty(Ei,"__esModule",{value:!0});Ei.default=Zk;var Vxn=tk();Object.defineProperty(Ei,"KeywordCxt",{enumerable:!0,get:function(){return Vxn.KeywordCxt}});var Yk=Ot();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 Wxn=vC();Object.defineProperty(Ei,"ValidationError",{enumerable:!0,get:function(){return Wxn.default}});var Kxn=Km();Object.defineProperty(Ei,"MissingRefError",{enumerable:!0,get:function(){return Kxn.default}})});var ule=w((Q4r,prt)=>{"use strict";var Zxn=X2();prt.exports=Object.freeze({coerceTypes:"array",useDefaults:!0,removeAdditional:!0,uriResolver:Zxn,addUsedSchema:!1,allErrors:!1})});var grt=w(($4r,mrt)=>{"use strict";var Yxn=G_().default,Jxn=cle(),hrt=ule(),lle=class{constructor(t,n){n.mode==="JTD"?this.ajv=new Jxn(Object.assign({},hrt,n.customOptions)):this.ajv=new Yxn(Object.assign({},hrt,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&&hV()(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)}};mrt.exports=lle});var Srt=w((eKr,yrt)=>{"use strict";var Xxn=cle(),Qxn=ule(),dle=class{constructor(t,n){this.ajv=new Xxn(Object.assign({},Qxn,n))}buildSerializerFunction({schema:t}){return this.ajv.compileSerializer(t)}};yrt.exports=dle});var _rt=w((FM,brt)=>{"use strict";Object.defineProperty(FM,"__esModule",{value:!0});var UM=D2(),Nf=Kw();function Ert(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,Nf._)`"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,Nf._)`export const ${(0,Nf.getEsmExportName)(f)}`:(0,Nf._)`exports${(0,Nf.getProperty)(f)}`;d=(0,Nf._)`${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)===UM.UsedValueState.Completed)return Nf.nil;p(c.validateName,UM.UsedValueState.Started);let u=e.scope.scopeCode(c.scopeValues,a,d),l=new Nf._Code(`${u}${n}${c.validateCode}`);return c.evaluated?(0,Nf._)`${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?UM.varKinds.var:UM.varKinds.const,b=(0,Nf._)`${S} ${h} = {validate: ${E}};`;if(f(E)===UM.UsedValueState.Started)return b;let _=o(a,g?.source);return(0,Nf._)`${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)}}}brt.exports=FM=Ert;Object.defineProperty(FM,"__esModule",{value:!0});FM.default=Ert});var Art=w((tKr,vrt)=>{"use strict";var Trt=fle(),$xn=_rt().default;function e0n(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=Trt();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=$xn(s[Trt.AjvReference].ajv,a);return e.storeFunction(o,c),a}}}vrt.exports=e0n});var fle=w((nKr,Jk)=>{"use strict";var wrt=Symbol.for("fastify.ajv-compiler.reference"),t0n=grt(),n0n=Srt();function ple(e){let t=new Map,n=new Map;return e&&e.jtdSerializer===!0?function(i,s){let o=Rrt({},s);if(n.has(o))return n.get(o);let a=new n0n(i,s),c=a.buildSerializerFunction.bind(a);return n.set(o,c),c}:function(i,s){let o=Rrt(i,s.customOptions);if(t.has(o))return t.get(o);let a=new t0n(i,s),c=a.buildValidatorFunction.bind(a);return t.set(o,c),s.customOptions.code!==void 0&&(c[wrt]=a),c}}function Rrt(e,t){let n=JSON.stringify(e),r=JSON.stringify(t);return`${n}${r}`}Jk.exports=ple;Jk.exports.default=ple;Jk.exports.AjvCompiler=ple;Jk.exports.AjvReference=wrt;Jk.exports.StandaloneValidator=Art()});var v3=w(xrt=>{var krt=Object.prototype.hasOwnProperty;function Irt(e,t,n){for(n of e.keys())if(jM(n,t))return n}function jM(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--&&jM(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=Irt(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=Irt(t,i),!i)||!jM(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(krt.call(e,n)&&++r&&!krt.call(t,n)||!(n in t)||!jM(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}xrt.dequal=jM});var Crt=w((iKr,Prt)=>{"use strict";var{dequal:Ort}=v3(),r0n=Symbol.for("json-schema-ref"),hle=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]:Nrt(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]:Nrt(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[r0n]=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(Ort(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&&Ort(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 Nrt(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}Prt.exports={RefResolver:hle}});var gle=w((sKr,Mrt)=>{"use strict";var i0n=G_(),s0n=X2(),o0n=hV(),a0n=ZW()({proto:!0}),mle=class e{constructor(t){this.ajv=new i0n({...t,strictSchema:!1,validateSchema:!1,allowUnionTypes:!0,uriResolver:s0n}),o0n(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=a0n(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}};Mrt.exports=mle});var Drt=w((oKr,Lrt)=>{"use strict";var yle=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}};Lrt.exports=yle});var qrt=w((aKr,Ele)=>{"use strict";Ele.exports=qe;Ele.exports.default=qe;var c0n={$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},Urt={enum:["array","boolean","integer","null","number","object","string"]},Frt=/^(?:[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,u0n=fV().fullFormats.uri,jrt=fV().fullFormats.regex;function Ad(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0,a=o;return typeof e=="number"&&!(e%1)&&!isNaN(e)&&isFinite(e)?o===a&&typeof e=="number"&&isFinite(e)&&(e<0||isNaN(e))?(Ad.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1):(Ad.errors=s,o===0):(Ad.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1)}var Sle={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;Ad(e.minLength,{instancePath:t+"/minLength",parentData:e,parentDataProperty:"minLength",rootData:i})||(s=s===null?Ad.errors:s.concat(Ad.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.pattern!==void 0){let S=e.pattern,b=o;if(o===b&&o===b)if(typeof S=="string"){if(!jrt(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;Ad(e.minItems,{instancePath:t+"/minItems",parentData:e,parentDataProperty:"minItems",rootData:i})||(s=s===null?Ad.errors:s.concat(Ad.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.uniqueItems!==void 0){let S=o;if(typeof e.uniqueItems!="boolean")return qe.errors=[{instancePath:t+"/uniqueItems",schemaPath:"#/properties/uniqueItems/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;var a=S===o}else var a=!0;if(a){if(e.contains!==void 0){let S=o;qe(e.contains,{instancePath:t+"/contains",parentData:e,parentDataProperty:"contains",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.maxProperties!==void 0){let S=e.maxProperties,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;Ad(e.minProperties,{instancePath:t+"/minProperties",parentData:e,parentDataProperty:"minProperties",rootData:i})||(s=s===null?Ad.errors:s.concat(Ad.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.required!==void 0){let S=e.required,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"&&!jrt(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(Hrt(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:Urt.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(Hrt(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 vle=w((cKr,Brt)=>{"use strict";var ble=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}},_le=class extends Error{constructor(t,n){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Resolver for "${t}" keyword not found.`,this.schemas=n}},Tle=class extends Error{constructor(t){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Invalid "onConflict" option: "${t}".`}};Brt.exports={MergeError:ble,ResolverNotFoundError:_le,InvalidOnConflictOptionError:Tle}});var Vrt=w((uKr,zrt)=>{"use strict";var{dequal:l0n}=v3(),{MergeError:Ale}=vle();function Grt(e){let t=e[0];for(let n=1;ne[n].includes(r));return t}function d0n(e,t,n){let r=Grt(t);if(r.length===0)throw new Ale(e,t);n[e]=r}function f0n(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 y0n(e,t,n){let r=t[0];for(let i=1;i{"use strict";var{dequal:_0n}=v3(),Xi=Vrt(),w3=vle(),Zrt={$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:k0n,patternProperties:R3,additionalProperties:A3,items:A0n,additionalItems:R0n,definitions:R3,$defs:R3,nullable:Xi.booleanAnd,oneOf:Wrt,anyOf:Wrt,allOf:Xi.arraysUnion,not:A3,if:I0n,then:Xi.skip,else:Xi.skip,dependencies:Krt,dependentRequired:Krt,dependentSchemas:R3,propertyNames:A3,uniqueItems:Xi.booleanOr,contains:A3};function A3(e,t,n,r,i){n[e]=Pf(t,i)}function T0n(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 Wrt(e,t,n,r,i){if(t.length===1){n[e]=t[0];return}let s=T0n(t),o=[];for(let a of s)try{let c=Pf(a,i);c!==void 0&&o.push(c)}catch(c){if(c instanceof w3.MergeError)continue;throw c}n[e]=o}function v0n(e,t){let{items:n,additionalItems:r}=e;return Array.isArray(n)?t{"use strict";var{mergeSchemas:O0n}=Xrt();function N0n(e){return O0n(e,{onConflict:"skip"})}Qrt.exports=N0n});var eit=w((fKr,Rle)=>{"use strict";function P0n(e,t,n,r){let i="";t.validatorSchemasIds.size>0?(i+=`const Validator = require('fast-json-stringify/lib/validator') +`),G=cAn.bind(null,{[ctt]:"",[utt]:o,[dtt]:N,[ltt]:fue,[pue]:x,[ftt]:k}),W="";d!==null&&(f===void 0?W=G(d):W=G(Object.assign({},d,{name:f})));let $=a instanceof Function?a:a?Stt:xAn,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"`);nAn(p,h,b);let Q=gtt(h,b);typeof r.emit=="function"&&r.emit("message",{code:"PINO_CONFIG",config:{levels:Q,messageKey:c,errorKey:u}}),sAn(m);let B=iAn(m);return Object.assign(t,{levels:Q,[vAn]:B,[RAn]:b,[mAn]:r,[pAn]:$,[hAn]:q,[ltt]:fue,[pue]:x,[dtt]:N,[yAn]:L,[SAn]:C,[bAn]:c,[EAn]:u,[_An]:l,[wAn]:l?`,${JSON.stringify(l)}:{`:"",[utt]:o,[TAn]:g,[kAn]:y,[ctt]:W,[ftt]:k,[AAn]:E,silent:lAn,onChild:R,[IAn]:A}),Object.setPrototypeOf(t,eAn()),rAn(t),t[gAn](p),t}wd.exports=hue;wd.exports.destination=(e=process.stdout.fd)=>typeof e=="object"?(e.dest=att(e.dest||process.stdout.fd),ott(e)):ott({dest:att(e),minLength:0});wd.exports.transport=Zce();wd.exports.multistream=stt();wd.exports.levels=gtt();wd.exports.stdSerializers=DAn;wd.exports.stdTimeFunctions=Object.assign({},htt);wd.exports.symbols=mtt;wd.exports.version=dAn;wd.exports.default=hue;wd.exports.pino=hue});var Ttt=w((t3r,_tt)=>{"use strict";var e4=btt(),{serializersSym:Ett}=e4.symbols,{FST_ERR_LOG_INVALID_DESTINATION:LAn}=Ko();function UAn(e){if(e.stream&&e.file)throw new LAn;e.file&&(e.stream=e4.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[Ett]&&(e.serializers=Object.assign({},e.serializers,t[Ett])),r=t.child({},e),e.logger=t,e.genReqId=n):r=e4(e,e.stream),r}var FAn={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:e4.stdSerializers.err,res:function(t){return{statusCode:t.statusCode}}};_tt.exports={serializers:FAn,createPinoLogger:UAn}});var PM=w((n3r,Rtt)=>{"use strict";var{FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:jAn,FST_ERR_LOG_INVALID_LOGGER_CONFIG:HAn,FST_ERR_LOG_INVALID_LOGGER_INSTANCE:qAn,FST_ERR_LOG_INVALID_LOGGER:BAn}=Ko();function zAn(e,t,n,r,i){let s={[e.requestIdLogLabel]:r},o=e.childLoggerFactory.call(e.server,t,s,i||{},n);return e.childLoggerFactory!==vtt&&t4(o,!0),o}function vtt(e,t,n){return e.child(t,n)}function t4(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 BAn(r.join(","))}else return!0}function GAn(e){if(e.logger&&e.loggerInstance)throw new jAn;if(!e.loggerInstance&&!e.logger){let o=h$e();return o.child=()=>o,{logger:o,hasLogger:!1}}let{createPinoLogger:t,serializers:n}=Ttt();if(t4(e.loggerInstance))return{logger:t({logger:e.loggerInstance,serializers:Object.assign({},n,e.loggerInstance.serializers)}),hasLogger:!0};if(t4(e.logger))throw HAn();if(e.loggerInstance)throw qAn();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 VAn(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}Rtt.exports={createChildLogger:zAn,defaultChildLoggerFactory:vtt,createLogger:GAn,validateLogger:t4,now:VAn}});var n4=w((r3r,Att)=>{"use strict";Att.exports=WAn;function zk(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function WAn(e){if(e=e||{},e.circles)return KAn(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 YAn=n4()({circles:!1,proto:!0}),{kSchemaVisited:wtt,kSchemaResponse:ZAn}=$s(),mue=Symbol.for("fluent-schema-object"),{FST_ERR_SCH_MISSING_ID:JAn,FST_ERR_SCH_ALREADY_PRESENT:XAn,FST_ERR_SCH_DUPLICATE:QAn,FST_ERR_SCH_CONTENT_MISSING_SCHEMA:ktt}=Ko(),xtt=["params","body","querystring","query","headers"];function r4(e){this.store=e||{}}r4.prototype.add=function(e){let t=YAn(e.isFluentSchema||e.isFluentJSONSchema||e[mue]?e.valueOf():e),n=t.$id;if(!n)throw new JAn;if(this.store[n])throw new XAn(n);this.store[n]=t};r4.prototype.getSchemas=function(){return Object.assign({},this.store)};r4.prototype.getSchema=function(e){return this.store[e]};function Itt(e){return typeof e=="object"&&Object.getPrototypeOf(e)!==Object.prototype}function $An(e,t){if(e[wtt])return e;if(e.query){if(e.querystring)throw new QAn("querystring");e.querystring=e.query}ewn(e);for(let n of xtt){let r=e[n];if(r&&!Itt(r)&&n==="body"&&r.content){let i=r.content,s=Object.keys(i);for(let o=0;o{"use strict";var nwn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;Ntt.exports=class Ptt{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&&nwn.test(t)===!1?'"'+t+'"':JSON.stringify(t)}asUnsafeString(t){return'"'+t+'"'}getState(){return this._options}static restoreFromState(t){return new Ptt(t)}}});var Mtt=w((o3r,Ctt)=>{"use strict";var rwn=i4(),iwn={mode:"standalone"},swn=rwn.restoreFromState(iwn),own=null;Ctt.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})(own,swn)});var CM=w((a3r,Ftt)=>{"use strict";var Dtt=Y("node:http").STATUS_CODES,awn=mce(),{setErrorStatusCode:cwn}=OW(),{kReplyHeaders:dT,kReplyNextErrorHandler:s4,kReplyIsRunningOnErrorHook:uwn,kRouteContext:Utt,kDisableRequestLogging:o4}=$s(),{FST_ERR_REP_INVALID_PAYLOAD_TYPE:lwn,FST_ERR_FAILED_ERROR_SERIALIZATION:dwn}=Ko(),{getSchemaSerializer:fwn}=NM(),gue=Mtt(),pwn={func:mwn,toJSON(){return this.func.name.toString()+"()"}};function hwn(e,t,n){e[uwn]=!1;let r=e[Utt];if(e[s4]===!1){Ltt(t,e,function(o,a){try{o.raw.writeHead(o.raw.statusCode,o[dT])}catch(c){o.log[o4]||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[s4]||r.errorHandler;e[s4]=Object.getPrototypeOf(i),delete e[dT]["content-type"],delete e[dT]["content-length"];let s=i.func;if(!s){e[s4]=!1,Ltt(t,e,n);return}try{let o=s(t,e.request,e);o!==void 0&&(o!==null&&typeof o.then=="function"?awn(o,e):e.send(o))}catch(o){e.send(o)}}function mwn(e,t,n){ywn(e,n),cwn(n,e),n.statusCode<500?n.log[o4]||n.log.info({res:n,err:e},e?.message):n.log[o4]||n.log.error({req:t,res:n,err:e},e?.message),n.send(e)}function Ltt(e,t,n){let r=t.raw,i=t.statusCode;t[dT]["content-type"]=t[dT]["content-type"]??"application/json; charset=utf-8";let s;try{let o=fwn(t[Utt],i,t[dT]["content-type"]);o===!1?s=gue({error:Dtt[i+""],code:e.code,message:e.message,statusCode:i}):s=o(Object.create(e,{error:{value:Dtt[i+""]},message:{value:e.message},statusCode:{value:i}}))}catch(o){t.log[o4]||t.log.error({err:o,statusCode:r.statusCode},"The serializer for the given status code failed"),t.code(500),s=gue(new dwn(o.message,e.message))}typeof s!="string"&&!Buffer.isBuffer(s)&&(s=gue(new lwn(typeof s))),t[dT]["content-length"]=""+Buffer.byteLength(s),n(t,s)}function gwn(e=pwn,t){if(!t)return e;let n=Object.create(e);return n.func=t,n}function ywn(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}Ftt.exports={buildErrorHandler:gwn,handleError:hwn}});var LM=w((c3r,Btt)=>{"use strict";var{kReply:yue,kRequest:Sue,kState:Swn,kHasBeenDecorated:bwn}=$s(),{FST_ERR_DEC_ALREADY_PRESENT:jtt,FST_ERR_DEC_MISSING_DEPENDENCY:Ewn,FST_ERR_DEC_AFTER_START:_wn,FST_ERR_DEC_REFERENCE_TYPE:Twn,FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:vwn,FST_ERR_DEC_UNDECLARED:Rwn}=Ko();function Awn(e,t,n,r){if(Object.hasOwn(e,t))throw new jtt(t);bue(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 wwn(e){if(!MM(this,e))throw new Rwn(e,"instance");return typeof this[e]=="function"?this[e].bind(this):this[e]}function Htt(e,t,n,r){let i=e.prototype;if(Object.hasOwn(i,t)||DM(e,t))throw new jtt(t);e[bwn]=!0,bue(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 qtt(e,t){if(typeof t=="object"&&t&&!(typeof t.getter=="function"||typeof t.setter=="function"))throw new Twn(e,typeof t)}function kwn(e,t,n){return Eue(this,e),Awn(this,e,t,n),this}function MM(e,t){return t?t in e||e.prototype&&t in e.prototype||DM(e,t):e in this}function DM(e,t){return e.props?e.props.find(({key:n})=>n===t):!1}function Iwn(e){return e&&DM(this[Sue],e)?!0:MM(this[Sue].prototype,e)}function xwn(e){return e&&DM(this[yue],e)?!0:MM(this[yue].prototype,e)}function bue(e,t,n){if(n!=null){if(!Array.isArray(n))throw new vwn(t);for(let r=0;r!==n.length;++r)if(!MM(e,n[r]))throw new Ewn(n[r])}}function Own(e,t,n){return Eue(this,e),qtt(e,t),Htt(this[yue],e,t,n),this}function Pwn(e,t,n){return Eue(this,e),qtt(e,t),Htt(this[Sue],e,t,n),this}function Eue(e,t){if(e[Swn].started)throw new _wn(t)}Btt.exports={add:kwn,exist:MM,existRequest:Iwn,existReply:xwn,dependencies:bue,decorateReply:Own,decorateRequest:Pwn,getInstanceDecorator:wwn,hasKey:DM}});var m4=w((u3r,h4)=>{"use strict";var a4=Y("node:stream").finished,{kFourOhFourContext:ztt,kReplyErrorHandlerCalled:Jtt,kReplyHijacked:Aue,kReplyStartTime:FM,kReplyEndTime:wue,kReplySerializer:ng,kReplySerializerDefault:c4,kReplyIsError:u4,kReplyHeaders:jr,kReplyTrailers:Yo,kReplyHasStatusCode:kue,kReplyIsRunningOnErrorHook:Iue,kReplyNextErrorHandler:Nwn,kDisableRequestLogging:Xtt,kSchemaResponse:l4,kReplyCacheSerializeFns:QS,kSchemaController:_ue,kOptions:Cwn,kRouteContext:Dn,kTimeoutTimer:d4,kOnAbort:Gk,kRequestSignal:Qtt}=$s(),{onSendHookRunner:$tt,onResponseHookRunner:Mwn,preHandlerHookRunner:Dwn,preSerializationHookRunner:Lwn}=ZS(),Gtt=Tce()[Symbol.for("internals")],Uwn=PM(),Rue=Uwn.now,{handleError:Vtt}=CM(),{getSchemaSerializer:Fwn}=NM(),Tue={JSON:"application/json; charset=utf-8",PLAIN:"text/plain; charset=utf-8",OCTET:"application/octet-stream"},{FST_ERR_REP_INVALID_PAYLOAD_TYPE:jwn,FST_ERR_REP_RESPONSE_BODY_CONSUMED:Hwn,FST_ERR_REP_READABLE_STREAM_LOCKED:qwn,FST_ERR_REP_ALREADY_SENT:Bwn,FST_ERR_SEND_INSIDE_ONERR:zwn,FST_ERR_BAD_STATUS_CODE:Gwn,FST_ERR_BAD_TRAILER_NAME:Vwn,FST_ERR_BAD_TRAILER_VALUE:Wwn,FST_ERR_MISSING_SERIALIZATION_FN:Kwn,FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:Ywn,FST_ERR_DEC_UNDECLARED:Zwn}=Ko(),Wtt=LM(),ent=Object.prototype.toString;function Hr(e,t,n){this.raw=e,this[ng]=null,this[Jtt]=!1,this[u4]=!1,this[Iue]=!1,this.request=t,this[jr]={},this[Yo]=null,this[kue]=!1,this[FM]=void 0,this.log=n}Hr.props=[];Object.defineProperties(Hr.prototype,{[Dn]:{get(){return this.request[Dn]}},elapsedTime:{get(){return this[FM]===void 0?0:(this[wue]||Rue())-this[FM]}},server:{get(){return this.request[Dn].server}},sent:{enumerable:!0,get(){return(this[Aue]||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[Aue]=!0,this.request[Qtt]&&(clearTimeout(this.request[d4]),this.request[d4]=null,this.request[Gk]&&(this.request.raw.removeListener("close",this.request[Gk]),this.request[Gk]=null)),this};Hr.prototype.send=function(e){if(this[Iue])throw new zwn;if(this.sent===!0)return this.log.warn({err:new Bwn(this.request.url,this.request.method)}),this;if(this[u4]||e instanceof Error)return this[u4]=!1,Vk(this,e,fT),this;if(e===void 0)return fT(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"||ent.call(e)==="[object Response]")return fT(this,e),this;if(e.buffer instanceof ArrayBuffer){n||(this[jr]["content-type"]=Tue.OCTET);let r=Buffer.isBuffer(e)?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength);return fT(this,r),this}if(!n&&typeof e=="string")return this[jr]["content-type"]=Tue.PLAIN,fT(this,e),this}if(this[ng]!==null){if(typeof e!="string")return Ktt(this,e),this;e=this[ng](e)}else if(!n||t.indexOf("json")!==-1){if(!n)this[jr]["content-type"]=Tue.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 Ktt(this,e),this}return fT(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 Jwn=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(),Jwn.has(e))throw new Vwn(e);if(typeof t!="function")throw new Wwn(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 Gwn(e||String(e));return this.raw.statusCode=t,this[kue]=!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[Dn][l4]?.[e]?.[t]:n=this[Dn][l4]?.[e]:typeof e=="object"&&(n=this[Dn][QS]?.get(e)),n};Hr.prototype.compileSerializationSchema=function(e,t=null,n=null){let{request:r}=this,{method:i,url:s}=r;if(this[Dn][QS]?.has(e))return this[Dn][QS].get(e);let a=(this[Dn].serializerCompiler||this.server[_ue].serializerCompiler||this.server[_ue].setupSerializer(this.server[Cwn])||this.server[_ue].serializerCompiler)({schema:e,method:i,url:s,httpStatus:t,contentType:n});return this[Dn][QS]==null&&(this[Dn][QS]=new WeakMap),this[Dn][QS].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[Dn][l4]?.[n]?.[r]:s=this[Dn][l4]?.[n],s==null)throw r?new Ywn(n,r):new Kwn(n)}else this[Dn][QS]?.has(t)?s=this[Dn][QS].get(t):s=this.compileSerializationSchema(t,n,r);return s(e)};Hr.prototype.serialize=function(e){return this[ng]!==null?this[ng](e):this[Dn]&&this[Dn][c4]?this[Dn][c4](e,this.raw.statusCode):nnt(this[Dn],e,this.raw.statusCode)};Hr.prototype.serializer=function(e){return this[ng]=e,this};Hr.prototype.type=function(e){return this[jr]["content-type"]=e,this};Hr.prototype.redirect=function(e,t){return t||(t=this[kue]?this.raw.statusCode:302),this.header("location",e).code(t).send()};Hr.prototype.callNotFound=function(){return ikn(this),this};Hr.prototype.then=function(e,t){if(this.sent){e();return}a4(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(!Wtt.hasKey(this,e)&&!Wtt.exist(this,e))throw new Zwn(e,"reply");let t=this[e];return typeof t=="function"?t.bind(this):t};function Ktt(e,t){e[Dn].preSerialization!==null?Lwn(e[Dn].preSerialization,e.request,e,t,Ytt):Ytt(null,void 0,e,t)}function Ytt(e,t,n,r){if(e!=null){Vk(n,e);return}try{n[ng]!==null?r=n[ng](r):n[Dn]&&n[Dn][c4]?r=n[Dn][c4](r,n.raw.statusCode):r=nnt(n[Dn],r,n.raw.statusCode,n[jr]["content-type"])}catch(i){Xwn(i,n),Vk(n,i);return}fT(n,r)}function Xwn(e,t){e.serialization=t[Dn].config}function fT(e,t){e[Dn].onSend!==null?$tt(e[Dn].onSend,e.request,e,t,Qwn):tnt(e,t)}function Qwn(e,t,n,r){e!=null?Vk(n,e):tnt(n,r)}function vue(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 tnt(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(ent.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 Hwn;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"),vue(e,i),UM(t,n,e);return}if(i>=100&&i<200||i===204){e.removeHeader("content-type"),e.removeHeader("content-length"),vue(e,i),UM(void 0,n,e),typeof t.resume=="function"&&(t.on("error",p4),t.resume());return}if(typeof t.pipe=="function"){ekn(t,n,e);return}if(typeof t.getReader=="function"){$wn(t,n,e);return}if(typeof t!="string"&&!Buffer.isBuffer(t))throw new jwn(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))}vue(e,i),n.write(t),UM(t,n,e)}function f4(e,t,n){t.code==="ERR_STREAM_PREMATURE_CLOSE"?e[Xtt]||e.info({res:n},"stream closed prematurely"):e.warn({err:t},"response terminated with an error with headers already sent")}function $wn(e,t,n){if(e.locked)throw new qwn;let r=!0,i=!1,s=!1,o=e.getReader();if(a4(t,function(l){r&&(l!=null&&t.headersSent&&!i&&(i=!0,f4(n.log,l,t)),o.cancel().catch(p4))}),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,UM(null,t,n);return}if(t.destroyed){r=!1,o.cancel().catch(p4);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,f4(n.log,l,n)),t.destroy()):Vk(n,l)}o.read().then(a,u)}function ekn(e,t,n){let r=!0,i=!1;if(tkn(e,t,n),a4(e,{readable:!0,writable:!1},function(s){r=!1,s!=null&&(t.headersSent||n.request.raw.aborted===!0?(i||(i=!0,f4(n.log,s,n)),t.destroy()):Vk(n,s))}),a4(t,function(s){r&&(s!=null&&t.headersSent&&!i&&(i=!0,f4(n.log,s,t)),typeof e.destroy=="function"?e.destroy():typeof e.close=="function"?e.close(p4):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 UM(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 tkn(e,t,n){n[Yo]!==null&&e.on("end",()=>UM(null,t,n))}function Vk(e,t,n){e[Dn].onError!==null&&!e[Nwn]?(e[Iue]=!0,$tt(e[Dn].onError,e.request,e,t,()=>Vtt(e,t,n))):Vtt(e,t,n)}function nkn(e){e[FM]=Rue();let t=n=>{e[wue]=Rue(),e.raw.removeListener("finish",t),e.raw.removeListener("error",t);let r=e[Dn];e.request[Qtt]&&(clearTimeout(e.request[d4]),e.request[d4]=null,e.request[Gk]&&(e.request.raw.removeListener("close",e.request[Gk]),e.request[Gk]=null)),r&&r.onResponse!==null?Mwn(r.onResponse,e.request,e,Ztt):Ztt(n,e.request,e)};e.raw.on("finish",t),e.raw.on("error",t)}function Ztt(e,t,n){if(n.log[Xtt])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 rkn(e){let t=e.props.slice();function n(r,i,s){this.raw=r,this[u4]=!1,this[Jtt]=!1,this[Aue]=!1,this[ng]=null,this.request=i,this[jr]={},this[Yo]=null,this[FM]=void 0,this[wue]=void 0,this.log=s;let o;for(let a=0;a{"use strict";function xue(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 skn(t,n)}function skn(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}g4.exports=xue;g4.exports.default=xue;g4.exports.forwarded=xue});var snt=w((int,y4)=>{(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";Wk.exports=Oue;Wk.exports.default=Oue;Wk.exports.proxyaddr=Oue;Wk.exports.all=cnt;Wk.exports.compile=unt;var okn=rnt(),ant=snt(),akn=/^\d+$/u,S4=ant.isValid,b4=ant.parse,ont={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 cnt(e,t){let n=okn(e);if(!t)return n;typeof t!="function"&&(t=unt(t));for(let r=0;ri)throw new TypeError("invalid range on address: "+e);return[r,s]}function dkn(e){let t=b4(e);return t.kind()==="ipv4"?t.prefixLengthFromSubnetMask():null}function Oue(e,t){if(!e)throw new TypeError("req argument is required");if(!t)throw new TypeError("trust argument is required");let n=cnt(e,t);return n[n.length-1]}function fkn(){return!1}function pkn(e){return function(n){if(!S4(n))return!1;let r=b4(n),i,s=r.kind();for(let o=0;o{"use strict";var E4=lnt(),{kHasBeenDecorated:mkn,kSchemaBody:gkn,kSchemaHeaders:ykn,kSchemaParams:Skn,kSchemaQuerystring:dnt,kSchemaController:Pue,kOptions:bkn,kRequestCacheValidateFns:$S,kRouteContext:ac,kRequestOriginalUrl:Nue,kRequestSignal:fnt,kOnAbort:Ekn}=$s(),{FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:_kn,FST_ERR_DEC_UNDECLARED:Tkn}=Ko(),pnt=LM(),hnt={body:gkn,headers:ykn,params:Skn,querystring:dnt,query:dnt};function Cue(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}Cue.props=[];function vkn(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 E4.compile(t)}return E4.compile(e)}function Rkn(e,t){return t?Akn(e,t):ynt(e)}function ynt(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[Ekn]=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=hnt[e];return this[ac][t]}else if(typeof e=="object")return this[ac][$S]?.get(e)}},compileValidationSchema:{value:function(e,t=null){let{method:n,url:r}=this;if(this[ac][$S]?.has(e))return this[ac][$S].get(e);let s=(this[ac].validatorCompiler||this.server[Pue].validatorCompiler||this.server[Pue].setupValidator(this.server[bkn])||this.server[Pue].validatorCompiler)({schema:e,method:n,url:r,httpPart:t});return this[ac][$S]==null&&(this[ac][$S]=new WeakMap),this[ac][$S].set(e,s),s}},validateInput:{value:function(e,t,n){n=typeof t=="string"?t:n;let r=n!=null&&typeof n=="string"&&hnt[n],i;if(r&&(i=this[ac][r]),i==null&&(t==null||typeof t!="object"||Array.isArray(t)))throw new _kn(n);return i==null&&(this[ac][$S]?.has(t)?i=this[ac][$S].get(t):i=this.compileValidationSchema(t,n)),i(e)}},getDecorator:{value:function(e){gnt(this,e);let t=this[e];return typeof t=="function"?t.bind(this):t}},setDecorator:{value:function(e,t){gnt(this,e),this[e]=t}}});Mue.exports=Cue;Mue.exports.buildRequest=Rkn});var T4=w((p3r,Snt)=>{"use strict";var{kFourOhFourContext:wkn,kReplySerializerDefault:kkn,kSchemaErrorFormatter:Ikn,kErrorHandler:xkn,kChildLoggerFactory:Okn,kOptions:Pkn,kReply:Nkn,kRequest:Ckn,kBodyLimit:Mkn,kLogLevel:Dkn,kContentTypeParser:Lkn,kRouteByFastify:Ukn,kRequestCacheValidateFns:Fkn,kReplyCacheSerializeFns:jkn,kHandlerTimeout:Hkn}=$s();function qkn({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[Nkn],this.Request=g[Ckn],this.contentTypeParser=g[Lkn],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[xkn],this.requestIdLogLabel=r||g[Pkn].requestIdLogLabel,this.childLoggerFactory=i||g[Okn],this._middie=null,this._parserOptions={limit:o||g[Mkn]},this.exposeHeadRoute=h,this.prefixTrailingSlash=m,this.logLevel=a||g[Dkn],this.logSerializers=c,this[wkn]=null,this.attachValidation=u,this[kkn]=f,this.schemaErrorFormatter=p||g[Ikn]||Bkn,this[Ukn]=y,this[Fkn]=null,this[jkn]=null,this.validatorCompiler=l||null,this.serializerCompiler=d||null,this.handlerTimeout=b||g[Hkn]||0,this.server=g}function Bkn(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))}Snt.exports=qkn});var Lue=w((h3r,Kk)=>{"use strict";var zkn=typeof Buffer<"u",bnt=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,Ent=/"(?: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 _nt(e,t,n){n==null&&t!==null&&typeof t=="object"&&(n=t,t=void 0),zkn&&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(bnt.test(e)===!1&&Ent.test(e)===!1)return r}else if(i!=="ignore"&&s==="ignore"){if(bnt.test(e)===!1)return r}else if(Ent.test(e)===!1)return r;return Tnt(r,{protoAction:i,constructorAction:s,safe:n&&n.safe})}function Tnt(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 Due(e,t,n){let{stackTraceLimit:r}=Error;Error.stackTraceLimit=0;try{return _nt(e,t,n)}finally{Error.stackTraceLimit=r}}function Gkn(e,t){let{stackTraceLimit:n}=Error;Error.stackTraceLimit=0;try{return _nt(e,t,{safe:!0})}catch{return}finally{Error.stackTraceLimit=n}}Kk.exports=Due;Kk.exports.default=Due;Kk.exports.parse=Due;Kk.exports.safeParse=Gkn;Kk.exports.scan=Tnt});var que=w((m3r,qM)=>{"use strict";var{AsyncResource:Vkn}=Y("node:async_hooks"),{FifoMap:Ant}=NV(),{parse:Wkn}=Lue(),HM=hce(),{kDefaultJsonParse:jM,kContentTypeParser:Yk,kBodyLimit:Kkn,kRequestPayloadStream:wnt,kState:Fue,kTestInternals:Ykn,kReplyIsError:vnt,kRouteContext:Zkn}=$s(),{FST_ERR_CTP_INVALID_TYPE:v4,FST_ERR_CTP_EMPTY_TYPE:Jkn,FST_ERR_CTP_ALREADY_PRESENT:Xkn,FST_ERR_CTP_INVALID_HANDLER:Qkn,FST_ERR_CTP_INVALID_PARSE_TYPE:$kn,FST_ERR_CTP_BODY_TOO_LARGE:Rnt,FST_ERR_CTP_INVALID_MEDIA_TYPE:eIn,FST_ERR_CTP_INVALID_CONTENT_LENGTH:tIn,FST_ERR_CTP_EMPTY_JSON_BODY:nIn,FST_ERR_CTP_INSTANCE_ALREADY_STARTED:jue,FST_ERR_CTP_INVALID_JSON_BODY:rIn}=Ko(),{FSTSEC001:iIn}=Lk();function rg(e,t,n){this[jM]=Int(t,n),this.customParsers=new Map,this.customParsers.set("application/json",new Uue(!0,!1,e,this[jM])),this.customParsers.set("text/plain",new Uue(!0,!1,e,Hue)),this.parserList=["application/json","text/plain"],this.parserRegExpList=[],this.cache=new Ant(100)}rg.prototype.add=function(e,t,n){let r=typeof e=="string";if(r){if(e=e.trim().toLowerCase(),e.length===0)throw new Jkn}else if(!(e instanceof RegExp))throw new v4;if(typeof n!="function")throw new Qkn;if(this.existingParser(e))throw new Xkn(e);if(t.parseAs!==void 0&&t.parseAs!=="string"&&t.parseAs!=="buffer")throw new $kn(t.parseAs);let i=new Uue(t.parseAs==="string",t.parseAs==="buffer",t.bodyLimit,n);if(e==="*")this.customParsers.set("",i);else if(r){let s=new HM(e);if(s.isValid===!1)throw new v4;let o=s.toString();this.parserList.unshift(o),this.customParsers.set(o,i)}else lIn(e),this.parserRegExpList.unshift(e),this.customParsers.set(e.toString(),i)};rg.prototype.hasParser=function(e){if(typeof e=="string")e=new HM(e).toString();else{if(!(e instanceof RegExp))throw new v4;e=e.toString()}return this.customParsers.has(e)};rg.prototype.existingParser=function(e){if(typeof e=="string"){let t=new HM(e).toString();if(e==="application/json"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==this[jM];if(e==="text/plain"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==Hue}return this.hasParser(e)};rg.prototype.getParser=function(e){typeof e=="string"&&(e=new HM(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("")};rg.prototype.removeAll=function(){this.customParsers=new Map,this.parserRegExpList=[],this.parserList=[],this.cache=new Ant(100)};rg.prototype.remove=function(e){let t;if(typeof e=="string")e=new HM(e).toString(),t=this.parserList;else{if(!(e instanceof RegExp))throw new v4;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};rg.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[vnt]=!0,r.send(new eIn);return}let s=new Vkn("content-type-parser:run",n),o=s.bind(c);if(i.asString===!0||i.asBuffer===!0){knt(n,r,r[Zkn]._parserOptions,i,o);return}let a=i.fn(n,n[wnt],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[vnt]=!0,r.send(u);return}n.body=l,t(n,r)}};function knt(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 Rnt,void 0);return}let c=0,u=s?"":[],l=e[wnt]||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 Rnt,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 tIn,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 Int(e,t){let n={protoAction:e,constructorAction:t};return r;function r(i,s,o){if(s.length===0){o(new nIn,void 0);return}try{o(null,Wkn(s,n))}catch{o(new rIn,void 0)}}}function Hue(e,t,n){n(null,t)}function Uue(e,t,n,r){this.asString=e,this.asBuffer=t,this.bodyLimit=n,this.fn=r}function sIn(e){let t=new rg;return t[jM]=e[jM],t.customParsers=new Map(e.customParsers.entries()),t.parserList=e.parserList.slice(),t.parserRegExpList=e.parserRegExpList.slice(),t}function oIn(e,t,n){if(this[Fue].started)throw new jue("addContentTypeParser");return typeof t=="function"&&(n=t,t={}),t||(t={}),t.bodyLimit||(t.bodyLimit=this[Kkn]),Array.isArray(e)?e.forEach(r=>this[Yk].add(r,t,n)):this[Yk].add(e,t,n),this}function aIn(e){return this[Yk].hasParser(e)}function cIn(e){if(this[Fue].started)throw new jue("removeContentTypeParser");if(Array.isArray(e))for(let t of e)this[Yk].remove(t);else this[Yk].remove(e)}function uIn(){if(this[Fue].started)throw new jue("removeAllContentTypeParsers");this[Yk].removeAll()}function lIn(e){e.source[0]!=="^"&&e.source.includes(";?")===!1&&iIn(e.source)}qM.exports=rg;qM.exports.helpers={buildContentTypeParser:sIn,addContentTypeParser:oIn,hasContentTypeParser:aIn,removeContentTypeParser:cIn,removeAllContentTypeParsers:uIn};qM.exports.defaultParsers={getDefaultJsonParser:Int,defaultTextParser:Hue};qM.exports[Ykn]={rawBody:knt}});var ig=w(BM=>{"use strict";Object.defineProperty(BM,"__esModule",{value:!0});BM.checkMetadata=void 0;var dIn=pn(),fIn={keyword:"metadata",schemaType:"object",code(e){xnt(e);let{gen:t,schema:n,it:r}=e;if((0,dIn.alwaysValidSchema)(r,n))return;let i=t.name("valid");e.subschema({keyword:"metadata",jtdMetadata:!0},i),e.ok(i)}};function xnt({it:e,keyword:t},n){if(e.jtdMetadata!==n)throw new Error(`JTD: "${t}" cannot be used in this schema location`)}BM.checkMetadata=xnt;BM.default=fIn});var R4=w(GM=>{"use strict";Object.defineProperty(GM,"__esModule",{value:!0});GM.hasRef=void 0;var Ont=q_(),zM=Ot(),pIn=Zm(),Pnt=bd(),Nnt=Kse(),hIn=ig(),mIn={keyword:"ref",schemaType:"string",code(e){(0,hIn.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,zM._)`${n} === null`),t.if((0,zM.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 pIn.default(s.opts.uriResolver,"",r,`No definition ${r}`);Bue(f)||!s.opts.inlineRefs?u(f):l(f)}function u(d){let f=Ont.compileSchema.call(s.self,new Ont.SchemaEnv({schema:d,root:o,schemaPath:`/definitions/${r}`})),p=(0,Nnt.getValidate)(e,f),h=t.const("_errs",Pnt.default.errors);(0,Nnt.callRef)(e,p,f,f.$async),t.assign(a,(0,zM._)`${h} === ${Pnt.default.errors}`)}function l(d){let f=t.scopeValue("schema",s.opts.code.source===!0?{ref:d,code:(0,zM.stringify)(d)}:{ref:d});e.subschema({schema:d,dataTypes:[],schemaPath:zM.nil,topSchemaRef:f,errSchemaPath:`/definitions/${r}`},a)}}};function Bue(e){for(let t in e){let n;if(t==="ref"||typeof(n=e[t])=="object"&&Bue(n))return!0}return!1}GM.hasRef=Bue;GM.default=mIn});var Gue=w(zue=>{"use strict";Object.defineProperty(zue,"__esModule",{value:!0});var gIn=/t|\s/i,yIn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,SIn=/^(\d\d):(\d\d):(\d\d)(?:\.\d+)?(?:z|([+-]\d\d)(?::?(\d\d))?)$/i,bIn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Mnt(e,t){let n=e.split(gIn);return n.length===2&&Cnt(n[0])&&EIn(n[1])||t&&n.length===1&&Cnt(n[0])}zue.default=Mnt;function Cnt(e){let t=yIn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&(i<=bIn[r]||r===2&&i===29&&(n%100===0?n%400===0:n%4===0))}function EIn(e){let t=SIn.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}Mnt.code='require("ajv/dist/runtime/timestamp").default'});var Zk=w(eb=>{"use strict";Object.defineProperty(eb,"__esModule",{value:!0});eb.typeErrorParams=eb.typeErrorMessage=eb.typeError=void 0;var _In=Ot();function TIn(e){return{message:t=>Dnt(t,e),params:t=>Lnt(t,e)}}eb.typeError=TIn;function Dnt({parentSchema:e},t){return e?.nullable?`must be ${t} or null`:`must be ${t}`}eb.typeErrorMessage=Dnt;function Lnt({parentSchema:e},t){return(0,_In._)`{type: ${t}, nullable: ${!!e?.nullable}}`}eb.typeErrorParams=Lnt});var Vue=w(Jk=>{"use strict";Object.defineProperty(Jk,"__esModule",{value:!0});Jk.intRange=void 0;var El=Ot(),vIn=Gue(),RIn=pn(),AIn=ig(),Unt=Zk();Jk.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 wIn={message:e=>(0,Unt.typeErrorMessage)(e,e.schema),params:e=>(0,Unt.typeErrorParams)(e,e.schema)};function kIn(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,RIn.useFunc)(t,vIn.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 IIn={keyword:"type",schemaType:"string",error:wIn,code(e){(0,AIn.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=kIn(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]=Jk.intRange[o];s=(0,El._)`${s} && ${t} >= ${a} && ${t} <= ${c}`}}}e.pass(r.nullable?(0,El.or)((0,El._)`${t} === null`,s):s)}};Jk.default=IIn});var Qk=w(Xk=>{"use strict";Object.defineProperty(Xk,"__esModule",{value:!0});Xk.checkNullableObject=Xk.checkNullable=void 0;var A4=Ot();function Fnt({gen:e,data:t,parentSchema:n},r=A4.nil){let i=e.name("valid");return n.nullable?(e.let(i,(0,A4._)`${t} === null`),r=(0,A4.not)(i)):e.let(i,!1),[i,r]}Xk.checkNullable=Fnt;function xIn(e,t){let[n,r]=Fnt(e,t);return[n,(0,A4._)`${r} && typeof ${e.data} == "object" && !Array.isArray(${e.data})`]}Xk.checkNullableObject=xIn});var jnt=w(Wue=>{"use strict";Object.defineProperty(Wue,"__esModule",{value:!0});var tb=Ot(),OIn=ig(),PIn=Qk(),NIn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,tb._)`{allowedValues: ${e}}`},CIn={keyword:"enum",schemaType:"array",error:NIn,code(e){(0,OIn.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,tb._)`typeof ${n} == "string"`;if(r.length>=o.opts.loopEnum){let l;[a,l]=(0,PIn.checkNullable)(e,c),t.if(l,u)}else{if(!Array.isArray(r))throw new Error("ajv implementation error");a=(0,tb.and)(c,(0,tb.or)(...r.map(l=>(0,tb._)`${n} === ${l}`))),s.nullable&&(a=(0,tb.or)((0,tb._)`${n} === null`,a))}e.pass(a);function u(){t.forOf("v",i,l=>t.if((0,tb._)`${a} = ${n} === ${l}`,()=>t.break()))}}};Wue.default=CIn});var qnt=w(Kue=>{"use strict";Object.defineProperty(Kue,"__esModule",{value:!0});var MIn=pn(),DIn=Sa(),Hnt=Ot(),LIn=ig(),UIn=Qk(),FIn=Zk(),jIn={keyword:"elements",schemaType:"object",error:(0,FIn.typeError)("array"),code(e){(0,LIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e;if((0,MIn.alwaysValidSchema)(i,r))return;let[s]=(0,UIn.checkNullable)(e);t.if((0,Hnt.not)(s),()=>t.if((0,Hnt._)`Array.isArray(${n})`,()=>t.assign(s,(0,DIn.validateArray)(e)),()=>e.error())),e.ok(s)}};Kue.default=jIn});var Zue=w(nb=>{"use strict";Object.defineProperty(nb,"__esModule",{value:!0});nb.validateProperties=nb.error=void 0;var Yue=Sa(),Bnt=pn(),sg=Ot(),HIn=ig(),qIn=Qk(),znt=Zk(),$k;(function(e){e.Additional="additional",e.Missing="missing"})($k||($k={}));nb.error={message:e=>{let{params:t}=e;return t.propError?t.propError===$k.Additional?"must NOT have additional properties":`must have property '${t.missingProperty}'`:(0,znt.typeErrorMessage)(e,"object")},params:e=>{let{params:t}=e;return t.propError?t.propError===$k.Additional?(0,sg._)`{error: ${t.propError}, additionalProperty: ${t.additionalProperty}}`:(0,sg._)`{error: ${t.propError}, missingProperty: ${t.missingProperty}}`:(0,znt.typeErrorParams)(e,"object")}};var BIn={keyword:"properties",schemaType:"object",error:nb.error,code:Gnt};function Gnt(e){(0,HIn.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,qIn.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,Yue.allSchemaProperties)(E):[];if(i.jtdDiscriminator&&_.some(R=>R===i.jtdDiscriminator))throw new Error(`JTD: discriminator tag used in ${S}`);let T=_.filter(R=>!(0,Bnt.alwaysValidSchema)(i,E[R]));return[_,T]}function m(S,E,_){let T=t.var("valid");for(let A of S)t.if((0,Yue.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:$k.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,sg.and)(E,_);t.if(T,()=>{i.opts.removeAdditional?t.code((0,sg._)`delete ${n}[${S}]`):(e.error(!1,{propError:$k.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,Bnt.schemaRefOrVal)(i,r[_],_);R=(0,sg.not)((0,Yue.isOwnProperty)(t,A,S)),T!==void 0&&(R=(0,sg.and)(R,(0,sg._)`${S} !== ${T}`))}else if(E.length||T!==void 0){let A=T===void 0?E:[T].concat(E);R=(0,sg.and)(...A.map(x=>(0,sg._)`${S} !== ${x}`))}else R=!0;return R}}nb.validateProperties=Gnt;nb.default=BIn});var Wnt=w(Jue=>{"use strict";Object.defineProperty(Jue,"__esModule",{value:!0});var Vnt=Zue(),zIn={keyword:"optionalProperties",schemaType:"object",error:Vnt.error,code(e){e.parentSchema.properties||(0,Vnt.validateProperties)(e)}};Jue.default=zIn});var Ynt=w(Xue=>{"use strict";Object.defineProperty(Xue,"__esModule",{value:!0});var pT=Ot(),GIn=ig(),VIn=Qk(),Knt=Zk(),w4=Coe(),WIn={message:e=>{let{schema:t,params:n}=e;return n.discrError?n.discrError===w4.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in mapping`:(0,Knt.typeErrorMessage)(e,"object")},params:e=>{let{schema:t,params:n}=e;return n.discrError?(0,pT._)`{error: ${n.discrError}, tag: ${t}, tagValue: ${n.tag}}`:(0,Knt.typeErrorParams)(e,"object")}},KIn={keyword:"discriminator",schemaType:"string",implements:["mapping"],error:WIn,code(e){(0,GIn.checkMetadata)(e);let{gen:t,data:n,schema:r,parentSchema:i}=e,[s,o]=(0,VIn.checkNullableObject)(e,n);t.if(o),a(),t.elseIf((0,pT.not)(s)),e.error(),t.endIf(),e.ok(s);function a(){let l=t.const("tag",(0,pT._)`${n}${(0,pT.getProperty)(r)}`);t.if((0,pT._)`${l} === undefined`),e.error(!1,{discrError:w4.DiscrError.Tag,tag:l}),t.elseIf((0,pT._)`typeof ${l} == "string"`),c(l),t.else(),e.error(!1,{discrError:w4.DiscrError.Tag,tag:l},{instancePath:r}),t.endIf()}function c(l){t.if(!1);for(let d in i.mapping)t.elseIf((0,pT._)`${l} === ${d}`),t.assign(s,u(d));t.else(),e.error(!1,{discrError:w4.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}}};Xue.default=KIn});var Jnt=w(Que=>{"use strict";Object.defineProperty(Que,"__esModule",{value:!0});var Znt=pn(),k4=Ot(),YIn=ig(),ZIn=Qk(),JIn=Zk(),XIn={keyword:"values",schemaType:"object",error:(0,JIn.typeError)("object"),code(e){(0,YIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e,[s,o]=(0,ZIn.checkNullableObject)(e,n);(0,Znt.alwaysValidSchema)(i,r)?t.if((0,k4.not)((0,k4.or)(o,s)),()=>e.error()):(t.if(o),t.assign(s,a()),t.elseIf((0,k4.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:Znt.Type.Str},c),t.if((0,k4.not)(c),l)})}}}};Que.default=XIn});var Xnt=w($ue=>{"use strict";Object.defineProperty($ue,"__esModule",{value:!0});var QIn=Sa(),$In={keyword:"union",schemaType:"array",trackErrors:!0,code:QIn.validateUnion,error:{message:"must match a schema in union"}};$ue.default=$In});var Qnt=w(ele=>{"use strict";Object.defineProperty(ele,"__esModule",{value:!0});var e0n=R4(),t0n=Vue(),n0n=jnt(),r0n=qnt(),i0n=Zue(),s0n=Wnt(),o0n=Ynt(),a0n=Jnt(),c0n=Xnt(),u0n=ig(),l0n=["definitions",e0n.default,t0n.default,n0n.default,r0n.default,i0n.default,s0n.default,o0n.default,a0n.default,c0n.default,u0n.default,{keyword:"additionalProperties",schemaType:"boolean"},{keyword:"nullable",schemaType:"boolean"}];ele.default=l0n});var nrt=w(tle=>{"use strict";Object.defineProperty(tle,"__esModule",{value:!0});var og=e=>{let t={nullable:{type:"boolean"},metadata:{optionalProperties:{union:{elements:{ref:"schema"}}},additionalProperties:!0}};return e&&(t.definitions={values:{ref:"schema"}}),t},d0n=e=>({optionalProperties:og(e)}),f0n=e=>({properties:{ref:{type:"string"}},optionalProperties:og(e)}),p0n=e=>({properties:{type:{enum:["boolean","timestamp","string","float32","float64","int8","uint8","int16","uint16","int32","uint32"]}},optionalProperties:og(e)}),h0n=e=>({properties:{enum:{elements:{type:"string"}}},optionalProperties:og(e)}),m0n=e=>({properties:{elements:{ref:"schema"}},optionalProperties:og(e)}),ert=e=>({properties:{properties:{values:{ref:"schema"}}},optionalProperties:{optionalProperties:{values:{ref:"schema"}},additionalProperties:{type:"boolean"},...og(e)}}),trt=e=>({properties:{optionalProperties:{values:{ref:"schema"}}},optionalProperties:{additionalProperties:{type:"boolean"},...og(e)}}),g0n=e=>({properties:{discriminator:{type:"string"},mapping:{values:{metadata:{union:[ert(!1),trt(!1)]}}}},optionalProperties:og(e)}),y0n=e=>({properties:{values:{ref:"schema"}},optionalProperties:og(e)}),$nt=e=>({metadata:{union:[d0n,f0n,p0n,h0n,m0n,ert,trt,g0n,y0n].map(t=>t(e))}}),S0n={definitions:{schema:$nt(!1)},...$nt(!0)};tle.default=S0n});var nle=w(I4=>{"use strict";Object.defineProperty(I4,"__esModule",{value:!0});I4.jtdForms=void 0;I4.jtdForms=["elements","values","discriminator","properties","optionalProperties","enum","type","ref"]});var irt=w(ile=>{"use strict";Object.defineProperty(ile,"__esModule",{value:!0});var rle=/[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,b0n={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function rrt(e){return rle.lastIndex=0,'"'+(rle.test(e)?e.replace(rle,t=>{let n=b0n[t];return typeof n=="string"?n:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)}):e)+'"'}ile.default=rrt;rrt.code='require("ajv/dist/runtime/quote").default'});var lrt=w(ole=>{"use strict";Object.defineProperty(ole,"__esModule",{value:!0});var E0n=nle(),ort=q_(),En=Ot(),_0n=Zm(),qr=bd(),T0n=Sa(),v0n=R4(),R0n=pn(),A0n=irt(),w0n={elements:I0n,values:x0n,discriminator:O0n,properties:srt,optionalProperties:srt,enum:VM,type:P0n,ref:C0n};function art(e,t){let n=ort.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)``),WM(c),o.return(qr.default.json)}),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(qr.default.scope)}return ${l}`;let f=new Function(`${qr.default.scope}`,u)(this.scope.get());this.scope.value(a,{ref:f}),e.serialize=f}catch(l){throw u&&this.logger.error("Error compiling serializer, function code:",u),delete e.serialize,delete e.serializeName,l}finally{this._compilations.delete(e)}return e}ole.default=art;function WM(e){let t;for(let n of E0n.jtdForms)if(n in e.schema){t=n;break}k0n(e,t?w0n[t]:D0n)}function k0n(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 I0n(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=>{sle(e,i),WM({...e,schema:n.elements,data:s})}),t.add(qr.default.json,(0,En.str)`]`)}function x0n(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=>crt(e,s,n.values,i)),t.add(qr.default.json,(0,En.str)`}`)}function crt(e,t,n,r){let{gen:i,data:s}=e;sle(e,r),VM({...e,data:t}),i.add(qr.default.json,(0,En.str)`:`);let o=i.const("value",(0,En._)`${s}${(0,En.getProperty)(t)}`);WM({...e,schema:n,data:o})}function O0n(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)}`);VM({...e,data:s}),t.if(!1);for(let o in n.mapping){t.elseIf((0,En._)`${s} === ${o}`);let a=n.mapping[o];urt({...e,schema:a},i)}t.endIf(),t.add(qr.default.json,(0,En.str)`}`)}function srt(e){let{gen:t}=e;t.add(qr.default.json,(0,En.str)`{`),urt(e),t.add(qr.default.json,(0,En.str)`}`)}function urt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o}=r,a=f(s),c=f(o),u=p(a.concat(c)),l=!t,d;for(let y of a)l?l=!1:n.add(qr.default.json,(0,En.str)`,`),m(y,s[y],h(y));l&&(d=n.let("first",!0));for(let y of c){let b=h(y);n.if((0,En.and)((0,En._)`${b} !== undefined`,(0,T0n.isOwnProperty)(n,i,y)),()=>{sle(e,d),m(y,o[y],b)})}r.additionalProperties&&n.forIn("key",i,y=>n.if(g(y,u),()=>crt(e,y,{},d)));function f(y){return y?Object.keys(y):[]}function p(y){if(t&&y.push(t),new Set(y).size!==y.length)throw new Error("JTD: properties/optionalProperties/disciminator overlap");return y}function h(y){return n.const("value",(0,En._)`${i}${(0,En.getProperty)(y)}`)}function m(y,b,S){n.add(qr.default.json,(0,En.str)`${JSON.stringify(y)}:`),WM({...e,schema:b,data:S})}function g(y,b){return b.length?(0,En.and)(...b.map(S=>(0,En._)`${y} !== ${S}`)):!0}}function P0n(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":VM(e);break;case"timestamp":t.if((0,En._)`${r} instanceof Date`,()=>t.add(qr.default.json,(0,En._)`'"' + ${r}.toISOString() + '"'`),()=>VM(e));break;default:N0n(e)}}function VM({gen:e,data:t}){e.add(qr.default.json,(0,En._)`${(0,R0n.useFunc)(e,A0n.default)}(${t})`)}function N0n({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 C0n(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 _0n.default(n.opts.uriResolver,"",a,`No definition ${a}`);if(!(0,v0n.hasRef)(c))return WM({...e,schema:c});let{root:u}=o,l=art.call(n,new ort.SchemaEnv({schema:c,root:u}),i);t.add(qr.default.json,(0,En._)`${M0n(t,l)}(${r})`)}function M0n(e,t){return t.serialize?e.scopeValue("serialize",{ref:t.serialize}):(0,En._)`${e.scopeValue("wrapper",{ref:t})}.serialize`}function D0n({gen:e,data:t}){e.add(qr.default.json,(0,En._)`JSON.stringify(${t})`)}function sle({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 frt=w(ib=>{"use strict";Object.defineProperty(ib,"__esModule",{value:!0});ib.parseJsonString=ib.parseJsonNumber=ib.parseJson=void 0;var L0n=/position\s(\d+)(?: \(line \d+ column \d+\))?$/;function ag(e,t){let n;ag.message=void 0;let r;t&&(e=e.slice(t));try{return ag.position=t+e.length,JSON.parse(e)}catch(i){if(r=L0n.exec(i.message),!r){ag.message="unexpected end";return}n=+r[1];let s=e[n];e=e.slice(0,n),ag.position=t+n;try{return JSON.parse(e)}catch{ag.message=`unexpected token ${s}`;return}}}ib.parseJson=ag;ag.message=void 0;ag.position=0;ag.code='require("ajv/dist/runtime/parseJson").parseJson';function cg(e,t,n){let r="",i;if(cg.message=void 0,e[t]==="-"&&(r+="-",t++),e[t]==="0")r+="0",t++;else if(!s(n)){o();return}if(n)return cg.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 cg.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(){cg.position=t,cg.message=t="a"&&r<="f")o+=r.charCodeAt(0)-U0n+10;else if(r>="0"&&r<="9")o+=r.charCodeAt(0)-F0n;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 rb.position=t,n;function i(s){rb.position=t,rb.message=s}}ib.parseJsonString=rb;rb.message=void 0;rb.position=0;rb.code='require("ajv/dist/runtime/parseJson").parseJsonString'});var vrt=w(hle=>{"use strict";Object.defineProperty(hle,"__esModule",{value:!0});var j0n=nle(),grt=q_(),mt=Ot(),H0n=Zm(),Ln=bd(),q0n=Sa(),B0n=R4(),z0n=Vue(),ule=frt(),yrt=pn(),G0n=Gue(),V0n={elements:Z0n,values:J0n,discriminator:Q0n,properties:prt,optionalProperties:prt,enum:exn,type:$0n,ref:txn};function Srt(e,t){let n=grt.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:Ln.default.data,parseName:a,char:o.name("c")},u;try{this._compilations.add(e),e.parseName=a,W0n(c),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(Ln.default.scope)}return ${l}`;let f=new Function(`${Ln.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}hle.default=Srt;var cle=(0,mt._)`undefined`;function W0n(e){let{gen:t,parseName:n,char:r}=e;t.func(n,(0,mt._)`${Ln.default.json}, ${Ln.default.jsonPos}, ${Ln.default.jsonPart}`,!1,()=>{t.let(Ln.default.data),t.let(r),t.assign((0,mt._)`${n}.message`,cle),t.assign((0,mt._)`${n}.position`,cle),t.assign(Ln.default.jsonPos,(0,mt._)`${Ln.default.jsonPos} || 0`),t.const(Ln.default.jsonLen,(0,mt._)`${Ln.default.json}.length`),x4(e),ple(e),t.if(Ln.default.jsonPart,()=>{t.assign((0,mt._)`${n}.position`,Ln.default.jsonPos),t.return(Ln.default.data)}),t.if((0,mt._)`${Ln.default.jsonPos} === ${Ln.default.jsonLen}`,()=>t.return(Ln.default.data)),eI(e)})}function x4(e){let t;for(let n of j0n.jtdForms)if(n in e.schema){t=n;break}t?Y0n(e,V0n[t]):dle(e)}var K0n=mrt(!0,mrt(!1,eI));function Y0n(e,t){let{gen:n,schema:r,data:i}=e;if(!r.nullable)return t(e);KM(e,"null",t,()=>n.assign(i,null))}function Z0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"[");let i=t.let("i",0);t.assign(r,(0,mt._)`[]`),lle(e,"]",()=>{let s=t.let("el");x4({...e,schema:n.elements,data:s}),t.assign((0,mt._)`${r}[${i}++]`,s)})}function J0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"{"),t.assign(r,(0,mt._)`{}`),lle(e,"}",()=>X0n(e,n.values))}function lle(e,t,n){brt(e,t,n),Ah(e,t)}function brt(e,t,n){let{gen:r}=e;r.for((0,mt._)`;${Ln.default.jsonPos}<${Ln.default.jsonLen} && ${O4(1)}!==${t};`,()=>{n(),KM(e,",",()=>r.break(),i)});function i(){KM(e,t,()=>{},eI)}}function X0n(e,t){let{gen:n}=e,r=n.let("key");hT({...e,data:r}),Ah(e,":"),_rt(e,r,t)}function Q0n(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",Ln.default.jsonPos),a=t.let("value"),c=t.let("tag");brt(e,"}",()=>{let u=t.let("key");hT({...e,data:u}),Ah(e,":"),t.if((0,mt._)`${u} === ${i}`,()=>{hT({...e,data:c}),t.assign((0,mt._)`${n}[${u}]`,c),t.break()},()=>dle({...e,data:a}))}),t.assign(Ln.default.jsonPos,o),t.if((0,mt._)`${c} === undefined`),ug(e,(0,mt.str)`discriminator tag not found`);for(let u in s)t.elseIf((0,mt._)`${c} === ${u}`),Ert({...e,schema:s[u]},i);t.else(),ug(e,(0,mt.str)`discriminator value not in schema`),t.endIf()}function prt(e){let{gen:t,data:n}=e;Ah(e,"{"),t.assign(n,(0,mt._)`{}`),Ert(e)}function Ert(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o,additionalProperties:a}=r;if(lle(e,"}",()=>{let c=n.let("key");if(hT({...e,data:c}),Ah(e,":"),n.if(!1),hrt(e,c,s),hrt(e,c,o),t){n.elseIf((0,mt._)`${c} === ${t}`);let u=n.let("tag");hT({...e,data:u})}n.else(),a?dle({...e,data:(0,mt._)`${i}[${c}]`}):ug(e,(0,mt.str)`property ${c} not allowed`),n.endIf()}),s){let c=(0,q0n.hasPropFunc)(n),u=(0,mt.and)(...Object.keys(s).map(l=>(0,mt._)`${c}.call(${i}, ${l})`));n.if((0,mt.not)(u),()=>ug(e,(0,mt.str)`missing required properties`))}}function hrt(e,t,n={}){let{gen:r}=e;for(let i in n)r.elseIf((0,mt._)`${t} === ${i}`),_rt(e,t,n[i])}function _rt(e,t,n){x4({...e,schema:n,data:(0,mt._)`${e.data}[${t}]`})}function $0n(e){let{gen:t,schema:n,data:r,self:i}=e;switch(n.type){case"boolean":K0n(e);break;case"string":hT(e);break;case"timestamp":{hT(e);let s=(0,yrt.useFunc)(t,G0n.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,()=>ug(e,(0,mt.str)`invalid timestamp`));break}case"float32":case"float64":ale(e);break;default:{let s=n.type;if(!i.opts.int32range&&(s==="int32"||s==="uint32"))ale(e,16),s==="uint32"&&t.if((0,mt._)`${r} < 0`,()=>ug(e,(0,mt.str)`integer out of range`));else{let[o,a,c]=z0n.intRange[s];ale(e,c),t.if((0,mt._)`${r} < ${o} || ${r} > ${a}`,()=>ug(e,(0,mt.str)`integer out of range`))}}}}function hT(e){Ah(e,'"'),fle(e,ule.parseJsonString)}function exn(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._)`${O4(o.length)} === ${o}`),t.assign(n,(0,mt.str)`${s}`),t.add(Ln.default.jsonPos,o.length)}t.else(),eI(e),t.endIf()}function ale(e,t){let{gen:n}=e;ple(e),n.if((0,mt._)`"-0123456789".indexOf(${O4(1)}) < 0`,()=>eI(e),()=>fle(e,ule.parseJsonNumber,t))}function mrt(e,t){return n=>{let{gen:r,data:i}=n;KM(n,`${e}`,()=>t(n),()=>r.assign(i,e))}}function txn(e){let{gen:t,self:n,definitions:r,schema:i,schemaEnv:s}=e,{ref:o}=i,a=r[o];if(!a)throw new H0n.default(n.opts.uriResolver,"",o,`No definition ${o}`);if(!(0,B0n.hasRef)(a))return x4({...e,schema:a});let{root:c}=s,u=Srt.call(n,new grt.SchemaEnv({schema:a,root:c}),r);Trt(e,nxn(t,u),!0)}function nxn(e,t){return t.parse?e.scopeValue("parse",{ref:t.parse}):(0,mt._)`${e.scopeValue("wrapper",{ref:t})}.parse`}function dle(e){fle(e,ule.parseJson)}function fle(e,t,n){Trt(e,(0,yrt.useFunc)(e.gen,t),n)}function Trt(e,t,n){let{gen:r,data:i}=e;r.assign(i,(0,mt._)`${t}(${Ln.default.json}, ${Ln.default.jsonPos}${n?(0,mt._)`, ${n}`:mt.nil})`),r.assign(Ln.default.jsonPos,(0,mt._)`${t}.position`),r.if((0,mt._)`${i} === undefined`,()=>ug(e,(0,mt._)`${t}.message`))}function Ah(e,t){KM(e,t,eI)}function KM(e,t,n,r){let{gen:i}=e,s=t.length;ple(e),i.if((0,mt._)`${O4(s)} === ${t}`,()=>{i.add(Ln.default.jsonPos,s),r?.(e)},()=>n(e))}function ple({gen:e,char:t}){e.code((0,mt._)`while((${t}=${Ln.default.json}[${Ln.default.jsonPos}],${t}===" "||${t}==="\\n"||${t}==="\\r"||${t}==="\\t"))${Ln.default.jsonPos}++;`)}function O4(e){return e===1?(0,mt._)`${Ln.default.json}[${Ln.default.jsonPos}]`:(0,mt._)`${Ln.default.json}.slice(${Ln.default.jsonPos}, ${Ln.default.jsonPos}+${e})`}function eI(e){ug(e,(0,mt._)`"unexpected token " + ${Ln.default.json}[${Ln.default.jsonPos}]`)}function ug({gen:e,parseName:t},n){e.assign((0,mt._)`${t}.message`,n),e.assign((0,mt._)`${t}.position`,Ln.default.jsonPos),e.return(cle)}});var yle=w((bi,gle)=>{"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 rxn=Vse(),ixn=Qnt(),sxn=nrt(),oxn=lrt(),axn=vrt(),mle="JTD-meta-schema",tI=class extends rxn.default{constructor(t={}){super({...t,jtd:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(ixn.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema(),this.opts.meta&&this.addMetaSchema(sxn.default,mle,!1)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(mle)?mle: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(oxn.default.call(this,t,t.schema.definitions||{}),!t.serialize)throw new Error("ajv implementation error");return t.serialize}_compileParser(t){if(axn.default.call(this,t,t.schema.definitions||{}),!t.parse)throw new Error("ajv implementation error");return t.parse}};bi.Ajv=tI;gle.exports=bi=tI;gle.exports.Ajv=tI;Object.defineProperty(bi,"__esModule",{value:!0});bi.default=tI;var cxn=ck();Object.defineProperty(bi,"KeywordCxt",{enumerable:!0,get:function(){return cxn.KeywordCxt}});var nI=Ot();Object.defineProperty(bi,"_",{enumerable:!0,get:function(){return nI._}});Object.defineProperty(bi,"str",{enumerable:!0,get:function(){return nI.str}});Object.defineProperty(bi,"stringify",{enumerable:!0,get:function(){return nI.stringify}});Object.defineProperty(bi,"nil",{enumerable:!0,get:function(){return nI.nil}});Object.defineProperty(bi,"Name",{enumerable:!0,get:function(){return nI.Name}});Object.defineProperty(bi,"CodeGen",{enumerable:!0,get:function(){return nI.CodeGen}});var uxn=MC();Object.defineProperty(bi,"ValidationError",{enumerable:!0,get:function(){return uxn.default}});var lxn=Zm();Object.defineProperty(bi,"MissingRefError",{enumerable:!0,get:function(){return lxn.default}})});var Sle=w((L3r,Rrt)=>{"use strict";var dxn=sV();Rrt.exports=Object.freeze({coerceTypes:"array",useDefaults:!0,removeAdditional:!0,uriResolver:dxn,addUsedSchema:!1,allErrors:!1})});var krt=w((U3r,wrt)=>{"use strict";var fxn=V_().default,pxn=yle(),Art=Sle(),ble=class{constructor(t,n){n.mode==="JTD"?this.ajv=new pxn(Object.assign({},Art,n.customOptions)):this.ajv=new fxn(Object.assign({},Art,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&&TV()(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)}};wrt.exports=ble});var xrt=w((F3r,Irt)=>{"use strict";var hxn=yle(),mxn=Sle(),Ele=class{constructor(t,n){this.ajv=new hxn(Object.assign({},mxn,n))}buildSerializerFunction({schema:t}){return this.ajv.compileSerializer(t)}};Irt.exports=Ele});var Nrt=w((ZM,Prt)=>{"use strict";Object.defineProperty(ZM,"__esModule",{value:!0});var YM=G2(),Cf=ek();function Ort(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)===YM.UsedValueState.Completed)return Cf.nil;p(c.validateName,YM.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?YM.varKinds.var:YM.varKinds.const,E=(0,Cf._)`${S} ${h} = {validate: ${b}};`;if(f(b)===YM.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)}}}Prt.exports=ZM=Ort;Object.defineProperty(ZM,"__esModule",{value:!0});ZM.default=Ort});var Drt=w((j3r,Mrt)=>{"use strict";var Crt=_le(),gxn=Nrt().default;function yxn(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=Crt();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=gxn(s[Crt.AjvReference].ajv,a);return e.storeFunction(o,c),a}}}Mrt.exports=yxn});var _le=w((H3r,rI)=>{"use strict";var Urt=Symbol.for("fastify.ajv-compiler.reference"),Sxn=krt(),bxn=xrt();function Tle(e){let t=new Map,n=new Map;return e&&e.jtdSerializer===!0?function(i,s){let o=Lrt({},s);if(n.has(o))return n.get(o);let a=new bxn(i,s),c=a.buildSerializerFunction.bind(a);return n.set(o,c),c}:function(i,s){let o=Lrt(i,s.customOptions);if(t.has(o))return t.get(o);let a=new Sxn(i,s),c=a.buildValidatorFunction.bind(a);return t.set(o,c),s.customOptions.code!==void 0&&(c[Urt]=a),c}}function Lrt(e,t){let n=JSON.stringify(e),r=JSON.stringify(t);return`${n}${r}`}rI.exports=Tle;rI.exports.default=Tle;rI.exports.AjvCompiler=Tle;rI.exports.AjvReference=Urt;rI.exports.StandaloneValidator=Drt()});var P4=w(Hrt=>{var Frt=Object.prototype.hasOwnProperty;function jrt(e,t,n){for(n of e.keys())if(JM(n,t))return n}function JM(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--&&JM(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=jrt(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=jrt(t,i),!i)||!JM(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(Frt.call(e,n)&&++r&&!Frt.call(t,n)||!(n in t)||!JM(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}Hrt.dequal=JM});var Grt=w((B3r,zrt)=>{"use strict";var{dequal:qrt}=P4(),Exn=Symbol.for("json-schema-ref"),vle=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]:Brt(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]:Brt(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[Exn]=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(qrt(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&&qrt(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 Brt(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}zrt.exports={RefResolver:vle}});var Ale=w((z3r,Vrt)=>{"use strict";var _xn=V_(),Txn=sV(),vxn=TV(),Rxn=n4()({proto:!0}),Rle=class e{constructor(t){this.ajv=new _xn({...t,strictSchema:!1,validateSchema:!1,allowUnionTypes:!0,uriResolver:Txn}),vxn(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=Rxn(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}};Vrt.exports=Rle});var Krt=w((G3r,Wrt)=>{"use strict";var wle=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}};Wrt.exports=wle});var Qrt=w((V3r,Ile)=>{"use strict";Ile.exports=qe;Ile.exports.default=qe;var Axn={$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},Yrt={enum:["array","boolean","integer","null","number","object","string"]},Zrt=/^(?:[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,wxn=EV().fullFormats.uri,Jrt=EV().fullFormats.regex;function kd(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))?(kd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1):(kd.errors=s,o===0):(kd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1)}var kle={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;kd(e.minLength,{instancePath:t+"/minLength",parentData:e,parentDataProperty:"minLength",rootData:i})||(s=s===null?kd.errors:s.concat(kd.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(!Jrt(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;kd(e.minItems,{instancePath:t+"/minItems",parentData:e,parentDataProperty:"minItems",rootData:i})||(s=s===null?kd.errors:s.concat(kd.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;kd(e.minProperties,{instancePath:t+"/minProperties",parentData:e,parentDataProperty:"minProperties",rootData:i})||(s=s===null?kd.errors:s.concat(kd.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"&&!Jrt(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(Xrt(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:Yrt.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(Xrt(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 Nle=w((W3r,$rt)=>{"use strict";var xle=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}},Ole=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}},Ple=class extends Error{constructor(t){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Invalid "onConflict" option: "${t}".`}};$rt.exports={MergeError:xle,ResolverNotFoundError:Ole,InvalidOnConflictOptionError:Ple}});var nit=w((K3r,tit)=>{"use strict";var{dequal:kxn}=P4(),{MergeError:Cle}=Nle();function eit(e){let t=e[0];for(let n=1;ne[n].includes(r));return t}function Ixn(e,t,n){let r=eit(t);if(r.length===0)throw new Cle(e,t);n[e]=r}function xxn(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 Mxn(e,t,n){let r=t[0];for(let i=1;i{"use strict";var{dequal:Fxn}=P4(),Xi=nit(),M4=Nle(),sit={$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:Gxn,patternProperties:C4,additionalProperties:N4,items:qxn,additionalItems:Bxn,definitions:C4,$defs:C4,nullable:Xi.booleanAnd,oneOf:rit,anyOf:rit,allOf:Xi.arraysUnion,not:N4,if:Vxn,then:Xi.skip,else:Xi.skip,dependencies:iit,dependentRequired:iit,dependentSchemas:C4,propertyNames:N4,uniqueItems:Xi.booleanOr,contains:N4};function N4(e,t,n,r,i){n[e]=Mf(t,i)}function jxn(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 rit(e,t,n,r,i){if(t.length===1){n[e]=t[0];return}let s=jxn(t),o=[];for(let a of s)try{let c=Mf(a,i);c!==void 0&&o.push(c)}catch(c){if(c instanceof M4.MergeError)continue;throw c}n[e]=o}function Hxn(e,t){let{items:n,additionalItems:r}=e;return Array.isArray(n)?t{"use strict";var{mergeSchemas:Kxn}=cit();function Yxn(e){return Kxn(e,{onConflict:"skip"})}uit.exports=Yxn});var dit=w((J3r,Mle)=>{"use strict";function Zxn(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)`}Rle.exports=P0n;Rle.exports.dependencies={Serializer:JW(),Validator:gle()}});var uit=w((pKr,Xk)=>{"use strict";var{RefResolver:C0n}=Crt(),M0n=JW(),L0n=gle(),pT=Drt(),tit=qrt(),D0n=$rt(),U0n=/'/g,HM=2e4,k3="default",F0n=` + module.exports = ${e.toString()}(validator, serializer)`}Mle.exports=Zxn;Mle.exports.dependencies={Serializer:i4(),Validator:Ale()}});var Eit=w((X3r,iI)=>{"use strict";var{RefResolver:Jxn}=Grt(),Xxn=i4(),Qxn=Ale(),mT=Krt(),fit=Qrt(),$xn=lit(),eOn=/'/g,XM=2e4,D4="default",tOn=` const { asString, asNumber, @@ -157,8 +157,8 @@ const { const asInteger = serializer.asInteger.bind(serializer) -`,j0n=new Set(["floor","ceil","round","trunc"]),sit=new Set(["default","json-stringify"]),qM=0;function wle(e,t){if(!tit(e)){t?t=`"${t}" `:t="";let n=tit.errors[0],r=new Error(`${t}schema is invalid: data${n.instancePath} ${n.message}`);throw r.errors=wle.errors,r}}function cg(e,t){let n=t.schema.$ref,r=n.indexOf("#");r===-1&&(r=n.length);let i=n.slice(0,r)||t.schemaId,s=n.slice(r)||"#",o=e.refResolver.getSchema(i,s);if(o===null)throw new Error(`Cannot find reference "${n}"`);let a=new pT(o,i,s);return o.$ref!==void 0?cg(e,a):a}function I3(e,t){let n=e.refResolver.getSchema(t,"#");return new pT(n,t,"#")}function nit(e,t){return e.$id&&e.$id.charAt(0)!=="#"?e.$id:t}function BM(e,t){let n=t.getSchemaRef()||"";return n.startsWith(e.rootSchemaId)&&(n=n.replace(e.rootSchemaId,"")||"#"),n}function Ile(e,t){wle(e),t=t||{};let n={functions:[],functionsCounter:0,functionsNamesBySchema:new Map,options:t,refResolver:new C0n,rootSchemaId:e.$id||`__fjs_root_${qM++}`,validatorSchemasIds:new Set,mergedSchemasIds:new Map,recursiveSchemas:new Set,recursivePaths:new Set,buildingSet:new Set,uid:0},r=nit(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=nit(d,l);n.refResolver.hasSchema(f)||(wle(d,l),n.refResolver.addSchema(d,l))}if(t.rounding&&!j0n.has(t.rounding))throw new Error(`Unsupported integer rounding method ${t.rounding}`);if(t.largeArrayMechanism)if(sit.has(t.largeArrayMechanism))k3=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)))HM=d;else if(l==="number"&&Number.isInteger(t.largeArraySize))HM=t.largeArraySize;else if(l==="bigint")HM=Number(t.largeArraySize);else throw new Error(`Unsupported large array size. Expected integer-like, got ${typeof t.largeArraySize} with value ${t.largeArraySize}`)}let i=new pT(e,n.rootSchemaId);Y0n(n,i);let s=ac(n,i,"input"),o=` - ${F0n} +`,nOn=new Set(["floor","ceil","round","trunc"]),git=new Set(["default","json-stringify"]),QM=0;function Dle(e,t){if(!fit(e)){t?t=`"${t}" `:t="";let n=fit.errors[0],r=new Error(`${t}schema is invalid: data${n.instancePath} ${n.message}`);throw r.errors=Dle.errors,r}}function lg(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 mT(o,i,s);return o.$ref!==void 0?lg(e,a):a}function L4(e,t){let n=e.refResolver.getSchema(t,"#");return new mT(n,t,"#")}function pit(e,t){return e.$id&&e.$id.charAt(0)!=="#"?e.$id:t}function $M(e,t){let n=t.getSchemaRef()||"";return n.startsWith(e.rootSchemaId)&&(n=n.replace(e.rootSchemaId,"")||"#"),n}function Ule(e,t){Dle(e),t=t||{};let n={functions:[],functionsCounter:0,functionsNamesBySchema:new Map,options:t,refResolver:new Jxn,rootSchemaId:e.$id||`__fjs_root_${QM++}`,validatorSchemasIds:new Set,mergedSchemasIds:new Map,recursiveSchemas:new Set,recursivePaths:new Set,buildingSet:new Set,uid:0},r=pit(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=pit(d,l);n.refResolver.hasSchema(f)||(Dle(d,l),n.refResolver.addSchema(d,l))}if(t.rounding&&!nOn.has(t.rounding))throw new Error(`Unsupported integer rounding method ${t.rounding}`);if(t.largeArrayMechanism)if(git.has(t.largeArrayMechanism))D4=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)))XM=d;else if(l==="number"&&Number.isInteger(t.largeArraySize))XM=t.largeArraySize;else if(l==="bigint")XM=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 mT(e,n.rootSchemaId);fOn(n,i);let s=cc(n,i,"input"),o=` + ${tOn} 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 M0n(t),c=new L0n(t.ajv);for(let l of n.validatorSchemasIds){let d=n.refResolver.getSchema(l);c.addSchema(d,l);let f=n.refResolver.getSchemaDependencies(l);for(let[p,h]of Object.entries(f))c.addSchema(h,p)}if(t.debugMode&&(t.mode="debug"),t.mode==="debug")return{validator:c,serializer:a,code:`validator + `;let a=new Xxn(t),c=new Qxn(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"?eit()(u,n,a,c):u(c,a)}var H0n=["properties","required","additionalProperties","patternProperties","maxProperties","minProperties","dependencies"],q0n=["items","additionalItems","maxItems","minItems","uniqueItems","contains"],B0n=["maxLength","minLength","pattern"],G0n=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum"];function z0n(e){for(let t of H0n)if(t in e)return"object";for(let t of q0n)if(t in e)return"array";for(let t of B0n)if(t in e)return"string";for(let t of G0n)if(t in e)return"number";return e.type}function V0n(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"?dit()(u,n,a,c):u(c,a)}var rOn=["properties","required","additionalProperties","patternProperties","maxProperties","minProperties","dependencies"],iOn=["items","additionalItems","maxItems","minItems","uniqueItems","contains"],sOn=["maxLength","minLength","pattern"],oOn=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum"];function aOn(e){for(let t of rOn)if(t in e)return"object";for(let t of iOn)if(t in e)return"array";for(let t of sOn)if(t in e)return"string";for(let t of oOn)if(t in e)return"number";return e.type}function cOn(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 - ${ac(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 - ${ac(e,d,"value")} + ${cc(e,d,"value")} `}return o+=` } - `,o}function rit(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 hit(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=lg(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+":")} - ${ac(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+=V0n(e,t,u,n)),a+=` +`}}return(r.patternProperties||r.additionalProperties)&&(a+=cOn(e,t,u,n)),a+=` json += JSON_STR_END_OBJECT - `,a}function x3(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.\`) } - `),k3==="json-stringify"&&(m+=`if (arrayLength >= ${HM}) return JSON.stringify(obj) + `),D4==="json-stringify"&&(m+=`if (arrayLength >= ${XM}) 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=BM(e,t),d=`obj_${e.uid++}`,f=` + }`,e.functions.push(m),`json += ${p}(${n})`}e.buildingSet.add(r);let l=$M(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.\`) } - `),k3==="json-stringify"&&(f+=`if (arrayLength_${d} >= ${HM}) json += JSON.stringify(${d}) + `),D4==="json-stringify"&&(f+=`if (arrayLength_${d} >= ${XM}) 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 - `,k3==="json-stringify"&&(f+="}"),f+="}",e.buildingSet.delete(r),f}function kle(e,t){let n;switch(e){case"null":n=`${t} === null`;break;case"string":n=`typeof ${t} === 'string' || + `,D4==="json-stringify"&&(f+="}"),f+="}",e.buildingSet.delete(r),f}function Lle(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=>kle(i,t)).join(" || ")})`)}return n}function ait(e){return"anonymous"+e.functionsCounter++}function Z0n(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=cit(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=>Lle(i,t)).join(" || ")})`)}return n}function Sit(e){return"anonymous"+e.functionsCounter++}function dOn(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=bit(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 '${BM(e,t)}' does not match schema definition.\`) - `,s}function cit(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 '${$M(e,t)}' does not match schema definition.\`) + `,s}function bit(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 W0n(e,t,n);case"array":return K0n(e,t,n);case void 0:return`json += JSON.stringify(${n})`;default:throw new Error(`${r.type} unsupported`)}}function Y0n(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 eOn=uit();function lit(){return function(t,n){let r=Object.assign({},n,{schema:t});return tOn.bind(null,r)}}function tOn(e,{schema:t}){return e.schema&&t.$id&&e.schema[t.$id]&&(e.schema={...e.schema},delete e.schema[t.$id]),eOn(t,e)}function dit(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=lit();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)}}}O3.exports.SerializerSelector=lit;O3.exports.StandaloneSerializer=dit;O3.exports.default=dit});var pit=w((mKr,GM)=>{"use strict";var{SerializerSelector:xle,StandaloneSerializer:nOn}=fit();GM.exports=xle;GM.exports.default=xle;GM.exports.SerializerSelector=xle;GM.exports.StandaloneSerializer=nOn});var Ole=w((gKr,hit)=>{"use strict";var{buildSchemas:rOn}=_M();function iOn(e,t){if(e)return new Qk(e,t);let n=Object.assign({buildValidator:null,buildSerializer:null},t?.compilersFactory);if(!n.buildValidator){let i=fle();n.buildValidator=i()}if(!n.buildSerializer){let i=pit();n.buildSerializer=i()}let r={bucket:t&&t.bucket||rOn,compilersFactory:n,isCustomValidatorCompiler:typeof t?.compilersFactory?.buildValidator=="function",isCustomSerializerCompiler:typeof t?.compilersFactory?.buildValidator=="function"};return new Qk(void 0,r)}var Qk=class{constructor(t,n){this.opts=n||t?.opts,this.addedSchemas=!1,this.compilersFactory=this.opts.compilersFactory,t?(this.schemaBucket=this.opts.bucket(t.getSchemas()),this.validatorCompiler=t.getValidatorCompiler(),this.serializerCompiler=t.getSerializerCompiler(),this.isCustomValidatorCompiler=t.isCustomValidatorCompiler,this.isCustomSerializerCompiler=t.isCustomSerializerCompiler,this.parent=t):(this.schemaBucket=this.opts.bucket(),this.isCustomValidatorCompiler=this.opts.isCustomValidatorCompiler||!1,this.isCustomSerializerCompiler=this.opts.isCustomSerializerCompiler||!1)}add(t){return this.addedSchemas=!0,this.schemaBucket.add(t)}getSchema(t){return this.schemaBucket.getSchema(t)}getSchemas(){return this.schemaBucket.getSchemas()}setValidatorCompiler(t){this.compilersFactory=Object.assign({},this.compilersFactory,{buildValidator:()=>t}),this.validatorCompiler=t,this.isCustomValidatorCompiler=!0}setSerializerCompiler(t){this.compilersFactory=Object.assign({},this.compilersFactory,{buildSerializer:()=>t}),this.serializerCompiler=t,this.isCustomSerializerCompiler=!0}getValidatorCompiler(){return this.validatorCompiler||this.parent&&this.parent.getValidatorCompiler()}getSerializerCompiler(){return this.serializerCompiler||this.parent&&this.parent.getSerializerCompiler()}getSerializerBuilder(){return this.compilersFactory.buildSerializer||this.parent&&this.parent.getSerializerBuilder()}getValidatorBuilder(){return this.compilersFactory.buildValidator||this.parent&&this.parent.getValidatorBuilder()}setupValidator(t){this.validatorCompiler!==void 0&&!this.addedSchemas||(this.validatorCompiler=this.getValidatorBuilder()(this.schemaBucket.getSchemas(),t.ajv))}setupSerializer(t){this.serializerCompiler!==void 0&&!this.addedSchemas||(this.serializerCompiler=this.getSerializerBuilder()(this.schemaBucket.getSchemas(),t.serializerOpts))}};Qk.buildSchemaController=iOn;hit.exports=Qk});var zM=w((yKr,mit)=>{"use strict";var sOn="2.0.0",oOn=Number.MAX_SAFE_INTEGER||9007199254740991,aOn=16,cOn=250,uOn=["major","premajor","minor","preminor","patch","prepatch","prerelease"];mit.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:aOn,MAX_SAFE_BUILD_LENGTH:cOn,MAX_SAFE_INTEGER:oOn,RELEASE_TYPES:uOn,SEMVER_SPEC_VERSION:sOn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var VM=w((SKr,git)=>{"use strict";var lOn=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};git.exports=lOn});var $k=w((Rh,yit)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Nle,MAX_SAFE_BUILD_LENGTH:dOn,MAX_LENGTH:fOn}=zM(),pOn=VM();Rh=yit.exports={};var hOn=Rh.re=[],mOn=Rh.safeRe=[],et=Rh.src=[],gOn=Rh.safeSrc=[],tt=Rh.t={},yOn=0,Ple="[a-zA-Z0-9-]",SOn=[["\\s",1],["\\d",fOn],[Ple,dOn]],EOn=e=>{for(let[t,n]of SOn)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e},on=(e,t,n)=>{let r=EOn(t),i=yOn++;pOn(e,i,t),tt[e]=i,et[i]=t,gOn[i]=r,hOn[i]=new RegExp(t,n?"g":void 0),mOn[i]=new RegExp(r,n?"g":void 0)};on("NUMERICIDENTIFIER","0|[1-9]\\d*");on("NUMERICIDENTIFIERLOOSE","\\d+");on("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Ple}*`);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",`${Ple}+`);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,${Nle}})(?:\\.(\\d{1,${Nle}}))?(?:\\.(\\d{1,${Nle}}))?`);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 N3=w((EKr,Sit)=>{"use strict";var bOn=Object.freeze({loose:!0}),_On=Object.freeze({}),TOn=e=>e?typeof e!="object"?bOn:e:_On;Sit.exports=TOn});var Cle=w((bKr,_it)=>{"use strict";var Eit=/^[0-9]+$/,bit=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:ebit(t,e);_it.exports={compareIdentifiers:bit,rcompareIdentifiers:vOn}});var cc=w((_Kr,vit)=>{"use strict";var P3=VM(),{MAX_LENGTH:Tit,MAX_SAFE_INTEGER:C3}=zM(),{safeRe:M3,t:L3}=$k(),AOn=N3(),{compareIdentifiers:Mle}=Cle(),Lle=class e{constructor(t,n){if(n=AOn(n),t instanceof e){if(t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>Tit)throw new TypeError(`version is longer than ${Tit} characters`);P3("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;let r=t.trim().match(n.loose?M3[L3.LOOSE]:M3[L3.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>C3||this.major<0)throw new TypeError("Invalid major version");if(this.minor>C3||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>C3||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(P3("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 Mle(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(P3("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 Mle(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?M3[L3.PRERELEASELOOSE]:M3[L3.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]),Mle(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}};vit.exports=Lle});var hT=w((TKr,Rit)=>{"use strict";var Ait=cc(),ROn=(e,t,n=!1)=>{if(e instanceof Ait)return e;try{return new Ait(e,t)}catch(r){if(!n)return null;throw r}};Rit.exports=ROn});var kit=w((vKr,wit)=>{"use strict";var wOn=hT(),kOn=(e,t)=>{let n=wOn(e,t);return n?n.version:null};wit.exports=kOn});var xit=w((AKr,Iit)=>{"use strict";var IOn=hT(),xOn=(e,t)=>{let n=IOn(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null};Iit.exports=xOn});var Pit=w((RKr,Nit)=>{"use strict";var Oit=cc(),OOn=(e,t,n,r,i)=>{typeof n=="string"&&(i=r,r=n,n=void 0);try{return new Oit(e instanceof Oit?e.version:e,n).inc(t,r,i).version}catch{return null}};Nit.exports=OOn});var Lit=w((wKr,Mit)=>{"use strict";var Cit=hT(),NOn=(e,t)=>{let n=Cit(e,null,!0),r=Cit(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"};Mit.exports=NOn});var Uit=w((kKr,Dit)=>{"use strict";var POn=cc(),COn=(e,t)=>new POn(e,t).major;Dit.exports=COn});var jit=w((IKr,Fit)=>{"use strict";var MOn=cc(),LOn=(e,t)=>new MOn(e,t).minor;Fit.exports=LOn});var qit=w((xKr,Hit)=>{"use strict";var DOn=cc(),UOn=(e,t)=>new DOn(e,t).patch;Hit.exports=UOn});var Git=w((OKr,Bit)=>{"use strict";var FOn=hT(),jOn=(e,t)=>{let n=FOn(e,t);return n&&n.prerelease.length?n.prerelease:null};Bit.exports=jOn});var Rd=w((NKr,Vit)=>{"use strict";var zit=cc(),HOn=(e,t,n)=>new zit(e,n).compare(new zit(t,n));Vit.exports=HOn});var Kit=w((PKr,Wit)=>{"use strict";var qOn=Rd(),BOn=(e,t,n)=>qOn(t,e,n);Wit.exports=BOn});var Yit=w((CKr,Zit)=>{"use strict";var GOn=Rd(),zOn=(e,t)=>GOn(e,t,!0);Zit.exports=zOn});var D3=w((MKr,Xit)=>{"use strict";var Jit=cc(),VOn=(e,t,n)=>{let r=new Jit(e,n),i=new Jit(t,n);return r.compare(i)||r.compareBuild(i)};Xit.exports=VOn});var $it=w((LKr,Qit)=>{"use strict";var WOn=D3(),KOn=(e,t)=>e.sort((n,r)=>WOn(n,r,t));Qit.exports=KOn});var tst=w((DKr,est)=>{"use strict";var ZOn=D3(),YOn=(e,t)=>e.sort((n,r)=>ZOn(r,n,t));est.exports=YOn});var WM=w((UKr,nst)=>{"use strict";var JOn=Rd(),XOn=(e,t,n)=>JOn(e,t,n)>0;nst.exports=XOn});var U3=w((FKr,rst)=>{"use strict";var QOn=Rd(),$On=(e,t,n)=>QOn(e,t,n)<0;rst.exports=$On});var Dle=w((jKr,ist)=>{"use strict";var eNn=Rd(),tNn=(e,t,n)=>eNn(e,t,n)===0;ist.exports=tNn});var Ule=w((HKr,sst)=>{"use strict";var nNn=Rd(),rNn=(e,t,n)=>nNn(e,t,n)!==0;sst.exports=rNn});var F3=w((qKr,ost)=>{"use strict";var iNn=Rd(),sNn=(e,t,n)=>iNn(e,t,n)>=0;ost.exports=sNn});var j3=w((BKr,ast)=>{"use strict";var oNn=Rd(),aNn=(e,t,n)=>oNn(e,t,n)<=0;ast.exports=aNn});var Fle=w((GKr,cst)=>{"use strict";var cNn=Dle(),uNn=Ule(),lNn=WM(),dNn=F3(),fNn=U3(),pNn=j3(),hNn=(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 cNn(e,n,r);case"!=":return uNn(e,n,r);case">":return lNn(e,n,r);case">=":return dNn(e,n,r);case"<":return fNn(e,n,r);case"<=":return pNn(e,n,r);default:throw new TypeError(`Invalid operator: ${t}`)}};cst.exports=hNn});var lst=w((zKr,ust)=>{"use strict";var mNn=cc(),gNn=hT(),{safeRe:H3,t:q3}=$k(),yNn=(e,t)=>{if(e instanceof mNn)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?H3[q3.COERCEFULL]:H3[q3.COERCE]);else{let c=t.includePrerelease?H3[q3.COERCERTLFULL]:H3[q3.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 gNn(`${r}.${i}.${s}${o}${a}`,t)};ust.exports=yNn});var fst=w((VKr,dst)=>{"use strict";var jle=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}};dst.exports=jle});var wd=w((WKr,gst)=>{"use strict";var SNn=/\s+/g,Hle=class e{constructor(t,n){if(n=bNn(n),t instanceof e)return t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease?t:new e(t.raw,n);if(t instanceof qle)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(SNn," "),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=>!hst(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&&kNn(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&&RNn)|(this.options.loose&&wNn))+":"+t,i=pst.get(r);if(i)return i;let s=this.options.loose,o=s?Vc[uc.HYPHENRANGELOOSE]:Vc[uc.HYPHENRANGE];t=t.replace(o,UNn(this.options.includePrerelease)),bi("hyphen replace",t),t=t.replace(Vc[uc.COMPARATORTRIM],TNn),bi("comparator trim",t),t=t.replace(Vc[uc.TILDETRIM],vNn),bi("tilde trim",t),t=t.replace(Vc[uc.CARETTRIM],ANn),bi("caret trim",t);let a=t.split(" ").map(d=>INn(d,this.options)).join(" ").split(/\s+/).map(d=>DNn(d,this.options));s&&(a=a.filter(d=>(bi("loose invalid filter",d,this.options),!!d.match(Vc[uc.COMPARATORLOOSE])))),bi("range list",a);let c=new Map,u=a.map(d=>new qle(d,this.options));for(let d of u){if(hst(d))return[d];c.set(d.value,d)}c.size>1&&c.has("")&&c.delete("");let l=[...c.values()];return pst.set(r,l),l}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(r=>mst(r,n)&&t.set.some(i=>mst(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 _Nn(t,this.options)}catch{return!1}for(let n=0;ne.value==="<0.0.0-0",kNn=e=>e.value==="",mst=(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},INn=(e,t)=>(e=e.replace(Vc[uc.BUILD],""),bi("comp",e,t),e=NNn(e,t),bi("caret",e),e=xNn(e,t),bi("tildes",e),e=CNn(e,t),bi("xrange",e),e=LNn(e,t),bi("stars",e),e),Wc=e=>!e||e.toLowerCase()==="x"||e==="*",xNn=(e,t)=>e.trim().split(/\s+/).map(n=>ONn(n,t)).join(" "),ONn=(e,t)=>{let n=t.loose?Vc[uc.TILDELOOSE]:Vc[uc.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})},NNn=(e,t)=>e.trim().split(/\s+/).map(n=>PNn(n,t)).join(" "),PNn=(e,t)=>{bi("caret",e,t);let n=t.loose?Vc[uc.CARETLOOSE]:Vc[uc.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{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})},CNn=(e,t)=>(bi("replaceXRanges",e,t),e.split(/\s+/).map(n=>MNn(n,t)).join(" ")),MNn=(e,t)=>{e=e.trim();let n=t.loose?Vc[uc.XRANGELOOSE]:Vc[uc.XRANGE];return e.replace(n,(r,i,s,o,a,c)=>{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})},LNn=(e,t)=>(bi("replaceStars",e,t),e.trim().replace(Vc[uc.STAR],"")),DNn=(e,t)=>(bi("replaceGTE0",e,t),e.trim().replace(Vc[t.includePrerelease?uc.GTE0PRE:uc.GTE0],"")),UNn=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()),FNn=(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 KM=w((KKr,Tst)=>{"use strict";var ZM=Symbol("SemVer ANY"),zle=class e{static get ANY(){return ZM}constructor(t,n){if(n=yst(n),t instanceof e){if(t.loose===!!n.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),Gle("comparator",t,n),this.options=n,this.loose=!!n.loose,this.parse(t),this.semver===ZM?this.value="":this.value=this.operator+this.semver.version,Gle("comp",this)}parse(t){let n=this.options.loose?Sst[Est.COMPARATORLOOSE]:Sst[Est.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 bst(r[2],this.options.loose):this.semver=ZM}toString(){return this.value}test(t){if(Gle("Comparator.test",t,this.options.loose),this.semver===ZM||t===ZM)return!0;if(typeof t=="string")try{t=new bst(t,this.options)}catch{return!1}return Ble(t,this.operator,this.semver,this.options)}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new _st(t.value,n).test(this.value):t.operator===""?t.value===""?!0:new _st(this.value,n).test(t.semver):(n=yst(n),n.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!n.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||Ble(this.semver,"<",t.semver,n)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||Ble(this.semver,">",t.semver,n)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};Tst.exports=zle;var yst=N3(),{safeRe:Sst,t:Est}=$k(),Ble=Fle(),Gle=VM(),bst=cc(),_st=wd()});var YM=w((ZKr,vst)=>{"use strict";var jNn=wd(),HNn=(e,t,n)=>{try{t=new jNn(t,n)}catch{return!1}return t.test(e)};vst.exports=HNn});var Rst=w((YKr,Ast)=>{"use strict";var qNn=wd(),BNn=(e,t)=>new qNn(e,t).set.map(n=>n.map(r=>r.value).join(" ").trim().split(" "));Ast.exports=BNn});var kst=w((JKr,wst)=>{"use strict";var GNn=cc(),zNn=wd(),VNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new zNn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===-1)&&(r=o,i=new GNn(r,n))}),r};wst.exports=VNn});var xst=w((XKr,Ist)=>{"use strict";var WNn=cc(),KNn=wd(),ZNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new KNn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===1)&&(r=o,i=new WNn(r,n))}),r};Ist.exports=ZNn});var Pst=w((QKr,Nst)=>{"use strict";var Vle=cc(),YNn=wd(),Ost=WM(),JNn=(e,t)=>{e=new YNn(e,t);let n=new Vle("0.0.0");if(e.test(n)||(n=new Vle("0.0.0-0"),e.test(n)))return n;n=null;for(let r=0;r{let a=new Vle(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||Ost(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!n||Ost(n,s))&&(n=s)}return n&&e.test(n)?n:null};Nst.exports=JNn});var Mst=w(($Kr,Cst)=>{"use strict";var XNn=wd(),QNn=(e,t)=>{try{return new XNn(e,t).range||"*"}catch{return null}};Cst.exports=QNn});var B3=w((e9r,Fst)=>{"use strict";var $Nn=cc(),Ust=KM(),{ANY:ePn}=Ust,tPn=wd(),nPn=YM(),Lst=WM(),Dst=U3(),rPn=j3(),iPn=F3(),sPn=(e,t,n,r)=>{e=new $Nn(e,r),t=new tPn(t,r);let i,s,o,a,c;switch(n){case">":i=Lst,s=rPn,o=Dst,a=">",c=">=";break;case"<":i=Dst,s=iPn,o=Lst,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(nPn(e,t,r))return!1;for(let u=0;u{p.semver===ePn&&(p=new Ust(">=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};Fst.exports=sPn});var Hst=w((t9r,jst)=>{"use strict";var oPn=B3(),aPn=(e,t,n)=>oPn(e,t,">",n);jst.exports=aPn});var Bst=w((n9r,qst)=>{"use strict";var cPn=B3(),uPn=(e,t,n)=>cPn(e,t,"<",n);qst.exports=uPn});var Vst=w((r9r,zst)=>{"use strict";var Gst=wd(),lPn=(e,t,n)=>(e=new Gst(e,n),t=new Gst(t,n),e.intersects(t,n));zst.exports=lPn});var Kst=w((i9r,Wst)=>{"use strict";var dPn=YM(),fPn=Rd();Wst.exports=(e,t,n)=>{let r=[],i=null,s=null,o=e.sort((l,d)=>fPn(l,d,n));for(let l of o)dPn(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 Zst=wd(),Kle=KM(),{ANY:Wle}=Kle,JM=YM(),Zle=Rd(),pPn=(e,t,n={})=>{if(e===t)return!0;e=new Zst(e,n),t=new Zst(t,n);let r=!1;e:for(let i of e.set){for(let s of t.set){let o=mPn(i,s,n);if(r=r||o!==null,o)continue e}if(r)return!1}return!0},hPn=[new Kle(">=0.0.0-0")],Yst=[new Kle(">=0.0.0")],mPn=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===Wle){if(t.length===1&&t[0].semver===Wle)return!0;n.includePrerelease?e=hPn:e=Yst}if(t.length===1&&t[0].semver===Wle){if(n.includePrerelease)return!0;t=Yst}let r=new Set,i,s;for(let p of e)p.operator===">"||p.operator===">="?i=Jst(i,p,n):p.operator==="<"||p.operator==="<="?s=Xst(s,p,n):r.add(p.semver);if(r.size>1)return null;let o;if(i&&s){if(o=Zle(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&&!JM(p,String(i),n)||s&&!JM(p,String(s),n))return null;for(let h of t)if(!JM(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=Jst(i,p,n),a===p&&a!==i)return!1}else if(i.operator===">="&&!JM(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=Xst(s,p,n),c===p&&c!==s)return!1}else if(s.operator==="<="&&!JM(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)},Jst=(e,t,n)=>{if(!e)return t;let r=Zle(e.semver,t.semver,n);return r>0?e:r<0||t.operator===">"&&e.operator===">="?t:e},Xst=(e,t,n)=>{if(!e)return t;let r=Zle(e.semver,t.semver,n);return r<0?e:r>0||t.operator==="<"&&e.operator==="<="?t:e};Qst.exports=pPn});var rot=w((o9r,not)=>{"use strict";var Yle=$k(),eot=zM(),gPn=cc(),tot=Cle(),yPn=hT(),SPn=kit(),EPn=xit(),bPn=Pit(),_Pn=Lit(),TPn=Uit(),vPn=jit(),APn=qit(),RPn=Git(),wPn=Rd(),kPn=Kit(),IPn=Yit(),xPn=D3(),OPn=$it(),NPn=tst(),PPn=WM(),CPn=U3(),MPn=Dle(),LPn=Ule(),DPn=F3(),UPn=j3(),FPn=Fle(),jPn=lst(),HPn=KM(),qPn=wd(),BPn=YM(),GPn=Rst(),zPn=kst(),VPn=xst(),WPn=Pst(),KPn=Mst(),ZPn=B3(),YPn=Hst(),JPn=Bst(),XPn=Vst(),QPn=Kst(),$Pn=$st();not.exports={parse:yPn,valid:SPn,clean:EPn,inc:bPn,diff:_Pn,major:TPn,minor:vPn,patch:APn,prerelease:RPn,compare:wPn,rcompare:kPn,compareLoose:IPn,compareBuild:xPn,sort:OPn,rsort:NPn,gt:PPn,lt:CPn,eq:MPn,neq:LPn,gte:DPn,lte:UPn,cmp:FPn,coerce:jPn,Comparator:HPn,Range:qPn,satisfies:BPn,toComparators:GPn,maxSatisfying:zPn,minSatisfying:VPn,minVersion:WPn,validRange:KPn,outside:ZPn,gtr:YPn,ltr:JPn,intersects:XPn,simplifyRange:QPn,subset:$Pn,SemVer:gPn,re:Yle.re,src:Yle.src,tokens:Yle.t,SEMVER_SPEC_VERSION:eot.SEMVER_SPEC_VERSION,RELEASE_TYPES:eot.RELEASE_TYPES,compareIdentifiers:tot.compareIdentifiers,rcompareIdentifiers:tot.rcompareIdentifiers}});var tde=w((a9r,ede)=>{"use strict";var Jle=rot(),Qle=Z("node:assert"),$le=Symbol.for("registered-plugin"),{kTestInternals:eCn}=$s(),{exist:tCn,existReply:nCn,existRequest:rCn}=RM(),{FST_ERR_PLUGIN_VERSION_MISMATCH:iCn,FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:sCn,FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:oCn}=Ko(),aCn=/-(?:rc|pre|alpha).+$/u;function XM(e){return e[Symbol.for("plugin-meta")]}function iot(e){let t=sot(e);if(t)return t;let n=Z.cache;if(n){let r=Object.keys(n);for(let i=0;it.trim()).join(" -- ")}function sot(e){return e[Symbol.for("fastify.display-name")]}function oot(e){return!!e[Symbol.for("skip-override")]}function aot(e){let t=XM(e);if(!t)return;let n=t.dependencies;n&&(Qle(Array.isArray(n),"The dependencies should be an array of strings"),n.forEach(r=>{Qle(this[$le].indexOf(r)>-1,`The dependency '${r}' of plugin '${t.name}' is not registered`)}))}function cot(e){let t=XM(e);if(!t)return;let{decorators:n,name:r}=t;n&&(n.fastify&&Xle(this,"Fastify",n.fastify,r),n.reply&&Xle(this,"Reply",n.reply,r),n.request&&Xle(this,"Request",n.request,r))}var uCn={Fastify:tCn,Request:rCn,Reply:nCn};function Xle(e,t,n,r){Qle(Array.isArray(n),"The decorators should be an array of strings"),n.forEach(i=>{let s=typeof r=="string"?` required by '${r}'`:"";if(!uCn[t].call(e,i))throw new sCn(i,s,t)})}function lCn(e){let t=XM(e);if(t?.fastify==null)return;let n=t.fastify,r=aCn.test(this.version);if(!(r===!0&&Jle.gt(this.version,Jle.coerce(n))===!0)&&n&&Jle.satisfies(this.version,n,{includePrerelease:r})===!1)throw new iCn(t.name,n,this.version)}function dCn(e){let t=XM(e);if(!t)return;let n=t.name;if(n)return this[$le].push(n),n}function fCn(e,t){if(e.constructor.name==="AsyncFunction"&&e.length===3)throw new oCn(t)}function pCn(e){let t=dCn.call(this,e)||iot(e);return fCn.call(this,e,t),lCn.call(this,e),cot.call(this,e),aot.call(this,e),oot(e)}ede.exports={getPluginName:iot,getFuncPreview:cCn,kRegisteredPlugins:$le,getDisplayName:sot,registerPlugin:pCn};ede.exports[eCn]={shouldSkipOverride:oot,getMeta:XM,checkDecorators:cot,checkDependencies:aot}});var G3=w((u9r,uot)=>{"use strict";function hCn(e,t){let n=t||gCn();return e?yCn(e,n):n}function mCn(e,t){return e.genReqId(t)}function gCn(){let t=0;return function(){return t=t+1&2147483647,`req-${t.toString(36)}`}}function yCn(e,t){return function(n){return n.headers[e]||t(n)}}uot.exports={getGenReqId:mCn,reqIdGenFactory:hCn}});var pot=w((l9r,fot)=>{"use strict";var lot=12,SCn=0,nde=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,10,9,9,9,11,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,24,36,48,60,72,84,96,0,12,12,12,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,24,24,24,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,0,0,0,48,48,48,0,0,0,0,0,0,0,0,0,0,48,48,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,127,63,63,63,0,31,15,15,15,7,7,7];function ECn(e){var t=e.indexOf("%");if(t===-1)return e;for(var n=e.length,r="",i=0,s=0,o=t,a=lot;t>-1&&t>10),56320+(s&1023)),s=0,i=t+3,t=o=e.indexOf("%",i);else{if(a===SCn)return null;if(t+=3,t{"use strict";var hot=pot(),mot=/\+/g,got=function(){};got.prototype=Object.create(null);function _Cn(e){let t=new got;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(mot," ")),a&&(r=hot(r)||r),d&&(i=e.slice(o+1,p),l&&(i=i.replace(mot," ")),c&&(i=hot(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}yot.exports=_Cn});var bot=w((f9r,Eot)=>{var wh=Array.from({length:256},(e,t)=>"%"+((t<16?"0":"")+t.toString(16)).toUpperCase()),TCn=new Int8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0]);function vCn(e){let t=e.length;if(t===0)return"";let n="",r=0,i=0;e:for(;i>6]+wh[128|s&63];continue}if(s<55296||s>=57344){r=i+1,n+=wh[224|s>>12]+wh[128|s>>6&63]+wh[128|s&63];continue}if(++i,i>=t)throw new Error("URI malformed");let o=e.charCodeAt(i)&1023;r=i+1,s=65536+((s&1023)<<10|o),n+=wh[240|s>>18]+wh[128|s>>12&63]+wh[128|s>>6&63]+wh[128|s&63]}return r===0?e:r{"use strict";var{encodeString:rde}=bot();function _ot(e){let t=typeof e;return t==="string"?rde(e):t==="bigint"?e.toString():t==="boolean"?e?"true":"false":t==="number"&&Number.isFinite(e)?e<1e21?""+e:rde(""+e):""}function ACn(e){let t="";if(e===null||typeof e!="object")return t;let n="&",r=Object.keys(e),i=r.length,s=0;for(let o=0;o{"use strict";var Aot=Sot(),Rot=vot(),wot={parse:Aot,stringify:Rot};QM.exports=wot;QM.exports.default=wot;QM.exports.parse=Aot;QM.exports.stringify=Rot});var xot=w(Iot=>{"use strict";Object.defineProperty(Iot,"__esModule",{value:!0})});var Oot=w($M=>{"use strict";Object.defineProperty($M,"__esModule",{value:!0});$M.types=void 0;var RCn;(function(e){e[e.ROOT=0]="ROOT",e[e.GROUP=1]="GROUP",e[e.POSITION=2]="POSITION",e[e.SET=3]="SET",e[e.RANGE=4]="RANGE",e[e.REPETITION=5]="REPETITION",e[e.REFERENCE=6]="REFERENCE",e[e.CHAR=7]="CHAR"})(RCn=$M.types||($M.types={}))});var Pot=w(Not=>{"use strict";Object.defineProperty(Not,"__esModule",{value:!0})});var lg=w(ug=>{"use strict";var wCn=ug&&ug.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),ide=ug&&ug.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&wCn(t,e,n)};Object.defineProperty(ug,"__esModule",{value:!0});ide(xot(),ug);ide(Oot(),ug);ide(Pot(),ug)});var z3=w(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});lc.anyChar=lc.notWhitespace=lc.whitespace=lc.notInts=lc.ints=lc.notWords=lc.words=void 0;var hr=lg(),Cot=()=>[{type:hr.types.RANGE,from:48,to:57}],Mot=()=>[{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}],Lot=()=>[{type:hr.types.CHAR,value:9},{type:hr.types.CHAR,value:10},{type:hr.types.CHAR,value:11},{type:hr.types.CHAR,value:12},{type:hr.types.CHAR,value:13},{type:hr.types.CHAR,value:32},{type:hr.types.CHAR,value:160},{type:hr.types.CHAR,value:5760},{type:hr.types.RANGE,from:8192,to:8202},{type:hr.types.CHAR,value:8232},{type:hr.types.CHAR,value:8233},{type:hr.types.CHAR,value:8239},{type:hr.types.CHAR,value:8287},{type:hr.types.CHAR,value:12288},{type:hr.types.CHAR,value:65279}],kCn=()=>[{type:hr.types.CHAR,value:10},{type:hr.types.CHAR,value:13},{type:hr.types.CHAR,value:8232},{type:hr.types.CHAR,value:8233}];lc.words=()=>({type:hr.types.SET,set:Mot(),not:!1});lc.notWords=()=>({type:hr.types.SET,set:Mot(),not:!0});lc.ints=()=>({type:hr.types.SET,set:Cot(),not:!1});lc.notInts=()=>({type:hr.types.SET,set:Cot(),not:!0});lc.whitespace=()=>({type:hr.types.SET,set:Lot(),not:!1});lc.notWhitespace=()=>({type:hr.types.SET,set:Lot(),not:!0});lc.anyChar=()=>({type:hr.types.SET,set:kCn(),not:!0})});var Uot=w(kd=>{"use strict";var ICn=kd&&kd.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),xCn=kd&&kd.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),OCn=kd&&kd.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&ICn(t,e,n);return xCn(t,e),t};Object.defineProperty(kd,"__esModule",{value:!0});kd.tokenizeClass=kd.strToChars=void 0;var Dot=lg(),eI=OCn(z3()),NCn="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?";kd.strToChars=e=>{let t=/(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|c([@A-Z[\\\]^?])|([0tnvfr]))/g;return e.replace(t,(n,r,i,s,o,a,c)=>{if(i)return n;let u=r?8:s?parseInt(s,16):o?parseInt(o,16):a?NCn.indexOf(a):{0:0,t:9,n:10,v:11,f:12,r:13}[c],l=String.fromCharCode(u);return/[[\]{}^$.|?*+()]/.test(l)?`\\${l}`:l})};kd.tokenizeClass=(e,t)=>{var n,r,i,s,o,a,c;let u=[],l,d,f=/\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(((?:\\)])|(((?:\\)?([^\]])))))|(\])|(?:\\)?([^])/g;for(;(l=f.exec(e))!==null;){let p=(c=(a=(o=(s=(i=(r=(n=l[1]&&eI.words())!==null&&n!==void 0?n:l[2]&&eI.ints())!==null&&r!==void 0?r:l[3]&&eI.whitespace())!==null&&i!==void 0?i:l[4]&&eI.notWords())!==null&&s!==void 0?s:l[5]&&eI.notInts())!==null&&o!==void 0?o:l[6]&&eI.notWhitespace())!==null&&a!==void 0?a:l[7]&&{type:Dot.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:Dot.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 sde=w(kh=>{"use strict";var PCn=kh&&kh.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),CCn=kh&&kh.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Hot=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)&&PCn(t,e,n);return CCn(t,e),t};Object.defineProperty(kh,"__esModule",{value:!0});kh.tokenizer=void 0;var Fot=Hot(Uot()),va=lg(),mT=Hot(z3()),MCn=/^[a-zA-Z_$]$/i,LCn=/^[a-zA-Z0-9_$]$/i,jot=/\d/;kh.tokenizer=e=>{let t=0,n,r={type:va.types.ROOT,stack:[]},i=r,s=r.stack,o=[],a=[],c=0,u=d=>{throw new SyntaxError(`Invalid regular expression: /${e}/: Nothing to repeat at column ${d-1}`)},l=Fot.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 DCn(a,c),r};function DCn(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 Bot=w(dc=>{"use strict";var UCn=dc&&dc.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),FCn=dc&&dc.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),jCn=dc&&dc.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&UCn(t,e,n);return FCn(t,e),t};Object.defineProperty(dc,"__esModule",{value:!0});dc.NOTANYCHAR=dc.WHITESPACE=dc.WORDS=dc.INTS=void 0;var V3=jCn(z3()),qot=lg();function W3(e){let t={},n=0;for(let r of e)r.type===qot.types.CHAR&&(t[r.value]=!0),r.type===qot.types.RANGE&&(t[`${r.from}-${r.to}`]=!0),n+=1;return{lookup:()=>Object.assign({},t),len:n}}dc.INTS=W3(V3.ints().set);dc.WORDS=W3(V3.words().set);dc.WHITESPACE=W3(V3.whitespace().set);dc.NOTANYCHAR=W3(V3.anyChar().set)});var zot=w(Id=>{"use strict";var HCn=Id&&Id.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),qCn=Id&&Id.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),BCn=Id&&Id.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&HCn(t,e,n);return qCn(t,e),t};Object.defineProperty(Id,"__esModule",{value:!0});Id.writeSetTokens=Id.setChar=void 0;var J3=lg(),K3=BCn(Bot());function Y3(e){return e===94?"\\^":e===92?"\\\\":e===93?"\\]":e===45?"\\-":String.fromCharCode(e)}Id.setChar=Y3;function Z3(e,{lookup:t,len:n}){if(n!==e.length)return!1;let r=t();for(let i of e){if(i.type===J3.types.SET)return!1;let s=i.type===J3.types.CHAR?i.value:`${i.from}-${i.to}`;if(r[s])r[s]=!1;else return!1}return!0}function Got(e,t=!1){if(Z3(e.set,K3.INTS))return e.not?"\\D":"\\d";if(Z3(e.set,K3.WORDS))return e.not?"\\W":"\\w";if(e.not&&Z3(e.set,K3.NOTANYCHAR))return".";if(Z3(e.set,K3.WHITESPACE))return e.not?"\\S":"\\s";let n="";for(let i=0;i{"use strict";Object.defineProperty(tI,"__esModule",{value:!0});tI.reconstruct=void 0;var rE=lg(),ode=zot(),Vot=e=>e.map(tI.reconstruct).join(""),Wot=e=>{if("options"in e)return e.options.map(Vot).join("|");if("stack"in e)return Vot(e.stack);throw new Error("options or stack must be Root or Group token")};tI.reconstruct=e=>{switch(e.type){case rE.types.ROOT:return Wot(e);case rE.types.CHAR:{let t=String.fromCharCode(e.value);return(/[[\\{}$^.|?*+()]/.test(t)?"\\":"")+t}case rE.types.POSITION:return e.value==="^"||e.value==="$"?e.value:`\\${e.value}`;case rE.types.REFERENCE:return`\\${e.value}`;case rE.types.SET:return ode.writeSetTokens(e);case rE.types.GROUP:return`(${e.name?`?<${e.name}>`:e.remember?"":e.followedBy?"?=":e.notFollowedBy?"?!":"?:"}${Wot(e)})`;case rE.types.REPETITION:{let{min:t,max:n}=e,r;return t===0&&n===1?r="?":t===1&&n===1/0?r="+":t===0&&n===1/0?r="*":n===1/0?r=`{${t},}`:t===n?r=`{${t}}`:r=`{${t},${n}}`,`${tI.reconstruct(e.value)}${r}`}case rE.types.RANGE:return`${ode.setChar(e.from)}-${ode.setChar(e.to)}`;default:throw new Error(`Invalid token type ${e}`)}}});var ude=w((xd,X3)=>{"use strict";var zCn=xd&&xd.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),cde=xd&&xd.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&zCn(t,e,n)};Object.defineProperty(xd,"__esModule",{value:!0});xd.types=void 0;var Kot=lg();Object.defineProperty(xd,"types",{enumerable:!0,get:function(){return Kot.types}});cde(sde(),xd);cde(ade(),xd);var Zot=sde(),VCn=ade();cde(lg(),xd);xd.default=Zot.tokenizer;X3.exports=Zot.tokenizer;X3.exports.types=Kot.types;X3.exports.reconstruct=VCn.reconstruct});var Yot=w((R9r,Q3)=>{"use strict";var WCn=ude(),{types:KCn}=ude();function lde(e,t,n){let r,i,s;if(e.type===KCn.REPETITION&&(n++,t.reps++,n>1||t.reps>t.limit))return!1;let o=e.options||e.value?.options;if(o){for(r=0,s=o.length;r{"use strict";Jot.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 rat=w((k9r,nat)=>{"use strict";var Xot=EC(),Qot=$3(),$ot=Symbol("treeData");function eat(e,t=""){let n="",r=Object.keys(e);for(let i=0;i{"use strict";var yOn=Eit();function _it(){return function(t,n){let r=Object.assign({},n,{schema:t});return SOn.bind(null,r)}}function SOn(e,{schema:t}){return e.schema&&t.$id&&e.schema[t.$id]&&(e.schema={...e.schema},delete e.schema[t.$id]),yOn(t,e)}function Tit(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=_it();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)}}}F4.exports.SerializerSelector=_it;F4.exports.StandaloneSerializer=Tit;F4.exports.default=Tit});var Rit=w(($3r,eD)=>{"use strict";var{SerializerSelector:Fle,StandaloneSerializer:bOn}=vit();eD.exports=Fle;eD.exports.default=Fle;eD.exports.SerializerSelector=Fle;eD.exports.StandaloneSerializer=bOn});var jle=w((e9r,Ait)=>{"use strict";var{buildSchemas:EOn}=NM();function _On(e,t){if(e)return new sI(e,t);let n=Object.assign({buildValidator:null,buildSerializer:null},t?.compilersFactory);if(!n.buildValidator){let i=_le();n.buildValidator=i()}if(!n.buildSerializer){let i=Rit();n.buildSerializer=i()}let r={bucket:t&&t.bucket||EOn,compilersFactory:n,isCustomValidatorCompiler:typeof t?.compilersFactory?.buildValidator=="function",isCustomSerializerCompiler:typeof t?.compilersFactory?.buildValidator=="function"};return new sI(void 0,r)}var sI=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))}};sI.buildSchemaController=_On;Ait.exports=sI});var tD=w((t9r,wit)=>{"use strict";var TOn="2.0.0",vOn=Number.MAX_SAFE_INTEGER||9007199254740991,ROn=16,AOn=250,wOn=["major","premajor","minor","preminor","patch","prepatch","prerelease"];wit.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:ROn,MAX_SAFE_BUILD_LENGTH:AOn,MAX_SAFE_INTEGER:vOn,RELEASE_TYPES:wOn,SEMVER_SPEC_VERSION:TOn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var nD=w((n9r,kit)=>{"use strict";var kOn=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};kit.exports=kOn});var oI=w((wh,Iit)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Hle,MAX_SAFE_BUILD_LENGTH:IOn,MAX_LENGTH:xOn}=tD(),OOn=nD();wh=Iit.exports={};var POn=wh.re=[],NOn=wh.safeRe=[],et=wh.src=[],COn=wh.safeSrc=[],tt=wh.t={},MOn=0,qle="[a-zA-Z0-9-]",DOn=[["\\s",1],["\\d",xOn],[qle,IOn]],LOn=e=>{for(let[t,n]of DOn)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e},on=(e,t,n)=>{let r=LOn(t),i=MOn++;OOn(e,i,t),tt[e]=i,et[i]=t,COn[i]=r,POn[i]=new RegExp(t,n?"g":void 0),NOn[i]=new RegExp(r,n?"g":void 0)};on("NUMERICIDENTIFIER","0|[1-9]\\d*");on("NUMERICIDENTIFIERLOOSE","\\d+");on("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${qle}*`);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",`${qle}+`);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,${Hle}})(?:\\.(\\d{1,${Hle}}))?(?:\\.(\\d{1,${Hle}}))?`);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 j4=w((r9r,xit)=>{"use strict";var UOn=Object.freeze({loose:!0}),FOn=Object.freeze({}),jOn=e=>e?typeof e!="object"?UOn:e:FOn;xit.exports=jOn});var Ble=w((i9r,Nit)=>{"use strict";var Oit=/^[0-9]+$/,Pit=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:ePit(t,e);Nit.exports={compareIdentifiers:Pit,rcompareIdentifiers:HOn}});var uc=w((s9r,Mit)=>{"use strict";var H4=nD(),{MAX_LENGTH:Cit,MAX_SAFE_INTEGER:q4}=tD(),{safeRe:B4,t:z4}=oI(),qOn=j4(),{compareIdentifiers:zle}=Ble(),Gle=class e{constructor(t,n){if(n=qOn(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>Cit)throw new TypeError(`version is longer than ${Cit} characters`);H4("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;let r=t.trim().match(n.loose?B4[z4.LOOSE]:B4[z4.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>q4||this.major<0)throw new TypeError("Invalid major version");if(this.minor>q4||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>q4||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(H4("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 zle(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(H4("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 zle(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?B4[z4.PRERELEASELOOSE]:B4[z4.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]),zle(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}};Mit.exports=Gle});var gT=w((o9r,Lit)=>{"use strict";var Dit=uc(),BOn=(e,t,n=!1)=>{if(e instanceof Dit)return e;try{return new Dit(e,t)}catch(r){if(!n)return null;throw r}};Lit.exports=BOn});var Fit=w((a9r,Uit)=>{"use strict";var zOn=gT(),GOn=(e,t)=>{let n=zOn(e,t);return n?n.version:null};Uit.exports=GOn});var Hit=w((c9r,jit)=>{"use strict";var VOn=gT(),WOn=(e,t)=>{let n=VOn(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null};jit.exports=WOn});var zit=w((u9r,Bit)=>{"use strict";var qit=uc(),KOn=(e,t,n,r,i)=>{typeof n=="string"&&(i=r,r=n,n=void 0);try{return new qit(e instanceof qit?e.version:e,n).inc(t,r,i).version}catch{return null}};Bit.exports=KOn});var Wit=w((l9r,Vit)=>{"use strict";var Git=gT(),YOn=(e,t)=>{let n=Git(e,null,!0),r=Git(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"};Vit.exports=YOn});var Yit=w((d9r,Kit)=>{"use strict";var ZOn=uc(),JOn=(e,t)=>new ZOn(e,t).major;Kit.exports=JOn});var Jit=w((f9r,Zit)=>{"use strict";var XOn=uc(),QOn=(e,t)=>new XOn(e,t).minor;Zit.exports=QOn});var Qit=w((p9r,Xit)=>{"use strict";var $On=uc(),ePn=(e,t)=>new $On(e,t).patch;Xit.exports=ePn});var est=w((h9r,$it)=>{"use strict";var tPn=gT(),nPn=(e,t)=>{let n=tPn(e,t);return n&&n.prerelease.length?n.prerelease:null};$it.exports=nPn});var Id=w((m9r,nst)=>{"use strict";var tst=uc(),rPn=(e,t,n)=>new tst(e,n).compare(new tst(t,n));nst.exports=rPn});var ist=w((g9r,rst)=>{"use strict";var iPn=Id(),sPn=(e,t,n)=>iPn(t,e,n);rst.exports=sPn});var ost=w((y9r,sst)=>{"use strict";var oPn=Id(),aPn=(e,t)=>oPn(e,t,!0);sst.exports=aPn});var G4=w((S9r,cst)=>{"use strict";var ast=uc(),cPn=(e,t,n)=>{let r=new ast(e,n),i=new ast(t,n);return r.compare(i)||r.compareBuild(i)};cst.exports=cPn});var lst=w((b9r,ust)=>{"use strict";var uPn=G4(),lPn=(e,t)=>e.sort((n,r)=>uPn(n,r,t));ust.exports=lPn});var fst=w((E9r,dst)=>{"use strict";var dPn=G4(),fPn=(e,t)=>e.sort((n,r)=>dPn(r,n,t));dst.exports=fPn});var rD=w((_9r,pst)=>{"use strict";var pPn=Id(),hPn=(e,t,n)=>pPn(e,t,n)>0;pst.exports=hPn});var V4=w((T9r,hst)=>{"use strict";var mPn=Id(),gPn=(e,t,n)=>mPn(e,t,n)<0;hst.exports=gPn});var Vle=w((v9r,mst)=>{"use strict";var yPn=Id(),SPn=(e,t,n)=>yPn(e,t,n)===0;mst.exports=SPn});var Wle=w((R9r,gst)=>{"use strict";var bPn=Id(),EPn=(e,t,n)=>bPn(e,t,n)!==0;gst.exports=EPn});var W4=w((A9r,yst)=>{"use strict";var _Pn=Id(),TPn=(e,t,n)=>_Pn(e,t,n)>=0;yst.exports=TPn});var K4=w((w9r,Sst)=>{"use strict";var vPn=Id(),RPn=(e,t,n)=>vPn(e,t,n)<=0;Sst.exports=RPn});var Kle=w((k9r,bst)=>{"use strict";var APn=Vle(),wPn=Wle(),kPn=rD(),IPn=W4(),xPn=V4(),OPn=K4(),PPn=(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 APn(e,n,r);case"!=":return wPn(e,n,r);case">":return kPn(e,n,r);case">=":return IPn(e,n,r);case"<":return xPn(e,n,r);case"<=":return OPn(e,n,r);default:throw new TypeError(`Invalid operator: ${t}`)}};bst.exports=PPn});var _st=w((I9r,Est)=>{"use strict";var NPn=uc(),CPn=gT(),{safeRe:Y4,t:Z4}=oI(),MPn=(e,t)=>{if(e instanceof NPn)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?Y4[Z4.COERCEFULL]:Y4[Z4.COERCE]);else{let c=t.includePrerelease?Y4[Z4.COERCERTLFULL]:Y4[Z4.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 CPn(`${r}.${i}.${s}${o}${a}`,t)};Est.exports=MPn});var vst=w((x9r,Tst)=>{"use strict";var Yle=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}};Tst.exports=Yle});var xd=w((O9r,kst)=>{"use strict";var DPn=/\s+/g,Zle=class e{constructor(t,n){if(n=UPn(n),t instanceof e)return t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease?t:new e(t.raw,n);if(t instanceof Jle)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(DPn," "),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=>!Ast(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&&GPn(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&&BPn)|(this.options.loose&&zPn))+":"+t,i=Rst.get(r);if(i)return i;let s=this.options.loose,o=s?Wc[lc.HYPHENRANGELOOSE]:Wc[lc.HYPHENRANGE];t=t.replace(o,eNn(this.options.includePrerelease)),Ei("hyphen replace",t),t=t.replace(Wc[lc.COMPARATORTRIM],jPn),Ei("comparator trim",t),t=t.replace(Wc[lc.TILDETRIM],HPn),Ei("tilde trim",t),t=t.replace(Wc[lc.CARETTRIM],qPn),Ei("caret trim",t);let a=t.split(" ").map(d=>VPn(d,this.options)).join(" ").split(/\s+/).map(d=>$Pn(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 Jle(d,this.options));for(let d of u){if(Ast(d))return[d];c.set(d.value,d)}c.size>1&&c.has("")&&c.delete("");let l=[...c.values()];return Rst.set(r,l),l}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(r=>wst(r,n)&&t.set.some(i=>wst(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 FPn(t,this.options)}catch{return!1}for(let n=0;ne.value==="<0.0.0-0",GPn=e=>e.value==="",wst=(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},VPn=(e,t)=>(e=e.replace(Wc[lc.BUILD],""),Ei("comp",e,t),e=YPn(e,t),Ei("caret",e),e=WPn(e,t),Ei("tildes",e),e=JPn(e,t),Ei("xrange",e),e=QPn(e,t),Ei("stars",e),e),Kc=e=>!e||e.toLowerCase()==="x"||e==="*",WPn=(e,t)=>e.trim().split(/\s+/).map(n=>KPn(n,t)).join(" "),KPn=(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})},YPn=(e,t)=>e.trim().split(/\s+/).map(n=>ZPn(n,t)).join(" "),ZPn=(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})},JPn=(e,t)=>(Ei("replaceXRanges",e,t),e.split(/\s+/).map(n=>XPn(n,t)).join(" ")),XPn=(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})},QPn=(e,t)=>(Ei("replaceStars",e,t),e.trim().replace(Wc[lc.STAR],"")),$Pn=(e,t)=>(Ei("replaceGTE0",e,t),e.trim().replace(Wc[t.includePrerelease?lc.GTE0PRE:lc.GTE0],"")),eNn=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()),tNn=(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 iD=w((P9r,Cst)=>{"use strict";var sD=Symbol("SemVer ANY"),$le=class e{static get ANY(){return sD}constructor(t,n){if(n=Ist(n),t instanceof e){if(t.loose===!!n.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),Qle("comparator",t,n),this.options=n,this.loose=!!n.loose,this.parse(t),this.semver===sD?this.value="":this.value=this.operator+this.semver.version,Qle("comp",this)}parse(t){let n=this.options.loose?xst[Ost.COMPARATORLOOSE]:xst[Ost.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 Pst(r[2],this.options.loose):this.semver=sD}toString(){return this.value}test(t){if(Qle("Comparator.test",t,this.options.loose),this.semver===sD||t===sD)return!0;if(typeof t=="string")try{t=new Pst(t,this.options)}catch{return!1}return Xle(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 Nst(t.value,n).test(this.value):t.operator===""?t.value===""?!0:new Nst(this.value,n).test(t.semver):(n=Ist(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("=")||Xle(this.semver,"<",t.semver,n)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||Xle(this.semver,">",t.semver,n)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};Cst.exports=$le;var Ist=j4(),{safeRe:xst,t:Ost}=oI(),Xle=Kle(),Qle=nD(),Pst=uc(),Nst=xd()});var oD=w((N9r,Mst)=>{"use strict";var nNn=xd(),rNn=(e,t,n)=>{try{t=new nNn(t,n)}catch{return!1}return t.test(e)};Mst.exports=rNn});var Lst=w((C9r,Dst)=>{"use strict";var iNn=xd(),sNn=(e,t)=>new iNn(e,t).set.map(n=>n.map(r=>r.value).join(" ").trim().split(" "));Dst.exports=sNn});var Fst=w((M9r,Ust)=>{"use strict";var oNn=uc(),aNn=xd(),cNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new aNn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===-1)&&(r=o,i=new oNn(r,n))}),r};Ust.exports=cNn});var Hst=w((D9r,jst)=>{"use strict";var uNn=uc(),lNn=xd(),dNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new lNn(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};jst.exports=dNn});var zst=w((L9r,Bst)=>{"use strict";var ede=uc(),fNn=xd(),qst=rD(),pNn=(e,t)=>{e=new fNn(e,t);let n=new ede("0.0.0");if(e.test(n)||(n=new ede("0.0.0-0"),e.test(n)))return n;n=null;for(let r=0;r{let a=new ede(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||qst(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!n||qst(n,s))&&(n=s)}return n&&e.test(n)?n:null};Bst.exports=pNn});var Vst=w((U9r,Gst)=>{"use strict";var hNn=xd(),mNn=(e,t)=>{try{return new hNn(e,t).range||"*"}catch{return null}};Gst.exports=mNn});var J4=w((F9r,Zst)=>{"use strict";var gNn=uc(),Yst=iD(),{ANY:yNn}=Yst,SNn=xd(),bNn=oD(),Wst=rD(),Kst=V4(),ENn=K4(),_Nn=W4(),TNn=(e,t,n,r)=>{e=new gNn(e,r),t=new SNn(t,r);let i,s,o,a,c;switch(n){case">":i=Wst,s=ENn,o=Kst,a=">",c=">=";break;case"<":i=Kst,s=_Nn,o=Wst,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(bNn(e,t,r))return!1;for(let u=0;u{p.semver===yNn&&(p=new Yst(">=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};Zst.exports=TNn});var Xst=w((j9r,Jst)=>{"use strict";var vNn=J4(),RNn=(e,t,n)=>vNn(e,t,">",n);Jst.exports=RNn});var $st=w((H9r,Qst)=>{"use strict";var ANn=J4(),wNn=(e,t,n)=>ANn(e,t,"<",n);Qst.exports=wNn});var not=w((q9r,tot)=>{"use strict";var eot=xd(),kNn=(e,t,n)=>(e=new eot(e,n),t=new eot(t,n),e.intersects(t,n));tot.exports=kNn});var iot=w((B9r,rot)=>{"use strict";var INn=oD(),xNn=Id();rot.exports=(e,t,n)=>{let r=[],i=null,s=null,o=e.sort((l,d)=>xNn(l,d,n));for(let l of o)INn(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 sot=xd(),nde=iD(),{ANY:tde}=nde,aD=oD(),rde=Id(),ONn=(e,t,n={})=>{if(e===t)return!0;e=new sot(e,n),t=new sot(t,n);let r=!1;e:for(let i of e.set){for(let s of t.set){let o=NNn(i,s,n);if(r=r||o!==null,o)continue e}if(r)return!1}return!0},PNn=[new nde(">=0.0.0-0")],oot=[new nde(">=0.0.0")],NNn=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===tde){if(t.length===1&&t[0].semver===tde)return!0;n.includePrerelease?e=PNn:e=oot}if(t.length===1&&t[0].semver===tde){if(n.includePrerelease)return!0;t=oot}let r=new Set,i,s;for(let p of e)p.operator===">"||p.operator===">="?i=aot(i,p,n):p.operator==="<"||p.operator==="<="?s=cot(s,p,n):r.add(p.semver);if(r.size>1)return null;let o;if(i&&s){if(o=rde(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&&!aD(p,String(i),n)||s&&!aD(p,String(s),n))return null;for(let h of t)if(!aD(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=aot(i,p,n),a===p&&a!==i)return!1}else if(i.operator===">="&&!aD(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=cot(s,p,n),c===p&&c!==s)return!1}else if(s.operator==="<="&&!aD(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)},aot=(e,t,n)=>{if(!e)return t;let r=rde(e.semver,t.semver,n);return r>0?e:r<0||t.operator===">"&&e.operator===">="?t:e},cot=(e,t,n)=>{if(!e)return t;let r=rde(e.semver,t.semver,n);return r<0?e:r>0||t.operator==="<"&&e.operator==="<="?t:e};uot.exports=ONn});var hot=w((G9r,pot)=>{"use strict";var ide=oI(),dot=tD(),CNn=uc(),fot=Ble(),MNn=gT(),DNn=Fit(),LNn=Hit(),UNn=zit(),FNn=Wit(),jNn=Yit(),HNn=Jit(),qNn=Qit(),BNn=est(),zNn=Id(),GNn=ist(),VNn=ost(),WNn=G4(),KNn=lst(),YNn=fst(),ZNn=rD(),JNn=V4(),XNn=Vle(),QNn=Wle(),$Nn=W4(),eCn=K4(),tCn=Kle(),nCn=_st(),rCn=iD(),iCn=xd(),sCn=oD(),oCn=Lst(),aCn=Fst(),cCn=Hst(),uCn=zst(),lCn=Vst(),dCn=J4(),fCn=Xst(),pCn=$st(),hCn=not(),mCn=iot(),gCn=lot();pot.exports={parse:MNn,valid:DNn,clean:LNn,inc:UNn,diff:FNn,major:jNn,minor:HNn,patch:qNn,prerelease:BNn,compare:zNn,rcompare:GNn,compareLoose:VNn,compareBuild:WNn,sort:KNn,rsort:YNn,gt:ZNn,lt:JNn,eq:XNn,neq:QNn,gte:$Nn,lte:eCn,cmp:tCn,coerce:nCn,Comparator:rCn,Range:iCn,satisfies:sCn,toComparators:oCn,maxSatisfying:aCn,minSatisfying:cCn,minVersion:uCn,validRange:lCn,outside:dCn,gtr:fCn,ltr:pCn,intersects:hCn,simplifyRange:mCn,subset:gCn,SemVer:CNn,re:ide.re,src:ide.src,tokens:ide.t,SEMVER_SPEC_VERSION:dot.SEMVER_SPEC_VERSION,RELEASE_TYPES:dot.RELEASE_TYPES,compareIdentifiers:fot.compareIdentifiers,rcompareIdentifiers:fot.rcompareIdentifiers}});var lde=w((V9r,ude)=>{"use strict";var sde=hot(),ade=Y("node:assert"),cde=Symbol.for("registered-plugin"),{kTestInternals:yCn}=$s(),{exist:SCn,existReply:bCn,existRequest:ECn}=LM(),{FST_ERR_PLUGIN_VERSION_MISMATCH:_Cn,FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:TCn,FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:vCn}=Ko(),RCn=/-(?:rc|pre|alpha).+$/u;function cD(e){return e[Symbol.for("plugin-meta")]}function mot(e){let t=got(e);if(t)return t;let n=Y.cache;if(n){let r=Object.keys(n);for(let i=0;it.trim()).join(" -- ")}function got(e){return e[Symbol.for("fastify.display-name")]}function yot(e){return!!e[Symbol.for("skip-override")]}function Sot(e){let t=cD(e);if(!t)return;let n=t.dependencies;n&&(ade(Array.isArray(n),"The dependencies should be an array of strings"),n.forEach(r=>{ade(this[cde].indexOf(r)>-1,`The dependency '${r}' of plugin '${t.name}' is not registered`)}))}function bot(e){let t=cD(e);if(!t)return;let{decorators:n,name:r}=t;n&&(n.fastify&&ode(this,"Fastify",n.fastify,r),n.reply&&ode(this,"Reply",n.reply,r),n.request&&ode(this,"Request",n.request,r))}var wCn={Fastify:SCn,Request:ECn,Reply:bCn};function ode(e,t,n,r){ade(Array.isArray(n),"The decorators should be an array of strings"),n.forEach(i=>{let s=typeof r=="string"?` required by '${r}'`:"";if(!wCn[t].call(e,i))throw new TCn(i,s,t)})}function kCn(e){let t=cD(e);if(t?.fastify==null)return;let n=t.fastify,r=RCn.test(this.version);if(!(r===!0&&sde.gt(this.version,sde.coerce(n))===!0)&&n&&sde.satisfies(this.version,n,{includePrerelease:r})===!1)throw new _Cn(t.name,n,this.version)}function ICn(e){let t=cD(e);if(!t)return;let n=t.name;if(n)return this[cde].push(n),n}function xCn(e,t){if(e.constructor.name==="AsyncFunction"&&e.length===3)throw new vCn(t)}function OCn(e){let t=ICn.call(this,e)||mot(e);return xCn.call(this,e,t),kCn.call(this,e),bot.call(this,e),Sot.call(this,e),yot(e)}ude.exports={getPluginName:mot,getFuncPreview:ACn,kRegisteredPlugins:cde,getDisplayName:got,registerPlugin:OCn};ude.exports[yCn]={shouldSkipOverride:yot,getMeta:cD,checkDecorators:bot,checkDependencies:Sot}});var X4=w((K9r,Eot)=>{"use strict";function PCn(e,t){let n=t||CCn();return e?MCn(e,n):n}function NCn(e,t){return e.genReqId(t)}function CCn(){let t=0;return function(){return t=t+1&2147483647,`req-${t.toString(36)}`}}function MCn(e,t){return function(n){return n.headers[e]||t(n)}}Eot.exports={getGenReqId:NCn,reqIdGenFactory:PCn}});var Rot=w((Y9r,vot)=>{"use strict";var _ot=12,DCn=0,dde=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 LCn(e){var t=e.indexOf("%");if(t===-1)return e;for(var n=e.length,r="",i=0,s=0,o=t,a=_ot;t>-1&&t>10),56320+(s&1023)),s=0,i=t+3,t=o=e.indexOf("%",i);else{if(a===DCn)return null;if(t+=3,t{"use strict";var Aot=Rot(),wot=/\+/g,kot=function(){};kot.prototype=Object.create(null);function FCn(e){let t=new kot;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(wot," ")),a&&(r=Aot(r)||r),d&&(i=e.slice(o+1,p),l&&(i=i.replace(wot," ")),c&&(i=Aot(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}Iot.exports=FCn});var Pot=w((J9r,Oot)=>{var kh=Array.from({length:256},(e,t)=>"%"+((t<16?"0":"")+t.toString(16)).toUpperCase()),jCn=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 HCn(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:fde}=Pot();function Not(e){let t=typeof e;return t==="string"?fde(e):t==="bigint"?e.toString():t==="boolean"?e?"true":"false":t==="number"&&Number.isFinite(e)?e<1e21?""+e:fde(""+e):""}function qCn(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 Dot=xot(),Lot=Mot(),Uot={parse:Dot,stringify:Lot};uD.exports=Uot;uD.exports.default=Uot;uD.exports.parse=Dot;uD.exports.stringify=Lot});var Hot=w(jot=>{"use strict";Object.defineProperty(jot,"__esModule",{value:!0})});var qot=w(lD=>{"use strict";Object.defineProperty(lD,"__esModule",{value:!0});lD.types=void 0;var BCn;(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"})(BCn=lD.types||(lD.types={}))});var zot=w(Bot=>{"use strict";Object.defineProperty(Bot,"__esModule",{value:!0})});var fg=w(dg=>{"use strict";var zCn=dg&&dg.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),pde=dg&&dg.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&zCn(t,e,n)};Object.defineProperty(dg,"__esModule",{value:!0});pde(Hot(),dg);pde(qot(),dg);pde(zot(),dg)});var Q4=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 mr=fg(),Got=()=>[{type:mr.types.RANGE,from:48,to:57}],Vot=()=>[{type:mr.types.CHAR,value:95},{type:mr.types.RANGE,from:97,to:122},{type:mr.types.RANGE,from:65,to:90},{type:mr.types.RANGE,from:48,to:57}],Wot=()=>[{type:mr.types.CHAR,value:9},{type:mr.types.CHAR,value:10},{type:mr.types.CHAR,value:11},{type:mr.types.CHAR,value:12},{type:mr.types.CHAR,value:13},{type:mr.types.CHAR,value:32},{type:mr.types.CHAR,value:160},{type:mr.types.CHAR,value:5760},{type:mr.types.RANGE,from:8192,to:8202},{type:mr.types.CHAR,value:8232},{type:mr.types.CHAR,value:8233},{type:mr.types.CHAR,value:8239},{type:mr.types.CHAR,value:8287},{type:mr.types.CHAR,value:12288},{type:mr.types.CHAR,value:65279}],GCn=()=>[{type:mr.types.CHAR,value:10},{type:mr.types.CHAR,value:13},{type:mr.types.CHAR,value:8232},{type:mr.types.CHAR,value:8233}];dc.words=()=>({type:mr.types.SET,set:Vot(),not:!1});dc.notWords=()=>({type:mr.types.SET,set:Vot(),not:!0});dc.ints=()=>({type:mr.types.SET,set:Got(),not:!1});dc.notInts=()=>({type:mr.types.SET,set:Got(),not:!0});dc.whitespace=()=>({type:mr.types.SET,set:Wot(),not:!1});dc.notWhitespace=()=>({type:mr.types.SET,set:Wot(),not:!0});dc.anyChar=()=>({type:mr.types.SET,set:GCn(),not:!0})});var Yot=w(Od=>{"use strict";var VCn=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]})),WCn=Od&&Od.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),KCn=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)&&VCn(t,e,n);return WCn(t,e),t};Object.defineProperty(Od,"__esModule",{value:!0});Od.tokenizeClass=Od.strToChars=void 0;var Kot=fg(),aI=KCn(Q4()),YCn="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?";Od.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?YCn.indexOf(a):{0:0,t:9,n:10,v:11,f:12,r:13}[c],l=String.fromCharCode(u);return/[[\]{}^$.|?*+()]/.test(l)?`\\${l}`:l})};Od.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]&&aI.words())!==null&&n!==void 0?n:l[2]&&aI.ints())!==null&&r!==void 0?r:l[3]&&aI.whitespace())!==null&&i!==void 0?i:l[4]&&aI.notWords())!==null&&s!==void 0?s:l[5]&&aI.notInts())!==null&&o!==void 0?o:l[6]&&aI.notWhitespace())!==null&&a!==void 0?a:l[7]&&{type:Kot.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:Kot.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 hde=w(Ih=>{"use strict";var ZCn=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]})),JCn=Ih&&Ih.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Xot=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)&&ZCn(t,e,n);return JCn(t,e),t};Object.defineProperty(Ih,"__esModule",{value:!0});Ih.tokenizer=void 0;var Zot=Xot(Yot()),va=fg(),yT=Xot(Q4()),XCn=/^[a-zA-Z_$]$/i,QCn=/^[a-zA-Z0-9_$]$/i,Jot=/\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=Zot.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 $Cn(a,c),r};function $Cn(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 $ot=w(fc=>{"use strict";var eMn=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]})),tMn=fc&&fc.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),nMn=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)&&eMn(t,e,n);return tMn(t,e),t};Object.defineProperty(fc,"__esModule",{value:!0});fc.NOTANYCHAR=fc.WHITESPACE=fc.WORDS=fc.INTS=void 0;var $4=nMn(Q4()),Qot=fg();function eK(e){let t={},n=0;for(let r of e)r.type===Qot.types.CHAR&&(t[r.value]=!0),r.type===Qot.types.RANGE&&(t[`${r.from}-${r.to}`]=!0),n+=1;return{lookup:()=>Object.assign({},t),len:n}}fc.INTS=eK($4.ints().set);fc.WORDS=eK($4.words().set);fc.WHITESPACE=eK($4.whitespace().set);fc.NOTANYCHAR=eK($4.anyChar().set)});var tat=w(Pd=>{"use strict";var rMn=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]})),iMn=Pd&&Pd.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),sMn=Pd&&Pd.__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)&&rMn(t,e,n);return iMn(t,e),t};Object.defineProperty(Pd,"__esModule",{value:!0});Pd.writeSetTokens=Pd.setChar=void 0;var iK=fg(),tK=sMn($ot());function rK(e){return e===94?"\\^":e===92?"\\\\":e===93?"\\]":e===45?"\\-":String.fromCharCode(e)}Pd.setChar=rK;function nK(e,{lookup:t,len:n}){if(n!==e.length)return!1;let r=t();for(let i of e){if(i.type===iK.types.SET)return!1;let s=i.type===iK.types.CHAR?i.value:`${i.from}-${i.to}`;if(r[s])r[s]=!1;else return!1}return!0}function eat(e,t=!1){if(nK(e.set,tK.INTS))return e.not?"\\D":"\\d";if(nK(e.set,tK.WORDS))return e.not?"\\W":"\\w";if(e.not&&nK(e.set,tK.NOTANYCHAR))return".";if(nK(e.set,tK.WHITESPACE))return e.not?"\\S":"\\s";let n="";for(let i=0;i{"use strict";Object.defineProperty(cI,"__esModule",{value:!0});cI.reconstruct=void 0;var sb=fg(),mde=tat(),nat=e=>e.map(cI.reconstruct).join(""),rat=e=>{if("options"in e)return e.options.map(nat).join("|");if("stack"in e)return nat(e.stack);throw new Error("options or stack must be Root or Group token")};cI.reconstruct=e=>{switch(e.type){case sb.types.ROOT:return rat(e);case sb.types.CHAR:{let t=String.fromCharCode(e.value);return(/[[\\{}$^.|?*+()]/.test(t)?"\\":"")+t}case sb.types.POSITION:return e.value==="^"||e.value==="$"?e.value:`\\${e.value}`;case sb.types.REFERENCE:return`\\${e.value}`;case sb.types.SET:return mde.writeSetTokens(e);case sb.types.GROUP:return`(${e.name?`?<${e.name}>`:e.remember?"":e.followedBy?"?=":e.notFollowedBy?"?!":"?:"}${rat(e)})`;case sb.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}}`,`${cI.reconstruct(e.value)}${r}`}case sb.types.RANGE:return`${mde.setChar(e.from)}-${mde.setChar(e.to)}`;default:throw new Error(`Invalid token type ${e}`)}}});var Sde=w((Nd,sK)=>{"use strict";var aMn=Nd&&Nd.__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]})),yde=Nd&&Nd.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&aMn(t,e,n)};Object.defineProperty(Nd,"__esModule",{value:!0});Nd.types=void 0;var iat=fg();Object.defineProperty(Nd,"types",{enumerable:!0,get:function(){return iat.types}});yde(hde(),Nd);yde(gde(),Nd);var sat=hde(),cMn=gde();yde(fg(),Nd);Nd.default=sat.tokenizer;sK.exports=sat.tokenizer;sK.exports.types=iat.types;sK.exports.reconstruct=cMn.reconstruct});var oat=w((uYr,oK)=>{"use strict";var uMn=Sde(),{types:lMn}=Sde();function bde(e,t,n){let r,i,s;if(e.type===lMn.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";aat.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 hat=w((dYr,pat)=>{"use strict";var cat=OC(),uat=aK(),lat=Symbol("treeData");function dat(e,t=""){let n="",r=Object.keys(e);for(let i=0;itat(t)):typeof e=="symbol"?e.toString():typeof e=="function"?YCn(e):e}function JCn(e,t){if(!t.includeMeta)return{};let n=t.buildPrettyMeta(e),r={},i=t.includeMeta;Array.isArray(i)||(i=Reflect.ownKeys(n));for(let s of i){if(!Object.prototype.hasOwnProperty.call(n,s))continue;let o=s.toString(),a=n[s];if(a!=null){let c=JSON.stringify(tat(a));r[o]=c}}return r}function XCn(e){let t="";for(let[n,r]of Object.entries(e))t+=` -\u2022 (${n}) ${r}`;return t}function QCn(e){let t={...e.opts.constraints},n=t[Qot.name];return delete t[Qot.name],{...e,method:n,opts:{constraints:t}}}function $Cn(e){let t=` (${e.method})`,n=e.opts.constraints||{};return Object.keys(n).length!==0&&(t+=" "+JSON.stringify(n)),t+=XCn(e.metaData),t}function eMn(e){return e.reduce((t,n)=>{for(let r of t)if(Xot(n.opts.constraints,r.opts.constraints)&&Xot(n.metaData,r.metaData))return r.method+=", "+n.method,t;return t.push(n),t},[])}function tMn(e,t,n){let r=e.routes;return n.method===void 0&&(r=r.map(QCn)),r=r.map(i=>(i.metaData=JCn(i,n),i)),n.method===void 0&&(r=eMn(r)),r.map($Cn).join(` -${t}`)}function e4(e,t,n,r){if((e.isLeafNode||r.commonPrefix!==!1)&&(n=n||"(empty root node)",t=t[n]={},e.isLeafNode&&(t[$ot]=tMn(e,n,r)),n=""),e.staticChildren)for(let i of Object.values(e.staticChildren))e4(i,t,n+i.prefix,r);if(e.parametricChildren)for(let i of Object.values(e.parametricChildren)){let s=Array.from(i.nodePaths).join("|");e4(i,t,n+s,r)}e.wildcardChild&&e4(e.wildcardChild,t,"*",r)}function nMn(e,t){let n={};return e4(e,n,e.prefix,t),eat(n)}nat.exports={prettyPrintTree:nMn}});var oat=w((I9r,sat)=>{"use strict";var iat=function(){};iat.prototype=Object.create(null);sat.exports={NullObject:iat}});var cat=w((x9r,aat)=>{"use strict";var{NullObject:rMn}=oat(),iMn=$3(),fde=class{constructor(){this.unconstrainedHandler=null,this.constraints=[],this.handlers=[],this.constrainedHandlerStores=null}getMatchingHandler(t){return t===void 0?this.unconstrainedHandler:this._getHandlerMatchingConstraints(t)}addHandler(t,n){let r=n.params,i=n.opts.constraints||{},s={params:r,constraints:i,handler:n.handler,store:n.store||null,_createParamsObject:this._compileCreateParamsObject(r)},o=Object.keys(i);o.length===0&&(this.unconstrainedHandler=s);for(let c of o)this.constraints.includes(c)||(c==="version"?this.constraints.unshift(c):this.constraints.push(c));let a=o.includes(iMn.name);if(!a&&this.handlers.length>=31)throw new Error("find-my-way supports a maximum of 31 route handlers per node when there are constraints, limit reached");this.handlers.push(s),this.handlers.sort((c,u)=>Object.keys(c.constraints).length-Object.keys(u.constraints).length),a||this._compileGetHandlerMatchingConstraints(t,i)}_compileCreateParamsObject(t){let n=[];n.push("const fn = function _createParamsObject (paramsArray) {"),n.push("const params = new NullObject()");for(let r=0;rfat(t)):typeof e=="symbol"?e.toString():typeof e=="function"?fMn(e):e}function pMn(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(fat(a));r[o]=c}}return r}function hMn(e){let t="";for(let[n,r]of Object.entries(e))t+=` +\u2022 (${n}) ${r}`;return t}function mMn(e){let t={...e.opts.constraints},n=t[uat.name];return delete t[uat.name],{...e,method:n,opts:{constraints:t}}}function gMn(e){let t=` (${e.method})`,n=e.opts.constraints||{};return Object.keys(n).length!==0&&(t+=" "+JSON.stringify(n)),t+=hMn(e.metaData),t}function yMn(e){return e.reduce((t,n)=>{for(let r of t)if(cat(n.opts.constraints,r.opts.constraints)&&cat(n.metaData,r.metaData))return r.method+=", "+n.method,t;return t.push(n),t},[])}function SMn(e,t,n){let r=e.routes;return n.method===void 0&&(r=r.map(mMn)),r=r.map(i=>(i.metaData=pMn(i,n),i)),n.method===void 0&&(r=yMn(r)),r.map(gMn).join(` +${t}`)}function cK(e,t,n,r){if((e.isLeafNode||r.commonPrefix!==!1)&&(n=n||"(empty root node)",t=t[n]={},e.isLeafNode&&(t[lat]=SMn(e,n,r)),n=""),e.staticChildren)for(let i of Object.values(e.staticChildren))cK(i,t,n+i.prefix,r);if(e.parametricChildren)for(let i of Object.values(e.parametricChildren)){let s=Array.from(i.nodePaths).join("|");cK(i,t,n+s,r)}e.wildcardChild&&cK(e.wildcardChild,t,"*",r)}function bMn(e,t){let n={};return cK(e,n,e.prefix,t),dat(n)}pat.exports={prettyPrintTree:bMn}});var yat=w((fYr,gat)=>{"use strict";var mat=function(){};mat.prototype=Object.create(null);gat.exports={NullObject:mat}});var bat=w((pYr,Sat)=>{"use strict";var{NullObject:EMn}=yat(),_Mn=aK(),_de=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(_Mn.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 sMn=cat(),o4={STATIC:0,PARAMETRIC:1,WILDCARD:2},t4=class{constructor(){this.isLeafNode=!1,this.routes=null,this.handlerStorage=null}addRoute(t,n){this.routes===null&&(this.routes=[]),this.handlerStorage===null&&(this.handlerStorage=new sMn),this.isLeafNode=!0,this.routes.push(t),this.handlerStorage.addHandler(n,t)}},n4=class extends t4{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 i4(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 s4,this.wildcardChild}split(t,n){let r=this.prefix.slice(0,n),i=this.prefix.slice(n);this.prefix=i,this._compilePrefixMatch();let s=new e(r);return s.staticChildren[i.charAt(0)]=this,t.staticChildren[r.charAt(0)]=s,s}getNextNode(t,n,r,i){let s=this.findStaticMatchingChild(t,n),o=0;if(s===null){if(this.parametricChildren.length===0)return this.wildcardChild;s=this.parametricChildren[0],o=1}this.wildcardChild!==null&&r.push({paramsCount:i,brotherPathIndex:n,brotherNode:this.wildcardChild});for(let a=this.parametricChildren.length-1;a>=o;a--)r.push({paramsCount:i,brotherPathIndex:n,brotherNode:this.parametricChildren[a]});return s}_compilePrefixMatch(){if(this.prefix.length===1){this.matchPrefix=()=>!0;return}let t=[];for(let n=1;n{"use strict";var oMn=Z("node:assert");function eL(){if(!(this instanceof eL))return new eL;this.store=new Map,this.maxMajor=0,this.maxMinors={},this.maxPatches={}}eL.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};eL.prototype.get=function(e){return this.store.get(e)};dat.exports={name:"version",mustMatchWhenDerived:!0,storage:eL,validate(e){oMn(typeof e=="string","Version should be a string")}}});var hat=w((P9r,pat)=>{"use strict";var aMn=Z("node:assert");function cMn(){let e=new Map,t=[];return{get:n=>{let r=e.get(n);if(r)return r;for(let i of t)if(i.host.test(n))return i.value},set:(n,r)=>{n instanceof RegExp?t.push({host:n,value:r}):e.set(n,r)}}}pat.exports={name:"host",mustMatchWhenDerived:!1,storage:cMn,validate(e){aMn(typeof e=="string"||Object.prototype.toString.call(e)==="[object RegExp]","Host should be a string or a RegExp")}}});var gat=w((C9r,mat)=>{"use strict";var uMn=fat(),lMn=hat(),pde=Z("node:assert"),hde=class{constructor(t){if(this.strategies={version:uMn,host:lMn},this.strategiesInUse=new Set,this.asyncStrategiesInUse=new Set,t)for(let n of Object.values(t))this.addConstraintStrategy(n)}isStrategyUsed(t){return this.strategiesInUse.has(t)||this.asyncStrategiesInUse.has(t)}hasConstraintStrategy(t){let n=this.strategies[t];return n!==void 0?n.isCustom||this.isStrategyUsed(t):!1}addConstraintStrategy(t){if(pde(typeof t.name=="string"&&t.name!=="","strategy.name is required."),pde(t.storage&&typeof t.storage=="function","strategy.storage function is required."),pde(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)}};mat.exports=hde});var Sat=w((M9r,yat)=>{"use strict";var dMn=["ACL","BIND","CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LINK","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","QUERY","REBIND","REPORT","SEARCH","SOURCE","SUBSCRIBE","TRACE","UNBIND","UNLINK","UNLOCK","UNSUBSCRIBE"];yat.exports=dMn});var _at=w((L9r,bat)=>{"use strict";function Eat(e,t){return e===50?t===53?"%":t===51?"#":t===52?"$":t===54?"&":t===66||t===98?"+":t===67||t===99?",":t===70||t===102?"/":null:e===51?t===65||t===97?":":t===66||t===98?";":t===68||t===100?"=":t===70||t===102?"?":null:e===52&&t===48?"@":null}function fMn(e,t){let n=!1,r=!1,i="";for(let o=1;o{"use strict";var Ds=Z("node:assert"),hMn=kot(),rI=Yot(),yde=EC(),{prettyPrintTree:mMn}=rat(),{StaticNode:Tat,NODE_TYPES:vat}=lat(),gMn=gat(),nI=Sat(),mde=$3(),{safeDecodeURI:Aat,safeDecodeURIComponent:gde}=_at(),Rat=/^https?:\/\/.*?\//,gT=/(\/:[^/()]*?)\?(\/?)/,wat=/[.*+?^${}()|[\]\\]/g,kat=/\/\/+/g;if(!rI(Rat))throw new Error("the FULL_PATH_REGEXP is not safe, update this module");if(!rI(gT))throw new Error("the OPTIONAL_PARAM_REGEXP is not safe, update this module");if(!rI(wat))throw new Error("the ESCAPE_REGEXP is not safe, update this module");if(!rI(kat))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?(Ds(typeof e.defaultRoute=="function","The default route must be a function"),this.defaultRoute=e.defaultRoute):this.defaultRoute=null,e.onBadUrl?(Ds(typeof e.onBadUrl=="function","The bad url handler must be a function"),this.onBadUrl=e.onBadUrl):this.onBadUrl=null,e.buildPrettyMeta?(Ds(typeof e.buildPrettyMeta=="function","buildPrettyMeta must be a function"),this.buildPrettyMeta=e.buildPrettyMeta):this.buildPrettyMeta=yMn,e.querystringParser?(Ds(typeof e.querystringParser=="function","querystringParser must be a function"),this.querystringParser=e.querystringParser):this.querystringParser=t=>t.length===0?{}:hMn.parse(t),this.caseSensitive=e.caseSensitive===void 0?!0:e.caseSensitive,this.ignoreTrailingSlash=e.ignoreTrailingSlash||!1,this.ignoreDuplicateSlashes=e.ignoreDuplicateSlashes||!1,this.maxParamLength=e.maxParamLength||100,this.allowUnsafeRegex=e.allowUnsafeRegex||!1,this.constrainer=new gMn(e.constraints),this.useSemicolonDelimiter=e.useSemicolonDelimiter||!1,this.routes=[],this.trees={}}_i.prototype.on=function(t,n,r,i,s){typeof r=="function"&&(i!==void 0&&(s=i),i=r,r={}),Ds(typeof n=="string","Path should be a string"),Ds(n.length>0,"The path could not be empty"),Ds(n[0]==="/"||n[0]==="*","The first character of a path should be `/` or `*`"),Ds(typeof i=="function","Handler should be a function");let o=n.match(gT);if(o){Ds(n.length===o.index+o[0].length,"Optional Parameter needs to be the last parameter of the path");let u=n.replace(gT,"$1$2"),l=n.replace(gT,"$2")||"/";this.on(t,u,r,i,s),this.on(t,l,r,i,s);return}let a=n;this.ignoreDuplicateSlashes&&(n=a4(n)),this.ignoreTrailingSlash&&(n=c4(n));let c=Array.isArray(t)?t:[t];for(let u of c)Ds(typeof u=="string","Method should be a string"),Ds(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&&(Ds(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 Tat("/"));let a=n;if(a==="*"&&this.trees[t].prefix.length!==0){let f=this.trees[t];this.trees[t]=new Tat(""),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=Oat(a,b),C=a.slice(b,P+1);this.allowUnsafeRegex||Ds(rI(new RegExp(C)),`The regex '${C}' is not safe!`),E.push(xat(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"),Ds(n[0]==="/"||n[0]==="*","The first character of a path should be `/` or `*`"),Ds(typeof r>"u"||typeof r=="object"&&!Array.isArray(r)&&r!==null,"Constraints should be an object or undefined.");let i=n.match(gT);if(i){Ds(n.length===i.index+i[0].length,"Optional Parameter needs to be the last parameter of the path");let o=n.replace(gT,"$1$2"),a=n.replace(gT,"$2");this.off(t,o,r),this.off(t,a,r);return}this.ignoreDuplicateSlashes&&(n=a4(n)),this.ignoreTrailingSlash&&(n=c4(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){Ds(typeof t=="string","Method should be a string"),Ds(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)||!yde(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(Rat,"/")),this.ignoreDuplicateSlashes&&(n=a4(n));let s,o,a;try{s=Aat(n,this.useSemicolonDelimiter),n=s.path,o=s.querystring,a=s.shouldDecodeParam}catch{return this._onBadUrl(n)}this.ignoreTrailingSlash&&(n=c4(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===vat.STATIC){l+=i.prefix.length;continue}if(i.kind===vat.WILDCARD){let g=c.slice(l);a&&(g=gde(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=gde(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[mde.name]=mde;let o=new _i({...this._opts,constraints:s}),a=this.routes.map(c=>{let u={...c.opts.constraints,[mde.name]:c.method};return{...c,method:"MERGED",opts:{constraints:u}}});o._rebuild(a),n=o.trees.MERGED}else n=this.trees[t];return n==null?"(empty tree)":mMn(n,e)};for(let e in nI){if(!nI.hasOwnProperty(e))continue;let t=nI[e],n=t.toLowerCase();_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=Aat(t,n);return r.shouldDecodeParam?gde(r.path):r.path};_i.removeDuplicateSlashes=a4;_i.trimLastSlash=c4;Nat.exports=_i;function Iat(e){return e.replace(wat,"\\$&")}function a4(e){return e.indexOf("//")!==-1?e.replace(kat,"/"):e}function c4(e){return e.length>1&&e.charCodeAt(e.length-1)===47?e.slice(0,-1):e}function xat(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 Oat(e,t){let n=1;for(;t{"use strict";function Ede(e,t,n,r){if(n===void 0){t.header("content-length","0"),r(null,null);return}if(typeof n.resume=="function"){n.on("error",s=>{t.log.error({err:s},"Error on Stream found for HEAD route")}),n.resume(),r(null,null);return}if(typeof n.getReader=="function"){n.cancel("Stream cancelled by HEAD route").catch(s=>{t.log.error({err:s},"Error on Stream found for HEAD route")}),r(null,null);return}let i=""+Buffer.byteLength(n);t.header("content-length",i),r(null,null)}function SMn(e){return e==null?Ede:Array.isArray(e)?[...e,Ede]:[e,Ede]}Pat.exports={parseHeadOnSendHandlers:SMn}});var $at=w((F9r,Qat)=>{"use strict";var EMn=Sde(),bMn=h3(),Mat=pce(),{onRequestAbortHookRunner:_Mn,lifecycleHooks:Lat,preParsingHookRunner:TMn,onTimeoutHookRunner:vMn,onRequestHookRunner:AMn}=KS(),{normalizeSchema:RMn}=_M(),{parseHeadOnSendHandlers:wMn}=Cat(),{compileSchemasForValidation:kMn,compileSchemasForSerialization:IMn}=uce(),{FST_ERR_SCH_VALIDATION_BUILD:xMn,FST_ERR_SCH_SERIALIZATION_BUILD:OMn,FST_ERR_DUPLICATED_ROUTE:NMn,FST_ERR_INVALID_URL:PMn,FST_ERR_HOOK_INVALID_HANDLER:Dat,FST_ERR_ROUTE_OPTIONS_NOT_OBJ:CMn,FST_ERR_ROUTE_DUPLICATED_HANDLER:MMn,FST_ERR_ROUTE_HANDLER_NOT_FN:Uat,FST_ERR_ROUTE_MISSING_HANDLER:LMn,FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:DMn,FST_ERR_ROUTE_METHOD_INVALID:UMn,FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:FMn,FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:jMn,FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:HMn,FST_ERR_HANDLER_TIMEOUT:qMn,FST_ERR_HOOK_INVALID_ASYNC_HANDLER:bde}=Ko(),{kRoutePrefix:BMn,kSupportedHTTPMethods:vde,kLogLevel:GMn,kLogSerializers:Fat,kHooks:jat,kSchemaController:zMn,kOptions:Hat,kReplySerializerDefault:_de,kReplyIsError:Jat,kRequestPayloadStream:VMn,kDisableRequestLogging:qat,kSchemaErrorFormatter:WMn,kErrorHandler:Bat,kHasBeenDecorated:Gat,kRequestAcceptVersion:Tde,kRouteByFastify:KMn,kRouteContext:zat,kRequestSignal:ZMn,kTimeoutTimer:Vat,kOnAbort:YMn}=$s(),{buildErrorHandler:JMn}=TM(),{createChildLogger:XMn}=bM(),{getGenReqId:QMn}=G3(),{FSTDEP022:$Mn}=xk(),Wat=["allowUnsafeRegex","buildPrettyMeta","caseSensitive","constraints","defaultRoute","ignoreDuplicateSlashes","ignoreTrailingSlash","maxParamLength","onBadUrl","querystringParser","useSemicolonDelimiter"];function eLn(e){let t=EMn(e),n,r,i,s,o,a,c,u,l,d,f,p,h,m=!1;return{setup(R,x){n=x.avvio,r=x.fourOhFour,i=R.logger,s=x.hasLogger,o=x.setupResponseListeners,a=x.throwIfAlreadyStarted,p=R.exposeHeadRoutes,c=R.disableRequestLogging,typeof c=="function"&&(u=R.disableRequestLogging),l=R.routerOptions.ignoreTrailingSlash,d=R.routerOptions.ignoreDuplicateSlashes,f=Object.hasOwn(R,"return503OnClosing")?R.return503OnClosing:!0,h=x.keepAliveConnections},routing:t.lookup.bind(t),route:T,hasRoute: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 PMn(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 CMn(R,x);if(k.handler)throw typeof k.handler=="function"?new MMn(R,x):new Uat(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 LMn(k.method,N);if(k.errorHandler!==void 0&&typeof k.errorHandler!="function")throw new Uat(k.method,N);Xat(k.bodyLimit),rLn(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[GMn],(this[Fat]||k.logSerializers)&&(k.logSerializers=Object.assign(Object.create(this[Fat]),k.logSerializers)),k.attachValidation==null&&(k.attachValidation=!1),X===!1)for(let W of this[jat].onRoute)W.call(this,k);for(let W of Lat)if(k&&W in k){if(Array.isArray(k[W]))for(let ee of k[W]){if(typeof ee!="function")throw new Dat(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 bde}else if(W==="onRequestAbort"){if(ee.constructor.name==="AsyncFunction"&&ee.length!==1)throw new bde}else if(ee.constructor.name==="AsyncFunction"&&ee.length===3)throw new bde}else if(k[W]!==void 0&&typeof k[W]!="function")throw new Dat(W,Object.prototype.toString.call(k[W]))}let q=k.constraints||{},U={...k.config,url:M,method:k.method},L=new bMn({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[_de],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,L)}catch(W){if(!L[KMn])throw W.message.includes(`Method '${k.method}' already declared for route`)?new NMn(k.method,k.url):W}if(this.after((W,ee)=>{L.errorHandler=k.errorHandler?JMn(this[Bat],k.errorHandler):this[Bat],L._parserOptions.limit=k.bodyLimit||null,L.logLevel=k.logLevel,L.logSerializers=k.logSerializers,L.attachValidation=k.attachValidation,L[_de]=this[_de],L.schemaErrorFormatter=k.schemaErrorFormatter||this[WMn]||L.schemaErrorFormatter,n.once("preReady",()=>{for(let se of Lat){let Me=this[jat][se].concat(k[se]||[]).map(Re=>Re.bind(this));L[se]=Me.length?Me:null}for(;!L.Request[Gat]&&L.Request.parent;)L.Request=L.Request.parent;for(;!L.Reply[Gat]&&L.Reply.parent;)L.Reply=L.Reply.parent;if(r.setContext(this,L),k.schema){L.schema=RMn(L.schema,this.initialConfig);let se=this[zMn],Me=k.schema.body||k.schema.headers||k.schema.querystring||k.schema.params;!k.validatorCompiler&&Me&&se.setupValidator(this[Hat]);try{let Re=typeof k?.validatorCompiler=="function"||se.isCustomValidatorCompiler;kMn(L,k.validatorCompiler||se.validatorCompiler,Re)}catch(Re){throw new xMn(k.method,M,Re.message)}k.schema.response&&!k.serializerCompiler&&se.setupSerializer(this[Hat]);try{IMn(L,k.serializerCompiler||se.serializerCompiler)}catch(Re){throw new OMn(k.method,M,Re.message)}}}),ee(W)}),P&&C&&!F&&!j){let W=wMn(V.onSend);S.call(this,{method:"HEAD",url:B,options:{...V,onSend:W},isFastify:!0})}}}function A(R,x,k,N,P){let C=QMn(N.server,R),F={level:N.logLevel};N.logSerializers&&(F.serializers=N.logSerializers);let V=XMn(N,i,R,C,F);if(V[qat]=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",sLn.bind({keepAliveConnections:h,socket:R.socket}))),R.headers[Tde]!==void 0&&(R.headers["accept-version"]=R.headers[Tde],R.headers[Tde]=void 0);let $=new N.Request(C,k,R,P,V,N),B=new N.Reply(x,$,V),X=u?u($):c;V[qat]=X,X===!1&&V.info({req:$},"incoming request");let G=N.handlerTimeout;if(G>0){let M=new AbortController;$[ZMn]=M,$[Vat]=setTimeout(()=>{if(!B.sent){let U=new qMn(G,N.config?.url);M.abort(U),B[Jat]=!0,B.send(U)}},G);let q=()=>{M.signal.aborted||M.abort(),clearTimeout($[Vat])};R.on("close",q),$[YMn]=q}(s===!0||N.onResponse!==null||G>0)&&o(B),N.onRequest!==null?AMn(N.onRequest,$,B,Yat):Yat(null,$,B),N.onRequestAbort!==null&&R.on("close",()=>{R.aborted&&_Mn(N.onRequestAbort,$,tLn.bind(null,B))}),N.onTimeout!==null&&($.raw.socket._meta||$.raw.socket.on("timeout",nLn),$.raw.socket._meta={context:N,request:$,reply:B})}}function tLn(e,t){t&&e.log.error({err:t},"onRequestAborted hook failed")}function nLn(){let{context:e,request:t,reply:n}=this._meta;vMn(e.onTimeout,t,n,oLn)}function Kat(e){if(typeof e!="string")throw new UMn;if(e=e.toUpperCase(),!this[vde].bodyless.has(e)&&!this[vde].bodywith.has(e))throw new DMn(e);return e}function Zat(e,t,n){if(this[vde].bodyless.has(e)&&n?.body)throw new FMn(e,t)}function Xat(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new jMn(e)}function rLn(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new HMn(e)}function Yat(e,t,n){if(n.sent!==!0){if(e!=null){n[Jat]=!0,n.send(e);return}t[VMn]=t.raw,t[zat].preParsing!==null?TMn(t[zat].preParsing,t,n,Mat.bind(t.server)):Mat.call(t.server,null,t,n)}}function iLn(e,t){let n=e.routerOptions==null?Object.create(null):Object.assign(Object.create(null),e.routerOptions),r=Wat.filter(i=>Object.hasOwn(e,i));r.length>0&&$Mn(r.join(", "));for(let i of Wat)Object.hasOwn(n,i)||(n[i]=e[i]??t[i]);return n}function sLn(){this.keepAliveConnections.delete(this.socket)}function oLn(){}Qat.exports={buildRouting:eLn,validateBodyLimitOption:Xat,buildRouterOptions:iLn}});var oct=w((j9r,sct)=>{"use strict";var aLn=Sde(),ect=a3(),tct=p3(),cLn=h3(),{kRoutePrefix:uLn,kCanSetNotFoundHandler:tL,kFourOhFourLevelInstance:nL,kFourOhFourContext:Ih,kHooks:lLn,kErrorHandler:nct}=$s(),{lifecycleHooks:dLn}=KS(),{buildErrorHandler:fLn}=TM(),{FST_ERR_NOT_FOUND:pLn}=Ko(),{createChildLogger:rct}=bM(),{getGenReqId:ict}=G3();function hLn(e){let{logger:t,disableRequestLogging:n}=e,r=aLn({onBadUrl:a(),defaultRoute:d}),i=null;return{router:r,setNotFoundHandler:u,setContext:c,arrange404:s};function s(f){f[nL]=f,f[tL]=!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[nL][Ih],g=ict(y.server,h),E=rct(y,t,h,g),S=new tct(g,null,h,null,E,y),b=new ect(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[tL]===void 0&&(this[tL]=!0),this[Ih]===void 0&&(this[Ih]=null);let y=this,g=this[uLn]||"/";if(this[tL]===!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[nL][tL]=!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 cLn({schema:p.schema,handler:h,config:p.config||{},server:this});if(m.once("preReady",()=>{let E=this[Ih];for(let S of dLn){let b=this[lLn][S].concat(p[S]||[]).map(_=>_.bind(this));E[S]=b.length?b:null}E.errorHandler=p.errorHandler?fLn(this[nct],p.errorHandler):this[nct]}),this[Ih]!==null&&f==="/"){Object.assign(this[Ih],g);return}this[nL][Ih]=g,r.all(f+(f.endsWith("/")?"*":"/*"),y,g),r.all(f,y,g)}function d(f,p){let h=this[nL][Ih],m=ict(h.server,f),y=rct(h,t,f,m);y.info({req:f},"incoming request");let g=new tct(m,null,f,null,y,h),E=new ect(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 pLn)}}sct.exports=hLn});var act=w((H9r,u4)=>{"use strict";u4.exports=qn;u4.exports.default=qn;var mLn={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:{}}}}}},gLn=Object.prototype.hasOwnProperty,yLn=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)gLn.call(mLn.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"&&!yLn.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,L=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=L===o}else var a=!0;if(a){if(e.https!==void 0){let U=e.https,L=o,H=o,j=!0,W=o,ee=o,se=o,Me=o,Re=!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 kt={};s===null?s=[kt]:s.push(kt),o++}_e!==void 0&&(U=_e,e!==void 0&&(e.https=_e))}var u=J===o;u&&(Re=!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 kt={};s===null?s=[kt]:s.push(kt),o++}_e!==void 0&&(U=_e,e!==void 0&&(e.https=_e))}var u=oe===o;if(u&&Re)Re=!1,z=[z,1];else{u&&(Re=!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 Dn={};s===null?s=[Dn]:s.push(Dn),o++}else{let Dn=o;for(let lr in U)lr!=="allowHTTP1"&&delete U[lr];if(Dn===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&&Re?(Re=!1,z=[z,2]):u&&(Re=!0,z=2)}if(Re)o=Me,s!==null&&(Me?s.length=Me:s=null);else{let _e={};s===null?s=[_e]:s.push(_e),o++}var l=se===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=L===o}else var a=!0;if(a){let U=e.ignoreTrailingSlash,L=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=L===o;if(a){let j=e.ignoreDuplicateSlashes,W=o;if(typeof j!="boolean"){let se;if(se===void 0)if(j==="false"||j===0||j===null)se=!1;else if(j==="true"||j===1)se=!0;else return qn.errors=[{instancePath:t+"/ignoreDuplicateSlashes",schemaPath:"#/properties/ignoreDuplicateSlashes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;se!==void 0&&(j=se,e!==void 0&&(e.ignoreDuplicateSlashes=se))}var a=W===o;if(a){let se=e.maxParamLength,Me=o;if(!(typeof se=="number"&&!(se%1)&&!isNaN(se)&&isFinite(se))){let z=typeof se,J;if(J===void 0)if(z==="boolean"||se===null||z==="string"&&se&&se==+se&&!(se%1))J=+se;else return qn.errors=[{instancePath:t+"/maxParamLength",schemaPath:"#/properties/maxParamLength/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;J!==void 0&&(se=J,e!==void 0&&(e.maxParamLength=J))}var a=Me===o;if(a){let z=e.onProtoPoisoning,J=o;if(typeof z!="string"){let le=typeof z,_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,Dn;if(Dn===void 0)if(Ue=="number"||Ue=="boolean")Dn=""+le;else if(le===null)Dn="";else return qn.errors=[{instancePath:t+"/onConstructorPoisoning",schemaPath:"#/properties/onConstructorPoisoning/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Dn!==void 0&&(le=Dn,e!==void 0&&(e.onConstructorPoisoning=Dn))}var a=_e===o;if(a){let Ue=e.pluginTimeout,Dn=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=Dn===o;if(a){let sn=e.requestIdHeader,dr=o,tl=o,Rs=!1,cb=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=cb===o;if(Rs=Rs||f,!Rs){let Ii=o;if(typeof sn!="string"){let cy=typeof sn,Ar;if(Ar===void 0)if(cy=="number"||cy=="boolean")Ar=""+sn;else if(sn===null)Ar="";else{let ja={instancePath:t+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf/1/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[ja]:s.push(ja),o++}Ar!==void 0&&(sn=Ar,e!==void 0&&(e.requestIdHeader=Ar))}var f=Ii===o;Rs=Rs||f}if(Rs)o=tl,s!==null&&(tl?s.length=tl:s=null);else{let Ii={instancePath:t+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[Ii]:s.push(Ii),o++,qn.errors=s,!1}var a=dr===o;if(a){let Ii=e.requestIdLogLabel,bp=o;if(typeof Ii!="string"){let Ar=typeof Ii,ja;if(ja===void 0)if(Ar=="number"||Ar=="boolean")ja=""+Ii;else if(Ii===null)ja="";else return qn.errors=[{instancePath:t+"/requestIdLogLabel",schemaPath:"#/properties/requestIdLogLabel/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;ja!==void 0&&(Ii=ja,e!==void 0&&(e.requestIdLogLabel=ja))}var a=bp===o;if(a){let Ar=e.http2SessionTimeout,ja=o;if(!(typeof Ar=="number"&&!(Ar%1)&&!isNaN(Ar)&&isFinite(Ar))){let su=typeof Ar,_p;if(_p===void 0)if(su==="boolean"||Ar===null||su==="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=ja===o;if(a){let su=e.exposeHeadRoutes,_p=o;if(typeof su!="boolean"){let D;if(D===void 0)if(su==="false"||su===0||su===null)D=!1;else if(su==="true"||su===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&&(su=D,e!==void 0&&(e.exposeHeadRoutes=D))}var a=_p===o;if(a){let D=e.useSemicolonDelimiter,te=o;if(typeof D!="boolean"){let Ee;if(Ee===void 0)if(D==="false"||D===0||D===null)Ee=!1;else if(D==="true"||D===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&&(D=Ee,e!==void 0&&(e.useSemicolonDelimiter=Ee))}var a=te===o;if(a){if(e.routerOptions!==void 0){let Ee=e.routerOptions,at=o;if(o===at)if(Ee&&typeof Ee=="object"&&!Array.isArray(Ee)){Ee.ignoreTrailingSlash===void 0&&(Ee.ignoreTrailingSlash=!1),Ee.ignoreDuplicateSlashes===void 0&&(Ee.ignoreDuplicateSlashes=!1),Ee.maxParamLength===void 0&&(Ee.maxParamLength=100),Ee.allowUnsafeRegex===void 0&&(Ee.allowUnsafeRegex=!1),Ee.useSemicolonDelimiter===void 0&&(Ee.useSemicolonDelimiter=!1);let It=Ee.ignoreTrailingSlash,dn=o;if(typeof It!="boolean"){let _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,Ee!==void 0&&(Ee.ignoreTrailingSlash=_t))}var p=dn===o;if(p){let _t=Ee.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,Ee!==void 0&&(Ee.ignoreDuplicateSlashes=xi))}var p=ra===o;if(p){let xi=Ee.maxParamLength,Tp=o;if(!(typeof xi=="number"&&!(xi%1)&&!isNaN(xi)&&isFinite(xi))){let vp=typeof xi,ub;if(ub===void 0)if(vp==="boolean"||xi===null||vp==="string"&&xi&&xi==+xi&&!(xi%1))ub=+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;ub!==void 0&&(xi=ub,Ee!==void 0&&(Ee.maxParamLength=ub))}var p=Tp===o;if(p){let vp=Ee.allowUnsafeRegex,ub=o;if(typeof vp!="boolean"){let ou;if(ou===void 0)if(vp==="false"||vp===0||vp===null)ou=!1;else if(vp==="true"||vp===1)ou=!0;else return qn.errors=[{instancePath:t+"/routerOptions/allowUnsafeRegex",schemaPath:"#/properties/routerOptions/properties/allowUnsafeRegex/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;ou!==void 0&&(vp=ou,Ee!==void 0&&(Ee.allowUnsafeRegex=ou))}var p=ub===o;if(p){let ou=Ee.useSemicolonDelimiter,GCt=o;if(typeof ou!="boolean"){let nA;if(nA===void 0)if(ou==="false"||ou===0||ou===null)nA=!1;else if(ou==="true"||ou===1)nA=!0;else return qn.errors=[{instancePath:t+"/routerOptions/useSemicolonDelimiter",schemaPath:"#/properties/routerOptions/properties/useSemicolonDelimiter/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;nA!==void 0&&(ou=nA,Ee!==void 0&&(Ee.useSemicolonDelimiter=nA))}var p=GCt===o}}}}}else return qn.errors=[{instancePath:t+"/routerOptions",schemaPath:"#/properties/routerOptions/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=at===o}else var a=!0;if(a)if(e.constraints!==void 0){let Ee=e.constraints,at=o;if(o===at)if(Ee&&typeof Ee=="object"&&!Array.isArray(Ee))for(let It in Ee){let dn=Ee[It],_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 Ul=dn.name;if(typeof Ul!="string"){let xi=typeof Ul,Tp;if(Tp===void 0)if(xi=="number"||xi=="boolean")Tp=""+Ul;else if(Ul===null)Tp="";else return qn.errors=[{instancePath:t+"/constraints/"+It.replace(/~/g,"~0").replace(/\//g,"~1")+"/name",schemaPath:"#/properties/constraints/additionalProperties/properties/name/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Tp!==void 0&&(Ul=Tp,dn!==void 0&&(dn.name=Tp))}}}else return qn.errors=[{instancePath:t+"/constraints/"+It.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/properties/constraints/additionalProperties/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var h=_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}u4.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 cct=w((q9r,d4)=>{"use strict";var l4=act(),SLn=ZW()({circles:!0,proto:!1}),{FST_ERR_INIT_OPTS_INVALID:ELn}=Ko();function bLn(e){let t=SLn(e);if(!l4(t)){let n=new ELn(JSON.stringify(l4.errors.map(r=>r.message)));throw n.errors=l4.errors,n}return Ade(t)}function Ade(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"?Ade(r):r)}return Object.freeze(e)}d4.exports=bLn;d4.exports.defaultInitOptions=l4.defaultInitOptions;d4.exports.utils={deepFreezeObject:Ade}});var yct=w((B9r,gct)=>{"use strict";var{kAvvioBoot:_Ln,kChildren:uct,kRoutePrefix:lct,kLogLevel:dct,kLogSerializers:Rde,kHooks:wde,kSchemaController:iI,kContentTypeParser:fct,kReply:pct,kRequest:hct,kFourOhFour:TLn,kPluginNameChain:mct,kErrorHandlerAlreadySet:vLn}=$s(),ALn=a3(),RLn=p3(),wLn=Ole(),kLn=Pue(),{buildHooks:ILn}=KS(),rL=tde();gct.exports=function(t,n,r){let i=rL.registerPlugin.call(t,n),s=rL.getPluginName(n)||rL.getFuncPreview(n);if(i)return t[mct].push(s),t;let o=Object.create(t);t[uct].push(o),o.ready=t[_Ln].bind(o),o[uct]=[],o[pct]=ALn.buildReply(o[pct]),o[hct]=RLn.buildRequest(o[hct]),o[fct]=kLn.helpers.buildContentTypeParser(o[fct]),o[wde]=ILn(o[wde]),o[lct]=xLn(o[lct],r.prefix),o[dct]=r.logLevel||o[dct],o[iI]=wLn.buildSchemaController(t[iI]),o.getSchema=o[iI].getSchema.bind(o[iI]),o.getSchemas=o[iI].getSchemas.bind(o[iI]),o[rL.kRegisteredPlugins]=Object.create(o[rL.kRegisteredPlugins]),o[mct]=[s],o[vLn]=!1,(o[Rde]||r.logSerializers)&&(o[Rde]=Object.assign(Object.create(o[Rde]),r.logSerializers)),r.prefix&&o[TLn].arrange404(o);for(let a of o[wde].onRegister)a.call(t,o,r);return o};function xLn(e,t){return t?(e.endsWith("/")&&t[0]==="/"?t=t.slice(1):t[0]!=="/"&&(t="/"+t),e+t):e}});var Tct=w(xh=>{"use strict";Object.defineProperty(xh,"__esModule",{value:!0});xh.parseCookie=bct;xh.parse=bct;xh.stringifyCookie=LLn;xh.stringifySetCookie=f4;xh.serialize=f4;xh.parseSetCookie=DLn;xh.stringifySetCookie=f4;xh.serialize=f4;var Sct=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,Ect=/^[\u0021-\u003A\u003C-\u007E]*$/,OLn=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,NLn=/^[\u0020-\u003A\u003D-\u007E]*$/,PLn=/^-?\d+$/,CLn=Object.prototype.toString,MLn=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function bct(e,t){let n=new MLn,r=e.length;if(r<2)return n;let i=t?.decode||_ct,s=0;do{let o=Ide(e,s,r);if(o===-1)break;let a=kde(e,s,r);if(o>a){s=e.lastIndexOf(";",o-1)+1;continue}let c=iE(e,s,o);n[c]===void 0&&(n[c]=i(iE(e,o+1,a))),s=a+1}while(sr;){let s=e.charCodeAt(i-1);if(s!==32&&s!==9)break;i--}return e.slice(r,i)}function _ct(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function ULn(e){return CLn.call(e)==="[object Date]"}});var Act=w((z9r,p4)=>{"use strict";var{format:xde}=Z("node:util");function FLn(e){return vct({...e,name:"DeprecationWarning"})}function vct({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=xde(n,o,a,c):o&&a?u=xde(n,o,a):o?u=xde(n,o):u=n,u},s}var Ode={createWarning:vct,createDeprecation:FLn};p4.exports=Ode;p4.exports.default=Ode;p4.exports.processWarning=Ode});var kct=w((V9r,wct)=>{"use strict";var{URL:Rct}=Z("node:url"),Nde="http://localhost";wct.exports=function(t,n){(typeof t=="string"||Object.prototype.toString.call(t)==="[object String]")&&t.startsWith("//")&&(t=Nde+t);let r=typeof t=="object"?Object.assign(new Rct(Nde),t):new Rct(t,Nde);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 Ict=w((W9r,Pde)=>{"use strict";var{randomUUID:jLn}=Z("node:crypto"),{Readable:HLn}=Z("node:stream"),sI;function qLn(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 BLn(e){sI=sI??new TextEncoder;let t=`----formdata-${jLn()}`,n=`--${t}\r +`))}};Sat.exports=_de});var _at=w((hYr,Eat)=>{"use strict";var TMn=bat(),hK={STATIC:0,PARAMETRIC:1,WILDCARD:2},uK=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 TMn),this.isLeafNode=!0,this.routes.push(t),this.handlerStorage.addHandler(n,t)}},lK=class extends uK{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 fK(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 pK,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 vMn=Y("node:assert");function dD(){if(!(this instanceof dD))return new dD;this.store=new Map,this.maxMajor=0,this.maxMinors={},this.maxPatches={}}dD.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};dD.prototype.get=function(e){return this.store.get(e)};Tat.exports={name:"version",mustMatchWhenDerived:!0,storage:dD,validate(e){vMn(typeof e=="string","Version should be a string")}}});var Aat=w((gYr,Rat)=>{"use strict";var RMn=Y("node:assert");function AMn(){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)}}}Rat.exports={name:"host",mustMatchWhenDerived:!1,storage:AMn,validate(e){RMn(typeof e=="string"||Object.prototype.toString.call(e)==="[object RegExp]","Host should be a string or a RegExp")}}});var kat=w((yYr,wat)=>{"use strict";var wMn=vat(),kMn=Aat(),Tde=Y("node:assert"),vde=class{constructor(t){if(this.strategies={version:wMn,host:kMn},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(Tde(typeof t.name=="string"&&t.name!=="","strategy.name is required."),Tde(t.storage&&typeof t.storage=="function","strategy.storage function is required."),Tde(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)}};wat.exports=vde});var xat=w((SYr,Iat)=>{"use strict";var IMn=["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"];Iat.exports=IMn});var Nat=w((bYr,Pat)=>{"use strict";function Oat(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 xMn(e,t){let n=!1,r=!1,i="";for(let o=1;o{"use strict";var Ls=Y("node:assert"),PMn=Fot(),lI=oat(),wde=OC(),{prettyPrintTree:NMn}=hat(),{StaticNode:Cat,NODE_TYPES:Mat}=_at(),CMn=kat(),uI=xat(),Rde=aK(),{safeDecodeURI:Dat,safeDecodeURIComponent:Ade}=Nat(),Lat=/^https?:\/\/.*?\//,ST=/(\/:[^/()]*?)\?(\/?)/,Uat=/[.*+?^${}()|[\]\\]/g,Fat=/\/\/+/g;if(!lI(Lat))throw new Error("the FULL_PATH_REGEXP is not safe, update this module");if(!lI(ST))throw new Error("the OPTIONAL_PARAM_REGEXP is not safe, update this module");if(!lI(Uat))throw new Error("the ESCAPE_REGEXP is not safe, update this module");if(!lI(Fat))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=MMn,e.querystringParser?(Ls(typeof e.querystringParser=="function","querystringParser must be a function"),this.querystringParser=e.querystringParser):this.querystringParser=t=>t.length===0?{}:PMn.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 CMn(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(ST);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(ST,"$1$2"),l=n.replace(ST,"$2")||"/";this.on(t,u,r,i,s),this.on(t,l,r,i,s);return}let a=n;this.ignoreDuplicateSlashes&&(n=mK(n)),this.ignoreTrailingSlash&&(n=gK(n));let c=Array.isArray(t)?t:[t];for(let u of c)Ls(typeof u=="string","Method should be a string"),Ls(uI.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 Cat("/"));let a=n;if(a==="*"&&this.trees[t].prefix.length!==0){let f=this.trees[t];this.trees[t]=new Cat(""),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=qat(a,E),C=a.slice(E,N+1);this.allowUnsafeRegex||Ls(lI(new RegExp(C)),`The regex '${C}' is not safe!`),b.push(Hat(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(ST);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(ST,"$1$2"),a=n.replace(ST,"$2");this.off(t,o,r),this.off(t,a,r);return}this.ignoreDuplicateSlashes&&(n=mK(n)),this.ignoreTrailingSlash&&(n=gK(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(uI.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)||!wde(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(Lat,"/")),this.ignoreDuplicateSlashes&&(n=mK(n));let s,o,a;try{s=Dat(n,this.useSemicolonDelimiter),n=s.path,o=s.querystring,a=s.shouldDecodeParam}catch{return this._onBadUrl(n)}this.ignoreTrailingSlash&&(n=gK(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===Mat.STATIC){l+=i.prefix.length;continue}if(i.kind===Mat.WILDCARD){let y=c.slice(l);a&&(y=Ade(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=Ade(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[Rde.name]=Rde;let o=new _i({...this._opts,constraints:s}),a=this.routes.map(c=>{let u={...c.opts.constraints,[Rde.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)":NMn(n,e)};for(let e in uI){if(!uI.hasOwnProperty(e))continue;let t=uI[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(uI,e,t,n)};_i.sanitizeUrlPath=function(t,n){let r=Dat(t,n);return r.shouldDecodeParam?Ade(r.path):r.path};_i.removeDuplicateSlashes=mK;_i.trimLastSlash=gK;Bat.exports=_i;function jat(e){return e.replace(Uat,"\\$&")}function mK(e){return e.indexOf("//")!==-1?e.replace(Fat,"/"):e}function gK(e){return e.length>1&&e.charCodeAt(e.length-1)===47?e.slice(0,-1):e}function Hat(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 qat(e,t){let n=1;for(;t{"use strict";function Ide(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 DMn(e){return e==null?Ide:Array.isArray(e)?[...e,Ide]:[e,Ide]}zat.exports={parseHeadOnSendHandlers:DMn}});var lct=w((TYr,uct)=>{"use strict";var LMn=kde(),UMn=T4(),Vat=Tce(),{onRequestAbortHookRunner:FMn,lifecycleHooks:Wat,preParsingHookRunner:jMn,onTimeoutHookRunner:HMn,onRequestHookRunner:qMn}=ZS(),{normalizeSchema:BMn}=NM(),{parseHeadOnSendHandlers:zMn}=Gat(),{compileSchemasForValidation:GMn,compileSchemasForSerialization:VMn}=Sce(),{FST_ERR_SCH_VALIDATION_BUILD:WMn,FST_ERR_SCH_SERIALIZATION_BUILD:KMn,FST_ERR_DUPLICATED_ROUTE:YMn,FST_ERR_INVALID_URL:ZMn,FST_ERR_HOOK_INVALID_HANDLER:Kat,FST_ERR_ROUTE_OPTIONS_NOT_OBJ:JMn,FST_ERR_ROUTE_DUPLICATED_HANDLER:XMn,FST_ERR_ROUTE_HANDLER_NOT_FN:Yat,FST_ERR_ROUTE_MISSING_HANDLER:QMn,FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:$Mn,FST_ERR_ROUTE_METHOD_INVALID:eDn,FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:tDn,FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:nDn,FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:rDn,FST_ERR_HANDLER_TIMEOUT:iDn,FST_ERR_HOOK_INVALID_ASYNC_HANDLER:xde}=Ko(),{kRoutePrefix:sDn,kSupportedHTTPMethods:Nde,kLogLevel:oDn,kLogSerializers:Zat,kHooks:Jat,kSchemaController:aDn,kOptions:Xat,kReplySerializerDefault:Ode,kReplyIsError:act,kRequestPayloadStream:cDn,kDisableRequestLogging:Qat,kSchemaErrorFormatter:uDn,kErrorHandler:$at,kHasBeenDecorated:ect,kRequestAcceptVersion:Pde,kRouteByFastify:lDn,kRouteContext:tct,kRequestSignal:dDn,kTimeoutTimer:nct,kOnAbort:fDn}=$s(),{buildErrorHandler:pDn}=CM(),{createChildLogger:hDn}=PM(),{getGenReqId:mDn}=X4(),{FSTDEP022:gDn}=Lk(),rct=["allowUnsafeRegex","buildPrettyMeta","caseSensitive","constraints","defaultRoute","ignoreDuplicateSlashes","ignoreTrailingSlash","maxParamLength","onBadUrl","querystringParser","useSemicolonDelimiter"];function yDn(e){let t=LMn(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 ZMn(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 JMn(A,x);if(k.handler)throw typeof k.handler=="function"?new XMn(A,x):new Yat(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 QMn(k.method,P);if(k.errorHandler!==void 0&&typeof k.errorHandler!="function")throw new Yat(k.method,P);cct(k.bodyLimit),EDn(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[oDn],(this[Zat]||k.logSerializers)&&(k.logSerializers=Object.assign(Object.create(this[Zat]),k.logSerializers)),k.attachValidation==null&&(k.attachValidation=!1),Q===!1)for(let K of this[Jat].onRoute)K.call(this,k);for(let K of Wat)if(k&&K in k){if(Array.isArray(k[K]))for(let ee of k[K]){if(typeof ee!="function")throw new Kat(K,Object.prototype.toString.call(ee));if(K==="onSend"||K==="preSerialization"||K==="onError"||K==="preParsing"){if(ee.constructor.name==="AsyncFunction"&&ee.length===4)throw new xde}else if(K==="onRequestAbort"){if(ee.constructor.name==="AsyncFunction"&&ee.length!==1)throw new xde}else if(ee.constructor.name==="AsyncFunction"&&ee.length===3)throw new xde}else if(k[K]!==void 0&&typeof k[K]!="function")throw new Kat(K,Object.prototype.toString.call(k[K]))}let V=k.constraints||{},U={...k.config,url:F,method:k.method},M=new UMn({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[Ode],validatorCompiler:k.validatorCompiler,serializerCompiler:k.serializerCompiler,exposeHeadRoute:N,prefixTrailingSlash:k.prefixTrailingSlash||"both",server:this,isFastify:B,handlerTimeout:k.handlerTimeout}),H=t.findRoute("HEAD",k.url,V)!==null;try{t.on(k.method,k.url,{constraints:V},R,M)}catch(K){if(!M[lDn])throw K.message.includes(`Method '${k.method}' already declared for route`)?new YMn(k.method,k.url):K}if(this.after((K,ee)=>{M.errorHandler=k.errorHandler?pDn(this[$at],k.errorHandler):this[$at],M._parserOptions.limit=k.bodyLimit||null,M.logLevel=k.logLevel,M.logSerializers=k.logSerializers,M.attachValidation=k.attachValidation,M[Ode]=this[Ode],M.schemaErrorFormatter=k.schemaErrorFormatter||this[uDn]||M.schemaErrorFormatter,n.once("preReady",()=>{for(let se of Wat){let Le=this[Jat][se].concat(k[se]||[]).map(Ae=>Ae.bind(this));M[se]=Le.length?Le:null}for(;!M.Request[ect]&&M.Request.parent;)M.Request=M.Request.parent;for(;!M.Reply[ect]&&M.Reply.parent;)M.Reply=M.Reply.parent;if(r.setContext(this,M),k.schema){M.schema=BMn(M.schema,this.initialConfig);let se=this[aDn],Le=k.schema.body||k.schema.headers||k.schema.querystring||k.schema.params;!k.validatorCompiler&&Le&&se.setupValidator(this[Xat]);try{let Ae=typeof k?.validatorCompiler=="function"||se.isCustomValidatorCompiler;GMn(M,k.validatorCompiler||se.validatorCompiler,Ae)}catch(Ae){throw new WMn(k.method,F,Ae.message)}k.schema.response&&!k.serializerCompiler&&se.setupSerializer(this[Xat]);try{VMn(M,k.serializerCompiler||se.serializerCompiler)}catch(Ae){throw new KMn(k.method,F,Ae.message)}}}),ee(K)}),N&&C&&!L&&!H){let K=zMn(G.onSend);S.call(this,{method:"HEAD",url:q,options:{...G,onSend:K},isFastify:!0})}}}function R(A,x,k,P,N){let C=mDn(P.server,A),L={level:P.logLevel};P.logSerializers&&(L.serializers=P.logSerializers);let G=hDn(P,i,A,C,L);if(G[Qat]=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",TDn.bind({keepAliveConnections:h,socket:A.socket}))),A.headers[Pde]!==void 0&&(A.headers["accept-version"]=A.headers[Pde],A.headers[Pde]=void 0);let $=new P.Request(C,k,A,N,G,P),q=new P.Reply(x,$,G),Q=u?u($):c;G[Qat]=Q,Q===!1&&G.info({req:$},"incoming request");let B=P.handlerTimeout;if(B>0){let F=new AbortController;$[dDn]=F,$[nct]=setTimeout(()=>{if(!q.sent){let U=new iDn(B,P.config?.url);F.abort(U),q[act]=!0,q.send(U)}},B);let V=()=>{F.signal.aborted||F.abort(),clearTimeout($[nct])};A.on("close",V),$[fDn]=V}(s===!0||P.onResponse!==null||B>0)&&o(q),P.onRequest!==null?qMn(P.onRequest,$,q,oct):oct(null,$,q),P.onRequestAbort!==null&&A.on("close",()=>{A.aborted&&FMn(P.onRequestAbort,$,SDn.bind(null,q))}),P.onTimeout!==null&&($.raw.socket._meta||$.raw.socket.on("timeout",bDn),$.raw.socket._meta={context:P,request:$,reply:q})}}function SDn(e,t){t&&e.log.error({err:t},"onRequestAborted hook failed")}function bDn(){let{context:e,request:t,reply:n}=this._meta;HMn(e.onTimeout,t,n,vDn)}function ict(e){if(typeof e!="string")throw new eDn;if(e=e.toUpperCase(),!this[Nde].bodyless.has(e)&&!this[Nde].bodywith.has(e))throw new $Mn(e);return e}function sct(e,t,n){if(this[Nde].bodyless.has(e)&&n?.body)throw new tDn(e,t)}function cct(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new nDn(e)}function EDn(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new rDn(e)}function oct(e,t,n){if(n.sent!==!0){if(e!=null){n[act]=!0,n.send(e);return}t[cDn]=t.raw,t[tct].preParsing!==null?jMn(t[tct].preParsing,t,n,Vat.bind(t.server)):Vat.call(t.server,null,t,n)}}function _Dn(e,t){let n=e.routerOptions==null?Object.create(null):Object.assign(Object.create(null),e.routerOptions),r=rct.filter(i=>Object.hasOwn(e,i));r.length>0&&gDn(r.join(", "));for(let i of rct)Object.hasOwn(n,i)||(n[i]=e[i]??t[i]);return n}function TDn(){this.keepAliveConnections.delete(this.socket)}function vDn(){}uct.exports={buildRouting:yDn,validateBodyLimitOption:cct,buildRouterOptions:_Dn}});var yct=w((vYr,gct)=>{"use strict";var RDn=kde(),dct=m4(),fct=_4(),ADn=T4(),{kRoutePrefix:wDn,kCanSetNotFoundHandler:fD,kFourOhFourLevelInstance:pD,kFourOhFourContext:xh,kHooks:kDn,kErrorHandler:pct}=$s(),{lifecycleHooks:IDn}=ZS(),{buildErrorHandler:xDn}=CM(),{FST_ERR_NOT_FOUND:ODn}=Ko(),{createChildLogger:hct}=PM(),{getGenReqId:mct}=X4();function PDn(e){let{logger:t,disableRequestLogging:n}=e,r=RDn({onBadUrl:a(),defaultRoute:d}),i=null;return{router:r,setNotFoundHandler:u,setContext:c,arrange404:s};function s(f){f[pD]=f,f[fD]=!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[pD][xh],y=mct(g.server,h),b=hct(g,t,h,y),S=new fct(y,null,h,null,b,g),E=new dct(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[fD]===void 0&&(this[fD]=!0),this[xh]===void 0&&(this[xh]=null);let g=this,y=this[wDn]||"/";if(this[fD]===!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[pD][fD]=!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 ADn({schema:p.schema,handler:h,config:p.config||{},server:this});if(m.once("preReady",()=>{let b=this[xh];for(let S of IDn){let E=this[kDn][S].concat(p[S]||[]).map(_=>_.bind(this));b[S]=E.length?E:null}b.errorHandler=p.errorHandler?xDn(this[pct],p.errorHandler):this[pct]}),this[xh]!==null&&f==="/"){Object.assign(this[xh],y);return}this[pD][xh]=y,r.all(f+(f.endsWith("/")?"*":"/*"),g,y),r.all(f,g,y)}function d(f,p){let h=this[pD][xh],m=mct(h.server,f),g=hct(h,t,f,m);g.info({req:f},"incoming request");let y=new fct(m,null,f,null,g,h),b=new dct(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 ODn)}}gct.exports=PDn});var Sct=w((RYr,yK)=>{"use strict";yK.exports=Bn;yK.exports.default=Bn;var NDn={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:{}}}}}},CDn=Object.prototype.hasOwnProperty,MDn=new RegExp("idle","u");function Bn(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)CDn.call(NDn.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 Bn.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 Bn.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"&&!MDn.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++,Bn.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 Bn.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 Bn.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 Bn.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 Bn.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 Bn.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 Bn.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 H;if(H===void 0)if(U==="false"||U===0||U===null)H=!1;else if(U==="true"||U===1)H=!0;else return Bn.errors=[{instancePath:t+"/http2",schemaPath:"#/properties/http2/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;H!==void 0&&(U=H,e!==void 0&&(e.http2=H))}var a=M===o}else var a=!0;if(a){if(e.https!==void 0){let U=e.https,M=o,j=o,H=!0,K=o,ee=o,se=o,Le=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 kt={};s===null?s=[kt]:s.push(kt),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 kt={};s===null?s=[kt]:s.push(kt),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 Un={};s===null?s=[Un]:s.push(Un),o++}else{let Un=o;for(let dr in U)dr!=="allowHTTP1"&&delete U[dr];if(Un===o&&U.allowHTTP1!==void 0){let dr=U.allowHTTP1;if(typeof dr!="boolean"){let sn;if(sn===void 0)if(dr==="false"||dr===0||dr===null)sn=!1;else if(dr==="true"||dr===1)sn=!0;else{let fr={};s===null?s=[fr]:s.push(fr),o++}sn!==void 0&&(dr=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=Le,s!==null&&(Le?s.length=Le:s=null);else{let _e={};s===null?s=[_e]:s.push(_e),o++}var l=se===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=K===o;if(o=j,s!==null&&(j?s.length=j:s=null),d){let _e=o;e.https=!0;var d=_e===o;H=d}if(!H){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++,Bn.errors=s,!1}var a=M===o}else var a=!0;if(a){let U=e.ignoreTrailingSlash,M=o;if(typeof U!="boolean"){let H;if(H===void 0)if(U==="false"||U===0||U===null)H=!1;else if(U==="true"||U===1)H=!0;else return Bn.errors=[{instancePath:t+"/ignoreTrailingSlash",schemaPath:"#/properties/ignoreTrailingSlash/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;H!==void 0&&(U=H,e!==void 0&&(e.ignoreTrailingSlash=H))}var a=M===o;if(a){let H=e.ignoreDuplicateSlashes,K=o;if(typeof H!="boolean"){let se;if(se===void 0)if(H==="false"||H===0||H===null)se=!1;else if(H==="true"||H===1)se=!0;else return Bn.errors=[{instancePath:t+"/ignoreDuplicateSlashes",schemaPath:"#/properties/ignoreDuplicateSlashes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;se!==void 0&&(H=se,e!==void 0&&(e.ignoreDuplicateSlashes=se))}var a=K===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 Bn.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 de=typeof z,_e;if(_e===void 0)if(de=="number"||de=="boolean")_e=""+z;else if(z===null)_e="";else return Bn.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 de=e.onConstructorPoisoning,_e=o;if(typeof de!="string"){let Ue=typeof de,Un;if(Un===void 0)if(Ue=="number"||Ue=="boolean")Un=""+de;else if(de===null)Un="";else return Bn.errors=[{instancePath:t+"/onConstructorPoisoning",schemaPath:"#/properties/onConstructorPoisoning/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Un!==void 0&&(de=Un,e!==void 0&&(e.onConstructorPoisoning=Un))}var a=_e===o;if(a){let Ue=e.pluginTimeout,Un=o;if(!(typeof Ue=="number"&&!(Ue%1)&&!isNaN(Ue)&&isFinite(Ue))){let sn=typeof Ue,fr;if(fr===void 0)if(sn==="boolean"||Ue===null||sn==="string"&&Ue&&Ue==+Ue&&!(Ue%1))fr=+Ue;else return Bn.errors=[{instancePath:t+"/pluginTimeout",schemaPath:"#/properties/pluginTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;fr!==void 0&&(Ue=fr,e!==void 0&&(e.pluginTimeout=fr))}var a=Un===o;if(a){let sn=e.requestIdHeader,fr=o,nl=o,As=!1,lE=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=lE===o;if(As=As||f,!As){let Ii=o;if(typeof sn!="string"){let ly=typeof sn,Rr;if(Rr===void 0)if(ly=="number"||ly=="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++,Bn.errors=s,!1}var a=fr===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 Bn.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 Bn.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 Bn.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,ne=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 Bn.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=ne===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 Bn.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 Bn.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,dE;if(dE===void 0)if(Rp==="boolean"||xi===null||Rp==="string"&&xi&&xi==+xi&&!(xi%1))dE=+xi;else return Bn.errors=[{instancePath:t+"/routerOptions/maxParamLength",schemaPath:"#/properties/routerOptions/properties/maxParamLength/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;dE!==void 0&&(xi=dE,Se!==void 0&&(Se.maxParamLength=dE))}var p=vp===o;if(p){let Rp=Se.allowUnsafeRegex,dE=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 Bn.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=dE===o;if(p){let au=Se.useSemicolonDelimiter,oMt=o;if(typeof au!="boolean"){let uR;if(uR===void 0)if(au==="false"||au===0||au===null)uR=!1;else if(au==="true"||au===1)uR=!0;else return Bn.errors=[{instancePath:t+"/routerOptions/useSemicolonDelimiter",schemaPath:"#/properties/routerOptions/properties/useSemicolonDelimiter/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;uR!==void 0&&(au=uR,Se!==void 0&&(Se.useSemicolonDelimiter=uR))}var p=oMt===o}}}}}else return Bn.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 Bn.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 Hl=dn.name;if(typeof Hl!="string"){let xi=typeof Hl,vp;if(vp===void 0)if(xi=="number"||xi=="boolean")vp=""+Hl;else if(Hl===null)vp="";else return Bn.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&&(Hl=vp,dn!==void 0&&(dn.name=vp))}}}else return Bn.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 Bn.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 Bn.errors=[{instancePath:t,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;return Bn.errors=s,o===0}yK.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 bct=w((AYr,bK)=>{"use strict";var SK=Sct(),DDn=n4()({circles:!0,proto:!1}),{FST_ERR_INIT_OPTS_INVALID:LDn}=Ko();function UDn(e){let t=DDn(e);if(!SK(t)){let n=new LDn(JSON.stringify(SK.errors.map(r=>r.message)));throw n.errors=SK.errors,n}return Cde(t)}function Cde(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"?Cde(r):r)}return Object.freeze(e)}bK.exports=UDn;bK.exports.defaultInitOptions=SK.defaultInitOptions;bK.exports.utils={deepFreezeObject:Cde}});var Ict=w((wYr,kct)=>{"use strict";var{kAvvioBoot:FDn,kChildren:Ect,kRoutePrefix:_ct,kLogLevel:Tct,kLogSerializers:Mde,kHooks:Dde,kSchemaController:dI,kContentTypeParser:vct,kReply:Rct,kRequest:Act,kFourOhFour:jDn,kPluginNameChain:wct,kErrorHandlerAlreadySet:HDn}=$s(),qDn=m4(),BDn=_4(),zDn=jle(),GDn=que(),{buildHooks:VDn}=ZS(),hD=lde();kct.exports=function(t,n,r){let i=hD.registerPlugin.call(t,n),s=hD.getPluginName(n)||hD.getFuncPreview(n);if(i)return t[wct].push(s),t;let o=Object.create(t);t[Ect].push(o),o.ready=t[FDn].bind(o),o[Ect]=[],o[Rct]=qDn.buildReply(o[Rct]),o[Act]=BDn.buildRequest(o[Act]),o[vct]=GDn.helpers.buildContentTypeParser(o[vct]),o[Dde]=VDn(o[Dde]),o[_ct]=WDn(o[_ct],r.prefix),o[Tct]=r.logLevel||o[Tct],o[dI]=zDn.buildSchemaController(t[dI]),o.getSchema=o[dI].getSchema.bind(o[dI]),o.getSchemas=o[dI].getSchemas.bind(o[dI]),o[hD.kRegisteredPlugins]=Object.create(o[hD.kRegisteredPlugins]),o[wct]=[s],o[HDn]=!1,(o[Mde]||r.logSerializers)&&(o[Mde]=Object.assign(Object.create(o[Mde]),r.logSerializers)),r.prefix&&o[jDn].arrange404(o);for(let a of o[Dde].onRegister)a.call(t,o,r);return o};function WDn(e,t){return t?(e.endsWith("/")&&t[0]==="/"?t=t.slice(1):t[0]!=="/"&&(t="/"+t),e+t):e}});var Cct=w(Oh=>{"use strict";Object.defineProperty(Oh,"__esModule",{value:!0});Oh.parseCookie=Pct;Oh.parse=Pct;Oh.stringifyCookie=QDn;Oh.stringifySetCookie=EK;Oh.serialize=EK;Oh.parseSetCookie=$Dn;Oh.stringifySetCookie=EK;Oh.serialize=EK;var xct=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,Oct=/^[\u0021-\u003A\u003C-\u007E]*$/,KDn=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,YDn=/^[\u0020-\u003A\u003D-\u007E]*$/,ZDn=/^-?\d+$/,JDn=Object.prototype.toString,XDn=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function Pct(e,t){let n=new XDn,r=e.length;if(r<2)return n;let i=t?.decode||Nct,s=0;do{let o=Ude(e,s,r);if(o===-1)break;let a=Lde(e,s,r);if(o>a){s=e.lastIndexOf(";",o-1)+1;continue}let c=ob(e,s,o);n[c]===void 0&&(n[c]=i(ob(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 Nct(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function eLn(e){return JDn.call(e)==="[object Date]"}});var Dct=w((IYr,_K)=>{"use strict";var{format:Fde}=Y("node:util");function tLn(e){return Mct({...e,name:"DeprecationWarning"})}function Mct({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=Fde(n,o,a,c):o&&a?u=Fde(n,o,a):o?u=Fde(n,o):u=n,u},s}var jde={createWarning:Mct,createDeprecation:tLn};_K.exports=jde;_K.exports.default=jde;_K.exports.processWarning=jde});var Fct=w((xYr,Uct)=>{"use strict";var{URL:Lct}=Y("node:url"),Hde="http://localhost";Uct.exports=function(t,n){(typeof t=="string"||Object.prototype.toString.call(t)==="[object String]")&&t.startsWith("//")&&(t=Hde+t);let r=typeof t=="object"?Object.assign(new Lct(Hde),t):new Lct(t,Hde);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 jct=w((OYr,qde)=>{"use strict";var{randomUUID:nLn}=Y("node:crypto"),{Readable:rLn}=Y("node:stream"),fI;function iLn(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 sLn(e){fI=fI??new TextEncoder;let t=`----formdata-${nLn()}`,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 fI.encode(`${n}; name="${r(i(c))}"\r \r -`),yield sI.encode(`${i(u)}\r +`),yield fI.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:HLn.from(o()),contentType:`multipart/form-data; boundary=${t}`}}Pde.exports.isFormDataLike=qLn;Pde.exports.formDataToStream=BLn});var Nct=w((K9r,h4)=>{"use strict";var{Readable:xct,addAbortSignal:GLn}=Z("node:stream"),Mde=Z("node:util"),zLn=Tct(),VLn=Z("node:assert"),{createDeprecation:WLn}=Act(),KLn=kct(),{isFormDataLike:ZLn,formDataToStream:YLn}=Ict(),{EventEmitter:JLn}=Z("node:events"),XLn=WLn({name:"FastifyDeprecationLightMyRequest",code:"FST_LIGHTMYREQUEST_DEP01",message:'You are accessing "request.connection", use "request.socket" instead.'});function QLn(e){return e.port?e.host:e.hostname+(e.protocol==="https:"?":443":":80")}var Cde=class extends JLn{constructor(t){super(),this.remoteAddress=t}};function Oct(e){return new t(this);function t(n){sE.call(n,{...e,Request:void 0}),Object.assign(this,n);for(let r of Object.keys(sE.prototype))this.constructor.prototype[r]=sE.prototype[r];return Mde.inherits(this.constructor,e.Request),this}}function sE(e){xct.call(this,{autoDestroy:!1});let t=KLn(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];VLn(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||QLn(t),e.cookies){let{cookies:o}=e,a=Object.keys(o).map(c=>zLn.serialize(c,o[c]));this.headers.cookie&&a.unshift(this.headers.cookie),this.headers.cookie=a.join("; ")}this.socket=new Cde(e.remoteAddress||"127.0.0.1"),Object.defineProperty(this,"connection",{get(){return XLn(),this.socket},configurable:!0});let r=e.payload||e.body||null,i=r&&typeof r.resume=="function";if(ZLn(r)){let o=YLn(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&&GLn(s,this);{let o=this._lightMyRequest.payload;o?._readableState?(this._read=$Ln,o.on("error",a=>{this.destroy(a)}),o.on("end",()=>{this.push(null)})):this._read=eDn}return this}function $Ln(){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 eDn(){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)})}Mde.inherits(sE,xct);Mde.inherits(Oct,sE);sE.prototype.destroy=function(e){this.destroyed||this._lightMyRequest.isDone||(this.destroyed=!0,e&&(this._error=!0,process.nextTick(()=>this.emit("error",e))),process.nextTick(()=>this.emit("close")))};h4.exports=sE;h4.exports.Request=sE;h4.exports.CustomRequest=Oct});var Cct=w((Z9r,iL)=>{"use strict";var m4={decodeValues:!0,map:!1,silent:!1};function Lde(e){return typeof e!="string"||e in{}}function Dde(){return Object.create(null)}function Ude(e){return typeof e=="string"&&!!e.trim()}function Fde(e,t){var n=e.split(";").filter(Ude),r=n.shift(),i=tDn(r),s=i.name,o=i.value;if(t=t?Object.assign({},m4,t):m4,Lde(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=Dde();return a.name=s,a.value=o,n.forEach(function(c){var u=c.split("="),l=u.shift().trimLeft().toLowerCase();if(!Lde(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 tDn(e){var t="",n="",r=e.split("=");return r.length>1?(t=r.shift(),n=r.join("=")):n=e,{name:t,value:n}}function Pct(e,t){if(t=t?Object.assign({},m4,t):m4,!e)return t.map?Dde():[];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=Dde();return e.filter(Ude).reduce(function(i,s){var o=Fde(s,t);return o&&!Lde(o.name)&&(i[o.name]=o),i},r)}else return e.filter(Ude).map(function(i){return Fde(i,t)}).filter(Boolean)}function nDn(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}iL.exports=Pct;iL.exports.parse=Pct;iL.exports.parseString=Fde;iL.exports.splitCookiesString=nDn});var Fct=w((Y9r,Uct)=>{"use strict";var sL=Z("node:http"),{Writable:rDn,Readable:Mct,addAbortSignal:iDn}=Z("node:stream"),sDn=Z("node:util"),oDn=Cct();function oE(e,t,n){if(sL.ServerResponse.call(this,e),e._lightMyRequest?.payloadAsStream){let a=this.emit.bind(this,"drain");this._lightMyRequest={headers:null,trailers:{},stream:new Mct({read:a})};let c=e._lightMyRequest.signal;c&&iDn(c,this._lightMyRequest.stream)}else this._lightMyRequest={headers:null,trailers:{},payloadChunks:[]};this.setHeader("foo","bar"),this.removeHeader("foo"),this.assignSocket(aDn()),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=Lct(this);a.raw.req=e,i(a)}),this.connection.once("error",o),this.once("error",o),this.once("close",o)}sDn.inherits(oE,sL.ServerResponse);oE.prototype.setTimeout=function(e,t){return this.timeoutHandle=setTimeout(()=>{this.emit("timeout")},e),this.on("timeout",t),this};oE.prototype.writeHead=function(){let e=sL.ServerResponse.prototype.writeHead.apply(this,arguments);return Dct(this),this._lightMyRequest.stream&&this._lightMyRequest.onEndSuccess(Lct(this)),e};oE.prototype.write=function(e,t,n){return this.timeoutHandle&&clearTimeout(this.timeoutHandle),sL.ServerResponse.prototype.write.call(this,e,t,n),this._lightMyRequest.stream?this._lightMyRequest.stream.push(Buffer.from(e,t)):(this._lightMyRequest.payloadChunks.push(Buffer.from(e,t)),!0)};oE.prototype.end=function(e,t,n){e&&this.write(e,t),sL.ServerResponse.prototype.end.call(this,n),this.emit("finish"),this.destroy()};oE.prototype.destroy=function(e){this.destroyed||(this.destroyed=!0,e&&process.nextTick(()=>this.emit("error",e)),process.nextTick(()=>this.emit("close")))};oE.prototype.addTrailers=function(e){for(let t in e)this._lightMyRequest.trailers[t.toLowerCase().trim()]=e[t].toString().trim()};function Lct(e){e._lightMyRequest.headers===null&&Dct(e),cDn(e);let t={raw:{res:e},headers:e._lightMyRequest.headers,statusCode:e.statusCode,statusMessage:e.statusMessage,trailers:{},get cookies(){return oDn.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:Mct.from(e._lightMyRequest.payloadChunks)},t}function aDn(){return new rDn({write(e,t,n){setImmediate(n)}})}function cDn(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 Dct(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])})}Uct.exports=oE});var jct=w((J9r,jde)=>{"use strict";jde.exports=eo;jde.exports.default=eo;var uDn={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:uDn.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 Bct=w((X9r,aL)=>{"use strict";var lDn=Z("node:assert"),Hde=Nct(),g4=Fct(),S4="The dispatch function has already been invoked",Hct=jct();function qde(e,t,n){return n===void 0?new oL(e,t):y4(e,t,n)}function dDn(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 qct(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()}),dDn(n,()=>e.call(t,n,r))}function y4(e,t,n){if(t=typeof t=="string"?{url:t}:t,t.validate!==!1&&(lDn(typeof e=="function","dispatchFunc should be a function"),!Hct(t)))throw new Error(Hct.errors.map(o=>o.message));let r=t.server||{},i=t.Request?Hde.CustomRequest:Hde;if(e.request&&e.request.app===e&&(Object.setPrototypeOf(Object.getPrototypeOf(e.request),i.prototype),Object.setPrototypeOf(Object.getPrototypeOf(e.response),g4.prototype)),typeof n=="function"){let s=new i(t),o=new g4(s,n);return qct(e,r,s,o)}else return new Promise((s,o)=>{let a=new i(t),c=new g4(a,s,o);qct(e,r,a,c)})}function oL(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 fDn=["delete","get","head","options","patch","post","put","trace"];fDn.forEach(e=>{oL.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(S4);return this.option.url=t,this.option.method=e.toUpperCase(),this}});var pDn=["body","cookies","headers","payload","query"];pDn.forEach(e=>{oL.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(S4);return this.option[e]=t,this}});oL.prototype.end=function(e){if(this._hasInvoked===!0||this._promise)throw new Error(S4);if(this._hasInvoked=!0,typeof e=="function")y4(this.dispatch,this.option,e);else return this._promise=y4(this.dispatch,this.option),this._promise};Object.getOwnPropertyNames(Promise.prototype).forEach(e=>{e!=="constructor"&&(oL.prototype[e]=function(...t){if(!this._promise){if(this._hasInvoked===!0)throw new Error(S4);this._hasInvoked=!0,this._promise=y4(this.dispatch,this.option)}return this._promise[e](...t)})});function hDn(e){return e instanceof Hde||e instanceof g4||e?.constructor?.name==="_CustomLMRRequest"}aL.exports=qde;aL.exports.default=qde;aL.exports.inject=qde;aL.exports.isInjection=hDn});var iut=w((Q9r,fL)=>{"use strict";var mDn="5.8.5",gDn=mQe(),T4=Z("node:http"),yDn=Z("node:diagnostics_channel"),cL,{kAvvioBoot:uL,kChildren:Bde,kServerBindings:Gct,kBodyLimit:SDn,kSupportedHTTPMethods:yT,kRoutePrefix:zct,kLogLevel:EDn,kLogSerializers:bDn,kHooks:Gde,kSchemaController:aE,kRequestAcceptVersion:_Dn,kReplySerializerDefault:Vct,kContentTypeParser:TDn,kReply:vDn,kRequest:ADn,kFourOhFour:RDn,kState:Qi,kOptions:zde,kPluginNameChain:lL,kSchemaErrorFormatter:Vde,kErrorHandler:E4,kKeepAliveConnections:Wde,kChildLoggerFactory:Kde,kGenReqId:Zde,kErrorHandlerAlreadySet:b4,kHandlerTimeout:wDn}=$s(),{createServer:kDn}=GQe(),dL=a3(),_4=p3(),IDn=h3(),ST=RM(),ET=Pue(),Wct=Ole(),{Hooks:xDn,hookRunnerApplication:Kct,supportedHooks:Yde}=KS(),{createChildLogger:Zct,defaultChildLoggerFactory:ODn,createLogger:NDn}=bM(),Yct=tde(),{getGenReqId:Jct,reqIdGenFactory:nut}=G3(),{buildRouting:PDn,validateBodyLimitOption:CDn,buildRouterOptions:MDn}=$at(),LDn=oct(),rut=cct(),DDn=yct(),{appendStackTrace:UDn,AVVIO_ERRORS_MAP:Xct,...bT}=Ko(),FDn=nce(),{defaultInitOptions:xu}=rut,{FST_ERR_ASYNC_CONSTRAINT:jDn,FST_ERR_BAD_URL:HDn,FST_ERR_OPTIONS_NOT_OBJ:qDn,FST_ERR_QSP_NOT_FN:BDn,FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:GDn,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:zDn,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:VDn,FST_ERR_INSTANCE_ALREADY_LISTENING:WDn,FST_ERR_REOPENED_CLOSE_SERVER:KDn,FST_ERR_ROUTE_REWRITE_NOT_STR:ZDn,FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:Qct,FST_ERR_ERROR_HANDLER_NOT_FN:YDn,FST_ERR_ERROR_HANDLER_ALREADY_SET:JDn,FST_ERR_ROUTE_METHOD_INVALID:XDn}=bT,{buildErrorHandler:$ct}=TM(),{FSTWRN004:QDn}=xk(),eut=yDn.channel("fastify.initialization");function Jde(e){let{options:t,genReqId:n,disableRequestLogging:r,hasLogger:i,initialConfig:s}=$Dn(e,N,P),o=PDn(t.routerOptions),a=LDn(t),c=U(o,t),{server:u,listen:l,forceCloseConnections:d,serverHasCloseAllConnections:f,serverHasCloseHttp2Sessions:p,keepAliveConnections:h}=kDn(t,c),m=dL.setupResponseListeners,y=Wct.buildSchemaController(null,t.schemaController),g={[Qi]:{listening:!1,closing:!1,started:!1,ready:!1,booting:!1,aborted:!1,readyResolver:null},[Wde]:h,[yT]:{bodyless:new Set(["GET","HEAD","TRACE"]),bodywith:new Set(["DELETE","OPTIONS","PATCH","PUT","POST"])},[zde]:t,[Bde]:[],[Gct]:[],[SDn]:t.bodyLimit,[wDn]:t.handlerTimeout,[zct]:"",[EDn]:"",[bDn]:null,[Gde]:new xDn,[aE]:y,[Vde]:null,[E4]:$ct(),[b4]:!1,[Kde]:t.childLoggerFactory||ODn,[Vct]:null,[TDn]:new ET(t.bodyLimit,t.onProtoPoisoning||xu.onProtoPoisoning,t.onConstructorPoisoning||xu.onConstructorPoisoning),[vDn]:dL.buildReply(dL),[ADn]:_4.buildRequest(_4,t.trustProxy),[RDn]:a,[Yct.kRegisteredPlugins]:[],[lL]:["fastify"],[uL]:null,[Zde]:n,routing:c,delete:function(W,ee,se){return o.prepareRoute.call(this,{method:"DELETE",url:W,options:ee,handler:se})},get:function(W,ee,se){return o.prepareRoute.call(this,{method:"GET",url:W,options:ee,handler:se})},head:function(W,ee,se){return o.prepareRoute.call(this,{method:"HEAD",url:W,options:ee,handler:se})},trace:function(W,ee,se){return o.prepareRoute.call(this,{method:"TRACE",url:W,options:ee,handler:se})},patch:function(W,ee,se){return o.prepareRoute.call(this,{method:"PATCH",url:W,options:ee,handler:se})},post:function(W,ee,se){return o.prepareRoute.call(this,{method:"POST",url:W,options:ee,handler:se})},put:function(W,ee,se){return o.prepareRoute.call(this,{method:"PUT",url:W,options:ee,handler:se})},options:function(W,ee,se){return o.prepareRoute.call(this,{method:"OPTIONS",url:W,options:ee,handler:se})},all:function(W,ee,se){return o.prepareRoute.call(this,{method:this.supportedMethods,url:W,options:ee,handler:se})},route:function(W){return o.route.call(this,{options:W})},hasRoute:function(W){return o.hasRoute.call(this,{options:W})},findRoute:function(W){return o.findRoute(W)},log:t.logger,withTypeProvider:R,addHook:x,addSchema:k,getSchema:y.getSchema.bind(y),getSchemas:y.getSchemas.bind(y),setValidatorCompiler:V,setSerializerCompiler:$,setSchemaController:B,setReplySerializer:X,setSchemaErrorFormatter:K,setGenReqId:L,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[Yct.kRegisteredPlugins].includes(j)||this[lL].includes(j)},listen:l,server:u,addresses:function(){let j=this[Gct].map(W=>W.address());return j.push(this.server.address()),j.filter(W=>W)},decorate:ST.add,hasDecorator:ST.exist,decorateReply:ST.decorateReply,decorateRequest:ST.decorateRequest,hasRequestDecorator:ST.existRequest,hasReplyDecorator:ST.existReply,getDecorator:ST.getInstanceDecorator,addHttpMethod:H,inject:T,printRoutes:q,setNotFoundHandler:F,setErrorHandler:G,setChildLoggerFactory:M,initialConfig:s,addConstraintStrategy:o.addConstraintStrategy.bind(o),hasConstraintStrategy:o.hasConstraintStrategy.bind(o)};Object.defineProperties(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[zde].https?"https":"http"}://${W}:${j.port}`}},pluginName:{configurable:!0,get(){return this[lL].length>1?this[lL].join(" -> "):this[lL][0]}},prefix:{configurable:!0,get(){return this[zct]}},validatorCompiler:{configurable:!0,get(){return this[aE].getValidatorCompiler()}},serializerCompiler:{configurable:!0,get(){return this[aE].getSerializerCompiler()}},childLoggerFactory:{configurable:!0,get(){return this[Kde]}},version:{configurable:!0,get(){return mDn}},errorHandler:{configurable:!0,get(){return this[E4].func}},genReqId:{configurable:!0,get(){return this[Zde]}},supportedMethods:{configurable:!1,get(){return[...this[yT].bodyless,...this[yT].bodywith]}}}),t.schemaErrorFormatter&&(tut(t.schemaErrorFormatter),g[Vde]=t.schemaErrorFormatter.bind(g));let E=Number(t.pluginTimeout),S=gDn(g,{autostart:!1,timeout:isNaN(E)===!1?E:xu.pluginTimeout,expose:{use:"register"}});S.override=DDn,S.on("start",()=>g[Qi].started=!0),g[uL]=g.ready,g.ready=A,g.printPlugins=S.prettyPrint.bind(S),S.once("preReady",()=>{g.onClose((j,W)=>{g[Qi].closing=!0,o.closeRoutes(),Kct("preClose",g[uL],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[Wde])ee.destroy(),g[Wde].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 IDn({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)),eut.hasSubscribers&&eut.publish({fastify:g}),"asyncDispose"in Symbol&&(g[Symbol.asyncDispose]=function(){return g.close()}),g;function _(j){if(g[Qi].started)throw new WDn(j)}function T(j,W){if(cL===void 0&&(cL=Bct()),g[Qi].started){if(g[Qi].closing){let ee=new KDn;if(W){W(ee);return}else return Promise.reject(ee)}return cL(c,j,W)}if(W)this.ready(ee=>{ee?W(ee,null):cL(c,j,W)});else return cL((ee,se)=>{this.ready(function(Me){if(Me){se.emit("error",Me);return}c(ee,se)})},j)}function A(j){if(this[Qi].readyResolver!==null){if(j!=null){this[Qi].readyResolver.promise.then(()=>j(null,g),j);return}return this[Qi].readyResolver.promise}if(process.nextTick(W),this[Qi].readyResolver=FDn.withResolvers(),j)this[Qi].readyResolver.promise.then(()=>j(null,g),j);else return this[Qi].readyResolver.promise;function W(){g[uL]((se,Me)=>{se||g[Qi].started||g[Qi].ready||g[Qi].booting?ee(se):(g[Qi].booting=!0,Kct("onReady",g[uL],g,ee)),Me()})}function ee(se){if(se=se!=null&&Xct[se.code]!=null?UDn(se,new Xct[se.code](se.message)):se,se)return g[Qi].readyResolver.reject(se);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 bT.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 bT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(j==="onReady"||j==="onListen"){if(W.constructor.name==="AsyncFunction"&&W.length!==0)throw new bT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(j==="onRequestAbort"){if(W.constructor.name==="AsyncFunction"&&W.length!==1)throw new bT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(W.constructor.name==="AsyncFunction"&&W.length===3)throw new bT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER;return j==="onClose"?this.onClose(W.bind(this)):j==="onReady"||j==="onListen"||j==="onRoute"?this[Gde].add(j,W):this.after((se,Me)=>{try{ee.call(this,j,W),Me(se)}catch(Re){Me(Re)}}),this;function ee(se,Me){this[Gde].add(se,Me),this[Bde].forEach(Re=>ee.call(Re,se,Me))}}function k(j){return _('Cannot call "addSchema"!'),this[aE].add(j),this[Bde].forEach(W=>W.addSchema(j)),this}function N(j,W){j.headers["accept-version"]!==void 0&&(j.headers[_Dn]=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=Jct(b.server,W),Re=Zct(b,t.logger,W,Me),z=new _4(Me,null,W,null,Re,b),J=new dL(ee,z,Re);return(typeof r=="function"?r(W):r)===!1&&Re.info({req:z},"incoming request"),t.frameworkErrors(new HDn(j),z,J)}let se=JSON.stringify({error:"Bad Request",code:"FST_ERR_BAD_URL",message:`'${j}' is not a valid url component`,statusCode:400});ee.writeHead(400,{"Content-Type":"application/json","Content-Length":Buffer.byteLength(se)}),ee.end(se)}function C(j,W,ee){if(j!==!1)return function(Me){if(Me){if(t.frameworkErrors){let z=Jct(b.server,W),J=Zct(b,t.logger,W,z),oe=new _4(z,null,W,null,J,b),le=new dL(ee,oe,J);return(typeof r=="function"?r(W):r)===!1&&J.info({req:oe},"incoming request"),t.frameworkErrors(new jDn,oe,le)}let Re='{"error":"Internal Server Error","message":"Unexpected error from async constraint","statusCode":500}';ee.writeHead(500,{"Content-Type":"application/json","Content-Length":Re.length}),ee.end(Re)}}}function F(j,W){return _('Cannot call "setNotFoundHandler"!'),a.setNotFoundHandler.call(this,j,W,S,o.routeHandler),this}function V(j){return _('Cannot call "setValidatorCompiler"!'),this[aE].setValidatorCompiler(j),this}function K(j){return _('Cannot call "setSchemaErrorFormatter"!'),tut(j),this[Vde]=j.bind(this),this}function $(j){return _('Cannot call "setSerializerCompiler"!'),this[aE].setSerializerCompiler(j),this}function B(j){_('Cannot call "setSchemaController"!');let W=this[aE],ee=Wct.buildSchemaController(W,Object.assign({},W.opts,j));return this[aE]=ee,this.getSchema=ee.getSchema.bind(ee),this.getSchemas=ee.getSchemas.bind(ee),this}function X(j){return _('Cannot call "setReplySerializer"!'),this[Vct]=j,this}function G(j){if(_('Cannot call "setErrorHandler"!'),typeof j!="function")throw new YDn;if(!t.allowErrorHandlerOverride&&this[b4])throw new JDn;return this[b4]&&QDn("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[b4]=!0,this[E4]=$ct(this[E4],j.bind(this)),this}function M(j){return _('Cannot call "setChildLoggerFactory"!'),this[Kde]=j,this}function q(j={}){return j.includeMeta=j.includeHooks?j.includeMeta?Yde.concat(j.includeMeta):Yde:j.includeMeta,o.printRoutes(j)}function U(j,{rewriteUrl:W,logger:ee}){let se;return function(Re,z){if(se===void 0&&(se=j.isAsyncConstraint()),W){Re.originalUrl=Re.url;let J=W.call(g,Re);if(typeof J=="string")Re.url=J;else{let oe=new ZDn(Re.url,typeof J);Re.destroy(oe)}}j.routing(Re,z,C(se,Re,z))}}function L(j){return _('Cannot call "setGenReqId"!'),this[Zde]=nut(this[zde].requestIdHeader,j),this}function H(j,{hasBody:W=!1}={}){if(typeof j!="string"||T4.METHODS.indexOf(j)===-1)throw new XDn;W===!0?(this[yT].bodywith.add(j),this[yT].bodyless.delete(j)):(this[yT].bodywith.delete(j),this[yT].bodyless.add(j));let ee=j.toLowerCase();return this.hasDecorator(ee)||this.decorate(ee,function(se,Me,Re){return o.prepareRoute.call(this,{method:j,url:se,options:Me,handler:Re})}),this}}function $Dn(e,t,n){if(e&&typeof e!="object")throw new qDn;if(e=Object.assign({},e),e.querystringParser&&typeof e.querystringParser!="function"||e.routerOptions?.querystringParser&&typeof e.routerOptions.querystringParser!="function")throw new BDn(typeof(e.querystringParser??e.routerOptions.querystringParser));if(e.schemaController&&e.schemaController.bucket&&typeof e.schemaController.bucket!="function")throw new GDn(typeof e.schemaController.bucket);CDn(e.bodyLimit);let r=typeof e.requestIdHeader=="string"&&e.requestIdHeader.length!==0?e.requestIdHeader.toLowerCase():e.requestIdHeader===!0&&"request-id",i=nut(r,e.genReqId),s=e.requestIdLogLabel||"reqId";e.bodyLimit=e.bodyLimit||xu.bodyLimit;let o=e.disableRequestLogging||!1,a=Object.assign({customOptions:{},plugins:[]},e.ajv);if(!a.customOptions||Object.prototype.toString.call(a.customOptions)!=="[object Object]")throw new zDn(typeof a.customOptions);if(!a.plugins||!Array.isArray(a.plugins))throw new VDn(typeof a.plugins);let{logger:c,hasLogger:u}=NDn(e);e.connectionTimeout=e.connectionTimeout||xu.connectionTimeout,e.keepAliveTimeout=e.keepAliveTimeout||xu.keepAliveTimeout,e.maxRequestsPerSocket=e.maxRequestsPerSocket||xu.maxRequestsPerSocket,e.requestTimeout=e.requestTimeout||xu.requestTimeout,e.logger=c,e.requestIdHeader=r,e.requestIdLogLabel=s,e.disableRequestLogging=o,e.ajv=a,e.clientErrorHandler=e.clientErrorHandler||t1n,e.allowErrorHandlerOverride=e.allowErrorHandlerOverride??xu.allowErrorHandlerOverride;let l=rut(e);return e.exposeHeadRoutes=l.exposeHeadRoutes,e.http2SessionTimeout=l.http2SessionTimeout,e.routerOptions=MDn(e,{defaultRoute:t,onBadUrl:n,ignoreTrailingSlash:xu.ignoreTrailingSlash,ignoreDuplicateSlashes:xu.ignoreDuplicateSlashes,maxParamLength:xu.maxParamLength,allowUnsafeRegex:xu.allowUnsafeRegex,buildPrettyMeta:e1n,useSemicolonDelimiter:xu.useSemicolonDelimiter}),{options:e,genReqId:i,disableRequestLogging:o,hasLogger:u,initialConfig:l}}function e1n(e){let t={};return["errorHandler","logLevel","logSerializers"].concat(Yde).forEach(r=>{t[r]=e.store[r]}),Object.assign({},t)}function t1n(e,t){if(e.code==="ECONNRESET"||t.destroyed)return;let n,r,i,s;e.code==="ERR_HTTP_REQUEST_TIMEOUT"?(r="408",i=T4.STATUS_CODES[r],n=`{"error":"${i}","message":"Client Timeout","statusCode":408}`,s="timeout"):e.code==="HPE_HEADER_OVERFLOW"?(r="431",i=T4.STATUS_CODES[r],n=`{"error":"${i}","message":"Exceeded maximum allowed HTTP header size","statusCode":431}`,s="header_overflow"):(r="400",i=T4.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 fI.encode(l),u.stream?yield*u.stream():yield u,yield s}yield fI.encode(`--${t}--`)}return{stream:rLn.from(o()),contentType:`multipart/form-data; boundary=${t}`}}qde.exports.isFormDataLike=iLn;qde.exports.formDataToStream=sLn});var Bct=w((PYr,TK)=>{"use strict";var{Readable:Hct,addAbortSignal:oLn}=Y("node:stream"),zde=Y("node:util"),aLn=Cct(),cLn=Y("node:assert"),{createDeprecation:uLn}=Dct(),lLn=Fct(),{isFormDataLike:dLn,formDataToStream:fLn}=jct(),{EventEmitter:pLn}=Y("node:events"),hLn=uLn({name:"FastifyDeprecationLightMyRequest",code:"FST_LIGHTMYREQUEST_DEP01",message:'You are accessing "request.connection", use "request.socket" instead.'});function mLn(e){return e.port?e.host:e.hostname+(e.protocol==="https:"?":443":":80")}var Bde=class extends pLn{constructor(t){super(),this.remoteAddress=t}};function qct(e){return new t(this);function t(n){ab.call(n,{...e,Request:void 0}),Object.assign(this,n);for(let r of Object.keys(ab.prototype))this.constructor.prototype[r]=ab.prototype[r];return zde.inherits(this.constructor,e.Request),this}}function ab(e){Hct.call(this,{autoDestroy:!1});let t=lLn(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];cLn(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||mLn(t),e.cookies){let{cookies:o}=e,a=Object.keys(o).map(c=>aLn.serialize(c,o[c]));this.headers.cookie&&a.unshift(this.headers.cookie),this.headers.cookie=a.join("; ")}this.socket=new Bde(e.remoteAddress||"127.0.0.1"),Object.defineProperty(this,"connection",{get(){return hLn(),this.socket},configurable:!0});let r=e.payload||e.body||null,i=r&&typeof r.resume=="function";if(dLn(r)){let o=fLn(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&&oLn(s,this);{let o=this._lightMyRequest.payload;o?._readableState?(this._read=gLn,o.on("error",a=>{this.destroy(a)}),o.on("end",()=>{this.push(null)})):this._read=yLn}return this}function gLn(){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 yLn(){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)})}zde.inherits(ab,Hct);zde.inherits(qct,ab);ab.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")))};TK.exports=ab;TK.exports.Request=ab;TK.exports.CustomRequest=qct});var Gct=w((NYr,mD)=>{"use strict";var vK={decodeValues:!0,map:!1,silent:!1};function Gde(e){return typeof e!="string"||e in{}}function Vde(){return Object.create(null)}function Wde(e){return typeof e=="string"&&!!e.trim()}function Kde(e,t){var n=e.split(";").filter(Wde),r=n.shift(),i=SLn(r),s=i.name,o=i.value;if(t=t?Object.assign({},vK,t):vK,Gde(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=Vde();return a.name=s,a.value=o,n.forEach(function(c){var u=c.split("="),l=u.shift().trimLeft().toLowerCase();if(!Gde(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 SLn(e){var t="",n="",r=e.split("=");return r.length>1?(t=r.shift(),n=r.join("=")):n=e,{name:t,value:n}}function zct(e,t){if(t=t?Object.assign({},vK,t):vK,!e)return t.map?Vde():[];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=Vde();return e.filter(Wde).reduce(function(i,s){var o=Kde(s,t);return o&&!Gde(o.name)&&(i[o.name]=o),i},r)}else return e.filter(Wde).map(function(i){return Kde(i,t)}).filter(Boolean)}function bLn(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}mD.exports=zct;mD.exports.parse=zct;mD.exports.parseString=Kde;mD.exports.splitCookiesString=bLn});var Zct=w((CYr,Yct)=>{"use strict";var gD=Y("node:http"),{Writable:ELn,Readable:Vct,addAbortSignal:_Ln}=Y("node:stream"),TLn=Y("node:util"),vLn=Gct();function cb(e,t,n){if(gD.ServerResponse.call(this,e),e._lightMyRequest?.payloadAsStream){let a=this.emit.bind(this,"drain");this._lightMyRequest={headers:null,trailers:{},stream:new Vct({read:a})};let c=e._lightMyRequest.signal;c&&_Ln(c,this._lightMyRequest.stream)}else this._lightMyRequest={headers:null,trailers:{},payloadChunks:[]};this.setHeader("foo","bar"),this.removeHeader("foo"),this.assignSocket(RLn()),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=Wct(this);a.raw.req=e,i(a)}),this.connection.once("error",o),this.once("error",o),this.once("close",o)}TLn.inherits(cb,gD.ServerResponse);cb.prototype.setTimeout=function(e,t){return this.timeoutHandle=setTimeout(()=>{this.emit("timeout")},e),this.on("timeout",t),this};cb.prototype.writeHead=function(){let e=gD.ServerResponse.prototype.writeHead.apply(this,arguments);return Kct(this),this._lightMyRequest.stream&&this._lightMyRequest.onEndSuccess(Wct(this)),e};cb.prototype.write=function(e,t,n){return this.timeoutHandle&&clearTimeout(this.timeoutHandle),gD.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)};cb.prototype.end=function(e,t,n){e&&this.write(e,t),gD.ServerResponse.prototype.end.call(this,n),this.emit("finish"),this.destroy()};cb.prototype.destroy=function(e){this.destroyed||(this.destroyed=!0,e&&process.nextTick(()=>this.emit("error",e)),process.nextTick(()=>this.emit("close")))};cb.prototype.addTrailers=function(e){for(let t in e)this._lightMyRequest.trailers[t.toLowerCase().trim()]=e[t].toString().trim()};function Wct(e){e._lightMyRequest.headers===null&&Kct(e),ALn(e);let t={raw:{res:e},headers:e._lightMyRequest.headers,statusCode:e.statusCode,statusMessage:e.statusMessage,trailers:{},get cookies(){return vLn.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:Vct.from(e._lightMyRequest.payloadChunks)},t}function RLn(){return new ELn({write(e,t,n){setImmediate(n)}})}function ALn(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 Kct(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])})}Yct.exports=cb});var Jct=w((MYr,Yde)=>{"use strict";Yde.exports=eo;Yde.exports.default=eo;var wLn={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:wLn.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 $ct=w((DYr,SD)=>{"use strict";var kLn=Y("node:assert"),Zde=Bct(),RK=Zct(),wK="The dispatch function has already been invoked",Xct=Jct();function Jde(e,t,n){return n===void 0?new yD(e,t):AK(e,t,n)}function ILn(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 Qct(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()}),ILn(n,()=>e.call(t,n,r))}function AK(e,t,n){if(t=typeof t=="string"?{url:t}:t,t.validate!==!1&&(kLn(typeof e=="function","dispatchFunc should be a function"),!Xct(t)))throw new Error(Xct.errors.map(o=>o.message));let r=t.server||{},i=t.Request?Zde.CustomRequest:Zde;if(e.request&&e.request.app===e&&(Object.setPrototypeOf(Object.getPrototypeOf(e.request),i.prototype),Object.setPrototypeOf(Object.getPrototypeOf(e.response),RK.prototype)),typeof n=="function"){let s=new i(t),o=new RK(s,n);return Qct(e,r,s,o)}else return new Promise((s,o)=>{let a=new i(t),c=new RK(a,s,o);Qct(e,r,a,c)})}function yD(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 xLn=["delete","get","head","options","patch","post","put","trace"];xLn.forEach(e=>{yD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(wK);return this.option.url=t,this.option.method=e.toUpperCase(),this}});var OLn=["body","cookies","headers","payload","query"];OLn.forEach(e=>{yD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(wK);return this.option[e]=t,this}});yD.prototype.end=function(e){if(this._hasInvoked===!0||this._promise)throw new Error(wK);if(this._hasInvoked=!0,typeof e=="function")AK(this.dispatch,this.option,e);else return this._promise=AK(this.dispatch,this.option),this._promise};Object.getOwnPropertyNames(Promise.prototype).forEach(e=>{e!=="constructor"&&(yD.prototype[e]=function(...t){if(!this._promise){if(this._hasInvoked===!0)throw new Error(wK);this._hasInvoked=!0,this._promise=AK(this.dispatch,this.option)}return this._promise[e](...t)})});function PLn(e){return e instanceof Zde||e instanceof RK||e?.constructor?.name==="_CustomLMRRequest"}SD.exports=Jde;SD.exports.default=Jde;SD.exports.inject=Jde;SD.exports.isInjection=PLn});var mut=w((LYr,vD)=>{"use strict";var NLn="5.8.5",CLn=wQe(),OK=Y("node:http"),MLn=Y("node:diagnostics_channel"),bD,{kAvvioBoot:ED,kChildren:Xde,kServerBindings:eut,kBodyLimit:DLn,kSupportedHTTPMethods:bT,kRoutePrefix:tut,kLogLevel:LLn,kLogSerializers:ULn,kHooks:Qde,kSchemaController:ub,kRequestAcceptVersion:FLn,kReplySerializerDefault:nut,kContentTypeParser:jLn,kReply:HLn,kRequest:qLn,kFourOhFour:BLn,kState:Qi,kOptions:$de,kPluginNameChain:_D,kSchemaErrorFormatter:efe,kErrorHandler:kK,kKeepAliveConnections:tfe,kChildLoggerFactory:nfe,kGenReqId:rfe,kErrorHandlerAlreadySet:IK,kHandlerTimeout:zLn}=$s(),{createServer:GLn}=e$e(),TD=m4(),xK=_4(),VLn=T4(),ET=LM(),_T=que(),rut=jle(),{Hooks:WLn,hookRunnerApplication:iut,supportedHooks:ife}=ZS(),{createChildLogger:sut,defaultChildLoggerFactory:KLn,createLogger:YLn}=PM(),out=lde(),{getGenReqId:aut,reqIdGenFactory:put}=X4(),{buildRouting:ZLn,validateBodyLimitOption:JLn,buildRouterOptions:XLn}=lct(),QLn=yct(),hut=bct(),$Ln=Ict(),{appendStackTrace:e1n,AVVIO_ERRORS_MAP:cut,...TT}=Ko(),t1n=dce(),{defaultInitOptions:Ou}=hut,{FST_ERR_ASYNC_CONSTRAINT:n1n,FST_ERR_BAD_URL:r1n,FST_ERR_OPTIONS_NOT_OBJ:i1n,FST_ERR_QSP_NOT_FN:s1n,FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:o1n,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:a1n,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:c1n,FST_ERR_INSTANCE_ALREADY_LISTENING:u1n,FST_ERR_REOPENED_CLOSE_SERVER:l1n,FST_ERR_ROUTE_REWRITE_NOT_STR:d1n,FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:uut,FST_ERR_ERROR_HANDLER_NOT_FN:f1n,FST_ERR_ERROR_HANDLER_ALREADY_SET:p1n,FST_ERR_ROUTE_METHOD_INVALID:h1n}=TT,{buildErrorHandler:lut}=CM(),{FSTWRN004:m1n}=Lk(),dut=MLn.channel("fastify.initialization");function sfe(e){let{options:t,genReqId:n,disableRequestLogging:r,hasLogger:i,initialConfig:s}=g1n(e,P,N),o=ZLn(t.routerOptions),a=QLn(t),c=U(o,t),{server:u,listen:l,forceCloseConnections:d,serverHasCloseAllConnections:f,serverHasCloseHttp2Sessions:p,keepAliveConnections:h}=GLn(t,c),m=TD.setupResponseListeners,g=rut.buildSchemaController(null,t.schemaController),y={[Qi]:{listening:!1,closing:!1,started:!1,ready:!1,booting:!1,aborted:!1,readyResolver:null},[tfe]:h,[bT]:{bodyless:new Set(["GET","HEAD","TRACE"]),bodywith:new Set(["DELETE","OPTIONS","PATCH","PUT","POST"])},[$de]:t,[Xde]:[],[eut]:[],[DLn]:t.bodyLimit,[zLn]:t.handlerTimeout,[tut]:"",[LLn]:"",[ULn]:null,[Qde]:new WLn,[ub]:g,[efe]:null,[kK]:lut(),[IK]:!1,[nfe]:t.childLoggerFactory||KLn,[nut]:null,[jLn]:new _T(t.bodyLimit,t.onProtoPoisoning||Ou.onProtoPoisoning,t.onConstructorPoisoning||Ou.onConstructorPoisoning),[HLn]:TD.buildReply(TD),[qLn]:xK.buildRequest(xK,t.trustProxy),[BLn]:a,[out.kRegisteredPlugins]:[],[_D]:["fastify"],[ED]:null,[rfe]:n,routing:c,delete:function(K,ee,se){return o.prepareRoute.call(this,{method:"DELETE",url:K,options:ee,handler:se})},get:function(K,ee,se){return o.prepareRoute.call(this,{method:"GET",url:K,options:ee,handler:se})},head:function(K,ee,se){return o.prepareRoute.call(this,{method:"HEAD",url:K,options:ee,handler:se})},trace:function(K,ee,se){return o.prepareRoute.call(this,{method:"TRACE",url:K,options:ee,handler:se})},patch:function(K,ee,se){return o.prepareRoute.call(this,{method:"PATCH",url:K,options:ee,handler:se})},post:function(K,ee,se){return o.prepareRoute.call(this,{method:"POST",url:K,options:ee,handler:se})},put:function(K,ee,se){return o.prepareRoute.call(this,{method:"PUT",url:K,options:ee,handler:se})},options:function(K,ee,se){return o.prepareRoute.call(this,{method:"OPTIONS",url:K,options:ee,handler:se})},all:function(K,ee,se){return o.prepareRoute.call(this,{method:this.supportedMethods,url:K,options:ee,handler:se})},route:function(K){return o.route.call(this,{options:K})},hasRoute:function(K){return o.hasRoute.call(this,{options:K})},findRoute:function(K){return o.findRoute(K)},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:_T.helpers.addContentTypeParser,hasContentTypeParser:_T.helpers.hasContentTypeParser,getDefaultJsonParser:_T.defaultParsers.getDefaultJsonParser,defaultTextParser:_T.defaultParsers.defaultTextParser,removeContentTypeParser:_T.helpers.removeContentTypeParser,removeAllContentTypeParsers:_T.helpers.removeAllContentTypeParsers,register:null,after:null,ready:null,onClose:null,close:null,printPlugins:null,hasPlugin:function(H){return this[out.kRegisteredPlugins].includes(H)||this[_D].includes(H)},listen:l,server:u,addresses:function(){let H=this[eut].map(K=>K.address());return H.push(this.server.address()),H.filter(K=>K)},decorate:ET.add,hasDecorator:ET.exist,decorateReply:ET.decorateReply,decorateRequest:ET.decorateRequest,hasRequestDecorator:ET.existRequest,hasReplyDecorator:ET.existReply,getDecorator:ET.getInstanceDecorator,addHttpMethod:j,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 H=this.addresses().slice(-1).pop();if(typeof H=="string")return H;let K=H.family==="IPv6"?`[${H.address}]`:H.address;return`${this[$de].https?"https":"http"}://${K}:${H.port}`}},pluginName:{configurable:!0,get(){return this[_D].length>1?this[_D].join(" -> "):this[_D][0]}},prefix:{configurable:!0,get(){return this[tut]}},validatorCompiler:{configurable:!0,get(){return this[ub].getValidatorCompiler()}},serializerCompiler:{configurable:!0,get(){return this[ub].getSerializerCompiler()}},childLoggerFactory:{configurable:!0,get(){return this[nfe]}},version:{configurable:!0,get(){return NLn}},errorHandler:{configurable:!0,get(){return this[kK].func}},genReqId:{configurable:!0,get(){return this[rfe]}},supportedMethods:{configurable:!1,get(){return[...this[bT].bodyless,...this[bT].bodywith]}}}),t.schemaErrorFormatter&&(fut(t.schemaErrorFormatter),y[efe]=t.schemaErrorFormatter.bind(y));let b=Number(t.pluginTimeout),S=CLn(y,{autostart:!1,timeout:isNaN(b)===!1?b:Ou.pluginTimeout,expose:{use:"register"}});S.override=$Ln,S.on("start",()=>y[Qi].started=!0),y[ED]=y.ready,y.ready=R,y.printPlugins=S.prettyPrint.bind(S),S.once("preReady",()=>{y.onClose((H,K)=>{y[Qi].closing=!0,o.closeRoutes(),iut("preClose",y[ED],y,function(){if(y[Qi].listening){if(d==="idle")H.server.closeIdleConnections();else if(f&&d)H.server.closeAllConnections();else if(d===!0)for(let ee of y[tfe])ee.destroy(),y[tfe].delete(ee)}p&&H.server.closeHttp2Sessions(),!t.serverFactory||y[Qi].listening?H.server.close(function(ee){ee&&ee.code!=="ERR_SERVER_NOT_RUNNING"?K(null):K()}):process.nextTick(K,null)})})});let E=new VLn({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)),dut.hasSubscribers&&dut.publish({fastify:y}),"asyncDispose"in Symbol&&(y[Symbol.asyncDispose]=function(){return y.close()}),y;function _(H){if(y[Qi].started)throw new u1n(H)}function T(H,K){if(bD===void 0&&(bD=$ct()),y[Qi].started){if(y[Qi].closing){let ee=new l1n;if(K){K(ee);return}else return Promise.reject(ee)}return bD(c,H,K)}if(K)this.ready(ee=>{ee?K(ee,null):bD(c,H,K)});else return bD((ee,se)=>{this.ready(function(Le){if(Le){se.emit("error",Le);return}c(ee,se)})},H)}function R(H){if(this[Qi].readyResolver!==null){if(H!=null){this[Qi].readyResolver.promise.then(()=>H(null,y),H);return}return this[Qi].readyResolver.promise}if(process.nextTick(K),this[Qi].readyResolver=t1n.withResolvers(),H)this[Qi].readyResolver.promise.then(()=>H(null,y),H);else return this[Qi].readyResolver.promise;function K(){y[ED]((se,Le)=>{se||y[Qi].started||y[Qi].ready||y[Qi].booting?ee(se):(y[Qi].booting=!0,iut("onReady",y[ED],y,ee)),Le()})}function ee(se){if(se=se!=null&&cut[se.code]!=null?e1n(se,new cut[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(H,K){if(_('Cannot call "addHook"!'),K==null)throw new TT.FST_ERR_HOOK_INVALID_HANDLER(H,K);if(H==="onSend"||H==="preSerialization"||H==="onError"||H==="preParsing"){if(K.constructor.name==="AsyncFunction"&&K.length===4)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(H==="onReady"||H==="onListen"){if(K.constructor.name==="AsyncFunction"&&K.length!==0)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(H==="onRequestAbort"){if(K.constructor.name==="AsyncFunction"&&K.length!==1)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(K.constructor.name==="AsyncFunction"&&K.length===3)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER;return H==="onClose"?this.onClose(K.bind(this)):H==="onReady"||H==="onListen"||H==="onRoute"?this[Qde].add(H,K):this.after((se,Le)=>{try{ee.call(this,H,K),Le(se)}catch(Ae){Le(Ae)}}),this;function ee(se,Le){this[Qde].add(se,Le),this[Xde].forEach(Ae=>ee.call(Ae,se,Le))}}function k(H){return _('Cannot call "addSchema"!'),this[ub].add(H),this[Xde].forEach(K=>K.addSchema(H)),this}function P(H,K){H.headers["accept-version"]!==void 0&&(H.headers[FLn]=H.headers["accept-version"],H.headers["accept-version"]=void 0),a.router.lookup(H,K)}function N(H,K,ee){if(t.frameworkErrors){let Le=aut(E.server,K),Ae=sut(E,t.logger,K,Le),z=new xK(Le,null,K,null,Ae,E),J=new TD(ee,z,Ae);return(typeof r=="function"?r(K):r)===!1&&Ae.info({req:z},"incoming request"),t.frameworkErrors(new r1n(H),z,J)}let se=JSON.stringify({error:"Bad Request",code:"FST_ERR_BAD_URL",message:`'${H}' 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(H,K,ee){if(H!==!1)return function(Le){if(Le){if(t.frameworkErrors){let z=aut(E.server,K),J=sut(E,t.logger,K,z),oe=new xK(z,null,K,null,J,E),de=new TD(ee,oe,J);return(typeof r=="function"?r(K):r)===!1&&J.info({req:oe},"incoming request"),t.frameworkErrors(new n1n,oe,de)}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(H,K){return _('Cannot call "setNotFoundHandler"!'),a.setNotFoundHandler.call(this,H,K,S,o.routeHandler),this}function G(H){return _('Cannot call "setValidatorCompiler"!'),this[ub].setValidatorCompiler(H),this}function W(H){return _('Cannot call "setSchemaErrorFormatter"!'),fut(H),this[efe]=H.bind(this),this}function $(H){return _('Cannot call "setSerializerCompiler"!'),this[ub].setSerializerCompiler(H),this}function q(H){_('Cannot call "setSchemaController"!');let K=this[ub],ee=rut.buildSchemaController(K,Object.assign({},K.opts,H));return this[ub]=ee,this.getSchema=ee.getSchema.bind(ee),this.getSchemas=ee.getSchemas.bind(ee),this}function Q(H){return _('Cannot call "setReplySerializer"!'),this[nut]=H,this}function B(H){if(_('Cannot call "setErrorHandler"!'),typeof H!="function")throw new f1n;if(!t.allowErrorHandlerOverride&&this[IK])throw new p1n;return this[IK]&&m1n("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[IK]=!0,this[kK]=lut(this[kK],H.bind(this)),this}function F(H){return _('Cannot call "setChildLoggerFactory"!'),this[nfe]=H,this}function V(H={}){return H.includeMeta=H.includeHooks?H.includeMeta?ife.concat(H.includeMeta):ife:H.includeMeta,o.printRoutes(H)}function U(H,{rewriteUrl:K,logger:ee}){let se;return function(Ae,z){if(se===void 0&&(se=H.isAsyncConstraint()),K){Ae.originalUrl=Ae.url;let J=K.call(y,Ae);if(typeof J=="string")Ae.url=J;else{let oe=new d1n(Ae.url,typeof J);Ae.destroy(oe)}}H.routing(Ae,z,C(se,Ae,z))}}function M(H){return _('Cannot call "setGenReqId"!'),this[rfe]=put(this[$de].requestIdHeader,H),this}function j(H,{hasBody:K=!1}={}){if(typeof H!="string"||OK.METHODS.indexOf(H)===-1)throw new h1n;K===!0?(this[bT].bodywith.add(H),this[bT].bodyless.delete(H)):(this[bT].bodywith.delete(H),this[bT].bodyless.add(H));let ee=H.toLowerCase();return this.hasDecorator(ee)||this.decorate(ee,function(se,Le,Ae){return o.prepareRoute.call(this,{method:H,url:se,options:Le,handler:Ae})}),this}}function g1n(e,t,n){if(e&&typeof e!="object")throw new i1n;if(e=Object.assign({},e),e.querystringParser&&typeof e.querystringParser!="function"||e.routerOptions?.querystringParser&&typeof e.routerOptions.querystringParser!="function")throw new s1n(typeof(e.querystringParser??e.routerOptions.querystringParser));if(e.schemaController&&e.schemaController.bucket&&typeof e.schemaController.bucket!="function")throw new o1n(typeof e.schemaController.bucket);JLn(e.bodyLimit);let r=typeof e.requestIdHeader=="string"&&e.requestIdHeader.length!==0?e.requestIdHeader.toLowerCase():e.requestIdHeader===!0&&"request-id",i=put(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 a1n(typeof a.customOptions);if(!a.plugins||!Array.isArray(a.plugins))throw new c1n(typeof a.plugins);let{logger:c,hasLogger:u}=YLn(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||S1n,e.allowErrorHandlerOverride=e.allowErrorHandlerOverride??Ou.allowErrorHandlerOverride;let l=hut(e);return e.exposeHeadRoutes=l.exposeHeadRoutes,e.http2SessionTimeout=l.http2SessionTimeout,e.routerOptions=XLn(e,{defaultRoute:t,onBadUrl:n,ignoreTrailingSlash:Ou.ignoreTrailingSlash,ignoreDuplicateSlashes:Ou.ignoreDuplicateSlashes,maxParamLength:Ou.maxParamLength,allowUnsafeRegex:Ou.allowUnsafeRegex,buildPrettyMeta:y1n,useSemicolonDelimiter:Ou.useSemicolonDelimiter}),{options:e,genReqId:i,disableRequestLogging:o,hasLogger:u,initialConfig:l}}function y1n(e){let t={};return["errorHandler","logLevel","logSerializers"].concat(ife).forEach(r=>{t[r]=e.store[r]}),Object.assign({},t)}function S1n(e,t){if(e.code==="ECONNRESET"||t.destroyed)return;let n,r,i,s;e.code==="ERR_HTTP_REQUEST_TIMEOUT"?(r="408",i=OK.STATUS_CODES[r],n=`{"error":"${i}","message":"Client Timeout","statusCode":408}`,s="timeout"):e.code==="HPE_HEADER_OVERFLOW"?(r="431",i=OK.STATUS_CODES[r],n=`{"error":"${i}","message":"Exceeded maximum allowed HTTP header size","statusCode":431}`,s="header_overflow"):(r="400",i=OK.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 tut(e){if(typeof e!="function")throw new Qct(typeof e);if(e.constructor.name==="AsyncFunction")throw new Qct("AsyncFunction")}fL.exports=Jde;fL.exports.errorCodes=bT;fL.exports.fastify=Jde;fL.exports.default=Jde});var bl=v(()=>{Wne();Wne()});var n1n,Xde=v(()=>{"use strict";bl();n1n=O.object({ok:O.literal(!0),stage:O.string().describe("The stage the advance signal was resolved against."),open_feedback_count:O.number().int().min(0).describe("Number of pending / fixing / addressed feedback items on the stage at the time of the call. Zero means the engine stamped the user slots; non-zero means it didn't \u2014 the cursor will walk Track B first."),stamped_user_slots:O.boolean().describe("True when this call stamped `reviews.user` and `approvals.user` on the units that needed them (i.e., open_feedback_count was zero).")}).describe("POST /api/advance/:sessionId response body")});var r1n,i1n,Qde=v(()=>{"use strict";bl();r1n=O.enum(["loopback","token"]).describe("Transport invariant \u2014 routes declare 'loopback' (v1 runtime policy) or 'token' (reserved for future bearer-token routes)."),i1n=O.object({token:O.string().min(1).max(512).describe("Bearer token value (1..512 chars)."),issued_at:O.string().min(1).max(64).describe("ISO-8601 timestamp the token was minted (\u2264 64 chars)."),expires_at:O.string().min(1).max(64).optional().describe("ISO-8601 expiry timestamp. Optional \u2014 tokens without an expiry are long-lived (deployment policy determines acceptability).")}).describe("Session-token skeleton for future non-loopback deployments. Not wired to any current route.")});var sut,$de,out,pL,v4,aut,cut,efe,uut,oI,s1n,o1n,A4,aZr,hL,a1n,cZr,mL,R4,gL,tfe,dg=v(()=>{"use strict";bl();Qde();sut=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."),$de=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)."),out=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."),pL=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."),v4=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."),aut=O.object({author:O.string().min(1).max(200).describe("Free-form author handle ('user', agent name)."),author_type:sut,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"),cut=sut,efe=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"),uut=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(efe).optional(),comments:O.array(uut).optional()}).describe("Annotations attached to a review decision"),s1n=O.object({x:O.number().describe("Pin x-coordinate (0..1 relative to image width)"),y:O.number().describe("Pin y-coordinate (0..1 relative to image height)"),text:O.string().max(1e3).describe("Pin comment body (capped at 1,000 chars)"),image_index:O.number().int().nonnegative().describe("Index into the question's image_urls[] \u2014 which reference image this pin sits on")}).describe("Per-image pin annotation on a question session"),o1n=O.object({comment:O.string().max(1e4).describe("Reviewer's note on this annotation pass"),screenshot_data_url:O.string().max(15e5).describe("`data:image/png;base64,...` URL of the captured surface + composited strokes (1.5 MB cap)"),image_index:O.number().int().nonnegative().describe("Index into the question's image_urls[] this annotation was captured on")}).describe("One reviewer annotation pass over a question reference image"),A4=O.object({comments:O.array(uut).optional(),pins:O.array(s1n).optional(),screenshots:O.array(o1n).max(20).optional()}).describe("Annotations attached to a question answer"),aZr=O.enum(["review","question","design_direction"]).describe("Session type discriminator"),hL=O.enum(["pending","decided","answered","approved","changes_requested"]).describe("Runtime status across review | question | design_direction sessions."),a1n=O.object({code:O.string(),message:O.string(),path:O.array(O.union([O.string(),O.number()]))}).passthrough().describe("Structural ZodIssue on the wire \u2014 we expose code/message/path at minimum; extra keys are preserved via passthrough."),cZr=O.object({error:O.literal("validation_failed"),issues:O.array(a1n)}).describe("Uniform 400 response for request-body validation failure (malformed JSON, schema mismatch, oversize)"),mL=1048576,R4=131072,gL=8388608,tfe=33554432});var c1n,u1n,l1n,d1n,f1n,p1n,h1n,nfe,m1n,rfe=v(()=>{"use strict";bl();dg();c1n=O.object({comment:O.string().max(1e4).describe("Reviewer's note on this annotation pass"),screenshot_data_url:O.string().max(15e5).describe("`data:image/png;base64,...` URL of the captured surface + composited strokes (1.5 MB cap)")}).describe("One reviewer annotation pass over the chosen preview"),u1n=O.object({pins:O.array(efe).optional(),screenshots:O.array(c1n).max(20).optional()}).describe("Annotations attached to a design-direction selection"),l1n=O.object({mode:O.literal("select"),archetype:O.string().max(64).describe("Archetype name selected by the user from the design-direction set"),comments:O.string().max(1e4).optional().describe("Optional free-text comments accompanying the selection"),annotations:u1n.optional()}).describe("Final selection \u2014 user picked one archetype"),d1n=O.object({mode:O.literal("regenerate"),keep:O.array(O.string().max(64)).max(50).describe("Archetype names the user wants preserved; the agent should produce fresh variants for the remaining slots"),comments:O.string().max(1e4).optional().describe("Optional steering notes for the next generation \u2014 what to change, what to lean into")}).describe("Regenerate request \u2014 user wants more / different variants"),f1n=O.object({filename:O.string().min(1).max(255).describe("Original filename (sanitised by the server)"),data_url:O.string().max(15e5).describe("`data:image/...;base64,...` URL of the uploaded file (1.5 MB cap per file, matches screenshot annotations)"),caption:O.string().max(1e4).optional().describe("Optional caption describing what this artefact represents")}).describe("One uploaded design file in an upload-mode submission"),p1n=O.object({mode:O.literal("upload"),files:O.array(f1n).min(1).max(20).describe("Designer-provided files to use directly as the chosen direction (no archetype generation)"),comments:O.string().max(1e4).optional().describe("Optional overall notes about the uploaded direction \u2014 what the designer wants the agent to honour")}).describe("Upload submission \u2014 designer provided finished designs; skip archetype generation"),h1n=O.object({mode:O.literal("generate"),comments:O.string().max(1e4).optional().describe("Optional steering notes for the agent's first archetype generation")}).describe("Intake signal \u2014 user has no uploads and wants the agent to generate variants"),nfe=O.discriminatedUnion("mode",[l1n,d1n,p1n,h1n]).describe("POST /direction/:sessionId/select request body"),m1n=O.object({ok:O.literal(!0)}).describe("POST /direction/:sessionId/select response body")});var lut,g1n,y1n,S1n,E1n,ife,b1n,sfe,_1n,T1n,ofe,v1n,afe=v(()=>{"use strict";bl();dg();lut=O.object({selected_text:O.string().min(1).max(1e3),paragraph:O.number().int().nonnegative().max(1e4),location:O.string().max(500),comment_id:O.string().max(200).optional(),file_path:O.string().max(1e3).optional(),content_sha:O.string().max(64).optional()}).describe("Inline text-anchor metadata for inline-comment feedback"),g1n=O.object({feedback_id:O.string().max(32).describe("FB-NN identifier (scoped per stage)"),title:O.string().max(200),body:O.string().max(1e4),status:pL,origin:$de,severity:out.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:cut,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:v4.nullable().optional().describe("Routing hint for the feedback resolver. null/unset = router defaults to stage_revisit."),replies:O.array(aut).optional().describe("Thread of replies on this feedback item. Empty / missing = no replies yet."),inline_anchor:lut.nullable().optional().describe("Inline-text anchor metadata. Present when the feedback was created by selecting text in a rendered artifact and attaching a comment. Null / absent for visual-pin or plain chat feedback."),scope:O.enum(["intent","stage"]).optional().describe("Whether this feedback lives under .haiku/intents//feedback/ (intent scope, logged by the studio-level completion review) or .haiku/intents//stages//feedback/ (stage scope, the normal adversarial review output). UI shows intent-scope items with a distinguishing chip so cross-stage findings don't get hidden behind a stage tab."),iterations:O.array(O.object({bolt:O.number().int().nonnegative(),hat:O.string().max(200),started_at:O.string().max(40).optional(),completed_at:O.string().max(40).optional(),result:O.enum(["advanced","closed","reopened","rejected"]).optional(),commit:O.string().max(64).optional(),message:O.string().max(4e3).optional(),reason:O.string().max(1e3).optional()})).optional().describe("Per-bolt history of the fix loop \u2014 one entry per hat that fires against this finding. Mirrors the `iterations:` frontmatter on unit files so reviewers can see at a glance why a finding needed multiple tries."),closure_reply:O.object({text:O.string().max(2e3),at:O.string().max(40)}).optional().describe("Agent's plain-language reply to the requester at FB closure time. Set on the terminal fix-hat advance."),closure_reply_unread:O.boolean().optional().describe("True when the reply hasn't been acknowledged in the SPA yet. Flipped to false by the dismiss action.")}).describe("Wire shape of a feedback item"),y1n=O.object({intent:O.string(),stage:O.string(),count:O.number().int().nonnegative(),items:O.array(g1n)}).describe("GET /api/feedback/:intent/:stage response body"),S1n=O.object({pageId:O.string().min(1).max(200),x:O.number().min(0).max(1),y:O.number().min(0).max(1),viewportWidth:O.number().int().positive().max(1e4),viewportHeight:O.number().int().positive().max(1e4)}).describe("Pin anchor metadata for visual annotations"),E1n=6e6,ife=O.object({title:O.string().min(1).max(200),body:O.string().min(1).max(1e4),origin:$de.optional().default("user-visual"),author:O.string().max(200).optional().describe("Ignored by the server \u2014 retained for backward compatibility only. The HTTP feedback-create handler always stamps `user` as the author for HTTP-sourced submissions (see packages/haiku/src/http.ts:1526). Do NOT rely on this field to convey identity: there is no session-context author resolution today, so honoring client-supplied values would let any HTTP caller forge authorship. Treat any value submitted here as untrusted data that crosses into the server trust boundary and is discarded."),source_ref:O.string().max(1e3).nullable().optional(),anchor:S1n.optional(),inline_anchor:lut.optional(),resolution:v4.optional().describe("Author's preferred resolution path. Router defaults to stage_revisit when omitted."),attachment_data_url:O.string().max(E1n).regex(/^data:image\/(png|jpeg|webp);base64,[A-Za-z0-9+/=]+$/,{message:"attachment_data_url must be a base64-encoded data URL for png/jpeg/webp (svg rejected \u2014 stored-XSS risk)"}).optional()}).describe("POST /api/feedback/:intent/:stage request body"),b1n=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"),sfe=O.object({status:pL.optional(),closed_by:O.string().max(200).optional(),resolution:v4.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"),_1n=O.object({feedback_id:O.string(),updated_fields:O.array(O.string()).describe("List of frontmatter fields that were actually changed"),message:O.string()}).describe("PUT /api/feedback/:intent/:stage/:id response body"),T1n=O.object({feedback_id:O.string(),deleted:O.literal(!0),message:O.string()}).describe("DELETE /api/feedback/:intent/:stage/:id response body"),ofe=O.object({body:O.string().min(1).max(5e3),author:O.string().max(200).optional().describe("Optional author hint. When omitted the server stamps 'user' or the agent name from session context."),close_as_answered:O.boolean().optional()}).describe("POST /api/feedback/:intent/:stage/:id/replies request body"),v1n=O.object({feedback_id:O.string(),reply_index:O.number().int().nonnegative().describe("Zero-based index of the new reply inside replies[]."),status:pL,message:O.string()}).describe("POST /api/feedback/:intent/:stage/:id/replies response body")});var cfe,ufe,A1n,w4=v(()=>{"use strict";bl();dg();cfe=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"),ufe=O.object({answers:O.array(cfe).max(50),feedback:O.string().max(1e4).optional(),annotations:A4.optional()}).describe("POST /question/:sessionId/answer request body"),A1n=O.object({ok:O.literal(!0)}).describe("POST /question/:sessionId/answer response body")});var R1n,lfe,w1n,dfe=v(()=>{"use strict";bl();dg();R1n=O.enum(["approved","changes_requested"]).describe("Canonical review decision. Anything != approved is coerced to changes_requested server-side."),lfe=O.object({decision:O.string().describe("Raw decision string \u2014 server canonicalizes to 'approved' or 'changes_requested'."),feedback:O.string().optional().describe("Reviewer-provided free-text feedback"),annotations:oI.optional()}).describe("POST /review/:sessionId/decide request body"),w1n=O.object({ok:O.literal(!0),decision:R1n,feedback:O.string()}).describe("POST /review/:sessionId/decide response body")});var yL,RZr,k1n,I1n,x1n,ffe,O1n,N1n,P1n,dut,C1n,M1n,L1n,D1n,U1n,F1n,j1n,H1n,q1n,B1n,G1n,z1n,V1n,W1n,K1n,Z1n,Y1n,J1n,X1n,Q1n,$1n,eUn,wZr,tUn,pfe=v(()=>{"use strict";bl();dg();yL=O.record(O.unknown()).describe("Opaque parsed artifact (ParsedIntent / ParsedUnit / CriterionItem / etc.)"),RZr=O.enum(["auto","ask","external","await"]).describe("Review-gate type declared in STAGE.md"),k1n=O.object({stage:O.string(),mergedIntoMain:O.boolean(),status:O.string().optional().describe("Deprecated v3 shim \u2014 derived"),phase:O.string().optional().describe("Deprecated v3 shim \u2014 derived"),started_at:O.string().optional(),completed_at:O.string().nullable().optional(),gate_entered_at:O.string().nullable().optional(),gate_outcome:O.string().nullable().optional()}).describe("Per-stage status snapshot. v4: only `stage` and `mergedIntoMain` are authoritative; other fields are deprecated v3 shims pending SPA rewrite."),I1n=O.object({name:O.string(),content:O.string()}),x1n=O.object({stage:O.string(),name:O.string(),content:O.string()}),ffe=O.object({stage:O.string(),name:O.string(),type:O.enum(["markdown","html","image","video","code","file"]),language:O.string().optional(),directory:O.string().optional(),content:O.string().optional(),relativePath:O.string().optional(),intentRelativePath:O.string().optional()}),O1n=O.object({path:O.string(),name:O.string(),type:O.enum(["markdown","html","image","file"]),url:O.string(),previewBody:O.string().optional(),sizeBytes:O.number().int().nonnegative().optional(),exists:O.boolean()}),N1n=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."),P1n=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."),dut=O.object({key:O.string(),label:O.string(),status:O.enum(["done","active","pending"])}).describe("One milestone in the granular per-stage progress track"),C1n=O.object({studio:O.string(),stage:O.string(),phase:O.enum(["elaborate","execute","review","approve","complete","gate",""]),step:O.string().optional(),nextState:O.object({stage:O.string().optional(),phase:O.enum(["elaborate","execute","review","approve","complete","gate"]).optional(),step:O.string().optional(),blockedOn:O.enum(["user-gate","external-review","feedback-fix"]).nullable().optional()}).nullable().optional(),pending_signals:O.array(O.string()).optional(),milestones:O.array(dut).optional(),progress_index:O.number().int().nonnegative().optional(),progress_total:O.number().int().nonnegative().optional(),seal_status:O.enum(["sealed","pending_seal"]).optional(),awaiting_merge_into:O.string().optional()}).describe("Unified current-state snapshot \u2014 derived fresh per request from per-unit frontmatter and branch-merge state. The single source of truth for 'where is this intent right now?'."),M1n=O.enum(["ad_hoc_done","open_pr","submit_external","start_intent","start_execution","complete_stage","submit_intent_review","complete_intent","approve"]),L1n=O.object({label:O.string(),kind:M1n}).describe("Server-computed Approve button label + kind. The SPA renders `label` verbatim so the button reflects the next consequence (e.g. 'Complete Development Stage', 'Open Development Pull Request', 'Mark Intent Done')."),D1n=O.object({url:O.string(),source:O.enum(["github-pr-ref","gitlab-mr-ref"]),prNumber:O.number().int().positive(),matchedSha:O.string()}).describe("PR/MR auto-discovered via raw git from a published head ref"),U1n=O.object({session_id:O.string(),session_type:O.literal("review"),status:hL,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:yL.optional(),units:O.array(yL).optional(),criteria:O.array(yL).optional(),mermaid:O.string().optional(),intent_mockups:O.array(yL).optional(),unit_mockups:O.record(O.array(yL)).optional(),stage_states:O.record(k1n).optional(),stage_summaries:O.record(O.string()).optional(),stage_briefs:O.record(O.string()).optional(),stage_observations:O.record(O.string()).optional(),stage_elaborations:O.record(O.string()).optional(),reflection:O.string().optional(),stage_milestones:O.record(O.array(dut)).optional(),current_state:C1n.optional(),knowledge_files:O.array(I1n).optional(),stage_artifacts:O.array(x1n).optional(),output_artifacts:O.array(ffe).optional(),other_files:O.array(ffe).optional(),intent_other_files:O.array(ffe).optional(),unit_outputs:O.record(O.array(O1n)).optional(),output_declared_by:O.record(O.array(O.string())).optional(),previous_review:P1n.optional(),drift:O.array(N1n).optional(),discovered_review_url:D1n.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:L1n.optional(),await_active:O.boolean().optional(),await_count:O.number().int().nonnegative().optional(),pending_decision:O.object({decision:O.string(),feedback:O.string(),submitted_at:O.string()}).optional(),last_await_started_at:O.string().optional(),last_await_ended_at:O.string().optional()}).describe("Review session payload (GET /api/session/:id, session_type=review)"),F1n=O.object({question:O.string(),header:O.string().optional(),options:O.array(O.string()),multiSelect:O.boolean().optional()}).describe("A single question in a multi-question session"),j1n=O.object({question:O.string(),selectedOptions:O.array(O.string()),otherText:O.string().optional()}),H1n=O.object({session_id:O.string(),session_type:O.literal("question"),status:hL,title:O.string().optional(),context:O.string().optional(),questions:O.array(F1n).optional(),answers:O.array(j1n).optional(),image_urls:O.array(O.string()).optional()}).describe("Question session payload (GET /api/session/:id, session_type=question)"),q1n=O.object({name:O.string(),description:O.string(),preview_html:O.string()}),B1n=O.object({archetype:O.string(),comments:O.string().optional(),annotations:O.object({pins:O.array(O.object({x:O.number(),y:O.number(),text:O.string()})).optional(),screenshots:O.array(O.object({comment:O.string(),screenshot_data_url:O.string()})).optional()}).optional()}).describe("Saved direction selection (nullable on the session)"),G1n=O.object({session_id:O.string(),session_type:O.literal("design_direction"),status:hL,title:O.string().optional(),intent_slug:O.string().optional(),context:O.string().optional(),archetypes:O.array(q1n).optional(),selection:B1n.nullable().optional()}).describe("Design-direction session payload (GET /api/session/:id, session_type=design_direction)"),z1n=O.enum(["studio","mode","stage","confirm","url_input"]),V1n=O.object({id:O.string(),label:O.string(),description:O.string().optional(),secondary:O.boolean().optional()}).describe("One option in a picker session \u2014 id is the canonical value the wire echoes back, label/description are display-only. `secondary` options are hidden behind a 'Show all\u2026' expansion (studio picker shortlist)."),W1n=O.object({id:O.string()}).describe("Saved picker selection (nullable on the session)"),K1n=O.object({session_id:O.string(),session_type:O.literal("picker"),status:hL,intent_slug:O.string().optional(),kind:z1n,title:O.string(),prompt:O.string(),options:O.array(V1n),selection:W1n.nullable().optional()}).describe("Picker session payload (GET /api/session/:id, session_type=picker) \u2014 engine-side blocking selection for studio/mode/stage and destructive-confirm"),Z1n=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"),Y1n=O.object({ok:O.literal(!0),id:O.string()}).describe("Success response from POST /picker/:sessionId/select"),J1n=O.object({session_id:O.string(),session_type:O.literal("view"),status:O.enum(["open","closed"]),intent_slug:O.string(),studio:O.string().optional(),stage:O.string().optional(),artifact:O.string().optional(),mode:O.enum(["viewer","boot"]),boot_port:O.number().int().positive().optional(),boot_command:O.string().optional()}).describe("View session payload (GET /api/session/:id, session_type=view). Opened by haiku_view, closed by haiku_view_close."),X1n=O.discriminatedUnion("session_type",[U1n,H1n,G1n,K1n,J1n]).describe("GET /api/session/:id response body \u2014 discriminated on session_type"),Q1n=O.object({pending:O.number().int().nonnegative(),addressed:O.number().int().nonnegative(),closed:O.number().int().nonnegative(),rejected:O.number().int().nonnegative()}).describe("Per-status counts of feedback items for the active stage."),$1n=O.object({name:O.string(),status:O.string(),phase:O.string().optional(),iteration:O.number().optional(),iterations:O.array(O.unknown()).optional(),visits:O.number().optional()}),eUn=O.object({slug:O.string(),title:O.string(),status:O.string()}),wZr=O.object({intent:O.string(),stage:O.string().nullable(),phase:O.string().optional(),units:O.array(eUn),feedback_summary:Q1n,stages:O.array($1n)}).describe("GET /api/review/current response body"),tUn=O.object({}).describe("HEAD /api/session/:id/heartbeat \u2014 no body. 200 if session exists, 404 otherwise.")});var hfe=v(()=>{"use strict";Xde();dg();rfe();afe();w4();dfe();pfe()});var mfe=v(()=>{"use strict"});var fut=v(()=>{"use strict";Hie();hfe();mfe()});function oUn(e){return!(e.includes("\0")||iUn.test(e)||e.startsWith("/")||e.startsWith("\\")||sUn.test(e)||e==="."||e.split(/[\\/]+/).some(n=>n===".."))}var iUn,sUn,put,BZr,hut=v(()=>{"use strict";bl();iUn=/%(?:00|2e|2f|5c)/i,sUn=/^[A-Za-z]:/;put=O.object({sessionId:O.string().min(1).describe("Session ID (UUID issued by sessions.createSession)"),path:O.string().min(1).refine(oUn,{message:"path must be a safe relative path \u2014 no '..' segments, absolute paths, null bytes, or URL-encoded variants (%00, %2e, %2f, %5c)"}).describe("Relative path under the session's serving root")}).describe("Path parameters for /files/:sessionId/*path and aliases"),BZr=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 mut,aUn,cUn,uUn,lUn,gut,yut,dUn,fUn,pUn,hUn,mUn,gUn,yUn,SUn,EUn,bUn,_Un,TUn,KZr,Sut=v(()=>{"use strict";bl();dg();w4();mut=65536,aUn=O.object({type:O.literal("decide"),decision:O.string().max(32),feedback:O.string().max(1e4).optional(),annotations:oI.optional()}).describe("Review decision frame (session_type=review)"),cUn=O.object({type:O.literal("answer"),answers:O.array(cfe),feedback:O.string().max(1e4).optional(),annotations:A4.optional()}).describe("Question answer frame (session_type=question)"),uUn=O.object({type:O.literal("select"),mode:O.enum(["select","regenerate"]),archetype:O.string().max(64).optional(),keep:O.array(O.string().max(64)).max(50).optional(),comments:O.string().max(1e4).optional(),annotations:O.object({pins:O.array(O.object({x:O.number(),y:O.number(),text:O.string().max(1e3)})).optional()}).optional()}).describe("Design-direction frame (session_type=design_direction) \u2014 mode='select' finalizes a choice, mode='regenerate' asks the agent for more variants"),lUn=O.object({type:O.literal("heartbeat"),t:O.number().optional()}).describe("Client liveness heartbeat (any session_type). Sent every 30s over the long-lived WS; the server records presence and replies heartbeat_ack."),gut=(e,t)=>{let n=JSON.stringify(e).length;n>mut&&t.addIssue({code:O.ZodIssueCode.custom,message:`Serialized frame size ${n} exceeds ${mut} bytes`,path:[]})},yut=O.discriminatedUnion("type",[aUn,cUn,uUn,lUn]).superRefine(gut).describe("Any client -> server WebSocket envelope"),dUn=O.object({type:O.literal("ack"),ok:O.literal(!0),decision:O.string().max(32).optional(),feedback:O.string().max(1e4).optional()}).describe("Server acknowledgement frame. Shape aligns with the payload sendToWebSocket emits after a successful client message."),fUn=O.object({type:O.literal("error"),error:O.string().max(500)}).describe("Server error frame"),pUn=O.object({type:O.literal("heartbeat_ack"),t:O.number().optional()}).describe("Server heartbeat acknowledgement \u2014 presence was recorded; the connection is still seen as live."),hUn=O.object({type:O.literal("session-update"),session_id:O.string().max(64),status:O.string().max(32),decision:O.string().max(32).optional(),feedback:O.string().max(1e4).optional()}).describe("Server broadcast when a session's durable status changes (review decided, question answered, direction selected)."),mUn=O.object({type:O.literal("tick_committed"),action:O.string().max(64),phase:O.string().max(64).optional(),stage:O.string().max(64).optional(),iteration:O.number().int().nonnegative().optional()}),gUn=O.object({type:O.literal("unit_changed"),unit_name:O.string().max(128),status:O.string().max(32),stage:O.string().max(64).optional(),hat:O.string().max(64).optional()}),yUn=O.object({type:O.literal("feedback_changed"),feedback_id:O.string().max(64),status:O.string().max(32),stage:O.string().max(64).optional()}),SUn=O.object({type:O.literal("gate_prepared"),session_id:O.string().max(64),stage:O.string().max(64),gate_context:O.string().max(64),review_url:O.string().max(2048),browser_attached:O.boolean()}),EUn=O.object({type:O.literal("await_state_changed"),session_id:O.string().max(64),await_active:O.boolean()}),bUn=O.object({type:O.literal("pending_decision_changed"),session_id:O.string().max(64),queued:O.boolean()}),_Un=O.discriminatedUnion("type",[mUn,gUn,yUn,SUn,EUn,bUn]),TUn=O.object({type:O.literal("intent-event"),session_id:O.string().max(64),event:_Un}).describe("Server broadcast \u2014 a per-intent live-state event for any SPA tab subscribed to this intent's channel."),KZr=O.discriminatedUnion("type",[dUn,fUn,pUn,hUn,TUn]).superRefine(gut).describe("Any server -> client WebSocket envelope")});var _T=v(()=>{"use strict";fut();hfe();Xde();Qde();dg();rfe();afe();hut();w4();dfe();pfe();Sut();mfe()});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}=Eut(t[1]);return r.length===0?{text:e,removed:[]}:{text:`--- +${n}`),t.destroy(e)}function fut(e){if(typeof e!="function")throw new uut(typeof e);if(e.constructor.name==="AsyncFunction")throw new uut("AsyncFunction")}vD.exports=sfe;vD.exports.errorCodes=TT;vD.exports.fastify=sfe;vD.exports.default=sfe});var _l=v(()=>{tre();tre()});var b1n,ofe=v(()=>{"use strict";_l();b1n=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 E1n,_1n,afe=v(()=>{"use strict";_l();E1n=O.enum(["loopback","token"]).describe("Transport invariant \u2014 routes declare 'loopback' (v1 runtime policy) or 'token' (reserved for future bearer-token routes)."),_1n=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 gut,cfe,yut,RD,PK,Sut,but,ufe,Eut,pI,T1n,v1n,NK,VYr,AD,R1n,WYr,wD,CK,kD,lfe,pg=v(()=>{"use strict";_l();afe();gut=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."),cfe=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)."),yut=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."),RD=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."),PK=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."),Sut=O.object({author:O.string().min(1).max(200).describe("Free-form author handle ('user', agent name)."),author_type:gut,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"),but=gut,ufe=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"),Eut=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"),pI=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(ufe).optional(),comments:O.array(Eut).optional()}).describe("Annotations attached to a review decision"),T1n=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"),v1n=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"),NK=O.object({comments:O.array(Eut).optional(),pins:O.array(T1n).optional(),screenshots:O.array(v1n).max(20).optional()}).describe("Annotations attached to a question answer"),VYr=O.enum(["review","question","design_direction"]).describe("Session type discriminator"),AD=O.enum(["pending","decided","answered","approved","changes_requested"]).describe("Runtime status across review | question | design_direction sessions."),R1n=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."),WYr=O.object({error:O.literal("validation_failed"),issues:O.array(R1n)}).describe("Uniform 400 response for request-body validation failure (malformed JSON, schema mismatch, oversize)"),wD=1048576,CK=131072,kD=8388608,lfe=33554432});var A1n,w1n,k1n,I1n,x1n,O1n,P1n,dfe,N1n,ffe=v(()=>{"use strict";_l();pg();A1n=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"),w1n=O.object({pins:O.array(ufe).optional(),screenshots:O.array(A1n).max(20).optional()}).describe("Annotations attached to a design-direction selection"),k1n=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:w1n.optional()}).describe("Final selection \u2014 user picked one archetype"),I1n=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"),x1n=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"),O1n=O.object({mode:O.literal("upload"),files:O.array(x1n).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"),P1n=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"),dfe=O.discriminatedUnion("mode",[k1n,I1n,O1n,P1n]).describe("POST /direction/:sessionId/select request body"),N1n=O.object({ok:O.literal(!0)}).describe("POST /direction/:sessionId/select response body")});var _ut,C1n,M1n,D1n,L1n,pfe,U1n,hfe,F1n,j1n,mfe,H1n,gfe=v(()=>{"use strict";_l();pg();_ut=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"),C1n=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:RD,origin:cfe,severity:yut.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:but,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:PK.nullable().optional().describe("Routing hint for the feedback resolver. null/unset = router defaults to stage_revisit."),replies:O.array(Sut).optional().describe("Thread of replies on this feedback item. Empty / missing = no replies yet."),inline_anchor:_ut.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"),M1n=O.object({intent:O.string(),stage:O.string(),count:O.number().int().nonnegative(),items:O.array(C1n)}).describe("GET /api/feedback/:intent/:stage response body"),D1n=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"),L1n=6e6,pfe=O.object({title:O.string().min(1).max(200),body:O.string().min(1).max(1e4),origin:cfe.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:D1n.optional(),inline_anchor:_ut.optional(),resolution:PK.optional().describe("Author's preferred resolution path. Router defaults to stage_revisit when omitted."),attachment_data_url:O.string().max(L1n).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"),U1n=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"),hfe=O.object({status:RD.optional(),closed_by:O.string().max(200).optional(),resolution:PK.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"),F1n=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"),j1n=O.object({feedback_id:O.string(),deleted:O.literal(!0),message:O.string()}).describe("DELETE /api/feedback/:intent/:stage/:id response body"),mfe=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"),H1n=O.object({feedback_id:O.string(),reply_index:O.number().int().nonnegative().describe("Zero-based index of the new reply inside replies[]."),status:RD,message:O.string()}).describe("POST /api/feedback/:intent/:stage/:id/replies response body")});var yfe,Sfe,q1n,MK=v(()=>{"use strict";_l();pg();yfe=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"),Sfe=O.object({answers:O.array(yfe).max(50),feedback:O.string().max(1e4).optional(),annotations:NK.optional()}).describe("POST /question/:sessionId/answer request body"),q1n=O.object({ok:O.literal(!0)}).describe("POST /question/:sessionId/answer response body")});var B1n,bfe,z1n,Efe=v(()=>{"use strict";_l();pg();B1n=O.enum(["approved","changes_requested"]).describe("Canonical review decision. Anything != approved is coerced to changes_requested server-side."),bfe=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:pI.optional()}).describe("POST /review/:sessionId/decide request body"),z1n=O.object({ok:O.literal(!0),decision:B1n,feedback:O.string()}).describe("POST /review/:sessionId/decide response body")});var ID,uZr,G1n,V1n,W1n,_fe,K1n,Y1n,Z1n,Tut,J1n,X1n,Q1n,$1n,eUn,tUn,nUn,rUn,iUn,sUn,oUn,aUn,cUn,uUn,lUn,dUn,fUn,pUn,hUn,mUn,gUn,yUn,lZr,SUn,Tfe=v(()=>{"use strict";_l();pg();ID=O.record(O.unknown()).describe("Opaque parsed artifact (ParsedIntent / ParsedUnit / CriterionItem / etc.)"),uZr=O.enum(["auto","ask","external","await"]).describe("Review-gate type declared in STAGE.md"),G1n=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."),V1n=O.object({name:O.string(),content:O.string()}),W1n=O.object({stage:O.string(),name:O.string(),content:O.string()}),_fe=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()}),K1n=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()}),Y1n=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."),Z1n=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."),Tut=O.object({key:O.string(),label:O.string(),status:O.enum(["done","active","pending"])}).describe("One milestone in the granular per-stage progress track"),J1n=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(Tut).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?'."),X1n=O.enum(["ad_hoc_done","open_pr","submit_external","start_intent","start_execution","complete_stage","submit_intent_review","complete_intent","approve"]),Q1n=O.object({label:O.string(),kind:X1n}).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')."),$1n=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"),eUn=O.object({session_id:O.string(),session_type:O.literal("review"),status:AD,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:pI.optional(),intent:ID.optional(),units:O.array(ID).optional(),criteria:O.array(ID).optional(),mermaid:O.string().optional(),intent_mockups:O.array(ID).optional(),unit_mockups:O.record(O.array(ID)).optional(),stage_states:O.record(G1n).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(Tut)).optional(),current_state:J1n.optional(),knowledge_files:O.array(V1n).optional(),stage_artifacts:O.array(W1n).optional(),output_artifacts:O.array(_fe).optional(),other_files:O.array(_fe).optional(),intent_other_files:O.array(_fe).optional(),unit_outputs:O.record(O.array(K1n)).optional(),output_declared_by:O.record(O.array(O.string())).optional(),previous_review:Z1n.optional(),drift:O.array(Y1n).optional(),discovered_review_url:$1n.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:Q1n.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)"),tUn=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"),nUn=O.object({question:O.string(),selectedOptions:O.array(O.string()),otherText:O.string().optional()}),rUn=O.object({session_id:O.string(),session_type:O.literal("question"),status:AD,title:O.string().optional(),context:O.string().optional(),questions:O.array(tUn).optional(),answers:O.array(nUn).optional(),image_urls:O.array(O.string()).optional()}).describe("Question session payload (GET /api/session/:id, session_type=question)"),iUn=O.object({name:O.string(),description:O.string(),preview_html:O.string()}),sUn=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)"),oUn=O.object({session_id:O.string(),session_type:O.literal("design_direction"),status:AD,title:O.string().optional(),intent_slug:O.string().optional(),context:O.string().optional(),archetypes:O.array(iUn).optional(),selection:sUn.nullable().optional()}).describe("Design-direction session payload (GET /api/session/:id, session_type=design_direction)"),aUn=O.enum(["studio","mode","stage","confirm","url_input"]),cUn=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)."),uUn=O.object({id:O.string()}).describe("Saved picker selection (nullable on the session)"),lUn=O.object({session_id:O.string(),session_type:O.literal("picker"),status:AD,intent_slug:O.string().optional(),kind:aUn,title:O.string(),prompt:O.string(),options:O.array(cUn),selection:uUn.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"),dUn=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"),fUn=O.object({ok:O.literal(!0),id:O.string()}).describe("Success response from POST /picker/:sessionId/select"),pUn=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."),hUn=O.discriminatedUnion("session_type",[eUn,rUn,oUn,lUn,pUn]).describe("GET /api/session/:id response body \u2014 discriminated on session_type"),mUn=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."),gUn=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()}),yUn=O.object({slug:O.string(),title:O.string(),status:O.string()}),lZr=O.object({intent:O.string(),stage:O.string().nullable(),phase:O.string().optional(),units:O.array(yUn),feedback_summary:mUn,stages:O.array(gUn)}).describe("GET /api/review/current response body"),SUn=O.object({}).describe("HEAD /api/session/:id/heartbeat \u2014 no body. 200 if session exists, 404 otherwise.")});var vfe=v(()=>{"use strict";ofe();pg();ffe();gfe();MK();Efe();Tfe()});var Rfe=v(()=>{"use strict"});var vut=v(()=>{"use strict";Zie();vfe();Rfe()});function vUn(e){return!(e.includes("\0")||_Un.test(e)||e.startsWith("/")||e.startsWith("\\")||TUn.test(e)||e==="."||e.split(/[\\/]+/).some(n=>n===".."))}var _Un,TUn,Rut,wZr,Aut=v(()=>{"use strict";_l();_Un=/%(?:00|2e|2f|5c)/i,TUn=/^[A-Za-z]:/;Rut=O.object({sessionId:O.string().min(1).describe("Session ID (UUID issued by sessions.createSession)"),path:O.string().min(1).refine(vUn,{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"),wZr=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 wut,RUn,AUn,wUn,kUn,kut,Iut,IUn,xUn,OUn,PUn,NUn,CUn,MUn,DUn,LUn,UUn,FUn,jUn,PZr,xut=v(()=>{"use strict";_l();pg();MK();wut=65536,RUn=O.object({type:O.literal("decide"),decision:O.string().max(32),feedback:O.string().max(1e4).optional(),annotations:pI.optional()}).describe("Review decision frame (session_type=review)"),AUn=O.object({type:O.literal("answer"),answers:O.array(yfe),feedback:O.string().max(1e4).optional(),annotations:NK.optional()}).describe("Question answer frame (session_type=question)"),wUn=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"),kUn=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."),kut=(e,t)=>{let n=JSON.stringify(e).length;n>wut&&t.addIssue({code:O.ZodIssueCode.custom,message:`Serialized frame size ${n} exceeds ${wut} bytes`,path:[]})},Iut=O.discriminatedUnion("type",[RUn,AUn,wUn,kUn]).superRefine(kut).describe("Any client -> server WebSocket envelope"),IUn=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."),xUn=O.object({type:O.literal("error"),error:O.string().max(500)}).describe("Server error frame"),OUn=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."),PUn=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)."),NUn=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()}),CUn=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()}),MUn=O.object({type:O.literal("feedback_changed"),feedback_id:O.string().max(64),status:O.string().max(32),stage:O.string().max(64).optional()}),DUn=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()}),LUn=O.object({type:O.literal("await_state_changed"),session_id:O.string().max(64),await_active:O.boolean()}),UUn=O.object({type:O.literal("pending_decision_changed"),session_id:O.string().max(64),queued:O.boolean()}),FUn=O.discriminatedUnion("type",[NUn,CUn,MUn,DUn,LUn,UUn]),jUn=O.object({type:O.literal("intent-event"),session_id:O.string().max(64),event:FUn}).describe("Server broadcast \u2014 a per-intent live-state event for any SPA tab subscribed to this intent's channel."),PZr=O.discriminatedUnion("type",[IUn,xUn,OUn,PUn,jUn]).superRefine(kut).describe("Any server -> client WebSocket envelope")});var vT=v(()=>{"use strict";vut();vfe();ofe();afe();pg();ffe();gfe();Aut();MK();Efe();Tfe();xut();Rfe()});function hg(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}=Out(t[1]);return r.length===0?{text:e,removed:[]}:{text:`--- ${n} ----${t[2]??""}`,removed:r}}function Eut(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 EL=w((mYr,_ut)=>{var vUn=Object.prototype.toString;_ut.exports=function(t){if(t===void 0)return"undefined";if(t===null)return"null";var n=typeof t;if(n==="boolean")return"boolean";if(n==="string")return"string";if(n==="number")return"number";if(n==="symbol")return"symbol";if(n==="function")return IUn(t)?"generatorfunction":"function";if(AUn(t))return"array";if(NUn(t))return"buffer";if(OUn(t))return"arguments";if(wUn(t))return"date";if(RUn(t))return"error";if(kUn(t))return"regexp";switch(but(t)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(xUn(t))return"generator";switch(n=vUn.call(t),n){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return n.slice(8,-1).toLowerCase().replace(/\s/g,"")};function but(e){return typeof e.constructor=="function"?e.constructor.name:null}function AUn(e){return Array.isArray?Array.isArray(e):e instanceof Array}function RUn(e){return e instanceof Error||typeof e.message=="string"&&e.constructor&&typeof e.constructor.stackTraceLimit=="number"}function wUn(e){return e instanceof Date?!0:typeof e.toDateString=="function"&&typeof e.getDate=="function"&&typeof e.setDate=="function"}function kUn(e){return e instanceof RegExp?!0:typeof e.flags=="string"&&typeof e.ignoreCase=="boolean"&&typeof e.multiline=="boolean"&&typeof e.global=="boolean"}function IUn(e,t){return but(e)==="GeneratorFunction"}function xUn(e){return typeof e.throw=="function"&&typeof e.return=="function"&&typeof e.next=="function"}function OUn(e){try{if(typeof e.length=="number"&&typeof e.callee=="function")return!0}catch(t){if(t.message.indexOf("callee")!==-1)return!0}return!1}function NUn(e){return e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}});var vut=w((gYr,Tut)=>{"use strict";Tut.exports=function(t){return typeof t<"u"&&t!==null&&(typeof t=="object"||typeof t=="function")}});var wut=w((yYr,Rut)=>{"use strict";var Aut=vut();Rut.exports=function(t){Aut(t)||(t={});for(var n=arguments.length,r=1;r{"use strict";var MUn=EL(),LUn=wut();Iut.exports=function(e,t){typeof t=="function"&&(t={parse:t});var n=UUn(e),r={section_delimiter:"---",parse:jUn},i=LUn({},r,t),s=i.section_delimiter,o=n.content.split(/\r?\n/),a=null,c=kut(),u=[],l=[];function d(g){n.content=g,a=[],u=[]}function f(g){l.length&&(c.key=FUn(l[0],s),c.content=g,i.parse(c,a),a.push(c),c=kut(),u=[],l=[])}for(var p=0;p1&&o.push(c);let a=[];for(let c=0;c{});var OD=w(($Zr,Nut)=>{var HUn=Object.prototype.toString;Nut.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 VUn(t)?"generatorfunction":"function";if(qUn(t))return"array";if(YUn(t))return"buffer";if(KUn(t))return"arguments";if(zUn(t))return"date";if(BUn(t))return"error";if(GUn(t))return"regexp";switch(Put(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(WUn(t))return"generator";switch(n=HUn.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 Put(e){return typeof e.constructor=="function"?e.constructor.name:null}function qUn(e){return Array.isArray?Array.isArray(e):e instanceof Array}function BUn(e){return e instanceof Error||typeof e.message=="string"&&e.constructor&&typeof e.constructor.stackTraceLimit=="number"}function zUn(e){return e instanceof Date?!0:typeof e.toDateString=="function"&&typeof e.getDate=="function"&&typeof e.setDate=="function"}function GUn(e){return e instanceof RegExp?!0:typeof e.flags=="string"&&typeof e.ignoreCase=="boolean"&&typeof e.multiline=="boolean"&&typeof e.global=="boolean"}function VUn(e,t){return Put(e)==="GeneratorFunction"}function WUn(e){return typeof e.throw=="function"&&typeof e.return=="function"&&typeof e.next=="function"}function KUn(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 YUn(e){return e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}});var Mut=w((e6r,Cut)=>{"use strict";Cut.exports=function(t){return typeof t<"u"&&t!==null&&(typeof t=="object"||typeof t=="function")}});var Uut=w((t6r,Lut)=>{"use strict";var Dut=Mut();Lut.exports=function(t){Dut(t)||(t={});for(var n=arguments.length,r=1;r{"use strict";var XUn=OD(),QUn=Uut();jut.exports=function(e,t){typeof t=="function"&&(t={parse:t});var n=eFn(e),r={section_delimiter:"---",parse:nFn},i=QUn({},r,t),s=i.section_delimiter,o=n.content.split(/\r?\n/),a=null,c=Fut(),u=[],l=[];function d(y){n.content=y,a=[],u=[]}function f(y){l.length&&(c.key=tFn(l[0],s),c.content=y,i.parse(c,a),a.push(c),c=Fut(),u=[],l=[])}for(var p=0;p{"use strict";function Out(e){return typeof e>"u"||e===null}function qUn(e){return typeof e=="object"&&e!==null}function BUn(e){return Array.isArray(e)?e:Out(e)?[]:[e]}function GUn(e,t){var n,r,i,s;if(t)for(s=Object.keys(t),n=0,r=s.length;n{"use strict";function bL(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||""}bL.prototype=Object.create(Error.prototype);bL.prototype.constructor=bL;bL.prototype.toString=function(t){var n=this.name+": ";return n+=this.reason||"(unknown reason)",!t&&this.mark&&(n+=" "+this.mark.toString()),n};Nut.exports=bL});var Mut=w((_Yr,Cut)=>{"use strict";var Put=vT();function gfe(e,t,n,r,i){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=i}gfe.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 $Un(e,t){return!(e.slice(0,t.length)!==t||e.charAt(t.length+1)===t.slice(-1))}function eFn(e){if(XUn(e)!=="object"&&(e={content:e}),typeof e.content!="string"&&!rFn(e.content))throw new TypeError("expected a buffer or string");return e.content=e.content.toString(),e.sections=[],e}function tFn(e,t){return e?e.slice(t.length).trim():""}function Fut(){return{key:"",data:"",content:""}}function nFn(e){return e}function rFn(e){return e&&e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}});var AT=w((r6r,RT)=>{"use strict";function qut(e){return typeof e>"u"||e===null}function iFn(e){return typeof e=="object"&&e!==null}function sFn(e){return Array.isArray(e)?e:qut(e)?[]:[e]}function oFn(e,t){var n,r,i,s;if(t)for(s=Object.keys(t),n=0,r=s.length;n{"use strict";function PD(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||""}PD.prototype=Object.create(Error.prototype);PD.prototype.constructor=PD;PD.prototype.toString=function(t){var n=this.name+": ";return n+=this.reason||"(unknown reason)",!t&&this.mark&&(n+=" "+this.mark.toString()),n};But.exports=PD});var Vut=w((s6r,Gut)=>{"use strict";var zut=AT();function Afe(e,t,n,r,i){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=i}Afe.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),Put.repeat(" ",t)+r+a+s+` -`+Put.repeat(" ",t+this.position-i+r.length)+"^"};gfe.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};Cut.exports=gfe});var To=w((TYr,Dut)=>{"use strict";var Lut=cI(),WUn=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],KUn=["scalar","sequence","mapping"];function ZUn(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(r){t[String(r)]=n})}),t}function YUn(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(WUn.indexOf(n)===-1)throw new Lut('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=ZUn(t.styleAliases||null),KUn.indexOf(this.kind)===-1)throw new Lut('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}Dut.exports=YUn});var AT=w((vYr,Fut)=>{"use strict";var Uut=vT(),k4=cI(),JUn=To();function yfe(e,t,n){var r=[];return e.include.forEach(function(i){n=yfe(i,t,n)}),e[t].forEach(function(i){n.forEach(function(s,o){s.tag===i.tag&&s.kind===i.kind&&r.push(o)}),n.push(i)}),n.filter(function(i,s){return r.indexOf(s)===-1})}function XUn(){var e={scalar:{},sequence:{},mapping:{},fallback:{}},t,n;function r(i){e[i.kind][i.tag]=e.fallback[i.tag]=i}for(t=0,n=arguments.length;t{"use strict";var QUn=To();jut.exports=new QUn("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var But=w((RYr,qut)=>{"use strict";var $Un=To();qut.exports=new $Un("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var zut=w((wYr,Gut)=>{"use strict";var eFn=To();Gut.exports=new eFn("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var I4=w((kYr,Vut)=>{"use strict";var tFn=AT();Vut.exports=new tFn({explicit:[Hut(),But(),zut()]})});var Kut=w((IYr,Wut)=>{"use strict";var nFn=To();function rFn(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function iFn(){return null}function sFn(e){return e===null}Wut.exports=new nFn("tag:yaml.org,2002:null",{kind:"scalar",resolve:rFn,construct:iFn,predicate:sFn,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var Yut=w((xYr,Zut)=>{"use strict";var oFn=To();function aFn(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function cFn(e){return e==="true"||e==="True"||e==="TRUE"}function uFn(e){return Object.prototype.toString.call(e)==="[object Boolean]"}Zut.exports=new oFn("tag:yaml.org,2002:bool",{kind:"scalar",resolve:aFn,construct:cFn,predicate:uFn,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})});var Xut=w((OYr,Jut)=>{"use strict";var lFn=vT(),dFn=To();function fFn(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function pFn(e){return 48<=e&&e<=55}function hFn(e){return 48<=e&&e<=57}function mFn(e){if(e===null)return!1;var t=e.length,n=0,r=!1,i;if(!t)return!1;if(i=e[n],(i==="-"||i==="+")&&(i=e[++n]),i==="0"){if(n+1===t)return!0;if(i=e[++n],i==="b"){for(n++;n=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var elt=w((NYr,$ut)=>{"use strict";var Qut=vT(),SFn=To(),EFn=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function bFn(e){return!(e===null||!EFn.test(e)||e[e.length-1]==="_")}function _Fn(e){var t,n,r,i;return t=e.replace(/_/g,"").toLowerCase(),n=t[0]==="-"?-1:1,i=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?n===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(s){i.unshift(parseFloat(s,10))}),t=0,r=1,i.forEach(function(s){t+=s*r,r*=60}),n*t):n*parseFloat(t,10)}var TFn=/^[-+]?[0-9]+e/;function vFn(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Qut.isNegativeZero(e))return"-0.0";return n=e.toString(10),TFn.test(n)?n.replace("e",".e"):n}function AFn(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||Qut.isNegativeZero(e))}$ut.exports=new SFn("tag:yaml.org,2002:float",{kind:"scalar",resolve:bFn,construct:_Fn,predicate:AFn,represent:vFn,defaultStyle:"lowercase"})});var Sfe=w((PYr,tlt)=>{"use strict";var RFn=AT();tlt.exports=new RFn({include:[I4()],implicit:[Kut(),Yut(),Xut(),elt()]})});var Efe=w((CYr,nlt)=>{"use strict";var wFn=AT();nlt.exports=new wFn({include:[Sfe()]})});var olt=w((MYr,slt)=>{"use strict";var kFn=To(),rlt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),ilt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function IFn(e){return e===null?!1:rlt.exec(e)!==null||ilt.exec(e)!==null}function xFn(e){var t,n,r,i,s,o,a,c=0,u=null,l,d,f;if(t=rlt.exec(e),t===null&&(t=ilt.exec(e)),t===null)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,r,i));if(s=+t[4],o=+t[5],a=+t[6],t[7]){for(c=t[7].slice(0,3);c.length<3;)c+="0";c=+c}return t[9]&&(l=+t[10],d=+(t[11]||0),u=(l*60+d)*6e4,t[9]==="-"&&(u=-u)),f=new Date(Date.UTC(n,r,i,s,o,a,c)),u&&f.setTime(f.getTime()-u),f}function OFn(e){return e.toISOString()}slt.exports=new kFn("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:IFn,construct:xFn,instanceOf:Date,represent:OFn})});var clt=w((LYr,alt)=>{"use strict";var NFn=To();function PFn(e){return e==="<<"||e===null}alt.exports=new NFn("tag:yaml.org,2002:merge",{kind:"scalar",resolve:PFn})});var dlt=w((DYr,llt)=>{"use strict";var RT;try{ult=Z,RT=ult("buffer").Buffer}catch{}var ult,CFn=To(),bfe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function MFn(e){if(e===null)return!1;var t,n,r=0,i=e.length,s=bfe;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8===0}function LFn(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,s=bfe,o=0,a=[];for(t=0;t>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(r.charAt(t));return n=i%4*6,n===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):n===18?(a.push(o>>10&255),a.push(o>>2&255)):n===12&&a.push(o>>4&255),RT?RT.from?RT.from(a):new RT(a):a}function DFn(e){var t="",n=0,r,i,s=e.length,o=bfe;for(r=0;r>18&63],t+=o[n>>12&63],t+=o[n>>6&63],t+=o[n&63]),n=(n<<8)+e[r];return i=s%3,i===0?(t+=o[n>>18&63],t+=o[n>>12&63],t+=o[n>>6&63],t+=o[n&63]):i===2?(t+=o[n>>10&63],t+=o[n>>4&63],t+=o[n<<2&63],t+=o[64]):i===1&&(t+=o[n>>2&63],t+=o[n<<4&63],t+=o[64],t+=o[64]),t}function UFn(e){return RT&&RT.isBuffer(e)}llt.exports=new CFn("tag:yaml.org,2002:binary",{kind:"scalar",resolve:MFn,construct:LFn,predicate:UFn,represent:DFn})});var plt=w((FYr,flt)=>{"use strict";var FFn=To(),jFn=Object.prototype.hasOwnProperty,HFn=Object.prototype.toString;function qFn(e){if(e===null)return!0;var t=[],n,r,i,s,o,a=e;for(n=0,r=a.length;n{"use strict";var GFn=To(),zFn=Object.prototype.toString;function VFn(e){if(e===null)return!0;var t,n,r,i,s,o=e;for(s=new Array(o.length),t=0,n=o.length;t{"use strict";var KFn=To(),ZFn=Object.prototype.hasOwnProperty;function YFn(e){if(e===null)return!0;var t,n=e;for(t in n)if(ZFn.call(n,t)&&n[t]!==null)return!1;return!0}function JFn(e){return e!==null?e:{}}glt.exports=new KFn("tag:yaml.org,2002:set",{kind:"mapping",resolve:YFn,construct:JFn})});var lI=w((qYr,Slt)=>{"use strict";var XFn=AT();Slt.exports=new XFn({include:[Efe()],implicit:[olt(),clt()],explicit:[dlt(),plt(),mlt(),ylt()]})});var blt=w((BYr,Elt)=>{"use strict";var QFn=To();function $Fn(){return!0}function ejn(){}function tjn(){return""}function njn(e){return typeof e>"u"}Elt.exports=new QFn("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:$Fn,construct:ejn,predicate:njn,represent:tjn})});var Tlt=w((GYr,_lt)=>{"use strict";var rjn=To();function ijn(e){if(e===null||e.length===0)return!1;var t=e,n=/\/([gim]*)$/.exec(e),r="";return!(t[0]==="/"&&(n&&(r=n[1]),r.length>3||t[t.length-r.length-1]!=="/"))}function sjn(e){var t=e,n=/\/([gim]*)$/.exec(e),r="";return t[0]==="/"&&(n&&(r=n[1]),t=t.slice(1,t.length-r.length-1)),new RegExp(t,r)}function ojn(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function ajn(e){return Object.prototype.toString.call(e)==="[object RegExp]"}_lt.exports=new rjn("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ijn,construct:sjn,predicate:ajn,represent:ojn})});var Rlt=w((zYr,Alt)=>{"use strict";var x4;try{vlt=Z,x4=vlt("esprima")}catch{typeof window<"u"&&(x4=window.esprima)}var vlt,cjn=To();function ujn(e){if(e===null)return!1;try{var t="("+e+")",n=x4.parse(t,{range:!0});return!(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function ljn(e){var t="("+e+")",n=x4.parse(t,{range:!0}),r=[],i;if(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach(function(s){r.push(s.name)}),i=n.body[0].expression.body.range,n.body[0].expression.body.type==="BlockStatement"?new Function(r,t.slice(i[0]+1,i[1]-1)):new Function(r,"return "+t.slice(i[0],i[1]))}function djn(e){return e.toString()}function fjn(e){return Object.prototype.toString.call(e)==="[object Function]"}Alt.exports=new cjn("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:ujn,construct:ljn,predicate:fjn,represent:djn})});var _L=w((WYr,klt)=>{"use strict";var wlt=AT();klt.exports=wlt.DEFAULT=new wlt({include:[lI()],explicit:[blt(),Tlt(),Rlt()]})});var Klt=w((KYr,TL)=>{"use strict";var pg=vT(),Mlt=cI(),pjn=Mut(),Llt=lI(),hjn=_L(),uE=Object.prototype.hasOwnProperty,O4=1,Dlt=2,Ult=3,N4=4,_fe=1,mjn=2,Ilt=3,gjn=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,yjn=/[\x85\u2028\u2029]/,Sjn=/[,\[\]\{\}]/,Flt=/^(?:!|!!|![a-z\-]+!)$/i,jlt=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function xlt(e){return Object.prototype.toString.call(e)}function Oh(e){return e===10||e===13}function kT(e){return e===9||e===32}function Ou(e){return e===9||e===32||e===10||e===13}function dI(e){return e===44||e===91||e===93||e===123||e===125}function Ejn(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function bjn(e){return e===120?2:e===117?4:e===85?8:0}function _jn(e){return 48<=e&&e<=57?e-48:-1}function Olt(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?` -`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"\x85":e===95?"\xA0":e===76?"\u2028":e===80?"\u2029":""}function Tjn(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function Hlt(e,t,n){t==="__proto__"?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!0,value:n}):e[t]=n}var qlt=new Array(256),Blt=new Array(256);for(wT=0;wT<256;wT++)qlt[wT]=Olt(wT)?1:0,Blt[wT]=Olt(wT);var wT;function vjn(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||hjn,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function Glt(e,t){return new Mlt(t,new pjn(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Dt(e,t){throw Glt(e,t)}function P4(e,t){e.onWarning&&e.onWarning.call(null,Glt(e,t))}var Nlt={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&&P4(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],Flt.test(i)||Dt(t,"ill-formed tag handle (first argument) of the TAG directive"),uE.call(t.tagMap,i)&&Dt(t,'there is a previously declared suffix for "'+i+'" tag handle'),jlt.test(s)||Dt(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[i]=s}};function cE(e,t,n,r){var i,s,o,a;if(t1&&(e.result+=pg.repeat(` -`,t-1))}function Ajn(e,t,n){var r,i,s,o,a,c,u,l,d=e.kind,f=e.result,p;if(p=e.input.charCodeAt(e.position),Ou(p)||dI(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(i=e.input.charCodeAt(e.position+1),Ou(i)||n&&dI(i)))return!1;for(e.kind="scalar",e.result="",s=o=e.position,a=!1;p!==0;){if(p===58){if(i=e.input.charCodeAt(e.position+1),Ou(i)||n&&dI(i))break}else if(p===35){if(r=e.input.charCodeAt(e.position-1),Ou(r))break}else{if(e.position===e.lineStart&&C4(e)||n&&dI(p))break;if(Oh(p))if(c=e.line,u=e.lineStart,l=e.lineIndent,to(e,!1,-1),e.lineIndent>=t){a=!0,p=e.input.charCodeAt(e.position);continue}else{e.position=o,e.line=c,e.lineStart=u,e.lineIndent=l;break}}a&&(cE(e,s,o,!1),vfe(e,e.line-c),s=o=e.position,a=!1),kT(p)||(o=e.position+1),p=e.input.charCodeAt(++e.position)}return cE(e,s,o,!1),e.result?!0:(e.kind=d,e.result=f,!1)}function Rjn(e,t){var n,r,i;if(n=e.input.charCodeAt(e.position),n!==39)return!1;for(e.kind="scalar",e.result="",e.position++,r=i=e.position;(n=e.input.charCodeAt(e.position))!==0;)if(n===39)if(cE(e,r,e.position,!0),n=e.input.charCodeAt(++e.position),n===39)r=e.position,e.position++,i=e.position;else return!0;else Oh(n)?(cE(e,r,i,!0),vfe(e,to(e,!1,t)),r=i=e.position):e.position===e.lineStart&&C4(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 wjn(e,t){var n,r,i,s,o,a;if(a=e.input.charCodeAt(e.position),a!==34)return!1;for(e.kind="scalar",e.result="",e.position++,n=r=e.position;(a=e.input.charCodeAt(e.position))!==0;){if(a===34)return cE(e,n,e.position,!0),e.position++,!0;if(a===92){if(cE(e,n,e.position,!0),a=e.input.charCodeAt(++e.position),Oh(a))to(e,!1,t);else if(a<256&&qlt[a])e.result+=Blt[a],e.position++;else if((o=bjn(a))>0){for(i=o,s=0;i>0;i--)a=e.input.charCodeAt(++e.position),(o=Ejn(a))>=0?s=(s<<4)+o:Dt(e,"expected hexadecimal character");e.result+=Tjn(s),e.position++}else Dt(e,"unknown escape sequence");n=r=e.position}else Oh(a)?(cE(e,n,r,!0),vfe(e,to(e,!1,t)),n=r=e.position):e.position===e.lineStart&&C4(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 kjn(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),Ou(a)&&(u=l=!0,e.position++,to(e,!0,t))),r=e.line,pI(e,t,O4,!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,O4,!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 Ijn(e,t){var n,r,i=_fe,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)_fe===i?i=d===43?Ilt:mjn:Dt(e,"repeat of a chomping mode identifier");else if((l=_jn(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(kT(d)){do d=e.input.charCodeAt(++e.position);while(kT(d));if(d===35)do d=e.input.charCodeAt(++e.position);while(!Oh(d)&&d!==0)}for(;d!==0;){for(Tfe(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,N4,!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 Cjn(e){var t=e.position,n,r,i,s=!1,o;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};(o=e.input.charCodeAt(e.position))!==0&&(to(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||o!==37));){for(s=!0,o=e.input.charCodeAt(++e.position),n=e.position;o!==0&&!Ou(o);)o=e.input.charCodeAt(++e.position);for(r=e.input.slice(n,e.position),i=[],r.length<1&&Dt(e,"directive name must not be less than one character in length");o!==0;){for(;kT(o);)o=e.input.charCodeAt(++e.position);if(o===35){do o=e.input.charCodeAt(++e.position);while(o!==0&&!Oh(o));break}if(Oh(o))break;for(n=e.position;o!==0&&!Ou(o);)o=e.input.charCodeAt(++e.position);i.push(e.input.slice(n,e.position))}o!==0&&Tfe(e),uE.call(Nlt,r)?Nlt[r](e,r,i):P4(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,N4,!1,!0),to(e,!0,-1),e.checkLineBreaks&&yjn.test(e.input.slice(t,e.position))&&P4(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&C4(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=zlt(e,n);if(typeof t!="function")return r;for(var i=0,s=r.length;i"u"&&(n=t,t=null),Vlt(e,t,pg.extend({schema:Llt},n))}function Ljn(e,t){return Wlt(e,pg.extend({schema:Llt},t))}TL.exports.loadAll=Vlt;TL.exports.load=Wlt;TL.exports.safeLoadAll=Mjn;TL.exports.safeLoad=Ljn});var gdt=w((ZYr,kfe)=>{"use strict";var AL=vT(),RL=cI(),Djn=_L(),Ujn=lI(),tdt=Object.prototype.toString,ndt=Object.prototype.hasOwnProperty,Fjn=9,vL=10,jjn=13,Hjn=32,qjn=33,Bjn=34,rdt=35,Gjn=37,zjn=38,Vjn=39,Wjn=42,idt=44,Kjn=45,sdt=58,Zjn=61,Yjn=62,Jjn=63,Xjn=64,odt=91,adt=93,Qjn=96,cdt=123,$jn=124,udt=125,fc={};fc[0]="\\0";fc[7]="\\a";fc[8]="\\b";fc[9]="\\t";fc[10]="\\n";fc[11]="\\v";fc[12]="\\f";fc[13]="\\r";fc[27]="\\e";fc[34]='\\"';fc[92]="\\\\";fc[133]="\\N";fc[160]="\\_";fc[8232]="\\L";fc[8233]="\\P";var eHn=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function tHn(e,t){var n,r,i,s,o,a,c;if(t===null)return{};for(n={},r=Object.keys(t),i=0,s=r.length;in/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(i,o),zut.repeat(" ",t)+r+a+s+` +`+zut.repeat(" ",t+this.position-i+r.length)+"^"};Afe.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};Gut.exports=Afe});var To=w((o6r,Kut)=>{"use strict";var Wut=mI(),uFn=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],lFn=["scalar","sequence","mapping"];function dFn(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(r){t[String(r)]=n})}),t}function fFn(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(uFn.indexOf(n)===-1)throw new Wut('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=dFn(t.styleAliases||null),lFn.indexOf(this.kind)===-1)throw new Wut('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}Kut.exports=fFn});var wT=w((a6r,Zut)=>{"use strict";var Yut=AT(),DK=mI(),pFn=To();function wfe(e,t,n){var r=[];return e.include.forEach(function(i){n=wfe(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 hFn(){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 mFn=To();Jut.exports=new mFn("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var $ut=w((u6r,Qut)=>{"use strict";var gFn=To();Qut.exports=new gFn("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var tlt=w((l6r,elt)=>{"use strict";var yFn=To();elt.exports=new yFn("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var LK=w((d6r,nlt)=>{"use strict";var SFn=wT();nlt.exports=new SFn({explicit:[Xut(),$ut(),tlt()]})});var ilt=w((f6r,rlt)=>{"use strict";var bFn=To();function EFn(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function _Fn(){return null}function TFn(e){return e===null}rlt.exports=new bFn("tag:yaml.org,2002:null",{kind:"scalar",resolve:EFn,construct:_Fn,predicate:TFn,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var olt=w((p6r,slt)=>{"use strict";var vFn=To();function RFn(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 AFn(e){return e==="true"||e==="True"||e==="TRUE"}function wFn(e){return Object.prototype.toString.call(e)==="[object Boolean]"}slt.exports=new vFn("tag:yaml.org,2002:bool",{kind:"scalar",resolve:RFn,construct:AFn,predicate:wFn,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 clt=w((h6r,alt)=>{"use strict";var kFn=AT(),IFn=To();function xFn(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function OFn(e){return 48<=e&&e<=55}function PFn(e){return 48<=e&&e<=57}function NFn(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 dlt=w((m6r,llt)=>{"use strict";var ult=AT(),DFn=To(),LFn=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 UFn(e){return!(e===null||!LFn.test(e)||e[e.length-1]==="_")}function FFn(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 jFn=/^[-+]?[0-9]+e/;function HFn(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(ult.isNegativeZero(e))return"-0.0";return n=e.toString(10),jFn.test(n)?n.replace("e",".e"):n}function qFn(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||ult.isNegativeZero(e))}llt.exports=new DFn("tag:yaml.org,2002:float",{kind:"scalar",resolve:UFn,construct:FFn,predicate:qFn,represent:HFn,defaultStyle:"lowercase"})});var kfe=w((g6r,flt)=>{"use strict";var BFn=wT();flt.exports=new BFn({include:[LK()],implicit:[ilt(),olt(),clt(),dlt()]})});var Ife=w((y6r,plt)=>{"use strict";var zFn=wT();plt.exports=new zFn({include:[kfe()]})});var ylt=w((S6r,glt)=>{"use strict";var GFn=To(),hlt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),mlt=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 VFn(e){return e===null?!1:hlt.exec(e)!==null||mlt.exec(e)!==null}function WFn(e){var t,n,r,i,s,o,a,c=0,u=null,l,d,f;if(t=hlt.exec(e),t===null&&(t=mlt.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 KFn(e){return e.toISOString()}glt.exports=new GFn("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:VFn,construct:WFn,instanceOf:Date,represent:KFn})});var blt=w((b6r,Slt)=>{"use strict";var YFn=To();function ZFn(e){return e==="<<"||e===null}Slt.exports=new YFn("tag:yaml.org,2002:merge",{kind:"scalar",resolve:ZFn})});var Tlt=w((E6r,_lt)=>{"use strict";var kT;try{Elt=Y,kT=Elt("buffer").Buffer}catch{}var Elt,JFn=To(),xfe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function XFn(e){if(e===null)return!1;var t,n,r=0,i=e.length,s=xfe;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8===0}function QFn(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,s=xfe,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),kT?kT.from?kT.from(a):new kT(a):a}function $Fn(e){var t="",n=0,r,i,s=e.length,o=xfe;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 ejn(e){return kT&&kT.isBuffer(e)}_lt.exports=new JFn("tag:yaml.org,2002:binary",{kind:"scalar",resolve:XFn,construct:QFn,predicate:ejn,represent:$Fn})});var Rlt=w((T6r,vlt)=>{"use strict";var tjn=To(),njn=Object.prototype.hasOwnProperty,rjn=Object.prototype.toString;function ijn(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 ojn=To(),ajn=Object.prototype.toString;function cjn(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 ljn=To(),djn=Object.prototype.hasOwnProperty;function fjn(e){if(e===null)return!0;var t,n=e;for(t in n)if(djn.call(n,t)&&n[t]!==null)return!1;return!0}function pjn(e){return e!==null?e:{}}klt.exports=new ljn("tag:yaml.org,2002:set",{kind:"mapping",resolve:fjn,construct:pjn})});var yI=w((A6r,xlt)=>{"use strict";var hjn=wT();xlt.exports=new hjn({include:[Ife()],implicit:[ylt(),blt()],explicit:[Tlt(),Rlt(),wlt(),Ilt()]})});var Plt=w((w6r,Olt)=>{"use strict";var mjn=To();function gjn(){return!0}function yjn(){}function Sjn(){return""}function bjn(e){return typeof e>"u"}Olt.exports=new mjn("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:gjn,construct:yjn,predicate:bjn,represent:Sjn})});var Clt=w((k6r,Nlt)=>{"use strict";var Ejn=To();function _jn(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 Tjn(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 vjn(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function Rjn(e){return Object.prototype.toString.call(e)==="[object RegExp]"}Nlt.exports=new Ejn("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:_jn,construct:Tjn,predicate:Rjn,represent:vjn})});var Llt=w((I6r,Dlt)=>{"use strict";var UK;try{Mlt=Y,UK=Mlt("esprima")}catch{typeof window<"u"&&(UK=window.esprima)}var Mlt,Ajn=To();function wjn(e){if(e===null)return!1;try{var t="("+e+")",n=UK.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 kjn(e){var t="("+e+")",n=UK.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 Ijn(e){return e.toString()}function xjn(e){return Object.prototype.toString.call(e)==="[object Function]"}Dlt.exports=new Ajn("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:wjn,construct:kjn,predicate:xjn,represent:Ijn})});var ND=w((O6r,Flt)=>{"use strict";var Ult=wT();Flt.exports=Ult.DEFAULT=new Ult({include:[yI()],explicit:[Plt(),Clt(),Llt()]})});var idt=w((P6r,CD)=>{"use strict";var mg=AT(),Vlt=mI(),Ojn=Vut(),Wlt=yI(),Pjn=ND(),db=Object.prototype.hasOwnProperty,FK=1,Klt=2,Ylt=3,jK=4,Ofe=1,Njn=2,jlt=3,Cjn=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Mjn=/[\x85\u2028\u2029]/,Djn=/[,\[\]\{\}]/,Zlt=/^(?:!|!!|![a-z\-]+!)$/i,Jlt=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Hlt(e){return Object.prototype.toString.call(e)}function Ph(e){return e===10||e===13}function xT(e){return e===9||e===32}function Pu(e){return e===9||e===32||e===10||e===13}function SI(e){return e===44||e===91||e===93||e===123||e===125}function Ljn(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function Ujn(e){return e===120?2:e===117?4:e===85?8:0}function Fjn(e){return 48<=e&&e<=57?e-48:-1}function qlt(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 jjn(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function Xlt(e,t,n){t==="__proto__"?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!0,value:n}):e[t]=n}var Qlt=new Array(256),$lt=new Array(256);for(IT=0;IT<256;IT++)Qlt[IT]=qlt(IT)?1:0,$lt[IT]=qlt(IT);var IT;function Hjn(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Pjn,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 edt(e,t){return new Vlt(t,new Ojn(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Lt(e,t){throw edt(e,t)}function HK(e,t){e.onWarning&&e.onWarning.call(null,edt(e,t))}var Blt={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&&HK(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],Zlt.test(i)||Lt(t,"ill-formed tag handle (first argument) of the TAG directive"),db.call(t.tagMap,i)&&Lt(t,'there is a previously declared suffix for "'+i+'" tag handle'),Jlt.test(s)||Lt(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[i]=s}};function lb(e,t,n,r){var i,s,o,a;if(t1&&(e.result+=mg.repeat(` +`,t-1))}function qjn(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)||SI(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(i=e.input.charCodeAt(e.position+1),Pu(i)||n&&SI(i)))return!1;for(e.kind="scalar",e.result="",s=o=e.position,a=!1;p!==0;){if(p===58){if(i=e.input.charCodeAt(e.position+1),Pu(i)||n&&SI(i))break}else if(p===35){if(r=e.input.charCodeAt(e.position-1),Pu(r))break}else{if(e.position===e.lineStart&&qK(e)||n&&SI(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&&(lb(e,s,o,!1),Nfe(e,e.line-c),s=o=e.position,a=!1),xT(p)||(o=e.position+1),p=e.input.charCodeAt(++e.position)}return lb(e,s,o,!1),e.result?!0:(e.kind=d,e.result=f,!1)}function Bjn(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(lb(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)?(lb(e,r,i,!0),Nfe(e,to(e,!1,t)),r=i=e.position):e.position===e.lineStart&&qK(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 zjn(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 lb(e,n,e.position,!0),e.position++,!0;if(a===92){if(lb(e,n,e.position,!0),a=e.input.charCodeAt(++e.position),Ph(a))to(e,!1,t);else if(a<256&&Qlt[a])e.result+=$lt[a],e.position++;else if((o=Ujn(a))>0){for(i=o,s=0;i>0;i--)a=e.input.charCodeAt(++e.position),(o=Ljn(a))>=0?s=(s<<4)+o:Lt(e,"expected hexadecimal character");e.result+=jjn(s),e.position++}else Lt(e,"unknown escape sequence");n=r=e.position}else Ph(a)?(lb(e,n,r,!0),Nfe(e,to(e,!1,t)),n=r=e.position):e.position===e.lineStart&&qK(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 Gjn(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,EI(e,t,FK,!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),EI(e,t,FK,!1,!0),m=e.result),d?bI(e,s,f,h,p,m):u?s.push(bI(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 Vjn(e,t){var n,r,i=Ofe,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)Ofe===i?i=d===43?jlt:Njn:Lt(e,"repeat of a chomping mode identifier");else if((l=Fjn(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(xT(d)){do d=e.input.charCodeAt(++e.position);while(xT(d));if(d===35)do d=e.input.charCodeAt(++e.position);while(!Ph(d)&&d!==0)}for(;d!==0;){for(Pfe(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)&&(EI(e,t,jK,!0,i)&&(h?f=e.result:p=e.result),h||(bI(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 Jjn(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(;xT(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&&Pfe(e),db.call(Blt,r)?Blt[r](e,r,i):HK(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"),EI(e,e.lineIndent-1,jK,!1,!0),to(e,!0,-1),e.checkLineBreaks&&Mjn.test(e.input.slice(t,e.position))&&HK(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&qK(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=tdt(e,n);if(typeof t!="function")return r;for(var i=0,s=r.length;i"u"&&(n=t,t=null),ndt(e,t,mg.extend({schema:Wlt},n))}function Qjn(e,t){return rdt(e,mg.extend({schema:Wlt},t))}CD.exports.loadAll=ndt;CD.exports.load=rdt;CD.exports.safeLoadAll=Xjn;CD.exports.safeLoad=Qjn});var kdt=w((N6r,Lfe)=>{"use strict";var DD=AT(),LD=mI(),$jn=ND(),eHn=yI(),fdt=Object.prototype.toString,pdt=Object.prototype.hasOwnProperty,tHn=9,MD=10,nHn=13,rHn=32,iHn=33,sHn=34,hdt=35,oHn=37,aHn=38,cHn=39,uHn=42,mdt=44,lHn=45,gdt=58,dHn=61,fHn=62,pHn=63,hHn=64,ydt=91,Sdt=93,mHn=96,bdt=123,gHn=124,Edt=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 yHn=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function SHn(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&&Jlt(o,a)}else{for(s=0;sr&&e[d+1]!==" ",d=s);else if(!hI(o))return M4;a=s>0?e.charCodeAt(s-1):null,f=f&&Jlt(o,a)}u=u||l&&s-d-1>r&&e[d+1]!==" "}return!c&&!u?f&&!i(e)?ddt:fdt:n>9&&ldt(e)?M4:u?hdt:pdt}function aHn(e,t,n,r){e.dump=(function(){if(t.length===0)return"''";if(!e.noCompatMode&&eHn.indexOf(t)!==-1)return"'"+t+"'";var i=e.indent*Math.max(1,n),s=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-i),o=r||e.flowLevel>-1&&n>=e.flowLevel;function a(c){return rHn(e,c)}switch(oHn(t,o,e.indent,s,a)){case ddt:return t;case fdt:return"'"+t.replace(/'/g,"''")+"'";case pdt:return"|"+Xlt(t,e.indent)+Qlt(Ylt(t,i));case hdt:return">"+Xlt(t,e.indent)+Qlt(Ylt(cHn(t,s),i));case M4:return'"'+uHn(t,s)+'"';default:throw new RL("impossible error: invalid scalar style")}})()}function Xlt(e,t){var n=ldt(e)?String(t):"",r=e[e.length-1]===` +`&&(s+=n),s+=o;return s}function Cfe(e,t){return` +`+DD.repeat(" ",e.indent*t)}function EHn(e,t){var n,r,i;for(n=0,r=e.implicitTypes.length;n0?e.charCodeAt(s-1):null,f=f&&adt(o,a)}else{for(s=0;sr&&e[d+1]!==" ",d=s);else if(!_I(o))return BK;a=s>0?e.charCodeAt(s-1):null,f=f&&adt(o,a)}u=u||l&&s-d-1>r&&e[d+1]!==" "}return!c&&!u?f&&!i(e)?Tdt:vdt:n>9&&_dt(e)?BK:u?Adt:Rdt}function RHn(e,t,n,r){e.dump=(function(){if(t.length===0)return"''";if(!e.noCompatMode&&yHn.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 EHn(e,c)}switch(vHn(t,o,e.indent,s,a)){case Tdt:return t;case vdt:return"'"+t.replace(/'/g,"''")+"'";case Rdt:return"|"+cdt(t,e.indent)+udt(odt(t,i));case Adt:return">"+cdt(t,e.indent)+udt(odt(AHn(t,s),i));case BK:return'"'+wHn(t,s)+'"';default:throw new LD("impossible error: invalid scalar style")}})()}function cdt(e,t){var n=_dt(e)?String(t):"",r=e[e.length-1]===` `,i=r&&(e[e.length-2]===` `||e===` `),s=i?"+":r?"":"-";return n+s+` -`}function Qlt(e){return e[e.length-1]===` -`?e.slice(0,-1):e}function cHn(e,t){for(var n=/(\n+)([^\n]*)/g,r=(function(){var u=e.indexOf(` -`);return u=u!==-1?u:e.length,n.lastIndex=u,$lt(e.slice(0,u),t)})(),i=e[0]===` +`}function udt(e){return e[e.length-1]===` +`?e.slice(0,-1):e}function AHn(e,t){for(var n=/(\n+)([^\n]*)/g,r=(function(){var u=e.indexOf(` +`);return u=u!==-1?u:e.length,n.lastIndex=u,ldt(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!==""?` -`:"")+$lt(c,t),i=s}return r}function $lt(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+=` +`:"")+ldt(c,t),i=s}return r}function ldt(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 uHn(e){for(var t="",n,r,i,s=0;s=55296&&n<=56319&&(r=e.charCodeAt(s+1),r>=56320&&r<=57343)){t+=Zlt((n-55296)*1024+r-56320+65536),s++;continue}i=fc[n],t+=!i&&hI(n)?e[s]:i||Zlt(n)}return t}function lHn(e,t,n){var r="",i=e.tag,s,o;for(s=0,o=n.length;s1024&&(l+="? "),l+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),IT(e,t,u,!1,!1)&&(l+=e.dump,r+=l));e.tag=i,e.dump="{"+r+"}"}function pHn(e,t,n,r){var i="",s=e.tag,o=Object.keys(n),a,c,u,l,d,f;if(e.sortKeys===!0)o.sort();else if(typeof e.sortKeys=="function")o.sort(e.sortKeys);else if(e.sortKeys)throw new RL("sortKeys must be a boolean or a function");for(a=0,c=o.length;a1024,d&&(e.dump&&vL===e.dump.charCodeAt(0)?f+="?":f+="? "),f+=e.dump,d&&(f+=Afe(e,t)),IT(e,t+1,l,!0,d)&&(e.dump&&vL===e.dump.charCodeAt(0)?f+=":":f+=": ",f+=e.dump,i+=f));e.tag=s,e.dump=i||"{}"}function edt(e,t,n){var r,i,s,o,a,c;for(i=n?e.explicitTypes:e.implicitTypes,s=0,o=i.length;s tag resolver accepts not "'+c+'" style');e.dump=r}return!0}return!1}function IT(e,t,n,r,i,s){e.tag=null,e.dump=n,edt(e,n,!1)||edt(e,n,!0);var o=tdt.call(e.dump);r&&(r=e.flowLevel<0||e.flowLevel>t);var a=o==="[object Object]"||o==="[object Array]",c,u;if(a&&(c=e.duplicates.indexOf(n),u=c!==-1),(e.tag!==null&&e.tag!=="?"||u||e.indent!==2&&t>0)&&(i=!1),u&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(a&&u&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),o==="[object Object]")r&&Object.keys(e.dump).length!==0?(pHn(e,t,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(fHn(e,t,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump));else if(o==="[object Array]"){var l=e.noArrayIndent&&t>0?t-1:t;r&&e.dump.length!==0?(dHn(e,l,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(lHn(e,l,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump))}else if(o==="[object String]")e.tag!=="?"&&aHn(e,e.dump,t,s);else{if(e.skipInvalid)return!1;throw new RL("unacceptable kind of an object to dump "+o)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function hHn(e,t){var n=[],r=[],i,s;for(Rfe(e,n,r),i=0,s=r.length;i{"use strict";var L4=Klt(),ydt=gdt();function D4(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=I4();ys.exports.JSON_SCHEMA=Sfe();ys.exports.CORE_SCHEMA=Efe();ys.exports.DEFAULT_SAFE_SCHEMA=lI();ys.exports.DEFAULT_FULL_SCHEMA=_L();ys.exports.load=L4.load;ys.exports.loadAll=L4.loadAll;ys.exports.safeLoad=L4.safeLoad;ys.exports.safeLoadAll=L4.safeLoadAll;ys.exports.dump=ydt.dump;ys.exports.safeDump=ydt.safeDump;ys.exports.YAMLException=cI();ys.exports.MINIMAL_SCHEMA=I4();ys.exports.SAFE_SCHEMA=lI();ys.exports.DEFAULT_SCHEMA=_L();ys.exports.scan=D4("scan");ys.exports.parse=D4("parse");ys.exports.compose=D4("compose");ys.exports.addConstructor=D4("addConstructor")});var bdt=w((JYr,Edt)=>{"use strict";var gHn=Sdt();Edt.exports=gHn});var Ife=w((exports,module)=>{"use strict";var yaml=bdt(),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 wHn(e){for(var t="",n,r,i,s=0;s=55296&&n<=56319&&(r=e.charCodeAt(s+1),r>=56320&&r<=57343)){t+=sdt((n-55296)*1024+r-56320+65536),s++;continue}i=pc[n],t+=!i&&_I(n)?e[s]:i||sdt(n)}return t}function kHn(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?"":" "),OT(e,t,u,!1,!1)&&(l+=e.dump,r+=l));e.tag=i,e.dump="{"+r+"}"}function OHn(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 LD("sortKeys must be a boolean or a function");for(a=0,c=o.length;a1024,d&&(e.dump&&MD===e.dump.charCodeAt(0)?f+="?":f+="? "),f+=e.dump,d&&(f+=Cfe(e,t)),OT(e,t+1,l,!0,d)&&(e.dump&&MD===e.dump.charCodeAt(0)?f+=":":f+=": ",f+=e.dump,i+=f));e.tag=s,e.dump=i||"{}"}function ddt(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 OT(e,t,n,r,i,s){e.tag=null,e.dump=n,ddt(e,n,!1)||ddt(e,n,!0);var o=fdt.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?(OHn(e,t,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(xHn(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?(IHn(e,l,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(kHn(e,l,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump))}else if(o==="[object String]")e.tag!=="?"&&RHn(e,e.dump,t,s);else{if(e.skipInvalid)return!1;throw new LD("unacceptable kind of an object to dump "+o)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function PHn(e,t){var n=[],r=[],i,s;for(Mfe(e,n,r),i=0,s=r.length;i{"use strict";var zK=idt(),Idt=kdt();function GK(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}ys.exports.Type=To();ys.exports.Schema=wT();ys.exports.FAILSAFE_SCHEMA=LK();ys.exports.JSON_SCHEMA=kfe();ys.exports.CORE_SCHEMA=Ife();ys.exports.DEFAULT_SAFE_SCHEMA=yI();ys.exports.DEFAULT_FULL_SCHEMA=ND();ys.exports.load=zK.load;ys.exports.loadAll=zK.loadAll;ys.exports.safeLoad=zK.safeLoad;ys.exports.safeLoadAll=zK.safeLoadAll;ys.exports.dump=Idt.dump;ys.exports.safeDump=Idt.safeDump;ys.exports.YAMLException=mI();ys.exports.MINIMAL_SCHEMA=LK();ys.exports.SAFE_SCHEMA=yI();ys.exports.DEFAULT_SCHEMA=ND();ys.exports.scan=GK("scan");ys.exports.parse=GK("parse");ys.exports.compose=GK("compose");ys.exports.addConstructor=GK("addConstructor")});var Pdt=w((M6r,Odt)=>{"use strict";var CHn=xdt();Odt.exports=CHn});var Ufe=w((exports,module)=>{"use strict";var yaml=Pdt(),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 Tdt=w((XYr,_dt)=>{"use strict";_dt.exports=function(e){return typeof e=="string"&&e.charAt(0)==="\uFEFF"?e.slice(1):e}});var U4=w(hg=>{"use strict";var vdt=Tdt(),Adt=EL();hg.define=function(e,t,n){Reflect.defineProperty(e,t,{enumerable:!1,configurable:!0,writable:!0,value:n})};hg.isBuffer=function(e){return Adt(e)==="buffer"};hg.isObject=function(e){return Adt(e)==="object"};hg.toBuffer=function(e){return typeof e=="string"?Buffer.from(e):e};hg.toString=function(e){if(hg.isBuffer(e))return vdt(String(e));if(typeof e!="string")throw new TypeError("expected input to be a string or buffer");return vdt(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 wL=w(($Yr,Rdt)=>{"use strict";var yHn=Ife(),SHn=U4();Rdt.exports=function(e){let t=Object.assign({},e);return t.delimiters=SHn.arrayify(t.delims||t.delimiters||"---"),t.delimiters.length===1&&t.delimiters.push(t.delimiters[0]),t.language=(t.language||t.lang||"yaml").toLowerCase(),t.engines=Object.assign({},yHn,t.parsers,t.engines),t}});var xfe=w((e5r,wdt)=>{"use strict";wdt.exports=function(e,t){let n=t.engines[e]||t.engines[EHn(e)];if(typeof n>"u")throw new Error('gray-matter engine "'+e+'" is not registered');return typeof n=="function"&&(n={parse:n}),n};function EHn(e){switch(e.toLowerCase()){case"js":case"javascript":return"javascript";case"coffee":case"coffeescript":case"cson":return"coffee";case"yaml":case"yml":return"yaml";default:return e}}});var Ofe=w((t5r,kdt)=>{"use strict";var bHn=EL(),_Hn=xfe(),THn=wL();kdt.exports=function(e,t,n){if(t==null&&n==null)switch(bHn(e)){case"object":t=e.data,n={};break;case"string":return e;default:throw new TypeError("expected file to be a string or object")}let r=e.content,i=THn(n);if(t==null){if(!i.data)return e;t=i.data}let s=e.language||i.language,o=_Hn(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 Cdt=w((D6r,Ndt)=>{"use strict";Ndt.exports=function(e){return typeof e=="string"&&e.charAt(0)==="\uFEFF"?e.slice(1):e}});var VK=w(gg=>{"use strict";var Mdt=Cdt(),Ddt=OD();gg.define=function(e,t,n){Reflect.defineProperty(e,t,{enumerable:!1,configurable:!0,writable:!0,value:n})};gg.isBuffer=function(e){return Ddt(e)==="buffer"};gg.isObject=function(e){return Ddt(e)==="object"};gg.toBuffer=function(e){return typeof e=="string"?Buffer.from(e):e};gg.toString=function(e){if(gg.isBuffer(e))return Mdt(String(e));if(typeof e!="string")throw new TypeError("expected input to be a string or buffer");return Mdt(e)};gg.arrayify=function(e){return e?Array.isArray(e)?e:[e]:[]};gg.startsWith=function(e,t,n){return typeof n!="number"&&(n=t.length),e.slice(0,n)===t}});var UD=w((U6r,Ldt)=>{"use strict";var MHn=Ufe(),DHn=VK();Ldt.exports=function(e){let t=Object.assign({},e);return t.delimiters=DHn.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({},MHn,t.parsers,t.engines),t}});var Ffe=w((F6r,Udt)=>{"use strict";Udt.exports=function(e,t){let n=t.engines[e]||t.engines[LHn(e)];if(typeof n>"u")throw new Error('gray-matter engine "'+e+'" is not registered');return typeof n=="function"&&(n={parse:n}),n};function LHn(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 jfe=w((j6r,Fdt)=>{"use strict";var UHn=OD(),FHn=Ffe(),jHn=UD();Fdt.exports=function(e,t,n){if(t==null&&n==null)switch(UHn(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=jHn(n);if(t==null){if(!i.data)return e;t=i.data}let s=e.language||i.language,o=FHn(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=TI(a)+TI(u)+TI(c)),typeof e.excerpt=="string"&&e.excerpt!==""&&r.indexOf(e.excerpt.trim())===-1&&(l+=TI(e.excerpt)+TI(c)),l+TI(r)};function TI(e){return e.slice(-1)!==` `?e+` -`:e}});var xdt=w((n5r,Idt)=>{"use strict";var vHn=wL();Idt.exports=function(e,t){let n=vHn(t);if(e.data==null&&(e.data={}),typeof n.excerpt=="function")return n.excerpt(e,n);let r=e.data.excerpt_separator||n.excerpt_separator;if(r==null&&(n.excerpt===!1||n.excerpt==null))return e;let i=typeof n.excerpt=="string"?n.excerpt:r||n.delimiters[0],s=e.content.indexOf(i);return s!==-1&&(e.excerpt=e.content.slice(0,s)),e}});var Pdt=w((r5r,Ndt)=>{"use strict";var Odt=EL(),AHn=Ofe(),gI=U4();Ndt.exports=function(e){return Odt(e)!=="object"&&(e={content:e}),Odt(e.data)!=="object"&&(e.data={}),e.contents&&e.content==null&&(e.content=e.contents),gI.define(e,"orig",gI.toBuffer(e.content)),gI.define(e,"language",e.language||""),gI.define(e,"matter",e.matter||""),gI.define(e,"stringify",function(t,n){return n&&n.language&&(e.language=n.language),AHn(e,t,n)}),e.content=gI.toString(e.content),e.isEmpty=!1,e.excerpt="",e}});var Mdt=w((i5r,Cdt)=>{"use strict";var RHn=xfe(),wHn=wL();Cdt.exports=function(e,t,n){let r=wHn(n),i=RHn(e,r);if(typeof i.parse!="function")throw new TypeError('expected "'+e+'.parse" to be a function');return i.parse(t,r)}});var Kt=w((s5r,Udt)=>{"use strict";var kHn=Z("fs"),IHn=xut(),Nfe=wL(),xHn=Ofe(),Ldt=xdt(),OHn=Ife(),NHn=Pdt(),PHn=Mdt(),Ddt=U4();function Kc(e,t){if(e==="")return{data:{},content:e,excerpt:"",orig:e};let n=NHn(e),r=Kc.cache[n.content];if(!t){if(r)return n=Object.assign({},r),n.orig=r.orig,n;Kc.cache[n.content]=n}return CHn(n,t)}function CHn(e,t){let n=Nfe(t),r=n.delimiters[0],i=` -`+n.delimiters[1],s=e.content;n.language&&(e.language=n.language);let o=r.length;if(!Ddt.startsWith(s,r,o))return Ldt(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=PHn(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))),Ldt(e,n),(n.sections===!0||typeof n.section=="function")&&IHn(e,n.section),e}Kc.engines=OHn;Kc.stringify=function(e,t,n){return typeof e=="string"&&(e=Kc(e,n)),xHn(e,t,n)};Kc.read=function(e,t){let n=kHn.readFileSync(e,"utf8"),r=Kc(n,t);return r.path=e,r};Kc.test=function(e,t){return Ddt.startsWith(e,Nfe(t).delimiters[0])};Kc.language=function(e,t){let r=Nfe(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={}};Udt.exports=Kc});import{execFileSync as MHn}from"node:child_process";function F4(e,t){try{return MHn(e,t,{stdio:"ignore",timeout:5e3}),!0}catch{return!1}}function kL(e){let t=e.toLowerCase().replace(/[\s_]/g,"-"),n=jdt[t];if(!n)return!1;let r=Fdt.get(t);if(r!==void 0)return r;let i=n.probe();return Fdt.set(t,i),i}function Pfe(){return Object.keys(jdt).filter(kL)}var jdt,Fdt,Cfe=v(()=>{"use strict";jdt={docker:{name:"docker",displayName:"Docker",probe:()=>F4("docker",["info"])},"docker-compose":{name:"docker-compose",displayName:"Docker Compose",probe:()=>F4("docker",["compose","version"])||F4("docker-compose",["version"])},make:{name:"make",displayName:"Make",probe:()=>F4("make",["--version"])}},Fdt=new Map});function DHn(e,t={}){for(let n of t.requiredTools??[])if(!kL(n))return{environment:!0,requiresTool:n,reason:`gate '${e.name}' needs '${n}', which isn't available in this environment`};return LHn.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 j4(e,t={}){for(let n of e){let r=DHn(n,t);if(r.environment)return r}return{environment:!1,reason:null}}var LHn,Mfe=v(()=>{"use strict";Cfe();LHn=[/cannot connect to the docker daemon/i,/is the docker daemon running/i,/connection refused/i,/\beconnrefused\b/i,/could not connect to server/i,/can't reach database server/i,/no connection could be made/i,/getaddrinfo (enotfound|eai_again)/i,/\bmongonetworkerror\b/i,/server closed the connection unexpectedly/i,/connection to .* (port|host) .* failed/i,/(redis|mongo|postgres|postgresql|mysql|mariadb).*(connection|connect).*(refused|failed|timed out)/i,/\b(docker|docker-compose|psql|mysql|redis-cli|pg_isready)\b[^\n]*\b(command not found|not found|no such file)/i,/\b(command not found|not found):?\s*(docker|docker-compose|psql|mysql)\b/i]});function pc(){return{intent_md_migrated:!1,units_migrated:0,units_with_synthesized_approval:0,review_stamps_synthesized:0,approval_stamps_synthesized:0,feedback_migrated:0,feedback_with_synthesized_closure:0,feedback_relocated:0,state_json_deleted:0,drift_artifacts_deleted:0,review_slots_backfilled:0,approval_slots_stripped:0,iterations_message_migrated:0}}function Nu(e,t,n){if(e===t)throw new Error(`registerMigrator: from == to (${e}) \u2014 migrators must change the version`);let r=H4.get(e)??[];if(r.some(i=>i.to===t))throw new Error(`registerMigrator: duplicate edge ${e} \u2192 ${t}`);r.push({to:t,migrator:n}),H4.set(e,r)}function UHn(e,t){if(e===t)return[];let n=[{version:e,chain:[]}],r=new Set([e]);for(;n.length>0;){let i=n.shift();if(!i)break;let s=H4.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 q4(e,t,n){if(t===n)return{from:t,to:n,steps:0,chain:[],details:pc()};let r=UHn(t,n);if(r===null)throw new Error(`migrateIntent: no migration path from ${t} to ${n} for intent at ${e.intentDir}`);let i=[],s=pc(),o=t;for(let a of r){let c=(H4.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 H4,Nh=v(()=>{"use strict";H4=new Map});import{join as Hdt}from"node:path";function rr(e,t){if(/[/\\]|\.\./.test(e))throw new Error(`Invalid ${t}: "${e}"`);return e}function qdt(){let e=nn();return[Hdt(process.cwd(),".haiku","studios"),Hdt(e,"studios")]}var Lfe=v(()=>{"use strict";Ci();ze();ze()});function Bdt(e){return typeof e=="string"&&jHn.has(e)}function yI(e){return Bdt(e)?e:void 0}function lE(e){let t=[["unit",e.unit],["hat",e.hat],["stage",e.stage],["studio",e.studio]];for(let[n,r]of t){let i=yI(r);if(i)return{model:i,source:n}}return{model:void 0,source:"none"}}function Dfe(e){if(Bdt(e))return HHn[e]}var FHn,jHn,HHn,dE=v(()=>{"use strict";FHn=["haiku","sonnet","opus"],jHn=new Set(FHn),HHn={haiku:"sonnet",sonnet:"opus",opus:void 0}});import{existsSync as Ss,lstatSync as qHn,readdirSync as Ph,readFileSync as Pu,statSync as Gdt}from"node:fs";import{join as Zt}from"node:path";function Vdt(e){try{if(!Ss(e))return;let{data:t}=re(Pu(e,"utf8"));return yI(t.model)}catch{return}}function $i(e,t){rr(e,"studio"),rr(t,"stage");for(let n of Cu()){let r=Zt(n,e,"stages",t,"STAGE.md");if(Ss(r))return re(Pu(r,"utf8"))}return null}function Od(e){rr(e,"studio");for(let t of Cu()){let n=Zt(t,e,"STUDIO.md");if(Ss(n))return re(Pu(n,"utf8"))}return null}function Wdt(e){return e==="plan"||e==="build"||e==="verify"?e:void 0}function Kdt(e,t){let n=Zt(process.cwd(),".haiku"),r=nn();return[Zt(r,"hats"),Zt(n,"hats"),Zt(r,"studios",e,"hats"),Zt(n,"studios",e,"hats"),Zt(r,"studios",e,"stages",t,"hats"),Zt(n,"studios",e,"stages",t,"hats")]}function Mu(e,t){rr(e,"studio"),rr(t,"stage");let n={};for(let r of Kdt(e,t))if(Ss(r))for(let i of Ph(r).filter(s=>s.endsWith(".md"))){let s=Pu(Zt(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:Wdt(o.role),raw:s}}return n}function fE(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"hat");let r=null;for(let i of Kdt(e,t)){let s=Zt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Ffe(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"hat");let r=Zt(process.cwd(),".haiku"),i=nn(),s=null;for(let o of[Zt(i,"studios",e,"stages",t,"fix-hats"),Zt(r,"studios",e,"stages",t,"fix-hats")]){let a=Zt(o,`${n}.md`);Ss(a)&&(s=a)}return s??fE(e,t,n)}function Zdt(e,t){let n=Zt(process.cwd(),".haiku"),r=nn();return[Zt(r,"review-agents"),Zt(n,"review-agents"),Zt(r,"studios",e,"review-agents"),Zt(n,"studios",e,"review-agents"),Zt(r,"studios",e,"stages",t,"review-agents"),Zt(n,"studios",e,"stages",t,"review-agents")]}function _l(e,t){rr(e,"studio"),rr(t,"stage");let n={};for(let r of Zdt(e,t))if(Ss(r))for(let i of Ph(r).filter(s=>s.endsWith(".md")))n[i.replace(/\.md$/,"")]=Zt(r,i);return n}function OL(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"agent");let r=null;for(let i of Zdt(e,t)){let s=Zt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function jfe(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"discovery template");for(let r of Cu()){let i=Zt(r,e,"stages",t,"discovery",`${n}.md`);if(Ss(i))return i}return null}function BHn(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"output template");for(let r of Cu()){let i=Zt(r,e,"stages",t,"outputs",`${n}.md`);if(Ss(i))return i}return null}function mg(e){rr(e,"studio");let t={},n=[...Cu()].reverse(),r=i=>{if(Ss(i))for(let s of Ph(i).filter(o=>o.endsWith(".md")))t[s.replace(/\.md$/,"")]=Zt(i,s)};for(let i of n)r(Zt(i,"..","intent-review-agents"));for(let i of n)r(Zt(i,e,"intent-review-agents"));return t}function NL(e){if(!e||!Ss(e))return null;let{body:t}=re(Pu(e,"utf8"));return(t||"").trim()||null}function SI(e,t,n,r=!1){return NL(r?Ffe(e,t,n):fE(e,t,n))}function Ch(e,t,n){let r=t?OL(e,t,n):mg(e)[n]??null;return NL(r)}function EI(e,t,n){return NL(jfe(e,t,n))}function B4(e,t,n){return NL(BHn(e,t,n))}function G4(e,t,n){return(Hfe(e,t,n)?.body||"").trim()||null}function Mh(e,t){return($i(e,t)?.body||"").trim()||null}function Ydt(e,t){return NL(PL(e)[t]??null)}function Jdt(e){let t=Zt(process.cwd(),".haiku"),n=nn();return[Zt(n,"fix-hats"),Zt(t,"fix-hats"),Zt(n,"studios",e,"fix-hats"),Zt(t,"studios",e,"fix-hats")]}function z4(e){rr(e,"studio");let t={};for(let n of Jdt(e))if(Ss(n))for(let r of Ph(n).filter(i=>i.endsWith(".md"))){let i=Pu(Zt(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:Wdt(s.role),raw:i}}return t}function PL(e){rr(e,"studio");let t={};for(let n of Jdt(e))if(Ss(n))for(let r of Ph(n).filter(i=>i.endsWith(".md")))t[r.replace(/\.md$/,"")]=Zt(n,r);return t}function Xdt(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=Pu(l,"utf8"),{data:f}=re(d),p=f.applies_to;if(p!=null){if(Array.isArray(p)&&p.every(h=>typeof h=="string"))return p;console.warn(`[haiku] review-agent ${l}: \`applies_to:\` is present but not a string[]; treating as unscoped (always runs). Fix the frontmatter to scope the agent.`)}}catch{}}function a(){return i===null&&(i=GHn(t)),i}function c(){if(s===null&&(s=[],n))for(let l of no(n.studio,n.stage)){if(l.kind!=="output")continue;let p=(l.location||"").replace(/\{[^}]+\}/g,"").toLowerCase().match(/\.[a-z0-9]+$/);p&&s.push(p[0])}return s}function u(l){let d=o(l);if(!d||d.length===0)return!0;let f=a();if(f.length>0){for(let h of d){let m=h.replace(/^\*/,"").toLowerCase();if(f.some(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 GHn(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=Zt(r,o);s.isDirectory()?n.push(a):t.push(o)}}catch{}}return t}function no(e,t){rr(e,"studio"),rr(t,"stage");let n=[],r=new Set;for(let s of[...Cu()].reverse())for(let o of["discovery","outputs"]){let a=Zt(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=Pu(Zt(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 V4(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=zdt(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&Gdt(u).isDirectory())&&l){let f=Ufe(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?Pu(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=zdt(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&Gdt(u).isDirectory())&&l){let f=Ufe(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?Pu(u,"utf8"):null,description:c.body})}}}return i}function Ufe(e,t=""){let n=Ph(e).filter(i=>!i.startsWith(".")),r=[];for(let i of n){let s=Zt(e,i),o=t?`${t}/${i}`:i,a;try{a=qHn(s)}catch{continue}if(!a.isSymbolicLink())if(a.isDirectory())r.push(Ufe(s,o));else{let c;try{c=Pu(s,"utf8")}catch{continue}r.push(`### ${o} +`:e}});var Hdt=w((H6r,jdt)=>{"use strict";var HHn=UD();jdt.exports=function(e,t){let n=HHn(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 zdt=w((q6r,Bdt)=>{"use strict";var qdt=OD(),qHn=jfe(),vI=VK();Bdt.exports=function(e){return qdt(e)!=="object"&&(e={content:e}),qdt(e.data)!=="object"&&(e.data={}),e.contents&&e.content==null&&(e.content=e.contents),vI.define(e,"orig",vI.toBuffer(e.content)),vI.define(e,"language",e.language||""),vI.define(e,"matter",e.matter||""),vI.define(e,"stringify",function(t,n){return n&&n.language&&(e.language=n.language),qHn(e,t,n)}),e.content=vI.toString(e.content),e.isEmpty=!1,e.excerpt="",e}});var Vdt=w((B6r,Gdt)=>{"use strict";var BHn=Ffe(),zHn=UD();Gdt.exports=function(e,t,n){let r=zHn(n),i=BHn(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((z6r,Ydt)=>{"use strict";var GHn=Y("fs"),VHn=Hut(),Hfe=UD(),WHn=jfe(),Wdt=Hdt(),KHn=Ufe(),YHn=zdt(),ZHn=Vdt(),Kdt=VK();function Yc(e,t){if(e==="")return{data:{},content:e,excerpt:"",orig:e};let n=YHn(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 JHn(n,t)}function JHn(e,t){let n=Hfe(t),r=n.delimiters[0],i=` +`+n.delimiters[1],s=e.content;n.language&&(e.language=n.language);let o=r.length;if(!Kdt.startsWith(s,r,o))return Wdt(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=ZHn(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))),Wdt(e,n),(n.sections===!0||typeof n.section=="function")&&VHn(e,n.section),e}Yc.engines=KHn;Yc.stringify=function(e,t,n){return typeof e=="string"&&(e=Yc(e,n)),WHn(e,t,n)};Yc.read=function(e,t){let n=GHn.readFileSync(e,"utf8"),r=Yc(n,t);return r.path=e,r};Yc.test=function(e,t){return Kdt.startsWith(e,Hfe(t).delimiters[0])};Yc.language=function(e,t){let r=Hfe(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={}};Ydt.exports=Yc});import{execFileSync as XHn}from"node:child_process";function WK(e,t){try{return XHn(e,t,{stdio:"ignore",timeout:5e3}),!0}catch{return!1}}function FD(e){let t=e.toLowerCase().replace(/[\s_]/g,"-"),n=Jdt[t];if(!n)return!1;let r=Zdt.get(t);if(r!==void 0)return r;let i=n.probe();return Zdt.set(t,i),i}function qfe(){return Object.keys(Jdt).filter(FD)}var Jdt,Zdt,Bfe=v(()=>{"use strict";Jdt={docker:{name:"docker",displayName:"Docker",probe:()=>WK("docker",["info"])},"docker-compose":{name:"docker-compose",displayName:"Docker Compose",probe:()=>WK("docker",["compose","version"])||WK("docker-compose",["version"])},make:{name:"make",displayName:"Make",probe:()=>WK("make",["--version"])}},Zdt=new Map});function $Hn(e,t={}){for(let n of t.requiredTools??[])if(!FD(n))return{environment:!0,requiresTool:n,reason:`gate '${e.name}' needs '${n}', which isn't available in this environment`};return QHn.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 KK(e,t={}){for(let n of e){let r=$Hn(n,t);if(r.environment)return r}return{environment:!1,reason:null}}var QHn,zfe=v(()=>{"use strict";Bfe();QHn=[/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=YK.get(e)??[];if(r.some(i=>i.to===t))throw new Error(`registerMigrator: duplicate edge ${e} \u2192 ${t}`);r.push({to:t,migrator:n}),YK.set(e,r)}function eqn(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=YK.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 ZK(e,t,n){if(t===n)return{from:t,to:n,steps:0,chain:[],details:hc()};let r=eqn(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=(YK.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 YK,Nh=v(()=>{"use strict";YK=new Map});import{join as Xdt}from"node:path";function rr(e,t){if(/[/\\]|\.\./.test(e))throw new Error(`Invalid ${t}: "${e}"`);return e}function Qdt(){let e=nn();return[Xdt(process.cwd(),".haiku","studios"),Xdt(e,"studios")]}var Gfe=v(()=>{"use strict";Ci();ze();ze()});function $dt(e){return typeof e=="string"&&nqn.has(e)}function RI(e){return $dt(e)?e:void 0}function fb(e){let t=[["unit",e.unit],["hat",e.hat],["stage",e.stage],["studio",e.studio]];for(let[n,r]of t){let i=RI(r);if(i)return{model:i,source:n}}return{model:void 0,source:"none"}}function Vfe(e){if($dt(e))return rqn[e]}var tqn,nqn,rqn,pb=v(()=>{"use strict";tqn=["haiku","sonnet","opus"],nqn=new Set(tqn),rqn={haiku:"sonnet",sonnet:"opus",opus:void 0}});import{existsSync as Ss,lstatSync as iqn,readdirSync as Ch,readFileSync as Cu,statSync as eft}from"node:fs";import{join as Yt}from"node:path";function nft(e){try{if(!Ss(e))return;let{data:t}=re(Cu(e,"utf8"));return RI(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 Cd(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 rft(e){return e==="plan"||e==="build"||e==="verify"?e:void 0}function ift(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 ift(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:rft(o.role),raw:s}}return n}function hb(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"hat");let r=null;for(let i of ift(e,t)){let s=Yt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Kfe(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??hb(e,t,n)}function sft(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 sft(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 qD(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"agent");let r=null;for(let i of sft(e,t)){let s=Yt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Yfe(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 sqn(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 yg(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 BD(e){if(!e||!Ss(e))return null;let{body:t}=re(Cu(e,"utf8"));return(t||"").trim()||null}function AI(e,t,n,r=!1){return BD(r?Kfe(e,t,n):hb(e,t,n))}function Mh(e,t,n){let r=t?qD(e,t,n):yg(e)[n]??null;return BD(r)}function wI(e,t,n){return BD(Yfe(e,t,n))}function JK(e,t,n){return BD(sqn(e,t,n))}function XK(e,t,n){return(Zfe(e,t,n)?.body||"").trim()||null}function Dh(e,t){return($i(e,t)?.body||"").trim()||null}function oft(e,t){return BD(zD(e)[t]??null)}function aft(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 QK(e){rr(e,"studio");let t={};for(let n of aft(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:rft(s.role),raw:i}}return t}function zD(e){rr(e,"studio");let t={};for(let n of aft(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 cft(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=oqn(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 oqn(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 $K(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=tft(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&eft(u).isDirectory())&&l){let f=Wfe(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=tft(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&eft(u).isDirectory())&&l){let f=Wfe(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 Wfe(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=iqn(s)}catch{continue}if(!a.isSymbolicLink())if(a.isDirectory())r.push(Wfe(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 zdt(e,t,n){let r=e.replace(/\{intent-slug\}/g,n),i=`.haiku/intents/${n}/`;return r.startsWith(i)?Zt(t,r.slice(i.length)):r.startsWith("/")?r:Zt(process.cwd(),r)}function VHn(){let e=new Map,t=nn(),n=Cu();for(let r of[...n].reverse()){if(!Ss(r))continue;let i=t&&r.startsWith(t)?"plugin":"project";for(let s of Ph(r,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=Zt(r,s.name),a=Zt(o,"STUDIO.md");if(!Ss(a))continue;let{data:c,body:u}=re(Pu(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=Cu().join("|"),t=Date.now();if(xL&&xL.key===e&&xL.expiresAt>t)return xL.value;let n=VHn();return xL={key:e,expiresAt:t+zHn,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 Hfe(e,t,n){rr(e,"studio"),rr(t,"stage");for(let r of Cu()){let i=Zt(r,e,"stages",t,"phases",`${n.toUpperCase()}.md`);if(Ss(i))return re(Pu(i,"utf8"))}return null}function Qdt(e){rr(e,"studio");let t={},n=Cu();for(let r of[...n].reverse()){let i=Zt(r,e,"reflections");if(Ss(i))for(let s of Ph(i).filter(o=>o.endsWith(".md")))t[s.replace(/\.md$/,"")]=Pu(Zt(i,s),"utf8")}return t}var Cu,zHn,xL,Kn=v(()=>{"use strict";Lfe();Ci();dE();ze();Cu=qdt;zHn=2e3,xL=null});import{spawnSync as WHn}from"node:child_process";import{readFileSync as KHn}from"node:fs";import{homedir as ZHn}from"node:os";import{join as qfe}from"node:path";function Nd(e){let t=(process.env[`HAIKU_${e}`]??"").trim();return t||(process.env[e]??"").trim()}function $dt(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 YHn(){let e=Nd("OTEL_EXPORTER_OTLP_LOGS_ENDPOINT");return e||`${(Nd("OTEL_EXPORTER_OTLP_ENDPOINT")||"http://localhost:4318").replace(/\/$/,"")}/v1/logs`}function JHn(){let e=Nd("OTEL_EXPORTER_OTLP_LOGS_HEADERS");return $dt(e||Nd("OTEL_EXPORTER_OTLP_HEADERS"))}function XHn(){let e=Nd("OTEL_EXPORTER_OTLP_LOGS_PROTOCOL");return e||Nd("OTEL_EXPORTER_OTLP_PROTOCOL")||"http/json"}function QHn(){let e=Number(Nd("OTEL_EXPORTER_OTLP_LOGS_TIMEOUT"));if(Number.isFinite(e)&&e>0)return e;let t=Number(Nd("OTEL_EXPORTER_OTLP_TIMEOUT"));return Number.isFinite(t)&&t>0?t:1e4}function $Hn(){return Nd("OTEL_LOGS_EXPORTER").toLowerCase()||"otlp"}function eqn(e){try{let t=KHn(e,"utf8"),n=JSON.parse(t);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{}return null}function tqn(){let e={},t=ZHn(),n=process.cwd(),r=[t?qfe(t,".claude","settings.json"):null,qfe(n,".claude","settings.json"),qfe(n,".claude","settings.local.json")].filter(i=>i!==null);for(let i of r){let s=eqn(i);s&&Object.assign(e,s)}return e}function nqn(){let t=tqn().otelHeadersHelper;return typeof t=="string"?t.trim():""}function iqn(){let e=Number(Nd("CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS"));return Number.isFinite(e)&&e>0?e:rqn}function sqn(e){let[t,...n]=e.split(/\s+/).filter(Boolean);if(!t)return null;let r=WHn(t,n,{encoding:"utf8",timeout:1e4});if(r.status!==0){let a=(r.stderr||"").trim();return console.error(`[haiku/telemetry] otelHeadersHelper exited ${r.status}${a?`: ${a}`:""}`),null}let i=(r.stdout||"").trim();if(!i)return console.error("[haiku/telemetry] otelHeadersHelper did not return a valid value"),null;let s;try{s=JSON.parse(i)}catch(a){return console.error(`[haiku/telemetry] otelHeadersHelper output is not valid JSON: ${a instanceof Error?a.message:String(a)}`),null}if(!s||typeof s!="object"||Array.isArray(s))return console.error("[haiku/telemetry] otelHeadersHelper must return a JSON object with string key-value pairs"),null;let o={};for(let[a,c]of Object.entries(s)){if(typeof c!="string")return console.error(`[haiku/telemetry] otelHeadersHelper returned non-string value for key "${a}": ${typeof c}`),null;o[a]=c}return o}function oqn(){let e=iqn();if(_I!==null&&Date.now()-Bfe({key:c,value:{stringValue:u}}))],s=JSON.stringify({resourceLogs:[{resource:{attributes:dqn},scopeLogs:[{scope:{name:"haiku"},logRecords:[{timeUnixNano:r,severityNumber:9,severityText:"INFO",body:{stringValue:e},attributes:i}]}]}]}),o=oqn(),a={"Content-Type":"application/json",...uqn,...o};fetch(cqn,{method:"POST",headers:a,body:s,signal:AbortSignal.timeout(lqn)}).catch(()=>{})}var zfe,rqn,_I,Bfe,cqn,uqn,tft,lqn,dqn,Gfe,Vfe,nft,fqn,pqn,eft,vo=v(()=>{"use strict";Ci();zfe=zo.telemetry;rqn=174e4,_I=null,Bfe=0;cqn=YHn(),uqn=JHn(),tft=XHn(),lqn=QHn(),dqn=aqn(),Gfe=$Hn(),Vfe=Gfe==="otlp",nft=tft==="http/json";zfe&&!Vfe&&Gfe!=="none"&&console.error(`[haiku/telemetry] OTEL_LOGS_EXPORTER="${Gfe}" not supported \u2014 telemetry disabled. Use "otlp" or unset.`);zfe&&Vfe&&!nft&&console.error(`[haiku/telemetry] OTLP protocol "${tft}" not supported \u2014 only http/json is implemented. Telemetry disabled.`);fqn=zfe&&Vfe&&nft,pqn=new Set(["diff_unified","excerpt","file_content","file_body","user_email","user_name","message_body","finding_body","fb_body","content","password","passwd","pwd","token","access_token","refresh_token","id_token","bearer_token","bearer","api_key","apikey","api-key","authorization","auth_header","auth","secret","client_secret","signing_secret","credential","credentials","session_id","cookie","private_key","pem"]),eft=new Set});import{existsSync as Lu,mkdirSync as mqn,readdirSync as TI,readFileSync as ift,renameSync as gqn,rmSync as Wfe,writeFileSync as yqn}from"node:fs";import{dirname as Sqn,join as ro}from"node:path";function vqn(e){return!1}function vI(e){let t=ift(e,"utf8"),n=(0,Kfe.default)(t);return{data:n.data,body:n.content}}function Zfe(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 Yfe(e,t,n){let r=Kfe.default.stringify(n,t);yqn(e,r)}function Jfe(e,t){let n={};for(let[r,i]of Object.entries(e))t.has(r)||(n[r]=i);return n}function oft(e){for(let t of e)if(typeof t=="string"&&t.length>0)return t;return new Date().toISOString()}function wqn(e,t){let n=ro(e,"intent.md");Lu(n)&&Zfe(n,()=>{let{data:r,body:i}=vI(n),s=Jfe(r,Eqn);s.plugin_version=sft,(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),Yfe(n,s,i),t.intent_md_migrated=!0},"intent.md")}function kqn(e,t,n,r){let i=ro(e,"units");if(!Lu(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);Zfe(a,()=>xqn(a,t,n,r),`unit ${o.name}`)}}function Iqn(e,t,n,r,i){let s={at:t,migrated:!0},o=e.reviews,a=[];try{a=Object.keys(_l(n,r)).sort()}catch{a=[]}let c=["spec",...a,"user"];for(let d of c)o[d]==null&&(o[d]=s,i.review_stamps_synthesized++);let u=e.approvals,l=["spec","quality_gates",...a,"user"];for(let d of l)u[d]==null&&(u[d]=s,i.approval_stamps_synthesized++)}function xqn(e,t,n,r){let{data:i,body:s}=vI(e),o=i.status==="completed",a=typeof i.completed_at=="string"?i.completed_at:null,c=Jfe(i,bqn);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=oft([a]);Iqn(c,u,n,r,t),t.units_with_synthesized_approval++}Yfe(e,c,s),t.units_migrated++}function rft(e,t,n){if(!Lu(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);Zfe(s,()=>Nqn(s,t,n),`feedback ${i.name}`)}}function Oqn(e,t,n){let r=t.upstream_stage;if(typeof r!="string"||!r)return null;let s=Sqn(e).match(/\/stages\/([^/]+)\/feedback\/?$/);if((s?s[1]:"")===r)return null;let a=ro(n,"stages",r,"feedback");if(!Lu(a))try{mqn(a,{recursive:!0})}catch{return null}let c=new Set;for(let h of TI(a).filter(m=>m.endsWith(".md"))){let m=h.match(/^(\d+)-/);m&&c.add(Number.parseInt(m[1],10))}let u=1;for(;c.has(u);)u++;let l=e.split("/").pop()??"",d=l.match(/^\d+-(.+\.md)$/),f=d?`${String(u).padStart(2,"0")}-${d[1]}`:`${String(u).padStart(2,"0")}-${l}`,p=ro(a,f);return Lu(p)?null:(gqn(e,p),p)}function Nqn(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=Jfe(r,Aqn);if((typeof a.iterations!="object"||!Array.isArray(a.iterations))&&(a.iterations=r.iterations??[]),Array.isArray(a.iterations))for(let l of a.iterations)l&&l.result==="rejected"&&(l.result="reject"),l&&l.result==="advanced"&&(l.result="advance");(typeof a.targets!="object"||a.targets===null)&&(a.targets={unit:null,invalidates:[]});let c=!1;a.closed_at==null&&(Rqn.has(s)?(a.closed_at=oft([o,r.created_at]),c=!0):a.closed_at=null),Yfe(e,a,i),n.feedback_migrated++,c&&n.feedback_with_synthesized_closure++,Oqn(e,r,t)&&n.feedback_relocated++}function Pqn(e){let{intentDir:t}=e,n=pc();wqn(t,n);let r="",i=ro(t,"intent.md");if(Lu(i))try{let o=vI(i).data;typeof o.studio=="string"&&(r=o.studio)}catch{r=""}let s=ro(t,"stages");if(Lu(s))for(let o of TI(s,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=ro(s,o.name),c=o.name;kqn(a,n,r,c),rft(ro(a,"feedback"),t,n);let u=ro(a,"state.json");Lu(u)&&(Wfe(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)&&(Wfe(d,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}}rft(ro(t,"feedback"),t,n);for(let o of["baseline.json","drift-markers.json","baseline-content"]){let a=ro(t,o);Lu(a)&&(Wfe(a,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}return n}function W4(e){let t=ro(e,"intent.md");if(Lu(t))try{let r=vI(t).data;for(let i of _qn)if(i in r)return!0}catch{}let n=ro(e,"stages");if(!Lu(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(Lu(s)){let a=TI(s).filter(c=>c.endsWith(".md"));for(let c of a)try{let u=vI(ro(s,c)).data;for(let l of Tqn)if(l in u)return!0;if(vqn(u))return!0}catch{}}let o=ro(i,"state.json");if(Lu(o))try{let a=JSON.parse(ift(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 Kfe,sft,Eqn,bqn,_qn,Tqn,Aqn,Rqn,K4=v(()=>{"use strict";Kfe=Se(Kt(),1);Kn();vo();Nh();sft="4.0.0",Eqn=new Set(["status","active_stage","phase","completed_at","iteration","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at","composite","intent_reviewed","gate_review_session_id","gate_review_url","gate_review_context","gate_review_next_stage","gate_review_next_phase","autopilot","intent_completion_review"]),bqn=new Set(["status","hat","bolt","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]),_qn=new Set(["active_stage","phase","iteration","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at","composite","intent_reviewed","autopilot"]),Tqn=new Set(["status","bolt","hat","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]);Aqn=new Set(["status","bolt","triaged_at","closed_by","resolution","iteration","visit","integrator_attempts","upstream_stage"]),Rqn=new Set(["closed","answered","addressed","rejected"]);Nu("0",sft,Pqn)});var zL={};Rr(zL,{GIT_NETWORK_TIMEOUT_MS:()=>Aa,GIT_NONINTERACTIVE_ENV:()=>Ra,addTempWorktree:()=>X4,branchAheadOfOrigin:()=>eK,branchExists:()=>Nt,buildCompareUrl:()=>ope,checkoutFromBranchOnIntentMain:()=>Wqn,cleanupDiscoveryWorktree:()=>Xqn,cleanupFixChainWorktree:()=>rK,cleanupIntentWorktrees:()=>BL,cleanupOrphanedStageBranches:()=>tK,cleanupUnitWorktree:()=>vpe,commitAndPushFromWorktree:()=>$4,consolidateStageBranches:()=>hpe,createDiscoveryWorktree:()=>bpe,createFixChainWorktree:()=>Tpe,createIntentBranch:()=>RI,createStageBranch:()=>fpe,createUnitWorktree:()=>Spe,deleteBranch:()=>GL,deleteStageBranch:()=>yE,detectPrTool:()=>UL,discoveryBranchName:()=>kI,discoveryWorktreePath:()=>wI,ensureOnIntentMain:()=>lpe,ensureOnStageBranch:()=>gr,ensureStageBranch:()=>gE,fetchOrigin:()=>OT,finalizeIntentBranches:()=>Ape,fixChainBranchName:()=>HL,fixChainWorktreePath:()=>yg,getCurrentBranch:()=>mr,getMainlineBranch:()=>Yo,hasGitRemote:()=>rpe,hasNoMergeDebt:()=>LL,isAncestor:()=>Du,isBranchMerged:()=>Zc,isCurrentWorktreeLocked:()=>zqn,isLiveWorktree:()=>dft,isMergeInProgress:()=>hE,isOnIntentBranch:()=>Hqn,isOnStageBranch:()=>dpe,listIntentBranches:()=>J4,listOrphanDiscreteIntents:()=>tpe,markPullRequestReady:()=>cpe,mergeDiscoveryWorktree:()=>_pe,mergeFixChainWorktree:()=>qL,mergeStageBranchForward:()=>ppe,mergeStageBranchIntoMain:()=>jL,mergeUnitWorktree:()=>Epe,openIntentDraftPullRequest:()=>ape,openPullRequest:()=>AI,openStagePullRequest:()=>Fqn,prepareRevisitBranch:()=>Qqn,pushBranchToOrigin:()=>gg,pushFixChainWorktree:()=>spe,pushStageBranch:()=>FL,pushUnitWorktree:()=>ipe,readFileFromBranch:()=>mpe,reconcileIntentBranches:()=>upe,reconcileMisroutedStageMerges:()=>jqn,refsHaveIdenticalTrees:()=>Y4,removeTempWorktree:()=>Q4,resolveMainlineRef:()=>epe,syncBranchDownstream:()=>$fe,uncommittedAgentWork:()=>gpe,unitBranchExists:()=>npe,unitSpecInWorktree:()=>Gqn,unitWorktreePath:()=>mE,writeOnIntentMain:()=>Vqn});import{execFileSync as Kr}from"node:child_process";import{existsSync as io,writeFileSync as Xfe,mkdirSync as ML,mkdtempSync as Cqn,readFileSync as Mqn,rmSync as Qfe}from"node:fs";import{tmpdir as Lqn}from"node:os";import{join as es}from"node:path";function zt(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 zt(e,t)}catch{return""}}function Dqn(e){if(!(e instanceof Error))return String(e);let t=e.stderr;return[e.message,t?t.toString():""].join(` -`)}function Y4(e,t){let n=ae(["git","rev-parse",`${e}^{tree}`]);if(!n)return!1;let r=ae(["git","rev-parse",`${t}^{tree}`]);return r?n===r:!1}function hE(){if(!Ae())return!1;let e=ae(["git","rev-parse","--git-dir"]);if(!e)return!1;let t=e.startsWith("/")?e:es(process.cwd(),e);for(let n of["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(io(es(t,n)))return!0;return!1}function LL(e,t){return!!(Y4(e,t)||Du(e,t))}function Z4(e,t){try{return Kr(e[0],e.slice(1),{encoding:"utf8",stdio:"pipe",cwd:t,timeout:Aa,env:Ra}).trim()}catch{return""}}function mr(){return ae(["git","rev-parse","--abbrev-ref","HEAD"])}function Nt(e){return Ae()?ae(["git","rev-parse","--verify",e])!=="":!1}function $fe(e){if(!Ae())return{ok:!0,performed:!1,message:"non-git mode"};let t=Yo(),n=`haiku/${e}/main`,r=mr(),i=!1;if(t&&n&&Nt(n)){let s=ae(["git","rev-parse","--verify",`origin/${t}`])?`origin/${t}`:"",o=Nt(t),a=s&&o&&Du(t,s)&&ae(["git","rev-parse","--verify",t])!==ae(["git","rev-parse","--verify",s]),c=o?a?s:t:s;if(c&&!LL(c,n)){let u=Uqn(c,n,r,`haiku: merge ${c} \u2192 ${n} (pre-cursor sync)`,e);if(!u.ok)return{ok:!1,performed:i,conflictAt:"mainline_to_intent_main",conflictFiles:u.conflictFiles,conflictBranch:n,message:u.message};u.performed&&(i=!0)}}if(n&&Nt(n)&&r&&r!==n&&r.startsWith(`haiku/${e}/`)&&!Y4(r,n)){let s=uft(n,`haiku: merge ${n} \u2192 ${r} (pre-cursor sync)`,e);if(!s.ok)return{ok:!1,performed:i,conflictAt:"intent_main_to_stage",conflictFiles:s.conflictFiles,conflictBranch:r,message:s.message};s.performed&&(i=!0)}return{ok:!0,performed:i}}function Uqn(e,t,n,r,i){if(n===t)return uft(e,r,i);try{return Lh(t,o=>DL(["-C",o],e,i,r))}catch(s){return{ok:!1,performed:!1,message:s instanceof Error?s.message:String(s)}}}function DL(e,t,n,r){let i=null;try{zt(["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};nK(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(", ")}.`}:(zt(["git",...e,"commit","--no-edit","-m",r]),{ok:!0,performed:!0})}function uft(e,t,n){return DL([],e,n,t)}function Yo(){if(!Ae())return"main";let e=ae(["git","symbolic-ref","--short","refs/remotes/origin/HEAD"]);if(e){let n=e.match(/^origin\/(.+)$/);if(n)return n[1]}for(let n of["main","master"])if(ae(["git","rev-parse","--verify",n])||ae(["git","rev-parse","--verify",`origin/${n}`]))return n;return ae(["git","config","--get","init.defaultBranch"])||"main"}function epe(){if(!Ae())return"";let e=Yo();return ae(["git","rev-parse","--verify",e])?e:ae(["git","rev-parse","--verify",`origin/${e}`])?`origin/${e}`:""}function OT(){if(!Ae())return!1;try{return Kr("git",["fetch","--prune","origin"],{stdio:"pipe",timeout:Aa,env:Ra}),!0}catch{return!1}}function J4(){if(!Ae())return[];let e=new Set,t=ae(["git","for-each-ref","--format=%(refname:short)","refs/heads/haiku"]);for(let r of t.split(` +`)}function tft(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 cqn(){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 kI(){let e=Mu().join("|"),t=Date.now();if(HD&&HD.key===e&&HD.expiresAt>t)return HD.value;let n=cqn();return HD={key:e,expiresAt:t+aqn,value:n},n}function si(e){if(!e)return null;let t=e.toLowerCase(),n=kI();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 Zfe(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 uft(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,aqn,HD,Kn=v(()=>{"use strict";Gfe();Ci();pb();ze();Mu=Qdt;aqn=2e3,HD=null});import{spawnSync as uqn}from"node:child_process";import{readFileSync as lqn}from"node:fs";import{homedir as dqn}from"node:os";import{join as Jfe}from"node:path";function Md(e){let t=(process.env[`HAIKU_${e}`]??"").trim();return t||(process.env[e]??"").trim()}function lft(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 fqn(){let e=Md("OTEL_EXPORTER_OTLP_LOGS_ENDPOINT");return e||`${(Md("OTEL_EXPORTER_OTLP_ENDPOINT")||"http://localhost:4318").replace(/\/$/,"")}/v1/logs`}function pqn(){let e=Md("OTEL_EXPORTER_OTLP_LOGS_HEADERS");return lft(e||Md("OTEL_EXPORTER_OTLP_HEADERS"))}function hqn(){let e=Md("OTEL_EXPORTER_OTLP_LOGS_PROTOCOL");return e||Md("OTEL_EXPORTER_OTLP_PROTOCOL")||"http/json"}function mqn(){let e=Number(Md("OTEL_EXPORTER_OTLP_LOGS_TIMEOUT"));if(Number.isFinite(e)&&e>0)return e;let t=Number(Md("OTEL_EXPORTER_OTLP_TIMEOUT"));return Number.isFinite(t)&&t>0?t:1e4}function gqn(){return Md("OTEL_LOGS_EXPORTER").toLowerCase()||"otlp"}function yqn(e){try{let t=lqn(e,"utf8"),n=JSON.parse(t);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{}return null}function Sqn(){let e={},t=dqn(),n=process.cwd(),r=[t?Jfe(t,".claude","settings.json"):null,Jfe(n,".claude","settings.json"),Jfe(n,".claude","settings.local.json")].filter(i=>i!==null);for(let i of r){let s=yqn(i);s&&Object.assign(e,s)}return e}function bqn(){let t=Sqn().otelHeadersHelper;return typeof t=="string"?t.trim():""}function _qn(){let e=Number(Md("CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS"));return Number.isFinite(e)&&e>0?e:Eqn}function Tqn(e){let[t,...n]=e.split(/\s+/).filter(Boolean);if(!t)return null;let r=uqn(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 vqn(){let e=_qn();if(II!==null&&Date.now()-Xfe({key:c,value:{stringValue:u}}))],s=JSON.stringify({resourceLogs:[{resource:{attributes:Iqn},scopeLogs:[{scope:{name:"haiku"},logRecords:[{timeUnixNano:r,severityNumber:9,severityText:"INFO",body:{stringValue:e},attributes:i}]}]}]}),o=vqn(),a={"Content-Type":"application/json",...wqn,...o};fetch(Aqn,{method:"POST",headers:a,body:s,signal:AbortSignal.timeout(kqn)}).catch(()=>{})}var $fe,Eqn,II,Xfe,Aqn,wqn,fft,kqn,Iqn,Qfe,epe,pft,xqn,Oqn,dft,vo=v(()=>{"use strict";Ci();$fe=Go.telemetry;Eqn=174e4,II=null,Xfe=0;Aqn=fqn(),wqn=pqn(),fft=hqn(),kqn=mqn(),Iqn=Rqn(),Qfe=gqn(),epe=Qfe==="otlp",pft=fft==="http/json";$fe&&!epe&&Qfe!=="none"&&console.error(`[haiku/telemetry] OTEL_LOGS_EXPORTER="${Qfe}" not supported \u2014 telemetry disabled. Use "otlp" or unset.`);$fe&&epe&&!pft&&console.error(`[haiku/telemetry] OTLP protocol "${fft}" not supported \u2014 only http/json is implemented. Telemetry disabled.`);xqn=$fe&&epe&&pft,Oqn=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"]),dft=new Set});import{existsSync as Lu,mkdirSync as Nqn,readdirSync as xI,readFileSync as mft,renameSync as Cqn,rmSync as tpe,writeFileSync as Mqn}from"node:fs";import{dirname as Dqn,join as ro}from"node:path";function Hqn(e){return!1}function OI(e){let t=mft(e,"utf8"),n=(0,npe.default)(t);return{data:n.data,body:n.content}}function rpe(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 ipe(e,t,n){let r=npe.default.stringify(n,t);Mqn(e,r)}function spe(e,t){let n={};for(let[r,i]of Object.entries(e))t.has(r)||(n[r]=i);return n}function yft(e){for(let t of e)if(typeof t=="string"&&t.length>0)return t;return new Date().toISOString()}function zqn(e,t){let n=ro(e,"intent.md");Lu(n)&&rpe(n,()=>{let{data:r,body:i}=OI(n),s=spe(r,Lqn);s.plugin_version=gft,(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),ipe(n,s,i),t.intent_md_migrated=!0},"intent.md")}function Gqn(e,t,n,r){let i=ro(e,"units");if(!Lu(i))return;let s=xI(i,{withFileTypes:!0});for(let o of s){if(!o.isFile()||!o.name.endsWith(".md"))continue;let a=ro(i,o.name);rpe(a,()=>Wqn(a,t,n,r),`unit ${o.name}`)}}function Vqn(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 Wqn(e,t,n,r){let{data:i,body:s}=OI(e),o=i.status==="completed",a=typeof i.completed_at=="string"?i.completed_at:null,c=spe(i,Uqn);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=yft([a]);Vqn(c,u,n,r,t),t.units_with_synthesized_approval++}ipe(e,c,s),t.units_migrated++}function hft(e,t,n){if(!Lu(e))return;let r=xI(e,{withFileTypes:!0});for(let i of r){if(!i.isFile()||!i.name.endsWith(".md"))continue;let s=ro(e,i.name);rpe(s,()=>Yqn(s,t,n),`feedback ${i.name}`)}}function Kqn(e,t,n){let r=t.upstream_stage;if(typeof r!="string"||!r)return null;let s=Dqn(e).match(/\/stages\/([^/]+)\/feedback\/?$/);if((s?s[1]:"")===r)return null;let a=ro(n,"stages",r,"feedback");if(!Lu(a))try{Nqn(a,{recursive:!0})}catch{return null}let c=new Set;for(let h of xI(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:(Cqn(e,p),p)}function Yqn(e,t,n){let{data:r,body:i}=OI(e),s=typeof r.status=="string"?r.status:"",o=typeof r.closed_by=="string"?r.closed_by:null,a=spe(r,qqn);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&&(Bqn.has(s)?(a.closed_at=yft([o,r.created_at]),c=!0):a.closed_at=null),ipe(e,a,i),n.feedback_migrated++,c&&n.feedback_with_synthesized_closure++,Kqn(e,r,t)&&n.feedback_relocated++}function Zqn(e){let{intentDir:t}=e,n=hc();zqn(t,n);let r="",i=ro(t,"intent.md");if(Lu(i))try{let o=OI(i).data;typeof o.studio=="string"&&(r=o.studio)}catch{r=""}let s=ro(t,"stages");if(Lu(s))for(let o of xI(s,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=ro(s,o.name),c=o.name;Gqn(a,n,r,c),hft(ro(a,"feedback"),t,n);let u=ro(a,"state.json");Lu(u)&&(tpe(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)&&(tpe(d,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}}hft(ro(t,"feedback"),t,n);for(let o of["baseline.json","drift-markers.json","baseline-content"]){let a=ro(t,o);Lu(a)&&(tpe(a,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}return n}function e3(e){let t=ro(e,"intent.md");if(Lu(t))try{let r=OI(t).data;for(let i of Fqn)if(i in r)return!0}catch{}let n=ro(e,"stages");if(!Lu(n))return!1;for(let r of xI(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=ro(n,r.name),s=ro(i,"units");if(Lu(s)){let a=xI(s).filter(c=>c.endsWith(".md"));for(let c of a)try{let u=OI(ro(s,c)).data;for(let l of jqn)if(l in u)return!0;if(Hqn(u))return!0}catch{}}let o=ro(i,"state.json");if(Lu(o))try{let a=JSON.parse(mft(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 npe,gft,Lqn,Uqn,Fqn,jqn,qqn,Bqn,t3=v(()=>{"use strict";npe=Re(Kt(),1);Kn();vo();Nh();gft="4.0.0",Lqn=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"]),Uqn=new Set(["status","hat","bolt","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]),Fqn=new Set(["active_stage","phase","iteration","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at","composite","intent_reviewed","autopilot"]),jqn=new Set(["status","bolt","hat","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]);qqn=new Set(["status","bolt","triaged_at","closed_by","resolution","iteration","visit","integrator_attempts","upstream_stage"]),Bqn=new Set(["closed","answered","addressed","rejected"]);Nu("0",gft,Zqn)});var MI={};Ar(MI,{GIT_NETWORK_TIMEOUT_MS:()=>Ra,GIT_NONINTERACTIVE_ENV:()=>Aa,addTempWorktree:()=>s3,branchAheadOfOrigin:()=>u3,branchExists:()=>Pt,buildCompareUrl:()=>c3,checkoutFromBranchOnIntentMain:()=>uBn,cleanupDiscoveryWorktree:()=>hBn,cleanupFixChainWorktree:()=>f3,cleanupIntentWorktrees:()=>QD,cleanupOrphanedStageBranches:()=>l3,cleanupUnitWorktree:()=>Npe,commitAndPushFromWorktree:()=>a3,consolidateStageBranches:()=>vpe,createDiscoveryWorktree:()=>xpe,createFixChainWorktree:()=>Ppe,createIntentBranch:()=>PI,createStageBranch:()=>_pe,createUnitWorktree:()=>kpe,deleteBranch:()=>$D,deleteStageBranch:()=>bb,detectPrTool:()=>CT,discoveryBranchName:()=>CI,discoveryWorktreePath:()=>NI,ensureOnIntentMain:()=>bpe,ensureOnStageBranch:()=>yr,ensureStageBranch:()=>Sb,fetchOrigin:()=>NT,finalizeIntentBranches:()=>Cpe,fixChainBranchName:()=>JD,fixChainWorktreePath:()=>Sg,getCurrentBranch:()=>gr,getMainlineBranch:()=>Zo,hasGitRemote:()=>fpe,hasNoMergeDebt:()=>WD,isAncestor:()=>Uu,isBranchMerged:()=>Zc,isCurrentWorktreeLocked:()=>aBn,isLiveWorktree:()=>Tft,isMergeInProgress:()=>gb,isOnIntentBranch:()=>rBn,isOnStageBranch:()=>Epe,listIntentBranches:()=>i3,listOrphanDiscreteIntents:()=>lpe,markPullRequestReady:()=>ype,mergeDiscoveryWorktree:()=>Ope,mergeFixChainWorktree:()=>XD,mergeStageBranchForward:()=>Tpe,mergeStageBranchIntoMain:()=>ZD,mergeUnitWorktree:()=>Ipe,openIntentDraftPullRequest:()=>mpe,openPullRequest:()=>MT,openStageDraftPullRequest:()=>gpe,openStagePullRequest:()=>tBn,prepareRevisitBranch:()=>mBn,pushBranchToOrigin:()=>Lh,pushFixChainWorktree:()=>hpe,pushStageBranch:()=>YD,pushUnitWorktree:()=>ppe,readFileFromBranch:()=>Rpe,reconcileIntentBranches:()=>Spe,reconcileMisroutedStageMerges:()=>nBn,refsHaveIdenticalTrees:()=>r3,removeTempWorktree:()=>o3,resolveMainlineRef:()=>upe,syncBranchDownstream:()=>cpe,uncommittedAgentWork:()=>Ape,unitBranchExists:()=>dpe,unitSpecInWorktree:()=>oBn,unitWorktreePath:()=>yb,writeOnIntentMain:()=>cBn});import{execFileSync as Kr}from"node:child_process";import{existsSync as io,writeFileSync as ope,mkdirSync as VD,mkdtempSync as Jqn,readFileSync as Xqn,rmSync as ape}from"node:fs";import{tmpdir as Qqn}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 $qn(e){if(!(e instanceof Error))return String(e);let t=e.stderr;return[e.message,t?t.toString():""].join(` +`)}function r3(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 gb(){if(!Ee())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 WD(e,t){return!!(r3(e,t)||Uu(e,t))}function n3(e,t){try{return Kr(e[0],e.slice(1),{encoding:"utf8",stdio:"pipe",cwd:t,timeout:Ra,env:Aa}).trim()}catch{return""}}function gr(){return ae(["git","rev-parse","--abbrev-ref","HEAD"])}function Pt(e){return Ee()?ae(["git","rev-parse","--verify",e])!=="":!1}function cpe(e){if(!Ee())return{ok:!0,performed:!1,message:"non-git mode"};let t=Zo(),n=`haiku/${e}/main`,r=gr(),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&&!WD(c,n)){let u=eBn(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}/`)&&!r3(r,n)){let s=Eft(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 eBn(e,t,n,r,i){if(n===t)return Eft(e,r,i);try{return Uh(t,o=>KD(["-C",o],e,i,r))}catch(s){return{ok:!1,performed:!1,message:s instanceof Error?s.message:String(s)}}}function KD(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};d3(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 Eft(e,t,n){return KD([],e,n,t)}function Zo(){if(!Ee())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 upe(){if(!Ee())return"";let e=Zo();return ae(["git","rev-parse","--verify",e])?e:ae(["git","rev-parse","--verify",`origin/${e}`])?`origin/${e}`:""}function NT(){if(!Ee())return!1;try{return Kr("git",["fetch","--prune","origin"],{stdio:"pipe",timeout:Ra,env:Aa}),!0}catch{return!1}}function i3(){if(!Ee())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 tpe(){if(!Ae())return[];let e=new Set(J4()),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(!Ae())return!1;let n=[t,`origin/${t}`],r=ae(["git","rev-parse","--verify",e])||ae(["git","rev-parse","--verify",`origin/${e}`]);if(!r)return!1;for(let o of n){let a=ae(["git","rev-parse","--verify",o]);if(a)try{return Kr("git",["merge-base","--is-ancestor",r,a],{stdio:"ignore"}),!0}catch{}}let i=UL(),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 X4(e,t="haiku-repair",n=!1){if(!Ae())throw new Error("not a git repo");let r=es("/tmp",`${t}-${Date.now()}-${Math.floor(Math.random()*1e6)}`),i=ae(["git","rev-parse","--verify",e]),s=ae(["git","rev-parse","--verify",`origin/${e}`]),o;if(n?o=s?`origin/${e}`:i?e:"":o=i?e:s?`origin/${e}`:"",!o)throw new Error(`branch '${e}' not found locally or on origin`);return zt(["git","worktree","add","--detach",r,o]),r}function Q4(e){e&&io(e)&&ae(["git","worktree","remove","--force",e])}function $4(e,t,n){if(!Ae())return{committed:!1,pushed:!1,pushError:"not a git repo"};if(ae(["git","-C",e,"add","-A"]),!ae(["git","-C",e,"status","--porcelain"]))return{committed:!1,pushed:!1};try{Kr("git",["-C",e,"commit","-m",n],{stdio:"pipe"})}catch(a){return{committed:!1,pushed:!1,pushError:a instanceof Error?a.message:String(a)}}let i=()=>{try{return Kr("git",["-C",e,"push","origin",`HEAD:refs/heads/${t}`],{stdio:"pipe",timeout:Aa,env:Ra}),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}},s=i();if(s.ok)return{committed:!0,pushed:!0};if(/non-fast-forward|fetch first|behind the remote/i.test(s.error??"")){Z4(["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 UL(){return ae(["which","gh"])?"gh":ae(["which","glab"])?"glab":null}function AI(e,t,n,r,i){let s=UL();if(!s)return{ok:!1,error:"no PR tool (gh/glab) found on PATH"};let o=i?.draft===!0;try{if(s==="gh"){let d=ae(["gh","pr","list","--head",e,"--state","open","--json","url","--jq",".[0].url"]);if(d)return{ok:!0,url:d};let f=["pr","create"];return o&&f.push("--draft"),f.push("--base",t,"--head",e,"--title",n,"--body",r),{ok:!0,url:Kr("gh",f,{encoding:"utf8",timeout:Aa,env:Ra}).trim()}}let c=Z4(["glab","mr","list","--source-branch",e,"--state","opened","--per-page","1"]).match(/^!(\d+)\b/m);if(c){let d=c[1],f=Z4(["glab","mr","view",d,"--output","json"]);if(f)try{let p=JSON.parse(f);if(p.web_url)return{ok:!0,url:p.web_url}}catch{}}let u=["mr","create"];return o&&u.push("--draft"),u.push("--target-branch",t,"--source-branch",e,"--title",n,"--description",r),{ok:!0,url:Kr("glab",u,{encoding:"utf8",timeout:Aa,env:Ra}).trim()}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}function npe(e,t){if(!Ae())return{local:!1,remote:!1};let n=`haiku/${e}/${t}`,r=!!ae(["git","branch","--list",n])?.trim();ae(["git","fetch","origin",n]);let i=!!ae(["git","rev-parse","--verify","--quiet",`refs/remotes/origin/${n}`])?.trim();return{local:r,remote:i}}function rpe(){return Ae()?!!ae(["git","remote"])?.trim():!1}function ipe(e,t){if(!Ae())return;let n=mE(e,t);if(!io(n))return;let r=`haiku/${e}/${t}`;try{ae(["git","-C",n,"add","-A"]);let i=ae(["git","-C",n,"status","--porcelain"]);i&&i.trim().length>0&&ae(["git","-C",n,"commit","-m",`haiku: checkpoint ${t}`]),Kr("git",["-C",n,"push","origin",`HEAD:refs/heads/${r}`],{stdio:"pipe",timeout:Aa,env:Ra})}catch{}}function spe(e,t,n){if(!Ae())return;let r=yg(e,t,n);if(!io(r))return;let i=HL(e,t,n);try{ae(["git","-C",r,"add","-A"]);let s=ae(["git","-C",r,"status","--porcelain"]);s&&s.trim().length>0&&ae(["git","-C",r,"commit","-m",`haiku: checkpoint fix-chain ${n}`]),Kr("git",["-C",r,"push","origin",`HEAD:refs/heads/${i}`],{stdio:"pipe",timeout:Aa,env:Ra})}catch{}}function gg(e){try{return Kr("git",["push","-u","origin",e],{encoding:"utf8",stdio:"pipe",timeout:Aa,env:Ra}),{ok:!0}}catch(t){return{ok:!1,error:t instanceof Error?t.message:String(t)}}}function ope(e,t){let n="";try{n=Kr("git",["remote","get-url","origin"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{return null}if(!n)return null;let r="",i="",s=n.match(/^[^@\s]+@([^:]+):(.+?)(?:\.git)?$/);if(s)r=s[1],i=s[2];else try{let d=new URL(n);r=d.hostname,i=d.pathname.replace(/^\/+/,"").replace(/\.git$/,"")}catch{return null}let o=i.split("/").filter(Boolean);if(o.length<2)return null;let a=o[0],c=o.slice(1).join("/"),u=encodeURIComponent(e),l=encodeURIComponent(t);return r==="github.com"?`https://github.com/${a}/${c}/compare/${l}...${u}?expand=1`:r==="gitlab.com"?`https://gitlab.com/${a}/${c}/-/merge_requests/new?merge_request%5Bsource_branch%5D=${u}&merge_request%5Btarget_branch%5D=${l}`:null}function Fqn(e){let t=`haiku/${e.slug}/${e.stage}`,n=`haiku/${e.slug}/main`,r=e.title??`H\xB7AI\xB7K\xB7U: ${e.slug} \u2014 stage ${e.stage} review`,i=e.body??`Stage \`${e.stage}\` is ready for review on intent \`${e.slug}\`. +`).filter(Boolean)){let i=r.match(/^origin\/haiku\/([^/]+)\/main$/);i&&e.add(i[1])}return Array.from(e).sort()}function lpe(){if(!Ee())return[];let e=new Set(i3()),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(!Ee())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=CT(),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 s3(e,t="haiku-repair",n=!1){if(!Ee())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 o3(e){e&&io(e)&&ae(["git","worktree","remove","--force",e])}function a3(e,t,n){if(!Ee())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??"")){n3(["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 CT(){return ae(["which","gh"])?"gh":ae(["which","glab"])?"glab":null}function MT(e,t,n,r,i){let s=CT();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=n3(["glab","mr","list","--source-branch",e,"--state","opened","--per-page","1"]).match(/^!(\d+)\b/m);if(c){let d=c[1],f=n3(["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 dpe(e,t){if(!Ee())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 fpe(){return Ee()?!!ae(["git","remote"])?.trim():!1}function ppe(e,t){if(!Ee())return;let n=yb(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 hpe(e,t,n){if(!Ee())return;let r=Sg(e,t,n);if(!io(r))return;let i=JD(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 Lh(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 c3(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 tBn(e){let t=`haiku/${e.slug}/${e.stage}`,n=`haiku/${e.slug}/main`,r=e.title??`H\xB7AI\xB7K\xB7U: ${e.slug} \u2014 stage ${e.stage} review`,i=e.body??`Stage \`${e.stage}\` is ready for review on intent \`${e.slug}\`. -Merging this PR signals approval to the H\xB7AI\xB7K\xB7U workflow engine.`;if(!Ae())return{branch:t,base:n,message:"This is not a git repo \u2014 stage progression is driven by per-unit signature state, not a git merge. Nothing to open."};let s=gg(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=AI(t,n,r,i);if(c.ok&&c.url)return o.createdUrl=c.url,o.message=`Stage PR opened: ${c.url}`,o;o.prError=c.error}let a=ope(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 ape(e){let t=`haiku/${e.slug}/main`,n=Yo(),r=e.title??`H\xB7AI\xB7K\xB7U: ${e.slug}`,i=e.body??`Intent \`${e.slug}\` is in flight. The H\xB7AI\xB7K\xB7U engine opened this PR as a draft so the work can be watched as stages land. The engine will mark it ready when the intent completes.`;if(!Ae())return{branch:t,base:n,message:"Not a git repo \u2014 no draft PR opened."};let s=gg(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=AI(t,n,r,i,{draft:!0});if(c.ok&&c.url)return o.createdUrl=c.url,o.message=`Draft PR opened: ${c.url}`,o;o.prError=c.error}let a=ope(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 cpe(e){if(!e)return{ok:!1,error:"empty url"};let t;try{t=new URL(e)}catch{return{ok:!1,error:`not a valid URL: ${e}`}}try{if(t.hostname.includes("github"))return Kr("gh",["pr","ready",e],{encoding:"utf8",stdio:"pipe",timeout:Aa,env:Ra}),{ok:!0};if(t.hostname.includes("gitlab")){let n=t.pathname.match(/\/merge_requests\/(\d+)/);return n?(Kr("glab",["mr","update",n[1],"--ready"],{encoding:"utf8",stdio:"pipe",timeout:Aa,env:Ra}),{ok:!0}):{ok:!1,error:"could not parse MR iid from URL"}}return{ok:!1,error:`unrecognised provider host: ${t.hostname}`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}}function FL(e,t){if(!Ae())return{ok:!0,skipped:!0};if(process.env.HAIKU_NO_AUTO_PUSH==="1")return{ok:!0,skipped:!0};let n=`haiku/${e}/${t}`;return Nt(n)?ae(["git","remote","get-url","origin"])?eK(n)?gg(n):{ok:!0,skipped:!0}:{ok:!0,skipped:!0}:{ok:!0,skipped:!0}}function eK(e){if(!Ae()||!ae(["git","rev-parse",e]))return!1;if(!ae(["git","rev-parse",`origin/${e}`]))return!0;let r=ae(["git","rev-list","--count",`origin/${e}..${e}`]);return r?Number.parseInt(r,10)>0:!1}function jqn(e,t){if(!Ae())return[];let n=[],r=Yo(),i=`haiku/${e}/main`;if(!r||!Nt(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||Du(c,u)&&aft(c,u)>0)continue;let l=ae(["git","rev-parse","--verify",`origin/${r}`])||ae(["git","rev-parse","--verify",r]);if(!l||!Du(c,l)||aft(c,l)<=0)continue;if(a.misrouted=!0,!Du(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 upe(e){let t={intentMainFastForwarded:!1,stageBranchFastForwarded:!1};if(!Ae())return t;OT();let n=`haiku/${e}/main`,r=Yo();if(!Nt(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(Du(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 Du(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&&Du(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 Du(e,t){if(!e||!t)return!1;try{return Kr("git",["merge-base","--is-ancestor",e,t],{stdio:"ignore"}),!0}catch{return!1}}function aft(e,t){let n=ae(["git","rev-list","--count",`${e}..${t}`]),r=Number.parseInt(n,10);return Number.isFinite(r)?r:0}function Hqn(e){return mr()===`haiku/${e}/main`}function lpe(e){if(!Ae())return!0;let t=`haiku/${e}/main`;if(!Nt(t)||mr()===t)return!0;try{return xT(["checkout",t]),!0}catch{return!1}}function dpe(e,t){return mr()===`haiku/${e}/${t}`}function lft(e,t){if(ae(["git","rev-parse","--verify",e]))mr()!==e&&xT(["checkout",e]);else if(t)xT(["checkout","-b",e,t]);else try{xT(["checkout","-b",e])}catch{}return e}function RI(e,t){let n=`haiku/${e}/main`;return!Ae()||Nt(n)||zt(t?["git","branch",n,t]:["git","branch",n]),n}function fpe(e,t){if(t==="main")throw new Error("Stage name 'main' is reserved \u2014 it would collide with the intent hub branch");if(!Ae())return`haiku/${e}/${t}`;let n=`haiku/${e}/main`;return lft(`haiku/${e}/${t}`,n)}function ppe(e,t,n){if(!Ae())return{success:!0,message:"no git"};let r=`haiku/${e}/${t}`,i=`haiku/${e}/${n}`,s=mr();try{zt(["git","rev-parse","--verify",r]),zt(["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=DL(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 jL(e,t){if(!Ae())return{success:!0,message:"no git",noop:!0};let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`,i=`haiku: merge stage ${t} into main`,s=mr();try{let o=ae(["git","rev-parse","--verify",n]),a=ae(["git","rev-parse","--verify",`origin/${n}`]);if(!o&&!a)return{success:!0,noop:!0,message:`stage branch ${n} is missing locally and on origin \u2014 presumed merged-and-deleted in pre-v4 (3.x) workflow; treating as already merged`};if(zt(["git","rev-parse","--verify",n]),zt(["git","rev-parse","--verify",r]),LL(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=g=>{if(g.length===0)return[];nK(p,"HEAD",e);let E=h();return E.length===0&&ae(["git",...p,"commit","--no-edit","-m",i]),E},y=()=>{zt(["git",...p,"merge",n,"--no-ff","--no-edit","-m",i])};try{return y(),{conflictFiles:[]}}catch(g){let E=h();if(E.length>0)return{conflictFiles:m(E)};let S=Dqn(g);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"]),g;ae(["git",...p,"merge","--abort"]);let _=ae(["git",...p,"stash","push","-u","-m","haiku: pre-merge autostash (untracked clobber guard)"]);if(!/Saved working directory/i.test(_))throw g;try{y()}catch(T){let A=h();if(ae(["git",...p,"stash","pop"]),A.length>0)return{conflictFiles:m(A)};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=qqn(e,f)}catch(m){Bqn(e,m)}return{conflictFiles:[],postMergeMigration:h}},d;if(c===r)d=l();else if(c===n){CL(n);try{xT(["checkout",r])}catch(f){let p=f instanceof Error?f.message:String(f);return{success:!1,message:`cannot switch primary worktree from '${n}' to '${r}' for stage merge: ${p}`}}d=l()}else d=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&&Nt(s)&&mr()!==s&&!hE()&&ae(["git","checkout",s]),{success:!1,message:o instanceof Error?o.message:String(o)}}}function qqn(e,t){let n=t??Br(),r=es(n,".haiku","intents",e);if(!io(r))return{migrated:!1,unitsMigrated:0};if(!W4(r))return{migrated:!1,unitsMigrated:0};let i=q4({intentDir:r,repoRoot:n},"0","4.0.0");if(i.steps>0)try{let s=t?["-C",t]:[];zt(["git",...s,"add","-A"]),zt(["git",...s,"commit","-m",`haiku: post-merge v3\u2192v4 cleanup for ${e}`,"--allow-empty"])}catch{}return{migrated:i.steps>0,unitsMigrated:i.details.units_migrated}}function Bqn(e,t){try{Ke("haiku.post_merge_migrate.failed",{intent:e,error:String(t?.message??t)})}catch{}}function hpe(e,t){let n=`haiku/${e}/main`;if(!Ae())return{branch:n,success:!0,message:"no git"};if(t.length===0)return{branch:n,success:!0,message:"no stages"};try{let r=`haiku/${e}/${t[t.length-1]}`;if(zt(["git","rev-parse","--verify",r]),!Nt(n))return{branch:lft(n,r),success:!0,message:`created ${n} from ${r}`};let i=a=>{try{return zt(["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 mpe(e,t){if(!Ae())return null;try{return zt(["git","show",`${e}:${t}`])}catch{return null}}function mE(e,t){return es(Br(),".haiku","worktrees",e,t)}function yg(e,t,n){return es(Br(),".haiku","worktrees",e,`fix-${t}-${n}`)}function HL(e,t,n){return`haiku/${e}/fix-${t}-${n}`}function Gqn(e,t,n){let r=mE(e,n),i=n.endsWith(".md")?n:`${n}.md`;return es(r,".haiku","intents",e,"stages",t,"units",i)}function gE(e,t){let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;return!Ae()||Nt(n)||(Nt(r)||RI(e),NT(e),ae(["git","branch",n,r])),n}function xT(e){zt(["git",...e])}function zqn(){try{let e=Kr("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}).trim();if(!e)return!1;let t=e.startsWith("/")?e:es(process.cwd(),e),n=es(t,"locked");return io(n)}catch{return!1}}function gr(e,t){if(!Ae())return{ok:!0,branch:"",message:"no git",switched:!1};let n=`haiku/${e}/main`,r=t?`haiku/${e}/${t}`:"";t&&r&&!Nt(r)&&gE(e,t);let i=t&&Nt(r)?r:n,s=mr();if(!Nt(i)){let l=Yo();if(l&&Nt(l)&&s!==l){let d=ype(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 zt(["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=CL(s);if(m.ok)try{return zt(["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)&&Du(i,"HEAD")&&!Du("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=CL(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&&Nt(n)){let l=ae(["git","rev-list","--count",`${r}..${n}`]);if(l&&Number.parseInt(l,10)>0&&!Y4(r,n)){try{zt(["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 y=CL(s);if(y.ok)try{zt(["git","checkout",r])}catch(g){return{ok:!1,branch:mr()||s,message:`auto-committed WIP on '${s}' but retry checkout of '${r}' failed: ${g instanceof Error?g.message:String(g)}`,switched:!1,target_branch:r}}else return{ok:!1,branch:s,message:`Uncommitted changes on '${s}' block switch to '${r}' and auto-commit failed: ${y.message}`,switched:!1,block:"dirty_tree",dirty_files:cft(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=DL([],n,e,`haiku: merge intent-main \u2192 stage ${t} (workflow engine branch enforcement)`);if(d.ok)return{ok:!0,branch:r,message:`merged main \u2192 stage, now on ${r}`,switched:!0};let f=d.conflictFiles??[];return{ok:!1,branch:r,message:f.length>0?`Merge intent-main \u2192 stage '${t}' left ${f.length} conflicted file(s): ${f.join(", ")}. Resolve on '${r}', then \`git add\` + \`git commit\` and retry. +Merging this PR signals approval to the H\xB7AI\xB7K\xB7U workflow engine.`;if(!Ee())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=Lh(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=MT(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=c3(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 mpe(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(!Ee())return{branch:t,base:n,message:"Not a git repo \u2014 no draft PR opened."};let s=Lh(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=MT(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=c3(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 gpe(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}`,i=e.body??`Stage \`${e.stage}\` of intent \`${e.slug}\` is in flight. The H\xB7AI\xB7K\xB7U engine opened this PR as a draft so the stage's work \u2014 and its runtime-verification proof \u2014 can be watched as units land. The engine marks it ready at the stage gate; merging it signals approval.`;if(!Ee())return{branch:t,base:n,message:"Not a git repo \u2014 no draft stage PR opened."};let s=Lh(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=MT(t,n,r,i,{draft:!0});if(c.ok&&c.url)return o.createdUrl=c.url,o.message=`Draft stage PR opened: ${c.url}`,o;o.prError=c.error}let a=c3(t,n);return a?(o.compareUrl=a,o.message=s.ok?`Stage 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 stage PR at: ${a}`,o):(o.message=s.ok?`Pushed \`${t}\` but no compare URL could be built (origin host not recognised). Open the draft stage PR manually from \`${t}\` into \`${n}\`.`:`Failed to push \`${t}\` (${s.error}) and no compare URL could be built.`,o)}function ype(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 YD(e,t){if(!Ee())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"])?u3(n)?Lh(n):{ok:!0,skipped:!0}:{ok:!0,skipped:!0}:{ok:!0,skipped:!0}}function u3(e){if(!Ee()||!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 nBn(e,t){if(!Ee())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)&&Sft(c,u)>0)continue;let l=ae(["git","rev-parse","--verify",`origin/${r}`])||ae(["git","rev-parse","--verify",r]);if(!l||!Uu(c,l)||Sft(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=gr(),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=Lh(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 Spe(e){let t={intentMainFastForwarded:!1,stageBranchFastForwarded:!1};if(!Ee())return t;NT();let n=`haiku/${e}/main`,r=Zo();if(!Pt(n)||!r)return t;let i=gr(),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 Sft(e,t){let n=ae(["git","rev-list","--count",`${e}..${t}`]),r=Number.parseInt(n,10);return Number.isFinite(r)?r:0}function rBn(e){return gr()===`haiku/${e}/main`}function bpe(e){if(!Ee())return!0;let t=`haiku/${e}/main`;if(!Pt(t)||gr()===t)return!0;try{return PT(["checkout",t]),!0}catch{return!1}}function Epe(e,t){return gr()===`haiku/${e}/${t}`}function _ft(e,t){if(ae(["git","rev-parse","--verify",e]))gr()!==e&&PT(["checkout",e]);else if(t)PT(["checkout","-b",e,t]);else try{PT(["checkout","-b",e])}catch{}return e}function PI(e,t){let n=`haiku/${e}/main`;return!Ee()||Pt(n)||Gt(t?["git","branch",n,t]:["git","branch",n]),n}function _pe(e,t){if(t==="main")throw new Error("Stage name 'main' is reserved \u2014 it would collide with the intent hub branch");if(!Ee())return`haiku/${e}/${t}`;let n=`haiku/${e}/main`;return _ft(`haiku/${e}/${t}`,n)}function Tpe(e,t,n){if(!Ee())return{success:!0,message:"no git"};let r=`haiku/${e}/${t}`,i=`haiku/${e}/${n}`,s=gr();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=KD(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():Uh(i,c=>o(c));return a.conflictFiles.length>0?{success:!1,isConflict:!0,conflictFiles:a.conflictFiles,message:`Merge ${r} \u2192 ${i} left ${a.conflictFiles.length} conflicted file(s): ${a.conflictFiles.join(", ")}. Resolve the conflicts on '${i}' (edit files, \`git add\`, \`git commit\`), then retry the forward merge.`}:{success:!0,message:`merged ${r} \u2192 ${i}`}}catch(a){return ae(["git","merge","--abort"]),{success:!1,message:a instanceof Error?a.message:String(a)}}}function ZD(e,t){if(!Ee())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=gr();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]),WD(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=gr(),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[];d3(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=$qn(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=iBn(e,f)}catch(m){sBn(e,m)}return{conflictFiles:[],postMergeMigration:h}},d;if(c===r)d=l();else if(c===n){GD(n);try{PT(["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=Uh(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)&&gr()!==s&&!gb()&&ae(["git","checkout",s]),{success:!1,message:o instanceof Error?o.message:String(o)}}}function iBn(e,t){let n=t??Br(),r=es(n,".haiku","intents",e);if(!io(r))return{migrated:!1,unitsMigrated:0};if(!e3(r))return{migrated:!1,unitsMigrated:0};let i=ZK({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 sBn(e,t){try{Ke("haiku.post_merge_migrate.failed",{intent:e,error:String(t?.message??t)})}catch{}}function vpe(e,t){let n=`haiku/${e}/main`;if(!Ee())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:_ft(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=gr()===n?i(Br()):Uh(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 Rpe(e,t){if(!Ee())return null;try{return Gt(["git","show",`${e}:${t}`])}catch{return null}}function yb(e,t){return es(Br(),".haiku","worktrees",e,t)}function Sg(e,t,n){return es(Br(),".haiku","worktrees",e,`fix-${t}-${n}`)}function JD(e,t,n){return`haiku/${e}/fix-${t}-${n}`}function oBn(e,t,n){let r=yb(e,n),i=n.endsWith(".md")?n:`${n}.md`;return es(r,".haiku","intents",e,"stages",t,"units",i)}function Sb(e,t){let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;return!Ee()||Pt(n)||(Pt(r)||PI(e),DT(e),ae(["git","branch",n,r])),n}function PT(e){Gt(["git",...e])}function aBn(){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 yr(e,t){if(!Ee())return{ok:!0,branch:"",message:"no git",switched:!1};let n=`haiku/${e}/main`,r=t?`haiku/${e}/${t}`:"";t&&r&&!Pt(r)&&Sb(e,t);let i=t&&Pt(r)?r:n,s=gr();if(!Pt(i)){let l=Zo();if(l&&Pt(l)&&s!==l){let d=wpe(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=GD(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=GD(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&&!r3(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=GD(s);if(g.ok)try{Gt(["git","checkout",r])}catch(y){return{ok:!1,branch:gr()||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:bft(h),target_branch:r}}else return{ok:!1,branch:gr()||s,message:`failed to checkout '${r}' before merging main: ${h}`,switched:!1,target_branch:r}}let d=KD([],n,e,`haiku: merge intent-main \u2192 stage ${t} (workflow engine branch enforcement)`);if(d.ok)return{ok:!0,branch:r,message:`merged main \u2192 stage, now on ${r}`,switched:!0};let f=d.conflictFiles??[];return{ok:!1,branch:r,message:f.length>0?`Merge intent-main \u2192 stage '${t}' left ${f.length} conflicted file(s): ${f.join(", ")}. Resolve on '${r}', then \`git add\` + \`git commit\` and retry. While this merge is in progress the workflow-file guardrails are SUSPENDED (both raw Read/Write/Edit and the internal MCP write tools' lifecycle/ownership preventions), so you can resolve the conflicts directly. Prefer the schema-safe internal tools (\`haiku_feedback_write\`, \`haiku_unit_set\`, \`haiku_intent_set\`) \u2014 their schema validation still runs, so the resolved files stay valid. -Resolution rule for engine-owned feedback/unit YAML: the MORE-ADVANCED state wins. A terminal (closed/rejected) feedback beats an open one; more iterations / a later closure timestamp beats fewer. BUT feedback that exists only on this (incomplete, not-yet-merged) stage branch must be KEPT \u2014 intent-main doesn't have it yet, so don't drop it in favor of main's absence.`:`failed to merge main into stage: ${d.message??"unknown error"}. Resolve manually on '${r}', then retry.`,switched:!1,block:f.length>0?"merge_conflict":void 0,dirty_files:f.length>0?f:void 0,target_branch:r}}}try{return zt(["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=CL(s);if(p.ok)try{return zt(["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:cft(d),target_branch:i}}return{ok:!1,branch:s,message:`failed to checkout ${i}: ${d}`,switched:!1,target_branch:i}}}function CL(e){try{zt(["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)"}:(zt(["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 gpe(){if(!Ae())return[];let e=ae(["git","status","--porcelain","--untracked-files=all"]);if(!e.trim())return[];let t=[];for(let n of e.split(` -`)){if(!n.trim())continue;let r=n.replace(/^[ MADRCU?!]{1,2} +/,""),i=r.indexOf(" -> ");i!==-1&&(r=r.slice(i+4).trim()),r.startsWith('"')&&r.endsWith('"')&&(r=r.slice(1,-1)),!(r===".haiku"||r.startsWith(".haiku/"))&&t.push(r)}return t}function cft(e){let t=e.split(` -`),n=[],r=!1;for(let i of t){if(i.includes("would be overwritten by")||i.includes("Please commit your changes or stash them")){r=!0;continue}if(i.trim()==="Aborting"||i.trim().startsWith("error: ")){r=!1;continue}if(r){let s=i.replace(/^\t+/,"").trim();s&&!s.startsWith("error:")&&!s.startsWith("hint:")&&n.push(s)}}return n}function Vqn(e,t,n,r){if(!Ae())return{ok:!0,message:"no git"};let i=`haiku/${e}/main`;if(!Nt(i))return{ok:!1,message:`${i} does not exist`};try{if(mr()===i){let o=Br(),a=es(o,t),c=a.replace(/\/[^/]+$/,"");ML(c,{recursive:!0}),Xfe(a,n),zt(["git","-C",o,"add",t]),ae(["git","-C",o,"diff","--cached","--name-only","--",t]).trim()&&zt(["git","-C",o,"commit","-m",r,"--",t])}else Lh(i,o=>{let a=es(o,t),c=a.replace(/\/[^/]+$/,"");ML(c,{recursive:!0}),Xfe(a,n),zt(["git","-C",o,"add",t]),ae(["git","-C",o,"status","--porcelain"]).trim()&&zt(["git","-C",o,"commit","-m",r])});return{ok:!0,message:`wrote ${t} on ${i}`}}catch(s){return{ok:!1,message:s instanceof Error?s.message:String(s)}}}function Wqn(e,t,n,r){let i={paths_copied:[]};if(!Ae())return{ok:!0,message:"no git",...i};let s=`haiku/${e}/main`;if(!Nt(s))return{ok:!1,message:`${s} does not exist`,...i};if(!Nt(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=>{zt(["git","-C",c,"checkout",t,"--",n]),zt(["git","-C",c,"add","--",n]),ae(["git","-C",c,"diff","--cached","--name-only","--",n]).trim()&&zt(["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 tK(e){let t={deleted_local:[],deleted_remote:[]};if(!Ae())return t;let n=`haiku/${e}/main`;if(!Nt(n))return t;let r=ae(["git","for-each-ref","--format=%(refname:short)",`refs/heads/haiku/${e}`]);for(let s of r.split(` +Resolution rule for engine-owned feedback/unit YAML: the MORE-ADVANCED state wins. A terminal (closed/rejected) feedback beats an open one; more iterations / a later closure timestamp beats fewer. BUT feedback that exists only on this (incomplete, not-yet-merged) stage branch must be KEPT \u2014 intent-main doesn't have it yet, so don't drop it in favor of main's absence.`:`failed to merge main into stage: ${d.message??"unknown error"}. Resolve manually on '${r}', then retry.`,switched:!1,block:f.length>0?"merge_conflict":void 0,dirty_files:f.length>0?f:void 0,target_branch:r}}}try{return Gt(["git","checkout",i]),{ok:!0,branch:i,message:`checked out ${i}`,switched:!0}}catch(l){let d=l instanceof Error?l.message:String(l);if(d.includes("would be overwritten by checkout")||d.includes("Please commit your changes or stash them")){let p=GD(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:bft(d),target_branch:i}}return{ok:!1,branch:s,message:`failed to checkout ${i}: ${d}`,switched:!1,target_branch:i}}}function GD(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 Ape(){if(!Ee())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 bft(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 cBn(e,t,n,r){if(!Ee())return{ok:!0,message:"no git"};let i=`haiku/${e}/main`;if(!Pt(i))return{ok:!1,message:`${i} does not exist`};try{if(gr()===i){let o=Br(),a=es(o,t),c=a.replace(/\/[^/]+$/,"");VD(c,{recursive:!0}),ope(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 Uh(i,o=>{let a=es(o,t),c=a.replace(/\/[^/]+$/,"");VD(c,{recursive:!0}),ope(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 uBn(e,t,n,r){let i={paths_copied:[]};if(!Ee())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 gr()===s?a(Br()):Uh(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 l3(e){let t={deleted_local:[],deleted_remote:[]};if(!Ee())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)&&Z4(["git","push","origin","--delete",o])&&t.deleted_remote.push(o)}return t}function Kqn(e,t){let n=Cqn(es(Lqn(),"haiku-merge-"));try{zt(["git","worktree","add",n,e]);try{return t(n)}finally{ae(["git","worktree","remove","--force",n])}}finally{try{Qfe(n,{recursive:!0,force:!0})}catch{}}}function NT(e){if(Ae())try{let t=es(Br(),".haiku","intents",e);if(!io(t))return;let n=["action-log.jsonl merge=union","write-audit.jsonl merge=union"],i=`${[...["# Engine-owned append-only event streams. `merge=union` tells git","# to concatenate both sides on conflict \u2014 these files are pure","# event streams and never benefit from manual conflict resolution."],...n].join(` +`).filter(Boolean)){let o=s.startsWith("origin/")?s.slice(7):s;o===n||o.slice(`haiku/${e}/`.length).startsWith("unit-")||Zc(o,n)&&n3(["git","push","origin","--delete",o])&&t.deleted_remote.push(o)}return t}function lBn(e,t){let n=Jqn(es(Qqn(),"haiku-merge-"));try{Gt(["git","worktree","add",n,e]);try{return t(n)}finally{ae(["git","worktree","remove","--force",n])}}finally{try{ape(n,{recursive:!0,force:!0})}catch{}}}function DT(e){if(Ee())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=Mqn(d,"utf8"))}catch{}n.every(p=>f.includes(p))||(Xfe(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(!Nt(s))return;let c=mr();if(c===s)a();else try{Lh(s,u=>a(u))}catch{}c&&c!==s&&a()}catch{}}function pE(e,t){if(!Ae()||!Nt(e)||ae(["git","branch","-D",e])!=="")return!0;let r=ype(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 ype(e){if(!Ae()||!e)return null;let t;try{t=Kr("git",["worktree","list","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return null}let n=`refs/heads/${e}`,r=null;for(let i of t.split(` -`))if(i.startsWith("worktree "))r=i.slice(9).trim();else if(i.startsWith("branch ")&&r){if(i.slice(7).trim()===n)return r}else i===""&&(r=null);return null}function dft(e){return io(es(e,".git"))}function Zqn(e){try{Kr("git",["worktree","prune"],{stdio:["ignore","ignore","ignore"]})}catch{}try{Qfe(e,{recursive:!0,force:!0})}catch{}}function Yqn(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=ype(e);if(n){let r=Yqn(n);if(r){let i,s;throw r.unknown?(i="an indeterminate state",s="inspect the worktree manually"):r.tracked&&r.untracked?(i="uncommitted changes and untracked files",s="commit or stash the tracked changes AND add or clean the untracked files"):r.tracked?(i="uncommitted changes",s="commit or stash them"):(i="untracked files",s="add them to a commit or `git clean` them"),new Error(`branch '${e}' is checked out at '${n}' with ${i} \u2014 ${s} so the workflow engine can merge into it`)}return t(n)}return Kqn(e,t)}function Spe(e,t,n){if(!Ae())return null;if(!n)throw new Error("createUnitWorktree requires `stage` \u2014 units always fork from the stage branch");let r=gE(e,n);NT(e),VL();let i=`haiku/${e}/${t}`,s=es(Br(),".haiku","worktrees",e),o=es(s,t);try{if(io(o))return o;if(ML(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 zt(["git","worktree","add",o,i]),o}catch{return null}}function Jqn(e,t){let n=`.haiku/intents/${t}/`;if(!e.startsWith(n))return!1;let r=e.slice(n.length);return!!(r==="intent.md"||/^feedback\/[^/]+\.md$/.test(r)||/^stages\/[^/]+\/units\/[^/]+\.md$/.test(r)||/^stages\/[^/]+\/feedback\/[^/]+\.md$/.test(r)||/^stages\/[^/]+\/(state|baseline)\.json$/.test(r))}function nK(e,t,n){let r=`.haiku/intents/${n}`,i=ae(["git",...e,"ls-tree","-r","--name-only",t,"--",r]).split(` -`).map(s=>s.trim()).filter(Boolean);for(let s of i)Jqn(s,n)&&(ae(["git",...e,"checkout",t,"--",s]),ae(["git",...e,"add","--",s]))}function Epe(e,t,n){if(!Ae())return{success:!0,message:"no worktree"};if(!n)return{success:!1,message:"mergeUnitWorktree requires `stage` \u2014 units always merge into the stage branch"};let r=gE(e,n),i=`haiku/${e}/${t}`,s=mE(e,t);NT(e);let o=io(s);if(!o&&(!Nt(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{zt(d)}catch(m){f=m}if(!ae(["git",...l,"rev-parse","--quiet","--verify","MERGE_HEAD"])){if(f)throw f;return}nK(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}zt(["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"]),pE(i,`unit-merge cleanup for ${t}`),ae(["git","push","origin","--delete",i]),{success:!0,message:`merged ${i} \u2192 ${r}`}}catch(a){let c=a instanceof Error?a.message:String(a),u=a?.conflictPaths;return Array.isArray(u)&&u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`Merge ${i} \u2192 ${r} left ${u.length} conflicted file(s): ${u.join(", ")}. Resolve the conflicts on '${r}' (edit files, \`git add\`, \`git commit\`), then retry the unit merge.`}:{success:!1,message:c}}}function wI(e,t,n){return es(Br(),".haiku","worktrees",e,`discovery-${t}-${n}`)}function kI(e,t,n){return`haiku/${e}/discovery-${t}-${n}`}function bpe(e,t,n){if(!Ae())return null;if(!t||!n)throw new Error("createDiscoveryWorktree requires `stage` and `template`");let r=gE(e,t);NT(e),VL();let i=kI(e,t,n),s=wI(e,t,n),o=es(Br(),".haiku","worktrees",e);try{return io(s)||(ML(o,{recursive:!0}),Nt(i)||ae(["git","branch",i,r]),zt(["git","worktree","add",s,i])),s}catch{return null}}function _pe(e,t,n){if(!Ae())return{success:!0,message:"no worktree"};let r=gE(e,t),i=kI(e,t,n),s=wI(e,t,n);if(NT(e),!io(s))return pE(i,`discovery cleanup (no worktree) for ${e}/${t}/${n}`),{success:!0,message:"no worktree"};let o=!!ae(["git","-C",s,"rev-parse","--verify","-q","MERGE_HEAD"]),a=ae(["git","-C",s,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);if(a.length>0)return{success:!1,isConflict:!0,conflictFiles:a,message:`${a.length} file(s) with unresolved conflict markers in discovery worktree ${n} \u2014 integrator work incomplete`};try{if(o)ae(["git","-C",s,"add","-A"]),zt(["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{zt(["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=DL(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])&&zt(["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"]),pE(i,`discovery merge cleanup for ${e}/${t}/${n}`),{success:!0,message:`merged ${i} \u2192 ${r}`}}catch(c){let u=c?.conflictPaths;return Array.isArray(u)&&u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`merge conflict in ${u.length} file(s) while merging discovery ${n} into ${t}: ${u.join(", ")}`}:{success:!1,message:c instanceof Error?c.message:String(c)}}}function Xqn(e,t,n){if(!Ae())return{success:!0,message:"no git"};let r=kI(e,t,n),i=wI(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),pE(r,`discovery cleanup for ${e}/${t}/${n}`),{success:!0,message:`cleaned up ${r}`}}function Tpe(e,t,n){if(!Ae())return null;if(!t)throw new Error("createFixChainWorktree requires `scope` \u2014 stage name or 'intent'");if(!n)throw new Error("createFixChainWorktree requires `feedbackId` \u2014 the FB-NN of the chain");let r=t==="intent"?`haiku/${e}/main`:gE(e,t);NT(e),VL();let i=HL(e,t,n),s=yg(e,t,n),o=es(Br(),".haiku","worktrees",e);try{if(io(s))return s;if(ML(o,{recursive:!0}),!Nt(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 zt(["git","worktree","add",s,i]),s}catch{return null}}function qL(e,t,n){if(!Ae())return{success:!0,message:"no worktree"};let r=t==="intent"?`haiku/${e}/main`:gE(e,t),i=HL(e,t,n),s=yg(e,t,n);if(NT(e),!io(s)||!dft(s))return io(s)&&Zqn(s),pE(i,`fix-chain cleanup (no worktree) for ${e}/${t}/${n}`),{success:!0,message:"no worktree"};let o=!!ae(["git","-C",s,"rev-parse","--verify","-q","MERGE_HEAD"]),a=ae(["git","-C",s,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);if(a.length>0)return{success:!1,isConflict:!0,conflictFiles:a,message:`${a.length} file(s) with unresolved conflict markers in fix-chain ${n} \u2014 integrator work incomplete`};try{if(o)ae(["git","-C",s,"add","-A"]),zt(["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{zt(["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{zt(["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}nK(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}zt(["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"]),pE(i,`fix-chain merge cleanup for ${e}/${t}/${n}`),ae(["git","push","origin","--delete",i]),{success:!0,message:`merged ${i} \u2192 ${r}`}}catch(c){let u=c?.conflictPaths;return Array.isArray(u)&&u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`merge conflict in ${u.length} file(s) while merging fix-chain ${n} into ${t}: ${u.join(", ")}`}:{success:!1,message:c instanceof Error?c.message:String(c)}}}function rK(e,t,n){if(!Ae())return{success:!0,message:"no git"};let r=HL(e,t,n),i=yg(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),pE(r,`fix-chain cleanup for ${e}/${t}/${n}`),ae(["git","push","origin","--delete",r]),{success:!0,message:`cleaned up ${r}`}}function vpe(e,t){if(!Ae())return{success:!0,message:"no git"};let n=`haiku/${e}/${t}`,r=mE(e,t);return io(r)&&ae(["git","worktree","remove",r,"--force"]),pE(n,`unit reset for ${e}/${t}`),ae(["git","push","origin","--delete",n]),ae(["git","worktree","prune"]),{success:!0,message:`reset unit worktree ${n}`}}function BL(e){let t=es(Br(),".haiku","worktrees",e);try{Qfe(t,{recursive:!0,force:!0})}catch{}ae(["git","worktree","prune"])}function GL(e){return!Ae()||mr()===e||!Nt(e)?!1:ae(["git","branch","-D",e])!==""}function yE(e,t){if(!Ae()||t==="main")return!1;let n=`haiku/${e}/${t}`;return ae(["git","worktree","prune"]),GL(n)}function Ape(e,t){let n=`haiku/${e}/main`;if(!Ae())return{success:!0,merged:[],deleted:[],message:"no git"};if(!Nt(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(!Nt(o)||Zc(o,n))continue;let a=jL(e,s);if(!a.success)return{success:!1,merged:r,deleted:i,message:`merge of '${s}' into main failed: ${a.message}`};r.push(o)}if(mr()!==n)try{xT(["checkout",n])}catch(s){return{success:!1,merged:r,deleted:i,message:`checkout ${n} failed: ${s instanceof Error?s.message:String(s)}`}}for(let s of t){let o=`haiku/${e}/${s}`;Nt(o)&&Zc(o,n)&&GL(o)&&i.push(o)}return ae(["git","worktree","prune"]),{success:!0,merged:r,deleted:i,message:`finalized ${e}: merged ${r.length}, deleted ${i.length}`}}function Qqn(e,t,n){if(!Ae())return{success:!0,message:"no git"};if(n==="main")return{success:!1,message:"cannot revisit 'main'"};let r=`haiku/${e}/${n}`,i=t?`haiku/${e}/${t}`:"",s=`haiku/${e}/main`;if(!Nt(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{Nt(r)||zt(["git","branch",r,s]),mr()!==r&&xT(["checkout",r]);let a=ae(["git","rev-list","--count",`${r}..${s}`]);if(a&&Number.parseInt(a,10)>0)try{zt(["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&&Nt(i)){let c=ae(["git","rev-list","--count",`${r}..${i}`]);if(c&&Number.parseInt(c,10)>0)try{zt(["git","merge",i,"--no-ff","--no-edit","-m",`haiku: merge ${t} \u2192 ${n} (revisit carries future-stage work back)`])}catch(u){let l=o();return l.length>0?{success:!1,isConflict:!0,conflictFiles:l,message:`Merge ${t} \u2192 ${n} left ${l.length} conflicted file(s): ${l.join(", ")}. Resolve conflicts on branch '${r}' (edit files, \`git add\`, \`git commit\`), then retry the revisit. Main has already been merged cleanly and won't be remerged.`}:{success:!1,message:`Merge ${t} \u2192 ${n} failed: ${u instanceof Error?u.message:String(u)}`}}}return{success:!0,message:`prepared ${r} with main${i&&t!==n?` + ${t}`:""} merged in`}}catch(a){return{success:!1,message:a instanceof Error?a.message:String(a)}}}var Aa,Ra,yr=v(()=>{"use strict";Nh();K4();ze();vo();Aa=3e4,Ra={...process.env,GIT_TERMINAL_PROMPT:"0",GIT_ASKPASS:"true",SSH_ASKPASS:"true",SSH_ASKPASS_REQUIRE:"never"}});import*as hft from"node:fs";import*as Pd from"node:path";function WL(e,t,n){let r=t.slice(0,n).split(/\n/),i=r.length,s=r[i-1].length+1;throw e+=" at line "+i+" col "+s+`: +`,s=`haiku/${e}/main`,o=`.haiku/intents/${e}/.gitattributes`,a=u=>{let l=u?["-C",u]:[],d=u?es(u,o):es(Br(),o),f="";try{io(d)&&(f=Xqn(d,"utf8"))}catch{}n.every(p=>f.includes(p))||(ope(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=gr();if(c===s)a();else try{Uh(s,u=>a(u))}catch{}c&&c!==s&&a()}catch{}}function mb(e,t){if(!Ee()||!Pt(e)||ae(["git","branch","-D",e])!=="")return!0;let r=wpe(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 wpe(e){if(!Ee()||!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 Tft(e){return io(es(e,".git"))}function dBn(e){try{Kr("git",["worktree","prune"],{stdio:["ignore","ignore","ignore"]})}catch{}try{ape(e,{recursive:!0,force:!0})}catch{}}function fBn(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 Uh(e,t){let n=wpe(e);if(n){let r=fBn(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 lBn(e,t)}function kpe(e,t,n){if(!Ee())return null;if(!n)throw new Error("createUnitWorktree requires `stage` \u2014 units always fork from the stage branch");let r=Sb(e,n);DT(e),eL();let i=`haiku/${e}/${t}`,s=es(Br(),".haiku","worktrees",e),o=es(s,t);try{if(io(o))return o;if(VD(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 pBn(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 d3(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)pBn(s,n)&&(ae(["git",...e,"checkout",t,"--",s]),ae(["git",...e,"add","--",s]))}function Ipe(e,t,n){if(!Ee())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=Sb(e,n),i=`haiku/${e}/${t}`,s=yb(e,t);DT(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=gr()===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}d3(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():Uh(r,u=>c(u)),ae(["git","worktree","remove",s,"--force"]),mb(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 NI(e,t,n){return es(Br(),".haiku","worktrees",e,`discovery-${t}-${n}`)}function CI(e,t,n){return`haiku/${e}/discovery-${t}-${n}`}function xpe(e,t,n){if(!Ee())return null;if(!t||!n)throw new Error("createDiscoveryWorktree requires `stage` and `template`");let r=Sb(e,t);DT(e),eL();let i=CI(e,t,n),s=NI(e,t,n),o=es(Br(),".haiku","worktrees",e);try{return io(s)||(VD(o,{recursive:!0}),Pt(i)||ae(["git","branch",i,r]),Gt(["git","worktree","add",s,i])),s}catch{return null}}function Ope(e,t,n){if(!Ee())return{success:!0,message:"no worktree"};let r=Sb(e,t),i=CI(e,t,n),s=NI(e,t,n);if(DT(e),!io(s))return mb(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=gr()===r,u=l=>{let f=KD(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 Uh(r,l=>u(l));return ae(["git","worktree","remove",s,"--force"]),mb(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 hBn(e,t,n){if(!Ee())return{success:!0,message:"no git"};let r=CI(e,t,n),i=NI(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),mb(r,`discovery cleanup for ${e}/${t}/${n}`),{success:!0,message:`cleaned up ${r}`}}function Ppe(e,t,n){if(!Ee())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`:Sb(e,t);DT(e),eL();let i=JD(e,t,n),s=Sg(e,t,n),o=es(Br(),".haiku","worktrees",e);try{if(io(s))return s;if(VD(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 XD(e,t,n){if(!Ee())return{success:!0,message:"no worktree"};let r=t==="intent"?`haiku/${e}/main`:Sb(e,t),i=JD(e,t,n),s=Sg(e,t,n);if(DT(e),!io(s)||!Tft(s))return io(s)&&dBn(s),mb(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=gr()===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}d3(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():Uh(r,l=>u(l)),ae(["git","worktree","remove",s,"--force"]),mb(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 f3(e,t,n){if(!Ee())return{success:!0,message:"no git"};let r=JD(e,t,n),i=Sg(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),mb(r,`fix-chain cleanup for ${e}/${t}/${n}`),ae(["git","push","origin","--delete",r]),{success:!0,message:`cleaned up ${r}`}}function Npe(e,t){if(!Ee())return{success:!0,message:"no git"};let n=`haiku/${e}/${t}`,r=yb(e,t);return io(r)&&ae(["git","worktree","remove",r,"--force"]),mb(n,`unit reset for ${e}/${t}`),ae(["git","push","origin","--delete",n]),ae(["git","worktree","prune"]),{success:!0,message:`reset unit worktree ${n}`}}function QD(e){let t=es(Br(),".haiku","worktrees",e);try{ape(t,{recursive:!0,force:!0})}catch{}ae(["git","worktree","prune"])}function $D(e){return!Ee()||gr()===e||!Pt(e)?!1:ae(["git","branch","-D",e])!==""}function bb(e,t){if(!Ee()||t==="main")return!1;let n=`haiku/${e}/${t}`;return ae(["git","worktree","prune"]),$D(n)}function Cpe(e,t){let n=`haiku/${e}/main`;if(!Ee())return{success:!0,merged:[],deleted:[],message:"no git"};if(!Pt(n))return{success:!0,merged:[],deleted:[],message:`no intent main branch (${n})`};let r=[],i=[];for(let s of t){let o=`haiku/${e}/${s}`;if(!Pt(o)||Zc(o,n))continue;let a=ZD(e,s);if(!a.success)return{success:!1,merged:r,deleted:i,message:`merge of '${s}' into main failed: ${a.message}`};r.push(o)}if(gr()!==n)try{PT(["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)&&$D(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 mBn(e,t,n){if(!Ee())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]),gr()!==r&&PT(["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,ar=v(()=>{"use strict";Nh();t3();ze();vo();Ra=3e4,Aa={...process.env,GIT_TERMINAL_PROMPT:"0",GIT_ASKPASS:"true",SSH_ASKPASS:"true",SSH_ASKPASS_REQUIRE:"never"}});import*as Aft from"node:fs";import*as Dd from"node:path";function tL(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 mft(e)}function tBn(e,t,n,r){let i=t.split(` + `+Array(s).join(" ")+"^",new wft(e)}function SBn(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 $qn((a?a+":"+n+` +`),u=new gBn((a?a+":"+n+` `:"line "+n+` `)+c+` -`+e.message);throw u.name=e.name,u.cause=e,u}function nBn(e){let t="";try{t=hft.readFileSync(e,"utf8")}catch(n){throw n?.code==="ENOENT"?new Rpe(`Could not find template: ${e}`):n}return t}function rBn(e,t){let n="",r=this.config.views;if(!r)throw new Rpe("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+=Pd.extname(e)?"":s,i){if(this.config.cacheFilepaths&&this.filepathCache[o])return this.filepathCache[o];if(sBn.exec(e)?.length){let a=e.replace(/^\/*|^\\*/,"");n=Pd.join(r,a)}else n=Pd.join(Pd.dirname(i),e)}else n=Pd.join(r,e);if(iBn(r,n))return i&&this.config.cacheFilepaths&&(this.filepathCache[o]=n),n;throw new Rpe(`Template '${e}' is not in the views directory`)}function iBn(e,t){let n=Pd.relative(e,t);return n&&!n.startsWith("..")&&!Pd.isAbsolute(n)}function aBn(e,t){let n=this.config,r=t?.async?oBn:Function;try{return new r(n.varName,"options",this.compileToString.call(this,e,t))}catch(i){throw i instanceof SyntaxError?new mft(`Bad template syntax +`+e.message);throw u.name=e.name,u.cause=e,u}function bBn(e){let t="";try{t=Aft.readFileSync(e,"utf8")}catch(n){throw n?.code==="ENOENT"?new Mpe(`Could not find template: ${e}`):n}return t}function EBn(e,t){let n="",r=this.config.views;if(!r)throw new Mpe("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+=Dd.extname(e)?"":s,i){if(this.config.cacheFilepaths&&this.filepathCache[o])return this.filepathCache[o];if(TBn.exec(e)?.length){let a=e.replace(/^\/*|^\\*/,"");n=Dd.join(r,a)}else n=Dd.join(Dd.dirname(i),e)}else n=Dd.join(r,e);if(_Bn(r,n))return i&&this.config.cacheFilepaths&&(this.filepathCache[o]=n),n;throw new Mpe(`Template '${e}' is not in the views directory`)}function _Bn(e,t){let n=Dd.relative(e,t);return n&&!n.startsWith("..")&&!Dd.isAbsolute(n)}function RBn(e,t){let n=this.config,r=t?.async?vBn:Function;try{return new r(n.varName,"options",this.compileToString.call(this,e,t))}catch(i){throw i instanceof SyntaxError?new wft(`Bad template syntax `+i.message+` `+Array(i.message.length+1).join("=")+` `+this.compileToString.call(this,e,t)+` -`):i}}function cBn(e,t){let n=this.config,r=t?.async,i=this.compileBody,s=this.parse.call(this,e),o=`${n.functionHeader} +`):i}}function ABn(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); @@ -585,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,fBn):t}function aK(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function hBn(e,t){return e.slice(0,t).split(` -`).length}function mBn(e){let t=this.config,n=[],r=!1,i=0,s=t.parse,o=Object.keys(t.customTags);if(t.plugins)for(let f=0;ff&&p?f+"|"+aK(p):p?aK(p):f,""),u=new RegExp(aK(t.tags[0])+"(-|_)?\\s*("+c+")?\\s*","g"),l=new RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?"+aK(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&&WL("unclosed comment",e,m.index),l.lastIndex=E}else g==="'"?(sK.lastIndex=m.index,sK.exec(e)?l.lastIndex=sK.lastIndex:WL("unclosed string",e,m.index)):g==='"'?(oK.lastIndex=m.index,oK.exec(e)?l.lastIndex=oK.lastIndex:WL("unclosed string",e,m.index)):g==="`"&&(iK.lastIndex=m.index,iK.exec(e)?l.lastIndex=iK.lastIndex:WL("unclosed string",e,m.index))}y?(t.debug&&(y.lineNo=hBn(e,d.index)),n.push(y)):WL("unclosed tag",e,d.index)}if(a(e.slice(i,e.length),!1),t.plugins)for(let f=0;f{KL=class extends Error{constructor(e){super(e),this.name="Eta Error"}},mft=class extends KL{constructor(e){super(e),this.name="EtaParser Error"}},$qn=class extends KL{constructor(e){super(e),this.name="EtaRuntime Error"}},Rpe=class extends KL{constructor(e){super(e),this.name="EtaFileResolution Error"}},eBn=class extends KL{constructor(e){super(e),this.name="EtaNameResolution Error"}};sBn=/^\\|^\//,oBn=(async()=>{}).constructor;dBn={"&":"&","<":"<",">":">",'"':""","'":"'"};fft={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,customTags:{},debug:!1,escapeFunction:pBn,filterFunction:e=>String(e),outputFunctionName:"output",functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it",defaultExtension:".eta"},iK=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,sK=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,oK=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;pft=class{constructor(e){this.cache=e}define(e,t){this.cache[e]=t}get(e){return this.cache[e]}remove(e){delete this.cache[e]}reset(){this.cache={}}load(e){this.cache={...this.cache,...e}}},SBn=class{constructor(e){e?this.config={...fft,...e}:this.config={...fft};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 KL(`Custom tag prefix "${n}" conflicts with a built-in prefix`)}config;RuntimeErr=tBn;compile=aBn;compileToString=cBn;compileBody=uBn;parse=mBn;render=yft;renderAsync=Sft;renderString=gBn;renderStringAsync=yBn;filepathCache={};templatesSync=new pft({});templatesAsync=new pft({});resolvePath=null;readFile=null;configure(e){this.config={...this.config,...e}}withConfig(e){return{...this,config:{...this.config,...e}}}loadTemplate(e,t,n){if(typeof t=="string")(n?.async?this.templatesAsync:this.templatesSync).define(e,this.compile(t,n));else{let r=this.templatesSync;(t.constructor.name==="AsyncFunction"||n?.async)&&(r=this.templatesAsync),r.define(e,t)}}},Te=class extends SBn{readFile=nBn;resolvePath=rBn}});import{execFileSync as EBn}from"node:child_process";import{existsSync as bBn,mkdirSync as t6r,readdirSync as n6r,readFileSync as r6r,writeFileSync as i6r}from"node:fs";import{join as wpe}from"node:path";function Ae(){if(PT!==null)return PT;try{EBn("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}),PT=!0}catch{PT=!1}return PT}function Eft(){PT=null}function bft(e){PT=e}function _ft(e){kpe=e}function ve(){if(kpe)return kpe;let e=process.cwd();for(let t=0;t<20;t++){if(bBn(wpe(e,".haiku")))return wpe(e,".haiku");let n=wpe(e,"..");if(n===e)break;e=n}throw new Error("No .haiku/ directory found")}var _Bn,PT,kpe,SE=v(()=>{"use strict";SL();_Bn=Se(Kt(),1);ih();PT=null;kpe=null});import{execFileSync as TBn}from"node:child_process";import{mkdirSync as uK,mkdtempSync as vBn,readdirSync as d6r,renameSync as ABn,rmSync as RBn,statSync as f6r,writeFileSync as wBn}from"node:fs";import{homedir as kBn,tmpdir as IBn}from"node:os";import{dirname as Tft,join as Uu,resolve as xBn}from"node:path";function vft(e){e&&(cK&&cK!==e||(cK=e))}function OBn(){return cK||process.env.CLAUDE_SESSION_ID||process.env.HAIKU_SESSION_ID||String(process.pid)}function NBn(){try{let e=TBn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Tft(xBn(e))}catch{}try{return Tft(ve())}catch{return process.cwd()}}function PBn(){return NBn().replace(/\//g,"-")}function CBn(){return process.env.NODE_TEST_CONTEXT||process.env.NODE_ENV==="test"?!0:process.argv.some(e=>/\.test\.(mjs|js|ts)$/.test(e))}function xpe(){let e=process.env.HAIKU_PROJECTS_ROOT;return e||(CBn()?(Ipe||(Ipe=vBn(Uu(IBn(),"haiku-test-projects-"))),Ipe):Uu(kBn(),".haiku","projects"))}function Ope(){return Uu(xpe(),PBn())}function lK(e,t){let n=o=>o.replace(/[^A-Za-z0-9._-]+/g,"-"),r=n(e),i=t?Uu("stages",n(t)):"intent",s=Uu(Ope(),"intents",r,"prompts",i);return uK(s,{recursive:!0}),s}function MBn(){let e=Uu(Ope(),"sessions",OBn());return uK(e,{recursive:!0}),e}function Aft(e){return Uu(MBn(),e)}function II(e,t){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-"),r=Uu(Ope(),"intents",n);return uK(r,{recursive:!0}),Uu(r,t)}function Rft(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=lK(s,o),d=Uu(l,`${u}.prompt.md`);fK(d,i);let f=`Read the file at \`${d}\` and execute its instructions exactly. The file is the complete, canonical subagent prompt authored by the workflow engine \u2014 do not paraphrase or skip any of it.`;return{path:d,parentInstruction:f}}function EE(e){let{intent:t,stage:n,kind:r,name:i,body:s}=e,o=u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"),a=Uu(lK(t,n),"refs",o(r));uK(a,{recursive:!0});let c=Uu(a,`${o(i).replace(/\.md$/,"")}.md`);return fK(c,s),c}function wft(e){let{action:t,intent:n,stage:r,content:i}=e,o=`main-action-${(u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"))(t)}`,a=lK(n,r),c=Uu(a,`${o}.prompt.md`);return fK(c,i),{path:c}}function kft(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 kBn(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 xBn(e){return IBn[e]}function OBn(e){let t=String(e);return/[&<>"']/.test(t)?t.replace(/[&<>"']/g,xBn):t}function g3(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function PBn(e,t){return e.slice(0,t).split(` +`).length}function NBn(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+"|"+g3(p):p?g3(p):f,""),u=new RegExp(g3(t.tags[0])+"(-|_)?\\s*("+c+")?\\s*","g"),l=new RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?"+g3(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&&tL("unclosed comment",e,m.index),l.lastIndex=b}else y==="'"?(h3.lastIndex=m.index,h3.exec(e)?l.lastIndex=h3.lastIndex:tL("unclosed string",e,m.index)):y==='"'?(m3.lastIndex=m.index,m3.exec(e)?l.lastIndex=m3.lastIndex:tL("unclosed string",e,m.index)):y==="`"&&(p3.lastIndex=m.index,p3.exec(e)?l.lastIndex=p3.lastIndex:tL("unclosed string",e,m.index))}g?(t.debug&&(g.lineNo=PBn(e,d.index)),n.push(g)):tL("unclosed tag",e,d.index)}if(a(e.slice(i,e.length),!1),t.plugins)for(let f=0;f{nL=class extends Error{constructor(e){super(e),this.name="Eta Error"}},wft=class extends nL{constructor(e){super(e),this.name="EtaParser Error"}},gBn=class extends nL{constructor(e){super(e),this.name="EtaRuntime Error"}},Mpe=class extends nL{constructor(e){super(e),this.name="EtaFileResolution Error"}},yBn=class extends nL{constructor(e){super(e),this.name="EtaNameResolution Error"}};TBn=/^\\|^\//,vBn=(async()=>{}).constructor;IBn={"&":"&","<":"<",">":">",'"':""","'":"'"};vft={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,customTags:{},debug:!1,escapeFunction:OBn,filterFunction:e=>String(e),outputFunctionName:"output",functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it",defaultExtension:".eta"},p3=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,h3=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,m3=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;Rft=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}}},DBn=class{constructor(e){e?this.config={...vft,...e}:this.config={...vft};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 nL(`Custom tag prefix "${n}" conflicts with a built-in prefix`)}config;RuntimeErr=SBn;compile=RBn;compileToString=ABn;compileBody=wBn;parse=NBn;render=Ift;renderAsync=xft;renderString=CBn;renderStringAsync=MBn;filepathCache={};templatesSync=new Rft({});templatesAsync=new Rft({});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 DBn{readFile=bBn;resolvePath=EBn}});import{execFileSync as LBn}from"node:child_process";import{existsSync as UBn,mkdirSync as j5r,readdirSync as H5r,readFileSync as q5r,writeFileSync as B5r}from"node:fs";import{join as Dpe}from"node:path";function Ee(){if(LT!==null)return LT;try{LBn("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}),LT=!0}catch{LT=!1}return LT}function Oft(){LT=null}function Pft(e){LT=e}function Nft(e){Lpe=e}function ve(){if(Lpe)return Lpe;let e=process.cwd();for(let t=0;t<20;t++){if(UBn(Dpe(e,".haiku")))return Dpe(e,".haiku");let n=Dpe(e,"..");if(n===e)break;e=n}throw new Error("No .haiku/ directory found")}var FBn,LT,Lpe,Eb=v(()=>{"use strict";xD();FBn=Re(Kt(),1);sh();LT=null;Lpe=null});import{execFileSync as jBn}from"node:child_process";import{mkdirSync as S3,mkdtempSync as HBn,readdirSync as Z5r,renameSync as qBn,rmSync as BBn,statSync as J5r,writeFileSync as zBn}from"node:fs";import{homedir as GBn,tmpdir as VBn}from"node:os";import{dirname as Cft,join as Fu,resolve as WBn}from"node:path";function Mft(e){e&&(y3&&y3!==e||(y3=e))}function KBn(){return y3||process.env.CLAUDE_SESSION_ID||process.env.HAIKU_SESSION_ID||String(process.pid)}function YBn(){try{let e=jBn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Cft(WBn(e))}catch{}try{return Cft(ve())}catch{return process.cwd()}}function ZBn(){return YBn().replace(/\//g,"-")}function JBn(){return process.env.NODE_TEST_CONTEXT||process.env.NODE_ENV==="test"?!0:process.argv.some(e=>/\.test\.(mjs|js|ts)$/.test(e))}function Fpe(){let e=process.env.HAIKU_PROJECTS_ROOT;return e||(JBn()?(Upe||(Upe=HBn(Fu(VBn(),"haiku-test-projects-"))),Upe):Fu(GBn(),".haiku","projects"))}function jpe(){return Fu(Fpe(),ZBn())}function b3(e,t){let n=o=>o.replace(/[^A-Za-z0-9._-]+/g,"-"),r=n(e),i=t?Fu("stages",n(t)):"intent",s=Fu(jpe(),"intents",r,"prompts",i);return S3(s,{recursive:!0}),s}function XBn(){let e=Fu(jpe(),"sessions",KBn());return S3(e,{recursive:!0}),e}function Dft(e){return Fu(XBn(),e)}function DI(e,t){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-"),r=Fu(jpe(),"intents",n);return S3(r,{recursive:!0}),Fu(r,t)}function Lft(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=b3(s,o),d=Fu(l,`${u}.prompt.md`);_3(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 _b(e){let{intent:t,stage:n,kind:r,name:i,body:s}=e,o=u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"),a=Fu(b3(t,n),"refs",o(r));S3(a,{recursive:!0});let c=Fu(a,`${o(i).replace(/\.md$/,"")}.md`);return _3(c,s),c}function Uft(e){let{action:t,intent:n,stage:r,content:i}=e,o=`main-action-${(u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"))(t)}`,a=b3(n,r),c=Fu(a,`${o}.prompt.md`);return _3(c,i),{path:c}}function Fft(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 LBn(e){let{unit:t,hat:n,bolt:r,intent:i,stage:s}=e,o=`subagent-${t.replace(/\.md$/,"")}-${n}-${r}`;return Uu(lK(i,s),`${o}.next-relay.md`)}function dK(e,t){fK(LBn(e),t)}function fK(e,t){let n=`${e}.${process.pid}.tmp`;wBn(n,t,"utf8");try{ABn(n,e)}catch(r){try{RBn(n,{force:!0})}catch{}throw new Error(`atomicWrite: rename failed \u2014 tmp and final must share a filesystem. Original: ${r instanceof Error?r.message:String(r)}`)}}var cK,Ipe,Tl=v(()=>{"use strict";SE();cK=null;Ipe=null});import{existsSync as DBn,readFileSync as UBn,statSync as Npe}from"node:fs";import{join as pK}from"node:path";import{fileURLToPath as FBn}from"node:url";function HBn(e,t){let n=pK(process.cwd(),".haiku","prompts",e);try{if(Npe(n).isFile())return n}catch{}let r=pK(t,e);try{if(Npe(r).isFile())return r}catch{}throw new Error(`loadTemplate: could not find "${e}" \u2014 checked ${n} and ${r}`)}function Nft(e){let t=FBn(e),n=t.indexOf(xft);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+xft.length),s=i.lastIndexOf("/");return{rel:s<0?"":i.slice(0,s),pluginPromptsRoot:pK(r,"plugin","prompts")}}function qBn(e){let t=Npe(e).mtimeMs,n=Oft.get(e);if(n&&n.mtimeMs>=t)return n.body;let r=UBn(e,"utf8");return Oft.set(e,{body:r,mtimeMs:t,path:e}),r}function BBn(){let e=pK(nn(),"prompts");if(DBn(e))return e;try{return Nft(import.meta.url).pluginPromptsRoot}catch{return e}}function ie(e,t="template.eta.md"){let n,r;if(e.startsWith(Ift))n=e.slice(Ift.length),r=BBn();else{let a=Nft(e);n=a.rel,r=a.pluginPromptsRoot}let i=n?`${n}/${t}`:t,s=jBn.get(i);if(s!==void 0)return s;let o=HBn(i,r);return qBn(o)}var Ift,xft,Oft,jBn,ht=v(()=>{"use strict";Ci();Ift="@canon:",xft="/packages/haiku/src/orchestrator/prompts/",Oft=new Map,jBn=new Map});import{existsSync as hK,readFileSync as Ppe}from"node:fs";import{join as ZL}from"node:path";function GBn(e){let t=e;for(let n=0;n<4;n++){let r=ZL(t,"settings.yml");if(hK(r))try{let i=Ppe(r,"utf8"),{data:s}=(0,mK.default)(`--- +`}function QBn(e){let{unit:t,hat:n,bolt:r,intent:i,stage:s}=e,o=`subagent-${t.replace(/\.md$/,"")}-${n}-${r}`;return Fu(b3(i,s),`${o}.next-relay.md`)}function E3(e,t){_3(QBn(e),t)}function _3(e,t){let n=`${e}.${process.pid}.tmp`;zBn(n,t,"utf8");try{qBn(n,e)}catch(r){try{BBn(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 y3,Upe,vl=v(()=>{"use strict";Eb();y3=null;Upe=null});import{existsSync as $Bn,readFileSync as ezn,statSync as Hpe}from"node:fs";import{join as T3}from"node:path";import{fileURLToPath as tzn}from"node:url";function rzn(e,t){let n=T3(process.cwd(),".haiku","prompts",e);try{if(Hpe(n).isFile())return n}catch{}let r=T3(t,e);try{if(Hpe(r).isFile())return r}catch{}throw new Error(`loadTemplate: could not find "${e}" \u2014 checked ${n} and ${r}`)}function Bft(e){let t=tzn(e),n=t.indexOf(Hft);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+Hft.length),s=i.lastIndexOf("/");return{rel:s<0?"":i.slice(0,s),pluginPromptsRoot:T3(r,"plugin","prompts")}}function izn(e){let t=Hpe(e).mtimeMs,n=qft.get(e);if(n&&n.mtimeMs>=t)return n.body;let r=ezn(e,"utf8");return qft.set(e,{body:r,mtimeMs:t,path:e}),r}function szn(){let e=T3(nn(),"prompts");if($Bn(e))return e;try{return Bft(import.meta.url).pluginPromptsRoot}catch{return e}}function ie(e,t="template.eta.md"){let n,r;if(e.startsWith(jft))n=e.slice(jft.length),r=szn();else{let a=Bft(e);n=a.rel,r=a.pluginPromptsRoot}let i=n?`${n}/${t}`:t,s=nzn.get(i);if(s!==void 0)return s;let o=rzn(i,r);return izn(o)}var jft,Hft,qft,nzn,ht=v(()=>{"use strict";Ci();jft="@canon:",Hft="/packages/haiku/src/orchestrator/prompts/",qft=new Map,nzn=new Map});import{existsSync as v3,readFileSync as qpe}from"node:fs";import{join as rL}from"node:path";function ozn(e){let t=e;for(let n=0;n<4;n++){let r=rL(t,"settings.yml");if(v3(r))try{let i=qpe(r,"utf8"),{data:s}=(0,R3.default)(`--- ${i} --- -`);return s}catch{return{}}t=ZL(t,"..")}try{let n=ve(),r=ZL(n,"settings.yml");if(hK(r)){let i=Ppe(r,"utf8"),{data:s}=(0,mK.default)(`--- +`);return s}catch{return{}}t=rL(t,"..")}try{let n=ve(),r=rL(n,"settings.yml");if(v3(r)){let i=qpe(r,"utf8"),{data:s}=(0,R3.default)(`--- ${i} --- -`);return s}}catch{}return{}}function zBn(e){let t;try{t=ve()}catch{t=process.cwd()}let n=ZL(t,"providers",`${e}.md`);if(hK(n))return n;let r=ZL(nn(),"providers",`${e}.md`);return hK(r)?r:null}function VBn(e){try{let t=Ppe(e,"utf8"),n=(0,mK.default)(t),r=n.data,i=typeof r.provider_kind=="string"?r.provider_kind:"",s=r.category==="source"||r.category==="workflow"?r.category:null;if(!i||!s)return null;let o=r.always_on===!0,c=(Array.isArray(r.splices_into)?r.splices_into:[]).filter(u=>typeof u=="string");return{kind:i,category:s,alwaysOn:o,splicesInto:c,body:n.content.trim(),path:e}}catch{return null}}function WBn(e){return e==="git"?Ae():!0}function KBn(e){let n=GBn(e).providers??{},r=["git","ticketing","spec","knowledge","design"],i=[];for(let s of r){let o=zBn(s);if(!o)continue;let a=VBn(o);if(!a)continue;if(n[s]!==void 0){i.push(a);continue}a.alwaysOn&&WBn(s)&&i.push(a)}return i}function Pft(e,t){return KBn(t).filter(n=>n.splicesInto.includes(e))}var mK,Cft=v(()=>{"use strict";mK=Se(Kt(),1);Ci();SE()});var CT,YL,gK=v(()=>{"use strict";CT=new Set(["runtime-verifier"]),YL=new Set(["delivery-verifier"])});import{execFileSync as ZBn}from"node:child_process";import{mkdirSync as Uft,writeFileSync as Fft}from"node:fs";import{dirname as Mft,join as JL,resolve as YBn}from"node:path";function MT(e){let t=null;return()=>(t===null&&(t=ie("@canon:_shared",e)),t)}function iGn(){return Cpe===null&&(Cpe=JBn.renderString(ie("@canon:_shared","workflow-contracts-review.eta.md"),{maxStageIterations:Cf})),Cpe}function sGn(){try{let e=ZBn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Mft(YBn(e))}catch{}try{return Mft(ve())}catch{return process.cwd()}}function Mpe(){let e=sGn().replace(/\//g,"-");return JL(xpe(),e,"shared")}function oGn(){let e=Mpe();if(Lft!==e){Uft(e,{recursive:!0});for(let[t,n]of Object.entries(jft))try{Fft(JL(e,`${t}.md`),n.content(),"utf8")}catch{}Lft=e}}function Es(e){oGn();let t=jft[e],n=JL(Mpe(),`${e}.md`);return[`### ${t.title} (REQUIRED reading)`,"",`**Read** \`${n}\` **before continuing this prompt.** It defines ${t.summary} These rules are universal \u2014 the workflow engine validates against them; non-compliant work blocks at \`haiku_run_next\`. The file is stable across ticks, so once you've read it this session you've got it.`].join(` -`)}function cGn(e,t){let n=aGn();Uft(n,{recursive:!0});let r=JL(n,`${e}.md`),i=`${r}:${e}`;if(!Dft.has(i)){try{Fft(r,t,"utf8")}catch{}Dft.add(i)}return r}function Hft(e){let t=cGn(e.kind,e.body),n=e.description?` ${e.description}`:"";return[`### Provider: \`${e.kind}\` (${e.category}) \u2014 behavior contract`,"",`**Read** \`${t}\` **before continuing this prompt.**${n} The contract describes how to operate against the configured \`${e.kind}\` provider in this project \u2014 what to read, what to write, what to record in \`external_refs:\`, and how to degrade when the required MCP tools aren't available.`].join(` -`)}var JBn,XBn,QBn,$Bn,eGn,tGn,nGn,rGn,Cpe,jft,Lft,aGn,Dft,Dh=v(()=>{"use strict";gt();SE();ze();Tl();ht();gK();JBn=new Te({autoEscape:!1,useWith:!0});XBn=MT("announcement.md"),QBn=MT("subagent-error-recovery.md"),$Bn=MT("workflow-contracts-elaborate.md"),eGn=MT("workflow-contracts-execute.md"),tGn=MT("workflow-contracts-fix-loop.md"),nGn=MT("runtime-verification.md"),rGn=MT("service-dependencies.md"),Cpe=null;jft={"workflow-contracts-elaborate":{content:()=>$Bn(),title:"Universal workflow contracts (elaborate)",summary:"unit-file naming, the same-stage `depends_on:` DAG, executable `quality_gates:`, per-unit `model:` selection, revisit `closes:`, the elaborate-phase MCP tool surface, unit-content validation, and authoring discipline."},"workflow-contracts-execute":{content:()=>eGn(),title:"Universal workflow contracts (execute)",summary:"the per-hat advance/reject contract, bolt count limits, and the engine-owned fields (`bolt`, `hat`, `status`, `iterations`) hats must NOT mutate directly."},"workflow-contracts-review":{content:()=>iGn(),title:"Universal workflow contracts (review)",summary:"the review/approval role split, when to file feedback vs sign-off, and the iteration cap that drives gate-blocking escalation."},"workflow-contracts-fix-loop":{content:()=>tGn(),title:"Universal workflow contracts (fix-loop)",summary:"how fix hats edit feedback bodies (NOT unit specs), the per-finding bolt cap, the advance vs reject vs reject_hat distinction, and feedback-assessor's closure authority."},"workflow-contracts-announcement":{content:()=>XBn(),title:"Subagent-announce discipline",summary:"how to announce a subagent dispatch in the same response as the spawn \u2014 one sentence on WHAT is starting and HOW MANY agents, no jargon."},"subagent-error-recovery":{content:()=>QBn(),title:"Subagent error-recovery contract",summary:"how to handle subagent failures \u2014 rescue attempts before declaring blocked, the diagnostic that goes in the bolt summary, and the workflow tool surface for failure reporting."},"runtime-verification":{content:()=>nGn(),title:"Runtime-verification doctrine",summary:"that verification is runtime observation (NOT running tests/typecheck); how to find the change's surface and route to a handle (web/GUI \u2192 `haiku_view` boot + `haiku-playwright`; CLI \u2192 run the command; server \u2192 the socket; library \u2192 the public export); the `.haiku/boot.md` project boot recipe; how to drive the smallest path, probe around the change, capture evidence under `proof/`; and the PASS/FAIL/BLOCKED/SKIP verdict that drives sign-off vs. feedback."},"service-dependencies":{content:()=>rGn(),title:"Service-dependency doctrine",summary:"when a quality gate needs a live dependency (DB, queue, cache): best-effort boot the project's declared services (`.haiku/boot.md` `service:` processes / compose / make) when the tool is live, else escalate to the user \u2014 NEVER advance or mark a gate passed on an unreachable environment, because a gate that didn't run verified nothing."}},Lft="";aGn=()=>JL(Mpe(),"providers"),Dft=new Set});import{existsSync as XL,readdirSync as uGn,readFileSync as yK}from"node:fs";import{join as lGn}from"node:path";function xI(e){if(!(!e||!XL(e)))try{let{data:t}=re(yK(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 azn(e){let t;try{t=ve()}catch{t=process.cwd()}let n=rL(t,"providers",`${e}.md`);if(v3(n))return n;let r=rL(nn(),"providers",`${e}.md`);return v3(r)?r:null}function czn(e){try{let t=qpe(e,"utf8"),n=(0,R3.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 uzn(e){return e==="git"?Ee():!0}function lzn(e){let n=ozn(e).providers??{},r=["git","ticketing","spec","knowledge","design"],i=[];for(let s of r){let o=azn(s);if(!o)continue;let a=czn(o);if(!a)continue;if(n[s]!==void 0){i.push(a);continue}a.alwaysOn&&uzn(s)&&i.push(a)}return i}function zft(e,t){return lzn(t).filter(n=>n.splicesInto.includes(e))}var R3,Gft=v(()=>{"use strict";R3=Re(Kt(),1);Ci();Eb()});var UT,FT,A3=v(()=>{"use strict";UT=new Set(["runtime-verifier"]),FT=new Set(["delivery-verifier","runtime-verifier"])});import{execFileSync as dzn}from"node:child_process";import{mkdirSync as Yft,writeFileSync as Zft}from"node:fs";import{dirname as Vft,join as iL,resolve as fzn}from"node:path";function jT(e){let t=null;return()=>(t===null&&(t=ie("@canon:_shared",e)),t)}function _zn(){return Bpe===null&&(Bpe=pzn.renderString(ie("@canon:_shared","workflow-contracts-review.eta.md"),{maxStageIterations:Df})),Bpe}function Tzn(){try{let e=dzn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Vft(fzn(e))}catch{}try{return Vft(ve())}catch{return process.cwd()}}function zpe(){let e=Tzn().replace(/\//g,"-");return iL(Fpe(),e,"shared")}function vzn(){let e=zpe();if(Wft!==e){Yft(e,{recursive:!0});for(let[t,n]of Object.entries(Jft))try{Zft(iL(e,`${t}.md`),n.content(),"utf8")}catch{}Wft=e}}function bs(e){vzn();let t=Jft[e],n=iL(zpe(),`${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 Azn(e,t){let n=Rzn();Yft(n,{recursive:!0});let r=iL(n,`${e}.md`),i=`${r}:${e}`;if(!Kft.has(i)){try{Zft(r,t,"utf8")}catch{}Kft.add(i)}return r}function Xft(e){let t=Azn(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 pzn,hzn,mzn,gzn,yzn,Szn,bzn,Ezn,Bpe,Jft,Wft,Rzn,Kft,Fh=v(()=>{"use strict";gt();Eb();ze();vl();ht();A3();pzn=new Te({autoEscape:!1,useWith:!0});hzn=jT("announcement.md"),mzn=jT("subagent-error-recovery.md"),gzn=jT("workflow-contracts-elaborate.md"),yzn=jT("workflow-contracts-execute.md"),Szn=jT("workflow-contracts-fix-loop.md"),bzn=jT("runtime-verification.md"),Ezn=jT("service-dependencies.md"),Bpe=null;Jft={"workflow-contracts-elaborate":{content:()=>gzn(),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:()=>yzn(),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:()=>_zn(),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:()=>Szn(),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:()=>hzn(),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:()=>mzn(),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:()=>bzn(),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 + a self-installed Playwright script that records video, with the `haiku-playwright` MCP as fallback; 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 video+screenshot evidence under the gitignored `proof/` and upload it to the change request (GitLab uploads API / GitHub release-asset); and the PASS/FAIL/BLOCKED/SKIP verdict that drives sign-off vs. feedback."},"service-dependencies":{content:()=>Ezn(),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."}},Wft="";Rzn=()=>iL(zpe(),"providers"),Kft=new Set});import{existsSync as sL,readdirSync as wzn,readFileSync as w3}from"node:fs";import{join as kzn}from"node:path";function LI(e){if(!(!e||!sL(e)))try{let{data:t}=re(w3(e,"utf8")),n=t.interpretation;return n==="lens"||n==="strict"?n:void 0}catch{return}}function UI(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 Lpe(e){if(e.length===0)return"";let t=[];for(let{heading:n,path:r}of e){if(!n||!r)continue;let i=vl(r,n);i&&t.push(i)}return t.join(` -`)}function vl(e,t){if(!XL(e))return"";let n=yK(e,"utf8"),r;try{r=(0,qft.default)(n).content.trim()}catch{r=n}return r?`### ${t} +`):""}function Gpe(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(!sL(e))return"";let n=w3(e,"utf8"),r;try{r=(0,Qft.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** \`${EE({intent:i,stage:s,kind:o,name:a,body:c.trim()})}\``;let u=Object.entries(r).map(([l,d])=>`${l}: ${JSON.stringify(d)}`).join(", ");return`**Call** \`${n} { ${u} }\``}function Gft(e,t){if(!XL(e))return"";let n=[];try{let{data:p}=re(yK(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** \`${_b({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 ept(e,t){if(!sL(e))return"";let n=[];try{let{data:p}=re(w3(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 SK(e){return Gft(e,{rejectResults:new Set(["reject"]),rejectAdvanceTool:"haiku_unit_advance_hat",rejectHatTool:"haiku_unit_reject_hat",fixLoop:!1})}function NI(e){return Gft(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 k3(e){return ept(e,{rejectResults:new Set(["reject"]),rejectAdvanceTool:"haiku_unit_advance_hat",rejectHatTool:"haiku_unit_reject_hat",fixLoop:!1})}function FI(e){return ept(e,{rejectResults:new Set(["rejected"]),rejectAdvanceTool:"haiku_feedback_advance_hat",rejectHatTool:"haiku_feedback_reject_hat",fixLoop:!0})}function jI(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=lGn(pe(e),"stages");if(!XL(t))return"";let n=[];try{for(let r of uGn(t,{withFileTypes:!0}))if(r.isDirectory())for(let i of EK(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}=Rft({unit:t,hat:n,bolt:r,intent:i,stage:s,content:c,omitBolt:f});return kft({path:p,parentInstruction:h,agentType:o,model:a,heading:u,toolAttr:l,background:d===!0?!1:Mi().subagents.backgroundSpawn})}function Fu(e){if(!zo.modelSelection)return;let{mandatePath:t,studio:n,stage:r}=e;if(t){let s=Vdt(t);if(s)return s}if(r){let s=$i(n,r),o=yI(s?.data?.default_model);if(o)return o}let i=Od(n);return yI(i?.data?.default_model)}function zft(e,t,n,r,i){let s=Mi();return s.hooks?"":Bft.renderString(dGn,{slug:e,stage:t,hat:n,hatsStr:r.join(" \u2192 "),bolt:i,nativeAskUser:s.nativeAskUser})}function MI(e,t){if(!t)return"";let n=Pft(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=>Hft({kind:i.kind,category:i.category,body:i.body})).join(` +`).trimEnd()}function HI(e){let t=kzn(ce(e),"stages");if(!sL(t))return"";let n=[];try{for(let r of wzn(t,{withFileTypes:!0}))if(r.isDirectory())for(let i of I3(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}=Lft({unit:t,hat:n,bolt:r,intent:i,stage:s,content:c,omitBolt:f});return Fft({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=nft(t);if(s)return s}if(r){let s=$i(n,r),o=RI(s?.data?.default_model);if(o)return o}let i=Cd(n);return RI(i?.data?.default_model)}function tpt(e,t,n,r,i){let s=Mi();return s.hooks?"":$ft.renderString(Izn,{slug:e,stage:t,hat:n,hatsStr:r.join(" \u2192 "),bolt:i,nativeAskUser:s.nativeAskUser})}function qI(e,t){if(!t)return"";let n=zft(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=>Xft({kind:i.kind,category:i.category,body:i.body})).join(` `)].join(` -`)}function LI(e){let t=`${e.replace(/\/$/,"")}/intent.md`;if(!XL(t))return"";try{let{data:n}=re(yK(t,"utf8"));return typeof n.mode=="string"?n.mode:""}catch{return""}}function DI(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?"":Bft.renderString(fGn,{slug:n,concurrentLines:o.map(a=>a.line)})}var qft,Bft,dGn,fGn,ts=v(()=>{"use strict";gt();qft=Se(Kt(),1);Ci();Ef();dE();ze();Kn();Tl();ht();Cft();Dh();Bft=new Te({autoEscape:!1,useWith:!0}),dGn=ie("@canon:","_shared/inline-subagent-context.eta.md"),fGn=ie("@canon:","_shared/concurrent-elaborate-loop.eta.md")});function bK(e,t,n){let r=e.ensureWorktree(),i=e.mandateRef(t),s=e.priorHandoffBlock(),o=e.resolveModel(t),a=e.bolt(),c=pGn.renderString(e.template(),e.templateVars({hat:t,terminal:n,worktree:r,mandateRef:i,priorRejectBlock:s}));return Ti({unit:e.dispatchId,hat:t,bolt:a,intent:e.slug,stage:e.emitStage,agentType:"general-purpose",model:o,promptBody:c,heading:e.heading(t)})}var pGn,Dpe=v(()=>{"use strict";gt();ts();pGn=new Te({autoEscape:!1,useWith:!0})});import{existsSync as Vft,readdirSync as Wft,readFileSync as Kft}from"node:fs";import{join as UI}from"node:path";function hGn(){return Upe===null&&(Upe=ie("@canon:feedback/start_feedback_hat","subagent.eta.md")),Upe}function mGn(e){if(!zo.modelSelection)return;let{slug:t,stage:n,studio:r,hat:i,feedbackId:s}=e,o;if(s){let d=s.replace(/^FB-/,""),f=n?UI(ar(t,n),"feedback"):UI(pe(t),"feedback");try{let p=Vft(f)?Wft(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=Kft(UI(f,p[0]),"utf8");o=(0,Fpe.default)(h).data.model}}catch{}}let a=n?Mu(r,n)?.[i]:z4(r)?.[i],c=n?$i(r,n):void 0,u=Od(r),l=lE({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}function FI(e){let{slug:t,studio:n,feedbackId:r,stage:i,hat:s,terminal:o}=e,a=Number.parseInt(r.replace(/^FB-/i,""),10)||0,c=i||"intent",u=null,l=()=>{if(u)return u;let f=i?UI(ar(t,i),"feedback"):UI(pe(t),"feedback"),p=r.replace(/^FB-/i,""),h="",m=1;if(Vft(f)){let y=Wft(f).find(g=>g.startsWith(p)&&g.endsWith(".md"));if(y){let g=UI(f,y);h=NI(g);try{let E=(0,Fpe.default)(Kft(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:()=>Tpe(t,c,r)??"",mandateRef:f=>kr({resolveBody:()=>i?SI(n,i,f,!0):Ydt(n,f),toolName:"haiku_read_hat",toolArgs:i?{studio:n,stage:i,hat:f,fix:!0}:{studio:n,hat:f,fix:!0},intent:t,stage:i||void 0,kind:"mandate",name:f}),priorHandoffBlock:()=>l().priorRejectBlock,resolveModel:f=>mGn({slug:t,studio:n,stage:i,hat:f,feedbackId:r})?.model,bolt:()=>l().bolt,template:()=>hGn(),templateVars:({hat:f,terminal:p,worktree:h,mandateRef:m,priorRejectBlock: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 bK(d,s,o)}var Fpe,Upe,jpe=v(()=>{"use strict";Fpe=Se(Kt(),1);Ci();yr();dE();ze();Kn();Dpe();ts();ht();Upe=null});function Hpe(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 Zft=v(()=>{"use strict"});var Xft={};Rr(Xft,{computeStageDependents:()=>Gpe,filterInputsByPlanStages:()=>Bpe,resolveIntentStages:()=>wn,resolveStageFixHats:()=>Sg,resolveStageHats:()=>bs,resolveStageMetadata:()=>Wpe,resolveStageOptional:()=>QL,resolveStageReview:()=>Vpe,resolveStudioFilePath:()=>Df,resolveStudioFixHats:()=>Uf,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>zpe});import{existsSync as Lf,readdirSync as gGn,readFileSync as qpe}from"node:fs";import{join as Zr}from"node:path";function LT(e){if(!Lf(e))return{};let t=qpe(e,"utf8"),{data:n}=re(t);return n}function Df(e){for(let t of Cu()){let n=Zr(t,e);if(Lf(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 Bpe(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(Lf(i))return LT(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(Lf(o))return LT(o).hats||[]}return[]}function Jft(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(Lf(o))return LT(o)}return{}}function QL(e,t){return Jft(e,t).optional===!0}function Gpe(e,t,n){let r=n.indexOf(t);if(r<0)return[];let i=[];for(let s of n.slice(r+1)){let o=Jft(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(Lf(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[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(Lf(s))for(let o of gGn(s).filter(a=>a.endsWith(".md"))){let a=o.replace(/\.md$/,"");i.includes(a)||i.push(a)}return i.sort()}function Sg(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Zr(process.cwd(),".haiku","studios"),Zr(i,"studios")]){let o=Zr(s,r,"stages",t,"STAGE.md");if(Lf(o)){let c=LT(o).fix_hats;return Array.isArray(c)?c:[]}}return[]}function zpe(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(!Lf(o))return i;try{let{data:a}=re(qpe(o,"utf8"));if((a.closes||[]).length>0&&!i.includes("feedback-assessor"))return[...i,"feedback-assessor"]}catch{}return i}function Vpe(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(Lf(o)){let c=LT(o).review;return Array.isArray(c)?c.join(","):c||"auto"}}return"auto"}function Wpe(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(Lf(o)){let a=qpe(o,"utf8"),c=LT(o),{content:u}=(0,Yft.default)(a);return{description:c.description||t,body:u.trim()}}}return null}var Yft,ns=v(()=>{"use strict";Yft=Se(Kt(),1);Ci();ze();Kn()});import{existsSync as Qft,readFileSync as $ft}from"node:fs";import{join as Zpe}from"node:path";function yGn(){return Kpe===null&&(Kpe=ie("@canon:stage/execute/start_unit_hat","subagent.eta.md")),Kpe}function SGn(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(Qft(a))try{let d=$ft(a,"utf8");o=(0,Ype.default)(d).data.model}catch{}let c=r?Mu(n,r)?.[i]:void 0,u=r?$i(n,r):void 0,l=Od(n);return lE({unit:o,hat:c?.model,stage:u?.data?.default_model,studio:l?.data?.default_model}).model}function EGn(e){let{slug:t,stage:n,unit:r}=e,i=Zpe(ar(t,n),"units",`${r}.md`);if(!Qft(i))return[];try{let s=(0,Ype.default)($ft(i,"utf8")).data;return(Array.isArray(s.iterations)?s.iterations:[]).filter(a=>a.result==="advance").map(a=>typeof a.hat=="string"?a.hat:"").filter(a=>a.length>0)}catch{return[]}}function 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??=EGn({slug:t,stage:i,unit:r});return bK({slug:t,emitStage:i||void 0,dispatchId:r,ensureWorktree:()=>Spe(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:()=>SK(a),resolveModel:d=>SGn({slug:t,studio:n,stage:i,hat:d,unit:r}),bolt:()=>u().length+1,template:()=>yGn(),templateVars:({hat:d,terminal:f,worktree:p,mandateRef:h,priorRejectBlock:m})=>({slug:t,studio:n,stage:i,hat:d,unit:r,terminal:f,worktree:p,mandateRef:h,priorHatsInline:u(),priorRejectBlock:m}),heading:d=>`### Subagent \u2014 \`${r}\` (stage \`${i}\`, hat \`${d}\`)`},s,o)}var Ype,Kpe,Jpe=v(()=>{"use strict";Ype=Se(Kt(),1);Ci();yr();dE();ze();Kn();Dpe();ts();ht();Kpe=null});function TK(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 tpt(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 vK(e){let t=tpt(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 _K(e){return e.replace(/"/g,""").replace(/\[/g,"[").replace(/\]/g,"]").replace(//g,">")}function ju(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,"_");return/^[a-zA-Z]/.test(t)?t:`n_${t}`}function AK(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=_K(l.charAt(0).toUpperCase()+l.slice(1));n.push(` subgraph ${ju(`stage_${l}`)}["${f}"]`);for(let p of d){let h=p.title||p.slug,m=_K(h),y=ju(p.slug);n.push(` ${y}["${m}"]`)}n.push(" end")}else{let l=vK(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 ${ju(`wave_${h}`)}["Wave ${h}"]`);for(let g of y){let E=g.title||g.slug,S=_K(E),b=ju(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(` ${ju(l.from)} --> ${ju(l.to)}`)}let c=new Set;for(let l of e.edges){let d=a.get(l.from),f=a.get(l.to),p=!r.has(l.from),h=!r.has(l.to);p&&f&&(c.add(l.from),n.push(` ${ju(l.from)} --> ${ju(l.to)}`)),h&&d&&(c.add(l.to),n.push(` ${ju(l.from)} --> ${ju(l.to)}`))}for(let l of c){let d=ju(l),f=_K(l);n.push(` ${d}["${f} (external)"]:::external`)}let u=new Map;for(let l of e.nodes){if(c.has(l.id))continue;let d=u.get(l.status)??[];d.push(ju(l.id)),u.set(l.status,d)}for(let[l,d]of u){let f=ept[l]??ept.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 ept,Xpe=v(()=>{"use strict";ept={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 Qpe,readdirSync as npt,readFileSync as bGn,rmSync as _Gn}from"node:fs";import{join as RK}from"node:path";function TGn(e){if(!Qpe(e))return{};let t=bGn(e,"utf8"),{data:n}=re(t);return n}function $L(e,t){let n=Eg(e,t);return n.length===0?!0:!n.some(r=>r.status==="completed")}function rpt(e,t){if(!$L(e,t))return[];let n=RK(e,"stages",t,"feedback");if(!Qpe(n))return[];let r=[];for(let i of npt(n))if(i.endsWith(".md")&&/^\d+-/.test(i))try{_Gn(RK(n,i),{force:!0}),r.push(i)}catch{}return r}function vGn(e){let t=typeof e.started_at=="string"&&e.started_at.length>0,n=Array.isArray(e.iterations)?e.iterations:[],r=n.length>0?n[n.length-1]:null,i=e.approvals&&typeof e.approvals=="object"?e.approvals:{},s=Object.values(i).some(l=>l!==null&&l!==!1&&l!==void 0),o=r!==null&&(r.result==="advance"||r.result==="closed")&&typeof r.hat=="string",a;s||o?a="completed":t?a="active":a="pending";let c=r!==null&&typeof r.hat=="string"?r.hat:"",u=n.length;return{status:a,hat:c,bolt:u}}function Eg(e,t){let n=RK(e,"stages",t,"units");if(!Qpe(n))return[];let i=npt(n).filter(o=>o.endsWith(".md")).map(o=>{let a=TGn(RK(n,o)),c=vGn(a);return{name:o.replace(".md",""),status:c.status,hat:c.hat,bolt:c.bolt,dependsOn:a.depends_on||[],depsComplete:!1}}),s=new Map(i.map(o=>[o.name,o.status]));for(let o of i)o.depsComplete=o.dependsOn.every(a=>s.get(a)==="completed");return i}function HI(e){let t=e.map(c=>({id:c.name,status:c.status})),n=[],r=new Map;for(let c of e)r.set(c.name,[]);for(let c of e)for(let u of c.dependsOn){if(!r.has(u))continue;n.push({from:u,to:c.name});let l=r.get(u);l&&l.push(c.name)}let i={nodes:t,edges:n,adjacency:r},s;try{s=vK(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 wK(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 kK=v(()=>{"use strict";Xpe();ze()});var hc={};Rr(hc,{HasPropertyKey:()=>IK,IsArray:()=>js,IsAsyncIterator:()=>$pe,IsBigInt:()=>eD,IsBoolean:()=>bg,IsDate:()=>DT,IsFunction:()=>ehe,IsIterator:()=>the,IsNull:()=>nhe,IsNumber:()=>Al,IsObject:()=>Ir,IsRegExp:()=>tD,IsString:()=>Yr,IsSymbol:()=>rhe,IsUint8Array:()=>_g,IsUndefined:()=>Hs});function IK(e,t){return t in e}function $pe(e){return Ir(e)&&!js(e)&&!_g(e)&&Symbol.asyncIterator in e}function js(e){return Array.isArray(e)}function eD(e){return typeof e=="bigint"}function bg(e){return typeof e=="boolean"}function DT(e){return e instanceof globalThis.Date}function ehe(e){return typeof e=="function"}function the(e){return Ir(e)&&!js(e)&&!_g(e)&&Symbol.iterator in e}function nhe(e){return e===null}function Al(e){return typeof e=="number"}function Ir(e){return typeof e=="object"&&e!==null}function tD(e){return e instanceof globalThis.RegExp}function Yr(e){return typeof e=="string"}function rhe(e){return typeof e=="symbol"}function _g(e){return e instanceof globalThis.Uint8Array}function Hs(e){return e===void 0}var Yc=v(()=>{});function AGn(e){return e.map(t=>xK(t))}function RGn(e){return new Date(e.getTime())}function wGn(e){return new Uint8Array(e)}function kGn(e){return new RegExp(e.source,e.flags)}function IGn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=xK(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=xK(e[n]);return t}function xK(e){return js(e)?AGn(e):DT(e)?RGn(e):_g(e)?wGn(e):tD(e)?kGn(e):Ir(e)?IGn(e):e}function vi(e){return xK(e)}var Hu=v(()=>{Yc()});function BI(e,t){return t===void 0?vi(e):vi({...t,...e})}var OK=v(()=>{Hu()});var ihe=v(()=>{OK();Hu()});function ipt(e){return e!==null&&typeof e=="object"}function spt(e){return globalThis.Array.isArray(e)&&!globalThis.ArrayBuffer.isView(e)}function opt(e){return e===void 0}function apt(e){return typeof e=="number"}var cpt=v(()=>{});var upt=v(()=>{cpt()});var NK,lpt=v(()=>{upt();(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=ipt(o);return e.AllowArrayObject?a:a&&!spt(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?apt(o):Number.isFinite(o)}e.IsNumberLike=i;function s(o){let a=opt(o);return e.AllowNullVoid?a||o===null:a}e.IsVoidLike=s})(NK||(NK={}))});function xGn(e){return globalThis.Object.freeze(e).map(t=>nD(t))}function OGn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=nD(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=nD(e[n]);return globalThis.Object.freeze(t)}function nD(e){return js(e)?xGn(e):DT(e)?e:_g(e)?e:tD(e)?e:Ir(e)?OGn(e):e}var dpt=v(()=>{Yc()});function de(e,t){let n=t!==void 0?{...t,...e}:e;switch(NK.InstanceMode){case"freeze":return nD(n);case"clone":return vi(n);default:return n}}var Pt=v(()=>{lpt();dpt();Hu()});var Tg=v(()=>{Pt()});var Jo,fpt=v(()=>{Jo=class extends Error{constructor(t){super(t)}}});var Uh=v(()=>{fpt()});var so,Ff,wa,Cd,Oe,rD=v(()=>{so=Symbol.for("TypeBox.Transform"),Ff=Symbol.for("TypeBox.Readonly"),wa=Symbol.for("TypeBox.Optional"),Cd=Symbol.for("TypeBox.Hint"),Oe=Symbol.for("TypeBox.Kind")});var Ut=v(()=>{rD()});function GI(e){return Ir(e)&&e[Ff]==="Readonly"}function qu(e){return Ir(e)&&e[wa]==="Optional"}function she(e){return Bn(e,"Any")}function ohe(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 NGn(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 PK(e){return bg(e)||Al(e)||Yr(e)}function Rl(e){return Bn(e,"Literal")}function wl(e){return Bn(e,"MappedKey")}function Ai(e){return Bn(e,"MappedResult")}function bE(e){return Bn(e,"Never")}function PGn(e){return Bn(e,"Not")}function iD(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 ahe(e){return Bn(e,"RegExp")}function Ag(e){return Bn(e,"String")}function sD(e){return Bn(e,"Symbol")}function kl(e){return Bn(e,"TemplateLiteral")}function CGn(e){return Bn(e,"This")}function _E(e){return Ir(e)&&so in e}function Il(e){return Bn(e,"Tuple")}function oD(e){return Bn(e,"Undefined")}function Zn(e){return Bn(e,"Union")}function MGn(e){return Bn(e,"Uint8Array")}function LGn(e){return Bn(e,"Unknown")}function DGn(e){return Bn(e,"Unsafe")}function UGn(e){return Bn(e,"Void")}function FGn(e){return Ir(e)&&Oe in e&&Yr(e[Oe])}function xl(e){return she(e)||ohe(e)||jf(e)||vg(e)||FT(e)||UT(e)||Hf(e)||qf(e)||NGn(e)||Bf(e)||Gf(e)||rs(e)||jT(e)||Rl(e)||wl(e)||Ai(e)||bE(e)||PGn(e)||iD(e)||zf(e)||qs(e)||HT(e)||qT(e)||_s(e)||ahe(e)||Ag(e)||sD(e)||kl(e)||CGn(e)||Il(e)||oD(e)||Zn(e)||MGn(e)||LGn(e)||DGn(e)||UGn(e)||FGn(e)}var Xn=v(()=>{Yc();Ut()});var Q={};Rr(Q,{IsAny:()=>gpt,IsArgument:()=>ypt,IsArray:()=>Spt,IsAsyncIterator:()=>Ept,IsBigInt:()=>bpt,IsBoolean:()=>_pt,IsComputed:()=>Tpt,IsConstructor:()=>vpt,IsDate:()=>Apt,IsFunction:()=>Rpt,IsImport:()=>zGn,IsInteger:()=>wpt,IsIntersect:()=>kpt,IsIterator:()=>Ipt,IsKind:()=>eht,IsKindOf:()=>kn,IsLiteral:()=>cD,IsLiteralBoolean:()=>VGn,IsLiteralNumber:()=>Opt,IsLiteralString:()=>xpt,IsLiteralValue:()=>Npt,IsMappedKey:()=>Ppt,IsMappedResult:()=>Cpt,IsNever:()=>Mpt,IsNot:()=>Lpt,IsNull:()=>Dpt,IsNumber:()=>Upt,IsObject:()=>Fpt,IsOptional:()=>GGn,IsPromise:()=>jpt,IsProperties:()=>CK,IsReadonly:()=>BGn,IsRecord:()=>Hpt,IsRecursive:()=>WGn,IsRef:()=>qpt,IsRegExp:()=>Bpt,IsSchema:()=>Xo,IsString:()=>Gpt,IsSymbol:()=>zpt,IsTemplateLiteral:()=>Vpt,IsThis:()=>Wpt,IsTransform:()=>Kpt,IsTuple:()=>Zpt,IsUint8Array:()=>Jpt,IsUndefined:()=>Ypt,IsUnion:()=>dhe,IsUnionLiteral:()=>KGn,IsUnknown:()=>Xpt,IsUnsafe:()=>Qpt,IsVoid:()=>$pt,TypeGuardUnknownTypeError:()=>che});function ppt(e){try{return new RegExp(e),!0}catch{return!1}}function uhe(e){if(!Yr(e))return!1;for(let t=0;t=7&&n<=13||n===27||n===127)return!1}return!0}function hpt(e){return lhe(e)||Xo(e)}function aD(e){return Hs(e)||eD(e)}function Jr(e){return Hs(e)||Al(e)}function lhe(e){return Hs(e)||bg(e)}function xr(e){return Hs(e)||Yr(e)}function HGn(e){return Hs(e)||Yr(e)&&uhe(e)&&ppt(e)}function qGn(e){return Hs(e)||Yr(e)&&uhe(e)}function mpt(e){return Hs(e)||Xo(e)}function BGn(e){return Ir(e)&&e[Ff]==="Readonly"}function GGn(e){return Ir(e)&&e[wa]==="Optional"}function gpt(e){return kn(e,"Any")&&xr(e.$id)}function ypt(e){return kn(e,"Argument")&&Al(e.index)}function Spt(e){return kn(e,"Array")&&e.type==="array"&&xr(e.$id)&&Xo(e.items)&&Jr(e.minItems)&&Jr(e.maxItems)&&lhe(e.uniqueItems)&&mpt(e.contains)&&Jr(e.minContains)&&Jr(e.maxContains)}function Ept(e){return kn(e,"AsyncIterator")&&e.type==="AsyncIterator"&&xr(e.$id)&&Xo(e.items)}function bpt(e){return kn(e,"BigInt")&&e.type==="bigint"&&xr(e.$id)&&aD(e.exclusiveMaximum)&&aD(e.exclusiveMinimum)&&aD(e.maximum)&&aD(e.minimum)&&aD(e.multipleOf)}function _pt(e){return kn(e,"Boolean")&&e.type==="boolean"&&xr(e.$id)}function Tpt(e){return kn(e,"Computed")&&Yr(e.target)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))}function vpt(e){return kn(e,"Constructor")&&e.type==="Constructor"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function Apt(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 Rpt(e){return kn(e,"Function")&&e.type==="Function"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function zGn(e){return kn(e,"Import")&&IK(e,"$defs")&&Ir(e.$defs)&&CK(e.$defs)&&IK(e,"$ref")&&Yr(e.$ref)&&e.$ref in e.$defs}function wpt(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 CK(e){return Ir(e)&&Object.entries(e).every(([t,n])=>uhe(t)&&Xo(n))}function kpt(e){return kn(e,"Intersect")&&!(Yr(e.type)&&e.type!=="object")&&js(e.allOf)&&e.allOf.every(t=>Xo(t)&&!Kpt(t))&&xr(e.type)&&(lhe(e.unevaluatedProperties)||mpt(e.unevaluatedProperties))&&xr(e.$id)}function Ipt(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 xpt(e){return cD(e)&&Yr(e.const)}function Opt(e){return cD(e)&&Al(e.const)}function VGn(e){return cD(e)&&bg(e.const)}function cD(e){return kn(e,"Literal")&&xr(e.$id)&&Npt(e.const)}function Npt(e){return bg(e)||Al(e)||Yr(e)}function Ppt(e){return kn(e,"MappedKey")&&js(e.keys)&&e.keys.every(t=>Al(t)||Yr(t))}function Cpt(e){return kn(e,"MappedResult")&&CK(e.properties)}function Mpt(e){return kn(e,"Never")&&Ir(e.not)&&Object.getOwnPropertyNames(e.not).length===0}function Lpt(e){return kn(e,"Not")&&Xo(e.not)}function Dpt(e){return kn(e,"Null")&&e.type==="null"&&xr(e.$id)}function Upt(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 Fpt(e){return kn(e,"Object")&&e.type==="object"&&xr(e.$id)&&CK(e.properties)&&hpt(e.additionalProperties)&&Jr(e.minProperties)&&Jr(e.maxProperties)}function jpt(e){return kn(e,"Promise")&&e.type==="Promise"&&xr(e.$id)&&Xo(e.item)}function Hpt(e){return kn(e,"Record")&&e.type==="object"&&xr(e.$id)&&hpt(e.additionalProperties)&&Ir(e.patternProperties)&&(t=>{let n=Object.getOwnPropertyNames(t.patternProperties);return n.length===1&&ppt(n[0])&&Ir(t.patternProperties)&&Xo(t.patternProperties[n[0]])})(e)}function WGn(e){return Ir(e)&&Cd in e&&e[Cd]==="Recursive"}function qpt(e){return kn(e,"Ref")&&xr(e.$id)&&Yr(e.$ref)}function Bpt(e){return kn(e,"RegExp")&&xr(e.$id)&&Yr(e.source)&&Yr(e.flags)&&Jr(e.maxLength)&&Jr(e.minLength)}function Gpt(e){return kn(e,"String")&&e.type==="string"&&xr(e.$id)&&Jr(e.minLength)&&Jr(e.maxLength)&&HGn(e.pattern)&&qGn(e.format)}function zpt(e){return kn(e,"Symbol")&&e.type==="symbol"&&xr(e.$id)}function Vpt(e){return kn(e,"TemplateLiteral")&&e.type==="string"&&Yr(e.pattern)&&e.pattern[0]==="^"&&e.pattern[e.pattern.length-1]==="$"}function Wpt(e){return kn(e,"This")&&xr(e.$id)&&Yr(e.$ref)}function Kpt(e){return Ir(e)&&so in e}function Zpt(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 Ypt(e){return kn(e,"Undefined")&&e.type==="undefined"&&xr(e.$id)}function KGn(e){return dhe(e)&&e.anyOf.every(t=>xpt(t)||Opt(t))}function dhe(e){return kn(e,"Union")&&xr(e.$id)&&Ir(e)&&js(e.anyOf)&&e.anyOf.every(t=>Xo(t))}function Jpt(e){return kn(e,"Uint8Array")&&e.type==="Uint8Array"&&xr(e.$id)&&Jr(e.minByteLength)&&Jr(e.maxByteLength)}function Xpt(e){return kn(e,"Unknown")&&xr(e.$id)}function Qpt(e){return kn(e,"Unsafe")}function $pt(e){return kn(e,"Void")&&e.type==="void"&&xr(e.$id)}function eht(e){return Ir(e)&&Oe in e&&Yr(e[Oe])&&!jGn.includes(e[Oe])}function Xo(e){return Ir(e)&&(gpt(e)||ypt(e)||Spt(e)||_pt(e)||bpt(e)||Ept(e)||Tpt(e)||vpt(e)||Apt(e)||Rpt(e)||wpt(e)||kpt(e)||Ipt(e)||cD(e)||Ppt(e)||Cpt(e)||Mpt(e)||Lpt(e)||Dpt(e)||Upt(e)||Fpt(e)||jpt(e)||Hpt(e)||qpt(e)||Bpt(e)||Gpt(e)||zpt(e)||Vpt(e)||Wpt(e)||Zpt(e)||Ypt(e)||dhe(e)||Jpt(e)||Xpt(e)||Qpt(e)||$pt(e)||eht(e))}var che,jGn,tht=v(()=>{Yc();Ut();Uh();che=class extends Jo{},jGn=["Argument","Any","Array","AsyncIterator","BigInt","Boolean","Computed","Constructor","Date","Enum","Function","Integer","Intersect","Iterator","Literal","MappedKey","MappedResult","Not","Null","Number","Object","Promise","Record","Ref","RegExp","String","Symbol","TemplateLiteral","This","Tuple","Undefined","Union","Uint8Array","Unknown","Void"]});var fhe=v(()=>{Xn();tht();Yc()});var nht=v(()=>{});var rht=v(()=>{nht()});var phe,uD,hhe,ZGn,dJr,TE,vE,iht,sht=v(()=>{phe="(true|false)",uD="(0|[1-9][0-9]*)",hhe="(.*)",ZGn="(?!.*)",dJr=`^${phe}$`,TE=`^${uD}$`,vE=`^${hhe}$`,iht=`^${ZGn}$`});var lD=v(()=>{sht()});var oht=v(()=>{});var aht=v(()=>{});var cht=v(()=>{oht();aht()});function uht(e,t){return e.includes(t)}function lht(e){return[...new Set(e)]}function XGn(e,t){return e.filter(n=>t.includes(n))}function QGn(e,t){return e.reduce((n,r)=>XGn(n,r),t)}function dht(e){return e.length===1?e[0]:e.length>1?QGn(e.slice(1),e[0]):[]}function fht(e){let t=[];for(let n of e)t.push(...n);return t}var pht=v(()=>{});var dD=v(()=>{pht()});function AE(e){return de({[Oe]:"Any"},e)}var hht=v(()=>{Tg();Ut()});var fD=v(()=>{hht()});function zI(e,t){return de({[Oe]:"Array",type:"array",items:e},t)}var mht=v(()=>{Pt();Ut()});var pD=v(()=>{mht()});function ght(e){return de({[Oe]:"Argument",index:e})}var yht=v(()=>{Pt();Ut()});var mhe=v(()=>{yht()});function VI(e,t){return de({[Oe]:"AsyncIterator",type:"AsyncIterator",items:e},t)}var Sht=v(()=>{Ut();Pt()});var hD=v(()=>{Sht()});function oi(e,t,n){return de({[Oe]:"Computed",target:e,parameters:t},n)}var Eht=v(()=>{Tg();rD()});var RE=v(()=>{Eht()});function $Gn(e,t){let{[t]:n,...r}=e;return r}function is(e,t){return t.reduce((n,r)=>$Gn(n,r),e)}var MK=v(()=>{});var wg=v(()=>{MK()});function Yn(e){return de({[Oe]:"Never",not:{}},e)}var bht=v(()=>{Pt();Ut()});var ka=v(()=>{bht()});var _ht=v(()=>{});function Qn(e){return de({[Oe]:"MappedResult",properties:e})}var ghe=v(()=>{Pt();Ut()});function WI(e,t,n){return de({[Oe]:"Constructor",type:"Constructor",parameters:e,returns:t},n)}var Tht=v(()=>{Pt();Ut()});var mD=v(()=>{Tht()});function Fh(e,t,n){return de({[Oe]:"Function",type:"Function",parameters:e,returns:t},n)}var vht=v(()=>{Pt();Ut()});var BT=v(()=>{vht()});function gD(e,t){return de({[Oe]:"Union",anyOf:e},t)}var yhe=v(()=>{Pt();Ut()});function ezn(e){return e.some(t=>qu(t))}function Aht(e){return e.map(t=>qu(t)?tzn(t):t)}function tzn(e){return is(e,[wa])}function nzn(e,t){return ezn(e)?mc(gD(Aht(e),t)):gD(Aht(e),t)}function jh(e,t){return e.length===1?de(e[0],t):e.length===0?Yn(t):nzn(e,t)}var Rht=v(()=>{Pt();Ut();wg();ka();kg();yhe();Xn()});var wht=v(()=>{});function Sr(e,t){return e.length===0?Yn(t):e.length===1?de(e[0],t):gD(e,t)}var kht=v(()=>{ka();Pt();yhe()});var oo=v(()=>{Rht();wht();kht()});function rzn(e){return e.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function She(e,t,n){return e[t]===n&&e.charCodeAt(t-1)!==92}function Ig(e,t){return She(e,t,"(")}function yD(e,t){return She(e,t,")")}function Iht(e,t){return She(e,t,"|")}function izn(e){if(!(Ig(e,0)&&yD(e,e.length-1)))return!1;let t=0;for(let n=0;n0&&r.push(KI(o)),n=s+1}let i=e.slice(n);return i.length>0&&r.push(KI(i)),r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"or",expr:r}}function uzn(e){function t(i,s){if(!Ig(i,s))throw new LK("TemplateLiteralParser: Index must point to open parens");let o=0;for(let a=s;a0&&r.push(KI(a)),i=o-1}return r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"and",expr:r}}function KI(e){return izn(e)?KI(szn(e)):ozn(e)?czn(e):azn(e)?uzn(e):{type:"const",const:rzn(e)}}function ZI(e){return KI(e.slice(1,e.length-1))}var LK,DK=v(()=>{Uh();LK=class extends Jo{}});function lzn(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="0"&&e.expr[1].type==="const"&&e.expr[1].const==="[1-9][0-9]*"}function dzn(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="true"&&e.expr[1].type==="const"&&e.expr[1].const==="false"}function fzn(e){return e.type==="const"&&e.const===".*"}function GT(e){return lzn(e)||fzn(e)?!1:dzn(e)?!0:e.type==="and"?e.expr.every(t=>GT(t)):e.type==="or"?e.expr.every(t=>GT(t)):e.type==="const"?!0:(()=>{throw new Ehe("Unknown expression type")})()}function xht(e){let t=ZI(e.pattern);return GT(t)}var Ehe,bhe=v(()=>{DK();Uh();Ehe=class extends Jo{}});function*Oht(e){if(e.length===1)return yield*e[0];for(let t of e[0])for(let n of Oht(e.slice(1)))yield`${t}${n}`}function*pzn(e){return yield*Oht(e.expr.map(t=>[...SD(t)]))}function*hzn(e){for(let t of e.expr)yield*SD(t)}function*mzn(e){return yield e.const}function*SD(e){return e.type==="and"?yield*pzn(e):e.type==="or"?yield*hzn(e):e.type==="const"?yield*mzn(e):(()=>{throw new _he("Unknown expression")})()}function UK(e){let t=ZI(e.pattern);return GT(t)?[...SD(t)]:[]}var _he,The=v(()=>{bhe();DK();Uh();_he=class extends Jo{}});function cr(e,t){return de({[Oe]:"Literal",const:e,type:typeof e},t)}var Nht=v(()=>{Pt();Ut()});var Bu=v(()=>{Nht()});function FK(e){return de({[Oe]:"Boolean",type:"boolean"},e)}var Pht=v(()=>{Ut();Tg()});var jK=v(()=>{Pht()});function YI(e){return de({[Oe]:"BigInt",type:"bigint"},e)}var Cht=v(()=>{Ut();Tg()});var ED=v(()=>{Cht()});function Md(e){return de({[Oe]:"Number",type:"number"},e)}var Mht=v(()=>{Pt();Ut()});var zT=v(()=>{Mht()});function Vf(e){return de({[Oe]:"String",type:"string"},e)}var Lht=v(()=>{Pt();Ut()});var JI=v(()=>{Lht()});function*gzn(e){let t=e.trim().replace(/"|'/g,"");return t==="boolean"?yield FK():t==="number"?yield Md():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*yzn(e){if(e[1]!=="{"){let t=cr("$"),n=vhe(e.slice(1));return yield*[t,...n]}for(let t=2;t{Bu();jK();ED();zT();JI();oo();ka()});function Szn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Uht(e,t){return kl(e)?e.pattern.slice(1,e.pattern.length-1):Zn(e)?`(${e.anyOf.map(n=>Uht(n,t)).join("|")})`:zf(e)?`${t}${uD}`:Gf(e)?`${t}${uD}`:FT(e)?`${t}${uD}`:Ag(e)?`${t}${hhe}`:Rl(e)?`${t}${Szn(e.const.toString())}`:vg(e)?`${t}${phe}`:(()=>{throw new Rhe(`Unexpected Kind '${e[Oe]}'`)})()}function whe(e){return`^${e.map(t=>Uht(t,"")).join("")}$`}var Rhe,khe=v(()=>{lD();Ut();Uh();Xn();Rhe=class extends Jo{}});function VT(e){let n=UK(e).map(r=>cr(r));return jh(n)}var Fht=v(()=>{oo();Bu();The()});function HK(e,t){let n=Yr(e)?whe(Dht(e)):whe(e);return de({[Oe]:"TemplateLiteral",type:"string",pattern:n},t)}var jht=v(()=>{Pt();Ahe();khe();Yc();Ut()});var xg=v(()=>{bhe();The();Ahe();DK();khe();Fht();jht()});function Ezn(e){return UK(e).map(n=>n.toString())}function bzn(e){let t=[];for(let n of e)t.push(...Gu(n));return t}function _zn(e){return[e.toString()]}function Gu(e){return[...new Set(kl(e)?Ezn(e):Zn(e)?bzn(e.anyOf):Rl(e)?_zn(e.const):zf(e)?["[number]"]:Gf(e)?["[number]"]:[])]}var qK=v(()=>{xg();Xn()});function Tzn(e,t,n){let r={};for(let i of Object.getOwnPropertyNames(t))r[i]=wE(e,Gu(t[i]),n);return r}function vzn(e,t,n){return Tzn(e,t.properties,n)}function Hht(e,t,n){let r=vzn(e,t,n);return Qn(r)}var Ihe=v(()=>{Ao();qK();Hh()});function Bht(e,t){return e.map(n=>Ght(n,t))}function Azn(e){return e.filter(t=>!bE(t))}function Rzn(e,t){return BK(Azn(Bht(e,t)))}function wzn(e){return e.some(t=>bE(t))?[]:e}function kzn(e,t){return jh(wzn(Bht(e,t)))}function Izn(e,t){return t in e?e[t]:t==="[number]"?jh(e):Yn()}function xzn(e,t){return t==="[number]"?e:Yn()}function Ozn(e,t){return t in e?e[t]:Yn()}function Ght(e,t){return rs(e)?Rzn(e.allOf,t):Zn(e)?kzn(e.anyOf,t):Il(e)?Izn(e.items??[],t):jf(e)?xzn(e.items,t):qs(e)?Ozn(e.properties,t):Yn()}function xhe(e,t){return t.map(n=>Ght(e,n))}function qht(e,t){return jh(xhe(e,t))}function wE(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(!xl(e)||!xl(t))throw new Jo(r);return oi("Index",[e,t])}return Ai(t)?Hht(e,t,n):wl(t)?zht(e,t,n):de(xl(t)?qht(e,Gu(t)):qht(e,t),n)}var Ohe=v(()=>{Pt();Uh();RE();ka();Ld();oo();qK();Nhe();Ihe();Xn()});function Nzn(e,t,n){return{[t]:wE(e,[t],vi(n))}}function Pzn(e,t,n){return t.reduce((r,i)=>({...r,...Nzn(e,i,n)}),{})}function Czn(e,t,n){return Pzn(e,t.keys,n)}function zht(e,t,n){let r=Czn(e,t,n);return Qn(r)}var Nhe=v(()=>{Ohe();Ao();Hu()});var Hh=v(()=>{Nhe();Ihe();qK();Ohe()});function XI(e,t){return de({[Oe]:"Iterator",type:"Iterator",items:e},t)}var Vht=v(()=>{Pt();Ut()});var bD=v(()=>{Vht()});function Mzn(e){return globalThis.Object.keys(e).filter(t=>!qu(e[t]))}function Lzn(e,t){let n=Mzn(e),r=n.length>0?{[Oe]:"Object",type:"object",required:n,properties:e}:{[Oe]:"Object",type:"object",properties:e};return de(r,t)}var Or,Wht=v(()=>{Pt();Ut();Xn();Or=Lzn});var Ol=v(()=>{Wht()});function GK(e,t){return de({[Oe]:"Promise",type:"Promise",item:e},t)}var Kht=v(()=>{Pt();Ut()});var zK=v(()=>{Kht()});function Dzn(e){return de(is(e,[Ff]))}function Uzn(e){return de({...e,[Ff]:"Readonly"})}function Fzn(e,t){return t===!1?Dzn(e):Uzn(e)}function zu(e,t){let n=t??!0;return Ai(e)?Zht(e,n):Fzn(e,n)}var Phe=v(()=>{Pt();Ut();wg();Che();Xn()});function jzn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=zu(e[r],t);return n}function Hzn(e,t){return jzn(e.properties,t)}function Zht(e,t){let n=Hzn(e,t);return Qn(n)}var Che=v(()=>{Ao();Phe()});var WT=v(()=>{Che();Phe()});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 Yht=v(()=>{Pt();Ut()});var kE=v(()=>{Yht()});function Jht(e,t){return e in t?Ud(e,t[e]):Qn(t)}function qzn(e){return{[e]:cr(e)}}function Bzn(e){let t={};for(let n of e)t[n]=cr(n);return t}function Gzn(e,t){return uht(t,e)?qzn(e):Bzn(t)}function zzn(e,t){let n=Gzn(e,t);return Jht(e,n)}function _D(e,t){return t.map(n=>Ud(e,n))}function Vzn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(t))n[r]=Ud(e,t[r]);return n}function Ud(e,t){let n={...t};return qu(t)?mc(Ud(e,is(t,[wa]))):GI(t)?zu(Ud(e,is(t,[Ff]))):Ai(t)?Jht(e,t.properties):wl(t)?zzn(e,t.keys):qf(t)?WI(_D(e,t.parameters),Ud(e,t.returns),n):Bf(t)?Fh(_D(e,t.parameters),Ud(e,t.returns),n):UT(t)?VI(Ud(e,t.items),n):jT(t)?XI(Ud(e,t.items),n):rs(t)?gc(_D(e,t.allOf),n):Zn(t)?Sr(_D(e,t.anyOf),n):Il(t)?Dd(_D(e,t.items??[]),n):qs(t)?Or(Vzn(e,t.properties),n):jf(t)?zI(Ud(e,t.items),n):HT(t)?GK(Ud(e,t.item),n):t}function Wzn(e,t){let n={};for(let r of e)n[r]=Ud(r,t);return n}function Xht(e,t,n){let r=xl(e)?Gu(e):e,i=t({[Oe]:"MappedKey",keys:r}),s=Wzn(r,i);return Or(s,n)}var Qht=v(()=>{Ut();wg();pD();hD();mD();BT();Hh();Ld();bD();Bu();Ol();kg();zK();WT();kE();oo();dD();ghe();Xn()});var Ao=v(()=>{_ht();ghe();Qht()});function Kzn(e){return de(is(e,[wa]))}function Zzn(e){return de({...e,[wa]:"Optional"})}function Yzn(e,t){return t===!1?Kzn(e):Zzn(e)}function mc(e,t){let n=t??!0;return Ai(e)?$ht(e,n):Yzn(e,n)}var Mhe=v(()=>{Pt();Ut();wg();Lhe();Xn()});function Jzn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=mc(e[r],t);return n}function Xzn(e,t){return Jzn(e.properties,t)}function $ht(e,t){let n=Xzn(e,t);return Qn(n)}var Lhe=v(()=>{Ao();Mhe()});var kg=v(()=>{Lhe();Mhe()});function TD(e,t={}){let n=e.every(i=>qs(i)),r=xl(t.unevaluatedProperties)?{unevaluatedProperties:t.unevaluatedProperties}:{};return de(t.unevaluatedProperties===!1||xl(t.unevaluatedProperties)||n?{...r,[Oe]:"Intersect",type:"object",allOf:e}:{...r,[Oe]:"Intersect",allOf:e},t)}var Dhe=v(()=>{Pt();Ut();Xn()});function Qzn(e){return e.every(t=>qu(t))}function $zn(e){return is(e,[wa])}function emt(e){return e.map(t=>qu(t)?$zn(t):t)}function e2n(e,t){return Qzn(e)?mc(TD(emt(e),t)):TD(emt(e),t)}function BK(e,t={}){if(e.length===1)return de(e[0],t);if(e.length===0)return Yn(t);if(e.some(n=>_E(n)))throw new Error("Cannot intersect transform types");return e2n(e,t)}var tmt=v(()=>{Ut();Pt();wg();ka();kg();Dhe();Xn()});var nmt=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=>_E(n)))throw new Error("Cannot intersect transform types");return TD(e,t)}var rmt=v(()=>{Pt();ka();Dhe();Xn()});var Ld=v(()=>{tmt();nmt();rmt()});function qh(...e){let[t,n]=typeof e[0]=="string"?[e[0],e[1]]:[e[0].$id,e[1]];if(typeof t!="string")throw new Jo("Ref: $ref must be a string");return de({[Oe]:"Ref",$ref:t},n)}var imt=v(()=>{Uh();Pt();Ut()});var KT=v(()=>{imt()});function t2n(e,t){return oi("Awaited",[oi(e,t)])}function n2n(e){return oi("Awaited",[qh(e)])}function r2n(e){return gc(smt(e))}function i2n(e){return Sr(smt(e))}function s2n(e){return QI(e)}function smt(e){return e.map(t=>QI(t))}function QI(e,t){return de(Hf(e)?t2n(e.target,e.parameters):rs(e)?r2n(e.allOf):Zn(e)?i2n(e.anyOf):HT(e)?s2n(e.item):_s(e)?n2n(e.$ref):e,t)}var omt=v(()=>{Pt();RE();Ld();oo();KT();Xn()});var VK=v(()=>{omt()});function amt(e){let t=[];for(let n of e)t.push(vD(n));return t}function o2n(e){let t=amt(e);return fht(t)}function a2n(e){let t=amt(e);return dht(t)}function c2n(e){return e.map((t,n)=>n.toString())}function u2n(e){return["[number]"]}function l2n(e){return globalThis.Object.getOwnPropertyNames(e)}function d2n(e){return f2n?globalThis.Object.getOwnPropertyNames(e).map(n=>n[0]==="^"&&n[n.length-1]==="$"?n.slice(1,n.length-1):n):[]}function vD(e){return rs(e)?o2n(e.allOf):Zn(e)?a2n(e.anyOf):Il(e)?c2n(e.items??[]):jf(e)?u2n(e.items):qs(e)?l2n(e.properties):qT(e)?d2n(e.patternProperties):[]}var f2n,Uhe=v(()=>{dD();Xn();f2n=!1});function p2n(e,t){return oi("KeyOf",[oi(e,t)])}function h2n(e){return oi("KeyOf",[qh(e)])}function m2n(e,t){let n=vD(e),r=g2n(n),i=jh(r);return de(i,t)}function g2n(e){return e.map(t=>t==="[number]"?Md():cr(t))}function $I(e,t){return Hf(e)?p2n(e.target,e.parameters):_s(e)?h2n(e.$ref):Ai(e)?cmt(e,t):m2n(e,t)}var Fhe=v(()=>{Pt();Bu();zT();RE();KT();Uhe();oo();jhe();Xn()});function y2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=$I(e[r],vi(t));return n}function S2n(e,t){return y2n(e.properties,t)}function cmt(e,t){let n=S2n(e,t);return Qn(n)}var jhe=v(()=>{Ao();Fhe();Hu()});var umt=v(()=>{});var AD=v(()=>{jhe();umt();Uhe();Fhe()});function E2n(e){let t=[];for(let n of e)t.push(...vD(n));return lht(t)}function b2n(e){return e.filter(t=>!bE(t))}function _2n(e,t){let n=[];for(let r of e)n.push(...xhe(r,[t]));return b2n(n)}function T2n(e,t){let n={};for(let r of t)n[r]=BK(_2n(e,r));return n}function lmt(e,t){let n=E2n(e),r=T2n(e,n);return Or(r,t)}var dmt=v(()=>{Ld();Hh();AD();Ol();dD();Xn()});var Hhe=v(()=>{dmt()});function WK(e){return de({[Oe]:"Date",type:"Date"},e)}var fmt=v(()=>{Ut();Pt()});var KK=v(()=>{fmt()});function ZK(e){return de({[Oe]:"Null",type:"null"},e)}var pmt=v(()=>{Pt();Ut()});var YK=v(()=>{pmt()});function JK(e){return de({[Oe]:"Symbol",type:"symbol"},e)}var hmt=v(()=>{Pt();Ut()});var XK=v(()=>{hmt()});function QK(e){return de({[Oe]:"Undefined",type:"undefined"},e)}var mmt=v(()=>{Pt();Ut()});var $K=v(()=>{mmt()});function e9(e){return de({[Oe]:"Uint8Array",type:"Uint8Array"},e)}var gmt=v(()=>{Pt();Ut()});var t9=v(()=>{gmt()});function IE(e){return de({[Oe]:"Unknown"},e)}var ymt=v(()=>{Pt();Ut()});var ex=v(()=>{ymt()});function v2n(e){return e.map(t=>qhe(t,!1))}function A2n(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=zu(qhe(e[n],!1));return t}function n9(e,t){return t===!0?e:zu(e)}function qhe(e,t){return $pe(e)?n9(AE(),t):the(e)?n9(AE(),t):js(e)?zu(Dd(v2n(e))):_g(e)?e9():DT(e)?WK():Ir(e)?n9(Or(A2n(e)),t):ehe(e)?n9(Fh([],IE()),t):Hs(e)?QK():nhe(e)?ZK():rhe(e)?JK():eD(e)?YI():Al(e)?cr(e):bg(e)?cr(e):Yr(e)?cr(e):Or({})}function Smt(e,t){return de(qhe(e,!0),t)}var Emt=v(()=>{fD();ED();KK();BT();Bu();YK();Ol();XK();kE();WT();$K();t9();ex();Tg();Yc()});var Bhe=v(()=>{Emt()});function bmt(e,t){return qf(e)?Dd(e.parameters,t):Yn(t)}var _mt=v(()=>{kE();ka();Xn()});var Ghe=v(()=>{_mt()});function Tmt(e,t){if(Hs(e))throw new Error("Enum undefined or empty");let n=globalThis.Object.getOwnPropertyNames(e).filter(s=>isNaN(s)).map(s=>e[s]),i=[...new Set(n)].map(s=>cr(s));return Sr(i,{...t,[Cd]:"Enum"})}var vmt=v(()=>{Bu();Ut();oo();Yc()});var zhe=v(()=>{vmt()});function Fd(e){return e===fe.False?e:fe.True}function tx(e){throw new Whe(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)?Omt(e,t):Q.IsIntersect(t)?r9(e,t):Q.IsUnion(t)?Jhe(e,t):Q.IsUnknown(t)?Mmt(e,t):Q.IsAny(t)?Yhe(e,t):tx("StructuralRight")}function Yhe(e,t){return fe.True}function R2n(e,t){return Q.IsIntersect(t)?r9(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 w2n(e,t){return Q.IsUnknown(e)?fe.False:Q.IsAny(e)?fe.Union:Q.IsNever(e)?fe.True:fe.False}function k2n(e,t){return Q.IsObject(t)&&i9(t)?fe.True:ao(t)?co(e,t):Q.IsArray(t)?Fd(Nr(e.items,t.items)):fe.False}function I2n(e,t){return ao(t)?co(e,t):Q.IsAsyncIterator(t)?Fd(Nr(e.items,t.items)):fe.False}function x2n(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsBigInt(t)?fe.True:fe.False}function Imt(e,t){return Q.IsLiteralBoolean(e)||Q.IsBoolean(e)?fe.True:fe.False}function O2n(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsBoolean(t)?fe.True:fe.False}function N2n(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsConstructor(t)?e.parameters.length>t.parameters.length?fe.False:e.parameters.every((n,r)=>Fd(Nr(t.parameters[r],n))===fe.True)?Fd(Nr(e.returns,t.returns)):fe.False:fe.False}function P2n(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsDate(t)?fe.True:fe.False}function C2n(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsFunction(t)?e.parameters.length>t.parameters.length?fe.False:e.parameters.every((n,r)=>Fd(Nr(t.parameters[r],n))===fe.True)?Fd(Nr(e.returns,t.returns)):fe.False:fe.False}function xmt(e,t){return Q.IsLiteral(e)&&hc.IsNumber(e.const)||Q.IsNumber(e)||Q.IsInteger(e)?fe.True:fe.False}function M2n(e,t){return Q.IsInteger(t)||Q.IsNumber(t)?fe.True:ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):fe.False}function r9(e,t){return t.allOf.every(n=>Nr(e,n)===fe.True)?fe.True:fe.False}function L2n(e,t){return e.allOf.some(n=>Nr(n,t)===fe.True)?fe.True:fe.False}function D2n(e,t){return ao(t)?co(e,t):Q.IsIterator(t)?Fd(Nr(e.items,t.items)):fe.False}function U2n(e,t){return Q.IsLiteral(t)&&t.const===e.const?fe.True:ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsString(t)?Cmt(e,t):Q.IsNumber(t)?Nmt(e,t):Q.IsInteger(t)?xmt(e,t):Q.IsBoolean(t)?Imt(e,t):fe.False}function Omt(e,t){return fe.False}function F2n(e,t){return fe.True}function Amt(e){let[t,n]=[e,0];for(;Q.IsNot(t);)t=t.not,n+=1;return n%2===0?t:IE()}function j2n(e,t){return Q.IsNot(e)?Nr(Amt(e),t):Q.IsNot(t)?Nr(e,Amt(t)):tx("Invalid fallthrough for Not")}function H2n(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsNull(t)?fe.True:fe.False}function Nmt(e,t){return Q.IsLiteralNumber(e)||Q.IsNumber(e)||Q.IsInteger(e)?fe.True:fe.False}function q2n(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsInteger(t)||Q.IsNumber(t)?fe.True:fe.False}function Vu(e,t){return Object.getOwnPropertyNames(e.properties).length===t}function Rmt(e){return i9(e)}function wmt(e){return Vu(e,0)||Vu(e,1)&&"description"in e.properties&&Q.IsUnion(e.properties.description)&&e.properties.description.anyOf.length===2&&(Q.IsString(e.properties.description.anyOf[0])&&Q.IsUndefined(e.properties.description.anyOf[1])||Q.IsString(e.properties.description.anyOf[1])&&Q.IsUndefined(e.properties.description.anyOf[0]))}function Vhe(e){return Vu(e,0)}function kmt(e){return Vu(e,0)}function B2n(e){return Vu(e,0)}function G2n(e){return Vu(e,0)}function z2n(e){return i9(e)}function V2n(e){let t=Md();return Vu(e,0)||Vu(e,1)&&"length"in e.properties&&Fd(Nr(e.properties.length,t))===fe.True}function W2n(e){return Vu(e,0)}function i9(e){let t=Md();return Vu(e,0)||Vu(e,1)&&"length"in e.properties&&Fd(Nr(e.properties.length,t))===fe.True}function K2n(e){let t=Fh([AE()],AE());return Vu(e,0)||Vu(e,1)&&"then"in e.properties&&Fd(Nr(e.properties.then,t))===fe.True}function Pmt(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)&&Rmt(t)||Q.IsLiteralNumber(e)&&Vhe(t)||Q.IsLiteralBoolean(e)&&kmt(t)||Q.IsSymbol(e)&&wmt(t)||Q.IsBigInt(e)&&B2n(t)||Q.IsString(e)&&Rmt(t)||Q.IsSymbol(e)&&wmt(t)||Q.IsNumber(e)&&Vhe(t)||Q.IsInteger(e)&&Vhe(t)||Q.IsBoolean(e)&&kmt(t)||Q.IsUint8Array(e)&&z2n(t)||Q.IsDate(e)&&G2n(t)||Q.IsConstructor(e)&&W2n(t)||Q.IsFunction(e)&&V2n(t)?fe.True:Q.IsRecord(e)&&Q.IsString(Khe(e))?t[Cd]==="Record"?fe.True:fe.False:Q.IsRecord(e)&&Q.IsNumber(Khe(e))&&Vu(t,0)?fe.True:fe.False}function Z2n(e,t){return ao(t)?co(e,t):Q.IsRecord(t)?jd(e,t):Q.IsObject(t)?(()=>{for(let n of Object.getOwnPropertyNames(t.properties)){if(!(n in e.properties)&&!Q.IsOptional(t.properties[n]))return fe.False;if(Q.IsOptional(t.properties[n]))return fe.True;if(Pmt(e.properties[n],t.properties[n])===fe.False)return fe.False}return fe.True})():fe.False}function Y2n(e,t){return ao(t)?co(e,t):Q.IsObject(t)&&K2n(t)?fe.True:Q.IsPromise(t)?Fd(Nr(e.item,t.item)):fe.False}function Khe(e){return TE in e.patternProperties?Md():vE in e.patternProperties?Vf():tx("Unknown record key pattern")}function Zhe(e){return TE in e.patternProperties?e.patternProperties[TE]:vE in e.patternProperties?e.patternProperties[vE]:tx("Unable to get record value schema")}function jd(e,t){let[n,r]=[Khe(t),Zhe(t)];return Q.IsLiteralString(e)&&Q.IsNumber(n)&&Fd(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(Pmt(r,e.properties[i])===fe.False)return fe.False;return fe.True})():fe.False}function J2n(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 X2n(e,t){let n=Q.IsRegExp(e)?Vf():e,r=Q.IsRegExp(t)?Vf():t;return Nr(n,r)}function Cmt(e,t){return Q.IsLiteral(e)&&hc.IsString(e.const)||Q.IsString(e)?fe.True:fe.False}function Q2n(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsString(t)?fe.True:fe.False}function $2n(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsSymbol(t)?fe.True:fe.False}function eVn(e,t){return Q.IsTemplateLiteral(e)?Nr(VT(e),t):Q.IsTemplateLiteral(t)?Nr(e,VT(t)):tx("Invalid fallthrough for TemplateLiteral")}function tVn(e,t){return Q.IsArray(t)&&e.items!==void 0&&e.items.every(n=>Nr(n,t.items)===fe.True)}function nVn(e,t){return Q.IsNever(e)?fe.True:Q.IsUnknown(e)?fe.False:Q.IsAny(e)?fe.Union:fe.False}function rVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)&&i9(t)||Q.IsArray(t)&&tVn(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 iVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsUint8Array(t)?fe.True:fe.False}function sVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsVoid(t)?cVn(e,t):Q.IsUndefined(t)?fe.True:fe.False}function Jhe(e,t){return t.anyOf.some(n=>Nr(e,n)===fe.True)?fe.True:fe.False}function oVn(e,t){return e.anyOf.every(n=>Nr(n,t)===fe.True)?fe.True:fe.False}function Mmt(e,t){return fe.True}function aVn(e,t){return Q.IsNever(t)?Omt(e,t):Q.IsIntersect(t)?r9(e,t):Q.IsUnion(t)?Jhe(e,t):Q.IsAny(t)?Yhe(e,t):Q.IsString(t)?Cmt(e,t):Q.IsNumber(t)?Nmt(e,t):Q.IsInteger(t)?xmt(e,t):Q.IsBoolean(t)?Imt(e,t):Q.IsArray(t)?w2n(e,t):Q.IsTuple(t)?nVn(e,t):Q.IsObject(t)?yc(e,t):Q.IsUnknown(t)?fe.True:fe.False}function cVn(e,t){return Q.IsUndefined(e)||Q.IsUndefined(e)?fe.True:fe.False}function uVn(e,t){return Q.IsIntersect(t)?r9(e,t):Q.IsUnion(t)?Jhe(e,t):Q.IsUnknown(t)?Mmt(e,t):Q.IsAny(t)?Yhe(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)?eVn(e,t):Q.IsRegExp(e)||Q.IsRegExp(t)?X2n(e,t):Q.IsNot(e)||Q.IsNot(t)?j2n(e,t):Q.IsAny(e)?R2n(e,t):Q.IsArray(e)?k2n(e,t):Q.IsBigInt(e)?x2n(e,t):Q.IsBoolean(e)?O2n(e,t):Q.IsAsyncIterator(e)?I2n(e,t):Q.IsConstructor(e)?N2n(e,t):Q.IsDate(e)?P2n(e,t):Q.IsFunction(e)?C2n(e,t):Q.IsInteger(e)?M2n(e,t):Q.IsIntersect(e)?L2n(e,t):Q.IsIterator(e)?D2n(e,t):Q.IsLiteral(e)?U2n(e,t):Q.IsNever(e)?F2n(e,t):Q.IsNull(e)?H2n(e,t):Q.IsNumber(e)?q2n(e,t):Q.IsObject(e)?Z2n(e,t):Q.IsRecord(e)?J2n(e,t):Q.IsString(e)?Q2n(e,t):Q.IsSymbol(e)?$2n(e,t):Q.IsTuple(e)?rVn(e,t):Q.IsPromise(e)?Y2n(e,t):Q.IsUint8Array(e)?iVn(e,t):Q.IsUndefined(e)?sVn(e,t):Q.IsUnion(e)?oVn(e,t):Q.IsUnknown(e)?aVn(e,t):Q.IsVoid(e)?uVn(e,t):tx(`Unknown left type operand '${e[Oe]}'`)}function xE(e,t){return Nr(e,t)}var Whe,fe,Xhe=v(()=>{fD();BT();zT();JI();ex();xg();lD();Ut();Uh();fhe();Whe=class extends Jo{};(function(e){e[e.Union=0]="Union",e[e.True=1]="True",e[e.False=2]="False"})(fe||(fe={}))});function lVn(e,t,n,r,i){let s={};for(let o of globalThis.Object.getOwnPropertyNames(e))s[o]=nx(e[o],t,n,r,vi(i));return s}function dVn(e,t,n,r,i){return lVn(e.properties,t,n,r,i)}function Lmt(e,t,n,r,i){let s=dVn(e,t,n,r,i);return Qn(s)}var Qhe=v(()=>{Ao();s9();Hu()});function fVn(e,t,n,r){let i=xE(e,t);return i===fe.Union?Sr([n,r]):i===fe.True?n:r}function nx(e,t,n,r,i){return Ai(e)?Lmt(e,t,n,r,i):wl(e)?de(Dmt(e,t,n,r,i)):de(fVn(e,t,n,r),i)}var s9=v(()=>{Pt();oo();Xhe();$he();Qhe();Xn()});function pVn(e,t,n,r,i){return{[e]:nx(cr(e),t,n,r,vi(i))}}function hVn(e,t,n,r,i){return e.reduce((s,o)=>({...s,...pVn(o,t,n,r,i)}),{})}function mVn(e,t,n,r,i){return hVn(e.keys,t,n,r,i)}function Dmt(e,t,n,r,i){let s=mVn(e,t,n,r,i);return Qn(s)}var $he=v(()=>{Ao();Bu();s9();Hu()});var Umt=v(()=>{});var RD=v(()=>{Xhe();$he();Qhe();Umt();s9()});function Fmt(e,t){return rx(VT(e),t)}var eme=v(()=>{o9();xg()});function gVn(e,t){let n=e.filter(r=>xE(r,t)===fe.False);return n.length===1?n[0]:Sr(n)}function rx(e,t,n={}){return kl(e)?de(Fmt(e,t),n):Ai(e)?de(jmt(e,t),n):de(Zn(e)?gVn(e.anyOf,t):xE(e,t)!==fe.False?Yn():e,n)}var o9=v(()=>{Pt();oo();ka();RD();tme();eme();Xn()});function yVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=rx(e[r],t);return n}function SVn(e,t){return yVn(e.properties,t)}function jmt(e,t){let n=SVn(e,t);return Qn(n)}var tme=v(()=>{Ao();o9()});var nme=v(()=>{tme();eme();o9()});function Hmt(e,t){return ix(VT(e),t)}var rme=v(()=>{a9();xg()});function EVn(e,t){let n=e.filter(r=>xE(r,t)!==fe.False);return n.length===1?n[0]:Sr(n)}function ix(e,t,n){return kl(e)?de(Hmt(e,t),n):Ai(e)?de(qmt(e,t),n):de(Zn(e)?EVn(e.anyOf,t):xE(e,t)!==fe.False?e:Yn(),n)}var a9=v(()=>{Pt();oo();ka();RD();ime();rme();Xn()});function bVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=ix(e[r],t);return n}function _Vn(e,t){return bVn(e.properties,t)}function qmt(e,t){let n=_Vn(e,t);return Qn(n)}var ime=v(()=>{Ao();a9()});var sme=v(()=>{ime();rme();a9()});function Bmt(e,t){return qf(e)?de(e.returns,t):Yn(t)}var Gmt=v(()=>{Pt();ka();Xn()});var ome=v(()=>{Gmt()});function c9(e){return zu(mc(e))}var zmt=v(()=>{WT();kg()});var u9=v(()=>{zmt()});function ZT(e,t,n){return de({[Oe]:"Record",type:"object",patternProperties:{[e]:t}},n)}function ame(e,t,n){let r={};for(let i of e)r[i]=t;return Or(r,{...n,[Cd]:"Record"})}function TVn(e,t,n){return xht(e)?ame(Gu(e),t,n):ZT(e.pattern,t,n)}function vVn(e,t,n){return ame(Gu(Sr(e)),t,n)}function AVn(e,t,n){return ame([e.toString()],t,n)}function RVn(e,t,n){return ZT(e.source,t,n)}function wVn(e,t,n){let r=Hs(e.pattern)?vE:e.pattern;return ZT(r,t,n)}function kVn(e,t,n){return ZT(vE,t,n)}function IVn(e,t,n){return ZT(iht,t,n)}function xVn(e,t,n){return Or({true:t,false:t},n)}function OVn(e,t,n){return ZT(TE,t,n)}function NVn(e,t,n){return ZT(TE,t,n)}function l9(e,t,n={}){return Zn(e)?vVn(e.anyOf,t,n):kl(e)?TVn(e,t,n):Rl(e)?AVn(e.const,t,n):vg(e)?xVn(e,t,n):Gf(e)?OVn(e,t,n):zf(e)?NVn(e,t,n):ahe(e)?RVn(e,t,n):Ag(e)?wVn(e,t,n):she(e)?kVn(e,t,n):bE(e)?IVn(e,t,n):Yn(n)}function d9(e){return globalThis.Object.getOwnPropertyNames(e.patternProperties)[0]}function Vmt(e){let t=d9(e);return t===vE?Vf():t===TE?Md():Vf({pattern:t})}function f9(e){return e.patternProperties[d9(e)]}var Wmt=v(()=>{Pt();Ut();ka();zT();Ol();JI();oo();xg();lD();Hh();Yc();Xn()});var wD=v(()=>{Wmt()});function PVn(e,t){return t.parameters=kD(e,t.parameters),t.returns=Wf(e,t.returns),t}function CVn(e,t){return t.parameters=kD(e,t.parameters),t.returns=Wf(e,t.returns),t}function MVn(e,t){return t.allOf=kD(e,t.allOf),t}function LVn(e,t){return t.anyOf=kD(e,t.anyOf),t}function DVn(e,t){return Hs(t.items)||(t.items=kD(e,t.items)),t}function UVn(e,t){return t.items=Wf(e,t.items),t}function FVn(e,t){return t.items=Wf(e,t.items),t}function jVn(e,t){return t.items=Wf(e,t.items),t}function HVn(e,t){return t.item=Wf(e,t.item),t}function qVn(e,t){let n=VVn(e,t.properties);return{...t,...Or(n)}}function BVn(e,t){let n=Wf(e,Vmt(t)),r=Wf(e,f9(t)),i=l9(n,r);return{...t,...i}}function GVn(e,t){return t.index in e?e[t.index]:IE()}function zVn(e,t){let n=GI(t),r=qu(t),i=Wf(e,t);return n&&r?c9(i):n&&!r?zu(i):!n&&r?mc(i):i}function VVn(e,t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:zVn(e,t[r])}),{})}function kD(e,t){return t.map(n=>Wf(e,n))}function Wf(e,t){return qf(t)?PVn(e,t):Bf(t)?CVn(e,t):rs(t)?MVn(e,t):Zn(t)?LVn(e,t):Il(t)?DVn(e,t):jf(t)?UVn(e,t):UT(t)?FVn(e,t):jT(t)?jVn(e,t):HT(t)?HVn(e,t):qs(t)?qVn(e,t):qT(t)?BVn(e,t):ohe(t)?GVn(e,t):t}function Kmt(e,t){return Wf(t,BI(e))}var Zmt=v(()=>{OK();ex();u9();WT();kg();Ol();wD();Yc();Xn()});var cme=v(()=>{Zmt()});function Ymt(e){return de({[Oe]:"Integer",type:"integer"},e)}var Jmt=v(()=>{Pt();Ut()});var ume=v(()=>{Jmt()});function WVn(e,t,n){return{[e]:Kf(cr(e),t,vi(n))}}function KVn(e,t,n){return e.reduce((i,s)=>({...i,...WVn(s,t,n)}),{})}function ZVn(e,t,n){return KVn(e.keys,t,n)}function Xmt(e,t,n){let r=ZVn(e,t,n);return Qn(r)}var lme=v(()=>{Ao();YT();Bu();Hu()});function YVn(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toLowerCase(),n].join("")}function JVn(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toUpperCase(),n].join("")}function XVn(e){return e.toUpperCase()}function QVn(e){return e.toLowerCase()}function $Vn(e,t,n){let r=ZI(e.pattern);if(!GT(r))return{...e,pattern:Qmt(e.pattern,t)};let o=[...SD(r)].map(u=>cr(u)),a=$mt(o,t),c=Sr(a);return HK([c],n)}function Qmt(e,t){return typeof e=="string"?t==="Uncapitalize"?YVn(e):t==="Capitalize"?JVn(e):t==="Uppercase"?XVn(e):t==="Lowercase"?QVn(e):e:e.toString()}function $mt(e,t){return e.map(n=>Kf(n,t))}function Kf(e,t,n={}){return wl(e)?Xmt(e,t,n):kl(e)?$Vn(e,t,n):Zn(e)?Sr($mt(e.anyOf,t),n):Rl(e)?cr(Qmt(e.const,t),n):de(e,n)}var YT=v(()=>{Pt();xg();lme();Bu();oo();Xn()});function egt(e,t={}){return Kf(e,"Capitalize",t)}var tgt=v(()=>{YT()});function ngt(e,t={}){return Kf(e,"Lowercase",t)}var rgt=v(()=>{YT()});function igt(e,t={}){return Kf(e,"Uncapitalize",t)}var sgt=v(()=>{YT()});function ogt(e,t={}){return Kf(e,"Uppercase",t)}var agt=v(()=>{YT()});var dme=v(()=>{tgt();lme();YT();rgt();sgt();agt()});function eWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=OE(e[i],t,vi(n));return r}function tWn(e,t,n){return eWn(e.properties,t,n)}function cgt(e,t,n){let r=tWn(e,t,n);return Qn(r)}var fme=v(()=>{Ao();p9();Hu()});function nWn(e,t){return e.map(n=>pme(n,t))}function rWn(e,t){return e.map(n=>pme(n,t))}function iWn(e,t){let{[t]:n,...r}=e;return r}function sWn(e,t){return t.reduce((n,r)=>iWn(n,r),e)}function oWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=sWn(n,t);return Or(i,r)}function aWn(e){let t=e.reduce((n,r)=>PK(r)?[...n,cr(r)]:n,[]);return Sr(t)}function pme(e,t){return rs(e)?gc(nWn(e.allOf,t)):Zn(e)?Sr(rWn(e.anyOf,t)):qs(e)?oWn(e,t,e.properties):Or({})}function OE(e,t,n){let r=js(t)?aWn(t):t,i=xl(t)?Gu(t):t,s=_s(e),o=_s(t);return Ai(e)?cgt(e,i,n):wl(t)?ugt(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({...pme(e,i),...n})}var p9=v(()=>{Pt();MK();rD();RE();Bu();Hh();Ld();oo();Ol();hme();fme();Xn();Yc()});function cWn(e,t,n){return{[t]:OE(e,[t],vi(n))}}function uWn(e,t,n){return t.reduce((r,i)=>({...r,...cWn(e,i,n)}),{})}function lWn(e,t,n){return uWn(e,t.keys,n)}function ugt(e,t,n){let r=lWn(e,t,n);return Qn(r)}var hme=v(()=>{Ao();p9();Hu()});var h9=v(()=>{hme();fme();p9()});function dWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=NE(e[i],t,vi(n));return r}function fWn(e,t,n){return dWn(e.properties,t,n)}function lgt(e,t,n){let r=fWn(e,t,n);return Qn(r)}var mme=v(()=>{Ao();m9();Hu()});function pWn(e,t){return e.map(n=>gme(n,t))}function hWn(e,t){return e.map(n=>gme(n,t))}function mWn(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function gWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=mWn(n,t);return Or(i,r)}function yWn(e){let t=e.reduce((n,r)=>PK(r)?[...n,cr(r)]:n,[]);return Sr(t)}function gme(e,t){return rs(e)?gc(pWn(e.allOf,t)):Zn(e)?Sr(hWn(e.anyOf,t)):qs(e)?gWn(e,t,e.properties):Or({})}function NE(e,t,n){let r=js(t)?yWn(t):t,i=xl(t)?Gu(t):t,s=_s(e),o=_s(t);return Ai(e)?lgt(e,i,n):wl(t)?dgt(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({...gme(e,i),...n})}var m9=v(()=>{Pt();MK();RE();Ld();Bu();Ol();oo();Hh();rD();Xn();Yc();yme();mme()});function SWn(e,t,n){return{[t]:NE(e,[t],vi(n))}}function EWn(e,t,n){return t.reduce((r,i)=>({...r,...SWn(e,i,n)}),{})}function bWn(e,t,n){return EWn(e,t.keys,n)}function dgt(e,t,n){let r=bWn(e,t,n);return Qn(r)}var yme=v(()=>{Ao();m9();Hu()});var g9=v(()=>{yme();mme();m9()});function _Wn(e,t){return oi("Partial",[oi(e,t)])}function TWn(e){return oi("Partial",[qh(e)])}function vWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=mc(e[n]);return t}function AWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=vWn(t);return Or(r,n)}function fgt(e){return e.map(t=>pgt(t))}function pgt(e){return Hf(e)?_Wn(e.target,e.parameters):_s(e)?TWn(e.$ref):rs(e)?gc(fgt(e.allOf)):Zn(e)?Sr(fgt(e.anyOf)):qs(e)?AWn(e,e.properties):FT(e)||vg(e)||Gf(e)||Rl(e)||iD(e)||zf(e)||Ag(e)||sD(e)||oD(e)?e:Or({})}function sx(e,t){return Ai(e)?hgt(e,t):de({...pgt(e),...t})}var Sme=v(()=>{Pt();RE();kg();Ol();Ld();oo();KT();wg();Ut();Eme();Xn()});function RWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=sx(e[r],vi(t));return n}function wWn(e,t){return RWn(e.properties,t)}function hgt(e,t){let n=wWn(e,t);return Qn(n)}var Eme=v(()=>{Ao();Sme();Hu()});var y9=v(()=>{Eme();Sme()});function kWn(e,t){return oi("Required",[oi(e,t)])}function IWn(e){return oi("Required",[qh(e)])}function xWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=is(e[n],[wa]);return t}function OWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=xWn(t);return Or(r,n)}function mgt(e){return e.map(t=>ggt(t))}function ggt(e){return Hf(e)?kWn(e.target,e.parameters):_s(e)?IWn(e.$ref):rs(e)?gc(mgt(e.allOf)):Zn(e)?Sr(mgt(e.anyOf)):qs(e)?OWn(e,e.properties):FT(e)||vg(e)||Gf(e)||Rl(e)||iD(e)||zf(e)||Ag(e)||sD(e)||oD(e)?e:Or({})}function ox(e,t){return Ai(e)?ygt(e,t):de({...ggt(e),...t})}var bme=v(()=>{Pt();RE();Ol();Ld();oo();KT();Ut();wg();_me();Xn()});function NWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=ox(e[r],t);return n}function PWn(e,t){return NWn(e.properties,t)}function ygt(e,t){let n=PWn(e,t);return Qn(n)}var _me=v(()=>{Ao();bme()});var S9=v(()=>{_me();bme()});function CWn(e,t){return t.map(n=>_s(n)?Tme(e,n.$ref):Nl(e,n))}function Tme(e,t){return t in e?_s(e[t])?Tme(e,e[t].$ref):Nl(e,e[t]):Yn()}function MWn(e){return QI(e[0])}function LWn(e){return wE(e[0],e[1])}function DWn(e){return $I(e[0])}function UWn(e){return sx(e[0])}function FWn(e){return OE(e[0],e[1])}function jWn(e){return NE(e[0],e[1])}function HWn(e){return ox(e[0])}function qWn(e,t,n){let r=CWn(e,n);return t==="Awaited"?MWn(r):t==="Index"?LWn(r):t==="KeyOf"?DWn(r):t==="Partial"?UWn(r):t==="Omit"?FWn(r):t==="Pick"?jWn(r):t==="Required"?HWn(r):Yn()}function BWn(e,t){return zI(Nl(e,t))}function GWn(e,t){return VI(Nl(e,t))}function zWn(e,t,n){return WI(ID(e,t),Nl(e,n))}function VWn(e,t,n){return Fh(ID(e,t),Nl(e,n))}function WWn(e,t){return gc(ID(e,t))}function KWn(e,t){return XI(Nl(e,t))}function ZWn(e,t){return Or(globalThis.Object.keys(t).reduce((n,r)=>({...n,[r]:Nl(e,t[r])}),{}))}function YWn(e,t){let[n,r]=[Nl(e,f9(t)),d9(t)],i=BI(t);return i.patternProperties[r]=n,i}function JWn(e,t){return _s(t)?{...Tme(e,t.$ref),[so]:t[so]}:t}function XWn(e,t){return Dd(ID(e,t))}function QWn(e,t){return Sr(ID(e,t))}function ID(e,t){return t.map(n=>Nl(e,n))}function Nl(e,t){return qu(t)?de(Nl(e,is(t,[wa])),t):GI(t)?de(Nl(e,is(t,[Ff])),t):_E(t)?de(JWn(e,t),t):jf(t)?de(BWn(e,t.items),t):UT(t)?de(GWn(e,t.items),t):Hf(t)?de(qWn(e,t.target,t.parameters)):qf(t)?de(zWn(e,t.parameters,t.returns),t):Bf(t)?de(VWn(e,t.parameters,t.returns),t):rs(t)?de(WWn(e,t.allOf),t):jT(t)?de(KWn(e,t.items),t):qs(t)?de(ZWn(e,t.properties),t):qT(t)?de(YWn(e,t)):Il(t)?de(XWn(e,t.items||[]),t):Zn(t)?de(QWn(e,t.anyOf),t):t}function $Wn(e,t){return t in e?Nl(e,e[t]):Yn()}function Sgt(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:$Wn(e,n)}),{})}var Egt=v(()=>{Tg();ihe();wg();pD();VK();hD();mD();Hh();BT();Ld();bD();AD();Ol();h9();g9();ka();y9();wD();S9();kE();oo();Ut();Xn()});function bgt(e){return new vme(e)}var vme,_gt=v(()=>{Tg();Ut();Egt();vme=class{constructor(t){let n=Sgt(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 Ame=v(()=>{_gt()});function Tgt(e,t){return de({[Oe]:"Not",not:e},t)}var vgt=v(()=>{Pt();Ut()});var Rme=v(()=>{vgt()});function Agt(e,t){return Bf(e)?Dd(e.parameters,t):Yn()}var Rgt=v(()=>{kE();ka();Xn()});var wme=v(()=>{Rgt()});function wgt(e,t={}){Hs(t.$id)&&(t.$id=`T${e3n++}`);let n=BI(e({[Oe]:"This",$ref:`${t.$id}`}));return n.$id=t.$id,de({[Cd]:"Recursive",...n},t)}var e3n,kgt=v(()=>{OK();Pt();Yc();Ut();e3n=0});var kme=v(()=>{kgt()});function Igt(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 xgt=v(()=>{Pt();Yc();Ut()});var Ime=v(()=>{xgt()});function t3n(e){return rs(e)?e.allOf:Zn(e)?e.anyOf:Il(e)?e.items??[]:[]}function Ogt(e){return t3n(e)}var Ngt=v(()=>{Xn()});var xme=v(()=>{Ngt()});function Pgt(e,t){return Bf(e)?de(e.returns,t):Yn(t)}var Cgt=v(()=>{Pt();ka();Xn()});var Ome=v(()=>{Cgt()});var Mgt=v(()=>{});var Lgt=v(()=>{});var Dgt=v(()=>{Mgt();Lgt()});var Ugt=v(()=>{});var Fgt=v(()=>{Ugt()});function jgt(e){return new Nme(e)}var Nme,Pme,Hgt=v(()=>{Ut();Xn();Nme=class{constructor(t){this.schema=t}Decode(t){return new Pme(this.schema,t)}},Pme=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 _E(this.schema)?this.EncodeTransform(t,this.schema):this.EncodeSchema(t,this.schema)}}});var Cme=v(()=>{Hgt()});function qgt(e={}){return de({[Oe]:e[Oe]??"Unsafe"},e)}var Bgt=v(()=>{Pt();Ut()});var Mme=v(()=>{Bgt()});function Ggt(e){return de({[Oe]:"Void",type:"void"},e)}var zgt=v(()=>{Pt();Ut()});var Lme=v(()=>{zgt()});var Dme={};Rr(Dme,{Any:()=>AE,Argument:()=>ght,Array:()=>zI,AsyncIterator:()=>VI,Awaited:()=>QI,BigInt:()=>YI,Boolean:()=>FK,Capitalize:()=>egt,Composite:()=>lmt,Const:()=>Smt,Constructor:()=>WI,ConstructorParameters:()=>bmt,Date:()=>WK,Enum:()=>Tmt,Exclude:()=>rx,Extends:()=>nx,Extract:()=>ix,Function:()=>Fh,Index:()=>wE,InstanceType:()=>Bmt,Instantiate:()=>Kmt,Integer:()=>Ymt,Intersect:()=>gc,Iterator:()=>XI,KeyOf:()=>$I,Literal:()=>cr,Lowercase:()=>ngt,Mapped:()=>Xht,Module:()=>bgt,Never:()=>Yn,Not:()=>Tgt,Null:()=>ZK,Number:()=>Md,Object:()=>Or,Omit:()=>OE,Optional:()=>mc,Parameters:()=>Agt,Partial:()=>sx,Pick:()=>NE,Promise:()=>GK,Readonly:()=>zu,ReadonlyOptional:()=>c9,Record:()=>l9,Recursive:()=>wgt,Ref:()=>qh,RegExp:()=>Igt,Required:()=>ox,Rest:()=>Ogt,ReturnType:()=>Pgt,String:()=>Vf,Symbol:()=>JK,TemplateLiteral:()=>HK,Transform:()=>jgt,Tuple:()=>Dd,Uint8Array:()=>e9,Uncapitalize:()=>igt,Undefined:()=>QK,Union:()=>Sr,Unknown:()=>IE,Unsafe:()=>qgt,Uppercase:()=>ogt,Void:()=>Ggt});var Vgt=v(()=>{fD();mhe();pD();hD();VK();ED();jK();Hhe();Bhe();mD();Ghe();KK();zhe();nme();RD();sme();BT();Hh();ome();cme();ume();Ld();dme();bD();AD();Bu();Ao();Ame();ka();Rme();YK();zT();Ol();h9();kg();wme();y9();g9();zK();WT();u9();wD();kme();KT();Ime();S9();xme();Ome();JI();XK();xg();Cme();kE();t9();$K();oo();ex();Mme();Lme()});var I,Wgt=v(()=>{Vgt();I=Dme});var Ro=v(()=>{ihe();Tg();Uh();fhe();rht();lD();cht();dD();Ut();fD();pD();mhe();hD();VK();ED();jK();Hhe();Bhe();mD();Ghe();KK();zhe();nme();RD();sme();BT();Hh();ome();cme();ume();Ld();bD();dme();AD();Bu();Ame();Ao();ka();Rme();YK();zT();Ol();h9();kg();wme();y9();g9();zK();WT();u9();wD();kme();KT();Ime();S9();xme();Ome();Dgt();Fgt();JI();XK();xg();Cme();kE();t9();$K();oo();ex();Mme();Lme();Wgt()});var n3n,Ume,Fme=v(()=>{"use strict";Ro();n3n=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}),Ume=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 Kgt,He,Ia=v(()=>{"use strict";Kgt=Se(G_(),1),He=new Kgt.Ajv({allErrors:!0,strict:!1})});function Jc(e){switch(e){case"blocker":return 0;case"high":return 1;case"medium":return 2;case"low":return 3;default:return 2}}function Zgt(){let e=(process.env.HAIKU_FIX_SEVERITY_THRESHOLD||"high").trim().toLowerCase();return xD.includes(e)?Jc(e):Jc("high")}function ax(e){return typeof e!="string"||e.length===0?!0:Jc(e)<=Zgt()}var E9,xD,Ygt,Jgt,r3n,i3n,s3n,o3n,b9,jme,a3n,ili,OD,ND,Xgt=v(()=>{"use strict";Ro();Ia();E9=["adversarial-review","studio-review","engine-review","drift","discovery","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],xD=["blocker","high","medium","low"];Ygt="^(?:FB-)?\\d+$",Jgt=["iterations","closed_at"],r3n=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}),i3n=I.Object({text:I.String({minLength:1}),at:I.String()},{additionalProperties:!1}),s3n=I.Object({title:I.Optional(I.String({minLength:1,maxLength:120})),origin:I.Optional(I.String({enum:[...E9]})),severity:I.Optional(I.String({enum:[...xD]})),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(r3n),closure_reply:I.Optional(i3n),closure_reply_unread:I.Optional(I.Boolean())},{propertyNames:{not:{enum:[...Jgt]}},additionalProperties:!0}),o3n=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}),b9=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:[...xD],description:`How urgent the finding is. REQUIRED \u2014 classify as you file. One of: ${xD.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:[...E9],description:`Source of the feedback. One of: ${E9.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(o3n),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}),jme=He.compile(b9),a3n=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String()),feedback_id:I.String({pattern:Ygt}),reason:I.String({minLength:1,description:"Why the FB is being rejected. Persisted in the closing iteration's reason field."}),state_file:I.Optional(I.String())},{additionalProperties:!1}),ili=He.compile(a3n),OD=Jgt,ND=["title","origin","severity","author","author_type","created_at","source_ref","attachment","inline_anchor","targets"]});var cx,Hme,_9,qme,T9,Bme,Qgt=v(()=>{"use strict";Ro();Ia();cx=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}),Hme=He.compile(cx),_9=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}),qme=He.compile(_9),T9=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by pick_design_direction."}),intent_slug:I.Optional(I.String({description:"Intent slug \u2014 used for stage-branch reconciliation after the user selects an archetype. Optional: handler also resolves it from the session record. Pass it explicitly to override."})),url:I.Optional(I.String({description:"Direction URL. Optional \u2014 primarily used for the browser-launch step."})),auto_open:I.Optional(I.Boolean({description:"Try to open the URL in the default browser when waiting begins (default true). Set to false for remote control / headless / mobile-chat scenarios."}))},{additionalProperties:!1}),Bme=He.compile(T9)});var PD,ux,Gme,$gt=v(()=>{"use strict";Ro();Ia();PD=["force_stage_complete","set_intent_field","reset_drift","mutate_feedback","set_unit_iterations","preview_cursor"],ux=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),op:I.String({enum:[...PD],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}),Gme=He.compile(ux)});var lx,zme,eyt=v(()=>{"use strict";Ro();Ia();lx=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),stage:I.String({minLength:1,description:"Stage the discovery belongs to (e.g. `inception`, `design`)."}),template:I.String({minLength:1,description:"Discovery template name (matches the `discovery/.md` file under the studio's stage)."})},{additionalProperties:!1}),zme=He.compile(lx)});var Bh,Og,v9,Vme,A9,Wme,R9,Kme,w9,Zme,k9,Yme,I9,Jme,x9,Xme,O9,Qme,N9,$me,P9,ege,tyt=v(()=>{"use strict";Ro();Ia();Bh=I.Optional(I.String()),Og={intent:I.String({minLength:1,description:"Intent slug"}),stage:I.Optional(I.String({description:"Stage name. Omit for intent-scope feedback."})),feedback_id:I.Integer({minimum:1,maximum:999,description:"Feedback identifier \u2014 the numeric prefix of the FB on disk (e.g. for `008-output-discovery-\u2026md`, pass `8`). Just a number; no `FB-` prefix, no zero-padding, no string form. Range fits the on-disk `NNN-\u2026md` 3-digit padding (max 999, plenty of room). The handler does prefix-match lookup against `-*.md` \u2014 the agent never needs to know the slug part. Pre-2026-05-07 intents that used 2-digit padding (`08-\u2026md`) still resolve correctly; the lookup parses leading digits regardless of width."})},v9=I.Object({...Og,state_file:Bh},{additionalProperties:!1}),Vme=He.compile(v9),A9=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}),Wme=He.compile(A9),R9=I.Object({...Og,reason:I.String({minLength:1,description:"Explanation for why this feedback is being rejected"}),state_file:Bh},{additionalProperties:!1}),Kme=He.compile(R9),w9=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(w9),k9=I.Object({...Og,state_file:Bh},{additionalProperties:!1}),Yme=He.compile(k9),I9=I.Object({...Og,body:I.String({description:"Full markdown body to write. Replaces the prior body entirely."}),state_file:Bh},{additionalProperties:!1}),Jme=He.compile(I9),x9=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}),Xme=He.compile(x9),O9=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}),Qme=He.compile(O9),N9=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}),$me=He.compile(N9),P9=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}),ege=He.compile(P9)});var C9,CD,M9,tge,L9,nge,D9,rge,nyt=v(()=>{"use strict";Ro();Ia();C9=I.Optional(I.String()),CD=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:C9},{additionalProperties:!1}),M9=I.Object({slug:I.String({minLength:1,description:"Intent slug"}),field:I.String({minLength:1,description:"Frontmatter field name to read"}),state_file:C9},{additionalProperties:!1}),tge=He.compile(M9),L9=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:C9},{additionalProperties:!1}),nge=He.compile(L9),D9=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:C9},{additionalProperties:!1}),rge=He.compile(D9)});var wo,ryt,U9,ige,F9,sge,j9,oge,H9,age,MD,LD,q9,cge,B9,uge,G9,lge,z9,dge,V9,fge,W9,pge,K9,hge,Z9,mge,Y9,gge,J9,yge,X9,Sge,dx,Ege,Q9,bge,$9,_ge,eZ,Tge,iyt=v(()=>{"use strict";Ro();Ia();wo=I.Optional(I.String()),ryt=I.Object({state_file:wo},{additionalProperties:!1}),U9=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}),ige=He.compile(U9),F9=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}),sge=He.compile(F9),j9=I.Object({intent:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),oge=He.compile(j9),H9=I.Object({intent:I.String({minLength:1}),name:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),age=He.compile(H9),MD=ryt,LD=He.compile(ryt),q9=I.Object({studio:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),cge=He.compile(q9),B9=I.Object({studio:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),uge=He.compile(B9),G9=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}),lge=He.compile(G9),z9=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}),dge=He.compile(z9),V9=I.Object({studio:I.Optional(I.String({description:"Optional: filter to a specific studio"})),state_file:wo},{additionalProperties:!1}),fge=He.compile(V9),W9=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}),pge=He.compile(W9),K9=I.Object({intent:I.Optional(I.String({description:"Optional: intent slug for context"})),state_file:wo},{additionalProperties:!1}),hge=He.compile(K9),Z9=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}),mge=He.compile(Z9),Y9=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}),gge=He.compile(Y9),J9=I.Object({action:I.Optional(I.String({enum:["list","plant","check"],description:"Defaults to `list`."})),state_file:wo},{additionalProperties:!1}),yge=He.compile(J9),X9=I.Object({version:I.Optional(I.String({description:"Optional: specific version to extract (e.g. '1.2.0')"})),state_file:wo},{additionalProperties:!1}),Sge=He.compile(X9),dx=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}),Ege=He.compile(dx),Q9=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}),bge=He.compile(Q9),$9=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}),_ge=He.compile($9),eZ=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by `haiku_view`."}),state_file:wo},{additionalProperties:!1}),Tge=He.compile(eZ)});var fx,vge,syt=v(()=>{"use strict";Ro();Ia();fx=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}),vge=He.compile(fx)});var px,Age,hx,Rge,mx,wge,gx,kge,oyt=v(()=>{"use strict";Ro();Ia();px=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}),Age=He.compile(px),hx=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}),Rge=He.compile(hx),mx=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}),wge=He.compile(mx),gx=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}),kge=He.compile(gx)});var ayt,yx,Ige,Sx,xge,Ex,Oge,tZ,Nge,nZ,Pge,bx,Cge,cyt=v(()=>{"use strict";Ro();Ia();ayt=I.Optional(I.String()),yx=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}),Ige=He.compile(yx),Sx=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}),xge=He.compile(Sx),Ex=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}),Oge=He.compile(Ex),tZ=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),field:I.String({minLength:1}),state_file:ayt},{additionalProperties:!1}),Nge=He.compile(tZ),nZ=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:ayt},{additionalProperties:!1}),Pge=He.compile(nZ),bx=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}),Cge=He.compile(bx)});var rZ,Mge,iZ,Lge,sZ,Dge,oZ,Uge,aZ,Fge,cZ,jge,uZ,Hge,uyt=v(()=>{"use strict";Ro();Ia();rZ=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}),Mge=He.compile(rZ),iZ=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"})},{additionalProperties:!1}),Lge=He.compile(iZ),sZ=I.Object({intent:I.String({minLength:1,description:"Intent slug"})},{additionalProperties:!1}),Dge=He.compile(sZ),oZ=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}),Uge=He.compile(oZ),aZ=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}),Fge=He.compile(aZ),cZ=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}),jge=He.compile(cZ),uZ=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}),Hge=He.compile(uZ)});var lZ,PE,dZ,qge,fZ,Bge,pZ,Gge,zge,hZ,Vge,mZ,Wge,gZ,Kge,yZ,Zge,SZ,Yge,EZ,Jge,_x,Xge,lyt=v(()=>{"use strict";Ro();Ia();lZ={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."})},PE=I.Optional(I.String()),dZ=I.Object({...lZ,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:PE},{additionalProperties:!1}),qge=He.compile(dZ),fZ=I.Object({...lZ,field:I.String({minLength:1,description:"Frontmatter field to read. Agent-authorable/corrective fields only (quality_gates, outputs, inputs, depends_on, model, closes, title, description). FSM-driven fields (iterations, reviews, approvals, started_at) return `unit_field_engine_only`."})},{additionalProperties:!1}),Bge=He.compile(fZ),pZ=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:PE},{additionalProperties:!1}),Gge=He.compile(pZ),zge=I.Optional(I.String({description:"Stage the unit lives on. OPTIONAL \u2014 when omitted, the handler resolves it from on-disk layout. Pass it through from the cursor's dispatched action to make this call race-safe against concurrent run_next calls that may switch the working tree."})),hZ=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:zge,state_file:PE},{additionalProperties:!1}),Vge=He.compile(hZ),mZ=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:zge,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton you pass to the next hat. State what you did, what you concluded, and what the next hat needs to know to pick up cleanly (decisions made, open questions, where you left off). Recorded on this iteration and embedded in the next hat's dispatch. Not a status line \u2014 write it for the hat that reads it next."}),state_file:PE},{additionalProperties:!1}),Wge=He.compile(mZ),gZ=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:zge,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton back to the hat that gets re-run. Explain why the current hat's output was rejected AND what must change to pass (e.g. 'touch targets <44px on mobile \u2014 bump to 44px min and re-check the nav row'). Recorded on this iteration and embedded in the re-dispatched hat's instruction."}),state_file:PE},{additionalProperties:!1}),Kge=He.compile(gZ),yZ=I.Object({...lZ,state_file:PE},{additionalProperties:!1}),Zge=He.compile(yZ),SZ=I.Object({...lZ,state_file:PE},{additionalProperties:!1}),Yge=He.compile(SZ),EZ=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:PE},{additionalProperties:!1}),Jge=He.compile(EZ),_x=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}),Xge=He.compile(_x)});var Qge,c3n,bZ,u3n,DD,Tx,l3n,JT,XT,_Z,$ge=v(()=>{"use strict";Ro();Ia();Fme();Qge=["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"],c3n=["draft","ready","failed"],bZ=["continuous","discrete","autopilot","discrete-hybrid","quick"],u3n=I.Record(I.String(),I.Union([Ume,I.Null()])),DD=I.Object({title:I.Optional(I.String({minLength:1})),description:I.Optional(I.String()),mode:I.Optional(I.String({enum:[...bZ]})),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:[...c3n]})),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:[...Qge]}},additionalProperties:!0}),Tx=He.compile(DD),l3n=new Set(Qge),JT=Object.keys(DD.properties??{}).filter(e=>!l3n.has(e)),XT=Qge,_Z=["studio","plugin_version","follows"]});var d3n,dyt=v(()=>{"use strict";Ro();d3n=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 eye,tye,fyt=v(()=>{"use strict";Ro();eye=I.Object({error:I.String({description:"Stable named error code."}),message:I.String({description:"Human-readable remediation guidance."})},{additionalProperties:!0}),tye=I.Object({ok:I.Literal(!0),message:I.String()},{additionalProperties:!0})});var TZ,nye,pyt=v(()=>{"use strict";Ro();TZ=I.Object({stage:I.Optional(I.String()),status:I.Optional(I.String({enum:["pending","active","completed","blocked"]})),phase:I.Optional(I.String({enum:["","elaborate","execute","review","gate"]})),started_at:I.Optional(I.Union([I.String(),I.Null()])),completed_at:I.Optional(I.Union([I.String(),I.Null()])),gate_entered_at:I.Optional(I.Union([I.String(),I.Null()])),gate_outcome:I.Optional(I.Union([I.String(),I.Null()])),visits:I.Optional(I.Integer({minimum:0})),iterations:I.Optional(I.Array(I.Unknown())),elaboration_turns:I.Optional(I.Integer({minimum:0})),decision_log:I.Optional(I.Array(I.Unknown()))},{additionalProperties:!0}),nye=Object.keys(TZ.properties??{})});var myt,hyt,QT,Ng,CE,Zf,gyt=v(()=>{"use strict";Ro();Ia();myt=["started_at","iterations","reviews","approvals","quality_gates_env_blocked"],hyt="^[^\\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:hyt}),{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:hyt}),{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:[...myt]}},additionalProperties:!0}),Ng=He.compile(QT),CE=Object.keys(QT.properties??{}),Zf=myt});var ji=v(()=>{"use strict";Fme();Xgt();Qgt();$gt();eyt();tyt();nyt();iyt();syt();oyt();cyt();uyt();lyt();$ge();dyt();fyt();pyt();gyt()});var Eyt={};Rr(Eyt,{DIR_INVENTORY_SKIP:()=>RZ,bodyMatchesStoredHash:()=>UD,bodySha256:()=>Pg,buildApprovalRecord:()=>Hd,buildOutputWitnesses:()=>h3n,buildReviewRecord:()=>Pl,fileSha256:()=>vx,isTextBodyExtension:()=>AZ,normalizeInputPath:()=>FD,outputSha256:()=>ME,resolveInputWitnesses:()=>wZ});import{createHash as vZ}from"node:crypto";import{existsSync as $T,readdirSync as f3n,readFileSync as rye,statSync as yyt}from"node:fs";import{join as ev}from"node:path";function Pg(e){if(!$T(e))return"";let t=rye(e,"utf8"),n=t;try{n=(0,iye.default)(t).content}catch{n=t}return n.endsWith(` +`)}function BI(e){let t=`${e.replace(/\/$/,"")}/intent.md`;if(!sL(t))return"";try{let{data:n}=re(w3(t,"utf8"));return typeof n.mode=="string"?n.mode:""}catch{return""}}function zI(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?"":$ft.renderString(xzn,{slug:n,concurrentLines:o.map(a=>a.line)})}var Qft,$ft,Izn,xzn,ts=v(()=>{"use strict";gt();Qft=Re(Kt(),1);Ci();_f();pb();ze();Kn();vl();ht();Gft();Fh();$ft=new Te({autoEscape:!1,useWith:!0}),Izn=ie("@canon:","_shared/inline-subagent-context.eta.md"),xzn=ie("@canon:","_shared/concurrent-elaborate-loop.eta.md")});function x3(e,t,n){let r=e.ensureWorktree(),i=e.mandateRef(t),s=e.priorHandoffBlock(),o=e.resolveModel(t),a=e.bolt(),c=Ozn.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 Ozn,Vpe=v(()=>{"use strict";gt();ts();Ozn=new Te({autoEscape:!1,useWith:!0})});import{existsSync as npt,readdirSync as rpt,readFileSync as ipt}from"node:fs";import{join as GI}from"node:path";function Pzn(){return Wpe===null&&(Wpe=ie("@canon:feedback/start_feedback_hat","subagent.eta.md")),Wpe}function Nzn(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?GI(cr(t,n),"feedback"):GI(ce(t),"feedback");try{let p=npt(f)?rpt(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=ipt(GI(f,p[0]),"utf8");o=(0,Kpe.default)(h).data.model}}catch{}}let a=n?Du(r,n)?.[i]:QK(r)?.[i],c=n?$i(r,n):void 0,u=Cd(r),l=fb({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}function VI(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?GI(cr(t,i),"feedback"):GI(ce(t),"feedback"),p=r.replace(/^FB-/i,""),h="",m=1;if(npt(f)){let g=rpt(f).find(y=>y.startsWith(p)&&y.endsWith(".md"));if(g){let y=GI(f,g);h=FI(y);try{let b=(0,Kpe.default)(ipt(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:()=>Ppe(t,c,r)??"",mandateRef:f=>kr({resolveBody:()=>i?AI(n,i,f,!0):oft(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=>Nzn({slug:t,studio:n,stage:i,hat:f,feedbackId:r})?.model,bolt:()=>l().bolt,template:()=>Pzn(),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 x3(d,s,o)}var Kpe,Wpe,Ype=v(()=>{"use strict";Kpe=Re(Kt(),1);Ci();ar();pb();ze();Kn();Vpe();ts();ht();Wpe=null});function Zpe(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 spt=v(()=>{"use strict"});var cpt={};Ar(cpt,{computeStageDependents:()=>Qpe,filterInputsByPlanStages:()=>Xpe,resolveIntentStages:()=>wn,resolveStageFixHats:()=>bg,resolveStageHats:()=>Es,resolveStageMetadata:()=>the,resolveStageOptional:()=>oL,resolveStageReview:()=>ehe,resolveStudioFilePath:()=>Ff,resolveStudioFixHats:()=>jf,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>$pe});import{existsSync as Uf,readdirSync as Czn,readFileSync as Jpe}from"node:fs";import{join as Yr}from"node:path";function HT(e){if(!Uf(e))return{};let t=Jpe(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 Xpe(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 HT(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 HT(o).hats||[]}return[]}function apt(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 HT(o)}return{}}function oL(e,t){return apt(e,t).optional===!0}function Qpe(e,t,n){let r=n.indexOf(t);if(r<0)return[];let i=[];for(let s of n.slice(r+1)){let o=apt(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=HT(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 Czn(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=HT(o).fix_hats;return Array.isArray(c)?c:[]}}return[]}function $pe(e,t,n,r){let i=Es(e,t),s=ce(n),o=Yr(s,"stages",t,"units",r.endsWith(".md")?r:`${r}.md`);if(!Uf(o))return i;try{let{data:a}=re(Jpe(o,"utf8"));if((a.closes||[]).length>0&&!i.includes("feedback-assessor"))return[...i,"feedback-assessor"]}catch{}return i}function ehe(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=HT(o).review;return Array.isArray(c)?c.join(","):c||"auto"}}return"auto"}function the(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=Jpe(o,"utf8"),c=HT(o),{content:u}=(0,opt.default)(a);return{description:c.description||t,body:u.trim()}}}return null}var opt,ns=v(()=>{"use strict";opt=Re(Kt(),1);Ci();ze();Kn()});import{existsSync as upt,readFileSync as lpt}from"node:fs";import{join as rhe}from"node:path";function Mzn(){return nhe===null&&(nhe=ie("@canon:stage/execute/start_unit_hat","subagent.eta.md")),nhe}function Dzn(e){if(!Go.modelSelection)return;let{slug:t,studio:n,stage:r,hat:i,unit:s}=e,o,a=rhe(cr(t,r),"units",`${s}.md`);if(upt(a))try{let d=lpt(a,"utf8");o=(0,ihe.default)(d).data.model}catch{}let c=r?Du(n,r)?.[i]:void 0,u=r?$i(n,r):void 0,l=Cd(n);return fb({unit:o,hat:c?.model,stage:u?.data?.default_model,studio:l?.data?.default_model}).model}function Lzn(e){let{slug:t,stage:n,unit:r}=e,i=rhe(cr(t,n),"units",`${r}.md`);if(!upt(i))return[];try{let s=(0,ihe.default)(lpt(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 WI(e){let{slug:t,studio:n,unit:r,stage:i,hat:s,terminal:o}=e,a=rhe(cr(t,i),"units",`${r}.md`),c=null,u=()=>c??=Lzn({slug:t,stage:i,unit:r});return x3({slug:t,emitStage:i||void 0,dispatchId:r,ensureWorktree:()=>kpe(t,r,i)??"",mandateRef:d=>kr({resolveBody:()=>AI(n,i,d),toolName:"haiku_read_hat",toolArgs:{studio:n,stage:i,hat:d},intent:t,stage:i,kind:"mandate",name:d}),priorHandoffBlock:()=>k3(a),resolveModel:d=>Dzn({slug:t,studio:n,stage:i,hat:d,unit:r}),bolt:()=>u().length+1,template:()=>Mzn(),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 ihe,nhe,she=v(()=>{"use strict";ihe=Re(Kt(),1);Ci();ar();pb();ze();Kn();Vpe();ts();ht();nhe=null});function P3(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 fpt(e){let t=new Map;for(let i of e.nodes)t.set(i.id,0);for(let i of e.edges)t.set(i.to,(t.get(i.to)??0)+1);let n=[];for(let[i,s]of t)s===0&&n.push(i);n.sort();let r=[];for(;n.length>0;){let i=n.shift();if(!i)break;r.push(i);let s=e.adjacency.get(i)??[];for(let o of s){let a=(t.get(o)??1)-1;if(t.set(o,a),a===0){let c=n.findIndex(u=>u>o);c===-1?n.push(o):n.splice(c,0,o)}}}if(r.lengths.id).filter(s=>!r.includes(s));throw new Error(`Circular dependency detected among units: ${i.join(", ")}`)}return r}function N3(e){let t=fpt(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 O3(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 C3(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=O3(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=O3(h),g=Hu(p.slug);n.push(` ${g}["${m}"]`)}n.push(" end")}else{let l=N3(e),d=new Map(t.map(h=>[h.slug,h])),f=Array.from(l.keys()).sort((h,m)=>h-m),p=f.length>1;for(let h of f){let 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=O3(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=O3(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=dpt[l]??dpt.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 dpt,ohe=v(()=>{"use strict";dpt={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 ahe,readdirSync as ppt,readFileSync as Uzn,rmSync as Fzn}from"node:fs";import{join as M3}from"node:path";function jzn(e){if(!ahe(e))return{};let t=Uzn(e,"utf8"),{data:n}=re(t);return n}function aL(e,t){let n=Eg(e,t);return n.length===0?!0:!n.some(r=>r.status==="completed")}function hpt(e,t){if(!aL(e,t))return[];let n=M3(e,"stages",t,"feedback");if(!ahe(n))return[];let r=[];for(let i of ppt(n))if(i.endsWith(".md")&&/^\d+-/.test(i))try{Fzn(M3(n,i),{force:!0}),r.push(i)}catch{}return r}function Hzn(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=M3(e,"stages",t,"units");if(!ahe(n))return[];let i=ppt(n).filter(o=>o.endsWith(".md")).map(o=>{let a=jzn(M3(n,o)),c=Hzn(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 KI(e){let t=e.map(c=>({id:c.name,status:c.status})),n=[],r=new Map;for(let c of e)r.set(c.name,[]);for(let c of e)for(let u of c.dependsOn){if(!r.has(u))continue;n.push({from:u,to:c.name});let l=r.get(u);l&&l.push(c.name)}let i={nodes:t,edges:n,adjacency:r},s;try{s=N3(i)}catch{s=new Map([[0,e.map(c=>c.name)]])}let o=new Map,a=0;for(let[c,u]of s){for(let l of u)o.set(l,c);c+1>a&&(a=c+1)}return{waves:s,unitWave:o,totalWaves:a}}function YI(e,t,n){for(let r=0;rt.get(s.name)===r&&s.status!=="completed"))return r;return 0}function D3(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}=KI(n),u=YI(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 L3=v(()=>{"use strict";ohe();ze()});var mc={};Ar(mc,{HasPropertyKey:()=>U3,IsArray:()=>js,IsAsyncIterator:()=>che,IsBigInt:()=>cL,IsBoolean:()=>_g,IsDate:()=>qT,IsFunction:()=>uhe,IsIterator:()=>lhe,IsNull:()=>dhe,IsNumber:()=>Al,IsObject:()=>Ir,IsRegExp:()=>uL,IsString:()=>Zr,IsSymbol:()=>fhe,IsUint8Array:()=>Tg,IsUndefined:()=>Hs});function U3(e,t){return t in e}function che(e){return Ir(e)&&!js(e)&&!Tg(e)&&Symbol.asyncIterator in e}function js(e){return Array.isArray(e)}function cL(e){return typeof e=="bigint"}function _g(e){return typeof e=="boolean"}function qT(e){return e instanceof globalThis.Date}function uhe(e){return typeof e=="function"}function lhe(e){return Ir(e)&&!js(e)&&!Tg(e)&&Symbol.iterator in e}function dhe(e){return e===null}function Al(e){return typeof e=="number"}function Ir(e){return typeof e=="object"&&e!==null}function uL(e){return e instanceof globalThis.RegExp}function Zr(e){return typeof e=="string"}function fhe(e){return typeof e=="symbol"}function Tg(e){return e instanceof globalThis.Uint8Array}function Hs(e){return e===void 0}var Jc=v(()=>{});function qzn(e){return e.map(t=>F3(t))}function Bzn(e){return new Date(e.getTime())}function zzn(e){return new Uint8Array(e)}function Gzn(e){return new RegExp(e.source,e.flags)}function Vzn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=F3(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=F3(e[n]);return t}function F3(e){return js(e)?qzn(e):qT(e)?Bzn(e):Tg(e)?zzn(e):uL(e)?Gzn(e):Ir(e)?Vzn(e):e}function vi(e){return F3(e)}var qu=v(()=>{Jc()});function ZI(e,t){return t===void 0?vi(e):vi({...t,...e})}var j3=v(()=>{qu()});var phe=v(()=>{j3();qu()});function mpt(e){return e!==null&&typeof e=="object"}function gpt(e){return globalThis.Array.isArray(e)&&!globalThis.ArrayBuffer.isView(e)}function ypt(e){return e===void 0}function Spt(e){return typeof e=="number"}var bpt=v(()=>{});var Ept=v(()=>{bpt()});var H3,_pt=v(()=>{Ept();(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=mpt(o);return e.AllowArrayObject?a:a&&!gpt(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?Spt(o):Number.isFinite(o)}e.IsNumberLike=i;function s(o){let a=ypt(o);return e.AllowNullVoid?a||o===null:a}e.IsVoidLike=s})(H3||(H3={}))});function Wzn(e){return globalThis.Object.freeze(e).map(t=>lL(t))}function Kzn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=lL(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=lL(e[n]);return globalThis.Object.freeze(t)}function lL(e){return js(e)?Wzn(e):qT(e)?e:Tg(e)?e:uL(e)?e:Ir(e)?Kzn(e):e}var Tpt=v(()=>{Jc()});function fe(e,t){let n=t!==void 0?{...t,...e}:e;switch(H3.InstanceMode){case"freeze":return lL(n);case"clone":return vi(n);default:return n}}var Nt=v(()=>{_pt();Tpt();qu()});var vg=v(()=>{Nt()});var Jo,vpt=v(()=>{Jo=class extends Error{constructor(t){super(t)}}});var jh=v(()=>{vpt()});var so,Hf,wa,Ld,Pe,dL=v(()=>{so=Symbol.for("TypeBox.Transform"),Hf=Symbol.for("TypeBox.Readonly"),wa=Symbol.for("TypeBox.Optional"),Ld=Symbol.for("TypeBox.Hint"),Pe=Symbol.for("TypeBox.Kind")});var Ut=v(()=>{dL()});function JI(e){return Ir(e)&&e[Hf]==="Readonly"}function Bu(e){return Ir(e)&&e[wa]==="Optional"}function hhe(e){return zn(e,"Any")}function mhe(e){return zn(e,"Argument")}function qf(e){return zn(e,"Array")}function BT(e){return zn(e,"AsyncIterator")}function zT(e){return zn(e,"BigInt")}function Rg(e){return zn(e,"Boolean")}function Bf(e){return zn(e,"Computed")}function zf(e){return zn(e,"Constructor")}function Yzn(e){return zn(e,"Date")}function Gf(e){return zn(e,"Function")}function Vf(e){return zn(e,"Integer")}function rs(e){return zn(e,"Intersect")}function GT(e){return zn(e,"Iterator")}function zn(e,t){return Ir(e)&&Pe in e&&e[Pe]===t}function q3(e){return _g(e)||Al(e)||Zr(e)}function wl(e){return zn(e,"Literal")}function kl(e){return zn(e,"MappedKey")}function Ri(e){return zn(e,"MappedResult")}function Tb(e){return zn(e,"Never")}function Zzn(e){return zn(e,"Not")}function fL(e){return zn(e,"Null")}function Wf(e){return zn(e,"Number")}function qs(e){return zn(e,"Object")}function VT(e){return zn(e,"Promise")}function WT(e){return zn(e,"Record")}function _s(e){return zn(e,"Ref")}function ghe(e){return zn(e,"RegExp")}function Ag(e){return zn(e,"String")}function pL(e){return zn(e,"Symbol")}function Il(e){return zn(e,"TemplateLiteral")}function Jzn(e){return zn(e,"This")}function vb(e){return Ir(e)&&so in e}function xl(e){return zn(e,"Tuple")}function hL(e){return zn(e,"Undefined")}function Yn(e){return zn(e,"Union")}function Xzn(e){return zn(e,"Uint8Array")}function Qzn(e){return zn(e,"Unknown")}function $zn(e){return zn(e,"Unsafe")}function eGn(e){return zn(e,"Void")}function tGn(e){return Ir(e)&&Pe in e&&Zr(e[Pe])}function Ol(e){return hhe(e)||mhe(e)||qf(e)||Rg(e)||zT(e)||BT(e)||Bf(e)||zf(e)||Yzn(e)||Gf(e)||Vf(e)||rs(e)||GT(e)||wl(e)||kl(e)||Ri(e)||Tb(e)||Zzn(e)||fL(e)||Wf(e)||qs(e)||VT(e)||WT(e)||_s(e)||ghe(e)||Ag(e)||pL(e)||Il(e)||Jzn(e)||xl(e)||hL(e)||Yn(e)||Xzn(e)||Qzn(e)||$zn(e)||eGn(e)||tGn(e)}var Xn=v(()=>{Jc();Ut()});var X={};Ar(X,{IsAny:()=>kpt,IsArgument:()=>Ipt,IsArray:()=>xpt,IsAsyncIterator:()=>Opt,IsBigInt:()=>Ppt,IsBoolean:()=>Npt,IsComputed:()=>Cpt,IsConstructor:()=>Mpt,IsDate:()=>Dpt,IsFunction:()=>Lpt,IsImport:()=>aGn,IsInteger:()=>Upt,IsIntersect:()=>Fpt,IsIterator:()=>jpt,IsKind:()=>dht,IsKindOf:()=>kn,IsLiteral:()=>gL,IsLiteralBoolean:()=>cGn,IsLiteralNumber:()=>qpt,IsLiteralString:()=>Hpt,IsLiteralValue:()=>Bpt,IsMappedKey:()=>zpt,IsMappedResult:()=>Gpt,IsNever:()=>Vpt,IsNot:()=>Wpt,IsNull:()=>Kpt,IsNumber:()=>Ypt,IsObject:()=>Zpt,IsOptional:()=>oGn,IsPromise:()=>Jpt,IsProperties:()=>B3,IsReadonly:()=>sGn,IsRecord:()=>Xpt,IsRecursive:()=>uGn,IsRef:()=>Qpt,IsRegExp:()=>$pt,IsSchema:()=>Xo,IsString:()=>eht,IsSymbol:()=>tht,IsTemplateLiteral:()=>nht,IsThis:()=>rht,IsTransform:()=>iht,IsTuple:()=>sht,IsUint8Array:()=>aht,IsUndefined:()=>oht,IsUnion:()=>Ehe,IsUnionLiteral:()=>lGn,IsUnknown:()=>cht,IsUnsafe:()=>uht,IsVoid:()=>lht,TypeGuardUnknownTypeError:()=>yhe});function Rpt(e){try{return new RegExp(e),!0}catch{return!1}}function She(e){if(!Zr(e))return!1;for(let t=0;t=7&&n<=13||n===27||n===127)return!1}return!0}function Apt(e){return bhe(e)||Xo(e)}function mL(e){return Hs(e)||cL(e)}function Jr(e){return Hs(e)||Al(e)}function bhe(e){return Hs(e)||_g(e)}function xr(e){return Hs(e)||Zr(e)}function rGn(e){return Hs(e)||Zr(e)&&She(e)&&Rpt(e)}function iGn(e){return Hs(e)||Zr(e)&&She(e)}function wpt(e){return Hs(e)||Xo(e)}function sGn(e){return Ir(e)&&e[Hf]==="Readonly"}function oGn(e){return Ir(e)&&e[wa]==="Optional"}function kpt(e){return kn(e,"Any")&&xr(e.$id)}function Ipt(e){return kn(e,"Argument")&&Al(e.index)}function xpt(e){return kn(e,"Array")&&e.type==="array"&&xr(e.$id)&&Xo(e.items)&&Jr(e.minItems)&&Jr(e.maxItems)&&bhe(e.uniqueItems)&&wpt(e.contains)&&Jr(e.minContains)&&Jr(e.maxContains)}function Opt(e){return kn(e,"AsyncIterator")&&e.type==="AsyncIterator"&&xr(e.$id)&&Xo(e.items)}function Ppt(e){return kn(e,"BigInt")&&e.type==="bigint"&&xr(e.$id)&&mL(e.exclusiveMaximum)&&mL(e.exclusiveMinimum)&&mL(e.maximum)&&mL(e.minimum)&&mL(e.multipleOf)}function Npt(e){return kn(e,"Boolean")&&e.type==="boolean"&&xr(e.$id)}function Cpt(e){return kn(e,"Computed")&&Zr(e.target)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))}function Mpt(e){return kn(e,"Constructor")&&e.type==="Constructor"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function Dpt(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 Lpt(e){return kn(e,"Function")&&e.type==="Function"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function aGn(e){return kn(e,"Import")&&U3(e,"$defs")&&Ir(e.$defs)&&B3(e.$defs)&&U3(e,"$ref")&&Zr(e.$ref)&&e.$ref in e.$defs}function Upt(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 B3(e){return Ir(e)&&Object.entries(e).every(([t,n])=>She(t)&&Xo(n))}function Fpt(e){return kn(e,"Intersect")&&!(Zr(e.type)&&e.type!=="object")&&js(e.allOf)&&e.allOf.every(t=>Xo(t)&&!iht(t))&&xr(e.type)&&(bhe(e.unevaluatedProperties)||wpt(e.unevaluatedProperties))&&xr(e.$id)}function jpt(e){return kn(e,"Iterator")&&e.type==="Iterator"&&xr(e.$id)&&Xo(e.items)}function kn(e,t){return Ir(e)&&Pe in e&&e[Pe]===t}function Hpt(e){return gL(e)&&Zr(e.const)}function qpt(e){return gL(e)&&Al(e.const)}function cGn(e){return gL(e)&&_g(e.const)}function gL(e){return kn(e,"Literal")&&xr(e.$id)&&Bpt(e.const)}function Bpt(e){return _g(e)||Al(e)||Zr(e)}function zpt(e){return kn(e,"MappedKey")&&js(e.keys)&&e.keys.every(t=>Al(t)||Zr(t))}function Gpt(e){return kn(e,"MappedResult")&&B3(e.properties)}function Vpt(e){return kn(e,"Never")&&Ir(e.not)&&Object.getOwnPropertyNames(e.not).length===0}function Wpt(e){return kn(e,"Not")&&Xo(e.not)}function Kpt(e){return kn(e,"Null")&&e.type==="null"&&xr(e.$id)}function Ypt(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 Zpt(e){return kn(e,"Object")&&e.type==="object"&&xr(e.$id)&&B3(e.properties)&&Apt(e.additionalProperties)&&Jr(e.minProperties)&&Jr(e.maxProperties)}function Jpt(e){return kn(e,"Promise")&&e.type==="Promise"&&xr(e.$id)&&Xo(e.item)}function Xpt(e){return kn(e,"Record")&&e.type==="object"&&xr(e.$id)&&Apt(e.additionalProperties)&&Ir(e.patternProperties)&&(t=>{let n=Object.getOwnPropertyNames(t.patternProperties);return n.length===1&&Rpt(n[0])&&Ir(t.patternProperties)&&Xo(t.patternProperties[n[0]])})(e)}function uGn(e){return Ir(e)&&Ld in e&&e[Ld]==="Recursive"}function Qpt(e){return kn(e,"Ref")&&xr(e.$id)&&Zr(e.$ref)}function $pt(e){return kn(e,"RegExp")&&xr(e.$id)&&Zr(e.source)&&Zr(e.flags)&&Jr(e.maxLength)&&Jr(e.minLength)}function eht(e){return kn(e,"String")&&e.type==="string"&&xr(e.$id)&&Jr(e.minLength)&&Jr(e.maxLength)&&rGn(e.pattern)&&iGn(e.format)}function tht(e){return kn(e,"Symbol")&&e.type==="symbol"&&xr(e.$id)}function nht(e){return kn(e,"TemplateLiteral")&&e.type==="string"&&Zr(e.pattern)&&e.pattern[0]==="^"&&e.pattern[e.pattern.length-1]==="$"}function rht(e){return kn(e,"This")&&xr(e.$id)&&Zr(e.$ref)}function iht(e){return Ir(e)&&so in e}function sht(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 oht(e){return kn(e,"Undefined")&&e.type==="undefined"&&xr(e.$id)}function lGn(e){return Ehe(e)&&e.anyOf.every(t=>Hpt(t)||qpt(t))}function Ehe(e){return kn(e,"Union")&&xr(e.$id)&&Ir(e)&&js(e.anyOf)&&e.anyOf.every(t=>Xo(t))}function aht(e){return kn(e,"Uint8Array")&&e.type==="Uint8Array"&&xr(e.$id)&&Jr(e.minByteLength)&&Jr(e.maxByteLength)}function cht(e){return kn(e,"Unknown")&&xr(e.$id)}function uht(e){return kn(e,"Unsafe")}function lht(e){return kn(e,"Void")&&e.type==="void"&&xr(e.$id)}function dht(e){return Ir(e)&&Pe in e&&Zr(e[Pe])&&!nGn.includes(e[Pe])}function Xo(e){return Ir(e)&&(kpt(e)||Ipt(e)||xpt(e)||Npt(e)||Ppt(e)||Opt(e)||Cpt(e)||Mpt(e)||Dpt(e)||Lpt(e)||Upt(e)||Fpt(e)||jpt(e)||gL(e)||zpt(e)||Gpt(e)||Vpt(e)||Wpt(e)||Kpt(e)||Ypt(e)||Zpt(e)||Jpt(e)||Xpt(e)||Qpt(e)||$pt(e)||eht(e)||tht(e)||nht(e)||rht(e)||sht(e)||oht(e)||Ehe(e)||aht(e)||cht(e)||uht(e)||lht(e)||dht(e))}var yhe,nGn,fht=v(()=>{Jc();Ut();jh();yhe=class extends Jo{},nGn=["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 _he=v(()=>{Xn();fht();Jc()});var pht=v(()=>{});var hht=v(()=>{pht()});var The,yL,vhe,dGn,Z7r,Rb,Ab,mht,ght=v(()=>{The="(true|false)",yL="(0|[1-9][0-9]*)",vhe="(.*)",dGn="(?!.*)",Z7r=`^${The}$`,Rb=`^${yL}$`,Ab=`^${vhe}$`,mht=`^${dGn}$`});var SL=v(()=>{ght()});var yht=v(()=>{});var Sht=v(()=>{});var bht=v(()=>{yht();Sht()});function Eht(e,t){return e.includes(t)}function _ht(e){return[...new Set(e)]}function hGn(e,t){return e.filter(n=>t.includes(n))}function mGn(e,t){return e.reduce((n,r)=>hGn(n,r),t)}function Tht(e){return e.length===1?e[0]:e.length>1?mGn(e.slice(1),e[0]):[]}function vht(e){let t=[];for(let n of e)t.push(...n);return t}var Rht=v(()=>{});var bL=v(()=>{Rht()});function wb(e){return fe({[Pe]:"Any"},e)}var Aht=v(()=>{vg();Ut()});var EL=v(()=>{Aht()});function XI(e,t){return fe({[Pe]:"Array",type:"array",items:e},t)}var wht=v(()=>{Nt();Ut()});var _L=v(()=>{wht()});function kht(e){return fe({[Pe]:"Argument",index:e})}var Iht=v(()=>{Nt();Ut()});var Rhe=v(()=>{Iht()});function QI(e,t){return fe({[Pe]:"AsyncIterator",type:"AsyncIterator",items:e},t)}var xht=v(()=>{Ut();Nt()});var TL=v(()=>{xht()});function oi(e,t,n){return fe({[Pe]:"Computed",target:e,parameters:t},n)}var Oht=v(()=>{vg();dL()});var kb=v(()=>{Oht()});function gGn(e,t){let{[t]:n,...r}=e;return r}function is(e,t){return t.reduce((n,r)=>gGn(n,r),e)}var z3=v(()=>{});var kg=v(()=>{z3()});function Zn(e){return fe({[Pe]:"Never",not:{}},e)}var Pht=v(()=>{Nt();Ut()});var ka=v(()=>{Pht()});var Nht=v(()=>{});function Qn(e){return fe({[Pe]:"MappedResult",properties:e})}var Ahe=v(()=>{Nt();Ut()});function $I(e,t,n){return fe({[Pe]:"Constructor",type:"Constructor",parameters:e,returns:t},n)}var Cht=v(()=>{Nt();Ut()});var vL=v(()=>{Cht()});function Hh(e,t,n){return fe({[Pe]:"Function",type:"Function",parameters:e,returns:t},n)}var Mht=v(()=>{Nt();Ut()});var KT=v(()=>{Mht()});function RL(e,t){return fe({[Pe]:"Union",anyOf:e},t)}var whe=v(()=>{Nt();Ut()});function yGn(e){return e.some(t=>Bu(t))}function Dht(e){return e.map(t=>Bu(t)?SGn(t):t)}function SGn(e){return is(e,[wa])}function bGn(e,t){return yGn(e)?gc(RL(Dht(e),t)):RL(Dht(e),t)}function qh(e,t){return e.length===1?fe(e[0],t):e.length===0?Zn(t):bGn(e,t)}var Lht=v(()=>{Nt();Ut();kg();ka();Ig();whe();Xn()});var Uht=v(()=>{});function Sr(e,t){return e.length===0?Zn(t):e.length===1?fe(e[0],t):RL(e,t)}var Fht=v(()=>{ka();Nt();whe()});var oo=v(()=>{Lht();Uht();Fht()});function EGn(e){return e.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function khe(e,t,n){return e[t]===n&&e.charCodeAt(t-1)!==92}function xg(e,t){return khe(e,t,"(")}function AL(e,t){return khe(e,t,")")}function jht(e,t){return khe(e,t,"|")}function _Gn(e){if(!(xg(e,0)&&AL(e,e.length-1)))return!1;let t=0;for(let n=0;n0&&r.push(e0(o)),n=s+1}let i=e.slice(n);return i.length>0&&r.push(e0(i)),r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"or",expr:r}}function wGn(e){function t(i,s){if(!xg(i,s))throw new G3("TemplateLiteralParser: Index must point to open parens");let o=0;for(let a=s;a0&&r.push(e0(a)),i=o-1}return r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"and",expr:r}}function e0(e){return _Gn(e)?e0(TGn(e)):vGn(e)?AGn(e):RGn(e)?wGn(e):{type:"const",const:EGn(e)}}function t0(e){return e0(e.slice(1,e.length-1))}var G3,V3=v(()=>{jh();G3=class extends Jo{}});function kGn(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 IGn(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 xGn(e){return e.type==="const"&&e.const===".*"}function YT(e){return kGn(e)||xGn(e)?!1:IGn(e)?!0:e.type==="and"?e.expr.every(t=>YT(t)):e.type==="or"?e.expr.every(t=>YT(t)):e.type==="const"?!0:(()=>{throw new Ihe("Unknown expression type")})()}function Hht(e){let t=t0(e.pattern);return YT(t)}var Ihe,xhe=v(()=>{V3();jh();Ihe=class extends Jo{}});function*qht(e){if(e.length===1)return yield*e[0];for(let t of e[0])for(let n of qht(e.slice(1)))yield`${t}${n}`}function*OGn(e){return yield*qht(e.expr.map(t=>[...wL(t)]))}function*PGn(e){for(let t of e.expr)yield*wL(t)}function*NGn(e){return yield e.const}function*wL(e){return e.type==="and"?yield*OGn(e):e.type==="or"?yield*PGn(e):e.type==="const"?yield*NGn(e):(()=>{throw new Ohe("Unknown expression")})()}function W3(e){let t=t0(e.pattern);return YT(t)?[...wL(t)]:[]}var Ohe,Phe=v(()=>{xhe();V3();jh();Ohe=class extends Jo{}});function ur(e,t){return fe({[Pe]:"Literal",const:e,type:typeof e},t)}var Bht=v(()=>{Nt();Ut()});var zu=v(()=>{Bht()});function K3(e){return fe({[Pe]:"Boolean",type:"boolean"},e)}var zht=v(()=>{Ut();vg()});var Y3=v(()=>{zht()});function n0(e){return fe({[Pe]:"BigInt",type:"bigint"},e)}var Ght=v(()=>{Ut();vg()});var kL=v(()=>{Ght()});function Ud(e){return fe({[Pe]:"Number",type:"number"},e)}var Vht=v(()=>{Nt();Ut()});var ZT=v(()=>{Vht()});function Kf(e){return fe({[Pe]:"String",type:"string"},e)}var Wht=v(()=>{Nt();Ut()});var r0=v(()=>{Wht()});function*CGn(e){let t=e.trim().replace(/"|'/g,"");return t==="boolean"?yield K3():t==="number"?yield Ud():t==="bigint"?yield n0():t==="string"?yield Kf():yield(()=>{let n=t.split("|").map(r=>ur(r.trim()));return n.length===0?Zn():n.length===1?n[0]:qh(n)})()}function*MGn(e){if(e[1]!=="{"){let t=ur("$"),n=Nhe(e.slice(1));return yield*[t,...n]}for(let t=2;t{zu();Y3();kL();ZT();r0();oo();ka()});function DGn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Yht(e,t){return Il(e)?e.pattern.slice(1,e.pattern.length-1):Yn(e)?`(${e.anyOf.map(n=>Yht(n,t)).join("|")})`:Wf(e)?`${t}${yL}`:Vf(e)?`${t}${yL}`:zT(e)?`${t}${yL}`:Ag(e)?`${t}${vhe}`:wl(e)?`${t}${DGn(e.const.toString())}`:Rg(e)?`${t}${The}`:(()=>{throw new Mhe(`Unexpected Kind '${e[Pe]}'`)})()}function Dhe(e){return`^${e.map(t=>Yht(t,"")).join("")}$`}var Mhe,Lhe=v(()=>{SL();Ut();jh();Xn();Mhe=class extends Jo{}});function JT(e){let n=W3(e).map(r=>ur(r));return qh(n)}var Zht=v(()=>{oo();zu();Phe()});function Z3(e,t){let n=Zr(e)?Dhe(Kht(e)):Dhe(e);return fe({[Pe]:"TemplateLiteral",type:"string",pattern:n},t)}var Jht=v(()=>{Nt();Che();Lhe();Jc();Ut()});var Og=v(()=>{xhe();Phe();Che();V3();Lhe();Zht();Jht()});function LGn(e){return W3(e).map(n=>n.toString())}function UGn(e){let t=[];for(let n of e)t.push(...Gu(n));return t}function FGn(e){return[e.toString()]}function Gu(e){return[...new Set(Il(e)?LGn(e):Yn(e)?UGn(e.anyOf):wl(e)?FGn(e.const):Wf(e)?["[number]"]:Vf(e)?["[number]"]:[])]}var J3=v(()=>{Og();Xn()});function jGn(e,t,n){let r={};for(let i of Object.getOwnPropertyNames(t))r[i]=Ib(e,Gu(t[i]),n);return r}function HGn(e,t,n){return jGn(e,t.properties,n)}function Xht(e,t,n){let r=HGn(e,t,n);return Qn(r)}var Uhe=v(()=>{Ro();J3();Bh()});function $ht(e,t){return e.map(n=>emt(n,t))}function qGn(e){return e.filter(t=>!Tb(t))}function BGn(e,t){return X3(qGn($ht(e,t)))}function zGn(e){return e.some(t=>Tb(t))?[]:e}function GGn(e,t){return qh(zGn($ht(e,t)))}function VGn(e,t){return t in e?e[t]:t==="[number]"?qh(e):Zn()}function WGn(e,t){return t==="[number]"?e:Zn()}function KGn(e,t){return t in e?e[t]:Zn()}function emt(e,t){return rs(e)?BGn(e.allOf,t):Yn(e)?GGn(e.anyOf,t):xl(e)?VGn(e.items??[],t):qf(e)?WGn(e.items,t):qs(e)?KGn(e.properties,t):Zn()}function Fhe(e,t){return t.map(n=>emt(e,n))}function Qht(e,t){return qh(Fhe(e,t))}function Ib(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)?Xht(e,t,n):kl(t)?tmt(e,t,n):fe(Ol(t)?Qht(e,Gu(t)):Qht(e,t),n)}var jhe=v(()=>{Nt();jh();kb();ka();Fd();oo();J3();Hhe();Uhe();Xn()});function YGn(e,t,n){return{[t]:Ib(e,[t],vi(n))}}function ZGn(e,t,n){return t.reduce((r,i)=>({...r,...YGn(e,i,n)}),{})}function JGn(e,t,n){return ZGn(e,t.keys,n)}function tmt(e,t,n){let r=JGn(e,t,n);return Qn(r)}var Hhe=v(()=>{jhe();Ro();qu()});var Bh=v(()=>{Hhe();Uhe();J3();jhe()});function i0(e,t){return fe({[Pe]:"Iterator",type:"Iterator",items:e},t)}var nmt=v(()=>{Nt();Ut()});var IL=v(()=>{nmt()});function XGn(e){return globalThis.Object.keys(e).filter(t=>!Bu(e[t]))}function QGn(e,t){let n=XGn(e),r=n.length>0?{[Pe]:"Object",type:"object",required:n,properties:e}:{[Pe]:"Object",type:"object",properties:e};return fe(r,t)}var Or,rmt=v(()=>{Nt();Ut();Xn();Or=QGn});var Pl=v(()=>{rmt()});function Q3(e,t){return fe({[Pe]:"Promise",type:"Promise",item:e},t)}var imt=v(()=>{Nt();Ut()});var $3=v(()=>{imt()});function $Gn(e){return fe(is(e,[Hf]))}function e2n(e){return fe({...e,[Hf]:"Readonly"})}function t2n(e,t){return t===!1?$Gn(e):e2n(e)}function Vu(e,t){let n=t??!0;return Ri(e)?smt(e,n):t2n(e,n)}var qhe=v(()=>{Nt();Ut();kg();Bhe();Xn()});function n2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=Vu(e[r],t);return n}function r2n(e,t){return n2n(e.properties,t)}function smt(e,t){let n=r2n(e,t);return Qn(n)}var Bhe=v(()=>{Ro();qhe()});var XT=v(()=>{Bhe();qhe()});function jd(e,t){return fe(e.length>0?{[Pe]:"Tuple",type:"array",items:e,additionalItems:!1,minItems:e.length,maxItems:e.length}:{[Pe]:"Tuple",type:"array",minItems:e.length,maxItems:e.length},t)}var omt=v(()=>{Nt();Ut()});var xb=v(()=>{omt()});function amt(e,t){return e in t?Hd(e,t[e]):Qn(t)}function i2n(e){return{[e]:ur(e)}}function s2n(e){let t={};for(let n of e)t[n]=ur(n);return t}function o2n(e,t){return Eht(t,e)?i2n(e):s2n(t)}function a2n(e,t){let n=o2n(e,t);return amt(e,n)}function xL(e,t){return t.map(n=>Hd(e,n))}function c2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(t))n[r]=Hd(e,t[r]);return n}function Hd(e,t){let n={...t};return Bu(t)?gc(Hd(e,is(t,[wa]))):JI(t)?Vu(Hd(e,is(t,[Hf]))):Ri(t)?amt(e,t.properties):kl(t)?a2n(e,t.keys):zf(t)?$I(xL(e,t.parameters),Hd(e,t.returns),n):Gf(t)?Hh(xL(e,t.parameters),Hd(e,t.returns),n):BT(t)?QI(Hd(e,t.items),n):GT(t)?i0(Hd(e,t.items),n):rs(t)?yc(xL(e,t.allOf),n):Yn(t)?Sr(xL(e,t.anyOf),n):xl(t)?jd(xL(e,t.items??[]),n):qs(t)?Or(c2n(e,t.properties),n):qf(t)?XI(Hd(e,t.items),n):VT(t)?Q3(Hd(e,t.item),n):t}function u2n(e,t){let n={};for(let r of e)n[r]=Hd(r,t);return n}function cmt(e,t,n){let r=Ol(e)?Gu(e):e,i=t({[Pe]:"MappedKey",keys:r}),s=u2n(r,i);return Or(s,n)}var umt=v(()=>{Ut();kg();_L();TL();vL();KT();Bh();Fd();IL();zu();Pl();Ig();$3();XT();xb();oo();bL();Ahe();Xn()});var Ro=v(()=>{Nht();Ahe();umt()});function l2n(e){return fe(is(e,[wa]))}function d2n(e){return fe({...e,[wa]:"Optional"})}function f2n(e,t){return t===!1?l2n(e):d2n(e)}function gc(e,t){let n=t??!0;return Ri(e)?lmt(e,n):f2n(e,n)}var zhe=v(()=>{Nt();Ut();kg();Ghe();Xn()});function p2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=gc(e[r],t);return n}function h2n(e,t){return p2n(e.properties,t)}function lmt(e,t){let n=h2n(e,t);return Qn(n)}var Ghe=v(()=>{Ro();zhe()});var Ig=v(()=>{Ghe();zhe()});function OL(e,t={}){let n=e.every(i=>qs(i)),r=Ol(t.unevaluatedProperties)?{unevaluatedProperties:t.unevaluatedProperties}:{};return fe(t.unevaluatedProperties===!1||Ol(t.unevaluatedProperties)||n?{...r,[Pe]:"Intersect",type:"object",allOf:e}:{...r,[Pe]:"Intersect",allOf:e},t)}var Vhe=v(()=>{Nt();Ut();Xn()});function m2n(e){return e.every(t=>Bu(t))}function g2n(e){return is(e,[wa])}function dmt(e){return e.map(t=>Bu(t)?g2n(t):t)}function y2n(e,t){return m2n(e)?gc(OL(dmt(e),t)):OL(dmt(e),t)}function X3(e,t={}){if(e.length===1)return fe(e[0],t);if(e.length===0)return Zn(t);if(e.some(n=>vb(n)))throw new Error("Cannot intersect transform types");return y2n(e,t)}var fmt=v(()=>{Ut();Nt();kg();ka();Ig();Vhe();Xn()});var pmt=v(()=>{});function yc(e,t){if(e.length===1)return fe(e[0],t);if(e.length===0)return Zn(t);if(e.some(n=>vb(n)))throw new Error("Cannot intersect transform types");return OL(e,t)}var hmt=v(()=>{Nt();ka();Vhe();Xn()});var Fd=v(()=>{fmt();pmt();hmt()});function zh(...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 fe({[Pe]:"Ref",$ref:t},n)}var mmt=v(()=>{jh();Nt();Ut()});var QT=v(()=>{mmt()});function S2n(e,t){return oi("Awaited",[oi(e,t)])}function b2n(e){return oi("Awaited",[zh(e)])}function E2n(e){return yc(gmt(e))}function _2n(e){return Sr(gmt(e))}function T2n(e){return s0(e)}function gmt(e){return e.map(t=>s0(t))}function s0(e,t){return fe(Bf(e)?S2n(e.target,e.parameters):rs(e)?E2n(e.allOf):Yn(e)?_2n(e.anyOf):VT(e)?T2n(e.item):_s(e)?b2n(e.$ref):e,t)}var ymt=v(()=>{Nt();kb();Fd();oo();QT();Xn()});var e9=v(()=>{ymt()});function Smt(e){let t=[];for(let n of e)t.push(PL(n));return t}function v2n(e){let t=Smt(e);return vht(t)}function R2n(e){let t=Smt(e);return Tht(t)}function A2n(e){return e.map((t,n)=>n.toString())}function w2n(e){return["[number]"]}function k2n(e){return globalThis.Object.getOwnPropertyNames(e)}function I2n(e){return x2n?globalThis.Object.getOwnPropertyNames(e).map(n=>n[0]==="^"&&n[n.length-1]==="$"?n.slice(1,n.length-1):n):[]}function PL(e){return rs(e)?v2n(e.allOf):Yn(e)?R2n(e.anyOf):xl(e)?A2n(e.items??[]):qf(e)?w2n(e.items):qs(e)?k2n(e.properties):WT(e)?I2n(e.patternProperties):[]}var x2n,Whe=v(()=>{bL();Xn();x2n=!1});function O2n(e,t){return oi("KeyOf",[oi(e,t)])}function P2n(e){return oi("KeyOf",[zh(e)])}function N2n(e,t){let n=PL(e),r=C2n(n),i=qh(r);return fe(i,t)}function C2n(e){return e.map(t=>t==="[number]"?Ud():ur(t))}function o0(e,t){return Bf(e)?O2n(e.target,e.parameters):_s(e)?P2n(e.$ref):Ri(e)?bmt(e,t):N2n(e,t)}var Khe=v(()=>{Nt();zu();ZT();kb();QT();Whe();oo();Yhe();Xn()});function M2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=o0(e[r],vi(t));return n}function D2n(e,t){return M2n(e.properties,t)}function bmt(e,t){let n=D2n(e,t);return Qn(n)}var Yhe=v(()=>{Ro();Khe();qu()});var Emt=v(()=>{});var NL=v(()=>{Yhe();Emt();Whe();Khe()});function L2n(e){let t=[];for(let n of e)t.push(...PL(n));return _ht(t)}function U2n(e){return e.filter(t=>!Tb(t))}function F2n(e,t){let n=[];for(let r of e)n.push(...Fhe(r,[t]));return U2n(n)}function j2n(e,t){let n={};for(let r of t)n[r]=X3(F2n(e,r));return n}function _mt(e,t){let n=L2n(e),r=j2n(e,n);return Or(r,t)}var Tmt=v(()=>{Fd();Bh();NL();Pl();bL();Xn()});var Zhe=v(()=>{Tmt()});function t9(e){return fe({[Pe]:"Date",type:"Date"},e)}var vmt=v(()=>{Ut();Nt()});var n9=v(()=>{vmt()});function r9(e){return fe({[Pe]:"Null",type:"null"},e)}var Rmt=v(()=>{Nt();Ut()});var i9=v(()=>{Rmt()});function s9(e){return fe({[Pe]:"Symbol",type:"symbol"},e)}var Amt=v(()=>{Nt();Ut()});var o9=v(()=>{Amt()});function a9(e){return fe({[Pe]:"Undefined",type:"undefined"},e)}var wmt=v(()=>{Nt();Ut()});var c9=v(()=>{wmt()});function u9(e){return fe({[Pe]:"Uint8Array",type:"Uint8Array"},e)}var kmt=v(()=>{Nt();Ut()});var l9=v(()=>{kmt()});function Ob(e){return fe({[Pe]:"Unknown"},e)}var Imt=v(()=>{Nt();Ut()});var a0=v(()=>{Imt()});function H2n(e){return e.map(t=>Jhe(t,!1))}function q2n(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=Vu(Jhe(e[n],!1));return t}function d9(e,t){return t===!0?e:Vu(e)}function Jhe(e,t){return che(e)?d9(wb(),t):lhe(e)?d9(wb(),t):js(e)?Vu(jd(H2n(e))):Tg(e)?u9():qT(e)?t9():Ir(e)?d9(Or(q2n(e)),t):uhe(e)?d9(Hh([],Ob()),t):Hs(e)?a9():dhe(e)?r9():fhe(e)?s9():cL(e)?n0():Al(e)?ur(e):_g(e)?ur(e):Zr(e)?ur(e):Or({})}function xmt(e,t){return fe(Jhe(e,!0),t)}var Omt=v(()=>{EL();kL();n9();KT();zu();i9();Pl();o9();xb();XT();c9();l9();a0();vg();Jc()});var Xhe=v(()=>{Omt()});function Pmt(e,t){return zf(e)?jd(e.parameters,t):Zn(t)}var Nmt=v(()=>{xb();ka();Xn()});var Qhe=v(()=>{Nmt()});function Cmt(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=>ur(s));return Sr(i,{...t,[Ld]:"Enum"})}var Mmt=v(()=>{zu();Ut();oo();Jc()});var $he=v(()=>{Mmt()});function qd(e){return e===pe.False?e:pe.True}function c0(e){throw new tme(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)?qmt(e,t):X.IsIntersect(t)?f9(e,t):X.IsUnion(t)?sme(e,t):X.IsUnknown(t)?Vmt(e,t):X.IsAny(t)?ime(e,t):c0("StructuralRight")}function ime(e,t){return pe.True}function B2n(e,t){return X.IsIntersect(t)?f9(e,t):X.IsUnion(t)&&t.anyOf.some(n=>X.IsAny(n)||X.IsUnknown(n))?pe.True:X.IsUnion(t)?pe.Union:X.IsUnknown(t)||X.IsAny(t)?pe.True:pe.Union}function z2n(e,t){return X.IsUnknown(e)?pe.False:X.IsAny(e)?pe.Union:X.IsNever(e)?pe.True:pe.False}function G2n(e,t){return X.IsObject(t)&&p9(t)?pe.True:ao(t)?co(e,t):X.IsArray(t)?qd(Pr(e.items,t.items)):pe.False}function V2n(e,t){return ao(t)?co(e,t):X.IsAsyncIterator(t)?qd(Pr(e.items,t.items)):pe.False}function W2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsBigInt(t)?pe.True:pe.False}function jmt(e,t){return X.IsLiteralBoolean(e)||X.IsBoolean(e)?pe.True:pe.False}function K2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsBoolean(t)?pe.True:pe.False}function Y2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsConstructor(t)?e.parameters.length>t.parameters.length?pe.False:e.parameters.every((n,r)=>qd(Pr(t.parameters[r],n))===pe.True)?qd(Pr(e.returns,t.returns)):pe.False:pe.False}function Z2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsDate(t)?pe.True:pe.False}function J2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsFunction(t)?e.parameters.length>t.parameters.length?pe.False:e.parameters.every((n,r)=>qd(Pr(t.parameters[r],n))===pe.True)?qd(Pr(e.returns,t.returns)):pe.False:pe.False}function Hmt(e,t){return X.IsLiteral(e)&&mc.IsNumber(e.const)||X.IsNumber(e)||X.IsInteger(e)?pe.True:pe.False}function X2n(e,t){return X.IsInteger(t)||X.IsNumber(t)?pe.True:ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):pe.False}function f9(e,t){return t.allOf.every(n=>Pr(e,n)===pe.True)?pe.True:pe.False}function Q2n(e,t){return e.allOf.some(n=>Pr(n,t)===pe.True)?pe.True:pe.False}function $2n(e,t){return ao(t)?co(e,t):X.IsIterator(t)?qd(Pr(e.items,t.items)):pe.False}function eVn(e,t){return X.IsLiteral(t)&&t.const===e.const?pe.True:ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsString(t)?Gmt(e,t):X.IsNumber(t)?Bmt(e,t):X.IsInteger(t)?Hmt(e,t):X.IsBoolean(t)?jmt(e,t):pe.False}function qmt(e,t){return pe.False}function tVn(e,t){return pe.True}function Dmt(e){let[t,n]=[e,0];for(;X.IsNot(t);)t=t.not,n+=1;return n%2===0?t:Ob()}function nVn(e,t){return X.IsNot(e)?Pr(Dmt(e),t):X.IsNot(t)?Pr(e,Dmt(t)):c0("Invalid fallthrough for Not")}function rVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsNull(t)?pe.True:pe.False}function Bmt(e,t){return X.IsLiteralNumber(e)||X.IsNumber(e)||X.IsInteger(e)?pe.True:pe.False}function iVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsInteger(t)||X.IsNumber(t)?pe.True:pe.False}function Wu(e,t){return Object.getOwnPropertyNames(e.properties).length===t}function Lmt(e){return p9(e)}function Umt(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 eme(e){return Wu(e,0)}function Fmt(e){return Wu(e,0)}function sVn(e){return Wu(e,0)}function oVn(e){return Wu(e,0)}function aVn(e){return p9(e)}function cVn(e){let t=Ud();return Wu(e,0)||Wu(e,1)&&"length"in e.properties&&qd(Pr(e.properties.length,t))===pe.True}function uVn(e){return Wu(e,0)}function p9(e){let t=Ud();return Wu(e,0)||Wu(e,1)&&"length"in e.properties&&qd(Pr(e.properties.length,t))===pe.True}function lVn(e){let t=Hh([wb()],wb());return Wu(e,0)||Wu(e,1)&&"then"in e.properties&&qd(Pr(e.properties.then,t))===pe.True}function zmt(e,t){return Pr(e,t)===pe.False||X.IsOptional(e)&&!X.IsOptional(t)?pe.False:pe.True}function Sc(e,t){return X.IsUnknown(e)?pe.False:X.IsAny(e)?pe.Union:X.IsNever(e)||X.IsLiteralString(e)&&Lmt(t)||X.IsLiteralNumber(e)&&eme(t)||X.IsLiteralBoolean(e)&&Fmt(t)||X.IsSymbol(e)&&Umt(t)||X.IsBigInt(e)&&sVn(t)||X.IsString(e)&&Lmt(t)||X.IsSymbol(e)&&Umt(t)||X.IsNumber(e)&&eme(t)||X.IsInteger(e)&&eme(t)||X.IsBoolean(e)&&Fmt(t)||X.IsUint8Array(e)&&aVn(t)||X.IsDate(e)&&oVn(t)||X.IsConstructor(e)&&uVn(t)||X.IsFunction(e)&&cVn(t)?pe.True:X.IsRecord(e)&&X.IsString(nme(e))?t[Ld]==="Record"?pe.True:pe.False:X.IsRecord(e)&&X.IsNumber(nme(e))&&Wu(t,0)?pe.True:pe.False}function dVn(e,t){return ao(t)?co(e,t):X.IsRecord(t)?Bd(e,t):X.IsObject(t)?(()=>{for(let n of Object.getOwnPropertyNames(t.properties)){if(!(n in e.properties)&&!X.IsOptional(t.properties[n]))return pe.False;if(X.IsOptional(t.properties[n]))return pe.True;if(zmt(e.properties[n],t.properties[n])===pe.False)return pe.False}return pe.True})():pe.False}function fVn(e,t){return ao(t)?co(e,t):X.IsObject(t)&&lVn(t)?pe.True:X.IsPromise(t)?qd(Pr(e.item,t.item)):pe.False}function nme(e){return Rb in e.patternProperties?Ud():Ab in e.patternProperties?Kf():c0("Unknown record key pattern")}function rme(e){return Rb in e.patternProperties?e.patternProperties[Rb]:Ab in e.patternProperties?e.patternProperties[Ab]:c0("Unable to get record value schema")}function Bd(e,t){let[n,r]=[nme(t),rme(t)];return X.IsLiteralString(e)&&X.IsNumber(n)&&qd(Pr(e,r))===pe.True?pe.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(zmt(r,e.properties[i])===pe.False)return pe.False;return pe.True})():pe.False}function pVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Pr(rme(e),rme(t)):pe.False}function hVn(e,t){let n=X.IsRegExp(e)?Kf():e,r=X.IsRegExp(t)?Kf():t;return Pr(n,r)}function Gmt(e,t){return X.IsLiteral(e)&&mc.IsString(e.const)||X.IsString(e)?pe.True:pe.False}function mVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsString(t)?pe.True:pe.False}function gVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsSymbol(t)?pe.True:pe.False}function yVn(e,t){return X.IsTemplateLiteral(e)?Pr(JT(e),t):X.IsTemplateLiteral(t)?Pr(e,JT(t)):c0("Invalid fallthrough for TemplateLiteral")}function SVn(e,t){return X.IsArray(t)&&e.items!==void 0&&e.items.every(n=>Pr(n,t.items)===pe.True)}function bVn(e,t){return X.IsNever(e)?pe.True:X.IsUnknown(e)?pe.False:X.IsAny(e)?pe.Union:pe.False}function EVn(e,t){return ao(t)?co(e,t):X.IsObject(t)&&p9(t)||X.IsArray(t)&&SVn(e,t)?pe.True:X.IsTuple(t)?mc.IsUndefined(e.items)&&!mc.IsUndefined(t.items)||!mc.IsUndefined(e.items)&&mc.IsUndefined(t.items)?pe.False:mc.IsUndefined(e.items)&&!mc.IsUndefined(t.items)||e.items.every((n,r)=>Pr(n,t.items[r])===pe.True)?pe.True:pe.False:pe.False}function _Vn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsUint8Array(t)?pe.True:pe.False}function TVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsVoid(t)?AVn(e,t):X.IsUndefined(t)?pe.True:pe.False}function sme(e,t){return t.anyOf.some(n=>Pr(e,n)===pe.True)?pe.True:pe.False}function vVn(e,t){return e.anyOf.every(n=>Pr(n,t)===pe.True)?pe.True:pe.False}function Vmt(e,t){return pe.True}function RVn(e,t){return X.IsNever(t)?qmt(e,t):X.IsIntersect(t)?f9(e,t):X.IsUnion(t)?sme(e,t):X.IsAny(t)?ime(e,t):X.IsString(t)?Gmt(e,t):X.IsNumber(t)?Bmt(e,t):X.IsInteger(t)?Hmt(e,t):X.IsBoolean(t)?jmt(e,t):X.IsArray(t)?z2n(e,t):X.IsTuple(t)?bVn(e,t):X.IsObject(t)?Sc(e,t):X.IsUnknown(t)?pe.True:pe.False}function AVn(e,t){return X.IsUndefined(e)||X.IsUndefined(e)?pe.True:pe.False}function wVn(e,t){return X.IsIntersect(t)?f9(e,t):X.IsUnion(t)?sme(e,t):X.IsUnknown(t)?Vmt(e,t):X.IsAny(t)?ime(e,t):X.IsObject(t)?Sc(e,t):X.IsVoid(t)?pe.True:pe.False}function Pr(e,t){return X.IsTemplateLiteral(e)||X.IsTemplateLiteral(t)?yVn(e,t):X.IsRegExp(e)||X.IsRegExp(t)?hVn(e,t):X.IsNot(e)||X.IsNot(t)?nVn(e,t):X.IsAny(e)?B2n(e,t):X.IsArray(e)?G2n(e,t):X.IsBigInt(e)?W2n(e,t):X.IsBoolean(e)?K2n(e,t):X.IsAsyncIterator(e)?V2n(e,t):X.IsConstructor(e)?Y2n(e,t):X.IsDate(e)?Z2n(e,t):X.IsFunction(e)?J2n(e,t):X.IsInteger(e)?X2n(e,t):X.IsIntersect(e)?Q2n(e,t):X.IsIterator(e)?$2n(e,t):X.IsLiteral(e)?eVn(e,t):X.IsNever(e)?tVn(e,t):X.IsNull(e)?rVn(e,t):X.IsNumber(e)?iVn(e,t):X.IsObject(e)?dVn(e,t):X.IsRecord(e)?pVn(e,t):X.IsString(e)?mVn(e,t):X.IsSymbol(e)?gVn(e,t):X.IsTuple(e)?EVn(e,t):X.IsPromise(e)?fVn(e,t):X.IsUint8Array(e)?_Vn(e,t):X.IsUndefined(e)?TVn(e,t):X.IsUnion(e)?vVn(e,t):X.IsUnknown(e)?RVn(e,t):X.IsVoid(e)?wVn(e,t):c0(`Unknown left type operand '${e[Pe]}'`)}function Pb(e,t){return Pr(e,t)}var tme,pe,ome=v(()=>{EL();KT();ZT();r0();a0();Og();SL();Ut();jh();_he();tme=class extends Jo{};(function(e){e[e.Union=0]="Union",e[e.True=1]="True",e[e.False=2]="False"})(pe||(pe={}))});function kVn(e,t,n,r,i){let s={};for(let o of globalThis.Object.getOwnPropertyNames(e))s[o]=u0(e[o],t,n,r,vi(i));return s}function IVn(e,t,n,r,i){return kVn(e.properties,t,n,r,i)}function Wmt(e,t,n,r,i){let s=IVn(e,t,n,r,i);return Qn(s)}var ame=v(()=>{Ro();h9();qu()});function xVn(e,t,n,r){let i=Pb(e,t);return i===pe.Union?Sr([n,r]):i===pe.True?n:r}function u0(e,t,n,r,i){return Ri(e)?Wmt(e,t,n,r,i):kl(e)?fe(Kmt(e,t,n,r,i)):fe(xVn(e,t,n,r),i)}var h9=v(()=>{Nt();oo();ome();cme();ame();Xn()});function OVn(e,t,n,r,i){return{[e]:u0(ur(e),t,n,r,vi(i))}}function PVn(e,t,n,r,i){return e.reduce((s,o)=>({...s,...OVn(o,t,n,r,i)}),{})}function NVn(e,t,n,r,i){return PVn(e.keys,t,n,r,i)}function Kmt(e,t,n,r,i){let s=NVn(e,t,n,r,i);return Qn(s)}var cme=v(()=>{Ro();zu();h9();qu()});var Ymt=v(()=>{});var CL=v(()=>{ome();cme();ame();Ymt();h9()});function Zmt(e,t){return l0(JT(e),t)}var ume=v(()=>{m9();Og()});function CVn(e,t){let n=e.filter(r=>Pb(r,t)===pe.False);return n.length===1?n[0]:Sr(n)}function l0(e,t,n={}){return Il(e)?fe(Zmt(e,t),n):Ri(e)?fe(Jmt(e,t),n):fe(Yn(e)?CVn(e.anyOf,t):Pb(e,t)!==pe.False?Zn():e,n)}var m9=v(()=>{Nt();oo();ka();CL();lme();ume();Xn()});function MVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=l0(e[r],t);return n}function DVn(e,t){return MVn(e.properties,t)}function Jmt(e,t){let n=DVn(e,t);return Qn(n)}var lme=v(()=>{Ro();m9()});var dme=v(()=>{lme();ume();m9()});function Xmt(e,t){return d0(JT(e),t)}var fme=v(()=>{g9();Og()});function LVn(e,t){let n=e.filter(r=>Pb(r,t)!==pe.False);return n.length===1?n[0]:Sr(n)}function d0(e,t,n){return Il(e)?fe(Xmt(e,t),n):Ri(e)?fe(Qmt(e,t),n):fe(Yn(e)?LVn(e.anyOf,t):Pb(e,t)!==pe.False?e:Zn(),n)}var g9=v(()=>{Nt();oo();ka();CL();pme();fme();Xn()});function UVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=d0(e[r],t);return n}function FVn(e,t){return UVn(e.properties,t)}function Qmt(e,t){let n=FVn(e,t);return Qn(n)}var pme=v(()=>{Ro();g9()});var hme=v(()=>{pme();fme();g9()});function $mt(e,t){return zf(e)?fe(e.returns,t):Zn(t)}var egt=v(()=>{Nt();ka();Xn()});var mme=v(()=>{egt()});function y9(e){return Vu(gc(e))}var tgt=v(()=>{XT();Ig()});var S9=v(()=>{tgt()});function $T(e,t,n){return fe({[Pe]:"Record",type:"object",patternProperties:{[e]:t}},n)}function gme(e,t,n){let r={};for(let i of e)r[i]=t;return Or(r,{...n,[Ld]:"Record"})}function jVn(e,t,n){return Hht(e)?gme(Gu(e),t,n):$T(e.pattern,t,n)}function HVn(e,t,n){return gme(Gu(Sr(e)),t,n)}function qVn(e,t,n){return gme([e.toString()],t,n)}function BVn(e,t,n){return $T(e.source,t,n)}function zVn(e,t,n){let r=Hs(e.pattern)?Ab:e.pattern;return $T(r,t,n)}function GVn(e,t,n){return $T(Ab,t,n)}function VVn(e,t,n){return $T(mht,t,n)}function WVn(e,t,n){return Or({true:t,false:t},n)}function KVn(e,t,n){return $T(Rb,t,n)}function YVn(e,t,n){return $T(Rb,t,n)}function b9(e,t,n={}){return Yn(e)?HVn(e.anyOf,t,n):Il(e)?jVn(e,t,n):wl(e)?qVn(e.const,t,n):Rg(e)?WVn(e,t,n):Vf(e)?KVn(e,t,n):Wf(e)?YVn(e,t,n):ghe(e)?BVn(e,t,n):Ag(e)?zVn(e,t,n):hhe(e)?GVn(e,t,n):Tb(e)?VVn(e,t,n):Zn(n)}function E9(e){return globalThis.Object.getOwnPropertyNames(e.patternProperties)[0]}function ngt(e){let t=E9(e);return t===Ab?Kf():t===Rb?Ud():Kf({pattern:t})}function _9(e){return e.patternProperties[E9(e)]}var rgt=v(()=>{Nt();Ut();ka();ZT();Pl();r0();oo();Og();SL();Bh();Jc();Xn()});var ML=v(()=>{rgt()});function ZVn(e,t){return t.parameters=DL(e,t.parameters),t.returns=Yf(e,t.returns),t}function JVn(e,t){return t.parameters=DL(e,t.parameters),t.returns=Yf(e,t.returns),t}function XVn(e,t){return t.allOf=DL(e,t.allOf),t}function QVn(e,t){return t.anyOf=DL(e,t.anyOf),t}function $Vn(e,t){return Hs(t.items)||(t.items=DL(e,t.items)),t}function eWn(e,t){return t.items=Yf(e,t.items),t}function tWn(e,t){return t.items=Yf(e,t.items),t}function nWn(e,t){return t.items=Yf(e,t.items),t}function rWn(e,t){return t.item=Yf(e,t.item),t}function iWn(e,t){let n=cWn(e,t.properties);return{...t,...Or(n)}}function sWn(e,t){let n=Yf(e,ngt(t)),r=Yf(e,_9(t)),i=b9(n,r);return{...t,...i}}function oWn(e,t){return t.index in e?e[t.index]:Ob()}function aWn(e,t){let n=JI(t),r=Bu(t),i=Yf(e,t);return n&&r?y9(i):n&&!r?Vu(i):!n&&r?gc(i):i}function cWn(e,t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:aWn(e,t[r])}),{})}function DL(e,t){return t.map(n=>Yf(e,n))}function Yf(e,t){return zf(t)?ZVn(e,t):Gf(t)?JVn(e,t):rs(t)?XVn(e,t):Yn(t)?QVn(e,t):xl(t)?$Vn(e,t):qf(t)?eWn(e,t):BT(t)?tWn(e,t):GT(t)?nWn(e,t):VT(t)?rWn(e,t):qs(t)?iWn(e,t):WT(t)?sWn(e,t):mhe(t)?oWn(e,t):t}function igt(e,t){return Yf(t,ZI(e))}var sgt=v(()=>{j3();a0();S9();XT();Ig();Pl();ML();Jc();Xn()});var yme=v(()=>{sgt()});function ogt(e){return fe({[Pe]:"Integer",type:"integer"},e)}var agt=v(()=>{Nt();Ut()});var Sme=v(()=>{agt()});function uWn(e,t,n){return{[e]:Zf(ur(e),t,vi(n))}}function lWn(e,t,n){return e.reduce((i,s)=>({...i,...uWn(s,t,n)}),{})}function dWn(e,t,n){return lWn(e.keys,t,n)}function cgt(e,t,n){let r=dWn(e,t,n);return Qn(r)}var bme=v(()=>{Ro();ev();zu();qu()});function fWn(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toLowerCase(),n].join("")}function pWn(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toUpperCase(),n].join("")}function hWn(e){return e.toUpperCase()}function mWn(e){return e.toLowerCase()}function gWn(e,t,n){let r=t0(e.pattern);if(!YT(r))return{...e,pattern:ugt(e.pattern,t)};let o=[...wL(r)].map(u=>ur(u)),a=lgt(o,t),c=Sr(a);return Z3([c],n)}function ugt(e,t){return typeof e=="string"?t==="Uncapitalize"?fWn(e):t==="Capitalize"?pWn(e):t==="Uppercase"?hWn(e):t==="Lowercase"?mWn(e):e:e.toString()}function lgt(e,t){return e.map(n=>Zf(n,t))}function Zf(e,t,n={}){return kl(e)?cgt(e,t,n):Il(e)?gWn(e,t,n):Yn(e)?Sr(lgt(e.anyOf,t),n):wl(e)?ur(ugt(e.const,t),n):fe(e,n)}var ev=v(()=>{Nt();Og();bme();zu();oo();Xn()});function dgt(e,t={}){return Zf(e,"Capitalize",t)}var fgt=v(()=>{ev()});function pgt(e,t={}){return Zf(e,"Lowercase",t)}var hgt=v(()=>{ev()});function mgt(e,t={}){return Zf(e,"Uncapitalize",t)}var ggt=v(()=>{ev()});function ygt(e,t={}){return Zf(e,"Uppercase",t)}var Sgt=v(()=>{ev()});var Eme=v(()=>{fgt();bme();ev();hgt();ggt();Sgt()});function yWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Nb(e[i],t,vi(n));return r}function SWn(e,t,n){return yWn(e.properties,t,n)}function bgt(e,t,n){let r=SWn(e,t,n);return Qn(r)}var _me=v(()=>{Ro();T9();qu()});function bWn(e,t){return e.map(n=>Tme(n,t))}function EWn(e,t){return e.map(n=>Tme(n,t))}function _Wn(e,t){let{[t]:n,...r}=e;return r}function TWn(e,t){return t.reduce((n,r)=>_Wn(n,r),e)}function vWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=TWn(n,t);return Or(i,r)}function RWn(e){let t=e.reduce((n,r)=>q3(r)?[...n,ur(r)]:n,[]);return Sr(t)}function Tme(e,t){return rs(e)?yc(bWn(e.allOf,t)):Yn(e)?Sr(EWn(e.anyOf,t)):qs(e)?vWn(e,t,e.properties):Or({})}function Nb(e,t,n){let r=js(t)?RWn(t):t,i=Ol(t)?Gu(t):t,s=_s(e),o=_s(t);return Ri(e)?bgt(e,i,n):kl(t)?Egt(e,t,n):s&&o?oi("Omit",[e,r],n):!s&&o?oi("Omit",[e,r],n):s&&!o?oi("Omit",[e,r],n):fe({...Tme(e,i),...n})}var T9=v(()=>{Nt();z3();dL();kb();zu();Bh();Fd();oo();Pl();vme();_me();Xn();Jc()});function AWn(e,t,n){return{[t]:Nb(e,[t],vi(n))}}function wWn(e,t,n){return t.reduce((r,i)=>({...r,...AWn(e,i,n)}),{})}function kWn(e,t,n){return wWn(e,t.keys,n)}function Egt(e,t,n){let r=kWn(e,t,n);return Qn(r)}var vme=v(()=>{Ro();T9();qu()});var v9=v(()=>{vme();_me();T9()});function IWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Cb(e[i],t,vi(n));return r}function xWn(e,t,n){return IWn(e.properties,t,n)}function _gt(e,t,n){let r=xWn(e,t,n);return Qn(r)}var Rme=v(()=>{Ro();R9();qu()});function OWn(e,t){return e.map(n=>Ame(n,t))}function PWn(e,t){return e.map(n=>Ame(n,t))}function NWn(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function CWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=NWn(n,t);return Or(i,r)}function MWn(e){let t=e.reduce((n,r)=>q3(r)?[...n,ur(r)]:n,[]);return Sr(t)}function Ame(e,t){return rs(e)?yc(OWn(e.allOf,t)):Yn(e)?Sr(PWn(e.anyOf,t)):qs(e)?CWn(e,t,e.properties):Or({})}function Cb(e,t,n){let r=js(t)?MWn(t):t,i=Ol(t)?Gu(t):t,s=_s(e),o=_s(t);return Ri(e)?_gt(e,i,n):kl(t)?Tgt(e,t,n):s&&o?oi("Pick",[e,r],n):!s&&o?oi("Pick",[e,r],n):s&&!o?oi("Pick",[e,r],n):fe({...Ame(e,i),...n})}var R9=v(()=>{Nt();z3();kb();Fd();zu();Pl();oo();Bh();dL();Xn();Jc();wme();Rme()});function DWn(e,t,n){return{[t]:Cb(e,[t],vi(n))}}function LWn(e,t,n){return t.reduce((r,i)=>({...r,...DWn(e,i,n)}),{})}function UWn(e,t,n){return LWn(e,t.keys,n)}function Tgt(e,t,n){let r=UWn(e,t,n);return Qn(r)}var wme=v(()=>{Ro();R9();qu()});var A9=v(()=>{wme();Rme();R9()});function FWn(e,t){return oi("Partial",[oi(e,t)])}function jWn(e){return oi("Partial",[zh(e)])}function HWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=gc(e[n]);return t}function qWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=HWn(t);return Or(r,n)}function vgt(e){return e.map(t=>Rgt(t))}function Rgt(e){return Bf(e)?FWn(e.target,e.parameters):_s(e)?jWn(e.$ref):rs(e)?yc(vgt(e.allOf)):Yn(e)?Sr(vgt(e.anyOf)):qs(e)?qWn(e,e.properties):zT(e)||Rg(e)||Vf(e)||wl(e)||fL(e)||Wf(e)||Ag(e)||pL(e)||hL(e)?e:Or({})}function f0(e,t){return Ri(e)?Agt(e,t):fe({...Rgt(e),...t})}var kme=v(()=>{Nt();kb();Ig();Pl();Fd();oo();QT();kg();Ut();Ime();Xn()});function BWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=f0(e[r],vi(t));return n}function zWn(e,t){return BWn(e.properties,t)}function Agt(e,t){let n=zWn(e,t);return Qn(n)}var Ime=v(()=>{Ro();kme();qu()});var w9=v(()=>{Ime();kme()});function GWn(e,t){return oi("Required",[oi(e,t)])}function VWn(e){return oi("Required",[zh(e)])}function WWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=is(e[n],[wa]);return t}function KWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=WWn(t);return Or(r,n)}function wgt(e){return e.map(t=>kgt(t))}function kgt(e){return Bf(e)?GWn(e.target,e.parameters):_s(e)?VWn(e.$ref):rs(e)?yc(wgt(e.allOf)):Yn(e)?Sr(wgt(e.anyOf)):qs(e)?KWn(e,e.properties):zT(e)||Rg(e)||Vf(e)||wl(e)||fL(e)||Wf(e)||Ag(e)||pL(e)||hL(e)?e:Or({})}function p0(e,t){return Ri(e)?Igt(e,t):fe({...kgt(e),...t})}var xme=v(()=>{Nt();kb();Pl();Fd();oo();QT();Ut();kg();Ome();Xn()});function YWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=p0(e[r],t);return n}function ZWn(e,t){return YWn(e.properties,t)}function Igt(e,t){let n=ZWn(e,t);return Qn(n)}var Ome=v(()=>{Ro();xme()});var k9=v(()=>{Ome();xme()});function JWn(e,t){return t.map(n=>_s(n)?Pme(e,n.$ref):Nl(e,n))}function Pme(e,t){return t in e?_s(e[t])?Pme(e,e[t].$ref):Nl(e,e[t]):Zn()}function XWn(e){return s0(e[0])}function QWn(e){return Ib(e[0],e[1])}function $Wn(e){return o0(e[0])}function e4n(e){return f0(e[0])}function t4n(e){return Nb(e[0],e[1])}function n4n(e){return Cb(e[0],e[1])}function r4n(e){return p0(e[0])}function i4n(e,t,n){let r=JWn(e,n);return t==="Awaited"?XWn(r):t==="Index"?QWn(r):t==="KeyOf"?$Wn(r):t==="Partial"?e4n(r):t==="Omit"?t4n(r):t==="Pick"?n4n(r):t==="Required"?r4n(r):Zn()}function s4n(e,t){return XI(Nl(e,t))}function o4n(e,t){return QI(Nl(e,t))}function a4n(e,t,n){return $I(LL(e,t),Nl(e,n))}function c4n(e,t,n){return Hh(LL(e,t),Nl(e,n))}function u4n(e,t){return yc(LL(e,t))}function l4n(e,t){return i0(Nl(e,t))}function d4n(e,t){return Or(globalThis.Object.keys(t).reduce((n,r)=>({...n,[r]:Nl(e,t[r])}),{}))}function f4n(e,t){let[n,r]=[Nl(e,_9(t)),E9(t)],i=ZI(t);return i.patternProperties[r]=n,i}function p4n(e,t){return _s(t)?{...Pme(e,t.$ref),[so]:t[so]}:t}function h4n(e,t){return jd(LL(e,t))}function m4n(e,t){return Sr(LL(e,t))}function LL(e,t){return t.map(n=>Nl(e,n))}function Nl(e,t){return Bu(t)?fe(Nl(e,is(t,[wa])),t):JI(t)?fe(Nl(e,is(t,[Hf])),t):vb(t)?fe(p4n(e,t),t):qf(t)?fe(s4n(e,t.items),t):BT(t)?fe(o4n(e,t.items),t):Bf(t)?fe(i4n(e,t.target,t.parameters)):zf(t)?fe(a4n(e,t.parameters,t.returns),t):Gf(t)?fe(c4n(e,t.parameters,t.returns),t):rs(t)?fe(u4n(e,t.allOf),t):GT(t)?fe(l4n(e,t.items),t):qs(t)?fe(d4n(e,t.properties),t):WT(t)?fe(f4n(e,t)):xl(t)?fe(h4n(e,t.items||[]),t):Yn(t)?fe(m4n(e,t.anyOf),t):t}function g4n(e,t){return t in e?Nl(e,e[t]):Zn()}function xgt(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:g4n(e,n)}),{})}var Ogt=v(()=>{vg();phe();kg();_L();e9();TL();vL();Bh();KT();Fd();IL();NL();Pl();v9();A9();ka();w9();ML();k9();xb();oo();Ut();Xn()});function Pgt(e){return new Nme(e)}var Nme,Ngt=v(()=>{vg();Ut();Ogt();Nme=class{constructor(t){let n=xgt(t),r=this.WithIdentifiers(n);this.$defs=r}Import(t,n){let r={...this.$defs,[t]:fe(this.$defs[t],n)};return fe({[Pe]:"Import",$defs:r,$ref:t})}WithIdentifiers(t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:{...t[r],$id:r}}),{})}}});var Cme=v(()=>{Ngt()});function Cgt(e,t){return fe({[Pe]:"Not",not:e},t)}var Mgt=v(()=>{Nt();Ut()});var Mme=v(()=>{Mgt()});function Dgt(e,t){return Gf(e)?jd(e.parameters,t):Zn()}var Lgt=v(()=>{xb();ka();Xn()});var Dme=v(()=>{Lgt()});function Ugt(e,t={}){Hs(t.$id)&&(t.$id=`T${y4n++}`);let n=ZI(e({[Pe]:"This",$ref:`${t.$id}`}));return n.$id=t.$id,fe({[Ld]:"Recursive",...n},t)}var y4n,Fgt=v(()=>{j3();Nt();Jc();Ut();y4n=0});var Lme=v(()=>{Fgt()});function jgt(e,t){let n=Zr(e)?new globalThis.RegExp(e):e;return fe({[Pe]:"RegExp",type:"RegExp",source:n.source,flags:n.flags},t)}var Hgt=v(()=>{Nt();Jc();Ut()});var Ume=v(()=>{Hgt()});function S4n(e){return rs(e)?e.allOf:Yn(e)?e.anyOf:xl(e)?e.items??[]:[]}function qgt(e){return S4n(e)}var Bgt=v(()=>{Xn()});var Fme=v(()=>{Bgt()});function zgt(e,t){return Gf(e)?fe(e.returns,t):Zn(t)}var Ggt=v(()=>{Nt();ka();Xn()});var jme=v(()=>{Ggt()});var Vgt=v(()=>{});var Wgt=v(()=>{});var Kgt=v(()=>{Vgt();Wgt()});var Ygt=v(()=>{});var Zgt=v(()=>{Ygt()});function Jgt(e){return new Hme(e)}var Hme,qme,Xgt=v(()=>{Ut();Xn();Hme=class{constructor(t){this.schema=t}Decode(t){return new qme(this.schema,t)}},qme=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 vb(this.schema)?this.EncodeTransform(t,this.schema):this.EncodeSchema(t,this.schema)}}});var Bme=v(()=>{Xgt()});function Qgt(e={}){return fe({[Pe]:e[Pe]??"Unsafe"},e)}var $gt=v(()=>{Nt();Ut()});var zme=v(()=>{$gt()});function eyt(e){return fe({[Pe]:"Void",type:"void"},e)}var tyt=v(()=>{Nt();Ut()});var Gme=v(()=>{tyt()});var Vme={};Ar(Vme,{Any:()=>wb,Argument:()=>kht,Array:()=>XI,AsyncIterator:()=>QI,Awaited:()=>s0,BigInt:()=>n0,Boolean:()=>K3,Capitalize:()=>dgt,Composite:()=>_mt,Const:()=>xmt,Constructor:()=>$I,ConstructorParameters:()=>Pmt,Date:()=>t9,Enum:()=>Cmt,Exclude:()=>l0,Extends:()=>u0,Extract:()=>d0,Function:()=>Hh,Index:()=>Ib,InstanceType:()=>$mt,Instantiate:()=>igt,Integer:()=>ogt,Intersect:()=>yc,Iterator:()=>i0,KeyOf:()=>o0,Literal:()=>ur,Lowercase:()=>pgt,Mapped:()=>cmt,Module:()=>Pgt,Never:()=>Zn,Not:()=>Cgt,Null:()=>r9,Number:()=>Ud,Object:()=>Or,Omit:()=>Nb,Optional:()=>gc,Parameters:()=>Dgt,Partial:()=>f0,Pick:()=>Cb,Promise:()=>Q3,Readonly:()=>Vu,ReadonlyOptional:()=>y9,Record:()=>b9,Recursive:()=>Ugt,Ref:()=>zh,RegExp:()=>jgt,Required:()=>p0,Rest:()=>qgt,ReturnType:()=>zgt,String:()=>Kf,Symbol:()=>s9,TemplateLiteral:()=>Z3,Transform:()=>Jgt,Tuple:()=>jd,Uint8Array:()=>u9,Uncapitalize:()=>mgt,Undefined:()=>a9,Union:()=>Sr,Unknown:()=>Ob,Unsafe:()=>Qgt,Uppercase:()=>ygt,Void:()=>eyt});var nyt=v(()=>{EL();Rhe();_L();TL();e9();kL();Y3();Zhe();Xhe();vL();Qhe();n9();$he();dme();CL();hme();KT();Bh();mme();yme();Sme();Fd();Eme();IL();NL();zu();Ro();Cme();ka();Mme();i9();ZT();Pl();v9();Ig();Dme();w9();A9();$3();XT();S9();ML();Lme();QT();Ume();k9();Fme();jme();r0();o9();Og();Bme();xb();l9();c9();oo();a0();zme();Gme()});var I,ryt=v(()=>{nyt();I=Vme});var Ao=v(()=>{phe();vg();jh();_he();hht();SL();bht();bL();Ut();EL();_L();Rhe();TL();e9();kL();Y3();Zhe();Xhe();vL();Qhe();n9();$he();dme();CL();hme();KT();Bh();mme();yme();Sme();Fd();IL();Eme();NL();zu();Cme();Ro();ka();Mme();i9();ZT();Pl();v9();Ig();Dme();w9();A9();$3();XT();S9();ML();Lme();QT();Ume();k9();Fme();jme();Kgt();Zgt();r0();o9();Og();Bme();xb();l9();c9();oo();a0();zme();Gme();ryt()});var b4n,Wme,Kme=v(()=>{"use strict";Ao();b4n=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}),Wme=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 iyt,He,Ia=v(()=>{"use strict";iyt=Re(V_(),1),He=new iyt.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 syt(){let e=(process.env.HAIKU_FIX_SEVERITY_THRESHOLD||"high").trim().toLowerCase();return UL.includes(e)?Xc(e):Xc("high")}function h0(e){return typeof e!="string"||e.length===0?!0:Xc(e)<=syt()}var I9,UL,oyt,ayt,E4n,_4n,T4n,v4n,x9,Yme,R4n,Bli,FL,jL,cyt=v(()=>{"use strict";Ao();Ia();I9=["adversarial-review","studio-review","engine-review","drift","discovery","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],UL=["blocker","high","medium","low"];oyt="^(?:FB-)?\\d+$",ayt=["iterations","closed_at"],E4n=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}),_4n=I.Object({text:I.String({minLength:1}),at:I.String()},{additionalProperties:!1}),T4n=I.Object({title:I.Optional(I.String({minLength:1,maxLength:120})),origin:I.Optional(I.String({enum:[...I9]})),severity:I.Optional(I.String({enum:[...UL]})),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(E4n),closure_reply:I.Optional(_4n),closure_reply_unread:I.Optional(I.Boolean())},{propertyNames:{not:{enum:[...ayt]}},additionalProperties:!0}),v4n=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}),x9=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:[...UL],description:`How urgent the finding is. REQUIRED \u2014 classify as you file. One of: ${UL.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:[...I9],description:`Source of the feedback. One of: ${I9.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(v4n),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}),Yme=He.compile(x9),R4n=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String()),feedback_id:I.String({pattern:oyt}),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}),Bli=He.compile(R4n),FL=ayt,jL=["title","origin","severity","author","author_type","created_at","source_ref","attachment","inline_anchor","targets"]});var m0,Zme,O9,Jme,P9,Xme,uyt=v(()=>{"use strict";Ao();Ia();m0=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}),Zme=He.compile(m0),O9=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by ask_user_visual_question."}),url:I.Optional(I.String({description:"Question URL. Optional \u2014 primarily used for the browser-launch step."})),auto_open:I.Optional(I.Boolean({description:"Try to open the URL in the default browser when waiting begins (default true). Set to false for remote control / headless / mobile-chat scenarios."}))},{additionalProperties:!1}),Jme=He.compile(O9),P9=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}),Xme=He.compile(P9)});var HL,g0,Qme,lyt=v(()=>{"use strict";Ao();Ia();HL=["force_stage_complete","set_intent_field","reset_drift","mutate_feedback","set_unit_iterations","preview_cursor"],g0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),op:I.String({enum:[...HL],description:"Which admin op to run: force_stage_complete, set_intent_field, reset_drift, mutate_feedback, preview_cursor."}),reason:I.Optional(I.String({description:"Why you're running this admin op \u2014 the cause that led here (e.g. 'cursor stuck on stage `design` after a manual branch edit; force-completing to unblock'). Surfaced verbatim to the user at the top of the confirmation picker so they have the context to approve or cancel. Plain prose, not a status code."})),stage:I.Optional(I.String({description:"Target stage (force_stage_complete, mutate_feedback)."})),field:I.Optional(I.String({description:"intent.md FM key (set_intent_field)."})),value:I.Optional(I.Unsafe({type:["string","array","number","boolean","null","object"],description:"intent.md FM value (set_intent_field)."})),feedback_id:I.Optional(I.String({description:"Feedback ID to mutate (mutate_feedback). For batch mutations, use feedback_ids instead."})),feedback_ids:I.Optional(I.Array(I.String(),{description:"Batch form of feedback_id \u2014 array of FB IDs to mutate in a single call (mutate_feedback). The same `patch` is applied to every FB in the list. Use this instead of firing the picker confirmation per-FB."})),patch:I.Optional(I.Object({},{additionalProperties:!0,description:"FB FM keys to set (mutate_feedback). Example: { closed_at: '2026-...', closed_by: 'manual_review' }."})),fields:I.Optional(I.Object({},{additionalProperties:!0,description:"Batch form of field/value \u2014 object of intent.md FM keys to set in a single call (set_intent_field). Example: { mode: 'autopilot', archived: false }."})),close_open_feedback:I.Optional(I.Boolean({description:'force_stage_complete only. When true, also stamps `closed_at` + `closed_by: "force_complete"` on every open FB on the targeted stages (and on intent scope when the final stage is the target). Open FBs otherwise continue blocking the cursor even after every approval is signed.'})),unit:I.Optional(I.String({description:"Unit slug or filename stem (set_unit_iterations). Example: 'unit-03-my-thing' or 'unit-03'."})),iterations:I.Optional(I.Array(I.Object({hat:I.String({minLength:1}),result:I.String({enum:["advance","reject"]}),at:I.Optional(I.String())},{additionalProperties:!0}),{description:"Explicit iterations[] array to write (set_unit_iterations). Omit to auto-synthesize one `advance` entry per hat in the stage's `hats:` sequence \u2014 the typical recovery shape when a legacy unit has no iterations but its outputs landed."}))},{additionalProperties:!1}),Qme=He.compile(g0)});var y0,$me,dyt=v(()=>{"use strict";Ao();Ia();y0=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}),$me=He.compile(y0)});var Gh,Pg,N9,ege,C9,tge,M9,nge,D9,rge,L9,ige,U9,sge,F9,oge,j9,age,H9,cge,q9,uge,fyt=v(()=>{"use strict";Ao();Ia();Gh=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."})},N9=I.Object({...Pg,state_file:Gh},{additionalProperties:!1}),ege=He.compile(N9),C9=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:Gh},{additionalProperties:!1}),tge=He.compile(C9),M9=I.Object({...Pg,reason:I.String({minLength:1,description:"Explanation for why this feedback is being rejected"}),state_file:Gh},{additionalProperties:!1}),nge=He.compile(M9),D9=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:Gh},{additionalProperties:!1}),rge=He.compile(D9),L9=I.Object({...Pg,state_file:Gh},{additionalProperties:!1}),ige=He.compile(L9),U9=I.Object({...Pg,body:I.String({description:"Full markdown body to write. Replaces the prior body entirely."}),state_file:Gh},{additionalProperties:!1}),sge=He.compile(U9),F9=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:Gh},{additionalProperties:!1}),oge=He.compile(F9),j9=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:Gh},{additionalProperties:!1}),age=He.compile(j9),H9=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:Gh},{additionalProperties:!1}),cge=He.compile(H9),q9=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:Gh},{additionalProperties:!1}),uge=He.compile(q9)});var B9,qL,z9,lge,G9,dge,V9,fge,pyt=v(()=>{"use strict";Ao();Ia();B9=I.Optional(I.String()),qL=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:B9},{additionalProperties:!1}),z9=I.Object({slug:I.String({minLength:1,description:"Intent slug"}),field:I.String({minLength:1,description:"Frontmatter field name to read"}),state_file:B9},{additionalProperties:!1}),lge=He.compile(z9),G9=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:B9},{additionalProperties:!1}),dge=He.compile(G9),V9=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:B9},{additionalProperties:!1}),fge=He.compile(V9)});var wo,hyt,W9,pge,K9,hge,Y9,mge,Z9,gge,BL,zL,J9,yge,X9,Sge,Q9,bge,$9,Ege,eY,_ge,tY,Tge,nY,vge,rY,Rge,iY,Age,sY,wge,oY,kge,S0,Ige,aY,xge,cY,Oge,uY,Pge,myt=v(()=>{"use strict";Ao();Ia();wo=I.Optional(I.String()),hyt=I.Object({state_file:wo},{additionalProperties:!1}),W9=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}),pge=He.compile(W9),K9=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}),hge=He.compile(K9),Y9=I.Object({intent:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),mge=He.compile(Y9),Z9=I.Object({intent:I.String({minLength:1}),name:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),gge=He.compile(Z9),BL=hyt,zL=He.compile(hyt),J9=I.Object({studio:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),yge=He.compile(J9),X9=I.Object({studio:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),Sge=He.compile(X9),Q9=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}),bge=He.compile(Q9),$9=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}),Ege=He.compile($9),eY=I.Object({studio:I.Optional(I.String({description:"Optional: filter to a specific studio"})),state_file:wo},{additionalProperties:!1}),_ge=He.compile(eY),tY=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}),Tge=He.compile(tY),nY=I.Object({intent:I.Optional(I.String({description:"Optional: intent slug for context"})),state_file:wo},{additionalProperties:!1}),vge=He.compile(nY),rY=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}),Rge=He.compile(rY),iY=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}),Age=He.compile(iY),sY=I.Object({action:I.Optional(I.String({enum:["list","plant","check"],description:"Defaults to `list`."})),state_file:wo},{additionalProperties:!1}),wge=He.compile(sY),oY=I.Object({version:I.Optional(I.String({description:"Optional: specific version to extract (e.g. '1.2.0')"})),state_file:wo},{additionalProperties:!1}),kge=He.compile(oY),S0=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}),Ige=He.compile(S0),aY=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}),xge=He.compile(aY),cY=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}),Oge=He.compile(cY),uY=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by `haiku_view`."}),state_file:wo},{additionalProperties:!1}),Pge=He.compile(uY)});var b0,Nge,gyt=v(()=>{"use strict";Ao();Ia();b0=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}),Nge=He.compile(b0)});var E0,Cge,_0,Mge,T0,Dge,v0,Lge,yyt=v(()=>{"use strict";Ao();Ia();E0=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}),Cge=He.compile(E0),_0=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}),Mge=He.compile(_0),T0=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}),Dge=He.compile(T0),v0=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}),Lge=He.compile(v0)});var Syt,R0,Uge,A0,Fge,w0,jge,lY,Hge,dY,qge,k0,Bge,byt=v(()=>{"use strict";Ao();Ia();Syt=I.Optional(I.String()),R0=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}),Uge=He.compile(R0),A0=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}),Fge=He.compile(A0),w0=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}),jge=He.compile(w0),lY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),field:I.String({minLength:1}),state_file:Syt},{additionalProperties:!1}),Hge=He.compile(lY),dY=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:Syt},{additionalProperties:!1}),qge=He.compile(dY),k0=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}),Bge=He.compile(k0)});var fY,zge,pY,Gge,hY,Vge,mY,Wge,gY,Kge,yY,Yge,SY,Zge,Eyt=v(()=>{"use strict";Ao();Ia();fY=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}),zge=He.compile(fY),pY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"})},{additionalProperties:!1}),Gge=He.compile(pY),hY=I.Object({intent:I.String({minLength:1,description:"Intent slug"})},{additionalProperties:!1}),Vge=He.compile(hY),mY=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}),Wge=He.compile(mY),gY=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}),Kge=He.compile(gY),yY=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}),Yge=He.compile(yY),SY=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}),Zge=He.compile(SY)});var bY,Mb,EY,Jge,_Y,Xge,TY,Qge,$ge,vY,eye,RY,tye,AY,nye,wY,rye,kY,iye,IY,sye,I0,oye,_yt=v(()=>{"use strict";Ao();Ia();bY={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."})},Mb=I.Optional(I.String()),EY=I.Object({...bY,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:Mb},{additionalProperties:!1}),Jge=He.compile(EY),_Y=I.Object({...bY,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}),Xge=He.compile(_Y),TY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:Mb},{additionalProperties:!1}),Qge=He.compile(TY),$ge=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."})),vY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:$ge,state_file:Mb},{additionalProperties:!1}),eye=He.compile(vY),RY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:$ge,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:Mb},{additionalProperties:!1}),tye=He.compile(RY),AY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:$ge,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:Mb},{additionalProperties:!1}),nye=He.compile(AY),wY=I.Object({...bY,state_file:Mb},{additionalProperties:!1}),rye=He.compile(wY),kY=I.Object({...bY,state_file:Mb},{additionalProperties:!1}),iye=He.compile(kY),IY=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:Mb},{additionalProperties:!1}),sye=He.compile(IY),I0=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}),oye=He.compile(I0)});var aye,A4n,xY,w4n,GL,x0,k4n,tv,nv,OY,cye=v(()=>{"use strict";Ao();Ia();Kme();aye=["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"],A4n=["draft","ready","failed"],xY=["continuous","discrete","autopilot","discrete-hybrid","quick"],w4n=I.Record(I.String(),I.Union([Wme,I.Null()])),GL=I.Object({title:I.Optional(I.String({minLength:1})),description:I.Optional(I.String()),mode:I.Optional(I.String({enum:[...xY]})),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:[...A4n]})),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:[...aye]}},additionalProperties:!0}),x0=He.compile(GL),k4n=new Set(aye),tv=Object.keys(GL.properties??{}).filter(e=>!k4n.has(e)),nv=aye,OY=["studio","plugin_version","follows"]});var I4n,Tyt=v(()=>{"use strict";Ao();I4n=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 uye,lye,vyt=v(()=>{"use strict";Ao();uye=I.Object({error:I.String({description:"Stable named error code."}),message:I.String({description:"Human-readable remediation guidance."})},{additionalProperties:!0}),lye=I.Object({ok:I.Literal(!0),message:I.String()},{additionalProperties:!0})});var PY,dye,Ryt=v(()=>{"use strict";Ao();PY=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}),dye=Object.keys(PY.properties??{})});var wyt,Ayt,rv,Ng,Db,Jf,kyt=v(()=>{"use strict";Ao();Ia();wyt=["started_at","iterations","reviews","approvals","quality_gates_env_blocked"],Ayt="^[^\\s:,]+(?:/[^\\s:,]+)*$",rv=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:Ayt}),{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:Ayt}),{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:[...wyt]}},additionalProperties:!0}),Ng=He.compile(rv),Db=Object.keys(rv.properties??{}),Jf=wyt});var ji=v(()=>{"use strict";Kme();cyt();uyt();lyt();dyt();fyt();pyt();myt();gyt();yyt();byt();Eyt();_yt();cye();Tyt();vyt();Ryt();kyt()});var Oyt={};Ar(Oyt,{DIR_INVENTORY_SKIP:()=>MY,bodyMatchesStoredHash:()=>VL,bodySha256:()=>Cg,buildApprovalRecord:()=>zd,buildOutputWitnesses:()=>P4n,buildReviewRecord:()=>Cl,fileSha256:()=>O0,isTextBodyExtension:()=>CY,normalizeInputPath:()=>WL,outputSha256:()=>Lb,resolveInputWitnesses:()=>DY});import{createHash as NY}from"node:crypto";import{existsSync as iv,readdirSync as x4n,readFileSync as fye,statSync as Iyt}from"node:fs";import{join as sv}from"node:path";function Cg(e){if(!iv(e))return"";let t=fye(e,"utf8"),n=t;try{n=(0,pye.default)(t).content}catch{n=t}return n.endsWith(` `)||(n=`${n} -`),vZ("sha256").update(n,"utf8").digest("hex")}function vx(e){if(!$T(e))return"";let t=rye(e);return vZ("sha256").update(t).digest("hex")}function UD(e,t){if(!$T(e))return!0;let n=Pg(e);if(n&&n===t)return!0;let r=rye(e,"utf8"),i=r;try{i=(0,iye.default)(r).content}catch{i=r}if(vZ("sha256").update(i,"utf8").digest("hex")===t)return!0;let o=i.endsWith(` -`)?i.slice(0,-1):i;return o===i?!1:vZ("sha256").update(o,"utf8").digest("hex")===t}function ME(e){return $T(e)?AZ(e)?Pg(e):vx(e):""}function AZ(e){let t=e.slice(e.lastIndexOf(".")).toLowerCase();return p3n.has(t)}function h3n(e,t,n){let r={},i=n??Syt(e);for(let s of t){let o=s.startsWith("stages/")?ev(e,s):ev(i,s),a=ME(o);a&&(r[s]=a)}return r}function Syt(e){return ev(e,"..","..","..")}function FD(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 m3n(e){let t={},n=[];try{n=f3n(e)}catch{return t}for(let r of n){if(r.startsWith(".")||RZ.has(r))continue;let i=ev(e,r);try{if(!yyt(i).isFile())continue}catch{continue}let s=vx(i);s&&(t[r]=s)}return t}function wZ(e){let t=e.repoRoot??Syt(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=FD(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=yyt(a).isDirectory()}catch{continue}if(c)n.dirs[s]=m3n(a);else{let u=ME(a);u&&(n.files[s]=u)}}return n}function Pl(e,t){let n={at:new Date().toISOString(),body_sha256:Pg(e)};return t?{...n,input_witnesses:wZ({intentDir:t.intentDir,repoRoot:t.repoRoot,unitInputs:t.unitInputs})}:n}function Hd(e,t){return{at:new Date().toISOString()}}var iye,p3n,RZ,Yf=v(()=>{"use strict";iye=Se(Kt(),1);p3n=new Set([".md",".markdown",".mdx",".txt",".rst",".adoc"]);RZ=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 byt,readFileSync as sye}from"node:fs";import{join as Gh}from"node:path";function g3n(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function oye(e,t){return`${e}:${t}`}function y3n(e){let t=new Map;for(let n of e){let r=oye(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(oye(d,f))}return t}function E3n(e,t){let n=t.slice(t.lastIndexOf(".")).toLowerCase();return n===".md"||n===".markdown"||n===".mdx"?Pg(e):ME(e)}function b3n(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 _3n(e){let t=Gh(e.intentDir,"stages",e.stage,"units",`${e.unit}.md`);if(!tv(t))return;let n=sye(t,"utf8"),i=(0,kZ.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&&Le(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=Pl(t,{intentDir:e.intentDir,unitInputs:a}),l={...o,body_sha256:c.body_sha256,input_witnesses:c.input_witnesses},d={...s,[e.role]:l};Le(t,"reviews",d)}function T3n(e){let t=Gh(e.intentDir,"intent.md");if(!tv(t))return;let n=sye(t,"utf8"),s=(0,kZ.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};Le(t,"approvals",u)}function v3n(e){let t=e.group.slots.map(s=>`- \`${s.unit}\` / role \`${s.role}\``).join(` +`),NY("sha256").update(n,"utf8").digest("hex")}function O0(e){if(!iv(e))return"";let t=fye(e);return NY("sha256").update(t).digest("hex")}function VL(e,t){if(!iv(e))return!0;let n=Cg(e);if(n&&n===t)return!0;let r=fye(e,"utf8"),i=r;try{i=(0,pye.default)(r).content}catch{i=r}if(NY("sha256").update(i,"utf8").digest("hex")===t)return!0;let o=i.endsWith(` +`)?i.slice(0,-1):i;return o===i?!1:NY("sha256").update(o,"utf8").digest("hex")===t}function Lb(e){return iv(e)?CY(e)?Cg(e):O0(e):""}function CY(e){let t=e.slice(e.lastIndexOf(".")).toLowerCase();return O4n.has(t)}function P4n(e,t,n){let r={},i=n??xyt(e);for(let s of t){let o=s.startsWith("stages/")?sv(e,s):sv(i,s),a=Lb(o);a&&(r[s]=a)}return r}function xyt(e){return sv(e,"..","..","..")}function WL(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 N4n(e){let t={},n=[];try{n=x4n(e)}catch{return t}for(let r of n){if(r.startsWith(".")||MY.has(r))continue;let i=sv(e,r);try{if(!Iyt(i).isFile())continue}catch{continue}let s=O0(i);s&&(t[r]=s)}return t}function DY(e){let t=e.repoRoot??xyt(e.intentDir),n={files:{},dirs:{}},r=sv(e.intentDir,"intent.md");if(iv(r)){let i=Cg(r);i&&(n.files["intent.md"]=i)}for(let i of e.unitInputs){if(i==="intent.md")continue;let s=WL(i,e.intentDir);if(s==="intent.md")continue;let o=sv(e.intentDir,s),a=iv(o)?o:sv(t,s);if(!iv(a))continue;let c=!1;try{c=Iyt(a).isDirectory()}catch{continue}if(c)n.dirs[s]=N4n(a);else{let u=Lb(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:DY({intentDir:t.intentDir,repoRoot:t.repoRoot,unitInputs:t.unitInputs})}:n}function zd(e,t){return{at:new Date().toISOString()}}var pye,O4n,MY,Xf=v(()=>{"use strict";pye=Re(Kt(),1);O4n=new Set([".md",".markdown",".mdx",".txt",".rst",".adoc"]);MY=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 ov,readdirSync as Pyt,readFileSync as hye}from"node:fs";import{join as Vh}from"node:path";function C4n(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function mye(e,t){return`${e}:${t}`}function M4n(e){let t=new Map;for(let n of e){let r=mye(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(mye(d,f))}return t}function L4n(e,t){let n=t.slice(t.lastIndexOf(".")).toLowerCase();return n===".md"||n===".markdown"||n===".mdx"?Cg(e):Lb(e)}function U4n(e,t,n){let r=Vh(t,e);if(ov(r))return r;let i=Vh(n,e);if(ov(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=Vh(t,a);if(ov(c))return c}}return null}function F4n(e){let t=Vh(e.intentDir,"stages",e.stage,"units",`${e.unit}.md`);if(!ov(t))return;let n=hye(t,"utf8"),i=(0,LY.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&&Ne(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};Ne(t,"reviews",d)}function j4n(e){let t=Vh(e.intentDir,"intent.md");if(!ov(t))return;let n=hye(t,"utf8"),s=(0,LY.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};Ne(t,"approvals",u)}function H4n(e){let t=e.group.slots.map(s=>`- \`${s.unit}\` / role \`${s.role}\``).join(` `),n=e.group.kind==="input_deletion"||e.currentSha===null?`**File**: \`${e.group.file}\` (no longer present on disk)`:`**File**: \`${e.group.file}\``,r=e.currentSha?`**Current SHA**: \`${e.currentSha}\``:"",i=`**Witnessed at**: ${e.group.since}`;return`_Engine-authored drift FB. The premise that ${e.group.slots.length} signed slot(s) depended on has shifted. Read the file at the path below and classify._ ${n} @@ -652,47 +652,48 @@ 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 Tyt(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=y3n(e.events);n.groups_total=r.length;let i=S3n(e.intentDir),s=i.size>=_yt;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 ${_yt}. 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=b3n(o.file,e.intentDir,t),c=a?E3n(a,o.file):"";for(let m of o.slots){if(m.unit==="(intent)"){c&&(T3n({intentDir:e.intentDir,role:m.role,currentSha:c}),n.slots_restamped++);continue}_3n({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")&&!g3n(o.file)){n.fbs_untracked_skipped=(n.fbs_untracked_skipped??0)+1;continue}let l=oye(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:v3n({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 kZ,_yt,vyt=v(()=>{"use strict";kZ=Se(Kt(),1);ze();Yf();_yt=(()=>{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 A3n,createReadStream as wdi,existsSync as IZ,fsyncSync as kdi,mkdirSync as Idi,openSync as R3n,readdirSync as Ayt,readFileSync as Ryt,readSync as w3n,statSync as k3n,unlinkSync as xdi,writeFileSync as Odi,writeSync as Ndi}from"node:fs";import{dirname as Cdi,join as Cg,relative as Mdi}from"node:path";function nv(e){return e.replace(/^(stages\/[^/]+\/)outputs\//,"$1artifacts/")}function kyt(e){try{if(k3n(e).size<12)return null;let n=Buffer.alloc(16),r=R3n(e,"r");try{w3n(r,n,0,16,0)}finally{A3n(r)}for(let{kind:i,prefix:s}of P3n)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 C3n(e,t){return Cg(e,"stages",t,"baseline-content")}function Iyt(e,t,n){return Cg(C3n(e,t),n)}function M3n(e){return Cg(e,"baseline-content")}function xyt(e,t){return Cg(M3n(e),t)}function LE(e,t){let n=Cg(e,"stages");if(!IZ(n))return 0;let r=i=>{if(!IZ(i))return null;try{let o=JSON.parse(Ryt(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=Ayt(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 xZ(e){let t=Cg(e,"settings.yml");if(!IZ(t))return!1;try{let n=Ryt(t,"utf-8"),{data:r}=(0,wyt.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 Cyt(e){let t=e.repoRoot??Vh(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=M4n(e.events);n.groups_total=r.length;let i=D4n(e.intentDir),s=i.size>=Nyt;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 ${Nyt}. 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=U4n(o.file,e.intentDir,t),c=a?L4n(a,o.file):"";for(let m of o.slots){if(m.unit==="(intent)"){c&&(j4n({intentDir:e.intentDir,role:m.role,currentSha:c}),n.slots_restamped++);continue}F4n({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")&&!C4n(o.file)){n.fbs_untracked_skipped=(n.fbs_untracked_skipped??0)+1;continue}let l=mye(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:H4n({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 LY,Nyt,Myt=v(()=>{"use strict";LY=Re(Kt(),1);ze();Xf();Nyt=(()=>{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 q4n,createReadStream as lfi,existsSync as UY,fsyncSync as dfi,mkdirSync as ffi,openSync as B4n,readdirSync as Dyt,readFileSync as Lyt,readSync as z4n,statSync as G4n,unlinkSync as pfi,writeFileSync as hfi,writeSync as mfi}from"node:fs";import{dirname as yfi,join as Mg,relative as Sfi}from"node:path";function av(e){return e.replace(/^(stages\/[^/]+\/)outputs\//,"$1artifacts/")}function Fyt(e){try{if(G4n(e).size<12)return null;let n=Buffer.alloc(16),r=B4n(e,"r");try{z4n(r,n,0,16,0)}finally{q4n(r)}for(let{kind:i,prefix:s}of Z4n)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 J4n(e,t){return Mg(e,"stages",t,"baseline-content")}function jyt(e,t,n){return Mg(J4n(e,t),n)}function X4n(e){return Mg(e,"baseline-content")}function Hyt(e,t){return Mg(X4n(e),t)}function Ub(e,t){let n=Mg(e,"stages");if(!UY(n))return 0;let r=i=>{if(!UY(i))return null;try{let o=JSON.parse(Lyt(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=Dyt(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 FY(e){let t=Mg(e,"settings.yml");if(!UY(t))return!1;try{let n=Lyt(t,"utf-8"),{data:r}=(0,Uyt.default)(`--- ${n} --- -`);return r.drift_detection===!1}catch{return!1}}function Oyt(e){let t=Cg(e,"stages");if(!IZ(t))return[];try{return Ayt(t,{withFileTypes:!0}).filter(n=>n.isDirectory()).map(n=>n.name)}catch{return[]}}var wyt,I3n,x3n,O3n,N3n,Ddi,Udi,P3n,Ax=v(()=>{"use strict";wyt=Se(Kt(),1);bl();I3n=O.enum(["agent","human-via-mcp","human-implicit"]),x3n=O.enum(["agent-write","human-write-tool","spa-upload","classification-terminal","baseline-init"]),O3n=O.enum(["stage-output","knowledge","unit-output","intent-meta"]),N3n=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:I3n,acknowledged_at:O.string(),acknowledged_via:x3n,stage:O.string().nullable(),tracking_class:O3n}),Ddi=O.record(O.string(),N3n);Udi=64*1024,P3n=[{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 Cyt,readFileSync as L3n,statSync as D3n}from"node:fs";import{basename as Myt,join as $o,relative as OZ}from"node:path";function U3n(e){if(!Jf(e))return[];let t=[];try{t=Cyt(e)}catch{return[]}let n=[];for(let r of t)if(!r.startsWith(".")&&!RZ.has(r))try{D3n($o(e,r)).isFile()&&n.push(r)}catch{}return n}function F3n(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 cye(e){if(!Jf(e))return null;try{let t=L3n(e,"utf8");return(0,Lyt.default)(t).data}catch{return null}}function aye(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 Nyt(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 Pyt(e,t){let n=ME(e);if(!n)return null;if(n===t)return{matches:!0,current:n};let r=vx(e);return r===t?{matches:!0,current:r}:{matches:!1,current:n}}function j3n(e){let t=$o(e,"units");return Jf(t)?Cyt(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>$o(t,n.name)):[]}function H3n(e,t,n){return $o(e,"stages",t,"discovery",`${n}.md`)}function uye(e,t){let n=e.replace(/\{intent-slug\}/g,t),r=`.haiku/intents/${t}/`;return n.startsWith(r)?n.slice(r.length):n}function q3n(e,t,n,r){let i=Myt(e),s=new Set;try{for(let o of no(t,n))o.location&&s.add(uye(o.location,i))}catch{}for(let o of r){let a=cye(o),c=a&&Array.isArray(a.outputs)?a.outputs:[];for(let u of c)typeof u=="string"&&u.length>0&&s.add(uye(u,i))}return s}function B3n(e,t,n,r){return $o(e,"plugin","studios",t,"stages",n,"discovery",`${r}.md`)}function NZ(e){let t=e.repoRoot??$o(e.intentDir,"..","..",".."),n=$o(t,".haiku");if(xZ(n))return{events:[],scanned:0,skipped:0};let r=[],i=0,s=0,o=$o(e.intentDir,"stages",e.stage),a=j3n(o),c=q3n(e.intentDir,e.studio,e.stage,a),u=Myt(e.intentDir),l=p=>c.has(p)||c.has(uye(p,u));for(let p of a){let h=cye(p);if(!h)continue;let m=(p.split("/").pop()??"").replace(/\.md$/,"");if(h.started_at==null){s++;continue}let y=OZ(e.intentDir,p),g=h.reviews??{};for(let[S,b]of Object.entries(g)){i++;let _=aye(b);if(!_)continue;let T=Nyt(b);T&&Jf(p)&&!UD(p,T)&&r.push({unit:m,role:S,kind:"spec",file:y,since:_});let A=F3n(b);if(A){for(let[R,x]of Object.entries(A.files)){let k=$o(e.intentDir,R),N=$o(t,R),P=null;if(Jf(k))P=k;else if(Jf(N))P=N;else{let F=FD(R,e.intentDir);if(F!==R){let V=$o(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}(AZ(P)?!UD(P,x):(()=>{let F=ME(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=$o(e.intentDir,R),N=$o(t,R),P=null;if(Jf(k))P=k;else if(Jf(N))P=N;else{let F=FD(R,e.intentDir),V=F!==R?$o(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=U3n(P);for(let[F,V]of Object.entries(x)){let K=$o(R,F),$=$o(P,F);if(!Jf($)){l(K)||r.push({unit:m,role:S,kind:"input_deletion",file:K,since:_});continue}let B=vx($);B&&B!==V&&!l(K)&&r.push({unit:m,role:S,kind:"input_mutation",file:K,since:_})}for(let F of C){let V=$o(R,F);x[F]===void 0&&!l(V)&&r.push({unit:m,role:S,kind:"input_addition",file:V,since:_})}}}}let E=h.discovery??{};for(let[S,b]of Object.entries(E)){i++;let _=aye(b);if(!_)continue;let T=b,A=H3n(e.intentDir,e.stage,S),R=typeof T.output_sha256=="string"?T.output_sha256:null;if(R){let N=Pyt(A,R);N&&!N.matches&&r.push({unit:m,role:S,kind:"discovery_output",file:OZ(e.intentDir,A),since:_})}let x=B3n(t,e.studio,e.stage,S),k=typeof T.mandate_sha256=="string"?T.mandate_sha256:null;if(k){let N=Pyt(x,k);N&&!N.matches&&r.push({unit:m,role:S,kind:"discovery_mandate",file:OZ(t,x),since:_})}}}let d=$o(e.intentDir,"intent.md"),f=cye(d);if(f){let p=f.approvals??{},h=OZ(e.intentDir,d);for(let[m,y]of Object.entries(p)){i++;let g=aye(y);if(!g)continue;let E=Nyt(y);E&&(UD(d,E)||r.push({unit:"(intent)",role:m,kind:"spec",file:h,since:g}))}}return{events:r,scanned:i,skipped:s}}var Lyt,lye=v(()=>{"use strict";Lyt=Se(Kt(),1);Kn();Ax();Yf()});function Rx(e,t={}){let n=`haiku/${e}/main`;if(!Ae())return{applicable:!1,defaultBranch:"",intentMain:n,merged:!0};let r=Yo();if(!r||!Nt(n))return{applicable:!1,defaultBranch:r,intentMain:n,merged:!0};let i=t.localOnly?Du(n,r)||Du(n,`origin/${r}`):Zc(n,r);return{applicable:!0,defaultBranch:r,intentMain:n,merged:i}}function jD(e,t={}){let n=Rx(e,t);return n.applicable&&!n.merged}var HD=v(()=>{"use strict";yr();SE()});var Ix={};Rr(Ix,{__testOnly:()=>X3n,computeElaborateSignals:()=>kx,derivePosition:()=>Xf,findCurrentStage:()=>ai,intentReviewRoles:()=>LZ,isBriefEnabled:()=>jyt,isReflectionEnabled:()=>sv,isStageComplete:()=>wx,listUnitPaths:()=>ov,nextHatForUnit:()=>iv,pendingApprovalSlots:()=>V3n,pendingReviewSlots:()=>z3n,readFm:()=>Xc,serializeElaborateSignals:()=>hye,stageOwesBrief:()=>Byt,stageOwesObservations:()=>fye,stageRoleLists:()=>DZ,unitName:()=>MZ,walkFeedbackTrack:()=>pye});import{existsSync as xa,readdirSync as qD,readFileSync as PZ,writeFileSync as Dyt}from"node:fs";import{basename as Fyt,join as Gr}from"node:path";function G3n(e){let t=Gr(e.intentDir,"intent.md");if(xa(t))try{let n=PZ(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,Dyt(t,rv.default.stringify(r.content,i))):u===!0&&(delete c[o],Object.keys(c).length===0?delete i[s]:i[s]=c,Dyt(t,rv.default.stringify(r.content,i)))}catch{}}function sv(e){let t=Gr(e,"intent.md");if(!xa(t))return!0;try{let n=PZ(t,"utf8"),i=(0,rv.default)(n).data;return!(i.reflection===!1||i.autotune===!1)}catch{return!0}}function jyt(e){let t=Gr(e,"intent.md");if(!xa(t))return!0;try{let n=PZ(t,"utf8");return(0,rv.default)(n).data.brief!==!1}catch{return!0}}function Xc(e){if(!xa(e))return null;try{let t=PZ(e,"utf8"),n=(0,rv.default)(t);return{data:n.data,body:n.content}}catch{return null}}function Hyt(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 DE(e){return Array.isArray(e.iterations)?e.iterations??[]:[]}function CZ(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function qyt(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function MZ(e){return Fyt(e).replace(/\.md$/,"")}function ov(e){let t=Gr(e,"units");return xa(t)?qD(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>Gr(t,n.name)).sort():[]}function Uyt(e){let t=Gr(e,"feedback");return xa(t)?qD(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=DE(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 z3n(e,t){let n=qyt(e);return t.filter(r=>!n[r])}function V3n(e,t){let n=CZ(e);return t.filter(r=>!n[r])}function W3n(e,t,n){let r=Object.keys(_l(e,t)).sort();return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...r,"user"]}function K3n(e){return typeof e.started_at=="string"&&e.started_at.length>0}function Z3n(e,t){let n=CZ(e);for(let r of t)if(!n[r])return!1;return!0}function Y3n(e,t){if(Z3n(e,t))return!0;let n=K3n(e),r=DE(e);return n&&r.length===0?(Array.isArray(e.outputs)?e.outputs:[]).length===0:!1}function J3n(e,t,n,r){let i=Gr(e,"stages",n,"units");if(!xa(i))return!1;let s=qD(i).filter(c=>c.endsWith(".md"));if(s.length===0||bs(t,n).length===0)return!1;let a=W3n(t,n,r);for(let c of s){let u=Xc(Gr(i,c))?.data;if(!u||!Y3n(u,a))return!1}return!0}function wx(e,t,n,r){return J3n(e,t,n,r)}function fye(e,t){return sv(e)?!xa(Gr(e,"stages",t,"observations.md")):!1}function Byt(e,t,n){return!(!jyt(e)||xa(Gr(e,"stages",t,"BRIEF.md"))||n)}function ai(e,t,n){let r=n??Gr(ve(),"intents",e),i=Gr(r,"intent.md"),s=Xc(i)?.data??{},o=wn(s,t);if(o.length===0)return null;let a=typeof s?.mode=="string"&&s.mode.length>0?s.mode:"continuous";for(let c of o)if(!wx(r,t,c,a))return c;return null}function pye(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=Gyt(E,S,n);if(!b)return null;if(b.kind!=="start_feedback_hat")return b;let _=Xc(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=Uyt(Gr(t,"stages",E));for(let b of S){let _=u(E,b);if(_)return _}}let l=Uyt(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(!xa(T))continue;let A=qD(T).filter(x=>{if(!x.endsWith(".md"))return!1;let k=/^(\d+)/.exec(x);return k!=null&&Number.parseInt(k[1],10)===S}),R=!1;for(let x of A){let k=Xc(Gr(T,x))?.data;if(k&&Hyt(k)){R=!0;break}}if(R){_=!1;break}}_&&p.push(E)}if(p.length===0||!p.some(E=>E.inFlight||ax(E.severity)))return null;let y=[...p].sort((E,S)=>Jc(E.severity)-Jc(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 Gyt(e,t,n){let r=Xc(t);if(!r)return null;let i=r.data;if(Hyt(i))return null;let s=zyt(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=DE(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=DE(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 zyt(e){let t=Fyt(e).match(/^(\d+)-/);return t?`FB-${t[1].padStart(3,"0")}`:null}function Vyt(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:MZ(A),fm:Xc(A)?.data??{}})).filter(A=>A.fm),u=bs(r,i),l=_l(r,i),d=Object.keys(l).sort(),{reviewRoles:f,approvalRoles:p}=DZ(r,i,s,d),h=kx({slug:t,studio:r,stage:i,stageDir:o,unitNames:c.map(A=>A.name),mode:s});if(h.length>0){if(QL(r,i)&&c.length===0&&!xa(Gr(o,"elaboration.md"))){let A=wn(Xc(Gr(n,"intent.md"))?.data??{},r);return{kind:"elaborate_loop",stage:i,signals_unmet:h,optional_offer:!0,dependents:Gpe(r,i,A)}}return{kind:"elaborate_loop",stage:i,signals_unmet:h}}{let A=wn(Xc(Gr(n,"intent.md"))?.data??{},r);if(!(A.length>0&&A[0]===i)){let x=c.filter(k=>!("inputs"in k.fm)).map(k=>k.name);if(x.length>0)return{kind:"unit_inputs_not_declared",stage:i,units:x}}}{let A=[],R=null;for(let x of f){let k=c.filter(N=>N.fm.started_at!=null||DE(N.fm).length>0?!1:!qyt(N.fm)[x]).map(N=>N.name);if(k.length!==0){if(x==="user"){R=k;continue}if(dye.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||DE(k.fm).length>0);if(Byt(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=DE(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(Xc(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:DE(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=>!CZ(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(dye.has(R)){if(A.length>0){let k=A[0];return{kind:"dispatch_approval",stage:i,dispatches:A,role:k.role,units:k.units}}return R==="quality_gates"?{kind:"dispatch_quality_gates",stage:i,units:x}:{kind:"dispatch_approval",stage:i,dispatches:[{role:R,units:x}],role:R,units:x}}A.push({role:R,units:x})}}if(A.length>0){let R=A[0];return{kind:"dispatch_approval",stage:i,dispatches:A,role:R.role,units:R.units}}}if(sv(n)){let A=Gr(o,"observations.md");if(!xa(A))return{kind:"record_observations",stage:i}}return{kind:"complete_stage",stage:i}}function Xf(e){let{slug:t,intentDir:n,studio:r}=e,i=Gr(n,"intent.md"),s=Xc(i),o=typeof s?.data.mode=="string"&&s.data.mode.length>0?s.data.mode:"continuous",a;if(s&&typeof s.data.sealed_at=="string"&&s.data.sealed_at.length>0&&(a=Rx(t),!a.applicable||a.merged))return{track:"sealed",action:{kind:"sealed"}};if(s&&o!=="autopilot"&&!(typeof s.data.verified_at=="string"?s.data.verified_at:"")){let d=wn(s.data,r)[0]??"",f=d?Gr(n,"stages",d):"",p=f&&xa(f)?ov(f).length>0:!1;if(ai(t,r,n)===d&&!p)return{track:"intent",action:{kind:"elaborate_loop",signals_unmet:[{signal:"verify_conversation"}]}}}let c=ai(t,r,n);if(c){let u=NZ({intentDir:n,stage:c,studio:r});if(u.events.length>0){let l=Tyt({events:u.events,intentDir:n,stage:c,slug:t});s&&G3n({intentDir:n,stage:c,tripped:l.cascade_alarm_tripped})}}{let u=s?.data??{},l=pye({intentDir:n,studio:r,intent:u,currentStage:c??wn(u,r).slice(-1)[0]??""});if(l)return{track:"feedback",action:l}}if(c){let u=Vyt({slug:t,intentDir:n,studio:r,stage:c,mode:o});return u!==null?{track:"intent",action:u}:{track:"noop",action:null}}if(s){let u=CZ(s.data),l=Object.keys(mg(r)).sort(),d=LZ(o,l),f=[],p=!1;for(let m of d)if(!u[m]){if(m==="user"){p=!0;continue}if(dye.has(m))return f.length>0?{track:"intent",action:{kind:"intent_review",role:f[0].role,dispatches:f}}:{track:"intent",action:{kind:"intent_review",role:m,dispatches:[{role:m}]}};f.push({role:m})}if(f.length>0)return{track:"intent",action:{kind:"intent_review",role:f[0].role,dispatches:f}};if(!u.intent_quality_gates)return{track:"intent",action:{kind:"dispatch_quality_gates",stage:"",units:[],scope:"intent"}};if(p)return{track:"intent",action:{kind:"intent_review",role:"user",dispatches:[{role:"user"}]}};if(s.data.sealed_at==null&&sv(n)){let m=Gr(n,"reflection.md");if(!xa(m))return{track:"intent",action:{kind:"record_reflection"}}}let h=a??Rx(t);if(h.applicable&&!h.merged)return{track:"intent",action:{kind:"pending_seal",default_branch:h.defaultBranch}};if(s.data.sealed_at==null)return{track:"intent",action:{kind:"seal_intent"}}}return{track:"sealed",action:{kind:"sealed"}}}function LZ(e,t=[]){let n=["spec","continuity","cross-stage-consistency"],r=t.filter(i=>!n.includes(i));return[...n,...r,"user"]}function DZ(e,t,n,r){let s=["continuity","cross-stage-consistency",...r??Object.keys(_l(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 kx(e){let{slug:t,studio:n,stage:r,stageDir:i,unitNames:s,mode:o}=e,a=[],c=Gr(i,"elaboration.md"),u=xa(c)?Xc(c)?.data??{}:null,l=o==="autopilot";!l&&u===null&&s.length===0&&a.push({signal:"conversation"}),!l&&u!==null&&(typeof u.verified_at=="string"&&u.verified_at||a.push({signal:"verify_conversation"}));let d=no(n,r).filter(f=>f.kind==="discovery").sort((f,p)=>f.name.localeCompare(p.name));for(let f of d){if(s.length===0&&!f.tool||!f.required)continue;if(!f.location){console.error(`[haiku] Studio configuration error: discovery template '${f.name}' in stage '${r}' is required but declares no 'location:' field. The gate is being skipped \u2014 fix the template.`);continue}let p=f.location.replace(/\{intent-slug\}/g,t),h=Gr(process.cwd(),p);(p.endsWith("/")?xa(h)&&qD(h).filter(y=>y!==".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 hye(e){return e.map(t=>t.signal==="discovery"?`discovery:${t.agent}`:t.signal)}var rv,dye,X3n,Oa=v(()=>{"use strict";rv=Se(Kt(),1);ji();ze();Kn();gK();ns();vyt();lye();HD();dye=new Set(["spec","quality_gates","user"]);X3n={walkIntentTrack:Vyt,walkFeedbackTrack:pye,nextActionForFeedback:Gyt,parseFbIdFromFilename:zyt}});var Wyt,BD,mye=v(()=>{"use strict";Wyt=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"]),BD=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 e4n(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 t4n(e,t){let n=t.toLowerCase(),r=new RegExp(`<${n}\\b[^>]*/?>`,"gi");return e.replace(r,"")}function n4n(e){return e.replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function r4n(e){return e.replace(/\s+(?:formaction|srcdoc|xlink:href)\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function i4n(e){return e.replace(/\b(href|src)\s*=\s*(["']?)([^"'\s>]+)/gi,(t,n,r,i)=>Zyt.test(i.trim())?`${n}=${r||'"'}#${r||'"'}`:t)}function s4n(e){return e.replace(/(!?\[[^\]]*\])\(([^)]+)\)/g,(t,n,r)=>Zyt.test(r.trim())?`${n}(#)`:t)}function Kyt(e){let t=e;for(let n of Q3n)t=e4n(t,n);for(let n of $3n)t=t4n(t,n);return t=n4n(t),t=r4n(t),t=i4n(t),t=s4n(t),t}function cv(e){if(typeof e!="string")return"";let t=e;for(let n=0;n<5;n++){let r=Kyt(t);if(r===t)return r;t=r}return Kyt(t)}var Q3n,$3n,Zyt,gye=v(()=>{"use strict";Q3n=["script","iframe","object","style","form"],$3n=["embed"],Zyt=/^(?:javascript|vbscript|data:text\/html|data:text\/javascript|data:application\/(?:java|ecma)script|data:image\/svg\+xml)/i});import{randomBytes as o4n}from"node:crypto";function xx(){let e=c4n();return u4n(e)}function c4n(){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=o4n(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 u4n(e){let t=0;for(;t0n;){let i=Number(n%58n);n=n/58n,r=a4n[i]+r}return"1".repeat(t)+r}var a4n,Yyt=v(()=>{"use strict";a4n="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"});var wye={};Rr(wye,{_runPresenceSweepForTests:()=>h4n,beginPresenceWatch:()=>yye,clearHeartbeat:()=>UZ,clearPreviousReviewSnapshot:()=>tSt,createDesignDirectionSession:()=>Tye,createPickerSession:()=>vye,createQuestionSession:()=>_ye,createSession:()=>FZ,createViewSession:()=>Aye,deleteSession:()=>Mx,endPresenceWatch:()=>Sye,findLiveReviewSessionForIntent:()=>WD,getPreviousReviewSnapshot:()=>bye,getSession:()=>$t,hasAttachedReviewSessionForIntent:()=>KD,hasPresenceLost:()=>Eye,isBrowserAttached:()=>lv,notifySessionUpdate:()=>Cx,recordHeartbeat:()=>zD,setPreviousReviewSnapshot:()=>eSt,updateDesignDirectionSession:()=>YD,updatePickerSession:()=>y4n,updateQuestionSession:()=>ZD,updateSession:()=>Cl,updateViewSession:()=>Rye,waitForSession:()=>uv});import{EventEmitter as l4n}from"node:events";function yye(e,t={}){Px.set(e,t.startedAt??Date.now())}function Sye(e){Px.delete(e)}function zD(e){return Hi.has(e)?(Nx.set(e,Date.now()),Px.delete(e),UE.delete(e)&&console.error(`[haiku] Presence restored for session ${e}`),!0):!1}function Eye(e){return UE.has(e)}function UZ(e){Nx.delete(e),UE.delete(e),Px.delete(e)}function Jyt(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 Xyt(e,t){UE.has(e)||(UE.add(e),console.error(`[haiku] Presence lost for session ${e} \u2014 ${t}`),Ox.emit(`session:${e}`))}function $yt(){let e=Date.now();for(let[t,n]of Nx){if(e-n<=d4n)continue;let r=Hi.get(t);if(!r){Nx.delete(t),UE.delete(t);continue}Jyt(r)&&Xyt(t,`no heartbeat in ${Math.round((e-n)/1e3)}s`)}for(let[t,n]of Px){if(Nx.has(t)||e-n<=p4n)continue;let r=Hi.get(t);if(!r){Px.delete(t);continue}Jyt(r)&&Xyt(t,`SPA never opened (no heartbeat in the first ${Math.round((e-n)/1e3)}s)`)}}function h4n(){$yt()}function Cx(e){Ox.emit(`session:${e}`)}function uv(e,t=1800*1e3,n){return new Promise((r,i)=>{let s=setTimeout(()=>{Ox.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),Ox.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}),Ox.once(`session:${e}`,o)})}function bye(e){return GD.get(e)}function eSt(e,t){GD.set(e,t)}function tSt(e){GD.delete(e)}function Qyt(e){if(GD.has(e)){for(let t of Hi.values())if(t.session_type==="review"&&t.intent_dir===e)return;GD.delete(e)}}function VD(){let e=Date.now();for(let[t,n]of Qf)if(e-n>g4n){let r=Hi.get(t);Hi.delete(t),Qf.delete(t),UZ(t),r?.session_type==="review"&&Qyt(r.intent_dir)}for(;Hi.size>=m4n;){let t=Qf.entries().next().value;if(!t)break;let n=Hi.get(t[0]);Hi.delete(t[0]),Qf.delete(t[0]),UZ(t[0]),n?.session_type==="review"&&Qyt(n.intent_dir)}}function FZ(e){VD();let t=xx(),n={...e,session_type:"review",session_id:t,status:"pending",decision:"",feedback:""};return Hi.set(t,n),Qf.set(t,Date.now()),n}function _ye(e){VD();let t=xx(),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 Tye(e){VD();let t=xx(),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 vye(e){VD();let t=xx(),n={...e,session_type:"picker",session_id:t,status:"pending",selection:null};return Hi.set(t,n),Qf.set(t,Date.now()),n}function y4n(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="picker"))return Object.assign(n,t),Cx(e),n}function Aye(e){VD();let t=xx(),n={...e,session_type:"view",session_id:t,status:"open"};return Hi.set(t,n),Qf.set(t,Date.now()),n}function Rye(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="view"))return Object.assign(n,t),Cx(e),n}function $t(e){return Hi.get(e)}function WD(e){let t,n=0;for(let[r,i]of Hi){if(i.session_type!=="review"||i.intent_slug!==e||i.ad_hoc||UE.has(r))continue;let s=Qf.get(r)??0;s>n&&(t=i,n=s)}return t}function lv(e){if(!Hi.has(e)||UE.has(e))return!1;let t=Nx.get(e);return t?Date.now()-t<=S4n:!1}function KD(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 Mx(e){let t=Hi.delete(e);return Qf.delete(e),UZ(e),t}function Cl(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="review")){if(Object.assign(n,t),t.status==="decided"&&!n.ad_hoc)if(n.decision==="changes_requested"){let r=n.parsedIntent,i=n.parsedUnits??[],s={};for(let o of i)o?.slug&&typeof o.rawContent=="string"&&(s[o.slug]=o.rawContent);eSt(n.intent_dir,{feedback:n.feedback??"",reviewedAt:new Date().toISOString(),intentRawContent:r?.rawContent??"",unitRawContents:s})}else tSt(n.intent_dir);return Cx(e),n}}function ZD(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="question"))return Object.assign(n,t),Cx(e),n}function YD(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="design_direction"))return Object.assign(n,t),Cx(e),n}var Ox,d4n,f4n,Nx,UE,p4n,Px,Hi,GD,m4n,g4n,Qf,S4n,Qc=v(()=>{"use strict";Yyt();Ox=new l4n;Ox.setMaxListeners(200);d4n=12e4,f4n=5e3,Nx=new Map,UE=new Set,p4n=6e4,Px=new Map;setInterval($yt,f4n).unref();Hi=new Map,GD=new Map;m4n=100,g4n=14400*1e3,Qf=new Map;S4n=3e4});import{spawn as E4n}from"node:child_process";import{existsSync as Lx,readFileSync as iSt}from"node:fs";import{createServer as b4n}from"node:net";import{isAbsolute as _4n,join as dv}from"node:path";function v4n(){return new Promise((e,t)=>{let n=b4n();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 A4n(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 R4n(e,t){let n=Date.now()+jZ;for(;Date.now()setTimeout(r,oSt))}throw new Error(`Dev server did not bind to port ${e} within ${jZ}ms`)}async function w4n(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 k4n(e,t){let n=Date.now()+jZ;for(;Date.now()setTimeout(r,oSt))}throw new Error(`Process did not return a healthy ready_url (${e}) within ${jZ}ms`)}function aSt(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 cSt(e){let t=dv(e,"package.json");if(!Lx(t))return null;let n;try{n=JSON.parse(iSt(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=I4n(e);return{command:s==="npm"?["npm","run",i]:[s,"run",i],cwd:e,description:`${s} run ${i}`}}function I4n(e){return Lx(dv(e,"bun.lockb"))||Lx(dv(e,"bun.lock"))?"bun":Lx(dv(e,"pnpm-lock.yaml"))?"pnpm":Lx(dv(e,"yarn.lock"))?"yarn":"npm"}function Lg(e){return new Error(`[${uSt}] ${e}`)}function nSt(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 kye(e){let t=dv(e,uSt);if(!Lx(t))return null;let n;try{n=(0,sSt.default)(iSt(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 _4n(s)?s:dv(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:nSt(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:nSt(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 XD(e){let t=kye(e);return t?t.processes.filter(n=>n.service||n.requires_tool!==void 0&&n.name!==t.primary):[]}function x4n(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 Iye(e,t,n){if(t.length===0)throw new Error("spawnBootGroup: at least one process spec required");let r=x4n(t),i=new Map;for(let l of t)i.set(l.name,l.no_port?null:await v4n());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`),Dx(e)},T4n);o.unref?.();let a={sessionId:e,processes:[],primaryName:n,primaryPort:i.get(n)??null,startedAt:Date.now(),ttlTimer:o};JD.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=E4n(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 k4n(E)}else await R4n(d)}}catch(l){throw Dx(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 lSt(e,t){let n={name:"app",command:t.command,cwd:t.cwd};return(await Iye(e,[n],"app")).primary}function Dx(e){let t=JD.get(e);if(!t)return!1;clearTimeout(t.ttlTimer),JD.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 dSt(){let e=0;for(let[t]of JD)$t(t)||(Dx(t),e+=1);return e}function O4n(){if(rSt)return;rSt=!0;let e=()=>{for(let[t]of JD)Dx(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var sSt,JD,T4n,jZ,oSt,uSt,rSt,QD=v(()=>{"use strict";sSt=Se(Kt(),1);Qc();JD=new Map,T4n=1800*1e3,jZ=60*1e3,oSt=200;uSt=".haiku/boot.md";rSt=!1;O4n()});import{lstatSync as xye,mkdirSync as N4n,realpathSync as fSt,renameSync as P4n,unlinkSync as C4n}from"node:fs";import{isAbsolute as M4n,relative as L4n,resolve as HZ,sep as qZ}from"node:path";function fv(e,t,n,r){let i=HZ(e),s=HZ(t),o=HZ(r),a;try{if(xye(i).isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`intent root '${i}' is itself a symlink \u2014 refusing`};a=fSt(i)}catch(d){return{ok:!1,code:"parent_open_failed",detail:`cannot stat intent root: ${Ux(d)}`}}if(s!==i&&!s.startsWith(`${i}${qZ}`))return{ok:!1,code:"parent_chain_escape",detail:`parent '${s}' is not inside intent root '${i}'`};if(!o.startsWith(`${s}${qZ}`))return{ok:!1,code:"parent_chain_escape",detail:`dest '${o}' is not directly below parent '${s}'`};let c=L4n(i,s),u=c===""?[]:c.split(qZ),l=i;for(let d of u){if(d===""||d==="."||d===".."||M4n(d))return{ok:!1,code:"parent_chain_escape",detail:`chain segment '${d}' is invalid`};l=HZ(l,d);try{let f=xye(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{N4n(l)}catch(h){if(h.code==="EEXIST")try{let y=xye(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: ${Ux(y)}`}}else return{ok:!1,code:"parent_open_failed",detail:`mkdir '${l}' failed: ${Ux(h)}`}}else return{ok:!1,code:"parent_open_failed",detail:`lstat '${l}' failed: ${Ux(f)}`}}}try{let d=fSt(s);if(d!==a&&!d.startsWith(`${a}${qZ}`))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: ${Ux(d)}`}}try{P4n(n,o)}catch(d){return{ok:!1,code:"rename_failed",detail:`rename '${n}' \u2192 '${o}' failed: ${Ux(d)}`}}return{ok:!0}}function Ux(e){return e instanceof Error?e.message:String(e)}function Fx(e){try{C4n(e)}catch{}}var BZ=v(()=>{"use strict"});var n1={};Rr(n1,{applyFeedbackInvalidations:()=>Nye,drainPendingDispatches:()=>F4n,stampSingleDispatch:()=>Oye,stashPendingDispatch:()=>D4n,stashPendingIntentReview:()=>U4n});import{existsSync as $D,readdirSync as hSt,readFileSync as e1}from"node:fs";import{join as Dg}from"node:path";function t1(e){let t=Dg(ve(),"intents",e,"intent.md");if(!$D(t))return null;let n=e1(t,"utf8"),r=re(n);return{path:t,fm:r.data||{}}}function WZ(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function mSt(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function D4n(e,t,n,r,i){let s=t1(e);if(!s)return;let o=t==="review"?zZ:VZ,a={...WZ(s.fm,o)},c={...a[n]??{}};c[r]={dispatched_at:new Date().toISOString(),units:[...i]},a[n]=c,Le(s.path,o,a)}function U4n(e,t){if(t==="user")return;let n=t1(e);if(!n)return;let r={...mSt(n.fm,GZ)};r[t]={dispatched_at:new Date().toISOString()},Le(n.path,GZ,r)}function gSt(e){let{intentDir:t,stage:n,role:r,units:i,dispatchedAt:s,kind:o}=e,a=[],c=[];for(let u of i){let l=Dg(t,"stages",n,"units",`${u}.md`);if(!$D(l))continue;if(s&&j4n({intentDir:t,stage:n,targetUnit:u,role:r,sinceIso:s})){c.push(u);continue}let d=e1(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]=Pl(l,{intentDir:t,unitInputs:m}),Le(l,"reviews",h)}else{let h=Array.isArray(p.outputs)?p.outputs:[],m=p.approvals&&typeof p.approvals=="object"?{...p.approvals}:{};m[r]=Hd(t,h),Le(l,"approvals",m)}a.push(u)}return{stamped:a,skipped:c}}function Oye(e,t,n,r){let i=t1(e);if(!i)return{found:!1,stamped:[],skipped:[]};let s=t==="review"?zZ:VZ,o=WZ(i.fm,s),a=o[n]?.[r];if(!a||!Array.isArray(a.units))return{found:!1,stamped:[],skipped:[]};let c=Dg(ve(),"intents",e),{stamped:u,skipped:l}=gSt({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,Le(i.path,s,o),{found:!0,stamped:u,skipped:l}}function F4n(e){let t=t1(e);if(!t)return!1;let n=ve(),r=Dg(n,"intents",e),i=!1;for(let o of["review","approval"]){let a=o==="review"?zZ:VZ,c=WZ(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;gSt({intentDir:r,stage:u,role:d,units:f.units,dispatchedAt:f.dispatched_at,kind:o}).stamped.length>0&&(i=!0)}}Le(t.path,a,{})}}let s=mSt(t.fm,GZ);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&&(H4n({intentDir:r,role:c,sinceIso:u.dispatched_at})||(o[c]={at:new Date().toISOString()},a=!0,i=!0))}a&&Le(t.path,"approvals",o),Le(t.path,GZ,{})}return i}function j4n(e){let t=Dg(e.intentDir,"stages",e.stage,"feedback");if(!$D(t))return!1;for(let n of hSt(t,{withFileTypes:!0})){if(!n.isFile()||!n.name.endsWith(".md"))continue;let r=Dg(t,n.name),i=e1(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)||!ax(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],Le(t.path,e.field,n))}var zZ,VZ,GZ,pv=v(()=>{"use strict";ji();ze();Yf();zZ="_pending_review_dispatches",VZ="_pending_approval_dispatches",GZ="_pending_intent_review_dispatches"});import{existsSync as q4n,readFileSync as B4n}from"node:fs";import{join as G4n}from"node:path";function SSt(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{Nye({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{z4n({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 z4n(e){let t=ve(),n=G4n(t,"intents",e.slug,"stages",e.stage,"units",`${e.targetUnit}.md`);if(!q4n(n))return;let r=Pg(n);if(!r)return;let i=B4n(n,"utf8"),o=(0,ySt.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&&Le(n,"reviews",u);let l=c("approvals");l&&Le(n,"approvals",l)}var ySt,ESt=v(()=>{"use strict";ySt=Se(Kt(),1);pv();Yf();ze();vo()});var wSt={};Rr(wSt,{__testOnly:()=>eKn,withIntentDispatchLock:()=>jx,withIntentMainLock:()=>JZ,withStageLock:()=>FE});import{existsSync as V4n,mkdirSync as _St,readFileSync as W4n,rmSync as TSt,statSync as K4n,writeFileSync as Z4n}from"node:fs";import{join as KZ}from"node:path";function vSt(){return KZ(Br(),".haiku","locks")}function X4n(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function Q4n(e){let t=KZ(e,"holder.json");if(!V4n(t))return null;try{let n=W4n(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 ASt(e){let t;try{t=Date.now()-K4n(e).mtimeMs}catch{return!1}if(t{"use strict";ze();Y4n=50,bSt=3e4,J4n=5*6e4;eKn={acquireLock:ZZ,releaseLock:YZ,lockRoot:vSt,isStale:ASt}});function r1(e){return Array.isArray(e.iterations)?e.iterations:[]}function tKn(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function Pye(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function kSt(e){let t=e.fm.started_at;return typeof t=="string"&&t.length>0||t instanceof Date&&!Number.isNaN(t.getTime())?!0:r1(e.fm).length>0}function nKn(e,t,n,r){return r===!0?"completed":r===!1?e.length===0?"pending":e.some(kSt)?"active":"pending":e.length===0||!e.some(kSt)?"pending":e.every(s=>{let o=r1(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=Pye(s.fm);return n.every(u=>c[u])})?"completed":"active"}function rKn(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=>!tKn(c.fm)[o]))return"review";if(t.length>0&&!e.every(a=>{let c=r1(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=>!Pye(c.fm)[o]))return"gate";return null}function iKn(e,t){return e.length===0?null:e.every(r=>{let i=Pye(r.fm);return t.every(s=>i[s])})?"advanced":null}function ISt(e){return typeof e=="string"&&e.length>0?e:e instanceof Date&&!Number.isNaN(e.getTime())?e.toISOString():null}function sKn(e){return e.map(n=>ISt(n.fm.started_at)).filter(n=>n!==null).sort()[0]??null}function oKn(e,t){if(t!=="completed")return null;let n=null;for(let r of e){let i=r1(r.fm);if(i.length===0)continue;let s=i[i.length-1];if(s.result!=="advance")continue;let o=ISt(s.completed_at);o!==null&&(n===null||o>n)&&(n=o)}return n}function aKn(e){let t=0;for(let n of e){let r=r1(n.fm);r.length>t&&(t=r.length)}return t}function Cye(e){let{stage:t,units:n,intentMode:r,hats:i=[],reviewRoles:s=[],approvalRoles:o=[],stageMergedIntoMain:a=null,elaborationVerified:c=null}=e,u=nKn(n,i,o,a),l=u==="completed"?null:rKn(n,i,s,o,r,c),d=iKn(n,o),f=sKn(n),p=oKn(n,u),h=aKn(n);return{stage:t,status:u,phase:l,started_at:f,completed_at:p,gate_outcome:d,visits:h}}var Mye=v(()=>{"use strict"});import{execFileSync as QZ}from"node:child_process";import{existsSync as OSt,readdirSync as cKn,readFileSync as uKn}from"node:fs";import{basename as NSt,join as XZ}from"node:path";function Lye(e){if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(Lye);if(e!==null&&typeof e=="object"){let t={};for(let[n,r]of Object.entries(e))t[n]=Lye(r);return t}return e}function CSt(e){try{let t=(0,PSt.default)(e).data;return Lye(t)}catch{return null}}function MSt(e){if(!OSt(e))return null;try{return CSt(uKn(e,"utf8"))}catch{return null}}function lKn(e){let t=XZ(e,"units");return OSt(t)?cKn(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).sort((n,r)=>n.name.localeCompare(r.name)).map(n=>{let r=MSt(XZ(t,n.name))??{};return{name:NSt(n.name,".md"),fm:r}}):[]}function dKn(e,t){if(!Ae())return null;try{return QZ("git",["show",`${e}:${t}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return null}}function LSt(e,t){let n=dKn(e,t);return n==null?null:CSt(n)}function fKn(e,t){if(!Ae())return[];try{return QZ("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 pKn(e,t,n){let r=`.haiku/intents/${t}/stages/${n}/units`,i=fKn(e,r);return i.length===0?[]:i.map(s=>{let o=LSt(e,`${r}/${s}`)??{};return{name:NSt(s,".md"),fm:o}})}function Dye(e,t,n){return n==="autopilot"?["spec"]:["spec",...Object.keys(_l(e,t)).sort(),"user"]}function Uye(e,t,n){return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...Object.keys(_l(e,t)).sort(),"user"]}function hKn(e,t){if(!Ae())return!1;let n=`haiku/${e}/main`,r=`.haiku/intents/${e}/stages/${t}/units`;try{return QZ("git",["ls-tree","--name-only",`${n}:${r}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` -`).some(s=>s.trim().endsWith(".md"))}catch{return!1}}function xSt(e){if(!Ae())return!1;try{return QZ("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=XZ(i,"stages",r),a=bs(n,r),c=Dye(n,r,s),u=Uye(n,r,s),l=`haiku/${t}/main`,d=`haiku/${t}/${r}`,f=Ae(),p=f&&xSt(l),m=f&&xSt(d)?d:p?l:null,y=m?pKn(m,t,r):lKn(o),g=p?hKn(t,r):null,E=XZ(o,"elaboration.md"),S=`.haiku/intents/${t}/stages/${r}/elaboration.md`,b=m?LSt(m,S):MSt(E),_=null;return b!==null&&(_=(typeof b.verified_at=="string"?b.verified_at:"").length>0),Cye({stage:r,units:y,intentMode:s,hats:a,reviewRoles:c,approvalRoles:u,stageMergedIntoMain:g,elaborationVerified:_})}var PSt,i1=v(()=>{"use strict";Mye();PSt=Se(Kt(),1);SE();Kn();ns()});import{appendFileSync as mKn,existsSync as zfi,mkdirSync as DSt,readFileSync as Vfi,writeFileSync as gKn}from"node:fs";import{dirname as USt}from"node:path";function FSt(e,t){try{DSt(USt(e),{recursive:!0}),gKn(e,`${JSON.stringify(t,null,2)} -`)}catch{}}function qi(e,t){try{let n=e.replace(/\.json$/,".jsonl");DSt(USt(n),{recursive:!0});let r={...t,ts:new Date().toISOString()};mKn(n,`${JSON.stringify(r)} -`)}catch{}}var s1=v(()=>{"use strict"});var jSt,HSt,qSt,BSt=v(()=>{"use strict";jSt=["status","active_stage","started_at","completed_at","phase","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at"],HSt=["status","phase","started_at","completed_at","gate_entered_at","gate_outcome"],qSt=["status","started_at","completed_at","bolt","hat","hat_started_at","scope_reject_attempts"]});import{createHash as yKn}from"node:crypto";import{existsSync as GSt,readdirSync as SKn,readFileSync as zSt,writeFileSync as EKn}from"node:fs";import{join as $Z}from"node:path";function bKn(e){let t=JSON.stringify(e,Object.keys(e).sort());return yKn("sha256").update(t).digest("hex").slice(0,16)}function Fye(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function _Kn(e,t,n){if(!n)return{};let r=$Z(e,"intents",t,"stages",n,"units");if(!GSt(r))return{};for(let i of SKn(r)){if(!i.endsWith(".md"))continue;let s=zSt($Z(r,i),"utf8"),{data:o}=re(s);if(o.status==="active")return Fye(o,qSt)}return{}}function ci(e){if(!Mi().hooks)try{let t=ve(),n=$Z(t,"intents",e,"intent.md");if(!GSt(n))return;let r=zSt(n,"utf8"),{data:i}=re(r),s=i.active_stage||"",o=Fye(i,jSt),a={};if(s){let f=qx(e,s),p=jE(f);a=Fye(p,HSt)}let c=_Kn(t,e,s),l=bKn({intent:o,stage:a,unit:c}),d=$Z(t,"intents",e,".fsm_checksum");EKn(d,l)}catch(t){console.error(`[haiku] sealIntentState(${e}) failed:`,t)}}var eY=v(()=>{"use strict";Ef();ze();BSt()});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 gY={};Rr(gY,{AGENT_AUTHORABLE_INTENT_FIELDS:()=>JT,AGENT_AUTHORABLE_UNIT_FIELDS:()=>CE,CREATE_TIME_FB_FIELDS:()=>ND,ERROR_OUTPUT_SCHEMA:()=>eye,FEEDBACK_ASSESSOR_HAT:()=>fEt,FEEDBACK_ORIGINS:()=>c9n,FEEDBACK_STATUSES:()=>HE,FSM_DRIVEN_FB_FIELDS:()=>OD,FSM_DRIVEN_INTENT_FIELDS:()=>XT,FSM_DRIVEN_UNIT_FIELDS:()=>Zf,INTENT_FRONTMATTER_SCHEMA:()=>DD,INTENT_TITLE_MAX_LENGTH:()=>Jye,IntentScopeTickPersistError:()=>Bd,MAX_CONCURRENT_SUBAGENTS:()=>av,MAX_FIX_LOOP_BOLTS:()=>Mg,MAX_INTEGRATOR_ATTEMPTS:()=>u9n,MAX_RATIONALE_BYTES:()=>zye,MAX_RATIONALE_EXCERPT_BYTES:()=>Vye,MAX_STAGE_ITERATIONS:()=>Cf,MAX_UNIT_BOLTS:()=>mv,OK_OUTPUT_SCHEMA:()=>tye,REJECT_LOOP_MIN_REPEATS:()=>aY,STAGE_STATE_FIELDS:()=>nye,STAGE_STATE_SCHEMA:()=>TZ,UNIT_FRONTMATTER_SCHEMA:()=>QT,_resetIsGitRepoForTests:()=>Eft,appendFeedbackIteration:()=>h9n,appendFeedbackReply:()=>lSe,appendStageIteration:()=>tSe,applyAutoFixes:()=>Xye,closeCurrentStageIteration:()=>nSe,completeUnitIteration:()=>cY,computeFeedbackSignature:()=>sEt,countConsecutiveSameRejects:()=>iEt,countInFlightUnits:()=>mEt,countPendingFeedback:()=>g9n,countUnitBolts:()=>rEt,deleteFeedbackFile:()=>mY,deleteFrontmatterFields:()=>Kh,deriveAuthorType:()=>sSe,deriveFeedbackIdFromFilename:()=>SEt,deriveFeedbackStatus:()=>ep,deriveUnitStatus:()=>Gx,detectDagCycles:()=>lEt,detectSettledDuplicate:()=>oEt,dismissFeedbackClosureReply:()=>dSe,ensureWorktreesGitignored:()=>VL,feedbackDir:()=>lo,feedbackSeverityRank:()=>Jc,findFeedbackFile:()=>Sc,findHaikuRoot:()=>ve,formatFeedbackId:()=>qd,getIntentScopeTickCounter:()=>h1,getStageIterationCount:()=>cEt,gitCommitAll:()=>uY,gitCommitState:()=>wt,gitCommitStateBackgroundPush:()=>Fg,gitCommitStateIfDirty:()=>rSe,handleStateTool:()=>pSe,incrementFeedbackBolt:()=>y9n,intentDir:()=>pe,intentFromCurrentBranch:()=>gv,intentTitleNeedsRepair:()=>d1,isGitRepo:()=>Ae,isIntentArchived:()=>p1,isIntentLocked:()=>f1,listInstalledSkills:()=>Wx,listVisibleIntentSlugs:()=>s9n,listVisibleIntents:()=>Ug,matchesGlob:()=>Wye,migrateIterationReasonsOnRead:()=>Kye,migrateMisplacedWorktrees:()=>nEt,moveFeedbackFile:()=>yEt,normalizeLegacyFeedbackStatus:()=>pY,normalizeRejectReason:()=>$ye,parseFrontmatter:()=>re,persistDesignDirectionSelection:()=>oSe,persistDesignDirectionUploads:()=>aSe,pickUndispatchedUnitBlocks:()=>hEt,primaryRepoRoot:()=>Br,readClaimedAuthorId:()=>jKn,readDecisionLog:()=>EK,readFeedbackFiles:()=>Us,readIntentBody:()=>Wh,readJson:()=>jE,repairDeclaredOutput:()=>fY,resolveUnitHats:()=>Yye,runInlineQualityGates:()=>Qye,safeMkdirAndRename:()=>fv,setFrontmatterField:()=>Le,setHaikuRootForTests:()=>_ft,setIsGitRepoForTests:()=>bft,setUnitFrontmatterField:()=>o9n,slugifyTitle:()=>hY,stageDir:()=>ar,stageStatePath:()=>qx,stampDispatchClaim:()=>pEt,stampUnitHatLease:()=>cSe,startUnitIteration:()=>u1,stateToolDefs:()=>fSe,syncSessionMetadata:()=>Xr,timestamp:()=>bn,unitIntentDir:()=>qKn,unitOutputExists:()=>Vh,unitPath:()=>Na,updateFeedbackFile:()=>uSe,validateBranch:()=>iSe,validateIntentSchema:()=>Tx,validateRationaleCaps:()=>IKn,validateSlugArgs:()=>IL,validateUnitFrontmatter:()=>uEt,validateUnitSchema:()=>Ng,validateUnitScope:()=>oY,writeFeedbackFile:()=>Qo,writeJson:()=>l1});import{execFileSync as Pa,execSync as zh,spawn as TKn,spawnSync as tY}from"node:child_process";import{randomBytes as vKn}from"node:crypto";import{appendFileSync as AKn,existsSync as ue,lstatSync as RKn,mkdirSync as Ml,readdirSync as an,readFileSync as Ne,renameSync as XSt,rmSync as Gye,statSync as QSt,unlinkSync as zx,writeFileSync as In}from"node:fs";import{homedir as wKn}from"node:os";import{basename as kKn,dirname as Vx,join as ne,resolve as $f,sep as Bx}from"node:path";import{readdirSync as t9n}from"node:fs";function VSt(e){return Buffer.byteLength(e,"utf-8")}function IKn(e){let t=VSt(e.agent_rationale);if(t>zye)return{kind:"agent_rationale_too_long",bytes:t,cap:zye};for(let n=0;nVye)return{kind:"rationale_excerpt_too_long",index:n,path:r.path,bytes:i,cap:Vye}}return null}function d1(e){if(typeof e!="string")return!0;let t=e.trim();return!!(t.length===0||t.length>Jye||/\n/.test(t))}function Xye(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,Ct.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"&&d1(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=xKn(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,Ct.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,Ct.default)(_);if("type"in T.data){let{type:A,...R}=T.data;In(b,Ct.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,Ct.default)(R);(x.data.inputs||[]).length>0||(x.data.inputs=T,In(_,Ct.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 xKn(e){try{return QSt(e)}catch{return null}}function OKn(e,t){if(!Ae())return null;try{let r=Pa("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 eEt(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 dY(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"&&d1(o.title)){let d=o.title,f=/\n/.test(d)?"title contains newlines":`title is ${d.length} chars (max ${Jye})`;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;NKn.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(Ae()){let d=ne(e,t,"intent.md"),f=OKn(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 tEt(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}=eEt(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=dY(i,f,s,o);if(n&&p.length>0){let h=Xye(i,f,p);l.push(...h.applied),h.applied.length>0&&(p=dY(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 PKn(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 WSt(){if(!Ae())return[];let e;try{e=Pa("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 CKn(e){try{return Pa("git",["-C",e,"status","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!0}}function nEt(){let e={moved:[],skipped:[],cleanedSkeletons:[]};if(!Ae())return e;let t=Br(),n=`${Bx}.haiku${Bx}worktrees${Bx}`;for(let i of WSt()){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(CKn(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(Bx));Ml(u,{recursive:!0}),Pa("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 WSt())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{Gye(s,{recursive:!0,force:!0}),e.cleanedSkeletons.push(s);let a=ne(i,".haiku");ue(a)&&an(a).length===0&&Gye(a,{recursive:!0,force:!0})}catch{}}return e}function MKn(e){if(e.moved.length===0&&e.skipped.length===0&&e.cleanedSkeletons.length===0)return"";let t=["## Worktree Migration",""];if(e.moved.length>0){t.push(`Moved ${e.moved.length} misplaced worktree(s):`);for(let n of e.moved)t.push(`- \`${n.branch}\`: ${n.old} \u2192 ${n.new}`);t.push("")}if(e.skipped.length>0){t.push(`Skipped ${e.skipped.length} worktree(s):`);for(let n of e.skipped)t.push(`- ${n.path} \u2014 ${n.reason}`);t.push("")}if(e.cleanedSkeletons.length>0){t.push(`Cleaned ${e.cleanedSkeletons.length} empty skeleton dir(s):`);for(let n of e.cleanedSkeletons)t.push(`- ${n}`);t.push("")}return t.join(` -`)}function LKn(e){OT();let t=Yo(),n=[];if(e){let s=tpe();for(let{slug:o,branches:a}of s){let c=a.map(u=>u.replace(`haiku/${o}/`,""));try{let u=a[0],l=mpe(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=hpe(o,c);if(u.success)try{Pa("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=J4();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=X4(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=tEt(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"&&!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=$4(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&&Q4(a)}n.push(c)}let i=DKn(r,t,e);return{summaries:n,mainline:t,archivedSummary:i}}function DKn(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=X4(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}=eEt(a);for(let p of l){let h=dY(c,p,d,f);if(s.scanned++,n&&h.length>0){let m=Xye(c,p,h);s.applied.push(...m.applied),m.applied.length>0&&(h=dY(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=$4(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&&Q4(o)}if(s.scanned>0||s.setupError)return s}function UKn(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 qyt(e){let t=Mg(e,"stages");if(!UY(t))return[];try{return Dyt(t,{withFileTypes:!0}).filter(n=>n.isDirectory()).map(n=>n.name)}catch{return[]}}var Uyt,V4n,W4n,K4n,Y4n,Efi,_fi,Z4n,P0=v(()=>{"use strict";Uyt=Re(Kt(),1);_l();V4n=O.enum(["agent","human-via-mcp","human-implicit"]),W4n=O.enum(["agent-write","human-write-tool","spa-upload","classification-terminal","baseline-init"]),K4n=O.enum(["stage-output","knowledge","unit-output","intent-meta"]),Y4n=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:V4n,acknowledged_at:O.string(),acknowledged_via:W4n,stage:O.string().nullable(),tracking_class:K4n}),Efi=O.record(O.string(),Y4n);_fi=64*1024,Z4n=[{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 Gyt,readFileSync as Q4n,statSync as $4n}from"node:fs";import{basename as Vyt,join as $o,relative as jY}from"node:path";function eKn(e){if(!Qf(e))return[];let t=[];try{t=Gyt(e)}catch{return[]}let n=[];for(let r of t)if(!r.startsWith(".")&&!MY.has(r))try{$4n($o(e,r)).isFile()&&n.push(r)}catch{}return n}function tKn(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 yye(e){if(!Qf(e))return null;try{let t=Q4n(e,"utf8");return(0,Wyt.default)(t).data}catch{return null}}function gye(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 Byt(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 zyt(e,t){let n=Lb(e);if(!n)return null;if(n===t)return{matches:!0,current:n};let r=O0(e);return r===t?{matches:!0,current:r}:{matches:!1,current:n}}function nKn(e){let t=$o(e,"units");return Qf(t)?Gyt(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>$o(t,n.name)):[]}function rKn(e,t,n){return $o(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 iKn(e,t,n,r){let i=Vyt(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=yye(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 sKn(e,t,n,r){return $o(e,"plugin","studios",t,"stages",n,"discovery",`${r}.md`)}function HY(e){let t=e.repoRoot??$o(e.intentDir,"..","..",".."),n=$o(t,".haiku");if(FY(n))return{events:[],scanned:0,skipped:0};let r=[],i=0,s=0,o=$o(e.intentDir,"stages",e.stage),a=nKn(o),c=iKn(e.intentDir,e.studio,e.stage,a),u=Vyt(e.intentDir),l=p=>c.has(p)||c.has(Sye(p,u));for(let p of a){let h=yye(p);if(!h)continue;let m=(p.split("/").pop()??"").replace(/\.md$/,"");if(h.started_at==null){s++;continue}let g=jY(e.intentDir,p),y=h.reviews??{};for(let[S,E]of Object.entries(y)){i++;let _=gye(E);if(!_)continue;let T=Byt(E);T&&Qf(p)&&!VL(p,T)&&r.push({unit:m,role:S,kind:"spec",file:g,since:_});let R=tKn(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=WL(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}(CY(N)?!VL(N,x):(()=>{let L=Lb(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=WL(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=eKn(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=O0($);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 _=gye(E);if(!_)continue;let T=E,R=rKn(e.intentDir,e.stage,S),A=typeof T.output_sha256=="string"?T.output_sha256:null;if(A){let P=zyt(R,A);P&&!P.matches&&r.push({unit:m,role:S,kind:"discovery_output",file:jY(e.intentDir,R),since:_})}let x=sKn(t,e.studio,e.stage,S),k=typeof T.mandate_sha256=="string"?T.mandate_sha256:null;if(k){let P=zyt(x,k);P&&!P.matches&&r.push({unit:m,role:S,kind:"discovery_mandate",file:jY(t,x),since:_})}}}let d=$o(e.intentDir,"intent.md"),f=yye(d);if(f){let p=f.approvals??{},h=jY(e.intentDir,d);for(let[m,g]of Object.entries(p)){i++;let y=gye(g);if(!y)continue;let b=Byt(g);b&&(VL(d,b)||r.push({unit:"(intent)",role:m,kind:"spec",file:h,since:y}))}}return{events:r,scanned:i,skipped:s}}var Wyt,bye=v(()=>{"use strict";Wyt=Re(Kt(),1);Kn();P0();Xf()});function N0(e,t={}){let n=`haiku/${e}/main`;if(!Ee())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 KL(e,t={}){let n=N0(e,t);return n.applicable&&!n.merged}var YL=v(()=>{"use strict";ar();Eb()});var D0={};Ar(D0,{__testOnly:()=>hKn,computeElaborateSignals:()=>M0,derivePosition:()=>$f,findCurrentStage:()=>ai,intentReviewRoles:()=>GY,isBriefEnabled:()=>Jyt,isReflectionEnabled:()=>lv,isStageComplete:()=>C0,listUnitPaths:()=>dv,nextHatForUnit:()=>uv,pendingApprovalSlots:()=>cKn,pendingReviewSlots:()=>aKn,readFm:()=>Qc,serializeElaborateSignals:()=>vye,stageOwesBrief:()=>$yt,stageOwesObservations:()=>_ye,stageRoleLists:()=>VY,unitName:()=>zY,walkFeedbackTrack:()=>Tye});import{existsSync as xa,readdirSync as ZL,readFileSync as qY,writeFileSync as Kyt}from"node:fs";import{basename as Zyt,join as zr}from"node:path";function oKn(e){let t=zr(e.intentDir,"intent.md");if(xa(t))try{let n=qY(t,"utf8"),r=(0,cv.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,Kyt(t,cv.default.stringify(r.content,i))):u===!0&&(delete c[o],Object.keys(c).length===0?delete i[s]:i[s]=c,Kyt(t,cv.default.stringify(r.content,i)))}catch{}}function lv(e){let t=zr(e,"intent.md");if(!xa(t))return!0;try{let n=qY(t,"utf8"),i=(0,cv.default)(n).data;return!(i.reflection===!1||i.autotune===!1)}catch{return!0}}function Jyt(e){let t=zr(e,"intent.md");if(!xa(t))return!0;try{let n=qY(t,"utf8");return(0,cv.default)(n).data.brief!==!1}catch{return!0}}function Qc(e){if(!xa(e))return null;try{let t=qY(e,"utf8"),n=(0,cv.default)(t);return{data:n.data,body:n.content}}catch{return null}}function Xyt(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 Fb(e){return Array.isArray(e.iterations)?e.iterations??[]:[]}function BY(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function Qyt(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function zY(e){return Zyt(e).replace(/\.md$/,"")}function dv(e){let t=zr(e,"units");return xa(t)?ZL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>zr(t,n.name)).sort():[]}function Yyt(e){let t=zr(e,"feedback");return xa(t)?ZL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>zr(t,n.name)).sort():[]}function uv(e,t){if(t.length===0)return null;let n=Fb(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 aKn(e,t){let n=Qyt(e);return t.filter(r=>!n[r])}function cKn(e,t){let n=BY(e);return t.filter(r=>!n[r])}function uKn(e,t,n){let r=Object.keys(Tl(e,t)).sort();return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...r,"user"]}function lKn(e){return typeof e.started_at=="string"&&e.started_at.length>0}function dKn(e,t){let n=BY(e);for(let r of t)if(!n[r])return!1;return!0}function fKn(e,t){if(dKn(e,t))return!0;let n=lKn(e),r=Fb(e);return n&&r.length===0?(Array.isArray(e.outputs)?e.outputs:[]).length===0:!1}function pKn(e,t,n,r){let i=zr(e,"stages",n,"units");if(!xa(i))return!1;let s=ZL(i).filter(c=>c.endsWith(".md"));if(s.length===0||Es(t,n).length===0)return!1;let a=uKn(t,n,r);for(let c of s){let u=Qc(zr(i,c))?.data;if(!u||!fKn(u,a))return!1}return!0}function C0(e,t,n,r){return pKn(e,t,n,r)}function _ye(e,t){return lv(e)?!xa(zr(e,"stages",t,"observations.md")):!1}function $yt(e,t,n){return!(!Jyt(e)||xa(zr(e,"stages",t,"BRIEF.md"))||n)}function ai(e,t,n){let r=n??zr(ve(),"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(!C0(r,t,c,a))return c;return null}function Tye(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=eSt(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=Yyt(zr(t,"stages",b));for(let E of S){let _=u(b,E);if(_)return _}}let l=Yyt(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=ZL(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&&Xyt(k)){A=!0;break}}if(A){_=!1;break}}_&&p.push(b)}if(p.length===0||!p.some(b=>b.inFlight||h0(b.severity)))return null;let g=[...p].sort((b,S)=>Xc(b.severity)-Xc(S.severity)).slice(0,fv),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 eSt(e,t,n){let r=Qc(t);if(!r)return null;let i=r.data;if(Xyt(i))return null;let s=tSt(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=Fb(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=uv(i,a);if(c===null){let u=Fb(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 tSt(e){let t=Zyt(e).match(/^(\d+)-/);return t?`FB-${t[1].padStart(3,"0")}`:null}function nSt(e){let{slug:t,intentDir:n,studio:r,stage:i,mode:s}=e,o=zr(n,"stages",i),c=dv(o).map(R=>({path:R,name:zY(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}=VY(r,i,s,d),h=M0({slug:t,studio:r,stage:i,stageDir:o,unitNames:c.map(R=>R.name),mode:s});if(h.length>0){if(oL(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:Qpe(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||Fb(P.fm).length>0?!1:!Qyt(P.fm)[x]).map(P=>P.name);if(k.length!==0){if(x==="user"){A=k;continue}if(Eye.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||Fb(k.fm).length>0);if($yt(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=Fb(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&&uv(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,fv),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=uv(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:Fb(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=>!BY(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(Eye.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(lv(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",a;if(s&&typeof s.data.sealed_at=="string"&&s.data.sealed_at.length>0&&(a=N0(t),!a.applicable||a.merged))return{track:"sealed",action:{kind:"sealed"}};if(s&&o!=="autopilot"&&!(typeof s.data.verified_at=="string"?s.data.verified_at:"")){let d=wn(s.data,r)[0]??"",f=d?zr(n,"stages",d):"",p=f&&xa(f)?dv(f).length>0:!1;if(ai(t,r,n)===d&&!p)return{track:"intent",action:{kind:"elaborate_loop",signals_unmet:[{signal:"verify_conversation"}]}}}let c=ai(t,r,n);if(c){let u=HY({intentDir:n,stage:c,studio:r});if(u.events.length>0){let l=Cyt({events:u.events,intentDir:n,stage:c,slug:t});s&&oKn({intentDir:n,stage:c,tripped:l.cascade_alarm_tripped})}}{let u=s?.data??{},l=Tye({intentDir:n,studio:r,intent:u,currentStage:c??wn(u,r).slice(-1)[0]??""});if(l)return{track:"feedback",action:l}}if(c){let u=nSt({slug:t,intentDir:n,studio:r,stage:c,mode:o});return u!==null?{track:"intent",action:u}:{track:"noop",action:null}}if(s){let u=BY(s.data),l=Object.keys(yg(r)).sort(),d=GY(o,l),f=[],p=!1;for(let m of d)if(!u[m]){if(m==="user"){p=!0;continue}if(Eye.has(m))return f.length>0?{track:"intent",action:{kind:"intent_review",role:f[0].role,dispatches:f}}:{track:"intent",action:{kind:"intent_review",role:m,dispatches:[{role:m}]}};f.push({role:m})}if(f.length>0)return{track:"intent",action:{kind:"intent_review",role:f[0].role,dispatches:f}};if(!u.intent_quality_gates)return{track:"intent",action:{kind:"dispatch_quality_gates",stage:"",units:[],scope:"intent"}};if(p)return{track:"intent",action:{kind:"intent_review",role:"user",dispatches:[{role:"user"}]}};if(s.data.sealed_at==null&&lv(n)){let m=zr(n,"reflection.md");if(!xa(m))return{track:"intent",action:{kind:"record_reflection"}}}let h=a??N0(t);if(h.applicable&&!h.merged)return{track:"intent",action:{kind:"pending_seal",default_branch:h.defaultBranch}};if(s.data.sealed_at==null)return{track:"intent",action:{kind:"seal_intent"}}}return{track:"sealed",action:{kind:"sealed"}}}function GY(e,t=[]){let n=["spec","continuity","cross-stage-consistency"],r=t.filter(i=>!n.includes(i));return[...n,...r,"user"]}function VY(e,t,n,r){let s=["continuity","cross-stage-consistency",...r??Object.keys(Tl(e,t)).sort()],o=n==="autopilot",a=s.filter(l=>!UT.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 M0(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)&&ZL(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 vye(e){return e.map(t=>t.signal==="discovery"?`discovery:${t.agent}`:t.signal)}var cv,Eye,hKn,Oa=v(()=>{"use strict";cv=Re(Kt(),1);ji();ze();Kn();A3();ns();Myt();bye();YL();Eye=new Set(["spec","quality_gates","user"]);hKn={walkIntentTrack:nSt,walkFeedbackTrack:Tye,nextActionForFeedback:eSt,parseFbIdFromFilename:tSt}});var rSt,JL,Rye=v(()=>{"use strict";rSt=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"]),JL=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 yKn(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 SKn(e,t){let n=t.toLowerCase(),r=new RegExp(`<${n}\\b[^>]*/?>`,"gi");return e.replace(r,"")}function bKn(e){return e.replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function EKn(e){return e.replace(/\s+(?:formaction|srcdoc|xlink:href)\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function _Kn(e){return e.replace(/\b(href|src)\s*=\s*(["']?)([^"'\s>]+)/gi,(t,n,r,i)=>sSt.test(i.trim())?`${n}=${r||'"'}#${r||'"'}`:t)}function TKn(e){return e.replace(/(!?\[[^\]]*\])\(([^)]+)\)/g,(t,n,r)=>sSt.test(r.trim())?`${n}(#)`:t)}function iSt(e){let t=e;for(let n of mKn)t=yKn(t,n);for(let n of gKn)t=SKn(t,n);return t=bKn(t),t=EKn(t),t=_Kn(t),t=TKn(t),t}function pv(e){if(typeof e!="string")return"";let t=e;for(let n=0;n<5;n++){let r=iSt(t);if(r===t)return r;t=r}return iSt(t)}var mKn,gKn,sSt,Aye=v(()=>{"use strict";mKn=["script","iframe","object","style","form"],gKn=["embed"],sSt=/^(?:javascript|vbscript|data:text\/html|data:text\/javascript|data:application\/(?:java|ecma)script|data:image\/svg\+xml)/i});import{randomBytes as vKn}from"node:crypto";function L0(){let e=AKn();return wKn(e)}function AKn(){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=vKn(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 wKn(e){let t=0;for(;t0n;){let i=Number(n%58n);n=n/58n,r=RKn[i]+r}return"1".repeat(t)+r}var RKn,oSt=v(()=>{"use strict";RKn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"});var Dye={};Ar(Dye,{_runPresenceSweepForTests:()=>PKn,beginPresenceWatch:()=>wye,clearHeartbeat:()=>WY,clearPreviousReviewSnapshot:()=>fSt,createDesignDirectionSession:()=>Pye,createPickerSession:()=>Nye,createQuestionSession:()=>Oye,createSession:()=>KY,createViewSession:()=>Cye,deleteSession:()=>q0,endPresenceWatch:()=>kye,findLiveReviewSessionForIntent:()=>e1,getPreviousReviewSnapshot:()=>xye,getSession:()=>$t,hasAttachedReviewSessionForIntent:()=>t1,hasPresenceLost:()=>Iye,isBrowserAttached:()=>mv,notifySessionUpdate:()=>H0,recordHeartbeat:()=>QL,setPreviousReviewSnapshot:()=>dSt,updateDesignDirectionSession:()=>r1,updatePickerSession:()=>MKn,updateQuestionSession:()=>n1,updateSession:()=>Ml,updateViewSession:()=>Mye,waitForSession:()=>hv});import{EventEmitter as kKn}from"node:events";function wye(e,t={}){j0.set(e,t.startedAt??Date.now())}function kye(e){j0.delete(e)}function QL(e){return Hi.has(e)?(F0.set(e,Date.now()),j0.delete(e),jb.delete(e)&&console.error(`[haiku] Presence restored for session ${e}`),!0):!1}function Iye(e){return jb.has(e)}function WY(e){F0.delete(e),jb.delete(e),j0.delete(e)}function aSt(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 cSt(e,t){jb.has(e)||(jb.add(e),console.error(`[haiku] Presence lost for session ${e} \u2014 ${t}`),U0.emit(`session:${e}`))}function lSt(){let e=Date.now();for(let[t,n]of F0){if(e-n<=IKn)continue;let r=Hi.get(t);if(!r){F0.delete(t),jb.delete(t);continue}aSt(r)&&cSt(t,`no heartbeat in ${Math.round((e-n)/1e3)}s`)}for(let[t,n]of j0){if(F0.has(t)||e-n<=OKn)continue;let r=Hi.get(t);if(!r){j0.delete(t);continue}aSt(r)&&cSt(t,`SPA never opened (no heartbeat in the first ${Math.round((e-n)/1e3)}s)`)}}function PKn(){lSt()}function H0(e){U0.emit(`session:${e}`)}function hv(e,t=1800*1e3,n){return new Promise((r,i)=>{let s=setTimeout(()=>{U0.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),U0.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}),U0.once(`session:${e}`,o)})}function xye(e){return XL.get(e)}function dSt(e,t){XL.set(e,t)}function fSt(e){XL.delete(e)}function uSt(e){if(XL.has(e)){for(let t of Hi.values())if(t.session_type==="review"&&t.intent_dir===e)return;XL.delete(e)}}function $L(){let e=Date.now();for(let[t,n]of ep)if(e-n>CKn){let r=Hi.get(t);Hi.delete(t),ep.delete(t),WY(t),r?.session_type==="review"&&uSt(r.intent_dir)}for(;Hi.size>=NKn;){let t=ep.entries().next().value;if(!t)break;let n=Hi.get(t[0]);Hi.delete(t[0]),ep.delete(t[0]),WY(t[0]),n?.session_type==="review"&&uSt(n.intent_dir)}}function KY(e){$L();let t=L0(),n={...e,session_type:"review",session_id:t,status:"pending",decision:"",feedback:""};return Hi.set(t,n),ep.set(t,Date.now()),n}function Oye(e){$L();let t=L0(),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 Pye(e){$L();let t=L0(),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 Nye(e){$L();let t=L0(),n={...e,session_type:"picker",session_id:t,status:"pending",selection:null};return Hi.set(t,n),ep.set(t,Date.now()),n}function MKn(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="picker"))return Object.assign(n,t),H0(e),n}function Cye(e){$L();let t=L0(),n={...e,session_type:"view",session_id:t,status:"open"};return Hi.set(t,n),ep.set(t,Date.now()),n}function Mye(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="view"))return Object.assign(n,t),H0(e),n}function $t(e){return Hi.get(e)}function e1(e){let t,n=0;for(let[r,i]of Hi){if(i.session_type!=="review"||i.intent_slug!==e||i.ad_hoc||jb.has(r))continue;let s=ep.get(r)??0;s>n&&(t=i,n=s)}return t}function mv(e){if(!Hi.has(e)||jb.has(e))return!1;let t=F0.get(e);return t?Date.now()-t<=DKn:!1}function t1(e){for(let[t,n]of Hi)if(n.session_type==="review"&&n.intent_slug===e&&!n.ad_hoc&&mv(t))return!0;return!1}function q0(e){let t=Hi.delete(e);return ep.delete(e),WY(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);dSt(n.intent_dir,{feedback:n.feedback??"",reviewedAt:new Date().toISOString(),intentRawContent:r?.rawContent??"",unitRawContents:s})}else fSt(n.intent_dir);return H0(e),n}}function n1(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="question"))return Object.assign(n,t),H0(e),n}function r1(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="design_direction"))return Object.assign(n,t),H0(e),n}var U0,IKn,xKn,F0,jb,OKn,j0,Hi,XL,NKn,CKn,ep,DKn,$c=v(()=>{"use strict";oSt();U0=new kKn;U0.setMaxListeners(200);IKn=12e4,xKn=5e3,F0=new Map,jb=new Set,OKn=6e4,j0=new Map;setInterval(lSt,xKn).unref();Hi=new Map,XL=new Map;NKn=100,CKn=14400*1e3,ep=new Map;DKn=3e4});import{spawn as LKn}from"node:child_process";import{existsSync as B0,readFileSync as mSt}from"node:fs";import{createServer as UKn}from"node:net";import{isAbsolute as FKn,join as gv}from"node:path";function HKn(){return new Promise((e,t)=>{let n=UKn();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 qKn(e){return new Promise(t=>{let{Socket:n}=Y("node:net"),r=new n;r.setTimeout(500),r.once("connect",()=>{r.destroy(),t(!0)}),r.once("timeout",()=>{r.destroy(),t(!1)}),r.once("error",()=>{r.destroy(),t(!1)}),r.connect(e,"127.0.0.1")})}async function BKn(e,t){let n=Date.now()+YY;for(;Date.now()setTimeout(r,ySt))}throw new Error(`Dev server did not bind to port ${e} within ${YY}ms`)}async function zKn(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 GKn(e,t){let n=Date.now()+YY;for(;Date.now()setTimeout(r,ySt))}throw new Error(`Process did not return a healthy ready_url (${e}) within ${YY}ms`)}function SSt(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 bSt(e){let t=gv(e,"package.json");if(!B0(t))return null;let n;try{n=JSON.parse(mSt(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=VKn(e);return{command:s==="npm"?["npm","run",i]:[s,"run",i],cwd:e,description:`${s} run ${i}`}}function VKn(e){return B0(gv(e,"bun.lockb"))||B0(gv(e,"bun.lock"))?"bun":B0(gv(e,"pnpm-lock.yaml"))?"pnpm":B0(gv(e,"yarn.lock"))?"yarn":"npm"}function Lg(e){return new Error(`[${ESt}] ${e}`)}function pSt(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 Lye(e){let t=gv(e,ESt);if(!B0(t))return null;let n;try{n=(0,gSt.default)(mSt(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 FKn(s)?s:gv(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:pSt(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:pSt(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 s1(e){let t=Lye(e);return t?t.processes.filter(n=>n.service||n.requires_tool!==void 0&&n.name!==t.primary):[]}function WKn(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 Uye(e,t,n){if(t.length===0)throw new Error("spawnBootGroup: at least one process spec required");let r=WKn(t),i=new Map;for(let l of t)i.set(l.name,l.no_port?null:await HKn());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`),z0(e)},jKn);o.unref?.();let a={sessionId:e,processes:[],primaryName:n,primaryPort:i.get(n)??null,startedAt:Date.now(),ttlTimer:o};i1.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=LKn(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 GKn(b)}else await BKn(d)}}catch(l){throw z0(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 _St(e,t){let n={name:"app",command:t.command,cwd:t.cwd};return(await Uye(e,[n],"app")).primary}function z0(e){let t=i1.get(e);if(!t)return!1;clearTimeout(t.ttlTimer),i1.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 TSt(){let e=0;for(let[t]of i1)$t(t)||(z0(t),e+=1);return e}function KKn(){if(hSt)return;hSt=!0;let e=()=>{for(let[t]of i1)z0(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var gSt,i1,jKn,YY,ySt,ESt,hSt,o1=v(()=>{"use strict";gSt=Re(Kt(),1);$c();i1=new Map,jKn=1800*1e3,YY=60*1e3,ySt=200;ESt=".haiku/boot.md";hSt=!1;KKn()});import{lstatSync as Fye,mkdirSync as YKn,realpathSync as vSt,renameSync as ZKn,unlinkSync as JKn}from"node:fs";import{isAbsolute as XKn,relative as QKn,resolve as ZY,sep as JY}from"node:path";function yv(e,t,n,r){let i=ZY(e),s=ZY(t),o=ZY(r),a;try{if(Fye(i).isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`intent root '${i}' is itself a symlink \u2014 refusing`};a=vSt(i)}catch(d){return{ok:!1,code:"parent_open_failed",detail:`cannot stat intent root: ${G0(d)}`}}if(s!==i&&!s.startsWith(`${i}${JY}`))return{ok:!1,code:"parent_chain_escape",detail:`parent '${s}' is not inside intent root '${i}'`};if(!o.startsWith(`${s}${JY}`))return{ok:!1,code:"parent_chain_escape",detail:`dest '${o}' is not directly below parent '${s}'`};let c=QKn(i,s),u=c===""?[]:c.split(JY),l=i;for(let d of u){if(d===""||d==="."||d===".."||XKn(d))return{ok:!1,code:"parent_chain_escape",detail:`chain segment '${d}' is invalid`};l=ZY(l,d);try{let f=Fye(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{YKn(l)}catch(h){if(h.code==="EEXIST")try{let g=Fye(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: ${G0(g)}`}}else return{ok:!1,code:"parent_open_failed",detail:`mkdir '${l}' failed: ${G0(h)}`}}else return{ok:!1,code:"parent_open_failed",detail:`lstat '${l}' failed: ${G0(f)}`}}}try{let d=vSt(s);if(d!==a&&!d.startsWith(`${a}${JY}`))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: ${G0(d)}`}}try{ZKn(n,o)}catch(d){return{ok:!1,code:"rename_failed",detail:`rename '${n}' \u2192 '${o}' failed: ${G0(d)}`}}return{ok:!0}}function G0(e){return e instanceof Error?e.message:String(e)}function V0(e){try{JKn(e)}catch{}}var XY=v(()=>{"use strict"});var l1={};Ar(l1,{applyFeedbackInvalidations:()=>Hye,drainPendingDispatches:()=>t3n,stampSingleDispatch:()=>jye,stashPendingDispatch:()=>$Kn,stashPendingIntentReview:()=>e3n});import{existsSync as a1,readdirSync as ASt,readFileSync as c1}from"node:fs";import{join as Ug}from"node:path";function u1(e){let t=Ug(ve(),"intents",e,"intent.md");if(!a1(t))return null;let n=c1(t,"utf8"),r=re(n);return{path:t,fm:r.data||{}}}function tZ(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function wSt(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function $Kn(e,t,n,r,i){let s=u1(e);if(!s)return;let o=t==="review"?$Y:eZ,a={...tZ(s.fm,o)},c={...a[n]??{}};c[r]={dispatched_at:new Date().toISOString(),units:[...i]},a[n]=c,Ne(s.path,o,a)}function e3n(e,t){if(t==="user")return;let n=u1(e);if(!n)return;let r={...wSt(n.fm,QY)};r[t]={dispatched_at:new Date().toISOString()},Ne(n.path,QY,r)}function kSt(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(!a1(l))continue;if(s&&n3n({intentDir:t,stage:n,targetUnit:u,role:r,sinceIso:s})){c.push(u);continue}let d=c1(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}),Ne(l,"reviews",h)}else{let h=Array.isArray(p.outputs)?p.outputs:[],m=p.approvals&&typeof p.approvals=="object"?{...p.approvals}:{};m[r]=zd(t,h),Ne(l,"approvals",m)}a.push(u)}return{stamped:a,skipped:c}}function jye(e,t,n,r){let i=u1(e);if(!i)return{found:!1,stamped:[],skipped:[]};let s=t==="review"?$Y:eZ,o=tZ(i.fm,s),a=o[n]?.[r];if(!a||!Array.isArray(a.units))return{found:!1,stamped:[],skipped:[]};let c=Ug(ve(),"intents",e),{stamped:u,skipped:l}=kSt({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,Ne(i.path,s,o),{found:!0,stamped:u,skipped:l}}function t3n(e){let t=u1(e);if(!t)return!1;let n=ve(),r=Ug(n,"intents",e),i=!1;for(let o of["review","approval"]){let a=o==="review"?$Y:eZ,c=tZ(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;kSt({intentDir:r,stage:u,role:d,units:f.units,dispatchedAt:f.dispatched_at,kind:o}).stamped.length>0&&(i=!0)}}Ne(t.path,a,{})}}let s=wSt(t.fm,QY);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&&(r3n({intentDir:r,role:c,sinceIso:u.dispatched_at})||(o[c]={at:new Date().toISOString()},a=!0,i=!0))}a&&Ne(t.path,"approvals",o),Ne(t.path,QY,{})}return i}function n3n(e){let t=Ug(e.intentDir,"stages",e.stage,"feedback");if(!a1(t))return!1;for(let n of ASt(t,{withFileTypes:!0})){if(!n.isFile()||!n.name.endsWith(".md"))continue;let r=Ug(t,n.name),i=c1(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)||!h0(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],Ne(t.path,e.field,n))}var $Y,eZ,QY,Sv=v(()=>{"use strict";ji();ze();Xf();$Y="_pending_review_dispatches",eZ="_pending_approval_dispatches",QY="_pending_intent_review_dispatches"});import{existsSync as i3n,readFileSync as s3n}from"node:fs";import{join as o3n}from"node:path";function xSt(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{Hye({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{a3n({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 a3n(e){let t=ve(),n=o3n(t,"intents",e.slug,"stages",e.stage,"units",`${e.targetUnit}.md`);if(!i3n(n))return;let r=Cg(n);if(!r)return;let i=s3n(n,"utf8"),o=(0,ISt.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&&Ne(n,"reviews",u);let l=c("approvals");l&&Ne(n,"approvals",l)}var ISt,OSt=v(()=>{"use strict";ISt=Re(Kt(),1);Sv();Xf();ze();vo()});var USt={};Ar(USt,{__testOnly:()=>y3n,withIntentDispatchLock:()=>W0,withIntentMainLock:()=>sZ,withStageLock:()=>Hb});import{existsSync as c3n,mkdirSync as NSt,readFileSync as u3n,rmSync as CSt,statSync as l3n,writeFileSync as d3n}from"node:fs";import{join as nZ}from"node:path";function MSt(){return nZ(Br(),".haiku","locks")}function h3n(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function m3n(e){let t=nZ(e,"holder.json");if(!c3n(t))return null;try{let n=u3n(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 DSt(e){let t;try{t=Date.now()-l3n(e).mtimeMs}catch{return!1}if(t{"use strict";ze();f3n=50,PSt=3e4,p3n=5*6e4;y3n={acquireLock:rZ,releaseLock:iZ,lockRoot:MSt,isStale:DSt}});function d1(e){return Array.isArray(e.iterations)?e.iterations:[]}function S3n(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function qye(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function FSt(e){let t=e.fm.started_at;return typeof t=="string"&&t.length>0||t instanceof Date&&!Number.isNaN(t.getTime())?!0:d1(e.fm).length>0}function b3n(e,t,n,r){return r===!0?"completed":r===!1?e.length===0?"pending":e.some(FSt)?"active":"pending":e.length===0||!e.some(FSt)?"pending":e.every(s=>{let o=d1(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=qye(s.fm);return n.every(u=>c[u])})?"completed":"active"}function E3n(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=>!S3n(c.fm)[o]))return"review";if(t.length>0&&!e.every(a=>{let c=d1(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=>!qye(c.fm)[o]))return"gate";return null}function _3n(e,t){return e.length===0?null:e.every(r=>{let i=qye(r.fm);return t.every(s=>i[s])})?"advanced":null}function jSt(e){return typeof e=="string"&&e.length>0?e:e instanceof Date&&!Number.isNaN(e.getTime())?e.toISOString():null}function T3n(e){return e.map(n=>jSt(n.fm.started_at)).filter(n=>n!==null).sort()[0]??null}function v3n(e,t){if(t!=="completed")return null;let n=null;for(let r of e){let i=d1(r.fm);if(i.length===0)continue;let s=i[i.length-1];if(s.result!=="advance")continue;let o=jSt(s.completed_at);o!==null&&(n===null||o>n)&&(n=o)}return n}function R3n(e){let t=0;for(let n of e){let r=d1(n.fm);r.length>t&&(t=r.length)}return t}function Bye(e){let{stage:t,units:n,intentMode:r,hats:i=[],reviewRoles:s=[],approvalRoles:o=[],stageMergedIntoMain:a=null,elaborationVerified:c=null}=e,u=b3n(n,i,o,a),l=u==="completed"?null:E3n(n,i,s,o,r,c),d=_3n(n,o),f=T3n(n),p=v3n(n,u),h=R3n(n);return{stage:t,status:u,phase:l,started_at:f,completed_at:p,gate_outcome:d,visits:h}}var zye=v(()=>{});import{execFileSync as aZ}from"node:child_process";import{existsSync as qSt,readdirSync as A3n,readFileSync as w3n}from"node:fs";import{basename as BSt,join as oZ}from"node:path";function Gye(e){if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(Gye);if(e!==null&&typeof e=="object"){let t={};for(let[n,r]of Object.entries(e))t[n]=Gye(r);return t}return e}function GSt(e){try{let t=(0,zSt.default)(e).data;return Gye(t)}catch{return null}}function VSt(e){if(!qSt(e))return null;try{return GSt(w3n(e,"utf8"))}catch{return null}}function k3n(e){let t=oZ(e,"units");return qSt(t)?A3n(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).sort((n,r)=>n.name.localeCompare(r.name)).map(n=>{let r=VSt(oZ(t,n.name))??{};return{name:BSt(n.name,".md"),fm:r}}):[]}function I3n(e,t){if(!Ee())return null;try{return aZ("git",["show",`${e}:${t}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return null}}function WSt(e,t){let n=I3n(e,t);return n==null?null:GSt(n)}function x3n(e,t){if(!Ee())return[];try{return aZ("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 O3n(e,t,n){let r=`.haiku/intents/${t}/stages/${n}/units`,i=x3n(e,r);return i.length===0?[]:i.map(s=>{let o=WSt(e,`${r}/${s}`)??{};return{name:BSt(s,".md"),fm:o}})}function Vye(e,t,n){return n==="autopilot"?["spec"]:["spec",...Object.keys(Tl(e,t)).sort(),"user"]}function Wye(e,t,n){return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...Object.keys(Tl(e,t)).sort(),"user"]}function P3n(e,t){if(!Ee())return!1;let n=`haiku/${e}/main`,r=`.haiku/intents/${e}/stages/${t}/units`;try{return aZ("git",["ls-tree","--name-only",`${n}:${r}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` +`).some(s=>s.trim().endsWith(".md"))}catch{return!1}}function HSt(e){if(!Ee())return!1;try{return aZ("git",["rev-parse","--verify",e],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!1}}function bv(e){let{slug:t,studio:n,stage:r,intentDir:i,intentMode:s}=e,o=oZ(i,"stages",r),a=Es(n,r),c=Vye(n,r,s),u=Wye(n,r,s),l=`haiku/${t}/main`,d=`haiku/${t}/${r}`,f=Ee(),p=f&&HSt(l),m=f&&HSt(d)?d:p?l:null,g=m?O3n(m,t,r):k3n(o),y=p?P3n(t,r):null,b=oZ(o,"elaboration.md"),S=`.haiku/intents/${t}/stages/${r}/elaboration.md`,E=m?WSt(m,S):VSt(b),_=null;return E!==null&&(_=(typeof E.verified_at=="string"?E.verified_at:"").length>0),Bye({stage:r,units:g,intentMode:s,hats:a,reviewRoles:c,approvalRoles:u,stageMergedIntoMain:y,elaborationVerified:_})}var zSt,f1=v(()=>{"use strict";zye();zSt=Re(Kt(),1);Eb();Kn();ns()});import{appendFileSync as N3n,existsSync as Ipi,mkdirSync as KSt,readFileSync as xpi,writeFileSync as C3n}from"node:fs";import{dirname as YSt}from"node:path";function ZSt(e,t){try{KSt(YSt(e),{recursive:!0}),C3n(e,`${JSON.stringify(t,null,2)} +`)}catch{}}function qi(e,t){try{let n=e.replace(/\.json$/,".jsonl");KSt(YSt(n),{recursive:!0});let r={...t,ts:new Date().toISOString()};N3n(n,`${JSON.stringify(r)} +`)}catch{}}var p1=v(()=>{"use strict"});var JSt,XSt,QSt,$St=v(()=>{"use strict";JSt=["status","active_stage","started_at","completed_at","phase","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at"],XSt=["status","phase","started_at","completed_at","gate_entered_at","gate_outcome"],QSt=["status","started_at","completed_at","bolt","hat","hat_started_at","scope_reject_attempts"]});import{createHash as M3n}from"node:crypto";import{existsSync as ebt,readdirSync as D3n,readFileSync as tbt,writeFileSync as L3n}from"node:fs";import{join as cZ}from"node:path";function U3n(e){let t=JSON.stringify(e,Object.keys(e).sort());return M3n("sha256").update(t).digest("hex").slice(0,16)}function Kye(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function F3n(e,t,n){if(!n)return{};let r=cZ(e,"intents",t,"stages",n,"units");if(!ebt(r))return{};for(let i of D3n(r)){if(!i.endsWith(".md"))continue;let s=tbt(cZ(r,i),"utf8"),{data:o}=re(s);if(o.status==="active")return Kye(o,QSt)}return{}}function ci(e){if(!Mi().hooks)try{let t=ve(),n=cZ(t,"intents",e,"intent.md");if(!ebt(n))return;let r=tbt(n,"utf8"),{data:i}=re(r),s=i.active_stage||"",o=Kye(i,JSt),a={};if(s){let f=Y0(e,s),p=qb(f);a=Kye(p,XSt)}let c=F3n(t,e,s),l=U3n({intent:o,stage:a,unit:c}),d=cZ(t,"intents",e,".fsm_checksum");L3n(d,l)}catch(t){console.error(`[haiku] sealIntentState(${e}) failed:`,t)}}var uZ=v(()=>{"use strict";_f();ze();$St()});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 AZ={};Ar(AZ,{AGENT_AUTHORABLE_INTENT_FIELDS:()=>tv,AGENT_AUTHORABLE_UNIT_FIELDS:()=>Db,CREATE_TIME_FB_FIELDS:()=>jL,ERROR_OUTPUT_SCHEMA:()=>uye,FEEDBACK_ASSESSOR_HAT:()=>vbt,FEEDBACK_ORIGINS:()=>w9n,FEEDBACK_STATUSES:()=>Bb,FSM_DRIVEN_FB_FIELDS:()=>FL,FSM_DRIVEN_INTENT_FIELDS:()=>nv,FSM_DRIVEN_UNIT_FIELDS:()=>Jf,INTENT_FRONTMATTER_SCHEMA:()=>GL,INTENT_TITLE_MAX_LENGTH:()=>sSe,IntentScopeTickPersistError:()=>Vd,MAX_CONCURRENT_SUBAGENTS:()=>fv,MAX_FIX_LOOP_BOLTS:()=>Dg,MAX_INTEGRATOR_ATTEMPTS:()=>k9n,MAX_RATIONALE_BYTES:()=>$ye,MAX_RATIONALE_EXCERPT_BYTES:()=>eSe,MAX_STAGE_ITERATIONS:()=>Df,MAX_UNIT_BOLTS:()=>Ev,OK_OUTPUT_SCHEMA:()=>lye,REJECT_LOOP_MIN_REPEATS:()=>gZ,STAGE_STATE_FIELDS:()=>dye,STAGE_STATE_SCHEMA:()=>PY,UNIT_FRONTMATTER_SCHEMA:()=>rv,_resetIsGitRepoForTests:()=>Oft,appendFeedbackIteration:()=>N9n,appendFeedbackReply:()=>ESe,appendStageIteration:()=>lSe,applyAutoFixes:()=>oSe,closeCurrentStageIteration:()=>dSe,completeUnitIteration:()=>yZ,computeFeedbackSignature:()=>gbt,countConsecutiveSameRejects:()=>mbt,countInFlightUnits:()=>wbt,countPendingFeedback:()=>M9n,countUnitBolts:()=>hbt,deleteFeedbackFile:()=>RZ,deleteFrontmatterFields:()=>Zh,deriveAuthorType:()=>mSe,deriveFeedbackIdFromFilename:()=>xbt,deriveFeedbackStatus:()=>np,deriveUnitStatus:()=>J0,detectDagCycles:()=>_bt,detectSettledDuplicate:()=>ybt,dismissFeedbackClosureReply:()=>_Se,ensureHaikuGitignored:()=>eL,feedbackDir:()=>lo,feedbackSeverityRank:()=>Xc,findFeedbackFile:()=>bc,findHaikuRoot:()=>ve,formatFeedbackId:()=>Gd,getIntentScopeTickCounter:()=>T1,getStageIterationCount:()=>bbt,gitCommitAll:()=>SZ,gitCommitState:()=>wt,gitCommitStateBackgroundPush:()=>jg,gitCommitStateIfDirty:()=>pSe,handleStateTool:()=>vSe,incrementFeedbackBolt:()=>D9n,intentDir:()=>ce,intentFromCurrentBranch:()=>_v,intentTitleNeedsRepair:()=>b1,isGitRepo:()=>Ee,isIntentArchived:()=>_1,isIntentLocked:()=>E1,listInstalledSkills:()=>$0,listVisibleIntentSlugs:()=>T9n,listVisibleIntents:()=>Fg,matchesGlob:()=>tSe,migrateIterationReasonsOnRead:()=>nSe,migrateMisplacedWorktrees:()=>pbt,moveFeedbackFile:()=>Ibt,normalizeLegacyFeedbackStatus:()=>TZ,normalizeRejectReason:()=>cSe,parseFrontmatter:()=>re,persistDesignDirectionSelection:()=>gSe,persistDesignDirectionUploads:()=>ySe,pickUndispatchedUnitBlocks:()=>Abt,primaryRepoRoot:()=>Br,readClaimedAuthorId:()=>n9n,readDecisionLog:()=>I3,readFeedbackFiles:()=>Us,readIntentBody:()=>Yh,readJson:()=>qb,readStagePr:()=>Tv,readStagePrs:()=>fSe,repairDeclaredOutput:()=>_Z,resolveUnitHats:()=>iSe,runInlineQualityGates:()=>aSe,safeMkdirAndRename:()=>yv,setFrontmatterField:()=>Ne,setHaikuRootForTests:()=>Nft,setIsGitRepoForTests:()=>Pft,setStagePrField:()=>zb,setUnitFrontmatterField:()=>v9n,slugifyTitle:()=>vZ,stageDir:()=>cr,stageStatePath:()=>Y0,stampDispatchClaim:()=>Rbt,stampUnitHatLease:()=>SSe,startUnitIteration:()=>y1,stateToolDefs:()=>TSe,syncSessionMetadata:()=>Xr,timestamp:()=>mn,unitIntentDir:()=>i9n,unitOutputExists:()=>Kh,unitPath:()=>Pa,updateFeedbackFile:()=>bSe,validateBranch:()=>hSe,validateIntentSchema:()=>x0,validateRationaleCaps:()=>V3n,validateSlugArgs:()=>jD,validateUnitFrontmatter:()=>Ebt,validateUnitSchema:()=>Ng,validateUnitScope:()=>mZ,writeFeedbackFile:()=>Qo,writeJson:()=>S1});import{execFileSync as Na,execSync as Wh,spawn as j3n,spawnSync as lZ}from"node:child_process";import{randomBytes as H3n}from"node:crypto";import{appendFileSync as q3n,existsSync as ue,lstatSync as B3n,mkdirSync as Dl,readdirSync as an,readFileSync as xe,renameSync as cbt,rmSync as Qye,statSync as ubt,unlinkSync as X0,writeFileSync as In}from"node:fs";import{homedir as z3n}from"node:os";import{basename as G3n,dirname as Q0,join as te,resolve as tp,sep as Z0}from"node:path";import{readdirSync as S9n}from"node:fs";function nbt(e){return Buffer.byteLength(e,"utf-8")}function V3n(e){let t=nbt(e.agent_rationale);if(t>$ye)return{kind:"agent_rationale_too_long",bytes:t,cap:$ye};for(let n=0;neSe)return{kind:"rationale_excerpt_too_long",index:n,path:r.path,bytes:i,cap:eSe}}return null}function b1(e){if(typeof e!="string")return!0;let t=e.trim();return!!(t.length===0||t.length>sSe||/\n/.test(t))}function oSe(e,t,n){let r=te(e,t,"intent.md");if(!ue(r))return{applied:[],remaining:n};let i=[],s=[r],o=te(e,t,"stages");if(ue(o))for(let y of an(o,{withFileTypes:!0})){if(!y.isDirectory())continue;let b=te(o,y.name,"units");if(ue(b))for(let S of an(b,{withFileTypes:!0}))S.isFile()&&S.name.endsWith(".md")&&s.push(te(b,S.name))}for(let y of s){let b=xe(y,"utf8"),{text:S,removed:E}=hg(b);if(E.length===0)continue;In(y,S);let _=y.startsWith(te(e,t))?y.slice(te(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=xe(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"&&b1(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=W3n(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=te(e,t,"stages");if(ue(h))for(let y of an(h,{withFileTypes:!0})){if(!y.isDirectory())continue;let b=te(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=te(b,S.name),_=xe(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],_=te(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=te(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=xe(_,"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 W3n(e){try{return ubt(e)}catch{return null}}function K3n(e,t){if(!Ee())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 dbt(e){let t=new Map,n=nn(),r=[te(e,"studios"),te(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=te(i,s.name,"STUDIO.md");if(!ue(o))continue;let{data:a}=re(xe(o,"utf8")),c=Array.isArray(a.stages)?a.stages:[];t.set(s.name,c)}return{studioMap:t,searchPaths:r}}function EZ(e,t,n,r){let i=te(e,t,"intent.md");if(!ue(i))return[];let s=xe(i,"utf8"),{data:o}=re(s),a=[],{removed:c}=hg(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"&&b1(o.title)){let d=o.title,f=/\n/.test(d)?"title contains newlines":`title is ${d.length} chars (max ${sSe})`;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=te(e,t,"stages",d,"units");if(!ue(f))continue;let p=[];if(u){let h=null;for(let m of r){let g=te(m,u,"stages",d,"STAGE.md");if(!ue(g))continue;let{data:y}=re(xe(g,"utf8"));Array.isArray(y.inputs)&&y.inputs.length>0&&(h=y.inputs);break}if(h){let m=te(e,t);for(let g of h)for(let y of r)for(let b of["discovery","outputs"]){let S=te(y,u,"stages",g.stage,b);if(ue(S))for(let E of an(S).filter(_=>_.endsWith(".md"))){let _=xe(te(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=te(m,k);ue(P)&&p.push(k)}}}}for(let h of an(f,{withFileTypes:!0})){if(!(h.isFile()&&h.name.endsWith(".md")))continue;Y3n.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=xe(te(f,h.name),"utf8"),{removed:g}=hg(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(Ee()){let d=te(e,t,"intent.md"),f=K3n(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 fbt(e,t,n){let r=e??ve(),i=te(r,"intents");if(!ue(i))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};let{studioMap:s,searchPaths:o}=dbt(r),a;if(t){if(/[/\\]|\.\./.test(t))throw new Error(`Invalid intent slug: "${t}"`);if(!ue(te(i,t,"intent.md")))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};a=[t]}else a=an(i,{withFileTypes:!0}).filter(f=>f.isDirectory()&&ue(te(i,f.name,"intent.md"))).map(f=>f.name);let c=[],u=[],l=[],d=[];for(let f of a){let p=EZ(i,f,s,o);if(n&&p.length>0){let h=oSe(i,f,p);l.push(...h.applied),h.applied.length>0&&(p=EZ(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 Z3n(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 rbt(){if(!Ee())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 J3n(e){try{return Na("git",["-C",e,"status","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!0}}function pbt(){let e={moved:[],skipped:[],cleanedSkeletons:[]};if(!Ee())return e;let t=Br(),n=`${Z0}.haiku${Z0}worktrees${Z0}`;for(let i of rbt()){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(J3n(i.path)){e.skipped.push({path:i.path,reason:"uncommitted changes \u2014 commit/stash inside the worktree, then re-run haiku_repair"});continue}try{let u=c.slice(0,c.lastIndexOf(Z0));Dl(u,{recursive:!0}),Na("git",["worktree","move",i.path,c],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}),e.moved.push({old:i.path,new:c,branch:i.branch??"(detached)"})}catch(u){e.skipped.push({path:i.path,reason:`git worktree move failed: ${u instanceof Error?u.message:String(u)}`})}}let r=new Set;for(let i of rbt())i.path!==t&&r.add(i.path);for(let i of r){let s=te(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=te(c,u.name);if(u.isFile()||u.isSymbolicLink()){o=!0;return}u.isDirectory()&&a(l)}};a(s)}catch{o=!0}if(!o)try{Qye(s,{recursive:!0,force:!0}),e.cleanedSkeletons.push(s);let a=te(i,".haiku");ue(a)&&an(a).length===0&&Qye(a,{recursive:!0,force:!0})}catch{}}return e}function X3n(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 Q3n(e){NT();let t=Zo(),n=[];if(e){let s=lpe();for(let{slug:o,branches:a}of s){let c=a.map(u=>u.replace(`haiku/${o}/`,""));try{let u=a[0],l=Rpe(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=vpe(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=i3();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=s3(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=te(a,".haiku"),l=fbt(u,void 0,e);c.scanned=l.scanned,c.applied=l.applied,c.remaining=l.remaining;let d=te(u,"intents",s,"intent.md");if(ue(d)&&re(xe(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=a3(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=MT(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&&o3(a)}n.push(c)}let i=$3n(r,t,e);return{summaries:n,mainline:t,archivedSummary:i}}function $3n(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=s3(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=te(o,".haiku"),c=te(a,"intents");if(!ue(c))return;let l=an(c,{withFileTypes:!0}).filter(p=>p.isDirectory()&&ue(te(c,p.name,"intent.md"))).map(p=>p.name).filter(p=>!r.has(p));if(l.length===0)return;let{studioMap:d,searchPaths:f}=dbt(a);for(let p of l){let h=EZ(c,p,d,f);if(s.scanned++,n&&h.length>0){let m=oSe(c,p,h);s.applied.push(...m.applied),m.applied.length>0&&(h=EZ(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=a3(o,i,p.join(` +`));if(s.committed=h.committed,s.pushed=h.pushed,s.pushError=h.pushError,h.committed&&h.pushed){let m=MT(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&&o3(o)}if(s.scanned>0||s.setupError)return s}function e9n(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(o1!==null&&o1.cwd===e)return o1.root;if(!Ae())return o1={cwd:e,root:e},e;let t;try{let n=Pa("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 o1={cwd:e,root:t},t}function Qye(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 FKn(e){try{let t=XD(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 f1(e){try{let t=ne(e,"intent.md");if(!ue(t))return!1;let n=Ne(t,"utf-8"),{data:r}=(0,Ct.default)(n);return r.status==="locked"}catch{return!1}}function p1(e){try{let t=ne(e,"intent.md");if(!ue(t))return!1;let n=Ne(t,"utf-8"),{data:r}=(0,Ct.default)(n),i=r;return i.status==="archived"||i.archived===!0}catch{return!1}}function jKn(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 HKn(e){return ne(e,"intent-tick.json")}function h1(e){let t=HKn(e),n=Vx(t);try{let o=RKn(n);if(o.isSymbolicLink())throw new Bd(`intent dir '${n}' is a symlink \u2014 refusing (V-04)`);if(!o.isDirectory())throw new Bd(`intent dir '${n}' exists but is not a directory`)}catch(o){throw o instanceof Bd?o:new Bd(`cannot stat intent dir '${n}': ${o instanceof Error?o.message:String(o)}`)}let r=0;try{if(ue(t)){let o=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}-${vKn(6).toString("hex")}.json.tmp`);try{In(s,JSON.stringify({tick:i},null,2)),XSt(s,t)}catch(o){try{zx(s)}catch{}throw new Bd(`failed to persist intent-scope tick counter at '${t}': ${o instanceof Error?o.message:String(o)}`)}return i}function qKn(e,t){let n=ne(Br(),".haiku","worktrees",e,t),r=ne(n,".haiku","intents",e);return ue(r)?r:pe(e)}function a1(e){if(!ue(e))return!1;try{let t=QSt(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(a1(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(a1(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(a1(a))return!0}if(ue(i)){let a=$f(i,n);if(a1(a))return!0}return!1}function BKn(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 jye(e){let t=e.lastIndexOf(".");return t<=0?e:e.slice(0,t)}function fY(e,t,n){let r=kKn(n);if(jye(r)===r)return null;let i=jye(r),s=Vx(n),o=new Set;for(let c of BKn(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&&jye(d)===i&&a1(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 Na(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 qx(e,t){return ne(ar(e,t),"state.json")}function Wye(e,t){let n=e.replace(/^\.\//,""),r=t.replace(/^\.\//,"");if(n===r)return!0;if(r.endsWith("/**")){let i=r.slice(0,-3);return n===i||n.startsWith(`${i}/`)}if(r.endsWith("/"))return n.startsWith(r);if(!r.includes("*")&&n.startsWith(`${r}/`))return!0;if(r.includes("*")){let i=r.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),s=/\*\*/g,o=/\x00/g;return new RegExp(`^${i.replace(s,"\0").replace(/\*/g,"[^/]*").replace(o,".*")}$`).test(n)}return!1}function GKn(e,t,n){if(!Ae())return null;let r=t.replace(/\.md$/,""),i=ne(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 zKn(e,t,n,r){let i=r.replace(/\.md$/,""),s=[`stages/${n}/units/${i}.md`,`stages/${n}/state.json`,`stages/${n}/iteration.json`,`stages/${n}/feedback/**`,`stages/${n}/artifacts/**`,`stages/${n}/outputs/**`,`stages/${n}/discovery/**`,"state/**",".integrity.json","knowledge/**","action-log.jsonl","write-audit.jsonl","baseline.json","intent-tick.json"],o=[],a=!1,c=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 VKn(e,t,n,r){let i=GKn(e,n,t);return i!==null?i:[]}function WKn(e,t,n,r){let i=`.haiku/intents/${t}/`,s=r?e.startsWith(i)?e.slice(i.length):null:e;return!!(s!==null&&n.intentGlobs.some(o=>Wye(s,o))||r&&s===null&&(n.repoWildcard||n.repoGlobs.some(o=>Wye(e,o))))}function KKn(e,t,n,r){if(r.length===0)return;let i=Na(e,t,n);if(!ue(i))return;let s=Ne(i,"utf8"),{data:o,content:a}=(0,Ct.default)(s),c=new Set((o.outputs||[]).map(y=>y)),u=n.replace(/\.md$/,""),l=new Set([`stages/${t}/units/${u}.md`,`stages/${t}/state.json`,`stages/${t}/iteration.json`,".integrity.json"]),d=[`stages/${t}/feedback/`,"state/"],f=Ae(),p=`.haiku/intents/${e}/`,h=[];for(let y of r){let g=f?y.startsWith(p)?y.slice(p.length):null:y;if(g!==null&&(l.has(g)||d.some(S=>g.startsWith(S))||BD.has(g)))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,Ct.default.stringify(a,o))}function oY(e,t,n,r){let i=Na(e,n,r);if(!ue(i))return null;let{data:s}=re(Ne(i,"utf8")),o=s.hat_started_at,a=VKn(e,n,r,o);if(a.length===0)return null;let c=zKn(e,t,n,r),u=Ae(),l=[];for(let d of a)WKn(d,e,c,u)||l.push(d);return l.length>0?{violations:l,scope:c}:(KKn(e,n,r,a),null)}function $ye(e){return e?e.replace(/\s+/g," ").trim().toLowerCase().slice(0,100):""}function rEt(e){let t=0;for(let n of e)n.result==="reject"&&t++;return t}function iEt(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||$ye(s.reason)!==n)break;r++}}return r}function sEt(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 KSt(e,t){let r=`${e} ${t}`.replace(/```[\s\S]*?```/g," ").replace(/`[^`]*`/g," ").replace(/\*\*Rejection reason:\*\*[\s\S]*$/i," ").toLowerCase().replace(/[^a-z0-9\s]/g," ").split(/\s+/).filter(i=>i.length>=3&&!ZKn.has(i));return new Set(r)}function YKn(e,t){if(e.size===0||t.size===0)return 0;let n=0;for(let i of e)t.has(i)&&n++;let r=e.size+t.size-n;return r===0?0:n/r}function oEt(e,t,n){let r;try{let a=t?Us(e,t):[],c=Us(e,"");r=[...a,...c]}catch{return null}let i=KSt(n.title,n.body);if(i.size===0)return null;let s=n.targetUnit??null,o=null;for(let a of r){if(a.status!=="closed"&&a.status!=="rejected"&&a.status!=="non_actionable")continue;let c=a.targets?.unit??null;if(s!==c)continue;let u=YKn(i,KSt(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 aEt(e,t){return ne(ar(e,t),"decisions.jsonl")}function ZSt(e,t,n){let r=aEt(e,t);try{Ml(Vx(r),{recursive:!0}),AKn(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 EK(e,t){let n=aEt(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 eSe(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 cEt(e,t,n){if(t&&n){let s=eSe(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 tSe(e,t,n,r="feedback-revisit"){let i=eSe(e,t),s=bn();i.length>0&&(i[i.length-1].completed_at||void 0);let o=n.feedbackTitles?sEt(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 nSe(e,t,n,r){let i=eSe(e,t),s=bn();i.length===0&&void 0,{...r?{reason:r}:{}}}function u1(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,Ct.default.stringify(r,n))}function Kye(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,Ct.default.stringify(t.body,t.data))}catch{}}function cY(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,Ct.default.stringify(i,r)))}function QKn(e){let t=[],n=new Set;for(let r of XKn){r.lastIndex=0;for(let i of e.matchAll(r)){let s=i[1],o=i[2];if(!s||!o)continue;let a=`${s}@${o}`;n.has(a)||(n.add(a),t.push({full:i[0],identifier:s,path:o}))}}return t}function $Kn(e){let t=QKn(e);if(t.length===0)return null;let n=process.cwd(),r=n.endsWith(Bx)?n:`${n}${Bx}`;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${Hye(i.identifier)}\\b|\\bfunction\\s+${Hye(i.identifier)}\\b|\\b${Hye(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 Hye(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function e9n(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 n9n(e){if(!qye){let t=new $St.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 t9n(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);qye=o,Zye=()=>o.errors}return qye(e)}function r9n(){return Zye?Zye():[]}function i9n(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 nY(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 uEt(e,t){let n=[];if(!Ng(e)&&Ng.errors)for(let i of Ng.errors)n.push(i9n(i));if(Array.isArray(e.depends_on))for(let i of e.depends_on){if(typeof i!="string")continue;(i===t.unit||nY(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=>nY(i,o))&&!nY(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=>nY(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 lEt(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 m1(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:m1(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 s9n(e,t){return Ug(e,t).map(n=>n.slug)}function gv(){if(!Ae())return null;let e=mr();if(!e)return null;let t=e.match(/^haiku\/([^/]+)\/([^/]+)$/);if(!t)return null;let n=t[1],r=t[2];return{slug:n,stage:r==="main"?null:r}}function Le(e,t,n){let r=Ne(e,"utf8"),i=(0,Ct.default)(r),s={...i.data,[t]:n};In(e,Ct.default.stringify(i.content,m1(s)))}function Kh(e,t){if(!ue(e))return;let n=Ne(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,m1(i)))}function o9n(e,t,n,r,i){let s=Na(e,t,n);ue(s)&&Le(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)&&Le(a,r,i)}function YSt(e){let{data:t}=(0,Ct.default)(`--- +`)}`,failures:u}}function t9n(e){try{let t=s1(Br());return[...new Set(t.map(n=>n.requires_tool).filter(n=>typeof n=="string"&&n.length>0))]}catch{return[]}}function ce(e){return te(ve(),"intents",e)}function Yh(e){let t=te(ce(e),"intent.md");if(!ue(t))return null;let{body:n}=re(xe(t,"utf8"));return(n||"").trim()||null}function E1(e){try{let t=te(e,"intent.md");if(!ue(t))return!1;let n=xe(t,"utf-8"),{data:r}=(0,Ct.default)(n);return r.status==="locked"}catch{return!1}}function _1(e){try{let t=te(e,"intent.md");if(!ue(t))return!1;let n=xe(t,"utf-8"),{data:r}=(0,Ct.default)(n),i=r;return i.status==="archived"||i.archived===!0}catch{return!1}}function n9n(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 r9n(e){return te(e,"intent-tick.json")}function T1(e){let t=r9n(e),n=Q0(t);try{let o=B3n(n);if(o.isSymbolicLink())throw new Vd(`intent dir '${n}' is a symlink \u2014 refusing (V-04)`);if(!o.isDirectory())throw new Vd(`intent dir '${n}' exists but is not a directory`)}catch(o){throw o instanceof Vd?o:new Vd(`cannot stat intent dir '${n}': ${o instanceof Error?o.message:String(o)}`)}let r=0;try{if(ue(t)){let o=xe(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=te(n,`.intent-tick-${process.pid}-${H3n(6).toString("hex")}.json.tmp`);try{In(s,JSON.stringify({tick:i},null,2)),cbt(s,t)}catch(o){try{X0(s)}catch{}throw new Vd(`failed to persist intent-scope tick counter at '${t}': ${o instanceof Error?o.message:String(o)}`)}return i}function i9n(e,t){let n=te(Br(),".haiku","worktrees",e,t),r=te(n,".haiku","intents",e);return ue(r)?r:ce(e)}function m1(e){if(!ue(e))return!1;try{let t=ubt(e);if(t.isFile()&&t.size===0)return!1}catch{return!0}return!0}function Kh(e,t,n){let r=tp(ce(e),n);if(m1(r))return!0;let i=te(Br(),".haiku","worktrees",e,t),s=te(i,".haiku","intents",e);if(ue(s)){let a=tp(s,n);if(m1(a))return!0}let o=(()=>{try{return Wh("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{return null}})();if(o){let a=tp(o,n);if(m1(a))return!0}if(ue(i)){let a=tp(i,n);if(m1(a))return!0}return!1}function s9n(e,t){let n=[ce(e)],r=te(Br(),".haiku","worktrees",e,t),i=te(r,".haiku","intents",e);ue(i)&&n.push(i);try{let s=Wh("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 Yye(e){let t=e.lastIndexOf(".");return t<=0?e:e.slice(0,t)}function _Z(e,t,n){let r=G3n(n);if(Yye(r)===r)return null;let i=Yye(r),s=Q0(n),o=new Set;for(let c of s9n(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&&Yye(d)===i&&m1(te(u,d))&&o.add(d)}if(o.size!==1)return null;let a=[...o][0];return s==="."?a:te(s,a)}function cr(e,t){return te(ce(e),"stages",t)}function Pa(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=te(cr(e,t),"units"),s=te(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?te(i,u[0]):s}function Y0(e,t){return te(cr(e,t),"state.json")}function tSe(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 o9n(e,t,n){if(!Ee())return null;let r=t.replace(/\.md$/,""),i=te(Br(),".haiku","worktrees",e,r);if(!ue(i))return null;try{let s=`haiku/${e}/${r}`,o=`haiku/${e}/${n}`,a=Wh(`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(Wh(`git diff --name-only ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(Wh(`git log --name-only --pretty=format: ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(Wh("git diff --name-only HEAD",{cwd:i,encoding:"utf8"}).toString()),u(Wh("git diff --name-only --cached",{cwd:i,encoding:"utf8"}).toString()),u(Wh("git ls-files --others --exclude-standard",{cwd:i,encoding:"utf8"}).toString()),[...c].filter(l=>ue(te(i,l)))}catch{return null}}function a9n(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 c9n(e,t,n,r){let i=o9n(e,n,t);return i!==null?i:[]}function u9n(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=>tSe(s,o))||r&&s===null&&(n.repoWildcard||n.repoGlobs.some(o=>tSe(e,o))))}function l9n(e,t,n,r){if(r.length===0)return;let i=Pa(e,t,n);if(!ue(i))return;let s=xe(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=Ee(),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))||JL.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 mZ(e,t,n,r){let i=Pa(e,n,r);if(!ue(i))return null;let{data:s}=re(xe(i,"utf8")),o=s.hat_started_at,a=c9n(e,n,r,o);if(a.length===0)return null;let c=a9n(e,t,n,r),u=Ee(),l=[];for(let d of a)u9n(d,e,c,u)||l.push(d);return l.length>0?{violations:l,scope:c}:(l9n(e,n,r,a),null)}function cSe(e){return e?e.replace(/\s+/g," ").trim().toLowerCase().slice(0,100):""}function hbt(e){let t=0;for(let n of e)n.result==="reject"&&t++;return t}function mbt(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||cSe(s.reason)!==n)break;r++}}return r}function gbt(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 ibt(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&&!d9n.has(i));return new Set(r)}function f9n(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 ybt(e,t,n){let r;try{let a=t?Us(e,t):[],c=Us(e,"");r=[...a,...c]}catch{return null}let i=ibt(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=f9n(i,ibt(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 Sbt(e,t){return te(cr(e,t),"decisions.jsonl")}function sbt(e,t,n){let r=Sbt(e,t);try{Dl(Q0(r),{recursive:!0}),q3n(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 I3(e,t){let n=Sbt(e,t);if(!ue(n))return[];let r=xe(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 uSe(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 bbt(e,t,n){if(t&&n){let s=uSe(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 lSe(e,t,n,r="feedback-revisit"){let i=uSe(e,t),s=mn();i.length>0&&(i[i.length-1].completed_at||void 0);let o=n.feedbackTitles?gbt(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 dSe(e,t,n,r){let i=uSe(e,t),s=mn();i.length===0&&void 0,{...r?{reason:r}:{}}}function y1(e,t){if(!ue(e))return;let{data:n,body:r}=re(xe(e,"utf8")),i=Array.isArray(n.iterations)?n.iterations.slice():[];i.push({hat:t,started_at:mn(),completed_at:null,result:null}),n.iterations=i,In(e,Ct.default.stringify(r,n))}function nSe(e){if(!ue(e))return;let t;try{t=re(xe(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 yZ(e,t,n){if(!ue(e))return;let{data:r,body:i}=re(xe(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=mn(),o.result=t,n&&(o.message=n),r.iterations=s,In(e,Ct.default.stringify(i,r)))}function m9n(e){let t=[],n=new Set;for(let r of h9n){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 g9n(e){let t=m9n(e);if(t.length===0)return null;let n=process.cwd(),r=n.endsWith(Z0)?n:`${n}${Z0}`;for(let i of t){let s=i.path.startsWith("/")?i.path:te(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=xe(o,"utf8");if(!new RegExp(`(?:export[^\\n]*\\b${Zye(i.identifier)}\\b|\\bfunction\\s+${Zye(i.identifier)}\\b|\\b${Zye(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 Zye(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function y9n(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 b9n(e){if(!Jye){let t=new lbt.Ajv({allErrors:!0,strict:!1}),n=nn(),r=te(n,"schemas","providers");if(ue(r)){let a="https://haiku.dev/schemas/";for(let c of S9n(r))if(c.endsWith(".schema.json"))try{let u=JSON.parse(xe(te(r,c),"utf8"));u.$id=`${a}providers/${c}`,t.addSchema(u)}catch{}}let i=te(n,"schemas","settings.schema.json"),s=ue(i)?JSON.parse(xe(i,"utf8")):{type:"object",additionalProperties:!0},o=t.compile(s);Jye=o,rSe=()=>o.errors}return Jye(e)}function E9n(){return rSe?rSe():[]}function _9n(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 dZ(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 Ebt(e,t){let n=[];if(!Ng(e)&&Ng.errors)for(let i of Ng.errors)n.push(_9n(i));if(Array.isArray(e.depends_on))for(let i of e.depends_on){if(typeof i!="string")continue;(i===t.unit||dZ(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=>dZ(i,o))&&!dZ(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=>dZ(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 _bt(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 v1(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:v1(r),body:i.trim()}};try{return t(e)}catch(n){if(!hI(n))throw n;let{text:r,removed:i}=hg(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=te(e,i,"intent.md");if(!ue(s))continue;let{data:o}=re(xe(s,"utf8"));!n&&o.archived===!0||r.push({slug:i,data:o})}return r}function T9n(e,t){return Fg(e,t).map(n=>n.slug)}function _v(){if(!Ee())return null;let e=gr();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 Ne(e,t,n){let r=xe(e,"utf8"),i=(0,Ct.default)(r),s={...i.data,[t]:n};In(e,Ct.default.stringify(i.content,v1(s)))}function fSe(e){let t=te(ce(e),"intent.md");if(!ue(t))return{};let r=re(xe(t,"utf8")).data.stage_prs;return!r||typeof r!="object"||Array.isArray(r)?{}:r}function Tv(e,t){return fSe(e)[t]??null}function zb(e,t,n,r){let i=te(ce(e),"intent.md");if(!ue(i))return;let s=fSe(e),o={...s[t]??{},[n]:r},a={...s,[t]:o};Ne(i,"stage_prs",a)}function Zh(e,t){if(!ue(e))return;let n=xe(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,v1(i)))}function v9n(e,t,n,r,i){let s=Pa(e,t,n);ue(s)&&Ne(s,r,i);let o=te(Br(),".haiku","worktrees",e,n);if(!ue(o))return;let a=te(o,".haiku","intents",e,"stages",t,"units",n.endsWith(".md")?n:`${n}.md`);ue(a)&&Ne(a,r,i)}function obt(e){let{data:t}=(0,Ct.default)(`--- ${e} --- -`);return m1(t)}function a9n(e,t){let n=t.split("."),r=e;for(let i of n){if(r==null||typeof r!="object")return;r=r[i]}return r}function jE(e){return ue(e)?JSON.parse(Ne(e,"utf8")):{}}function l1(e,t){Ml(ne(e,".."),{recursive:!0}),In(e,`${JSON.stringify(t,null,2)} -`)}function bn(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function VL(){if(Ae())try{let e=ne(Br(),".gitignore"),t=".haiku/worktrees/",n="";try{ue(e)&&(n=Ne(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(` +`);return v1(t)}function R9n(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 qb(e){return ue(e)?JSON.parse(xe(e,"utf8")):{}}function S1(e,t){Dl(te(e,".."),{recursive:!0}),In(e,`${JSON.stringify(t,null,2)} +`)}function mn(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function eL(){if(Ee())try{let e=te(Br(),".gitignore"),t="";try{ue(e)&&(t=xe(e,"utf8"))}catch{}let n=t.split(` +`).map(c=>c.trim()).filter(Boolean),r=new Set(n),i=A9n.filter(c=>!r.has(c.entry)&&!c.accept.some(u=>r.has(u))).map(c=>c.entry);if(i.length===0)return;let s="# H\xB7AI\xB7K\xB7U engine-managed: worktree pool (linked git worktrees) + runtime-verification proof (regenerated binary churn \u2014 uploaded to the PR, never committed).",o=t&&!t.endsWith(` `)?` -`:"";In(e,`${n}${s}${n?` -`:""}${i} -${t} -`),Pa("git",["add","--",".gitignore"],{encoding:"utf8",stdio:"pipe"}),Pa("git",["commit","-m","chore(haiku): gitignore engine worktree pool (.haiku/worktrees/)","--",".gitignore"],{encoding:"utf8",stdio:"pipe"})}catch{}}function dEt(e){Pa("git",["add","--",e],{encoding:"utf8",stdio:"pipe"});try{Pa("git",["rm","--cached","-r","--ignore-unmatch","-f","--",ne(e,"worktrees")],{encoding:"utf8",stdio:"pipe"})}catch{}}function uY(e){if(!Ae())return{committed:!1,pushed:!1};try{Pa("git",["add","-A","--",ve(),"."],{encoding:"utf8",stdio:"pipe"}),Pa("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"});try{return Pa("git",["push"],{encoding:"utf8",stdio:"pipe",timeout:Aa,env:Ra}),{committed:!0,pushed:!0}}catch(t){return{committed:!0,pushed:!1,pushError:t instanceof Error?t.message:String(t)}}}catch{return{committed:!1,pushed:!1}}}function wt(e){if(!Ae())return{committed:!1,pushed:!1};try{dEt(ve()),Pa("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"});try{return Pa("git",["push"],{encoding:"utf8",stdio:"pipe",timeout:Aa,env:Ra}),{committed:!0,pushed:!0}}catch(t){return{committed:!0,pushed:!1,pushError:t instanceof Error?t.message:String(t)}}}catch{return{committed:!1,pushed:!1}}}function rSe(e){if(!Ae())return{committed:!1,pushed:!1};try{if(!Pa("git",["status","--porcelain","--",ve()],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim())return{committed:!1,pushed:!1}}catch{}return wt(e)}function Fg(e){if(!Ae())return{committed:!1};try{dEt(ve()),Pa("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"})}catch{return{committed:!1}}try{let t=TKn("git",["push"],{stdio:"ignore",detached:!0});t.unref(),t.on("error",()=>{})}catch{}return{committed:!0}}function iSe(e,t,n){if(!Ae())return"";let r=mr();if(!r)return"";let i=`haiku/${e}/`;if(t==="intent"){if(!r.startsWith(i))return`\u26A0\uFE0F WRONG BRANCH: Expected a branch under '${i}' but on '${r}'. Run \`git checkout haiku/${e}/main\` or the appropriate stage branch. Custom branch names break the H\xB7AI\xB7K\xB7U lifecycle.`}else if(t==="unit"&&n){let s=`haiku/${e}/${n}`;if(r!==s&&!r.startsWith(i))return`\u26A0\uFE0F WRONG BRANCH: Expected '${s}' or a branch under '${i}' but on '${r}'. Ensure you're working in the correct worktree.`}return""}function rY(e){return e.pushed||!e.committed?"":` +`:"";In(e,`${t}${o}${t?` +`:""}${s} +${i.join(` +`)} +`),Na("git",["add","--",".gitignore"],{encoding:"utf8",stdio:"pipe"}),Na("git",["commit","-m",`chore(haiku): gitignore engine artifacts (${i.join(", ")})`,"--",".gitignore"],{encoding:"utf8",stdio:"pipe"})}catch{}}function Tbt(e){Na("git",["add","--",e],{encoding:"utf8",stdio:"pipe"});try{Na("git",["rm","--cached","-r","--ignore-unmatch","-f","--",te(e,"worktrees")],{encoding:"utf8",stdio:"pipe"})}catch{}}function SZ(e){if(!Ee())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: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(!Ee())return{committed:!1,pushed:!1};try{Tbt(ve()),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 pSe(e){if(!Ee())return{committed:!1,pushed:!1};try{if(!Na("git",["status","--porcelain","--",ve()],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim())return{committed:!1,pushed:!1}}catch{}return wt(e)}function jg(e){if(!Ee())return{committed:!1};try{Tbt(ve()),Na("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"})}catch{return{committed:!1}}try{let t=j3n("git",["push"],{stdio:"ignore",detached:!0});t.unref(),t.on("error",()=>{})}catch{}return{committed:!0}}function hSe(e,t,n){if(!Ee())return"";let r=gr();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 fZ(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 iY(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 c1(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 ea(e,t){if(hE())return null;let n=gr(e,t);if(!n.ok){if(n.block==="dirty_tree"){let r=n.dirty_files||[],i=r.length>0?` +\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 pZ(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 g1(e){let t=ve(),n=te(t,"intents",e,"intent.md");if(!ue(n))return"";let{data:r}=re(xe(n,"utf8"));return r.active_stage||""}function ea(e,t){if(gb())return null;let n=yr(e,t);if(!n.ok){if(n.block==="dirty_tree"){let r=n.dirty_files||[],i=r.length>0?` Files to commit: ${r.map(o=>` - ${o}`).join(` @@ -701,51 +702,51 @@ ${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 lY(e,t){let n=ve(),r=c1(e);if(r){let s=Na(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=Na(e,s,t);if(ue(o))return{path:o,stage:s}}return null}function Yye(e,t,n){return g1(e,t)}function g1(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 sY(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,Ct.default)(u),f=l.data.description||t;return`[stage_scope] ${t}: ${f} | ${d.trim().slice(0,500)}`}}catch{}return""}function Xr(e,t){if(t)try{let n=ve(),r=ne(n,"intents",e,"intent.md");if(!ue(r))return;let{data:i}=re(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}}FSt(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 Gx(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 pY(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 sSe(e){return l9n.has(e)?"human":"agent"}function d9n(e){return sSe(e)==="human"?"user":"agent"}function f9n(e,t){return Array.isArray(e)?e:t.startsWith("user-")?["user"]:[]}function hY(e,t=60){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-{2,}/g,"-").slice(0,t).replace(/-+$/,"")}function oSe(e){let t=ne(ar(e.slug,e.stage),"artifacts","design-direction");Ml(t,{recursive:!0});for(let s of an(t))if(/^dd-\d+-.*\.(png|jpe?g|webp)$/i.test(s))try{zx(ne(t,s))}catch{}let n=hY(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-${y1(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()},Le(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}`)}Ml(Vx(s),{recursive:!0}),In(s,Ct.default.stringify(`${a.join(` + 3. Retry the call.`};return{content:[{type:"text",text:JSON.stringify(s,null,2)}],isError:!0}}return{content:[{type:"text",text:`Error: stage-branch enforcement failed for intent '${e}', stage '${t??"(none)"}' \u2014 ${n.message}`}],isError:!0}}return null}function bZ(e,t){let n=ve(),r=g1(e);if(r){let s=Pa(e,r,t);if(ue(s))return{path:s,stage:r}}let i=te(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 iSe(e,t,n){return R1(e,t)}function R1(e,t){try{let n=ve(),r=te(n,"intents",e,"intent.md");if(!ue(r))return[];let{data:i}=re(xe(r,"utf8")),s=i.studio||"";if(!s)return[];let o=nn();for(let a of[te(process.cwd(),".haiku","studios"),te(o,"studios")]){let c=te(a,s,"stages",t,"STAGE.md");if(!ue(c))continue;let{data:u}=re(xe(c,"utf8"));return u.hats||[]}}catch{}return[]}function hZ(e,t){try{let n=ve(),r=te(n,"intents",e,"intent.md");if(!ue(r))return"";let{data:i}=re(xe(r,"utf8")),s=i.studio||"";if(!s)return"";let o=nn();for(let a of[te(process.cwd(),".haiku","studios"),te(o,"studios")]){let c=te(a,s,"stages",t,"STAGE.md");if(!ue(c))continue;let u=xe(c,"utf8"),l=re(u),{content:d}=(0,Ct.default)(u),f=l.data.description||t;return`[stage_scope] ${t}: ${f} | ${d.trim().slice(0,500)}`}}catch{}return""}function Xr(e,t){if(t)try{let n=ve(),r=te(n,"intents",e,"intent.md");if(!ue(r))return;let{data:i}=re(xe(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=bv({slug:e,studio:s,stage:o,intentDir:te(n,"intents",e),intentMode:f}).phase??""}let c=null,u=null,l=null;if(o){let f=te(cr(e,o),"units");if(ue(f))for(let p of an(f).filter(h=>h.endsWith(".md"))){let{data:h}=re(xe(te(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[te(process.cwd(),".haiku","studios"),te(f,"studios")]){let h=te(p,s,"stages",o,"STAGE.md");if(!ue(h))continue;let{data:m}=re(xe(h,"utf8"));d=m.description||o;break}}ZSt(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 J0(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 TZ(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 mSe(e){return I9n.has(e)?"human":"agent"}function x9n(e){return mSe(e)==="human"?"user":"agent"}function O9n(e,t){return Array.isArray(e)?e:t.startsWith("user-")?["user"]:[]}function vZ(e,t=60){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-{2,}/g,"-").slice(0,t).replace(/-+$/,"")}function gSe(e){let t=te(cr(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{X0(te(t,s))}catch{}let n=vZ(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-${A1(i)}-${n}.${a}`;In(te(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=te(ce(e.slug),"intent.md");if(ue(s)){let o=xe(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:mn()},Ne(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=te(cr(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"archetype",archetype:e.archetype,recorded_at:mn()};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(Q0(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 aSe(e){let t=ne(ar(e.slug,e.stage),"artifacts","design-direction"),n=ne(t,"uploads");Ml(n,{recursive:!0});for(let s of an(n))if(/^up-\d+-.*\.(png|jpe?g|webp|svg|pdf|gif)$/i.test(s))try{zx(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=hY(e.files[i-1]?.filename.replace(/\.[^.]+$/,"")??"")||`upload-${i}`,l=`up-${y1(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()},Le(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}`)}}Ml(Vx(s),{recursive:!0}),In(s,Ct.default.stringify(`${a.join(` +`,o))}catch(s){console.error(`[haiku] failed to write design-direction.md manifest: ${s instanceof Error?s.message:String(s)}`)}return{annotations:r,artifactsDir:t}}function ySe(e){let t=te(cr(e.slug,e.stage),"artifacts","design-direction"),n=te(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{X0(te(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=vZ(e.files[i-1]?.filename.replace(/\.[^.]+$/,"")??"")||`upload-${i}`,l=`up-${A1(i)}-${u}.${c}`;In(te(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=te(ce(e.slug),"intent.md");if(ue(s)){let o=xe(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:mn()},Ne(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=te(cr(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"upload",recorded_at:mn()};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(Q0(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 pEt(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,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((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,Ct.default.stringify(`${l.content.trimEnd()} -`,y))}catch{}}function cSe(e){let{slug:t,stage:n,unit:r,hat:i}=e;try{let s=Na(t,n,r);if(!ue(s))return;let a=(0,Ct.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(),Le(s,"iterations",c)}catch{}}function JSt(e,t){try{return jx(e,()=>{let n=pe(e),r=ne(n,"intent.md");if(!ue(r))return null;let i=(0,Ct.default)(Ne(r,"utf8")).data,s=typeof i.studio=="string"?i.studio:"";if(!s)return null;if(t){let d=lY(e,t);if(!d)return null;let f=re(Ne(d.path,"utf8")),p=g1(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 cSe({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 Bye(e,t){let n=pe(e),r=ue(ne(n,"intent.md"))?(0,Ct.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)=>Jc(d.severity)-Jc(f.severity))[0];return pEt({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 hEt(e,t,n){if(n<=0)return[];let r=pe(e),i=ai(e,t,r)??"";if(!i)return[];let s=g1(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))||(Le(h.path,"started_at",bn()),u1(h.path,o),cSe({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 mEt(e,t,n){let r=g1(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 gEt(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 y1(e){return e.toString().padStart(3,"0")}function Qo(e,t,n){let r=lo(e,t);Ml(r,{recursive:!0});let i=gEt(r),s=y1(i),o=hY(n.title),a=`${s}-${o}.md`,c=ne(r,a),u=n.origin||"agent",l=n.authorType??sSe(u),d=n.author||d9n(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=qx(e,t),R=ue(A)?jE(A):{};h=cEt(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?te(cr(e,t),"feedback"):te(ce(e),"feedback")}function Rbt(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=te(s,a),u=xe(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:mn(),result:null,bolt:m});let g={...d,iterations:f};In(c,Ct.default.stringify(`${l.content.trimEnd()} +`,g))}catch{}}function SSe(e){let{slug:t,stage:n,unit:r,hat:i}=e;try{let s=Pa(t,n,r);if(!ue(s))return;let a=(0,Ct.default)(xe(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=mn(),Ne(s,"iterations",c)}catch{}}function abt(e,t){try{return W0(e,()=>{let n=ce(e),r=te(n,"intent.md");if(!ue(r))return null;let i=(0,Ct.default)(xe(r,"utf8")).data,s=typeof i.studio=="string"?i.studio:"";if(!s)return null;if(t){let d=bZ(e,t);if(!d)return null;let f=re(xe(d.path,"utf8")),p=R1(e,d.stage),h=uv(f.data,p);if(!h)return null;let m=WI({slug:e,studio:s,unit:t,stage:d.stage,hat:h.hat,terminal:h.terminal});return SSe({slug:e,stage:d.stage,unit:t,hat:h.hat}),m}let o=$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:WI({slug:e,studio:s,unit:u[0],stage:a,hat:c,terminal:l})})}catch{return null}}function Xye(e,t){let n=ce(e),r=ue(te(n,"intent.md"))?(0,Ct.default)(xe(te(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:te(n,"stages",d,"feedback")});c.push({stage:"",dir:te(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(xe(te(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 Rbt({slug:e,stage:l.stage,feedbackId:l.feedbackId,hat:l.firstHat}),VI({slug:e,studio:t,feedbackId:l.feedbackId,stage:l.stage,hat:l.firstHat,terminal:l.terminal})}function Abt(e,t,n){if(n<=0)return[];let r=ce(e),i=ai(e,t,r)??"";if(!i)return[];let s=R1(e,i);if(s.length===0)return[];let o=s[0],a=s[s.length-1],c=s.length===1,u=te(cr(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=te(u,h),g;try{g=re(xe(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=>!Kh(e,h.name,b))||(Ne(h.path,"started_at",mn()),y1(h.path,o),SSe({slug:e,stage:i,unit:h.name,hat:o}),p.push(WI({slug:e,studio:t,unit:h.name,stage:i,hat:o,terminal:c})))}return p.length>0&&ci(e),p}function wbt(e,t,n){let r=R1(e,t);if(r.length===0)return 0;let i=te(cr(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(xe(te(i,o),"utf8")).data}catch{continue}!c||c.started_at==null||uv(c,r)!==null&&s++}return s}function kbt(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 A1(e){return e.toString().padStart(3,"0")}function Qo(e,t,n){let r=lo(e,t);Dl(r,{recursive:!0});let i=kbt(r),s=A1(i),o=vZ(n.title),a=`${s}-${o}.md`,c=te(r,a),u=n.origin||"agent",l=n.authorType??mSe(u),d=n.author||x9n(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=Y0(e,t),A=ue(R)?qb(R):{};h=bbt(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=te(r,m);In(k,Buffer.from(R[2],"base64"))}}let g=pv(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:f9n(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(` -${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-${y1(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:m9n(l),iterations:p9n(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 p9n(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 h9n(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,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,m1(f)))}function m9n(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 g9n(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 yEt(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){pY(o);let S=Ct.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:mn(),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"?mn():null,resolution:S,replies:[],targets:{unit:n.targetUnit===void 0||n.targetUnit===null?null:n.targetUnit,invalidates:O9n(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=xe(te(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-${A1(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:C9n(l),iterations:P9n(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 P9n(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 N9n(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=te(i,o),c=xe(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,v1(f)))}function C9n(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 M9n(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(xe(te(r,c),"utf8"));return{path:te(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 Ibt(e,t,n,r){let i=bc(e,t,n);if(!i)return null;let s=mn(),o={...i.data,triaged_at:s};if(t===r){TZ(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?_:SEt(i.filename),file:b,moved:!1,triaged_at:s}}let a=lo(e,r);Ml(a,{recursive:!0});let c=gEt(a),u=y1(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=Ct.default.stringify(` +`,o);In(i.path,S);let E=t?`.haiku/intents/${e}/stages/${t}/feedback/${i.filename}`:`.haiku/intents/${e}/feedback/${i.filename}`,_=o.id;return{feedback_id:typeof _=="string"&&_.length>0?_:xbt(i.filename),file:E,moved:!1,triaged_at:s}}let a=lo(e,r);Dl(a,{recursive:!0});let c=kbt(a),u=A1(c),l=i.filename.match(/^\d+-(.+)\.md$/),d=l?l[1]:"moved-feedback",f=`${u}-${d}.md`,p=te(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=te(h,`${g}-${d}.${S}`);if(ue(E)){let _=te(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}`);XSt(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,Ct.default.stringify(` +`,o);if(In(p,y),g)for(let S of["png","jpg","jpeg","webp"]){let E=te(h,`${g}-${d}.${S}`);if(ue(E)){let _=te(a,`${u}-${d}.${S}`);cbt(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))}}zx(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 SEt(e){let t=e.match(/^(\d+)-/);return t?`FB-${t[1]}`:"FB-???"}function qd(e){return`FB-${e.toString().padStart(3,"0")}`}function uSe(e,t,n,r,i="agent"){let s=Sc(e,t,n);if(!s)return{ok:!1,error:t?`Error: feedback '${n}' not found in stage '${t}'`:`Error: feedback '${n}' not found (intent-scope)`};if(r.status===void 0&&r.closed_by===void 0&&r.resolution===void 0)return{ok:!1,error:"Error: at least one of 'status' / 'closed_by' / 'resolution' must be provided"};if(r.resolution!==void 0&&r.resolution!==null&&!new Set(["question","inline_fix","stage_revisit"]).has(r.resolution))return{ok:!1,error:"Error: resolution must be one of: question, inline_fix, stage_revisit (or null to clear). For cross-stage routing, call `haiku_feedback_move` to relocate the FB instead."};if(r.status!==void 0&&!HE.includes(r.status))return{ok:!1,error:`Error: status must be one of: ${HE.join(", ")}`};if(i==="agent"&&typeof r.closed_by=="string"&&r.closed_by.length>0&&s.data.author_type==="human")return{ok:!1,error:"Error: agents cannot close human-authored feedback. Only the original author may set `closed_by` via the review UI."};if(i==="agent"&&r.status==="closed"&&s.data.author_type==="human")return{ok:!1,error:"Error: agents cannot set status='closed' on human-authored feedback. Only the original author may close the item, via the review UI."};if(typeof r.closed_by=="string"&&/^unit-\d+[-_]/i.test(r.closed_by)&&t){let c=r.closed_by.replace(/\.md$/,""),u=ne(ar(e,t),"units",`${c}.md`);if(!ue(u))return{ok:!1,error:`Error: closed_by='${r.closed_by}' references a unit that does not exist at stages/${t}/units/${c}.md. Agents cannot mark findings closed via a ghost unit. Either create the unit spec first (additive elaboration), or close via a fix-loop marker (e.g. 'fix-loop:${n}:bolt-N').`}}let o=[],a={...s.data};return r.status!==void 0&&(a.status=r.status,o.push("status")),r.closed_by!==void 0&&(r.closed_by===null?delete a.closed_by:a.closed_by=r.closed_by,o.push("closed_by")),r.resolution!==void 0&&(a.resolution=r.resolution,o.push("resolution")),pY(a),In(s.path,Ct.default.stringify(` +`,o))}}X0(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 xbt(e){let t=e.match(/^(\d+)-/);return t?`FB-${t[1]}`:"FB-???"}function Gd(e){return`FB-${e.toString().padStart(3,"0")}`}function bSe(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&&!Bb.includes(r.status))return{ok:!1,error:`Error: status must be one of: ${Bb.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=te(cr(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")),TZ(a),In(s.path,Ct.default.stringify(` ${s.body} -`,a)),{ok:!0,updated_fields:o}}function lSe(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,Ct.default.stringify(` +`,a)),{ok:!0,updated_fields:o}}function ESe(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=pv(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:mn()},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 y9n(e,t,n){let r=Sc(e,t,n);if(!r)return null;let s=(typeof r.data.bolt=="number"?r.data.bolt:0)+1,o={...r.data,bolt:s,status:"fixing"};return In(r.path,Ct.default.stringify(` +`,d)),{ok:!0,reply_index:l.length-1,status:np(d)}}function D9n(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 dSe(e,t,n){let r=Sc(e,t,n);if(!r)return null;if(!(r.data.closure_reply_unread===!0))return{ok:!0,already_dismissed:!0};let s={...r.data,closure_reply_unread:!1};return In(r.path,Ct.default.stringify(` +`,o)),{bolt:s}}function _Se(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 mY(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."};zx(i.path);let a=Vx(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{zx(d)}catch{}}}return{ok:!0}}function Wx(){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(wKn(),".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 IL(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 S9n(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 E9n(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 RZ(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."};X0(i.path);let a=Q0(i.path),c=i.filename.match(/^(\d+-.+)\.md$/);if(c){let u=c[1];for(let l of["png","jpg","jpeg","webp"]){let d=te(a,`${u}.${l}`);if(ue(d))try{X0(d)}catch{}}}return{ok:!0}}function $0(){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=te(i,c,"SKILL.md");if(ue(u)){t.add(c);try{let l=xe(u,"utf8"),{data:d}=re(l);e.push({slug:c,name:d.name||c,description:d.description||"",source:s})}catch{}}}}n(te(process.cwd(),".claude","skills"),"project");try{let i=te(z3n(),".claude","plugins");if(ue(i))for(let s of an(i,{withFileTypes:!0}))s.isDirectory()&&n(te(i,s.name,"skills"),"global")}catch{}let r=nn();return r&&n(te(r,"skills"),"plugin"),e}function jD(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 L9n(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 U9n(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 b9n(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 _9n(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=b9n(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=Mu(o,c),p=d.length,h=d.map((y,g)=>S9n(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(E9n(E)),m.push("```"),m.push("")}return{message:m.join(` -`),studio:s,stage:c}}function pSe(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&&vft(i.CLAUDE_SESSION_ID);let s=IL(t);if(s)return s;switch(e){case"haiku_intent_get":{let o=Be(t,tge,"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,nge,"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?E=jD(p,{localOnly:!0})?"pending_seal":"completed":E="active";let 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,Nge,"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,Bge,"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: [${CE.join(", ")}]. For the unit body/title use haiku_unit_read.`},{isError:!0});let c=Na(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,qge,"haiku_unit_set");if(o)return o;let a=t.field,c=t.value,u=hE();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=ea(t.intent,t.stage);if(l)return l;let d=Na(t.intent,t.stage,t.unit);if(ue(d)){let{data:p}=re(Ne(d,"utf8")),h=Gx(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 Le(d,a,c),n("ok")}case"haiku_unit_list":{let o=Be(t,Gge,"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(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,Vge,"haiku_unit_start");if(o)return o;let a=lY(t.intent,t.unit),c=t.stage||a?.stage||c1(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=Na(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=sY(t.intent,c);return n(R?`ok (already started by the engine) +`)}function F9n(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 j9n(e){let t=e.task,n=kI(),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=F9n(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)=>L9n(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(U9n(b)),m.push("```"),m.push("")}return{message:m.join(` +`),studio:s,stage:c}}function vSe(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&&Mft(i.CLAUDE_SESSION_ID);let s=jD(t);if(s)return s;switch(e){case"haiku_intent_get":{let o=Be(t,lge,"haiku_intent_get");if(o)return o;let a=te(ce(t.slug),"intent.md");if(!ue(a))return r({found:!1,field:t.field,value:null});let{data:c}=re(xe(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,dge,"haiku_intent_list");if(o)return o;let a=ve(),c=te(a,"intents");if(!ue(c))return n("[]");let u=t.include_archived===!0,l=Fg(c,{includeArchived:u}),d=_v(),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=KL(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,Hge,"haiku_stage_get");if(o)return o;let a=t.intent,c=t.stage,u=t.field,l=te(ce(a),"intent.md"),d=ue(l)?re(xe(l,"utf8")).data:{},f=d.studio||"",p=typeof d.mode=="string"&&d.mode.length>0?d.mode:"continuous",h=bv({slug:a,studio:f,stage:c,intentDir:ce(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,Xge,"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: [${Db.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(xe(c,"utf8")),l=u[a];return r({ok:!0,field:a,found:l!=null,value:l??null})}case"haiku_unit_set":{let o=Be(t,Jge,"haiku_unit_set");if(o)return o;let a=t.field,c=t.value,u=gb();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(xe(d,"utf8")),h=J0(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=rv.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 Ne(d,a,c),n("ok")}case"haiku_unit_list":{let o=Be(t,Qge,"haiku_unit_list");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=te(cr(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(xe(te(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,eye,"haiku_unit_start");if(o)return o;let a=bZ(t.intent,t.unit),c=t.stage||a?.stage||g1(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(xe(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=hZ(t.intent,c);return n(A?`ok (already started by the engine) -${R}`:"ok (already started by the engine)")}let T=sY(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=g1(t.intent,c)[0]||"";Le(l,"started_at",bn()),u1(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=sY(t.intent,c);return n((m?`ok +${A}`:"ok (already started by the engine)")}let T=hZ(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(xe(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)Kh(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=R1(t.intent,c)[0]||"";Ne(l,"started_at",mn()),y1(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=hZ(t.intent,c);return n((m?`ok -${m}`:"ok")+rY(h))}case"haiku_unit_advance_hat":{let o=Be(t,Wge,"haiku_unit_advance_hat");if(o)return o;let a=t.stage,c,u;if(a){if(c=a,u=Na(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=lY(t.intent,t.unit);if(!C)return r({error:"unit_not_found",message:`Unit '${t.unit}' not found in any stage of intent '${t.intent}'.`},{isError:!0});u=C.path,c=C.stage}let l=ea(t.intent,c);if(l)return l;let d=(C,F,V)=>F&&F.length>0?`${C} +${m}`:"ok")+fZ(h))}case"haiku_unit_advance_hat":{let o=Be(t,tye,"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=bZ(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=Yye(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?oY(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 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. +Wave done \u2014 call \`haiku_run_next { intent: "${G}" }\` for the next instruction.`,f=xe(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=ce(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=>!Kh(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=iSe(t.intent,c,t.unit),E=b.indexOf(g)+1;if(E>=b.length){{let z=`${ce(t.intent)}/intent.md`,{data:J}=re(xe(z,"utf8")),oe=J.studio||"",de=oe?mZ(t.intent,oe,c,t.unit):null;if(de){let _e=t.state_file;_e&&qi(_e,{event:"unit_scope_violation",intent:t.intent,stage:c,unit:t.unit,violations:de.violations});let kt=[...de.scope.intentGlobs.map(Ue=>` - \`${Ue}\` (intent-relative)`),...de.scope.repoGlobs.map(Ue=>` - \`${Ue}\` (repo-relative)`),de.scope.repoWildcard?" - any repo-level path (stage declares scope: repo with wildcard location)":""].filter(Boolean).join(` +`);return r({error:"unit_scope_violation",violations:de.violations,scope:de.scope,message:`Cannot complete unit: ${de.violations.length} file(s) were written outside the stage's declared scope. Out-of-bounds files: -${le.violations.map(Ue=>` - ${Ue}`).join(` +${de.violations.map(Ue=>` - ${Ue}`).join(` `)} Allowed paths (stage output templates + workflow engine metadata): @@ -755,74 +756,74 @@ To resolve (in the unit worktree): (a) drop ALL unit commits with \`git reset -- NOTE: \`git checkout HEAD -- \` does NOT work on committed files (it's a no-op when the file matches HEAD). Use one of the above. -Alternatively: (d) update the stage's output template \`location:\` / \`scope:\` if this pattern is legitimate, or (e) log a stage_revisit feedback at the upstream stage via \`haiku_feedback\` with \`resolution: "stage_revisit"\` if the scope itself is wrong.`},{isError:!0})}}let C=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=fY(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,Ct.default)(z);In(u,Ct.default.stringify(oe,{...J,outputs:B}));let le=t.state_file;le&&qi(le,{event:"outputs_repaired",intent:t.intent,stage:c,unit:t.unit,repaired:$.length})}catch{}if(K.length>0){let z=t.state_file;return z&&qi(z,{event:"outputs_missing",intent:t.intent,stage:c,unit:t.unit,missing:K.length}),r({error:"unit_outputs_missing",missing:K,message:`Cannot complete unit: ${K.length} declared output(s) do not exist on disk: [${K.map(J=>`'${J}'`).join(", ")}]. Each entry in \`outputs:\` MUST be a real file path. If you wrote prose (e.g. "Weekly carryover roll: scheduler trigger, idempotent roll logic"), that's a completion-criteria description, not an output path \u2014 move it to the body's \`## Completion Criteria\` section and let auto-populate fill \`outputs:\` from the actual git diff. (No same-name file with a different extension was found, so this wasn't auto-repairable.)`},{isError:!0})}let X=(f.match(/- \[ \]/g)||[]).length;if(X>0){let z=t.state_file;return z&&qi(z,{event:"criteria_not_met",intent:t.intent,stage:c,unit:t.unit,unchecked:X}),r({error:"criteria_not_met",unchecked:X,message:`Cannot complete unit: ${X} completion criteria still unchecked. Address them, then call haiku_unit_advance_hat again.`},{isError:!0})}cY(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=uY(`haiku: complete unit ${t.unit}`),M=t.intent,q=`haiku/${M}/${c}`,U=FE(M,c,()=>Epe(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 L=U.message==="no worktree"?"":` (${U.message})`,H=wK(pe(t.intent),c),j=`completed (last hat) \u2014 unit branch merged into ${q}${L}. -${t.unit}: ${y} done \u2014 unit complete`+(H?` -${H}`:"")+rY(G),W=(()=>{let z=ne(pe(t.intent),"intent.md");if(!ue(z))return"";let J=(0,Ct.default)(Ne(z,"utf8")).data;return typeof J.studio=="string"?J.studio:""})(),ee=mEt(t.intent,c,t.unit),se=Math.max(0,av-ee),Me=W&&se>0?jx(t.intent,()=>hEt(t.intent,W,se)):[];Me.length>0&&wt(`haiku: refill ${Me.length} unit slot(s) after ${t.unit}`);let Re;if(Me.length>0){let z=Me.length===1?"block":"blocks";Re=`${j} +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=xe(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(Kh(t.intent,t.unit,z)){q.push(z);continue}let J=_Z(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=xe(u,"utf8"),{data:J,content:oe}=(0,Ct.default)(z);In(u,Ct.default.stringify(oe,{...J,outputs:q}));let de=t.state_file;de&&qi(de,{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})}yZ(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=SZ(`haiku: complete unit ${t.unit}`),F=t.intent,V=`haiku/${F}/${c}`,U=Hb(F,c,()=>Ipe(F,t.unit,c));if(!U.success){let z=te(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(de=>de.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})`,j=D3(ce(t.intent),c),H=`completed (last hat) \u2014 unit branch merged into ${V}${M}. +${t.unit}: ${g} done \u2014 unit complete`+(j?` +${j}`:"")+fZ(B),K=(()=>{let z=te(ce(t.intent),"intent.md");if(!ue(z))return"";let J=(0,Ct.default)(xe(z,"utf8")).data;return typeof J.studio=="string"?J.studio:""})(),ee=wbt(t.intent,c,t.unit),se=Math.max(0,fv-ee),Le=K&&se>0?W0(t.intent,()=>Abt(t.intent,K,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=`${H} --- -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?Re=`${j} +`)}else ee>0?Ae=`${H} -No unstarted units are ready to dispatch right now; sibling subagents are still working and will refill the pool as they finish. Terminate this turn \u2014 do NOT call haiku_run_next.`:Re=`${j} +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=`${H} -Wave done \u2014 call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;return n(Re)}{let C=`${pe(t.intent)}/intent.md`,{data:F}=re(Ne(C,"utf8")),V=F.studio||"",K=V?oY(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=`${ce(t.intent)}/intent.md`,{data:L}=re(xe(C,"utf8")),G=L.studio||"",W=G?mZ(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];cY(u,"advance",t.message),u1(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=uY(`haiku: advance hat to ${T} on ${t.unit}`);ipe(t.intent,t.unit),Xr(t.intent,t.state_file);let R=sY(t.intent,c),x=`${t.unit}: ${y} \u2192 ${T} (hat ${b+1}/${E.length})`,k=wK(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];yZ(u,"advance",t.message),y1(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=SZ(`haiku: advance hat to ${T} on ${t.unit}`);ppe(t.intent,t.unit),Xr(t.intent,t.state_file);let A=hZ(t.intent,c),x=`${t.unit}: ${g} \u2192 ${T} (hat ${E+1}/${b.length})`,k=D3(ce(t.intent),c),P=`advanced to ${T} ${x}`+(k?` -${k}`:"")+(R?` +${k}`:"")+(A?` -${R}`:"")+rY(A),P=JSt(t.intent,t.unit);return n(d(N,P,t.intent))}case"haiku_unit_reject_hat":{let o=Be(t,Kge,"haiku_unit_reject_hat");if(o)return o;let a=t.stage,c,u;if(a){if(u=a,c=Na(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=lY(t.intent,t.unit);if(!G)return r({error:"unit_not_found",message:`Unit '${t.unit}' not found in any stage of intent '${t.intent}'.`},{isError:!0});c=G.path,u=G.stage}let l=ea(t.intent,u);if(l)return l;let{data:d}=re(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=rEt(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=$ye(y),R=iEt(f,h,A);if(A.length>0&&R+1>=aY&&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}`:"")+fZ(R),N=abt(t.intent,t.unit);return n(d(P,N,t.intent))}case"haiku_unit_reject_hat":{let o=Be(t,nye,"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=bZ(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(xe(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=hbt(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)Kh(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=cSe(g),A=mbt(f,h,R);if(R.length>0&&A+1>=gZ&&m+1<=Ev){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.`,L=Qo(t.intent,u,{title:q,body:U,origin:"agent",severity:"blocker",author:"engine",authorType:"system",source_ref:`reject-loop:${t.unit}:${h}`});G=L.feedback_id,wt(`feedback: reject-loop escalation ${L.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:aY,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 ${aY} 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?oY(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 ${Ev}-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:gZ,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 ${gZ} consecutive same-reason rejects from the same hat, ${Ev-(m+1)} bolts ahead of the hard cap.)`},{isError:!0})}if(m+1>Ev)return r({error:"max_bolts_exceeded",bolt:m,max:Ev,outputs_present:E,outputs_files_present:b,outputs_files_missing:S,message:`${T?`${T} `:""}Unit has exceeded ${Ev} 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=`${ce(t.intent)}/intent.md`,{data:F}=re(xe(B,"utf8")),V=F.studio||"",U=V?mZ(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(L=>` - ${L}`).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=Yye(t.intent,u,t.unit),k=re(Ne(`${pe(t.intent)}/intent.md`,"utf8")).data.studio||"",N=k?Mu(k,u):{},{targetHat:P}=Hpe(x,h,{assessorToFirst:!0,assessorHat:fEt,roleOf:G=>N[G]?.role});if(zo.modelSelection){let G=d.model,M=Dfe(G);G&&M&&(Le(c,"model_original",G),Le(c,"model",M),console.error(`[haiku] model escalated: ${G} \u2192 ${M} (hat rejected, iteration ${m+1})`))}let C=y;cY(c,"reject",C),u1(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=wt(`haiku: fail ${t.unit} \u2014 back to ${P}, iteration ${m+1}`);Xr(t.intent,t.state_file);let V=JSt(t.intent,t.unit),K=T?`${T} `:"",$=wK(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})`+($?` -${$}`:"")+rY(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=iSe(t.intent,u,t.unit),k=re(xe(`${ce(t.intent)}/intent.md`,"utf8")).data.studio||"",P=k?Du(k,u):{},{targetHat:N}=Zpe(x,h,{assessorToFirst:!0,assessorHat:vbt,roleOf:B=>P[B]?.role});if(Go.modelSelection){let B=d.model,F=Vfe(B);B&&F&&(Ne(c,"model_original",B),Ne(c,"model",F),console.error(`[haiku] model escalated: ${B} \u2192 ${F} (hat rejected, iteration ${m+1})`))}let C=g;yZ(c,"reject",C),y1(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=abt(t.intent,t.unit),W=T?`${T} `:"",$=D3(ce(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})`+($?` +${$}`:"")+fZ(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=ea(t.intent,t.stage);if(a)return a;let c=Na(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});Kye(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,Mge,"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,Lge,"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,Uge,"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,Dge,"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,Fge,"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,jge,"haiku_read_phase");if(o)return o;let a=t.studio,c=t.stage,u=t.phase,l=G4(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,Hge,"haiku_read_output");if(o)return o;let a=t.studio,c=t.stage,u=t.name,l=B4(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,Yge,"haiku_unit_delete");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=Na(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=Gx(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}):(Gye(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,Jge,"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=Na(c,u,l),h=!0;if(ue(p)){let{data:x}=re(Ne(p,"utf8")),k=Gx(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=uEt(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 _=lEt(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=$Kn(d);if(T)return r(T,{isError:!0});let A=e9n(l,f);if(A)return r(A,{isError:!0});let R={...f,status:"pending"};if(!("title"in R)){let x=d.match(/^#\s+(.+)$/m);R.title=x?x[1].trim():l}return h&&!ue(m)&&Ml(m,{recursive:!0}),In(p,Ct.default.stringify(`${d.trimEnd()} -`,R)),ci(c),Ke(h?"haiku.unit.created":"haiku.unit.rewritten",{intent:c,stage:u,unit:l}),r({ok:!0,created:h,unit:l,stage:u,intent:c,message:h?`Created unit '${l}' in stage '${u}' (status: pending).`:`Rewrote unit '${l}' in stage '${u}' (status preserved as pending).`})}case"haiku_reconciliation_acknowledge":{let o=Be(t,ige,"haiku_reconciliation_acknowledge");if(o)return o;let a=t.intent,u=t.stage||c1(a),l=t.rationale?.trim();if(!u)return r({error:"no_active_stage",message:"No stage specified and no active stage found on the intent."},{isError:!0});if(!l||l.length<10)return r({error:"rationale_required",message:"haiku_reconciliation_acknowledge requires a rationale of at least 10 characters explaining why the divergence is intentional. Acknowledging without explanation defeats the purpose of the reconciliation log."},{isError:!0});let d=ne(pe(a),"stages",u);Ml(d,{recursive:!0});let f=ne(d,"upstream-reconciliation.json");return l1(f,{acknowledged:!0,acknowledged_at:bn(),rationale:l}),ZSt(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,sge,"haiku_decision_record");if(o)return o;let a=t.intent,u=t.stage||c1(a);if(!u)return r({error:"no_active_stage",message:"No stage specified and no active stage found on the intent."},{isError:!0});let l=ne(pe(a),"stages",u);Ml(l,{recursive:!0});let d=t.no_decisions===!0,f=t.rationale?.trim();if(d){if(!f||f.length<10)return r({error:"rationale_required",message:"no_decisions=true requires a rationale of at least 10 characters explaining why no architectural decisions are in scope for this stage. State the convention or constraint that makes the work routine (e.g. 'all units follow the team's standard CRUD scaffolding; no architectural choices remain after design stage')."},{isError:!0});let E=ne(l,"no-decisions.json");return l1(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});ZSt(a,u,{decision:p,options:h,choice:m,source:y,rationale:f||null,recorded_at:bn()});let g=EK(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,oge,"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,age,"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,LD,"haiku_skill_list");return o||r({skills:Wx()})}case"haiku_studio_list":{let o=Be(t,LD,"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,cge,"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,uge,"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,lge,"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=YSt(u),d=a9n(l,a);return r({found:d!=null,field:a,value:d??null})}case"haiku_settings_set":{let o=Be(t,dge,"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)?YSt(Ne(l,"utf8")):{}};if(c==null?delete f[a]:f[a]=c,!n9n(f)){let m=r9n()[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,rge,"haiku_intent_set");if(o)return o;let a=t.intent,c=t.field,u=t.value,l=(h,m)=>r({error:h,intent:a,field:c,message:m},{isError:!0}),d=hE();if(!d&&XT.includes(c))return l("intent_field_engine_only",`Field '${c}' is workflow engine-managed \u2014 agents cannot set it. Engine-only fields: ${XT.join(", ")}.`);if(!d&&_Z.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=>!_Z.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(!Tx(p)){let h=Tx.errors?.[0];return l("intent_field_type_mismatch",`Field '${c}' fails INTENT_FRONTMATTER_SCHEMA validation: ${h?.instancePath||"(root)"} ${h?.message||"invalid"}.`)}return Le(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,Pge,"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,fge,"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,rye,"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});nSe(c);let{data:u,body:l}=re(xe(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,zge,"haiku_read_hat");if(o)return o;let a=t.studio,c=t.stage,u=t.hat,l=t.fix===!0,d=AI(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,Gge,"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,Wge,"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,Vge,"haiku_read_intent");if(o)return o;let a=t.intent,c=Yh(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,Kge,"haiku_read_discovery");if(o)return o;let a=t.studio,c=t.stage,u=t.template,l=wI(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,Yge,"haiku_read_phase");if(o)return o;let a=t.studio,c=t.stage,u=t.phase,l=XK(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,Zge,"haiku_read_output");if(o)return o;let a=t.studio,c=t.stage,u=t.name,l=JK(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,iye,"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(xe(c,"utf8")),l=J0(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}):(Qye(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,sye,"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(xe(p,"utf8")),k=J0(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=te(cr(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(xe(te(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=te(ce(c),"intent.md");if(ue(x)){let k=re(xe(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=Ebt(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(xe(te(m,x),"utf8"));E[k]=Array.isArray(P.depends_on)?P.depends_on:[]}E[l]=Array.isArray(f.depends_on)?f.depends_on:[];let _=_bt(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=g9n(d);if(T)return r(T,{isError:!0});let R=y9n(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,pge,"haiku_reconciliation_acknowledge");if(o)return o;let a=t.intent,u=t.stage||g1(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=te(ce(a),"stages",u);Dl(d,{recursive:!0});let f=te(d,"upstream-reconciliation.json");return S1(f,{acknowledged:!0,acknowledged_at:mn(),rationale:l}),sbt(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:mn()}),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,hge,"haiku_decision_record");if(o)return o;let a=t.intent,u=t.stage||g1(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=te(ce(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=te(l,"no-decisions.json");return S1(b,{declared:!0,declared_at:mn(),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});sbt(a,u,{decision:p,options:h,choice:m,source:g,rationale:f||null,recorded_at:mn()});let y=I3(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,mge,"haiku_knowledge_list");if(o)return o;let a=te(ce(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,gge,"haiku_knowledge_read");if(o)return o;let a=te(ce(t.intent),"knowledge",t.name);return ue(a)?r({found:!0,name:t.name,content:xe(a,"utf8")}):r({found:!1,name:t.name,content:""})}case"haiku_skill_list":{let o=Be(t,zL,"haiku_skill_list");return o||r({skills:$0()})}case"haiku_studio_list":{let o=Be(t,zL,"haiku_studio_list");if(o)return o;let a=kI().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,yge,"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=te(a.path,"stages",c,"STAGE.md");if(!ue(u))return r({found:!1});let l=xe(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,bge,"haiku_settings_get");if(o)return o;let a=t.field,c="";try{c=te(ve(),"settings.yml")}catch{}if(!(c&&ue(c)))return r({found:!1,field:a,value:null});let u=xe(c,"utf8"),l=obt(u),d=R9n(l,a);return r({found:d!=null,field:a,value:d??null})}case"haiku_settings_set":{let o=Be(t,Ege,"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=te(ve(),"settings.yml")}catch(m){return u("haiku_root_not_found",`No .haiku/ directory found: ${m.message}`)}let f={...ue(l)?obt(xe(l,"utf8")):{}};if(c==null?delete f[a]:f[a]=c,!b9n(f)){let m=E9n()[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,fge,"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=gb();if(!d&&nv.includes(c))return l("intent_field_engine_only",`Field '${c}' is workflow engine-managed \u2014 agents cannot set it. Engine-only fields: ${nv.join(", ")}.`);if(!d&&OY.includes(c))return l("intent_field_immutable",`Field '${c}' is immutable after creation.`);if(!tv.includes(c))return l("intent_field_unknown",`Field '${c}' is not in INTENT_FRONTMATTER_SCHEMA. Allowed: ${tv.filter(h=>!OY.includes(h)).join(", ")}.`);let f="";try{f=te(ce(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(!x0(p)){let h=x0.errors?.[0];return l("intent_field_type_mismatch",`Field '${c}' fails INTENT_FRONTMATTER_SCHEMA validation: ${h?.instancePath||"(root)"} ${h?.message||"invalid"}.`)}return Ne(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,qge,"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,_ge,"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=te(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 _=te(l,E.slug,"stages");if(ue(_))for(let T of an(_)){let R=te(_,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(xe(te(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,pge,"haiku_zap");if(o)return o;let a=_9n(t);return r(a,a.error?{isError:!0}:void 0)}case"haiku_review":{let o=Be(t,hge,"haiku_review");if(o)return o;let a=Yo();try{let m=tY("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=tY("git",["diff",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe",maxBuffer:10485760}).stdout||"",u=tY("git",["diff","--stat",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||"",l=tY("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,Tge,"haiku_zap");if(o)return o;let a=j9n(t);return r(a,a.error?{isError:!0}:void 0)}case"haiku_review":{let o=Be(t,vge,"haiku_review");if(o)return o;let a=Zo();try{let m=lZ("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=lZ("git",["diff",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe",maxBuffer:10485760}).stdout||"",u=lZ("git",["diff","--stat",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||"",l=lZ("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=te(p,m);ue(g)&&(f+=` ### ${m} -${Ne(y,"utf8").slice(0,5e3)} +${xe(g,"utf8").slice(0,5e3)} `)}let h=`## Pre-Delivery Code Review `;return h+=`Diff base: ${a} @@ -847,17 +848,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,gge,"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,Age,"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=te(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,wge,"haiku_seed");if(o)return o;let a=t.action||"list",c;try{c=ve()}catch{return n("No .haiku directory found.")}let u=te(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(xe(te(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}) @@ -892,126 +893,125 @@ For each item, ask the user and apply their choice. --- status: planted trigger: "" -created_at: ${bn()} +created_at: ${mn()} --- -`,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(xe(te(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(xe(te(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,Sge,"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=te(d,"CHANGELOG.md");ue(b)&&(l=b)}if(!l){let b=process.cwd();for(let S=0;S<20;S++){let E=te(b,"CHANGELOG.md");if(ue(E)){l=E;break}let _=te(b,"..");if(_===b)break;b=_}}if(!l)return u("No CHANGELOG.md found.");let f=xe(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?nEt():{moved:[],skipped:[],cleanedSkeletons:[]},f=MKn(d);if(Ae()&&!a&&!u)try{let{summaries:m,mainline:y,archivedSummary:g}=LKn(c);if(m.length>0||g){let E=UKn(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=tEt(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,xge,"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?pbt():{moved:[],skipped:[],cleanedSkeletons:[]},f=X3n(d);if(Ee()&&!a&&!u)try{let{summaries:m,mainline:g,archivedSummary:y}=Q3n(c);if(m.length>0||y){let b=e9n(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{ve()}catch{return l(f?`${f} +No .haiku/ directory found.`:"No .haiku/ directory found.")}let p;try{p=fbt(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=PKn(p);return l(f?`${f} -${h}`:h)}case"haiku_feedback":{let o=Be(t,jme,"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=ea(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};Ml(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=Qo(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=wt(c?`feedback: create ${T.feedback_id} in ${c}`:`feedback: create ${T.feedback_id} (intent-scope)`),R={feedback_id:T.feedback_id,file:T.file,status:"pending",message:`Feedback ${T.feedback_id} created.`},x=oEt(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(iY(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,Vme,"haiku_feedback_delete");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id);if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};if(!u)return{content:[{type:"text",text:"Error: feedback_id is required"}],isError:!0};let l=ea(a,c||void 0);if(l)return l;let d=mY(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(iY(p,f))}case"haiku_feedback_move":{let o=Be(t,Wme,"haiku_feedback_move");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id),l=t.to_stage||"";if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};if(!u)return{content:[{type:"text",text:"Error: feedback_id is required"}],isError:!0};if(typeof t.to_stage!="string")return{content:[{type:"text",text:'Error: to_stage is required (use "" for intent-scope)'}],isError:!0};let d=ne(pe(a),"intent.md");if(!ue(d))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};if(l){let{data:S}=re(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=ea(a,l||void 0);if(h)return h;let m=yEt(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=wt(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(iY(E,g))}case"haiku_feedback_reject":{let o=Be(t,Kme,"haiku_feedback_reject");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id),l=t.reason;if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};if(!u)return{content:[{type:"text",text:"Error: feedback_id is required"}],isError:!0};if(!l)return{content:[{type:"text",text:"Error: reason is required when rejecting feedback"}],isError:!0};let d=ea(a,c||void 0);if(d)return d;let f=Sc(a,c,u);if(!f)return{content:[{type:"text",text:c?`Error: feedback '${u}' not found in stage '${c}'`:`Error: feedback '${u}' not found (intent-scope)`}],isError:!0};if(f.data.author_type==="human")return{content:[{type:"text",text:"Error: agents cannot reject human-authored feedback. Only the user can reject it via the review UI."}],isError:!0};let p=ep(f.data);if(p==="closed"||p==="rejected")return{content:[{type:"text",text:`Error: feedback '${u}' is already '${p}' -- cannot reject again`}],isError:!0};let h={...f.data,rejected_at:new Date().toISOString()};pY(h);let m=`${f.body} +No intents found.`:"No intents found.");let h=Z3n(p);return l(f?`${f} +${h}`:h)}case"haiku_feedback":{let o=Be(t,Yme,"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=te(ce(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=cr(a,c);if(!ue(k)){let{data:P}=re(xe(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=ybt(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(pZ(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,ege,"haiku_feedback_delete");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=RZ(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(pZ(p,f))}case"haiku_feedback_move":{let o=Be(t,tge,"haiku_feedback_move");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=te(ce(a),"intent.md");if(!ue(d))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};if(l){let{data:S}=re(xe(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=Ibt(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(pZ(b,y))}case"haiku_feedback_reject":{let o=Be(t,nge,"haiku_feedback_reject");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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()};TZ(h);let m=`${f.body} --- **Rejection reason:** ${l}`;In(f.path,Ct.default.stringify(` ${m} -`,h));let y=wt(c?`feedback: reject ${u} in ${c}`:`feedback: reject ${u} (intent-scope)`);rK(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=jx(a,()=>Bye(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(iY(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=ea(a,c??c1(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,Yme,"haiku_feedback_read");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id);if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});let l=c?lo(a,c):lo(a,"");if(!ue(l))return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback directory at ${l}.`},{isError:!0});let d=null,f=null,p=null,h=u.match(/^(?:FB-)?(\d+)$/i),m=h?Number.parseInt(h[1],10):null;for(let S of an(l).filter(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});Kye(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,Jme,"haiku_feedback_write");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id),l=t.body??"",d=cv(l);if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});if(!d||d.trim().length===0)return r({error:"empty_body",message:"body is required and must be substantive. Empty FB bodies cannot pass the assessor's spec-match check."},{isError:!0});let f=ea(a,c||void 0);if(f)return f;let p=Sc(a,c,u);if(!p){let E=c?lo(a,c):lo(a,"");return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback file matching ${u} in ${E}.`},{isError:!0})}let h=p.path,m=p.data,y=m.status||"pending";if(!hE()&&(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!hE()&&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,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 '${y}').`}))}case"haiku_feedback_advance_hat":{let o=Be(t,$me,"haiku_feedback_advance_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id);if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});let l=ea(a,c||void 0);if(l)return l;let d=Sc(a,c,u);if(!d){let H=c?lo(a,c):lo(a,"");return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback file matching ${u} in ${H}.`},{isError:!0})}let f=d.path,p=d.data,h=d.body,m=ep(p);if(m==="closed"||m==="rejected"||m==="non_actionable")return r({error:"lifecycle_violation",current_status:m,message:`Cannot advance hat on FB '${u}' \u2014 already ${m} (terminal).`},{isError:!0});let 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 se={...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,Ct.default.stringify(`${h.trimEnd()} -`,se)),ci(a),rK(a,c||"intent",u),wt(`haiku: close fix-chain ${u} (non-actionable)`),Ke("haiku.feedback.non_actionable",{intent:a,stage:c||"",feedback_id:u,hat:A});let Re=Bye(a,E);return n(JSON.stringify({action:"feedback_non_actionable",feedback_id:u,resolution:"non_actionable",hat:A,next_subagent_dispatch_block:Re,message:`FB '${u}' closed as non-actionable by '${A}': ${H}`+(Re?" Spawn the relayed block below.":` Call haiku_run_next { intent: "${a}" }.`)}))}let k=typeof t.reply=="string"?t.reply.trim():"",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,Ct.default.stringify(`${h.trimEnd()} -`,X)),ci(a),R&&SSt({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)spe(a,G,u);else{uY(`haiku: close fix-chain ${u}`);let H=FE(a,G,()=>qL(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="",L=(()=>{let H=ne(pe(a),"intent.md");if(!ue(H))return"";let j=(0,Ct.default)(Ne(H,"utf8")).data;return typeof j.studio=="string"?j.studio:""})();if(!R&&M&&L)try{let H=T+1===y.length-1;q=FI({slug:a,studio:L,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&&L)try{q=jx(a,()=>Bye(a,L)),q&&(U="Relay the `next_subagent_dispatch_block` field verbatim as your final message.")}catch{}if(!q){let H=!1;try{let j=pe(a),W=[ne(j,"feedback")],ee=ne(j,"stages");if(ue(ee))for(let se of an(ee))W.push(ne(ee,se,"feedback"));e:for(let se of W)if(ue(se))for(let Me of an(se).filter(Re=>Re.endsWith(".md"))){let Re=Ne(ne(se,Me),"utf8"),z=(0,Ct.default)(Re).data;if(typeof z.status=="string"&&(z.status==="closed"||z.status==="rejected")||z.closed_at||z.rejected_at)continue;let J=Array.isArray(z.iterations)?z.iterations:[],oe=J[J.length-1];if(oe&&(oe.result===null||oe.result===void 0)){H=!0;break e}}}catch{}U=H?"Wave still has in-flight fix-chains; no replenishment available right now. Terminate \u2014 sibling subagents will fire their own breadcrumbs when they advance.":R?`FB '${u}' closed by ${K} after '${A}' (last hat in fix_hats sequence ${T+1}/${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,ege,"haiku_feedback_reject_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id),l=t.message||"";if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});let d=ea(a,c||void 0);if(d)return d;let f=Sc(a,c,u);if(!f){let q=c?lo(a,c):lo(a,"");return r({error:"feedback_not_found",feedback_id:u,message:`No feedback file matching ${u} in ${q}.`},{isError:!0})}let p=f.path,h=f.data,m=f.body,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?Mu(S,c):z4(S),{targetHat:P}=Hpe(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=Dfe(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,Ct.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,Xme,"haiku_feedback_set_targets");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id),l=t.target_unit===null||t.target_unit===void 0?null:t.target_unit,d=t.target_invalidates??[],f=typeof t.reasoning=="string"?t.reasoning.trim():"",p=ea(a,c||void 0);if(p)return p;let h=Sc(a,c,u);if(!h)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let m=h.data.targets&&typeof h.data.targets=="object"?h.data.targets:null,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,Ct.default.stringify(` +`,h));let g=wt(c?`feedback: reject ${u} in ${c}`:`feedback: reject ${u} (intent-scope)`);f3(a,c||"intent",u);let y=null;try{let S=te(ce(a),"intent.md"),E=ue(S)?re(xe(S,"utf8")).data.studio??"":"";E&&(y=W0(a,()=>Xye(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(pZ(b,g))}case"haiku_feedback_list":{let o=Be(t,rge,"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=te(ce(a),"intent.md");if(!ue(l))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};let d=ea(a,c??g1(a));if(d)return d;let f;if(c)f=[c];else{let g=te(ce(a),"stages");ue(g)?f=an(g).filter(y=>ue(te(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,ige,"haiku_feedback_read");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=te(l,S),{data:_,body:T}=re(xe(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});nSe(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,sge,"haiku_feedback_write");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(t.feedback_id),l=t.body??"",d=pv(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(!gb()&&(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!gb()&&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,cge,"haiku_feedback_advance_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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 j=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 ${j}.`},{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=te(ce(a),"intent.md"),b="software";if(ue(y)){let{data:j}=re(xe(y,"utf8"));b=j.studio||"software"}if(c){let j=$i(b,c);j?.data?.fix_hats&&Array.isArray(j.data.fix_hats)&&(g=j.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 j=(typeof t.reply=="string"?t.reply.trim():"")||(typeof t.message=="string"?t.message.trim():"");if(!j)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 H=Array.isArray(p.iterations)?p.iterations.slice():[],K=H[H.length-1],ee={bolt:E,hat:R,completed_at:mn(),result:"closed",message:j};K&&(K.result===null||K.result===void 0)&&K.hat===R?H[H.length-1]={...K,...ee}:H.push(ee);let se={...p,hat:R,iterations:H,status:"non_actionable",resolution:"non_actionable",closed_at:mn(),closed_by:`${R}:non_actionable`,closure_reply:{text:j,at:mn()},closure_reply_unread:!0};In(f,Ct.default.stringify(`${h.trimEnd()} +`,se)),ci(a),f3(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=Xye(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}': ${j}`+(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:mn(),result:A?"closed":"advanced",...P?{message:P}:{}}:N.push({bolt:E,hat:R,completed_at:mn(),result:A?"closed":"advanced",...P?{message:P}:{}});let G=m,W,$;A?(G="closed",W=`fix-loop:${u}:bolt-${E}`,$=mn()):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:mn()},Q.closure_reply_unread=!0),In(f,Ct.default.stringify(`${h.trimEnd()} +`,Q)),ci(a),A&&xSt({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)hpe(a,B,u);else{SZ(`haiku: close fix-chain ${u}`);let j=Hb(a,B,()=>XD(a,B,u));if(!j.success){let H=Sg(a,B,u);return j.isConflict?r({action:"integrate_fix_chains",intent:a,scope:B,items:[{feedback_id:u}],feedback_id:u,worktree:H,conflict_paths:j.conflictFiles??[],message:`Fix-chain ${u} closed, but landing its code on ${B==="intent"?`haiku/${a}/main`:`stage '${B}'`} produced conflicts on ${(j.conflictFiles??[]).length} file(s): ${(j.conflictFiles??[]).join(", ")}. The merge is left in-progress in the fix-chain worktree (${H}) \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:H,error:j.message,message:`Fix-chain ${u} closed, but the engine could not merge its code into ${B==="intent"?`haiku/${a}/main`:`stage '${B}'`}. Git output: ${j.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 j=te(ce(a),"intent.md");if(!ue(j))return"";let H=(0,Ct.default)(xe(j,"utf8")).data;return typeof H.studio=="string"?H.studio:""})();if(!A&&F&&M)try{let j=T+1===g.length-1;V=VI({slug:a,studio:M,feedbackId:u,stage:c??"",hat:F,terminal:j}),U="Relay the `next_subagent_dispatch_block` field verbatim as your final message."}catch{}else if(A&&M)try{V=W0(a,()=>Xye(a,M)),V&&(U="Relay the `next_subagent_dispatch_block` field verbatim as your final message.")}catch{}if(!V){let j=!1;try{let H=ce(a),K=[te(H,"feedback")],ee=te(H,"stages");if(ue(ee))for(let se of an(ee))K.push(te(ee,se,"feedback"));e:for(let se of K)if(ue(se))for(let Le of an(se).filter(Ae=>Ae.endsWith(".md"))){let Ae=xe(te(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)){j=!0;break e}}}catch{}U=j?"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,uge,"haiku_feedback_reject_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=te(ce(a),"intent.md"),S="software";if(ue(b)){let{data:V}=re(xe(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):QK(S),{targetHat:N}=Zpe(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:mn(),result:"rejected",message:l||"(no message provided)"}:C.push({bolt:_,hat:A,completed_at:mn(),result:"rejected",message:l||"(no message provided)"});let $,q;if(Go.modelSelection){let V=h.model,U=Vfe(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=VI({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,oge,"haiku_feedback_set_targets");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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,Qme,"haiku_feedback_set_severity");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id),l=t.severity,d=typeof t.reasoning=="string"?t.reasoning.trim():"",f=ea(a,c||void 0);if(f)return f;let p=Sc(a,c,u);if(!p)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let h=typeof p.data.severity=="string"?p.data.severity:null;if(h!==null)return r({error:"severity_already_set",feedback_id:u,current_severity:h,message:`Feedback '${u}' already has severity '${h}' \u2014 once set, immutable per the FB-as-unit architecture. To re-rank, reject the FB (haiku_feedback_reject) and create a new one.`},{isError:!0});let m=p.data.status||"pending";if(m==="closed"||m==="rejected")return r({error:"lifecycle_violation",current_status:m,message:`Cannot set severity on FB '${u}' \u2014 already ${m} (terminal).`},{isError:!0});let y={...p.data,severity:l};return In(p.path,Ct.default.stringify(` +`,E)),ci(a),r({ok:!0,feedback_id:u,target_unit:l,target_invalidates:d,reasoning:f||null,message:`Feedback '${u}' classified: target_unit=${l??"null (intent-scope)"}, invalidates=[${d.join(", ")}]${f?` \u2014 ${f}`:""}.`})}case"haiku_feedback_set_severity":{let o=Be(t,age,"haiku_feedback_set_severity");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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,LD,"haiku_version_info");if(o)return o;let a=od==="dev",c={mcp_version:od,plugin_version:_S(),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 $St,Ct,zye,Vye,Jye,NKn,o1,Bd,Cf,mv,aY,ZKn,JKn,XKn,qye,Zye,fEt,c9n,HE,Mg,u9n,av,l9n,fSe,ze=v(()=>{"use strict";SL();$St=Se(G_(),1),Ct=Se(Kt(),1);Ci();Mfe();jpe();Zft();ns();Jpe();kK();Oa();HD();mye();gye();QD();BZ();ESt();yr();Hx();dE();i1();ih();s1();eY();Kn();Tl();vo();d_();SE();ji();Ia();ji();uo();zye=10*1024,Vye=1024;Jye=80;NKn=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;o1=null;Bd=class extends Error{constructor(t){super(t),this.name="IntentScopeTickPersistError"}};Cf=2,mv=5,aY=3;ZKn=new Set(["the","a","an","is","are","was","were","be","been","to","of","in","on","at","for","and","or","but","this","that","it","its","with","as","by","from","should","must","needs","need","has","have","not","no","we","you","i","if","then","than","there","here","when","which","what","does","do","did","can","will"]);JKn=.6;XKn=[/\b(?:use|extend)\s+(?:the\s+)?existing\s+`([A-Za-z_][\w.$]*)`\s+(?:in|from)\s+`([^`]+)`/gi,/\bextend\s+(?:the\s+)?`([A-Za-z_][\w.$]*)`\s+exported\s+from\s+`([^`]+)`/gi];qye=null,Zye=null;fEt="feedback-assessor";c9n=["adversarial-review","studio-review","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],HE=["pending","fixing","addressed","answered","non_actionable","closed","rejected"];Mg=3,u9n=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})(),l9n=new Set(["user-visual","user-chat","user-question","user-revisit","external-pr","external-mr"]);fSe=[{name:"haiku_intent_get",description:"Read a field from an intent's frontmatter",inputSchema:M9,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:L9,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:tZ,outputSchema:{type:"object",properties:{found:{type:"boolean"},field:{type:"string"},value:{description:"Stage state field value. v3 reads it from per-stage state.json; v4 derives stage state from per-unit `iterations[]` + branch-merge state. Null when missing."}},required:["found","field"]}},{name:"haiku_unit_get",description:`Read ONE agent-authorable/corrective frontmatter field on a unit. The READ counterpart to haiku_unit_set's corrective exemption: haiku_unit_set replaces the WHOLE \`quality_gates\` (or \`outputs\`) array, so to repair a single wrong gate command/path on an active unit without clobbering the others you must first read the current array, modify one entry, then write it back. Readable fields: ${CE.join(", ")}. FSM-driven fields (${Zf.join(", ")}) return \`unit_field_engine_only\` \u2014 engine bookkeeping stays hidden; for the unit body/title use haiku_unit_read.`,inputSchema:fZ,outputSchema:{type:"object",properties:{ok:{type:"boolean"},field:{type:"string"},found:{type:"boolean",description:"True when the field is present (non-null) on the unit."},value:{type:["string","array","number","boolean","null","object"],description:"The field's current native value (array for quality_gates/outputs/inputs/etc.), or null when absent."},error:{type:"string"}}}},{name:"haiku_unit_set",description:`Set a field in a unit's frontmatter. \`value\` MUST match the field's declared type in the unit FM schema \u2014 array for \`inputs:\` / \`outputs:\` / \`depends_on:\` / \`closes:\` / \`quality_gates:\`, string for \`title:\` / \`model:\`. The handler validates per-field at runtime and rejects mismatches with \`field_type_mismatch\` so type drift never lands in YAML. Agent-authorable fields: ${CE.join(", ")}. FSM-driven (rejected): ${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:dZ,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:pZ,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:hZ,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:mZ,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:gZ,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:yZ,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:rZ,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:iZ,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:oZ,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:sZ,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:aZ,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:cZ,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:uZ,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:SZ,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,zL,"haiku_version_info");if(o)return o;let a=ud==="dev",c={mcp_version:ud,plugin_version:vS(),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 lbt,Ct,$ye,eSe,sSe,Y3n,h1,Vd,Df,Ev,gZ,d9n,p9n,h9n,Jye,rSe,A9n,vbt,w9n,Bb,Dg,k9n,fv,I9n,TSe,ze=v(()=>{"use strict";xD();lbt=Re(V_(),1),Ct=Re(Kt(),1);Ci();zfe();Ype();spt();ns();she();L3();Oa();YL();Rye();Aye();o1();XY();OSt();ar();K0();pb();f1();sh();p1();uZ();Kn();vl();vo();p_();Eb();ji();Ia();ji();uo();$ye=10*1024,eSe=1024;sSe=80;Y3n=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;h1=null;Vd=class extends Error{constructor(t){super(t),this.name="IntentScopeTickPersistError"}};Df=2,Ev=5,gZ=3;d9n=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"]);p9n=.6;h9n=[/\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];Jye=null,rSe=null;A9n=[{entry:".haiku/worktrees/",accept:[".haiku/worktrees"]},{entry:".haiku/intents/*/stages/*/proof/",accept:[".haiku/intents/*/stages/*/proof"]},{entry:".haiku/intents/*/proof/",accept:[".haiku/intents/*/proof"]}];vbt="feedback-assessor";w9n=["adversarial-review","studio-review","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],Bb=["pending","fixing","addressed","answered","non_actionable","closed","rejected"];Dg=3,k9n=3,fv=(()=>{let e=process.env.HAIKU_MAX_CONCURRENT_SUBAGENTS,t=e?Number.parseInt(e,10):NaN;return Number.isFinite(t)&&t>0?t:10})(),I9n=new Set(["user-visual","user-chat","user-question","user-revisit","external-pr","external-mr"]);TSe=[{name:"haiku_intent_get",description:"Read a field from an intent's frontmatter",inputSchema:z9,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:G9,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:lY,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: ${Db.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:_Y,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: ${Db.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:EY,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:TY,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:vY,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:RY,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:AY,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:wY,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:fY,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:pY,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:mY,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:hY,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:gY,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:yY,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:SY,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:kY,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): ${CE.join(", ")} \u2014 plus any stage-specific fields the per-stage \`phases/ELABORATION.md\` documents. +Allowed FM fields (agent-authorable): ${Db.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:EZ,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:U9,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:F9,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:j9,outputSchema:{type:"object",properties:{files:{type:"array",items:{type:"string"}}},required:["files"]}},{name:"haiku_knowledge_read",description:"Read a knowledge artifact",inputSchema:H9,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:MD,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:MD,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:q9,outputSchema:{type:"object",properties:{found:{type:"boolean"},name:{type:"string"},slug:{type:"string"},aliases:{type:"array",items:{type:"string"}},dir:{type:"string"},description:{type:"string"},category:{type:"string"},stages:{type:"array",items:{type:"string"}},source:{type:"string"},path:{type:"string"},studio_md:{type:"string"},body:{type:"string"}},required:["found"],additionalProperties:!0}},{name:"haiku_studio_stage_get",description:"Read a stage's STAGE.md from a studio \u2014 returns frontmatter fields (hats, review, requires, produces) and body text. Resolves project-level override first, then built-in.",inputSchema:B9,outputSchema:{type:"object",properties:{found:{type:"boolean"},body:{type:"string"},studio:{type:"string"},studio_dir:{type:"string"},stage_md:{type:"string"}},required:["found"],additionalProperties:!0}},{name:"haiku_settings_get",description:"Read a field from .haiku/settings.yml. Two top-level fields are load-bearing: `studio` (the lifecycle template name) and `providers.*` (configured external-system providers). Dot-paths like `providers.ticketing.type` work. Returns empty string if not set.",inputSchema:G9,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:z9,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:D9,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:nZ,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:V9,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:W9,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:K9,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:Z9,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:$9,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:eZ,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:Y9,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:J9,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:b9,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:v9,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:A9,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:R9,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:w9,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:k9,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:IY,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:W9,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:K9,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:Y9,outputSchema:{type:"object",properties:{files:{type:"array",items:{type:"string"}}},required:["files"]}},{name:"haiku_knowledge_read",description:"Read a knowledge artifact",inputSchema:Z9,outputSchema:{type:"object",properties:{found:{type:"boolean"},name:{type:"string"},content:{type:"string",description:"Raw markdown body."}},required:["found","name","content"]}},{name:"haiku_skill_list",description:"List all Claude Code skills (slash commands) installed in the user's environment \u2014 plugin root, project-local (.claude/skills/), and global (~/.claude/plugins/*/skills/). The elaborator calls this to annotate units with `applicable_skills:` frontmatter; hat subagent prompts surface those skills automatically.",inputSchema:BL,outputSchema:{type:"object",properties:{skills:{type:"array",items:{type:"object",properties:{slug:{type:"string",description:"Skill slug \u2014 the identifier used in `applicable_skills:` frontmatter (no leading `/`)."},name:{type:"string"},description:{type:"string"},source:{type:"string",enum:["plugin","project","global"]}},required:["slug","name","description","source"]}}},required:["skills"]}},{name:"haiku_studio_list",description:"List all available studios with their description, stages, and category. Project-level studios (.haiku/studios/) override built-in ones on name collision.",inputSchema:BL,outputSchema:{type:"object",properties:{studios:{type:"array",items:{type:"object",properties:{name:{type:"string"},slug:{type:"string"},description:{type:"string"},category:{type:"string"},stages:{type:"array",items:{type:"string"}},source:{type:"string",enum:["project","plugin"]}},required:["name","slug"]}}},required:["studios"]}},{name:"haiku_studio_get",description:"Read a studio's STUDIO.md \u2014 returns frontmatter fields and body text. Resolves project-level override first, then built-in.",inputSchema:J9,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:X9,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:Q9,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:$9,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: ${tv.join(", ")} (note 'studio' is immutable post-creation). Engine-only fields (${nv.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:V9,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:dY,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:eY,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:tY,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:nY,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:rY,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:cY,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:uY,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:iY,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:sY,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:x9,outputSchema:{type:"object",properties:{feedback_id:{type:"string",description:"e.g. FB-01"},file:{type:"string",description:"Repo-relative path to the FB markdown file."},status:{type:"string"},message:{type:"string"},push_warning:{type:"string",description:"Set when the post-write git push failed."}}}},{name:"haiku_feedback_delete",description:"Delete a feedback file. Cannot delete pending items. Agents cannot delete human-authored items. Omit `stage` for intent-scope feedback.",inputSchema:N9,outputSchema:{type:"object",properties:{feedback_id:{type:"string"},deleted:{type:"boolean"},message:{type:"string"}}}},{name:"haiku_feedback_move",description:'Triage placement for a feedback item. Pass `to_stage` equal to the source `stage` to confirm the FB belongs where it lives (sets `triaged_at` only). Pass a different `to_stage` to relocate it \u2014 the file moves to the target stage\'s feedback dir, gets renumbered to the next free FB-NN there, and `triaged_at` is set. Use "" for intent-scope (either source or target). Closed and rejected FBs are immutable; rejected with an error.',inputSchema:C9,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:M9,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:D9,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:L9,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): ${OD.join(", ")} - \u2022 Set at creation, immutable thereafter: ${ND.join(", ")} + \u2022 workflow-driven (mutated over the FB lifecycle): ${FL.join(", ")} + \u2022 Set at creation, immutable thereafter: ${jL.join(", ")} -Use haiku_feedback_update for status transitions and haiku_feedback_reject for rejections.`,inputSchema:I9,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:N9,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:P9,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:x9,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:O9,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:X9,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:Q9,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:MD,outputSchema:{type:"object",properties:{mcp_version:{type:"string"},plugin_version:{type:"string"}},required:["mcp_version","plugin_version"]}}]});var hSe=w((qpi,EEt)=>{"use strict";EEt.exports=function(t,n){return function(){for(var i=new Array(arguments.length),s=0;s{"use strict";var T9n=hSe(),yv=Object.prototype.toString;function ySe(e){return yv.call(e)==="[object Array]"}function mSe(e){return typeof e>"u"}function v9n(e){return e!==null&&!mSe(e)&&e.constructor!==null&&!mSe(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function A9n(e){return yv.call(e)==="[object ArrayBuffer]"}function R9n(e){return typeof FormData<"u"&&e instanceof FormData}function w9n(e){var t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function k9n(e){return typeof e=="string"}function I9n(e){return typeof e=="number"}function bEt(e){return e!==null&&typeof e=="object"}function yY(e){if(yv.call(e)!=="[object Object]")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function x9n(e){return yv.call(e)==="[object Date]"}function O9n(e){return yv.call(e)==="[object File]"}function N9n(e){return yv.call(e)==="[object Blob]"}function _Et(e){return yv.call(e)==="[object Function]"}function P9n(e){return bEt(e)&&_Et(e.pipe)}function C9n(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function M9n(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function L9n(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function SSe(e,t){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),ySe(e))for(var n=0,r=e.length;n{"use strict";var Kx=$c();function vEt(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}AEt.exports=function(t,n,r){if(!n)return t;var i;if(r)i=r(n);else if(Kx.isURLSearchParams(n))i=n.toString();else{var s=[];Kx.forEach(n,function(c,u){c===null||typeof c>"u"||(Kx.isArray(c)?u=u+"[]":c=[c],Kx.forEach(c,function(d){Kx.isDate(d)?d=d.toISOString():Kx.isObject(d)&&(d=JSON.stringify(d)),s.push(vEt(u)+"="+vEt(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 wEt=w((zpi,REt)=>{"use strict";var F9n=$c();function EY(){this.handlers=[]}EY.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};EY.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};EY.prototype.forEach=function(t){F9n.forEach(this.handlers,function(r){r!==null&&t(r)})};REt.exports=EY});var IEt=w((Vpi,kEt)=>{"use strict";var j9n=$c();kEt.exports=function(t,n){j9n.forEach(t,function(i,s){s!==n&&s.toUpperCase()===n.toUpperCase()&&(t[n]=i,delete t[s])})}});var bY=w((Wpi,xEt)=>{"use strict";xEt.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 _Y=w((Kpi,OEt)=>{"use strict";var H9n=bY();OEt.exports=function(t,n,r,i,s){var o=new Error(t);return H9n(o,n,r,i,s)}});var ESe=w((Zpi,NEt)=>{"use strict";var q9n=_Y();NEt.exports=function(t,n,r){var i=r.config.validateStatus;!r.status||!i||i(r.status)?t(r):n(q9n("Request failed with status code "+r.status,r.config,null,r.request,r))}});var CEt=w((Ypi,PEt)=>{"use strict";var TY=$c();PEt.exports=TY.isStandardBrowserEnv()?(function(){return{write:function(n,r,i,s,o,a){var c=[];c.push(n+"="+encodeURIComponent(r)),TY.isNumber(i)&&c.push("expires="+new Date(i).toGMTString()),TY.isString(s)&&c.push("path="+s),TY.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 LEt=w((Jpi,MEt)=>{"use strict";MEt.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}});var UEt=w((Xpi,DEt)=>{"use strict";DEt.exports=function(t,n){return n?t.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):t}});var bSe=w((Qpi,FEt)=>{"use strict";var B9n=LEt(),G9n=UEt();FEt.exports=function(t,n){return t&&!B9n(n)?G9n(t,n):n}});var HEt=w(($pi,jEt)=>{"use strict";var _Se=$c(),z9n=["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"];jEt.exports=function(t){var n={},r,i,s;return t&&_Se.forEach(t.split(` -`),function(a){if(s=a.indexOf(":"),r=_Se.trim(a.substr(0,s)).toLowerCase(),i=_Se.trim(a.substr(s+1)),r){if(n[r]&&z9n.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 GEt=w((ehi,BEt)=>{"use strict";var qEt=$c();BEt.exports=qEt.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=qEt.isString(o)?i(o):o;return a.protocol===r.protocol&&a.host===r.host}})():(function(){return function(){return!0}})()});var VEt=w((thi,zEt)=>{"use strict";var vY=$c(),V9n=ESe(),W9n=CEt(),K9n=SY(),Z9n=bSe(),Y9n=HEt(),J9n=GEt(),TSe=_Y();zEt.exports=function(t){return new Promise(function(r,i){var s=t.data,o=t.headers,a=t.responseType;vY.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=Z9n(t.baseURL,t.url);c.open(t.method.toUpperCase(),K9n(d,t.params,t.paramsSerializer),!0),c.timeout=t.timeout;function f(){if(c){var h="getAllResponseHeaders"in c?Y9n(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};V9n(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(TSe("Request aborted",t,"ECONNABORTED",c)),c=null)},c.onerror=function(){i(TSe("Network Error",t,null,c)),c=null},c.ontimeout=function(){var m="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(m=t.timeoutErrorMessage),i(TSe(m,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",c)),c=null},vY.isStandardBrowserEnv()){var p=(t.withCredentials||J9n(d))&&t.xsrfCookieName?W9n.read(t.xsrfCookieName):void 0;p&&(o[t.xsrfHeaderName]=p)}"setRequestHeader"in c&&vY.forEach(o,function(m,y){typeof s>"u"&&y.toLowerCase()==="content-type"?delete o[y]:c.setRequestHeader(y,m)}),vY.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 KEt=w((nhi,WEt)=>{var S1;WEt.exports=function(){if(!S1){try{S1=XJ()("follow-redirects")}catch{}typeof S1!="function"&&(S1=function(){})}S1.apply(null,arguments)}});var LSe=w((rhi,MSe)=>{var b1=Z("url"),E1=b1.URL,X9n=Z("http"),Q9n=Z("https"),kSe=Z("stream").Writable,ISe=Z("assert"),ZEt=KEt();(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 xSe=!1;try{ISe(new E1(""))}catch(e){xSe=e.code==="ERR_INVALID_URL"}var $9n=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],OSe=["abort","aborted","connect","error","socket","timeout"],NSe=Object.create(null);OSe.forEach(function(e){NSe[e]=function(t,n,r){this._redirectable.emit(e,t,n,r)}});var ASe=_1("ERR_INVALID_URL","Invalid URL",TypeError),RSe=_1("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),eZn=_1("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",RSe),tZn=_1("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),nZn=_1("ERR_STREAM_WRITE_AFTER_END","write after end"),rZn=kSe.prototype.destroy||JEt;function Wu(e,t){kSe.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 RSe?i:new RSe({cause:i}))}},this._performRequest()}Wu.prototype=Object.create(kSe.prototype);Wu.prototype.abort=function(){CSe(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};Wu.prototype.destroy=function(e){return CSe(this._currentRequest,e),rZn.call(this,e),this};Wu.prototype.write=function(e,t,n){if(this._ending)throw new nZn;if(!Sv(e)&&!oZn(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 tZn),this.abort())};Wu.prototype.end=function(e,t,n){if(Ev(e)?(n=e,e=t=null):Ev(t)&&(n=t,t=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,n);else{var r=this,i=this._currentRequest;this.write(e,t,function(){r._ended=!0,i.end(null,null,n)}),this._ending=!0}};Wu.prototype.setHeader=function(e,t){this._options.headers[e]=t,this._currentRequest.setHeader(e,t)};Wu.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)};Wu.prototype.setTimeout=function(e,t){var n=this;function r(o){o.setTimeout(e),o.removeListener("timeout",o.destroy),o.addListener("timeout",o.destroy)}function i(o){n._timeout&&clearTimeout(n._timeout),n._timeout=setTimeout(function(){n.emit("timeout"),s()},e),r(o)}function s(){n._timeout&&(clearTimeout(n._timeout),n._timeout=null),n.removeListener("abort",s),n.removeListener("error",s),n.removeListener("response",s),n.removeListener("close",s),t&&n.removeListener("timeout",t),n.socket||n._currentRequest.removeListener("socket",i)}return t&&this.on("timeout",t),this.socket?i(this.socket):this._currentRequest.once("socket",i),this.on("socket",r),this.on("abort",s),this.on("error",s),this.on("response",s),this.on("close",s),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){Wu.prototype[e]=function(t,n){return this._currentRequest[e](t,n)}});["aborted","connection","socket"].forEach(function(e){Object.defineProperty(Wu.prototype,e,{get:function(){return this._currentRequest[e]}})});Wu.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var t=e.path.indexOf("?");t<0?e.pathname=e.path:(e.pathname=e.path.substring(0,t),e.search=e.path.substring(t))}};Wu.prototype._performRequest=function(){var e=this._options.protocol,t=this._options.nativeProtocols[e];if(!t)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var n=e.slice(0,-1);this._options.agent=this._options.agents[n]}var r=this._currentRequest=t.request(this._options,this._onNativeResponse);r._redirectable=this;for(var i of OSe)r.on(i,NSe[i]);if(this._currentUrl=/^\//.test(this._options.path)?b1.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(CSe(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new eZn;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=[],vSe(/^content-/i,this._options.headers));var o=vSe(/^host$/i,this._options.headers),a=PSe(this._currentUrl),c=o||a.host,u=/^\w+:/.test(n)?this._currentUrl:b1.format(Object.assign(a,{host:c})),l=iZn(n,u);if(ZEt("redirecting to",l.href),this._isRedirect=!0,wSe(l,this._options),(l.protocol!==a.protocol&&l.protocol!=="https:"||l.host!==c&&!sZn(l.host,c))&&vSe(/^(?:(?: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 YEt(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 aZn(u)?u=wSe(u):Sv(u)?u=wSe(PSe(u)):(d=l,l=XEt(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"),ISe.equal(l.protocol,i,"protocol mismatch"),ZEt("options",l),new Wu(l,d)}function c(u,l,d){var f=o.request(u,l,d);return f.end(),f}Object.defineProperties(o,{request:{value:a,configurable:!0,enumerable:!0,writable:!0},get:{value:c,configurable:!0,enumerable:!0,writable:!0}})}),t}function JEt(){}function PSe(e){var t;if(xSe)t=new E1(e);else if(t=XEt(b1.parse(e)),!Sv(t.protocol))throw new ASe({input:e});return t}function iZn(e,t){return xSe?new E1(e,t):PSe(b1.resolve(t,e))}function XEt(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new ASe({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new ASe({input:e.href||e});return e}function wSe(e,t){var n=t||{};for(var r of $9n)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 vSe(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 _1(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 CSe(e,t){for(var n of OSe)e.removeListener(n,NSe[n]);e.on("error",JEt),e.destroy(t)}function sZn(e,t){ISe(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 oZn(e){return typeof e=="object"&&"length"in e}function aZn(e){return E1&&e instanceof E1}MSe.exports=YEt({http:X9n,https:Q9n});MSe.exports.wrap=YEt});var DSe=w((ihi,cZn)=>{cZn.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 rbt=w((shi,nbt)=>{"use strict";var T1=$c(),QEt=ESe(),uZn=bSe(),lZn=SY(),dZn=Z("http"),fZn=Z("https"),pZn=LSe().http,hZn=LSe().https,$Et=Z("url"),mZn=Z("zlib"),gZn=DSe(),AY=_Y(),USe=bY(),ebt=/https:?/;function tbt(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,tbt(s,t,s.href)}}nbt.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/"+gZn.version,a&&!T1.isStream(a)){if(!Buffer.isBuffer(a))if(T1.isArrayBuffer(a))a=Buffer.from(new Uint8Array(a));else if(T1.isString(a))a=Buffer.from(a,"utf-8");else return o(AY("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=uZn(t.baseURL,t.url),p=$Et.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=ebt.test(h),S=E?t.httpsAgent:t.httpAgent,b={path:lZn(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=$Et.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:""),tbt(b,_,h+"//"+p.hostname+(p.port?":"+p.port:"")+b.path));var C,F=E&&(_?ebt.test(_.protocol):!0);t.transport?C=t.transport:t.maxRedirects===0?C=F?fZn:dZn:(t.maxRedirects&&(b.maxRedirects=t.maxRedirects),C=F?hZn:pZn),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(mZn.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,QEt(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(AY("maxContentLength size of "+t.maxContentLength+" exceeded",t,null,G)))}),X.on("error",function(H){V.aborted||o(USe(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=T1.stripBOM(H))),M.data=H,QEt(s,o,M)})}}});if(V.on("error",function(B){V.aborted&&B.code!=="ERR_FR_TOO_MANY_REDIRECTS"||o(USe(B,t,null,V))}),t.timeout){var K=parseInt(t.timeout,10);if(isNaN(K)){o(AY("error trying to parse `config.timeout` to int",t,"ERR_PARSE_TIMEOUT",V));return}V.setTimeout(K,function(){V.abort(),o(AY("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))}),T1.isStream(a)?a.on("error",function(B){o(USe(B,t,null,V))}).pipe(V):V.end(a)})}});var wY=w((ohi,obt)=>{"use strict";var Ma=$c(),ibt=IEt(),yZn=bY(),SZn={"Content-Type":"application/x-www-form-urlencoded"};function sbt(e,t){!Ma.isUndefined(e)&&Ma.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function EZn(){var e;return typeof XMLHttpRequest<"u"?e=VEt():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=rbt()),e}function bZn(e,t,n){if(Ma.isString(e))try{return(t||JSON.parse)(e),Ma.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}var RY={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:EZn(),transformRequest:[function(t,n){return ibt(n,"Accept"),ibt(n,"Content-Type"),Ma.isFormData(t)||Ma.isArrayBuffer(t)||Ma.isBuffer(t)||Ma.isStream(t)||Ma.isFile(t)||Ma.isBlob(t)?t:Ma.isArrayBufferView(t)?t.buffer:Ma.isURLSearchParams(t)?(sbt(n,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):Ma.isObject(t)||n&&n["Content-Type"]==="application/json"?(sbt(n,"application/json"),bZn(t)):t}],transformResponse:[function(t){var n=this.transitional,r=n&&n.silentJSONParsing,i=n&&n.forcedJSONParsing,s=!r&&this.responseType==="json";if(s||i&&Ma.isString(t)&&t.length)try{return JSON.parse(t)}catch(o){if(s)throw o.name==="SyntaxError"?yZn(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}};RY.headers={common:{Accept:"application/json, text/plain, */*"}};Ma.forEach(["delete","get","head"],function(t){RY.headers[t]={}});Ma.forEach(["post","put","patch"],function(t){RY.headers[t]=Ma.merge(SZn)});obt.exports=RY});var cbt=w((ahi,abt)=>{"use strict";var _Zn=$c(),TZn=wY();abt.exports=function(t,n,r){var i=this||TZn;return _Zn.forEach(r,function(o){t=o.call(i,t,n)}),t}});var FSe=w((chi,ubt)=>{"use strict";ubt.exports=function(t){return!!(t&&t.__CANCEL__)}});var fbt=w((uhi,dbt)=>{"use strict";var lbt=$c(),jSe=cbt(),vZn=FSe(),AZn=wY();function HSe(e){e.cancelToken&&e.cancelToken.throwIfRequested()}dbt.exports=function(t){HSe(t),t.headers=t.headers||{},t.data=jSe.call(t,t.data,t.headers,t.transformRequest),t.headers=lbt.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),lbt.forEach(["delete","get","head","post","put","patch","common"],function(i){delete t.headers[i]});var n=t.adapter||AZn.adapter;return n(t).then(function(i){return HSe(t),i.data=jSe.call(t,i.data,i.headers,t.transformResponse),i},function(i){return vZn(i)||(HSe(t),i&&i.response&&(i.response.data=jSe.call(t,i.response.data,i.response.headers,t.transformResponse))),Promise.reject(i)})}});var qSe=w((lhi,pbt)=>{"use strict";var Ec=$c();pbt.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 Sbt=w((dhi,ybt)=>{"use strict";var mbt=DSe(),BSe={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){BSe[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});var hbt={},RZn=mbt.version.split(".");function gbt(e,t){for(var n=t?t.split("."):RZn,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)}}ybt.exports={isOlderVersion:gbt,assertOptions:wZn,validators:BSe}});var Abt=w((fhi,vbt)=>{"use strict";var _bt=$c(),kZn=SY(),Ebt=wEt(),bbt=fbt(),kY=qSe(),Tbt=Sbt(),Zx=Tbt.validators;function v1(e){this.defaults=e,this.interceptors={request:new Ebt,response:new Ebt}}v1.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=kY(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&&Tbt.assertOptions(n,{silentJSONParsing:Zx.transitional(Zx.boolean,"1.0.0"),forcedJSONParsing:Zx.transitional(Zx.boolean,"1.0.0"),clarifyTimeoutError:Zx.transitional(Zx.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=[bbt,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=bbt(c)}catch(d){return Promise.reject(d)}for(;s.length;)o=o.then(s.shift(),s.shift());return o};v1.prototype.getUri=function(t){return t=kY(this.defaults,t),kZn(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};_bt.forEach(["delete","get","head","options"],function(t){v1.prototype[t]=function(n,r){return this.request(kY(r||{},{method:t,url:n,data:(r||{}).data}))}});_bt.forEach(["post","put","patch"],function(t){v1.prototype[t]=function(n,r,i){return this.request(kY(i||{},{method:t,url:n,data:r}))}});vbt.exports=v1});var zSe=w((phi,Rbt)=>{"use strict";function GSe(e){this.message=e}GSe.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};GSe.prototype.__CANCEL__=!0;Rbt.exports=GSe});var kbt=w((hhi,wbt)=>{"use strict";var IZn=zSe();function IY(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))})}IY.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};IY.source=function(){var t,n=new IY(function(i){t=i});return{token:n,cancel:t}};wbt.exports=IY});var xbt=w((mhi,Ibt)=>{"use strict";Ibt.exports=function(t){return function(r){return t.apply(null,r)}}});var Nbt=w((ghi,Obt)=>{"use strict";Obt.exports=function(t){return typeof t=="object"&&t.isAxiosError===!0}});var Mbt=w((yhi,VSe)=>{"use strict";var Pbt=$c(),xZn=hSe(),xY=Abt(),OZn=qSe(),NZn=wY();function Cbt(e){var t=new xY(e),n=xZn(xY.prototype.request,t);return Pbt.extend(n,xY.prototype,t),Pbt.extend(n,t),n}var tp=Cbt(NZn);tp.Axios=xY;tp.create=function(t){return Cbt(OZn(tp.defaults,t))};tp.Cancel=zSe();tp.CancelToken=kbt();tp.isCancel=FSe();tp.all=function(t){return Promise.all(t)};tp.spread=xbt();tp.isAxiosError=Nbt();VSe.exports=tp;VSe.exports.default=tp});var Dbt=w((Shi,Lbt)=>{Lbt.exports=Mbt()});var Fbt=w((Ehi,Ubt)=>{var Yx=1e3,Jx=Yx*60,Xx=Jx*60,bv=Xx*24,PZn=bv*7,CZn=bv*365.25;Ubt.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return MZn(e);if(n==="number"&&isFinite(e))return t.long?DZn(e):LZn(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function MZn(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*CZn;case"weeks":case"week":case"w":return n*PZn;case"days":case"day":case"d":return n*bv;case"hours":case"hour":case"hrs":case"hr":case"h":return n*Xx;case"minutes":case"minute":case"mins":case"min":case"m":return n*Jx;case"seconds":case"second":case"secs":case"sec":case"s":return n*Yx;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function LZn(e){var t=Math.abs(e);return t>=bv?Math.round(e/bv)+"d":t>=Xx?Math.round(e/Xx)+"h":t>=Jx?Math.round(e/Jx)+"m":t>=Yx?Math.round(e/Yx)+"s":e+"ms"}function DZn(e){var t=Math.abs(e);return t>=bv?OY(e,t,bv,"day"):t>=Xx?OY(e,t,Xx,"hour"):t>=Jx?OY(e,t,Jx,"minute"):t>=Yx?OY(e,t,Yx,"second"):e+" ms"}function OY(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var WSe=w((bhi,jbt)=>{function UZn(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=Fbt(),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{Ll.formatArgs=jZn;Ll.save=HZn;Ll.load=qZn;Ll.useColors=FZn;Ll.storage=BZn();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 FZn(){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 jZn(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+NY.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 HZn(e){try{e?Ll.storage.setItem("debug",e):Ll.storage.removeItem("debug")}catch{}}function qZn(){let e;try{e=Ll.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function BZn(){try{return localStorage}catch{}}NY.exports=WSe()(Ll);var{formatters:GZn}=NY.exports;GZn.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var Bbt=w((La,CY)=>{var zZn=Z("tty"),PY=Z("util");La.init=XZn;La.log=ZZn;La.formatArgs=WZn;La.save=YZn;La.load=JZn;La.useColors=VZn;La.destroy=PY.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=YJ();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 VZn(){return"colors"in La.inspectOpts?!!La.inspectOpts.colors:zZn.isatty(process.stderr.fd)}function WZn(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:U9,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:H9,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:q9,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:F9,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:j9,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:oY,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:aY,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Repair report \u2014 markdown text including any worktree-migration findings."}},required:["markdown"]}},{name:"haiku_version_info",description:"Return the running MCP binary version and plugin version. MCP version is baked into the binary at build time; plugin version is read from plugin.json at runtime.",inputSchema:BL,outputSchema:{type:"object",properties:{mcp_version:{type:"string"},plugin_version:{type:"string"}},required:["mcp_version","plugin_version"]}}]});var RSe=w((Ahi,Obt)=>{"use strict";Obt.exports=function(t,n){return function(){for(var i=new Array(arguments.length),s=0;s{"use strict";var H9n=RSe(),vv=Object.prototype.toString;function kSe(e){return vv.call(e)==="[object Array]"}function ASe(e){return typeof e>"u"}function q9n(e){return e!==null&&!ASe(e)&&e.constructor!==null&&!ASe(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function B9n(e){return vv.call(e)==="[object ArrayBuffer]"}function z9n(e){return typeof FormData<"u"&&e instanceof FormData}function G9n(e){var t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function V9n(e){return typeof e=="string"}function W9n(e){return typeof e=="number"}function Pbt(e){return e!==null&&typeof e=="object"}function wZ(e){if(vv.call(e)!=="[object Object]")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function K9n(e){return vv.call(e)==="[object Date]"}function Y9n(e){return vv.call(e)==="[object File]"}function Z9n(e){return vv.call(e)==="[object Blob]"}function Nbt(e){return vv.call(e)==="[object Function]"}function J9n(e){return Pbt(e)&&Nbt(e.pipe)}function X9n(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function Q9n(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function $9n(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function ISe(e,t){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),kSe(e))for(var n=0,r=e.length;n{"use strict";var ex=eu();function Mbt(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}Dbt.exports=function(t,n,r){if(!n)return t;var i;if(r)i=r(n);else if(ex.isURLSearchParams(n))i=n.toString();else{var s=[];ex.forEach(n,function(c,u){c===null||typeof c>"u"||(ex.isArray(c)?u=u+"[]":c=[c],ex.forEach(c,function(d){ex.isDate(d)?d=d.toISOString():ex.isObject(d)&&(d=JSON.stringify(d)),s.push(Mbt(u)+"="+Mbt(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 Ubt=w((Ihi,Lbt)=>{"use strict";var nYn=eu();function IZ(){this.handlers=[]}IZ.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};IZ.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};IZ.prototype.forEach=function(t){nYn.forEach(this.handlers,function(r){r!==null&&t(r)})};Lbt.exports=IZ});var jbt=w((xhi,Fbt)=>{"use strict";var rYn=eu();Fbt.exports=function(t,n){rYn.forEach(t,function(i,s){s!==n&&s.toUpperCase()===n.toUpperCase()&&(t[n]=i,delete t[s])})}});var xZ=w((Ohi,Hbt)=>{"use strict";Hbt.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 OZ=w((Phi,qbt)=>{"use strict";var iYn=xZ();qbt.exports=function(t,n,r,i,s){var o=new Error(t);return iYn(o,n,r,i,s)}});var xSe=w((Nhi,Bbt)=>{"use strict";var sYn=OZ();Bbt.exports=function(t,n,r){var i=r.config.validateStatus;!r.status||!i||i(r.status)?t(r):n(sYn("Request failed with status code "+r.status,r.config,null,r.request,r))}});var Gbt=w((Chi,zbt)=>{"use strict";var PZ=eu();zbt.exports=PZ.isStandardBrowserEnv()?(function(){return{write:function(n,r,i,s,o,a){var c=[];c.push(n+"="+encodeURIComponent(r)),PZ.isNumber(i)&&c.push("expires="+new Date(i).toGMTString()),PZ.isString(s)&&c.push("path="+s),PZ.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 Wbt=w((Mhi,Vbt)=>{"use strict";Vbt.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}});var Ybt=w((Dhi,Kbt)=>{"use strict";Kbt.exports=function(t,n){return n?t.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):t}});var OSe=w((Lhi,Zbt)=>{"use strict";var oYn=Wbt(),aYn=Ybt();Zbt.exports=function(t,n){return t&&!oYn(n)?aYn(t,n):n}});var Xbt=w((Uhi,Jbt)=>{"use strict";var PSe=eu(),cYn=["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"];Jbt.exports=function(t){var n={},r,i,s;return t&&PSe.forEach(t.split(` +`),function(a){if(s=a.indexOf(":"),r=PSe.trim(a.substr(0,s)).toLowerCase(),i=PSe.trim(a.substr(s+1)),r){if(n[r]&&cYn.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 eEt=w((Fhi,$bt)=>{"use strict";var Qbt=eu();$bt.exports=Qbt.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=Qbt.isString(o)?i(o):o;return a.protocol===r.protocol&&a.host===r.host}})():(function(){return function(){return!0}})()});var nEt=w((jhi,tEt)=>{"use strict";var NZ=eu(),uYn=xSe(),lYn=Gbt(),dYn=kZ(),fYn=OSe(),pYn=Xbt(),hYn=eEt(),NSe=OZ();tEt.exports=function(t){return new Promise(function(r,i){var s=t.data,o=t.headers,a=t.responseType;NZ.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=fYn(t.baseURL,t.url);c.open(t.method.toUpperCase(),dYn(d,t.params,t.paramsSerializer),!0),c.timeout=t.timeout;function f(){if(c){var h="getAllResponseHeaders"in c?pYn(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};uYn(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(NSe("Request aborted",t,"ECONNABORTED",c)),c=null)},c.onerror=function(){i(NSe("Network Error",t,null,c)),c=null},c.ontimeout=function(){var m="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(m=t.timeoutErrorMessage),i(NSe(m,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",c)),c=null},NZ.isStandardBrowserEnv()){var p=(t.withCredentials||hYn(d))&&t.xsrfCookieName?lYn.read(t.xsrfCookieName):void 0;p&&(o[t.xsrfHeaderName]=p)}"setRequestHeader"in c&&NZ.forEach(o,function(m,g){typeof s>"u"&&g.toLowerCase()==="content-type"?delete o[g]:c.setRequestHeader(g,m)}),NZ.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 iEt=w((Hhi,rEt)=>{var tx=1e3,nx=tx*60,rx=nx*60,Rv=rx*24,mYn=Rv*7,gYn=Rv*365.25;rEt.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return yYn(e);if(n==="number"&&isFinite(e))return t.long?bYn(e):SYn(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function yYn(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*gYn;case"weeks":case"week":case"w":return n*mYn;case"days":case"day":case"d":return n*Rv;case"hours":case"hour":case"hrs":case"hr":case"h":return n*rx;case"minutes":case"minute":case"mins":case"min":case"m":return n*nx;case"seconds":case"second":case"secs":case"sec":case"s":return n*tx;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function SYn(e){var t=Math.abs(e);return t>=Rv?Math.round(e/Rv)+"d":t>=rx?Math.round(e/rx)+"h":t>=nx?Math.round(e/nx)+"m":t>=tx?Math.round(e/tx)+"s":e+"ms"}function bYn(e){var t=Math.abs(e);return t>=Rv?CZ(e,t,Rv,"day"):t>=rx?CZ(e,t,rx,"hour"):t>=nx?CZ(e,t,nx,"minute"):t>=tx?CZ(e,t,tx,"second"):e+" ms"}function CZ(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var CSe=w((qhi,sEt)=>{function EYn(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=iEt(),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=TYn;Ll.save=vYn;Ll.load=RYn;Ll.useColors=_Yn;Ll.storage=AYn();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 _Yn(){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 TYn(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+MZ.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 vYn(e){try{e?Ll.storage.setItem("debug",e):Ll.storage.removeItem("debug")}catch{}}function RYn(){let e;try{e=Ll.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function AYn(){try{return localStorage}catch{}}MZ.exports=CSe()(Ll);var{formatters:wYn}=MZ.exports;wYn.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var cEt=w((Ma,LZ)=>{var kYn=Y("tty"),DZ=Y("util");Ma.init=MYn;Ma.log=PYn;Ma.formatArgs=xYn;Ma.save=NYn;Ma.load=CYn;Ma.useColors=IYn;Ma.destroy=DZ.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=mj();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 IYn(){return"colors"in Ma.inspectOpts?!!Ma.inspectOpts.colors:kYn.isatty(process.stderr.fd)}function xYn(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+"+LZ.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=OYn()+t+" "+e[0]}function OYn(){return Ma.inspectOpts.hideDate?"":new Date().toISOString()+" "}function PYn(...e){return process.stderr.write(DZ.format(...e)+` +`)}function NYn(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function CYn(){return process.env.DEBUG}function MYn(e){e.inspectOpts={};let t=Object.keys(Ma.inspectOpts);for(let n=0;nt.trim()).join(" ")};aEt.O=function(e){return this.inspectOpts.colors=this.useColors,DZ.inspect(e,this.inspectOpts)}});var uEt=w((Bhi,MSe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?MSe.exports=oEt():MSe.exports=cEt()});var dEt=w((zhi,lEt)=>{var w1;lEt.exports=function(){if(!w1){try{w1=uEt()("follow-redirects")}catch{}typeof w1!="function"&&(w1=function(){})}w1.apply(null,arguments)}});var KSe=w((Ghi,WSe)=>{var I1=Y("url"),k1=I1.URL,DYn=Y("http"),LYn=Y("https"),jSe=Y("stream").Writable,HSe=Y("assert"),fEt=dEt();(function(){var t=typeof process<"u",n=typeof window<"u"&&typeof document<"u",r=wv(Error.captureStackTrace);!t&&(n||!r)&&console.warn("The follow-redirects package should be excluded from browser builds.")})();var qSe=!1;try{HSe(new k1(""))}catch(e){qSe=e.code==="ERR_INVALID_URL"}var UYn=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],BSe=["abort","aborted","connect","error","socket","timeout"],zSe=Object.create(null);BSe.forEach(function(e){zSe[e]=function(t,n,r){this._redirectable.emit(e,t,n,r)}});var LSe=x1("ERR_INVALID_URL","Invalid URL",TypeError),USe=x1("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),FYn=x1("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",USe),jYn=x1("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),HYn=x1("ERR_STREAM_WRITE_AFTER_END","write after end"),qYn=jSe.prototype.destroy||hEt;function Ku(e,t){jSe.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 USe?i:new USe({cause:i}))}},this._performRequest()}Ku.prototype=Object.create(jSe.prototype);Ku.prototype.abort=function(){VSe(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};Ku.prototype.destroy=function(e){return VSe(this._currentRequest,e),qYn.call(this,e),this};Ku.prototype.write=function(e,t,n){if(this._ending)throw new HYn;if(!Av(e)&&!GYn(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(wv(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 jYn),this.abort())};Ku.prototype.end=function(e,t,n){if(wv(e)?(n=e,e=t=null):wv(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 BSe)r.on(i,zSe[i]);if(this._currentUrl=/^\//.test(this._options.path)?I1.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(VSe(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new FYn;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=[],DSe(/^content-/i,this._options.headers));var o=DSe(/^host$/i,this._options.headers),a=GSe(this._currentUrl),c=o||a.host,u=/^\w+:/.test(n)?this._currentUrl:I1.format(Object.assign(a,{host:c})),l=BYn(n,u);if(fEt("redirecting to",l.href),this._isRedirect=!0,FSe(l,this._options),(l.protocol!==a.protocol&&l.protocol!=="https:"||l.host!==c&&!zYn(l.host,c))&&DSe(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),wv(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 pEt(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 VYn(u)?u=FSe(u):Av(u)?u=FSe(GSe(u)):(d=l,l=mEt(u),u={protocol:i}),wv(l)&&(d=l,l=null),l=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},u,l),l.nativeProtocols=n,!Av(l.host)&&!Av(l.hostname)&&(l.hostname="::1"),HSe.equal(l.protocol,i,"protocol mismatch"),fEt("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 hEt(){}function GSe(e){var t;if(qSe)t=new k1(e);else if(t=mEt(I1.parse(e)),!Av(t.protocol))throw new LSe({input:e});return t}function BYn(e,t){return qSe?new k1(e,t):GSe(I1.resolve(t,e))}function mEt(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new LSe({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new LSe({input:e.href||e});return e}function FSe(e,t){var n=t||{};for(var r of UYn)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 DSe(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 x1(e,t,n){function r(i){wv(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 VSe(e,t){for(var n of BSe)e.removeListener(n,zSe[n]);e.on("error",hEt),e.destroy(t)}function zYn(e,t){HSe(Av(e)&&Av(t));var n=e.length-t.length-1;return n>0&&e[n]==="."&&e.endsWith(t)}function Av(e){return typeof e=="string"||e instanceof String}function wv(e){return typeof e=="function"}function GYn(e){return typeof e=="object"&&"length"in e}function VYn(e){return k1&&e instanceof k1}WSe.exports=pEt({http:DYn,https:LYn});WSe.exports.wrap=pEt});var YSe=w((Vhi,WYn)=>{WYn.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 _Et=w((Whi,EEt)=>{"use strict";var O1=eu(),gEt=xSe(),KYn=OSe(),YYn=kZ(),ZYn=Y("http"),JYn=Y("https"),XYn=KSe().http,QYn=KSe().https,yEt=Y("url"),$Yn=Y("zlib"),eZn=YSe(),UZ=OZ(),ZSe=xZ(),SEt=/https:?/;function bEt(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,bEt(s,t,s.href)}}EEt.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/"+eZn.version,a&&!O1.isStream(a)){if(!Buffer.isBuffer(a))if(O1.isArrayBuffer(a))a=Buffer.from(new Uint8Array(a));else if(O1.isString(a))a=Buffer.from(a,"utf-8");else return o(UZ("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=KYn(t.baseURL,t.url),p=yEt.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=SEt.test(h),S=b?t.httpsAgent:t.httpAgent,E={path:YYn(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=yEt.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:""),bEt(E,_,h+"//"+p.hostname+(p.port?":"+p.port:"")+E.path));var C,L=b&&(_?SEt.test(_.protocol):!0);t.transport?C=t.transport:t.maxRedirects===0?C=L?JYn:ZYn:(t.maxRedirects&&(E.maxRedirects=t.maxRedirects),C=L?QYn:XYn),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($Yn.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,gEt(s,o,F);else{var V=[],U=0;Q.on("data",function(j){V.push(j),U+=j.length,t.maxContentLength>-1&&U>t.maxContentLength&&(Q.destroy(),o(UZ("maxContentLength size of "+t.maxContentLength+" exceeded",t,null,B)))}),Q.on("error",function(j){G.aborted||o(ZSe(j,t,null,B))}),Q.on("end",function(){var j=Buffer.concat(V);t.responseType!=="arraybuffer"&&(j=j.toString(t.responseEncoding),(!t.responseEncoding||t.responseEncoding==="utf8")&&(j=O1.stripBOM(j))),F.data=j,gEt(s,o,F)})}}});if(G.on("error",function(q){G.aborted&&q.code!=="ERR_FR_TOO_MANY_REDIRECTS"||o(ZSe(q,t,null,G))}),t.timeout){var W=parseInt(t.timeout,10);if(isNaN(W)){o(UZ("error trying to parse `config.timeout` to int",t,"ERR_PARSE_TIMEOUT",G));return}G.setTimeout(W,function(){G.abort(),o(UZ("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))}),O1.isStream(a)?a.on("error",function(q){o(ZSe(q,t,null,G))}).pipe(G):G.end(a)})}});var jZ=w((Khi,REt)=>{"use strict";var Da=eu(),TEt=jbt(),tZn=xZ(),nZn={"Content-Type":"application/x-www-form-urlencoded"};function vEt(e,t){!Da.isUndefined(e)&&Da.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function rZn(){var e;return typeof XMLHttpRequest<"u"?e=nEt():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=_Et()),e}function iZn(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 FZ={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:rZn(),transformRequest:[function(t,n){return TEt(n,"Accept"),TEt(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)?(vEt(n,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):Da.isObject(t)||n&&n["Content-Type"]==="application/json"?(vEt(n,"application/json"),iZn(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"?tZn(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}};FZ.headers={common:{Accept:"application/json, text/plain, */*"}};Da.forEach(["delete","get","head"],function(t){FZ.headers[t]={}});Da.forEach(["post","put","patch"],function(t){FZ.headers[t]=Da.merge(nZn)});REt.exports=FZ});var wEt=w((Yhi,AEt)=>{"use strict";var sZn=eu(),oZn=jZ();AEt.exports=function(t,n,r){var i=this||oZn;return sZn.forEach(r,function(o){t=o.call(i,t,n)}),t}});var JSe=w((Zhi,kEt)=>{"use strict";kEt.exports=function(t){return!!(t&&t.__CANCEL__)}});var OEt=w((Jhi,xEt)=>{"use strict";var IEt=eu(),XSe=wEt(),aZn=JSe(),cZn=jZ();function QSe(e){e.cancelToken&&e.cancelToken.throwIfRequested()}xEt.exports=function(t){QSe(t),t.headers=t.headers||{},t.data=XSe.call(t,t.data,t.headers,t.transformRequest),t.headers=IEt.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),IEt.forEach(["delete","get","head","post","put","patch","common"],function(i){delete t.headers[i]});var n=t.adapter||cZn.adapter;return n(t).then(function(i){return QSe(t),i.data=XSe.call(t,i.data,i.headers,t.transformResponse),i},function(i){return aZn(i)||(QSe(t),i&&i.response&&(i.response.data=XSe.call(t,i.response.data,i.response.headers,t.transformResponse))),Promise.reject(i)})}});var $Se=w((Xhi,PEt)=>{"use strict";var Ec=eu();PEt.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 LEt=w((Qhi,DEt)=>{"use strict";var CEt=YSe(),ebe={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){ebe[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});var NEt={},uZn=CEt.version.split(".");function MEt(e,t){for(var n=t?t.split("."):uZn,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)}}DEt.exports={isOlderVersion:MEt,assertOptions:lZn,validators:ebe}});var BEt=w(($hi,qEt)=>{"use strict";var jEt=eu(),dZn=kZ(),UEt=Ubt(),FEt=OEt(),HZ=$Se(),HEt=LEt(),ix=HEt.validators;function P1(e){this.defaults=e,this.interceptors={request:new UEt,response:new UEt}}P1.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=HZ(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&&HEt.assertOptions(n,{silentJSONParsing:ix.transitional(ix.boolean,"1.0.0"),forcedJSONParsing:ix.transitional(ix.boolean,"1.0.0"),clarifyTimeoutError:ix.transitional(ix.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=[FEt,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=FEt(c)}catch(d){return Promise.reject(d)}for(;s.length;)o=o.then(s.shift(),s.shift());return o};P1.prototype.getUri=function(t){return t=HZ(this.defaults,t),dZn(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};jEt.forEach(["delete","get","head","options"],function(t){P1.prototype[t]=function(n,r){return this.request(HZ(r||{},{method:t,url:n,data:(r||{}).data}))}});jEt.forEach(["post","put","patch"],function(t){P1.prototype[t]=function(n,r,i){return this.request(HZ(i||{},{method:t,url:n,data:r}))}});qEt.exports=P1});var nbe=w((emi,zEt)=>{"use strict";function tbe(e){this.message=e}tbe.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};tbe.prototype.__CANCEL__=!0;zEt.exports=tbe});var VEt=w((tmi,GEt)=>{"use strict";var fZn=nbe();function qZ(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 fZn(i),t(n.reason))})}qZ.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};qZ.source=function(){var t,n=new qZ(function(i){t=i});return{token:n,cancel:t}};GEt.exports=qZ});var KEt=w((nmi,WEt)=>{"use strict";WEt.exports=function(t){return function(r){return t.apply(null,r)}}});var ZEt=w((rmi,YEt)=>{"use strict";YEt.exports=function(t){return typeof t=="object"&&t.isAxiosError===!0}});var QEt=w((imi,rbe)=>{"use strict";var JEt=eu(),pZn=RSe(),BZ=BEt(),hZn=$Se(),mZn=jZ();function XEt(e){var t=new BZ(e),n=pZn(BZ.prototype.request,t);return JEt.extend(n,BZ.prototype,t),JEt.extend(n,t),n}var rp=XEt(mZn);rp.Axios=BZ;rp.create=function(t){return XEt(hZn(rp.defaults,t))};rp.Cancel=nbe();rp.CancelToken=VEt();rp.isCancel=JSe();rp.all=function(t){return Promise.all(t)};rp.spread=KEt();rp.isAxiosError=ZEt();rbe.exports=rp;rbe.exports.default=rp});var e_t=w((smi,$Et)=>{$Et.exports=QEt()});var n_t=w((omi,t_t)=>{var sx=1e3,ox=sx*60,ax=ox*60,kv=ax*24,gZn=kv*7,yZn=kv*365.25;t_t.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return SZn(e);if(n==="number"&&isFinite(e))return t.long?EZn(e):bZn(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function SZn(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*yZn;case"weeks":case"week":case"w":return n*gZn;case"days":case"day":case"d":return n*kv;case"hours":case"hour":case"hrs":case"hr":case"h":return n*ax;case"minutes":case"minute":case"mins":case"min":case"m":return n*ox;case"seconds":case"second":case"secs":case"sec":case"s":return n*sx;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function bZn(e){var t=Math.abs(e);return t>=kv?Math.round(e/kv)+"d":t>=ax?Math.round(e/ax)+"h":t>=ox?Math.round(e/ox)+"m":t>=sx?Math.round(e/sx)+"s":e+"ms"}function EZn(e){var t=Math.abs(e);return t>=kv?zZ(e,t,kv,"day"):t>=ax?zZ(e,t,ax,"hour"):t>=ox?zZ(e,t,ox,"minute"):t>=sx?zZ(e,t,sx,"second"):e+" ms"}function zZ(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var ibe=w((ami,r_t)=>{function _Zn(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=n_t(),n.destroy=u,Object.keys(e).forEach(l=>{n[l]=e[l]}),n.names=[],n.skips=[],n.formatters={};function t(l){let d=0;for(let f=0;f{if(T==="%%")return"%";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=vZn;Ul.save=RZn;Ul.load=AZn;Ul.useColors=TZn;Ul.storage=wZn();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 TZn(){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 vZn(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+GZ.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 RZn(e){try{e?Ul.storage.setItem("debug",e):Ul.storage.removeItem("debug")}catch{}}function AZn(){let e;try{e=Ul.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function wZn(){try{return localStorage}catch{}}GZ.exports=ibe()(Ul);var{formatters:kZn}=GZ.exports;kZn.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var o_t=w((La,WZ)=>{var IZn=Y("tty"),VZ=Y("util");La.init=DZn;La.log=NZn;La.formatArgs=OZn;La.save=CZn;La.load=MZn;La.useColors=xZn;La.destroy=VZ.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=mj();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 xZn(){return"colors"in La.inspectOpts?!!La.inspectOpts.colors:IZn.isatty(process.stderr.fd)}function OZn(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+"+CY.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=KZn()+t+" "+e[0]}function KZn(){return La.inspectOpts.hideDate?"":new Date().toISOString()+" "}function ZZn(...e){return process.stderr.write(PY.format(...e)+` -`)}function YZn(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function JZn(){return process.env.DEBUG}function XZn(e){e.inspectOpts={};let t=Object.keys(La.inspectOpts);for(let n=0;nt.trim()).join(" ")};qbt.O=function(e){return this.inspectOpts.colors=this.useColors,PY.inspect(e,this.inspectOpts)}});var ZSe=w((_hi,KSe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?KSe.exports=Hbt():KSe.exports=Bbt()});var zbt=w((Thi,Gbt)=>{var{Transform:QZn}=Z("stream"),YSe=class extends QZn{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)))}};Gbt.exports=YSe});var Kbt=w((Ahi,Wbt)=>{var{EventEmitter:$Zn}=Z("events"),Zh=ZSe()("localtunnel:client"),JSe=Z("fs"),Vbt=Z("net"),eYn=Z("tls"),tYn=zbt();Wbt.exports=class extends $Zn{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=Vbt.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:JSe.readFileSync(t.local_cert),key:JSe.readFileSync(t.local_key),ca:t.local_ca?[JSe.readFileSync(t.local_ca)]:void 0},d=t.local_https?eYn.connect({host:i,port:s,...l()}):Vbt.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 tYn({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 Jbt=w((whi,Ybt)=>{var{parse:nYn}=Z("url"),{EventEmitter:Zbt}=Z("events"),rYn=Dbt(),A1=ZSe()("localtunnel:client"),iYn=Kbt();Ybt.exports=class extends Zbt{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:nYn(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(){rYn.get(a,i).then(u=>{let l=u.data;if(A1("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=>(A1(`tunnel server offline: ${u.message}, retry 1s`),setTimeout(c,1e3)))})()}_establish(t){this.setMaxListeners(t.max_conn+(Zbt.defaultMaxListeners||10)),this.tunnelCluster=new iYn(t),this.tunnelCluster.once("open",()=>{this.emit("url",t.url)}),this.tunnelCluster.on("error",r=>{A1("got socket error",r.message),this.emit("error",r)});let n=0;this.tunnelCluster.on("open",r=>{n++,A1("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--,A1("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 Qbt=w((khi,Xbt)=>{var sYn=Jbt();Xbt.exports=function(t,n,r){let i=typeof t=="object"?t:{...n,port:t},s=typeof t=="object"?n:r,o=new sYn(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 c_t={};Rr(c_t,{__setActiveTunnelForTesting:()=>fYn,buildReviewUrl:()=>vv,clearE2EKey:()=>rEe,closeTunnel:()=>tEe,e2eEncrypt:()=>nEe,getTunnelUrl:()=>a_t,isE2EActive:()=>k1,isRemoteReviewEnabled:()=>Bi,isTunnelOpen:()=>lYn,openTunnel:()=>jg,signJWT:()=>s_t,verifyTunnelJWT:()=>Yh});import{createCipheriv as oYn,createHmac as n_t,randomBytes as $Se,timingSafeEqual as aYn}from"node:crypto";async function uYn(){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,QSe()}}function i_t(){MY(),R1=setInterval(uYn,cYn),R1.unref()}function MY(){R1&&(clearInterval(R1),R1=null)}function $bt(e){return(typeof e=="string"?Buffer.from(e).toString("base64"):e.toString("base64")).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function s_t(e){let t=$bt(JSON.stringify({alg:"HS256",typ:"JWT"})),n=$bt(JSON.stringify(e)),r=n_t("sha256",r_t).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=n_t("sha256",r_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(!aYn(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=a_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 QSe(){if(_v||Tv||!XSe)return;_v=!0;let e=5;for(let t=0;tsetTimeout(r,n));try{let r=await(0,eEe.default)({port:XSe});Ts=r,o_t(r),console.error(`[haiku] Tunnel reconnected: ${r.url}`),i_t(),_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 o_t(e){e.on("close",()=>{Ts===e&&(Ts=null,MY(),console.error("[haiku] Tunnel closed unexpectedly"),Tv||QSe())}),e.on("error",t=>{console.error("[haiku] Tunnel error:",t.message),Ts===e&&(Ts=null,MY(),Tv||QSe())})}async function jg(e){if(Ts)return Ts.url;if(_v){let n=Date.now()+e_t;if(await new Promise((r,i)=>{let s=setInterval(()=>{_v?Date.now()>n&&(clearInterval(s),i(new Error(`openTunnel: timed out after ${e_t}ms waiting for an in-flight reconnect to settle`))):(clearInterval(s),r())},100)}),Ts)return Ts.url}XSe=e,Tv=!1;let t=3;for(let n=0;nsetTimeout(()=>o(new Error(`localtunnel did not respond within ${t_t}ms`)),t_t)),i=await Promise.race([(0,eEe.default)({port:e}),r]);return Ts=i,o_t(i),console.error(`[haiku] Tunnel opened: ${i.url}`),i_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 tEe(){Tv=!0,MY(),Ts&&(Ts.close(),Ts=null,console.error("[haiku] Tunnel closed"))}function a_t(){return Ts?.url??null}function lYn(){return Ts!==null}function Bi(){return zo.remoteReview}function vv(e,t,n){let r=$Se(32);w1.set(e,r);let i=Math.floor(Date.now()/1e3),s=s_t({tun:t,sid:e,typ:n,key:r.toString("base64url"),iat:i,exp:i+3600});return`${dYn}/review/#${s}`}function nEe(e,t){let n=w1.get(e);if(!n)return null;let r=$Se(12),i=oYn("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 k1(e){return e?w1.has(e):w1.size>0}function rEe(e){w1.delete(e)}function fYn(e){e?Ts={url:e,close:()=>{Ts=null},on:()=>{}}:Ts=null}var eEe,r_t,w1,Ts,XSe,_v,Tv,R1,cYn,e_t,t_t,dYn,Jh=v(()=>{"use strict";eEe=Se(Qbt(),1);Ci();r_t=$Se(32),w1=new Map,Ts=null,XSe=null,_v=!1,Tv=!1,R1=null,cYn=3e4;e_t=3e4,t_t=15e3;dYn=yf.siteUrl});import{randomBytes as pYn}from"node:crypto";function mYn(){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 f_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 gYn(){let e=process.env.HAIKU_CSRF_NONCE_REQUIRED;return e==="true"||e==="1"}function yYn(){let e=process.env.HAIKU_CSRF_NONCE_TTL_MS;if(!e)return u_t;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?u_t:t}function p_t(e){let t=pYn(32).toString("base64url");return iEe.set(e,{nonce:t,expiresAt:Date.now()+yYn()}),t}function h_t(e){let t=iEe.get(e);return t?t.expiresAt{if(!Bi())return n.send({nonce:"local-mode-no-csrf-required"});let r=I1(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=p_t(i.payload.sid);return n.send({nonce:s})})}var hYn,l_t,d_t,u_t,iEe,sEe=v(()=>{"use strict";Jh();Hg();hYn=new Set(["POST","PUT","PATCH","DELETE"]),l_t="query_param_token_disallowed_on_mutating_route",d_t="X-Haiku-CSRF";u_t=3600*1e3;iEe=new Map});function I1(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=I1(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 Qx(e,t,n){if(!Bi())return!0;let r=I1(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 $x,Hg=v(()=>{"use strict";Qc();Jh();sEe();$x=Qx});import{existsSync as y_t}from"node:fs";import{join as S_t}from"node:path";function SYn(e,t,n=400){let r={error:"validation_failed",issues:t};return e.status(n).send(r)}function qE(e,t,n){let r=n.safeParse(t);if(!r.success){let i=r.error.issues.map(s=>({code:s.code,message:s.message,path:s.path}));return SYn(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 y_t(S_t(t,"intent.md"))}catch{return!1}}function Xh(e,t){try{let n=pe(e);return y_t(S_t(n,"stages",t))}catch{return!1}}var Av=v(()=>{"use strict";ze()});import{existsSync as LY,readdirSync as oEe,readFileSync as EYn}from"node:fs";import{join as O1}from"node:path";function b_t(e){return typeof e!="string"||e.length<=E_t?e:`${e.slice(0,E_t)}\u2026`}function bYn(e){let t={...e};t.agent_rationale=b_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:b_t(r.rationale_excerpt)})),t}function _Yn(e){return/^DA-\d+$/.test(e)}function x1(e){try{let t=EYn(e,"utf-8");return JSON.parse(t)}catch{return null}}function TYn(e){let t=pe(e),n=O1(t,"stages");if(!LY(n))return[];let r=[],i;try{i=oEe(n,{withFileTypes:!0}).filter(s=>s.isDirectory()).map(s=>s.name)}catch{return[]}for(let s of i){let o=O1(n,s,"drift-assessments");if(!LY(o))continue;let a;try{a=oEe(o).filter(c=>/^DA-\d+\.json$/.test(c))}catch{continue}for(let c of a){let u=c.replace(/\.json$/,""),l=O1(o,c),d=x1(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 __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=TYn(r).filter(m=>{if(o!==null&&new Date(m.createdAt).getTime()<=o)return!1;if(a!==null){let y=x1(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=x1(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=x1(m.absPath);y!==null&&h.push(bYn(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(!_Yn(i)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let s=pe(r),o=O1(s,"stages");if(!LY(o)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let a;try{a=oEe(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=O1(o,c,"drift-assessments",`${i}.json`);if(LY(u)){let l=x1(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 E_t,T_t=v(()=>{"use strict";ze();Hg();Av();E_t=256});import{createReadStream as vYn,existsSync as AYn}from"node:fs";function DY(e,t){e.status(400).send({error:t,code:t})}function aEe(e,t){e.status(404).send({error:t,code:t})}function A_t(e,t){if(!AYn(t)){aEe(e,"sidecar_not_found");return}let n=kyt(t),r=n?RYn[n]:"application/octet-stream";e.header("Content-Type",r),e.header("Cache-Control","public, max-age=31536000, immutable"),e.send(vYn(t))}function R_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)){DY(n,"bad_param");return}if(!v_t.test(s)){DY(n,"bad_sha");return}if(!Da(r)){aEe(n,"intent_not_found");return}let o=Iyt(pe(r),i,s);A_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)){DY(n,"bad_param");return}if(!v_t.test(i)){DY(n,"bad_sha");return}if(!Da(r)){aEe(n,"intent_not_found");return}let s=xyt(pe(r),i);A_t(n,s)})}var v_t,RYn,w_t=v(()=>{"use strict";Ax();ze();Hg();Av();v_t=/^[0-9a-f]{64}$/,RYn={png:"image/png",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",avif:"image/avif"}});import{brotliDecompressSync as wYn}from"node:zlib";var kYn,Gd,UY=v(()=>{"use strict";kYn="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",Gd=wYn(Buffer.from(kYn,"base64")).toString("utf-8")});import{existsSync as np,readdirSync as e0,readFileSync as Rv,writeFileSync as IYn}from"node:fs";import{join as ko}from"node:path";function FY(e){let t=pe(e.slug),n=ko(t,"intent.md");if(!np(n))return{ok:!1,error:"intent_not_found",details:{slug:e.slug}};let r=re(Rv(n,"utf8")).data,i=r.studio||"",s=r.mode||"continuous";if(!i)return{ok:!1,error:"intent_missing_studio"};let o=Fs(i);if(!o.includes(e.targetStage))return{ok:!1,error:"stage_not_in_studio",details:{studio:i,stages:o,targetStage:e.targetStage}};let a=o.indexOf(e.targetStage),c=o.slice(0,a+1),u=[],l=[];for(let g of c){let E=ko(t,"stages",g,"units");if(!np(E))continue;let S=Dye(i,g,s),b=Uye(i,g,s);for(let _ of e0(E).filter(T=>T.endsWith(".md"))){let T=ko(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]=Pl(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]=Hd(t,E));Le(g.unitPath,"reviews",S),Le(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=ko(t,"stages",g),S=ko(E,"elaboration.md"),b=new Date().toISOString();if(np(S)){let _=re(Rv(S,"utf8")).data,T=!1;_.verified_at||(Le(S,"verified_at",b),T=!0),_.decompose_verified_at||(Le(S,"decompose_verified_at",b),T=!0),T&&h++}else{let _=`# Elaboration (synthesized by /haiku:haiku-debug) +`+s),e.push(i+"m+"+WZ.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=PZn()+t+" "+e[0]}function PZn(){return La.inspectOpts.hideDate?"":new Date().toISOString()+" "}function NZn(...e){return process.stderr.write(VZ.format(...e)+` +`)}function CZn(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function MZn(){return process.env.DEBUG}function DZn(e){e.inspectOpts={};let t=Object.keys(La.inspectOpts);for(let n=0;nt.trim()).join(" ")};s_t.O=function(e){return this.inspectOpts.colors=this.useColors,VZ.inspect(e,this.inspectOpts)}});var obe=w((cmi,sbe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?sbe.exports=i_t():sbe.exports=o_t()});var c_t=w((umi,a_t)=>{var{Transform:LZn}=Y("stream"),abe=class extends LZn{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)))}};a_t.exports=abe});var d_t=w((dmi,l_t)=>{var{EventEmitter:UZn}=Y("events"),Jh=obe()("localtunnel:client"),cbe=Y("fs"),u_t=Y("net"),FZn=Y("tls"),jZn=c_t();l_t.exports=class extends UZn{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;Jh("establishing tunnel %s://%s:%s <> %s:%s",o,i,s,n,r);let c=u_t.connect({host:n,port:r});c.setKeepAlive(!0),c.on("error",l=>{Jh("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){Jh("remote destroyed"),this.emit("dead");return}Jh("connecting locally to %s://%s:%d",o,i,s),c.pause(),a&&Jh("allowing invalid certificates");let l=()=>a?{rejectUnauthorized:!1}:{cert:cbe.readFileSync(t.local_cert),key:cbe.readFileSync(t.local_key),ca:t.local_ca?[cbe.readFileSync(t.local_ca)]:void 0},d=t.local_https?FZn.connect({host:i,port:s,...l()}):u_t.connect({host:i,port:s}),f=()=>{Jh("remote close"),this.emit("dead"),d.end()};c.once("close",f),d.once("error",p=>{if(Jh("local error %s",p.message),d.end(),c.removeListener("close",f),p.code!=="ECONNREFUSED")return c.end();setTimeout(u,1e3)}),d.once("connect",()=>{Jh("connected locally"),c.resume();let p=c;t.local_host&&(Jh("transform Host header to %s",t.local_host),p=c.pipe(new jZn({host:t.local_host}))),p.pipe(d).pipe(c),d.once("close",h=>{Jh("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 h_t=w((pmi,p_t)=>{var{parse:HZn}=Y("url"),{EventEmitter:f_t}=Y("events"),qZn=e_t(),N1=obe()("localtunnel:client"),BZn=d_t();p_t.exports=class extends f_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:HZn(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(){qZn.get(a,i).then(u=>{let l=u.data;if(N1("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=>(N1(`tunnel server offline: ${u.message}, retry 1s`),setTimeout(c,1e3)))})()}_establish(t){this.setMaxListeners(t.max_conn+(f_t.defaultMaxListeners||10)),this.tunnelCluster=new BZn(t),this.tunnelCluster.once("open",()=>{this.emit("url",t.url)}),this.tunnelCluster.on("error",r=>{N1("got socket error",r.message),this.emit("error",r)});let n=0;this.tunnelCluster.on("open",r=>{n++,N1("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--,N1("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 g_t=w((hmi,m_t)=>{var zZn=h_t();m_t.exports=function(t,n,r){let i=typeof t=="object"?t:{...n,port:t},s=typeof t=="object"?n:r,o=new zZn(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 w_t={};Ar(w_t,{__setActiveTunnelForTesting:()=>JZn,buildReviewUrl:()=>Ov,clearE2EKey:()=>mbe,closeTunnel:()=>pbe,e2eEncrypt:()=>hbe,getTunnelUrl:()=>A_t,isE2EActive:()=>D1,isRemoteReviewEnabled:()=>Bi,isTunnelOpen:()=>YZn,openTunnel:()=>Hg,signJWT:()=>v_t,verifyTunnelJWT:()=>Xh});import{createCipheriv as GZn,createHmac as E_t,randomBytes as dbe,timingSafeEqual as VZn}from"node:crypto";async function KZn(){if(!(!Ts||xv||Iv))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,lbe()}}function T_t(){KZ(),C1=setInterval(KZn,WZn),C1.unref()}function KZ(){C1&&(clearInterval(C1),C1=null)}function y_t(e){return(typeof e=="string"?Buffer.from(e).toString("base64"):e.toString("base64")).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function v_t(e){let t=y_t(JSON.stringify({alg:"HS256",typ:"JWT"})),n=y_t(JSON.stringify(e)),r=E_t("sha256",__t).update(`${t}.${n}`).digest("base64url");return`${t}.${n}.${r}`}function Xh(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=E_t("sha256",__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(!VZn(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=A_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 lbe(){if(Iv||xv||!ube)return;Iv=!0;let e=5;for(let t=0;tsetTimeout(r,n));try{let r=await(0,fbe.default)({port:ube});Ts=r,R_t(r),console.error(`[haiku] Tunnel reconnected: ${r.url}`),T_t(),Iv=!1;return}catch(r){console.error("[haiku] Tunnel reconnect failed:",r instanceof Error?r.message:r)}}Iv=!1,console.error(`[haiku] Tunnel reconnect exhausted \u2014 giving up after ${e} attempts`)}function R_t(e){e.on("close",()=>{Ts===e&&(Ts=null,KZ(),console.error("[haiku] Tunnel closed unexpectedly"),xv||lbe())}),e.on("error",t=>{console.error("[haiku] Tunnel error:",t.message),Ts===e&&(Ts=null,KZ(),xv||lbe())})}async function Hg(e){if(Ts)return Ts.url;if(Iv){let n=Date.now()+S_t;if(await new Promise((r,i)=>{let s=setInterval(()=>{Iv?Date.now()>n&&(clearInterval(s),i(new Error(`openTunnel: timed out after ${S_t}ms waiting for an in-flight reconnect to settle`))):(clearInterval(s),r())},100)}),Ts)return Ts.url}ube=e,xv=!1;let t=3;for(let n=0;nsetTimeout(()=>o(new Error(`localtunnel did not respond within ${b_t}ms`)),b_t)),i=await Promise.race([(0,fbe.default)({port:e}),r]);return Ts=i,R_t(i),console.error(`[haiku] Tunnel opened: ${i.url}`),T_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 pbe(){xv=!0,KZ(),Ts&&(Ts.close(),Ts=null,console.error("[haiku] Tunnel closed"))}function A_t(){return Ts?.url??null}function YZn(){return Ts!==null}function Bi(){return Go.remoteReview}function Ov(e,t,n){let r=dbe(32);M1.set(e,r);let i=Math.floor(Date.now()/1e3),s=v_t({tun:t,sid:e,typ:n,key:r.toString("base64url"),iat:i,exp:i+3600});return`${ZZn}/review/#${s}`}function hbe(e,t){let n=M1.get(e);if(!n)return null;let r=dbe(12),i=GZn("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 D1(e){return e?M1.has(e):M1.size>0}function mbe(e){M1.delete(e)}function JZn(e){e?Ts={url:e,close:()=>{Ts=null},on:()=>{}}:Ts=null}var fbe,__t,M1,Ts,ube,Iv,xv,C1,WZn,S_t,b_t,ZZn,Qh=v(()=>{"use strict";fbe=Re(g_t(),1);Ci();__t=dbe(32),M1=new Map,Ts=null,ube=null,Iv=!1,xv=!1,C1=null,WZn=3e4;S_t=3e4,b_t=15e3;ZZn=bf.siteUrl});import{randomBytes as XZn}from"node:crypto";function $Zn(){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 e6n(){let e=process.env.HAIKU_CSRF_NONCE_REQUIRED;return e==="true"||e==="1"}function t6n(){let e=process.env.HAIKU_CSRF_NONCE_TTL_MS;if(!e)return k_t;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?k_t:t}function P_t(e){let t=XZn(32).toString("base64url");return gbe.set(e,{nonce:t,expiresAt:Date.now()+t6n()}),t}function N_t(e){let t=gbe.get(e);return t?t.expiresAt{if(!Bi())return n.send({nonce:"local-mode-no-csrf-required"});let r=L1(t);if(!r)return n.status(401).send({error:"unauthorized",reason:"missing_token"});let i=Xh(r,null);if(!i.ok)return n.status(401).send({error:"unauthorized",reason:i.reason});let s=P_t(i.payload.sid);return n.send({nonce:s})})}var QZn,I_t,x_t,k_t,gbe,ybe=v(()=>{"use strict";Qh();qg();QZn=new Set(["POST","PUT","PATCH","DELETE"]),I_t="query_param_token_disallowed_on_mutating_route",x_t="X-Haiku-CSRF";k_t=3600*1e3;gbe=new Map});function L1(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=L1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Xh(r,n);return i.ok?!0:(t.status(401).send({error:"unauthorized",reason:i.reason}),!1)}function cx(e,t,n){if(!Bi())return!0;let r=L1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Xh(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 ux,qg=v(()=>{"use strict";$c();Qh();ybe();ux=cx});import{existsSync as D_t}from"node:fs";import{join as L_t}from"node:path";function n6n(e,t,n=400){let r={error:"validation_failed",issues:t};return e.status(n).send(r)}function Gb(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 n6n(e,i),{ok:!1}}return{ok:!0,data:r.data}}function yn(e){let t;try{t=decodeURIComponent(e)}catch{return!1}return t.includes("\0")?!1:!/[/\\]|\.\./.test(t)}function Ua(e){try{let t=ce(e);return D_t(L_t(t,"intent.md"))}catch{return!1}}function $h(e,t){try{let n=ce(e);return D_t(L_t(n,"stages",t))}catch{return!1}}var Pv=v(()=>{"use strict";ze()});import{existsSync as YZ,readdirSync as Sbe,readFileSync as r6n}from"node:fs";import{join as F1}from"node:path";function F_t(e){return typeof e!="string"||e.length<=U_t?e:`${e.slice(0,U_t)}\u2026`}function i6n(e){let t={...e};t.agent_rationale=F_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:F_t(r.rationale_excerpt)})),t}function s6n(e){return/^DA-\d+$/.test(e)}function U1(e){try{let t=r6n(e,"utf-8");return JSON.parse(t)}catch{return null}}function o6n(e){let t=ce(e),n=F1(t,"stages");if(!YZ(n))return[];let r=[],i;try{i=Sbe(n,{withFileTypes:!0}).filter(s=>s.isDirectory()).map(s=>s.name)}catch{return[]}for(let s of i){let o=F1(n,s,"drift-assessments");if(!YZ(o))continue;let a;try{a=Sbe(o).filter(c=>/^DA-\d+\.json$/.test(c))}catch{continue}for(let c of a){let u=c.replace(/\.json$/,""),l=F1(o,c),d=U1(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 j_t(e){e.get("/api/intents/:intent/assessments",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r}=t.params;if(!yn(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=o6n(r).filter(m=>{if(o!==null&&new Date(m.createdAt).getTime()<=o)return!1;if(a!==null){let g=U1(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=U1(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=U1(m.absPath);g!==null&&h.push(i6n(g))}n.send({ok:!0,assessments:h,total:d,has_more:f})}),e.get("/api/intents/:intent/assessments/:assessmentId",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,assessmentId:i}=t.params;if(!yn(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(!s6n(i)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let s=ce(r),o=F1(s,"stages");if(!YZ(o)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let a;try{a=Sbe(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=F1(o,c,"drift-assessments",`${i}.json`);if(YZ(u)){let l=U1(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 U_t,H_t=v(()=>{"use strict";ze();qg();Pv();U_t=256});import{createReadStream as a6n,existsSync as c6n}from"node:fs";function ZZ(e,t){e.status(400).send({error:t,code:t})}function bbe(e,t){e.status(404).send({error:t,code:t})}function B_t(e,t){if(!c6n(t)){bbe(e,"sidecar_not_found");return}let n=Fyt(t),r=n?u6n[n]:"application/octet-stream";e.header("Content-Type",r),e.header("Cache-Control","public, max-age=31536000, immutable"),e.send(a6n(t))}function z_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(!yn(r)||!yn(i)){ZZ(n,"bad_param");return}if(!q_t.test(s)){ZZ(n,"bad_sha");return}if(!Ua(r)){bbe(n,"intent_not_found");return}let o=jyt(ce(r),i,s);B_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(!yn(r)){ZZ(n,"bad_param");return}if(!q_t.test(i)){ZZ(n,"bad_sha");return}if(!Ua(r)){bbe(n,"intent_not_found");return}let s=Hyt(ce(r),i);B_t(n,s)})}var q_t,u6n,G_t=v(()=>{"use strict";P0();ze();qg();Pv();q_t=/^[0-9a-f]{64}$/,u6n={png:"image/png",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",avif:"image/avif"}});import{brotliDecompressSync as l6n}from"node:zlib";var d6n,Wd,JZ=v(()=>{"use strict";d6n="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",Wd=l6n(Buffer.from(d6n,"base64")).toString("utf-8")});import{existsSync as ip,readdirSync as lx,readFileSync as Nv,writeFileSync as f6n}from"node:fs";import{join as ko}from"node:path";function XZ(e){let t=ce(e.slug),n=ko(t,"intent.md");if(!ip(n))return{ok:!1,error:"intent_not_found",details:{slug:e.slug}};let r=re(Nv(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=Vye(i,y,s),E=Wye(i,y,s);for(let _ of lx(b).filter(T=>T.endsWith(".md"))){let T=ko(b,_),R=re(Nv(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]=zd(t,b));Ne(y.unitPath,"reviews",S),Ne(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(Nv(S,"utf8")).data,T=!1;_.verified_at||(Ne(S,"verified_at",E),T=!0),_.decompose_verified_at||(Ne(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"};IYn(S,k_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()});Le(n,"approvals",g),m=!0}let y=0;if(e.closeOpenFeedback){let g=p.map(S=>ko(t,"stages",S,"feedback"));a===o.length-1&&g.push(ko(t,"feedback"));let E=new Date().toISOString();for(let S of g)if(np(S))for(let b of e0(S).filter(_=>_.endsWith(".md"))){let _=ko(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;Le(_,"closed_at",E);let x=T.closed_by;typeof x=="string"&&x.length>0||Le(_,"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 t0(e){let t=ko(pe(e.slug),"intent.md");return np(t)?(Le(t,e.field,e.value),{ok:!0}):{ok:!1,error:"intent_not_found"}}function jY(e){let t=pe(e.slug),n=ko(t,"stages");if(!np(n))return{ok:!1,error:"no_stages_dir"};let r=0,i=0;for(let s of e0(n,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=ko(n,s.name,"units");if(np(o))for(let a of e0(o).filter(c=>c.endsWith(".md"))){let c=ko(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]=Pl(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]=Hd(t,l),i++;Object.keys(d).length>0&&Le(c,"reviews",d),Object.keys(p).length>0&&Le(c,"approvals",p)}}return{ok:!0,reviews_refreshed:r,approvals_refreshed:i}}function HY(e){let t=pe(e.slug),n=ko(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=ko(t,"stages",e.stage,"units");if(!np(s))return{ok:!1,error:"units_dir_not_found",details:{stage:e.stage}};let o=e0(s).filter(u=>u.endsWith(".md")).find(u=>{let l=u.replace(/\.md$/,"");if(l===e.unit||l.startsWith(`${e.unit}-`))return!0;let d=e.unit.match(/^(?:unit-)?(\d+)$/i);if(d){let f=Number.parseInt(d[1],10),p=l.match(/^unit-(\d+)-/);if(p&&Number.parseInt(p[1],10)===f)return!0}return!1});if(!o)return{ok:!1,error:"unit_not_found",details:{stage:e.stage,unit:e.unit}};let a=ko(s,o);if(Array.isArray(e.iterations)&&e.iterations.length===0)return{ok:!1,error:"use_haiku_unit_reset",details:{message:"Passing iterations: [] does NOT reset a unit \u2014 set_unit_iterations with no entries synthesizes a COMPLETED state (one advance per hat). To return a unit to pending (clear iterations, discard its worktree), use haiku_unit_reset { intent, stage, unit }."}};let c;if(e.iterations&&e.iterations.length>0){let u=new Date().toISOString();c=e.iterations.map(l=>({hat:l.hat,result:l.result,at:l.at||u}))}else{let u=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 Le(a,"iterations",c),{ok:!0,unit_file:o,iterations_written:c.length}}function n0(e){let t=pe(e.slug),n=e.stage?ko(t,"stages",e.stage,"feedback"):ko(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=e0(n).filter(c=>c.endsWith(".md")).find(c=>{let u=c.match(/^(\d+)-/);return u&&Number.parseInt(u[1],10)===i});if(!s)return{ok:!1,error:"feedback_not_found"};let o=ko(n,s),a=[];for(let[c,u]of Object.entries(e.patch))Le(o,c,u),a.push(c);return{ok:!0,written_keys:a}}function qY(e){let t=pe(e.slug),n=ko(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 k_t,cEe=v(()=>{"use strict";k_t=Se(Kt(),1);ze();ns();Oa();i1();Yf()});import{existsSync as BY,readdirSync as x_t,readFileSync as O_t}from"node:fs";import{join as GY}from"node:path";function xYn(){let e=GY(ve(),"intents");if(!BY(e))return[];let t=[];for(let n of x_t(e,{withFileTypes:!0})){if(!n.isDirectory())continue;let r=GY(e,n.name,"intent.md");if(BY(r))try{let i=re(O_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 OYn(e){if(!gn(e))return{ok:!1,error:"invalid_slug"};let t=pe(e),n=GY(t,"intent.md");if(!BY(n))return{ok:!1,error:"intent_not_found"};let r=re(O_t(n,"utf8")).data,i=GY(t,"stages"),s=BY(i)?x_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 N_t(e){e.get("/debug",async(t,n)=>{n.type("text/html; charset=utf-8").send(Gd)}),e.get("/debug/:slug",async(t,n)=>{n.type("text/html; charset=utf-8").send(Gd)}),e.get("/api/debug/intents",async(t,n)=>{Gn(t,n,null)&&n.send({intents:xYn()})}),e.get("/api/debug/intents/:intent",async(t,n)=>{if(!Gn(t,n,null))return;let r=OYn(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=qY({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(!Qx(t,n,r))return;if(!I_t.has(i)){n.status(400).send({error:"unsupported_op",message:`op must be one of: ${[...I_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=FY({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:t0({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=t0({slug:r,field:a,value:s.value});break}case"reset_drift":{o=jY({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=HY({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:n0({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=n0({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 I_t,P_t=v(()=>{"use strict";UY();cEe();ze();Hg();Av();I_t=new Set(["force_stage_complete","set_intent_field","reset_drift","mutate_feedback","set_unit_iterations"])});function C_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:od,plugin_version:NYn})),e.get("/",async(n,r)=>{r.type("text/html; charset=utf-8").send(Gd)}),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(Gd);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)?gL:mL;i.status(413).send({error:"payload_too_large",max_bytes:l});return}i.status(o).send({error:"internal_error",message:a})})}var NYn,M_t=v(()=>{"use strict";_T();UY();d_();NYn=_S()});function uEe(e){return e.match(/\/(?:api\/session|review|question|direction|files|mockups|wireframe|stage-artifacts|question-image)\/([^/]+)/)?.[1]??null}async function L_t(e,t,n){if(t.statusCode>=400||t.statusCode===204||t.statusCode===205||t.statusCode===304)return n;let r=uEe(e.url.split("?")[0]);if(!r||!k1(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=nEe(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 D_t=v(()=>{"use strict";Jh()});function ta(e){try{let t={ts:new Date().toISOString(),reqId:e.reqId,action:e.action,status:e.status,...e.intent?{intent:e.intent}:{},...e.stage?{stage:e.stage}:{},...e.feedbackId?{feedbackId:e.feedbackId}:{},...e.detail?{detail:e.detail}:{}};process.stderr.write(`[haiku-mcp][feedback] ${JSON.stringify(t)} -`)}catch{}}var lEe=v(()=>{"use strict"});import{readFile as PYn}from"node:fs/promises";import{dirname as zY,relative as CYn,resolve as fEe,sep as dEe}from"node:path";function pEe(e){return e.length>0&&!/^[a-z][a-z0-9+.-]*:/i.test(e)&&!e.startsWith("//")&&!e.startsWith("/")&&!e.startsWith("#")}function F_t(e,t){let n=t.endsWith(dEe)?t:t+dEe;return e===t||e.startsWith(n)}function U_t(e,t,n){return e.replace(/url\(\s*(['"]?)([^'")]+)\1\s*\)/gi,(r,i,s)=>{let o=s.trim();return pEe(o)?`url("${CYn(n,fEe(t,o)).split(dEe).join("/")}")`:r})}async function j_t(e,t,n,r=0){if(r>3)return null;let i;try{i=await PYn(e,"utf-8")}catch{return null}let s=zY(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(!pEe(l))continue;let f=fEe(s,l);if(!F_t(f,t))continue;let p=await j_t(f,t,n,r+1);p!=null&&(a+=U_t(i.slice(c,d),s,n),a+=p,c=d+u[0].length)}return a+=U_t(i.slice(c),s,n),a}async function VY(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||!pEe(f))continue;let p=fEe(r,f);if(!F_t(p,n))continue;let h=await j_t(p,n,r);h!=null&&(s+=e.slice(o,u),s+=``,o=u+c.length)}return s+=e.slice(o),s}function H_t(e,t){let n=t.split(/[/\\]+/).filter(Boolean).length-1,r=zY(e);for(let i=0;i{"use strict"});import{readFile as q_t,realpath as mEe}from"node:fs/promises";import{extname as B_t,resolve as gEe}from"node:path";async function yEe(e,t){let n=gEe(e),r=gEe(n,t);if(!r.startsWith(`${n}/`)&&r!==n)return{ok:!1};try{let i=await mEe(r).catch(()=>null),s=await mEe(n).catch(()=>n);return!i||!i.startsWith(`${s}/`)&&i!==s?{ok:!1}:{ok:!0,path:i}}catch{return{ok:!1}}}function N1(e,t,n){return put.safeParse({sessionId:t,path:n}).success?!1:(e.status(403).send({error:"forbidden_path_traversal"}),!0)}async function SEe(e,t){try{let n=await q_t(t),r=B_t(t).toLowerCase(),i=MYn[r],s=LYn.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 EEe(e,t,n){if(!DYn.has(B_t(t).toLowerCase()))return SEe(e,t);let r;try{let i=await q_t(t,"utf-8"),s=await mEe(n).catch(()=>gEe(n));r=await VY(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 r0(e,t,n){let r=await yEe(t,n);if(!r.ok){e.status(403).send({error:"forbidden_path_traversal"});return}return EEe(e,r.path,t)}var MYn,LYn,DYn,bEe=v(()=>{"use strict";_T();hEe();MYn={".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"},LYn=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);DYn=new Set([".html",".htm"])});import{join as UYn}from"node:path";function G_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&&!HE.includes(s)){n.status(400).send({error:`Invalid status filter. Must be one of: ${HE.join(", ")}`});return}let o=Us(r,i);s&&(o=o.filter(c=>c.status===s));let a={intent:r,stage:i,count:o.length,items:o.map(c=>({feedback_id:c.id,title:c.title,body:c.body,status:c.status,origin:c.origin,severity:c.severity,author:c.author,author_type:c.author_type,created_at:c.created_at,iteration:c.visit,visit:c.visit,source_ref:c.source_ref??null,closed_by:c.closed_by??null,resolution:c.resolution,replies:c.replies.map(u=>({author:u.author,author_type:u.author_type,body:u.body,created_at:u.created_at})),inline_anchor:c.inline_anchor??null,closure_reply:c.closure_reply??void 0,closure_reply_unread:c.closure_reply_unread,iterations:c.iterations,scope:"stage"}))};n.send(a)}),e.get("/api/feedback-intent/:intent",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r}=t.params;if(!gn(r)){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Da(r)){n.status(404).send({error:"Intent not found"});return}let i=t.query?.status;if(i&&!HE.includes(i)){n.status(400).send({error:`Invalid status filter. Must be one of: ${HE.join(", ")}`});return}let s=Us(r,"");i&&(s=s.filter(a=>a.status===i));let o={intent:r,stage:"",count:s.length,items:s.map(a=>({feedback_id:a.id,title:a.title,body:a.body,status:a.status,origin:a.origin,severity:a.severity,author:a.author,author_type:a.author_type,created_at:a.created_at,iteration:a.visit,visit:a.visit,source_ref:a.source_ref??null,closed_by:a.closed_by??null,resolution:a.resolution,replies:a.replies.map(c=>({author:c.author,author_type:c.author_type,body:c.body,created_at:c.created_at})),inline_anchor:a.inline_anchor??null,closure_reply:a.closure_reply??void 0,closure_reply_unread:a.closure_reply_unread,iterations:a.iterations,scope:"intent"}))};n.send(o)}),e.get("/api/feedback-attachment/:intent/:stage/:filename",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,filename:s}=t.params;if(!(gn(r)&&gn(i))){n.status(400).send({error:"invalid_slug"});return}if(!/^[A-Za-z0-9._-]+\.(png|jpg|jpeg|webp)$/.test(s)){n.status(400).send({error:"invalid_filename"});return}let o=UYn(pe(r),"stages",i,"feedback");await r0(n,o,s)}),e.post("/api/feedback/:intent/:stage",{bodyLimit:gL},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(!$x(t,n,r))return;if(!Xh(r,i)){n.status(404).send({error:"Stage not found"});return}let s=qE(n,t.body,ife);if(!s.ok)return;let o=s.data.inline_anchor,a=cv(s.data.body),c=Qo(r,i,{title:s.data.title,body:a,origin:s.data.origin,author:"user",source_ref:s.data.source_ref??null,resolution:s.data.resolution??null,attachmentDataUrl:s.data.attachment_data_url??null,inlineAnchor:o?{selectedText:o.selected_text,paragraph:o.paragraph,location:o.location,...o.comment_id?{commentId:o.comment_id}:{},...o.file_path?{filePath:o.file_path}:{},...o.content_sha?{contentSha:o.content_sha}:{}}:null});Fg(`feedback: create ${c.feedback_id} in ${i}`);let u={feedback_id:c.feedback_id,file:c.file,status:"pending",message:`Feedback ${c.feedback_id} created.`};ta({reqId:t.id,action:"feedback.create",status:201,intent:r,stage:i,feedbackId:c.feedback_id}),n.status(201).send(u)}),e.put("/api/feedback/:intent/:stage/:feedbackId",{bodyLimit:R4},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(!$x(t,n,r))return;let o=qE(n,t.body,sfe);if(!o.ok)return;if(!Xh(r,i)){n.status(404).send({error:"Stage not found"});return}let a=uSe(r,i,s,{status:o.data.status,closed_by:o.data.closed_by,resolution:o.data.resolution},"human");if(!a.ok){if(a.error.includes("not found")){ta({reqId:t.id,action:"feedback.update",status:404,intent:r,stage:i,feedbackId:s,detail:"not_found"}),n.status(404).send({error:`Feedback '${s}' not found in stage '${i}'`});return}ta({reqId:t.id,action:"feedback.update",status:400,intent:r,stage:i,feedbackId:s,detail:a.error}),n.status(400).send({error:a.error});return}Fg(`feedback: update ${s} in ${i}`);let c={feedback_id:s,updated_fields:a.updated_fields,message:`Feedback ${s} updated.`};ta({reqId:t.id,action:"feedback.update",status:200,intent:r,stage:i,feedbackId:s,detail:a.updated_fields.join(",")}),n.send(c)}),e.post("/api/feedback/:intent/:stage/:feedbackId/dismiss-reply",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!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(!$x(t,n,r))return;let o=dSe(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(!$x(t,n,r))return;if(!Xh(r,i)){n.status(404).send({error:"Stage not found"});return}let o=mY(r,i,s,"human");if(!o.ok){if(o.error.includes("not found")){ta({reqId:t.id,action:"feedback.delete",status:404,intent:r,stage:i,feedbackId:s,detail:"not_found"}),n.status(404).send({error:`Feedback '${s}' not found in stage '${i}'`});return}if(o.error.includes("cannot delete")){ta({reqId:t.id,action:"feedback.delete",status:409,intent:r,stage:i,feedbackId:s,detail:"cannot_delete"}),n.status(409).send({error:o.error.replace(/^Error:\s*/,"")});return}ta({reqId:t.id,action:"feedback.delete",status:400,intent:r,stage:i,feedbackId:s,detail:o.error}),n.status(400).send({error:o.error});return}Fg(`feedback: delete ${s} from ${i}`);let a={feedback_id:s,deleted:!0,message:`Feedback ${s} deleted.`};ta({reqId:t.id,action:"feedback.delete",status:200,intent:r,stage:i,feedbackId:s}),n.send(a)}),e.post("/api/feedback/:intent/:stage/:feedbackId/replies",{bodyLimit:R4},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(!$x(t,n,r))return;if(!Xh(r,i)){n.status(404).send({error:"Stage not found"});return}let o=qE(n,t.body,ofe);if(!o.ok)return;let a=cv(o.data.body),c=lSe(r,i,s,{author:"user",author_type:"human",body:a},{close_as_answered:o.data.close_as_answered===!0});if(!c.ok){if(c.error.includes("not found")){ta({reqId:t.id,action:"feedback.reply",status:404,intent:r,stage:i,feedbackId:s,detail:"not_found"}),n.status(404).send({error:`Feedback '${s}' not found in stage '${i}'`});return}ta({reqId:t.id,action:"feedback.reply",status:400,intent:r,stage:i,feedbackId:s,detail:c.error}),n.status(400).send({error:c.error});return}Fg(`feedback: reply on ${s} in ${i}`);let u={feedback_id:s,reply_index:c.reply_index,status:c.status,message:`Reply added to ${s}.`};ta({reqId:t.id,action:"feedback.reply",status:201,intent:r,stage:i,feedbackId:s,detail:`reply_index=${c.reply_index}`}),n.status(201).send(u)})}var z_t=v(()=>{"use strict";_T();gye();ze();lEe();Hg();bEe();Av()});import{realpath as V_t}from"node:fs/promises";import{dirname as W_t,join as FYn,resolve as K_t}from"node:path";function Z_t(e){e.get("/files/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!Gn(t,n,r)||N1(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?K_t(W_t(W_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 yEe(l,i);if(!d.ok){u=!0;continue}return EEe(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)||N1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return r0(n,FYn(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)||N1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return r0(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)||N1(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 r0(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 V_t(a).catch(()=>null),l=await V_t(c).catch(()=>K_t(c));if(!u||!u.startsWith(`${l}/`)&&u!==l){n.status(403).send("Forbidden");return}}catch{n.status(403).send("Forbidden");return}return SEe(n,a)})}var Y_t=v(()=>{"use strict";Qc();Hg();bEe()});import{EventEmitter as jYn}from"node:events";function J_t(e,t){let n=`intent:${e}`;return WY.on(n,t),()=>{WY.off(n,t)}}function zd(e,t){WY.emit(`intent:${e}`,t)}var WY,i0=v(()=>{"use strict";WY=new jYn;WY.setMaxListeners(200)});import{spawn as HYn}from"node:child_process";import{accessSync as qYn,constants as BYn,existsSync as GYn,mkdirSync as zYn,readdirSync as VYn,rmSync as WYn}from"node:fs";import{homedir as vEe,tmpdir as KYn}from"node:os";import{join as na}from"node:path";function ZYn(e=process.platform,t=process.env,n=vEe(),r=i=>{try{return VYn(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 YYn(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(vEe(),"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 JYn(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 XYn(e=process.platform,t=process.env,n=i=>{try{return qYn(i,BYn.X_OK),!0}catch{return GYn(i)}},r){let i=t.HAIKU_MICRO_APP_BROWSER;if(i)return n(i)?i:null;let s=ZYn(e,t,vEe(),r);if(s&&n(s))return s;for(let o of YYn(e,t)){let a=JYn(o,t,n);if(a)return a}return null}function $_t(){return _Ee===void 0&&(_Ee=XYn()),_Ee}function QYn(){return process.env.HAIKU_DISABLE_MICRO_APP==="1"?!1:$_t()!==null}function $Yn(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 e5n(e,t=na(KYn(),"haiku-micro-app")){return na(t,e)}function eTt(e,t={}){if(!QYn())return!1;let n=$_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=e5n(r);try{zYn(s,{recursive:!0})}catch{return!1}try{let o=HYn(n,$Yn(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),TEe(s)}),wv.set(r,{child:o,profileDir:s}),t5n(),!0}catch(o){return console.error(`[haiku-micro-app] spawn threw: ${o instanceof Error?o.message:String(o)}`),TEe(s),!1}}function TEe(e){try{WYn(e,{recursive:!0,force:!0})}catch{}}function X_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 s0(e){let t=wv.get(e);return t?(wv.delete(e),X_t(t,"SIGTERM"),setTimeout(()=>{X_t(t,"SIGKILL")},2e3).unref?.(),TEe(t.profileDir),!0):!1}function tTt(){let e=0;for(let[t]of wv)t.startsWith("anon-")||$t(t)||(s0(t),e+=1);return e}function t5n(){if(Q_t)return;Q_t=!0;let e=()=>{for(let[t]of wv)s0(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var wv,_Ee,Q_t,P1=v(()=>{"use strict";Qc();wv=new Map;Q_t=!1});import{existsSync as nTt,readdirSync as n5n,readFileSync as r5n}from"node:fs";import{join as ZY}from"node:path";function KY(e,t){return t?ZY(t,"intents",e):pe(e)}function s5n(e,t){let n=ZY(KY(e,t),"intent.md");if(!nTt(n))return null;let{data:r}=re(r5n(n,"utf8"));return r}function rTt(e,t){let n=s5n(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,KY(e,t)),c=a??s[s.length-1],l=hv({slug:e,studio:r,stage:c,intentDir:KY(e,t),intentMode:o}).phase??"",d=i5n.has(l)?l:"",f;if(d==="elaborate"){let m=ZY(KY(e,t),"stages",c),y=ZY(m,"units"),g=nTt(y)?n5n(y).filter(S=>S.endsWith(".md")).map(S=>S.replace(/\.md$/,"")):[],E=kx({slug:e,studio:r,stage:c,stageDir:m,unitNames:g,mode:o});E.length>0&&(f=hye(E))}let p,h;if(a===null){let m=typeof n.sealed_at=="string"&&n.sealed_at.length>0,y=Rx(e,{localOnly:!0});y.applicable&&!y.merged?(p="pending_seal",h=y.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 i5n,iTt=v(()=>{"use strict";ns();Oa();i1();HD();ze();i5n=new Set(["elaborate","execute","review","gate"])});import{execFileSync as o5n}from"node:child_process";function YY(e){try{return o5n(e[0],e.slice(1),{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:5e3}).trim()}catch{return""}}function a5n(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 c5n(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=YY(["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 u5n(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 l5n(e){if(!Ae())return null;let t=`haiku/${e}/main`,n=YY(["git","rev-parse","--verify",t])||YY(["git","rev-parse","--verify",`origin/${t}`]);if(!n)return null;let r=YY(["git","remote","get-url","origin"]),i=a5n(r);if(!i)return null;let s=c5n(n,i);if(!s)return null;let o=u5n(i,s.source,s.prNumber);return o?{url:o,source:s.source,prNumber:s.prNumber,matchedSha:n}:null}function oTt(e){let t=Date.now(),n=sTt.get(e);if(n&&n.expiresAt>t)return n.value;let r=l5n(e);return sTt.set(e,{value:r,expiresAt:t+d5n}),r}var d5n,sTt,aTt=v(()=>{"use strict";SE();d5n=3e4,sTt=new Map});var uTt=w(JY=>{"use strict";var f5n=Symbol.for("react.transitional.element"),p5n=Symbol.for("react.fragment");function cTt(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:f5n,type:e,key:r,ref:t!==void 0?t:null,props:n}}JY.Fragment=p5n;JY.jsx=cTt;JY.jsxs=cTt});var bTt=w(cn=>{"use strict";var wEe=Symbol.for("react.transitional.element"),h5n=Symbol.for("react.portal"),m5n=Symbol.for("react.fragment"),g5n=Symbol.for("react.strict_mode"),y5n=Symbol.for("react.profiler"),S5n=Symbol.for("react.consumer"),E5n=Symbol.for("react.context"),b5n=Symbol.for("react.forward_ref"),_5n=Symbol.for("react.suspense"),T5n=Symbol.for("react.memo"),hTt=Symbol.for("react.lazy"),v5n=Symbol.for("react.activity"),lTt=Symbol.iterator;function A5n(e){return e===null||typeof e!="object"?null:(e=lTt&&e[lTt]||e["@@iterator"],typeof e=="function"?e:null)}var mTt={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},gTt=Object.assign,yTt={};function a0(e,t,n){this.props=e,this.context=t,this.refs=yTt,this.updater=n||mTt}a0.prototype.isReactComponent={};a0.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")};a0.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function STt(){}STt.prototype=a0.prototype;function kEe(e,t,n){this.props=e,this.context=t,this.refs=yTt,this.updater=n||mTt}var IEe=kEe.prototype=new STt;IEe.constructor=kEe;gTt(IEe,a0.prototype);IEe.isPureReactComponent=!0;var dTt=Array.isArray;function REe(){}var Ri={H:null,A:null,T:null,S:null},ETt=Object.prototype.hasOwnProperty;function xEe(e,t,n){var r=n.ref;return{$$typeof:wEe,type:e,key:t,ref:r!==void 0?r:null,props:n}}function R5n(e,t){return xEe(e.type,t,e.props)}function OEe(e){return typeof e=="object"&&e!==null&&e.$$typeof===wEe}function w5n(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var fTt=/\/+/g;function AEe(e,t){return typeof e=="object"&&e!==null&&e.key!=null?w5n(""+e.key):t.toString(36)}function k5n(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(REe,REe):(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 o0(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 wEe:case h5n:o=!0;break;case hTt:return o=e._init,o0(o(e._payload),t,n,r,i)}}if(o)return i=i(e),o=r===""?"."+AEe(e,0):r,dTt(i)?(n="",o!=null&&(n=o.replace(fTt,"$&/")+"/"),o0(i,t,n,"",function(u){return u})):i!=null&&(OEe(i)&&(i=R5n(i,n+(i.key==null||e&&e.key===i.key?"":(""+i.key).replace(fTt,"$&/")+"/")+o)),t.push(i)),1;o=0;var a=r===""?".":r+":";if(dTt(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=Me&&D[Me]||D["@@iterator"],typeof D=="function"?D:null)}function n(D,te){D=(D=D.constructor)&&(D.displayName||D.name)||"ReactClass";var Pe=D+"."+te;Re[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,D),Re[Pe]=!0)}function r(D,te,Pe){this.props=D,this.context=te,this.refs=oe,this.updater=Pe||z}function i(){}function s(D,te,Pe){this.props=D,this.context=te,this.refs=oe,this.updater=Pe||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 Pe=te.error,Ee=typeof Symbol=="function"&&Symbol.toStringTag&&D[Symbol.toStringTag]||D.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(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 X:return"Fragment";case M:return"Profiler";case G:return"StrictMode";case H:return"Suspense";case j:return"SuspenseList";case se:return"Activity"}if(typeof 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 B:return"Portal";case U:return D.displayName||"Context";case q:return(D._context.displayName||"Context")+".Consumer";case L:var te=D.render;return D=D.displayName,D||(D=te.displayName||te.name||"",D=D!==""?"ForwardRef("+D+")":"ForwardRef"),D;case W: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===X)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(Dn.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 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(D,"key",{get:Pe,configurable:!0})}function m(){var D=u(this.type);return tl[D]||(tl[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 y(D,te,Pe,Ee,at,On){var It=Pe.ref;return D={$$typeof:$,type:D,key:te,props:Pe,_owner:Ee},(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 g(D,te){return te=y(D.type,te,D.props,D._owner,D._debugStack,D._debugTask),D._store&&(te._store.validated=D._store.validated),te}function E(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 b(D){var te={"=":"=0",":":"=2"};return"$"+D.replace(/[=:]/g,function(Pe){return te[Pe]})}function _(D,te){return typeof D=="object"&&D!==null&&D.key!=null?(c(D.key),b(""+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 A(D,te,Pe,Ee,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 B:It=!0;break;case ee:return It=D._init,A(It(D._payload),te,Pe,Ee,at)}}if(It){It=D,at=at(It);var dn=Ee===""?"."+_(It,0):Ee;return _e(at)?(Pe="",dn!=null&&(Pe=dn.replace(Ii,"$&/")+"/"),A(at,te,Pe,"",function(ra){return ra})):at!=null&&(S(at)&&(at.key!=null&&(It&&It.key===at.key||c(at.key)),Pe=g(at,Pe+(at.key==null||It&&It.key===at.key?"":(""+at.key).replace(Ii,"$&/")+"/")+dn),Ee!==""&&It!=null&&S(It)&&It.key==null&&It._store&&!It._store.validated&&(Pe._store.validated=2),at=Pe),te.push(at)),1}if(It=0,dn=Ee===""?".":Ee+":",_e(D))for(var _t=0;_t`,o=u+c.length)}return s+=e.slice(o),s}function iTt(e,t){let n=t.split(/[/\\]+/).filter(Boolean).length-1,r=r6(e);for(let i=0;i{"use strict"});import{readFile as sTt,realpath as kbe}from"node:fs/promises";import{extname as oTt,resolve as Ibe}from"node:path";async function xbe(e,t){let n=Ibe(e),r=Ibe(n,t);if(!r.startsWith(`${n}/`)&&r!==n)return{ok:!1};try{let i=await kbe(r).catch(()=>null),s=await kbe(n).catch(()=>n);return!i||!i.startsWith(`${s}/`)&&i!==s?{ok:!1}:{ok:!0,path:i}}catch{return{ok:!1}}}function j1(e,t,n){return Rut.safeParse({sessionId:t,path:n}).success?!1:(e.status(403).send({error:"forbidden_path_traversal"}),!0)}async function Obe(e,t){try{let n=await sTt(t),r=oTt(t).toLowerCase(),i=S6n[r],s=b6n.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 Pbe(e,t,n){if(!E6n.has(oTt(t).toLowerCase()))return Obe(e,t);let r;try{let i=await sTt(t,"utf-8"),s=await kbe(n).catch(()=>Ibe(n));r=await i6(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 px(e,t,n){let r=await xbe(t,n);if(!r.ok){e.status(403).send({error:"forbidden_path_traversal"});return}return Pbe(e,r.path,t)}var S6n,b6n,E6n,Nbe=v(()=>{"use strict";vT();wbe();S6n={".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"},b6n=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);E6n=new Set([".html",".htm"])});import{join as _6n}from"node:path";function aTt(e){e.get("/api/feedback/:intent/:stage",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(yn(r)&&yn(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(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let s=t.query?.status;if(s&&!Bb.includes(s)){n.status(400).send({error:`Invalid status filter. Must be one of: ${Bb.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(!yn(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&&!Bb.includes(i)){n.status(400).send({error:`Invalid status filter. Must be one of: ${Bb.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(!(yn(r)&&yn(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=_6n(ce(r),"stages",i,"feedback");await px(n,o,s)}),e.post("/api/feedback/:intent/:stage",{bodyLimit:kD},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(yn(r)&&yn(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(!ux(t,n,r))return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let s=Gb(n,t.body,pfe);if(!s.ok)return;let o=s.data.inline_anchor,a=pv(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:CK},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!ux(t,n,r))return;let o=Gb(n,t.body,hfe);if(!o.ok)return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let a=bSe(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(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}if(!ux(t,n,r))return;let o=_Se(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(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!ux(t,n,r))return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let o=RZ(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:CK},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!ux(t,n,r))return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let o=Gb(n,t.body,mfe);if(!o.ok)return;let a=pv(o.data.body),c=ESe(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 cTt=v(()=>{"use strict";vT();Aye();ze();Tbe();qg();Nbe();Pv()});import{realpath as uTt}from"node:fs/promises";import{dirname as lTt,join as T6n,resolve as dTt}from"node:path";function fTt(e){e.get("/files/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!Gn(t,n,r)||j1(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?dTt(lTt(lTt(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 xbe(l,i);if(!d.ok){u=!0;continue}return Pbe(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)||j1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return px(n,T6n(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)||j1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return px(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)||j1(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 px(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 uTt(a).catch(()=>null),l=await uTt(c).catch(()=>dTt(c));if(!u||!u.startsWith(`${l}/`)&&u!==l){n.status(403).send("Forbidden");return}}catch{n.status(403).send("Forbidden");return}return Obe(n,a)})}var pTt=v(()=>{"use strict";$c();qg();Nbe()});import{EventEmitter as v6n}from"node:events";function hTt(e,t){let n=`intent:${e}`;return s6.on(n,t),()=>{s6.off(n,t)}}function Kd(e,t){s6.emit(`intent:${e}`,t)}var s6,hx=v(()=>{"use strict";s6=new v6n;s6.setMaxListeners(200)});import{spawn as R6n}from"node:child_process";import{accessSync as A6n,constants as w6n,existsSync as k6n,mkdirSync as I6n,readdirSync as x6n,rmSync as O6n}from"node:fs";import{homedir as Dbe,tmpdir as P6n}from"node:os";import{join as na}from"node:path";function N6n(e=process.platform,t=process.env,n=Dbe(),r=i=>{try{return x6n(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 C6n(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(Dbe(),"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 M6n(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 D6n(e=process.platform,t=process.env,n=i=>{try{return A6n(i,w6n.X_OK),!0}catch{return k6n(i)}},r){let i=t.HAIKU_MICRO_APP_BROWSER;if(i)return n(i)?i:null;let s=N6n(e,t,Dbe(),r);if(s&&n(s))return s;for(let o of C6n(e,t)){let a=M6n(o,t,n);if(a)return a}return null}function yTt(){return Cbe===void 0&&(Cbe=D6n()),Cbe}function L6n(){return process.env.HAIKU_DISABLE_MICRO_APP==="1"?!1:yTt()!==null}function U6n(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 F6n(e,t=na(P6n(),"haiku-micro-app")){return na(t,e)}function STt(e,t={}){if(!L6n())return!1;let n=yTt();if(!n)return!1;let r=t.sessionId??`anon-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,i=Cv.get(r);if(i&&i.child.exitCode===null&&!i.child.killed)return!0;let s=F6n(r);try{I6n(s,{recursive:!0})}catch{return!1}try{let o=R6n(n,U6n(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.`),Cv.delete(r),Mbe(s)}),Cv.set(r,{child:o,profileDir:s}),j6n(),!0}catch(o){return console.error(`[haiku-micro-app] spawn threw: ${o instanceof Error?o.message:String(o)}`),Mbe(s),!1}}function Mbe(e){try{O6n(e,{recursive:!0,force:!0})}catch{}}function mTt(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 mx(e){let t=Cv.get(e);return t?(Cv.delete(e),mTt(t,"SIGTERM"),setTimeout(()=>{mTt(t,"SIGKILL")},2e3).unref?.(),Mbe(t.profileDir),!0):!1}function bTt(){let e=0;for(let[t]of Cv)t.startsWith("anon-")||$t(t)||(mx(t),e+=1);return e}function j6n(){if(gTt)return;gTt=!0;let e=()=>{for(let[t]of Cv)mx(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var Cv,Cbe,gTt,H1=v(()=>{"use strict";$c();Cv=new Map;gTt=!1});import{existsSync as ETt,readdirSync as H6n,readFileSync as q6n}from"node:fs";import{join as a6}from"node:path";function o6(e,t){return t?a6(t,"intents",e):ce(e)}function z6n(e,t){let n=a6(o6(e,t),"intent.md");if(!ETt(n))return null;let{data:r}=re(q6n(n,"utf8"));return r}function _Tt(e,t){let n=z6n(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,o6(e,t)),c=a??s[s.length-1],l=bv({slug:e,studio:r,stage:c,intentDir:o6(e,t),intentMode:o}).phase??"",d=B6n.has(l)?l:"",f;if(d==="elaborate"){let m=a6(o6(e,t),"stages",c),g=a6(m,"units"),y=ETt(g)?H6n(g).filter(S=>S.endsWith(".md")).map(S=>S.replace(/\.md$/,"")):[],b=M0({slug:e,studio:r,stage:c,stageDir:m,unitNames:y,mode:o});b.length>0&&(f=vye(b))}let p,h;if(a===null){let m=typeof n.sealed_at=="string"&&n.sealed_at.length>0,g=N0(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 B6n,TTt=v(()=>{"use strict";ns();Oa();f1();YL();ze();B6n=new Set(["elaborate","execute","review","gate"])});import{execFileSync as G6n}from"node:child_process";function c6(e){try{return G6n(e[0],e.slice(1),{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:5e3}).trim()}catch{return""}}function V6n(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 W6n(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=c6(["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 K6n(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 Y6n(e){if(!Ee())return null;let t=`haiku/${e}/main`,n=c6(["git","rev-parse","--verify",t])||c6(["git","rev-parse","--verify",`origin/${t}`]);if(!n)return null;let r=c6(["git","remote","get-url","origin"]),i=V6n(r);if(!i)return null;let s=W6n(n,i);if(!s)return null;let o=K6n(i,s.source,s.prNumber);return o?{url:o,source:s.source,prNumber:s.prNumber,matchedSha:n}:null}function RTt(e){let t=Date.now(),n=vTt.get(e);if(n&&n.expiresAt>t)return n.value;let r=Y6n(e);return vTt.set(e,{value:r,expiresAt:t+Z6n}),r}var Z6n,vTt,ATt=v(()=>{"use strict";Eb();Z6n=3e4,vTt=new Map});var wTt=v(()=>{});var UTt=w(cn=>{"use strict";var Fbe=Symbol.for("react.transitional.element"),J6n=Symbol.for("react.portal"),X6n=Symbol.for("react.fragment"),Q6n=Symbol.for("react.strict_mode"),$6n=Symbol.for("react.profiler"),e5n=Symbol.for("react.consumer"),t5n=Symbol.for("react.context"),n5n=Symbol.for("react.forward_ref"),r5n=Symbol.for("react.suspense"),i5n=Symbol.for("react.memo"),PTt=Symbol.for("react.lazy"),s5n=Symbol.for("react.activity"),kTt=Symbol.iterator;function o5n(e){return e===null||typeof e!="object"?null:(e=kTt&&e[kTt]||e["@@iterator"],typeof e=="function"?e:null)}var NTt={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},CTt=Object.assign,MTt={};function yx(e,t,n){this.props=e,this.context=t,this.refs=MTt,this.updater=n||NTt}yx.prototype.isReactComponent={};yx.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")};yx.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function DTt(){}DTt.prototype=yx.prototype;function jbe(e,t,n){this.props=e,this.context=t,this.refs=MTt,this.updater=n||NTt}var Hbe=jbe.prototype=new DTt;Hbe.constructor=jbe;CTt(Hbe,yx.prototype);Hbe.isPureReactComponent=!0;var ITt=Array.isArray;function Ube(){}var Ai={H:null,A:null,T:null,S:null},LTt=Object.prototype.hasOwnProperty;function qbe(e,t,n){var r=n.ref;return{$$typeof:Fbe,type:e,key:t,ref:r!==void 0?r:null,props:n}}function a5n(e,t){return qbe(e.type,t,e.props)}function Bbe(e){return typeof e=="object"&&e!==null&&e.$$typeof===Fbe}function c5n(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var xTt=/\/+/g;function Lbe(e,t){return typeof e=="object"&&e!==null&&e.key!=null?c5n(""+e.key):t.toString(36)}function u5n(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(Ube,Ube):(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 gx(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 Fbe:case J6n:o=!0;break;case PTt:return o=e._init,gx(o(e._payload),t,n,r,i)}}if(o)return i=i(e),o=r===""?"."+Lbe(e,0):r,ITt(i)?(n="",o!=null&&(n=o.replace(xTt,"$&/")+"/"),gx(i,t,n,"",function(u){return u})):i!=null&&(Bbe(i)&&(i=a5n(i,n+(i.key==null||e&&e.key===i.key?"":(""+i.key).replace(xTt,"$&/")+"/")+o)),t.push(i)),1;o=0;var a=r===""?".":r+":";if(ITt(e))for(var c=0;c{"use strict";process.env.NODE_ENV!=="production"&&(function(){function e(D,ne){Object.defineProperty(r.prototype,D,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",ne[0],ne[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,ne){D=(D=D.constructor)&&(D.displayName||D.name)||"ReactClass";var Ce=D+"."+ne;Ae[Ce]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",ne,D),Ae[Ce]=!0)}function r(D,ne,Ce){this.props=D,this.context=ne,this.refs=oe,this.updater=Ce||z}function i(){}function s(D,ne,Ce){this.props=D,this.context=ne,this.refs=oe,this.updater=Ce||z}function o(){}function a(D){return""+D}function c(D){try{a(D);var ne=!1}catch{ne=!0}if(ne){ne=console;var Ce=ne.error,Se=typeof Symbol=="function"&&Symbol.toStringTag&&D[Symbol.toStringTag]||D.constructor.name||"Object";return Ce.call(ne,"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 j:return"Suspense";case H: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 ne=D.render;return D=D.displayName,D||(D=ne.displayName||ne.name||"",D=D!==""?"ForwardRef("+D+")":"ForwardRef"),D;case K:return ne=D.displayName||null,ne!==null?ne:u(D.type)||"Memo";case ee:ne=D._payload,D=D._init;try{return u(D(ne))}catch{}}return null}function l(D){if(D===Q)return"<>";if(typeof D=="object"&&D!==null&&D.$$typeof===ee)return"<...>";try{var ne=u(D);return ne?"<"+ne+">":"<...>"}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(Un.call(D,"key")){var ne=Object.getOwnPropertyDescriptor(D,"key").get;if(ne&&ne.isReactWarning)return!1}return D.key!==void 0}function h(D,ne){function Ce(){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)",ne))}Ce.isReactWarning=!0,Object.defineProperty(D,"key",{get:Ce,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,ne,Ce,Se,at,Pn){var It=Ce.ref;return D={$$typeof:$,type:D,key:ne,props:Ce,_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:Pn}),Object.freeze&&(Object.freeze(D.props),Object.freeze(D)),D}function y(D,ne){return ne=g(D.type,ne,D.props,D._owner,D._debugStack,D._debugTask),D._store&&(ne._store.validated=D._store.validated),ne}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 ne={"=":"=0",":":"=2"};return"$"+D.replace(/[=:]/g,function(Ce){return ne[Ce]})}function _(D,ne){return typeof D=="object"&&D!==null&&D.key!=null?(c(D.key),E(""+D.key)):ne.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(ne){D.status==="pending"&&(D.status="fulfilled",D.value=ne)},function(ne){D.status==="pending"&&(D.status="rejected",D.reason=ne)})),D.status){case"fulfilled":return D.value;case"rejected":throw D.reason}}throw D}function R(D,ne,Ce,Se,at){var Pn=typeof D;(Pn==="undefined"||Pn==="boolean")&&(D=null);var It=!1;if(D===null)It=!0;else switch(Pn){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),ne,Ce,Se,at)}}if(It){It=D,at=at(It);var dn=Se===""?"."+_(It,0):Se;return _e(at)?(Ce="",dn!=null&&(Ce=dn.replace(Ii,"$&/")+"/"),R(at,ne,Ce,"",function(ra){return ra})):at!=null&&(S(at)&&(at.key!=null&&(It&&It.key===at.key||c(at.key)),Ce=y(at,Ce+(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&&(Ce._store.validated=2),at=Ce),ne.push(at)),1}if(It=0,dn=Se===""?".":Se+":",_e(D))for(var _t=0;_t import('./MyComponent')) -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 +Did you accidentally put curly braces around the import?`,ne),"default"in ne||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 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: + const MyComponent = lazy(() => import('./MyComponent'))`,ne),ne.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.`),D}function N(){Ue.asyncTransitions--}function P(D){if(Ar===null)try{var te=("require"+Math.random()).slice(0,7);Ar=(QY&&QY[te]).call(QY,"timers").setImmediate}catch{Ar=function(Ee){cy===!1&&(cy=!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(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(Ul){if(F(te,Pe),Pe===0){try{K(Ee),P(function(){return V(Ul,_t,ra)})}catch(Tp){Ue.thrownErrors.push(Tp)}if(0 ...)"))}),Ue.actQueue=null),0Ue.recentlyCreatedOwnerStacks++;return y(D,at,Ee,d(),_t?Error("react-stack-top-frame"):Rs,_t?lr(l(D)):cb)},en.createRef=function(){var D={current:null};return Object.seal(D),D},en.forwardRef=function(D){D!=null&&D.$$typeof===W?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:L,render:D},Pe;return Object.defineProperty(te,"displayName",{enumerable:!1,configurable:!0,get:function(){return Pe},set:function(Ee){Pe=Ee,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Ee}),D.displayName=Ee)}}),te},en.isValidElement=S,en.lazy=function(D){D={_status:-1,_result:D};var te={$$typeof:ee,_payload:D,_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 D._ioInfo=Pe,te._debugInfo=[{awaited:Pe}],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:W,type:D,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,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Ee}),D.displayName=Ee)}}),te},en.startTransition=function(D){var te=Ue.T,Pe={};Pe._updatedFibers=new Set,Ue.T=Pe;try{var Ee=D(),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&&(D=Pe._updatedFibers.size,Pe._updatedFibers.clear(),10{"use strict";process.env.NODE_ENV==="production"?NEe.exports=bTt():NEe.exports=_Tt()});var TTt=w($Y=>{"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,L=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.",L),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,L,H,j){var W=U.ref;return M={$$typeof:h,type:M,key:q,props:U,_owner:L},(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,L,H,j){var W=q.children;if(W!==void 0)if(L)if(F(W)){for(L=0;L -React keys must be passed directly to JSX without using spread: - let props = %s; - <%s key={someKey} {...props} />`,L,W,ee,W),G[W+L]=!0)}if(W=null,U!==void 0&&(n(U),W=""+U),o(q)&&(n(q.key),W=""+q.key),"key"in q){U={};for(var se in q)se!=="key"&&(U[se]=q[se])}else U=q;return W&&a(U,typeof M=="function"?M.displayName||M.name||"Unknown":M),u(M,W,U,i(),H,j)}function d(M){f(M)?M._store&&(M._store.validated=1):typeof M=="object"&&M!==null&&M.$$typeof===x&&(M._payload.status==="fulfilled"?f(M._payload.value)&&M._payload.value._store&&(M._payload.value._store.validated=1):M._store&&(M._store.validated=1))}function f(M){return typeof M=="object"&&M!==null&&M.$$typeof===h}var p=PEe(),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={};$Y.Fragment=y,$Y.jsx=function(M,q,U){var L=1e4>P.recentlyCreatedOwnerStacks++;return l(M,q,U,!1,L?Error("react-stack-top-frame"):B,L?V(r(M)):X)},$Y.jsxs=function(M,q,U){var L=1e4>P.recentlyCreatedOwnerStacks++;return l(M,q,U,!0,L?Error("react-stack-top-frame"):B,L?V(r(M)):X)}})()});var rp=w((ygi,CEe)=>{"use strict";process.env.NODE_ENV==="production"?CEe.exports=uTt():CEe.exports=TTt()});var vTt,ATt=v(()=>{"use strict";vTt=Se(rp(),1)});var O5n,RTt,wTt=v(()=>{"use strict";O5n=Se(PEe(),1),RTt=Se(rp(),1)});var N5n,kTt=v(()=>{"use strict";N5n=Se(rp(),1)});var P5n,ITt=v(()=>{"use strict";P5n=Se(rp(),1)});var C5n,xTt=v(()=>{"use strict";C5n=Se(rp(),1)});var OTt=v(()=>{"use strict";ATt();wTt();kTt();ITt();xTt()});var NTt=v(()=>{"use strict"});function CTt(e){return e==="user"?"spec gate":e==="cross-stage-consistency"?"cross-stage review":`${e} review`}function MTt(e){return e==="user"?"approval gate":e==="quality_gates"?"quality gates":e==="cross-stage-consistency"?"cross-stage approval":`${e} approval`}function e5(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 MEe(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(...PTt(n,"review",t,o)),a.push({key:"execute",label:"execute",done:r}),a.push(...PTt(i,"approve",r,o)),s!=null&&a.push({key:"observations",label:"observations",done:s}),e5(a)}function PTt(e,t,n,r=!0){let i=[],s=[],o=0,a=t==="review"?"adversarial review":"adversarial approval",c=l=>t==="review"?CTt(l):MTt(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)j5n.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 j5n,LTt=v(()=>{"use strict";j5n=new Set(["spec","quality_gates","user"])});var DTt=v(()=>{"use strict";OTt();Mye();NTt();SL();LTt()});import{existsSync as UTt}from"node:fs";import{join as kv}from"node:path";function DEe(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&&!LEe.has(t)}function t5(e,t){if(!e)return-1;let n=e.kind,r=e.role,i=e.gate_kind,s=DEe(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 H5n(e){let t=e.reviews;return t&&typeof t=="object"?t:{}}function jTt(e){let t=e.approvals;return t&&typeof t=="object"?t:{}}function q5n(e){return Array.isArray(e.iterations)?e.iterations:[]}function UEe(e){let{slug:t,studio:n,stage:r,stageDir:i,mode:s,groupAdversarial:o=!0}=e,c=ov(i).map(g=>({name:MZ(g),fm:Xc(g)?.data??{}})).filter(g=>g.fm),u=c.map(g=>g.name),l=bs(n,r),{reviewRoles:d,approvalRoles:f}=DZ(n,r,s),p=kx({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"?H5n(S.fm):jTt(S.fm))[E]),m=c.length>0&&(l.length===0||c.every(g=>{let E=q5n(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,"..",".."))?UTt(kv(i,"observations.md")):null;return MEe({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 HTt(e){let{intentDir:t,mode:n,groupAdversarial:r=!0}=e,i=[],s=Xc(kv(t,"intent.md"))?.data??{},o=jTt(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 LZ(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:UTt(kv(t,"reflection.md"))}),i.push({key:"seal",label:"seal",done:s.sealed_at!=null}),e5(i)}function n5(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:ai(t,n,r),a=o?UEe({slug:t,studio:n,stage:o,stageDir:kv(r,"stages",o),mode:i}):HTt({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 qTt(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:ai(t,n,r);return o?UEe({slug:t,studio:n,stage:o,stageDir:kv(r,"stages",o),mode:i,groupAdversarial:!1}):HTt({intentDir:r,mode:i,groupAdversarial:!1})}function BTt(e){return UEe({slug:e.slug,studio:e.studio,stage:e.stage,stageDir:kv(e.intentDir,"stages",e.stage),mode:e.mode})}var LEe,FTt,FEe=v(()=>{"use strict";DTt();Kn();ns();Oa();LEe=new Set(["spec","quality_gates","user"]),FTt=e=>e.includes(":")?e.slice(e.indexOf(":")+1):e});import{existsSync as C1,readFileSync as M1}from"node:fs";import{join as L1}from"node:path";function B5n(e){return e.split(/[-_]/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function zTt(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 G5n(e){return e.map(t=>({...t,frontmatter:zTt(t.frontmatter)??t.frontmatter}))}function jEe(e){if(!e)return{};let t=L1(pe(e),"intent.md");if(!C1(t))return{};try{return re(M1(t,"utf8")).data}catch{return{}}}function V5n(e){let t=`${e.slug}::${e.stage}`,n=Date.now(),r=GTt.get(t);if(r&&n-r.atd.trim()),o=i.some(d=>d==="external")&&i.length===1,a=t?.stage||e.stage||"",c=a?B5n(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=jEe(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 VTt(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:zTt(o.frontmatter)}}if(n.parsedUnits&&(r.units=G5n(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?rTt(n.intent_slug):null;if(i&&(r.current_state=i,n.intent_slug&&i.studio))try{let o=jEe(n.intent_slug),a=typeof o?.mode=="string"?o.mode:"",c=n5({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=t5(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?jEe(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 _=BTt({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 _=L1(f,"stages",E,"BRIEF.md");if(C1(_)){let T=M1(_,"utf8").trim();T&&(m[E]=T)}}catch{}try{let _=L1(f,"stages",E,"observations.md");if(C1(_)){let T=M1(_,"utf8").trim();T&&(y[E]=T)}}catch{}try{let _=L1(f,"stages",E,"elaboration.md");if(C1(_)){let T=M1(_,"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=L1(f,"reflection.md");if(C1(E)){let S=M1(E,"utf8").trim();S&&(r.reflection=S)}}catch{}}catch{}}let s=n.intent_slug;if(s&&i?.stage&&i.studio)try{let o=V5n({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=oTt(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=W5n(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 GTt,z5n,WTt=v(()=>{"use strict";iTt();aTt();ns();Oa();lye();FEe();Qc();ze();Kn();GTt=new Map,z5n=2e3});import{appendFileSync as K5n}from"node:fs";function BE(e){try{K5n(Z5n,`${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 ne=("require"+Math.random()).slice(0,7);Rr=(l6&&l6[ne]).call(l6,"timers").setImmediate}catch{Rr=function(Se){ly===!1&&(ly=!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(Hl){if(L(ne,Ce),Ce===0){try{W(Se),N(function(){return G(Hl,_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?dr(l(D)):lE)},en.createRef=function(){var D={current:null};return Object.seal(D),D},en.forwardRef=function(D){D!=null&&D.$$typeof===K?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 ne={$$typeof:M,render:D},Ce;return Object.defineProperty(ne,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ce},set:function(Se){Ce=Se,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Se}),D.displayName=Se)}}),ne},en.isValidElement=S,en.lazy=function(D){D={_status:-1,_result:D};var ne={$$typeof:ee,_payload:D,_init:x},Ce={name:"lazy",start:-1,end:-1,value:null,owner:null,debugStack:Error("react-stack-top-frame"),debugTask:console.createTask?console.createTask("lazy()"):null};return D._ioInfo=Ce,ne._debugInfo=[{awaited:Ce}],ne},en.memo=function(D,ne){D==null&&console.error("memo: The first argument must be a component. Instead received: %s",D===null?"null":typeof D),ne={$$typeof:K,type:D,compare:ne===void 0?null:ne};var Ce;return Object.defineProperty(ne,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ce},set:function(Se){Ce=Se,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Se}),D.displayName=Se)}}),ne},en.startTransition=function(D){var ne=Ue.T,Ce={};Ce._updatedFibers=new Set,Ue.T=Ce;try{var Se=D(),at=Ue.S;at!==null&&at(Ce,Se),typeof Se=="object"&&Se!==null&&typeof Se.then=="function"&&(Ue.asyncTransitions++,Se.then(P,P),Se.then(o,_p))}catch(Pn){_p(Pn)}finally{ne===null&&Ce._updatedFibers&&(D=Ce._updatedFibers.size,Ce._updatedFibers.clear(),10{"use strict";process.env.NODE_ENV==="production"?zbe.exports=UTt():zbe.exports=FTt()});var f5n,HTt=v(()=>{f5n=Re(jTt(),1)});var qTt=v(()=>{});var BTt=v(()=>{});var zTt=v(()=>{});var GTt=v(()=>{wTt();HTt();qTt();BTt();zTt()});var VTt=v(()=>{});function KTt(e){return e==="user"?"spec gate":e==="cross-stage-consistency"?"cross-stage review":`${e} review`}function YTt(e){return e==="user"?"approval gate":e==="quality_gates"?"quality gates":e==="cross-stage-consistency"?"cross-stage approval":`${e} approval`}function d6(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 Gbe(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}),d6(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):YTt(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)S5n.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 S5n,ZTt=v(()=>{S5n=new Set(["spec","quality_gates","user"])});var JTt=v(()=>{GTt();zye();VTt();xD();ZTt()});import{existsSync as XTt}from"node:fs";import{join as Mv}from"node:path";function Wbe(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&&!Vbe.has(t)}function f6(e,t){if(!e)return-1;let n=e.kind,r=e.role,i=e.gate_kind,s=Wbe(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 b5n(e){let t=e.reviews;return t&&typeof t=="object"?t:{}}function $Tt(e){let t=e.approvals;return t&&typeof t=="object"?t:{}}function E5n(e){return Array.isArray(e.iterations)?e.iterations:[]}function Kbe(e){let{slug:t,studio:n,stage:r,stageDir:i,mode:s,groupAdversarial:o=!0}=e,c=dv(i).map(y=>({name:zY(y),fm:Qc(y)?.data??{}})).filter(y=>y.fm),u=c.map(y=>y.name),l=Es(n,r),{reviewRoles:d,approvalRoles:f}=VY(n,r,s),p=M0({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"?b5n(S.fm):$Tt(S.fm))[b]),m=c.length>0&&(l.length===0||c.every(y=>{let b=E5n(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=lv(Mv(i,"..",".."))?XTt(Mv(i,"observations.md")):null;return Gbe({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 evt(e){let{intentDir:t,mode:n,groupAdversarial:r=!0}=e,i=[],s=Qc(Mv(t,"intent.md"))?.data??{},o=$Tt(s),a=s.studio||"",c=a?Object.keys(yg(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 GY(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}),lv(t)&&i.push({key:"reflection",label:"reflection",done:XTt(Mv(t,"reflection.md"))}),i.push({key:"seal",label:"seal",done:s.sealed_at!=null}),d6(i)}function p6(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:ai(t,n,r),a=o?Kbe({slug:t,studio:n,stage:o,stageDir:Mv(r,"stages",o),mode:i}):evt({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 tvt(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:ai(t,n,r);return o?Kbe({slug:t,studio:n,stage:o,stageDir:Mv(r,"stages",o),mode:i,groupAdversarial:!1}):evt({intentDir:r,mode:i,groupAdversarial:!1})}function nvt(e){return Kbe({slug:e.slug,studio:e.studio,stage:e.stage,stageDir:Mv(e.intentDir,"stages",e.stage),mode:e.mode})}var Vbe,QTt,Ybe=v(()=>{"use strict";JTt();Kn();ns();Oa();Vbe=new Set(["spec","quality_gates","user"]),QTt=e=>e.includes(":")?e.slice(e.indexOf(":")+1):e});import{existsSync as q1,readFileSync as B1}from"node:fs";import{join as z1}from"node:path";function _5n(e){return e.split(/[-_]/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function ivt(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 T5n(e){return e.map(t=>({...t,frontmatter:ivt(t.frontmatter)??t.frontmatter}))}function Zbe(e){if(!e)return{};let t=z1(ce(e),"intent.md");if(!q1(t))return{};try{return re(B1(t,"utf8")).data}catch{return{}}}function R5n(e){let t=`${e.slug}::${e.stage}`,n=Date.now(),r=rvt.get(t);if(r&&n-r.atd.trim()),o=i.some(d=>d==="external")&&i.length===1,a=t?.stage||e.stage||"",c=a?_5n(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=Zbe(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(yg(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 svt(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:ivt(o.frontmatter)}}if(n.parsedUnits&&(r.units=T5n(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?_Tt(n.intent_slug):null;if(i&&(r.current_state=i,n.intent_slug&&i.studio))try{let o=Zbe(n.intent_slug),a=typeof o?.mode=="string"?o.mode:"",c=p6({slug:n.intent_slug,studio:i.studio,intentDir:ce(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:ce(n.intent_slug),studio:i.studio}),d=f6(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?Zbe(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=ce(o),p={},h={},m={},g={},y={};for(let b of d){try{let _=nvt({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 _=z1(f,"stages",b,"BRIEF.md");if(q1(_)){let T=B1(_,"utf8").trim();T&&(m[b]=T)}}catch{}try{let _=z1(f,"stages",b,"observations.md");if(q1(_)){let T=B1(_,"utf8").trim();T&&(g[b]=T)}}catch{}try{let _=z1(f,"stages",b,"elaboration.md");if(q1(_)){let T=B1(_,"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=z1(f,"reflection.md");if(q1(b)){let S=B1(b,"utf8").trim();S&&(r.reflection=S)}}catch{}}catch{}}let s=n.intent_slug;if(s&&i?.stage&&i.studio)try{let o=R5n({slug:s,stage:i.stage,studio:i.studio,intentDir:ce(s)});o.length>0&&(r.drift=o.map(a=>({path:a.file,stage:a.unit==="(intent)"?"":i.stage,intent:s,action:"modified",age:a.since,kind:a.kind,unit:a.unit,role:a.role})))}catch{}if(n.intent_slug){let o=RTt(n.intent_slug);o&&(r.discovered_review_url=o)}n.knowledgeFiles&&(r.knowledge_files=n.knowledgeFiles),n.stageArtifacts&&(r.stage_artifacts=n.stageArtifacts),n.outputArtifacts&&(r.output_artifacts=n.outputArtifacts),n.otherFiles&&(r.other_files=n.otherFiles),n.intentOtherFiles&&(r.intent_other_files=n.intentOtherFiles),n.unitOutputs&&(r.unit_outputs=n.unitOutputs),n.outputDeclaredBy&&(r.output_declared_by=n.outputDeclaredBy),n.previousReview&&(r.previous_review=n.previousReview),n.ad_hoc&&(r.ad_hoc=!0),n.stage&&(r.stage=n.stage),n.gate_context&&(r.gate_context=n.gate_context),n.next_stage!==void 0&&(r.next_stage=n.next_stage),n.next_phase!==void 0&&(r.next_phase=n.next_phase),r.await_active=n.await_active===!0,r.await_count=n.await_count??0,n.pending_decision&&(r.pending_decision=n.pending_decision),n.last_await_started_at&&(r.last_await_started_at=n.last_await_started_at),n.last_await_ended_at&&(r.last_await_ended_at=n.last_await_ended_at),r.approve_action=A5n(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 rvt,v5n,ovt=v(()=>{"use strict";TTt();ATt();ns();Oa();bye();Ybe();$c();ze();Kn();rvt=new Map,v5n=2e3});import{appendFileSync as w5n}from"node:fs";function Vb(e){try{w5n(k5n,`${new Date().toISOString()} ${e} `)}catch{}process.stderr.write(`[haiku-mcp] ${e} -`)}function YTt(e){let t=Date.now(),n=t-1e3,i=(HEe.get(e)??[]).filter(s=>s>n);return i.length>=Y5n?(HEe.set(e,i),!1):(i.push(t),HEe.set(e,i),!0)}function Qh(e,t){let n=Ku.get(e);if(!(!n||n.readyState!==n.OPEN))try{n.send(JSON.stringify(t))}catch{}}function Iv(e,t){BE(`closeSessionConnection(${e}) invoked [build:fastify] reason=${t??"null"}`),s0(e);let n=Ku.get(e);if(!n){BE(`closeSessionConnection(${e}): NO socket registered \u2014 SPA has no active WS`);return}try{n.send(JSON.stringify({type:"session-ended",reason:t??null})),BE(`closeSessionConnection(${e}): hint frame queued`)}catch(r){BE(`closeSessionConnection(${e}): hint write threw ${r instanceof Error?r.message:String(r)}`)}try{n.close(4001,t??"session ended"),BE(`closeSessionConnection(${e}): close frame sent`)}catch{}Ku.delete(e)}function JTt(e,t){let n;try{n=JSON.parse(t)}catch{Qh(e,{type:"error",error:"invalid_json"});return}let r=yut.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"){zD(e),Qh(e,{type:"heartbeat_ack",...typeof i.t=="number"?{t:i.t}:{}});return}if(s.session_type==="review"&&i.type==="decide"){let o=i.decision==="approved"?"approved":"changes_requested",a=i.feedback??"",c=i.annotations;Cl(e,{pending_decision:{decision:o,feedback:a,annotations:c,submitted_at:new Date().toISOString()}}),s.intent_slug&&zd(s.intent_slug,{type:"pending_decision_changed",session_id:e,queued:!0}),Qh(e,{type:"ack",ok:!0,decision:o,feedback:a})}else if(s.session_type==="question"&&i.type==="answer"){let o=i.annotations;ZD(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}:{}};YD(e,{status:"answered",selection:o}),Qh(e,{type:"ack",ok:!0})}}}var Z5n,Ku,HEe,KTt,Y5n,ZTt,D1,r5=v(()=>{"use strict";_T();i0();P1();Qc();Z5n="/tmp/haiku-session-cancel.log";Ku=new Map,HEe=new WeakMap,KTt=20,Y5n=(()=>{let e=process.env.HAIKU_WS_RATE_LIMIT;if(e===void 0)return KTt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?KTt:Math.max(t,1)})();ZTt=128,D1=(()=>{let e=process.env.HAIKU_MAX_WS_SESSIONS;if(e===void 0)return ZTt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?ZTt:Math.max(t,1)})()});import{existsSync as XTt,readdirSync as J5n,readFileSync as QTt}from"node:fs";import{join as BEe}from"node:path";function $Tt(e){e.get("/review/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Gd)}),e.get("/question/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="question"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Gd)}),e.get("/direction/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="design_direction"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Gd)}),e.get("/view/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="view"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Gd)}),e.post("/review/:sessionId/decide",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){n.status(404).send("Session not found");return}let i=qE(n,t.body,lfe);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()&&(rEe(t.params.sessionId),tEe()),Mx(t.params.sessionId);return}Cl(t.params.sessionId,{pending_decision:{decision:s,feedback:o,annotations:a,submitted_at:new Date().toISOString()}}),r.intent_slug&&zd(r.intent_slug,{type:"pending_decision_changed",session_id:t.params.sessionId,queued:!0}),n.send(c),s0(t.params.sessionId)}),e.post("/question/:sessionId/answer",{bodyLimit:tfe},async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="question"){n.status(404).send("Session not found");return}let i=qE(n,t.body,ufe);if(!i.ok)return;ZD(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:tfe},async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="design_direction"){n.status(404).send({error:"Session not found or expired"});return}if(r.status==="answered"){n.status(409).send({error:"Direction already selected for this session"});return}let i=qE(n,t.body,nfe);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?qEe(c):"";if(c&&u){let l=i.data.annotations?.screenshots??[],d=!1;if(l.length>0)try{oSe({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=qx(c,u),p=jE(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,l1(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?qEe(c):"";if(c&&u)try{let{uploads:l}=aSe({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}}YD(t.params.sessionId,{status:"answered",selection:s});let o={ok:!0};n.send(o)}),e.get("/picker/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="picker"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Gd)}),e.post("/picker/:sessionId/select",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="picker"){n.status(404).send({error:"Session not found or expired"});return}if(r.status==="answered"){n.status(409).send({error:"Picker already submitted"});return}let i=t.body??{},s=typeof i.id=="string"?i.id:"";if(!s){n.status(400).send({error:"Missing required field: id"});return}if(r.kind==="url_input"){let c=s.trim();if(c.length<4||c.length>2048){n.status(400).send({error:"URL must be 4\u20132048 characters"});return}if(!/^https?:\/\//i.test(c)&&!/^git@/i.test(c)&&!/^ssh:\/\//i.test(c)){n.status(400).send({error:"URL must start with http://, https://, ssh://, or git@ \u2014 paste the full URL"});return}let{updatePickerSession:u}=await Promise.resolve().then(()=>(Qc(),wye));u(t.params.sessionId,{status:"answered",selection:{id:c}}),n.send({ok:!0,id:c});return}let o=new Set(r.options.map(c=>c.id));if(!o.has(s)){n.status(400).send({error:`id "${s}" is not in the option set: ${[...o].join(", ")}`});return}let{updatePickerSession:a}=await Promise.resolve().then(()=>(Qc(),wye));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)&&VTt(n,t.params.sessionId)}),e.head("/api/session/:sessionId/heartbeat",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=zD(t.params.sessionId);n.status(r?200:404).send()}),e.post("/api/advance/:sessionId",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){ta({reqId:t.id,action:"advance",status:404,detail:`session=${t.params.sessionId} not_found_or_wrong_type`}),n.status(404).send("Session not found");return}if(!r.intent_slug){ta({reqId:t.id,action:"advance",status:409,detail:`session=${t.params.sessionId} no_intent_context`}),n.status(409).send({error:"Session has no intent context"});return}let i=r.intent_slug,s=qEe(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{X5n(i,s),a=!0,Fg(`haiku: user advance with no pending feedback on ${s} \u2014 stamp user slots`)}catch(u){ta({reqId:t.id,action:"advance",status:500,intent:i,stage:s,detail:`user_slot_stamp_failed: ${u instanceof Error?u.message:String(u)}`}),n.status(500).send({error:"user_slot_stamp_failed",detail:u instanceof Error?u.message:String(u)});return}Cl(t.params.sessionId,{pending_decision:{decision:"advance",feedback:"",annotations:{},submitted_at:new Date().toISOString()}}),r.intent_slug&&zd(r.intent_slug,{type:"pending_decision_changed",session_id:t.params.sessionId,queued:!0});let c={ok:!0,stage:s,open_feedback_count:o.length,stamped_user_slots:a};ta({reqId:t.id,action:"advance",status:200,intent:i,stage:s,detail:`open_fbs=${o.length} stamped=${a}`}),n.send(c)})}function qEe(e){let t=BEe(pe(e),"intent.md");if(!XTt(t))return"";try{let{data:n}=re(QTt(t,"utf8"));return n.active_stage||""}catch{return""}}function X5n(e,t){let n=pe(e),r=BEe(n,"stages",t,"units");if(!XTt(r))return;let i=J5n(r).filter(s=>s.endsWith(".md"));for(let s of i){let o=BEe(r,s);try{let{data:a}=re(QTt(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=Pl(o),d=!0),l.user||(l.user=Hd(n,c),f=!0),d&&Le(o,"reviews",u),f&&Le(o,"approvals",l)}catch{}}}var evt=v(()=>{"use strict";_T();UY();i0();P1();Yf();Qc();ze();Jh();lEe();Hg();WTt();Av();r5()});var GEe=w((Iyi,tvt)=>{"use strict";var{EventEmitter:Q5n}=Z("node:events"),{inherits:$5n}=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 e6n=Z("node:util").inherits,nvt=Z("node:stream").Readable;function zEe(e){nvt.call(this,e)}e6n(zEe,nvt);zEe.prototype._read=function(e){};rvt.exports=zEe});var i5=w((Oyi,svt)=>{"use strict";svt.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 uvt=w((Nyi,cvt)=>{"use strict";var avt=Z("node:events").EventEmitter,t6n=Z("node:util").inherits,ovt=i5(),n6n=GEe(),r6n=Buffer.from(`\r +`)}function uvt(e){let t=Date.now(),n=t-1e3,i=(Jbe.get(e)??[]).filter(s=>s>n);return i.length>=I5n?(Jbe.set(e,i),!1):(i.push(t),Jbe.set(e,i),!0)}function em(e,t){let n=Yu.get(e);if(!(!n||n.readyState!==n.OPEN))try{n.send(JSON.stringify(t))}catch{}}function Dv(e,t){Vb(`closeSessionConnection(${e}) invoked [build:fastify] reason=${t??"null"}`),mx(e);let n=Yu.get(e);if(!n){Vb(`closeSessionConnection(${e}): NO socket registered \u2014 SPA has no active WS`);return}try{n.send(JSON.stringify({type:"session-ended",reason:t??null})),Vb(`closeSessionConnection(${e}): hint frame queued`)}catch(r){Vb(`closeSessionConnection(${e}): hint write threw ${r instanceof Error?r.message:String(r)}`)}try{n.close(4001,t??"session ended"),Vb(`closeSessionConnection(${e}): close frame sent`)}catch{}Yu.delete(e)}function lvt(e,t){let n;try{n=JSON.parse(t)}catch{em(e,{type:"error",error:"invalid_json"});return}let r=Iut.safeParse(n);if(!r.success){em(e,{type:"error",error:"invalid_ws_frame"});return}let i=r.data,s=$t(e);if(s){if(i.type==="heartbeat"){QL(e),em(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&&Kd(s.intent_slug,{type:"pending_decision_changed",session_id:e,queued:!0}),em(e,{type:"ack",ok:!0,decision:o,feedback:a})}else if(s.session_type==="question"&&i.type==="answer"){let o=i.annotations;n1(e,{status:"answered",answers:i.answers,feedback:i.feedback??"",annotations:o}),em(e,{type:"ack",ok:!0})}else if(s.session_type==="design_direction"&&i.type==="select"){if(s.status==="answered"){em(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}:{}};r1(e,{status:"answered",selection:o}),em(e,{type:"ack",ok:!0})}}}var k5n,Yu,Jbe,avt,I5n,cvt,G1,h6=v(()=>{"use strict";vT();hx();H1();$c();k5n="/tmp/haiku-session-cancel.log";Yu=new Map,Jbe=new WeakMap,avt=20,I5n=(()=>{let e=process.env.HAIKU_WS_RATE_LIMIT;if(e===void 0)return avt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?avt:Math.max(t,1)})();cvt=128,G1=(()=>{let e=process.env.HAIKU_MAX_WS_SESSIONS;if(e===void 0)return cvt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?cvt:Math.max(t,1)})()});import{existsSync as dvt,readdirSync as x5n,readFileSync as fvt}from"node:fs";import{join as Qbe}from"node:path";function pvt(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(Wd)}),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(Wd)}),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(Wd)}),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(Wd)}),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=Gb(n,t.body,bfe);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),Dv(t.params.sessionId,"ad-hoc review closed"),Bi()&&(mbe(t.params.sessionId),pbe()),q0(t.params.sessionId);return}Ml(t.params.sessionId,{pending_decision:{decision:s,feedback:o,annotations:a,submitted_at:new Date().toISOString()}}),r.intent_slug&&Kd(r.intent_slug,{type:"pending_decision_changed",session_id:t.params.sessionId,queued:!0}),n.send(c),mx(t.params.sessionId)}),e.post("/question/:sessionId/answer",{bodyLimit:lfe},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=Gb(n,t.body,Sfe);if(!i.ok)return;n1(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:lfe},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=Gb(n,t.body,dfe);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?Xbe(c):"";if(c&&u){let l=i.data.annotations?.screenshots??[],d=!1;if(l.length>0)try{gSe({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=Y0(c,u),p=qb(f);p.design_direction_selected=!0,p.design_direction_selected_at=mn(),p.design_direction={archetype:i.data.archetype,...i.data.comments?{comments:i.data.comments}:{}},delete p.design_direction_surfaced,S1(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?Xbe(c):"";if(c&&u)try{let{uploads:l}=ySe({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}}r1(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(Wd)}),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(()=>($c(),Dye));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(),Dye));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)&&svt(n,t.params.sessionId)}),e.head("/api/session/:sessionId/heartbeat",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=QL(t.params.sessionId);n.status(r?200:404).send()}),e.post("/api/advance/:sessionId",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){ta({reqId:t.id,action:"advance",status:404,detail:`session=${t.params.sessionId} not_found_or_wrong_type`}),n.status(404).send("Session not found");return}if(!r.intent_slug){ta({reqId:t.id,action:"advance",status:409,detail:`session=${t.params.sessionId} no_intent_context`}),n.status(409).send({error:"Session has no intent context"});return}let i=r.intent_slug,s=Xbe(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{O5n(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&&Kd(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 Xbe(e){let t=Qbe(ce(e),"intent.md");if(!dvt(t))return"";try{let{data:n}=re(fvt(t,"utf8"));return n.active_stage||""}catch{return""}}function O5n(e,t){let n=ce(e),r=Qbe(n,"stages",t,"units");if(!dvt(r))return;let i=x5n(r).filter(s=>s.endsWith(".md"));for(let s of i){let o=Qbe(r,s);try{let{data:a}=re(fvt(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=zd(n,c),f=!0),d&&Ne(o,"reviews",u),f&&Ne(o,"approvals",l)}catch{}}}var hvt=v(()=>{"use strict";vT();JZ();hx();H1();Xf();$c();ze();Qh();Tbe();qg();ovt();Pv();h6()});var $be=w((dSi,mvt)=>{"use strict";var{EventEmitter:P5n}=Y("node:events"),{inherits:N5n}=Y("node:util");function Lv(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};Lv.prototype._sbmh_lookup_char=function(e,t){return t<0?this._lookbehind[this._lookbehind_size+t]:e[t]};Lv.prototype._sbmh_memcmp=function(e,t,n){for(var r=0;r{"use strict";var C5n=Y("node:util").inherits,gvt=Y("node:stream").Readable;function eEe(e){gvt.call(this,e)}C5n(eEe,gvt);eEe.prototype._read=function(e){};yvt.exports=eEe});var m6=w((pSi,bvt)=>{"use strict";bvt.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 vvt=w((hSi,Tvt)=>{"use strict";var _vt=Y("node:events").EventEmitter,M5n=Y("node:util").inherits,Evt=m6(),D5n=$be(),L5n=Buffer.from(`\r \r -`),i6n=/\r\n/g,s6n=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function c0(e){avt.call(this),e=e||{};let t=this;this.nread=0,this.maxed=!1,this.npairs=0,this.maxHeaderPairs=ovt(e,"maxHeaderPairs",2e3),this.maxHeaderSize=ovt(e,"maxHeaderSize",80*1024),this.buffer="",this.header={},this.finished=!1,this.ss=new n6n(r6n),this.ss.on("info",function(n,r,i,s){r&&!t.maxed&&(t.nread+s-i>=t.maxHeaderSize?(s=t.maxHeaderSize-t.nread+i,t.nread=t.maxHeaderSize,t.maxed=!0):t.nread+=s-i,t.buffer+=r.toString("binary",i,s)),n&&t._finish()})}t6n(c0,avt);c0.prototype.push=function(e){let t=this.ss.push(e);if(this.finished)return t};c0.prototype.reset=function(){this.finished=!1,this.buffer="",this.header={},this.ss.reset()};c0.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)};c0.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs)return;let e=this.buffer.split(i6n),t=e.length,n,r;for(var i=0;i{"use strict";var VEe=Z("node:stream").Writable,o6n=Z("node:util").inherits,a6n=GEe(),lvt=ivt(),c6n=uvt(),u6n=45,l6n=Buffer.from("-"),d6n=Buffer.from(`\r -`),f6n=function(){};function ip(e){if(!(this instanceof ip))return new ip(e);if(VEe.call(this,e),!e||!e.headerFirst&&typeof e.boundary!="string")throw new TypeError("Boundary required");typeof e.boundary=="string"?this.setBoundary(e.boundary):this._bparser=void 0,this._headerFirst=e.headerFirst,this._dashes=0,this._parts=0,this._finished=!1,this._realFinish=!1,this._isPreamble=!0,this._justMatched=!1,this._firstWrite=!0,this._inHeader=!0,this._part=void 0,this._cb=void 0,this._ignoreData=!1,this._partOpts={highWaterMark:e.partHwm},this._pause=!1;let t=this;this._hparser=new c6n(e),this._hparser.on("header",function(n){t._inHeader=!1,t._part.emit("header",n)})}o6n(ip,VEe);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 VEe.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 lvt(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 fvt=new TextDecoder("utf-8"),pvt=new Map([["utf-8",fvt],["utf8",fvt]]);function p6n(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return U1.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 U1.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return U1.utf16le;case"base64":return U1.base64;default:if(t===void 0){t=!0,e=e.toLowerCase();continue}return U1.other.bind(e)}}var U1={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)),pvt.has(KEe.toString()))try{return pvt.get(KEe).decode(e)}catch{}return typeof e=="string"?e:e.toString()}};function h6n(e,t,n){return e&&p6n(n)(e,t)}hvt.exports=h6n});var YEe=w((Cyi,Evt)=>{"use strict";var o5=s5(),mvt=/%[a-fA-F0-9][a-fA-F0-9]/g,m6n={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"\x07","%08":"\b","%09":" ","%0a":` +`),U5n=/\r\n/g,F5n=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function Sx(e){_vt.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 D5n(L5n),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()})}M5n(Sx,_vt);Sx.prototype.push=function(e){let t=this.ss.push(e);if(this.finished)return t};Sx.prototype.reset=function(){this.finished=!1,this.buffer="",this.header={},this.ss.reset()};Sx.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)};Sx.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs)return;let e=this.buffer.split(U5n),t=e.length,n,r;for(var i=0;i{"use strict";var tEe=Y("node:stream").Writable,j5n=Y("node:util").inherits,H5n=$be(),Rvt=Svt(),q5n=vvt(),B5n=45,z5n=Buffer.from("-"),G5n=Buffer.from(`\r +`),V5n=function(){};function sp(e){if(!(this instanceof sp))return new sp(e);if(tEe.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 q5n(e),this._hparser.on("header",function(n){t._inHeader=!1,t._part.emit("header",n)})}j5n(sp,tEe);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 tEe.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 Rvt(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 wvt=new TextDecoder("utf-8"),kvt=new Map([["utf-8",wvt],["utf8",wvt]]);function W5n(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return V1.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 V1.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return V1.utf16le;case"base64":return V1.base64;default:if(t===void 0){t=!0,e=e.toLowerCase();continue}return V1.other.bind(e)}}var V1={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)),kvt.has(rEe.toString()))try{return kvt.get(rEe).decode(e)}catch{}return typeof e=="string"?e:e.toString()}};function K5n(e,t,n){return e&&W5n(n)(e,t)}Ivt.exports=K5n});var sEe=w((gSi,Cvt)=>{"use strict";var y6=g6(),xvt=/%[a-fA-F0-9][a-fA-F0-9]/g,Y5n={"%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 gvt(e){return m6n[e]}var a5=0,yvt=1,ZEe=2,Svt=3;function g6n(e){let t=[],n=a5,r="",i=!1,s=!1,o=0,a="",c=e.length;for(var u=0;u{"use strict";bvt.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 Rvt=w((Lyi,Avt)=>{"use strict";var{Readable:vvt}=Z("node:stream"),{inherits:y6n}=Z("node:util"),S6n=WEe(),Tvt=YEe(),E6n=s5(),b6n=_vt(),Ov=i5(),_6n=/^boundary$/i,T6n=/^form-data$/i,v6n=/^charset$/i,A6n=/^filename$/i,R6n=/^name$/i;c5.detect=/^multipart\/form-data/i;function c5(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",u0),e.hitPartsLimit=!0,e.emit("partsLimit"),u0(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=Tvt(C["content-type"][0]),K[0])){for(F=K[0].toLowerCase(),n=0,r=K.length;nh){let H=h-G+L.length;H>0&&U.push(L.slice(0,H)),U.truncated=!0,U.bytesRead=h,P.removeAllListeners("data"),U.emit("limit");return}else U.push(L)||(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")),u0(P);++_,++T;let U="",L=!1;R=P,M=function(H){if((G+=H.length)>p){let j=p-(G-H.length);U+=H.toString("binary",0,j),L=!0,P.removeAllListeners("data")}else U+=H.toString("binary")},q=function(){R=void 0,U.length&&(U=E6n(U,"binary",$)),e.emit("field",V,U,!1,L,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()})}c5.prototype.write=function(e,t){let n=this.parser.write(e);n&&!this._pause?t():(this._needDrain=!n,this._cb=t)};c5.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 u0(e){e.resume()}function JEe(e){vvt.call(this,e),this.bytesRead=0,this.truncated=!1}y6n(JEe,vvt);JEe.prototype._read=function(e){};Avt.exports=c5});var kvt=w((Dyi,wvt)=>{"use strict";var w6n=/\+/g,k6n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function XEe(){this.buffer=void 0}XEe.prototype.write=function(e){e=e.replace(w6n," ");let t="",n=0,r=0,i=e.length;for(;nr&&(t+=e.substring(r,n),r=n),this.buffer="",++r);return r{"use strict";var I6n=kvt(),l0=s5(),QEe=i5(),x6n=/^charset$/i;u5.detect=/^application\/x-www-form-urlencoded/i;function u5(e,t){let n=t.limits,r=t.parsedConType;this.boy=e,this.fieldSizeLimit=QEe(n,"fieldSize",1*1024*1024),this.fieldNameSizeLimit=QEe(n,"fieldNameSize",100),this.fieldsLimit=QEe(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",l0(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",l0(this._key,"binary",this.charset),l0(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",l0(this._key,"binary",this.charset),"",this._keyTrunc,!1):this._state==="val"&&this.boy.emit("field",l0(this._key,"binary",this.charset),l0(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this.boy._done=!0,this.boy.emit("finish"))};Ivt.exports=u5});var Pvt=w((Fyi,F1)=>{"use strict";var $Ee=Z("node:stream").Writable,{inherits:O6n}=Z("node:util"),N6n=WEe(),Ovt=Rvt(),Nvt=xvt(),P6n=YEe();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},$Ee.call(this,this.opts),this._done=!1,this._parser=this.getParserByHeaders(t),this._finished=!1}O6n(qg,$Ee);qg.prototype.emit=function(e){if(e==="finish"){if(this._done){if(this._finished)return}else{this._parser?.end();return}this._finished=!0}$Ee.prototype.emit.apply(this,arguments)};qg.prototype.getParserByHeaders=function(e){let t=P6n(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(Ovt.detect.test(t[0]))return new Ovt(this,n);if(Nvt.detect.test(t[0]))return new Nvt(this,n);throw new Error("Unsupported Content-Type.")};qg.prototype._write=function(e,t,n){this._parser.write(e,n)};F1.exports=qg;F1.exports.default=qg;F1.exports.Busboy=qg;F1.exports.Dicer=N6n});var Lvt=w((jyi,Mvt)=>{"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 Cvt(){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]}Mvt.exports.generateId=(function(){let t=0,n=Cvt();return function(){return t===255?(n=Cvt())+Bg[t=0]:n+Bg[++t]}})()});var Uvt=w((Hyi,Dvt)=>{"use strict";Dvt.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 Hvt=w((qyi,j1)=>{"use strict";var Fvt=Object.getPrototypeOf({});function jvt(){return function(t){return typeof t=="object"&&t!==null&&!(t instanceof RegExp)&&!(t instanceof Date)}}function ebe(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 C6n=Pvt(),M6n=Z("node:os"),L6n=jC(),{createWriteStream:D6n}=Z("node:fs"),{unlink:U6n}=Z("node:fs/promises"),qvt=Z("node:path"),{generateId:F6n}=Lvt(),Gg=pW(),j6n=Uvt(),H6n=Hvt()({all:!0}),{PassThrough:q6n,Readable:B6n}=Z("node:stream"),{pipeline:G6n}=Z("node:stream/promises"),z6n=kue(),rbe=Symbol("multipart"),l5=Symbol("multipartHandler"),H1=Symbol("savedRequestFilesResult"),Bvt=Gg("FST_PARTS_LIMIT","reach parts limit",413),Gvt=Gg("FST_FILES_LIMIT","reach files limit",413),zvt=Gg("FST_FIELDS_LIMIT","reach fields limit",413),tbe=Gg("FST_REQ_FILE_TOO_LARGE","request file too large",413),nbe=Gg("FST_PROTO_VIOLATION","prototype property is not allowed as field name",400),Vvt=Gg("FST_INVALID_MULTIPART_CONTENT_TYPE","the request is not multipart",406),Wvt=Gg("FST_INVALID_JSON_FIELD_ERROR","a request field is not a valid JSON as declared by its Content-Type",406),Kvt=Gg("FST_FILE_BUFFER_NOT_FOUND","the file buffer was not found",500),V6n=Gg("FST_NO_FORM_DATA","FormData is not available",500);function W6n(e,t,n){e[rbe]=!0,n()}function K6n(e){try{return new C6n(e)}catch(t){let n=new q6n;return process.nextTick(function(){n.emit("error",t)}),n}}function ibe(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[rbe]}function o(p={}){if(!this.isMultipart())throw new Vvt;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=H6n({headers:T.headers},t,p);this.log.trace({busboyOptions:A},"Providing options to busboy");let R=K6n(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 Bvt;N(C),process.nextTick(()=>P(C))}),R.on("filesLimit",function(){let C=new Gvt;N(C),process.nextTick(()=>P(C))}),R.on("fieldsLimit",function(){let C=new zvt;N(C),process.nextTick(()=>P(C))}),T.pipe(R);function x(C,F,V,K,$,B){if(C in Object.prototype){N(new nbe);return}if(B.startsWith("application/json")){if(K){N(new Wvt);return}try{F=z6n.parse(F),B="application/json"}catch{N(new Wvt);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){j6n(F).catch(()=>{}),N(new nbe);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 tbe,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 tbe;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[H1])return this[H1];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||M6n.tmpdir();this.tmpUploads=[];let g=0;for await(let E of h){if(m=E.fields,!E.file)continue;let S=qvt.join(y,F6n()+qvt.extname(E.filename||"file"+g++)),b=D6n(S);try{this.tmpUploads.push(S),await G6n(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[H1]={files:this.savedRequestFiles,values:m},this[H1]}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"}})}q1.exports=L6n(ibe,{fastify:"5.x",name:"@fastify/multipart"});q1.exports.default=ibe;q1.exports.fastifyMultipart=ibe;q1.exports.ajvFilePlugin=Z6n});import{mkdirSync as Y6n}from"node:fs";import{open as J6n}from"node:fs/promises";import{dirname as X6n,join as Q6n}from"node:path";function z1(e,t){let n=String(t).padStart(2,"0");return`HWM-${e}-${n}`}function Jvt(e,t=200){return e.length<=t?e:`${e.slice(0,t)}...`}function G1(e){return Buffer.byteLength(e,"utf-8")}function sbe(e,t){if(G1(e)<=t)return e;let n="...[truncated]",r=G1(n),i=Math.max(0,t-r),s=Buffer.from(e,"utf-8"),o=i;for(;o>0&&(s[o]&192)===128;)o--;return`${s.slice(0,o).toString("utf-8")}${n}`}function r8n(e){let t=(s,o)=>s==null?null:sbe(s,o),n={...e,path:sbe(e.path,e8n),claimed_author_id:t(e.claimed_author_id,Yvt),human_author_id:t(e.human_author_id,Yvt),rationale:t(e.rationale,$6n),dirs_created:(e.dirs_created??[]).slice(0,t8n).map(s=>sbe(s,n8n))},r=JSON.stringify(n),i=G1(r);return i>d5?{ok:!1,reason:"record_too_large",bytes:i,cap:d5}:{ok:!0,record:n,line:r}}function i8n(e){return Q6n(e,"write-audit.jsonl")}async function s8n(e,t){let n=B1.get(e)??Promise.resolve(),r,i=new Promise(s=>{r=s});B1.set(e,n.then(()=>i));try{return await n,await t()}finally{r(),queueMicrotask(()=>{let s=B1.get(e);s!==void 0&&Promise.resolve(s).then(()=>{B1.get(e)===s&&B1.delete(e)})})}}async function Xvt(e,t){try{Y6n(X6n(e),{recursive:!0})}catch(n){return{ok:!1,reason:String(n)}}return s8n(e,async()=>{let n=null;try{return n=await J6n(e,"a"),await n.write(`${t} -`),await n.sync(),{ok:!0}}catch(r){return{ok:!1,reason:String(r)}}finally{n!==null&&await n.close().catch(()=>{})}})}async function V1(e,t){let n=r8n(t);if(!n.ok)return{ok:!1,reason:`${n.reason} (bytes=${n.bytes}, cap=${n.cap})`};let r=i8n(e);return Xvt(r,n.line)}async function Qvt(e,t){return G1(t)>d5?{ok:!1,reason:`record_too_large (bytes=${G1(t)}, cap=${d5})`}:Xvt(e,t)}var d5,$6n,Yvt,e8n,t8n,n8n,B1,f5=v(()=>{"use strict";d5=16*1024,$6n=4096,Yvt=128,e8n=1024,t8n=16,n8n=512;B1=new Map});import{join as o8n}from"node:path";function obe(e){return o8n(e,"action-log.jsonl")}async function Pv(e,t,n){let r=obe(e),i=JSON.stringify(n);return Qvt(r,i)}var p5=v(()=>{"use strict";f5()});import{createHash as a8n}from"node:crypto";import{createWriteStream as c8n,existsSync as cbe,readFileSync as u8n,unlinkSync as aAt}from"node:fs";import{join as W1,resolve as $vt}from"node:path";function l8n(e){return!(!e||e==="application/octet-stream")}function tAt(e){return typeof e!="string"?!1:lbe.test(e)}function d8n(e){let t=e.lastIndexOf(".");return t<0?"":e.slice(t).toLowerCase()}function f8n(e){if(!e)return"";let t=e.indexOf(";");return(t<0?e:e.slice(0,t)).trim().toLowerCase()}function nAt(e){return ube.has(d8n(e))}function abe(){let e=process.env.HAIKU_UPLOAD_MAX_BYTES,t;if(e===void 0)t=eAt;else{let n=Number.parseInt(e,10);t=!Number.isFinite(n)||n<=0?eAt:n}return t>h5?(Ke("haiku.upload.cap_clamped",{env_value:String(t),hard_cap:String(h5)}),h5):Math.min(t,h5)}function rAt(e,t){try{let n=W1(pe(e),"stages",t,"state.json");if(!cbe(n))return!1;let r=u8n(n,"utf-8"),s=JSON.parse(r).status;return s==="complete"||s==="sealed"}catch{return!1}}function iAt(e){return p1(pe(e))}function sAt(e){return f1(pe(e))}async function oAt(e,t,n){let r=W1(t,`.upload-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}.tmp`),i=a8n("sha256"),s=0,o=c8n(r),a=new Promise(c=>{o.on("close",()=>{c()})});return await new Promise((c,u)=>{o.on("error",u),o.on("finish",c),e.file.on("error",u),e.file.on("data",l=>{if(s+=l.length,s>n){e.file.destroy(),o.destroy(),u(Object.assign(new Error("payload_too_large"),{code:"PAYLOAD_TOO_LARGE"}));return}i.update(l)}),e.file.on("end",()=>{o.end()}),e.file.pipe(o)}).catch(async c=>{await a.catch(()=>{});try{aAt(r)}catch{}throw c}),{tmpPath:r,sha256:i.digest("hex"),bytes:s}}async function uAt(e){await e.register(async t=>{await t.register(cAt.default,{limits:{fileSize:abe()+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(!Qx(n,r,i))return;if(!Da(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(iAt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(sAt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=abe(),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(!tAt(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:lbe.source});return}let d=nAt(l.filename),f=nAt(a);if(d||f){r.status(415).send({error:"unsupported_media_type",code:"unsupported_media_type",message:`Files with extensions ${Array.from(ube).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(ube)});return}let p=f8n(l.mimetype);if(!l8n(p)){r.status(415).send({error:"unsupported_media_type",code:"unsupported_media_type",message:`MIME type '${p||""}' is rejected \u2014 empty MIME or application/octet-stream cannot be accepted (the latter is a multipart default that bypasses MIME inspection). Send the file's real MIME and retry.`,received_mime:p});return}if(!["replace","create","upsert"].includes(c)){r.status(400).send({error:"bad_param",code:"bad_param",message:"mode must be replace, create, or upsert"});return}if(!gn(o)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!Xh(i,o)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(rAt(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=W1(E,y),b=S.substring(0,S.lastIndexOf("/")),_=$vt(S),T=$vt(W1(E,g));if(!_.startsWith(T)){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let A=cbe(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 oAt(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){Fx(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=LE(E,o),C=z1(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 V1(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(!Qx(n,r,i))return;if(!Da(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(iAt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(sAt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=abe(),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(!tAt(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:lbe.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(rAt(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=W1(d,f),h=p.substring(0,p.lastIndexOf("/"));if(cbe(p)){r.status(409).send({error:"filename_collision",code:"filename_collision"});return}let y=null,g,E;try{let k=await oAt(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){Fx(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?h1(d):LE(d,a)}catch(k){if(k instanceof Bd){try{aAt(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=z1(_,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 V1(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 cAt,eAt,h5,ube,lbe,lAt=v(()=>{"use strict";cAt=Se(Zvt(),1);p5();Ax();f5();BZ();ze();vo();Hg();Av();eAt=50*1024*1024,h5=50*1024*1024,ube=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);lbe=/^[\w][\w\-.@ ]{0,127}$/});function dAt(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(!Ku.has(i)&&Ku.size>=D1){BE(`upgrade REJECT session=${i} reason=ws_session_cap size=${Ku.size} cap=${D1}`),n.close(1013,"session cap reached");return}Ku.set(i,n),BE(`upgrade ACCEPT session=${i}`);let o=null,a=s.session_type==="review"?s:null;a?.intent_slug&&(o=J_t(a.intent_slug,c=>{Qh(i,{type:"intent-event",session_id:i,event:c})})),n.on("message",c=>{if(!YTt(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");JTt(i,u)}),n.on("close",()=>{Ku.get(i)===n&&Ku.delete(i),o&&(o(),o=null)}),n.on("error",()=>{Ku.get(i)===n&&Ku.delete(i),o&&(o(),o=null)})})})}var fAt=v(()=>{"use strict";i0();Qc();Jh();r5()});import{randomUUID as p8n}from"node:crypto";function h8n(){return dbe}function m8n(e){if(!e)return null;let t=yf.allowedOrigins.filter(r=>r&&r!=="*");return(t.length>0?t:[yf.siteUrl]).includes(e)?e:null}async function g8n(){let e=(0,EAt.default)({logger:!1,bodyLimit:mL,disableRequestLogging:!0,genReqId:t=>{let n=t.headers["x-request-id"];if(typeof n=="string"&&n.length>0&&n.length<=128)return n;if(Array.isArray(n)&&n[0]){let r=n[0];if(r.length>0&&r.length<=128)return r}return p8n()},requestIdHeader:"x-request-id"});if(e.addHook("onRequest",async(t,n)=>{n.getHeader("x-request-id")||n.header("x-request-id",t.id),t.startTime=process.hrtime.bigint()}),e.addHook("onResponse",async(t,n)=>{let r=n.statusCode,i=t.startTime??void 0,s=i!==void 0?Number(process.hrtime.bigint()-i)/1e6:void 0,o=r>=500?"error":r>=400?"warn":"info";try{console.error(JSON.stringify({level:o,event:"http_response",reqId:t.id,method:t.method,url:t.url,statusCode:r,...s!==void 0?{responseTimeMs:Math.round(s*100)/100}:{}}))}catch{}}),Bi()&&await e.register(gAt.default,{origin:(t,n)=>{n(null,m8n(t)??!1)},credentials:!1,methods:["GET","HEAD","POST","PUT","DELETE","OPTIONS"],allowedHeaders:["Authorization","Content-Type","bypass-tunnel-reminder","X-Haiku-CSRF"],exposedHeaders:["X-E2E-Encrypted","X-Original-Content-Type"],strictPreflight:!1,preflightContinue:!1}),Bi()){let t=(()=>{let r=process.env.HAIKU_HTTP_RATE_MAX,i=r?Number.parseInt(r,10):NaN;return Number.isFinite(i)&&i>=1?i:60})(),n=(()=>{let r=process.env.HAIKU_HTTP_RATE_WINDOW_MS,i=r?Number.parseInt(r,10):NaN;return Number.isFinite(i)&&i>=1e3?i:6e4})();await e.register(yAt.default,{max:t,timeWindow:n})}return await e.register(SAt.default,{options:{maxPayload:64*1024}}),e.addHook("onSend",async(t,n,r)=>{let i=uEe((t.url??"/").split("?")[0]);if(!i||!k1(i)||n.statusCode>=400)return r;try{return await L_t(t,n,r)}catch{return r}}),C_t(e,h8n),g_t(e),$Tt(e),Z_t(e),G_t(e),await uAt(e),__t(e),R_t(e),N_t(e),dAt(e),e}function mAt(e){if(process.env.HAIKU_TRANSPORT_ASSERT==="0"&&process.env.NODE_ENV==="test"){console.error("WARNING: HAIKU_TRANSPORT_ASSERT=0 bypass active (NODE_ENV=test). This is a test-only escape hatch; ignored outside NODE_ENV=test.");return}new Set(["127.0.0.1","::1","::ffff:127.0.0.1"]).has(e)||(console.error(`FATAL: Review HTTP server bound to non-loopback address '${e}'. v1 transport invariant requires loopback-only; terminating.`),process.exit(1))}async function VE(){if(zE&&GE!==null)return GE;Bi()&&yf.allowedOrigins.filter(s=>s&&s!=="*").length===0&&console.error("WARNING: HAIKU_REMOTE_REVIEW=1 but no allowed origins configured. Every cross-origin request from the SPA will be rejected by CORS. Set `HAIKU_REVIEW_ALLOWED_ORIGINS` (comma-separated) or `HAIKU_REVIEW_SITE_URL` before starting."),zE=await g8n();let e=process.env.HAIKU_FORCE_BIND_ADDR;e&&e!=="127.0.0.1"&&console.error(`WARNING: HAIKU_FORCE_BIND_ADDR='${e}' overrides the default loopback bind. This is a test/dev-only knob; in production it will trigger the transport-invariant FATAL exit.`);let t=e||"127.0.0.1",n=await zE.listen({host:t,port:0});zE.server.maxConnections=hAt;let r=n.match(/^https?:\/\/(\[?[^\]]*\]?|[^:]+):(\d+)/);if(r&&(GE=Number.parseInt(r[2],10),mAt(r[1].replace(/^\[|\]$/g,""))),GE===null){let i=zE.server.address();i&&typeof i=="object"&&(GE=i.port,mAt(i.address))}return console.error(`Review HTTP server listening on http://127.0.0.1:${GE} (maxConnections=${hAt}, maxWsSessions=${D1})`),dbe=!0,GE}async function bAt(){if(zE)try{for(let e of Array.from(Ku.keys()))try{Iv(e,"shutdown")}catch{}await zE.close()}finally{zE=null,GE=null,dbe=!1}}var gAt,yAt,SAt,EAt,pAt,hAt,zE,GE,dbe,m5=v(()=>{"use strict";gAt=Se(F8e(),1),yAt=Se(Q8e(),1),SAt=Se(xXe(),1),EAt=Se(iut(),1);_T();Ci();T_t();w_t();sEe();P_t();M_t();D_t();z_t();Y_t();evt();lAt();r5();fAt();Jh();pAt=256,hAt=(()=>{let e=process.env.HAIKU_MAX_CONNECTIONS;if(e===void 0)return pAt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?pAt:Math.max(t,1)})(),zE=null,GE=null,dbe=!1});import{execFileSync as y8n}from"node:child_process";import{cpSync as _At,existsSync as hbe,mkdirSync as fbe}from"node:fs";import{homedir as TAt}from"node:os";import{join as mbe}from"node:path";function b8n(){return mbe(TAt(),".claude","plugins","npm-cache","node_modules","haiku-method")}function _8n(e){let t=e??nn();if(!t)return{removed:!0,root:"",missingPaths:[""]};let n=[];for(let r of S8n)hbe(mbe(t,r))||n.push(r);return{removed:n.length>0,root:t,missingPaths:n}}function T8n(){if(od==="dev")return{ok:!1,method:"skipped",reason:"dev_build_no_npm_source"};let e=nn();if(!e)return{ok:!1,method:"skipped",reason:"no_target_path"};let t=b8n();if(hbe(t))try{return fbe(e,{recursive:!0}),_At(t,e,{recursive:!0,force:!0}),{ok:!0,method:"npm-cache-copy"}}catch(r){}let n=mbe(TAt(),".claude","plugins","npm-cache");try{return fbe(n,{recursive:!0}),y8n("npm",["install",`haiku-method@${od}`,"--prefix",n],{encoding:"utf8",timeout:6e4,stdio:"pipe"}),hbe(t)?(fbe(e,{recursive:!0}),_At(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 vAt(e){let t=Date.now();if(t-pbe{"use strict";Ci();ih();d_();S8n=["studios","schemas",".claude-plugin/plugin.json"],E8n=5e3,pbe=0});var At=v(()=>{"use strict"});var v8n,A8n,RAt,wAt=v(()=>{"use strict";gt();ht();At();v8n=new Te({autoEscape:!1,useWith:!0}),A8n=ie("@canon:feedback/changes_requested"),RAt=({slug:e,action:t})=>{let n=t.annotations,r=t.message||"No details provided.";return v8n.renderString(A8n,{slug:e,message:r,annotations:n})}});var R8n,w8n,kAt,IAt=v(()=>{"use strict";gt();ht();At();R8n=new Te({autoEscape:!1,useWith:!0}),w8n=ie("@canon:feedback/close_feedback"),kAt=({slug:e,action:t})=>{let n=t.stage||"",r=t.feedback_id||"";return R8n.renderString(w8n,{slug:e,stage:n,fbId:r})}});var k8n,I8n,xAt,OAt=v(()=>{"use strict";gt();ts();ht();At();k8n=new Te({autoEscape:!1,useWith:!0}),I8n=ie("@canon:feedback/feedback_question"),xAt=e=>{let t=e.action;return k8n.renderString(I8n,{slug:e.slug,stage:t.stage,feedbackId:t.feedback_id,feedbackPath:t.feedback_path,isAutopilot:LI(e.dir)==="autopilot"})}});var x8n,O8n,NAt,PAt=v(()=>{"use strict";gt();ht();At();x8n=new Te({autoEscape:!1,useWith:!0}),O8n=ie("@canon:feedback/fix_quality_gates"),NAt=({slug:e,action:t})=>{let n=t.stage||"",r=n?`, stage: "${n}"`:"",i=t.message||"No details provided.";return x8n.renderString(O8n,{slug:e,stageHint:r,message:i})}});import{existsSync as g5}from"node:fs";import{join as N8n}from"node:path";var CAt,P8n,C8n,MAt,LAt=v(()=>{"use strict";gt();Ef();ze();Kn();Tl();ts();ht();Dh();At();CAt=new Te({autoEscape:!1,useWith:!0}),P8n=ie("@canon:feedback/intent_completion_fix"),C8n=ie("@canon:feedback/intent_completion_fix","subagent.eta.md"),MAt=({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=PL(t),l=s.map(({feedback_id:f,feedback_file:p,feedback_title:h,bolt:m,worktree:y,branch:g})=>{let E=N8n(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&&g5(x)?vl(x,`Fix-hat mandate: ${R}`):"",P=x&&g5(x)?OI(xI(x)):"",C=g5(E)?vl(E,`Feedback: ${f} \u2014 ${h}`):"",F=g5(E)?NI(E):"",V=CAt.renderString(C8n,{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:Ae(),isLast:k}),K=x?Fu({mandatePath:x,studio:t}):void 0,$=Ti({unit:`fix-${f}`,hat:R,bolt:m,intent:e,agentType:"general-purpose",model:K,promptBody:V,heading:`#### Subagent: \`${R}\`${k?" (final \u2014 validates closure)":" (relays next hat to parent)"}`});if(!k&&_)try{dK({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 CAt.renderString(P8n,{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 y5}from"node:fs";import{join as S5}from"node:path";var DAt,M8n,L8n,UAt,FAt=v(()=>{"use strict";gt();Ci();Ef();ze();Kn();Tl();ns();ts();ht();Dh();At();DAt=new Te({autoEscape:!1,useWith:!0}),M8n=ie("@canon:feedback/review_fix"),L8n=ie("@canon:feedback/review_fix","subagent.eta.md"),UAt=({slug:e,studio:t,action:n})=>{let r=n.stage,i=n.fix_hats||[],s=n.max_bolts||Mg,o=n.items||[],a=n.total_pending||o.length,c=n.escalated_count||0,u=ve(),l=Mu(t,r),d=si(t),f=d?d.dir:t,p=nn(),h=Df(S5(f,"stages",r,"STAGE.md")),m=o.map(({feedback_id:g,feedback_file:E,feedback_title:S,bolt:b,worktree:_,branch:T})=>{let A=S5(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?S5(p,"studios",f,"stages",r,"hats",`${C}.md`):null,K=P===i.length-1,$=h?vl(h,`Stage scope: ${r}`):"",B=V&&y5(V)?vl(V,`Hat mandate: ${C}`):"",X=V&&y5(V)?OI(xI(V)):"",G=y5(A)?vl(A,`Feedback: ${g} \u2014 ${S}`):"",M=y5(A)?NI(A):"",q=DAt.renderString(L8n,{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:Ae(),isLast:K}),U=S5(nn(),"studios",t,"stages",r,"hats",`${C}.md`),L=Fu({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:L??F?.model,promptBody:q,heading:`#### Subagent: \`${C}\`${K?" (final \u2014 validates closure)":" (relays next hat to parent)"}`});if(!K&&k)try{dK({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 DAt.renderString(M8n,{slug:e,fixStage:r,itemCount:o.length,fixHatsList:i,fixMaxBolts:s,escalatedCount:c,totalPending:a,showTotalsLine:a!==o.length+c,showAnnouncement:o.length>1,announcementBlock:Es("workflow-contracts-announcement"),workflowContractsBlock:Es("workflow-contracts-fix-loop"),findings:m,bgClause:y})}});import{existsSync as jAt,readdirSync as HAt,readFileSync as qAt}from"node:fs";import{join as d0}from"node:path";function F8n(e){if(!zo.modelSelection)return;let{slug:t,stage:n,studio:r,hat:i,feedbackId:s}=e,o;if(s){let d=s.replace(/^FB-/,""),f=n?d0(ar(t,n),"feedback"):d0(pe(t),"feedback");try{let p=jAt(f)?HAt(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=qAt(d0(f,p[0]),"utf8");o=(0,gbe.default)(h).data.model}}catch{}}let a=n?Mu(r,n)?.[i]:void 0,c=n?$i(r,n):void 0,u=Od(r),l=lE({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}var gbe,D8n,U8n,BAt,GAt=v(()=>{"use strict";gt();gbe=Se(Kt(),1);Ci();dE();ze();Kn();jpe();ts();ht();Dh();At();D8n=new Te({autoEscape:!1,useWith:!0}),U8n=ie("@canon:feedback/start_feedback_hat");BAt=({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?d0(ar(e,s.stage),"feedback"):d0(pe(e),"feedback");if(!jAt(a))return!0;let c=HAt(a).filter(u=>u.startsWith(o)&&u.endsWith(".md"));if(c.length===0)return!0;try{let u=qAt(d0(a,c[0]),"utf8"),l=(0,gbe.default)(u).data,d=l.closed_at;if(d instanceof Date||typeof d=="string"&&d.length>0||typeof l.status=="string"&&l.status==="closed"||typeof l.closed_by=="string"&&l.closed_by.startsWith("fix-loop:"))return!1}catch{}return!0});let i=r.map(s=>{let o=F8n({slug:e,studio:t,stage:s.stage,hat:s.hat,feedbackId:s.feedback_id}),a=FI({slug:e,studio:t,feedbackId:s.feedback_id,stage:s.stage,hat:s.hat,terminal:s.terminal});return{feedback_id:s.feedback_id,stage:s.stage,hat:s.hat,terminal:s.terminal,fb_int:Number.parseInt(s.feedback_id.replace(/^FB-/i,""),10)||0,model_tier:o?.model,model_source:o?.source,hat_path:s.stage?fE(t,s.stage,s.hat):null,dispatch_block:a}});return D8n.renderString(U8n,{slug:e,dispatches:i,dispatchCount:i.length,plural:i.length===1?"":"s",batchDirective:i.length>0?DI(i.length,"fix-hat subagents"):"",fixLoopContractsBlock:Es("workflow-contracts-fix-loop")})}});var j8n,H8n,zAt,VAt=v(()=>{"use strict";gt();ht();At();j8n=new Te({autoEscape:!1,useWith:!0}),H8n=ie("@canon:global/complete"),zAt=({action:e})=>j8n.renderString(H8n,{message:e.message??""})});var q8n,B8n,WAt,KAt=v(()=>{"use strict";gt();ht();At();q8n=new Te({autoEscape:!1,useWith:!0}),B8n=ie("@canon:global/error"),WAt=({action:e})=>q8n.renderString(B8n,{message:e.message??""})});var G8n,z8n,ZAt,YAt=v(()=>{"use strict";gt();ht();At();G8n=new Te({autoEscape:!1,useWith:!0}),z8n=ie("@canon:global/loop_halted"),ZAt=({action:e})=>{let t=e;return G8n.renderString(z8n,{message:t.message??"",loop:t.loop??"repeat",intent:t.intent??""})}});function K8n(e){let t=e.match(/^---\n[\s\S]*?\n---\n?/);return(t?e.slice(t[0].length):e).trim()}var V8n,W8n,JAt,XAt=v(()=>{"use strict";gt();Kn();ht();At();V8n=new Te({autoEscape:!1,useWith:!0}),W8n=ie("@canon:intent/reflection/record_reflection");JAt=({slug:e,studio:t})=>{let n=t?Object.entries(Qdt(t)).map(([r,i])=>({name:r,body:K8n(i)})):[];return V8n.renderString(W8n,{slug:e,dimensions:n})}});var Z8n,Y8n,QAt,$At=v(()=>{"use strict";gt();ht();At();Z8n=new Te({autoEscape:!1,useWith:!0}),Y8n=ie("@canon:intent/repair/external_review_requested"),QAt=({action:e})=>Z8n.renderString(Y8n,{message:e.message??""})});var J8n,X8n,eRt,tRt=v(()=>{"use strict";gt();ht();At();J8n=new Te({autoEscape:!1,useWith:!0}),X8n=ie("@canon:intent/repair/revise_unit_specs"),eRt=({action:e})=>J8n.renderString(X8n,{message:e.message??""})});var Q8n,$8n,nRt,rRt=v(()=>{"use strict";gt();ht();At();Q8n=new Te({autoEscape:!1,useWith:!0}),$8n=ie("@canon:intent/repair/safe_intent_repair"),nRt=({slug:e,action:t})=>{let n=t.synthesized_stages||[],r=t.phase_regressed||!1,i=t.message||"";return Q8n.renderString($8n,{slug:e,message:i,synthesizedStages:n,phaseWasRegressed:r})}});function nJn(e,t){return[`You are the \`${t}\` intent-completion reviewer for intent \`${e}\`.`,"","## Mandate (fallback \u2014 no studio-configured mandate file was found)","",`1. Read every stage's \`outputs/\` and \`elaboration.md\` under \`.haiku/intents/${e}/stages/\`.`,`2. Read the intent body at \`.haiku/intents/${e}/intent.md\`.`,"3. Judge the intent-as-a-whole: work that contradicts another stage's output, missing coverage of an acceptance criterion across all stages, any cross-stage inconsistency (terminology, scope, technical choices).",`4. For each finding, file \`haiku_feedback\` with \`intent: "${e}"\` (omit \`stage\`), \`origin: "agent"\`, \`author: "${t}"\`, and a body that quotes the artifact you're flagging. ALSO file one against the studio noting the missing mandate file at \`plugin/studios//intent-review-agents/${t}.md\`.`,'5. When done, return your verdict in one paragraph: which findings you filed (by FB-NN), or "no findings".',"","Do NOT modify any artifact files. Reviewer role, not fixer."].join(` -`)}function rJn(e,t,n){let r=eJn[n],i="",s;if(r){let c=E5.renderString(r,{slug:e}).trim();i=`**Read** \`${EE({intent:e,kind:"engine-body",name:n,body:c})}\``}else{let c=Ch(t,void 0,n);c&&(i=kr({resolveBody:()=>c,toolName:"haiku_read_review_agent",toolArgs:{studio:t,role:n},intent:e,kind:"mandate",name:n}),s=Fu({mandatePath:mg(t)[n],studio:t}))}let o=i?E5.renderString(tJn,{slug:e,role:n,mandateRef:i,doctrineRef:CT.has(n)?Es("runtime-verification"):"",prInteraction:YL.has(n),existingFeedback:PI(e,""),decisions:CI(e)}):nJn(e,n);return{dispatchBlock:Ti({unit:"review",hat:n,bolt:1,intent:e,agentType:"general-purpose",model:s,promptBody:o,heading:`### Subagent: \`${n}\``,omitBolt:!0}),isEngine:!!r}}var eJn,E5,iRt,tJn,sRt,oRt=v(()=>{"use strict";gt();Kn();Tl();ts();ht();Dh();At();eJn={spec:ie("@canon:intent/review/intent_review","engine-bodies/spec.eta.md"),continuity:ie("@canon:intent/review/intent_review","engine-bodies/continuity.eta.md"),"cross-stage-consistency":ie("@canon:intent/review/intent_review","engine-bodies/cross_stage_consistency.eta.md")},E5=new Te({autoEscape:!1,useWith:!0}),iRt=ie("@canon:intent/review/intent_review"),tJn=ie("@canon:intent/review/intent_review","subagent.eta.md");sRt=({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 E5.renderString(iRt,{slug:e,role:"user",roles:["user"],dispatchCount:1,mandatePath:"",dispatchBlock:"",isEngineRole:!1,description:""});let i=r.map(o=>rJn(e,t,o.role)),s=i.map(o=>o.dispatchBlock).join(` +`,"%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 Ovt(e){return Y5n[e]}var S6=0,Pvt=1,iEe=2,Nvt=3;function Z5n(e){let t=[],n=S6,r="",i=!1,s=!1,o=0,a="",c=e.length;for(var u=0;u{"use strict";Mvt.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 jvt=w((SSi,Fvt)=>{"use strict";var{Readable:Uvt}=Y("node:stream"),{inherits:J5n}=Y("node:util"),X5n=nEe(),Lvt=sEe(),Q5n=g6(),$5n=Dvt(),Uv=m6(),e8n=/^boundary$/i,t8n=/^form-data$/i,n8n=/^charset$/i,r8n=/^filename$/i,i8n=/^name$/i;b6.detect=/^multipart\/form-data/i;function b6(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",bx),e.hitPartsLimit=!0,e.emit("partsLimit"),bx(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=Lvt(C["content-type"][0]),W[0])){for(L=W[0].toLowerCase(),n=0,r=W.length;nh){let j=h-B+M.length;j>0&&U.push(M.slice(0,j)),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")),bx(N);++_,++T;let U="",M=!1;A=N,F=function(j){if((B+=j.length)>p){let H=p-(B-j.length);U+=j.toString("binary",0,H),M=!0,N.removeAllListeners("data")}else U+=j.toString("binary")},V=function(){A=void 0,U.length&&(U=Q5n(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()})}b6.prototype.write=function(e,t){let n=this.parser.write(e);n&&!this._pause?t():(this._needDrain=!n,this._cb=t)};b6.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 bx(e){e.resume()}function oEe(e){Uvt.call(this,e),this.bytesRead=0,this.truncated=!1}J5n(oEe,Uvt);oEe.prototype._read=function(e){};Fvt.exports=b6});var qvt=w((bSi,Hvt)=>{"use strict";var s8n=/\+/g,o8n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 aEe(){this.buffer=void 0}aEe.prototype.write=function(e){e=e.replace(s8n," ");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 a8n=qvt(),Ex=g6(),cEe=m6(),c8n=/^charset$/i;E6.detect=/^application\/x-www-form-urlencoded/i;function E6(e,t){let n=t.limits,r=t.parsedConType;this.boy=e,this.fieldSizeLimit=cEe(n,"fieldSize",1*1024*1024),this.fieldNameSizeLimit=cEe(n,"fieldNameSize",100),this.fieldsLimit=cEe(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",Ex(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",Ex(this._key,"binary",this.charset),Ex(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",Ex(this._key,"binary",this.charset),"",this._keyTrunc,!1):this._state==="val"&&this.boy.emit("field",Ex(this._key,"binary",this.charset),Ex(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this.boy._done=!0,this.boy.emit("finish"))};Bvt.exports=E6});var Wvt=w((_Si,W1)=>{"use strict";var uEe=Y("node:stream").Writable,{inherits:u8n}=Y("node:util"),l8n=nEe(),Gvt=jvt(),Vvt=zvt(),d8n=sEe();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},uEe.call(this,this.opts),this._done=!1,this._parser=this.getParserByHeaders(t),this._finished=!1}u8n(Bg,uEe);Bg.prototype.emit=function(e){if(e==="finish"){if(this._done){if(this._finished)return}else{this._parser?.end();return}this._finished=!0}uEe.prototype.emit.apply(this,arguments)};Bg.prototype.getParserByHeaders=function(e){let t=d8n(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(Gvt.detect.test(t[0]))return new Gvt(this,n);if(Vvt.detect.test(t[0]))return new Vvt(this,n);throw new Error("Unsupported Content-Type.")};Bg.prototype._write=function(e,t,n){this._parser.write(e,n)};W1.exports=Bg;W1.exports.default=Bg;W1.exports.Busboy=Bg;W1.exports.Dicer=l8n});var Zvt=w((TSi,Yvt)=>{"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"],Fv=Math.random;function Kvt(){return zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]}Yvt.exports.generateId=(function(){let t=0,n=Kvt();return function(){return t===255?(n=Kvt())+zg[t=0]:n+zg[++t]}})()});var Xvt=w((vSi,Jvt)=>{"use strict";Jvt.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 eRt=w((RSi,K1)=>{"use strict";var Qvt=Object.getPrototypeOf({});function $vt(){return function(t){return typeof t=="object"&&t!==null&&!(t instanceof RegExp)&&!(t instanceof Date)}}function lEe(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 f8n=Wvt(),p8n=Y("node:os"),h8n=JC(),{createWriteStream:m8n}=Y("node:fs"),{unlink:g8n}=Y("node:fs/promises"),tRt=Y("node:path"),{generateId:y8n}=Zvt(),Gg=_W(),S8n=Xvt(),b8n=eRt()({all:!0}),{PassThrough:E8n,Readable:_8n}=Y("node:stream"),{pipeline:T8n}=Y("node:stream/promises"),v8n=Lue(),pEe=Symbol("multipart"),_6=Symbol("multipartHandler"),Y1=Symbol("savedRequestFilesResult"),nRt=Gg("FST_PARTS_LIMIT","reach parts limit",413),rRt=Gg("FST_FILES_LIMIT","reach files limit",413),iRt=Gg("FST_FIELDS_LIMIT","reach fields limit",413),dEe=Gg("FST_REQ_FILE_TOO_LARGE","request file too large",413),fEe=Gg("FST_PROTO_VIOLATION","prototype property is not allowed as field name",400),sRt=Gg("FST_INVALID_MULTIPART_CONTENT_TYPE","the request is not multipart",406),oRt=Gg("FST_INVALID_JSON_FIELD_ERROR","a request field is not a valid JSON as declared by its Content-Type",406),aRt=Gg("FST_FILE_BUFFER_NOT_FOUND","the file buffer was not found",500),R8n=Gg("FST_NO_FORM_DATA","FormData is not available",500);function A8n(e,t,n){e[pEe]=!0,n()}function w8n(e){try{return new f8n(e)}catch(t){let n=new E8n;return process.nextTick(function(){n.emit("error",t)}),n}}function hEe(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[pEe]}function o(p={}){if(!this.isMultipart())throw new sRt;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=b8n({headers:T.headers},t,p);this.log.trace({busboyOptions:R},"Providing options to busboy");let A=w8n(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 nRt;P(C),process.nextTick(()=>N(C))}),A.on("filesLimit",function(){let C=new rRt;P(C),process.nextTick(()=>N(C))}),A.on("fieldsLimit",function(){let C=new iRt;P(C),process.nextTick(()=>N(C))}),T.pipe(A);function x(C,L,G,W,$,q){if(C in Object.prototype){P(new fEe);return}if(q.startsWith("application/json")){if(W){P(new oRt);return}try{L=v8n.parse(L),q="application/json"}catch{P(new oRt);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){S8n(L).catch(()=>{}),P(new fEe);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 dEe,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 dEe;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[Y1])return this[Y1];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||p8n.tmpdir();this.tmpUploads=[];let y=0;for await(let b of h){if(m=b.fields,!b.file)continue;let S=tRt.join(g,y8n()+tRt.extname(b.filename||"file"+y++)),E=m8n(S);try{this.tmpUploads.push(S),await T8n(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[Y1]={files:this.savedRequestFiles,values:m},this[Y1]}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"}})}Z1.exports=h8n(hEe,{fastify:"5.x",name:"@fastify/multipart"});Z1.exports.default=hEe;Z1.exports.fastifyMultipart=hEe;Z1.exports.ajvFilePlugin=k8n});import{mkdirSync as I8n}from"node:fs";import{open as x8n}from"node:fs/promises";import{dirname as O8n,join as P8n}from"node:path";function Q1(e,t){let n=String(t).padStart(2,"0");return`HWM-${e}-${n}`}function lRt(e,t=200){return e.length<=t?e:`${e.slice(0,t)}...`}function X1(e){return Buffer.byteLength(e,"utf-8")}function mEe(e,t){if(X1(e)<=t)return e;let n="...[truncated]",r=X1(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 L8n(e){let t=(s,o)=>s==null?null:mEe(s,o),n={...e,path:mEe(e.path,C8n),claimed_author_id:t(e.claimed_author_id,uRt),human_author_id:t(e.human_author_id,uRt),rationale:t(e.rationale,N8n),dirs_created:(e.dirs_created??[]).slice(0,M8n).map(s=>mEe(s,D8n))},r=JSON.stringify(n),i=X1(r);return i>T6?{ok:!1,reason:"record_too_large",bytes:i,cap:T6}:{ok:!0,record:n,line:r}}function U8n(e){return P8n(e,"write-audit.jsonl")}async function F8n(e,t){let n=J1.get(e)??Promise.resolve(),r,i=new Promise(s=>{r=s});J1.set(e,n.then(()=>i));try{return await n,await t()}finally{r(),queueMicrotask(()=>{let s=J1.get(e);s!==void 0&&Promise.resolve(s).then(()=>{J1.get(e)===s&&J1.delete(e)})})}}async function dRt(e,t){try{I8n(O8n(e),{recursive:!0})}catch(n){return{ok:!1,reason:String(n)}}return F8n(e,async()=>{let n=null;try{return n=await x8n(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 $1(e,t){let n=L8n(t);if(!n.ok)return{ok:!1,reason:`${n.reason} (bytes=${n.bytes}, cap=${n.cap})`};let r=U8n(e);return dRt(r,n.line)}async function fRt(e,t){return X1(t)>T6?{ok:!1,reason:`record_too_large (bytes=${X1(t)}, cap=${T6})`}:dRt(e,t)}var T6,N8n,uRt,C8n,M8n,D8n,J1,v6=v(()=>{"use strict";T6=16*1024,N8n=4096,uRt=128,C8n=1024,M8n=16,D8n=512;J1=new Map});import{join as j8n}from"node:path";function gEe(e){return j8n(e,"action-log.jsonl")}async function jv(e,t,n){let r=gEe(e),i=JSON.stringify(n);return fRt(r,i)}var R6=v(()=>{"use strict";v6()});import{createHash as H8n}from"node:crypto";import{createWriteStream as q8n,existsSync as SEe,readFileSync as B8n,unlinkSync as _Rt}from"node:fs";import{join as eU,resolve as pRt}from"node:path";function z8n(e){return!(!e||e==="application/octet-stream")}function mRt(e){return typeof e!="string"?!1:EEe.test(e)}function G8n(e){let t=e.lastIndexOf(".");return t<0?"":e.slice(t).toLowerCase()}function V8n(e){if(!e)return"";let t=e.indexOf(";");return(t<0?e:e.slice(0,t)).trim().toLowerCase()}function gRt(e){return bEe.has(G8n(e))}function yEe(){let e=process.env.HAIKU_UPLOAD_MAX_BYTES,t;if(e===void 0)t=hRt;else{let n=Number.parseInt(e,10);t=!Number.isFinite(n)||n<=0?hRt:n}return t>A6?(Ke("haiku.upload.cap_clamped",{env_value:String(t),hard_cap:String(A6)}),A6):Math.min(t,A6)}function yRt(e,t){try{let n=eU(ce(e),"stages",t,"state.json");if(!SEe(n))return!1;let r=B8n(n,"utf-8"),s=JSON.parse(r).status;return s==="complete"||s==="sealed"}catch{return!1}}function SRt(e){return _1(ce(e))}function bRt(e){return E1(ce(e))}async function ERt(e,t,n){let r=eU(t,`.upload-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}.tmp`),i=H8n("sha256"),s=0,o=q8n(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{_Rt(r)}catch{}throw c}),{tmpPath:r,sha256:i.digest("hex"),bytes:s}}async function vRt(e){await e.register(async t=>{await t.register(TRt.default,{limits:{fileSize:yEe()+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(!yn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!cx(n,r,i))return;if(!Ua(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(SRt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(bRt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=yEe(),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(!mRt(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:EEe.source});return}let d=gRt(l.filename),f=gRt(a);if(d||f){r.status(415).send({error:"unsupported_media_type",code:"unsupported_media_type",message:`Files with extensions ${Array.from(bEe).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(bEe)});return}let p=V8n(l.mimetype);if(!z8n(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(!yn(o)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!$h(i,o)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(yRt(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=av(`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=ce(i),S=eU(b,g),E=S.substring(0,S.lastIndexOf("/")),_=pRt(S),T=pRt(eU(b,y));if(!_.startsWith(T)){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let R=SEe(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 ERt(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=yv(b,E,A,S);if(!P.ok){V0(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=Ub(b,o),C=Q1(N,1),L=new Date().toISOString();await jv(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 $1(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(!Gn(n,r,null))return;let{intent:i}=n.params;if(!yn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!cx(n,r,i))return;if(!Ua(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(SRt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(bRt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=yEe(),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(!mRt(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:EEe.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(!yn(a)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!$h(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(yRt(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}}let d=ce(i),f=a!==null?`stages/${a}/knowledge/${l}`:`knowledge/${l}`,p=eU(d,f),h=p.substring(0,p.lastIndexOf("/"));if(SEe(p)){r.status(409).send({error:"filename_collision",code:"filename_collision"});return}let g=null,y,b;try{let k=await ERt(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=yv(d,h,g,p);if(!S.ok){V0(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?T1(d):Ub(d,a)}catch(k){if(k instanceof Vd){try{_Rt(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=Q1(_,1),A=new Date().toISOString();await jv(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 $1(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 TRt,hRt,A6,bEe,EEe,RRt=v(()=>{"use strict";TRt=Re(cRt(),1);R6();P0();v6();XY();ze();vo();qg();Pv();hRt=50*1024*1024,A6=50*1024*1024,bEe=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);EEe=/^[\w][\w\-.@ ]{0,127}$/});function ARt(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=Xh(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(!Xh(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>=G1){Vb(`upgrade REJECT session=${i} reason=ws_session_cap size=${Yu.size} cap=${G1}`),n.close(1013,"session cap reached");return}Yu.set(i,n),Vb(`upgrade ACCEPT session=${i}`);let o=null,a=s.session_type==="review"?s:null;a?.intent_slug&&(o=hTt(a.intent_slug,c=>{em(i,{type:"intent-event",session_id:i,event:c})})),n.on("message",c=>{if(!uvt(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");lvt(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 wRt=v(()=>{"use strict";hx();$c();Qh();h6()});import{randomUUID as W8n}from"node:crypto";function K8n(){return _Ee}function Y8n(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 Z8n(){let e=(0,CRt.default)({logger:!1,bodyLimit:wD,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 W8n()},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(ORt.default,{origin:(t,n)=>{n(null,Y8n(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(PRt.default,{max:t,timeWindow:n})}return await e.register(NRt.default,{options:{maxPayload:64*1024}}),e.addHook("onSend",async(t,n,r)=>{let i=_be((t.url??"/").split("?")[0]);if(!i||!D1(i)||n.statusCode>=400)return r;try{return await $_t(t,n,r)}catch{return r}}),X_t(e,K8n),M_t(e),pvt(e),fTt(e),aTt(e),await vRt(e),j_t(e),z_t(e),Z_t(e),ARt(e),e}function xRt(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 Yb(){if(Kb&&Wb!==null)return Wb;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."),Kb=await Z8n();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 Kb.listen({host:t,port:0});Kb.server.maxConnections=IRt;let r=n.match(/^https?:\/\/(\[?[^\]]*\]?|[^:]+):(\d+)/);if(r&&(Wb=Number.parseInt(r[2],10),xRt(r[1].replace(/^\[|\]$/g,""))),Wb===null){let i=Kb.server.address();i&&typeof i=="object"&&(Wb=i.port,xRt(i.address))}return console.error(`Review HTTP server listening on http://127.0.0.1:${Wb} (maxConnections=${IRt}, maxWsSessions=${G1})`),_Ee=!0,Wb}async function MRt(){if(Kb)try{for(let e of Array.from(Yu.keys()))try{Dv(e,"shutdown")}catch{}await Kb.close()}finally{Kb=null,Wb=null,_Ee=!1}}var ORt,PRt,NRt,CRt,kRt,IRt,Kb,Wb,_Ee,w6=v(()=>{"use strict";ORt=Re(Z8e(),1),PRt=Re(u7e(),1),NRt=Re(HXe(),1),CRt=Re(mut(),1);vT();Ci();H_t();G_t();ybe();J_t();Q_t();eTt();cTt();pTt();hvt();RRt();h6();wRt();Qh();kRt=256,IRt=(()=>{let e=process.env.HAIKU_MAX_CONNECTIONS;if(e===void 0)return kRt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?kRt:Math.max(t,1)})(),Kb=null,Wb=null,_Ee=!1});import{execFileSync as J8n}from"node:child_process";import{cpSync as DRt,existsSync as REe,mkdirSync as TEe}from"node:fs";import{homedir as LRt}from"node:os";import{join as AEe}from"node:path";function $8n(){return AEe(LRt(),".claude","plugins","npm-cache","node_modules","haiku-method")}function e7n(e){let t=e??nn();if(!t)return{removed:!0,root:"",missingPaths:[""]};let n=[];for(let r of X8n)REe(AEe(t,r))||n.push(r);return{removed:n.length>0,root:t,missingPaths:n}}function t7n(){if(ud==="dev")return{ok:!1,method:"skipped",reason:"dev_build_no_npm_source"};let e=nn();if(!e)return{ok:!1,method:"skipped",reason:"no_target_path"};let t=$8n();if(REe(t))try{return TEe(e,{recursive:!0}),DRt(t,e,{recursive:!0,force:!0}),{ok:!0,method:"npm-cache-copy"}}catch(r){}let n=AEe(LRt(),".claude","plugins","npm-cache");try{return TEe(n,{recursive:!0}),J8n("npm",["install",`haiku-method@${ud}`,"--prefix",n],{encoding:"utf8",timeout:6e4,stdio:"pipe"}),REe(t)?(TEe(e,{recursive:!0}),DRt(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 URt(e){let t=Date.now();if(t-vEe{"use strict";Ci();sh();p_();X8n=["studios","schemas",".claude-plugin/plugin.json"],Q8n=5e3,vEe=0});var Rt=v(()=>{"use strict"});var n7n,r7n,jRt,HRt=v(()=>{"use strict";gt();ht();Rt();n7n=new Te({autoEscape:!1,useWith:!0}),r7n=ie("@canon:feedback/changes_requested"),jRt=({slug:e,action:t})=>{let n=t.annotations,r=t.message||"No details provided.";return n7n.renderString(r7n,{slug:e,message:r,annotations:n})}});var i7n,s7n,qRt,BRt=v(()=>{"use strict";gt();ht();Rt();i7n=new Te({autoEscape:!1,useWith:!0}),s7n=ie("@canon:feedback/close_feedback"),qRt=({slug:e,action:t})=>{let n=t.stage||"",r=t.feedback_id||"";return i7n.renderString(s7n,{slug:e,stage:n,fbId:r})}});var o7n,a7n,zRt,GRt=v(()=>{"use strict";gt();ts();ht();Rt();o7n=new Te({autoEscape:!1,useWith:!0}),a7n=ie("@canon:feedback/feedback_question"),zRt=e=>{let t=e.action;return o7n.renderString(a7n,{slug:e.slug,stage:t.stage,feedbackId:t.feedback_id,feedbackPath:t.feedback_path,isAutopilot:BI(e.dir)==="autopilot"})}});var c7n,u7n,VRt,WRt=v(()=>{"use strict";gt();ht();Rt();c7n=new Te({autoEscape:!1,useWith:!0}),u7n=ie("@canon:feedback/fix_quality_gates"),VRt=({slug:e,action:t})=>{let n=t.stage||"",r=n?`, stage: "${n}"`:"",i=t.message||"No details provided.";return c7n.renderString(u7n,{slug:e,stageHint:r,message:i})}});import{existsSync as k6}from"node:fs";import{join as l7n}from"node:path";var KRt,d7n,f7n,YRt,ZRt=v(()=>{"use strict";gt();_f();ze();Kn();vl();ts();ht();Fh();Rt();KRt=new Te({autoEscape:!1,useWith:!0}),d7n=ie("@canon:feedback/intent_completion_fix"),f7n=ie("@canon:feedback/intent_completion_fix","subagent.eta.md"),YRt=({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=ve(),u=zD(t),l=s.map(({feedback_id:f,feedback_file:p,feedback_title:h,bolt:m,worktree:g,branch:y})=>{let b=l7n(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&&k6(x)?Rl(x,`Fix-hat mandate: ${A}`):"",N=x&&k6(x)?UI(LI(x)):"",C=k6(b)?Rl(b,`Feedback: ${f} \u2014 ${h}`):"",L=k6(b)?FI(b):"",G=KRt.renderString(f7n,{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:Ee(),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{E3({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 KRt.renderString(d7n,{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 I6}from"node:fs";import{join as x6}from"node:path";var JRt,p7n,h7n,XRt,QRt=v(()=>{"use strict";gt();Ci();_f();ze();Kn();vl();ns();ts();ht();Fh();Rt();JRt=new Te({autoEscape:!1,useWith:!0}),p7n=ie("@canon:feedback/review_fix"),h7n=ie("@canon:feedback/review_fix","subagent.eta.md"),XRt=({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=ve(),l=Du(t,r),d=si(t),f=d?d.dir:t,p=nn(),h=Ff(x6(f,"stages",r,"STAGE.md")),m=o.map(({feedback_id:y,feedback_file:b,feedback_title:S,bolt:E,worktree:_,branch:T})=>{let R=x6(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?x6(p,"studios",f,"stages",r,"hats",`${C}.md`):null,W=N===i.length-1,$=h?Rl(h,`Stage scope: ${r}`):"",q=G&&I6(G)?Rl(G,`Hat mandate: ${C}`):"",Q=G&&I6(G)?UI(LI(G)):"",B=I6(R)?Rl(R,`Feedback: ${y} \u2014 ${S}`):"",F=I6(R)?FI(R):"",V=JRt.renderString(h7n,{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:Ee(),isLast:W}),U=x6(nn(),"studios",t,"stages",r,"hats",`${C}.md`),M=ju({mandatePath:U,studio:t,stage:r}),j=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{E3({unit:`fix-${y}`,hat:C,bolt:E,intent:e,stage:r},k)}catch{}k=j,N===0&&(P=j)}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 JRt.renderString(p7n,{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 $Rt,readdirSync as eAt,readFileSync as tAt}from"node:fs";import{join as _x}from"node:path";function y7n(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?_x(cr(t,n),"feedback"):_x(ce(t),"feedback");try{let p=$Rt(f)?eAt(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=tAt(_x(f,p[0]),"utf8");o=(0,wEe.default)(h).data.model}}catch{}}let a=n?Du(r,n)?.[i]:void 0,c=n?$i(r,n):void 0,u=Cd(r),l=fb({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}var wEe,m7n,g7n,nAt,rAt=v(()=>{"use strict";gt();wEe=Re(Kt(),1);Ci();pb();ze();Kn();Ype();ts();ht();Fh();Rt();m7n=new Te({autoEscape:!1,useWith:!0}),g7n=ie("@canon:feedback/start_feedback_hat");nAt=({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?_x(cr(e,s.stage),"feedback"):_x(ce(e),"feedback");if(!$Rt(a))return!0;let c=eAt(a).filter(u=>u.startsWith(o)&&u.endsWith(".md"));if(c.length===0)return!0;try{let u=tAt(_x(a,c[0]),"utf8"),l=(0,wEe.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=y7n({slug:e,studio:t,stage:s.stage,hat:s.hat,feedbackId:s.feedback_id}),a=VI({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?hb(t,s.stage,s.hat):null,dispatch_block:a}});return m7n.renderString(g7n,{slug:e,dispatches:i,dispatchCount:i.length,plural:i.length===1?"":"s",batchDirective:i.length>0?zI(i.length,"fix-hat subagents"):"",fixLoopContractsBlock:bs("workflow-contracts-fix-loop")})}});var S7n,b7n,iAt,sAt=v(()=>{"use strict";gt();ht();Rt();S7n=new Te({autoEscape:!1,useWith:!0}),b7n=ie("@canon:global/complete"),iAt=({action:e})=>S7n.renderString(b7n,{message:e.message??""})});var E7n,_7n,oAt,aAt=v(()=>{"use strict";gt();ht();Rt();E7n=new Te({autoEscape:!1,useWith:!0}),_7n=ie("@canon:global/error"),oAt=({action:e})=>E7n.renderString(_7n,{message:e.message??""})});var T7n,v7n,cAt,uAt=v(()=>{"use strict";gt();ht();Rt();T7n=new Te({autoEscape:!1,useWith:!0}),v7n=ie("@canon:global/loop_halted"),cAt=({action:e})=>{let t=e;return T7n.renderString(v7n,{message:t.message??"",loop:t.loop??"repeat",intent:t.intent??""})}});function w7n(e){let t=e.match(/^---\n[\s\S]*?\n---\n?/);return(t?e.slice(t[0].length):e).trim()}var R7n,A7n,lAt,dAt=v(()=>{"use strict";gt();Kn();ht();Rt();R7n=new Te({autoEscape:!1,useWith:!0}),A7n=ie("@canon:intent/reflection/record_reflection");lAt=({slug:e,studio:t})=>{let n=t?Object.entries(uft(t)).map(([r,i])=>({name:r,body:w7n(i)})):[];return R7n.renderString(A7n,{slug:e,dimensions:n})}});var k7n,I7n,fAt,pAt=v(()=>{"use strict";gt();ht();Rt();k7n=new Te({autoEscape:!1,useWith:!0}),I7n=ie("@canon:intent/repair/external_review_requested"),fAt=({action:e})=>k7n.renderString(I7n,{message:e.message??""})});var x7n,O7n,hAt,mAt=v(()=>{"use strict";gt();ht();Rt();x7n=new Te({autoEscape:!1,useWith:!0}),O7n=ie("@canon:intent/repair/revise_unit_specs"),hAt=({action:e})=>x7n.renderString(O7n,{message:e.message??""})});var P7n,N7n,gAt,yAt=v(()=>{"use strict";gt();ht();Rt();P7n=new Te({autoEscape:!1,useWith:!0}),N7n=ie("@canon:intent/repair/safe_intent_repair"),gAt=({slug:e,action:t})=>{let n=t.synthesized_stages||[],r=t.phase_regressed||!1,i=t.message||"";return P7n.renderString(N7n,{slug:e,message:i,synthesizedStages:n,phaseWasRegressed:r})}});import{existsSync as C7n,readFileSync as M7n}from"node:fs";import{join as D7n}from"node:path";function F7n(e){let t=D7n(ce(e),"intent.md");return C7n(t)&&re(M7n(t,"utf8")).data.draft_pr_url||""}function j7n(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 H7n(e,t,n){let r=L7n[n],i="",s;if(r){let l=O6.renderString(r,{slug:e}).trim();i=`**Read** \`${_b({intent:e,kind:"engine-body",name:n,body:l})}\``}else{let l=Mh(t,void 0,n);l&&(i=kr({resolveBody:()=>l,toolName:"haiku_read_review_agent",toolArgs:{studio:t,role:n},intent:e,kind:"mandate",name:n}),s=ju({mandatePath:yg(t)[n],studio:t}))}let o=FT.has(n),a=o?F7n(e):"",c=i?O6.renderString(U7n,{slug:e,role:n,mandateRef:i,doctrineRef:UT.has(n)?bs("runtime-verification"):"",prInteraction:o,proofTargetPrUrl:a,existingFeedback:jI(e,""),decisions:HI(e)}):j7n(e,n);return{dispatchBlock:Ti({unit:"review",hat:n,bolt:1,intent:e,agentType:"general-purpose",model:s,promptBody:c,heading:`### Subagent: \`${n}\``,omitBolt:!0}),isEngine:!!r}}var L7n,O6,SAt,U7n,bAt,EAt=v(()=>{"use strict";gt();ze();Kn();vl();ts();ht();Fh();Rt();L7n={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")},O6=new Te({autoEscape:!1,useWith:!0}),SAt=ie("@canon:intent/review/intent_review"),U7n=ie("@canon:intent/review/intent_review","subagent.eta.md");bAt=({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 O6.renderString(SAt,{slug:e,role:"user",roles:["user"],dispatchCount:1,mandatePath:"",dispatchBlock:"",isEngineRole:!1,description:""});let i=r.map(o=>H7n(e,t,o.role)),s=i.map(o=>o.dispatchBlock).join(` -`);return E5.renderString(iRt,{slug:e,role:r[0]?.role??"",roles:r.map(o=>o.role),dispatchCount:r.length,mandatePath:s,dispatchBlock:s,isEngineRole:i[0]?.isEngine??!1,description:""})}});var iJn,sJn,aRt,cRt=v(()=>{"use strict";gt();ht();At();iJn=new Te({autoEscape:!1,useWith:!0}),sJn=ie("@canon:intent/seal/intent_approved"),aRt=({slug:e})=>iJn.renderString(sJn,{slug:e})});var oJn,aJn,uRt,lRt=v(()=>{"use strict";gt();yr();ze();ht();At();oJn=new Te({autoEscape:!1,useWith:!0}),aJn=ie("@canon:intent/seal/intent_complete"),uRt=({slug:e})=>{let t=Ae(),n=t?Yo():"";return oJn.renderString(aJn,{slug:e,gitMode:t,mainline:n})}});import{existsSync as cJn,readFileSync as uJn}from"node:fs";import{join as lJn}from"node:path";var dRt,dJn,fJn,fRt,pRt=v(()=>{"use strict";gt();dRt=Se(Kt(),1);ht();At();dJn=new Te({autoEscape:!1,useWith:!0}),fJn=ie("@canon:intent/seal/pending_seal"),fRt=({slug:e,action:t,dir:n})=>{let r=t.default_branch||"the default branch",i="";try{let s=lJn(n,"intent.md");if(cJn(s)){let o=(0,dRt.default)(uJn(s,"utf8")).data;typeof o.draft_pr_url=="string"&&(i=o.draft_pr_url)}}catch{}return dJn.renderString(fJn,{slug:e,defaultBranch:r,prUrl:i,intentMain:`haiku/${e}/main`})}});var pJn,hJn,hRt,mRt=v(()=>{"use strict";gt();ts();ht();At();pJn=new Te({autoEscape:!1,useWith:!0}),hJn=ie("@canon:intent/seal/seal_intent"),hRt=({slug:e,dir:t})=>pJn.renderString(hJn,{slug:e,providerBlock:MI("seal_intent",t)})});var mJn,gJn,gRt,yRt=v(()=>{"use strict";gt();ht();At();mJn=new Te({autoEscape:!1,useWith:!0}),gJn=ie("@canon:intent/setup/migrated"),gRt=({action:e})=>mJn.renderString(gJn,{message:e.message??""})});var yJn,SJn,SRt,ERt=v(()=>{"use strict";gt();ht();At();yJn=new Te({autoEscape:!1,useWith:!0}),SJn=ie("@canon:intent/setup/select_studio"),SRt=({slug:e,action:t})=>{let r=(t.available_studios??[]).map(s=>{let o=s.slug&&s.slug!==s.name?` (\`${s.slug}\`)`:"",a=s.description?` \u2014 ${s.description}`:"";return`- **${s.name}**${o}${a}`}).join(` -`),i=`_(no studios found in the registry \u2014 call \`haiku_select_studio { intent: "${e}" }\` to surface the conversational fallback)_`;return yJn.renderString(SJn,{slug:e,studioListing:r,emptyFallback:i})}});import{existsSync as EJn,readFileSync as bJn}from"node:fs";import{join as _Jn}from"node:path";function RJn(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=_Jn(ar(e,t),"units",r);if(!EJn(i))return[];try{let{data:s}=(0,bRt.default)(bJn(i,"utf8")),o=s.outputs;return Array.isArray(o)?o.filter(a=>typeof a=="string"):[]}catch{return[]}}function wJn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=AJn[i],a="",c;if(o){let p=ybe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${EE({intent:t,stage:r||void 0,kind:"engine-body",name:i,body:p})}\``}else{a=kr({resolveBody:()=>Ch(n,r,i),toolName:"haiku_read_review_agent",toolArgs:{studio:n,stage:r,role:i},intent:t,stage:r||void 0,kind:"mandate",name:i});let p=OL(n,r,i);p&&(c=Fu({mandatePath:p,studio:n,stage:r}))}let u=r?s.flatMap(p=>RJn(t,r,p)).filter((p,h,m)=>m.indexOf(p)===h):[],l=CT.has(i)?Es("runtime-verification"):"",d=ybe.renderString(vJn,{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 bRt,ybe,TJn,vJn,AJn,_Rt,TRt=v(()=>{"use strict";gt();bRt=Se(Kt(),1);ze();Kn();Tl();ts();ht();Dh();At();ybe=new Te({autoEscape:!1,useWith:!0}),TJn=ie("@canon:stage/approve/dispatch_approval"),vJn=ie("@canon:stage/approve/dispatch_approval","subagent.eta.md"),AJn={spec:ie("@canon:stage/approve/dispatch_approval","engine-bodies/spec.eta.md"),continuity:ie("@canon:stage/approve/dispatch_approval","engine-bodies/continuity.eta.md"),"cross-stage-consistency":ie("@canon:stage/approve/dispatch_approval","engine-bodies/cross_stage_consistency.eta.md")};_Rt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=Array.isArray(n.dispatches)?n.dispatches:[{role:n.role||"",units:n.units||[]}],s=i.map(c=>wJn({slug:e,studio:t,stage:r,role:c.role,units:c.units})),o=s.map(c=>c.dispatchBlock).join(` +`);return O6.renderString(SAt,{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 q7n,B7n,_At,TAt=v(()=>{"use strict";gt();ht();Rt();q7n=new Te({autoEscape:!1,useWith:!0}),B7n=ie("@canon:intent/seal/intent_approved"),_At=({slug:e})=>q7n.renderString(B7n,{slug:e})});var z7n,G7n,vAt,RAt=v(()=>{"use strict";gt();ar();ze();ht();Rt();z7n=new Te({autoEscape:!1,useWith:!0}),G7n=ie("@canon:intent/seal/intent_complete"),vAt=({slug:e})=>{let t=Ee(),n=t?Zo():"";return z7n.renderString(G7n,{slug:e,gitMode:t,mainline:n})}});import{existsSync as V7n,readFileSync as W7n}from"node:fs";import{join as K7n}from"node:path";var AAt,Y7n,Z7n,wAt,kAt=v(()=>{"use strict";gt();AAt=Re(Kt(),1);ht();Rt();Y7n=new Te({autoEscape:!1,useWith:!0}),Z7n=ie("@canon:intent/seal/pending_seal"),wAt=({slug:e,action:t,dir:n})=>{let r=t.default_branch||"the default branch",i="";try{let s=K7n(n,"intent.md");if(V7n(s)){let o=(0,AAt.default)(W7n(s,"utf8")).data;typeof o.draft_pr_url=="string"&&(i=o.draft_pr_url)}}catch{}return Y7n.renderString(Z7n,{slug:e,defaultBranch:r,prUrl:i,intentMain:`haiku/${e}/main`})}});var J7n,X7n,IAt,xAt=v(()=>{"use strict";gt();ts();ht();Rt();J7n=new Te({autoEscape:!1,useWith:!0}),X7n=ie("@canon:intent/seal/seal_intent"),IAt=({slug:e,dir:t})=>J7n.renderString(X7n,{slug:e,providerBlock:qI("seal_intent",t)})});var Q7n,$7n,OAt,PAt=v(()=>{"use strict";gt();ht();Rt();Q7n=new Te({autoEscape:!1,useWith:!0}),$7n=ie("@canon:intent/setup/migrated"),OAt=({action:e})=>Q7n.renderString($7n,{message:e.message??""})});var eJn,tJn,NAt,CAt=v(()=>{"use strict";gt();ht();Rt();eJn=new Te({autoEscape:!1,useWith:!0}),tJn=ie("@canon:intent/setup/select_studio"),NAt=({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 eJn.renderString(tJn,{slug:e,studioListing:r,emptyFallback:i})}});import{existsSync as MAt,readFileSync as DAt}from"node:fs";import{join as LAt}from"node:path";function rJn(e,t){let n=LAt(ce(e),"intent.md");if(!MAt(n))return"";let r=re(DAt(n,"utf8")).data,i=r.mode||"";if(t&&nJn.has(i)){let s=Tv(e,t)?.url;if(s)return s}return r.draft_pr_url||""}function aJn(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=LAt(cr(e,t),"units",r);if(!MAt(i))return[];try{let{data:s}=(0,UAt.default)(DAt(i,"utf8")),o=s.outputs;return Array.isArray(o)?o.filter(a=>typeof a=="string"):[]}catch{return[]}}function cJn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=oJn[i],a="",c;if(o){let m=kEe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${_b({intent:t,stage:r||void 0,kind:"engine-body",name:i,body:m})}\``}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 m=qD(n,r,i);m&&(c=ju({mandatePath:m,studio:n,stage:r}))}let u=r?s.flatMap(m=>aJn(t,r,m)).filter((m,g,y)=>y.indexOf(m)===g):[],l=UT.has(i)?bs("runtime-verification"):"",d=FT.has(i),f=d?rJn(t,r):"",p=kEe.renderString(sJn,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,outputPaths:u,doctrineRef:l,prInteraction:d,proofTargetPrUrl:f,existingFeedback:jI(t,r),decisions:HI(t)});return{dispatchBlock:Ti({unit:`approval-${i}`,hat:"approval",bolt:1,intent:t,stage:r||void 0,agentType:"general-purpose",model:c,promptBody:p,heading:`### Subagent: \`${i}\` (post-execute approval)`,omitBolt:!0}),isEngineRole:o!==void 0}}var UAt,nJn,kEe,iJn,sJn,oJn,FAt,jAt=v(()=>{"use strict";gt();UAt=Re(Kt(),1);ze();Kn();vl();ts();ht();Fh();Rt();nJn=new Set(["discrete","discrete-hybrid"]);kEe=new Te({autoEscape:!1,useWith:!0}),iJn=ie("@canon:stage/approve/dispatch_approval"),sJn=ie("@canon:stage/approve/dispatch_approval","subagent.eta.md"),oJn={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")};FAt=({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=>cJn({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(TJn,{slug:e,stage:r,dispatches:i,dispatchCount:i.length,role:i[0]?.role??"",units:a,unitCount:a.length,isEngineRole:s[0]?.isEngineRole??!1,dispatchBlock:o})}});var kJn,IJn,vRt,ARt=v(()=>{"use strict";gt();ht();At();kJn=new Te({autoEscape:!1,useWith:!0}),IJn=ie("@canon:stage/approve/dispatch_quality_gates"),vRt=({slug:e,action:t})=>{let n=t.stage||"",r=t.units||[],s=(t.scope||"")==="intent"||n==="";return kJn.renderString(IJn,{slug:e,stage:n,units:r,unitCount:r.length,unitsJson:JSON.stringify(r),intentScope:s})}});var xJn,OJn,RRt,wRt=v(()=>{"use strict";gt();ht();At();xJn=new Te({autoEscape:!1,useWith:!0}),OJn=ie("@canon:stage/complete/advance_phase"),RRt=({slug:e,action:t})=>{let n=t.to_phase;return xJn.renderString(OJn,{slug:e,toPhase:n})}});var NJn,PJn,kRt,IRt=v(()=>{"use strict";gt();ht();At();NJn=new Te({autoEscape:!1,useWith:!0}),PJn=ie("@canon:stage/complete/advance_stage"),kRt=({slug:e,action:t})=>{let n=t.stage,r=t.next_stage;return NJn.renderString(PJn,{slug:e,stage:n,nextStage:r})}});var CJn,MJn,xRt,ORt=v(()=>{"use strict";gt();ts();ht();At();CJn=new Te({autoEscape:!1,useWith:!0}),MJn=ie("@canon:stage/complete/complete_stage"),xRt=({slug:e,action:t,dir:n})=>{let r=t.stage||"";return CJn.renderString(MJn,{slug:e,stage:r,providerBlock:MI("complete_stage",n)})}});var LJn,DJn,NRt,PRt=v(()=>{"use strict";gt();ht();At();LJn=new Te({autoEscape:!1,useWith:!0}),DJn=ie("@canon:stage/complete/record_observations"),NRt=({slug:e,action:t})=>{let n=t.stage||"";return LJn.renderString(DJn,{slug:e,stage:n})}});import{execFileSync as UJn,execSync as CRt}from"node:child_process";import{existsSync as bc,readdirSync as sp,readFileSync as b5,statSync as FJn}from"node:fs";import{join as Er,resolve as jJn}from"node:path";function K1(e){if(!bc(e))return{};let t=b5(e,"utf8"),{data:n}=re(t);return n}function MRt(e,t,n){let r=nn();for(let i of[Er(process.cwd(),".haiku","studios"),Er(r,"studios")]){let s=Er(i,n,"stages",t,"outputs");if(!bc(s))continue;let o=sp(s).filter(c=>c.endsWith(".md")),a=[];for(let c of o){let u=b5(Er(s,c),"utf8"),{data:l}=(0,Sbe.default)(u);if(!(l.required!==!1))continue;let f=l.location||"";if(!f||f.startsWith("("))continue;let p=f.replace("{intent-slug}",e),h=Er(process.cwd(),p);p.endsWith("/")?(!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 kEe.renderString(iJn,{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 uJn,lJn,HAt,qAt=v(()=>{"use strict";gt();ht();Rt();uJn=new Te({autoEscape:!1,useWith:!0}),lJn=ie("@canon:stage/approve/dispatch_quality_gates"),HAt=({slug:e,action:t})=>{let n=t.stage||"",r=t.units||[],s=(t.scope||"")==="intent"||n==="";return uJn.renderString(lJn,{slug:e,stage:n,units:r,unitCount:r.length,unitsJson:JSON.stringify(r),intentScope:s})}});var dJn,fJn,BAt,zAt=v(()=>{"use strict";gt();ht();Rt();dJn=new Te({autoEscape:!1,useWith:!0}),fJn=ie("@canon:stage/complete/advance_phase"),BAt=({slug:e,action:t})=>{let n=t.to_phase;return dJn.renderString(fJn,{slug:e,toPhase:n})}});var pJn,hJn,GAt,VAt=v(()=>{"use strict";gt();ht();Rt();pJn=new Te({autoEscape:!1,useWith:!0}),hJn=ie("@canon:stage/complete/advance_stage"),GAt=({slug:e,action:t})=>{let n=t.stage,r=t.next_stage;return pJn.renderString(hJn,{slug:e,stage:n,nextStage:r})}});var mJn,gJn,WAt,KAt=v(()=>{"use strict";gt();ts();ht();Rt();mJn=new Te({autoEscape:!1,useWith:!0}),gJn=ie("@canon:stage/complete/complete_stage"),WAt=({slug:e,action:t,dir:n})=>{let r=t.stage||"";return mJn.renderString(gJn,{slug:e,stage:r,providerBlock:qI("complete_stage",n)})}});var yJn,SJn,YAt,ZAt=v(()=>{"use strict";gt();ht();Rt();yJn=new Te({autoEscape:!1,useWith:!0}),SJn=ie("@canon:stage/complete/record_observations"),YAt=({slug:e,action:t})=>{let n=t.stage||"";return yJn.renderString(SJn,{slug:e,stage:n})}});import{execFileSync as bJn,execSync as JAt}from"node:child_process";import{existsSync as _c,readdirSync as op,readFileSync as P6,statSync as EJn}from"node:fs";import{join as br,resolve as _Jn}from"node:path";function tU(e){if(!_c(e))return{};let t=P6(e,"utf8"),{data:n}=re(t);return n}function XAt(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=P6(br(s,c),"utf8"),{data:l}=(0,IEe.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 _5(e,t,n){let r=[],i=n.annotations;if(i?.pins)for(let s of i.pins){if(!s.text)continue;let o=s.text.length>120?`${s.text.slice(0,117)}...`:s.text,a=Qo(e,t,{title:o,body:s.text,origin:"user-visual",author:"user",source_ref:`pin:${s.x},${s.y}`});r.push(a.feedback_id)}if(i?.comments)for(let s of i.comments){if(!s.comment)continue;let o=s.comment.length>120?`${s.comment.slice(0,117)}...`:s.comment,a=s.selectedText?s.selectedText.split(` +The execution phase must produce these artifacts. Go back and create them, then call haiku_run_next again.`};break}return null}function N6(e,t,n){let r=[],i=n.annotations;if(i?.pins)for(let s of i.pins){if(!s.text)continue;let o=s.text.length>120?`${s.text.slice(0,117)}...`:s.text,a=Qo(e,t,{title:o,body:s.text,origin:"user-visual",author:"user",source_ref:`pin:${s.x},${s.y}`});r.push(a.feedback_id)}if(i?.comments)for(let s of i.comments){if(!s.comment)continue;let o=s.comment.length>120?`${s.comment.slice(0,117)}...`:s.comment,a=s.selectedText?s.selectedText.split(` `).map(p=>`> ${p}`).join(` `):"",u=[s.location?`**Location:** \`${s.location}\` (paragraph ${s.paragraph})`:`**Location:** paragraph ${s.paragraph}`];a&&u.push("","**Selected text:**","",a),u.push("","**Comment:**","",s.comment);let l=u.join(` -`),d=s.location?`${s.location}:paragraph=${s.paragraph}`:`paragraph:${s.paragraph}`,f=Qo(e,t,{title:o,body:l,origin:"user-visual",author:"user",source_ref:d});r.push(f.feedback_id)}if(n.feedback?.trim()){let s=n.feedback.trim(),o=s.length>120?`${s.slice(0,117)}...`:s,a=Qo(e,t,{title:o,body:s,origin:"user-chat",author:"user"});r.push(a.feedback_id)}return r.length>0&&wt(t?`feedback: create ${r.join(", ")} from review UI in ${t}`:`feedback: create ${r.join(", ")} from review UI (intent-scope)`),r}function f0(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:()=>B4(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=Df(Er(e,"stages",t,"outputs",`${a.name}.md`)),l=u?` | **Template:** \`${u}\``:"";o.push(`- ${c}${l}`)}}return o.join(` -`)}function LRt(e,t,n){let r=nn();for(let i of[Er(process.cwd(),".haiku","studios"),Er(r,"studios")]){let s=Er(i,n,"stages",t,"discovery");if(!bc(s))continue;let o=sp(s).filter(c=>c.endsWith(".md")),a=[];for(let c of o){let u=b5(Er(s,c),"utf8"),{data:l}=(0,Sbe.default)(u);if(!(l.required!==!1))continue;let f=l.location||"";if(!f||f.startsWith("("))continue;let p=f.replace("{intent-slug}",e),h=Er(process.cwd(),p);p.endsWith("/")?(!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 Tx(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:()=>JK(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 QAt(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=P6(br(s,c),"utf8"),{data:l}=(0,IEe.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 DRt(e,t){let n=Er(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(!HJn.test(o)){o.startsWith("unit-")?/^unit-\d+/.test(o)?/^unit-\d{2,}/.test(o)?i.push({file:o,issue:"slug must be kebab-case (lowercase letters, numbers, hyphens). Expected: unit-NNN-slug.md"}):i.push({file:o,issue:"number must be zero-padded to at least 2 digits (preferred: 3 digits, e.g. `001`, `002`, \u2026, `999`)"}):i.push({file:o,issue:"must have a zero-padded number after 'unit-' (e.g., unit-001-...)"}):i.push({file:o,issue:"must start with 'unit-'"});continue}let a=o.match(/^unit-(\d+)/);if(a){let c=Number.parseInt(a[1],10);s.has(c)?i.push({file:o,issue:`duplicate number ${a[1]} (also used by ${s.get(c)})`}):s.set(c,o)}}if(i.length>0){let o=e.split("/intents/")[1]||"";return{action:"unit_naming_invalid",intent:o,stage:t,violations:i,message:`${i.length} unit file(s) have invalid naming in stage '${t}'. Files MUST be named \`unit-NNN-slug.md\` (e.g., \`unit-001-data-model.md\`; legacy 2-digit \`unit-01-\u2026\` still resolves): +The elaboration phase must produce these artifacts. Go back and create them, then call haiku_run_next again.`};break}return null}function $At(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(!TJn.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 URt(e,t){let n=Er(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=K1(Er(n,s)),a=o.status||"";if(["complete","skipped","failed"].includes(a))continue;(o.inputs||o.refs||[]).length===0&&i.push(s.replace(/\.md$/,""))}if(i.length>0){let s=e.split("/intents/")[1]||"";return{action:"unit_inputs_missing",intent:s,stage:t,missing_units:i,message:`Cannot advance to execution: ${i.length} unit(s) have no \`inputs:\` field. +Rename the files to match the convention, then call \`haiku_run_next { intent: "${o}" }\` again.`}}return null}function ewt(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=tU(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. @@ -1019,7 +1019,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 FRt(e){let t=Er(e,"coverage-decisions.json");if(!bc(t))return new Set;try{let n=JSON.parse(b5(t,"utf8")),r=new Set;for(let i of n.decisions??[])i?.path&&r.add(i.path);return r}catch{return new Set}}function BJn(e,t){let n=[];for(let r of qJn){let i=Er(e,r);if(!bc(i))continue;let s=[""];for(;s.length>0;){let o=s.pop(),a=Er(i,o),c;try{c=sp(a)}catch{continue}for(let u of c){let l=o?`${o}/${u}`:u,d=Er(a,u);try{let f=FJn(d);f.isDirectory()?s.push(l):f.isFile()&&n.push(`${t}/${r}/${l}`)}catch{}}}}return n}function GJn(e){if(!bc(e))return[];let t=[];for(let n of sp(e)){if(!n.endsWith(".md"))continue;let i=K1(Er(e,n)).outputs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.push(s.trim())}return t}function zJn(e){let t=new Set;if(!bc(e))return t;for(let n of sp(e)){if(!n.endsWith(".md"))continue;let r=K1(Er(e,n)),i=r.inputs||r.refs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.add(s.trim())}return t}function jRt(e,t,n){if(n.length===0)return null;let r=Er(e,"stages",t,"units"),i=zJn(r),s=FRt(Er(e,"stages",t)),o=[],a=new Set;for(let u of n){let l=Er(e,"stages",u);if(!bc(l))continue;let d=`stages/${u}`,f=GJn(Er(l,"units")),p=BJn(l,d);for(let h of[...f,...p])a.has(h)||(a.add(h),!i.has(h)&&(s.has(h)||o.push({path:h,from_stage:u})))}if(o.length===0)return null;let c=e.split("/intents/")[1]||"";return{action:"coverage_review_required",intent:c,stage:t,unreferenced:o,message:`Cannot advance past elaborate: ${o.length} prior-stage output(s) are not referenced by any unit's \`inputs:\` in stage '${t}' AND have no entry in \`stages/${t}/coverage-decisions.json\`. Continuity contract: downstream stages must cover upstream deliverables. +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 twt(e){let t=br(e,"coverage-decisions.json");if(!_c(t))return new Set;try{let n=JSON.parse(P6(t,"utf8")),r=new Set;for(let i of n.decisions??[])i?.path&&r.add(i.path);return r}catch{return new Set}}function RJn(e,t){let n=[];for(let r of vJn){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=EJn(d);f.isDirectory()?s.push(l):f.isFile()&&n.push(`${t}/${r}/${l}`)}catch{}}}}return n}function AJn(e){if(!_c(e))return[];let t=[];for(let n of op(e)){if(!n.endsWith(".md"))continue;let i=tU(br(e,n)).outputs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.push(s.trim())}return t}function wJn(e){let t=new Set;if(!_c(e))return t;for(let n of op(e)){if(!n.endsWith(".md"))continue;let r=tU(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 nwt(e,t,n){if(n.length===0)return null;let r=br(e,"stages",t,"units"),i=wJn(r),s=twt(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=AJn(br(l,"units")),p=RJn(l,d);for(let h of[...f,...p])a.has(h)||(a.add(h),!i.has(h)&&(s.has(h)||o.push({path:h,from_stage:u})))}if(o.length===0)return null;let c=e.split("/intents/")[1]||"";return{action:"coverage_review_required",intent:c,stage:t,unreferenced:o,message:`Cannot advance past elaborate: ${o.length} prior-stage output(s) are not referenced by any unit's \`inputs:\` in stage '${t}' AND have no entry in \`stages/${t}/coverage-decisions.json\`. Continuity contract: downstream stages must cover upstream deliverables. For each unreferenced file, EITHER: (a) Call \`haiku_unit_set { intent: "${c}", stage: "${t}", unit: "", field: "inputs", value: [...existing, ""] }\` to add it to a unit's inputs (the canonical path). @@ -1029,8 +1029,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 KJn(e){return!(!VJn.test(e)||WJn.test(e))}function ZJn(e){let t=e.replace(/^.*\//,""),n=t.lastIndexOf(".");return n>0?t.slice(0,n):t}function YJn(e){return e.startsWith(".haiku/")}function JJn(e,t,n){if(t===""||t.length<2)return[];try{return UJn("git",["grep","-lw","--",t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).split(` -`).map(i=>i.trim()).filter(i=>i!==""&&i!==n&&!YJn(i))}catch{return[]}}function HRt(e,t,n){if(t.length===0)return null;let r=[],i=new Set;for(let c of t){let u=Er(e,"stages",c,"units");if(bc(u))for(let l of sp(u)){if(!l.endsWith(".md"))continue;let f=K1(Er(u,l)).outputs||[];for(let p of f)typeof p!="string"||!KJn(p)||i.has(p)||(i.add(p),r.push({path:p,from_stage:c,from_unit:l.replace(/\.md$/,"")}))}}if(r.length===0)return null;let s=new Set;for(let c of t){let u=FRt(Er(e,"stages",c));for(let l of u)s.add(l)}let o=[];for(let c of r){if(s.has(c.path))continue;let u=ZJn(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 xJn(e){return!(!kJn.test(e)||IJn.test(e))}function OJn(e){let t=e.replace(/^.*\//,""),n=t.lastIndexOf(".");return n>0?t.slice(0,n):t}function PJn(e){return e.startsWith(".haiku/")}function NJn(e,t,n){if(t===""||t.length<2)return[];try{return bJn("git",["grep","-lw","--",t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).split(` +`).map(i=>i.trim()).filter(i=>i!==""&&i!==n&&!PJn(i))}catch{return[]}}function rwt(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=tU(br(u,l)).outputs||[];for(let p of f)typeof p!="string"||!xJn(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=twt(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=OJn(c.path);NJn(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. @@ -1040,119 +1040,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 qRt(e,t){let n=ve(),r=Er(n,"intents",e),i=Er(r,"intent.md"),s;try{s=CRt("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{s=process.cwd()}function o(p){let h=K1(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=Er(r,"stages",t,"units");if(bc(c))for(let p of sp(c).filter(h=>h.startsWith("unit-")&&h.endsWith(".md")))a.push(...o(Er(c,p)));let u=new Set,l=a.filter(p=>{let h=`${p.command}::${p.dir}`;return u.has(h)?!1:(u.add(h),!0)}),d=(()=>{let p=process.env.HAIKU_QUALITY_GATE_TIMEOUT_MS,h=p?Number.parseInt(p,10):NaN;return Number.isFinite(h)&&h>0?h:12e4})(),f=[];for(let p=0;p{"use strict";Sbe=Se(Kt(),1);Ci();ze();Kn();ts();ns();HJn=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;qJn=["artifacts","outputs","knowledge","discovery"];VJn=/\.(ts|tsx|js|jsx|mjs|cjs)$/i,WJn=/\.(test|spec)\.[a-z]+$|\/__tests__\/|\/test\//i});import{existsSync as zg,mkdirSync as XJn,readdirSync as QJn,readFileSync as zRt,renameSync as $Jn}from"node:fs";import{dirname as e7n,join as eu}from"node:path";function BRt(e){if(!zg(e))return{};let t=zRt(e,"utf8"),{data:n}=re(t);return n}function Ebe(e,t,n,r){let i=Xdt(_l(e,t),eu(n,"stages",t,"artifacts"),{studio:e,stage:t}),s=Object.keys(i).sort();if(s.length===0)return null;let o=s.map(a=>{let c=a.split(/[-_]/).map(l=>l.length===0?l:l[0].toUpperCase()+l.slice(1)).join(" "),u=kr({resolveBody:()=>Ch(e,t,a),toolName:"haiku_read_review_agent",toolArgs:{studio:e,stage:t,role:a},intent:r,stage:t,kind:"review-agent",name:a});return`- **${c}** \u2014 ${u}`});return[n7n,"",...o].join(` -`).trimEnd()}function GRt(){let e=Wx();if(e.length===0)return null;let t=e.map(n=>{let r=n.description?` \u2014 ${n.description}`:"";return`- \`/${n.slug}\`${r}`});return p0.renderString(m7n,{preamble:r7n,skillLines:t})}function g7n(e){let{slug:t,studio:n,action:r,dir:i}=e,s=r.stage,o=$i(n,s),c=LI(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=eu(i,"stages",s,"units",`${G}.md`);if(!zg(M)){X.push(`- **${G}** \u2014 _(file missing)_`);continue}let q=BRt(M),U=q.title||G,L=q.hat||"",H=Array.isArray(q.outputs)?q.outputs:[],j=[`- **${G}** \u2014 ${U}`,L?` - hat: \`${L}\``: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 iwt(e,t){let n=ve(),r=br(n,"intents",e),i=br(r,"intent.md"),s;try{s=JAt("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{s=process.cwd()}function o(p){let h=tU(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";IEe=Re(Kt(),1);Ci();ze();Kn();ts();ns();TJn=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;vJn=["artifacts","outputs","knowledge","discovery"];kJn=/\.(ts|tsx|js|jsx|mjs|cjs)$/i,IJn=/\.(test|spec)\.[a-z]+$|\/__tests__\/|\/test\//i});import{existsSync as Vg,mkdirSync as CJn,readdirSync as MJn,readFileSync as awt,renameSync as DJn}from"node:fs";import{dirname as LJn,join as tu}from"node:path";function swt(e){if(!Vg(e))return{};let t=awt(e,"utf8"),{data:n}=re(t);return n}function xEe(e,t,n,r){let i=cft(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[FJn,"",...o].join(` +`).trimEnd()}function owt(){let e=$0();if(e.length===0)return null;let t=e.map(n=>{let r=n.description?` \u2014 ${n.description}`:"";return`- \`/${n.slug}\`${r}`});return vx.renderString(XJn,{preamble:jJn,skillLines:t})}function QJn(e){let{slug:t,studio:n,action:r,dir:i}=e,s=r.stage,o=$i(n,s),c=BI(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=swt(F),U=V.title||B,M=V.hat||"",j=Array.isArray(V.outputs)?V.outputs:[],H=[`- **${B}** \u2014 ${U}`,M?` - hat: \`${M}\``:null,j.length>0?` - outputs: ${j.map(K=>`\`${K}\``).join(", ")}`:null,` - file: \`.haiku/intents/${t}/stages/${s}/units/${B}.md\``].filter(Boolean).join(` +`);Q.push(H)}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=Ebe(n,s,i,t);return B&&g.push(B),g.push(p0.renderString(t7n,{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=xEe(n,s,i,t);return q&&y.push(q),y.push(vx.renderString(UJn,{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=Ebe(n,s,i,t);B&&g.push(B);let X=GRt();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=xEe(n,s,i,t);q&&y.push(q);let Q=owt();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}`),Hfe(n,s,"ELABORATION")){let B=kr({resolveBody:()=>G4(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}`),Zfe(n,s,"ELABORATION")){let q=kr({resolveBody:()=>XK(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=Ebe(n,s,i,t);S&&g.push(S);let b=wn(zg(eu(i,"intent.md"))?BRt(eu(i,"intent.md")):{},n),_=[],T=[];if(o?.data?.inputs&&Array.isArray(o.data.inputs)){let B=o.data.inputs,X=Bpe(B,b),G=V4(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 L=U.resolvedPath.startsWith(`${i}/`)?U.resolvedPath.slice(i.length+1):U.resolvedPath;_.push(`- **${U.stage}/${U.artifactName}** (${U.kind}) \u2014 \`${L}\``)}}q.length>0&&g.push(`## \u26A0 Missing Upstream Artifacts +${q}`)}y.push(bs("workflow-contracts-elaborate"));let b=qI("elaborate",i);b&&y.push(b);let S=xEe(n,s,i,t);S&&y.push(S);let E=wn(Vg(tu(i,"intent.md"))?swt(tu(i,"intent.md")):{},n),_=[],T=[];if(o?.data?.inputs&&Array.isArray(o.data.inputs)){let q=o.data.inputs,Q=Xpe(q,E),B=$K(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=[i7n];_.length>0&&(B.push("","### Declared Inputs (from STAGE.md)"),B.push("",..._)),A.length>0&&B.push("",s7n,"",...A,"",o7n),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=[HJn];_.length>0&&(q.push("","### Declared Inputs (from STAGE.md)"),q.push("",..._)),R.length>0&&q.push("",qJn,"",...R,"",BJn),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(eu(process.cwd(),X.rel))).sort((X,G)=>X.name.localeCompare(G.name));if(B.length>0){let X=B.map(G=>`- **${G.name}** \u2014 \`${G.rel}\``).join(` -`);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[...Cu()].reverse()){let G=eu(X,n,"stages",s,"discovery");if(zg(G))for(let M of QJn(G).filter(q=>q.endsWith(".md"))){if(B.has(M))continue;B.add(M);let q=eu(G,M),U=zRt(q,"utf8"),{data:L}=re(U),H=L.location,j=typeof H=="string"?H.replace(/\{intent-slug\}/g,t):H,W=null;typeof j=="string"&&j.length>0&&(j.startsWith(".haiku/")?W=eu(process.cwd(),j):j.startsWith("/")?W=j:W=eu(i,j)),R.push({name:M.replace(/\.md$/i,"").toLowerCase(),templatePath:q,outputPath:W})}}}let x=eu(i,"knowledge");for(let B of R){if(!B.outputPath||zg(B.outputPath))continue;let X=`${B.name.toUpperCase()}.md`,G=eu(x,X);if(G!==B.outputPath&&zg(G))try{XJn(e7n(B.outputPath),{recursive:!0}),$Jn(G,B.outputPath),console.error(`[haiku] Relocated misplaced discovery artifact: '${G}' \u2192 '${B.outputPath}' (template '${B.name}' declares ${B.outputPath}). Clears the cursor re-emission wedge from pre-2026-05-13 engine versions.`)}catch(M){console.error(`[haiku] Could not relocate '${G}' to '${B.outputPath}': ${M instanceof Error?M.message:String(M)}. Discovery will continue to re-emit until the file is moved manually.`)}}let k=R.filter(B=>{if(B.outputPath)return!zg(B.outputPath);let X=eu(x,`${B.name.toUpperCase()}.md`);return!zg(X)});if(k.length>0){let B=k.map(H=>`\`${H.name}\``).join(", "),X=k.length!==1?"s":"",G=kr({resolveBody:()=>Wh(t),toolName:"haiku_read_intent",toolArgs:{intent:t},intent:t,stage:s,kind:"intent-goal",name:"intent"}),M=kr({resolveBody:()=>Mh(n,s),toolName:"haiku_read_stage",toolArgs:{studio:n,stage:s},intent:t,stage:s,kind:"stage-scope",name:s}),q=`## Discovery Fan-Out (REQUIRED) +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 MJn(B).filter(V=>V.endsWith(".md"))){if(q.has(F))continue;q.add(F);let V=tu(B,F),U=awt(V,"utf8"),{data:M}=re(U),j=M.location,H=typeof j=="string"?j.replace(/\{intent-slug\}/g,t):j,K=null;typeof H=="string"&&H.length>0&&(H.startsWith(".haiku/")?K=tu(process.cwd(),H):H.startsWith("/")?K=H:K=tu(i,H)),A.push({name:F.replace(/\.md$/i,"").toLowerCase(),templatePath:V,outputPath:K})}}}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{CJn(LJn(q.outputPath),{recursive:!0}),DJn(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(j=>`\`${j.name}\``).join(", "),Q=k.length!==1?"s":"",B=kr({resolveBody:()=>Yh(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). -${DI(k.length,"discovery subagents",{forceForeground:c})} +${zI(k.length,"discovery subagents",{forceForeground:c})} -`;for(let H of k){let j=bpe(t,s,H.name),W=j?H.outputPath?H.outputPath.startsWith(i)?eu(j,".haiku","intents",t,H.outputPath.slice(i.length+1)):H.outputPath.startsWith(process.cwd())?eu(j,H.outputPath.slice(process.cwd().length+1)):H.outputPath:eu(j,".haiku","intents",t,"knowledge",`${H.name.toUpperCase()}.md`):null,ee=kr({resolveBody:()=>EI(n,s,H.name),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:s,template:H.name},intent:t,stage:s,kind:"discovery-template",name:H.name}),se=p0.renderString(h7n,{artifactName:H.name,slug:t,stage:s,studio:n,worktree:j,branchName:j?kI(t,s,H.name):"",expectedArtifactPath:W,intentRef:G,stageRef:M,templateRef:ee}),Me=Fu({mandatePath:H.templatePath,studio:n,stage:s});q+=`${Ti({unit:"discovery",hat:H.name,bolt:1,intent:t,stage:s,agentType:"general-purpose",model:Me,promptBody:se,heading:`### Subagent: \`${H.name}\``,forceForeground:c,omitBolt:!0})} +`;for(let j of k){let H=xpe(t,s,j.name),K=H?j.outputPath?j.outputPath.startsWith(i)?tu(H,".haiku","intents",t,j.outputPath.slice(i.length+1)):j.outputPath.startsWith(process.cwd())?tu(H,j.outputPath.slice(process.cwd().length+1)):j.outputPath:tu(H,".haiku","intents",t,"knowledge",`${j.name.toUpperCase()}.md`):null,ee=kr({resolveBody:()=>wI(n,s,j.name),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:s,template:j.name},intent:t,stage:s,kind:"discovery-template",name:j.name}),se=vx.renderString(JJn,{artifactName:j.name,slug:t,stage:s,studio:n,worktree:H,branchName:H?CI(t,s,j.name):"",expectedArtifactPath:K,intentRef:B,stageRef:F,templateRef:ee}),Le=ju({mandatePath:j.templatePath,studio:n,stage:s});V+=`${Ti({unit:"discovery",hat:j.name,bolt:1,intent:t,stage:s,agentType:"general-purpose",model:Le,promptBody:se,heading:`### Subagent: \`${j.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.':"",L=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}${L}`,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=f0(n,s,`## Stage Output Expectations +`)}let P=Tx(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(a7n),g.push(p0.renderString(c7n,{collaborative:u==="collaborative"}));let F=GRt();F&&g.push(F);let V=u==="collaborative"?u7n:l7n,K=c?'\n\n**Autopilot \u2014 zero user interaction.** You are driving this intent autonomously; the only human touchpoint is the pre-intent conversation, which already happened. Do NOT call `AskUserQuestion`, `ask_user_visual_question`, `pick_design_direction`, or any other user-facing prompt during elaboration \u2014 not even for a "genuine blocker". Resolve every ambiguity yourself from the codebase, prior-stage outputs, established conventions, and the intent description: make the most defensible call and record the reasoning in the unit body, never as a question.':"",$=p0.renderString(d7n,{slug:t,stage:s});return g.push(`${f7n} +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(zJn),y.push(vx.renderString(GJn,{collaborative:u==="collaborative"}));let L=owt();L&&y.push(L);let G=u==="collaborative"?VJn:WJn,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.':"",$=vx.renderString(KJn,{slug:t,stage:s});return y.push(`${YJn} -${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 p0,t7n,n7n,r7n,i7n,s7n,o7n,a7n,c7n,u7n,l7n,d7n,f7n,p7n,h7n,m7n,VRt,WRt=v(()=>{"use strict";gt();yr();Ef();ze();Kn();ns();T5();ts();ht();Dh();At();p0=new Te({autoEscape:!1,useWith:!0}),t7n=ie("@canon:stage/elaborate/decompose","blocks/iterative-decide.eta.md"),n7n=ie("@canon:stage/elaborate/decompose","blocks/lens-preamble.md"),r7n=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-preamble.md"),i7n=ie("@canon:stage/elaborate/decompose","blocks/upstream-context-header.md"),s7n=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-preamble.md"),o7n=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-footer.md"),a7n=ie("@canon:stage/elaborate/decompose","blocks/design-provider-mcps.md"),c7n=ie("@canon:stage/elaborate/decompose","blocks/approach-selection.eta.md"),u7n=ie("@canon:stage/elaborate/decompose","blocks/collaborative-mechanics.md"),l7n=ie("@canon:stage/elaborate/decompose","blocks/autonomous-mechanics.md"),d7n=ie("@canon:stage/elaborate/decompose","blocks/elaborate-output-tail.eta.md"),f7n=ie("@canon:stage/elaborate/decompose","blocks/scope-header.md"),p7n=ie("@canon:stage/elaborate/decompose","blocks/file-based-pointer.eta.md"),h7n=ie("@canon:stage/elaborate/decompose","blocks/discovery-subagent.eta.md"),m7n=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-section.eta.md");VRt=e=>{let t=e.action.prompt_file;return t?p0.renderString(p7n,{promptFile:t}):g7n(e)}});import{join as y7n}from"node:path";var KRt,S7n,E7n,ZRt,YRt=v(()=>{"use strict";gt();ze();Kn();ts();ht();At();KRt=new Te({autoEscape:!1,useWith:!0}),S7n=ie("@canon:stage/elaborate/decompose_review"),E7n=ie("@canon:stage/elaborate/decompose_review","subagent.eta.md"),ZRt=e=>{let t=e.action,n=t.stage,r=t.intent??e.slug,i=e.studio,s=t.verifier_nonce??"",o=kr({resolveBody:()=>Wh(r),toolName:"haiku_read_intent",toolArgs:{intent:r},intent:r,stage:n,kind:"intent-goal",name:"intent"}),a=kr({resolveBody:()=>Mh(i,n),toolName:"haiku_read_stage",toolArgs:{studio:i,stage:n},intent:r,stage:n,kind:"stage-scope",name:n}),c=y7n(e.dir,"stages",n,"elaboration.md"),u=Mf("verify_decompose",{slug:r,stage:n}),l=KRt.renderString(E7n,{stage:n,intentSlug:r,intentRef:o,stageRef:a,elabPath:c,verifierNonce:s}),d=Ti({unit:`verify-${n}-decompose`,hat:"decompose-verifier",bolt:1,intent:r,stage:n,agentType:"general-purpose",promptBody:l,heading:`### Subagent: decompose verifier (stage \`${n}\`)`,omitBolt:!0});return KRt.renderString(S7n,{stage:n,intentSlug:r,elabPath:c,concurrentLoopBlock:u,verifierNonce:s,composedMode:e.composedMode===!0,dispatchBlock:d})}});var JRt,b7n,_7n,bbe,XRt=v(()=>{"use strict";gt();Kn();ts();ht();At();JRt=new Te({autoEscape:!1,useWith:!0}),b7n=ie("@canon:stage/elaborate/discovery_required"),_7n=ie("@canon:stage/elaborate/discovery_required","subagent.eta.md"),bbe=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=JRt.renderString(_7n,{agent:l,stage:i,slug:t,unit:f,resolvedLocation:h,templateRef:g}),S=Fu({mandatePath:jfe(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 JRt.renderString(b7n,{slug:t,stage:i,dispatches:a,dispatchCount:a.length,agent:a[0]?.agent??"",unit:a[0]?.unit??"",unitLabel:a[0]?.unitLabel??"",def:a[0]?.def,resolvedLocation:a[0]?.resolvedLocation??"",dispatchBlock:a[0]?.dispatchBlock??"",concurrentLoopBlock:c,composedMode:e.composedMode===!0})}});var T7n,v7n,QRt,$Rt=v(()=>{"use strict";gt();ze();Kn();ts();ht();At();T7n=new Te({autoEscape:!1,useWith:!0}),v7n=ie("@canon:stage/elaborate/elaborate"),QRt=e=>{let t=e.action,n=t.stage??"(unknown)",r=t.intent??e.slug,i=kr({resolveBody:()=>Wh(r),toolName:"haiku_read_intent",toolArgs:{intent:r},intent:r,stage:n,kind:"intent-goal",name:"intent"}),s=kr({resolveBody:()=>Mh(e.studio,n),toolName:"haiku_read_stage",toolArgs:{studio:e.studio,stage:n},intent:r,stage:n,kind:"stage-scope",name:n}),o=Mf("conversation",{slug:r,stage:n});return T7n.renderString(v7n,{stage:n,intentSlug:r,intentRef:i,stageRef:s,concurrentLoopBlock:o,composedMode:e.composedMode===!0})}});import{join as A7n}from"node:path";var ewt,R7n,w7n,twt,nwt=v(()=>{"use strict";gt();ze();Kn();ts();ht();At();ewt=new Te({autoEscape:!1,useWith:!0}),R7n=ie("@canon:stage/elaborate/elaborate_review"),w7n=ie("@canon:stage/elaborate/elaborate_review","subagent.eta.md"),twt=e=>{let t=e.action,n=t.stage,r=t.intent??e.slug,i=!n,s=t.verifier_nonce??"",o=i?"":n,a=kr({resolveBody:()=>Wh(r),toolName:"haiku_read_intent",toolArgs:{intent:r},intent:r,stage:o||void 0,kind:"intent-goal",name:"intent"}),c=i?"":kr({resolveBody:()=>Mh(e.studio,o),toolName:"haiku_read_stage",toolArgs:{studio:e.studio,stage:o},intent:r,stage:o,kind:"stage-scope",name:o}),u=i?"":A7n(e.dir,"stages",o,"elaboration.md"),l=i?"":Mf("verify_conversation",{slug:r,stage:o}),d=ewt.renderString(w7n,{isPreIntent:i,intentSlug:r,stage:o,intentRef:a,stageRef:c,elabPath:u,verifierNonce:s}),f=Ti({unit:i?"verify-intent":`verify-${o}-elaboration`,hat:"elaborate-verifier",bolt:1,intent:r,stage:i?void 0:o,agentType:"general-purpose",promptBody:d,heading:i?"### Subagent: pre-intent elaborate verifier":`### Subagent: elaborate verifier (stage \`${o}\`)`,omitBolt:!0});return ewt.renderString(R7n,{isPreIntent:i,intentSlug:r,stage:o,elabPath:u,concurrentLoopBlock:l,composedMode:e.composedMode===!0,verifierNonce:s,dispatchBlock:f})}});function k7n(e,t){let n={stage:e.stage,intent:e.intent},r=e.verifier_nonces??{};switch(t.signal){case"conversation":return{...n,action:"elaborate",signal:"conversation"};case"verify_conversation":return{...n,action:"elaborate_review",signal:"verify_conversation",verifier_nonce:r.verify_conversation??""};case"discovery":return{...n,action:"discovery_required",signal:"discovery",agent:t.agent??"",units:t.units??[]};case"decompose":return{...n,action:"decompose",signal:"decompose"};case"verify_decompose":return{...n,action:"decompose_review",signal:"verify_decompose",verifier_nonce:r.verify_decompose??""}}}function I7n(e){switch(e){case"conversation":return QRt;case"verify_conversation":return twt;case"discovery":return bbe;case"decompose":return VRt;case"verify_decompose":return ZRt}}function rwt(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 iwt,swt=v(()=>{"use strict";ts();At();WRt();YRt();XRt();$Rt();nwt();iwt=e=>{let t=e.action,n=t.signals_unmet??[],r=t.stage,i=t.intent??e.slug,s=LI(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 vx,UJn,FJn,jJn,HJn,qJn,BJn,zJn,GJn,VJn,WJn,KJn,YJn,ZJn,JJn,XJn,cwt,uwt=v(()=>{"use strict";gt();ar();_f();ze();Kn();ns();C6();ts();ht();Fh();Rt();vx=new Te({autoEscape:!1,useWith:!0}),UJn=ie("@canon:stage/elaborate/decompose","blocks/iterative-decide.eta.md"),FJn=ie("@canon:stage/elaborate/decompose","blocks/lens-preamble.md"),jJn=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-preamble.md"),HJn=ie("@canon:stage/elaborate/decompose","blocks/upstream-context-header.md"),qJn=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-preamble.md"),BJn=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-footer.md"),zJn=ie("@canon:stage/elaborate/decompose","blocks/design-provider-mcps.md"),GJn=ie("@canon:stage/elaborate/decompose","blocks/approach-selection.eta.md"),VJn=ie("@canon:stage/elaborate/decompose","blocks/collaborative-mechanics.md"),WJn=ie("@canon:stage/elaborate/decompose","blocks/autonomous-mechanics.md"),KJn=ie("@canon:stage/elaborate/decompose","blocks/elaborate-output-tail.eta.md"),YJn=ie("@canon:stage/elaborate/decompose","blocks/scope-header.md"),ZJn=ie("@canon:stage/elaborate/decompose","blocks/file-based-pointer.eta.md"),JJn=ie("@canon:stage/elaborate/decompose","blocks/discovery-subagent.eta.md"),XJn=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-section.eta.md");cwt=e=>{let t=e.action.prompt_file;return t?vx.renderString(ZJn,{promptFile:t}):QJn(e)}});import{join as $Jn}from"node:path";var lwt,eXn,tXn,dwt,fwt=v(()=>{"use strict";gt();ze();Kn();ts();ht();Rt();lwt=new Te({autoEscape:!1,useWith:!0}),eXn=ie("@canon:stage/elaborate/decompose_review"),tXn=ie("@canon:stage/elaborate/decompose_review","subagent.eta.md"),dwt=e=>{let t=e.action,n=t.stage,r=t.intent??e.slug,i=e.studio,s=t.verifier_nonce??"",o=kr({resolveBody:()=>Yh(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=$Jn(e.dir,"stages",n,"elaboration.md"),u=Lf("verify_decompose",{slug:r,stage:n}),l=lwt.renderString(tXn,{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 lwt.renderString(eXn,{stage:n,intentSlug:r,elabPath:c,concurrentLoopBlock:u,verifierNonce:s,composedMode:e.composedMode===!0,dispatchBlock:d})}});var pwt,nXn,rXn,OEe,hwt=v(()=>{"use strict";gt();Kn();ts();ht();Rt();pwt=new Te({autoEscape:!1,useWith:!0}),nXn=ie("@canon:stage/elaborate/discovery_required"),rXn=ie("@canon:stage/elaborate/discovery_required","subagent.eta.md"),OEe=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:()=>wI(n,i,l),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:i,template:l},intent:t,stage:i,kind:"discovery-template",name:l}),b=pwt.renderString(rXn,{agent:l,stage:i,slug:t,unit:f,resolvedLocation:h,templateRef:y}),S=ju({mandatePath:Yfe(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 pwt.renderString(nXn,{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 iXn,sXn,mwt,gwt=v(()=>{"use strict";gt();ze();Kn();ts();ht();Rt();iXn=new Te({autoEscape:!1,useWith:!0}),sXn=ie("@canon:stage/elaborate/elaborate"),mwt=e=>{let t=e.action,n=t.stage??"(unknown)",r=t.intent??e.slug,i=kr({resolveBody:()=>Yh(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 iXn.renderString(sXn,{stage:n,intentSlug:r,intentRef:i,stageRef:s,concurrentLoopBlock:o,composedMode:e.composedMode===!0})}});import{join as oXn}from"node:path";var ywt,aXn,cXn,Swt,bwt=v(()=>{"use strict";gt();ze();Kn();ts();ht();Rt();ywt=new Te({autoEscape:!1,useWith:!0}),aXn=ie("@canon:stage/elaborate/elaborate_review"),cXn=ie("@canon:stage/elaborate/elaborate_review","subagent.eta.md"),Swt=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:()=>Yh(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?"":oXn(e.dir,"stages",o,"elaboration.md"),l=i?"":Lf("verify_conversation",{slug:r,stage:o}),d=ywt.renderString(cXn,{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 ywt.renderString(aXn,{isPreIntent:i,intentSlug:r,stage:o,elabPath:u,concurrentLoopBlock:l,composedMode:e.composedMode===!0,verifierNonce:s,dispatchBlock:f})}});function uXn(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 lXn(e){switch(e){case"conversation":return mwt;case"verify_conversation":return Swt;case"discovery":return OEe;case"decompose":return cwt;case"verify_decompose":return dwt}}function Ewt(e){switch(e){case"conversation":return"Signal: `conversation` \u2014 capture the stage's human-conversation outcome";case"verify_conversation":return"Signal: `verify_conversation` \u2014 dispatch the elaboration substance verifier";case"discovery":return"Signal: `discovery` \u2014 produce a missing discovery artifact";case"decompose":return"Signal: `decompose` \u2014 draft unit specs for this stage";case"verify_decompose":return"Signal: `verify_decompose` \u2014 dispatch the decompose coverage verifier"}}var _wt,Twt=v(()=>{"use strict";ts();Rt();uwt();fwt();hwt();gwt();bwt();_wt=e=>{let t=e.action,n=t.signals_unmet??[],r=t.stage,i=t.intent??e.slug,s=BI(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=bbe(f)??"";o.push(`### ${rwt("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=OEe(f)??"";o.push(`### ${Ewt("discovery")} -${p.trim()}`)}for(let d of l){let f=k7n(t,d),p={...e,action:f,composedMode:!0},h=I7n(d.signal)(p)??"";o.push(`### ${rwt(d.signal)} +${p.trim()}`)}for(let d of l){let f=uXn(t,d),p={...e,action:f,composedMode:!0},h=lXn(d.signal)(p)??"";o.push(`### ${Ewt(d.signal)} ${h.trim()}`)}return o.push(["### Concurrent execution reminder","","The signals above are mutually independent unless explicitly noted in a signal block. You can dispatch the discovery subagent AND draft units AND record the elaboration conversation in the same response. The cursor's next tick re-evaluates the loop against the disk and returns whichever signals are still unmet (possibly an empty set, in which case the cursor walks past the loop).","",s?'A fork in the work (e.g. discovery turned up two viable approaches) is NOT a reason to stop in autopilot. Pick the option the intent\'s goals best support and record the call, or \u2014 if it genuinely needs a human later \u2014 file `origin: "discovery", resolution: "question"` feedback via `haiku_feedback` and immediately call `haiku_run_next`. Either way the turn ends on `haiku_run_next`; never hand the turn back to ask.':'When you need to surface a user decision (e.g. discovery turned up two viable forks), file `origin: "discovery", resolution: "question"` feedback via `haiku_feedback` instead of guessing. The next tick will route the FB through `feedback_question` so the user picks before the loop continues.'].join(` `)),o.join(` -`)}});var x7n,O7n,owt,awt=v(()=>{"use strict";gt();ht();At();x7n=new Te({autoEscape:!1,useWith:!0}),O7n=ie("@canon:stage/error/blocked"),owt=({action:e})=>{let t=e.blocked_units||[];return x7n.renderString(O7n,{blockedUnits:t})}});var N7n,P7n,cwt,uwt=v(()=>{"use strict";gt();ht();At();N7n=new Te({autoEscape:!1,useWith:!0}),P7n=ie("@canon:stage/error/coverage_review_required"),cwt=({action:e})=>N7n.renderString(P7n,{message:e.message??""})});var C7n,M7n,lwt,dwt=v(()=>{"use strict";gt();ht();At();C7n=new Te({autoEscape:!1,useWith:!0}),M7n=ie("@canon:stage/error/dag_cycle_detected"),lwt=({action:e})=>C7n.renderString(M7n,{message:e.message??""})});var L7n,D7n,fwt,pwt=v(()=>{"use strict";gt();ht();At();L7n=new Te({autoEscape:!1,useWith:!0}),D7n=ie("@canon:stage/error/discovery_missing"),fwt=({action:e})=>L7n.renderString(D7n,{message:e.message??""})});var U7n,F7n,hwt,mwt=v(()=>{"use strict";gt();ht();At();U7n=new Te({autoEscape:!1,useWith:!0}),F7n=ie("@canon:stage/error/elaboration_insufficient"),hwt=({action:e})=>U7n.renderString(F7n,{message:e.message??""})});var j7n,H7n,gwt,ywt=v(()=>{"use strict";gt();ze();ht();At();j7n=new Te({autoEscape:!1,useWith:!0}),H7n=ie("@canon:stage/error/escalate"),gwt=({slug:e,action:t})=>{let n=t.stage,r=t.reason||"unknown",i=t.iteration||0,s=t.max_iterations||Cf,o=t.message||"",a=t.pending_items||[],c=!n,u=c?`intent ${e} (studio-level fix loop)`:n,l=r==="loop_detected"?`## Escalation: Loop Detected in ${u}`:r==="fix_loop_cap_exceeded"?`## Escalation: Fix-Loop Bolt Cap Exceeded in ${u}`:`## Escalation: Iteration Limit Exceeded in ${u}`,d=c?"`haiku_feedback_reject { intent, feedback_id, reason }` \u2014 dismiss specific items that shouldn't block (omit `stage` for intent-scope findings)":"`haiku_feedback_reject { intent, stage, feedback_id, reason }` \u2014 dismiss specific items that shouldn't block",f=r==="fix_loop_cap_exceeded"?`the fix loop spent its full ${Mg}-bolt budget on ${a.length||"the"} finding(s) without satisfying the closure check`:`iteration ${i} of ${s} (max) or repeated feedback signature detected`;return j7n.renderString(H7n,{header:l,message:o,pendingItems:a,capLine:f,rejectExample:d,isIntentScope:c})}});var q7n,B7n,Swt,Ewt=v(()=>{"use strict";gt();ht();At();q7n=new Te({autoEscape:!1,useWith:!0}),B7n=ie("@canon:stage/error/gate_blocked"),Swt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return q7n.renderString(B7n,{slug:e,message:n})}});var G7n,z7n,bwt,_wt=v(()=>{"use strict";gt();ht();At();G7n=new Te({autoEscape:!1,useWith:!0}),z7n=ie("@canon:stage/error/output_liveness_review_required"),bwt=({action:e})=>G7n.renderString(z7n,{message:e.message??""})});var V7n,W7n,Twt,vwt=v(()=>{"use strict";gt();ht();At();V7n=new Te({autoEscape:!1,useWith:!0}),W7n=ie("@canon:stage/error/outputs_missing"),Twt=({action:e})=>V7n.renderString(W7n,{message:e.message??""})});var K7n,Z7n,Awt,Rwt=v(()=>{"use strict";gt();ht();At();K7n=new Te({autoEscape:!1,useWith:!0}),Z7n=ie("@canon:stage/error/save_wip"),Awt=({action:e})=>K7n.renderString(Z7n,{message:e.message??""})});var Y7n,J7n,wwt,kwt=v(()=>{"use strict";gt();ht();At();Y7n=new Te({autoEscape:!1,useWith:!0}),J7n=ie("@canon:stage/error/unit_inputs_missing"),wwt=({action:e})=>Y7n.renderString(J7n,{message:e.message??""})});var X7n,Q7n,Iwt,xwt=v(()=>{"use strict";gt();ht();At();X7n=new Te({autoEscape:!1,useWith:!0}),Q7n=ie("@canon:stage/error/unit_inputs_not_declared"),Iwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return X7n.renderString(Q7n,{slug:t,stage:i,units:r,unitCount:r.length})}});var $7n,eXn,Owt,Nwt=v(()=>{"use strict";gt();ht();At();$7n=new Te({autoEscape:!1,useWith:!0}),eXn=ie("@canon:stage/error/unit_naming_invalid"),Owt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return $7n.renderString(eXn,{slug:e,message:n})}});var tXn,nXn,Pwt,Cwt=v(()=>{"use strict";gt();ht();At();tXn=new Te({autoEscape:!1,useWith:!0}),nXn=ie("@canon:stage/error/unit_outputs_empty_iterations"),Pwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return tXn.renderString(nXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var rXn,iXn,Mwt,Lwt=v(()=>{"use strict";gt();ht();At();rXn=new Te({autoEscape:!1,useWith:!0}),iXn=ie("@canon:stage/error/unresolved_dependencies"),Mwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return rXn.renderString(iXn,{slug:e,message:n})}});import{existsSync as _be,readFileSync as Dwt}from"node:fs";import{join as op,resolve as v5}from"node:path";var A5,sXn,oXn,aXn,cXn,uXn,lXn,dXn,fXn,Uwt,Fwt=v(()=>{"use strict";gt();Ci();Ef();dE();ze();Kn();ns();T5();ts();ht();Dh();At();A5=new Te({autoEscape:!1,useWith:!0}),sXn=ie("@canon:stage/execute/start_unit","blocks/worktree-and-timeouts.md"),oXn=ie("@canon:stage/execute/start_unit","blocks/required-context-preamble.md"),aXn=ie("@canon:stage/execute/start_unit","blocks/skills-preamble.md"),cXn=ie("@canon:stage/execute/start_unit","blocks/autonomy-note.md"),uXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions.eta.md"),lXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions-assessor.eta.md"),dXn=ie("@canon:stage/execute/start_unit","blocks/unit-subagent.eta.md"),fXn=ie("@canon:stage/execute/start_unit","blocks/feedback-assessor.eta.md"),Uwt=({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=Df(op(t,"stages",i,"STAGE.md")),l=Df(op(t,"stages",i,"hats",`${o}.md`)),d=Df(op(t,"stages",i,"outputs")),f=op(r,"stages",i,"units",s.endsWith(".md")?s:`${s}.md`),p=[],h,m=[];if(_be(f)){let{data:B}=re(Dwt(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=Mu(t,i)[o],E=g?.agent_type||"general-purpose",S;if(zo.modelSelection){let B=$i(t,i),X=Od(t),{model:G,source:M}=lE({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=v5(r);for(let X of p){let G=v5(r,X);!G.startsWith(`${B}/`)&&G!==B||_be(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=V4(t,X,r,e).filter(U=>U.exists),q=new Set(p.map(U=>v5(r,U)));for(let U of M){if(q.has(v5(U.resolvedPath)))continue;let L=U.resolvedPath.startsWith(`${r}/`)?U.resolvedPath.slice(r.length+1):U.resolvedPath;_.push({label:`${U.stage}/${U.artifactName}`,path:L})}}}let T=f0(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=zft(e,i,o,a,c),P=[];if(o==="feedback-assessor"){let B=_be(f)?re(Dwt(f,"utf8")).data:{},X=B.closes||[],G=B.outputs||[],M=[],q=Us(e,i);for(let W of X){let ee=q.find(se=>se.id===W);ee&&M.push({id:ee.id,file:ee.file.startsWith(".haiku/intents/")?ee.file.slice(`.haiku/intents/${e}/`.length):ee.file})}let U=vl(x,`Unit spec: ${s}`),L=Lpe(G.map(W=>({heading:`Unit output: ${W}`,path:op(R,W)}))),H=Lpe(M.map(W=>({heading:`Feedback ${W.id}`,path:op(R,W.file)}))),j=A5.renderString(fXn,{slug:e,stage:i,unit:s,bolt:c,worktreePath:A,intentRoot:R,unitInline:U,outputsInline:L,feedbackInline:H});if(k.subagents.supported){let W=N?`${N} +`)}});var dXn,fXn,vwt,Rwt=v(()=>{"use strict";gt();ht();Rt();dXn=new Te({autoEscape:!1,useWith:!0}),fXn=ie("@canon:stage/error/blocked"),vwt=({action:e})=>{let t=e.blocked_units||[];return dXn.renderString(fXn,{blockedUnits:t})}});var pXn,hXn,Awt,wwt=v(()=>{"use strict";gt();ht();Rt();pXn=new Te({autoEscape:!1,useWith:!0}),hXn=ie("@canon:stage/error/coverage_review_required"),Awt=({action:e})=>pXn.renderString(hXn,{message:e.message??""})});var mXn,gXn,kwt,Iwt=v(()=>{"use strict";gt();ht();Rt();mXn=new Te({autoEscape:!1,useWith:!0}),gXn=ie("@canon:stage/error/dag_cycle_detected"),kwt=({action:e})=>mXn.renderString(gXn,{message:e.message??""})});var yXn,SXn,xwt,Owt=v(()=>{"use strict";gt();ht();Rt();yXn=new Te({autoEscape:!1,useWith:!0}),SXn=ie("@canon:stage/error/discovery_missing"),xwt=({action:e})=>yXn.renderString(SXn,{message:e.message??""})});var bXn,EXn,Pwt,Nwt=v(()=>{"use strict";gt();ht();Rt();bXn=new Te({autoEscape:!1,useWith:!0}),EXn=ie("@canon:stage/error/elaboration_insufficient"),Pwt=({action:e})=>bXn.renderString(EXn,{message:e.message??""})});var _Xn,TXn,Cwt,Mwt=v(()=>{"use strict";gt();ze();ht();Rt();_Xn=new Te({autoEscape:!1,useWith:!0}),TXn=ie("@canon:stage/error/escalate"),Cwt=({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 _Xn.renderString(TXn,{header:l,message:o,pendingItems:a,capLine:f,rejectExample:d,isIntentScope:c})}});var vXn,RXn,Dwt,Lwt=v(()=>{"use strict";gt();ht();Rt();vXn=new Te({autoEscape:!1,useWith:!0}),RXn=ie("@canon:stage/error/gate_blocked"),Dwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return vXn.renderString(RXn,{slug:e,message:n})}});var AXn,wXn,Uwt,Fwt=v(()=>{"use strict";gt();ht();Rt();AXn=new Te({autoEscape:!1,useWith:!0}),wXn=ie("@canon:stage/error/output_liveness_review_required"),Uwt=({action:e})=>AXn.renderString(wXn,{message:e.message??""})});var kXn,IXn,jwt,Hwt=v(()=>{"use strict";gt();ht();Rt();kXn=new Te({autoEscape:!1,useWith:!0}),IXn=ie("@canon:stage/error/outputs_missing"),jwt=({action:e})=>kXn.renderString(IXn,{message:e.message??""})});var xXn,OXn,qwt,Bwt=v(()=>{"use strict";gt();ht();Rt();xXn=new Te({autoEscape:!1,useWith:!0}),OXn=ie("@canon:stage/error/save_wip"),qwt=({action:e})=>xXn.renderString(OXn,{message:e.message??""})});var PXn,NXn,zwt,Gwt=v(()=>{"use strict";gt();ht();Rt();PXn=new Te({autoEscape:!1,useWith:!0}),NXn=ie("@canon:stage/error/unit_inputs_missing"),zwt=({action:e})=>PXn.renderString(NXn,{message:e.message??""})});var CXn,MXn,Vwt,Wwt=v(()=>{"use strict";gt();ht();Rt();CXn=new Te({autoEscape:!1,useWith:!0}),MXn=ie("@canon:stage/error/unit_inputs_not_declared"),Vwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return CXn.renderString(MXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var DXn,LXn,Kwt,Ywt=v(()=>{"use strict";gt();ht();Rt();DXn=new Te({autoEscape:!1,useWith:!0}),LXn=ie("@canon:stage/error/unit_naming_invalid"),Kwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return DXn.renderString(LXn,{slug:e,message:n})}});var UXn,FXn,Zwt,Jwt=v(()=>{"use strict";gt();ht();Rt();UXn=new Te({autoEscape:!1,useWith:!0}),FXn=ie("@canon:stage/error/unit_outputs_empty_iterations"),Zwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return UXn.renderString(FXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var jXn,HXn,Xwt,Qwt=v(()=>{"use strict";gt();ht();Rt();jXn=new Te({autoEscape:!1,useWith:!0}),HXn=ie("@canon:stage/error/unresolved_dependencies"),Xwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return jXn.renderString(HXn,{slug:e,message:n})}});import{existsSync as PEe,readFileSync as $wt}from"node:fs";import{join as ap,resolve as M6}from"node:path";var D6,qXn,BXn,zXn,GXn,VXn,WXn,KXn,YXn,ekt,tkt=v(()=>{"use strict";gt();Ci();_f();pb();ze();Kn();ns();C6();ts();ht();Fh();Rt();D6=new Te({autoEscape:!1,useWith:!0}),qXn=ie("@canon:stage/execute/start_unit","blocks/worktree-and-timeouts.md"),BXn=ie("@canon:stage/execute/start_unit","blocks/required-context-preamble.md"),zXn=ie("@canon:stage/execute/start_unit","blocks/skills-preamble.md"),GXn=ie("@canon:stage/execute/start_unit","blocks/autonomy-note.md"),VXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions.eta.md"),WXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions-assessor.eta.md"),KXn=ie("@canon:stage/execute/start_unit","blocks/unit-subagent.eta.md"),YXn=ie("@canon:stage/execute/start_unit","blocks/feedback-assessor.eta.md"),ekt=({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(PEe(f)){let{data:q}=re($wt(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=Cd(t),{model:B,source:F}=fb({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=M6(r);for(let Q of p){let B=M6(r,Q);!B.startsWith(`${q}/`)&&B!==q||PEe(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=$K(t,Q,r,e).filter(U=>U.exists),V=new Set(p.map(U=>M6(r,U)));for(let U of F){if(V.has(M6(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=Tx(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=tpt(e,i,o,a,c),N=[];if(o==="feedback-assessor"){let q=PEe(f)?re($wt(f,"utf8")).data:{},Q=q.closes||[],B=q.outputs||[],F=[],V=Us(e,i);for(let K of Q){let ee=V.find(se=>se.id===K);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=Gpe(B.map(K=>({heading:`Unit output: ${K}`,path:ap(A,K)}))),j=Gpe(F.map(K=>({heading:`Feedback ${K.id}`,path:ap(A,K.file)}))),H=D6.renderString(YXn,{slug:e,stage:i,unit:s,bolt:c,worktreePath:R,intentRoot:A,unitInline:U,outputsInline:M,feedbackInline:j});if(k.subagents.supported){let K=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(A5.renderString(lXn,{backgroundSpawn:k.subagents.backgroundSpawn}))}else N&&P.push(N),P.push(`### Feedback Assessor (Direct Execution) +${H}`:H;N.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:b,model:S,promptBody:K,toolAttr:!0})),N.push(D6.renderString(WXn,{backgroundSpawn:k.subagents.backgroundSpawn}))}else P&&N.push(P),N.push(`### Feedback Assessor (Direct Execution) -${j}`);return P.join(` +${H}`);return N.join(` -`)}let C=o===(a[0]||""),F=new Map(Wx().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)):"",$=A5.renderString(dXn,{unit:s,hat:o,bolt:c,stage:i,studio:t,slug:e,worktreePath:A,intentRoot:R,worktreeAndTimeoutsBlock:sXn,requiredContextPreamble:oXn,stageInline:u?vl(u,"Stage scope"):"",hatInline:l?vl(l,`Hat: ${o}`):"",hatInterpBlock:K,unitInline:vl(x,`Unit spec: ${s}`),outputsDir:d||"",priorRejectBlock:SK(f),unitInputPaths:b.map(B=>op(R,B)),upstreamPaths:_.map(B=>({label:B.label,path:op(R,B.path)})),outputReqs:T||"",skillLines:V,skillsPreamble:aXn,isStartUnit:n.action==="start_unit",isFirstHat:C,autonomyNote:cXn,subagentErrorRecovery:Es("subagent-error-recovery")});if(k.subagents.supported){let B=N?`${N} +`)}let C=o===(a[0]||""),L=new Map($0().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?UI(LI(l)):"",$=D6.renderString(KXn,{unit:s,hat:o,bolt:c,stage:i,studio:t,slug:e,worktreePath:R,intentRoot:A,worktreeAndTimeoutsBlock:qXn,requiredContextPreamble:BXn,stageInline:u?Rl(u,"Stage scope"):"",hatInline:l?Rl(l,`Hat: ${o}`):"",hatInterpBlock:W,unitInline:Rl(x,`Unit spec: ${s}`),outputsDir:d||"",priorRejectBlock:k3(f),unitInputPaths:E.map(q=>ap(A,q)),upstreamPaths:_.map(q=>({label:q.label,path:ap(A,q.path)})),outputReqs:T||"",skillLines:G,skillsPreamble:zXn,isStartUnit:n.action==="start_unit",isFirstHat:C,autonomyNote:GXn,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(A5.renderString(uXn,{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(D6.renderString(VXn,{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 pXn,hXn,jwt,Hwt=v(()=>{"use strict";gt();Jpe();ts();ht();Dh();At();pXn=new Te({autoEscape:!1,useWith:!0}),hXn=ie("@canon:stage/execute/start_unit_hat"),jwt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=n.hat||"",s=n.units||[],o=n.terminal||!1,a=s.map(c=>jI({slug:e,studio:t,unit:c,stage:r,hat:i,terminal:o}));return pXn.renderString(hXn,{slug:e,stage:r,hat:i,terminal:o,unitCount:s.length,dispatchBlocks:a,showAnnouncement:s.length>1,announcementBlock:Es("workflow-contracts-announcement"),executeContractsBlock:Es("workflow-contracts-execute"),serviceDependenciesBlock:o?Es("service-dependencies"):"",batchDirective:s.length>0?DI(s.length,"subagents"):""})}});var mXn,gXn,qwt,Bwt=v(()=>{"use strict";gt();ht();At();mXn=new Te({autoEscape:!1,useWith:!0}),gXn=ie("@canon:stage/gate/user_gate"),qwt=({slug:e,action:t})=>{let n=t.stage||"",r=t.gate_kind||"approval",i=t.units||[];return mXn.renderString(gXn,{slug:e,stage:n,gateKind:r,units:i,unitCount:i.length,unitsJson:JSON.stringify(i)})}});function bXn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=EXn[i],a="",c;if(o){let d=Tbe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${EE({intent:t,stage:r||void 0,kind:"engine-body",name:i,body:d})}\``}else{a=kr({resolveBody:()=>Ch(n,r,i),toolName:"haiku_read_review_agent",toolArgs:{studio:n,stage:r,role:i},intent:t,stage:r||void 0,kind:"mandate",name:i});let d=OL(n,r,i);d&&(c=Fu({mandatePath:d,studio:n,stage:r}))}let u=Tbe.renderString(SXn,{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 Tbe,yXn,SXn,EXn,Gwt,zwt=v(()=>{"use strict";gt();Kn();Tl();ts();ht();At();Tbe=new Te({autoEscape:!1,useWith:!0}),yXn=ie("@canon:stage/review/dispatch_review"),SXn=ie("@canon:stage/review/dispatch_review","subagent.eta.md"),EXn={spec:ie("@canon:stage/review/dispatch_review","engine-bodies/spec.eta.md"),continuity:ie("@canon:stage/review/dispatch_review","engine-bodies/continuity.eta.md"),"cross-stage-consistency":ie("@canon:stage/review/dispatch_review","engine-bodies/cross_stage_consistency.eta.md")};Gwt=({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=>bXn({slug:e,studio:t,stage:r,role:c.role,units:c.units})),o=s.map(c=>c.dispatchBlock).join(` +`)}});var ZXn,JXn,nkt,rkt=v(()=>{"use strict";gt();she();ts();ht();Fh();Rt();ZXn=new Te({autoEscape:!1,useWith:!0}),JXn=ie("@canon:stage/execute/start_unit_hat"),nkt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=n.hat||"",s=n.units||[],o=n.terminal||!1,a=s.map(c=>WI({slug:e,studio:t,unit:c,stage:r,hat:i,terminal:o}));return ZXn.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?zI(s.length,"subagents"):""})}});var XXn,QXn,ikt,skt=v(()=>{"use strict";gt();ht();Rt();XXn=new Te({autoEscape:!1,useWith:!0}),QXn=ie("@canon:stage/gate/user_gate"),ikt=({slug:e,action:t})=>{let n=t.stage||"",r=t.gate_kind||"approval",i=t.units||[];return XXn.renderString(QXn,{slug:e,stage:n,gateKind:r,units:i,unitCount:i.length,unitsJson:JSON.stringify(i)})}});function nQn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=tQn[i],a="",c;if(o){let d=NEe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${_b({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=qD(n,r,i);d&&(c=ju({mandatePath:d,studio:n,stage:r}))}let u=NEe.renderString(eQn,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,existingFeedback:jI(t,r),decisions:HI(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 NEe,$Xn,eQn,tQn,okt,akt=v(()=>{"use strict";gt();Kn();vl();ts();ht();Rt();NEe=new Te({autoEscape:!1,useWith:!0}),$Xn=ie("@canon:stage/review/dispatch_review"),eQn=ie("@canon:stage/review/dispatch_review","subagent.eta.md"),tQn={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")};okt=({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=>nQn({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 Tbe.renderString(yXn,{slug:e,stage:r,dispatches:i,dispatchCount:i.length,role:i[0]?.role??"",units:a,unitCount:a.length,isEngineRole:s[0]?.isEngineRole??!1,dispatchBlock:o})}});var Vwt,_Xn,TXn,Wwt,Kwt=v(()=>{"use strict";gt();ts();ht();At();Vwt=new Te({autoEscape:!1,useWith:!0}),_Xn=ie("@canon:stage/review/write_brief"),TXn=ie("@canon:stage/review/write_brief","subagent.eta.md"),Wwt=({slug:e,action:t})=>{let n=t.stage||"",r=Vwt.renderString(TXn,{slug:e,stage:n}),i=Ti({unit:"brief",hat:"brief",bolt:1,intent:e,stage:n||void 0,agentType:"general-purpose",promptBody:r,heading:`### Subagent: stage brief (\`${n}\`)`,omitBolt:!0});return Vwt.renderString(_Xn,{slug:e,stage:n,dispatchBlock:i})}});var vXn,AXn,Zwt,Ywt=v(()=>{"use strict";gt();Kn();ht();At();vXn=new Te({autoEscape:!1,useWith:!0}),AXn=ie("@canon:stage/start_stage"),Zwt=({slug:e,studio:t,action:n})=>{let r=n.stage,i=n.hats||[],s=$i(t,r),o=Od(t);return vXn.renderString(AXn,{slug:e,studio:t,stage:r,hats:i,studioBody:o?.body||"",stageBody:s?.body||"",follows:n.follows||"",parentKnowledgeJson:JSON.stringify(n.parent_knowledge)})}});var Jwt,Xwt=v(()=>{"use strict";wAt();IAt();OAt();PAt();LAt();FAt();GAt();VAt();KAt();YAt();XAt();$At();tRt();rRt();oRt();cRt();lRt();pRt();mRt();yRt();ERt();TRt();ARt();wRt();IRt();ORt();PRt();swt();awt();uwt();dwt();pwt();mwt();ywt();Ewt();_wt();vwt();Rwt();kwt();xwt();Nwt();Cwt();Lwt();Fwt();Hwt();Bwt();zwt();Kwt();Ywt();Jwt=new Map([["start_stage",Zwt],["elaborate_loop",iwt],["start_unit",Uwt],["start_unit_hat",jwt],["dispatch_review",Gwt],["write_brief",Wwt],["dispatch_approval",_Rt],["dispatch_quality_gates",vRt],["user_gate",qwt],["advance_phase",RRt],["advance_stage",kRt],["complete_stage",xRt],["record_observations",NRt],["record_reflection",JAt],["blocked",owt],["coverage_review_required",cwt],["dag_cycle_detected",lwt],["discovery_missing",fwt],["elaboration_insufficient",hwt],["escalate",gwt],["gate_blocked",Swt],["output_liveness_review_required",bwt],["outputs_missing",Twt],["save_wip",Awt],["unit_inputs_missing",wwt],["unit_inputs_not_declared",Iwt],["unit_naming_invalid",Owt],["unit_outputs_empty_iterations",Pwt],["unresolved_dependencies",Mwt],["migrated",gRt],["select_studio",SRt],["intent_review",sRt],["intent_approved",aRt],["intent_complete",uRt],["seal_intent",hRt],["pending_seal",fRt],["external_review_requested",QAt],["revise_unit_specs",eRt],["safe_intent_repair",nRt],["changes_requested",RAt],["close_feedback",kAt],["feedback_question",xAt],["fix_quality_gates",NAt],["intent_completion_fix",MAt],["review_fix",UAt],["start_feedback_hat",BAt],["complete",zAt],["error",WAt],["loop_halted",ZAt]])});var R5,Qwt=v(()=>{"use strict";ji();uo();R5=[{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:cx},{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:CD},{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:px},{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:hx},{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:mx},{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:gx},{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:dx},{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:_x},{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:ux},{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:bx},{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:yx},{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:Sx},{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:Ex},{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:lx},{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:fx},{name:"haiku_record_agent_write",description:"Record an agent_write entry in the intent's action log for a tracked-surface file the agent just wrote via the harness's Write/Edit tool. Use only on harnesses that don't fire PostToolUse hooks (i.e., NOT Claude Code \u2014 on CC, the `stamp-agent-write` hook does this automatically). The next drift-gate tick will silently absorb the change into the baseline so the agent isn't asked to classify its own deliberate writes. Tracked-surface paths: stages//{artifacts,outputs,knowledge,discovery}/... and intent-root knowledge/.... Workflow-managed paths (units/, feedback/, state.json, intent.md) and paths outside the intent dir don't need (and won't get) a stamp.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"Slug of the intent that owns the file you just wrote."},path:{type:"string",description:"Path of the file you just wrote. Either intent-relative (e.g. stages/design/artifacts/spec.md) or absolute. The tool resolves it against the intent dir and verifies it falls inside the drift-tracked surface before stamping."}},required:["intent_slug","path"]}}]});import{existsSync as RXn,readFileSync as wXn,writeFileSync as kXn}from"node:fs";import{join as IXn}from"node:path";function OXn(e){let t=pc(),n=IXn(e.intentDir,"intent.md");if(!RXn(n))return t;let r=wXn(n,"utf8"),i=(0,vbe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===Abe||(s.plugin_version=Abe,kXn(n,vbe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var vbe,xXn,Abe,$wt=v(()=>{"use strict";vbe=Se(Kt(),1);Nh();xXn="4.0.0",Abe="5.0.0";Nu(xXn,Abe,OXn)});import{existsSync as NXn,readFileSync as PXn,writeFileSync as CXn}from"node:fs";import{join as MXn}from"node:path";function DXn(e){let t=pc(),n=MXn(e.intentDir,"intent.md");if(!NXn(n))return t;let r=PXn(n,"utf8"),i=(0,Rbe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===wbe||(s.plugin_version=wbe,CXn(n,Rbe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var Rbe,LXn,wbe,ekt=v(()=>{"use strict";Rbe=Se(Kt(),1);Nh();LXn="5.0.0",wbe="6.0.0";Nu(LXn,wbe,DXn)});import{existsSync as UXn,readFileSync as FXn,writeFileSync as jXn}from"node:fs";import{join as HXn}from"node:path";function BXn(e){let t=pc(),n=HXn(e.intentDir,"intent.md");if(!UXn(n))return t;let r=FXn(n,"utf8"),i=(0,kbe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===Ibe||(s.plugin_version=Ibe,jXn(n,kbe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var kbe,qXn,Ibe,tkt=v(()=>{"use strict";kbe=Se(Kt(),1);Nh();qXn="6.0.0",Ibe="7.0.0";Nu(qXn,Ibe,BXn)});import{existsSync as h0,readdirSync as w5,readFileSync as Obe,writeFileSync as Nbe}from"node:fs";import{join as WE}from"node:path";function zXn(e){let t=Obe(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,Nbe(e,Cv.default.stringify(n.content,r)),{migrated:!0,closure_synthesized:a}}function VXn(e){let t=Obe(e,"utf8"),n=(0,Cv.default)(t),r=n.data;return r.status===void 0?!1:(delete r.status,Nbe(e,Cv.default.stringify(n.content,r)),!0)}function WXn(e,t){let n=[],r=WE(e,"feedback");h0(r)&&n.push(r);let i=WE(e,"stages");if(h0(i))for(let s of w5(i,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=WE(i,s.name,"feedback");h0(o)&&n.push(o)}for(let s of n)for(let o of w5(s).filter(a=>a.endsWith(".md"))){let a=zXn(WE(s,o));a.migrated&&(t.feedback_migrated++,a.closure_synthesized&&t.feedback_with_synthesized_closure++)}}function KXn(e,t){let n=WE(e,"stages");if(h0(n))for(let r of w5(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=WE(n,r.name,"units");if(h0(i))for(let s of w5(i).filter(o=>o.endsWith(".md")))VXn(WE(i,s))&&t.units_migrated++}}function ZXn(e){let t=pc(),n={feedback_migrated:0,feedback_with_synthesized_closure:0,units_migrated:0};WXn(e.intentDir,n),KXn(e.intentDir,n),t.feedback_migrated=n.feedback_migrated,t.feedback_with_synthesized_closure=n.feedback_with_synthesized_closure,t.units_migrated=n.units_migrated;let r=WE(e.intentDir,"intent.md");if(h0(r)){let i=Obe(r,"utf8"),s=(0,Cv.default)(i),o=s.data;(typeof o.plugin_version=="string"?o.plugin_version:"")!==xbe&&(o.plugin_version=xbe,Nbe(r,Cv.default.stringify(s.content,o)),t.intent_md_migrated=!0)}return t}var Cv,GXn,xbe,nkt=v(()=>{"use strict";Cv=Se(Kt(),1);Nh();GXn="7.0.0",xbe="8.0.0";Nu(GXn,xbe,ZXn)});import{existsSync as Mv,readdirSync as Z1,readFileSync as Cbe,rmSync as rkt,statSync as YXn,writeFileSync as Mbe}from"node:fs";import{join as Ua}from"node:path";function ikt(e){let t=e.iterations;if(!Array.isArray(t))return 0;let n=0;for(let r of t){if(!r||typeof r!="object"||Array.isArray(r))continue;let i=r;typeof i.reason=="string"&&(i.message===void 0&&i.reason.length>0&&(i.message=i.reason),delete i.reason,n++)}return n}function XXn(e,t,n,r){let i=Cbe(e,"utf8"),s=(0,Lv.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=wZ({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=ikt(o);return d>0&&(r.iterations_message_migrated+=d,a=!0),a?(Mbe(e,Lv.default.stringify(s.content,o)),!0):!1}function QXn(e,t){let n=[Ua(e,"feedback")],r=Ua(e,"stages");if(Mv(r))for(let i of Z1(r,{withFileTypes:!0}))i.isDirectory()&&n.push(Ua(r,i.name,"feedback"));for(let i of n)if(Mv(i))for(let s of Z1(i).filter(o=>o.endsWith(".md"))){let o=Ua(i,s),a=Cbe(o,"utf8"),c=(0,Lv.default)(a),u=c.data,l=ikt(u);l>0&&(t.iterations_message_migrated+=l,Mbe(o,Lv.default.stringify(c.content,u)))}}function m0(e,t){if(Mv(e))try{YXn(e).isDirectory()?rkt(e,{recursive:!0,force:!0}):rkt(e,{force:!0}),t.drift_artifacts_deleted++}catch{}}function $Xn(e,t){m0(Ua(e,"drift-markers.json"),t);let n=Ua(e,"stages");if(Mv(n))for(let r of Z1(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Ua(n,r.name);m0(Ua(i,"baseline.json"),t),m0(Ua(i,"baseline-content"),t),m0(Ua(i,".baseline-ack"),t),m0(Ua(i,"baseline-thrash.json"),t),m0(Ua(i,"gate-session.json"),t)}}function eQn(e){return Ua(e,"..","..","..")}function tQn(e){let t=pc(),n={units_migrated:0,review_slots_backfilled:0,approval_slots_stripped:0,drift_artifacts_deleted:0,iterations_message_migrated:0},r=eQn(e.intentDir),i=Ua(e.intentDir,"stages");if(Mv(i))for(let o of Z1(i,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=Ua(i,o.name,"units");if(Mv(a))for(let c of Z1(a).filter(u=>u.endsWith(".md"))){let u=Ua(a,c);XXn(u,e.intentDir,r,n)&&n.units_migrated++}}QXn(e.intentDir,n),$Xn(e.intentDir,n),t.units_migrated=n.units_migrated,t.drift_artifacts_deleted=n.drift_artifacts_deleted,t.review_slots_backfilled=n.review_slots_backfilled,t.approval_slots_stripped=n.approval_slots_stripped,t.iterations_message_migrated=n.iterations_message_migrated;let s=Ua(e.intentDir,"intent.md");if(Mv(s)){let o=Cbe(s,"utf8"),a=(0,Lv.default)(o),c=a.data;(typeof c.plugin_version=="string"?c.plugin_version:"")!==Pbe&&(c.plugin_version=Pbe,Mbe(s,Lv.default.stringify(a.content,c)),t.intent_md_migrated=!0)}return t}var Lv,JXn,Pbe,skt=v(()=>{"use strict";Lv=Se(Kt(),1);Nh();Yf();JXn="8.0.0",Pbe="9.0.0";Nu(JXn,Pbe,tQn)});import{existsSync as nQn,readFileSync as rQn,writeFileSync as iQn}from"node:fs";import{join as sQn}from"node:path";function aQn(e){let t=pc(),n=sQn(e.intentDir,"intent.md");if(!nQn(n))return t;let r=rQn(n,"utf8"),i=(0,Lbe.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===Dbe&&!a||(s.plugin_version=Dbe,iQn(n,Lbe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var Lbe,oQn,Dbe,okt=v(()=>{"use strict";Lbe=Se(Kt(),1);Nh();ns();oQn="9.0.0",Dbe="10.0.0";Nu(oQn,Dbe,aQn)});import{existsSync as akt,readFileSync as cQn,renameSync as uQn,unlinkSync as lQn,writeFileSync as dQn}from"node:fs";function ukt(e,t){let n=II(e,ckt),r=`${n}.tmp-${process.pid}-${Date.now()}`;try{let i={intent:e,action:t??null,at:new Date().toISOString()};dQn(r,JSON.stringify(i)),uQn(r,n)}catch{try{akt(r)&&lQn(r)}catch{}}}function lkt(e){try{let t=II(e,ckt);if(!akt(t))return null;let n=JSON.parse(cQn(t,"utf8"));return!n||typeof n!="object"||n.intent!==e?null:n}catch{return null}}var ckt,Ube=v(()=>{"use strict";Tl();ckt="statusline.json"});import{existsSync as fQn,readFileSync as pQn,rmSync as cwi,writeFileSync as hQn}from"node:fs";function hkt(e){let t=g0.get(e);if(t)return t;try{let n=II(e,pkt);if(!fQn(n))return;let r=JSON.parse(pQn(n,"utf8")),i=r.updated_at??r.first_seen;return!i||Date.now()-new Date(i).getTime()>gkt?void 0:(g0.set(e,r),r)}catch{return}}function gQn(e,t){g0.set(e,t);try{hQn(II(e,pkt),JSON.stringify(t),"utf8"),mQn.add(e)}catch{}}function EQn(){if(g0.size<100)return;let e=Date.now();for(let[t,n]of g0)e-new Date(n.first_seen).getTime()>gkt&&g0.delete(t)}function ykt(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 Skt(e,t){if(jbe(t))return;let n=ykt(t),r=new Date().toISOString(),i=hkt(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(-Fbe);o={signature:n,count:a,first_seen:i.first_seen,updated_at:r,recent:c,churn_fired:i.churn_fired},a===yQn&&Ke("haiku.deadlock.suspected",{intent:e,signature:n,consecutive_ticks:String(a),first_seen:i.first_seen})}else if(i){let a=s?i.recent:[...i.recent,n].slice(-Fbe),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=Ekt(a);if(!o.churn_fired&&u.length>=dkt){let l=u.slice(-dkt),d=new Set(l);d.size<=mkt&&d.size>1&&(Ke("haiku.deadlock.churn_suspected",{intent:e,recent_signatures:l.join(" | "),distinct_count:String(d.size),window_size:String(l.length),first_seen:i.first_seen}),o.churn_fired=!0)}}else o={signature:n,count:1,first_seen:r,updated_at:r,recent:s?[]:[n],churn_fired:!1};gQn(e,o),EQn()}function jbe(e){if(!e||typeof e!="object")return!1;let t=e.action;return typeof t!="string"?!1:!!(bQn.has(t)||t==="intent_review"&&e.role==="user")}function _Qn(e){try{return jbe(JSON.parse(e))}catch{return!1}}function Ekt(e){return e.filter(t=>!_Qn(t))}function bkt(e,t){if(jbe(t))return null;let n=ykt(t),r=hkt(e);if(!r)return null;if(r.signature===n&&r.count+1>=SQn)return{kind:"repeat",count:r.count+1,signature:n};let i=Ekt([...r.recent,n].slice(-Fbe));if(i.length>=fkt){let s=i.slice(-fkt),o=new Set(s);if(o.size<=mkt&&o.size>1)return{kind:"churn",distinct:o.size,window:s.length}}return null}function _kt(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 NEe.renderString($Xn,{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 ckt,rQn,iQn,ukt,lkt=v(()=>{"use strict";gt();ts();ht();Rt();ckt=new Te({autoEscape:!1,useWith:!0}),rQn=ie("@canon:stage/review/write_brief"),iQn=ie("@canon:stage/review/write_brief","subagent.eta.md"),ukt=({slug:e,action:t})=>{let n=t.stage||"",r=ckt.renderString(iQn,{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 ckt.renderString(rQn,{slug:e,stage:n,dispatchBlock:i})}});var sQn,oQn,dkt,fkt=v(()=>{"use strict";gt();Kn();ht();Rt();sQn=new Te({autoEscape:!1,useWith:!0}),oQn=ie("@canon:stage/start_stage"),dkt=({slug:e,studio:t,action:n})=>{let r=n.stage,i=n.hats||[],s=$i(t,r),o=Cd(t);return sQn.renderString(oQn,{slug:e,studio:t,stage:r,hats:i,studioBody:o?.body||"",stageBody:s?.body||"",follows:n.follows||"",parentKnowledgeJson:JSON.stringify(n.parent_knowledge)})}});var pkt,hkt=v(()=>{"use strict";HRt();BRt();GRt();WRt();ZRt();QRt();rAt();sAt();aAt();uAt();dAt();pAt();mAt();yAt();EAt();TAt();RAt();kAt();xAt();PAt();CAt();jAt();qAt();zAt();VAt();KAt();ZAt();Twt();Rwt();wwt();Iwt();Owt();Nwt();Mwt();Lwt();Fwt();Hwt();Bwt();Gwt();Wwt();Ywt();Jwt();Qwt();tkt();rkt();skt();akt();lkt();fkt();pkt=new Map([["start_stage",dkt],["elaborate_loop",_wt],["start_unit",ekt],["start_unit_hat",nkt],["dispatch_review",okt],["write_brief",ukt],["dispatch_approval",FAt],["dispatch_quality_gates",HAt],["user_gate",ikt],["advance_phase",BAt],["advance_stage",GAt],["complete_stage",WAt],["record_observations",YAt],["record_reflection",lAt],["blocked",vwt],["coverage_review_required",Awt],["dag_cycle_detected",kwt],["discovery_missing",xwt],["elaboration_insufficient",Pwt],["escalate",Cwt],["gate_blocked",Dwt],["output_liveness_review_required",Uwt],["outputs_missing",jwt],["save_wip",qwt],["unit_inputs_missing",zwt],["unit_inputs_not_declared",Vwt],["unit_naming_invalid",Kwt],["unit_outputs_empty_iterations",Zwt],["unresolved_dependencies",Xwt],["migrated",OAt],["select_studio",NAt],["intent_review",bAt],["intent_approved",_At],["intent_complete",vAt],["seal_intent",IAt],["pending_seal",wAt],["external_review_requested",fAt],["revise_unit_specs",hAt],["safe_intent_repair",gAt],["changes_requested",jRt],["close_feedback",qRt],["feedback_question",zRt],["fix_quality_gates",VRt],["intent_completion_fix",YRt],["review_fix",XRt],["start_feedback_hat",nAt],["complete",iAt],["error",oAt],["loop_halted",cAt]])});var L6,mkt=v(()=>{"use strict";ji();uo();L6=[{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:m0},{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:qL},{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:E0},{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:_0},{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:T0},{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:v0},{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:S0},{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:I0},{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:g0},{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:k0},{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:R0},{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:A0},{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:w0},{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:y0},{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:b0},{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 aQn,readFileSync as cQn,writeFileSync as uQn}from"node:fs";import{join as lQn}from"node:path";function fQn(e){let t=hc(),n=lQn(e.intentDir,"intent.md");if(!aQn(n))return t;let r=cQn(n,"utf8"),i=(0,CEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===MEe||(s.plugin_version=MEe,uQn(n,CEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var CEe,dQn,MEe,gkt=v(()=>{"use strict";CEe=Re(Kt(),1);Nh();dQn="4.0.0",MEe="5.0.0";Nu(dQn,MEe,fQn)});import{existsSync as pQn,readFileSync as hQn,writeFileSync as mQn}from"node:fs";import{join as gQn}from"node:path";function SQn(e){let t=hc(),n=gQn(e.intentDir,"intent.md");if(!pQn(n))return t;let r=hQn(n,"utf8"),i=(0,DEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===LEe||(s.plugin_version=LEe,mQn(n,DEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var DEe,yQn,LEe,ykt=v(()=>{"use strict";DEe=Re(Kt(),1);Nh();yQn="5.0.0",LEe="6.0.0";Nu(yQn,LEe,SQn)});import{existsSync as bQn,readFileSync as EQn,writeFileSync as _Qn}from"node:fs";import{join as TQn}from"node:path";function RQn(e){let t=hc(),n=TQn(e.intentDir,"intent.md");if(!bQn(n))return t;let r=EQn(n,"utf8"),i=(0,UEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===FEe||(s.plugin_version=FEe,_Qn(n,UEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var UEe,vQn,FEe,Skt=v(()=>{"use strict";UEe=Re(Kt(),1);Nh();vQn="6.0.0",FEe="7.0.0";Nu(vQn,FEe,RQn)});import{existsSync as Rx,readdirSync as U6,readFileSync as HEe,writeFileSync as qEe}from"node:fs";import{join as Zb}from"node:path";function wQn(e){let t=HEe(e,"utf8"),n=(0,Hv.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,qEe(e,Hv.default.stringify(n.content,r)),{migrated:!0,closure_synthesized:a}}function kQn(e){let t=HEe(e,"utf8"),n=(0,Hv.default)(t),r=n.data;return r.status===void 0?!1:(delete r.status,qEe(e,Hv.default.stringify(n.content,r)),!0)}function IQn(e,t){let n=[],r=Zb(e,"feedback");Rx(r)&&n.push(r);let i=Zb(e,"stages");if(Rx(i))for(let s of U6(i,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=Zb(i,s.name,"feedback");Rx(o)&&n.push(o)}for(let s of n)for(let o of U6(s).filter(a=>a.endsWith(".md"))){let a=wQn(Zb(s,o));a.migrated&&(t.feedback_migrated++,a.closure_synthesized&&t.feedback_with_synthesized_closure++)}}function xQn(e,t){let n=Zb(e,"stages");if(Rx(n))for(let r of U6(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Zb(n,r.name,"units");if(Rx(i))for(let s of U6(i).filter(o=>o.endsWith(".md")))kQn(Zb(i,s))&&t.units_migrated++}}function OQn(e){let t=hc(),n={feedback_migrated:0,feedback_with_synthesized_closure:0,units_migrated:0};IQn(e.intentDir,n),xQn(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=Zb(e.intentDir,"intent.md");if(Rx(r)){let i=HEe(r,"utf8"),s=(0,Hv.default)(i),o=s.data;(typeof o.plugin_version=="string"?o.plugin_version:"")!==jEe&&(o.plugin_version=jEe,qEe(r,Hv.default.stringify(s.content,o)),t.intent_md_migrated=!0)}return t}var Hv,AQn,jEe,bkt=v(()=>{"use strict";Hv=Re(Kt(),1);Nh();AQn="7.0.0",jEe="8.0.0";Nu(AQn,jEe,OQn)});import{existsSync as qv,readdirSync as nU,readFileSync as zEe,rmSync as Ekt,statSync as PQn,writeFileSync as GEe}from"node:fs";import{join as Fa}from"node:path";function _kt(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 CQn(e,t,n,r){let i=zEe(e,"utf8"),s=(0,Bv.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=DY({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=_kt(o);return d>0&&(r.iterations_message_migrated+=d,a=!0),a?(GEe(e,Bv.default.stringify(s.content,o)),!0):!1}function MQn(e,t){let n=[Fa(e,"feedback")],r=Fa(e,"stages");if(qv(r))for(let i of nU(r,{withFileTypes:!0}))i.isDirectory()&&n.push(Fa(r,i.name,"feedback"));for(let i of n)if(qv(i))for(let s of nU(i).filter(o=>o.endsWith(".md"))){let o=Fa(i,s),a=zEe(o,"utf8"),c=(0,Bv.default)(a),u=c.data,l=_kt(u);l>0&&(t.iterations_message_migrated+=l,GEe(o,Bv.default.stringify(c.content,u)))}}function Ax(e,t){if(qv(e))try{PQn(e).isDirectory()?Ekt(e,{recursive:!0,force:!0}):Ekt(e,{force:!0}),t.drift_artifacts_deleted++}catch{}}function DQn(e,t){Ax(Fa(e,"drift-markers.json"),t);let n=Fa(e,"stages");if(qv(n))for(let r of nU(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Fa(n,r.name);Ax(Fa(i,"baseline.json"),t),Ax(Fa(i,"baseline-content"),t),Ax(Fa(i,".baseline-ack"),t),Ax(Fa(i,"baseline-thrash.json"),t),Ax(Fa(i,"gate-session.json"),t)}}function LQn(e){return Fa(e,"..","..","..")}function UQn(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=LQn(e.intentDir),i=Fa(e.intentDir,"stages");if(qv(i))for(let o of nU(i,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=Fa(i,o.name,"units");if(qv(a))for(let c of nU(a).filter(u=>u.endsWith(".md"))){let u=Fa(a,c);CQn(u,e.intentDir,r,n)&&n.units_migrated++}}MQn(e.intentDir,n),DQn(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(qv(s)){let o=zEe(s,"utf8"),a=(0,Bv.default)(o),c=a.data;(typeof c.plugin_version=="string"?c.plugin_version:"")!==BEe&&(c.plugin_version=BEe,GEe(s,Bv.default.stringify(a.content,c)),t.intent_md_migrated=!0)}return t}var Bv,NQn,BEe,Tkt=v(()=>{"use strict";Bv=Re(Kt(),1);Nh();Xf();NQn="8.0.0",BEe="9.0.0";Nu(NQn,BEe,UQn)});import{existsSync as FQn,readFileSync as jQn,writeFileSync as HQn}from"node:fs";import{join as qQn}from"node:path";function zQn(e){let t=hc(),n=qQn(e.intentDir,"intent.md");if(!FQn(n))return t;let r=jQn(n,"utf8"),i=(0,VEe.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===WEe&&!a||(s.plugin_version=WEe,HQn(n,VEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var VEe,BQn,WEe,vkt=v(()=>{"use strict";VEe=Re(Kt(),1);Nh();ns();BQn="9.0.0",WEe="10.0.0";Nu(BQn,WEe,zQn)});import{existsSync as Rkt,readFileSync as GQn,renameSync as VQn,unlinkSync as WQn,writeFileSync as KQn}from"node:fs";function wkt(e,t){let n=DI(e,Akt),r=`${n}.tmp-${process.pid}-${Date.now()}`;try{let i={intent:e,action:t??null,at:new Date().toISOString()};KQn(r,JSON.stringify(i)),VQn(r,n)}catch{try{Rkt(r)&&WQn(r)}catch{}}}function kkt(e){try{let t=DI(e,Akt);if(!Rkt(t))return null;let n=JSON.parse(GQn(t,"utf8"));return!n||typeof n!="object"||n.intent!==e?null:n}catch{return null}}var Akt,KEe=v(()=>{"use strict";vl();Akt="statusline.json"});import{existsSync as YQn,readFileSync as ZQn,rmSync as Ywi,writeFileSync as JQn}from"node:fs";function Pkt(e){let t=wx.get(e);if(t)return t;try{let n=DI(e,Okt);if(!YQn(n))return;let r=JSON.parse(ZQn(n,"utf8")),i=r.updated_at??r.first_seen;return!i||Date.now()-new Date(i).getTime()>Ckt?void 0:(wx.set(e,r),r)}catch{return}}function QQn(e,t){wx.set(e,t);try{JQn(DI(e,Okt),JSON.stringify(t),"utf8"),XQn.add(e)}catch{}}function t$n(){if(wx.size<100)return;let e=Date.now();for(let[t,n]of wx)e-new Date(n.first_seen).getTime()>Ckt&&wx.delete(t)}function Mkt(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 Dkt(e,t){if(ZEe(t))return;let n=Mkt(t),r=new Date().toISOString(),i=Pkt(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(-YEe);o={signature:n,count:a,first_seen:i.first_seen,updated_at:r,recent:c,churn_fired:i.churn_fired},a===$Qn&&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(-YEe),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>=Ikt){let l=u.slice(-Ikt),d=new Set(l);d.size<=Nkt&&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),t$n()}function ZEe(e){if(!e||typeof e!="object")return!1;let t=e.action;return typeof t!="string"?!1:!!(n$n.has(t)||t==="intent_review"&&e.role==="user")}function r$n(e){try{return ZEe(JSON.parse(e))}catch{return!1}}function Lkt(e){return e.filter(t=>!r$n(t))}function Ukt(e,t){if(ZEe(t))return null;let n=Mkt(t),r=Pkt(e);if(!r)return null;if(r.signature===n&&r.count+1>=e$n)return{kind:"repeat",count:r.count+1,signature:n};let i=Lkt([...r.recent,n].slice(-YEe));if(i.length>=xkt){let s=i.slice(-xkt),o=new Set(s);if(o.size<=Nkt&&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} 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. @@ -1167,29 +1167,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 g0,mQn,pkt,yQn,Fbe,dkt,mkt,SQn,fkt,gkt,bQn,Tkt=v(()=>{"use strict";Tl();vo();g0=new Map,mQn=new Set,pkt=".deadlock-history.json";yQn=2,Fbe=10,dkt=4,mkt=2,SQn=4,fkt=8,gkt=3600*1e3;bQn=new Set(["user_gate","feedback_question","select_studio","select_mode","select_stage"])});import{existsSync as Hbe,readdirSync as TQn,readFileSync as vkt}from"node:fs";function Akt(e,t){if(!Ae())return{action:null};let n=[];try{let o=`${pe(e)}/intent.md`;if(!Hbe(o))return{action:null};let a=re(vkt(o,"utf8")).data,c=[...wn(a,t),""];for(let u of c){let l=u||"intent",d=lo(e,u);if(Hbe(d))for(let f of TQn(d).filter(p=>p.endsWith(".md"))){let p;try{p=re(vkt(`${d}/${f}`,"utf8")).data}catch{continue}if(ep(p)!=="closed")continue;let h=Number.parseInt(f.match(/^(\d+)/)?.[1]??"",10);if(!Number.isFinite(h)||h<=0)continue;let m=qd(h),y=yg(e,l,m);if(!Hbe(y))continue;let g=FE(e,l,()=>qL(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 Rkt=v(()=>{"use strict";yr();Hx();ze();ns()});import{existsSync as wkt,readdirSync as vQn,readFileSync as kkt,writeFileSync as AQn}from"node:fs";import{join as Y1}from"node:path";function RQn(e,t){return new Set(bs(e,t).filter(n=>fE(e,t,n)!==null))}function wQn(e,t){return new Set(Sg(e,t).filter(n=>Ffe(e,t,n)!==null))}function kQn(e){let t=PL(e);return new Set(Uf(e).filter(n=>t[n]!=null))}function IQn(e,t){let n;try{n=(0,k5.default)(kkt(e,"utf8"))}catch{return!1}let r=Array.isArray(n.data.iterations)?n.data.iterations:[];if(r.length===0)return!1;let i=a=>typeof a?.hat=="string"&&!t.has(a.hat);if(!r.some(i))return!1;let s=r.filter(a=>!i(a)),o=structuredClone(n.data);return o.iterations=s,AQn(e,k5.default.stringify(n.content,o)),!0}function qbe(e,t,n,r){if(wkt(e))for(let i of vQn(e).filter(s=>s.endsWith(".md")))IQn(Y1(e,i),t)&&r.push(`${n}/${i.replace(/\.md$/,"")}`)}function Ikt(e){let t=[],n=pe(e),r=Y1(n,"intent.md");if(!wkt(r))return{reconciled:t};let i=[],s="";try{let{data:o}=(0,k5.default)(kkt(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)qbe(Y1(n,"stages",o,"units"),RQn(s,o),o,t),qbe(Y1(n,"stages",o,"feedback"),wQn(s,o),`${o}/feedback`,t);return qbe(Y1(n,"feedback"),kQn(s),"feedback",t),{reconciled:t}}var k5,xkt=v(()=>{"use strict";k5=Se(Kt(),1);ze();Kn();ns()});import{existsSync as xQn,readdirSync as Okt,readFileSync as Nkt,renameSync as OQn,rmSync as NQn,writeFileSync as PQn}from"node:fs";import{join as y0}from"node:path";function CQn(e){let t=e.match(/^(\d+)-/);return t?Number.parseInt(t[1],10):null}function Pkt(e,t){let n=[],r=["",...t];for(let i of r){let s=lo(e,i);if(!xQn(s))continue;let o;try{o=Okt(s)}catch{continue}let a=o.filter(d=>d.endsWith(".md")),c=new Map;for(let d of a){let f=CQn(d);if(f===null)continue;let p=c.get(f);p?p.push(d):c.set(f,[d])}let u=0;for(let d of c.keys())d>u&&(u=d);let l=d=>{try{let f=(0,I5.default)(Nkt(y0(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";I5=Se(Kt(),1);ze()});import{existsSync as J1,readdirSync as LQn,rmSync as Mkt,statSync as Dkt}from"node:fs";import{join as x5}from"node:path";function Lkt(e){if(J1(e))try{Dkt(e).isDirectory()?Mkt(e,{recursive:!0,force:!0}):Mkt(e,{force:!0})}catch{}}function Ukt(e){let t=0,n=new Set;for(let i of DQn){let s=x5(e,i);J1(s)&&n.add(s),Lkt(s)}let r=x5(e,"stages");if(J1(r)){let i=[];try{i=LQn(r)}catch{i=[]}for(let s of i){let o=x5(r,s),a=!1;try{a=Dkt(o).isDirectory()}catch{continue}if(a)for(let c of UQn){let u=x5(o,c);J1(u)&&n.add(u),Lkt(u)}}}for(let i of n)J1(i)||t++;return t}var DQn,UQn,Fkt=v(()=>{"use strict";DQn=["drift-markers.json"],UQn=["baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","gate-session.json"]});import{existsSync as Dv,readdirSync as O5,readFileSync as Hkt,writeFileSync as FQn}from"node:fs";import{join as KE}from"node:path";function jQn(e){if(!Dv(e))return null;try{let t=Hkt(e,"utf8"),n=(0,N5.default)(t);return{data:JSON.parse(JSON.stringify(n.data)),body:n.content}}catch{return null}}function HQn(e,t,n){FQn(e,N5.default.stringify(n,t))}function qQn(e,t){let n=KE(e,"stages",t);if(!Dv(n))return!1;let r=KE(n,"units");if(Dv(r)&&O5(r,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||Dv(KE(n,"elaboration.md")))return!0;let i=KE(n,"feedback");return!!(Dv(i)&&O5(i,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||O5(n,{withFileTypes:!0}).some(o=>o.isFile()&&o.name.endsWith(".md")))}function qkt(e){let t=e.iterations;return Array.isArray(t)?t:[]}function BQn(e,t){let n=qkt(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 Bkt(e,t,n){let r={stagesRepaired:[],unitsTouched:0,reviewsAdded:0,approvalsAdded:0},i=KE(e,"intent.md");if(!Dv(i))return r;let s={};try{s=(0,N5.default)(Hkt(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(_=>KE(l,_.name));if(d.length===0)continue;let f=[];try{f=Object.keys(_l(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=GQn(t,c),g=[],E=!0;for(let _ of d){let T=jQn(_);if(!T){Ke("haiku.self_repair.unit_unreadable",{stage:c,path:_}),E=!1;break}g.push({path:_,data:T.data,body:T.body}),BQn(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:jkt},r.reviewsAdded++,C=!0);for(let F of m)P[F]==null&&(P[F]={at:k,migrated:!0,synthesized_reason:jkt},r.approvalsAdded++,C=!0);C&&(T.reviews=N,T.approvals=P,HQn(_,T,A),r.unitsTouched++,b=!0)}b&&r.stagesRepaired.push(c)}return r}function GQn(e,t){try{return bs(e,t)||[]}catch{return[]}}var N5,jkt,Gkt=v(()=>{"use strict";N5=Se(Kt(),1);Kn();vo();ns();jkt="pre-tick-self-repair: later stage has on-disk work"});import{existsSync as P5,readdirSync as zkt,readFileSync as Vkt}from"node:fs";import{join as C5}from"node:path";function Wkt(e,t){let n=[];try{if(!rpe())return{reset:n};let r=pe(e),i=ai(e,t,r);if(!i)return{reset:n};let s=C5(r,"stages",i,"units");if(!P5(s))return{reset:n};let o=bs(t,i),a=o[o.length-1]??"";for(let c of zkt(s).filter(u=>u.endsWith(".md"))){let u=C5(s,c),l;try{l=re(Vkt(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(P5(mE(e,h)))continue;let{local:m,remote:y}=npe(e,h);m||y||(Array.isArray(l.outputs)?l.outputs.filter(E=>typeof E=="string"&&E.length>0):[]).some(E=>Vh(e,h,E))||(Le(u,"iterations",[]),Le(u,"started_at",null),n.push(h))}}catch{}return{reset:n}}function Kkt(e,t){let n=[];try{let r=pe(e),i=ai(e,t,r);if(!i)return{cleared:n};let s=C5(r,"stages",i,"units");if(!P5(s))return{cleared:n};let o=Ae(),a=Date.now();for(let c of zkt(s).filter(u=>u.endsWith(".md"))){let u=C5(s,c),l;try{l=re(Vkt(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&&!P5(mE(e,h)),y=a-Date.parse(p),g=Number.isFinite(y)&&y>zQn;!m&&!g||(f.dispatched_at=null,Le(u,"iterations",d),n.push(h))}}catch{}return{cleared:n}}var zQn,Zkt=v(()=>{"use strict";yr();ze();ns();Oa();zQn=Number.parseInt(process.env.HAIKU_UNIT_LEASE_TTL_MS??"",10)||45*6e4});import{existsSync as VQn,readdirSync as WQn,readFileSync as KQn,writeFileSync as ZQn}from"node:fs";import{join as Bbe}from"node:path";function Ykt(e,t){let n=[],r=[],i=[];for(let s of t){let o=Bbe(ar(e,s),"units");if(!VQn(o))continue;let a=new Set;try{for(let u of Us(e,s)){let l=u.source_ref,d=u,f=typeof d.status=="string"?d.status:null;d.closed_at&&f!=="non_actionable"||f==="closed"||f==="rejected"||typeof l=="string"&&l.startsWith("missing-output:")&&a.add(l)}}catch{}let c;try{c=WQn(o).filter(u=>u.endsWith(".md"))}catch{continue}for(let u of c){let l=u.replace(/\.md$/,""),d;try{d=(0,Gbe.default)(KQn(Bbe(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=fY(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{ZQn(Bbe(o,u),Gbe.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{Qo(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 Gbe,Jkt=v(()=>{"use strict";Gbe=Se(Kt(),1);ze()});import{existsSync as YQn,readdirSync as JQn,readFileSync as XQn}from"node:fs";import{join as Xkt}from"node:path";function $kt(e,t,n){let r=[],i=[],s=ai(e,n,t);if(!s)return{filed:r,skipped:i};let o=Xkt(ar(e,s),"units");if(!YQn(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,Qkt.default)(XQn(Xkt(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{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 Qkt,QQn,eIt=v(()=>{"use strict";Qkt=Se(Kt(),1);ze();Oa();QQn=/^unit-\d+-/});import{randomBytes as $Qn}from"node:crypto";import{existsSync as tIt,readFileSync as e$n,unlinkSync as t$n,writeFileSync as n$n}from"node:fs";import{join as r$n}from"node:path";function nIt(e,t){let n=t??ve();return r$n(n,"intents",e,".verifier-nonces.json")}function zbe(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 Vbe(e){let t=nIt(e);if(!tIt(t))return{};try{let n=e$n(t,"utf8"),r=JSON.parse(n);return!r||typeof r!="object"||Array.isArray(r)?{}:r}catch{return{}}}function Wbe(e,t){let n=nIt(e);if(Object.keys(t).length===0){if(tIt(n))try{t$n(n)}catch{}return}n$n(n,`${JSON.stringify(t,null,2)} -`)}function M5(e,t){let n=Vbe(e.slug),r=zbe(e),i=n[r];if(i&&i.tied_to===t)return i.nonce;let s=$Qn(16).toString("hex");return n[r]={nonce:s,tied_to:t},Wbe(e.slug,n),s}function S0(e,t){if(!t||t.length===0)return{ok:!1,reason:"missing"};let n=Vbe(e.slug),r=zbe(e),i=n[r];return i?i.nonce!==t?{ok:!1,reason:"mismatch"}:(delete n[r],Wbe(e.slug,n),{ok:!0}):{ok:!1,reason:"missing"}}function Kbe(e){let t=Vbe(e.slug),n=zbe(e);t[n]&&(delete t[n],Wbe(e.slug,t))}var E0=v(()=>{"use strict";ze()});import{existsSync as sIt,readFileSync as oIt}from"node:fs";import{join as aIt}from"node:path";function Ybe(e,t){let n;try{n=pe(e)}catch{return null}let r=aIt(n,"intent.md");if(!sIt(r))return null;let i=_S(),s=Number(i.split(".")[0]??"0"),o=rIt(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&&W4(n);if(p>s)Ke("haiku.migrate.skipped_no_regress",{intent:e,source:f,target:i});else if(p0){rSe(`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.`}})}}}Ukt(n),dSt(),tTt();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=Bkt(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=Wkt(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=Kkt(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=Ikt(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=Pkt(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=$kt(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=Ykt(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=Akt(e,a);if(f.action)return Uv(e,{position:{track:"feedback",action:null},action:f.action})}catch(f){Ke("haiku.fix_chain_merge.failed",{intent:e,error:String(f?.message??f)})}let l=Xf({slug:e,intentDir:n,studio:a}),d=l.action?i$n(e,l.action):null;return Uv(e,{position:l,action:d})}function cIt(e,t){let n=Ybe(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 rIt(e){let t=oIt(e,"utf8");return(0,Zbe.default)(t).data}function i$n(e,t){let n={...t,action:t.kind,intent:e};if(t.kind==="elaborate_loop"){let r=s$n(e,t);Object.keys(r).length>0&&(n.verifier_nonces=r)}return n}function s$n(e,t){let n={};for(let r of t.signals_unmet)if(r.signal==="verify_conversation")if(t.stage){let i=iIt(e,t.stage);n.verify_conversation=M5({kind:"stage_elaborate",slug:e,stage:t.stage},i)}else n.verify_conversation=M5({kind:"intent_elaborate",slug:e},null);else if(r.signal==="verify_decompose"&&t.stage){let i=iIt(e,t.stage);n.verify_decompose=M5({kind:"stage_decompose",slug:e,stage:t.stage},i)}return n}function iIt(e,t){let n=aIt(pe(e),"stages",t,"elaboration.md");if(!sIt(n))return null;try{let r=oIt(n,"utf8"),s=(0,Zbe.default)(r).data.recorded_at;return typeof s=="string"&&s.length>0?s:null}catch{return null}}function Uv(e,t){let n=bkt(e,t.action),r=t;if(n!==null){let i=_kt(e,n);r={position:t.position,action:i}}return r.action&&zd(e,{type:"tick_committed",action:r.action.action??"unknown"}),Skt(e,r.action),ukt(e,r.position.action),r}var Zbe,Jbe=v(()=>{"use strict";Zbe=Se(Kt(),1);i0();ze();vo();d_();Nh();K4();$wt();ekt();tkt();nkt();skt();okt();P1();Ube();QD();K4();ns();Oa();Tkt();Rkt();xkt();Ckt();Fkt();Gkt();Zkt();Jkt();eIt();E0()});function Vg(e){for(let t of["intent","slug","stage","unit","feedback_id"]){let n=e[t];if(typeof n=="string"&&/[/\\]|\.\./.test(n))return{content:[{type:"text",text:`Invalid ${t}: "${n}" \u2014 path identifiers must not contain path separators or traversal sequences.`}],isError:!0}}return null}var Gi=v(()=>{"use strict"});function zn(e,t){return`${o$n} ${e} +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 wx,XQn,Okt,$Qn,YEe,Ikt,Nkt,e$n,xkt,Ckt,n$n,jkt=v(()=>{"use strict";vl();vo();wx=new Map,XQn=new Set,Okt=".deadlock-history.json";$Qn=2,YEe=10,Ikt=4,Nkt=2,e$n=4,xkt=8,Ckt=3600*1e3;n$n=new Set(["user_gate","feedback_question","select_studio","select_mode","select_stage"])});import{existsSync as JEe,readdirSync as i$n,readFileSync as Hkt}from"node:fs";function qkt(e,t){if(!Ee())return{action:null};let n=[];try{let o=`${ce(e)}/intent.md`;if(!JEe(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(JEe(d))for(let f of i$n(d).filter(p=>p.endsWith(".md"))){let p;try{p=re(Hkt(`${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=Gd(h),g=Sg(e,l,m);if(!JEe(g))continue;let y=Hb(e,l,()=>XD(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 Bkt=v(()=>{"use strict";ar();K0();ze();ns()});import{existsSync as zkt,readdirSync as s$n,readFileSync as Gkt,writeFileSync as o$n}from"node:fs";import{join as rU}from"node:path";function a$n(e,t){return new Set(Es(e,t).filter(n=>hb(e,t,n)!==null))}function c$n(e,t){return new Set(bg(e,t).filter(n=>Kfe(e,t,n)!==null))}function u$n(e){let t=zD(e);return new Set(jf(e).filter(n=>t[n]!=null))}function l$n(e,t){let n;try{n=(0,F6.default)(Gkt(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,o$n(e,F6.default.stringify(n.content,o)),!0}function XEe(e,t,n,r){if(zkt(e))for(let i of s$n(e).filter(s=>s.endsWith(".md")))l$n(rU(e,i),t)&&r.push(`${n}/${i.replace(/\.md$/,"")}`)}function Vkt(e){let t=[],n=ce(e),r=rU(n,"intent.md");if(!zkt(r))return{reconciled:t};let i=[],s="";try{let{data:o}=(0,F6.default)(Gkt(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)XEe(rU(n,"stages",o,"units"),a$n(s,o),o,t),XEe(rU(n,"stages",o,"feedback"),c$n(s,o),`${o}/feedback`,t);return XEe(rU(n,"feedback"),u$n(s),"feedback",t),{reconciled:t}}var F6,Wkt=v(()=>{"use strict";F6=Re(Kt(),1);ze();Kn();ns()});import{existsSync as d$n,readdirSync as Kkt,readFileSync as Ykt,renameSync as f$n,rmSync as p$n,writeFileSync as h$n}from"node:fs";import{join as kx}from"node:path";function m$n(e){let t=e.match(/^(\d+)-/);return t?Number.parseInt(t[1],10):null}function Zkt(e,t){let n=[],r=["",...t];for(let i of r){let s=lo(e,i);if(!d$n(s))continue;let o;try{o=Kkt(s)}catch{continue}let a=o.filter(d=>d.endsWith(".md")),c=new Map;for(let d of a){let f=m$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,j6.default)(Ykt(kx(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";j6=Re(Kt(),1);ze()});import{existsSync as iU,readdirSync as y$n,rmSync as Xkt,statSync as $kt}from"node:fs";import{join as H6}from"node:path";function Qkt(e){if(iU(e))try{$kt(e).isDirectory()?Xkt(e,{recursive:!0,force:!0}):Xkt(e,{force:!0})}catch{}}function eIt(e){let t=0,n=new Set;for(let i of S$n){let s=H6(e,i);iU(s)&&n.add(s),Qkt(s)}let r=H6(e,"stages");if(iU(r)){let i=[];try{i=y$n(r)}catch{i=[]}for(let s of i){let o=H6(r,s),a=!1;try{a=$kt(o).isDirectory()}catch{continue}if(a)for(let c of b$n){let u=H6(o,c);iU(u)&&n.add(u),Qkt(u)}}}for(let i of n)iU(i)||t++;return t}var S$n,b$n,tIt=v(()=>{"use strict";S$n=["drift-markers.json"],b$n=["baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","gate-session.json"]});import{existsSync as zv,readdirSync as q6,readFileSync as rIt,writeFileSync as E$n}from"node:fs";import{join as Jb}from"node:path";function _$n(e){if(!zv(e))return null;try{let t=rIt(e,"utf8"),n=(0,B6.default)(t);return{data:JSON.parse(JSON.stringify(n.data)),body:n.content}}catch{return null}}function T$n(e,t,n){E$n(e,B6.default.stringify(n,t))}function v$n(e,t){let n=Jb(e,"stages",t);if(!zv(n))return!1;let r=Jb(n,"units");if(zv(r)&&q6(r,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||zv(Jb(n,"elaboration.md")))return!0;let i=Jb(n,"feedback");return!!(zv(i)&&q6(i,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||q6(n,{withFileTypes:!0}).some(o=>o.isFile()&&o.name.endsWith(".md")))}function iIt(e){let t=e.iterations;return Array.isArray(t)?t:[]}function R$n(e,t){let n=iIt(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 sIt(e,t,n){let r={stagesRepaired:[],unitsTouched:0,reviewsAdded:0,approvalsAdded:0},i=Jb(e,"intent.md");if(!zv(i))return r;let s={};try{s=(0,B6.default)(rIt(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(_=>Jb(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=A$n(t,c),y=[],b=!0;for(let _ of d){let T=_$n(_);if(!T){Ke("haiku.self_repair.unit_unreadable",{stage:c,path:_}),b=!1;break}y.push({path:_,data:T.data,body:T.body}),R$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:nIt},r.reviewsAdded++,C=!0);for(let L of m)N[L]==null&&(N[L]={at:k,migrated:!0,synthesized_reason:nIt},r.approvalsAdded++,C=!0);C&&(T.reviews=P,T.approvals=N,T$n(_,T,R),r.unitsTouched++,E=!0)}E&&r.stagesRepaired.push(c)}return r}function A$n(e,t){try{return Es(e,t)||[]}catch{return[]}}var B6,nIt,oIt=v(()=>{"use strict";B6=Re(Kt(),1);Kn();vo();ns();nIt="pre-tick-self-repair: later stage has on-disk work"});import{existsSync as z6,readdirSync as aIt,readFileSync as cIt}from"node:fs";import{join as G6}from"node:path";function uIt(e,t){let n=[];try{if(!fpe())return{reset:n};let r=ce(e),i=ai(e,t,r);if(!i)return{reset:n};let s=G6(r,"stages",i,"units");if(!z6(s))return{reset:n};let o=Es(t,i),a=o[o.length-1]??"";for(let c of aIt(s).filter(u=>u.endsWith(".md"))){let u=G6(s,c),l;try{l=re(cIt(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(z6(yb(e,h)))continue;let{local:m,remote:g}=dpe(e,h);m||g||(Array.isArray(l.outputs)?l.outputs.filter(b=>typeof b=="string"&&b.length>0):[]).some(b=>Kh(e,h,b))||(Ne(u,"iterations",[]),Ne(u,"started_at",null),n.push(h))}}catch{}return{reset:n}}function lIt(e,t){let n=[];try{let r=ce(e),i=ai(e,t,r);if(!i)return{cleared:n};let s=G6(r,"stages",i,"units");if(!z6(s))return{cleared:n};let o=Ee(),a=Date.now();for(let c of aIt(s).filter(u=>u.endsWith(".md"))){let u=G6(s,c),l;try{l=re(cIt(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&&!z6(yb(e,h)),g=a-Date.parse(p),y=Number.isFinite(g)&&g>w$n;!m&&!y||(f.dispatched_at=null,Ne(u,"iterations",d),n.push(h))}}catch{}return{cleared:n}}var w$n,dIt=v(()=>{"use strict";ar();ze();ns();Oa();w$n=Number.parseInt(process.env.HAIKU_UNIT_LEASE_TTL_MS??"",10)||45*6e4});import{existsSync as k$n,readdirSync as I$n,readFileSync as x$n,writeFileSync as O$n}from"node:fs";import{join as QEe}from"node:path";function fIt(e,t){let n=[],r=[],i=[];for(let s of t){let o=QEe(cr(e,s),"units");if(!k$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=I$n(o).filter(u=>u.endsWith(".md"))}catch{continue}for(let u of c){let l=u.replace(/\.md$/,""),d;try{d=(0,$Ee.default)(x$n(QEe(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(Kh(e,l,g)){p.push(g);continue}let y=_Z(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{O$n(QEe(o,u),$Ee.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 $Ee,pIt=v(()=>{"use strict";$Ee=Re(Kt(),1);ze()});import{existsSync as P$n,readdirSync as N$n,readFileSync as C$n}from"node:fs";import{join as hIt}from"node:path";function gIt(e,t,n){let r=[],i=[],s=ai(e,n,t);if(!s)return{filed:r,skipped:i};let o=hIt(cr(e,s),"units");if(!P$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$n(o).filter(u=>u.endsWith(".md"))}catch{return{filed:r,skipped:i}}for(let u of c){let l;try{l=(0,mIt.default)(C$n(hIt(o,u),"utf8")).data}catch{continue}let f=(Array.isArray(l.inputs)?l.inputs:[]).filter(g=>typeof g=="string"&&M$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 mIt,M$n,yIt=v(()=>{"use strict";mIt=Re(Kt(),1);ze();Oa();M$n=/^unit-\d+-/});import{randomBytes as D$n}from"node:crypto";import{existsSync as SIt,readFileSync as L$n,unlinkSync as U$n,writeFileSync as F$n}from"node:fs";import{join as j$n}from"node:path";function bIt(e,t){let n=t??ve();return j$n(n,"intents",e,".verifier-nonces.json")}function e_e(e){switch(e.kind){case"intent_elaborate":return"intent.elaborate";case"stage_elaborate":return`stages/${e.stage}/elaborate`;case"stage_decompose":return`stages/${e.stage}/decompose`}}function t_e(e){let t=bIt(e);if(!SIt(t))return{};try{let n=L$n(t,"utf8"),r=JSON.parse(n);return!r||typeof r!="object"||Array.isArray(r)?{}:r}catch{return{}}}function n_e(e,t){let n=bIt(e);if(Object.keys(t).length===0){if(SIt(n))try{U$n(n)}catch{}return}F$n(n,`${JSON.stringify(t,null,2)} +`)}function V6(e,t){let n=t_e(e.slug),r=e_e(e),i=n[r];if(i&&i.tied_to===t)return i.nonce;let s=D$n(16).toString("hex");return n[r]={nonce:s,tied_to:t},n_e(e.slug,n),s}function Ix(e,t){if(!t||t.length===0)return{ok:!1,reason:"missing"};let n=t_e(e.slug),r=e_e(e),i=n[r];return i?i.nonce!==t?{ok:!1,reason:"mismatch"}:(delete n[r],n_e(e.slug,n),{ok:!0}):{ok:!1,reason:"missing"}}function r_e(e){let t=t_e(e.slug),n=e_e(e);t[n]&&(delete t[n],n_e(e.slug,t))}var xx=v(()=>{"use strict";ze()});import{existsSync as TIt,readFileSync as vIt}from"node:fs";import{join as RIt}from"node:path";function s_e(e,t){let n;try{n=ce(e)}catch{return null}let r=RIt(n,"intent.md");if(!TIt(r))return null;let i=vS(),s=Number(i.split(".")[0]??"0"),o=EIt(r);if(s>=4){let f=typeof o.plugin_version=="string"?o.plugin_version:"0",p=Number(f.split(".")[0]??"0")||0,h=p===s&&e3(n);if(p>s)Ke("haiku.migrate.skipped_no_regress",{intent:e,source:f,target:i});else if(p0){pSe(`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.`),Gv(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)}),Gv(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.`}})}}}eIt(n),TSt(),bTt();let a=o.studio||"";if(!a)return Gv(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 Gv(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 Gv(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=sIt(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=uIt(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=lIt(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=Vkt(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=Zkt(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=gIt(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=fIt(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=qkt(e,a);if(f.action)return Gv(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?H$n(e,l.action):null;return Gv(e,{position:l,action:d})}function AIt(e,t){let n=s_e(e,t);return n?n.action?n.action:{action:"noop",intent:e,message:"Mid-wave noop. In-flight subagents are still working \u2014 wait for them to terminate, then retick."}:{action:"error",message:`Intent '${e}' not found`}}function EIt(e){let t=vIt(e,"utf8");return(0,i_e.default)(t).data}function H$n(e,t){let n={...t,action:t.kind,intent:e};if(t.kind==="elaborate_loop"){let r=q$n(e,t);Object.keys(r).length>0&&(n.verifier_nonces=r)}return n}function q$n(e,t){let n={};for(let r of t.signals_unmet)if(r.signal==="verify_conversation")if(t.stage){let i=_It(e,t.stage);n.verify_conversation=V6({kind:"stage_elaborate",slug:e,stage:t.stage},i)}else n.verify_conversation=V6({kind:"intent_elaborate",slug:e},null);else if(r.signal==="verify_decompose"&&t.stage){let i=_It(e,t.stage);n.verify_decompose=V6({kind:"stage_decompose",slug:e,stage:t.stage},i)}return n}function _It(e,t){let n=RIt(ce(e),"stages",t,"elaboration.md");if(!TIt(n))return null;try{let r=vIt(n,"utf8"),s=(0,i_e.default)(r).data.recorded_at;return typeof s=="string"&&s.length>0?s:null}catch{return null}}function Gv(e,t){let n=Ukt(e,t.action),r=t;if(n!==null){let i=Fkt(e,n);r={position:t.position,action:i}}return r.action&&Kd(e,{type:"tick_committed",action:r.action.action??"unknown"}),Dkt(e,r.action),wkt(e,r.position.action),r}var i_e,o_e=v(()=>{"use strict";i_e=Re(Kt(),1);hx();ze();vo();p_();Nh();t3();gkt();ykt();Skt();bkt();Tkt();vkt();H1();KEe();o1();t3();ns();Oa();jkt();Bkt();Wkt();Jkt();tIt();oIt();dIt();pIt();yIt();xx()});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 xn(e,t){return`${B$n} ${e} -${t}`}var o$n,Fv=v(()=>{"use strict";o$n="**ANNOUNCE TO USER (post in chat now):**"});function uIt(e){return e.includes("Review timeout")||e.includes("Session timeout")||e.includes("timeout")||e.includes("Timeout")}function lIt(e){return e.includes("lost presence")}function dIt(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 fIt(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 pIt=v(()=>{"use strict"});function ye(e){return{content:[{type:"text",text:e}]}}var vs=v(()=>{"use strict"});function a$n(e,t){let n=e;if(!t.subagents.supported)return n=n.replace(/Spawn one `Task` subagent per artifact\b[^.]*\./g,"Execute each artifact task sequentially \u2014 complete one before starting the next."),n=n.replace(/Spawn a subagent for the "([^"]+)" hat\./g,'Execute the "$1" hat task directly.'),n=n.replace(/spawn one Agent subagent per unit \*\*in a single message\*\*/g,"execute each unit sequentially"),n=n.replace(/Spawn one subagent per review agent \(in parallel\)/g,"Execute each review agent check sequentially"),n=n.replace(/Spawn ALL of them in a single response \(parallel\)\./g,"Execute them one at a time."),n=n.replace(/\*\*IMMEDIATELY\*\* spawn one Agent subagent per unit \*\*in a single message\*\*[^.]*\./g,"**IMMEDIATELY** start executing units one at a time. No questions, no confirmation, no menu."),n=n.replace(/Agent type: `[^`]+`\n?/g,""),n=n.replace(/Each subagent inherits worktree scoping via the `subagent-context` hook\./g,""),n=n.replace(/\bsubagent\b/g,"task"),n=n.replace(/\bSubagent\b/g,"Task"),n;let r=t.subagents.toolNames[0]||"Agent";return r!=="Agent"&&(n=n.replace(/`Agent`/g,`\`${r}\``),n=n.replace(/one Agent subagent/g,`one \`${r}\` call`),n=n.replace(/Agent tool calls/g,`\`${r}\` calls`),n=n.replace(/Agent tool's `model:`/g,`\`${r}\` tool's model`),n=n.replace(/tool="Agent"/g,`tool="${r}"`)),r!=="Task"&&(n=n.replace(/`Task` subagent/g,`\`${r}\``),n=n.replace(/tool="Task"/g,`tool="${r}"`)),t.hooks||(n=n.replace(/Each subagent inherits worktree scoping via the `subagent-context` hook\. /g,"")),t.subagents.parallelSpawn||(n=n.replace(/\*\*in a single message\*\* \(all [^)]+\)/g,""),n=n.replace(/Spawn ALL of them in a single response \(parallel\)\./g,"Execute them one at a time.")),n}function c$n(e,t){return t.promptsAsSlashCommands?e:e.replace(/\/haiku:(\w[\w-]*)/g,(n,r)=>LP(r))}function u$n(e,t){if(t.nativeAskUser)return e;let n=e;return n=n.replace(/`AskUserQuestion`\s*with\s*(an\s*)?`options\[\]`\s*array/g,"a numbered list of options"),n=n.replace(/\| Scope decisions, tradeoffs, A\/B\/C choices \| `AskUserQuestion` with options\[\] \|[^\n]*/g,"| Scope decisions, tradeoffs, A/B/C choices | Present a numbered list of options |"),n=n.replace(/Use `AskUserQuestion`\b/g,"Present options to the user"),n=n.replace(/`AskUserQuestion`/g,"a structured question with options"),n=n.replace(/\*\*Good:\*\* `AskUserQuestion\(\{[^}]+\}\)`/g,'**Good:** Presenting clear numbered options like "1. OAuth 2.0 + PKCE, 2. Magic link, 3. SSO via SAML, 4. Other"'),n}function l$n(e,t){if(t.modelProvider==="anthropic")return e;let n=e;for(let[r,i]of Object.entries(t.modelTierMap))r!==i&&(n=n.replace(new RegExp(`model: "${r}"`,"g"),`model: "${i}"`));return n}function d$n(e,t){return t.hooks?e:e.replace(/\bpermission_mode\b[^\n]*/g,"")}function f$n(e,t){if(t.hooks)return e;let n=e;return n=n.replace(/via the `subagent-context` hook/g,"automatically"),n=n.replace(/`subagent-context` hook/g,"context injection"),n}function L5(e){let t=Mi();if(sh())return e;let n=e;return n=a$n(n,t),n=c$n(n,t),n=u$n(n,t),n=l$n(n,t),n=d$n(n,t),n=f$n(n,t),n}var Xbe=v(()=>{"use strict";Ef()});function hIt(e,t,n){b0(n);let r=X1(e,t,n,pe(e)),i=L5(r),{tell_user:s,next_step:o,...a}=n;return`${JSON.stringify(a,null,2)} +${t}`}var B$n,Vv=v(()=>{"use strict";B$n="**ANNOUNCE TO USER (post in chat now):**"});function wIt(e){return e.includes("Review timeout")||e.includes("Session timeout")||e.includes("timeout")||e.includes("Timeout")}function kIt(e){return e.includes("lost presence")}function IIt(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 xIt(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 OIt=v(()=>{"use strict"});function ye(e){return{content:[{type:"text",text:e}]}}var vs=v(()=>{"use strict"});function z$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 G$n(e,t){return t.promptsAsSlashCommands?e:e.replace(/\/haiku:(\w[\w-]*)/g,(n,r)=>WN(r))}function V$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 W$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 K$n(e,t){return t.hooks?e:e.replace(/\bpermission_mode\b[^\n]*/g,"")}function Y$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 W6(e){let t=Mi();if(oh())return e;let n=e;return n=z$n(n,t),n=G$n(n,t),n=V$n(n,t),n=W$n(n,t),n=K$n(n,t),n=Y$n(n,t),n}var a_e=v(()=>{"use strict";_f()});function PIt(e,t,n){Ox(n);let r=sU(e,t,n,ce(e)),i=W6(r),{tell_user:s,next_step:o,...a}=n;return`${JSON.stringify(a,null,2)} --- -${i}`}var mIt=v(()=>{"use strict";Xbe();Vd();ze()});import{existsSync as gIt,mkdirSync as p$n,readdirSync as h$n,readFileSync as m$n,writeFileSync as g$n}from"node:fs";import{join as Wd}from"node:path";function $1(e){if(!gIt(e))return{};let t=m$n(e,"utf8"),{data:n}=re(t);return n}function Q1(e,t,n){let r=pe(e),i=Wd(r,"intent.md");if(t==="intent_completion"||t==="intent_review"){let u=$1(i),l=u.approvals&&typeof u.approvals=="object"?u.approvals:{};l.user=Pl(i),Le(i,"approvals",l);return}let s=t==="elaborate_to_execute",o=s?"reviews":"approvals",a=Wd(r,"stages",n,"units");if(!gIt(a))return;let c=h$n(a);for(let u of c){if(!u.endsWith(".md"))continue;let l=Wd(a,u),d=$1(l),f=d[o]&&typeof d[o]=="object"?d[o]:{};if(s){let p=Array.isArray(d.inputs)?d.inputs:[];f.user=Pl(l,{intentDir:r,unitInputs:p})}else f.user=Hd();Le(l,o,f)}}var y$n,yIt,SIt=v(()=>{"use strict";yr();Yf();Vd();ih();s1();Qc();ji();uo();eY();ze();Gi();Fv();pIt();vs();mIt();y$n=(e,t)=>{};yIt={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:cx,async handle(e,t){let n=Be(e,Hme,"haiku_await_gate");if(n)return n;let r=e,i=r.intent,s=r.state_file,o=Wd(pe(i),"intent.md"),a=$1(o),c=a.studio||"",{findCurrentStage:u}=await Promise.resolve().then(()=>(Oa(),Ix)),l=c?u(i,c)??"":"",d=a.phase||"",f=!l||d==="intent_review"||d==="awaiting_completion_review"||d==="intent_completion",p=WD(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=Qbe();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=>hIt(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 ZE(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=$1(Wd(pe(i),"intent.md")).studio||"",L=tU(i,U);if(L.length>0)return ye(N({action:"error",intent:i,message:`Cannot complete intent '${i}': the following stages have not completed: [${L.join(", ")}]. Run those stages to completion before approving intent_completion.`,incomplete_stages:L}));Q1(i,"intent_completion",S),F5(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"){Q1(i,"intent_review",S);let U=Wd(process.cwd(),A,"intent.md");Le(U,"intent_reviewed",!0),S&&_?eU(i,S,_):(Kh(U,["phase"]),ci(i)),wt(`haiku: intent ${i} approved by user`),Xr(i,s);let L={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(L))}if(T==="elaborate_to_execute"&&_){Q1(i,"elaborate_to_execute",S),eU(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){Q1(i,"stage_gate",S),D5(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))}Q1(i,"stage_gate",S),_0(i,S,"advanced"),Xr(i,s);let M=$1(Wd(pe(i),"intent.md")).studio||"",q=U5(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"){_0(i,S,"advanced"),Xr(i,s);let M;if(Ae()){let{openStagePullRequest:U}=await Promise.resolve().then(()=>(yr(),zL)),L=U({slug:i,stage:S});if(L.createdUrl){try{let H=Wd(pe(i),"intent.md");Le(H,"external_review_url",L.createdUrl)}catch{}M=zn(`The user routed stage "${S}" to external review. The engine opened the MR for you: ${L.createdUrl}`,`Tell the user: "I opened the MR at ${L.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 L.compareUrl?M=zn(`The user routed stage "${S}" to external review. ${L.message}`,`The engine couldn't open the MR programmatically (${L.prError??L.pushError??"no gh/glab on PATH"}). Tell the user to click ${L.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.`,`${L.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=Wd(process.cwd(),A),B=(T==="intent_review"&&!S?!0:T==="elaborate_to_execute"||T==="intent_review"?$L(K,S):!1)||!S?[]:_5(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=Wd(pe(i),"intent.md");Le(M,"completion_review_dispatched",!1),Le(M,"completion_review_skipped",!1),y$n(i,""),ci(i),wt(`haiku: intent ${i} completion-review rejected, reopening for revisit`),Xr(i,s);let q={action:"changes_requested",intent:i,stage:null,gate_context:"intent_completion",feedback: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=Wd(process.cwd(),".haiku","logs");p$n(K,{recursive:!0}),g$n(Wd(K,"gate-review-error.log"),`${new Date().toISOString()} +${i}`}var NIt=v(()=>{"use strict";a_e();Yd();ze()});import{existsSync as CIt,mkdirSync as Z$n,readdirSync as J$n,readFileSync as X$n,writeFileSync as Q$n}from"node:fs";import{join as Fl}from"node:path";function aU(e){if(!CIt(e))return{};let t=X$n(e,"utf8"),{data:n}=re(t);return n}function oU(e,t,n){let r=ce(e),i=Fl(r,"intent.md");if(t==="intent_completion"||t==="intent_review"){let u=aU(i),l=u.approvals&&typeof u.approvals=="object"?u.approvals:{};l.user=Cl(i),Ne(i,"approvals",l);return}let s=t==="elaborate_to_execute",o=s?"reviews":"approvals",a=Fl(r,"stages",n,"units");if(!CIt(a))return;let c=J$n(a);for(let u of c){if(!u.endsWith(".md"))continue;let l=Fl(a,u),d=aU(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=zd();Ne(l,o,f)}}var $$n,MIt,DIt=v(()=>{"use strict";ar();Xf();Yd();sh();p1();$c();ji();uo();uZ();ze();zi();Vv();OIt();vs();NIt();$$n=(e,t)=>{};MIt={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:m0,async handle(e,t){let n=Be(e,Zme,"haiku_await_gate");if(n)return n;let r=e,i=r.intent,s=r.state_file,o=Fl(ce(i),"intent.md"),a=aU(o),c=a.studio||"",{findCurrentStage:u}=await Promise.resolve().then(()=>(Oa(),D0)),l=c?u(i,c)??"":"",d=a.phase||"",f=!l||d==="intent_review"||d==="awaiting_completion_review"||d==="intent_completion",p=e1(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=c_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=>PIt(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&&Zh(o,N)}catch{}try{let N=await A(b,{autoOpen:k,reviewUrl:x,timeoutMs:144e5,signal:t}),C=yr(i,S);if(!C.ok)return Xb(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:xn("User signaled advance. Run the next tick \u2014 the cursor will pick up on-disk feedback / approvals / drift and emit the natural next action.","Call haiku_run_next to continue.")}));if(N.decision==="approved"){if(T==="intent_completion"){let U=aU(Fl(ce(i),"intent.md")).studio||"",M=uU(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}));oU(i,"intent_completion",S),Z6(i),Xr(i,s);let j={action:"intent_complete",intent:i,studio:U,message:xn(`The user approved final review for "${i}" \u2014 intent complete.`,"Report the completion summary to the user.")};return ye(P(j))}if(T==="intent_review"){oU(i,"intent_review",S);let U=Fl(process.cwd(),R,"intent.md");Ne(U,"intent_reviewed",!0),S&&_?cU(i,S,_):(Zh(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?xn(`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.`):xn(`The user approved intent "${i}" \u2014 beginning stage 0.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`)};return ye(P(M))}if(T==="elaborate_to_execute"&&_){oU(i,"elaborate_to_execute",S),cU(i,S,_),Xr(i,s);let U={action:"advance_phase",intent:i,stage:S,from_phase:"elaborate",to_phase:_,message:xn(`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){oU(i,"stage_gate",S),K6(i,S,E),Xr(i,s);let U={action:"advance_stage",intent:i,stage:S,next_stage:E,gate_outcome:"advanced",message:xn(`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))}oU(i,"stage_gate",S),Px(i,S,"advanced"),Xr(i,s);let F=aU(Fl(ce(i),"intent.md")).studio||"",V=Y6(i,F,xn(`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"){Px(i,S,"advanced"),Xr(i,s);let F,V=Tv(i,S);if(Ee()&&V?.url){let M=V.url,{markPullRequestReady:j}=await Promise.resolve().then(()=>(ar(),MI)),H=j(M);try{let K=Fl(ce(i),"intent.md");Ne(K,"external_review_url",M)}catch{}H.ok?(zb(i,S,"status","ready"),zb(i,S,"ready_at",mn()),F=xn(`The user routed stage "${S}" to external review. The engine flipped the stage's draft PR to ready: ${M}`,`Tell the user: "The stage PR at ${M} is ready for review \u2014 merge it when you're satisfied. Run /haiku:haiku-pickup after the merge to continue." It targets \`haiku/${i}/main\` so the engine detects the merge.`)):(console.error(`[haiku] flip-to-ready of stage PR ${M} failed: ${H.error}`),F=xn(`The user routed stage "${S}" to external review. The stage's draft PR is at ${M}.`,`The engine couldn't flip the draft to ready (${H.error??"unknown"}). Tell the user to mark ${M} ready and merge it \u2014 it targets \`haiku/${i}/main\` so the merge signal lands correctly. Run /haiku:haiku-pickup after the merge.`))}else if(Ee()){let{openStagePullRequest:M}=await Promise.resolve().then(()=>(ar(),MI)),j=M({slug:i,stage:S});if(j.createdUrl){try{let H=Fl(ce(i),"intent.md");Ne(H,"external_review_url",j.createdUrl)}catch{}F=xn(`The user routed stage "${S}" to external review. The engine opened the MR for you: ${j.createdUrl}`,`Tell the user: "I opened the MR at ${j.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 j.compareUrl?F=xn(`The user routed stage "${S}" to external review. ${j.message}`,`The engine couldn't open the MR programmatically (${j.prError??j.pushError??"no gh/glab on PATH"}). Tell the user to click ${j.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=xn(`The user routed stage "${S}" to external review.`,`${j.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=xn(`The user routed stage "${S}" to external review.`,`Submit the work for review through your project's review process. Record the review URL via haiku_run_next { intent: "${i}", external_review_url: "" }. Run /haiku:haiku-pickup again after the PR is merged.`);let U={action:"external_review_requested",intent:i,stage:S,feedback:N.feedback,message:F};return ye(P(U))}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=Fl(process.cwd(),R),q=(T==="intent_review"&&!S?!0:T==="elaborate_to_execute"||T==="intent_review"?aL(W,S):!1)||!S?[]:N6(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:xn(`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=Fl(ce(i),"intent.md");Ne(F,"completion_review_dispatched",!1),Ne(F,"completion_review_skipped",!1),$$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:xn(`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:xn(`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:xn(`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=Fl(process.cwd(),".haiku","logs");Z$n(W,{recursive:!0}),Q$n(Fl(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(uIt(C))return fIt(i);if(lIt(C)){Xr(i,s);let K=dIt(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 EIt,mkdirSync as S$n,readFileSync as E$n,renameSync as b$n,writeFileSync as _$n}from"node:fs";import{dirname as T$n,join as bIt}from"node:path";function _It(e,t){let n=ve();return bIt(n,"intents",e,"stages",t,"coverage-decisions.json")}function v$n(e,t){let n=_It(e,t);if(!EIt(n))return{stage:t,decisions:[]};try{let r=JSON.parse(E$n(n,"utf8"));return{stage:r.stage||t,decisions:Array.isArray(r.decisions)?r.decisions:[]}}catch{return{stage:t,decisions:[]}}}function A$n(e,t,n){let r=_It(e,t);S$n(T$n(r),{recursive:!0});let i=`${r}.tmp`;_$n(i,`${JSON.stringify(n,null,2)} -`),b$n(i,r)}function $be(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var TIt,vIt=v(()=>{"use strict";ze();Gi();TIt={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 $be("empty_rationale","`rationale` must contain at least one non-whitespace character.");if(i==="covered-by-unit"&&(!o||o.trim()===""))return $be("unit_required","`unit` is required when decision is `covered-by-unit`.");let c=ve(),u=bIt(c,"intents",t,"stages",n);if(!EIt(u))return $be("stage_not_found",`Stage '${n}' not found for intent '${t}'.`);let l=v$n(t,n),d=l.decisions.findIndex(p=>p.path===r),f={path:r,decision:i,rationale:s.trim(),acknowledged_at:new Date().toISOString().replace(/\.\d{3}Z$/,"Z"),...o?{unit:o}:{}};return d>=0?l.decisions[d]=f:l.decisions.push(f),A$n(t,n,l),{content:[{type:"text",text:JSON.stringify({ok:!0,acknowledged:f,total_decisions:l.decisions.length,next_step:"Call `haiku_run_next` to re-run the cumulative-input-coverage validator. If any files remain unreferenced + unacknowledged, the validator will re-emit `coverage_review_required` with the remaining list."},null,2)}]}}}});function r_e(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function OIt(e){qv=e}function $n(e,t=""){let n=typeof e=="string"?e:e.source,r={replace:(i,s)=>{let o=typeof s=="string"?s:s.source;return o=o.replace(tu.caret,"$1"),n=n.replace(i,o),r},getRegex:()=>new RegExp(n,t)};return r}function $h(e,t){if(t){if(tu.escapeTest.test(e))return e.replace(tu.escapeReplace,wIt)}else if(tu.escapeTestNoEncode.test(e))return e.replace(tu.escapeReplaceNoEncode,wIt);return e}function kIt(e){try{e=encodeURI(e).replace(tu.percentDecode,"%")}catch{return null}return e}function IIt(e,t){let n=e.replace(tu.findPipe,(s,o,a)=>{let c=!1,u=o;for(;--u>=0&&a[u]==="\\";)c=!c;return c?"|":" |"}),r=n.split(tu.splitPipe),i=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length0?-2:-1}function uer(e,t=0){let n=t,r="";for(let i of e)if(i===" "){let s=4-n%4;r+=" ".repeat(s),n+=s}else r+=i,n++;return r}function xIt(e,t,n,r,i){let s=t.href,o=t.title||null,a=e[1].replace(i.other.outputLinkReplace,"$1");r.state.inLink=!0;let c={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:s,title:o,text:a,tokens:r.inlineTokens(a)};return r.state.inLink=!1,c}function ler(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(` +`,{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(wIt(C))return xIt(i);if(kIt(C)){Xr(i,s);let W=IIt(x,a,S);return ye(P({action:"gate_awaiting_client",intent:i,stage:S,review_url:W||null,message:xn(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 LIt,mkdirSync as eer,readFileSync as ter,renameSync as ner,writeFileSync as rer}from"node:fs";import{dirname as ier,join as UIt}from"node:path";function FIt(e,t){let n=ve();return UIt(n,"intents",e,"stages",t,"coverage-decisions.json")}function ser(e,t){let n=FIt(e,t);if(!LIt(n))return{stage:t,decisions:[]};try{let r=JSON.parse(ter(n,"utf8"));return{stage:r.stage||t,decisions:Array.isArray(r.decisions)?r.decisions:[]}}catch{return{stage:t,decisions:[]}}}function oer(e,t,n){let r=FIt(e,t);eer(ier(r),{recursive:!0});let i=`${r}.tmp`;rer(i,`${JSON.stringify(n,null,2)} +`),ner(i,r)}function u_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var jIt,HIt=v(()=>{"use strict";ze();zi();jIt={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 u_e("empty_rationale","`rationale` must contain at least one non-whitespace character.");if(i==="covered-by-unit"&&(!o||o.trim()===""))return u_e("unit_required","`unit` is required when decision is `covered-by-unit`.");let c=ve(),u=UIt(c,"intents",t,"stages",n);if(!LIt(u))return u_e("stage_not_found",`Stage '${n}' not found for intent '${t}'.`);let l=ser(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),oer(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 p_e(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function KIt(e){Yv=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 tm(e,t){if(t){if(nu.escapeTest.test(e))return e.replace(nu.escapeReplace,zIt)}else if(nu.escapeTestNoEncode.test(e))return e.replace(nu.escapeReplaceNoEncode,zIt);return e}function GIt(e){try{e=encodeURI(e).replace(nu.percentDecode,"%")}catch{return null}return e}function VIt(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 Ver(e,t=0){let n=t,r="";for(let i of e)if(i===" "){let s=4-n%4;r+=" ".repeat(s),n+=s}else r+=i,n++;return r}function WIt(e,t,n,r,i){let s=t.href,o=t.title||null,a=e[1].replace(i.other.outputLinkReplace,"$1");r.state.inLink=!0;let c={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:s,title:o,text:a,tokens:r.inlineTokens(a)};return r.state.inLink=!1,c}function Wer(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,R$n,tu,w$n,k$n,I$n,sU,x$n,i_e,NIt,PIt,O$n,s_e,N$n,o_e,P$n,C$n,G5,a_e,M$n,CIt,L$n,c_e,AIt,D$n,U$n,F$n,j$n,MIt,H$n,T0,z5,u_e,q$n,LIt,B$n,G$n,z$n,DIt,V$n,W$n,UIt,K$n,Z$n,Y$n,J$n,X$n,Q$n,$$n,eer,ter,ner,H5,rer,FIt,jIt,ier,RIt,l_e,ser,e_e,oer,j5,nU,aer,wIt,q5,ap,B5,d_e,cp,iU,der,Hv,hIi,mIi,gIi,yIi,SIi,EIi,bIi,HIt=v(()=>{qv=r_e();jv={exec:()=>null};R$n=(()=>{try{return!!new RegExp("(?<=1)(?/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}>`)},w$n=/^(?:[ \t]*(?:\n|$))+/,k$n=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,I$n=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,sU=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,x$n=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,i_e=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,NIt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,PIt=$n(NIt).replace(/bull/g,i_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(),O$n=$n(NIt).replace(/bull/g,i_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(),s_e=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,N$n=/^[^\n]+/,o_e=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,P$n=$n(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",o_e).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),C$n=$n(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,i_e).getRegex(),G5="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",a_e=/|$))/,M$n=$n("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",a_e).replace("tag",G5).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),CIt=$n(s_e).replace("hr",sU).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",G5).getRegex(),L$n=$n(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",CIt).getRegex(),c_e={blockquote:L$n,code:k$n,def:P$n,fences:I$n,heading:x$n,hr:sU,html:M$n,lheading:PIt,list:C$n,newline:w$n,paragraph:CIt,table:jv,text:N$n},AIt=$n("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",sU).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",G5).getRegex(),D$n={...c_e,lheading:O$n,table:AIt,paragraph:$n(s_e).replace("hr",sU).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",AIt).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",G5).getRegex()},U$n={...c_e,html:$n(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",a_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(s_e).replace("hr",sU).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",PIt).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},F$n=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,j$n=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,MIt=/^( {2,}|\\)\n(?!\s*$)/,H$n=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",R$n?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),DIt=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,V$n=$n(DIt,"u").replace(/punct/g,T0).getRegex(),W$n=$n(DIt,"u").replace(/punct/g,LIt).getRegex(),UIt="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",K$n=$n(UIt,"gu").replace(/notPunctSpace/g,u_e).replace(/punctSpace/g,z5).replace(/punct/g,T0).getRegex(),Z$n=$n(UIt,"gu").replace(/notPunctSpace/g,G$n).replace(/punctSpace/g,B$n).replace(/punct/g,LIt).getRegex(),Y$n=$n("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,u_e).replace(/punctSpace/g,z5).replace(/punct/g,T0).getRegex(),J$n=$n(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,T0).getRegex(),X$n="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",Q$n=$n(X$n,"gu").replace(/notPunctSpace/g,u_e).replace(/punctSpace/g,z5).replace(/punct/g,T0).getRegex(),$$n=$n(/\\(punct)/,"gu").replace(/punct/g,T0).getRegex(),eer=$n(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),ter=$n(a_e).replace("(?:-->|$)","-->").getRegex(),ner=$n("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",ter).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),H5=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,rer=$n(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",H5).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),FIt=$n(/^!?\[(label)\]\[(ref)\]/).replace("label",H5).replace("ref",o_e).getRegex(),jIt=$n(/^!?\[(ref)\](?:\[\])?/).replace("ref",o_e).getRegex(),ier=$n("reflink|nolink(?!\\()","g").replace("reflink",FIt).replace("nolink",jIt).getRegex(),RIt=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,l_e={_backpedal:jv,anyPunctuation:$$n,autolink:eer,blockSkip:z$n,br:MIt,code:j$n,del:jv,delLDelim:jv,delRDelim:jv,emStrongLDelim:V$n,emStrongRDelimAst:K$n,emStrongRDelimUnd:Y$n,escape:F$n,link:rer,nolink:jIt,punctuation:q$n,reflink:FIt,reflinkSearch:ier,tag:ner,text:H$n,url:jv},ser={...l_e,link:$n(/^!?\[(label)\]\((.*?)\)/).replace("label",H5).getRegex(),reflink:$n(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",H5).getRegex()},e_e={...l_e,emStrongRDelimAst:Z$n,emStrongLDelim:W$n,delLDelim:J$n,delRDelim:Q$n,url:$n(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",RIt).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]*?(?:(?=[\\":">",'"':""","'":"'"},wIt=e=>aer[e];q5=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:rU(n,` -`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=ler(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let r=rU(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:rU(t[0],` -`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=rU(t[0],` +`)}function Nr(e,t){return Kv.parse(e,t)}var Yv,Wv,aer,nu,cer,uer,ler,pU,der,h_e,YIt,ZIt,fer,m_e,per,g_e,her,mer,e5,y_e,ger,JIt,yer,S_e,qIt,Ser,ber,Eer,_er,XIt,Ter,Nx,t5,b_e,ver,QIt,Rer,Aer,wer,$It,ker,Ier,e0t,xer,Oer,Per,Ner,Cer,Mer,Der,Ler,Uer,Fer,X6,jer,t0t,n0t,Her,BIt,E_e,qer,l_e,Ber,J6,lU,zer,zIt,Q6,cp,$6,__e,up,fU,Ker,Kv,e0i,t0i,n0i,r0i,i0i,s0i,o0i,r0t=v(()=>{Yv=p_e();Wv={exec:()=>null};aer=(()=>{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)}}>`)},cer=/^(?:[ \t]*(?:\n|$))+/,uer=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,ler=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,pU=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,der=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,h_e=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,YIt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,ZIt=$n(YIt).replace(/bull/g,h_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(),fer=$n(YIt).replace(/bull/g,h_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(),m_e=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,per=/^[^\n]+/,g_e=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,her=$n(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",g_e).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),mer=$n(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,h_e).getRegex(),e5="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",y_e=/|$))/,ger=$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",y_e).replace("tag",e5).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),JIt=$n(m_e).replace("hr",pU).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",e5).getRegex(),yer=$n(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",JIt).getRegex(),S_e={blockquote:yer,code:uer,def:her,fences:ler,heading:der,hr:pU,html:ger,lheading:ZIt,list:mer,newline:cer,paragraph:JIt,table:Wv,text:per},qIt=$n("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",pU).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",e5).getRegex(),Ser={...S_e,lheading:fer,table:qIt,paragraph:$n(m_e).replace("hr",pU).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",qIt).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",e5).getRegex()},ber={...S_e,html:$n(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",y_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:Wv,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:$n(m_e).replace("hr",pU).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",ZIt).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Eer=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,_er=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,XIt=/^( {2,}|\\)\n(?!\s*$)/,Ter=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",aer?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),$It=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,ker=$n($It,"u").replace(/punct/g,Nx).getRegex(),Ier=$n($It,"u").replace(/punct/g,QIt).getRegex(),e0t="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",xer=$n(e0t,"gu").replace(/notPunctSpace/g,b_e).replace(/punctSpace/g,t5).replace(/punct/g,Nx).getRegex(),Oer=$n(e0t,"gu").replace(/notPunctSpace/g,Aer).replace(/punctSpace/g,Rer).replace(/punct/g,QIt).getRegex(),Per=$n("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,b_e).replace(/punctSpace/g,t5).replace(/punct/g,Nx).getRegex(),Ner=$n(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Nx).getRegex(),Cer="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",Mer=$n(Cer,"gu").replace(/notPunctSpace/g,b_e).replace(/punctSpace/g,t5).replace(/punct/g,Nx).getRegex(),Der=$n(/\\(punct)/,"gu").replace(/punct/g,Nx).getRegex(),Ler=$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(),Uer=$n(y_e).replace("(?:-->|$)","-->").getRegex(),Fer=$n("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",Uer).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),X6=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,jer=$n(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",X6).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),t0t=$n(/^!?\[(label)\]\[(ref)\]/).replace("label",X6).replace("ref",g_e).getRegex(),n0t=$n(/^!?\[(ref)\](?:\[\])?/).replace("ref",g_e).getRegex(),Her=$n("reflink|nolink(?!\\()","g").replace("reflink",t0t).replace("nolink",n0t).getRegex(),BIt=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,E_e={_backpedal:Wv,anyPunctuation:Der,autolink:Ler,blockSkip:wer,br:XIt,code:_er,del:Wv,delLDelim:Wv,delRDelim:Wv,emStrongLDelim:ker,emStrongRDelimAst:xer,emStrongRDelimUnd:Per,escape:Eer,link:jer,nolink:n0t,punctuation:ver,reflink:t0t,reflinkSearch:Her,tag:Fer,text:Ter,url:Wv},qer={...E_e,link:$n(/^!?\[(label)\]\((.*?)\)/).replace("label",X6).getRegex(),reflink:$n(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",X6).getRegex()},l_e={...E_e,emStrongRDelimAst:Oer,emStrongLDelim:Ier,delLDelim:Ner,delRDelim:Mer,url:$n(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",BIt).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]*?(?:(?=[\\":">",'"':""","'":"'"},zIt=e=>zer[e];Q6=class{options;rules;lexer;constructor(e){this.options=e||Yv}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:dU(n,` +`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=Wer(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=dU(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:dU(t[0],` +`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=dU(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=uer(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=Ver(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=IIt(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=rU(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)),xIt(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 xIt(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 t_e{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||qv,this.options.tokenizer=this.options.tokenizer||new q5,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:tu,block:j5.normal,inline:nU.normal};this.options.pedantic?(n.block=j5.pedantic,n.inline=nU.pedantic):this.options.gfm&&(n.block=j5.gfm,this.options.breaks?n.inline=nU.breaks:n.inline=nU.gfm),this.tokenizer.rules=n}static get rules(){return{block:j5,inline:nU}}static lex(t,n){return new t_e(n).lex(t)}static lexInline(t,n){return new t_e(n).inlineTokens(t)}lex(t){t=t.replace(tu.carriageReturn,` -`),this.blockTokens(t,this.tokens);for(let n=0;n(i=o.call({lexer:this},t,n))?(t=t.substring(i.raw.length),n.push(i),!0):!1))continue;if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length);let o=n.at(-1);i.raw.length===1&&o!==void 0?o.raw+=` +`,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=VIt(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=dU(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=Ger(t[2],"()");if(s===-2)return;if(s>-1){let o=(t[0].indexOf("!")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,o).trim(),t[3]=""}}let r=t[2],i="";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(r);s&&(r=s[1],i=s[3])}else i=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),WIt(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=t[r.toLowerCase()];if(!i){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return WIt(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,s,o,a=i,c=0,u=r[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,t=t.slice(-1*e.length+i);(r=u.exec(t))!==null;){if(s=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!s)continue;if(o=[...s].length,r[3]||r[4]){a+=o;continue}else if((r[5]||r[6])&&i%3&&!((i+o)%3)){c+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a+c);let l=[...r[0]][0].length,d=e.slice(0,i+r.index+l+o);if(Math.min(i,o)%2){let p=d.slice(1,-1);return{type:"em",raw:d,text:p,tokens:this.lexer.inlineTokens(p)}}let f=d.slice(2,-2);return{type:"strong",raw:d,text:f,tokens:this.lexer.inlineTokens(f)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,n=""){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,s,o,a=i,c=this.rules.inline.delRDelim;for(c.lastIndex=0,t=t.slice(-1*e.length+i);(r=c.exec(t))!==null;){if(s=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!s||(o=[...s].length,o!==i))continue;if(r[3]||r[4]){a+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a);let u=[...r[0]][0].length,l=e.slice(0,i+r.index+u+o),d=l.slice(i,-i);return{type:"del",raw:l,text:d,tokens:this.lexer.inlineTokens(d)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,r;return t[2]==="@"?(n=t[1],r="mailto:"+n):(n=t[1],r=n),{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,r;if(t[2]==="@")n=t[0],r="mailto:"+n;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(i!==t[0]);n=t[0],t[1]==="www."?r="http://"+t[0]:r=t[0]}return{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}},cp=class d_e{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Yv,this.options.tokenizer=this.options.tokenizer||new Q6,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:J6.normal,inline:lU.normal};this.options.pedantic?(n.block=J6.pedantic,n.inline=lU.pedantic):this.options.gfm&&(n.block=J6.gfm,this.options.breaks?n.inline=lU.breaks:n.inline=lU.gfm),this.tokenizer.rules=n}static get rules(){return{block:J6,inline:lU}}static lex(t,n){return new d_e(n).lex(t)}static lexInline(t,n){return new d_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+=` @@ -1223,9 +1223,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}},B5=class{options;parser;constructor(e){this.options=e||qv}space(e){return""}code({text:e,lang:t,escaped:n}){let r=(t||"").match(tu.notSpaceStart)?.[0],i=e.replace(tu.endingNewline,"")+` -`;return r?'
'+(n?i:$h(i,!0))+`
-`:"
"+(n?i:$h(i,!0))+`
+`+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}},$6=class{options;parser;constructor(e){this.options=e||Yv}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:tm(i,!0))+`
+`:"
"+(n?i:tm(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)} @@ -1241,35 +1241,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=kIt(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=kIt(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 B5(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 q5(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 iU;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];iU.passThroughHooks.has(s)?i[o]=u=>{if(this.defaults.async&&iU.passThroughHooksRespectAsync.has(s))return(async()=>{let d=await a.call(i,u);return c.call(i,d)})();let l=a.call(i,u);return c.call(i,l)}:i[o]=(...u)=>{if(this.defaults.async)return(async()=>{let d=await a.apply(i,u);return d===!1&&(d=await c.apply(i,u)),d})();let l=a.apply(i,u);return l===!1&&(l=c.apply(i,u)),l}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,s=n.walkTokens;r.walkTokens=function(o){let a=[];return a.push(s.call(this,o)),i&&(a=a.concat(i.call(this,o))),a}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return ap.lex(e,t??this.defaults)}parser(e,t){return cp.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},s=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return s(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return s(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let o=i.hooks?await i.hooks.preprocess(t):t,a=await(i.hooks?await i.hooks.provideLexer(e):e?ap.lex:ap.lexInline)(o,i),c=i.hooks?await i.hooks.processAllTokens(a):a;i.walkTokens&&await Promise.all(this.walkTokens(c,i.walkTokens));let u=await(i.hooks?await i.hooks.provideParser(e):e?cp.parse:cp.parseInline)(c,i);return i.hooks?await i.hooks.postprocess(u):u})().catch(s);try{i.hooks&&(t=i.hooks.preprocess(t));let o=(i.hooks?i.hooks.provideLexer(e):e?ap.lex:ap.lexInline)(t,i);i.hooks&&(o=i.hooks.processAllTokens(o)),i.walkTokens&&this.walkTokens(o,i.walkTokens);let a=(i.hooks?i.hooks.provideParser(e):e?cp.parse:cp.parseInline)(o,i);return i.hooks&&(a=i.hooks.postprocess(a)),a}catch(o){return s(o)}}}onError(e,t){return n=>{if(n.message+=` -Please report this to https://github.com/markedjs/marked.`,e){let r="

An error occurred:

"+$h(n.message+"",!0)+"
";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}},Hv=new der;Pr.options=Pr.setOptions=function(e){return Hv.setOptions(e),Pr.defaults=Hv.defaults,OIt(Pr.defaults),Pr};Pr.getDefaults=r_e;Pr.defaults=qv;Pr.use=function(...e){return Hv.use(...e),Pr.defaults=Hv.defaults,OIt(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=B5;Pr.TextRenderer=d_e;Pr.Lexer=ap;Pr.lexer=ap.lex;Pr.Tokenizer=q5;Pr.Hooks=iU;Pr.parse=Pr;hIi=Pr.options,mIi=Pr.setOptions,gIi=Pr.use,yIi=Pr.walkTokens,SIi=Pr.parseInline,EIi=cp.parse,bIi=ap.lex});function V5(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`${tm(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=GIt(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=GIt(e);if(i===null)return tm(n);e=i;let s=`${tm(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 $6(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 Q6(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 fU;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];fU.passThroughHooks.has(s)?i[o]=u=>{if(this.defaults.async&&fU.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:

"+tm(n.message+"",!0)+"
";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}},Kv=new Ker;Nr.options=Nr.setOptions=function(e){return Kv.setOptions(e),Nr.defaults=Kv.defaults,KIt(Nr.defaults),Nr};Nr.getDefaults=p_e;Nr.defaults=Yv;Nr.use=function(...e){return Kv.use(...e),Nr.defaults=Kv.defaults,KIt(Nr.defaults),Nr};Nr.walkTokens=function(e,t){return Kv.walkTokens(e,t)};Nr.parseInline=Kv.parseInline;Nr.Parser=up;Nr.parser=up.parse;Nr.Renderer=$6;Nr.TextRenderer=__e;Nr.Lexer=cp;Nr.lexer=cp.lex;Nr.Tokenizer=Q6;Nr.Hooks=fU;Nr.parse=Nr;e0i=Nr.options,t0i=Nr.setOptions,n0i=Nr.use,r0i=Nr.walkTokens,i0i=Nr.parseInline,s0i=up.parse,o0i=cp.lex});function n5(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 W5(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 f_e=v(()=>{"use strict";HIt()});import{existsSync as fer}from"node:fs";import{readdir as Zu,readFile as up}from"node:fs/promises";import{basename as oU,join as wi,relative as qIt,resolve as K5}from"node:path";function p_e(e,t){try{return(0,YE.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,YE.default)(r);return console.warn(`[haiku] Recovered duplicate YAML keys in ${t}: kept last occurrence of ${i.join(", ")}`),s}}function BIt(e){let t={...e};for(let n in t){let r=t[n];r instanceof Date&&(t[n]=r.toISOString().split("T")[0])}return t}function GIt(e){let t=e.match(/^# (.+)$/m);return t?t[1].trim():""}function zIt(e){return e.replace(/^# .+$/m,"").trim()}async function aU(e){try{let t=wi(e,"intent.md"),n=await up(t,"utf-8"),{data:r,content:i}=p_e(n,t),s=BIt(r),o=GIt(i),a=zIt(i),c=V5(a);return{slug:oU(e),frontmatter:s,title:o,sections:c,rawContent:n}}catch(t){let n=wi(e,"intent.md");return t.code!=="ENOENT"&&console.warn(`[haiku/shared] Failed to parse ${n}:`,t),null}}async function VIt(e){try{let t=await up(e,"utf-8"),{data:n,content:r}=p_e(t,e),i=BIt(n),s=GIt(r),o=zIt(r),a=V5(o),c=oU(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 Y5(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 VIt(wi(s,c));u&&(u.frontmatter.stage||(u.frontmatter.stage=i.name),t.push(u))}}catch{}}catch{}return t.sort((n,r)=>n.number-r.number)}async function J5(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 per(n,s);t[s]={stage:s,status:o.status,phase:o.phase,started_at:void 0,completed_at:void 0,gate_entered_at:void 0,gate_outcome:void 0}}}catch{}return t}async function per(e,t){let n=wi(e,t),r=wi(n,"units"),i=[];try{let l=(await Zu(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,YE.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 X5(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 up(wi(n,i),"utf-8"),{content:o}=(0,YE.default)(s);t.push({name:i.replace(/\.md$/,""),content:o})}catch{}}catch{}return t}async function Q5(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 up(wi(s,a),"utf-8"),{content:u}=(0,YE.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 up(wi(c,l.name),"utf-8"),{content:f}=(0,YE.default)(d);t.push({stage:i.name,name:`${a}/${l.name.replace(/\.md$/,"")}`,content:f})}catch{}}catch{}}catch{}}catch{}return t}async function WIt(e){let t=[],n;try{n=await 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 WIt(i)):t.push(i)}return t}async function Z5(e,t,n,r){let i=oU(e),s=i.substring(i.lastIndexOf(".")).toLowerCase();if(s===".md")try{let o=await up(e,"utf-8"),{content:a}=(0,YE.default)(o);return{stage:t,name:n,type:"markdown",content:a}}catch{return null}if(mer.includes(s))try{let o=await up(e,"utf-8"),a=await VY(o,e,H_t(e,r));return{stage:t,name:n,type:"html",content:a,relativePath:r}}catch{return null}if(her.includes(s))return{stage:t,name:n,type:"image",relativePath:r};if(ger.includes(s))return{stage:t,name:n,type:"video",relativePath:r};if(Ser.includes(s))try{let o=await up(e,"utf-8");return{stage:t,name:n,type:"code",language:yer[s],content:o,relativePath:r}}catch{}try{let o=await up(e);if(Eer(o))return{stage:t,name:n,type:"code",content:o.toString("utf-8"),relativePath:r}}catch{}return{stage:t,name:n,type:"file",relativePath:r}}function Eer(e){let t=e.subarray(0,8192);if(t.length===0)return!0;let n=0;for(let r of t){if(r===0)return!1;(r<9||r>13&&r<32)&&(n+=1)}return n/t.length<.1}function cU(e,t){let r=`.haiku/intents/${oU(t)}/`;return e.startsWith(r)?e.slice(r.length):e}async function _er(e){let t=[],n=K5(e),r=`${n}/`,i=n.indexOf("/.haiku/"),s=i>=0?n.slice(0,i):K5(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()&&ber.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=p_e(m,p).data.outputs;h=Array.isArray(g)?g.filter(E=>typeof E=="string"):[]}catch{continue}for(let m of h){if(BD.has(oU(m)))continue;let y=cU(m,e),g=K5(n,y),E=g!==n&&g.startsWith(r),S=g,b=qIt(n,g),_=b;if(!(E&&fer(g))){let A=K5(s,m);if(A!==s&&A.startsWith(o))S=A,b=m,_=void 0;else if(!E)continue}let T=await Z5(S,u,b,_??b);T&&(_===void 0&&(T.relativePath=void 0),t.push({absPath:S,artifact:T}))}}}return t}async function KIt(e,t=""){let n=[],r;try{r=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&Wyt.has(i.name)||t===""&&i.name==="artifacts"||t===""&&(i.name==="knowledge"||i.name==="discovery"))continue;let s=t?`${t}/${i.name}`:i.name,o=wi(e,i.name);i.isDirectory()?n.push(...await KIt(o,s)):i.isFile()&&n.push({absPath:o,relFromStage:s})}return n}async function $5(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 WIt(c)).sort();for(let l of u){let d=qIt(c,l),f=d,p=`stages/${a}/artifacts/${d}`,h=await Z5(l,a,f,p);h&&(t.push(h),r.add(l))}}}catch{}for(let{absPath:s,artifact:o}of await _er(e))r.has(s)||(t.push(o),r.add(s));for(let s of i){let o=wi(e,"stages",s),a=await KIt(o);a.sort((c,u)=>c.relFromStage.localeCompare(u.relFromStage));for(let{absPath:c,relFromStage:u}of a){if(r.has(c)||Ter.has(u))continue;let l=u,d=`stages/${s}/${u}`,f=await Z5(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 e6(e){let t=[],n=await ZIt(e);n.sort((r,i)=>r.relFromRoot.localeCompare(i.relFromRoot));for(let{absPath:r,relFromRoot:i}of n){let s=await Z5(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 ZIt(e,t=""){let n=[],r;try{r=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&BD.has(i.name))continue;let s=t?`${t}/${i.name}`:i.name,o=wi(e,i.name);i.isDirectory()?n.push(...await ZIt(o,s)):i.isFile()&&n.push({absPath:o,relFromRoot:s})}return n}var YE,her,mer,ger,yer,Ser,ber,Ter,t6=v(()=>{"use strict";SL();YE=Se(Kt(),1);hEe();f_e();mye();her=[".png",".jpg",".jpeg",".svg",".webp",".gif"],mer=[".html",".htm"],ger=[".mp4",".webm",".mov",".m4v",".ogv"],yer={".ts":"typescript",".tsx":"tsx",".js":"javascript",".jsx":"jsx",".mjs":"javascript",".cjs":"javascript",".py":"python",".rb":"ruby",".go":"go",".rs":"rust",".java":"java",".kt":"kotlin",".swift":"swift",".c":"c",".h":"c",".cpp":"cpp",".cs":"csharp",".css":"css",".scss":"scss",".sh":"bash",".bash":"bash",".zsh":"bash",".sql":"sql",".graphql":"graphql",".gql":"graphql",".yaml":"yaml",".yml":"yaml",".json":"json",".toml":"ini",".ini":"ini",".env":"bash",".tf":"terraform",".hcl":"terraform",".cue":"go",".feature":"gherkin",".gherkin":"gherkin"},Ser=[".feature",".gherkin",".txt",".yaml",".yml",".json",".toml",".ini",".env",".sql",".graphql",".gql",".sh",".bash",".zsh",".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".rb",".go",".rs",".java",".kt",".swift",".c",".h",".cpp",".cs",".css",".scss",".cue",".tf",".hcl"];ber=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;Ter=new Set(["BRIEF.md","elaboration.md","observations.md"])});var YIt=v(()=>{"use strict";Xpe();f_e();t6()});function uU(e,t){let n=t.replace(/^\/+/,"");return`/stage-artifacts/${e}/${n}`}var h_e=v(()=>{"use strict"});import{readFile as JIt,stat as ver}from"node:fs/promises";import{basename as $It,relative as Aer,resolve as XIt}from"node:path";function m_e(e){let t=$It(e);return!!(t.startsWith(".")||xer.has(t)||t.endsWith(".manifest")||t.includes("fs-manifest"))}async function txt(e,t,n){if(!n||n.length===0)return[];let r=XIt(e),i=`${r}/`,s=[];for(let o of n){if(typeof o!="string"||m_e(o))continue;let a=cU(o,e),c=XIt(r,a);if(c!==r&&!c.startsWith(i))continue;let u=Aer(r,c),l=$It(u),d=l.lastIndexOf("."),f=d>=0?l.substring(d).toLowerCase():"",p=l.replace(/\.[^.]+$/,"")||l,h=uU(t,u),m=!0,y;try{let E=await ver(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 JIt(c,"utf-8"),{content:b}=(0,ext.default)(S);E=QIt(b,Rer)}catch{}s.push({...g,type:"markdown",...E!==void 0?{previewBody:E}:{}});continue}if(Ier.has(f)){let E;if(m)try{let S=await JIt(c,"utf-8");E=QIt(S,wer)}catch{}s.push({...g,type:"html",...E!==void 0?{previewBody:E}:{}});continue}if(ker.has(f)){s.push({...g,type:"image"});continue}s.push({...g,type:"file"})}return s}function QIt(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 r5(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 T_e=v(()=>{"use strict";r0t()});import{existsSync as Yer}from"node:fs";import{readdir as Zu,readFile as lp}from"node:fs/promises";import{basename as hU,join as wi,relative as i0t,resolve as i5}from"node:path";function v_e(e,t){try{return(0,Qb.default)(e)}catch(n){if(!hI(n))throw n;let{text:r,removed:i}=hg(e);if(i.length===0)throw n;let s=(0,Qb.default)(r);return console.warn(`[haiku] Recovered duplicate YAML keys in ${t}: kept last occurrence of ${i.join(", ")}`),s}}function s0t(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 o0t(e){let t=e.match(/^# (.+)$/m);return t?t[1].trim():""}function a0t(e){return e.replace(/^# .+$/m,"").trim()}async function mU(e){try{let t=wi(e,"intent.md"),n=await lp(t,"utf-8"),{data:r,content:i}=v_e(n,t),s=s0t(r),o=o0t(i),a=a0t(i),c=n5(a);return{slug:hU(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 c0t(e){try{let t=await lp(e,"utf-8"),{data:n,content:r}=v_e(t,e),i=s0t(n),s=o0t(r),o=a0t(r),a=n5(o),c=hU(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 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,"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 c0t(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 a5(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 Zer(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 Zer(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,Qb.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 c5(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,Qb.default)(s);t.push({name:i.replace(/\.md$/,""),content:o})}catch{}}catch{}return t}async function u5(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,Qb.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,Qb.default)(d);t.push({stage:i.name,name:`${a}/${l.name.replace(/\.md$/,"")}`,content:f})}catch{}}catch{}}catch{}}catch{}return t}async function u0t(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 u0t(i)):t.push(i)}return t}async function s5(e,t,n,r){let i=hU(e),s=i.substring(i.lastIndexOf(".")).toLowerCase();if(s===".md")try{let o=await lp(e,"utf-8"),{content:a}=(0,Qb.default)(o);return{stage:t,name:n,type:"markdown",content:a}}catch{return null}if(Xer.includes(s))try{let o=await lp(e,"utf-8"),a=await i6(o,e,iTt(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(etr.includes(s))try{let o=await lp(e,"utf-8");return{stage:t,name:n,type:"code",language:$er[s],content:o,relativePath:r}}catch{}try{let o=await lp(e);if(ttr(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 ttr(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 gU(e,t){let r=`.haiku/intents/${hU(t)}/`;return e.startsWith(r)?e.slice(r.length):e}async function rtr(e){let t=[],n=i5(e),r=`${n}/`,i=n.indexOf("/.haiku/"),s=i>=0?n.slice(0,i):i5(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()&&ntr.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=v_e(m,p).data.outputs;h=Array.isArray(y)?y.filter(b=>typeof b=="string"):[]}catch{continue}for(let m of h){if(JL.has(hU(m)))continue;let g=gU(m,e),y=i5(n,g),b=y!==n&&y.startsWith(r),S=y,E=i0t(n,y),_=E;if(!(b&&Yer(y))){let R=i5(s,m);if(R!==s&&R.startsWith(o))S=R,E=m,_=void 0;else if(!b)continue}let T=await s5(S,u,E,_??E);T&&(_===void 0&&(T.relativePath=void 0),t.push({absPath:S,artifact:T}))}}}return t}async function l0t(e,t=""){let n=[],r;try{r=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&rSt.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 l0t(o,s)):i.isFile()&&n.push({absPath:o,relFromStage:s})}return n}async function l5(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 u0t(c)).sort();for(let l of u){let d=i0t(c,l),f=d,p=`stages/${a}/artifacts/${d}`,h=await s5(l,a,f,p);h&&(t.push(h),r.add(l))}}}catch{}for(let{absPath:s,artifact:o}of await rtr(e))r.has(s)||(t.push(o),r.add(s));for(let s of i){let o=wi(e,"stages",s),a=await l0t(o);a.sort((c,u)=>c.relFromStage.localeCompare(u.relFromStage));for(let{absPath:c,relFromStage:u}of a){if(r.has(c)||itr.has(u))continue;let l=u,d=`stages/${s}/${u}`,f=await s5(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 d5(e){let t=[],n=await d0t(e);n.sort((r,i)=>r.relFromRoot.localeCompare(i.relFromRoot));for(let{absPath:r,relFromRoot:i}of n){let s=await s5(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 d0t(e,t=""){let n=[],r;try{r=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&JL.has(i.name))continue;let s=t?`${t}/${i.name}`:i.name,o=wi(e,i.name);i.isDirectory()?n.push(...await d0t(o,s)):i.isFile()&&n.push({absPath:o,relFromRoot:s})}return n}var Qb,Jer,Xer,Qer,$er,etr,ntr,itr,f5=v(()=>{"use strict";xD();Qb=Re(Kt(),1);wbe();T_e();Rye();Jer=[".png",".jpg",".jpeg",".svg",".webp",".gif"],Xer=[".html",".htm"],Qer=[".mp4",".webm",".mov",".m4v",".ogv"],$er={".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"},etr=[".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"];ntr=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;itr=new Set(["BRIEF.md","elaboration.md","observations.md"])});var f0t=v(()=>{"use strict";ohe();T_e();f5()});function yU(e,t){let n=t.replace(/^\/+/,"");return`/stage-artifacts/${e}/${n}`}var R_e=v(()=>{"use strict"});import{readFile as p0t,stat as otr}from"node:fs/promises";import{basename as g0t,relative as atr,resolve as h0t}from"node:path";function A_e(e){let t=g0t(e);return!!(t.startsWith(".")||ftr.has(t)||t.endsWith(".manifest")||t.includes("fs-manifest"))}async function S0t(e,t,n){if(!n||n.length===0)return[];let r=h0t(e),i=`${r}/`,s=[];for(let o of n){if(typeof o!="string"||A_e(o))continue;let a=gU(o,e),c=h0t(r,a);if(c!==r&&!c.startsWith(i))continue;let u=atr(r,c),l=g0t(u),d=l.lastIndexOf("."),f=d>=0?l.substring(d).toLowerCase():"",p=l.replace(/\.[^.]+$/,"")||l,h=yU(t,u),m=!0,g;try{let b=await otr(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 p0t(c,"utf-8"),{content:E}=(0,y0t.default)(S);b=m0t(E,ctr)}catch{}s.push({...y,type:"markdown",...b!==void 0?{previewBody:b}:{}});continue}if(dtr.has(f)){let b;if(m)try{let S=await p0t(c,"utf-8");b=m0t(S,utr)}catch{}s.push({...y,type:"html",...b!==void 0?{previewBody:b}:{}});continue}if(ltr.has(f)){s.push({...y,type:"image"});continue}s.push({...y,type:"file"})}return s}function m0t(e,t){let n=e.trim();return n.length<=t?n:`${n.slice(0,t).trimEnd()} -\u2026`}var ext,Rer,wer,ker,Ier,xer,g_e=v(()=>{"use strict";ext=Se(Kt(),1);t6();h_e();Rer=2e3,wer=2e3,ker=new Set([".png",".jpg",".jpeg",".svg",".webp",".gif",".avif"]),Ier=new Set([".html",".htm"]),xer=new Set(["action-log.jsonl","write-audit.jsonl","decisions.jsonl","coverage-decisions.json"])});import{readdir as nxt,readFile as Oer}from"node:fs/promises";import{basename as Ner,join as y_e,relative as Per,resolve as rxt}from"node:path";async function sxt(e){let t=rxt(e),n=`${t}/`,r={},i;try{i=await nxt(y_e(e,"stages"),{withFileTypes:!0,encoding:"utf8"})}catch{return r}for(let s of i){if(!s.isDirectory())continue;let o=y_e(e,"stages",s.name,"units"),a;try{a=(await nxt(o,{withFileTypes:!0,encoding:"utf8"})).filter(c=>c.isFile()&&Cer.test(c.name)).map(c=>c.name).sort()}catch{continue}for(let c of a){let u=y_e(o,c),l=Ner(c,".md"),d;try{let f=await Oer(u,"utf-8"),p=(0,ixt.default)(f).data.outputs;d=Array.isArray(p)?p.filter(h=>typeof h=="string"):[]}catch{continue}for(let f of d){if(m_e(f))continue;let p=cU(f,e),h=rxt(t,p);if(h!==t&&!h.startsWith(n))continue;let m=Per(t,h);r[m]||(r[m]=[]),r[m].includes(l)||r[m].push(l)}}}return r}var ixt,Cer,oxt=v(()=>{"use strict";ixt=Se(Kt(),1);t6();g_e();Cer=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/});import{spawn as Mer}from"node:child_process";import{appendFileSync as Ler,existsSync as S_e,mkdirSync as uxt,writeFileSync as lxt}from"node:fs";import{readFile as lU}from"node:fs/promises";import{dirname as E_e,join as em,resolve as r6}from"node:path";async function fxt(e,t,n){let r=await Promise.all(n.map(async o=>({slug:o.slug,outputs:await txt(e,t,o.frontmatter.outputs)}))),i={};for(let{slug:o,outputs:a}of r)a.length>0&&(i[o]=a);let s=await sxt(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.`),eTt(e,n?{sessionId:n}:{}))return;let r=process.platform==="darwin"?["open",e]:process.platform==="win32"?["powershell","-NoProfile","-NonInteractive","-Command",`Start-Process '${e.replace(/'/g,"''")}'`]:["xdg-open",e];try{let i=Mer(r[0],r.slice(1),{stdio:"ignore",detached:!0});i.unref(),i.on("error",s=>{console.error(`[haiku] Browser launcher ${r[0]} failed: ${s.message}. Paste ${e} into a browser to continue.`)}),i.on("exit",(s,o)=>{s!==null&&s!==0&&console.error(`[haiku] Browser launcher ${r[0]} exited with code ${s}. Paste ${e} into a browser to continue.`),o&&console.error(`[haiku] Browser launcher ${r[0]} terminated by signal ${o}. Paste ${e} into a browser to continue.`)})}catch(i){console.error(`[haiku] Browser launcher threw synchronously: ${i instanceof Error?i.message:String(i)}. Paste ${e} into a browser to continue.`)}}function n6(e){try{Ler(Fer,`${new Date().toISOString()} ${e} +\u2026`}var y0t,ctr,utr,ltr,dtr,ftr,w_e=v(()=>{"use strict";y0t=Re(Kt(),1);f5();R_e();ctr=2e3,utr=2e3,ltr=new Set([".png",".jpg",".jpeg",".svg",".webp",".gif",".avif"]),dtr=new Set([".html",".htm"]),ftr=new Set(["action-log.jsonl","write-audit.jsonl","decisions.jsonl","coverage-decisions.json"])});import{readdir as b0t,readFile as ptr}from"node:fs/promises";import{basename as htr,join as k_e,relative as mtr,resolve as E0t}from"node:path";async function T0t(e){let t=E0t(e),n=`${t}/`,r={},i;try{i=await b0t(k_e(e,"stages"),{withFileTypes:!0,encoding:"utf8"})}catch{return r}for(let s of i){if(!s.isDirectory())continue;let o=k_e(e,"stages",s.name,"units"),a;try{a=(await b0t(o,{withFileTypes:!0,encoding:"utf8"})).filter(c=>c.isFile()&>r.test(c.name)).map(c=>c.name).sort()}catch{continue}for(let c of a){let u=k_e(o,c),l=htr(c,".md"),d;try{let f=await ptr(u,"utf-8"),p=(0,_0t.default)(f).data.outputs;d=Array.isArray(p)?p.filter(h=>typeof h=="string"):[]}catch{continue}for(let f of d){if(A_e(f))continue;let p=gU(f,e),h=E0t(t,p);if(h!==t&&!h.startsWith(n))continue;let m=mtr(t,h);r[m]||(r[m]=[]),r[m].includes(l)||r[m].push(l)}}}return r}var _0t,gtr,v0t=v(()=>{"use strict";_0t=Re(Kt(),1);f5();w_e();gtr=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/});import{spawn as ytr}from"node:child_process";import{appendFileSync as Str,existsSync as I_e,mkdirSync as w0t,writeFileSync as k0t}from"node:fs";import{readFile as SU}from"node:fs/promises";import{dirname as x_e,join as nm,resolve as h5}from"node:path";async function x0t(e,t,n){let r=await Promise.all(n.map(async o=>({slug:o.slug,outputs:await S0t(e,t,o.frontmatter.outputs)}))),i={};for(let{slug:o,outputs:a}of r)a.length>0&&(i[o]=a);let s=await T0t(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.`),STt(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=ytr(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 p5(e){try{Str(_tr,`${new Date().toISOString()} ${e} `)}catch{}process.stderr.write(`[haiku-mcp] ${e} -`)}function jer(e,t){if(!t){n6(`bindSessionCancellation(${e}): no signal passed \u2014 cancel will not fire`);return}if(n6(`bindSessionCancellation(${e}): signal attached, aborted=${t.aborted}`),t.aborted){n6(`bindSessionCancellation(${e}): signal was already aborted, closing immediately`),Iv(e,"tool call cancelled");return}t.addEventListener("abort",()=>{n6(`abort fired for session ${e} \u2014 closing WS (reason: ${t.reason})`),Iv(e,"tool call cancelled")},{once:!0})}async function pxt(e,t){let{name:n,arguments:r}=e.params;if(dU.has(n))return T_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(!jne())try{let u=em(ve(),"reports");uxt(u,{recursive:!0});let l=new Date().toISOString().replace(/[:.]/g,"-"),d=em(u,`${l}.json`);return lxt(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 Fne(s,c,o,a),{content:[{type:"text",text:"Feedback submitted. Thank you!"}]}}if(n==="haiku_review_open"){let i=r??{},s=Be(i,mge,"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 aU(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(),Ix)),h=u||(d?f(o,d)??"":""),m=await Y5(a),y=TK(m),g=AK(y,m),E=c.sections.find(B=>B.heading?.toLowerCase().includes("completion criteria")||B.heading?.toLowerCase().includes("success criteria")),S=E?W5(E.content):[],b=FZ({intent_dir:a,intent_slug:o,target:""});b.ad_hoc=!0,b.stage=h||void 0;let{unitOutputs:_,outputDeclaredBy:T}=await fxt(a,b.session_id,m);Object.assign(b,{parsedIntent:c,parsedUnits:m,parsedCriteria:S,parsedMermaid:g,unitOutputs:_,outputDeclaredBy:T});let A=await J5(a),R=await X5(a),x=await Q5(a),{outputs:k,other:N}=await $5(a),P=await e6(a);for(let B of[...k,...N,...P])B.relativePath&&(B.intentRelativePath=B.relativePath,B.relativePath=uU(b.session_id,B.relativePath));Object.assign(b,{stageStates:A,knowledgeFiles:R,stageArtifacts:x,outputArtifacts:k,otherFiles:N,intentOtherFiles:P});let C=await VE(),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}`;jer(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 Ttr(e,t){if(!t){p5(`bindSessionCancellation(${e}): no signal passed \u2014 cancel will not fire`);return}if(p5(`bindSessionCancellation(${e}): signal attached, aborted=${t.aborted}`),t.aborted){p5(`bindSessionCancellation(${e}): signal was already aborted, closing immediately`),Dv(e,"tool call cancelled");return}t.addEventListener("abort",()=>{p5(`abort fired for session ${e} \u2014 closing WS (reason: ${t.reason})`),Dv(e,"tool call cancelled")},{once:!0})}async function O0t(e,t){let{name:n,arguments:r}=e.params;if(bU.has(n))return N_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(!Yne())try{let u=nm(ve(),"reports");w0t(u,{recursive:!0});let l=new Date().toISOString().replace(/[:.]/g,"-"),d=nm(u,`${l}.json`);return k0t(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 Kne(s,c,o,a),{content:[{type:"text",text:"Feedback submitted. Thank you!"}]}}if(n==="haiku_review_open"){let i=r??{},s=Be(i,Rge,"haiku_review_open");if(s)return s;let o=i.intent||"";if(!o){let q=_v();if(q)o=q.slug;else{let Q=ve(),B=nm(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=ce(o),c=await mU(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(),D0)),h=u||(d?f(o,d)??"":""),m=await o5(a),g=P3(m),y=C3(g,m),b=c.sections.find(q=>q.heading?.toLowerCase().includes("completion criteria")||q.heading?.toLowerCase().includes("success criteria")),S=b?r5(b.content):[],E=KY({intent_dir:a,intent_slug:o,target:""});E.ad_hoc=!0,E.stage=h||void 0;let{unitOutputs:_,outputDeclaredBy:T}=await x0t(a,E.session_id,m);Object.assign(E,{parsedIntent:c,parsedUnits:m,parsedCriteria:S,parsedMermaid:y,unitOutputs:_,outputDeclaredBy:T});let R=await a5(a),A=await c5(a),x=await u5(a),{outputs:k,other:P}=await l5(a),N=await d5(a);for(let q of[...k,...P,...N])q.relativePath&&(q.intentRelativePath=q.relativePath,q.relativePath=yU(E.session_id,q.relativePath));Object.assign(E,{stageStates:R,knowledgeFiles:A,stageArtifacts:x,outputArtifacts:k,otherFiles:P,intentOtherFiles:N});let C=await Yb(),L=Bi()?Ov(E.session_id,await Hg(C),"intent"):`http://127.0.0.1:${C}/review/${E.session_id}`,G=h?`/stages/${h}`:"",W=`${L}${G}`;Ttr(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_")&&!Her.has(n))return pSe(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=Der.parse(r),s=i.title??"Question",o=i.context??"",a=i.questions,c=i.image_paths??[],u=c.map(h=>E_e(r6(h))),l=_ye({title:s,questions:a,context:o,imagePaths:c,imageBaseDirs:u}),d=c.map((h,m)=>`/question-image/${l.session_id}/${m}`),f=await VE(),p;if(Bi()){let h=await jg(f);p=vv(l.session_id,h,"question")}else p=`http://127.0.0.1:${f}/question/${l.session_id}`;return lp(p,"Question session",l.session_id),await cxt(l.session_id,{url:p,signal:t})}if(n==="haiku_view"){let i=r??{},s=Be(i,_ge,"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(!S_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=kye(E_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=aSt(o.command,d):h=cSt(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 aU(u))?.frontmatter;R&&typeof R.studio=="string"&&R.studio&&(m=R.studio)}catch{}let y=f||h?"boot":"viewer",g=Aye({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 Iye(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 lSt(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");Rye(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 Mx(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 VE(),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,Tge,"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"?Dx(o.session_id):!1,d=Mx(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,qme,"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 cxt(a,{url:u,signal:t}))}if(n==="pick_design_direction"){let i=Uer.parse(r),s=i.title??"Design Direction";try{let l=em(ve(),"intents",i.intent_slug,"intent.md");if(S_e(l)){let d=await lU(l,"utf-8");if((re(d).data.mode||"")==="autopilot"){let p=await gxt(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 lU(r6(i.archetypes_file),"utf-8");h=O.array(b_e).parse(JSON.parse(g))}let m=h[0];__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 lU(r6(i.archetypes_file),"utf-8");o=O.array(b_e).parse(JSON.parse(l))}let a=Tye({intent_slug:i.intent_slug,archetypes:o,context:i.context??""}),c=await VE(),u;if(Bi()){let l=await jg(c);u=vv(a.session_id,l,"direction")}else u=`http://127.0.0.1:${c}/direction/${a.session_id}`;return lp(u,"Direction session"),await axt(a.session_id,{url:u,intentSlug:i.intent_slug,signal:t})}if(n==="haiku_await_design_direction"){let i=r??{},s=Be(i,Bme,"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 axt(a,{url:u,intentSlug:d,signal:t})}return{content:[{type:"text",text:`Unknown tool: ${n}`}],isError:!0}}async function hxt(e,t,n){let r=r6(process.cwd(),e),i=await aU(r);if(!i)throw new Error("Could not parse intent");let s=await Y5(r),o=TK(s),a=AK(o,s),c=i.sections.find(k=>k.heading?.toLowerCase().includes("completion criteria")||k.heading?.toLowerCase().includes("success criteria")),u=c?W5(c.content):[],l=WD(i.slug),d=l??FZ({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 fxt(r,d.session_id,s);Object.assign(d,{parsedIntent:i,parsedUnits:s,parsedCriteria:u,parsedMermaid:a,unitOutputs:f,outputDeclaredBy:p});let h=bye(r);h&&(d.previousReview=h);let m=await J5(r),y=await X5(r),g=await Q5(r),{outputs:E,other:S}=await $5(r),b=await e6(r);for(let k of[...E,...S,...b])k.relativePath&&(k.intentRelativePath=k.relativePath,k.relativePath=uU(d.session_id,k.relativePath));Object.assign(d,{stageStates:m,knowledgeFiles:y,stageArtifacts:g,outputArtifacts:E,otherFiles:S,intentOtherFiles:b});let _=await VE(),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 zd(i.slug,{type:"gate_prepared",session_id:d.session_id,stage:n?.stage??d.stage??"",gate_context:n?.gateContext??d.gate_context??"stage_gate",review_url:A,browser_attached:x}),{session_id:d.session_id,review_url:A,use_remote:T,reused:R,browser_attached:x}}function qer(e,t,n,r){return!(!e||!t||lv(n)||r&&KD(r))}async function mxt(e,t={}){let{autoOpen:n=!0,signal:r,reviewUrl:i,timeoutMs:s=1800*1e3}=t,o=$t(e);if(!o||o.session_type!=="review")throw new Error(`Gate review session ${e} not found or wrong type \u2014 call haiku_run_next to recreate.`);if(qer(n,i,e,o.intent_slug)&&lp(i,"Review gate"),o.pending_decision){let u=o.pending_decision;return Cl(e,{pending_decision:null,last_await_started_at:new Date().toISOString(),last_await_ended_at:new Date().toISOString(),await_count:(o.await_count??0)+1}),zd(o.intent_slug,{type:"pending_decision_changed",session_id:e,queued:!1}),{decision:u.decision,feedback:u.feedback,annotations:u.annotations}}let a=new Date().toISOString(),c=o.await_count??0;Cl(e,{await_active:!0,await_count:c+1,last_await_started_at:a}),zd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!0}),yye(e);try{for(;;){let u=!1;try{await uv(e,s,r)}catch(d){if(r?.aborted)throw d;u=!0}let l=$t(e);if(l&&l.session_type==="review"&&l.pending_decision){let d=l.pending_decision;return Cl(e,{pending_decision:null}),{decision:d.decision,feedback:d.feedback,annotations:d.annotations}}if(u)break;if(Eye(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{Sye(e),Cl(e,{await_active:!1,last_await_ended_at:new Date().toISOString()}),zd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!1})}}async function gxt(e){let t=em(ve(),"intents",e,"intent.md");if(!S_e(t))return null;let n=await lU(t,"utf-8"),r=re(n).data.studio||"";if(!r)return null;let{findCurrentStage:i}=await Promise.resolve().then(()=>(Oa(),Ix)),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 __e(e){uxt(E_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}`),lxt(e.absPath,dxt.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_")&&!vtr.has(n))return vSe(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=btr.parse(r),s=i.title??"Question",o=i.context??"",a=i.questions,c=i.image_paths??[],u=c.map(h=>x_e(h5(h))),l=Oye({title:s,questions:a,context:o,imagePaths:c,imageBaseDirs:u}),d=c.map((h,m)=>`/question-image/${l.session_id}/${m}`),f=await Yb(),p;if(Bi()){let h=await Hg(f);p=Ov(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 A0t(l.session_id,{url:p,signal:t})}if(n==="haiku_view"){let i=r??{},s=Be(i,Oge,"haiku_view");if(s)return s;let o=i,a=o.mode??"auto",c=o.intent;if(!c){let R=_v();if(R)c=R.slug;else{let A=ve(),x=nm(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=ce(c);if(!I_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?nm(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?nm(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=Lye(x_e(ve()))}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=SSt(o.command,d):h=bSt(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 mU(u))?.frontmatter;A&&typeof A.studio=="string"&&A.studio&&(m=A.studio)}catch{}let g=f||h?"boot":"viewer",y=Cye({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 Uye(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 _St(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");Mye(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 q0(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 Yb(),S=Bi()?Ov(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,Pge,"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"?z0(o.session_id):!1,d=q0(o.session_id);return{content:[{type:"text",text:JSON.stringify({closed:d,session_id:o.session_id,was_view_session:c,killed_boot_process:l})}]}}if(n==="haiku_await_visual_answer"){let i=r??{},s=Be(i,Jme,"haiku_await_visual_answer");if(s)return s;let o=i,a=o.session_id,c=o.auto_open!==!1,u=o.url??"",l=$t(a);return!l||l.session_type!=="question"?{content:[{type:"text",text:`Question session ${a} not found or wrong type \u2014 call ask_user_visual_question to create a new one.`}],isError:!0}:(c&&u&&dp(u,"Question session"),await A0t(a,{url:u,signal:t}))}if(n==="pick_design_direction"){let i=Etr.parse(r),s=i.title??"Design Direction";try{let l=nm(ve(),"intents",i.intent_slug,"intent.md");if(I_e(l)){let d=await SU(l,"utf-8");if((re(d).data.mode||"")==="autopilot"){let p=await C0t(i.intent_slug);if(!p)return{content:[{type:"text",text:`Autopilot short-circuit for pick_design_direction failed: no discovery template with tool=pick_design_direction found for intent '${i.intent_slug}'. The cursor's discovery gate will not clear automatically \u2014 file a bug or fall back to manual handling.`}],isError:!0};let h=[];if(i.archetypes)h=i.archetypes;else if(i.archetypes_file){let y=await SU(h5(i.archetypes_file),"utf-8");h=O.array(O_e).parse(JSON.parse(y))}let m=h[0];P_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:xn(g,"Call `haiku_run_next` to continue \u2014 the cursor's discovery gate is now cleared.")}]}}}}catch(l){console.error(`[pick_design_direction] autopilot check failed: ${l instanceof Error?l.message:String(l)}. Falling through to the SPA picker.`)}let o=[];if(i.archetypes)o=i.archetypes;else if(i.archetypes_file){let l=await SU(h5(i.archetypes_file),"utf-8");o=O.array(O_e).parse(JSON.parse(l))}let a=Pye({intent_slug:i.intent_slug,archetypes:o,context:i.context??""}),c=await Yb(),u;if(Bi()){let l=await Hg(c);u=Ov(a.session_id,l,"direction")}else u=`http://127.0.0.1:${c}/direction/${a.session_id}`;return dp(u,"Direction session"),await R0t(a.session_id,{url:u,intentSlug:i.intent_slug,signal:t})}if(n==="haiku_await_design_direction"){let i=r??{},s=Be(i,Xme,"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 R0t(a,{url:u,intentSlug:d,signal:t})}return{content:[{type:"text",text:`Unknown tool: ${n}`}],isError:!0}}async function P0t(e,t,n){let r=h5(process.cwd(),e),i=await mU(r);if(!i)throw new Error("Could not parse intent");let s=await o5(r),o=P3(s),a=C3(o,s),c=i.sections.find(k=>k.heading?.toLowerCase().includes("completion criteria")||k.heading?.toLowerCase().includes("success criteria")),u=c?r5(c.content):[],l=e1(i.slug),d=l??KY({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 x0t(r,d.session_id,s);Object.assign(d,{parsedIntent:i,parsedUnits:s,parsedCriteria:u,parsedMermaid:a,unitOutputs:f,outputDeclaredBy:p});let h=xye(r);h&&(d.previousReview=h);let m=await a5(r),g=await c5(r),y=await u5(r),{outputs:b,other:S}=await l5(r),E=await d5(r);for(let k of[...b,...S,...E])k.relativePath&&(k.intentRelativePath=k.relativePath,k.relativePath=yU(d.session_id,k.relativePath));Object.assign(d,{stageStates:m,knowledgeFiles:g,stageArtifacts:y,outputArtifacts:b,otherFiles:S,intentOtherFiles:E});let _=await Yb(),T=Bi(),R=T?Ov(d.session_id,await Hg(_),"intent"):`http://127.0.0.1:${_}/review/${d.session_id}`,A=l!==void 0,x=A&&mv(d.session_id);return Kd(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 Rtr(e,t,n,r){return!(!e||!t||mv(n)||r&&t1(r))}async function N0t(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(Rtr(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}),Kd(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}),Kd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!0}),wye(e);try{for(;;){let u=!1;try{await hv(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(Iye(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{kye(e),Ml(e,{await_active:!1,last_await_ended_at:new Date().toISOString()}),Kd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!1})}}async function C0t(e){let t=nm(ve(),"intents",e,"intent.md");if(!I_e(t))return null;let n=await SU(t,"utf-8"),r=re(n).data.studio||"";if(!r)return null;let{findCurrentStage:i}=await Promise.resolve().then(()=>(Oa(),D0)),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:nm(ve(),"..",c),stage:s,templateBody:a.body}}function P_e(e){w0t(x_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}`),k0t(e.absPath,I0t.default.stringify(`${n.join(` `)} -`,t))}async function axt(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 lU(em(ve(),"intents",r,"intent.md"),"utf-8"),d=re(l).data.studio||"",{findCurrentStage:f}=await Promise.resolve().then(()=>(Oa(),Ix)),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 gxt(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{__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{__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 cxt(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";dxt=Se(Kt(),1);bl();yr();m5();YIt();i0();P1();Vd();oxt();ih();Qc();h_e();ji();uo();ze();Kn();Fv();fU();Jh();g_e();QD();Der=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.")}),b_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")}),Uer=O.object({intent_slug:O.string().describe("The intent slug this direction applies to"),context:O.string().optional().describe("Optional markdown preamble shown above the archetype cards. Use it to give the user the context they need to choose well \u2014 what this direction governs, what's already been decided, what tradeoffs each option leans into. Mirrors `context` on ask_user_visual_question."),archetypes:O.array(b_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')")});Fer="/tmp/haiku-session-cancel.log";Her=new Set(["haiku_view","haiku_view_close","haiku_await_visual_answer","haiku_await_design_direction"])});async function Yu(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=vye({intent_slug:e.intentSlug,kind:e.kind,title:e.title,prompt:e.prompt,options:e.options}),r=await VE(),i;if(Bi()){let a=await jg(r),{buildReviewUrl:c}=await Promise.resolve().then(()=>(Jh(),c_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??Ber,o=$t(n.session_id);if(o&&o.session_type==="picker"&&o.status==="answered"&&o.selection)return{sessionId:n.session_id,url:i,selection:o.selection,timedOut:!1};for(;;){let a=!1;try{await uv(n.session_id,s,e.signal)}catch(u){if(e.signal?.aborted)throw u;a=!0}let c=$t(n.session_id);if(c&&c.session_type==="picker"&&c.status==="answered"&&c.selection)return{sessionId:n.session_id,url:i,selection:c.selection,timedOut:!1};if(a)return{sessionId:n.session_id,url:i,selection:null,timedOut:!0}}}var Ber,JE=v(()=>{"use strict";m5();Qc();Jh();i6();Ber=1800*1e3});function XE(e){return{content:[{type:"text",text:JSON.stringify(e)}],isError:!0}}function Ger(e,t){switch(e){case"force_stage_complete":return`Sign every review + approval + intent_quality_gates for every unit in stages up to and including '${t.stage}'. Refuses units that haven't reached terminal hat advance.`;case"set_intent_field":return t.fields&&typeof t.fields=="object"?`Set ${Object.keys(t.fields).length} intent.md frontmatter fields in one call: ${JSON.stringify(t.fields)}.`:`Set intent.md frontmatter field '${t.field}' to ${JSON.stringify(t.value)}.`;case"reset_drift":return"Re-stamp every witnessed slot (reviews + approvals on every unit) with the CURRENT on-disk SHA. Drift sweep will stop firing on the same SHA mismatch.";case"set_unit_iterations":return Array.isArray(t.iterations)&&t.iterations.length>0?`Hand-write iterations[] on unit '${t.unit}' in stage '${t.stage}' (${t.iterations.length} entries). This is the FSM-driven field agents normally cannot touch \u2014 the debug op bypasses the schema gate.`:`Synthesize iterations[] on unit '${t.unit}' in stage '${t.stage}' \u2014 one 'advance' entry per hat in the stage's hats sequence. Use to mark a legacy/partial unit as "moved through every hat" so force_stage_complete will sign it.`;case"mutate_feedback":return Array.isArray(t.feedback_ids)&&t.feedback_ids.length>0?`Apply FM patch to ${t.feedback_ids.length} feedback records (${t.feedback_ids.join(", ")}): ${JSON.stringify(t.patch)}. Bypasses lifecycle guards.`:`Apply FM patch to feedback ${t.feedback_id}: ${JSON.stringify(t.patch)}. Bypasses lifecycle guards.`;default:return e}}var yxt,Sxt=v(()=>{"use strict";cEe();JE();ji();uo();Gi();vs();yxt={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:ux,async handle(e,t){let n=Be(e,Gme,"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(!PD.includes(s))return XE({error:"unsupported_op",message:`Unknown op '${s}'. Supported: ${PD.join(", ")}.`});if(s==="preview_cursor")try{let l=qY({slug:i});return ye(JSON.stringify(l))}catch(l){return XE({error:"preview_cursor_threw",detail:l instanceof Error?l.message:String(l)})}let o=Ger(s,e),a=typeof e.reason=="string"&&e.reason.trim().length>0?e.reason.trim():null,c=a?`Why: ${a} +`,t))}async function R0t(e,t={}){let{url:n="",intentSlug:r="",signal:i,timeoutMs:s=1800*1e3}=t;try{await hv(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:xn(f,p)}]}}if(a.mode==="generate"){let l=a.comments?`The user has no existing designs and wants you to generate variants. Steering notes: ${a.comments}`:"The user has no existing designs and wants you to generate variants.";return{content:[{type:"text",text:xn(l,"Generate 2-3 distinct archetypes (HTML wireframe snippets \u2014 different layouts, interaction patterns, or visual hierarchies) and call `pick_design_direction` again with `archetypes` populated.")}]}}if(r)try{let l=await SU(nm(ve(),"intents",r,"intent.md"),"utf-8"),d=re(l).data.studio||"",{findCurrentStage:f}=await Promise.resolve().then(()=>(Oa(),D0)),p=d?f(r,d)??"":"";if(p){let h=yr(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 C0t(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{P_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:xn(d.join(` +`),"Call `haiku_run_next` to continue \u2014 the workflow will surface the upload paths so you can `Read` each file and incorporate the designs into elaboration.")}]}}if(c)try{P_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:xn(u.join(` +`),"Call `haiku_run_next` to continue \u2014 the workflow will surface any screenshot annotations the user attached.")}]}}async function A0t(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:xn("The user answered your visual question \u2014 see the `answers` field below.","Acknowledge their answer in chat and continue with whatever the answer enables.")};u.feedback&&(f.feedback=u.feedback),Object.keys(l).length>0&&(f.annotations=l);let p=[{type:"text",text:JSON.stringify(f,null,2)}],h=d?.screenshots??[];if(h.length>0){p.push({type:"text",text:` +${h.length} screenshot annotation${h.length===1?"":"s"} attached below \u2014 each pair is the reviewer's note + the captured surface they were drawing on.`});for(let m=0;m{"use strict";I0t=Re(Kt(),1);_l();ar();w6();f0t();hx();H1();Yd();v0t();sh();$c();R_e();ji();uo();ze();Kn();Vv();EU();Qh();w_e();o1();btr=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.")}),O_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")}),Etr=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(O_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')")});_tr="/tmp/haiku-session-cancel.log";vtr=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=Nye({intent_slug:e.intentSlug,kind:e.kind,title:e.title,prompt:e.prompt,options:e.options}),r=await Yb(),i;if(Bi()){let a=await Hg(r),{buildReviewUrl:c}=await Promise.resolve().then(()=>(Qh(),w_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??Atr,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 hv(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 Atr,$b=v(()=>{"use strict";w6();$c();Qh();m5();Atr=1800*1e3});function eE(e){return{content:[{type:"text",text:JSON.stringify(e)}],isError:!0}}function wtr(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 M0t,D0t=v(()=>{"use strict";Ebe();$b();ji();uo();zi();vs();M0t={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:g0,async handle(e,t){let n=Be(e,Qme,"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(!HL.includes(s))return eE({error:"unsupported_op",message:`Unknown op '${s}'. Supported: ${HL.join(", ")}.`});if(s==="preview_cursor")try{let l=e6({slug:i});return ye(JSON.stringify(l))}catch(l){return eE({error:"preview_cursor_threw",detail:l instanceof Error?l.message:String(l)})}let o=wtr(s,e),a=typeof e.reason=="string"&&e.reason.trim().length>0?e.reason.trim():null,c=a?`Why: ${a} -`:"",u=await Yu({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 XE({error:"missing_stage",message:"force_stage_complete requires `stage`"});let d=FY({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:t0({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 XE({error:"missing_field",message:"set_intent_field requires `field` or `fields`"});let f=t0({slug:i,field:l,value:d});return ye(JSON.stringify(f))}case"reset_drift":{let l=jY({slug:i});return ye(JSON.stringify(l))}case"set_unit_iterations":{let l=e.stage,d=e.unit;if(!l||!d)return XE({error:"missing_stage_or_unit",message:"set_unit_iterations requires `stage` and `unit`"});let f=Array.isArray(e.iterations)?e.iterations:void 0,p=HY({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:n0({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 XE({error:"missing_feedback_id",message:"mutate_feedback requires `feedback_id` or `feedback_ids`"});let p=n0({slug:i,stage:d,feedbackId:f,patch:l});return ye(JSON.stringify(p))}default:return XE({error:"unhandled_op",op:s})}}catch(l){return XE({error:"debug_op_threw",op:s,detail:l instanceof Error?l.message:String(l)})}}}});import{existsSync as v_e,readFileSync as zer}from"node:fs";import{join as s6}from"node:path";function Ver(e,t,n){if(!n)return null;let r=n.replace(/\{intent-slug\}/g,t);return r.startsWith(".haiku/")?s6(e,r):r.startsWith("/")?r:s6(e,".haiku","intents",t,r)}var Ext,bxt=v(()=>{"use strict";yr();Hx();ji();uo();ze();Kn();vo();Gi();vs();Ext={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:lx,async handle(e){let t=Be(e,zme,"haiku_discovery_complete");if(t)return t;let n=e,{intent:r,stage:i,template:s}=n,o=ve(),a=s6(o,"intents",r);if(!v_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(!v_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(zer(s6(a,"intent.md"),"utf8")).data,l=typeof u.studio=="string"?u.studio:"";if(l){let d=s.toLowerCase(),f=no(l,i).filter(p=>p.kind==="discovery").find(p=>p.name.toLowerCase()===d);if(f){let p=Ver(c,r,f.location);if(p&&!v_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=FE(r,i,()=>_pe(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 _xt}from"node:child_process";import{existsSync as Bv,readdirSync as A_e,readFileSync as Wg,statSync as Wer,writeFileSync as v0}from"node:fs";import{join as dp,resolve as Ker}from"node:path";function Yer(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},v0(e,_c.default.stringify(r.content,i)),o}catch{return 1}}function vxt(){let e=[];try{e=XD(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?kL(r.requires_tool):!0})),n=t.some(r=>r.tool_live);return{services:t,bootable:n}}function o6(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 A_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 Axt(e){if(e.closed_at||e.rejected_at)return!1;let t=e.status;return t!=="closed"&&t!=="rejected"}function Rxt(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},v0(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}))],v0(e,_c.default.stringify(n.content,r))}catch{}}function Xer(e,t,n){let r=[],i=[],s=[],o=[];for(let c of n){let u=dp(pe(e),"stages",t,"units",`${c}.md`);if(!Bv(u)){i.push({unit:c,failures:[{name:"unit_not_found",command:"",exit_code:1,output:`Unit file not found at ${u}`}]});continue}let l=Qye(e,u);if(l===null)ttr(u,"quality_gates"),r.push(c);else if(l.environment){let d=Yer(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}`;o6(e,t,[m,d]).length>=R_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 ${R_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 o6(e,t,y))Axt(g.data)&&Rxt(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}`;Qo(e,t,{title:`quality_gates failure on ${c} (${h.name})`,body:`Declared quality_gate \`${h.name}\` failed on unit \`${c}\`: +This is an ADMIN op that BYPASSES the normal workflow engine. It mutates state in ways the cursor would not. Confirm only if you understand the consequences.`,options:[{id:"confirm",label:`Yes, run ${s}`,description:"Proceed with the admin op. State will be mutated immediately."},{id:"cancel",label:"Cancel",description:"Abort. No state changes."}],signal:t});if(u.timedOut||!u.selection||u.selection.id!=="confirm")return ye(JSON.stringify({action:"cancelled",message:`Debug op '${s}' cancelled \u2014 no state mutated.`}));try{switch(s){case"force_stage_complete":{let l=e.stage;if(!l)return eE({error:"missing_stage",message:"force_stage_complete requires `stage`"});let d=XZ({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:dx({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 eE({error:"missing_field",message:"set_intent_field requires `field` or `fields`"});let f=dx({slug:i,field:l,value:d});return ye(JSON.stringify(f))}case"reset_drift":{let l=QZ({slug:i});return ye(JSON.stringify(l))}case"set_unit_iterations":{let l=e.stage,d=e.unit;if(!l||!d)return eE({error:"missing_stage_or_unit",message:"set_unit_iterations requires `stage` and `unit`"});let f=Array.isArray(e.iterations)?e.iterations:void 0,p=$Z({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:fx({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 eE({error:"missing_feedback_id",message:"mutate_feedback requires `feedback_id` or `feedback_ids`"});let p=fx({slug:i,stage:d,feedbackId:f,patch:l});return ye(JSON.stringify(p))}default:return eE({error:"unhandled_op",op:s})}}catch(l){return eE({error:"debug_op_threw",op:s,detail:l instanceof Error?l.message:String(l)})}}}});import{existsSync as C_e,readFileSync as ktr}from"node:fs";import{join as g5}from"node:path";function Itr(e,t,n){if(!n)return null;let r=n.replace(/\{intent-slug\}/g,t);return r.startsWith(".haiku/")?g5(e,r):r.startsWith("/")?r:g5(e,".haiku","intents",t,r)}var L0t,U0t=v(()=>{"use strict";ar();K0();ji();uo();ze();Kn();vo();zi();vs();L0t={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:y0,async handle(e){let t=Be(e,$me,"haiku_discovery_complete");if(t)return t;let n=e,{intent:r,stage:i,template:s}=n,o=ve(),a=g5(o,"intents",r);if(!C_e(a))return ye(JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${r}' not found at ${a}.`}));let c=NI(r,i,s);if(!C_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(ktr(g5(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=Itr(c,r,f.location);if(p&&!C_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=Hb(r,i,()=>Ope(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 F0t}from"node:child_process";import{existsSync as Zv,readdirSync as M_e,readFileSync as Kg,statSync as xtr,writeFileSync as Cx}from"node:fs";import{join as fp,resolve as Otr}from"node:path";function Ntr(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},Cx(e,Tc.default.stringify(r.content,i)),o}catch{return 1}}function H0t(){let e=[];try{e=s1(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?FD(r.requires_tool):!0})),n=t.some(r=>r.tool_live);return{services:t,bootable:n}}function y5(e,t,n){let r=Array.isArray(n)?n:[n],i=t?fp(ce(e),"stages",t,"feedback"):fp(ce(e),"feedback");if(!Zv(i))return[];let s=[];for(let o of M_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 q0t(e){if(e.closed_at||e.rejected_at)return!1;let t=e.status;return t!=="closed"&&t!=="rejected"}function B0t(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},Cx(e,Tc.default.stringify(n.content,r))}catch{}}function Ctr(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}))],Cx(e,Tc.default.stringify(n.content,r))}catch{}}function Mtr(e,t,n){let r=[],i=[],s=[],o=[];for(let c of n){let u=fp(ce(e),"stages",t,"units",`${c}.md`);if(!Zv(u)){i.push({unit:c,failures:[{name:"unit_not_found",command:"",exit_code:1,output:`Unit file not found at ${u}`}]});continue}let l=aSe(e,u);if(l===null)Ftr(u,"quality_gates"),r.push(c);else if(l.environment){let d=Ntr(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}`;y5(e,t,[m,d]).length>=D_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 ${D_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.`;Ctr(u,f);let g=[d,...h.map(y=>`${d}:${y}`)];for(let y of y5(e,t,g))q0t(y.data)&&B0t(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=vxt(),u=o.every(h=>h.attempts>Zer),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=Pfe(),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=H0t(),u=o.every(h=>h.attempts>Ptr),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=qfe(),p=l==="best_effort_boot"?`Quality gates can't reach a live environment on: ${o.map(h=>h.unit).join(", ")}. ${o.map(h=>` \u2022 ${h.unit}: ${h.reason}`).join(` `)} @@ -1287,98 +1287,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=$er(t),i=etr(n,r);if(i.length===0)return Txt(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=_xt("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{}let o=[];for(let u of i){let l=u.dir?Ker(s,u.dir):s;try{_xt(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 Txt(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(XD(Br()).map(d=>d.requires_tool).filter(d=>typeof d=="string"&&d.length>0))]}catch{u=[]}let l=j4(o,{requiredTools:u});if(l.environment){let d=vxt(),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=Pfe();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 Dtr(e){let t=ce(e),n=fp(t,"stages"),r=Ltr(t),i=Utr(n,r);if(i.length===0)return j0t(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=F0t("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{}let o=[];for(let u of i){let l=u.dir?Otr(s,u.dir):s;try{F0t(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 j0t(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(s1(Br()).map(d=>d.requires_tool).filter(d=>typeof d=="string"&&d.length>0))]}catch{u=[]}let l=KK(o,{requiredTools:u});if(l.environment){let d=H0t(),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=qfe();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=o6(e,"","intent_quality_gates").length;if(a>=R_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.`;ntr(e,o);for(let d of o6(e,"","intent_quality_gates"))Axt(d.data)&&Rxt(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=y5(e,"","intent_quality_gates").length;if(a>=D_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.`;jtr(e,o);for(let d of y5(e,"","intent_quality_gates"))q0t(d.data)&&B0t(d.path,l);return ye(JSON.stringify({scope:"intent",ran:i.length,failures:o,deferred:{gates:u,reason:l},message:`${o.length} of ${i.length} intent-scope quality_gates stayed red across ${a} fix-loop attempt(s) \u2014 DEFERRED to CI. approvals.intent_quality_gates stamped deferred; intent can seal.`},null,2))}let c=o.map(u=>`- **${u.name}**: \`${u.command}\` exited ${u.exit_code} (declared by: ${u.contributors.join(", ")}) ${u.output.slice(0,400).split(` `).join(` `)}`).join(` `);return Qo(e,"",{title:`intent_quality_gates: ${o.length} failing command(s)`,body:`${o.length} of ${i.length} distinct quality_gates command(s) failed at intent scope. The studio fix-hat loop should resolve each failure; on close, the cursor's intent walk will re-dispatch dispatch_quality_gates because approvals.intent_quality_gates is still unset. If the gates keep failing across attempts, the engine defers them to CI (environmental / non-source-convergent). -${c}`,origin:"agent",severity:"blocker",author:"engine",source_ref:"intent_quality_gates"}),ye(JSON.stringify({scope:"intent",ran:i.length,failures:o,message:`${o.length} of ${i.length} distinct quality_gates command(s) failed at intent scope \u2014 intent-scope FB filed.`},null,2))}function $er(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 etr(e,t=new Set){if(!Bv(e))return[];let n=new Map,r=A_e(e).filter(i=>{try{return Wer(dp(e,i)).isDirectory()}catch{return!1}});for(let i of r){let s=dp(e,i,"units");if(!Bv(s))continue;let o=A_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 ttr(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]=Hd(a,o),i.approvals=s;let c=_c.default.stringify(r.content,i);v0(e,c)}function ntr(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}))],v0(n,_c.default.stringify(r.content,i))}catch{}}function Txt(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,v0(n,_c.default.stringify(i.content,s))}var _c,Zer,R_e,wxt,kxt=v(()=>{"use strict";_c=Se(Kt(),1);Cfe();Mfe();Yf();ze();QD();Gi();vs();Zer=1;R_e=2;wxt={name:"haiku_dispatch_quality_gates",description:"Run the declared `quality_gates` at stage scope (per-unit, with fix-loop on failure) or at intent scope (union of all units' gates, deduped by command, stamped on intent.md). Engine-callable from the cursor's dispatch_quality_gates action.",inputSchema:{type:"object",properties:{intent:{type:"string"},stage:{type:"string"},units:{type:"array",items:{type:"string"}},scope:{type:"string",enum:["intent","stage"]}},required:["intent"]},async handle(e){let t=e.intent,n=e.stage||"",r=e.units||[];return(e.scope??(n===""?"intent":"stage"))==="intent"?Qer(t):Xer(t,n,r)}}});import{existsSync as Ixt,readFileSync as rtr}from"node:fs";import{join as a6}from"node:path";var xxt,Oxt=v(()=>{"use strict";ns();Oa();ji();uo();ze();vo();Gi();Fv();vs();xxt={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:gx,async handle(e){let t=Be(e,kge,"haiku_drop_stage");if(t)return t;let{intent:n,stage:r}=e,i=ve(),s=a6(i,"intents",n),o=a6(s,"intent.md");if(!Ixt(o))return ye(JSON.stringify({error:"not_found",message:`Intent '${n}' not found`}));let a=re(rtr(o,"utf8")).data,c=a.studio||"";if(!c)return ye(JSON.stringify({error:"studio_not_selected",message:`Intent '${n}' has no studio selected.`}));let u=ai(n,c,s)??"";if(r!==u)return ye(JSON.stringify({error:"drop_stage_not_active",message:`Stage '${r}' is not the active stage of intent '${n}' (active: '${u||"(none)"}'). An optional stage can only be dropped when the cursor is on it \u2014 the decision is made at arrival, not for a future or past stage.`}));if(!QL(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=a6(s,"stages",r);if(Ixt(a6(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 Le(o,"stages",m),wt(`haiku: drop optional stage ${r} from ${n}`),Ke("haiku.stage.dropped",{intent:n,stage:r,studio:c}),ye(JSON.stringify({action:"stage_dropped",intent:n,stage:r,stages:m,message:zn(`Dropped the optional **${r}** stage from intent "${n}".`,`Call haiku_run_next { intent: "${n}" } to advance${h?` to the next stage (\`${h}\`)`:""}.`)}))}}});import{createHash as itr,randomBytes as otr}from"node:crypto";import{existsSync as Gv,readFileSync as I_e,realpathSync as Nxt,unlinkSync as atr}from"node:fs";import{writeFile as ctr}from"node:fs/promises";import{dirname as k_e,isAbsolute as utr,join as zv,relative as pU,resolve as w_e}from"node:path";function ltr(e){let t=zv(e,"settings.yml");if(!Gv(t))return!1;try{let n=I_e(t,"utf8"),{data:r}=(0,Pxt.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 Ltr(e){let t=fp(e,"intent.md");if(!Zv(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 Utr(e,t=new Set){if(!Zv(e))return[];let n=new Map,r=M_e(e).filter(i=>{try{return xtr(fp(e,i)).isDirectory()}catch{return!1}});for(let i of r){let s=fp(e,i,"units");if(!Zv(s))continue;let o=M_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 Ftr(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]=zd(a,o),i.approvals=s;let c=Tc.default.stringify(r.content,i);Cx(e,c)}function jtr(e,t){let n=fp(ce(e),"intent.md");if(Zv(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}))],Cx(n,Tc.default.stringify(r.content,i))}catch{}}function j0t(e,t){let n=fp(ce(e),"intent.md");if(!Zv(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,Cx(n,Tc.default.stringify(i.content,s))}var Tc,Ptr,D_e,z0t,G0t=v(()=>{"use strict";Tc=Re(Kt(),1);Bfe();zfe();Xf();ze();o1();zi();vs();Ptr=1;D_e=2;z0t={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"?Dtr(t):Mtr(t,n,r)}}});import{existsSync as V0t,readFileSync as Htr}from"node:fs";import{join as S5}from"node:path";var W0t,K0t=v(()=>{"use strict";ns();Oa();ji();uo();ze();vo();zi();Vv();vs();W0t={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:v0,async handle(e){let t=Be(e,Lge,"haiku_drop_stage");if(t)return t;let{intent:n,stage:r}=e,i=ve(),s=S5(i,"intents",n),o=S5(s,"intent.md");if(!V0t(o))return ye(JSON.stringify({error:"not_found",message:`Intent '${n}' not found`}));let a=re(Htr(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(!oL(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=S5(s,"stages",r);if(V0t(S5(l,"elaboration.md"))||dv(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 Ne(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:xn(`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 qtr,randomBytes as Btr}from"node:crypto";import{existsSync as Jv,readFileSync as F_e,realpathSync as Y0t,unlinkSync as ztr}from"node:fs";import{writeFile as Gtr}from"node:fs/promises";import{dirname as U_e,isAbsolute as Vtr,join as Xv,relative as _U,resolve as L_e}from"node:path";function Wtr(e){let t=Xv(e,"settings.yml");if(!Jv(t))return!1;try{let n=F_e(t,"utf8"),{data:r}=(0,Z0t.default)(`--- ${n} --- -`);return r.human_write_require_rationale===!0}catch{return!1}}function dtr(e){let t=zv(e,"write-audit.jsonl");if(!Gv(t))return 1;try{return I_e(t,"utf8").split(` -`).filter(i=>i.trim()!=="").length+1}catch{return 1}}function ptr(e){if(/^knowledge\//.test(e))return{allowed:!0,stageSegment:null};let t=e.match(/^stages\/([^/]+)\/(.+)$/);if(t){let n=t[1],r=t[2];if(/^knowledge\//.test(r)||/^discovery\//.test(r)||/^artifacts\//.test(r)||/^outputs\//.test(r))return{allowed:!0,stageSegment:n}}return{allowed:!1}}function htr(e,t,n){let r=nv(e),i=w_e(t);if(utr(r)){let l=w_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=pU(i,l)}let s=w_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=pU(i,s),a=k_e(s);if(Gv(a))try{let l=Nxt(a),d=Nxt(i);if(!l.startsWith(`${d}/`)&&l!==d)return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}' parent directory resolves outside the intent directory via symlink.`}}catch{return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}': could not resolve parent directory. Rejecting for safety.`}}let c=nv(o);for(let l of ftr)if(l.pattern.test(c))return{ok:!1,code:"path_outside_tracked_surface",reason:"deny_list_match",deny_rule:l.rule,path:c,message:`Cannot write to '${c}': ${l.message}`};let u=ptr(c);if(!u.allowed)return{ok:!1,code:"path_outside_tracked_surface",reason:"no_allow_match",path:c,message:`Path '${c}' does not match any allowed tracked-surface pattern (knowledge/, stages/{stage}/knowledge/, stages/{stage}/discovery/, stages/{stage}/artifacts/).`};if(u.stageSegment!==null){let l=u.stageSegment;if(!n.includes(l))return{ok:!1,code:"path_outside_tracked_surface",reason:"invalid_stage",path:c,message:`Path '${c}' references stage '${l}' which does not exist in this intent.`}}return{ok:!0,canonicalPath:c}}var Pxt,ftr,Cxt,Mxt=v(()=>{"use strict";Pxt=Se(Kt(),1);p5();Ax();f5();BZ();ze();Gi();vs();ftr=[{pattern:/(?:^|\/)units\/[^/]+\.md$/,rule:"stages/{stage}/units/*.md",message:"Unit files are lifecycle-managed. Use haiku_unit_write or haiku_unit_set."},{pattern:/(?:^|\/)feedback\/[^/]+\.md$/,rule:"stages/{stage}/feedback/*.md",message:"Feedback files are lifecycle-managed. Use haiku_feedback or haiku_feedback_write."},{pattern:/(?:^|\/)intent\.md$/,rule:"intent.md",message:"intent.md is workflow-engine-managed. Use haiku_intent_get or haiku_run_next."},{pattern:/(?:^|\/)state\.json$/,rule:"stages/{stage}/state.json",message:"state.json is workflow engine-internal. Use haiku_run_next or a dedicated MCP tool."},{pattern:/(?:^|\/)baseline\.json$/,rule:"stages/{stage}/baseline.json",message:"baseline.json is managed by the drift-detection gate. Direct writes desync SHA tracking."},{pattern:/(?:^|\/)drift-markers\.json$/,rule:"drift-markers.json",message:"drift-markers.json is an internal workflow-engine artifact. Do not write directly."},{pattern:/(?:^|\/)\.baseline-ack$/,rule:"stages/{stage}/.baseline-ack",message:".baseline-ack is the operator-only baseline-reset acknowledgement marker. Only /haiku:haiku-repair --confirm-baseline-reset can write it; the agent has no path. This is the V-11 defence against silent baseline laundering."},{pattern:/(?:^|\/)baseline-thrash\.json$/,rule:"stages/{stage}/baseline-thrash.json",message:"baseline-thrash.json is the V-11 baseline-corruption circuit breaker. Managed exclusively by the drift-detection gate."},{pattern:/(?:^|\/)write-audit\.jsonl$/,rule:"write-audit.jsonl",message:"write-audit.jsonl is append-only and managed exclusively by the haiku_human_write tool."},{pattern:/(?:^|\/)drift-assessments\//,rule:"drift-assessments/*",message:"drift-assessments/ entries are managed by the workflow engine's assessment pipeline."}];Cxt={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(p1(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(f1(f))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_locked",message:`Intent '${t}' is locked. Unlock it before issuing human-attributed writes.`},null,2)}],isError:!0};if(i!=="utf-8"&&i!=="base64")return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"invalid_content_encoding",message:`Unrecognized content_encoding '${i}'. Valid values: 'utf-8', 'base64'.`},null,2)}],isError:!0};let h;if(i==="base64"?h=Buffer.from(r,"base64"):h=Buffer.from(r,"utf8"),h.length===0)return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"empty_content",message:"Empty content is not permitted. The file must have at least one byte."},null,2)}],isError:!0};if(ltr(d)&&(!o||o.trim()===""))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"rationale_required",message:"Plugin settings require a rationale for human-attributed writes. Provide a short explanation of why the human requested this write in the 'rationale' field.",config_key:"human_write_require_rationale"},null,2)}],isError:!0};let m=Oyt(f),y=htr(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=k_e(E);if(!c&&Gv(E)){let M="";try{let{createHash:q}=await import("node:crypto"),U=I_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:pU(f,S),message:`Parent directory '${pU(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=k_e(M);if(U===M)break;M=U}for(let U of q)b.push(pU(f,U))}let _=itr("sha256").update(h).digest("hex"),T=process.pid,A=otr(6).toString("hex"),R=zv(f,`.hwm-tmp-${T}-${A}.tmp`);try{await ctr(R,h)}catch(M){return Fx(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){Fx(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?h1(f):LE(f,k[1])}catch(M){if(M instanceof Bd){try{atr(E)}catch{}return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"disk_write_failed",path: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=dtr(f),K=z1(P,V),$=xZ(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?Jvt(a):null;B=(await V1(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 mtr,readFileSync as gtr}from"node:fs";import{join as ytr}from"node:path";var Lxt,Dxt=v(()=>{"use strict";yr();ze();Gi();vs();Lxt={name:"haiku_intent_archive",description:"Archive an intent \u2014 sets the `archived: true` frontmatter flag so the intent is hidden from default list views. Reversible via haiku_intent_unarchive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to archive"}},required:["intent"]},handle(e){let t=e.intent,n=ve(),r=ytr(n,"intents",t,"intent.md");if(!mtr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let{data:i}=re(gtr(r,"utf8"));if(i.archived===!0)return ye(JSON.stringify({action:"noop",slug:t,path:r,message:`Intent '${t}' is already archived.`},null,2));let s=gr(t,void 0);return s.ok?(Le(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 c6}from"node:child_process";import{existsSync as Str,mkdirSync as x_e,writeFileSync as O_e}from"node:fs";import{join as tm}from"node:path";function Uxt(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 Fxt,jxt=v(()=>{"use strict";yr();Lfe();s1();ji();uo();ze();Kn();vo();d_();Gi();vs();Fxt={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:CD,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(d1(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=Uxt(i),o=Uxt(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(Ae())try{let g=epe();Nt(f)||RI(r,g||void 0);let E="";try{E=c6("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}E!==f&&c6("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(Str(tm(d,"intent.md")))return ye(JSON.stringify({error:"intent_exists",slug:r,message:`Intent '${r}' already exists`}));x_e(tm(d,"knowledge"),{recursive:!0}),x_e(tm(d,"stages"),{recursive:!0});let p=e.context,h=(t||"").trim(),m=["---",`title: "${i.replace(/"/g,'\\"')}"`,'studio: ""',`plugin_version: "${_S()}"`,"status: active",`created_at: ${bn()}`,"---","",`# ${i}`,"",...h?[h,""]:[],...p?[p,""]:[]].join(` -`);if(O_e(tm(d,"intent.md"),m),Le(tm(d,"intent.md"),"studio_candidates",c),O_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(` -`)),Ae())try{let g=`.haiku/intents/${r}/.gitattributes`;c6("git",["add","--",g],{stdio:"pipe"}),c6("git",["commit","-m",`haiku: seed .gitattributes (merge=union for event streams) for ${r}`,"--",g],{stdio:"pipe"})}catch{}if(p){let g=tm(d,"knowledge");x_e(g,{recursive:!0}),O_e(tm(g,"CONVERSATION-CONTEXT.md"),`# Conversation Context +`);return r.human_write_require_rationale===!0}catch{return!1}}function Ktr(e){let t=Xv(e,"write-audit.jsonl");if(!Jv(t))return 1;try{return F_e(t,"utf8").split(` +`).filter(i=>i.trim()!=="").length+1}catch{return 1}}function Ztr(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=av(e),i=L_e(t);if(Vtr(r)){let l=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=_U(i,l)}let s=L_e(Xv(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=_U(i,s),a=U_e(s);if(Jv(a))try{let l=Y0t(a),d=Y0t(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=av(o);for(let l of Ytr)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=Ztr(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 Z0t,Ytr,J0t,X0t=v(()=>{"use strict";Z0t=Re(Kt(),1);R6();P0();v6();XY();ze();zi();vs();Ytr=[{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."}];J0t={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=ve(),f=Xv(d,"intents",t),p=Xv(f,"intent.md");if(!Jv(p))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${t}' not found.`},null,2)}],isError:!0};if(_1(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(E1(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(Wtr(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=qyt(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=Xv(f,y),S=U_e(b);if(!c&&Jv(b)){let F="";try{let{createHash:V}=await import("node:crypto"),U=F_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&&!Jv(S))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"parent_dir_missing",path:y,missing_dir:_U(f,S),message:`Parent directory '${_U(f,S)}' does not exist and create_dirs is false.`},null,2)}],isError:!0};let E=[];if(u){let F=S,V=[];for(;!Jv(F);){V.unshift(F);let U=U_e(F);if(U===F)break;F=U}for(let U of V)E.push(_U(f,U))}let _=qtr("sha256").update(h).digest("hex"),T=process.pid,R=Btr(6).toString("hex"),A=Xv(f,`.hwm-tmp-${T}-${R}.tmp`);try{await Gtr(A,h)}catch(F){return V0(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=yv(f,S,A,b);if(!x.ok){V0(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?T1(f):Ub(f,k[1])}catch(F){if(F instanceof Vd){try{ztr(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=Ktr(f),W=Q1(N,G),$=FY(d);await jv(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?lRt(a):null;q=(await $1(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 Xtr,readFileSync as Qtr}from"node:fs";import{join as $tr}from"node:path";var Q0t,$0t=v(()=>{"use strict";ar();ze();zi();vs();Q0t={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=$tr(n,"intents",t,"intent.md");if(!Xtr(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=yr(t,void 0);return s.ok?(Ne(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 b5}from"node:child_process";import{existsSync as enr,mkdirSync as j_e,writeFileSync as H_e}from"node:fs";import{join as rm}from"node:path";function ext(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 txt,nxt=v(()=>{"use strict";ar();Gfe();p1();ji();uo();ze();Kn();vo();p_();zi();vs();txt={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:qL,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(b1(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=ext(i),o=ext(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=ve(),d=rm(l,"intents",r),f=`haiku/${r}/main`;if(Ee())try{let y=upe();Pt(f)||PI(r,y||void 0);let b="";try{b=b5("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}b!==f&&b5("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(enr(rm(d,"intent.md")))return ye(JSON.stringify({error:"intent_exists",slug:r,message:`Intent '${r}' already exists`}));j_e(rm(d,"knowledge"),{recursive:!0}),j_e(rm(d,"stages"),{recursive:!0});let p=e.context,h=(t||"").trim(),m=["---",`title: "${i.replace(/"/g,'\\"')}"`,'studio: ""',`plugin_version: "${vS()}"`,"status: active",`created_at: ${mn()}`,"---","",`# ${i}`,"",...h?[h,""]:[],...p?[p,""]:[]].join(` +`);if(H_e(rm(d,"intent.md"),m),Ne(rm(d,"intent.md"),"studio_candidates",c),H_e(rm(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(` +`)),Ee())try{let y=`.haiku/intents/${r}/.gitattributes`;b5("git",["add","--",y],{stdio:"pipe"}),b5("git",["commit","-m",`haiku: seed .gitattributes (merge=union for event streams) for ${r}`,"--",y],{stdio:"pipe"})}catch{}if(p){let y=rm(d,"knowledge");j_e(y,{recursive:!0}),H_e(rm(y,"CONVERSATION-CONTEXT.md"),`# Conversation Context ${p} -`)}wt(`haiku: create intent ${r}`);let y="";if(Ae()&&UL()!==null)try{let g=tm(d,"intent.md"),E=ape({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(Ee()&&CT()!==null)try{let y=rm(d,"intent.md"),b=mpe({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?(Le(g,"draft_pr_url",E.createdUrl),Le(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?(Ne(y,"draft_pr_url",b.createdUrl),Ne(y,"draft_pr_status","draft"),g=` -Draft PR opened: ${E.createdUrl}`):E.compareUrl?(Le(g,"draft_pr_status","failed"),y=` +Draft PR opened: ${b.createdUrl}`):b.compareUrl?(Ne(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}`):(Le(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}`):(Ne(y,"draft_pr_status","failed"),g=` -The engine couldn't open a draft PR: ${E.message}`),wt(`haiku: stamp draft PR status for ${r}`);try{let S=gg(f);!S.ok&&S.error&&console.error(`[haiku_intent_create] push of ${f} after draft-PR stamp failed: ${S.error}`)}catch(S){console.error(`[haiku_intent_create] push after stamp threw: ${S instanceof Error?S.message:String(S)}`)}}catch(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 N_e}from"node:child_process";import{existsSync as Hxt,readFileSync as qxt,rmSync as Etr}from"node:fs";import{join as P_e}from"node:path";var Bxt,Gxt=v(()=>{"use strict";yr();Vd();JE();ze();Gi();vs();Bxt={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=P_e(r,"intents",n),s=P_e(i,"intent.md");if(!Hxt(s))return{content:[{type:"text",text:`Intent '${n}' not found.`}],isError:!0};let o=qxt(s,"utf8"),{data:a,body:c}=re(o),u=a.title||"",l=c.replace(/^#\s+.*\n+/,"").trim()||u,d=await Yu({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=P_e(i,"knowledge","CONVERSATION-CONTEXT.md");Hxt(p)&&(f=qxt(p,"utf8").replace(/^# Conversation Context\n\n/,""));let m=re(o).data.studio||"";if(Ae()){try{let g=Yo(),E="";try{E=N_e("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(g&&E!==g)try{N_e("git",["checkout",g],{encoding:"utf8",stdio:"pipe"})}catch(S){try{N_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(BL(n),m){let g=Fs(m);for(let E of g){let S=`haiku/${n}/${E}`;Nt(S)&&yE(n,E)}}let y=`haiku/${n}/main`;Nt(y)&&GL(y)}return Etr(i,{recursive:!0,force:!0}),wt(`haiku: reset intent ${n} (deleted)`),ye(JSON.stringify({action:"intent_reset",slug:n,title:u,description:l,context:f,message:`Intent '${n}' has been reset. Call haiku_intent_create { title: "${u.replace(/"/g,'\\"')}", description: "${l.replace(/"/g,'\\"').replace(/\n/g,"\\n")}", slug: "${n}"${f?', context: ""':""}, studio_candidates: ["", \u2026] } to recreate it. \`studio_candidates\` is required \u2014 the 2\u20134 studios that best fit, from \`haiku_studio_list\`; if you omit it the recreate call is rejected with instructions to fetch the list and retry.`},null,2))}}});import{existsSync as btr,readFileSync as _tr,writeFileSync as Ttr}from"node:fs";import{join as vtr}from"node:path";var C_e,zxt,Vxt=v(()=>{"use strict";C_e=Se(Kt(),1);yr();E0();ji();uo();ze();Gi();vs();zxt={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:bx,handle(e){let t=Be(e,Cge,"haiku_intent_seal");if(t)return t;let n=e.intent,r=e.nonce,i=e.notes??"",s=S0({kind:"intent_elaborate",slug:n},r);if(!s.ok)return{content:[{type:"text",text:JSON.stringify({error:"verifier_nonce_invalid",tool:"haiku_intent_seal",reason:s.reason,message:s.reason==="missing"?`No pending intent-elaboration verifier nonce for '${n}'. The cursor only mints a nonce when emitting the pre-intent elaborate_review action \u2014 call haiku_run_next first, dispatch the verifier subagent with the nonce on the action payload, then have the subagent call this tool with that nonce.`:`Intent-elaboration verifier nonce for '${n}' does not match the cursor's pending value.`},null,2)}],isError:!0};let o=ve(),a=vtr(o,"intents",n,"intent.md");if(!btr(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=_tr(a,"utf8"),l=(0,C_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()),Ttr(a,C_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 Atr,readFileSync as Rtr,writeFileSync as wtr}from"node:fs";import{join as ktr}from"node:path";var M_e,Wxt,Kxt=v(()=>{"use strict";M_e=Se(Kt(),1);yr();ze();Gi();vs();Wxt={name:"haiku_intent_unarchive",description:"Unarchive an intent \u2014 clears the `archived` frontmatter flag so the intent reappears in default list views. Reversible via haiku_intent_archive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to unarchive"}},required:["intent"]},handle(e){let t=e.intent,n=ve(),r=ktr(n,"intents",t,"intent.md");if(!Atr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let i=Rtr(r,"utf8"),s=(0,M_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 wtr(r,M_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 Itr}from"node:crypto";import{existsSync as Zxt,readFileSync as Yxt}from"node:fs";function xtr(e){let t=e.match(/^(.*\/\.haiku\/intents\/[^/]+)\/(.+)$/);if(!t)return null;let n=t[2],r=n.match(/^stages\/([^/]+)\//);return{intentDir:t[1],pathRel:n,stageOwner:r?r[1]:null}}function Otr(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function Ntr(e){let t=obe(e);if(!Zxt(t))return 1;try{return Yxt(t,"utf8").split(` -`).filter(n=>n.trim()!=="").length+1}catch{return 1}}async function u6(e){let t=xtr(e);if(!t)return{stamped:!1,reason:"not_in_intent_dir"};if(!Otr(t.pathRel))return{stamped:!1,reason:"not_in_tracked_surface"};if(!Zxt(e))return{stamped:!1,reason:"file_missing"};let n;try{n=Itr("sha256").update(Yxt(e)).digest("hex")}catch{return{stamped:!1,reason:"read_failed"}}let r=t.stageOwner?LE(t.intentDir,t.stageOwner):LE(t.intentDir),i=Ntr(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 L_e=v(()=>{"use strict";p5();Ax()});import{realpathSync as Jxt}from"node:fs";import{isAbsolute as Ptr,join as Xxt}from"node:path";function D_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var Qxt,$xt=v(()=>{"use strict";L_e();ze();Gi();Qxt={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 D_e("missing_intent_slug","`intent_slug` is required and must be a non-empty string.");if(typeof n!="string"||n.trim()==="")return D_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=Xxt(i,"intents",t),o=Ptr(n)?n:Xxt(s,n),a=(()=>{try{return Jxt(s)}catch{return s}})(),c=(()=>{try{return Jxt(o)}catch{return o}})();if(!c.startsWith(`${a}/`)&&c!==a)return D_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 u6(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 e0t,t0t,n0t=v(()=>{"use strict";pv();ji();uo();vo();Gi();vs();e0t="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.",t0t={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:fx,async handle(e){let t=Be(e,vge,"haiku_review_stamp");if(t)return t;let{intent:n,kind:r,role:i,stage:s}=e,o=Oye(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)`:""}. ${e0t}`:`No pending ${r} dispatch for '${i}' on stage '${s}' (already stamped). ${e0t}`}))}}});import{appendFileSync as Ctr}from"node:fs";function l6(e){return Date.now()-e>r0t}function d6(e,t,n,r){let i=Date.now()-n;return nm(`${e} (wall-deadline ${r0t}ms exceeded; elapsed=${i}ms)`,t,r,"no_progress")}function A0(e){let t=e;return JSON.stringify({action:t.action??null,stage:t.stage??null,unit:t.unit??null,feedback_id:t.feedback_id??null,role:t.role??null})}function Mtr(e){let t=`[${new Date().toISOString()}] ${e} -`;try{let n=Aft("loop-guards.log");return Ctr(n,t),n}catch{return null}}function nm(e,t,n,r){let i=n,s=`loop=${e} reason=${r} iterations=${t} action=${String(i.action??"?")}`+(i.stage?` stage=${String(i.stage)}`:"")+(i.unit?` unit=${String(i.unit)}`:"")+(i.feedback_id?` fb=${String(i.feedback_id)}`:"");console.error(`[haiku_run_next] loop guard fired: ${s}`);let o=Mtr(`loop guard fired: ${s}`),a=o?` +The engine couldn't open a draft PR: ${b.message}`),wt(`haiku: stamp draft PR status for ${r}`);try{let S=Lh(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 q_e}from"node:child_process";import{existsSync as rxt,readFileSync as ixt,rmSync as tnr}from"node:fs";import{join as B_e}from"node:path";var sxt,oxt=v(()=>{"use strict";ar();Yd();$b();ze();zi();vs();sxt={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=B_e(r,"intents",n),s=B_e(i,"intent.md");if(!rxt(s))return{content:[{type:"text",text:`Intent '${n}' not found.`}],isError:!0};let o=ixt(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=B_e(i,"knowledge","CONVERSATION-CONTEXT.md");rxt(p)&&(f=ixt(p,"utf8").replace(/^# Conversation Context\n\n/,""));let m=re(o).data.studio||"";if(Ee()){try{let y=Zo(),b="";try{b=q_e("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(y&&b!==y)try{q_e("git",["checkout",y],{encoding:"utf8",stdio:"pipe"})}catch(S){try{q_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(QD(n),m){let y=Fs(m);for(let b of y){let S=`haiku/${n}/${b}`;Pt(S)&&bb(n,b)}}let g=`haiku/${n}/main`;Pt(g)&&$D(g)}return tnr(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 nnr,readFileSync as rnr,writeFileSync as inr}from"node:fs";import{join as snr}from"node:path";var z_e,axt,cxt=v(()=>{"use strict";z_e=Re(Kt(),1);ar();xx();ji();uo();ze();zi();vs();axt={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:k0,handle(e){let t=Be(e,Bge,"haiku_intent_seal");if(t)return t;let n=e.intent,r=e.nonce,i=e.notes??"",s=Ix({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=snr(o,"intents",n,"intent.md");if(!nnr(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=yr(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=rnr(a,"utf8"),l=(0,z_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()),inr(a,z_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 onr,readFileSync as anr,writeFileSync as cnr}from"node:fs";import{join as unr}from"node:path";var G_e,uxt,lxt=v(()=>{"use strict";G_e=Re(Kt(),1);ar();ze();zi();vs();uxt={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=unr(n,"intents",t,"intent.md");if(!onr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let i=anr(r,"utf8"),s=(0,G_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=yr(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 cnr(r,G_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 lnr}from"node:crypto";import{existsSync as dxt,readFileSync as fxt}from"node:fs";function dnr(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 fnr(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function pnr(e){let t=gEe(e);if(!dxt(t))return 1;try{return fxt(t,"utf8").split(` +`).filter(n=>n.trim()!=="").length+1}catch{return 1}}async function E5(e){let t=dnr(e);if(!t)return{stamped:!1,reason:"not_in_intent_dir"};if(!fnr(t.pathRel))return{stamped:!1,reason:"not_in_tracked_surface"};if(!dxt(e))return{stamped:!1,reason:"file_missing"};let n;try{n=lnr("sha256").update(fxt(e)).digest("hex")}catch{return{stamped:!1,reason:"read_failed"}}let r=t.stageOwner?Ub(t.intentDir,t.stageOwner):Ub(t.intentDir),i=pnr(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=av(t.pathRel);return await jv(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 V_e=v(()=>{"use strict";R6();P0()});import{realpathSync as pxt}from"node:fs";import{isAbsolute as hnr,join as hxt}from"node:path";function W_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var mxt,gxt=v(()=>{"use strict";V_e();ze();zi();mxt={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 W_e("missing_intent_slug","`intent_slug` is required and must be a non-empty string.");if(typeof n!="string"||n.trim()==="")return W_e("missing_path","`path` is required and must be a non-empty string.");let r=Wg({intent:t});if(r)return r;let i=ve(),s=hxt(i,"intents",t),o=hnr(n)?n:hxt(s,n),a=(()=>{try{return pxt(s)}catch{return s}})(),c=(()=>{try{return pxt(o)}catch{return o}})();if(!c.startsWith(`${a}/`)&&c!==a)return W_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 E5(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 yxt,Sxt,bxt=v(()=>{"use strict";Sv();ji();uo();vo();zi();vs();yxt="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.",Sxt={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:b0,async handle(e){let t=Be(e,Nge,"haiku_review_stamp");if(t)return t;let{intent:n,kind:r,role:i,stage:s}=e,o=jye(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)`:""}. ${yxt}`:`No pending ${r} dispatch for '${i}' on stage '${s}' (already stamped). ${yxt}`}))}}});import{appendFileSync as mnr}from"node:fs";function _5(e){return Date.now()-e>Ext}function T5(e,t,n,r){let i=Date.now()-n;return im(`${e} (wall-deadline ${Ext}ms exceeded; elapsed=${i}ms)`,t,r,"no_progress")}function Mx(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 gnr(e){let t=`[${new Date().toISOString()}] ${e} +`;try{let n=Dft("loop-guards.log");return mnr(n,t),n}catch{return null}}function im(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=gnr(`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 hU,r0t,i0t=v(()=>{"use strict";Tl();hU=16,r0t=9e4});var o0t={};Rr(o0t,{invalidateDownstreamApprovals:()=>Ftr});import{existsSync as Ltr,readdirSync as Dtr,readFileSync as Utr}from"node:fs";import{join as s0t}from"node:path";function Ftr(e){let t=wn(e.intentFm,e.studio),n=t.indexOf(e.completedStage);if(n<0)return{stages_cleared:[],units_cleared:0};let r=t.slice(n+1);if(r.length===0)return{stages_cleared:[],units_cleared:0};let i=[],s=0;for(let o of r){let a=s0t(e.intentDir,"stages",o,"units");if(!Ltr(a))continue;let c=Dtr(a).filter(l=>l.endsWith(".md")),u=!1;for(let l of c){let d=s0t(a,l);try{let f=Utr(d,"utf8"),p=re(f).data,h=p.reviews&&typeof p.reviews=="object"&&Object.keys(p.reviews).length>0,m=p.approvals&&typeof p.approvals=="object"&&Object.keys(p.approvals).length>0;if(!h&&!m)continue;let 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 a0t=v(()=>{"use strict";ze();ns()});var zNt={};Rr(zNt,{AbortError:()=>eb,EXIT_REASONS:()=>asr,HOOK_EVENTS:()=>osr,createSdkMcpServer:()=>vfr,query:()=>Afr,tool:()=>Tfr,unstable_v2_createSession:()=>Rfr,unstable_v2_prompt:()=>kfr,unstable_v2_resumeSession:()=>wfr});import{join as u0t}from"path";import{fileURLToPath as znr}from"url";import{setMaxListeners as Vnr}from"events";import{spawn as Knr}from"child_process";import{createInterface as Znr}from"readline";import*as Yt from"fs";import{stat as Ynr}from"fs/promises";import{join as jir}from"path";import{homedir as Hir}from"os";import{dirname as K_e,join as pOt}from"path";import{cwd as qir}from"process";import{realpathSync as Bir}from"fs";import{randomUUID as Gir}from"crypto";import{randomUUID as csr}from"crypto";import{appendFileSync as usr,existsSync as lsr,mkdirSync as dsr}from"fs";import{join as g0t}from"path";import{randomUUID as msr}from"crypto";import{join as S0t}from"path";import{fileURLToPath as gsr}from"url";function kTe(e=Wnr){let t=new AbortController;return Vnr(e,t.signal),t}function rrr(e){var t=trr.call(e,mU),n=e[mU];try{e[mU]=void 0;var r=!0}catch{}var i=nrr.call(e);return r&&(t?e[mU]=n:delete e[mU]),i}function arr(e){return orr.call(e)}function drr(e){return e==null?e===void 0?lrr:urr:l0t&&l0t in Object(e)?irr(e):crr(e)}function prr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function Srr(e){if(!uOt(e))return!1;var t=frr(e);return t==mrr||t==grr||t==hrr||t==yrr}function _rr(e){return!!d0t&&d0t in e}function Rrr(e){if(e!=null){try{return Arr.call(e)}catch{}try{return e+""}catch{}}return""}function Mrr(e){if(!uOt(e)||Trr(e))return!1;var t=Err(e)?Crr:Irr;return t.test(wrr(e))}function Drr(e,t){return e?.[t]}function Frr(e,t){var n=Urr(e,t);return Lrr(n)?n:void 0}function Hrr(){this.__data__=vU?vU(null):{},this.size=0}function Brr(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function Krr(e){var t=this.__data__;if(vU){var n=t[e];return n===zrr?void 0:n}return Wrr.call(t,e)?t[e]:void 0}function Xrr(e){var t=this.__data__;return vU?t[e]!==void 0:Jrr.call(t,e)}function eir(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=vU&&t===void 0?$rr:t,this}function B0(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}function mir(e,t){var n=this.__data__,r=H6(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function G0(e){var t=-1,n=e==null?0:e.length;for(this.clear();++tt.exclude.includes(n)):e.some(n=>t.include.includes(n)):!0}function Fir(e,t){if(!t)return!0;let n=Dir(e);return Uir(n,t)}function fOt(){return process.env.CLAUDE_CONFIG_DIR??jir(Hir(),".claude")}function h0t(e){if(!e)return!1;if(typeof e=="boolean")return e;let t=e.toLowerCase().trim();return["1","true","yes","on"].includes(t)}function hOt(e){return{name:e,default:f6,validate:t=>{if(!t)return{effective:f6,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:f6,status:"invalid",message:`Invalid value "${t}" (using default: ${f6})`}:n>F_e?{effective:F_e,status:"capped",message:`Capped from ${n} to ${F_e}`}:{effective:n,status:"valid"}}}}function Wir(){let e="";return typeof process<"u"&&typeof process.cwd=="function"&&(e=Bir(qir())),{originalCwd:e,totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:e,modelUsage:{},mainLoopModelOverride:void 0,initialMainLoopModel:null,modelStrings:null,isInteractive:!1,clientType:"cli",sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,sessionId:Gir(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[zir,Vir],lastAPIRequest:null,inMemoryErrorLog:[],inlinePlugins:[],sessionBypassPermissionsMode:!1,sessionPersistenceDisabled:!1,hasExitedPlanMode:!1,needsPlanModeExitAttachment:!1,hasExitedDelegateMode:!1,needsDelegateModeExitAttachment:!1,lspRecommendationShownThisSession:!1,initJsonSchema:null,registeredHooks:null,planSlugCache:new Map,teleportedSessionInfo:null,invokedSkills:new Map,slowOperations:[],sdkBetas:void 0}}function Zir(){return Kir.sessionId}function Yir({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 m0t.add(e),()=>m0t.delete(e)}function Xir(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array[${e.length}]`:typeof e=="object"?`Object{${Object.keys(e).length} keys}`:typeof e=="string"?`string(${e.length} chars)`:typeof e}function gOt(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>mOt&&(Zg(`[SLOW OPERATION DETECTED] ${e} (${r.toFixed(1)}ms)`),void 0)}}function rm(e,t,n){let r=Xir(e);return gOt(`JSON.stringify(${r})`,()=>JSON.stringify(e,t,n))}function esr(e){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let t=$ir();return Fir(e,t)}function nsr(){return p6||(p6=Yir({writeFn:e=>{let t=EOt();Jg().existsSync(K_e(t))||Jg().mkdirSync(K_e(t)),Jg().appendFileSync(t,e),rsr()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:Qir()}),Jir(async()=>p6?.dispose())),p6}function Zg(e,{level:t}={level:"debug"}){if(!esr(e))return;tsr&&e.includes(` -`)&&(e=rm(e));let r=`${new Date().toISOString()} [${t.toUpperCase()}] ${e.trim()} -`;if(SOt()){Mir(r);return}nsr().write(r)}function EOt(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??pOt(fOt(),"debug",`${Zir()}.txt`)}function fo(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>mOt&&(Zg(`[SLOW OPERATION DETECTED] fs.${e} (${r.toFixed(1)}ms)`),`${e}`,void 0)}}function Jg(){return ssr}function OTe(){return process.versions.bun!==void 0}function fsr(){if(y0t)return h6;if(y0t=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let e=g0t(fOt(),"debug");return h6=g0t(e,`sdk-${csr()}.txt`),lsr(e)||dsr(e,{recursive:!0}),process.stderr.write(`SDK debug logs: ${h6} -`),h6}function Vv(e){let t=fsr();if(!t)return;let r=`${new Date().toISOString()} ${e} -`;usr(t,r)}function psr(e,t){let n={...e};if(t){let r={sandbox:t};if(n.settings)try{r={...yOt(n.settings),sandbox:t}}catch{}n.settings=rm(r)}return n}function hsr(e){return![".js",".mjs",".tsx",".ts",".jsx"].some(n=>e.endsWith(n))}function bOt(e){return new A6(e)}function ysr(e,t){return new A6({...t,resume:e})}function Y_e(){return Esr}function Ze(e,t){let n=Y_e(),r=J_e({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===AU?void 0:AU].filter(i=>!!i)});e.common.issues.push(r)}function ln(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(o,a)=>{let{message:c}=e;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??r??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??n??a.defaultError}},description:i}}function TOt(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Dsr(e){return new RegExp(`^${TOt(e)}$`)}function Usr(e){let t=`${_Ot}T${TOt(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Fsr(e,t){return!!((t==="v4"||!t)&&xsr.test(e)||(t==="v6"||!t)&&Nsr.test(e))}function jsr(e,t){if(!Rsr.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function Hsr(e,t){return!!((t==="v4"||!t)&&Osr.test(e)||(t==="v6"||!t)&&Psr.test(e))}function qsr(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function R0(e){if(e instanceof Dl){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=hp.create(R0(r))}return new Dl({...e._def,shape:()=>t})}else return e instanceof rb?new rb({...e._def,type:R0(e.element)}):e instanceof hp?hp.create(R0(e.unwrap())):e instanceof Qg?Qg.create(R0(e.unwrap())):e instanceof Xg?Xg.create(e.items.map(t=>R0(t))):e}function Q_e(e,t){let n=$E(e),r=$E(t);if(e===t)return{valid:!0,data:e};if(n===nt.object&&r===nt.object){let i=ir.objectKeys(t),s=ir.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of s){let c=Q_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(tTe,e),tTe}function Gsr(e){return e}function zsr(e){return e}function Vsr(e){}function Wsr(e){throw new Error}function Ksr(e){}function NTe(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 nTe(e,t="|"){return e.map(n=>MTe(n)).join(t)}function AOt(e,t){return typeof t=="bigint"?t.toString():t}function B6(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function G6(e){return e==null}function z6(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function ROt(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function ki(e,t,n){Object.defineProperty(e,t,{get(){{let i=n();return e[t]=i,i}throw new Error("cached value already set")},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function PTe(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Zsr(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function Ysr(e){let t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{let i={};for(let s=0;st};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function eor(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,s){return t??(t=e()),Reflect.set(t,r,i,s)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function MTe(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function IOt(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function nor(e,t){let n={},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(n[i]=r.shape[i])}return ty(e,{...e._zod.def,shape:n,checks:[]})}function ror(e,t){let n={...e._zod.def.shape},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete n[i]}return ty(e,{...e._zod.def,shape:n,checks:[]})}function ior(e,t){if(!DU(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 PTe(this,"shape",r),r},checks:[]};return ty(e,n)}function sor(e,t){return ty(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return PTe(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function oor(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in r))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=e?new e({type:"optional",innerType:r[s]}):r[s])}else for(let s in r)i[s]=e?new e({type:"optional",innerType:r[s]}):r[s];return ty(t,{...t._zod.def,shape:i,checks:[]})}function aor(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=new e({type:"nonoptional",innerType:r[s]}))}else for(let s in r)i[s]=new e({type:"nonoptional",innerType:r[s]});return ty(t,{...t._zod.def,shape:i,checks:[]})}function k0(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function EU(e){return typeof e=="string"?e:e?.message}function ey(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=EU(e.inst?._zod.def?.error?.(e))??EU(t?.error?.(e))??EU(n.customError?.(e))??EU(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function cor(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function V6(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function OOt(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function uor(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function lor(e,t=n=>n.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function dor(e,t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>i({issues:a}));else if(o.code==="invalid_key")i({issues:o.issues});else if(o.code==="invalid_element")i({issues:o.issues});else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;cr==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return GOt(n)}function war(e,t=null){try{let n=e.split(".");if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}}function A0t(e,t,n){e.issues.length&&t.issues.push(...tb(n,e.issues)),t.value[n]=e.value}function m6(e,t,n){e.issues.length&&t.issues.push(...tb(n,e.issues)),t.value[n]=e.value}function R0t(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(...tb(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function w0t(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 sTe(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(DU(e)&&DU(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=sTe(e[s],t[s]);if(!o.valid)return{valid:!1,mergeErrorPath:[s,...o.mergeErrorPath]};i[s]=o.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;rt.normalize(e))}function Fcr(){return FU(e=>e.trim())}function jcr(){return FU(e=>e.toLowerCase())}function Hcr(){return FU(e=>e.toUpperCase())}function qcr(e,t,n){return new e({type:"array",element:t,...Ht(n)})}function Bcr(e,t,n){let r=Ht(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function Gcr(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Ht(n)})}function zcr(e,t){if(e instanceof I6){let r=new O6(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 O6(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 U0t(e,t){let n={type:"object",get shape(){return zr.assignProp(this,"shape",{...e}),this.shape},...zr.normalizeParams(t)};return new Wcr(n)}function gp(e){return!!e._zod}function _U(e){let t=Object.values(e);if(t.length===0)return U0t({});let n=t.every(gp),r=t.every(i=>!gp(i));if(n)return U0t(e);if(r)return Bsr(e);throw new Error("Mixed Zod versions detected in object shape.")}function TU(e,t){return gp(e)?LTe(e,t):e.safeParse(t)}async function B_e(e,t){return gp(e)?await DTe(e,t):await e.safeParseAsync(t)}function jU(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 gU(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 _U(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 G_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 Kcr(e){var t,n,r,i;if(gp(e))return(n=(t=e._zod)===null||t===void 0?void 0:t.def)===null||n===void 0?void 0:n.description;let s=e;return(r=e.description)!==null&&r!==void 0?r:(i=s._def)===null||i===void 0?void 0:i.description}function Zcr(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 YOt(e){var t;if(gp(e)){let o=(t=e._zod)===null||t===void 0?void 0:t.def;if(o){if(o.value!==void 0)return o.value;if(Array.isArray(o.values)&&o.values.length>0)return o.values[0]}}let r=e._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let i=e.value;if(i!==void 0)return i}function QOt(e){return _cr(XOt,e)}function eNt(e){return Tcr($Ot,e)}function nNt(e){return vcr(tNt,e)}function iNt(e){return Acr(rNt,e)}function he(e){return $ar($cr,e)}function ui(e){return Rcr(aNt,e)}function j0t(e){return wcr(yur,e)}function Tc(e){return kcr(Sur,e)}function cNt(e){return Icr(Eur,e)}function xo(){return xcr(bur)}function Tur(e){return Ocr(_ur,e)}function er(e,t){return qcr(vur,e,t)}function Ge(e,t){let n={type:"object",get shape(){return zr.assignProp(this,"shape",{...e}),this.shape},...zr.normalizeParams(t)};return new uNt(n)}function yp(e,t){return new uNt({type:"object",get shape(){return zr.assignProp(this,"shape",{...e}),this.shape},catchall:xo(),...zr.normalizeParams(t)})}function Vi(e,t){return new lNt({type:"union",options:e,...zr.normalizeParams(t)})}function dNt(e,t,n){return new Aur({type:"union",options:t,discriminator:e,...zr.normalizeParams(n)})}function FTe(e,t){return new Rur({type:"intersection",left:e,right:t})}function Oo(e,t,n){return new wur({type:"record",keyType:e,valueType:t,...zr.normalizeParams(n)})}function vc(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new oTe({type:"enum",entries:n,...zr.normalizeParams(t)})}function St(e,t){return new kur({type:"literal",values:Array.isArray(e)?e:[e],...zr.normalizeParams(t)})}function fNt(e){return new Iur({type:"transform",transform:e})}function yt(e){return new pNt({type:"optional",innerType:e})}function H0t(e){return new xur({type:"nullable",innerType:e})}function Nur(e,t){return new Our({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Cur(e,t){return new Pur({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Mur(e,t){return new hNt({type:"nonoptional",innerType:e,...zr.normalizeParams(t)})}function Dur(e,t){return new Lur({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function aTe(e,t){return new Uur({type:"pipe",in:e,out:t})}function jur(e){return new Fur({type:"readonly",innerType:e})}function Hur(e,t){let n=new Qu({check:"custom",...zr.normalizeParams(t)});return n._zod.check=e,n}function qur(e,t){return Bcr(mNt,e??(()=>!0),t)}function Bur(e,t={}){return Gcr(mNt,e,t)}function Gur(e,t){let n=Hur(r=>(r.addIssue=i=>{if(typeof i=="string")r.issues.push(zr.issue(i,r.value,n._zod.def));else{let s=i;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=n),s.continue??(s.continue=!n._zod.def.abort),r.issues.push(zr.issue(s))}},e(r.value,r)),t);return n}function gNt(e,t){return aTe(fNt(e),t)}function gdr(e){if(e.params.ref.type!=="ref/prompt")throw new TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function ydr(e){if(e.params.ref.type!=="ref/resource")throw new TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}function Wv(e){return e==="completed"||e==="failed"||e==="cancelled"}function DNt(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function Cr(e,t,n,r,i){e[t]=n,DNt(e,t,r,i)}function Xu(e){if(e.target!=="openAi")return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy==="relative"?UNt(t,e.currentPath):t.join("/")}}function Rdr(e,t){let n={type:"array"};return e.type?._def&&e.type?._def?.typeName!==De.ZodAny&&(n.items=br(e.type._def,{...t,currentPath:[...t.currentPath,"items"]})),e.minLength&&Cr(n,"minItems",e.minLength.value,e.minLength.message,t),e.maxLength&&Cr(n,"maxItems",e.maxLength.value,e.maxLength.message,t),e.exactLength&&(Cr(n,"minItems",e.exactLength.value,e.exactLength.message,t),Cr(n,"maxItems",e.exactLength.value,e.exactLength.message,t)),n}function wdr(e,t){let n={type:"integer",format:"int64"};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case"min":t.target==="jsonSchema7"?r.inclusive?Cr(n,"minimum",r.value,r.message,t):Cr(n,"exclusiveMinimum",r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),Cr(n,"minimum",r.value,r.message,t));break;case"max":t.target==="jsonSchema7"?r.inclusive?Cr(n,"maximum",r.value,r.message,t):Cr(n,"exclusiveMaximum",r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),Cr(n,"maximum",r.value,r.message,t));break;case"multipleOf":Cr(n,"multipleOf",r.value,r.message,t);break}return n}function kdr(){return{type:"boolean"}}function FNt(e,t){return br(e.type._def,t)}function jNt(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((i,s)=>jNt(e,t,i))};switch(r){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return xdr(e,t)}}function Odr(e,t){return{...br(e.innerType._def,t),default:e.defaultValue()}}function Ndr(e,t){return t.effectStrategy==="input"?br(e.schema._def,t):Xu(t)}function Pdr(e){return{type:"string",enum:Array.from(e.values)}}function Mdr(e,t){let n=[br(e.left._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),br(e.right._def,{...t,currentPath:[...t.currentPath,"allOf","1"]})].filter(s=>!!s),r=t.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,i=[];return n.forEach(s=>{if(Cdr(s))i.push(...s.allOf),s.unevaluatedProperties===void 0&&(r=void 0);else{let o=s;if("additionalProperties"in s&&s.additionalProperties===!1){let{additionalProperties:a,...c}=s;o=c}else r=void 0;i.push(o)}}),i.length?{allOf:i,...r}:void 0}function Ldr(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 HNt(e,t){let n={type:"string"};if(e.checks)for(let r of e.checks)switch(r.kind){case"min":Cr(n,"minLength",typeof n.minLength=="number"?Math.max(n.minLength,r.value):r.value,r.message,t);break;case"max":Cr(n,"maxLength",typeof n.maxLength=="number"?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case"email":switch(t.emailStrategy){case"format:email":pp(n,"email",r.message,t);break;case"format:idn-email":pp(n,"idn-email",r.message,t);break;case"pattern:zod":nu(n,fp.email,r.message,t);break}break;case"url":pp(n,"uri",r.message,t);break;case"uuid":pp(n,"uuid",r.message,t);break;case"regex":nu(n,r.regex,r.message,t);break;case"cuid":nu(n,fp.cuid,r.message,t);break;case"cuid2":nu(n,fp.cuid2,r.message,t);break;case"startsWith":nu(n,RegExp(`^${V_e(r.value,t)}`),r.message,t);break;case"endsWith":nu(n,RegExp(`${V_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":{nu(n,RegExp(V_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":nu(n,fp.base64url,r.message,t);break;case"jwt":nu(n,fp.jwt,r.message,t);break;case"cidr":{r.version!=="v6"&&nu(n,fp.ipv4Cidr,r.message,t),r.version!=="v4"&&nu(n,fp.ipv6Cidr,r.message,t);break}case"emoji":nu(n,fp.emoji(),r.message,t);break;case"ulid":{nu(n,fp.ulid,r.message,t);break}case"base64":{switch(t.base64Strategy){case"format:binary":{pp(n,"binary",r.message,t);break}case"contentEncoding:base64":{Cr(n,"contentEncoding","base64",r.message,t);break}case"pattern:zod":{nu(n,fp.base64,r.message,t);break}}break}case"nanoid":nu(n,fp.nanoid,r.message,t);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return n}function V_e(e,t){return t.patternStrategy==="escape"?Udr(e):e}function Udr(e){let t="";for(let n=0;ni.format)?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format,...e.errorMessage&&r.errorMessages&&{errorMessage:{format:e.errorMessage.format}}}),delete e.format,e.errorMessage&&(delete e.errorMessage.format,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.anyOf.push({format:t,...n&&r.errorMessages&&{errorMessage:{format:n}}})):Cr(e,"format",t,n,r)}function nu(e,t,n,r){e.pattern||e.allOf?.some(i=>i.pattern)?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern,...e.errorMessage&&r.errorMessages&&{errorMessage:{pattern:e.errorMessage.pattern}}}),delete e.pattern,e.errorMessage&&(delete e.errorMessage.pattern,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.allOf.push({pattern:G0t(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):Cr(e,"pattern",G0t(t,r),n,r)}function G0t(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();TU=16,Ext=9e4});var vxt={};Ar(vxt,{invalidateDownstreamApprovals:()=>Enr});import{existsSync as ynr,readdirSync as Snr,readFileSync as bnr}from"node:fs";import{join as Txt}from"node:path";function Enr(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=Txt(e.intentDir,"stages",o,"units");if(!ynr(a))continue;let c=Snr(a).filter(l=>l.endsWith(".md")),u=!1;for(let l of c){let d=Txt(a,l);try{let f=bnr(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"),Zh(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 Rxt=v(()=>{"use strict";ze();ns()});var aNt={};Ar(aNt,{AbortError:()=>rE,EXIT_REASONS:()=>zsr,HOOK_EVENTS:()=>Bsr,createSdkMcpServer:()=>spr,query:()=>opr,tool:()=>ipr,unstable_v2_createSession:()=>apr,unstable_v2_prompt:()=>upr,unstable_v2_resumeSession:()=>cpr});import{join as wxt}from"path";import{fileURLToPath as wrr}from"url";import{setMaxListeners as krr}from"events";import{spawn as xrr}from"child_process";import{createInterface as Orr}from"readline";import*as Zt from"fs";import{stat as Prr}from"fs/promises";import{join as _sr}from"path";import{homedir as Tsr}from"os";import{dirname as rTe,join as OOt}from"path";import{cwd as vsr}from"process";import{realpathSync as Rsr}from"fs";import{randomUUID as Asr}from"crypto";import{randomUUID as Gsr}from"crypto";import{appendFileSync as Vsr,existsSync as Wsr,mkdirSync as Ksr}from"fs";import{join as Cxt}from"path";import{randomUUID as Xsr}from"crypto";import{join as Dxt}from"path";import{fileURLToPath as Qsr}from"url";function UTe(e=Irr){let t=new AbortController;return krr(e,t.signal),t}function jrr(e){var t=Urr.call(e,vU),n=e[vU];try{e[vU]=void 0;var r=!0}catch{}var i=Frr.call(e);return r&&(t?e[vU]=n:delete e[vU]),i}function zrr(e){return Brr.call(e)}function Krr(e){return e==null?e===void 0?Wrr:Vrr:kxt&&kxt in Object(e)?Hrr(e):Grr(e)}function Zrr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function eir(e){if(!wOt(e))return!1;var t=Yrr(e);return t==Xrr||t==Qrr||t==Jrr||t==$rr}function rir(e){return!!Ixt&&Ixt in e}function air(e){if(e!=null){try{return oir.call(e)}catch{}try{return e+""}catch{}}return""}function gir(e){if(!wOt(e)||iir(e))return!1;var t=tir(e)?mir:lir;return t.test(cir(e))}function Sir(e,t){return e?.[t]}function Eir(e,t){var n=bir(e,t);return yir(n)?n:void 0}function Tir(){this.__data__=PU?PU(null):{},this.size=0}function Rir(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function xir(e){var t=this.__data__;if(PU){var n=t[e];return n===wir?void 0:n}return Iir.call(t,e)?t[e]:void 0}function Cir(e){var t=this.__data__;return PU?t[e]!==void 0:Nir.call(t,e)}function Lir(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=PU&&t===void 0?Dir:t,this}function Qx(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}function Xir(e,t){var n=this.__data__,r=X5(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function $x(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 Esr(e,t){if(!t)return!0;let n=Ssr(e);return bsr(n,t)}function xOt(){return process.env.CLAUDE_CONFIG_DIR??_sr(Tsr(),".claude")}function Pxt(e){if(!e)return!1;if(typeof e=="boolean")return e;let t=e.toLowerCase().trim();return["1","true","yes","on"].includes(t)}function POt(e){return{name:e,default:v5,validate:t=>{if(!t)return{effective:v5,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:v5,status:"invalid",message:`Invalid value "${t}" (using default: ${v5})`}:n>Y_e?{effective:Y_e,status:"capped",message:`Capped from ${n} to ${Y_e}`}:{effective:n,status:"valid"}}}}function Isr(){let e="";return typeof process<"u"&&typeof process.cwd=="function"&&(e=Rsr(vsr())),{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:Asr(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[wsr,ksr],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 Osr(){return xsr.sessionId}function Psr({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 Nsr(e){return Nxt.add(e),()=>Nxt.delete(e)}function Csr(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 COt(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>NOt&&(Zg(`[SLOW OPERATION DETECTED] ${e} (${r.toFixed(1)}ms)`),void 0)}}function sm(e,t,n){let r=Csr(e);return COt(`JSON.stringify(${r})`,()=>JSON.stringify(e,t,n))}function Lsr(e){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let t=Dsr();return Esr(e,t)}function Fsr(){return R5||(R5=Psr({writeFn:e=>{let t=LOt();Xg().existsSync(rTe(t))||Xg().mkdirSync(rTe(t)),Xg().appendFileSync(t,e),jsr()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:Msr()}),Nsr(async()=>R5?.dispose())),R5}function Zg(e,{level:t}={level:"debug"}){if(!Lsr(e))return;Usr&&e.includes(` +`)&&(e=sm(e));let r=`${new Date().toISOString()} [${t.toUpperCase()}] ${e.trim()} +`;if(DOt()){gsr(r);return}Fsr().write(r)}function LOt(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??OOt(xOt(),"debug",`${Osr()}.txt`)}function fo(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>NOt&&(Zg(`[SLOW OPERATION DETECTED] fs.${e} (${r.toFixed(1)}ms)`),`${e}`,void 0)}}function Xg(){return qsr}function HTe(){return process.versions.bun!==void 0}function Ysr(){if(Mxt)return A5;if(Mxt=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let e=Cxt(xOt(),"debug");return A5=Cxt(e,`sdk-${Gsr()}.txt`),Wsr(e)||Ksr(e,{recursive:!0}),process.stderr.write(`SDK debug logs: ${A5} +`),A5}function Qv(e){let t=Ysr();if(!t)return;let r=`${new Date().toISOString()} ${e} +`;Vsr(t,r)}function Zsr(e,t){let n={...e};if(t){let r={sandbox:t};if(n.settings)try{r={...MOt(n.settings),sandbox:t}}catch{}n.settings=sm(r)}return n}function Jsr(e){return![".js",".mjs",".tsx",".ts",".jsx"].some(n=>e.endsWith(n))}function UOt(e){return new D5(e)}function $sr(e,t){return new D5({...t,resume:e})}function sTe(){return tor}function Ye(e,t){let n=sTe(),r=oTe({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===NU?void 0:NU].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 jOt(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 bor(e){return new RegExp(`^${jOt(e)}$`)}function Eor(e){let t=`${FOt}T${jOt(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 _or(e,t){return!!((t==="v4"||!t)&&dor.test(e)||(t==="v6"||!t)&&hor.test(e))}function Tor(e,t){if(!aor.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 vor(e,t){return!!((t==="v4"||!t)&&por.test(e)||(t==="v6"||!t)&&mor.test(e))}function Ror(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 Dx(e){if(e instanceof jl){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=mp.create(Dx(r))}return new jl({...e._def,shape:()=>t})}else return e instanceof oE?new oE({...e._def,type:Dx(e.element)}):e instanceof mp?mp.create(Dx(e.unwrap())):e instanceof $g?$g.create(Dx(e.unwrap())):e instanceof Qg?Qg.create(e.items.map(t=>Dx(t))):e}function cTe(e,t){let n=nE(e),r=nE(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=cTe(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(dTe,e),dTe}function wor(e){return e}function kor(e){return e}function Ior(e){}function xor(e){throw new Error}function Oor(e){}function qTe(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 fTe(e,t="|"){return e.map(n=>GTe(n)).join(t)}function qOt(e,t){return typeof t=="bigint"?t.toString():t}function $5(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function e8(e){return e==null}function t8(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function BOt(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 BTe(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Por(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function Nor(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 Uor(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 GTe(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function VOt(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function jor(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 Hor(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 qor(e,t){if(!GU(t))throw new Error("Invalid input to extend: expected a plain object");let n={...e._zod.def,get shape(){let r={...e._zod.def.shape,...t};return BTe(this,"shape",r),r},checks:[]};return ny(e,n)}function Bor(e,t){return ny(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return BTe(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function zor(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 Gor(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 Ux(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function kU(e){return typeof e=="string"?e:e?.message}function ty(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=kU(e.inst?._zod.def?.error?.(e))??kU(t?.error?.(e))??kU(n.customError?.(e))??kU(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function Vor(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function n8(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function KOt(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Wor(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function Kor(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 Yor(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 oPt(n)}function ccr(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 qxt(e,t,n){e.issues.length&&t.issues.push(...iE(n,e.issues)),t.value[n]=e.value}function w5(e,t,n){e.issues.length&&t.issues.push(...iE(n,e.issues)),t.value[n]=e.value}function Bxt(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(...iE(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function zxt(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 mTe(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(GU(e)&&GU(t)){let n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),i={...e,...t};for(let s of r){let o=mTe(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 Eur(){return WU(e=>e.trim())}function _ur(){return WU(e=>e.toLowerCase())}function Tur(){return WU(e=>e.toUpperCase())}function vur(e,t,n){return new e({type:"array",element:t,...Ht(n)})}function Rur(e,t,n){let r=Ht(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function Aur(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Ht(n)})}function wur(e,t){if(e instanceof j5){let r=new q5(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 q5(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 eOt(e,t){let n={type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},...Gr.normalizeParams(t)};return new Iur(n)}function yp(e){return!!e._zod}function xU(e){let t=Object.values(e);if(t.length===0)return eOt({});let n=t.every(yp),r=t.every(i=>!yp(i));if(n)return eOt(e);if(r)return Aor(e);throw new Error("Mixed Zod versions detected in object shape.")}function OU(e,t){return yp(e)?VTe(e,t):e.safeParse(t)}async function Q_e(e,t){return yp(e)?await WTe(e,t):await e.safeParseAsync(t)}function KU(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 RU(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 xU(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 $_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 xur(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 Our(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 fPt(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 mPt(e){return rur(hPt,e)}function yPt(e){return iur(gPt,e)}function bPt(e){return sur(SPt,e)}function _Pt(e){return our(EPt,e)}function he(e){return Dcr(Dur,e)}function ui(e){return aur(RPt,e)}function nOt(e){return cur($ur,e)}function vc(e){return uur(elr,e)}function APt(e){return lur(tlr,e)}function xo(){return dur(nlr)}function ilr(e){return fur(rlr,e)}function er(e,t){return vur(slr,e,t)}function Ge(e,t){let n={type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},...Gr.normalizeParams(t)};return new wPt(n)}function Sp(e,t){return new wPt({type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},catchall:xo(),...Gr.normalizeParams(t)})}function Vi(e,t){return new kPt({type:"union",options:e,...Gr.normalizeParams(t)})}function IPt(e,t,n){return new olr({type:"union",options:t,discriminator:e,...Gr.normalizeParams(n)})}function YTe(e,t){return new alr({type:"intersection",left:e,right:t})}function Oo(e,t,n){return new clr({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 gTe({type:"enum",entries:n,...Gr.normalizeParams(t)})}function St(e,t){return new ulr({type:"literal",values:Array.isArray(e)?e:[e],...Gr.normalizeParams(t)})}function xPt(e){return new llr({type:"transform",transform:e})}function yt(e){return new OPt({type:"optional",innerType:e})}function rOt(e){return new dlr({type:"nullable",innerType:e})}function plr(e,t){return new flr({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function mlr(e,t){return new hlr({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function glr(e,t){return new PPt({type:"nonoptional",innerType:e,...Gr.normalizeParams(t)})}function Slr(e,t){return new ylr({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function yTe(e,t){return new blr({type:"pipe",in:e,out:t})}function _lr(e){return new Elr({type:"readonly",innerType:e})}function Tlr(e,t){let n=new $u({check:"custom",...Gr.normalizeParams(t)});return n._zod.check=e,n}function vlr(e,t){return Rur(NPt,e??(()=>!0),t)}function Rlr(e,t={}){return Aur(NPt,e,t)}function Alr(e,t){let n=Tlr(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 CPt(e,t){return yTe(xPt(e),t)}function Qdr(e){if(e.params.ref.type!=="ref/prompt")throw new TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function $dr(e){if(e.params.ref.type!=="ref/resource")throw new TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}function $v(e){return e==="completed"||e==="failed"||e==="cancelled"}function $Pt(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function Cr(e,t,n,r,i){e[t]=n,$Pt(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"?eNt(t,e.currentPath):t.join("/")}}function afr(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 cfr(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 ufr(){return{type:"boolean"}}function tNt(e,t){return Er(e.type._def,t)}function nNt(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((i,s)=>nNt(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 dfr(e,t)}}function ffr(e,t){return{...Er(e.innerType._def,t),default:e.defaultValue()}}function pfr(e,t){return t.effectStrategy==="input"?Er(e.schema._def,t):Qu(t)}function hfr(e){return{type:"string",enum:Array.from(e.values)}}function gfr(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(mfr(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 yfr(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 rNt(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(`^${tTe(r.value,t)}`),r.message,t);break;case"endsWith":ru(n,RegExp(`${tTe(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(tTe(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 tTe(e,t){return t.patternStrategy==="escape"?bfr(e):e}function bfr(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:oOt(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):Cr(e,"pattern",oOt(t,r),n,r)}function oOt(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]:br(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",i]})??Xu(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let n={type:"object",additionalProperties:br(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}=HNt(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}=FNt(e.keyType._def,t);return{...n,propertyNames:i}}}return n}function Fdr(e,t){if(t.mapStrategy==="record")return qNt(e,t);let n=br(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||Xu(t),r=br(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||Xu(t);return{type:"array",maxItems:125,items:{type:"array",items:[n,r],minItems:2,maxItems:2}}}function jdr(e){let t=e.values,r=Object.keys(e.values).filter(s=>typeof t[t[s]]!="number").map(s=>t[s]),i=Array.from(new Set(r.map(s=>typeof s)));return{type:i.length===1?i[0]==="string"?"string":"number":["string","number"],enum:r}}function Hdr(e){return e.target==="openAi"?void 0:{not:Xu({...e,currentPath:[...e.currentPath,"not"]})}}function qdr(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}function Bdr(e,t){if(t.target==="openApi3")return z0t(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(r=>r._def.typeName in L6&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((i,s)=>{let o=L6[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 z0t(e,t)}function Gdr(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return t.target==="openApi3"?{type:L6[e.innerType._def.typeName],nullable:!0}:{type:[L6[e.innerType._def.typeName],"null"]};if(t.target==="openApi3"){let r=br(e.innerType._def,{...t,currentPath:[...t.currentPath]});return r&&"$ref"in r?{allOf:[r],nullable:!0}:r&&{...r,nullable:!0}}let n=br(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return n&&{anyOf:[n,{type:"null"}]}}function zdr(e,t){let n={type:"number"};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case"int":n.type="integer",DNt(n,"type",r.message,t);break;case"min":t.target==="jsonSchema7"?r.inclusive?Cr(n,"minimum",r.value,r.message,t):Cr(n,"exclusiveMinimum",r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),Cr(n,"minimum",r.value,r.message,t));break;case"max":t.target==="jsonSchema7"?r.inclusive?Cr(n,"maximum",r.value,r.message,t):Cr(n,"exclusiveMaximum",r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),Cr(n,"maximum",r.value,r.message,t));break;case"multipleOf":Cr(n,"multipleOf",r.value,r.message,t);break}return n}function Vdr(e,t){let n=t.target==="openAi",r={type:"object",properties:{}},i=[],s=e.shape();for(let a in s){let c=s[a];if(c===void 0||c._def===void 0)continue;let u=Kdr(c);u&&n&&(c._def.typeName==="ZodOptional"&&(c=c._def.innerType),c.isNullable()||(c=c.nullable()),u=!1);let l=br(c._def,{...t,currentPath:[...t.currentPath,"properties",a],propertyPath:[...t.currentPath,"properties",a]});l!==void 0&&(r.properties[a]=l,u||i.push(a))}i.length&&(r.required=i);let o=Wdr(e,t);return o!==void 0&&(r.additionalProperties=o),r}function Wdr(e,t){if(e.catchall._def.typeName!=="ZodNever")return br(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return t.removeAdditionalStrategy==="strict"?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function Kdr(e){try{return e.isOptional()}catch{return!0}}function Jdr(e,t){return br(e.type._def,t)}function Xdr(e,t){let r={type:"array",uniqueItems:!0,items:br(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)=>br(n._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]})).reduce((n,r)=>r===void 0?n:[...n,r],[]),additionalItems:br(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((n,r)=>br(n._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]})).reduce((n,r)=>r===void 0?n:[...n,r],[])}}function $dr(e){return{not:Xu(e)}}function efr(e){return Xu(e)}function br(e,t,n=!1){let r=t.seen.get(e);if(t.override){let a=t.override?.(e,t,r,n);if(a!==Tdr)return a}if(r&&!n){let a=rfr(r,t);if(a!==void 0)return a}let i={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,i);let s=nfr(e,e.typeName,t),o=typeof s=="function"?br(s(),t):s;if(o&&ifr(e,t,o),t.postProcess){let a=t.postProcess(o,e,t);return i.jsonSchema=o,a}return i.jsonSchema=o,o}function ofr(e){return!e||e==="jsonSchema7"||e==="draft-7"?"draft-7":e==="jsonSchema2019-09"||e==="draft-2020-12"?"draft-2020-12":"draft-7"}function V0t(e,t){var n,r,i;return gp(e)?zcr(e,{target:ofr(t?.target),io:(n=t?.pipeStrategy)!==null&&n!==void 0?n:"input"}):sfr(e,{strictUnions:(r=t?.strictUnions)!==null&&r!==void 0?r:!0,pipeStrategy:(i=t?.pipeStrategy)!==null&&i!==void 0?i:"input"})}function W0t(e){let t=jU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=YOt(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function K0t(e,t){let n=TU(e,t);if(!n.success)throw n.error;return n.data}function Z0t(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];Z0t(o)&&Z0t(s)?n[i]={...o,...s}:n[i]=s}return n}function dfr(){let e=new ufr.Ajv({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0}),t=lfr.default;return t(e),e}function ffr(e,t,n){var r;if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!(!((r=e.tools)===null||r===void 0)&&r.call))throw new Error(`${n} does not support task creation for tools/call (required for ${t})`);break;default:break}}function pfr(e,t,n){var r,i;if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!(!((r=e.sampling)===null||r===void 0)&&r.createMessage))throw new Error(`${n} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!(!((i=e.elicitation)===null||i===void 0)&&i.create))throw new Error(`${n} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}function hfr(e){return!!e&&typeof e=="object"&&BNt in e}function mfr(e){let t=e[BNt];return t?.complete}function yfr(e){let t=[];if(e.length===0)return{isValid:!1,warnings:["Tool name cannot be empty"]};if(e.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${e.length})`]};if(e.includes(" ")&&t.push("Tool name contains spaces, which may cause parsing issues"),e.includes(",")&&t.push("Tool name contains commas, which may cause parsing issues"),(e.startsWith("-")||e.endsWith("-"))&&t.push("Tool name starts or ends with a dash, which may cause parsing issues in some contexts"),(e.startsWith(".")||e.endsWith("."))&&t.push("Tool name starts or ends with a dot, which may cause parsing issues in some contexts"),!gfr.test(e)){let n=e.split("").filter(r=>!/[A-Za-z0-9._-]/.test(r)).filter((r,i,s)=>s.indexOf(r)===i);return t.push(`Tool name contains invalid characters: ${n.map(r=>`"${r}"`).join(", ")}`,"Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)"),{isValid:!1,warnings:t}}return{isValid:!0,warnings:t}}function Sfr(e,t){if(t.length>0){console.warn(`Tool name validation warning for "${e}":`);for(let n of t)console.warn(` - ${n}`);console.warn("Tool registration will proceed, but this may cause compatibility issues."),console.warn("Consider updating the tool name to conform to the MCP tool naming standard."),console.warn("See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.")}}function J0t(e){let t=yfr(e);return Sfr(e,t.warnings),t.isValid}function GNt(e){return e!==null&&typeof e=="object"&&"parse"in e&&typeof e.parse=="function"&&"safeParse"in e&&typeof e.safeParse=="function"}function bfr(e){return"_def"in e||"_zod"in e||GNt(e)}function vTe(e){return typeof e!="object"||e===null||bfr(e)?!1:Object.keys(e).length===0?!0:Object.values(e).some(GNt)}function X0t(e){if(e)return vTe(e)?_U(e):e}function _fr(e){let t=jU(e);return t?Object.entries(t).map(([n,r])=>{let i=Kcr(r),s=Zcr(r);return{name:n,description:i,required:!s}}):[]}function QE(e){let t=jU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=YOt(n);if(typeof r=="string")return r;throw new Error("Schema method literal must be a string")}function Q0t(e){return{completion:{values:e.slice(0,100),total:e.length,hasMore:e.length>100}}}function Tfr(e,t,n,r){return{name:e,description:t,inputSchema:n,handler:r}}function vfr(e){let t=new TTe({name:e.name,version:e.version??"1.0.0"},{capabilities:{tools:e.tools?{}:void 0}});return e.tools&&e.tools.forEach(n=>{t.tool(n.name,n.description,n.inputSchema,n.handler)}),{type:"sdk",name:e.name,instance:t}}function Afr({prompt:e,options:t}){let{systemPrompt:n,settingSources:r,sandbox:i,...s}=t??{},o,a;n===void 0?o="":typeof n=="string"?o=n:n.type==="preset"&&(a=n.append);let c=s.pathToClaudeCodeExecutable;if(!c){let le=znr(import.meta.url),_e=u0t(le,"..");c=u0t(_e,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.77";let{abortController:u=kTe(),additionalDirectories:l=[],agents:d,allowedTools:f=[],betas:p,canUseTool:h,continue:m,cwd:y,disallowedTools:g=[],tools:E,env:S,executable:b=OTe()?"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:L,stderr:H,strictMcpConfig:j}=s,W=B?.type==="json_schema"?B.schema:void 0,ee=S;if(ee||(ee={...process.env}),ee.CLAUDE_CODE_ENTRYPOINT||(ee.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),R&&(ee.CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING="true"),!c)throw new Error("pathToClaudeCodeExecutable is required");let se={},Me=new Map;if(K)for(let[le,_e]of Object.entries(K))_e.type==="sdk"&&"instance"in _e?(Me.set(le,_e.instance),se[le]={type:"sdk",name:le}):se[le]=_e;let Re=typeof e=="string",z=new _6({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:L,settingSources:r??[],allowedTools:f,disallowedTools:g,tools:E,mcpServers:se,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 v6(z,Re,h,k,u,Me,W,J);return typeof e=="string"?z.write(rm({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:e}]},parent_tool_use_id:null})+` -`):oe.streamInput(e),oe}function Rfr(e){return bOt(e)}function wfr(e,t){return ysr(e,t)}async function kfr(e,t){let n=[];try{let o=Vtr(n,bOt(t),1);await o.send(e);for await(let a of o.stream())if(a.type==="result")return a;throw new Error("Session ended without result message")}catch(o){var r=o,i=1}finally{var s=Wtr(n,r,i);s&&await s}}var jtr,Htr,W_e,qtr,Btr,$0t,Xe,eOt,Gtr,ztr,Vtr,Wtr,S6,c0t,_n,ur,ib,D6,Ktr,tOt,nOt,E6,Ztr,Sp,Ytr,Jtr,rOt,Xtr,U6,F6,ATe,j6,RTe,Qtr,$tr,enr,tnr,nnr,rnr,inr,snr,onr,anr,cnr,unr,lnr,dnr,fnr,pnr,hnr,mnr,wTe,gnr,ynr,Snr,Enr,iOt,sOt,bnr,_nr,Tnr,vnr,Anr,oOt,Rnr,wnr,knr,Inr,xnr,Onr,Nnr,Pnr,Cnr,Mnr,Lnr,Dnr,Unr,Fnr,jnr,Hnr,aOt,qnr,Bnr,Gnr,Wnr,Jnr,Xnr,Qnr,$nr,ITe,err,b6,cOt,trr,nrr,mU,irr,srr,orr,crr,urr,lrr,l0t,frr,uOt,hrr,mrr,grr,yrr,Err,brr,U_e,d0t,Trr,vrr,Arr,wrr,krr,Irr,xrr,Orr,Nrr,Prr,Crr,Lrr,Urr,lOt,jrr,vU,qrr,Grr,zrr,Vrr,Wrr,Zrr,Yrr,Jrr,Qrr,$rr,tir,f0t,rir,sir,H6,air,cir,lir,fir,hir,gir,yir,Sir,Eir,_ir,vir,q6,wir,Iir,Oir,Pir,dOt,Cir,UU,p0t,Lir,F_e,f6,zir,fNi,Vir,Kir,m0t,mOt,yOt,Qir,$ir,SOt,tsr,p6,rsr,isr,ssr,osr,asr,eb,h6,y0t,_6,T6,Z_e,v6,A6,ir,E0t,nt,$E,xe,Kd,Ssr,AU,Esr,J_e,ru,Vt,SU,Ju,b0t,_0t,I0,R6,lt,Zd,T0t,Tn,bsr,_sr,Tsr,vsr,Asr,Rsr,wsr,ksr,Isr,j_e,xsr,Osr,Nsr,Psr,Csr,Msr,_Ot,Lsr,x0,RU,wU,kU,IU,xU,O0,N0,OU,nb,sm,NU,rb,Dl,P0,Kg,X_e,C0,Xg,$_e,PU,CU,eTe,M0,L0,D0,U0,Kv,mp,hp,Qg,F0,j0,MU,w6,k6,H0,ENi,De,bNi,_Ni,TNi,vNi,ANi,RNi,wNi,kNi,INi,xNi,ONi,NNi,PNi,CNi,Bsr,MNi,LNi,DNi,UNi,FNi,jNi,HNi,qNi,BNi,GNi,zNi,VNi,WNi,KNi,ZNi,YNi,JNi,XNi,QNi,$Ni,Zv,tTe,zr,CTe,wOt,Qsr,kOt,$sr,xOt,tor,rTe,NOt,POt,W6,COt,por,MOt,hor,LOt,LTe,DOt,DTe,mor,gor,yor,Sor,Eor,bor,_or,Tor,v0t,vor,Aor,wor,kor,Ior,xor,Oor,UOt,Nor,Por,FOt,Cor,Dor,Uor,For,jor,Hor,qor,Bor,Qu,HOt,qOt,BOt,Gor,zor,Vor,Wor,Kor,K6,Zor,Yor,Jor,Xor,Qor,$or,ear,iTe,tar,li,UTe,zi,nar,rar,iar,sar,oar,aar,car,uar,lar,dar,far,par,har,mar,gar,yar,Sar,Ear,bar,_ar,Aar,Rar,kar,zOt,Iar,xar,Oar,Nar,Par,Car,VOt,WOt,Mar,Lar,Dar,Uar,Far,jar,Har,qar,Bar,Gar,zar,Var,War,Kar,Zar,Yar,Jar,I6,bU,O6,Vcr,Wcr,JOt,XOt,$Ot,tNt,rNt,sNt,ePi,Z6,Ycr,Jcr,Xcr,Qcr,ss,oNt,$cr,os,eur,F0t,g6,tur,nur,rur,iur,sur,our,aur,cur,uur,lur,dur,fur,pur,hur,mur,gur,aNt,yur,Sur,Eur,bur,_ur,vur,uNt,lNt,Aur,Rur,wur,oTe,kur,Iur,pNt,xur,Our,Pur,hNt,Lur,Uur,Fur,mNt,yNt,zur,Yg,Y6,im,SNt,ENt,Vur,jTe,Wur,$u,Fa,Yv,Yd,Ac,J6,bNt,q0t,_Nt,Kur,TNt,y6,Ft,vNt,Zur,tPi,HTe,Yur,qTe,Jur,HU,q0,ANt,Xur,Qur,$ur,elr,tlr,nlr,RNt,rlr,ilr,wNt,BTe,slr,olr,GTe,alr,qU,BU,GU,X6,clr,N6,zTe,VTe,WTe,KTe,ZTe,ulr,llr,kNt,INt,YTe,xNt,W0,ONt,dlr,cTe,flr,uTe,plr,JTe,hlr,lTe,mlr,glr,ylr,Slr,Elr,blr,_lr,Tlr,vlr,Alr,dTe,Rlr,wlr,fTe,XTe,QTe,$Te,klr,Ilr,xlr,eve,Olr,Nlr,Plr,Clr,Mlr,NNt,pTe,Llr,tve,nPi,Dlr,P6,Ulr,C6,Flr,PNt,jlr,Hlr,qlr,Blr,Glr,zlr,Vlr,M6,Wlr,Klr,Zlr,CNt,MNt,Ylr,Jlr,Xlr,Qlr,$lr,edr,tdr,ndr,rdr,idr,sdr,odr,adr,cdr,udr,ldr,ddr,fdr,hTe,pdr,hdr,mdr,mTe,Sdr,Edr,bdr,LNt,_dr,rPi,iPi,sPi,oPi,aPi,cPi,bt,gTe,Tdr,B0t,vdr,Adr,UNt,Idr,xdr,Cdr,z_e,fp,Ddr,L6,z0t,Zdr,Ydr,tfr,nfr,rfr,ifr,sfr,afr,yTe,ufr,lfr,STe,ETe,bTe,BNt,Y0t,gfr,_Te,TTe,Efr,yU,VNt=v(()=>{jtr=Object.create,Htr=Object.getPrototypeOf,W_e=Object.defineProperty,qtr=Object.getOwnPropertyNames,Btr=Object.prototype.hasOwnProperty,$0t=(e,t,n)=>{n=e!=null?jtr(Htr(e)):{};let r=t||!e||!e.__esModule?W_e(n,"default",{value:e,enumerable:!0}):n;for(let i of qtr(e))Btr.call(r,i)||W_e(r,i,{get:()=>e[i],enumerable:!0});return r},Xe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),eOt=(e,t)=>{for(var n in t)W_e(e,n,{get:t[n],enumerable:!0,configurable:!0,set:r=>t[n]=()=>r})},Gtr=Symbol.dispose||Symbol.for("Symbol.dispose"),ztr=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),Vtr=(e,t,n)=>{if(t!=null){if(typeof t!="object"&&typeof t!="function")throw TypeError('Object expected to be assigned to "using" declaration');var r;if(n&&(r=t[ztr]),r===void 0&&(r=t[Gtr]),typeof r!="function")throw TypeError("Object not disposable");e.push([n,r,t])}else n&&e.push([n]);return t},Wtr=(e,t,n)=>{var r=typeof SuppressedError=="function"?SuppressedError:function(o,a,c,u){return u=Error(c),u.name="SuppressedError",u.error=o,u.suppressed=a,u},i=o=>t=n?new r(o,t,"An error was suppressed during disposal"):(n=!0,o),s=o=>{for(;o=e.pop();)try{var a=o[1]&&o[1].call(o[2]);if(o[0])return Promise.resolve(a).then(s,c=>(i(c),s()))}catch(c){i(c)}if(n)throw t};return s()},S6=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=S6();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=S6(),n=c0t(),r=S6();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=c0t();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(L,H){return this}}class o extends s{constructor(L,H,j){super(),this.varKind=L,this.name=H,this.rhs=j}render({es5:L,_n:H}){let j=L?n.varKinds.var:this.varKind,W=this.rhs===void 0?"":` = ${this.rhs}`;return`${j} ${this.name}${W};`+H}optimizeNames(L,H){if(L[this.name.str])return this.rhs&&(this.rhs=F(this.rhs,L,H)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class a extends s{constructor(L,H,j){super(),this.lhs=L,this.rhs=H,this.sideEffects=j}render({_n:L}){return`${this.lhs} = ${this.rhs};`+L}optimizeNames(L,H){if(!(this.lhs instanceof t.Name&&!L[this.lhs.str]&&!this.sideEffects))return this.rhs=F(this.rhs,L,H),this}get names(){let L=this.lhs instanceof t.Name?{}:{...this.lhs.names};return C(L,this.rhs)}}class c extends a{constructor(L,H,j,W){super(L,j,W),this.op=H}render({_n:L}){return`${this.lhs} ${this.op}= ${this.rhs};`+L}}class u extends s{constructor(L){super(),this.label=L,this.names={}}render({_n:L}){return`${this.label}:`+L}}class l extends s{constructor(L){super(),this.label=L,this.names={}}render({_n:L}){return`break${this.label?` ${this.label}`:""};`+L}}class d extends s{constructor(L){super(),this.error=L}render({_n:L}){return`throw ${this.error};`+L}get names(){return this.error.names}}class f extends s{constructor(L){super(),this.code=L}render({_n:L}){return`${this.code};`+L}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(L,H){return this.code=F(this.code,L,H),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}}class p extends s{constructor(L=[]){super(),this.nodes=L}render(L){return this.nodes.reduce((H,j)=>H+j.render(L),"")}optimizeNodes(){let{nodes:L}=this,H=L.length;for(;H--;){let j=L[H].optimizeNodes();Array.isArray(j)?L.splice(H,1,...j):j?L[H]=j:L.splice(H,1)}return L.length>0?this:void 0}optimizeNames(L,H){let{nodes:j}=this,W=j.length;for(;W--;){let ee=j[W];ee.optimizeNames(L,H)||(V(L,ee.names),j.splice(W,1))}return j.length>0?this:void 0}get names(){return this.nodes.reduce((L,H)=>P(L,H.names),{})}}class h extends p{render(L){return"{"+L._n+super.render(L)+"}"+L._n}}class m extends p{}class y extends h{}y.kind="else";class g extends h{constructor(L,H){super(H),this.condition=L}render(L){let H=`if(${this.condition})`+super.render(L);return this.else&&(H+="else "+this.else.render(L)),H}optimizeNodes(){super.optimizeNodes();let L=this.condition;if(L===!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 L===!1?H instanceof g?H:H.nodes:this.nodes.length?this:new g(K(L),H instanceof g?[H]:H.nodes);if(!(L===!1||!this.nodes.length))return this}optimizeNames(L,H){var j;if(this.else=(j=this.else)===null||j===void 0?void 0:j.optimizeNames(L,H),!!(super.optimizeNames(L,H)||this.else))return this.condition=F(this.condition,L,H),this}get names(){let L=super.names;return C(L,this.condition),this.else&&P(L,this.else.names),L}}g.kind="if";class E extends h{}E.kind="for";class S extends E{constructor(L){super(),this.iteration=L}render(L){return`for(${this.iteration})`+super.render(L)}optimizeNames(L,H){if(super.optimizeNames(L,H))return this.iteration=F(this.iteration,L,H),this}get names(){return P(super.names,this.iteration.names)}}class b extends E{constructor(L,H,j,W){super(),this.varKind=L,this.name=H,this.from=j,this.to=W}render(L){let H=L.es5?n.varKinds.var:this.varKind,{name:j,from:W,to:ee}=this;return`for(${H} ${j}=${W}; ${j}<${ee}; ${j}++)`+super.render(L)}get names(){let L=C(super.names,this.from);return C(L,this.to)}}class _ extends E{constructor(L,H,j,W){super(),this.loop=L,this.varKind=H,this.name=j,this.iterable=W}render(L){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(L)}optimizeNames(L,H){if(super.optimizeNames(L,H))return this.iterable=F(this.iterable,L,H),this}get names(){return P(super.names,this.iterable.names)}}class T extends h{constructor(L,H,j){super(),this.name=L,this.args=H,this.async=j}render(L){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(L)}}T.kind="func";class A extends p{render(L){return"return "+super.render(L)}}A.kind="return";class R extends h{render(L){let H="try"+super.render(L);return this.catch&&(H+=this.catch.render(L)),this.finally&&(H+=this.finally.render(L)),H}optimizeNodes(){var L,H;return super.optimizeNodes(),(L=this.catch)===null||L===void 0||L.optimizeNodes(),(H=this.finally)===null||H===void 0||H.optimizeNodes(),this}optimizeNames(L,H){var j,W;return super.optimizeNames(L,H),(j=this.catch)===null||j===void 0||j.optimizeNames(L,H),(W=this.finally)===null||W===void 0||W.optimizeNames(L,H),this}get names(){let L=super.names;return this.catch&&P(L,this.catch.names),this.finally&&P(L,this.finally.names),L}}class x extends h{constructor(L){super(),this.error=L}render(L){return`catch(${this.error})`+super.render(L)}}x.kind="catch";class k extends h{render(L){return"finally"+super.render(L)}}k.kind="finally";class N{constructor(L,H={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...H,_n:H.lines?` -`:""},this._extScope=L,this._scope=new n.Scope({parent:L}),this._nodes=[new m]}toString(){return this._root.render(this.opts)}name(L){return this._scope.name(L)}scopeName(L){return this._extScope.name(L)}scopeValue(L,H){let j=this._extScope.value(L,H);return(this._values[j.prefix]||(this._values[j.prefix]=new Set)).add(j),j}getScopeValue(L,H){return this._extScope.getValue(L,H)}scopeRefs(L){return this._extScope.scopeRefs(L,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(L,H,j,W){let ee=this._scope.toName(H);return j!==void 0&&W&&(this._constants[ee.str]=j),this._leafNode(new o(L,ee,j)),ee}const(L,H,j){return this._def(n.varKinds.const,L,H,j)}let(L,H,j){return this._def(n.varKinds.let,L,H,j)}var(L,H,j){return this._def(n.varKinds.var,L,H,j)}assign(L,H,j){return this._leafNode(new a(L,H,j))}add(L,H){return this._leafNode(new c(L,e.operators.ADD,H))}code(L){return typeof L=="function"?L():L!==t.nil&&this._leafNode(new f(L)),this}object(...L){let H=["{"];for(let[j,W]of L)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(L,H,j){if(this._blockNode(new g(L)),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(L){return this._elseNode(new g(L))}else(){return this._elseNode(new y)}endIf(){return this._endBlockNode(g,y)}_for(L,H){return this._blockNode(L),H&&this.code(H).endFor(),this}for(L,H){return this._for(new S(L),H)}forRange(L,H,j,W,ee=this.opts.es5?n.varKinds.var:n.varKinds.let){let se=this._scope.toName(L);return this._for(new b(ee,se,H,j),()=>W(se))}forOf(L,H,j,W=n.varKinds.const){let ee=this._scope.toName(L);if(this.opts.es5){let se=H instanceof t.Name?H:this.var("_arr",H);return this.forRange("_i",0,(0,t._)`${se}.length`,Me=>{this.var(ee,(0,t._)`${se}[${Me}]`),j(ee)})}return this._for(new _("of",W,ee,H),()=>j(ee))}forIn(L,H,j,W=this.opts.es5?n.varKinds.var:n.varKinds.const){if(this.opts.ownProperties)return this.forOf(L,(0,t._)`Object.keys(${H})`,j);let ee=this._scope.toName(L);return this._for(new _("in",W,ee,H),()=>j(ee))}endFor(){return this._endBlockNode(E)}label(L){return this._leafNode(new u(L))}break(L){return this._leafNode(new l(L))}return(L){let H=new A;if(this._blockNode(H),this.code(L),H.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(A)}try(L,H,j){if(!H&&!j)throw new Error('CodeGen: "try" without "catch" and "finally"');let W=new R;if(this._blockNode(W),this.code(L),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(L){return this._leafNode(new d(L))}block(L,H){return this._blockStarts.push(this._nodes.length),L&&this.code(L).endBlock(H),this}endBlock(L){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||L!==void 0&&j!==L)throw new Error(`CodeGen: wrong number of nodes: ${j} vs ${L} expected`);return this._nodes.length=H,this}func(L,H=t.nil,j,W){return this._blockNode(new T(L,H,j)),W&&this.code(W).endFunc(),this}endFunc(){return this._endBlockNode(T)}optimize(L=1){for(;L-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(L){return this._currNode.nodes.push(L),this}_blockNode(L){this._currNode.nodes.push(L),this._nodes.push(L)}_endBlockNode(L,H){let j=this._currNode;if(j instanceof L||H&&j instanceof H)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${H?`${L.kind}/${H.kind}`:L.kind}"`)}_elseNode(L){let H=this._currNode;if(!(H instanceof g))throw new Error('CodeGen: "else" without "if"');return this._currNode=H.else=L,this}get _root(){return this._nodes[0]}get _currNode(){let L=this._nodes;return L[L.length-1]}set _currNode(L){let H=this._nodes;H[H.length-1]=L}}e.CodeGen=N;function P(U,L){for(let H in L)U[H]=(U[H]||0)+(L[H]||0);return U}function C(U,L){return L instanceof t._CodeOrName?P(U,L.names):U}function F(U,L,H){if(U instanceof t.Name)return j(U);if(!W(U))return U;return new t._Code(U._items.reduce((ee,se)=>(se instanceof t.Name&&(se=j(se)),se instanceof t._Code?ee.push(...se._items):ee.push(se),ee),[]));function j(ee){let se=H[ee.str];return se===void 0||L[ee.str]!==1?ee:(delete L[ee.str],se)}function W(ee){return ee instanceof t._Code&&ee._items.some(se=>se instanceof t.Name&&L[se.str]===1&&H[se.str]!==void 0)}}function V(U,L){for(let H in L)U[H]=(U[H]||0)-(L[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(L,H)=>L===t.nil?H:H===t.nil?L:(0,t._)`${q(L)} ${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=S6();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=_}),ib=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}),D6=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=ib();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])}}),Ktr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.boolOrEmptySchema=e.topBoolOrEmptySchema=void 0;var t=D6(),n=_n(),r=ib(),i={message:"boolean schema is false"};function s(c){let{gen:u,schema:l,validateName:d}=c;l===!1?a(c,!1):typeof l=="object"&&l.$async===!0?u.return(r.default.data):(u.assign((0,n._)`${d}.errors`,null),u.return(!0))}e.topBoolOrEmptySchema=s;function o(c,u){let{gen:l,schema:d}=c;d===!1?(l.var(u,!1),a(c)):l.var(u,!0)}e.boolOrEmptySchema=o;function a(c,u){let{gen:l,data:d}=c,f={gen:l,keyword:"false schema",data:d,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:c};(0,t.reportError)(f,i,void 0,u)}}),tOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getRules=e.isJSONType=void 0;var t=["string","number","integer","boolean","null","object","array"],n=new Set(t);function r(s){return typeof s=="string"&&n.has(s)}e.isJSONType=r;function i(){let s={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...s,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},s.number,s.string,s.array,s.object],post:{rules:[]},all:{},keywords:{}}}e.getRules=i}),nOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.shouldUseRule=e.shouldUseGroup=e.schemaHasRulesForType=void 0;function t({schema:i,self:s},o){let a=s.RULES.types[o];return a&&a!==!0&&n(i,a)}e.schemaHasRulesForType=t;function n(i,s){return s.rules.some(o=>r(i,o))}e.shouldUseGroup=n;function r(i,s){var o;return i[s.keyword]!==void 0||((o=s.definition.implements)===null||o===void 0?void 0:o.some(a=>i[a]!==void 0))}e.shouldUseRule=r}),E6=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.reportTypeError=e.checkDataTypes=e.checkDataType=e.coerceAndCheckDataType=e.getJSONTypes=e.getSchemaTypes=e.DataType=void 0;var t=tOt(),n=nOt(),r=D6(),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}}}),Ztr=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=ib(),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}),Ytr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateKeywordUsage=e.validSchemaType=e.funcKeywordCode=e.macroKeywordCode=void 0;var t=_n(),n=ib(),r=Sp(),i=D6();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}),rOt=Xe((e,t)=>{t.exports=function n(r,i){if(r===i)return!0;if(r&&i&&typeof r=="object"&&typeof i=="object"){if(r.constructor!==i.constructor)return!1;var s,o,a;if(Array.isArray(r)){if(s=r.length,s!=i.length)return!1;for(o=s;o--!==0;)if(!n(r[o],i[o]))return!1;return!0}if(r.constructor===RegExp)return r.source===i.source&&r.flags===i.flags;if(r.valueOf!==Object.prototype.valueOf)return r.valueOf()===i.valueOf();if(r.toString!==Object.prototype.toString)return r.toString()===i.toString();if(a=Object.keys(r),s=a.length,s!==Object.keys(i).length)return!1;for(o=s;o--!==0;)if(!Object.prototype.hasOwnProperty.call(i,a[o]))return!1;for(o=s;o--!==0;){var c=a[o];if(!n(r[c],i[c]))return!1}return!0}return r!==r&&i!==i}}),Xtr=Xe((e,t)=>{var n=t.exports=function(s,o,a){typeof o=="function"&&(a=o,o={}),a=o.cb||a;var c=typeof a=="function"?a:a.pre||function(){},u=a.post||function(){};r(o,c,u,s,"",s)};n.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},n.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},n.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},n.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function r(s,o,a,c,u,l,d,f,p,h){if(c&&typeof c=="object"&&!Array.isArray(c)){o(c,u,l,d,f,p,h);for(var m in c){var 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=rOt(),r=Xtr(),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}),F6=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getData=e.KeywordCxt=e.validateFunctionCode=void 0;var t=Ktr(),n=E6(),r=nOt(),i=E6(),s=Ztr(),o=Ytr(),a=Jtr(),c=_n(),u=ib(),l=U6(),d=ur(),f=D6();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},kt){_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(kt)}):z.func(J,(0,c._)`${u.default.data}, ${m(_e)}`,le.$async,()=>z.code(S(oe,_e)).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 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 kt=le.const("_errs",u.default.errors);x(z,kt),le.var(J,(0,c._)`${kt} === ${u.default.errors}`)}function R(z){(0,d.checkUnknownRules)(z),k(z)}function x(z,J){if(z.opts.jtd)return $(z,[],!1,J);let oe=(0,n.getSchemaTypes)(z.schema),le=(0,n.coerceAndCheckDataType)(z,oe);$(z,oe,!le,J)}function k(z){let{schema:J,errSchemaPath:oe,opts:le,self:_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 kt=oe.$comment;if(_e.$comment===!0)z.code((0,c._)`${u.default.self}.logger.log(${kt})`);else if(typeof _e.$comment=="function"){let Ue=(0,c.str)`${le}/$comment`,Dn=z.scopeValue("root",{ref:J.root});z.code((0,c._)`${u.default.self}.opts.$comment(${kt}, ${Ue}, ${Dn}.schema)`)}}function V(z){let{gen:J,schemaEnv:oe,validateName:le,ValidationError:_e,opts:kt}=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),kt.unevaluated&&K(z),J.return((0,c._)`${u.default.errors} === 0`))}function K({gen:z,evaluated:J,props:oe,items:le}){oe instanceof c.Name&&z.assign((0,c._)`${J}.props`,oe),le instanceof c.Name&&z.assign((0,c._)`${J}.items`,le)}function $(z,J,oe,le){let{gen:_e,schema:kt,data:Ue,allErrors:Dn,opts:lr,self:sn}=z,{RULES:dr}=sn;if(kt.$ref&&(lr.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(kt,dr))){_e.block(()=>ee(z,"$ref",dr.all.$ref.definition));return}lr.jtd||X(z,J),_e.block(()=>{for(let Rs of dr.rules)tl(Rs);tl(dr.post)});function tl(Rs){(0,r.shouldUseGroup)(kt,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),Dn||_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 kt of J.rules)(0,r.shouldUseRule)(le,kt)&&ee(z,kt.keyword,kt.definition,J.type)})}function X(z,J){z.schemaEnv.meta||!z.opts.strictTypes||(G(z,J),z.opts.allowUnionTypes||M(z,J),q(z,z.dataTypes))}function G(z,J){if(J.length){if(!z.dataTypes.length){z.dataTypes=J;return}J.forEach(oe=>{L(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:kt}=_e.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 L(z,J){return z.includes(J)||J==="integer"&&z.includes("number")}function H(z,J){let oe=[];for(let le of z.dataTypes)L(J,le)?oe.push(le):J.includes("integer")&&le==="number"&&oe.push("integer");z.dataTypes=oe}function j(z,J){let oe=z.schemaEnv.baseId+z.errSchemaPath;J+=` at "${oe}" (strictTypes)`,(0,d.checkStrictMode)(z,J,z.opts.strictTypes)}class W{constructor(J,oe,le){if((0,o.validateKeywordUsage)(J,oe,le),this.gen=J.gen,this.allErrors=J.allErrors,this.keyword=le,this.data=J.data,this.schema=J.schema[le],this.$data=oe.$data&&J.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(J,this.schema,le,this.$data),this.schemaType=oe.schemaType,this.parentSchema=J.schema,this.params={},this.it=J,this.def=oe,this.$data)this.schemaCode=J.gen.const("vSchema",Re(this.$data,J));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,oe.schemaType,oe.allowUndefined))throw new Error(`${le} value must be ${JSON.stringify(oe.schemaType)}`);("code"in oe?oe.trackErrors:oe.errors!==!1)&&(this.errsCount=J.gen.const("_errs",u.default.errors))}result(J,oe,le){this.failResult((0,c.not)(J),oe,le)}failResult(J,oe,le){this.gen.if(J),le?le():this.error(),oe?(this.gen.else(),oe(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(J,oe){this.failResult((0,c.not)(J),void 0,oe)}fail(J){if(J===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(J),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(J){if(!this.$data)return this.fail(J);let{schemaCode:oe}=this;this.fail((0,c._)`${oe} !== undefined && (${(0,c.or)(this.invalid$data(),J)})`)}error(J,oe,le){if(oe){this.setParams(oe),this._error(J,le),this.setParams({});return}this._error(J,le)}_error(J,oe){(J?f.reportExtraError:f.reportError)(this,this.def.error,oe)}$dataError(){(0,f.reportError)(this,this.def.$dataError||f.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,f.resetErrorsCount)(this.gen,this.errsCount)}ok(J){this.allErrors||this.gen.if(J)}setParams(J,oe){oe?Object.assign(this.params,J):this.params=J}block$data(J,oe,le=c.nil){this.gen.block(()=>{this.check$data(J,le),oe()})}check$data(J=c.nil,oe=c.nil){if(!this.$data)return;let{gen:le,schemaCode:_e,schemaType:kt,def:Ue}=this;le.if((0,c.or)((0,c._)`${_e} === 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:_e,it:kt}=this;return(0,c.or)(Ue(),Dn());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 Dn(){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 se=/^\/(?:[^~]|~0|~1)*$/,Me=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Re(z,{dataLevel:J,dataNames:oe,dataPathArr:le}){let _e,kt;if(z==="")return u.default.rootData;if(z[0]==="/"){if(!se.test(z))throw new Error(`Invalid JSON-pointer: ${z}`);_e=z,kt=u.default.rootData}else{let sn=Me.exec(z);if(!sn)throw new Error(`Invalid JSON-pointer: ${z}`);let dr=+sn[1];if(_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(kt=oe[J-dr],!_e)return kt}let Ue=kt,Dn=_e.split("/");for(let sn of Dn)sn&&(kt=(0,c._)`${kt}${(0,c.getProperty)((0,d.unescapeJsonPointer)(sn))}`,Ue=(0,c._)`${Ue} && ${kt}`);return Ue;function lr(sn,dr){return`Cannot access ${sn} ${dr} levels up, current level is ${J}`}}e.getData=Re}),ATe=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}),j6=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=U6();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}),RTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.resolveSchema=e.getCompilingSchema=e.resolveRef=e.compileSchema=e.SchemaEnv=void 0;var t=_n(),n=ATe(),r=ib(),i=U6(),s=ur(),o=F6();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}}),$tr=Xe((e,t)=>{var n={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};t.exports={HEX:n}}),enr=Xe((e,t)=>{var{HEX:n}=$tr(),r=/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u;function i(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}),nnr=Xe((e,t)=>{var{normalizeIPv6:n,normalizeIPv4:r,removeDotSegments:i,recomposeAuthority:s,normalizeComponentEncoding:o}=enr(),a=tnr();function c(E,S){return typeof E=="string"?E=f(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}),rnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=nnr();t.code='require("ajv/dist/runtime/uri").default',e.default=t}),inr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=void 0;var t=F6();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=ATe(),i=j6(),s=tOt(),o=RTe(),a=_n(),c=U6(),u=E6(),l=ur(),d=Qtr(),f=rnr(),p=(G,M)=>new RegExp(G,M);p.code="new RegExp";var h=["removeAdditional","useDefaults","coerceTypes"],m=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),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,L,H,j,W,ee,se,Me,Re,z,J,oe,le,_e,kt,Ue,Dn,lr,sn,dr,tl,Rs,cb;let ay=G.strict,Ii=(M=G.code)===null||M===void 0?void 0:M.optimize,bp=Ii===!0||Ii===void 0?1:Ii||0,cy=(U=(q=G.code)===null||q===void 0?void 0:q.regExp)!==null&&U!==void 0?U:p,Ar=(L=G.uriResolver)!==null&&L!==void 0?L:f.default;return{strictSchema:(j=(H=G.strictSchema)!==null&&H!==void 0?H:ay)!==null&&j!==void 0?j:!0,strictNumbers:(ee=(W=G.strictNumbers)!==null&&W!==void 0?W:ay)!==null&&ee!==void 0?ee:!0,strictTypes:(Me=(se=G.strictTypes)!==null&&se!==void 0?se:ay)!==null&&Me!==void 0?Me:"log",strictTuples:(z=(Re=G.strictTuples)!==null&&Re!==void 0?Re:ay)!==null&&z!==void 0?z:"log",strictRequired:(oe=(J=G.strictRequired)!==null&&J!==void 0?J:ay)!==null&&oe!==void 0?oe:!1,code:G.code?{...G.code,optimize:bp,regExp:cy}:{optimize:bp,regExp:cy},loopRequired:(le=G.loopRequired)!==null&&le!==void 0?le:E,loopEnum:(_e=G.loopEnum)!==null&&_e!==void 0?_e:E,meta:(kt=G.meta)!==null&&kt!==void 0?kt:!0,messages:(Ue=G.messages)!==null&&Ue!==void 0?Ue:!0,inlineRefs:(Dn=G.inlineRefs)!==null&&Dn!==void 0?Dn:!0,schemaId:(lr=G.schemaId)!==null&&lr!==void 0?lr:"$id",addUsedSchema:(sn=G.addUsedSchema)!==null&&sn!==void 0?sn:!0,validateSchema:(dr=G.validateSchema)!==null&&dr!==void 0?dr:!0,validateFormats:(tl=G.validateFormats)!==null&&tl!==void 0?tl:!0,unicodeRegExp:(Rs=G.unicodeRegExp)!==null&&Rs!==void 0?Rs:!0,int32range:(cb=G.int32range)!==null&&cb!==void 0?cb:!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 L=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=L}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:M,meta:q,schemaId:U}=this.opts,L=d;U==="id"&&(L={...d},L.id=L.$id,delete L.$id),q&&M&&this.addMetaSchema(L,L[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 L=U(q);return"$async"in U||(this.errors=U.errors),L}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 L.call(this,M,q);async function L(Me,Re){await H.call(this,Me.$schema);let z=this._addSchema(Me,Re);return z.validate||j.call(this,z)}async function H(Me){Me&&!this.getSchema(Me)&&await L.call(this,{$ref:Me},!0)}async function j(Me){try{return this._compileSchemaEnv(Me)}catch(Re){if(!(Re instanceof i.default))throw Re;return W.call(this,Re),await ee.call(this,Re.missingSchema),j.call(this,Me)}}function W({missingSchema:Me,missingRef:Re}){if(this.refs[Me])throw new Error(`AnySchema ${Me} is loaded but ${Re} cannot be resolved`)}async function ee(Me){let Re=await se.call(this,Me);this.refs[Me]||await H.call(this,Re.$schema),this.refs[Me]||this.addSchema(Re,Me,q)}async function se(Me){let Re=this._loading[Me];if(Re)return Re;try{return await(this._loading[Me]=U(Me))}finally{delete this._loading[Me]}}}addSchema(M,q,U,L=this.opts.validateSchema){if(Array.isArray(M)){for(let j of M)this.addSchema(j,void 0,U,L);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,L,!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 L=this.validate(U,M);if(!L&&q){let H="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(H);else throw new Error(H)}return L}getSchema(M){let q;for(;typeof(q=T.call(this,M))=="string";)M=q;if(q===void 0){let{schemaId:U}=this.opts,L=new o.SchemaEnv({schema:{},schemaId:U});if(q=o.resolveSchema.call(this,L,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 L={...q,type:(0,u.getJSONTypes)(q.type),schemaType:(0,u.getJSONTypes)(q.schemaType)};return(0,l.eachItem)(U,L.type.length===0?H=>V.call(this,H,L):H=>L.type.forEach(j=>V.call(this,H,L,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 L=U.rules.findIndex(H=>H.keyword===M);L>=0&&U.rules.splice(L,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(L=>`${U}${L.instancePath} ${L.message}`).reduce((L,H)=>L+q+H)}$dataMetaSchema(M,q){let U=this.RULES.all;M=JSON.parse(JSON.stringify(M));for(let L of q){let H=L.split("/").slice(1),j=M;for(let W of H)j=j[W];for(let W in U){let ee=U[W];if(typeof ee!="object")continue;let{$data:se}=ee.definition,Me=j[W];se&&Me&&(j[W]=X(Me))}}return M}_removeAllSchemas(M,q){for(let U in M){let L=M[U];(!q||q.test(U))&&(typeof L=="string"?delete M[U]:L&&!L.meta&&(this._cache.delete(L.schema),delete M[U]))}}_addSchema(M,q,U,L=this.opts.validateSchema,H=this.opts.addUsedSchema){let j,{schemaId:W}=this.opts;if(typeof M=="object")j=M[W];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof M!="boolean")throw new Error("schema must be object or boolean")}let ee=this._cache.get(M);if(ee!==void 0)return ee;U=(0,c.normalizeId)(j||U);let se=c.getSchemaRefs.call(this,M,U);return ee=new o.SchemaEnv({schema:M,schemaId:W,meta:q,baseId:U,localRefs:se}),this._cache.set(ee.schema,ee),H&&!U.startsWith("#")&&(U&&this._checkUnique(U),this.refs[U]=ee),L&&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 L in G){let H=L;H in M&&this.logger[U](`${q}: option ${L}. ${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 L=M?.post;if(q&&L)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:H}=this,j=L?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(L=>L.keyword===q);U>=0?G.rules.splice(U,0,M):(G.rules.push(M),this.logger.warn(`rule ${q} is not defined`))}function $(G){let{metaSchema:M}=G;M!==void 0&&(G.$data&&this.opts.$data&&(M=X(M)),G.validateSchema=this.compile(M,!0))}var B={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function X(G){return{anyOf:[G,B]}}}),snr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};e.default=t}),onr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.callRef=e.getValidate=void 0;var t=j6(),n=Sp(),r=_n(),i=ib(),s=RTe(),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}),anr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=snr(),n=onr(),r=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",t.default,n.default];e.default=r}),cnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_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}),unr=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}),lnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});function t(n){let r=n.length,i=0,s=0,o;for(;s=55296&&o<=56319&&s{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r=lnr(),i={message({keyword:o,schemaCode:a}){let c=o==="maxLength"?"more":"fewer";return(0,t.str)`must NOT have ${c} than ${a} characters`},params:({schemaCode:o})=>(0,t._)`{limit: ${o}}`},s={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:i,code(o){let{keyword:a,data:c,schemaCode:u,it:l}=o,d=a==="maxLength"?t.operators.GT:t.operators.LT,f=l.opts.unicode===!1?(0,t._)`${c}.length`:(0,t._)`${(0,n.useFunc)(o.gen,r.default)}(${c})`;o.fail$data((0,t._)`${f} ${d} ${u}`)}};e.default=s}),fnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Sp(),n=_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}),pnr=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}),hnr=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}),mnr=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}),wTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=rOt();t.code='require("ajv/dist/runtime/equal").default',e.default=t}),gnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=E6(),n=_n(),r=ur(),i=wTe(),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}),ynr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r=wTe(),i={message:"must be equal to constant",params:({schemaCode:o})=>(0,t._)`{allowedValue: ${o}}`},s={keyword:"const",$data:!0,error:i,code(o){let{gen:a,data:c,$data:u,schemaCode:l,schema:d}=o;u||d&&typeof d=="object"?o.fail$data((0,t._)`!${(0,n.useFunc)(a,r.default)}(${c}, ${l})`):o.fail((0,t._)`${d} !== ${c}`)}};e.default=s}),Snr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r=wTe(),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}),Enr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=cnr(),n=unr(),r=dnr(),i=fnr(),s=pnr(),o=hnr(),a=mnr(),c=gnr(),u=ynr(),l=Snr(),d=[t.default,n.default,r.default,i.default,s.default,o.default,a.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u.default,l.default];e.default=d}),iOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateAdditionalItems=void 0;var t=_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}),sOt=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}),bnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=sOt(),n={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,t.validateTuple)(r,"items")};e.default=n}),_nr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r=Sp(),i=iOt(),s={message:({params:{len:a}})=>(0,t.str)`must NOT have more than ${a} items`,params:({params:{len:a}})=>(0,t._)`{limit: ${a}}`},o={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:s,code(a){let{schema:c,parentSchema:u,it:l}=a,{prefixItems:d}=u;l.items=!0,!(0,n.alwaysValidSchema)(l,c)&&(d?(0,i.validateAdditionalItems)(a,d):a.ok((0,r.validateArray)(a)))}};e.default=o}),Tnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_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}),vnr=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 iNt(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}=rNt(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}=tNt(e.keyType._def,t);return{...n,propertyNames:i}}}return n}function Efr(e,t){if(t.mapStrategy==="record")return iNt(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 _fr(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 Tfr(e){return e.target==="openAi"?void 0:{not:Qu({...e,currentPath:[...e.currentPath,"not"]})}}function vfr(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}function Rfr(e,t){if(t.target==="openApi3")return aOt(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(r=>r._def.typeName in W5&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((i,s)=>{let o=W5[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 aOt(e,t)}function Afr(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:W5[e.innerType._def.typeName],nullable:!0}:{type:[W5[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 wfr(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",$Pt(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 kfr(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=xfr(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=Ifr(e,t);return o!==void 0&&(r.additionalProperties=o),r}function Ifr(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 xfr(e){try{return e.isOptional()}catch{return!0}}function Nfr(e,t){return Er(e.type._def,t)}function Cfr(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 Mfr(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 Dfr(e){return{not:Qu(e)}}function Lfr(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!==ifr)return a}if(r&&!n){let a=jfr(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=Ffr(e,e.typeName,t),o=typeof s=="function"?Er(s(),t):s;if(o&&Hfr(e,t,o),t.postProcess){let a=t.postProcess(o,e,t);return i.jsonSchema=o,a}return i.jsonSchema=o,o}function Bfr(e){return!e||e==="jsonSchema7"||e==="draft-7"?"draft-7":e==="jsonSchema2019-09"||e==="draft-2020-12"?"draft-2020-12":"draft-7"}function cOt(e,t){var n,r,i;return yp(e)?wur(e,{target:Bfr(t?.target),io:(n=t?.pipeStrategy)!==null&&n!==void 0?n:"input"}):qfr(e,{strictUnions:(r=t?.strictUnions)!==null&&r!==void 0?r:!0,pipeStrategy:(i=t?.pipeStrategy)!==null&&i!==void 0?i:"input"})}function uOt(e){let t=KU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=fPt(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function lOt(e,t){let n=OU(e,t);if(!n.success)throw n.error;return n.data}function dOt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Gfr(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];dOt(o)&&dOt(s)?n[i]={...o,...s}:n[i]=s}return n}function Kfr(){let e=new Vfr.Ajv({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0}),t=Wfr.default;return t(e),e}function Yfr(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 Zfr(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"&&sNt in e}function Xfr(e){let t=e[sNt];return t?.complete}function $fr(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 epr(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 pOt(e){let t=$fr(e);return epr(e,t.warnings),t.isValid}function oNt(e){return e!==null&&typeof e=="object"&&"parse"in e&&typeof e.parse=="function"&&"safeParse"in e&&typeof e.safeParse=="function"}function npr(e){return"_def"in e||"_zod"in e||oNt(e)}function CTe(e){return typeof e!="object"||e===null||npr(e)?!1:Object.keys(e).length===0?!0:Object.values(e).some(oNt)}function hOt(e){if(e)return CTe(e)?xU(e):e}function rpr(e){let t=KU(e);return t?Object.entries(t).map(([n,r])=>{let i=xur(r),s=Our(r);return{name:n,description:i,required:!s}}):[]}function tE(e){let t=KU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=fPt(n);if(typeof r=="string")return r;throw new Error("Schema method literal must be a string")}function mOt(e){return{completion:{values:e.slice(0,100),total:e.length,hasMore:e.length>100}}}function ipr(e,t,n,r){return{name:e,description:t,inputSchema:n,handler:r}}function spr(e){let t=new NTe({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 opr({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 de=wrr(import.meta.url),_e=wxt(de,"..");c=wxt(_e,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.77";let{abortController:u=UTe(),additionalDirectories:l=[],agents:d,allowedTools:f=[],betas:p,canUseTool:h,continue:m,cwd:g,disallowedTools:y=[],tools:b,env:S,executable:E=HTe()?"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:j,strictMcpConfig:H}=s,K=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[de,_e]of Object.entries(W))_e.type==="sdk"&&"instance"in _e?(Le.set(de,_e.instance),se[de]={type:"sdk",name:de}):se[de]=_e;let Ae=typeof e=="string",z=new N5({abortController:u,additionalDirectories:l,betas:p,cwd:g,executable:E,executableArgs:_,extraArgs:T,pathToClaudeCodeExecutable:c,env:ee,forkSession:x,stderr:j,maxThinkingTokens:C,maxTurns:L,maxBudgetUsd:G,model:$,fallbackModel:R,jsonSchema:K,permissionMode:Q,allowDangerouslySkipPermissions:B,permissionPromptToolName:F,continueConversation:m,resume:U,resumeSessionAt:M,settingSources:r??[],allowedTools:f,disallowedTools:y,tools:b,mcpServers:se,strictMcpConfig:H,canUseTool:!!h,hooks:!!k,includePartialMessages:P,persistSession:N,plugins:V,sandbox:i,spawnClaudeCodeProcess:s.spawnClaudeCodeProcess}),J={systemPrompt:o,appendSystemPrompt:a,agents:d},oe=new M5(z,Ae,h,k,u,Le,K,J);return typeof e=="string"?z.write(sm({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:e}]},parent_tool_use_id:null})+` +`):oe.streamInput(e),oe}function apr(e){return UOt(e)}function cpr(e,t){return $sr(e,t)}async function upr(e,t){let n=[];try{let o=knr(n,UOt(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=Inr(n,r,i);s&&await s}}var _nr,Tnr,nTe,vnr,Rnr,gOt,Xe,yOt,Anr,wnr,knr,Inr,x5,Axt,_n,lr,aE,K5,xnr,SOt,bOt,O5,Onr,bp,Pnr,Nnr,EOt,Cnr,Y5,Z5,MTe,J5,DTe,Mnr,Dnr,Lnr,Unr,Fnr,jnr,Hnr,qnr,Bnr,znr,Gnr,Vnr,Wnr,Knr,Ynr,Znr,Jnr,Xnr,LTe,Qnr,$nr,err,trr,_Ot,TOt,nrr,rrr,irr,srr,orr,vOt,arr,crr,urr,lrr,drr,frr,prr,hrr,mrr,grr,yrr,Srr,brr,Err,_rr,Trr,ROt,vrr,Rrr,Arr,Irr,Nrr,Crr,Mrr,Drr,FTe,Lrr,P5,AOt,Urr,Frr,vU,Hrr,qrr,Brr,Grr,Vrr,Wrr,kxt,Yrr,wOt,Jrr,Xrr,Qrr,$rr,tir,nir,K_e,Ixt,iir,sir,oir,cir,uir,lir,dir,fir,pir,hir,mir,yir,bir,kOt,_ir,PU,vir,Air,wir,kir,Iir,Oir,Pir,Nir,Mir,Dir,Uir,xxt,jir,qir,X5,zir,Gir,Wir,Yir,Jir,Qir,$ir,esr,tsr,rsr,ssr,Q5,csr,lsr,fsr,hsr,IOt,msr,VU,Oxt,ysr,Y_e,v5,wsr,QPi,ksr,xsr,Nxt,NOt,MOt,Msr,Dsr,DOt,Usr,R5,jsr,Hsr,qsr,Bsr,zsr,rE,A5,Mxt,N5,C5,iTe,M5,D5,ir,Lxt,nt,nE,Oe,Zd,eor,NU,tor,oTe,iu,Vt,wU,Xu,Uxt,Fxt,Fx,L5,lt,Jd,jxt,Tn,nor,ror,ior,sor,oor,aor,cor,uor,lor,Z_e,dor,por,hor,mor,gor,yor,FOt,Sor,jx,CU,MU,DU,LU,UU,Hx,qx,FU,sE,am,jU,oE,jl,Bx,Yg,aTe,zx,Qg,uTe,HU,qU,lTe,Gx,Vx,Wx,Kx,eR,gp,mp,$g,Yx,Zx,BU,U5,F5,Jx,sNi,De,oNi,aNi,cNi,uNi,lNi,dNi,fNi,pNi,hNi,mNi,gNi,yNi,SNi,bNi,Aor,ENi,_Ni,TNi,vNi,RNi,ANi,wNi,kNi,INi,xNi,ONi,PNi,NNi,CNi,MNi,DNi,LNi,UNi,FNi,jNi,tR,dTe,Gr,zTe,zOt,Dor,GOt,Lor,WOt,For,pTe,YOt,ZOt,r8,JOt,Zor,XOt,Jor,QOt,VTe,$Ot,WTe,Xor,Qor,$or,ear,tar,nar,rar,iar,Hxt,sar,oar,car,uar,lar,dar,far,ePt,par,har,tPt,mar,Sar,bar,Ear,_ar,Tar,Rar,Aar,$u,rPt,iPt,sPt,war,kar,Iar,xar,Oar,i8,Par,Nar,Car,Mar,Dar,Lar,Uar,hTe,Far,li,KTe,Gi,jar,Har,qar,Bar,zar,Gar,Var,War,Kar,Yar,Zar,Jar,Xar,Qar,$ar,ecr,tcr,ncr,rcr,icr,ocr,acr,ucr,aPt,lcr,dcr,fcr,pcr,hcr,mcr,cPt,uPt,gcr,ycr,Scr,bcr,Ecr,_cr,Tcr,vcr,Rcr,Acr,wcr,kcr,Icr,xcr,Ocr,Pcr,Ncr,j5,IU,q5,kur,Iur,pPt,hPt,gPt,SPt,EPt,TPt,HNi,s8,Pur,Nur,Cur,Mur,ss,vPt,Dur,os,Lur,tOt,k5,Uur,Fur,jur,Hur,qur,Bur,zur,Gur,Vur,Wur,Kur,Yur,Zur,Jur,Xur,Qur,RPt,$ur,elr,tlr,nlr,rlr,slr,wPt,kPt,olr,alr,clr,gTe,ulr,llr,OPt,dlr,flr,hlr,PPt,ylr,blr,Elr,NPt,MPt,wlr,Jg,o8,om,DPt,LPt,klr,ZTe,Ilr,el,ja,nR,Xd,Ac,a8,UPt,iOt,FPt,xlr,jPt,I5,Ft,HPt,Olr,qNi,JTe,Plr,XTe,Nlr,YU,Xx,qPt,Clr,Mlr,Dlr,Llr,Ulr,Flr,BPt,jlr,Hlr,zPt,QTe,qlr,Blr,$Te,zlr,ZU,JU,XU,c8,Glr,B5,eve,tve,nve,rve,ive,Vlr,Wlr,GPt,VPt,sve,WPt,nO,KPt,Klr,STe,Ylr,bTe,Zlr,ove,Jlr,ETe,Xlr,Qlr,$lr,edr,tdr,ndr,rdr,idr,sdr,odr,_Te,adr,cdr,TTe,ave,cve,uve,udr,ldr,ddr,lve,fdr,pdr,hdr,mdr,gdr,YPt,vTe,ydr,dve,BNi,Sdr,z5,bdr,G5,Edr,ZPt,_dr,Tdr,vdr,Rdr,Adr,wdr,kdr,V5,Idr,xdr,Odr,JPt,XPt,Pdr,Ndr,Cdr,Mdr,Ddr,Ldr,Udr,Fdr,jdr,Hdr,qdr,Bdr,zdr,Gdr,Vdr,Wdr,Kdr,Ydr,RTe,Zdr,Jdr,Xdr,ATe,efr,tfr,nfr,QPt,rfr,zNi,GNi,VNi,WNi,KNi,YNi,Et,wTe,ifr,sOt,sfr,ofr,eNt,lfr,dfr,mfr,eTe,pp,Sfr,W5,aOt,Ofr,Pfr,Ufr,Ffr,jfr,Hfr,qfr,zfr,kTe,Vfr,Wfr,ITe,xTe,OTe,sNt,fOt,Qfr,PTe,NTe,tpr,AU,cNt=v(()=>{_nr=Object.create,Tnr=Object.getPrototypeOf,nTe=Object.defineProperty,vnr=Object.getOwnPropertyNames,Rnr=Object.prototype.hasOwnProperty,gOt=(e,t,n)=>{n=e!=null?_nr(Tnr(e)):{};let r=t||!e||!e.__esModule?nTe(n,"default",{value:e,enumerable:!0}):n;for(let i of vnr(e))Rnr.call(r,i)||nTe(r,i,{get:()=>e[i],enumerable:!0});return r},Xe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),yOt=(e,t)=>{for(var n in t)nTe(e,n,{get:t[n],enumerable:!0,configurable:!0,set:r=>t[n]=()=>r})},Anr=Symbol.dispose||Symbol.for("Symbol.dispose"),wnr=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),knr=(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[wnr]),r===void 0&&(r=t[Anr]),typeof r!="function")throw TypeError("Object not disposable");e.push([n,r,t])}else n&&e.push([n]);return t},Inr=(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()},x5=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=x5();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=x5(),n=Axt(),r=x5();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=Axt();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,j){return this}}class o extends s{constructor(M,j,H){super(),this.varKind=M,this.name=j,this.rhs=H}render({es5:M,_n:j}){let H=M?n.varKinds.var:this.varKind,K=this.rhs===void 0?"":` = ${this.rhs}`;return`${H} ${this.name}${K};`+j}optimizeNames(M,j){if(M[this.name.str])return this.rhs&&(this.rhs=L(this.rhs,M,j)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class a extends s{constructor(M,j,H){super(),this.lhs=M,this.rhs=j,this.sideEffects=H}render({_n:M}){return`${this.lhs} = ${this.rhs};`+M}optimizeNames(M,j){if(!(this.lhs instanceof t.Name&&!M[this.lhs.str]&&!this.sideEffects))return this.rhs=L(this.rhs,M,j),this}get names(){let M=this.lhs instanceof t.Name?{}:{...this.lhs.names};return C(M,this.rhs)}}class c extends a{constructor(M,j,H,K){super(M,H,K),this.op=j}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,j){return this.code=L(this.code,M,j),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((j,H)=>j+H.render(M),"")}optimizeNodes(){let{nodes:M}=this,j=M.length;for(;j--;){let H=M[j].optimizeNodes();Array.isArray(H)?M.splice(j,1,...H):H?M[j]=H:M.splice(j,1)}return M.length>0?this:void 0}optimizeNames(M,j){let{nodes:H}=this,K=H.length;for(;K--;){let ee=H[K];ee.optimizeNames(M,j)||(G(M,ee.names),H.splice(K,1))}return H.length>0?this:void 0}get names(){return this.nodes.reduce((M,j)=>N(M,j.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,j){super(j),this.condition=M}render(M){let j=`if(${this.condition})`+super.render(M);return this.else&&(j+="else "+this.else.render(M)),j}optimizeNodes(){super.optimizeNodes();let M=this.condition;if(M===!0)return this.nodes;let j=this.else;if(j){let H=j.optimizeNodes();j=this.else=Array.isArray(H)?new g(H):H}if(j)return M===!1?j instanceof y?j:j.nodes:this.nodes.length?this:new y(W(M),j instanceof y?[j]:j.nodes);if(!(M===!1||!this.nodes.length))return this}optimizeNames(M,j){var H;if(this.else=(H=this.else)===null||H===void 0?void 0:H.optimizeNames(M,j),!!(super.optimizeNames(M,j)||this.else))return this.condition=L(this.condition,M,j),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,j){if(super.optimizeNames(M,j))return this.iteration=L(this.iteration,M,j),this}get names(){return N(super.names,this.iteration.names)}}class E extends b{constructor(M,j,H,K){super(),this.varKind=M,this.name=j,this.from=H,this.to=K}render(M){let j=M.es5?n.varKinds.var:this.varKind,{name:H,from:K,to:ee}=this;return`for(${j} ${H}=${K}; ${H}<${ee}; ${H}++)`+super.render(M)}get names(){let M=C(super.names,this.from);return C(M,this.to)}}class _ extends b{constructor(M,j,H,K){super(),this.loop=M,this.varKind=j,this.name=H,this.iterable=K}render(M){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(M)}optimizeNames(M,j){if(super.optimizeNames(M,j))return this.iterable=L(this.iterable,M,j),this}get names(){return N(super.names,this.iterable.names)}}class T extends h{constructor(M,j,H){super(),this.name=M,this.args=j,this.async=H}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 j="try"+super.render(M);return this.catch&&(j+=this.catch.render(M)),this.finally&&(j+=this.finally.render(M)),j}optimizeNodes(){var M,j;return super.optimizeNodes(),(M=this.catch)===null||M===void 0||M.optimizeNodes(),(j=this.finally)===null||j===void 0||j.optimizeNodes(),this}optimizeNames(M,j){var H,K;return super.optimizeNames(M,j),(H=this.catch)===null||H===void 0||H.optimizeNames(M,j),(K=this.finally)===null||K===void 0||K.optimizeNames(M,j),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,j={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...j,_n:j.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,j){let H=this._extScope.value(M,j);return(this._values[H.prefix]||(this._values[H.prefix]=new Set)).add(H),H}getScopeValue(M,j){return this._extScope.getValue(M,j)}scopeRefs(M){return this._extScope.scopeRefs(M,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(M,j,H,K){let ee=this._scope.toName(j);return H!==void 0&&K&&(this._constants[ee.str]=H),this._leafNode(new o(M,ee,H)),ee}const(M,j,H){return this._def(n.varKinds.const,M,j,H)}let(M,j,H){return this._def(n.varKinds.let,M,j,H)}var(M,j,H){return this._def(n.varKinds.var,M,j,H)}assign(M,j,H){return this._leafNode(new a(M,j,H))}add(M,j){return this._leafNode(new c(M,e.operators.ADD,j))}code(M){return typeof M=="function"?M():M!==t.nil&&this._leafNode(new f(M)),this}object(...M){let j=["{"];for(let[H,K]of M)j.length>1&&j.push(","),j.push(H),(H!==K||this.opts.es5)&&(j.push(":"),(0,t.addCodeArg)(j,K));return j.push("}"),new t._Code(j)}if(M,j,H){if(this._blockNode(new y(M)),j&&H)this.code(j).else().code(H).endIf();else if(j)this.code(j).endIf();else if(H)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,j){return this._blockNode(M),j&&this.code(j).endFor(),this}for(M,j){return this._for(new S(M),j)}forRange(M,j,H,K,ee=this.opts.es5?n.varKinds.var:n.varKinds.let){let se=this._scope.toName(M);return this._for(new E(ee,se,j,H),()=>K(se))}forOf(M,j,H,K=n.varKinds.const){let ee=this._scope.toName(M);if(this.opts.es5){let se=j instanceof t.Name?j:this.var("_arr",j);return this.forRange("_i",0,(0,t._)`${se}.length`,Le=>{this.var(ee,(0,t._)`${se}[${Le}]`),H(ee)})}return this._for(new _("of",K,ee,j),()=>H(ee))}forIn(M,j,H,K=this.opts.es5?n.varKinds.var:n.varKinds.const){if(this.opts.ownProperties)return this.forOf(M,(0,t._)`Object.keys(${j})`,H);let ee=this._scope.toName(M);return this._for(new _("in",K,ee,j),()=>H(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 j=new R;if(this._blockNode(j),this.code(M),j.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(R)}try(M,j,H){if(!j&&!H)throw new Error('CodeGen: "try" without "catch" and "finally"');let K=new A;if(this._blockNode(K),this.code(M),j){let ee=this.name("e");this._currNode=K.catch=new x(ee),j(ee)}return H&&(this._currNode=K.finally=new k,this.code(H)),this._endBlockNode(x,k)}throw(M){return this._leafNode(new d(M))}block(M,j){return this._blockStarts.push(this._nodes.length),M&&this.code(M).endBlock(j),this}endBlock(M){let j=this._blockStarts.pop();if(j===void 0)throw new Error("CodeGen: not in self-balancing block");let H=this._nodes.length-j;if(H<0||M!==void 0&&H!==M)throw new Error(`CodeGen: wrong number of nodes: ${H} vs ${M} expected`);return this._nodes.length=j,this}func(M,j=t.nil,H,K){return this._blockNode(new T(M,j,H)),K&&this.code(K).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,j){let H=this._currNode;if(H instanceof M||j&&H instanceof j)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${j?`${M.kind}/${j.kind}`:M.kind}"`)}_elseNode(M){let j=this._currNode;if(!(j instanceof y))throw new Error('CodeGen: "else" without "if"');return this._currNode=j.else=M,this}get _root(){return this._nodes[0]}get _currNode(){let M=this._nodes;return M[M.length-1]}set _currNode(M){let j=this._nodes;j[j.length-1]=M}}e.CodeGen=P;function N(U,M){for(let j in M)U[j]=(U[j]||0)+(M[j]||0);return U}function C(U,M){return M instanceof t._CodeOrName?N(U,M.names):U}function L(U,M,j){if(U instanceof t.Name)return H(U);if(!K(U))return U;return new t._Code(U._items.reduce((ee,se)=>(se instanceof t.Name&&(se=H(se)),se instanceof t._Code?ee.push(...se._items):ee.push(se),ee),[]));function H(ee){let se=j[ee.str];return se===void 0||M[ee.str]!==1?ee:(delete M[ee.str],se)}function K(ee){return ee instanceof t._Code&&ee._items.some(se=>se instanceof t.Name&&M[se.str]===1&&j[se.str]!==void 0)}}function G(U,M){for(let j in M)U[j]=(U[j]||0)-(M[j]||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,j)=>M===t.nil?j:j===t.nil?M:(0,t._)`${V(M)} ${U} ${V(j)}`}function V(U){return U instanceof t.Name?U:(0,t._)`(${U})`}}),lr=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=x5();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=_}),aE=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}),K5=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=lr(),r=aE();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])}}),xnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.boolOrEmptySchema=e.topBoolOrEmptySchema=void 0;var t=K5(),n=_n(),r=aE(),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)}}),SOt=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}),bOt=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}),O5=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=SOt(),n=bOt(),r=K5(),i=_n(),s=lr(),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}}}),Onr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.assignDefaults=void 0;var t=_n(),n=lr();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=lr(),r=aE(),i=lr();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}),Pnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateKeywordUsage=e.validSchemaType=e.funcKeywordCode=e.macroKeywordCode=void 0;var t=_n(),n=aE(),r=bp(),i=K5();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}),Nnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendSubschemaMode=e.extendSubschemaData=e.getSubschema=void 0;var t=_n(),n=lr();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}),EOt=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}}),Cnr=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=lr(),n=EOt(),r=Cnr(),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}),Z5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getData=e.KeywordCxt=e.validateFunctionCode=void 0;var t=xnr(),n=O5(),r=bOt(),i=O5(),s=Onr(),o=Pnr(),a=Nnr(),c=_n(),u=aE(),l=Y5(),d=lr(),f=K5();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:de,opts:_e},kt){_e.code.es5?z.func(J,(0,c._)`${u.default.data}, ${u.default.valCxt}`,de.$async,()=>{z.code((0,c._)`"use strict"; ${S(oe,_e)}`),g(z,_e),z.code(kt)}):z.func(J,(0,c._)`${u.default.data}, ${m(_e)}`,de.$async,()=>z.code(S(oe,_e)).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:de}=z;h(z,()=>{oe.$comment&&J.$comment&&L(z),P(z),de.let(u.default.vErrors,null),de.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:de,opts:_e}=z;_e.$comment&&oe.$comment&&L(z),N(z),C(z);let kt=de.const("_errs",u.default.errors);x(z,kt),de.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),de=(0,n.coerceAndCheckDataType)(z,oe);$(z,oe,!de,J)}function k(z){let{schema:J,errSchemaPath:oe,opts:de,self:_e}=z;J.$ref&&de.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(J,_e.RULES)&&_e.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:de,opts:_e}){let kt=oe.$comment;if(_e.$comment===!0)z.code((0,c._)`${u.default.self}.logger.log(${kt})`);else if(typeof _e.$comment=="function"){let Ue=(0,c.str)`${de}/$comment`,Un=z.scopeValue("root",{ref:J.root});z.code((0,c._)`${u.default.self}.opts.$comment(${kt}, ${Ue}, ${Un}.schema)`)}}function G(z){let{gen:J,schemaEnv:oe,validateName:de,ValidationError:_e,opts:kt}=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._)`${de}.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:de}){oe instanceof c.Name&&z.assign((0,c._)`${J}.props`,oe),de instanceof c.Name&&z.assign((0,c._)`${J}.items`,de)}function $(z,J,oe,de){let{gen:_e,schema:kt,data:Ue,allErrors:Un,opts:dr,self:sn}=z,{RULES:fr}=sn;if(kt.$ref&&(dr.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(kt,fr))){_e.block(()=>ee(z,"$ref",fr.all.$ref.definition));return}dr.jtd||Q(z,J),_e.block(()=>{for(let As of fr.rules)nl(As);nl(fr.post)});function nl(As){(0,r.shouldUseGroup)(kt,As)&&(As.type?(_e.if((0,i.checkDataType)(As.type,Ue,dr.strictNumbers)),q(z,As),J.length===1&&J[0]===As.type&&oe&&(_e.else(),(0,i.reportTypeError)(z)),_e.endIf()):q(z,As),Un||_e.if((0,c._)`${u.default.errors} === ${de||0}`))}}function q(z,J){let{gen:oe,schema:de,opts:{useDefaults:_e}}=z;_e&&(0,s.assignDefaults)(z,J.type),oe.block(()=>{for(let kt of J.rules)(0,r.shouldUseRule)(de,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)||H(z,`type "${oe}" not allowed by context "${z.dataTypes.join(",")}"`)}),j(z,J)}}function F(z,J){J.length>1&&!(J.length===2&&J.includes("null"))&&H(z,"use allowUnionTypes to allow union type keyword")}function V(z,J){let oe=z.self.RULES.all;for(let de in oe){let _e=oe[de];if(typeof _e=="object"&&(0,r.shouldUseRule)(z.schema,_e)){let{type:kt}=_e.definition;kt.length&&!kt.some(Ue=>U(J,Ue))&&H(z,`missing type "${kt.join(",")}" for keyword "${de}"`)}}}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 j(z,J){let oe=[];for(let de of z.dataTypes)M(J,de)?oe.push(de):J.includes("integer")&&de==="number"&&oe.push("integer");z.dataTypes=oe}function H(z,J){let oe=z.schemaEnv.baseId+z.errSchemaPath;J+=` at "${oe}" (strictTypes)`,(0,d.checkStrictMode)(z,J,z.opts.strictTypes)}class K{constructor(J,oe,de){if((0,o.validateKeywordUsage)(J,oe,de),this.gen=J.gen,this.allErrors=J.allErrors,this.keyword=de,this.data=J.data,this.schema=J.schema[de],this.$data=oe.$data&&J.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(J,this.schema,de,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(`${de} 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,de){this.failResult((0,c.not)(J),oe,de)}failResult(J,oe,de){this.gen.if(J),de?de():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,de){if(oe){this.setParams(oe),this._error(J,de),this.setParams({});return}this._error(J,de)}_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,de=c.nil){this.gen.block(()=>{this.check$data(J,de),oe()})}check$data(J=c.nil,oe=c.nil){if(!this.$data)return;let{gen:de,schemaCode:_e,schemaType:kt,def:Ue}=this;de.if((0,c.or)((0,c._)`${_e} === undefined`,oe)),J!==c.nil&&de.assign(J,!0),(kt.length||Ue.validateSchema)&&(de.elseIf(this.invalid$data()),this.$dataError(),J!==c.nil&&de.assign(J,!1)),de.else()}invalid$data(){let{gen:J,schemaCode:oe,schemaType:de,def:_e,it:kt}=this;return(0,c.or)(Ue(),Un());function Ue(){if(de.length){if(!(oe instanceof c.Name))throw new Error("ajv implementation error");let dr=Array.isArray(de)?de:[de];return(0,c._)`${(0,i.checkDataTypes)(dr,oe,kt.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function Un(){if(_e.validateSchema){let dr=J.scopeValue("validate$data",{ref:_e.validateSchema});return(0,c._)`!${dr}(${oe})`}return c.nil}}subschema(J,oe){let de=(0,a.getSubschema)(this.it,J);(0,a.extendSubschemaData)(de,this.it,J),(0,a.extendSubschemaMode)(de,J);let _e={...this.it,...de,items:void 0,props:void 0};return E(_e,oe),_e}mergeEvaluated(J,oe){let{it:de,gen:_e}=this;de.opts.unevaluated&&(de.props!==!0&&J.props!==void 0&&(de.props=d.mergeEvaluated.props(_e,J.props,de.props,oe)),de.items!==!0&&J.items!==void 0&&(de.items=d.mergeEvaluated.items(_e,J.items,de.items,oe)))}mergeValidEvaluated(J,oe){let{it:de,gen:_e}=this;if(de.opts.unevaluated&&(de.props!==!0||de.items!==!0))return _e.if(oe,()=>this.mergeEvaluated(J,c.Name)),!0}}e.KeywordCxt=K;function ee(z,J,oe,de){let _e=new K(z,oe,J);"code"in oe?oe.code(_e,de):_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 se=/^\/(?:[^~]|~0|~1)*$/,Le=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Ae(z,{dataLevel:J,dataNames:oe,dataPathArr:de}){let _e,kt;if(z==="")return u.default.rootData;if(z[0]==="/"){if(!se.test(z))throw new Error(`Invalid JSON-pointer: ${z}`);_e=z,kt=u.default.rootData}else{let sn=Le.exec(z);if(!sn)throw new Error(`Invalid JSON-pointer: ${z}`);let fr=+sn[1];if(_e=sn[2],_e==="#"){if(fr>=J)throw new Error(dr("property/index",fr));return de[J-fr]}if(fr>J)throw new Error(dr("data",fr));if(kt=oe[J-fr],!_e)return kt}let Ue=kt,Un=_e.split("/");for(let sn of Un)sn&&(kt=(0,c._)`${kt}${(0,c.getProperty)((0,d.unescapeJsonPointer)(sn))}`,Ue=(0,c._)`${Ue} && ${kt}`);return Ue;function dr(sn,fr){return`Cannot access ${sn} ${fr} levels up, current level is ${J}`}}e.getData=Ae}),MTe=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}),J5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Y5();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}),DTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.resolveSchema=e.getCompilingSchema=e.resolveRef=e.compileSchema=e.SchemaEnv=void 0;var t=_n(),n=MTe(),r=aE(),i=Y5(),s=lr(),o=Z5();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}}),Mnr=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}}),Dnr=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}}),Lnr=Xe((e,t)=>{var{HEX:n}=Dnr(),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}),Fnr=Xe((e,t)=>{var{normalizeIPv6:n,normalizeIPv4:r,removeDotSegments:i,recomposeAuthority:s,normalizeComponentEncoding:o}=Lnr(),a=Unr();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}),jnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Fnr();t.code='require("ajv/dist/runtime/uri").default',e.default=t}),Hnr=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=Z5();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=MTe(),i=J5(),s=SOt(),o=DTe(),a=_n(),c=Y5(),u=O5(),l=lr(),d=Mnr(),f=jnr(),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,j,H,K,ee,se,Le,Ae,z,J,oe,de,_e,kt,Ue,Un,dr,sn,fr,nl,As,lE;let uy=B.strict,Ii=(F=B.code)===null||F===void 0?void 0:F.optimize,_p=Ii===!0||Ii===void 0?1:Ii||0,ly=(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:(H=(j=B.strictSchema)!==null&&j!==void 0?j:uy)!==null&&H!==void 0?H:!0,strictNumbers:(ee=(K=B.strictNumbers)!==null&&K!==void 0?K:uy)!==null&&ee!==void 0?ee:!0,strictTypes:(Le=(se=B.strictTypes)!==null&&se!==void 0?se:uy)!==null&&Le!==void 0?Le:"log",strictTuples:(z=(Ae=B.strictTuples)!==null&&Ae!==void 0?Ae:uy)!==null&&z!==void 0?z:"log",strictRequired:(oe=(J=B.strictRequired)!==null&&J!==void 0?J:uy)!==null&&oe!==void 0?oe:!1,code:B.code?{...B.code,optimize:_p,regExp:ly}:{optimize:_p,regExp:ly},loopRequired:(de=B.loopRequired)!==null&&de!==void 0?de:b,loopEnum:(_e=B.loopEnum)!==null&&_e!==void 0?_e:b,meta:(kt=B.meta)!==null&&kt!==void 0?kt:!0,messages:(Ue=B.messages)!==null&&Ue!==void 0?Ue:!0,inlineRefs:(Un=B.inlineRefs)!==null&&Un!==void 0?Un:!0,schemaId:(dr=B.schemaId)!==null&&dr!==void 0?dr:"$id",addUsedSchema:(sn=B.addUsedSchema)!==null&&sn!==void 0?sn:!0,validateSchema:(fr=B.validateSchema)!==null&&fr!==void 0?fr:!0,validateFormats:(nl=B.validateFormats)!==null&&nl!==void 0?nl:!0,unicodeRegExp:(As=B.unicodeRegExp)!==null&&As!==void 0?As:!0,int32range:(lE=B.int32range)!==null&&lE!==void 0?lE:!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 j.call(this,Le.$schema);let z=this._addSchema(Le,Ae);return z.validate||H.call(this,z)}async function j(Le){Le&&!this.getSchema(Le)&&await M.call(this,{$ref:Le},!0)}async function H(Le){try{return this._compileSchemaEnv(Le)}catch(Ae){if(!(Ae instanceof i.default))throw Ae;return K.call(this,Ae),await ee.call(this,Ae.missingSchema),H.call(this,Le)}}function K({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 j.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 H of F)this.addSchema(H,void 0,U,M);return this}let j;if(typeof F=="object"){let{schemaId:H}=this.opts;if(j=F[H],j!==void 0&&typeof j!="string")throw new Error(`schema ${H} must be string`)}return V=(0,c.normalizeId)(V||j),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 j="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(j);else throw new Error(j)}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,j=>G.call(this,j)),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?j=>G.call(this,j,M):j=>M.type.forEach(H=>G.call(this,j,M,H))),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(j=>j.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,j)=>M+V+j)}$dataMetaSchema(F,V){let U=this.RULES.all;F=JSON.parse(JSON.stringify(F));for(let M of V){let j=M.split("/").slice(1),H=F;for(let K of j)H=H[K];for(let K in U){let ee=U[K];if(typeof ee!="object")continue;let{$data:se}=ee.definition,Le=H[K];se&&Le&&(H[K]=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,j=this.opts.addUsedSchema){let H,{schemaId:K}=this.opts;if(typeof F=="object")H=F[K];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)(H||U);let se=c.getSchemaRefs.call(this,F,U);return ee=new o.SchemaEnv({schema:F,schemaId:K,meta:V,baseId:U,localRefs:se}),this._cache.set(ee.schema,ee),j&&!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 j=M;j in F&&this.logger[U](`${V}: option ${M}. ${B[j]}`)}}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:j}=this,H=M?j.post:j.rules.find(({type:ee})=>ee===V);if(H||(H={type:V,rules:[]},j.rules.push(H)),j.keywords[B]=!0,!F)return;let K={keyword:B,definition:{...F,type:(0,u.getJSONTypes)(F.type),schemaType:(0,u.getJSONTypes)(F.schemaType)}};F.before?W.call(this,H,K,F.before):H.rules.push(K),j.all[B]=K,(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]}}}),qnr=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}),Bnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.callRef=e.getValidate=void 0;var t=J5(),n=bp(),r=_n(),i=aE(),s=DTe(),o=lr(),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}),znr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=qnr(),n=Bnr(),r=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",t.default,n.default];e.default=r}),Gnr=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}),Vnr=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}),Wnr=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=lr(),r=Wnr(),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}),Ynr=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}),Znr=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=lr(),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}),Xnr=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}),LTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=EOt();t.code='require("ajv/dist/runtime/equal").default',e.default=t}),Qnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=O5(),n=_n(),r=lr(),i=LTe(),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}),$nr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),r=LTe(),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}),err=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),r=LTe(),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}),trr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Gnr(),n=Vnr(),r=Knr(),i=Ynr(),s=Znr(),o=Jnr(),a=Xnr(),c=Qnr(),u=$nr(),l=err(),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}),_Ot=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateAdditionalItems=void 0;var t=_n(),n=lr(),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}),TOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateTuple=void 0;var t=_n(),n=lr(),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}),nrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=TOt(),n={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,t.validateTuple)(r,"items")};e.default=n}),rrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),r=bp(),i=_Ot(),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}),irr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),srr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;var t=_n(),n=lr(),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}),Anr=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}),oOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Sp(),n=_n(),r=ib(),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}),Rnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=F6(),n=Sp(),r=ur(),i=oOt(),s={keyword:"properties",type:"object",schemaType:"object",code(o){let{gen:a,schema:c,parentSchema:u,data:l,it:d}=o;d.opts.removeAdditional==="all"&&u.additionalProperties===void 0&&i.default.code(new t.KeywordCxt(d,i.default,"additionalProperties"));let f=(0,n.allSchemaProperties)(c);for(let 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}),wnr=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}),knr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ur(),n={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(r){let{gen:i,schema:s,it:o}=r;if((0,t.alwaysValidSchema)(o,s)){r.fail();return}let a=i.name("valid");r.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),r.failResult(a,()=>r.reset(),()=>r.error())},error:{message:"must NOT be valid"}};e.default=n}),Inr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Sp(),n={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:t.validateUnion,error:{message:"must match a schema in anyOf"}};e.default=n}),xnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_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}),Onr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ur(),n={keyword:"allOf",schemaType:"array",code(r){let{gen:i,schema:s,it:o}=r;if(!Array.isArray(s))throw new Error("ajv implementation error");let a=i.name("valid");s.forEach((c,u)=>{if((0,t.alwaysValidSchema)(o,c))return;let l=r.subschema({keyword:"allOf",schemaProp:u},a);r.ok(a),r.mergeEvaluated(l)})}};e.default=n}),Nnr=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}),Pnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ur(),n={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:r,parentSchema:i,it:s}){i.if===void 0&&(0,t.checkStrictMode)(s,`"${r}" without "if" is ignored`)}};e.default=n}),Cnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=iOt(),n=bnr(),r=sOt(),i=_nr(),s=Tnr(),o=vnr(),a=Anr(),c=oOt(),u=Rnr(),l=wnr(),d=knr(),f=Inr(),p=xnr(),h=Onr(),m=Nnr(),y=Pnr();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}),Mnr=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}),Lnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Mnr(),n=[t.default];e.default=n}),Dnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.contentVocabulary=e.metadataVocabulary=void 0,e.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],e.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]}),Unr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=anr(),n=Enr(),r=Cnr(),i=Lnr(),s=Dnr(),o=[t.default,n.default,(0,r.default)(),i.default,s.metadataVocabulary,s.contentVocabulary];e.default=o}),Fnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DiscrError=void 0;var t;(function(n){n.Tag="tag",n.Mapping="mapping"})(t||(e.DiscrError=t={}))}),jnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=Fnr(),r=RTe(),i=j6(),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}}),aOt=Xe((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv=void 0;var n=inr(),r=Unr(),i=jnr(),s=Hnr(),o=["/properties"],a="http://json-schema.org/draft-07/schema";class c extends n.default{_addVocabularies(){super._addVocabularies(),r.default.forEach(h=>this.addVocabulary(h)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let h=this.opts.$data?this.$dataMetaSchema(s,o):s;this.addMetaSchema(h,a,!1),this.refs["http://json-schema.org/schema"]=a}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(a)?a:void 0)}}e.Ajv=c,t.exports=e=c,t.exports.Ajv=c,Object.defineProperty(e,"__esModule",{value:!0}),e.default=c;var u=F6();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=ATe();Object.defineProperty(e,"ValidationError",{enumerable:!0,get:function(){return d.default}});var f=j6();Object.defineProperty(e,"MissingRefError",{enumerable:!0,get:function(){return f.default}})}),qnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatNames=e.fastFormats=e.fullFormats=void 0;function t(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}}}),Bnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatLimitDefinition=void 0;var t=aOt(),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}),Gnr=Xe((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=qnr(),r=Bnr(),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}),Wnr=50;Jnr=typeof global=="object"&&global&&global.Object===Object&&global,Xnr=Jnr,Qnr=typeof self=="object"&&self&&self.Object===Object&&self,$nr=Xnr||Qnr||Function("return this")(),ITe=$nr,err=ITe.Symbol,b6=err,cOt=Object.prototype,trr=cOt.hasOwnProperty,nrr=cOt.toString,mU=b6?b6.toStringTag:void 0;irr=rrr,srr=Object.prototype,orr=srr.toString;crr=arr,urr="[object Null]",lrr="[object Undefined]",l0t=b6?b6.toStringTag:void 0;frr=drr;uOt=prr,hrr="[object AsyncFunction]",mrr="[object Function]",grr="[object GeneratorFunction]",yrr="[object Proxy]";Err=Srr,brr=ITe["__core-js_shared__"],U_e=brr,d0t=(function(){var e=/[^.]+$/.exec(U_e&&U_e.keys&&U_e.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();Trr=_rr,vrr=Function.prototype,Arr=vrr.toString;wrr=Rrr,krr=/[\\^$.*+?()[\]{}|]/g,Irr=/^\[object .+?Constructor\]$/,xrr=Function.prototype,Orr=Object.prototype,Nrr=xrr.toString,Prr=Orr.hasOwnProperty,Crr=RegExp("^"+Nrr.call(Prr).replace(krr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");Lrr=Mrr;Urr=Drr;lOt=Frr,jrr=lOt(Object,"create"),vU=jrr;qrr=Hrr;Grr=Brr,zrr="__lodash_hash_undefined__",Vrr=Object.prototype,Wrr=Vrr.hasOwnProperty;Zrr=Krr,Yrr=Object.prototype,Jrr=Yrr.hasOwnProperty;Qrr=Xrr,$rr="__lodash_hash_undefined__";tir=eir;B0.prototype.clear=qrr;B0.prototype.delete=Grr;B0.prototype.get=Zrr;B0.prototype.has=Qrr;B0.prototype.set=tir;f0t=B0;rir=nir;sir=iir;H6=oir,air=Array.prototype,cir=air.splice;lir=uir;fir=dir;hir=pir;gir=mir;G0.prototype.clear=rir;G0.prototype.delete=lir;G0.prototype.get=fir;G0.prototype.has=hir;G0.prototype.set=gir;yir=G0,Sir=lOt(ITe,"Map"),Eir=Sir;_ir=bir;vir=Tir;q6=Air;wir=Rir;Iir=kir;Oir=xir;Pir=Nir;z0.prototype.clear=_ir;z0.prototype.delete=wir;z0.prototype.get=Iir;z0.prototype.has=Oir;z0.prototype.set=Pir;dOt=z0,Cir="Expected a function";xTe.Cache=dOt;UU=xTe,p0t=2e3;Lir=UU(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}});F_e=15e4,f6=3e4;zir=hOt("BASH_MAX_OUTPUT_LENGTH"),fNi=hOt("TASK_MAX_OUTPUT_LENGTH"),Vir={name:"CLAUDE_CODE_MAX_OUTPUT_TOKENS",default:32e3,validate:e=>{if(!e)return{effective:32e3,status:"valid"};let r=parseInt(e,10);return isNaN(r)||r<=0?{effective:32e3,status:"invalid",message:`Invalid value "${e}" (using default: 32000)`}:r>64e3?{effective:64e3,status:"capped",message:`Capped from ${r} to 64000`}:{effective:r,status:"valid"}}};Kir=Wir();m0t=new Set;mOt=1/0;yOt=(e,t)=>{let n=typeof e=="string"?e.length:0;return gOt(`JSON.parse(${n} chars)`,()=>JSON.parse(e,t))},Qir=UU(()=>h0t(process.env.DEBUG)||h0t(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||SOt()||process.argv.some(e=>e.startsWith("--debug="))),$ir=UU(()=>{let e=process.argv.find(n=>n.startsWith("--debug="));if(!e)return null;let t=e.substring(8);return Lir(t)}),SOt=UU(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));tsr=!1,p6=null;rsr=UU(()=>{if(process.argv[2]!=="--ripgrep")try{let e=EOt(),t=K_e(e),n=pOt(t,"latest");if(Jg().existsSync(t)||Jg().mkdirSync(t),Jg().existsSync(n))try{Jg().unlinkSync(n)}catch{}Jg().symlinkSync(e,n)}catch{}});isr={cwd(){return process.cwd()},existsSync(e){return fo(`existsSync(${e})`,()=>Yt.existsSync(e))},async stat(e){return Ynr(e)},statSync(e){return fo(`statSync(${e})`,()=>Yt.statSync(e))},lstatSync(e){return fo(`lstatSync(${e})`,()=>Yt.lstatSync(e))},readFileSync(e,t){return fo(`readFileSync(${e})`,()=>Yt.readFileSync(e,{encoding:t.encoding}))},readFileBytesSync(e){return fo(`readFileBytesSync(${e})`,()=>Yt.readFileSync(e))},readSync(e,t){return fo(`readSync(${e}, ${t.length} bytes)`,()=>{let n;try{n=Yt.openSync(e,"r");let r=Buffer.alloc(t.length),i=Yt.readSync(n,r,0,t.length,0);return{buffer:r,bytesRead:i}}finally{n&&Yt.closeSync(n)}})},appendFileSync(e,t,n){return fo(`appendFileSync(${e}, ${t.length} chars)`,()=>{if(!Yt.existsSync(e)&&n?.mode!==void 0){let r=Yt.openSync(e,"a",n.mode);try{Yt.appendFileSync(r,t)}finally{Yt.closeSync(r)}}else Yt.appendFileSync(e,t)})},copyFileSync(e,t){return fo(`copyFileSync(${e} \u2192 ${t})`,()=>Yt.copyFileSync(e,t))},unlinkSync(e){return fo(`unlinkSync(${e})`,()=>Yt.unlinkSync(e))},renameSync(e,t){return fo(`renameSync(${e} \u2192 ${t})`,()=>Yt.renameSync(e,t))},linkSync(e,t){return fo(`linkSync(${e} \u2192 ${t})`,()=>Yt.linkSync(e,t))},symlinkSync(e,t){return fo(`symlinkSync(${e} \u2192 ${t})`,()=>Yt.symlinkSync(e,t))},readlinkSync(e){return fo(`readlinkSync(${e})`,()=>Yt.readlinkSync(e))},realpathSync(e){return fo(`realpathSync(${e})`,()=>Yt.realpathSync(e))},mkdirSync(e,t){return fo(`mkdirSync(${e})`,()=>{if(!Yt.existsSync(e)){let n={recursive:!0};t?.mode!==void 0&&(n.mode=t.mode),Yt.mkdirSync(e,n)}})},readdirSync(e){return fo(`readdirSync(${e})`,()=>Yt.readdirSync(e,{withFileTypes:!0}))},readdirStringSync(e){return fo(`readdirStringSync(${e})`,()=>Yt.readdirSync(e))},isDirEmptySync(e){return fo(`isDirEmptySync(${e})`,()=>this.readdirSync(e).length===0)},rmdirSync(e){return fo(`rmdirSync(${e})`,()=>Yt.rmdirSync(e))},rmSync(e,t){return fo(`rmSync(${e})`,()=>Yt.rmSync(e,t))},createWriteStream(e){return Yt.createWriteStream(e)}},ssr=isr;osr=["PreToolUse","PostToolUse","PostToolUseFailure","Notification","UserPromptSubmit","SessionStart","SessionEnd","Stop","SubagentStart","SubagentStop","PreCompact","PermissionRequest"],asr=["clear","logout","prompt_input_exit","other","bypass_permissions_disabled"],eb=class extends Error{};h6=null,y0t=!1;_6=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(t){this.options=t,this.abortController=t.abortController||kTe(),this.initialize()}getDefaultExecutable(){return OTe()?"bun":"node"}spawnLocalProcess(t){let{command:n,args:r,cwd:i,env:s,signal:o}=t,a=s.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr?"pipe":"ignore",c=Knr(n,r,{cwd:i,stdio:["pipe","pipe",a],signal:o,env:s,windowsHide:!0});return(s.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr)&&c.stderr.on("data",l=>{let d=l.toString();Vv(d),this.options.stderr&&this.options.stderr(d)}),{stdin:c.stdin,stdout:c.stdout,get killed(){return c.killed},get exitCode(){return c.exitCode},kill:c.kill.bind(c),on:c.on.bind(c),once:c.once.bind(c),off:c.off.bind(c)}}initialize(){try{let{additionalDirectories:t=[],betas:n,cwd:r,executable:i=this.getDefaultExecutable(),executableArgs:s=[],extraArgs:o={},pathToClaudeCodeExecutable:a,env:c={...process.env},maxThinkingTokens:u,maxTurns:l,maxBudgetUsd:d,model:f,fallbackModel:p,jsonSchema:h,permissionMode:m,allowDangerouslySkipPermissions: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=psr(o??{},C);for(let[M,q]of Object.entries(V))q===null?F.push(`--${M}`):F.push(`--${M}`,q);c.CLAUDE_CODE_ENTRYPOINT||(c.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),delete c.NODE_OPTIONS,c.DEBUG_CLAUDE_AGENT_SDK?c.DEBUG="1":delete c.DEBUG;let K=hsr(a),$=K?a:i,B=K?[...s,...F]:[...s,a,...F],X={command:$,args:B,cwd:r,env:c,signal:this.abortController.signal};if(this.options.spawnClaudeCodeProcess)Vv(`Spawning Claude Code (custom): ${$} ${B.join(" ")}`),this.process=this.options.spawnClaudeCodeProcess(X);else{if(!Jg().existsSync(a)){let q=K?`Claude Code native binary not found at ${a}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${a}. Is options.pathToClaudeCodeExecutable set?`;throw new ReferenceError(q)}Vv(`Spawning Claude Code: ${$} ${B.join(" ")}`),this.process=this.spawnLocalProcess(X)}this.processStdin=this.process.stdin,this.processStdout=this.process.stdout;let G=()=>{this.process&&!this.process.killed&&this.process.kill("SIGTERM")};this.processExitHandler=G,this.abortHandler=G,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.process.on("error",M=>{this.ready=!1,this.abortController.signal.aborted?this.exitError=new eb("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 eb("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 eb("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=Znr({input:this.processStdout});try{for await(let n of t)n.trim()&&(yield yOt(n));await this.waitForExit()}catch(n){throw n}finally{t.close()}}endInput(){this.processStdin&&this.processStdin.end()}getInputStream(){return this.processStdin}onExit(t){if(!this.process)return()=>{};let n=(r,i)=>{let s=this.getProcessExitError(r,i);t(s)};return this.process.on("exit",n),this.exitListeners.push({callback:t,handler:n}),()=>{this.process&&this.process.off("exit",n);let r=this.exitListeners.findIndex(i=>i.handler===n);r!==-1&&this.exitListeners.splice(r,1)}}async waitForExit(){if(!this.process){if(this.exitError)throw this.exitError;return}if(this.process.exitCode!==null||this.process.killed){if(this.exitError)throw this.exitError;return}return new Promise((t,n)=>{let r=(s,o)=>{if(this.abortController.signal.aborted){n(new eb("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)})})}};T6=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})}},Z_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?.())}},v6=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new T6;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 eb))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 Z_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:msr(),request:{subtype:"mcp_message",server_name:t,message:n}};this.transport.write(rm(r)+` -`)}handleMcpControlRequest(t,n,r){let i="id"in n.message?n.message.id:null,s=`${t}:${i}`;return new Promise((o,a)=>{let c=()=>{this.pendingMcpResponses.delete(s)},u=d=>{c(),o(d)},l=d=>{c(),a(d)};if(this.pendingMcpResponses.set(s,{resolve:u,reject:l}),r.onmessage)r.onmessage(n.message);else{c(),a(new Error("No message handler registered"));return}})}},A6=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 T6;let n=t.pathToClaudeCodeExecutable;if(!n){let s=gsr(import.meta.url),o=S0t(s,"..");n=S0t(o,"cli.js")}let r={...t.env??process.env};r.CLAUDE_CODE_ENTRYPOINT||(r.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),this.abortController=kTe();let i=new _6({abortController:this.abortController,pathToClaudeCodeExecutable:n,env:r,executable:t.executable??(OTe()?"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 v6(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})})(E0t||(E0t={}));nt=ir.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),$E=e=>{switch(typeof e){case"undefined":return nt.undefined;case"string":return nt.string;case"number":return Number.isNaN(e)?nt.nan:nt.number;case"boolean":return nt.boolean;case"function":return nt.function;case"bigint":return nt.bigint;case"symbol":return nt.symbol;case"object":return Array.isArray(e)?nt.array:e===null?nt.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?nt.promise:typeof Map<"u"&&e instanceof Map?nt.map:typeof Set<"u"&&e instanceof Set?nt.set:typeof Date<"u"&&e instanceof Date?nt.date:nt.object;default:return nt.unknown}},xe=ir.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Kd=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;cn.message){let n={},r=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];n[s]=n[s]||[],n[s].push(t(i))}else r.push(t(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};Kd.create=e=>new Kd(e);Ssr=(e,t)=>{let n;switch(e.code){case xe.invalid_type:e.received===nt.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case xe.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,ir.jsonStringifyReplacer)}`;break;case xe.unrecognized_keys:n=`Unrecognized key(s) in object: ${ir.joinValues(e.keys,", ")}`;break;case xe.invalid_union:n="Invalid input";break;case xe.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${ir.joinValues(e.options)}`;break;case xe.invalid_enum_value:n=`Invalid enum value. Expected ${ir.joinValues(e.options)}, received '${e.received}'`;break;case xe.invalid_arguments:n="Invalid function arguments";break;case xe.invalid_return_type:n="Invalid function return type";break;case xe.invalid_date:n="Invalid date";break;case xe.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:ir.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case xe.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case xe.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case xe.custom:n="Invalid input";break;case xe.invalid_intersection_types:n="Intersection results could not be merged";break;case xe.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case xe.not_finite:n="Number must be finite";break;default:n=t.defaultError,ir.assertNever(e)}return{message:n}},AU=Ssr,Esr=AU;J_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}};ru=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let i of n){if(i.status==="aborted")return Vt;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let i of n){let s=await i.key,o=await i.value;r.push({key:s,value:o})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let i of n){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return Vt;s.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(r[s.value]=o.value)}return{status:t.value,value:r}}},Vt=Object.freeze({status:"aborted"}),SU=e=>({status:"dirty",value:e}),Ju=e=>({status:"valid",value:e}),b0t=e=>e.status==="aborted",_0t=e=>e.status==="dirty",I0=e=>e.status==="valid",R6=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={}));Zd=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}},T0t=(e,t)=>{if(I0(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new Kd(e.common.issues);return this._error=n,this._error}}};Tn=class{get description(){return this._def.description}_getType(t){return $E(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:$E(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new ru,ctx:{common:t.parent.common,data:t.data,parsedType:$E(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(R6(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:$E(t)},i=this._parseSync({data:t,path:r.path,parent:r});return T0t(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:$E(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return I0(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=>I0(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:$E(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(R6(i)?i:Promise.resolve(i));return T0t(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: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 hp.create(this,this._def)}nullable(){return Qg.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return rb.create(this)}promise(){return Kv.create(this,this._def)}or(t){return P0.create([this,t],this._def)}and(t){return C0.create(this,t,this._def)}transform(t){return new mp({...ln(this._def),schema:this,typeName:De.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new F0({...ln(this._def),innerType:this,defaultValue:n,typeName:De.ZodDefault})}brand(){return new w6({typeName:De.ZodBranded,type:this,...ln(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new j0({...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 k6.create(this,t)}readonly(){return H0.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},bsr=/^c[^\s-]{8,}$/i,_sr=/^[0-9a-z]+$/,Tsr=/^[0-9A-HJKMNP-TV-Z]{26}$/i,vsr=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Asr=/^[a-z0-9_-]{21}$/i,Rsr=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,wsr=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,ksr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Isr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",xsr=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Osr=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Nsr=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Psr=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Csr=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Msr=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,_Ot="((\\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])))",Lsr=new RegExp(`^${_Ot}$`);x0=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 ru,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 x0({checks:[],typeName:De.ZodString,coerce:e?.coerce??!1,...ln(e)});RU=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 ru;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"?qsr(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 RU({checks:[],typeName:De.ZodNumber,coerce:e?.coerce||!1,...ln(e)});wU=class e extends Tn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==nt.bigint)return this._getInvalidInput(t);let r,i=new ru;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),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 wU({checks:[],typeName:De.ZodBigInt,coerce:e?.coerce??!1,...ln(e)});kU=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 Ju(t.data)}};kU.create=e=>new kU({typeName:De.ZodBoolean,coerce:e?.coerce||!1,...ln(e)});IU=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 ru,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 IU({checks:[],coerce:e?.coerce||!1,typeName:De.ZodDate,...ln(e)});xU=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 Ju(t.data)}};xU.create=e=>new xU({typeName:De.ZodSymbol,...ln(e)});O0=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 Ju(t.data)}};O0.create=e=>new O0({typeName:De.ZodUndefined,...ln(e)});N0=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 Ju(t.data)}};N0.create=e=>new N0({typeName:De.ZodNull,...ln(e)});OU=class extends Tn{constructor(){super(...arguments),this._any=!0}_parse(t){return Ju(t.data)}};OU.create=e=>new OU({typeName:De.ZodAny,...ln(e)});nb=class extends Tn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Ju(t.data)}};nb.create=e=>new nb({typeName:De.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:De.ZodNever,...ln(e)});NU=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 Ju(t.data)}};NU.create=e=>new NU({typeName:De.ZodVoid,...ln(e)});rb=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 Zd(n,o,n.path,a)))).then(o=>ru.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new Zd(n,o,n.path,a)));return ru.mergeArray(r,s)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:lt.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:lt.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:lt.toString(n)}})}nonempty(t){return this.min(1,t)}};rb.create=(e,t)=>new rb({type:e,minLength:null,maxLength:null,exactLength:null,typeName:De.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 Zd(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 Zd(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,f=await l.value;u.push({key:d,value:f,alwaysSet:l.alwaysSet})}return u}).then(u=>ru.mergeObjectSync(r,u)):ru.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return lt.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let i=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:lt.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName: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 R0(this)}partial(t){let n={};for(let r of ir.objectKeys(this.shape)){let i=this.shape[r];t&&!t[r]?n[r]=i:n[r]=i.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of ir.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof hp;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return vOt(ir.objectKeys(this.shape))}};Dl.create=(e,t)=>new Dl({shape:()=>e,unknownKeys:"strip",catchall:sm.create(),typeName:De.ZodObject,...ln(t)});Dl.strictCreate=(e,t)=>new Dl({shape:()=>e,unknownKeys:"strict",catchall:sm.create(),typeName:De.ZodObject,...ln(t)});Dl.lazycreate=(e,t)=>new Dl({shape:e,unknownKeys:"strip",catchall:sm.create(),typeName:De.ZodObject,...ln(t)});P0=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new Kd(a.ctx.common.issues));return 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 Kd(c));return Ze(n,{code:xe.invalid_union,unionErrors:a}),Vt}}get options(){return this._def.options}};P0.create=(e,t)=>new P0({options:e,typeName:De.ZodUnion,...ln(t)});Kg=e=>e instanceof M0?Kg(e.schema):e instanceof mp?Kg(e.innerType()):e instanceof L0?[e.value]:e instanceof D0?e.options:e instanceof U0?ir.objectValues(e.enum):e instanceof F0?Kg(e._def.innerType):e instanceof O0?[void 0]:e instanceof N0?[null]:e instanceof hp?[void 0,...Kg(e.unwrap())]:e instanceof Qg?[null,...Kg(e.unwrap())]:e instanceof w6||e instanceof H0?Kg(e.unwrap()):e instanceof j0?Kg(e._def.innerType):[],X_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:De.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...ln(r)})}};C0=class extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(b0t(s)||b0t(o))return Vt;let a=Q_e(s.value,o.value);return a.valid?((_0t(s)||_0t(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}))}};C0.create=(e,t,n)=>new C0({left:e,right:t,typeName:De.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 Zd(r,o,r.path,a)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>ru.mergeArray(n,o)):ru.mergeArray(n,s)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Xg.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Xg({items:e,typeName:De.ZodTuple,rest:null,...ln(t)})};$_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 Zd(r,a,r.path,a)),value:o._parse(new Zd(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?ru.mergeObjectAsync(n,i):ru.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof Tn?new e({keyType:t,valueType:n,typeName:De.ZodRecord,...ln(r)}):new e({keyType:x0.create(),valueType:t,typeName:De.ZodRecord,...ln(n)})}},PU=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 Zd(r,a,r.path,[u,"key"])),value:s._parse(new Zd(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}}}};PU.create=(e,t,n)=>new PU({valueType:t,keyType:e,typeName:De.ZodMap,...ln(n)});CU=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 Zd(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)}};CU.create=(e,t)=>new CU({valueType:e,minSize:null,maxSize:null,typeName:De.ZodSet,...ln(t)});eTe=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 J_e({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Y_e(),AU].filter(u=>!!u),issueData:{code:xe.invalid_arguments,argumentsError:c}})}function i(a,c){return J_e({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Y_e(),AU].filter(u=>!!u),issueData:{code:xe.invalid_return_type,returnTypeError:c}})}let s={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof Kv){let a=this;return Ju(async function(...c){let u=new Kd([]),l=await a._def.args.parseAsync(c,s).catch(p=>{throw u.addIssue(r(c,p)),u}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw u.addIssue(i(d,p)),u})})}else{let a=this;return Ju(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new Kd([r(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Kd([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Xg.create(t).rest(nb.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(nb.create()),returns:n||nb.create(),typeName:De.ZodFunction,...ln(r)})}},M0=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})}};M0.create=(e,t)=>new M0({getter:e,typeName:De.ZodLazy,...ln(t)});L0=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}};L0.create=(e,t)=>new L0({value:e,typeName:De.ZodLiteral,...ln(t)});D0=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 Ju(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};D0.create=vOt;U0=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 Ju(t.data)}get enum(){return this._def.values}};U0.create=(e,t)=>new U0({values:e,typeName:De.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 Ju(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}};Kv.create=(e,t)=>new Kv({type:e,typeName:De.ZodPromise,...ln(t)});mp=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=>{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"?SU(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"?SU(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(!I0(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=>I0(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:De.ZodEffects,effect:t,...ln(n)});mp.createWithPreprocess=(e,t,n)=>new mp({schema:t,effect:{type:"preprocess",transform:e},typeName:De.ZodEffects,...ln(n)});hp=class extends Tn{_parse(t){return this._getType(t)===nt.undefined?Ju(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};hp.create=(e,t)=>new hp({innerType:e,typeName:De.ZodOptional,...ln(t)});Qg=class extends Tn{_parse(t){return this._getType(t)===nt.null?Ju(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Qg.create=(e,t)=>new Qg({innerType:e,typeName:De.ZodNullable,...ln(t)});F0=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}};F0.create=(e,t)=>new F0({innerType:e,typeName:De.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...ln(t)});j0=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 R6(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Kd(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Kd(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};j0.create=(e,t)=>new j0({innerType:e,typeName:De.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...ln(t)});MU=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}}};MU.create=e=>new MU({typeName:De.ZodNaN,...ln(e)});w6=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}},k6=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(),SU(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})}},H0=class extends Tn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(I0(i)&&(i.value=Object.freeze(i.value)),i);return R6(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};H0.create=(e,t)=>new H0({innerType:e,typeName:De.ZodReadonly,...ln(t)});ENi={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"})(De||(De={}));bNi=x0.create,_Ni=RU.create,TNi=MU.create,vNi=wU.create,ANi=kU.create,RNi=IU.create,wNi=xU.create,kNi=O0.create,INi=N0.create,xNi=OU.create,ONi=nb.create,NNi=sm.create,PNi=NU.create,CNi=rb.create,Bsr=Dl.create,MNi=Dl.strictCreate,LNi=P0.create,DNi=X_e.create,UNi=C0.create,FNi=Xg.create,jNi=$_e.create,HNi=PU.create,qNi=CU.create,BNi=eTe.create,GNi=M0.create,zNi=L0.create,VNi=D0.create,WNi=U0.create,KNi=Kv.create,ZNi=mp.create,YNi=hp.create,JNi=Qg.create,XNi=mp.createWithPreprocess,QNi=k6.create,$Ni=Object.freeze({status:"aborted"});Zv=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},tTe={};zr={};eOt(zr,{unwrapMessage:()=>EU,stringifyPrimitive:()=>MTe,required:()=>aor,randomString:()=>Jsr,propertyKeyTypes:()=>kOt,promiseAllObject:()=>Ysr,primitiveTypes:()=>$sr,prefixIssues:()=>tb,pick:()=>nor,partial:()=>oor,optionalKeys:()=>IOt,omit:()=>ror,numKeys:()=>Xsr,nullish:()=>G6,normalizeParams:()=>Ht,merge:()=>sor,jsonStringifyReplacer:()=>AOt,joinValues:()=>nTe,issue:()=>OOt,isPlainObject:()=>DU,isObject:()=>LU,getSizableOrigin:()=>cor,getParsedType:()=>Qsr,getLengthableOrigin:()=>V6,getEnumValues:()=>NTe,getElementAtPath:()=>Zsr,floatSafeRemainder:()=>ROt,finalizeIssue:()=>ey,extend:()=>ior,escapeRegex:()=>V0,esc:()=>w0,defineLazy:()=>ki,createTransparentProxy:()=>eor,clone:()=>ty,cleanRegex:()=>z6,cleanEnum:()=>uor,captureStackTrace:()=>CTe,cached:()=>B6,assignProp:()=>PTe,assertNotEqual:()=>zsr,assertNever:()=>Wsr,assertIs:()=>Vsr,assertEqual:()=>Gsr,assert:()=>Ksr,allowsEval:()=>wOt,aborted:()=>k0,NUMBER_FORMAT_RANGES:()=>xOt,Class:()=>rTe,BIGINT_FORMAT_RANGES:()=>tor});CTe=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};wOt=B6(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});Qsr=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},kOt=new Set(["string","number","symbol"]),$sr=new Set(["string","number","bigint","boolean","symbol","undefined"]);xOt={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},tor={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};rTe=class{constructor(...t){}},NOt=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(t,AOt,2)},enumerable:!0})},POt=ge("$ZodError",NOt),W6=ge("$ZodError",NOt,{Parent:Error});COt=e=>(t,n,r,i)=>{let s=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise)throw new Zv;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>ey(c,s,$g())));throw CTe(a,i?.callee),a}return o.value},por=COt(W6),MOt=e=>async(t,n,r,i)=>{let s=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise&&(o=await o),o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>ey(c,s,$g())));throw CTe(a,i?.callee),a}return o.value},hor=MOt(W6),LOt=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??POt)(s.issues.map(o=>ey(o,i,$g())))}:{success:!0,data:s.value}},LTe=LOt(W6),DOt=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}},DTe=DOt(W6),mor=/^[cC][^\s-]{8,}$/,gor=/^[0-9a-z]+$/,yor=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Sor=/^[0-9a-vA-V]{20}$/,Eor=/^[A-Za-z0-9]{27}$/,bor=/^[a-zA-Z0-9_-]{21}$/,_or=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Tor=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,v0t=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/,vor=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Aor="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";wor=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,kor=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,Ior=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,xor=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Oor=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,UOt=/^[A-Za-z0-9_-]*$/,Nor=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,Por=/^\+(?:[0-9]){6,14}[0-9]$/,FOt="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Cor=new RegExp(`^${FOt}$`);Dor=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Uor=/^\d+$/,For=/^-?\d+(?:\.\d+)?/i,jor=/true|false/i,Hor=/null/i,qor=/^[^A-Z]*$/,Bor=/^[^a-z]*$/,Qu=ge("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),HOt={number:"number",bigint:"bigint",object:"date"},qOt=ge("$ZodCheckLessThan",(e,t)=>{Qu.init(e,t);let n=HOt[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?r.value<=t.value:r.value{Qu.init(e,t);let n=HOt[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?i.minimum=t.value:i.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Gor=ge("$ZodCheckMultipleOf",(e,t)=>{Qu.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):ROt(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),zor=ge("$ZodCheckNumberFormat",(e,t)=>{Qu.init(e,t),t.format=t.format||"float64";let n=t.format?.includes("int"),r=n?"int":"number",[i,s]=xOt[t.format];e._zod.onattach.push(o=>{let a=o._zod.bag;a.format=t.format,a.minimum=i,a.maximum=s,n&&(a.pattern=Uor)}),e._zod.check=o=>{let a=o.value;if(n){if(!Number.isInteger(a)){o.issues.push({expected:r,format:t.format,code:"invalid_type",input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?o.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort}):o.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort});return}}as&&o.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inst:e})}}),Vor=ge("$ZodCheckMaxLength",(e,t)=>{Qu.init(e,t),e._zod.when=n=>{let r=n.value;return!G6(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=V6(r);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Wor=ge("$ZodCheckMinLength",(e,t)=>{Qu.init(e,t),e._zod.when=n=>{let r=n.value;return!G6(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=V6(r);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Kor=ge("$ZodCheckLengthEquals",(e,t)=>{Qu.init(e,t),e._zod.when=n=>{let r=n.value;return!G6(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=V6(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})}}),K6=ge("$ZodCheckStringFormat",(e,t)=>{var n,r;Qu.init(e,t),e._zod.onattach.push(i=>{let s=i._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Zor=ge("$ZodCheckRegex",(e,t)=>{K6.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})}}),Yor=ge("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=qor),K6.init(e,t)}),Jor=ge("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Bor),K6.init(e,t)}),Xor=ge("$ZodCheckIncludes",(e,t)=>{Qu.init(e,t);let n=V0(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(i=>{let s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),Qor=ge("$ZodCheckStartsWith",(e,t)=>{Qu.init(e,t);let n=new RegExp(`^${V0(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),$or=ge("$ZodCheckEndsWith",(e,t)=>{Qu.init(e,t);let n=new RegExp(`.*${V0(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),ear=ge("$ZodCheckOverwrite",(e,t)=>{Qu.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}}),iTe=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}),orr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),vOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=aE(),i=lr(),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}),arr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Z5(),n=bp(),r=lr(),i=vOt(),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}),crr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=lr(),i=lr(),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}),urr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lr(),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}),lrr=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}),drr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),frr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lr(),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}),prr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),hrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lr(),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}),mrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_Ot(),n=nrr(),r=TOt(),i=rrr(),s=irr(),o=srr(),a=orr(),c=vOt(),u=arr(),l=crr(),d=urr(),f=lrr(),p=drr(),h=frr(),m=prr(),g=hrr();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}),grr=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}),yrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=grr(),n=[t.default];e.default=n}),Srr=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"]}),brr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=znr(),n=trr(),r=mrr(),i=yrr(),s=Srr(),o=[t.default,n.default,(0,r.default)(),i.default,s.metadataVocabulary,s.contentVocabulary];e.default=o}),Err=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={}))}),_rr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=Err(),r=DTe(),i=J5(),s=lr(),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}}),ROt=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=Hnr(),r=brr(),i=_rr(),s=Trr(),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=Z5();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=MTe();Object.defineProperty(e,"ValidationError",{enumerable:!0,get:function(){return d.default}});var f=J5();Object.defineProperty(e,"MissingRefError",{enumerable:!0,get:function(){return f.default}})}),vrr=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}}}),Rrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatLimitDefinition=void 0;var t=ROt(),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}),Arr=Xe((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=vrr(),r=Rrr(),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}),Irr=50;Nrr=typeof global=="object"&&global&&global.Object===Object&&global,Crr=Nrr,Mrr=typeof self=="object"&&self&&self.Object===Object&&self,Drr=Crr||Mrr||Function("return this")(),FTe=Drr,Lrr=FTe.Symbol,P5=Lrr,AOt=Object.prototype,Urr=AOt.hasOwnProperty,Frr=AOt.toString,vU=P5?P5.toStringTag:void 0;Hrr=jrr,qrr=Object.prototype,Brr=qrr.toString;Grr=zrr,Vrr="[object Null]",Wrr="[object Undefined]",kxt=P5?P5.toStringTag:void 0;Yrr=Krr;wOt=Zrr,Jrr="[object AsyncFunction]",Xrr="[object Function]",Qrr="[object GeneratorFunction]",$rr="[object Proxy]";tir=eir,nir=FTe["__core-js_shared__"],K_e=nir,Ixt=(function(){var e=/[^.]+$/.exec(K_e&&K_e.keys&&K_e.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();iir=rir,sir=Function.prototype,oir=sir.toString;cir=air,uir=/[\\^$.*+?()[\]{}|]/g,lir=/^\[object .+?Constructor\]$/,dir=Function.prototype,fir=Object.prototype,pir=dir.toString,hir=fir.hasOwnProperty,mir=RegExp("^"+pir.call(hir).replace(uir,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");yir=gir;bir=Sir;kOt=Eir,_ir=kOt(Object,"create"),PU=_ir;vir=Tir;Air=Rir,wir="__lodash_hash_undefined__",kir=Object.prototype,Iir=kir.hasOwnProperty;Oir=xir,Pir=Object.prototype,Nir=Pir.hasOwnProperty;Mir=Cir,Dir="__lodash_hash_undefined__";Uir=Lir;Qx.prototype.clear=vir;Qx.prototype.delete=Air;Qx.prototype.get=Oir;Qx.prototype.has=Mir;Qx.prototype.set=Uir;xxt=Qx;jir=Fir;qir=Hir;X5=Bir,zir=Array.prototype,Gir=zir.splice;Wir=Vir;Yir=Kir;Jir=Zir;Qir=Xir;$x.prototype.clear=jir;$x.prototype.delete=Wir;$x.prototype.get=Yir;$x.prototype.has=Jir;$x.prototype.set=Qir;$ir=$x,esr=kOt(FTe,"Map"),tsr=esr;rsr=nsr;ssr=isr;Q5=osr;csr=asr;lsr=usr;fsr=dsr;hsr=psr;eO.prototype.clear=rsr;eO.prototype.delete=csr;eO.prototype.get=lsr;eO.prototype.has=fsr;eO.prototype.set=hsr;IOt=eO,msr="Expected a function";jTe.Cache=IOt;VU=jTe,Oxt=2e3;ysr=VU(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}});Y_e=15e4,v5=3e4;wsr=POt("BASH_MAX_OUTPUT_LENGTH"),QPi=POt("TASK_MAX_OUTPUT_LENGTH"),ksr={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"}}};xsr=Isr();Nxt=new Set;NOt=1/0;MOt=(e,t)=>{let n=typeof e=="string"?e.length:0;return COt(`JSON.parse(${n} chars)`,()=>JSON.parse(e,t))},Msr=VU(()=>Pxt(process.env.DEBUG)||Pxt(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||DOt()||process.argv.some(e=>e.startsWith("--debug="))),Dsr=VU(()=>{let e=process.argv.find(n=>n.startsWith("--debug="));if(!e)return null;let t=e.substring(8);return ysr(t)}),DOt=VU(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));Usr=!1,R5=null;jsr=VU(()=>{if(process.argv[2]!=="--ripgrep")try{let e=LOt(),t=rTe(e),n=OOt(t,"latest");if(Xg().existsSync(t)||Xg().mkdirSync(t),Xg().existsSync(n))try{Xg().unlinkSync(n)}catch{}Xg().symlinkSync(e,n)}catch{}});Hsr={cwd(){return process.cwd()},existsSync(e){return fo(`existsSync(${e})`,()=>Zt.existsSync(e))},async stat(e){return Prr(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)}},qsr=Hsr;Bsr=["PreToolUse","PostToolUse","PostToolUseFailure","Notification","UserPromptSubmit","SessionStart","SessionEnd","Stop","SubagentStart","SubagentStop","PreCompact","PermissionRequest"],zsr=["clear","logout","prompt_input_exit","other","bypass_permissions_disabled"],rE=class extends Error{};A5=null,Mxt=!1;N5=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(t){this.options=t,this.abortController=t.abortController||UTe(),this.initialize()}getDefaultExecutable(){return HTe()?"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=xrr(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();Qv(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",sm(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",sm({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=Zsr(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)Qv(`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)}Qv(`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 rE("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${F.message}`),Qv(this.exitError.message))}),this.process.on("exit",(F,V)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new rE("Claude Code process aborted by user");else{let U=this.getProcessExitError(F,V);U&&(this.exitError=U,Qv(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 rE("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}`);Qv(`[ProcessTransport] Writing to stdin: ${t.substring(0,100)}`);try{this.processStdin.write(t)||Qv("[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=Orr({input:this.processStdout});try{for await(let n of t)n.trim()&&(yield MOt(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 rE("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)})})}};C5=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})}},iTe=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?.())}},M5=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new C5;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(sm(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(sm(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(sm(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(sm(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 rE))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 iTe(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:Xsr(),request:{subtype:"mcp_message",server_name:t,message:n}};this.transport.write(sm(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}})}},D5=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 C5;let n=t.pathToClaudeCodeExecutable;if(!n){let s=Qsr(import.meta.url),o=Dxt(s,"..");n=Dxt(o,"cli.js")}let r={...t.env??process.env};r.CLAUDE_CODE_ENTRYPOINT||(r.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),this.abortController=UTe();let i=new N5({abortController:this.abortController,pathToClaudeCodeExecutable:n,env:r,executable:t.executable??(HTe()?"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 M5(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})})(Lxt||(Lxt={}));nt=ir.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),nE=e=>{switch(typeof e){case"undefined":return nt.undefined;case"string":return nt.string;case"number":return Number.isNaN(e)?nt.nan:nt.number;case"boolean":return nt.boolean;case"function":return nt.function;case"bigint":return nt.bigint;case"symbol":return nt.symbol;case"object":return Array.isArray(e)?nt.array:e===null?nt.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?nt.promise:typeof Map<"u"&&e instanceof Map?nt.map:typeof Set<"u"&&e instanceof Set?nt.set:typeof Date<"u"&&e instanceof Date?nt.date:nt.object;default:return nt.unknown}},Oe=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);eor=(e,t)=>{let n;switch(e.code){case Oe.invalid_type:e.received===nt.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case Oe.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,ir.jsonStringifyReplacer)}`;break;case Oe.unrecognized_keys:n=`Unrecognized key(s) in object: ${ir.joinValues(e.keys,", ")}`;break;case Oe.invalid_union:n="Invalid input";break;case Oe.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${ir.joinValues(e.options)}`;break;case Oe.invalid_enum_value:n=`Invalid enum value. Expected ${ir.joinValues(e.options)}, received '${e.received}'`;break;case Oe.invalid_arguments:n="Invalid function arguments";break;case Oe.invalid_return_type:n="Invalid function return type";break;case Oe.invalid_date:n="Invalid date";break;case Oe.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:ir.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case Oe.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case Oe.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case Oe.custom:n="Invalid input";break;case Oe.invalid_intersection_types:n="Intersection results could not be merged";break;case Oe.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Oe.not_finite:n="Number must be finite";break;default:n=t.defaultError,ir.assertNever(e)}return{message:n}},NU=eor,tor=NU;oTe=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"}),wU=e=>({status:"dirty",value:e}),Xu=e=>({status:"valid",value:e}),Uxt=e=>e.status==="aborted",Fxt=e=>e.status==="dirty",Fx=e=>e.status==="valid",L5=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}},jxt=(e,t)=>{if(Fx(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 nE(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:nE(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:nE(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(L5(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:nE(t)},i=this._parseSync({data:t,path:r.path,parent:r});return jxt(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:nE(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return Fx(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=>Fx(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:nE(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(L5(i)?i:Promise.resolve(i));return jxt(r,s)}refine(t,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{let o=t(i),a=()=>s.addIssue({code:Oe.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new 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 oE.create(this)}promise(){return eR.create(this,this._def)}or(t){return Bx.create([this,t],this._def)}and(t){return zx.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 Yx({...ln(this._def),innerType:this,defaultValue:n,typeName:De.ZodDefault})}brand(){return new U5({typeName:De.ZodBranded,type:this,...ln(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Zx({...ln(this._def),innerType:this,catchValue:n,typeName:De.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return F5.create(this,t)}readonly(){return Jx.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},nor=/^c[^\s-]{8,}$/i,ror=/^[0-9a-z]+$/,ior=/^[0-9A-HJKMNP-TV-Z]{26}$/i,sor=/^[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,oor=/^[a-z0-9_-]{21}$/i,aor=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,cor=/^[-+]?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)?)??$/,uor=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,lor="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",dor=/^(?:(?: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])$/,por=/^(?:(?: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])$/,hor=/^(([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]))$/,mor=/^(([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])$/,gor=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,yor=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,FOt="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Sor=new RegExp(`^${FOt}$`);jx=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:Oe.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:Oe.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let o=t.data.length>s.value,a=t.data.lengtht.test(i),{validation:n,code:Oe.invalid_string,...lt.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...lt.errToObj(t)})}url(t){return this._addCheck({kind:"url",...lt.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...lt.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...lt.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...lt.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...lt.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...lt.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...lt.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...lt.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...lt.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...lt.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...lt.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...lt.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...lt.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...lt.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...lt.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...lt.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...lt.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...lt.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...lt.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...lt.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...lt.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...lt.errToObj(n)})}nonempty(t){return this.min(1,lt.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew jx({checks:[],typeName:De.ZodString,coerce:e?.coerce??!1,...ln(e)});CU=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:Oe.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:Oe.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?Ror(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.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 CU({checks:[],typeName:De.ZodNumber,coerce:e?.coerce||!1,...ln(e)});MU=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:Oe.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.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:Oe.invalid_type,expected:nt.bigint,received:n.parsedType}),Vt}gte(t,n){return this.setLimit("min",t,!0,lt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,lt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,lt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,lt.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lt.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:lt.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew MU({checks:[],typeName:De.ZodBigInt,coerce:e?.coerce??!1,...ln(e)});DU=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:Oe.invalid_type,expected:nt.boolean,received:r.parsedType}),Vt}return Xu(t.data)}};DU.create=e=>new DU({typeName:De.ZodBoolean,coerce:e?.coerce||!1,...ln(e)});LU=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:Oe.invalid_type,expected:nt.date,received:s.parsedType}),Vt}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return Ye(s,{code:Oe.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:Oe.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 LU({checks:[],coerce:e?.coerce||!1,typeName:De.ZodDate,...ln(e)});UU=class extends Tn{_parse(t){if(this._getType(t)!==nt.symbol){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.symbol,received:r.parsedType}),Vt}return Xu(t.data)}};UU.create=e=>new UU({typeName:De.ZodSymbol,...ln(e)});Hx=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.undefined,received:r.parsedType}),Vt}return Xu(t.data)}};Hx.create=e=>new Hx({typeName:De.ZodUndefined,...ln(e)});qx=class extends Tn{_parse(t){if(this._getType(t)!==nt.null){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.null,received:r.parsedType}),Vt}return Xu(t.data)}};qx.create=e=>new qx({typeName:De.ZodNull,...ln(e)});FU=class extends Tn{constructor(){super(...arguments),this._any=!0}_parse(t){return Xu(t.data)}};FU.create=e=>new FU({typeName:De.ZodAny,...ln(e)});sE=class extends Tn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Xu(t.data)}};sE.create=e=>new sE({typeName:De.ZodUnknown,...ln(e)});am=class extends Tn{_parse(t){let n=this._getOrReturnCtx(t);return Ye(n,{code:Oe.invalid_type,expected:nt.never,received:n.parsedType}),Vt}};am.create=e=>new am({typeName:De.ZodNever,...ln(e)});jU=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.void,received:r.parsedType}),Vt}return Xu(t.data)}};jU.create=e=>new jU({typeName:De.ZodVoid,...ln(e)});oE=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:Oe.invalid_type,expected:nt.array,received:n.parsedType}),Vt;if(i.exactLength!==null){let o=n.data.length>i.exactLength.value,a=n.data.lengthi.maxLength.value&&(Ye(n,{code:Oe.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,a)=>i.type._parseAsync(new 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)}};oE.create=(e,t)=>new oE({type:e,minLength:null,maxLength:null,exactLength:null,typeName:De.ZodArray,...ln(t)});jl=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:Oe.invalid_type,expected:nt.object,received:u.parsedType}),Vt}let{status:r,ctx:i}=this._processInputParams(t),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof am&&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 am){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:Oe.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new 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 Dx(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 HOt(ir.objectKeys(this.shape))}};jl.create=(e,t)=>new jl({shape:()=>e,unknownKeys:"strip",catchall:am.create(),typeName:De.ZodObject,...ln(t)});jl.strictCreate=(e,t)=>new jl({shape:()=>e,unknownKeys:"strict",catchall:am.create(),typeName:De.ZodObject,...ln(t)});jl.lazycreate=(e,t)=>new jl({shape:e,unknownKeys:"strip",catchall:am.create(),typeName:De.ZodObject,...ln(t)});Bx=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:Oe.invalid_union,unionErrors:o}),Vt}if(n.common.async)return Promise.all(r.map(async s=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of r){let u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new Zd(c));return Ye(n,{code:Oe.invalid_union,unionErrors:a}),Vt}}get options(){return this._def.options}};Bx.create=(e,t)=>new Bx({options:e,typeName:De.ZodUnion,...ln(t)});Yg=e=>e instanceof Gx?Yg(e.schema):e instanceof gp?Yg(e.innerType()):e instanceof Vx?[e.value]:e instanceof Wx?e.options:e instanceof Kx?ir.objectValues(e.enum):e instanceof Yx?Yg(e._def.innerType):e instanceof Hx?[void 0]:e instanceof qx?[null]:e instanceof mp?[void 0,...Yg(e.unwrap())]:e instanceof $g?[null,...Yg(e.unwrap())]:e instanceof U5||e instanceof Jx?Yg(e.unwrap()):e instanceof Zx?Yg(e._def.innerType):[],aTe=class e extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.object)return Ye(n,{code:Oe.invalid_type,expected:nt.object,received:n.parsedType}),Vt;let r=this.discriminator,i=n.data[r],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(Ye(n,{code:Oe.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Vt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let s of n){let o=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)})}};zx=class extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(Uxt(s)||Uxt(o))return Vt;let a=cTe(s.value,o.value);return a.valid?((Fxt(s)||Fxt(o))&&n.dirty(),{status:n.value,value:a.data}):(Ye(r,{code:Oe.invalid_intersection_types}),Vt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};zx.create=(e,t,n)=>new zx({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:Oe.invalid_type,expected:nt.array,received:r.parsedType}),Vt;if(r.data.lengththis._def.items.length&&(Ye(r,{code:Oe.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new 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)})};uTe=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:Oe.invalid_type,expected:nt.object,received:r.parsedType}),Vt;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in r.data)i.push({key:s._parse(new 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:jx.create(),valueType:t,typeName:De.ZodRecord,...ln(n)})}},HU=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:Oe.invalid_type,expected:nt.map,received:r.parsedType}),Vt;let i=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([a,c],u)=>({key:i._parse(new 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}}}};HU.create=(e,t,n)=>new HU({valueType:t,keyType:e,typeName:De.ZodMap,...ln(n)});qU=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.set)return Ye(r,{code:Oe.invalid_type,expected:nt.set,received:r.parsedType}),Vt;let i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(Ye(r,{code:Oe.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Vt;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((c,u)=>s._parse(new 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)}};qU.create=(e,t)=>new qU({valueType:e,minSize:null,maxSize:null,typeName:De.ZodSet,...ln(t)});lTe=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:Oe.invalid_type,expected:nt.function,received:n.parsedType}),Vt;function r(a,c){return oTe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,sTe(),NU].filter(u=>!!u),issueData:{code:Oe.invalid_arguments,argumentsError:c}})}function i(a,c){return oTe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,sTe(),NU].filter(u=>!!u),issueData:{code:Oe.invalid_return_type,returnTypeError:c}})}let s={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof eR){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(sE.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(sE.create()),returns:n||sE.create(),typeName:De.ZodFunction,...ln(r)})}},Gx=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})}};Gx.create=(e,t)=>new Gx({getter:e,typeName:De.ZodLazy,...ln(t)});Vx=class extends Tn{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return Ye(n,{received:n.data,code:Oe.invalid_literal,expected:this._def.value}),Vt}return{status:"valid",value:t.data}}get value(){return this._def.value}};Vx.create=(e,t)=>new Vx({value:e,typeName:De.ZodLiteral,...ln(t)});Wx=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:Oe.invalid_type}),Vt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return Ye(n,{received:n.data,code:Oe.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})}};Wx.create=HOt;Kx=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:Oe.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:Oe.invalid_enum_value,options:i}),Vt}return Xu(t.data)}get enum(){return this._def.values}};Kx.create=(e,t)=>new Kx({values:e,typeName:De.ZodNativeEnum,...ln(t)});eR=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:Oe.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})))}};eR.create=(e,t)=>new eR({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"?wU(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"?wU(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(!Fx(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=>Fx(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)});Yx=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}};Yx.create=(e,t)=>new Yx({innerType:e,typeName:De.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...ln(t)});Zx=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return L5(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Zd(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Zd(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Zx.create=(e,t)=>new Zx({innerType:e,typeName:De.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...ln(t)});BU=class extends Tn{_parse(t){if(this._getType(t)!==nt.nan){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.nan,received:r.parsedType}),Vt}return{status:"valid",value:t.data}}};BU.create=e=>new BU({typeName:De.ZodNaN,...ln(e)});U5=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}},F5=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(),wU(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})}},Jx=class extends Tn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(Fx(i)&&(i.value=Object.freeze(i.value)),i);return L5(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};Jx.create=(e,t)=>new Jx({innerType:e,typeName:De.ZodReadonly,...ln(t)});sNi={object:jl.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={}));oNi=jx.create,aNi=CU.create,cNi=BU.create,uNi=MU.create,lNi=DU.create,dNi=LU.create,fNi=UU.create,pNi=Hx.create,hNi=qx.create,mNi=FU.create,gNi=sE.create,yNi=am.create,SNi=jU.create,bNi=oE.create,Aor=jl.create,ENi=jl.strictCreate,_Ni=Bx.create,TNi=aTe.create,vNi=zx.create,RNi=Qg.create,ANi=uTe.create,wNi=HU.create,kNi=qU.create,INi=lTe.create,xNi=Gx.create,ONi=Vx.create,PNi=Wx.create,NNi=Kx.create,CNi=eR.create,MNi=gp.create,DNi=mp.create,LNi=$g.create,UNi=gp.createWithPreprocess,FNi=F5.create,jNi=Object.freeze({status:"aborted"});tR=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},dTe={};Gr={};yOt(Gr,{unwrapMessage:()=>kU,stringifyPrimitive:()=>GTe,required:()=>Gor,randomString:()=>Cor,propertyKeyTypes:()=>GOt,promiseAllObject:()=>Nor,primitiveTypes:()=>Lor,prefixIssues:()=>iE,pick:()=>jor,partial:()=>zor,optionalKeys:()=>VOt,omit:()=>Hor,numKeys:()=>Mor,nullish:()=>e8,normalizeParams:()=>Ht,merge:()=>Bor,jsonStringifyReplacer:()=>qOt,joinValues:()=>fTe,issue:()=>KOt,isPlainObject:()=>GU,isObject:()=>zU,getSizableOrigin:()=>Vor,getParsedType:()=>Dor,getLengthableOrigin:()=>n8,getEnumValues:()=>qTe,getElementAtPath:()=>Por,floatSafeRemainder:()=>BOt,finalizeIssue:()=>ty,extend:()=>qor,escapeRegex:()=>tO,esc:()=>Lx,defineLazy:()=>ki,createTransparentProxy:()=>Uor,clone:()=>ny,cleanRegex:()=>t8,cleanEnum:()=>Wor,captureStackTrace:()=>zTe,cached:()=>$5,assignProp:()=>BTe,assertNotEqual:()=>kor,assertNever:()=>xor,assertIs:()=>Ior,assertEqual:()=>wor,assert:()=>Oor,allowsEval:()=>zOt,aborted:()=>Ux,NUMBER_FORMAT_RANGES:()=>WOt,Class:()=>pTe,BIGINT_FORMAT_RANGES:()=>For});zTe=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};zOt=$5(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});Dor=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}`)}},GOt=new Set(["string","number","symbol"]),Lor=new Set(["string","number","bigint","boolean","symbol","undefined"]);WOt={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]},For={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};pTe=class{constructor(...t){}},YOt=(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,qOt,2)},enumerable:!0})},ZOt=ge("$ZodError",YOt),r8=ge("$ZodError",YOt,{Parent:Error});JOt=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 tR;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>ty(c,s,ey())));throw zTe(a,i?.callee),a}return o.value},Zor=JOt(r8),XOt=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 zTe(a,i?.callee),a}return o.value},Jor=XOt(r8),QOt=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 tR;return s.issues.length?{success:!1,error:new(e??ZOt)(s.issues.map(o=>ty(o,i,ey())))}:{success:!0,data:s.value}},VTe=QOt(r8),$Ot=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}},WTe=$Ot(r8),Xor=/^[cC][^\s-]{8,}$/,Qor=/^[0-9a-z]+$/,$or=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,ear=/^[0-9a-vA-V]{20}$/,tar=/^[A-Za-z0-9]{27}$/,nar=/^[a-zA-Z0-9_-]{21}$/,rar=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,iar=/^([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})$/,Hxt=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)$/,sar=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,oar="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";car=/^(?:(?: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])$/,uar=/^(([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})$/,lar=/^((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])$/,dar=/^(([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])$/,far=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,ePt=/^[A-Za-z0-9_-]*$/,par=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,har=/^\+(?:[0-9]){6,14}[0-9]$/,tPt="(?:(?:\\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])))",mar=new RegExp(`^${tPt}$`);Sar=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},bar=/^\d+$/,Ear=/^-?\d+(?:\.\d+)?/i,_ar=/true|false/i,Tar=/null/i,Rar=/^[^A-Z]*$/,Aar=/^[^a-z]*$/,$u=ge("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),rPt={number:"number",bigint:"bigint",object:"date"},iPt=ge("$ZodCheckLessThan",(e,t)=>{$u.init(e,t);let n=rPt[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=rPt[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})}}),war=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):BOt(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})}}),kar=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]=WOt[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=bar)}),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})}}),Iar=ge("$ZodCheckMaxLength",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!e8(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=n8(r);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),xar=ge("$ZodCheckMinLength",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!e8(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=n8(r);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Oar=ge("$ZodCheckLengthEquals",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!e8(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=n8(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})}}),i8=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=()=>{})}),Par=ge("$ZodCheckRegex",(e,t)=>{i8.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})}}),Nar=ge("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Rar),i8.init(e,t)}),Car=ge("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Aar),i8.init(e,t)}),Mar=ge("$ZodCheckIncludes",(e,t)=>{$u.init(e,t);let n=tO(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})}}),Dar=ge("$ZodCheckStartsWith",(e,t)=>{$u.init(e,t);let n=new RegExp(`^${tO(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})}}),Lar=ge("$ZodCheckEndsWith",(e,t)=>{$u.init(e,t);let n=new RegExp(`.*${tO(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})}}),Uar=ge("$ZodCheckOverwrite",(e,t)=>{$u.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}}),hTe=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(` -`))}},tar={major:4,minor:0,patch:0},li=ge("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=tar;let r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(let i of r)for(let s of i._zod.onattach)s(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(s,o,a)=>{let c=k0(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=k0(s,d)))});else{if(s.issues.length===d)continue;c||(c=k0(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=LTe(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return DTe(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),UTe=ge("$ZodString",(e,t)=>{li.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Dor(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)=>{K6.init(e,t),UTe.init(e,t)}),nar=ge("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Tor),zi.init(e,t)}),rar=ge("$ZodUUID",(e,t)=>{if(t.version){let r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=v0t(r))}else t.pattern??(t.pattern=v0t());zi.init(e,t)}),iar=ge("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=vor),zi.init(e,t)}),sar=ge("$ZodURL",(e,t)=>{zi.init(e,t),e._zod.check=n=>{try{let r=n.value,i=new URL(r),s=i.href;t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:Nor.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),!r.endsWith("/")&&s.endsWith("/")?n.value=s.slice(0,-1):n.value=s;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),oar=ge("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Ror()),zi.init(e,t)}),aar=ge("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=bor),zi.init(e,t)}),car=ge("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=mor),zi.init(e,t)}),uar=ge("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=gor),zi.init(e,t)}),lar=ge("$ZodULID",(e,t)=>{t.pattern??(t.pattern=yor),zi.init(e,t)}),dar=ge("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Sor),zi.init(e,t)}),far=ge("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Eor),zi.init(e,t)}),par=ge("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Lor(t)),zi.init(e,t)}),har=ge("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Cor),zi.init(e,t)}),mar=ge("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Mor(t)),zi.init(e,t)}),gar=ge("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=_or),zi.init(e,t)}),yar=ge("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=wor),zi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),Sar=ge("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=kor),zi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv6"}),e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),Ear=ge("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Ior),zi.init(e,t)}),bar=ge("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=xor),zi.init(e,t),e._zod.check=n=>{let[r,i]=n.value.split("/");try{if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${r}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});_ar=ge("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Oor),zi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{GOt(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});Aar=ge("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=UOt),zi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{Tar(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Rar=ge("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Por),zi.init(e,t)});kar=ge("$ZodJWT",(e,t)=>{zi.init(e,t),e._zod.check=n=>{war(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),zOt=ge("$ZodNumber",(e,t)=>{li.init(e,t),e._zod.pattern=e._zod.bag.pattern??For,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;let s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...s?{received:s}:{}}),n}}),Iar=ge("$ZodNumber",(e,t)=>{zor.init(e,t),zOt.init(e,t)}),xar=ge("$ZodBoolean",(e,t)=>{li.init(e,t),e._zod.pattern=jor,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),Oar=ge("$ZodNull",(e,t)=>{li.init(e,t),e._zod.pattern=Hor,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{let i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),n}}),Nar=ge("$ZodUnknown",(e,t)=>{li.init(e,t),e._zod.parse=n=>n}),Par=ge("$ZodNever",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});Car=ge("$ZodArray",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);let s=[];for(let o=0;oA0t(u,n,o))):A0t(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});VOt=ge("$ZodObject",(e,t)=>{li.init(e,t);let n=B6(()=>{let d=Object.keys(t.shape);for(let p of d)if(!(t.shape[p]instanceof li))throw new Error(`Invalid element at key "${p}": expected a Zod schema`);let f=IOt(t.shape);return{shape:t.shape,keys:d,keySet:new Set(d),numKeys:d.length,optionalKeys:new Set(f)}});ki(e._zod,"propValues",()=>{let d=t.shape,f={};for(let p in d){let h=d[p]._zod;if(h.values){f[p]??(f[p]=new Set);for(let m of h.values)f[p].add(m)}}return f});let r=d=>{let f=new iTe(["shape","payload","ctx"]),p=n.value,h=E=>{let S=w0(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=w0(E);f.write(` +`))}},Far={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=Far;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=Ux(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 tR;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=Ux(s,d)))});else{if(s.issues.length===d)continue;c||(c=Ux(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 tR;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=VTe(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return WTe(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),KTe=ge("$ZodString",(e,t)=>{li.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Sar(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)=>{i8.init(e,t),KTe.init(e,t)}),jar=ge("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=iar),Gi.init(e,t)}),Har=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=Hxt(r))}else t.pattern??(t.pattern=Hxt());Gi.init(e,t)}),qar=ge("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=sar),Gi.init(e,t)}),Bar=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:par.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})}}}),zar=ge("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=aar()),Gi.init(e,t)}),Gar=ge("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=nar),Gi.init(e,t)}),Var=ge("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Xor),Gi.init(e,t)}),War=ge("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Qor),Gi.init(e,t)}),Kar=ge("$ZodULID",(e,t)=>{t.pattern??(t.pattern=$or),Gi.init(e,t)}),Yar=ge("$ZodXID",(e,t)=>{t.pattern??(t.pattern=ear),Gi.init(e,t)}),Zar=ge("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=tar),Gi.init(e,t)}),Jar=ge("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=yar(t)),Gi.init(e,t)}),Xar=ge("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=mar),Gi.init(e,t)}),Qar=ge("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=gar(t)),Gi.init(e,t)}),$ar=ge("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=rar),Gi.init(e,t)}),ecr=ge("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=car),Gi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),tcr=ge("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=uar),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})}}}),ncr=ge("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=lar),Gi.init(e,t)}),rcr=ge("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=dar),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})}}});icr=ge("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=far),Gi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{oPt(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});ocr=ge("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=ePt),Gi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{scr(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),acr=ge("$ZodE164",(e,t)=>{t.pattern??(t.pattern=har),Gi.init(e,t)});ucr=ge("$ZodJWT",(e,t)=>{Gi.init(e,t),e._zod.check=n=>{ccr(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),aPt=ge("$ZodNumber",(e,t)=>{li.init(e,t),e._zod.pattern=e._zod.bag.pattern??Ear,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}}),lcr=ge("$ZodNumber",(e,t)=>{kar.init(e,t),aPt.init(e,t)}),dcr=ge("$ZodBoolean",(e,t)=>{li.init(e,t),e._zod.pattern=_ar,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}}),fcr=ge("$ZodNull",(e,t)=>{li.init(e,t),e._zod.pattern=Tar,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}}),pcr=ge("$ZodUnknown",(e,t)=>{li.init(e,t),e._zod.parse=n=>n}),hcr=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)});mcr=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;oqxt(u,n,o))):qxt(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});cPt=ge("$ZodObject",(e,t)=>{li.init(e,t);let n=$5(()=>{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=VOt(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 hTe(["shape","payload","ctx"]),p=n.value,h=b=>{let S=Lx(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=Lx(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 ? [${w0(E)}, ...iss.path] : [${w0(E)}] - })));`),f.write(`newResult[${w0(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=LU,o=!tTe.jitless,c=o&&wOt.value,u=t.catchall,l;e._zod.parse=(d,f)=>{l??(l=n.value);let p=d.value;if(!s(p))return d.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),d;let h=[];if(o&&c&&f?.async===!1&&f.jitless!==!0)i||(i=r(t.shape)),d=i(d,f);else{d.value={};let S=l.shape;for(let 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?R0t(R,d,b,p):m6(R,d,b))):A?R0t(T,d,b,p):m6(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(_=>m6(_,d,S))):m6(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}});WOt=ge("$ZodUnion",(e,t)=>{li.init(e,t),ki(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),ki(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),ki(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),ki(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){let n=t.options.map(r=>r._zod.pattern);return new RegExp(`^(${n.map(r=>z6(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=>w0t(o,n,e,r)):w0t(s,n,e,r)}}),Mar=ge("$ZodDiscriminatedUnion",(e,t)=>{WOt.init(e,t);let n=e._zod.parse;ki(e._zod,"propValues",()=>{let i={};for(let s of t.options){let o=s._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(let[a,c]of Object.entries(o)){i[a]||(i[a]=new Set);for(let u of c)i[a].add(u)}}return i});let r=B6(()=>{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(!LU(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)}}),Lar=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])=>k0t(n,c,u)):k0t(n,s,o)}});Dar=ge("$ZodRecord",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!DU(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(...tb(c,l.issues)),n.value[c]=l.value})):(u.issues.length&&n.issues.push(...tb(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(...tb(o,u.issues)),n.value[a.value]=u.value})):(c.issues.length&&n.issues.push(...tb(o,c.issues)),n.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),Uar=ge("$ZodEnum",(e,t)=>{li.init(e,t);let n=NTe(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>kOt.has(typeof r)).map(r=>typeof r=="string"?V0(r):r.toString()).join("|")})$`),e._zod.parse=(r,i)=>{let s=r.value;return e._zod.values.has(s)||r.issues.push({code:"invalid_value",values:n,input:s,inst:e}),r}}),Far=ge("$ZodLiteral",(e,t)=>{li.init(e,t),e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?V0(n):n?n.toString():String(n)).join("|")})$`),e._zod.parse=(n,r)=>{let i=n.value;return e._zod.values.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),jar=ge("$ZodTransform",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(n.value=o,n));if(i instanceof Promise)throw new Zv;return n.value=i,n}}),Har=ge("$ZodOptional",(e,t)=>{li.init(e,t),e._zod.optin="optional",e._zod.optout="optional",ki(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),ki(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${z6(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>t.innerType._zod.optin==="optional"?t.innerType._zod.run(n,r):n.value===void 0?n:t.innerType._zod.run(n,r)}),qar=ge("$ZodNullable",(e,t)=>{li.init(e,t),ki(e._zod,"optin",()=>t.innerType._zod.optin),ki(e._zod,"optout",()=>t.innerType._zod.optout),ki(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${z6(n.source)}|null)$`):void 0}),ki(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),Bar=ge("$ZodDefault",(e,t)=>{li.init(e,t),e._zod.optin="optional",ki(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(n.value===void 0)return n.value=t.defaultValue,n;let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>I0t(s,t)):I0t(i,t)}});Gar=ge("$ZodPrefault",(e,t)=>{li.init(e,t),e._zod.optin="optional",ki(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),zar=ge("$ZodNonOptional",(e,t)=>{li.init(e,t),ki(e._zod,"values",()=>{let n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>x0t(s,e)):x0t(i,e)}});Var=ge("$ZodCatch",(e,t)=>{li.init(e,t),e._zod.optin="optional",ki(e._zod,"optout",()=>t.innerType._zod.optout),ki(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(o=>ey(o,r,$g()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(s=>ey(s,r,$g()))},input:n.value}),n.issues=[]),n)}}),War=ge("$ZodPipe",(e,t)=>{li.init(e,t),ki(e._zod,"values",()=>t.in._zod.values),ki(e._zod,"optin",()=>t.in._zod.optin),ki(e._zod,"optout",()=>t.out._zod.optout),e._zod.parse=(n,r)=>{let i=t.in._zod.run(n,r);return i instanceof Promise?i.then(s=>O0t(s,t,r)):O0t(i,t,r)}});Kar=ge("$ZodReadonly",(e,t)=>{li.init(e,t),ki(e._zod,"propValues",()=>t.innerType._zod.propValues),ki(e._zod,"values",()=>t.innerType._zod.values),ki(e._zod,"optin",()=>t.innerType._zod.optin),ki(e._zod,"optout",()=>t.innerType._zod.optout),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(N0t):N0t(i)}});Zar=ge("$ZodCustom",(e,t)=>{Qu.init(e,t),li.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(s=>P0t(s,n,r,e));P0t(i,n,r,e)}});Yar=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 ${Yar(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${MTe(r.values[0])}`:`Invalid option: expected one of ${nTe(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":""}: ${nTe(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"}}};I6=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)}};bU=Qar();O6=class{constructor(t){this.counter=0,this.metadataRegistry=t?.metadata??bU,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=NTe(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"&&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 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 ? [${Lx(b)}, ...iss.path] : [${Lx(b)}] + })));`),f.write(`newResult[${Lx(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=zU,o=!dTe.jitless,c=o&&zOt.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?Bxt(A,d,E,p):w5(A,d,E))):R?Bxt(T,d,E,p):w5(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(_=>w5(_,d,S))):w5(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}});uPt=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=>t8(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=>zxt(o,n,e,r)):zxt(s,n,e,r)}}),gcr=ge("$ZodDiscriminatedUnion",(e,t)=>{uPt.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=$5(()=>{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(!zU(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)}}),ycr=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])=>Gxt(n,c,u)):Gxt(n,s,o)}});Scr=ge("$ZodRecord",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!GU(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;let s=[];if(t.keyType._zod.values){let o=t.keyType._zod.values;n.value={};for(let c of o)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&n.issues.push(...iE(c,l.issues)),n.value[c]=l.value})):(u.issues.length&&n.issues.push(...iE(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(...iE(o,u.issues)),n.value[a.value]=u.value})):(c.issues.length&&n.issues.push(...iE(o,c.issues)),n.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),bcr=ge("$ZodEnum",(e,t)=>{li.init(e,t);let n=qTe(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>GOt.has(typeof r)).map(r=>typeof r=="string"?tO(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}}),Ecr=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"?tO(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}}),_cr=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 tR;return n.value=i,n}}),Tcr=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(`^(${t8(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)}),vcr=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(`^(${t8(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)}),Rcr=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=>Vxt(s,t)):Vxt(i,t)}});Acr=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))}),wcr=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=>Wxt(s,e)):Wxt(i,e)}});kcr=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)}}),Icr=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=>Kxt(s,t,r)):Kxt(i,t,r)}});xcr=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(Yxt):Yxt(i)}});Ocr=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=>Zxt(s,n,r,e));Zxt(i,n,r,e)}});Pcr=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},Ncr=()=>{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 ${Pcr(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${GTe(r.values[0])}`:`Invalid option: expected one of ${fTe(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":""}: ${fTe(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"}}};j5=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)}};IU=Mcr();q5=class{constructor(t){this.counter=0,this.metadataRegistry=t?.metadata??IU,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=qTe(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.")}}};Vcr=ge("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");li.init(e,t),e.def=t,e.parse=(n,r)=>por(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>LTe(e,n,r),e.parseAsync=async(n,r)=>hor(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>DTe(e,n,r),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>ty(e,n,r),e.brand=()=>e,e.register=(n,r)=>(n.add(e,r),e)}),Wcr=ge("ZodMiniObject",(e,t)=>{VOt.init(e,t),Vcr.init(e,t),zr.defineLazy(e,"shape",()=>t.shape)});JOt={};eOt(JOt,{time:()=>nNt,duration:()=>iNt,datetime:()=>QOt,date:()=>eNt,ZodISOTime:()=>tNt,ZodISODuration:()=>rNt,ZodISODateTime:()=>XOt,ZodISODate:()=>$Ot});XOt=ge("ZodISODateTime",(e,t)=>{par.init(e,t),os.init(e,t)});$Ot=ge("ZodISODate",(e,t)=>{har.init(e,t),os.init(e,t)});tNt=ge("ZodISOTime",(e,t)=>{mar.init(e,t),os.init(e,t)});rNt=ge("ZodISODuration",(e,t)=>{gar.init(e,t),os.init(e,t)});sNt=(e,t)=>{POt.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>dor(e,n)},flatten:{value:n=>lor(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},ePi=ge("ZodError",sNt),Z6=ge("ZodError",sNt,{Parent:Error}),Ycr=COt(Z6),Jcr=MOt(Z6),Xcr=LOt(Z6),Qcr=DOt(Z6),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)=>Ycr(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Xcr(e,n,r),e.parseAsync=async(n,r)=>Jcr(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>Qcr(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(Bur(n,r)),e.superRefine=n=>e.check(Gur(n)),e.overwrite=n=>e.check(FU(n)),e.optional=()=>yt(e),e.nullable=()=>H0t(e),e.nullish=()=>yt(H0t(e)),e.nonoptional=n=>Mur(e,n),e.array=()=>er(e),e.or=n=>Vi([e,n]),e.and=n=>FTe(e,n),e.transform=n=>aTe(e,fNt(n)),e.default=n=>Nur(e,n),e.prefault=n=>Cur(e,n),e.catch=n=>Dur(e,n),e.pipe=n=>aTe(e,n),e.readonly=()=>jur(e),e.describe=n=>{let r=e.clone();return bU.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return bU.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return bU.get(e);let r=e.clone();return bU.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),oNt=ge("_ZodString",(e,t)=>{UTe.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(Ncr(...r)),e.includes=(...r)=>e.check(Mcr(...r)),e.startsWith=(...r)=>e.check(Lcr(...r)),e.endsWith=(...r)=>e.check(Dcr(...r)),e.min=(...r)=>e.check(x6(...r)),e.max=(...r)=>e.check(KOt(...r)),e.length=(...r)=>e.check(ZOt(...r)),e.nonempty=(...r)=>e.check(x6(1,...r)),e.lowercase=r=>e.check(Pcr(r)),e.uppercase=r=>e.check(Ccr(r)),e.trim=()=>e.check(Fcr()),e.normalize=(...r)=>e.check(Ucr(...r)),e.toLowerCase=()=>e.check(jcr()),e.toUpperCase=()=>e.check(Hcr())}),$cr=ge("ZodString",(e,t)=>{UTe.init(e,t),oNt.init(e,t),e.email=n=>e.check(ecr(eur,n)),e.url=n=>e.check(scr(tur,n)),e.jwt=n=>e.check(bcr(gur,n)),e.emoji=n=>e.check(ocr(nur,n)),e.guid=n=>e.check(C0t(F0t,n)),e.uuid=n=>e.check(tcr(g6,n)),e.uuidv4=n=>e.check(ncr(g6,n)),e.uuidv6=n=>e.check(rcr(g6,n)),e.uuidv7=n=>e.check(icr(g6,n)),e.nanoid=n=>e.check(acr(rur,n)),e.guid=n=>e.check(C0t(F0t,n)),e.cuid=n=>e.check(ccr(iur,n)),e.cuid2=n=>e.check(ucr(sur,n)),e.ulid=n=>e.check(lcr(our,n)),e.base64=n=>e.check(ycr(pur,n)),e.base64url=n=>e.check(Scr(hur,n)),e.xid=n=>e.check(dcr(aur,n)),e.ksuid=n=>e.check(fcr(cur,n)),e.ipv4=n=>e.check(pcr(uur,n)),e.ipv6=n=>e.check(hcr(lur,n)),e.cidrv4=n=>e.check(mcr(dur,n)),e.cidrv6=n=>e.check(gcr(fur,n)),e.e164=n=>e.check(Ecr(mur,n)),e.datetime=n=>e.check(QOt(n)),e.date=n=>e.check(eNt(n)),e.time=n=>e.check(nNt(n)),e.duration=n=>e.check(iNt(n))});os=ge("ZodStringFormat",(e,t)=>{zi.init(e,t),oNt.init(e,t)}),eur=ge("ZodEmail",(e,t)=>{iar.init(e,t),os.init(e,t)}),F0t=ge("ZodGUID",(e,t)=>{nar.init(e,t),os.init(e,t)}),g6=ge("ZodUUID",(e,t)=>{rar.init(e,t),os.init(e,t)}),tur=ge("ZodURL",(e,t)=>{sar.init(e,t),os.init(e,t)}),nur=ge("ZodEmoji",(e,t)=>{oar.init(e,t),os.init(e,t)}),rur=ge("ZodNanoID",(e,t)=>{aar.init(e,t),os.init(e,t)}),iur=ge("ZodCUID",(e,t)=>{car.init(e,t),os.init(e,t)}),sur=ge("ZodCUID2",(e,t)=>{uar.init(e,t),os.init(e,t)}),our=ge("ZodULID",(e,t)=>{lar.init(e,t),os.init(e,t)}),aur=ge("ZodXID",(e,t)=>{dar.init(e,t),os.init(e,t)}),cur=ge("ZodKSUID",(e,t)=>{far.init(e,t),os.init(e,t)}),uur=ge("ZodIPv4",(e,t)=>{yar.init(e,t),os.init(e,t)}),lur=ge("ZodIPv6",(e,t)=>{Sar.init(e,t),os.init(e,t)}),dur=ge("ZodCIDRv4",(e,t)=>{Ear.init(e,t),os.init(e,t)}),fur=ge("ZodCIDRv6",(e,t)=>{bar.init(e,t),os.init(e,t)}),pur=ge("ZodBase64",(e,t)=>{_ar.init(e,t),os.init(e,t)}),hur=ge("ZodBase64URL",(e,t)=>{Aar.init(e,t),os.init(e,t)}),mur=ge("ZodE164",(e,t)=>{Rar.init(e,t),os.init(e,t)}),gur=ge("ZodJWT",(e,t)=>{kar.init(e,t),os.init(e,t)}),aNt=ge("ZodNumber",(e,t)=>{zOt.init(e,t),ss.init(e,t),e.gt=(r,i)=>e.check(L0t(r,i)),e.gte=(r,i)=>e.check(q_e(r,i)),e.min=(r,i)=>e.check(q_e(r,i)),e.lt=(r,i)=>e.check(M0t(r,i)),e.lte=(r,i)=>e.check(H_e(r,i)),e.max=(r,i)=>e.check(H_e(r,i)),e.int=r=>e.check(j0t(r)),e.safe=r=>e.check(j0t(r)),e.positive=r=>e.check(L0t(0,r)),e.nonnegative=r=>e.check(q_e(0,r)),e.negative=r=>e.check(M0t(0,r)),e.nonpositive=r=>e.check(H_e(0,r)),e.multipleOf=(r,i)=>e.check(D0t(r,i)),e.step=(r,i)=>e.check(D0t(r,i)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});yur=ge("ZodNumberFormat",(e,t)=>{Iar.init(e,t),aNt.init(e,t)});Sur=ge("ZodBoolean",(e,t)=>{xar.init(e,t),ss.init(e,t)});Eur=ge("ZodNull",(e,t)=>{Oar.init(e,t),ss.init(e,t)});bur=ge("ZodUnknown",(e,t)=>{Nar.init(e,t),ss.init(e,t)});_ur=ge("ZodNever",(e,t)=>{Par.init(e,t),ss.init(e,t)});vur=ge("ZodArray",(e,t)=>{Car.init(e,t),ss.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(x6(n,r)),e.nonempty=n=>e.check(x6(1,n)),e.max=(n,r)=>e.check(KOt(n,r)),e.length=(n,r)=>e.check(ZOt(n,r)),e.unwrap=()=>e.element});uNt=ge("ZodObject",(e,t)=>{VOt.init(e,t),ss.init(e,t),zr.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>vc(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:xo()}),e.loose=()=>e.clone({...e._zod.def,catchall:xo()}),e.strict=()=>e.clone({...e._zod.def,catchall:Tur()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>zr.extend(e,n),e.merge=n=>zr.merge(e,n),e.pick=n=>zr.pick(e,n),e.omit=n=>zr.omit(e,n),e.partial=(...n)=>zr.partial(pNt,e,n[0]),e.required=(...n)=>zr.required(hNt,e,n[0])});lNt=ge("ZodUnion",(e,t)=>{WOt.init(e,t),ss.init(e,t),e.options=t.options});Aur=ge("ZodDiscriminatedUnion",(e,t)=>{lNt.init(e,t),Mar.init(e,t)});Rur=ge("ZodIntersection",(e,t)=>{Lar.init(e,t),ss.init(e,t)});wur=ge("ZodRecord",(e,t)=>{Dar.init(e,t),ss.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});oTe=ge("ZodEnum",(e,t)=>{Uar.init(e,t),ss.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{let s={};for(let o of r)if(n.has(o))s[o]=t.entries[o];else throw new Error(`Key ${o} not found in enum`);return new oTe({...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 oTe({...t,checks:[],...zr.normalizeParams(i),entries:s})}});kur=ge("ZodLiteral",(e,t)=>{Far.init(e,t),ss.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});Iur=ge("ZodTransform",(e,t)=>{jar.init(e,t),ss.init(e,t),e._zod.parse=(n,r)=>{n.addIssue=s=>{if(typeof s=="string")n.issues.push(zr.issue(s,n.value,t));else{let o=s;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=e),o.continue??(o.continue=!0),n.issues.push(zr.issue(o))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(s=>(n.value=s,n)):(n.value=i,n)}});pNt=ge("ZodOptional",(e,t)=>{Har.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});xur=ge("ZodNullable",(e,t)=>{qar.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});Our=ge("ZodDefault",(e,t)=>{Bar.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});Pur=ge("ZodPrefault",(e,t)=>{Gar.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});hNt=ge("ZodNonOptional",(e,t)=>{zar.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});Lur=ge("ZodCatch",(e,t)=>{Var.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});Uur=ge("ZodPipe",(e,t)=>{War.init(e,t),ss.init(e,t),e.in=t.in,e.out=t.out});Fur=ge("ZodReadonly",(e,t)=>{Kar.init(e,t),ss.init(e,t)});mNt=ge("ZodCustom",(e,t)=>{Zar.init(e,t),ss.init(e,t)});$g(Xar());yNt="2025-11-25",zur=[yNt,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Yg="io.modelcontextprotocol/related-task",Y6="2.0",im=qur(e=>e!==null&&(typeof e=="object"||typeof e=="function")),SNt=Vi([he(),ui().int()]),ENt=he(),Vur=yp({ttl:Vi([ui(),cNt()]).optional(),pollInterval:ui().optional()}),jTe=yp({taskId:he()}),Wur=yp({progressToken:SNt.optional(),[Yg]:jTe.optional()}),$u=yp({task:Vur.optional(),_meta:Wur.optional()}),Fa=Ge({method:he(),params:$u.optional()}),Yv=yp({_meta:Ge({[Yg]:yt(jTe)}).passthrough().optional()}),Yd=Ge({method:he(),params:Yv.optional()}),Ac=yp({_meta:yp({[Yg]:jTe.optional()}).optional()}),J6=Vi([he(),ui().int()]),bNt=Ge({jsonrpc:St(Y6),id:J6,...Fa.shape}).strict(),q0t=e=>bNt.safeParse(e).success,_Nt=Ge({jsonrpc:St(Y6),...Yd.shape}).strict(),Kur=e=>_Nt.safeParse(e).success,TNt=Ge({jsonrpc:St(Y6),id:J6,result:Ac}).strict(),y6=e=>TNt.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={}));vNt=Ge({jsonrpc:St(Y6),id:J6,error:Ge({code:ui().int(),message:he(),data:yt(xo())})}).strict(),Zur=e=>vNt.safeParse(e).success,tPi=Vi([bNt,_Nt,TNt,vNt]),HTe=Ac.strict(),Yur=Yv.extend({requestId:J6,reason:he().optional()}),qTe=Yd.extend({method:St("notifications/cancelled"),params:Yur}),Jur=Ge({src:he(),mimeType:he().optional(),sizes:er(he()).optional()}),HU=Ge({icons:er(Jur).optional()}),q0=Ge({name:he(),title:he().optional()}),ANt=q0.extend({...q0.shape,...HU.shape,version:he(),websiteUrl:he().optional()}),Xur=FTe(Ge({applyDefaults:Tc().optional()}),Oo(he(),xo())),Qur=gNt(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,FTe(Ge({form:Xur.optional(),url:im.optional()}),Oo(he(),xo()).optional())),$ur=Ge({list:yt(Ge({}).passthrough()),cancel:yt(Ge({}).passthrough()),requests:yt(Ge({sampling:yt(Ge({createMessage:yt(Ge({}).passthrough())}).passthrough()),elicitation:yt(Ge({create:yt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),elr=Ge({list:yt(Ge({}).passthrough()),cancel:yt(Ge({}).passthrough()),requests:yt(Ge({tools:yt(Ge({call:yt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),tlr=Ge({experimental:Oo(he(),im).optional(),sampling:Ge({context:im.optional(),tools:im.optional()}).optional(),elicitation:Qur.optional(),roots:Ge({listChanged:Tc().optional()}).optional(),tasks:yt($ur)}),nlr=$u.extend({protocolVersion:he(),capabilities:tlr,clientInfo:ANt}),RNt=Fa.extend({method:St("initialize"),params:nlr}),rlr=Ge({experimental:Oo(he(),im).optional(),logging:im.optional(),completions:im.optional(),prompts:yt(Ge({listChanged:yt(Tc())})),resources:Ge({subscribe:Tc().optional(),listChanged:Tc().optional()}).optional(),tools:Ge({listChanged:Tc().optional()}).optional(),tasks:yt(elr)}).passthrough(),ilr=Ac.extend({protocolVersion:he(),capabilities:rlr,serverInfo:ANt,instructions:he().optional()}),wNt=Yd.extend({method:St("notifications/initialized")}),BTe=Fa.extend({method:St("ping")}),slr=Ge({progress:ui(),total:yt(ui()),message:yt(he())}),olr=Ge({...Yv.shape,...slr.shape,progressToken:SNt}),GTe=Yd.extend({method:St("notifications/progress"),params:olr}),alr=$u.extend({cursor:ENt.optional()}),qU=Fa.extend({params:alr.optional()}),BU=Ac.extend({nextCursor:yt(ENt)}),GU=Ge({taskId:he(),status:vc(["working","input_required","completed","failed","cancelled"]),ttl:Vi([ui(),cNt()]),createdAt:he(),lastUpdatedAt:he(),pollInterval:yt(ui()),statusMessage:yt(he())}),X6=Ac.extend({task:GU}),clr=Yv.merge(GU),N6=Yd.extend({method:St("notifications/tasks/status"),params:clr}),zTe=Fa.extend({method:St("tasks/get"),params:$u.extend({taskId:he()})}),VTe=Ac.merge(GU),WTe=Fa.extend({method:St("tasks/result"),params:$u.extend({taskId:he()})}),KTe=qU.extend({method:St("tasks/list")}),ZTe=BU.extend({tasks:er(GU)}),ulr=Fa.extend({method:St("tasks/cancel"),params:$u.extend({taskId:he()})}),llr=Ac.merge(GU),kNt=Ge({uri:he(),mimeType:yt(he()),_meta:Oo(he(),xo()).optional()}),INt=kNt.extend({text:he()}),YTe=he().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),xNt=kNt.extend({blob:YTe}),W0=Ge({audience:er(vc(["user","assistant"])).optional(),priority:ui().min(0).max(1).optional(),lastModified:JOt.datetime({offset:!0}).optional()}),ONt=Ge({...q0.shape,...HU.shape,uri:he(),description:yt(he()),mimeType:yt(he()),annotations:W0.optional(),_meta:yt(yp({}))}),dlr=Ge({...q0.shape,...HU.shape,uriTemplate:he(),description:yt(he()),mimeType:yt(he()),annotations:W0.optional(),_meta:yt(yp({}))}),cTe=qU.extend({method:St("resources/list")}),flr=BU.extend({resources:er(ONt)}),uTe=qU.extend({method:St("resources/templates/list")}),plr=BU.extend({resourceTemplates:er(dlr)}),JTe=$u.extend({uri:he()}),hlr=JTe,lTe=Fa.extend({method:St("resources/read"),params:hlr}),mlr=Ac.extend({contents:er(Vi([INt,xNt]))}),glr=Yd.extend({method:St("notifications/resources/list_changed")}),ylr=JTe,Slr=Fa.extend({method:St("resources/subscribe"),params:ylr}),Elr=JTe,blr=Fa.extend({method:St("resources/unsubscribe"),params:Elr}),_lr=Yv.extend({uri:he()}),Tlr=Yd.extend({method:St("notifications/resources/updated"),params:_lr}),vlr=Ge({name:he(),description:yt(he()),required:yt(Tc())}),Alr=Ge({...q0.shape,...HU.shape,description:yt(he()),arguments:yt(er(vlr)),_meta:yt(yp({}))}),dTe=qU.extend({method:St("prompts/list")}),Rlr=BU.extend({prompts:er(Alr)}),wlr=$u.extend({name:he(),arguments:Oo(he(),he()).optional()}),fTe=Fa.extend({method:St("prompts/get"),params:wlr}),XTe=Ge({type:St("text"),text:he(),annotations:W0.optional(),_meta:Oo(he(),xo()).optional()}),QTe=Ge({type:St("image"),data:YTe,mimeType:he(),annotations:W0.optional(),_meta:Oo(he(),xo()).optional()}),$Te=Ge({type:St("audio"),data:YTe,mimeType:he(),annotations:W0.optional(),_meta:Oo(he(),xo()).optional()}),klr=Ge({type:St("tool_use"),name:he(),id:he(),input:Ge({}).passthrough(),_meta:yt(Ge({}).passthrough())}).passthrough(),Ilr=Ge({type:St("resource"),resource:Vi([INt,xNt]),annotations:W0.optional(),_meta:Oo(he(),xo()).optional()}),xlr=ONt.extend({type:St("resource_link")}),eve=Vi([XTe,QTe,$Te,xlr,Ilr]),Olr=Ge({role:vc(["user","assistant"]),content:eve}),Nlr=Ac.extend({description:yt(he()),messages:er(Olr)}),Plr=Yd.extend({method:St("notifications/prompts/list_changed")}),Clr=Ge({title:he().optional(),readOnlyHint:Tc().optional(),destructiveHint:Tc().optional(),idempotentHint:Tc().optional(),openWorldHint:Tc().optional()}),Mlr=Ge({taskSupport:vc(["required","optional","forbidden"]).optional()}),NNt=Ge({...q0.shape,...HU.shape,description:he().optional(),inputSchema:Ge({type:St("object"),properties:Oo(he(),im).optional(),required:er(he()).optional()}).catchall(xo()),outputSchema:Ge({type:St("object"),properties:Oo(he(),im).optional(),required:er(he()).optional()}).catchall(xo()).optional(),annotations:yt(Clr),execution:yt(Mlr),_meta:Oo(he(),xo()).optional()}),pTe=qU.extend({method:St("tools/list")}),Llr=BU.extend({tools:er(NNt)}),tve=Ac.extend({content:er(eve).default([]),structuredContent:Oo(he(),xo()).optional(),isError:yt(Tc())}),nPi=tve.or(Ac.extend({toolResult:xo()})),Dlr=$u.extend({name:he(),arguments:yt(Oo(he(),xo()))}),P6=Fa.extend({method:St("tools/call"),params:Dlr}),Ulr=Yd.extend({method:St("notifications/tools/list_changed")}),C6=vc(["debug","info","notice","warning","error","critical","alert","emergency"]),Flr=$u.extend({level:C6}),PNt=Fa.extend({method:St("logging/setLevel"),params:Flr}),jlr=Yv.extend({level:C6,logger:he().optional(),data:xo()}),Hlr=Yd.extend({method:St("notifications/message"),params:jlr}),qlr=Ge({name:he().optional()}),Blr=Ge({hints:yt(er(qlr)),costPriority:yt(ui().min(0).max(1)),speedPriority:yt(ui().min(0).max(1)),intelligencePriority:yt(ui().min(0).max(1))}),Glr=Ge({mode:yt(vc(["auto","required","none"]))}),zlr=Ge({type:St("tool_result"),toolUseId:he().describe("The unique identifier for the corresponding tool call."),content:er(eve).default([]),structuredContent:Ge({}).passthrough().optional(),isError:yt(Tc()),_meta:yt(Ge({}).passthrough())}).passthrough(),Vlr=dNt("type",[XTe,QTe,$Te]),M6=dNt("type",[XTe,QTe,$Te,klr,zlr]),Wlr=Ge({role:vc(["user","assistant"]),content:Vi([M6,er(M6)]),_meta:yt(Ge({}).passthrough())}).passthrough(),Klr=$u.extend({messages:er(Wlr),modelPreferences:Blr.optional(),systemPrompt:he().optional(),includeContext:vc(["none","thisServer","allServers"]).optional(),temperature:ui().optional(),maxTokens:ui().int(),stopSequences:er(he()).optional(),metadata:im.optional(),tools:yt(er(NNt)),toolChoice:yt(Glr)}),Zlr=Fa.extend({method:St("sampling/createMessage"),params:Klr}),CNt=Ac.extend({model:he(),stopReason:yt(vc(["endTurn","stopSequence","maxTokens"]).or(he())),role:vc(["user","assistant"]),content:Vlr}),MNt=Ac.extend({model:he(),stopReason:yt(vc(["endTurn","stopSequence","maxTokens","toolUse"]).or(he())),role:vc(["user","assistant"]),content:Vi([M6,er(M6)])}),Ylr=Ge({type:St("boolean"),title:he().optional(),description:he().optional(),default:Tc().optional()}),Jlr=Ge({type:St("string"),title:he().optional(),description:he().optional(),minLength:ui().optional(),maxLength:ui().optional(),format:vc(["email","uri","date","date-time"]).optional(),default:he().optional()}),Xlr=Ge({type:vc(["number","integer"]),title:he().optional(),description:he().optional(),minimum:ui().optional(),maximum:ui().optional(),default:ui().optional()}),Qlr=Ge({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),default:he().optional()}),$lr=Ge({type:St("string"),title:he().optional(),description:he().optional(),oneOf:er(Ge({const:he(),title:he()})),default:he().optional()}),edr=Ge({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),enumNames:er(he()).optional(),default:he().optional()}),tdr=Vi([Qlr,$lr]),ndr=Ge({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:Ge({type:St("string"),enum:er(he())}),default:er(he()).optional()}),rdr=Ge({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:Ge({anyOf:er(Ge({const:he(),title:he()}))}),default:er(he()).optional()}),idr=Vi([ndr,rdr]),sdr=Vi([edr,tdr,idr]),odr=Vi([sdr,Ylr,Jlr,Xlr]),adr=$u.extend({mode:St("form").optional(),message:he(),requestedSchema:Ge({type:St("object"),properties:Oo(he(),odr),required:er(he()).optional()})}),cdr=$u.extend({mode:St("url"),message:he(),elicitationId:he(),url:he().url()}),udr=Vi([adr,cdr]),ldr=Fa.extend({method:St("elicitation/create"),params:udr}),ddr=Yv.extend({elicitationId:he()}),fdr=Yd.extend({method:St("notifications/elicitation/complete"),params:ddr}),hTe=Ac.extend({action:vc(["accept","decline","cancel"]),content:gNt(e=>e===null?void 0:e,Oo(he(),Vi([he(),ui(),Tc(),er(he())])).optional())}),pdr=Ge({type:St("ref/resource"),uri:he()}),hdr=Ge({type:St("ref/prompt"),name:he()}),mdr=$u.extend({ref:Vi([hdr,pdr]),argument:Ge({name:he(),value:he()}),context:Ge({arguments:Oo(he(),he()).optional()}).optional()}),mTe=Fa.extend({method:St("completion/complete"),params:mdr});Sdr=Ac.extend({completion:yp({values:er(he()).max(100),total:yt(ui().int()),hasMore:yt(Tc())})}),Edr=Ge({uri:he().startsWith("file://"),name:he().optional(),_meta:Oo(he(),xo()).optional()}),bdr=Fa.extend({method:St("roots/list")}),LNt=Ac.extend({roots:er(Edr)}),_dr=Yd.extend({method:St("notifications/roots/list_changed")}),rPi=Vi([BTe,RNt,mTe,PNt,fTe,dTe,cTe,uTe,lTe,Slr,blr,P6,pTe,zTe,WTe,KTe]),iPi=Vi([qTe,GTe,wNt,_dr,N6]),sPi=Vi([HTe,CNt,MNt,hTe,LNt,VTe,ZTe,X6]),oPi=Vi([BTe,Zlr,ldr,bdr,zTe,WTe,KTe]),aPi=Vi([qTe,GTe,Hlr,Tlr,glr,Ulr,Plr,N6,fdr]),cPi=Vi([HTe,ilr,Sdr,Nlr,Rlr,flr,plr,mlr,tve,Llr,VTe,ZTe,X6]),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===Ft.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new gTe(i.elicitations,n)}return new e(t,n,r)}},gTe=class extends bt{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(Ft.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){var t,n;return(n=(t=this.data)===null||t===void 0?void 0:t.elicitations)!==null&&n!==void 0?n:[]}};Tdr=Symbol("Let zodToJsonSchema decide on which parser to use"),B0t={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref",openAiAnyTypeName:"OpenAiAnyType"},vdr=e=>typeof e=="string"?{...B0t,name:e}:{...B0t,...e},Adr=e=>{let t=vdr(e),n=t.name!==void 0?[...t.basePath,t.definitionPath,t.name]:t.basePath;return{...t,flags:{hasReferencedOpenAiAnyType:!1},currentPath:n,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([r,i])=>[i._def,{def:i._def,path:[...t.basePath,t.definitionPath,r],jsonSchema:void 0}]))}};UNt=(e,t)=>{let n=0;for(;nbr(e.innerType._def,t);xdr=(e,t)=>{let n={type:"integer",format:"unix-time"};if(t.target==="openApi3")return n;for(let r of e.checks)switch(r.kind){case"min":Cr(n,"minimum",r.value,r.message,t);break;case"max":Cr(n,"maximum",r.value,r.message,t);break}return n};Cdr=e=>"type"in e&&e.type==="string"?!1:"allOf"in e;z_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:()=>(z_e===void 0&&(z_e=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),z_e),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};Ddr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");L6={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};z0t=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((r,i)=>br(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};Zdr=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return br(e.innerType._def,t);let n=br(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return n?{anyOf:[{not:Xu(t)},n]}:Xu(t)},Ydr=(e,t)=>{if(t.pipeStrategy==="input")return br(e.in._def,t);if(t.pipeStrategy==="output")return br(e.out._def,t);let n=br(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),r=br(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",n?"1":"0"]});return{allOf:[n,r].filter(i=>i!==void 0)}};tfr=(e,t)=>br(e.innerType._def,t),nfr=(e,t,n)=>{switch(t){case De.ZodString:return HNt(e,n);case De.ZodNumber:return zdr(e,n);case De.ZodObject:return Vdr(e,n);case De.ZodBigInt:return wdr(e,n);case De.ZodBoolean:return kdr();case De.ZodDate:return jNt(e,n);case De.ZodUndefined:return $dr(n);case De.ZodNull:return qdr(n);case De.ZodArray:return Rdr(e,n);case De.ZodUnion:case De.ZodDiscriminatedUnion:return Bdr(e,n);case De.ZodIntersection:return Mdr(e,n);case De.ZodTuple:return Qdr(e,n);case De.ZodRecord:return qNt(e,n);case De.ZodLiteral:return Ldr(e,n);case De.ZodEnum:return Pdr(e);case De.ZodNativeEnum:return jdr(e);case De.ZodNullable:return Gdr(e,n);case De.ZodOptional:return Zdr(e,n);case De.ZodMap:return Fdr(e,n);case De.ZodSet:return Xdr(e,n);case De.ZodLazy:return()=>e.getter()._def;case De.ZodPromise:return Jdr(e,n);case De.ZodNaN:case De.ZodNever:return Hdr(n);case De.ZodEffects:return Ndr(e,n);case De.ZodAny:return Xu(n);case De.ZodUnknown:return efr(n);case De.ZodDefault:return Odr(e,n);case De.ZodBranded:return FNt(e,n);case De.ZodReadonly:return tfr(e,n);case De.ZodCatch:return Idr(e,n);case De.ZodPipeline:return Ydr(e,n);case De.ZodFunction:case De.ZodVoid:case De.ZodSymbol:return;default:return(r=>{})(t)}};rfr=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:UNt(t.currentPath,e.path)};case"none":case"seen":return e.path.lengtht.currentPath[r]===n)?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),Xu(t)):t.$refStrategy==="seen"?Xu(t):void 0}},ifr=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),sfr=(e,t)=>{let n=Adr(t),r=typeof t=="object"&&t.definitions?Object.entries(t.definitions).reduce((c,[u,l])=>({...c,[u]:br(l._def,{...n,currentPath:[...n.basePath,n.definitionPath,u]},!0)??Xu(n)}),{}):void 0,i=typeof t=="string"?t:t?.nameStrategy==="title"?void 0:t?.name,s=br(e._def,i===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,i]},!1)??Xu(n),o=typeof t=="object"&&t.name!==void 0&&t.nameStrategy==="title"?t.name:void 0;o!==void 0&&(s.title=o),n.flags.hasReferencedOpenAiAnyType&&(r||(r={}),r[n.openAiAnyTypeName]||(r[n.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:n.$refStrategy==="relative"?"1":[...n.basePath,n.definitionPath,n.openAiAnyTypeName].join("/")}}));let a=i===void 0?r?{...s,[n.definitionPath]:r}:s:{$ref:[...n.$refStrategy==="relative"?[]:n.basePath,n.definitionPath,i].join("/"),[n.definitionPath]:{...r,[i]:s}};return n.target==="jsonSchema7"?a.$schema="http://json-schema.org/draft-07/schema#":(n.target==="jsonSchema2019-09"||n.target==="openAi")&&(a.$schema="https://json-schema.org/draft/2019-09/schema#"),n.target==="openAi"&&("anyOf"in a||"oneOf"in a||"allOf"in a||"type"in a&&Array.isArray(a.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),a};afr=6e4,yTe=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(qTe,n=>{this._oncancel(n)}),this.setNotificationHandler(GTe,n=>{this._onprogress(n)}),this.setRequestHandler(BTe,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(zTe,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new bt(Ft.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(WTe,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(Ft.InvalidParams,`Task not found: ${o}`);if(!Wv(a.status))return await this._waitForTaskUpdate(o,r.signal),await i();if(Wv(a.status)){let c=await this._taskStore.getTaskResult(o,r.sessionId);return this._clearTaskQueue(o),{...c,_meta:{...c._meta,[Yg]:{taskId:o}}}}return await i()};return await i()}),this.setRequestHandler(KTe,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(Ft.InvalidParams,`Failed to list tasks: ${s instanceof Error?s.message:String(s)}`)}}),this.setRequestHandler(ulr,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new bt(Ft.InvalidParams,`Task not found: ${n.params.taskId}`);if(Wv(i.status))throw new bt(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 bt(Ft.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof bt?i:new bt(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),bt.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),y6(c)||Zur(c)?this._onresponse(c):q0t(c)?this._onrequest(c,u):Kur(c)?this._onnotification(c):this._onerror(new Error(`Unknown message type: ${JSON.stringify(c)}`))},await this._transport.start()}_onclose(){var t;let n=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();let r=bt.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[Yg])===null||o===void 0?void 0:o.taskId;if(u===void 0){let y={jsonrpc:"2.0",id:t.id,error:{code:Ft.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:Ft.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),y6(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(y6(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),y6(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(Ft.InternalError,String(l))}}return}let u;try{let l=await this.request(t,X6,r);if(l.task)u=l.task.taskId,yield{type:"taskCreated",task:l.task};else throw new bt(Ft.InternalError,"Task creation did not return a task");for(;;){let d=await this.getTask({taskId:u},r);if(yield{type:"taskStatus",task:d},Wv(d.status)){d.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:u},n,r)}:d.status==="failed"?yield{type:"error",error:new bt(Ft.InternalError,`Task ${u} failed`)}:d.status==="cancelled"&&(yield{type:"error",error:new bt(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 bt?l:new bt(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,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(Ft.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=TU(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:afr,A=()=>_(bt.fromError(Ft.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},VTe,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},ZTe,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},llr,n)}async notification(t,n){var r,i,s,o,a;if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let c=(r=n?.relatedTask)===null||r===void 0?void 0:r.taskId;if(c){let f={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...((i=t.params)===null||i===void 0?void 0:i._meta)||{},[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=W0t(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=K0t(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=W0t(t);this._notificationHandlers.set(r,i=>{let s=K0t(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"&&q0t(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new bt(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 bt(Ft.InvalidRequest,"Request cancelled"));return}let u=setTimeout(a,o);n.addEventListener("abort",()=>{clearTimeout(u),c(new bt(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 bt(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=N6.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(Ft.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(Wv(a.status))throw new bt(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=N6.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Wv(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}};ufr=$0t(aOt(),1),lfr=$0t(Gnr(),1);STe=class{constructor(t){this._ajv=t??dfr()}getValidator(t){var n;let r="$id"in t&&typeof t.$id=="string"?(n=this._ajv.getSchema(t.$id))!==null&&n!==void 0?n:this._ajv.compile(t):this._ajv.compile(t);return i=>r(i)?{valid:!0,data:i,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}},ETe=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)}};bTe=class extends yTe{constructor(t,n){var r,i;super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(C6.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(wNt,()=>{var s;return(s=this.oninitialized)===null||s===void 0?void 0:s.call(this)}),this._capabilities.logging&&this.setRequestHandler(PNt,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=C6.safeParse(u);return l.success&&this._loggingLevels.set(c,l.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new ETe(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=jU(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=TU(P6,d);if(!p.success){let g=p.error instanceof Error?p.error.message:String(p.error);throw new bt(Ft.InvalidParams,`Invalid tools/call request: ${g}`)}let{params:h}=p.data,m=await Promise.resolve(n(d,f));if(h.task){let g=TU(X6,m);if(!g.success){let E=g.error instanceof Error?g.error.message:String(g.error);throw new bt(Ft.InvalidParams,`Invalid task creation result: ${E}`)}return g.data}let y=TU(tve,m);if(!y.success){let g=y.error instanceof Error?y.error.message:String(y.error);throw new bt(Ft.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;pfr((r=(n=this._clientCapabilities)===null||n===void 0?void 0:n.tasks)===null||r===void 0?void 0:r.requests,t,"Client")}assertTaskHandlerCapability(t){var n;this._capabilities&&ffr((n=this._capabilities.tasks)===null||n===void 0?void 0:n.requests,t,"Server")}async _oninitialize(t){let n=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:zur.includes(n)?n:yNt,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"},HTe)}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},MNt,n):this.request({method:"sampling/createMessage",params:t},CNt,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},hTe,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},hTe,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(Ft.InvalidParams,`Elicitation response content does not match requested schema: ${f.errorMessage}`)}catch(d){throw d instanceof bt?d:new bt(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},LNt,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"})}},BNt=Symbol.for("mcp.completable");(function(e){e.Completable="McpCompletable"})(Y0t||(Y0t={}));gfr=/^[A-Za-z0-9._-]{1,128}$/;_Te=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)}},TTe=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 bTe(t,n)}get experimental(){return this._experimental||(this._experimental={tasks:new _Te(this)}),this._experimental}async connect(t){return await this.server.connect(t)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler(QE(pTe)),this.server.assertCanSetRequestHandler(QE(P6)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(pTe,()=>({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=gU(n.inputSchema);return i?V0t(i,{strictUnions:!0,pipeStrategy:"input"}):Efr})(),annotations:n.annotations,execution:n.execution,_meta:n._meta};if(n.outputSchema){let i=gU(n.outputSchema);i&&(r.outputSchema=V0t(i,{strictUnions:!0,pipeStrategy:"output"}))}return r})})),this.server.setRequestHandler(P6,async(t,n)=>{var r;try{let i=this._registeredTools[t.params.name];if(!i)throw new bt(Ft.InvalidParams,`Tool ${t.params.name} not found`);if(!i.enabled)throw new bt(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 bt(Ft.InternalError,`Tool ${t.params.name} has taskSupport '${o}' but was not registered with registerToolTask`);if(o==="required"&&!s)throw new bt(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 bt&&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=gU(t.inputSchema),s=i??t.inputSchema,o=await B_e(s,n);if(!o.success){let a="error"in o?o.error:"Unknown error",c=G_e(a);throw new bt(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 bt(Ft.InvalidParams,`Output validation error: Tool ${r} has an output schema but no structured content was provided`);let i=gU(t.outputSchema),s=await B_e(i,n.structuredContent);if(!s.success){let o="error"in s?s.error:"Unknown error",a=G_e(o);throw new bt(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 bt(Ft.InternalError,`Task ${u} not found during polling`);l=f}return await r.taskStore.getTaskResult(u)}setCompletionRequestHandler(){this._completionHandlerInitialized||(this.server.assertCanSetRequestHandler(QE(mTe)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(mTe,async t=>{switch(t.params.ref.type){case"ref/prompt":return gdr(t),this.handlePromptCompletion(t,t.params.ref);case"ref/resource":return ydr(t),this.handleResourceCompletion(t,t.params.ref);default:throw new bt(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 bt(Ft.InvalidParams,`Prompt ${n.name} not found`);if(!r.enabled)throw new bt(Ft.InvalidParams,`Prompt ${n.name} disabled`);if(!r.argsSchema)return yU;let i=jU(r.argsSchema),s=i?.[t.params.argument.name];if(!hfr(s))return yU;let o=mfr(s);if(!o)return yU;let a=await o(t.params.argument.value,t.params.context);return Q0t(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 yU;throw new bt(Ft.InvalidParams,`Resource template ${t.params.ref.uri} not found`)}let i=r.resourceTemplate.completeCallback(t.params.argument.name);if(!i)return yU;let s=await i(t.params.argument.value,t.params.context);return Q0t(s)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(QE(cTe)),this.server.assertCanSetRequestHandler(QE(uTe)),this.server.assertCanSetRequestHandler(QE(lTe)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(cTe,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(uTe,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([n,r])=>({name:n,uriTemplate:r.resourceTemplate.uriTemplate.toString(),...r.metadata}))})),this.server.setRequestHandler(lTe,async(t,n)=>{let r=new URL(t.params.uri),i=this._registeredResources[r.toString()];if(i){if(!i.enabled)throw new bt(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 bt(Ft.InvalidParams,`Resource ${r} not found`)}),this.setCompletionRequestHandler(),this._resourceHandlersInitialized=!0)}setPromptRequestHandlers(){this._promptHandlersInitialized||(this.server.assertCanSetRequestHandler(QE(dTe)),this.server.assertCanSetRequestHandler(QE(fTe)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(dTe,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,t])=>t.enabled).map(([t,n])=>({name:t,title:n.title,description:n.description,arguments:n.argsSchema?_fr(n.argsSchema):void 0}))})),this.server.setRequestHandler(fTe,async(t,n)=>{let r=this._registeredPrompts[t.params.name];if(!r)throw new bt(Ft.InvalidParams,`Prompt ${t.params.name} not found`);if(!r.enabled)throw new bt(Ft.InvalidParams,`Prompt ${t.params.name} disabled`);if(r.argsSchema){let i=gU(r.argsSchema),s=await B_e(i,t.params.arguments);if(!s.success){let c="error"in s?s.error:"Unknown error",u=G_e(c);throw new bt(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:_U(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=_U(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){J0t(t);let l={title:n,description:r,inputSchema:X0t(i),outputSchema:X0t(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"&&J0t(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=_U(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];vTe(c)?(i=n.shift(),n.length>1&&typeof n[0]=="object"&&n[0]!==null&&!vTe(n[0])&&(o=n.shift())):typeof c=="object"&&c!==null&&(o=n.shift())}let a=n[0];return this._createRegisteredTool(t,void 0,r,i,s,o,{taskSupport:"forbidden"},void 0,a)}registerTool(t,n,r){if(this._registeredTools[t])throw new Error(`Tool ${t} is already registered`);let{title:i,description:s,inputSchema:o,outputSchema:a,annotations:c,_meta:u}=n;return this._createRegisteredTool(t,i,s,o,a,c,{taskSupport:"forbidden"},u,r)}prompt(t,...n){if(this._registeredPrompts[t])throw new Error(`Prompt ${t} is already registered`);let r;typeof n[0]=="string"&&(r=n.shift());let i;n.length>1&&(i=n.shift());let s=n[0],o=this._createRegisteredPrompt(t,void 0,r,i,s);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),o}registerPrompt(t,n,r){if(this._registeredPrompts[t])throw new Error(`Prompt ${t} is already registered`);let{title:i,description:s,argsSchema:o}=n,a=this._createRegisteredPrompt(t,i,s,o,r);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),a}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage(t,n){return this.server.sendLoggingMessage(t,n)}sendResourceListChanged(){this.isConnected()&&this.server.sendResourceListChanged()}sendToolListChanged(){this.isConnected()&&this.server.sendToolListChanged()}sendPromptListChanged(){this.isConnected()&&this.server.sendPromptListChanged()}},Efr={type:"object",properties:{}};yU={completion:{values:[],hasMore:!1}}});var WNt={};Rr(WNt,{runRepairAgent:()=>Ifr});import{existsSync as Jv,readdirSync as nve,readFileSync as rve}from"node:fs";import{join as ny}from"node:path";async function Ifr(e){let t;try{t=(await Promise.resolve().then(()=>(VNt(),zNt))).query}catch{return{success:!1,summary:"Claude Agent SDK not available \u2014 mechanical repair applied, remaining issues need manual attention",fallbackUsed:!0}}let n=xfr(e),r=Ofr(e),i=12e4;try{let s=(async()=>{let c="";for await(let u of t({prompt:r,options:{model:"claude-haiku-4-5-20251001",cwd:e.intentDir,additionalDirectories:[e.studioDir],allowedTools:["Read","Write","Glob","Grep"],disallowedTools:["Bash","Agent","WebSearch","WebFetch","Edit"],permissionMode:"dontAsk",maxTurns:25,systemPrompt:n}}))u.type==="result"&&(c=u.result||"");return c})(),o=new Promise((c,u)=>setTimeout(()=>u(new Error("repair agent timed out")),i)),a=await Promise.race([s,o]);return{success:a.trim().length>0,summary:a||"Repair agent completed but produced no output",fallbackUsed:!1}}catch(s){return{success:!1,summary:`Repair agent failed: ${s instanceof Error?s.message:String(s)}`,fallbackUsed:!0}}}function xfr(e){let t=Nfr(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.")}}};kur=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)=>Zor(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>VTe(e,n,r),e.parseAsync=async(n,r)=>Jor(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>WTe(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)}),Iur=ge("ZodMiniObject",(e,t)=>{cPt.init(e,t),kur.init(e,t),Gr.defineLazy(e,"shape",()=>t.shape)});pPt={};yOt(pPt,{time:()=>bPt,duration:()=>_Pt,datetime:()=>mPt,date:()=>yPt,ZodISOTime:()=>SPt,ZodISODuration:()=>EPt,ZodISODateTime:()=>hPt,ZodISODate:()=>gPt});hPt=ge("ZodISODateTime",(e,t)=>{Jar.init(e,t),os.init(e,t)});gPt=ge("ZodISODate",(e,t)=>{Xar.init(e,t),os.init(e,t)});SPt=ge("ZodISOTime",(e,t)=>{Qar.init(e,t),os.init(e,t)});EPt=ge("ZodISODuration",(e,t)=>{$ar.init(e,t),os.init(e,t)});TPt=(e,t)=>{ZOt.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>Yor(e,n)},flatten:{value:n=>Kor(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},HNi=ge("ZodError",TPt),s8=ge("ZodError",TPt,{Parent:Error}),Pur=JOt(s8),Nur=XOt(s8),Cur=QOt(s8),Mur=$Ot(s8),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)=>Pur(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Cur(e,n,r),e.parseAsync=async(n,r)=>Nur(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>Mur(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(Rlr(n,r)),e.superRefine=n=>e.check(Alr(n)),e.overwrite=n=>e.check(WU(n)),e.optional=()=>yt(e),e.nullable=()=>rOt(e),e.nullish=()=>yt(rOt(e)),e.nonoptional=n=>glr(e,n),e.array=()=>er(e),e.or=n=>Vi([e,n]),e.and=n=>YTe(e,n),e.transform=n=>yTe(e,xPt(n)),e.default=n=>plr(e,n),e.prefault=n=>mlr(e,n),e.catch=n=>Slr(e,n),e.pipe=n=>yTe(e,n),e.readonly=()=>_lr(e),e.describe=n=>{let r=e.clone();return IU.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return IU.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return IU.get(e);let r=e.clone();return IU.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),vPt=ge("_ZodString",(e,t)=>{KTe.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(pur(...r)),e.includes=(...r)=>e.check(gur(...r)),e.startsWith=(...r)=>e.check(yur(...r)),e.endsWith=(...r)=>e.check(Sur(...r)),e.min=(...r)=>e.check(H5(...r)),e.max=(...r)=>e.check(lPt(...r)),e.length=(...r)=>e.check(dPt(...r)),e.nonempty=(...r)=>e.check(H5(1,...r)),e.lowercase=r=>e.check(hur(r)),e.uppercase=r=>e.check(mur(r)),e.trim=()=>e.check(Eur()),e.normalize=(...r)=>e.check(bur(...r)),e.toLowerCase=()=>e.check(_ur()),e.toUpperCase=()=>e.check(Tur())}),Dur=ge("ZodString",(e,t)=>{KTe.init(e,t),vPt.init(e,t),e.email=n=>e.check(Lcr(Lur,n)),e.url=n=>e.check(qcr(Uur,n)),e.jwt=n=>e.check(nur(Qur,n)),e.emoji=n=>e.check(Bcr(Fur,n)),e.guid=n=>e.check(Jxt(tOt,n)),e.uuid=n=>e.check(Ucr(k5,n)),e.uuidv4=n=>e.check(Fcr(k5,n)),e.uuidv6=n=>e.check(jcr(k5,n)),e.uuidv7=n=>e.check(Hcr(k5,n)),e.nanoid=n=>e.check(zcr(jur,n)),e.guid=n=>e.check(Jxt(tOt,n)),e.cuid=n=>e.check(Gcr(Hur,n)),e.cuid2=n=>e.check(Vcr(qur,n)),e.ulid=n=>e.check(Wcr(Bur,n)),e.base64=n=>e.check($cr(Zur,n)),e.base64url=n=>e.check(eur(Jur,n)),e.xid=n=>e.check(Kcr(zur,n)),e.ksuid=n=>e.check(Ycr(Gur,n)),e.ipv4=n=>e.check(Zcr(Vur,n)),e.ipv6=n=>e.check(Jcr(Wur,n)),e.cidrv4=n=>e.check(Xcr(Kur,n)),e.cidrv6=n=>e.check(Qcr(Yur,n)),e.e164=n=>e.check(tur(Xur,n)),e.datetime=n=>e.check(mPt(n)),e.date=n=>e.check(yPt(n)),e.time=n=>e.check(bPt(n)),e.duration=n=>e.check(_Pt(n))});os=ge("ZodStringFormat",(e,t)=>{Gi.init(e,t),vPt.init(e,t)}),Lur=ge("ZodEmail",(e,t)=>{qar.init(e,t),os.init(e,t)}),tOt=ge("ZodGUID",(e,t)=>{jar.init(e,t),os.init(e,t)}),k5=ge("ZodUUID",(e,t)=>{Har.init(e,t),os.init(e,t)}),Uur=ge("ZodURL",(e,t)=>{Bar.init(e,t),os.init(e,t)}),Fur=ge("ZodEmoji",(e,t)=>{zar.init(e,t),os.init(e,t)}),jur=ge("ZodNanoID",(e,t)=>{Gar.init(e,t),os.init(e,t)}),Hur=ge("ZodCUID",(e,t)=>{Var.init(e,t),os.init(e,t)}),qur=ge("ZodCUID2",(e,t)=>{War.init(e,t),os.init(e,t)}),Bur=ge("ZodULID",(e,t)=>{Kar.init(e,t),os.init(e,t)}),zur=ge("ZodXID",(e,t)=>{Yar.init(e,t),os.init(e,t)}),Gur=ge("ZodKSUID",(e,t)=>{Zar.init(e,t),os.init(e,t)}),Vur=ge("ZodIPv4",(e,t)=>{ecr.init(e,t),os.init(e,t)}),Wur=ge("ZodIPv6",(e,t)=>{tcr.init(e,t),os.init(e,t)}),Kur=ge("ZodCIDRv4",(e,t)=>{ncr.init(e,t),os.init(e,t)}),Yur=ge("ZodCIDRv6",(e,t)=>{rcr.init(e,t),os.init(e,t)}),Zur=ge("ZodBase64",(e,t)=>{icr.init(e,t),os.init(e,t)}),Jur=ge("ZodBase64URL",(e,t)=>{ocr.init(e,t),os.init(e,t)}),Xur=ge("ZodE164",(e,t)=>{acr.init(e,t),os.init(e,t)}),Qur=ge("ZodJWT",(e,t)=>{ucr.init(e,t),os.init(e,t)}),RPt=ge("ZodNumber",(e,t)=>{aPt.init(e,t),ss.init(e,t),e.gt=(r,i)=>e.check(Qxt(r,i)),e.gte=(r,i)=>e.check(X_e(r,i)),e.min=(r,i)=>e.check(X_e(r,i)),e.lt=(r,i)=>e.check(Xxt(r,i)),e.lte=(r,i)=>e.check(J_e(r,i)),e.max=(r,i)=>e.check(J_e(r,i)),e.int=r=>e.check(nOt(r)),e.safe=r=>e.check(nOt(r)),e.positive=r=>e.check(Qxt(0,r)),e.nonnegative=r=>e.check(X_e(0,r)),e.negative=r=>e.check(Xxt(0,r)),e.nonpositive=r=>e.check(J_e(0,r)),e.multipleOf=(r,i)=>e.check($xt(r,i)),e.step=(r,i)=>e.check($xt(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});$ur=ge("ZodNumberFormat",(e,t)=>{lcr.init(e,t),RPt.init(e,t)});elr=ge("ZodBoolean",(e,t)=>{dcr.init(e,t),ss.init(e,t)});tlr=ge("ZodNull",(e,t)=>{fcr.init(e,t),ss.init(e,t)});nlr=ge("ZodUnknown",(e,t)=>{pcr.init(e,t),ss.init(e,t)});rlr=ge("ZodNever",(e,t)=>{hcr.init(e,t),ss.init(e,t)});slr=ge("ZodArray",(e,t)=>{mcr.init(e,t),ss.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(H5(n,r)),e.nonempty=n=>e.check(H5(1,n)),e.max=(n,r)=>e.check(lPt(n,r)),e.length=(n,r)=>e.check(dPt(n,r)),e.unwrap=()=>e.element});wPt=ge("ZodObject",(e,t)=>{cPt.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:ilr()}),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(OPt,e,n[0]),e.required=(...n)=>Gr.required(PPt,e,n[0])});kPt=ge("ZodUnion",(e,t)=>{uPt.init(e,t),ss.init(e,t),e.options=t.options});olr=ge("ZodDiscriminatedUnion",(e,t)=>{kPt.init(e,t),gcr.init(e,t)});alr=ge("ZodIntersection",(e,t)=>{ycr.init(e,t),ss.init(e,t)});clr=ge("ZodRecord",(e,t)=>{Scr.init(e,t),ss.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});gTe=ge("ZodEnum",(e,t)=>{bcr.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 gTe({...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 gTe({...t,checks:[],...Gr.normalizeParams(i),entries:s})}});ulr=ge("ZodLiteral",(e,t)=>{Ecr.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]}})});llr=ge("ZodTransform",(e,t)=>{_cr.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)}});OPt=ge("ZodOptional",(e,t)=>{Tcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});dlr=ge("ZodNullable",(e,t)=>{vcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});flr=ge("ZodDefault",(e,t)=>{Rcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});hlr=ge("ZodPrefault",(e,t)=>{Acr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});PPt=ge("ZodNonOptional",(e,t)=>{wcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});ylr=ge("ZodCatch",(e,t)=>{kcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});blr=ge("ZodPipe",(e,t)=>{Icr.init(e,t),ss.init(e,t),e.in=t.in,e.out=t.out});Elr=ge("ZodReadonly",(e,t)=>{xcr.init(e,t),ss.init(e,t)});NPt=ge("ZodCustom",(e,t)=>{Ocr.init(e,t),ss.init(e,t)});ey(Ccr());MPt="2025-11-25",wlr=[MPt,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Jg="io.modelcontextprotocol/related-task",o8="2.0",om=vlr(e=>e!==null&&(typeof e=="object"||typeof e=="function")),DPt=Vi([he(),ui().int()]),LPt=he(),klr=Sp({ttl:Vi([ui(),APt()]).optional(),pollInterval:ui().optional()}),ZTe=Sp({taskId:he()}),Ilr=Sp({progressToken:DPt.optional(),[Jg]:ZTe.optional()}),el=Sp({task:klr.optional(),_meta:Ilr.optional()}),ja=Ge({method:he(),params:el.optional()}),nR=Sp({_meta:Ge({[Jg]:yt(ZTe)}).passthrough().optional()}),Xd=Ge({method:he(),params:nR.optional()}),Ac=Sp({_meta:Sp({[Jg]:ZTe.optional()}).optional()}),a8=Vi([he(),ui().int()]),UPt=Ge({jsonrpc:St(o8),id:a8,...ja.shape}).strict(),iOt=e=>UPt.safeParse(e).success,FPt=Ge({jsonrpc:St(o8),...Xd.shape}).strict(),xlr=e=>FPt.safeParse(e).success,jPt=Ge({jsonrpc:St(o8),id:a8,result:Ac}).strict(),I5=e=>jPt.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={}));HPt=Ge({jsonrpc:St(o8),id:a8,error:Ge({code:ui().int(),message:he(),data:yt(xo())})}).strict(),Olr=e=>HPt.safeParse(e).success,qNi=Vi([UPt,FPt,jPt,HPt]),JTe=Ac.strict(),Plr=nR.extend({requestId:a8,reason:he().optional()}),XTe=Xd.extend({method:St("notifications/cancelled"),params:Plr}),Nlr=Ge({src:he(),mimeType:he().optional(),sizes:er(he()).optional()}),YU=Ge({icons:er(Nlr).optional()}),Xx=Ge({name:he(),title:he().optional()}),qPt=Xx.extend({...Xx.shape,...YU.shape,version:he(),websiteUrl:he().optional()}),Clr=YTe(Ge({applyDefaults:vc().optional()}),Oo(he(),xo())),Mlr=CPt(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,YTe(Ge({form:Clr.optional(),url:om.optional()}),Oo(he(),xo()).optional())),Dlr=Ge({list:yt(Ge({}).passthrough()),cancel:yt(Ge({}).passthrough()),requests:yt(Ge({sampling:yt(Ge({createMessage:yt(Ge({}).passthrough())}).passthrough()),elicitation:yt(Ge({create:yt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Llr=Ge({list:yt(Ge({}).passthrough()),cancel:yt(Ge({}).passthrough()),requests:yt(Ge({tools:yt(Ge({call:yt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Ulr=Ge({experimental:Oo(he(),om).optional(),sampling:Ge({context:om.optional(),tools:om.optional()}).optional(),elicitation:Mlr.optional(),roots:Ge({listChanged:vc().optional()}).optional(),tasks:yt(Dlr)}),Flr=el.extend({protocolVersion:he(),capabilities:Ulr,clientInfo:qPt}),BPt=ja.extend({method:St("initialize"),params:Flr}),jlr=Ge({experimental:Oo(he(),om).optional(),logging:om.optional(),completions:om.optional(),prompts:yt(Ge({listChanged:yt(vc())})),resources:Ge({subscribe:vc().optional(),listChanged:vc().optional()}).optional(),tools:Ge({listChanged:vc().optional()}).optional(),tasks:yt(Llr)}).passthrough(),Hlr=Ac.extend({protocolVersion:he(),capabilities:jlr,serverInfo:qPt,instructions:he().optional()}),zPt=Xd.extend({method:St("notifications/initialized")}),QTe=ja.extend({method:St("ping")}),qlr=Ge({progress:ui(),total:yt(ui()),message:yt(he())}),Blr=Ge({...nR.shape,...qlr.shape,progressToken:DPt}),$Te=Xd.extend({method:St("notifications/progress"),params:Blr}),zlr=el.extend({cursor:LPt.optional()}),ZU=ja.extend({params:zlr.optional()}),JU=Ac.extend({nextCursor:yt(LPt)}),XU=Ge({taskId:he(),status:Rc(["working","input_required","completed","failed","cancelled"]),ttl:Vi([ui(),APt()]),createdAt:he(),lastUpdatedAt:he(),pollInterval:yt(ui()),statusMessage:yt(he())}),c8=Ac.extend({task:XU}),Glr=nR.merge(XU),B5=Xd.extend({method:St("notifications/tasks/status"),params:Glr}),eve=ja.extend({method:St("tasks/get"),params:el.extend({taskId:he()})}),tve=Ac.merge(XU),nve=ja.extend({method:St("tasks/result"),params:el.extend({taskId:he()})}),rve=ZU.extend({method:St("tasks/list")}),ive=JU.extend({tasks:er(XU)}),Vlr=ja.extend({method:St("tasks/cancel"),params:el.extend({taskId:he()})}),Wlr=Ac.merge(XU),GPt=Ge({uri:he(),mimeType:yt(he()),_meta:Oo(he(),xo()).optional()}),VPt=GPt.extend({text:he()}),sve=he().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),WPt=GPt.extend({blob:sve}),nO=Ge({audience:er(Rc(["user","assistant"])).optional(),priority:ui().min(0).max(1).optional(),lastModified:pPt.datetime({offset:!0}).optional()}),KPt=Ge({...Xx.shape,...YU.shape,uri:he(),description:yt(he()),mimeType:yt(he()),annotations:nO.optional(),_meta:yt(Sp({}))}),Klr=Ge({...Xx.shape,...YU.shape,uriTemplate:he(),description:yt(he()),mimeType:yt(he()),annotations:nO.optional(),_meta:yt(Sp({}))}),STe=ZU.extend({method:St("resources/list")}),Ylr=JU.extend({resources:er(KPt)}),bTe=ZU.extend({method:St("resources/templates/list")}),Zlr=JU.extend({resourceTemplates:er(Klr)}),ove=el.extend({uri:he()}),Jlr=ove,ETe=ja.extend({method:St("resources/read"),params:Jlr}),Xlr=Ac.extend({contents:er(Vi([VPt,WPt]))}),Qlr=Xd.extend({method:St("notifications/resources/list_changed")}),$lr=ove,edr=ja.extend({method:St("resources/subscribe"),params:$lr}),tdr=ove,ndr=ja.extend({method:St("resources/unsubscribe"),params:tdr}),rdr=nR.extend({uri:he()}),idr=Xd.extend({method:St("notifications/resources/updated"),params:rdr}),sdr=Ge({name:he(),description:yt(he()),required:yt(vc())}),odr=Ge({...Xx.shape,...YU.shape,description:yt(he()),arguments:yt(er(sdr)),_meta:yt(Sp({}))}),_Te=ZU.extend({method:St("prompts/list")}),adr=JU.extend({prompts:er(odr)}),cdr=el.extend({name:he(),arguments:Oo(he(),he()).optional()}),TTe=ja.extend({method:St("prompts/get"),params:cdr}),ave=Ge({type:St("text"),text:he(),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),cve=Ge({type:St("image"),data:sve,mimeType:he(),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),uve=Ge({type:St("audio"),data:sve,mimeType:he(),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),udr=Ge({type:St("tool_use"),name:he(),id:he(),input:Ge({}).passthrough(),_meta:yt(Ge({}).passthrough())}).passthrough(),ldr=Ge({type:St("resource"),resource:Vi([VPt,WPt]),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),ddr=KPt.extend({type:St("resource_link")}),lve=Vi([ave,cve,uve,ddr,ldr]),fdr=Ge({role:Rc(["user","assistant"]),content:lve}),pdr=Ac.extend({description:yt(he()),messages:er(fdr)}),hdr=Xd.extend({method:St("notifications/prompts/list_changed")}),mdr=Ge({title:he().optional(),readOnlyHint:vc().optional(),destructiveHint:vc().optional(),idempotentHint:vc().optional(),openWorldHint:vc().optional()}),gdr=Ge({taskSupport:Rc(["required","optional","forbidden"]).optional()}),YPt=Ge({...Xx.shape,...YU.shape,description:he().optional(),inputSchema:Ge({type:St("object"),properties:Oo(he(),om).optional(),required:er(he()).optional()}).catchall(xo()),outputSchema:Ge({type:St("object"),properties:Oo(he(),om).optional(),required:er(he()).optional()}).catchall(xo()).optional(),annotations:yt(mdr),execution:yt(gdr),_meta:Oo(he(),xo()).optional()}),vTe=ZU.extend({method:St("tools/list")}),ydr=JU.extend({tools:er(YPt)}),dve=Ac.extend({content:er(lve).default([]),structuredContent:Oo(he(),xo()).optional(),isError:yt(vc())}),BNi=dve.or(Ac.extend({toolResult:xo()})),Sdr=el.extend({name:he(),arguments:yt(Oo(he(),xo()))}),z5=ja.extend({method:St("tools/call"),params:Sdr}),bdr=Xd.extend({method:St("notifications/tools/list_changed")}),G5=Rc(["debug","info","notice","warning","error","critical","alert","emergency"]),Edr=el.extend({level:G5}),ZPt=ja.extend({method:St("logging/setLevel"),params:Edr}),_dr=nR.extend({level:G5,logger:he().optional(),data:xo()}),Tdr=Xd.extend({method:St("notifications/message"),params:_dr}),vdr=Ge({name:he().optional()}),Rdr=Ge({hints:yt(er(vdr)),costPriority:yt(ui().min(0).max(1)),speedPriority:yt(ui().min(0).max(1)),intelligencePriority:yt(ui().min(0).max(1))}),Adr=Ge({mode:yt(Rc(["auto","required","none"]))}),wdr=Ge({type:St("tool_result"),toolUseId:he().describe("The unique identifier for the corresponding tool call."),content:er(lve).default([]),structuredContent:Ge({}).passthrough().optional(),isError:yt(vc()),_meta:yt(Ge({}).passthrough())}).passthrough(),kdr=IPt("type",[ave,cve,uve]),V5=IPt("type",[ave,cve,uve,udr,wdr]),Idr=Ge({role:Rc(["user","assistant"]),content:Vi([V5,er(V5)]),_meta:yt(Ge({}).passthrough())}).passthrough(),xdr=el.extend({messages:er(Idr),modelPreferences:Rdr.optional(),systemPrompt:he().optional(),includeContext:Rc(["none","thisServer","allServers"]).optional(),temperature:ui().optional(),maxTokens:ui().int(),stopSequences:er(he()).optional(),metadata:om.optional(),tools:yt(er(YPt)),toolChoice:yt(Adr)}),Odr=ja.extend({method:St("sampling/createMessage"),params:xdr}),JPt=Ac.extend({model:he(),stopReason:yt(Rc(["endTurn","stopSequence","maxTokens"]).or(he())),role:Rc(["user","assistant"]),content:kdr}),XPt=Ac.extend({model:he(),stopReason:yt(Rc(["endTurn","stopSequence","maxTokens","toolUse"]).or(he())),role:Rc(["user","assistant"]),content:Vi([V5,er(V5)])}),Pdr=Ge({type:St("boolean"),title:he().optional(),description:he().optional(),default:vc().optional()}),Ndr=Ge({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()}),Cdr=Ge({type:Rc(["number","integer"]),title:he().optional(),description:he().optional(),minimum:ui().optional(),maximum:ui().optional(),default:ui().optional()}),Mdr=Ge({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),default:he().optional()}),Ddr=Ge({type:St("string"),title:he().optional(),description:he().optional(),oneOf:er(Ge({const:he(),title:he()})),default:he().optional()}),Ldr=Ge({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),enumNames:er(he()).optional(),default:he().optional()}),Udr=Vi([Mdr,Ddr]),Fdr=Ge({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:Ge({type:St("string"),enum:er(he())}),default:er(he()).optional()}),jdr=Ge({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:Ge({anyOf:er(Ge({const:he(),title:he()}))}),default:er(he()).optional()}),Hdr=Vi([Fdr,jdr]),qdr=Vi([Ldr,Udr,Hdr]),Bdr=Vi([qdr,Pdr,Ndr,Cdr]),zdr=el.extend({mode:St("form").optional(),message:he(),requestedSchema:Ge({type:St("object"),properties:Oo(he(),Bdr),required:er(he()).optional()})}),Gdr=el.extend({mode:St("url"),message:he(),elicitationId:he(),url:he().url()}),Vdr=Vi([zdr,Gdr]),Wdr=ja.extend({method:St("elicitation/create"),params:Vdr}),Kdr=nR.extend({elicitationId:he()}),Ydr=Xd.extend({method:St("notifications/elicitation/complete"),params:Kdr}),RTe=Ac.extend({action:Rc(["accept","decline","cancel"]),content:CPt(e=>e===null?void 0:e,Oo(he(),Vi([he(),ui(),vc(),er(he())])).optional())}),Zdr=Ge({type:St("ref/resource"),uri:he()}),Jdr=Ge({type:St("ref/prompt"),name:he()}),Xdr=el.extend({ref:Vi([Jdr,Zdr]),argument:Ge({name:he(),value:he()}),context:Ge({arguments:Oo(he(),he()).optional()}).optional()}),ATe=ja.extend({method:St("completion/complete"),params:Xdr});efr=Ac.extend({completion:Sp({values:er(he()).max(100),total:yt(ui().int()),hasMore:yt(vc())})}),tfr=Ge({uri:he().startsWith("file://"),name:he().optional(),_meta:Oo(he(),xo()).optional()}),nfr=ja.extend({method:St("roots/list")}),QPt=Ac.extend({roots:er(tfr)}),rfr=Xd.extend({method:St("notifications/roots/list_changed")}),zNi=Vi([QTe,BPt,ATe,ZPt,TTe,_Te,STe,bTe,ETe,edr,ndr,z5,vTe,eve,nve,rve]),GNi=Vi([XTe,$Te,zPt,rfr,B5]),VNi=Vi([JTe,JPt,XPt,RTe,QPt,tve,ive,c8]),WNi=Vi([QTe,Odr,Wdr,nfr,eve,nve,rve]),KNi=Vi([XTe,$Te,Tdr,idr,Qlr,bdr,hdr,B5,Ydr]),YNi=Vi([JTe,Hlr,efr,pdr,adr,Ylr,Zlr,Xlr,dve,ydr,tve,ive,c8]),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 wTe(i.elicitations,n)}return new e(t,n,r)}},wTe=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:[]}};ifr=Symbol("Let zodToJsonSchema decide on which parser to use"),sOt={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"},sfr=e=>typeof e=="string"?{...sOt,name:e}:{...sOt,...e},ofr=e=>{let t=sfr(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}]))}};eNt=(e,t)=>{let n=0;for(;nEr(e.innerType._def,t);dfr=(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};mfr=e=>"type"in e&&e.type==="string"?!1:"allOf"in e;eTe=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:()=>(eTe===void 0&&(eTe=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),eTe),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-_]*$/};Sfr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");W5={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};aOt=(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};Ofr=(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)},Pfr=(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)}};Ufr=(e,t)=>Er(e.innerType._def,t),Ffr=(e,t,n)=>{switch(t){case De.ZodString:return rNt(e,n);case De.ZodNumber:return wfr(e,n);case De.ZodObject:return kfr(e,n);case De.ZodBigInt:return cfr(e,n);case De.ZodBoolean:return ufr();case De.ZodDate:return nNt(e,n);case De.ZodUndefined:return Dfr(n);case De.ZodNull:return vfr(n);case De.ZodArray:return afr(e,n);case De.ZodUnion:case De.ZodDiscriminatedUnion:return Rfr(e,n);case De.ZodIntersection:return gfr(e,n);case De.ZodTuple:return Mfr(e,n);case De.ZodRecord:return iNt(e,n);case De.ZodLiteral:return yfr(e,n);case De.ZodEnum:return hfr(e);case De.ZodNativeEnum:return _fr(e);case De.ZodNullable:return Afr(e,n);case De.ZodOptional:return Ofr(e,n);case De.ZodMap:return Efr(e,n);case De.ZodSet:return Cfr(e,n);case De.ZodLazy:return()=>e.getter()._def;case De.ZodPromise:return Nfr(e,n);case De.ZodNaN:case De.ZodNever:return Tfr(n);case De.ZodEffects:return pfr(e,n);case De.ZodAny:return Qu(n);case De.ZodUnknown:return Lfr(n);case De.ZodDefault:return ffr(e,n);case De.ZodBranded:return tNt(e,n);case De.ZodReadonly:return Ufr(e,n);case De.ZodCatch:return lfr(e,n);case De.ZodPipeline:return Pfr(e,n);case De.ZodFunction:case De.ZodVoid:case De.ZodSymbol:return;default:return(r=>{})(t)}};jfr=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:eNt(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}},Hfr=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),qfr=(e,t)=>{let n=ofr(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};zfr=6e4,kTe=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(XTe,n=>{this._oncancel(n)}),this.setNotificationHandler($Te,n=>{this._onprogress(n)}),this.setRequestHandler(QTe,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(eve,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(nve,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(!$v(a.status))return await this._waitForTaskUpdate(o,r.signal),await i();if($v(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(rve,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(Vlr,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($v(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),I5(c)||Olr(c)?this._onresponse(c):iOt(c)?this._onrequest(c,u):xlr(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),I5(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(I5(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),I5(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,c8,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},$v(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=OU(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:zfr,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},tve,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},ive,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},Wlr,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=uOt(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=lOt(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=uOt(t);this._notificationHandlers.set(r,i=>{let s=lOt(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"&&iOt(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=B5.parse({method:"notifications/tasks/status",params:a});await this.notification(c),$v(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($v(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=B5.parse({method:"notifications/tasks/status",params:c});await this.notification(u),$v(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}};Vfr=gOt(ROt(),1),Wfr=gOt(Arr(),1);ITe=class{constructor(t){this._ajv=t??Kfr()}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)}}},xTe=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)}};OTe=class extends kTe{constructor(t,n){var r,i;super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(G5.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(zPt,()=>{var s;return(s=this.oninitialized)===null||s===void 0?void 0:s.call(this)}),this._capabilities.logging&&this.setRequestHandler(ZPt,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=G5.safeParse(u);return l.success&&this._loggingLevels.set(c,l.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new xTe(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Gfr(this._capabilities,t)}setRequestHandler(t,n){var r,i,s;let o=KU(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=OU(z5,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=OU(c8,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=OU(dve,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;Zfr((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&&Yfr((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:wlr.includes(n)?n:MPt,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"},JTe)}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},XPt,n):this.request({method:"sampling/createMessage",params:t},JPt,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},RTe,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},RTe,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},QPt,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"})}},sNt=Symbol.for("mcp.completable");(function(e){e.Completable="McpCompletable"})(fOt||(fOt={}));Qfr=/^[A-Za-z0-9._-]{1,128}$/;PTe=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)}},NTe=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 OTe(t,n)}get experimental(){return this._experimental||(this._experimental={tasks:new PTe(this)}),this._experimental}async connect(t){return await this.server.connect(t)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler(tE(vTe)),this.server.assertCanSetRequestHandler(tE(z5)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(vTe,()=>({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=RU(n.inputSchema);return i?cOt(i,{strictUnions:!0,pipeStrategy:"input"}):tpr})(),annotations:n.annotations,execution:n.execution,_meta:n._meta};if(n.outputSchema){let i=RU(n.outputSchema);i&&(r.outputSchema=cOt(i,{strictUnions:!0,pipeStrategy:"output"}))}return r})})),this.server.setRequestHandler(z5,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=RU(t.inputSchema),s=i??t.inputSchema,o=await Q_e(s,n);if(!o.success){let a="error"in o?o.error:"Unknown error",c=$_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=RU(t.outputSchema),s=await Q_e(i,n.structuredContent);if(!s.success){let o="error"in s?s.error:"Unknown error",a=$_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(tE(ATe)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(ATe,async t=>{switch(t.params.ref.type){case"ref/prompt":return Qdr(t),this.handlePromptCompletion(t,t.params.ref);case"ref/resource":return $dr(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 AU;let i=KU(r.argsSchema),s=i?.[t.params.argument.name];if(!Jfr(s))return AU;let o=Xfr(s);if(!o)return AU;let a=await o(t.params.argument.value,t.params.context);return mOt(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 AU;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 AU;let s=await i(t.params.argument.value,t.params.context);return mOt(s)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(tE(STe)),this.server.assertCanSetRequestHandler(tE(bTe)),this.server.assertCanSetRequestHandler(tE(ETe)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(STe,async(t,n)=>{let r=Object.entries(this._registeredResources).filter(([s,o])=>o.enabled).map(([s,o])=>({uri:s,name:o.name,...o.metadata})),i=[];for(let s of Object.values(this._registeredResourceTemplates)){if(!s.resourceTemplate.listCallback)continue;let o=await s.resourceTemplate.listCallback(n);for(let a of o.resources)i.push({...s.metadata,...a})}return{resources:[...r,...i]}}),this.server.setRequestHandler(bTe,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([n,r])=>({name:n,uriTemplate:r.resourceTemplate.uriTemplate.toString(),...r.metadata}))})),this.server.setRequestHandler(ETe,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(tE(_Te)),this.server.assertCanSetRequestHandler(tE(TTe)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(_Te,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,t])=>t.enabled).map(([t,n])=>({name:t,title:n.title,description:n.description,arguments:n.argsSchema?rpr(n.argsSchema):void 0}))})),this.server.setRequestHandler(TTe,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=RU(r.argsSchema),s=await Q_e(i,t.params.arguments);if(!s.success){let c="error"in s?s.error:"Unknown error",u=$_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:xU(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=xU(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){pOt(t);let l={title:n,description:r,inputSchema:hOt(i),outputSchema:hOt(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"&&pOt(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=xU(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];CTe(c)?(i=n.shift(),n.length>1&&typeof n[0]=="object"&&n[0]!==null&&!CTe(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()}},tpr={type:"object",properties:{}};AU={completion:{values:[],hasMore:!1}}});var uNt={};Ar(uNt,{runRepairAgent:()=>lpr});import{existsSync as rR,readdirSync as fve,readFileSync as pve}from"node:fs";import{join as ry}from"node:path";async function lpr(e){let t;try{t=(await Promise.resolve().then(()=>(cNt(),aNt))).query}catch{return{success:!1,summary:"Claude Agent SDK not available \u2014 mechanical repair applied, remaining issues need manual attention",fallbackUsed:!0}}let n=dpr(e),r=fpr(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 dpr(e){let t=ppr(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) @@ -1464,7 +1464,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 Ofr(e){let t=[];t.push(`Repair intent "${e.slug}" (studio: ${e.studio}, active stage: ${e.activeStage}).`),e.synthesizedStages.length>0&&t.push(`## Already Fixed (Mechanical Synthesis) +All file paths you read/write should be relative to the intent directory unless reading studio definitions.`}function fpr(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(` @@ -1489,7 +1489,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=Pfr(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=hpr(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): @@ -1510,66 +1510,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 Nfr(e){let t=ny(e,"stages");if(!Jv(t))return"(no stages directory found)";let n=[],r;try{r=nve(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=rve(s,"utf8"),{data:a}=(0,Q6.default)(o),c=Object.keys(a).length>0?Object.entries(a).map(([u,l])=>`${u}: ${JSON.stringify(l)}`).join(` +`)}function ppr(e){let t=ry(e,"stages");if(!rR(t))return"(no stages directory found)";let n=[],r;try{r=fve(t).filter(i=>rR(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=pve(s,"utf8"),{data:a}=(0,u8.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 Pfr(e){let t=[],n=ny(e.studioDir,"stages");if(!Jv(n))return t;let r={},i;try{i=nve(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 nve(a).filter(u=>u.endsWith(".md"))){let{data:u}=(0,Q6.default)(rve(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=rve(s,"utf8"),{data:a}=(0,Q6.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 Q6,KNt=v(()=>{"use strict";Q6=Se(Kt(),1)});import{execFileSync as sb}from"node:child_process";import{existsSync as iu,mkdirSync as Cfr,readFileSync as K0,writeFileSync as Mfr}from"node:fs";import{join as po}from"node:path";function ry(e){let t=Ybe(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 ZNt(){try{return sb("git",["branch","--show-current"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return""}}function Lfr(e){for(let t of e.content??[]){if(t.type!=="text"||typeof t.text!="string")continue;let n=t.text.indexOf(` +`)}function hpr(e){let t=[],n=ry(e.studioDir,"stages");if(!rR(n))return t;let r={},i;try{i=fve(n).filter(o=>rR(ry(n,o,"STAGE.md")))}catch{return t}for(let o of i){let a=ry(n,o,"discovery");if(rR(a))try{for(let c of fve(a).filter(u=>u.endsWith(".md"))){let{data:u}=(0,u8.default)(pve(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(!rR(s))return t;try{let o=pve(s,"utf8"),{data:a}=(0,u8.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);rR(d)||t.push({name:u.discovery,path:l,neededBy:e.activeStage})}}}catch{}return t}var u8,lNt=v(()=>{"use strict";u8=Re(Kt(),1)});import{execFileSync as cE}from"node:child_process";import{existsSync as su,mkdirSync as mpr,readFileSync as rO,writeFileSync as gpr}from"node:fs";import{join as po}from"node:path";function iy(e){let t=s_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 dNt(){try{return cE("git",["branch","--show-current"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return""}}function ypr(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 Dfr(e,t,n){let{orchestratorToolHandlers:r}=await Promise.resolve().then(()=>(fU(),ive)),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 Spr(e,t,n){let{orchestratorToolHandlers:r}=await Promise.resolve().then(()=>(EU(),hve)),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 zU(e){if(!iu(e))return{};let t=K0(e,"utf8"),{data:n}=re(t);return n}var YNt,JNt=v(()=>{"use strict";yr();Xbe();gK();Oa();Jbe();Vd();i0t();ih();i6();s1();Qc();ze();Kn();vo();Gi();vs();YNt={name:"haiku_run_next",description:"Advance the workflow. Returns the next action for the agent to take, with rendered instructions appended. Auto-resolves `intent` from the current branch when omitted; if multiple intents are active, requires explicit `intent`. Pass `external_review_url` when a stage is blocked on external review to record the URL for approval polling.",inputSchema:{type:"object",properties:{intent:{type:"string"},external_review_url:{type:"string"},state_file:{type:"string"},pickup:{type:"boolean",description:"Set true when invoked from /haiku:haiku-pickup. The engine fetches origin and materializes the active stage branch locally so the user can `git switch` into in-flight work, then appends a pickup hint to the response."}}},async handle(e,t){let n=Date.now(),r=e.intent||"";if(!r){let S=gv();if(S)r=S.slug;else{if(Ae())return{content:[{type:"text",text:"No intent specified and the current branch isn't an intent branch (`haiku//main` or `haiku//`). Pass `intent` explicitly, or `git switch haiku//main` to scope the engine to a specific intent. The engine refuses to auto-target an intent the user isn't actively on \u2014 that's how stray intent dirs end up touched and polluting `git status`."}],isError:!0};{let b=ve(),_=po(b,"intents"),T=iu(_)?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=iSe(r,"intent");if(s)return{content:[{type:"text",text:s}],isError:!0};if(Ae())try{let S=sb("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim(),b=["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD"].find(_=>iu(po(S,_)));if(b){let _=sb("git",["diff","--name-only","--diff-filter=U"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` -`).filter(Boolean),T=sb("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=gpe();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 QU(e){if(!su(e))return{};let t=rO(e,"utf8"),{data:n}=re(t);return n}var fNt,pNt=v(()=>{"use strict";ar();a_e();A3();Oa();o_e();Yd();_xt();sh();m5();p1();$c();ze();Kn();vo();zi();vs();fNt={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=_v();if(S)r=S.slug;else{if(Ee())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=ve(),_=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=hSe(r,"intent");if(s)return{content:[{type:"text",text:s}],isError:!0};if(Ee())try{let S=cE("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 _=cE("git",["diff","--name-only","--diff-filter=U"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` +`).filter(Boolean),T=cE("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=Ape();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=po(ve(),"intents",r,"intent.md");if(iu(S)){let b=zU(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(),gY));if(A()){OT();let{resolveStudioStages:R}=await Promise.resolve().then(()=>(Vd(),XNt)),{reconcileMisroutedStageMerges:x}=await Promise.resolve().then(()=>(yr(),zL)),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(ve(),"intents",r,"intent.md");if(su(S)){let E=QU(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(()=>(ze(),AZ));if(R()){NT();let{resolveStudioStages:A}=await Promise.resolve().then(()=>(Yd(),hNt)),{reconcileMisroutedStageMerges:x}=await Promise.resolve().then(()=>(ar(),MI)),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&&Ae())try{OT();let S=po(ve(),"intents",r,"intent.md");if(iu(S)){let _=zU(S).studio||"";if(_){let T=ai(r,_);if(T){let A=`haiku/${r}/${T}`;try{sb("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=upe(r);S.error&&console.error(`[haiku_run_next] reconcile: ${S.error}`)}{let S=po(ve(),"intents",r,"intent.md");if(iu(S)){let b=zU(S),_=b.studio||"",T=b.mode||"";if(!_||!T){if(!mr().startsWith(`haiku/${r}/`)){let x=gr(r,void 0);if(!x.ok)return ZE(r,void 0,x,"run_next entry \u2014 intent main (pre-selection)")}}else{let A=$fe(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=po(S,"intents",r,"intent.md");iu(b)&&Le(b,"external_review_url",e.external_review_url)}catch{}try{let{drainPendingDispatches:S}=await Promise.resolve().then(()=>(pv(),n1));S(r)}catch(S){console.error(`[haiku_run_next] drainPendingDispatches failed: ${S instanceof Error?S.message:String(S)}`)}let c=ry(r);try{let S=ZNt(),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=po(T,"intent.md");if(iu(A)){let R=zU(A),x=R.studio||"",k=R.mode||"continuous";if(x&&wx(T,x,_,k)){let N=`haiku/${r}/${_}`,P=`haiku/${r}/main`;LL(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=A0(c);if(++S>hU)return nm("select_*",S,c,"cap");if(l6(n))return d6("select_*",S,n,c);let _=await Dfr(c.action,r,t);if(!_.ok)return{content:[{type:"text",text:_.message}],isError:!0};if(c=ry(r),(c.action==="select_studio"||c.action==="select_mode"||c.action==="select_stage")&&A0(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(),n1)),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(),gY));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(),n1));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=A0(c);if(++u>hU)return nm("close_feedback",u,c,"cap");if(l6(n))return d6("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();Le(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(),n1));C({slug:r,stage:b,targetUnit:N,invalidates:P})}if(R.origin==="drift"&&N){let C=po(ve(),"intents",r,"stages",b,"units",`${N}.md`);if(iu(C)){let F=po(ve(),"intents",r),{buildReviewRecord:V}=await Promise.resolve().then(()=>(Yf(),Eyt)),K=K0(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 L=U;if(typeof L.at!="string")continue;let H=V(C,{intentDir:F,unitInputs:G});X[q]={...L,body_sha256:H.body_sha256,input_witnesses:H.input_witnesses},M=!0}M&&Le(C,"reviews",X)}}c=ry(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=po(ve(),"intents",r,"intent.md");iu(S)&&(Le(S,"sealed_at",new Date().toISOString()),wt(`haiku: seal intent ${r}`),c=ry(r))}catch(S){console.error(`[haiku_run_next] merge_intent execution failed: ${S instanceof Error?S.message:String(S)}`)}if(c.action==="pending_seal"&&e.pickup===!0)try{let S=po(ve(),"intents",r,"intent.md");if(iu(S)){let{data:b}=re(K0(S,"utf8")),_=b.approvals&&typeof b.approvals=="object"?{...b.approvals}:{},T=!1;for(let A of Object.keys(_))YL.has(A)&&_[A]!=null&&(_[A]=null,T=!0);T&&(Le(S,"approvals",_),wt(`haiku: re-open delivery review on pickup for ${r}`),c=ry(r))}}catch(S){console.error(`[haiku_run_next] pending-seal pickup re-open failed: ${S instanceof Error?S.message:String(S)}`)}let d=0,f=null;for(;c.action==="complete_stage"&&typeof c.stage=="string";){let S=A0(c);if(++d>hU)return nm("complete_stage",d,c,"cap");if(l6(n))return d6("complete_stage",d,n,c);if(S===f)return nm("complete_stage",d,c,"no_progress");f=S;let b=c.stage;if(fye(pe(r),b)){c={action:"record_observations",intent:r,stage:b};break}try{let{isGitRepo:_}=await Promise.resolve().then(()=>(ze(),gY));if(!_()){c=ry(r);continue}try{let x=`haiku/${r}/${b}`;if(ZNt()===x){let k=`.haiku/intents/${r}/stages/${b}/observations.md`;sb("git",["status","--porcelain","--",k],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()&&(sb("git",["add","--",k],{stdio:"ignore"}),sb("git",["commit","-m",`haiku: observations for stage ${b}`],{stdio:"ignore"}))}}catch{}let{mergeStageBranchIntoMain:T}=await Promise.resolve().then(()=>(yr(),zL)),{withIntentMainLock:A}=await Promise.resolve().then(()=>(Hx(),wSt)),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&&Ee())try{NT();let S=po(ve(),"intents",r,"intent.md");if(su(S)){let _=QU(S).studio||"";if(_){let T=ai(r,_);if(T){let R=`haiku/${r}/${T}`;try{cE("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=Spe(r);S.error&&console.error(`[haiku_run_next] reconcile: ${S.error}`)}{let S=po(ve(),"intents",r,"intent.md");if(su(S)){let E=QU(S),_=E.studio||"",T=E.mode||"";if(!_||!T){if(!gr().startsWith(`haiku/${r}/`)){let x=yr(r,void 0);if(!x.ok)return Xb(r,void 0,x,"run_next entry \u2014 intent main (pre-selection)")}}else{let R=cpe(r);if(!R.ok){let A=R.conflictAt==="mainline_to_intent_main"?`haiku/${r}/main`:gr()||`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=ve(),E=po(S,"intents",r,"intent.md");su(E)&&Ne(E,"external_review_url",e.external_review_url)}catch{}try{let{drainPendingDispatches:S}=await Promise.resolve().then(()=>(Sv(),l1));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=dNt(),E=`haiku/${r}/`,_=S.startsWith(E)&&S!==`${E}main`?S.slice(E.length):null;if(_&&!(typeof c.stage=="string"&&c.stage===_)){let T=ce(r),R=po(T,"intent.md");if(su(R)){let A=QU(R),x=A.studio||"",k=A.mode||"continuous";if(x&&C0(T,x,_,k)){let P=`haiku/${r}/${_}`,N=`haiku/${r}/main`;WD(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=Mx(c);if(++S>TU)return im("select_*",S,c,"cap");if(_5(n))return T5("select_*",S,n,c);let _=await Spr(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")&&Mx(c)===E)return im("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(()=>(Sv(),l1)),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(()=>(ze(),AZ));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(()=>(Sv(),l1));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=Mx(c);if(++u>TU)return im("close_feedback",u,c,"cap");if(_5(n))return T5("close_feedback",u,n,c);if(S===l)return im("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();Ne(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(()=>(Sv(),l1));C({slug:r,stage:E,targetUnit:P,invalidates:N})}if(A.origin==="drift"&&P){let C=po(ve(),"intents",r,"stages",E,"units",`${P}.md`);if(su(C)){let L=po(ve(),"intents",r),{buildReviewRecord:G}=await Promise.resolve().then(()=>(Xf(),Oyt)),W=rO(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 j=G(C,{intentDir:L,unitInputs:B});Q[V]={...M,body_sha256:j.body_sha256,input_witnesses:j.input_witnesses},F=!0}F&&Ne(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(ve(),"intents",r,"intent.md");su(S)&&(Ne(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(ve(),"intents",r,"intent.md");if(su(S)){let{data:E}=re(rO(S,"utf8")),_=E.approvals&&typeof E.approvals=="object"?{...E.approvals}:{},T=!1;for(let R of Object.keys(_))FT.has(R)&&_[R]!=null&&(_[R]=null,T=!0);T&&(Ne(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=Mx(c);if(++d>TU)return im("complete_stage",d,c,"cap");if(_5(n))return T5("complete_stage",d,n,c);if(S===f)return im("complete_stage",d,c,"no_progress");f=S;let E=c.stage;if(_ye(ce(r),E)){c={action:"record_observations",intent:r,stage:E};break}try{let{isGitRepo:_}=await Promise.resolve().then(()=>(ze(),AZ));if(!_()){c=iy(r);continue}try{let x=`haiku/${r}/${E}`;if(dNt()===x){let k=`.haiku/intents/${r}/stages/${E}/observations.md`;cE("git",["status","--porcelain","--",k],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()&&(cE("git",["add","--",k],{stdio:"ignore"}),cE("git",["commit","-m",`haiku: observations for stage ${E}`],{stdio:"ignore"}))}}catch{}let{mergeStageBranchIntoMain:T}=await Promise.resolve().then(()=>(ar(),MI)),{withIntentMainLock:R}=await Promise.resolve().then(()=>(K0(),USt)),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(()=>(a0t(),o0t)),k=pe(r),N=po(k,"intent.md");if(iu(N)){let P=zU(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=ry(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(ve(),"intents",r,"intent.md");if(iu(S)){let b=gr(r,c.stage);if(!b.ok)return ZE(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=K0(po(S,"intent.md"),"utf8");p=re(b).data}catch{}let h=p.studio||"",m=S=>{b0(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 _=X1(r,h,S,pe(r)),T=L5(_),{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(()=>(Rxt(),vxt)),k=ce(r),P=po(k,"intent.md");if(su(P)){let N=QU(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(ve(),"intents",r,"intent.md");if(su(S)){let E=yr(r,c.stage);if(!E.ok)return Xb(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=ce(r),E=rO(po(S,"intent.md"),"utf8");p=re(E).data}catch{}let h=p.studio||"",m=S=>{Ox(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 _=sU(r,h,S,ce(r)),T=W6(_),{tell_user:R,next_step:A,...x}=S;return`${JSON.stringify(x,null,2)} --- -${T}`};if(c.action==="external_review_requested"&&!e.external_review_url&&!p.external_review_url&&typeof c.stage=="string"&&c.stage.length>0)try{let{openStagePullRequest:S}=await Promise.resolve().then(()=>(yr(),zL)),b=S({slug:r,stage:c.stage});if(b.createdUrl){try{let _=po(ve(),"intents",r,"intent.md");Le(_,"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(()=>(ar(),MI)),E=S({slug:r,stage:c.stage});if(E.createdUrl){try{let _=po(ve(),"intents",r,"intent.md");Ne(_,"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=A0(c);if(++y>hU)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(),Xft)),F=po(ve(),"intents",r,"intent.md"),V=iu(F)?re(K0(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=sve();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{Cl(C.session_id,{announced_at:new Date().toISOString()})}catch{}let K=()=>lv(C.session_id)||KD(r);!C.browser_attached&&!K()&&lp(C.review_url,"Gate review",C.session_id);let{orchestratorToolHandlers:$}=await Promise.resolve().then(()=>(fU(),ive)),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=Lfr(X);if(G&&new Set(["advance_phase","advance_stage","intent_approved","advance"]).has(G)){c=ry(r);continue}return X}catch(C){let F=C instanceof Error?C.message:String(C),V=C instanceof Error?C.stack:"",K=F.includes("lost presence"),$=F==="aborted"||t?.aborted,B=$?"abort":K?"await":"prepare";console.error(`[haiku] gate_review ${B} failed: ${F}`),$||ms(C,{intent:r,stage:b});try{let X=po(process.cwd(),".haiku","logs");Cfr(X,{recursive:!0}),Mfr(po(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=Mx(c);if(++g>TU)return im("gate_review",g,c,"cap");if(S===y)return im("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(),cpt)),L=po(ve(),"intents",r,"intent.md"),G=su(L)?re(rO(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=mve();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=()=>mv(C.session_id)||t1(r);!C.browser_attached&&!W()&&dp(C.review_url,"Gate review",C.session_id);let{orchestratorToolHandlers:$}=await Promise.resolve().then(()=>(EU(),hve)),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=ypr(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");mpr(Q,{recursive:!0}),gpr(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(()=>(KNt(),WNt)),b=ve(),_=po(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 ZE(r,c.stage||void 0,N,"after repair-agent run")}if(k.success&&!k.fallbackUsed){let N=ry(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(()=>(lNt(),uNt)),E=ve(),_=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=yr(r,c.stage||void 0);if(!P.ok)return Xb(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=po(S,"intent.md");if(iu(b)){let _=K0(b,"utf8"),{data:T}=re(_),A=T.studio||"";if(A){let R=ai(r,A);if(R){let x=`haiku/${r}/${R}`,k=FL(r,R);!k.ok&&k.error&&console.error(`[haiku] auto-push of ${x} failed: ${k.error}`)}else{let x=`haiku/${r}/main`;if(Nt(x)&&eK(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=ce(r),E=po(S,"intent.md");if(su(E)){let _=rO(E,"utf8"),{data:T}=re(_),R=T.studio||"";if(R){let A=ai(r,R);if(A){let x=`haiku/${r}/${A}`,k=YD(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)&&u3(x)){let k=Lh(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 $Nt,readFileSync as Ufr}from"node:fs";import{join as QNt}from"node:path";function Ffr(e){if(!$Nt(e))return{};let t=Ufr(e,"utf8"),{data:n}=re(t);return n}var jfr,ePt,tPt=v(()=>{"use strict";yr();Vd();JE();ji();uo();$ge();ze();vo();Gi();Fv();vs();jfr={continuous:"You're in chat for every stage gate. Best for first-time use or work you want to steer.",discrete:"Each stage opens a real GitHub PR / GitLab MR. Merging the PR is your approval signal.",autopilot:"Agent runs the whole pipeline. Only the pre-intent review and the final delivery PR require human attention.","discrete-hybrid":"Continuous within most stages, but specific stages declared with external review still pop a per-stage PR.",quick:"Single stage only. Operates like continuous but the workflow runs exactly one studio stage and stops. Not changeable mid-flight."},ePt={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:hx,async handle(e,t){let n=Be(e,Rge,"haiku_select_mode");if(n)return n;let r=e,i=r.intent,s=ve(),o=QNt(s,"intents",i),a=QNt(o,"intent.md");if(!$Nt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=Ffr(a),u=c.studio||"";if(!u)return ye(JSON.stringify({error:"studio_not_selected",message:`Intent '${i}' has no studio selected. Call haiku_select_studio first.`}));let l=(c.mode||"").toLowerCase(),{findCurrentStage:d}=await Promise.resolve().then(()=>(Oa(),Ix)),p=!!(d(i,u)??""),m=bZ.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:jfr[A]??A})),T=await Yu({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(Le(a,"mode",E),E==="quick")Kh(a,["stages"]);else{let b=Fs(u);Le(a,"stages",b)}return wt(`haiku: select mode ${E} for intent ${i}`),Ke("haiku.mode.selected",{intent:i,mode:E,previous_mode:l||"(none)",intent_started:String(p)}),ye(JSON.stringify({action:"mode_selected",intent:i,mode:E,previous_mode:l||null,message:E==="quick"?zn(`The user picked **quick** mode for "${i}".`,`Call haiku_run_next { intent: "${i}" } \u2014 the engine will open the stage picker next.`):zn(`The user picked **${E}** mode for "${i}"${l&&l!==E?` (was ${l})`:""}.`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))}}});import{existsSync as rPt,readFileSync as Hfr}from"node:fs";import{join as nPt}from"node:path";function qfr(e){if(!rPt(e))return{};let t=Hfr(e,"utf8"),{data:n}=re(t);return n}var iPt,sPt=v(()=>{"use strict";yr();Vd();JE();ji();uo();ze();vo();Gi();Fv();vs();iPt={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:mx,async handle(e,t){let n=Be(e,wge,"haiku_select_stage");if(n)return n;let r=e,i=r.intent,s=ve(),o=nPt(s,"intents",i),a=nPt(o,"intent.md");if(!rPt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=qfr(a),u=c.studio||"";if(!u)return ye(JSON.stringify({error:"studio_not_selected",message:`Intent '${i}' has no studio selected. Call haiku_select_studio first.`}));let l=(c.mode||"").toLowerCase();if(l!=="quick")return ye(JSON.stringify({error:"mode_not_quick",message:`haiku_select_stage only applies to quick-mode intents (intent '${i}' is in '${l||"(none)"}' mode). Non-quick modes get the studio's full stage list set automatically by haiku_select_mode.`}));let d=c.stages||[];if(Array.isArray(d)&&d.length>0)return ye(JSON.stringify({error:"stage_already_set",message:`Intent '${i}' already has stages set (${JSON.stringify(d)}). Reset the intent if you need to pick a different stage.`}));let f=Fs(u);if(f.length===0)return{content:[{type:"text",text:`Studio '${u}' has no stages.`}],isError:!0};let h=(r.options??[]).map(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 Yu({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?(Le(a,"stages",[m]),wt(`haiku: select stage ${m} for quick intent ${i}`),Ke("haiku.stage.selected",{intent:i,stage:m,studio:u}),ye(JSON.stringify({action:"stage_selected",intent:i,stage:m,stages:[m],message:zn(`The user picked the **${m}** stage for quick intent "${i}".`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))):{content:[{type:"text",text:`Error: branch enforcement failed after stage selection for intent '${i}' \u2014 ${y.message}. Resolve manually and retry.`}],isError:!0}}}});function oPt(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 aPt=v(()=>{"use strict"});import{existsSync as ove,readdirSync as Bfr,readFileSync as Gfr}from"node:fs";import{join as $6}from"node:path";var cPt,uPt=v(()=>{"use strict";yr();Vd();JE();ji();uo();ze();Kn();vo();Gi();Fv();vs();aPt();cPt={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:px,async handle(e,t){let n=Be(e,Age,"haiku_select_studio");if(n)return n;let r=e,i=r.intent,s=ve(),o=$6(s,"intents",i),a=$6(o,"intent.md");if(!ove(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=$6(o,"stages");if(ove(c))for(let h of Bfr(c,{withFileTypes:!0})){if(!h.isDirectory())continue;let m=$6(c,h.name,"state.json");if(ove(m)){let y=jE(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(Gfr(a,"utf8"));E=S.studio_candidates}catch{}Array.isArray(E)&&(m=E.filter(S=>typeof S=="string").map(S=>si(S)).filter(S=>S!==null).map(S=>S.name))}let y=oPt(u,m),g=await Yu({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 Le(a,"studio",d),wt(`haiku: select studio ${d} for intent ${i}`),Ke("haiku.studio.selected",{intent:i,studio:d}),ye(JSON.stringify({action:"studio_selected",intent:i,studio:d,all_studio_stages:p,message:zn(`The user selected the **${d}** studio for "${i}". Studio is now locked.`,"Continue the tick \u2014 the engine will drive the next selection (mode, then stage if quick) automatically.")},null,2))}}});import{existsSync as lPt,readFileSync as zfr,writeFileSync as Vfr}from"node:fs";import{join as dPt}from"node:path";var ave,fPt,pPt=v(()=>{"use strict";ave=Se(Kt(),1);yr();E0();ji();uo();ze();Gi();vs();fPt={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:Ex,handle(e){let t=Be(e,Oge,"haiku_stage_decompose_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=S0({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=dPt(a,"intents",n);if(!lPt(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=dPt(c,"stages",r,"elaboration.md");if(!lPt(u))return{content:[{type:"text",text:JSON.stringify({error:"elaboration_not_found",tool:"haiku_stage_decompose_seal",message:`No elaboration artifact at ${u}. The conversation-elaborate gate must pass before decompose-verify can stamp it.`},null,2)}],isError:!0};let l=gr(n,r);if(!l.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for decompose seal on '${n}/${r}' \u2014 ${l.message}. Resolve manually and retry.`}],isError:!0};let d=zfr(u,"utf8"),f=(0,ave.default)(d),p=f.data;if(typeof p.decompose_verified_at=="string"&&p.decompose_verified_at)return ye(JSON.stringify({action:"noop",slug:n,stage:r,path:u,decompose_verified_at:p.decompose_verified_at,message:`Decompose for '${n}/${r}' is already verified.`},null,2));let h=new Date().toISOString(),m={...p,decompose_verified_at:h};return s.trim()&&(m.decompose_verified_notes=s.trim()),Vfr(u,ave.default.stringify(f.content,m)),wt(`haiku: seal decompose for ${n}/${r}`),ye(JSON.stringify({action:"decompose_sealed",slug:n,stage:r,path:u,decompose_verified_at:h,...s.trim()?{decompose_verified_notes:s.trim()}:{},message:`Sealed decompose for '${n}/${r}'. The cursor will advance past decompose_review on the next tick.`},null,2))}}});import{existsSync as Wfr,mkdirSync as Kfr,writeFileSync as Zfr}from"node:fs";import{join as cve}from"node:path";var hPt,mPt,gPt=v(()=>{"use strict";hPt=Se(Kt(),1);yr();E0();ji();uo();ze();Gi();vs();mPt={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:yx,handle(e){let t=Be(e,Ige,"haiku_stage_elaboration_record");if(t)return t;let n=e.intent,r=e.stage,i=e.body,s=ve(),o=cve(s,"intents",n);if(!Wfr(o))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_stage_elaboration_record",message:`Intent '${n}' not found.`},null,2)}],isError:!0};let a=cve(o,"stages",r),c=gr(n,r);if(!c.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for elaboration record on '${n}/${r}' \u2014 ${c.message}. Resolve manually and retry.`}],isError:!0};Kfr(a,{recursive:!0});let u=cve(a,"elaboration.md"),l=new Date().toISOString(),d={recorded_at:l,intent:n,stage:r};return Zfr(u,hPt.default.stringify(i,d)),Kbe({kind:"stage_elaborate",slug:n,stage:r}),Kbe({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 yPt,readFileSync as Yfr,writeFileSync as Jfr}from"node:fs";import{join as SPt}from"node:path";var uve,EPt,bPt=v(()=>{"use strict";uve=Se(Kt(),1);yr();E0();ji();uo();ze();Gi();vs();EPt={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:Sx,handle(e){let t=Be(e,xge,"haiku_stage_elaboration_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=S0({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=SPt(a,"intents",n);if(!yPt(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=SPt(c,"stages",r,"elaboration.md");if(!yPt(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=Yfr(u,"utf8"),f=(0,uve.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,uve.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 lve}from"node:child_process";import{existsSync as VU,readdirSync as _Pt,readFileSync as Xfr,rmSync as TPt,statSync as vPt}from"node:fs";import{join as ob}from"node:path";var APt,RPt=v(()=>{"use strict";yr();JE();ji();uo();ze();Gi();vs();APt={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:dx,async handle(e,t){let n=Be(e,Ege,"haiku_stage_reset");if(n)return n;let{intent:r,stage:i}=e,s=ve(),o=ob(s,"intents",r),a=ob(o,"intent.md");if(!VU(a))return{content:[{type:"text",text:`Intent '${r}' not found.`}],isError:!0};let c=ob(o,"stages",i);if(!VU(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=ob(c,m);VU(y)&&u.push(m)}let l=ob(c,"discovery"),d=(()=>{if(!VU(l))return!1;try{return _Pt(l).some(m=>{let y=ob(l,m);try{return vPt(y).isFile()&&m.endsWith(".md")}catch{return!1}})}catch{return!1}})();d&&u.push("discovery (outputs only, templates preserved)");let f=`haiku/${r}/${i}`,p=Ae()&&Nt(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 Yu({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 gNt,readFileSync as bpr}from"node:fs";import{join as mNt}from"node:path";function Epr(e){if(!gNt(e))return{};let t=bpr(e,"utf8"),{data:n}=re(t);return n}var _pr,yNt,SNt=v(()=>{"use strict";ar();Yd();$b();ji();uo();cye();ze();vo();zi();Vv();vs();_pr={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."},yNt={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:_0,async handle(e,t){let n=Be(e,Mge,"haiku_select_mode");if(n)return n;let r=e,i=r.intent,s=ve(),o=mNt(s,"intents",i),a=mNt(o,"intent.md");if(!gNt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=Epr(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(),D0)),p=!!(d(i,u)??""),m=xY.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:_pr[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:xn("Mode picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));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=yr(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(Ne(a,"mode",b),b==="quick")Zh(a,["stages"]);else{let E=Fs(u);Ne(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"?xn(`The user picked **quick** mode for "${i}".`,`Call haiku_run_next { intent: "${i}" } \u2014 the engine will open the stage picker next.`):xn(`The user picked **${b}** mode for "${i}"${l&&l!==b?` (was ${l})`:""}.`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))}}});import{existsSync as ENt,readFileSync as Tpr}from"node:fs";import{join as bNt}from"node:path";function vpr(e){if(!ENt(e))return{};let t=Tpr(e,"utf8"),{data:n}=re(t);return n}var _Nt,TNt=v(()=>{"use strict";ar();Yd();$b();ji();uo();ze();vo();zi();Vv();vs();_Nt={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:T0,async handle(e,t){let n=Be(e,Dge,"haiku_select_stage");if(n)return n;let r=e,i=r.intent,s=ve(),o=bNt(s,"intents",i),a=bNt(o,"intent.md");if(!ENt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=vpr(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:xn("Stage picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));m=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=yr(i,void 0);return g.ok?(Ne(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:xn(`The user picked the **${m}** stage for quick intent "${i}".`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))):{content:[{type:"text",text:`Error: branch enforcement failed after stage selection for intent '${i}' \u2014 ${g.message}. Resolve manually and retry.`}],isError:!0}}}});function vNt(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 RNt=v(()=>{"use strict"});import{existsSync as gve,readdirSync as Rpr,readFileSync as Apr}from"node:fs";import{join as l8}from"node:path";var ANt,wNt=v(()=>{"use strict";ar();Yd();$b();ji();uo();ze();Kn();vo();zi();Vv();vs();RNt();ANt={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:E0,async handle(e,t){let n=Be(e,Cge,"haiku_select_studio");if(n)return n;let r=e,i=r.intent,s=ve(),o=l8(s,"intents",i),a=l8(o,"intent.md");if(!gve(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=l8(o,"stages");if(gve(c))for(let h of Rpr(c,{withFileTypes:!0})){if(!h.isDirectory())continue;let m=l8(c,h.name,"state.json");if(gve(m)){let g=qb(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=kI().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(Apr(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=vNt(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:xn("Studio picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon the intent.")}));d=y.selection.id}if(!d)return{content:[{type:"text",text:"No studio selected."}],isError:!0};let f=yr(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 Ne(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:xn(`The user selected the **${d}** studio for "${i}". Studio is now locked.`,"Continue the tick \u2014 the engine will drive the next selection (mode, then stage if quick) automatically.")},null,2))}}});import{existsSync as kNt,readFileSync as wpr,writeFileSync as kpr}from"node:fs";import{join as INt}from"node:path";var yve,xNt,ONt=v(()=>{"use strict";yve=Re(Kt(),1);ar();xx();ji();uo();ze();zi();vs();xNt={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:w0,handle(e){let t=Be(e,jge,"haiku_stage_decompose_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=Ix({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=INt(a,"intents",n);if(!kNt(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=INt(c,"stages",r,"elaboration.md");if(!kNt(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=yr(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=wpr(u,"utf8"),f=(0,yve.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()),kpr(u,yve.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 Ipr,mkdirSync as xpr,writeFileSync as Opr}from"node:fs";import{join as Sve}from"node:path";var PNt,NNt,CNt=v(()=>{"use strict";PNt=Re(Kt(),1);ar();xx();ji();uo();ze();zi();vs();NNt={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:R0,handle(e){let t=Be(e,Uge,"haiku_stage_elaboration_record");if(t)return t;let n=e.intent,r=e.stage,i=e.body,s=ve(),o=Sve(s,"intents",n);if(!Ipr(o))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_stage_elaboration_record",message:`Intent '${n}' not found.`},null,2)}],isError:!0};let a=Sve(o,"stages",r),c=yr(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};xpr(a,{recursive:!0});let u=Sve(a,"elaboration.md"),l=new Date().toISOString(),d={recorded_at:l,intent:n,stage:r};return Opr(u,PNt.default.stringify(i,d)),r_e({kind:"stage_elaborate",slug:n,stage:r}),r_e({kind:"stage_decompose",slug:n,stage:r}),wt(`haiku: record elaboration for ${n}/${r}`),ye(JSON.stringify({action:"elaboration_recorded",slug:n,stage:r,path:u,recorded_at:l,message:`Captured elaboration for '${n}/${r}'. The cursor will dispatch the verifier on the next tick.`},null,2))}}});import{existsSync as MNt,readFileSync as Ppr,writeFileSync as Npr}from"node:fs";import{join as DNt}from"node:path";var bve,LNt,UNt=v(()=>{"use strict";bve=Re(Kt(),1);ar();xx();ji();uo();ze();zi();vs();LNt={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:A0,handle(e){let t=Be(e,Fge,"haiku_stage_elaboration_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=Ix({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=DNt(a,"intents",n);if(!MNt(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=DNt(c,"stages",r,"elaboration.md");if(!MNt(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=yr(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=Ppr(u,"utf8"),f=(0,bve.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()),Npr(u,bve.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 Eve}from"node:child_process";import{existsSync as $U,readdirSync as FNt,readFileSync as Cpr,rmSync as jNt,statSync as HNt}from"node:fs";import{join as uE}from"node:path";var qNt,BNt=v(()=>{"use strict";ar();$b();ji();uo();ze();zi();vs();qNt={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:S0,async handle(e,t){let n=Be(e,Ige,"haiku_stage_reset");if(n)return n;let{intent:r,stage:i}=e,s=ve(),o=uE(s,"intents",r),a=uE(o,"intent.md");if(!$U(a))return{content:[{type:"text",text:`Intent '${r}' not found.`}],isError:!0};let c=uE(o,"stages",i);if(!$U(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=uE(c,m);$U(g)&&u.push(m)}let l=uE(c,"discovery"),d=(()=>{if(!$U(l))return!1;try{return FNt(l).some(m=>{let g=uE(l,m);try{return HNt(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=Ee()&&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(Ae())try{let m="";try{m=lve("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(m===f){let y=`haiku/${r}/main`,g=Yo(),E=Nt(y)?y:g;try{lve("git",["checkout",E],{encoding:"utf8",stdio:"pipe"})}catch{lve("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=ob(c,m);VU(y)&&TPt(y,{recursive:!0,force:!0})}if(d)try{for(let m of _Pt(l)){if(!m.endsWith(".md"))continue;let y=ob(l,m);try{vPt(y).isFile()&&TPt(y,{force:!0})}catch{}}}catch{}try{let m=Xfr(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{yE(r,i)}catch(m){return ye(JSON.stringify({action:"stage_reset_partial",slug:r,stage:i,message:`Stage '${i}' state wiped but \`${f}\` branch could not be deleted: ${m instanceof Error?m.message:String(m)}. Delete it manually with \`git branch -D ${f}\` then run \`haiku_run_next\`.`}))}return wt(`haiku: reset stage ${i} on ${r}`),ye(JSON.stringify({action:"stage_reset",slug:r,stage:i,wiped:u,message:`Stage '${i}' has been reset. Call \`haiku_run_next { intent: "${r}" }\` to re-enter the stage at its elaborate phase.`},null,2))}}});import{existsSync as Qfr,readFileSync as $fr,writeFileSync as epr}from"node:fs";var dve,tpr,wPt,kPt=v(()=>{"use strict";dve=Se(Kt(),1);yr();JE();ji();uo();ze();Gi();vs();tpr=["iterations","reviews","approvals","started_at","hat","hat_started_at","bolt","status"],wPt={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:_x,async handle(e,t){let n=Be(e,Xge,"haiku_unit_reset");if(n)return n;let{intent:r,stage:i,unit:s}=e,o=Na(r,i,s);if(!Qfr(o))return{content:[{type:"text",text:`No unit '${s}' in stage '${i}' of intent '${r}'.`}],isError:!0};let a=$fr(o,"utf8"),{data:c,content:u}=(0,dve.default)(a),l=Gx(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 Yu({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(Ee())try{let m="";try{m=Eve("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{Eve("git",["checkout",b],{encoding:"utf8",stdio:"pipe"})}catch{Eve("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=uE(c,m);$U(g)&&jNt(g,{recursive:!0,force:!0})}if(d)try{for(let m of FNt(l)){if(!m.endsWith(".md"))continue;let g=uE(l,m);try{HNt(g).isFile()&&jNt(g,{force:!0})}catch{}}}catch{}try{let m=Cpr(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);Zh(a,y)}}catch{}if(p)try{bb(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 Mpr,readFileSync as Dpr,writeFileSync as Lpr}from"node:fs";var _ve,Upr,zNt,GNt=v(()=>{"use strict";_ve=Re(Kt(),1);ar();$b();ji();uo();ze();zi();vs();Upr=["iterations","reviews","approvals","started_at","hat","hat_started_at","bolt","status"],zNt={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:I0,async handle(e,t){let n=Be(e,oye,"haiku_unit_reset");if(n)return n;let{intent:r,stage:i,unit:s}=e,o=Pa(r,i,s);if(!Mpr(o))return{content:[{type:"text",text:`No unit '${s}' in stage '${i}' of intent '${r}'.`}],isError:!0};let a=Dpr(o,"utf8"),{data:c,content:u}=(0,_ve.default)(a),l=J0(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 tpr)delete f[h];epr(o,dve.default.stringify(u,f));let p=vpe(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 ive={};Rr(ive,{orchestratorToolHandlers:()=>dU});var dU,fU=v(()=>{"use strict";SIt();vIt();Sxt();bxt();kxt();Oxt();Mxt();Dxt();jxt();Gxt();Vxt();Kxt();$xt();n0t();JNt();tPt();sPt();uPt();pPt();gPt();bPt();RPt();kPt();dU=new Map([yIt,TIt,yxt,Ext,wxt,xxt,Cxt,Lxt,Fxt,Bxt,zxt,Wxt,Qxt,t0t,YNt,ePt,iPt,cPt,fPt,mPt,EPt,APt,wPt].map(e=>[e.name,e]))});function IPt(e){return{feedback_id:e.id,title:e.title,status:e.status,origin:e.origin,author:e.author,file:e.file}}function ZE(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 Upr)delete f[h];Lpr(o,_ve.default.stringify(u,f));let p=Npe(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 hve={};Ar(hve,{orchestratorToolHandlers:()=>bU});var bU,EU=v(()=>{"use strict";DIt();HIt();D0t();U0t();G0t();K0t();X0t();$0t();nxt();oxt();cxt();lxt();gxt();bxt();pNt();SNt();TNt();wNt();ONt();CNt();UNt();BNt();GNt();bU=new Map([MIt,jIt,M0t,L0t,z0t,W0t,J0t,Q0t,txt,sxt,axt,uxt,mxt,Sxt,fNt,yNt,_Nt,ANt,xNt,NNt,LNt,qNt,zNt].map(e=>[e.name,e]))});function VNt(e){return{feedback_id:e.id,title:e.title,status:e.status,origin:e.origin,author:e.author,file:e.file}}function Xb(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(` @@ -1578,15 +1578,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 xPt(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 OPt(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 WNt(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 KNt(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 NPt=v(()=>{"use strict";ze();vo()});function b0(e){let t=e.stage||"",n=e.unit||"",r=e.hat||e.first_hat||"",i=e.next_stage||"",s="",o="";switch(e.action){case"select_studio":s="I need to select a lifecycle studio for this intent before we can begin.",o="After studio selection, the first stage will start with elaboration.";break;case"start_stage":s=`Starting stage '${t}' \u2014 I'll elaborate the work into units with completion criteria.`,o="Next I'll break the work down into units, then validate them and open a review gate for your approval.";break;case"elaborate":t?(s=`Starting the conversation about stage '${t}' before any unit decomposition.`,o="I'll read the intent + STAGE.md, surface informed questions, and capture our agreement via haiku_stage_elaboration_record. A verifier will then grade the conversation for substance before the cursor advances to decompose."):(s="Pre-intent verifier \u2014 grading whether intent.md reflects a meaningful conversation about what you want.",o="I'll dispatch a verifier subagent. Pass stamps `verified_at` on intent.md via haiku_intent_seal; fail returns gaps so we re-engage and update the intent.");break;case"elaborate_review":t?(s=`Dispatching the substance verifier on the captured elaboration for stage '${t}'.`,o="On pass, the verifier seals the artifact and the cursor advances to decompose. On fail, the verifier returns specific gaps and we re-engage you with the missing questions."):(s="Dispatching the substance verifier on intent.md.",o="On pass, the cursor walks into the first stage's elaborate gate. On fail, we update the intent body and re-verify.");break;case"decompose_review":s=`Dispatching the decompose-verifier on the drafted units for stage '${t}'.`,o='The verifier audits whether the units collectively cover the captured conversation transcript \u2014 nothing scoped is missing a unit, no unit is out of scope. On pass, it stamps `decompose_verified_at` on elaboration.md and the cursor advances to execute. On fail, it files feedback with `targets.invalidates: ["decompose_complete"]` and the fix loop reruns decomposition.';break;case"decompose":{let a=e.iteration||e.visits||0,c=e.pending_feedback?.length||0,u=e.validation_error;a>1?(s=u?`Revisiting stage '${t}' (iteration ${a}) \u2014 fixing validation on in-flight units before advancing.`:`Revisiting stage '${t}' (iteration ${a}) \u2014 ${c} pending feedback item(s) to address with new units.`,o="I'll draft units that close each pending feedback item, then advance to execution once validated."):(s=`Decomposing stage '${t}' into unit specs \u2014 informed by the captured elaboration + any discovery output.`,o="After units are defined, the orchestrator validates them and opens a review gate for your approval before execution begins.");break}case"elaboration_insufficient":s=`I need to engage you more on the plan for stage '${t}' before finalizing.`,o="After sufficient collaboration, I'll finalize units and open the review gate.";break;case"gate_review":{let a=e.gate_context||"stage_gate";a==="intent_review"?(s="The intent specs are ready \u2014 opening the review gate for your approval.",o="After approval, execution begins. If changes are requested, I'll revise and re-submit."):a==="elaborate_to_execute"?(s="Unit specs are validated \u2014 opening the review gate for your approval before execution.",o="After approval, I'll begin executing units in wave order. If changes are requested, I'll revise the specs."):(s=`Stage '${t}' is complete \u2014 opening the review gate.`,o=i?`After approval, I'll advance to stage '${i}'. If changes are requested, I'll address the feedback.`:"After approval, the intent is complete.");break}case"intent_approved":s="Intent approved \u2014 moving to execution.",o="I'll begin executing units in wave order.";break;case"advance_phase":{let a=e.to_phase||"";a==="execute"?(s=`Specs approved for stage '${t}' \u2014 beginning execution.`,o="I'll execute units in wave order, one hat at a time."):a==="review"?(s=`All units complete in stage '${t}' \u2014 moving to review.`,o="I'll run quality gates and adversarial review agents, then open the stage gate."):a==="gate"?(s=`Review complete for stage '${t}' \u2014 moving to the gate.`,o="The stage gate will determine whether to advance, request changes, or send for external review."):(s=`Advancing stage '${t}' to ${a} phase.`,o="");break}case"start_unit":s=`Starting unit '${n}' with hat '${r}' in stage '${t}'.`,o="I'll execute the unit work per the hat definition, then advance to the next hat or next unit.";break;case"start_units":{let a=e.units||[];s=`Starting ${a.length} units in parallel: ${a.join(", ")}.`,o=Ae()?"Each unit runs in its own worktree. After all complete, the next wave starts or we advance to review.":"After all units complete, the next wave starts or we advance to review.";break}case"continue_unit":s=`Continuing unit '${n}' \u2014 hat: ${r}, bolt: ${e.bolt||1}.`,o="I'll continue the work, then advance to the next hat or complete the unit.";break;case"continue_units":{let a=e.units||[];s=`Continuing ${a.length} units in parallel: ${a.map(c=>`${c.name}(${c.hat}#${c.bolt})`).join(", ")}.`,o="Each active unit resumes in its own worktree. After all subagents return, the workflow engine advances.";break}case"escalate":{let a=e.reason||"unknown",c=e.iteration||0,u=e.max_iterations||Cf;s=a==="loop_detected"?`Stage '${t}' is stuck in a loop \u2014 iteration ${c} regenerated the same feedback set as iteration ${c-1}.`:`Stage '${t}' hit the ${u}-iteration ceiling (now at ${c}) \u2014 stopping the autonomous loop.`,o='STOP. Surface this to the human: the autonomous loop is halted. Do NOT call haiku_run_next again until the human makes a decision (reject feedback items, file a stage_revisit feedback via `haiku_feedback({ resolution: "stage_revisit", severity: "blocker" })` to force another cycle, or terminate the intent).';break}case"review":s=`Quality gates passed \u2014 running adversarial review agents for stage '${t}'.`,o="After review agents pass, the stage gate opens for approval.";break;case"fix_quality_gates":s=`Quality gates failed in stage '${t}' \u2014 I need to fix the issues before review.`,o="After fixing, I'll retry the quality gates and then proceed to adversarial review.";break;case"advance_stage":s=`Stage '${t}' complete \u2014 advancing to '${i}'.`,o=i?`I'll start stage '${i}' with elaboration.`:"The intent is complete.";break;case"intent_complete":s="All stages are complete \u2014 the intent is done.",o="";break;case"integrate_fix_chains":{let a=e.items||[],c=e.scope||"intent";s=`${a.length} fix-chain merge${a.length===1?"":"s"} conflicted when landing on ${c==="intent"?"intent main":`stage '${c}'`} \u2014 dispatching the integrator to resolve.`,o="After integrators return, I'll call run_next to complete the merges.";break}case"changes_requested":s="Changes were requested on the review \u2014 I'll address the feedback.",o="After revisions, I'll re-submit for review.";break;case"external_review_requested":s=`Stage '${t}' needs external review \u2014 submit the work through your project's review process.`,o="After external approval, run /haiku:haiku-pickup to continue.";break;case"awaiting_external_review":s=`Stage '${t}' is waiting on external review.`,o="Run /haiku:haiku-pickup after the review is approved.";break;case"blocked":s=`Some units in stage '${t}' are blocked \u2014 dependencies not met.`,o="Unblock the dependencies, then retry.";break;case"outputs_missing":s=`Stage '${t}' is missing required output artifacts.`,o="Create the missing artifacts, then retry.";break;case"discovery_missing":s=`Stage '${t}' is missing required discovery artifacts.`,o="Create the missing artifacts, then retry.";break;case"unresolved_dependencies":s="Some unit dependencies reference units that don't exist \u2014 I need to fix the references.",o="After fixing, I'll retry advancement.";break;case"dag_cycle_detected":s="A dependency cycle was detected in the unit graph \u2014 I need to break the cycle.",o="After fixing, I'll retry advancement.";break;case"unit_naming_invalid":s="Some unit files don't follow the required naming convention \u2014 I need to rename them.",o="After fixing, I'll retry advancement.";break;case"gate_blocked":s="Gate review couldn't be completed \u2014 the review UI and elicitation both failed.",o="Run haiku_run_next again to retry the gate review.";break;case"complete":s="Intent is already completed.",o="";break;case"composite_run_stage":s=`Running composite stage '${t}'.`,o="The composite orchestrator will advance through sub-stages.";break;case"error":s=e.message||"An error occurred.",o="";break;default:break}s&&(e.tell_user=s),o&&(e.next_step=o)}var PPt=v(()=>{"use strict";ze()});import{execFileSync as CPt}from"node:child_process";import{existsSync as Xv,readFileSync as npr}from"node:fs";import{join as ab}from"node:path";function fve(e,t){if(t)try{let n=FL(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 WU(e){if(!Xv(e))return{};let t=npr(e,"utf8"),{data:n}=re(t);return n}function rpr(e,t){let n=ab(pe(e),"intent.md"),r=WU(n),i=r.studio||"",s=wn(r,i),o=s.indexOf(t);return o>0?s[o-1]:void 0}function pve(e,t){RI(e),tK(e),wt(`haiku: pre-stage cleanup for ${e}/${t}`),fve(e,t);let n=rpr(e,t),r=n?`haiku/${e}/${n}`:"";if(n&&Nt(r)&&!Zc(r,`haiku/${e}/main`)){let i=JZ(e,()=>jL(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&&Nt(r)){yE(e,n);try{CPt("git",["push","origin","--delete",r],{stdio:"pipe",timeout:Aa,env:Ra})}catch{}}if(!dpe(e,t)){let i=`haiku/${e}/${t}`;if(Nt(i)&&n){let s=ppe(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 fpe(e,t)}tSe(e,t,{trigger:"initial"}),tK(e),Ke("haiku.stage.started",{intent:e,stage:t}),wt(`haiku: start stage ${t}`),fve(e,t),ci(e)}function eU(e,t,n){Ke("haiku.stage.phase",{intent:e,stage:t,phase:n}),ci(e)}function _0(e,t,n){nSe(e,t,n==="advanced"?"advanced":"rejected"),Ke("haiku.stage.completed",{intent:e,stage:t,gate_outcome:n}),wt(`haiku: complete stage ${t}`),fve(e,t),ci(e)}function D5(e,t,n){_0(e,t,"advanced"),pve(e,n),ci(e)}function MPt(e,t){Ke("haiku.gate.entered",{intent:e,stage:t}),ci(e)}function ipr(e){let t=ab(pe(e),"intent.md");Xv(t)&&(Le(t,"completion_review_entered_at",bn()),Ke("haiku.intent.completion_review_entered",{intent:e}),ci(e))}function spr(e,t){if(!Ae()||!t)return;let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;if(Nt(n)&&!Zc(n,r)){let i=JZ(e,()=>jL(e,t));i.success||console.error(`[workflowFinalizeStageIntoIntentMain] merge ${n}\u2192${r} failed: ${i.message}. +${i}${o}`:`${s}${o}`}var YNt=v(()=>{"use strict";ze();vo()});function Ox(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=Ee()?"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 ZNt=v(()=>{"use strict";ze()});import{execFileSync as JNt}from"node:child_process";import{existsSync as iR,readFileSync as Fpr}from"node:fs";import{join as sy}from"node:path";function Tve(e,t){if(t)try{let n=YD(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 iO(e){if(!iR(e))return{};let t=Fpr(e,"utf8"),{data:n}=re(t);return n}function Hpr(e,t){let n=sy(ce(e),"intent.md"),r=iO(n).mode||"";if(jpr.has(r)&&!(!Ee()||CT()===null)&&!Tv(e,t)?.url)try{let i=gpe({slug:e,stage:t});i.createdUrl?(zb(e,t,"url",i.createdUrl),zb(e,t,"status","draft")):(zb(e,t,"status","failed"),console.error(`[haiku] stage draft PR for ${e}/${t} not opened: ${i.message}`))}catch(i){console.error(`[haiku] stage draft PR for ${e}/${t} threw: ${i instanceof Error?i.message:String(i)}`)}}function qpr(e,t){let n=sy(ce(e),"intent.md"),r=iO(n),i=r.studio||"",s=wn(r,i),o=s.indexOf(t);return o>0?s[o-1]:void 0}function vve(e,t){PI(e),l3(e),wt(`haiku: pre-stage cleanup for ${e}/${t}`),Tve(e,t);let n=qpr(e,t),r=n?`haiku/${e}/${n}`:"";if(n&&Pt(r)&&!Zc(r,`haiku/${e}/main`)){let i=sZ(e,()=>ZD(e,n));if(!i.success)throw new Error(`Merge of completed stage '${n}' into main failed: ${i.message}. Resolve conflicts on 'haiku/${e}/main' manually, then retry.`)}if(n&&Pt(r)){bb(e,n);try{JNt("git",["push","origin","--delete",r],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}if(!Epe(e,t)){let i=`haiku/${e}/${t}`;if(Pt(i)&&n){let s=Tpe(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 _pe(e,t)}lSe(e,t,{trigger:"initial"}),l3(e),Hpr(e,t),Ke("haiku.stage.started",{intent:e,stage:t}),wt(`haiku: start stage ${t}`),Tve(e,t),ci(e)}function cU(e,t,n){Ke("haiku.stage.phase",{intent:e,stage:t,phase:n}),ci(e)}function Px(e,t,n){dSe(e,t,n==="advanced"?"advanced":"rejected"),Ke("haiku.stage.completed",{intent:e,stage:t,gate_outcome:n}),wt(`haiku: complete stage ${t}`),Tve(e,t),ci(e)}function K6(e,t,n){Px(e,t,"advanced"),vve(e,n),ci(e)}function XNt(e,t){Ke("haiku.gate.entered",{intent:e,stage:t}),ci(e)}function Bpr(e){let t=sy(ce(e),"intent.md");iR(t)&&(Ne(t,"completion_review_entered_at",mn()),Ke("haiku.intent.completion_review_entered",{intent:e}),ci(e))}function zpr(e,t){if(!Ee()||!t)return;let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;if(Pt(n)&&!Zc(n,r)){let i=sZ(e,()=>ZD(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(Nt(n)&&Zc(n,r)){yE(e,t);try{CPt("git",["push","origin","--delete",n],{stdio:"pipe",timeout:Aa,env:Ra})}catch{}}gr(e,void 0)}function tU(e,t,n){let r=n?ab(n,"intents",e):pe(e),i=ab(r,"intent.md"),s=Xv(i)?WU(i):{},o=wn(s,t),a=typeof s.mode=="string"&&s.mode.length>0?s.mode:"continuous",c=[];for(let u of o)hv({slug:e,studio:t,stage:u,intentDir:r,intentMode:a}).status!=="completed"&&c.push(u);return c}function opr(e,t){let n=t?ab(t,"intents",e):pe(e),r=ab(n,"intent.md");Xv(r)&&(Le(r,"completion_review_entered_at",""),Le(r,"completion_review_dispatched",!1),Le(r,"completion_review_skipped",!1),Le(r,"completion_review_dispatched_at",""),ci(e))}function U5(e,t,n){let r=tU(e,t);if(r.length>0)return opr(e),Ke("haiku.intent.completion_guard_failed",{intent:e,studio:t,incomplete_stages:r.join(",")}),{action:"error",intent:e,message:`Cannot complete intent '${e}': ${r.length} stage(s) are not yet completed: [${r.join(", ")}]. Cleared completion-review markers; next tick will route to '${r[0]}' (derived from disk). Call \`haiku_run_next { intent: "${e}" }\` to resume.`};let i=ab(pe(e),"intent.md"),s=Xv(i)?WU(i):{},a=wn(s,t).at(-1)??"";return a&&spr(e,a),ipr(e),{action:"advance_phase",intent:e,stage:null,from_phase:s.phase||"active",to_phase:"awaiting_completion_review",message:`${n} All stages passed \u2014 entering intent-completion review phase. Call \`haiku_run_next { intent: "${e}" }\` to dispatch studio-level review agents (if any) and the final gate.`}}function F5(e){let t=ab(pe(e),"intent.md");if(Xv(t)){let s=WU(t),o=s.draft_pr_url,a=s.draft_pr_status;if(o&&a==="draft"){let c=cpe(o);c.ok?(Le(t,"draft_pr_status","ready"),Le(t,"draft_pr_ready_at",bn())):(console.error(`[haiku] mark-ready of ${o} failed: ${c.error}`),Le(t,"draft_pr_status","failed"))}}Ke("haiku.intent.completed",{intent:e}),wt(`haiku: complete intent ${e}`);let n=Xv(t)?WU(t):{},r=n.studio||"",i=r?wn(n,r):[];if(i.length>0){let s=Ape(e,i);s.success||console.error(`[haiku] finalizeIntentBranches warning for ${e}: ${s.message}`)}BL(e),ci(e),lpe(e)}var LPt=v(()=>{"use strict";yr();Hx();Vd();eY();ze();vo();i1()});var XNt={};Rr(XNt,{buildElaboratorInstruction:()=>OPt,buildGuardResponse:()=>ZE,buildOutputRequirements:()=>f0,buildRunInstructions:()=>X1,cleanupPreExecuteFeedback:()=>rpt,completeOrReviewIntent:()=>U5,computeUnitWaves:()=>HI,currentWaveNumber:()=>qI,enrichActionWithPreview:()=>b0,findIncompleteStages:()=>tU,getAwaitGateReviewSession:()=>Qbe,getPrepareGateReview:()=>sve,handleOrchestratorTool:()=>T_e,isStagePreExecute:()=>$L,listUnits:()=>Eg,maybeEscalate:()=>xPt,orchestratorToolDefs:()=>R5,resolveIntentStages:()=>wn,resolveStageHats:()=>bs,resolveStageMetadata:()=>Wpe,resolveStageReview:()=>Vpe,resolveStudioFilePath:()=>Df,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>zpe,runNext:()=>apr,runQualityGates:()=>qRt,setGateReviewHandlers:()=>hve,summarizeFeedback:()=>IPt,validateCumulativeInputCoverage:()=>jRt,validateDiscoveryArtifacts:()=>LRt,validateOutputLiveness:()=>HRt,validateStageOutputs:()=>MRt,validateUnitInputs:()=>URt,validateUnitNaming:()=>DRt,workflowAdvancePhase:()=>eU,workflowAdvanceStage:()=>D5,workflowCompleteStage:()=>_0,workflowGateAsk:()=>MPt,workflowIntentComplete:()=>F5,workflowStartStage:()=>pve,writeReviewFeedbackFiles:()=>_5});function upr(e){let t=e.stage||"",n=Array.isArray(e.items)?`n${e.items.length}`:"",r=e.iteration??e.bolt;return`${t}-${n}-${r??""}-${Date.now()}`}function X1(e,t,n,r){let i=Jwt.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}=wft({action:n.action,intent:e,stage:n.stage||void 0,content:s,tickHint:upr(n)});n.prompt_file=d,n.message=`Read \`${d}\` and execute its instructions exactly. The file is the canonical, authoritative ${n.action} prompt for this tick.`,s=[`## ${n.action} Prompt (file-based)`,"","The full prompt for this tick is at:","",` ${d}`,"",`Read that file with the Read tool and execute its instructions exactly. The file is the canonical, authoritative ${n.action} prompt \u2014 do not paraphrase, summarize, or skip any of it.`].join(` + - \`git fsck --lost-found\` \u2014 catches dangling commits even after the branch ref is deleted.`)}if(Pt(n)&&Zc(n,r)){bb(e,t);try{JNt("git",["push","origin","--delete",n],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}yr(e,void 0)}function uU(e,t,n){let r=n?sy(n,"intents",e):ce(e),i=sy(r,"intent.md"),s=iR(i)?iO(i):{},o=wn(s,t),a=typeof s.mode=="string"&&s.mode.length>0?s.mode:"continuous",c=[];for(let u of o)bv({slug:e,studio:t,stage:u,intentDir:r,intentMode:a}).status!=="completed"&&c.push(u);return c}function Gpr(e,t){let n=t?sy(t,"intents",e):ce(e),r=sy(n,"intent.md");iR(r)&&(Ne(r,"completion_review_entered_at",""),Ne(r,"completion_review_dispatched",!1),Ne(r,"completion_review_skipped",!1),Ne(r,"completion_review_dispatched_at",""),ci(e))}function Y6(e,t,n){let r=uU(e,t);if(r.length>0)return Gpr(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=sy(ce(e),"intent.md"),s=iR(i)?iO(i):{},a=wn(s,t).at(-1)??"";return a&&zpr(e,a),Bpr(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 Z6(e){let t=sy(ce(e),"intent.md");if(iR(t)){let s=iO(t),o=s.draft_pr_url,a=s.draft_pr_status;if(o&&a==="draft"){let c=ype(o);c.ok?(Ne(t,"draft_pr_status","ready"),Ne(t,"draft_pr_ready_at",mn())):(console.error(`[haiku] mark-ready of ${o} failed: ${c.error}`),Ne(t,"draft_pr_status","failed"))}}Ke("haiku.intent.completed",{intent:e}),wt(`haiku: complete intent ${e}`);let n=iR(t)?iO(t):{},r=n.studio||"",i=r?wn(n,r):[];if(i.length>0){let s=Cpe(e,i);s.success||console.error(`[haiku] finalizeIntentBranches warning for ${e}: ${s.message}`)}QD(e),ci(e),bpe(e)}var jpr,QNt=v(()=>{"use strict";ar();K0();Yd();uZ();ze();vo();f1();jpr=new Set(["discrete","discrete-hybrid"])});var hNt={};Ar(hNt,{buildElaboratorInstruction:()=>KNt,buildGuardResponse:()=>Xb,buildOutputRequirements:()=>Tx,buildRunInstructions:()=>sU,cleanupPreExecuteFeedback:()=>hpt,completeOrReviewIntent:()=>Y6,computeUnitWaves:()=>KI,currentWaveNumber:()=>YI,enrichActionWithPreview:()=>Ox,findIncompleteStages:()=>uU,getAwaitGateReviewSession:()=>c_e,getPrepareGateReview:()=>mve,handleOrchestratorTool:()=>N_e,isStagePreExecute:()=>aL,listUnits:()=>Eg,maybeEscalate:()=>WNt,orchestratorToolDefs:()=>L6,resolveIntentStages:()=>wn,resolveStageHats:()=>Es,resolveStageMetadata:()=>the,resolveStageReview:()=>ehe,resolveStudioFilePath:()=>Ff,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>$pe,runNext:()=>Vpr,runQualityGates:()=>iwt,setGateReviewHandlers:()=>Rve,summarizeFeedback:()=>VNt,validateCumulativeInputCoverage:()=>nwt,validateDiscoveryArtifacts:()=>QAt,validateOutputLiveness:()=>rwt,validateStageOutputs:()=>XAt,validateUnitInputs:()=>ewt,validateUnitNaming:()=>$At,workflowAdvancePhase:()=>cU,workflowAdvanceStage:()=>K6,workflowCompleteStage:()=>Px,workflowGateAsk:()=>XNt,workflowIntentComplete:()=>Z6,workflowStartStage:()=>vve,writeReviewFeedbackFiles:()=>N6});function Kpr(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 sU(e,t,n,r){let i=pkt.get(n.action),s=null;if(i&&(s=i({slug:e,studio:t,action:n,dir:r})),s&&!Wpr.has(n.action)&&!n.prompt_file)try{let{path:d}=Uft({action:n.action,intent:e,stage:n.stage||void 0,content:s,tickHint:Kpr(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(` @@ -1601,29 +1601,29 @@ ${u} ${JSON.stringify(n,null,2)}`),l.join(` -`))}function hve(e){DPt=e.prepare,UPt=e.await}function sve(){return DPt}function Qbe(){return UPt}async function T_e(e,t,n){let r=o=>({content:[{type:"text",text:o}]}),i=IL(t);if(i)return i;let s=dU.get(e);if(s){let o=s.handle(t,n);return o instanceof Promise?await o:o}return r(`Unknown orchestrator tool: ${e}`)}var apr,cpr,DPt,UPt,Vd=v(()=>{"use strict";Xwt();Qwt();Jbe();ze();Tl();fU();NPt();PPt();ns();kK();T5();LPt();apr=cIt,cpr=new Set(["noop","sealed","error"]);DPt=null,UPt=null});function mve(e){e8.set(e.name,e)}function FPt(){return Array.from(e8.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 jPt(e,t){let n=e8.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 HPt(e){let t={completion:{values:[]}};if(e.ref.type!=="ref/prompt")return t;let n=e.ref.name;if(!n)return t;let r=e8.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 e8,gve=v(()=>{"use strict";N_();e8=new Map});import{existsSync as qPt,readdirSync as lpr,readFileSync as dpr}from"node:fs";import{join as BPt}from"node:path";function GPt(){let e=0;mve({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=BPt(t,"skills");if(!qPt(n))return console.error(`[haiku] Registered ${e} prompt(s) (skills dir not found \u2014 skills not bridged)`),e;let r=lpr(n,{withFileTypes:!0});for(let i of r){if(!i.isDirectory())continue;let s=BPt(n,i.name,"SKILL.md");if(!qPt(s))continue;let o=dpr(s,"utf8"),{data:a,body:c}=re(o),u=a.name||i.name,l=a.description||"",d=`haiku:${u}`;mve({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 Rve(e){$Nt=e.prepare,eCt=e.await}function mve(){return $Nt}function c_e(){return eCt}async function N_e(e,t,n){let r=o=>({content:[{type:"text",text:o}]}),i=jD(t);if(i)return i;let s=bU.get(e);if(s){let o=s.handle(t,n);return o instanceof Promise?await o:o}return r(`Unknown orchestrator tool: ${e}`)}var Vpr,Wpr,$Nt,eCt,Yd=v(()=>{"use strict";hkt();mkt();o_e();ze();vl();EU();YNt();ZNt();ns();L3();C6();QNt();Vpr=AIt,Wpr=new Set(["noop","sealed","error"]);$Nt=null,eCt=null});function Ave(e){d8.set(e.name,e)}function tCt(){return Array.from(d8.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 nCt(e,t){let n=d8.get(e);if(!n)throw new rn(Sn.InvalidParams,`Unknown prompt: ${e}`);let r=t??{};for(let i of n.arguments)if(i.required&&!(i.name in r))throw new rn(Sn.InvalidParams,`Missing required argument: ${i.name} for prompt ${e}`);return n.handler(r)}async function rCt(e){let t={completion:{values:[]}};if(e.ref.type!=="ref/prompt")return t;let n=e.ref.name;if(!n)return t;let r=d8.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 d8,wve=v(()=>{"use strict";C_();d8=new Map});import{existsSync as iCt,readdirSync as Ypr,readFileSync as Zpr}from"node:fs";import{join as sCt}from"node:path";function oCt(){let e=0;Ave({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=sCt(t,"skills");if(!iCt(n))return console.error(`[haiku] Registered ${e} prompt(s) (skills dir not found \u2014 skills not bridged)`),e;let r=Ypr(n,{withFileTypes:!0});for(let i of r){if(!i.isDirectory())continue;let s=sCt(n,i.name,"SKILL.md");if(!iCt(s))continue;let o=Zpr(s,"utf8"),{data:a,body:c}=re(o),u=a.name||i.name,l=a.description||"",d=`haiku:${u}`;Ave({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 zPt=v(()=>{"use strict";Ci();ze();gve()});var ppr={};async function fpr(){Dne();let e=new EV;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 KPt(e){if(WPt)return;WPt=!0,console.error(`Shutting down (${e})...`);let t=setTimeout(()=>{console.error(`Graceful shutdown exceeded ${VPt}ms \u2014 forcing exit`),process.exit(1)},VPt);t.unref();try{await Qv.close(),await bAt(),await Sf()}catch(n){console.error(`Error during graceful shutdown: ${n instanceof Error?n.message:String(n)}`)}finally{clearTimeout(t),process.exit(0)}}var Qv,VPt,WPt,ZPt=v(()=>{"use strict";T8e();w8e();N_();Ci();m5();AAt();ih();Ef();Vd();gve();zPt();i6();ji();uo();ze();Qv=new yV({name:"haiku-review",version:"0.1.0"},{capabilities:{tools:{},prompts:{listChanged:!0},completions:{}}});sh()||Mi().mcpPrompts&&GPt();Qv.setRequestHandler(tie,async()=>({prompts:FPt()}));Qv.setRequestHandler(nie,async e=>jPt(e.params.name,e.params.arguments));Qv.setRequestHandler(lie,async e=>HPt(e.params));Qv.setRequestHandler(aie,async()=>{let e=Mi(),n=[...R5,...fSe,{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:_9},{name:"haiku_await_design_direction",description:"Resume entry point for a pending design-direction session. Under v4 the canonical flow blocks INSIDE pick_design_direction \u2014 the engine creates the session, opens the browser, and waits for the user's submission (select / regenerate / generate / upload) all in one tool call. Use haiku_await_design_direction only when the original blocking call timed out or was lost. Returns the same announcement + next-step shape.",inputSchema:T9},{name:"haiku_report",description:"Submit a bug report or feedback to the H\xB7AI\xB7K\xB7U team via Sentry. Use this when a user wants to report an issue, suggest an improvement, or share feedback.",inputSchema:{type:"object",properties:{message:{type:"string",description:"The feedback message or bug report"},contact_email:{type:"string",description:"Optional contact email for follow-up"},name:{type:"string",description:"Optional name of the person submitting feedback"}},required:["message"]}}];if(!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(oC,async(e,t)=>{let r=(e.params?.arguments??{})._session_context,i=vAt(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 pxt(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 aCt=v(()=>{"use strict";Ci();ze();wve()});var Xpr={};async function Jpr(){Vne();let e=new kV;await sR.connect(e);let t=oh()?"":` (harness: ${Mi().displayName})`;console.error(`H\xB7AI\xB7K\xB7U Review MCP server running on stdio${t}`)}async function lCt(e){if(uCt)return;uCt=!0,console.error(`Shutting down (${e})...`);let t=setTimeout(()=>{console.error(`Graceful shutdown exceeded ${cCt}ms \u2014 forcing exit`),process.exit(1)},cCt);t.unref();try{await sR.close(),await MRt(),await Ef()}catch(n){console.error(`Error during graceful shutdown: ${n instanceof Error?n.message:String(n)}`)}finally{clearTimeout(t),process.exit(0)}}var sR,cCt,uCt,dCt=v(()=>{"use strict";C8e();U8e();C_();Ci();w6();FRt();sh();_f();Yd();wve();aCt();m5();ji();uo();ze();sR=new AV({name:"haiku-review",version:"0.1.0"},{capabilities:{tools:{},prompts:{listChanged:!0},completions:{}}});oh()||Mi().mcpPrompts&&oCt();sR.setRequestHandler(lie,async()=>({prompts:tCt()}));sR.setRequestHandler(die,async e=>nCt(e.params.name,e.params.arguments));sR.setRequestHandler(bie,async e=>rCt(e.params));sR.setRequestHandler(gie,async()=>{let e=Mi(),n=[...L6,...TSe,{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:O9},{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:P9},{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}});sR.setRequestHandler(yC,async(e,t)=>{let r=(e.params?.arguments??{})._session_context,i=URt(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 O0t(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(),A4e));await l(1e3)}catch{}throw console.error(`[haiku] Tool handler '${a}' threw:`,o instanceof Error?o.stack||o.message:String(o)),o}return s});hve({prepare:hxt,await:mxt});VPt=1e4,WPt=!1;process.on("SIGINT",()=>{KPt("SIGINT")});process.on("SIGTERM",()=>{KPt("SIGTERM")});fpr().catch(e=>{ms(e,{context:"mcp-server-fatal"}),console.error("Fatal error:",e),process.exit(1)})});var iy=v(()=>{"use strict"});import{execSync as hpr}from"node:child_process";import{existsSync as KU,mkdirSync as jLi,readdirSync as mpr,readFileSync as YPt,statSync as HLi,writeFileSync as qLi}from"node:fs";import{dirname as GLi,join as t8}from"node:path";function yve(e,t){if(!KU(e))return"";let r=YPt(e,"utf8").match(new RegExp(`^${t}:\\s*(.+)$`,"m"));return r?r[1].trim().replace(/^["']|["']$/g,""):""}function JPt(e){if(!KU(e))return{};try{return JSON.parse(YPt(e,"utf8"))}catch{return{}}}function Z0(){return KU(t8(n8(),".haiku"))}function Y0(){let e=n8(),t=t8(e,".haiku","intents");if(!KU(t))return null;let n=mpr(t);for(let r of n){let i=t8(t,r,"intent.md");if(!KU(i))continue;if(yve(i,"status")==="active")return t8(t,r)}return null}function n8(){try{return hpr("git rev-parse --show-toplevel",{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return process.cwd()}}var $v=v(()=>{"use strict"});import{appendFileSync as XPt,existsSync as gpr,readFileSync as ypr}from"node:fs";import{join as Sve}from"node:path";function Spr(e){let t=Sve(e,"intent.md"),n=yve(t,"active_stage");if(!n)return null;let r=Sve(e,"stages",n,"state.json"),i=JPt(r);return(typeof i.phase=="string"?i.phase:"")||null}async function Epr(e,t){let n=Number(e.total_tokens??0),r=Number(e.max_tokens??0);if(n===0||r===0)return;let i=Y0();if(!i||Spr(i)!=="elaborate")return;let s=Math.floor((r-n)*100/r),o=process.env.CLAUDE_SESSION_ID??"unknown",a=Sve("/tmp",`context-monitor-${o}`),c="";gpr(a)&&(c=ypr(a,"utf8")),s<=25?c.includes("25")||(XPt(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")||(XPt(a,`35 +`)}catch{}ms(o,{context:"mcp-tool-handler",tool_name:a},u);try{let{flush:l}=await Promise.resolve().then(()=>(sh(),DKe));await l(1e3)}catch{}throw console.error(`[haiku] Tool handler '${a}' threw:`,o instanceof Error?o.stack||o.message:String(o)),o}return s});Rve({prepare:P0t,await:N0t});cCt=1e4,uCt=!1;process.on("SIGINT",()=>{lCt("SIGINT")});process.on("SIGTERM",()=>{lCt("SIGTERM")});Jpr().catch(e=>{ms(e,{context:"mcp-server-fatal"}),console.error("Fatal error:",e),process.exit(1)})});var oy=v(()=>{"use strict"});import{execSync as Qpr}from"node:child_process";import{existsSync as eF,mkdirSync as ALi,readdirSync as $pr,readFileSync as fCt,statSync as wLi,writeFileSync as kLi}from"node:fs";import{dirname as xLi,join as f8}from"node:path";function kve(e,t){if(!eF(e))return"";let r=fCt(e,"utf8").match(new RegExp(`^${t}:\\s*(.+)$`,"m"));return r?r[1].trim().replace(/^["']|["']$/g,""):""}function pCt(e){if(!eF(e))return{};try{return JSON.parse(fCt(e,"utf8"))}catch{return{}}}function sO(){return eF(f8(p8(),".haiku"))}function oO(){let e=p8(),t=f8(e,".haiku","intents");if(!eF(t))return null;let n=$pr(t);for(let r of n){let i=f8(t,r,"intent.md");if(!eF(i))continue;if(kve(i,"status")==="active")return f8(t,r)}return null}function p8(){try{return Qpr("git rev-parse --show-toplevel",{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return process.cwd()}}var oR=v(()=>{"use strict"});import{appendFileSync as hCt,existsSync as ehr,readFileSync as thr}from"node:fs";import{join as Ive}from"node:path";function nhr(e){let t=Ive(e,"intent.md"),n=kve(t,"active_stage");if(!n)return null;let r=Ive(e,"stages",n,"state.json"),i=pCt(r);return(typeof i.phase=="string"?i.phase:"")||null}async function rhr(e,t){let n=Number(e.total_tokens??0),r=Number(e.max_tokens??0);if(n===0||r===0)return;let i=oO();if(!i||nhr(i)!=="elaborate")return;let s=Math.floor((r-n)*100/r),o=process.env.CLAUDE_SESSION_ID??"unknown",a=Ive("/tmp",`context-monitor-${o}`),c="";ehr(a)&&(c=thr(a,"utf8")),s<=25?c.includes("25")||(hCt(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")||(hCt(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 QPt,$Pt=v(()=>{"use strict";iy();$v();QPt={name:"context-monitor",description:"PostToolUse: while elaborating in an active intent, suggest /clear at 35% / 25% remaining context budget.",async handle(e,t){await Epr(e,t.pluginRoot)}}});function bpr(e){if(e==null)return!1;if(typeof e=="string"){let n=e.toLowerCase();return Eve.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(Eve.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(Eve.some(s=>i.includes(s)))return!0}}return!1}var Eve,eCt,tCt=v(()=>{"use strict";iy();$v();Eve=["file has not been read yet","file has not been read in this session","read it first before writing to it"];eCt={name:"edit-auto-read-hint",description:"PostToolUse: when Edit/MultiEdit fails with 'file not read yet', surface a Read-first hint so the agent recovers in one turn instead of retrying blindly.",async handle(e,t){if(!Z0())return;let n=e??{};if(!bpr(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 _pr}from"node:child_process";import{existsSync as Tpr}from"node:fs";import{join as nCt,resolve as vpr}from"node:path";function Apr(e){process.stderr.write(e)}function Rpr(e){try{let t=_pr("git",["rev-parse","--git-dir"],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(!t)return!1;let n=t.startsWith("/")?t:nCt(e,t);for(let r of["MERGE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(Tpr(nCt(n,r)))return!0;return!1}catch{return!1}}function wpr(e){let t=e.match(/\.haiku\/intents\/([^/]+)\/stages\/([^/]+)\/units\/([^/]+)\.md$/);if(t)return{kind:"unit",intent:t[1],stage:t[2],name:t[3]};let n=e.match(/\.haiku\/intents\/([^/]+)\/(?:stages\/([^/]+)\/)?feedback\/([^/]+)\.md$/);return n?{kind:"feedback",intent:n[1],stage:n[2]||void 0,name:n[3]}:/\.haiku\/intents\/[^/]+\/intent\.md$/.test(e)?{kind:"intent"}:/\.haiku\/intents\/[^/]+\/stages\/[^/]+\/state\.json$/.test(e)?{kind:"stage_state"}:/\.haiku\/intents\/[^/]+\/stages\/[^/]+\/BRIEF\.md$/.test(e)?{kind:"brief"}:/\.haiku\/intents\/[^/]+\/stages\/[^/]+\/\.baseline-ack$/.test(e)?{kind:"baseline_ack"}:/\.haiku\/intents\/[^/]+\/stages\/[^/]+\/baseline-thrash\.json$/.test(e)?{kind:"baseline_thrash"}:/(?:^|\/)\.haiku\/settings\.yml$/.test(e)?{kind:"settings"}:{kind:null}}function kpr(e,t){let n=e==="Read"?"read":e==="Write"?"create or overwrite":"edit",r=t.intent??"",i=t.stage??"",s=t.name??"";if(t.kind==="unit"){let o=n==="read"?`haiku_unit_read { intent: "${r}", stage: "${i}", unit: "${s}" }`:n==="create or overwrite"?`haiku_unit_write { intent: "${r}", stage: "${i}", unit: "${s}", body: "...", frontmatter: { ... } }`:`haiku_unit_set { intent: "${r}", stage: "${i}", unit: "${s}", field: "...", value: "..." }`;return`BLOCKED: Cannot ${n} unit file '${s}.md' via generic ${e}. Unit files are workflow-managed \u2014 use the MCP tool instead: +`),process.exit(2)))}var mCt,gCt=v(()=>{"use strict";oy();oR();mCt={name:"context-monitor",description:"PostToolUse: while elaborating in an active intent, suggest /clear at 35% / 25% remaining context budget.",async handle(e,t){await rhr(e,t.pluginRoot)}}});function ihr(e){if(e==null)return!1;if(typeof e=="string"){let n=e.toLowerCase();return xve.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(xve.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(xve.some(s=>i.includes(s)))return!0}}return!1}var xve,yCt,SCt=v(()=>{"use strict";oy();oR();xve=["file has not been read yet","file has not been read in this session","read it first before writing to it"];yCt={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(!sO())return;let n=e??{};if(!ihr(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 shr}from"node:child_process";import{existsSync as ohr}from"node:fs";import{join as bCt,resolve as ahr}from"node:path";function chr(e){process.stderr.write(e)}function uhr(e){try{let t=shr("git",["rev-parse","--git-dir"],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(!t)return!1;let n=t.startsWith("/")?t:bCt(e,t);for(let r of["MERGE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(ohr(bCt(n,r)))return!0;return!1}catch{return!1}}function lhr(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 dhr(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 Ipr(e){if(!Z0())return;let t=e.tool_name||"";if(t!=="Read"&&t!=="Write"&&t!=="Edit"&&t!=="MultiEdit")return;let r=(e.tool_input||{}).file_path||"";if(!r)return;let i=vpr(process.cwd(),r),s=wpr(i);s.kind!==null&&(s.kind==="brief"&&t!=="Read"||Rpr(process.cwd())||(Apr(kpr(t,s)),process.exit(2)))}var rCt,iCt=v(()=>{"use strict";$v();iy();rCt={name:"guard-workflow-fields",description:"PreToolUse Read/Write/Edit/MultiEdit: enforce workflow-ownership boundary on .haiku state files (units, feedback, intent.md, stage state.json) \u2014 agents must use the corresponding MCP tools.",async handle(e,t){await Ipr(e)}}});import{join as sCt}from"node:path";function xpr(e){return e.replace(/^\//,"-").replace(/[/.]/g,"-")}function Opr(){let e={},t=["CLAUDE_SESSION_ID","CLAUDE_CODE_IS_COWORK","CLAUDE_MODEL","CLAUDE_CODE_VERSION","CLAUDE_CODE_ENTRYPOINT","USER"];for(let n of t){let r=process.env[n];r&&(e[n]=r)}return e.platform=process.platform,e.node_version=process.version,e.cwd=process.cwd(),e}async function Npr(e){if(!(e.tool_name||"").startsWith("haiku_"))return;let n={},r=e.session_id||process.env.CLAUDE_SESSION_ID;if(r){let i=process.env.CLAUDE_CONFIG_DIR||sCt(process.env.HOME||"",".claude"),s=xpr(process.cwd());n.state_file=sCt(i,"projects",s,r,"haiku.json")}n._session_context=Opr(),process.stdout.write(JSON.stringify(n))}var oCt,aCt=v(()=>{"use strict";iy();oCt={name:"inject-state-file",description:"PreToolUse: inject state_file path + _session_context into haiku_* tool calls.",async handle(e,t){await Npr(e)}}});async function Cpr(e,t){if(!Z0())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||"";Ppr.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 fhr(e){if(!sO())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=ahr(process.cwd(),r),s=lhr(i);s.kind!==null&&(s.kind==="brief"&&t!=="Read"||uhr(process.cwd())||(chr(dhr(t,s)),process.exit(2)))}var ECt,_Ct=v(()=>{"use strict";oR();oy();ECt={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 fhr(e)}}});import{join as TCt}from"node:path";function phr(e){return e.replace(/^\//,"-").replace(/[/.]/g,"-")}function hhr(){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 mhr(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||TCt(process.env.HOME||"",".claude"),s=phr(process.cwd());n.state_file=TCt(i,"projects",s,r,"haiku.json")}n._session_context=hhr(),process.stdout.write(JSON.stringify(n))}var vCt,RCt=v(()=>{"use strict";oy();vCt={name:"inject-state-file",description:"PreToolUse: inject state_file path + _session_context into haiku_* tool calls.",async handle(e,t){await mhr(e)}}});async function yhr(e,t){if(!sO())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||"";ghr.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 Ppr,cCt,uCt=v(()=>{"use strict";iy();$v();Ppr=/ignore previous|disregard|override instructions|you are now|system prompt||<\/system>/i;cCt={name:"prompt-guard",description:"PreToolUse Write/Edit: advisory scan for prompt injection in haiku spec writes.",async handle(e,t){await Cpr(e,t.pluginRoot)}}});import{existsSync as Mpr}from"node:fs";import{join as Lpr}from"node:path";function Dpr(){let e=process.env.HAIKU_REDIRECT_PLAN_MODE;if(!e)return!1;let t=e.trim().toLowerCase();return t==="1"||t==="true"||t==="yes"||t==="on"}async function Upr(e,t){if(e.tool_name!=="EnterPlanMode"||!Dpr()||!sh()||Y0())return;let n=n8();if(!Mpr(Lpr(n,".haiku")))return;let r=LP("start"),i={hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`H\xB7AI\xB7K\xB7U: Use ${r} instead of plan mode. +`)}var ghr,ACt,wCt=v(()=>{"use strict";oy();oR();ghr=/ignore previous|disregard|override instructions|you are now|system prompt||<\/system>/i;ACt={name:"prompt-guard",description:"PreToolUse Write/Edit: advisory scan for prompt injection in haiku spec writes.",async handle(e,t){await yhr(e,t.pluginRoot)}}});import{existsSync as Shr}from"node:fs";import{join as bhr}from"node:path";function Ehr(){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 _hr(e,t){if(e.tool_name!=="EnterPlanMode"||!Ehr()||!oh()||oO())return;let n=p8();if(!Shr(bhr(n,".haiku")))return;let r=WN("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: @@ -1635,9 +1635,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 lCt,dCt=v(()=>{"use strict";Ef();iy();$v();lCt={name:"redirect-plan-mode",description:"PreToolUse: when HAIKU_REDIRECT_PLAN_MODE is set and no intent is active, intercept EnterPlanMode (Claude Code) and redirect to /haiku:haiku-start.",async handle(e,t){await Upr(e,t.pluginRoot)}}});import{resolve as Fpr}from"node:path";async function jpr(e){if(!Y0())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 u6(Fpr(process.cwd(),i))}var fCt,pCt=v(()=>{"use strict";L_e();iy();$v();fCt={name:"stamp-agent-write",description:"PostToolUse Write/Edit/MultiEdit: append an `agent_write` action-log entry when the agent writes inside an intent's tracked drift surface, so the next drift-gate tick attributes the change to the agent and updates the baseline silently.",async handle(e,t){try{await jpr(e)}catch{}}}});import{existsSync as hCt,readdirSync as Hpr}from"node:fs";import{join as bve}from"node:path";function qpr(){let e=bve(process.cwd(),".haiku","intents");if(!hCt(e))return null;let t=Hpr(e).filter(n=>hCt(bve(e,n,"intent.md")));return t.length===1?bve(e,t[0]):null}async function Bpr(e,t){let n=e.tool_name;if(n!=="Write"&&n!=="Edit"||!qpr())return;let s=(e.tool_input||{}).file_path||"";s.includes("/.haiku/")||process.stdout.write(`\u26A0\uFE0F WORKFLOW GUARD: Editing ${s} \u2014 ensure this is within an active hat's scope. -`)}var mCt,gCt=v(()=>{"use strict";iy();mCt={name:"workflow-guard",description:"PreToolUse Write/Edit: warn when editing outside the active hat's scope.",async handle(e,t){await Bpr(e,t.pluginRoot)}}});var SCt={};Rr(SCt,{__HOOK_REGISTRY:()=>Zpr,runHook:()=>Kpr});import{readFileSync as Gpr}from"node:fs";function Wpr(){try{return Gpr(0,"utf8")}catch{return""}}async function Kpr(e,t){if(Vpr.has(e))return;let n=zpr.get(e);n||(console.error(`haiku: hook '${e}' not implemented`),process.exit(2));let r=Wpr(),i={};try{r.trim()&&(i=JSON.parse(r))}catch{}let{resolvePluginRoot:s}=await Promise.resolve().then(()=>(Ci(),T4e)),o=s();await n.handle(i,{pluginRoot:o})}var yCt,zpr,Vpr,Zpr,ECt=v(()=>{"use strict";$Pt();tCt();iCt();aCt();uCt();dCt();pCt();gCt();yCt=[QPt,eCt,rCt,oCt,cCt,lCt,fCt,mCt],zpr=new Map(yCt.map(e=>[e.name,e])),Vpr=new Set(["quality-gate","track-outputs","ensure-deps","inject-context","subagent-hook","subagent-context","enforce-iteration"]);Zpr=yCt});var TCt={};Rr(TCt,{runMigrate:()=>$pr});import{execSync as Ypr}from"node:child_process";import{cpSync as ZU,existsSync as sy,mkdirSync as J0,readdirSync as bCt,readFileSync as Jpr,writeFileSync as X0}from"node:fs";import{basename as _ve,join as xn}from"node:path";function _Ct(e){let t=Jpr(e,"utf8"),n=t.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);if(!n)return{data:{},body:t};let r={};for(let i of n[1].split(` -`)){let s=i.match(/^([\w][\w-]*):\s*(.*)$/);if(s){let[,o,a]=s;a==="null"?r[o]=null:a==="true"?r[o]=!0:a==="false"?r[o]=!1:/^-?\d+$/.test(a)?r[o]=Number.parseInt(a,10):a.startsWith("[")&&a.endsWith("]")?r[o]=a.slice(1,-1).split(",").map(c=>c.trim().replace(/^["']|["']$/g,"")).filter(Boolean):r[o]=a.replace(/^["']|["']$/g,"")}}return{data:r,body:n[2].trim()}}function Xpr(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function Tve(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 $pr(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(!sy(u)){console.log("No .ai-dlc/ directory found. Nothing to migrate.");return}let d=bCt(u).filter(_=>{let T=xn(u,_);return sy(xn(T,"intent.md"))});if(d.length===0){console.log("No intents found in .ai-dlc/. Nothing to migrate.");return}if(n.length===0&&!s){let _=d.map(T=>` ${T}`).join(` +(To disable this redirect, unset \`HAIKU_REDIRECT_PLAN_MODE\` in your environment.)`}};process.stdout.write(JSON.stringify(i))}var kCt,ICt=v(()=>{"use strict";_f();oy();oR();kCt={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 _hr(e,t.pluginRoot)}}});import{resolve as Thr}from"node:path";async function vhr(e){if(!oO())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 E5(Thr(process.cwd(),i))}var xCt,OCt=v(()=>{"use strict";V_e();oy();oR();xCt={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 vhr(e)}catch{}}}});import{existsSync as PCt,readdirSync as Rhr}from"node:fs";import{join as Ove}from"node:path";function Ahr(){let e=Ove(process.cwd(),".haiku","intents");if(!PCt(e))return null;let t=Rhr(e).filter(n=>PCt(Ove(e,n,"intent.md")));return t.length===1?Ove(e,t[0]):null}async function whr(e,t){let n=e.tool_name;if(n!=="Write"&&n!=="Edit"||!Ahr())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 NCt,CCt=v(()=>{"use strict";oy();NCt={name:"workflow-guard",description:"PreToolUse Write/Edit: warn when editing outside the active hat's scope.",async handle(e,t){await whr(e,t.pluginRoot)}}});var DCt={};Ar(DCt,{__HOOK_REGISTRY:()=>Nhr,runHook:()=>Phr});import{readFileSync as khr}from"node:fs";function Ohr(){try{return khr(0,"utf8")}catch{return""}}async function Phr(e,t){if(xhr.has(e))return;let n=Ihr.get(e);n||(console.error(`haiku: hook '${e}' not implemented`),process.exit(2));let r=Ohr(),i={};try{r.trim()&&(i=JSON.parse(r))}catch{}let{resolvePluginRoot:s}=await Promise.resolve().then(()=>(Ci(),CKe)),o=s();await n.handle(i,{pluginRoot:o})}var MCt,Ihr,xhr,Nhr,LCt=v(()=>{"use strict";gCt();SCt();_Ct();RCt();wCt();ICt();OCt();CCt();MCt=[mCt,yCt,ECt,vCt,ACt,kCt,xCt,NCt],Ihr=new Map(MCt.map(e=>[e.name,e])),xhr=new Set(["quality-gate","track-outputs","ensure-deps","inject-context","subagent-hook","subagent-context","enforce-iteration"]);Nhr=MCt});var jCt={};Ar(jCt,{runMigrate:()=>Uhr});import{execSync as Chr}from"node:child_process";import{cpSync as tF,existsSync as ay,mkdirSync as aO,readdirSync as UCt,readFileSync as Mhr,writeFileSync as cO}from"node:fs";import{basename as Pve,join as On}from"node:path";function FCt(e){let t=Mhr(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 Dhr(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function Nve(e){try{let{execSync:t}=Y("node:child_process");return t(`git log --diff-filter=A --follow --format=%aI -- "${e}" | tail -1`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}function Lhr(e){try{let{execSync:t}=Y("node:child_process");return t(`git log -1 --format=%aI -- "${e}"`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}async function Uhr(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=On(c,".ai-dlc"),l=On(c,".haiku","intents");if(!ay(u)){console.log("No .ai-dlc/ directory found. Nothing to migrate.");return}let d=UCt(u).filter(_=>{let T=On(u,_);return ay(On(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/: @@ -1649,91 +1649,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{_=Ypr("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{_=Chr("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(sy(A)){let ee=sy(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}=_Ct(xn(T,"intent.md")),k=R.status||"active",N=x.match(/^# (.+)$/m)?.[1]||_,P=y.get(_)||"",C=Tve(xn(T,"intent.md")),F=Qpr(T),V=R.created||"",K=C||(V?`${V}T00:00:00Z`:Xpr()),$=k==="completed"||k==="complete"?F||K:null;if(i){console.log(` DRY RUN: ${_} (status: ${k})`),S++;continue}J0(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 se=xn(u,ee),Me=f.find(Re=>ee.endsWith(Re))||"";G.push({dir:se,defaultStage:q[Me]||"development"})}let U=new Map,L=0;for(let{dir:ee,defaultStage:se}of G){let Me=bCt(ee).filter(Re=>Re.startsWith("unit-")&&Re.endsWith(".md"));for(let Re of Me){let{data:z,body:J}=_Ct(xn(ee,Re)),oe=z.pass||"",le=oe?X[oe]||"development":se||"development";U.has(le)||U.set(le,[]),U.get(le)?.push({file:Re,fm:z,body:J}),L++}if(ee!==T){if(sy(xn(ee,"discovery.md"))){let Re=_ve(ee);i||ZU(xn(ee,"discovery.md"),xn(A,"knowledge",`${Re}-discovery.md`))}if(sy(xn(ee,"mockups"))&&!i){let Re=xn(A,"stages","design","artifacts");J0(Re,{recursive:!0});try{ZU(xn(ee,"mockups"),Re,{recursive:!0})}catch{}}}}let H=R.active_pass||"",j=H&&X[H]||"",W=R.epic||"";if(k==="completed"||k==="complete"){X0(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=On(u,_),R=On(l,_);if(ay(R)){let ee=ay(On(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}=FCt(On(T,"intent.md")),k=A.status||"active",P=x.match(/^# (.+)$/m)?.[1]||_,N=g.get(_)||"",C=Nve(On(T,"intent.md")),L=Lhr(T),G=A.created||"",W=C||(G?`${G}T00:00:00Z`:Dhr()),$=k==="completed"||k==="complete"?L||W:null;if(i){console.log(` DRY RUN: ${_} (status: ${k})`),S++;continue}aO(On(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=On(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=UCt(ee).filter(Ae=>Ae.startsWith("unit-")&&Ae.endsWith(".md"));for(let Ae of Le){let{data:z,body:J}=FCt(On(ee,Ae)),oe=z.pass||"",de=oe?Q[oe]||"development":se||"development";U.has(de)||U.set(de,[]),U.get(de)?.push({file:Ae,fm:z,body:J}),M++}if(ee!==T){if(ay(On(ee,"discovery.md"))){let Ae=Pve(ee);i||tF(On(ee,"discovery.md"),On(R,"knowledge",`${Ae}-discovery.md`))}if(ay(On(ee,"mockups"))&&!i){let Ae=On(R,"stages","design","artifacts");aO(Ae,{recursive:!0});try{tF(On(ee,"mockups"),Ae,{recursive:!0})}catch{}}}}let j=A.active_pass||"",H=j&&Q[j]||"",K=A.epic||"";if(k==="completed"||k==="complete"){cO(On(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: ${$}${K?` +epic: ${K}`:""}${N?` +follows: ${N}`:""} --- ${x} -`);for(let se of B)J0(xn(A,"stages",se,"units"),{recursive:!0}),X0(xn(A,"stages",se,"state.json"),`${JSON.stringify({stage:se,status:"completed",phase:"gate",started_at:`${K}`,completed_at:`${$}`,gate_entered_at:null,gate_outcome:"advanced"},null,2)} -`);for(let[se,Me]of U){J0(xn(A,"stages",se,"units"),{recursive:!0});for(let{file:Re,fm:z,body:J}of Me){let oe=z.status||"pending",le=z.depends_on||[],_e=z.discipline||"fullstack",kt=z.last_updated||Tve(xn(T,Re))||null,Ue=z.ticket||"",Dn=z.branch||"";X0(xn(A,"stages",se,"units",Re),`--- -name: ${_ve(Re,".md")} +`);for(let se of q)aO(On(R,"stages",se,"units"),{recursive:!0}),cO(On(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){aO(On(R,"stages",se,"units"),{recursive:!0});for(let{file:Ae,fm:z,body:J}of Le){let oe=z.status||"pending",de=z.depends_on||[],_e=z.discipline||"fullstack",kt=z.last_updated||Nve(On(T,Ae))||null,Ue=z.ticket||"",Un=z.branch||"";cO(On(R,"stages",se,"units",Ae),`--- +name: ${Pve(Ae,".md")} type: ${_e} status: ${oe} -depends_on: [${le.join(", ")}] +depends_on: [${de.join(", ")}] bolt: 0 hat: ""${Ue?` -ticket: ${Ue}`:""}${Dn?` -branch: ${Dn}`:""} +ticket: ${Ue}`:""}${Un?` +branch: ${Un}`:""} started_at: ${kt||"null"} completed_at: ${oe==="completed"&&kt||"null"} --- ${J} -`)}}let ee=M.length>0?` [merged: ${M.join(", ")}]`:"";console.log(` MIGRATED: ${_} (completed, ${L} units across ${U.size} stage(s))${ee}`)}else{let ee=B.filter(Re=>(!U.has(Re)&&Re!==j,!1)),se=B.find(Re=>U.has(Re))||"";X0(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!==H,!1)),se=q.find(Ae=>U.has(Ae))||"";cO(On(R,"intent.md"),`--- +title: "${P}" studio: software stages: [inception, design, product, development, operations, security] mode: continuous active_stage: ${se||'""'} status: active -started_at: ${K} -completed_at: null${W?` -epic: ${W}`:""}${P?` -follows: ${P}`:""} +started_at: ${W} +completed_at: null${K?` +epic: ${K}`:""}${N?` +follows: ${N}`:""} --- ${x} -`);for(let Re of B)J0(xn(A,"stages",Re,"units"),{recursive:!0}),U.has(Re)&&X0(xn(A,"stages",Re,"state.json"),`${JSON.stringify({stage:Re,status:Re===se?"active":"pending",phase:Re===se?"execute":"",started_at:K,completed_at:null,gate_entered_at:null,gate_outcome:null},null,2)} -`);for(let[Re,z]of U)for(let{file:J,fm:oe,body:le}of z){let _e=oe.status||"pending",kt=oe.depends_on||[],Ue=oe.discipline||"fullstack",Dn=oe.last_updated||Tve(xn(T,J))||null,lr=oe.ticket||"",sn=oe.branch||"";X0(xn(A,"stages",Re,"units",J),`--- -name: ${_ve(J,".md")} +`);for(let Ae of q)aO(On(R,"stages",Ae,"units"),{recursive:!0}),U.has(Ae)&&cO(On(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:de}of z){let _e=oe.status||"pending",kt=oe.depends_on||[],Ue=oe.discipline||"fullstack",Un=oe.last_updated||Nve(On(T,J))||null,dr=oe.ticket||"",sn=oe.branch||"";cO(On(R,"stages",Ae,"units",J),`--- +name: ${Pve(J,".md")} type: ${Ue} status: ${_e} depends_on: [${kt.join(", ")}] bolt: 0 -hat: ""${lr?` -ticket: ${lr}`:""}${sn?` +hat: ""${dr?` +ticket: ${dr}`:""}${sn?` branch: ${sn}`:""} -started_at: ${Dn||"null"} -completed_at: ${_e==="completed"&&Dn||"null"} +started_at: ${Un||"null"} +completed_at: ${_e==="completed"&&Un||"null"} --- -${le} -`)}let Me=M.length>0?` [merged: ${M.join(", ")}]`:"";console.log(` MIGRATED: ${_} (active, stage: ${j||"inception"}, ${L} units across ${U.size} stage(s))${Me}`)}if(sy(xn(T,"discovery.md"))&&ZU(xn(T,"discovery.md"),xn(A,"knowledge","DISCOVERY.md")),sy(xn(T,"knowledge")))try{ZU(xn(T,"knowledge"),xn(A,"knowledge"),{recursive:!0})}catch{}if(sy(xn(T,"mockups"))){let ee=xn(A,"stages","design","artifacts");J0(ee,{recursive:!0});try{ZU(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 vCt=v(()=>{"use strict"});function ihr(e,t){return t?Qr.gate:Qr[e]??Qr.execute}function wCt(e,t={}){let n=t.color??!process.env.NO_COLOR,r=(k,N)=>n?`${k}${N}${Qr.reset}`:N,i=r(Qr.brand,ehr),s=r(Qr.brand,"\u2B22"),o=r(Qr.intent,e.intent),a=e.studio?r(Qr.dim,e.studio):"",c=ihr(e.phaseKind,e.gated),u=e.phaseTrack===null?"":Array.from({length:e.phaseTrack.total},(k,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}`:rhr(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?thr[k.severity]:nhr,P=N?N.pips:RCt;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=ACt[k.status]??ACt.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 ehr,YU,RCt,r8,ACt,thr,nhr,rhr,Qr,kCt=v(()=>{"use strict";ehr="H\xB7AI\xB7K\xB7U",YU="\x1B[1;38;2;255;255;0m",RCt={done:"\x1B[38;5;71m",active:YU,rejected:"\x1B[1;38;5;167m",pending:"\x1B[38;5;244m"},r8="\x1B[38;5;240m",ACt={done:{bg:"\x1B[48;5;151m",fg:"\x1B[1;38;5;22m",mark:" \u2713"},active:{bg:"\x1B[48;5;254m",fg:"\x1B[1;38;5;238m",mark:" \u25B8"},pending:{bg:"\x1B[48;5;248m",fg:"\x1B[38;5;240m",mark:""},failed:{bg:"\x1B[48;5;217m",fg:"\x1B[1;38;5;124m",mark:" \u2717"}},thr={blocker:{bg:"\x1B[48;5;210m",mark:"!",pips:{done:"\x1B[1;38;5;22m",active:YU,rejected:"\x1B[1;38;5;52m",pending:r8}},high:{bg:"\x1B[48;5;216m",mark:"^",pips:{done:"\x1B[1;38;5;22m",active:YU,rejected:"\x1B[1;38;5;88m",pending:r8}},medium:{bg:"\x1B[48;5;223m",mark:"~",pips:{done:"\x1B[1;38;5;22m",active:YU,rejected:"\x1B[1;38;5;88m",pending:r8}},low:{bg:"\x1B[48;5;254m",mark:".",pips:RCt}},nhr={bg:"\x1B[48;5;189m",mark:"?",pips:{done:"\x1B[1;38;5;28m",active:YU,rejected:"\x1B[1;38;5;124m",pending:r8}},rhr=e=>Array.from(e).map(t=>`${t}\u0336`).join(""),Qr={reset:"\x1B[0m",bold:"\x1B[1m",strike:"\x1B[9m",brand:"\x1B[38;5;43m",intent:"\x1B[1;38;5;255m",done:"\x1B[38;5;71m",active:"\x1B[38;5;214m",pending:"\x1B[38;5;243m",dim:"\x1B[38;5;240m",pipDone:"\x1B[38;5;255m",stage:"\x1B[38;5;38m",elaborate:"\x1B[38;5;245m",execute:"\x1B[38;5;39m",review:"\x1B[38;5;220m",approve:"\x1B[38;5;220m",fixloop:"\x1B[38;5;208m",gate:"\x1B[38;5;170m",complete:"\x1B[38;5;71m",sealed:"\x1B[38;5;71m",pending_seal:"\x1B[38;5;177m",blocked:"\x1B[38;5;203m",recovering:"\x1B[38;5;44m",setup:"\x1B[38;5;245m",chipBg:"\x1B[48;5;254m",chipLabel:"\x1B[1;38;5;238m",chipPending:"\x1B[38;5;250m"}});import{execFileSync as shr}from"node:child_process";import{existsSync as oy,readdirSync as Q0,readFileSync as ohr,statSync as ahr}from"node:fs";import{join as Rc}from"node:path";function $0(e){if(!oy(e))return null;try{return re(ohr(e,"utf8")).data}catch{return null}}function chr(){try{return shr("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return""}}function uhr(e){let t=Rc(e,"intents");if(!oy(t))return null;let r=chr().match(/^haiku\/(.+?)\/[^/]+$/);if(r?.[1]){let o=r[1];if(oy(Rc(t,o,"intent.md")))return o}let i;try{i=Q0(t).filter(o=>{try{return ahr(Rc(t,o)).isDirectory()}catch{return!1}})}catch{return null}let s=i.filter(o=>{let a=$0(Rc(t,o,"intent.md"));return!a||a.archived===!0?!1:typeof a.sealed_at=="string"&&a.sealed_at.length>0?jD(o,{localOnly:!0}):!0});return s.length===1?s[0]:null}function Ave(e){if(!e)return"";let t=e;if(typeof t.stage=="string"&&t.stage.length>0)return t.stage;if(Array.isArray(t.dispatches)&&t.dispatches.length>0){let n=t.dispatches[0]?.stage;if(typeof n=="string"&&n.length>0)return n}return""}function dhr(e){return!!e&&Ave(e)===""&&lhr.has(e.kind)}function vve(e){return e==="cross-stage-consistency"?"cross-stage":e}function fhr(e){if(!e)return{kind:"execute",label:"working",gated:!1};switch(e.kind){case"integrate_fix_chains":return{kind:"recovering",label:"resolving conflicts",gated:!1};case"safe_intent_repair":return{kind:"recovering",label:"recovering",gated:!1};case"upstream_reconciliation_required":return{kind:"recovering",label:"merging upstream",gated:!1}}switch(e.kind){case"elaborate_loop":return{kind:"elaborate",label:"elaborate",gated:!1};case"start_unit_hat":return{kind:"execute",label:"execute",gated:!1};case"start_feedback_hat":case"close_feedback":return{kind:"fixloop",label:"fix-loop",gated:!1};case"feedback_question":return{kind:"fixloop",label:"question",gated:!0};case"dispatch_review":{let t=e.dispatches;return{kind:"review",label:t&&t.length>1?"adversarial review":`${vve(e.role)} review`,gated:!1}}case"dispatch_approval":{let t=e.dispatches;return{kind:"approve",label:t&&t.length>1?"adversarial approval":`${vve(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":`${vve(e.role)} review`,gated:!1}}case"record_reflection":return{kind:"complete",label:"reflection",gated:!1};case"seal_intent":case"sealed":return{kind:"sealed",label:"sealed",gated:!1};case"pending_seal":return{kind:"pending_seal",label:"pending seal",gated:!0};case"unit_inputs_not_declared":case"unit_outputs_empty_iterations":return{kind:"blocked",label:"spec error",gated:!0};default:return{kind:"execute",label:"working",gated:!1}}}function ICt(e,t,n,r){let i=Rc(r,"stages",n,"units");if(!oy(i))return{done:0,total:0};let s=bs(t,n),o=s[s.length-1]??"",a=0,c=0;for(let u of Q0(i).filter(l=>l.endsWith(".md"))){let l=$0(Rc(i,u));if(!l)continue;c++;let d=Array.isArray(l.iterations)?l.iterations:[],f=d[d.length-1];f&&f.result==="advance"&&f.hat===o&&a++}return{done:a,total:c}}function xCt(e,t){let n=t?Rc(e,"stages",t,"feedback"):Rc(e,"feedback");if(!oy(n))return{closed:0,total:0};let r=0,i=0;for(let s of Q0(n).filter(o=>o.endsWith(".md"))){let o=$0(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 PCt(e){return e.match(/^(?:unit-)?(\d+)/)?.[1]??""}function phr(e){let t=e.includes(":")?e.slice(e.indexOf(":")+1):e;return t==="cross-stage-consistency"?"cross-stage":e==="intent-quality-gates"||t==="quality_gates"?"quality":t==="user"?"gate":t}function CCt(e,t,n=!0){let r=new Map;for(let a of e)typeof a.hat=="string"&&r.set(a.hat,a.result);let i=t.map(a=>{let c=r.get(a);return c===void 0?"pending":typeof c=="string"&&OCt.has(c)?"done":typeof c=="string"&&hhr.has(c)?"rejected":"pending"});if(t.length===0||!n)return i;if(e.length===0)return i[0]="active",i;let s=e[e.length-1],o=typeof s.hat=="string"?t.indexOf(s.hat):-1;if(s.result===null||s.result===void 0)o>=0&&(i[o]="active");else if(typeof s.result=="string"&&OCt.has(s.result)){let a=o+1;a>=0&&a(c.get(d.name)??0)===l).map(d=>d.name))}catch{return[]}if(s.size===0)return[];let o=[];for(let a of Q0(r).filter(c=>c.endsWith(".md")).sort()){if(!s.has(a.replace(/\.md$/,"")))continue;let c=$0(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-${PCt(a)}`,segments:CCt(u,i,l)})}return o}function NCt(e,t){if(!oy(e)||t.length===0)return[];let n=[];for(let r of Q0(e).filter(i=>i.endsWith(".md")).sort()){let i=$0(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-${PCt(r)}`,segments:CCt(a,t,a.length>0),severity:c})}return n}function MCt(){let e;try{e=ve()}catch{return null}let t=uhr(e);if(!t)return null;let n=pe(t),r=$0(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){let N=jD(t,{localOnly:!0});return{intent:t,studio:i,stages:c.map(P=>({name:P,status:"done"})),activeStage:"",phaseLabel:N?"pending seal":"sealed",phaseKind:N?"pending_seal":"sealed",gated:N,aggregate:"",phaseTrack:null,itemBars:null,agentChips:null}}let u=null,l=lkt(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"&&!Ave(u))return s("verifying intent",3);let{kind:d,label:f,gated:p}=fhr(u),h=dhr(u),m=h?"":Ave(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&&wx(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}=ICt(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?xCt(n,g):{closed:0,total:0},P=xCt(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}=ICt(t,i,g,n);N>0&&(E=`${N} units`)}else d==="elaborate"&&(E="decomposing");let S=null,b="",_=null;try{if(_=n5({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=t5(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=mhr(i,g,n);N.length>0&&(T=N)}else if(d==="fixloop"){let N=[];g&&N.push(...NCt(Rc(n,"stages",g,"feedback"),Sg(i,g))),N.push(...NCt(Rc(n,"feedback"),Uf(i))),N.sort((P,C)=>Jc(P.severity)-Jc(C.severity)),N.length>0&&(T=N.slice(0,av))}let A=null;if(_&&(d==="review"||d==="approve")&&DEe(u)){let N=qTt({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)&&!LEe.has(FTt(F.key))).map(F=>({id:phr(F.key),status:F.status==="done"?"done":"active"}));C.length>0&&(A=C)}let R=u?u.signals_unmet:void 0,x=Array.isArray(R)?R:[],k=x.some(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("/")?oy(K)&&Q0(K).filter($=>$!==".gitkeep").length>0:oy(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();kK();Oa();HD();FEe();ji();ze();Kn();Ube();lhr=new Set(["intent_review","record_reflection","seal_intent","pending_seal","sealed"]);OCt=new Set(["advance","advanced","closed"]),hhr=new Set(["reject","rejected"])});var qCt={};Rr(qCt,{resolveFallbackCommand:()=>jCt,runStatusline:()=>Ihr});import{execFileSync as ghr}from"node:child_process";import{existsSync as tA,mkdirSync as DCt,readFileSync as JU,writeFileSync as wve}from"node:fs";import{homedir as i8}from"node:os";import{dirname as kve,join as el}from"node:path";function yhr(){return new Promise(e=>{let t="";if(process.stdin.isTTY){e("");return}process.stdin.setEncoding("utf8"),process.stdin.on("data",n=>{t+=n}),process.stdin.on("end",()=>e(t)),process.stdin.on("error",()=>e(t))})}function UCt(e){let t=e;for(let n=0;n<30;n++){let r=el(t,".haiku");if(tA(r))return r;let i=kve(t);if(i===t)break;t=i}return null}function Shr(e,t=i8()){let n=[],r=UCt(e);r&&n.push(el(r,XU)),n.push(el(t,".haiku",XU));for(let i of n)if(tA(i))try{return JSON.parse(JU(i,"utf8"))}catch{}return null}function Ehr(e){return e?FCt(e.statusLine):null}function FCt(e){let t=e;return t&&t.type==="command"&&typeof t.command=="string"&&t.command?t.command:null}function Rve(e){return e.includes("statusline")&&e.includes("haiku")}function bhr(e){if(!tA(e))return null;try{let t=JSON.parse(JU(e,"utf8"));return FCt(t.statusLine)}catch{return null}}function _hr(e){let t=UCt(e);return t?kve(t):e}function jCt(e,t=i8()){let n=Ehr(Shr(e,t)),r=_hr(e),i=[el(r,".claude","settings.local.json"),el(r,".claude","settings.json"),el(t,".claude","settings.json")];for(let s of i){let o=bhr(s);if(o){if(Rve(o)){if(n&&!Rve(n))return n;continue}return o}}return n&&!Rve(n)?n:null}async function Thr(){let e=await yhr(),t=process.cwd();try{let s=e?JSON.parse(e):{};t=s?.workspace?.current_dir??s?.cwd??s?.workspace?.project_dir??t}catch{}try{process.chdir(t)}catch{}let n=!!process.env.HAIKU_STATUSLINE_DEBUG,r=null;try{r=MCt()}catch(s){n&&process.stderr.write(`[haiku statusline] resolveStatuslineState threw: ${s instanceof Error?`${s.message} +${de} +`)}let Le=F.length>0?` [merged: ${F.join(", ")}]`:"";console.log(` MIGRATED: ${_} (active, stage: ${H||"inception"}, ${M} units across ${U.size} stage(s))${Le}`)}if(ay(On(T,"discovery.md"))&&tF(On(T,"discovery.md"),On(R,"knowledge","DISCOVERY.md")),ay(On(T,"knowledge")))try{tF(On(T,"knowledge"),On(R,"knowledge"),{recursive:!0})}catch{}if(ay(On(T,"mockups"))){let ee=On(R,"stages","design","artifacts");aO(ee,{recursive:!0});try{tF(On(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 HCt=v(()=>{"use strict"});function Bhr(e,t){return t?Qr.gate:Qr[e]??Qr.execute}function zCt(e,t={}){let n=t.color??!process.env.NO_COLOR,r=(k,P)=>n?`${k}${P}${Qr.reset}`:P,i=r(Qr.brand,Fhr),s=r(Qr.brand,"\u2B22"),o=r(Qr.intent,e.intent),a=e.studio?r(Qr.dim,e.studio):"",c=Bhr(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}`:qhr(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?jhr[k.severity]:Hhr,N=P?P.pips:BCt;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=qCt[k.status]??qCt.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 Fhr,nF,BCt,h8,qCt,jhr,Hhr,qhr,Qr,GCt=v(()=>{"use strict";Fhr="H\xB7AI\xB7K\xB7U",nF="\x1B[1;38;2;255;255;0m",BCt={done:"\x1B[38;5;71m",active:nF,rejected:"\x1B[1;38;5;167m",pending:"\x1B[38;5;244m"},h8="\x1B[38;5;240m",qCt={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"}},jhr={blocker:{bg:"\x1B[48;5;210m",mark:"!",pips:{done:"\x1B[1;38;5;22m",active:nF,rejected:"\x1B[1;38;5;52m",pending:h8}},high:{bg:"\x1B[48;5;216m",mark:"^",pips:{done:"\x1B[1;38;5;22m",active:nF,rejected:"\x1B[1;38;5;88m",pending:h8}},medium:{bg:"\x1B[48;5;223m",mark:"~",pips:{done:"\x1B[1;38;5;22m",active:nF,rejected:"\x1B[1;38;5;88m",pending:h8}},low:{bg:"\x1B[48;5;254m",mark:".",pips:BCt}},Hhr={bg:"\x1B[48;5;189m",mark:"?",pips:{done:"\x1B[1;38;5;28m",active:nF,rejected:"\x1B[1;38;5;124m",pending:h8}},qhr=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 zhr}from"node:child_process";import{existsSync as cy,readdirSync as uO,readFileSync as Ghr,statSync as Vhr}from"node:fs";import{join as wc}from"node:path";function lO(e){if(!cy(e))return null;try{return re(Ghr(e,"utf8")).data}catch{return null}}function Whr(){try{return zhr("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return""}}function Khr(e){let t=wc(e,"intents");if(!cy(t))return null;let r=Whr().match(/^haiku\/(.+?)\/[^/]+$/);if(r?.[1]){let o=r[1];if(cy(wc(t,o,"intent.md")))return o}let i;try{i=uO(t).filter(o=>{try{return Vhr(wc(t,o)).isDirectory()}catch{return!1}})}catch{return null}let s=i.filter(o=>{let a=lO(wc(t,o,"intent.md"));return!a||a.archived===!0?!1:typeof a.sealed_at=="string"&&a.sealed_at.length>0?KL(o,{localOnly:!0}):!0});return s.length===1?s[0]:null}function Mve(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 Zhr(e){return!!e&&Mve(e)===""&&Yhr.has(e.kind)}function Cve(e){return e==="cross-stage-consistency"?"cross-stage":e}function Jhr(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":`${Cve(e.role)} review`,gated:!1}}case"dispatch_approval":{let t=e.dispatches;return{kind:"approve",label:t&&t.length>1?"adversarial approval":`${Cve(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":`${Cve(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 VCt(e,t,n,r){let i=wc(r,"stages",n,"units");if(!cy(i))return{done:0,total:0};let s=Es(t,n),o=s[s.length-1]??"",a=0,c=0;for(let u of uO(i).filter(l=>l.endsWith(".md"))){let l=lO(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 WCt(e,t){let n=t?wc(e,"stages",t,"feedback"):wc(e,"feedback");if(!cy(n))return{closed:0,total:0};let r=0,i=0;for(let s of uO(n).filter(o=>o.endsWith(".md"))){let o=lO(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 ZCt(e){return e.match(/^(?:unit-)?(\d+)/)?.[1]??""}function Xhr(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 JCt(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"&&KCt.has(c)?"done":typeof c=="string"&&Qhr.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"&&KCt.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 uO(r).filter(c=>c.endsWith(".md")).sort()){if(!s.has(a.replace(/\.md$/,"")))continue;let c=lO(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-${ZCt(a)}`,segments:JCt(u,i,l)})}return o}function YCt(e,t){if(!cy(e)||t.length===0)return[];let n=[];for(let r of uO(e).filter(i=>i.endsWith(".md")).sort()){let i=lO(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-${ZCt(r)}`,segments:JCt(a,t,a.length>0),severity:c})}return n}function XCt(){let e;try{e=ve()}catch{return null}let t=Khr(e);if(!t)return null;let n=ce(t),r=lO(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=KL(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=kkt(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"&&!Mve(u))return s("verifying intent",3);let{kind:d,label:f,gated:p}=Jhr(u),h=Zhr(u),m=h?"":Mve(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&&C0(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}=VCt(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}=KI(C);if(G>1){let W=YI(C,L,G);b=`${b||`${N} units`} \xB7 wave ${W+1}/${G}`}}}catch{}}else if(d==="fixloop"){let P=y?WCt(n,y):{closed:0,total:0},N=WCt(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}=VCt(t,i,y,n);P>0&&(b=`${P} units`)}else d==="elaborate"&&(b="decomposing");let S=null,E="",_=null;try{if(_=p6({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=f6(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=$hr(i,y,n);P.length>0&&(T=P)}else if(d==="fixloop"){let P=[];y&&P.push(...YCt(wc(n,"stages",y,"feedback"),bg(i,y))),P.push(...YCt(wc(n,"feedback"),jf(i))),P.sort((N,C)=>Xc(N.severity)-Xc(C.severity)),P.length>0&&(T=P.slice(0,fv))}let R=null;if(_&&(d==="review"||d==="approve")&&Wbe(u)){let P=tvt({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)&&!Vbe.has(QTt(L.key))).map(L=>({id:Xhr(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("/")?cy(W)&&uO(W).filter($=>$!==".gitkeep").length>0:cy(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();L3();Oa();YL();Ybe();ji();ze();Kn();KEe();Yhr=new Set(["intent_review","record_reflection","seal_intent","pending_seal","sealed"]);KCt=new Set(["advance","advanced","closed"]),Qhr=new Set(["reject","rejected"])});var iMt={};Ar(iMt,{resolveFallbackCommand:()=>nMt,runStatusline:()=>fmr});import{execFileSync as emr}from"node:child_process";import{existsSync as cR,mkdirSync as $Ct,readFileSync as rF,writeFileSync as Lve}from"node:fs";import{homedir as m8}from"node:os";import{dirname as Uve,join as tl}from"node:path";function tmr(){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 eMt(e){let t=e;for(let n=0;n<30;n++){let r=tl(t,".haiku");if(cR(r))return r;let i=Uve(t);if(i===t)break;t=i}return null}function nmr(e,t=m8()){let n=[],r=eMt(e);r&&n.push(tl(r,iF)),n.push(tl(t,".haiku",iF));for(let i of n)if(cR(i))try{return JSON.parse(rF(i,"utf8"))}catch{}return null}function rmr(e){return e?tMt(e.statusLine):null}function tMt(e){let t=e;return t&&t.type==="command"&&typeof t.command=="string"&&t.command?t.command:null}function Dve(e){return e.includes("statusline")&&e.includes("haiku")}function imr(e){if(!cR(e))return null;try{let t=JSON.parse(rF(e,"utf8"));return tMt(t.statusLine)}catch{return null}}function smr(e){let t=eMt(e);return t?Uve(t):e}function nMt(e,t=m8()){let n=rmr(nmr(e,t)),r=smr(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=imr(s);if(o){if(Dve(o)){if(n&&!Dve(n))return n;continue}return o}}return n&&!Dve(n)?n:null}async function omr(){let e=await tmr(),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=XCt()}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(wCt(r));return}let i=jCt(t);if(i)try{let s=ghr("sh",["-c",i],{input:e,encoding:"utf8",stdio:["pipe","pipe","ignore"]});process.stdout.write(s)}catch{}}function Ahr(e){return process.env.HAIKU_PROD==="1"?!0:process.env.HAIKU_DEV==="1"?!1:/\/\.claude\/(plugins|mcpb)\//.test(e)}function Rhr(){let e=nn();if(e&&Ahr(e))return`npx -y ${vhr} statusline`;if(e){let t=el(e,"bin","haiku");if(tA(t))return`${t} statusline`}return"haiku statusline"}function HCt(e,t){return e?{settingsPath:el(i8(),".claude","settings.json"),haikuDir:el(i8(),".haiku")}:{settingsPath:el(t,".claude","settings.json"),haikuDir:el(t,".haiku")}}function whr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=HCt(t,n),s={};if(tA(r))try{s=JSON.parse(JU(r,"utf8"))}catch{console.error(`haiku statusline install: ${r} is not valid JSON \u2014 fix or remove it first.`),process.exit(1)}let o=s.statusLine,a=Rhr(),c=o&&typeof o=="object"&&typeof o.command=="string"&&o.command.includes("statusline");c||(DCt(i,{recursive:!0}),wve(el(i,XU),JSON.stringify({statusLine:o??null},null,2))),s.statusLine={type:"command",command:a,padding:0},DCt(kve(r),{recursive:!0}),wve(r,`${JSON.stringify(s,null,2)} +`),r){process.stdout.write(zCt(r));return}let i=nMt(t);if(i)try{let s=emr("sh",["-c",i],{input:e,encoding:"utf8",stdio:["pipe","pipe","ignore"]});process.stdout.write(s)}catch{}}function cmr(e){return process.env.HAIKU_PROD==="1"?!0:process.env.HAIKU_DEV==="1"?!1:/\/\.claude\/(plugins|mcpb)\//.test(e)}function umr(){let e=nn();if(e&&cmr(e))return`npx -y ${amr} statusline`;if(e){let t=tl(e,"bin","haiku");if(cR(t))return`${t} statusline`}return"haiku statusline"}function rMt(e,t){return e?{settingsPath:tl(m8(),".claude","settings.json"),haikuDir:tl(m8(),".haiku")}:{settingsPath:tl(t,".claude","settings.json"),haikuDir:tl(t,".haiku")}}function lmr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=rMt(t,n),s={};if(cR(r))try{s=JSON.parse(rF(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=umr(),c=o&&typeof o=="object"&&typeof o.command=="string"&&o.command.includes("statusline");c||($Ct(i,{recursive:!0}),Lve(tl(i,iF),JSON.stringify({statusLine:o??null},null,2))),s.statusLine={type:"command",command:a,padding:0},$Ct(Uve(r),{recursive:!0}),Lve(r,`${JSON.stringify(s,null,2)} `),console.error(`haiku statusline installed \u2192 ${r} command: ${a} - fallback saved: ${c?"(unchanged)":el(i,XU)}`)}function khr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=HCt(t,n);if(!tA(r)){console.error(`haiku statusline uninstall: no settings at ${r}`);return}let s;try{s=JSON.parse(JU(r,"utf8"))}catch{console.error(`haiku statusline uninstall: ${r} is not valid JSON`),process.exit(1)}let o=el(i,XU),a=null;if(tA(o))try{a=JSON.parse(JU(o,"utf8")).statusLine}catch{}a?s.statusLine=a:delete s.statusLine,wve(r,`${JSON.stringify(s,null,2)} + fallback saved: ${c?"(unchanged)":tl(i,iF)}`)}function dmr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=rMt(t,n);if(!cR(r)){console.error(`haiku statusline uninstall: no settings at ${r}`);return}let s;try{s=JSON.parse(rF(r,"utf8"))}catch{console.error(`haiku statusline uninstall: ${r} is not valid JSON`),process.exit(1)}let o=tl(i,iF),a=null;if(cR(o))try{a=JSON.parse(rF(o,"utf8")).statusLine}catch{}a?s.statusLine=a:delete s.statusLine,Lve(r,`${JSON.stringify(s,null,2)} `),console.error(`haiku statusline uninstalled \u2192 ${r} - restored: ${a?"original statusLine":"(none \u2014 removed)"}`)}async function Ihr(e){let t=e[0];return t==="install"?whr(e.slice(1)):t==="uninstall"?khr(e.slice(1)):Thr()}var XU,vhr,BCt=v(()=>{"use strict";Ci();kCt();LCt();XU="statusline-fallback.json";vhr="@haiku/haiku"});ih();process.on("uncaughtException",e=>{ms(e,{context:"uncaughtException"}),console.error("uncaughtException:",e),Sf().finally(()=>process.exit(1))});process.on("unhandledRejection",e=>{let t=e instanceof Error?e:new Error(String(e));ms(t,{context:"unhandledRejection"}),console.error("unhandledRejection:",e),Sf().finally(()=>process.exit(1))});var[s8,...Ep]=process.argv.slice(2);if(s8==="mcp"){let e=Promise.resolve().then(()=>(k4e(),w4e)).then(i=>{i.maybeRebuildSpaForDev(import.meta.url)}).catch(i=>(ms(i instanceof Error?i:new Error(String(i)),{context:"dev-spa-rebuild"}),console.error(`haiku mcp: SPA dev-rebuild failed: ${i instanceof Error?i.message:String(i)}`),Sf().finally(()=>process.exit(1)))),t="",n=[];for(let i=0;i(Ef(),I4e)).then(i=>i.setHarness(t)):Promise.resolve();Promise.all([e,r]).then(()=>Promise.resolve().then(()=>(ZPt(),ppr))).catch(i=>{ms(i,{context:"mcp-bootstrap"}),console.error(`haiku mcp: ${i.message}`),Sf().finally(()=>process.exit(1))})}else if(s8==="hook"){let e=Ep[0];e||(console.error("Usage: haiku hook "),process.exit(1)),Promise.resolve().then(()=>(ECt(),SCt)).then(t=>t.runHook(e,Ep.slice(1))).catch(t=>{ms(t,{context:`hook:${e}`}),console.error(`haiku hook ${e}: ${t.message}`),Sf().finally(()=>process.exit(1))})}else s8==="migrate"?Promise.resolve().then(()=>(vCt(),TCt)).then(e=>e.runMigrate(Ep)).catch(e=>{ms(e,{context:"migrate"}),console.error(`haiku migrate: ${e.message}`),Sf().finally(()=>process.exit(1))}):s8==="statusline"?Promise.resolve().then(()=>(BCt(),qCt)).then(e=>e.runStatusline(Ep)).catch(e=>{ms(e,{context:"statusline"}),process.env.HAIKU_STATUSLINE_DEBUG&&console.error(`[haiku statusline] handler error: ${e instanceof Error?`${e.message} -${e.stack}`:String(e)}`),Sf().finally(()=>process.exit(0))}):(console.error("Usage: haiku [args...]"),process.exit(1)); + restored: ${a?"original statusLine":"(none \u2014 removed)"}`)}async function fmr(e){let t=e[0];return t==="install"?lmr(e.slice(1)):t==="uninstall"?dmr(e.slice(1)):omr()}var iF,amr,sMt=v(()=>{"use strict";Ci();GCt();QCt();iF="statusline-fallback.json";amr="@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[g8,...Ep]=process.argv.slice(2);if(g8==="mcp"){let e=Promise.resolve().then(()=>(FKe(),UKe)).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(),jKe)).then(i=>i.setHarness(t)):Promise.resolve();Promise.all([e,r]).then(()=>Promise.resolve().then(()=>(dCt(),Xpr))).catch(i=>{ms(i,{context:"mcp-bootstrap"}),console.error(`haiku mcp: ${i.message}`),Ef().finally(()=>process.exit(1))})}else if(g8==="hook"){let e=Ep[0];e||(console.error("Usage: haiku hook "),process.exit(1)),Promise.resolve().then(()=>(LCt(),DCt)).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 g8==="migrate"?Promise.resolve().then(()=>(HCt(),jCt)).then(e=>e.runMigrate(Ep)).catch(e=>{ms(e,{context:"migrate"}),console.error(`haiku migrate: ${e.message}`),Ef().finally(()=>process.exit(1))}):g8==="statusline"?Promise.resolve().then(()=>(sMt(),iMt)).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: @@ -1775,17 +1775,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 @@ -1807,15 +1796,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/_shared/runtime-verification.md b/plugin/prompts/_shared/runtime-verification.md index 317b87f3a..725165445 100644 --- a/plugin/prompts/_shared/runtime-verification.md +++ b/plugin/prompts/_shared/runtime-verification.md @@ -16,14 +16,27 @@ The surface is where a user — human or programmatic — meets the change. That | Change reaches | Surface | Handle | |---|---|---| -| **GUI / web app** | the rendered page | `haiku_view({ intent, mode: "boot" })` boots the app on an ephemeral port; drive it with the bundled **`haiku-playwright`** MCP (`browser_navigate`, `browser_click`, `browser_type`, `browser_snapshot`, `browser_evaluate`, `browser_take_screenshot`). For a static artifact (mockup, image, PDF), `haiku_view({ stage, artifact, mode: "viewer" })` renders it. | +| **GUI / web app** | the rendered page | `haiku_view({ intent, mode: "boot" })` boots the app on an ephemeral port and returns the URL; then drive it with a **self-contained Playwright script you write** (see "Drive the web app with a Playwright script" below) — it records **video** of the run plus step screenshots. For a static artifact (mockup, image, PDF), `haiku_view({ stage, artifact, mode: "viewer" })` renders it. | | **CLI / TUI** | the terminal | run the command with representative args; capture the pane and exit code | | **Server / API** | the socket | send the request; capture the response body and status | | **Library / SDK** | the package boundary | exercise the **public export** (`import pkg`, not `import ./src/internal`) and capture what it returns | | **Agent / prompt config** | the agent | run the agent; capture its behavior | | **No runtime surface** | — | docs-only, type declarations with no emit, config with no behavioral diff → **SKIP**, one line why | -**`haiku_view` is the web/GUI handle — never reach for a local `chromium`/`playwright-cli` install or hunt for `.claude/skills/run-*`.** Those are one harness's machinery; `haiku_view` + `haiku-playwright` is ours and it works on every harness. If `haiku_view` boot can't find a way to start the app, that's a project that needs a **boot recipe** (see below) — report it, don't paper over it by typing `npm start` yourself in a way no one can replay. +**`haiku_view` boot is the web/GUI handle — don't hunt for `.claude/skills/run-*` or hand-type `npm start` in a way no one can replay.** `haiku_view` boot works on every harness; it reads the project's boot recipe and returns a live URL. If `haiku_view` boot can't find a way to start the app, that's a project that needs a **boot recipe** (see below) — report it. What drives the booted URL is a Playwright script *you* write and run (next section) — it gives you video and full programmatic control. That driver is **self-provisioned and isolated**: you install Playwright into a scratch dir and never touch the project's own dependencies, so it works whether or not the project already uses Playwright. + +## Drive the web app with a Playwright script + +Once `haiku_view` boot hands you the URL, don't poke the page by hand — write a small Playwright script and run it. It records a **video** of the whole run (the proof a screenshot can't be) plus screenshots at each step, and it's deterministic and re-runnable. + +Provision it WITHOUT coupling to the project: + +- Work in a scratch dir under the stage's proof folder, e.g. `.haiku/intents//stages//proof/.driver/` (it's gitignored along with the rest of `proof/`). +- `npm init -y` there and `npm install @playwright/test` **in that dir only** — never add Playwright to the project's `package.json`/lockfile. Reuse the shared browser cache (`PLAYWRIGHT_BROWSERS_PATH`, default `~/.cache/ms-playwright`); run `npx playwright install chromium` once if the browser binary is missing. +- Point the script at the booted URL (pass it via an env var), and enable video in the context: `use: { video: 'on', viewport: … }` (or `browser.newContext({ recordVideo: { dir: '' } })`). Save step screenshots into the same `proof/` dir; Playwright drops the `.webm` there when the context closes. +- Drive the contract: the product-spec `.feature` scenarios this scope owns and the per-unit acceptance criteria — the same things your mandate names. Assert visible state, not DOM presence. + +If you genuinely can't install Playwright (locked-down network, no npm) and the bundled **`haiku-playwright`** MCP is available, fall back to it (`browser_navigate`, `browser_click`, `browser_type`, `browser_snapshot`, `browser_evaluate`, `browser_take_screenshot`) — you'll get screenshots but no video. Say in your finding that you fell back and why. **Your role mandate vs. this doctrine.** Your stage/role mandate may detail one surface in depth — usually the web/GUI path, because that's the common case. That detail is the *specialization*; this doctrine governs *which surface actually applies*. When they're the same (the change is a web app), they reinforce — follow the mandate's `haiku_view` steps. When the change's real surface is a CLI, a server endpoint, or a library export, the surface routing here wins: apply the mandate's *intent* (drive the real thing, capture proof, file findings on divergence) to that surface instead of forcing a browser that has nothing to render. @@ -45,9 +58,17 @@ Drive the smallest path that makes the changed code execute (changed a flag? run ## Capture evidence -Screenshots, response bodies, pane dumps, computed-style reads. Save them under `.haiku/intents//stages//proof/` with the `Write` tool so a human can audit the chain after the fact, and attach them to any feedback you file — the capture *is* the proof of what the user would have seen. Captured output is evidence; your memory isn't. +Video of the run, step screenshots, response bodies, pane dumps, computed-style reads. They land under `.haiku/intents//stages//proof/` (the Playwright script writes the `.webm` + screenshots there; for non-web surfaces, `Write` your captures there). The capture *is* the proof of what the user would have seen — your memory isn't. + +**Proof is gitignored — upload it to the PR so it survives.** The `proof/` dir is gitignored on purpose: video and screenshots are regenerated every run, and committing that binary churn bloats history forever. So the captures do NOT travel when a branch merges. To make them durable and reviewable, **upload them to the change request** for this scope (your dispatch tells you the target PR/MR URL when you have one): + +- **GitLab** has a first-class upload: `glab` (or `POST /projects/:id/uploads`) returns a markdown snippet — embed it in the MR description/note under a "Proof" section. +- **GitHub** has no inline-attachment API. Attach the video/screenshots as **release assets** (`gh release upload`, draft/tag release) or push them to an artifact bucket, then link them from the PR body's "Proof" section. (Inline image paste only works in the web UI, which you can't drive.) +- Keep it **idempotent**: re-running replaces the PR's "Proof" section rather than stacking duplicates. If you have no PR URL (no provider CLI / not a git repo), skip the upload — the captures still sit on disk and the SPA serves them live over the tunnel. + +Attach the same captures (or their uploaded links) to any feedback you file. -**Release the browser when you're done.** Call `browser_close` (the `haiku-playwright` MCP) to shut the Chrome instance — leaving it open strands a headless Chrome process after the review ends. Then close any `haiku_view` session with `haiku_view_close` so the dev server + tunnel slot release. Two distinct closes: `browser_close` kills the browser, `haiku_view_close` kills the booted app — do both. +**Tear down when you're done.** Stop your Playwright script's browser/context (the script should close them so the `.webm` finalizes) — leaving a context open strands a headless Chrome and the video never flushes. If you fell back to the `haiku-playwright` MCP, call `browser_close` instead. Then close the `haiku_view` session with `haiku_view_close` so the dev server + tunnel slot release. ## The verdict diff --git a/plugin/prompts/intent/review/intent_review/subagent.eta.md b/plugin/prompts/intent/review/intent_review/subagent.eta.md index b079e1770..967a772f7 100644 --- a/plugin/prompts/intent/review/intent_review/subagent.eta.md +++ b/plugin/prompts/intent/review/intent_review/subagent.eta.md @@ -5,14 +5,16 @@ You are the **<%= role %>** intent-completion review agent for intent **<%= slug <%~ mandateRef %> — the standard you audit the intent against. <% if (typeof doctrineRef !== "undefined" && doctrineRef) { %> <%~ doctrineRef %> - -## Write scope (evidence only) - -You DRIVE the live deliverable and CAPTURE what you see. You MAY write evidence captures (screenshots, response/pane dumps) under `.haiku/intents/<%= slug %>/**/proof/` — the doctrine says where. You MUST NOT edit source, specs, units, or any other project file. Findings go through `haiku_feedback` (intent scope — omit `stage`). -<% } else if (typeof prInteraction !== "undefined" && prInteraction) { %> -## Write scope (PR interaction) - -Your subject is the delivery PR on the remote, so you MAY interact with it through the VCS CLI (`gh` / `glab`): read check status, read review threads, **post replies, and resolve threads**. That is the ONLY mutation you may make. You MUST NOT edit source, specs, units, or any other project file in the repo — code changes are landed by the studio fix-hat loop, which your findings drive. Findings go through `haiku_feedback` (intent scope — omit `stage`). +<% } %> +<% if ((typeof doctrineRef !== "undefined" && doctrineRef) || (typeof prInteraction !== "undefined" && prInteraction)) { %> +## Write scope (evidence + delivery, NOT source) +<% if (typeof doctrineRef !== "undefined" && doctrineRef) { %> +- **Proof capture.** You DRIVE the live deliverable and CAPTURE what you see. You MAY write evidence captures (screenshots, video, response/pane dumps) under `.haiku/intents/<%= slug %>/**/proof/` — the doctrine says where. These are gitignored — they will NOT travel on a branch merge. +<% } %> +<% if (typeof prInteraction !== "undefined" && prInteraction) { %> +- **PR/MR interaction.** You MAY interact with the change request on the remote through the VCS CLI (`gh` / `glab`): read check status, read review threads, **post replies, and resolve threads**.<% if (typeof proofTargetPrUrl !== "undefined" && proofTargetPrUrl) { %> Because your proof is gitignored, **upload your captures to the PR/MR so they're durable and reviewable**: the target is `<%= proofTargetPrUrl %>`. Re-uploading replaces the prior proof section (idempotent). Follow the upload doctrine in the runtime-verification block above.<% } %> +<% } %> +- You MUST NOT edit source, specs, units, or any other project file in the repo — code changes are landed by the studio fix-hat loop, which your findings drive. Findings go through `haiku_feedback` (intent scope — omit `stage`). <% } else { %> ## Write scope (STRICT) diff --git a/plugin/prompts/stage/approve/dispatch_approval/subagent.eta.md b/plugin/prompts/stage/approve/dispatch_approval/subagent.eta.md index 9eafdc561..24039a9f1 100644 --- a/plugin/prompts/stage/approve/dispatch_approval/subagent.eta.md +++ b/plugin/prompts/stage/approve/dispatch_approval/subagent.eta.md @@ -8,6 +8,16 @@ <% if (doctrineRef) { %> <%~ doctrineRef %> <% } %> +<% if (doctrineRef || (typeof prInteraction !== "undefined" && prInteraction)) { %> +## Write scope (evidence + delivery, NOT source) +<% if (doctrineRef) { %> +- **Proof capture.** You MAY write evidence captures (screenshots, video, response/pane dumps) under `.haiku/intents/<%= slug %>/stages/<%= stage %>/proof/` — the doctrine says where. These are gitignored — they will NOT travel on a branch merge. +<% } %> +<% if (typeof prInteraction !== "undefined" && prInteraction) { %> +- **PR/MR interaction.** You MAY interact with the change request on the remote via the VCS CLI (`gh` / `glab`).<% if (typeof proofTargetPrUrl !== "undefined" && proofTargetPrUrl) { %> Because your proof is gitignored, **upload your captures to the PR/MR so they're durable and reviewable** — the target for this stage is `<%= proofTargetPrUrl %>`. Re-uploading replaces the prior proof section (idempotent). Follow the upload doctrine in the runtime-verification block above.<% } %> +<% } %> +- You MUST NOT edit source, specs, or units — code changes flow through `haiku_feedback` and the fix-hat loop. +<% } %> ## Units to approve Read each unit's spec live via `haiku_unit_read` (returns body + title, engine frontmatter stripped) to recall what it promised to produce: diff --git a/plugin/providers/git.md b/plugin/providers/git.md index 049b2de62..d5565894a 100644 --- a/plugin/providers/git.md +++ b/plugin/providers/git.md @@ -31,6 +31,17 @@ H·AI·K·U is always git-backed when a `.git/` directory is present. This contr When git creates a draft PR at intent-create time, the PR URL is stamped on `intent.md` frontmatter as `external_refs.git_pr` and `draft_pr_status`. The draft flips `ready` automatically at intent completion. You don't write these fields manually — the engine does — but you can read them to surface PR state to the user. +In **discrete / discrete-hybrid** mode the engine also opens a per-stage draft PR at stage start (base = `haiku//main`) and records it in the `stage_prs` map on `intent.md` FM; the stage gate flips that draft to ready (merging it is the approval). That stage PR is where the stage's runtime-verification proof gets uploaded. Continuous / autopilot / quick keep everything on the single intent-main draft PR. + +## Proof asset uploads (runtime-verification evidence) + +Runtime-verification proof (screenshots, video) is **gitignored** — it's regenerated every run and committing it bloats history. It does not travel on a branch merge, so a runtime-verifier uploads it to the relevant PR/MR to make it durable and reviewable. The two hosts differ: + +- **GitLab** — first-class: `glab` / `POST /projects/:id/uploads` returns a markdown snippet to embed in the MR description or a note. Access-controlled by project visibility. +- **GitHub** — no inline-attachment API. Attach captures as **release assets** (`gh release upload`) or push to an artifact bucket, then link them from the PR body. (Inline image paste is web-UI-only; a bot can't drive it. Note: GitHub's `user-attachments` CDN URLs are anonymized — anyone with the link can view, even for a private repo.) + +Keep uploads idempotent — replace the PR's "Proof" section on re-run rather than stacking duplicates. + ## Non-git environments When `.git/` is absent the framework falls back to filesystem persistence: diff --git a/plugin/studios/ARCHITECTURE.md b/plugin/studios/ARCHITECTURE.md index b8019cce7..47fbc2e11 100644 --- a/plugin/studios/ARCHITECTURE.md +++ b/plugin/studios/ARCHITECTURE.md @@ -108,6 +108,8 @@ Every stage moves through the same conceptual lifecycle. In v4 these aren't stor | **approve / gate** | Reviews signed, but approval-role slots unsigned → cursor emits `dispatch_approval`, `dispatch_quality_gates`, or `user_gate` | Engine-built quality_gates + configured agents + the human (mode-shaped) | | **merge** | Every approval signed → cursor emits `complete_stage` | Engine merges the stage branch into intent main | +**Per-stage delivery PR (discrete / discrete-hybrid).** Independent of the cursor's filesystem-driven walk (Rule 1 — the cursor reads no git topology): the git layer opens a **draft** PR for the stage at stage start (`workflowStartStage` → `openStageDraftPullRequest`, branch `haiku//` → base `haiku//main`), recorded in the `stage_prs` map on intent.md FM. It is where the stage's runtime-verification proof (gitignored locally) gets uploaded, and the stage gate flips it draft→ready (`haiku_await_gate` external-review path → `markPullRequestReady`) rather than opening a second PR; merging it is the approval signal. continuous / autopilot / quick open no per-stage PR — they keep the single intent-main draft PR (opened at `intent_create`) and proof uploads there. This is a delivery-shape detail under the git/handler layer, not a phase the cursor derives. + **The elaborate / decompose split (2026-05-08).** Pre-2026-05-08, "elaborate" meant the whole pre-execute phase: read context, dispatch discovery subagents, write unit specs. The same prompt did all three. This made the human-in-the-loop conversation an implicit instruction inside a heavy autonomous prompt — and agents skipped it. The split makes engagement load-bearing. `elaborate` is the conversation gate, gated on a real artifact (`stages//elaboration.md`) with a verifier seal (`verified_at` stamped by a substance-check subagent). The cursor refuses to advance to `decompose` until both conditions hold. Autopilot mode bypasses the gate entirely; every other mode (continuous, discrete, discrete-hybrid) enforces. diff --git a/plugin/studios/documentation/intent-review-agents/runtime-verifier.md b/plugin/studios/documentation/intent-review-agents/runtime-verifier.md index 0675d37a4..856511e4c 100644 --- a/plugin/studios/documentation/intent-review-agents/runtime-verifier.md +++ b/plugin/studios/documentation/intent-review-agents/runtime-verifier.md @@ -7,7 +7,7 @@ interpretation: lens ## Check -Prefer `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. +Prefer `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. Drive the published surface from your Playwright script (per the runtime-verification doctrine — records video + screenshots) and screenshot every meaningful step into `.haiku/intents//proof/` (e.g. `-.png`). That `proof/` dir is gitignored — upload the captures to the intent's delivery PR per the doctrine. The agent **MUST** verify each of the following: diff --git a/plugin/studios/documentation/stages/draft/review-agents/runtime-verifier.md b/plugin/studios/documentation/stages/draft/review-agents/runtime-verifier.md index 1004ed23d..438c968b1 100644 --- a/plugin/studios/documentation/stages/draft/review-agents/runtime-verifier.md +++ b/plugin/studios/documentation/stages/draft/review-agents/runtime-verifier.md @@ -7,7 +7,7 @@ interpretation: lens ## Check -Open a view session via `haiku_view({ stage: "draft" })`. When the project includes a docs site (Astro / Hugo / Docusaurus / Next.js etc.) with a `dev` script in package.json, `auto` mode boots it; navigate to each drafted page. Otherwise viewer mode renders each markdown file through the SPA's artifact browser. Call `browser_take_screenshot` for every page and assertion. **Save each screenshot** to disk under `.haiku/intents//stages/draft/proof/-.png` using the `Write` tool. +Open a view session via `haiku_view({ stage: "draft" })`. When the project includes a docs site (Astro / Hugo / Docusaurus / Next.js etc.) with a `dev` script in package.json, `auto` mode boots it; navigate to each drafted page. Otherwise viewer mode renders each markdown file through the SPA's artifact browser. Drive the page from your Playwright script (per the runtime-verification doctrine — records video + screenshots) and screenshot every page and assertion into `.haiku/intents//stages/draft/proof/` (e.g. `-.png`). That `proof/` dir is gitignored — upload the captures to this stage's PR per the doctrine. The agent **MUST** verify each of the following: diff --git a/plugin/studios/gamedev/stages/prototype/review-agents/runtime-verifier.md b/plugin/studios/gamedev/stages/prototype/review-agents/runtime-verifier.md index 17fee9831..3bfc441fe 100644 --- a/plugin/studios/gamedev/stages/prototype/review-agents/runtime-verifier.md +++ b/plugin/studios/gamedev/stages/prototype/review-agents/runtime-verifier.md @@ -7,7 +7,7 @@ interpretation: lens ## Check -Open a view session via `haiku_view({ stage: "prototype", mode: "boot" })` when the prototype has a web build / dev server. Use the bundled `haiku-playwright` MCP to drive the build. For non-web prototypes, viewer mode renders captured gameplay clips, frame-by-frame screenshots, or design artifacts. Call `browser_take_screenshot` at every meaningful moment in the gameplay loop. **Save each screenshot** to disk under `.haiku/intents//stages/prototype/proof/-.png` using the `Write` tool. +Open a view session via `haiku_view({ stage: "prototype", mode: "boot" })` when the prototype has a web build / dev server, then drive the build from your Playwright script (per the runtime-verification doctrine — it records video of the gameplay loop plus frame screenshots). For non-web prototypes, viewer mode renders captured gameplay clips, frame-by-frame screenshots, or design artifacts. Screenshot every meaningful moment in the gameplay loop into `.haiku/intents//stages/prototype/proof/` (e.g. `-.png`). That `proof/` dir is gitignored — upload the captures (the gameplay video especially) to this stage's PR per the doctrine. The agent **MUST** verify each of the following: @@ -15,7 +15,7 @@ The agent **MUST** verify each of the following: - **The core gameplay loop is playable end to end.** Drive the loop the prototype was built to validate (typically a ~60s slice of moment-to-moment play: pick up the controls, encounter the core challenge, apply the core mechanic, see the core feedback, win or lose state). Every input the design doc promised actually does what it promised. A jump that the doc says triggers on key-down but only fires on key-up is a finding. - **Visual feedback is present at every interaction beat.** When the player acts, the game responds visibly — particle effects, screen shake, animation transitions, sound triggers (when audio is in scope). A core mechanic that silently succeeds with no perceptible feedback is a finding even when the underlying state changes correctly. - **Hit-boxes match visuals.** For interactive entities, the click / collision region matches the rendered sprite (or the design doc's declared tolerance). A 64px sprite with a 16px hit-box at the center is a finding when the design says hit-boxes should match the visual. -- **Performance hits the prototype's frame-rate target.** Sample frame timing via `browser_evaluate` or the build's debug overlay. Frame drops below the declared target during the core loop are findings even when the gameplay logic is correct. +- **Performance hits the prototype's frame-rate target.** Sample frame timing in your script (via the page's perf API) or read the build's debug overlay. Frame drops below the declared target during the core loop are findings even when the gameplay logic is correct. - **Per-unit claims hold.** Read every prototype unit body. Each unit's claimed deliverable — a specific mechanic, a particular enemy type, a named level slice — MUST be playable and visible in the booted build. - **Concept-art parity — the build looks like what was concepted.** For each mechanic / level / character / UI element this unit owns: 1. **Locate the reference.** Walk `stages/concept/artifacts/` for art / sketches / mood boards / mechanic diagrams whose name corresponds to this unit's slug or capability. Read `stages/concept/artifacts/CONCEPT-DOC.md` (or the equivalent the studio used) so you know the color palette, silhouettes, art direction, and named beats the prototype is supposed to honor. diff --git a/plugin/studios/hwdev/intent-review-agents/runtime-verifier.md b/plugin/studios/hwdev/intent-review-agents/runtime-verifier.md index be12461d6..32a0ebdb3 100644 --- a/plugin/studios/hwdev/intent-review-agents/runtime-verifier.md +++ b/plugin/studios/hwdev/intent-review-agents/runtime-verifier.md @@ -7,7 +7,7 @@ interpretation: lens ## Check -Open 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. +Open a view session via `haiku_view({ intent: "" })` and navigate to each artifact through the SPA's artifact browser from your Playwright script (per the runtime-verification doctrine — records video + screenshots). Screenshot every meaningful step into `.haiku/intents//proof/` (e.g. `-.png`). That `proof/` dir is gitignored — upload the captures to the intent's delivery PR per the doctrine so a human reviewer can scroll them when verifying a merged intent. The agent **MUST** verify each of the following: diff --git a/plugin/studios/hwdev/stages/design/review-agents/runtime-verifier.md b/plugin/studios/hwdev/stages/design/review-agents/runtime-verifier.md index 576f8bea7..5bd99e19e 100644 --- a/plugin/studios/hwdev/stages/design/review-agents/runtime-verifier.md +++ b/plugin/studios/hwdev/stages/design/review-agents/runtime-verifier.md @@ -7,7 +7,7 @@ interpretation: lens ## Check -Open a view session via `haiku_view({ stage: "design" })` and use the bundled `haiku-playwright` MCP to navigate to each design artifact through the SPA's artifact-browser route. The SPA dispatches `.kicad_sch` / `.kicad_pcb` to KiCanvas, `.gbr` / `.drl` to Tracespace, `.glb` / `.gltf` to ``, and `.tsx` circuit code to tscircuit's renderer. Call `browser_take_screenshot` for each artifact you assert on. **Save each screenshot** to disk under `.haiku/intents//stages/design/proof/-.png` using the `Write` tool. Attach screenshots to every finding. +Open a view session via `haiku_view({ stage: "design" })` and navigate to each design artifact through the SPA's artifact-browser route from your Playwright script (per the runtime-verification doctrine — records video + screenshots). The SPA dispatches `.kicad_sch` / `.kicad_pcb` to KiCanvas, `.gbr` / `.drl` to Tracespace, `.glb` / `.gltf` to ``, and `.tsx` circuit code to tscircuit's renderer. Screenshot each artifact you assert on into `.haiku/intents//stages/design/proof/` (e.g. `-.png`). That `proof/` dir is gitignored — upload the captures to this stage's PR per the doctrine, and attach them (or their links) to every finding. The agent **MUST** verify each of the following against the rendered output: diff --git a/plugin/studios/marketing/stages/content/review-agents/runtime-verifier.md b/plugin/studios/marketing/stages/content/review-agents/runtime-verifier.md index 19f7a3bfe..04f772911 100644 --- a/plugin/studios/marketing/stages/content/review-agents/runtime-verifier.md +++ b/plugin/studios/marketing/stages/content/review-agents/runtime-verifier.md @@ -7,13 +7,13 @@ interpretation: lens ## Check -Open a view session via `haiku_view({ stage: "content" })`. Boot mode when the project ships a runnable preview (Next.js / Astro / static-site dev server); viewer mode for standalone HTML / Markdown / image assets. Call `browser_take_screenshot` for every page at every declared breakpoint. **Save each screenshot** to disk under `.haiku/intents//stages/content/proof/-.png` using the `Write` tool. +Open a view session via `haiku_view({ stage: "content" })`. Boot mode when the project ships a runnable preview (Next.js / Astro / static-site dev server); viewer mode for standalone HTML / Markdown / image assets. Drive the page from your Playwright script (per the runtime-verification doctrine — records video + screenshots) and screenshot every page at every declared breakpoint into `.haiku/intents//stages/content/proof/` (e.g. `-.png`). That `proof/` dir is gitignored — upload the captures to this stage's PR per the doctrine. The agent **MUST** verify each of the following: -- **Every page renders at every declared breakpoint.** Resize via `browser_resize` to mobile, tablet, desktop (or whatever breakpoints the brand guide names). Layout breaks, overflowing text, images that crop the subject, hero CTAs hidden below the fold on mobile — all findings. -- **Every CTA goes somewhere real.** Click each call-to-action via `browser_click`. The destination must be a live URL — not a 404, not a redirect to the homepage, not a stale staging URL. Forms that submit MUST land on a thank-you page or show a visible success state. -- **Tracking pixels / analytics fire.** Use `browser_network_requests` (or equivalent) to confirm the page's declared tracking endpoints actually receive requests at the right moments — page-load, CTA click, form submit. A campaign that ships without tracking is silently un-attributable. +- **Every page renders at every declared breakpoint.** Resize the browser in your script to mobile, tablet, desktop (or whatever breakpoints the brand guide names). Layout breaks, overflowing text, images that crop the subject, hero CTAs hidden below the fold on mobile — all findings. +- **Every CTA goes somewhere real.** Click each call-to-action in your script. The destination must be a live URL — not a 404, not a redirect to the homepage, not a stale staging URL. Forms that submit MUST land on a thank-you page or show a visible success state. +- **Tracking pixels / analytics fire.** Capture network requests in your script to confirm the page's declared tracking endpoints actually receive requests at the right moments — page-load, CTA click, form submit. A campaign that ships without tracking is silently un-attributable. - **Brand-token compliance in the rendered output.** Colors, typography, logo treatment, image styling all match the brand system the strategy stage declared. Off-brand color slipping in via a default style is a finding even when the source file looks correct. - **Accessibility minimums.** Alt text on hero images, contrast ratios on text-on-photo overlays, keyboard navigability of CTAs, focus indicators on interactive elements. A campaign that fails AA contrast is a campaign that excludes a measurable audience segment. - **Per-unit claims hold.** Read every content unit body. Each unit's claimed deliverable — a particular page, a specific copy block, a named asset — MUST be visible in the rendered output. diff --git a/plugin/studios/software/intent-review-agents/runtime-verifier.md b/plugin/studios/software/intent-review-agents/runtime-verifier.md index 045ba8726..06ea8a566 100644 --- a/plugin/studios/software/intent-review-agents/runtime-verifier.md +++ b/plugin/studios/software/intent-review-agents/runtime-verifier.md @@ -3,7 +3,7 @@ interpretation: lens --- **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. -**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. +**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, drive them through the Playwright script you write (per the runtime-verification doctrine — it records video + screenshots), assert against them. **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. @@ -11,12 +11,12 @@ interpretation: lens The agent **MUST** verify each of the following: -- **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. -- **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. +- **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. Navigate to the returned URL from your Playwright script (per the doctrine — self-installed, records video). +- **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 in your Playwright script exactly as the user would — `Given` sets the precondition, `When` performs the action (click / fill / select), `Then` asserts the *visible* state (read it off the live DOM), not just DOM presence. 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. - **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. -- **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. +- **Capture proof + upload it to the PR.** Your Playwright script records video of the run and a screenshot at every meaningful step (page-loaded, post-precondition, post-action, final-assertion) into `.haiku/intents//proof/` (e.g. `-.png`, `.webm`). That `proof/` dir is gitignored — upload the captures to the intent's delivery PR per the doctrine so a human verifier reviewing the merged intent can walk the journey without re-running. Attach the same captures (or their links) to any feedback you file; a finding without one is unactionable. - **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." -- **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). +- **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 in your script 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). - **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. - **Close the session.** Call `haiku_view_close({ session_id })` after all checks complete. diff --git a/plugin/studios/software/stages/design/review-agents/runtime-verifier.md b/plugin/studios/software/stages/design/review-agents/runtime-verifier.md index a2a88febf..b6322863b 100644 --- a/plugin/studios/software/stages/design/review-agents/runtime-verifier.md +++ b/plugin/studios/software/stages/design/review-agents/runtime-verifier.md @@ -7,7 +7,7 @@ interpretation: lens ## Check -Open a view session via `haiku_view({ stage: "design" })` and use the bundled `haiku-playwright` MCP to navigate to each design artifact. Call `browser_take_screenshot` for every artifact you assert on. **Save each screenshot** to disk under `.haiku/intents//stages/design/proof/-.png` using the `Write` tool (PNG is the format `playwright` produces; keep it). The `proof/` directory becomes the durable record a human verifier can scroll later. Attach the same screenshots to every finding — a visual finding without a screenshot is unactionable. +Open a view session via `haiku_view({ stage: "design" })` and navigate to each design artifact from your Playwright script (per the runtime-verification doctrine — self-installed, records video + screenshots). Screenshot every artifact you assert on into `.haiku/intents//stages/design/proof/` (e.g. `-.png`). That `proof/` dir is gitignored — upload the captures to this stage's PR per the doctrine so a human verifier can scroll them later, and attach them (or their links) to every finding — a visual finding without a capture is unactionable. Also verify per-unit claims: read every design unit body (`stages/design/units/.md`) — every wireframe the unit references, every component-state the unit promised, every layout the unit said it would deliver. Each is part of the contract for THIS stage even when it doesn't appear in a downstream `.feature` file. A unit that claims to ship the "empty state" but whose artifact only renders the populated state is a finding. @@ -16,10 +16,10 @@ The agent **MUST** verify each of the following against the rendered output: - **Spacing and alignment.** Margins, padding, gutters, and gaps match the values declared in `DESIGN-TOKENS.md` / `DESIGN-SYSTEM-ANCHOR.md`. Components that touch (no breathing room) when the spec says they shouldn't, components that drift out of their column grid, baseline mismatches between adjacent text blocks — all findings. Measure visually from the screenshot; do not trust the file claims alone. - **Font sizes and hierarchy.** Every text element renders at one of the declared type-scale steps (no off-scale values), and the hierarchy in the rendered artifact matches what the brief called for — H1 visibly larger than H2, body text legible at intended viewport, captions distinct from body. A heading that visually disappears into the body text is a hierarchy failure even if the file uses the "correct" token. - **Color usage.** Colors used in the rendered artifact match `DESIGN-TOKENS.md` exactly — no off-palette hexes, no near-misses where a token exists but a sibling was used. Background/foreground pairs hit the contrast threshold the brief declared (typically WCAG AA: 4.5:1 for body text, 3:1 for large text and UI components). -- **Accessibility — contrast.** Every text+background pair in the rendered artifact meets the contrast threshold the brief declared (WCAG AA minimum unless the brief says otherwise). Use `browser_evaluate` to extract computed text/background colors when ambiguous, then assert the ratio. Low-contrast placeholder text, disabled-state text that fails AA, hover-state-only color cues without a non-color signal — all findings. +- **Accessibility — contrast.** Every text+background pair in the rendered artifact meets the contrast threshold the brief declared (WCAG AA minimum unless the brief says otherwise). Read computed text/background colors off the live DOM in your script when ambiguous, then assert the ratio. Low-contrast placeholder text, disabled-state text that fails AA, hover-state-only color cues without a non-color signal — all findings. - **Accessibility — semantics in the rendered HTML output.** When the design artifact is HTML (a rendered mockup, a Storybook entry, a coded prototype), assert: every interactive element has an accessible name (label, aria-label, or visible text), heading order is sequential without skips, form inputs are associated with labels, focusable order matches visual order, focus indicators are visible at the brief's required threshold. - **Touch / click target sizes.** Interactive targets in the rendered artifact meet the minimum size the brief declared (typically ≥ 44×44 px on touch, ≥ 24×24 px on mouse). A button that visually appears tappable but fails the target-size threshold is a finding even when the design file lists the token. -- **Responsive behavior at declared breakpoints.** Resize the browser to each breakpoint the brief named (typically mobile / tablet / desktop) via `browser_resize` and screenshot at each one. Layout breaks, overflowing text, components that collide or stack incorrectly, hidden-when-it-shouldn't-be content — all findings. +- **Responsive behavior at declared breakpoints.** Resize the browser to each breakpoint the brief named (typically mobile / tablet / desktop) in your script and screenshot at each one. Layout breaks, overflowing text, components that collide or stack incorrectly, hidden-when-it-shouldn't-be content — all findings. - **State coverage.** For every component the brief lists multiple states for (hover, focus, active, disabled, error, loading, empty), the rendered artifact actually shows that state when you trigger it (or the artifact is a sheet that shows all states side by side). A state listed in the brief but absent from the rendered mockup is a finding. - **Close the session.** Call `haiku_view_close({ session_id })` after all checks complete. diff --git a/plugin/studios/software/stages/development/review-agents/runtime-verifier.md b/plugin/studios/software/stages/development/review-agents/runtime-verifier.md index 702c08d98..acab21b81 100644 --- a/plugin/studios/software/stages/development/review-agents/runtime-verifier.md +++ b/plugin/studios/software/stages/development/review-agents/runtime-verifier.md @@ -3,7 +3,7 @@ interpretation: lens --- **Surface first.** The runtime-verification doctrine referenced in your dispatch governs which surface this change actually has. The steps below are the **web/GUI path** — the common case for this studio. If the unit you're verifying builds a CLI, a server/API with no UI, or a library, follow the doctrine's handle for that surface (run the command and capture the pane; hit the socket and capture the response; exercise the public export) and apply this mandate's *intent* — drive the real thing, capture proof, file findings on divergence — rather than booting a browser with nothing to render. -**Mandate:** The agent **MUST** be the user's eyes and hands for this stage — drive the developed app through the browser the way a real user would, see what the user would see, and assert the user-facing flows from the product stage's behavioral spec pass against a live instance. Static-analysis quality gates (typecheck, unit tests, lint) only prove the code compiles and tests its own assertions — they cannot catch broken integrations, missing render paths, dead routes, or components that compile but never mount. The product stage's intent-level `.feature` files (`stages/product/artifacts/*.feature`, or wherever the studio's product-stage configured them) are the executable test contract — consume the scenarios this stage's units own, drive them through `playwright`, screenshot the result, file feedback when the live app diverges from what the `.feature` promised. +**Mandate:** The agent **MUST** be the user's eyes and hands for this stage — drive the developed app through the browser the way a real user would, see what the user would see, and assert the user-facing flows from the product stage's behavioral spec pass against a live instance. Static-analysis quality gates (typecheck, unit tests, lint) only prove the code compiles and tests its own assertions — they cannot catch broken integrations, missing render paths, dead routes, or components that compile but never mount. The product stage's intent-level `.feature` files (`stages/product/artifacts/*.feature`, or wherever the studio's product-stage configured them) are the executable test contract — consume the scenarios this stage's units own, drive them through the Playwright script you write (per the runtime-verification doctrine — it records video of the run plus step screenshots into `proof/`), file feedback when the live app diverges from what the `.feature` promised. **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, no target is found, 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 work 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. @@ -11,24 +11,24 @@ interpretation: lens The agent **MUST** verify each of the following: -- **The app boots.** Open a view session via `haiku_view({ stage: "development" })` — the tool auto-detects the project's `dev` / `start` script and spawns it on an ephemeral port, returning a `http://127.0.0.1:/` URL pointing at the live app. (Pass `mode: "boot"` to force boot mode and hard-fail with a clear error when no script is detected, vs the default `auto` which falls back to viewer mode.) Use the bundled `haiku-playwright` MCP to `browser_navigate` to the returned URL. If the dev server fails to bind, the page fails to load, or the response is 4xx/5xx, open feedback with the failing URL and the captured screenshot. +- **The app boots.** Open a view session via `haiku_view({ stage: "development" })` — the tool auto-detects the project's `dev` / `start` script and spawns it on an ephemeral port, returning a `http://127.0.0.1:/` URL pointing at the live app. (Pass `mode: "boot"` to force boot mode and hard-fail with a clear error when no script is detected, vs the default `auto` which falls back to viewer mode.) Navigate to the returned URL from your Playwright script (per the doctrine — self-installed, records video). If the dev server fails to bind, the page fails to load, or the response is 4xx/5xx, open feedback with the failing URL and the captured screenshot. - **Primary user flows pass — at both the product-spec level AND the per-unit level.** Verify TWO scopes: - 1. **Product-spec scope.** For each `Scenario:` (and each `Scenario Outline:` example row) in the product stage's intent-level `.feature` files that this development unit owns: drive the Gherkin steps via `playwright` exactly as a 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`. + 1. **Product-spec scope.** For each `Scenario:` (and each `Scenario Outline:` example row) in the product stage's intent-level `.feature` files that this development unit owns: drive the Gherkin steps in your Playwright script exactly as a user would — `Given` sets the precondition, `When` performs the action (click / fill / select), `Then` asserts the *visible* state (read it off the live DOM), not just DOM presence. 2. **Per-unit scope.** Read THIS unit's body (`stages/development/units/.md`). Every acceptance-criterion line, every "behavior" / "completion criteria" assertion, every named selector or asserted-state the unit declares is part of the contract. Drive the live app to exercise each one and assert it holds. The product spec is the user-facing contract; the unit body is the build-time contract — both have to hold, and runtime-verifier is the only lens that catches divergence between "the unit ticked all its boxes in tests" and "the unit's claims are true in the live app." - Call `browser_take_screenshot` at every meaningful step (page-loaded, post-action, final-assertion). **Save each screenshot** to disk under `.haiku/intents//stages/development/proof/-.png` using the `Write` tool (PNG is the format `playwright` produces; keep it). Attach the same screenshots to any feedback you file — the screenshots ARE the proof of what the user would have seen, AND they live on disk so a human verifier can audit the chain after the fact. A scenario or unit-claim that the spec says should succeed but errors, redirects unexpectedly, or shows wrong content is the headline finding. + Your script records video of the run and a screenshot at every meaningful step (page-loaded, post-action, final-assertion), all under `.haiku/intents//stages/development/proof/` (e.g. `-.png`, `.webm`). That `proof/` dir is gitignored — upload the captures to this stage's PR per the doctrine so they're durable, and attach them (or their links) to any feedback you file. A scenario or unit-claim that the spec says should succeed but errors, redirects unexpectedly, or shows wrong content is the headline finding. - **Design parity — the built page matches the design.** The development stage's contract is to implement what the design stage produced, not to reinvent it. For each user-facing screen this unit owns: 1. **Locate the reference design.** Look at the unit's `inputs:` for any path under `stages/design/artifacts/`, AND walk `stages/design/artifacts/` for files whose name corresponds to this unit's slug or capability (e.g. unit `unit-02-team-dashboard` matches `02-dashboard.html` / `02-dashboard.png` / `02-dashboard-spec.md`). Read the matching design artifact AND `.haiku/knowledge/DESIGN-TOKENS.md` / `.haiku/knowledge/DESIGN-SYSTEM-ANCHOR.md` so you know which tokens / atoms / molecules the design declared. 2. **Render the design artifact.** For HTML mockups, open them via `haiku_view({ stage: "design", artifact: "", mode: "viewer" })` so the SPA's artifact-browser serves them. For images / PDFs, the same URL renders them inline. Screenshot the reference at each breakpoint the design declared — these are the SAME breakpoints you'll capture the build at, so the pair lines up. 3. **Drive the live build to the equivalent screen.** Navigate the dev-server URL to the route this unit owns. Resize to each breakpoint the design declared. Screenshot at each step. 4. **Save a matched pair, then compare visually AND by token.** Save the reference and the build as an explicitly-named matched pair captured at the SAME viewport: `proof/-design-parity---design.png` and `proof/-design-parity---build.png`. Then run BOTH passes — both must hold: - **Visual pass (perceptual).** Re-open BOTH images with the `Read` tool and look at them as a pair — do not rely on having glimpsed them once during capture. Judge what the computed-token check cannot: overall composition and visual hierarchy, imagery / iconography / illustration correctness, visual weight and balance, spacing rhythm, type rendering, and anything that simply "looks off" against the design even when the numbers match. Then look at the build image against the scenario / unit acceptance criteria and confirm what is ON SCREEN actually satisfies what the AC describes — not merely that the DOM contains the right nodes. - - **Token pass (exact).** The built result MUST honor: every component present in the design (no missing pieces, no extras the design didn't call for), the design tokens declared in `DESIGN-TOKENS.md` (use `browser_evaluate` to read computed colors / spacing / font-sizes off the live DOM and compare to the token values — exact hex/rem/px match, no near-misses), the layout hierarchy (same nesting of regions, same order of sections at each breakpoint), every state the design declared (hover / focus / active / disabled / error / loading / empty — trigger each in the live build and assert it matches the design's depiction). + - **Token pass (exact).** The built result MUST honor: every component present in the design (no missing pieces, no extras the design didn't call for), the design tokens declared in `DESIGN-TOKENS.md` (read computed colors / spacing / font-sizes off the live DOM in your script and compare to the token values — exact hex/rem/px match, no near-misses), the layout hierarchy (same nesting of regions, same order of sections at each breakpoint), every state the design declared (hover / focus / active / disabled / error / loading / empty — trigger each in the live build and assert it matches the design's depiction). The perceptual diff catches what tokens miss; the token diff catches what the eye rounds off. A human auditor can re-open the matched pair from `proof/` and see the same comparison without re-running. 5. **File the finding when they diverge.** Color drift, missing component, off-scale typography, wrong spacing, missing state — every divergence is a finding. The design is the contract; the built result either matches or doesn't. "Looks close enough" is not the bar — declared tokens and declared components either render exactly or they don't. -- **No console errors during the happy path.** After each scenario, check `browser_console_messages` for `error`-level entries. A passing scenario that logs a runtime error to the console (uncaught exception, React render warning, network failure) is a finding — the user-facing outcome may look right but the integration is broken underneath. -- **Declared selectors resolve.** Any selectors the unit body called out by name (test IDs, accessibility roles, ARIA labels) MUST be present in the rendered DOM. A unit that claims `data-testid="submit-button"` exists where the spec says one should is a finding when `playwright` cannot find it. +- **No console errors during the happy path.** After each scenario, check the browser console (capture it in your script) for `error`-level entries. A passing scenario that logs a runtime error to the console (uncaught exception, React render warning, network failure) is a finding — the user-facing outcome may look right but the integration is broken underneath. +- **Declared selectors resolve.** Any selectors the unit body called out by name (test IDs, accessibility roles, ARIA labels) MUST be present in the rendered DOM. A unit that claims `data-testid="submit-button"` exists where the spec says one should is a finding when your script cannot find it in the rendered DOM. - **Close the session.** After all checks complete, call `haiku_view_close({ session_id })` so the tunnel slot releases promptly instead of waiting for the standard TTL eviction. ## Common failure modes to look for diff --git a/website/app/studios/[slug]/architecture/_data/actors.ts b/website/app/studios/[slug]/architecture/_data/actors.ts index ce28af245..7187ddc3b 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. 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.", + "**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; a DRAFT stage PR is opened at stage START (`workflowStartStage` → `openStageDraftPullRequest`, branch `haiku//` → base `haiku//main`, stamped in the `stage_prs` map) so proof + work land on it, and the `user` gate flips it draft→ready (`markPullRequestReady`, NOT a second PR) — merge into intent main is the approval signal.\n• `discrete-hybrid` — discrete up to a chosen pivot stage, then continuous; per-stage gate type drives the dispatch choice. Per-stage draft PRs open the same way as discrete.\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` for the boot URL, then drive it with a SELF-INSTALLED Playwright script (own scratch dir, never the project's deps; the Playwright MCP is the fallback) that RECORDS VIDEO + step screenshots into `.haiku/intents//[stages//]proof/`. That `proof/` tree is GITIGNORED (regenerated binary churn — `ensureHaikuGitignored` seeds the globs). `runtime-verifier` is now in BOTH `RUNTIME_OBSERVATION_ROLES` and `PR_INTERACTION_ROLES`, so it uploads the captures to the relevant PR/MR (mode-aware target the dispatch builder injects: discrete/discrete-hybrid → the stage's `stage_prs[stage].url`, else the intent-main `draft_pr_url`; GitLab uploads API / GitHub release-asset) where humans audit the chain. `ViewSession` lives in `sessions.ts`; the file-serve route accepts view sessions through the same `/stage-artifacts/:sessionId/*` path-safety chain reviews use, so proof renders live off disk even though it's gitignored.\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 96f4c213f..f64b1454b 100644 --- a/website/app/studios/[slug]/architecture/_data/payload-for.ts +++ b/website/app/studios/[slug]/architecture/_data/payload-for.ts @@ -569,7 +569,7 @@ export function payloadFor( ], instructions: isAutopilot ? "Autopilot: cursor returns `complete_stage` directly. The engine merges the stage branch into intent main under `withIntentMainLock`." - : 'Cursor returns `user_gate { gate_kind: "approval" }`. `haiku_run_next` opens the SPA review session inline and blocks on `haiku_await_gate`. On approve, the cursor advances to `complete_stage`. On request_changes, engine writes feedback and Track B walks the fix loop. **In `discrete` mode, the user gate dispatches differently — the engine opens a real PR/MR for the stage branch and the merge into intent main IS the approval signal.**', + : 'Cursor returns `user_gate { gate_kind: "approval" }`. `haiku_run_next` opens the SPA review session inline and blocks on `haiku_await_gate`. On approve, the cursor advances to `complete_stage`. On request_changes, engine writes feedback and Track B walks the fix loop. **In `discrete` / `discrete-hybrid` mode, the user gate dispatches differently — a DRAFT stage PR was already opened at stage start (`stage_prs` map; base `haiku//main`) and the gate FLIPS it draft→ready via `markPullRequestReady` (not a second PR); the merge into intent main IS the approval signal. That stage PR is also where the stage runtime-verifier uploaded its (gitignored) proof.**', }, "gate-to-next-stage": { injection: [ From 210737c66af3a6eca6a6df1586aefaaf373ec2f9 Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 13:15:23 -0600 Subject: [PATCH 2/3] feat(discrete-hybrid): per-stage PR only for external-review stages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-up to the per-stage delivery PR. In `discrete-hybrid` mode the engine no longer opens a draft PR for every stage — only for stages whose `review:` gate is or includes `external` (`stageRequiresExternalReview`). The continuous stages run inline and keep their work + proof on the intent-main PR. Plain `discrete` still opens one per stage. The dispatch builder's mode-aware `proofTargetPrUrl` needs no change: a non-external hybrid stage has no `stage_prs[stage]` entry, so it already falls back to the intent-main `draft_pr_url`. Sync: CLAUDE.md, ARCHITECTURE.md, git.md, the architecture map. Test: stageRequiresExternalReview against real software STAGE.md gates (development/design = [external, ask] → external; inception = ask, operations = auto → not). Full suite 2081 passed / 0 failed; website tsc clean. Co-Authored-By: Claude Opus 4.8 (1M context) --- CLAUDE.md | 2 +- packages/haiku/src/orchestrator/studio.ts | 16 + .../src/orchestrator/workflow/side-effects.ts | 15 +- .../stage-pr-and-proof-gitignore.test.mjs | 27 + plugin/bin/haiku.mjs | 696 +++++++++--------- plugin/providers/git.md | 2 +- plugin/studios/ARCHITECTURE.md | 2 +- .../[slug]/architecture/_data/actors.ts | 2 +- 8 files changed, 407 insertions(+), 355 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 86c13eaba..aa3bb6c6f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -80,7 +80,7 @@ When modifying any component, check if other components need corresponding updat | 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 | -| Per-stage delivery PR (`stage_prs`) | Profiles section / Quality Enforcement | In **discrete / discrete-hybrid** mode the engine opens a per-stage DRAFT PR at stage start (`workflowStartStage` → `openStageDraftPullRequest`, branch `haiku//`, base `haiku//main` — NOT repo default), records it in the `stage_prs: { : { url, status, ready_at } }` map on intent.md FM (`setStagePrField`/`readStagePr`; deliberately NOT in `INTENT_FIELDS`, like `draft_pr_*`), and flips it draft→ready at the stage gate (`haiku_await_gate` external_review block → `markPullRequestReady`, instead of opening a 2nd non-draft PR). That stage PR is where the stage's runtime-verification proof uploads. continuous/autopilot/quick keep one intent-main draft PR (opened at intent_create) and proof uploads there. Idempotent: a stage revisit skips re-open when `stage_prs[stage].url` is set | git-worktree.ts (`openStageDraftPullRequest`), orchestrator/workflow/side-effects.ts (`openStageDraftPrIfDelivery`), tools/orchestrator/haiku_await_gate.ts (gate flip), state-tools.ts (`setStagePrField`/`readStagePr`/`readStagePrs`) | +| Per-stage delivery PR (`stage_prs`) | Profiles section / Quality Enforcement | The engine opens a per-stage DRAFT PR at stage start (`workflowStartStage` → `openStageDraftPullRequest`, branch `haiku//`, base `haiku//main` — NOT repo default), records it in the `stage_prs: { : { url, status, ready_at } }` map on intent.md FM (`setStagePrField`/`readStagePr`; deliberately NOT in `INTENT_FIELDS`, like `draft_pr_*`), and flips it draft→ready at the stage gate (`haiku_await_gate` external_review block → `markPullRequestReady`, instead of opening a 2nd non-draft PR). **Mode shaping:** `discrete` opens one for EVERY stage; `discrete-hybrid` opens one ONLY for stages whose `review:` gate is/includes `external` (`stageRequiresExternalReview` — the continuous stages keep their work on the intent-main PR); continuous/autopilot/quick open none (single intent-main draft PR from intent_create). That stage PR is where the stage's runtime-verification proof uploads; non-PR stages upload to the intent-main PR (the dispatch builder's `proofTargetPrUrl` falls back automatically when `stage_prs[stage]` is absent). Idempotent: a stage revisit skips re-open when `stage_prs[stage].url` is set | git-worktree.ts (`openStageDraftPullRequest`), orchestrator/workflow/side-effects.ts (`openStageDraftPrIfDelivery`), orchestrator/studio.ts (`stageRequiresExternalReview`), tools/orchestrator/haiku_await_gate.ts (gate flip), state-tools.ts (`setStagePrField`/`readStagePr`/`readStagePrs`) | | Proof gitignore | Quality Enforcement | Runtime-verification proof (`.haiku/intents/*/stages/*/proof/`, `.haiku/intents/*/proof/`, incl. the ephemeral Playwright driver under `proof/.driver/`) is gitignored — regenerated binary churn that bloats history and doesn't travel on merge; the verifier uploads it to the PR and the SPA serves it live off disk. `ensureHaikuGitignored` (was `ensureWorktreesGitignored`) seeds the worktree pool + both proof globs idempotently before any worktree lands; the engine's `git add` paths honor `.gitignore` so nothing more is needed to keep proof out of commits / out of `dirty_tree_blocking_tick` | state-tools.ts (`ensureHaikuGitignored`, `HAIKU_GITIGNORE_PATTERNS`), git-worktree.ts (callers), root `.gitignore` | | 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`) | diff --git a/packages/haiku/src/orchestrator/studio.ts b/packages/haiku/src/orchestrator/studio.ts index 199c49831..e1fc1e9e0 100644 --- a/packages/haiku/src/orchestrator/studio.ts +++ b/packages/haiku/src/orchestrator/studio.ts @@ -163,6 +163,22 @@ export function resolveStageOptional(studio: string, stage: string): boolean { return readStageFrontmatter(studio, stage).optional === true } +/** Whether a stage's review gate routes to EXTERNAL review (STAGE.md + * `review: external`, or a compound list like `[external, ask]` that + * includes it). In `discrete-hybrid` mode this is what marks a stage as + * "gets its own PR" — only external-review stages open a per-stage draft + * PR; the continuous stages keep their work on the intent-main PR. In + * plain `discrete` mode every stage gets one regardless. */ +export function stageRequiresExternalReview( + studio: string, + stage: string, +): boolean { + const review = readStageFrontmatter(studio, stage).review + if (typeof review === "string") return review === "external" + if (Array.isArray(review)) return review.includes("external") + return false +} + /** Downstream in-plan stages that reference `stage` via their `inputs:` or * `review-agents-include:`. Drives the "what you're severing" summary shown * when an optional stage is offered for drop — so the decision isn't blind to diff --git a/packages/haiku/src/orchestrator/workflow/side-effects.ts b/packages/haiku/src/orchestrator/workflow/side-effects.ts index 7f7b3a321..e61ed1f94 100644 --- a/packages/haiku/src/orchestrator/workflow/side-effects.ts +++ b/packages/haiku/src/orchestrator/workflow/side-effects.ts @@ -56,6 +56,7 @@ import { import { withIntentMainLock } from "../../locks.js" import type { OrchestratorAction } from "../../orchestrator.js" import { resolveIntentStages } from "../../orchestrator.js" +import { stageRequiresExternalReview } from "../studio.js" import { sealIntentState } from "../../state-integrity.js" import { appendStageIteration, @@ -114,11 +115,19 @@ const PER_STAGE_PR_MODES = new Set(["discrete", "discrete-hybrid"]) * stamps the `stage_prs` map so the gate can flip it ready later and the * dispatch builder can hand the verifier the right upload target. * Idempotent: a revisit re-enters workflowStartStage, so skip when this - * stage already has a recorded PR URL. */ + * stage already has a recorded PR URL. + * + * Mode shaping: `discrete` opens a PR for EVERY stage. `discrete-hybrid` + * opens one ONLY for stages whose review gate is external (the others run + * continuous and keep their work on the intent-main PR). */ function openStageDraftPrIfDelivery(slug: string, stage: string): void { - const intentFile = join(intentDir(slug), "intent.md") - const mode = (readFrontmatter(intentFile).mode as string) || "" + const fm = readFrontmatter(join(intentDir(slug), "intent.md")) + const mode = (fm.mode as string) || "" if (!PER_STAGE_PR_MODES.has(mode)) return + if (mode === "discrete-hybrid") { + const studio = (fm.studio as string) || "" + if (!studio || !stageRequiresExternalReview(studio, stage)) return + } if (!isGitRepo() || detectPrTool() === null) return if (readStagePr(slug, stage)?.url) return try { diff --git a/packages/haiku/test/stage-pr-and-proof-gitignore.test.mjs b/packages/haiku/test/stage-pr-and-proof-gitignore.test.mjs index 358a52fb4..077c95740 100644 --- a/packages/haiku/test/stage-pr-and-proof-gitignore.test.mjs +++ b/packages/haiku/test/stage-pr-and-proof-gitignore.test.mjs @@ -42,6 +42,7 @@ const { RUNTIME_OBSERVATION_ROLES, PR_INTERACTION_ROLES } = await import( ) const { setStagePrField, readStagePr, readStagePrs, ensureHaikuGitignored } = await import(`${SRC}state-tools.ts`) +const { stageRequiresExternalReview } = await import(`${SRC}orchestrator/studio.ts`) const { INTENT_FIELDS } = await import(`${SRC}workflow-fields.ts`) const { actionPromptBuilders } = await import(`${SRC}orchestrator/prompts/index.ts`) @@ -153,6 +154,32 @@ test("runtime-verifier is in BOTH runtime-observation AND pr-interaction sets", ) }) +console.log("\n=== discrete-hybrid external-review stage gating ===") + +test("stageRequiresExternalReview reads STAGE.md review gate (software)", () => { + // [external, ask] → external; ask / auto → not external. + assert.strictEqual( + stageRequiresExternalReview("software", "development"), + true, + "development is [external, ask] → external", + ) + assert.strictEqual( + stageRequiresExternalReview("software", "design"), + true, + "design is [external, ask] → external", + ) + assert.strictEqual( + stageRequiresExternalReview("software", "inception"), + false, + "inception is `ask` → not external", + ) + assert.strictEqual( + stageRequiresExternalReview("software", "operations"), + false, + "operations is `auto` → not external", + ) +}) + console.log("\n=== stage_prs map on intent.md FM ===") test("setStagePrField → readStagePr round-trips one stage record", () => { diff --git a/plugin/bin/haiku.mjs b/plugin/bin/haiku.mjs index 565d9d9fb..0c9d488df 100755 --- a/plugin/bin/haiku.mjs +++ b/plugin/bin/haiku.mjs @@ -1,45 +1,45 @@ #!/usr/bin/env node import{createRequire}from"module";const require=createRequire(import.meta.url); -var aMt=Object.create;var oF=Object.defineProperty;var cMt=Object.getOwnPropertyDescriptor;var uMt=Object.getOwnPropertyNames;var lMt=Object.getPrototypeOf,dMt=Object.prototype.hasOwnProperty;var Y=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var v=(e,t)=>()=>(e&&(t=e(e=0)),t);var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ar=(e,t)=>{for(var n in t)oF(e,n,{get:t[n],enumerable:!0})},Fve=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of uMt(t))!dMt.call(e,i)&&i!==n&&oF(e,i,{get:()=>t[i],enumerable:!(r=cMt(t,i))||r.enumerable});return e};var Re=(e,t,n)=>(n=e!=null?aMt(lMt(e)):{},Fve(t||!e||!e.__esModule?oF(n,"default",{value:e,enumerable:!0}):n,e)),ke=e=>Fve(oF({},"__esModule",{value:!0}),e);var cm,y8=v(()=>{cm="1.9.1"});function fMt(e){let t=new Set([e]),n=new Set,r=e.match(jve);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(jve);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 jve,Hve,qve=v(()=>{y8();jve=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;Hve=fMt(cm)});function Ap(e,t,n,r=!1){var i;let s=pO[fO]=(i=pO[fO])!==null&&i!==void 0?i:{version:cm};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!==cm){let o=new Error(`@opentelemetry/api: Registration of version v${s.version} for ${e} does not match previously registered API v${cm}`);return n.error(o.stack||o.message),!1}return s[e]=t,n.debug(`@opentelemetry/api: Registered a global for ${e} v${cm}.`),!0}function rl(e){var t,n;let r=(t=pO[fO])===null||t===void 0?void 0:t.version;if(!(!r||!Hve(r)))return(n=pO[fO])===null||n===void 0?void 0:n[e]}function wp(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${cm}.`);let n=pO[fO];n&&delete n[e]}var pMt,fO,pO,fE=v(()=>{y8();qve();pMt=cm.split(".")[0],fO=Symbol.for(`opentelemetry.js.api.${pMt}`),pO=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{}});function hO(e,t,n){let r=rl("diag");if(r)return r[e](t,...n)}var aF,Bve=v(()=>{fE();aF=class{constructor(t){this._namespace=t.namespace||"DiagComponentLogger"}debug(...t){return hO("debug",this._namespace,t)}error(...t){return hO("error",this._namespace,t)}info(...t){return hO("info",this._namespace,t)}warn(...t){return hO("warn",this._namespace,t)}verbose(...t){return hO("verbose",this._namespace,t)}}});var ho,cF=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 zve(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 Gve=v(()=>{cF()});var hMt,Po,pE=v(()=>{Bve();Gve();cF();fE();hMt="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=zve((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(hMt,n)},n.createComponentLogger=i=>new aF(i),n.verbose=t("verbose"),n.debug=t("debug"),n.info=t("info"),n.warn=t("warn"),n.error=t("error")}}});var uF,Vve=v(()=>{uF=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 Wve,Kve=v(()=>{Wve=Symbol("BaggageEntryMetadata")});function Yve(e={}){return new uF(new Map(Object.entries(e)))}function Zve(e){return typeof e!="string"&&(mMt.error(`Cannot create baggage metadata from unknown type: ${typeof e}`),e=""),{__TYPE__:Wve,toString(){return e}}}var mMt,S8=v(()=>{pE();Vve();Kve();mMt=Po.instance()});function il(e){return Symbol.for(e)}var b8,lR,mO=v(()=>{b8=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}}},lR=new b8});var E8,_8,lF,Jve=v(()=>{E8=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],_8={};if(typeof console<"u"){let e=["error","warn","info","debug","trace","log"];for(let t of e)typeof console[t]=="function"&&(_8[t]=console[t])}lF=class{constructor(){function t(n){return function(...r){let i=_8[n];if(typeof i!="function"&&(i=_8.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{T8=class{constructor(){}createGauge(t,n){return yMt}createHistogram(t,n){return SMt}createCounter(t,n){return gMt}createUpDownCounter(t,n){return bMt}createObservableGauge(t,n){return _Mt}createObservableCounter(t,n){return EMt}createObservableUpDownCounter(t,n){return TMt}addBatchObservableCallback(t,n){}removeBatchObservableCallback(t){}},dR=class{},v8=class extends dR{add(t,n){}},R8=class extends dR{add(t,n){}},A8=class extends dR{record(t,n){}},w8=class extends dR{record(t,n){}},gO=class{addCallback(t){}removeCallback(t){}},k8=class extends gO{},I8=class extends gO{},x8=class extends gO{},O8=new T8,gMt=new v8,yMt=new A8,SMt=new w8,bMt=new R8,EMt=new k8,_Mt=new I8,TMt=new x8});var dF,Qve=v(()=>{(function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"})(dF||(dF={}))});var fF,pF,N8=v(()=>{fF={get(e,t){if(e!=null)return e[t]},keys(e){return e==null?[]:Object.keys(e)}},pF={set(e,t,n){e!=null&&(e[t]=n)}}});var hF,$ve=v(()=>{mO();hF=class{active(){return lR}with(t,n,r,...i){return n.call(r,...i)}bind(t,n){return n}enable(){return this}disable(){return this}}});var C8,vMt,kp,yO=v(()=>{$ve();fE();pE();C8="context",vMt=new hF,kp=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalContextManager(t){return Ap(C8,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(C8)||vMt}disable(){this._getContextManager().disable(),wp(C8,Po.instance())}}});var qa,M8=v(()=>{(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(qa||(qa={}))});var SO,hE,mF,gF=v(()=>{M8();SO="0000000000000000",hE="00000000000000000000000000000000",mF={traceId:hE,spanId:SO,traceFlags:qa.NONE}});var Ip,yF=v(()=>{gF();Ip=class{constructor(t=mF){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 SF(e){return e.getValue(D8)||void 0}function eRe(){return SF(kp.getInstance().active())}function bO(e,t){return e.setValue(D8,t)}function tRe(e){return e.deleteValue(D8)}function nRe(e,t){return bO(e,new Ip(t))}function bF(e){var t;return(t=SF(e))===null||t===void 0?void 0:t.spanContext()}var D8,L8=v(()=>{mO();yF();yO();D8=il("OpenTelemetry Context Key SPAN")});function rRe(e,t){if(typeof e!="string"||e.length!==t)return!1;let n=0;for(let r=0;r{gF();yF();EF=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 RMt(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 j8,fR,H8=v(()=>{yO();L8();yF();_F();j8=kp.getInstance(),fR=class{startSpan(t,n,r=j8.active()){if(!!n?.root)return new Ip;let s=r&&bF(r);return RMt(s)&&um(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??j8.active(),u=this.startSpan(t,s,c),l=bO(c,u);return j8.with(l,a,void 0,u)}}});var AMt,pR,q8=v(()=>{H8();AMt=new fR,pR=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):AMt}}});var TF,sRe=v(()=>{H8();TF=class{getTracer(t,n,r){return new fR}}});var wMt,mE,B8=v(()=>{q8();sRe();wMt=new TF,mE=class{getTracer(t,n,r){var i;return(i=this.getDelegateTracer(t,n,r))!==null&&i!==void 0?i:new pR(this,t,n,r)}getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:wMt}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 vF,oRe=v(()=>{(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(vF||(vF={}))});var $r,aRe=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,cRe=v(()=>{(function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"})(as||(as={}))});function uRe(e){return xMt.test(e)}function lRe(e){return OMt.test(e)&&!PMt.test(e)}var z8,kMt,IMt,xMt,OMt,PMt,dRe=v(()=>{z8="[_0-9a-z-*/]",kMt=`[a-z]${z8}{0,255}`,IMt=`[a-z0-9]${z8}{0,240}@[a-z]${z8}{0,13}`,xMt=new RegExp(`^(?:${kMt}|${IMt})$`),OMt=/^[ -~]{0,255}[!-~]$/,PMt=/,|=/});var fRe,NMt,pRe,hRe,RF,mRe=v(()=>{dRe();fRe=32,NMt=512,pRe=",",hRe="=",RF=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+hRe+this.get(n)),t),[]).join(pRe)}_parse(t){t.length>NMt||(this._internalState=t.split(pRe).reduceRight((n,r)=>{let i=r.trim(),s=i.indexOf(hRe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);uRe(o)&&lRe(a)&&n.set(o,a)}return n},new Map),this._internalState.size>fRe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,fRe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}}});function gRe(e){return new RF(e)}var yRe=v(()=>{mRe()});var Ve,SRe=v(()=>{yO();Ve=kp.getInstance()});var sl,bRe=v(()=>{pE();sl=Po.instance()});var G8,ERe,_Re=v(()=>{P8();G8=class{getMeter(t,n,r){return O8}},ERe=new G8});var V8,AF,TRe=v(()=>{_Re();fE();pE();V8="metrics",AF=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalMeterProvider(t){return Ap(V8,t,Po.instance())}getMeterProvider(){return rl(V8)||ERe}getMeter(t,n,r){return this.getMeterProvider().getMeter(t,n,r)}disable(){wp(V8,Po.instance())}}});var W8,vRe=v(()=>{TRe();W8=AF.getInstance()});var wF,RRe=v(()=>{wF=class{inject(t,n){}extract(t,n){return t}fields(){return[]}}});function Y8(e){return e.getValue(K8)||void 0}function ARe(){return Y8(kp.getInstance().active())}function wRe(e,t){return e.setValue(K8,t)}function kRe(e){return e.deleteValue(K8)}var K8,IRe=v(()=>{yO();mO();K8=il("OpenTelemetry Baggage Key")});var Z8,CMt,kF,xRe=v(()=>{fE();RRe();N8();IRe();S8();pE();Z8="propagation",CMt=new wF,kF=class e{constructor(){this.createBaggage=Yve,this.getBaggage=Y8,this.getActiveBaggage=ARe,this.setBaggage=wRe,this.deleteBaggage=kRe}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalPropagator(t){return Ap(Z8,t,Po.instance())}inject(t,n,r=pF){return this._getGlobalPropagator().inject(t,n,r)}extract(t,n,r=fF){return this._getGlobalPropagator().extract(t,n,r)}fields(){return this._getGlobalPropagator().fields()}disable(){wp(Z8,Po.instance())}_getGlobalPropagator(){return rl(Z8)||CMt}}});var Qd,ORe=v(()=>{xRe();Qd=kF.getInstance()});var J8,IF,PRe=v(()=>{fE();B8();_F();L8();pE();J8="trace",IF=class e{constructor(){this._proxyTracerProvider=new mE,this.wrapSpanContext=iRe,this.isSpanContextValid=um,this.deleteSpan=tRe,this.getSpan=SF,this.getActiveSpan=eRe,this.getSpanContext=bF,this.setSpan=bO,this.setSpanContext=nRe}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalTracerProvider(t){let n=Ap(J8,this._proxyTracerProvider,Po.instance());return n&&this._proxyTracerProvider.setDelegate(t),n}getTracerProvider(){return rl(J8)||this._proxyTracerProvider}getTracer(t,n){return this.getTracerProvider().getTracer(t,n)}disable(){wp(J8,Po.instance()),this._proxyTracerProvider=new mE}}});var jt,NRe=v(()=>{PRe();jt=IF.getInstance()});var Ze={};Ar(Ze,{DiagConsoleLogger:()=>lF,DiagLogLevel:()=>ho,INVALID_SPANID:()=>SO,INVALID_SPAN_CONTEXT:()=>mF,INVALID_TRACEID:()=>hE,ProxyTracer:()=>pR,ProxyTracerProvider:()=>mE,ROOT_CONTEXT:()=>lR,SamplingDecision:()=>vF,SpanKind:()=>$r,SpanStatusCode:()=>as,TraceFlags:()=>qa,ValueType:()=>dF,baggageEntryMetadataFromString:()=>Zve,context:()=>Ve,createContextKey:()=>il,createNoopMeter:()=>Xve,createTraceState:()=>gRe,default:()=>MMt,defaultTextMapGetter:()=>fF,defaultTextMapSetter:()=>pF,diag:()=>sl,isSpanContextValid:()=>um,isValidSpanId:()=>F8,isValidTraceId:()=>U8,metrics:()=>W8,propagation:()=>Qd,trace:()=>jt});var MMt,Me=v(()=>{S8();mO();Jve();cF();P8();Qve();N8();q8();B8();oRe();aRe();cRe();M8();yRe();_F();gF();SRe();bRe();vRe();ORe();NRe();MMt={context:Ve,diag:sl,metrics:W8,propagation:Qd,trace:jt}});var EO=w(dy=>{"use strict";Object.defineProperty(dy,"__esModule",{value:!0});dy.isTracingSuppressed=dy.unsuppressTracing=dy.suppressTracing=void 0;var DMt=(Me(),ke(Ze)),X8=(0,DMt.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function LMt(e){return e.setValue(X8,!0)}dy.suppressTracing=LMt;function UMt(e){return e.deleteValue(X8)}dy.unsuppressTracing=UMt;function FMt(e){return e.getValue(X8)===!0}dy.isTracingSuppressed=FMt});var Q8=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 $8=w(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});xp.parseKeyPairsIntoRecord=xp.parsePairKeyValue=xp.getKeyPairs=xp.serializeKeyPairs=void 0;var jMt=(Me(),ke(Ze)),hR=Q8();function HMt(e){return e.reduce((t,n)=>{let r=`${t}${t!==""?hR.BAGGAGE_ITEMS_SEPARATOR:""}${n}`;return r.length>hR.BAGGAGE_MAX_TOTAL_LENGTH?t:r},"")}xp.serializeKeyPairs=HMt;function qMt(e){return e.getAllEntries().map(([t,n])=>{let r=`${encodeURIComponent(t)}=${encodeURIComponent(n.value)}`;return n.metadata!==void 0&&(r+=hR.BAGGAGE_PROPERTIES_SEPARATOR+n.metadata.toString()),r})}xp.getKeyPairs=qMt;function CRe(e){if(!e)return;let t=e.indexOf(hR.BAGGAGE_PROPERTIES_SEPARATOR),n=t===-1?e:e.substring(0,t),r=n.indexOf(hR.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(hR.BAGGAGE_ITEMS_SEPARATOR).forEach(n=>{let r=CRe(n);r!==void 0&&r.value.length>0&&(t[r.key]=r.value)}),t}xp.parseKeyPairsIntoRecord=BMt});var MRe=w(xF=>{"use strict";Object.defineProperty(xF,"__esModule",{value:!0});xF.W3CBaggagePropagator=void 0;var e7=(Me(),ke(Ze)),zMt=EO(),gE=Q8(),t7=$8(),n7=class{inject(t,n,r){let i=e7.propagation.getBaggage(t);if(!i||(0,zMt.isTracingSuppressed)(t))return;let s=(0,t7.getKeyPairs)(i).filter(a=>a.length<=gE.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,gE.BAGGAGE_MAX_NAME_VALUE_PAIRS),o=(0,t7.serializeKeyPairs)(s);o.length>0&&r.set(n,gE.BAGGAGE_HEADER,o)}extract(t,n,r){let i=r.get(n,gE.BAGGAGE_HEADER),s=Array.isArray(i)?i.join(gE.BAGGAGE_ITEMS_SEPARATOR):i;if(!s)return t;let o={};return s.length===0||(s.split(gE.BAGGAGE_ITEMS_SEPARATOR).forEach(c=>{let u=(0,t7.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:e7.propagation.setBaggage(t,e7.propagation.createBaggage(o))}fields(){return[gE.BAGGAGE_HEADER]}};xF.W3CBaggagePropagator=n7});var DRe=w(OF=>{"use strict";Object.defineProperty(OF,"__esModule",{value:!0});OF.AnchoredClock=void 0;var r7=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}};OF.AnchoredClock=r7});var HRe=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.isAttributeValue=fy.isAttributeKey=fy.sanitizeAttributes=void 0;var LRe=(Me(),ke(Ze));function GMt(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(!URe(n)){LRe.diag.warn(`Invalid attribute key: ${n}`);continue}let r=e[n];if(!FRe(r)){LRe.diag.warn(`Invalid attribute value set for key: ${n}`);continue}Array.isArray(r)?t[n]=r.slice():t[n]=r}return t}fy.sanitizeAttributes=GMt;function URe(e){return typeof e=="string"&&e!==""}fy.isAttributeKey=URe;function FRe(e){return e==null?!0:Array.isArray(e)?VMt(e):jRe(typeof e)}fy.isAttributeValue=FRe;function VMt(e){let t;for(let n of e){if(n==null)continue;let r=typeof n;if(r!==t){if(!t){if(jRe(r)){t=r;continue}return!1}return!1}}return!0}function jRe(e){switch(e){case"number":case"boolean":case"string":return!0}return!1}});var i7=w(PF=>{"use strict";Object.defineProperty(PF,"__esModule",{value:!0});PF.loggingErrorHandler=void 0;var WMt=(Me(),ke(Ze));function KMt(){return e=>{WMt.diag.error(YMt(e))}}PF.loggingErrorHandler=KMt;function YMt(e){return typeof e=="string"?e:JSON.stringify(ZMt(e))}function ZMt(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 BRe=w(mR=>{"use strict";Object.defineProperty(mR,"__esModule",{value:!0});mR.globalErrorHandler=mR.setGlobalErrorHandler=void 0;var JMt=i7(),qRe=(0,JMt.loggingErrorHandler)();function XMt(e){qRe=e}mR.setGlobalErrorHandler=XMt;function QMt(e){try{qRe(e)}catch{}}mR.globalErrorHandler=QMt});var WRe=w(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});Op.getStringListFromEnv=Op.getBooleanFromEnv=Op.getStringFromEnv=Op.getNumberFromEnv=void 0;var zRe=(Me(),ke(Ze)),GRe=Y("util");function $Mt(e){let t=process.env[e];if(t==null||t.trim()==="")return;let n=Number(t);if(isNaN(n)){zRe.diag.warn(`Unknown value ${(0,GRe.inspect)(t)} for ${e}, expected a number, using defaults`);return}return n}Op.getNumberFromEnv=$Mt;function VRe(e){let t=process.env[e];if(!(t==null||t.trim()===""))return t}Op.getStringFromEnv=VRe;function eDt(e){let t=process.env[e]?.trim().toLowerCase();return t==null||t===""?!1:t==="true"?!0:(t==="false"||zRe.diag.warn(`Unknown value ${(0,GRe.inspect)(t)} for ${e}, expected 'true' or 'false', falling back to 'false' (default)`),!1)}Op.getBooleanFromEnv=eDt;function tDt(e){return VRe(e)?.split(",").map(t=>t.trim()).filter(t=>t!=="")}Op.getStringListFromEnv=tDt});var KRe=w(NF=>{"use strict";Object.defineProperty(NF,"__esModule",{value:!0});NF._globalThis=void 0;NF._globalThis=globalThis});var YRe=w(CF=>{"use strict";Object.defineProperty(CF,"__esModule",{value:!0});CF.VERSION=void 0;CF.VERSION="2.6.1"});function ws(e){let t={},n=e.length;for(let r=0;r{});var 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,fke,pke,hke,nDt,o7,rDt,iDt,sDt,oDt,a7,aDt,cDt,uDt,lDt,dDt,fDt,pDt,hDt,mDt,gDt,yDt,SDt,bDt,EDt,_Dt,TDt,vDt,RDt,c7,ADt,wDt,kDt,IDt,xDt,ODt,PDt,NDt,CDt,MDt,DDt,LDt,u7,UDt,FDt,l7,d7,jDt,HDt,qDt,BDt,zDt,GDt,VDt,WDt,KDt,YDt,ZDt,JDt,XDt,QDt,$Dt,eLt,tLt,_O,gR,f7,nLt,rLt,yE,iLt,sLt,oLt,aLt,p7,h7,cLt,m7,uLt,lLt,dLt,fLt,pLt,hLt,mLt,gLt,yLt,SLt,bLt,ELt,_Lt,TLt,vLt,RLt,ALt,wLt,kLt,ILt,xLt,OLt,PLt,g7,NLt,CLt,MLt,DLt,LLt,ULt,FLt,jLt,HLt,qLt,BLt,zLt,GLt,VLt,WLt,KLt,YLt,ZLt,JLt,y7,XLt,S7,QLt,$Lt,e1t,t1t,n1t,r1t,i1t,s1t,o1t,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,sIe,oIe,aIe,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,Y1t,Z1t,J1t,X1t,Q1t,$1t,eUt,cIe,uIe,lIe,dIe,fIe,pIe,hIe,mIe,gIe,yIe,SIe,tUt,nUt,rUt,iUt,sUt,oUt,aUt,cUt,uUt,lUt,dUt,fUt,bIe,EIe,_Ie,TIe,vIe,pUt,hUt,mUt,gUt,yUt,SUt,RIe,AIe,wIe,bUt,EUt,_Ut,TUt,kIe,IIe,xIe,OIe,vUt,RUt,AUt,wUt,kUt,PIe,NIe,CIe,MIe,DIe,LIe,UIe,IUt,xUt,OUt,PUt,NUt,CUt,MUt,DUt,FIe,jIe,HIe,qIe,BIe,LUt,UUt,FUt,jUt,HUt,qUt,zIe,GIe,VIe,WIe,KIe,YIe,ZIe,JIe,XIe,QIe,$Ie,e0e,t0e,n0e,r0e,i0e,s0e,o0e,a0e,c0e,u0e,BUt,zUt,GUt,VUt,WUt,KUt,YUt,ZUt,JUt,XUt,QUt,$Ut,eFt,tFt,nFt,rFt,iFt,sFt,oFt,aFt,cFt,uFt,l0e,d0e,f0e,p0e,h0e,lFt,dFt,fFt,pFt,hFt,mFt,m0e,g0e,gFt,yFt,SFt,y0e,S0e,bFt,EFt,_Ft,b0e,E0e,_0e,T0e,v0e,R0e,A0e,w0e,k0e,I0e,x0e,O0e,P0e,N0e,C0e,M0e,D0e,TFt,vFt,RFt,AFt,wFt,kFt,IFt,xFt,OFt,PFt,NFt,CFt,MFt,DFt,LFt,UFt,FFt,jFt,L0e,U0e,HFt,qFt,BFt,F0e=v(()=>{s7();ZRe="aws.lambda.invoked_arn",JRe="db.system",XRe="db.connection_string",QRe="db.user",$Re="db.jdbc.driver_classname",eAe="db.name",tAe="db.statement",nAe="db.operation",rAe="db.mssql.instance_name",iAe="db.cassandra.keyspace",sAe="db.cassandra.page_size",oAe="db.cassandra.consistency_level",aAe="db.cassandra.table",cAe="db.cassandra.idempotence",uAe="db.cassandra.speculative_execution_count",lAe="db.cassandra.coordinator.id",dAe="db.cassandra.coordinator.dc",fAe="db.hbase.namespace",pAe="db.redis.database_index",hAe="db.mongodb.collection",mAe="db.sql.table",gAe="exception.type",yAe="exception.message",SAe="exception.stacktrace",bAe="exception.escaped",EAe="faas.trigger",_Ae="faas.execution",TAe="faas.document.collection",vAe="faas.document.operation",RAe="faas.document.time",AAe="faas.document.name",wAe="faas.time",kAe="faas.cron",IAe="faas.coldstart",xAe="faas.invoked_name",OAe="faas.invoked_provider",PAe="faas.invoked_region",NAe="net.transport",CAe="net.peer.ip",MAe="net.peer.port",DAe="net.peer.name",LAe="net.host.ip",UAe="net.host.port",FAe="net.host.name",jAe="net.host.connection.type",HAe="net.host.connection.subtype",qAe="net.host.carrier.name",BAe="net.host.carrier.mcc",zAe="net.host.carrier.mnc",GAe="net.host.carrier.icc",VAe="peer.service",WAe="enduser.id",KAe="enduser.role",YAe="enduser.scope",ZAe="thread.id",JAe="thread.name",XAe="code.function",QAe="code.namespace",$Ae="code.filepath",ewe="code.lineno",twe="http.method",nwe="http.url",rwe="http.target",iwe="http.host",swe="http.scheme",owe="http.status_code",awe="http.flavor",cwe="http.user_agent",uwe="http.request_content_length",lwe="http.request_content_length_uncompressed",dwe="http.response_content_length",fwe="http.response_content_length_uncompressed",pwe="http.server_name",hwe="http.route",mwe="http.client_ip",gwe="aws.dynamodb.table_names",ywe="aws.dynamodb.consumed_capacity",Swe="aws.dynamodb.item_collection_metrics",bwe="aws.dynamodb.provisioned_read_capacity",Ewe="aws.dynamodb.provisioned_write_capacity",_we="aws.dynamodb.consistent_read",Twe="aws.dynamodb.projection",vwe="aws.dynamodb.limit",Rwe="aws.dynamodb.attributes_to_get",Awe="aws.dynamodb.index_name",wwe="aws.dynamodb.select",kwe="aws.dynamodb.global_secondary_indexes",Iwe="aws.dynamodb.local_secondary_indexes",xwe="aws.dynamodb.exclusive_start_table",Owe="aws.dynamodb.table_count",Pwe="aws.dynamodb.scan_forward",Nwe="aws.dynamodb.segment",Cwe="aws.dynamodb.total_segments",Mwe="aws.dynamodb.count",Dwe="aws.dynamodb.scanned_count",Lwe="aws.dynamodb.attribute_definitions",Uwe="aws.dynamodb.global_secondary_index_updates",Fwe="messaging.system",jwe="messaging.destination",Hwe="messaging.destination_kind",qwe="messaging.temp_destination",Bwe="messaging.protocol",zwe="messaging.protocol_version",Gwe="messaging.url",Vwe="messaging.message_id",Wwe="messaging.conversation_id",Kwe="messaging.message_payload_size_bytes",Ywe="messaging.message_payload_compressed_size_bytes",Zwe="messaging.operation",Jwe="messaging.consumer_id",Xwe="messaging.rabbitmq.routing_key",Qwe="messaging.kafka.message_key",$we="messaging.kafka.consumer_group",eke="messaging.kafka.client_id",tke="messaging.kafka.partition",nke="messaging.kafka.tombstone",rke="rpc.system",ike="rpc.service",ske="rpc.method",oke="rpc.grpc.status_code",ake="rpc.jsonrpc.version",cke="rpc.jsonrpc.request_id",uke="rpc.jsonrpc.error_code",lke="rpc.jsonrpc.error_message",dke="message.type",fke="message.id",pke="message.compressed_size",hke="message.uncompressed_size",nDt=ZRe,o7=JRe,rDt=XRe,iDt=QRe,sDt=$Re,oDt=eAe,a7=tAe,aDt=nAe,cDt=rAe,uDt=iAe,lDt=sAe,dDt=oAe,fDt=aAe,pDt=cAe,hDt=uAe,mDt=lAe,gDt=dAe,yDt=fAe,SDt=pAe,bDt=hAe,EDt=mAe,_Dt=gAe,TDt=yAe,vDt=SAe,RDt=bAe,c7=EAe,ADt=_Ae,wDt=TAe,kDt=vAe,IDt=RAe,xDt=AAe,ODt=wAe,PDt=kAe,NDt=IAe,CDt=xAe,MDt=OAe,DDt=PAe,LDt=NAe,u7=CAe,UDt=MAe,FDt=DAe,l7=LAe,d7=UAe,jDt=FAe,HDt=jAe,qDt=HAe,BDt=qAe,zDt=BAe,GDt=zAe,VDt=GAe,WDt=VAe,KDt=WAe,YDt=KAe,ZDt=YAe,JDt=ZAe,XDt=JAe,QDt=XAe,$Dt=QAe,eLt=$Ae,tLt=ewe,_O=twe,gR=nwe,f7=rwe,nLt=iwe,rLt=swe,yE=owe,iLt=awe,sLt=cwe,oLt=uwe,aLt=lwe,p7=dwe,h7=fwe,cLt=pwe,m7=hwe,uLt=mwe,lLt=gwe,dLt=ywe,fLt=Swe,pLt=bwe,hLt=Ewe,mLt=_we,gLt=Twe,yLt=vwe,SLt=Rwe,bLt=Awe,ELt=wwe,_Lt=kwe,TLt=Iwe,vLt=xwe,RLt=Owe,ALt=Pwe,wLt=Nwe,kLt=Cwe,ILt=Mwe,xLt=Dwe,OLt=Lwe,PLt=Uwe,g7=Fwe,NLt=jwe,CLt=Hwe,MLt=qwe,DLt=Bwe,LLt=zwe,ULt=Gwe,FLt=Vwe,jLt=Wwe,HLt=Kwe,qLt=Ywe,BLt=Zwe,zLt=Jwe,GLt=Xwe,VLt=Qwe,WLt=$we,KLt=eke,YLt=tke,ZLt=nke,JLt=rke,y7=ike,XLt=ske,S7=oke,QLt=ake,$Lt=cke,e1t=uke,t1t=lke,n1t=dke,r1t=fke,i1t=pke,s1t=hke,o1t=ws([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,fke,pke,hke]),mke="other_sql",gke="mssql",yke="mysql",Ske="oracle",bke="db2",Eke="postgresql",_ke="redshift",Tke="hive",vke="cloudscape",Rke="hsqldb",Ake="progress",wke="maxdb",kke="hanadb",Ike="ingres",xke="firstsql",Oke="edb",Pke="cache",Nke="adabas",Cke="firebird",Mke="derby",Dke="filemaker",Lke="informix",Uke="instantdb",Fke="interbase",jke="mariadb",Hke="netezza",qke="pervasive",Bke="pointbase",zke="sqlite",Gke="sybase",Vke="teradata",Wke="vertica",Kke="h2",Yke="coldfusion",Zke="cassandra",Jke="hbase",Xke="mongodb",Qke="redis",$ke="couchbase",eIe="couchdb",tIe="cosmosdb",nIe="dynamodb",rIe="neo4j",iIe="geode",sIe="elasticsearch",oIe="memcached",aIe="cockroachdb",a1t=mke,c1t=gke,u1t=yke,l1t=Ske,d1t=bke,f1t=Eke,p1t=_ke,h1t=Tke,m1t=vke,g1t=Rke,y1t=Ake,S1t=wke,b1t=kke,E1t=Ike,_1t=xke,T1t=Oke,v1t=Pke,R1t=Nke,A1t=Cke,w1t=Mke,k1t=Dke,I1t=Lke,x1t=Uke,O1t=Fke,P1t=jke,N1t=Hke,C1t=qke,M1t=Bke,D1t=zke,L1t=Gke,U1t=Vke,F1t=Wke,j1t=Kke,H1t=Yke,q1t=Zke,B1t=Jke,z1t=Xke,G1t=Qke,V1t=$ke,W1t=eIe,K1t=tIe,Y1t=nIe,Z1t=rIe,J1t=iIe,X1t=sIe,Q1t=oIe,$1t=aIe,eUt=ws([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,sIe,oIe,aIe]),cIe="all",uIe="each_quorum",lIe="quorum",dIe="local_quorum",fIe="one",pIe="two",hIe="three",mIe="local_one",gIe="any",yIe="serial",SIe="local_serial",tUt=cIe,nUt=uIe,rUt=lIe,iUt=dIe,sUt=fIe,oUt=pIe,aUt=hIe,cUt=mIe,uUt=gIe,lUt=yIe,dUt=SIe,fUt=ws([cIe,uIe,lIe,dIe,fIe,pIe,hIe,mIe,gIe,yIe,SIe]),bIe="datasource",EIe="http",_Ie="pubsub",TIe="timer",vIe="other",pUt=bIe,hUt=EIe,mUt=_Ie,gUt=TIe,yUt=vIe,SUt=ws([bIe,EIe,_Ie,TIe,vIe]),RIe="insert",AIe="edit",wIe="delete",bUt=RIe,EUt=AIe,_Ut=wIe,TUt=ws([RIe,AIe,wIe]),kIe="alibaba_cloud",IIe="aws",xIe="azure",OIe="gcp",vUt=kIe,RUt=IIe,AUt=xIe,wUt=OIe,kUt=ws([kIe,IIe,xIe,OIe]),PIe="ip_tcp",NIe="ip_udp",CIe="ip",MIe="unix",DIe="pipe",LIe="inproc",UIe="other",IUt=PIe,xUt=NIe,OUt=CIe,PUt=MIe,NUt=DIe,CUt=LIe,MUt=UIe,DUt=ws([PIe,NIe,CIe,MIe,DIe,LIe,UIe]),FIe="wifi",jIe="wired",HIe="cell",qIe="unavailable",BIe="unknown",LUt=FIe,UUt=jIe,FUt=HIe,jUt=qIe,HUt=BIe,qUt=ws([FIe,jIe,HIe,qIe,BIe]),zIe="gprs",GIe="edge",VIe="umts",WIe="cdma",KIe="evdo_0",YIe="evdo_a",ZIe="cdma2000_1xrtt",JIe="hsdpa",XIe="hsupa",QIe="hspa",$Ie="iden",e0e="evdo_b",t0e="lte",n0e="ehrpd",r0e="hspap",i0e="gsm",s0e="td_scdma",o0e="iwlan",a0e="nr",c0e="nrnsa",u0e="lte_ca",BUt=zIe,zUt=GIe,GUt=VIe,VUt=WIe,WUt=KIe,KUt=YIe,YUt=ZIe,ZUt=JIe,JUt=XIe,XUt=QIe,QUt=$Ie,$Ut=e0e,eFt=t0e,tFt=n0e,nFt=r0e,rFt=i0e,iFt=s0e,sFt=o0e,oFt=a0e,aFt=c0e,cFt=u0e,uFt=ws([zIe,GIe,VIe,WIe,KIe,YIe,ZIe,JIe,XIe,QIe,$Ie,e0e,t0e,n0e,r0e,i0e,s0e,o0e,a0e,c0e,u0e]),l0e="1.0",d0e="1.1",f0e="2.0",p0e="SPDY",h0e="QUIC",lFt=l0e,dFt=d0e,fFt=f0e,pFt=p0e,hFt=h0e,mFt={HTTP_1_0:l0e,HTTP_1_1:d0e,HTTP_2_0:f0e,SPDY:p0e,QUIC:h0e},m0e="queue",g0e="topic",gFt=m0e,yFt=g0e,SFt=ws([m0e,g0e]),y0e="receive",S0e="process",bFt=y0e,EFt=S0e,_Ft=ws([y0e,S0e]),b0e=0,E0e=1,_0e=2,T0e=3,v0e=4,R0e=5,A0e=6,w0e=7,k0e=8,I0e=9,x0e=10,O0e=11,P0e=12,N0e=13,C0e=14,M0e=15,D0e=16,TFt=b0e,vFt=E0e,RFt=_0e,AFt=T0e,wFt=v0e,kFt=R0e,IFt=A0e,xFt=w0e,OFt=k0e,PFt=I0e,NFt=x0e,CFt=O0e,MFt=P0e,DFt=N0e,LFt=C0e,UFt=M0e,FFt=D0e,jFt={OK:b0e,CANCELLED:E0e,UNKNOWN:_0e,INVALID_ARGUMENT:T0e,DEADLINE_EXCEEDED:v0e,NOT_FOUND:R0e,ALREADY_EXISTS:A0e,PERMISSION_DENIED:w0e,RESOURCE_EXHAUSTED:k0e,FAILED_PRECONDITION:I0e,ABORTED:x0e,OUT_OF_RANGE:O0e,UNIMPLEMENTED:P0e,INTERNAL:N0e,UNAVAILABLE:C0e,DATA_LOSS:M0e,UNAUTHENTICATED:D0e},L0e="SENT",U0e="RECEIVED",HFt=L0e,qFt=U0e,BFt=ws([L0e,U0e])});var j0e=v(()=>{F0e()});var 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,lOe,dOe,fOe,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,$jt,eHt,tHt,nHt,rHt,iHt,sHt,b7,oHt,aHt,cHt,uHt,lHt,dHt,fHt,pHt,hHt,mHt,pOe,hOe,mOe,gOe,gHt,yHt,SHt,bHt,EHt,yOe,SOe,bOe,EOe,_Oe,TOe,vOe,ROe,AOe,wOe,kOe,IOe,xOe,OOe,POe,NOe,COe,_Ht,THt,vHt,RHt,AHt,wHt,kHt,IHt,xHt,OHt,PHt,NHt,CHt,MHt,DHt,LHt,UHt,FHt,MOe,DOe,jHt,HHt,qHt,LOe,UOe,FOe,jOe,HOe,qOe,BOe,BHt,zHt,GHt,VHt,WHt,KHt,YHt,ZHt,zOe,GOe,VOe,WOe,KOe,YOe,ZOe,JOe,XOe,QOe,$Oe,JHt,XHt,QHt,$Ht,eqt,tqt,nqt,rqt,iqt,sqt,oqt,aqt,ePe,tPe,nPe,rPe,iPe,sPe,oPe,aPe,cPe,uPe,cqt,uqt,lqt,dqt,fqt,pqt,hqt,mqt,gqt,yqt,Sqt,lPe=v(()=>{s7();H0e="cloud.provider",q0e="cloud.account.id",B0e="cloud.region",z0e="cloud.availability_zone",G0e="cloud.platform",V0e="aws.ecs.container.arn",W0e="aws.ecs.cluster.arn",K0e="aws.ecs.launchtype",Y0e="aws.ecs.task.arn",Z0e="aws.ecs.task.family",J0e="aws.ecs.task.revision",X0e="aws.eks.cluster.arn",Q0e="aws.log.group.names",$0e="aws.log.group.arns",exe="aws.log.stream.names",txe="aws.log.stream.arns",nxe="container.name",rxe="container.id",ixe="container.runtime",sxe="container.image.name",oxe="container.image.tag",axe="deployment.environment",cxe="device.id",uxe="device.model.identifier",lxe="device.model.name",dxe="faas.name",fxe="faas.id",pxe="faas.version",hxe="faas.instance",mxe="faas.max_memory",gxe="host.id",yxe="host.name",Sxe="host.type",bxe="host.arch",Exe="host.image.name",_xe="host.image.id",Txe="host.image.version",vxe="k8s.cluster.name",Rxe="k8s.node.name",Axe="k8s.node.uid",wxe="k8s.namespace.name",kxe="k8s.pod.uid",Ixe="k8s.pod.name",xxe="k8s.container.name",Oxe="k8s.replicaset.uid",Pxe="k8s.replicaset.name",Nxe="k8s.deployment.uid",Cxe="k8s.deployment.name",Mxe="k8s.statefulset.uid",Dxe="k8s.statefulset.name",Lxe="k8s.daemonset.uid",Uxe="k8s.daemonset.name",Fxe="k8s.job.uid",jxe="k8s.job.name",Hxe="k8s.cronjob.uid",qxe="k8s.cronjob.name",Bxe="os.type",zxe="os.description",Gxe="os.name",Vxe="os.version",Wxe="process.pid",Kxe="process.executable.name",Yxe="process.executable.path",Zxe="process.command",Jxe="process.command_line",Xxe="process.command_args",Qxe="process.owner",$xe="process.runtime.name",eOe="process.runtime.version",tOe="process.runtime.description",nOe="service.name",rOe="service.namespace",iOe="service.instance.id",sOe="service.version",oOe="telemetry.sdk.name",aOe="telemetry.sdk.language",cOe="telemetry.sdk.version",uOe="telemetry.auto.version",lOe="webengine.name",dOe="webengine.version",fOe="webengine.description",zFt=H0e,GFt=q0e,VFt=B0e,WFt=z0e,KFt=G0e,YFt=V0e,ZFt=W0e,JFt=K0e,XFt=Y0e,QFt=Z0e,$Ft=J0e,ejt=X0e,tjt=Q0e,njt=$0e,rjt=exe,ijt=txe,sjt=nxe,ojt=rxe,ajt=ixe,cjt=sxe,ujt=oxe,ljt=axe,djt=cxe,fjt=uxe,pjt=lxe,hjt=dxe,mjt=fxe,gjt=pxe,yjt=hxe,Sjt=mxe,bjt=gxe,Ejt=yxe,_jt=Sxe,Tjt=bxe,vjt=Exe,Rjt=_xe,Ajt=Txe,wjt=vxe,kjt=Rxe,Ijt=Axe,xjt=wxe,Ojt=kxe,Pjt=Ixe,Njt=xxe,Cjt=Oxe,Mjt=Pxe,Djt=Nxe,Ljt=Cxe,Ujt=Mxe,Fjt=Dxe,jjt=Lxe,Hjt=Uxe,qjt=Fxe,Bjt=jxe,zjt=Hxe,Gjt=qxe,Vjt=Bxe,Wjt=zxe,Kjt=Gxe,Yjt=Vxe,Zjt=Wxe,Jjt=Kxe,Xjt=Yxe,Qjt=Zxe,$jt=Jxe,eHt=Xxe,tHt=Qxe,nHt=$xe,rHt=eOe,iHt=tOe,sHt=nOe,b7=rOe,oHt=iOe,aHt=sOe,cHt=oOe,uHt=aOe,lHt=cOe,dHt=uOe,fHt=lOe,pHt=dOe,hHt=fOe,mHt=ws([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,lOe,dOe,fOe]),pOe="alibaba_cloud",hOe="aws",mOe="azure",gOe="gcp",gHt=pOe,yHt=hOe,SHt=mOe,bHt=gOe,EHt=ws([pOe,hOe,mOe,gOe]),yOe="alibaba_cloud_ecs",SOe="alibaba_cloud_fc",bOe="aws_ec2",EOe="aws_ecs",_Oe="aws_eks",TOe="aws_lambda",vOe="aws_elastic_beanstalk",ROe="azure_vm",AOe="azure_container_instances",wOe="azure_aks",kOe="azure_functions",IOe="azure_app_service",xOe="gcp_compute_engine",OOe="gcp_cloud_run",POe="gcp_kubernetes_engine",NOe="gcp_cloud_functions",COe="gcp_app_engine",_Ht=yOe,THt=SOe,vHt=bOe,RHt=EOe,AHt=_Oe,wHt=TOe,kHt=vOe,IHt=ROe,xHt=AOe,OHt=wOe,PHt=kOe,NHt=IOe,CHt=xOe,MHt=OOe,DHt=POe,LHt=NOe,UHt=COe,FHt=ws([yOe,SOe,bOe,EOe,_Oe,TOe,vOe,ROe,AOe,wOe,kOe,IOe,xOe,OOe,POe,NOe,COe]),MOe="ec2",DOe="fargate",jHt=MOe,HHt=DOe,qHt=ws([MOe,DOe]),LOe="amd64",UOe="arm32",FOe="arm64",jOe="ia64",HOe="ppc32",qOe="ppc64",BOe="x86",BHt=LOe,zHt=UOe,GHt=FOe,VHt=jOe,WHt=HOe,KHt=qOe,YHt=BOe,ZHt=ws([LOe,UOe,FOe,jOe,HOe,qOe,BOe]),zOe="windows",GOe="linux",VOe="darwin",WOe="freebsd",KOe="netbsd",YOe="openbsd",ZOe="dragonflybsd",JOe="hpux",XOe="aix",QOe="solaris",$Oe="z_os",JHt=zOe,XHt=GOe,QHt=VOe,$Ht=WOe,eqt=KOe,tqt=YOe,nqt=ZOe,rqt=JOe,iqt=XOe,sqt=QOe,oqt=$Oe,aqt=ws([zOe,GOe,VOe,WOe,KOe,YOe,ZOe,JOe,XOe,QOe,$Oe]),ePe="cpp",tPe="dotnet",nPe="erlang",rPe="go",iPe="java",sPe="nodejs",oPe="php",aPe="python",cPe="ruby",uPe="webjs",cqt=ePe,uqt=tPe,lqt=nPe,dqt=rPe,fqt=iPe,pqt=sPe,hqt=oPe,mqt=aPe,gqt=cPe,yqt=uPe,Sqt=ws([ePe,tPe,nPe,rPe,iPe,sPe,oPe,aPe,cPe,uPe])});var dPe=v(()=>{lPe()});var bqt,Eqt,_qt,Tqt,vqt,Rqt,Aqt,wqt,kqt,Iqt,xqt,Oqt,Pqt,Nqt,Cqt,Mqt,Dqt,Lqt,Uqt,Fqt,jqt,Hqt,qqt,Bqt,zqt,E7,_7,Gqt,yR,Vqt,T7,v7,Wqt,SE,Kqt,Yqt,Zqt,Jqt,Xqt,Qqt,$qt,eBt,Vyr,Wyr,R7,tBt,nBt,rBt,iBt,sBt,oBt,bE,aBt,cBt,uBt,Kyr,lBt,dBt,fBt,pBt,Yyr,hBt,mBt,gBt,yBt,lm,dm,SBt,bBt,EBt,_Bt,TBt,vBt,RBt,ABt,wBt,Zyr,kBt,IBt,xBt,OBt,PBt,NBt,A7,w7,CBt,k7,I7,MBt,DBt,Jyr,Xyr,LBt,UBt,FBt,jBt,HBt,qBt,BBt,zBt,Qyr,GBt,x7,O7,VBt,P7,WBt,N7,KBt,YBt,ZBt,JBt,XBt,QBt,$Bt,ezt,tzt,$yr,nzt,rzt,eSr,izt,szt,tSr,ozt,azt,czt,uzt,lzt,dzt,fzt,pzt,py,hzt,mzt,gzt,C7,fPe=v(()=>{bqt="aspnetcore.diagnostics.exception.result",Eqt="aborted",_qt="handled",Tqt="skipped",vqt="unhandled",Rqt="aspnetcore.diagnostics.handler.type",Aqt="aspnetcore.rate_limiting.policy",wqt="aspnetcore.rate_limiting.result",kqt="acquired",Iqt="endpoint_limiter",xqt="global_limiter",Oqt="request_canceled",Pqt="aspnetcore.request.is_unhandled",Nqt="aspnetcore.routing.is_fallback",Cqt="aspnetcore.routing.match_status",Mqt="failure",Dqt="success",Lqt="aspnetcore.user.is_authenticated",Uqt="client.address",Fqt="client.port",jqt="code.column.number",Hqt="code.file.path",qqt="code.function.name",Bqt="code.line.number",zqt="code.stacktrace",E7="db.collection.name",_7="db.namespace",Gqt="db.operation.batch.size",yR="db.operation.name",Vqt="db.query.summary",T7="db.query.text",v7="db.response.status_code",Wqt="db.stored_procedure.name",SE="db.system.name",Kqt="mariadb",Yqt="microsoft.sql_server",Zqt="mysql",Jqt="postgresql",Xqt="dotnet.gc.heap.generation",Qqt="gen0",$qt="gen1",eBt="gen2",Vyr="loh",Wyr="poh",R7="error.type",tBt="_OTHER",nBt="exception.escaped",rBt="exception.message",iBt="exception.stacktrace",sBt="exception.type",oBt=e=>`http.request.header.${e}`,bE="http.request.method",aBt="_OTHER",cBt="CONNECT",uBt="DELETE",Kyr="GET",lBt="HEAD",dBt="OPTIONS",fBt="PATCH",pBt="POST",Yyr="PUT",hBt="TRACE",mBt="http.request.method_original",gBt="http.request.resend_count",yBt=e=>`http.response.header.${e}`,lm="http.response.status_code",dm="http.route",SBt="jvm.gc.action",bBt="jvm.gc.name",EBt="jvm.memory.pool.name",_Bt="jvm.memory.type",TBt="heap",vBt="non_heap",RBt="jvm.thread.daemon",ABt="jvm.thread.state",wBt="blocked",Zyr="new",kBt="runnable",IBt="terminated",xBt="timed_waiting",OBt="waiting",PBt="network.local.address",NBt="network.local.port",A7="network.peer.address",w7="network.peer.port",CBt="network.protocol.name",k7="network.protocol.version",I7="network.transport",MBt="pipe",DBt="quic",Jyr="tcp",Xyr="udp",LBt="unix",UBt="network.type",FBt="ipv4",jBt="ipv6",HBt="otel.scope.name",qBt="otel.scope.version",BBt="otel.status_code",zBt="ERROR",Qyr="OK",GBt="otel.status_description",x7="server.address",O7="server.port",VBt="service.instance.id",P7="service.name",WBt="service.namespace",N7="service.version",KBt="signalr.connection.status",YBt="app_shutdown",ZBt="normal_closure",JBt="timeout",XBt="signalr.transport",QBt="long_polling",$Bt="server_sent_events",ezt="web_sockets",tzt="telemetry.sdk.language",$yr="cpp",nzt="dotnet",rzt="erlang",eSr="go",izt="java",szt="nodejs",tSr="php",ozt="python",azt="ruby",czt="rust",uzt="swift",lzt="webjs",dzt="telemetry.sdk.name",fzt="telemetry.sdk.version",pzt="url.fragment",py="url.full",hzt="url.path",mzt="url.query",gzt="url.scheme",C7="user_agent.original"});var 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,aGt,cGt,uGt,lGt,dGt,fGt,pGt,pPe=v(()=>{yzt="aspnetcore.diagnostics.exceptions",Szt="aspnetcore.rate_limiting.active_request_leases",bzt="aspnetcore.rate_limiting.queued_requests",Ezt="aspnetcore.rate_limiting.request.time_in_queue",_zt="aspnetcore.rate_limiting.request_lease.duration",Tzt="aspnetcore.rate_limiting.requests",vzt="aspnetcore.routing.match_attempts",Rzt="db.client.operation.duration",Azt="dotnet.assembly.count",wzt="dotnet.exceptions",kzt="dotnet.gc.collections",Izt="dotnet.gc.heap.total_allocated",xzt="dotnet.gc.last_collection.heap.fragmentation.size",Ozt="dotnet.gc.last_collection.heap.size",Pzt="dotnet.gc.last_collection.memory.committed_size",Nzt="dotnet.gc.pause.time",Czt="dotnet.jit.compilation.time",Mzt="dotnet.jit.compiled_il.size",Dzt="dotnet.jit.compiled_methods",Lzt="dotnet.monitor.lock_contentions",Uzt="dotnet.process.cpu.count",Fzt="dotnet.process.cpu.time",jzt="dotnet.process.memory.working_set",Hzt="dotnet.thread_pool.queue.length",qzt="dotnet.thread_pool.thread.count",Bzt="dotnet.thread_pool.work_item.count",zzt="dotnet.timer.count",Gzt="http.client.request.duration",Vzt="http.server.request.duration",Wzt="jvm.class.count",Kzt="jvm.class.loaded",Yzt="jvm.class.unloaded",Zzt="jvm.cpu.count",Jzt="jvm.cpu.recent_utilization",Xzt="jvm.cpu.time",Qzt="jvm.gc.duration",$zt="jvm.memory.committed",eGt="jvm.memory.limit",tGt="jvm.memory.used",nGt="jvm.memory.used_after_last_gc",rGt="jvm.thread.count",iGt="kestrel.active_connections",sGt="kestrel.active_tls_handshakes",oGt="kestrel.connection.duration",aGt="kestrel.queued_connections",cGt="kestrel.queued_requests",uGt="kestrel.rejected_connections",lGt="kestrel.tls_handshake.duration",dGt="kestrel.upgraded_connections",fGt="signalr.server.active_connections",pGt="signalr.server.connection.duration"});var hGt,hPe=v(()=>{hGt="exception"});var Mr={};Ar(Mr,{ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED:()=>Eqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED:()=>_qt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED:()=>Tqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED:()=>vqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED:()=>kqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER:()=>Iqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER:()=>xqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED:()=>Oqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE:()=>Mqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS:()=>Dqt,ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT:()=>bqt,ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE:()=>Rqt,ATTR_ASPNETCORE_RATE_LIMITING_POLICY:()=>Aqt,ATTR_ASPNETCORE_RATE_LIMITING_RESULT:()=>wqt,ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED:()=>Pqt,ATTR_ASPNETCORE_ROUTING_IS_FALLBACK:()=>Nqt,ATTR_ASPNETCORE_ROUTING_MATCH_STATUS:()=>Cqt,ATTR_ASPNETCORE_USER_IS_AUTHENTICATED:()=>Lqt,ATTR_CLIENT_ADDRESS:()=>Uqt,ATTR_CLIENT_PORT:()=>Fqt,ATTR_CODE_COLUMN_NUMBER:()=>jqt,ATTR_CODE_FILE_PATH:()=>Hqt,ATTR_CODE_FUNCTION_NAME:()=>qqt,ATTR_CODE_LINE_NUMBER:()=>Bqt,ATTR_CODE_STACKTRACE:()=>zqt,ATTR_DB_COLLECTION_NAME:()=>E7,ATTR_DB_NAMESPACE:()=>_7,ATTR_DB_OPERATION_BATCH_SIZE:()=>Gqt,ATTR_DB_OPERATION_NAME:()=>yR,ATTR_DB_QUERY_SUMMARY:()=>Vqt,ATTR_DB_QUERY_TEXT:()=>T7,ATTR_DB_RESPONSE_STATUS_CODE:()=>v7,ATTR_DB_STORED_PROCEDURE_NAME:()=>Wqt,ATTR_DB_SYSTEM_NAME:()=>SE,ATTR_DOTNET_GC_HEAP_GENERATION:()=>Xqt,ATTR_ERROR_TYPE:()=>R7,ATTR_EXCEPTION_ESCAPED:()=>nBt,ATTR_EXCEPTION_MESSAGE:()=>rBt,ATTR_EXCEPTION_STACKTRACE:()=>iBt,ATTR_EXCEPTION_TYPE:()=>sBt,ATTR_HTTP_REQUEST_HEADER:()=>oBt,ATTR_HTTP_REQUEST_METHOD:()=>bE,ATTR_HTTP_REQUEST_METHOD_ORIGINAL:()=>mBt,ATTR_HTTP_REQUEST_RESEND_COUNT:()=>gBt,ATTR_HTTP_RESPONSE_HEADER:()=>yBt,ATTR_HTTP_RESPONSE_STATUS_CODE:()=>lm,ATTR_HTTP_ROUTE:()=>dm,ATTR_JVM_GC_ACTION:()=>SBt,ATTR_JVM_GC_NAME:()=>bBt,ATTR_JVM_MEMORY_POOL_NAME:()=>EBt,ATTR_JVM_MEMORY_TYPE:()=>_Bt,ATTR_JVM_THREAD_DAEMON:()=>RBt,ATTR_JVM_THREAD_STATE:()=>ABt,ATTR_NETWORK_LOCAL_ADDRESS:()=>PBt,ATTR_NETWORK_LOCAL_PORT:()=>NBt,ATTR_NETWORK_PEER_ADDRESS:()=>A7,ATTR_NETWORK_PEER_PORT:()=>w7,ATTR_NETWORK_PROTOCOL_NAME:()=>CBt,ATTR_NETWORK_PROTOCOL_VERSION:()=>k7,ATTR_NETWORK_TRANSPORT:()=>I7,ATTR_NETWORK_TYPE:()=>UBt,ATTR_OTEL_SCOPE_NAME:()=>HBt,ATTR_OTEL_SCOPE_VERSION:()=>qBt,ATTR_OTEL_STATUS_CODE:()=>BBt,ATTR_OTEL_STATUS_DESCRIPTION:()=>GBt,ATTR_SERVER_ADDRESS:()=>x7,ATTR_SERVER_PORT:()=>O7,ATTR_SERVICE_INSTANCE_ID:()=>VBt,ATTR_SERVICE_NAME:()=>P7,ATTR_SERVICE_NAMESPACE:()=>WBt,ATTR_SERVICE_VERSION:()=>N7,ATTR_SIGNALR_CONNECTION_STATUS:()=>KBt,ATTR_SIGNALR_TRANSPORT:()=>XBt,ATTR_TELEMETRY_SDK_LANGUAGE:()=>tzt,ATTR_TELEMETRY_SDK_NAME:()=>dzt,ATTR_TELEMETRY_SDK_VERSION:()=>fzt,ATTR_URL_FRAGMENT:()=>pzt,ATTR_URL_FULL:()=>py,ATTR_URL_PATH:()=>hzt,ATTR_URL_QUERY:()=>mzt,ATTR_URL_SCHEME:()=>gzt,ATTR_USER_AGENT_ORIGINAL:()=>C7,AWSECSLAUNCHTYPEVALUES_EC2:()=>jHt,AWSECSLAUNCHTYPEVALUES_FARGATE:()=>HHt,AwsEcsLaunchtypeValues:()=>qHt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS:()=>_Ht,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC:()=>THt,CLOUDPLATFORMVALUES_AWS_EC2:()=>vHt,CLOUDPLATFORMVALUES_AWS_ECS:()=>RHt,CLOUDPLATFORMVALUES_AWS_EKS:()=>AHt,CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK:()=>kHt,CLOUDPLATFORMVALUES_AWS_LAMBDA:()=>wHt,CLOUDPLATFORMVALUES_AZURE_AKS:()=>OHt,CLOUDPLATFORMVALUES_AZURE_APP_SERVICE:()=>NHt,CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES:()=>xHt,CLOUDPLATFORMVALUES_AZURE_FUNCTIONS:()=>PHt,CLOUDPLATFORMVALUES_AZURE_VM:()=>IHt,CLOUDPLATFORMVALUES_GCP_APP_ENGINE:()=>UHt,CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS:()=>LHt,CLOUDPLATFORMVALUES_GCP_CLOUD_RUN:()=>MHt,CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE:()=>CHt,CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE:()=>DHt,CLOUDPROVIDERVALUES_ALIBABA_CLOUD:()=>gHt,CLOUDPROVIDERVALUES_AWS:()=>yHt,CLOUDPROVIDERVALUES_AZURE:()=>SHt,CLOUDPROVIDERVALUES_GCP:()=>bHt,CloudPlatformValues:()=>FHt,CloudProviderValues:()=>EHt,DBCASSANDRACONSISTENCYLEVELVALUES_ALL:()=>tUt,DBCASSANDRACONSISTENCYLEVELVALUES_ANY:()=>uUt,DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM:()=>nUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE:()=>cUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM:()=>iUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL:()=>dUt,DBCASSANDRACONSISTENCYLEVELVALUES_ONE:()=>sUt,DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM:()=>rUt,DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL:()=>lUt,DBCASSANDRACONSISTENCYLEVELVALUES_THREE:()=>aUt,DBCASSANDRACONSISTENCYLEVELVALUES_TWO:()=>oUt,DBSYSTEMVALUES_ADABAS:()=>R1t,DBSYSTEMVALUES_CACHE:()=>v1t,DBSYSTEMVALUES_CASSANDRA:()=>q1t,DBSYSTEMVALUES_CLOUDSCAPE:()=>m1t,DBSYSTEMVALUES_COCKROACHDB:()=>$1t,DBSYSTEMVALUES_COLDFUSION:()=>H1t,DBSYSTEMVALUES_COSMOSDB:()=>K1t,DBSYSTEMVALUES_COUCHBASE:()=>V1t,DBSYSTEMVALUES_COUCHDB:()=>W1t,DBSYSTEMVALUES_DB2:()=>d1t,DBSYSTEMVALUES_DERBY:()=>w1t,DBSYSTEMVALUES_DYNAMODB:()=>Y1t,DBSYSTEMVALUES_EDB:()=>T1t,DBSYSTEMVALUES_ELASTICSEARCH:()=>X1t,DBSYSTEMVALUES_FILEMAKER:()=>k1t,DBSYSTEMVALUES_FIREBIRD:()=>A1t,DBSYSTEMVALUES_FIRSTSQL:()=>_1t,DBSYSTEMVALUES_GEODE:()=>J1t,DBSYSTEMVALUES_H2:()=>j1t,DBSYSTEMVALUES_HANADB:()=>b1t,DBSYSTEMVALUES_HBASE:()=>B1t,DBSYSTEMVALUES_HIVE:()=>h1t,DBSYSTEMVALUES_HSQLDB:()=>g1t,DBSYSTEMVALUES_INFORMIX:()=>I1t,DBSYSTEMVALUES_INGRES:()=>E1t,DBSYSTEMVALUES_INSTANTDB:()=>x1t,DBSYSTEMVALUES_INTERBASE:()=>O1t,DBSYSTEMVALUES_MARIADB:()=>P1t,DBSYSTEMVALUES_MAXDB:()=>S1t,DBSYSTEMVALUES_MEMCACHED:()=>Q1t,DBSYSTEMVALUES_MONGODB:()=>z1t,DBSYSTEMVALUES_MSSQL:()=>c1t,DBSYSTEMVALUES_MYSQL:()=>u1t,DBSYSTEMVALUES_NEO4J:()=>Z1t,DBSYSTEMVALUES_NETEZZA:()=>N1t,DBSYSTEMVALUES_ORACLE:()=>l1t,DBSYSTEMVALUES_OTHER_SQL:()=>a1t,DBSYSTEMVALUES_PERVASIVE:()=>C1t,DBSYSTEMVALUES_POINTBASE:()=>M1t,DBSYSTEMVALUES_POSTGRESQL:()=>f1t,DBSYSTEMVALUES_PROGRESS:()=>y1t,DBSYSTEMVALUES_REDIS:()=>G1t,DBSYSTEMVALUES_REDSHIFT:()=>p1t,DBSYSTEMVALUES_SQLITE:()=>D1t,DBSYSTEMVALUES_SYBASE:()=>L1t,DBSYSTEMVALUES_TERADATA:()=>U1t,DBSYSTEMVALUES_VERTICA:()=>F1t,DB_SYSTEM_NAME_VALUE_MARIADB:()=>Kqt,DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER:()=>Yqt,DB_SYSTEM_NAME_VALUE_MYSQL:()=>Zqt,DB_SYSTEM_NAME_VALUE_POSTGRESQL:()=>Jqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN0:()=>Qqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN1:()=>$qt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN2:()=>eBt,DOTNET_GC_HEAP_GENERATION_VALUE_LOH:()=>Vyr,DOTNET_GC_HEAP_GENERATION_VALUE_POH:()=>Wyr,DbCassandraConsistencyLevelValues:()=>fUt,DbSystemValues:()=>eUt,ERROR_TYPE_VALUE_OTHER:()=>tBt,EVENT_EXCEPTION:()=>hGt,FAASDOCUMENTOPERATIONVALUES_DELETE:()=>_Ut,FAASDOCUMENTOPERATIONVALUES_EDIT:()=>EUt,FAASDOCUMENTOPERATIONVALUES_INSERT:()=>bUt,FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD:()=>vUt,FAASINVOKEDPROVIDERVALUES_AWS:()=>RUt,FAASINVOKEDPROVIDERVALUES_AZURE:()=>AUt,FAASINVOKEDPROVIDERVALUES_GCP:()=>wUt,FAASTRIGGERVALUES_DATASOURCE:()=>pUt,FAASTRIGGERVALUES_HTTP:()=>hUt,FAASTRIGGERVALUES_OTHER:()=>yUt,FAASTRIGGERVALUES_PUBSUB:()=>mUt,FAASTRIGGERVALUES_TIMER:()=>gUt,FaasDocumentOperationValues:()=>TUt,FaasInvokedProviderValues:()=>kUt,FaasTriggerValues:()=>SUt,HOSTARCHVALUES_AMD64:()=>BHt,HOSTARCHVALUES_ARM32:()=>zHt,HOSTARCHVALUES_ARM64:()=>GHt,HOSTARCHVALUES_IA64:()=>VHt,HOSTARCHVALUES_PPC32:()=>WHt,HOSTARCHVALUES_PPC64:()=>KHt,HOSTARCHVALUES_X86:()=>YHt,HTTPFLAVORVALUES_HTTP_1_0:()=>lFt,HTTPFLAVORVALUES_HTTP_1_1:()=>dFt,HTTPFLAVORVALUES_HTTP_2_0:()=>fFt,HTTPFLAVORVALUES_QUIC:()=>hFt,HTTPFLAVORVALUES_SPDY:()=>pFt,HTTP_REQUEST_METHOD_VALUE_CONNECT:()=>cBt,HTTP_REQUEST_METHOD_VALUE_DELETE:()=>uBt,HTTP_REQUEST_METHOD_VALUE_GET:()=>Kyr,HTTP_REQUEST_METHOD_VALUE_HEAD:()=>lBt,HTTP_REQUEST_METHOD_VALUE_OPTIONS:()=>dBt,HTTP_REQUEST_METHOD_VALUE_OTHER:()=>aBt,HTTP_REQUEST_METHOD_VALUE_PATCH:()=>fBt,HTTP_REQUEST_METHOD_VALUE_POST:()=>pBt,HTTP_REQUEST_METHOD_VALUE_PUT:()=>Yyr,HTTP_REQUEST_METHOD_VALUE_TRACE:()=>hBt,HostArchValues:()=>ZHt,HttpFlavorValues:()=>mFt,JVM_MEMORY_TYPE_VALUE_HEAP:()=>TBt,JVM_MEMORY_TYPE_VALUE_NON_HEAP:()=>vBt,JVM_THREAD_STATE_VALUE_BLOCKED:()=>wBt,JVM_THREAD_STATE_VALUE_NEW:()=>Zyr,JVM_THREAD_STATE_VALUE_RUNNABLE:()=>kBt,JVM_THREAD_STATE_VALUE_TERMINATED:()=>IBt,JVM_THREAD_STATE_VALUE_TIMED_WAITING:()=>xBt,JVM_THREAD_STATE_VALUE_WAITING:()=>OBt,MESSAGETYPEVALUES_RECEIVED:()=>qFt,MESSAGETYPEVALUES_SENT:()=>HFt,MESSAGINGDESTINATIONKINDVALUES_QUEUE:()=>gFt,MESSAGINGDESTINATIONKINDVALUES_TOPIC:()=>yFt,MESSAGINGOPERATIONVALUES_PROCESS:()=>EFt,MESSAGINGOPERATIONVALUES_RECEIVE:()=>bFt,METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS:()=>yzt,METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES:()=>Szt,METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS:()=>bzt,METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS:()=>Tzt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION:()=>_zt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE:()=>Ezt,METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS:()=>vzt,METRIC_DB_CLIENT_OPERATION_DURATION:()=>Rzt,METRIC_DOTNET_ASSEMBLY_COUNT:()=>Azt,METRIC_DOTNET_EXCEPTIONS:()=>wzt,METRIC_DOTNET_GC_COLLECTIONS:()=>kzt,METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED:()=>Izt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE:()=>xzt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE:()=>Ozt,METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE:()=>Pzt,METRIC_DOTNET_GC_PAUSE_TIME:()=>Nzt,METRIC_DOTNET_JIT_COMPILATION_TIME:()=>Czt,METRIC_DOTNET_JIT_COMPILED_IL_SIZE:()=>Mzt,METRIC_DOTNET_JIT_COMPILED_METHODS:()=>Dzt,METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS:()=>Lzt,METRIC_DOTNET_PROCESS_CPU_COUNT:()=>Uzt,METRIC_DOTNET_PROCESS_CPU_TIME:()=>Fzt,METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET:()=>jzt,METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH:()=>Hzt,METRIC_DOTNET_THREAD_POOL_THREAD_COUNT:()=>qzt,METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT:()=>Bzt,METRIC_DOTNET_TIMER_COUNT:()=>zzt,METRIC_HTTP_CLIENT_REQUEST_DURATION:()=>Gzt,METRIC_HTTP_SERVER_REQUEST_DURATION:()=>Vzt,METRIC_JVM_CLASS_COUNT:()=>Wzt,METRIC_JVM_CLASS_LOADED:()=>Kzt,METRIC_JVM_CLASS_UNLOADED:()=>Yzt,METRIC_JVM_CPU_COUNT:()=>Zzt,METRIC_JVM_CPU_RECENT_UTILIZATION:()=>Jzt,METRIC_JVM_CPU_TIME:()=>Xzt,METRIC_JVM_GC_DURATION:()=>Qzt,METRIC_JVM_MEMORY_COMMITTED:()=>$zt,METRIC_JVM_MEMORY_LIMIT:()=>eGt,METRIC_JVM_MEMORY_USED:()=>tGt,METRIC_JVM_MEMORY_USED_AFTER_LAST_GC:()=>nGt,METRIC_JVM_THREAD_COUNT:()=>rGt,METRIC_KESTREL_ACTIVE_CONNECTIONS:()=>iGt,METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES:()=>sGt,METRIC_KESTREL_CONNECTION_DURATION:()=>oGt,METRIC_KESTREL_QUEUED_CONNECTIONS:()=>aGt,METRIC_KESTREL_QUEUED_REQUESTS:()=>cGt,METRIC_KESTREL_REJECTED_CONNECTIONS:()=>uGt,METRIC_KESTREL_TLS_HANDSHAKE_DURATION:()=>lGt,METRIC_KESTREL_UPGRADED_CONNECTIONS:()=>dGt,METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS:()=>fGt,METRIC_SIGNALR_SERVER_CONNECTION_DURATION:()=>pGt,MessageTypeValues:()=>BFt,MessagingDestinationKindValues:()=>SFt,MessagingOperationValues:()=>_Ft,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA:()=>VUt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT:()=>YUt,NETHOSTCONNECTIONSUBTYPEVALUES_EDGE:()=>zUt,NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD:()=>tFt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0:()=>WUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A:()=>KUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B:()=>$Ut,NETHOSTCONNECTIONSUBTYPEVALUES_GPRS:()=>BUt,NETHOSTCONNECTIONSUBTYPEVALUES_GSM:()=>rFt,NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA:()=>ZUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPA:()=>XUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP:()=>nFt,NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA:()=>JUt,NETHOSTCONNECTIONSUBTYPEVALUES_IDEN:()=>QUt,NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN:()=>sFt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE:()=>eFt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA:()=>cFt,NETHOSTCONNECTIONSUBTYPEVALUES_NR:()=>oFt,NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA:()=>aFt,NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA:()=>iFt,NETHOSTCONNECTIONSUBTYPEVALUES_UMTS:()=>GUt,NETHOSTCONNECTIONTYPEVALUES_CELL:()=>FUt,NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE:()=>jUt,NETHOSTCONNECTIONTYPEVALUES_UNKNOWN:()=>HUt,NETHOSTCONNECTIONTYPEVALUES_WIFI:()=>LUt,NETHOSTCONNECTIONTYPEVALUES_WIRED:()=>UUt,NETTRANSPORTVALUES_INPROC:()=>CUt,NETTRANSPORTVALUES_IP:()=>OUt,NETTRANSPORTVALUES_IP_TCP:()=>IUt,NETTRANSPORTVALUES_IP_UDP:()=>xUt,NETTRANSPORTVALUES_OTHER:()=>MUt,NETTRANSPORTVALUES_PIPE:()=>NUt,NETTRANSPORTVALUES_UNIX:()=>PUt,NETWORK_TRANSPORT_VALUE_PIPE:()=>MBt,NETWORK_TRANSPORT_VALUE_QUIC:()=>DBt,NETWORK_TRANSPORT_VALUE_TCP:()=>Jyr,NETWORK_TRANSPORT_VALUE_UDP:()=>Xyr,NETWORK_TRANSPORT_VALUE_UNIX:()=>LBt,NETWORK_TYPE_VALUE_IPV4:()=>FBt,NETWORK_TYPE_VALUE_IPV6:()=>jBt,NetHostConnectionSubtypeValues:()=>uFt,NetHostConnectionTypeValues:()=>qUt,NetTransportValues:()=>DUt,OSTYPEVALUES_AIX:()=>iqt,OSTYPEVALUES_DARWIN:()=>QHt,OSTYPEVALUES_DRAGONFLYBSD:()=>nqt,OSTYPEVALUES_FREEBSD:()=>$Ht,OSTYPEVALUES_HPUX:()=>rqt,OSTYPEVALUES_LINUX:()=>XHt,OSTYPEVALUES_NETBSD:()=>eqt,OSTYPEVALUES_OPENBSD:()=>tqt,OSTYPEVALUES_SOLARIS:()=>sqt,OSTYPEVALUES_WINDOWS:()=>JHt,OSTYPEVALUES_Z_OS:()=>oqt,OTEL_STATUS_CODE_VALUE_ERROR:()=>zBt,OTEL_STATUS_CODE_VALUE_OK:()=>Qyr,OsTypeValues:()=>aqt,RPCGRPCSTATUSCODEVALUES_ABORTED:()=>NFt,RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS:()=>IFt,RPCGRPCSTATUSCODEVALUES_CANCELLED:()=>vFt,RPCGRPCSTATUSCODEVALUES_DATA_LOSS:()=>UFt,RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED:()=>wFt,RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION:()=>PFt,RPCGRPCSTATUSCODEVALUES_INTERNAL:()=>DFt,RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT:()=>AFt,RPCGRPCSTATUSCODEVALUES_NOT_FOUND:()=>kFt,RPCGRPCSTATUSCODEVALUES_OK:()=>TFt,RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE:()=>CFt,RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED:()=>xFt,RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED:()=>OFt,RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED:()=>FFt,RPCGRPCSTATUSCODEVALUES_UNAVAILABLE:()=>LFt,RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED:()=>MFt,RPCGRPCSTATUSCODEVALUES_UNKNOWN:()=>RFt,RpcGrpcStatusCodeValues:()=>jFt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET:()=>SLt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:()=>OLt,SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ:()=>mLt,SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY:()=>dLt,SEMATTRS_AWS_DYNAMODB_COUNT:()=>ILt,SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE:()=>vLt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:()=>_Lt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:()=>PLt,SEMATTRS_AWS_DYNAMODB_INDEX_NAME:()=>bLt,SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS:()=>fLt,SEMATTRS_AWS_DYNAMODB_LIMIT:()=>yLt,SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:()=>TLt,SEMATTRS_AWS_DYNAMODB_PROJECTION:()=>gLt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:()=>pLt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:()=>hLt,SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT:()=>xLt,SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD:()=>ALt,SEMATTRS_AWS_DYNAMODB_SEGMENT:()=>wLt,SEMATTRS_AWS_DYNAMODB_SELECT:()=>ELt,SEMATTRS_AWS_DYNAMODB_TABLE_COUNT:()=>RLt,SEMATTRS_AWS_DYNAMODB_TABLE_NAMES:()=>lLt,SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS:()=>kLt,SEMATTRS_AWS_LAMBDA_INVOKED_ARN:()=>nDt,SEMATTRS_CODE_FILEPATH:()=>eLt,SEMATTRS_CODE_FUNCTION:()=>QDt,SEMATTRS_CODE_LINENO:()=>tLt,SEMATTRS_CODE_NAMESPACE:()=>$Dt,SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL:()=>dDt,SEMATTRS_DB_CASSANDRA_COORDINATOR_DC:()=>gDt,SEMATTRS_DB_CASSANDRA_COORDINATOR_ID:()=>mDt,SEMATTRS_DB_CASSANDRA_IDEMPOTENCE:()=>pDt,SEMATTRS_DB_CASSANDRA_KEYSPACE:()=>uDt,SEMATTRS_DB_CASSANDRA_PAGE_SIZE:()=>lDt,SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:()=>hDt,SEMATTRS_DB_CASSANDRA_TABLE:()=>fDt,SEMATTRS_DB_CONNECTION_STRING:()=>rDt,SEMATTRS_DB_HBASE_NAMESPACE:()=>yDt,SEMATTRS_DB_JDBC_DRIVER_CLASSNAME:()=>sDt,SEMATTRS_DB_MONGODB_COLLECTION:()=>bDt,SEMATTRS_DB_MSSQL_INSTANCE_NAME:()=>cDt,SEMATTRS_DB_NAME:()=>oDt,SEMATTRS_DB_OPERATION:()=>aDt,SEMATTRS_DB_REDIS_DATABASE_INDEX:()=>SDt,SEMATTRS_DB_SQL_TABLE:()=>EDt,SEMATTRS_DB_STATEMENT:()=>a7,SEMATTRS_DB_SYSTEM:()=>o7,SEMATTRS_DB_USER:()=>iDt,SEMATTRS_ENDUSER_ID:()=>KDt,SEMATTRS_ENDUSER_ROLE:()=>YDt,SEMATTRS_ENDUSER_SCOPE:()=>ZDt,SEMATTRS_EXCEPTION_ESCAPED:()=>RDt,SEMATTRS_EXCEPTION_MESSAGE:()=>TDt,SEMATTRS_EXCEPTION_STACKTRACE:()=>vDt,SEMATTRS_EXCEPTION_TYPE:()=>_Dt,SEMATTRS_FAAS_COLDSTART:()=>NDt,SEMATTRS_FAAS_CRON:()=>PDt,SEMATTRS_FAAS_DOCUMENT_COLLECTION:()=>wDt,SEMATTRS_FAAS_DOCUMENT_NAME:()=>xDt,SEMATTRS_FAAS_DOCUMENT_OPERATION:()=>kDt,SEMATTRS_FAAS_DOCUMENT_TIME:()=>IDt,SEMATTRS_FAAS_EXECUTION:()=>ADt,SEMATTRS_FAAS_INVOKED_NAME:()=>CDt,SEMATTRS_FAAS_INVOKED_PROVIDER:()=>MDt,SEMATTRS_FAAS_INVOKED_REGION:()=>DDt,SEMATTRS_FAAS_TIME:()=>ODt,SEMATTRS_FAAS_TRIGGER:()=>c7,SEMATTRS_HTTP_CLIENT_IP:()=>uLt,SEMATTRS_HTTP_FLAVOR:()=>iLt,SEMATTRS_HTTP_HOST:()=>nLt,SEMATTRS_HTTP_METHOD:()=>_O,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH:()=>oLt,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:()=>aLt,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH:()=>p7,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:()=>h7,SEMATTRS_HTTP_ROUTE:()=>m7,SEMATTRS_HTTP_SCHEME:()=>rLt,SEMATTRS_HTTP_SERVER_NAME:()=>cLt,SEMATTRS_HTTP_STATUS_CODE:()=>yE,SEMATTRS_HTTP_TARGET:()=>f7,SEMATTRS_HTTP_URL:()=>gR,SEMATTRS_HTTP_USER_AGENT:()=>sLt,SEMATTRS_MESSAGE_COMPRESSED_SIZE:()=>i1t,SEMATTRS_MESSAGE_ID:()=>r1t,SEMATTRS_MESSAGE_TYPE:()=>n1t,SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE:()=>s1t,SEMATTRS_MESSAGING_CONSUMER_ID:()=>zLt,SEMATTRS_MESSAGING_CONVERSATION_ID:()=>jLt,SEMATTRS_MESSAGING_DESTINATION:()=>NLt,SEMATTRS_MESSAGING_DESTINATION_KIND:()=>CLt,SEMATTRS_MESSAGING_KAFKA_CLIENT_ID:()=>KLt,SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP:()=>WLt,SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY:()=>VLt,SEMATTRS_MESSAGING_KAFKA_PARTITION:()=>YLt,SEMATTRS_MESSAGING_KAFKA_TOMBSTONE:()=>ZLt,SEMATTRS_MESSAGING_MESSAGE_ID:()=>FLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:()=>qLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:()=>HLt,SEMATTRS_MESSAGING_OPERATION:()=>BLt,SEMATTRS_MESSAGING_PROTOCOL:()=>DLt,SEMATTRS_MESSAGING_PROTOCOL_VERSION:()=>LLt,SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY:()=>GLt,SEMATTRS_MESSAGING_SYSTEM:()=>g7,SEMATTRS_MESSAGING_TEMP_DESTINATION:()=>MLt,SEMATTRS_MESSAGING_URL:()=>ULt,SEMATTRS_NET_HOST_CARRIER_ICC:()=>VDt,SEMATTRS_NET_HOST_CARRIER_MCC:()=>zDt,SEMATTRS_NET_HOST_CARRIER_MNC:()=>GDt,SEMATTRS_NET_HOST_CARRIER_NAME:()=>BDt,SEMATTRS_NET_HOST_CONNECTION_SUBTYPE:()=>qDt,SEMATTRS_NET_HOST_CONNECTION_TYPE:()=>HDt,SEMATTRS_NET_HOST_IP:()=>l7,SEMATTRS_NET_HOST_NAME:()=>jDt,SEMATTRS_NET_HOST_PORT:()=>d7,SEMATTRS_NET_PEER_IP:()=>u7,SEMATTRS_NET_PEER_NAME:()=>FDt,SEMATTRS_NET_PEER_PORT:()=>UDt,SEMATTRS_NET_TRANSPORT:()=>LDt,SEMATTRS_PEER_SERVICE:()=>WDt,SEMATTRS_RPC_GRPC_STATUS_CODE:()=>S7,SEMATTRS_RPC_JSONRPC_ERROR_CODE:()=>e1t,SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE:()=>t1t,SEMATTRS_RPC_JSONRPC_REQUEST_ID:()=>$Lt,SEMATTRS_RPC_JSONRPC_VERSION:()=>QLt,SEMATTRS_RPC_METHOD:()=>XLt,SEMATTRS_RPC_SERVICE:()=>y7,SEMATTRS_RPC_SYSTEM:()=>JLt,SEMATTRS_THREAD_ID:()=>JDt,SEMATTRS_THREAD_NAME:()=>XDt,SEMRESATTRS_AWS_ECS_CLUSTER_ARN:()=>ZFt,SEMRESATTRS_AWS_ECS_CONTAINER_ARN:()=>YFt,SEMRESATTRS_AWS_ECS_LAUNCHTYPE:()=>JFt,SEMRESATTRS_AWS_ECS_TASK_ARN:()=>XFt,SEMRESATTRS_AWS_ECS_TASK_FAMILY:()=>QFt,SEMRESATTRS_AWS_ECS_TASK_REVISION:()=>$Ft,SEMRESATTRS_AWS_EKS_CLUSTER_ARN:()=>ejt,SEMRESATTRS_AWS_LOG_GROUP_ARNS:()=>njt,SEMRESATTRS_AWS_LOG_GROUP_NAMES:()=>tjt,SEMRESATTRS_AWS_LOG_STREAM_ARNS:()=>ijt,SEMRESATTRS_AWS_LOG_STREAM_NAMES:()=>rjt,SEMRESATTRS_CLOUD_ACCOUNT_ID:()=>GFt,SEMRESATTRS_CLOUD_AVAILABILITY_ZONE:()=>WFt,SEMRESATTRS_CLOUD_PLATFORM:()=>KFt,SEMRESATTRS_CLOUD_PROVIDER:()=>zFt,SEMRESATTRS_CLOUD_REGION:()=>VFt,SEMRESATTRS_CONTAINER_ID:()=>ojt,SEMRESATTRS_CONTAINER_IMAGE_NAME:()=>cjt,SEMRESATTRS_CONTAINER_IMAGE_TAG:()=>ujt,SEMRESATTRS_CONTAINER_NAME:()=>sjt,SEMRESATTRS_CONTAINER_RUNTIME:()=>ajt,SEMRESATTRS_DEPLOYMENT_ENVIRONMENT:()=>ljt,SEMRESATTRS_DEVICE_ID:()=>djt,SEMRESATTRS_DEVICE_MODEL_IDENTIFIER:()=>fjt,SEMRESATTRS_DEVICE_MODEL_NAME:()=>pjt,SEMRESATTRS_FAAS_ID:()=>mjt,SEMRESATTRS_FAAS_INSTANCE:()=>yjt,SEMRESATTRS_FAAS_MAX_MEMORY:()=>Sjt,SEMRESATTRS_FAAS_NAME:()=>hjt,SEMRESATTRS_FAAS_VERSION:()=>gjt,SEMRESATTRS_HOST_ARCH:()=>Tjt,SEMRESATTRS_HOST_ID:()=>bjt,SEMRESATTRS_HOST_IMAGE_ID:()=>Rjt,SEMRESATTRS_HOST_IMAGE_NAME:()=>vjt,SEMRESATTRS_HOST_IMAGE_VERSION:()=>Ajt,SEMRESATTRS_HOST_NAME:()=>Ejt,SEMRESATTRS_HOST_TYPE:()=>_jt,SEMRESATTRS_K8S_CLUSTER_NAME:()=>wjt,SEMRESATTRS_K8S_CONTAINER_NAME:()=>Njt,SEMRESATTRS_K8S_CRONJOB_NAME:()=>Gjt,SEMRESATTRS_K8S_CRONJOB_UID:()=>zjt,SEMRESATTRS_K8S_DAEMONSET_NAME:()=>Hjt,SEMRESATTRS_K8S_DAEMONSET_UID:()=>jjt,SEMRESATTRS_K8S_DEPLOYMENT_NAME:()=>Ljt,SEMRESATTRS_K8S_DEPLOYMENT_UID:()=>Djt,SEMRESATTRS_K8S_JOB_NAME:()=>Bjt,SEMRESATTRS_K8S_JOB_UID:()=>qjt,SEMRESATTRS_K8S_NAMESPACE_NAME:()=>xjt,SEMRESATTRS_K8S_NODE_NAME:()=>kjt,SEMRESATTRS_K8S_NODE_UID:()=>Ijt,SEMRESATTRS_K8S_POD_NAME:()=>Pjt,SEMRESATTRS_K8S_POD_UID:()=>Ojt,SEMRESATTRS_K8S_REPLICASET_NAME:()=>Mjt,SEMRESATTRS_K8S_REPLICASET_UID:()=>Cjt,SEMRESATTRS_K8S_STATEFULSET_NAME:()=>Fjt,SEMRESATTRS_K8S_STATEFULSET_UID:()=>Ujt,SEMRESATTRS_OS_DESCRIPTION:()=>Wjt,SEMRESATTRS_OS_NAME:()=>Kjt,SEMRESATTRS_OS_TYPE:()=>Vjt,SEMRESATTRS_OS_VERSION:()=>Yjt,SEMRESATTRS_PROCESS_COMMAND:()=>Qjt,SEMRESATTRS_PROCESS_COMMAND_ARGS:()=>eHt,SEMRESATTRS_PROCESS_COMMAND_LINE:()=>$jt,SEMRESATTRS_PROCESS_EXECUTABLE_NAME:()=>Jjt,SEMRESATTRS_PROCESS_EXECUTABLE_PATH:()=>Xjt,SEMRESATTRS_PROCESS_OWNER:()=>tHt,SEMRESATTRS_PROCESS_PID:()=>Zjt,SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION:()=>iHt,SEMRESATTRS_PROCESS_RUNTIME_NAME:()=>nHt,SEMRESATTRS_PROCESS_RUNTIME_VERSION:()=>rHt,SEMRESATTRS_SERVICE_INSTANCE_ID:()=>oHt,SEMRESATTRS_SERVICE_NAME:()=>sHt,SEMRESATTRS_SERVICE_NAMESPACE:()=>b7,SEMRESATTRS_SERVICE_VERSION:()=>aHt,SEMRESATTRS_TELEMETRY_AUTO_VERSION:()=>dHt,SEMRESATTRS_TELEMETRY_SDK_LANGUAGE:()=>uHt,SEMRESATTRS_TELEMETRY_SDK_NAME:()=>cHt,SEMRESATTRS_TELEMETRY_SDK_VERSION:()=>lHt,SEMRESATTRS_WEBENGINE_DESCRIPTION:()=>hHt,SEMRESATTRS_WEBENGINE_NAME:()=>fHt,SEMRESATTRS_WEBENGINE_VERSION:()=>pHt,SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN:()=>YBt,SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE:()=>ZBt,SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT:()=>JBt,SIGNALR_TRANSPORT_VALUE_LONG_POLLING:()=>QBt,SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS:()=>$Bt,SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS:()=>ezt,SemanticAttributes:()=>o1t,SemanticResourceAttributes:()=>mHt,TELEMETRYSDKLANGUAGEVALUES_CPP:()=>cqt,TELEMETRYSDKLANGUAGEVALUES_DOTNET:()=>uqt,TELEMETRYSDKLANGUAGEVALUES_ERLANG:()=>lqt,TELEMETRYSDKLANGUAGEVALUES_GO:()=>dqt,TELEMETRYSDKLANGUAGEVALUES_JAVA:()=>fqt,TELEMETRYSDKLANGUAGEVALUES_NODEJS:()=>pqt,TELEMETRYSDKLANGUAGEVALUES_PHP:()=>hqt,TELEMETRYSDKLANGUAGEVALUES_PYTHON:()=>mqt,TELEMETRYSDKLANGUAGEVALUES_RUBY:()=>gqt,TELEMETRYSDKLANGUAGEVALUES_WEBJS:()=>yqt,TELEMETRY_SDK_LANGUAGE_VALUE_CPP:()=>$yr,TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET:()=>nzt,TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG:()=>rzt,TELEMETRY_SDK_LANGUAGE_VALUE_GO:()=>eSr,TELEMETRY_SDK_LANGUAGE_VALUE_JAVA:()=>izt,TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS:()=>szt,TELEMETRY_SDK_LANGUAGE_VALUE_PHP:()=>tSr,TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON:()=>ozt,TELEMETRY_SDK_LANGUAGE_VALUE_RUBY:()=>azt,TELEMETRY_SDK_LANGUAGE_VALUE_RUST:()=>czt,TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT:()=>uzt,TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS:()=>lzt,TelemetrySdkLanguageValues:()=>Sqt});var Nn=v(()=>{j0e();dPe();fPe();pPe();hPe()});var mPe=w(MF=>{"use strict";Object.defineProperty(MF,"__esModule",{value:!0});MF.ATTR_PROCESS_RUNTIME_NAME=void 0;MF.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var gPe=w(LF=>{"use strict";Object.defineProperty(LF,"__esModule",{value:!0});LF.SDK_INFO=void 0;var mGt=YRe(),DF=(Nn(),ke(Mr)),gGt=mPe();LF.SDK_INFO={[DF.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[gGt.ATTR_PROCESS_RUNTIME_NAME]:"node",[DF.ATTR_TELEMETRY_SDK_LANGUAGE]:DF.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[DF.ATTR_TELEMETRY_SDK_VERSION]:mGt.VERSION}});var yPe=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 UF=WRe();Object.defineProperty(za,"getStringFromEnv",{enumerable:!0,get:function(){return UF.getStringFromEnv}});Object.defineProperty(za,"getBooleanFromEnv",{enumerable:!0,get:function(){return UF.getBooleanFromEnv}});Object.defineProperty(za,"getNumberFromEnv",{enumerable:!0,get:function(){return UF.getNumberFromEnv}});Object.defineProperty(za,"getStringListFromEnv",{enumerable:!0,get:function(){return UF.getStringListFromEnv}});var yGt=KRe();Object.defineProperty(za,"_globalThis",{enumerable:!0,get:function(){return yGt._globalThis}});var SGt=gPe();Object.defineProperty(za,"SDK_INFO",{enumerable:!0,get:function(){return SGt.SDK_INFO}});za.otperformance=performance});var M7=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 EE=yPe();Object.defineProperty(Ga,"SDK_INFO",{enumerable:!0,get:function(){return EE.SDK_INFO}});Object.defineProperty(Ga,"_globalThis",{enumerable:!0,get:function(){return EE._globalThis}});Object.defineProperty(Ga,"otperformance",{enumerable:!0,get:function(){return EE.otperformance}});Object.defineProperty(Ga,"getBooleanFromEnv",{enumerable:!0,get:function(){return EE.getBooleanFromEnv}});Object.defineProperty(Ga,"getStringFromEnv",{enumerable:!0,get:function(){return EE.getStringFromEnv}});Object.defineProperty(Ga,"getNumberFromEnv",{enumerable:!0,get:function(){return EE.getNumberFromEnv}});Object.defineProperty(Ga,"getStringListFromEnv",{enumerable:!0,get:function(){return EE.getStringListFromEnv}})});var _Pe=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 FF=M7(),SPe=9,bGt=6,EGt=Math.pow(10,bGt),jF=Math.pow(10,SPe);function TO(e){let t=e/1e3,n=Math.trunc(t),r=Math.round(e%1e3*EGt);return[n,r]}ei.millisToHrTime=TO;function _Gt(){return FF.otperformance.timeOrigin}ei.getTimeOrigin=_Gt;function bPe(e){let t=TO(FF.otperformance.timeOrigin),n=TO(typeof e=="number"?e:FF.otperformance.now());return EPe(t,n)}ei.hrTime=bPe;function TGt(e){if(D7(e))return e;if(typeof e=="number")return e=jF&&(n[1]-=jF,n[0]+=1),n}ei.addHrTimes=EPe});var TPe=w(HF=>{"use strict";Object.defineProperty(HF,"__esModule",{value:!0});HF.unrefTimer=void 0;function xGt(e){typeof e!="number"&&e.unref()}HF.unrefTimer=xGt});var vPe=w(vO=>{"use strict";Object.defineProperty(vO,"__esModule",{value:!0});vO.ExportResultCode=void 0;var OGt;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(OGt=vO.ExportResultCode||(vO.ExportResultCode={}))});var APe=w(qF=>{"use strict";Object.defineProperty(qF,"__esModule",{value:!0});qF.CompositePropagator=void 0;var RPe=(Me(),ke(Ze)),L7=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){RPe.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){RPe.diag.warn(`Failed to extract with ${s.constructor.name}. Err: ${o.message}`)}return i},t)}fields(){return this._fields.slice()}};qF.CompositePropagator=L7});var wPe=w(SR=>{"use strict";Object.defineProperty(SR,"__esModule",{value:!0});SR.validateValue=SR.validateKey=void 0;var U7="[_0-9a-z-*/]",PGt=`[a-z]${U7}{0,255}`,NGt=`[a-z0-9]${U7}{0,240}@[a-z]${U7}{0,13}`,CGt=new RegExp(`^(?:${PGt}|${NGt})$`),MGt=/^[ -~]{0,255}[!-~]$/,DGt=/,|=/;function LGt(e){return CGt.test(e)}SR.validateKey=LGt;function UGt(e){return MGt.test(e)&&!DGt.test(e)}SR.validateValue=UGt});var j7=w(BF=>{"use strict";Object.defineProperty(BF,"__esModule",{value:!0});BF.TraceState=void 0;var kPe=wPe(),IPe=32,FGt=512,xPe=",",OPe="=",F7=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+OPe+this.get(n)),t),[]).join(xPe)}_parse(t){t.length>FGt||(this._internalState=t.split(xPe).reverse().reduce((n,r)=>{let i=r.trim(),s=i.indexOf(OPe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);(0,kPe.validateKey)(o)&&(0,kPe.validateValue)(a)&&n.set(o,a)}return n},new Map),this._internalState.size>IPe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,IPe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};BF.TraceState=F7});var NPe=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 zF=(Me(),ke(Ze)),jGt=EO(),HGt=j7();Va.TRACE_PARENT_HEADER="traceparent";Va.TRACE_STATE_HEADER="tracestate";var qGt="00",BGt="(?!ff)[\\da-f]{2}",zGt="(?![0]{32})[\\da-f]{32}",GGt="(?![0]{16})[\\da-f]{16}",VGt="[\\da-f]{2}",WGt=new RegExp(`^\\s?(${BGt})-(${zGt})-(${GGt})-(${VGt})(-.*)?\\s?$`);function PPe(e){let t=WGt.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}Va.parseTraceParent=PPe;var H7=class{inject(t,n,r){let i=zF.trace.getSpanContext(t);if(!i||(0,jGt.isTracingSuppressed)(t)||!(0,zF.isSpanContextValid)(i))return;let s=`${qGt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||zF.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=PPe(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 HGt.TraceState(typeof c=="string"?c:void 0)}return zF.trace.setSpanContext(t,o)}fields(){return[Va.TRACE_PARENT_HEADER,Va.TRACE_STATE_HEADER]}};Va.W3CTraceContextPropagator=H7});var CPe=w($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});$d.getRPCMetadata=$d.deleteRPCMetadata=$d.setRPCMetadata=$d.RPCType=void 0;var KGt=(Me(),ke(Ze)),q7=(0,KGt.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),YGt;(function(e){e.HTTP="http"})(YGt=$d.RPCType||($d.RPCType={}));function ZGt(e,t){return e.setValue(q7,t)}$d.setRPCMetadata=ZGt;function JGt(e){return e.deleteValue(q7)}$d.deleteRPCMetadata=JGt;function XGt(e){return e.getValue(q7)}$d.getRPCMetadata=XGt});var FPe=w(GF=>{"use strict";Object.defineProperty(GF,"__esModule",{value:!0});GF.isPlainObject=void 0;var QGt="[object Object]",$Gt="[object Null]",e2t="[object Undefined]",t2t=Function.prototype,MPe=t2t.toString,n2t=MPe.call(Object),r2t=Object.getPrototypeOf,DPe=Object.prototype,LPe=DPe.hasOwnProperty,_E=Symbol?Symbol.toStringTag:void 0,UPe=DPe.toString;function i2t(e){if(!s2t(e)||o2t(e)!==QGt)return!1;let t=r2t(e);if(t===null)return!0;let n=LPe.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&MPe.call(n)===n2t}GF.isPlainObject=i2t;function s2t(e){return e!=null&&typeof e=="object"}function o2t(e){return e==null?e===void 0?e2t:$Gt:_E&&_E in Object(e)?a2t(e):c2t(e)}function a2t(e){let t=LPe.call(e,_E),n=e[_E],r=!1;try{e[_E]=void 0,r=!0}catch{}let i=UPe.call(e);return r&&(t?e[_E]=n:delete e[_E]),i}function c2t(e){return UPe.call(e)}});var zPe=w(KF=>{"use strict";Object.defineProperty(KF,"__esModule",{value:!0});KF.merge=void 0;var jPe=FPe(),u2t=20;function l2t(...e){let t=e.shift(),n=new WeakMap;for(;e.length>0;)t=qPe(t,e.shift(),0,n);return t}KF.merge=l2t;function B7(e){return WF(e)?e.slice():e}function qPe(e,t,n=0,r){let i;if(!(n>u2t)){if(n++,VF(e)||VF(t)||BPe(t))i=B7(t);else if(WF(e)){if(i=e.slice(),WF(t))for(let s=0,o=t.length;s"u"?delete i[c]:i[c]=u;else{let l=i[c],d=u;if(HPe(e,c,r)||HPe(t,c,r))delete i[c];else{if(RO(l)&&RO(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]=qPe(i[c],u,n,r)}}}}else i=t;return i}}function HPe(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 d2t(e,t){return!(!(0,jPe.isPlainObject)(e)||!(0,jPe.isPlainObject)(t))}});var GPe=w(bR=>{"use strict";Object.defineProperty(bR,"__esModule",{value:!0});bR.callWithTimeout=bR.TimeoutError=void 0;var YF=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};bR.TimeoutError=YF;function f2t(e,t){let n,r=new Promise(function(s,o){n=setTimeout(function(){o(new YF("Operation timed out."))},t)});return Promise.race([e,r]).then(i=>(clearTimeout(n),i),i=>{throw clearTimeout(n),i})}bR.callWithTimeout=f2t});var WPe=w(ER=>{"use strict";Object.defineProperty(ER,"__esModule",{value:!0});ER.isUrlIgnored=ER.urlMatches=void 0;function VPe(e,t){return typeof t=="string"?e===t:!!e.match(t)}ER.urlMatches=VPe;function p2t(e,t){if(!t)return!1;for(let n of t)if(VPe(e,n))return!0;return!1}ER.isUrlIgnored=p2t});var KPe=w(ZF=>{"use strict";Object.defineProperty(ZF,"__esModule",{value:!0});ZF.Deferred=void 0;var z7=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)}};ZF.Deferred=z7});var YPe=w(JF=>{"use strict";Object.defineProperty(JF,"__esModule",{value:!0});JF.BindOnceFuture=void 0;var h2t=KPe(),G7=class{_isCalled=!1;_deferred=new h2t.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}};JF.BindOnceFuture=G7});var JPe=w(XF=>{"use strict";Object.defineProperty(XF,"__esModule",{value:!0});XF.diagLogLevelFromString=void 0;var fm=(Me(),ke(Ze)),ZPe={ALL:fm.DiagLogLevel.ALL,VERBOSE:fm.DiagLogLevel.VERBOSE,DEBUG:fm.DiagLogLevel.DEBUG,INFO:fm.DiagLogLevel.INFO,WARN:fm.DiagLogLevel.WARN,ERROR:fm.DiagLogLevel.ERROR,NONE:fm.DiagLogLevel.NONE};function m2t(e){if(e==null)return;let t=ZPe[e.toUpperCase()];return t??(fm.diag.warn(`Unknown log level "${e}", expected one of ${Object.keys(ZPe)}, using default`),fm.DiagLogLevel.INFO)}XF.diagLogLevelFromString=m2t});var QPe=w(QF=>{"use strict";Object.defineProperty(QF,"__esModule",{value:!0});QF._export=void 0;var XPe=(Me(),ke(Ze)),g2t=EO();function y2t(e,t){return new Promise(n=>{XPe.context.with((0,g2t.suppressTracing)(XPe.context.active()),()=>{e.export(t,n)})})}QF._export=y2t});var pr=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 S2t=MRe();Object.defineProperty(we,"W3CBaggagePropagator",{enumerable:!0,get:function(){return S2t.W3CBaggagePropagator}});var b2t=DRe();Object.defineProperty(we,"AnchoredClock",{enumerable:!0,get:function(){return b2t.AnchoredClock}});var $Pe=HRe();Object.defineProperty(we,"isAttributeValue",{enumerable:!0,get:function(){return $Pe.isAttributeValue}});Object.defineProperty(we,"sanitizeAttributes",{enumerable:!0,get:function(){return $Pe.sanitizeAttributes}});var eNe=BRe();Object.defineProperty(we,"globalErrorHandler",{enumerable:!0,get:function(){return eNe.globalErrorHandler}});Object.defineProperty(we,"setGlobalErrorHandler",{enumerable:!0,get:function(){return eNe.setGlobalErrorHandler}});var E2t=i7();Object.defineProperty(we,"loggingErrorHandler",{enumerable:!0,get:function(){return E2t.loggingErrorHandler}});var ql=_Pe();Object.defineProperty(we,"addHrTimes",{enumerable:!0,get:function(){return ql.addHrTimes}});Object.defineProperty(we,"getTimeOrigin",{enumerable:!0,get:function(){return ql.getTimeOrigin}});Object.defineProperty(we,"hrTime",{enumerable:!0,get:function(){return ql.hrTime}});Object.defineProperty(we,"hrTimeDuration",{enumerable:!0,get:function(){return ql.hrTimeDuration}});Object.defineProperty(we,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return ql.hrTimeToMicroseconds}});Object.defineProperty(we,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return ql.hrTimeToMilliseconds}});Object.defineProperty(we,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return ql.hrTimeToNanoseconds}});Object.defineProperty(we,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return ql.hrTimeToTimeStamp}});Object.defineProperty(we,"isTimeInput",{enumerable:!0,get:function(){return ql.isTimeInput}});Object.defineProperty(we,"isTimeInputHrTime",{enumerable:!0,get:function(){return ql.isTimeInputHrTime}});Object.defineProperty(we,"millisToHrTime",{enumerable:!0,get:function(){return ql.millisToHrTime}});Object.defineProperty(we,"timeInputToHrTime",{enumerable:!0,get:function(){return ql.timeInputToHrTime}});var _2t=TPe();Object.defineProperty(we,"unrefTimer",{enumerable:!0,get:function(){return _2t.unrefTimer}});var T2t=vPe();Object.defineProperty(we,"ExportResultCode",{enumerable:!0,get:function(){return T2t.ExportResultCode}});var v2t=$8();Object.defineProperty(we,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return v2t.parseKeyPairsIntoRecord}});var TE=M7();Object.defineProperty(we,"SDK_INFO",{enumerable:!0,get:function(){return TE.SDK_INFO}});Object.defineProperty(we,"_globalThis",{enumerable:!0,get:function(){return TE._globalThis}});Object.defineProperty(we,"getStringFromEnv",{enumerable:!0,get:function(){return TE.getStringFromEnv}});Object.defineProperty(we,"getBooleanFromEnv",{enumerable:!0,get:function(){return TE.getBooleanFromEnv}});Object.defineProperty(we,"getNumberFromEnv",{enumerable:!0,get:function(){return TE.getNumberFromEnv}});Object.defineProperty(we,"getStringListFromEnv",{enumerable:!0,get:function(){return TE.getStringListFromEnv}});Object.defineProperty(we,"otperformance",{enumerable:!0,get:function(){return TE.otperformance}});var R2t=APe();Object.defineProperty(we,"CompositePropagator",{enumerable:!0,get:function(){return R2t.CompositePropagator}});var $F=NPe();Object.defineProperty(we,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return $F.TRACE_PARENT_HEADER}});Object.defineProperty(we,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return $F.TRACE_STATE_HEADER}});Object.defineProperty(we,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return $F.W3CTraceContextPropagator}});Object.defineProperty(we,"parseTraceParent",{enumerable:!0,get:function(){return $F.parseTraceParent}});var ej=CPe();Object.defineProperty(we,"RPCType",{enumerable:!0,get:function(){return ej.RPCType}});Object.defineProperty(we,"deleteRPCMetadata",{enumerable:!0,get:function(){return ej.deleteRPCMetadata}});Object.defineProperty(we,"getRPCMetadata",{enumerable:!0,get:function(){return ej.getRPCMetadata}});Object.defineProperty(we,"setRPCMetadata",{enumerable:!0,get:function(){return ej.setRPCMetadata}});var V7=EO();Object.defineProperty(we,"isTracingSuppressed",{enumerable:!0,get:function(){return V7.isTracingSuppressed}});Object.defineProperty(we,"suppressTracing",{enumerable:!0,get:function(){return V7.suppressTracing}});Object.defineProperty(we,"unsuppressTracing",{enumerable:!0,get:function(){return V7.unsuppressTracing}});var A2t=j7();Object.defineProperty(we,"TraceState",{enumerable:!0,get:function(){return A2t.TraceState}});var w2t=zPe();Object.defineProperty(we,"merge",{enumerable:!0,get:function(){return w2t.merge}});var tNe=GPe();Object.defineProperty(we,"TimeoutError",{enumerable:!0,get:function(){return tNe.TimeoutError}});Object.defineProperty(we,"callWithTimeout",{enumerable:!0,get:function(){return tNe.callWithTimeout}});var nNe=WPe();Object.defineProperty(we,"isUrlIgnored",{enumerable:!0,get:function(){return nNe.isUrlIgnored}});Object.defineProperty(we,"urlMatches",{enumerable:!0,get:function(){return nNe.urlMatches}});var k2t=YPe();Object.defineProperty(we,"BindOnceFuture",{enumerable:!0,get:function(){return k2t.BindOnceFuture}});var I2t=JPe();Object.defineProperty(we,"diagLogLevelFromString",{enumerable:!0,get:function(){return I2t.diagLogLevelFromString}});var x2t=QPe();we.internal={_export:x2t._export}});var rNe=w(tj=>{"use strict";Object.defineProperty(tj,"__esModule",{value:!0});tj.VERSION=void 0;tj.VERSION="0.214.0"});var iNe=w(AO=>{"use strict";Object.defineProperty(AO,"__esModule",{value:!0});AO.SeverityNumber=void 0;var O2t;(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"})(O2t=AO.SeverityNumber||(AO.SeverityNumber={}))});var rj=w(_R=>{"use strict";Object.defineProperty(_R,"__esModule",{value:!0});_R.NOOP_LOGGER=_R.NoopLogger=void 0;var nj=class{emit(t){}};_R.NoopLogger=nj;_R.NOOP_LOGGER=new nj});var sNe=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 P2t(e,t,n){return r=>r===e?t:n}Pp.makeGetter=P2t;Pp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var W7=w(TR=>{"use strict";Object.defineProperty(TR,"__esModule",{value:!0});TR.NOOP_LOGGER_PROVIDER=TR.NoopLoggerProvider=void 0;var N2t=rj(),ij=class{getLogger(t,n,r){return new N2t.NoopLogger}};TR.NoopLoggerProvider=ij;TR.NOOP_LOGGER_PROVIDER=new ij});var oNe=w(sj=>{"use strict";Object.defineProperty(sj,"__esModule",{value:!0});sj.ProxyLogger=void 0;var C2t=rj(),K7=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):C2t.NOOP_LOGGER}};sj.ProxyLogger=K7});var aNe=w(oj=>{"use strict";Object.defineProperty(oj,"__esModule",{value:!0});oj.ProxyLoggerProvider=void 0;var M2t=W7(),D2t=oNe(),Y7=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new D2t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:M2t.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)}};oj.ProxyLoggerProvider=Y7});var uNe=w(aj=>{"use strict";Object.defineProperty(aj,"__esModule",{value:!0});aj.LogsAPI=void 0;var Bl=sNe(),L2t=W7(),cNe=aNe(),Z7=class e{constructor(){this._proxyLoggerProvider=new cNe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return Bl._global[Bl.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(Bl._global[Bl.GLOBAL_LOGS_API_KEY]=(0,Bl.makeGetter)(Bl.API_BACKWARDS_COMPATIBILITY_VERSION,t,L2t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=Bl._global[Bl.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(Bl._global,Bl.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete Bl._global[Bl.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new cNe.ProxyLoggerProvider}};aj.LogsAPI=Z7});var J7=w(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});Np.logs=Np.NoopLogger=Np.NOOP_LOGGER=Np.SeverityNumber=void 0;var U2t=iNe();Object.defineProperty(Np,"SeverityNumber",{enumerable:!0,get:function(){return U2t.SeverityNumber}});var lNe=rj();Object.defineProperty(Np,"NOOP_LOGGER",{enumerable:!0,get:function(){return lNe.NOOP_LOGGER}});Object.defineProperty(Np,"NoopLogger",{enumerable:!0,get:function(){return lNe.NoopLogger}});var F2t=uNe();Np.logs=F2t.LogsAPI.getInstance()});var dNe=w(vR=>{"use strict";Object.defineProperty(vR,"__esModule",{value:!0});vR.disableInstrumentations=vR.enableInstrumentations=void 0;function j2t(e,t,n,r){for(let i=0,s=e.length;it.disable())}vR.disableInstrumentations=H2t});var hNe=w(cj=>{"use strict";Object.defineProperty(cj,"__esModule",{value:!0});cj.registerInstrumentations=void 0;var fNe=(Me(),ke(Ze)),q2t=J7(),pNe=dNe();function B2t(e){let t=e.tracerProvider||fNe.trace.getTracerProvider(),n=e.meterProvider||fNe.metrics.getMeterProvider(),r=e.loggerProvider||q2t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,pNe.enableInstrumentations)(i,t,n,r),()=>{(0,pNe.disableInstrumentations)(i)}}cj.registerInstrumentations=B2t});var vNe=w(uj=>{"use strict";Object.defineProperty(uj,"__esModule",{value:!0});uj.satisfies=void 0;var eJ=(Me(),ke(Ze)),bNe=/^(?: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-]+)*))?$/,z2t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,G2t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function V2t(e,t,n){if(!W2t(e))return eJ.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=J2t(e);if(!r)return!1;let i=[],s=ENe(r,t,i,n);return s&&!n?.includePrerelease?Y2t(r,i):s}uj.satisfies=V2t;function W2t(e){return typeof e=="string"&&bNe.test(e)}function ENe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(X7(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=yVt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!X7(e,s,n,r))return!1;return!0}return X7(e,t,n,r)}function X7(e,t,n,r){if(t=Z2t(t,r),t.includes(" "))return ENe(e,t,n,r);{let i=X2t(t);return n.push(i),K2t(e,i)}}function K2t(e,t){if(t.invalid)return!1;if(!t.version||$7(t.version))return!0;let n=gNe(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=gNe(r,i)}return G2t[t.op]?.includes(n)}function Y2t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function Z2t(e,t){return e=e.trim(),e=mVt(e,t),e=hVt(e),e=gVt(e,t),e=e.trim(),e}function kc(e){return!e||e.toLowerCase()==="x"||e==="*"}function J2t(e){let t=e.match(bNe);if(!t){eJ.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 X2t(e){if(!e)return{};let t=e.match(z2t);if(!t)return eJ.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 $7(e){return e==="*"||e==="x"||e==="X"}function mNe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function Q2t(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 $2t(e,t){if($7(e)||$7(t))return 0;let[n,r]=Q2t(mNe(e),mNe(t));return n>r?1:n)?=?)",yNe=`(?:${TNe}|${eVt})`,nVt=`(?:-(${yNe}(?:\\.${yNe})*))`,SNe=`${_Ne}+`,rVt=`(?:\\+(${SNe}(?:\\.${SNe})*))`,Q7=`${TNe}|x|X|\\*`,wO=`[v=\\s]*(${Q7})(?:\\.(${Q7})(?:\\.(${Q7})(?:${nVt})?${rVt}?)?)?`,iVt=`^${tVt}\\s*${wO}$`,sVt=new RegExp(iVt),oVt=`^\\s*(${wO})\\s+-\\s+(${wO})\\s*$`,aVt=new RegExp(oVt),cVt="(?:~>?)",uVt=`^${cVt}${wO}$`,lVt=new RegExp(uVt),dVt="(?:\\^)",fVt=`^${dVt}${wO}$`,pVt=new RegExp(fVt);function hVt(e){let t=lVt;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 mVt(e,t){let n=pVt,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 gVt(e,t){let n=sVt;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 yVt(e,t){let n=aVt;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 tJ=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 kO(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 SVt=(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 kO(i,"__original",r),kO(i,"__unwrap",()=>{e[t]===i&&kO(e,t,r)}),kO(i,"__wrapped",!0),kO(e,t,i),i};ia.wrap=SVt;var bVt=(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=bVt;var EVt=(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=EVt;var _Vt=(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=_Vt;function IO(e){e&&e.logger&&(typeof e.logger!="function"?Ic("new logger isn't a function, not replacing"):Ic=e.logger)}ia.default=IO;IO.wrap=ia.wrap;IO.massWrap=ia.massWrap;IO.unwrap=ia.unwrap;IO.massUnwrap=ia.massUnwrap});var RNe=w(dj=>{"use strict";Object.defineProperty(dj,"__esModule",{value:!0});dj.InstrumentationAbstract=void 0;var nJ=(Me(),ke(Ze)),TVt=J7(),lj=tJ(),rJ=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=nJ.diag.createComponentLogger({namespace:t}),this._tracer=nJ.trace.getTracer(t,n),this._meter=nJ.metrics.getMeter(t,n),this._logger=TVt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=lj.wrap;_unwrap=lj.unwrap;_massWrap=lj.massWrap;_massUnwrap=lj.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)}}};dj.InstrumentationAbstract=rJ});var wNe=w((VSr,ANe)=>{var RR=1e3,AR=RR*60,wR=AR*60,vE=wR*24,vVt=vE*7,RVt=vE*365.25;ANe.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return AVt(e);if(n==="number"&&isFinite(e))return t.long?kVt(e):wVt(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function AVt(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*RVt;case"weeks":case"week":case"w":return n*vVt;case"days":case"day":case"d":return n*vE;case"hours":case"hour":case"hrs":case"hr":case"h":return n*wR;case"minutes":case"minute":case"mins":case"min":case"m":return n*AR;case"seconds":case"second":case"secs":case"sec":case"s":return n*RR;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function wVt(e){var t=Math.abs(e);return t>=vE?Math.round(e/vE)+"d":t>=wR?Math.round(e/wR)+"h":t>=AR?Math.round(e/AR)+"m":t>=RR?Math.round(e/RR)+"s":e+"ms"}function kVt(e){var t=Math.abs(e);return t>=vE?fj(e,t,vE,"day"):t>=wR?fj(e,t,wR,"hour"):t>=AR?fj(e,t,AR,"minute"):t>=RR?fj(e,t,RR,"second"):e+" ms"}function fj(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var iJ=w((WSr,kNe)=>{function IVt(e){n.debug=n,n.default=n,n.coerce=c,n.disable=o,n.enable=i,n.enabled=a,n.humanize=wNe(),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}kNe.exports=IVt});var INe=w((cu,pj)=>{cu.formatArgs=OVt;cu.save=PVt;cu.load=NVt;cu.useColors=xVt;cu.storage=CVt();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 xVt(){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 OVt(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+pj.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 PVt(e){try{e?cu.storage.setItem("debug",e):cu.storage.removeItem("debug")}catch{}}function NVt(){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 CVt(){try{return localStorage}catch{}}pj.exports=iJ()(cu);var{formatters:MVt}=pj.exports;MVt.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var ONe=w((KSr,xNe)=>{"use strict";xNe.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 DVt=Y("os"),PNe=Y("tty"),zl=ONe(),{env:No}=process,hj;zl("no-color")||zl("no-colors")||zl("color=false")||zl("color=never")?hj=0:(zl("color")||zl("colors")||zl("color=true")||zl("color=always"))&&(hj=1);function LVt(){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 UVt(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function FVt(e,{streamIsTTY:t,sniffFlags:n=!0}={}){let r=LVt();r!==void 0&&(hj=r);let i=n?hj:r;if(i===0)return 0;if(n){if(zl("color=16m")||zl("color=full")||zl("color=truecolor"))return 3;if(zl("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=DVt.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 sJ(e,t={}){let n=FVt(e,{streamIsTTY:e&&e.isTTY,...t});return UVt(n)}NNe.exports={supportsColor:sJ,stdout:sJ({isTTY:PNe.isatty(1)}),stderr:sJ({isTTY:PNe.isatty(2)})}});var MNe=w((Co,yj)=>{var jVt=Y("tty"),gj=Y("util");Co.init=WVt;Co.log=zVt;Co.formatArgs=qVt;Co.save=GVt;Co.load=VVt;Co.useColors=HVt;Co.destroy=gj.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Co.colors=[6,2,3,4,5,1];try{let e=mj();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 HVt(){return"colors"in Co.inspectOpts?!!Co.inspectOpts.colors:jVt.isatty(process.stderr.fd)}function qVt(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 cMt=Object.create;var oF=Object.defineProperty;var uMt=Object.getOwnPropertyDescriptor;var lMt=Object.getOwnPropertyNames;var dMt=Object.getPrototypeOf,fMt=Object.prototype.hasOwnProperty;var Y=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var v=(e,t)=>()=>(e&&(t=e(e=0)),t);var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ar=(e,t)=>{for(var n in t)oF(e,n,{get:t[n],enumerable:!0})},Hve=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of lMt(t))!fMt.call(e,i)&&i!==n&&oF(e,i,{get:()=>t[i],enumerable:!(r=uMt(t,i))||r.enumerable});return e};var Re=(e,t,n)=>(n=e!=null?cMt(dMt(e)):{},Hve(t||!e||!e.__esModule?oF(n,"default",{value:e,enumerable:!0}):n,e)),ke=e=>Hve(oF({},"__esModule",{value:!0}),e);var cm,y8=v(()=>{cm="1.9.1"});function pMt(e){let t=new Set([e]),n=new Set,r=e.match(qve);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(qve);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 qve,Bve,zve=v(()=>{y8();qve=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;Bve=pMt(cm)});function Ap(e,t,n,r=!1){var i;let s=pO[fO]=(i=pO[fO])!==null&&i!==void 0?i:{version:cm};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!==cm){let o=new Error(`@opentelemetry/api: Registration of version v${s.version} for ${e} does not match previously registered API v${cm}`);return n.error(o.stack||o.message),!1}return s[e]=t,n.debug(`@opentelemetry/api: Registered a global for ${e} v${cm}.`),!0}function rl(e){var t,n;let r=(t=pO[fO])===null||t===void 0?void 0:t.version;if(!(!r||!Bve(r)))return(n=pO[fO])===null||n===void 0?void 0:n[e]}function wp(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${cm}.`);let n=pO[fO];n&&delete n[e]}var hMt,fO,pO,fE=v(()=>{y8();zve();hMt=cm.split(".")[0],fO=Symbol.for(`opentelemetry.js.api.${hMt}`),pO=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{}});function hO(e,t,n){let r=rl("diag");if(r)return r[e](t,...n)}var aF,Gve=v(()=>{fE();aF=class{constructor(t){this._namespace=t.namespace||"DiagComponentLogger"}debug(...t){return hO("debug",this._namespace,t)}error(...t){return hO("error",this._namespace,t)}info(...t){return hO("info",this._namespace,t)}warn(...t){return hO("warn",this._namespace,t)}verbose(...t){return hO("verbose",this._namespace,t)}}});var ho,cF=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 Vve(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 Wve=v(()=>{cF()});var mMt,Po,pE=v(()=>{Gve();Wve();cF();fE();mMt="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=Vve((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(mMt,n)},n.createComponentLogger=i=>new aF(i),n.verbose=t("verbose"),n.debug=t("debug"),n.info=t("info"),n.warn=t("warn"),n.error=t("error")}}});var uF,Kve=v(()=>{uF=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 Yve,Zve=v(()=>{Yve=Symbol("BaggageEntryMetadata")});function Jve(e={}){return new uF(new Map(Object.entries(e)))}function Xve(e){return typeof e!="string"&&(gMt.error(`Cannot create baggage metadata from unknown type: ${typeof e}`),e=""),{__TYPE__:Yve,toString(){return e}}}var gMt,S8=v(()=>{pE();Kve();Zve();gMt=Po.instance()});function il(e){return Symbol.for(e)}var b8,lR,mO=v(()=>{b8=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}}},lR=new b8});var E8,_8,lF,Qve=v(()=>{E8=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],_8={};if(typeof console<"u"){let e=["error","warn","info","debug","trace","log"];for(let t of e)typeof console[t]=="function"&&(_8[t]=console[t])}lF=class{constructor(){function t(n){return function(...r){let i=_8[n];if(typeof i!="function"&&(i=_8.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{T8=class{constructor(){}createGauge(t,n){return SMt}createHistogram(t,n){return bMt}createCounter(t,n){return yMt}createUpDownCounter(t,n){return EMt}createObservableGauge(t,n){return TMt}createObservableCounter(t,n){return _Mt}createObservableUpDownCounter(t,n){return vMt}addBatchObservableCallback(t,n){}removeBatchObservableCallback(t){}},dR=class{},v8=class extends dR{add(t,n){}},R8=class extends dR{add(t,n){}},A8=class extends dR{record(t,n){}},w8=class extends dR{record(t,n){}},gO=class{addCallback(t){}removeCallback(t){}},k8=class extends gO{},I8=class extends gO{},x8=class extends gO{},O8=new T8,yMt=new v8,SMt=new A8,bMt=new w8,EMt=new R8,_Mt=new k8,TMt=new I8,vMt=new x8});var dF,eRe=v(()=>{(function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"})(dF||(dF={}))});var fF,pF,N8=v(()=>{fF={get(e,t){if(e!=null)return e[t]},keys(e){return e==null?[]:Object.keys(e)}},pF={set(e,t,n){e!=null&&(e[t]=n)}}});var hF,tRe=v(()=>{mO();hF=class{active(){return lR}with(t,n,r,...i){return n.call(r,...i)}bind(t,n){return n}enable(){return this}disable(){return this}}});var C8,RMt,kp,yO=v(()=>{tRe();fE();pE();C8="context",RMt=new hF,kp=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalContextManager(t){return Ap(C8,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(C8)||RMt}disable(){this._getContextManager().disable(),wp(C8,Po.instance())}}});var qa,M8=v(()=>{(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(qa||(qa={}))});var SO,hE,mF,gF=v(()=>{M8();SO="0000000000000000",hE="00000000000000000000000000000000",mF={traceId:hE,spanId:SO,traceFlags:qa.NONE}});var Ip,yF=v(()=>{gF();Ip=class{constructor(t=mF){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 SF(e){return e.getValue(D8)||void 0}function nRe(){return SF(kp.getInstance().active())}function bO(e,t){return e.setValue(D8,t)}function rRe(e){return e.deleteValue(D8)}function iRe(e,t){return bO(e,new Ip(t))}function bF(e){var t;return(t=SF(e))===null||t===void 0?void 0:t.spanContext()}var D8,L8=v(()=>{mO();yF();yO();D8=il("OpenTelemetry Context Key SPAN")});function sRe(e,t){if(typeof e!="string"||e.length!==t)return!1;let n=0;for(let r=0;r{gF();yF();EF=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1])});function AMt(e){return e!==null&&typeof e=="object"&&"spanId"in e&&typeof e.spanId=="string"&&"traceId"in e&&typeof e.traceId=="string"&&"traceFlags"in e&&typeof e.traceFlags=="number"}var j8,fR,H8=v(()=>{yO();L8();yF();_F();j8=kp.getInstance(),fR=class{startSpan(t,n,r=j8.active()){if(!!n?.root)return new Ip;let s=r&&bF(r);return AMt(s)&&um(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??j8.active(),u=this.startSpan(t,s,c),l=bO(c,u);return j8.with(l,a,void 0,u)}}});var wMt,pR,q8=v(()=>{H8();wMt=new fR,pR=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):wMt}}});var TF,aRe=v(()=>{H8();TF=class{getTracer(t,n,r){return new fR}}});var kMt,mE,B8=v(()=>{q8();aRe();kMt=new TF,mE=class{getTracer(t,n,r){var i;return(i=this.getDelegateTracer(t,n,r))!==null&&i!==void 0?i:new pR(this,t,n,r)}getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:kMt}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 vF,cRe=v(()=>{(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(vF||(vF={}))});var $r,uRe=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,lRe=v(()=>{(function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"})(as||(as={}))});function dRe(e){return OMt.test(e)}function fRe(e){return PMt.test(e)&&!NMt.test(e)}var z8,IMt,xMt,OMt,PMt,NMt,pRe=v(()=>{z8="[_0-9a-z-*/]",IMt=`[a-z]${z8}{0,255}`,xMt=`[a-z0-9]${z8}{0,240}@[a-z]${z8}{0,13}`,OMt=new RegExp(`^(?:${IMt}|${xMt})$`),PMt=/^[ -~]{0,255}[!-~]$/,NMt=/,|=/});var hRe,CMt,mRe,gRe,RF,yRe=v(()=>{pRe();hRe=32,CMt=512,mRe=",",gRe="=",RF=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+gRe+this.get(n)),t),[]).join(mRe)}_parse(t){t.length>CMt||(this._internalState=t.split(mRe).reduceRight((n,r)=>{let i=r.trim(),s=i.indexOf(gRe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);dRe(o)&&fRe(a)&&n.set(o,a)}return n},new Map),this._internalState.size>hRe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,hRe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}}});function SRe(e){return new RF(e)}var bRe=v(()=>{yRe()});var Ve,ERe=v(()=>{yO();Ve=kp.getInstance()});var sl,_Re=v(()=>{pE();sl=Po.instance()});var G8,TRe,vRe=v(()=>{P8();G8=class{getMeter(t,n,r){return O8}},TRe=new G8});var V8,AF,RRe=v(()=>{vRe();fE();pE();V8="metrics",AF=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalMeterProvider(t){return Ap(V8,t,Po.instance())}getMeterProvider(){return rl(V8)||TRe}getMeter(t,n,r){return this.getMeterProvider().getMeter(t,n,r)}disable(){wp(V8,Po.instance())}}});var W8,ARe=v(()=>{RRe();W8=AF.getInstance()});var wF,wRe=v(()=>{wF=class{inject(t,n){}extract(t,n){return t}fields(){return[]}}});function Y8(e){return e.getValue(K8)||void 0}function kRe(){return Y8(kp.getInstance().active())}function IRe(e,t){return e.setValue(K8,t)}function xRe(e){return e.deleteValue(K8)}var K8,ORe=v(()=>{yO();mO();K8=il("OpenTelemetry Baggage Key")});var Z8,MMt,kF,PRe=v(()=>{fE();wRe();N8();ORe();S8();pE();Z8="propagation",MMt=new wF,kF=class e{constructor(){this.createBaggage=Jve,this.getBaggage=Y8,this.getActiveBaggage=kRe,this.setBaggage=IRe,this.deleteBaggage=xRe}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalPropagator(t){return Ap(Z8,t,Po.instance())}inject(t,n,r=pF){return this._getGlobalPropagator().inject(t,n,r)}extract(t,n,r=fF){return this._getGlobalPropagator().extract(t,n,r)}fields(){return this._getGlobalPropagator().fields()}disable(){wp(Z8,Po.instance())}_getGlobalPropagator(){return rl(Z8)||MMt}}});var Qd,NRe=v(()=>{PRe();Qd=kF.getInstance()});var J8,IF,CRe=v(()=>{fE();B8();_F();L8();pE();J8="trace",IF=class e{constructor(){this._proxyTracerProvider=new mE,this.wrapSpanContext=oRe,this.isSpanContextValid=um,this.deleteSpan=rRe,this.getSpan=SF,this.getActiveSpan=nRe,this.getSpanContext=bF,this.setSpan=bO,this.setSpanContext=iRe}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalTracerProvider(t){let n=Ap(J8,this._proxyTracerProvider,Po.instance());return n&&this._proxyTracerProvider.setDelegate(t),n}getTracerProvider(){return rl(J8)||this._proxyTracerProvider}getTracer(t,n){return this.getTracerProvider().getTracer(t,n)}disable(){wp(J8,Po.instance()),this._proxyTracerProvider=new mE}}});var jt,MRe=v(()=>{CRe();jt=IF.getInstance()});var Ze={};Ar(Ze,{DiagConsoleLogger:()=>lF,DiagLogLevel:()=>ho,INVALID_SPANID:()=>SO,INVALID_SPAN_CONTEXT:()=>mF,INVALID_TRACEID:()=>hE,ProxyTracer:()=>pR,ProxyTracerProvider:()=>mE,ROOT_CONTEXT:()=>lR,SamplingDecision:()=>vF,SpanKind:()=>$r,SpanStatusCode:()=>as,TraceFlags:()=>qa,ValueType:()=>dF,baggageEntryMetadataFromString:()=>Xve,context:()=>Ve,createContextKey:()=>il,createNoopMeter:()=>$ve,createTraceState:()=>SRe,default:()=>DMt,defaultTextMapGetter:()=>fF,defaultTextMapSetter:()=>pF,diag:()=>sl,isSpanContextValid:()=>um,isValidSpanId:()=>F8,isValidTraceId:()=>U8,metrics:()=>W8,propagation:()=>Qd,trace:()=>jt});var DMt,Me=v(()=>{S8();mO();Qve();cF();P8();eRe();N8();q8();B8();cRe();uRe();lRe();M8();bRe();_F();gF();ERe();_Re();ARe();NRe();MRe();DMt={context:Ve,diag:sl,metrics:W8,propagation:Qd,trace:jt}});var EO=w(dy=>{"use strict";Object.defineProperty(dy,"__esModule",{value:!0});dy.isTracingSuppressed=dy.unsuppressTracing=dy.suppressTracing=void 0;var LMt=(Me(),ke(Ze)),X8=(0,LMt.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function UMt(e){return e.setValue(X8,!0)}dy.suppressTracing=UMt;function FMt(e){return e.deleteValue(X8)}dy.unsuppressTracing=FMt;function jMt(e){return e.getValue(X8)===!0}dy.isTracingSuppressed=jMt});var Q8=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 $8=w(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});xp.parseKeyPairsIntoRecord=xp.parsePairKeyValue=xp.getKeyPairs=xp.serializeKeyPairs=void 0;var HMt=(Me(),ke(Ze)),hR=Q8();function qMt(e){return e.reduce((t,n)=>{let r=`${t}${t!==""?hR.BAGGAGE_ITEMS_SEPARATOR:""}${n}`;return r.length>hR.BAGGAGE_MAX_TOTAL_LENGTH?t:r},"")}xp.serializeKeyPairs=qMt;function BMt(e){return e.getAllEntries().map(([t,n])=>{let r=`${encodeURIComponent(t)}=${encodeURIComponent(n.value)}`;return n.metadata!==void 0&&(r+=hR.BAGGAGE_PROPERTIES_SEPARATOR+n.metadata.toString()),r})}xp.getKeyPairs=BMt;function DRe(e){if(!e)return;let t=e.indexOf(hR.BAGGAGE_PROPERTIES_SEPARATOR),n=t===-1?e:e.substring(0,t),r=n.indexOf(hR.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(hR.BAGGAGE_ITEMS_SEPARATOR).forEach(n=>{let r=DRe(n);r!==void 0&&r.value.length>0&&(t[r.key]=r.value)}),t}xp.parseKeyPairsIntoRecord=zMt});var LRe=w(xF=>{"use strict";Object.defineProperty(xF,"__esModule",{value:!0});xF.W3CBaggagePropagator=void 0;var e7=(Me(),ke(Ze)),GMt=EO(),gE=Q8(),t7=$8(),n7=class{inject(t,n,r){let i=e7.propagation.getBaggage(t);if(!i||(0,GMt.isTracingSuppressed)(t))return;let s=(0,t7.getKeyPairs)(i).filter(a=>a.length<=gE.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,gE.BAGGAGE_MAX_NAME_VALUE_PAIRS),o=(0,t7.serializeKeyPairs)(s);o.length>0&&r.set(n,gE.BAGGAGE_HEADER,o)}extract(t,n,r){let i=r.get(n,gE.BAGGAGE_HEADER),s=Array.isArray(i)?i.join(gE.BAGGAGE_ITEMS_SEPARATOR):i;if(!s)return t;let o={};return s.length===0||(s.split(gE.BAGGAGE_ITEMS_SEPARATOR).forEach(c=>{let u=(0,t7.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:e7.propagation.setBaggage(t,e7.propagation.createBaggage(o))}fields(){return[gE.BAGGAGE_HEADER]}};xF.W3CBaggagePropagator=n7});var URe=w(OF=>{"use strict";Object.defineProperty(OF,"__esModule",{value:!0});OF.AnchoredClock=void 0;var r7=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}};OF.AnchoredClock=r7});var BRe=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.isAttributeValue=fy.isAttributeKey=fy.sanitizeAttributes=void 0;var FRe=(Me(),ke(Ze));function VMt(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(!jRe(n)){FRe.diag.warn(`Invalid attribute key: ${n}`);continue}let r=e[n];if(!HRe(r)){FRe.diag.warn(`Invalid attribute value set for key: ${n}`);continue}Array.isArray(r)?t[n]=r.slice():t[n]=r}return t}fy.sanitizeAttributes=VMt;function jRe(e){return typeof e=="string"&&e!==""}fy.isAttributeKey=jRe;function HRe(e){return e==null?!0:Array.isArray(e)?WMt(e):qRe(typeof e)}fy.isAttributeValue=HRe;function WMt(e){let t;for(let n of e){if(n==null)continue;let r=typeof n;if(r!==t){if(!t){if(qRe(r)){t=r;continue}return!1}return!1}}return!0}function qRe(e){switch(e){case"number":case"boolean":case"string":return!0}return!1}});var i7=w(PF=>{"use strict";Object.defineProperty(PF,"__esModule",{value:!0});PF.loggingErrorHandler=void 0;var KMt=(Me(),ke(Ze));function YMt(){return e=>{KMt.diag.error(ZMt(e))}}PF.loggingErrorHandler=YMt;function ZMt(e){return typeof e=="string"?e:JSON.stringify(JMt(e))}function JMt(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 GRe=w(mR=>{"use strict";Object.defineProperty(mR,"__esModule",{value:!0});mR.globalErrorHandler=mR.setGlobalErrorHandler=void 0;var XMt=i7(),zRe=(0,XMt.loggingErrorHandler)();function QMt(e){zRe=e}mR.setGlobalErrorHandler=QMt;function $Mt(e){try{zRe(e)}catch{}}mR.globalErrorHandler=$Mt});var YRe=w(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});Op.getStringListFromEnv=Op.getBooleanFromEnv=Op.getStringFromEnv=Op.getNumberFromEnv=void 0;var VRe=(Me(),ke(Ze)),WRe=Y("util");function eDt(e){let t=process.env[e];if(t==null||t.trim()==="")return;let n=Number(t);if(isNaN(n)){VRe.diag.warn(`Unknown value ${(0,WRe.inspect)(t)} for ${e}, expected a number, using defaults`);return}return n}Op.getNumberFromEnv=eDt;function KRe(e){let t=process.env[e];if(!(t==null||t.trim()===""))return t}Op.getStringFromEnv=KRe;function tDt(e){let t=process.env[e]?.trim().toLowerCase();return t==null||t===""?!1:t==="true"?!0:(t==="false"||VRe.diag.warn(`Unknown value ${(0,WRe.inspect)(t)} for ${e}, expected 'true' or 'false', falling back to 'false' (default)`),!1)}Op.getBooleanFromEnv=tDt;function nDt(e){return KRe(e)?.split(",").map(t=>t.trim()).filter(t=>t!=="")}Op.getStringListFromEnv=nDt});var ZRe=w(NF=>{"use strict";Object.defineProperty(NF,"__esModule",{value:!0});NF._globalThis=void 0;NF._globalThis=globalThis});var JRe=w(CF=>{"use strict";Object.defineProperty(CF,"__esModule",{value:!0});CF.VERSION=void 0;CF.VERSION="2.6.1"});function ws(e){let t={},n=e.length;for(let r=0;r{});var 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,fke,pke,hke,mke,gke,rDt,o7,iDt,sDt,oDt,aDt,a7,cDt,uDt,lDt,dDt,fDt,pDt,hDt,mDt,gDt,yDt,SDt,bDt,EDt,_Dt,TDt,vDt,RDt,ADt,c7,wDt,kDt,IDt,xDt,ODt,PDt,NDt,CDt,MDt,DDt,LDt,UDt,u7,FDt,jDt,l7,d7,HDt,qDt,BDt,zDt,GDt,VDt,WDt,KDt,YDt,ZDt,JDt,XDt,QDt,$Dt,eLt,tLt,nLt,_O,gR,f7,rLt,iLt,yE,sLt,oLt,aLt,cLt,p7,h7,uLt,m7,lLt,dLt,fLt,pLt,hLt,mLt,gLt,yLt,SLt,bLt,ELt,_Lt,TLt,vLt,RLt,ALt,wLt,kLt,ILt,xLt,OLt,PLt,NLt,g7,CLt,MLt,DLt,LLt,ULt,FLt,jLt,HLt,qLt,BLt,zLt,GLt,VLt,WLt,KLt,YLt,ZLt,JLt,XLt,y7,QLt,S7,$Lt,e1t,t1t,n1t,r1t,i1t,s1t,o1t,a1t,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,sIe,oIe,aIe,cIe,uIe,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,Y1t,Z1t,J1t,X1t,Q1t,$1t,eUt,tUt,lIe,dIe,fIe,pIe,hIe,mIe,gIe,yIe,SIe,bIe,EIe,nUt,rUt,iUt,sUt,oUt,aUt,cUt,uUt,lUt,dUt,fUt,pUt,_Ie,TIe,vIe,RIe,AIe,hUt,mUt,gUt,yUt,SUt,bUt,wIe,kIe,IIe,EUt,_Ut,TUt,vUt,xIe,OIe,PIe,NIe,RUt,AUt,wUt,kUt,IUt,CIe,MIe,DIe,LIe,UIe,FIe,jIe,xUt,OUt,PUt,NUt,CUt,MUt,DUt,LUt,HIe,qIe,BIe,zIe,GIe,UUt,FUt,jUt,HUt,qUt,BUt,VIe,WIe,KIe,YIe,ZIe,JIe,XIe,QIe,$Ie,e0e,t0e,n0e,r0e,i0e,s0e,o0e,a0e,c0e,u0e,l0e,d0e,zUt,GUt,VUt,WUt,KUt,YUt,ZUt,JUt,XUt,QUt,$Ut,eFt,tFt,nFt,rFt,iFt,sFt,oFt,aFt,cFt,uFt,lFt,f0e,p0e,h0e,m0e,g0e,dFt,fFt,pFt,hFt,mFt,gFt,y0e,S0e,yFt,SFt,bFt,b0e,E0e,EFt,_Ft,TFt,_0e,T0e,v0e,R0e,A0e,w0e,k0e,I0e,x0e,O0e,P0e,N0e,C0e,M0e,D0e,L0e,U0e,vFt,RFt,AFt,wFt,kFt,IFt,xFt,OFt,PFt,NFt,CFt,MFt,DFt,LFt,UFt,FFt,jFt,HFt,F0e,j0e,qFt,BFt,zFt,H0e=v(()=>{s7();XRe="aws.lambda.invoked_arn",QRe="db.system",$Re="db.connection_string",eAe="db.user",tAe="db.jdbc.driver_classname",nAe="db.name",rAe="db.statement",iAe="db.operation",sAe="db.mssql.instance_name",oAe="db.cassandra.keyspace",aAe="db.cassandra.page_size",cAe="db.cassandra.consistency_level",uAe="db.cassandra.table",lAe="db.cassandra.idempotence",dAe="db.cassandra.speculative_execution_count",fAe="db.cassandra.coordinator.id",pAe="db.cassandra.coordinator.dc",hAe="db.hbase.namespace",mAe="db.redis.database_index",gAe="db.mongodb.collection",yAe="db.sql.table",SAe="exception.type",bAe="exception.message",EAe="exception.stacktrace",_Ae="exception.escaped",TAe="faas.trigger",vAe="faas.execution",RAe="faas.document.collection",AAe="faas.document.operation",wAe="faas.document.time",kAe="faas.document.name",IAe="faas.time",xAe="faas.cron",OAe="faas.coldstart",PAe="faas.invoked_name",NAe="faas.invoked_provider",CAe="faas.invoked_region",MAe="net.transport",DAe="net.peer.ip",LAe="net.peer.port",UAe="net.peer.name",FAe="net.host.ip",jAe="net.host.port",HAe="net.host.name",qAe="net.host.connection.type",BAe="net.host.connection.subtype",zAe="net.host.carrier.name",GAe="net.host.carrier.mcc",VAe="net.host.carrier.mnc",WAe="net.host.carrier.icc",KAe="peer.service",YAe="enduser.id",ZAe="enduser.role",JAe="enduser.scope",XAe="thread.id",QAe="thread.name",$Ae="code.function",ewe="code.namespace",twe="code.filepath",nwe="code.lineno",rwe="http.method",iwe="http.url",swe="http.target",owe="http.host",awe="http.scheme",cwe="http.status_code",uwe="http.flavor",lwe="http.user_agent",dwe="http.request_content_length",fwe="http.request_content_length_uncompressed",pwe="http.response_content_length",hwe="http.response_content_length_uncompressed",mwe="http.server_name",gwe="http.route",ywe="http.client_ip",Swe="aws.dynamodb.table_names",bwe="aws.dynamodb.consumed_capacity",Ewe="aws.dynamodb.item_collection_metrics",_we="aws.dynamodb.provisioned_read_capacity",Twe="aws.dynamodb.provisioned_write_capacity",vwe="aws.dynamodb.consistent_read",Rwe="aws.dynamodb.projection",Awe="aws.dynamodb.limit",wwe="aws.dynamodb.attributes_to_get",kwe="aws.dynamodb.index_name",Iwe="aws.dynamodb.select",xwe="aws.dynamodb.global_secondary_indexes",Owe="aws.dynamodb.local_secondary_indexes",Pwe="aws.dynamodb.exclusive_start_table",Nwe="aws.dynamodb.table_count",Cwe="aws.dynamodb.scan_forward",Mwe="aws.dynamodb.segment",Dwe="aws.dynamodb.total_segments",Lwe="aws.dynamodb.count",Uwe="aws.dynamodb.scanned_count",Fwe="aws.dynamodb.attribute_definitions",jwe="aws.dynamodb.global_secondary_index_updates",Hwe="messaging.system",qwe="messaging.destination",Bwe="messaging.destination_kind",zwe="messaging.temp_destination",Gwe="messaging.protocol",Vwe="messaging.protocol_version",Wwe="messaging.url",Kwe="messaging.message_id",Ywe="messaging.conversation_id",Zwe="messaging.message_payload_size_bytes",Jwe="messaging.message_payload_compressed_size_bytes",Xwe="messaging.operation",Qwe="messaging.consumer_id",$we="messaging.rabbitmq.routing_key",eke="messaging.kafka.message_key",tke="messaging.kafka.consumer_group",nke="messaging.kafka.client_id",rke="messaging.kafka.partition",ike="messaging.kafka.tombstone",ske="rpc.system",oke="rpc.service",ake="rpc.method",cke="rpc.grpc.status_code",uke="rpc.jsonrpc.version",lke="rpc.jsonrpc.request_id",dke="rpc.jsonrpc.error_code",fke="rpc.jsonrpc.error_message",pke="message.type",hke="message.id",mke="message.compressed_size",gke="message.uncompressed_size",rDt=XRe,o7=QRe,iDt=$Re,sDt=eAe,oDt=tAe,aDt=nAe,a7=rAe,cDt=iAe,uDt=sAe,lDt=oAe,dDt=aAe,fDt=cAe,pDt=uAe,hDt=lAe,mDt=dAe,gDt=fAe,yDt=pAe,SDt=hAe,bDt=mAe,EDt=gAe,_Dt=yAe,TDt=SAe,vDt=bAe,RDt=EAe,ADt=_Ae,c7=TAe,wDt=vAe,kDt=RAe,IDt=AAe,xDt=wAe,ODt=kAe,PDt=IAe,NDt=xAe,CDt=OAe,MDt=PAe,DDt=NAe,LDt=CAe,UDt=MAe,u7=DAe,FDt=LAe,jDt=UAe,l7=FAe,d7=jAe,HDt=HAe,qDt=qAe,BDt=BAe,zDt=zAe,GDt=GAe,VDt=VAe,WDt=WAe,KDt=KAe,YDt=YAe,ZDt=ZAe,JDt=JAe,XDt=XAe,QDt=QAe,$Dt=$Ae,eLt=ewe,tLt=twe,nLt=nwe,_O=rwe,gR=iwe,f7=swe,rLt=owe,iLt=awe,yE=cwe,sLt=uwe,oLt=lwe,aLt=dwe,cLt=fwe,p7=pwe,h7=hwe,uLt=mwe,m7=gwe,lLt=ywe,dLt=Swe,fLt=bwe,pLt=Ewe,hLt=_we,mLt=Twe,gLt=vwe,yLt=Rwe,SLt=Awe,bLt=wwe,ELt=kwe,_Lt=Iwe,TLt=xwe,vLt=Owe,RLt=Pwe,ALt=Nwe,wLt=Cwe,kLt=Mwe,ILt=Dwe,xLt=Lwe,OLt=Uwe,PLt=Fwe,NLt=jwe,g7=Hwe,CLt=qwe,MLt=Bwe,DLt=zwe,LLt=Gwe,ULt=Vwe,FLt=Wwe,jLt=Kwe,HLt=Ywe,qLt=Zwe,BLt=Jwe,zLt=Xwe,GLt=Qwe,VLt=$we,WLt=eke,KLt=tke,YLt=nke,ZLt=rke,JLt=ike,XLt=ske,y7=oke,QLt=ake,S7=cke,$Lt=uke,e1t=lke,t1t=dke,n1t=fke,r1t=pke,i1t=hke,s1t=mke,o1t=gke,a1t=ws([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,fke,pke,hke,mke,gke]),yke="other_sql",Ske="mssql",bke="mysql",Eke="oracle",_ke="db2",Tke="postgresql",vke="redshift",Rke="hive",Ake="cloudscape",wke="hsqldb",kke="progress",Ike="maxdb",xke="hanadb",Oke="ingres",Pke="firstsql",Nke="edb",Cke="cache",Mke="adabas",Dke="firebird",Lke="derby",Uke="filemaker",Fke="informix",jke="instantdb",Hke="interbase",qke="mariadb",Bke="netezza",zke="pervasive",Gke="pointbase",Vke="sqlite",Wke="sybase",Kke="teradata",Yke="vertica",Zke="h2",Jke="coldfusion",Xke="cassandra",Qke="hbase",$ke="mongodb",eIe="redis",tIe="couchbase",nIe="couchdb",rIe="cosmosdb",iIe="dynamodb",sIe="neo4j",oIe="geode",aIe="elasticsearch",cIe="memcached",uIe="cockroachdb",c1t=yke,u1t=Ske,l1t=bke,d1t=Eke,f1t=_ke,p1t=Tke,h1t=vke,m1t=Rke,g1t=Ake,y1t=wke,S1t=kke,b1t=Ike,E1t=xke,_1t=Oke,T1t=Pke,v1t=Nke,R1t=Cke,A1t=Mke,w1t=Dke,k1t=Lke,I1t=Uke,x1t=Fke,O1t=jke,P1t=Hke,N1t=qke,C1t=Bke,M1t=zke,D1t=Gke,L1t=Vke,U1t=Wke,F1t=Kke,j1t=Yke,H1t=Zke,q1t=Jke,B1t=Xke,z1t=Qke,G1t=$ke,V1t=eIe,W1t=tIe,K1t=nIe,Y1t=rIe,Z1t=iIe,J1t=sIe,X1t=oIe,Q1t=aIe,$1t=cIe,eUt=uIe,tUt=ws([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,sIe,oIe,aIe,cIe,uIe]),lIe="all",dIe="each_quorum",fIe="quorum",pIe="local_quorum",hIe="one",mIe="two",gIe="three",yIe="local_one",SIe="any",bIe="serial",EIe="local_serial",nUt=lIe,rUt=dIe,iUt=fIe,sUt=pIe,oUt=hIe,aUt=mIe,cUt=gIe,uUt=yIe,lUt=SIe,dUt=bIe,fUt=EIe,pUt=ws([lIe,dIe,fIe,pIe,hIe,mIe,gIe,yIe,SIe,bIe,EIe]),_Ie="datasource",TIe="http",vIe="pubsub",RIe="timer",AIe="other",hUt=_Ie,mUt=TIe,gUt=vIe,yUt=RIe,SUt=AIe,bUt=ws([_Ie,TIe,vIe,RIe,AIe]),wIe="insert",kIe="edit",IIe="delete",EUt=wIe,_Ut=kIe,TUt=IIe,vUt=ws([wIe,kIe,IIe]),xIe="alibaba_cloud",OIe="aws",PIe="azure",NIe="gcp",RUt=xIe,AUt=OIe,wUt=PIe,kUt=NIe,IUt=ws([xIe,OIe,PIe,NIe]),CIe="ip_tcp",MIe="ip_udp",DIe="ip",LIe="unix",UIe="pipe",FIe="inproc",jIe="other",xUt=CIe,OUt=MIe,PUt=DIe,NUt=LIe,CUt=UIe,MUt=FIe,DUt=jIe,LUt=ws([CIe,MIe,DIe,LIe,UIe,FIe,jIe]),HIe="wifi",qIe="wired",BIe="cell",zIe="unavailable",GIe="unknown",UUt=HIe,FUt=qIe,jUt=BIe,HUt=zIe,qUt=GIe,BUt=ws([HIe,qIe,BIe,zIe,GIe]),VIe="gprs",WIe="edge",KIe="umts",YIe="cdma",ZIe="evdo_0",JIe="evdo_a",XIe="cdma2000_1xrtt",QIe="hsdpa",$Ie="hsupa",e0e="hspa",t0e="iden",n0e="evdo_b",r0e="lte",i0e="ehrpd",s0e="hspap",o0e="gsm",a0e="td_scdma",c0e="iwlan",u0e="nr",l0e="nrnsa",d0e="lte_ca",zUt=VIe,GUt=WIe,VUt=KIe,WUt=YIe,KUt=ZIe,YUt=JIe,ZUt=XIe,JUt=QIe,XUt=$Ie,QUt=e0e,$Ut=t0e,eFt=n0e,tFt=r0e,nFt=i0e,rFt=s0e,iFt=o0e,sFt=a0e,oFt=c0e,aFt=u0e,cFt=l0e,uFt=d0e,lFt=ws([VIe,WIe,KIe,YIe,ZIe,JIe,XIe,QIe,$Ie,e0e,t0e,n0e,r0e,i0e,s0e,o0e,a0e,c0e,u0e,l0e,d0e]),f0e="1.0",p0e="1.1",h0e="2.0",m0e="SPDY",g0e="QUIC",dFt=f0e,fFt=p0e,pFt=h0e,hFt=m0e,mFt=g0e,gFt={HTTP_1_0:f0e,HTTP_1_1:p0e,HTTP_2_0:h0e,SPDY:m0e,QUIC:g0e},y0e="queue",S0e="topic",yFt=y0e,SFt=S0e,bFt=ws([y0e,S0e]),b0e="receive",E0e="process",EFt=b0e,_Ft=E0e,TFt=ws([b0e,E0e]),_0e=0,T0e=1,v0e=2,R0e=3,A0e=4,w0e=5,k0e=6,I0e=7,x0e=8,O0e=9,P0e=10,N0e=11,C0e=12,M0e=13,D0e=14,L0e=15,U0e=16,vFt=_0e,RFt=T0e,AFt=v0e,wFt=R0e,kFt=A0e,IFt=w0e,xFt=k0e,OFt=I0e,PFt=x0e,NFt=O0e,CFt=P0e,MFt=N0e,DFt=C0e,LFt=M0e,UFt=D0e,FFt=L0e,jFt=U0e,HFt={OK:_0e,CANCELLED:T0e,UNKNOWN:v0e,INVALID_ARGUMENT:R0e,DEADLINE_EXCEEDED:A0e,NOT_FOUND:w0e,ALREADY_EXISTS:k0e,PERMISSION_DENIED:I0e,RESOURCE_EXHAUSTED:x0e,FAILED_PRECONDITION:O0e,ABORTED:P0e,OUT_OF_RANGE:N0e,UNIMPLEMENTED:C0e,INTERNAL:M0e,UNAVAILABLE:D0e,DATA_LOSS:L0e,UNAUTHENTICATED:U0e},F0e="SENT",j0e="RECEIVED",qFt=F0e,BFt=j0e,zFt=ws([F0e,j0e])});var q0e=v(()=>{H0e()});var 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,lOe,dOe,fOe,pOe,hOe,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,$jt,eHt,tHt,nHt,rHt,iHt,sHt,oHt,b7,aHt,cHt,uHt,lHt,dHt,fHt,pHt,hHt,mHt,gHt,mOe,gOe,yOe,SOe,yHt,SHt,bHt,EHt,_Ht,bOe,EOe,_Oe,TOe,vOe,ROe,AOe,wOe,kOe,IOe,xOe,OOe,POe,NOe,COe,MOe,DOe,THt,vHt,RHt,AHt,wHt,kHt,IHt,xHt,OHt,PHt,NHt,CHt,MHt,DHt,LHt,UHt,FHt,jHt,LOe,UOe,HHt,qHt,BHt,FOe,jOe,HOe,qOe,BOe,zOe,GOe,zHt,GHt,VHt,WHt,KHt,YHt,ZHt,JHt,VOe,WOe,KOe,YOe,ZOe,JOe,XOe,QOe,$Oe,ePe,tPe,XHt,QHt,$Ht,eqt,tqt,nqt,rqt,iqt,sqt,oqt,aqt,cqt,nPe,rPe,iPe,sPe,oPe,aPe,cPe,uPe,lPe,dPe,uqt,lqt,dqt,fqt,pqt,hqt,mqt,gqt,yqt,Sqt,bqt,fPe=v(()=>{s7();B0e="cloud.provider",z0e="cloud.account.id",G0e="cloud.region",V0e="cloud.availability_zone",W0e="cloud.platform",K0e="aws.ecs.container.arn",Y0e="aws.ecs.cluster.arn",Z0e="aws.ecs.launchtype",J0e="aws.ecs.task.arn",X0e="aws.ecs.task.family",Q0e="aws.ecs.task.revision",$0e="aws.eks.cluster.arn",exe="aws.log.group.names",txe="aws.log.group.arns",nxe="aws.log.stream.names",rxe="aws.log.stream.arns",ixe="container.name",sxe="container.id",oxe="container.runtime",axe="container.image.name",cxe="container.image.tag",uxe="deployment.environment",lxe="device.id",dxe="device.model.identifier",fxe="device.model.name",pxe="faas.name",hxe="faas.id",mxe="faas.version",gxe="faas.instance",yxe="faas.max_memory",Sxe="host.id",bxe="host.name",Exe="host.type",_xe="host.arch",Txe="host.image.name",vxe="host.image.id",Rxe="host.image.version",Axe="k8s.cluster.name",wxe="k8s.node.name",kxe="k8s.node.uid",Ixe="k8s.namespace.name",xxe="k8s.pod.uid",Oxe="k8s.pod.name",Pxe="k8s.container.name",Nxe="k8s.replicaset.uid",Cxe="k8s.replicaset.name",Mxe="k8s.deployment.uid",Dxe="k8s.deployment.name",Lxe="k8s.statefulset.uid",Uxe="k8s.statefulset.name",Fxe="k8s.daemonset.uid",jxe="k8s.daemonset.name",Hxe="k8s.job.uid",qxe="k8s.job.name",Bxe="k8s.cronjob.uid",zxe="k8s.cronjob.name",Gxe="os.type",Vxe="os.description",Wxe="os.name",Kxe="os.version",Yxe="process.pid",Zxe="process.executable.name",Jxe="process.executable.path",Xxe="process.command",Qxe="process.command_line",$xe="process.command_args",eOe="process.owner",tOe="process.runtime.name",nOe="process.runtime.version",rOe="process.runtime.description",iOe="service.name",sOe="service.namespace",oOe="service.instance.id",aOe="service.version",cOe="telemetry.sdk.name",uOe="telemetry.sdk.language",lOe="telemetry.sdk.version",dOe="telemetry.auto.version",fOe="webengine.name",pOe="webengine.version",hOe="webengine.description",GFt=B0e,VFt=z0e,WFt=G0e,KFt=V0e,YFt=W0e,ZFt=K0e,JFt=Y0e,XFt=Z0e,QFt=J0e,$Ft=X0e,ejt=Q0e,tjt=$0e,njt=exe,rjt=txe,ijt=nxe,sjt=rxe,ojt=ixe,ajt=sxe,cjt=oxe,ujt=axe,ljt=cxe,djt=uxe,fjt=lxe,pjt=dxe,hjt=fxe,mjt=pxe,gjt=hxe,yjt=mxe,Sjt=gxe,bjt=yxe,Ejt=Sxe,_jt=bxe,Tjt=Exe,vjt=_xe,Rjt=Txe,Ajt=vxe,wjt=Rxe,kjt=Axe,Ijt=wxe,xjt=kxe,Ojt=Ixe,Pjt=xxe,Njt=Oxe,Cjt=Pxe,Mjt=Nxe,Djt=Cxe,Ljt=Mxe,Ujt=Dxe,Fjt=Lxe,jjt=Uxe,Hjt=Fxe,qjt=jxe,Bjt=Hxe,zjt=qxe,Gjt=Bxe,Vjt=zxe,Wjt=Gxe,Kjt=Vxe,Yjt=Wxe,Zjt=Kxe,Jjt=Yxe,Xjt=Zxe,Qjt=Jxe,$jt=Xxe,eHt=Qxe,tHt=$xe,nHt=eOe,rHt=tOe,iHt=nOe,sHt=rOe,oHt=iOe,b7=sOe,aHt=oOe,cHt=aOe,uHt=cOe,lHt=uOe,dHt=lOe,fHt=dOe,pHt=fOe,hHt=pOe,mHt=hOe,gHt=ws([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,lOe,dOe,fOe,pOe,hOe]),mOe="alibaba_cloud",gOe="aws",yOe="azure",SOe="gcp",yHt=mOe,SHt=gOe,bHt=yOe,EHt=SOe,_Ht=ws([mOe,gOe,yOe,SOe]),bOe="alibaba_cloud_ecs",EOe="alibaba_cloud_fc",_Oe="aws_ec2",TOe="aws_ecs",vOe="aws_eks",ROe="aws_lambda",AOe="aws_elastic_beanstalk",wOe="azure_vm",kOe="azure_container_instances",IOe="azure_aks",xOe="azure_functions",OOe="azure_app_service",POe="gcp_compute_engine",NOe="gcp_cloud_run",COe="gcp_kubernetes_engine",MOe="gcp_cloud_functions",DOe="gcp_app_engine",THt=bOe,vHt=EOe,RHt=_Oe,AHt=TOe,wHt=vOe,kHt=ROe,IHt=AOe,xHt=wOe,OHt=kOe,PHt=IOe,NHt=xOe,CHt=OOe,MHt=POe,DHt=NOe,LHt=COe,UHt=MOe,FHt=DOe,jHt=ws([bOe,EOe,_Oe,TOe,vOe,ROe,AOe,wOe,kOe,IOe,xOe,OOe,POe,NOe,COe,MOe,DOe]),LOe="ec2",UOe="fargate",HHt=LOe,qHt=UOe,BHt=ws([LOe,UOe]),FOe="amd64",jOe="arm32",HOe="arm64",qOe="ia64",BOe="ppc32",zOe="ppc64",GOe="x86",zHt=FOe,GHt=jOe,VHt=HOe,WHt=qOe,KHt=BOe,YHt=zOe,ZHt=GOe,JHt=ws([FOe,jOe,HOe,qOe,BOe,zOe,GOe]),VOe="windows",WOe="linux",KOe="darwin",YOe="freebsd",ZOe="netbsd",JOe="openbsd",XOe="dragonflybsd",QOe="hpux",$Oe="aix",ePe="solaris",tPe="z_os",XHt=VOe,QHt=WOe,$Ht=KOe,eqt=YOe,tqt=ZOe,nqt=JOe,rqt=XOe,iqt=QOe,sqt=$Oe,oqt=ePe,aqt=tPe,cqt=ws([VOe,WOe,KOe,YOe,ZOe,JOe,XOe,QOe,$Oe,ePe,tPe]),nPe="cpp",rPe="dotnet",iPe="erlang",sPe="go",oPe="java",aPe="nodejs",cPe="php",uPe="python",lPe="ruby",dPe="webjs",uqt=nPe,lqt=rPe,dqt=iPe,fqt=sPe,pqt=oPe,hqt=aPe,mqt=cPe,gqt=uPe,yqt=lPe,Sqt=dPe,bqt=ws([nPe,rPe,iPe,sPe,oPe,aPe,cPe,uPe,lPe,dPe])});var pPe=v(()=>{fPe()});var Eqt,_qt,Tqt,vqt,Rqt,Aqt,wqt,kqt,Iqt,xqt,Oqt,Pqt,Nqt,Cqt,Mqt,Dqt,Lqt,Uqt,Fqt,jqt,Hqt,qqt,Bqt,zqt,Gqt,E7,_7,Vqt,yR,Wqt,T7,v7,Kqt,SE,Yqt,Zqt,Jqt,Xqt,Qqt,$qt,eBt,tBt,Wyr,Kyr,R7,nBt,rBt,iBt,sBt,oBt,aBt,bE,cBt,uBt,lBt,Yyr,dBt,fBt,pBt,hBt,Zyr,mBt,gBt,yBt,SBt,lm,dm,bBt,EBt,_Bt,TBt,vBt,RBt,ABt,wBt,kBt,Jyr,IBt,xBt,OBt,PBt,NBt,CBt,A7,w7,MBt,k7,I7,DBt,LBt,Xyr,Qyr,UBt,FBt,jBt,HBt,qBt,BBt,zBt,GBt,$yr,VBt,x7,O7,WBt,P7,KBt,N7,YBt,ZBt,JBt,XBt,QBt,$Bt,ezt,tzt,nzt,eSr,rzt,izt,tSr,szt,ozt,nSr,azt,czt,uzt,lzt,dzt,fzt,pzt,hzt,py,mzt,gzt,yzt,C7,hPe=v(()=>{Eqt="aspnetcore.diagnostics.exception.result",_qt="aborted",Tqt="handled",vqt="skipped",Rqt="unhandled",Aqt="aspnetcore.diagnostics.handler.type",wqt="aspnetcore.rate_limiting.policy",kqt="aspnetcore.rate_limiting.result",Iqt="acquired",xqt="endpoint_limiter",Oqt="global_limiter",Pqt="request_canceled",Nqt="aspnetcore.request.is_unhandled",Cqt="aspnetcore.routing.is_fallback",Mqt="aspnetcore.routing.match_status",Dqt="failure",Lqt="success",Uqt="aspnetcore.user.is_authenticated",Fqt="client.address",jqt="client.port",Hqt="code.column.number",qqt="code.file.path",Bqt="code.function.name",zqt="code.line.number",Gqt="code.stacktrace",E7="db.collection.name",_7="db.namespace",Vqt="db.operation.batch.size",yR="db.operation.name",Wqt="db.query.summary",T7="db.query.text",v7="db.response.status_code",Kqt="db.stored_procedure.name",SE="db.system.name",Yqt="mariadb",Zqt="microsoft.sql_server",Jqt="mysql",Xqt="postgresql",Qqt="dotnet.gc.heap.generation",$qt="gen0",eBt="gen1",tBt="gen2",Wyr="loh",Kyr="poh",R7="error.type",nBt="_OTHER",rBt="exception.escaped",iBt="exception.message",sBt="exception.stacktrace",oBt="exception.type",aBt=e=>`http.request.header.${e}`,bE="http.request.method",cBt="_OTHER",uBt="CONNECT",lBt="DELETE",Yyr="GET",dBt="HEAD",fBt="OPTIONS",pBt="PATCH",hBt="POST",Zyr="PUT",mBt="TRACE",gBt="http.request.method_original",yBt="http.request.resend_count",SBt=e=>`http.response.header.${e}`,lm="http.response.status_code",dm="http.route",bBt="jvm.gc.action",EBt="jvm.gc.name",_Bt="jvm.memory.pool.name",TBt="jvm.memory.type",vBt="heap",RBt="non_heap",ABt="jvm.thread.daemon",wBt="jvm.thread.state",kBt="blocked",Jyr="new",IBt="runnable",xBt="terminated",OBt="timed_waiting",PBt="waiting",NBt="network.local.address",CBt="network.local.port",A7="network.peer.address",w7="network.peer.port",MBt="network.protocol.name",k7="network.protocol.version",I7="network.transport",DBt="pipe",LBt="quic",Xyr="tcp",Qyr="udp",UBt="unix",FBt="network.type",jBt="ipv4",HBt="ipv6",qBt="otel.scope.name",BBt="otel.scope.version",zBt="otel.status_code",GBt="ERROR",$yr="OK",VBt="otel.status_description",x7="server.address",O7="server.port",WBt="service.instance.id",P7="service.name",KBt="service.namespace",N7="service.version",YBt="signalr.connection.status",ZBt="app_shutdown",JBt="normal_closure",XBt="timeout",QBt="signalr.transport",$Bt="long_polling",ezt="server_sent_events",tzt="web_sockets",nzt="telemetry.sdk.language",eSr="cpp",rzt="dotnet",izt="erlang",tSr="go",szt="java",ozt="nodejs",nSr="php",azt="python",czt="ruby",uzt="rust",lzt="swift",dzt="webjs",fzt="telemetry.sdk.name",pzt="telemetry.sdk.version",hzt="url.fragment",py="url.full",mzt="url.path",gzt="url.query",yzt="url.scheme",C7="user_agent.original"});var 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,aGt,cGt,uGt,lGt,dGt,fGt,pGt,hGt,mPe=v(()=>{Szt="aspnetcore.diagnostics.exceptions",bzt="aspnetcore.rate_limiting.active_request_leases",Ezt="aspnetcore.rate_limiting.queued_requests",_zt="aspnetcore.rate_limiting.request.time_in_queue",Tzt="aspnetcore.rate_limiting.request_lease.duration",vzt="aspnetcore.rate_limiting.requests",Rzt="aspnetcore.routing.match_attempts",Azt="db.client.operation.duration",wzt="dotnet.assembly.count",kzt="dotnet.exceptions",Izt="dotnet.gc.collections",xzt="dotnet.gc.heap.total_allocated",Ozt="dotnet.gc.last_collection.heap.fragmentation.size",Pzt="dotnet.gc.last_collection.heap.size",Nzt="dotnet.gc.last_collection.memory.committed_size",Czt="dotnet.gc.pause.time",Mzt="dotnet.jit.compilation.time",Dzt="dotnet.jit.compiled_il.size",Lzt="dotnet.jit.compiled_methods",Uzt="dotnet.monitor.lock_contentions",Fzt="dotnet.process.cpu.count",jzt="dotnet.process.cpu.time",Hzt="dotnet.process.memory.working_set",qzt="dotnet.thread_pool.queue.length",Bzt="dotnet.thread_pool.thread.count",zzt="dotnet.thread_pool.work_item.count",Gzt="dotnet.timer.count",Vzt="http.client.request.duration",Wzt="http.server.request.duration",Kzt="jvm.class.count",Yzt="jvm.class.loaded",Zzt="jvm.class.unloaded",Jzt="jvm.cpu.count",Xzt="jvm.cpu.recent_utilization",Qzt="jvm.cpu.time",$zt="jvm.gc.duration",eGt="jvm.memory.committed",tGt="jvm.memory.limit",nGt="jvm.memory.used",rGt="jvm.memory.used_after_last_gc",iGt="jvm.thread.count",sGt="kestrel.active_connections",oGt="kestrel.active_tls_handshakes",aGt="kestrel.connection.duration",cGt="kestrel.queued_connections",uGt="kestrel.queued_requests",lGt="kestrel.rejected_connections",dGt="kestrel.tls_handshake.duration",fGt="kestrel.upgraded_connections",pGt="signalr.server.active_connections",hGt="signalr.server.connection.duration"});var mGt,gPe=v(()=>{mGt="exception"});var Mr={};Ar(Mr,{ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED:()=>_qt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED:()=>Tqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED:()=>vqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED:()=>Rqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED:()=>Iqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER:()=>xqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER:()=>Oqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED:()=>Pqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE:()=>Dqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS:()=>Lqt,ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT:()=>Eqt,ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE:()=>Aqt,ATTR_ASPNETCORE_RATE_LIMITING_POLICY:()=>wqt,ATTR_ASPNETCORE_RATE_LIMITING_RESULT:()=>kqt,ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED:()=>Nqt,ATTR_ASPNETCORE_ROUTING_IS_FALLBACK:()=>Cqt,ATTR_ASPNETCORE_ROUTING_MATCH_STATUS:()=>Mqt,ATTR_ASPNETCORE_USER_IS_AUTHENTICATED:()=>Uqt,ATTR_CLIENT_ADDRESS:()=>Fqt,ATTR_CLIENT_PORT:()=>jqt,ATTR_CODE_COLUMN_NUMBER:()=>Hqt,ATTR_CODE_FILE_PATH:()=>qqt,ATTR_CODE_FUNCTION_NAME:()=>Bqt,ATTR_CODE_LINE_NUMBER:()=>zqt,ATTR_CODE_STACKTRACE:()=>Gqt,ATTR_DB_COLLECTION_NAME:()=>E7,ATTR_DB_NAMESPACE:()=>_7,ATTR_DB_OPERATION_BATCH_SIZE:()=>Vqt,ATTR_DB_OPERATION_NAME:()=>yR,ATTR_DB_QUERY_SUMMARY:()=>Wqt,ATTR_DB_QUERY_TEXT:()=>T7,ATTR_DB_RESPONSE_STATUS_CODE:()=>v7,ATTR_DB_STORED_PROCEDURE_NAME:()=>Kqt,ATTR_DB_SYSTEM_NAME:()=>SE,ATTR_DOTNET_GC_HEAP_GENERATION:()=>Qqt,ATTR_ERROR_TYPE:()=>R7,ATTR_EXCEPTION_ESCAPED:()=>rBt,ATTR_EXCEPTION_MESSAGE:()=>iBt,ATTR_EXCEPTION_STACKTRACE:()=>sBt,ATTR_EXCEPTION_TYPE:()=>oBt,ATTR_HTTP_REQUEST_HEADER:()=>aBt,ATTR_HTTP_REQUEST_METHOD:()=>bE,ATTR_HTTP_REQUEST_METHOD_ORIGINAL:()=>gBt,ATTR_HTTP_REQUEST_RESEND_COUNT:()=>yBt,ATTR_HTTP_RESPONSE_HEADER:()=>SBt,ATTR_HTTP_RESPONSE_STATUS_CODE:()=>lm,ATTR_HTTP_ROUTE:()=>dm,ATTR_JVM_GC_ACTION:()=>bBt,ATTR_JVM_GC_NAME:()=>EBt,ATTR_JVM_MEMORY_POOL_NAME:()=>_Bt,ATTR_JVM_MEMORY_TYPE:()=>TBt,ATTR_JVM_THREAD_DAEMON:()=>ABt,ATTR_JVM_THREAD_STATE:()=>wBt,ATTR_NETWORK_LOCAL_ADDRESS:()=>NBt,ATTR_NETWORK_LOCAL_PORT:()=>CBt,ATTR_NETWORK_PEER_ADDRESS:()=>A7,ATTR_NETWORK_PEER_PORT:()=>w7,ATTR_NETWORK_PROTOCOL_NAME:()=>MBt,ATTR_NETWORK_PROTOCOL_VERSION:()=>k7,ATTR_NETWORK_TRANSPORT:()=>I7,ATTR_NETWORK_TYPE:()=>FBt,ATTR_OTEL_SCOPE_NAME:()=>qBt,ATTR_OTEL_SCOPE_VERSION:()=>BBt,ATTR_OTEL_STATUS_CODE:()=>zBt,ATTR_OTEL_STATUS_DESCRIPTION:()=>VBt,ATTR_SERVER_ADDRESS:()=>x7,ATTR_SERVER_PORT:()=>O7,ATTR_SERVICE_INSTANCE_ID:()=>WBt,ATTR_SERVICE_NAME:()=>P7,ATTR_SERVICE_NAMESPACE:()=>KBt,ATTR_SERVICE_VERSION:()=>N7,ATTR_SIGNALR_CONNECTION_STATUS:()=>YBt,ATTR_SIGNALR_TRANSPORT:()=>QBt,ATTR_TELEMETRY_SDK_LANGUAGE:()=>nzt,ATTR_TELEMETRY_SDK_NAME:()=>fzt,ATTR_TELEMETRY_SDK_VERSION:()=>pzt,ATTR_URL_FRAGMENT:()=>hzt,ATTR_URL_FULL:()=>py,ATTR_URL_PATH:()=>mzt,ATTR_URL_QUERY:()=>gzt,ATTR_URL_SCHEME:()=>yzt,ATTR_USER_AGENT_ORIGINAL:()=>C7,AWSECSLAUNCHTYPEVALUES_EC2:()=>HHt,AWSECSLAUNCHTYPEVALUES_FARGATE:()=>qHt,AwsEcsLaunchtypeValues:()=>BHt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS:()=>THt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC:()=>vHt,CLOUDPLATFORMVALUES_AWS_EC2:()=>RHt,CLOUDPLATFORMVALUES_AWS_ECS:()=>AHt,CLOUDPLATFORMVALUES_AWS_EKS:()=>wHt,CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK:()=>IHt,CLOUDPLATFORMVALUES_AWS_LAMBDA:()=>kHt,CLOUDPLATFORMVALUES_AZURE_AKS:()=>PHt,CLOUDPLATFORMVALUES_AZURE_APP_SERVICE:()=>CHt,CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES:()=>OHt,CLOUDPLATFORMVALUES_AZURE_FUNCTIONS:()=>NHt,CLOUDPLATFORMVALUES_AZURE_VM:()=>xHt,CLOUDPLATFORMVALUES_GCP_APP_ENGINE:()=>FHt,CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS:()=>UHt,CLOUDPLATFORMVALUES_GCP_CLOUD_RUN:()=>DHt,CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE:()=>MHt,CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE:()=>LHt,CLOUDPROVIDERVALUES_ALIBABA_CLOUD:()=>yHt,CLOUDPROVIDERVALUES_AWS:()=>SHt,CLOUDPROVIDERVALUES_AZURE:()=>bHt,CLOUDPROVIDERVALUES_GCP:()=>EHt,CloudPlatformValues:()=>jHt,CloudProviderValues:()=>_Ht,DBCASSANDRACONSISTENCYLEVELVALUES_ALL:()=>nUt,DBCASSANDRACONSISTENCYLEVELVALUES_ANY:()=>lUt,DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM:()=>rUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE:()=>uUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM:()=>sUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL:()=>fUt,DBCASSANDRACONSISTENCYLEVELVALUES_ONE:()=>oUt,DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM:()=>iUt,DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL:()=>dUt,DBCASSANDRACONSISTENCYLEVELVALUES_THREE:()=>cUt,DBCASSANDRACONSISTENCYLEVELVALUES_TWO:()=>aUt,DBSYSTEMVALUES_ADABAS:()=>A1t,DBSYSTEMVALUES_CACHE:()=>R1t,DBSYSTEMVALUES_CASSANDRA:()=>B1t,DBSYSTEMVALUES_CLOUDSCAPE:()=>g1t,DBSYSTEMVALUES_COCKROACHDB:()=>eUt,DBSYSTEMVALUES_COLDFUSION:()=>q1t,DBSYSTEMVALUES_COSMOSDB:()=>Y1t,DBSYSTEMVALUES_COUCHBASE:()=>W1t,DBSYSTEMVALUES_COUCHDB:()=>K1t,DBSYSTEMVALUES_DB2:()=>f1t,DBSYSTEMVALUES_DERBY:()=>k1t,DBSYSTEMVALUES_DYNAMODB:()=>Z1t,DBSYSTEMVALUES_EDB:()=>v1t,DBSYSTEMVALUES_ELASTICSEARCH:()=>Q1t,DBSYSTEMVALUES_FILEMAKER:()=>I1t,DBSYSTEMVALUES_FIREBIRD:()=>w1t,DBSYSTEMVALUES_FIRSTSQL:()=>T1t,DBSYSTEMVALUES_GEODE:()=>X1t,DBSYSTEMVALUES_H2:()=>H1t,DBSYSTEMVALUES_HANADB:()=>E1t,DBSYSTEMVALUES_HBASE:()=>z1t,DBSYSTEMVALUES_HIVE:()=>m1t,DBSYSTEMVALUES_HSQLDB:()=>y1t,DBSYSTEMVALUES_INFORMIX:()=>x1t,DBSYSTEMVALUES_INGRES:()=>_1t,DBSYSTEMVALUES_INSTANTDB:()=>O1t,DBSYSTEMVALUES_INTERBASE:()=>P1t,DBSYSTEMVALUES_MARIADB:()=>N1t,DBSYSTEMVALUES_MAXDB:()=>b1t,DBSYSTEMVALUES_MEMCACHED:()=>$1t,DBSYSTEMVALUES_MONGODB:()=>G1t,DBSYSTEMVALUES_MSSQL:()=>u1t,DBSYSTEMVALUES_MYSQL:()=>l1t,DBSYSTEMVALUES_NEO4J:()=>J1t,DBSYSTEMVALUES_NETEZZA:()=>C1t,DBSYSTEMVALUES_ORACLE:()=>d1t,DBSYSTEMVALUES_OTHER_SQL:()=>c1t,DBSYSTEMVALUES_PERVASIVE:()=>M1t,DBSYSTEMVALUES_POINTBASE:()=>D1t,DBSYSTEMVALUES_POSTGRESQL:()=>p1t,DBSYSTEMVALUES_PROGRESS:()=>S1t,DBSYSTEMVALUES_REDIS:()=>V1t,DBSYSTEMVALUES_REDSHIFT:()=>h1t,DBSYSTEMVALUES_SQLITE:()=>L1t,DBSYSTEMVALUES_SYBASE:()=>U1t,DBSYSTEMVALUES_TERADATA:()=>F1t,DBSYSTEMVALUES_VERTICA:()=>j1t,DB_SYSTEM_NAME_VALUE_MARIADB:()=>Yqt,DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER:()=>Zqt,DB_SYSTEM_NAME_VALUE_MYSQL:()=>Jqt,DB_SYSTEM_NAME_VALUE_POSTGRESQL:()=>Xqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN0:()=>$qt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN1:()=>eBt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN2:()=>tBt,DOTNET_GC_HEAP_GENERATION_VALUE_LOH:()=>Wyr,DOTNET_GC_HEAP_GENERATION_VALUE_POH:()=>Kyr,DbCassandraConsistencyLevelValues:()=>pUt,DbSystemValues:()=>tUt,ERROR_TYPE_VALUE_OTHER:()=>nBt,EVENT_EXCEPTION:()=>mGt,FAASDOCUMENTOPERATIONVALUES_DELETE:()=>TUt,FAASDOCUMENTOPERATIONVALUES_EDIT:()=>_Ut,FAASDOCUMENTOPERATIONVALUES_INSERT:()=>EUt,FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD:()=>RUt,FAASINVOKEDPROVIDERVALUES_AWS:()=>AUt,FAASINVOKEDPROVIDERVALUES_AZURE:()=>wUt,FAASINVOKEDPROVIDERVALUES_GCP:()=>kUt,FAASTRIGGERVALUES_DATASOURCE:()=>hUt,FAASTRIGGERVALUES_HTTP:()=>mUt,FAASTRIGGERVALUES_OTHER:()=>SUt,FAASTRIGGERVALUES_PUBSUB:()=>gUt,FAASTRIGGERVALUES_TIMER:()=>yUt,FaasDocumentOperationValues:()=>vUt,FaasInvokedProviderValues:()=>IUt,FaasTriggerValues:()=>bUt,HOSTARCHVALUES_AMD64:()=>zHt,HOSTARCHVALUES_ARM32:()=>GHt,HOSTARCHVALUES_ARM64:()=>VHt,HOSTARCHVALUES_IA64:()=>WHt,HOSTARCHVALUES_PPC32:()=>KHt,HOSTARCHVALUES_PPC64:()=>YHt,HOSTARCHVALUES_X86:()=>ZHt,HTTPFLAVORVALUES_HTTP_1_0:()=>dFt,HTTPFLAVORVALUES_HTTP_1_1:()=>fFt,HTTPFLAVORVALUES_HTTP_2_0:()=>pFt,HTTPFLAVORVALUES_QUIC:()=>mFt,HTTPFLAVORVALUES_SPDY:()=>hFt,HTTP_REQUEST_METHOD_VALUE_CONNECT:()=>uBt,HTTP_REQUEST_METHOD_VALUE_DELETE:()=>lBt,HTTP_REQUEST_METHOD_VALUE_GET:()=>Yyr,HTTP_REQUEST_METHOD_VALUE_HEAD:()=>dBt,HTTP_REQUEST_METHOD_VALUE_OPTIONS:()=>fBt,HTTP_REQUEST_METHOD_VALUE_OTHER:()=>cBt,HTTP_REQUEST_METHOD_VALUE_PATCH:()=>pBt,HTTP_REQUEST_METHOD_VALUE_POST:()=>hBt,HTTP_REQUEST_METHOD_VALUE_PUT:()=>Zyr,HTTP_REQUEST_METHOD_VALUE_TRACE:()=>mBt,HostArchValues:()=>JHt,HttpFlavorValues:()=>gFt,JVM_MEMORY_TYPE_VALUE_HEAP:()=>vBt,JVM_MEMORY_TYPE_VALUE_NON_HEAP:()=>RBt,JVM_THREAD_STATE_VALUE_BLOCKED:()=>kBt,JVM_THREAD_STATE_VALUE_NEW:()=>Jyr,JVM_THREAD_STATE_VALUE_RUNNABLE:()=>IBt,JVM_THREAD_STATE_VALUE_TERMINATED:()=>xBt,JVM_THREAD_STATE_VALUE_TIMED_WAITING:()=>OBt,JVM_THREAD_STATE_VALUE_WAITING:()=>PBt,MESSAGETYPEVALUES_RECEIVED:()=>BFt,MESSAGETYPEVALUES_SENT:()=>qFt,MESSAGINGDESTINATIONKINDVALUES_QUEUE:()=>yFt,MESSAGINGDESTINATIONKINDVALUES_TOPIC:()=>SFt,MESSAGINGOPERATIONVALUES_PROCESS:()=>_Ft,MESSAGINGOPERATIONVALUES_RECEIVE:()=>EFt,METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS:()=>Szt,METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES:()=>bzt,METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS:()=>Ezt,METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS:()=>vzt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION:()=>Tzt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE:()=>_zt,METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS:()=>Rzt,METRIC_DB_CLIENT_OPERATION_DURATION:()=>Azt,METRIC_DOTNET_ASSEMBLY_COUNT:()=>wzt,METRIC_DOTNET_EXCEPTIONS:()=>kzt,METRIC_DOTNET_GC_COLLECTIONS:()=>Izt,METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED:()=>xzt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE:()=>Ozt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE:()=>Pzt,METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE:()=>Nzt,METRIC_DOTNET_GC_PAUSE_TIME:()=>Czt,METRIC_DOTNET_JIT_COMPILATION_TIME:()=>Mzt,METRIC_DOTNET_JIT_COMPILED_IL_SIZE:()=>Dzt,METRIC_DOTNET_JIT_COMPILED_METHODS:()=>Lzt,METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS:()=>Uzt,METRIC_DOTNET_PROCESS_CPU_COUNT:()=>Fzt,METRIC_DOTNET_PROCESS_CPU_TIME:()=>jzt,METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET:()=>Hzt,METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH:()=>qzt,METRIC_DOTNET_THREAD_POOL_THREAD_COUNT:()=>Bzt,METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT:()=>zzt,METRIC_DOTNET_TIMER_COUNT:()=>Gzt,METRIC_HTTP_CLIENT_REQUEST_DURATION:()=>Vzt,METRIC_HTTP_SERVER_REQUEST_DURATION:()=>Wzt,METRIC_JVM_CLASS_COUNT:()=>Kzt,METRIC_JVM_CLASS_LOADED:()=>Yzt,METRIC_JVM_CLASS_UNLOADED:()=>Zzt,METRIC_JVM_CPU_COUNT:()=>Jzt,METRIC_JVM_CPU_RECENT_UTILIZATION:()=>Xzt,METRIC_JVM_CPU_TIME:()=>Qzt,METRIC_JVM_GC_DURATION:()=>$zt,METRIC_JVM_MEMORY_COMMITTED:()=>eGt,METRIC_JVM_MEMORY_LIMIT:()=>tGt,METRIC_JVM_MEMORY_USED:()=>nGt,METRIC_JVM_MEMORY_USED_AFTER_LAST_GC:()=>rGt,METRIC_JVM_THREAD_COUNT:()=>iGt,METRIC_KESTREL_ACTIVE_CONNECTIONS:()=>sGt,METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES:()=>oGt,METRIC_KESTREL_CONNECTION_DURATION:()=>aGt,METRIC_KESTREL_QUEUED_CONNECTIONS:()=>cGt,METRIC_KESTREL_QUEUED_REQUESTS:()=>uGt,METRIC_KESTREL_REJECTED_CONNECTIONS:()=>lGt,METRIC_KESTREL_TLS_HANDSHAKE_DURATION:()=>dGt,METRIC_KESTREL_UPGRADED_CONNECTIONS:()=>fGt,METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS:()=>pGt,METRIC_SIGNALR_SERVER_CONNECTION_DURATION:()=>hGt,MessageTypeValues:()=>zFt,MessagingDestinationKindValues:()=>bFt,MessagingOperationValues:()=>TFt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA:()=>WUt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT:()=>ZUt,NETHOSTCONNECTIONSUBTYPEVALUES_EDGE:()=>GUt,NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD:()=>nFt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0:()=>KUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A:()=>YUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B:()=>eFt,NETHOSTCONNECTIONSUBTYPEVALUES_GPRS:()=>zUt,NETHOSTCONNECTIONSUBTYPEVALUES_GSM:()=>iFt,NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA:()=>JUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPA:()=>QUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP:()=>rFt,NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA:()=>XUt,NETHOSTCONNECTIONSUBTYPEVALUES_IDEN:()=>$Ut,NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN:()=>oFt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE:()=>tFt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA:()=>uFt,NETHOSTCONNECTIONSUBTYPEVALUES_NR:()=>aFt,NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA:()=>cFt,NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA:()=>sFt,NETHOSTCONNECTIONSUBTYPEVALUES_UMTS:()=>VUt,NETHOSTCONNECTIONTYPEVALUES_CELL:()=>jUt,NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE:()=>HUt,NETHOSTCONNECTIONTYPEVALUES_UNKNOWN:()=>qUt,NETHOSTCONNECTIONTYPEVALUES_WIFI:()=>UUt,NETHOSTCONNECTIONTYPEVALUES_WIRED:()=>FUt,NETTRANSPORTVALUES_INPROC:()=>MUt,NETTRANSPORTVALUES_IP:()=>PUt,NETTRANSPORTVALUES_IP_TCP:()=>xUt,NETTRANSPORTVALUES_IP_UDP:()=>OUt,NETTRANSPORTVALUES_OTHER:()=>DUt,NETTRANSPORTVALUES_PIPE:()=>CUt,NETTRANSPORTVALUES_UNIX:()=>NUt,NETWORK_TRANSPORT_VALUE_PIPE:()=>DBt,NETWORK_TRANSPORT_VALUE_QUIC:()=>LBt,NETWORK_TRANSPORT_VALUE_TCP:()=>Xyr,NETWORK_TRANSPORT_VALUE_UDP:()=>Qyr,NETWORK_TRANSPORT_VALUE_UNIX:()=>UBt,NETWORK_TYPE_VALUE_IPV4:()=>jBt,NETWORK_TYPE_VALUE_IPV6:()=>HBt,NetHostConnectionSubtypeValues:()=>lFt,NetHostConnectionTypeValues:()=>BUt,NetTransportValues:()=>LUt,OSTYPEVALUES_AIX:()=>sqt,OSTYPEVALUES_DARWIN:()=>$Ht,OSTYPEVALUES_DRAGONFLYBSD:()=>rqt,OSTYPEVALUES_FREEBSD:()=>eqt,OSTYPEVALUES_HPUX:()=>iqt,OSTYPEVALUES_LINUX:()=>QHt,OSTYPEVALUES_NETBSD:()=>tqt,OSTYPEVALUES_OPENBSD:()=>nqt,OSTYPEVALUES_SOLARIS:()=>oqt,OSTYPEVALUES_WINDOWS:()=>XHt,OSTYPEVALUES_Z_OS:()=>aqt,OTEL_STATUS_CODE_VALUE_ERROR:()=>GBt,OTEL_STATUS_CODE_VALUE_OK:()=>$yr,OsTypeValues:()=>cqt,RPCGRPCSTATUSCODEVALUES_ABORTED:()=>CFt,RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS:()=>xFt,RPCGRPCSTATUSCODEVALUES_CANCELLED:()=>RFt,RPCGRPCSTATUSCODEVALUES_DATA_LOSS:()=>FFt,RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED:()=>kFt,RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION:()=>NFt,RPCGRPCSTATUSCODEVALUES_INTERNAL:()=>LFt,RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT:()=>wFt,RPCGRPCSTATUSCODEVALUES_NOT_FOUND:()=>IFt,RPCGRPCSTATUSCODEVALUES_OK:()=>vFt,RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE:()=>MFt,RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED:()=>OFt,RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED:()=>PFt,RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED:()=>jFt,RPCGRPCSTATUSCODEVALUES_UNAVAILABLE:()=>UFt,RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED:()=>DFt,RPCGRPCSTATUSCODEVALUES_UNKNOWN:()=>AFt,RpcGrpcStatusCodeValues:()=>HFt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET:()=>bLt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:()=>PLt,SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ:()=>gLt,SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY:()=>fLt,SEMATTRS_AWS_DYNAMODB_COUNT:()=>xLt,SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE:()=>RLt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:()=>TLt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:()=>NLt,SEMATTRS_AWS_DYNAMODB_INDEX_NAME:()=>ELt,SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS:()=>pLt,SEMATTRS_AWS_DYNAMODB_LIMIT:()=>SLt,SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:()=>vLt,SEMATTRS_AWS_DYNAMODB_PROJECTION:()=>yLt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:()=>hLt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:()=>mLt,SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT:()=>OLt,SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD:()=>wLt,SEMATTRS_AWS_DYNAMODB_SEGMENT:()=>kLt,SEMATTRS_AWS_DYNAMODB_SELECT:()=>_Lt,SEMATTRS_AWS_DYNAMODB_TABLE_COUNT:()=>ALt,SEMATTRS_AWS_DYNAMODB_TABLE_NAMES:()=>dLt,SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS:()=>ILt,SEMATTRS_AWS_LAMBDA_INVOKED_ARN:()=>rDt,SEMATTRS_CODE_FILEPATH:()=>tLt,SEMATTRS_CODE_FUNCTION:()=>$Dt,SEMATTRS_CODE_LINENO:()=>nLt,SEMATTRS_CODE_NAMESPACE:()=>eLt,SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL:()=>fDt,SEMATTRS_DB_CASSANDRA_COORDINATOR_DC:()=>yDt,SEMATTRS_DB_CASSANDRA_COORDINATOR_ID:()=>gDt,SEMATTRS_DB_CASSANDRA_IDEMPOTENCE:()=>hDt,SEMATTRS_DB_CASSANDRA_KEYSPACE:()=>lDt,SEMATTRS_DB_CASSANDRA_PAGE_SIZE:()=>dDt,SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:()=>mDt,SEMATTRS_DB_CASSANDRA_TABLE:()=>pDt,SEMATTRS_DB_CONNECTION_STRING:()=>iDt,SEMATTRS_DB_HBASE_NAMESPACE:()=>SDt,SEMATTRS_DB_JDBC_DRIVER_CLASSNAME:()=>oDt,SEMATTRS_DB_MONGODB_COLLECTION:()=>EDt,SEMATTRS_DB_MSSQL_INSTANCE_NAME:()=>uDt,SEMATTRS_DB_NAME:()=>aDt,SEMATTRS_DB_OPERATION:()=>cDt,SEMATTRS_DB_REDIS_DATABASE_INDEX:()=>bDt,SEMATTRS_DB_SQL_TABLE:()=>_Dt,SEMATTRS_DB_STATEMENT:()=>a7,SEMATTRS_DB_SYSTEM:()=>o7,SEMATTRS_DB_USER:()=>sDt,SEMATTRS_ENDUSER_ID:()=>YDt,SEMATTRS_ENDUSER_ROLE:()=>ZDt,SEMATTRS_ENDUSER_SCOPE:()=>JDt,SEMATTRS_EXCEPTION_ESCAPED:()=>ADt,SEMATTRS_EXCEPTION_MESSAGE:()=>vDt,SEMATTRS_EXCEPTION_STACKTRACE:()=>RDt,SEMATTRS_EXCEPTION_TYPE:()=>TDt,SEMATTRS_FAAS_COLDSTART:()=>CDt,SEMATTRS_FAAS_CRON:()=>NDt,SEMATTRS_FAAS_DOCUMENT_COLLECTION:()=>kDt,SEMATTRS_FAAS_DOCUMENT_NAME:()=>ODt,SEMATTRS_FAAS_DOCUMENT_OPERATION:()=>IDt,SEMATTRS_FAAS_DOCUMENT_TIME:()=>xDt,SEMATTRS_FAAS_EXECUTION:()=>wDt,SEMATTRS_FAAS_INVOKED_NAME:()=>MDt,SEMATTRS_FAAS_INVOKED_PROVIDER:()=>DDt,SEMATTRS_FAAS_INVOKED_REGION:()=>LDt,SEMATTRS_FAAS_TIME:()=>PDt,SEMATTRS_FAAS_TRIGGER:()=>c7,SEMATTRS_HTTP_CLIENT_IP:()=>lLt,SEMATTRS_HTTP_FLAVOR:()=>sLt,SEMATTRS_HTTP_HOST:()=>rLt,SEMATTRS_HTTP_METHOD:()=>_O,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH:()=>aLt,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:()=>cLt,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH:()=>p7,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:()=>h7,SEMATTRS_HTTP_ROUTE:()=>m7,SEMATTRS_HTTP_SCHEME:()=>iLt,SEMATTRS_HTTP_SERVER_NAME:()=>uLt,SEMATTRS_HTTP_STATUS_CODE:()=>yE,SEMATTRS_HTTP_TARGET:()=>f7,SEMATTRS_HTTP_URL:()=>gR,SEMATTRS_HTTP_USER_AGENT:()=>oLt,SEMATTRS_MESSAGE_COMPRESSED_SIZE:()=>s1t,SEMATTRS_MESSAGE_ID:()=>i1t,SEMATTRS_MESSAGE_TYPE:()=>r1t,SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE:()=>o1t,SEMATTRS_MESSAGING_CONSUMER_ID:()=>GLt,SEMATTRS_MESSAGING_CONVERSATION_ID:()=>HLt,SEMATTRS_MESSAGING_DESTINATION:()=>CLt,SEMATTRS_MESSAGING_DESTINATION_KIND:()=>MLt,SEMATTRS_MESSAGING_KAFKA_CLIENT_ID:()=>YLt,SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP:()=>KLt,SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY:()=>WLt,SEMATTRS_MESSAGING_KAFKA_PARTITION:()=>ZLt,SEMATTRS_MESSAGING_KAFKA_TOMBSTONE:()=>JLt,SEMATTRS_MESSAGING_MESSAGE_ID:()=>jLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:()=>BLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:()=>qLt,SEMATTRS_MESSAGING_OPERATION:()=>zLt,SEMATTRS_MESSAGING_PROTOCOL:()=>LLt,SEMATTRS_MESSAGING_PROTOCOL_VERSION:()=>ULt,SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY:()=>VLt,SEMATTRS_MESSAGING_SYSTEM:()=>g7,SEMATTRS_MESSAGING_TEMP_DESTINATION:()=>DLt,SEMATTRS_MESSAGING_URL:()=>FLt,SEMATTRS_NET_HOST_CARRIER_ICC:()=>WDt,SEMATTRS_NET_HOST_CARRIER_MCC:()=>GDt,SEMATTRS_NET_HOST_CARRIER_MNC:()=>VDt,SEMATTRS_NET_HOST_CARRIER_NAME:()=>zDt,SEMATTRS_NET_HOST_CONNECTION_SUBTYPE:()=>BDt,SEMATTRS_NET_HOST_CONNECTION_TYPE:()=>qDt,SEMATTRS_NET_HOST_IP:()=>l7,SEMATTRS_NET_HOST_NAME:()=>HDt,SEMATTRS_NET_HOST_PORT:()=>d7,SEMATTRS_NET_PEER_IP:()=>u7,SEMATTRS_NET_PEER_NAME:()=>jDt,SEMATTRS_NET_PEER_PORT:()=>FDt,SEMATTRS_NET_TRANSPORT:()=>UDt,SEMATTRS_PEER_SERVICE:()=>KDt,SEMATTRS_RPC_GRPC_STATUS_CODE:()=>S7,SEMATTRS_RPC_JSONRPC_ERROR_CODE:()=>t1t,SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE:()=>n1t,SEMATTRS_RPC_JSONRPC_REQUEST_ID:()=>e1t,SEMATTRS_RPC_JSONRPC_VERSION:()=>$Lt,SEMATTRS_RPC_METHOD:()=>QLt,SEMATTRS_RPC_SERVICE:()=>y7,SEMATTRS_RPC_SYSTEM:()=>XLt,SEMATTRS_THREAD_ID:()=>XDt,SEMATTRS_THREAD_NAME:()=>QDt,SEMRESATTRS_AWS_ECS_CLUSTER_ARN:()=>JFt,SEMRESATTRS_AWS_ECS_CONTAINER_ARN:()=>ZFt,SEMRESATTRS_AWS_ECS_LAUNCHTYPE:()=>XFt,SEMRESATTRS_AWS_ECS_TASK_ARN:()=>QFt,SEMRESATTRS_AWS_ECS_TASK_FAMILY:()=>$Ft,SEMRESATTRS_AWS_ECS_TASK_REVISION:()=>ejt,SEMRESATTRS_AWS_EKS_CLUSTER_ARN:()=>tjt,SEMRESATTRS_AWS_LOG_GROUP_ARNS:()=>rjt,SEMRESATTRS_AWS_LOG_GROUP_NAMES:()=>njt,SEMRESATTRS_AWS_LOG_STREAM_ARNS:()=>sjt,SEMRESATTRS_AWS_LOG_STREAM_NAMES:()=>ijt,SEMRESATTRS_CLOUD_ACCOUNT_ID:()=>VFt,SEMRESATTRS_CLOUD_AVAILABILITY_ZONE:()=>KFt,SEMRESATTRS_CLOUD_PLATFORM:()=>YFt,SEMRESATTRS_CLOUD_PROVIDER:()=>GFt,SEMRESATTRS_CLOUD_REGION:()=>WFt,SEMRESATTRS_CONTAINER_ID:()=>ajt,SEMRESATTRS_CONTAINER_IMAGE_NAME:()=>ujt,SEMRESATTRS_CONTAINER_IMAGE_TAG:()=>ljt,SEMRESATTRS_CONTAINER_NAME:()=>ojt,SEMRESATTRS_CONTAINER_RUNTIME:()=>cjt,SEMRESATTRS_DEPLOYMENT_ENVIRONMENT:()=>djt,SEMRESATTRS_DEVICE_ID:()=>fjt,SEMRESATTRS_DEVICE_MODEL_IDENTIFIER:()=>pjt,SEMRESATTRS_DEVICE_MODEL_NAME:()=>hjt,SEMRESATTRS_FAAS_ID:()=>gjt,SEMRESATTRS_FAAS_INSTANCE:()=>Sjt,SEMRESATTRS_FAAS_MAX_MEMORY:()=>bjt,SEMRESATTRS_FAAS_NAME:()=>mjt,SEMRESATTRS_FAAS_VERSION:()=>yjt,SEMRESATTRS_HOST_ARCH:()=>vjt,SEMRESATTRS_HOST_ID:()=>Ejt,SEMRESATTRS_HOST_IMAGE_ID:()=>Ajt,SEMRESATTRS_HOST_IMAGE_NAME:()=>Rjt,SEMRESATTRS_HOST_IMAGE_VERSION:()=>wjt,SEMRESATTRS_HOST_NAME:()=>_jt,SEMRESATTRS_HOST_TYPE:()=>Tjt,SEMRESATTRS_K8S_CLUSTER_NAME:()=>kjt,SEMRESATTRS_K8S_CONTAINER_NAME:()=>Cjt,SEMRESATTRS_K8S_CRONJOB_NAME:()=>Vjt,SEMRESATTRS_K8S_CRONJOB_UID:()=>Gjt,SEMRESATTRS_K8S_DAEMONSET_NAME:()=>qjt,SEMRESATTRS_K8S_DAEMONSET_UID:()=>Hjt,SEMRESATTRS_K8S_DEPLOYMENT_NAME:()=>Ujt,SEMRESATTRS_K8S_DEPLOYMENT_UID:()=>Ljt,SEMRESATTRS_K8S_JOB_NAME:()=>zjt,SEMRESATTRS_K8S_JOB_UID:()=>Bjt,SEMRESATTRS_K8S_NAMESPACE_NAME:()=>Ojt,SEMRESATTRS_K8S_NODE_NAME:()=>Ijt,SEMRESATTRS_K8S_NODE_UID:()=>xjt,SEMRESATTRS_K8S_POD_NAME:()=>Njt,SEMRESATTRS_K8S_POD_UID:()=>Pjt,SEMRESATTRS_K8S_REPLICASET_NAME:()=>Djt,SEMRESATTRS_K8S_REPLICASET_UID:()=>Mjt,SEMRESATTRS_K8S_STATEFULSET_NAME:()=>jjt,SEMRESATTRS_K8S_STATEFULSET_UID:()=>Fjt,SEMRESATTRS_OS_DESCRIPTION:()=>Kjt,SEMRESATTRS_OS_NAME:()=>Yjt,SEMRESATTRS_OS_TYPE:()=>Wjt,SEMRESATTRS_OS_VERSION:()=>Zjt,SEMRESATTRS_PROCESS_COMMAND:()=>$jt,SEMRESATTRS_PROCESS_COMMAND_ARGS:()=>tHt,SEMRESATTRS_PROCESS_COMMAND_LINE:()=>eHt,SEMRESATTRS_PROCESS_EXECUTABLE_NAME:()=>Xjt,SEMRESATTRS_PROCESS_EXECUTABLE_PATH:()=>Qjt,SEMRESATTRS_PROCESS_OWNER:()=>nHt,SEMRESATTRS_PROCESS_PID:()=>Jjt,SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION:()=>sHt,SEMRESATTRS_PROCESS_RUNTIME_NAME:()=>rHt,SEMRESATTRS_PROCESS_RUNTIME_VERSION:()=>iHt,SEMRESATTRS_SERVICE_INSTANCE_ID:()=>aHt,SEMRESATTRS_SERVICE_NAME:()=>oHt,SEMRESATTRS_SERVICE_NAMESPACE:()=>b7,SEMRESATTRS_SERVICE_VERSION:()=>cHt,SEMRESATTRS_TELEMETRY_AUTO_VERSION:()=>fHt,SEMRESATTRS_TELEMETRY_SDK_LANGUAGE:()=>lHt,SEMRESATTRS_TELEMETRY_SDK_NAME:()=>uHt,SEMRESATTRS_TELEMETRY_SDK_VERSION:()=>dHt,SEMRESATTRS_WEBENGINE_DESCRIPTION:()=>mHt,SEMRESATTRS_WEBENGINE_NAME:()=>pHt,SEMRESATTRS_WEBENGINE_VERSION:()=>hHt,SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN:()=>ZBt,SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE:()=>JBt,SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT:()=>XBt,SIGNALR_TRANSPORT_VALUE_LONG_POLLING:()=>$Bt,SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS:()=>ezt,SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS:()=>tzt,SemanticAttributes:()=>a1t,SemanticResourceAttributes:()=>gHt,TELEMETRYSDKLANGUAGEVALUES_CPP:()=>uqt,TELEMETRYSDKLANGUAGEVALUES_DOTNET:()=>lqt,TELEMETRYSDKLANGUAGEVALUES_ERLANG:()=>dqt,TELEMETRYSDKLANGUAGEVALUES_GO:()=>fqt,TELEMETRYSDKLANGUAGEVALUES_JAVA:()=>pqt,TELEMETRYSDKLANGUAGEVALUES_NODEJS:()=>hqt,TELEMETRYSDKLANGUAGEVALUES_PHP:()=>mqt,TELEMETRYSDKLANGUAGEVALUES_PYTHON:()=>gqt,TELEMETRYSDKLANGUAGEVALUES_RUBY:()=>yqt,TELEMETRYSDKLANGUAGEVALUES_WEBJS:()=>Sqt,TELEMETRY_SDK_LANGUAGE_VALUE_CPP:()=>eSr,TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET:()=>rzt,TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG:()=>izt,TELEMETRY_SDK_LANGUAGE_VALUE_GO:()=>tSr,TELEMETRY_SDK_LANGUAGE_VALUE_JAVA:()=>szt,TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS:()=>ozt,TELEMETRY_SDK_LANGUAGE_VALUE_PHP:()=>nSr,TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON:()=>azt,TELEMETRY_SDK_LANGUAGE_VALUE_RUBY:()=>czt,TELEMETRY_SDK_LANGUAGE_VALUE_RUST:()=>uzt,TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT:()=>lzt,TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS:()=>dzt,TelemetrySdkLanguageValues:()=>bqt});var Nn=v(()=>{q0e();pPe();hPe();mPe();gPe()});var yPe=w(MF=>{"use strict";Object.defineProperty(MF,"__esModule",{value:!0});MF.ATTR_PROCESS_RUNTIME_NAME=void 0;MF.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var SPe=w(LF=>{"use strict";Object.defineProperty(LF,"__esModule",{value:!0});LF.SDK_INFO=void 0;var gGt=JRe(),DF=(Nn(),ke(Mr)),yGt=yPe();LF.SDK_INFO={[DF.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[yGt.ATTR_PROCESS_RUNTIME_NAME]:"node",[DF.ATTR_TELEMETRY_SDK_LANGUAGE]:DF.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[DF.ATTR_TELEMETRY_SDK_VERSION]:gGt.VERSION}});var bPe=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 UF=YRe();Object.defineProperty(za,"getStringFromEnv",{enumerable:!0,get:function(){return UF.getStringFromEnv}});Object.defineProperty(za,"getBooleanFromEnv",{enumerable:!0,get:function(){return UF.getBooleanFromEnv}});Object.defineProperty(za,"getNumberFromEnv",{enumerable:!0,get:function(){return UF.getNumberFromEnv}});Object.defineProperty(za,"getStringListFromEnv",{enumerable:!0,get:function(){return UF.getStringListFromEnv}});var SGt=ZRe();Object.defineProperty(za,"_globalThis",{enumerable:!0,get:function(){return SGt._globalThis}});var bGt=SPe();Object.defineProperty(za,"SDK_INFO",{enumerable:!0,get:function(){return bGt.SDK_INFO}});za.otperformance=performance});var M7=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 EE=bPe();Object.defineProperty(Ga,"SDK_INFO",{enumerable:!0,get:function(){return EE.SDK_INFO}});Object.defineProperty(Ga,"_globalThis",{enumerable:!0,get:function(){return EE._globalThis}});Object.defineProperty(Ga,"otperformance",{enumerable:!0,get:function(){return EE.otperformance}});Object.defineProperty(Ga,"getBooleanFromEnv",{enumerable:!0,get:function(){return EE.getBooleanFromEnv}});Object.defineProperty(Ga,"getStringFromEnv",{enumerable:!0,get:function(){return EE.getStringFromEnv}});Object.defineProperty(Ga,"getNumberFromEnv",{enumerable:!0,get:function(){return EE.getNumberFromEnv}});Object.defineProperty(Ga,"getStringListFromEnv",{enumerable:!0,get:function(){return EE.getStringListFromEnv}})});var vPe=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 FF=M7(),EPe=9,EGt=6,_Gt=Math.pow(10,EGt),jF=Math.pow(10,EPe);function TO(e){let t=e/1e3,n=Math.trunc(t),r=Math.round(e%1e3*_Gt);return[n,r]}ei.millisToHrTime=TO;function TGt(){return FF.otperformance.timeOrigin}ei.getTimeOrigin=TGt;function _Pe(e){let t=TO(FF.otperformance.timeOrigin),n=TO(typeof e=="number"?e:FF.otperformance.now());return TPe(t,n)}ei.hrTime=_Pe;function vGt(e){if(D7(e))return e;if(typeof e=="number")return e=jF&&(n[1]-=jF,n[0]+=1),n}ei.addHrTimes=TPe});var RPe=w(HF=>{"use strict";Object.defineProperty(HF,"__esModule",{value:!0});HF.unrefTimer=void 0;function OGt(e){typeof e!="number"&&e.unref()}HF.unrefTimer=OGt});var APe=w(vO=>{"use strict";Object.defineProperty(vO,"__esModule",{value:!0});vO.ExportResultCode=void 0;var PGt;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(PGt=vO.ExportResultCode||(vO.ExportResultCode={}))});var kPe=w(qF=>{"use strict";Object.defineProperty(qF,"__esModule",{value:!0});qF.CompositePropagator=void 0;var wPe=(Me(),ke(Ze)),L7=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){wPe.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){wPe.diag.warn(`Failed to extract with ${s.constructor.name}. Err: ${o.message}`)}return i},t)}fields(){return this._fields.slice()}};qF.CompositePropagator=L7});var IPe=w(SR=>{"use strict";Object.defineProperty(SR,"__esModule",{value:!0});SR.validateValue=SR.validateKey=void 0;var U7="[_0-9a-z-*/]",NGt=`[a-z]${U7}{0,255}`,CGt=`[a-z0-9]${U7}{0,240}@[a-z]${U7}{0,13}`,MGt=new RegExp(`^(?:${NGt}|${CGt})$`),DGt=/^[ -~]{0,255}[!-~]$/,LGt=/,|=/;function UGt(e){return MGt.test(e)}SR.validateKey=UGt;function FGt(e){return DGt.test(e)&&!LGt.test(e)}SR.validateValue=FGt});var j7=w(BF=>{"use strict";Object.defineProperty(BF,"__esModule",{value:!0});BF.TraceState=void 0;var xPe=IPe(),OPe=32,jGt=512,PPe=",",NPe="=",F7=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+NPe+this.get(n)),t),[]).join(PPe)}_parse(t){t.length>jGt||(this._internalState=t.split(PPe).reverse().reduce((n,r)=>{let i=r.trim(),s=i.indexOf(NPe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);(0,xPe.validateKey)(o)&&(0,xPe.validateValue)(a)&&n.set(o,a)}return n},new Map),this._internalState.size>OPe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,OPe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};BF.TraceState=F7});var MPe=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 zF=(Me(),ke(Ze)),HGt=EO(),qGt=j7();Va.TRACE_PARENT_HEADER="traceparent";Va.TRACE_STATE_HEADER="tracestate";var BGt="00",zGt="(?!ff)[\\da-f]{2}",GGt="(?![0]{32})[\\da-f]{32}",VGt="(?![0]{16})[\\da-f]{16}",WGt="[\\da-f]{2}",KGt=new RegExp(`^\\s?(${zGt})-(${GGt})-(${VGt})-(${WGt})(-.*)?\\s?$`);function CPe(e){let t=KGt.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}Va.parseTraceParent=CPe;var H7=class{inject(t,n,r){let i=zF.trace.getSpanContext(t);if(!i||(0,HGt.isTracingSuppressed)(t)||!(0,zF.isSpanContextValid)(i))return;let s=`${BGt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||zF.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=CPe(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 qGt.TraceState(typeof c=="string"?c:void 0)}return zF.trace.setSpanContext(t,o)}fields(){return[Va.TRACE_PARENT_HEADER,Va.TRACE_STATE_HEADER]}};Va.W3CTraceContextPropagator=H7});var DPe=w($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});$d.getRPCMetadata=$d.deleteRPCMetadata=$d.setRPCMetadata=$d.RPCType=void 0;var YGt=(Me(),ke(Ze)),q7=(0,YGt.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),ZGt;(function(e){e.HTTP="http"})(ZGt=$d.RPCType||($d.RPCType={}));function JGt(e,t){return e.setValue(q7,t)}$d.setRPCMetadata=JGt;function XGt(e){return e.deleteValue(q7)}$d.deleteRPCMetadata=XGt;function QGt(e){return e.getValue(q7)}$d.getRPCMetadata=QGt});var HPe=w(GF=>{"use strict";Object.defineProperty(GF,"__esModule",{value:!0});GF.isPlainObject=void 0;var $Gt="[object Object]",e2t="[object Null]",t2t="[object Undefined]",n2t=Function.prototype,LPe=n2t.toString,r2t=LPe.call(Object),i2t=Object.getPrototypeOf,UPe=Object.prototype,FPe=UPe.hasOwnProperty,_E=Symbol?Symbol.toStringTag:void 0,jPe=UPe.toString;function s2t(e){if(!o2t(e)||a2t(e)!==$Gt)return!1;let t=i2t(e);if(t===null)return!0;let n=FPe.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&LPe.call(n)===r2t}GF.isPlainObject=s2t;function o2t(e){return e!=null&&typeof e=="object"}function a2t(e){return e==null?e===void 0?t2t:e2t:_E&&_E in Object(e)?c2t(e):u2t(e)}function c2t(e){let t=FPe.call(e,_E),n=e[_E],r=!1;try{e[_E]=void 0,r=!0}catch{}let i=jPe.call(e);return r&&(t?e[_E]=n:delete e[_E]),i}function u2t(e){return jPe.call(e)}});var VPe=w(KF=>{"use strict";Object.defineProperty(KF,"__esModule",{value:!0});KF.merge=void 0;var qPe=HPe(),l2t=20;function d2t(...e){let t=e.shift(),n=new WeakMap;for(;e.length>0;)t=zPe(t,e.shift(),0,n);return t}KF.merge=d2t;function B7(e){return WF(e)?e.slice():e}function zPe(e,t,n=0,r){let i;if(!(n>l2t)){if(n++,VF(e)||VF(t)||GPe(t))i=B7(t);else if(WF(e)){if(i=e.slice(),WF(t))for(let s=0,o=t.length;s"u"?delete i[c]:i[c]=u;else{let l=i[c],d=u;if(BPe(e,c,r)||BPe(t,c,r))delete i[c];else{if(RO(l)&&RO(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]=zPe(i[c],u,n,r)}}}}else i=t;return i}}function BPe(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 f2t(e,t){return!(!(0,qPe.isPlainObject)(e)||!(0,qPe.isPlainObject)(t))}});var WPe=w(bR=>{"use strict";Object.defineProperty(bR,"__esModule",{value:!0});bR.callWithTimeout=bR.TimeoutError=void 0;var YF=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};bR.TimeoutError=YF;function p2t(e,t){let n,r=new Promise(function(s,o){n=setTimeout(function(){o(new YF("Operation timed out."))},t)});return Promise.race([e,r]).then(i=>(clearTimeout(n),i),i=>{throw clearTimeout(n),i})}bR.callWithTimeout=p2t});var YPe=w(ER=>{"use strict";Object.defineProperty(ER,"__esModule",{value:!0});ER.isUrlIgnored=ER.urlMatches=void 0;function KPe(e,t){return typeof t=="string"?e===t:!!e.match(t)}ER.urlMatches=KPe;function h2t(e,t){if(!t)return!1;for(let n of t)if(KPe(e,n))return!0;return!1}ER.isUrlIgnored=h2t});var ZPe=w(ZF=>{"use strict";Object.defineProperty(ZF,"__esModule",{value:!0});ZF.Deferred=void 0;var z7=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)}};ZF.Deferred=z7});var JPe=w(JF=>{"use strict";Object.defineProperty(JF,"__esModule",{value:!0});JF.BindOnceFuture=void 0;var m2t=ZPe(),G7=class{_isCalled=!1;_deferred=new m2t.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}};JF.BindOnceFuture=G7});var QPe=w(XF=>{"use strict";Object.defineProperty(XF,"__esModule",{value:!0});XF.diagLogLevelFromString=void 0;var fm=(Me(),ke(Ze)),XPe={ALL:fm.DiagLogLevel.ALL,VERBOSE:fm.DiagLogLevel.VERBOSE,DEBUG:fm.DiagLogLevel.DEBUG,INFO:fm.DiagLogLevel.INFO,WARN:fm.DiagLogLevel.WARN,ERROR:fm.DiagLogLevel.ERROR,NONE:fm.DiagLogLevel.NONE};function g2t(e){if(e==null)return;let t=XPe[e.toUpperCase()];return t??(fm.diag.warn(`Unknown log level "${e}", expected one of ${Object.keys(XPe)}, using default`),fm.DiagLogLevel.INFO)}XF.diagLogLevelFromString=g2t});var eNe=w(QF=>{"use strict";Object.defineProperty(QF,"__esModule",{value:!0});QF._export=void 0;var $Pe=(Me(),ke(Ze)),y2t=EO();function S2t(e,t){return new Promise(n=>{$Pe.context.with((0,y2t.suppressTracing)($Pe.context.active()),()=>{e.export(t,n)})})}QF._export=S2t});var pr=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 b2t=LRe();Object.defineProperty(we,"W3CBaggagePropagator",{enumerable:!0,get:function(){return b2t.W3CBaggagePropagator}});var E2t=URe();Object.defineProperty(we,"AnchoredClock",{enumerable:!0,get:function(){return E2t.AnchoredClock}});var tNe=BRe();Object.defineProperty(we,"isAttributeValue",{enumerable:!0,get:function(){return tNe.isAttributeValue}});Object.defineProperty(we,"sanitizeAttributes",{enumerable:!0,get:function(){return tNe.sanitizeAttributes}});var nNe=GRe();Object.defineProperty(we,"globalErrorHandler",{enumerable:!0,get:function(){return nNe.globalErrorHandler}});Object.defineProperty(we,"setGlobalErrorHandler",{enumerable:!0,get:function(){return nNe.setGlobalErrorHandler}});var _2t=i7();Object.defineProperty(we,"loggingErrorHandler",{enumerable:!0,get:function(){return _2t.loggingErrorHandler}});var ql=vPe();Object.defineProperty(we,"addHrTimes",{enumerable:!0,get:function(){return ql.addHrTimes}});Object.defineProperty(we,"getTimeOrigin",{enumerable:!0,get:function(){return ql.getTimeOrigin}});Object.defineProperty(we,"hrTime",{enumerable:!0,get:function(){return ql.hrTime}});Object.defineProperty(we,"hrTimeDuration",{enumerable:!0,get:function(){return ql.hrTimeDuration}});Object.defineProperty(we,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return ql.hrTimeToMicroseconds}});Object.defineProperty(we,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return ql.hrTimeToMilliseconds}});Object.defineProperty(we,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return ql.hrTimeToNanoseconds}});Object.defineProperty(we,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return ql.hrTimeToTimeStamp}});Object.defineProperty(we,"isTimeInput",{enumerable:!0,get:function(){return ql.isTimeInput}});Object.defineProperty(we,"isTimeInputHrTime",{enumerable:!0,get:function(){return ql.isTimeInputHrTime}});Object.defineProperty(we,"millisToHrTime",{enumerable:!0,get:function(){return ql.millisToHrTime}});Object.defineProperty(we,"timeInputToHrTime",{enumerable:!0,get:function(){return ql.timeInputToHrTime}});var T2t=RPe();Object.defineProperty(we,"unrefTimer",{enumerable:!0,get:function(){return T2t.unrefTimer}});var v2t=APe();Object.defineProperty(we,"ExportResultCode",{enumerable:!0,get:function(){return v2t.ExportResultCode}});var R2t=$8();Object.defineProperty(we,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return R2t.parseKeyPairsIntoRecord}});var TE=M7();Object.defineProperty(we,"SDK_INFO",{enumerable:!0,get:function(){return TE.SDK_INFO}});Object.defineProperty(we,"_globalThis",{enumerable:!0,get:function(){return TE._globalThis}});Object.defineProperty(we,"getStringFromEnv",{enumerable:!0,get:function(){return TE.getStringFromEnv}});Object.defineProperty(we,"getBooleanFromEnv",{enumerable:!0,get:function(){return TE.getBooleanFromEnv}});Object.defineProperty(we,"getNumberFromEnv",{enumerable:!0,get:function(){return TE.getNumberFromEnv}});Object.defineProperty(we,"getStringListFromEnv",{enumerable:!0,get:function(){return TE.getStringListFromEnv}});Object.defineProperty(we,"otperformance",{enumerable:!0,get:function(){return TE.otperformance}});var A2t=kPe();Object.defineProperty(we,"CompositePropagator",{enumerable:!0,get:function(){return A2t.CompositePropagator}});var $F=MPe();Object.defineProperty(we,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return $F.TRACE_PARENT_HEADER}});Object.defineProperty(we,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return $F.TRACE_STATE_HEADER}});Object.defineProperty(we,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return $F.W3CTraceContextPropagator}});Object.defineProperty(we,"parseTraceParent",{enumerable:!0,get:function(){return $F.parseTraceParent}});var ej=DPe();Object.defineProperty(we,"RPCType",{enumerable:!0,get:function(){return ej.RPCType}});Object.defineProperty(we,"deleteRPCMetadata",{enumerable:!0,get:function(){return ej.deleteRPCMetadata}});Object.defineProperty(we,"getRPCMetadata",{enumerable:!0,get:function(){return ej.getRPCMetadata}});Object.defineProperty(we,"setRPCMetadata",{enumerable:!0,get:function(){return ej.setRPCMetadata}});var V7=EO();Object.defineProperty(we,"isTracingSuppressed",{enumerable:!0,get:function(){return V7.isTracingSuppressed}});Object.defineProperty(we,"suppressTracing",{enumerable:!0,get:function(){return V7.suppressTracing}});Object.defineProperty(we,"unsuppressTracing",{enumerable:!0,get:function(){return V7.unsuppressTracing}});var w2t=j7();Object.defineProperty(we,"TraceState",{enumerable:!0,get:function(){return w2t.TraceState}});var k2t=VPe();Object.defineProperty(we,"merge",{enumerable:!0,get:function(){return k2t.merge}});var rNe=WPe();Object.defineProperty(we,"TimeoutError",{enumerable:!0,get:function(){return rNe.TimeoutError}});Object.defineProperty(we,"callWithTimeout",{enumerable:!0,get:function(){return rNe.callWithTimeout}});var iNe=YPe();Object.defineProperty(we,"isUrlIgnored",{enumerable:!0,get:function(){return iNe.isUrlIgnored}});Object.defineProperty(we,"urlMatches",{enumerable:!0,get:function(){return iNe.urlMatches}});var I2t=JPe();Object.defineProperty(we,"BindOnceFuture",{enumerable:!0,get:function(){return I2t.BindOnceFuture}});var x2t=QPe();Object.defineProperty(we,"diagLogLevelFromString",{enumerable:!0,get:function(){return x2t.diagLogLevelFromString}});var O2t=eNe();we.internal={_export:O2t._export}});var sNe=w(tj=>{"use strict";Object.defineProperty(tj,"__esModule",{value:!0});tj.VERSION=void 0;tj.VERSION="0.214.0"});var oNe=w(AO=>{"use strict";Object.defineProperty(AO,"__esModule",{value:!0});AO.SeverityNumber=void 0;var P2t;(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"})(P2t=AO.SeverityNumber||(AO.SeverityNumber={}))});var rj=w(_R=>{"use strict";Object.defineProperty(_R,"__esModule",{value:!0});_R.NOOP_LOGGER=_R.NoopLogger=void 0;var nj=class{emit(t){}};_R.NoopLogger=nj;_R.NOOP_LOGGER=new nj});var aNe=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 N2t(e,t,n){return r=>r===e?t:n}Pp.makeGetter=N2t;Pp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var W7=w(TR=>{"use strict";Object.defineProperty(TR,"__esModule",{value:!0});TR.NOOP_LOGGER_PROVIDER=TR.NoopLoggerProvider=void 0;var C2t=rj(),ij=class{getLogger(t,n,r){return new C2t.NoopLogger}};TR.NoopLoggerProvider=ij;TR.NOOP_LOGGER_PROVIDER=new ij});var cNe=w(sj=>{"use strict";Object.defineProperty(sj,"__esModule",{value:!0});sj.ProxyLogger=void 0;var M2t=rj(),K7=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):M2t.NOOP_LOGGER}};sj.ProxyLogger=K7});var uNe=w(oj=>{"use strict";Object.defineProperty(oj,"__esModule",{value:!0});oj.ProxyLoggerProvider=void 0;var D2t=W7(),L2t=cNe(),Y7=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new L2t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:D2t.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)}};oj.ProxyLoggerProvider=Y7});var dNe=w(aj=>{"use strict";Object.defineProperty(aj,"__esModule",{value:!0});aj.LogsAPI=void 0;var Bl=aNe(),U2t=W7(),lNe=uNe(),Z7=class e{constructor(){this._proxyLoggerProvider=new lNe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return Bl._global[Bl.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(Bl._global[Bl.GLOBAL_LOGS_API_KEY]=(0,Bl.makeGetter)(Bl.API_BACKWARDS_COMPATIBILITY_VERSION,t,U2t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=Bl._global[Bl.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(Bl._global,Bl.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete Bl._global[Bl.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new lNe.ProxyLoggerProvider}};aj.LogsAPI=Z7});var J7=w(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});Np.logs=Np.NoopLogger=Np.NOOP_LOGGER=Np.SeverityNumber=void 0;var F2t=oNe();Object.defineProperty(Np,"SeverityNumber",{enumerable:!0,get:function(){return F2t.SeverityNumber}});var fNe=rj();Object.defineProperty(Np,"NOOP_LOGGER",{enumerable:!0,get:function(){return fNe.NOOP_LOGGER}});Object.defineProperty(Np,"NoopLogger",{enumerable:!0,get:function(){return fNe.NoopLogger}});var j2t=dNe();Np.logs=j2t.LogsAPI.getInstance()});var pNe=w(vR=>{"use strict";Object.defineProperty(vR,"__esModule",{value:!0});vR.disableInstrumentations=vR.enableInstrumentations=void 0;function H2t(e,t,n,r){for(let i=0,s=e.length;it.disable())}vR.disableInstrumentations=q2t});var gNe=w(cj=>{"use strict";Object.defineProperty(cj,"__esModule",{value:!0});cj.registerInstrumentations=void 0;var hNe=(Me(),ke(Ze)),B2t=J7(),mNe=pNe();function z2t(e){let t=e.tracerProvider||hNe.trace.getTracerProvider(),n=e.meterProvider||hNe.metrics.getMeterProvider(),r=e.loggerProvider||B2t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,mNe.enableInstrumentations)(i,t,n,r),()=>{(0,mNe.disableInstrumentations)(i)}}cj.registerInstrumentations=z2t});var ANe=w(uj=>{"use strict";Object.defineProperty(uj,"__esModule",{value:!0});uj.satisfies=void 0;var eJ=(Me(),ke(Ze)),_Ne=/^(?: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-]+)*))?$/,G2t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,V2t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function W2t(e,t,n){if(!K2t(e))return eJ.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=X2t(e);if(!r)return!1;let i=[],s=TNe(r,t,i,n);return s&&!n?.includePrerelease?Z2t(r,i):s}uj.satisfies=W2t;function K2t(e){return typeof e=="string"&&_Ne.test(e)}function TNe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(X7(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=SVt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!X7(e,s,n,r))return!1;return!0}return X7(e,t,n,r)}function X7(e,t,n,r){if(t=J2t(t,r),t.includes(" "))return TNe(e,t,n,r);{let i=Q2t(t);return n.push(i),Y2t(e,i)}}function Y2t(e,t){if(t.invalid)return!1;if(!t.version||$7(t.version))return!0;let n=SNe(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=SNe(r,i)}return V2t[t.op]?.includes(n)}function Z2t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function J2t(e,t){return e=e.trim(),e=gVt(e,t),e=mVt(e),e=yVt(e,t),e=e.trim(),e}function kc(e){return!e||e.toLowerCase()==="x"||e==="*"}function X2t(e){let t=e.match(_Ne);if(!t){eJ.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 Q2t(e){if(!e)return{};let t=e.match(G2t);if(!t)return eJ.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 $7(e){return e==="*"||e==="x"||e==="X"}function yNe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function $2t(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 eVt(e,t){if($7(e)||$7(t))return 0;let[n,r]=$2t(yNe(e),yNe(t));return n>r?1:n)?=?)",bNe=`(?:${RNe}|${tVt})`,rVt=`(?:-(${bNe}(?:\\.${bNe})*))`,ENe=`${vNe}+`,iVt=`(?:\\+(${ENe}(?:\\.${ENe})*))`,Q7=`${RNe}|x|X|\\*`,wO=`[v=\\s]*(${Q7})(?:\\.(${Q7})(?:\\.(${Q7})(?:${rVt})?${iVt}?)?)?`,sVt=`^${nVt}\\s*${wO}$`,oVt=new RegExp(sVt),aVt=`^\\s*(${wO})\\s+-\\s+(${wO})\\s*$`,cVt=new RegExp(aVt),uVt="(?:~>?)",lVt=`^${uVt}${wO}$`,dVt=new RegExp(lVt),fVt="(?:\\^)",pVt=`^${fVt}${wO}$`,hVt=new RegExp(pVt);function mVt(e){let t=dVt;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 gVt(e,t){let n=hVt,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 yVt(e,t){let n=oVt;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 SVt(e,t){let n=cVt;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 tJ=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 kO(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 bVt=(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 kO(i,"__original",r),kO(i,"__unwrap",()=>{e[t]===i&&kO(e,t,r)}),kO(i,"__wrapped",!0),kO(e,t,i),i};ia.wrap=bVt;var EVt=(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=EVt;var _Vt=(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=_Vt;var TVt=(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=TVt;function IO(e){e&&e.logger&&(typeof e.logger!="function"?Ic("new logger isn't a function, not replacing"):Ic=e.logger)}ia.default=IO;IO.wrap=ia.wrap;IO.massWrap=ia.massWrap;IO.unwrap=ia.unwrap;IO.massUnwrap=ia.massUnwrap});var wNe=w(dj=>{"use strict";Object.defineProperty(dj,"__esModule",{value:!0});dj.InstrumentationAbstract=void 0;var nJ=(Me(),ke(Ze)),vVt=J7(),lj=tJ(),rJ=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=nJ.diag.createComponentLogger({namespace:t}),this._tracer=nJ.trace.getTracer(t,n),this._meter=nJ.metrics.getMeter(t,n),this._logger=vVt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=lj.wrap;_unwrap=lj.unwrap;_massWrap=lj.massWrap;_massUnwrap=lj.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)}}};dj.InstrumentationAbstract=rJ});var INe=w((WSr,kNe)=>{var RR=1e3,AR=RR*60,wR=AR*60,vE=wR*24,RVt=vE*7,AVt=vE*365.25;kNe.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return wVt(e);if(n==="number"&&isFinite(e))return t.long?IVt(e):kVt(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function wVt(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*AVt;case"weeks":case"week":case"w":return n*RVt;case"days":case"day":case"d":return n*vE;case"hours":case"hour":case"hrs":case"hr":case"h":return n*wR;case"minutes":case"minute":case"mins":case"min":case"m":return n*AR;case"seconds":case"second":case"secs":case"sec":case"s":return n*RR;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function kVt(e){var t=Math.abs(e);return t>=vE?Math.round(e/vE)+"d":t>=wR?Math.round(e/wR)+"h":t>=AR?Math.round(e/AR)+"m":t>=RR?Math.round(e/RR)+"s":e+"ms"}function IVt(e){var t=Math.abs(e);return t>=vE?fj(e,t,vE,"day"):t>=wR?fj(e,t,wR,"hour"):t>=AR?fj(e,t,AR,"minute"):t>=RR?fj(e,t,RR,"second"):e+" ms"}function fj(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var iJ=w((KSr,xNe)=>{function xVt(e){n.debug=n,n.default=n,n.coerce=c,n.disable=o,n.enable=i,n.enabled=a,n.humanize=INe(),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}xNe.exports=xVt});var ONe=w((cu,pj)=>{cu.formatArgs=PVt;cu.save=NVt;cu.load=CVt;cu.useColors=OVt;cu.storage=MVt();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 OVt(){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 PVt(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+pj.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 NVt(e){try{e?cu.storage.setItem("debug",e):cu.storage.removeItem("debug")}catch{}}function CVt(){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 MVt(){try{return localStorage}catch{}}pj.exports=iJ()(cu);var{formatters:DVt}=pj.exports;DVt.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var NNe=w((YSr,PNe)=>{"use strict";PNe.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 LVt=Y("os"),CNe=Y("tty"),zl=NNe(),{env:No}=process,hj;zl("no-color")||zl("no-colors")||zl("color=false")||zl("color=never")?hj=0:(zl("color")||zl("colors")||zl("color=true")||zl("color=always"))&&(hj=1);function UVt(){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 FVt(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function jVt(e,{streamIsTTY:t,sniffFlags:n=!0}={}){let r=UVt();r!==void 0&&(hj=r);let i=n?hj:r;if(i===0)return 0;if(n){if(zl("color=16m")||zl("color=full")||zl("color=truecolor"))return 3;if(zl("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=LVt.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 sJ(e,t={}){let n=jVt(e,{streamIsTTY:e&&e.isTTY,...t});return FVt(n)}MNe.exports={supportsColor:sJ,stdout:sJ({isTTY:CNe.isatty(1)}),stderr:sJ({isTTY:CNe.isatty(2)})}});var LNe=w((Co,yj)=>{var HVt=Y("tty"),gj=Y("util");Co.init=KVt;Co.log=GVt;Co.formatArgs=BVt;Co.save=VVt;Co.load=WVt;Co.useColors=qVt;Co.destroy=gj.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Co.colors=[6,2,3,4,5,1];try{let e=mj();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 qVt(){return"colors"in Co.inspectOpts?!!Co.inspectOpts.colors:HVt.isatty(process.stderr.fd)}function BVt(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+"+yj.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=BVt()+t+" "+e[0]}function BVt(){return Co.inspectOpts.hideDate?"":new Date().toISOString()+" "}function zVt(...e){return process.stderr.write(gj.formatWithOptions(Co.inspectOpts,...e)+` -`)}function GVt(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function VVt(){return process.env.DEBUG}function WVt(e){e.inspectOpts={};let t=Object.keys(Co.inspectOpts);for(let n=0;nt.trim()).join(" ")};CNe.O=function(e){return this.inspectOpts.colors=this.useColors,gj.inspect(e,this.inspectOpts)}});var DNe=w((ZSr,oJ)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?oJ.exports=INe():oJ.exports=MNe()});var xO=w((JSr,LNe)=>{"use strict";var aJ=Y("path").sep;LNe.exports=function(e){var t=e.split(aJ),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]+aJ;for(var u="",l=t.length-1,d=n+s;d<=l;d++)d===l?u+=t[d]:u+=t[d]+aJ;return{name:i,basedir:o,path:u}}}});var RE=w((XSr,lJ)=>{"use strict";var kR=Y("path"),ef=Y("module"),ks=DNe()("require-in-the-middle"),KVt=xO();lJ.exports=OO;lJ.exports.Hook=OO;var cJ,Sj;if(ef.isBuiltin)Sj=ef.isBuiltin;else if(ef.builtinModules)Sj=e=>e.startsWith("node:")?!0:(cJ===void 0&&(cJ=new Set(ef.builtinModules)),cJ.has(e));else throw new Error("'require-in-the-middle' requires Node.js >=v9.3.0 or >=v8.10.0");var YVt=/([/\\]index)?(\.js)?$/,uJ=class{constructor(){this._localCache=new Map,this._kRitmExports=Symbol("RitmExports")}has(t,n){if(this._localCache.has(t))return!0;if(n)return!1;{let r=Y.cache[t];return!!(r&&this._kRitmExports in r)}}get(t,n){let r=this._localCache.get(t);if(r!==void 0)return r;if(!n){let i=Y.cache[t];return i&&i[this._kRitmExports]}}set(t,n,r){r?this._localCache.set(t,n):t in Y.cache?Y.cache[t][this._kRitmExports]=n:(ks('non-core module is unexpectedly not in require.cache: "%s"',t),this._localCache.set(t,n))}};function OO(e,t,n){if(!(this instanceof OO))return new OO(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 uJ,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=Sj(l),f;if(d){if(f=l,l.startsWith("node:")){let b=l.slice(5);Sj(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=kR.parse(f);p=b.name,h=b.dir}else{let b=KVt(f);if(b===void 0)return ks("could not parse filename: %s",f),g;p=b.name,h=b.basedir;let S=ZVt(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{_=Y.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+kR.sep+kR.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}}OO.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 ZVt(e){let t=kR.sep!=="/"?e.path.split(kR.sep).join("/"):e.path;return kR.posix.join(e.name,t).replace(YVt,"")}});var UNe=w(hy=>{"use strict";Object.defineProperty(hy,"__esModule",{value:!0});hy.ModuleNameTrie=hy.ModuleNameSeparator=void 0;hy.ModuleNameSeparator="/";var bj=class{hooks=[];children=new Map},dJ=class{_trie=new bj;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(hy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new bj,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(hy.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))}};hy.ModuleNameTrie=dJ});var jNe=w(Ej=>{"use strict";Object.defineProperty(Ej,"__esModule",{value:!0});Ej.RequireInTheMiddleSingleton=void 0;var JVt=RE(),FNe=Y("path"),fJ=UNe(),XVt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),pJ=class e{_moduleNameTrie=new fJ.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new JVt.Hook(null,{internals:!0},(t,n,r)=>{let i=QVt(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 XVt?new e:this._instance=this._instance??new e}};Ej.RequireInTheMiddleSingleton=pJ;function QVt(e){return FNe.sep!==fJ.ModuleNameSeparator?e.split(FNe.sep).join(fJ.ModuleNameSeparator):e}});var GNe=w(PO=>{var HNe=[],hJ=new WeakMap,qNe=new WeakMap,BNe=new Map,zNe=[],$Vt={set(e,t,n){let r=hJ.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=qNe.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=hJ.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function eWt(e,t,n,r,i){BNe.set(e,i),hJ.set(t,n),qNe.set(t,r);let s=new Proxy(t,$Vt);HNe.forEach(o=>o(e,s,i)),zNe.push([e,s,i])}PO.register=eWt;PO.importHooks=HNe;PO.specifiers=BNe;PO.toHook=zNe});var SJ=w((nbr,xR)=>{var VNe=Y("path"),tWt=xO(),{fileURLToPath:nWt}=Y("url"),{MessageChannel:rWt}=Y("worker_threads"),{isBuiltin:mJ}=Y("module");mJ||(mJ=()=>!0);var{importHooks:gJ,specifiers:WNe,toHook:iWt}=GNe();function sWt(e,t){if(!(process.env.TURBOPACK??process.argv.includes("--turbo")))return!1;let r=e.slice(0,e.lastIndexOf("-"));return t.endsWith(r)}function KNe(e){gJ.push(e),iWt.forEach(([t,n,r])=>e(t,n,r))}function YNe(e){let t=gJ.indexOf(e);t>-1&&gJ.splice(t,1)}function IR(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var yJ;function oWt(){let{port1:e,port2:t}=new rWt,n=0,r;yJ=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 NO(e,t,n){if(!(this instanceof NO))return new NO(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;yJ&&Array.isArray(e)&&yJ(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);mJ(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=nWt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=tWt(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)IR(n,s,u,void 0);else if(d===i){if(!l)IR(n,s,i,l);else if(l.endsWith(WNe.get(a))||sWt(WNe.get(a),l))IR(n,s,i,l);else if(r){let f=i+VNe.sep+VNe.relative(l,u);IR(n,s,f,l)}}else d===o&&IR(n,s,o,l);else IR(n,s,i,l)},KNe(this._iitmHook)}NO.prototype.unhook=function(){YNe(this._iitmHook)};xR.exports=NO;xR.exports.Hook=NO;xR.exports.addHook=KNe;xR.exports.removeHook=YNe;xR.exports.createAddHookMessageChannel=oWt});var bJ=w(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.isWrapped=my.safeExecuteInTheMiddleAsync=my.safeExecuteInTheMiddle=void 0;function aWt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}my.safeExecuteInTheMiddle=aWt;async function cWt(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}}my.safeExecuteInTheMiddleAsync=cWt;function uWt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}my.isWrapped=uWt});var XNe=w(_j=>{"use strict";Object.defineProperty(_j,"__esModule",{value:!0});_j.InstrumentationBase=void 0;var CO=Y("path"),ZNe=Y("util"),lWt=vNe(),EJ=tJ(),dWt=RNe(),fWt=jNe(),pWt=SJ(),MO=(Me(),ke(Ze)),hWt=RE(),mWt=Y("fs"),gWt=bJ(),_J=class extends dWt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=fWt.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,gWt.isWrapped)(t[n])&&this._unwrap(t,n),ZNe.types.isProxy(t)){let i=(0,EJ.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,EJ.wrap)(t,n,r)};_unwrap=(t,n)=>ZNe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,EJ.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{MO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MO.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{MO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MO.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,mWt.readFileSync)(CO.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{MO.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 JNe(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=CO.normalize(r);return o.filter(u=>u.name===a&&JNe(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&&CO.isAbsolute(a)){let u=CO.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=CO.isAbsolute(t.name)?new hWt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new pWt.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}};_j.InstrumentationBase=_J;function JNe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,lWt.satisfies)(t,r,{includePrerelease:n}))}});var QNe=w(Tj=>{"use strict";Object.defineProperty(Tj,"__esModule",{value:!0});Tj.normalize=void 0;var yWt=Y("path");Object.defineProperty(Tj,"normalize",{enumerable:!0,get:function(){return yWt.normalize}})});var $Ne=w(OR=>{"use strict";Object.defineProperty(OR,"__esModule",{value:!0});OR.normalize=OR.InstrumentationBase=void 0;var SWt=XNe();Object.defineProperty(OR,"InstrumentationBase",{enumerable:!0,get:function(){return SWt.InstrumentationBase}});var bWt=QNe();Object.defineProperty(OR,"normalize",{enumerable:!0,get:function(){return bWt.normalize}})});var TJ=w(PR=>{"use strict";Object.defineProperty(PR,"__esModule",{value:!0});PR.normalize=PR.InstrumentationBase=void 0;var eCe=$Ne();Object.defineProperty(PR,"InstrumentationBase",{enumerable:!0,get:function(){return eCe.InstrumentationBase}});Object.defineProperty(PR,"normalize",{enumerable:!0,get:function(){return eCe.normalize}})});var tCe=w(vj=>{"use strict";Object.defineProperty(vj,"__esModule",{value:!0});vj.InstrumentationNodeModuleDefinition=void 0;var vJ=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}};vj.InstrumentationNodeModuleDefinition=vJ});var nCe=w(Rj=>{"use strict";Object.defineProperty(Rj,"__esModule",{value:!0});Rj.InstrumentationNodeModuleFile=void 0;var EWt=TJ(),RJ=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,EWt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};Rj.InstrumentationNodeModuleFile=RJ});var rCe=w(AE=>{"use strict";Object.defineProperty(AE,"__esModule",{value:!0});AE.semconvStabilityFromStr=AE.SemconvStability=void 0;var Aj;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(Aj=AE.SemconvStability||(AE.SemconvStability={}));function _Wt(e,t){let n=Aj.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=Aj.DUPLICATE;break}else i.toLowerCase()===e&&(n=Aj.STABLE);return n}AE.semconvStabilityFromStr=_Wt});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 TWt=hNe();Object.defineProperty(Bs,"registerInstrumentations",{enumerable:!0,get:function(){return TWt.registerInstrumentations}});var vWt=TJ();Object.defineProperty(Bs,"InstrumentationBase",{enumerable:!0,get:function(){return vWt.InstrumentationBase}});var RWt=tCe();Object.defineProperty(Bs,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return RWt.InstrumentationNodeModuleDefinition}});var AWt=nCe();Object.defineProperty(Bs,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return AWt.InstrumentationNodeModuleFile}});var AJ=bJ();Object.defineProperty(Bs,"isWrapped",{enumerable:!0,get:function(){return AJ.isWrapped}});Object.defineProperty(Bs,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return AJ.safeExecuteInTheMiddle}});Object.defineProperty(Bs,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return AJ.safeExecuteInTheMiddleAsync}});var iCe=rCe();Object.defineProperty(Bs,"SemconvStability",{enumerable:!0,get:function(){return iCe.SemconvStability}});Object.defineProperty(Bs,"semconvStabilityFromStr",{enumerable:!0,get:function(){return iCe.semconvStabilityFromStr}})});var sCe=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 oCe=w(DO=>{"use strict";Object.defineProperty(DO,"__esModule",{value:!0});DO.AttributeNames=void 0;var wWt;(function(e){e.HTTP_ERROR_NAME="http.error_name",e.HTTP_ERROR_MESSAGE="http.error_message",e.HTTP_STATUS_TEXT="http.status_text"})(wWt=DO.AttributeNames||(DO.AttributeNames={}))});var wJ=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 cCe=w((mbr,aCe)=>{"use strict";var kWt=Y("util");function kJ(e,t){Error.captureStackTrace(this,kJ),this.name=this.constructor.name,this.message=e,this.input=t}kWt.inherits(kJ,Error);aCe.exports=kJ});var lCe=w((gbr,uCe)=>{"use strict";function IWt(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 xWt(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 OWt(e){return e>=32&&e<=126}function PWt(e){return e>=128&&e<=255}uCe.exports={isDelimiter:IWt,isTokenChar:xWt,isExtended:PWt,isPrint:OWt}});var mCe=w((ybr,hCe)=>{"use strict";var NWt=Y("util"),NR=cCe(),wj=lCe(),CWt=wj.isDelimiter,dCe=wj.isTokenChar,fCe=wj.isExtended,MWt=wj.isPrint;function pCe(e){return e.replace(/\\(.)/g,"$1")}function LO(e,t){return NWt.format("Unexpected character '%s' at index %d",e.charAt(t),t)}function DWt(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 UO=(Me(),ke(Ze)),fn=(Nn(),ke(Mr)),dt=sCe(),gCe=pr(),ol=Jt(),LWt=Y("url"),Ij=oCe(),yCe=wJ(),kj=wJ(),UWt=mCe(),FWt=(e,t,n="http:",r=Array.from(kj.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,kj.STR_REDACTED);a=`${l.pathname}${l.search}`}catch{}let u=i.auth?`${kj.STR_REDACTED}:${kj.STR_REDACTED}@`:"";return`${s}//${u}${c}${a}`};Tt.getAbsoluteUrl=FWt;var jWt=(e,t)=>{let n=e===UO.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=HWt;var qWt=(e,t,n)=>{let r=t.message;n&ol.SemconvStability.OLD&&(e.setAttribute(Ij.AttributeNames.HTTP_ERROR_NAME,t.name),e.setAttribute(Ij.AttributeNames.HTTP_ERROR_MESSAGE,r)),n&ol.SemconvStability.STABLE&&e.setAttribute(fn.ATTR_ERROR_TYPE,t.name),e.setStatus({code:UO.SpanStatusCode.ERROR,message:r}),e.recordException(t)};Tt.setSpanWithError=qWt;var BWt=(e,t)=>{let n=bCe(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=BWt;var zWt=(e,t)=>{let n=bCe(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=zWt;function bCe(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}var GWt=e=>{let t=e["content-encoding"];return!!t&&t!=="identity"};Tt.isCompressed=GWt;function VWt(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 WWt=(e,t,n)=>{let r,i,s,o=!1;if(typeof t=="string"){try{let c=VWt(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 LWt.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=WWt;var KWt=e=>{if(!e)return!1;let t=typeof e;return t==="string"||t==="object"&&!Array.isArray(e)};Tt.isValidOptionsType=KWt;var YWt=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=YWt;var ZWt=(e,t,n,r)=>{let i=t.hostname,s=t.port,o=e.method??"GET",a=TCe(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]=ECe(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=ZWt;var JWt=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=JWt;var XWt=(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=XWt;var ECe=e=>{let t=String(e).toLowerCase();for(let n of yCe.SYNTHETIC_TEST_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST;for(let n of yCe.SYNTHETIC_BOT_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT},QWt=(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[Ij.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=QWt;var $Wt=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=$Wt;var e4t=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=e4t;function gy(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 t4t(e,t){let n=e.headers.forwarded;if(n){for(let s of vCe(n))if(s.host)return gy(s.host,s.proto)}let r=e.headers["x-forwarded-host"];if(typeof r=="string")return typeof e.headers["x-forwarded-proto"]=="string"?gy(r,e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?gy(r,e.headers["x-forwarded-proto"][0]):gy(r);if(Array.isArray(r)&&typeof r[0]=="string"&&r[0].length>0)return typeof e.headers["x-forwarded-proto"]=="string"?gy(r[0],e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?gy(r[0],e.headers["x-forwarded-proto"][0]):gy(r[0]);let i=e.headers.host;return typeof i=="string"&&i.length>0?gy(i,t):null}function _Ce(e){let t=e.headers.forwarded;if(t){for(let i of vCe(t))if(i.for)return SCe(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(),SCe(i)}let r=e.socket.remoteAddress;return r||null}Tt.getRemoteClientAddress=_Ce;function SCe(e){try{let{hostname:t}=new URL(`http://${e}`);return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}catch{return e}}function n4t(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 r4t=(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=n4t(r,e,n),m,g;if(o!==ol.SemconvStability.OLD){let y=TCe(l),b=t4t(e,r),S=_Ce(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]=ECe(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=r4t;var i4t=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=i4t;var s4t=(e,t,n)=>{let{socket:r}=e,{statusCode:i,statusMessage:s}=t,o={[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]:i},a=(0,gCe.getRPCMetadata)(UO.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[Ij.AttributeNames.HTTP_STATUS_TEXT]=(s||"").toUpperCase(),a?.type===gCe.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=s4t;var o4t=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=o4t;var a4t=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=a4t;function c4t(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=c4t;var u4t=new Set(["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH","QUERY"]);function TCe(e){if(e==null)return"GET";let t=e.toUpperCase();return u4t.has(t)?t:"_OTHER"}function vCe(e){try{return UWt(e)}catch{return[]}}});var ACe=w(xj=>{"use strict";Object.defineProperty(xj,"__esModule",{value:!0});xj.HttpInstrumentation=void 0;var tn=(Me(),ke(Ze)),yy=pr(),l4t=Y("url"),d4t=rNe(),Mo=Jt(),IJ=Y("events"),Oi=(Nn(),ke(Mr)),Is=RCe(),xJ=class extends Mo.InstrumentationBase{_spanNotEnded=new WeakSet;_headerCapture;_httpPatched=!1;_httpsPatched=!1;_semconvStability=Mo.SemconvStability.OLD;constructor(t={}){super("@opentelemetry/instrumentation-http",d4t.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(IJ.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(IJ.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,yy.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,yy.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:yy.RPCType.HTTP,span:y};return tn.context.with((0,yy.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(IJ.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 l4t.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,yy.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,yy.hrTimeToMilliseconds)((0,yy.hrTimeDuration)(r,(0,yy.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)}}}};xj.HttpInstrumentation=xJ});var wCe=w(Oj=>{"use strict";Object.defineProperty(Oj,"__esModule",{value:!0});Oj.HttpInstrumentation=void 0;var f4t=ACe();Object.defineProperty(Oj,"HttpInstrumentation",{enumerable:!0,get:function(){return f4t.HttpInstrumentation}})});var Fe,Pi=v(()=>{Fe=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var qt,Wa=v(()=>{qt=globalThis});var Cn,Pj=v(()=>{Cn="10.47.0"});function xc(){return Sy(qt),qt}function Sy(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||Cn,t[Cn]=t[Cn]||{}}function tf(e,t,n=qt){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[Cn]=r[Cn]||{};return i[e]||(i[e]=t())}var Gl=v(()=>{Pj();Wa()});function xs(e){if(!("console"in qt))return e();let t=qt.console,n={},r=Object.keys(CR);r.forEach(i=>{let s=CR[i];n[i]=t[i],t[i]=s});try{return e()}finally{r.forEach(i=>{t[i]=n[i]})}}function h4t(){PJ().enabled=!0}function m4t(){PJ().enabled=!1}function kCe(){return PJ().enabled}function g4t(...e){OJ("log",...e)}function y4t(...e){OJ("warn",...e)}function S4t(...e){OJ("error",...e)}function OJ(e,...t){Fe&&kCe()&&xs(()=>{qt.console[e](`${p4t}[${e}]:`,...t)})}function PJ(){return Fe?tf("loggerSettings",()=>({enabled:!1})):{enabled:!1}}var FO,p4t,CR,Z,_r=v(()=>{Gl();Pi();Wa();FO=["debug","info","warn","error","log","assert","trace"],p4t="Sentry Logger ",CR={};Z={enable:h4t,disable:m4t,isEnabled:kCe,log:g4t,warn:y4t,error:S4t}});function Cj(...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=ICe.test(c)?c.replace(ICe,"$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 OCe(s.slice(i))}}function CJ(e){return Array.isArray(e)?Cj(...e):e}function OCe(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(Nj(t).function||"")&&t.pop(),t.reverse(),xCe.test(Nj(t).function||"")&&(t.pop(),xCe.test(Nj(t).function||"")&&t.pop()),t.slice(0,50).map(n=>({...n,filename:n.filename||Nj(t).filename,function:n.function||"?"}))}function Nj(e){return e[e.length-1]||{}}function jO(e){try{return!e||typeof e!="function"?NJ:e.name||NJ}catch{return NJ}}function Mj(e){return"__v_isVNode"in e&&e.__v_isVNode?"[VueVNode]":"[VueViewModel]"}function PCe(e){let t=e?.startsWith("file://")?e.slice(7):e;return t?.match(/\/[A-Z]:/)&&(t=t.slice(1)),t}var ICe,xCe,NJ,MR=v(()=>{ICe=/\(error: (.*)\)/,xCe=/captureMessage|captureException/;NJ=""});function DR(e,t){Dj[e]=Dj[e]||[],Dj[e].push(t)}function LR(e,t){if(!NCe[e]){NCe[e]=!0;try{t()}catch(n){Fe&&Z.error(`Error while instrumenting ${e}`,n)}}}function UR(e,t){let n=e&&Dj[e];if(n)for(let r of n)try{r(t)}catch(i){Fe&&Z.error(`Error while triggering instrumentation handler. +`+s),e.push(i+"m+"+yj.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=zVt()+t+" "+e[0]}function zVt(){return Co.inspectOpts.hideDate?"":new Date().toISOString()+" "}function GVt(...e){return process.stderr.write(gj.formatWithOptions(Co.inspectOpts,...e)+` +`)}function VVt(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function WVt(){return process.env.DEBUG}function KVt(e){e.inspectOpts={};let t=Object.keys(Co.inspectOpts);for(let n=0;nt.trim()).join(" ")};DNe.O=function(e){return this.inspectOpts.colors=this.useColors,gj.inspect(e,this.inspectOpts)}});var UNe=w((JSr,oJ)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?oJ.exports=ONe():oJ.exports=LNe()});var xO=w((XSr,FNe)=>{"use strict";var aJ=Y("path").sep;FNe.exports=function(e){var t=e.split(aJ),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]+aJ;for(var u="",l=t.length-1,d=n+s;d<=l;d++)d===l?u+=t[d]:u+=t[d]+aJ;return{name:i,basedir:o,path:u}}}});var RE=w((QSr,lJ)=>{"use strict";var kR=Y("path"),ef=Y("module"),ks=UNe()("require-in-the-middle"),YVt=xO();lJ.exports=OO;lJ.exports.Hook=OO;var cJ,Sj;if(ef.isBuiltin)Sj=ef.isBuiltin;else if(ef.builtinModules)Sj=e=>e.startsWith("node:")?!0:(cJ===void 0&&(cJ=new Set(ef.builtinModules)),cJ.has(e));else throw new Error("'require-in-the-middle' requires Node.js >=v9.3.0 or >=v8.10.0");var ZVt=/([/\\]index)?(\.js)?$/,uJ=class{constructor(){this._localCache=new Map,this._kRitmExports=Symbol("RitmExports")}has(t,n){if(this._localCache.has(t))return!0;if(n)return!1;{let r=Y.cache[t];return!!(r&&this._kRitmExports in r)}}get(t,n){let r=this._localCache.get(t);if(r!==void 0)return r;if(!n){let i=Y.cache[t];return i&&i[this._kRitmExports]}}set(t,n,r){r?this._localCache.set(t,n):t in Y.cache?Y.cache[t][this._kRitmExports]=n:(ks('non-core module is unexpectedly not in require.cache: "%s"',t),this._localCache.set(t,n))}};function OO(e,t,n){if(!(this instanceof OO))return new OO(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 uJ,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=Sj(l),f;if(d){if(f=l,l.startsWith("node:")){let b=l.slice(5);Sj(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=kR.parse(f);p=b.name,h=b.dir}else{let b=YVt(f);if(b===void 0)return ks("could not parse filename: %s",f),g;p=b.name,h=b.basedir;let S=JVt(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{_=Y.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+kR.sep+kR.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}}OO.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 JVt(e){let t=kR.sep!=="/"?e.path.split(kR.sep).join("/"):e.path;return kR.posix.join(e.name,t).replace(ZVt,"")}});var jNe=w(hy=>{"use strict";Object.defineProperty(hy,"__esModule",{value:!0});hy.ModuleNameTrie=hy.ModuleNameSeparator=void 0;hy.ModuleNameSeparator="/";var bj=class{hooks=[];children=new Map},dJ=class{_trie=new bj;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(hy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new bj,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(hy.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))}};hy.ModuleNameTrie=dJ});var qNe=w(Ej=>{"use strict";Object.defineProperty(Ej,"__esModule",{value:!0});Ej.RequireInTheMiddleSingleton=void 0;var XVt=RE(),HNe=Y("path"),fJ=jNe(),QVt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),pJ=class e{_moduleNameTrie=new fJ.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new XVt.Hook(null,{internals:!0},(t,n,r)=>{let i=$Vt(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 QVt?new e:this._instance=this._instance??new e}};Ej.RequireInTheMiddleSingleton=pJ;function $Vt(e){return HNe.sep!==fJ.ModuleNameSeparator?e.split(HNe.sep).join(fJ.ModuleNameSeparator):e}});var WNe=w(PO=>{var BNe=[],hJ=new WeakMap,zNe=new WeakMap,GNe=new Map,VNe=[],eWt={set(e,t,n){let r=hJ.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=zNe.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=hJ.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function tWt(e,t,n,r,i){GNe.set(e,i),hJ.set(t,n),zNe.set(t,r);let s=new Proxy(t,eWt);BNe.forEach(o=>o(e,s,i)),VNe.push([e,s,i])}PO.register=tWt;PO.importHooks=BNe;PO.specifiers=GNe;PO.toHook=VNe});var SJ=w((rbr,xR)=>{var KNe=Y("path"),nWt=xO(),{fileURLToPath:rWt}=Y("url"),{MessageChannel:iWt}=Y("worker_threads"),{isBuiltin:mJ}=Y("module");mJ||(mJ=()=>!0);var{importHooks:gJ,specifiers:YNe,toHook:sWt}=WNe();function oWt(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){gJ.push(e),sWt.forEach(([t,n,r])=>e(t,n,r))}function JNe(e){let t=gJ.indexOf(e);t>-1&&gJ.splice(t,1)}function IR(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var yJ;function aWt(){let{port1:e,port2:t}=new iWt,n=0,r;yJ=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 NO(e,t,n){if(!(this instanceof NO))return new NO(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;yJ&&Array.isArray(e)&&yJ(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);mJ(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=rWt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=nWt(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)IR(n,s,u,void 0);else if(d===i){if(!l)IR(n,s,i,l);else if(l.endsWith(YNe.get(a))||oWt(YNe.get(a),l))IR(n,s,i,l);else if(r){let f=i+KNe.sep+KNe.relative(l,u);IR(n,s,f,l)}}else d===o&&IR(n,s,o,l);else IR(n,s,i,l)},ZNe(this._iitmHook)}NO.prototype.unhook=function(){JNe(this._iitmHook)};xR.exports=NO;xR.exports.Hook=NO;xR.exports.addHook=ZNe;xR.exports.removeHook=JNe;xR.exports.createAddHookMessageChannel=aWt});var bJ=w(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.isWrapped=my.safeExecuteInTheMiddleAsync=my.safeExecuteInTheMiddle=void 0;function cWt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}my.safeExecuteInTheMiddle=cWt;async function uWt(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}}my.safeExecuteInTheMiddleAsync=uWt;function lWt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}my.isWrapped=lWt});var $Ne=w(_j=>{"use strict";Object.defineProperty(_j,"__esModule",{value:!0});_j.InstrumentationBase=void 0;var CO=Y("path"),XNe=Y("util"),dWt=ANe(),EJ=tJ(),fWt=wNe(),pWt=qNe(),hWt=SJ(),MO=(Me(),ke(Ze)),mWt=RE(),gWt=Y("fs"),yWt=bJ(),_J=class extends fWt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=pWt.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,yWt.isWrapped)(t[n])&&this._unwrap(t,n),XNe.types.isProxy(t)){let i=(0,EJ.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,EJ.wrap)(t,n,r)};_unwrap=(t,n)=>XNe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,EJ.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{MO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MO.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{MO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MO.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,gWt.readFileSync)(CO.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{MO.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 QNe(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=CO.normalize(r);return o.filter(u=>u.name===a&&QNe(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&&CO.isAbsolute(a)){let u=CO.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=CO.isAbsolute(t.name)?new mWt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new hWt.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}};_j.InstrumentationBase=_J;function QNe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,dWt.satisfies)(t,r,{includePrerelease:n}))}});var eCe=w(Tj=>{"use strict";Object.defineProperty(Tj,"__esModule",{value:!0});Tj.normalize=void 0;var SWt=Y("path");Object.defineProperty(Tj,"normalize",{enumerable:!0,get:function(){return SWt.normalize}})});var tCe=w(OR=>{"use strict";Object.defineProperty(OR,"__esModule",{value:!0});OR.normalize=OR.InstrumentationBase=void 0;var bWt=$Ne();Object.defineProperty(OR,"InstrumentationBase",{enumerable:!0,get:function(){return bWt.InstrumentationBase}});var EWt=eCe();Object.defineProperty(OR,"normalize",{enumerable:!0,get:function(){return EWt.normalize}})});var TJ=w(PR=>{"use strict";Object.defineProperty(PR,"__esModule",{value:!0});PR.normalize=PR.InstrumentationBase=void 0;var nCe=tCe();Object.defineProperty(PR,"InstrumentationBase",{enumerable:!0,get:function(){return nCe.InstrumentationBase}});Object.defineProperty(PR,"normalize",{enumerable:!0,get:function(){return nCe.normalize}})});var rCe=w(vj=>{"use strict";Object.defineProperty(vj,"__esModule",{value:!0});vj.InstrumentationNodeModuleDefinition=void 0;var vJ=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}};vj.InstrumentationNodeModuleDefinition=vJ});var iCe=w(Rj=>{"use strict";Object.defineProperty(Rj,"__esModule",{value:!0});Rj.InstrumentationNodeModuleFile=void 0;var _Wt=TJ(),RJ=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,_Wt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};Rj.InstrumentationNodeModuleFile=RJ});var sCe=w(AE=>{"use strict";Object.defineProperty(AE,"__esModule",{value:!0});AE.semconvStabilityFromStr=AE.SemconvStability=void 0;var Aj;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(Aj=AE.SemconvStability||(AE.SemconvStability={}));function TWt(e,t){let n=Aj.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=Aj.DUPLICATE;break}else i.toLowerCase()===e&&(n=Aj.STABLE);return n}AE.semconvStabilityFromStr=TWt});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 vWt=gNe();Object.defineProperty(Bs,"registerInstrumentations",{enumerable:!0,get:function(){return vWt.registerInstrumentations}});var RWt=TJ();Object.defineProperty(Bs,"InstrumentationBase",{enumerable:!0,get:function(){return RWt.InstrumentationBase}});var AWt=rCe();Object.defineProperty(Bs,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return AWt.InstrumentationNodeModuleDefinition}});var wWt=iCe();Object.defineProperty(Bs,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return wWt.InstrumentationNodeModuleFile}});var AJ=bJ();Object.defineProperty(Bs,"isWrapped",{enumerable:!0,get:function(){return AJ.isWrapped}});Object.defineProperty(Bs,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return AJ.safeExecuteInTheMiddle}});Object.defineProperty(Bs,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return AJ.safeExecuteInTheMiddleAsync}});var oCe=sCe();Object.defineProperty(Bs,"SemconvStability",{enumerable:!0,get:function(){return oCe.SemconvStability}});Object.defineProperty(Bs,"semconvStabilityFromStr",{enumerable:!0,get:function(){return oCe.semconvStabilityFromStr}})});var aCe=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 cCe=w(DO=>{"use strict";Object.defineProperty(DO,"__esModule",{value:!0});DO.AttributeNames=void 0;var kWt;(function(e){e.HTTP_ERROR_NAME="http.error_name",e.HTTP_ERROR_MESSAGE="http.error_message",e.HTTP_STATUS_TEXT="http.status_text"})(kWt=DO.AttributeNames||(DO.AttributeNames={}))});var wJ=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 lCe=w((gbr,uCe)=>{"use strict";var IWt=Y("util");function kJ(e,t){Error.captureStackTrace(this,kJ),this.name=this.constructor.name,this.message=e,this.input=t}IWt.inherits(kJ,Error);uCe.exports=kJ});var fCe=w((ybr,dCe)=>{"use strict";function xWt(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 PWt(e){return e>=32&&e<=126}function NWt(e){return e>=128&&e<=255}dCe.exports={isDelimiter:xWt,isTokenChar:OWt,isExtended:NWt,isPrint:PWt}});var yCe=w((Sbr,gCe)=>{"use strict";var CWt=Y("util"),NR=lCe(),wj=fCe(),MWt=wj.isDelimiter,pCe=wj.isTokenChar,hCe=wj.isExtended,DWt=wj.isPrint;function mCe(e){return e.replace(/\\(.)/g,"$1")}function LO(e,t){return CWt.format("Unexpected character '%s' at index %d",e.charAt(t),t)}function LWt(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 UO=(Me(),ke(Ze)),fn=(Nn(),ke(Mr)),dt=aCe(),SCe=pr(),ol=Jt(),UWt=Y("url"),Ij=cCe(),bCe=wJ(),kj=wJ(),FWt=yCe(),jWt=(e,t,n="http:",r=Array.from(kj.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,kj.STR_REDACTED);a=`${l.pathname}${l.search}`}catch{}let u=i.auth?`${kj.STR_REDACTED}:${kj.STR_REDACTED}@`:"";return`${s}//${u}${c}${a}`};Tt.getAbsoluteUrl=jWt;var HWt=(e,t)=>{let n=e===UO.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=qWt;var BWt=(e,t,n)=>{let r=t.message;n&ol.SemconvStability.OLD&&(e.setAttribute(Ij.AttributeNames.HTTP_ERROR_NAME,t.name),e.setAttribute(Ij.AttributeNames.HTTP_ERROR_MESSAGE,r)),n&ol.SemconvStability.STABLE&&e.setAttribute(fn.ATTR_ERROR_TYPE,t.name),e.setStatus({code:UO.SpanStatusCode.ERROR,message:r}),e.recordException(t)};Tt.setSpanWithError=BWt;var zWt=(e,t)=>{let n=_Ce(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=zWt;var GWt=(e,t)=>{let n=_Ce(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=GWt;function _Ce(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}var VWt=e=>{let t=e["content-encoding"];return!!t&&t!=="identity"};Tt.isCompressed=VWt;function WWt(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 KWt=(e,t,n)=>{let r,i,s,o=!1;if(typeof t=="string"){try{let c=WWt(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 UWt.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=KWt;var YWt=e=>{if(!e)return!1;let t=typeof e;return t==="string"||t==="object"&&!Array.isArray(e)};Tt.isValidOptionsType=YWt;var ZWt=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=ZWt;var JWt=(e,t,n,r)=>{let i=t.hostname,s=t.port,o=e.method??"GET",a=RCe(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]=TCe(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=JWt;var XWt=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=XWt;var QWt=(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=QWt;var TCe=e=>{let t=String(e).toLowerCase();for(let n of bCe.SYNTHETIC_TEST_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST;for(let n of bCe.SYNTHETIC_BOT_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT},$Wt=(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[Ij.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=$Wt;var e4t=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=e4t;var t4t=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=t4t;function gy(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 n4t(e,t){let n=e.headers.forwarded;if(n){for(let s of ACe(n))if(s.host)return gy(s.host,s.proto)}let r=e.headers["x-forwarded-host"];if(typeof r=="string")return typeof e.headers["x-forwarded-proto"]=="string"?gy(r,e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?gy(r,e.headers["x-forwarded-proto"][0]):gy(r);if(Array.isArray(r)&&typeof r[0]=="string"&&r[0].length>0)return typeof e.headers["x-forwarded-proto"]=="string"?gy(r[0],e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?gy(r[0],e.headers["x-forwarded-proto"][0]):gy(r[0]);let i=e.headers.host;return typeof i=="string"&&i.length>0?gy(i,t):null}function vCe(e){let t=e.headers.forwarded;if(t){for(let i of ACe(t))if(i.for)return ECe(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(),ECe(i)}let r=e.socket.remoteAddress;return r||null}Tt.getRemoteClientAddress=vCe;function ECe(e){try{let{hostname:t}=new URL(`http://${e}`);return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}catch{return e}}function r4t(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 i4t=(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=r4t(r,e,n),m,g;if(o!==ol.SemconvStability.OLD){let y=RCe(l),b=n4t(e,r),S=vCe(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]=TCe(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=i4t;var s4t=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=s4t;var o4t=(e,t,n)=>{let{socket:r}=e,{statusCode:i,statusMessage:s}=t,o={[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]:i},a=(0,SCe.getRPCMetadata)(UO.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[Ij.AttributeNames.HTTP_STATUS_TEXT]=(s||"").toUpperCase(),a?.type===SCe.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=o4t;var a4t=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=a4t;var c4t=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=c4t;function u4t(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=u4t;var l4t=new Set(["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH","QUERY"]);function RCe(e){if(e==null)return"GET";let t=e.toUpperCase();return l4t.has(t)?t:"_OTHER"}function ACe(e){try{return FWt(e)}catch{return[]}}});var kCe=w(xj=>{"use strict";Object.defineProperty(xj,"__esModule",{value:!0});xj.HttpInstrumentation=void 0;var tn=(Me(),ke(Ze)),yy=pr(),d4t=Y("url"),f4t=sNe(),Mo=Jt(),IJ=Y("events"),Oi=(Nn(),ke(Mr)),Is=wCe(),xJ=class extends Mo.InstrumentationBase{_spanNotEnded=new WeakSet;_headerCapture;_httpPatched=!1;_httpsPatched=!1;_semconvStability=Mo.SemconvStability.OLD;constructor(t={}){super("@opentelemetry/instrumentation-http",f4t.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(IJ.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(IJ.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,yy.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,yy.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:yy.RPCType.HTTP,span:y};return tn.context.with((0,yy.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(IJ.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 d4t.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,yy.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,yy.hrTimeToMilliseconds)((0,yy.hrTimeDuration)(r,(0,yy.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)}}}};xj.HttpInstrumentation=xJ});var ICe=w(Oj=>{"use strict";Object.defineProperty(Oj,"__esModule",{value:!0});Oj.HttpInstrumentation=void 0;var p4t=kCe();Object.defineProperty(Oj,"HttpInstrumentation",{enumerable:!0,get:function(){return p4t.HttpInstrumentation}})});var Fe,Pi=v(()=>{Fe=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var qt,Wa=v(()=>{qt=globalThis});var Cn,Pj=v(()=>{Cn="10.47.0"});function xc(){return Sy(qt),qt}function Sy(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||Cn,t[Cn]=t[Cn]||{}}function tf(e,t,n=qt){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[Cn]=r[Cn]||{};return i[e]||(i[e]=t())}var Gl=v(()=>{Pj();Wa()});function xs(e){if(!("console"in qt))return e();let t=qt.console,n={},r=Object.keys(CR);r.forEach(i=>{let s=CR[i];n[i]=t[i],t[i]=s});try{return e()}finally{r.forEach(i=>{t[i]=n[i]})}}function m4t(){PJ().enabled=!0}function g4t(){PJ().enabled=!1}function xCe(){return PJ().enabled}function y4t(...e){OJ("log",...e)}function S4t(...e){OJ("warn",...e)}function b4t(...e){OJ("error",...e)}function OJ(e,...t){Fe&&xCe()&&xs(()=>{qt.console[e](`${h4t}[${e}]:`,...t)})}function PJ(){return Fe?tf("loggerSettings",()=>({enabled:!1})):{enabled:!1}}var FO,h4t,CR,Z,_r=v(()=>{Gl();Pi();Wa();FO=["debug","info","warn","error","log","assert","trace"],h4t="Sentry Logger ",CR={};Z={enable:m4t,disable:g4t,isEnabled:xCe,log:y4t,warn:S4t,error:b4t}});function Cj(...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=OCe.test(c)?c.replace(OCe,"$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 NCe(s.slice(i))}}function CJ(e){return Array.isArray(e)?Cj(...e):e}function NCe(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(Nj(t).function||"")&&t.pop(),t.reverse(),PCe.test(Nj(t).function||"")&&(t.pop(),PCe.test(Nj(t).function||"")&&t.pop()),t.slice(0,50).map(n=>({...n,filename:n.filename||Nj(t).filename,function:n.function||"?"}))}function Nj(e){return e[e.length-1]||{}}function jO(e){try{return!e||typeof e!="function"?NJ:e.name||NJ}catch{return NJ}}function Mj(e){return"__v_isVNode"in e&&e.__v_isVNode?"[VueVNode]":"[VueViewModel]"}function CCe(e){let t=e?.startsWith("file://")?e.slice(7):e;return t?.match(/\/[A-Z]:/)&&(t=t.slice(1)),t}var OCe,PCe,NJ,MR=v(()=>{OCe=/\(error: (.*)\)/,PCe=/captureMessage|captureException/;NJ=""});function DR(e,t){Dj[e]=Dj[e]||[],Dj[e].push(t)}function LR(e,t){if(!MCe[e]){MCe[e]=!0;try{t()}catch(n){Fe&&Z.error(`Error while instrumenting ${e}`,n)}}}function UR(e,t){let n=e&&Dj[e];if(n)for(let r of n)try{r(t)}catch(i){Fe&&Z.error(`Error while triggering instrumentation handler. Type: ${e} Name: ${jO(r)} -Error:`,i)}}var Dj,NCe,Lj=v(()=>{Pi();_r();MR();Dj={},NCe={}});function CCe(e){let t="error";DR(t,e),LR(t,b4t)}function b4t(){MJ=qt.onerror,qt.onerror=function(e,t,n,r,i){return UR("error",{column:r,error:i,line:n,msg:e,url:t}),MJ?MJ.apply(this,arguments):!1},qt.onerror.__SENTRY_INSTRUMENTED__=!0}var MJ,MCe=v(()=>{Wa();Lj();MJ=null});function DCe(e){let t="unhandledrejection";DR(t,e),LR(t,E4t)}function E4t(){DJ=qt.onunhandledrejection,qt.onunhandledrejection=function(e){return UR("unhandledrejection",e),DJ?DJ.apply(this,arguments):!0},qt.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}var DJ,LCe=v(()=>{Wa();Lj();DJ=null});function Mp(e){switch(UCe.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return Dp(e,Error)}}function Uj(e,t){return UCe.call(e)===`[object ${t}]`}function LJ(e){return Uj(e,"ErrorEvent")}function by(e){return Uj(e,"String")}function FR(e){return typeof e=="object"&&e!==null&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function HO(e){return e===null||FR(e)||typeof e!="object"&&typeof e!="function"}function pm(e){return Uj(e,"Object")}function UJ(e){return typeof Event<"u"&&Dp(e,Event)}function FJ(e){return typeof Element<"u"&&Dp(e,Element)}function jJ(e){return Uj(e,"RegExp")}function sa(e){return!!(e?.then&&typeof e.then=="function")}function HJ(e){return pm(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}function Dp(e,t){try{return e instanceof t}catch{return!1}}function qO(e){return!!(typeof e=="object"&&e!==null&&(e.__isVue||e._isVue||e.__v_isVNode))}var UCe,Ka=v(()=>{UCe=Object.prototype.toString});function FCe(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||T4t;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 v4t(e,t){let n=e,r=[];if(!n?.tagName)return"";if(_4t.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&&by(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 _4t,T4t,jCe=v(()=>{Ka();Wa();_4t=qt,T4t=80});function qJ(e,t,n){if(!(t in e))return;let r=e[t];if(typeof r!="function")return;let i=n(r);typeof i=="function"&&BCe(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 BCe(e,t){try{let n=t.prototype||{};e.prototype=t.prototype=n,zs(e,"__sentry_original__",t)}catch{}}function BJ(e){return e.__sentry_original__}function Fj(e){if(Mp(e))return{message:e.message,name:e.name,stack:e.stack,...qCe(e)};if(UJ(e)){let t={type:e.type,target:HCe(e.target),currentTarget:HCe(e.currentTarget),...qCe(e)};return typeof CustomEvent<"u"&&Dp(e,CustomEvent)&&(t.detail=e.detail),t}else return e}function HCe(e){try{return FJ(e)?FCe(e):Object.prototype.toString.call(e)}catch{return""}}function qCe(e){return typeof e=="object"&&e!==null?Object.fromEntries(Object.entries(e)):{}}function zJ(e){let t=Object.keys(Fj(e));return t.sort(),t[0]?t.join(", "):"[object has no keys]"}var nf=v(()=>{Pi();jCe();_r();Ka()});function wE(e){if(jR!==void 0)return jR?jR(e):e();let t=Symbol.for("__SENTRY_SAFE_RANDOM_ID_WRAPPER__"),n=qt;return t in n&&typeof n[t]=="function"?(jR=n[t],jR(e)):(jR=null,e())}function Do(){return wE(()=>Math.random())}function Vl(){return wE(()=>Date.now())}var jR,Ey=v(()=>{Wa()});function _y(e,t=0){return typeof e!="string"||t===0||e.length<=t?e:`${e.slice(0,t)}...`}function GJ(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}`),shm(e,r,n))}var vy=v(()=>{Ka();MR()});function R4t(){let e=qt;return e.crypto||e.msCrypto}function A4t(){return Do()*16}function mo(e=R4t()){try{if(e?.randomUUID)return wE(()=>e.randomUUID()).replace(/-/g,"")}catch{}return WJ||(WJ="10000000100040008000"+1e11),WJ.replace(/[018]/g,t=>(t^(A4t()&15)>>t/4).toString(16))}function zCe(e){return e.exception?.values?.[0]}function Ry(e){let{message:t,event_id:n}=e;if(t)return t;let r=zCe(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"":n||""}function YJ(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 HR(e,t){let n=zCe(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 KJ(e){return parseInt(e||"",10)}function ZJ(e){let t=e.match(w4t)||[],n=KJ(t[1]),r=KJ(t[2]),i=KJ(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 jj(e){if(GCe(e))return!0;try{zs(e,"__sentry_captured__",!0)}catch{}return!1}function GCe(e){try{return e.__sentry_captured__}catch{}}var WJ,w4t,Lp=v(()=>{nf();Ey();Wa();w4t=/^(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 mm(){return Vl()/WCe}function k4t(){let{performance:e}=qt;if(!e?.now||!e.timeOrigin)return mm;let t=e.timeOrigin;return()=>(t+wE(()=>e.now()))/WCe}function Ay(){return(VCe??(VCe=k4t()))()}var WCe,VCe,wy=v(()=>{Ey();Wa();WCe=1e3});function KCe(e){let t=Ay(),n={sid:mo(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>I4t(n)};return e&&gm(n,e),n}function gm(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||Ay(),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 YCe(e,t){let n={};t?n={status:t}:e.status==="ok"&&(n={status:"exited"}),gm(e,n)}function I4t(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 Hj=v(()=>{Lp();wy()});function ky(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]=ky(r[i],t[i],n-1));return r}var qj=v(()=>{});function Ya(){return mo()}function Za(){return mo().substring(16)}var Iy=v(()=>{Lp()});function kE(e,t){t?zs(e,JJ,t):delete e[JJ]}function IE(e){return e[JJ]}var JJ,Bj=v(()=>{nf();JJ="_sentrySpan"});var x4t,uu,BO=v(()=>{Pi();Hj();_r();Ka();qj();Lp();Iy();Ey();Bj();vy();wy();x4t=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,kE(t,IE(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&&gm(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():pm(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,kE(this,void 0),this._attachments=[],this.setPropagationContext({traceId:Ya(),sampleRand:Do()}),this._notifyScopeListeners(),this}addBreadcrumb(t,n){let r=typeof n=="number"?n:x4t;if(r<=0)return this;let i={timestamp:mm(),...t,message:t.message?_y(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:IE(this),conversationId:this._conversationId}}setSDKProcessingMetadata(t){return this._sdkProcessingMetadata=ky(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 qR(){return tf("defaultCurrentScope",()=>new uu)}function Wl(){return tf("defaultIsolationScope",()=>new uu)}var XJ=v(()=>{Gl();BO()});var ZCe,JCe,zj,O4t,QJ=v(()=>{ZCe=e=>e instanceof Promise&&!e[JCe],JCe=Symbol("chained PromiseLike"),zj=(e,t,n)=>{let r=e.then(i=>(t(i),i),i=>{throw n(i),i});return ZCe(r)&&ZCe(e)?r:O4t(e,r)},O4t=(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,{[JCe]:!0}),t}});function BR(){let e=xc(),t=Sy(e);return t.stack=t.stack||new $J(qR(),Wl())}function P4t(e){return BR().withScope(e)}function N4t(e,t){let n=BR();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function XCe(e){return BR().withScope(()=>e(BR().getIsolationScope()))}function QCe(){return{withIsolationScope:XCe,withScope:P4t,withSetScope:N4t,withSetIsolationScope:(e,t)=>XCe(t),getCurrentScope:()=>BR().getScope(),getIsolationScope:()=>BR().getIsolationScope()}}var $J,$Ce=v(()=>{XJ();BO();QJ();Ka();Gl();$J=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)?zj(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 eX(e){let t=xc(),n=Sy(t);n.acs=e}function rf(e){let t=Sy(e);return t.acs?t.acs:QCe()}var zR=v(()=>{Gl();$Ce()});function tMe(){return eMe?.()}function tX(){return eMe!==void 0}function Fn(){let e=xc();return rf(e).getCurrentScope()}function vn(){let e=xc();return rf(e).getIsolationScope()}function Gj(){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 zO(...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 Fn().getClient()}function xE(e){let t=tMe();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 eMe,go=v(()=>{zR();Gl();BO();Iy()});var Wi,sf,nX,zt,At,rX,iX,Kl,GR,VR,sX,oX,aX,cX,xy,uX,Lo=v(()=>{Wi="sentry.source",sf="sentry.sample_rate",nX="sentry.previous_trace_sample_rate",zt="sentry.op",At="sentry.origin",rX="sentry.measurement_unit",iX="sentry.measurement_value",Kl="sentry.custom_span_name",GR="sentry.profile_id",VR="sentry.exclusive_time",sX="cache.hit",oX="cache.key",aX="cache.item_size",cX="http.request.method",xy="url.full",uX="gen_ai.conversation.id"});function ym(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 nMe=v(()=>{});function C4t(e){try{let t=qt.WeakRef;if(typeof t=="function")return new t(e)}catch{}return e}function M4t(e){if(e){if(typeof e=="object"&&"deref"in e&&typeof e.deref=="function")try{return e.deref()}catch{return}return e}}function GO(e,t,n){e&&(zs(e,iMe,C4t(n)),zs(e,rMe,t))}function of(e){let t=e;return{scope:t[rMe],isolationScope:M4t(t[iMe])}}var rMe,iMe,WR=v(()=>{nf();Wa();rMe="_sentryScope",iMe="_sentryIsolationScope"});function Sm(e){let t=PE(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 OE(e){if(!e)return;let t=Object.entries(e).reduce((n,[r,i])=>(i&&(n[`${Up}${r}`]=i),n),{});return Vj(t)}function PE(e){if(!(!e||!by(e)&&!Array.isArray(e)))return Array.isArray(e)?e.reduce((t,n)=>{let r=sMe(n);return Object.entries(r).forEach(([i,s])=>{t[i]=s}),t},{}):sMe(e)}function sMe(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 Vj(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>oMe?(Fe&&Z.warn(`Not adding key: ${n} with val: ${r} to baggage header due to exceeding baggage size limits.`),t):o},"")}var Up,oMe,VO=v(()=>{Pi();_r();Ka();Up="sentry-",oMe=8192});function U4t(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 F4t(e){let t=L4t.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 aMe({host:s,pass:i,path:c,projectId:u,port:o,protocol:n,publicKey:r})}function aMe(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function j4t(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+$/)?U4t(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 H4t(e){return e.match(D4t)?.[1]}function Wj(e){let t=e.getOptions(),{host:n}=e.getDsn()||{},r;return t.orgId?r=String(t.orgId):n&&(r=H4t(n)),r}function cMe(e){let t=typeof e=="string"?F4t(e):aMe(e);if(!(!t||!j4t(t)))return t}var D4t,L4t,bm=v(()=>{Pi();_r();D4t=/^o(\d+)\./,L4t=/^(?:(\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 KR=v(()=>{});function uMe(e){if(!e)return;let t=e.match(Kj);if(!t)return;let n;return t[3]==="1"?n=!0:t[3]==="0"&&(n=!1),{traceId:t[1],parentSampled:n,parentSpanId:t[2]}}function WO(e,t){let n=uMe(e),r=Sm(t);if(!n?.traceId)return{traceId:Ya(),sampleRand:Do()};let i=q4t(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 Oy(e=Ya(),t=Za(),n){let r="";return n!==void 0&&(r=n?"-1":"-0"),`${e}-${t}${r}`}function Py(e=Ya(),t=Za(),n){return`00-${e}-${t}-${n?"01":"00"}`}function q4t(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 lX(e,t){let n=Wj(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 Kj,Yj=v(()=>{_r();VO();bm();KR();Iy();Ey();Kj=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$")});function fMe(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 Ny(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 Qj(e){let{traceId:t,spanId:n}=e.spanContext(),r=af(e);return Oy(t,n,r)}function pMe(e){let{traceId:t,spanId:n}=e.spanContext(),r=af(e);return Py(t,n,r)}function NE(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===Xj,attributes:s,...i}))}function lu(e){return typeof e=="number"?dMe(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?dMe(e.getTime()):Ay()}function dMe(e){return e>9999999999?e/1e3:e}function vt(e){if(G4t(e))return e.getSpanJSON();let{spanId:t,traceId:n}=e.spanContext();if(z4t(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:CE(a),op:r[zt],origin:r[At],links:NE(c)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function z4t(e){let t=e;return!!t.attributes&&!!t.startTime&&!!t.name&&!!t.endTime&&!!t.status}function G4t(e){return typeof e.getSpanJSON=="function"}function af(e){let{traceFlags:t}=e.spanContext();return t===Xj}function CE(e){if(!(!e||e.code===0))return e.code===1?"ok":e.message||"internal_error"}function YR(e,t){let n=e[dX]||e;zs(t,dX,n),e[KO]?e[KO].add(t):zs(e,KO,new Set([t]))}function $j(e){let t=new Set;function n(r){if(!t.has(r)&&af(r)){t.add(r);let i=r[KO]?Array.from(r[KO]):[];for(let s of i)n(s)}}return n(e),Array.from(t)}function cs(e){return e[dX]||e}function Yl(){let e=xc(),t=rf(e);return t.getActiveSpan?t.getActiveSpan():IE(Fn())}function YO(){lMe||(xs(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),lMe=!0)}var Jj,Xj,lMe,KO,dX,Oc=v(()=>{zR();Gl();go();Lo();WR();nf();Iy();wy();Yj();_r();Bj();Jj=0,Xj=1,lMe=!1;KO="_sentryChildSpans",dX="_sentryRootSpan"});function mMe(){if(hMe)return;function e(){let t=Yl(),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",hMe=!0,CCe(e),DCe(e)}var hMe,gMe=v(()=>{Pi();MCe();LCe();_r();Oc();hMe=!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 yMe(e){Z.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function JO(e,t){if(!t?.length||!e.description)return!1;for(let n of t){if(V4t(n)){if(hm(e.description,n))return Fe&&yMe(e),!0;continue}if(!n.name&&!n.op)continue;let r=n.name?hm(e.description,n.name):!0,i=n.op?e.op&&hm(e.op,n.op):!0;if(r&&i)return Fe&&yMe(e),!0}return!1}function SMe(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 V4t(e){return typeof e=="string"||e instanceof RegExp}var fX=v(()=>{Pi();_r();vy()});var ZR,eH=v(()=>{ZR="production"});function tH(e,t){zs(e,bMe,t)}function pX(e,t){let n=t.getOptions(),{publicKey:r}=t.getDsn()||{},i={environment:n.environment||ZR,release:n.release,public_key:r,trace_id:e,org_id:Wj(t)};return t.emit("createDsc",i),i}function Fp(e,t){let n=t.getPropagationContext();return n.dsc||pX(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[nX];function a(h){return(typeof o=="number"||typeof o=="string")&&(h.sample_rate=`${o}`),h}let c=n[bMe];if(c)return a(c);let u=s?.get("sentry.dsc"),l=u&&Sm(u);if(l)return a(l);let d=pX(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 bMe,Em=v(()=>{eH();go();Lo();VO();bm();ZO();nf();Oc();WR();bMe="_frozenDsc"});var Cy,EMe=v(()=>{Iy();Oc();Cy=class{constructor(t={}){this._traceId=t.traceId||Ya(),this._spanId=t.spanId||Za()}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:Jj}}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 hX("",e,t,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function mX(e,t=3,n=100*1024){let r=cf(e,t);return Z4t(r)>n?mX(e,t-1,n):r}function hX(e,t,n=1/0,r=1/0,i=J4t()){let[s,o]=i;if(t==null||["boolean","string"].includes(typeof t)||typeof t=="number"&&Number.isFinite(t))return t;let a=W4t(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 hX("",p,c-1,r,i)}catch{}let l=Array.isArray(t)?[]:{},d=0,f=Fj(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]=hX(p,h,c-1,r,i),d++}return o(t),l}function W4t(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(qO(t))return Mj(t);if(HJ(t))return"[SyntheticEvent]";if(typeof t=="number"&&!Number.isFinite(t))return`[${t}]`;if(typeof t=="function")return`[Function: ${jO(t)}]`;if(typeof t=="symbol")return`[${String(t)}]`;if(typeof t=="bigint")return`[BigInt: ${String(t)}]`;let n=K4t(t);return/^HTML(\w*)Element$/.test(n)?`[HTMLElement: ${n}]`:`[object ${n}]`}catch(n){return`**non-serializable** (${n})`}}function K4t(e){let t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:"null prototype"}function Y4t(e){return~-encodeURI(e).split(/%..|./).length}function Z4t(e){return Y4t(JSON.stringify(e))}function J4t(){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 nH=v(()=>{Ka();nf();MR()});function Pc(e,t=[]){return[e,t]}function yX(e,t){let[n,r]=e;return[n,[...r,t]]}function XO(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 SX(e,t){return XO(e,(n,r)=>t.includes(r))}function gX(e){let t=Sy(qt);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function QO(e){let[t,n]=e,r=JSON.stringify(t);function i(s){typeof r=="string"?r=typeof s=="string"?r+s:[gX(r),s]:r.push(typeof s=="string"?gX(s):s)}for(let s of n){let[o,a]=s;if(i(` +Error:`,i)}}var Dj,MCe,Lj=v(()=>{Pi();_r();MR();Dj={},MCe={}});function DCe(e){let t="error";DR(t,e),LR(t,E4t)}function E4t(){MJ=qt.onerror,qt.onerror=function(e,t,n,r,i){return UR("error",{column:r,error:i,line:n,msg:e,url:t}),MJ?MJ.apply(this,arguments):!1},qt.onerror.__SENTRY_INSTRUMENTED__=!0}var MJ,LCe=v(()=>{Wa();Lj();MJ=null});function UCe(e){let t="unhandledrejection";DR(t,e),LR(t,_4t)}function _4t(){DJ=qt.onunhandledrejection,qt.onunhandledrejection=function(e){return UR("unhandledrejection",e),DJ?DJ.apply(this,arguments):!0},qt.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}var DJ,FCe=v(()=>{Wa();Lj();DJ=null});function Mp(e){switch(jCe.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return Dp(e,Error)}}function Uj(e,t){return jCe.call(e)===`[object ${t}]`}function LJ(e){return Uj(e,"ErrorEvent")}function by(e){return Uj(e,"String")}function FR(e){return typeof e=="object"&&e!==null&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function HO(e){return e===null||FR(e)||typeof e!="object"&&typeof e!="function"}function pm(e){return Uj(e,"Object")}function UJ(e){return typeof Event<"u"&&Dp(e,Event)}function FJ(e){return typeof Element<"u"&&Dp(e,Element)}function jJ(e){return Uj(e,"RegExp")}function sa(e){return!!(e?.then&&typeof e.then=="function")}function HJ(e){return pm(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}function Dp(e,t){try{return e instanceof t}catch{return!1}}function qO(e){return!!(typeof e=="object"&&e!==null&&(e.__isVue||e._isVue||e.__v_isVNode))}var jCe,Ka=v(()=>{jCe=Object.prototype.toString});function HCe(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||v4t;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 R4t(e,t){let n=e,r=[];if(!n?.tagName)return"";if(T4t.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&&by(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 T4t,v4t,qCe=v(()=>{Ka();Wa();T4t=qt,v4t=80});function qJ(e,t,n){if(!(t in e))return;let r=e[t];if(typeof r!="function")return;let i=n(r);typeof i=="function"&&GCe(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 GCe(e,t){try{let n=t.prototype||{};e.prototype=t.prototype=n,zs(e,"__sentry_original__",t)}catch{}}function BJ(e){return e.__sentry_original__}function Fj(e){if(Mp(e))return{message:e.message,name:e.name,stack:e.stack,...zCe(e)};if(UJ(e)){let t={type:e.type,target:BCe(e.target),currentTarget:BCe(e.currentTarget),...zCe(e)};return typeof CustomEvent<"u"&&Dp(e,CustomEvent)&&(t.detail=e.detail),t}else return e}function BCe(e){try{return FJ(e)?HCe(e):Object.prototype.toString.call(e)}catch{return""}}function zCe(e){return typeof e=="object"&&e!==null?Object.fromEntries(Object.entries(e)):{}}function zJ(e){let t=Object.keys(Fj(e));return t.sort(),t[0]?t.join(", "):"[object has no keys]"}var nf=v(()=>{Pi();qCe();_r();Ka()});function wE(e){if(jR!==void 0)return jR?jR(e):e();let t=Symbol.for("__SENTRY_SAFE_RANDOM_ID_WRAPPER__"),n=qt;return t in n&&typeof n[t]=="function"?(jR=n[t],jR(e)):(jR=null,e())}function Do(){return wE(()=>Math.random())}function Vl(){return wE(()=>Date.now())}var jR,Ey=v(()=>{Wa()});function _y(e,t=0){return typeof e!="string"||t===0||e.length<=t?e:`${e.slice(0,t)}...`}function GJ(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}`),shm(e,r,n))}var vy=v(()=>{Ka();MR()});function A4t(){let e=qt;return e.crypto||e.msCrypto}function w4t(){return Do()*16}function mo(e=A4t()){try{if(e?.randomUUID)return wE(()=>e.randomUUID()).replace(/-/g,"")}catch{}return WJ||(WJ="10000000100040008000"+1e11),WJ.replace(/[018]/g,t=>(t^(w4t()&15)>>t/4).toString(16))}function VCe(e){return e.exception?.values?.[0]}function Ry(e){let{message:t,event_id:n}=e;if(t)return t;let r=VCe(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"":n||""}function YJ(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 HR(e,t){let n=VCe(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 KJ(e){return parseInt(e||"",10)}function ZJ(e){let t=e.match(k4t)||[],n=KJ(t[1]),r=KJ(t[2]),i=KJ(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 jj(e){if(WCe(e))return!0;try{zs(e,"__sentry_captured__",!0)}catch{}return!1}function WCe(e){try{return e.__sentry_captured__}catch{}}var WJ,k4t,Lp=v(()=>{nf();Ey();Wa();k4t=/^(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 mm(){return Vl()/YCe}function I4t(){let{performance:e}=qt;if(!e?.now||!e.timeOrigin)return mm;let t=e.timeOrigin;return()=>(t+wE(()=>e.now()))/YCe}function Ay(){return(KCe??(KCe=I4t()))()}var YCe,KCe,wy=v(()=>{Ey();Wa();YCe=1e3});function ZCe(e){let t=Ay(),n={sid:mo(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>x4t(n)};return e&&gm(n,e),n}function gm(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||Ay(),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 JCe(e,t){let n={};t?n={status:t}:e.status==="ok"&&(n={status:"exited"}),gm(e,n)}function x4t(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 Hj=v(()=>{Lp();wy()});function ky(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]=ky(r[i],t[i],n-1));return r}var qj=v(()=>{});function Ya(){return mo()}function Za(){return mo().substring(16)}var Iy=v(()=>{Lp()});function kE(e,t){t?zs(e,JJ,t):delete e[JJ]}function IE(e){return e[JJ]}var JJ,Bj=v(()=>{nf();JJ="_sentrySpan"});var O4t,uu,BO=v(()=>{Pi();Hj();_r();Ka();qj();Lp();Iy();Ey();Bj();vy();wy();O4t=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,kE(t,IE(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&&gm(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():pm(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,kE(this,void 0),this._attachments=[],this.setPropagationContext({traceId:Ya(),sampleRand:Do()}),this._notifyScopeListeners(),this}addBreadcrumb(t,n){let r=typeof n=="number"?n:O4t;if(r<=0)return this;let i={timestamp:mm(),...t,message:t.message?_y(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:IE(this),conversationId:this._conversationId}}setSDKProcessingMetadata(t){return this._sdkProcessingMetadata=ky(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 qR(){return tf("defaultCurrentScope",()=>new uu)}function Wl(){return tf("defaultIsolationScope",()=>new uu)}var XJ=v(()=>{Gl();BO()});var XCe,QCe,zj,P4t,QJ=v(()=>{XCe=e=>e instanceof Promise&&!e[QCe],QCe=Symbol("chained PromiseLike"),zj=(e,t,n)=>{let r=e.then(i=>(t(i),i),i=>{throw n(i),i});return XCe(r)&&XCe(e)?r:P4t(e,r)},P4t=(e,t)=>{let n=!1;for(let r in e){if(r in t)continue;n=!0;let i=e[r];typeof i=="function"?Object.defineProperty(t,r,{value:(...s)=>i.apply(e,s),enumerable:!0,configurable:!0,writable:!0}):t[r]=i}return n&&Object.assign(t,{[QCe]:!0}),t}});function BR(){let e=xc(),t=Sy(e);return t.stack=t.stack||new $J(qR(),Wl())}function N4t(e){return BR().withScope(e)}function C4t(e,t){let n=BR();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function $Ce(e){return BR().withScope(()=>e(BR().getIsolationScope()))}function eMe(){return{withIsolationScope:$Ce,withScope:N4t,withSetScope:C4t,withSetIsolationScope:(e,t)=>$Ce(t),getCurrentScope:()=>BR().getScope(),getIsolationScope:()=>BR().getIsolationScope()}}var $J,tMe=v(()=>{XJ();BO();QJ();Ka();Gl();$J=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)?zj(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 eX(e){let t=xc(),n=Sy(t);n.acs=e}function rf(e){let t=Sy(e);return t.acs?t.acs:eMe()}var zR=v(()=>{Gl();tMe()});function rMe(){return nMe?.()}function tX(){return nMe!==void 0}function Fn(){let e=xc();return rf(e).getCurrentScope()}function vn(){let e=xc();return rf(e).getIsolationScope()}function Gj(){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 zO(...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 Fn().getClient()}function xE(e){let t=rMe();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 nMe,go=v(()=>{zR();Gl();BO();Iy()});var Ki,sf,nX,zt,At,rX,iX,Kl,GR,VR,sX,oX,aX,cX,xy,uX,Lo=v(()=>{Ki="sentry.source",sf="sentry.sample_rate",nX="sentry.previous_trace_sample_rate",zt="sentry.op",At="sentry.origin",rX="sentry.measurement_unit",iX="sentry.measurement_value",Kl="sentry.custom_span_name",GR="sentry.profile_id",VR="sentry.exclusive_time",sX="cache.hit",oX="cache.key",aX="cache.item_size",cX="http.request.method",xy="url.full",uX="gen_ai.conversation.id"});function ym(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 iMe=v(()=>{});function M4t(e){try{let t=qt.WeakRef;if(typeof t=="function")return new t(e)}catch{}return e}function D4t(e){if(e){if(typeof e=="object"&&"deref"in e&&typeof e.deref=="function")try{return e.deref()}catch{return}return e}}function GO(e,t,n){e&&(zs(e,oMe,M4t(n)),zs(e,sMe,t))}function of(e){let t=e;return{scope:t[sMe],isolationScope:D4t(t[oMe])}}var sMe,oMe,WR=v(()=>{nf();Wa();sMe="_sentryScope",oMe="_sentryIsolationScope"});function Sm(e){let t=PE(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 OE(e){if(!e)return;let t=Object.entries(e).reduce((n,[r,i])=>(i&&(n[`${Up}${r}`]=i),n),{});return Vj(t)}function PE(e){if(!(!e||!by(e)&&!Array.isArray(e)))return Array.isArray(e)?e.reduce((t,n)=>{let r=aMe(n);return Object.entries(r).forEach(([i,s])=>{t[i]=s}),t},{}):aMe(e)}function aMe(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 Vj(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>cMe?(Fe&&Z.warn(`Not adding key: ${n} with val: ${r} to baggage header due to exceeding baggage size limits.`),t):o},"")}var Up,cMe,VO=v(()=>{Pi();_r();Ka();Up="sentry-",cMe=8192});function F4t(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 j4t(e){let t=U4t.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 uMe({host:s,pass:i,path:c,projectId:u,port:o,protocol:n,publicKey:r})}function uMe(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function H4t(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+$/)?F4t(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 q4t(e){return e.match(L4t)?.[1]}function Wj(e){let t=e.getOptions(),{host:n}=e.getDsn()||{},r;return t.orgId?r=String(t.orgId):n&&(r=q4t(n)),r}function lMe(e){let t=typeof e=="string"?j4t(e):uMe(e);if(!(!t||!H4t(t)))return t}var L4t,U4t,bm=v(()=>{Pi();_r();L4t=/^o(\d+)\./,U4t=/^(?:(\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 KR=v(()=>{});function dMe(e){if(!e)return;let t=e.match(Kj);if(!t)return;let n;return t[3]==="1"?n=!0:t[3]==="0"&&(n=!1),{traceId:t[1],parentSampled:n,parentSpanId:t[2]}}function WO(e,t){let n=dMe(e),r=Sm(t);if(!n?.traceId)return{traceId:Ya(),sampleRand:Do()};let i=B4t(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 Oy(e=Ya(),t=Za(),n){let r="";return n!==void 0&&(r=n?"-1":"-0"),`${e}-${t}${r}`}function Py(e=Ya(),t=Za(),n){return`00-${e}-${t}-${n?"01":"00"}`}function B4t(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 lX(e,t){let n=Wj(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 Kj,Yj=v(()=>{_r();VO();bm();KR();Iy();Ey();Kj=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$")});function hMe(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 Ny(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 Qj(e){let{traceId:t,spanId:n}=e.spanContext(),r=af(e);return Oy(t,n,r)}function mMe(e){let{traceId:t,spanId:n}=e.spanContext(),r=af(e);return Py(t,n,r)}function NE(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===Xj,attributes:s,...i}))}function lu(e){return typeof e=="number"?pMe(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?pMe(e.getTime()):Ay()}function pMe(e){return e>9999999999?e/1e3:e}function vt(e){if(V4t(e))return e.getSpanJSON();let{spanId:t,traceId:n}=e.spanContext();if(G4t(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:CE(a),op:r[zt],origin:r[At],links:NE(c)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function G4t(e){let t=e;return!!t.attributes&&!!t.startTime&&!!t.name&&!!t.endTime&&!!t.status}function V4t(e){return typeof e.getSpanJSON=="function"}function af(e){let{traceFlags:t}=e.spanContext();return t===Xj}function CE(e){if(!(!e||e.code===0))return e.code===1?"ok":e.message||"internal_error"}function YR(e,t){let n=e[dX]||e;zs(t,dX,n),e[KO]?e[KO].add(t):zs(e,KO,new Set([t]))}function $j(e){let t=new Set;function n(r){if(!t.has(r)&&af(r)){t.add(r);let i=r[KO]?Array.from(r[KO]):[];for(let s of i)n(s)}}return n(e),Array.from(t)}function cs(e){return e[dX]||e}function Yl(){let e=xc(),t=rf(e);return t.getActiveSpan?t.getActiveSpan():IE(Fn())}function YO(){fMe||(xs(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),fMe=!0)}var Jj,Xj,fMe,KO,dX,Oc=v(()=>{zR();Gl();go();Lo();WR();nf();Iy();wy();Yj();_r();Bj();Jj=0,Xj=1,fMe=!1;KO="_sentryChildSpans",dX="_sentryRootSpan"});function yMe(){if(gMe)return;function e(){let t=Yl(),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",gMe=!0,DCe(e),UCe(e)}var gMe,SMe=v(()=>{Pi();LCe();FCe();_r();Oc();gMe=!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 bMe(e){Z.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function JO(e,t){if(!t?.length||!e.description)return!1;for(let n of t){if(W4t(n)){if(hm(e.description,n))return Fe&&bMe(e),!0;continue}if(!n.name&&!n.op)continue;let r=n.name?hm(e.description,n.name):!0,i=n.op?e.op&&hm(e.op,n.op):!0;if(r&&i)return Fe&&bMe(e),!0}return!1}function EMe(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 W4t(e){return typeof e=="string"||e instanceof RegExp}var fX=v(()=>{Pi();_r();vy()});var ZR,eH=v(()=>{ZR="production"});function tH(e,t){zs(e,_Me,t)}function pX(e,t){let n=t.getOptions(),{publicKey:r}=t.getDsn()||{},i={environment:n.environment||ZR,release:n.release,public_key:r,trace_id:e,org_id:Wj(t)};return t.emit("createDsc",i),i}function Fp(e,t){let n=t.getPropagationContext();return n.dsc||pX(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[nX];function a(h){return(typeof o=="number"||typeof o=="string")&&(h.sample_rate=`${o}`),h}let c=n[_Me];if(c)return a(c);let u=s?.get("sentry.dsc"),l=u&&Sm(u);if(l)return a(l);let d=pX(e.spanContext().traceId,t),f=i[Ki],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 _Me,Em=v(()=>{eH();go();Lo();VO();bm();ZO();nf();Oc();WR();_Me="_frozenDsc"});var Cy,TMe=v(()=>{Iy();Oc();Cy=class{constructor(t={}){this._traceId=t.traceId||Ya(),this._spanId=t.spanId||Za()}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:Jj}}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 hX("",e,t,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function mX(e,t=3,n=100*1024){let r=cf(e,t);return J4t(r)>n?mX(e,t-1,n):r}function hX(e,t,n=1/0,r=1/0,i=X4t()){let[s,o]=i;if(t==null||["boolean","string"].includes(typeof t)||typeof t=="number"&&Number.isFinite(t))return t;let a=K4t(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 hX("",p,c-1,r,i)}catch{}let l=Array.isArray(t)?[]:{},d=0,f=Fj(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]=hX(p,h,c-1,r,i),d++}return o(t),l}function K4t(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(qO(t))return Mj(t);if(HJ(t))return"[SyntheticEvent]";if(typeof t=="number"&&!Number.isFinite(t))return`[${t}]`;if(typeof t=="function")return`[Function: ${jO(t)}]`;if(typeof t=="symbol")return`[${String(t)}]`;if(typeof t=="bigint")return`[BigInt: ${String(t)}]`;let n=Y4t(t);return/^HTML(\w*)Element$/.test(n)?`[HTMLElement: ${n}]`:`[object ${n}]`}catch(n){return`**non-serializable** (${n})`}}function Y4t(e){let t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:"null prototype"}function Z4t(e){return~-encodeURI(e).split(/%..|./).length}function J4t(e){return Z4t(JSON.stringify(e))}function X4t(){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 nH=v(()=>{Ka();nf();MR()});function Pc(e,t=[]){return[e,t]}function yX(e,t){let[n,r]=e;return[n,[...r,t]]}function XO(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 SX(e,t){return XO(e,(n,r)=>t.includes(r))}function gX(e){let t=Sy(qt);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function QO(e){let[t,n]=e,r=JSON.stringify(t);function i(s){typeof r=="string"?r=typeof s=="string"?r+s:[gX(r),s]:r.push(typeof s=="string"?gX(s):s)}for(let s of n){let[o,a]=s;if(i(` ${JSON.stringify(o)} -`),typeof a=="string"||a instanceof Uint8Array)i(a);else{let c;try{c=JSON.stringify(a)}catch{c=JSON.stringify(cf(a))}i(c)}}return typeof r=="string"?r:X4t(r)}function X4t(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 bX(e){return[{type:"span"},e]}function EX(e){let t=typeof e.data=="string"?gX(e.data):e.data;return[{type:"attachment",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}function Q4t(e){return e in _Me}function rH(e){return Q4t(e)?_Me[e]:e}function iH(e){if(!e?.sdk)return;let{name:t,version:n}=e.sdk;return{name:t,version:n}}function _X(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 _Me,_m=v(()=>{Gl();bm();nH();Wa();_Me={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 $4t(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 TMe(e,t,n,r){let i=iH(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 vMe(e,t,n,r){let i=iH(n),s=e.type&&e.type!=="replay_event"?e.type:"event";$4t(e,n?.sdk);let o=_X(e,i,r,t);return delete e.sdkProcessingMetadata,Pc(o,[[{type:s},e]])}function RMe(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=>!JO(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||(YO(),h)}:vt,f=[];for(let p of u){let h=d(p);h&&f.push(bX(h))}return Pc(o,f)}var TX=v(()=>{Em();bm();_m();fX();Oc()});function $O(e){if(!Fe)return;let{description:t="< unknown name >",op:n="< unknown op >",parent_span_id:r}=vt(e),{spanId:i}=e.spanContext(),s=af(e),o=cs(e),a=o===e,c=`[Tracing] Starting ${s?"sampled":"unsampled"} ${a?"root ":""}span`,u=[`op: ${n}`,`name: ${t}`,`ID: ${i}`];if(r&&u.push(`parent ID: ${r}`),!a){let{op:l,description:d}=vt(o);u.push(`root ID: ${o.spanContext().spanId}`),l&&u.push(`root op: ${l}`),d&&u.push(`root description: ${d}`)}Z.log(`${c} +`),typeof a=="string"||a instanceof Uint8Array)i(a);else{let c;try{c=JSON.stringify(a)}catch{c=JSON.stringify(cf(a))}i(c)}}return typeof r=="string"?r:Q4t(r)}function Q4t(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 bX(e){return[{type:"span"},e]}function EX(e){let t=typeof e.data=="string"?gX(e.data):e.data;return[{type:"attachment",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}function $4t(e){return e in vMe}function rH(e){return $4t(e)?vMe[e]:e}function iH(e){if(!e?.sdk)return;let{name:t,version:n}=e.sdk;return{name:t,version:n}}function _X(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 vMe,_m=v(()=>{Gl();bm();nH();Wa();vMe={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 eKt(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 RMe(e,t,n,r){let i=iH(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 AMe(e,t,n,r){let i=iH(n),s=e.type&&e.type!=="replay_event"?e.type:"event";eKt(e,n?.sdk);let o=_X(e,i,r,t);return delete e.sdkProcessingMetadata,Pc(o,[[{type:s},e]])}function wMe(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=>!JO(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||(YO(),h)}:vt,f=[];for(let p of u){let h=d(p);h&&f.push(bX(h))}return Pc(o,f)}var TX=v(()=>{Em();bm();_m();fX();Oc()});function $O(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 eP(e){if(!Fe)return;let{description:t="< unknown name >",op:n="< unknown op >"}=vt(e),{spanId:r}=e.spanContext(),s=cs(e)===e,o=`[Tracing] Finishing "${n}" ${s?"root ":""}span "${t}" with ID ${r}`;Z.log(o)}var sH=v(()=>{Pi();_r();Oc()});function ME(e){if(!e||e.length===0)return;let t={};return e.forEach(n=>{let r=n.attributes||{},i=r[rX],s=r[iX];typeof i=="string"&&typeof s=="number"&&(t[n.name]={value:s,unit:i})}),t}var vX=v(()=>{Lo()});function wMe(e){return e&&typeof e=="number"||e instanceof Date||Array.isArray(e)}function kMe(e){return!!e.start_timestamp&&!!e.timestamp&&!!e.span_id&&!!e.trace_id}function eKt(e){return e instanceof JR&&e.isStandaloneSpan()}function tKt(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 AMe,JR,IMe=v(()=>{go();Pi();TX();Lo();_r();Iy();Oc();wy();Em();sH();vX();WR();AMe=1e3,JR=class{constructor(t={}){this._traceId=t.traceId||Ya(),this._spanId=t.spanId||Za(),this._startTime=t.startTimestamp||Ay(),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?Xj:Jj}}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),eP(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:CE(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[At],profile_id:this._attributes[GR],exclusive_time:this._attributes[VR],measurements:ME(this._events),is_segment:this._isStandaloneSpan&&cs(this)===this||void 0,segment_id:this._isStandaloneSpan?cs(this).spanContext().spanId:void 0,links:NE(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(t,n,r){Fe&&Z.log("[Tracing] Adding an event to span:",t);let i=wMe(n)?n:r||Ay(),s=wMe(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?tKt(RMe([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||Fn()).captureEvent(r)}_convertSpanToTransaction(){if(!kMe(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=$j(this).filter(l=>l!==this&&!eKt(l)).map(l=>vt(l)).filter(kMe),o=this._attributes[Wi];delete this._attributes[Kl],s.forEach(l=>{delete l.data[Kl]});let a={contexts:{trace:fMe(this)},spans:s.length>AMe?s.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,AMe):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=ME(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 nKt(i,t,n,r)}function nKt(e,t,n,r){return sa(e)?zj(e,i=>{n(),r(i)},i=>{t(i),n()}):(n(),r(e),e)}var oH=v(()=>{QJ();Ka()});function tP(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();KR()});function lf(e,t){let n=nP();if(n.startSpan)return n.startSpan(e,t);let r=wX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ja(a,()=>OMe(s)(()=>{let u=Fn(),l=kX(u,s),f=e.onlyIfParent&&!l?new Cy:AX({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return kE(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=nP();if(n.startSpanManual)return n.startSpanManual(e,t);let r=wX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ja(a,()=>OMe(s)(()=>{let u=Fn(),l=kX(u,s),f=e.onlyIfParent&&!l?new Cy:AX({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return kE(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 cH(e){let t=nP();if(t.startInactiveSpan)return t.startInactiveSpan(e);let n=wX(e),{forceTransaction:r,parentSpan:i}=e;return(e.scope?o=>Ja(e.scope,o):i!==void 0?o=>XR(i,o):o=>o())(()=>{let o=Fn(),a=kX(o,i);return e.onlyIfParent&&!a?new Cy:AX({parentSpan:a,spanArguments:n,forceTransaction:r,scope:o})})}function XR(e,t){let n=nP();return n.withActiveSpan?n.withActiveSpan(e,t):Ja(r=>(kE(r,e||void 0),t(r)))}function QR(e){let t=nP();return t.suppressTracing?t.suppressTracing(e):Ja(n=>{n.setSDKProcessingMetadata({[aH]:!0});let r=e();return n.setSDKProcessingMetadata({[aH]:void 0}),r})}function AX({parentSpan:e,spanArguments:t,forceTransaction:n,scope:r}){if(!Os()){let o=new Cy;if(n||!e){let a={sampled:"false",sample_rate:"0",transaction:t.name,...Ps(o)};tH(o,a)}return o}let i=vn(),s;if(e&&!n)s=rKt(e,r,t),YR(e,s);else if(e){let o=Ps(e),{traceId:a,spanId:c}=e.spanContext(),u=af(e);s=xMe({traceId:a,parentSpanId:c,...t},r,u),tH(s,o)}else{let{traceId:o,dsc:a,parentSpanId:c,sampled:u}={...i.getPropagationContext(),...r.getPropagationContext()};s=xMe({traceId:o,parentSpanId:c,...t},r,u),a&&tH(s,a)}return $O(s),GO(s,r,i),s}function wX(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 nP(){let e=xc();return rf(e)}function xMe(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[aH]?[!1]:tP(i,{name:s,parentSampled:a,attributes:c,parentSampleRate:cl(u.dsc?.sample_rate)},u.sampleRand),p=new JR({...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 rKt(e,t,n){let{spanId:r,traceId:i}=e.spanContext(),s=t.getScopeData().sdkProcessingMetadata[aH]?!1:af(e),o=s?new JR({...n,parentSpanId:r,traceId:i,sampled:s}):new Cy({traceId:i});YR(e,o);let a=ct();return a&&(a.emit("spanStart",o),n.endTimestamp&&a.emit("spanEnd",o)),o}function kX(e,t){if(t)return t;if(t===null)return;let n=IE(e);if(!n)return;let r=ct();return(r?r.getOptions():{}).parentSpanIsAlwaysRootSpan?cs(n):n}function OMe(e){return e!==void 0?t=>XR(e,t):t=>t()}var aH,My=v(()=>{zR();Gl();go();Pi();Lo();_r();oH();ZO();KR();Bj();Oc();Em();sH();RX();EMe();IMe();WR();aH="__SENTRY_SUPPRESS_TRACING__"});function Tm(e){return new uH(t=>{t(e)})}function $R(e){return new uH((t,n)=>{n(e)})}var IX,PMe,NMe,uH,eA=v(()=>{Ka();IX=0,PMe=1,NMe=2;uH=class e{constructor(t){this._state=IX,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===IX)return;let t=this._handlers.slice();this._handlers=[],t.forEach(n=>{n[0]||(this._state===PMe&&n[1](this._value),this._state===NMe&&n[2](this._value),n[0]=!0)})}_runExecutor(t){let n=(s,o)=>{if(this._state===IX){if(sa(o)){o.then(r,i);return}this._state=s,this._value=o,this._executeHandlers()}},r=s=>{n(PMe,s)},i=s=>{n(NMe,s)};try{t(r,i)}catch(s){i(s)}}}});function CMe(e,t,n,r=0){try{let i=xX(t,n,e,r);return sa(i)?i:Tm(i)}catch(i){return $R(i)}}function xX(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=>xX(o,t,n,r+1)):xX(s,t,n,r+1)}var MMe=v(()=>{Pi();_r();Ka();eA()});function UMe(e){let t=qt._sentryDebugIds,n=qt._debugIds;if(!t&&!n)return{};let r=t?Object.keys(t):[],i=n?Object.keys(n):[];if(Dy&&r.length===DMe&&i.length===LMe)return Dy;DMe=r.length,LMe=i.length,Dy={},DE||(DE={});let s=(o,a)=>{for(let c of o){let u=a[c],l=DE?.[c];if(l&&Dy&&u)Dy[l[0]]=u,DE&&(DE[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&&Dy&&DE){Dy[h]=u,DE[c]=[h,u];break}}}}};return t&&s(r,t),n&&s(i,n),Dy}var DE,DMe,LMe,Dy,FMe=v(()=>{Wa()});function HMe(e,t){let{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:s}=t;iKt(e,t),r&&aKt(e,r),cKt(e,n),sKt(e,i),oKt(e,s)}function jMe(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;rP(e,"extra",n),rP(e,"tags",r),rP(e,"attributes",i),rP(e,"user",s),rP(e,"contexts",o),e.sdkProcessingMetadata=ky(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 rP(e,t,n){e[t]=ky(e[t],n,1)}function lH(e,t){let n=Gj().getScopeData();return e&&jMe(n,e.getScopeData()),t&&jMe(n,t.getScopeData()),n}function iKt(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 sKt(e,t){let n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function oKt(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function aKt(e,t){e.contexts={trace:Ny(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 cKt(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 OX=v(()=>{go();Em();qj();Oc()});function qMe(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||mm()},u=n.integrations||e.integrations.map(y=>y.name);uKt(c,e),fKt(c,u),i&&i.emit("applyFrameMetadata",t),t.type===void 0&&lKt(c,e.stackParser);let l=hKt(r,n.captureContext);n.mechanism&&HR(c,n.mechanism);let d=i?i.getEventProcessors():[],f=lH(s,l),p=[...n.attachments||[],...f.attachments];p.length&&(n.attachments=p),HMe(c,f);let h=[...d,...f.eventProcessors];return(n.data&&n.data.__sentry__===!0?Tm(c):CMe(h,c,n)).then(y=>(y&&dKt(y),typeof o=="number"&&o>0?pKt(y,o,a):y))}function uKt(e,t){let{environment:n,release:r,dist:i,maxValueLength:s}=t;e.environment=e.environment||n||ZR,!e.release&&r&&(e.release=r),!e.dist&&i&&(e.dist=i);let o=e.request;o?.url&&s&&(o.url=_y(o.url,s)),s&&e.exception?.values?.forEach(a=>{a.value&&(a.value=_y(a.value,s))})}function lKt(e,t){let n=UMe(t);e.exception?.values?.forEach(r=>{r.stacktrace?.frames?.forEach(i=>{i.filename&&(i.debug_id=n[i.filename])})})}function dKt(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 fKt(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function pKt(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 hKt(e,t){if(!t)return e;let n=e?e.clone():new uu;return n.update(t),n}function BMe(e){if(e)return mKt(e)?{captureContext:e}:yKt(e)?{captureContext:e}:e}function mKt(e){return e instanceof uu||typeof e=="function"}function yKt(e){return Object.keys(e).some(t=>gKt.includes(t))}var gKt,PX=v(()=>{eH();MMe();BO();FMe();Lp();nH();OX();vy();eA();wy();gKt=["user","level","extra","contexts","tags","fingerprint","propagationContext"]});function Wt(e,t){return Fn().captureException(e,BMe(t))}function dH(e,t){return Fn().captureEvent(e,t)}async function tA(e){let t=ct();return t?t.flush(e):(Fe&&Z.warn("Cannot flush events. No client defined."),Promise.resolve(!1))}function fH(){let e=ct();return e?.getOptions().enabled!==!1&&!!e?.getTransport()}function pH(e){let t=vn(),{user:n}=lH(t,Fn()),{userAgent:r}=qt.navigator||{},i=KCe({user:n,...r&&{userAgent:r},...e}),s=t.getSession();return s?.status==="ok"&&gm(s,{status:"exited"}),iP(),t.setSession(i),i}function iP(){let e=vn(),n=Fn().getSession()||e.getSession();n&&YCe(n),SKt(),e.setSession()}function SKt(){let e=vn(),t=ct(),n=e.getSession();n&&t&&t.captureSession(n)}var ul=v(()=>{go();Pi();Hj();_r();PX();OX();Wa()});function EKt(e){let t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function _Kt(e){return`${EKt(e)}${e.projectId}/envelope/`}function TKt(e,t){let n={sentry_version:bKt};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function zMe(e,t,n){return t||`${_Kt(e)}?${TKt(e,n)}`}var bKt,GMe=v(()=>{bKt="7"});function vKt(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 CX(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 vKt(r)}function VMe(e,t){let n={};return t.forEach(r=>{r&&DX(e,r,n)}),n}function MX(e,t){for(let n of t)n?.afterAllSetup&&n.afterAllSetup(e)}function DX(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,!NX.includes(t.name)&&typeof t.setupOnce=="function"&&(t.setupOnce(),NX.push(t.name)),t.setup&&typeof t.setup=="function"&&t.setup(e),typeof t.preprocessEvent=="function"){let r=t.preprocessEvent.bind(t);e.on("preprocessEvent",(i,s)=>r(i,s,e))}if(typeof t.processEvent=="function"){let r=t.processEvent.bind(t),i=Object.assign((s,o)=>r(s,o,e),{id:t.name});e.addEventProcessor(i)}Fe&&Z.log(`Integration installed: ${t.name}`)}var NX,LX=v(()=>{Pi();_r();NX=[]});function WMe(e,t){return t?Ja(t,()=>{let n=Yl(),r=n?Ny(n):xE(t);return[n?Ps(n):Fp(e,t),r]}):[void 0,void 0]}var KMe=v(()=>{go();Em();Oc()});function RKt(e){return[{type:"log",item_count:e.length,content_type:"application/vnd.sentry.items.log+json"},{items:e}]}function YMe(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,[RKt(e)])}var ZMe=v(()=>{bm();_m()});function nA(e,t){let n=t??AKt(e)??[];if(n.length===0)return;let r=e.getOptions(),i=YMe(n,r._metadata,r.tunnel,e.getDsn());JMe().set(e,[]),e.emit("flushLogs"),e.sendEnvelope(i)}function AKt(e){return JMe().get(e)}function JMe(){return tf("clientToLogBufferMap",()=>new WeakMap)}var UX=v(()=>{Gl();ZMe()});function wKt(e){return[{type:"trace_metric",item_count:e.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{items:e}]}function XMe(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,[wKt(e)])}var QMe=v(()=>{bm();_m()});function $Me(e,t){let n=t??kKt(e)??[];if(n.length===0)return;let r=e.getOptions(),i=XMe(n,r._metadata,r.tunnel,e.getDsn());eDe().set(e,[]),e.emit("flushMetrics"),e.sendEnvelope(i)}function kKt(e){return eDe().get(e)}function eDe(){return tf("clientToMetricBufferMap",()=>new WeakMap)}var tDe=v(()=>{Gl();QMe()});function hH(e){return typeof e=="object"&&typeof e.unref=="function"&&e.unref(),e}var FX=v(()=>{});function rA(e=100){let t=new Set;function n(){return t.sizer(a),()=>r(a)),a}function s(o){if(!t.size)return Tm(!0);let a=Promise.allSettled(Array.from(t)).then(()=>!0);if(!o)return a;let c=[a,new Promise(u=>hH(setTimeout(()=>u(!1),o)))];return Promise.race(c)}return{get $(){return Array.from(t)},add:i,drain:s}}var sP,mH=v(()=>{eA();FX();sP=Symbol.for("SentryBufferFullError")});function xKt(e,t=Vl()){let n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;let r=Date.parse(`${e}`);return isNaN(r)?IKt:r-t}function OKt(e,t){return e[t]||e.all||0}function nDe(e,t,n=Vl()){return OKt(e,t)>n}function rDe(e,{statusCode:t,headers:n},r=Vl()){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+xKt(o,r):t===429&&(i.all=r+60*1e3);return i}var IKt,iDe=v(()=>{Ey();IKt=60*1e3});function aP(e,t,n=rA(e.bufferSize||oP)){let r={},i=o=>n.drain(o);function s(o){let a=[];if(XO(o,(d,f)=>{let p=rH(f);nDe(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(SX(c,["client_report"])){Fe&&Z.warn(`Dropping client report. Will not send outcomes (reason: ${d}).`);return}XO(c,(f,p)=>{e.recordDroppedEvent(d,rH(p))})},l=()=>t({body:QO(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=rDe(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===sP)return Fe&&Z.error("Skipped sending event because buffer is full."),u("queue_overflow"),Promise.resolve({});throw d})}return{send:s,flush:i}}var oP,gH=v(()=>{Pi();_r();_m();mH();iDe();oP=64});function sDe(e,t,n){let r=[{type:"client_report"},{timestamp:n||mm(),discarded_events:e}];return Pc(t?{dsn:t}:{},[r])}var oDe=v(()=>{_m();wy()});function yH(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 jX=v(()=>{});function aDe(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?.[GR],exclusive_time:o?.[VR],measurements:e.measurements,is_segment:!0}}function cDe(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&&{[GR]:e.profile_id},...e.exclusive_time&&{[VR]:e.exclusive_time}}}},measurements:e.measurements}}var uDe=v(()=>{Lo()});function SH(e){return{message:e,[yDe]:!0}}function HX(e){return{message:e,[SDe]:!0}}function fDe(e){return!!e&&typeof e=="object"&&yDe in e}function pDe(e){return!!e&&typeof e=="object"&&SDe in e}function hDe(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=hH(setTimeout(()=>{i(e)},PKt)))}),e.on("flush",()=>{i(e)})}function mDe(e){return e==="replay_event"?"replay":e||"error"}function NKt(e,t){let n=`${t} must return \`null\` or a valid event.`;if(sa(e))return e.then(r=>{if(!pm(r)&&r!==null)throw SH(n);return r},r=>{throw SH(`${t} rejected with ${r}`)});if(!pm(e)&&e!==null)throw SH(n);return e}function CKt(e,t,n,r){let{beforeSend:i,beforeSendTransaction:s,beforeSendSpan:o,ignoreSpans:a}=t,c=n;if(qX(c)&&i)return i(c,r);if(bDe(c)){if(o||a){let u=aDe(c);if(a?.length&&JO(u,a))return null;if(o){let l=o(u);l?c=ky(n,cDe(l)):YO()}if(c.spans){let l=[],d=c.spans;for(let p of d){if(a?.length&&JO(p,a)){SMe(d,p);continue}if(o){let h=o(p);h?l.push(h):(YO(),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 qX(e){return e.type===void 0}function bDe(e){return e.type==="transaction"}function MKt(e){let t=0;return e.name&&(t+=e.name.length*2),t+=8,t+EDe(e.attributes)}function DKt(e){let t=0;return e.message&&(t+=e.message.length*2),t+EDe(e.attributes)}function EDe(e){if(!e)return 0;let t=0;return Object.values(e).forEach(n=>{Array.isArray(n)?t+=n.length*gDe(n[0]):HO(n)?t+=gDe(n):t+=100}),t}function gDe(e){return typeof e=="string"?e.length*2:typeof e=="number"?8:typeof e=="boolean"?4:0}var lDe,dDe,yDe,SDe,PKt,bH,_De=v(()=>{GMe();eH();go();Pi();TX();LX();UX();tDe();Hj();Em();gH();oDe();_r();bm();_m();jX();Ka();qj();Lp();KR();PX();mH();Ey();fX();Oc();eA();FX();uDe();lDe="Not capturing exception because it's already been captured.",dDe="Discarded session because of missing or non-string release",yDe=Symbol.for("SentryInternalError"),SDe=Symbol.for("SentryDoNotSendEventError"),PKt=5e3;bH=class{constructor(t){if(this._options=t,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=rA(t.transportOptions?.bufferSize??oP),t.dsn?this._dsn=cMe(t.dsn):Fe&&Z.warn("No DSN provided, client will not send events."),this._dsn){let r=zMe(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&&hDe(this,"afterCaptureLog","flushLogs",DKt,nA),(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)&&hDe(this,"afterCaptureMetric","flushMetrics",MKt,$Me)}captureException(t,n,r){let i=mo();if(jj(t))return Fe&&Z.log(lDe),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=FR(t)?t:String(t),a=HO(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&&jj(n.originalException))return Fe&&Z.log(lDe),i;let s={event_id:i,...n},o=t.sdkProcessingMetadata||{},a=o.capturedSpanScope,c=o.capturedSpanIsolationScope,u=mDe(t.type);return this._process(()=>this._captureEvent(t,s,a||r,c),u),s.event_id}captureSession(t){this.sendSession(t),gm(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){nA(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];DX(this,t,this._integrations),n||MX(this,[t])}sendEvent(t,n={}){this.emit("beforeSendEvent",t,n);let r=vMe(t,this._dsn,this._options._metadata,this._options.tunnel);for(let i of n.attachments||[])r=yX(r,EX(i));this.sendEnvelope(r).then(i=>this.emit("afterSendEvent",t,i))}sendSession(t){let{release:n,environment:r=ZR}=this._options;if("aggregates"in t){let s=t.attrs||{};if(!s.release&&!n){Fe&&Z.warn(dDe);return}s.release=s.release||n,s.environment=s.environment||r,t.attrs=s}else{if(!t.release&&!n){Fe&&Z.warn(dDe);return}t.release=t.release||n,t.environment=t.environment||r}this.emit("beforeSendSession",t);let i=TMe(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=VMe(this,t),MX(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)&&(gm(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),qMe(s,t,n,r,this,i).then(a=>{if(a===null)return a;this.emit("postprocessEvent",a,n),a.contexts={trace:{...a.contexts?.trace,...xE(r)},...a.contexts};let c=Fp(this,r);return a.sdkProcessingMetadata={dynamicSamplingContext:c,...a.sdkProcessingMetadata},a})}_captureEvent(t,n={},r=Fn(),i=vn()){return Fe&&qX(t)&&Z.log(`Captured error event \`${yH(t)[0]||""}\``),this._processEvent(t,n,r,i).then(s=>s.event_id,s=>{Fe&&(pDe(s)?Z.log(s.message):fDe(s)?Z.warn(s.message):Z.warn(s))})}_processEvent(t,n,r,i){let s=this.getOptions(),{sampleRate:o}=s,a=bDe(t),c=qX(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"),$R(HX(`Discarding event because it's not included in the random sample (sampling rate = ${o})`));let f=mDe(t.type);return this._prepareEvent(t,n,r,i).then(p=>{if(p===null)throw this.recordDroppedEvent("event_processor",f),HX("An event processor returned `null`, will not send event.");if(n.data?.__sentry__===!0)return p;let m=CKt(this,s,p,n);return NKt(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 HX(`${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 pDe(p)||fDe(p)?p:(this.captureException(p,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:p}),SH(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. -Reason: ${p}`))})}_process(t,n){this._numProcessing++,this._promiseBuffer.add(t).then(r=>(this._numProcessing--,r),r=>(this._numProcessing--,r===sP&&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=sDe(t,this._options.tunnel&&al(this._dsn));this.sendEnvelope(n)}}});function TDe(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=LKt(e);return Pc(s,[o])}function LKt(e){return[{type:"check_in"},e]}var vDe=v(()=>{bm();_m()});function RDe(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 ADe=v(()=>{});function wDe(e,t){return e(t.stack||"",1)}function UKt(e){return Mp(e)&&"__sentry_fetch_url_host__"in e&&typeof e.__sentry_fetch_url_host__=="string"}function FKt(e){return UKt(e)?`${e.message} (${e.__sentry_fetch_url_host__})`:e.message}function BX(e,t){let n={type:t.name||t.constructor.name,value:FKt(t)},r=wDe(e,t);return r.length&&(n.stacktrace={frames:r}),n}function jKt(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];if(n instanceof Error)return n}}function HKt(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=zJ(e);if(LJ(e))return`Event \`ErrorEvent\` captured as exception with message \`${e.message}\``;let n=qKt(e);return`${n&&n!=="Object"?`'${n}'`:"Object"} captured as exception with keys: ${t}`}function qKt(e){try{let t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}function BKt(e,t,n,r){if(Mp(n))return[n,void 0];if(t.synthetic=!0,pm(n)){let s=e?.getOptions().normalizeDepth,o={__serialized__:mX(n,s)},a=jKt(n);if(a)return[a,o];let c=HKt(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 kDe(e,t,n,r){let s=r?.data&&r.data.mechanism||{handled:!0,type:"generic"},[o,a]=BKt(e,s,n,r),c={exception:{values:[BX(t,o)]}};return a&&(c.extra=a),YJ(c,void 0,void 0),HR(c,s),{...c,event_id:r?.event_id}}function IDe(e,t,n="info",r,i){let s={event_id:r?.event_id,level:n};if(i&&r?.syntheticException){let o=wDe(e,r.syntheticException);o.length&&(s.exception={values:[{value:t,stacktrace:{frames:o}}]},HR(s,{synthetic:!0}))}if(FR(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 zX=v(()=>{Ka();Lp();nH();nf()});function xDe(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 cP,ODe=v(()=>{vDe();_De();go();Pi();gMe();_r();Lp();gH();ADe();zX();mH();eA();KMe();cP=class extends bH{constructor(t){mMe(),RDe(t),super(t),this._setUpMetricsProcessing()}eventFromException(t,n){let r=kDe(this,this._options.stackParser,t,n);return r.level="error",Tm(r)}eventFromMessage(t,n="info",r){return Tm(IDe(this._options.stackParser,t,n,r,this._options.attachStacktrace))}captureException(t,n,r){return xDe(n),super.captureException(t,n,r)}captureEvent(t,n,r){return!t.type&&t.exception?.values&&t.exception.values.length>0&&xDe(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]=WMe(this,r);d&&(u.contexts={trace:d});let f=TDe(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=rA(oP)}_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 VX(e){e.forEach(t=>{GX.add(t),Fe&&Z.log(`AI provider "${t}" wrapping will be skipped`)})}function LE(e){return GX.has(e)}function WX(){GX.clear(),Fe&&Z.log("Cleared AI provider skip registrations")}var GX,PDe=v(()=>{Pi();_r();GX=new Set});function iA(e,t){let n=String(e).toLowerCase();return zKt.has(n)?!1:GKt.has(n)?!0:t?.strict?null:!!e}var zKt,GKt,NDe=v(()=>{zKt=new Set(["false","f","n","no","off","0"]),GKt=new Set(["true","t","y","yes","on","1"])});function KX(e){return"isRelative"in e}function uP(e,t){let n=e.indexOf("://")<=0&&e.indexOf("//")!==0,r=t??(n?VKt: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 CDe(e){if(KX(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 WKt(e,t,n,r){let i=n?.method?.toUpperCase()??"GET",s=r||(e?t==="client"?CDe(e):e.pathname:"/");return`${i} ${s}`}function YX(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[cX]=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")),KX(e)||(s[xy]=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))),[WKt(e,t,r,i),s]}function Ly(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 vm(e){return e.split(/[?#]/,1)[0]}function Uy(e){let{protocol:t,host:n,path:r}=e,i=n?.replace(/^.*@/,"[filtered]:[filtered]@").replace(/(:80)$/,"").replace(/(:443)$/,"")||"";return`${t?`${t}://`:""}${i}${r}`}function sA(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 VKt,MDe=v(()=>{Lo();VKt="thismessage:/"});function UE(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:Cn})),i.version=Cn)}var DDe=v(()=>{Pj()});function oA(e={}){let t=e.client||ct();if(!fH()||!t)return{};let n=xc(),r=rf(n);if(r.getTraceData)return r.getTraceData(e);let i=e.scope||Fn(),s=e.span||Yl();if(!s&&tX())return{};let o=s?Qj(s):KKt(i),a=s?Ps(s):Fp(t,i),c=OE(a);if(!Kj.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?pMe(s):YKt(i)),l}function KKt(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Oy(t,r,n)}function YKt(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Py(t,r,n)}var LDe=v(()=>{zR();Gl();go();ul();_r();Oc();Em();VO();Yj()});function FE(e,t,n){if(typeof e!="string"||!t)return!0;let r=n?.get(e);if(r!==void 0)return Fe&&!r&&Z.log(UDe,e),r;let i=Ty(e,t);return n?.set(e,i),Fe&&!i&&Z.log(UDe,e),i}var UDe,FDe=v(()=>{Pi();_r();vy();UDe="[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:"});function ZX(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 jDe=v(()=>{});function zDe(e){let t=Object.create(null);try{Object.entries(e).forEach(([n,r])=>{typeof r=="string"&&(t[n]=r)})}catch{}return t}function lP(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=ZKt({url:o,host:r,protocol:s}),c=e.body||void 0,u=e.cookies;return{url:a,method:e.method,query_string:GDe(o),headers:zDe(t),cookies:u,data:c}}function ZKt({url:e,protocol:t,host:n}){if(e?.startsWith("http"))return e;if(e&&n)return`${t}://${n}${e}`}function EH(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();BDe(r,o,g,m,t,n)}}else BDe(r,o,"",s,t,n)})}catch{}return r}function qDe(e){return e.replace(/-/g,"_")}function BDe(e,t,n,r,i,s){let o=XKt(n||t,r,i);if(o==null)return;let a=`http.${s}.header.${qDe(t)}${n?`.${qDe(n)}`:""}`;e[a]=o}function XKt(e,t,n){if(n?HDe.some(i=>e.includes(i)):[...JKt,...HDe].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 GDe(e){if(e)try{let t=new URL(e,"http://s.io").search.slice(1);return t.length?t:void 0}catch{return}}var HDe,JKt,VDe=v(()=>{HDe=["auth","token","secret","session","password","passwd","pwd","key","jwt","bearer","sso","saml","csrf","xsrf","credentials","set-cookie","cookie"],JKt=["x-forwarded-","-user"]});function Zl(e,t){let n=ct(),r=vn();if(!n)return;let{beforeBreadcrumb:i=null,maxBreadcrumbs:s=QKt}=n.getOptions();if(s<=0)return;let a={timestamp:mm(),...e},c=i?xs(()=>i(a,t)):a;c!==null&&(n.emit&&n.emit("beforeAddBreadcrumb",c,t),r.addBreadcrumb(c,s))}var QKt,JX=v(()=>{go();_r();wy();QKt=100});var WDe,$Kt,KDe,e3t,_H,YDe=v(()=>{go();nf();$Kt="FunctionToString",KDe=new WeakMap,e3t=(()=>({name:$Kt,setupOnce(){WDe=Function.prototype.toString;try{Function.prototype.toString=function(...e){let t=BJ(this),n=KDe.has(ct())&&t!==void 0?t:this;return WDe.apply(n,e)}}catch{}},setup(e){KDe.set(e,!0)}})),_H=e3t});function ZDe(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:t3t],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function r3t(e,t){if(e.type){if(e.type==="transaction"&&s3t(e,t.ignoreTransactions))return Fe&&Z.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. -Event: ${Ry(e)}`),!0}else{if(i3t(e,t.ignoreErrors))return Fe&&Z.warn(`Event dropped due to being matched by \`ignoreErrors\` option. -Event: ${Ry(e)}`),!0;if(u3t(e))return Fe&&Z.warn(`Event dropped due to not having an error message, error type or stacktrace. -Event: ${Ry(e)}`),!0;if(o3t(e,t.denyUrls))return Fe&&Z.warn(`Event dropped due to being matched by \`denyUrls\` option. + `)}`)}function eP(e){if(!Fe)return;let{description:t="< unknown name >",op:n="< unknown op >"}=vt(e),{spanId:r}=e.spanContext(),s=cs(e)===e,o=`[Tracing] Finishing "${n}" ${s?"root ":""}span "${t}" with ID ${r}`;Z.log(o)}var sH=v(()=>{Pi();_r();Oc()});function ME(e){if(!e||e.length===0)return;let t={};return e.forEach(n=>{let r=n.attributes||{},i=r[rX],s=r[iX];typeof i=="string"&&typeof s=="number"&&(t[n.name]={value:s,unit:i})}),t}var vX=v(()=>{Lo()});function IMe(e){return e&&typeof e=="number"||e instanceof Date||Array.isArray(e)}function xMe(e){return!!e.start_timestamp&&!!e.timestamp&&!!e.span_id&&!!e.trace_id}function tKt(e){return e instanceof JR&&e.isStandaloneSpan()}function nKt(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 kMe,JR,OMe=v(()=>{go();Pi();TX();Lo();_r();Iy();Oc();wy();Em();sH();vX();WR();kMe=1e3,JR=class{constructor(t={}){this._traceId=t.traceId||Ya(),this._spanId=t.spanId||Za(),this._startTime=t.startTimestamp||Ay(),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?Xj:Jj}}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(Ki,"custom"),this}end(t){this._endTime||(this._endTime=lu(t),eP(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:CE(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[At],profile_id:this._attributes[GR],exclusive_time:this._attributes[VR],measurements:ME(this._events),is_segment:this._isStandaloneSpan&&cs(this)===this||void 0,segment_id:this._isStandaloneSpan?cs(this).spanContext().spanId:void 0,links:NE(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(t,n,r){Fe&&Z.log("[Tracing] Adding an event to span:",t);let i=IMe(n)?n:r||Ay(),s=IMe(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?nKt(wMe([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||Fn()).captureEvent(r)}_convertSpanToTransaction(){if(!xMe(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=$j(this).filter(l=>l!==this&&!tKt(l)).map(l=>vt(l)).filter(xMe),o=this._attributes[Ki];delete this._attributes[Kl],s.forEach(l=>{delete l.data[Kl]});let a={contexts:{trace:hMe(this)},spans:s.length>kMe?s.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,kMe):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=ME(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 rKt(i,t,n,r)}function rKt(e,t,n,r){return sa(e)?zj(e,i=>{n(),r(i)},i=>{t(i),n()}):(n(),r(e),e)}var oH=v(()=>{QJ();Ka()});function tP(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();KR()});function lf(e,t){let n=nP();if(n.startSpan)return n.startSpan(e,t);let r=wX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ja(a,()=>NMe(s)(()=>{let u=Fn(),l=kX(u,s),f=e.onlyIfParent&&!l?new Cy:AX({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return kE(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=nP();if(n.startSpanManual)return n.startSpanManual(e,t);let r=wX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ja(a,()=>NMe(s)(()=>{let u=Fn(),l=kX(u,s),f=e.onlyIfParent&&!l?new Cy:AX({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return kE(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 cH(e){let t=nP();if(t.startInactiveSpan)return t.startInactiveSpan(e);let n=wX(e),{forceTransaction:r,parentSpan:i}=e;return(e.scope?o=>Ja(e.scope,o):i!==void 0?o=>XR(i,o):o=>o())(()=>{let o=Fn(),a=kX(o,i);return e.onlyIfParent&&!a?new Cy:AX({parentSpan:a,spanArguments:n,forceTransaction:r,scope:o})})}function XR(e,t){let n=nP();return n.withActiveSpan?n.withActiveSpan(e,t):Ja(r=>(kE(r,e||void 0),t(r)))}function QR(e){let t=nP();return t.suppressTracing?t.suppressTracing(e):Ja(n=>{n.setSDKProcessingMetadata({[aH]:!0});let r=e();return n.setSDKProcessingMetadata({[aH]:void 0}),r})}function AX({parentSpan:e,spanArguments:t,forceTransaction:n,scope:r}){if(!Os()){let o=new Cy;if(n||!e){let a={sampled:"false",sample_rate:"0",transaction:t.name,...Ps(o)};tH(o,a)}return o}let i=vn(),s;if(e&&!n)s=iKt(e,r,t),YR(e,s);else if(e){let o=Ps(e),{traceId:a,spanId:c}=e.spanContext(),u=af(e);s=PMe({traceId:a,parentSpanId:c,...t},r,u),tH(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&&tH(s,a)}return $O(s),GO(s,r,i),s}function wX(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 nP(){let e=xc();return rf(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[aH]?[!1]:tP(i,{name:s,parentSampled:a,attributes:c,parentSampleRate:cl(u.dsc?.sample_rate)},u.sampleRand),p=new JR({...e,attributes:{[Ki]:"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 iKt(e,t,n){let{spanId:r,traceId:i}=e.spanContext(),s=t.getScopeData().sdkProcessingMetadata[aH]?!1:af(e),o=s?new JR({...n,parentSpanId:r,traceId:i,sampled:s}):new Cy({traceId:i});YR(e,o);let a=ct();return a&&(a.emit("spanStart",o),n.endTimestamp&&a.emit("spanEnd",o)),o}function kX(e,t){if(t)return t;if(t===null)return;let n=IE(e);if(!n)return;let r=ct();return(r?r.getOptions():{}).parentSpanIsAlwaysRootSpan?cs(n):n}function NMe(e){return e!==void 0?t=>XR(e,t):t=>t()}var aH,My=v(()=>{zR();Gl();go();Pi();Lo();_r();oH();ZO();KR();Bj();Oc();Em();sH();RX();TMe();OMe();WR();aH="__SENTRY_SUPPRESS_TRACING__"});function Tm(e){return new uH(t=>{t(e)})}function $R(e){return new uH((t,n)=>{n(e)})}var IX,CMe,MMe,uH,eA=v(()=>{Ka();IX=0,CMe=1,MMe=2;uH=class e{constructor(t){this._state=IX,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===IX)return;let t=this._handlers.slice();this._handlers=[],t.forEach(n=>{n[0]||(this._state===CMe&&n[1](this._value),this._state===MMe&&n[2](this._value),n[0]=!0)})}_runExecutor(t){let n=(s,o)=>{if(this._state===IX){if(sa(o)){o.then(r,i);return}this._state=s,this._value=o,this._executeHandlers()}},r=s=>{n(CMe,s)},i=s=>{n(MMe,s)};try{t(r,i)}catch(s){i(s)}}}});function DMe(e,t,n,r=0){try{let i=xX(t,n,e,r);return sa(i)?i:Tm(i)}catch(i){return $R(i)}}function xX(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=>xX(o,t,n,r+1)):xX(s,t,n,r+1)}var LMe=v(()=>{Pi();_r();Ka();eA()});function jMe(e){let t=qt._sentryDebugIds,n=qt._debugIds;if(!t&&!n)return{};let r=t?Object.keys(t):[],i=n?Object.keys(n):[];if(Dy&&r.length===UMe&&i.length===FMe)return Dy;UMe=r.length,FMe=i.length,Dy={},DE||(DE={});let s=(o,a)=>{for(let c of o){let u=a[c],l=DE?.[c];if(l&&Dy&&u)Dy[l[0]]=u,DE&&(DE[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&&Dy&&DE){Dy[h]=u,DE[c]=[h,u];break}}}}};return t&&s(r,t),n&&s(i,n),Dy}var DE,UMe,FMe,Dy,HMe=v(()=>{Wa()});function BMe(e,t){let{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:s}=t;sKt(e,t),r&&cKt(e,r),uKt(e,n),oKt(e,i),aKt(e,s)}function qMe(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;rP(e,"extra",n),rP(e,"tags",r),rP(e,"attributes",i),rP(e,"user",s),rP(e,"contexts",o),e.sdkProcessingMetadata=ky(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 rP(e,t,n){e[t]=ky(e[t],n,1)}function lH(e,t){let n=Gj().getScopeData();return e&&qMe(n,e.getScopeData()),t&&qMe(n,t.getScopeData()),n}function sKt(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 oKt(e,t){let n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function aKt(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function cKt(e,t){e.contexts={trace:Ny(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 uKt(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 OX=v(()=>{go();Em();qj();Oc()});function zMe(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||mm()},u=n.integrations||e.integrations.map(y=>y.name);lKt(c,e),pKt(c,u),i&&i.emit("applyFrameMetadata",t),t.type===void 0&&dKt(c,e.stackParser);let l=mKt(r,n.captureContext);n.mechanism&&HR(c,n.mechanism);let d=i?i.getEventProcessors():[],f=lH(s,l),p=[...n.attachments||[],...f.attachments];p.length&&(n.attachments=p),BMe(c,f);let h=[...d,...f.eventProcessors];return(n.data&&n.data.__sentry__===!0?Tm(c):DMe(h,c,n)).then(y=>(y&&fKt(y),typeof o=="number"&&o>0?hKt(y,o,a):y))}function lKt(e,t){let{environment:n,release:r,dist:i,maxValueLength:s}=t;e.environment=e.environment||n||ZR,!e.release&&r&&(e.release=r),!e.dist&&i&&(e.dist=i);let o=e.request;o?.url&&s&&(o.url=_y(o.url,s)),s&&e.exception?.values?.forEach(a=>{a.value&&(a.value=_y(a.value,s))})}function dKt(e,t){let n=jMe(t);e.exception?.values?.forEach(r=>{r.stacktrace?.frames?.forEach(i=>{i.filename&&(i.debug_id=n[i.filename])})})}function fKt(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 pKt(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function hKt(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 mKt(e,t){if(!t)return e;let n=e?e.clone():new uu;return n.update(t),n}function GMe(e){if(e)return gKt(e)?{captureContext:e}:SKt(e)?{captureContext:e}:e}function gKt(e){return e instanceof uu||typeof e=="function"}function SKt(e){return Object.keys(e).some(t=>yKt.includes(t))}var yKt,PX=v(()=>{eH();LMe();BO();HMe();Lp();nH();OX();vy();eA();wy();yKt=["user","level","extra","contexts","tags","fingerprint","propagationContext"]});function Wt(e,t){return Fn().captureException(e,GMe(t))}function dH(e,t){return Fn().captureEvent(e,t)}async function tA(e){let t=ct();return t?t.flush(e):(Fe&&Z.warn("Cannot flush events. No client defined."),Promise.resolve(!1))}function fH(){let e=ct();return e?.getOptions().enabled!==!1&&!!e?.getTransport()}function pH(e){let t=vn(),{user:n}=lH(t,Fn()),{userAgent:r}=qt.navigator||{},i=ZCe({user:n,...r&&{userAgent:r},...e}),s=t.getSession();return s?.status==="ok"&&gm(s,{status:"exited"}),iP(),t.setSession(i),i}function iP(){let e=vn(),n=Fn().getSession()||e.getSession();n&&JCe(n),bKt(),e.setSession()}function bKt(){let e=vn(),t=ct(),n=e.getSession();n&&t&&t.captureSession(n)}var ul=v(()=>{go();Pi();Hj();_r();PX();OX();Wa()});function _Kt(e){let t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function TKt(e){return`${_Kt(e)}${e.projectId}/envelope/`}function vKt(e,t){let n={sentry_version:EKt};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function VMe(e,t,n){return t||`${TKt(e)}?${vKt(e,n)}`}var EKt,WMe=v(()=>{EKt="7"});function RKt(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 CX(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 RKt(r)}function KMe(e,t){let n={};return t.forEach(r=>{r&&DX(e,r,n)}),n}function MX(e,t){for(let n of t)n?.afterAllSetup&&n.afterAllSetup(e)}function DX(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,!NX.includes(t.name)&&typeof t.setupOnce=="function"&&(t.setupOnce(),NX.push(t.name)),t.setup&&typeof t.setup=="function"&&t.setup(e),typeof t.preprocessEvent=="function"){let r=t.preprocessEvent.bind(t);e.on("preprocessEvent",(i,s)=>r(i,s,e))}if(typeof t.processEvent=="function"){let r=t.processEvent.bind(t),i=Object.assign((s,o)=>r(s,o,e),{id:t.name});e.addEventProcessor(i)}Fe&&Z.log(`Integration installed: ${t.name}`)}var NX,LX=v(()=>{Pi();_r();NX=[]});function YMe(e,t){return t?Ja(t,()=>{let n=Yl(),r=n?Ny(n):xE(t);return[n?Ps(n):Fp(e,t),r]}):[void 0,void 0]}var ZMe=v(()=>{go();Em();Oc()});function AKt(e){return[{type:"log",item_count:e.length,content_type:"application/vnd.sentry.items.log+json"},{items:e}]}function JMe(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,[AKt(e)])}var XMe=v(()=>{bm();_m()});function nA(e,t){let n=t??wKt(e)??[];if(n.length===0)return;let r=e.getOptions(),i=JMe(n,r._metadata,r.tunnel,e.getDsn());QMe().set(e,[]),e.emit("flushLogs"),e.sendEnvelope(i)}function wKt(e){return QMe().get(e)}function QMe(){return tf("clientToLogBufferMap",()=>new WeakMap)}var UX=v(()=>{Gl();XMe()});function kKt(e){return[{type:"trace_metric",item_count:e.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{items:e}]}function $Me(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,[kKt(e)])}var eDe=v(()=>{bm();_m()});function tDe(e,t){let n=t??IKt(e)??[];if(n.length===0)return;let r=e.getOptions(),i=$Me(n,r._metadata,r.tunnel,e.getDsn());nDe().set(e,[]),e.emit("flushMetrics"),e.sendEnvelope(i)}function IKt(e){return nDe().get(e)}function nDe(){return tf("clientToMetricBufferMap",()=>new WeakMap)}var rDe=v(()=>{Gl();eDe()});function hH(e){return typeof e=="object"&&typeof e.unref=="function"&&e.unref(),e}var FX=v(()=>{});function rA(e=100){let t=new Set;function n(){return t.sizer(a),()=>r(a)),a}function s(o){if(!t.size)return Tm(!0);let a=Promise.allSettled(Array.from(t)).then(()=>!0);if(!o)return a;let c=[a,new Promise(u=>hH(setTimeout(()=>u(!1),o)))];return Promise.race(c)}return{get $(){return Array.from(t)},add:i,drain:s}}var sP,mH=v(()=>{eA();FX();sP=Symbol.for("SentryBufferFullError")});function OKt(e,t=Vl()){let n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;let r=Date.parse(`${e}`);return isNaN(r)?xKt:r-t}function PKt(e,t){return e[t]||e.all||0}function iDe(e,t,n=Vl()){return PKt(e,t)>n}function sDe(e,{statusCode:t,headers:n},r=Vl()){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+OKt(o,r):t===429&&(i.all=r+60*1e3);return i}var xKt,oDe=v(()=>{Ey();xKt=60*1e3});function aP(e,t,n=rA(e.bufferSize||oP)){let r={},i=o=>n.drain(o);function s(o){let a=[];if(XO(o,(d,f)=>{let p=rH(f);iDe(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(SX(c,["client_report"])){Fe&&Z.warn(`Dropping client report. Will not send outcomes (reason: ${d}).`);return}XO(c,(f,p)=>{e.recordDroppedEvent(d,rH(p))})},l=()=>t({body:QO(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=sDe(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===sP)return Fe&&Z.error("Skipped sending event because buffer is full."),u("queue_overflow"),Promise.resolve({});throw d})}return{send:s,flush:i}}var oP,gH=v(()=>{Pi();_r();_m();mH();oDe();oP=64});function aDe(e,t,n){let r=[{type:"client_report"},{timestamp:n||mm(),discarded_events:e}];return Pc(t?{dsn:t}:{},[r])}var cDe=v(()=>{_m();wy()});function yH(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 jX=v(()=>{});function uDe(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?.[GR],exclusive_time:o?.[VR],measurements:e.measurements,is_segment:!0}}function lDe(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&&{[GR]:e.profile_id},...e.exclusive_time&&{[VR]:e.exclusive_time}}}},measurements:e.measurements}}var dDe=v(()=>{Lo()});function SH(e){return{message:e,[bDe]:!0}}function HX(e){return{message:e,[EDe]:!0}}function hDe(e){return!!e&&typeof e=="object"&&bDe in e}function mDe(e){return!!e&&typeof e=="object"&&EDe in e}function gDe(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=hH(setTimeout(()=>{i(e)},NKt)))}),e.on("flush",()=>{i(e)})}function yDe(e){return e==="replay_event"?"replay":e||"error"}function CKt(e,t){let n=`${t} must return \`null\` or a valid event.`;if(sa(e))return e.then(r=>{if(!pm(r)&&r!==null)throw SH(n);return r},r=>{throw SH(`${t} rejected with ${r}`)});if(!pm(e)&&e!==null)throw SH(n);return e}function MKt(e,t,n,r){let{beforeSend:i,beforeSendTransaction:s,beforeSendSpan:o,ignoreSpans:a}=t,c=n;if(qX(c)&&i)return i(c,r);if(_De(c)){if(o||a){let u=uDe(c);if(a?.length&&JO(u,a))return null;if(o){let l=o(u);l?c=ky(n,lDe(l)):YO()}if(c.spans){let l=[],d=c.spans;for(let p of d){if(a?.length&&JO(p,a)){EMe(d,p);continue}if(o){let h=o(p);h?l.push(h):(YO(),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 qX(e){return e.type===void 0}function _De(e){return e.type==="transaction"}function DKt(e){let t=0;return e.name&&(t+=e.name.length*2),t+=8,t+TDe(e.attributes)}function LKt(e){let t=0;return e.message&&(t+=e.message.length*2),t+TDe(e.attributes)}function TDe(e){if(!e)return 0;let t=0;return Object.values(e).forEach(n=>{Array.isArray(n)?t+=n.length*SDe(n[0]):HO(n)?t+=SDe(n):t+=100}),t}function SDe(e){return typeof e=="string"?e.length*2:typeof e=="number"?8:typeof e=="boolean"?4:0}var fDe,pDe,bDe,EDe,NKt,bH,vDe=v(()=>{WMe();eH();go();Pi();TX();LX();UX();rDe();Hj();Em();gH();cDe();_r();bm();_m();jX();Ka();qj();Lp();KR();PX();mH();Ey();fX();Oc();eA();FX();dDe();fDe="Not capturing exception because it's already been captured.",pDe="Discarded session because of missing or non-string release",bDe=Symbol.for("SentryInternalError"),EDe=Symbol.for("SentryDoNotSendEventError"),NKt=5e3;bH=class{constructor(t){if(this._options=t,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=rA(t.transportOptions?.bufferSize??oP),t.dsn?this._dsn=lMe(t.dsn):Fe&&Z.warn("No DSN provided, client will not send events."),this._dsn){let r=VMe(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&&gDe(this,"afterCaptureLog","flushLogs",LKt,nA),(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)&&gDe(this,"afterCaptureMetric","flushMetrics",DKt,tDe)}captureException(t,n,r){let i=mo();if(jj(t))return Fe&&Z.log(fDe),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=FR(t)?t:String(t),a=HO(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&&jj(n.originalException))return Fe&&Z.log(fDe),i;let s={event_id:i,...n},o=t.sdkProcessingMetadata||{},a=o.capturedSpanScope,c=o.capturedSpanIsolationScope,u=yDe(t.type);return this._process(()=>this._captureEvent(t,s,a||r,c),u),s.event_id}captureSession(t){this.sendSession(t),gm(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){nA(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];DX(this,t,this._integrations),n||MX(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=yX(r,EX(i));this.sendEnvelope(r).then(i=>this.emit("afterSendEvent",t,i))}sendSession(t){let{release:n,environment:r=ZR}=this._options;if("aggregates"in t){let s=t.attrs||{};if(!s.release&&!n){Fe&&Z.warn(pDe);return}s.release=s.release||n,s.environment=s.environment||r,t.attrs=s}else{if(!t.release&&!n){Fe&&Z.warn(pDe);return}t.release=t.release||n,t.environment=t.environment||r}this.emit("beforeSendSession",t);let i=RMe(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=KMe(this,t),MX(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)&&(gm(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),zMe(s,t,n,r,this,i).then(a=>{if(a===null)return a;this.emit("postprocessEvent",a,n),a.contexts={trace:{...a.contexts?.trace,...xE(r)},...a.contexts};let c=Fp(this,r);return a.sdkProcessingMetadata={dynamicSamplingContext:c,...a.sdkProcessingMetadata},a})}_captureEvent(t,n={},r=Fn(),i=vn()){return Fe&&qX(t)&&Z.log(`Captured error event \`${yH(t)[0]||""}\``),this._processEvent(t,n,r,i).then(s=>s.event_id,s=>{Fe&&(mDe(s)?Z.log(s.message):hDe(s)?Z.warn(s.message):Z.warn(s))})}_processEvent(t,n,r,i){let s=this.getOptions(),{sampleRate:o}=s,a=_De(t),c=qX(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"),$R(HX(`Discarding event because it's not included in the random sample (sampling rate = ${o})`));let f=yDe(t.type);return this._prepareEvent(t,n,r,i).then(p=>{if(p===null)throw this.recordDroppedEvent("event_processor",f),HX("An event processor returned `null`, will not send event.");if(n.data?.__sentry__===!0)return p;let m=MKt(this,s,p,n);return CKt(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 HX(`${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 mDe(p)||hDe(p)?p:(this.captureException(p,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:p}),SH(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. +Reason: ${p}`))})}_process(t,n){this._numProcessing++,this._promiseBuffer.add(t).then(r=>(this._numProcessing--,r),r=>(this._numProcessing--,r===sP&&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=aDe(t,this._options.tunnel&&al(this._dsn));this.sendEnvelope(n)}}});function RDe(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=UKt(e);return Pc(s,[o])}function UKt(e){return[{type:"check_in"},e]}var ADe=v(()=>{bm();_m()});function wDe(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 kDe=v(()=>{});function IDe(e,t){return e(t.stack||"",1)}function FKt(e){return Mp(e)&&"__sentry_fetch_url_host__"in e&&typeof e.__sentry_fetch_url_host__=="string"}function jKt(e){return FKt(e)?`${e.message} (${e.__sentry_fetch_url_host__})`:e.message}function BX(e,t){let n={type:t.name||t.constructor.name,value:jKt(t)},r=IDe(e,t);return r.length&&(n.stacktrace={frames:r}),n}function HKt(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];if(n instanceof Error)return n}}function qKt(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=zJ(e);if(LJ(e))return`Event \`ErrorEvent\` captured as exception with message \`${e.message}\``;let n=BKt(e);return`${n&&n!=="Object"?`'${n}'`:"Object"} captured as exception with keys: ${t}`}function BKt(e){try{let t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}function zKt(e,t,n,r){if(Mp(n))return[n,void 0];if(t.synthetic=!0,pm(n)){let s=e?.getOptions().normalizeDepth,o={__serialized__:mX(n,s)},a=HKt(n);if(a)return[a,o];let c=qKt(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 xDe(e,t,n,r){let s=r?.data&&r.data.mechanism||{handled:!0,type:"generic"},[o,a]=zKt(e,s,n,r),c={exception:{values:[BX(t,o)]}};return a&&(c.extra=a),YJ(c,void 0,void 0),HR(c,s),{...c,event_id:r?.event_id}}function ODe(e,t,n="info",r,i){let s={event_id:r?.event_id,level:n};if(i&&r?.syntheticException){let o=IDe(e,r.syntheticException);o.length&&(s.exception={values:[{value:t,stacktrace:{frames:o}}]},HR(s,{synthetic:!0}))}if(FR(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 zX=v(()=>{Ka();Lp();nH();nf()});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 cP,NDe=v(()=>{ADe();vDe();go();Pi();SMe();_r();Lp();gH();kDe();zX();mH();eA();ZMe();cP=class extends bH{constructor(t){yMe(),wDe(t),super(t),this._setUpMetricsProcessing()}eventFromException(t,n){let r=xDe(this,this._options.stackParser,t,n);return r.level="error",Tm(r)}eventFromMessage(t,n="info",r){return Tm(ODe(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: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]=YMe(this,r);d&&(u.contexts={trace:d});let f=RDe(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=rA(oP)}_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 VX(e){e.forEach(t=>{GX.add(t),Fe&&Z.log(`AI provider "${t}" wrapping will be skipped`)})}function LE(e){return GX.has(e)}function WX(){GX.clear(),Fe&&Z.log("Cleared AI provider skip registrations")}var GX,CDe=v(()=>{Pi();_r();GX=new Set});function iA(e,t){let n=String(e).toLowerCase();return GKt.has(n)?!1:VKt.has(n)?!0:t?.strict?null:!!e}var GKt,VKt,MDe=v(()=>{GKt=new Set(["false","f","n","no","off","0"]),VKt=new Set(["true","t","y","yes","on","1"])});function KX(e){return"isRelative"in e}function uP(e,t){let n=e.indexOf("://")<=0&&e.indexOf("//")!==0,r=t??(n?WKt: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 DDe(e){if(KX(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 KKt(e,t,n,r){let i=n?.method?.toUpperCase()??"GET",s=r||(e?t==="client"?DDe(e):e.pathname:"/");return`${i} ${s}`}function YX(e,t,n,r,i){let s={[At]:n,[Ki]:"url"};return i&&(s[t==="server"?"http.route":"url.template"]=i,s[Ki]="route"),r?.method&&(s[cX]=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[Ki]="route")),KX(e)||(s[xy]=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))),[KKt(e,t,r,i),s]}function Ly(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 vm(e){return e.split(/[?#]/,1)[0]}function Uy(e){let{protocol:t,host:n,path:r}=e,i=n?.replace(/^.*@/,"[filtered]:[filtered]@").replace(/(:80)$/,"").replace(/(:443)$/,"")||"";return`${t?`${t}://`:""}${i}${r}`}function sA(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 WKt,LDe=v(()=>{Lo();WKt="thismessage:/"});function UE(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:Cn})),i.version=Cn)}var UDe=v(()=>{Pj()});function oA(e={}){let t=e.client||ct();if(!fH()||!t)return{};let n=xc(),r=rf(n);if(r.getTraceData)return r.getTraceData(e);let i=e.scope||Fn(),s=e.span||Yl();if(!s&&tX())return{};let o=s?Qj(s):YKt(i),a=s?Ps(s):Fp(t,i),c=OE(a);if(!Kj.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?mMe(s):ZKt(i)),l}function YKt(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Oy(t,r,n)}function ZKt(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Py(t,r,n)}var FDe=v(()=>{zR();Gl();go();ul();_r();Oc();Em();VO();Yj()});function FE(e,t,n){if(typeof e!="string"||!t)return!0;let r=n?.get(e);if(r!==void 0)return Fe&&!r&&Z.log(jDe,e),r;let i=Ty(e,t);return n?.set(e,i),Fe&&!i&&Z.log(jDe,e),i}var jDe,HDe=v(()=>{Pi();_r();vy();jDe="[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:"});function ZX(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 qDe=v(()=>{});function VDe(e){let t=Object.create(null);try{Object.entries(e).forEach(([n,r])=>{typeof r=="string"&&(t[n]=r)})}catch{}return t}function lP(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=JKt({url:o,host:r,protocol:s}),c=e.body||void 0,u=e.cookies;return{url:a,method:e.method,query_string:WDe(o),headers:VDe(t),cookies:u,data:c}}function JKt({url:e,protocol:t,host:n}){if(e?.startsWith("http"))return e;if(e&&n)return`${t}://${n}${e}`}function EH(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();GDe(r,o,g,m,t,n)}}else GDe(r,o,"",s,t,n)})}catch{}return r}function zDe(e){return e.replace(/-/g,"_")}function GDe(e,t,n,r,i,s){let o=QKt(n||t,r,i);if(o==null)return;let a=`http.${s}.header.${zDe(t)}${n?`.${zDe(n)}`:""}`;e[a]=o}function QKt(e,t,n){if(n?BDe.some(i=>e.includes(i)):[...XKt,...BDe].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 WDe(e){if(e)try{let t=new URL(e,"http://s.io").search.slice(1);return t.length?t:void 0}catch{return}}var BDe,XKt,KDe=v(()=>{BDe=["auth","token","secret","session","password","passwd","pwd","key","jwt","bearer","sso","saml","csrf","xsrf","credentials","set-cookie","cookie"],XKt=["x-forwarded-","-user"]});function Zl(e,t){let n=ct(),r=vn();if(!n)return;let{beforeBreadcrumb:i=null,maxBreadcrumbs:s=$Kt}=n.getOptions();if(s<=0)return;let a={timestamp:mm(),...e},c=i?xs(()=>i(a,t)):a;c!==null&&(n.emit&&n.emit("beforeAddBreadcrumb",c,t),r.addBreadcrumb(c,s))}var $Kt,JX=v(()=>{go();_r();wy();$Kt=100});var YDe,e3t,ZDe,t3t,_H,JDe=v(()=>{go();nf();e3t="FunctionToString",ZDe=new WeakMap,t3t=(()=>({name:e3t,setupOnce(){YDe=Function.prototype.toString;try{Function.prototype.toString=function(...e){let t=BJ(this),n=ZDe.has(ct())&&t!==void 0?t:this;return YDe.apply(n,e)}}catch{}},setup(e){ZDe.set(e,!0)}})),_H=t3t});function XDe(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:n3t],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function i3t(e,t){if(e.type){if(e.type==="transaction"&&o3t(e,t.ignoreTransactions))return Fe&&Z.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. +Event: ${Ry(e)}`),!0}else{if(s3t(e,t.ignoreErrors))return Fe&&Z.warn(`Event dropped due to being matched by \`ignoreErrors\` option. +Event: ${Ry(e)}`),!0;if(l3t(e))return Fe&&Z.warn(`Event dropped due to not having an error message, error type or stacktrace. +Event: ${Ry(e)}`),!0;if(a3t(e,t.denyUrls))return Fe&&Z.warn(`Event dropped due to being matched by \`denyUrls\` option. Event: ${Ry(e)}. -Url: ${TH(e)}`),!0;if(!a3t(e,t.allowUrls))return Fe&&Z.warn(`Event dropped due to not being matched by \`allowUrls\` option. +Url: ${TH(e)}`),!0;if(!c3t(e,t.allowUrls))return Fe&&Z.warn(`Event dropped due to not being matched by \`allowUrls\` option. Event: ${Ry(e)}. -Url: ${TH(e)}`),!0}return!1}function i3t(e,t){return t?.length?yH(e).some(n=>Ty(n,t)):!1}function s3t(e,t){if(!t?.length)return!1;let n=e.transaction;return n?Ty(n,t):!1}function o3t(e,t){if(!t?.length)return!1;let n=TH(e);return n?Ty(n,t):!1}function a3t(e,t){if(!t?.length)return!0;let n=TH(e);return n?Ty(n,t):!0}function c3t(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 TH(e){try{let n=[...e.exception?.values??[]].reverse().find(r=>r.mechanism?.parent_id===void 0&&r.stacktrace?.frames?.length)?.stacktrace?.frames;return n?c3t(n):null}catch{return Fe&&Z.error(`Cannot extract url for event ${Ry(e)}`),null}}function u3t(e){return e.exception?.values?.length?!e.message&&!e.exception.values.some(t=>t.stacktrace||t.type&&t.type!=="Error"||t.value):!1}var t3t,n3t,XX,vH,JDe=v(()=>{Pi();_r();jX();Lp();vy();t3t=[/^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$/],n3t="EventFilters",XX=(e={})=>{let t;return{name:n3t,setup(n){let r=n.getOptions();t=ZDe(e,r)},processEvent(n,r,i){if(!t){let s=i.getOptions();t=ZDe(e,s)}return r3t(n,t)?null:n}}},vH=((e={})=>({...XX(e),name:"InboundFilters"}))});function $De(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=QX(e,t,r,s.originalException,n,i.exception.values,o,0))}function QX(e,t,n,r,i,s,o,a){if(s.length>=n+1)return s;let c=[...s];if(Dp(r[i],Error)){XDe(o,a,r);let u=e(t,r[i]),l=c.length;QDe(u,i,l,a),c=QX(e,t,n,r[i],i,[u,...c],u,l)}return eLe(r)&&r.errors.forEach((u,l)=>{if(Dp(u,Error)){XDe(o,a,r);let d=e(t,u),f=c.length;QDe(d,`errors[${l}]`,f,a),c=QX(e,t,n,u,i,[d,...c],d,f)}}),c}function eLe(e){return Array.isArray(e.errors)}function XDe(e,t,n){e.mechanism={handled:!0,type:"auto.core.linked_errors",...eLe(n)&&{is_exception_group:!0},...e.mechanism,exception_id:t}}function QDe(e,t,n,r){e.mechanism={handled:!0,...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}var tLe=v(()=>{Ka()});var l3t,d3t,f3t,p3t,RH,nLe=v(()=>{tLe();zX();l3t="cause",d3t=5,f3t="LinkedErrors",p3t=((e={})=>{let t=e.limit||d3t,n=e.key||l3t;return{name:f3t,preprocessEvent(r,i,s){let o=s.getOptions();$De(BX,o.stackParser,n,t,r,i)}}}),RH=p3t});function rLe(e){let t={},n=0;for(;n{});function sLe(e){let t={};for(let s of Object.keys(e))t[s.toLowerCase()]=e[s];return $X.map(s=>{let o=t[s.toLowerCase()],a=Array.isArray(o)?o.join(";"):o;return s==="Forwarded"?h3t(a):a?.split(",").map(c=>c.trim())}).reduce((s,o)=>o?s.concat(o):s,[]).find(s=>s!==null&&m3t(s))||null}function h3t(e){if(!e)return null;for(let t of e.split(";"))if(t.startsWith("for="))return t.slice(4);return null}function m3t(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 $X,oLe=v(()=>{$X=["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 b3t(e,t,n,r){if(e.request={...e.request,...E3t(t,r)},r.ip){let i=t.headers&&sLe(t.headers)||n.ipAddress;i&&(e.user={...e.user,ip_address:i})}}function E3t(e,t){let n={},r={...e.headers};if(t.headers&&(n.headers=r,t.cookies||delete r.cookie,t.ip||$X.forEach(i=>{delete r[i]})),n.method=e.method,t.url&&(n.url=e.url),t.cookies){let i=e.cookies||(r?.cookie?rLe(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 g3t,y3t,S3t,AH,aLe=v(()=>{iLe();oLe();g3t={cookies:!0,data:!0,headers:!0,query_string:!0,url:!0},y3t="RequestData",S3t=((e={})=>{let t={...g3t,...e.include};return{name:y3t,processEvent(n,r,i){let{sdkProcessingMetadata:s={}}=n,{normalizedRequest:o,ipAddress:a}=s,c={...t,ip:t.ip??i.getOptions().sendDefaultPii};return o&&b3t(n,o,{ipAddress:a},c),n}}}),AH=S3t});function cLe(e){let t="console";DR(t,e),LR(t,_3t)}function _3t(){"console"in qt&&FO.forEach(function(e){e in qt.console&&qJ(qt.console,e,function(t){return CR[e]=t,function(...n){UR("console",{args:n,level:e}),CR[e]?.apply(qt.console,n)}})})}var uLe=v(()=>{_r();nf();Wa();Lj()});function lLe(e){return e==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(e)?e:"log"}var dLe=v(()=>{});function v3t(e){let t=e.length>1024?`${e.slice(-1024)}`:e,n=T3t.exec(t);return n?n.slice(1):[]}function eQ(e){let t=v3t(e),n=t[0]||"",r=t[1];return!n&&!r?".":(r&&(r=r.slice(0,r.length-1)),n+r)}var T3t,fLe=v(()=>{T3t=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/});function rQ(e,t){return!e||typeof e!="function"?(Fe&&Z.warn("instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance"),e):nQ(e,{requireParentSpan:!0,...t})}function nQ(e,t,n){if(e[tQ])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&&hLe(a,r,t),a},get(i,s){let o=i[s];return typeof s!="string"||typeof o!="function"?o:s==="unsafe"||s==="file"?w3t(o,i,r,t):s==="begin"||s==="reserve"?k3t(o,i,r,t):o}});return n?r[wH]=n:N3t(e,r),e[tQ]=!0,r[tQ]=!0,r}function w3t(e,t,n,r){return function(...i){let s=Reflect.apply(e,t,i);return s&&typeof s=="object"&&"handle"in s&&hLe(s,n,r),s}}function k3t(e,t,n,r){return function(...i){let s=n[wH];if(!(typeof i[i.length-1]=="function")){let l=Reflect.apply(e,t,i);return l&&typeof l.then=="function"?l.then(d=>nQ(d,r,s)):l}let a=i.length===1?i[0]:i[1],c=function(l){let d=nQ(l,r,s);return a(d)},u=i.length===1?[c]:[i[0],c];return Reflect.apply(e,t,u)}}function hLe(e,t,n){if(e.handle?.__sentryWrapped)return;e[A3t]=!0;let r=e.handle,i=async function(...s){if(!I3t(n))return r.apply(this,s);let o=x3t(e.strings),a=O3t(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[wH]:void 0;if(P3t(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{pLe(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"),pLe(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 I3t(e){return Yl()!==void 0||!e.requireParentSpan}function x3t(e){if(e?.length)return e.length===1?e[0]||void 0:e.reduce((t,n,r)=>r===0?n:`${t}$${r}${n}`,"")}function O3t(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();My();R3t=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,wH=Symbol("sentryPostgresConnectionContext"),tQ=Symbol.for("sentry.instrumented.postgresjs"),A3t=Symbol.for("sentry.query.from.instrumented.sql")});function M3t(e,t){let n={category:"console",data:{arguments:t,logger:"console"},level:lLe(e),message:gLe(t)};if(e==="assert")if(t[0]===!1){let r=t.slice(1);n.message=r.length>0?`Assertion failed: ${gLe(r)}`:"Assertion failed",n.data.arguments=r}else return;Zl(n,{input:t,level:e})}function gLe(e){return"util"in qt&&typeof qt.util.format=="function"?qt.util.format(...e):VJ(e," ")}var C3t,kH,yLe=v(()=>{JX();go();uLe();_r();dLe();vy();Wa();C3t="Console",kH=(e={})=>{let t=new Set(e.levels||FO);return{name:C3t,setup(n){cLe(({args:r,level:i})=>{ct()!==n||!t.has(i)||M3t(i,r)})}}}});var D3t,L3t,iQ,SLe=v(()=>{go();Lo();D3t="ConversationId",L3t=(()=>({name:D3t,setup(e){e.on("spanStart",t=>{let n=Fn().getScopeData(),r=vn().getScopeData(),i=n.conversationId||r.conversationId;i&&t.setAttribute(uX,i)})}})),iQ=L3t});function IH(e,t={},n=Fn()){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 bLe=v(()=>{go()});var ELe,Fy,us,aA,jy,cA,Hy,uA,qy,xH,_Le,TLe,du,yo,Jl,vLe,di,Ns,Nc,oa,Cc,aa,RLe,ll,Gs,jp,jE,Fo,sQ,ALe,dP,wLe,kLe,oQ,By,OH,ILe,xLe,OLe,PLe,lA,NLe,CLe,MLe,DLe,HE,aQ,cQ,PH,NH,LLe,uQ,lQ,dQ,ULe,FLe,fQ,Xa=v(()=>{ELe="gen_ai.prompt",Fy="gen_ai.system",us="gen_ai.request.model",aA="gen_ai.request.stream",jy="gen_ai.request.temperature",cA="gen_ai.request.max_tokens",Hy="gen_ai.request.frequency_penalty",uA="gen_ai.request.presence_penalty",qy="gen_ai.request.top_p",xH="gen_ai.request.top_k",_Le="gen_ai.request.encoding_format",TLe="gen_ai.request.dimensions",du="gen_ai.response.finish_reasons",yo="gen_ai.response.model",Jl="gen_ai.response.id",vLe="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",RLe="gen_ai.output.messages",ll="gen_ai.system_instructions",Gs="gen_ai.response.text",jp="gen_ai.request.available_tools",jE="gen_ai.response.streaming",Fo="gen_ai.response.tool_calls",sQ="gen_ai.agent.name",ALe="gen_ai.pipeline.name",dP="gen_ai.conversation.id",wLe="gen_ai.usage.cache_creation_input_tokens",kLe="gen_ai.usage.cache_read_input_tokens",oQ="gen_ai.usage.input_tokens.cache_write",By="gen_ai.usage.input_tokens.cached",OH="gen_ai.invoke_agent",ILe="gen_ai.generate_text",xLe="gen_ai.stream_text",OLe="gen_ai.generate_object",PLe="gen_ai.stream_object",lA="gen_ai.embeddings.input",NLe="gen_ai.embeddings",CLe="gen_ai.embeddings",MLe="gen_ai.rerank",DLe="gen_ai.execute_tool",HE="gen_ai.tool.name",aQ="gen_ai.tool.call.id",cQ="gen_ai.tool.type",PH="gen_ai.tool.input",NH="gen_ai.tool.output",LLe="gen_ai.tool.description",uQ="openai.response.id",lQ="openai.response.model",dQ="openai.response.timestamp",ULe="openai.usage.completion_tokens",FLe="openai.usage.prompt_tokens",fQ="anthropic.response.timestamp"});var fP,pQ,hQ,jLe,HLe,qLe,mQ=v(()=>{fP=new Map,pQ=new Set(["ai.generateText","ai.streamText","ai.generateObject","ai.streamObject"]),hQ=new Set(["ai.generateText.doGenerate","ai.streamText.doStream","ai.generateObject.doGenerate","ai.streamObject.doStream"]),jLe=new Set(["ai.embed.doEmbed","ai.embedMany.doEmbed"]),HLe=new Set(["ai.rerank.doRerank"]),qLe={"ai.embed.doEmbed":"embeddings","ai.embedMany.doEmbed":"embeddings","ai.rerank.doRerank":"rerank"}});function zy(e){return!e||typeof e!="object"?!1:F3t(e)||zLe(e)||U3t(e)||GLe(e)||VLe(e)||j3t(e)||H3t(e)||q3t(e)||B3t(e)||z3t(e)||G3t(e)||V3t(e)}function U3t(e){return"image_url"in e?typeof e.image_url=="string"?e.image_url.startsWith("data:"):BLe(e):!1}function BLe(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 F3t(e){return"type"in e&&typeof e.type=="string"&&"source"in e&&zy(e.source)}function zLe(e){return"inlineData"in e&&!!e.inlineData&&typeof e.inlineData=="object"&&"data"in e.inlineData&&typeof e.inlineData.data=="string"}function GLe(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 VLe(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 j3t(e){return"media_type"in e&&typeof e.media_type=="string"&&"data"in e}function H3t(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 q3t(e){return"type"in e&&e.type==="image"&&"image"in e&&typeof e.image=="string"&&!e.image.startsWith("http://")&&!e.image.startsWith("https://")}function B3t(e){return"type"in e&&(e.type==="blob"||e.type==="base64")}function z3t(e){return"b64_json"in e}function G3t(e){return"type"in e&&"result"in e&&e.type==="image_generation"}function V3t(e){return"uri"in e&&typeof e.uri=="string"&&e.uri.startsWith("data:")}function qE(e){let t={...e};zy(t.source)&&(t.source=qE(t.source)),zLe(e)&&(t.inlineData={...e.inlineData,data:pP}),BLe(e)&&(t.image_url={...e.image_url,url:pP}),GLe(e)&&(t.input_audio={...e.input_audio,data:pP}),VLe(e)&&(t.file={...e.file,file_data:pP});for(let n of W3t)typeof t[n]=="string"&&(t[n]=pP);return t}var pP,W3t,gQ=v(()=>{pP="[Blob substitute]",W3t=["image_url","data","content","b64_json","result","uri","image"]});function MH(e,t){if(CH(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);CH(o)<=t?(i=o,n=s+1):r=s-1}return i}function K3t(e){return typeof e=="string"?e:"text"in e&&typeof e.text=="string"?e.text:""}function WLe(e,t){return typeof e=="string"?t:{...e,text:t}}function Y3t(e){return e!==null&&typeof e=="object"&&"content"in e&&typeof e.content=="string"}function YLe(e){return e!==null&&typeof e=="object"&&"content"in e&&Array.isArray(e.content)}function ZLe(e){return e!==null&&typeof e=="object"&&"parts"in e&&Array.isArray(e.parts)&&e.parts.length>0}function Z3t(e,t){let n={...e,content:""},r=SQ(n),i=t-r;if(i<=0)return[];let s=MH(e.content,i);return[{...e,content:s}]}function J3t(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 X3t(e,t){let{key:n,items:r}=J3t(e);if(n===null||r.length===0)return[];let i=r.map(c=>WLe(c,"")),s=SQ({...e,[n]:i}),o=t-s;if(o<=0)return[];let a=[];for(let c of r){let u=K3t(c),l=CH(u);if(l<=o)a.push(c),o-=l;else if(a.length===0){let d=MH(u,o);d&&a.push(WLe(c,d));break}else break}return a.length<=0?[]:[{...e,[n]:a}]}function Q3t(e,t){if(!e)return[];if(typeof e=="string"){let n=MH(e,t);return n?[n]:[]}return typeof e!="object"?[]:Y3t(e)?Z3t(e,t):YLe(e)||ZLe(e)?X3t(e,t):[]}function yQ(e){return e.map(n=>{let r;return n&&typeof n=="object"&&(YLe(n)?r={...n,content:yQ(n.content)}:"content"in n&&zy(n.content)&&(r={...n,content:qE(n.content)}),ZLe(n)&&(r={...r??n,parts:yQ(n.parts)}),zy(r)?r=qE(r):zy(n)&&(r=qE(n))),r??n})}function $3t(e,t){if(!Array.isArray(e)||e.length===0)return e;let n=t-2,r=e[e.length-1],i=yQ([r]),s=i[0];return SQ(s)<=n?i:Q3t(s,n)}function Gy(e){return $3t(e,KLe)}function JLe(e){return MH(e,KLe)}var KLe,CH,SQ,hP=v(()=>{gQ();KLe=2e4,CH=e=>new TextEncoder().encode(e).length,SQ=e=>CH(JSON.stringify(e))});function Hp(e){let t=!!ct()?.getOptions().sendDefaultPii;return{...e,recordInputs:e?.recordInputs??t,recordOutputs:e?.recordOutputs??t}}function dA(e,t){return e?`${e}.${t}`:t}function mP(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 BE(e){if(typeof e=="string")return JLe(e);if(Array.isArray(e)){let t=Gy(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 e9t(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 fA(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 e9t(u,t,n)}:typeof a=="function"?a.bind(o):a}}):t}var qp=v(()=>{ul();go();Ka();Xa();hP()});var DH,XLe,LH,QLe,$Le,bQ,EQ,_Q,e1e,zE,pA,gP,t1e,n1e,r1e,i1e,s1e,o1e,TQ,vQ,a1e,c1e,RQ=v(()=>{DH="operation.name",XLe="ai.operationId",LH="ai.prompt",QLe="ai.schema",$Le="ai.response.object",bQ="ai.values",EQ="ai.response.text",_Q="ai.response.toolCalls",e1e="ai.response.finishReason",zE="ai.prompt.messages",pA="ai.prompt.tools",gP="ai.model.id",t1e="ai.response.providerMetadata",n1e="ai.usage.cachedInputTokens",r1e="ai.telemetry.functionId",i1e="ai.usage.completionTokens",s1e="ai.usage.promptTokens",o1e="ai.usage.tokens",TQ="ai.toolCall.name",vQ="ai.toolCall.id",a1e="ai.toolCall.args",c1e="ai.toolCall.result"});function l1e(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 AQ(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 t9t(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 d1e(e,t){let n=t9t(e);for(let r of e){if(r.op==="gen_ai.execute_tool"){let i=r.data[HE];if(typeof i=="string"){let s=n.get(i);s&&(r.data[LLe]=s)}}r.op==="gen_ai.invoke_agent"&&AQ(r,t)}}function wQ(e){return fP.get(e)}function kQ(e){fP.delete(e)}function f1e(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 u1e(e){return e.filter(t=>!!t&&typeof t=="object"&&"role"in t&&"content"in t)}function n9t(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(...u1e(n)),s;if(Array.isArray(r))return s.push(...u1e(r)),s;if(typeof r=="string"&&s.push({role:"user",content:r}),s.length>0)return s}}catch{}return[]}function p1e(e,t){if(typeof t[LH]=="string"&&!t[aa]&&!t[zE]){let n=t[LH],r=n9t(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=BE(s);e.setAttributes({[LH]:a,[aa]:a,[Cc]:o})}}else if(typeof t[zE]=="string")try{let n=JSON.parse(t[zE]);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=BE(i);e.setAttributes({[zE]:o,[aa]:o,[Cc]:s})}}catch{}}function h1e(e){switch(e){case"ai.generateText":case"ai.streamText":case"ai.generateObject":case"ai.streamObject":return OH;case"ai.generateText.doGenerate":return ILe;case"ai.streamText.doStream":return xLe;case"ai.generateObject.doGenerate":return OLe;case"ai.streamObject.doStream":return PLe;case"ai.embed.doEmbed":return NLe;case"ai.embedMany.doEmbed":return CLe;case"ai.rerank.doRerank":return MLe;case"ai.toolCall":return DLe;default:return e.startsWith("ai.stream")?"ai.run":void 0}}var IQ=v(()=>{Xa();qp();mQ();RQ()});function r9t(e){return pQ.has(e)?"invoke_agent":hQ.has(e)?"generate_content":jLe.has(e)?"embeddings":HLe.has(e)?"rerank":e==="ai.toolCall"?"execute_tool":e}function i9t(e){let{data:t,description:n}=vt(e);if(n){if(t[TQ]&&t[vQ]&&n==="ai.toolCall"){u9t(e,t);return}!t[XLe]&&!n.startsWith("ai.")||l9t(e,n,t)}}function s9t(e){if(e.type==="transaction"&&e.spans){let t=new Map;for(let r of e.spans)c9t(r),l1e(r,t);d1e(e.spans,t);let n=e.contexts?.trace;n?.op==="gen_ai.invoke_agent"&&AQ(n,t)}return e}function o9t(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 a9t(e){let t=e[EQ],n=e[_Q],r=e[e1e];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[_Q]}}catch{}if(i.length>0){let s={role:"assistant",parts:i,finish_reason:o9t(r)};e[RLe]=JSON.stringify([s]),delete e[EQ]}}function c9t(e){let{data:t,origin:n}=e;if(n==="auto.vercelai.otel"){if(e.status&&e.status!=="ok"&&(e.status="internal_error"),ca(t,i1e,Ns),ca(t,s1e,di),ca(t,n1e,By),ca(t,"ai.usage.inputTokens",di),ca(t,"ai.usage.outputTokens",Ns),ca(t,o1e,di),ca(t,"ai.response.avgOutputTokensPerSecond","ai.response.avgCompletionTokensPerSecond"),typeof t[di]=="number"&&typeof t[By]=="number"&&(t[di]=t[di]+t[By]),typeof t[di]=="number"){let r=typeof t[Ns]=="number"?t[Ns]:0;t[Nc]=r+t[di]}if(t[pA]&&Array.isArray(t[pA])&&(t[pA]=f1e(t[pA])),t[DH]){let r=r9t(t[DH]);t[oa]=r,delete t[DH]}if(ca(t,zE,aa),a9t(t),ca(t,$Le,"gen_ai.response.object"),ca(t,pA,"gen_ai.request.available_tools"),ca(t,a1e,PH),ca(t,c1e,NH),ca(t,QLe,"gen_ai.request.schema"),ca(t,gP,us),Array.isArray(t[bQ])){let r=t[bQ].map(i=>{try{return JSON.parse(i)}catch{return i}});t[lA]=r.length===1?r[0]:JSON.stringify(r)}d9t(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 u9t(e,t){e.setAttribute(At,"auto.vercelai.otel"),e.setAttribute(zt,"gen_ai.execute_tool"),e.setAttribute(oa,"execute_tool"),ca(t,TQ,HE),ca(t,vQ,aQ);let n=t[aQ];typeof n=="string"&&fP.set(n,e.spanContext()),t[cQ]||e.setAttribute(cQ,"function");let r=t[HE];r&&e.updateName(`execute_tool ${r}`)}function l9t(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[r1e];i&&typeof i=="string"&&e.setAttribute("gen_ai.function_id",i),p1e(e,n),n[gP]&&!n[yo]&&e.setAttribute(yo,n[gP]),e.setAttribute("ai.streaming",t.includes("stream"));let s=h1e(t);if(s&&e.setAttribute(zt,s),pQ.has(t)){i&&typeof i=="string"?e.updateName(`invoke_agent ${i}`):e.updateName("invoke_agent");return}let o=n[gP];if(o){let a=hQ.has(t)?"generate_content":qLe[t];a&&e.updateName(`${a} ${o}`)}}function UH(e){e.on("spanStart",i9t),e.addEventProcessor(Object.assign(s9t,{id:"VercelAiEventProcessor"}))}function d9t(e){let t=e[t1e];if(t)try{let n=JSON.parse(t),r=n.openai??n.azure;if(r&&(df(e,By,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,By,i);let s=n.anthropic.usage?.cache_creation_input_tokens??n.anthropic.cacheCreationInputTokens;df(e,oQ,s)}n.bedrock?.usage&&(df(e,By,n.bedrock.usage.cacheReadInputTokens),df(e,oQ,n.bedrock.usage.cacheWriteInputTokens)),n.deepseek&&(df(e,By,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 m1e=v(()=>{Lo();Oc();Xa();mQ();IQ();RQ()});var Vy,g1e,f9t,y1e,FH=v(()=>{Vy="OpenAI",g1e={"responses.create":{operation:"chat"},"chat.completions.create":{operation:"chat"},"embeddings.create":{operation:"embeddings"},"conversations.create":{operation:"chat"}},f9t=["response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"],y1e=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta",...f9t]});function S1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion"}function b1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="response"}function E1e(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 _1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="conversation"}function T1e(e){return e!==null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"&&e.type.startsWith("response.")}function v1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion.chunk"}function R1e(e,t,n){if(jH(e,t.id,t.model,t.created),t.usage&&yP(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 A1e(e,t,n){if(jH(e,t.id,t.model,t.created_at),t.status&&e.setAttributes({[du]:JSON.stringify([t.status])}),t.usage&&yP(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 w1e(e,t){e.setAttributes({[lQ]:t.model,[yo]:t.model}),t.usage&&yP(e,t.usage.prompt_tokens,void 0,t.usage.total_tokens)}function k1e(e,t){let{id:n,created_at:r}=t;e.setAttributes({[uQ]:n,[Jl]:n,[dP]:n}),r&&e.setAttributes({[dQ]:new Date(r*1e3).toISOString()})}function yP(e,t,n,r){t!==void 0&&e.setAttributes({[FLe]:t,[di]:t}),n!==void 0&&e.setAttributes({[ULe]:n,[Ns]:n}),r!==void 0&&e.setAttributes({[Nc]:r})}function jH(e,t,n,r){e.setAttributes({[uQ]:t,[Jl]:t}),e.setAttributes({[lQ]:n,[yo]:n}),e.setAttributes({[dQ]:new Date(r*1e3).toISOString()})}function p9t(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 I1e(e){let t={[us]:e.model??"unknown"};"temperature"in e&&(t[jy]=e.temperature),"top_p"in e&&(t[qy]=e.top_p),"frequency_penalty"in e&&(t[Hy]=e.frequency_penalty),"presence_penalty"in e&&(t[uA]=e.presence_penalty),"stream"in e&&(t[aA]=e.stream),"encoding_format"in e&&(t[_Le]=e.encoding_format),"dimensions"in e&&(t[TLe]=e.dimensions);let n=p9t(e);return n&&(t[dP]=n),t}var xQ=v(()=>{Xa()});function h9t(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 m9t(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&&h9t(r.delta.tool_calls,t)),r.finish_reason&&t.finishReasons.push(r.finish_reason)}function g9t(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(!y1e.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*x1e(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)v1e(i)?m9t(i,r,n):T1e(i)&&g9t(i,r,n,t),yield i}finally{jH(t,r.responseId,r.responseModel,r.responseTimestamp),yP(t,r.promptTokens,r.completionTokens,r.totalTokens),t.setAttributes({[jE]:!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 O1e=v(()=>{ul();Xa();FH();xQ()});function y9t(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 S9t(e,t){let n={[Fy]:"openai",[oa]:t,[At]:"auto.ai.openai"};if(e.length>0&&typeof e[0]=="object"&&e[0]!==null){let r=e[0],i=y9t(r);i&&(n[jp]=i),Object.assign(n,I1e(r))}else n[us]="unknown";return n}function b9t(e,t,n){if(!t||typeof t!="object")return;let r=t;if(S1e(r)){if(R1e(e,r,n),n&&r.choices?.length){let i=r.choices.map(s=>s.message?.content||"");e.setAttributes({[Gs]:JSON.stringify(i)})}}else b1e(r)?(A1e(e,r,n),n&&r.output_text&&e.setAttributes({[Gs]:r.output_text})):E1e(r)?w1e(e,r):_1e(r)&&k1e(e,r)}function P1e(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(lA,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=BE(s);e.setAttribute(aa,o),Array.isArray(s)?e.setAttribute(Cc,s.length):e.setAttribute(Cc,1)}function E9t(e,t,n,r,i){return function(...o){let a=n.operation,c=S9t(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&&P1e(y,l,a),(async()=>{try{let b=await m;return x1e(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 fA(m,g,"auto.ai.openai")}let p,h=lf(f,m=>(p=e.apply(r,o),i.recordInputs&&l&&P1e(m,l,a),p.then(g=>(b9t(m,g,i.recordOutputs),g),g=>{throw Wt(g,{mechanism:{handled:!1,type:"auto.ai.openai",data:{function:t}}}),g})));return fA(p,h,"auto.ai.openai")}}function N1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=dA(t,String(i)),a=g1e[o];return typeof s=="function"&&a?E9t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?N1e(s,o,n):s}})}function HH(e,t){return N1e(e,"",Hp(t))}var C1e=v(()=>{Pi();ul();Lo();_r();My();Xa();qp();FH();O1e();xQ()});var Wy,M1e,OQ=v(()=>{Wy="Anthropic_AI",M1e={"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 D1e(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]:BE(r),[Cc]:i})}function PQ(e){return e&&_9t[e]||"internal_error"}function L1e(e,t){t.error&&(e.setStatus({code:2,message:PQ(t.error.type)}),Wt(t.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}))}function U1e(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 _9t,NQ=v(()=>{ul();Xa();qp();_9t={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 T9t(e,t){return"type"in e&&typeof e.type=="string"&&e.type==="error"?(t.setStatus({code:2,message:PQ(e.error?.type)}),Wt(e.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0):!1}function v9t(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 R9t(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 A9t(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 w9t(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 F1e(e,t,n,r){!(e&&typeof e=="object")||T9t(e,r)||(v9t(e,t),R9t(e,t),A9t(e,t,n),w9t(e,t))}function k9t(e,t,n){t.isRecording()&&(e.responseId&&t.setAttributes({[Jl]:e.responseId}),e.responseModel&&t.setAttributes({[yo]:e.responseModel}),mP(t,e.promptTokens,e.completionTokens,e.cacheCreationInputTokens,e.cacheReadInputTokens),t.setAttributes({[jE]:!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*j1e(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)F1e(i,r,n,t),yield i}finally{r.responseId&&t.setAttributes({[Jl]:r.responseId}),r.responseModel&&t.setAttributes({[yo]:r.responseModel}),mP(t,r.promptTokens,r.completionTokens,r.cacheCreationInputTokens,r.cacheReadInputTokens),t.setAttributes({[jE]:!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 H1e(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=>{F1e(i,r,n,t)}),e.on("message",()=>{k9t(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 q1e=v(()=>{ul();Xa();qp();NQ()});function I9t(e,t,n){let r={[Fy]:"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[jy]=i.temperature),"top_p"in i&&(r[qy]=i.top_p),"stream"in i&&(r[aA]=i.stream),"top_k"in i&&(r[xH]=i.top_k),"frequency_penalty"in i&&(r[Hy]=i.frequency_penalty),"max_tokens"in i&&(r[cA]=i.max_tokens)}else t==="models.retrieve"||t==="models.get"?r[us]=e[0]:r[us]="unknown";return r}function CQ(e,t){let n=U1e(t);D1e(e,n),"prompt"in t&&e.setAttributes({[ELe]:JSON.stringify(t.prompt)})}function x9t(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 O9t(e,t){"id"in t&&"model"in t&&(e.setAttributes({[Jl]:t.id,[yo]:t.model}),"created"in t&&typeof t.created=="number"&&e.setAttributes({[fQ]:new Date(t.created*1e3).toISOString()}),"created_at"in t&&typeof t.created_at=="number"&&e.setAttributes({[fQ]:new Date(t.created_at*1e3).toISOString()}),"usage"in t&&t.usage&&mP(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.cache_creation_input_tokens,t.usage.cache_read_input_tokens))}function P9t(e,t,n){if(!(!t||typeof t!="object")){if("type"in t&&t.type==="error"){L1e(e,t);return}n&&x9t(e,t),O9t(e,t)}}function B1e(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 N9t(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&&CQ(m,a),(async()=>{try{let g=await p;return j1e(g,m,c.recordOutputs??!1)}catch(g){return B1e(g,m,o)}})()));return fA(p,h,"auto.ai.anthropic")}else return Uo(f,p=>{try{c.recordInputs&&a&&CQ(p,a);let h=t.apply(n,r);return H1e(h,p,c.recordOutputs??!1)}catch(h){return B1e(h,p,o)}})}function C9t(e,t,n,r,i){return new Proxy(e,{apply(s,o,a){let c=n.operation,u=I9t(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 N9t(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&&CQ(g,d),h.then(y=>(P9t(g,y,i.recordOutputs),y),y=>{throw Wt(y,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:t}}}),y})));return fA(h,m,"auto.ai.anthropic")}})}function z1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=dA(t,String(i)),a=M1e[o];return typeof s=="function"&&a?C9t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?z1e(s,o,n):s}})}function qH(e,t){return z1e(e,"",Hp(t))}var G1e=v(()=>{ul();Lo();My();Xa();qp();OQ();q1e();NQ()});var Ky,V1e,W1e,MQ,K1e,DQ=v(()=>{Ky="Google_GenAI",V1e={"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}},W1e="google_genai",MQ="chats.create",K1e="chat"});function M9t(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 D9t(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 L9t(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 U9t(e,t,n,r){!e||M9t(e,r)||(D9t(e,t),L9t(e,t,n))}async function*Y1e(e,t,n){let r={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(let i of e)U9t(i,r,n,t),yield i}finally{let i={[jE]:!0};r.responseId&&(i[Jl]=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 Z1e=v(()=>{ul();Xa()});function hA(e,t="user"){return typeof e=="string"?[{role:t,content:e}]:Array.isArray(e)?e.flatMap(n=>hA(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 J1e=v(()=>{});function X1e(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 F9t(e){let t={};return"temperature"in e&&typeof e.temperature=="number"&&(t[jy]=e.temperature),"topP"in e&&typeof e.topP=="number"&&(t[qy]=e.topP),"topK"in e&&typeof e.topK=="number"&&(t[xH]=e.topK),"maxOutputTokens"in e&&typeof e.maxOutputTokens=="number"&&(t[cA]=e.maxOutputTokens),"frequencyPenalty"in e&&typeof e.frequencyPenalty=="number"&&(t[Hy]=e.frequencyPenalty),"presencePenalty"in e&&typeof e.presencePenalty=="number"&&(t[uA]=e.presencePenalty),t}function j9t(e,t,n){let r={[Fy]:W1e,[oa]:e,[At]:"auto.ai.google_genai"};if(t){if(r[us]=X1e(t,n),"config"in t&&typeof t.config=="object"&&t.config){let i=t.config;if(Object.assign(r,F9t(i)),"tools"in i&&Array.isArray(i.tools)){let s=i.tools.flatMap(o=>o.functionDeclarations);r[jp]=JSON.stringify(s)}}}else r[us]=X1e({},n);return r}function Q1e(e,t,n){if(n){let i=t.contents;i!=null&&e.setAttribute(lA,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(...hA(t.config.systemInstruction,"system")),"history"in t&&r.push(...hA(t.history,"user")),"contents"in t&&r.push(...hA(t.contents,"user")),"message"in t&&r.push(...hA(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(Gy(s))})}}function H9t(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 $1e(e,t,n,r,i){let s=t===MQ,o=n.operation==="embeddings";return new Proxy(e,{apply(a,c,u){let l=n.operation,d=u[0],f=j9t(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&&Q1e(h,d,o);let m=await a.apply(r,u);return Y1e(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&&Q1e(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&&H9t(h,m,i.recordOutputs)})))}})}function LQ(e,t="",n){return new Proxy(e,{get:(r,i,s)=>{let o=Reflect.get(r,i,s),a=dA(t,String(i)),c=V1e[a];if(typeof o=="function"&&c){if(a===MQ){let u=$1e(o,a,c,r,n);return function(...d){let f=u(...d);return f&&typeof f=="object"?LQ(f,K1e,n):f}}return $1e(o,a,c,r,n)}return typeof o=="function"?o.bind(r):o&&typeof o=="object"?LQ(o,a,n):o}})}function BH(e,t){return LQ(e,"",Hp(t))}var eUe=v(()=>{ul();Lo();My();oH();Xa();hP();qp();DQ();Z1e();J1e()});var zH,GE,tUe,GH=v(()=>{zH="LangChain",GE="auto.ai.langchain",tUe={human:"user",ai:"assistant",assistant:"assistant",system:"system",function:"function",tool:"tool"}});function Rm(e){if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function mA(e){if(Array.isArray(e))try{let t=e.map(n=>n&&typeof n=="object"&&zy(n)?qE(n):n);return JSON.stringify(t)}catch{return String(e)}return Rm(e)}function SP(e){let t=e.toLowerCase();return tUe[t]??t}function nUe(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 UQ(e){if(!(!e||Array.isArray(e)))return e.invocation_params}function bP(e){return e.map(t=>{let n=t._getType;if(typeof n=="function"){let i=n.call(t);return{role:SP(i),content:mA(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"?nUe(s):"user";return{role:SP(o),content:mA(t.kwargs?.content)}}if(t.type){let i=String(t.type).toLowerCase();return{role:SP(i),content:mA(t.content)}}if(t.role)return{role:SP(String(t.role)),content:mA(t.content)};let r=t.constructor?.name;return r&&r!=="Object"?{role:SP(nUe(r)),content:mA(t.content)}:{role:"user",content:mA(t.content)}})}function q9t(e,t,n){let r={},i="kwargs"in e?e.kwargs:void 0,s=t?.temperature??n?.ls_temperature??i?.temperature;fl(r,jy,s);let o=t?.max_tokens??n?.ls_max_tokens??i?.max_tokens;fl(r,cA,o);let a=t?.top_p??i?.top_p;fl(r,qy,a);let c=t?.frequency_penalty;fl(r,Hy,c);let u=t?.presence_penalty;return fl(r,uA,u),t&&"stream"in t&&Xl(r,aA,!!t.stream),r}function rUe(e,t,n,r,i){return{[Fy]:Rm(e??"langchain"),[oa]:"chat",[us]:Rm(t),[At]:GE,...q9t(n,r,i)}}function iUe(e,t,n,r,i){let s=i?.ls_provider,o=r?.model??i?.ls_model_name??"unknown",a=rUe(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){Xl(a,Cc,t.length);let c=t.map(u=>({role:"user",content:u}));Xl(a,aa,Rm(c))}return a}function sUe(e,t,n,r,i){let s=i?.ls_provider??e.id?.[2],o=r?.model??i?.ls_model_name??"unknown",a=rUe(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){let c=bP(t.flat()),{systemInstructions:u,filteredMessages:l}=dl(c);u&&Xl(a,ll,u);let d=Array.isArray(l)?l.length:0;Xl(a,Cc,d);let f=Gy(l);Xl(a,aa,Rm(f))}return a}function B9t(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&&Xl(t,Fo,Rm(n))}function z9t(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,wLe,r.cache_creation_input_tokens),r.cache_read_input_tokens!==void 0&&fl(t,kLe,r.cache_read_input_tokens)}}function oUe(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&&Xl(n,du,Rm(u)),B9t(e.generations,n),t){let l=e.generations.flat().map(d=>d.text??d.message?.content).filter(d=>typeof d=="string");l.length>0&&Xl(n,Gs,Rm(l))}}z9t(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&&Xl(n,yo,o);let a=r?.id??s?.id;a&&Xl(n,Jl,a);let c=r?.stop_reason??s?.response_metadata?.finish_reason;return c&&Xl(n,vLe,Rm(c)),n}var Xl,fl,VH=v(()=>{Lo();Xa();gQ();hP();qp();GH();Xl=(e,t,n)=>{n!=null&&(e[t]=n)},fl=(e,t,n)=>{let r=Number(n);Number.isNaN(r)||(e[t]=r)}});function WH(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=UQ(d),m=iUe(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=UQ(d),m=sUe(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=oUe(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:`${GE}.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:`${GE}.chain_error_handler`}})},handleToolStart(o,a,c,u){let l=o.name||"unknown_tool",d={[At]:GE,[HE]:l};t&&(d[PH]=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({[NH]: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:`${GE}.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 aUe=v(()=>{ul();Lo();My();Xa();qp();GH();VH()});var KH,FQ,jQ=v(()=>{KH="LangGraph",FQ="auto.ai.langgraph"});function G9t(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 V9t(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 W9t(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 cUe(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 uUe(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=G9t(o);a&&e.setAttribute(Fo,JSON.stringify(a));let c=bP(o);e.setAttribute(Gs,JSON.stringify(c));let u=0,l=0,d=0;for(let f of o){let p=V9t(f);u+=p.inputTokens,l+=p.outputTokens,d+=p.totalTokens,W9t(e,f)}u>0&&e.setAttribute(di,u),l>0&&e.setAttribute(Ns,l),d>0&&e.setAttribute(Nc,d)}var lUe=v(()=>{Xa();VH()});function HQ(e,t){return new Proxy(e,{apply(n,r,i){return lf({op:"gen_ai.create_agent",name:"create_agent",attributes:{[At]:FQ,[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(sQ,a.name),s.updateName(`create_agent ${a.name}`));let c=o.invoke;return c&&typeof c=="function"&&(o.invoke=K9t(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 K9t(e,t,n,r){return new Proxy(e,{apply(i,s,o){return lf({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[At]:FQ,[zt]:OH,[oa]:"invoke_agent"}},async a=>{try{let c=n?.name;c&&typeof c=="string"&&(a.setAttribute(ALe,c),a.setAttribute(sQ,c),a.updateName(`invoke_agent ${c}`));let d=(o.length>1?o[1]:void 0)?.configurable?.thread_id;d&&typeof d=="string"&&a.setAttribute(dP,d);let f=cUe(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=bP(m),{systemInstructions:b,filteredMessages:S}=dl(y);b&&a.setAttribute(ll,b);let E=Gy(S),_=Array.isArray(S)?S.length:0;a.setAttributes({[aa]:JSON.stringify(E),[Cc]:_})}let g=await Reflect.apply(i,s,o);return h&&uUe(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 YH(e,t){return e.compile=HQ(e.compile,Hp(t)),e}var dUe=v(()=>{ul();Lo();My();Xa();hP();qp();VH();jQ();lUe()});function EP(e){if(e!==void 0)return e>=400&&e<500?"warning":e>=500?"error":void 0}var fUe=v(()=>{});function _P(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 pUe=v(()=>{});function gUe(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 yUe(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=PCe(o[2]),p=o[5]==="native";!f&&o[5]&&!p&&(f=o[5]);let h=f?Y9t(f):void 0;return{filename:h??f,module:h&&e?.(h),function:u,lineno:hUe(o[3]),colno:hUe(o[4]),in_app:gUe(f||"",p)}}if(i.match(t))return{filename:i}}}function qQ(e){return[90,yUe(e)]}function hUe(e){return parseInt(e||"",10)||void 0}function Y9t(e){try{return decodeURI(e)}catch{return}}var SUe=v(()=>{MR()});var fu,bUe=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(()=>{WR();nMe();My();Em();vX();RX();sH();Lo();ul();go();XJ();zR();ODe();gH();LX();PDe();NDe();ZO();oH();Oc();KR();DDe();LDe();FDe();jDe();VDe();JX();YDe();JDe();nLe();aLe();mLe();yLe();SLe();bLe();UX();m1e();IQ();C1e();FH();G1e();OQ();eUe();DQ();aUe();GH();dUe();jQ();fUe();Wa();Ka();_r();Lp();nf();fLe();pUe();MR();SUe();vy();Yj();_m();VO();MDe();bUe();Iy();Pj();Ey()});function rt(e,t,n){return n?bYt(e,t,n):SYt(e,t)}function SYt(e,t){return Object.assign(n=>{let r=TP[e];if(r)return n&&r.setConfig(n),r;let i=t(n);return TP[e]=i,(0,BQ.registerInstrumentations)({instrumentations:[i]}),i},{id:e})}function bYt(e,t,n){return Object.assign(r=>{let i=n(r),s=TP[e];if(s)return s.setConfig(i),s;let o=new t(i);return TP[e]=o,(0,BQ.registerInstrumentations)({instrumentations:[o]}),o},{id:e})}function vP(e){let t=!1,n=[];if(!EYt(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 EYt(e){return typeof e._wrap=="function"}var BQ,TP,ZH=v(()=>{BQ=Re(Jt(),1),TP={}});var Qt,ff=v(()=>{Qt=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var JH,EUe=v(()=>{JH="@sentry/instrumentation-http"});function _Ue(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 TUe=v(()=>{st();ff()});import{subscribe as _Yt}from"node:diagnostics_channel";function AUe(e,t){zs(e,"_startSpanCallback",new WeakRef(t))}function vYt(e,{ignoreRequestBody:t,maxRequestBodySize:n,sessions:r,sessionFlushingDelayMS:i}){let s=e.emit;if(RUe.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(vUe)||!l)return a.apply(c,u);Qt&&Z.log(GQ,"Handling incoming request");let d=vn().clone(),f=u[1],p=u[2],h=lP(f),m=f.ip||f.socket?.remoteAddress,g=f.url||"/";n!=="none"&&!t?.(g,f)&&_Ue(f,d,n,GQ),d.setSDKProcessingMetadata({normalizedRequest:h,ipAddress:m});let y=(f.method||"GET").toUpperCase(),b=vm(g),S=`${y} ${b}`;return d.setTransactionName(S),r&&l&&RYt(l,{requestIsolationScope:d,response:p,sessionFlushingDelayMS:i??6e4}),zO(d,()=>{let E={traceId:Ya(),sampleRand:Do(),propagationSpanId:Za()};Fn().setPropagationContext({...E}),d.setPropagationContext({...E});let _=Qd.extract(Ve.active(),h.headers).setValue(vUe,!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)})})}});RUe.add(o),e.emit=o}function RYt(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=zQ.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};zQ.set(e,u);let l=()=>{clearTimeout(f),d(),zQ.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 vUe,GQ,zQ,RUe,TYt,RP,XH=v(()=>{Me();st();ff();TUe();vUe=il("sentry_http_server_instrumented"),GQ="Http.Server",zQ=new Map,RUe=new WeakSet;TYt=((e={})=>{let t={sessions:e.sessions??!0,sessionFlushingDelayMS:e.sessionFlushingDelayMS??6e4,maxRequestBodySize:e.maxRequestBodySize??"medium",ignoreRequestBody:e.ignoreRequestBody};return{name:GQ,setupOnce(){_Yt("http.server.request.start",(r=>{vYt(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`.")}}}),RP=TYt});import{errorMonitor as AYt}from"node:events";function kYt(e){return e.headers["next-router-prefetch"]==="1"}function IYt(e){let t=vm(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 xYt(e,{ignoreStaticAssets:t,ignoreIncomingRequests:n}){if((0,Am.isTracingSuppressed)(Ve.active()))return!0;let r=e.url,i=e.method?.toUpperCase();return!!(i==="OPTIONS"||i==="HEAD"||!r||t&&i==="GET"&&IYt(r)||n?.(r,e))}function OYt(e){let t=PYt(e.headers);return t==null?{}:NYt(e.headers)?{"http.request_content_length":t}:{"http.request_content_length_uncompressed":t}}function PYt(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}function NYt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}function CYt(e,t){let{socket:n}=e,{statusCode:r,statusMessage:i}=t,s={[lm]:r,[yE]:r,"http.status_text":i?.toUpperCase()},o=(0,Am.getRPCMetadata)(Ve.active());if(n){let{localAddress:a,localPort:c,remoteAddress:u,remotePort:l}=n;s[l7]=a,s[d7]=c,s[u7]=u,s["net.peer.port"]=l}if(s[yE]=r,s["http.status_text"]=(i||"").toUpperCase(),o?.type===Am.RPCType.HTTP&&o.route!==void 0){let a=o.route;s[dm]=a}return s}function MYt(e,t){return t.some(n=>{if(typeof n=="number")return n===e;let[r,i]=n;return e>=r&&e<=i})}var Am,wUe,wYt,AP,VQ=v(()=>{Me();Am=Re(pr(),1);Nn();st();ff();XH();wUe="Http.ServerSpans",wYt=((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:wUe,setup(c){typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__||c.on("httpServerRequest",(u,l,d)=>{let f=u,p=l;AUe(f,m=>{if(xYt(f,{ignoreStaticAssets:t,ignoreIncomingRequests:n}))return Qt&&Z.log(wUe,"Skipping span creation for incoming request",f.url),m();let g=d.url||f.url||"/",y=uP(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:vm(g),N=`${k} ${P}`,C=A.startSpan(N,{kind:$r.SERVER,attributes:{[zt]:"http.server",[At]:"auto.http.otel.http","sentry.http.prefetch":kYt(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",...OYt(f),...EH(d.headers||{},c.getOptions().sendDefaultPii??!1)}});s?.(C,f),o?.(C,p),a?.(C,f,p),i?.(C,f,p);let L={type:Am.RPCType.HTTP,span:C};return Ve.with((0,Am.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=CYt(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(ym(p.statusCode))}),p.on(AYt,()=>{let $=ym(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"&&MYt(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."))}}}),AP=wYt});function wP(e,t){if(!e)return t;let n=PE(e),r=PE(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 Vj(a)}var WQ=v(()=>{st()});function kUe(e,t){let n=DYt(e),r=t?.statusCode,i=EP(r);Zl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function QH(e,t){let n=$H(e),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=FE(n,r,t)?oA({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(gA,"Added sentry-trace header to outgoing request")}catch(l){Qt&&Z.error(gA,"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(gA,"Added traceparent header to outgoing request")}catch(l){Qt&&Z.error(gA,"Failed to add traceparent header to outgoing request:",Mp(l)?l.message:"Unknown error")}if(a){let l=e.getHeader("baggage"),d=wP(l,a);if(d)try{e.setHeader("baggage",d),Qt&&Z.log(gA,"Added baggage header to outgoing request")}catch(f){Qt&&Z.error(gA,"Failed to add baggage header to outgoing request:",Mp(f)?f.message:"Unknown error")}}}}function DYt(e){try{let t=e.getHeader("host")||e.host,n=new URL(e.path,`${e.protocol}//${t}`),r=Ly(n.toString()),i={url:Uy(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 IUe(e){return{method:e.method,protocol:e.protocol,host:e.host,hostname:e.host,path:e.path,headers:e.getHeaders()}}function $H(e){let t=e.getHeader("host")||e.host,n=e.protocol,r=e.path;return`${n}//${t}${r}`}var gA,xUe=v(()=>{st();ff();WQ();gA="@sentry/instrumentation-http"});import{subscribe as KQ,unsubscribe as YQ}from"node:diagnostics_channel";import{errorMonitor as OUe}from"node:events";function LYt(e){let t=$H(e),[n,r]=YX(uP(t),"client","auto.http.otel.http",e),i=e.getHeader("user-agent");return[n,{[zt]:"http.client","otel.kind":"CLIENT",[C7]:i,[py]:t,"http.url":t,"http.method":e.method,"http.target":e.path||"/","net.peer.name":e.host,"http.host":e.getHeader("host"),...r}]}function UYt(e){let{statusCode:t,statusMessage:n,httpVersion:r,socket:i}=e,s=r.toUpperCase()!=="QUIC"?"ip_tcp":"ip_udp",o={[lm]:t,[k7]:r,"http.flavor":r,[I7]:s,"net.transport":s,"http.status_text":n?.toUpperCase(),"http.status_code":t,...FYt(e)};if(i){let{remoteAddress:a,remotePort:c}=i;o[A7]=a,o[w7]=c,o["net.peer.ip"]=a,o["net.peer.port"]=c}return o}function FYt(e){let t=jYt(e.headers);return t==null?{}:HYt(e.headers)?{[p7]:t}:{[h7]:t}}function jYt(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 HYt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}var PUe,kP,VE,ZQ=v(()=>{Me();PUe=Re(pr(),1),kP=Re(Jt(),1);Nn();st();ff();EUe();xUe();VE=class extends kP.InstrumentationBase{constructor(t={}){super(JH,Cn,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,KQ("http.client.response.finish",n),KQ("http.client.request.error",r),(this.getConfig().propagateTraceInOutgoingRequests||this.getConfig().createSpansForOutgoingRequests)&&KQ("http.client.request.created",i)),a),o=()=>{YQ("http.client.response.finish",n),YQ("http.client.request.error",r),YQ("http.client.request.created",i)};return[new kP.InstrumentationNodeModuleDefinition("http",["*"],s,o),new kP.InstrumentationNodeModuleDefinition("https",["*"],s,o)]}_startSpanForOutgoingRequest(t){let n=t.once,[r,i]=LYt(t),s=cH({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=UYt(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}:ym(u.statusCode);c(p)};u.on("end",()=>{d()}),u.on(OUe,f=>{this._diag.debug("outgoingRequest on response error()",f),d(!0)})}),t.on("close",()=>{c({code:as.UNSET})}),t.on(OUe,u=>{this._diag.debug("outgoingRequest on request error()",u),c({code:as.ERROR})}),s}_onOutgoingRequestFinish(t,n){Qt&&Z.log(JH,"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&&kUe(t,n)}_onOutgoingRequestCreated(t){Qt&&Z.log(JH,"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,()=>{QH(t,this._propagationDecisionMap)})}else i&&QH(t,this._propagationDecisionMap)}else i&&QH(t,this._propagationDecisionMap)}_shouldIgnoreOutgoingRequest(t){if((0,PUe.isTracingSuppressed)(Ve.active()))return!0;let n=this.getConfig().ignoreOutgoingRequests;if(!n)return!1;let r=IUe(t),i=$H(t);return n(i,r)}}});var NUe,qYt,CUe,MUe=v(()=>{ZH();XH();VQ();ZQ();NUe="Http",qYt=rt(`${NUe}.sentry`,e=>new VE(e)),CUe=(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=RP(t),s=AP(n),o=e.spans??!1,a=e.disableIncomingRequestSpans??!1,c=o&&!a;return{name:NUe,setup(u){c&&s.setup(u)},setupOnce(){i.setupOnce(),qYt(r)},processEvent(u){return s.processEvent(u)}}}});var pf,wm,IP,yA=v(()=>{st();pf=ZJ(process.versions.node),wm=pf.major,IP=pf.minor});function DUe(e,t){let n=tq(e.origin,e.path),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=FE(n,r,t)?oA({propagateTraceparent:i}):void 0;if(!s)return;let{"sentry-trace":o,baggage:a,traceparent:c}=s,u=Array.isArray(e.headers)?e.headers:zYt(e.headers);if(XQ(u,JQ),XQ(u,eq),i&&XQ(u,BYt),!(QQ(u,JQ)!==-1)){o&&u.push(JQ,o),c&&QQ(u,"traceparent")===-1&&u.push("traceparent",c);let d=QQ(u,eq);if(a&&d===-1)u.push(eq,a);else if(a){let f=u[d+1],p=wP(f,a);p&&(u[d+1]=p)}}Array.isArray(e.headers)||(e.headers=GYt(u))}function zYt(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 GYt(e){let t=[];for(let n=0;nTy(n,t)):!1}function o3t(e,t){if(!t?.length)return!1;let n=e.transaction;return n?Ty(n,t):!1}function a3t(e,t){if(!t?.length)return!1;let n=TH(e);return n?Ty(n,t):!1}function c3t(e,t){if(!t?.length)return!0;let n=TH(e);return n?Ty(n,t):!0}function u3t(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 TH(e){try{let n=[...e.exception?.values??[]].reverse().find(r=>r.mechanism?.parent_id===void 0&&r.stacktrace?.frames?.length)?.stacktrace?.frames;return n?u3t(n):null}catch{return Fe&&Z.error(`Cannot extract url for event ${Ry(e)}`),null}}function l3t(e){return e.exception?.values?.length?!e.message&&!e.exception.values.some(t=>t.stacktrace||t.type&&t.type!=="Error"||t.value):!1}var n3t,r3t,XX,vH,QDe=v(()=>{Pi();_r();jX();Lp();vy();n3t=[/^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$/],r3t="EventFilters",XX=(e={})=>{let t;return{name:r3t,setup(n){let r=n.getOptions();t=XDe(e,r)},processEvent(n,r,i){if(!t){let s=i.getOptions();t=XDe(e,s)}return i3t(n,t)?null:n}}},vH=((e={})=>({...XX(e),name:"InboundFilters"}))});function tLe(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=QX(e,t,r,s.originalException,n,i.exception.values,o,0))}function QX(e,t,n,r,i,s,o,a){if(s.length>=n+1)return s;let c=[...s];if(Dp(r[i],Error)){$De(o,a,r);let u=e(t,r[i]),l=c.length;eLe(u,i,l,a),c=QX(e,t,n,r[i],i,[u,...c],u,l)}return nLe(r)&&r.errors.forEach((u,l)=>{if(Dp(u,Error)){$De(o,a,r);let d=e(t,u),f=c.length;eLe(d,`errors[${l}]`,f,a),c=QX(e,t,n,u,i,[d,...c],d,f)}}),c}function nLe(e){return Array.isArray(e.errors)}function $De(e,t,n){e.mechanism={handled:!0,type:"auto.core.linked_errors",...nLe(n)&&{is_exception_group:!0},...e.mechanism,exception_id:t}}function eLe(e,t,n,r){e.mechanism={handled:!0,...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}var rLe=v(()=>{Ka()});var d3t,f3t,p3t,h3t,RH,iLe=v(()=>{rLe();zX();d3t="cause",f3t=5,p3t="LinkedErrors",h3t=((e={})=>{let t=e.limit||f3t,n=e.key||d3t;return{name:p3t,preprocessEvent(r,i,s){let o=s.getOptions();tLe(BX,o.stackParser,n,t,r,i)}}}),RH=h3t});function sLe(e){let t={},n=0;for(;n{});function aLe(e){let t={};for(let s of Object.keys(e))t[s.toLowerCase()]=e[s];return $X.map(s=>{let o=t[s.toLowerCase()],a=Array.isArray(o)?o.join(";"):o;return s==="Forwarded"?m3t(a):a?.split(",").map(c=>c.trim())}).reduce((s,o)=>o?s.concat(o):s,[]).find(s=>s!==null&&g3t(s))||null}function m3t(e){if(!e)return null;for(let t of e.split(";"))if(t.startsWith("for="))return t.slice(4);return null}function g3t(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 $X,cLe=v(()=>{$X=["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 E3t(e,t,n,r){if(e.request={...e.request,..._3t(t,r)},r.ip){let i=t.headers&&aLe(t.headers)||n.ipAddress;i&&(e.user={...e.user,ip_address:i})}}function _3t(e,t){let n={},r={...e.headers};if(t.headers&&(n.headers=r,t.cookies||delete r.cookie,t.ip||$X.forEach(i=>{delete r[i]})),n.method=e.method,t.url&&(n.url=e.url),t.cookies){let i=e.cookies||(r?.cookie?sLe(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 y3t,S3t,b3t,AH,uLe=v(()=>{oLe();cLe();y3t={cookies:!0,data:!0,headers:!0,query_string:!0,url:!0},S3t="RequestData",b3t=((e={})=>{let t={...y3t,...e.include};return{name:S3t,processEvent(n,r,i){let{sdkProcessingMetadata:s={}}=n,{normalizedRequest:o,ipAddress:a}=s,c={...t,ip:t.ip??i.getOptions().sendDefaultPii};return o&&E3t(n,o,{ipAddress:a},c),n}}}),AH=b3t});function lLe(e){let t="console";DR(t,e),LR(t,T3t)}function T3t(){"console"in qt&&FO.forEach(function(e){e in qt.console&&qJ(qt.console,e,function(t){return CR[e]=t,function(...n){UR("console",{args:n,level:e}),CR[e]?.apply(qt.console,n)}})})}var dLe=v(()=>{_r();nf();Wa();Lj()});function fLe(e){return e==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(e)?e:"log"}var pLe=v(()=>{});function R3t(e){let t=e.length>1024?`${e.slice(-1024)}`:e,n=v3t.exec(t);return n?n.slice(1):[]}function eQ(e){let t=R3t(e),n=t[0]||"",r=t[1];return!n&&!r?".":(r&&(r=r.slice(0,r.length-1)),n+r)}var v3t,hLe=v(()=>{v3t=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/});function rQ(e,t){return!e||typeof e!="function"?(Fe&&Z.warn("instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance"),e):nQ(e,{requireParentSpan:!0,...t})}function nQ(e,t,n){if(e[tQ])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&&gLe(a,r,t),a},get(i,s){let o=i[s];return typeof s!="string"||typeof o!="function"?o:s==="unsafe"||s==="file"?k3t(o,i,r,t):s==="begin"||s==="reserve"?I3t(o,i,r,t):o}});return n?r[wH]=n:C3t(e,r),e[tQ]=!0,r[tQ]=!0,r}function k3t(e,t,n,r){return function(...i){let s=Reflect.apply(e,t,i);return s&&typeof s=="object"&&"handle"in s&&gLe(s,n,r),s}}function I3t(e,t,n,r){return function(...i){let s=n[wH];if(!(typeof i[i.length-1]=="function")){let l=Reflect.apply(e,t,i);return l&&typeof l.then=="function"?l.then(d=>nQ(d,r,s)):l}let a=i.length===1?i[0]:i[1],c=function(l){let d=nQ(l,r,s);return a(d)},u=i.length===1?[c]:[i[0],c];return Reflect.apply(e,t,u)}}function gLe(e,t,n){if(e.handle?.__sentryWrapped)return;e[w3t]=!0;let r=e.handle,i=async function(...s){if(!x3t(n))return r.apply(this,s);let o=O3t(e.strings),a=P3t(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[wH]:void 0;if(N3t(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{mLe(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"),mLe(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 x3t(e){return Yl()!==void 0||!e.requireParentSpan}function O3t(e){if(e?.length)return e.length===1?e[0]||void 0:e.reduce((t,n,r)=>r===0?n:`${t}$${r}${n}`,"")}function P3t(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();My();A3t=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,wH=Symbol("sentryPostgresConnectionContext"),tQ=Symbol.for("sentry.instrumented.postgresjs"),w3t=Symbol.for("sentry.query.from.instrumented.sql")});function D3t(e,t){let n={category:"console",data:{arguments:t,logger:"console"},level:fLe(e),message:SLe(t)};if(e==="assert")if(t[0]===!1){let r=t.slice(1);n.message=r.length>0?`Assertion failed: ${SLe(r)}`:"Assertion failed",n.data.arguments=r}else return;Zl(n,{input:t,level:e})}function SLe(e){return"util"in qt&&typeof qt.util.format=="function"?qt.util.format(...e):VJ(e," ")}var M3t,kH,bLe=v(()=>{JX();go();dLe();_r();pLe();vy();Wa();M3t="Console",kH=(e={})=>{let t=new Set(e.levels||FO);return{name:M3t,setup(n){lLe(({args:r,level:i})=>{ct()!==n||!t.has(i)||D3t(i,r)})}}}});var L3t,U3t,iQ,ELe=v(()=>{go();Lo();L3t="ConversationId",U3t=(()=>({name:L3t,setup(e){e.on("spanStart",t=>{let n=Fn().getScopeData(),r=vn().getScopeData(),i=n.conversationId||r.conversationId;i&&t.setAttribute(uX,i)})}})),iQ=U3t});function IH(e,t={},n=Fn()){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 _Le=v(()=>{go()});var TLe,Fy,us,aA,jy,cA,Hy,uA,qy,xH,vLe,RLe,du,yo,Jl,ALe,di,Ns,Nc,oa,Cc,aa,wLe,ll,Gs,jp,jE,Fo,sQ,kLe,dP,ILe,xLe,oQ,By,OH,OLe,PLe,NLe,CLe,lA,MLe,DLe,LLe,ULe,HE,aQ,cQ,PH,NH,FLe,uQ,lQ,dQ,jLe,HLe,fQ,Xa=v(()=>{TLe="gen_ai.prompt",Fy="gen_ai.system",us="gen_ai.request.model",aA="gen_ai.request.stream",jy="gen_ai.request.temperature",cA="gen_ai.request.max_tokens",Hy="gen_ai.request.frequency_penalty",uA="gen_ai.request.presence_penalty",qy="gen_ai.request.top_p",xH="gen_ai.request.top_k",vLe="gen_ai.request.encoding_format",RLe="gen_ai.request.dimensions",du="gen_ai.response.finish_reasons",yo="gen_ai.response.model",Jl="gen_ai.response.id",ALe="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",wLe="gen_ai.output.messages",ll="gen_ai.system_instructions",Gs="gen_ai.response.text",jp="gen_ai.request.available_tools",jE="gen_ai.response.streaming",Fo="gen_ai.response.tool_calls",sQ="gen_ai.agent.name",kLe="gen_ai.pipeline.name",dP="gen_ai.conversation.id",ILe="gen_ai.usage.cache_creation_input_tokens",xLe="gen_ai.usage.cache_read_input_tokens",oQ="gen_ai.usage.input_tokens.cache_write",By="gen_ai.usage.input_tokens.cached",OH="gen_ai.invoke_agent",OLe="gen_ai.generate_text",PLe="gen_ai.stream_text",NLe="gen_ai.generate_object",CLe="gen_ai.stream_object",lA="gen_ai.embeddings.input",MLe="gen_ai.embeddings",DLe="gen_ai.embeddings",LLe="gen_ai.rerank",ULe="gen_ai.execute_tool",HE="gen_ai.tool.name",aQ="gen_ai.tool.call.id",cQ="gen_ai.tool.type",PH="gen_ai.tool.input",NH="gen_ai.tool.output",FLe="gen_ai.tool.description",uQ="openai.response.id",lQ="openai.response.model",dQ="openai.response.timestamp",jLe="openai.usage.completion_tokens",HLe="openai.usage.prompt_tokens",fQ="anthropic.response.timestamp"});var fP,pQ,hQ,qLe,BLe,zLe,mQ=v(()=>{fP=new Map,pQ=new Set(["ai.generateText","ai.streamText","ai.generateObject","ai.streamObject"]),hQ=new Set(["ai.generateText.doGenerate","ai.streamText.doStream","ai.generateObject.doGenerate","ai.streamObject.doStream"]),qLe=new Set(["ai.embed.doEmbed","ai.embedMany.doEmbed"]),BLe=new Set(["ai.rerank.doRerank"]),zLe={"ai.embed.doEmbed":"embeddings","ai.embedMany.doEmbed":"embeddings","ai.rerank.doRerank":"rerank"}});function zy(e){return!e||typeof e!="object"?!1:j3t(e)||VLe(e)||F3t(e)||WLe(e)||KLe(e)||H3t(e)||q3t(e)||B3t(e)||z3t(e)||G3t(e)||V3t(e)||W3t(e)}function F3t(e){return"image_url"in e?typeof e.image_url=="string"?e.image_url.startsWith("data:"):GLe(e):!1}function GLe(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 j3t(e){return"type"in e&&typeof e.type=="string"&&"source"in e&&zy(e.source)}function VLe(e){return"inlineData"in e&&!!e.inlineData&&typeof e.inlineData=="object"&&"data"in e.inlineData&&typeof e.inlineData.data=="string"}function WLe(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 KLe(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 H3t(e){return"media_type"in e&&typeof e.media_type=="string"&&"data"in e}function q3t(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 B3t(e){return"type"in e&&e.type==="image"&&"image"in e&&typeof e.image=="string"&&!e.image.startsWith("http://")&&!e.image.startsWith("https://")}function z3t(e){return"type"in e&&(e.type==="blob"||e.type==="base64")}function G3t(e){return"b64_json"in e}function V3t(e){return"type"in e&&"result"in e&&e.type==="image_generation"}function W3t(e){return"uri"in e&&typeof e.uri=="string"&&e.uri.startsWith("data:")}function qE(e){let t={...e};zy(t.source)&&(t.source=qE(t.source)),VLe(e)&&(t.inlineData={...e.inlineData,data:pP}),GLe(e)&&(t.image_url={...e.image_url,url:pP}),WLe(e)&&(t.input_audio={...e.input_audio,data:pP}),KLe(e)&&(t.file={...e.file,file_data:pP});for(let n of K3t)typeof t[n]=="string"&&(t[n]=pP);return t}var pP,K3t,gQ=v(()=>{pP="[Blob substitute]",K3t=["image_url","data","content","b64_json","result","uri","image"]});function MH(e,t){if(CH(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);CH(o)<=t?(i=o,n=s+1):r=s-1}return i}function Y3t(e){return typeof e=="string"?e:"text"in e&&typeof e.text=="string"?e.text:""}function YLe(e,t){return typeof e=="string"?t:{...e,text:t}}function Z3t(e){return e!==null&&typeof e=="object"&&"content"in e&&typeof e.content=="string"}function JLe(e){return e!==null&&typeof e=="object"&&"content"in e&&Array.isArray(e.content)}function XLe(e){return e!==null&&typeof e=="object"&&"parts"in e&&Array.isArray(e.parts)&&e.parts.length>0}function J3t(e,t){let n={...e,content:""},r=SQ(n),i=t-r;if(i<=0)return[];let s=MH(e.content,i);return[{...e,content:s}]}function X3t(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 Q3t(e,t){let{key:n,items:r}=X3t(e);if(n===null||r.length===0)return[];let i=r.map(c=>YLe(c,"")),s=SQ({...e,[n]:i}),o=t-s;if(o<=0)return[];let a=[];for(let c of r){let u=Y3t(c),l=CH(u);if(l<=o)a.push(c),o-=l;else if(a.length===0){let d=MH(u,o);d&&a.push(YLe(c,d));break}else break}return a.length<=0?[]:[{...e,[n]:a}]}function $3t(e,t){if(!e)return[];if(typeof e=="string"){let n=MH(e,t);return n?[n]:[]}return typeof e!="object"?[]:Z3t(e)?J3t(e,t):JLe(e)||XLe(e)?Q3t(e,t):[]}function yQ(e){return e.map(n=>{let r;return n&&typeof n=="object"&&(JLe(n)?r={...n,content:yQ(n.content)}:"content"in n&&zy(n.content)&&(r={...n,content:qE(n.content)}),XLe(n)&&(r={...r??n,parts:yQ(n.parts)}),zy(r)?r=qE(r):zy(n)&&(r=qE(n))),r??n})}function e9t(e,t){if(!Array.isArray(e)||e.length===0)return e;let n=t-2,r=e[e.length-1],i=yQ([r]),s=i[0];return SQ(s)<=n?i:$3t(s,n)}function Gy(e){return e9t(e,ZLe)}function QLe(e){return MH(e,ZLe)}var ZLe,CH,SQ,hP=v(()=>{gQ();ZLe=2e4,CH=e=>new TextEncoder().encode(e).length,SQ=e=>CH(JSON.stringify(e))});function Hp(e){let t=!!ct()?.getOptions().sendDefaultPii;return{...e,recordInputs:e?.recordInputs??t,recordOutputs:e?.recordOutputs??t}}function dA(e,t){return e?`${e}.${t}`:t}function mP(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 BE(e){if(typeof e=="string")return QLe(e);if(Array.isArray(e)){let t=Gy(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 t9t(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 fA(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 t9t(u,t,n)}:typeof a=="function"?a.bind(o):a}}):t}var qp=v(()=>{ul();go();Ka();Xa();hP()});var DH,$Le,LH,e1e,t1e,bQ,EQ,_Q,n1e,zE,pA,gP,r1e,i1e,s1e,o1e,a1e,c1e,TQ,vQ,u1e,l1e,RQ=v(()=>{DH="operation.name",$Le="ai.operationId",LH="ai.prompt",e1e="ai.schema",t1e="ai.response.object",bQ="ai.values",EQ="ai.response.text",_Q="ai.response.toolCalls",n1e="ai.response.finishReason",zE="ai.prompt.messages",pA="ai.prompt.tools",gP="ai.model.id",r1e="ai.response.providerMetadata",i1e="ai.usage.cachedInputTokens",s1e="ai.telemetry.functionId",o1e="ai.usage.completionTokens",a1e="ai.usage.promptTokens",c1e="ai.usage.tokens",TQ="ai.toolCall.name",vQ="ai.toolCall.id",u1e="ai.toolCall.args",l1e="ai.toolCall.result"});function f1e(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 AQ(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 n9t(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 p1e(e,t){let n=n9t(e);for(let r of e){if(r.op==="gen_ai.execute_tool"){let i=r.data[HE];if(typeof i=="string"){let s=n.get(i);s&&(r.data[FLe]=s)}}r.op==="gen_ai.invoke_agent"&&AQ(r,t)}}function wQ(e){return fP.get(e)}function kQ(e){fP.delete(e)}function h1e(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 d1e(e){return e.filter(t=>!!t&&typeof t=="object"&&"role"in t&&"content"in t)}function r9t(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(...d1e(n)),s;if(Array.isArray(r))return s.push(...d1e(r)),s;if(typeof r=="string"&&s.push({role:"user",content:r}),s.length>0)return s}}catch{}return[]}function m1e(e,t){if(typeof t[LH]=="string"&&!t[aa]&&!t[zE]){let n=t[LH],r=r9t(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=BE(s);e.setAttributes({[LH]:a,[aa]:a,[Cc]:o})}}else if(typeof t[zE]=="string")try{let n=JSON.parse(t[zE]);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=BE(i);e.setAttributes({[zE]:o,[aa]:o,[Cc]:s})}}catch{}}function g1e(e){switch(e){case"ai.generateText":case"ai.streamText":case"ai.generateObject":case"ai.streamObject":return OH;case"ai.generateText.doGenerate":return OLe;case"ai.streamText.doStream":return PLe;case"ai.generateObject.doGenerate":return NLe;case"ai.streamObject.doStream":return CLe;case"ai.embed.doEmbed":return MLe;case"ai.embedMany.doEmbed":return DLe;case"ai.rerank.doRerank":return LLe;case"ai.toolCall":return ULe;default:return e.startsWith("ai.stream")?"ai.run":void 0}}var IQ=v(()=>{Xa();qp();mQ();RQ()});function i9t(e){return pQ.has(e)?"invoke_agent":hQ.has(e)?"generate_content":qLe.has(e)?"embeddings":BLe.has(e)?"rerank":e==="ai.toolCall"?"execute_tool":e}function s9t(e){let{data:t,description:n}=vt(e);if(n){if(t[TQ]&&t[vQ]&&n==="ai.toolCall"){l9t(e,t);return}!t[$Le]&&!n.startsWith("ai.")||d9t(e,n,t)}}function o9t(e){if(e.type==="transaction"&&e.spans){let t=new Map;for(let r of e.spans)u9t(r),f1e(r,t);p1e(e.spans,t);let n=e.contexts?.trace;n?.op==="gen_ai.invoke_agent"&&AQ(n,t)}return e}function a9t(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 c9t(e){let t=e[EQ],n=e[_Q],r=e[n1e];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[_Q]}}catch{}if(i.length>0){let s={role:"assistant",parts:i,finish_reason:a9t(r)};e[wLe]=JSON.stringify([s]),delete e[EQ]}}function u9t(e){let{data:t,origin:n}=e;if(n==="auto.vercelai.otel"){if(e.status&&e.status!=="ok"&&(e.status="internal_error"),ca(t,o1e,Ns),ca(t,a1e,di),ca(t,i1e,By),ca(t,"ai.usage.inputTokens",di),ca(t,"ai.usage.outputTokens",Ns),ca(t,c1e,di),ca(t,"ai.response.avgOutputTokensPerSecond","ai.response.avgCompletionTokensPerSecond"),typeof t[di]=="number"&&typeof t[By]=="number"&&(t[di]=t[di]+t[By]),typeof t[di]=="number"){let r=typeof t[Ns]=="number"?t[Ns]:0;t[Nc]=r+t[di]}if(t[pA]&&Array.isArray(t[pA])&&(t[pA]=h1e(t[pA])),t[DH]){let r=i9t(t[DH]);t[oa]=r,delete t[DH]}if(ca(t,zE,aa),c9t(t),ca(t,t1e,"gen_ai.response.object"),ca(t,pA,"gen_ai.request.available_tools"),ca(t,u1e,PH),ca(t,l1e,NH),ca(t,e1e,"gen_ai.request.schema"),ca(t,gP,us),Array.isArray(t[bQ])){let r=t[bQ].map(i=>{try{return JSON.parse(i)}catch{return i}});t[lA]=r.length===1?r[0]:JSON.stringify(r)}f9t(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 l9t(e,t){e.setAttribute(At,"auto.vercelai.otel"),e.setAttribute(zt,"gen_ai.execute_tool"),e.setAttribute(oa,"execute_tool"),ca(t,TQ,HE),ca(t,vQ,aQ);let n=t[aQ];typeof n=="string"&&fP.set(n,e.spanContext()),t[cQ]||e.setAttribute(cQ,"function");let r=t[HE];r&&e.updateName(`execute_tool ${r}`)}function d9t(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[s1e];i&&typeof i=="string"&&e.setAttribute("gen_ai.function_id",i),m1e(e,n),n[gP]&&!n[yo]&&e.setAttribute(yo,n[gP]),e.setAttribute("ai.streaming",t.includes("stream"));let s=g1e(t);if(s&&e.setAttribute(zt,s),pQ.has(t)){i&&typeof i=="string"?e.updateName(`invoke_agent ${i}`):e.updateName("invoke_agent");return}let o=n[gP];if(o){let a=hQ.has(t)?"generate_content":zLe[t];a&&e.updateName(`${a} ${o}`)}}function UH(e){e.on("spanStart",s9t),e.addEventProcessor(Object.assign(o9t,{id:"VercelAiEventProcessor"}))}function f9t(e){let t=e[r1e];if(t)try{let n=JSON.parse(t),r=n.openai??n.azure;if(r&&(df(e,By,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,By,i);let s=n.anthropic.usage?.cache_creation_input_tokens??n.anthropic.cacheCreationInputTokens;df(e,oQ,s)}n.bedrock?.usage&&(df(e,By,n.bedrock.usage.cacheReadInputTokens),df(e,oQ,n.bedrock.usage.cacheWriteInputTokens)),n.deepseek&&(df(e,By,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 y1e=v(()=>{Lo();Oc();Xa();mQ();IQ();RQ()});var Vy,S1e,p9t,b1e,FH=v(()=>{Vy="OpenAI",S1e={"responses.create":{operation:"chat"},"chat.completions.create":{operation:"chat"},"embeddings.create":{operation:"embeddings"},"conversations.create":{operation:"chat"}},p9t=["response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"],b1e=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta",...p9t]});function E1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion"}function _1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="response"}function T1e(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 v1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="conversation"}function R1e(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 w1e(e,t,n){if(jH(e,t.id,t.model,t.created),t.usage&&yP(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 k1e(e,t,n){if(jH(e,t.id,t.model,t.created_at),t.status&&e.setAttributes({[du]:JSON.stringify([t.status])}),t.usage&&yP(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 I1e(e,t){e.setAttributes({[lQ]:t.model,[yo]:t.model}),t.usage&&yP(e,t.usage.prompt_tokens,void 0,t.usage.total_tokens)}function x1e(e,t){let{id:n,created_at:r}=t;e.setAttributes({[uQ]:n,[Jl]:n,[dP]:n}),r&&e.setAttributes({[dQ]:new Date(r*1e3).toISOString()})}function yP(e,t,n,r){t!==void 0&&e.setAttributes({[HLe]:t,[di]:t}),n!==void 0&&e.setAttributes({[jLe]:n,[Ns]:n}),r!==void 0&&e.setAttributes({[Nc]:r})}function jH(e,t,n,r){e.setAttributes({[uQ]:t,[Jl]:t}),e.setAttributes({[lQ]:n,[yo]:n}),e.setAttributes({[dQ]:new Date(r*1e3).toISOString()})}function h9t(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 O1e(e){let t={[us]:e.model??"unknown"};"temperature"in e&&(t[jy]=e.temperature),"top_p"in e&&(t[qy]=e.top_p),"frequency_penalty"in e&&(t[Hy]=e.frequency_penalty),"presence_penalty"in e&&(t[uA]=e.presence_penalty),"stream"in e&&(t[aA]=e.stream),"encoding_format"in e&&(t[vLe]=e.encoding_format),"dimensions"in e&&(t[RLe]=e.dimensions);let n=h9t(e);return n&&(t[dP]=n),t}var xQ=v(()=>{Xa()});function m9t(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 g9t(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&&m9t(r.delta.tool_calls,t)),r.finish_reason&&t.finishReasons.push(r.finish_reason)}function y9t(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(!b1e.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)?g9t(i,r,n):R1e(i)&&y9t(i,r,n,t),yield i}finally{jH(t,r.responseId,r.responseModel,r.responseTimestamp),yP(t,r.promptTokens,r.completionTokens,r.totalTokens),t.setAttributes({[jE]:!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 N1e=v(()=>{ul();Xa();FH();xQ()});function S9t(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 b9t(e,t){let n={[Fy]:"openai",[oa]:t,[At]:"auto.ai.openai"};if(e.length>0&&typeof e[0]=="object"&&e[0]!==null){let r=e[0],i=S9t(r);i&&(n[jp]=i),Object.assign(n,O1e(r))}else n[us]="unknown";return n}function E9t(e,t,n){if(!t||typeof t!="object")return;let r=t;if(E1e(r)){if(w1e(e,r,n),n&&r.choices?.length){let i=r.choices.map(s=>s.message?.content||"");e.setAttributes({[Gs]:JSON.stringify(i)})}}else _1e(r)?(k1e(e,r,n),n&&r.output_text&&e.setAttributes({[Gs]:r.output_text})):T1e(r)?I1e(e,r):v1e(r)&&x1e(e,r)}function C1e(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(lA,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=BE(s);e.setAttribute(aa,o),Array.isArray(s)?e.setAttribute(Cc,s.length):e.setAttribute(Cc,1)}function _9t(e,t,n,r,i){return function(...o){let a=n.operation,c=b9t(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&&C1e(y,l,a),(async()=>{try{let b=await m;return P1e(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 fA(m,g,"auto.ai.openai")}let p,h=lf(f,m=>(p=e.apply(r,o),i.recordInputs&&l&&C1e(m,l,a),p.then(g=>(E9t(m,g,i.recordOutputs),g),g=>{throw Wt(g,{mechanism:{handled:!1,type:"auto.ai.openai",data:{function:t}}}),g})));return fA(p,h,"auto.ai.openai")}}function M1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=dA(t,String(i)),a=S1e[o];return typeof s=="function"&&a?_9t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?M1e(s,o,n):s}})}function HH(e,t){return M1e(e,"",Hp(t))}var D1e=v(()=>{Pi();ul();Lo();_r();My();Xa();qp();FH();N1e();xQ()});var Wy,L1e,OQ=v(()=>{Wy="Anthropic_AI",L1e={"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 U1e(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]:BE(r),[Cc]:i})}function PQ(e){return e&&T9t[e]||"internal_error"}function F1e(e,t){t.error&&(e.setStatus({code:2,message:PQ(t.error.type)}),Wt(t.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}))}function j1e(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 T9t,NQ=v(()=>{ul();Xa();qp();T9t={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 v9t(e,t){return"type"in e&&typeof e.type=="string"&&e.type==="error"?(t.setStatus({code:2,message:PQ(e.error?.type)}),Wt(e.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0):!1}function R9t(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 A9t(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 w9t(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 k9t(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 H1e(e,t,n,r){!(e&&typeof e=="object")||v9t(e,r)||(R9t(e,t),A9t(e,t),w9t(e,t,n),k9t(e,t))}function I9t(e,t,n){t.isRecording()&&(e.responseId&&t.setAttributes({[Jl]:e.responseId}),e.responseModel&&t.setAttributes({[yo]:e.responseModel}),mP(t,e.promptTokens,e.completionTokens,e.cacheCreationInputTokens,e.cacheReadInputTokens),t.setAttributes({[jE]:!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*q1e(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)H1e(i,r,n,t),yield i}finally{r.responseId&&t.setAttributes({[Jl]:r.responseId}),r.responseModel&&t.setAttributes({[yo]:r.responseModel}),mP(t,r.promptTokens,r.completionTokens,r.cacheCreationInputTokens,r.cacheReadInputTokens),t.setAttributes({[jE]:!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 B1e(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=>{H1e(i,r,n,t)}),e.on("message",()=>{I9t(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 z1e=v(()=>{ul();Xa();qp();NQ()});function x9t(e,t,n){let r={[Fy]:"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[jy]=i.temperature),"top_p"in i&&(r[qy]=i.top_p),"stream"in i&&(r[aA]=i.stream),"top_k"in i&&(r[xH]=i.top_k),"frequency_penalty"in i&&(r[Hy]=i.frequency_penalty),"max_tokens"in i&&(r[cA]=i.max_tokens)}else t==="models.retrieve"||t==="models.get"?r[us]=e[0]:r[us]="unknown";return r}function CQ(e,t){let n=j1e(t);U1e(e,n),"prompt"in t&&e.setAttributes({[TLe]:JSON.stringify(t.prompt)})}function O9t(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 P9t(e,t){"id"in t&&"model"in t&&(e.setAttributes({[Jl]:t.id,[yo]:t.model}),"created"in t&&typeof t.created=="number"&&e.setAttributes({[fQ]:new Date(t.created*1e3).toISOString()}),"created_at"in t&&typeof t.created_at=="number"&&e.setAttributes({[fQ]:new Date(t.created_at*1e3).toISOString()}),"usage"in t&&t.usage&&mP(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.cache_creation_input_tokens,t.usage.cache_read_input_tokens))}function N9t(e,t,n){if(!(!t||typeof t!="object")){if("type"in t&&t.type==="error"){F1e(e,t);return}n&&O9t(e,t),P9t(e,t)}}function G1e(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 C9t(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&&CQ(m,a),(async()=>{try{let g=await p;return q1e(g,m,c.recordOutputs??!1)}catch(g){return G1e(g,m,o)}})()));return fA(p,h,"auto.ai.anthropic")}else return Uo(f,p=>{try{c.recordInputs&&a&&CQ(p,a);let h=t.apply(n,r);return B1e(h,p,c.recordOutputs??!1)}catch(h){return G1e(h,p,o)}})}function M9t(e,t,n,r,i){return new Proxy(e,{apply(s,o,a){let c=n.operation,u=x9t(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 C9t(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&&CQ(g,d),h.then(y=>(N9t(g,y,i.recordOutputs),y),y=>{throw Wt(y,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:t}}}),y})));return fA(h,m,"auto.ai.anthropic")}})}function V1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=dA(t,String(i)),a=L1e[o];return typeof s=="function"&&a?M9t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?V1e(s,o,n):s}})}function qH(e,t){return V1e(e,"",Hp(t))}var W1e=v(()=>{ul();Lo();My();Xa();qp();OQ();z1e();NQ()});var Ky,K1e,Y1e,MQ,Z1e,DQ=v(()=>{Ky="Google_GenAI",K1e={"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}},Y1e="google_genai",MQ="chats.create",Z1e="chat"});function D9t(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 L9t(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 U9t(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 F9t(e,t,n,r){!e||D9t(e,r)||(L9t(e,t),U9t(e,t,n))}async function*J1e(e,t,n){let r={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(let i of e)F9t(i,r,n,t),yield i}finally{let i={[jE]:!0};r.responseId&&(i[Jl]=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 X1e=v(()=>{ul();Xa()});function hA(e,t="user"){return typeof e=="string"?[{role:t,content:e}]:Array.isArray(e)?e.flatMap(n=>hA(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 Q1e=v(()=>{});function $1e(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 j9t(e){let t={};return"temperature"in e&&typeof e.temperature=="number"&&(t[jy]=e.temperature),"topP"in e&&typeof e.topP=="number"&&(t[qy]=e.topP),"topK"in e&&typeof e.topK=="number"&&(t[xH]=e.topK),"maxOutputTokens"in e&&typeof e.maxOutputTokens=="number"&&(t[cA]=e.maxOutputTokens),"frequencyPenalty"in e&&typeof e.frequencyPenalty=="number"&&(t[Hy]=e.frequencyPenalty),"presencePenalty"in e&&typeof e.presencePenalty=="number"&&(t[uA]=e.presencePenalty),t}function H9t(e,t,n){let r={[Fy]:Y1e,[oa]:e,[At]:"auto.ai.google_genai"};if(t){if(r[us]=$1e(t,n),"config"in t&&typeof t.config=="object"&&t.config){let i=t.config;if(Object.assign(r,j9t(i)),"tools"in i&&Array.isArray(i.tools)){let s=i.tools.flatMap(o=>o.functionDeclarations);r[jp]=JSON.stringify(s)}}}else r[us]=$1e({},n);return r}function eUe(e,t,n){if(n){let i=t.contents;i!=null&&e.setAttribute(lA,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(...hA(t.config.systemInstruction,"system")),"history"in t&&r.push(...hA(t.history,"user")),"contents"in t&&r.push(...hA(t.contents,"user")),"message"in t&&r.push(...hA(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(Gy(s))})}}function q9t(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 tUe(e,t,n,r,i){let s=t===MQ,o=n.operation==="embeddings";return new Proxy(e,{apply(a,c,u){let l=n.operation,d=u[0],f=H9t(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&&eUe(h,d,o);let m=await a.apply(r,u);return J1e(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&&eUe(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&&q9t(h,m,i.recordOutputs)})))}})}function LQ(e,t="",n){return new Proxy(e,{get:(r,i,s)=>{let o=Reflect.get(r,i,s),a=dA(t,String(i)),c=K1e[a];if(typeof o=="function"&&c){if(a===MQ){let u=tUe(o,a,c,r,n);return function(...d){let f=u(...d);return f&&typeof f=="object"?LQ(f,Z1e,n):f}}return tUe(o,a,c,r,n)}return typeof o=="function"?o.bind(r):o&&typeof o=="object"?LQ(o,a,n):o}})}function BH(e,t){return LQ(e,"",Hp(t))}var nUe=v(()=>{ul();Lo();My();oH();Xa();hP();qp();DQ();X1e();Q1e()});var zH,GE,rUe,GH=v(()=>{zH="LangChain",GE="auto.ai.langchain",rUe={human:"user",ai:"assistant",assistant:"assistant",system:"system",function:"function",tool:"tool"}});function Rm(e){if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function mA(e){if(Array.isArray(e))try{let t=e.map(n=>n&&typeof n=="object"&&zy(n)?qE(n):n);return JSON.stringify(t)}catch{return String(e)}return Rm(e)}function SP(e){let t=e.toLowerCase();return rUe[t]??t}function iUe(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 UQ(e){if(!(!e||Array.isArray(e)))return e.invocation_params}function bP(e){return e.map(t=>{let n=t._getType;if(typeof n=="function"){let i=n.call(t);return{role:SP(i),content:mA(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"?iUe(s):"user";return{role:SP(o),content:mA(t.kwargs?.content)}}if(t.type){let i=String(t.type).toLowerCase();return{role:SP(i),content:mA(t.content)}}if(t.role)return{role:SP(String(t.role)),content:mA(t.content)};let r=t.constructor?.name;return r&&r!=="Object"?{role:SP(iUe(r)),content:mA(t.content)}:{role:"user",content:mA(t.content)}})}function B9t(e,t,n){let r={},i="kwargs"in e?e.kwargs:void 0,s=t?.temperature??n?.ls_temperature??i?.temperature;fl(r,jy,s);let o=t?.max_tokens??n?.ls_max_tokens??i?.max_tokens;fl(r,cA,o);let a=t?.top_p??i?.top_p;fl(r,qy,a);let c=t?.frequency_penalty;fl(r,Hy,c);let u=t?.presence_penalty;return fl(r,uA,u),t&&"stream"in t&&Xl(r,aA,!!t.stream),r}function sUe(e,t,n,r,i){return{[Fy]:Rm(e??"langchain"),[oa]:"chat",[us]:Rm(t),[At]:GE,...B9t(n,r,i)}}function oUe(e,t,n,r,i){let s=i?.ls_provider,o=r?.model??i?.ls_model_name??"unknown",a=sUe(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){Xl(a,Cc,t.length);let c=t.map(u=>({role:"user",content:u}));Xl(a,aa,Rm(c))}return a}function aUe(e,t,n,r,i){let s=i?.ls_provider??e.id?.[2],o=r?.model??i?.ls_model_name??"unknown",a=sUe(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){let c=bP(t.flat()),{systemInstructions:u,filteredMessages:l}=dl(c);u&&Xl(a,ll,u);let d=Array.isArray(l)?l.length:0;Xl(a,Cc,d);let f=Gy(l);Xl(a,aa,Rm(f))}return a}function z9t(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&&Xl(t,Fo,Rm(n))}function G9t(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,ILe,r.cache_creation_input_tokens),r.cache_read_input_tokens!==void 0&&fl(t,xLe,r.cache_read_input_tokens)}}function cUe(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&&Xl(n,du,Rm(u)),z9t(e.generations,n),t){let l=e.generations.flat().map(d=>d.text??d.message?.content).filter(d=>typeof d=="string");l.length>0&&Xl(n,Gs,Rm(l))}}G9t(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&&Xl(n,yo,o);let a=r?.id??s?.id;a&&Xl(n,Jl,a);let c=r?.stop_reason??s?.response_metadata?.finish_reason;return c&&Xl(n,ALe,Rm(c)),n}var Xl,fl,VH=v(()=>{Lo();Xa();gQ();hP();qp();GH();Xl=(e,t,n)=>{n!=null&&(e[t]=n)},fl=(e,t,n)=>{let r=Number(n);Number.isNaN(r)||(e[t]=r)}});function WH(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=UQ(d),m=oUe(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=UQ(d),m=aUe(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=cUe(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:`${GE}.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:`${GE}.chain_error_handler`}})},handleToolStart(o,a,c,u){let l=o.name||"unknown_tool",d={[At]:GE,[HE]:l};t&&(d[PH]=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({[NH]: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:`${GE}.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 uUe=v(()=>{ul();Lo();My();Xa();qp();GH();VH()});var KH,FQ,jQ=v(()=>{KH="LangGraph",FQ="auto.ai.langgraph"});function V9t(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 W9t(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 K9t(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 lUe(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 dUe(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=V9t(o);a&&e.setAttribute(Fo,JSON.stringify(a));let c=bP(o);e.setAttribute(Gs,JSON.stringify(c));let u=0,l=0,d=0;for(let f of o){let p=W9t(f);u+=p.inputTokens,l+=p.outputTokens,d+=p.totalTokens,K9t(e,f)}u>0&&e.setAttribute(di,u),l>0&&e.setAttribute(Ns,l),d>0&&e.setAttribute(Nc,d)}var fUe=v(()=>{Xa();VH()});function HQ(e,t){return new Proxy(e,{apply(n,r,i){return lf({op:"gen_ai.create_agent",name:"create_agent",attributes:{[At]:FQ,[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(sQ,a.name),s.updateName(`create_agent ${a.name}`));let c=o.invoke;return c&&typeof c=="function"&&(o.invoke=Y9t(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 Y9t(e,t,n,r){return new Proxy(e,{apply(i,s,o){return lf({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[At]:FQ,[zt]:OH,[oa]:"invoke_agent"}},async a=>{try{let c=n?.name;c&&typeof c=="string"&&(a.setAttribute(kLe,c),a.setAttribute(sQ,c),a.updateName(`invoke_agent ${c}`));let d=(o.length>1?o[1]:void 0)?.configurable?.thread_id;d&&typeof d=="string"&&a.setAttribute(dP,d);let f=lUe(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=bP(m),{systemInstructions:b,filteredMessages:S}=dl(y);b&&a.setAttribute(ll,b);let E=Gy(S),_=Array.isArray(S)?S.length:0;a.setAttributes({[aa]:JSON.stringify(E),[Cc]:_})}let g=await Reflect.apply(i,s,o);return h&&dUe(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 YH(e,t){return e.compile=HQ(e.compile,Hp(t)),e}var pUe=v(()=>{ul();Lo();My();Xa();hP();qp();VH();jQ();fUe()});function EP(e){if(e!==void 0)return e>=400&&e<500?"warning":e>=500?"error":void 0}var hUe=v(()=>{});function _P(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 mUe=v(()=>{});function SUe(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 bUe(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=CCe(o[2]),p=o[5]==="native";!f&&o[5]&&!p&&(f=o[5]);let h=f?Z9t(f):void 0;return{filename:h??f,module:h&&e?.(h),function:u,lineno:gUe(o[3]),colno:gUe(o[4]),in_app:SUe(f||"",p)}}if(i.match(t))return{filename:i}}}function qQ(e){return[90,bUe(e)]}function gUe(e){return parseInt(e||"",10)||void 0}function Z9t(e){try{return decodeURI(e)}catch{return}}var EUe=v(()=>{MR()});var fu,_Ue=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(()=>{WR();iMe();My();Em();vX();RX();sH();Lo();ul();go();XJ();zR();NDe();gH();LX();CDe();MDe();ZO();oH();Oc();KR();UDe();FDe();HDe();qDe();KDe();JX();JDe();QDe();iLe();uLe();yLe();bLe();ELe();_Le();UX();y1e();IQ();D1e();FH();W1e();OQ();nUe();DQ();uUe();GH();pUe();jQ();hUe();Wa();Ka();_r();Lp();nf();hLe();mUe();MR();EUe();vy();Yj();_m();VO();LDe();_Ue();Iy();Pj();Ey()});function rt(e,t,n){return n?EYt(e,t,n):bYt(e,t)}function bYt(e,t){return Object.assign(n=>{let r=TP[e];if(r)return n&&r.setConfig(n),r;let i=t(n);return TP[e]=i,(0,BQ.registerInstrumentations)({instrumentations:[i]}),i},{id:e})}function EYt(e,t,n){return Object.assign(r=>{let i=n(r),s=TP[e];if(s)return s.setConfig(i),s;let o=new t(i);return TP[e]=o,(0,BQ.registerInstrumentations)({instrumentations:[o]}),o},{id:e})}function vP(e){let t=!1,n=[];if(!_Yt(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 _Yt(e){return typeof e._wrap=="function"}var BQ,TP,ZH=v(()=>{BQ=Re(Jt(),1),TP={}});var Qt,ff=v(()=>{Qt=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var JH,TUe=v(()=>{JH="@sentry/instrumentation-http"});function vUe(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 RUe=v(()=>{st();ff()});import{subscribe as TYt}from"node:diagnostics_channel";function kUe(e,t){zs(e,"_startSpanCallback",new WeakRef(t))}function RYt(e,{ignoreRequestBody:t,maxRequestBodySize:n,sessions:r,sessionFlushingDelayMS:i}){let s=e.emit;if(wUe.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&&Z.log(GQ,"Handling incoming request");let d=vn().clone(),f=u[1],p=u[2],h=lP(f),m=f.ip||f.socket?.remoteAddress,g=f.url||"/";n!=="none"&&!t?.(g,f)&&vUe(f,d,n,GQ),d.setSDKProcessingMetadata({normalizedRequest:h,ipAddress:m});let y=(f.method||"GET").toUpperCase(),b=vm(g),S=`${y} ${b}`;return d.setTransactionName(S),r&&l&&AYt(l,{requestIsolationScope:d,response:p,sessionFlushingDelayMS:i??6e4}),zO(d,()=>{let E={traceId:Ya(),sampleRand:Do(),propagationSpanId:Za()};Fn().setPropagationContext({...E}),d.setPropagationContext({...E});let _=Qd.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)})})}});wUe.add(o),e.emit=o}function AYt(e,{requestIsolationScope:t,response:n,sessionFlushingDelayMS:r}){t.setSDKProcessingMetadata({requestSession:{status:"ok"}}),n.once("close",()=>{let i=t.getScopeData().sdkProcessingMetadata.requestSession;if(e&&i){Qt&&Z.log(`Recorded request session with status: ${i.status}`);let s=new Date;s.setSeconds(0,0);let o=s.toISOString(),a=zQ.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};zQ.set(e,u);let l=()=>{clearTimeout(f),d(),zQ.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 AUe,GQ,zQ,wUe,vYt,RP,XH=v(()=>{Me();st();ff();RUe();AUe=il("sentry_http_server_instrumented"),GQ="Http.Server",zQ=new Map,wUe=new WeakSet;vYt=((e={})=>{let t={sessions:e.sessions??!0,sessionFlushingDelayMS:e.sessionFlushingDelayMS??6e4,maxRequestBodySize:e.maxRequestBodySize??"medium",ignoreRequestBody:e.ignoreRequestBody};return{name:GQ,setupOnce(){TYt("http.server.request.start",(r=>{RYt(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`.")}}}),RP=vYt});import{errorMonitor as wYt}from"node:events";function IYt(e){return e.headers["next-router-prefetch"]==="1"}function xYt(e){let t=vm(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 OYt(e,{ignoreStaticAssets:t,ignoreIncomingRequests:n}){if((0,Am.isTracingSuppressed)(Ve.active()))return!0;let r=e.url,i=e.method?.toUpperCase();return!!(i==="OPTIONS"||i==="HEAD"||!r||t&&i==="GET"&&xYt(r)||n?.(r,e))}function PYt(e){let t=NYt(e.headers);return t==null?{}:CYt(e.headers)?{"http.request_content_length":t}:{"http.request_content_length_uncompressed":t}}function NYt(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}function CYt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}function MYt(e,t){let{socket:n}=e,{statusCode:r,statusMessage:i}=t,s={[lm]:r,[yE]:r,"http.status_text":i?.toUpperCase()},o=(0,Am.getRPCMetadata)(Ve.active());if(n){let{localAddress:a,localPort:c,remoteAddress:u,remotePort:l}=n;s[l7]=a,s[d7]=c,s[u7]=u,s["net.peer.port"]=l}if(s[yE]=r,s["http.status_text"]=(i||"").toUpperCase(),o?.type===Am.RPCType.HTTP&&o.route!==void 0){let a=o.route;s[dm]=a}return s}function DYt(e,t){return t.some(n=>{if(typeof n=="number")return n===e;let[r,i]=n;return e>=r&&e<=i})}var Am,IUe,kYt,AP,VQ=v(()=>{Me();Am=Re(pr(),1);Nn();st();ff();XH();IUe="Http.ServerSpans",kYt=((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:IUe,setup(c){typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__||c.on("httpServerRequest",(u,l,d)=>{let f=u,p=l;kUe(f,m=>{if(OYt(f,{ignoreStaticAssets:t,ignoreIncomingRequests:n}))return Qt&&Z.log(IUe,"Skipping span creation for incoming request",f.url),m();let g=d.url||f.url||"/",y=uP(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:vm(g),N=`${k} ${P}`,C=A.startSpan(N,{kind:$r.SERVER,attributes:{[zt]:"http.server",[At]:"auto.http.otel.http","sentry.http.prefetch":IYt(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",...PYt(f),...EH(d.headers||{},c.getOptions().sendDefaultPii??!1)}});s?.(C,f),o?.(C,p),a?.(C,f,p),i?.(C,f,p);let L={type:Am.RPCType.HTTP,span:C};return Ve.with((0,Am.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=MYt(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(ym(p.statusCode))}),p.on(wYt,()=>{let $=ym(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"&&DYt(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."))}}}),AP=kYt});function wP(e,t){if(!e)return t;let n=PE(e),r=PE(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 Vj(a)}var WQ=v(()=>{st()});function xUe(e,t){let n=LYt(e),r=t?.statusCode,i=EP(r);Zl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function QH(e,t){let n=$H(e),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=FE(n,r,t)?oA({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(gA,"Added sentry-trace header to outgoing request")}catch(l){Qt&&Z.error(gA,"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(gA,"Added traceparent header to outgoing request")}catch(l){Qt&&Z.error(gA,"Failed to add traceparent header to outgoing request:",Mp(l)?l.message:"Unknown error")}if(a){let l=e.getHeader("baggage"),d=wP(l,a);if(d)try{e.setHeader("baggage",d),Qt&&Z.log(gA,"Added baggage header to outgoing request")}catch(f){Qt&&Z.error(gA,"Failed to add baggage header to outgoing request:",Mp(f)?f.message:"Unknown error")}}}}function LYt(e){try{let t=e.getHeader("host")||e.host,n=new URL(e.path,`${e.protocol}//${t}`),r=Ly(n.toString()),i={url:Uy(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 OUe(e){return{method:e.method,protocol:e.protocol,host:e.host,hostname:e.host,path:e.path,headers:e.getHeaders()}}function $H(e){let t=e.getHeader("host")||e.host,n=e.protocol,r=e.path;return`${n}//${t}${r}`}var gA,PUe=v(()=>{st();ff();WQ();gA="@sentry/instrumentation-http"});import{subscribe as KQ,unsubscribe as YQ}from"node:diagnostics_channel";import{errorMonitor as NUe}from"node:events";function UYt(e){let t=$H(e),[n,r]=YX(uP(t),"client","auto.http.otel.http",e),i=e.getHeader("user-agent");return[n,{[zt]:"http.client","otel.kind":"CLIENT",[C7]:i,[py]:t,"http.url":t,"http.method":e.method,"http.target":e.path||"/","net.peer.name":e.host,"http.host":e.getHeader("host"),...r}]}function FYt(e){let{statusCode:t,statusMessage:n,httpVersion:r,socket:i}=e,s=r.toUpperCase()!=="QUIC"?"ip_tcp":"ip_udp",o={[lm]:t,[k7]:r,"http.flavor":r,[I7]:s,"net.transport":s,"http.status_text":n?.toUpperCase(),"http.status_code":t,...jYt(e)};if(i){let{remoteAddress:a,remotePort:c}=i;o[A7]=a,o[w7]=c,o["net.peer.ip"]=a,o["net.peer.port"]=c}return o}function jYt(e){let t=HYt(e.headers);return t==null?{}:qYt(e.headers)?{[p7]:t}:{[h7]:t}}function HYt(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 qYt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}var CUe,kP,VE,ZQ=v(()=>{Me();CUe=Re(pr(),1),kP=Re(Jt(),1);Nn();st();ff();TUe();PUe();VE=class extends kP.InstrumentationBase{constructor(t={}){super(JH,Cn,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,KQ("http.client.response.finish",n),KQ("http.client.request.error",r),(this.getConfig().propagateTraceInOutgoingRequests||this.getConfig().createSpansForOutgoingRequests)&&KQ("http.client.request.created",i)),a),o=()=>{YQ("http.client.response.finish",n),YQ("http.client.request.error",r),YQ("http.client.request.created",i)};return[new kP.InstrumentationNodeModuleDefinition("http",["*"],s,o),new kP.InstrumentationNodeModuleDefinition("https",["*"],s,o)]}_startSpanForOutgoingRequest(t){let n=t.once,[r,i]=UYt(t),s=cH({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=FYt(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}:ym(u.statusCode);c(p)};u.on("end",()=>{d()}),u.on(NUe,f=>{this._diag.debug("outgoingRequest on response error()",f),d(!0)})}),t.on("close",()=>{c({code:as.UNSET})}),t.on(NUe,u=>{this._diag.debug("outgoingRequest on request error()",u),c({code:as.ERROR})}),s}_onOutgoingRequestFinish(t,n){Qt&&Z.log(JH,"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&&xUe(t,n)}_onOutgoingRequestCreated(t){Qt&&Z.log(JH,"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,()=>{QH(t,this._propagationDecisionMap)})}else i&&QH(t,this._propagationDecisionMap)}else i&&QH(t,this._propagationDecisionMap)}_shouldIgnoreOutgoingRequest(t){if((0,CUe.isTracingSuppressed)(Ve.active()))return!0;let n=this.getConfig().ignoreOutgoingRequests;if(!n)return!1;let r=OUe(t),i=$H(t);return n(i,r)}}});var MUe,BYt,DUe,LUe=v(()=>{ZH();XH();VQ();ZQ();MUe="Http",BYt=rt(`${MUe}.sentry`,e=>new VE(e)),DUe=(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=RP(t),s=AP(n),o=e.spans??!1,a=e.disableIncomingRequestSpans??!1,c=o&&!a;return{name:MUe,setup(u){c&&s.setup(u)},setupOnce(){i.setupOnce(),BYt(r)},processEvent(u){return s.processEvent(u)}}}});var pf,wm,IP,yA=v(()=>{st();pf=ZJ(process.versions.node),wm=pf.major,IP=pf.minor});function UUe(e,t){let n=tq(e.origin,e.path),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=FE(n,r,t)?oA({propagateTraceparent:i}):void 0;if(!s)return;let{"sentry-trace":o,baggage:a,traceparent:c}=s,u=Array.isArray(e.headers)?e.headers:GYt(e.headers);if(XQ(u,JQ),XQ(u,eq),i&&XQ(u,zYt),!(QQ(u,JQ)!==-1)){o&&u.push(JQ,o),c&&QQ(u,"traceparent")===-1&&u.push("traceparent",c);let d=QQ(u,eq);if(a&&d===-1)u.push(eq,a);else if(a){let f=u[d+1],p=wP(f,a);p&&(u[d+1]=p)}}Array.isArray(e.headers)||(e.headers=VYt(u))}function GYt(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 VYt(e){let t=[];for(let n=0;nr%2===0&&n===t)}function LUe(e,t){let n=VYt(e),r=t.statusCode,i=EP(r);Zl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function VYt(e){try{let t=tq(e.origin,e.path),n=Ly(t),r={url:Uy(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 tq(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 JQ,eq,BYt,UUe=v(()=>{st();WQ();JQ="sentry-trace",eq="baggage",BYt="traceparent"});import*as SA from"diagnostics_channel";var FUe,jUe,WE,$Q=v(()=>{Me();FUe=Re(pr(),1),jUe=Re(Jt(),1);st();yA();UUe();WE=class extends jUe.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-node-fetch",Cn,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&&DUe(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&&LUe(t,n)}_subscribeToChannel(t,n){let r=wm>18||wm===18&&IP>=19,i;if(r)SA.subscribe?.(t,n),i=()=>SA.unsubscribe?.(t,n);else{let s=SA.channel(t);s.subscribe(n),i=()=>s.unsubscribe(n)}this._channelSubs.push({name:t,unsubscribe:i})}_shouldIgnoreOutgoingRequest(t){if((0,FUe.isTracingSuppressed)(Ve.active()))return!0;let n=tq(t.origin,t.path),r=this.getConfig().ignoreOutgoingRequests;return typeof r!="function"||!n?!1:r(n)}}});var WYt,KYt,YYt,HUe,qUe=v(()=>{ZH();$Q();WYt="NodeFetch",KYt=rt(`${WYt}.sentry`,WE,e=>e),YYt=((e={})=>({name:"NodeFetch",setupOnce(){KYt(e)}})),HUe=YYt});var t$=w(nq=>{"use strict";Object.defineProperty(nq,"__esModule",{value:!0});nq.AbstractAsyncHooksContextManager=void 0;var ZYt=Y("events"),JYt=["addListener","on","once","prependListener","prependOnceListener"],e$=class{bind(t,n){return n instanceof ZYt.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),JYt.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};nq.AbstractAsyncHooksContextManager=e$});var BUe=w(rq=>{"use strict";Object.defineProperty(rq,"__esModule",{value:!0});rq.AsyncHooksContextManager=void 0;var XYt=(Me(),ke(Ze)),QYt=Y("async_hooks"),$Yt=t$(),n$=class extends $Yt.AbstractAsyncHooksContextManager{_asyncHook;_contexts=new Map;_stack=[];constructor(){super(),this._asyncHook=QYt.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]??XYt.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()}};rq.AsyncHooksContextManager=n$});var zUe=w(iq=>{"use strict";Object.defineProperty(iq,"__esModule",{value:!0});iq.AsyncLocalStorageContextManager=void 0;var eZt=(Me(),ke(Ze)),tZt=Y("async_hooks"),nZt=t$(),r$=class extends nZt.AbstractAsyncHooksContextManager{_asyncLocalStorage;constructor(){super(),this._asyncLocalStorage=new tZt.AsyncLocalStorage}active(){return this._asyncLocalStorage.getStore()??eZt.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}};iq.AsyncLocalStorageContextManager=r$});var GUe=w(bA=>{"use strict";Object.defineProperty(bA,"__esModule",{value:!0});bA.AsyncLocalStorageContextManager=bA.AsyncHooksContextManager=void 0;var rZt=BUe();Object.defineProperty(bA,"AsyncHooksContextManager",{enumerable:!0,get:function(){return rZt.AsyncHooksContextManager}});var iZt=zUe();Object.defineProperty(bA,"AsyncLocalStorageContextManager",{enumerable:!0,get:function(){return iZt.AsyncLocalStorageContextManager}})});var i$=w(EA=>{"use strict";Object.defineProperty(EA,"__esModule",{value:!0});EA._clearDefaultServiceNameCache=EA.defaultServiceName=void 0;var xP;function sZt(){if(xP===void 0)try{let e=globalThis.process.argv0;xP=e?`unknown_service:${e}`:"unknown_service"}catch{xP="unknown_service"}return xP}EA.defaultServiceName=sZt;function oZt(){xP=void 0}EA._clearDefaultServiceNameCache=oZt});var VUe=w(sq=>{"use strict";Object.defineProperty(sq,"__esModule",{value:!0});sq.isPromiseLike=void 0;var aZt=e=>e!==null&&typeof e=="object"&&typeof e.then=="function";sq.isPromiseLike=aZt});var a$=w(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});Bp.defaultResource=Bp.emptyResource=Bp.resourceFromDetectedResource=Bp.resourceFromAttributes=void 0;var PP=(Me(),ke(Ze)),s$=pr(),KE=(Nn(),ke(Mr)),cZt=i$(),OP=VUe(),oq=class e{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(t,n){let r=new e({},n);return r._rawAttributes=WUe(t),r._asyncAttributesPending=t.filter(([i,s])=>(0,OP.isPromiseLike)(s)).length>0,r}constructor(t,n){let r=t.attributes??{};this._rawAttributes=Object.entries(r).map(([i,s])=>((0,OP.isPromiseLike)(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=WUe(this._rawAttributes),this._schemaUrl=fZt(n?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let t=0;t(0,OP.isPromiseLike)(n)?[t,n.catch(r=>{PP.diag.debug("promise rejection for resource attribute: %s - %s",t,r)})]:[t,n])}function fZt(e){if(typeof e=="string"||e===void 0)return e;PP.diag.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",e)}function pZt(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;PP.diag.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',n,r)}});var YUe=w(aq=>{"use strict";Object.defineProperty(aq,"__esModule",{value:!0});aq.detectResources=void 0;var KUe=(Me(),ke(Ze)),c$=a$(),hZt=(e={})=>(e.detectors||[]).map(n=>{try{let r=(0,c$.resourceFromDetectedResource)(n.detect(e));return KUe.diag.debug(`${n.constructor.name} found resource.`,r),r}catch(r){return KUe.diag.debug(`${n.constructor.name} failed: ${r.message}`),(0,c$.emptyResource)()}}).reduce((n,r)=>n.merge(r),(0,c$.emptyResource)());aq.detectResources=hZt});var JUe=w(cq=>{"use strict";Object.defineProperty(cq,"__esModule",{value:!0});cq.envDetector=void 0;var mZt=(Me(),ke(Ze)),gZt=(Nn(),ke(Mr)),ZUe=pr(),u$=class{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect(t){let n={},r=(0,ZUe.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),i=(0,ZUe.getStringFromEnv)("OTEL_SERVICE_NAME");if(r)try{let s=this._parseResourceAttributes(r);Object.assign(n,s)}catch(s){mZt.diag.debug(`EnvDetector failed: ${s instanceof Error?s.message:s}`)}return i&&(n[gZt.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}};cq.envDetector=new u$});var NP=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 lq=w(uq=>{"use strict";Object.defineProperty(uq,"__esModule",{value:!0});uq.execAsync=void 0;var yZt=Y("child_process"),SZt=Y("util");uq.execAsync=SZt.promisify(yZt.exec)});var XUe=w(dq=>{"use strict";Object.defineProperty(dq,"__esModule",{value:!0});dq.getMachineId=void 0;var bZt=lq(),EZt=(Me(),ke(Ze));async function _Zt(){try{let t=(await(0,bZt.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){EZt.diag.debug(`error reading machine id: ${e}`)}}dq.getMachineId=_Zt});var QUe=w(fq=>{"use strict";Object.defineProperty(fq,"__esModule",{value:!0});fq.getMachineId=void 0;var TZt=Y("fs"),vZt=(Me(),ke(Ze));async function RZt(){let e=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let t of e)try{return(await TZt.promises.readFile(t,{encoding:"utf8"})).trim()}catch(n){vZt.diag.debug(`error reading machine id: ${n}`)}}fq.getMachineId=RZt});var eFe=w(pq=>{"use strict";Object.defineProperty(pq,"__esModule",{value:!0});pq.getMachineId=void 0;var AZt=Y("fs"),wZt=lq(),$Ue=(Me(),ke(Ze));async function kZt(){try{return(await AZt.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(e){$Ue.diag.debug(`error reading machine id: ${e}`)}try{return(await(0,wZt.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(e){$Ue.diag.debug(`error reading machine id: ${e}`)}}pq.getMachineId=kZt});var nFe=w(hq=>{"use strict";Object.defineProperty(hq,"__esModule",{value:!0});hq.getMachineId=void 0;var tFe=Y("process"),IZt=lq(),xZt=(Me(),ke(Ze));async function OZt(){let e="QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",t="%windir%\\System32\\REG.exe";tFe.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in tFe.env&&(t="%windir%\\sysnative\\cmd.exe /c "+t);try{let r=(await(0,IZt.execAsync)(`${t} ${e}`)).stdout.split("REG_SZ");if(r.length===2)return r[1].trim()}catch(n){xZt.diag.debug(`error reading machine id: ${n}`)}}hq.getMachineId=OZt});var rFe=w(mq=>{"use strict";Object.defineProperty(mq,"__esModule",{value:!0});mq.getMachineId=void 0;var PZt=(Me(),ke(Ze));async function NZt(){PZt.diag.debug("could not read machine-id: unsupported platform")}mq.getMachineId=NZt});var iFe=w(gq=>{"use strict";Object.defineProperty(gq,"__esModule",{value:!0});gq.getMachineId=void 0;var CZt=Y("process"),YE;async function MZt(){if(!YE)switch(CZt.platform){case"darwin":YE=(await Promise.resolve().then(()=>Re(XUe()))).getMachineId;break;case"linux":YE=(await Promise.resolve().then(()=>Re(QUe()))).getMachineId;break;case"freebsd":YE=(await Promise.resolve().then(()=>Re(eFe()))).getMachineId;break;case"win32":YE=(await Promise.resolve().then(()=>Re(nFe()))).getMachineId;break;default:YE=(await Promise.resolve().then(()=>Re(rFe()))).getMachineId;break}return YE()}gq.getMachineId=MZt});var l$=w(_A=>{"use strict";Object.defineProperty(_A,"__esModule",{value:!0});_A.normalizeType=_A.normalizeArch=void 0;var DZt=e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}};_A.normalizeArch=DZt;var LZt=e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}};_A.normalizeType=LZt});var oFe=w(yq=>{"use strict";Object.defineProperty(yq,"__esModule",{value:!0});yq.hostDetector=void 0;var d$=NP(),sFe=Y("os"),UZt=iFe(),FZt=l$(),f$=class{detect(t){return{attributes:{[d$.ATTR_HOST_NAME]:(0,sFe.hostname)(),[d$.ATTR_HOST_ARCH]:(0,FZt.normalizeArch)((0,sFe.arch)()),[d$.ATTR_HOST_ID]:(0,UZt.getMachineId)()}}}};yq.hostDetector=new f$});var uFe=w(Sq=>{"use strict";Object.defineProperty(Sq,"__esModule",{value:!0});Sq.osDetector=void 0;var aFe=NP(),cFe=Y("os"),jZt=l$(),p$=class{detect(t){return{attributes:{[aFe.ATTR_OS_TYPE]:(0,jZt.normalizeType)((0,cFe.platform)()),[aFe.ATTR_OS_VERSION]:(0,cFe.release)()}}}};Sq.osDetector=new p$});var lFe=w(bq=>{"use strict";Object.defineProperty(bq,"__esModule",{value:!0});bq.processDetector=void 0;var HZt=(Me(),ke(Ze)),km=NP(),qZt=Y("os"),h$=class{detect(t){let n={[km.ATTR_PROCESS_PID]:process.pid,[km.ATTR_PROCESS_EXECUTABLE_NAME]:process.title,[km.ATTR_PROCESS_EXECUTABLE_PATH]:process.execPath,[km.ATTR_PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[km.ATTR_PROCESS_RUNTIME_VERSION]:process.versions.node,[km.ATTR_PROCESS_RUNTIME_NAME]:"nodejs",[km.ATTR_PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};process.argv.length>1&&(n[km.ATTR_PROCESS_COMMAND]=process.argv[1]);try{let r=qZt.userInfo();n[km.ATTR_PROCESS_OWNER]=r.username}catch(r){HZt.diag.debug(`error obtaining process owner: ${r}`)}return{attributes:n}}};bq.processDetector=new h$});var dFe=w(Eq=>{"use strict";Object.defineProperty(Eq,"__esModule",{value:!0});Eq.serviceInstanceIdDetector=void 0;var BZt=NP(),zZt=Y("crypto"),m$=class{detect(t){return{attributes:{[BZt.ATTR_SERVICE_INSTANCE_ID]:(0,zZt.randomUUID)()}}}};Eq.serviceInstanceIdDetector=new m$});var fFe=w(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});zp.serviceInstanceIdDetector=zp.processDetector=zp.osDetector=zp.hostDetector=void 0;var GZt=oFe();Object.defineProperty(zp,"hostDetector",{enumerable:!0,get:function(){return GZt.hostDetector}});var VZt=uFe();Object.defineProperty(zp,"osDetector",{enumerable:!0,get:function(){return VZt.osDetector}});var WZt=lFe();Object.defineProperty(zp,"processDetector",{enumerable:!0,get:function(){return WZt.processDetector}});var KZt=dFe();Object.defineProperty(zp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return KZt.serviceInstanceIdDetector}})});var pFe=w(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});Gp.serviceInstanceIdDetector=Gp.processDetector=Gp.osDetector=Gp.hostDetector=void 0;var _q=fFe();Object.defineProperty(Gp,"hostDetector",{enumerable:!0,get:function(){return _q.hostDetector}});Object.defineProperty(Gp,"osDetector",{enumerable:!0,get:function(){return _q.osDetector}});Object.defineProperty(Gp,"processDetector",{enumerable:!0,get:function(){return _q.processDetector}});Object.defineProperty(Gp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return _q.serviceInstanceIdDetector}})});var hFe=w(TA=>{"use strict";Object.defineProperty(TA,"__esModule",{value:!0});TA.noopDetector=TA.NoopDetector=void 0;var Tq=class{detect(){return{attributes:{}}}};TA.NoopDetector=Tq;TA.noopDetector=new Tq});var mFe=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 YZt=JUe();Object.defineProperty(pu,"envDetector",{enumerable:!0,get:function(){return YZt.envDetector}});var vq=pFe();Object.defineProperty(pu,"hostDetector",{enumerable:!0,get:function(){return vq.hostDetector}});Object.defineProperty(pu,"osDetector",{enumerable:!0,get:function(){return vq.osDetector}});Object.defineProperty(pu,"processDetector",{enumerable:!0,get:function(){return vq.processDetector}});Object.defineProperty(pu,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return vq.serviceInstanceIdDetector}});var ZZt=hFe();Object.defineProperty(pu,"noopDetector",{enumerable:!0,get:function(){return ZZt.noopDetector}})});var y$=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 JZt=YUe();Object.defineProperty(ls,"detectResources",{enumerable:!0,get:function(){return JZt.detectResources}});var CP=mFe();Object.defineProperty(ls,"envDetector",{enumerable:!0,get:function(){return CP.envDetector}});Object.defineProperty(ls,"hostDetector",{enumerable:!0,get:function(){return CP.hostDetector}});Object.defineProperty(ls,"osDetector",{enumerable:!0,get:function(){return CP.osDetector}});Object.defineProperty(ls,"processDetector",{enumerable:!0,get:function(){return CP.processDetector}});Object.defineProperty(ls,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return CP.serviceInstanceIdDetector}});var g$=a$();Object.defineProperty(ls,"resourceFromAttributes",{enumerable:!0,get:function(){return g$.resourceFromAttributes}});Object.defineProperty(ls,"defaultResource",{enumerable:!0,get:function(){return g$.defaultResource}});Object.defineProperty(ls,"emptyResource",{enumerable:!0,get:function(){return g$.emptyResource}});var XZt=i$();Object.defineProperty(ls,"defaultServiceName",{enumerable:!0,get:function(){return XZt.defaultServiceName}})});var gFe=w(Rq=>{"use strict";Object.defineProperty(Rq,"__esModule",{value:!0});Rq.ExceptionEventName=void 0;Rq.ExceptionEventName="exception"});var yFe=w(Aq=>{"use strict";Object.defineProperty(Aq,"__esModule",{value:!0});Aq.SpanImpl=void 0;var ua=(Me(),ke(Ze)),la=pr(),ZE=(Nn(),ke(Mr)),QZt=gFe(),S$=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[ZE.ATTR_EXCEPTION_MESSAGE]=t:t&&(t.code?r[ZE.ATTR_EXCEPTION_TYPE]=t.code.toString():t.name&&(r[ZE.ATTR_EXCEPTION_TYPE]=t.name),t.message&&(r[ZE.ATTR_EXCEPTION_MESSAGE]=t.message),t.stack&&(r[ZE.ATTR_EXCEPTION_STACKTRACE]=t.stack)),r[ZE.ATTR_EXCEPTION_TYPE]||r[ZE.ATTR_EXCEPTION_MESSAGE]?this.addEvent(QZt.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}};Aq.SpanImpl=S$});var vA=w(MP=>{"use strict";Object.defineProperty(MP,"__esModule",{value:!0});MP.SamplingDecision=void 0;var $Zt;(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})($Zt=MP.SamplingDecision||(MP.SamplingDecision={}))});var kq=w(wq=>{"use strict";Object.defineProperty(wq,"__esModule",{value:!0});wq.AlwaysOffSampler=void 0;var e6t=vA(),b$=class{shouldSample(){return{decision:e6t.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};wq.AlwaysOffSampler=b$});var xq=w(Iq=>{"use strict";Object.defineProperty(Iq,"__esModule",{value:!0});Iq.AlwaysOnSampler=void 0;var t6t=vA(),E$=class{shouldSample(){return{decision:t6t.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};Iq.AlwaysOnSampler=E$});var v$=w(Pq=>{"use strict";Object.defineProperty(Pq,"__esModule",{value:!0});Pq.ParentBasedSampler=void 0;var Oq=(Me(),ke(Ze)),n6t=pr(),SFe=kq(),_$=xq(),T$=class{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor(t){this._root=t.root,this._root||((0,n6t.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new _$.AlwaysOnSampler),this._remoteParentSampled=t.remoteParentSampled??new _$.AlwaysOnSampler,this._remoteParentNotSampled=t.remoteParentNotSampled??new SFe.AlwaysOffSampler,this._localParentSampled=t.localParentSampled??new _$.AlwaysOnSampler,this._localParentNotSampled=t.localParentNotSampled??new SFe.AlwaysOffSampler}shouldSample(t,n,r,i,s,o){let a=Oq.trace.getSpanContext(t);return!a||!(0,Oq.isSpanContextValid)(a)?this._root.shouldSample(t,n,r,i,s,o):a.isRemote?a.traceFlags&Oq.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,n,r,i,s,o):this._remoteParentNotSampled.shouldSample(t,n,r,i,s,o):a.traceFlags&Oq.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()}}`}};Pq.ParentBasedSampler=T$});var A$=w(Nq=>{"use strict";Object.defineProperty(Nq,"__esModule",{value:!0});Nq.TraceIdRatioBasedSampler=void 0;var r6t=(Me(),ke(Ze)),bFe=vA(),R$=class{_ratio;_upperBound;constructor(t=0){this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,n){return{decision:(0,r6t.isValidTraceId)(n)&&this._accumulate(n)=1?1:t<=0?0:t}_accumulate(t){let n=0;for(let r=0;r>>0}return n}};Nq.TraceIdRatioBasedSampler=R$});var I$=w(RA=>{"use strict";Object.defineProperty(RA,"__esModule",{value:!0});RA.buildSamplerFromEnv=RA.loadDefaultConfig=void 0;var k$=(Me(),ke(Ze)),Vp=pr(),EFe=kq(),w$=xq(),Cq=v$(),_Fe=A$(),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 Mq=1;function i6t(){return{sampler:vFe(),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}}}RA.loadDefaultConfig=i6t;function vFe(){let e=(0,Vp.getStringFromEnv)("OTEL_TRACES_SAMPLER")??Wp.ParentBasedAlwaysOn;switch(e){case Wp.AlwaysOn:return new w$.AlwaysOnSampler;case Wp.AlwaysOff:return new EFe.AlwaysOffSampler;case Wp.ParentBasedAlwaysOn:return new Cq.ParentBasedSampler({root:new w$.AlwaysOnSampler});case Wp.ParentBasedAlwaysOff:return new Cq.ParentBasedSampler({root:new EFe.AlwaysOffSampler});case Wp.TraceIdRatio:return new _Fe.TraceIdRatioBasedSampler(TFe());case Wp.ParentBasedTraceIdRatio:return new Cq.ParentBasedSampler({root:new _Fe.TraceIdRatioBasedSampler(TFe())});default:return k$.diag.error(`OTEL_TRACES_SAMPLER value "${e}" invalid, defaulting to "${Wp.ParentBasedAlwaysOn}".`),new Cq.ParentBasedSampler({root:new w$.AlwaysOnSampler})}}RA.buildSamplerFromEnv=vFe;function TFe(){let e=(0,Vp.getNumberFromEnv)("OTEL_TRACES_SAMPLER_ARG");return e==null?(k$.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${Mq}.`),Mq):e<0||e>1?(k$.diag.error(`OTEL_TRACES_SAMPLER_ARG=${e} was given, but it is out of range ([0..1]), defaulting to ${Mq}.`),Mq):e}});var x$=w(Ql=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});Ql.reconfigureLimits=Ql.mergeConfig=Ql.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=Ql.DEFAULT_ATTRIBUTE_COUNT_LIMIT=void 0;var RFe=I$(),Dq=pr();Ql.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;Ql.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function s6t(e){let t={sampler:(0,RFe.buildSamplerFromEnv)()},n=(0,RFe.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}Ql.mergeConfig=s6t;function o6t(e){let t=Object.assign({},e.spanLimits);return t.attributeCountLimit=e.spanLimits?.attributeCountLimit??e.generalLimits?.attributeCountLimit??(0,Dq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??(0,Dq.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??Ql.DEFAULT_ATTRIBUTE_COUNT_LIMIT,t.attributeValueLengthLimit=e.spanLimits?.attributeValueLengthLimit??e.generalLimits?.attributeValueLengthLimit??(0,Dq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??(0,Dq.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??Ql.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},e,{spanLimits:t})}Ql.reconfigureLimits=o6t});var AFe=w(Lq=>{"use strict";Object.defineProperty(Lq,"__esModule",{value:!0});Lq.BatchSpanProcessorBase=void 0;var AA=(Me(),ke(Ze)),Im=pr(),O$=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,Im.getNumberFromEnv)("OTEL_BSP_MAX_EXPORT_BATCH_SIZE")??512,this._maxQueueSize=typeof n?.maxQueueSize=="number"?n.maxQueueSize:(0,Im.getNumberFromEnv)("OTEL_BSP_MAX_QUEUE_SIZE")??2048,this._scheduledDelayMillis=typeof n?.scheduledDelayMillis=="number"?n.scheduledDelayMillis:(0,Im.getNumberFromEnv)("OTEL_BSP_SCHEDULE_DELAY")??5e3,this._exportTimeoutMillis=typeof n?.exportTimeoutMillis=="number"?n.exportTimeoutMillis:(0,Im.getNumberFromEnv)("OTEL_BSP_EXPORT_TIMEOUT")??3e4,this._shutdownOnce=new Im.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(AA.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&AA.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&&AA.diag.debug("maxQueueSize reached, dropping spans"),this._droppedSpansCount++;return}this._droppedSpansCount>0&&(AA.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);AA.context.with((0,Im.suppressTracing)(AA.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===Im.ExportResultCode.SUCCESS?t():n(a.error??new Error("BatchSpanProcessor: span export failed"))}),o=null;for(let a=0,c=i.length;a{(0,Im.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,Im.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)}};Lq.BatchSpanProcessorBase=O$});var wFe=w(Uq=>{"use strict";Object.defineProperty(Uq,"__esModule",{value:!0});Uq.BatchSpanProcessor=void 0;var a6t=AFe(),P$=class extends a6t.BatchSpanProcessorBase{onShutdown(){}};Uq.BatchSpanProcessor=P$});var xFe=w(jq=>{"use strict";Object.defineProperty(jq,"__esModule",{value:!0});jq.RandomIdGenerator=void 0;var c6t=8,IFe=16,N$=class{generateTraceId=kFe(IFe);generateSpanId=kFe(c6t)};jq.RandomIdGenerator=N$;var Fq=Buffer.allocUnsafe(IFe);function kFe(e){return function(){for(let n=0;n>>0,n*4);for(let n=0;n0);n++)n===e-1&&(Fq[e-1]=1);return Fq.toString("hex",0,e)}}});var OFe=w(wA=>{"use strict";Object.defineProperty(wA,"__esModule",{value:!0});wA.RandomIdGenerator=wA.BatchSpanProcessor=void 0;var u6t=wFe();Object.defineProperty(wA,"BatchSpanProcessor",{enumerable:!0,get:function(){return u6t.BatchSpanProcessor}});var l6t=xFe();Object.defineProperty(wA,"RandomIdGenerator",{enumerable:!0,get:function(){return l6t.RandomIdGenerator}})});var C$=w(kA=>{"use strict";Object.defineProperty(kA,"__esModule",{value:!0});kA.RandomIdGenerator=kA.BatchSpanProcessor=void 0;var PFe=OFe();Object.defineProperty(kA,"BatchSpanProcessor",{enumerable:!0,get:function(){return PFe.BatchSpanProcessor}});Object.defineProperty(kA,"RandomIdGenerator",{enumerable:!0,get:function(){return PFe.RandomIdGenerator}})});var NFe=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 CFe=w(qq=>{"use strict";Object.defineProperty(qq,"__esModule",{value:!0});qq.TracerMetrics=void 0;var Hq=vA(),DP=NFe(),M$=class{startedSpans;liveSpans;constructor(t){this.startedSpans=t.createCounter(DP.METRIC_OTEL_SDK_SPAN_STARTED,{unit:"{span}",description:"The number of created spans."}),this.liveSpans=t.createUpDownCounter(DP.METRIC_OTEL_SDK_SPAN_LIVE,{unit:"{span}",description:"The number of currently live spans."})}startSpan(t,n){let r=f6t(n);if(this.startedSpans.add(1,{[DP.ATTR_OTEL_SPAN_PARENT_ORIGIN]:d6t(t),[DP.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r}),n===Hq.SamplingDecision.NOT_RECORD)return()=>{};let i={[DP.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r};return this.liveSpans.add(1,i),()=>{this.liveSpans.add(-1,i)}}};qq.TracerMetrics=M$;function d6t(e){return e?e.isRemote?"remote":"local":"none"}function f6t(e){switch(e){case Hq.SamplingDecision.RECORD_AND_SAMPLED:return"RECORD_AND_SAMPLE";case Hq.SamplingDecision.RECORD:return"RECORD_ONLY";case Hq.SamplingDecision.NOT_RECORD:return"DROP"}}});var MFe=w(Bq=>{"use strict";Object.defineProperty(Bq,"__esModule",{value:!0});Bq.VERSION=void 0;Bq.VERSION="2.6.1"});var DFe=w(Gq=>{"use strict";Object.defineProperty(Gq,"__esModule",{value:!0});Gq.Tracer=void 0;var jo=(Me(),ke(Ze)),zq=pr(),p6t=yFe(),h6t=x$(),m6t=C$(),g6t=CFe(),y6t=MFe(),D$=class{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;_tracerMetrics;constructor(t,n,r,i){let s=(0,h6t.mergeConfig)(n);this._sampler=s.sampler,this._generalLimits=s.generalLimits,this._spanLimits=s.spanLimits,this._idGenerator=n.idGenerator||new m6t.RandomIdGenerator,this._resource=r,this._spanProcessor=i,this.instrumentationScope=t;let o=s.meterProvider?s.meterProvider.getMeter("@opentelemetry/sdk-trace",y6t.VERSION):jo.createNoopMeter();this._tracerMetrics=new g6t.TracerMetrics(o)}startSpan(t,n={},r=jo.context.active()){n.root&&(r=jo.trace.deleteSpan(r));let i=jo.trace.getSpan(r);if((0,zq.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,zq.sanitizeAttributes)(S.attributes)})),f=(0,zq.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,zq.sanitizeAttributes)(Object.assign(f,p.attributes));return new p6t.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}};Gq.Tracer=D$});var LFe=w(Vq=>{"use strict";Object.defineProperty(Vq,"__esModule",{value:!0});Vq.MultiSpanProcessor=void 0;var S6t=pr(),L$=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,S6t.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)})}};Vq.MultiSpanProcessor=L$});var UFe=w(JE=>{"use strict";Object.defineProperty(JE,"__esModule",{value:!0});JE.BasicTracerProvider=JE.ForceFlushState=void 0;var b6t=pr(),E6t=y$(),_6t=DFe(),T6t=I$(),v6t=LFe(),R6t=x$(),IA;(function(e){e[e.resolved=0]="resolved",e[e.timeout=1]="timeout",e[e.error=2]="error",e[e.unresolved=3]="unresolved"})(IA=JE.ForceFlushState||(JE.ForceFlushState={}));var U$=class{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor(t={}){let n=(0,b6t.merge)({},(0,T6t.loadDefaultConfig)(),(0,R6t.reconfigureLimits)(t));this._resource=n.resource??(0,E6t.defaultResource)(),this._config=Object.assign({},n,{resource:this._resource});let r=[];t.spanProcessors?.length&&r.push(...t.spanProcessors),this._activeSpanProcessor=new v6t.MultiSpanProcessor(r)}getTracer(t,n,r){let i=`${t}@${n||""}:${r?.schemaUrl||""}`;return this._tracers.has(i)||this._tracers.set(i,new _6t.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=IA.timeout},t);r.forceFlush().then(()=>{clearTimeout(o),s!==IA.timeout&&(s=IA.resolved,i(s))}).catch(a=>{clearTimeout(o),s=IA.error,i(a)})}));return new Promise((r,i)=>{Promise.all(n).then(s=>{let o=s.filter(a=>a!==IA.resolved);o.length>0?i(o):r()}).catch(s=>i([s]))})}shutdown(){return this._activeSpanProcessor.shutdown()}};JE.BasicTracerProvider=U$});var FFe=w(Wq=>{"use strict";Object.defineProperty(Wq,"__esModule",{value:!0});Wq.ConsoleSpanExporter=void 0;var F$=pr(),j$=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,F$.hrTimeToMicroseconds)(t.startTime),duration:(0,F$.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:F$.ExportResultCode.SUCCESS})}};Wq.ConsoleSpanExporter=j$});var HFe=w(Kq=>{"use strict";Object.defineProperty(Kq,"__esModule",{value:!0});Kq.InMemorySpanExporter=void 0;var jFe=pr(),H$=class{_finishedSpans=[];_stopped=!1;export(t,n){if(this._stopped)return n({code:jFe.ExportResultCode.FAILED,error:new Error("Exporter has been stopped")});this._finishedSpans.push(...t),setTimeout(()=>n({code:jFe.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}};Kq.InMemorySpanExporter=H$});var qFe=w(Zq=>{"use strict";Object.defineProperty(Zq,"__esModule",{value:!0});Zq.SimpleSpanProcessor=void 0;var A6t=(Me(),ke(Ze)),Yq=pr(),q$=class{_exporter;_shutdownOnce;_pendingExports;constructor(t){this._exporter=t,this._shutdownOnce=new Yq.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&A6t.TraceFlags.SAMPLED)===0)return;let n=this._doExport(t).catch(r=>(0,Yq.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 Yq.internal._export(this._exporter,[t]);if(n.code!==Yq.ExportResultCode.SUCCESS)throw n.error??new Error(`SimpleSpanProcessor: span export failed (status ${n})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}};Zq.SimpleSpanProcessor=q$});var BFe=w(Jq=>{"use strict";Object.defineProperty(Jq,"__esModule",{value:!0});Jq.NoopSpanProcessor=void 0;var B$=class{onStart(t,n){}onEnd(t){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}};Jq.NoopSpanProcessor=B$});var z$=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 w6t=UFe();Object.defineProperty(ti,"BasicTracerProvider",{enumerable:!0,get:function(){return w6t.BasicTracerProvider}});var zFe=C$();Object.defineProperty(ti,"BatchSpanProcessor",{enumerable:!0,get:function(){return zFe.BatchSpanProcessor}});Object.defineProperty(ti,"RandomIdGenerator",{enumerable:!0,get:function(){return zFe.RandomIdGenerator}});var k6t=FFe();Object.defineProperty(ti,"ConsoleSpanExporter",{enumerable:!0,get:function(){return k6t.ConsoleSpanExporter}});var I6t=HFe();Object.defineProperty(ti,"InMemorySpanExporter",{enumerable:!0,get:function(){return I6t.InMemorySpanExporter}});var x6t=qFe();Object.defineProperty(ti,"SimpleSpanProcessor",{enumerable:!0,get:function(){return x6t.SimpleSpanProcessor}});var O6t=BFe();Object.defineProperty(ti,"NoopSpanProcessor",{enumerable:!0,get:function(){return O6t.NoopSpanProcessor}});var P6t=kq();Object.defineProperty(ti,"AlwaysOffSampler",{enumerable:!0,get:function(){return P6t.AlwaysOffSampler}});var N6t=xq();Object.defineProperty(ti,"AlwaysOnSampler",{enumerable:!0,get:function(){return N6t.AlwaysOnSampler}});var C6t=v$();Object.defineProperty(ti,"ParentBasedSampler",{enumerable:!0,get:function(){return C6t.ParentBasedSampler}});var M6t=A$();Object.defineProperty(ti,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return M6t.TraceIdRatioBasedSampler}});var D6t=vA();Object.defineProperty(ti,"SamplingDecision",{enumerable:!0,get:function(){return D6t.SamplingDecision}})});function $$(e){if("parentSpanId"in e)return e.parentSpanId;if("parentSpanContext"in e)return e.parentSpanContext?.spanId}function eee(e){let t=e;return!!t.attributes&&typeof t.attributes=="object"}function L6t(e){return typeof e.kind=="number"}function U6t(e){return!!e.status}function KFe(e){return!!e.name}function F6t(e){if(!eee(e))return{};let t=e.attributes[py]||e.attributes[gR],n={url:t,"http.method":e.attributes[bE]||e.attributes[_O]};!n["http.method"]&&n.url&&(n["http.method"]="GET");try{if(typeof t=="string"){let r=Ly(t);n.url=Uy(r),r.search&&(n["http.query"]=r.search),r.hash&&(n["http.fragment"]=r.hash)}}catch{}return n}function j6t(e){return L6t(e)?e.kind:$r.INTERNAL}function NA(e){return e.getValue(ree)}function JFe(e,t){return e.setValue(ree,t)}function B6t(e,t){zs(e,ZFe,t)}function UP(e){return e[ZFe]}function OA(e){let{traceFlags:t,traceState:n}=e,r=n?n.get(nee)==="1":!1;if(t===qa.SAMPLED)return!0;if(r)return!1;let i=n?n.get(tee):void 0,s=i?Sm(i):void 0;if(s?.sampled==="true")return!0;if(s?.sampled==="false")return!1}function XFe(e,t,n){let r=t[bE]||t[_O];if(r)return G6t({attributes:t,name:e,kind:n},r);let i=t[SE]||t[o7],s=typeof t[zt]=="string"&&t[zt].startsWith("cache.");if(i&&!s)return z6t({attributes:t,name:e});let o=t[Wi]==="custom"?"custom":"route";if(t[y7])return{...LP(e,t,"route"),op:"rpc"};if(t[g7])return{...LP(e,t,o),op:"message"};let u=t[c7];return u?{...LP(e,t,o),op:u.toString()}:{op:void 0,description:e,source:"custom"}}function QFe(e){let t=eee(e)?e.attributes:{},n=KFe(e)?e.name:"",r=j6t(e);return XFe(n,t,r)}function z6t({attributes:e,name:t}){let n=e[Kl];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[a7];return{op:"db",description:r?r.toString():t,source:"task"}}function G6t({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}=W6t(n,t);if(!s)return{...LP(e,n),op:i.join(".")};let l=n[PA],d=`${r} ${s}`,f=l?`${d} (${V6t(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[Kl],E=!b&&S==null&&(m||!y),{description:_,source:T}=E?{description:f,source:p}:LP(e,n);return{op:i.join("."),description:_,source:T,data:h}}function V6t(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 W6t(e,t){let n=e[f7],r=e[gR]||e[py],i=e[dm],s=typeof r=="string"?Ly(r):void 0,o=s?Uy(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:vm(n),url:o,query:a,fragment:c,hasRoute:!1}:s?{urlPath:o,url:o,query:a,fragment:c,hasRoute:!1}:typeof n=="string"?{urlPath:vm(n),url:o,query:a,fragment:c,hasRoute:!1}:{urlPath:void 0,url:o,query:a,fragment:c,hasRoute:!1}}function LP(e,t,n="custom"){let r=t[Wi]||n,i=t[Kl];return i&&typeof i=="string"?{description:i,source:r}:{description:e,source:r}}function $Fe(e){e.on("createDsc",(t,n)=>{if(!n)return;let s=vt(n).data[Wi],{description:o}=KFe(n)?QFe(n):{description:void 0};if(s!=="url"&&o&&(t.transaction=o),Os()){let a=OA(n.spanContext());t.sampled=a==null?void 0:String(a)}})}function eje(){return jt.getActiveSpan()}function tje({dsc:e,sampled:t}){let n=e?OE(e):void 0,r=new Mc.TraceState,i=n?r.set(tee,n):r;return t===!1?i.set(nee,"1"):i}function rje(){return Array.from(nje)}function tB(e){nje.add(e)}function ije(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:OA(a)}}if(n){let a=n.spanContext();return{dynamicSamplingContext:Ps(n),traceId:a.traceId,spanId:a.spanId,sampled:OA(a)}}let r=t.scope||NA(e)?.scope||Fn(),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 sje(e,{sentryTrace:t,baggage:n}){let r=WO(t,n),{traceId:i,parentSpanId:s,sampled:o,dsc:a}=r,c=ct(),u=Sm(n);if(!s||c&&!lX(c,u?.org_id))return e;let l=X6t({traceId:i,spanId:s,sampled:o,dsc:a});return jt.setSpanContext(e,l)}function K6t(e,t,n){let r=oje(sje(e,t));return Ve.with(r,n)}function oje(e){let t=NA(e),n={scope:t?t.scope:Fn().clone(),isolationScope:t?t.isolationScope:vn()};return JFe(e,n)}function Y6t(e){try{let t=e[G$];return Array.isArray(t)?t.join(","):t}catch{return}}function Z6t(e){try{return e[Xq]}catch{return}}function J6t(e){let t=vt(e).data,n=t[gR]||t[py];if(typeof n=="string")return n;let r=e.spanContext().traceState?.get(YFe);if(r)return r}function X6t({spanId:e,traceId:t,sampled:n,dsc:r}){let i=tje({dsc:r,sampled:n});return{traceId:t,spanId:e,isRemote:!0,traceFlags:n?qa.SAMPLED:qa.NONE,traceState:i}}function aje(e,t,n){let r=uje(),{name:i,parentSpan:s}=e;return hje(s)(()=>{let a=fje(e.scope,e.forceTransaction),u=e.onlyIfParent&&!jt.getSpan(a)?(0,Mc.suppressTracing)(a):a,l=lje(e);if(!Os()){let d=(0,Mc.isTracingSuppressed)(u)?u:(0,Mc.suppressTracing)(u);return Ve.with(d,()=>r.startActiveSpan(i,l,d,f=>(Y$(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=>(Y$(d),uf(()=>t(d),()=>{vt(d).status===void 0&&d.setStatus({code:as.ERROR})},n?()=>d.end():void 0)))})}function Q6t(e,t){return aje(e,t,!0)}function $6t(e,t){return aje(e,n=>t(n,()=>n.end()),!1)}function e5t(e){let t=uje(),{name:n,parentSpan:r}=e;return hje(r)(()=>{let s=fje(e.scope,e.forceTransaction),a=e.onlyIfParent&&!jt.getSpan(s)?(0,Mc.suppressTracing)(s):s,c=lje(e);Os()||(a=(0,Mc.isTracingSuppressed)(a)?a:(0,Mc.suppressTracing)(a));let u=t.startSpan(n,c,a);return Y$(u),u})}function cje(e,t){let n=e?jt.setSpan(Ve.active(),e):jt.deleteSpan(Ve.active());return Ve.with(n,()=>t(Fn()))}function uje(){return ct()?.tracer||jt.getTracer("@sentry/opentelemetry",Cn)}function lje(e){let{startTime:t,attributes:n,kind:r,op:i,links:s}=e,o=typeof t=="number"?dje(t):t;return{attributes:i?{[zt]:i,...n}:n,kind:r,links:s,startTime:o}}function dje(e){return e<9999999999?e*1e3:e}function Y$(e){let t=e.end.bind(e);e.end=n=>t(typeof n=="number"?dje(n):n)}function fje(e,t){let n=t5t(e),r=jt.getSpan(n);if(!r||!t)return n;let i=jt.deleteSpan(n),{spanId:s,traceId:o}=r.spanContext(),a=OA(r.spanContext()),c=cs(r),u=Ps(c),l=tje({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 t5t(e){if(e){let t=UP(e);if(t)return t}return Ve.active()}function n5t(e,t){return K6t(Ve.active(),e,t)}function r5t(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,()=>(Fn().setPropagationContext({traceId:t,sampleRand:Do()}),e()))}function pje(e,t){let n=UP(t),r=n&&jt.getSpan(n),i=r?Ny(r):xE(t);return[r?Ps(r):Fp(e,t),i]}function hje(e){return e!==void 0?t=>cje(e,t):t=>t()}function i5t(e){let t=(0,Mc.suppressTracing)(Ve.active());return Ve.with(t,e)}function mje(e){e.on("preprocessEvent",t=>{let n=eje();if(!n||t.type==="transaction")return;t.contexts={trace:Ny(n),...t.contexts};let r=cs(n);return t.sdkProcessingMetadata={dynamicSamplingContext:Ps(r),...t.sdkProcessingMetadata},t})}function s5t({span:e,scope:t,client:n,propagateTraceparent:r}={}){let i=(t&&UP(t))??Ve.active();if(e){let{scope:l}=of(e);i=l&&UP(l)||jt.setSpan(Ve.active(),e)}let{traceId:s,spanId:o,sampled:a,dynamicSamplingContext:c}=ije(i,{scope:t,client:n}),u={"sentry-trace":Oy(s,o,a),baggage:OE(c)};return r&&(u.traceparent=Py(s,o,a)),u}function gje(){function e(){let a=Ve.active(),c=NA(a);return c||{scope:qR(),isolationScope:Wl()}}function t(a){let c=Ve.active();return Ve.with(c,()=>a(s()))}function n(a,c){let u=UP(a)||Ve.active();return Ve.with(u.setValue(W$,a),()=>c(a))}function r(a){let c=Ve.active();return Ve.with(c.setValue(V$,!0),()=>a(o()))}function i(a,c){let u=Ve.active();return Ve.with(u.setValue(K$,a),()=>c(o()))}function s(){return e().scope}function o(){return e().isolationScope}eX({withScope:t,withSetScope:n,withSetIsolationScope:i,withIsolationScope:r,getCurrentScope:s,getIsolationScope:o,startSpan:Q6t,startSpanManual:$6t,startInactiveSpan:e5t,getActiveSpan:eje,suppressTracing:i5t,getTraceData:s5t,continueTrace:n5t,startNewTrace:r5t,withActiveSpan:cje})}function yje(e){class t extends e{constructor(...r){super(...r),tB("SentryContextManager")}with(r,i,s,...o){let a=NA(r),c=a?.scope||Fn(),u=a?.isolationScope||vn(),l=r.getValue(V$)===!0,d=r.getValue(W$),f=r.getValue(K$),p=d||c.clone(),h=f||(l?u.clone():u),y=JFe(r,{scope:p,isolationScope:h}).deleteValue(V$).deleteValue(W$).deleteValue(K$);return B6t(p,y),super.with(y,i,s,...o)}getAsyncLocalStorageLookup(){return{asyncLocalStorage:this._asyncLocalStorage,contextSymbol:ree}}}return t}function o5t(e){let t=new Map;for(let n of e)a5t(t,n);return Array.from(t,function([n,r]){return r})}function Sje(e){return e.attributes[Q$]===!0?void 0:$$(e)}function a5t(e,t){let n=t.spanContext().spanId,r=Sje(t);if(!r){Z$(e,{id:n,span:t,children:[]});return}let i=c5t(e,r),s=Z$(e,{id:n,span:t,parentNode:i,children:[]});i.children.push(s)}function c5t(e,t){let n=e.get(t);return n||Z$(e,{id:t,children:[]})}function Z$(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 Eje(e){let t=eee(e)?e.attributes:{},n=U6t(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=GFe(t);if(i)return i}return n.message&&u5t(n.message)?{code:2,message:n.message}:{code:2,message:"internal_error"}}}let r=GFe(t);return r||(n?.code===as.UNSET?{code:1}:{code:2,message:"unknown_error"})}function GFe(e){let t=e[lm]||e[yE],n=e[S7],r=typeof t=="number"?t:typeof t=="string"?parseInt(t):void 0;if(typeof r=="number")return ym(r);if(typeof n=="string")return{code:2,message:bje[n]||"unknown_error"}}function l5t(e){let t=e.attributes,n=t[At],r=t[zt],i=t[Wi];return{origin:n,op:r,source:i}}function d5t(e){let{op:t,description:n,data:r,origin:i="manual",source:s}=_je(e),o=of(e),a=e.attributes[sf],c={[Wi]:s,[sf]:a,[zt]:t,[At]:i,...r,...Tje(e.attributes)},{links:u}=e,{traceId:l,spanId:d}=e.spanContext(),f=$$(e),p=Eje(e),h={parent_span_id:f,span_id:d,trace_id:l,data:c,origin:i,op:t,status:CE(p),links:NE(u)},m=c[lm],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 X$(e,t,n){let r=e.span;if(r&&n.add(r),!r){e.children.forEach(S=>{X$(S,t,n)});return}let s=r.spanContext().spanId,o=r.spanContext().traceId,a=$$(r),{attributes:c,startTime:u,endTime:l,links:d}=r,{op:f,description:p,data:h,origin:m="manual"}=_je(r),g={[At]:m,[zt]:f,...Tje(c),...h},y=Eje(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:CE(y),op:f,origin:m,measurements:ME(r.events),links:NE(d)};t.push(b),e.children.forEach(S=>{X$(S,t,n)})}function _je(e){let{op:t,source:n,origin:r}=l5t(e),{op:i,description:s,source:o,data:a}=QFe(e),c=t||i,u=n||o,l={...a,...f5t(e)};return{op:c,description:s,source:u,origin:r,data:l}}function Tje(e){let t={...e};return delete t[sf],delete t[Q$],delete t[Kl],t}function f5t(e){let t=e.attributes,n={};e.kind!==$r.INTERNAL&&(n["otel.kind"]=$r[e.kind]);let r=t[yE];r&&(n[lm]=r);let i=F6t(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 p5t(e,t){let n=jt.getSpan(t),r=NA(t);n&&!n.spanContext().isRemote&&YR(n,e),n?.spanContext().isRemote&&e.setAttribute(Q$,!0),t===lR&&(r={scope:qR(),isolationScope:Wl()}),r&&GO(e,r.scope,r.isolationScope),$O(e),ct()?.emit("spanStart",e)}function h5t(e){eP(e),ct()?.emit("spanEnd",e)}function m5t(e,t,n){let r=e.spanContext();if(um(r)&&r.traceId===t){if(r.isRemote){let s=OA(e.spanContext());return Zy&&Z.log(`[Tracing] Inheriting remote parent's sampled decision for ${n}: ${s}`),s}let i=OA(r);return Zy&&Z.log(`[Tracing] Inheriting parent's sampled decision for ${n}: ${i}`),i}}function xA({decision:e,context:t,spanAttributes:n,sampleRand:r,downstreamTraceSampleRate:i}){let s=g5t(t,n);return i!==void 0&&(s=s.set(q6t,`${i}`)),r!==void 0&&(s=s.set(H6t,`${r}`)),e==null?{decision:Yy.SamplingDecision.NOT_RECORD,traceState:s}:e===Yy.SamplingDecision.NOT_RECORD?{decision:e,traceState:s.set(nee,"1")}:{decision:e,traceState:s}}function g5t(e,t){let i=jt.getSpan(e)?.spanContext()?.traceState||new Mc.TraceState,s=t[gR]||t[py];return s&&typeof s=="string"&&(i=i.set(YFe,s)),i}function y5t(e){let t=jt.getSpan(e);return t&&um(t.spanContext())?t:void 0}var Mc,Yy,Q$,PA,Xq,G$,tee,nee,YFe,H6t,q6t,ree,V$,W$,K$,ZFe,Zy,nje,Qq,bje,u5t,VFe,WFe,J$,$q,eB,CA=v(()=>{Nn();st();Me();Me();Mc=Re(pr(),1),Yy=Re(z$(),1),Q$="sentry.parentIsRemote",PA="sentry.graphql.operation";Xq="sentry-trace",G$="baggage",tee="sentry.dsc",nee="sentry.sampled_not_recording",YFe="sentry.url",H6t="sentry.sample_rand",q6t="sentry.sample_rate",ree=il("sentry_scopes"),V$=il("sentry_fork_isolation_scope"),W$=il("sentry_fork_set_scope"),K$=il("sentry_fork_set_isolation_scope"),ZFe="_scopeContext";Zy=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;nje=new Set;Qq=class extends Mc.W3CBaggagePropagator{constructor(){super(),tB("SentryPropagator"),this._urlMatchesTargetsMap=new fu(100)}inject(t,n,r){if((0,Mc.isTracingSuppressed)(t)){Zy&&Z.log("[Tracing] Not injecting trace data for url because tracing is suppressed.");return}let i=jt.getSpan(t),s=i&&J6t(i),{tracePropagationTargets:o,propagateTraceparent:a}=ct()?.getOptions()||{};if(!FE(s,o,this._urlMatchesTargetsMap)){Zy&&Z.log("[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:",s);return}let c=Y6t(n),u=Z6t(n),l=Qd.getBaggage(t)||Qd.createBaggage({}),{dynamicSamplingContext:d,traceId:f,spanId:p,sampled:h}=ije(t);if(c){let m=PE(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!==hE&&(r.set(n,Xq,Oy(f,p,h)),a&&r.set(n,"traceparent",Py(f,p,h))),super.inject(Qd.setBaggage(t,l),n,r)}extract(t,n,r){let i=r.get(n,Xq),s=r.get(n,G$),o=i?Array.isArray(i)?i[0]:i:void 0;return oje(sje(t,{sentryTrace:o,baggage:s}))}fields(){return[Xq,G$,"traceparent"]}};bje={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"},u5t=e=>Object.values(bje).includes(e);VFe=1e3,WFe=300,J$=class{constructor(t){this._finishedSpanBucketSize=t?.timeout||WFe,this._finishedSpanBuckets=new Array(this._finishedSpanBucketSize).fill(void 0),this._lastCleanupTimestampInS=Math.floor(Vl()/1e3),this._spansToBucketEntry=new WeakMap,this._sentSpans=new Map,this._debouncedFlush=ZX(this.flush.bind(this),1,{maxWait:100})}export(t){let n=Math.floor(Vl()/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&&Zy&&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=Sje(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;Zy&&Z.log(`SpanExporter exported ${r} spans, ${i} spans are waiting for their parent spans to finish`);let s=Vl()+WFe*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=o5t(t),r=new Set,i=this._getCompletedRootNodes(n);for(let s of i){let o=s.span;r.add(o);let a=d5t(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)X$(l,c,r);a.spans=c.length>VFe?c.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,VFe):c;let u=ME(o.events);u&&(a.measurements=u),dH(a)}return r}_flushSentSpanCache(){let t=Vl();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))}};$q=class{constructor(t){tB("SentrySpanProcessor"),this._exporter=new J$(t)}async forceFlush(){this._exporter.flush()}async shutdown(){this._exporter.clear()}onStart(t,n){p5t(t,n)}onEnd(t){h5t(t),this._exporter.export(t)}},eB=class{constructor(t){this._client=t,tB("SentrySampler")}shouldSample(t,n,r,i,s,o){let a=this._client.getOptions(),c=y5t(t),u=c?.spanContext();if(!Os(a))return xA({decision:void 0,context:t,spanAttributes:s});let l=s[_O]||s[bE];if(i===$r.CLIENT&&l&&(!c||u?.isRemote))return xA({decision:void 0,context:t,spanAttributes:s});let d=c?m5t(c,n,r):void 0;if(!(!c||u?.isRemote))return xA({decision:d?Yy.SamplingDecision.RECORD_AND_SAMPLED:Yy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s});let{description:p,data:h,op:m}=XFe(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 xA({decision:void 0,context:t,spanAttributes:s});let{isolationScope:b}=NA(t)??{},S=u?.traceState?u.traceState.get(tee):void 0,E=S?Sm(S):void 0,_=cl(E?.sample_rand)??Do(),[T,R,A]=tP(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"?(Zy&&Z.log(`[Tracing] Not sampling span because HTTP method is '${x}' for ${r}`),xA({decision:Yy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:0})):(!T&&d===void 0&&(Zy&&Z.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),this._client.recordDroppedEvent("sample_rate","transaction")),{...xA({decision:T?Yy.SamplingDecision.RECORD_AND_SAMPLED:Yy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:A?R:void 0}),attributes:{[sf]:A?R:void 0}})}toString(){return"SentrySampler"}}});var vje,iee,Rje=v(()=>{vje=Re(GUe(),1);CA();iee=yje(vje.AsyncLocalStorageContextManager)});function see(){sl.disable(),sl.setLogger({error:Z.error,warn:Z.warn,info:Z.log,debug:Z.log,verbose:Z.log},ho.DEBUG)}var Aje=v(()=>{Me();st()});import*as oee from"node:diagnostics_channel";function b5t(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&&Zl({category:"child_process",message:`Child process exited with code '${i}'`,level:i===0?"info":"warning",data:r}))}).on("error",i=>{n||(n=!0,Zl({category:"child_process",message:`Child process errored with '${i.message}'`,level:"error",data:r}))})}function E5t(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)}}}):Zl({category:"worker_thread",message:`Worker thread errored with '${r.message}'`,level:"error",data:{threadId:n}})})}var S5t,wje,kje=v(()=>{st();S5t="ChildProcess",wje=(e={})=>({name:S5t,setup(){oee.channel("child_process").subscribe(t=>{t&&typeof t=="object"&&"process"in t&&b5t(t.process,e)}),oee.channel("worker_threads").subscribe(t=>{t&&typeof t=="object"&&"worker"in t&&E5t(t.worker,e)})}})});import{execFile as _5t}from"node:child_process";import{readFile as T5t,readdir as v5t}from"node:fs";import*as Ho from"node:os";import{join as R5t}from"node:path";import{promisify as xje}from"node:util";function x5t(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 O5t(){let e=Ho.platform();switch(e){case"darwin":return U5t();case"linux":return F5t();default:return{name:M5t[e]||e,version:Ho.release()}}}function P5t(){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 N5t(){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 C5t(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 U5t(){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)=>{_5t("/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 Ije(e){return e.split(" ")[0].toLowerCase()}async function F5t(){let e={kernel_version:Ho.release(),name:"Linux"};try{let t=await w5t("/etc"),n=D5t.find(a=>t.includes(a.name));if(!n)return e;let r=R5t("/etc",n.name),i=(await A5t(r,{encoding:"utf-8"})).toLowerCase(),{distros:s}=n;e.name=s.find(a=>i.indexOf(Ije(a))>=0)||s[0];let o=Ije(e.name);e.version=L5t[o]?.(i)}catch{}return e}function j5t(){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 A5t,w5t,k5t,I5t,Oje,M5t,D5t,L5t,Pje=v(()=>{A5t=xje(T5t),w5t=xje(v5t),k5t="Context",I5t=((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=x5t(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 O5t()),n.app&&(s.app=N5t()),n.device&&(s.device=C5t(n.device)),n.culture){let o=P5t();o&&(s.culture=o)}return n.cloudResource&&(s.cloud_resource=j5t()),s}return{name:k5t,processEvent(s){return r(s)}}}),Oje=I5t;M5t={aix:"IBM AIX",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"SunOS",win32:"Windows",ohos:"OpenHarmony",android:"Android"},D5t=[{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"]}],L5t={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 H5t}from"node:fs";import{createInterface as q5t}from"node:readline";function W5t(e,t,n){let r=e.get(t);return r===void 0?(e.set(t,n),n):r}function K5t(e){return!!(e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:"))}function Y5t(e){return e.lineno!==void 0&&e.lineno>V5t||e.colno!==void 0&&e.colno>G5t}function Z5t(e,t){let n=aee.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 J5t(e,t){if(!e.length)return[];let n=0,r=e[0];if(typeof r!="number")return[];let i=Cje(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=Cje(o,t)),n++}return s}function X5t(e,t,n){return new Promise((r,i)=>{let s=H5t(e),o=q5t({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){Mje.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 Q5t(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"||K5t(c)||Y5t(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(Mje.get(s))continue;let o=n[s];if(!o)continue;o.sort((u,l)=>u-l);let a=J5t(o,t);if(a.every(u=>Z5t(s,u)))continue;let c=W5t(aee,s,{});i.push(X5t(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&&$5t(s.stacktrace.frames,t,aee);return e}function $5t(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;e8t(r.lineno,r,t,i)}}function Nje(e){delete e.pre_context,delete e.context_line,delete e.post_context}function e8t(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=Dje(e,n);s{st();ff();aee=new fu(10),Mje=new fu(20),B5t=7,z5t="ContextLines",G5t=1e3,V5t=1e4;t8t=((e={})=>{let t=e.frameContextLines!==void 0?e.frameContextLines:B5t;return{name:z5t,processEvent(n){return Q5t(n,t)}}}),Uje=t8t});async function rB(){if(nB===void 0)try{nB=!!(await import("node:inspector")).url()}catch{nB=!1}return nB}var nB,cee=v(()=>{});function Hje(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 jje(e){return e!==void 0&&(e.length===0||e==="?"||e==="")}function iB(e,t){return e===t||`Object.${e}`===t||e===`Object.${t}`||jje(e)&&jje(t)}var FP,uee=v(()=>{FP="__SENTRY_ERROR_LOCAL_VARIABLES__"});import{Worker as n8t}from"node:worker_threads";function qje(...e){Z.log("[LocalVariables]",...e)}var r8t,Bje,zje=v(()=>{st();cee();uee();r8t="LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQ3LjAgKGE1YTRlNzMpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=";Bje=((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=>{qje("Worker error",a)}),o.once("exit",a=>{qje("Worker exit",a)}),o.unref()}return{name:"LocalVariablesAsync",async setup(s){if(!s.getOptions().includeLocalVariables)return;if(await rB()){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 Gje(e){if(e!==void 0)return e.slice(-10).reduce((t,n)=>`${t},${n.function},${n.lineno},${n.colno}`,"")}function i8t(e,t){if(t!==void 0)return Gje(e(t,1))}function Vje(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 lee,s8t,o8t,Wje,Kje=v(()=>{st();yA();cee();uee();lee=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}=Vje(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)}},s8t="LocalVariables",o8t=((e={},t)=>{let n=new fu(20),r,i=!1;function s(u){let l=Gje(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 rB()){Z.warn("Local variables capture has been disabled because the debugger was already enabled");return}try{let f=await lee.create(t),p=(m,{params:{reason:g,data:y,callFrames:b}},S)=>{if(g!=="exception"&&g!=="promiseRejection"){S();return}r?.();let E=i8t(m,y.description);if(E==null){S();return}let{add:_,next:T}=Vje(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=Hje(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:s8t,setupOnce(){a=c()},async processEvent(u){return await a,i?o(u):u},_getCachedFramesCount(){return n.size},_getFirstCachedFrame(){return n.values()[0]}}}),Wje=o8t});var Yje,Zje=v(()=>{yA();zje();Kje();Yje=(e={})=>pf.major<19?Wje(e):Bje(e)});function jP(){try{return typeof module<"u"&&typeof module.exports<"u"}catch{return!1}}function Xje(){return jP()?!1:wm>=21||wm===20&&IP>=6||wm===18&&IP>=19?!0:(Jje||(Jje=!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 Jje,sB=v(()=>{st();yA()});import{existsSync as a8t,readFileSync as $je}from"node:fs";import{dirname as c8t,join as eHe}from"node:path";function f8t(){try{return Y.cache?Object.keys(Y.cache):[]}catch{return[]}}function p8t(){return{...l8t,...g8t(),...jP()?h8t():{}}}function h8t(){let e=Y.main?.paths||[],t=f8t(),n={},r=new Set;return t.forEach(i=>{let s=i,o=()=>{let a=s;if(s=c8t(a),!s||a===s||r.has(a))return;if(e.indexOf(s)<0)return o();let c=eHe(a,"package.json");if(r.add(a),!a8t(c))return o();try{let u=JSON.parse($je(c,"utf8"));n[u.name]=u.version}catch{}};o()}),n}function Qje(){return dee||(dee=p8t()),dee}function m8t(){try{let e=eHe(process.cwd(),"package.json");return JSON.parse($je(e,"utf8"))}catch{return{}}}function g8t(){let e=m8t();return{...e.dependencies,...e.devDependencies}}var dee,u8t,l8t,d8t,tHe,nHe=v(()=>{sB();u8t="Modules",l8t=typeof __SENTRY_SERVER_MODULES__>"u"?{}:__SENTRY_SERVER_MODULES__,d8t=(()=>({name:u8t,processEvent(e){return e.modules={...e.modules,...Qje()},e},getModules:Qje})),tHe=d8t});function HP(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:y8t;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 y8t,fee=v(()=>{st();ff();y8t=2e3});import{isMainThread as S8t}from"worker_threads";function E8t(e,t){let r=!1,i=!1,s=!1,o,a=e.getOptions();return Object.assign(c=>{let u=HP;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"),HP(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 b8t,rHe,iHe=v(()=>{st();ff();fee();b8t="OnUncaughtException",rHe=(e={})=>{let t={exitEvenIfOtherHandlersAreRegistered:!1,...e};return{name:b8t,setup(n){S8t&&global.process.on("uncaughtException",E8t(n,t))}}}});function R8t(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 A8t(e,t){let n=e.name===void 0||hm(t.name,e.name,!0),r=e.message===void 0||hm(t.message,e.message);return n&&r}function w8t(e,t){let n=R8t(t);return e.some(r=>A8t(r,n))}function k8t(e,t){return function(r,i){if(ct()!==e||w8t(t.ignore??[],r))return;let s=t.mode==="strict"?"fatal":"error",o=r&&typeof r=="object"?r._sentry_active_span:void 0;(o?c=>XR(o,c):c=>c())(()=>{Wt(r,{originalException:i,captureContext:{extra:{unhandledPromiseRejection:!0},level:s},mechanism:{handled:!1,type:"auto.node.onunhandledrejection"}})}),I8t(r,t.mode)}}function I8t(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)}),HP(e))}var _8t,T8t,v8t,sHe,oHe=v(()=>{st();fee();_8t="OnUnhandledRejection",T8t=[{name:"AI_NoOutputGeneratedError"},{name:"AbortError"}],v8t=((e={})=>{let t={mode:e.mode??"warn",ignore:[...T8t,...e.ignore??[]]};return{name:_8t,setup(n){global.process.on("unhandledRejection",k8t(n,t))}}}),sHe=v8t});var x8t,aHe,cHe=v(()=>{st();x8t="ProcessSession",aHe=()=>({name:x8t,setupOnce(){pH(),process.on("beforeExit",()=>{vn().getSession()?.status!=="ok"&&iP()})}})});import*as uHe from"node:http";function P8t(e,t){let n=N8t(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=QO(i);QR(()=>{let o=uHe.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 N8t(e){try{return new URL(`${e}`)}catch{Z.warn(`[Spotlight] Invalid sidecar URL: ${e}`);return}}var pee,O8t,lHe,dHe=v(()=>{st();pee="Spotlight",O8t=((e={})=>{let t={sidecarUrl:e.sidecarUrl||"http://localhost:8969/stream"};return{name:pee,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{}P8t(n,t)}}}),lHe=O8t});import*as fHe from"node:util";function M8t(e){return!(e instanceof Error)||!("errno"in e)||typeof e.errno!="number"?!1:fHe.getSystemErrorMap().has(e.errno)}var C8t,pHe,hHe=v(()=>{C8t="NodeSystemError";pHe=(e={})=>({name:C8t,processEvent:(t,n,r)=>{if(!M8t(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 hee from"node:http";var Zp,oB,mHe=v(()=>{Zp=Symbol("AgentBaseInternalState"),oB=class extends hee.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 hee.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 aB(...e){Z.log("[https-proxy-agent:parse-proxy-response]",...e)}function gHe(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(),aB("onend"),n(new Error("Proxy connection ended before receiving CONNECT response"))}function c(l){o(),aB("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 XQ(e,t){let n=-1;for(let r=0;rr%2===0&&n===t)}function FUe(e,t){let n=WYt(e),r=t.statusCode,i=EP(r);Zl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function WYt(e){try{let t=tq(e.origin,e.path),n=Ly(t),r={url:Uy(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 tq(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 JQ,eq,zYt,jUe=v(()=>{st();WQ();JQ="sentry-trace",eq="baggage",zYt="traceparent"});import*as SA from"diagnostics_channel";var HUe,qUe,WE,$Q=v(()=>{Me();HUe=Re(pr(),1),qUe=Re(Jt(),1);st();yA();jUe();WE=class extends qUe.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-node-fetch",Cn,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&&UUe(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&&FUe(t,n)}_subscribeToChannel(t,n){let r=wm>18||wm===18&&IP>=19,i;if(r)SA.subscribe?.(t,n),i=()=>SA.unsubscribe?.(t,n);else{let s=SA.channel(t);s.subscribe(n),i=()=>s.unsubscribe(n)}this._channelSubs.push({name:t,unsubscribe:i})}_shouldIgnoreOutgoingRequest(t){if((0,HUe.isTracingSuppressed)(Ve.active()))return!0;let n=tq(t.origin,t.path),r=this.getConfig().ignoreOutgoingRequests;return typeof r!="function"||!n?!1:r(n)}}});var KYt,YYt,ZYt,BUe,zUe=v(()=>{ZH();$Q();KYt="NodeFetch",YYt=rt(`${KYt}.sentry`,WE,e=>e),ZYt=((e={})=>({name:"NodeFetch",setupOnce(){YYt(e)}})),BUe=ZYt});var t$=w(nq=>{"use strict";Object.defineProperty(nq,"__esModule",{value:!0});nq.AbstractAsyncHooksContextManager=void 0;var JYt=Y("events"),XYt=["addListener","on","once","prependListener","prependOnceListener"],e$=class{bind(t,n){return n instanceof JYt.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),XYt.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};nq.AbstractAsyncHooksContextManager=e$});var GUe=w(rq=>{"use strict";Object.defineProperty(rq,"__esModule",{value:!0});rq.AsyncHooksContextManager=void 0;var QYt=(Me(),ke(Ze)),$Yt=Y("async_hooks"),eZt=t$(),n$=class extends eZt.AbstractAsyncHooksContextManager{_asyncHook;_contexts=new Map;_stack=[];constructor(){super(),this._asyncHook=$Yt.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]??QYt.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()}};rq.AsyncHooksContextManager=n$});var VUe=w(iq=>{"use strict";Object.defineProperty(iq,"__esModule",{value:!0});iq.AsyncLocalStorageContextManager=void 0;var tZt=(Me(),ke(Ze)),nZt=Y("async_hooks"),rZt=t$(),r$=class extends rZt.AbstractAsyncHooksContextManager{_asyncLocalStorage;constructor(){super(),this._asyncLocalStorage=new nZt.AsyncLocalStorage}active(){return this._asyncLocalStorage.getStore()??tZt.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}};iq.AsyncLocalStorageContextManager=r$});var WUe=w(bA=>{"use strict";Object.defineProperty(bA,"__esModule",{value:!0});bA.AsyncLocalStorageContextManager=bA.AsyncHooksContextManager=void 0;var iZt=GUe();Object.defineProperty(bA,"AsyncHooksContextManager",{enumerable:!0,get:function(){return iZt.AsyncHooksContextManager}});var sZt=VUe();Object.defineProperty(bA,"AsyncLocalStorageContextManager",{enumerable:!0,get:function(){return sZt.AsyncLocalStorageContextManager}})});var i$=w(EA=>{"use strict";Object.defineProperty(EA,"__esModule",{value:!0});EA._clearDefaultServiceNameCache=EA.defaultServiceName=void 0;var xP;function oZt(){if(xP===void 0)try{let e=globalThis.process.argv0;xP=e?`unknown_service:${e}`:"unknown_service"}catch{xP="unknown_service"}return xP}EA.defaultServiceName=oZt;function aZt(){xP=void 0}EA._clearDefaultServiceNameCache=aZt});var KUe=w(sq=>{"use strict";Object.defineProperty(sq,"__esModule",{value:!0});sq.isPromiseLike=void 0;var cZt=e=>e!==null&&typeof e=="object"&&typeof e.then=="function";sq.isPromiseLike=cZt});var a$=w(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});Bp.defaultResource=Bp.emptyResource=Bp.resourceFromDetectedResource=Bp.resourceFromAttributes=void 0;var PP=(Me(),ke(Ze)),s$=pr(),KE=(Nn(),ke(Mr)),uZt=i$(),OP=KUe(),oq=class e{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(t,n){let r=new e({},n);return r._rawAttributes=YUe(t),r._asyncAttributesPending=t.filter(([i,s])=>(0,OP.isPromiseLike)(s)).length>0,r}constructor(t,n){let r=t.attributes??{};this._rawAttributes=Object.entries(r).map(([i,s])=>((0,OP.isPromiseLike)(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=YUe(this._rawAttributes),this._schemaUrl=pZt(n?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let t=0;t(0,OP.isPromiseLike)(n)?[t,n.catch(r=>{PP.diag.debug("promise rejection for resource attribute: %s - %s",t,r)})]:[t,n])}function pZt(e){if(typeof e=="string"||e===void 0)return e;PP.diag.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",e)}function hZt(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;PP.diag.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',n,r)}});var JUe=w(aq=>{"use strict";Object.defineProperty(aq,"__esModule",{value:!0});aq.detectResources=void 0;var ZUe=(Me(),ke(Ze)),c$=a$(),mZt=(e={})=>(e.detectors||[]).map(n=>{try{let r=(0,c$.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,c$.emptyResource)()}}).reduce((n,r)=>n.merge(r),(0,c$.emptyResource)());aq.detectResources=mZt});var QUe=w(cq=>{"use strict";Object.defineProperty(cq,"__esModule",{value:!0});cq.envDetector=void 0;var gZt=(Me(),ke(Ze)),yZt=(Nn(),ke(Mr)),XUe=pr(),u$=class{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect(t){let n={},r=(0,XUe.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),i=(0,XUe.getStringFromEnv)("OTEL_SERVICE_NAME");if(r)try{let s=this._parseResourceAttributes(r);Object.assign(n,s)}catch(s){gZt.diag.debug(`EnvDetector failed: ${s instanceof Error?s.message:s}`)}return i&&(n[yZt.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}};cq.envDetector=new u$});var NP=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 lq=w(uq=>{"use strict";Object.defineProperty(uq,"__esModule",{value:!0});uq.execAsync=void 0;var SZt=Y("child_process"),bZt=Y("util");uq.execAsync=bZt.promisify(SZt.exec)});var $Ue=w(dq=>{"use strict";Object.defineProperty(dq,"__esModule",{value:!0});dq.getMachineId=void 0;var EZt=lq(),_Zt=(Me(),ke(Ze));async function TZt(){try{let t=(await(0,EZt.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){_Zt.diag.debug(`error reading machine id: ${e}`)}}dq.getMachineId=TZt});var eFe=w(fq=>{"use strict";Object.defineProperty(fq,"__esModule",{value:!0});fq.getMachineId=void 0;var vZt=Y("fs"),RZt=(Me(),ke(Ze));async function AZt(){let e=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let t of e)try{return(await vZt.promises.readFile(t,{encoding:"utf8"})).trim()}catch(n){RZt.diag.debug(`error reading machine id: ${n}`)}}fq.getMachineId=AZt});var nFe=w(pq=>{"use strict";Object.defineProperty(pq,"__esModule",{value:!0});pq.getMachineId=void 0;var wZt=Y("fs"),kZt=lq(),tFe=(Me(),ke(Ze));async function IZt(){try{return(await wZt.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(e){tFe.diag.debug(`error reading machine id: ${e}`)}try{return(await(0,kZt.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(e){tFe.diag.debug(`error reading machine id: ${e}`)}}pq.getMachineId=IZt});var iFe=w(hq=>{"use strict";Object.defineProperty(hq,"__esModule",{value:!0});hq.getMachineId=void 0;var rFe=Y("process"),xZt=lq(),OZt=(Me(),ke(Ze));async function PZt(){let e="QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",t="%windir%\\System32\\REG.exe";rFe.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in rFe.env&&(t="%windir%\\sysnative\\cmd.exe /c "+t);try{let r=(await(0,xZt.execAsync)(`${t} ${e}`)).stdout.split("REG_SZ");if(r.length===2)return r[1].trim()}catch(n){OZt.diag.debug(`error reading machine id: ${n}`)}}hq.getMachineId=PZt});var sFe=w(mq=>{"use strict";Object.defineProperty(mq,"__esModule",{value:!0});mq.getMachineId=void 0;var NZt=(Me(),ke(Ze));async function CZt(){NZt.diag.debug("could not read machine-id: unsupported platform")}mq.getMachineId=CZt});var oFe=w(gq=>{"use strict";Object.defineProperty(gq,"__esModule",{value:!0});gq.getMachineId=void 0;var MZt=Y("process"),YE;async function DZt(){if(!YE)switch(MZt.platform){case"darwin":YE=(await Promise.resolve().then(()=>Re($Ue()))).getMachineId;break;case"linux":YE=(await Promise.resolve().then(()=>Re(eFe()))).getMachineId;break;case"freebsd":YE=(await Promise.resolve().then(()=>Re(nFe()))).getMachineId;break;case"win32":YE=(await Promise.resolve().then(()=>Re(iFe()))).getMachineId;break;default:YE=(await Promise.resolve().then(()=>Re(sFe()))).getMachineId;break}return YE()}gq.getMachineId=DZt});var l$=w(_A=>{"use strict";Object.defineProperty(_A,"__esModule",{value:!0});_A.normalizeType=_A.normalizeArch=void 0;var LZt=e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}};_A.normalizeArch=LZt;var UZt=e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}};_A.normalizeType=UZt});var cFe=w(yq=>{"use strict";Object.defineProperty(yq,"__esModule",{value:!0});yq.hostDetector=void 0;var d$=NP(),aFe=Y("os"),FZt=oFe(),jZt=l$(),f$=class{detect(t){return{attributes:{[d$.ATTR_HOST_NAME]:(0,aFe.hostname)(),[d$.ATTR_HOST_ARCH]:(0,jZt.normalizeArch)((0,aFe.arch)()),[d$.ATTR_HOST_ID]:(0,FZt.getMachineId)()}}}};yq.hostDetector=new f$});var dFe=w(Sq=>{"use strict";Object.defineProperty(Sq,"__esModule",{value:!0});Sq.osDetector=void 0;var uFe=NP(),lFe=Y("os"),HZt=l$(),p$=class{detect(t){return{attributes:{[uFe.ATTR_OS_TYPE]:(0,HZt.normalizeType)((0,lFe.platform)()),[uFe.ATTR_OS_VERSION]:(0,lFe.release)()}}}};Sq.osDetector=new p$});var fFe=w(bq=>{"use strict";Object.defineProperty(bq,"__esModule",{value:!0});bq.processDetector=void 0;var qZt=(Me(),ke(Ze)),km=NP(),BZt=Y("os"),h$=class{detect(t){let n={[km.ATTR_PROCESS_PID]:process.pid,[km.ATTR_PROCESS_EXECUTABLE_NAME]:process.title,[km.ATTR_PROCESS_EXECUTABLE_PATH]:process.execPath,[km.ATTR_PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[km.ATTR_PROCESS_RUNTIME_VERSION]:process.versions.node,[km.ATTR_PROCESS_RUNTIME_NAME]:"nodejs",[km.ATTR_PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};process.argv.length>1&&(n[km.ATTR_PROCESS_COMMAND]=process.argv[1]);try{let r=BZt.userInfo();n[km.ATTR_PROCESS_OWNER]=r.username}catch(r){qZt.diag.debug(`error obtaining process owner: ${r}`)}return{attributes:n}}};bq.processDetector=new h$});var pFe=w(Eq=>{"use strict";Object.defineProperty(Eq,"__esModule",{value:!0});Eq.serviceInstanceIdDetector=void 0;var zZt=NP(),GZt=Y("crypto"),m$=class{detect(t){return{attributes:{[zZt.ATTR_SERVICE_INSTANCE_ID]:(0,GZt.randomUUID)()}}}};Eq.serviceInstanceIdDetector=new m$});var hFe=w(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});zp.serviceInstanceIdDetector=zp.processDetector=zp.osDetector=zp.hostDetector=void 0;var VZt=cFe();Object.defineProperty(zp,"hostDetector",{enumerable:!0,get:function(){return VZt.hostDetector}});var WZt=dFe();Object.defineProperty(zp,"osDetector",{enumerable:!0,get:function(){return WZt.osDetector}});var KZt=fFe();Object.defineProperty(zp,"processDetector",{enumerable:!0,get:function(){return KZt.processDetector}});var YZt=pFe();Object.defineProperty(zp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return YZt.serviceInstanceIdDetector}})});var mFe=w(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});Gp.serviceInstanceIdDetector=Gp.processDetector=Gp.osDetector=Gp.hostDetector=void 0;var _q=hFe();Object.defineProperty(Gp,"hostDetector",{enumerable:!0,get:function(){return _q.hostDetector}});Object.defineProperty(Gp,"osDetector",{enumerable:!0,get:function(){return _q.osDetector}});Object.defineProperty(Gp,"processDetector",{enumerable:!0,get:function(){return _q.processDetector}});Object.defineProperty(Gp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return _q.serviceInstanceIdDetector}})});var gFe=w(TA=>{"use strict";Object.defineProperty(TA,"__esModule",{value:!0});TA.noopDetector=TA.NoopDetector=void 0;var Tq=class{detect(){return{attributes:{}}}};TA.NoopDetector=Tq;TA.noopDetector=new Tq});var yFe=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 ZZt=QUe();Object.defineProperty(pu,"envDetector",{enumerable:!0,get:function(){return ZZt.envDetector}});var vq=mFe();Object.defineProperty(pu,"hostDetector",{enumerable:!0,get:function(){return vq.hostDetector}});Object.defineProperty(pu,"osDetector",{enumerable:!0,get:function(){return vq.osDetector}});Object.defineProperty(pu,"processDetector",{enumerable:!0,get:function(){return vq.processDetector}});Object.defineProperty(pu,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return vq.serviceInstanceIdDetector}});var JZt=gFe();Object.defineProperty(pu,"noopDetector",{enumerable:!0,get:function(){return JZt.noopDetector}})});var y$=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 XZt=JUe();Object.defineProperty(ls,"detectResources",{enumerable:!0,get:function(){return XZt.detectResources}});var CP=yFe();Object.defineProperty(ls,"envDetector",{enumerable:!0,get:function(){return CP.envDetector}});Object.defineProperty(ls,"hostDetector",{enumerable:!0,get:function(){return CP.hostDetector}});Object.defineProperty(ls,"osDetector",{enumerable:!0,get:function(){return CP.osDetector}});Object.defineProperty(ls,"processDetector",{enumerable:!0,get:function(){return CP.processDetector}});Object.defineProperty(ls,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return CP.serviceInstanceIdDetector}});var g$=a$();Object.defineProperty(ls,"resourceFromAttributes",{enumerable:!0,get:function(){return g$.resourceFromAttributes}});Object.defineProperty(ls,"defaultResource",{enumerable:!0,get:function(){return g$.defaultResource}});Object.defineProperty(ls,"emptyResource",{enumerable:!0,get:function(){return g$.emptyResource}});var QZt=i$();Object.defineProperty(ls,"defaultServiceName",{enumerable:!0,get:function(){return QZt.defaultServiceName}})});var SFe=w(Rq=>{"use strict";Object.defineProperty(Rq,"__esModule",{value:!0});Rq.ExceptionEventName=void 0;Rq.ExceptionEventName="exception"});var bFe=w(Aq=>{"use strict";Object.defineProperty(Aq,"__esModule",{value:!0});Aq.SpanImpl=void 0;var ua=(Me(),ke(Ze)),la=pr(),ZE=(Nn(),ke(Mr)),$Zt=SFe(),S$=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[ZE.ATTR_EXCEPTION_MESSAGE]=t:t&&(t.code?r[ZE.ATTR_EXCEPTION_TYPE]=t.code.toString():t.name&&(r[ZE.ATTR_EXCEPTION_TYPE]=t.name),t.message&&(r[ZE.ATTR_EXCEPTION_MESSAGE]=t.message),t.stack&&(r[ZE.ATTR_EXCEPTION_STACKTRACE]=t.stack)),r[ZE.ATTR_EXCEPTION_TYPE]||r[ZE.ATTR_EXCEPTION_MESSAGE]?this.addEvent($Zt.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}};Aq.SpanImpl=S$});var vA=w(MP=>{"use strict";Object.defineProperty(MP,"__esModule",{value:!0});MP.SamplingDecision=void 0;var e6t;(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(e6t=MP.SamplingDecision||(MP.SamplingDecision={}))});var kq=w(wq=>{"use strict";Object.defineProperty(wq,"__esModule",{value:!0});wq.AlwaysOffSampler=void 0;var t6t=vA(),b$=class{shouldSample(){return{decision:t6t.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};wq.AlwaysOffSampler=b$});var xq=w(Iq=>{"use strict";Object.defineProperty(Iq,"__esModule",{value:!0});Iq.AlwaysOnSampler=void 0;var n6t=vA(),E$=class{shouldSample(){return{decision:n6t.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};Iq.AlwaysOnSampler=E$});var v$=w(Pq=>{"use strict";Object.defineProperty(Pq,"__esModule",{value:!0});Pq.ParentBasedSampler=void 0;var Oq=(Me(),ke(Ze)),r6t=pr(),EFe=kq(),_$=xq(),T$=class{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor(t){this._root=t.root,this._root||((0,r6t.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new _$.AlwaysOnSampler),this._remoteParentSampled=t.remoteParentSampled??new _$.AlwaysOnSampler,this._remoteParentNotSampled=t.remoteParentNotSampled??new EFe.AlwaysOffSampler,this._localParentSampled=t.localParentSampled??new _$.AlwaysOnSampler,this._localParentNotSampled=t.localParentNotSampled??new EFe.AlwaysOffSampler}shouldSample(t,n,r,i,s,o){let a=Oq.trace.getSpanContext(t);return!a||!(0,Oq.isSpanContextValid)(a)?this._root.shouldSample(t,n,r,i,s,o):a.isRemote?a.traceFlags&Oq.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,n,r,i,s,o):this._remoteParentNotSampled.shouldSample(t,n,r,i,s,o):a.traceFlags&Oq.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()}}`}};Pq.ParentBasedSampler=T$});var A$=w(Nq=>{"use strict";Object.defineProperty(Nq,"__esModule",{value:!0});Nq.TraceIdRatioBasedSampler=void 0;var i6t=(Me(),ke(Ze)),_Fe=vA(),R$=class{_ratio;_upperBound;constructor(t=0){this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,n){return{decision:(0,i6t.isValidTraceId)(n)&&this._accumulate(n)=1?1:t<=0?0:t}_accumulate(t){let n=0;for(let r=0;r>>0}return n}};Nq.TraceIdRatioBasedSampler=R$});var I$=w(RA=>{"use strict";Object.defineProperty(RA,"__esModule",{value:!0});RA.buildSamplerFromEnv=RA.loadDefaultConfig=void 0;var k$=(Me(),ke(Ze)),Vp=pr(),TFe=kq(),w$=xq(),Cq=v$(),vFe=A$(),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 Mq=1;function s6t(){return{sampler:AFe(),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}}}RA.loadDefaultConfig=s6t;function AFe(){let e=(0,Vp.getStringFromEnv)("OTEL_TRACES_SAMPLER")??Wp.ParentBasedAlwaysOn;switch(e){case Wp.AlwaysOn:return new w$.AlwaysOnSampler;case Wp.AlwaysOff:return new TFe.AlwaysOffSampler;case Wp.ParentBasedAlwaysOn:return new Cq.ParentBasedSampler({root:new w$.AlwaysOnSampler});case Wp.ParentBasedAlwaysOff:return new Cq.ParentBasedSampler({root:new TFe.AlwaysOffSampler});case Wp.TraceIdRatio:return new vFe.TraceIdRatioBasedSampler(RFe());case Wp.ParentBasedTraceIdRatio:return new Cq.ParentBasedSampler({root:new vFe.TraceIdRatioBasedSampler(RFe())});default:return k$.diag.error(`OTEL_TRACES_SAMPLER value "${e}" invalid, defaulting to "${Wp.ParentBasedAlwaysOn}".`),new Cq.ParentBasedSampler({root:new w$.AlwaysOnSampler})}}RA.buildSamplerFromEnv=AFe;function RFe(){let e=(0,Vp.getNumberFromEnv)("OTEL_TRACES_SAMPLER_ARG");return e==null?(k$.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${Mq}.`),Mq):e<0||e>1?(k$.diag.error(`OTEL_TRACES_SAMPLER_ARG=${e} was given, but it is out of range ([0..1]), defaulting to ${Mq}.`),Mq):e}});var x$=w(Ql=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});Ql.reconfigureLimits=Ql.mergeConfig=Ql.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=Ql.DEFAULT_ATTRIBUTE_COUNT_LIMIT=void 0;var wFe=I$(),Dq=pr();Ql.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;Ql.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function o6t(e){let t={sampler:(0,wFe.buildSamplerFromEnv)()},n=(0,wFe.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}Ql.mergeConfig=o6t;function a6t(e){let t=Object.assign({},e.spanLimits);return t.attributeCountLimit=e.spanLimits?.attributeCountLimit??e.generalLimits?.attributeCountLimit??(0,Dq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??(0,Dq.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??Ql.DEFAULT_ATTRIBUTE_COUNT_LIMIT,t.attributeValueLengthLimit=e.spanLimits?.attributeValueLengthLimit??e.generalLimits?.attributeValueLengthLimit??(0,Dq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??(0,Dq.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??Ql.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},e,{spanLimits:t})}Ql.reconfigureLimits=a6t});var kFe=w(Lq=>{"use strict";Object.defineProperty(Lq,"__esModule",{value:!0});Lq.BatchSpanProcessorBase=void 0;var AA=(Me(),ke(Ze)),Im=pr(),O$=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,Im.getNumberFromEnv)("OTEL_BSP_MAX_EXPORT_BATCH_SIZE")??512,this._maxQueueSize=typeof n?.maxQueueSize=="number"?n.maxQueueSize:(0,Im.getNumberFromEnv)("OTEL_BSP_MAX_QUEUE_SIZE")??2048,this._scheduledDelayMillis=typeof n?.scheduledDelayMillis=="number"?n.scheduledDelayMillis:(0,Im.getNumberFromEnv)("OTEL_BSP_SCHEDULE_DELAY")??5e3,this._exportTimeoutMillis=typeof n?.exportTimeoutMillis=="number"?n.exportTimeoutMillis:(0,Im.getNumberFromEnv)("OTEL_BSP_EXPORT_TIMEOUT")??3e4,this._shutdownOnce=new Im.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(AA.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&AA.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&&AA.diag.debug("maxQueueSize reached, dropping spans"),this._droppedSpansCount++;return}this._droppedSpansCount>0&&(AA.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);AA.context.with((0,Im.suppressTracing)(AA.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===Im.ExportResultCode.SUCCESS?t():n(a.error??new Error("BatchSpanProcessor: span export failed"))}),o=null;for(let a=0,c=i.length;a{(0,Im.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,Im.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)}};Lq.BatchSpanProcessorBase=O$});var IFe=w(Uq=>{"use strict";Object.defineProperty(Uq,"__esModule",{value:!0});Uq.BatchSpanProcessor=void 0;var c6t=kFe(),P$=class extends c6t.BatchSpanProcessorBase{onShutdown(){}};Uq.BatchSpanProcessor=P$});var PFe=w(jq=>{"use strict";Object.defineProperty(jq,"__esModule",{value:!0});jq.RandomIdGenerator=void 0;var u6t=8,OFe=16,N$=class{generateTraceId=xFe(OFe);generateSpanId=xFe(u6t)};jq.RandomIdGenerator=N$;var Fq=Buffer.allocUnsafe(OFe);function xFe(e){return function(){for(let n=0;n>>0,n*4);for(let n=0;n0);n++)n===e-1&&(Fq[e-1]=1);return Fq.toString("hex",0,e)}}});var NFe=w(wA=>{"use strict";Object.defineProperty(wA,"__esModule",{value:!0});wA.RandomIdGenerator=wA.BatchSpanProcessor=void 0;var l6t=IFe();Object.defineProperty(wA,"BatchSpanProcessor",{enumerable:!0,get:function(){return l6t.BatchSpanProcessor}});var d6t=PFe();Object.defineProperty(wA,"RandomIdGenerator",{enumerable:!0,get:function(){return d6t.RandomIdGenerator}})});var C$=w(kA=>{"use strict";Object.defineProperty(kA,"__esModule",{value:!0});kA.RandomIdGenerator=kA.BatchSpanProcessor=void 0;var CFe=NFe();Object.defineProperty(kA,"BatchSpanProcessor",{enumerable:!0,get:function(){return CFe.BatchSpanProcessor}});Object.defineProperty(kA,"RandomIdGenerator",{enumerable:!0,get:function(){return CFe.RandomIdGenerator}})});var MFe=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 DFe=w(qq=>{"use strict";Object.defineProperty(qq,"__esModule",{value:!0});qq.TracerMetrics=void 0;var Hq=vA(),DP=MFe(),M$=class{startedSpans;liveSpans;constructor(t){this.startedSpans=t.createCounter(DP.METRIC_OTEL_SDK_SPAN_STARTED,{unit:"{span}",description:"The number of created spans."}),this.liveSpans=t.createUpDownCounter(DP.METRIC_OTEL_SDK_SPAN_LIVE,{unit:"{span}",description:"The number of currently live spans."})}startSpan(t,n){let r=p6t(n);if(this.startedSpans.add(1,{[DP.ATTR_OTEL_SPAN_PARENT_ORIGIN]:f6t(t),[DP.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r}),n===Hq.SamplingDecision.NOT_RECORD)return()=>{};let i={[DP.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r};return this.liveSpans.add(1,i),()=>{this.liveSpans.add(-1,i)}}};qq.TracerMetrics=M$;function f6t(e){return e?e.isRemote?"remote":"local":"none"}function p6t(e){switch(e){case Hq.SamplingDecision.RECORD_AND_SAMPLED:return"RECORD_AND_SAMPLE";case Hq.SamplingDecision.RECORD:return"RECORD_ONLY";case Hq.SamplingDecision.NOT_RECORD:return"DROP"}}});var LFe=w(Bq=>{"use strict";Object.defineProperty(Bq,"__esModule",{value:!0});Bq.VERSION=void 0;Bq.VERSION="2.6.1"});var UFe=w(Gq=>{"use strict";Object.defineProperty(Gq,"__esModule",{value:!0});Gq.Tracer=void 0;var jo=(Me(),ke(Ze)),zq=pr(),h6t=bFe(),m6t=x$(),g6t=C$(),y6t=DFe(),S6t=LFe(),D$=class{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;_tracerMetrics;constructor(t,n,r,i){let s=(0,m6t.mergeConfig)(n);this._sampler=s.sampler,this._generalLimits=s.generalLimits,this._spanLimits=s.spanLimits,this._idGenerator=n.idGenerator||new g6t.RandomIdGenerator,this._resource=r,this._spanProcessor=i,this.instrumentationScope=t;let o=s.meterProvider?s.meterProvider.getMeter("@opentelemetry/sdk-trace",S6t.VERSION):jo.createNoopMeter();this._tracerMetrics=new y6t.TracerMetrics(o)}startSpan(t,n={},r=jo.context.active()){n.root&&(r=jo.trace.deleteSpan(r));let i=jo.trace.getSpan(r);if((0,zq.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,zq.sanitizeAttributes)(S.attributes)})),f=(0,zq.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,zq.sanitizeAttributes)(Object.assign(f,p.attributes));return new h6t.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}};Gq.Tracer=D$});var FFe=w(Vq=>{"use strict";Object.defineProperty(Vq,"__esModule",{value:!0});Vq.MultiSpanProcessor=void 0;var b6t=pr(),L$=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,b6t.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)})}};Vq.MultiSpanProcessor=L$});var jFe=w(JE=>{"use strict";Object.defineProperty(JE,"__esModule",{value:!0});JE.BasicTracerProvider=JE.ForceFlushState=void 0;var E6t=pr(),_6t=y$(),T6t=UFe(),v6t=I$(),R6t=FFe(),A6t=x$(),IA;(function(e){e[e.resolved=0]="resolved",e[e.timeout=1]="timeout",e[e.error=2]="error",e[e.unresolved=3]="unresolved"})(IA=JE.ForceFlushState||(JE.ForceFlushState={}));var U$=class{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor(t={}){let n=(0,E6t.merge)({},(0,v6t.loadDefaultConfig)(),(0,A6t.reconfigureLimits)(t));this._resource=n.resource??(0,_6t.defaultResource)(),this._config=Object.assign({},n,{resource:this._resource});let r=[];t.spanProcessors?.length&&r.push(...t.spanProcessors),this._activeSpanProcessor=new R6t.MultiSpanProcessor(r)}getTracer(t,n,r){let i=`${t}@${n||""}:${r?.schemaUrl||""}`;return this._tracers.has(i)||this._tracers.set(i,new T6t.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=IA.timeout},t);r.forceFlush().then(()=>{clearTimeout(o),s!==IA.timeout&&(s=IA.resolved,i(s))}).catch(a=>{clearTimeout(o),s=IA.error,i(a)})}));return new Promise((r,i)=>{Promise.all(n).then(s=>{let o=s.filter(a=>a!==IA.resolved);o.length>0?i(o):r()}).catch(s=>i([s]))})}shutdown(){return this._activeSpanProcessor.shutdown()}};JE.BasicTracerProvider=U$});var HFe=w(Wq=>{"use strict";Object.defineProperty(Wq,"__esModule",{value:!0});Wq.ConsoleSpanExporter=void 0;var F$=pr(),j$=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,F$.hrTimeToMicroseconds)(t.startTime),duration:(0,F$.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:F$.ExportResultCode.SUCCESS})}};Wq.ConsoleSpanExporter=j$});var BFe=w(Kq=>{"use strict";Object.defineProperty(Kq,"__esModule",{value:!0});Kq.InMemorySpanExporter=void 0;var qFe=pr(),H$=class{_finishedSpans=[];_stopped=!1;export(t,n){if(this._stopped)return n({code:qFe.ExportResultCode.FAILED,error:new Error("Exporter has been stopped")});this._finishedSpans.push(...t),setTimeout(()=>n({code:qFe.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}};Kq.InMemorySpanExporter=H$});var zFe=w(Zq=>{"use strict";Object.defineProperty(Zq,"__esModule",{value:!0});Zq.SimpleSpanProcessor=void 0;var w6t=(Me(),ke(Ze)),Yq=pr(),q$=class{_exporter;_shutdownOnce;_pendingExports;constructor(t){this._exporter=t,this._shutdownOnce=new Yq.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&w6t.TraceFlags.SAMPLED)===0)return;let n=this._doExport(t).catch(r=>(0,Yq.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 Yq.internal._export(this._exporter,[t]);if(n.code!==Yq.ExportResultCode.SUCCESS)throw n.error??new Error(`SimpleSpanProcessor: span export failed (status ${n})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}};Zq.SimpleSpanProcessor=q$});var GFe=w(Jq=>{"use strict";Object.defineProperty(Jq,"__esModule",{value:!0});Jq.NoopSpanProcessor=void 0;var B$=class{onStart(t,n){}onEnd(t){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}};Jq.NoopSpanProcessor=B$});var z$=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 k6t=jFe();Object.defineProperty(ti,"BasicTracerProvider",{enumerable:!0,get:function(){return k6t.BasicTracerProvider}});var VFe=C$();Object.defineProperty(ti,"BatchSpanProcessor",{enumerable:!0,get:function(){return VFe.BatchSpanProcessor}});Object.defineProperty(ti,"RandomIdGenerator",{enumerable:!0,get:function(){return VFe.RandomIdGenerator}});var I6t=HFe();Object.defineProperty(ti,"ConsoleSpanExporter",{enumerable:!0,get:function(){return I6t.ConsoleSpanExporter}});var x6t=BFe();Object.defineProperty(ti,"InMemorySpanExporter",{enumerable:!0,get:function(){return x6t.InMemorySpanExporter}});var O6t=zFe();Object.defineProperty(ti,"SimpleSpanProcessor",{enumerable:!0,get:function(){return O6t.SimpleSpanProcessor}});var P6t=GFe();Object.defineProperty(ti,"NoopSpanProcessor",{enumerable:!0,get:function(){return P6t.NoopSpanProcessor}});var N6t=kq();Object.defineProperty(ti,"AlwaysOffSampler",{enumerable:!0,get:function(){return N6t.AlwaysOffSampler}});var C6t=xq();Object.defineProperty(ti,"AlwaysOnSampler",{enumerable:!0,get:function(){return C6t.AlwaysOnSampler}});var M6t=v$();Object.defineProperty(ti,"ParentBasedSampler",{enumerable:!0,get:function(){return M6t.ParentBasedSampler}});var D6t=A$();Object.defineProperty(ti,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return D6t.TraceIdRatioBasedSampler}});var L6t=vA();Object.defineProperty(ti,"SamplingDecision",{enumerable:!0,get:function(){return L6t.SamplingDecision}})});function $$(e){if("parentSpanId"in e)return e.parentSpanId;if("parentSpanContext"in e)return e.parentSpanContext?.spanId}function eee(e){let t=e;return!!t.attributes&&typeof t.attributes=="object"}function U6t(e){return typeof e.kind=="number"}function F6t(e){return!!e.status}function ZFe(e){return!!e.name}function j6t(e){if(!eee(e))return{};let t=e.attributes[py]||e.attributes[gR],n={url:t,"http.method":e.attributes[bE]||e.attributes[_O]};!n["http.method"]&&n.url&&(n["http.method"]="GET");try{if(typeof t=="string"){let r=Ly(t);n.url=Uy(r),r.search&&(n["http.query"]=r.search),r.hash&&(n["http.fragment"]=r.hash)}}catch{}return n}function H6t(e){return U6t(e)?e.kind:$r.INTERNAL}function NA(e){return e.getValue(ree)}function QFe(e,t){return e.setValue(ree,t)}function z6t(e,t){zs(e,XFe,t)}function UP(e){return e[XFe]}function OA(e){let{traceFlags:t,traceState:n}=e,r=n?n.get(nee)==="1":!1;if(t===qa.SAMPLED)return!0;if(r)return!1;let i=n?n.get(tee):void 0,s=i?Sm(i):void 0;if(s?.sampled==="true")return!0;if(s?.sampled==="false")return!1}function $Fe(e,t,n){let r=t[bE]||t[_O];if(r)return V6t({attributes:t,name:e,kind:n},r);let i=t[SE]||t[o7],s=typeof t[zt]=="string"&&t[zt].startsWith("cache.");if(i&&!s)return G6t({attributes:t,name:e});let o=t[Ki]==="custom"?"custom":"route";if(t[y7])return{...LP(e,t,"route"),op:"rpc"};if(t[g7])return{...LP(e,t,o),op:"message"};let u=t[c7];return u?{...LP(e,t,o),op:u.toString()}:{op:void 0,description:e,source:"custom"}}function eje(e){let t=eee(e)?e.attributes:{},n=ZFe(e)?e.name:"",r=H6t(e);return $Fe(n,t,r)}function G6t({attributes:e,name:t}){let n=e[Kl];if(typeof n=="string")return{op:"db",description:n,source:e[Ki]||"custom"};if(e[Ki]==="custom")return{op:"db",description:t,source:"custom"};let r=e[a7];return{op:"db",description:r?r.toString():t,source:"task"}}function V6t({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}=K6t(n,t);if(!s)return{...LP(e,n),op:i.join(".")};let l=n[PA],d=`${r} ${s}`,f=l?`${d} (${W6t(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[Ki]==="custom",S=n[Kl],E=!b&&S==null&&(m||!y),{description:_,source:T}=E?{description:f,source:p}:LP(e,n);return{op:i.join("."),description:_,source:T,data:h}}function W6t(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 K6t(e,t){let n=e[f7],r=e[gR]||e[py],i=e[dm],s=typeof r=="string"?Ly(r):void 0,o=s?Uy(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:vm(n),url:o,query:a,fragment:c,hasRoute:!1}:s?{urlPath:o,url:o,query:a,fragment:c,hasRoute:!1}:typeof n=="string"?{urlPath:vm(n),url:o,query:a,fragment:c,hasRoute:!1}:{urlPath:void 0,url:o,query:a,fragment:c,hasRoute:!1}}function LP(e,t,n="custom"){let r=t[Ki]||n,i=t[Kl];return i&&typeof i=="string"?{description:i,source:r}:{description:e,source:r}}function tje(e){e.on("createDsc",(t,n)=>{if(!n)return;let s=vt(n).data[Ki],{description:o}=ZFe(n)?eje(n):{description:void 0};if(s!=="url"&&o&&(t.transaction=o),Os()){let a=OA(n.spanContext());t.sampled=a==null?void 0:String(a)}})}function nje(){return jt.getActiveSpan()}function rje({dsc:e,sampled:t}){let n=e?OE(e):void 0,r=new Mc.TraceState,i=n?r.set(tee,n):r;return t===!1?i.set(nee,"1"):i}function sje(){return Array.from(ije)}function tB(e){ije.add(e)}function oje(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:OA(a)}}if(n){let a=n.spanContext();return{dynamicSamplingContext:Ps(n),traceId:a.traceId,spanId:a.spanId,sampled:OA(a)}}let r=t.scope||NA(e)?.scope||Fn(),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 aje(e,{sentryTrace:t,baggage:n}){let r=WO(t,n),{traceId:i,parentSpanId:s,sampled:o,dsc:a}=r,c=ct(),u=Sm(n);if(!s||c&&!lX(c,u?.org_id))return e;let l=Q6t({traceId:i,spanId:s,sampled:o,dsc:a});return jt.setSpanContext(e,l)}function Y6t(e,t,n){let r=cje(aje(e,t));return Ve.with(r,n)}function cje(e){let t=NA(e),n={scope:t?t.scope:Fn().clone(),isolationScope:t?t.isolationScope:vn()};return QFe(e,n)}function Z6t(e){try{let t=e[G$];return Array.isArray(t)?t.join(","):t}catch{return}}function J6t(e){try{return e[Xq]}catch{return}}function X6t(e){let t=vt(e).data,n=t[gR]||t[py];if(typeof n=="string")return n;let r=e.spanContext().traceState?.get(JFe);if(r)return r}function Q6t({spanId:e,traceId:t,sampled:n,dsc:r}){let i=rje({dsc:r,sampled:n});return{traceId:t,spanId:e,isRemote:!0,traceFlags:n?qa.SAMPLED:qa.NONE,traceState:i}}function uje(e,t,n){let r=dje(),{name:i,parentSpan:s}=e;return gje(s)(()=>{let a=hje(e.scope,e.forceTransaction),u=e.onlyIfParent&&!jt.getSpan(a)?(0,Mc.suppressTracing)(a):a,l=fje(e);if(!Os()){let d=(0,Mc.isTracingSuppressed)(u)?u:(0,Mc.suppressTracing)(u);return Ve.with(d,()=>r.startActiveSpan(i,l,d,f=>(Y$(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=>(Y$(d),uf(()=>t(d),()=>{vt(d).status===void 0&&d.setStatus({code:as.ERROR})},n?()=>d.end():void 0)))})}function $6t(e,t){return uje(e,t,!0)}function e5t(e,t){return uje(e,n=>t(n,()=>n.end()),!1)}function t5t(e){let t=dje(),{name:n,parentSpan:r}=e;return gje(r)(()=>{let s=hje(e.scope,e.forceTransaction),a=e.onlyIfParent&&!jt.getSpan(s)?(0,Mc.suppressTracing)(s):s,c=fje(e);Os()||(a=(0,Mc.isTracingSuppressed)(a)?a:(0,Mc.suppressTracing)(a));let u=t.startSpan(n,c,a);return Y$(u),u})}function lje(e,t){let n=e?jt.setSpan(Ve.active(),e):jt.deleteSpan(Ve.active());return Ve.with(n,()=>t(Fn()))}function dje(){return ct()?.tracer||jt.getTracer("@sentry/opentelemetry",Cn)}function fje(e){let{startTime:t,attributes:n,kind:r,op:i,links:s}=e,o=typeof t=="number"?pje(t):t;return{attributes:i?{[zt]:i,...n}:n,kind:r,links:s,startTime:o}}function pje(e){return e<9999999999?e*1e3:e}function Y$(e){let t=e.end.bind(e);e.end=n=>t(typeof n=="number"?pje(n):n)}function hje(e,t){let n=n5t(e),r=jt.getSpan(n);if(!r||!t)return n;let i=jt.deleteSpan(n),{spanId:s,traceId:o}=r.spanContext(),a=OA(r.spanContext()),c=cs(r),u=Ps(c),l=rje({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 n5t(e){if(e){let t=UP(e);if(t)return t}return Ve.active()}function r5t(e,t){return Y6t(Ve.active(),e,t)}function i5t(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,()=>(Fn().setPropagationContext({traceId:t,sampleRand:Do()}),e()))}function mje(e,t){let n=UP(t),r=n&&jt.getSpan(n),i=r?Ny(r):xE(t);return[r?Ps(r):Fp(e,t),i]}function gje(e){return e!==void 0?t=>lje(e,t):t=>t()}function s5t(e){let t=(0,Mc.suppressTracing)(Ve.active());return Ve.with(t,e)}function yje(e){e.on("preprocessEvent",t=>{let n=nje();if(!n||t.type==="transaction")return;t.contexts={trace:Ny(n),...t.contexts};let r=cs(n);return t.sdkProcessingMetadata={dynamicSamplingContext:Ps(r),...t.sdkProcessingMetadata},t})}function o5t({span:e,scope:t,client:n,propagateTraceparent:r}={}){let i=(t&&UP(t))??Ve.active();if(e){let{scope:l}=of(e);i=l&&UP(l)||jt.setSpan(Ve.active(),e)}let{traceId:s,spanId:o,sampled:a,dynamicSamplingContext:c}=oje(i,{scope:t,client:n}),u={"sentry-trace":Oy(s,o,a),baggage:OE(c)};return r&&(u.traceparent=Py(s,o,a)),u}function Sje(){function e(){let a=Ve.active(),c=NA(a);return c||{scope:qR(),isolationScope:Wl()}}function t(a){let c=Ve.active();return Ve.with(c,()=>a(s()))}function n(a,c){let u=UP(a)||Ve.active();return Ve.with(u.setValue(W$,a),()=>c(a))}function r(a){let c=Ve.active();return Ve.with(c.setValue(V$,!0),()=>a(o()))}function i(a,c){let u=Ve.active();return Ve.with(u.setValue(K$,a),()=>c(o()))}function s(){return e().scope}function o(){return e().isolationScope}eX({withScope:t,withSetScope:n,withSetIsolationScope:i,withIsolationScope:r,getCurrentScope:s,getIsolationScope:o,startSpan:$6t,startSpanManual:e5t,startInactiveSpan:t5t,getActiveSpan:nje,suppressTracing:s5t,getTraceData:o5t,continueTrace:r5t,startNewTrace:i5t,withActiveSpan:lje})}function bje(e){class t extends e{constructor(...r){super(...r),tB("SentryContextManager")}with(r,i,s,...o){let a=NA(r),c=a?.scope||Fn(),u=a?.isolationScope||vn(),l=r.getValue(V$)===!0,d=r.getValue(W$),f=r.getValue(K$),p=d||c.clone(),h=f||(l?u.clone():u),y=QFe(r,{scope:p,isolationScope:h}).deleteValue(V$).deleteValue(W$).deleteValue(K$);return z6t(p,y),super.with(y,i,s,...o)}getAsyncLocalStorageLookup(){return{asyncLocalStorage:this._asyncLocalStorage,contextSymbol:ree}}}return t}function a5t(e){let t=new Map;for(let n of e)c5t(t,n);return Array.from(t,function([n,r]){return r})}function Eje(e){return e.attributes[Q$]===!0?void 0:$$(e)}function c5t(e,t){let n=t.spanContext().spanId,r=Eje(t);if(!r){Z$(e,{id:n,span:t,children:[]});return}let i=u5t(e,r),s=Z$(e,{id:n,span:t,parentNode:i,children:[]});i.children.push(s)}function u5t(e,t){let n=e.get(t);return n||Z$(e,{id:t,children:[]})}function Z$(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 Tje(e){let t=eee(e)?e.attributes:{},n=F6t(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=WFe(t);if(i)return i}return n.message&&l5t(n.message)?{code:2,message:n.message}:{code:2,message:"internal_error"}}}let r=WFe(t);return r||(n?.code===as.UNSET?{code:1}:{code:2,message:"unknown_error"})}function WFe(e){let t=e[lm]||e[yE],n=e[S7],r=typeof t=="number"?t:typeof t=="string"?parseInt(t):void 0;if(typeof r=="number")return ym(r);if(typeof n=="string")return{code:2,message:_je[n]||"unknown_error"}}function d5t(e){let t=e.attributes,n=t[At],r=t[zt],i=t[Ki];return{origin:n,op:r,source:i}}function f5t(e){let{op:t,description:n,data:r,origin:i="manual",source:s}=vje(e),o=of(e),a=e.attributes[sf],c={[Ki]:s,[sf]:a,[zt]:t,[At]:i,...r,...Rje(e.attributes)},{links:u}=e,{traceId:l,spanId:d}=e.spanContext(),f=$$(e),p=Tje(e),h={parent_span_id:f,span_id:d,trace_id:l,data:c,origin:i,op:t,status:CE(p),links:NE(u)},m=c[lm],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 X$(e,t,n){let r=e.span;if(r&&n.add(r),!r){e.children.forEach(S=>{X$(S,t,n)});return}let s=r.spanContext().spanId,o=r.spanContext().traceId,a=$$(r),{attributes:c,startTime:u,endTime:l,links:d}=r,{op:f,description:p,data:h,origin:m="manual"}=vje(r),g={[At]:m,[zt]:f,...Rje(c),...h},y=Tje(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:CE(y),op:f,origin:m,measurements:ME(r.events),links:NE(d)};t.push(b),e.children.forEach(S=>{X$(S,t,n)})}function vje(e){let{op:t,source:n,origin:r}=d5t(e),{op:i,description:s,source:o,data:a}=eje(e),c=t||i,u=n||o,l={...a,...p5t(e)};return{op:c,description:s,source:u,origin:r,data:l}}function Rje(e){let t={...e};return delete t[sf],delete t[Q$],delete t[Kl],t}function p5t(e){let t=e.attributes,n={};e.kind!==$r.INTERNAL&&(n["otel.kind"]=$r[e.kind]);let r=t[yE];r&&(n[lm]=r);let i=j6t(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 h5t(e,t){let n=jt.getSpan(t),r=NA(t);n&&!n.spanContext().isRemote&&YR(n,e),n?.spanContext().isRemote&&e.setAttribute(Q$,!0),t===lR&&(r={scope:qR(),isolationScope:Wl()}),r&&GO(e,r.scope,r.isolationScope),$O(e),ct()?.emit("spanStart",e)}function m5t(e){eP(e),ct()?.emit("spanEnd",e)}function g5t(e,t,n){let r=e.spanContext();if(um(r)&&r.traceId===t){if(r.isRemote){let s=OA(e.spanContext());return Zy&&Z.log(`[Tracing] Inheriting remote parent's sampled decision for ${n}: ${s}`),s}let i=OA(r);return Zy&&Z.log(`[Tracing] Inheriting parent's sampled decision for ${n}: ${i}`),i}}function xA({decision:e,context:t,spanAttributes:n,sampleRand:r,downstreamTraceSampleRate:i}){let s=y5t(t,n);return i!==void 0&&(s=s.set(B6t,`${i}`)),r!==void 0&&(s=s.set(q6t,`${r}`)),e==null?{decision:Yy.SamplingDecision.NOT_RECORD,traceState:s}:e===Yy.SamplingDecision.NOT_RECORD?{decision:e,traceState:s.set(nee,"1")}:{decision:e,traceState:s}}function y5t(e,t){let i=jt.getSpan(e)?.spanContext()?.traceState||new Mc.TraceState,s=t[gR]||t[py];return s&&typeof s=="string"&&(i=i.set(JFe,s)),i}function S5t(e){let t=jt.getSpan(e);return t&&um(t.spanContext())?t:void 0}var Mc,Yy,Q$,PA,Xq,G$,tee,nee,JFe,q6t,B6t,ree,V$,W$,K$,XFe,Zy,ije,Qq,_je,l5t,KFe,YFe,J$,$q,eB,CA=v(()=>{Nn();st();Me();Me();Mc=Re(pr(),1),Yy=Re(z$(),1),Q$="sentry.parentIsRemote",PA="sentry.graphql.operation";Xq="sentry-trace",G$="baggage",tee="sentry.dsc",nee="sentry.sampled_not_recording",JFe="sentry.url",q6t="sentry.sample_rand",B6t="sentry.sample_rate",ree=il("sentry_scopes"),V$=il("sentry_fork_isolation_scope"),W$=il("sentry_fork_set_scope"),K$=il("sentry_fork_set_isolation_scope"),XFe="_scopeContext";Zy=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;ije=new Set;Qq=class extends Mc.W3CBaggagePropagator{constructor(){super(),tB("SentryPropagator"),this._urlMatchesTargetsMap=new fu(100)}inject(t,n,r){if((0,Mc.isTracingSuppressed)(t)){Zy&&Z.log("[Tracing] Not injecting trace data for url because tracing is suppressed.");return}let i=jt.getSpan(t),s=i&&X6t(i),{tracePropagationTargets:o,propagateTraceparent:a}=ct()?.getOptions()||{};if(!FE(s,o,this._urlMatchesTargetsMap)){Zy&&Z.log("[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:",s);return}let c=Z6t(n),u=J6t(n),l=Qd.getBaggage(t)||Qd.createBaggage({}),{dynamicSamplingContext:d,traceId:f,spanId:p,sampled:h}=oje(t);if(c){let m=PE(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!==hE&&(r.set(n,Xq,Oy(f,p,h)),a&&r.set(n,"traceparent",Py(f,p,h))),super.inject(Qd.setBaggage(t,l),n,r)}extract(t,n,r){let i=r.get(n,Xq),s=r.get(n,G$),o=i?Array.isArray(i)?i[0]:i:void 0;return cje(aje(t,{sentryTrace:o,baggage:s}))}fields(){return[Xq,G$,"traceparent"]}};_je={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"},l5t=e=>Object.values(_je).includes(e);KFe=1e3,YFe=300,J$=class{constructor(t){this._finishedSpanBucketSize=t?.timeout||YFe,this._finishedSpanBuckets=new Array(this._finishedSpanBucketSize).fill(void 0),this._lastCleanupTimestampInS=Math.floor(Vl()/1e3),this._spansToBucketEntry=new WeakMap,this._sentSpans=new Map,this._debouncedFlush=ZX(this.flush.bind(this),1,{maxWait:100})}export(t){let n=Math.floor(Vl()/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&&Zy&&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=Eje(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;Zy&&Z.log(`SpanExporter exported ${r} spans, ${i} spans are waiting for their parent spans to finish`);let s=Vl()+YFe*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=a5t(t),r=new Set,i=this._getCompletedRootNodes(n);for(let s of i){let o=s.span;r.add(o);let a=f5t(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)X$(l,c,r);a.spans=c.length>KFe?c.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,KFe):c;let u=ME(o.events);u&&(a.measurements=u),dH(a)}return r}_flushSentSpanCache(){let t=Vl();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))}};$q=class{constructor(t){tB("SentrySpanProcessor"),this._exporter=new J$(t)}async forceFlush(){this._exporter.flush()}async shutdown(){this._exporter.clear()}onStart(t,n){h5t(t,n)}onEnd(t){m5t(t),this._exporter.export(t)}},eB=class{constructor(t){this._client=t,tB("SentrySampler")}shouldSample(t,n,r,i,s,o){let a=this._client.getOptions(),c=S5t(t),u=c?.spanContext();if(!Os(a))return xA({decision:void 0,context:t,spanAttributes:s});let l=s[_O]||s[bE];if(i===$r.CLIENT&&l&&(!c||u?.isRemote))return xA({decision:void 0,context:t,spanAttributes:s});let d=c?g5t(c,n,r):void 0;if(!(!c||u?.isRemote))return xA({decision:d?Yy.SamplingDecision.RECORD_AND_SAMPLED:Yy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s});let{description:p,data:h,op:m}=$Fe(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 xA({decision:void 0,context:t,spanAttributes:s});let{isolationScope:b}=NA(t)??{},S=u?.traceState?u.traceState.get(tee):void 0,E=S?Sm(S):void 0,_=cl(E?.sample_rand)??Do(),[T,R,A]=tP(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"?(Zy&&Z.log(`[Tracing] Not sampling span because HTTP method is '${x}' for ${r}`),xA({decision:Yy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:0})):(!T&&d===void 0&&(Zy&&Z.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),this._client.recordDroppedEvent("sample_rate","transaction")),{...xA({decision:T?Yy.SamplingDecision.RECORD_AND_SAMPLED:Yy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:A?R:void 0}),attributes:{[sf]:A?R:void 0}})}toString(){return"SentrySampler"}}});var Aje,iee,wje=v(()=>{Aje=Re(WUe(),1);CA();iee=bje(Aje.AsyncLocalStorageContextManager)});function see(){sl.disable(),sl.setLogger({error:Z.error,warn:Z.warn,info:Z.log,debug:Z.log,verbose:Z.log},ho.DEBUG)}var kje=v(()=>{Me();st()});import*as oee from"node:diagnostics_channel";function E5t(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&&Zl({category:"child_process",message:`Child process exited with code '${i}'`,level:i===0?"info":"warning",data:r}))}).on("error",i=>{n||(n=!0,Zl({category:"child_process",message:`Child process errored with '${i.message}'`,level:"error",data:r}))})}function _5t(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)}}}):Zl({category:"worker_thread",message:`Worker thread errored with '${r.message}'`,level:"error",data:{threadId:n}})})}var b5t,Ije,xje=v(()=>{st();b5t="ChildProcess",Ije=(e={})=>({name:b5t,setup(){oee.channel("child_process").subscribe(t=>{t&&typeof t=="object"&&"process"in t&&E5t(t.process,e)}),oee.channel("worker_threads").subscribe(t=>{t&&typeof t=="object"&&"worker"in t&&_5t(t.worker,e)})}})});import{execFile as T5t}from"node:child_process";import{readFile as v5t,readdir as R5t}from"node:fs";import*as Ho from"node:os";import{join as A5t}from"node:path";import{promisify as Pje}from"node:util";function O5t(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 P5t(){let e=Ho.platform();switch(e){case"darwin":return F5t();case"linux":return j5t();default:return{name:D5t[e]||e,version:Ho.release()}}}function N5t(){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 C5t(){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 M5t(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 F5t(){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)=>{T5t("/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 Oje(e){return e.split(" ")[0].toLowerCase()}async function j5t(){let e={kernel_version:Ho.release(),name:"Linux"};try{let t=await k5t("/etc"),n=L5t.find(a=>t.includes(a.name));if(!n)return e;let r=A5t("/etc",n.name),i=(await w5t(r,{encoding:"utf-8"})).toLowerCase(),{distros:s}=n;e.name=s.find(a=>i.indexOf(Oje(a))>=0)||s[0];let o=Oje(e.name);e.version=U5t[o]?.(i)}catch{}return e}function H5t(){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 w5t,k5t,I5t,x5t,Nje,D5t,L5t,U5t,Cje=v(()=>{w5t=Pje(v5t),k5t=Pje(R5t),I5t="Context",x5t=((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=O5t(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 P5t()),n.app&&(s.app=C5t()),n.device&&(s.device=M5t(n.device)),n.culture){let o=N5t();o&&(s.culture=o)}return n.cloudResource&&(s.cloud_resource=H5t()),s}return{name:I5t,processEvent(s){return r(s)}}}),Nje=x5t;D5t={aix:"IBM AIX",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"SunOS",win32:"Windows",ohos:"OpenHarmony",android:"Android"},L5t=[{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"]}],U5t={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 q5t}from"node:fs";import{createInterface as B5t}from"node:readline";function K5t(e,t,n){let r=e.get(t);return r===void 0?(e.set(t,n),n):r}function Y5t(e){return!!(e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:"))}function Z5t(e){return e.lineno!==void 0&&e.lineno>W5t||e.colno!==void 0&&e.colno>V5t}function J5t(e,t){let n=aee.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 X5t(e,t){if(!e.length)return[];let n=0,r=e[0];if(typeof r!="number")return[];let i=Dje(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=Dje(o,t)),n++}return s}function Q5t(e,t,n){return new Promise((r,i)=>{let s=q5t(e),o=B5t({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){Lje.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 $5t(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"||Y5t(c)||Z5t(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(Lje.get(s))continue;let o=n[s];if(!o)continue;o.sort((u,l)=>u-l);let a=X5t(o,t);if(a.every(u=>J5t(s,u)))continue;let c=K5t(aee,s,{});i.push(Q5t(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&&e8t(s.stacktrace.frames,t,aee);return e}function e8t(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;t8t(r.lineno,r,t,i)}}function Mje(e){delete e.pre_context,delete e.context_line,delete e.post_context}function t8t(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=Uje(e,n);s{st();ff();aee=new fu(10),Lje=new fu(20),z5t=7,G5t="ContextLines",V5t=1e3,W5t=1e4;n8t=((e={})=>{let t=e.frameContextLines!==void 0?e.frameContextLines:z5t;return{name:G5t,processEvent(n){return $5t(n,t)}}}),jje=n8t});async function rB(){if(nB===void 0)try{nB=!!(await import("node:inspector")).url()}catch{nB=!1}return nB}var nB,cee=v(()=>{});function Bje(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 qje(e){return e!==void 0&&(e.length===0||e==="?"||e==="")}function iB(e,t){return e===t||`Object.${e}`===t||e===`Object.${t}`||qje(e)&&qje(t)}var FP,uee=v(()=>{FP="__SENTRY_ERROR_LOCAL_VARIABLES__"});import{Worker as r8t}from"node:worker_threads";function zje(...e){Z.log("[LocalVariables]",...e)}var i8t,Gje,Vje=v(()=>{st();cee();uee();i8t="LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQ3LjAgKGE1YTRlNzMpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=";Gje=((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=>{zje("Worker error",a)}),o.once("exit",a=>{zje("Worker exit",a)}),o.unref()}return{name:"LocalVariablesAsync",async setup(s){if(!s.getOptions().includeLocalVariables)return;if(await rB()){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 Wje(e){if(e!==void 0)return e.slice(-10).reduce((t,n)=>`${t},${n.function},${n.lineno},${n.colno}`,"")}function s8t(e,t){if(t!==void 0)return Wje(e(t,1))}function Kje(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 lee,o8t,a8t,Yje,Zje=v(()=>{st();yA();cee();uee();lee=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}=Kje(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)}},o8t="LocalVariables",a8t=((e={},t)=>{let n=new fu(20),r,i=!1;function s(u){let l=Wje(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 rB()){Z.warn("Local variables capture has been disabled because the debugger was already enabled");return}try{let f=await lee.create(t),p=(m,{params:{reason:g,data:y,callFrames:b}},S)=>{if(g!=="exception"&&g!=="promiseRejection"){S();return}r?.();let E=s8t(m,y.description);if(E==null){S();return}let{add:_,next:T}=Kje(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=Bje(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:o8t,setupOnce(){a=c()},async processEvent(u){return await a,i?o(u):u},_getCachedFramesCount(){return n.size},_getFirstCachedFrame(){return n.values()[0]}}}),Yje=a8t});var Jje,Xje=v(()=>{yA();Vje();Zje();Jje=(e={})=>pf.major<19?Yje(e):Gje(e)});function jP(){try{return typeof module<"u"&&typeof module.exports<"u"}catch{return!1}}function $je(){return jP()?!1:wm>=21||wm===20&&IP>=6||wm===18&&IP>=19?!0:(Qje||(Qje=!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 Qje,sB=v(()=>{st();yA()});import{existsSync as c8t,readFileSync as tHe}from"node:fs";import{dirname as u8t,join as nHe}from"node:path";function p8t(){try{return Y.cache?Object.keys(Y.cache):[]}catch{return[]}}function h8t(){return{...d8t,...y8t(),...jP()?m8t():{}}}function m8t(){let e=Y.main?.paths||[],t=p8t(),n={},r=new Set;return t.forEach(i=>{let s=i,o=()=>{let a=s;if(s=u8t(a),!s||a===s||r.has(a))return;if(e.indexOf(s)<0)return o();let c=nHe(a,"package.json");if(r.add(a),!c8t(c))return o();try{let u=JSON.parse(tHe(c,"utf8"));n[u.name]=u.version}catch{}};o()}),n}function eHe(){return dee||(dee=h8t()),dee}function g8t(){try{let e=nHe(process.cwd(),"package.json");return JSON.parse(tHe(e,"utf8"))}catch{return{}}}function y8t(){let e=g8t();return{...e.dependencies,...e.devDependencies}}var dee,l8t,d8t,f8t,rHe,iHe=v(()=>{sB();l8t="Modules",d8t=typeof __SENTRY_SERVER_MODULES__>"u"?{}:__SENTRY_SERVER_MODULES__,f8t=(()=>({name:l8t,processEvent(e){return e.modules={...e.modules,...eHe()},e},getModules:eHe})),rHe=f8t});function HP(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:S8t;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 S8t,fee=v(()=>{st();ff();S8t=2e3});import{isMainThread as b8t}from"worker_threads";function _8t(e,t){let r=!1,i=!1,s=!1,o,a=e.getOptions();return Object.assign(c=>{let u=HP;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"),HP(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 E8t,sHe,oHe=v(()=>{st();ff();fee();E8t="OnUncaughtException",sHe=(e={})=>{let t={exitEvenIfOtherHandlersAreRegistered:!1,...e};return{name:E8t,setup(n){b8t&&global.process.on("uncaughtException",_8t(n,t))}}}});function A8t(e){if(typeof e!="object"||e===null)return{name:"",message:String(e??"")};let t=e,n=typeof t.name=="string"?t.name:"",r=typeof t.message=="string"?t.message:String(e);return{name:n,message:r}}function w8t(e,t){let n=e.name===void 0||hm(t.name,e.name,!0),r=e.message===void 0||hm(t.message,e.message);return n&&r}function k8t(e,t){let n=A8t(t);return e.some(r=>w8t(r,n))}function I8t(e,t){return function(r,i){if(ct()!==e||k8t(t.ignore??[],r))return;let s=t.mode==="strict"?"fatal":"error",o=r&&typeof r=="object"?r._sentry_active_span:void 0;(o?c=>XR(o,c):c=>c())(()=>{Wt(r,{originalException:i,captureContext:{extra:{unhandledPromiseRejection:!0},level:s},mechanism:{handled:!1,type:"auto.node.onunhandledrejection"}})}),x8t(r,t.mode)}}function x8t(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)}),HP(e))}var T8t,v8t,R8t,aHe,cHe=v(()=>{st();fee();T8t="OnUnhandledRejection",v8t=[{name:"AI_NoOutputGeneratedError"},{name:"AbortError"}],R8t=((e={})=>{let t={mode:e.mode??"warn",ignore:[...v8t,...e.ignore??[]]};return{name:T8t,setup(n){global.process.on("unhandledRejection",I8t(n,t))}}}),aHe=R8t});var O8t,uHe,lHe=v(()=>{st();O8t="ProcessSession",uHe=()=>({name:O8t,setupOnce(){pH(),process.on("beforeExit",()=>{vn().getSession()?.status!=="ok"&&iP()})}})});import*as dHe from"node:http";function N8t(e,t){let n=C8t(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=QO(i);QR(()=>{let o=dHe.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 C8t(e){try{return new URL(`${e}`)}catch{Z.warn(`[Spotlight] Invalid sidecar URL: ${e}`);return}}var pee,P8t,fHe,pHe=v(()=>{st();pee="Spotlight",P8t=((e={})=>{let t={sidecarUrl:e.sidecarUrl||"http://localhost:8969/stream"};return{name:pee,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{}N8t(n,t)}}}),fHe=P8t});import*as hHe from"node:util";function D8t(e){return!(e instanceof Error)||!("errno"in e)||typeof e.errno!="number"?!1:hHe.getSystemErrorMap().has(e.errno)}var M8t,mHe,gHe=v(()=>{M8t="NodeSystemError";mHe=(e={})=>({name:M8t,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 hee from"node:http";var Zp,oB,yHe=v(()=>{Zp=Symbol("AgentBaseInternalState"),oB=class extends hee.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 hee.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 aB(...e){Z.log("[https-proxy-agent:parse-proxy-response]",...e)}function SHe(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(),aB("onend"),n(new Error("Proxy connection ended before receiving CONNECT response"))}function c(l){o(),aB("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){aB("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}aB("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 yHe=v(()=>{st()});import*as xm from"node:net";import*as mee from"node:tls";function qP(...e){Z.log("[https-proxy-agent]",...e)}function D8t(e){e.resume()}function SHe(e,...t){let n={},r;for(r in e)t.includes(r)||(n[r]=e[r]);return n}var BP,bHe=v(()=>{st();mHe();yHe();BP=class extends oB{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??{},qP("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?SHe(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:"){qP("Creating `tls.Socket`: %o",this.connectOpts);let f=this.connectOpts.servername||this.connectOpts.host;i=mee.connect({...this.connectOpts,servername:f&&xm.isIP(f)?void 0:f})}else qP("Creating `net.Socket`: %o",this.connectOpts),i=xm.connect(this.connectOpts);let s=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},o=xm.isIPv6(n.host)?`[${n.host}]`:n.host,a=`CONNECT ${o}:${n.port} HTTP/1.1\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}aB("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 bHe=v(()=>{st()});import*as xm from"node:net";import*as mee from"node:tls";function qP(...e){Z.log("[https-proxy-agent]",...e)}function L8t(e){e.resume()}function EHe(e,...t){let n={},r;for(r in e)t.includes(r)||(n[r]=e[r]);return n}var BP,_He=v(()=>{st();yHe();bHe();BP=class extends oB{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??{},qP("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?EHe(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:"){qP("Creating `tls.Socket`: %o",this.connectOpts);let f=this.connectOpts.servername||this.connectOpts.host;i=mee.connect({...this.connectOpts,servername:f&&xm.isIP(f)?void 0:f})}else qP("Creating `net.Socket`: %o",this.connectOpts),i=xm.connect(this.connectOpts);let s=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},o=xm.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=gHe(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",D8t),n.secureEndpoint){qP("Upgrading socket connection to TLS");let f=n.servername||n.host;return mee.connect({...SHe(n,"host","path","port"),socket:i,servername:xm.isIP(f)?void 0:f})}return i}i.destroy();let d=new xm.Socket({writable:!1});return d.readable=!0,t.once("socket",f=>{qP("Replaying proxy buffer for failed request"),f.push(l),f.push(null)}),d}};BP.__initStatic()});import*as L8t from"node:http";import*as U8t from"node:https";import{Readable as F8t}from"node:stream";import{createGzip as j8t}from"node:zlib";function q8t(e){return new F8t({read(){this.push(e),this.push(null)}})}function EHe(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.")}),aP(e,()=>Promise.resolve({}))}let n=t.protocol==="https:",r=B8t(t,e.proxy||(n?process.env.https_proxy:void 0)||process.env.http_proxy),i=n?U8t:L8t,s=e.keepAlive===void 0?!1:e.keepAlive,o=r?new BP(r):new i.Agent({keepAlive:s,maxSockets:30,timeout:2e3}),a=z8t(e,e.httpModule??i,o);return aP(e,a)}function B8t(e,t){let{no_proxy:n}=process.env;if(!n?.split(",").some(i=>e.host.endsWith(i)||e.hostname.endsWith(i)))return t}function z8t(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)=>{QR(()=>{let f=q8t(u.body),p={...e.headers};u.body.length>H8t&&(p["content-encoding"]="gzip",f=f.pipe(j8t()));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 H8t,_He=v(()=>{st();bHe();H8t=1024*32});function THe(e){if(e===!1)return!1;if(typeof e=="string")return e;let t=iA(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 vHe=v(()=>{st()});import{posix as G8t,sep as V8t}from"node:path";function RHe(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}function AHe(e=process.argv[1]?eQ(process.argv[1]):process.cwd(),t=V8t==="\\"){let n=t?RHe(e):e;return r=>{if(!r)return;let i=t?RHe(r):r,{dir:s,base:o,ext:a}=G8t.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 wHe=v(()=>{st()});function kHe(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 IHe,xHe=v(()=>{st();wHe();IHe=Cj(qQ(AHe()))});import*as OHe from"node:os";import{threadId as W8t,isMainThread as K8t}from"worker_threads";var PHe,Y8t,cB,NHe=v(()=>{Me();PHe=Re(Jt(),1);st();CA();ff();Y8t=6e4,cB=class extends cP{constructor(t){let n=t.includeServerName===!1?void 0:t.serverName||global.process.env.SENTRY_NAME||OHe.hostname(),r={...t,platform:"node",runtime:t.runtime||{name:"node",version:global.process.version},serverName:n};t.openTelemetryInstrumentations&&(0,PHe.registerInstrumentations)({instrumentations:t.openTelemetryInstrumentations}),UE(r,"node"),Z.log(`Initializing Sentry: process: ${process.pid}, thread: ${K8t?"main":`worker-${W8t}`}.`),super(r),this.getOptions().enableLogs&&(this._logOnExitFlushListener=()=>{nA(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=Cn,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??Y8t).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener))}_setupIntegrations(){WX(),super._setupIntegrations()}_getTraceInfoFromScope(t){return t?pje(this,t):[void 0,void 0]}}});import*as MHe from"module";function gee(){if(Xje()&&!qt._sentryEsmLoaderHookRegistered){qt._sentryEsmLoaderHookRegistered=!0;try{let{addHookMessagePort:e}=(0,CHe.createAddHookMessageChannel)();MHe.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 CHe,DHe=v(()=>{st();CHe=Re(SJ(),1);sB()});function uB(){return[vH(),_H(),RH(),AH(),pHe(),iQ(),kH(),CUe(),HUe(),rHe(),sHe(),Uje(),Yje(),Oje(),wje(),aHe(),tHe()]}function yee(e={}){return Z8t(e,uB)}function Z8t(e={},t){let n=J8t(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&&gee(),gje(),Fn().update(n.initialScope),n.spotlight&&!n.integrations.some(({name:s})=>s===pee)&&n.integrations.push(lHe({sidecarUrl:typeof n.spotlight=="string"?n.spotlight:void 0})),UE(n,"node-core");let i=new cB(n);return Fn().setClient(i),i.init(),Z.log(`SDK initialized from ${jP()?"CommonJS":"ESM"}`),i.startClientReportTracking(),$8t(),$Fe(i),mje(i),process.env.VERCEL&&process.on("SIGTERM",async()=>{await i.flush(200)}),i}function See(){if(!Qt)return;let e=rje(),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 J8t(e,t){let n=X8t(e.release),r=THe(e.spotlight),i=Q8t(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??EHe,stackParser:CJ(e.stackParser||IHe),release:n,tracesSampleRate:i,spotlight:r,debug:iA(e.debug??process.env.SENTRY_DEBUG)},o=e.integrations,a=e.defaultIntegrations??t(s);return{...s,integrations:CX({defaultIntegrations:a,integrations:o})}}function X8t(e){if(e!==void 0)return e;let t=kHe();if(t!==void 0)return t}function Q8t(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 $8t(){if(iA(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let e=process.env.SENTRY_TRACE,t=process.env.SENTRY_BAGGAGE,n=WO(e,t);Fn().setPropagationContext(n)}}var LHe=v(()=>{st();CA();ff();kje();Pje();Fje();MUe();Zje();nHe();qUe();iHe();oHe();cHe();dHe();hHe();_He();sB();vHe();xHe();NHe();DHe()});function Dr(e,t){e.setAttribute(At,t)}var UHe=v(()=>{st()});function zP(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 FHe=v(()=>{});var sr=v(()=>{VQ();XH();ZQ();$Q();Rje();Aje();ZH();LHe();UHe();FHe();yA()});function n7t(e,t={}){return typeof e.spans=="boolean"?e.spans:!(t.skipOpenTelemetrySetup||!Os(t)&&lB)}function r7t(e={}){return{disableOutgoingRequestInstrumentation:lB,ignoreOutgoingRequestHook:n=>{let r=zP(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=zP(r);if(i.startsWith("data:")){let s=sA(i);n.setAttribute("http.url",s),n.setAttribute(xy,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 HHe,bee,jHe,lB,e7t,t7t,qHe,BHe=v(()=>{Me();HHe=Re(wCe(),1);st();sr();bee="Http",jHe="@opentelemetry_sentry-patched/instrumentation-http",lB=pf.major===22&&pf.minor>=12||pf.major===23&&pf.minor>=2||pf.major>=24,e7t=rt(`${bee}.sentry`,e=>new VE(e)),t7t=rt(bee,e=>{let t=new HHe.HttpInstrumentation({...e,disableIncomingRequestInstrumentation:!0});try{t._diag=sl.createComponentLogger({namespace:jHe}),t.instrumentationName=jHe}catch{}try{let n={get:()=>!1,set:()=>{}};Object.defineProperty(t,"_httpPatched",n),Object.defineProperty(t,"_httpsPatched",n)}catch{}return t});qHe=(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=RP(r),o=AP(i),a=t&&!n;return{name:bee,setup(c){let u=c.getOptions();a&&Os(u)&&o.setup(c)},setupOnce(){let c=ct()?.getOptions()||{},u=n7t(e,c);s.setupOnce();let l={breadcrumbs:e.breadcrumbs,propagateTraceInOutgoingRequests:typeof e.tracePropagation=="boolean"?e.tracePropagation:lB||!u,createSpansForOutgoingRequests:lB,spans:e.spans,ignoreOutgoingRequests:e.ignoreOutgoingRequests,outgoingRequestHook:(d,f)=>{let p=zP(f);if(p.startsWith("data:")){let h=sA(p);d.setAttribute("http.url",h),d.setAttribute(xy,h),d.updateName(`${f.method||"GET"} ${h}`)}e.instrumentation?.requestHook?.(d,f)},outgoingResponseHook:e.instrumentation?.responseHook,outgoingRequestApplyCustomAttributes:e.instrumentation?.applyCustomAttributesOnSpan};if(e7t(l),u){let d=r7t(e);t7t(d)}},processEvent(c){return o.processEvent(c)}}}});var zHe=w(MA=>{"use strict";Object.defineProperty(MA,"__esModule",{value:!0});MA.PACKAGE_NAME=MA.PACKAGE_VERSION=void 0;MA.PACKAGE_VERSION="0.24.0";MA.PACKAGE_NAME="@opentelemetry/instrumentation-undici"});var VHe=w(fB=>{"use strict";Object.defineProperty(fB,"__esModule",{value:!0});fB.UndiciInstrumentation=void 0;var Eee=Y("diagnostics_channel"),i7t=Y("url"),GP=Jt(),pl=(Me(),ke(Ze)),dB=pr(),Vs=(Nn(),ke(Mr)),GHe=zHe(),_ee=class extends GP.InstrumentationBase{_recordFromReq=new WeakMap;constructor(t={}){super(GHe.PACKAGE_NAME,GHe.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)Eee.subscribe?.(t,n),o=()=>Eee.unsubscribe?.(t,n);else{let a=Eee.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,dB.hrTime)(),o;try{o=new i7t.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,GP.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,GP.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,GP.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,dB.hrTimeToMilliseconds)((0,dB.hrTimeDuration)(n,(0,dB.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"}};fB.UndiciInstrumentation=_ee});var WHe=w(pB=>{"use strict";Object.defineProperty(pB,"__esModule",{value:!0});pB.UndiciInstrumentation=void 0;var s7t=VHe();Object.defineProperty(pB,"UndiciInstrumentation",{enumerable:!0,get:function(){return s7t.UndiciInstrumentation}})});function KHe(e,t="/"){let n=`${e}`;return n.endsWith("/")&&t.startsWith("/")?`${n}${t.slice(1)}`:!n.endsWith("/")&&!t.startsWith("/")?`${n}/${t}`:`${n}${t}`}function u7t(e,t={}){return typeof e.spans=="boolean"?e.spans:!t.skipOpenTelemetrySetup&&Os(t)}function l7t(e={}){return{requireParentforSpans:!1,ignoreRequestHook:n=>{let r=KHe(n.origin,n.path),i=e.ignoreOutgoingRequests;return!!(i&&r&&i(r))},startSpanHook:n=>{let r=KHe(n.origin,n.path);if(r.startsWith("data:")){let i=sA(r);return{[At]:"auto.http.otel.node_fetch","http.url":i,[xy]:i,[Kl]:`${n.method||"GET"} ${i}`}}return{[At]:"auto.http.otel.node_fetch"}},requestHook:e.requestHook,responseHook:e.responseHook,headersToSpanAttributes:e.headersToSpanAttributes}}var YHe,ZHe,o7t,a7t,c7t,JHe,XHe=v(()=>{YHe=Re(WHe(),1);st();sr();ZHe="NodeFetch",o7t=rt(ZHe,YHe.UndiciInstrumentation,e=>l7t(e)),a7t=rt(`${ZHe}.sentry`,WE,e=>e),c7t=((e={})=>({name:"NodeFetch",setupOnce(){u7t(e,ct()?.getOptions())&&o7t(e),a7t(e)}})),JHe=c7t});var hB=w(VP=>{"use strict";Object.defineProperty(VP,"__esModule",{value:!0});VP.ExpressLayerType=void 0;var d7t;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(d7t=VP.ExpressLayerType||(VP.ExpressLayerType={}))});var mB=w(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});WP.AttributeNames=void 0;var f7t;(function(e){e.EXPRESS_TYPE="express.type",e.EXPRESS_NAME="express.name"})(f7t=WP.AttributeNames||(WP.AttributeNames={}))});var Tee=w(DA=>{"use strict";Object.defineProperty(DA,"__esModule",{value:!0});DA._LAYERS_STORE_PROPERTY=DA.kLayerPatched=void 0;DA.kLayerPatched=Symbol("express-layer-patched");DA._LAYERS_STORE_PROPERTY="__ot_middlewares"});var eqe=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 vee=hB(),LA=mB(),XE=Tee(),p7t=(e,t)=>(Array.isArray(e[XE._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,XE._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),t===void 0?{isLayerPathStored:!1}:(e[XE._LAYERS_STORE_PROPERTY].push(t),{isLayerPathStored:!0}));Ws.storeLayerPath=p7t;var h7t=(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=h7t;var m7t=(e,t,n)=>{if(t.name==="router"){let r=(0,Ws.getRouterPath)("",t),i=r||n||e||"/";return{attributes:{[LA.AttributeNames.EXPRESS_NAME]:i,[LA.AttributeNames.EXPRESS_TYPE]:vee.ExpressLayerType.ROUTER},name:`router - ${i}`}}else return t.name==="bound dispatch"||t.name==="handle"?{attributes:{[LA.AttributeNames.EXPRESS_NAME]:(e||n)??"request handler",[LA.AttributeNames.EXPRESS_TYPE]:vee.ExpressLayerType.REQUEST_HANDLER},name:`request handler${t.path?` - ${e||n}`:""}`}:{attributes:{[LA.AttributeNames.EXPRESS_NAME]:t.name,[LA.AttributeNames.EXPRESS_TYPE]:vee.ExpressLayerType.MIDDLEWARE},name:`middleware - ${t.name}`}};Ws.getLayerMetadata=m7t;var g7t=(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")},y7t=(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(g7t(e,r))return!0}catch{}return!1};Ws.isLayerIgnored=y7t;var S7t=e=>e instanceof Error?[e,e.message]:[String(e),String(e)];Ws.asErrorAndMessage=S7t;var b7t=e=>{let t=e[0];return Array.isArray(t)?t.map(n=>QHe(n)||"").join(","):QHe(t)};Ws.getLayerPath=b7t;var QHe=e=>{if(typeof e=="string")return e;if(e instanceof RegExp||typeof e=="number")return e.toString()};function $He(e){let n=(Array.isArray(e[XE._LAYERS_STORE_PROPERTY])?e[XE._LAYERS_STORE_PROPERTY]:[]).filter(r=>r!=="/"&&r!=="/*");return n.length===1&&n[0]==="*"?"*":n.join("").replace(/\/{2,}/g,"/")}Ws.getConstructedRoute=$He;function E7t(e){let t=Array.isArray(e[XE._LAYERS_STORE_PROPERTY])?e[XE._LAYERS_STORE_PROPERTY]:[];if(t.length===0)return;if(t.every(s=>s==="/"))return e.originalUrl==="/"?"/":void 0;let n=$He(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)||_7t(r))?r:void 0}Ws.getActualMatchedRoute=E7t;function _7t(e){return e.includes(":")||e.includes("*")}});var tqe=w(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.PACKAGE_NAME=UA.PACKAGE_VERSION=void 0;UA.PACKAGE_VERSION="0.62.0";UA.PACKAGE_NAME="@opentelemetry/instrumentation-express"});var oqe=w(yB=>{"use strict";Object.defineProperty(yB,"__esModule",{value:!0});yB.ExpressInstrumentation=void 0;var nqe=pr(),hu=(Me(),ke(Ze)),rqe=hB(),iqe=mB(),Jp=eqe(),sqe=tqe(),FA=Jt(),T7t=(Nn(),ke(Mr)),gB=Tee(),Ree=class extends FA.InstrumentationBase{constructor(t={}){super(sqe.PACKAGE_NAME,sqe.PACKAGE_VERSION,t)}init(){return[new FA.InstrumentationNodeModuleDefinition("express",[">=4.0.0 <6"],t=>{let n=typeof t?.Router?.prototype?.route=="function",r=n?t.Router.prototype:t.Router;return(0,FA.isWrapped)(r.route)&&this._unwrap(r,"route"),this._wrap(r,"route",this._getRoutePatch()),(0,FA.isWrapped)(r.use)&&this._unwrap(r,"use"),this._wrap(r,"use",this._getRouterUsePatch()),(0,FA.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[gB.kLayerPatched]!==!0&&(t[gB.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={[T7t.ATTR_HTTP_ROUTE]:l},f=(0,Jp.getLayerMetadata)(u,t,n),p=f.attributes[iqe.AttributeNames.EXPRESS_TYPE],h=(0,nqe.getRPCMetadata)(hu.context.active());if(h?.type===nqe.RPCType.HTTP&&(h.route=l),(0,Jp.isLayerIgnored)(f.name,p,r.getConfig()))return p===rqe.ExpressLayerType.MIDDLEWARE&&o[gB._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,FA.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[iqe.AttributeNames.EXPRESS_TYPE]===rqe.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[gB._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}}};yB.ExpressInstrumentation=Ree});var aqe=w(Jy=>{"use strict";Object.defineProperty(Jy,"__esModule",{value:!0});Jy.AttributeNames=Jy.ExpressLayerType=Jy.ExpressInstrumentation=void 0;var v7t=oqe();Object.defineProperty(Jy,"ExpressInstrumentation",{enumerable:!0,get:function(){return v7t.ExpressInstrumentation}});var R7t=hB();Object.defineProperty(Jy,"ExpressLayerType",{enumerable:!0,get:function(){return R7t.ExpressLayerType}});var A7t=mB();Object.defineProperty(Jy,"AttributeNames",{enumerable:!0,get:function(){return A7t.AttributeNames}})});var So,QE=v(()=>{So=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});function w7t(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 k7t(e,t){if(vn()===Wl())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 cqe,uqe,lqe,I7t,dqe,fqe=v(()=>{cqe=Re(aqe(),1);st();sr();QE();uqe="Express";lqe=rt(uqe,()=>new cqe.ExpressInstrumentation({requestHook:e=>w7t(e),spanNameHook:(e,t)=>k7t(e,t)})),I7t=(()=>({name:uqe,setupOnce(){lqe()}})),dqe=I7t});var pqe=w(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});KP.SeverityNumber=void 0;var x7t;(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"})(x7t=KP.SeverityNumber||(KP.SeverityNumber={}))});var EB=w(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.NOOP_LOGGER=jA.NoopLogger=void 0;var bB=class{emit(t){}};jA.NoopLogger=bB;jA.NOOP_LOGGER=new bB});var hqe=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 O7t(e,t,n){return r=>r===e?t:n}Xp.makeGetter=O7t;Xp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var Aee=w(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.NOOP_LOGGER_PROVIDER=HA.NoopLoggerProvider=void 0;var P7t=EB(),_B=class{getLogger(t,n,r){return new P7t.NoopLogger}};HA.NoopLoggerProvider=_B;HA.NOOP_LOGGER_PROVIDER=new _B});var mqe=w(TB=>{"use strict";Object.defineProperty(TB,"__esModule",{value:!0});TB.ProxyLogger=void 0;var N7t=EB(),wee=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):N7t.NOOP_LOGGER}};TB.ProxyLogger=wee});var gqe=w(vB=>{"use strict";Object.defineProperty(vB,"__esModule",{value:!0});vB.ProxyLoggerProvider=void 0;var C7t=Aee(),M7t=mqe(),kee=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new M7t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:C7t.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)}};vB.ProxyLoggerProvider=kee});var Sqe=w(RB=>{"use strict";Object.defineProperty(RB,"__esModule",{value:!0});RB.LogsAPI=void 0;var $l=hqe(),D7t=Aee(),yqe=gqe(),Iee=class e{constructor(){this._proxyLoggerProvider=new yqe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return $l._global[$l.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():($l._global[$l.GLOBAL_LOGS_API_KEY]=(0,$l.makeGetter)($l.API_BACKWARDS_COMPATIBILITY_VERSION,t,D7t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=$l._global[$l.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call($l._global,$l.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete $l._global[$l.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new yqe.ProxyLoggerProvider}};RB.LogsAPI=Iee});var xee=w(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});Qp.logs=Qp.NoopLogger=Qp.NOOP_LOGGER=Qp.SeverityNumber=void 0;var L7t=pqe();Object.defineProperty(Qp,"SeverityNumber",{enumerable:!0,get:function(){return L7t.SeverityNumber}});var bqe=EB();Object.defineProperty(Qp,"NOOP_LOGGER",{enumerable:!0,get:function(){return bqe.NOOP_LOGGER}});Object.defineProperty(Qp,"NoopLogger",{enumerable:!0,get:function(){return bqe.NoopLogger}});var U7t=Sqe();Qp.logs=U7t.LogsAPI.getInstance()});var Eqe=w(qA=>{"use strict";Object.defineProperty(qA,"__esModule",{value:!0});qA.disableInstrumentations=qA.enableInstrumentations=void 0;function F7t(e,t,n,r){for(let i=0,s=e.length;it.disable())}qA.disableInstrumentations=j7t});var vqe=w(AB=>{"use strict";Object.defineProperty(AB,"__esModule",{value:!0});AB.registerInstrumentations=void 0;var _qe=(Me(),ke(Ze)),H7t=xee(),Tqe=Eqe();function q7t(e){let t=e.tracerProvider||_qe.trace.getTracerProvider(),n=e.meterProvider||_qe.metrics.getMeterProvider(),r=e.loggerProvider||H7t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,Tqe.enableInstrumentations)(i,t,n,r),()=>{(0,Tqe.disableInstrumentations)(i)}}AB.registerInstrumentations=q7t});var Nqe=w(wB=>{"use strict";Object.defineProperty(wB,"__esModule",{value:!0});wB.satisfies=void 0;var Cee=(Me(),ke(Ze)),Iqe=/^(?: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-]+)*))?$/,B7t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,z7t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function G7t(e,t,n){if(!V7t(e))return Cee.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=Z7t(e);if(!r)return!1;let i=[],s=xqe(r,t,i,n);return s&&!n?.includePrerelease?K7t(r,i):s}wB.satisfies=G7t;function V7t(e){return typeof e=="string"&&Iqe.test(e)}function xqe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Oee(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=gJt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!Oee(e,s,n,r))return!1;return!0}return Oee(e,t,n,r)}function Oee(e,t,n,r){if(t=Y7t(t,r),t.includes(" "))return xqe(e,t,n,r);{let i=J7t(t);return n.push(i),W7t(e,i)}}function W7t(e,t){if(t.invalid)return!1;if(!t.version||Nee(t.version))return!0;let n=Aqe(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=Aqe(r,i)}return z7t[t.op]?.includes(n)}function K7t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function Y7t(e,t){return e=e.trim(),e=hJt(e,t),e=pJt(e),e=mJt(e,t),e=e.trim(),e}function Dc(e){return!e||e.toLowerCase()==="x"||e==="*"}function Z7t(e){let t=e.match(Iqe);if(!t){Cee.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 J7t(e){if(!e)return{};let t=e.match(B7t);if(!t)return Cee.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function Nee(e){return e==="*"||e==="x"||e==="X"}function Rqe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function X7t(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 Q7t(e,t){if(Nee(e)||Nee(t))return 0;let[n,r]=X7t(Rqe(e),Rqe(t));return n>r?1:n)?=?)",wqe=`(?:${Pqe}|${$7t})`,tJt=`(?:-(${wqe}(?:\\.${wqe})*))`,kqe=`${Oqe}+`,nJt=`(?:\\+(${kqe}(?:\\.${kqe})*))`,Pee=`${Pqe}|x|X|\\*`,YP=`[v=\\s]*(${Pee})(?:\\.(${Pee})(?:\\.(${Pee})(?:${tJt})?${nJt}?)?)?`,rJt=`^${eJt}\\s*${YP}$`,iJt=new RegExp(rJt),sJt=`^\\s*(${YP})\\s+-\\s+(${YP})\\s*$`,oJt=new RegExp(sJt),aJt="(?:~>?)",cJt=`^${aJt}${YP}$`,uJt=new RegExp(cJt),lJt="(?:\\^)",dJt=`^${lJt}${YP}$`,fJt=new RegExp(dJt);function pJt(e){let t=uJt;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 hJt(e,t){let n=fJt,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 mJt(e,t){let n=iJt;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 gJt(e,t){let n=oJt;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 Mee=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 yJt=(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=yJt;var SJt=(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=SJt;var bJt=(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=bJt;var EJt=(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=EJt;function JP(e){e&&e.logger&&(typeof e.logger!="function"?Lc("new logger isn't a function, not replacing"):Lc=e.logger)}da.default=JP;JP.wrap=da.wrap;JP.massWrap=da.massWrap;JP.unwrap=da.unwrap;JP.massUnwrap=da.massUnwrap});var Cqe=w(IB=>{"use strict";Object.defineProperty(IB,"__esModule",{value:!0});IB.InstrumentationAbstract=void 0;var Dee=(Me(),ke(Ze)),_Jt=xee(),kB=Mee(),Lee=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=Dee.diag.createComponentLogger({namespace:t}),this._tracer=Dee.trace.getTracer(t,n),this._meter=Dee.metrics.getMeter(t,n),this._logger=_Jt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=kB.wrap;_unwrap=kB.unwrap;_massWrap=kB.massWrap;_massUnwrap=kB.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)}}};IB.InstrumentationAbstract=Lee});var Mqe=w(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});Xy.ModuleNameTrie=Xy.ModuleNameSeparator=void 0;Xy.ModuleNameSeparator="/";var xB=class{hooks=[];children=new Map},Uee=class{_trie=new xB;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(Xy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new xB,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(Xy.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))}};Xy.ModuleNameTrie=Uee});var Lqe=w(OB=>{"use strict";Object.defineProperty(OB,"__esModule",{value:!0});OB.RequireInTheMiddleSingleton=void 0;var TJt=RE(),Dqe=Y("path"),Fee=Mqe(),vJt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),jee=class e{_moduleNameTrie=new Fee.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new TJt.Hook(null,{internals:!0},(t,n,r)=>{let i=RJt(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 vJt?new e:this._instance=this._instance??new e}};OB.RequireInTheMiddleSingleton=jee;function RJt(e){return Dqe.sep!==Fee.ModuleNameSeparator?e.split(Dqe.sep).join(Fee.ModuleNameSeparator):e}});var qqe=w(XP=>{var Uqe=[],Hee=new WeakMap,Fqe=new WeakMap,jqe=new Map,Hqe=[],AJt={set(e,t,n){let r=Hee.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=Fqe.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=Hee.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function wJt(e,t,n,r,i){jqe.set(e,i),Hee.set(t,n),Fqe.set(t,r);let s=new Proxy(t,AJt);Uqe.forEach(o=>o(e,s,i)),Hqe.push([e,s,i])}XP.register=wJt;XP.importHooks=Uqe;XP.specifiers=jqe;XP.toHook=Hqe});var Vqe=w((RMr,zA)=>{var Bqe=Y("path"),kJt=xO(),{fileURLToPath:IJt}=Y("url"),{MessageChannel:xJt}=Y("worker_threads"),{isBuiltin:qee}=Y("module");qee||(qee=()=>!0);var{importHooks:Bee,specifiers:OJt,toHook:PJt}=qqe();function zqe(e){Bee.push(e),PJt.forEach(([t,n,r])=>e(t,n,r))}function Gqe(e){let t=Bee.indexOf(e);t>-1&&Bee.splice(t,1)}function BA(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var zee;function NJt(){let{port1:e,port2:t}=new xJt,n=0,r;zee=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 QP(e,t,n){if(!(this instanceof QP))return new QP(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;zee&&Array.isArray(e)&&zee(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);qee(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=IJt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=kJt(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)BA(n,s,u,void 0);else if(d===i){if(!l)BA(n,s,i,l);else if(l.endsWith(OJt.get(a)))BA(n,s,i,l);else if(r){let f=i+Bqe.sep+Bqe.relative(l,u);BA(n,s,f,l)}}else d===o&&BA(n,s,o,l);else BA(n,s,i,l)},zqe(this._iitmHook)}QP.prototype.unhook=function(){Gqe(this._iitmHook)};zA.exports=QP;zA.exports.Hook=QP;zA.exports.addHook=zqe;zA.exports.removeHook=Gqe;zA.exports.createAddHookMessageChannel=NJt});var Gee=w(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.isWrapped=Qy.safeExecuteInTheMiddleAsync=Qy.safeExecuteInTheMiddle=void 0;function CJt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}Qy.safeExecuteInTheMiddle=CJt;async function MJt(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}}Qy.safeExecuteInTheMiddleAsync=MJt;function DJt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}Qy.isWrapped=DJt});var Yqe=w(PB=>{"use strict";Object.defineProperty(PB,"__esModule",{value:!0});PB.InstrumentationBase=void 0;var $P=Y("path"),Wqe=Y("util"),LJt=Nqe(),Vee=Mee(),UJt=Cqe(),FJt=Lqe(),jJt=Vqe(),eN=(Me(),ke(Ze)),HJt=RE(),qJt=Y("fs"),BJt=Gee(),Wee=class extends UJt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=FJt.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,BJt.isWrapped)(t[n])&&this._unwrap(t,n),Wqe.types.isProxy(t)){let i=(0,Vee.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,Vee.wrap)(t,n,r)};_unwrap=(t,n)=>Wqe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,Vee.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{eN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){eN.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{eN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){eN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=Y.resolve(n);Y.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,qJt.readFileSync)($P.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{eN.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 Kqe(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=$P.normalize(r);return o.filter(u=>u.name===a&&Kqe(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&&$P.isAbsolute(a)){let u=$P.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=$P.isAbsolute(t.name)?new HJt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new jJt.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}};PB.InstrumentationBase=Wee;function Kqe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,LJt.satisfies)(t,r,{includePrerelease:n}))}});var Zqe=w(NB=>{"use strict";Object.defineProperty(NB,"__esModule",{value:!0});NB.normalize=void 0;var zJt=Y("path");Object.defineProperty(NB,"normalize",{enumerable:!0,get:function(){return zJt.normalize}})});var Jqe=w(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.normalize=GA.InstrumentationBase=void 0;var GJt=Yqe();Object.defineProperty(GA,"InstrumentationBase",{enumerable:!0,get:function(){return GJt.InstrumentationBase}});var VJt=Zqe();Object.defineProperty(GA,"normalize",{enumerable:!0,get:function(){return VJt.normalize}})});var Kee=w(VA=>{"use strict";Object.defineProperty(VA,"__esModule",{value:!0});VA.normalize=VA.InstrumentationBase=void 0;var Xqe=Jqe();Object.defineProperty(VA,"InstrumentationBase",{enumerable:!0,get:function(){return Xqe.InstrumentationBase}});Object.defineProperty(VA,"normalize",{enumerable:!0,get:function(){return Xqe.normalize}})});var Qqe=w(CB=>{"use strict";Object.defineProperty(CB,"__esModule",{value:!0});CB.InstrumentationNodeModuleDefinition=void 0;var Yee=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}};CB.InstrumentationNodeModuleDefinition=Yee});var $qe=w(MB=>{"use strict";Object.defineProperty(MB,"__esModule",{value:!0});MB.InstrumentationNodeModuleFile=void 0;var WJt=Kee(),Zee=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,WJt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};MB.InstrumentationNodeModuleFile=Zee});var eBe=w($E=>{"use strict";Object.defineProperty($E,"__esModule",{value:!0});$E.semconvStabilityFromStr=$E.SemconvStability=void 0;var DB;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(DB=$E.SemconvStability||($E.SemconvStability={}));function KJt(e,t){let n=DB.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=DB.DUPLICATE;break}else i.toLowerCase()===e&&(n=DB.STABLE);return n}$E.semconvStabilityFromStr=KJt});var nBe=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 YJt=vqe();Object.defineProperty(Ks,"registerInstrumentations",{enumerable:!0,get:function(){return YJt.registerInstrumentations}});var ZJt=Kee();Object.defineProperty(Ks,"InstrumentationBase",{enumerable:!0,get:function(){return ZJt.InstrumentationBase}});var JJt=Qqe();Object.defineProperty(Ks,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return JJt.InstrumentationNodeModuleDefinition}});var XJt=$qe();Object.defineProperty(Ks,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return XJt.InstrumentationNodeModuleFile}});var Jee=Gee();Object.defineProperty(Ks,"isWrapped",{enumerable:!0,get:function(){return Jee.isWrapped}});Object.defineProperty(Ks,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return Jee.safeExecuteInTheMiddle}});Object.defineProperty(Ks,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return Jee.safeExecuteInTheMiddleAsync}});var tBe=eBe();Object.defineProperty(Ks,"SemconvStability",{enumerable:!0,get:function(){return tBe.SemconvStability}});Object.defineProperty(Ks,"semconvStabilityFromStr",{enumerable:!0,get:function(){return tBe.semconvStabilityFromStr}})});var rBe=w((DMr,QJt)=>{QJt.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 sBe=w(e_=>{"use strict";Object.defineProperty(e_,"__esModule",{value:!0});e_.range=e_.balanced=void 0;var $Jt=(e,t,n)=>{let r=e instanceof RegExp?iBe(e,n):e,i=t instanceof RegExp?iBe(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=$Jt;var iBe=(e,t)=>{let n=t.match(e);return n?n[0]:null},eXt=(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=eXt});var fBe=w(WA=>{"use strict";Object.defineProperty(WA,"__esModule",{value:!0});WA.EXPANSION_MAX=void 0;WA.expand=pXt;var oBe=sBe(),aBe="\0SLASH"+Math.random()+"\0",cBe="\0OPEN"+Math.random()+"\0",Qee="\0CLOSE"+Math.random()+"\0",uBe="\0COMMA"+Math.random()+"\0",lBe="\0PERIOD"+Math.random()+"\0",tXt=new RegExp(aBe,"g"),nXt=new RegExp(cBe,"g"),rXt=new RegExp(Qee,"g"),iXt=new RegExp(uBe,"g"),sXt=new RegExp(lBe,"g"),oXt=/\\\\/g,aXt=/\\{/g,cXt=/\\}/g,uXt=/\\,/g,lXt=/\\\./g;WA.EXPANSION_MAX=1e5;function Xee(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function dXt(e){return e.replace(oXt,aBe).replace(aXt,cBe).replace(cXt,Qee).replace(uXt,uBe).replace(lXt,lBe)}function fXt(e){return e.replace(tXt,"\\").replace(nXt,"{").replace(rXt,"}").replace(iXt,",").replace(sXt,".")}function dBe(e){if(!e)return[""];let t=[],n=(0,oBe.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=dBe(s);return s.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function pXt(e,t={}){if(!e)return[];let{max:n=WA.EXPANSION_MAX}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),tN(dXt(e),n,!0).map(fXt)}function hXt(e){return"{"+e+"}"}function mXt(e){return/^-?0\d/.test(e)}function gXt(e,t){return e<=t}function yXt(e,t){return e>=t}function tN(e,t,n){let r=[],i=(0,oBe.balanced)("{","}",e);if(!i)return[e];let s=i.pre,o=i.post.length?tN(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+Qee+i.post,tN(e,t,!0)):[e];let d;if(u)d=i.body.split(/\.\./);else if(d=dBe(i.body),d.length===1&&d[0]!==void 0&&(d=tN(d[0],t,!1).map(hXt),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=Xee(d[0]),h=Xee(d[1]),m=Math.max(d[0].length,d[1].length),g=d.length===3&&d[2]!==void 0?Math.max(Math.abs(Xee(d[2])),1):1,y=gXt;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(LB,"__esModule",{value:!0});LB.assertValidPattern=void 0;var SXt=1024*64,bXt=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>SXt)throw new TypeError("pattern is too long")};LB.assertValidPattern=bXt});var mBe=w(UB=>{"use strict";Object.defineProperty(UB,"__esModule",{value:!0});UB.parseClass=void 0;var EXt={"[: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]},nN=e=>e.replace(/[[\]\\-]/g,"\\$&"),_Xt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),hBe=e=>e.join(""),TXt=(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(nN(d)+"-"+nN(m)):m===d&&r.push(nN(m)),d="",s++;continue}if(e.startsWith("-]",s+1)){r.push(nN(m+"-")),s+=2;continue}if(e.startsWith("-",s+1)){d=m,s+=2;continue}r.push(nN(m)),s++}if(l{"use strict";Object.defineProperty(FB,"__esModule",{value:!0});FB.unescape=void 0;var vXt=(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");FB.unescape=vXt});var tte=w(zB=>{"use strict";var mu;Object.defineProperty(zB,"__esModule",{value:!0});zB.AST=void 0;var RXt=mBe(),HB=jB(),AXt=new Set(["!","?","+","*","@"]),$ee=e=>AXt.has(e),gBe=e=>$ee(e.type),wXt=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),kXt=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),IXt=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),yBe=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),xXt="(?!(?:^|/)\\.\\.?(?:$|/))",qB="(?!\\.)",OXt=new Set(["[","."]),PXt=new Set(["..","."]),NXt=new Set("().*{}+?[]^$\\!"),CXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),ete="[^/]",SBe=ete+"*?",bBe=ete+"+?",MXt=0,BB=class{type;#t;#n;#i=!1;#e=[];#r;#s;#c;#u=!1;#o;#a;#l=!1;id=++MXt;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&&PXt.has(this.#e[0]))){let h=OXt,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?xXt:g?qB:""}let d="";return this.isEnd()&&this.#t.#u&&this.#r?.type==="!"&&(d="(?:$|\\/)"),[l+u+d,(0,HB.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,HB.unescape)(this.toString()),!1,!1]}let o=!r||t||n||!qB?"":this.#y(!0);o===s&&(o=""),o&&(s=`(?:${s})(?:${o})*?`);let a="";if(this.type==="!"&&this.#l)a=(this.isStart()&&!n?qB:"")+bBe;else{let c=this.type==="!"?"))"+(this.isStart()&&!n&&!t?qB:"")+SBe+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+s+c}return[a,(0,HB.unescape)(s),this.#n=!!this.#n,this.#i]}#h(){if(gBe(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(GB,"__esModule",{value:!0});GB.escape=void 0;var DXt=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");GB.escape=DXt});var wBe=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 LXt=fBe(),VB=pBe(),TBe=tte(),UXt=nte(),FXt=jB(),jXt=(e,t,n={})=>((0,VB.assertValidPattern)(t),!n.nocomment&&t.charAt(0)==="#"?!1:new t_(t,n).match(e));it.minimatch=jXt;var HXt=/^\*+([^+@!?*[(]*)$/,qXt=e=>t=>!t.startsWith(".")&&t.endsWith(e),BXt=e=>t=>t.endsWith(e),zXt=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),GXt=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),VXt=/^\*+\.\*+$/,WXt=e=>!e.startsWith(".")&&e.includes("."),KXt=e=>e!=="."&&e!==".."&&e.includes("."),YXt=/^\.\*+$/,ZXt=e=>e!=="."&&e!==".."&&e.startsWith("."),JXt=/^\*+$/,XXt=e=>e.length!==0&&!e.startsWith("."),QXt=e=>e.length!==0&&e!=="."&&e!=="..",$Xt=/^\?+([^+@!?*[(]*)?$/,eQt=([e,t=""])=>{let n=vBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},tQt=([e,t=""])=>{let n=RBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},nQt=([e,t=""])=>{let n=RBe([e]);return t?r=>n(r)&&r.endsWith(t):n},rQt=([e,t=""])=>{let n=vBe([e]);return t?r=>n(r)&&r.endsWith(t):n},vBe=([e])=>{let t=e.length;return n=>n.length===t&&!n.startsWith(".")},RBe=([e])=>{let t=e.length;return n=>n.length===t&&n!=="."&&n!==".."},ABe=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",EBe={win32:{sep:"\\"},posix:{sep:"/"}};it.sep=ABe==="win32"?EBe.win32.sep:EBe.posix.sep;it.minimatch.sep=it.sep;it.GLOBSTAR=Symbol("globstar **");it.minimatch.GLOBSTAR=it.GLOBSTAR;var iQt="[^/]",sQt=iQt+"*?",oQt="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",aQt="(?:(?!(?:\\/|^)\\.).)*?",cQt=(e,t={})=>n=>(0,it.minimatch)(n,e,t);it.filter=cQt;it.minimatch.filter=it.filter;var ed=(e,t={})=>Object.assign({},e,t),uQt=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,ed(e,s)),{Minimatch:class extends t.Minimatch{constructor(i,s={}){super(i,ed(e,s))}static defaults(i){return t.defaults(ed(e,i)).Minimatch}},AST:class extends t.AST{constructor(i,s,o={}){super(i,s,ed(e,o))}static fromGlob(i,s={}){return t.AST.fromGlob(i,ed(e,s))}},unescape:(r,i={})=>t.unescape(r,ed(e,i)),escape:(r,i={})=>t.escape(r,ed(e,i)),filter:(r,i={})=>t.filter(r,ed(e,i)),defaults:r=>t.defaults(ed(e,r)),makeRe:(r,i={})=>t.makeRe(r,ed(e,i)),braceExpand:(r,i={})=>t.braceExpand(r,ed(e,i)),match:(r,i,s={})=>t.match(r,i,ed(e,s)),sep:t.sep,GLOBSTAR:it.GLOBSTAR})};it.defaults=uQt;it.minimatch.defaults=it.defaults;var lQt=(e,t={})=>((0,VB.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,LXt.expand)(e,{max:t.braceExpandMax}));it.braceExpand=lQt;it.minimatch.braceExpand=it.braceExpand;var dQt=(e,t={})=>new t_(e,t).makeRe();it.makeRe=dQt;it.minimatch.makeRe=it.makeRe;var fQt=(e,t,n={})=>{let r=new t_(t,n);return e=e.filter(i=>r.match(i)),r.options.nonull&&!e.length&&e.push(t),e};it.match=fQt;it.minimatch.match=it.match;var _Be=/[?*]|[+@!]\(.*?\)|\[|\]/,pQt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),t_=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,n={}){(0,VB.assertValidPattern)(t),n=n||{},this.options=n,this.maxGlobstarRecursion=n.maxGlobstarRecursion??200,this.pattern=t,this.platform=n.platform||ABe,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]==="?"||!_Be.test(s[2]))&&!_Be.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"?pQt(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=t_;var hQt=tte();Object.defineProperty(it,"AST",{enumerable:!0,get:function(){return hQt.AST}});var mQt=nte();Object.defineProperty(it,"escape",{enumerable:!0,get:function(){return mQt.escape}});var gQt=jB();Object.defineProperty(it,"unescape",{enumerable:!0,get:function(){return gQt.unescape}});it.minimatch.AST=TBe.AST;it.minimatch.Minimatch=t_;it.minimatch.escape=UXt.escape;it.minimatch.unescape=FXt.unescape});var CBe=w((WMr,ste)=>{"use strict";var kBe=Y("node:diagnostics_channel"),{context:WB,trace:rte,SpanStatusCode:KB,propagation:ite,diag:yQt}=(Me(),ke(Ze)),{getRPCMetadata:SQt,RPCType:bQt}=pr(),{ATTR_HTTP_ROUTE:YB,ATTR_HTTP_RESPONSE_STATUS_CODE:IBe,ATTR_HTTP_REQUEST_METHOD:EQt,ATTR_URL_PATH:_Qt}=(Nn(),ke(Mr)),{InstrumentationBase:TQt}=nBe(),{version:vQt,name:xBe}=rBe(),RQt=">=4.0.0 <6",OBe=["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"},$y={ROUTE:"route-hook",INSTANCE:"hook",HANDLER:"request-handler"},Om="anonymous",eS=Symbol("fastify otel instance"),tS=Symbol("fastify otel request spans"),rN=Symbol("fastify otel request context"),PBe=Symbol("fastify otel addhook original"),NBe=Symbol("fastify otel setnotfound original"),iN=Symbol("fastify otel ignore path"),sN=Symbol("fastify otel record exceptions"),ZB=class extends TQt{logger=null;_requestHook=null;_lifecycleHook=null;constructor(t){if(super(xBe,vQt,t),this.logger=yQt.createComponentLogger({namespace:xBe}),this[iN]=null,this[sN]=!0,t?.recordExceptions!=null){if(typeof t.recordExceptions!="boolean")throw new TypeError("recordExceptions must be a boolean");this[sN]=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[iN]=i=>typeof n=="function"?n(i):(r==null&&(r=wBe().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)},kBe.subscribe("fastify.initialization",this._handleInitialization)),super.enable()}disable(){return this._handleInitialization&&(kBe.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:RQt,name:"@fastify/otel"},n;function n(r,i,s){r.decorate(eS,t),r.decorate(PBe,r.addHook),r.decorate(NBe,r.setNotFoundHandler),r.decorateRequest("opentelemetry",function(){let p=this[rN],h=this[tS];return{enabled:this.routeOptions.config?.otel!==!1,span:h,tracer:t.tracer,context:p,inject:(m,g)=>ite.inject(p,m,g),extract:(m,g)=>ite.extract(p,m,g)}}),r.decorateRequest(tS,null),r.decorateRequest(rN,null),r.addHook("onRoute",function(p){if(t[iN]?.(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 OBe)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]:$y.ROUTE,[YB]:p.url,[fi.HOOK_CALLBACK_NAME]:m.name?.length>0?m.name:Om});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]:$y.ROUTE,[YB]:p.url,[fi.HOOK_CALLBACK_NAME]:y.name?.length>0?y.name:Om}));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]:$y.HANDLER,[YB]:p.url,[fi.HOOK_CALLBACK_NAME]:p.handler.name.length>0?p.handler.name:Om})}),r.addHook("onRequest",function(p,h,m){if(this[eS].isEnabled()===!1||p.routeOptions.config?.otel===!1)return m();if(this[eS][iN]?.({url:p.url,method:p.method})===!0)return this[eS].logger.debug(`Ignoring request ${p.method} ${p.url} because it matches the ignore path`),m();let g=WB.active();rte.getSpan(g)==null&&(g=ite.extract(g,p.headers));let y=SQt(g);p.routeOptions.url!=null&&y?.type===bQt.HTTP&&(y.route=p.routeOptions.url);let b={[fi.ROOT]:"@fastify/otel",[EQt]:p.method,[_Qt]:p.url};p.routeOptions.url!=null&&(b[YB]=p.routeOptions.url);let S=this[eS].tracer.startSpan("request",{attributes:b},g);try{this[eS]._requestHook?.(S,p)}catch(E){this[eS].logger.error({err:E},"requestHook threw")}p[rN]=rte.setSpan(g,S),p[tS]=S,WB.with(p[rN],()=>{m()})}),r.addHook("onResponse",function(p,h,m){let g=p[tS];g!=null&&(g.setAttributes({[IBe]:h.statusCode}),g.end()),p[tS]=null,m()}),r.addHook=c,r.setNotFoundHandler=u,s();function o(f,p,h,m){let g=f[tS];g!=null&&(p.statusCode>=500&&g.setStatus({code:KB.ERROR}),g.setAttributes({[IBe]:p.statusCode}),g.end()),f[tS]=null,m(null,h)}function a(f,p,h,m){let g=f[tS];g!=null&&(g.setStatus({code:KB.ERROR,message:h.message}),t[sN]!==!1&&g.recordException(h)),m()}function c(f,p){let h=this[PBe];return OBe.includes(f)?h.call(this,f,d(p,f,{[fi.HOOK_NAME]:`${this.pluginName} - ${f}`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:Om})):h.call(this,f,p)}function u(f,p){let h=this[NBe];typeof f=="function"?(p=d(f,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.name?.length>0?f.name:Om}),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]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preValidation.name?.length>0?f.preValidation.name:Om})),f.preHandler!=null&&(f.preHandler=d(f.preHandler,"notFoundHandler - preHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler - preHandler`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preHandler.name?.length>0?f.preHandler.name:Om})),p=d(p,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:Om}),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[eS],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[iN]?.({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[rN]??WB.active(),E=f.name?.length>0?f.name:this.pluginName??Om,_=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 WB.with(rte.setSpan(S,_),function(){try{let T=f.call(this,...g);return typeof T?.then=="function"?T.then(R=>(_.end(),R),R=>(_.setStatus({code:KB.ERROR,message:R.message}),y[sN]!==!1&&_.recordException(R),_.end(),Promise.reject(R))):(_.end(),T)}catch(T){throw _.setStatus({code:KB.ERROR,message:T.message}),y[sN]!==!1&&_.recordException(T),_.end(),T}},this)}}}}};ste.exports=ZB;ste.exports.FastifyOtelInstrumentation=ZB});var Pm,oN,aN,MBe=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})(Pm||(Pm={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request_handler";e.REQUEST_HANDLER=n})(oN||(oN={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request handler";e.REQUEST_HANDLER=n})(aN||(aN={}))});var cN,DBe=v(()=>{cN=Symbol("opentelemetry.instrumentation.fastify.request_active_span")});function ote(e,t,n,r={}){let i=t.startSpan(n,{attributes:r}),s=e[cN]||[];return s.push(i),Object.defineProperty(e,cN,{enumerable:!1,configurable:!0,value:s}),i}function JB(e,t){let n=e[cN]||[];n.length&&(n.forEach(r=>{t&&(r.setStatus({code:as.ERROR,message:t.message}),r.recordException(t)),r.end()}),delete e[cN])}function UBe(e,t,n){let r,i;try{i=e(),LBe(i)&&i.then(s=>t(void 0,s),s=>t(s))}catch(s){r=s}finally{if(!LBe(i)&&(t(r,i),r))throw r;return i}}function LBe(e){return typeof e=="object"&&e&&typeof Object.getOwnPropertyDescriptor(e,"then")?.value=="function"||!1}var FBe=v(()=>{Me();DBe()});function IQt(){let e=ct();e&&e.on("spanStart",t=>{HBe(t)})}function HBe(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 QB,n_,AQt,wQt,jBe,kQt,XB,qBe=v(()=>{Me();QB=Re(pr(),1),n_=Re(Jt(),1);Nn();st();MBe();FBe();AQt="0.1.0",wQt="@sentry/instrumentation-fastify-v3",jBe="anonymous",kQt=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]),XB=class extends n_.InstrumentationBase{constructor(t={}){super(wQt,AQt,t)}init(){return[new n_.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,QB.getRPCMetadata)(Ve.active()),c=o.routeOptions?o.routeOptions.url:r.routerPath;c&&a?.type===QB.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||jBe,c=`${aN.MIDDLEWARE} - ${a}`,u=o[1],l=ote(u,s.tracer,c,{[Pm.FASTIFY_TYPE]:oN.MIDDLEWARE,[Pm.PLUGIN_NAME]:t,[Pm.HOOK_NAME]:n}),d=i&&o[o.length-1];return d&&(o[o.length-1]=function(...f){JB(u),d.apply(this,f)}),Ve.with(jt.setSpan(Ve.active(),l),()=>UBe(()=>r.apply(this,o),f=>{f instanceof Error&&(l.setStatus({code:as.ERROR,message:f.message}),l.recordException(f)),i||JB(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(!kQt.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()),IQt(),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,n_.safeExecuteInTheMiddle)(()=>r.apply(this,s),a=>{!a&&o instanceof Error&&(a=o),JB(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=`${aN.REQUEST_HANDLER} - ${c||this.pluginName||jBe}`,l={[Pm.PLUGIN_NAME]:this.pluginName,[Pm.FASTIFY_TYPE]:oN.REQUEST_HANDLER,[m7]:o.routeOptions?o.routeOptions.url:r.routerPath};c&&(l[Pm.FASTIFY_NAME]=c);let d=ote(i,t.tracer,u,l);HBe(d);let{requestHook:f}=t.getConfig();return f&&(0,n_.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 ate from"node:diagnostics_channel";function xQt(){let e=ct();if(e)return e.getIntegrationByName($B)}function BBe(e,t,n,r){let i=xQt()?.getShouldHandleError()||KBe;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 KBe(e,t,n){let r=n.statusCode;return r>=500||r<=299}function YBe(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 PQt(){let e=ct();e&&e.on("spanStart",t=>{YBe(t)})}function NQt(e){e.addHook("onRequest",async(t,n)=>{if(t.opentelemetry){let{span:s}=t.opentelemetry();s&&YBe(s)}let r=t.routeOptions?.url,i=t.method||"GET";vn().setTransactionName(`${i} ${r}`)})}var zBe,$B,GBe,VBe,OQt,WBe,ZBe=v(()=>{zBe=Re(CBe(),1);st();sr();QE();qBe();$B="Fastify",GBe=rt(`${$B}.v3`,()=>new XB);VBe=rt(`${$B}.v5`,()=>{let e=new zBe.FastifyOtelInstrumentation,t=e.plugin();return ate.subscribe("fastify.initialization",n=>{let r=n.fastify;r?.register(t).after(i=>{i?So&&Z.error("Failed to setup Fastify instrumentation",i):(PQt(),r&&NQt(r))})}),ate.subscribe("tracing:fastify.request.handler:error",n=>{let{error:r,request:i,reply:s}=n;BBe.call(BBe,r,i,s,"diagnostics-channel")}),e}),OQt=(({shouldHandleError:e})=>{let t;return{name:$B,setupOnce(){t=e||KBe,GBe(),VBe()},getShouldHandleError(){return t},setShouldHandleError(n){t=n}}}),WBe=(e={})=>OQt(e)});var cte=w(hf=>{"use strict";Object.defineProperty(hf,"__esModule",{value:!0});hf.SpanNames=hf.TokenKind=hf.AllowedOperationTypes=void 0;var CQt;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})(CQt=hf.AllowedOperationTypes||(hf.AllowedOperationTypes={}));var MQt;(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"})(MQt=hf.TokenKind||(hf.TokenKind={}));var DQt;(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"})(DQt=hf.SpanNames||(hf.SpanNames={}))});var ute=w(uN=>{"use strict";Object.defineProperty(uN,"__esModule",{value:!0});uN.AttributeNames=void 0;var LQt;(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"})(LQt=uN.AttributeNames||(uN.AttributeNames={}))});var ez=w(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.OTEL_GRAPHQL_DATA_SYMBOL=KA.OTEL_PATCHED_SYMBOL=void 0;KA.OTEL_PATCHED_SYMBOL=Symbol.for("opentelemetry.patched");KA.OTEL_GRAPHQL_DATA_SYMBOL=Symbol.for("opentelemetry.graphql_data")});var JBe=w(tz=>{"use strict";Object.defineProperty(tz,"__esModule",{value:!0});tz.OPERATION_NOT_SUPPORTED=void 0;var fDr=ez();tz.OPERATION_NOT_SUPPORTED="Operation$operationName$not supported"});var lze=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 YA=(Me(),ke(Ze)),nS=cte(),r_=ute(),Nm=ez(),XBe=Object.values(nS.AllowedOperationTypes),UQt=e=>typeof e?.then=="function";bo.isPromise=UQt;var FQt=e=>typeof e=="object"&&e!==null;function lte(e,t,n){Array.isArray(n)?n.forEach((r,i)=>{lte(e,`${t}.${i}`,r)}):n instanceof Object?Object.entries(n).forEach(([r,i])=>{lte(e,`${t}.${r}`,i)}):e.setAttribute(`${r_.AttributeNames.VARIABLES}${String(t)}`,n)}function jQt(e,t){Object.entries(t).forEach(([n,r])=>{lte(e,n,r)})}bo.addInputVariableAttributes=jQt;function tze(e,t,n,r,i){let s=oze(t,n,r,i);e.setAttribute(r_.AttributeNames.SOURCE,s)}bo.addSpanSource=tze;function HQt(e,t,n,r,i){let s=nze(n,i);if(s)return{field:s,spanAdded:!1};let a=t().flatResolveSpans?ize(n):rze(n,i);return s={span:qQt(e,t,n,r,i,a)},GQt(n,i,s),{field:s,spanAdded:!0}}function qQt(e,t,n,r,i,s){let o={[r_.AttributeNames.FIELD_NAME]:r.fieldName,[r_.AttributeNames.FIELD_PATH]:i.join("."),[r_.AttributeNames.FIELD_TYPE]:r.returnType.toString(),[r_.AttributeNames.PARENT_NAME]:r.parentType.name},a=e.startSpan(`${nS.SpanNames.RESOLVE} ${o[r_.AttributeNames.FIELD_PATH]}`,{attributes:o},s?YA.trace.setSpan(YA.context.active(),s):void 0),c=n[Nm.OTEL_GRAPHQL_DATA_SYMBOL].source,u=r.fieldNodes.find(l=>l.kind==="Field");return u&&tze(a,c.loc,t().allowValues,u.loc?.start,u.loc?.end),a}function BQt(e,t){t&&e.recordException(t),e.end()}bo.endSpan=BQt;function zQt(e,t){if(!(!e||!Array.isArray(e.definitions)))return t?e.definitions.filter(n=>XBe.indexOf(n?.operation)!==-1).find(n=>t===n?.name?.value):e.definitions.find(n=>XBe.indexOf(n?.operation)!==-1)}bo.getOperation=zQt;function GQt(e,t,n){return e[Nm.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]=n}function nze(e,t){return e[Nm.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]}function rze(e,t){for(let n=t.length-1;n>0;n--){let r=nze(e,t.slice(0,n));if(r)return r.span}return ize(e)}function ize(e){return e[Nm.OTEL_GRAPHQL_DATA_SYMBOL].span}function VQt(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 WQt(e){return sze(` -`,e)}function QBe(e){return sze(" ",e)}function sze(e,t){let n="";for(let r=0;ro){a=a.next,c=a?.line;continue}let u=a.value||a.kind,l="";!t&&KQt.indexOf(a.kind)>=0&&(u="*"),a.kind===nS.TokenKind.STRING&&(u=`"${u}"`),a.kind===nS.TokenKind.EOF&&(u=""),a.line>c?(i+=WQt(a.line-c),c=a.line,l=QBe(a.column-1)):a.line===a.prev?.line&&(l=QBe(a.start-(a.prev?.end||0))),i+=l+u,a&&(a=a.next)}}return i}bo.getSourceFromLocation=oze;function aze(e,t,n){if(!e||e[Nm.OTEL_PATCHED_SYMBOL])return;let r=e.getFields();e[Nm.OTEL_PATCHED_SYMBOL]=!0,Object.keys(r).forEach(i=>{let s=r[i];if(s&&(s.resolve&&(s.resolve=uze(t,n,s.resolve)),s.type)){let o=cze(s.type);for(let a of o)aze(a,t,n)}})}bo.wrapFields=aze;function cze(e){return"ofType"in e?cze(e.ofType):YQt(e)?e.getTypes():ZQt(e)?[e]:[]}function YQt(e){return"getTypes"in e&&typeof e.getTypes=="function"}function ZQt(e){return"getFields"in e&&typeof e.getFields=="function"}var $Be=(e,t,n)=>{n&&(e.recordException(t),e.setStatus({code:YA.SpanStatusCode.ERROR,message:t.message}),e.end())},eze=(e,t)=>{t&&e.end()};function uze(e,t,n,r=!1){if(i[Nm.OTEL_PATCHED_SYMBOL]||typeof n!="function")return n;function i(s,o,a,c){if(!n)return;let u=t();if(u.ignoreTrivialResolveSpans&&r&&(FQt(s)||typeof s=="function")&&typeof s[c.fieldName]!="function")return n.call(this,s,o,a,c);if(!a[Nm.OTEL_GRAPHQL_DATA_SYMBOL])return n.call(this,s,o,a,c);let l=VQt(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=>(eze(f,p),m),m=>{throw $Be(f,m,p),m}):(eze(f,p),h)}catch(h){throw $Be(f,h,p),h}})}return i[Nm.OTEL_PATCHED_SYMBOL]=!0,i}bo.wrapFieldResolver=uze});var dze=w(ZA=>{"use strict";Object.defineProperty(ZA,"__esModule",{value:!0});ZA.PACKAGE_NAME=ZA.PACKAGE_VERSION=void 0;ZA.PACKAGE_VERSION="0.62.0";ZA.PACKAGE_NAME="@opentelemetry/instrumentation-graphql"});var hze=w(iz=>{"use strict";Object.defineProperty(iz,"__esModule",{value:!0});iz.GraphQLInstrumentation=void 0;var Cm=(Me(),ke(Ze)),td=Jt(),lN=cte(),nz=ute(),dte=ez(),JQt=JBe(),Qa=lze(),fze=dze(),pze={mergeItems:!1,depth:-1,allowValues:!1,ignoreResolveSpans:!1},rz=[">=14.0.0 <17"],fte=class extends td.InstrumentationBase{constructor(t={}){super(fze.PACKAGE_NAME,fze.PACKAGE_VERSION,{...pze,...t})}setConfig(t={}){super.setConfig({...pze,...t})}init(){let t=new td.InstrumentationNodeModuleDefinition("graphql",rz);return t.files.push(this._addPatchingExecute()),t.files.push(this._addPatchingParser()),t.files.push(this._addPatchingValidate()),t}_addPatchingExecute(){return new td.InstrumentationNodeModuleFile("graphql/execution/execute.js",rz,t=>((0,td.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 td.InstrumentationNodeModuleFile("graphql/language/parser.js",rz,t=>((0,td.isWrapped)(t.parse)&&this._unwrap(t,"parse"),this._wrap(t,"parse",this._patchParse()),t),t=>{t&&this._unwrap(t,"parse")})}_addPatchingValidate(){return new td.InstrumentationNodeModuleFile("graphql/validation/validate.js",rz,t=>((0,td.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[dte.OTEL_GRAPHQL_DATA_SYMBOL]={source:o.document?o.document||o.document[dte.OTEL_GRAPHQL_DATA_SYMBOL]:void 0,span:c,fields:{}},Cm.context.with(Cm.trace.setSpan(Cm.context.active(),c),()=>(0,td.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,td.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(lN.SpanNames.PARSE);return Cm.context.with(Cm.trace.setSpan(Cm.context.active(),o),()=>(0,td.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(lN.SpanNames.SCHEMA_PARSE)),(0,Qa.endSpan)(o,a)}))}_validate(t,n,r,i,s,o,a){let c=this.tracer.startSpan(lN.SpanNames.VALIDATE,{});return Cm.context.with(Cm.trace.setSpan(Cm.context.active(),c),()=>(0,td.safeExecuteInTheMiddle)(()=>n.call(t,r,i,s,a,o),(u,l)=>{i.loc||c.updateName(lN.SpanNames.SCHEMA_VALIDATE),l&&l.length&&c.recordException({name:nz.AttributeNames.ERROR_VALIDATION_NAME,message:JSON.stringify(l)}),(0,Qa.endSpan)(c,u)}))}_createExecuteSpan(t,n){let r=this.getConfig(),i=this.tracer.startSpan(lN.SpanNames.EXECUTE,{});if(t){let{operation:s,name:o}=t;i.setAttribute(nz.AttributeNames.OPERATION_TYPE,s);let a=o?.value;a?(i.setAttribute(nz.AttributeNames.OPERATION_NAME,a),i.updateName(`${s} ${a}`)):i.updateName(s)}else{let s=" ";n.operationName&&(s=` "${n.operationName}" `),s=JQt.OPERATION_NOT_SUPPORTED.replace("$operationName$",s),i.setAttribute(nz.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[dte.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}}};iz.GraphQLInstrumentation=fte});var mze=w(sz=>{"use strict";Object.defineProperty(sz,"__esModule",{value:!0});sz.GraphQLInstrumentation=void 0;var XQt=hze();Object.defineProperty(sz,"GraphQLInstrumentation",{enumerable:!0,get:function(){return XQt.GraphQLInstrumentation}})});function Eze(e){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...e}}function $Qt(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 gze,yze,Sze,QQt,bze,_ze=v(()=>{Me();gze=Re(mze(),1);st();sr();CA();yze="Graphql",Sze=rt(yze,gze.GraphQLInstrumentation,e=>{let t=Eze(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[PA]||[],d=a?`${o} ${a}`:`${o}`;Array.isArray(l)?(l.push(d),c.setAttribute(PA,l)):typeof l=="string"?c.setAttribute(PA,[l,d]):c.setAttribute(PA,d),vt(c).data["original-description"]||c.setAttribute("original-description",vt(c).description),c.updateName(`${vt(c).data["original-description"]} (${$Qt(l)})`)}}}}),QQt=((e={})=>({name:yze,setupOnce(){Sze(Eze(e))}})),bze=QQt});var Tze=w(oz=>{"use strict";Object.defineProperty(oz,"__esModule",{value:!0});oz.EVENT_LISTENERS_SET=void 0;oz.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.kafkajs.eventListenersSet")});var vze=w(az=>{"use strict";Object.defineProperty(az,"__esModule",{value:!0});az.bufferTextMapGetter=void 0;az.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 Rze=w(jn=>{"use strict";Object.defineProperty(jn,"__esModule",{value:!0});jn.METRIC_MESSAGING_PROCESS_DURATION=jn.METRIC_MESSAGING_CLIENT_SENT_MESSAGES=jn.METRIC_MESSAGING_CLIENT_OPERATION_DURATION=jn.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES=jn.MESSAGING_SYSTEM_VALUE_KAFKA=jn.MESSAGING_OPERATION_TYPE_VALUE_SEND=jn.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE=jn.MESSAGING_OPERATION_TYPE_VALUE_PROCESS=jn.ATTR_MESSAGING_SYSTEM=jn.ATTR_MESSAGING_OPERATION_TYPE=jn.ATTR_MESSAGING_OPERATION_NAME=jn.ATTR_MESSAGING_KAFKA_OFFSET=jn.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE=jn.ATTR_MESSAGING_KAFKA_MESSAGE_KEY=jn.ATTR_MESSAGING_DESTINATION_PARTITION_ID=jn.ATTR_MESSAGING_DESTINATION_NAME=jn.ATTR_MESSAGING_BATCH_MESSAGE_COUNT=void 0;jn.ATTR_MESSAGING_BATCH_MESSAGE_COUNT="messaging.batch.message_count";jn.ATTR_MESSAGING_DESTINATION_NAME="messaging.destination.name";jn.ATTR_MESSAGING_DESTINATION_PARTITION_ID="messaging.destination.partition.id";jn.ATTR_MESSAGING_KAFKA_MESSAGE_KEY="messaging.kafka.message.key";jn.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE="messaging.kafka.message.tombstone";jn.ATTR_MESSAGING_KAFKA_OFFSET="messaging.kafka.offset";jn.ATTR_MESSAGING_OPERATION_NAME="messaging.operation.name";jn.ATTR_MESSAGING_OPERATION_TYPE="messaging.operation.type";jn.ATTR_MESSAGING_SYSTEM="messaging.system";jn.MESSAGING_OPERATION_TYPE_VALUE_PROCESS="process";jn.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE="receive";jn.MESSAGING_OPERATION_TYPE_VALUE_SEND="send";jn.MESSAGING_SYSTEM_VALUE_KAFKA="kafka";jn.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES="messaging.client.consumed.messages";jn.METRIC_MESSAGING_CLIENT_OPERATION_DURATION="messaging.client.operation.duration";jn.METRIC_MESSAGING_CLIENT_SENT_MESSAGES="messaging.client.sent.messages";jn.METRIC_MESSAGING_PROCESS_DURATION="messaging.process.duration"});var Aze=w(JA=>{"use strict";Object.defineProperty(JA,"__esModule",{value:!0});JA.PACKAGE_NAME=JA.PACKAGE_VERSION=void 0;JA.PACKAGE_VERSION="0.23.0";JA.PACKAGE_NAME="@opentelemetry/instrumentation-kafkajs"});var Pze=w(uz=>{"use strict";Object.defineProperty(uz,"__esModule",{value:!0});uz.KafkaJsInstrumentation=void 0;var Lr=(Me(),ke(Ze)),nd=Jt(),XA=(Nn(),ke(Mr)),wze=Tze(),kze=vze(),ot=Rze(),Ize=Aze();function cz(e,t,n){return r=>{e.add(t,{...n,...r?{[XA.ATTR_ERROR_TYPE]:r}:{}})}}function xze(e,t,n){return r=>{e.record((Date.now()-t)/1e3,{...n,...r?{[XA.ATTR_ERROR_TYPE]:r}:{}})}}var Oze=[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10],pte=class extends nd.InstrumentationBase{constructor(t={}){super(Ize.PACKAGE_NAME,Ize.PACKAGE_VERSION,t)}_updateMetricInstruments(){this._clientDuration=this.meter.createHistogram(ot.METRIC_MESSAGING_CLIENT_OPERATION_DURATION,{advice:{explicitBucketBoundaries:Oze}}),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:Oze}})}init(){let t=r=>{(0,nd.isWrapped)(r?.Kafka?.prototype.producer)&&this._unwrap(r.Kafka.prototype,"producer"),(0,nd.isWrapped)(r?.Kafka?.prototype.consumer)&&this._unwrap(r.Kafka.prototype,"consumer")};return new nd.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,nd.isWrapped)(s.run)&&t._unwrap(s,"run"),t._wrap(s,"run",t._getConsumerRunPatch()),t._setKafkaEventListeners(s),s}}_setKafkaEventListeners(t){t[wze.EVENT_LISTENERS_SET]||(t.events?.REQUEST&&t.on(t.events.REQUEST,this._recordClientDurationMetric.bind(this)),t[wze.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}`,[XA.ATTR_SERVER_ADDRESS]:n,[XA.ATTR_SERVER_PORT]:Number.parseInt(r,10)})}_getProducerPatch(){let t=this;return n=>function(...i){let s=n.apply(this,i);return(0,nd.isWrapped)(s.sendBatch)&&t._unwrap(s,"sendBatch"),t._wrap(s,"sendBatch",t._getSendBatchPatch()),(0,nd.isWrapped)(s.send)&&t._unwrap(s,"send"),t._wrap(s,"send",t._getSendPatch()),(0,nd.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,nd.isWrapped)(s.eachMessage)&&t._unwrap(s,"eachMessage"),t._wrap(s,"eachMessage",t._getConsumerEachMessagePatch())),s?.eachBatch&&((0,nd.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,kze.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=[xze(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)}),cz(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=[cz(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,kze.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(xze(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(cz(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=>cz(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=XA.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(XA.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,nd.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,nd.safeExecuteInTheMiddle)(()=>i(r,{topic:t,message:n}),s=>{s&&this._diag.error("producerHook error",s)},!0),r}};uz.KafkaJsInstrumentation=pte});var Nze=w(lz=>{"use strict";Object.defineProperty(lz,"__esModule",{value:!0});lz.KafkaJsInstrumentation=void 0;var e$t=Pze();Object.defineProperty(lz,"KafkaJsInstrumentation",{enumerable:!0,get:function(){return e$t.KafkaJsInstrumentation}})});var Cze,Mze,Dze,t$t,Lze,Uze=v(()=>{Cze=Re(Nze(),1);sr();Mze="Kafka",Dze=rt(Mze,()=>new Cze.KafkaJsInstrumentation({consumerHook(e){Dr(e,"auto.kafkajs.otel.consumer")},producerHook(e){Dr(e,"auto.kafkajs.otel.producer")}})),t$t=(()=>({name:Mze,setupOnce(){Dze()}})),Lze=t$t});var Fze=w(QA=>{"use strict";Object.defineProperty(QA,"__esModule",{value:!0});QA.PACKAGE_NAME=QA.PACKAGE_VERSION=void 0;QA.PACKAGE_VERSION="0.58.0";QA.PACKAGE_NAME="@opentelemetry/instrumentation-lru-memoizer"});var Bze=w(dz=>{"use strict";Object.defineProperty(dz,"__esModule",{value:!0});dz.LruMemoizerInstrumentation=void 0;var jze=(Me(),ke(Ze)),Hze=Jt(),qze=Fze(),hte=class extends Hze.InstrumentationBase{constructor(t={}){super(qze.PACKAGE_NAME,qze.PACKAGE_VERSION,t)}init(){return[new Hze.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"?jze.context.bind(jze.context.active(),s):s;return i.push(o),r.apply(this,i)}};return n.sync=t.sync,n},void 0)]}};dz.LruMemoizerInstrumentation=hte});var zze=w(fz=>{"use strict";Object.defineProperty(fz,"__esModule",{value:!0});fz.LruMemoizerInstrumentation=void 0;var n$t=Bze();Object.defineProperty(fz,"LruMemoizerInstrumentation",{enumerable:!0,get:function(){return n$t.LruMemoizerInstrumentation}})});var Gze,Vze,Wze,r$t,Kze,Yze=v(()=>{Gze=Re(zze(),1);sr();Vze="LruMemoizer",Wze=rt(Vze,()=>new Gze.LruMemoizerInstrumentation),r$t=(()=>({name:Vze,setupOnce(){Wze()}})),Kze=r$t});var Zze=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 Jze=w(dN=>{"use strict";Object.defineProperty(dN,"__esModule",{value:!0});dN.MongodbCommandType=void 0;var i$t;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.AGGREGATE="aggregate",e.UNKNOWN="unknown"})(i$t=dN.MongodbCommandType||(dN.MongodbCommandType={}))});var Xze=w($A=>{"use strict";Object.defineProperty($A,"__esModule",{value:!0});$A.PACKAGE_NAME=$A.PACKAGE_VERSION=void 0;$A.PACKAGE_VERSION="0.67.0";$A.PACKAGE_NAME="@opentelemetry/instrumentation-mongodb"});var eGe=w(pz=>{"use strict";Object.defineProperty(pz,"__esModule",{value:!0});pz.MongoDBInstrumentation=void 0;var Ki=(Me(),ke(Ze)),Hn=Jt(),Mm=(Nn(),ke(Mr)),hl=Zze(),i_=Jze(),Qze=Xze(),$ze={requireParentSpan:!0},mte=class e extends Hn.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(Qze.PACKAGE_NAME,Qze.PACKAGE_VERSION,{...$ze,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,Hn.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,Hn.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...$ze,...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 Hn.InstrumentationNodeModuleDefinition("mongodb",[">=3.3.0 <4"],void 0,void 0,[new Hn.InstrumentationNodeModuleFile("mongodb/lib/core/wireprotocol/index.js",[">=3.3.0 <4"],t,n)]),new Hn.InstrumentationNodeModuleDefinition("mongodb",[">=4.0.0 <8"],void 0,void 0,[new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=4.0.0 <6.4"],s,a),new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=6.4.0 <8"],o,a),new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection_pool.js",[">=4.0.0 <6.4"],c,u),new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connect.js",[">=4.0.0 <8"],r,i),new Hn.InstrumentationNodeModuleFile("mongodb/lib/sessions.js",[">=4.0.0 <8"],l,d)])]}_getV3ConnectionPatches(){return{v3PatchConnection:t=>((0,Hn.isWrapped)(t.insert)&&this._unwrap(t,"insert"),this._wrap(t,"insert",this._getV3PatchOperation("insert")),(0,Hn.isWrapped)(t.remove)&&this._unwrap(t,"remove"),this._wrap(t,"remove",this._getV3PatchOperation("remove")),(0,Hn.isWrapped)(t.update)&&this._unwrap(t,"update"),this._wrap(t,"update",this._getV3PatchOperation("update")),(0,Hn.isWrapped)(t.command)&&this._unwrap(t,"command"),this._wrap(t,"command",this._getV3PatchCommand()),(0,Hn.isWrapped)(t.query)&&this._unwrap(t,"query"),this._wrap(t,"query",this._getV3PatchFind()),(0,Hn.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,Hn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),this._wrap(t.ServerSessionPool.prototype,"acquire",this._getV4AcquireCommand()),(0,Hn.isWrapped)(t.release)&&this._unwrap(t,"release"),this._wrap(t.ServerSessionPool.prototype,"release",this._getV4ReleaseCommand()),t),v4UnpatchSessions:t=>{t!==void 0&&((0,Hn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),(0,Hn.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,Hn.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,Hn.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,Hn.isWrapped)(t.Connection.prototype.command)&&this._unwrap(t.Connection.prototype,"command"),this._wrap(t.Connection.prototype,"command",this._getV4PatchCommandCallback()),t),v4PatchConnectionPromise:t=>((0,Hn.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===i_.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?i_.MongodbCommandType.CREATE_INDEXES:t.findandmodify!==void 0?i_.MongodbCommandType.FIND_AND_MODIFY:t.ismaster!==void 0?i_.MongodbCommandType.IS_MASTER:t.count!==void 0?i_.MongodbCommandType.COUNT:t.aggregate!==void 0?i_.MongodbCommandType.AGGREGATE:i_.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&Hn.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&Hn.SemconvStability.STABLE&&(a[Mm.ATTR_DB_SYSTEM_NAME]=hl.DB_SYSTEM_NAME_VALUE_MONGODB,a[Mm.ATTR_DB_NAMESPACE]=t,a[Mm.ATTR_DB_OPERATION_NAME]=o,a[Mm.ATTR_DB_COLLECTION_NAME]=n),r&&i){this._netSemconvStability&Hn.SemconvStability.OLD&&(a[hl.ATTR_NET_PEER_NAME]=r),this._netSemconvStability&Hn.SemconvStability.STABLE&&(a[Mm.ATTR_SERVER_ADDRESS]=r);let c=parseInt(i,10);isNaN(c)||(this._netSemconvStability&Hn.SemconvStability.OLD&&(a[hl.ATTR_NET_PEER_PORT]=c),this._netSemconvStability&Hn.SemconvStability.STABLE&&(a[Mm.ATTR_SERVER_PORT]=c))}if(s){let{dbStatementSerializer:c}=this.getConfig(),u=typeof c=="function"?c:this._defaultDbStatementSerializer.bind(this);(0,Hn.safeExecuteInTheMiddle)(()=>{let l=u(s);this._dbSemconvStability&Hn.SemconvStability.OLD&&(a[hl.ATTR_DB_STATEMENT]=l),this._dbSemconvStability&Hn.SemconvStability.STABLE&&(a[Mm.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&Hn.SemconvStability.STABLE?n=[t[Mm.ATTR_DB_OPERATION_NAME],t[Mm.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,Hn.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}};pz.MongoDBInstrumentation=mte});var tGe=w(fN=>{"use strict";Object.defineProperty(fN,"__esModule",{value:!0});fN.MongodbCommandType=void 0;var s$t;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.UNKNOWN="unknown"})(s$t=fN.MongodbCommandType||(fN.MongodbCommandType={}))});var nGe=w(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.MongodbCommandType=ew.MongoDBInstrumentation=void 0;var o$t=eGe();Object.defineProperty(ew,"MongoDBInstrumentation",{enumerable:!0,get:function(){return o$t.MongoDBInstrumentation}});var a$t=tGe();Object.defineProperty(ew,"MongodbCommandType",{enumerable:!0,get:function(){return a$t.MongodbCommandType}})});function c$t(e){let t=gte(e);return JSON.stringify(t)}function gte(e){if(Array.isArray(e))return e.map(t=>gte(t));if(u$t(e)){let t={};return Object.entries(e).map(([n,r])=>[n,gte(r)]).reduce((n,r)=>(d$t(r)&&(n[r[0]]=r[1]),n),t)}return"?"}function u$t(e){return typeof e=="object"&&e!==null&&!l$t(e)}function l$t(e){let t=!1;return typeof Buffer<"u"&&(t=Buffer.isBuffer(e)),t}function d$t(e){return Array.isArray(e)}var rGe,iGe,sGe,f$t,oGe,aGe=v(()=>{rGe=Re(nGe(),1);sr();iGe="Mongo",sGe=rt(iGe,()=>new rGe.MongoDBInstrumentation({dbStatementSerializer:c$t,responseHook(e){Dr(e,"auto.db.otel.mongo")}}));f$t=(()=>({name:iGe,setupOnce(){sGe()}})),oGe=f$t});var yte=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 lGe=w(rS=>{"use strict";Object.defineProperty(rS,"__esModule",{value:!0});rS.handleCallbackResponse=rS.handlePromiseResponse=rS.getAttributesFromCollection=void 0;var cGe=(Me(),ke(Ze)),hN=Jt(),pN=yte(),hz=(Nn(),ke(Mr));function p$t(e,t,n){let r={};return t&hN.SemconvStability.OLD&&(r[pN.ATTR_DB_MONGODB_COLLECTION]=e.name,r[pN.ATTR_DB_NAME]=e.conn.name,r[pN.ATTR_DB_USER]=e.conn.user),t&hN.SemconvStability.STABLE&&(r[hz.ATTR_DB_COLLECTION_NAME]=e.name,r[hz.ATTR_DB_NAMESPACE]=e.conn.name),n&hN.SemconvStability.OLD&&(r[pN.ATTR_NET_PEER_NAME]=e.conn.host,r[pN.ATTR_NET_PEER_PORT]=e.conn.port),n&hN.SemconvStability.STABLE&&(r[hz.ATTR_SERVER_ADDRESS]=e.conn.host,r[hz.ATTR_SERVER_PORT]=e.conn.port),r}rS.getAttributesFromCollection=p$t;function uGe(e,t={}){e.recordException(t),e.setStatus({code:cGe.SpanStatusCode.ERROR,message:`${t.message} ${t.code?` -Mongoose Error Code: ${t.code}`:""}`})}function Ste(e,t,n,r=void 0){n&&(0,hN.safeExecuteInTheMiddle)(()=>n(e,{moduleVersion:r,response:t}),i=>{i&&cGe.diag.error("mongoose instrumentation: responseHook error",i)},!0)}function h$t(e,t,n,r=void 0){return e instanceof Promise?e.then(i=>(Ste(t,i,n,r),i)).catch(i=>{throw uGe(t,i),i}).finally(()=>t.end()):(Ste(t,e,n,r),t.end(),e)}rS.handlePromiseResponse=h$t;function m$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?uGe(r,c):Ste(r,u,s,o),r.end(),e(c,u)),t.apply(n,i)}rS.handleCallbackResponse=m$t});var dGe=w(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});tw.PACKAGE_NAME=tw.PACKAGE_VERSION=void 0;tw.PACKAGE_VERSION="0.60.0";tw.PACKAGE_NAME="@opentelemetry/instrumentation-mongoose"});var gGe=w(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.MongooseInstrumentation=gu._ALREADY_INSTRUMENTED=gu._STORED_PARENT_SPAN=void 0;var Eo=(Me(),ke(Ze)),g$t=pr(),bte=lGe(),fa=Jt(),fGe=dGe(),iS=yte(),s_=(Nn(),ke(Mr)),mz=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],y$t=["remove","count","findOneAndRemove",...mz],S$t=["count","findOneAndRemove",...mz],b$t=[...mz];function pGe(e){return e?e.startsWith("6.")||e.startsWith("5.")?y$t:e.startsWith("7.")?S$t:b$t:mz}function hGe(e){return e&&(e.startsWith("5.")||e.startsWith("6."))||!1}function mGe(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 Ete=class extends fa.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(fGe.PACKAGE_NAME,fGe.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,hGe(n)&&this._wrap(r.Model.prototype,"remove",this.patchOnModelMethods("remove",n)),mGe(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)),pGe(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=pGe(n);this._unwrap(r.Model.prototype,"save"),r.Model.prototype.$save=r.Model.prototype.save,hGe(n)&&this._unwrap(r.Model.prototype,"remove"),mGe(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[iS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[s_.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[iS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[s_.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[iS.ATTR_DB_STATEMENT]=f),r._dbSemconvStability&fa.SemconvStability.STABLE&&(u[s_.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[iS.ATTR_DB_STATEMENT]=g),r._dbSemconvStability&fa.SemconvStability.STABLE&&(f[s_.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[iS.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&fa.SemconvStability.STABLE&&(l[s_.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,bte.getAttributesFromCollection)(t,this._dbSemconvStability,this._netSemconvStability)};this._dbSemconvStability&fa.SemconvStability.OLD&&(o[iS.ATTR_DB_OPERATION]=r,o[iS.ATTR_DB_SYSTEM]="mongoose"),this._dbSemconvStability&fa.SemconvStability.STABLE&&(o[s_.ATTR_DB_OPERATION_NAME]=r,o[s_.ATTR_DB_SYSTEM_NAME]=iS.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,bte.handleCallbackResponse)(s,n,r,t,i,a.getConfig().responseHook,o));{let c=a._callOriginalFunction(()=>n.apply(r,i));return(0,bte.handlePromiseResponse)(c,t,a.getConfig().responseHook,o)}}_callOriginalFunction(t){return this.getConfig().suppressInternalInstrumentation?Eo.context.with((0,g$t.suppressTracing)(Eo.context.active()),t):t()}};gu.MongooseInstrumentation=Ete});var yGe=w(gz=>{"use strict";Object.defineProperty(gz,"__esModule",{value:!0});gz.MongooseInstrumentation=void 0;var E$t=gGe();Object.defineProperty(gz,"MongooseInstrumentation",{enumerable:!0,get:function(){return E$t.MongooseInstrumentation}})});var SGe,bGe,EGe,_$t,_Ge,TGe=v(()=>{SGe=Re(yGe(),1);sr();bGe="Mongoose",EGe=rt(bGe,()=>new SGe.MongooseInstrumentation({responseHook(e){Dr(e,"auto.db.otel.mongoose")}})),_$t=(()=>({name:bGe,setupOnce(){EGe()}})),_Ge=_$t});var vGe=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 RGe=w(mN=>{"use strict";Object.defineProperty(mN,"__esModule",{value:!0});mN.AttributeNames=void 0;var T$t;(function(e){e.MYSQL_VALUES="db.mysql.values"})(T$t=mN.AttributeNames||(mN.AttributeNames={}))});var AGe=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 v$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=v$t;function R$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}$a.getJDBCString=R$t;function A$t(e){return typeof e=="string"?e:e.sql}$a.getDbQueryText=A$t;function w$t(e,t){return _te(typeof e=="string"?t:t||e.values)}$a.getDbValues=w$t;function k$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=k$t;function _te(e){return e?`[${e.toString()}]`:""}$a.arrayStringifyHelper=_te;function I$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=I$t});var wGe=w(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.PACKAGE_NAME=nw.PACKAGE_VERSION=void 0;nw.PACKAGE_VERSION="0.60.0";nw.PACKAGE_NAME="@opentelemetry/instrumentation-mysql"});var IGe=w(yz=>{"use strict";Object.defineProperty(yz,"__esModule",{value:!0});yz.MySQLInstrumentation=void 0;var yu=(Me(),ke(Ze)),rd=Jt(),rw=(Nn(),ke(Mr)),Dm=vGe(),x$t=RGe(),o_=AGe(),kGe=wGe(),Tte=class extends rd.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(kGe.PACKAGE_NAME,kGe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,rd.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,rd.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._connectionsUsageOld=this.meter.createUpDownCounter(Dm.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 rd.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],t=>((0,rd.isWrapped)(t.createConnection)&&this._unwrap(t,"createConnection"),this._wrap(t,"createConnection",this._patchCreateConnection()),(0,rd.isWrapped)(t.createPool)&&this._unwrap(t,"createPool"),this._wrap(t,"createPool",this._patchCreatePool()),(0,rd.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,o_.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,rd.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,o_.getConfig)(t.config),f=parseInt(u,10),p=(0,o_.getDbQueryText)(i);r._dbSemconvStability&rd.SemconvStability.OLD&&(a[Dm.ATTR_DB_SYSTEM]=Dm.DB_SYSTEM_VALUE_MYSQL,a[Dm.ATTR_DB_CONNECTION_STRING]=(0,o_.getJDBCString)(c,u,l),a[Dm.ATTR_DB_NAME]=l,a[Dm.ATTR_DB_USER]=d,a[Dm.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&rd.SemconvStability.STABLE&&(a[rw.ATTR_DB_SYSTEM_NAME]=rw.DB_SYSTEM_NAME_VALUE_MYSQL,a[rw.ATTR_DB_NAMESPACE]=l,a[rw.ATTR_DB_QUERY_TEXT]=p),r._netSemconvStability&rd.SemconvStability.OLD&&(a[Dm.ATTR_NET_PEER_NAME]=c,isNaN(f)||(a[Dm.ATTR_NET_PEER_PORT]=f)),r._netSemconvStability&rd.SemconvStability.STABLE&&(a[rw.ATTR_SERVER_ADDRESS]=c,isNaN(f)||(a[rw.ATTR_SERVER_PORT]=f));let h=r.tracer.startSpan((0,o_.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(x$t.AttributeNames.MYSQL_VALUES,(0,o_.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,o_.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")})}};yz.MySQLInstrumentation=Tte});var xGe=w(Sz=>{"use strict";Object.defineProperty(Sz,"__esModule",{value:!0});Sz.MySQLInstrumentation=void 0;var O$t=IGe();Object.defineProperty(Sz,"MySQLInstrumentation",{enumerable:!0,get:function(){return O$t.MySQLInstrumentation}})});var OGe,PGe,NGe,P$t,CGe,MGe=v(()=>{OGe=Re(xGe(),1);sr();PGe="Mysql",NGe=rt(PGe,()=>new OGe.MySQLInstrumentation({})),P$t=(()=>({name:PGe,setupOnce(){NGe()}})),CGe=P$t});var vte=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 Ate=w(bz=>{"use strict";Object.defineProperty(bz,"__esModule",{value:!0});bz.addSqlCommenterComment=void 0;var Rte=(Me(),ke(Ze)),N$t=pr();function C$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 D$t(e,t){if(typeof t!="string"||t.length===0||C$t(t))return t;let n=new N$t.W3CTraceContextPropagator,r={};n.inject(Rte.trace.setSpan(Rte.ROOT_CONTEXT,e),r,Rte.defaultTextMapSetter);let i=Object.keys(r).sort();if(i.length===0)return t;let s=i.map(o=>{let a=M$t(r[o]);return`${o}='${a}'`}).join(",");return`${t} /*${s}*/`}bz.addSqlCommenterComment=D$t});var DGe=w(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.getConnectionPrototypeToInstrument=id.once=id.getSpanName=id.getQueryText=id.getConnectionAttributes=void 0;var gN=vte(),Ez=Jt(),wte=(Nn(),ke(Mr));function L$t(e,t,n){let{host:r,port:i,database:s,user:o}=U$t(e),a={};t&Ez.SemconvStability.OLD&&(a[gN.ATTR_DB_CONNECTION_STRING]=F$t(r,i,s),a[gN.ATTR_DB_NAME]=s,a[gN.ATTR_DB_USER]=o),t&Ez.SemconvStability.STABLE&&(a[wte.ATTR_DB_NAMESPACE]=s);let c=parseInt(i,10);return n&Ez.SemconvStability.OLD&&(a[gN.ATTR_NET_PEER_NAME]=r,isNaN(c)||(a[gN.ATTR_NET_PEER_PORT]=c)),n&Ez.SemconvStability.STABLE&&(a[wte.ATTR_SERVER_ADDRESS]=r,isNaN(c)||(a[wte.ATTR_SERVER_PORT]=c)),a}id.getConnectionAttributes=L$t;function U$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 F$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}function j$t(e,t,n,r=!1,i=H$t){let[s,o]=typeof e=="string"?[e,n]:[e.sql,q$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"}}id.getQueryText=j$t;function H$t(e){return e.replace(/\b\d+\b/g,"?").replace(/(["'])(?:(?=(\\?))\2.)*?\1/g,"?")}function q$t(e){return"values"in e}function B$t(e){let t=typeof e=="object"?e.sql:e,n=t?.indexOf(" ");return typeof n=="number"&&n!==-1?t?.substring(0,n):t}id.getSpanName=B$t;var z$t=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};id.once=z$t;function G$t(e){let t=e.prototype,n=Object.getPrototypeOf(t);return typeof n?.query=="function"&&typeof n?.execute=="function"?n:t}id.getConnectionPrototypeToInstrument=G$t});var LGe=w(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.PACKAGE_NAME=iw.PACKAGE_VERSION=void 0;iw.PACKAGE_VERSION="0.60.0";iw.PACKAGE_NAME="@opentelemetry/instrumentation-mysql2"});var HGe=w(_z=>{"use strict";Object.defineProperty(_z,"__esModule",{value:!0});_z.MySQL2Instrumentation=void 0;var UGe=(Me(),ke(Ze)),mf=Jt(),kte=vte(),FGe=Ate(),sw=DGe(),jGe=LGe(),Ite=(Nn(),ke(Mr)),xte=[">=1.4.2 <4"],Ote=class extends mf.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(jGe.PACKAGE_NAME,jGe.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",xte,s=>(n(s),s),()=>{},[new mf.InstrumentationNodeModuleFile("mysql2/promise.js",xte,s=>(n(s),s),()=>{}),new mf.InstrumentationNodeModuleFile("mysql2/lib/connection.js",xte,s=>{let o=(0,sw.getConnectionPrototypeToInstrument)(s);return r(o),s},s=>{if(s===void 0)return;let o=(0,sw.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,sw.getConnectionAttributes)(this.config,i._dbSemconvStability,i._netSemconvStability),p=(0,sw.getQueryText)(s,t,c,u,l);i._dbSemconvStability&mf.SemconvStability.OLD&&(f[kte.ATTR_DB_SYSTEM]=kte.DB_SYSTEM_VALUE_MYSQL,f[kte.ATTR_DB_STATEMENT]=p),i._dbSemconvStability&mf.SemconvStability.STABLE&&(f[Ite.ATTR_DB_SYSTEM_NAME]=Ite.DB_SYSTEM_NAME_VALUE_MYSQL,f[Ite.ATTR_DB_QUERY_TEXT]=p);let h=i.tracer.startSpan((0,sw.getSpanName)(s),{kind:UGe.SpanKind.CLIENT,attributes:f});!n&&i.getConfig().addSqlCommenterCommentToQueries&&(arguments[0]=s=typeof s=="string"?(0,FGe.addSqlCommenterComment)(h,s):Object.assign(s,{sql:(0,FGe.addSqlCommenterComment)(h,s.sql)}));let m=(0,sw.once)((g,y)=>{g?h.setStatus({code:UGe.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)}}};_z.MySQL2Instrumentation=Ote});var qGe=w(Tz=>{"use strict";Object.defineProperty(Tz,"__esModule",{value:!0});Tz.MySQL2Instrumentation=void 0;var V$t=HGe();Object.defineProperty(Tz,"MySQL2Instrumentation",{enumerable:!0,get:function(){return V$t.MySQL2Instrumentation}})});var BGe,zGe,GGe,W$t,VGe,WGe=v(()=>{BGe=Re(qGe(),1);sr();zGe="Mysql2",GGe=rt(zGe,()=>new BGe.MySQL2Instrumentation({responseHook(e){Dr(e,"auto.db.otel.mysql2")}})),W$t=(()=>({name:zGe,setupOnce(){GGe()}})),VGe=W$t});var KGe=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 YGe=w(vz=>{"use strict";Object.defineProperty(vz,"__esModule",{value:!0});vz.endSpan=void 0;var K$t=(Me(),ke(Ze)),Y$t=(e,t)=>{t&&(e.recordException(t),e.setStatus({code:K$t.SpanStatusCode.ERROR,message:t.message})),e.end()};vz.endSpan=Y$t});var Az=w(Rz=>{"use strict";Object.defineProperty(Rz,"__esModule",{value:!0});Rz.defaultDbStatementSerializer=void 0;var Z$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}],J$t=(e,t)=>{if(Array.isArray(t)&&t.length){let n=Z$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};Rz.defaultDbStatementSerializer=J$t});var ZGe=w(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.PACKAGE_NAME=ow.PACKAGE_VERSION=void 0;ow.PACKAGE_VERSION="0.62.0";ow.PACKAGE_NAME="@opentelemetry/instrumentation-ioredis"});var $Ge=w(wz=>{"use strict";Object.defineProperty(wz,"__esModule",{value:!0});wz.IORedisInstrumentation=void 0;var sS=(Me(),ke(Ze)),Su=Jt(),oS=(Nn(),ke(Mr)),bu=KGe(),JGe=Jt(),yN=YGe(),X$t=Az(),XGe=ZGe(),QGe={requireParentSpan:!0},Pte=class extends Su.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(XGe.PACKAGE_NAME,XGe.PACKAGE_VERSION,{...QGe,...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({...QGe,...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||X$t.defaultDbStatementSerializer,a=sS.trace.getSpan(sS.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[oS.ATTR_DB_SYSTEM_NAME]=bu.DB_SYSTEM_NAME_VALUE_REDIS,c[oS.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[oS.ATTR_SERVER_ADDRESS]=u,c[oS.ATTR_SERVER_PORT]=l);let f=r.tracer.startSpan(i.name,{kind:sS.SpanKind.CLIENT,attributes:c}),{requestHook:p}=s;p&&(0,JGe.safeExecuteInTheMiddle)(()=>p(f,{moduleVersion:n,cmdName:i.name,cmdArgs:i.args}),h=>{h&&sS.diag.error("ioredis instrumentation: request hook failed",h)},!0);try{let h=t.apply(this,arguments),m=i.resolve;i.resolve=function(y){(0,JGe.safeExecuteInTheMiddle)(()=>s.responseHook?.(f,i.name,i.args,y),b=>{b&&sS.diag.error("ioredis instrumentation: response hook failed",b)},!0),(0,yN.endSpan)(f,null),m(y)};let g=i.reject;return i.reject=function(y){(0,yN.endSpan)(f,y),g(y)},h}catch(h){throw(0,yN.endSpan)(f,h),h}}}_traceConnection(t){let n=this;return function(){let r=sS.trace.getSpan(sS.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[oS.ATTR_DB_SYSTEM_NAME]=bu.DB_SYSTEM_NAME_VALUE_REDIS,i[oS.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[oS.ATTR_SERVER_ADDRESS]=s,i[oS.ATTR_SERVER_PORT]=o);let a=n.tracer.startSpan("connect",{kind:sS.SpanKind.CLIENT,attributes:i});try{let c=t.apply(this,arguments);return(0,yN.endSpan)(a,null),c}catch(c){throw(0,yN.endSpan)(a,c),c}}}};wz.IORedisInstrumentation=Pte});var e2e=w(kz=>{"use strict";Object.defineProperty(kz,"__esModule",{value:!0});kz.IORedisInstrumentation=void 0;var Q$t=$Ge();Object.defineProperty(kz,"IORedisInstrumentation",{enumerable:!0,get:function(){return Q$t.IORedisInstrumentation}})});var Iz=w(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});aw.PACKAGE_NAME=aw.PACKAGE_VERSION=void 0;aw.PACKAGE_VERSION="0.62.0";aw.PACKAGE_NAME="@opentelemetry/instrumentation-redis"});var t2e=w(aS=>{"use strict";Object.defineProperty(aS,"__esModule",{value:!0});aS.getTracedCreateStreamTrace=aS.getTracedCreateClient=aS.endSpan=void 0;var SN=(Me(),ke(Ze)),$$t=(e,t)=>{t&&e.setStatus({code:SN.SpanStatusCode.ERROR,message:t.message}),e.end()};aS.endSpan=$$t;var een=e=>function(){let n=e.apply(this,arguments);return SN.context.bind(SN.context.active(),n)};aS.getTracedCreateClient=een;var ten=e=>function(){return Object.prototype.hasOwnProperty.call(this,"stream")||Object.defineProperty(this,"stream",{get(){return this._patched_redis_stream},set(n){SN.context.bind(SN.context.active(),n),this._patched_redis_stream=n}}),e.apply(this,arguments)};aS.getTracedCreateStreamTrace=ten});var xz=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 r2e=w(Pz=>{"use strict";Object.defineProperty(Pz,"__esModule",{value:!0});Pz.RedisInstrumentationV2_V3=void 0;var ml=Jt(),Oz=t2e(),n2e=Iz(),bN=(Me(),ke(Ze)),EN=(Nn(),ke(Mr)),a_=xz(),nen=Az(),Nte=class e extends ml.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(n2e.PACKAGE_NAME,n2e.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=bN.trace.getSpan(bN.context.active())===void 0;if(o.requireParentSpan===!0&&a)return r.apply(this,arguments);let c=o?.dbStatementSerializer||nen.defaultDbStatementSerializer,u={};t._semconvStability&ml.SemconvStability.OLD&&Object.assign(u,{[a_.ATTR_DB_SYSTEM]:a_.DB_SYSTEM_VALUE_REDIS,[a_.ATTR_DB_STATEMENT]:c(s.command,s.args)}),t._semconvStability&ml.SemconvStability.STABLE&&Object.assign(u,{[EN.ATTR_DB_SYSTEM_NAME]:a_.DB_SYSTEM_NAME_VALUE_REDIS,[EN.ATTR_DB_OPERATION_NAME]:s.command,[EN.ATTR_DB_QUERY_TEXT]:c(s.command,s.args)});let l=t.tracer.startSpan(`${e.COMPONENT}-${s.command}`,{kind:bN.SpanKind.CLIENT,attributes:u});if(this.connection_options){let f={};t._semconvStability&ml.SemconvStability.OLD&&Object.assign(f,{[a_.ATTR_NET_PEER_NAME]:this.connection_options.host,[a_.ATTR_NET_PEER_PORT]:this.connection_options.port}),t._semconvStability&ml.SemconvStability.STABLE&&Object.assign(f,{[EN.ATTR_SERVER_ADDRESS]:this.connection_options.host,[EN.ATTR_SERVER_PORT]:this.connection_options.port}),l.setAttributes(f)}this.address&&t._semconvStability&ml.SemconvStability.OLD&&l.setAttribute(a_.ATTR_DB_CONNECTION_STRING,`redis://${this.address}`);let d=arguments[0].callback;if(d){let f=bN.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,Oz.endSpan)(l,h),bN.context.with(f,d,this,...arguments)}}try{return r.apply(this,arguments)}catch(f){throw(0,Oz.endSpan)(l,f),f}}}}_getPatchCreateClient(){return function(n){return(0,Oz.getTracedCreateClient)(n)}}_getPatchCreateStream(){return function(n){return(0,Oz.getTracedCreateStreamTrace)(n)}}};Pz.RedisInstrumentationV2_V3=Nte});var s2e=w(Nz=>{"use strict";Object.defineProperty(Nz,"__esModule",{value:!0});Nz.getClientAttributes=void 0;var Cte=(Nn(),ke(Mr)),cw=xz(),i2e=Jt();function ren(e,t,n){let r={};return n&i2e.SemconvStability.OLD&&Object.assign(r,{[cw.ATTR_DB_SYSTEM]:cw.DB_SYSTEM_VALUE_REDIS,[cw.ATTR_NET_PEER_NAME]:t?.socket?.host,[cw.ATTR_NET_PEER_PORT]:t?.socket?.port,[cw.ATTR_DB_CONNECTION_STRING]:ien(e,t?.url)}),n&i2e.SemconvStability.STABLE&&Object.assign(r,{[Cte.ATTR_DB_SYSTEM_NAME]:cw.DB_SYSTEM_NAME_VALUE_REDIS,[Cte.ATTR_SERVER_ADDRESS]:t?.socket?.host,[Cte.ATTR_SERVER_PORT]:t?.socket?.port}),r}Nz.getClientAttributes=ren;function ien(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 u2e=w(Cz=>{"use strict";Object.defineProperty(Cz,"__esModule",{value:!0});Cz.RedisInstrumentationV4_V5=void 0;var sd=(Me(),ke(Ze)),pi=Jt(),o2e=s2e(),sen=Az(),a2e=Iz(),Mte=(Nn(),ke(Mr)),oen=xz(),_N=Symbol("opentelemetry.instrumentation.redis.open_spans"),c2e=Symbol("opentelemetry.instrumentation.redis.multi_command_options"),Dte=class e extends pi.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(a2e.PACKAGE_NAME,a2e.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[_N];return n._endSpansWithRedisReplies(c,a,t),a}).catch(a=>{let c=this[_N];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[c2e]=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,o2e.getClientAttributes)(t._diag,s,t._semconvStability),a=t.tracer.startSpan(`${e.COMPONENT}-connect`,{kind:sd.SpanKind.CLIENT,attributes:o});return sd.context.with(sd.trace.setSpan(sd.context.active(),a),()=>r.apply(this)).then(u=>(a.end(),u)).catch(u=>(a.recordException(u),a.setStatus({code:sd.SpanStatusCode.ERROR,message:u.message}),a.end(),Promise.reject(u)))}}}_traceClientCommand(t,n,r,i){if(sd.trace.getSpan(sd.context.active())===void 0&&this.getConfig().requireParentSpan)return t.apply(n,r);let o=n.options||n[c2e],a=i[0],c=i.slice(1),u=this.getConfig().dbStatementSerializer||sen.defaultDbStatementSerializer,l=(0,o2e.getClientAttributes)(this._diag,o,this._semconvStability);this._semconvStability&pi.SemconvStability.STABLE&&(l[Mte.ATTR_DB_OPERATION_NAME]=a);try{let p=u(a,c);p!=null&&(this._semconvStability&pi.SemconvStability.OLD&&(l[oen.ATTR_DB_STATEMENT]=p),this._semconvStability&pi.SemconvStability.STABLE&&(l[Mte.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:sd.SpanKind.CLIENT,attributes:l}),f=sd.context.with(sd.trace.setSpan(sd.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[_N]=p[_N]||[],p[_N].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(Mz,"__esModule",{value:!0});Mz.RedisInstrumentation=void 0;var aen=Jt(),l2e=Iz(),cen=r2e(),uen=u2e(),d2e={requireParentSpan:!1},Lte=class extends aen.InstrumentationBase{instrumentationV2_V3;instrumentationV4_V5;initialized=!1;constructor(t={}){let n={...d2e,...t};super(l2e.PACKAGE_NAME,l2e.PACKAGE_VERSION,n),this.instrumentationV2_V3=new cen.RedisInstrumentationV2_V3(this.getConfig()),this.instrumentationV4_V5=new uen.RedisInstrumentationV4_V5(this.getConfig()),this.initialized=!0}setConfig(t={}){let n={...d2e,...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())}};Mz.RedisInstrumentation=Lte});var p2e=w(Dz=>{"use strict";Object.defineProperty(Dz,"__esModule",{value:!0});Dz.RedisInstrumentation=void 0;var len=f2e();Object.defineProperty(Dz,"RedisInstrumentation",{enumerable:!0,get:function(){return len.RedisInstrumentation}})});function TN(e,t){return e.includes(t.toLowerCase())}function Fte(e){return TN(Ute,e)?"cache.get":TN(fen,e)?"cache.put":void 0}function pen(e,t){return t.some(n=>e.startsWith(n))}function m2e(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)?h2e(i.map(s=>n(s))):[""],r=t[0];return TN(den,e)&&r!=null?n(r):h2e(t.map(i=>n(i)))}catch{return}}function g2e(e,t,n){if(!Fte(e))return!1;for(let r of t)if(pen(r,n))return!0;return!1}function y2e(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 h2e(e){let t=[],n=r=>{r.forEach(i=>{Array.isArray(i)?n(i):t.push(i)})};return n(e),t}var den,Ute,fen,S2e=v(()=>{den=["get","set","setex"],Ute=["get","mget"],fen=["set","setex"]});var b2e,E2e,Lz,vN,_2e,hen,men,T2e,gen,v2e,R2e=v(()=>{b2e=Re(e2e(),1),E2e=Re(p2e(),1);st();sr();S2e();Lz="Redis",vN={},_2e=(e,t,n,r)=>{e.setAttribute(At,"auto.db.otel.redis");let i=m2e(t,n),s=Fte(t);if(!i||!s||!vN.cachePrefixes||!g2e(t,i,vN.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=y2e(r);c&&e.setAttribute(aX,c),TN(Ute,t)&&c!==void 0&&e.setAttribute(sX,c>0),e.setAttributes({[zt]:s,[oX]:i});let u=i.join(", ");e.updateName(vN.maxCacheKeyLength?_y(u,vN.maxCacheKeyLength):u)},hen=rt(`${Lz}.IORedis`,()=>new b2e.IORedisInstrumentation({responseHook:_2e})),men=rt(`${Lz}.Redis`,()=>new E2e.RedisInstrumentation({responseHook:_2e})),T2e=Object.assign(()=>{hen(),men()},{id:Lz}),gen=((e={})=>({name:Lz,setupOnce(){vN=e,T2e()}})),v2e=gen});var A2e=w(Uz=>{"use strict";Object.defineProperty(Uz,"__esModule",{value:!0});Uz.EVENT_LISTENERS_SET=void 0;Uz.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.pg.eventListenersSet")});var jte=w(RN=>{"use strict";Object.defineProperty(RN,"__esModule",{value:!0});RN.AttributeNames=void 0;var yen;(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"})(yen=RN.AttributeNames||(RN.AttributeNames={}))});var Hte=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 qte=w(AN=>{"use strict";Object.defineProperty(AN,"__esModule",{value:!0});AN.SpanNames=void 0;var Sen;(function(e){e.QUERY_PREFIX="pg.query",e.CONNECT="pg.connect",e.POOL_CONNECT="pg-pool.connect"})(Sen=AN.SpanNames||(AN.SpanNames={}))});var N2e=w(qn=>{"use strict";Object.defineProperty(qn,"__esModule",{value:!0});qn.sanitizedErrorMessage=qn.isObjectWithTextString=qn.getErrorMessage=qn.patchClientConnectCallback=qn.patchCallbackPGPool=qn.updateCounter=qn.getPoolName=qn.patchCallback=qn.handleExecutionResult=qn.handleConfigQuery=qn.shouldSkipInstrumentation=qn.getSemanticAttributesFromPoolConnection=qn.getSemanticAttributesFromConnection=qn.getConnectionString=qn.parseAndMaskConnectionString=qn.parseNormalizedOperationName=qn.getQuerySpanName=void 0;var cS=(Me(),ke(Ze)),Fz=jte(),od=(Nn(),ke(Mr)),ds=Hte(),c_=Jt(),w2e=qte();function k2e(e,t){if(!t)return w2e.SpanNames.QUERY_PREFIX;let n=typeof t.name=="string"&&t.name?t.name:I2e(t.text);return`${w2e.SpanNames.QUERY_PREFIX}:${n}${e?` ${e}`:""}`}qn.getQuerySpanName=k2e;function I2e(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}qn.parseNormalizedOperationName=I2e;function x2e(e){try{let t=new URL(e);return t.username="",t.password="",t.toString()}catch{return"postgresql://localhost:5432/"}}qn.parseAndMaskConnectionString=x2e;function Bte(e){if("connectionString"in e&&e.connectionString)return x2e(e.connectionString);let t=e.host||"localhost",n=e.port||5432,r=e.database||"";return`postgresql://${t}:${n}/${r}`}qn.getConnectionString=Bte;function jz(e){if(Number.isInteger(e))return e}function O2e(e,t){let n={};return t&c_.SemconvStability.OLD&&(n={...n,[ds.ATTR_DB_SYSTEM]:ds.DB_SYSTEM_VALUE_POSTGRESQL,[ds.ATTR_DB_NAME]:e.database,[ds.ATTR_DB_CONNECTION_STRING]:Bte(e),[ds.ATTR_DB_USER]:e.user,[ds.ATTR_NET_PEER_NAME]:e.host,[ds.ATTR_NET_PEER_PORT]:jz(e.port)}),t&c_.SemconvStability.STABLE&&(n={...n,[od.ATTR_DB_SYSTEM_NAME]:od.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[od.ATTR_DB_NAMESPACE]:e.namespace,[od.ATTR_SERVER_ADDRESS]:e.host,[od.ATTR_SERVER_PORT]:jz(e.port)}),n}qn.getSemanticAttributesFromConnection=O2e;function ben(e,t){let n;try{n=e.connectionString?new URL(e.connectionString):void 0}catch{n=void 0}let r={[Fz.AttributeNames.IDLE_TIMEOUT_MILLIS]:e.idleTimeoutMillis,[Fz.AttributeNames.MAX_CLIENT]:e.maxClient};return t&c_.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]:Bte(e),[ds.ATTR_NET_PEER_NAME]:n?.hostname??e.host,[ds.ATTR_NET_PEER_PORT]:Number(n?.port)||jz(e.port),[ds.ATTR_DB_USER]:n?.username??e.user}),t&c_.SemconvStability.STABLE&&(r={...r,[od.ATTR_DB_SYSTEM_NAME]:od.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[od.ATTR_DB_NAMESPACE]:e.namespace,[od.ATTR_SERVER_ADDRESS]:n?.hostname??e.host,[od.ATTR_SERVER_PORT]:Number(n?.port)||jz(e.port)}),r}qn.getSemanticAttributesFromPoolConnection=ben;function Een(e){return e.requireParentSpan===!0&&cS.trace.getSpan(cS.context.active())===void 0}qn.shouldSkipInstrumentation=Een;function _en(e,t,n,r){let{connectionParameters:i}=this,s=i.database,o=k2e(s,r),a=e.startSpan(o,{kind:cS.SpanKind.CLIENT,attributes:O2e(i,n)});if(!r)return a;if(r.text&&(n&c_.SemconvStability.OLD&&a.setAttribute(ds.ATTR_DB_STATEMENT,r.text),n&c_.SemconvStability.STABLE&&a.setAttribute(od.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(Fz.AttributeNames.PG_VALUES,c)}catch(c){cS.diag.error("failed to stringify ",r.values,c)}return typeof r.name=="string"&&a.setAttribute(Fz.AttributeNames.PG_PLAN,r.name),a}qn.handleConfigQuery=_en;function P2e(e,t,n){typeof e.responseHook=="function"&&(0,c_.safeExecuteInTheMiddle)(()=>{e.responseHook(t,{data:n})},r=>{r&&cS.diag.error("Error running response hook",r)},!0)}qn.handleExecutionResult=P2e;function Ten(e,t,n,r,i){return function(o,a){o?(Object.prototype.hasOwnProperty.call(o,"code")&&(r[od.ATTR_ERROR_TYPE]=o.code),o instanceof Error&&t.recordException(Hz(o)),t.setStatus({code:cS.SpanStatusCode.ERROR,message:o.message})):P2e(e,t,a),i(),t.end(),n.call(this,o,a)}}qn.patchCallback=Ten;function ven(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()}qn.getPoolName=ven;function Ren(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}}qn.updateCounter=Ren;function Aen(e,t){return function(r,i,s){r&&(r instanceof Error&&e.recordException(Hz(r)),e.setStatus({code:cS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.call(this,r,i,s)}}qn.patchCallbackPGPool=Aen;function wen(e,t){return function(r){r&&(r instanceof Error&&e.recordException(Hz(r)),e.setStatus({code:cS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.apply(this,arguments)}}qn.patchClientConnectCallback=wen;function ken(e){return typeof e=="object"&&e!==null&&"message"in e?String(e.message):void 0}qn.getErrorMessage=ken;function Ien(e){return typeof e=="object"&&typeof e?.text=="string"}qn.isObjectWithTextString=Ien;function Hz(e){let t=e?.name??"PostgreSQLError",n=e?.code??"UNKNOWN";return`PostgreSQL error of type '${t}' occurred (code: ${n})`}qn.sanitizedErrorMessage=Hz});var C2e=w(uw=>{"use strict";Object.defineProperty(uw,"__esModule",{value:!0});uw.PACKAGE_NAME=uw.PACKAGE_VERSION=void 0;uw.PACKAGE_VERSION="0.66.0";uw.PACKAGE_NAME="@opentelemetry/instrumentation-pg"});var j2e=w(Bz=>{"use strict";Object.defineProperty(Bz,"__esModule",{value:!0});Bz.PgInstrumentation=void 0;var Uc=Jt(),Ur=(Me(),ke(Ze)),M2e=A2e(),Yi=N2e(),D2e=Ate(),L2e=C2e(),U2e=qte(),qz=pr(),gf=(Nn(),ke(Mr)),wN=Hte();function lw(e){return e[Symbol.toStringTag]==="Module"?e.default:e}var zte=class extends Uc.InstrumentationBase{_connectionsCounter={used:0,idle:0,pending:0};_semconvStability;constructor(t={}){super(L2e.PACKAGE_NAME,L2e.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(wN.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(wN.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=lw(a);return this._patchPgClient(c.Client),a},a=>{let c=lw(a);return this._unpatchPgClient(c.Client),a},[i,r]),o=new Uc.InstrumentationNodeModuleDefinition("pg-pool",n,a=>{let c=lw(a);return(0,Uc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect"),this._wrap(c.prototype,"connect",this._getPoolConnectPatch()),c},a=>{let c=lw(a);(0,Uc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect")});return[s,o]}_patchPgClient(t){if(!t)return;let n=lw(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=lw(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(U2e.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 F2e(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(wN.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,qz.hrTimeToMilliseconds)((0,qz.hrTimeDuration)(n,(0,qz.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,qz.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={[wN.ATTR_DB_SYSTEM]:wN.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,D2e.addSqlCommenterComment)(p,o):c&&!("name"in o)&&(i[0]={...o,text:(0,D2e.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[M2e.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[M2e.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(U2e.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 F2e(o,a)}}};Bz.PgInstrumentation=zte;function F2e(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 H2e=w(dw=>{"use strict";Object.defineProperty(dw,"__esModule",{value:!0});dw.AttributeNames=dw.PgInstrumentation=void 0;var xen=j2e();Object.defineProperty(dw,"PgInstrumentation",{enumerable:!0,get:function(){return xen.PgInstrumentation}});var Oen=jte();Object.defineProperty(dw,"AttributeNames",{enumerable:!0,get:function(){return Oen.AttributeNames}})});var q2e,B2e,z2e,Pen,G2e,V2e=v(()=>{q2e=Re(H2e(),1);sr();B2e="Postgres",z2e=rt(B2e,q2e.PgInstrumentation,e=>({requireParentSpan:!0,requestHook(t){Dr(t,"auto.db.otel.postgres")},ignoreConnectSpans:e?.ignoreConnectSpans??!1})),Pen=(e=>({name:B2e,setupOnce(){z2e(e)}})),G2e=Pen});var uS,Vte,W2e,Nen,Cen,K2e,Gte,Men,Y2e,Z2e=v(()=>{Me();uS=Re(Jt(),1);Nn();st();sr();QE();Vte="PostgresJs",W2e=[">=3.0.0 <4"],Nen=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,Cen=Symbol.for("sentry.query.from.instrumented.sql"),K2e=rt(Vte,e=>new Gte({requireParentSpan:e?.requireParentSpan??!0,requestHook:e?.requestHook})),Gte=class extends uS.InstrumentationBase{constructor(t){super("sentry-postgres-js",Cn,t)}init(){let t=new uS.InstrumentationNodeModuleDefinition("postgres",W2e,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 uS.InstrumentationNodeModuleFile(`postgres/${n}/query.js`,W2e,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 rQ(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:(_P(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(yR,r);return}let i=n?.match(Nen);i?.[1]&&t.setAttribute(yR,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({[SE]:"postgres",[T7]:o});let c=n.getConfig(),{requestHook:u}=c;u&&(0,uS.safeExecuteInTheMiddle)(()=>u(a,o,void 0),f=>{f&&(a.setAttribute("sentry.hook.error","requestHook failed"),So&&Z.error(`Error in requestHook for ${Vte} 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(v7,h?.[0]?.code||"unknown"),a.setAttribute(R7,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}},Men=(e=>({name:Vte,setupOnce(){K2e(e)}})),Y2e=Men});var J2e=w(kN=>{"use strict";Object.defineProperty(kN,"__esModule",{value:!0});kN.SeverityNumber=void 0;var Den;(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"})(Den=kN.SeverityNumber||(kN.SeverityNumber={}))});var Gz=w(fw=>{"use strict";Object.defineProperty(fw,"__esModule",{value:!0});fw.NOOP_LOGGER=fw.NoopLogger=void 0;var zz=class{emit(t){}};fw.NoopLogger=zz;fw.NOOP_LOGGER=new zz});var Wz=w(pw=>{"use strict";Object.defineProperty(pw,"__esModule",{value:!0});pw.NOOP_LOGGER_PROVIDER=pw.NoopLoggerProvider=void 0;var Len=Gz(),Vz=class{getLogger(t,n,r){return new Len.NoopLogger}};pw.NoopLoggerProvider=Vz;pw.NOOP_LOGGER_PROVIDER=new Vz});var Kte=w(Kz=>{"use strict";Object.defineProperty(Kz,"__esModule",{value:!0});Kz.ProxyLogger=void 0;var Uen=Gz(),Wte=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):Uen.NOOP_LOGGER}};Kz.ProxyLogger=Wte});var Zte=w(Yz=>{"use strict";Object.defineProperty(Yz,"__esModule",{value:!0});Yz.ProxyLoggerProvider=void 0;var Fen=Wz(),jen=Kte(),Yte=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new jen.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:Fen.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)}};Yz.ProxyLoggerProvider=Yte});var X2e=w(Zz=>{"use strict";Object.defineProperty(Zz,"__esModule",{value:!0});Zz._globalThis=void 0;Zz._globalThis=typeof globalThis=="object"?globalThis:global});var Q2e=w(Jz=>{"use strict";Object.defineProperty(Jz,"__esModule",{value:!0});Jz._globalThis=void 0;var Hen=X2e();Object.defineProperty(Jz,"_globalThis",{enumerable:!0,get:function(){return Hen._globalThis}})});var $2e=w(Xz=>{"use strict";Object.defineProperty(Xz,"__esModule",{value:!0});Xz._globalThis=void 0;var qen=Q2e();Object.defineProperty(Xz,"_globalThis",{enumerable:!0,get:function(){return qen._globalThis}})});var eVe=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 Ben=$2e();$p.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");$p._global=Ben._globalThis;function zen(e,t,n){return r=>r===e?t:n}$p.makeGetter=zen;$p.API_BACKWARDS_COMPATIBILITY_VERSION=1});var nVe=w(Qz=>{"use strict";Object.defineProperty(Qz,"__esModule",{value:!0});Qz.LogsAPI=void 0;var ad=eVe(),Gen=Wz(),tVe=Zte(),Jte=class e{constructor(){this._proxyLoggerProvider=new tVe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return ad._global[ad.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(ad._global[ad.GLOBAL_LOGS_API_KEY]=(0,ad.makeGetter)(ad.API_BACKWARDS_COMPATIBILITY_VERSION,t,Gen.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=ad._global[ad.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(ad._global,ad.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete ad._global[ad.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new tVe.ProxyLoggerProvider}};Qz.LogsAPI=Jte});var Xte=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 Ven=J2e();Object.defineProperty(Bo,"SeverityNumber",{enumerable:!0,get:function(){return Ven.SeverityNumber}});var rVe=Gz();Object.defineProperty(Bo,"NOOP_LOGGER",{enumerable:!0,get:function(){return rVe.NOOP_LOGGER}});Object.defineProperty(Bo,"NoopLogger",{enumerable:!0,get:function(){return rVe.NoopLogger}});var iVe=Wz();Object.defineProperty(Bo,"NOOP_LOGGER_PROVIDER",{enumerable:!0,get:function(){return iVe.NOOP_LOGGER_PROVIDER}});Object.defineProperty(Bo,"NoopLoggerProvider",{enumerable:!0,get:function(){return iVe.NoopLoggerProvider}});var Wen=Kte();Object.defineProperty(Bo,"ProxyLogger",{enumerable:!0,get:function(){return Wen.ProxyLogger}});var Ken=Zte();Object.defineProperty(Bo,"ProxyLoggerProvider",{enumerable:!0,get:function(){return Ken.ProxyLoggerProvider}});var Yen=nVe();Bo.logs=Yen.LogsAPI.getInstance()});var sVe=w(hw=>{"use strict";Object.defineProperty(hw,"__esModule",{value:!0});hw.disableInstrumentations=hw.enableInstrumentations=void 0;function Zen(e,t,n,r){for(let i=0,s=e.length;it.disable())}hw.disableInstrumentations=Jen});var cVe=w($z=>{"use strict";Object.defineProperty($z,"__esModule",{value:!0});$z.registerInstrumentations=void 0;var oVe=(Me(),ke(Ze)),Xen=Xte(),aVe=sVe();function Qen(e){let t=e.tracerProvider||oVe.trace.getTracerProvider(),n=e.meterProvider||oVe.metrics.getMeterProvider(),r=e.loggerProvider||Xen.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,aVe.enableInstrumentations)(i,t,n,r),()=>{(0,aVe.disableInstrumentations)(i)}}$z.registerInstrumentations=Qen});var yVe=w(eG=>{"use strict";Object.defineProperty(eG,"__esModule",{value:!0});eG.satisfies=void 0;var tne=(Me(),ke(Ze)),pVe=/^(?: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-]+)*))?$/,$en=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,etn={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function ttn(e,t,n){if(!ntn(e))return tne.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=otn(e);if(!r)return!1;let i=[],s=hVe(r,t,i,n);return s&&!n?.includePrerelease?itn(r,i):s}eG.satisfies=ttn;function ntn(e){return typeof e=="string"&&pVe.test(e)}function hVe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Qte(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=ktn(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!Qte(e,s,n,r))return!1;return!0}return Qte(e,t,n,r)}function Qte(e,t,n,r){if(t=stn(t,r),t.includes(" "))return hVe(e,t,n,r);{let i=atn(t);return n.push(i),rtn(e,i)}}function rtn(e,t){if(t.invalid)return!1;if(!t.version||ene(t.version))return!0;let n=lVe(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=lVe(r,i)}return etn[t.op]?.includes(n)}function itn(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function stn(e,t){return e=e.trim(),e=Atn(e,t),e=Rtn(e),e=wtn(e,t),e=e.trim(),e}function Fc(e){return!e||e.toLowerCase()==="x"||e==="*"}function otn(e){let t=e.match(pVe);if(!t){tne.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 atn(e){if(!e)return{};let t=e.match($en);if(!t)return tne.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 ene(e){return e==="*"||e==="x"||e==="X"}function uVe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function ctn(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 utn(e,t){if(ene(e)||ene(t))return 0;let[n,r]=ctn(uVe(e),uVe(t));return n>r?1:n)?=?)",dVe=`(?:${gVe}|${ltn})`,ftn=`(?:-(${dVe}(?:\\.${dVe})*))`,fVe=`${mVe}+`,ptn=`(?:\\+(${fVe}(?:\\.${fVe})*))`,$te=`${gVe}|x|X|\\*`,IN=`[v=\\s]*(${$te})(?:\\.(${$te})(?:\\.(${$te})(?:${ftn})?${ptn}?)?)?`,htn=`^${dtn}\\s*${IN}$`,mtn=new RegExp(htn),gtn=`^\\s*(${IN})\\s+-\\s+(${IN})\\s*$`,ytn=new RegExp(gtn),Stn="(?:~>?)",btn=`^${Stn}${IN}$`,Etn=new RegExp(btn),_tn="(?:\\^)",Ttn=`^${_tn}${IN}$`,vtn=new RegExp(Ttn);function Rtn(e){let t=Etn;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 Atn(e,t){let n=vtn,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 wtn(e,t){let n=mtn;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 ktn(e,t){let n=ytn;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 nne=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 xN(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var Itn=(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 xN(i,"__original",r),xN(i,"__unwrap",()=>{e[t]===i&&xN(e,t,r)}),xN(i,"__wrapped",!0),xN(e,t,i),i};pa.wrap=Itn;var xtn=(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=xtn;var Otn=(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=Otn;var Ptn=(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=Ptn;function ON(e){e&&e.logger&&(typeof e.logger!="function"?jc("new logger isn't a function, not replacing"):jc=e.logger)}pa.default=ON;ON.wrap=pa.wrap;ON.massWrap=pa.massWrap;ON.unwrap=pa.unwrap;ON.massUnwrap=pa.massUnwrap});var SVe=w(nG=>{"use strict";Object.defineProperty(nG,"__esModule",{value:!0});nG.InstrumentationAbstract=void 0;var rne=(Me(),ke(Ze)),Ntn=Xte(),tG=nne(),ine=class{instrumentationName;instrumentationVersion;_config={};_tracer;_meter;_logger;_diag;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=rne.diag.createComponentLogger({namespace:t}),this._tracer=rne.trace.getTracer(t,n),this._meter=rne.metrics.getMeter(t,n),this._logger=Ntn.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=tG.wrap;_unwrap=tG.unwrap;_massWrap=tG.massWrap;_massUnwrap=tG.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)}}};nG.InstrumentationAbstract=ine});var bVe=w(lS=>{"use strict";Object.defineProperty(lS,"__esModule",{value:!0});lS.ModuleNameTrie=lS.ModuleNameSeparator=void 0;lS.ModuleNameSeparator="/";var rG=class{hooks=[];children=new Map},sne=class{_trie=new rG;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(lS.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new rG,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(lS.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))}};lS.ModuleNameTrie=sne});var _Ve=w(iG=>{"use strict";Object.defineProperty(iG,"__esModule",{value:!0});iG.RequireInTheMiddleSingleton=void 0;var Ctn=RE(),EVe=Y("path"),one=bVe(),Mtn=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),ane=class e{_moduleNameTrie=new one.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new Ctn.Hook(null,{internals:!0},(t,n,r)=>{let i=Dtn(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 Mtn?new e:this._instance=this._instance??new e}};iG.RequireInTheMiddleSingleton=ane;function Dtn(e){return EVe.sep!==one.ModuleNameSeparator?e.split(EVe.sep).join(one.ModuleNameSeparator):e}});var wVe=w(PN=>{var TVe=[],cne=new WeakMap,vVe=new WeakMap,RVe=new Map,AVe=[],Ltn={set(e,t,n){let r=cne.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=vVe.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=cne.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function Utn(e,t,n,r,i){RVe.set(e,i),cne.set(t,n),vVe.set(t,r);let s=new Proxy(t,Ltn);TVe.forEach(o=>o(e,s,i)),AVe.push([e,s,i])}PN.register=Utn;PN.importHooks=TVe;PN.specifiers=RVe;PN.toHook=AVe});var OVe=w((p1r,gw)=>{var kVe=Y("path"),Ftn=xO(),{fileURLToPath:jtn}=Y("url"),{MessageChannel:Htn}=Y("worker_threads"),{isBuiltin:une}=Y("module");une||(une=()=>!0);var{importHooks:lne,specifiers:qtn,toHook:Btn}=wVe();function IVe(e){lne.push(e),Btn.forEach(([t,n,r])=>e(t,n,r))}function xVe(e){let t=lne.indexOf(e);t>-1&&lne.splice(t,1)}function mw(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var dne;function ztn(){let{port1:e,port2:t}=new Htn,n=0,r;dne=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 NN(e,t,n){if(!(this instanceof NN))return new NN(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;dne&&Array.isArray(e)&&dne(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);une(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=jtn(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=Ftn(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)mw(n,s,u,void 0);else if(d===i){if(!l)mw(n,s,i,l);else if(l.endsWith(qtn.get(a)))mw(n,s,i,l);else if(r){let f=i+kVe.sep+kVe.relative(l,u);mw(n,s,f,l)}}else d===o&&mw(n,s,o,l);else mw(n,s,i,l)},IVe(this._iitmHook)}NN.prototype.unhook=function(){xVe(this._iitmHook)};gw.exports=NN;gw.exports.Hook=NN;gw.exports.addHook=IVe;gw.exports.removeHook=xVe;gw.exports.createAddHookMessageChannel=ztn});var fne=w(dS=>{"use strict";Object.defineProperty(dS,"__esModule",{value:!0});dS.isWrapped=dS.safeExecuteInTheMiddleAsync=dS.safeExecuteInTheMiddle=void 0;function Gtn(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}dS.safeExecuteInTheMiddle=Gtn;async function Vtn(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}}dS.safeExecuteInTheMiddleAsync=Vtn;function Wtn(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}dS.isWrapped=Wtn});var CVe=w(sG=>{"use strict";Object.defineProperty(sG,"__esModule",{value:!0});sG.InstrumentationBase=void 0;var CN=Y("path"),PVe=Y("util"),Ktn=yVe(),pne=nne(),Ytn=SVe(),Ztn=_Ve(),Jtn=OVe(),MN=(Me(),ke(Ze)),Xtn=RE(),Qtn=Y("fs"),$tn=fne(),hne=class extends Ytn.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=Ztn.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,$tn.isWrapped)(t[n])&&this._unwrap(t,n),PVe.types.isProxy(t)){let i=(0,pne.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,pne.wrap)(t,n,r)};_unwrap=(t,n)=>PVe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,pne.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{MN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{MN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=Y.resolve(n);Y.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,Qtn.readFileSync)(CN.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{MN.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return NVe(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=CN.normalize(r);return o.filter(u=>u.name===a).filter(u=>NVe(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&CN.isAbsolute(a)){let u=CN.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=CN.isAbsolute(t.name)?new Xtn.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new Jtn.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}};sG.InstrumentationBase=hne;function NVe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,Ktn.satisfies)(t,r,{includePrerelease:n}))}});var MVe=w(oG=>{"use strict";Object.defineProperty(oG,"__esModule",{value:!0});oG.normalize=void 0;var enn=Y("path");Object.defineProperty(oG,"normalize",{enumerable:!0,get:function(){return enn.normalize}})});var DVe=w(yw=>{"use strict";Object.defineProperty(yw,"__esModule",{value:!0});yw.normalize=yw.InstrumentationBase=void 0;var tnn=CVe();Object.defineProperty(yw,"InstrumentationBase",{enumerable:!0,get:function(){return tnn.InstrumentationBase}});var nnn=MVe();Object.defineProperty(yw,"normalize",{enumerable:!0,get:function(){return nnn.normalize}})});var mne=w(Sw=>{"use strict";Object.defineProperty(Sw,"__esModule",{value:!0});Sw.normalize=Sw.InstrumentationBase=void 0;var LVe=DVe();Object.defineProperty(Sw,"InstrumentationBase",{enumerable:!0,get:function(){return LVe.InstrumentationBase}});Object.defineProperty(Sw,"normalize",{enumerable:!0,get:function(){return LVe.normalize}})});var UVe=w(aG=>{"use strict";Object.defineProperty(aG,"__esModule",{value:!0});aG.InstrumentationNodeModuleDefinition=void 0;var gne=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||[]}};aG.InstrumentationNodeModuleDefinition=gne});var FVe=w(cG=>{"use strict";Object.defineProperty(cG,"__esModule",{value:!0});cG.InstrumentationNodeModuleFile=void 0;var rnn=mne(),yne=class{supportedVersions;patch;unpatch;name;constructor(t,n,r,i){this.supportedVersions=n,this.patch=r,this.unpatch=i,this.name=(0,rnn.normalize)(t)}};cG.InstrumentationNodeModuleFile=yne});var jVe=w(u_=>{"use strict";Object.defineProperty(u_,"__esModule",{value:!0});u_.semconvStabilityFromStr=u_.SemconvStability=void 0;var uG;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(uG=u_.SemconvStability||(u_.SemconvStability={}));function inn(e,t){let n=uG.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=uG.DUPLICATE;break}else i.toLowerCase()===e&&(n=uG.STABLE);return n}u_.semconvStabilityFromStr=inn});var qVe=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 snn=cVe();Object.defineProperty(Js,"registerInstrumentations",{enumerable:!0,get:function(){return snn.registerInstrumentations}});var onn=mne();Object.defineProperty(Js,"InstrumentationBase",{enumerable:!0,get:function(){return onn.InstrumentationBase}});var ann=UVe();Object.defineProperty(Js,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return ann.InstrumentationNodeModuleDefinition}});var cnn=FVe();Object.defineProperty(Js,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return cnn.InstrumentationNodeModuleFile}});var Sne=fne();Object.defineProperty(Js,"isWrapped",{enumerable:!0,get:function(){return Sne.isWrapped}});Object.defineProperty(Js,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return Sne.safeExecuteInTheMiddle}});Object.defineProperty(Js,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return Sne.safeExecuteInTheMiddleAsync}});var HVe=jVe();Object.defineProperty(Js,"SemconvStability",{enumerable:!0,get:function(){return HVe.SemconvStability}});Object.defineProperty(Js,"semconvStabilityFromStr",{enumerable:!0,get:function(){return HVe.semconvStabilityFromStr}})});function dnn(){let e=bw[Ene];return e?.helper?e.helper:bw[bne]?.helper}function fnn(e){let t={helper:e};bw[Ene]=t,bw[bne]=t}function pnn(){delete bw[Ene],delete bw[bne]}function gnn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}function GVe(e,t,n,r,i){if(VVe(t.name,i))return;let s={attributes:t.attributes,kind:gnn(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)GVe(e,c,n,r,i);o.end(t.endTime)})}function BVe(e,t){return Snn(t)?t.then(n=>(e.end(),n),n=>{throw e.end(),n}):(e.end(),t)}function Snn(e){return e!=null&&typeof e.then=="function"}function VVe(e,t){return t.some(n=>typeof n=="string"?n===e:n.test(e))}var lG,unn,lnn,bne,Ene,bw,hnn,mnn,ynn,WVe,zVe,bnn,Enn,KVe,YVe=v(()=>{Me();lG=Re(qVe(),1);Me();unn={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"}},lnn=unn.version.split(".")[0],bne="PRISMA_INSTRUMENTATION",Ene=`V${lnn}_PRISMA_INSTRUMENTATION`,bw=globalThis;hnn=process.env.PRISMA_SHOW_ALL_TRACES==="true",mnn="00-10-10-00";ynn=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}`:mnn}dispatchEngineSpans(e){let t=this.tracerProvider.getTracer("prisma"),n=new Map,r=e.filter(i=>i.parentId===null);for(let i of r)GVe(t,i,e,n,this.ignoreSpanTypes)}getActiveContext(){return Ve.active()}runInChildSpan(e,t){if(typeof e=="string"&&(e={name:e}),e.internal&&!hnn)return t();let n=this.tracerProvider.getTracer("prisma"),r=e.context??this.getActiveContext(),i=`prisma:client:${e.name}`;if(VVe(i,this.ignoreSpanTypes))return t();if(e.active===!1){let s=n.startSpan(i,e,r);return BVe(s,t(s,r))}return n.startActiveSpan(i,e,s=>BVe(s,t(s,r)))}};WVe={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},zVe=WVe.version,bnn=WVe.name,Enn="@prisma/client",KVe=class extends lG.InstrumentationBase{tracerProvider;constructor(e={}){super(bnn,zVe,e)}setTracerProvider(e){this.tracerProvider=e}init(){return[new lG.InstrumentationNodeModuleDefinition(Enn,[zVe])]}enable(){let e=this._config;fnn(new ynn({tracerProvider:this.tracerProvider??jt.getTracerProvider(),ignoreSpanTypes:e.ignoreSpanTypes??[]}))}disable(){pnn()}isEnabled(){return dnn()!==void 0}}});function _nn(e){return!!e&&typeof e=="object"&&"dispatchEngineSpans"in e}function JVe(){let e=globalThis.PRISMA_INSTRUMENTATION;return e&&typeof e=="object"&&"helper"in e?e.helper:void 0}function Tnn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}var ZVe,_ne,vnn,XVe,QVe=v(()=>{Me();YVe();st();sr();ZVe="Prisma";_ne=class extends KVe{constructor(t){super(t?.instrumentationConfig)}enable(){super.enable();let t=JVe();_nn(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=Tnn(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}})}};vnn=rt(ZVe,e=>new _ne(e)),XVe=e=>({name:ZVe,setupOnce(){vnn(e)},setup(t){JVe()&&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 $Ve=w(Ew=>{"use strict";Object.defineProperty(Ew,"__esModule",{value:!0});Ew.PACKAGE_NAME=Ew.PACKAGE_VERSION=void 0;Ew.PACKAGE_VERSION="0.60.0";Ew.PACKAGE_NAME="@opentelemetry/instrumentation-hapi"});var Tne=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 eWe=w(dG=>{"use strict";Object.defineProperty(dG,"__esModule",{value:!0});dG.ATTR_HTTP_METHOD=void 0;dG.ATTR_HTTP_METHOD="http.method"});var vne=w(DN=>{"use strict";Object.defineProperty(DN,"__esModule",{value:!0});DN.AttributeNames=void 0;var Rnn;(function(e){e.HAPI_TYPE="hapi.type",e.PLUGIN_NAME="hapi.plugin.name",e.EXT_TYPE="server.ext.type"})(Rnn=DN.AttributeNames||(DN.AttributeNames={}))});var rWe=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 tWe=(Nn(),ke(Mr)),Ann=eWe(),LN=Tne(),fS=vne(),nWe=Jt();function wnn(e){return e.name?e.name:e.pkg.name}Xs.getPluginName=wnn;var knn=e=>typeof e=="string"&&LN.HapiLifecycleMethodNames.has(e);Xs.isLifecycleExtType=knn;var Inn=e=>{let t=e?.type;return t!==void 0&&(0,Xs.isLifecycleExtType)(t)};Xs.isLifecycleExtEventObj=Inn;var xnn=e=>Array.isArray(e)&&e.length<=3&&(0,Xs.isLifecycleExtType)(e[0])&&typeof e[1]=="function";Xs.isDirectExtInput=xnn;var Onn=e=>!Array.isArray(e);Xs.isPatchableExtMethod=Onn;var Pnn=(e,t,n)=>{let r={[tWe.ATTR_HTTP_ROUTE]:e.path};t&nWe.SemconvStability.OLD&&(r[Ann.ATTR_HTTP_METHOD]=e.method),t&nWe.SemconvStability.STABLE&&(r[tWe.ATTR_HTTP_REQUEST_METHOD]=e.method);let i;return n?(r[fS.AttributeNames.HAPI_TYPE]=LN.HapiLayerType.PLUGIN,r[fS.AttributeNames.PLUGIN_NAME]=n,i=`${n}: route - ${e.path}`):(r[fS.AttributeNames.HAPI_TYPE]=LN.HapiLayerType.ROUTER,i=`route - ${e.path}`),{attributes:r,name:i}};Xs.getRouteMetadata=Pnn;var Nnn=(e,t,n)=>{let r=`ext - ${e}`;return n&&n!=="method"&&(r=`ext - ${e} - ${n}`),t?{attributes:{[fS.AttributeNames.EXT_TYPE]:e,[fS.AttributeNames.HAPI_TYPE]:LN.HapiLayerType.EXT,[fS.AttributeNames.PLUGIN_NAME]:t},name:`${t}: ${r}`}:{attributes:{[fS.AttributeNames.EXT_TYPE]:e,[fS.AttributeNames.HAPI_TYPE]:LN.HapiLayerType.EXT},name:r}};Xs.getExtMetadata=Nnn;var Cnn=e=>"plugin"in e?"plugin"in e.plugin?e.plugin.plugin:e.plugin:e;Xs.getPluginFromInput=Cnn});var oWe=w(fG=>{"use strict";Object.defineProperty(fG,"__esModule",{value:!0});fG.HapiInstrumentation=void 0;var gl=(Me(),ke(Ze)),iWe=pr(),UN=Jt(),sWe=$Ve(),FN=Tne(),Lm=rWe(),Rne=class extends UN.InstrumentationBase{_semconvStability;constructor(t={}){super(sWe.PACKAGE_NAME,sWe.PACKAGE_VERSION,t),this._semconvStability=(0,UN.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new UN.InstrumentationNodeModuleDefinition(FN.HapiComponentName,[">=17.0.0 <22"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,UN.isWrapped)(n.server)||this._wrap(n,"server",this._getServerPatch.bind(this)),(0,UN.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,Lm.getPluginFromInput)(o);n._wrapRegisterHandler(a)}else{let o=(0,Lm.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,iWe.getRPCMetadata)(gl.context.active());a?.type===iWe.RPCType.HTTP&&(a.route=t.path);let c=(0,Lm.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}};fG.HapiInstrumentation=Rne});var aWe=w(_w=>{"use strict";Object.defineProperty(_w,"__esModule",{value:!0});_w.AttributeNames=_w.HapiInstrumentation=void 0;var Mnn=oWe();Object.defineProperty(_w,"HapiInstrumentation",{enumerable:!0,get:function(){return Mnn.HapiInstrumentation}});var Dnn=vne();Object.defineProperty(_w,"AttributeNames",{enumerable:!0,get:function(){return Dnn.AttributeNames}})});var cWe,uWe,lWe,Lnn,dWe,fWe=v(()=>{cWe=Re(aWe(),1);sr();uWe="Hapi",lWe=rt(uWe,()=>new cWe.HapiInstrumentation),Lnn=(()=>({name:uWe,setupOnce(){lWe()}})),dWe=Lnn});var pS,jN,Ane=v(()=>{pS={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},jN={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"}});var hG,Unn,Fnn,pG,pWe=v(()=>{Me();hG=Re(Jt(),1);st();Ane();Unn="@sentry/instrumentation-hono",Fnn="0.0.1",pG=class extends hG.InstrumentationBase{constructor(t={}){super(Unn,Fnn,t)}init(){return[new hG.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({[pS.HONO_TYPE]:u,[pS.HONO_NAME]:u===jN.REQUEST_HANDLER?s:t.name||"anonymous"}),n.getConfig().responseHook?.(o),c});{let c=n._determineHandlerType(a);return o.setAttributes({[pS.HONO_TYPE]:c,[pS.HONO_NAME]:c===jN.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?jN.MIDDLEWARE:jN.REQUEST_HANDLER}_handleError(t,n){n instanceof Error&&(t.setStatus({code:as.ERROR,message:n.message}),t.recordException(n))}}});function jnn(e){let t=vt(e).data,n=t[pS.HONO_TYPE];if(t[zt]||!n)return;e.setAttributes({[At]:"auto.http.otel.hono",[zt]:`${n}.hono`});let r=t[pS.HONO_NAME];if(typeof r=="string"&&e.updateName(r),vn()===Wl()){So&&Z.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let i=t[dm],s=t[bE];typeof i=="string"&&typeof s=="string"&&vn().setTransactionName(`${s} ${i}`)}var hWe,mWe,Hnn,gWe,yWe=v(()=>{Nn();st();sr();QE();Ane();pWe();hWe="Hono";mWe=rt(hWe,()=>new pG({responseHook:e=>{jnn(e)}})),Hnn=(()=>({name:hWe,setupOnce(){mWe()}})),gWe=Hnn});var mG=w(HN=>{"use strict";Object.defineProperty(HN,"__esModule",{value:!0});HN.KoaLayerType=void 0;var qnn;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware"})(qnn=HN.KoaLayerType||(HN.KoaLayerType={}))});var SWe=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-koa"});var wne=w(qN=>{"use strict";Object.defineProperty(qN,"__esModule",{value:!0});qN.AttributeNames=void 0;var Bnn;(function(e){e.KOA_TYPE="koa.type",e.KOA_NAME="koa.name"})(Bnn=qN.AttributeNames||(qN.AttributeNames={}))});var EWe=w(vw=>{"use strict";Object.defineProperty(vw,"__esModule",{value:!0});vw.isLayerIgnored=vw.getMiddlewareMetadata=void 0;var bWe=mG(),gG=wne(),znn=(Nn(),ke(Mr)),Gnn=(e,t,n,r)=>n?{attributes:{[gG.AttributeNames.KOA_NAME]:r?.toString(),[gG.AttributeNames.KOA_TYPE]:bWe.KoaLayerType.ROUTER,[znn.ATTR_HTTP_ROUTE]:r?.toString()},name:e._matchedRouteName||`router - ${r}`}:{attributes:{[gG.AttributeNames.KOA_NAME]:t.name??"middleware",[gG.AttributeNames.KOA_TYPE]:bWe.KoaLayerType.MIDDLEWARE},name:`middleware - ${t.name}`};vw.getMiddlewareMetadata=Gnn;var Vnn=(e,t)=>!!(Array.isArray(t?.ignoreLayersType)&&t?.ignoreLayersType?.includes(e));vw.isLayerIgnored=Vnn});var _We=w(yG=>{"use strict";Object.defineProperty(yG,"__esModule",{value:!0});yG.kLayerPatched=void 0;yG.kLayerPatched=Symbol("koa-layer-patched")});var kWe=w(SG=>{"use strict";Object.defineProperty(SG,"__esModule",{value:!0});SG.KoaInstrumentation=void 0;var th=(Me(),ke(Ze)),BN=Jt(),TWe=mG(),vWe=SWe(),RWe=EWe(),AWe=pr(),wWe=_We(),kne=class extends BN.InstrumentationBase{constructor(t={}){super(vWe.PACKAGE_NAME,vWe.PACKAGE_VERSION,t)}init(){return new BN.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return n==null?n:((0,BN.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,BN.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,RWe.getMiddlewareMetadata)(s,t,n,r),u=this.tracer.startSpan(c.name,{attributes:c.attributes}),l=(0,AWe.getRPCMetadata)(th.context.active());l?.type===AWe.RPCType.HTTP&&s._matchedRoute&&(l.route=s._matchedRoute.toString());let{requestHook:d}=this.getConfig();d&&(0,BN.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()}})})}};SG.KoaInstrumentation=kne});var IWe=w(hS=>{"use strict";Object.defineProperty(hS,"__esModule",{value:!0});hS.KoaLayerType=hS.AttributeNames=hS.KoaInstrumentation=void 0;var Wnn=kWe();Object.defineProperty(hS,"KoaInstrumentation",{enumerable:!0,get:function(){return Wnn.KoaInstrumentation}});var Knn=wne();Object.defineProperty(hS,"AttributeNames",{enumerable:!0,get:function(){return Knn.AttributeNames}});var Ynn=mG();Object.defineProperty(hS,"KoaLayerType",{enumerable:!0,get:function(){return Ynn.KoaLayerType}})});var xWe,OWe,PWe,Znn,NWe,CWe=v(()=>{xWe=Re(IWe(),1);Nn();st();sr();QE();OWe="Koa",PWe=rt(OWe,xWe.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()===Wl()){So&&Z.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let o=r[dm],a=n.context?.request?.method?.toUpperCase()||"GET";o&&vn().setTransactionName(`${a} ${o}`)}})),Znn=((e={})=>({name:OWe,setupOnce(){PWe(e)}})),NWe=Znn});var Ine=w(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});yf.ConnectNames=yf.ConnectTypes=yf.AttributeNames=void 0;var Jnn;(function(e){e.CONNECT_TYPE="connect.type",e.CONNECT_NAME="connect.name"})(Jnn=yf.AttributeNames||(yf.AttributeNames={}));var Xnn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(Xnn=yf.ConnectTypes||(yf.ConnectTypes={}));var Qnn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request handler"})(Qnn=yf.ConnectNames||(yf.ConnectNames={}))});var MWe=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-connect"});var DWe=w(bG=>{"use strict";Object.defineProperty(bG,"__esModule",{value:!0});bG._LAYERS_STORE_PROPERTY=void 0;bG._LAYERS_STORE_PROPERTY=Symbol("opentelemetry.instrumentation-connect.request-route-stack")});var LWe=w(gS=>{"use strict";Object.defineProperty(gS,"__esModule",{value:!0});gS.generateRoute=gS.replaceCurrentStackRoute=gS.addNewStackLayer=void 0;var $nn=(Me(),ke(Ze)),mS=DWe(),ern=e=>{Array.isArray(e[mS._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,mS._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),e[mS._LAYERS_STORE_PROPERTY].push("/");let t=e[mS._LAYERS_STORE_PROPERTY].length;return()=>{t===e[mS._LAYERS_STORE_PROPERTY].length?e[mS._LAYERS_STORE_PROPERTY].pop():$nn.diag.warn("Connect: Trying to pop the stack multiple time")}};gS.addNewStackLayer=ern;var trn=(e,t)=>{t&&e[mS._LAYERS_STORE_PROPERTY].splice(-1,1,t)};gS.replaceCurrentStackRoute=trn;var nrn=e=>e[mS._LAYERS_STORE_PROPERTY].reduce((t,n)=>t.replace(/\/+$/,"")+n);gS.generateRoute=nrn});var jWe=w(yS=>{"use strict";Object.defineProperty(yS,"__esModule",{value:!0});yS.ConnectInstrumentation=yS.ANONYMOUS_NAME=void 0;var rrn=(Me(),ke(Ze)),UWe=pr(),Aw=Ine(),FWe=MWe(),EG=Jt(),irn=(Nn(),ke(Mr)),xne=LWe();yS.ANONYMOUS_NAME="anonymous";var One=class extends EG.InstrumentationBase{constructor(t={}){super(FWe.PACKAGE_NAME,FWe.PACKAGE_VERSION,t)}init(){return[new EG.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],t=>this._patchConstructor(t))]}_patchApp(t){(0,EG.isWrapped)(t.use)||this._wrap(t,"use",this._patchUse.bind(this)),(0,EG.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=Aw.ConnectTypes.REQUEST_HANDLER,s=Aw.ConnectNames.REQUEST_HANDLER,i=t):(r=Aw.ConnectTypes.MIDDLEWARE,s=Aw.ConnectNames.MIDDLEWARE,i=n.name||yS.ANONYMOUS_NAME);let o=`${s} - ${i}`,a={attributes:{[irn.ATTR_HTTP_ROUTE]:t.length>0?t:"/",[Aw.AttributeNames.CONNECT_TYPE]:r,[Aw.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,xne.replaceCurrentStackRoute)(u,t);let f=(0,UWe.getRPCMetadata)(rrn.context.active());t&&f?.type===UWe.RPCType.HTTP&&(f.route=(0,xne.generateRoute)(u));let p="";t?p=`request handler - ${t}`:p=`middleware - ${n.name||yS.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,xne.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)}}};yS.ConnectInstrumentation=One});var qWe=w(cd=>{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.ConnectTypes=cd.ConnectNames=cd.AttributeNames=cd.ANONYMOUS_NAME=cd.ConnectInstrumentation=void 0;var HWe=jWe();Object.defineProperty(cd,"ConnectInstrumentation",{enumerable:!0,get:function(){return HWe.ConnectInstrumentation}});Object.defineProperty(cd,"ANONYMOUS_NAME",{enumerable:!0,get:function(){return HWe.ANONYMOUS_NAME}});var Pne=Ine();Object.defineProperty(cd,"AttributeNames",{enumerable:!0,get:function(){return Pne.AttributeNames}});Object.defineProperty(cd,"ConnectNames",{enumerable:!0,get:function(){return Pne.ConnectNames}});Object.defineProperty(cd,"ConnectTypes",{enumerable:!0,get:function(){return Pne.ConnectTypes}})});var BWe,zWe,GWe,srn,VWe,WWe=v(()=>{BWe=Re(qWe(),1);sr();zWe="Connect",GWe=rt(zWe,()=>new BWe.ConnectInstrumentation),srn=(()=>({name:zWe,setupOnce(){GWe()}})),VWe=srn});var KWe=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 YWe=w(ww=>{"use strict";Object.defineProperty(ww,"__esModule",{value:!0});ww.once=ww.getSpanName=void 0;function orn(e,t,n,r){return e==="execBulkLoad"&&r&&t?`${e} ${r} ${t}`:e==="callProcedure"?t?`${e} ${n} ${t}`:`${e} ${n}`:t?`${e} ${t}`:`${e}`}ww.getSpanName=orn;var arn=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};ww.once=arn});var ZWe=w(kw=>{"use strict";Object.defineProperty(kw,"__esModule",{value:!0});kw.PACKAGE_NAME=kw.PACKAGE_VERSION=void 0;kw.PACKAGE_VERSION="0.33.0";kw.PACKAGE_NAME="@opentelemetry/instrumentation-tedious"});var e4e=w(bS=>{"use strict";Object.defineProperty(bS,"__esModule",{value:!0});bS.TediousInstrumentation=bS.INJECTED_CTX=void 0;var Iw=(Me(),ke(Ze)),crn=Y("events"),nh=Jt(),l_=(Nn(),ke(Mr)),SS=KWe(),JWe=YWe(),XWe=ZWe(),$We=Symbol("opentelemetry.instrumentation-tedious.current-database");bS.INJECTED_CTX=Symbol("opentelemetry.instrumentation-tedious.context-info-injected");var QWe=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function _G(e){Object.defineProperty(this,$We,{value:e,writable:!0})}var Nne=class e extends nh.InstrumentationBase{static COMPONENT="tedious";_netSemconvStability;_dbSemconvStability;constructor(t={}){super(XWe.PACKAGE_NAME,XWe.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 QWe)(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 QWe)this._unwrap(n,r);this._unwrap(n,"connect")})]}_patchConnect(t){return function(){return _G.call(this,this.config?.options?.database),this.removeListener("databaseChange",_G),this.on("databaseChange",_G),this.once("end",()=>{this.removeListener("databaseChange",_G)}),t.apply(this,arguments)}}_buildTraceparent(t){let n=t.spanContext();return`00-${n.traceId}-${n.spanId}-0${Number(n.traceFlags||Iw.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,bS.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?.[bS.INJECTED_CTX])return r.apply(this,arguments);if(!(o instanceof crn.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[$We],f=(E=>E.sqlTextOrProcedure==="sp_prepare"&&E.parametersByName?.stmt?.value?E.parametersByName.stmt.value:E.sqlTextOrProcedure)(o),p={};i._dbSemconvStability&nh.SemconvStability.OLD&&(p[SS.ATTR_DB_SYSTEM]=SS.DB_SYSTEM_VALUE_MSSQL,p[SS.ATTR_DB_NAME]=d,p[SS.ATTR_DB_USER]=this.config?.userName??this.config?.authentication?.options?.userName,p[SS.ATTR_DB_STATEMENT]=f,p[SS.ATTR_DB_SQL_TABLE]=o.table),i._dbSemconvStability&nh.SemconvStability.STABLE&&(p[l_.ATTR_DB_NAMESPACE]=d,p[l_.ATTR_DB_SYSTEM_NAME]=l_.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER,p[l_.ATTR_DB_QUERY_TEXT]=f,p[l_.ATTR_DB_COLLECTION_NAME]=o.table),i._netSemconvStability&nh.SemconvStability.OLD&&(p[SS.ATTR_NET_PEER_NAME]=this.config?.server,p[SS.ATTR_NET_PEER_PORT]=this.config?.options?.port),i._netSemconvStability&nh.SemconvStability.STABLE&&(p[l_.ATTR_SERVER_ADDRESS]=this.config?.server,p[l_.ATTR_SERVER_PORT]=this.config?.options?.port);let h=i.tracer.startSpan((0,JWe.getSpanName)(t,d,f,o.table),{kind:Iw.SpanKind.CLIENT,attributes:p}),m=(0,JWe.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:Iw.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=()=>Iw.context.with(Iw.trace.setSpan(Iw.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)}}};bS.TediousInstrumentation=Nne});var t4e=w(TG=>{"use strict";Object.defineProperty(TG,"__esModule",{value:!0});TG.TediousInstrumentation=void 0;var urn=e4e();Object.defineProperty(TG,"TediousInstrumentation",{enumerable:!0,get:function(){return urn.TediousInstrumentation}})});var n4e,lrn,r4e,i4e,drn,s4e,o4e=v(()=>{n4e=Re(t4e(),1);st();sr();lrn=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),r4e="Tedious",i4e=rt(r4e,()=>new n4e.TediousInstrumentation({})),drn=(()=>{let e;return{name:r4e,setupOnce(){let t=i4e();e=vP(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]||"";lrn.has(s)&&n.setAttribute(At,"auto.db.otel.tedious")}))}}}),s4e=drn});var a4e=w(xw=>{"use strict";Object.defineProperty(xw,"__esModule",{value:!0});xw.PACKAGE_NAME=xw.PACKAGE_VERSION=void 0;xw.PACKAGE_VERSION="0.57.0";xw.PACKAGE_NAME="@opentelemetry/instrumentation-generic-pool"});var u4e=w(vG=>{"use strict";Object.defineProperty(vG,"__esModule",{value:!0});vG.GenericPoolInstrumentation=void 0;var Ow=(Me(),ke(Ze)),d_=Jt(),c4e=a4e(),Cne="generic-pool",Mne=class extends d_.InstrumentationBase{_isDisabled=!1;constructor(t={}){super(c4e.PACKAGE_NAME,c4e.PACKAGE_VERSION,t)}init(){return[new d_.InstrumentationNodeModuleDefinition(Cne,[">=3.0.0 <4"],t=>{let n=t.Pool;return(0,d_.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 d_.InstrumentationNodeModuleDefinition(Cne,[">=2.4.0 <3"],t=>{let n=t.Pool;return(0,d_.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 d_.InstrumentationNodeModuleDefinition(Cne,[">=2.0.0 <2.4"],t=>(this._isDisabled=!1,(0,d_.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=Ow.context.active(),o=n.tracer.startSpan("generic-pool.acquire",{},s);return Ow.context.with(Ow.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=Ow.context.active(),a=n.tracer.startSpan("generic-pool.acquire",{},o);return Ow.context.with(Ow.trace.setSpan(o,a),()=>{t.call(this,(c,u)=>{if(a.end(),i)return i(c,u)},s)})}}};vG.GenericPoolInstrumentation=Mne});var l4e=w(RG=>{"use strict";Object.defineProperty(RG,"__esModule",{value:!0});RG.GenericPoolInstrumentation=void 0;var frn=u4e();Object.defineProperty(RG,"GenericPoolInstrumentation",{enumerable:!0,get:function(){return frn.GenericPoolInstrumentation}})});var d4e,f4e,p4e,prn,h4e,m4e=v(()=>{d4e=Re(l4e(),1);st();sr();f4e="GenericPool",p4e=rt(f4e,()=>new d4e.GenericPoolInstrumentation({})),prn=(()=>{let e;return{name:f4e,setupOnce(){let t=p4e();e=vP(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")}))}}}),h4e=prn});var Dne=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 Lne=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 Une=w(f_=>{"use strict";Object.defineProperty(f_,"__esModule",{value:!0});f_.DEFAULT_CONFIG=f_.EndOperation=void 0;var hrn;(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"})(hrn=f_.EndOperation||(f_.EndOperation={}));f_.DEFAULT_CONFIG={consumeTimeoutMs:1e3*60,useLinksForConsume:!1}});var b4e=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 Fne=(Me(),ke(Ze)),ES=Jt(),AG=(Nn(),ke(Mr)),zN=Dne(),wG=Lne();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 jne=(0,Fne.createContextKey)("opentelemetry.amqplib.channel.is-confirm-channel"),mrn=e=>e!==""?e:"";ps.normalizeExchange=mrn;var grn=e=>e.replace(/:[^:@/]*@/,":***@"),g4e=(e,t)=>e||(t==="AMQP"?5672:5671),y4e=e=>{let t=e||"amqp";return(t.endsWith(":")?t.substring(0,t.length-1):t).toUpperCase()},S4e=e=>e||"localhost",ih=(e,t,n,r)=>n?{[t]:n}:(Fne.diag.error(`amqplib instrumentation: could not extract connection attribute ${r} from user supplied url`,{url:e}),{}),yrn=e=>{let t=e.serverProperties.product?.toLowerCase?.();return t?{[zN.ATTR_MESSAGING_SYSTEM]:t}:{}};ps.getConnectionAttributesFromServer=yrn;var Srn=(e,t)=>{let n={[wG.ATTR_MESSAGING_PROTOCOL_VERSION]:"0.9.1"};if(e=e||"amqp://localhost",typeof e=="object"){let r=e,i=y4e(r?.protocol);Object.assign(n,{...ih(e,wG.ATTR_MESSAGING_PROTOCOL,i,"protocol")});let s=S4e(r?.hostname);t&ES.SemconvStability.OLD&&Object.assign(n,{...ih(e,zN.ATTR_NET_PEER_NAME,s,"hostname")}),t&ES.SemconvStability.STABLE&&Object.assign(n,{...ih(e,AG.ATTR_SERVER_ADDRESS,s,"hostname")});let o=g4e(r.port,i);t&ES.SemconvStability.OLD&&Object.assign(n,ih(e,zN.ATTR_NET_PEER_PORT,o,"port")),t&ES.SemconvStability.STABLE&&Object.assign(n,ih(e,AG.ATTR_SERVER_PORT,o,"port"))}else{let r=grn(e);n[wG.ATTR_MESSAGING_URL]=r;try{let i=new URL(r),s=y4e(i.protocol);Object.assign(n,{...ih(r,wG.ATTR_MESSAGING_PROTOCOL,s,"protocol")});let o=S4e(i.hostname);t&ES.SemconvStability.OLD&&Object.assign(n,{...ih(r,zN.ATTR_NET_PEER_NAME,o,"hostname")}),t&ES.SemconvStability.STABLE&&Object.assign(n,{...ih(r,AG.ATTR_SERVER_ADDRESS,o,"hostname")});let a=g4e(i.port?parseInt(i.port):void 0,s);t&ES.SemconvStability.OLD&&Object.assign(n,ih(r,zN.ATTR_NET_PEER_PORT,a,"port")),t&ES.SemconvStability.STABLE&&Object.assign(n,ih(r,AG.ATTR_SERVER_PORT,a,"port"))}catch(i){Fne.diag.error("amqplib instrumentation: error while extracting connection details from connection url",{censoredUrl:r,err:i})}}return n};ps.getConnectionAttributesFromUrl=Srn;var brn=e=>e.setValue(jne,!0);ps.markConfirmChannelTracing=brn;var Ern=e=>e.deleteValue(jne);ps.unmarkConfirmChannelTracing=Ern;var _rn=e=>e.getValue(jne)===!0;ps.isConfirmChannelTracing=_rn});var E4e=w(Pw=>{"use strict";Object.defineProperty(Pw,"__esModule",{value:!0});Pw.PACKAGE_NAME=Pw.PACKAGE_VERSION=void 0;Pw.PACKAGE_VERSION="0.61.0";Pw.PACKAGE_NAME="@opentelemetry/instrumentation-amqplib"});var T4e=w(xG=>{"use strict";Object.defineProperty(xG,"__esModule",{value:!0});xG.AmqplibInstrumentation=void 0;var Zi=(Me(),ke(Ze)),kG=pr(),hr=Jt(),Trn=Dne(),yl=Lne(),Hc=Une(),hs=b4e(),_4e=E4e(),IG=[">=0.5.5 <1"],Hne=class extends hr.InstrumentationBase{_netSemconvStability;constructor(t={}){super(_4e.PACKAGE_NAME,_4e.PACKAGE_VERSION,{...Hc.DEFAULT_CONFIG,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,hr.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...Hc.DEFAULT_CONFIG,...t})}init(){let t=new hr.InstrumentationNodeModuleFile("amqplib/lib/channel_model.js",IG,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),n=new hr.InstrumentationNodeModuleFile("amqplib/lib/callback_model.js",IG,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),r=new hr.InstrumentationNodeModuleFile("amqplib/lib/connect.js",IG,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new hr.InstrumentationNodeModuleDefinition("amqplib",IG,void 0,void 0,[t,r,n])}patchConnect(t){return t=this.unpatchConnect(t),(0,hr.isWrapped)(t.connect)||this._wrap(t,"connect",this.getConnectPatch.bind(this)),t}unpatchConnect(t){return(0,hr.isWrapped)(t.connect)&&this._unwrap(t,"connect"),t}patchChannelModel(t,n){return(0,hr.isWrapped)(t.Channel.prototype.publish)||this._wrap(t.Channel.prototype,"publish",this.getPublishPatch.bind(this,n)),(0,hr.isWrapped)(t.Channel.prototype.consume)||this._wrap(t.Channel.prototype,"consume",this.getConsumePatch.bind(this,n)),(0,hr.isWrapped)(t.Channel.prototype.ack)||this._wrap(t.Channel.prototype,"ack",this.getAckPatch.bind(this,!1,Hc.EndOperation.Ack)),(0,hr.isWrapped)(t.Channel.prototype.nack)||this._wrap(t.Channel.prototype,"nack",this.getAckPatch.bind(this,!0,Hc.EndOperation.Nack)),(0,hr.isWrapped)(t.Channel.prototype.reject)||this._wrap(t.Channel.prototype,"reject",this.getAckPatch.bind(this,!0,Hc.EndOperation.Reject)),(0,hr.isWrapped)(t.Channel.prototype.ackAll)||this._wrap(t.Channel.prototype,"ackAll",this.getAckAllPatch.bind(this,!1,Hc.EndOperation.AckAll)),(0,hr.isWrapped)(t.Channel.prototype.nackAll)||this._wrap(t.Channel.prototype,"nackAll",this.getAckAllPatch.bind(this,!0,Hc.EndOperation.NackAll)),(0,hr.isWrapped)(t.Channel.prototype.emit)||this._wrap(t.Channel.prototype,"emit",this.getChannelEmitPatch.bind(this)),(0,hr.isWrapped)(t.ConfirmChannel.prototype.publish)||this._wrap(t.ConfirmChannel.prototype,"publish",this.getConfirmedPublishPatch.bind(this,n)),t}unpatchChannelModel(t){return(0,hr.isWrapped)(t.Channel.prototype.publish)&&this._unwrap(t.Channel.prototype,"publish"),(0,hr.isWrapped)(t.Channel.prototype.consume)&&this._unwrap(t.Channel.prototype,"consume"),(0,hr.isWrapped)(t.Channel.prototype.ack)&&this._unwrap(t.Channel.prototype,"ack"),(0,hr.isWrapped)(t.Channel.prototype.nack)&&this._unwrap(t.Channel.prototype,"nack"),(0,hr.isWrapped)(t.Channel.prototype.reject)&&this._unwrap(t.Channel.prototype,"reject"),(0,hr.isWrapped)(t.Channel.prototype.ackAll)&&this._unwrap(t.Channel.prototype,"ackAll"),(0,hr.isWrapped)(t.Channel.prototype.nackAll)&&this._unwrap(t.Channel.prototype,"nackAll"),(0,hr.isWrapped)(t.Channel.prototype.emit)&&this._unwrap(t.Channel.prototype,"emit"),(0,hr.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,[Trn.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,hr.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,kG.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,hr.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,hr.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,hr.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,hr.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,kG.hrTime)(),r=t[hs.CHANNEL_SPANS_NOT_ENDED]??[],i,{consumeTimeoutMs:s}=this.getConfig();for(i=0;i{"use strict";Object.defineProperty(_S,"__esModule",{value:!0});_S.EndOperation=_S.DEFAULT_CONFIG=_S.AmqplibInstrumentation=void 0;var vrn=T4e();Object.defineProperty(_S,"AmqplibInstrumentation",{enumerable:!0,get:function(){return vrn.AmqplibInstrumentation}});var v4e=Une();Object.defineProperty(_S,"DEFAULT_CONFIG",{enumerable:!0,get:function(){return v4e.DEFAULT_CONFIG}});Object.defineProperty(_S,"EndOperation",{enumerable:!0,get:function(){return v4e.EndOperation}})});var A4e,w4e,Rrn,k4e,Arn,I4e,x4e=v(()=>{A4e=Re(R4e(),1);sr();w4e="Amqplib",Rrn={consumeEndHook:e=>{Dr(e,"auto.amqplib.otel.consumer")},publishHook:e=>{Dr(e,"auto.amqplib.otel.publisher")}},k4e=rt(w4e,()=>new A4e.AmqplibInstrumentation(Rrn)),Arn=(()=>({name:w4e,setupOnce(){k4e()}})),I4e=Arn});var GN,qne=v(()=>{GN="VercelAI"});function krn(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 Irn(e){if(typeof e!="object"||e===null||!("content"in e))return;let t=e;Array.isArray(t.content)&&(xrn(t.content),Orn(t.content))}function xrn(e){for(let t of e){if(!krn(t))continue;let n=wQ(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 Orn(e){for(let t of e)typeof t=="object"&&t!==null&&"toolCallId"in t&&typeof t.toolCallId=="string"&&kQ(t.toolCallId)}function Prn(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 PG,wrn,O4e,OG,P4e=v(()=>{PG=Re(Jt(),1);st();qne();wrn=[">=3.0.0 <7"],O4e=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];OG=class e extends PG.InstrumentationBase{__init(){this._isPatched=!1}__init2(){this._callbacks=[]}constructor(t={}){super("@sentry/instrumentation-vercel-ai",Cn,t),e.prototype.__init.call(this),e.prototype.__init2.call(this)}init(){return new PG.InstrumentationNodeModuleDefinition("ai",wrn,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(GN),d=l?.options,f=l?!!u?.getOptions().sendDefaultPii:!1,{recordInputs:p,recordOutputs:h}=Prn(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",Yl())},()=>{},m=>{Irn(m)})}});if(Object.prototype.toString.call(t)==="[object Module]"){for(let r of O4e)t[r]!=null&&(t[r]=n(t[r]));return t}else{let r=O4e.reduce((i,s)=>(t[s]!=null&&(i[s]=n(t[s])),i),{});return{...t,...r}}}}});function Nrn(e){return!!e.getIntegrationByName("Modules")?.getModules?.()?.ai}var N4e,Crn,C4e,M4e=v(()=>{st();sr();qne();P4e();N4e=rt(GN,()=>new OG({}));Crn=((e={})=>{let t;return{name:GN,options:e,setupOnce(){t=N4e()},afterAllSetup(n){e.force??Nrn(n)?UH(n):t?.callWhenPatched(()=>UH(n))}}}),C4e=Crn});var CG,Mrn,NG,D4e=v(()=>{CG=Re(Jt(),1);st();Mrn=[">=4.0.0 <7"],NG=class extends CG.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-openai",Cn,t)}init(){return new CG.InstrumentationNodeModuleDefinition("openai",Mrn,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(LE(Vy))return Reflect.construct(r,o);let a=Reflect.construct(r,o);return HH(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 L4e,Drn,U4e,F4e=v(()=>{st();sr();D4e();L4e=rt(Vy,e=>new NG(e)),Drn=((e={})=>({name:Vy,setupOnce(){L4e(e)}})),U4e=Drn});var DG,Lrn,MG,j4e=v(()=>{DG=Re(Jt(),1);st();Lrn=[">=0.19.2 <1.0.0"],MG=class extends DG.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-anthropic-ai",Cn,t)}init(){return new DG.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",Lrn,this._patch.bind(this))}_patch(t){let n=t.Anthropic,r=this.getConfig(),i=function(...s){if(LE(Wy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return qH(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 H4e,Urn,q4e,B4e=v(()=>{st();sr();j4e();H4e=rt(Wy,e=>new MG(e)),Urn=((e={})=>({name:Wy,options:e,setupOnce(){H4e(e)}})),q4e=Urn});var Nw,z4e,LG,G4e=v(()=>{Nw=Re(Jt(),1);st();z4e=[">=0.10.0 <2"],LG=class extends Nw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-google-genai",Cn,t)}init(){return new Nw.InstrumentationNodeModuleDefinition("@google/genai",z4e,n=>this._patch(n),n=>n,[new Nw.InstrumentationNodeModuleFile("@google/genai/dist/node/index.cjs",z4e,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(LE(Ky))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return BH(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 _P(t,"GoogleGenAI",i),t}}});var V4e,Frn,W4e,K4e=v(()=>{st();sr();G4e();V4e=rt(Ky,e=>new LG(e)),Frn=((e={})=>({name:Ky,setupOnce(){V4e(e)}})),W4e=Frn});function jrn(e,t){return e?Array.isArray(e)?e.includes(t)?e:[...e,t]:typeof e=="object"?[e,t]:e:[t]}function Hrn(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=jrn(c,t);return a.callbacks=u,Reflect.apply(r,i,s)}})}var TS,UG,FG,Y4e=v(()=>{TS=Re(Jt(),1);st();UG=[">=0.1.0 <2.0.0"];FG=class extends TS.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langchain",Cn,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 TS.InstrumentationNodeModuleDefinition(r,UG,this._patch.bind(this),i=>i,[new TS.InstrumentationNodeModuleFile(`${r}/dist/index.cjs`,UG,this._patch.bind(this),i=>i)]));return t.push(new TS.InstrumentationNodeModuleDefinition("langchain",UG,this._patch.bind(this),r=>r,[new TS.InstrumentationNodeModuleFile("langchain/dist/chat_models/universal.cjs",UG,this._patch.bind(this),r=>r)])),t}_patch(t){VX([Vy,Wy,Ky]);let n=WH(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]=Hrn(u,n))}}}});var Z4e,qrn,J4e,X4e=v(()=>{st();sr();Y4e();Z4e=rt(zH,e=>new FG(e)),qrn=((e={})=>({name:zH,setupOnce(){Z4e(e)}})),J4e=qrn});var Cw,Q4e,jG,$4e=v(()=>{Cw=Re(Jt(),1);st();Q4e=[">=0.0.0 <2.0.0"],jG=class extends Cw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langgraph",Cn,t)}init(){return new Cw.InstrumentationNodeModuleDefinition("@langchain/langgraph",Q4e,this._patch.bind(this),n=>n,[new Cw.InstrumentationNodeModuleFile("@langchain/langgraph/dist/index.cjs",Q4e,this._patch.bind(this),n=>n)])}_patch(t){return t.StateGraph&&typeof t.StateGraph=="function"&&YH(t.StateGraph.prototype,this.getConfig()),t}}});var eKe,Brn,tKe,nKe=v(()=>{st();sr();$4e();eKe=rt(KH,e=>new jG(e)),Brn=((e={})=>({name:KH,setupOnce(){eKe(e)}})),tKe=Brn});import*as iKe from"node:net";function sKe(e,t,n,r,i){let o=()=>{},a=i.firestoreSpanCreationHook;typeof a=="function"&&(o=l=>{(0,Um.safeExecuteInTheMiddle)(()=>a(l),d=>{d&&sl.error(d?.message)},!0)});let c=new Um.InstrumentationNodeModuleDefinition("@firebase/firestore",t,l=>rKe(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 Um.InstrumentationNodeModuleFile(l,t,d=>rKe(d,n,r,e,o),d=>oKe(d,r)));return c}function rKe(e,t,n,r,i){return oKe(e,n),t(e,"addDoc",zrn(r,i)),t(e,"getDocs",Vrn(r,i)),t(e,"setDoc",Wrn(r,i)),t(e,"deleteDoc",Grn(r,i)),e}function oKe(e,t){for(let n of["addDoc","getDocs","setDoc","deleteDoc"])(0,Um.isWrapped)(e[n])&&t(e,n);return e}function zrn(e,t){return function(r){return function(i,s){let o=qG(e,"addDoc",i);return t(o),HG(o,()=>r(i,s))}}}function Grn(e,t){return function(r){return function(i){let s=qG(e,"deleteDoc",i.parent||i);return t(s),HG(s,()=>r(i))}}}function Vrn(e,t){return function(r){return function(i){let s=qG(e,"getDocs",i);return t(s),HG(s,()=>r(i))}}}function Wrn(e,t){return function(r){return function(i,s,o){let a=qG(e,"setDoc",i.parent||i);return t(a),HG(a,()=>typeof o<"u"?r(i,s,o):r(i,s))}}}function HG(e,t){return Ve.with(jt.setSpan(Ve.active(),e),()=>(0,Um.safeExecuteInTheMiddle)(()=>t(),n=>{n&&e.recordException(n),e.end()},!0))}function qG(e,t,n){let r=e.startSpan(`${t} ${n.path}`,{kind:$r.CLIENT});return Yrn(r,n),r.setAttribute(yR,t),r}function Krn(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(iKe.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 Yrn(e,t){let n=t.firestore.app,r=n.options,s=(t.firestore.toJSON()||{}).settings||{},o={[E7]:t.path,[_7]:n.name,[SE]:"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}=Krn(s);a&&(o[x7]=a),c&&(o[O7]=c),e.setAttributes(o)}var Um,aKe=v(()=>{Me();Um=Re(Jt(),1);Nn()});function cKe(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,Fm.safeExecuteInTheMiddle)(()=>u(f,p),h=>{h&&sl.error(h?.message)},!0)}),typeof c=="function"&&(s=f=>{(0,Fm.safeExecuteInTheMiddle)(()=>c(f),p=>{p&&sl.error(p?.message)},!0)});let l=new Fm.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 Fm.InstrumentationNodeModuleFile(f,t,h=>Zrn(h,n,r,e,{requestHook:s,responseHook:o,errorHook:a},p),h=>uKe(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 Zrn(e,t,n,r,i,s){switch(uKe(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 uKe(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,Fm.isWrapped)(e[r])&&t(e,r);return e}var Fm,lKe=v(()=>{Me();Fm=Re(Jt(),1)});var fKe,dKe,Jrn,Xrn,BG,pKe=v(()=>{fKe=Re(Jt(),1);st();aKe();lKe();dKe={},Jrn=[">=3.0.0 <5"],Xrn=[">=6.0.0 <7"],BG=class extends fKe.InstrumentationBase{constructor(t=dKe){super("@sentry/instrumentation-firebase",Cn,t)}setConfig(t={}){super.setConfig({...dKe,...t})}init(){let t=[];return t.push(sKe(this.tracer,Jrn,this._wrap,this._unwrap,this.getConfig())),t.push(cKe(this.tracer,Xrn,this._wrap,this._unwrap,this.getConfig())),t}}});var hKe,Qrn,mKe,$rn,gKe,yKe=v(()=>{st();sr();pKe();hKe="Firebase",Qrn={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 tA(2e3))}}},mKe=rt(hKe,()=>new BG(Qrn)),$rn=(()=>({name:hKe,setupOnce(){mKe()}})),gKe=$rn});function SKe(){return[dqe(),WBe(),bze(),gWe(),oGe(),_Ge(),CGe(),VGe(),v2e(),G2e(),XVe(),dWe(),NWe(),VWe(),s4e(),h4e(),Lze(),I4e(),Kze(),J4e(),tKe(),C4e(),U4e(),q4e(),W4e(),Y2e(),gKe()]}var bKe=v(()=>{x4e();B4e();WWe();fqe();ZBe();yKe();m4e();K4e();_ze();fWe();yWe();Uze();CWe();X4e();nKe();Yze();aGe();TGe();MGe();WGe();F4e();V2e();Z2e();QVe();R2e();o4e();M4e()});function _Ke(e,t={}){e.getOptions().debug&&see();let[n,r]=ein(e,t);e.traceProvider=n,e.asyncLocalStorageLookup=r}function ein(e,t={}){let n=new EKe.BasicTracerProvider({sampler:new eB(e),resource:(0,zG.defaultResource)().merge((0,zG.resourceFromAttributes)({[P7]:"node",[b7]:"sentry",[N7]:Cn})),forceFlushTimeoutMillis:500,spanProcessors:[new $q({timeout:tin(e.getOptions().maxSpanWaitDuration)}),...t.spanProcessors||[]]});jt.setGlobalTracerProvider(n),Qd.setGlobalPropagator(new Qq);let r=new iee;return Ve.setGlobalContextManager(r),[n,r.getAsyncLocalStorageLookup()]}function tin(e){if(e!=null){if(e>Bne)return So&&Z.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${Bne}`),Bne;if(e<=0||Number.isNaN(e)){So&&Z.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return e}}var zG,EKe,Bne,TKe=v(()=>{Me();zG=Re(y$(),1),EKe=Re(z$(),1);Nn();st();sr();CA();QE();Bne=1e6});function vKe(){return uB().filter(t=>t.name!=="Http"&&t.name!=="NodeFetch").concat(qHe(),JHe())}function RKe(e){return[...vKe(),...Os(e)?SKe():[]]}function zne(e={}){return nin(e,RKe)}function nin(e={},t){UE(e,"node");let n=yee({...e,defaultIntegrations:e.defaultIntegrations??t(e)});return n&&!e.skipOpenTelemetrySetup&&(_Ke(n,{spanProcessors:e.openTelemetrySpanProcessors}),See()),n}var AKe=v(()=>{st();sr();BHe();XHe();bKe();TKe()});var wKe=v(()=>{AKe();st()});var CKe={};Ar(CKe,{_resetPluginRootForTests:()=>sin,features:()=>Go,observability:()=>Wne,resolvePluginRoot:()=>nn,review:()=>bf,stripWildcardAllowedOrigins:()=>Vne});import{existsSync as kKe}from"node:fs";import{dirname as IKe,join as xKe}from"node:path";import{fileURLToPath as iin}from"node:url";function NKe(e){if(!e.startsWith("HAIKU_")){let t=process.env[`HAIKU_${e}`];if(t!==void 0)return t}return process.env[e]}function Gne(e,t){let n=NKe(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 OKe(e,t){let n=NKe(e);return n===void 0||n===""?t:n}function sin(){Sf=null}function nn(){if(Sf!==null)return Sf;let e=process.env.CLAUDE_PLUGIN_ROOT;if(e)return Sf=e,Sf;let t=PKe(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=iin(import.meta.url),r=PKe(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 PKe(e){if(!e)return null;let t=IKe(e);for(let n=0;n<6;n++){if(kKe(xKe(t,"studios"))||kKe(xKe(t,".claude-plugin","plugin.json")))return t;let r=IKe(t);if(r===t)return null;t=r}return null}function Vne(){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,Wne,Ci=v(()=>{"use strict";Sf=null;Go={modelSelection:Gne("HAIKU_MODEL_SELECTION",!0),remoteReview:Gne("HAIKU_REMOTE_REVIEW",!1),telemetry:Gne("CLAUDE_CODE_ENABLE_TELEMETRY",!1)},bf={siteUrl:OKe("HAIKU_REVIEW_SITE_URL","https://haikumethod.ai"),allowedOrigins:OKe("HAIKU_REVIEW_ALLOWED_ORIGINS","").split(",").map(e=>e.trim()).filter(Boolean)};Wne={sentryDsn:""}});import{readFileSync as oin}from"node:fs";import{join as ain}from"node:path";function vS(){try{let e=nn();if(e)return JSON.parse(oin(ain(e,".claude-plugin","plugin.json"),"utf8")).version??"unknown"}catch{}return"unknown"}var ud,p_=v(()=>{"use strict";Ci();ud="10.1.0"});var DKe={};Ar(DKe,{flush:()=>Ef,isSentryConfigured:()=>Yne,reportError:()=>ms,reportFeedback:()=>Kne});function MKe(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){Mw&&Ja(r=>{MKe(r,n),Wt(e,{extra:t})})}function Kne(e,t,n,r){Mw&&Ja(i=>{MKe(i,t),i.setTag("feedback","true"),IH({message:e,email:n,name:r||"H\xB7AI\xB7K\xB7U User"})})}function Yne(){return Mw!==""}async function Ef(e=2e3){Mw&&await tA(e)}var Mw,sh=v(()=>{"use strict";wKe();Ci();p_();Mw=Wne.sentryDsn;Mw&&zne({dsn:Mw,release:`haiku-mcp@${ud}`,tracesSampleRate:0})});var UKe={};Ar(UKe,{maybeRebuildSpaForDev:()=>hin});import{execFileSync as cin}from"node:child_process";import{existsSync as VG,readdirSync as uin,statSync as LKe}from"node:fs";import{dirname as lin,join as GG,resolve as Zne}from"node:path";import{fileURLToPath as din}from"node:url";function fin(e){if(!VG(e))return 0;let t=0,n=[e];for(;n.length>0;){let r=n.pop(),i;try{i=uin(r)}catch{continue}for(let s of i){if(s==="node_modules"||s==="dist"||s==="__tests__")continue;let o=GG(r,s),a;try{a=LKe(o)}catch{continue}a.isDirectory()?n.push(o):a.isFile()&&a.mtimeMs>t&&(t=a.mtimeMs)}}return t}function pin(e){let t;try{t=lin(din(e))}catch{t=process.cwd()}let n=Zne(t,".."),r=Zne(n,".."),i=GG(r,"haiku-ui","src"),s=GG(n,"scripts","bundle-haiku-ui.mjs"),o=GG(n,"src","haiku-ui-html.ts");return!VG(i)||!VG(s)?null:{repoRoot:Zne(r,".."),uiSrcDir:i,bundledHtml:o,bundleScript:s}}function hin(e){if(process.env.HAIKU_DEV_SPA_AUTO_REBUILD==="0")return;let t=pin(e);if(!t)return;let n=fin(t.uiSrcDir),r=VG(t.bundledHtml)?LKe(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{cin("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 FKe=v(()=>{"use strict"});var jKe={};Ar(jKe,{askUserInstruction:()=>bin,getCapabilities:()=>Mi,getHarness:()=>gin,isClaudeCode:()=>oh,listHarnesses:()=>yin,mapModelTier:()=>Ein,setHarness:()=>min,skillReference:()=>WN,subagentInstruction:()=>Sin});function min(e){let t=e.toLowerCase().replace(/[\s_]/g,"-");t in VN?Dw=t:(console.error(`[haiku] Unknown harness "${e}" \u2014 falling back to claude-code. Known: ${Object.keys(VN).join(", ")}`),Dw="claude-code"),console.error(`[haiku] Harness: ${VN[Dw].displayName}`)}function gin(){return Dw}function Mi(){return VN[Dw]}function oh(){return Dw==="claude-code"}function yin(){return Object.keys(VN)}function Sin(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 WN(e){let t=Mi();return t.promptsAsSlashCommands?`/haiku:${e}`:t.mcpPrompts?`the \`haiku:${e}\` prompt`:`the haiku ${e} workflow`}function bin(){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 Ein(e){return Mi().modelTierMap[e]||e}var VN,Dw,_f=v(()=>{"use strict";VN={"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"}}},Dw="claude-code"});var Mn,Jne,Qe,ah,KN=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})(Mn||(Mn={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Jne||(Jne={}));Qe=Mn.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,_in,Eu,WG=v(()=>{KN();Ie=Mn.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"]),_in=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 Tin,jm,Xne=v(()=>{WG();KN();Tin=(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,Mn.jsonStringifyReplacer)}`;break;case Ie.unrecognized_keys:n=`Unrecognized key(s) in object: ${Mn.joinValues(e.keys,", ")}`;break;case Ie.invalid_union:n="Invalid input";break;case Ie.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Mn.joinValues(e.options)}`;break;case Ie.invalid_enum_value:n=`Invalid enum value. Expected ${Mn.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}"`:Mn.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,Mn.assertNever(e)}return{message:n}},jm=Tin});function vin(e){HKe=e}function Lw(){return HKe}var HKe,KG=v(()=>{Xne();HKe=jm});function We(e,t){let n=Lw(),r=YN({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===jm?void 0:jm].filter(i=>!!i)});e.common.issues.push(r)}var YN,Rin,ha,Mt,h_,nc,YG,ZG,RS,Uw,Qne=v(()=>{KG();Xne();YN=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}},Rin=[];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"}),h_=e=>({status:"dirty",value:e}),nc=e=>({status:"valid",value:e}),YG=e=>e.status==="aborted",ZG=e=>e.status==="dirty",RS=e=>e.status==="valid",Uw=e=>typeof Promise<"u"&&e instanceof Promise});var qKe=v(()=>{});var ut,BKe=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 WKe(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 qin(e){return new RegExp(`^${WKe(e)}$`)}function KKe(e){let t=`${VKe}T${WKe(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 Bin(e,t){return!!((t==="v4"||!t)&&Min.test(e)||(t==="v6"||!t)&&Lin.test(e))}function zin(e,t){if(!Oin.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 Gin(e,t){return!!((t==="v4"||!t)&&Din.test(e)||(t==="v6"||!t)&&Uin.test(e))}function Vin(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 Fw(e){if(e instanceof _u){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=ld.create(Fw(r))}return new _u({...e._def,shape:()=>t})}else return e instanceof Bm?new Bm({...e._def,type:Fw(e.element)}):e instanceof ld?ld.create(Fw(e.unwrap())):e instanceof uh?uh.create(Fw(e.unwrap())):e instanceof ch?ch.create(e.items.map(t=>Fw(t))):e}function ere(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=Mn.objectKeys(t),s=Mn.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of s){let c=ere(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=GKe(t,r),c=a.fatal??n??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!s){let o=GKe(t,r),a=o.fatal??n??!0;i.addIssue({code:"custom",...o,fatal:a})}}):wS.create()}var dd,zKe,gn,Ain,win,kin,Iin,xin,Oin,Pin,Nin,Cin,$ne,Min,Din,Lin,Uin,Fin,jin,VKe,Hin,AS,m_,g_,y_,S_,jw,b_,E_,wS,qm,Tf,Hw,Bm,_u,__,Hm,JG,T_,ch,XG,qw,Bw,QG,v_,R_,A_,w_,kS,fd,ld,uh,k_,I_,zw,Win,ZN,JN,x_,Kin,Bt,Yin,JKe,XKe,Zin,Jin,QKe,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,Rsn,Asn,wsn,ksn,Isn,xsn,Osn,$Ke=v(()=>{WG();KG();BKe();Qne();KN();dd=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}},zKe=(e,t)=>{if(RS(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}}};gn=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(Uw(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 zKe(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 RS(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=>RS(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(Uw(i)?i:Promise.resolve(i));return zKe(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 fd({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 ld.create(this,this._def)}nullable(){return uh.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Bm.create(this)}promise(){return kS.create(this,this._def)}or(t){return __.create([this,t],this._def)}and(t){return T_.create(this,t,this._def)}transform(t){return new fd({...un(this._def),schema:this,typeName:Bt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new k_({...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 I_({...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 JN.create(this,t)}readonly(){return x_.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Ain=/^c[^\s-]{8,}$/i,win=/^[0-9a-z]+$/,kin=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Iin=/^[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,xin=/^[a-z0-9_-]{21}$/i,Oin=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Pin=/^[-+]?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)?)??$/,Nin=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Cin="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Min=/^(?:(?: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])$/,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])\/(3[0-2]|[12]?[0-9])$/,Lin=/^(([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]))$/,Uin=/^(([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])$/,Fin=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,jin=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,VKe="((\\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])))",Hin=new RegExp(`^${VKe}$`);AS=class e extends gn{_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 AS({checks:[],typeName:Bt.ZodString,coerce:e?.coerce??!1,...un(e)});m_=class e extends gn{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"?Mn.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"?Vin(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()):Mn.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"&&Mn.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 m_({checks:[],typeName:Bt.ZodNumber,coerce:e?.coerce||!1,...un(e)});g_=class e extends gn{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()):Mn.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 g_({checks:[],typeName:Bt.ZodBigInt,coerce:e?.coerce??!1,...un(e)});y_=class extends gn{_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)}};y_.create=e=>new y_({typeName:Bt.ZodBoolean,coerce:e?.coerce||!1,...un(e)});S_=class e extends gn{_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()):Mn.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 S_({checks:[],coerce:e?.coerce||!1,typeName:Bt.ZodDate,...un(e)});jw=class extends gn{_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)}};jw.create=e=>new jw({typeName:Bt.ZodSymbol,...un(e)});b_=class extends gn{_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)}};b_.create=e=>new b_({typeName:Bt.ZodUndefined,...un(e)});E_=class extends gn{_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)}};E_.create=e=>new E_({typeName:Bt.ZodNull,...un(e)});wS=class extends gn{constructor(){super(...arguments),this._any=!0}_parse(t){return nc(t.data)}};wS.create=e=>new wS({typeName:Bt.ZodAny,...un(e)});qm=class extends gn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return nc(t.data)}};qm.create=e=>new qm({typeName:Bt.ZodUnknown,...un(e)});Tf=class extends gn{_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)});Hw=class extends gn{_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)}};Hw.create=e=>new Hw({typeName:Bt.ZodVoid,...un(e)});Bm=class e extends gn{_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 dd(n,o,n.path,a)))).then(o=>ha.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new dd(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)}};Bm.create=(e,t)=>new Bm({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Bt.ZodArray,...un(t)});_u=class e extends gn{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=Mn.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 dd(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 dd(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 Mn.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 Mn.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Fw(this)}partial(t){let n={};for(let r of Mn.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 Mn.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof ld;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return YKe(Mn.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)});__=class extends gn{_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}};__.create=(e,t)=>new __({options:e,typeName:Bt.ZodUnion,...un(t)});Hm=e=>e instanceof v_?Hm(e.schema):e instanceof fd?Hm(e.innerType()):e instanceof R_?[e.value]:e instanceof A_?e.options:e instanceof w_?Mn.objectValues(e.enum):e instanceof k_?Hm(e._def.innerType):e instanceof b_?[void 0]:e instanceof E_?[null]:e instanceof ld?[void 0,...Hm(e.unwrap())]:e instanceof uh?[null,...Hm(e.unwrap())]:e instanceof ZN||e instanceof x_?Hm(e.unwrap()):e instanceof I_?Hm(e._def.innerType):[],JG=class e extends gn{_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=Hm(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)})}};T_=class extends gn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(YG(s)||YG(o))return Mt;let a=ere(s.value,o.value);return a.valid?((ZG(s)||ZG(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}))}};T_.create=(e,t,n)=>new T_({left:e,right:t,typeName:Bt.ZodIntersection,...un(n)});ch=class e extends gn{_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 dd(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)})};XG=class e extends gn{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 dd(r,a,r.path,a)),value:o._parse(new dd(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 gn?new e({keyType:t,valueType:n,typeName:Bt.ZodRecord,...un(r)}):new e({keyType:AS.create(),valueType:t,typeName:Bt.ZodRecord,...un(n)})}},qw=class extends gn{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 dd(r,a,r.path,[u,"key"])),value:s._parse(new dd(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}}}};qw.create=(e,t,n)=>new qw({valueType:t,keyType:e,typeName:Bt.ZodMap,...un(n)});Bw=class e extends gn{_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 dd(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)}};Bw.create=(e,t)=>new Bw({valueType:e,minSize:null,maxSize:null,typeName:Bt.ZodSet,...un(t)});QG=class e extends gn{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 YN({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Lw(),jm].filter(u=>!!u),issueData:{code:Ie.invalid_arguments,argumentsError:c}})}function i(a,c){return YN({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Lw(),jm].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 kS){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(qm.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(qm.create()),returns:n||qm.create(),typeName:Bt.ZodFunction,...un(r)})}},v_=class extends gn{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})}};v_.create=(e,t)=>new v_({getter:e,typeName:Bt.ZodLazy,...un(t)});R_=class extends gn{_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}};R_.create=(e,t)=>new R_({value:e,typeName:Bt.ZodLiteral,...un(t)});A_=class e extends gn{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return We(n,{expected:Mn.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})}};A_.create=YKe;w_=class extends gn{_parse(t){let n=Mn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==Qe.string&&r.parsedType!==Qe.number){let i=Mn.objectValues(n);return We(r,{expected:Mn.joinValues(i),received:r.parsedType,code:Ie.invalid_type}),Mt}if(this._cache||(this._cache=new Set(Mn.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=Mn.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}};w_.create=(e,t)=>new w_({values:e,typeName:Bt.ZodNativeEnum,...un(t)});kS=class extends gn{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})))}};kS.create=(e,t)=>new kS({type:e,typeName:Bt.ZodPromise,...un(t)});fd=class extends gn{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"?h_(c.value):n.value==="dirty"?h_(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"?h_(a.value):n.value==="dirty"?h_(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(!RS(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=>RS(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:n.value,value:a})):Mt);Mn.assertNever(i)}};fd.create=(e,t,n)=>new fd({schema:e,typeName:Bt.ZodEffects,effect:t,...un(n)});fd.createWithPreprocess=(e,t,n)=>new fd({schema:t,effect:{type:"preprocess",transform:e},typeName:Bt.ZodEffects,...un(n)});ld=class extends gn{_parse(t){return this._getType(t)===Qe.undefined?nc(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ld.create=(e,t)=>new ld({innerType:e,typeName:Bt.ZodOptional,...un(t)});uh=class extends gn{_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)});k_=class extends gn{_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}};k_.create=(e,t)=>new k_({innerType:e,typeName:Bt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...un(t)});I_=class extends gn{_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 Uw(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}};I_.create=(e,t)=>new I_({innerType:e,typeName:Bt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...un(t)});zw=class extends gn{_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}}};zw.create=e=>new zw({typeName:Bt.ZodNaN,...un(e)});Win=Symbol("zod_brand"),ZN=class extends gn{_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}},JN=class e extends gn{_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(),h_(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})}},x_=class extends gn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(RS(i)&&(i.value=Object.freeze(i.value)),i);return Uw(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};x_.create=(e,t)=>new x_({innerType:e,typeName:Bt.ZodReadonly,...un(t)});Kin={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={}));Yin=(e,t={message:`Input not instance of ${e.name}`})=>ZKe(n=>n instanceof e,t),JKe=AS.create,XKe=m_.create,Zin=zw.create,Jin=g_.create,QKe=y_.create,Xin=S_.create,Qin=jw.create,$in=b_.create,esn=E_.create,tsn=wS.create,nsn=qm.create,rsn=Tf.create,isn=Hw.create,ssn=Bm.create,osn=_u.create,asn=_u.strictCreate,csn=__.create,usn=JG.create,lsn=T_.create,dsn=ch.create,fsn=XG.create,psn=qw.create,hsn=Bw.create,msn=QG.create,gsn=v_.create,ysn=R_.create,Ssn=A_.create,bsn=w_.create,Esn=kS.create,_sn=fd.create,Tsn=ld.create,vsn=uh.create,Rsn=fd.createWithPreprocess,Asn=JN.create,wsn=()=>JKe().optional(),ksn=()=>XKe().optional(),Isn=()=>QKe().optional(),xsn={string:(e=>AS.create({...e,coerce:!0})),number:(e=>m_.create({...e,coerce:!0})),boolean:(e=>y_.create({...e,coerce:!0})),bigint:(e=>g_.create({...e,coerce:!0})),date:(e=>S_.create({...e,coerce:!0}))},Osn=Mt});var O={};Ar(O,{BRAND:()=>Win,DIRTY:()=>h_,EMPTY_PATH:()=>Rin,INVALID:()=>Mt,NEVER:()=>Osn,OK:()=>nc,ParseStatus:()=>ha,Schema:()=>gn,ZodAny:()=>wS,ZodArray:()=>Bm,ZodBigInt:()=>g_,ZodBoolean:()=>y_,ZodBranded:()=>ZN,ZodCatch:()=>I_,ZodDate:()=>S_,ZodDefault:()=>k_,ZodDiscriminatedUnion:()=>JG,ZodEffects:()=>fd,ZodEnum:()=>A_,ZodError:()=>Eu,ZodFirstPartyTypeKind:()=>Bt,ZodFunction:()=>QG,ZodIntersection:()=>T_,ZodIssueCode:()=>Ie,ZodLazy:()=>v_,ZodLiteral:()=>R_,ZodMap:()=>qw,ZodNaN:()=>zw,ZodNativeEnum:()=>w_,ZodNever:()=>Tf,ZodNull:()=>E_,ZodNullable:()=>uh,ZodNumber:()=>m_,ZodObject:()=>_u,ZodOptional:()=>ld,ZodParsedType:()=>Qe,ZodPipeline:()=>JN,ZodPromise:()=>kS,ZodReadonly:()=>x_,ZodRecord:()=>XG,ZodSchema:()=>gn,ZodSet:()=>Bw,ZodString:()=>AS,ZodSymbol:()=>jw,ZodTransformer:()=>fd,ZodTuple:()=>ch,ZodType:()=>gn,ZodUndefined:()=>b_,ZodUnion:()=>__,ZodUnknown:()=>qm,ZodVoid:()=>Hw,addIssueToContext:()=>We,any:()=>tsn,array:()=>ssn,bigint:()=>Jin,boolean:()=>QKe,coerce:()=>xsn,custom:()=>ZKe,date:()=>Xin,datetimeRegex:()=>KKe,defaultErrorMap:()=>jm,discriminatedUnion:()=>usn,effect:()=>_sn,enum:()=>Ssn,function:()=>msn,getErrorMap:()=>Lw,getParsedType:()=>ah,instanceof:()=>Yin,intersection:()=>lsn,isAborted:()=>YG,isAsync:()=>Uw,isDirty:()=>ZG,isValid:()=>RS,late:()=>Kin,lazy:()=>gsn,literal:()=>ysn,makeIssue:()=>YN,map:()=>psn,nan:()=>Zin,nativeEnum:()=>bsn,never:()=>rsn,null:()=>esn,nullable:()=>vsn,number:()=>XKe,object:()=>osn,objectUtil:()=>Jne,oboolean:()=>Isn,onumber:()=>ksn,optional:()=>Tsn,ostring:()=>wsn,pipeline:()=>Asn,preprocess:()=>Rsn,promise:()=>Esn,quotelessJson:()=>_in,record:()=>fsn,set:()=>hsn,setErrorMap:()=>vin,strictObject:()=>asn,string:()=>JKe,symbol:()=>Qin,transformer:()=>_sn,tuple:()=>dsn,undefined:()=>$in,union:()=>csn,unknown:()=>nsn,util:()=>Mn,void:()=>isn});var tre=v(()=>{KG();Qne();qKe();KN();$Ke();WG()});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 pd(e){return e&&Object.assign($G,e),$G}var NHr,zm,$G,Gw=v(()=>{NHr=Object.freeze({status:"aborted"});zm=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},$G={}});var or={};Ar(or,{BIGINT_FORMAT_RANGES:()=>t3e,Class:()=>rre,NUMBER_FORMAT_RANGES:()=>dre,aborted:()=>P_,allowsEval:()=>cre,assert:()=>Dsn,assertEqual:()=>Psn,assertIs:()=>Csn,assertNever:()=>Msn,assertNotEqual:()=>Nsn,assignProp:()=>are,cached:()=>QN,captureStackTrace:()=>t2,cleanEnum:()=>Ysn,cleanRegex:()=>eC,clone:()=>lh,createTransparentProxy:()=>qsn,defineLazy:()=>ni,esc:()=>O_,escapeRegex:()=>IS,extend:()=>Gsn,finalizeIssue:()=>vf,floatSafeRemainder:()=>ore,getElementAtPath:()=>Lsn,getEnumValues:()=>ire,getLengthableOrigin:()=>tC,getParsedType:()=>Hsn,getSizableOrigin:()=>n3e,isObject:()=>Vw,isPlainObject:()=>Ww,issue:()=>fre,joinValues:()=>e2,jsonStringifyReplacer:()=>sre,merge:()=>Vsn,normalizeParams:()=>Dt,nullish:()=>$N,numKeys:()=>jsn,omit:()=>zsn,optionalKeys:()=>lre,partial:()=>Wsn,pick:()=>Bsn,prefixIssues:()=>dh,primitiveTypes:()=>e3e,promiseAllObject:()=>Usn,propertyKeyTypes:()=>ure,randomString:()=>Fsn,required:()=>Ksn,stringifyPrimitive:()=>n2,unwrapMessage:()=>XN});function Psn(e){return e}function Nsn(e){return e}function Csn(e){}function Msn(e){throw new Error}function Dsn(e){}function ire(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 e2(e,t="|"){return e.map(n=>n2(n)).join(t)}function sre(e,t){return typeof t=="bigint"?t.toString():t}function QN(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function $N(e){return e==null}function eC(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function ore(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 are(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Lsn(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function Usn(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 qsn(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 n2(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function lre(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Bsn(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 zsn(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 Gsn(e,t){if(!Ww(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 are(this,"shape",r),r},checks:[]};return lh(e,n)}function Vsn(e,t){return lh(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return are(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function Wsn(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 Ksn(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 P_(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function XN(e){return typeof e=="string"?e:e?.message}function vf(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=XN(e.inst?._zod.def?.error?.(e))??XN(t?.error?.(e))??XN(n.customError?.(e))??XN(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function n3e(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function tC(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function fre(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Ysn(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}var t2,cre,Hsn,ure,e3e,dre,t3e,rre,Gm=v(()=>{t2=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};cre=QN(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});Hsn=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}`)}},ure=new Set(["string","number","symbol"]),e3e=new Set(["string","number","bigint","boolean","symbol","undefined"]);dre={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]},t3e={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};rre=class{constructor(...t){}}});function i3e(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 s3e(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{Gw();Gm();r3e=(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,sre,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},r2=me("$ZodError",r3e),pre=me("$ZodError",r3e,{Parent:Error})});var o3e,a3e,mre,nC,gre,i2,yre=v(()=>{Gw();hre();Gm();o3e=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 zm;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>vf(c,s,pd())));throw t2(a,i?.callee),a}return o.value},a3e=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,pd())));throw t2(a,i?.callee),a}return o.value},mre=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 zm;return s.issues.length?{success:!1,error:new(e??r2)(s.issues.map(o=>vf(o,i,pd())))}:{success:!0,data:s.value}},nC=mre(pre),gre=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,pd())))}:{success:!0,data:s.value}},i2=gre(pre)});function y3e(){return new RegExp(Jsn,"u")}function k3e(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 I3e(e){return new RegExp(`^${k3e(e)}$`)}function x3e(e){let t=k3e({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(`^${A3e}T(?:${r})$`)}var c3e,u3e,l3e,d3e,f3e,p3e,h3e,m3e,Sre,g3e,Jsn,S3e,b3e,E3e,_3e,T3e,bre,v3e,R3e,A3e,w3e,O3e,P3e,N3e,C3e,M3e,D3e,L3e,s2=v(()=>{c3e=/^[cC][^\s-]{8,}$/,u3e=/^[0-9a-z]+$/,l3e=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,d3e=/^[0-9a-vA-V]{20}$/,f3e=/^[A-Za-z0-9]{27}$/,p3e=/^[a-zA-Z0-9_-]{21}$/,h3e=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,m3e=/^([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})$/,Sre=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)$/,g3e=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Jsn="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";S3e=/^(?:(?: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])$/,b3e=/^(([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})$/,E3e=/^((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])$/,_3e=/^(([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])$/,T3e=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,bre=/^[A-Za-z0-9_-]*$/,v3e=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,R3e=/^\+(?:[0-9]){6,14}[0-9]$/,A3e="(?:(?:\\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])))",w3e=new RegExp(`^${A3e}$`);O3e=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},P3e=/^\d+$/,N3e=/^-?\d+(?:\.\d+)?/i,C3e=/true|false/i,M3e=/null/i,D3e=/^[^A-Z]*$/,L3e=/^[^a-z]*$/});var rc,U3e,_re,Tre,F3e,j3e,H3e,q3e,B3e,rC,z3e,G3e,V3e,W3e,K3e,Y3e,Z3e,o2=v(()=>{Gw();s2();Gm();rc=me("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),U3e={number:"number",bigint:"bigint",object:"date"},_re=me("$ZodCheckLessThan",(e,t)=>{rc.init(e,t);let n=U3e[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=U3e[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})}}),F3e=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):ore(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})}}),j3e=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]=dre[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=P3e)}),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})}}),H3e=me("$ZodCheckMaxLength",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!$N(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=tC(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),q3e=me("$ZodCheckMinLength",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!$N(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=tC(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),B3e=me("$ZodCheckLengthEquals",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!$N(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=tC(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})}}),rC=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=()=>{})}),z3e=me("$ZodCheckRegex",(e,t)=>{rC.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})}}),G3e=me("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=D3e),rC.init(e,t)}),V3e=me("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=L3e),rC.init(e,t)}),W3e=me("$ZodCheckIncludes",(e,t)=>{rc.init(e,t);let n=IS(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})}}),K3e=me("$ZodCheckStartsWith",(e,t)=>{rc.init(e,t);let n=new RegExp(`^${IS(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})}}),Y3e=me("$ZodCheckEndsWith",(e,t)=>{rc.init(e,t);let n=new RegExp(`.*${IS(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})}}),Z3e=me("$ZodCheckOverwrite",(e,t)=>{rc.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}})});var a2,vre=v(()=>{a2=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=SHe(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",L8t),n.secureEndpoint){qP("Upgrading socket connection to TLS");let f=n.servername||n.host;return mee.connect({...EHe(n,"host","path","port"),socket:i,servername:xm.isIP(f)?void 0:f})}return i}i.destroy();let d=new xm.Socket({writable:!1});return d.readable=!0,t.once("socket",f=>{qP("Replaying proxy buffer for failed request"),f.push(l),f.push(null)}),d}};BP.__initStatic()});import*as U8t from"node:http";import*as F8t from"node:https";import{Readable as j8t}from"node:stream";import{createGzip as H8t}from"node:zlib";function B8t(e){return new j8t({read(){this.push(e),this.push(null)}})}function THe(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.")}),aP(e,()=>Promise.resolve({}))}let n=t.protocol==="https:",r=z8t(t,e.proxy||(n?process.env.https_proxy:void 0)||process.env.http_proxy),i=n?F8t:U8t,s=e.keepAlive===void 0?!1:e.keepAlive,o=r?new BP(r):new i.Agent({keepAlive:s,maxSockets:30,timeout:2e3}),a=G8t(e,e.httpModule??i,o);return aP(e,a)}function z8t(e,t){let{no_proxy:n}=process.env;if(!n?.split(",").some(i=>e.host.endsWith(i)||e.hostname.endsWith(i)))return t}function G8t(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)=>{QR(()=>{let f=B8t(u.body),p={...e.headers};u.body.length>q8t&&(p["content-encoding"]="gzip",f=f.pipe(H8t()));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 q8t,vHe=v(()=>{st();_He();q8t=1024*32});function RHe(e){if(e===!1)return!1;if(typeof e=="string")return e;let t=iA(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 V8t,sep as W8t}from"node:path";function wHe(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}function kHe(e=process.argv[1]?eQ(process.argv[1]):process.cwd(),t=W8t==="\\"){let n=t?wHe(e):e;return r=>{if(!r)return;let i=t?wHe(r):r,{dir:s,base:o,ext:a}=V8t.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 IHe=v(()=>{st()});function xHe(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 OHe,PHe=v(()=>{st();IHe();OHe=Cj(qQ(kHe()))});import*as NHe from"node:os";import{threadId as K8t,isMainThread as Y8t}from"worker_threads";var CHe,Z8t,cB,MHe=v(()=>{Me();CHe=Re(Jt(),1);st();CA();ff();Z8t=6e4,cB=class extends cP{constructor(t){let n=t.includeServerName===!1?void 0:t.serverName||global.process.env.SENTRY_NAME||NHe.hostname(),r={...t,platform:"node",runtime:t.runtime||{name:"node",version:global.process.version},serverName:n};t.openTelemetryInstrumentations&&(0,CHe.registerInstrumentations)({instrumentations:t.openTelemetryInstrumentations}),UE(r,"node"),Z.log(`Initializing Sentry: process: ${process.pid}, thread: ${Y8t?"main":`worker-${K8t}`}.`),super(r),this.getOptions().enableLogs&&(this._logOnExitFlushListener=()=>{nA(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=Cn,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??Z8t).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener))}_setupIntegrations(){WX(),super._setupIntegrations()}_getTraceInfoFromScope(t){return t?mje(this,t):[void 0,void 0]}}});import*as LHe from"module";function gee(){if($je()&&!qt._sentryEsmLoaderHookRegistered){qt._sentryEsmLoaderHookRegistered=!0;try{let{addHookMessagePort:e}=(0,DHe.createAddHookMessageChannel)();LHe.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 DHe,UHe=v(()=>{st();DHe=Re(SJ(),1);sB()});function uB(){return[vH(),_H(),RH(),AH(),mHe(),iQ(),kH(),DUe(),BUe(),sHe(),aHe(),jje(),Jje(),Nje(),Ije(),uHe(),rHe()]}function yee(e={}){return J8t(e,uB)}function J8t(e={},t){let n=X8t(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&&gee(),Sje(),Fn().update(n.initialScope),n.spotlight&&!n.integrations.some(({name:s})=>s===pee)&&n.integrations.push(fHe({sidecarUrl:typeof n.spotlight=="string"?n.spotlight:void 0})),UE(n,"node-core");let i=new cB(n);return Fn().setClient(i),i.init(),Z.log(`SDK initialized from ${jP()?"CommonJS":"ESM"}`),i.startClientReportTracking(),e7t(),tje(i),yje(i),process.env.VERCEL&&process.on("SIGTERM",async()=>{await i.flush(200)}),i}function See(){if(!Qt)return;let e=sje(),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 X8t(e,t){let n=Q8t(e.release),r=RHe(e.spotlight),i=$8t(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??THe,stackParser:CJ(e.stackParser||OHe),release:n,tracesSampleRate:i,spotlight:r,debug:iA(e.debug??process.env.SENTRY_DEBUG)},o=e.integrations,a=e.defaultIntegrations??t(s);return{...s,integrations:CX({defaultIntegrations:a,integrations:o})}}function Q8t(e){if(e!==void 0)return e;let t=xHe();if(t!==void 0)return t}function $8t(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 e7t(){if(iA(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let e=process.env.SENTRY_TRACE,t=process.env.SENTRY_BAGGAGE,n=WO(e,t);Fn().setPropagationContext(n)}}var FHe=v(()=>{st();CA();ff();xje();Cje();Hje();LUe();Xje();iHe();zUe();oHe();cHe();lHe();pHe();gHe();vHe();sB();AHe();PHe();MHe();UHe()});function Dr(e,t){e.setAttribute(At,t)}var jHe=v(()=>{st()});function zP(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 HHe=v(()=>{});var sr=v(()=>{VQ();XH();ZQ();$Q();wje();kje();ZH();FHe();jHe();HHe();yA()});function r7t(e,t={}){return typeof e.spans=="boolean"?e.spans:!(t.skipOpenTelemetrySetup||!Os(t)&&lB)}function i7t(e={}){return{disableOutgoingRequestInstrumentation:lB,ignoreOutgoingRequestHook:n=>{let r=zP(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=zP(r);if(i.startsWith("data:")){let s=sA(i);n.setAttribute("http.url",s),n.setAttribute(xy,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 BHe,bee,qHe,lB,t7t,n7t,zHe,GHe=v(()=>{Me();BHe=Re(ICe(),1);st();sr();bee="Http",qHe="@opentelemetry_sentry-patched/instrumentation-http",lB=pf.major===22&&pf.minor>=12||pf.major===23&&pf.minor>=2||pf.major>=24,t7t=rt(`${bee}.sentry`,e=>new VE(e)),n7t=rt(bee,e=>{let t=new BHe.HttpInstrumentation({...e,disableIncomingRequestInstrumentation:!0});try{t._diag=sl.createComponentLogger({namespace:qHe}),t.instrumentationName=qHe}catch{}try{let n={get:()=>!1,set:()=>{}};Object.defineProperty(t,"_httpPatched",n),Object.defineProperty(t,"_httpsPatched",n)}catch{}return t});zHe=(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=RP(r),o=AP(i),a=t&&!n;return{name:bee,setup(c){let u=c.getOptions();a&&Os(u)&&o.setup(c)},setupOnce(){let c=ct()?.getOptions()||{},u=r7t(e,c);s.setupOnce();let l={breadcrumbs:e.breadcrumbs,propagateTraceInOutgoingRequests:typeof e.tracePropagation=="boolean"?e.tracePropagation:lB||!u,createSpansForOutgoingRequests:lB,spans:e.spans,ignoreOutgoingRequests:e.ignoreOutgoingRequests,outgoingRequestHook:(d,f)=>{let p=zP(f);if(p.startsWith("data:")){let h=sA(p);d.setAttribute("http.url",h),d.setAttribute(xy,h),d.updateName(`${f.method||"GET"} ${h}`)}e.instrumentation?.requestHook?.(d,f)},outgoingResponseHook:e.instrumentation?.responseHook,outgoingRequestApplyCustomAttributes:e.instrumentation?.applyCustomAttributesOnSpan};if(t7t(l),u){let d=i7t(e);n7t(d)}},processEvent(c){return o.processEvent(c)}}}});var VHe=w(MA=>{"use strict";Object.defineProperty(MA,"__esModule",{value:!0});MA.PACKAGE_NAME=MA.PACKAGE_VERSION=void 0;MA.PACKAGE_VERSION="0.24.0";MA.PACKAGE_NAME="@opentelemetry/instrumentation-undici"});var KHe=w(fB=>{"use strict";Object.defineProperty(fB,"__esModule",{value:!0});fB.UndiciInstrumentation=void 0;var Eee=Y("diagnostics_channel"),s7t=Y("url"),GP=Jt(),pl=(Me(),ke(Ze)),dB=pr(),Vs=(Nn(),ke(Mr)),WHe=VHe(),_ee=class extends GP.InstrumentationBase{_recordFromReq=new WeakMap;constructor(t={}){super(WHe.PACKAGE_NAME,WHe.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)Eee.subscribe?.(t,n),o=()=>Eee.unsubscribe?.(t,n);else{let a=Eee.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,dB.hrTime)(),o;try{o=new s7t.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,GP.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,GP.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,GP.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,dB.hrTimeToMilliseconds)((0,dB.hrTimeDuration)(n,(0,dB.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"}};fB.UndiciInstrumentation=_ee});var YHe=w(pB=>{"use strict";Object.defineProperty(pB,"__esModule",{value:!0});pB.UndiciInstrumentation=void 0;var o7t=KHe();Object.defineProperty(pB,"UndiciInstrumentation",{enumerable:!0,get:function(){return o7t.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 l7t(e,t={}){return typeof e.spans=="boolean"?e.spans:!t.skipOpenTelemetrySetup&&Os(t)}function d7t(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=sA(r);return{[At]:"auto.http.otel.node_fetch","http.url":i,[xy]:i,[Kl]:`${n.method||"GET"} ${i}`}}return{[At]:"auto.http.otel.node_fetch"}},requestHook:e.requestHook,responseHook:e.responseHook,headersToSpanAttributes:e.headersToSpanAttributes}}var JHe,XHe,a7t,c7t,u7t,QHe,$He=v(()=>{JHe=Re(YHe(),1);st();sr();XHe="NodeFetch",a7t=rt(XHe,JHe.UndiciInstrumentation,e=>d7t(e)),c7t=rt(`${XHe}.sentry`,WE,e=>e),u7t=((e={})=>({name:"NodeFetch",setupOnce(){l7t(e,ct()?.getOptions())&&a7t(e),c7t(e)}})),QHe=u7t});var hB=w(VP=>{"use strict";Object.defineProperty(VP,"__esModule",{value:!0});VP.ExpressLayerType=void 0;var f7t;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(f7t=VP.ExpressLayerType||(VP.ExpressLayerType={}))});var mB=w(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});WP.AttributeNames=void 0;var p7t;(function(e){e.EXPRESS_TYPE="express.type",e.EXPRESS_NAME="express.name"})(p7t=WP.AttributeNames||(WP.AttributeNames={}))});var Tee=w(DA=>{"use strict";Object.defineProperty(DA,"__esModule",{value:!0});DA._LAYERS_STORE_PROPERTY=DA.kLayerPatched=void 0;DA.kLayerPatched=Symbol("express-layer-patched");DA._LAYERS_STORE_PROPERTY="__ot_middlewares"});var nqe=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 vee=hB(),LA=mB(),XE=Tee(),h7t=(e,t)=>(Array.isArray(e[XE._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,XE._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),t===void 0?{isLayerPathStored:!1}:(e[XE._LAYERS_STORE_PROPERTY].push(t),{isLayerPathStored:!0}));Ws.storeLayerPath=h7t;var m7t=(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=m7t;var g7t=(e,t,n)=>{if(t.name==="router"){let r=(0,Ws.getRouterPath)("",t),i=r||n||e||"/";return{attributes:{[LA.AttributeNames.EXPRESS_NAME]:i,[LA.AttributeNames.EXPRESS_TYPE]:vee.ExpressLayerType.ROUTER},name:`router - ${i}`}}else return t.name==="bound dispatch"||t.name==="handle"?{attributes:{[LA.AttributeNames.EXPRESS_NAME]:(e||n)??"request handler",[LA.AttributeNames.EXPRESS_TYPE]:vee.ExpressLayerType.REQUEST_HANDLER},name:`request handler${t.path?` - ${e||n}`:""}`}:{attributes:{[LA.AttributeNames.EXPRESS_NAME]:t.name,[LA.AttributeNames.EXPRESS_TYPE]:vee.ExpressLayerType.MIDDLEWARE},name:`middleware - ${t.name}`}};Ws.getLayerMetadata=g7t;var y7t=(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")},S7t=(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(y7t(e,r))return!0}catch{}return!1};Ws.isLayerIgnored=S7t;var b7t=e=>e instanceof Error?[e,e.message]:[String(e),String(e)];Ws.asErrorAndMessage=b7t;var E7t=e=>{let t=e[0];return Array.isArray(t)?t.map(n=>eqe(n)||"").join(","):eqe(t)};Ws.getLayerPath=E7t;var eqe=e=>{if(typeof e=="string")return e;if(e instanceof RegExp||typeof e=="number")return e.toString()};function tqe(e){let n=(Array.isArray(e[XE._LAYERS_STORE_PROPERTY])?e[XE._LAYERS_STORE_PROPERTY]:[]).filter(r=>r!=="/"&&r!=="/*");return n.length===1&&n[0]==="*"?"*":n.join("").replace(/\/{2,}/g,"/")}Ws.getConstructedRoute=tqe;function _7t(e){let t=Array.isArray(e[XE._LAYERS_STORE_PROPERTY])?e[XE._LAYERS_STORE_PROPERTY]:[];if(t.length===0)return;if(t.every(s=>s==="/"))return e.originalUrl==="/"?"/":void 0;let n=tqe(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)||T7t(r))?r:void 0}Ws.getActualMatchedRoute=_7t;function T7t(e){return e.includes(":")||e.includes("*")}});var rqe=w(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.PACKAGE_NAME=UA.PACKAGE_VERSION=void 0;UA.PACKAGE_VERSION="0.62.0";UA.PACKAGE_NAME="@opentelemetry/instrumentation-express"});var cqe=w(yB=>{"use strict";Object.defineProperty(yB,"__esModule",{value:!0});yB.ExpressInstrumentation=void 0;var iqe=pr(),hu=(Me(),ke(Ze)),sqe=hB(),oqe=mB(),Jp=nqe(),aqe=rqe(),FA=Jt(),v7t=(Nn(),ke(Mr)),gB=Tee(),Ree=class extends FA.InstrumentationBase{constructor(t={}){super(aqe.PACKAGE_NAME,aqe.PACKAGE_VERSION,t)}init(){return[new FA.InstrumentationNodeModuleDefinition("express",[">=4.0.0 <6"],t=>{let n=typeof t?.Router?.prototype?.route=="function",r=n?t.Router.prototype:t.Router;return(0,FA.isWrapped)(r.route)&&this._unwrap(r,"route"),this._wrap(r,"route",this._getRoutePatch()),(0,FA.isWrapped)(r.use)&&this._unwrap(r,"use"),this._wrap(r,"use",this._getRouterUsePatch()),(0,FA.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[gB.kLayerPatched]!==!0&&(t[gB.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={[v7t.ATTR_HTTP_ROUTE]:l},f=(0,Jp.getLayerMetadata)(u,t,n),p=f.attributes[oqe.AttributeNames.EXPRESS_TYPE],h=(0,iqe.getRPCMetadata)(hu.context.active());if(h?.type===iqe.RPCType.HTTP&&(h.route=l),(0,Jp.isLayerIgnored)(f.name,p,r.getConfig()))return p===sqe.ExpressLayerType.MIDDLEWARE&&o[gB._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,FA.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[oqe.AttributeNames.EXPRESS_TYPE]===sqe.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[gB._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}}};yB.ExpressInstrumentation=Ree});var uqe=w(Jy=>{"use strict";Object.defineProperty(Jy,"__esModule",{value:!0});Jy.AttributeNames=Jy.ExpressLayerType=Jy.ExpressInstrumentation=void 0;var R7t=cqe();Object.defineProperty(Jy,"ExpressInstrumentation",{enumerable:!0,get:function(){return R7t.ExpressInstrumentation}});var A7t=hB();Object.defineProperty(Jy,"ExpressLayerType",{enumerable:!0,get:function(){return A7t.ExpressLayerType}});var w7t=mB();Object.defineProperty(Jy,"AttributeNames",{enumerable:!0,get:function(){return w7t.AttributeNames}})});var So,QE=v(()=>{So=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});function k7t(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 I7t(e,t){if(vn()===Wl())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 lqe,dqe,fqe,x7t,pqe,hqe=v(()=>{lqe=Re(uqe(),1);st();sr();QE();dqe="Express";fqe=rt(dqe,()=>new lqe.ExpressInstrumentation({requestHook:e=>k7t(e),spanNameHook:(e,t)=>I7t(e,t)})),x7t=(()=>({name:dqe,setupOnce(){fqe()}})),pqe=x7t});var mqe=w(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});KP.SeverityNumber=void 0;var O7t;(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"})(O7t=KP.SeverityNumber||(KP.SeverityNumber={}))});var EB=w(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.NOOP_LOGGER=jA.NoopLogger=void 0;var bB=class{emit(t){}};jA.NoopLogger=bB;jA.NOOP_LOGGER=new bB});var gqe=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 P7t(e,t,n){return r=>r===e?t:n}Xp.makeGetter=P7t;Xp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var Aee=w(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.NOOP_LOGGER_PROVIDER=HA.NoopLoggerProvider=void 0;var N7t=EB(),_B=class{getLogger(t,n,r){return new N7t.NoopLogger}};HA.NoopLoggerProvider=_B;HA.NOOP_LOGGER_PROVIDER=new _B});var yqe=w(TB=>{"use strict";Object.defineProperty(TB,"__esModule",{value:!0});TB.ProxyLogger=void 0;var C7t=EB(),wee=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):C7t.NOOP_LOGGER}};TB.ProxyLogger=wee});var Sqe=w(vB=>{"use strict";Object.defineProperty(vB,"__esModule",{value:!0});vB.ProxyLoggerProvider=void 0;var M7t=Aee(),D7t=yqe(),kee=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new D7t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:M7t.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)}};vB.ProxyLoggerProvider=kee});var Eqe=w(RB=>{"use strict";Object.defineProperty(RB,"__esModule",{value:!0});RB.LogsAPI=void 0;var $l=gqe(),L7t=Aee(),bqe=Sqe(),Iee=class e{constructor(){this._proxyLoggerProvider=new bqe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return $l._global[$l.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():($l._global[$l.GLOBAL_LOGS_API_KEY]=(0,$l.makeGetter)($l.API_BACKWARDS_COMPATIBILITY_VERSION,t,L7t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=$l._global[$l.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call($l._global,$l.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete $l._global[$l.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new bqe.ProxyLoggerProvider}};RB.LogsAPI=Iee});var xee=w(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});Qp.logs=Qp.NoopLogger=Qp.NOOP_LOGGER=Qp.SeverityNumber=void 0;var U7t=mqe();Object.defineProperty(Qp,"SeverityNumber",{enumerable:!0,get:function(){return U7t.SeverityNumber}});var _qe=EB();Object.defineProperty(Qp,"NOOP_LOGGER",{enumerable:!0,get:function(){return _qe.NOOP_LOGGER}});Object.defineProperty(Qp,"NoopLogger",{enumerable:!0,get:function(){return _qe.NoopLogger}});var F7t=Eqe();Qp.logs=F7t.LogsAPI.getInstance()});var Tqe=w(qA=>{"use strict";Object.defineProperty(qA,"__esModule",{value:!0});qA.disableInstrumentations=qA.enableInstrumentations=void 0;function j7t(e,t,n,r){for(let i=0,s=e.length;it.disable())}qA.disableInstrumentations=H7t});var Aqe=w(AB=>{"use strict";Object.defineProperty(AB,"__esModule",{value:!0});AB.registerInstrumentations=void 0;var vqe=(Me(),ke(Ze)),q7t=xee(),Rqe=Tqe();function B7t(e){let t=e.tracerProvider||vqe.trace.getTracerProvider(),n=e.meterProvider||vqe.metrics.getMeterProvider(),r=e.loggerProvider||q7t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,Rqe.enableInstrumentations)(i,t,n,r),()=>{(0,Rqe.disableInstrumentations)(i)}}AB.registerInstrumentations=B7t});var Mqe=w(wB=>{"use strict";Object.defineProperty(wB,"__esModule",{value:!0});wB.satisfies=void 0;var Cee=(Me(),ke(Ze)),Oqe=/^(?: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-]+)*))?$/,z7t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,G7t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function V7t(e,t,n){if(!W7t(e))return Cee.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=J7t(e);if(!r)return!1;let i=[],s=Pqe(r,t,i,n);return s&&!n?.includePrerelease?Y7t(r,i):s}wB.satisfies=V7t;function W7t(e){return typeof e=="string"&&Oqe.test(e)}function Pqe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Oee(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=yJt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!Oee(e,s,n,r))return!1;return!0}return Oee(e,t,n,r)}function Oee(e,t,n,r){if(t=Z7t(t,r),t.includes(" "))return Pqe(e,t,n,r);{let i=X7t(t);return n.push(i),K7t(e,i)}}function K7t(e,t){if(t.invalid)return!1;if(!t.version||Nee(t.version))return!0;let n=kqe(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=kqe(r,i)}return G7t[t.op]?.includes(n)}function Y7t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function Z7t(e,t){return e=e.trim(),e=mJt(e,t),e=hJt(e),e=gJt(e,t),e=e.trim(),e}function Dc(e){return!e||e.toLowerCase()==="x"||e==="*"}function J7t(e){let t=e.match(Oqe);if(!t){Cee.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 X7t(e){if(!e)return{};let t=e.match(z7t);if(!t)return Cee.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function Nee(e){return e==="*"||e==="x"||e==="X"}function wqe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function Q7t(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 $7t(e,t){if(Nee(e)||Nee(t))return 0;let[n,r]=Q7t(wqe(e),wqe(t));return n>r?1:n)?=?)",Iqe=`(?:${Cqe}|${eJt})`,nJt=`(?:-(${Iqe}(?:\\.${Iqe})*))`,xqe=`${Nqe}+`,rJt=`(?:\\+(${xqe}(?:\\.${xqe})*))`,Pee=`${Cqe}|x|X|\\*`,YP=`[v=\\s]*(${Pee})(?:\\.(${Pee})(?:\\.(${Pee})(?:${nJt})?${rJt}?)?)?`,iJt=`^${tJt}\\s*${YP}$`,sJt=new RegExp(iJt),oJt=`^\\s*(${YP})\\s+-\\s+(${YP})\\s*$`,aJt=new RegExp(oJt),cJt="(?:~>?)",uJt=`^${cJt}${YP}$`,lJt=new RegExp(uJt),dJt="(?:\\^)",fJt=`^${dJt}${YP}$`,pJt=new RegExp(fJt);function hJt(e){let t=lJt;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 mJt(e,t){let n=pJt,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 gJt(e,t){let n=sJt;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 yJt(e,t){let n=aJt;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 Mee=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 SJt=(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=SJt;var bJt=(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=bJt;var EJt=(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=EJt;var _Jt=(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=_Jt;function JP(e){e&&e.logger&&(typeof e.logger!="function"?Lc("new logger isn't a function, not replacing"):Lc=e.logger)}da.default=JP;JP.wrap=da.wrap;JP.massWrap=da.massWrap;JP.unwrap=da.unwrap;JP.massUnwrap=da.massUnwrap});var Dqe=w(IB=>{"use strict";Object.defineProperty(IB,"__esModule",{value:!0});IB.InstrumentationAbstract=void 0;var Dee=(Me(),ke(Ze)),TJt=xee(),kB=Mee(),Lee=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=Dee.diag.createComponentLogger({namespace:t}),this._tracer=Dee.trace.getTracer(t,n),this._meter=Dee.metrics.getMeter(t,n),this._logger=TJt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=kB.wrap;_unwrap=kB.unwrap;_massWrap=kB.massWrap;_massUnwrap=kB.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)}}};IB.InstrumentationAbstract=Lee});var Lqe=w(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});Xy.ModuleNameTrie=Xy.ModuleNameSeparator=void 0;Xy.ModuleNameSeparator="/";var xB=class{hooks=[];children=new Map},Uee=class{_trie=new xB;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(Xy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new xB,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(Xy.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))}};Xy.ModuleNameTrie=Uee});var Fqe=w(OB=>{"use strict";Object.defineProperty(OB,"__esModule",{value:!0});OB.RequireInTheMiddleSingleton=void 0;var vJt=RE(),Uqe=Y("path"),Fee=Lqe(),RJt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),jee=class e{_moduleNameTrie=new Fee.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new vJt.Hook(null,{internals:!0},(t,n,r)=>{let i=AJt(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 RJt?new e:this._instance=this._instance??new e}};OB.RequireInTheMiddleSingleton=jee;function AJt(e){return Uqe.sep!==Fee.ModuleNameSeparator?e.split(Uqe.sep).join(Fee.ModuleNameSeparator):e}});var zqe=w(XP=>{var jqe=[],Hee=new WeakMap,Hqe=new WeakMap,qqe=new Map,Bqe=[],wJt={set(e,t,n){let r=Hee.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=Hqe.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=Hee.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function kJt(e,t,n,r,i){qqe.set(e,i),Hee.set(t,n),Hqe.set(t,r);let s=new Proxy(t,wJt);jqe.forEach(o=>o(e,s,i)),Bqe.push([e,s,i])}XP.register=kJt;XP.importHooks=jqe;XP.specifiers=qqe;XP.toHook=Bqe});var Kqe=w((AMr,zA)=>{var Gqe=Y("path"),IJt=xO(),{fileURLToPath:xJt}=Y("url"),{MessageChannel:OJt}=Y("worker_threads"),{isBuiltin:qee}=Y("module");qee||(qee=()=>!0);var{importHooks:Bee,specifiers:PJt,toHook:NJt}=zqe();function Vqe(e){Bee.push(e),NJt.forEach(([t,n,r])=>e(t,n,r))}function Wqe(e){let t=Bee.indexOf(e);t>-1&&Bee.splice(t,1)}function BA(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var zee;function CJt(){let{port1:e,port2:t}=new OJt,n=0,r;zee=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 QP(e,t,n){if(!(this instanceof QP))return new QP(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;zee&&Array.isArray(e)&&zee(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);qee(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=xJt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=IJt(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)BA(n,s,u,void 0);else if(d===i){if(!l)BA(n,s,i,l);else if(l.endsWith(PJt.get(a)))BA(n,s,i,l);else if(r){let f=i+Gqe.sep+Gqe.relative(l,u);BA(n,s,f,l)}}else d===o&&BA(n,s,o,l);else BA(n,s,i,l)},Vqe(this._iitmHook)}QP.prototype.unhook=function(){Wqe(this._iitmHook)};zA.exports=QP;zA.exports.Hook=QP;zA.exports.addHook=Vqe;zA.exports.removeHook=Wqe;zA.exports.createAddHookMessageChannel=CJt});var Gee=w(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.isWrapped=Qy.safeExecuteInTheMiddleAsync=Qy.safeExecuteInTheMiddle=void 0;function MJt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}Qy.safeExecuteInTheMiddle=MJt;async function DJt(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}}Qy.safeExecuteInTheMiddleAsync=DJt;function LJt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}Qy.isWrapped=LJt});var Jqe=w(PB=>{"use strict";Object.defineProperty(PB,"__esModule",{value:!0});PB.InstrumentationBase=void 0;var $P=Y("path"),Yqe=Y("util"),UJt=Mqe(),Vee=Mee(),FJt=Dqe(),jJt=Fqe(),HJt=Kqe(),eN=(Me(),ke(Ze)),qJt=RE(),BJt=Y("fs"),zJt=Gee(),Wee=class extends FJt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=jJt.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,zJt.isWrapped)(t[n])&&this._unwrap(t,n),Yqe.types.isProxy(t)){let i=(0,Vee.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,Vee.wrap)(t,n,r)};_unwrap=(t,n)=>Yqe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,Vee.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{eN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){eN.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{eN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){eN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=Y.resolve(n);Y.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,BJt.readFileSync)($P.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{eN.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=$P.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&&$P.isAbsolute(a)){let u=$P.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=$P.isAbsolute(t.name)?new qJt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new HJt.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}};PB.InstrumentationBase=Wee;function Zqe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,UJt.satisfies)(t,r,{includePrerelease:n}))}});var Xqe=w(NB=>{"use strict";Object.defineProperty(NB,"__esModule",{value:!0});NB.normalize=void 0;var GJt=Y("path");Object.defineProperty(NB,"normalize",{enumerable:!0,get:function(){return GJt.normalize}})});var Qqe=w(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.normalize=GA.InstrumentationBase=void 0;var VJt=Jqe();Object.defineProperty(GA,"InstrumentationBase",{enumerable:!0,get:function(){return VJt.InstrumentationBase}});var WJt=Xqe();Object.defineProperty(GA,"normalize",{enumerable:!0,get:function(){return WJt.normalize}})});var Kee=w(VA=>{"use strict";Object.defineProperty(VA,"__esModule",{value:!0});VA.normalize=VA.InstrumentationBase=void 0;var $qe=Qqe();Object.defineProperty(VA,"InstrumentationBase",{enumerable:!0,get:function(){return $qe.InstrumentationBase}});Object.defineProperty(VA,"normalize",{enumerable:!0,get:function(){return $qe.normalize}})});var eBe=w(CB=>{"use strict";Object.defineProperty(CB,"__esModule",{value:!0});CB.InstrumentationNodeModuleDefinition=void 0;var Yee=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}};CB.InstrumentationNodeModuleDefinition=Yee});var tBe=w(MB=>{"use strict";Object.defineProperty(MB,"__esModule",{value:!0});MB.InstrumentationNodeModuleFile=void 0;var KJt=Kee(),Zee=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,KJt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};MB.InstrumentationNodeModuleFile=Zee});var nBe=w($E=>{"use strict";Object.defineProperty($E,"__esModule",{value:!0});$E.semconvStabilityFromStr=$E.SemconvStability=void 0;var DB;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(DB=$E.SemconvStability||($E.SemconvStability={}));function YJt(e,t){let n=DB.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=DB.DUPLICATE;break}else i.toLowerCase()===e&&(n=DB.STABLE);return n}$E.semconvStabilityFromStr=YJt});var iBe=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 ZJt=Aqe();Object.defineProperty(Ks,"registerInstrumentations",{enumerable:!0,get:function(){return ZJt.registerInstrumentations}});var JJt=Kee();Object.defineProperty(Ks,"InstrumentationBase",{enumerable:!0,get:function(){return JJt.InstrumentationBase}});var XJt=eBe();Object.defineProperty(Ks,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return XJt.InstrumentationNodeModuleDefinition}});var QJt=tBe();Object.defineProperty(Ks,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return QJt.InstrumentationNodeModuleFile}});var Jee=Gee();Object.defineProperty(Ks,"isWrapped",{enumerable:!0,get:function(){return Jee.isWrapped}});Object.defineProperty(Ks,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return Jee.safeExecuteInTheMiddle}});Object.defineProperty(Ks,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return Jee.safeExecuteInTheMiddleAsync}});var rBe=nBe();Object.defineProperty(Ks,"SemconvStability",{enumerable:!0,get:function(){return rBe.SemconvStability}});Object.defineProperty(Ks,"semconvStabilityFromStr",{enumerable:!0,get:function(){return rBe.semconvStabilityFromStr}})});var sBe=w((LMr,$Jt)=>{$Jt.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 aBe=w(e_=>{"use strict";Object.defineProperty(e_,"__esModule",{value:!0});e_.range=e_.balanced=void 0;var eXt=(e,t,n)=>{let r=e instanceof RegExp?oBe(e,n):e,i=t instanceof RegExp?oBe(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=eXt;var oBe=(e,t)=>{let n=t.match(e);return n?n[0]:null},tXt=(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=tXt});var hBe=w(WA=>{"use strict";Object.defineProperty(WA,"__esModule",{value:!0});WA.EXPANSION_MAX=void 0;WA.expand=hXt;var cBe=aBe(),uBe="\0SLASH"+Math.random()+"\0",lBe="\0OPEN"+Math.random()+"\0",Qee="\0CLOSE"+Math.random()+"\0",dBe="\0COMMA"+Math.random()+"\0",fBe="\0PERIOD"+Math.random()+"\0",nXt=new RegExp(uBe,"g"),rXt=new RegExp(lBe,"g"),iXt=new RegExp(Qee,"g"),sXt=new RegExp(dBe,"g"),oXt=new RegExp(fBe,"g"),aXt=/\\\\/g,cXt=/\\{/g,uXt=/\\}/g,lXt=/\\,/g,dXt=/\\\./g;WA.EXPANSION_MAX=1e5;function Xee(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function fXt(e){return e.replace(aXt,uBe).replace(cXt,lBe).replace(uXt,Qee).replace(lXt,dBe).replace(dXt,fBe)}function pXt(e){return e.replace(nXt,"\\").replace(rXt,"{").replace(iXt,"}").replace(sXt,",").replace(oXt,".")}function pBe(e){if(!e)return[""];let t=[],n=(0,cBe.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=pBe(s);return s.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function hXt(e,t={}){if(!e)return[];let{max:n=WA.EXPANSION_MAX}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),tN(fXt(e),n,!0).map(pXt)}function mXt(e){return"{"+e+"}"}function gXt(e){return/^-?0\d/.test(e)}function yXt(e,t){return e<=t}function SXt(e,t){return e>=t}function tN(e,t,n){let r=[],i=(0,cBe.balanced)("{","}",e);if(!i)return[e];let s=i.pre,o=i.post.length?tN(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+Qee+i.post,tN(e,t,!0)):[e];let d;if(u)d=i.body.split(/\.\./);else if(d=pBe(i.body),d.length===1&&d[0]!==void 0&&(d=tN(d[0],t,!1).map(mXt),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=Xee(d[0]),h=Xee(d[1]),m=Math.max(d[0].length,d[1].length),g=d.length===3&&d[2]!==void 0?Math.max(Math.abs(Xee(d[2])),1):1,y=yXt;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(LB,"__esModule",{value:!0});LB.assertValidPattern=void 0;var bXt=1024*64,EXt=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>bXt)throw new TypeError("pattern is too long")};LB.assertValidPattern=EXt});var yBe=w(UB=>{"use strict";Object.defineProperty(UB,"__esModule",{value:!0});UB.parseClass=void 0;var _Xt={"[: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]},nN=e=>e.replace(/[[\]\\-]/g,"\\$&"),TXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),gBe=e=>e.join(""),vXt=(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(nN(d)+"-"+nN(m)):m===d&&r.push(nN(m)),d="",s++;continue}if(e.startsWith("-]",s+1)){r.push(nN(m+"-")),s+=2;continue}if(e.startsWith("-",s+1)){d=m,s+=2;continue}r.push(nN(m)),s++}if(l{"use strict";Object.defineProperty(FB,"__esModule",{value:!0});FB.unescape=void 0;var RXt=(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");FB.unescape=RXt});var tte=w(zB=>{"use strict";var mu;Object.defineProperty(zB,"__esModule",{value:!0});zB.AST=void 0;var AXt=yBe(),HB=jB(),wXt=new Set(["!","?","+","*","@"]),$ee=e=>wXt.has(e),SBe=e=>$ee(e.type),kXt=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),IXt=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),xXt=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),bBe=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),OXt="(?!(?:^|/)\\.\\.?(?:$|/))",qB="(?!\\.)",PXt=new Set(["[","."]),NXt=new Set(["..","."]),CXt=new Set("().*{}+?[]^$\\!"),MXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),ete="[^/]",EBe=ete+"*?",_Be=ete+"+?",DXt=0,BB=class{type;#t;#n;#i=!1;#e=[];#r;#s;#c;#u=!1;#o;#a;#l=!1;id=++DXt;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&&NXt.has(this.#e[0]))){let h=PXt,m=n&&h.has(u.charAt(0))||u.startsWith("\\.")&&h.has(u.charAt(2))||u.startsWith("\\.\\.")&&h.has(u.charAt(4)),g=!n&&!t&&h.has(u.charAt(0));l=m?OXt:g?qB:""}let d="";return this.isEnd()&&this.#t.#u&&this.#r?.type==="!"&&(d="(?:$|\\/)"),[l+u+d,(0,HB.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,HB.unescape)(this.toString()),!1,!1]}let o=!r||t||n||!qB?"":this.#y(!0);o===s&&(o=""),o&&(s=`(?:${s})(?:${o})*?`);let a="";if(this.type==="!"&&this.#l)a=(this.isStart()&&!n?qB:"")+_Be;else{let c=this.type==="!"?"))"+(this.isStart()&&!n&&!t?qB:"")+EBe+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+s+c}return[a,(0,HB.unescape)(s),this.#n=!!this.#n,this.#i]}#h(){if(SBe(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(GB,"__esModule",{value:!0});GB.escape=void 0;var LXt=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");GB.escape=LXt});var IBe=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 UXt=hBe(),VB=mBe(),RBe=tte(),FXt=nte(),jXt=jB(),HXt=(e,t,n={})=>((0,VB.assertValidPattern)(t),!n.nocomment&&t.charAt(0)==="#"?!1:new t_(t,n).match(e));it.minimatch=HXt;var qXt=/^\*+([^+@!?*[(]*)$/,BXt=e=>t=>!t.startsWith(".")&&t.endsWith(e),zXt=e=>t=>t.endsWith(e),GXt=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),VXt=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),WXt=/^\*+\.\*+$/,KXt=e=>!e.startsWith(".")&&e.includes("."),YXt=e=>e!=="."&&e!==".."&&e.includes("."),ZXt=/^\.\*+$/,JXt=e=>e!=="."&&e!==".."&&e.startsWith("."),XXt=/^\*+$/,QXt=e=>e.length!==0&&!e.startsWith("."),$Xt=e=>e.length!==0&&e!=="."&&e!=="..",eQt=/^\?+([^+@!?*[(]*)?$/,tQt=([e,t=""])=>{let n=ABe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},nQt=([e,t=""])=>{let n=wBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},rQt=([e,t=""])=>{let n=wBe([e]);return t?r=>n(r)&&r.endsWith(t):n},iQt=([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(".")},wBe=([e])=>{let t=e.length;return n=>n.length===t&&n!=="."&&n!==".."},kBe=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",TBe={win32:{sep:"\\"},posix:{sep:"/"}};it.sep=kBe==="win32"?TBe.win32.sep:TBe.posix.sep;it.minimatch.sep=it.sep;it.GLOBSTAR=Symbol("globstar **");it.minimatch.GLOBSTAR=it.GLOBSTAR;var sQt="[^/]",oQt=sQt+"*?",aQt="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",cQt="(?:(?!(?:\\/|^)\\.).)*?",uQt=(e,t={})=>n=>(0,it.minimatch)(n,e,t);it.filter=uQt;it.minimatch.filter=it.filter;var ed=(e,t={})=>Object.assign({},e,t),lQt=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,ed(e,s)),{Minimatch:class extends t.Minimatch{constructor(i,s={}){super(i,ed(e,s))}static defaults(i){return t.defaults(ed(e,i)).Minimatch}},AST:class extends t.AST{constructor(i,s,o={}){super(i,s,ed(e,o))}static fromGlob(i,s={}){return t.AST.fromGlob(i,ed(e,s))}},unescape:(r,i={})=>t.unescape(r,ed(e,i)),escape:(r,i={})=>t.escape(r,ed(e,i)),filter:(r,i={})=>t.filter(r,ed(e,i)),defaults:r=>t.defaults(ed(e,r)),makeRe:(r,i={})=>t.makeRe(r,ed(e,i)),braceExpand:(r,i={})=>t.braceExpand(r,ed(e,i)),match:(r,i,s={})=>t.match(r,i,ed(e,s)),sep:t.sep,GLOBSTAR:it.GLOBSTAR})};it.defaults=lQt;it.minimatch.defaults=it.defaults;var dQt=(e,t={})=>((0,VB.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,UXt.expand)(e,{max:t.braceExpandMax}));it.braceExpand=dQt;it.minimatch.braceExpand=it.braceExpand;var fQt=(e,t={})=>new t_(e,t).makeRe();it.makeRe=fQt;it.minimatch.makeRe=it.makeRe;var pQt=(e,t,n={})=>{let r=new t_(t,n);return e=e.filter(i=>r.match(i)),r.options.nonull&&!e.length&&e.push(t),e};it.match=pQt;it.minimatch.match=it.match;var vBe=/[?*]|[+@!]\(.*?\)|\[|\]/,hQt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),t_=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,n={}){(0,VB.assertValidPattern)(t),n=n||{},this.options=n,this.maxGlobstarRecursion=n.maxGlobstarRecursion??200,this.pattern=t,this.platform=n.platform||kBe,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]==="?"||!vBe.test(s[2]))&&!vBe.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"?hQt(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=t_;var mQt=tte();Object.defineProperty(it,"AST",{enumerable:!0,get:function(){return mQt.AST}});var gQt=nte();Object.defineProperty(it,"escape",{enumerable:!0,get:function(){return gQt.escape}});var yQt=jB();Object.defineProperty(it,"unescape",{enumerable:!0,get:function(){return yQt.unescape}});it.minimatch.AST=RBe.AST;it.minimatch.Minimatch=t_;it.minimatch.escape=FXt.escape;it.minimatch.unescape=jXt.unescape});var DBe=w((KMr,ste)=>{"use strict";var xBe=Y("node:diagnostics_channel"),{context:WB,trace:rte,SpanStatusCode:KB,propagation:ite,diag:SQt}=(Me(),ke(Ze)),{getRPCMetadata:bQt,RPCType:EQt}=pr(),{ATTR_HTTP_ROUTE:YB,ATTR_HTTP_RESPONSE_STATUS_CODE:OBe,ATTR_HTTP_REQUEST_METHOD:_Qt,ATTR_URL_PATH:TQt}=(Nn(),ke(Mr)),{InstrumentationBase:vQt}=iBe(),{version:RQt,name:PBe}=sBe(),AQt=">=4.0.0 <6",NBe=["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"},$y={ROUTE:"route-hook",INSTANCE:"hook",HANDLER:"request-handler"},Om="anonymous",eS=Symbol("fastify otel instance"),tS=Symbol("fastify otel request spans"),rN=Symbol("fastify otel request context"),CBe=Symbol("fastify otel addhook original"),MBe=Symbol("fastify otel setnotfound original"),iN=Symbol("fastify otel ignore path"),sN=Symbol("fastify otel record exceptions"),ZB=class extends vQt{logger=null;_requestHook=null;_lifecycleHook=null;constructor(t){if(super(PBe,RQt,t),this.logger=SQt.createComponentLogger({namespace:PBe}),this[iN]=null,this[sN]=!0,t?.recordExceptions!=null){if(typeof t.recordExceptions!="boolean")throw new TypeError("recordExceptions must be a boolean");this[sN]=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[iN]=i=>typeof n=="function"?n(i):(r==null&&(r=IBe().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)},xBe.subscribe("fastify.initialization",this._handleInitialization)),super.enable()}disable(){return this._handleInitialization&&(xBe.unsubscribe("fastify.initialization",this._handleInitialization),this._handleInitialization=void 0),super.disable()}init(){return[]}plugin(){let t=this;return n[Symbol.for("skip-override")]=!0,n[Symbol.for("fastify.display-name")]="@fastify/otel",n[Symbol.for("plugin-meta")]={fastify:AQt,name:"@fastify/otel"},n;function n(r,i,s){r.decorate(eS,t),r.decorate(CBe,r.addHook),r.decorate(MBe,r.setNotFoundHandler),r.decorateRequest("opentelemetry",function(){let p=this[rN],h=this[tS];return{enabled:this.routeOptions.config?.otel!==!1,span:h,tracer:t.tracer,context:p,inject:(m,g)=>ite.inject(p,m,g),extract:(m,g)=>ite.extract(p,m,g)}}),r.decorateRequest(tS,null),r.decorateRequest(rN,null),r.addHook("onRoute",function(p){if(t[iN]?.(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 NBe)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]:$y.ROUTE,[YB]:p.url,[fi.HOOK_CALLBACK_NAME]:m.name?.length>0?m.name:Om});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]:$y.ROUTE,[YB]:p.url,[fi.HOOK_CALLBACK_NAME]:y.name?.length>0?y.name:Om}));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]:$y.HANDLER,[YB]:p.url,[fi.HOOK_CALLBACK_NAME]:p.handler.name.length>0?p.handler.name:Om})}),r.addHook("onRequest",function(p,h,m){if(this[eS].isEnabled()===!1||p.routeOptions.config?.otel===!1)return m();if(this[eS][iN]?.({url:p.url,method:p.method})===!0)return this[eS].logger.debug(`Ignoring request ${p.method} ${p.url} because it matches the ignore path`),m();let g=WB.active();rte.getSpan(g)==null&&(g=ite.extract(g,p.headers));let y=bQt(g);p.routeOptions.url!=null&&y?.type===EQt.HTTP&&(y.route=p.routeOptions.url);let b={[fi.ROOT]:"@fastify/otel",[_Qt]:p.method,[TQt]:p.url};p.routeOptions.url!=null&&(b[YB]=p.routeOptions.url);let S=this[eS].tracer.startSpan("request",{attributes:b},g);try{this[eS]._requestHook?.(S,p)}catch(E){this[eS].logger.error({err:E},"requestHook threw")}p[rN]=rte.setSpan(g,S),p[tS]=S,WB.with(p[rN],()=>{m()})}),r.addHook("onResponse",function(p,h,m){let g=p[tS];g!=null&&(g.setAttributes({[OBe]:h.statusCode}),g.end()),p[tS]=null,m()}),r.addHook=c,r.setNotFoundHandler=u,s();function o(f,p,h,m){let g=f[tS];g!=null&&(p.statusCode>=500&&g.setStatus({code:KB.ERROR}),g.setAttributes({[OBe]:p.statusCode}),g.end()),f[tS]=null,m(null,h)}function a(f,p,h,m){let g=f[tS];g!=null&&(g.setStatus({code:KB.ERROR,message:h.message}),t[sN]!==!1&&g.recordException(h)),m()}function c(f,p){let h=this[CBe];return NBe.includes(f)?h.call(this,f,d(p,f,{[fi.HOOK_NAME]:`${this.pluginName} - ${f}`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:Om})):h.call(this,f,p)}function u(f,p){let h=this[MBe];typeof f=="function"?(p=d(f,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.name?.length>0?f.name:Om}),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]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preValidation.name?.length>0?f.preValidation.name:Om})),f.preHandler!=null&&(f.preHandler=d(f.preHandler,"notFoundHandler - preHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler - preHandler`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preHandler.name?.length>0?f.preHandler.name:Om})),p=d(p,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:Om}),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[eS],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[iN]?.({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[rN]??WB.active(),E=f.name?.length>0?f.name:this.pluginName??Om,_=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 WB.with(rte.setSpan(S,_),function(){try{let T=f.call(this,...g);return typeof T?.then=="function"?T.then(R=>(_.end(),R),R=>(_.setStatus({code:KB.ERROR,message:R.message}),y[sN]!==!1&&_.recordException(R),_.end(),Promise.reject(R))):(_.end(),T)}catch(T){throw _.setStatus({code:KB.ERROR,message:T.message}),y[sN]!==!1&&_.recordException(T),_.end(),T}},this)}}}}};ste.exports=ZB;ste.exports.FastifyOtelInstrumentation=ZB});var Pm,oN,aN,LBe=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})(Pm||(Pm={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request_handler";e.REQUEST_HANDLER=n})(oN||(oN={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request handler";e.REQUEST_HANDLER=n})(aN||(aN={}))});var cN,UBe=v(()=>{cN=Symbol("opentelemetry.instrumentation.fastify.request_active_span")});function ote(e,t,n,r={}){let i=t.startSpan(n,{attributes:r}),s=e[cN]||[];return s.push(i),Object.defineProperty(e,cN,{enumerable:!1,configurable:!0,value:s}),i}function JB(e,t){let n=e[cN]||[];n.length&&(n.forEach(r=>{t&&(r.setStatus({code:as.ERROR,message:t.message}),r.recordException(t)),r.end()}),delete e[cN])}function jBe(e,t,n){let r,i;try{i=e(),FBe(i)&&i.then(s=>t(void 0,s),s=>t(s))}catch(s){r=s}finally{if(!FBe(i)&&(t(r,i),r))throw r;return i}}function FBe(e){return typeof e=="object"&&e&&typeof Object.getOwnPropertyDescriptor(e,"then")?.value=="function"||!1}var HBe=v(()=>{Me();UBe()});function xQt(){let e=ct();e&&e.on("spanStart",t=>{BBe(t)})}function BBe(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 QB,n_,wQt,kQt,qBe,IQt,XB,zBe=v(()=>{Me();QB=Re(pr(),1),n_=Re(Jt(),1);Nn();st();LBe();HBe();wQt="0.1.0",kQt="@sentry/instrumentation-fastify-v3",qBe="anonymous",IQt=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]),XB=class extends n_.InstrumentationBase{constructor(t={}){super(kQt,wQt,t)}init(){return[new n_.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,QB.getRPCMetadata)(Ve.active()),c=o.routeOptions?o.routeOptions.url:r.routerPath;c&&a?.type===QB.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||qBe,c=`${aN.MIDDLEWARE} - ${a}`,u=o[1],l=ote(u,s.tracer,c,{[Pm.FASTIFY_TYPE]:oN.MIDDLEWARE,[Pm.PLUGIN_NAME]:t,[Pm.HOOK_NAME]:n}),d=i&&o[o.length-1];return d&&(o[o.length-1]=function(...f){JB(u),d.apply(this,f)}),Ve.with(jt.setSpan(Ve.active(),l),()=>jBe(()=>r.apply(this,o),f=>{f instanceof Error&&(l.setStatus({code:as.ERROR,message:f.message}),l.recordException(f)),i||JB(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()),xQt(),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,n_.safeExecuteInTheMiddle)(()=>r.apply(this,s),a=>{!a&&o instanceof Error&&(a=o),JB(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=`${aN.REQUEST_HANDLER} - ${c||this.pluginName||qBe}`,l={[Pm.PLUGIN_NAME]:this.pluginName,[Pm.FASTIFY_TYPE]:oN.REQUEST_HANDLER,[m7]:o.routeOptions?o.routeOptions.url:r.routerPath};c&&(l[Pm.FASTIFY_NAME]=c);let d=ote(i,t.tracer,u,l);BBe(d);let{requestHook:f}=t.getConfig();return f&&(0,n_.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 ate from"node:diagnostics_channel";function OQt(){let e=ct();if(e)return e.getIntegrationByName($B)}function GBe(e,t,n,r){let i=OQt()?.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 JBe(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 NQt(){let e=ct();e&&e.on("spanStart",t=>{JBe(t)})}function CQt(e){e.addHook("onRequest",async(t,n)=>{if(t.opentelemetry){let{span:s}=t.opentelemetry();s&&JBe(s)}let r=t.routeOptions?.url,i=t.method||"GET";vn().setTransactionName(`${i} ${r}`)})}var VBe,$B,WBe,KBe,PQt,YBe,XBe=v(()=>{VBe=Re(DBe(),1);st();sr();QE();zBe();$B="Fastify",WBe=rt(`${$B}.v3`,()=>new XB);KBe=rt(`${$B}.v5`,()=>{let e=new VBe.FastifyOtelInstrumentation,t=e.plugin();return ate.subscribe("fastify.initialization",n=>{let r=n.fastify;r?.register(t).after(i=>{i?So&&Z.error("Failed to setup Fastify instrumentation",i):(NQt(),r&&CQt(r))})}),ate.subscribe("tracing:fastify.request.handler:error",n=>{let{error:r,request:i,reply:s}=n;GBe.call(GBe,r,i,s,"diagnostics-channel")}),e}),PQt=(({shouldHandleError:e})=>{let t;return{name:$B,setupOnce(){t=e||ZBe,WBe(),KBe()},getShouldHandleError(){return t},setShouldHandleError(n){t=n}}}),YBe=(e={})=>PQt(e)});var cte=w(hf=>{"use strict";Object.defineProperty(hf,"__esModule",{value:!0});hf.SpanNames=hf.TokenKind=hf.AllowedOperationTypes=void 0;var MQt;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})(MQt=hf.AllowedOperationTypes||(hf.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=hf.TokenKind||(hf.TokenKind={}));var LQt;(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"})(LQt=hf.SpanNames||(hf.SpanNames={}))});var ute=w(uN=>{"use strict";Object.defineProperty(uN,"__esModule",{value:!0});uN.AttributeNames=void 0;var UQt;(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"})(UQt=uN.AttributeNames||(uN.AttributeNames={}))});var ez=w(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.OTEL_GRAPHQL_DATA_SYMBOL=KA.OTEL_PATCHED_SYMBOL=void 0;KA.OTEL_PATCHED_SYMBOL=Symbol.for("opentelemetry.patched");KA.OTEL_GRAPHQL_DATA_SYMBOL=Symbol.for("opentelemetry.graphql_data")});var QBe=w(tz=>{"use strict";Object.defineProperty(tz,"__esModule",{value:!0});tz.OPERATION_NOT_SUPPORTED=void 0;var pDr=ez();tz.OPERATION_NOT_SUPPORTED="Operation$operationName$not supported"});var fze=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 YA=(Me(),ke(Ze)),nS=cte(),r_=ute(),Nm=ez(),$Be=Object.values(nS.AllowedOperationTypes),FQt=e=>typeof e?.then=="function";bo.isPromise=FQt;var jQt=e=>typeof e=="object"&&e!==null;function lte(e,t,n){Array.isArray(n)?n.forEach((r,i)=>{lte(e,`${t}.${i}`,r)}):n instanceof Object?Object.entries(n).forEach(([r,i])=>{lte(e,`${t}.${r}`,i)}):e.setAttribute(`${r_.AttributeNames.VARIABLES}${String(t)}`,n)}function HQt(e,t){Object.entries(t).forEach(([n,r])=>{lte(e,n,r)})}bo.addInputVariableAttributes=HQt;function rze(e,t,n,r,i){let s=cze(t,n,r,i);e.setAttribute(r_.AttributeNames.SOURCE,s)}bo.addSpanSource=rze;function qQt(e,t,n,r,i){let s=ize(n,i);if(s)return{field:s,spanAdded:!1};let a=t().flatResolveSpans?oze(n):sze(n,i);return s={span:BQt(e,t,n,r,i,a)},VQt(n,i,s),{field:s,spanAdded:!0}}function BQt(e,t,n,r,i,s){let o={[r_.AttributeNames.FIELD_NAME]:r.fieldName,[r_.AttributeNames.FIELD_PATH]:i.join("."),[r_.AttributeNames.FIELD_TYPE]:r.returnType.toString(),[r_.AttributeNames.PARENT_NAME]:r.parentType.name},a=e.startSpan(`${nS.SpanNames.RESOLVE} ${o[r_.AttributeNames.FIELD_PATH]}`,{attributes:o},s?YA.trace.setSpan(YA.context.active(),s):void 0),c=n[Nm.OTEL_GRAPHQL_DATA_SYMBOL].source,u=r.fieldNodes.find(l=>l.kind==="Field");return u&&rze(a,c.loc,t().allowValues,u.loc?.start,u.loc?.end),a}function zQt(e,t){t&&e.recordException(t),e.end()}bo.endSpan=zQt;function GQt(e,t){if(!(!e||!Array.isArray(e.definitions)))return t?e.definitions.filter(n=>$Be.indexOf(n?.operation)!==-1).find(n=>t===n?.name?.value):e.definitions.find(n=>$Be.indexOf(n?.operation)!==-1)}bo.getOperation=GQt;function VQt(e,t,n){return e[Nm.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]=n}function ize(e,t){return e[Nm.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]}function sze(e,t){for(let n=t.length-1;n>0;n--){let r=ize(e,t.slice(0,n));if(r)return r.span}return oze(e)}function oze(e){return e[Nm.OTEL_GRAPHQL_DATA_SYMBOL].span}function WQt(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 KQt(e){return aze(` +`,e)}function eze(e){return aze(" ",e)}function aze(e,t){let n="";for(let r=0;ro){a=a.next,c=a?.line;continue}let u=a.value||a.kind,l="";!t&&YQt.indexOf(a.kind)>=0&&(u="*"),a.kind===nS.TokenKind.STRING&&(u=`"${u}"`),a.kind===nS.TokenKind.EOF&&(u=""),a.line>c?(i+=KQt(a.line-c),c=a.line,l=eze(a.column-1)):a.line===a.prev?.line&&(l=eze(a.start-(a.prev?.end||0))),i+=l+u,a&&(a=a.next)}}return i}bo.getSourceFromLocation=cze;function uze(e,t,n){if(!e||e[Nm.OTEL_PATCHED_SYMBOL])return;let r=e.getFields();e[Nm.OTEL_PATCHED_SYMBOL]=!0,Object.keys(r).forEach(i=>{let s=r[i];if(s&&(s.resolve&&(s.resolve=dze(t,n,s.resolve)),s.type)){let o=lze(s.type);for(let a of o)uze(a,t,n)}})}bo.wrapFields=uze;function lze(e){return"ofType"in e?lze(e.ofType):ZQt(e)?e.getTypes():JQt(e)?[e]:[]}function ZQt(e){return"getTypes"in e&&typeof e.getTypes=="function"}function JQt(e){return"getFields"in e&&typeof e.getFields=="function"}var tze=(e,t,n)=>{n&&(e.recordException(t),e.setStatus({code:YA.SpanStatusCode.ERROR,message:t.message}),e.end())},nze=(e,t)=>{t&&e.end()};function dze(e,t,n,r=!1){if(i[Nm.OTEL_PATCHED_SYMBOL]||typeof n!="function")return n;function i(s,o,a,c){if(!n)return;let u=t();if(u.ignoreTrivialResolveSpans&&r&&(jQt(s)||typeof s=="function")&&typeof s[c.fieldName]!="function")return n.call(this,s,o,a,c);if(!a[Nm.OTEL_GRAPHQL_DATA_SYMBOL])return n.call(this,s,o,a,c);let l=WQt(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=>(nze(f,p),m),m=>{throw tze(f,m,p),m}):(nze(f,p),h)}catch(h){throw tze(f,h,p),h}})}return i[Nm.OTEL_PATCHED_SYMBOL]=!0,i}bo.wrapFieldResolver=dze});var pze=w(ZA=>{"use strict";Object.defineProperty(ZA,"__esModule",{value:!0});ZA.PACKAGE_NAME=ZA.PACKAGE_VERSION=void 0;ZA.PACKAGE_VERSION="0.62.0";ZA.PACKAGE_NAME="@opentelemetry/instrumentation-graphql"});var gze=w(iz=>{"use strict";Object.defineProperty(iz,"__esModule",{value:!0});iz.GraphQLInstrumentation=void 0;var Cm=(Me(),ke(Ze)),td=Jt(),lN=cte(),nz=ute(),dte=ez(),XQt=QBe(),Qa=fze(),hze=pze(),mze={mergeItems:!1,depth:-1,allowValues:!1,ignoreResolveSpans:!1},rz=[">=14.0.0 <17"],fte=class extends td.InstrumentationBase{constructor(t={}){super(hze.PACKAGE_NAME,hze.PACKAGE_VERSION,{...mze,...t})}setConfig(t={}){super.setConfig({...mze,...t})}init(){let t=new td.InstrumentationNodeModuleDefinition("graphql",rz);return t.files.push(this._addPatchingExecute()),t.files.push(this._addPatchingParser()),t.files.push(this._addPatchingValidate()),t}_addPatchingExecute(){return new td.InstrumentationNodeModuleFile("graphql/execution/execute.js",rz,t=>((0,td.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 td.InstrumentationNodeModuleFile("graphql/language/parser.js",rz,t=>((0,td.isWrapped)(t.parse)&&this._unwrap(t,"parse"),this._wrap(t,"parse",this._patchParse()),t),t=>{t&&this._unwrap(t,"parse")})}_addPatchingValidate(){return new td.InstrumentationNodeModuleFile("graphql/validation/validate.js",rz,t=>((0,td.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[dte.OTEL_GRAPHQL_DATA_SYMBOL]={source:o.document?o.document||o.document[dte.OTEL_GRAPHQL_DATA_SYMBOL]:void 0,span:c,fields:{}},Cm.context.with(Cm.trace.setSpan(Cm.context.active(),c),()=>(0,td.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,td.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(lN.SpanNames.PARSE);return Cm.context.with(Cm.trace.setSpan(Cm.context.active(),o),()=>(0,td.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(lN.SpanNames.SCHEMA_PARSE)),(0,Qa.endSpan)(o,a)}))}_validate(t,n,r,i,s,o,a){let c=this.tracer.startSpan(lN.SpanNames.VALIDATE,{});return Cm.context.with(Cm.trace.setSpan(Cm.context.active(),c),()=>(0,td.safeExecuteInTheMiddle)(()=>n.call(t,r,i,s,a,o),(u,l)=>{i.loc||c.updateName(lN.SpanNames.SCHEMA_VALIDATE),l&&l.length&&c.recordException({name:nz.AttributeNames.ERROR_VALIDATION_NAME,message:JSON.stringify(l)}),(0,Qa.endSpan)(c,u)}))}_createExecuteSpan(t,n){let r=this.getConfig(),i=this.tracer.startSpan(lN.SpanNames.EXECUTE,{});if(t){let{operation:s,name:o}=t;i.setAttribute(nz.AttributeNames.OPERATION_TYPE,s);let a=o?.value;a?(i.setAttribute(nz.AttributeNames.OPERATION_NAME,a),i.updateName(`${s} ${a}`)):i.updateName(s)}else{let s=" ";n.operationName&&(s=` "${n.operationName}" `),s=XQt.OPERATION_NOT_SUPPORTED.replace("$operationName$",s),i.setAttribute(nz.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[dte.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}}};iz.GraphQLInstrumentation=fte});var yze=w(sz=>{"use strict";Object.defineProperty(sz,"__esModule",{value:!0});sz.GraphQLInstrumentation=void 0;var QQt=gze();Object.defineProperty(sz,"GraphQLInstrumentation",{enumerable:!0,get:function(){return QQt.GraphQLInstrumentation}})});function Tze(e){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...e}}function e$t(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 Sze,bze,Eze,$Qt,_ze,vze=v(()=>{Me();Sze=Re(yze(),1);st();sr();CA();bze="Graphql",Eze=rt(bze,Sze.GraphQLInstrumentation,e=>{let t=Tze(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[PA]||[],d=a?`${o} ${a}`:`${o}`;Array.isArray(l)?(l.push(d),c.setAttribute(PA,l)):typeof l=="string"?c.setAttribute(PA,[l,d]):c.setAttribute(PA,d),vt(c).data["original-description"]||c.setAttribute("original-description",vt(c).description),c.updateName(`${vt(c).data["original-description"]} (${e$t(l)})`)}}}}),$Qt=((e={})=>({name:bze,setupOnce(){Eze(Tze(e))}})),_ze=$Qt});var Rze=w(oz=>{"use strict";Object.defineProperty(oz,"__esModule",{value:!0});oz.EVENT_LISTENERS_SET=void 0;oz.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.kafkajs.eventListenersSet")});var Aze=w(az=>{"use strict";Object.defineProperty(az,"__esModule",{value:!0});az.bufferTextMapGetter=void 0;az.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 wze=w(jn=>{"use strict";Object.defineProperty(jn,"__esModule",{value:!0});jn.METRIC_MESSAGING_PROCESS_DURATION=jn.METRIC_MESSAGING_CLIENT_SENT_MESSAGES=jn.METRIC_MESSAGING_CLIENT_OPERATION_DURATION=jn.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES=jn.MESSAGING_SYSTEM_VALUE_KAFKA=jn.MESSAGING_OPERATION_TYPE_VALUE_SEND=jn.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE=jn.MESSAGING_OPERATION_TYPE_VALUE_PROCESS=jn.ATTR_MESSAGING_SYSTEM=jn.ATTR_MESSAGING_OPERATION_TYPE=jn.ATTR_MESSAGING_OPERATION_NAME=jn.ATTR_MESSAGING_KAFKA_OFFSET=jn.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE=jn.ATTR_MESSAGING_KAFKA_MESSAGE_KEY=jn.ATTR_MESSAGING_DESTINATION_PARTITION_ID=jn.ATTR_MESSAGING_DESTINATION_NAME=jn.ATTR_MESSAGING_BATCH_MESSAGE_COUNT=void 0;jn.ATTR_MESSAGING_BATCH_MESSAGE_COUNT="messaging.batch.message_count";jn.ATTR_MESSAGING_DESTINATION_NAME="messaging.destination.name";jn.ATTR_MESSAGING_DESTINATION_PARTITION_ID="messaging.destination.partition.id";jn.ATTR_MESSAGING_KAFKA_MESSAGE_KEY="messaging.kafka.message.key";jn.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE="messaging.kafka.message.tombstone";jn.ATTR_MESSAGING_KAFKA_OFFSET="messaging.kafka.offset";jn.ATTR_MESSAGING_OPERATION_NAME="messaging.operation.name";jn.ATTR_MESSAGING_OPERATION_TYPE="messaging.operation.type";jn.ATTR_MESSAGING_SYSTEM="messaging.system";jn.MESSAGING_OPERATION_TYPE_VALUE_PROCESS="process";jn.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE="receive";jn.MESSAGING_OPERATION_TYPE_VALUE_SEND="send";jn.MESSAGING_SYSTEM_VALUE_KAFKA="kafka";jn.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES="messaging.client.consumed.messages";jn.METRIC_MESSAGING_CLIENT_OPERATION_DURATION="messaging.client.operation.duration";jn.METRIC_MESSAGING_CLIENT_SENT_MESSAGES="messaging.client.sent.messages";jn.METRIC_MESSAGING_PROCESS_DURATION="messaging.process.duration"});var kze=w(JA=>{"use strict";Object.defineProperty(JA,"__esModule",{value:!0});JA.PACKAGE_NAME=JA.PACKAGE_VERSION=void 0;JA.PACKAGE_VERSION="0.23.0";JA.PACKAGE_NAME="@opentelemetry/instrumentation-kafkajs"});var Cze=w(uz=>{"use strict";Object.defineProperty(uz,"__esModule",{value:!0});uz.KafkaJsInstrumentation=void 0;var Lr=(Me(),ke(Ze)),nd=Jt(),XA=(Nn(),ke(Mr)),Ize=Rze(),xze=Aze(),ot=wze(),Oze=kze();function cz(e,t,n){return r=>{e.add(t,{...n,...r?{[XA.ATTR_ERROR_TYPE]:r}:{}})}}function Pze(e,t,n){return r=>{e.record((Date.now()-t)/1e3,{...n,...r?{[XA.ATTR_ERROR_TYPE]:r}:{}})}}var Nze=[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10],pte=class extends nd.InstrumentationBase{constructor(t={}){super(Oze.PACKAGE_NAME,Oze.PACKAGE_VERSION,t)}_updateMetricInstruments(){this._clientDuration=this.meter.createHistogram(ot.METRIC_MESSAGING_CLIENT_OPERATION_DURATION,{advice:{explicitBucketBoundaries:Nze}}),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:Nze}})}init(){let t=r=>{(0,nd.isWrapped)(r?.Kafka?.prototype.producer)&&this._unwrap(r.Kafka.prototype,"producer"),(0,nd.isWrapped)(r?.Kafka?.prototype.consumer)&&this._unwrap(r.Kafka.prototype,"consumer")};return new nd.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,nd.isWrapped)(s.run)&&t._unwrap(s,"run"),t._wrap(s,"run",t._getConsumerRunPatch()),t._setKafkaEventListeners(s),s}}_setKafkaEventListeners(t){t[Ize.EVENT_LISTENERS_SET]||(t.events?.REQUEST&&t.on(t.events.REQUEST,this._recordClientDurationMetric.bind(this)),t[Ize.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}`,[XA.ATTR_SERVER_ADDRESS]:n,[XA.ATTR_SERVER_PORT]:Number.parseInt(r,10)})}_getProducerPatch(){let t=this;return n=>function(...i){let s=n.apply(this,i);return(0,nd.isWrapped)(s.sendBatch)&&t._unwrap(s,"sendBatch"),t._wrap(s,"sendBatch",t._getSendBatchPatch()),(0,nd.isWrapped)(s.send)&&t._unwrap(s,"send"),t._wrap(s,"send",t._getSendPatch()),(0,nd.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,nd.isWrapped)(s.eachMessage)&&t._unwrap(s,"eachMessage"),t._wrap(s,"eachMessage",t._getConsumerEachMessagePatch())),s?.eachBatch&&((0,nd.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,xze.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=[Pze(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)}),cz(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=[cz(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,xze.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(Pze(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(cz(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=>cz(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=XA.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(XA.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,nd.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,nd.safeExecuteInTheMiddle)(()=>i(r,{topic:t,message:n}),s=>{s&&this._diag.error("producerHook error",s)},!0),r}};uz.KafkaJsInstrumentation=pte});var Mze=w(lz=>{"use strict";Object.defineProperty(lz,"__esModule",{value:!0});lz.KafkaJsInstrumentation=void 0;var t$t=Cze();Object.defineProperty(lz,"KafkaJsInstrumentation",{enumerable:!0,get:function(){return t$t.KafkaJsInstrumentation}})});var Dze,Lze,Uze,n$t,Fze,jze=v(()=>{Dze=Re(Mze(),1);sr();Lze="Kafka",Uze=rt(Lze,()=>new Dze.KafkaJsInstrumentation({consumerHook(e){Dr(e,"auto.kafkajs.otel.consumer")},producerHook(e){Dr(e,"auto.kafkajs.otel.producer")}})),n$t=(()=>({name:Lze,setupOnce(){Uze()}})),Fze=n$t});var Hze=w(QA=>{"use strict";Object.defineProperty(QA,"__esModule",{value:!0});QA.PACKAGE_NAME=QA.PACKAGE_VERSION=void 0;QA.PACKAGE_VERSION="0.58.0";QA.PACKAGE_NAME="@opentelemetry/instrumentation-lru-memoizer"});var Gze=w(dz=>{"use strict";Object.defineProperty(dz,"__esModule",{value:!0});dz.LruMemoizerInstrumentation=void 0;var qze=(Me(),ke(Ze)),Bze=Jt(),zze=Hze(),hte=class extends Bze.InstrumentationBase{constructor(t={}){super(zze.PACKAGE_NAME,zze.PACKAGE_VERSION,t)}init(){return[new Bze.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"?qze.context.bind(qze.context.active(),s):s;return i.push(o),r.apply(this,i)}};return n.sync=t.sync,n},void 0)]}};dz.LruMemoizerInstrumentation=hte});var Vze=w(fz=>{"use strict";Object.defineProperty(fz,"__esModule",{value:!0});fz.LruMemoizerInstrumentation=void 0;var r$t=Gze();Object.defineProperty(fz,"LruMemoizerInstrumentation",{enumerable:!0,get:function(){return r$t.LruMemoizerInstrumentation}})});var Wze,Kze,Yze,i$t,Zze,Jze=v(()=>{Wze=Re(Vze(),1);sr();Kze="LruMemoizer",Yze=rt(Kze,()=>new Wze.LruMemoizerInstrumentation),i$t=(()=>({name:Kze,setupOnce(){Yze()}})),Zze=i$t});var Xze=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 Qze=w(dN=>{"use strict";Object.defineProperty(dN,"__esModule",{value:!0});dN.MongodbCommandType=void 0;var s$t;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.AGGREGATE="aggregate",e.UNKNOWN="unknown"})(s$t=dN.MongodbCommandType||(dN.MongodbCommandType={}))});var $ze=w($A=>{"use strict";Object.defineProperty($A,"__esModule",{value:!0});$A.PACKAGE_NAME=$A.PACKAGE_VERSION=void 0;$A.PACKAGE_VERSION="0.67.0";$A.PACKAGE_NAME="@opentelemetry/instrumentation-mongodb"});var nGe=w(pz=>{"use strict";Object.defineProperty(pz,"__esModule",{value:!0});pz.MongoDBInstrumentation=void 0;var Yi=(Me(),ke(Ze)),Hn=Jt(),Mm=(Nn(),ke(Mr)),hl=Xze(),i_=Qze(),eGe=$ze(),tGe={requireParentSpan:!0},mte=class e extends Hn.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(eGe.PACKAGE_NAME,eGe.PACKAGE_VERSION,{...tGe,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,Hn.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,Hn.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...tGe,...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 Hn.InstrumentationNodeModuleDefinition("mongodb",[">=3.3.0 <4"],void 0,void 0,[new Hn.InstrumentationNodeModuleFile("mongodb/lib/core/wireprotocol/index.js",[">=3.3.0 <4"],t,n)]),new Hn.InstrumentationNodeModuleDefinition("mongodb",[">=4.0.0 <8"],void 0,void 0,[new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=4.0.0 <6.4"],s,a),new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=6.4.0 <8"],o,a),new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection_pool.js",[">=4.0.0 <6.4"],c,u),new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connect.js",[">=4.0.0 <8"],r,i),new Hn.InstrumentationNodeModuleFile("mongodb/lib/sessions.js",[">=4.0.0 <8"],l,d)])]}_getV3ConnectionPatches(){return{v3PatchConnection:t=>((0,Hn.isWrapped)(t.insert)&&this._unwrap(t,"insert"),this._wrap(t,"insert",this._getV3PatchOperation("insert")),(0,Hn.isWrapped)(t.remove)&&this._unwrap(t,"remove"),this._wrap(t,"remove",this._getV3PatchOperation("remove")),(0,Hn.isWrapped)(t.update)&&this._unwrap(t,"update"),this._wrap(t,"update",this._getV3PatchOperation("update")),(0,Hn.isWrapped)(t.command)&&this._unwrap(t,"command"),this._wrap(t,"command",this._getV3PatchCommand()),(0,Hn.isWrapped)(t.query)&&this._unwrap(t,"query"),this._wrap(t,"query",this._getV3PatchFind()),(0,Hn.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,Hn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),this._wrap(t.ServerSessionPool.prototype,"acquire",this._getV4AcquireCommand()),(0,Hn.isWrapped)(t.release)&&this._unwrap(t,"release"),this._wrap(t.ServerSessionPool.prototype,"release",this._getV4ReleaseCommand()),t),v4UnpatchSessions:t=>{t!==void 0&&((0,Hn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),(0,Hn.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,Hn.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,Hn.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=Yi.context.bind(Yi.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,Hn.isWrapped)(t.Connection.prototype.command)&&this._unwrap(t.Connection.prototype,"command"),this._wrap(t.Connection.prototype,"command",this._getV4PatchCommandCallback()),t),v4PatchConnectionPromise:t=>((0,Hn.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=Yi.trace.getSpan(Yi.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:Yi.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=Yi.trace.getSpan(Yi.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===i_.MongodbCommandType.UNKNOWN?void 0:f,h=t._getV3SpanAttributes(s,i,o,p),m=t._spanNameFromAttrs(h),g=t.tracer.startSpan(m,{kind:Yi.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=Yi.trace.getSpan(Yi.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:Yi.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=Yi.trace.getSpan(Yi.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:Yi.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=Yi.trace.getSpan(Yi.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:Yi.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=Yi.trace.getSpan(Yi.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:Yi.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?i_.MongodbCommandType.CREATE_INDEXES:t.findandmodify!==void 0?i_.MongodbCommandType.FIND_AND_MODIFY:t.ismaster!==void 0?i_.MongodbCommandType.IS_MASTER:t.count!==void 0?i_.MongodbCommandType.COUNT:t.aggregate!==void 0?i_.MongodbCommandType.AGGREGATE:i_.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&Hn.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&Hn.SemconvStability.STABLE&&(a[Mm.ATTR_DB_SYSTEM_NAME]=hl.DB_SYSTEM_NAME_VALUE_MONGODB,a[Mm.ATTR_DB_NAMESPACE]=t,a[Mm.ATTR_DB_OPERATION_NAME]=o,a[Mm.ATTR_DB_COLLECTION_NAME]=n),r&&i){this._netSemconvStability&Hn.SemconvStability.OLD&&(a[hl.ATTR_NET_PEER_NAME]=r),this._netSemconvStability&Hn.SemconvStability.STABLE&&(a[Mm.ATTR_SERVER_ADDRESS]=r);let c=parseInt(i,10);isNaN(c)||(this._netSemconvStability&Hn.SemconvStability.OLD&&(a[hl.ATTR_NET_PEER_PORT]=c),this._netSemconvStability&Hn.SemconvStability.STABLE&&(a[Mm.ATTR_SERVER_PORT]=c))}if(s){let{dbStatementSerializer:c}=this.getConfig(),u=typeof c=="function"?c:this._defaultDbStatementSerializer.bind(this);(0,Hn.safeExecuteInTheMiddle)(()=>{let l=u(s);this._dbSemconvStability&Hn.SemconvStability.OLD&&(a[hl.ATTR_DB_STATEMENT]=l),this._dbSemconvStability&Hn.SemconvStability.STABLE&&(a[Mm.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&Hn.SemconvStability.STABLE?n=[t[Mm.ATTR_DB_OPERATION_NAME],t[Mm.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,Hn.safeExecuteInTheMiddle)(()=>{r(t,{data:n})},i=>{i&&this._diag.error("Error running response hook",i)},!0)}_patchEnd(t,n,r,i){let s=Yi.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:Yi.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 Yi.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}};pz.MongoDBInstrumentation=mte});var rGe=w(fN=>{"use strict";Object.defineProperty(fN,"__esModule",{value:!0});fN.MongodbCommandType=void 0;var o$t;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.UNKNOWN="unknown"})(o$t=fN.MongodbCommandType||(fN.MongodbCommandType={}))});var iGe=w(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.MongodbCommandType=ew.MongoDBInstrumentation=void 0;var a$t=nGe();Object.defineProperty(ew,"MongoDBInstrumentation",{enumerable:!0,get:function(){return a$t.MongoDBInstrumentation}});var c$t=rGe();Object.defineProperty(ew,"MongodbCommandType",{enumerable:!0,get:function(){return c$t.MongodbCommandType}})});function u$t(e){let t=gte(e);return JSON.stringify(t)}function gte(e){if(Array.isArray(e))return e.map(t=>gte(t));if(l$t(e)){let t={};return Object.entries(e).map(([n,r])=>[n,gte(r)]).reduce((n,r)=>(f$t(r)&&(n[r[0]]=r[1]),n),t)}return"?"}function l$t(e){return typeof e=="object"&&e!==null&&!d$t(e)}function d$t(e){let t=!1;return typeof Buffer<"u"&&(t=Buffer.isBuffer(e)),t}function f$t(e){return Array.isArray(e)}var sGe,oGe,aGe,p$t,cGe,uGe=v(()=>{sGe=Re(iGe(),1);sr();oGe="Mongo",aGe=rt(oGe,()=>new sGe.MongoDBInstrumentation({dbStatementSerializer:u$t,responseHook(e){Dr(e,"auto.db.otel.mongo")}}));p$t=(()=>({name:oGe,setupOnce(){aGe()}})),cGe=p$t});var yte=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 fGe=w(rS=>{"use strict";Object.defineProperty(rS,"__esModule",{value:!0});rS.handleCallbackResponse=rS.handlePromiseResponse=rS.getAttributesFromCollection=void 0;var lGe=(Me(),ke(Ze)),hN=Jt(),pN=yte(),hz=(Nn(),ke(Mr));function h$t(e,t,n){let r={};return t&hN.SemconvStability.OLD&&(r[pN.ATTR_DB_MONGODB_COLLECTION]=e.name,r[pN.ATTR_DB_NAME]=e.conn.name,r[pN.ATTR_DB_USER]=e.conn.user),t&hN.SemconvStability.STABLE&&(r[hz.ATTR_DB_COLLECTION_NAME]=e.name,r[hz.ATTR_DB_NAMESPACE]=e.conn.name),n&hN.SemconvStability.OLD&&(r[pN.ATTR_NET_PEER_NAME]=e.conn.host,r[pN.ATTR_NET_PEER_PORT]=e.conn.port),n&hN.SemconvStability.STABLE&&(r[hz.ATTR_SERVER_ADDRESS]=e.conn.host,r[hz.ATTR_SERVER_PORT]=e.conn.port),r}rS.getAttributesFromCollection=h$t;function dGe(e,t={}){e.recordException(t),e.setStatus({code:lGe.SpanStatusCode.ERROR,message:`${t.message} ${t.code?` +Mongoose Error Code: ${t.code}`:""}`})}function Ste(e,t,n,r=void 0){n&&(0,hN.safeExecuteInTheMiddle)(()=>n(e,{moduleVersion:r,response:t}),i=>{i&&lGe.diag.error("mongoose instrumentation: responseHook error",i)},!0)}function m$t(e,t,n,r=void 0){return e instanceof Promise?e.then(i=>(Ste(t,i,n,r),i)).catch(i=>{throw dGe(t,i),i}).finally(()=>t.end()):(Ste(t,e,n,r),t.end(),e)}rS.handlePromiseResponse=m$t;function g$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?dGe(r,c):Ste(r,u,s,o),r.end(),e(c,u)),t.apply(n,i)}rS.handleCallbackResponse=g$t});var pGe=w(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});tw.PACKAGE_NAME=tw.PACKAGE_VERSION=void 0;tw.PACKAGE_VERSION="0.60.0";tw.PACKAGE_NAME="@opentelemetry/instrumentation-mongoose"});var SGe=w(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.MongooseInstrumentation=gu._ALREADY_INSTRUMENTED=gu._STORED_PARENT_SPAN=void 0;var Eo=(Me(),ke(Ze)),y$t=pr(),bte=fGe(),fa=Jt(),hGe=pGe(),iS=yte(),s_=(Nn(),ke(Mr)),mz=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],S$t=["remove","count","findOneAndRemove",...mz],b$t=["count","findOneAndRemove",...mz],E$t=[...mz];function mGe(e){return e?e.startsWith("6.")||e.startsWith("5.")?S$t:e.startsWith("7.")?b$t:E$t:mz}function gGe(e){return e&&(e.startsWith("5.")||e.startsWith("6."))||!1}function yGe(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 Ete=class extends fa.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(hGe.PACKAGE_NAME,hGe.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,gGe(n)&&this._wrap(r.Model.prototype,"remove",this.patchOnModelMethods("remove",n)),yGe(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)),mGe(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=mGe(n);this._unwrap(r.Model.prototype,"save"),r.Model.prototype.$save=r.Model.prototype.save,gGe(n)&&this._unwrap(r.Model.prototype,"remove"),yGe(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[iS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[s_.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[iS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[s_.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[iS.ATTR_DB_STATEMENT]=f),r._dbSemconvStability&fa.SemconvStability.STABLE&&(u[s_.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[iS.ATTR_DB_STATEMENT]=g),r._dbSemconvStability&fa.SemconvStability.STABLE&&(f[s_.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[iS.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&fa.SemconvStability.STABLE&&(l[s_.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,bte.getAttributesFromCollection)(t,this._dbSemconvStability,this._netSemconvStability)};this._dbSemconvStability&fa.SemconvStability.OLD&&(o[iS.ATTR_DB_OPERATION]=r,o[iS.ATTR_DB_SYSTEM]="mongoose"),this._dbSemconvStability&fa.SemconvStability.STABLE&&(o[s_.ATTR_DB_OPERATION_NAME]=r,o[s_.ATTR_DB_SYSTEM_NAME]=iS.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,bte.handleCallbackResponse)(s,n,r,t,i,a.getConfig().responseHook,o));{let c=a._callOriginalFunction(()=>n.apply(r,i));return(0,bte.handlePromiseResponse)(c,t,a.getConfig().responseHook,o)}}_callOriginalFunction(t){return this.getConfig().suppressInternalInstrumentation?Eo.context.with((0,y$t.suppressTracing)(Eo.context.active()),t):t()}};gu.MongooseInstrumentation=Ete});var bGe=w(gz=>{"use strict";Object.defineProperty(gz,"__esModule",{value:!0});gz.MongooseInstrumentation=void 0;var _$t=SGe();Object.defineProperty(gz,"MongooseInstrumentation",{enumerable:!0,get:function(){return _$t.MongooseInstrumentation}})});var EGe,_Ge,TGe,T$t,vGe,RGe=v(()=>{EGe=Re(bGe(),1);sr();_Ge="Mongoose",TGe=rt(_Ge,()=>new EGe.MongooseInstrumentation({responseHook(e){Dr(e,"auto.db.otel.mongoose")}})),T$t=(()=>({name:_Ge,setupOnce(){TGe()}})),vGe=T$t});var AGe=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 wGe=w(mN=>{"use strict";Object.defineProperty(mN,"__esModule",{value:!0});mN.AttributeNames=void 0;var v$t;(function(e){e.MYSQL_VALUES="db.mysql.values"})(v$t=mN.AttributeNames||(mN.AttributeNames={}))});var kGe=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 R$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=R$t;function A$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}$a.getJDBCString=A$t;function w$t(e){return typeof e=="string"?e:e.sql}$a.getDbQueryText=w$t;function k$t(e,t){return _te(typeof e=="string"?t:t||e.values)}$a.getDbValues=k$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}$a.getSpanName=I$t;function _te(e){return e?`[${e.toString()}]`:""}$a.arrayStringifyHelper=_te;function x$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=x$t});var IGe=w(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.PACKAGE_NAME=nw.PACKAGE_VERSION=void 0;nw.PACKAGE_VERSION="0.60.0";nw.PACKAGE_NAME="@opentelemetry/instrumentation-mysql"});var OGe=w(yz=>{"use strict";Object.defineProperty(yz,"__esModule",{value:!0});yz.MySQLInstrumentation=void 0;var yu=(Me(),ke(Ze)),rd=Jt(),rw=(Nn(),ke(Mr)),Dm=AGe(),O$t=wGe(),o_=kGe(),xGe=IGe(),Tte=class extends rd.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(xGe.PACKAGE_NAME,xGe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,rd.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,rd.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._connectionsUsageOld=this.meter.createUpDownCounter(Dm.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 rd.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],t=>((0,rd.isWrapped)(t.createConnection)&&this._unwrap(t,"createConnection"),this._wrap(t,"createConnection",this._patchCreateConnection()),(0,rd.isWrapped)(t.createPool)&&this._unwrap(t,"createPool"),this._wrap(t,"createPool",this._patchCreatePool()),(0,rd.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,o_.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,rd.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,o_.getConfig)(t.config),f=parseInt(u,10),p=(0,o_.getDbQueryText)(i);r._dbSemconvStability&rd.SemconvStability.OLD&&(a[Dm.ATTR_DB_SYSTEM]=Dm.DB_SYSTEM_VALUE_MYSQL,a[Dm.ATTR_DB_CONNECTION_STRING]=(0,o_.getJDBCString)(c,u,l),a[Dm.ATTR_DB_NAME]=l,a[Dm.ATTR_DB_USER]=d,a[Dm.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&rd.SemconvStability.STABLE&&(a[rw.ATTR_DB_SYSTEM_NAME]=rw.DB_SYSTEM_NAME_VALUE_MYSQL,a[rw.ATTR_DB_NAMESPACE]=l,a[rw.ATTR_DB_QUERY_TEXT]=p),r._netSemconvStability&rd.SemconvStability.OLD&&(a[Dm.ATTR_NET_PEER_NAME]=c,isNaN(f)||(a[Dm.ATTR_NET_PEER_PORT]=f)),r._netSemconvStability&rd.SemconvStability.STABLE&&(a[rw.ATTR_SERVER_ADDRESS]=c,isNaN(f)||(a[rw.ATTR_SERVER_PORT]=f));let h=r.tracer.startSpan((0,o_.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(O$t.AttributeNames.MYSQL_VALUES,(0,o_.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,o_.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")})}};yz.MySQLInstrumentation=Tte});var PGe=w(Sz=>{"use strict";Object.defineProperty(Sz,"__esModule",{value:!0});Sz.MySQLInstrumentation=void 0;var P$t=OGe();Object.defineProperty(Sz,"MySQLInstrumentation",{enumerable:!0,get:function(){return P$t.MySQLInstrumentation}})});var NGe,CGe,MGe,N$t,DGe,LGe=v(()=>{NGe=Re(PGe(),1);sr();CGe="Mysql",MGe=rt(CGe,()=>new NGe.MySQLInstrumentation({})),N$t=(()=>({name:CGe,setupOnce(){MGe()}})),DGe=N$t});var vte=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 Ate=w(bz=>{"use strict";Object.defineProperty(bz,"__esModule",{value:!0});bz.addSqlCommenterComment=void 0;var Rte=(Me(),ke(Ze)),C$t=pr();function M$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 L$t(e,t){if(typeof t!="string"||t.length===0||M$t(t))return t;let n=new C$t.W3CTraceContextPropagator,r={};n.inject(Rte.trace.setSpan(Rte.ROOT_CONTEXT,e),r,Rte.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}*/`}bz.addSqlCommenterComment=L$t});var UGe=w(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.getConnectionPrototypeToInstrument=id.once=id.getSpanName=id.getQueryText=id.getConnectionAttributes=void 0;var gN=vte(),Ez=Jt(),wte=(Nn(),ke(Mr));function U$t(e,t,n){let{host:r,port:i,database:s,user:o}=F$t(e),a={};t&Ez.SemconvStability.OLD&&(a[gN.ATTR_DB_CONNECTION_STRING]=j$t(r,i,s),a[gN.ATTR_DB_NAME]=s,a[gN.ATTR_DB_USER]=o),t&Ez.SemconvStability.STABLE&&(a[wte.ATTR_DB_NAMESPACE]=s);let c=parseInt(i,10);return n&Ez.SemconvStability.OLD&&(a[gN.ATTR_NET_PEER_NAME]=r,isNaN(c)||(a[gN.ATTR_NET_PEER_PORT]=c)),n&Ez.SemconvStability.STABLE&&(a[wte.ATTR_SERVER_ADDRESS]=r,isNaN(c)||(a[wte.ATTR_SERVER_PORT]=c)),a}id.getConnectionAttributes=U$t;function F$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 j$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}function H$t(e,t,n,r=!1,i=q$t){let[s,o]=typeof e=="string"?[e,n]:[e.sql,B$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"}}id.getQueryText=H$t;function q$t(e){return e.replace(/\b\d+\b/g,"?").replace(/(["'])(?:(?=(\\?))\2.)*?\1/g,"?")}function B$t(e){return"values"in e}function z$t(e){let t=typeof e=="object"?e.sql:e,n=t?.indexOf(" ");return typeof n=="number"&&n!==-1?t?.substring(0,n):t}id.getSpanName=z$t;var G$t=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};id.once=G$t;function V$t(e){let t=e.prototype,n=Object.getPrototypeOf(t);return typeof n?.query=="function"&&typeof n?.execute=="function"?n:t}id.getConnectionPrototypeToInstrument=V$t});var FGe=w(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.PACKAGE_NAME=iw.PACKAGE_VERSION=void 0;iw.PACKAGE_VERSION="0.60.0";iw.PACKAGE_NAME="@opentelemetry/instrumentation-mysql2"});var BGe=w(_z=>{"use strict";Object.defineProperty(_z,"__esModule",{value:!0});_z.MySQL2Instrumentation=void 0;var jGe=(Me(),ke(Ze)),mf=Jt(),kte=vte(),HGe=Ate(),sw=UGe(),qGe=FGe(),Ite=(Nn(),ke(Mr)),xte=[">=1.4.2 <4"],Ote=class extends mf.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(qGe.PACKAGE_NAME,qGe.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",xte,s=>(n(s),s),()=>{},[new mf.InstrumentationNodeModuleFile("mysql2/promise.js",xte,s=>(n(s),s),()=>{}),new mf.InstrumentationNodeModuleFile("mysql2/lib/connection.js",xte,s=>{let o=(0,sw.getConnectionPrototypeToInstrument)(s);return r(o),s},s=>{if(s===void 0)return;let o=(0,sw.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,sw.getConnectionAttributes)(this.config,i._dbSemconvStability,i._netSemconvStability),p=(0,sw.getQueryText)(s,t,c,u,l);i._dbSemconvStability&mf.SemconvStability.OLD&&(f[kte.ATTR_DB_SYSTEM]=kte.DB_SYSTEM_VALUE_MYSQL,f[kte.ATTR_DB_STATEMENT]=p),i._dbSemconvStability&mf.SemconvStability.STABLE&&(f[Ite.ATTR_DB_SYSTEM_NAME]=Ite.DB_SYSTEM_NAME_VALUE_MYSQL,f[Ite.ATTR_DB_QUERY_TEXT]=p);let h=i.tracer.startSpan((0,sw.getSpanName)(s),{kind:jGe.SpanKind.CLIENT,attributes:f});!n&&i.getConfig().addSqlCommenterCommentToQueries&&(arguments[0]=s=typeof s=="string"?(0,HGe.addSqlCommenterComment)(h,s):Object.assign(s,{sql:(0,HGe.addSqlCommenterComment)(h,s.sql)}));let m=(0,sw.once)((g,y)=>{g?h.setStatus({code:jGe.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)}}};_z.MySQL2Instrumentation=Ote});var zGe=w(Tz=>{"use strict";Object.defineProperty(Tz,"__esModule",{value:!0});Tz.MySQL2Instrumentation=void 0;var W$t=BGe();Object.defineProperty(Tz,"MySQL2Instrumentation",{enumerable:!0,get:function(){return W$t.MySQL2Instrumentation}})});var GGe,VGe,WGe,K$t,KGe,YGe=v(()=>{GGe=Re(zGe(),1);sr();VGe="Mysql2",WGe=rt(VGe,()=>new GGe.MySQL2Instrumentation({responseHook(e){Dr(e,"auto.db.otel.mysql2")}})),K$t=(()=>({name:VGe,setupOnce(){WGe()}})),KGe=K$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 JGe=w(vz=>{"use strict";Object.defineProperty(vz,"__esModule",{value:!0});vz.endSpan=void 0;var Y$t=(Me(),ke(Ze)),Z$t=(e,t)=>{t&&(e.recordException(t),e.setStatus({code:Y$t.SpanStatusCode.ERROR,message:t.message})),e.end()};vz.endSpan=Z$t});var Az=w(Rz=>{"use strict";Object.defineProperty(Rz,"__esModule",{value:!0});Rz.defaultDbStatementSerializer=void 0;var J$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}],X$t=(e,t)=>{if(Array.isArray(t)&&t.length){let n=J$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};Rz.defaultDbStatementSerializer=X$t});var XGe=w(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.PACKAGE_NAME=ow.PACKAGE_VERSION=void 0;ow.PACKAGE_VERSION="0.62.0";ow.PACKAGE_NAME="@opentelemetry/instrumentation-ioredis"});var t2e=w(wz=>{"use strict";Object.defineProperty(wz,"__esModule",{value:!0});wz.IORedisInstrumentation=void 0;var sS=(Me(),ke(Ze)),Su=Jt(),oS=(Nn(),ke(Mr)),bu=ZGe(),QGe=Jt(),yN=JGe(),Q$t=Az(),$Ge=XGe(),e2e={requireParentSpan:!0},Pte=class extends Su.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super($Ge.PACKAGE_NAME,$Ge.PACKAGE_VERSION,{...e2e,...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({...e2e,...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||Q$t.defaultDbStatementSerializer,a=sS.trace.getSpan(sS.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[oS.ATTR_DB_SYSTEM_NAME]=bu.DB_SYSTEM_NAME_VALUE_REDIS,c[oS.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[oS.ATTR_SERVER_ADDRESS]=u,c[oS.ATTR_SERVER_PORT]=l);let f=r.tracer.startSpan(i.name,{kind:sS.SpanKind.CLIENT,attributes:c}),{requestHook:p}=s;p&&(0,QGe.safeExecuteInTheMiddle)(()=>p(f,{moduleVersion:n,cmdName:i.name,cmdArgs:i.args}),h=>{h&&sS.diag.error("ioredis instrumentation: request hook failed",h)},!0);try{let h=t.apply(this,arguments),m=i.resolve;i.resolve=function(y){(0,QGe.safeExecuteInTheMiddle)(()=>s.responseHook?.(f,i.name,i.args,y),b=>{b&&sS.diag.error("ioredis instrumentation: response hook failed",b)},!0),(0,yN.endSpan)(f,null),m(y)};let g=i.reject;return i.reject=function(y){(0,yN.endSpan)(f,y),g(y)},h}catch(h){throw(0,yN.endSpan)(f,h),h}}}_traceConnection(t){let n=this;return function(){let r=sS.trace.getSpan(sS.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[oS.ATTR_DB_SYSTEM_NAME]=bu.DB_SYSTEM_NAME_VALUE_REDIS,i[oS.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[oS.ATTR_SERVER_ADDRESS]=s,i[oS.ATTR_SERVER_PORT]=o);let a=n.tracer.startSpan("connect",{kind:sS.SpanKind.CLIENT,attributes:i});try{let c=t.apply(this,arguments);return(0,yN.endSpan)(a,null),c}catch(c){throw(0,yN.endSpan)(a,c),c}}}};wz.IORedisInstrumentation=Pte});var n2e=w(kz=>{"use strict";Object.defineProperty(kz,"__esModule",{value:!0});kz.IORedisInstrumentation=void 0;var $$t=t2e();Object.defineProperty(kz,"IORedisInstrumentation",{enumerable:!0,get:function(){return $$t.IORedisInstrumentation}})});var Iz=w(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});aw.PACKAGE_NAME=aw.PACKAGE_VERSION=void 0;aw.PACKAGE_VERSION="0.62.0";aw.PACKAGE_NAME="@opentelemetry/instrumentation-redis"});var r2e=w(aS=>{"use strict";Object.defineProperty(aS,"__esModule",{value:!0});aS.getTracedCreateStreamTrace=aS.getTracedCreateClient=aS.endSpan=void 0;var SN=(Me(),ke(Ze)),een=(e,t)=>{t&&e.setStatus({code:SN.SpanStatusCode.ERROR,message:t.message}),e.end()};aS.endSpan=een;var ten=e=>function(){let n=e.apply(this,arguments);return SN.context.bind(SN.context.active(),n)};aS.getTracedCreateClient=ten;var nen=e=>function(){return Object.prototype.hasOwnProperty.call(this,"stream")||Object.defineProperty(this,"stream",{get(){return this._patched_redis_stream},set(n){SN.context.bind(SN.context.active(),n),this._patched_redis_stream=n}}),e.apply(this,arguments)};aS.getTracedCreateStreamTrace=nen});var xz=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 s2e=w(Pz=>{"use strict";Object.defineProperty(Pz,"__esModule",{value:!0});Pz.RedisInstrumentationV2_V3=void 0;var ml=Jt(),Oz=r2e(),i2e=Iz(),bN=(Me(),ke(Ze)),EN=(Nn(),ke(Mr)),a_=xz(),ren=Az(),Nte=class e extends ml.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(i2e.PACKAGE_NAME,i2e.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=bN.trace.getSpan(bN.context.active())===void 0;if(o.requireParentSpan===!0&&a)return r.apply(this,arguments);let c=o?.dbStatementSerializer||ren.defaultDbStatementSerializer,u={};t._semconvStability&ml.SemconvStability.OLD&&Object.assign(u,{[a_.ATTR_DB_SYSTEM]:a_.DB_SYSTEM_VALUE_REDIS,[a_.ATTR_DB_STATEMENT]:c(s.command,s.args)}),t._semconvStability&ml.SemconvStability.STABLE&&Object.assign(u,{[EN.ATTR_DB_SYSTEM_NAME]:a_.DB_SYSTEM_NAME_VALUE_REDIS,[EN.ATTR_DB_OPERATION_NAME]:s.command,[EN.ATTR_DB_QUERY_TEXT]:c(s.command,s.args)});let l=t.tracer.startSpan(`${e.COMPONENT}-${s.command}`,{kind:bN.SpanKind.CLIENT,attributes:u});if(this.connection_options){let f={};t._semconvStability&ml.SemconvStability.OLD&&Object.assign(f,{[a_.ATTR_NET_PEER_NAME]:this.connection_options.host,[a_.ATTR_NET_PEER_PORT]:this.connection_options.port}),t._semconvStability&ml.SemconvStability.STABLE&&Object.assign(f,{[EN.ATTR_SERVER_ADDRESS]:this.connection_options.host,[EN.ATTR_SERVER_PORT]:this.connection_options.port}),l.setAttributes(f)}this.address&&t._semconvStability&ml.SemconvStability.OLD&&l.setAttribute(a_.ATTR_DB_CONNECTION_STRING,`redis://${this.address}`);let d=arguments[0].callback;if(d){let f=bN.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,Oz.endSpan)(l,h),bN.context.with(f,d,this,...arguments)}}try{return r.apply(this,arguments)}catch(f){throw(0,Oz.endSpan)(l,f),f}}}}_getPatchCreateClient(){return function(n){return(0,Oz.getTracedCreateClient)(n)}}_getPatchCreateStream(){return function(n){return(0,Oz.getTracedCreateStreamTrace)(n)}}};Pz.RedisInstrumentationV2_V3=Nte});var a2e=w(Nz=>{"use strict";Object.defineProperty(Nz,"__esModule",{value:!0});Nz.getClientAttributes=void 0;var Cte=(Nn(),ke(Mr)),cw=xz(),o2e=Jt();function ien(e,t,n){let r={};return n&o2e.SemconvStability.OLD&&Object.assign(r,{[cw.ATTR_DB_SYSTEM]:cw.DB_SYSTEM_VALUE_REDIS,[cw.ATTR_NET_PEER_NAME]:t?.socket?.host,[cw.ATTR_NET_PEER_PORT]:t?.socket?.port,[cw.ATTR_DB_CONNECTION_STRING]:sen(e,t?.url)}),n&o2e.SemconvStability.STABLE&&Object.assign(r,{[Cte.ATTR_DB_SYSTEM_NAME]:cw.DB_SYSTEM_NAME_VALUE_REDIS,[Cte.ATTR_SERVER_ADDRESS]:t?.socket?.host,[Cte.ATTR_SERVER_PORT]:t?.socket?.port}),r}Nz.getClientAttributes=ien;function sen(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 d2e=w(Cz=>{"use strict";Object.defineProperty(Cz,"__esModule",{value:!0});Cz.RedisInstrumentationV4_V5=void 0;var sd=(Me(),ke(Ze)),pi=Jt(),c2e=a2e(),oen=Az(),u2e=Iz(),Mte=(Nn(),ke(Mr)),aen=xz(),_N=Symbol("opentelemetry.instrumentation.redis.open_spans"),l2e=Symbol("opentelemetry.instrumentation.redis.multi_command_options"),Dte=class e extends pi.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(u2e.PACKAGE_NAME,u2e.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[_N];return n._endSpansWithRedisReplies(c,a,t),a}).catch(a=>{let c=this[_N];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[l2e]=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,c2e.getClientAttributes)(t._diag,s,t._semconvStability),a=t.tracer.startSpan(`${e.COMPONENT}-connect`,{kind:sd.SpanKind.CLIENT,attributes:o});return sd.context.with(sd.trace.setSpan(sd.context.active(),a),()=>r.apply(this)).then(u=>(a.end(),u)).catch(u=>(a.recordException(u),a.setStatus({code:sd.SpanStatusCode.ERROR,message:u.message}),a.end(),Promise.reject(u)))}}}_traceClientCommand(t,n,r,i){if(sd.trace.getSpan(sd.context.active())===void 0&&this.getConfig().requireParentSpan)return t.apply(n,r);let o=n.options||n[l2e],a=i[0],c=i.slice(1),u=this.getConfig().dbStatementSerializer||oen.defaultDbStatementSerializer,l=(0,c2e.getClientAttributes)(this._diag,o,this._semconvStability);this._semconvStability&pi.SemconvStability.STABLE&&(l[Mte.ATTR_DB_OPERATION_NAME]=a);try{let p=u(a,c);p!=null&&(this._semconvStability&pi.SemconvStability.OLD&&(l[aen.ATTR_DB_STATEMENT]=p),this._semconvStability&pi.SemconvStability.STABLE&&(l[Mte.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:sd.SpanKind.CLIENT,attributes:l}),f=sd.context.with(sd.trace.setSpan(sd.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[_N]=p[_N]||[],p[_N].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(Mz,"__esModule",{value:!0});Mz.RedisInstrumentation=void 0;var cen=Jt(),f2e=Iz(),uen=s2e(),len=d2e(),p2e={requireParentSpan:!1},Lte=class extends cen.InstrumentationBase{instrumentationV2_V3;instrumentationV4_V5;initialized=!1;constructor(t={}){let n={...p2e,...t};super(f2e.PACKAGE_NAME,f2e.PACKAGE_VERSION,n),this.instrumentationV2_V3=new uen.RedisInstrumentationV2_V3(this.getConfig()),this.instrumentationV4_V5=new len.RedisInstrumentationV4_V5(this.getConfig()),this.initialized=!0}setConfig(t={}){let n={...p2e,...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())}};Mz.RedisInstrumentation=Lte});var m2e=w(Dz=>{"use strict";Object.defineProperty(Dz,"__esModule",{value:!0});Dz.RedisInstrumentation=void 0;var den=h2e();Object.defineProperty(Dz,"RedisInstrumentation",{enumerable:!0,get:function(){return den.RedisInstrumentation}})});function TN(e,t){return e.includes(t.toLowerCase())}function Fte(e){return TN(Ute,e)?"cache.get":TN(pen,e)?"cache.put":void 0}function hen(e,t){return t.some(n=>e.startsWith(n))}function y2e(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)?g2e(i.map(s=>n(s))):[""],r=t[0];return TN(fen,e)&&r!=null?n(r):g2e(t.map(i=>n(i)))}catch{return}}function S2e(e,t,n){if(!Fte(e))return!1;for(let r of t)if(hen(r,n))return!0;return!1}function b2e(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 g2e(e){let t=[],n=r=>{r.forEach(i=>{Array.isArray(i)?n(i):t.push(i)})};return n(e),t}var fen,Ute,pen,E2e=v(()=>{fen=["get","set","setex"],Ute=["get","mget"],pen=["set","setex"]});var _2e,T2e,Lz,vN,v2e,men,gen,R2e,yen,A2e,w2e=v(()=>{_2e=Re(n2e(),1),T2e=Re(m2e(),1);st();sr();E2e();Lz="Redis",vN={},v2e=(e,t,n,r)=>{e.setAttribute(At,"auto.db.otel.redis");let i=y2e(t,n),s=Fte(t);if(!i||!s||!vN.cachePrefixes||!S2e(t,i,vN.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=b2e(r);c&&e.setAttribute(aX,c),TN(Ute,t)&&c!==void 0&&e.setAttribute(sX,c>0),e.setAttributes({[zt]:s,[oX]:i});let u=i.join(", ");e.updateName(vN.maxCacheKeyLength?_y(u,vN.maxCacheKeyLength):u)},men=rt(`${Lz}.IORedis`,()=>new _2e.IORedisInstrumentation({responseHook:v2e})),gen=rt(`${Lz}.Redis`,()=>new T2e.RedisInstrumentation({responseHook:v2e})),R2e=Object.assign(()=>{men(),gen()},{id:Lz}),yen=((e={})=>({name:Lz,setupOnce(){vN=e,R2e()}})),A2e=yen});var k2e=w(Uz=>{"use strict";Object.defineProperty(Uz,"__esModule",{value:!0});Uz.EVENT_LISTENERS_SET=void 0;Uz.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.pg.eventListenersSet")});var jte=w(RN=>{"use strict";Object.defineProperty(RN,"__esModule",{value:!0});RN.AttributeNames=void 0;var Sen;(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"})(Sen=RN.AttributeNames||(RN.AttributeNames={}))});var Hte=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 qte=w(AN=>{"use strict";Object.defineProperty(AN,"__esModule",{value:!0});AN.SpanNames=void 0;var ben;(function(e){e.QUERY_PREFIX="pg.query",e.CONNECT="pg.connect",e.POOL_CONNECT="pg-pool.connect"})(ben=AN.SpanNames||(AN.SpanNames={}))});var M2e=w(qn=>{"use strict";Object.defineProperty(qn,"__esModule",{value:!0});qn.sanitizedErrorMessage=qn.isObjectWithTextString=qn.getErrorMessage=qn.patchClientConnectCallback=qn.patchCallbackPGPool=qn.updateCounter=qn.getPoolName=qn.patchCallback=qn.handleExecutionResult=qn.handleConfigQuery=qn.shouldSkipInstrumentation=qn.getSemanticAttributesFromPoolConnection=qn.getSemanticAttributesFromConnection=qn.getConnectionString=qn.parseAndMaskConnectionString=qn.parseNormalizedOperationName=qn.getQuerySpanName=void 0;var cS=(Me(),ke(Ze)),Fz=jte(),od=(Nn(),ke(Mr)),ds=Hte(),c_=Jt(),I2e=qte();function x2e(e,t){if(!t)return I2e.SpanNames.QUERY_PREFIX;let n=typeof t.name=="string"&&t.name?t.name:O2e(t.text);return`${I2e.SpanNames.QUERY_PREFIX}:${n}${e?` ${e}`:""}`}qn.getQuerySpanName=x2e;function O2e(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}qn.parseNormalizedOperationName=O2e;function P2e(e){try{let t=new URL(e);return t.username="",t.password="",t.toString()}catch{return"postgresql://localhost:5432/"}}qn.parseAndMaskConnectionString=P2e;function Bte(e){if("connectionString"in e&&e.connectionString)return P2e(e.connectionString);let t=e.host||"localhost",n=e.port||5432,r=e.database||"";return`postgresql://${t}:${n}/${r}`}qn.getConnectionString=Bte;function jz(e){if(Number.isInteger(e))return e}function N2e(e,t){let n={};return t&c_.SemconvStability.OLD&&(n={...n,[ds.ATTR_DB_SYSTEM]:ds.DB_SYSTEM_VALUE_POSTGRESQL,[ds.ATTR_DB_NAME]:e.database,[ds.ATTR_DB_CONNECTION_STRING]:Bte(e),[ds.ATTR_DB_USER]:e.user,[ds.ATTR_NET_PEER_NAME]:e.host,[ds.ATTR_NET_PEER_PORT]:jz(e.port)}),t&c_.SemconvStability.STABLE&&(n={...n,[od.ATTR_DB_SYSTEM_NAME]:od.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[od.ATTR_DB_NAMESPACE]:e.namespace,[od.ATTR_SERVER_ADDRESS]:e.host,[od.ATTR_SERVER_PORT]:jz(e.port)}),n}qn.getSemanticAttributesFromConnection=N2e;function Een(e,t){let n;try{n=e.connectionString?new URL(e.connectionString):void 0}catch{n=void 0}let r={[Fz.AttributeNames.IDLE_TIMEOUT_MILLIS]:e.idleTimeoutMillis,[Fz.AttributeNames.MAX_CLIENT]:e.maxClient};return t&c_.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]:Bte(e),[ds.ATTR_NET_PEER_NAME]:n?.hostname??e.host,[ds.ATTR_NET_PEER_PORT]:Number(n?.port)||jz(e.port),[ds.ATTR_DB_USER]:n?.username??e.user}),t&c_.SemconvStability.STABLE&&(r={...r,[od.ATTR_DB_SYSTEM_NAME]:od.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[od.ATTR_DB_NAMESPACE]:e.namespace,[od.ATTR_SERVER_ADDRESS]:n?.hostname??e.host,[od.ATTR_SERVER_PORT]:Number(n?.port)||jz(e.port)}),r}qn.getSemanticAttributesFromPoolConnection=Een;function _en(e){return e.requireParentSpan===!0&&cS.trace.getSpan(cS.context.active())===void 0}qn.shouldSkipInstrumentation=_en;function Ten(e,t,n,r){let{connectionParameters:i}=this,s=i.database,o=x2e(s,r),a=e.startSpan(o,{kind:cS.SpanKind.CLIENT,attributes:N2e(i,n)});if(!r)return a;if(r.text&&(n&c_.SemconvStability.OLD&&a.setAttribute(ds.ATTR_DB_STATEMENT,r.text),n&c_.SemconvStability.STABLE&&a.setAttribute(od.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(Fz.AttributeNames.PG_VALUES,c)}catch(c){cS.diag.error("failed to stringify ",r.values,c)}return typeof r.name=="string"&&a.setAttribute(Fz.AttributeNames.PG_PLAN,r.name),a}qn.handleConfigQuery=Ten;function C2e(e,t,n){typeof e.responseHook=="function"&&(0,c_.safeExecuteInTheMiddle)(()=>{e.responseHook(t,{data:n})},r=>{r&&cS.diag.error("Error running response hook",r)},!0)}qn.handleExecutionResult=C2e;function ven(e,t,n,r,i){return function(o,a){o?(Object.prototype.hasOwnProperty.call(o,"code")&&(r[od.ATTR_ERROR_TYPE]=o.code),o instanceof Error&&t.recordException(Hz(o)),t.setStatus({code:cS.SpanStatusCode.ERROR,message:o.message})):C2e(e,t,a),i(),t.end(),n.call(this,o,a)}}qn.patchCallback=ven;function Ren(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()}qn.getPoolName=Ren;function Aen(e,t,n,r,i){let s=t.totalCount,o=t.waitingCount,a=t.idleCount,c=s-a;return n.add(c-i.used,{[ds.ATTR_DB_CLIENT_CONNECTION_STATE]:ds.DB_CLIENT_CONNECTION_STATE_VALUE_USED,[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),n.add(a-i.idle,{[ds.ATTR_DB_CLIENT_CONNECTION_STATE]:ds.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE,[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),r.add(o-i.pending,{[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),{used:c,idle:a,pending:o}}qn.updateCounter=Aen;function wen(e,t){return function(r,i,s){r&&(r instanceof Error&&e.recordException(Hz(r)),e.setStatus({code:cS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.call(this,r,i,s)}}qn.patchCallbackPGPool=wen;function ken(e,t){return function(r){r&&(r instanceof Error&&e.recordException(Hz(r)),e.setStatus({code:cS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.apply(this,arguments)}}qn.patchClientConnectCallback=ken;function Ien(e){return typeof e=="object"&&e!==null&&"message"in e?String(e.message):void 0}qn.getErrorMessage=Ien;function xen(e){return typeof e=="object"&&typeof e?.text=="string"}qn.isObjectWithTextString=xen;function Hz(e){let t=e?.name??"PostgreSQLError",n=e?.code??"UNKNOWN";return`PostgreSQL error of type '${t}' occurred (code: ${n})`}qn.sanitizedErrorMessage=Hz});var D2e=w(uw=>{"use strict";Object.defineProperty(uw,"__esModule",{value:!0});uw.PACKAGE_NAME=uw.PACKAGE_VERSION=void 0;uw.PACKAGE_VERSION="0.66.0";uw.PACKAGE_NAME="@opentelemetry/instrumentation-pg"});var q2e=w(Bz=>{"use strict";Object.defineProperty(Bz,"__esModule",{value:!0});Bz.PgInstrumentation=void 0;var Uc=Jt(),Ur=(Me(),ke(Ze)),L2e=k2e(),Zi=M2e(),U2e=Ate(),F2e=D2e(),j2e=qte(),qz=pr(),gf=(Nn(),ke(Mr)),wN=Hte();function lw(e){return e[Symbol.toStringTag]==="Module"?e.default:e}var zte=class extends Uc.InstrumentationBase{_connectionsCounter={used:0,idle:0,pending:0};_semconvStability;constructor(t={}){super(F2e.PACKAGE_NAME,F2e.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(wN.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(wN.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=lw(a);return this._patchPgClient(c.Client),a},a=>{let c=lw(a);return this._unpatchPgClient(c.Client),a},[i,r]),o=new Uc.InstrumentationNodeModuleDefinition("pg-pool",n,a=>{let c=lw(a);return(0,Uc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect"),this._wrap(c.prototype,"connect",this._getPoolConnectPatch()),c},a=>{let c=lw(a);(0,Uc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect")});return[s,o]}_patchPgClient(t){if(!t)return;let n=lw(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=lw(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(Zi.shouldSkipInstrumentation(s)||s.ignoreConnectSpans)return n.call(this,i);let o=t.tracer.startSpan(j2e.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 H2e(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(wN.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,qz.hrTimeToMilliseconds)((0,qz.hrTimeDuration)(n,(0,qz.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,qz.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={[wN.ATTR_DB_SYSTEM]:wN.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]=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,U2e.addSqlCommenterComment)(p,o):c&&!("name"in o)&&(i[0]={...o,text:(0,U2e.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]=Zi.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=Zi.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(Zi.sanitizedErrorMessage(g)),p.setStatus({code:Ur.SpanStatusCode.ERROR,message:Zi.getErrorMessage(g)}),p.end(),g}return m instanceof Promise?m.then(g=>new Promise(y=>{Zi.handleExecutionResult(t.getConfig(),p,g),d(),p.end(),y(g)})).catch(g=>new Promise((y,b)=>{g instanceof Error&&p.recordException(Zi.sanitizedErrorMessage(g)),p.setStatus({code:Ur.SpanStatusCode.ERROR,message:g.message}),d(),p.end(),b(g)})):m})}_setPoolConnectEventListeners(t){if(t[L2e.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[L2e.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(j2e.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 H2e(o,a)}}};Bz.PgInstrumentation=zte;function H2e(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 B2e=w(dw=>{"use strict";Object.defineProperty(dw,"__esModule",{value:!0});dw.AttributeNames=dw.PgInstrumentation=void 0;var Oen=q2e();Object.defineProperty(dw,"PgInstrumentation",{enumerable:!0,get:function(){return Oen.PgInstrumentation}});var Pen=jte();Object.defineProperty(dw,"AttributeNames",{enumerable:!0,get:function(){return Pen.AttributeNames}})});var z2e,G2e,V2e,Nen,W2e,K2e=v(()=>{z2e=Re(B2e(),1);sr();G2e="Postgres",V2e=rt(G2e,z2e.PgInstrumentation,e=>({requireParentSpan:!0,requestHook(t){Dr(t,"auto.db.otel.postgres")},ignoreConnectSpans:e?.ignoreConnectSpans??!1})),Nen=(e=>({name:G2e,setupOnce(){V2e(e)}})),W2e=Nen});var uS,Vte,Y2e,Cen,Men,Z2e,Gte,Den,J2e,X2e=v(()=>{Me();uS=Re(Jt(),1);Nn();st();sr();QE();Vte="PostgresJs",Y2e=[">=3.0.0 <4"],Cen=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,Men=Symbol.for("sentry.query.from.instrumented.sql"),Z2e=rt(Vte,e=>new Gte({requireParentSpan:e?.requireParentSpan??!0,requestHook:e?.requestHook})),Gte=class extends uS.InstrumentationBase{constructor(t){super("sentry-postgres-js",Cn,t)}init(){let t=new uS.InstrumentationNodeModuleDefinition("postgres",Y2e,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 uS.InstrumentationNodeModuleFile(`postgres/${n}/query.js`,Y2e,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 rQ(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:(_P(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(yR,r);return}let i=n?.match(Cen);i?.[1]&&t.setAttribute(yR,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({[SE]:"postgres",[T7]:o});let c=n.getConfig(),{requestHook:u}=c;u&&(0,uS.safeExecuteInTheMiddle)(()=>u(a,o,void 0),f=>{f&&(a.setAttribute("sentry.hook.error","requestHook failed"),So&&Z.error(`Error in requestHook for ${Vte} 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(v7,h?.[0]?.code||"unknown"),a.setAttribute(R7,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}},Den=(e=>({name:Vte,setupOnce(){Z2e(e)}})),J2e=Den});var Q2e=w(kN=>{"use strict";Object.defineProperty(kN,"__esModule",{value:!0});kN.SeverityNumber=void 0;var Len;(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"})(Len=kN.SeverityNumber||(kN.SeverityNumber={}))});var Gz=w(fw=>{"use strict";Object.defineProperty(fw,"__esModule",{value:!0});fw.NOOP_LOGGER=fw.NoopLogger=void 0;var zz=class{emit(t){}};fw.NoopLogger=zz;fw.NOOP_LOGGER=new zz});var Wz=w(pw=>{"use strict";Object.defineProperty(pw,"__esModule",{value:!0});pw.NOOP_LOGGER_PROVIDER=pw.NoopLoggerProvider=void 0;var Uen=Gz(),Vz=class{getLogger(t,n,r){return new Uen.NoopLogger}};pw.NoopLoggerProvider=Vz;pw.NOOP_LOGGER_PROVIDER=new Vz});var Kte=w(Kz=>{"use strict";Object.defineProperty(Kz,"__esModule",{value:!0});Kz.ProxyLogger=void 0;var Fen=Gz(),Wte=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):Fen.NOOP_LOGGER}};Kz.ProxyLogger=Wte});var Zte=w(Yz=>{"use strict";Object.defineProperty(Yz,"__esModule",{value:!0});Yz.ProxyLoggerProvider=void 0;var jen=Wz(),Hen=Kte(),Yte=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new Hen.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:jen.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)}};Yz.ProxyLoggerProvider=Yte});var $2e=w(Zz=>{"use strict";Object.defineProperty(Zz,"__esModule",{value:!0});Zz._globalThis=void 0;Zz._globalThis=typeof globalThis=="object"?globalThis:global});var eVe=w(Jz=>{"use strict";Object.defineProperty(Jz,"__esModule",{value:!0});Jz._globalThis=void 0;var qen=$2e();Object.defineProperty(Jz,"_globalThis",{enumerable:!0,get:function(){return qen._globalThis}})});var tVe=w(Xz=>{"use strict";Object.defineProperty(Xz,"__esModule",{value:!0});Xz._globalThis=void 0;var Ben=eVe();Object.defineProperty(Xz,"_globalThis",{enumerable:!0,get:function(){return Ben._globalThis}})});var nVe=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 zen=tVe();$p.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");$p._global=zen._globalThis;function Gen(e,t,n){return r=>r===e?t:n}$p.makeGetter=Gen;$p.API_BACKWARDS_COMPATIBILITY_VERSION=1});var iVe=w(Qz=>{"use strict";Object.defineProperty(Qz,"__esModule",{value:!0});Qz.LogsAPI=void 0;var ad=nVe(),Ven=Wz(),rVe=Zte(),Jte=class e{constructor(){this._proxyLoggerProvider=new rVe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return ad._global[ad.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(ad._global[ad.GLOBAL_LOGS_API_KEY]=(0,ad.makeGetter)(ad.API_BACKWARDS_COMPATIBILITY_VERSION,t,Ven.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=ad._global[ad.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(ad._global,ad.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete ad._global[ad.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new rVe.ProxyLoggerProvider}};Qz.LogsAPI=Jte});var Xte=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 Wen=Q2e();Object.defineProperty(Bo,"SeverityNumber",{enumerable:!0,get:function(){return Wen.SeverityNumber}});var sVe=Gz();Object.defineProperty(Bo,"NOOP_LOGGER",{enumerable:!0,get:function(){return sVe.NOOP_LOGGER}});Object.defineProperty(Bo,"NoopLogger",{enumerable:!0,get:function(){return sVe.NoopLogger}});var oVe=Wz();Object.defineProperty(Bo,"NOOP_LOGGER_PROVIDER",{enumerable:!0,get:function(){return oVe.NOOP_LOGGER_PROVIDER}});Object.defineProperty(Bo,"NoopLoggerProvider",{enumerable:!0,get:function(){return oVe.NoopLoggerProvider}});var Ken=Kte();Object.defineProperty(Bo,"ProxyLogger",{enumerable:!0,get:function(){return Ken.ProxyLogger}});var Yen=Zte();Object.defineProperty(Bo,"ProxyLoggerProvider",{enumerable:!0,get:function(){return Yen.ProxyLoggerProvider}});var Zen=iVe();Bo.logs=Zen.LogsAPI.getInstance()});var aVe=w(hw=>{"use strict";Object.defineProperty(hw,"__esModule",{value:!0});hw.disableInstrumentations=hw.enableInstrumentations=void 0;function Jen(e,t,n,r){for(let i=0,s=e.length;it.disable())}hw.disableInstrumentations=Xen});var lVe=w($z=>{"use strict";Object.defineProperty($z,"__esModule",{value:!0});$z.registerInstrumentations=void 0;var cVe=(Me(),ke(Ze)),Qen=Xte(),uVe=aVe();function $en(e){let t=e.tracerProvider||cVe.trace.getTracerProvider(),n=e.meterProvider||cVe.metrics.getMeterProvider(),r=e.loggerProvider||Qen.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,uVe.enableInstrumentations)(i,t,n,r),()=>{(0,uVe.disableInstrumentations)(i)}}$z.registerInstrumentations=$en});var bVe=w(eG=>{"use strict";Object.defineProperty(eG,"__esModule",{value:!0});eG.satisfies=void 0;var tne=(Me(),ke(Ze)),mVe=/^(?: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-]+)*))?$/,etn=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,ttn={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function ntn(e,t,n){if(!rtn(e))return tne.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=atn(e);if(!r)return!1;let i=[],s=gVe(r,t,i,n);return s&&!n?.includePrerelease?stn(r,i):s}eG.satisfies=ntn;function rtn(e){return typeof e=="string"&&mVe.test(e)}function gVe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Qte(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(!Qte(e,s,n,r))return!1;return!0}return Qte(e,t,n,r)}function Qte(e,t,n,r){if(t=otn(t,r),t.includes(" "))return gVe(e,t,n,r);{let i=ctn(t);return n.push(i),itn(e,i)}}function itn(e,t){if(t.invalid)return!1;if(!t.version||ene(t.version))return!0;let n=fVe(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=fVe(r,i)}return ttn[t.op]?.includes(n)}function stn(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function otn(e,t){return e=e.trim(),e=wtn(e,t),e=Atn(e),e=ktn(e,t),e=e.trim(),e}function Fc(e){return!e||e.toLowerCase()==="x"||e==="*"}function atn(e){let t=e.match(mVe);if(!t){tne.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 ctn(e){if(!e)return{};let t=e.match(etn);if(!t)return tne.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 ene(e){return e==="*"||e==="x"||e==="X"}function dVe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function utn(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 ltn(e,t){if(ene(e)||ene(t))return 0;let[n,r]=utn(dVe(e),dVe(t));return n>r?1:n)?=?)",pVe=`(?:${SVe}|${dtn})`,ptn=`(?:-(${pVe}(?:\\.${pVe})*))`,hVe=`${yVe}+`,htn=`(?:\\+(${hVe}(?:\\.${hVe})*))`,$te=`${SVe}|x|X|\\*`,IN=`[v=\\s]*(${$te})(?:\\.(${$te})(?:\\.(${$te})(?:${ptn})?${htn}?)?)?`,mtn=`^${ftn}\\s*${IN}$`,gtn=new RegExp(mtn),ytn=`^\\s*(${IN})\\s+-\\s+(${IN})\\s*$`,Stn=new RegExp(ytn),btn="(?:~>?)",Etn=`^${btn}${IN}$`,_tn=new RegExp(Etn),Ttn="(?:\\^)",vtn=`^${Ttn}${IN}$`,Rtn=new RegExp(vtn);function Atn(e){let t=_tn;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 wtn(e,t){let n=Rtn,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 ktn(e,t){let n=gtn;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 Itn(e,t){let n=Stn;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 nne=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 xN(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var xtn=(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 xN(i,"__original",r),xN(i,"__unwrap",()=>{e[t]===i&&xN(e,t,r)}),xN(i,"__wrapped",!0),xN(e,t,i),i};pa.wrap=xtn;var Otn=(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=Otn;var Ptn=(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=Ptn;var Ntn=(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=Ntn;function ON(e){e&&e.logger&&(typeof e.logger!="function"?jc("new logger isn't a function, not replacing"):jc=e.logger)}pa.default=ON;ON.wrap=pa.wrap;ON.massWrap=pa.massWrap;ON.unwrap=pa.unwrap;ON.massUnwrap=pa.massUnwrap});var EVe=w(nG=>{"use strict";Object.defineProperty(nG,"__esModule",{value:!0});nG.InstrumentationAbstract=void 0;var rne=(Me(),ke(Ze)),Ctn=Xte(),tG=nne(),ine=class{instrumentationName;instrumentationVersion;_config={};_tracer;_meter;_logger;_diag;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=rne.diag.createComponentLogger({namespace:t}),this._tracer=rne.trace.getTracer(t,n),this._meter=rne.metrics.getMeter(t,n),this._logger=Ctn.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=tG.wrap;_unwrap=tG.unwrap;_massWrap=tG.massWrap;_massUnwrap=tG.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)}}};nG.InstrumentationAbstract=ine});var _Ve=w(lS=>{"use strict";Object.defineProperty(lS,"__esModule",{value:!0});lS.ModuleNameTrie=lS.ModuleNameSeparator=void 0;lS.ModuleNameSeparator="/";var rG=class{hooks=[];children=new Map},sne=class{_trie=new rG;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(lS.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new rG,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(lS.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))}};lS.ModuleNameTrie=sne});var vVe=w(iG=>{"use strict";Object.defineProperty(iG,"__esModule",{value:!0});iG.RequireInTheMiddleSingleton=void 0;var Mtn=RE(),TVe=Y("path"),one=_Ve(),Dtn=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),ane=class e{_moduleNameTrie=new one.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new Mtn.Hook(null,{internals:!0},(t,n,r)=>{let i=Ltn(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}};iG.RequireInTheMiddleSingleton=ane;function Ltn(e){return TVe.sep!==one.ModuleNameSeparator?e.split(TVe.sep).join(one.ModuleNameSeparator):e}});var IVe=w(PN=>{var RVe=[],cne=new WeakMap,AVe=new WeakMap,wVe=new Map,kVe=[],Utn={set(e,t,n){let r=cne.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=AVe.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=cne.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function Ftn(e,t,n,r,i){wVe.set(e,i),cne.set(t,n),AVe.set(t,r);let s=new Proxy(t,Utn);RVe.forEach(o=>o(e,s,i)),kVe.push([e,s,i])}PN.register=Ftn;PN.importHooks=RVe;PN.specifiers=wVe;PN.toHook=kVe});var NVe=w((h1r,gw)=>{var xVe=Y("path"),jtn=xO(),{fileURLToPath:Htn}=Y("url"),{MessageChannel:qtn}=Y("worker_threads"),{isBuiltin:une}=Y("module");une||(une=()=>!0);var{importHooks:lne,specifiers:Btn,toHook:ztn}=IVe();function OVe(e){lne.push(e),ztn.forEach(([t,n,r])=>e(t,n,r))}function PVe(e){let t=lne.indexOf(e);t>-1&&lne.splice(t,1)}function mw(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var dne;function Gtn(){let{port1:e,port2:t}=new qtn,n=0,r;dne=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 NN(e,t,n){if(!(this instanceof NN))return new NN(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;dne&&Array.isArray(e)&&dne(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);une(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=Htn(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=jtn(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)mw(n,s,u,void 0);else if(d===i){if(!l)mw(n,s,i,l);else if(l.endsWith(Btn.get(a)))mw(n,s,i,l);else if(r){let f=i+xVe.sep+xVe.relative(l,u);mw(n,s,f,l)}}else d===o&&mw(n,s,o,l);else mw(n,s,i,l)},OVe(this._iitmHook)}NN.prototype.unhook=function(){PVe(this._iitmHook)};gw.exports=NN;gw.exports.Hook=NN;gw.exports.addHook=OVe;gw.exports.removeHook=PVe;gw.exports.createAddHookMessageChannel=Gtn});var fne=w(dS=>{"use strict";Object.defineProperty(dS,"__esModule",{value:!0});dS.isWrapped=dS.safeExecuteInTheMiddleAsync=dS.safeExecuteInTheMiddle=void 0;function Vtn(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}dS.safeExecuteInTheMiddle=Vtn;async function Wtn(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}}dS.safeExecuteInTheMiddleAsync=Wtn;function Ktn(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}dS.isWrapped=Ktn});var DVe=w(sG=>{"use strict";Object.defineProperty(sG,"__esModule",{value:!0});sG.InstrumentationBase=void 0;var CN=Y("path"),CVe=Y("util"),Ytn=bVe(),pne=nne(),Ztn=EVe(),Jtn=vVe(),Xtn=NVe(),MN=(Me(),ke(Ze)),Qtn=RE(),$tn=Y("fs"),enn=fne(),hne=class extends Ztn.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=Jtn.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,enn.isWrapped)(t[n])&&this._unwrap(t,n),CVe.types.isProxy(t)){let i=(0,pne.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,pne.wrap)(t,n,r)};_unwrap=(t,n)=>CVe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,pne.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{MN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{MN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=Y.resolve(n);Y.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,$tn.readFileSync)(CN.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{MN.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return MVe(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=CN.normalize(r);return o.filter(u=>u.name===a).filter(u=>MVe(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&CN.isAbsolute(a)){let u=CN.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=CN.isAbsolute(t.name)?new Qtn.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new Xtn.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}};sG.InstrumentationBase=hne;function MVe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,Ytn.satisfies)(t,r,{includePrerelease:n}))}});var LVe=w(oG=>{"use strict";Object.defineProperty(oG,"__esModule",{value:!0});oG.normalize=void 0;var tnn=Y("path");Object.defineProperty(oG,"normalize",{enumerable:!0,get:function(){return tnn.normalize}})});var UVe=w(yw=>{"use strict";Object.defineProperty(yw,"__esModule",{value:!0});yw.normalize=yw.InstrumentationBase=void 0;var nnn=DVe();Object.defineProperty(yw,"InstrumentationBase",{enumerable:!0,get:function(){return nnn.InstrumentationBase}});var rnn=LVe();Object.defineProperty(yw,"normalize",{enumerable:!0,get:function(){return rnn.normalize}})});var mne=w(Sw=>{"use strict";Object.defineProperty(Sw,"__esModule",{value:!0});Sw.normalize=Sw.InstrumentationBase=void 0;var FVe=UVe();Object.defineProperty(Sw,"InstrumentationBase",{enumerable:!0,get:function(){return FVe.InstrumentationBase}});Object.defineProperty(Sw,"normalize",{enumerable:!0,get:function(){return FVe.normalize}})});var jVe=w(aG=>{"use strict";Object.defineProperty(aG,"__esModule",{value:!0});aG.InstrumentationNodeModuleDefinition=void 0;var gne=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||[]}};aG.InstrumentationNodeModuleDefinition=gne});var HVe=w(cG=>{"use strict";Object.defineProperty(cG,"__esModule",{value:!0});cG.InstrumentationNodeModuleFile=void 0;var inn=mne(),yne=class{supportedVersions;patch;unpatch;name;constructor(t,n,r,i){this.supportedVersions=n,this.patch=r,this.unpatch=i,this.name=(0,inn.normalize)(t)}};cG.InstrumentationNodeModuleFile=yne});var qVe=w(u_=>{"use strict";Object.defineProperty(u_,"__esModule",{value:!0});u_.semconvStabilityFromStr=u_.SemconvStability=void 0;var uG;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(uG=u_.SemconvStability||(u_.SemconvStability={}));function snn(e,t){let n=uG.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=uG.DUPLICATE;break}else i.toLowerCase()===e&&(n=uG.STABLE);return n}u_.semconvStabilityFromStr=snn});var zVe=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 onn=lVe();Object.defineProperty(Js,"registerInstrumentations",{enumerable:!0,get:function(){return onn.registerInstrumentations}});var ann=mne();Object.defineProperty(Js,"InstrumentationBase",{enumerable:!0,get:function(){return ann.InstrumentationBase}});var cnn=jVe();Object.defineProperty(Js,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return cnn.InstrumentationNodeModuleDefinition}});var unn=HVe();Object.defineProperty(Js,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return unn.InstrumentationNodeModuleFile}});var Sne=fne();Object.defineProperty(Js,"isWrapped",{enumerable:!0,get:function(){return Sne.isWrapped}});Object.defineProperty(Js,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return Sne.safeExecuteInTheMiddle}});Object.defineProperty(Js,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return Sne.safeExecuteInTheMiddleAsync}});var BVe=qVe();Object.defineProperty(Js,"SemconvStability",{enumerable:!0,get:function(){return BVe.SemconvStability}});Object.defineProperty(Js,"semconvStabilityFromStr",{enumerable:!0,get:function(){return BVe.semconvStabilityFromStr}})});function fnn(){let e=bw[Ene];return e?.helper?e.helper:bw[bne]?.helper}function pnn(e){let t={helper:e};bw[Ene]=t,bw[bne]=t}function hnn(){delete bw[Ene],delete bw[bne]}function ynn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}function WVe(e,t,n,r,i){if(KVe(t.name,i))return;let s={attributes:t.attributes,kind:ynn(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)WVe(e,c,n,r,i);o.end(t.endTime)})}function GVe(e,t){return bnn(t)?t.then(n=>(e.end(),n),n=>{throw e.end(),n}):(e.end(),t)}function bnn(e){return e!=null&&typeof e.then=="function"}function KVe(e,t){return t.some(n=>typeof n=="string"?n===e:n.test(e))}var lG,lnn,dnn,bne,Ene,bw,mnn,gnn,Snn,YVe,VVe,Enn,_nn,ZVe,JVe=v(()=>{Me();lG=Re(zVe(),1);Me();lnn={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"}},dnn=lnn.version.split(".")[0],bne="PRISMA_INSTRUMENTATION",Ene=`V${dnn}_PRISMA_INSTRUMENTATION`,bw=globalThis;mnn=process.env.PRISMA_SHOW_ALL_TRACES==="true",gnn="00-10-10-00";Snn=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}`:gnn}dispatchEngineSpans(e){let t=this.tracerProvider.getTracer("prisma"),n=new Map,r=e.filter(i=>i.parentId===null);for(let i of r)WVe(t,i,e,n,this.ignoreSpanTypes)}getActiveContext(){return Ve.active()}runInChildSpan(e,t){if(typeof e=="string"&&(e={name:e}),e.internal&&!mnn)return t();let n=this.tracerProvider.getTracer("prisma"),r=e.context??this.getActiveContext(),i=`prisma:client:${e.name}`;if(KVe(i,this.ignoreSpanTypes))return t();if(e.active===!1){let s=n.startSpan(i,e,r);return GVe(s,t(s,r))}return n.startActiveSpan(i,e,s=>GVe(s,t(s,r)))}};YVe={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},VVe=YVe.version,Enn=YVe.name,_nn="@prisma/client",ZVe=class extends lG.InstrumentationBase{tracerProvider;constructor(e={}){super(Enn,VVe,e)}setTracerProvider(e){this.tracerProvider=e}init(){return[new lG.InstrumentationNodeModuleDefinition(_nn,[VVe])]}enable(){let e=this._config;pnn(new Snn({tracerProvider:this.tracerProvider??jt.getTracerProvider(),ignoreSpanTypes:e.ignoreSpanTypes??[]}))}disable(){hnn()}isEnabled(){return fnn()!==void 0}}});function Tnn(e){return!!e&&typeof e=="object"&&"dispatchEngineSpans"in e}function QVe(){let e=globalThis.PRISMA_INSTRUMENTATION;return e&&typeof e=="object"&&"helper"in e?e.helper:void 0}function vnn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}var XVe,_ne,Rnn,$Ve,eWe=v(()=>{Me();JVe();st();sr();XVe="Prisma";_ne=class extends ZVe{constructor(t){super(t?.instrumentationConfig)}enable(){super.enable();let t=QVe();Tnn(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=vnn(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}})}};Rnn=rt(XVe,e=>new _ne(e)),$Ve=e=>({name:XVe,setupOnce(){Rnn(e)},setup(t){QVe()&&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 tWe=w(Ew=>{"use strict";Object.defineProperty(Ew,"__esModule",{value:!0});Ew.PACKAGE_NAME=Ew.PACKAGE_VERSION=void 0;Ew.PACKAGE_VERSION="0.60.0";Ew.PACKAGE_NAME="@opentelemetry/instrumentation-hapi"});var Tne=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 nWe=w(dG=>{"use strict";Object.defineProperty(dG,"__esModule",{value:!0});dG.ATTR_HTTP_METHOD=void 0;dG.ATTR_HTTP_METHOD="http.method"});var vne=w(DN=>{"use strict";Object.defineProperty(DN,"__esModule",{value:!0});DN.AttributeNames=void 0;var Ann;(function(e){e.HAPI_TYPE="hapi.type",e.PLUGIN_NAME="hapi.plugin.name",e.EXT_TYPE="server.ext.type"})(Ann=DN.AttributeNames||(DN.AttributeNames={}))});var sWe=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 rWe=(Nn(),ke(Mr)),wnn=nWe(),LN=Tne(),fS=vne(),iWe=Jt();function knn(e){return e.name?e.name:e.pkg.name}Xs.getPluginName=knn;var Inn=e=>typeof e=="string"&&LN.HapiLifecycleMethodNames.has(e);Xs.isLifecycleExtType=Inn;var xnn=e=>{let t=e?.type;return t!==void 0&&(0,Xs.isLifecycleExtType)(t)};Xs.isLifecycleExtEventObj=xnn;var Onn=e=>Array.isArray(e)&&e.length<=3&&(0,Xs.isLifecycleExtType)(e[0])&&typeof e[1]=="function";Xs.isDirectExtInput=Onn;var Pnn=e=>!Array.isArray(e);Xs.isPatchableExtMethod=Pnn;var Nnn=(e,t,n)=>{let r={[rWe.ATTR_HTTP_ROUTE]:e.path};t&iWe.SemconvStability.OLD&&(r[wnn.ATTR_HTTP_METHOD]=e.method),t&iWe.SemconvStability.STABLE&&(r[rWe.ATTR_HTTP_REQUEST_METHOD]=e.method);let i;return n?(r[fS.AttributeNames.HAPI_TYPE]=LN.HapiLayerType.PLUGIN,r[fS.AttributeNames.PLUGIN_NAME]=n,i=`${n}: route - ${e.path}`):(r[fS.AttributeNames.HAPI_TYPE]=LN.HapiLayerType.ROUTER,i=`route - ${e.path}`),{attributes:r,name:i}};Xs.getRouteMetadata=Nnn;var Cnn=(e,t,n)=>{let r=`ext - ${e}`;return n&&n!=="method"&&(r=`ext - ${e} - ${n}`),t?{attributes:{[fS.AttributeNames.EXT_TYPE]:e,[fS.AttributeNames.HAPI_TYPE]:LN.HapiLayerType.EXT,[fS.AttributeNames.PLUGIN_NAME]:t},name:`${t}: ${r}`}:{attributes:{[fS.AttributeNames.EXT_TYPE]:e,[fS.AttributeNames.HAPI_TYPE]:LN.HapiLayerType.EXT},name:r}};Xs.getExtMetadata=Cnn;var Mnn=e=>"plugin"in e?"plugin"in e.plugin?e.plugin.plugin:e.plugin:e;Xs.getPluginFromInput=Mnn});var cWe=w(fG=>{"use strict";Object.defineProperty(fG,"__esModule",{value:!0});fG.HapiInstrumentation=void 0;var gl=(Me(),ke(Ze)),oWe=pr(),UN=Jt(),aWe=tWe(),FN=Tne(),Lm=sWe(),Rne=class extends UN.InstrumentationBase{_semconvStability;constructor(t={}){super(aWe.PACKAGE_NAME,aWe.PACKAGE_VERSION,t),this._semconvStability=(0,UN.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new UN.InstrumentationNodeModuleDefinition(FN.HapiComponentName,[">=17.0.0 <22"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,UN.isWrapped)(n.server)||this._wrap(n,"server",this._getServerPatch.bind(this)),(0,UN.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,Lm.getPluginFromInput)(o);n._wrapRegisterHandler(a)}else{let o=(0,Lm.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,oWe.getRPCMetadata)(gl.context.active());a?.type===oWe.RPCType.HTTP&&(a.route=t.path);let c=(0,Lm.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}};fG.HapiInstrumentation=Rne});var uWe=w(_w=>{"use strict";Object.defineProperty(_w,"__esModule",{value:!0});_w.AttributeNames=_w.HapiInstrumentation=void 0;var Dnn=cWe();Object.defineProperty(_w,"HapiInstrumentation",{enumerable:!0,get:function(){return Dnn.HapiInstrumentation}});var Lnn=vne();Object.defineProperty(_w,"AttributeNames",{enumerable:!0,get:function(){return Lnn.AttributeNames}})});var lWe,dWe,fWe,Unn,pWe,hWe=v(()=>{lWe=Re(uWe(),1);sr();dWe="Hapi",fWe=rt(dWe,()=>new lWe.HapiInstrumentation),Unn=(()=>({name:dWe,setupOnce(){fWe()}})),pWe=Unn});var pS,jN,Ane=v(()=>{pS={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},jN={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"}});var hG,Fnn,jnn,pG,mWe=v(()=>{Me();hG=Re(Jt(),1);st();Ane();Fnn="@sentry/instrumentation-hono",jnn="0.0.1",pG=class extends hG.InstrumentationBase{constructor(t={}){super(Fnn,jnn,t)}init(){return[new hG.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({[pS.HONO_TYPE]:u,[pS.HONO_NAME]:u===jN.REQUEST_HANDLER?s:t.name||"anonymous"}),n.getConfig().responseHook?.(o),c});{let c=n._determineHandlerType(a);return o.setAttributes({[pS.HONO_TYPE]:c,[pS.HONO_NAME]:c===jN.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?jN.MIDDLEWARE:jN.REQUEST_HANDLER}_handleError(t,n){n instanceof Error&&(t.setStatus({code:as.ERROR,message:n.message}),t.recordException(n))}}});function Hnn(e){let t=vt(e).data,n=t[pS.HONO_TYPE];if(t[zt]||!n)return;e.setAttributes({[At]:"auto.http.otel.hono",[zt]:`${n}.hono`});let r=t[pS.HONO_NAME];if(typeof r=="string"&&e.updateName(r),vn()===Wl()){So&&Z.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let i=t[dm],s=t[bE];typeof i=="string"&&typeof s=="string"&&vn().setTransactionName(`${s} ${i}`)}var gWe,yWe,qnn,SWe,bWe=v(()=>{Nn();st();sr();QE();Ane();mWe();gWe="Hono";yWe=rt(gWe,()=>new pG({responseHook:e=>{Hnn(e)}})),qnn=(()=>({name:gWe,setupOnce(){yWe()}})),SWe=qnn});var mG=w(HN=>{"use strict";Object.defineProperty(HN,"__esModule",{value:!0});HN.KoaLayerType=void 0;var Bnn;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware"})(Bnn=HN.KoaLayerType||(HN.KoaLayerType={}))});var EWe=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-koa"});var wne=w(qN=>{"use strict";Object.defineProperty(qN,"__esModule",{value:!0});qN.AttributeNames=void 0;var znn;(function(e){e.KOA_TYPE="koa.type",e.KOA_NAME="koa.name"})(znn=qN.AttributeNames||(qN.AttributeNames={}))});var TWe=w(vw=>{"use strict";Object.defineProperty(vw,"__esModule",{value:!0});vw.isLayerIgnored=vw.getMiddlewareMetadata=void 0;var _We=mG(),gG=wne(),Gnn=(Nn(),ke(Mr)),Vnn=(e,t,n,r)=>n?{attributes:{[gG.AttributeNames.KOA_NAME]:r?.toString(),[gG.AttributeNames.KOA_TYPE]:_We.KoaLayerType.ROUTER,[Gnn.ATTR_HTTP_ROUTE]:r?.toString()},name:e._matchedRouteName||`router - ${r}`}:{attributes:{[gG.AttributeNames.KOA_NAME]:t.name??"middleware",[gG.AttributeNames.KOA_TYPE]:_We.KoaLayerType.MIDDLEWARE},name:`middleware - ${t.name}`};vw.getMiddlewareMetadata=Vnn;var Wnn=(e,t)=>!!(Array.isArray(t?.ignoreLayersType)&&t?.ignoreLayersType?.includes(e));vw.isLayerIgnored=Wnn});var vWe=w(yG=>{"use strict";Object.defineProperty(yG,"__esModule",{value:!0});yG.kLayerPatched=void 0;yG.kLayerPatched=Symbol("koa-layer-patched")});var xWe=w(SG=>{"use strict";Object.defineProperty(SG,"__esModule",{value:!0});SG.KoaInstrumentation=void 0;var th=(Me(),ke(Ze)),BN=Jt(),RWe=mG(),AWe=EWe(),wWe=TWe(),kWe=pr(),IWe=vWe(),kne=class extends BN.InstrumentationBase{constructor(t={}){super(AWe.PACKAGE_NAME,AWe.PACKAGE_VERSION,t)}init(){return new BN.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return n==null?n:((0,BN.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,BN.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,wWe.getMiddlewareMetadata)(s,t,n,r),u=this.tracer.startSpan(c.name,{attributes:c.attributes}),l=(0,kWe.getRPCMetadata)(th.context.active());l?.type===kWe.RPCType.HTTP&&s._matchedRoute&&(l.route=s._matchedRoute.toString());let{requestHook:d}=this.getConfig();d&&(0,BN.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()}})})}};SG.KoaInstrumentation=kne});var OWe=w(hS=>{"use strict";Object.defineProperty(hS,"__esModule",{value:!0});hS.KoaLayerType=hS.AttributeNames=hS.KoaInstrumentation=void 0;var Knn=xWe();Object.defineProperty(hS,"KoaInstrumentation",{enumerable:!0,get:function(){return Knn.KoaInstrumentation}});var Ynn=wne();Object.defineProperty(hS,"AttributeNames",{enumerable:!0,get:function(){return Ynn.AttributeNames}});var Znn=mG();Object.defineProperty(hS,"KoaLayerType",{enumerable:!0,get:function(){return Znn.KoaLayerType}})});var PWe,NWe,CWe,Jnn,MWe,DWe=v(()=>{PWe=Re(OWe(),1);Nn();st();sr();QE();NWe="Koa",CWe=rt(NWe,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()===Wl()){So&&Z.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let o=r[dm],a=n.context?.request?.method?.toUpperCase()||"GET";o&&vn().setTransactionName(`${a} ${o}`)}})),Jnn=((e={})=>({name:NWe,setupOnce(){CWe(e)}})),MWe=Jnn});var Ine=w(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});yf.ConnectNames=yf.ConnectTypes=yf.AttributeNames=void 0;var Xnn;(function(e){e.CONNECT_TYPE="connect.type",e.CONNECT_NAME="connect.name"})(Xnn=yf.AttributeNames||(yf.AttributeNames={}));var Qnn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(Qnn=yf.ConnectTypes||(yf.ConnectTypes={}));var $nn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request handler"})($nn=yf.ConnectNames||(yf.ConnectNames={}))});var LWe=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-connect"});var UWe=w(bG=>{"use strict";Object.defineProperty(bG,"__esModule",{value:!0});bG._LAYERS_STORE_PROPERTY=void 0;bG._LAYERS_STORE_PROPERTY=Symbol("opentelemetry.instrumentation-connect.request-route-stack")});var FWe=w(gS=>{"use strict";Object.defineProperty(gS,"__esModule",{value:!0});gS.generateRoute=gS.replaceCurrentStackRoute=gS.addNewStackLayer=void 0;var ern=(Me(),ke(Ze)),mS=UWe(),trn=e=>{Array.isArray(e[mS._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,mS._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),e[mS._LAYERS_STORE_PROPERTY].push("/");let t=e[mS._LAYERS_STORE_PROPERTY].length;return()=>{t===e[mS._LAYERS_STORE_PROPERTY].length?e[mS._LAYERS_STORE_PROPERTY].pop():ern.diag.warn("Connect: Trying to pop the stack multiple time")}};gS.addNewStackLayer=trn;var nrn=(e,t)=>{t&&e[mS._LAYERS_STORE_PROPERTY].splice(-1,1,t)};gS.replaceCurrentStackRoute=nrn;var rrn=e=>e[mS._LAYERS_STORE_PROPERTY].reduce((t,n)=>t.replace(/\/+$/,"")+n);gS.generateRoute=rrn});var qWe=w(yS=>{"use strict";Object.defineProperty(yS,"__esModule",{value:!0});yS.ConnectInstrumentation=yS.ANONYMOUS_NAME=void 0;var irn=(Me(),ke(Ze)),jWe=pr(),Aw=Ine(),HWe=LWe(),EG=Jt(),srn=(Nn(),ke(Mr)),xne=FWe();yS.ANONYMOUS_NAME="anonymous";var One=class extends EG.InstrumentationBase{constructor(t={}){super(HWe.PACKAGE_NAME,HWe.PACKAGE_VERSION,t)}init(){return[new EG.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],t=>this._patchConstructor(t))]}_patchApp(t){(0,EG.isWrapped)(t.use)||this._wrap(t,"use",this._patchUse.bind(this)),(0,EG.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=Aw.ConnectTypes.REQUEST_HANDLER,s=Aw.ConnectNames.REQUEST_HANDLER,i=t):(r=Aw.ConnectTypes.MIDDLEWARE,s=Aw.ConnectNames.MIDDLEWARE,i=n.name||yS.ANONYMOUS_NAME);let o=`${s} - ${i}`,a={attributes:{[srn.ATTR_HTTP_ROUTE]:t.length>0?t:"/",[Aw.AttributeNames.CONNECT_TYPE]:r,[Aw.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,xne.replaceCurrentStackRoute)(u,t);let f=(0,jWe.getRPCMetadata)(irn.context.active());t&&f?.type===jWe.RPCType.HTTP&&(f.route=(0,xne.generateRoute)(u));let p="";t?p=`request handler - ${t}`:p=`middleware - ${n.name||yS.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,xne.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)}}};yS.ConnectInstrumentation=One});var zWe=w(cd=>{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.ConnectTypes=cd.ConnectNames=cd.AttributeNames=cd.ANONYMOUS_NAME=cd.ConnectInstrumentation=void 0;var BWe=qWe();Object.defineProperty(cd,"ConnectInstrumentation",{enumerable:!0,get:function(){return BWe.ConnectInstrumentation}});Object.defineProperty(cd,"ANONYMOUS_NAME",{enumerable:!0,get:function(){return BWe.ANONYMOUS_NAME}});var Pne=Ine();Object.defineProperty(cd,"AttributeNames",{enumerable:!0,get:function(){return Pne.AttributeNames}});Object.defineProperty(cd,"ConnectNames",{enumerable:!0,get:function(){return Pne.ConnectNames}});Object.defineProperty(cd,"ConnectTypes",{enumerable:!0,get:function(){return Pne.ConnectTypes}})});var GWe,VWe,WWe,orn,KWe,YWe=v(()=>{GWe=Re(zWe(),1);sr();VWe="Connect",WWe=rt(VWe,()=>new GWe.ConnectInstrumentation),orn=(()=>({name:VWe,setupOnce(){WWe()}})),KWe=orn});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 JWe=w(ww=>{"use strict";Object.defineProperty(ww,"__esModule",{value:!0});ww.once=ww.getSpanName=void 0;function arn(e,t,n,r){return e==="execBulkLoad"&&r&&t?`${e} ${r} ${t}`:e==="callProcedure"?t?`${e} ${n} ${t}`:`${e} ${n}`:t?`${e} ${t}`:`${e}`}ww.getSpanName=arn;var crn=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};ww.once=crn});var XWe=w(kw=>{"use strict";Object.defineProperty(kw,"__esModule",{value:!0});kw.PACKAGE_NAME=kw.PACKAGE_VERSION=void 0;kw.PACKAGE_VERSION="0.33.0";kw.PACKAGE_NAME="@opentelemetry/instrumentation-tedious"});var n4e=w(bS=>{"use strict";Object.defineProperty(bS,"__esModule",{value:!0});bS.TediousInstrumentation=bS.INJECTED_CTX=void 0;var Iw=(Me(),ke(Ze)),urn=Y("events"),nh=Jt(),l_=(Nn(),ke(Mr)),SS=ZWe(),QWe=JWe(),$We=XWe(),t4e=Symbol("opentelemetry.instrumentation-tedious.current-database");bS.INJECTED_CTX=Symbol("opentelemetry.instrumentation-tedious.context-info-injected");var e4e=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function _G(e){Object.defineProperty(this,t4e,{value:e,writable:!0})}var Nne=class e extends nh.InstrumentationBase{static COMPONENT="tedious";_netSemconvStability;_dbSemconvStability;constructor(t={}){super($We.PACKAGE_NAME,$We.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 e4e)(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 e4e)this._unwrap(n,r);this._unwrap(n,"connect")})]}_patchConnect(t){return function(){return _G.call(this,this.config?.options?.database),this.removeListener("databaseChange",_G),this.on("databaseChange",_G),this.once("end",()=>{this.removeListener("databaseChange",_G)}),t.apply(this,arguments)}}_buildTraceparent(t){let n=t.spanContext();return`00-${n.traceId}-${n.spanId}-0${Number(n.traceFlags||Iw.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,bS.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?.[bS.INJECTED_CTX])return r.apply(this,arguments);if(!(o instanceof urn.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[t4e],f=(E=>E.sqlTextOrProcedure==="sp_prepare"&&E.parametersByName?.stmt?.value?E.parametersByName.stmt.value:E.sqlTextOrProcedure)(o),p={};i._dbSemconvStability&nh.SemconvStability.OLD&&(p[SS.ATTR_DB_SYSTEM]=SS.DB_SYSTEM_VALUE_MSSQL,p[SS.ATTR_DB_NAME]=d,p[SS.ATTR_DB_USER]=this.config?.userName??this.config?.authentication?.options?.userName,p[SS.ATTR_DB_STATEMENT]=f,p[SS.ATTR_DB_SQL_TABLE]=o.table),i._dbSemconvStability&nh.SemconvStability.STABLE&&(p[l_.ATTR_DB_NAMESPACE]=d,p[l_.ATTR_DB_SYSTEM_NAME]=l_.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER,p[l_.ATTR_DB_QUERY_TEXT]=f,p[l_.ATTR_DB_COLLECTION_NAME]=o.table),i._netSemconvStability&nh.SemconvStability.OLD&&(p[SS.ATTR_NET_PEER_NAME]=this.config?.server,p[SS.ATTR_NET_PEER_PORT]=this.config?.options?.port),i._netSemconvStability&nh.SemconvStability.STABLE&&(p[l_.ATTR_SERVER_ADDRESS]=this.config?.server,p[l_.ATTR_SERVER_PORT]=this.config?.options?.port);let h=i.tracer.startSpan((0,QWe.getSpanName)(t,d,f,o.table),{kind:Iw.SpanKind.CLIENT,attributes:p}),m=(0,QWe.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:Iw.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=()=>Iw.context.with(Iw.trace.setSpan(Iw.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)}}};bS.TediousInstrumentation=Nne});var r4e=w(TG=>{"use strict";Object.defineProperty(TG,"__esModule",{value:!0});TG.TediousInstrumentation=void 0;var lrn=n4e();Object.defineProperty(TG,"TediousInstrumentation",{enumerable:!0,get:function(){return lrn.TediousInstrumentation}})});var i4e,drn,s4e,o4e,frn,a4e,c4e=v(()=>{i4e=Re(r4e(),1);st();sr();drn=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),s4e="Tedious",o4e=rt(s4e,()=>new i4e.TediousInstrumentation({})),frn=(()=>{let e;return{name:s4e,setupOnce(){let t=o4e();e=vP(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]||"";drn.has(s)&&n.setAttribute(At,"auto.db.otel.tedious")}))}}}),a4e=frn});var u4e=w(xw=>{"use strict";Object.defineProperty(xw,"__esModule",{value:!0});xw.PACKAGE_NAME=xw.PACKAGE_VERSION=void 0;xw.PACKAGE_VERSION="0.57.0";xw.PACKAGE_NAME="@opentelemetry/instrumentation-generic-pool"});var d4e=w(vG=>{"use strict";Object.defineProperty(vG,"__esModule",{value:!0});vG.GenericPoolInstrumentation=void 0;var Ow=(Me(),ke(Ze)),d_=Jt(),l4e=u4e(),Cne="generic-pool",Mne=class extends d_.InstrumentationBase{_isDisabled=!1;constructor(t={}){super(l4e.PACKAGE_NAME,l4e.PACKAGE_VERSION,t)}init(){return[new d_.InstrumentationNodeModuleDefinition(Cne,[">=3.0.0 <4"],t=>{let n=t.Pool;return(0,d_.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 d_.InstrumentationNodeModuleDefinition(Cne,[">=2.4.0 <3"],t=>{let n=t.Pool;return(0,d_.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 d_.InstrumentationNodeModuleDefinition(Cne,[">=2.0.0 <2.4"],t=>(this._isDisabled=!1,(0,d_.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=Ow.context.active(),o=n.tracer.startSpan("generic-pool.acquire",{},s);return Ow.context.with(Ow.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=Ow.context.active(),a=n.tracer.startSpan("generic-pool.acquire",{},o);return Ow.context.with(Ow.trace.setSpan(o,a),()=>{t.call(this,(c,u)=>{if(a.end(),i)return i(c,u)},s)})}}};vG.GenericPoolInstrumentation=Mne});var f4e=w(RG=>{"use strict";Object.defineProperty(RG,"__esModule",{value:!0});RG.GenericPoolInstrumentation=void 0;var prn=d4e();Object.defineProperty(RG,"GenericPoolInstrumentation",{enumerable:!0,get:function(){return prn.GenericPoolInstrumentation}})});var p4e,h4e,m4e,hrn,g4e,y4e=v(()=>{p4e=Re(f4e(),1);st();sr();h4e="GenericPool",m4e=rt(h4e,()=>new p4e.GenericPoolInstrumentation({})),hrn=(()=>{let e;return{name:h4e,setupOnce(){let t=m4e();e=vP(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")}))}}}),g4e=hrn});var Dne=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 Lne=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 Une=w(f_=>{"use strict";Object.defineProperty(f_,"__esModule",{value:!0});f_.DEFAULT_CONFIG=f_.EndOperation=void 0;var mrn;(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"})(mrn=f_.EndOperation||(f_.EndOperation={}));f_.DEFAULT_CONFIG={consumeTimeoutMs:1e3*60,useLinksForConsume:!1}});var _4e=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 Fne=(Me(),ke(Ze)),ES=Jt(),AG=(Nn(),ke(Mr)),zN=Dne(),wG=Lne();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 jne=(0,Fne.createContextKey)("opentelemetry.amqplib.channel.is-confirm-channel"),grn=e=>e!==""?e:"";ps.normalizeExchange=grn;var yrn=e=>e.replace(/:[^:@/]*@/,":***@"),S4e=(e,t)=>e||(t==="AMQP"?5672:5671),b4e=e=>{let t=e||"amqp";return(t.endsWith(":")?t.substring(0,t.length-1):t).toUpperCase()},E4e=e=>e||"localhost",ih=(e,t,n,r)=>n?{[t]:n}:(Fne.diag.error(`amqplib instrumentation: could not extract connection attribute ${r} from user supplied url`,{url:e}),{}),Srn=e=>{let t=e.serverProperties.product?.toLowerCase?.();return t?{[zN.ATTR_MESSAGING_SYSTEM]:t}:{}};ps.getConnectionAttributesFromServer=Srn;var brn=(e,t)=>{let n={[wG.ATTR_MESSAGING_PROTOCOL_VERSION]:"0.9.1"};if(e=e||"amqp://localhost",typeof e=="object"){let r=e,i=b4e(r?.protocol);Object.assign(n,{...ih(e,wG.ATTR_MESSAGING_PROTOCOL,i,"protocol")});let s=E4e(r?.hostname);t&ES.SemconvStability.OLD&&Object.assign(n,{...ih(e,zN.ATTR_NET_PEER_NAME,s,"hostname")}),t&ES.SemconvStability.STABLE&&Object.assign(n,{...ih(e,AG.ATTR_SERVER_ADDRESS,s,"hostname")});let o=S4e(r.port,i);t&ES.SemconvStability.OLD&&Object.assign(n,ih(e,zN.ATTR_NET_PEER_PORT,o,"port")),t&ES.SemconvStability.STABLE&&Object.assign(n,ih(e,AG.ATTR_SERVER_PORT,o,"port"))}else{let r=yrn(e);n[wG.ATTR_MESSAGING_URL]=r;try{let i=new URL(r),s=b4e(i.protocol);Object.assign(n,{...ih(r,wG.ATTR_MESSAGING_PROTOCOL,s,"protocol")});let o=E4e(i.hostname);t&ES.SemconvStability.OLD&&Object.assign(n,{...ih(r,zN.ATTR_NET_PEER_NAME,o,"hostname")}),t&ES.SemconvStability.STABLE&&Object.assign(n,{...ih(r,AG.ATTR_SERVER_ADDRESS,o,"hostname")});let a=S4e(i.port?parseInt(i.port):void 0,s);t&ES.SemconvStability.OLD&&Object.assign(n,ih(r,zN.ATTR_NET_PEER_PORT,a,"port")),t&ES.SemconvStability.STABLE&&Object.assign(n,ih(r,AG.ATTR_SERVER_PORT,a,"port"))}catch(i){Fne.diag.error("amqplib instrumentation: error while extracting connection details from connection url",{censoredUrl:r,err:i})}}return n};ps.getConnectionAttributesFromUrl=brn;var Ern=e=>e.setValue(jne,!0);ps.markConfirmChannelTracing=Ern;var _rn=e=>e.deleteValue(jne);ps.unmarkConfirmChannelTracing=_rn;var Trn=e=>e.getValue(jne)===!0;ps.isConfirmChannelTracing=Trn});var T4e=w(Pw=>{"use strict";Object.defineProperty(Pw,"__esModule",{value:!0});Pw.PACKAGE_NAME=Pw.PACKAGE_VERSION=void 0;Pw.PACKAGE_VERSION="0.61.0";Pw.PACKAGE_NAME="@opentelemetry/instrumentation-amqplib"});var R4e=w(xG=>{"use strict";Object.defineProperty(xG,"__esModule",{value:!0});xG.AmqplibInstrumentation=void 0;var Ji=(Me(),ke(Ze)),kG=pr(),hr=Jt(),vrn=Dne(),yl=Lne(),Hc=Une(),hs=_4e(),v4e=T4e(),IG=[">=0.5.5 <1"],Hne=class extends hr.InstrumentationBase{_netSemconvStability;constructor(t={}){super(v4e.PACKAGE_NAME,v4e.PACKAGE_VERSION,{...Hc.DEFAULT_CONFIG,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,hr.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...Hc.DEFAULT_CONFIG,...t})}init(){let t=new hr.InstrumentationNodeModuleFile("amqplib/lib/channel_model.js",IG,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),n=new hr.InstrumentationNodeModuleFile("amqplib/lib/callback_model.js",IG,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),r=new hr.InstrumentationNodeModuleFile("amqplib/lib/connect.js",IG,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new hr.InstrumentationNodeModuleDefinition("amqplib",IG,void 0,void 0,[t,r,n])}patchConnect(t){return t=this.unpatchConnect(t),(0,hr.isWrapped)(t.connect)||this._wrap(t,"connect",this.getConnectPatch.bind(this)),t}unpatchConnect(t){return(0,hr.isWrapped)(t.connect)&&this._unwrap(t,"connect"),t}patchChannelModel(t,n){return(0,hr.isWrapped)(t.Channel.prototype.publish)||this._wrap(t.Channel.prototype,"publish",this.getPublishPatch.bind(this,n)),(0,hr.isWrapped)(t.Channel.prototype.consume)||this._wrap(t.Channel.prototype,"consume",this.getConsumePatch.bind(this,n)),(0,hr.isWrapped)(t.Channel.prototype.ack)||this._wrap(t.Channel.prototype,"ack",this.getAckPatch.bind(this,!1,Hc.EndOperation.Ack)),(0,hr.isWrapped)(t.Channel.prototype.nack)||this._wrap(t.Channel.prototype,"nack",this.getAckPatch.bind(this,!0,Hc.EndOperation.Nack)),(0,hr.isWrapped)(t.Channel.prototype.reject)||this._wrap(t.Channel.prototype,"reject",this.getAckPatch.bind(this,!0,Hc.EndOperation.Reject)),(0,hr.isWrapped)(t.Channel.prototype.ackAll)||this._wrap(t.Channel.prototype,"ackAll",this.getAckAllPatch.bind(this,!1,Hc.EndOperation.AckAll)),(0,hr.isWrapped)(t.Channel.prototype.nackAll)||this._wrap(t.Channel.prototype,"nackAll",this.getAckAllPatch.bind(this,!0,Hc.EndOperation.NackAll)),(0,hr.isWrapped)(t.Channel.prototype.emit)||this._wrap(t.Channel.prototype,"emit",this.getChannelEmitPatch.bind(this)),(0,hr.isWrapped)(t.ConfirmChannel.prototype.publish)||this._wrap(t.ConfirmChannel.prototype,"publish",this.getConfirmedPublishPatch.bind(this,n)),t}unpatchChannelModel(t){return(0,hr.isWrapped)(t.Channel.prototype.publish)&&this._unwrap(t.Channel.prototype,"publish"),(0,hr.isWrapped)(t.Channel.prototype.consume)&&this._unwrap(t.Channel.prototype,"consume"),(0,hr.isWrapped)(t.Channel.prototype.ack)&&this._unwrap(t.Channel.prototype,"ack"),(0,hr.isWrapped)(t.Channel.prototype.nack)&&this._unwrap(t.Channel.prototype,"nack"),(0,hr.isWrapped)(t.Channel.prototype.reject)&&this._unwrap(t.Channel.prototype,"reject"),(0,hr.isWrapped)(t.Channel.prototype.ackAll)&&this._unwrap(t.Channel.prototype,"ackAll"),(0,hr.isWrapped)(t.Channel.prototype.nackAll)&&this._unwrap(t.Channel.prototype,"nackAll"),(0,hr.isWrapped)(t.Channel.prototype.emit)&&this._unwrap(t.Channel.prototype,"emit"),(0,hr.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=Ji.propagation.extract(Ji.ROOT_CONTEXT,d),p=l.fields?.exchange,h;if(r._config.useLinksForConsume){let b=f?Ji.trace.getSpan(f)?.spanContext():void 0;f=void 0,b&&(h=[{context:b}])}let m=r.tracer.startSpan(`${s} process`,{kind:Ji.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,[vrn.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,hr.safeExecuteInTheMiddle)(()=>g(m,{moduleVersion:t,msg:l}),b=>{b&&Ji.diag.error("amqplib instrumentation: consumerHook error",b)},!0),a?.noAck||(c[hs.CHANNEL_SPANS_NOT_ENDED].push({msg:l,timeOfConsume:(0,kG.hrTime)()}),l[hs.MESSAGE_STORED_SPAN]=m);let y=f||Ji.ROOT_CONTEXT;Ji.context.with(Ji.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,hr.safeExecuteInTheMiddle)(()=>p(d,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:f,isConfirmChannel:!0}),y=>{y&&Ji.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,hr.safeExecuteInTheMiddle)(()=>S(d,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:c,isConfirmChannel:!0,confirmError:y}),E=>{E&&Ji.diag.error("amqplib instrumentation: publishConfirmHook error",E)},!0),y&&d.setStatus({code:Ji.SpanStatusCode.ERROR,message:"message confirmation has been nack'ed"}),d.end()}},m=(0,hs.markConfirmChannelTracing)(Ji.context.active()),g=[...arguments];return g[3]=f,g[4]=Ji.context.bind((0,hs.unmarkConfirmChannelTracing)(Ji.trace.setSpan(m,d)),h),Ji.context.with(m,n.bind(this,...g))}}getPublishPatch(t,n){let r=this;return function(s,o,a,c){if((0,hs.isConfirmChannelTracing)(Ji.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,hr.safeExecuteInTheMiddle)(()=>f(l,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:d,isConfirmChannel:!1}),m=>{m&&Ji.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:Ji.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??{},Ji.propagation.inject(Ji.trace.setSpan(Ji.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:Ji.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,hr.safeExecuteInTheMiddle)(()=>s(t,{msg:n,rejected:r,endOperation:i}),o=>{o&&Ji.diag.error("amqplib instrumentation: consumerEndHook error",o)},!0)}checkConsumeTimeoutOnChannel(t){let n=(0,kG.hrTime)(),r=t[hs.CHANNEL_SPANS_NOT_ENDED]??[],i,{consumeTimeoutMs:s}=this.getConfig();for(i=0;i{"use strict";Object.defineProperty(_S,"__esModule",{value:!0});_S.EndOperation=_S.DEFAULT_CONFIG=_S.AmqplibInstrumentation=void 0;var Rrn=R4e();Object.defineProperty(_S,"AmqplibInstrumentation",{enumerable:!0,get:function(){return Rrn.AmqplibInstrumentation}});var A4e=Une();Object.defineProperty(_S,"DEFAULT_CONFIG",{enumerable:!0,get:function(){return A4e.DEFAULT_CONFIG}});Object.defineProperty(_S,"EndOperation",{enumerable:!0,get:function(){return A4e.EndOperation}})});var k4e,I4e,Arn,x4e,wrn,O4e,P4e=v(()=>{k4e=Re(w4e(),1);sr();I4e="Amqplib",Arn={consumeEndHook:e=>{Dr(e,"auto.amqplib.otel.consumer")},publishHook:e=>{Dr(e,"auto.amqplib.otel.publisher")}},x4e=rt(I4e,()=>new k4e.AmqplibInstrumentation(Arn)),wrn=(()=>({name:I4e,setupOnce(){x4e()}})),O4e=wrn});var GN,qne=v(()=>{GN="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 xrn(e){if(typeof e!="object"||e===null||!("content"in e))return;let t=e;Array.isArray(t.content)&&(Orn(t.content),Prn(t.content))}function Orn(e){for(let t of e){if(!Irn(t))continue;let n=wQ(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 Prn(e){for(let t of e)typeof t=="object"&&t!==null&&"toolCallId"in t&&typeof t.toolCallId=="string"&&kQ(t.toolCallId)}function Nrn(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 PG,krn,N4e,OG,C4e=v(()=>{PG=Re(Jt(),1);st();qne();krn=[">=3.0.0 <7"],N4e=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];OG=class e extends PG.InstrumentationBase{__init(){this._isPatched=!1}__init2(){this._callbacks=[]}constructor(t={}){super("@sentry/instrumentation-vercel-ai",Cn,t),e.prototype.__init.call(this),e.prototype.__init2.call(this)}init(){return new PG.InstrumentationNodeModuleDefinition("ai",krn,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(GN),d=l?.options,f=l?!!u?.getOptions().sendDefaultPii:!1,{recordInputs:p,recordOutputs:h}=Nrn(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",Yl())},()=>{},m=>{xrn(m)})}});if(Object.prototype.toString.call(t)==="[object Module]"){for(let r of N4e)t[r]!=null&&(t[r]=n(t[r]));return t}else{let r=N4e.reduce((i,s)=>(t[s]!=null&&(i[s]=n(t[s])),i),{});return{...t,...r}}}}});function Crn(e){return!!e.getIntegrationByName("Modules")?.getModules?.()?.ai}var M4e,Mrn,D4e,L4e=v(()=>{st();sr();qne();C4e();M4e=rt(GN,()=>new OG({}));Mrn=((e={})=>{let t;return{name:GN,options:e,setupOnce(){t=M4e()},afterAllSetup(n){e.force??Crn(n)?UH(n):t?.callWhenPatched(()=>UH(n))}}}),D4e=Mrn});var CG,Drn,NG,U4e=v(()=>{CG=Re(Jt(),1);st();Drn=[">=4.0.0 <7"],NG=class extends CG.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-openai",Cn,t)}init(){return new CG.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(LE(Vy))return Reflect.construct(r,o);let a=Reflect.construct(r,o);return HH(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 F4e,Lrn,j4e,H4e=v(()=>{st();sr();U4e();F4e=rt(Vy,e=>new NG(e)),Lrn=((e={})=>({name:Vy,setupOnce(){F4e(e)}})),j4e=Lrn});var DG,Urn,MG,q4e=v(()=>{DG=Re(Jt(),1);st();Urn=[">=0.19.2 <1.0.0"],MG=class extends DG.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-anthropic-ai",Cn,t)}init(){return new DG.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",Urn,this._patch.bind(this))}_patch(t){let n=t.Anthropic,r=this.getConfig(),i=function(...s){if(LE(Wy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return qH(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 B4e,Frn,z4e,G4e=v(()=>{st();sr();q4e();B4e=rt(Wy,e=>new MG(e)),Frn=((e={})=>({name:Wy,options:e,setupOnce(){B4e(e)}})),z4e=Frn});var Nw,V4e,LG,W4e=v(()=>{Nw=Re(Jt(),1);st();V4e=[">=0.10.0 <2"],LG=class extends Nw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-google-genai",Cn,t)}init(){return new Nw.InstrumentationNodeModuleDefinition("@google/genai",V4e,n=>this._patch(n),n=>n,[new Nw.InstrumentationNodeModuleFile("@google/genai/dist/node/index.cjs",V4e,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(LE(Ky))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return BH(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 _P(t,"GoogleGenAI",i),t}}});var K4e,jrn,Y4e,Z4e=v(()=>{st();sr();W4e();K4e=rt(Ky,e=>new LG(e)),jrn=((e={})=>({name:Ky,setupOnce(){K4e(e)}})),Y4e=jrn});function Hrn(e,t){return e?Array.isArray(e)?e.includes(t)?e:[...e,t]:typeof e=="object"?[e,t]:e:[t]}function qrn(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=Hrn(c,t);return a.callbacks=u,Reflect.apply(r,i,s)}})}var TS,UG,FG,J4e=v(()=>{TS=Re(Jt(),1);st();UG=[">=0.1.0 <2.0.0"];FG=class extends TS.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langchain",Cn,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 TS.InstrumentationNodeModuleDefinition(r,UG,this._patch.bind(this),i=>i,[new TS.InstrumentationNodeModuleFile(`${r}/dist/index.cjs`,UG,this._patch.bind(this),i=>i)]));return t.push(new TS.InstrumentationNodeModuleDefinition("langchain",UG,this._patch.bind(this),r=>r,[new TS.InstrumentationNodeModuleFile("langchain/dist/chat_models/universal.cjs",UG,this._patch.bind(this),r=>r)])),t}_patch(t){VX([Vy,Wy,Ky]);let n=WH(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]=qrn(u,n))}}}});var X4e,Brn,Q4e,$4e=v(()=>{st();sr();J4e();X4e=rt(zH,e=>new FG(e)),Brn=((e={})=>({name:zH,setupOnce(){X4e(e)}})),Q4e=Brn});var Cw,eKe,jG,tKe=v(()=>{Cw=Re(Jt(),1);st();eKe=[">=0.0.0 <2.0.0"],jG=class extends Cw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langgraph",Cn,t)}init(){return new Cw.InstrumentationNodeModuleDefinition("@langchain/langgraph",eKe,this._patch.bind(this),n=>n,[new Cw.InstrumentationNodeModuleFile("@langchain/langgraph/dist/index.cjs",eKe,this._patch.bind(this),n=>n)])}_patch(t){return t.StateGraph&&typeof t.StateGraph=="function"&&YH(t.StateGraph.prototype,this.getConfig()),t}}});var nKe,zrn,rKe,iKe=v(()=>{st();sr();tKe();nKe=rt(KH,e=>new jG(e)),zrn=((e={})=>({name:KH,setupOnce(){nKe(e)}})),rKe=zrn});import*as oKe from"node:net";function aKe(e,t,n,r,i){let o=()=>{},a=i.firestoreSpanCreationHook;typeof a=="function"&&(o=l=>{(0,Um.safeExecuteInTheMiddle)(()=>a(l),d=>{d&&sl.error(d?.message)},!0)});let c=new Um.InstrumentationNodeModuleDefinition("@firebase/firestore",t,l=>sKe(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 Um.InstrumentationNodeModuleFile(l,t,d=>sKe(d,n,r,e,o),d=>cKe(d,r)));return c}function sKe(e,t,n,r,i){return cKe(e,n),t(e,"addDoc",Grn(r,i)),t(e,"getDocs",Wrn(r,i)),t(e,"setDoc",Krn(r,i)),t(e,"deleteDoc",Vrn(r,i)),e}function cKe(e,t){for(let n of["addDoc","getDocs","setDoc","deleteDoc"])(0,Um.isWrapped)(e[n])&&t(e,n);return e}function Grn(e,t){return function(r){return function(i,s){let o=qG(e,"addDoc",i);return t(o),HG(o,()=>r(i,s))}}}function Vrn(e,t){return function(r){return function(i){let s=qG(e,"deleteDoc",i.parent||i);return t(s),HG(s,()=>r(i))}}}function Wrn(e,t){return function(r){return function(i){let s=qG(e,"getDocs",i);return t(s),HG(s,()=>r(i))}}}function Krn(e,t){return function(r){return function(i,s,o){let a=qG(e,"setDoc",i.parent||i);return t(a),HG(a,()=>typeof o<"u"?r(i,s,o):r(i,s))}}}function HG(e,t){return Ve.with(jt.setSpan(Ve.active(),e),()=>(0,Um.safeExecuteInTheMiddle)(()=>t(),n=>{n&&e.recordException(n),e.end()},!0))}function qG(e,t,n){let r=e.startSpan(`${t} ${n.path}`,{kind:$r.CLIENT});return Zrn(r,n),r.setAttribute(yR,t),r}function Yrn(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(oKe.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 Zrn(e,t){let n=t.firestore.app,r=n.options,s=(t.firestore.toJSON()||{}).settings||{},o={[E7]:t.path,[_7]:n.name,[SE]:"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}=Yrn(s);a&&(o[x7]=a),c&&(o[O7]=c),e.setAttributes(o)}var Um,uKe=v(()=>{Me();Um=Re(Jt(),1);Nn()});function lKe(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,Fm.safeExecuteInTheMiddle)(()=>u(f,p),h=>{h&&sl.error(h?.message)},!0)}),typeof c=="function"&&(s=f=>{(0,Fm.safeExecuteInTheMiddle)(()=>c(f),p=>{p&&sl.error(p?.message)},!0)});let l=new Fm.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 Fm.InstrumentationNodeModuleFile(f,t,h=>Jrn(h,n,r,e,{requestHook:s,responseHook:o,errorHook:a},p),h=>dKe(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 Jrn(e,t,n,r,i,s){switch(dKe(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 dKe(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,Fm.isWrapped)(e[r])&&t(e,r);return e}var Fm,fKe=v(()=>{Me();Fm=Re(Jt(),1)});var hKe,pKe,Xrn,Qrn,BG,mKe=v(()=>{hKe=Re(Jt(),1);st();uKe();fKe();pKe={},Xrn=[">=3.0.0 <5"],Qrn=[">=6.0.0 <7"],BG=class extends hKe.InstrumentationBase{constructor(t=pKe){super("@sentry/instrumentation-firebase",Cn,t)}setConfig(t={}){super.setConfig({...pKe,...t})}init(){let t=[];return t.push(aKe(this.tracer,Xrn,this._wrap,this._unwrap,this.getConfig())),t.push(lKe(this.tracer,Qrn,this._wrap,this._unwrap,this.getConfig())),t}}});var gKe,$rn,yKe,ein,SKe,bKe=v(()=>{st();sr();mKe();gKe="Firebase",$rn={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 tA(2e3))}}},yKe=rt(gKe,()=>new BG($rn)),ein=(()=>({name:gKe,setupOnce(){yKe()}})),SKe=ein});function EKe(){return[pqe(),YBe(),_ze(),SWe(),cGe(),vGe(),DGe(),KGe(),A2e(),W2e(),$Ve(),pWe(),MWe(),KWe(),a4e(),g4e(),Fze(),O4e(),Zze(),Q4e(),rKe(),D4e(),j4e(),z4e(),Y4e(),J2e(),SKe()]}var _Ke=v(()=>{P4e();G4e();YWe();hqe();XBe();bKe();y4e();Z4e();vze();hWe();bWe();jze();DWe();$4e();iKe();Jze();uGe();RGe();LGe();YGe();H4e();K2e();X2e();eWe();w2e();c4e();L4e()});function vKe(e,t={}){e.getOptions().debug&&see();let[n,r]=tin(e,t);e.traceProvider=n,e.asyncLocalStorageLookup=r}function tin(e,t={}){let n=new TKe.BasicTracerProvider({sampler:new eB(e),resource:(0,zG.defaultResource)().merge((0,zG.resourceFromAttributes)({[P7]:"node",[b7]:"sentry",[N7]:Cn})),forceFlushTimeoutMillis:500,spanProcessors:[new $q({timeout:nin(e.getOptions().maxSpanWaitDuration)}),...t.spanProcessors||[]]});jt.setGlobalTracerProvider(n),Qd.setGlobalPropagator(new Qq);let r=new iee;return Ve.setGlobalContextManager(r),[n,r.getAsyncLocalStorageLookup()]}function nin(e){if(e!=null){if(e>Bne)return So&&Z.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${Bne}`),Bne;if(e<=0||Number.isNaN(e)){So&&Z.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return e}}var zG,TKe,Bne,RKe=v(()=>{Me();zG=Re(y$(),1),TKe=Re(z$(),1);Nn();st();sr();CA();QE();Bne=1e6});function AKe(){return uB().filter(t=>t.name!=="Http"&&t.name!=="NodeFetch").concat(zHe(),QHe())}function wKe(e){return[...AKe(),...Os(e)?EKe():[]]}function zne(e={}){return rin(e,wKe)}function rin(e={},t){UE(e,"node");let n=yee({...e,defaultIntegrations:e.defaultIntegrations??t(e)});return n&&!e.skipOpenTelemetrySetup&&(vKe(n,{spanProcessors:e.openTelemetrySpanProcessors}),See()),n}var kKe=v(()=>{st();sr();GHe();$He();_Ke();RKe()});var IKe=v(()=>{kKe();st()});var DKe={};Ar(DKe,{_resetPluginRootForTests:()=>oin,features:()=>Go,observability:()=>Wne,resolvePluginRoot:()=>nn,review:()=>bf,stripWildcardAllowedOrigins:()=>Vne});import{existsSync as xKe}from"node:fs";import{dirname as OKe,join as PKe}from"node:path";import{fileURLToPath as sin}from"node:url";function MKe(e){if(!e.startsWith("HAIKU_")){let t=process.env[`HAIKU_${e}`];if(t!==void 0)return t}return process.env[e]}function Gne(e,t){let n=MKe(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 NKe(e,t){let n=MKe(e);return n===void 0||n===""?t:n}function oin(){Sf=null}function nn(){if(Sf!==null)return Sf;let e=process.env.CLAUDE_PLUGIN_ROOT;if(e)return Sf=e,Sf;let t=CKe(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=sin(import.meta.url),r=CKe(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 CKe(e){if(!e)return null;let t=OKe(e);for(let n=0;n<6;n++){if(xKe(PKe(t,"studios"))||xKe(PKe(t,".claude-plugin","plugin.json")))return t;let r=OKe(t);if(r===t)return null;t=r}return null}function Vne(){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,Wne,Ci=v(()=>{"use strict";Sf=null;Go={modelSelection:Gne("HAIKU_MODEL_SELECTION",!0),remoteReview:Gne("HAIKU_REMOTE_REVIEW",!1),telemetry:Gne("CLAUDE_CODE_ENABLE_TELEMETRY",!1)},bf={siteUrl:NKe("HAIKU_REVIEW_SITE_URL","https://haikumethod.ai"),allowedOrigins:NKe("HAIKU_REVIEW_ALLOWED_ORIGINS","").split(",").map(e=>e.trim()).filter(Boolean)};Wne={sentryDsn:""}});import{readFileSync as ain}from"node:fs";import{join as cin}from"node:path";function vS(){try{let e=nn();if(e)return JSON.parse(ain(cin(e,".claude-plugin","plugin.json"),"utf8")).version??"unknown"}catch{}return"unknown"}var ud,p_=v(()=>{"use strict";Ci();ud="10.1.0"});var UKe={};Ar(UKe,{flush:()=>Ef,isSentryConfigured:()=>Yne,reportError:()=>ms,reportFeedback:()=>Kne});function LKe(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){Mw&&Ja(r=>{LKe(r,n),Wt(e,{extra:t})})}function Kne(e,t,n,r){Mw&&Ja(i=>{LKe(i,t),i.setTag("feedback","true"),IH({message:e,email:n,name:r||"H\xB7AI\xB7K\xB7U User"})})}function Yne(){return Mw!==""}async function Ef(e=2e3){Mw&&await tA(e)}var Mw,sh=v(()=>{"use strict";IKe();Ci();p_();Mw=Wne.sentryDsn;Mw&&zne({dsn:Mw,release:`haiku-mcp@${ud}`,tracesSampleRate:0})});var jKe={};Ar(jKe,{maybeRebuildSpaForDev:()=>min});import{execFileSync as uin}from"node:child_process";import{existsSync as VG,readdirSync as lin,statSync as FKe}from"node:fs";import{dirname as din,join as GG,resolve as Zne}from"node:path";import{fileURLToPath as fin}from"node:url";function pin(e){if(!VG(e))return 0;let t=0,n=[e];for(;n.length>0;){let r=n.pop(),i;try{i=lin(r)}catch{continue}for(let s of i){if(s==="node_modules"||s==="dist"||s==="__tests__")continue;let o=GG(r,s),a;try{a=FKe(o)}catch{continue}a.isDirectory()?n.push(o):a.isFile()&&a.mtimeMs>t&&(t=a.mtimeMs)}}return t}function hin(e){let t;try{t=din(fin(e))}catch{t=process.cwd()}let n=Zne(t,".."),r=Zne(n,".."),i=GG(r,"haiku-ui","src"),s=GG(n,"scripts","bundle-haiku-ui.mjs"),o=GG(n,"src","haiku-ui-html.ts");return!VG(i)||!VG(s)?null:{repoRoot:Zne(r,".."),uiSrcDir:i,bundledHtml:o,bundleScript:s}}function min(e){if(process.env.HAIKU_DEV_SPA_AUTO_REBUILD==="0")return;let t=hin(e);if(!t)return;let n=pin(t.uiSrcDir),r=VG(t.bundledHtml)?FKe(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{uin("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 HKe=v(()=>{"use strict"});var qKe={};Ar(qKe,{askUserInstruction:()=>Ein,getCapabilities:()=>Mi,getHarness:()=>yin,isClaudeCode:()=>oh,listHarnesses:()=>Sin,mapModelTier:()=>_in,setHarness:()=>gin,skillReference:()=>WN,subagentInstruction:()=>bin});function gin(e){let t=e.toLowerCase().replace(/[\s_]/g,"-");t in VN?Dw=t:(console.error(`[haiku] Unknown harness "${e}" \u2014 falling back to claude-code. Known: ${Object.keys(VN).join(", ")}`),Dw="claude-code"),console.error(`[haiku] Harness: ${VN[Dw].displayName}`)}function yin(){return Dw}function Mi(){return VN[Dw]}function oh(){return Dw==="claude-code"}function Sin(){return Object.keys(VN)}function bin(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 WN(e){let t=Mi();return t.promptsAsSlashCommands?`/haiku:${e}`:t.mcpPrompts?`the \`haiku:${e}\` prompt`:`the haiku ${e} workflow`}function Ein(){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 _in(e){return Mi().modelTierMap[e]||e}var VN,Dw,_f=v(()=>{"use strict";VN={"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"}}},Dw="claude-code"});var Mn,Jne,Qe,ah,KN=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})(Mn||(Mn={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Jne||(Jne={}));Qe=Mn.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,Tin,Eu,WG=v(()=>{KN();Ie=Mn.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"]),Tin=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 vin,jm,Xne=v(()=>{WG();KN();vin=(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,Mn.jsonStringifyReplacer)}`;break;case Ie.unrecognized_keys:n=`Unrecognized key(s) in object: ${Mn.joinValues(e.keys,", ")}`;break;case Ie.invalid_union:n="Invalid input";break;case Ie.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Mn.joinValues(e.options)}`;break;case Ie.invalid_enum_value:n=`Invalid enum value. Expected ${Mn.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}"`:Mn.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,Mn.assertNever(e)}return{message:n}},jm=vin});function Rin(e){BKe=e}function Lw(){return BKe}var BKe,KG=v(()=>{Xne();BKe=jm});function We(e,t){let n=Lw(),r=YN({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===jm?void 0:jm].filter(i=>!!i)});e.common.issues.push(r)}var YN,Ain,ha,Mt,h_,nc,YG,ZG,RS,Uw,Qne=v(()=>{KG();Xne();YN=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,s=[...n,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",c=r.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:t,defaultError:a}).message;return{...i,path:s,message:a}},Ain=[];ha=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let i of n){if(i.status==="aborted")return Mt;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let i of n){let s=await i.key,o=await i.value;r.push({key:s,value:o})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let i of n){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return Mt;s.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(r[s.value]=o.value)}return{status:t.value,value:r}}},Mt=Object.freeze({status:"aborted"}),h_=e=>({status:"dirty",value:e}),nc=e=>({status:"valid",value:e}),YG=e=>e.status==="aborted",ZG=e=>e.status==="dirty",RS=e=>e.status==="valid",Uw=e=>typeof Promise<"u"&&e instanceof Promise});var zKe=v(()=>{});var ut,GKe=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 YKe(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 Bin(e){return new RegExp(`^${YKe(e)}$`)}function ZKe(e){let t=`${KKe}T${YKe(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 zin(e,t){return!!((t==="v4"||!t)&&Din.test(e)||(t==="v6"||!t)&&Uin.test(e))}function Gin(e,t){if(!Pin.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function Vin(e,t){return!!((t==="v4"||!t)&&Lin.test(e)||(t==="v6"||!t)&&Fin.test(e))}function Win(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 Fw(e){if(e instanceof _u){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=ld.create(Fw(r))}return new _u({...e._def,shape:()=>t})}else return e instanceof Bm?new Bm({...e._def,type:Fw(e.element)}):e instanceof ld?ld.create(Fw(e.unwrap())):e instanceof uh?uh.create(Fw(e.unwrap())):e instanceof ch?ch.create(e.items.map(t=>Fw(t))):e}function ere(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=Mn.objectKeys(t),s=Mn.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of s){let c=ere(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=WKe(t,r),c=a.fatal??n??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!s){let o=WKe(t,r),a=o.fatal??n??!0;i.addIssue({code:"custom",...o,fatal:a})}}):wS.create()}var dd,VKe,gn,win,kin,Iin,xin,Oin,Pin,Nin,Cin,Min,$ne,Din,Lin,Uin,Fin,jin,Hin,KKe,qin,AS,m_,g_,y_,S_,jw,b_,E_,wS,qm,Tf,Hw,Bm,_u,__,Hm,JG,T_,ch,XG,qw,Bw,QG,v_,R_,A_,w_,kS,fd,ld,uh,k_,I_,zw,Kin,ZN,JN,x_,Yin,Bt,Zin,QKe,$Ke,Jin,Xin,e3e,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,Rsn,Asn,wsn,ksn,Isn,xsn,Osn,Psn,t3e=v(()=>{WG();KG();GKe();Qne();KN();dd=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}},VKe=(e,t)=>{if(RS(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}}};gn=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(Uw(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 VKe(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 RS(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=>RS(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(Uw(i)?i:Promise.resolve(i));return VKe(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 fd({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 ld.create(this,this._def)}nullable(){return uh.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Bm.create(this)}promise(){return kS.create(this,this._def)}or(t){return __.create([this,t],this._def)}and(t){return T_.create(this,t,this._def)}transform(t){return new fd({...un(this._def),schema:this,typeName:Bt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new k_({...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 I_({...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 JN.create(this,t)}readonly(){return x_.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},win=/^c[^\s-]{8,}$/i,kin=/^[0-9a-z]+$/,Iin=/^[0-9A-HJKMNP-TV-Z]{26}$/i,xin=/^[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,Pin=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Nin=/^[-+]?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)?)??$/,Cin=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Min="^(\\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])$/,Lin=/^(?:(?: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])$/,Uin=/^(([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]))$/,Fin=/^(([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])$/,jin=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Hin=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,KKe="((\\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])))",qin=new RegExp(`^${KKe}$`);AS=class e extends gn{_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 AS({checks:[],typeName:Bt.ZodString,coerce:e?.coerce??!1,...un(e)});m_=class e extends gn{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"?Mn.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"?Win(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()):Mn.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"&&Mn.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 m_({checks:[],typeName:Bt.ZodNumber,coerce:e?.coerce||!1,...un(e)});g_=class e extends gn{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()):Mn.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 g_({checks:[],typeName:Bt.ZodBigInt,coerce:e?.coerce??!1,...un(e)});y_=class extends gn{_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)}};y_.create=e=>new y_({typeName:Bt.ZodBoolean,coerce:e?.coerce||!1,...un(e)});S_=class e extends gn{_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()):Mn.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 S_({checks:[],coerce:e?.coerce||!1,typeName:Bt.ZodDate,...un(e)});jw=class extends gn{_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)}};jw.create=e=>new jw({typeName:Bt.ZodSymbol,...un(e)});b_=class extends gn{_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)}};b_.create=e=>new b_({typeName:Bt.ZodUndefined,...un(e)});E_=class extends gn{_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)}};E_.create=e=>new E_({typeName:Bt.ZodNull,...un(e)});wS=class extends gn{constructor(){super(...arguments),this._any=!0}_parse(t){return nc(t.data)}};wS.create=e=>new wS({typeName:Bt.ZodAny,...un(e)});qm=class extends gn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return nc(t.data)}};qm.create=e=>new qm({typeName:Bt.ZodUnknown,...un(e)});Tf=class extends gn{_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)});Hw=class extends gn{_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)}};Hw.create=e=>new Hw({typeName:Bt.ZodVoid,...un(e)});Bm=class e extends gn{_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 dd(n,o,n.path,a)))).then(o=>ha.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new dd(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)}};Bm.create=(e,t)=>new Bm({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Bt.ZodArray,...un(t)});_u=class e extends gn{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=Mn.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 dd(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 dd(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 Mn.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 Mn.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Fw(this)}partial(t){let n={};for(let r of Mn.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 Mn.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof ld;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return JKe(Mn.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)});__=class extends gn{_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}};__.create=(e,t)=>new __({options:e,typeName:Bt.ZodUnion,...un(t)});Hm=e=>e instanceof v_?Hm(e.schema):e instanceof fd?Hm(e.innerType()):e instanceof R_?[e.value]:e instanceof A_?e.options:e instanceof w_?Mn.objectValues(e.enum):e instanceof k_?Hm(e._def.innerType):e instanceof b_?[void 0]:e instanceof E_?[null]:e instanceof ld?[void 0,...Hm(e.unwrap())]:e instanceof uh?[null,...Hm(e.unwrap())]:e instanceof ZN||e instanceof x_?Hm(e.unwrap()):e instanceof I_?Hm(e._def.innerType):[],JG=class e extends gn{_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=Hm(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)})}};T_=class extends gn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(YG(s)||YG(o))return Mt;let a=ere(s.value,o.value);return a.valid?((ZG(s)||ZG(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}))}};T_.create=(e,t,n)=>new T_({left:e,right:t,typeName:Bt.ZodIntersection,...un(n)});ch=class e extends gn{_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 dd(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)})};XG=class e extends gn{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 dd(r,a,r.path,a)),value:o._parse(new dd(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 gn?new e({keyType:t,valueType:n,typeName:Bt.ZodRecord,...un(r)}):new e({keyType:AS.create(),valueType:t,typeName:Bt.ZodRecord,...un(n)})}},qw=class extends gn{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 dd(r,a,r.path,[u,"key"])),value:s._parse(new dd(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}}}};qw.create=(e,t,n)=>new qw({valueType:t,keyType:e,typeName:Bt.ZodMap,...un(n)});Bw=class e extends gn{_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 dd(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)}};Bw.create=(e,t)=>new Bw({valueType:e,minSize:null,maxSize:null,typeName:Bt.ZodSet,...un(t)});QG=class e extends gn{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 YN({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Lw(),jm].filter(u=>!!u),issueData:{code:Ie.invalid_arguments,argumentsError:c}})}function i(a,c){return YN({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Lw(),jm].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 kS){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(qm.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(qm.create()),returns:n||qm.create(),typeName:Bt.ZodFunction,...un(r)})}},v_=class extends gn{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})}};v_.create=(e,t)=>new v_({getter:e,typeName:Bt.ZodLazy,...un(t)});R_=class extends gn{_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}};R_.create=(e,t)=>new R_({value:e,typeName:Bt.ZodLiteral,...un(t)});A_=class e extends gn{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return We(n,{expected:Mn.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})}};A_.create=JKe;w_=class extends gn{_parse(t){let n=Mn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==Qe.string&&r.parsedType!==Qe.number){let i=Mn.objectValues(n);return We(r,{expected:Mn.joinValues(i),received:r.parsedType,code:Ie.invalid_type}),Mt}if(this._cache||(this._cache=new Set(Mn.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=Mn.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}};w_.create=(e,t)=>new w_({values:e,typeName:Bt.ZodNativeEnum,...un(t)});kS=class extends gn{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})))}};kS.create=(e,t)=>new kS({type:e,typeName:Bt.ZodPromise,...un(t)});fd=class extends gn{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"?h_(c.value):n.value==="dirty"?h_(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"?h_(a.value):n.value==="dirty"?h_(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(!RS(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=>RS(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:n.value,value:a})):Mt);Mn.assertNever(i)}};fd.create=(e,t,n)=>new fd({schema:e,typeName:Bt.ZodEffects,effect:t,...un(n)});fd.createWithPreprocess=(e,t,n)=>new fd({schema:t,effect:{type:"preprocess",transform:e},typeName:Bt.ZodEffects,...un(n)});ld=class extends gn{_parse(t){return this._getType(t)===Qe.undefined?nc(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ld.create=(e,t)=>new ld({innerType:e,typeName:Bt.ZodOptional,...un(t)});uh=class extends gn{_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)});k_=class extends gn{_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}};k_.create=(e,t)=>new k_({innerType:e,typeName:Bt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...un(t)});I_=class extends gn{_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 Uw(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}};I_.create=(e,t)=>new I_({innerType:e,typeName:Bt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...un(t)});zw=class extends gn{_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}}};zw.create=e=>new zw({typeName:Bt.ZodNaN,...un(e)});Kin=Symbol("zod_brand"),ZN=class extends gn{_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}},JN=class e extends gn{_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(),h_(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})}},x_=class extends gn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(RS(i)&&(i.value=Object.freeze(i.value)),i);return Uw(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};x_.create=(e,t)=>new x_({innerType:e,typeName:Bt.ZodReadonly,...un(t)});Yin={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={}));Zin=(e,t={message:`Input not instance of ${e.name}`})=>XKe(n=>n instanceof e,t),QKe=AS.create,$Ke=m_.create,Jin=zw.create,Xin=g_.create,e3e=y_.create,Qin=S_.create,$in=jw.create,esn=b_.create,tsn=E_.create,nsn=wS.create,rsn=qm.create,isn=Tf.create,ssn=Hw.create,osn=Bm.create,asn=_u.create,csn=_u.strictCreate,usn=__.create,lsn=JG.create,dsn=T_.create,fsn=ch.create,psn=XG.create,hsn=qw.create,msn=Bw.create,gsn=QG.create,ysn=v_.create,Ssn=R_.create,bsn=A_.create,Esn=w_.create,_sn=kS.create,Tsn=fd.create,vsn=ld.create,Rsn=uh.create,Asn=fd.createWithPreprocess,wsn=JN.create,ksn=()=>QKe().optional(),Isn=()=>$Ke().optional(),xsn=()=>e3e().optional(),Osn={string:(e=>AS.create({...e,coerce:!0})),number:(e=>m_.create({...e,coerce:!0})),boolean:(e=>y_.create({...e,coerce:!0})),bigint:(e=>g_.create({...e,coerce:!0})),date:(e=>S_.create({...e,coerce:!0}))},Psn=Mt});var O={};Ar(O,{BRAND:()=>Kin,DIRTY:()=>h_,EMPTY_PATH:()=>Ain,INVALID:()=>Mt,NEVER:()=>Psn,OK:()=>nc,ParseStatus:()=>ha,Schema:()=>gn,ZodAny:()=>wS,ZodArray:()=>Bm,ZodBigInt:()=>g_,ZodBoolean:()=>y_,ZodBranded:()=>ZN,ZodCatch:()=>I_,ZodDate:()=>S_,ZodDefault:()=>k_,ZodDiscriminatedUnion:()=>JG,ZodEffects:()=>fd,ZodEnum:()=>A_,ZodError:()=>Eu,ZodFirstPartyTypeKind:()=>Bt,ZodFunction:()=>QG,ZodIntersection:()=>T_,ZodIssueCode:()=>Ie,ZodLazy:()=>v_,ZodLiteral:()=>R_,ZodMap:()=>qw,ZodNaN:()=>zw,ZodNativeEnum:()=>w_,ZodNever:()=>Tf,ZodNull:()=>E_,ZodNullable:()=>uh,ZodNumber:()=>m_,ZodObject:()=>_u,ZodOptional:()=>ld,ZodParsedType:()=>Qe,ZodPipeline:()=>JN,ZodPromise:()=>kS,ZodReadonly:()=>x_,ZodRecord:()=>XG,ZodSchema:()=>gn,ZodSet:()=>Bw,ZodString:()=>AS,ZodSymbol:()=>jw,ZodTransformer:()=>fd,ZodTuple:()=>ch,ZodType:()=>gn,ZodUndefined:()=>b_,ZodUnion:()=>__,ZodUnknown:()=>qm,ZodVoid:()=>Hw,addIssueToContext:()=>We,any:()=>nsn,array:()=>osn,bigint:()=>Xin,boolean:()=>e3e,coerce:()=>Osn,custom:()=>XKe,date:()=>Qin,datetimeRegex:()=>ZKe,defaultErrorMap:()=>jm,discriminatedUnion:()=>lsn,effect:()=>Tsn,enum:()=>bsn,function:()=>gsn,getErrorMap:()=>Lw,getParsedType:()=>ah,instanceof:()=>Zin,intersection:()=>dsn,isAborted:()=>YG,isAsync:()=>Uw,isDirty:()=>ZG,isValid:()=>RS,late:()=>Yin,lazy:()=>ysn,literal:()=>Ssn,makeIssue:()=>YN,map:()=>hsn,nan:()=>Jin,nativeEnum:()=>Esn,never:()=>isn,null:()=>tsn,nullable:()=>Rsn,number:()=>$Ke,object:()=>asn,objectUtil:()=>Jne,oboolean:()=>xsn,onumber:()=>Isn,optional:()=>vsn,ostring:()=>ksn,pipeline:()=>wsn,preprocess:()=>Asn,promise:()=>_sn,quotelessJson:()=>Tin,record:()=>psn,set:()=>msn,setErrorMap:()=>Rin,strictObject:()=>csn,string:()=>QKe,symbol:()=>$in,transformer:()=>Tsn,tuple:()=>fsn,undefined:()=>esn,union:()=>usn,unknown:()=>rsn,util:()=>Mn,void:()=>ssn});var tre=v(()=>{KG();Qne();zKe();KN();t3e();WG()});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 pd(e){return e&&Object.assign($G,e),$G}var CHr,zm,$G,Gw=v(()=>{CHr=Object.freeze({status:"aborted"});zm=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},$G={}});var or={};Ar(or,{BIGINT_FORMAT_RANGES:()=>r3e,Class:()=>rre,NUMBER_FORMAT_RANGES:()=>dre,aborted:()=>P_,allowsEval:()=>cre,assert:()=>Lsn,assertEqual:()=>Nsn,assertIs:()=>Msn,assertNever:()=>Dsn,assertNotEqual:()=>Csn,assignProp:()=>are,cached:()=>QN,captureStackTrace:()=>t2,cleanEnum:()=>Zsn,cleanRegex:()=>eC,clone:()=>lh,createTransparentProxy:()=>Bsn,defineLazy:()=>ni,esc:()=>O_,escapeRegex:()=>IS,extend:()=>Vsn,finalizeIssue:()=>vf,floatSafeRemainder:()=>ore,getElementAtPath:()=>Usn,getEnumValues:()=>ire,getLengthableOrigin:()=>tC,getParsedType:()=>qsn,getSizableOrigin:()=>i3e,isObject:()=>Vw,isPlainObject:()=>Ww,issue:()=>fre,joinValues:()=>e2,jsonStringifyReplacer:()=>sre,merge:()=>Wsn,normalizeParams:()=>Dt,nullish:()=>$N,numKeys:()=>Hsn,omit:()=>Gsn,optionalKeys:()=>lre,partial:()=>Ksn,pick:()=>zsn,prefixIssues:()=>dh,primitiveTypes:()=>n3e,promiseAllObject:()=>Fsn,propertyKeyTypes:()=>ure,randomString:()=>jsn,required:()=>Ysn,stringifyPrimitive:()=>n2,unwrapMessage:()=>XN});function Nsn(e){return e}function Csn(e){return e}function Msn(e){}function Dsn(e){throw new Error}function Lsn(e){}function ire(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 e2(e,t="|"){return e.map(n=>n2(n)).join(t)}function sre(e,t){return typeof t=="bigint"?t.toString():t}function QN(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function $N(e){return e==null}function eC(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function ore(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 are(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Usn(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function Fsn(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 Bsn(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 n2(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function lre(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function zsn(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 Gsn(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 Vsn(e,t){if(!Ww(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 are(this,"shape",r),r},checks:[]};return lh(e,n)}function Wsn(e,t){return lh(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return are(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function Ksn(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 Ysn(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 P_(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function XN(e){return typeof e=="string"?e:e?.message}function vf(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=XN(e.inst?._zod.def?.error?.(e))??XN(t?.error?.(e))??XN(n.customError?.(e))??XN(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function i3e(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function tC(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function fre(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Zsn(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}var t2,cre,qsn,ure,n3e,dre,r3e,rre,Gm=v(()=>{t2=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};cre=QN(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});qsn=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}`)}},ure=new Set(["string","number","symbol"]),n3e=new Set(["string","number","bigint","boolean","symbol","undefined"]);dre={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]},r3e={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};rre=class{constructor(...t){}}});function o3e(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 a3e(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{Gw();Gm();s3e=(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,sre,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},r2=me("$ZodError",s3e),pre=me("$ZodError",s3e,{Parent:Error})});var c3e,u3e,mre,nC,gre,i2,yre=v(()=>{Gw();hre();Gm();c3e=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 zm;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>vf(c,s,pd())));throw t2(a,i?.callee),a}return o.value},u3e=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,pd())));throw t2(a,i?.callee),a}return o.value},mre=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 zm;return s.issues.length?{success:!1,error:new(e??r2)(s.issues.map(o=>vf(o,i,pd())))}:{success:!0,data:s.value}},nC=mre(pre),gre=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,pd())))}:{success:!0,data:s.value}},i2=gre(pre)});function b3e(){return new RegExp(Xsn,"u")}function x3e(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 O3e(e){return new RegExp(`^${x3e(e)}$`)}function P3e(e){let t=x3e({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(`^${k3e}T(?:${r})$`)}var l3e,d3e,f3e,p3e,h3e,m3e,g3e,y3e,Sre,S3e,Xsn,E3e,_3e,T3e,v3e,R3e,bre,A3e,w3e,k3e,I3e,N3e,C3e,M3e,D3e,L3e,U3e,F3e,s2=v(()=>{l3e=/^[cC][^\s-]{8,}$/,d3e=/^[0-9a-z]+$/,f3e=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,p3e=/^[0-9a-vA-V]{20}$/,h3e=/^[A-Za-z0-9]{27}$/,m3e=/^[a-zA-Z0-9_-]{21}$/,g3e=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,y3e=/^([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})$/,Sre=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)$/,S3e=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Xsn="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";E3e=/^(?:(?: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])$/,_3e=/^(([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})$/,T3e=/^((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])$/,v3e=/^(([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])$/,R3e=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,bre=/^[A-Za-z0-9_-]*$/,A3e=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,w3e=/^\+(?:[0-9]){6,14}[0-9]$/,k3e="(?:(?:\\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])))",I3e=new RegExp(`^${k3e}$`);N3e=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},C3e=/^\d+$/,M3e=/^-?\d+(?:\.\d+)?/i,D3e=/true|false/i,L3e=/null/i,U3e=/^[^A-Z]*$/,F3e=/^[^a-z]*$/});var rc,j3e,_re,Tre,H3e,q3e,B3e,z3e,G3e,rC,V3e,W3e,K3e,Y3e,Z3e,J3e,X3e,o2=v(()=>{Gw();s2();Gm();rc=me("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),j3e={number:"number",bigint:"bigint",object:"date"},_re=me("$ZodCheckLessThan",(e,t)=>{rc.init(e,t);let n=j3e[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=j3e[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})}}),H3e=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):ore(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})}}),q3e=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]=dre[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=C3e)}),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})}}),B3e=me("$ZodCheckMaxLength",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!$N(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=tC(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),z3e=me("$ZodCheckMinLength",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!$N(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=tC(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),G3e=me("$ZodCheckLengthEquals",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!$N(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=tC(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})}}),rC=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=()=>{})}),V3e=me("$ZodCheckRegex",(e,t)=>{rC.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})}}),W3e=me("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=U3e),rC.init(e,t)}),K3e=me("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=F3e),rC.init(e,t)}),Y3e=me("$ZodCheckIncludes",(e,t)=>{rc.init(e,t);let n=IS(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(`^${IS(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})}}),J3e=me("$ZodCheckEndsWith",(e,t)=>{rc.init(e,t);let n=new RegExp(`.*${IS(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})}}),X3e=me("$ZodCheckOverwrite",(e,t)=>{rc.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}})});var a2,vre=v(()=>{a2=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 X3e,Rre=v(()=>{X3e={major:4,minor:0,patch:0}});function w9e(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}function Xsn(e){if(!bre.test(e))return!1;let t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return w9e(n)}function Qsn(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 Q3e(e,t,n){e.issues.length&&t.issues.push(...dh(n,e.issues)),t.value[n]=e.value}function c2(e,t,n){e.issues.length&&t.issues.push(...dh(n,e.issues)),t.value[n]=e.value}function $3e(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 e9e(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,pd())))}),t}function Are(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(Ww(e)&&Ww(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=Are(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{o2();Gw();vre();yre();s2();Gm();Rre();Gm();ri=me("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=X3e;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=P_(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 zm;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=P_(s,d)))});else{if(s.issues.length===d)continue;c||(c=P_(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 zm;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=nC(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return i2(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),u2=me("$ZodString",(e,t)=>{ri.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??O3e(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)=>{rC.init(e,t),u2.init(e,t)}),a9e=me("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=m3e),hi.init(e,t)}),c9e=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=Sre(r))}else t.pattern??(t.pattern=Sre());hi.init(e,t)}),u9e=me("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=g3e),hi.init(e,t)}),l9e=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:v3e.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})}}}),d9e=me("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=y3e()),hi.init(e,t)}),f9e=me("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=p3e),hi.init(e,t)}),p9e=me("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=c3e),hi.init(e,t)}),h9e=me("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=u3e),hi.init(e,t)}),m9e=me("$ZodULID",(e,t)=>{t.pattern??(t.pattern=l3e),hi.init(e,t)}),g9e=me("$ZodXID",(e,t)=>{t.pattern??(t.pattern=d3e),hi.init(e,t)}),y9e=me("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=f3e),hi.init(e,t)}),S9e=me("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=x3e(t)),hi.init(e,t)}),b9e=me("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=w3e),hi.init(e,t)}),E9e=me("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=I3e(t)),hi.init(e,t)}),_9e=me("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=h3e),hi.init(e,t)}),T9e=me("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=S3e),hi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),v9e=me("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=b3e),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})}}}),R9e=me("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=E3e),hi.init(e,t)}),A9e=me("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=_3e),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})}}});k9e=me("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=T3e),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{w9e(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});I9e=me("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=bre),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{Xsn(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),x9e=me("$ZodE164",(e,t)=>{t.pattern??(t.pattern=R3e),hi.init(e,t)});O9e=me("$ZodJWT",(e,t)=>{hi.init(e,t),e._zod.check=n=>{Qsn(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),wre=me("$ZodNumber",(e,t)=>{ri.init(e,t),e._zod.pattern=e._zod.bag.pattern??N3e,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}}),P9e=me("$ZodNumber",(e,t)=>{j3e.init(e,t),wre.init(e,t)}),N9e=me("$ZodBoolean",(e,t)=>{ri.init(e,t),e._zod.pattern=C3e,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}}),C9e=me("$ZodNull",(e,t)=>{ri.init(e,t),e._zod.pattern=M3e,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}}),M9e=me("$ZodUnknown",(e,t)=>{ri.init(e,t),e._zod.parse=n=>n}),D9e=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)});L9e=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;oQ3e(u,n,o))):Q3e(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});U9e=me("$ZodObject",(e,t)=>{ri.init(e,t);let n=QN(()=>{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=lre(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 a2(["shape","payload","ctx"]),p=n.value,h=b=>{let S=O_(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=O_(b);f.write(` +`))}}});var $3e,Rre=v(()=>{$3e={major:4,minor:0,patch:0}});function I9e(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}function Qsn(e){if(!bre.test(e))return!1;let t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return I9e(n)}function $sn(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 e9e(e,t,n){e.issues.length&&t.issues.push(...dh(n,e.issues)),t.value[n]=e.value}function c2(e,t,n){e.issues.length&&t.issues.push(...dh(n,e.issues)),t.value[n]=e.value}function t9e(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 n9e(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,pd())))}),t}function Are(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(Ww(e)&&Ww(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=Are(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{o2();Gw();vre();yre();s2();Gm();Rre();Gm();ri=me("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=$3e;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=P_(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 zm;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=P_(s,d)))});else{if(s.issues.length===d)continue;c||(c=P_(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 zm;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=nC(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return i2(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),u2=me("$ZodString",(e,t)=>{ri.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??N3e(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)=>{rC.init(e,t),u2.init(e,t)}),u9e=me("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=y3e),hi.init(e,t)}),l9e=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=Sre(r))}else t.pattern??(t.pattern=Sre());hi.init(e,t)}),d9e=me("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=S3e),hi.init(e,t)}),f9e=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:A3e.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})}}}),p9e=me("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=b3e()),hi.init(e,t)}),h9e=me("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=m3e),hi.init(e,t)}),m9e=me("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=l3e),hi.init(e,t)}),g9e=me("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=d3e),hi.init(e,t)}),y9e=me("$ZodULID",(e,t)=>{t.pattern??(t.pattern=f3e),hi.init(e,t)}),S9e=me("$ZodXID",(e,t)=>{t.pattern??(t.pattern=p3e),hi.init(e,t)}),b9e=me("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=h3e),hi.init(e,t)}),E9e=me("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=P3e(t)),hi.init(e,t)}),_9e=me("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=I3e),hi.init(e,t)}),T9e=me("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=O3e(t)),hi.init(e,t)}),v9e=me("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=g3e),hi.init(e,t)}),R9e=me("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=E3e),hi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),A9e=me("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=_3e),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})}}}),w9e=me("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=T3e),hi.init(e,t)}),k9e=me("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=v3e),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})}}});x9e=me("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=R3e),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{I9e(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});O9e=me("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=bre),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{Qsn(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),P9e=me("$ZodE164",(e,t)=>{t.pattern??(t.pattern=w3e),hi.init(e,t)});N9e=me("$ZodJWT",(e,t)=>{hi.init(e,t),e._zod.check=n=>{$sn(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),wre=me("$ZodNumber",(e,t)=>{ri.init(e,t),e._zod.pattern=e._zod.bag.pattern??M3e,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}}),C9e=me("$ZodNumber",(e,t)=>{q3e.init(e,t),wre.init(e,t)}),M9e=me("$ZodBoolean",(e,t)=>{ri.init(e,t),e._zod.pattern=D3e,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}}),D9e=me("$ZodNull",(e,t)=>{ri.init(e,t),e._zod.pattern=L3e,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}}),L9e=me("$ZodUnknown",(e,t)=>{ri.init(e,t),e._zod.parse=n=>n}),U9e=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)});F9e=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;oe9e(u,n,o))):e9e(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});j9e=me("$ZodObject",(e,t)=>{ri.init(e,t);let n=QN(()=>{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=lre(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 a2(["shape","payload","ctx"]),p=n.value,h=b=>{let S=O_(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=O_(b);f.write(` if (${S}.issues.length) { if (input[${E}] === undefined) { if (${E} in input) { @@ -62,16 +62,16 @@ Mongoose Error Code: ${t.code}`:""}`})}function Ste(e,t,n,r=void 0){n&&(0,hN.saf if (${S}.issues.length) payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ ...iss, path: iss.path ? [${O_(b)}, ...iss.path] : [${O_(b)}] - })));`),f.write(`newResult[${O_(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=Vw,o=!$G.jitless,c=o&&cre.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?$3e(A,d,E,p):c2(A,d,E))):R?$3e(T,d,E,p):c2(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(_=>c2(_,d,S))):c2(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}});kre=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=>eC(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=>e9e(o,n,e,r)):e9e(s,n,e,r)}}),F9e=me("$ZodDiscriminatedUnion",(e,t)=>{kre.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=QN(()=>{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(!Vw(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)}}),j9e=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])=>t9e(n,c,u)):t9e(n,s,o)}});H9e=me("$ZodRecord",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Ww(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,pd())),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}}),q9e=me("$ZodEnum",(e,t)=>{ri.init(e,t);let n=ire(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>ure.has(typeof r)).map(r=>typeof r=="string"?IS(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}}),B9e=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"?IS(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}}),z9e=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 zm;return n.value=i,n}}),G9e=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(`^(${eC(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)}),V9e=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(`^(${eC(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)}),W9e=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=>n9e(s,t)):n9e(i,t)}});K9e=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))}),Y9e=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=>r9e(s,e)):r9e(i,e)}});Z9e=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,pd()))},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,pd()))},input:n.value}),n.issues=[]),n)}}),J9e=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=>i9e(s,t,r)):i9e(i,t,r)}});X9e=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(s9e):s9e(i)}});Q9e=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=>o9e(s,n,r,e));o9e(i,n,r,e)}})});function eYe(){return{localeError:eon()}}var $sn,eon,tYe=v(()=>{Gm();$sn=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},eon=()=>{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 ${$sn(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${n2(r.values[0])}`:`Invalid option: expected one of ${e2(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":""}: ${e2(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 l2=v(()=>{});function ton(){return new xre}var xre,iC,nYe=v(()=>{xre=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)}};iC=ton()});function rYe(e,t){return new e({type:"string",...Dt(t)})}function iYe(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Dt(t)})}function Ore(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Dt(t)})}function sYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Dt(t)})}function oYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Dt(t)})}function aYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Dt(t)})}function cYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Dt(t)})}function uYe(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Dt(t)})}function lYe(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Dt(t)})}function dYe(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Dt(t)})}function fYe(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Dt(t)})}function pYe(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Dt(t)})}function hYe(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Dt(t)})}function mYe(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Dt(t)})}function gYe(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Dt(t)})}function yYe(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Dt(t)})}function SYe(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Dt(t)})}function bYe(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Dt(t)})}function EYe(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Dt(t)})}function _Ye(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Dt(t)})}function TYe(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Dt(t)})}function vYe(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Dt(t)})}function RYe(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Dt(t)})}function AYe(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Dt(t)})}function wYe(e,t){return new e({type:"string",format:"date",check:"string_format",...Dt(t)})}function kYe(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Dt(t)})}function IYe(e,t){return new e({type:"string",format:"duration",check:"string_format",...Dt(t)})}function xYe(e,t){return new e({type:"number",checks:[],...Dt(t)})}function OYe(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Dt(t)})}function PYe(e,t){return new e({type:"boolean",...Dt(t)})}function NYe(e,t){return new e({type:"null",...Dt(t)})}function CYe(e){return new e({type:"unknown"})}function MYe(e,t){return new e({type:"never",...Dt(t)})}function d2(e,t){return new _re({check:"less_than",...Dt(t),value:e,inclusive:!1})}function sC(e,t){return new _re({check:"less_than",...Dt(t),value:e,inclusive:!0})}function f2(e,t){return new Tre({check:"greater_than",...Dt(t),value:e,inclusive:!1})}function oC(e,t){return new Tre({check:"greater_than",...Dt(t),value:e,inclusive:!0})}function p2(e,t){return new F3e({check:"multiple_of",...Dt(t),value:e})}function h2(e,t){return new H3e({check:"max_length",...Dt(t),maximum:e})}function Kw(e,t){return new q3e({check:"min_length",...Dt(t),minimum:e})}function m2(e,t){return new B3e({check:"length_equals",...Dt(t),length:e})}function Pre(e,t){return new z3e({check:"string_format",format:"regex",...Dt(t),pattern:e})}function Nre(e){return new G3e({check:"string_format",format:"lowercase",...Dt(e)})}function Cre(e){return new V3e({check:"string_format",format:"uppercase",...Dt(e)})}function Mre(e,t){return new W3e({check:"string_format",format:"includes",...Dt(t),includes:e})}function Dre(e,t){return new K3e({check:"string_format",format:"starts_with",...Dt(t),prefix:e})}function Lre(e,t){return new Y3e({check:"string_format",format:"ends_with",...Dt(t),suffix:e})}function N_(e){return new Z3e({check:"overwrite",tx:e})}function Ure(e){return N_(t=>t.normalize(e))}function Fre(){return N_(e=>e.trim())}function jre(){return N_(e=>e.toLowerCase())}function Hre(){return N_(e=>e.toUpperCase())}function DYe(e,t,n){return new e({type:"array",element:t,...Dt(n)})}function LYe(e,t,n){let r=Dt(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function UYe(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Dt(n)})}var FYe=v(()=>{o2();Gm()});var jYe=v(()=>{});var HYe=v(()=>{});var qYe=v(()=>{});var hd=v(()=>{Gw();yre();hre();$9e();o2();Rre();Gm();s2();l2();nYe();vre();jYe();FYe();HYe();qYe()});var BYe=v(()=>{hd()});var zYe=v(()=>{});var GYe=v(()=>{});var VYe=v(()=>{});var WYe=v(()=>{});var KYe=v(()=>{hd();BYe();zYe();GYe();l2();VYe();WYe()});var YYe=v(()=>{KYe()});var ZYe=v(()=>{YYe()});function Zw(e){return!!e._zod}function xS(e,t){return Zw(e)?nC(e,t):e.safeParse(t)}function g2(e){if(!e)return;let t;if(Zw(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function JYe(e){if(Zw(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 y2=v(()=>{ZYe()});var qre=v(()=>{hd()});var aC={};Ar(aC,{ZodISODate:()=>QYe,ZodISODateTime:()=>XYe,ZodISODuration:()=>eZe,ZodISOTime:()=>$Ye,date:()=>zre,datetime:()=>Bre,duration:()=>Vre,time:()=>Gre});function Bre(e){return AYe(XYe,e)}function zre(e){return wYe(QYe,e)}function Gre(e){return kYe($Ye,e)}function Vre(e){return IYe(eZe,e)}var XYe,QYe,$Ye,eZe,Wre=v(()=>{hd();Kre();XYe=me("ZodISODateTime",(e,t)=>{S9e.init(e,t),Di.init(e,t)});QYe=me("ZodISODate",(e,t)=>{b9e.init(e,t),Di.init(e,t)});$Ye=me("ZodISOTime",(e,t)=>{E9e.init(e,t),Di.init(e,t)});eZe=me("ZodISODuration",(e,t)=>{_9e.init(e,t),Di.init(e,t)})});var tZe,Dqr,cC,Yre=v(()=>{hd();hd();tZe=(e,t)=>{r2.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>s3e(e,n)},flatten:{value:n=>i3e(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},Dqr=me("ZodError",tZe),cC=me("ZodError",tZe,{Parent:Error})});var nZe,rZe,iZe,sZe,Zre=v(()=>{hd();Yre();nZe=o3e(cC),rZe=a3e(cC),iZe=mre(cC),sZe=gre(cC)});function le(e){return rYe(fon,e)}function vr(e){return xYe(lZe,e)}function aZe(e){return OYe(Oon,e)}function Vo(e){return PYe(Pon,e)}function dZe(e){return NYe(Non,e)}function Li(){return CYe(Con)}function Don(e){return MYe(Mon,e)}function Vn(e,t){return DYe(Lon,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 fZe(n)}function Bc(e,t){return new fZe({type:"object",get shape(){return or.assignProp(this,"shape",{...e}),this.shape},catchall:Li(),...or.normalizeParams(t)})}function mi(e,t){return new pZe({type:"union",options:e,...or.normalizeParams(t)})}function Qre(e,t,n){return new Uon({type:"union",options:t,discriminator:e,...or.normalizeParams(n)})}function b2(e,t){return new Fon({type:"intersection",left:e,right:t})}function ii(e,t,n){return new jon({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 Jre({type:"enum",entries:n,...or.normalizeParams(t)})}function ft(e,t){return new Hon({type:"literal",values:Array.isArray(e)?e:[e],...or.normalizeParams(t)})}function hZe(e){return new qon({type:"transform",transform:e})}function Ui(e){return new mZe({type:"optional",innerType:e})}function cZe(e){return new Bon({type:"nullable",innerType:e})}function Gon(e,t){return new zon({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Won(e,t){return new Von({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Kon(e,t){return new gZe({type:"nonoptional",innerType:e,...or.normalizeParams(t)})}function Zon(e,t){return new Yon({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function Xre(e,t){return new Jon({type:"pipe",in:e,out:t})}function Qon(e){return new Xon({type:"readonly",innerType:e})}function $on(e){let t=new rc({check:"custom"});return t._zod.check=e,t}function SZe(e,t){return LYe(yZe,e??(()=>!0),t)}function ean(e,t={}){return UYe(yZe,e,t)}function tan(e){let t=$on(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 $re(e,t){return Xre(hZe(e),t)}var Ji,uZe,fon,Di,pon,oZe,S2,hon,mon,gon,yon,Son,bon,Eon,_on,Ton,von,Ron,Aon,won,kon,Ion,xon,lZe,Oon,Pon,Non,Con,Mon,Lon,fZe,pZe,Uon,Fon,jon,Jre,Hon,qon,mZe,Bon,zon,Von,gZe,Yon,Jon,Xon,yZe,Kre=v(()=>{hd();hd();qre();Wre();Zre();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)=>nZe(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>iZe(e,n,r),e.parseAsync=async(n,r)=>rZe(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>sZe(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(ean(n,r)),e.superRefine=n=>e.check(tan(n)),e.overwrite=n=>e.check(N_(n)),e.optional=()=>Ui(e),e.nullable=()=>cZe(e),e.nullish=()=>Ui(cZe(e)),e.nonoptional=n=>Kon(e,n),e.array=()=>Vn(e),e.or=n=>mi([e,n]),e.and=n=>b2(e,n),e.transform=n=>Xre(e,hZe(n)),e.default=n=>Gon(e,n),e.prefault=n=>Won(e,n),e.catch=n=>Zon(e,n),e.pipe=n=>Xre(e,n),e.readonly=()=>Qon(e),e.describe=n=>{let r=e.clone();return iC.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return iC.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return iC.get(e);let r=e.clone();return iC.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),uZe=me("_ZodString",(e,t)=>{u2.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(Pre(...r)),e.includes=(...r)=>e.check(Mre(...r)),e.startsWith=(...r)=>e.check(Dre(...r)),e.endsWith=(...r)=>e.check(Lre(...r)),e.min=(...r)=>e.check(Kw(...r)),e.max=(...r)=>e.check(h2(...r)),e.length=(...r)=>e.check(m2(...r)),e.nonempty=(...r)=>e.check(Kw(1,...r)),e.lowercase=r=>e.check(Nre(r)),e.uppercase=r=>e.check(Cre(r)),e.trim=()=>e.check(Fre()),e.normalize=(...r)=>e.check(Ure(...r)),e.toLowerCase=()=>e.check(jre()),e.toUpperCase=()=>e.check(Hre())}),fon=me("ZodString",(e,t)=>{u2.init(e,t),uZe.init(e,t),e.email=n=>e.check(iYe(pon,n)),e.url=n=>e.check(uYe(hon,n)),e.jwt=n=>e.check(RYe(xon,n)),e.emoji=n=>e.check(lYe(mon,n)),e.guid=n=>e.check(Ore(oZe,n)),e.uuid=n=>e.check(sYe(S2,n)),e.uuidv4=n=>e.check(oYe(S2,n)),e.uuidv6=n=>e.check(aYe(S2,n)),e.uuidv7=n=>e.check(cYe(S2,n)),e.nanoid=n=>e.check(dYe(gon,n)),e.guid=n=>e.check(Ore(oZe,n)),e.cuid=n=>e.check(fYe(yon,n)),e.cuid2=n=>e.check(pYe(Son,n)),e.ulid=n=>e.check(hYe(bon,n)),e.base64=n=>e.check(_Ye(won,n)),e.base64url=n=>e.check(TYe(kon,n)),e.xid=n=>e.check(mYe(Eon,n)),e.ksuid=n=>e.check(gYe(_on,n)),e.ipv4=n=>e.check(yYe(Ton,n)),e.ipv6=n=>e.check(SYe(von,n)),e.cidrv4=n=>e.check(bYe(Ron,n)),e.cidrv6=n=>e.check(EYe(Aon,n)),e.e164=n=>e.check(vYe(Ion,n)),e.datetime=n=>e.check(Bre(n)),e.date=n=>e.check(zre(n)),e.time=n=>e.check(Gre(n)),e.duration=n=>e.check(Vre(n))});Di=me("ZodStringFormat",(e,t)=>{hi.init(e,t),uZe.init(e,t)}),pon=me("ZodEmail",(e,t)=>{u9e.init(e,t),Di.init(e,t)}),oZe=me("ZodGUID",(e,t)=>{a9e.init(e,t),Di.init(e,t)}),S2=me("ZodUUID",(e,t)=>{c9e.init(e,t),Di.init(e,t)}),hon=me("ZodURL",(e,t)=>{l9e.init(e,t),Di.init(e,t)}),mon=me("ZodEmoji",(e,t)=>{d9e.init(e,t),Di.init(e,t)}),gon=me("ZodNanoID",(e,t)=>{f9e.init(e,t),Di.init(e,t)}),yon=me("ZodCUID",(e,t)=>{p9e.init(e,t),Di.init(e,t)}),Son=me("ZodCUID2",(e,t)=>{h9e.init(e,t),Di.init(e,t)}),bon=me("ZodULID",(e,t)=>{m9e.init(e,t),Di.init(e,t)}),Eon=me("ZodXID",(e,t)=>{g9e.init(e,t),Di.init(e,t)}),_on=me("ZodKSUID",(e,t)=>{y9e.init(e,t),Di.init(e,t)}),Ton=me("ZodIPv4",(e,t)=>{T9e.init(e,t),Di.init(e,t)}),von=me("ZodIPv6",(e,t)=>{v9e.init(e,t),Di.init(e,t)}),Ron=me("ZodCIDRv4",(e,t)=>{R9e.init(e,t),Di.init(e,t)}),Aon=me("ZodCIDRv6",(e,t)=>{A9e.init(e,t),Di.init(e,t)}),won=me("ZodBase64",(e,t)=>{k9e.init(e,t),Di.init(e,t)}),kon=me("ZodBase64URL",(e,t)=>{I9e.init(e,t),Di.init(e,t)}),Ion=me("ZodE164",(e,t)=>{x9e.init(e,t),Di.init(e,t)}),xon=me("ZodJWT",(e,t)=>{O9e.init(e,t),Di.init(e,t)}),lZe=me("ZodNumber",(e,t)=>{wre.init(e,t),Ji.init(e,t),e.gt=(r,i)=>e.check(f2(r,i)),e.gte=(r,i)=>e.check(oC(r,i)),e.min=(r,i)=>e.check(oC(r,i)),e.lt=(r,i)=>e.check(d2(r,i)),e.lte=(r,i)=>e.check(sC(r,i)),e.max=(r,i)=>e.check(sC(r,i)),e.int=r=>e.check(aZe(r)),e.safe=r=>e.check(aZe(r)),e.positive=r=>e.check(f2(0,r)),e.nonnegative=r=>e.check(oC(0,r)),e.negative=r=>e.check(d2(0,r)),e.nonpositive=r=>e.check(sC(0,r)),e.multipleOf=(r,i)=>e.check(p2(r,i)),e.step=(r,i)=>e.check(p2(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});Oon=me("ZodNumberFormat",(e,t)=>{P9e.init(e,t),lZe.init(e,t)});Pon=me("ZodBoolean",(e,t)=>{N9e.init(e,t),Ji.init(e,t)});Non=me("ZodNull",(e,t)=>{C9e.init(e,t),Ji.init(e,t)});Con=me("ZodUnknown",(e,t)=>{M9e.init(e,t),Ji.init(e,t)});Mon=me("ZodNever",(e,t)=>{D9e.init(e,t),Ji.init(e,t)});Lon=me("ZodArray",(e,t)=>{L9e.init(e,t),Ji.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(Kw(n,r)),e.nonempty=n=>e.check(Kw(1,n)),e.max=(n,r)=>e.check(h2(n,r)),e.length=(n,r)=>e.check(m2(n,r)),e.unwrap=()=>e.element});fZe=me("ZodObject",(e,t)=>{U9e.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:Don()}),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(mZe,e,n[0]),e.required=(...n)=>or.required(gZe,e,n[0])});pZe=me("ZodUnion",(e,t)=>{kre.init(e,t),Ji.init(e,t),e.options=t.options});Uon=me("ZodDiscriminatedUnion",(e,t)=>{pZe.init(e,t),F9e.init(e,t)});Fon=me("ZodIntersection",(e,t)=>{j9e.init(e,t),Ji.init(e,t)});jon=me("ZodRecord",(e,t)=>{H9e.init(e,t),Ji.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});Jre=me("ZodEnum",(e,t)=>{q9e.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 Jre({...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 Jre({...t,checks:[],...or.normalizeParams(i),entries:s})}});Hon=me("ZodLiteral",(e,t)=>{B9e.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]}})});qon=me("ZodTransform",(e,t)=>{z9e.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)}});mZe=me("ZodOptional",(e,t)=>{G9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});Bon=me("ZodNullable",(e,t)=>{V9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});zon=me("ZodDefault",(e,t)=>{W9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});Von=me("ZodPrefault",(e,t)=>{K9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});gZe=me("ZodNonOptional",(e,t)=>{Y9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});Yon=me("ZodCatch",(e,t)=>{Z9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});Jon=me("ZodPipe",(e,t)=>{J9e.init(e,t),Ji.init(e,t),e.in=t.in,e.out=t.out});Xon=me("ZodReadonly",(e,t)=>{X9e.init(e,t),Ji.init(e,t)});yZe=me("ZodCustom",(e,t)=>{Q9e.init(e,t),Ji.init(e,t)})});var bZe=v(()=>{});var EZe=v(()=>{});var _Ze=v(()=>{hd();Kre();qre();Yre();Zre();bZe();hd();tYe();l2();Wre();EZe();pd(eYe())});var TZe=v(()=>{_Ze()});var vZe=v(()=>{TZe()});var tie,RZe,OS,_2,_o,AZe,wZe,OBr,ian,san,nie,Sl,uC,kZe,ma,md,gd,ga,T2,IZe,rie,xZe,OZe,iie,lC,Sn,sie,PZe,NZe,PBr,v2,oan,R2,aan,dC,Jw,CZe,can,uan,lan,dan,fan,pan,oie,han,man,aie,A2,gan,yan,w2,San,fC,pC,ban,hC,Xw,Ean,mC,k2,I2,x2,NBr,O2,P2,N2,MZe,DZe,LZe,cie,UZe,gC,Qw,FZe,_an,Tan,van,Ran,Aan,uie,wan,kan,Ian,xan,Oan,Pan,Nan,Can,Man,Dan,Lan,Uan,lie,Fan,jan,die,fie,pie,hie,Han,qan,Ban,mie,zan,Gan,Van,Wan,Kan,jZe,gie,Yan,C2,CBr,Zan,yC,Jan,MBr,SC,Xan,yie,Qan,$an,ecn,tcn,ncn,rcn,icn,E2,scn,ocn,acn,bC,Sie,ccn,ucn,lcn,dcn,fcn,pcn,hcn,mcn,gcn,ycn,Scn,bcn,Ecn,_cn,Tcn,vcn,Rcn,Acn,$w,wcn,kcn,Icn,bie,xcn,Ocn,Pcn,Eie,Ncn,DBr,LBr,UBr,FBr,jBr,HBr,rn,eie,C_=v(()=>{vZe();tie="2025-11-25",RZe=[tie,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],OS="io.modelcontextprotocol/related-task",_2="2.0",_o=SZe(e=>e!==null&&(typeof e=="object"||typeof e=="function")),AZe=mi([le(),vr().int()]),wZe=le(),OBr=Bc({ttl:vr().optional(),pollInterval:vr().optional()}),ian=$e({ttl:vr().optional()}),san=$e({taskId:le()}),nie=Bc({progressToken:AZe.optional(),[OS]:san.optional()}),Sl=$e({_meta:nie.optional()}),uC=Sl.extend({task:ian.optional()}),kZe=e=>uC.safeParse(e).success,ma=$e({method:le(),params:Sl.loose().optional()}),md=$e({_meta:nie.optional()}),gd=$e({method:le(),params:md.loose().optional()}),ga=Bc({_meta:nie.optional()}),T2=mi([le(),vr().int()]),IZe=$e({jsonrpc:ft(_2),id:T2,...ma.shape}).strict(),rie=e=>IZe.safeParse(e).success,xZe=$e({jsonrpc:ft(_2),...gd.shape}).strict(),OZe=e=>xZe.safeParse(e).success,iie=$e({jsonrpc:ft(_2),id:T2,result:ga}).strict(),lC=e=>iie.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"})(Sn||(Sn={}));sie=$e({jsonrpc:ft(_2),id:T2.optional(),error:$e({code:vr().int(),message:le(),data:Li().optional()})}).strict(),PZe=e=>sie.safeParse(e).success,NZe=mi([IZe,xZe,iie,sie]),PBr=mi([iie,sie]),v2=ga.strict(),oan=md.extend({requestId:T2.optional(),reason:le().optional()}),R2=gd.extend({method:ft("notifications/cancelled"),params:oan}),aan=$e({src:le(),mimeType:le().optional(),sizes:Vn(le()).optional(),theme:Tu(["light","dark"]).optional()}),dC=$e({icons:Vn(aan).optional()}),Jw=$e({name:le(),title:le().optional()}),CZe=Jw.extend({...Jw.shape,...dC.shape,version:le(),websiteUrl:le().optional(),description:le().optional()}),can=b2($e({applyDefaults:Vo().optional()}),ii(le(),Li())),uan=$re(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,b2($e({form:can.optional(),url:_o.optional()}),ii(le(),Li()).optional())),lan=Bc({list:_o.optional(),cancel:_o.optional(),requests:Bc({sampling:Bc({createMessage:_o.optional()}).optional(),elicitation:Bc({create:_o.optional()}).optional()}).optional()}),dan=Bc({list:_o.optional(),cancel:_o.optional(),requests:Bc({tools:Bc({call:_o.optional()}).optional()}).optional()}),fan=$e({experimental:ii(le(),_o).optional(),sampling:$e({context:_o.optional(),tools:_o.optional()}).optional(),elicitation:uan.optional(),roots:$e({listChanged:Vo().optional()}).optional(),tasks:lan.optional(),extensions:ii(le(),_o).optional()}),pan=Sl.extend({protocolVersion:le(),capabilities:fan,clientInfo:CZe}),oie=ma.extend({method:ft("initialize"),params:pan}),han=$e({experimental:ii(le(),_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:dan.optional(),extensions:ii(le(),_o).optional()}),man=ga.extend({protocolVersion:le(),capabilities:han,serverInfo:CZe,instructions:le().optional()}),aie=gd.extend({method:ft("notifications/initialized"),params:md.optional()}),A2=ma.extend({method:ft("ping"),params:Sl.optional()}),gan=$e({progress:vr(),total:Ui(vr()),message:Ui(le())}),yan=$e({...md.shape,...gan.shape,progressToken:AZe}),w2=gd.extend({method:ft("notifications/progress"),params:yan}),San=Sl.extend({cursor:wZe.optional()}),fC=ma.extend({params:San.optional()}),pC=ga.extend({nextCursor:wZe.optional()}),ban=Tu(["working","input_required","completed","failed","cancelled"]),hC=$e({taskId:le(),status:ban,ttl:mi([vr(),dZe()]),createdAt:le(),lastUpdatedAt:le(),pollInterval:Ui(vr()),statusMessage:Ui(le())}),Xw=ga.extend({task:hC}),Ean=md.merge(hC),mC=gd.extend({method:ft("notifications/tasks/status"),params:Ean}),k2=ma.extend({method:ft("tasks/get"),params:Sl.extend({taskId:le()})}),I2=ga.merge(hC),x2=ma.extend({method:ft("tasks/result"),params:Sl.extend({taskId:le()})}),NBr=ga.loose(),O2=fC.extend({method:ft("tasks/list")}),P2=pC.extend({tasks:Vn(hC)}),N2=ma.extend({method:ft("tasks/cancel"),params:Sl.extend({taskId:le()})}),MZe=ga.merge(hC),DZe=$e({uri:le(),mimeType:Ui(le()),_meta:ii(le(),Li()).optional()}),LZe=DZe.extend({text:le()}),cie=le().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),UZe=DZe.extend({blob:cie}),gC=Tu(["user","assistant"]),Qw=$e({audience:Vn(gC).optional(),priority:vr().min(0).max(1).optional(),lastModified:aC.datetime({offset:!0}).optional()}),FZe=$e({...Jw.shape,...dC.shape,uri:le(),description:Ui(le()),mimeType:Ui(le()),size:Ui(vr()),annotations:Qw.optional(),_meta:Ui(Bc({}))}),_an=$e({...Jw.shape,...dC.shape,uriTemplate:le(),description:Ui(le()),mimeType:Ui(le()),annotations:Qw.optional(),_meta:Ui(Bc({}))}),Tan=fC.extend({method:ft("resources/list")}),van=pC.extend({resources:Vn(FZe)}),Ran=fC.extend({method:ft("resources/templates/list")}),Aan=pC.extend({resourceTemplates:Vn(_an)}),uie=Sl.extend({uri:le()}),wan=uie,kan=ma.extend({method:ft("resources/read"),params:wan}),Ian=ga.extend({contents:Vn(mi([LZe,UZe]))}),xan=gd.extend({method:ft("notifications/resources/list_changed"),params:md.optional()}),Oan=uie,Pan=ma.extend({method:ft("resources/subscribe"),params:Oan}),Nan=uie,Can=ma.extend({method:ft("resources/unsubscribe"),params:Nan}),Man=md.extend({uri:le()}),Dan=gd.extend({method:ft("notifications/resources/updated"),params:Man}),Lan=$e({name:le(),description:Ui(le()),required:Ui(Vo())}),Uan=$e({...Jw.shape,...dC.shape,description:Ui(le()),arguments:Ui(Vn(Lan)),_meta:Ui(Bc({}))}),lie=fC.extend({method:ft("prompts/list")}),Fan=pC.extend({prompts:Vn(Uan)}),jan=Sl.extend({name:le(),arguments:ii(le(),le()).optional()}),die=ma.extend({method:ft("prompts/get"),params:jan}),fie=$e({type:ft("text"),text:le(),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),pie=$e({type:ft("image"),data:cie,mimeType:le(),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),hie=$e({type:ft("audio"),data:cie,mimeType:le(),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),Han=$e({type:ft("tool_use"),name:le(),id:le(),input:ii(le(),Li()),_meta:ii(le(),Li()).optional()}),qan=$e({type:ft("resource"),resource:mi([LZe,UZe]),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),Ban=FZe.extend({type:ft("resource_link")}),mie=mi([fie,pie,hie,Ban,qan]),zan=$e({role:gC,content:mie}),Gan=ga.extend({description:le().optional(),messages:Vn(zan)}),Van=gd.extend({method:ft("notifications/prompts/list_changed"),params:md.optional()}),Wan=$e({title:le().optional(),readOnlyHint:Vo().optional(),destructiveHint:Vo().optional(),idempotentHint:Vo().optional(),openWorldHint:Vo().optional()}),Kan=$e({taskSupport:Tu(["required","optional","forbidden"]).optional()}),jZe=$e({...Jw.shape,...dC.shape,description:le().optional(),inputSchema:$e({type:ft("object"),properties:ii(le(),_o).optional(),required:Vn(le()).optional()}).catchall(Li()),outputSchema:$e({type:ft("object"),properties:ii(le(),_o).optional(),required:Vn(le()).optional()}).catchall(Li()).optional(),annotations:Wan.optional(),execution:Kan.optional(),_meta:ii(le(),Li()).optional()}),gie=fC.extend({method:ft("tools/list")}),Yan=pC.extend({tools:Vn(jZe)}),C2=ga.extend({content:Vn(mie).default([]),structuredContent:ii(le(),Li()).optional(),isError:Vo().optional()}),CBr=C2.or(ga.extend({toolResult:Li()})),Zan=uC.extend({name:le(),arguments:ii(le(),Li()).optional()}),yC=ma.extend({method:ft("tools/call"),params:Zan}),Jan=gd.extend({method:ft("notifications/tools/list_changed"),params:md.optional()}),MBr=$e({autoRefresh:Vo().default(!0),debounceMs:vr().int().nonnegative().default(300)}),SC=Tu(["debug","info","notice","warning","error","critical","alert","emergency"]),Xan=Sl.extend({level:SC}),yie=ma.extend({method:ft("logging/setLevel"),params:Xan}),Qan=md.extend({level:SC,logger:le().optional(),data:Li()}),$an=gd.extend({method:ft("notifications/message"),params:Qan}),ecn=$e({name:le().optional()}),tcn=$e({hints:Vn(ecn).optional(),costPriority:vr().min(0).max(1).optional(),speedPriority:vr().min(0).max(1).optional(),intelligencePriority:vr().min(0).max(1).optional()}),ncn=$e({mode:Tu(["auto","required","none"]).optional()}),rcn=$e({type:ft("tool_result"),toolUseId:le().describe("The unique identifier for the corresponding tool call."),content:Vn(mie).default([]),structuredContent:$e({}).loose().optional(),isError:Vo().optional(),_meta:ii(le(),Li()).optional()}),icn=Qre("type",[fie,pie,hie]),E2=Qre("type",[fie,pie,hie,Han,rcn]),scn=$e({role:gC,content:mi([E2,Vn(E2)]),_meta:ii(le(),Li()).optional()}),ocn=uC.extend({messages:Vn(scn),modelPreferences:tcn.optional(),systemPrompt:le().optional(),includeContext:Tu(["none","thisServer","allServers"]).optional(),temperature:vr().optional(),maxTokens:vr().int(),stopSequences:Vn(le()).optional(),metadata:_o.optional(),tools:Vn(jZe).optional(),toolChoice:ncn.optional()}),acn=ma.extend({method:ft("sampling/createMessage"),params:ocn}),bC=ga.extend({model:le(),stopReason:Ui(Tu(["endTurn","stopSequence","maxTokens"]).or(le())),role:gC,content:icn}),Sie=ga.extend({model:le(),stopReason:Ui(Tu(["endTurn","stopSequence","maxTokens","toolUse"]).or(le())),role:gC,content:mi([E2,Vn(E2)])}),ccn=$e({type:ft("boolean"),title:le().optional(),description:le().optional(),default:Vo().optional()}),ucn=$e({type:ft("string"),title:le().optional(),description:le().optional(),minLength:vr().optional(),maxLength:vr().optional(),format:Tu(["email","uri","date","date-time"]).optional(),default:le().optional()}),lcn=$e({type:Tu(["number","integer"]),title:le().optional(),description:le().optional(),minimum:vr().optional(),maximum:vr().optional(),default:vr().optional()}),dcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),enum:Vn(le()),default:le().optional()}),fcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),oneOf:Vn($e({const:le(),title:le()})),default:le().optional()}),pcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),enum:Vn(le()),enumNames:Vn(le()).optional(),default:le().optional()}),hcn=mi([dcn,fcn]),mcn=$e({type:ft("array"),title:le().optional(),description:le().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({type:ft("string"),enum:Vn(le())}),default:Vn(le()).optional()}),gcn=$e({type:ft("array"),title:le().optional(),description:le().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({anyOf:Vn($e({const:le(),title:le()}))}),default:Vn(le()).optional()}),ycn=mi([mcn,gcn]),Scn=mi([pcn,hcn,ycn]),bcn=mi([Scn,ccn,ucn,lcn]),Ecn=uC.extend({mode:ft("form").optional(),message:le(),requestedSchema:$e({type:ft("object"),properties:ii(le(),bcn),required:Vn(le()).optional()})}),_cn=uC.extend({mode:ft("url"),message:le(),elicitationId:le(),url:le().url()}),Tcn=mi([Ecn,_cn]),vcn=ma.extend({method:ft("elicitation/create"),params:Tcn}),Rcn=md.extend({elicitationId:le()}),Acn=gd.extend({method:ft("notifications/elicitation/complete"),params:Rcn}),$w=ga.extend({action:Tu(["accept","decline","cancel"]),content:$re(e=>e===null?void 0:e,ii(le(),mi([le(),vr(),Vo(),Vn(le())])).optional())}),wcn=$e({type:ft("ref/resource"),uri:le()}),kcn=$e({type:ft("ref/prompt"),name:le()}),Icn=Sl.extend({ref:mi([kcn,wcn]),argument:$e({name:le(),value:le()}),context:$e({arguments:ii(le(),le()).optional()}).optional()}),bie=ma.extend({method:ft("completion/complete"),params:Icn}),xcn=ga.extend({completion:Bc({values:Vn(le()).max(100),total:Ui(vr().int()),hasMore:Ui(Vo())})}),Ocn=$e({uri:le().startsWith("file://"),name:le().optional(),_meta:ii(le(),Li()).optional()}),Pcn=ma.extend({method:ft("roots/list"),params:Sl.optional()}),Eie=ga.extend({roots:Vn(Ocn)}),Ncn=gd.extend({method:ft("notifications/roots/list_changed"),params:md.optional()}),DBr=mi([A2,oie,bie,yie,die,lie,Tan,Ran,kan,Pan,Can,yC,gie,k2,x2,O2,N2]),LBr=mi([R2,w2,aie,Ncn,mC]),UBr=mi([v2,bC,Sie,$w,Eie,I2,P2,Xw]),FBr=mi([A2,acn,vcn,Pcn,k2,x2,O2,N2]),jBr=mi([R2,w2,$an,Dan,xan,Jan,Van,mC,Acn]),HBr=mi([v2,man,xcn,Gan,Fan,van,Aan,Ian,C2,Yan,I2,P2,Xw]),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===Sn.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new eie(i.elicitations,n)}return new e(t,n,r)}},eie=class extends rn{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(Sn.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}}});function PS(e){return e==="completed"||e==="failed"||e==="cancelled"}var HZe=v(()=>{});var M2=v(()=>{});var _ie=v(()=>{M2()});var NS=v(()=>{});var D2=v(()=>{});var yd=v(()=>{D2()});var Tie=v(()=>{NS();Qs()});var vie=v(()=>{NS()});var Rie=v(()=>{});var L2=v(()=>{Qs()});var Aie=v(()=>{Qs()});var wie=v(()=>{NS()});var kie=v(()=>{Qs()});var Iie=v(()=>{Qs();yd()});var xie=v(()=>{});var Oie=v(()=>{Qs()});var Pie=v(()=>{});var bzr,U2=v(()=>{NS();bzr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789")});var F2=v(()=>{Qs();U2();L2();yd()});var Nie=v(()=>{Qs();F2();yd()});var Cie=v(()=>{});var Mie=v(()=>{yd()});var Die=v(()=>{});var j2=v(()=>{Qs()});var Lie=v(()=>{Qs();j2()});var Uie=v(()=>{NS()});var Fie=v(()=>{Qs()});var jie=v(()=>{Qs();yd()});var Hie=v(()=>{Qs()});var qie=v(()=>{Qs()});var Bie=v(()=>{NS();Qs()});var zie=v(()=>{Qs()});var Gie=v(()=>{yd()});var Vie=v(()=>{yd()});var Wie=v(()=>{Qs()});var Kie=v(()=>{yd();Tie();vie();Rie();L2();Aie();wie();kie();Iie();xie();Oie();Pie();Nie();Cie();Mie();Die();Lie();Uie();Fie();jie();Hie();qie();F2();Bie();U2();zie();Gie();j2();Vie();Wie()});var Qs=v(()=>{M2();Kie();D2();yd()});var qZe=v(()=>{});var Yie=v(()=>{Qs();_ie();yd()});var Zie=v(()=>{M2();_ie();NS();D2();Qs();qZe();yd();Tie();vie();Rie();L2();Aie();wie();kie();Iie();xie();Oie();Pie();Nie();Cie();Mie();Die();Lie();Uie();Fie();jie();Hie();qie();Wie();F2();Bie();U2();zie();Gie();j2();Vie();Kie();Yie();Yie()});function Jie(e){let n=g2(e)?.method;if(!n)throw new Error("Schema is missing a method literal");let r=JYe(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function Xie(e,t){let n=xS(e,t);if(!n.success)throw n.error;return n.data}var zZe=v(()=>{y2();Zie()});function GZe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function VZe(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];GZe(o)&&GZe(s)?n[i]={...o,...s}:n[i]=s}return n}var Ucn,H2,WZe=v(()=>{y2();C_();HZe();zZe();Ucn=6e4,H2=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(R2,n=>{this._oncancel(n)}),this.setNotificationHandler(w2,n=>{this._onprogress(n)}),this.setRequestHandler(A2,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(k2,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(Sn.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(x2,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(Sn.InvalidParams,`Task not found: ${s}`);if(!PS(o.status))return await this._waitForTaskUpdate(s,r.signal),await i();if(PS(o.status)){let a=await this._taskStore.getTaskResult(s,r.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[OS]:{taskId:s}}}}return await i()};return await i()}),this.setRequestHandler(O2,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(Sn.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(N2,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(Sn.InvalidParams,`Task not found: ${n.params.taskId}`);if(PS(i.status))throw new rn(Sn.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(Sn.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof rn?i:new rn(Sn.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(Sn.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),lC(s)||PZe(s)?this._onresponse(s):rie(s)?this._onrequest(s,o):OZe(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(Sn.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?.[OS]?.taskId;if(r===void 0){let l={jsonrpc:"2.0",id:t.id,error:{code:Sn.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=kZe(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(Sn.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:Sn.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),lC(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(lC(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),lC(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(Sn.InternalError,String(o))}}return}let s;try{let o=await this.request(t,Xw,r);if(o.task)s=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new rn(Sn.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},r);if(yield{type:"taskStatus",task:a},PS(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(Sn.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new rn(Sn.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(Sn.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||{},[OS]: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(Sn.RequestTimeout,String(b));l(S)};this._responseHandlers.set(f,b=>{if(!r?.signal?.aborted){if(b instanceof Error)return l(b);try{let S=xS(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??Ucn,g=()=>h(rn.fromError(Sn.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},I2,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},P2,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},MZe,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||{},[OS]: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||{},[OS]: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||{},[OS]:n.relatedTask}}}),await this._transport.send(o,n)}setRequestHandler(t,n){let r=Jie(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=Xie(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=Jie(t);this._notificationHandlers.set(r,i=>{let s=Xie(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"&&rie(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new rn(Sn.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(Sn.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,r);n.addEventListener("abort",()=>{clearTimeout(o),s(new rn(Sn.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(Sn.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=mC.parse({method:"notifications/tasks/status",params:a});await this.notification(c),PS(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(Sn.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(PS(a.status))throw new rn(Sn.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=mC.parse({method:"notifications/tasks/status",params:c});await this.notification(u),PS(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}}});var ek=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 _C=class{};tr._CodeOrName=_C;tr.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var M_=class extends _C{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=M_;var Sd=class extends _C{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 M_&&(n[r.str]=(n[r.str]||0)+1),n),{})}};tr._Code=Sd;tr.nil=new Sd("");function KZe(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=ek(),ese=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},q2;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(q2||(Ru.UsedValueState=q2={}));Ru.varKinds={const:new vu.Name("const"),let:new vu.Name("let"),var:new vu.Name("var")};var B2=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=B2;var z2=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=z2;var Wcn=(0,vu._)`\n`,tse=class extends B2{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?Wcn:vu.nil}}get(){return this._scope}name(t){return new z2(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,q2.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 ese(u);c.set(u,q2.Completed)})}return s}};Ru.ValueScope=tse});var Ot=w(bn=>{"use strict";Object.defineProperty(bn,"__esModule",{value:!0});bn.or=bn.and=bn.not=bn.CodeGen=bn.operators=bn.varKinds=bn.ValueScopeName=bn.ValueScope=bn.Scope=bn.Name=bn.regexpCode=bn.stringify=bn.getProperty=bn.nil=bn.strConcat=bn.str=bn._=void 0;var Wn=ek(),Rf=G2(),CS=ek();Object.defineProperty(bn,"_",{enumerable:!0,get:function(){return CS._}});Object.defineProperty(bn,"str",{enumerable:!0,get:function(){return CS.str}});Object.defineProperty(bn,"strConcat",{enumerable:!0,get:function(){return CS.strConcat}});Object.defineProperty(bn,"nil",{enumerable:!0,get:function(){return CS.nil}});Object.defineProperty(bn,"getProperty",{enumerable:!0,get:function(){return CS.getProperty}});Object.defineProperty(bn,"stringify",{enumerable:!0,get:function(){return CS.stringify}});Object.defineProperty(bn,"regexpCode",{enumerable:!0,get:function(){return CS.regexpCode}});Object.defineProperty(bn,"Name",{enumerable:!0,get:function(){return CS.Name}});var Y2=G2();Object.defineProperty(bn,"Scope",{enumerable:!0,get:function(){return Y2.Scope}});Object.defineProperty(bn,"ValueScope",{enumerable:!0,get:function(){return Y2.ValueScope}});Object.defineProperty(bn,"ValueScopeName",{enumerable:!0,get:function(){return Y2.ValueScopeName}});Object.defineProperty(bn,"varKinds",{enumerable:!0,get:function(){return Y2.varKinds}});bn.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 Wm=class{optimizeNodes(){return this}optimizeNames(t,n){return this}},nse=class extends Wm{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=nk(this.rhs,t,n)),this}get names(){return this.rhs instanceof Wn._CodeOrName?this.rhs.names:{}}},V2=class extends Wm{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=nk(this.rhs,t,n),this}get names(){let t=this.lhs instanceof Wn.Name?{}:{...this.lhs.names};return K2(t,this.rhs)}},rse=class extends V2{constructor(t,n,r,i){super(t,r,i),this.op=n}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},ise=class extends Wm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},sse=class extends Wm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},ose=class extends Wm{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},ase=class extends Wm{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=nk(this.code,t,n),this}get names(){return this.code instanceof Wn._CodeOrName?this.code.names:{}}},vC=class extends Wm{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)||(Kcn(t,s.names),r.splice(i,1))}return r.length>0?this:void 0}get names(){return this.nodes.reduce((t,n)=>U_(t,n.names),{})}},Km=class extends vC{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},cse=class extends vC{},tk=class extends Km{};tk.kind="else";var D_=class e extends Km{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 tk(r):r}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(ZZe(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=nk(this.condition,t,n),this}get names(){let t=super.names;return K2(t,this.condition),this.else&&U_(t,this.else.names),t}};D_.kind="if";var L_=class extends Km{};L_.kind="for";var use=class extends L_{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=nk(this.iteration,t,n),this}get names(){return U_(super.names,this.iteration.names)}},lse=class extends L_{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=K2(super.names,this.from);return K2(t,this.to)}},W2=class extends L_{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=nk(this.iterable,t,n),this}get names(){return U_(super.names,this.iterable.names)}},RC=class extends Km{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)}};RC.kind="func";var AC=class extends vC{render(t){return"return "+super.render(t)}};AC.kind="return";var dse=class extends Km{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&&U_(t,this.catch.names),this.finally&&U_(t,this.finally.names),t}},wC=class extends Km{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};wC.kind="catch";var kC=class extends Km{render(t){return"finally"+super.render(t)}};kC.kind="finally";var fse=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 cse]}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 nse(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 V2(t,n,r))}add(t,n){return this._leafNode(new rse(t,bn.operators.ADD,n))}code(t){return typeof t=="function"?t():t!==Wn.nil&&this._leafNode(new ase(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 D_(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 D_(t))}else(){return this._elseNode(new tk)}endIf(){return this._endBlockNode(D_,tk)}_for(t,n){return this._blockNode(t),n&&this.code(n).endFor(),this}for(t,n){return this._for(new use(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 lse(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 W2("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 W2("in",i,s,n),()=>r(s))}endFor(){return this._endBlockNode(L_)}label(t){return this._leafNode(new ise(t))}break(t){return this._leafNode(new sse(t))}return(t){let n=new AC;if(this._blockNode(n),this.code(t),n.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(AC)}try(t,n,r){if(!n&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new dse;if(this._blockNode(i),this.code(t),n){let s=this.name("e");this._currNode=i.catch=new wC(s),n(s)}return r&&(this._currNode=i.finally=new kC,this.code(r)),this._endBlockNode(wC,kC)}throw(t){return this._leafNode(new ose(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 RC(t,n,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(RC)}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 D_))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}};bn.CodeGen=fse;function U_(e,t){for(let n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function K2(e,t){return t instanceof Wn._CodeOrName?U_(e,t.names):e}function nk(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 Kcn(e,t){for(let n in t)e[n]=(e[n]||0)-(t[n]||0)}function ZZe(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,Wn._)`!${pse(e)}`}bn.not=ZZe;var Ycn=JZe(bn.operators.AND);function Zcn(...e){return e.reduce(Ycn)}bn.and=Zcn;var Jcn=JZe(bn.operators.OR);function Xcn(...e){return e.reduce(Jcn)}bn.or=Xcn;function JZe(e){return(t,n)=>t===Wn.nil?n:n===Wn.nil?t:(0,Wn._)`${pse(t)} ${e} ${pse(n)}`}function pse(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(),Qcn=ek();function $cn(e){let t={};for(let n of e)t[n]=!0;return t}Rn.toHash=$cn;function eun(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:($Ze(e,t),!e6e(t,e.self.RULES.all))}Rn.alwaysValidSchema=eun;function $Ze(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]||r6e(e,`unknown keyword: "${s}"`)}Rn.checkUnknownRules=$Ze;function e6e(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(t[n])return!0;return!1}Rn.schemaHasRules=e6e;function tun(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=tun;function nun({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=nun;function run(e){return t6e(decodeURIComponent(e))}Rn.unescapeFragment=run;function iun(e){return encodeURIComponent(mse(e))}Rn.escapeFragment=iun;function mse(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}Rn.escapeJsonPointer=mse;function t6e(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}Rn.unescapeJsonPointer=t6e;function sun(e,t){if(Array.isArray(e))for(let n of e)t(n);else t(e)}Rn.eachItem=sun;function XZe({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:XZe({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} || {}`),gse(e,n,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:n6e}),items:XZe({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 n6e(e,t){if(t===!0)return e.var("props",!0);let n=e.var("props",(0,Wr._)`{}`);return t!==void 0&&gse(e,n,t),n}Rn.evaluatedPropsToName=n6e;function gse(e,t,n){Object.keys(n).forEach(r=>e.assign((0,Wr._)`${t}${(0,Wr.getProperty)(r)}`,!0))}Rn.setEvaluated=gse;var QZe={};function oun(e,t){return e.scopeValue("func",{ref:t,code:QZe[t.code]||(QZe[t.code]=new Qcn._Code(t.code))})}Rn.useFunc=oun;var hse;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(hse||(Rn.Type=hse={}));function aun(e,t,n){if(e instanceof Wr.Name){let r=t===hse.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():"/"+mse(e)}Rn.getErrorPath=aun;function r6e(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=r6e});var bd=w(yse=>{"use strict";Object.defineProperty(yse,"__esModule",{value:!0});var ic=Ot(),cun={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")};yse.default=cun});var IC=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(),Z2=pn(),zc=bd();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 uun(e,t=sc.keywordError,n,r){let{it:i}=e,{gen:s,compositeRule:o,allErrors:a}=i,c=o6e(e,t,n);r??(o||a)?i6e(s,c):s6e(i,(0,Jn._)`[${c}]`)}sc.reportError=uun;function lun(e,t=sc.keywordError,n){let{it:r}=e,{gen:i,compositeRule:s,allErrors:o}=r,a=o6e(e,t,n);i6e(i,a),s||o||s6e(r,zc.default.vErrors)}sc.reportExtraError=lun;function dun(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=dun;function fun({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=fun;function i6e(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 s6e(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 F_={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 o6e(e,t,n){let{createErrors:r}=e.it;return r===!1?(0,Jn._)`{}`:pun(e,t,n)}function pun(e,t,n={}){let{gen:r,it:i}=e,s=[hun(i,n),mun(e,n)];return gun(e,t,s),r.object(...s)}function hun({errorPath:e},{instancePath:t}){let n=t?(0,Jn.str)`${e}${(0,Z2.getErrorPath)(t,Z2.Type.Str)}`:e;return[zc.default.instancePath,(0,Jn.strConcat)(zc.default.instancePath,n)]}function mun({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,Z2.getErrorPath)(n,Z2.Type.Str)}`),[F_.schemaPath,i]}function gun(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([F_.keyword,i],[F_.params,typeof t=="function"?t(e):t||(0,Jn._)`{}`]),c.messages&&r.push([F_.message,typeof n=="function"?n(e):n]),c.verbose&&r.push([F_.schema,o],[F_.parentSchema,(0,Jn._)`${l}${d}`],[zc.default.data,s]),u&&r.push([F_.propertyName,u])}});var c6e=w(rk=>{"use strict";Object.defineProperty(rk,"__esModule",{value:!0});rk.boolOrEmptySchema=rk.topBoolOrEmptySchema=void 0;var yun=IC(),Sun=Ot(),bun=bd(),Eun={message:"boolean schema is false"};function _un(e){let{gen:t,schema:n,validateName:r}=e;n===!1?a6e(e,!1):typeof n=="object"&&n.$async===!0?t.return(bun.default.data):(t.assign((0,Sun._)`${r}.errors`,null),t.return(!0))}rk.topBoolOrEmptySchema=_un;function Tun(e,t){let{gen:n,schema:r}=e;r===!1?(n.var(t,!1),a6e(e)):n.var(t,!0)}rk.boolOrEmptySchema=Tun;function a6e(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,yun.reportError)(i,Eun,void 0,t)}});var Sse=w(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});ik.getRules=ik.isJSONType=void 0;var vun=["string","number","integer","boolean","null","object","array"],Run=new Set(vun);function Aun(e){return typeof e=="string"&&Run.has(e)}ik.isJSONType=Aun;function wun(){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:{}}}ik.getRules=wun});var bse=w(MS=>{"use strict";Object.defineProperty(MS,"__esModule",{value:!0});MS.shouldUseRule=MS.shouldUseGroup=MS.schemaHasRulesForType=void 0;function kun({schema:e,self:t},n){let r=t.RULES.types[n];return r&&r!==!0&&u6e(e,r)}MS.schemaHasRulesForType=kun;function u6e(e,t){return t.rules.some(n=>l6e(e,n))}MS.shouldUseGroup=u6e;function l6e(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))}MS.shouldUseRule=l6e});var xC=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 Iun=Sse(),xun=bse(),Oun=IC(),hn=Ot(),d6e=pn(),sk;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(sk||(oc.DataType=sk={}));function Pun(e){let t=f6e(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=Pun;function f6e(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(Iun.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}oc.getJSONTypes=f6e;function Nun(e,t){let{gen:n,data:r,opts:i}=e,s=Cun(t,i.coerceTypes),o=t.length>0&&!(s.length===0&&t.length===1&&(0,xun.schemaHasRulesForType)(e,t[0]));if(o){let a=_se(t,r,i.strictNumbers,sk.Wrong);n.if(a,()=>{s.length?Mun(e,t,s):Tse(e)})}return o}oc.coerceAndCheckDataType=Nun;var p6e=new Set(["string","number","integer","boolean","null"]);function Cun(e,t){return t?e.filter(n=>p6e.has(n)||t==="array"&&n==="array"):[]}function Mun(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(_se(t,i,s.strictNumbers),()=>r.assign(a,i))),r.if((0,hn._)`${a} !== undefined`);for(let u of n)(p6e.has(u)||u==="array"&&s.coerceTypes==="array")&&c(u);r.else(),Tse(e),r.endIf(),r.if((0,hn._)`${a} !== undefined`,()=>{r.assign(i,a),Dun(e,a)});function c(u){switch(u){case"string":r.elseIf((0,hn._)`${o} == "number" || ${o} == "boolean"`).assign(a,(0,hn._)`"" + ${i}`).elseIf((0,hn._)`${i} === null`).assign(a,(0,hn._)`""`);return;case"number":r.elseIf((0,hn._)`${o} == "boolean" || ${i} === null + })));`),f.write(`newResult[${O_(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=Vw,o=!$G.jitless,c=o&&cre.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?t9e(A,d,E,p):c2(A,d,E))):R?t9e(T,d,E,p):c2(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(_=>c2(_,d,S))):c2(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}});kre=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=>eC(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=>n9e(o,n,e,r)):n9e(s,n,e,r)}}),H9e=me("$ZodDiscriminatedUnion",(e,t)=>{kre.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=QN(()=>{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(!Vw(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)}}),q9e=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])=>r9e(n,c,u)):r9e(n,s,o)}});B9e=me("$ZodRecord",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Ww(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,pd())),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}}),z9e=me("$ZodEnum",(e,t)=>{ri.init(e,t);let n=ire(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>ure.has(typeof r)).map(r=>typeof r=="string"?IS(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}}),G9e=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"?IS(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}}),V9e=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 zm;return n.value=i,n}}),W9e=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(`^(${eC(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)}),K9e=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(`^(${eC(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)}),Y9e=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=>i9e(s,t)):i9e(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))}),J9e=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=>s9e(s,e)):s9e(i,e)}});X9e=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,pd()))},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,pd()))},input:n.value}),n.issues=[]),n)}}),Q9e=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=>o9e(s,t,r)):o9e(i,t,r)}});$9e=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(a9e):a9e(i)}});eYe=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=>c9e(s,n,r,e));c9e(i,n,r,e)}})});function nYe(){return{localeError:ton()}}var eon,ton,rYe=v(()=>{Gm();eon=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},ton=()=>{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 ${eon(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${n2(r.values[0])}`:`Invalid option: expected one of ${e2(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":""}: ${e2(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 l2=v(()=>{});function non(){return new xre}var xre,iC,iYe=v(()=>{xre=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)}};iC=non()});function sYe(e,t){return new e({type:"string",...Dt(t)})}function oYe(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Dt(t)})}function Ore(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Dt(t)})}function aYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Dt(t)})}function cYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Dt(t)})}function uYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Dt(t)})}function lYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Dt(t)})}function dYe(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Dt(t)})}function fYe(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Dt(t)})}function pYe(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Dt(t)})}function hYe(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Dt(t)})}function mYe(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Dt(t)})}function gYe(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Dt(t)})}function yYe(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Dt(t)})}function SYe(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Dt(t)})}function bYe(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Dt(t)})}function EYe(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Dt(t)})}function _Ye(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Dt(t)})}function TYe(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Dt(t)})}function vYe(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Dt(t)})}function RYe(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Dt(t)})}function AYe(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Dt(t)})}function wYe(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Dt(t)})}function kYe(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Dt(t)})}function IYe(e,t){return new e({type:"string",format:"date",check:"string_format",...Dt(t)})}function xYe(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Dt(t)})}function OYe(e,t){return new e({type:"string",format:"duration",check:"string_format",...Dt(t)})}function PYe(e,t){return new e({type:"number",checks:[],...Dt(t)})}function NYe(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Dt(t)})}function CYe(e,t){return new e({type:"boolean",...Dt(t)})}function MYe(e,t){return new e({type:"null",...Dt(t)})}function DYe(e){return new e({type:"unknown"})}function LYe(e,t){return new e({type:"never",...Dt(t)})}function d2(e,t){return new _re({check:"less_than",...Dt(t),value:e,inclusive:!1})}function sC(e,t){return new _re({check:"less_than",...Dt(t),value:e,inclusive:!0})}function f2(e,t){return new Tre({check:"greater_than",...Dt(t),value:e,inclusive:!1})}function oC(e,t){return new Tre({check:"greater_than",...Dt(t),value:e,inclusive:!0})}function p2(e,t){return new H3e({check:"multiple_of",...Dt(t),value:e})}function h2(e,t){return new B3e({check:"max_length",...Dt(t),maximum:e})}function Kw(e,t){return new z3e({check:"min_length",...Dt(t),minimum:e})}function m2(e,t){return new G3e({check:"length_equals",...Dt(t),length:e})}function Pre(e,t){return new V3e({check:"string_format",format:"regex",...Dt(t),pattern:e})}function Nre(e){return new W3e({check:"string_format",format:"lowercase",...Dt(e)})}function Cre(e){return new K3e({check:"string_format",format:"uppercase",...Dt(e)})}function Mre(e,t){return new Y3e({check:"string_format",format:"includes",...Dt(t),includes:e})}function Dre(e,t){return new Z3e({check:"string_format",format:"starts_with",...Dt(t),prefix:e})}function Lre(e,t){return new J3e({check:"string_format",format:"ends_with",...Dt(t),suffix:e})}function N_(e){return new X3e({check:"overwrite",tx:e})}function Ure(e){return N_(t=>t.normalize(e))}function Fre(){return N_(e=>e.trim())}function jre(){return N_(e=>e.toLowerCase())}function Hre(){return N_(e=>e.toUpperCase())}function UYe(e,t,n){return new e({type:"array",element:t,...Dt(n)})}function FYe(e,t,n){let r=Dt(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function jYe(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Dt(n)})}var HYe=v(()=>{o2();Gm()});var qYe=v(()=>{});var BYe=v(()=>{});var zYe=v(()=>{});var hd=v(()=>{Gw();yre();hre();tYe();o2();Rre();Gm();s2();l2();iYe();vre();qYe();HYe();BYe();zYe()});var GYe=v(()=>{hd()});var VYe=v(()=>{});var WYe=v(()=>{});var KYe=v(()=>{});var YYe=v(()=>{});var ZYe=v(()=>{hd();GYe();VYe();WYe();l2();KYe();YYe()});var JYe=v(()=>{ZYe()});var XYe=v(()=>{JYe()});function Zw(e){return!!e._zod}function xS(e,t){return Zw(e)?nC(e,t):e.safeParse(t)}function g2(e){if(!e)return;let t;if(Zw(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function QYe(e){if(Zw(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 y2=v(()=>{XYe()});var qre=v(()=>{hd()});var aC={};Ar(aC,{ZodISODate:()=>eZe,ZodISODateTime:()=>$Ye,ZodISODuration:()=>nZe,ZodISOTime:()=>tZe,date:()=>zre,datetime:()=>Bre,duration:()=>Vre,time:()=>Gre});function Bre(e){return kYe($Ye,e)}function zre(e){return IYe(eZe,e)}function Gre(e){return xYe(tZe,e)}function Vre(e){return OYe(nZe,e)}var $Ye,eZe,tZe,nZe,Wre=v(()=>{hd();Kre();$Ye=me("ZodISODateTime",(e,t)=>{E9e.init(e,t),Di.init(e,t)});eZe=me("ZodISODate",(e,t)=>{_9e.init(e,t),Di.init(e,t)});tZe=me("ZodISOTime",(e,t)=>{T9e.init(e,t),Di.init(e,t)});nZe=me("ZodISODuration",(e,t)=>{v9e.init(e,t),Di.init(e,t)})});var rZe,Lqr,cC,Yre=v(()=>{hd();hd();rZe=(e,t)=>{r2.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>a3e(e,n)},flatten:{value:n=>o3e(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},Lqr=me("ZodError",rZe),cC=me("ZodError",rZe,{Parent:Error})});var iZe,sZe,oZe,aZe,Zre=v(()=>{hd();Yre();iZe=c3e(cC),sZe=u3e(cC),oZe=mre(cC),aZe=gre(cC)});function le(e){return sYe(pon,e)}function vr(e){return PYe(fZe,e)}function uZe(e){return NYe(Pon,e)}function Vo(e){return CYe(Non,e)}function pZe(e){return MYe(Con,e)}function Li(){return DYe(Mon)}function Lon(e){return LYe(Don,e)}function Vn(e,t){return UYe(Uon,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 hZe(n)}function Bc(e,t){return new hZe({type:"object",get shape(){return or.assignProp(this,"shape",{...e}),this.shape},catchall:Li(),...or.normalizeParams(t)})}function mi(e,t){return new mZe({type:"union",options:e,...or.normalizeParams(t)})}function Qre(e,t,n){return new Fon({type:"union",options:t,discriminator:e,...or.normalizeParams(n)})}function b2(e,t){return new jon({type:"intersection",left:e,right:t})}function ii(e,t,n){return new Hon({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 Jre({type:"enum",entries:n,...or.normalizeParams(t)})}function ft(e,t){return new qon({type:"literal",values:Array.isArray(e)?e:[e],...or.normalizeParams(t)})}function gZe(e){return new Bon({type:"transform",transform:e})}function Ui(e){return new yZe({type:"optional",innerType:e})}function lZe(e){return new zon({type:"nullable",innerType:e})}function Von(e,t){return new Gon({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Kon(e,t){return new Won({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Yon(e,t){return new SZe({type:"nonoptional",innerType:e,...or.normalizeParams(t)})}function Jon(e,t){return new Zon({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function Xre(e,t){return new Xon({type:"pipe",in:e,out:t})}function $on(e){return new Qon({type:"readonly",innerType:e})}function ean(e){let t=new rc({check:"custom"});return t._zod.check=e,t}function EZe(e,t){return FYe(bZe,e??(()=>!0),t)}function tan(e,t={}){return jYe(bZe,e,t)}function nan(e){let t=ean(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 $re(e,t){return Xre(gZe(e),t)}var Xi,dZe,pon,Di,hon,cZe,S2,mon,gon,yon,Son,bon,Eon,_on,Ton,von,Ron,Aon,won,kon,Ion,xon,Oon,fZe,Pon,Non,Con,Mon,Don,Uon,hZe,mZe,Fon,jon,Hon,Jre,qon,Bon,yZe,zon,Gon,Won,SZe,Zon,Xon,Qon,bZe,Kre=v(()=>{hd();hd();qre();Wre();Zre();Xi=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)=>iZe(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>oZe(e,n,r),e.parseAsync=async(n,r)=>sZe(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>aZe(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(tan(n,r)),e.superRefine=n=>e.check(nan(n)),e.overwrite=n=>e.check(N_(n)),e.optional=()=>Ui(e),e.nullable=()=>lZe(e),e.nullish=()=>Ui(lZe(e)),e.nonoptional=n=>Yon(e,n),e.array=()=>Vn(e),e.or=n=>mi([e,n]),e.and=n=>b2(e,n),e.transform=n=>Xre(e,gZe(n)),e.default=n=>Von(e,n),e.prefault=n=>Kon(e,n),e.catch=n=>Jon(e,n),e.pipe=n=>Xre(e,n),e.readonly=()=>$on(e),e.describe=n=>{let r=e.clone();return iC.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return iC.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return iC.get(e);let r=e.clone();return iC.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),dZe=me("_ZodString",(e,t)=>{u2.init(e,t),Xi.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(Pre(...r)),e.includes=(...r)=>e.check(Mre(...r)),e.startsWith=(...r)=>e.check(Dre(...r)),e.endsWith=(...r)=>e.check(Lre(...r)),e.min=(...r)=>e.check(Kw(...r)),e.max=(...r)=>e.check(h2(...r)),e.length=(...r)=>e.check(m2(...r)),e.nonempty=(...r)=>e.check(Kw(1,...r)),e.lowercase=r=>e.check(Nre(r)),e.uppercase=r=>e.check(Cre(r)),e.trim=()=>e.check(Fre()),e.normalize=(...r)=>e.check(Ure(...r)),e.toLowerCase=()=>e.check(jre()),e.toUpperCase=()=>e.check(Hre())}),pon=me("ZodString",(e,t)=>{u2.init(e,t),dZe.init(e,t),e.email=n=>e.check(oYe(hon,n)),e.url=n=>e.check(dYe(mon,n)),e.jwt=n=>e.check(wYe(Oon,n)),e.emoji=n=>e.check(fYe(gon,n)),e.guid=n=>e.check(Ore(cZe,n)),e.uuid=n=>e.check(aYe(S2,n)),e.uuidv4=n=>e.check(cYe(S2,n)),e.uuidv6=n=>e.check(uYe(S2,n)),e.uuidv7=n=>e.check(lYe(S2,n)),e.nanoid=n=>e.check(pYe(yon,n)),e.guid=n=>e.check(Ore(cZe,n)),e.cuid=n=>e.check(hYe(Son,n)),e.cuid2=n=>e.check(mYe(bon,n)),e.ulid=n=>e.check(gYe(Eon,n)),e.base64=n=>e.check(vYe(kon,n)),e.base64url=n=>e.check(RYe(Ion,n)),e.xid=n=>e.check(yYe(_on,n)),e.ksuid=n=>e.check(SYe(Ton,n)),e.ipv4=n=>e.check(bYe(von,n)),e.ipv6=n=>e.check(EYe(Ron,n)),e.cidrv4=n=>e.check(_Ye(Aon,n)),e.cidrv6=n=>e.check(TYe(won,n)),e.e164=n=>e.check(AYe(xon,n)),e.datetime=n=>e.check(Bre(n)),e.date=n=>e.check(zre(n)),e.time=n=>e.check(Gre(n)),e.duration=n=>e.check(Vre(n))});Di=me("ZodStringFormat",(e,t)=>{hi.init(e,t),dZe.init(e,t)}),hon=me("ZodEmail",(e,t)=>{d9e.init(e,t),Di.init(e,t)}),cZe=me("ZodGUID",(e,t)=>{u9e.init(e,t),Di.init(e,t)}),S2=me("ZodUUID",(e,t)=>{l9e.init(e,t),Di.init(e,t)}),mon=me("ZodURL",(e,t)=>{f9e.init(e,t),Di.init(e,t)}),gon=me("ZodEmoji",(e,t)=>{p9e.init(e,t),Di.init(e,t)}),yon=me("ZodNanoID",(e,t)=>{h9e.init(e,t),Di.init(e,t)}),Son=me("ZodCUID",(e,t)=>{m9e.init(e,t),Di.init(e,t)}),bon=me("ZodCUID2",(e,t)=>{g9e.init(e,t),Di.init(e,t)}),Eon=me("ZodULID",(e,t)=>{y9e.init(e,t),Di.init(e,t)}),_on=me("ZodXID",(e,t)=>{S9e.init(e,t),Di.init(e,t)}),Ton=me("ZodKSUID",(e,t)=>{b9e.init(e,t),Di.init(e,t)}),von=me("ZodIPv4",(e,t)=>{R9e.init(e,t),Di.init(e,t)}),Ron=me("ZodIPv6",(e,t)=>{A9e.init(e,t),Di.init(e,t)}),Aon=me("ZodCIDRv4",(e,t)=>{w9e.init(e,t),Di.init(e,t)}),won=me("ZodCIDRv6",(e,t)=>{k9e.init(e,t),Di.init(e,t)}),kon=me("ZodBase64",(e,t)=>{x9e.init(e,t),Di.init(e,t)}),Ion=me("ZodBase64URL",(e,t)=>{O9e.init(e,t),Di.init(e,t)}),xon=me("ZodE164",(e,t)=>{P9e.init(e,t),Di.init(e,t)}),Oon=me("ZodJWT",(e,t)=>{N9e.init(e,t),Di.init(e,t)}),fZe=me("ZodNumber",(e,t)=>{wre.init(e,t),Xi.init(e,t),e.gt=(r,i)=>e.check(f2(r,i)),e.gte=(r,i)=>e.check(oC(r,i)),e.min=(r,i)=>e.check(oC(r,i)),e.lt=(r,i)=>e.check(d2(r,i)),e.lte=(r,i)=>e.check(sC(r,i)),e.max=(r,i)=>e.check(sC(r,i)),e.int=r=>e.check(uZe(r)),e.safe=r=>e.check(uZe(r)),e.positive=r=>e.check(f2(0,r)),e.nonnegative=r=>e.check(oC(0,r)),e.negative=r=>e.check(d2(0,r)),e.nonpositive=r=>e.check(sC(0,r)),e.multipleOf=(r,i)=>e.check(p2(r,i)),e.step=(r,i)=>e.check(p2(r,i)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});Pon=me("ZodNumberFormat",(e,t)=>{C9e.init(e,t),fZe.init(e,t)});Non=me("ZodBoolean",(e,t)=>{M9e.init(e,t),Xi.init(e,t)});Con=me("ZodNull",(e,t)=>{D9e.init(e,t),Xi.init(e,t)});Mon=me("ZodUnknown",(e,t)=>{L9e.init(e,t),Xi.init(e,t)});Don=me("ZodNever",(e,t)=>{U9e.init(e,t),Xi.init(e,t)});Uon=me("ZodArray",(e,t)=>{F9e.init(e,t),Xi.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(Kw(n,r)),e.nonempty=n=>e.check(Kw(1,n)),e.max=(n,r)=>e.check(h2(n,r)),e.length=(n,r)=>e.check(m2(n,r)),e.unwrap=()=>e.element});hZe=me("ZodObject",(e,t)=>{j9e.init(e,t),Xi.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:Lon()}),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(yZe,e,n[0]),e.required=(...n)=>or.required(SZe,e,n[0])});mZe=me("ZodUnion",(e,t)=>{kre.init(e,t),Xi.init(e,t),e.options=t.options});Fon=me("ZodDiscriminatedUnion",(e,t)=>{mZe.init(e,t),H9e.init(e,t)});jon=me("ZodIntersection",(e,t)=>{q9e.init(e,t),Xi.init(e,t)});Hon=me("ZodRecord",(e,t)=>{B9e.init(e,t),Xi.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});Jre=me("ZodEnum",(e,t)=>{z9e.init(e,t),Xi.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 Jre({...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 Jre({...t,checks:[],...or.normalizeParams(i),entries:s})}});qon=me("ZodLiteral",(e,t)=>{G9e.init(e,t),Xi.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]}})});Bon=me("ZodTransform",(e,t)=>{V9e.init(e,t),Xi.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)}});yZe=me("ZodOptional",(e,t)=>{W9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType});zon=me("ZodNullable",(e,t)=>{K9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType});Gon=me("ZodDefault",(e,t)=>{Y9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});Won=me("ZodPrefault",(e,t)=>{Z9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType});SZe=me("ZodNonOptional",(e,t)=>{J9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType});Zon=me("ZodCatch",(e,t)=>{X9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});Xon=me("ZodPipe",(e,t)=>{Q9e.init(e,t),Xi.init(e,t),e.in=t.in,e.out=t.out});Qon=me("ZodReadonly",(e,t)=>{$9e.init(e,t),Xi.init(e,t)});bZe=me("ZodCustom",(e,t)=>{eYe.init(e,t),Xi.init(e,t)})});var _Ze=v(()=>{});var TZe=v(()=>{});var vZe=v(()=>{hd();Kre();qre();Yre();Zre();_Ze();hd();rYe();l2();Wre();TZe();pd(nYe())});var RZe=v(()=>{vZe()});var AZe=v(()=>{RZe()});var tie,wZe,OS,_2,_o,kZe,IZe,PBr,san,oan,nie,Sl,uC,xZe,ma,md,gd,ga,T2,OZe,rie,PZe,NZe,iie,lC,Sn,sie,CZe,MZe,NBr,v2,aan,R2,can,dC,Jw,DZe,uan,lan,dan,fan,pan,han,oie,man,gan,aie,A2,yan,San,w2,ban,fC,pC,Ean,hC,Xw,_an,mC,k2,I2,x2,CBr,O2,P2,N2,LZe,UZe,FZe,cie,jZe,gC,Qw,HZe,Tan,van,Ran,Aan,wan,uie,kan,Ian,xan,Oan,Pan,Nan,Can,Man,Dan,Lan,Uan,Fan,lie,jan,Han,die,fie,pie,hie,qan,Ban,zan,mie,Gan,Van,Wan,Kan,Yan,qZe,gie,Zan,C2,MBr,Jan,yC,Xan,DBr,SC,Qan,yie,$an,ecn,tcn,ncn,rcn,icn,scn,E2,ocn,acn,ccn,bC,Sie,ucn,lcn,dcn,fcn,pcn,hcn,mcn,gcn,ycn,Scn,bcn,Ecn,_cn,Tcn,vcn,Rcn,Acn,wcn,$w,kcn,Icn,xcn,bie,Ocn,Pcn,Ncn,Eie,Ccn,LBr,UBr,FBr,jBr,HBr,qBr,rn,eie,C_=v(()=>{AZe();tie="2025-11-25",wZe=[tie,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],OS="io.modelcontextprotocol/related-task",_2="2.0",_o=EZe(e=>e!==null&&(typeof e=="object"||typeof e=="function")),kZe=mi([le(),vr().int()]),IZe=le(),PBr=Bc({ttl:vr().optional(),pollInterval:vr().optional()}),san=$e({ttl:vr().optional()}),oan=$e({taskId:le()}),nie=Bc({progressToken:kZe.optional(),[OS]:oan.optional()}),Sl=$e({_meta:nie.optional()}),uC=Sl.extend({task:san.optional()}),xZe=e=>uC.safeParse(e).success,ma=$e({method:le(),params:Sl.loose().optional()}),md=$e({_meta:nie.optional()}),gd=$e({method:le(),params:md.loose().optional()}),ga=Bc({_meta:nie.optional()}),T2=mi([le(),vr().int()]),OZe=$e({jsonrpc:ft(_2),id:T2,...ma.shape}).strict(),rie=e=>OZe.safeParse(e).success,PZe=$e({jsonrpc:ft(_2),...gd.shape}).strict(),NZe=e=>PZe.safeParse(e).success,iie=$e({jsonrpc:ft(_2),id:T2,result:ga}).strict(),lC=e=>iie.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"})(Sn||(Sn={}));sie=$e({jsonrpc:ft(_2),id:T2.optional(),error:$e({code:vr().int(),message:le(),data:Li().optional()})}).strict(),CZe=e=>sie.safeParse(e).success,MZe=mi([OZe,PZe,iie,sie]),NBr=mi([iie,sie]),v2=ga.strict(),aan=md.extend({requestId:T2.optional(),reason:le().optional()}),R2=gd.extend({method:ft("notifications/cancelled"),params:aan}),can=$e({src:le(),mimeType:le().optional(),sizes:Vn(le()).optional(),theme:Tu(["light","dark"]).optional()}),dC=$e({icons:Vn(can).optional()}),Jw=$e({name:le(),title:le().optional()}),DZe=Jw.extend({...Jw.shape,...dC.shape,version:le(),websiteUrl:le().optional(),description:le().optional()}),uan=b2($e({applyDefaults:Vo().optional()}),ii(le(),Li())),lan=$re(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,b2($e({form:uan.optional(),url:_o.optional()}),ii(le(),Li()).optional())),dan=Bc({list:_o.optional(),cancel:_o.optional(),requests:Bc({sampling:Bc({createMessage:_o.optional()}).optional(),elicitation:Bc({create:_o.optional()}).optional()}).optional()}),fan=Bc({list:_o.optional(),cancel:_o.optional(),requests:Bc({tools:Bc({call:_o.optional()}).optional()}).optional()}),pan=$e({experimental:ii(le(),_o).optional(),sampling:$e({context:_o.optional(),tools:_o.optional()}).optional(),elicitation:lan.optional(),roots:$e({listChanged:Vo().optional()}).optional(),tasks:dan.optional(),extensions:ii(le(),_o).optional()}),han=Sl.extend({protocolVersion:le(),capabilities:pan,clientInfo:DZe}),oie=ma.extend({method:ft("initialize"),params:han}),man=$e({experimental:ii(le(),_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:fan.optional(),extensions:ii(le(),_o).optional()}),gan=ga.extend({protocolVersion:le(),capabilities:man,serverInfo:DZe,instructions:le().optional()}),aie=gd.extend({method:ft("notifications/initialized"),params:md.optional()}),A2=ma.extend({method:ft("ping"),params:Sl.optional()}),yan=$e({progress:vr(),total:Ui(vr()),message:Ui(le())}),San=$e({...md.shape,...yan.shape,progressToken:kZe}),w2=gd.extend({method:ft("notifications/progress"),params:San}),ban=Sl.extend({cursor:IZe.optional()}),fC=ma.extend({params:ban.optional()}),pC=ga.extend({nextCursor:IZe.optional()}),Ean=Tu(["working","input_required","completed","failed","cancelled"]),hC=$e({taskId:le(),status:Ean,ttl:mi([vr(),pZe()]),createdAt:le(),lastUpdatedAt:le(),pollInterval:Ui(vr()),statusMessage:Ui(le())}),Xw=ga.extend({task:hC}),_an=md.merge(hC),mC=gd.extend({method:ft("notifications/tasks/status"),params:_an}),k2=ma.extend({method:ft("tasks/get"),params:Sl.extend({taskId:le()})}),I2=ga.merge(hC),x2=ma.extend({method:ft("tasks/result"),params:Sl.extend({taskId:le()})}),CBr=ga.loose(),O2=fC.extend({method:ft("tasks/list")}),P2=pC.extend({tasks:Vn(hC)}),N2=ma.extend({method:ft("tasks/cancel"),params:Sl.extend({taskId:le()})}),LZe=ga.merge(hC),UZe=$e({uri:le(),mimeType:Ui(le()),_meta:ii(le(),Li()).optional()}),FZe=UZe.extend({text:le()}),cie=le().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),jZe=UZe.extend({blob:cie}),gC=Tu(["user","assistant"]),Qw=$e({audience:Vn(gC).optional(),priority:vr().min(0).max(1).optional(),lastModified:aC.datetime({offset:!0}).optional()}),HZe=$e({...Jw.shape,...dC.shape,uri:le(),description:Ui(le()),mimeType:Ui(le()),size:Ui(vr()),annotations:Qw.optional(),_meta:Ui(Bc({}))}),Tan=$e({...Jw.shape,...dC.shape,uriTemplate:le(),description:Ui(le()),mimeType:Ui(le()),annotations:Qw.optional(),_meta:Ui(Bc({}))}),van=fC.extend({method:ft("resources/list")}),Ran=pC.extend({resources:Vn(HZe)}),Aan=fC.extend({method:ft("resources/templates/list")}),wan=pC.extend({resourceTemplates:Vn(Tan)}),uie=Sl.extend({uri:le()}),kan=uie,Ian=ma.extend({method:ft("resources/read"),params:kan}),xan=ga.extend({contents:Vn(mi([FZe,jZe]))}),Oan=gd.extend({method:ft("notifications/resources/list_changed"),params:md.optional()}),Pan=uie,Nan=ma.extend({method:ft("resources/subscribe"),params:Pan}),Can=uie,Man=ma.extend({method:ft("resources/unsubscribe"),params:Can}),Dan=md.extend({uri:le()}),Lan=gd.extend({method:ft("notifications/resources/updated"),params:Dan}),Uan=$e({name:le(),description:Ui(le()),required:Ui(Vo())}),Fan=$e({...Jw.shape,...dC.shape,description:Ui(le()),arguments:Ui(Vn(Uan)),_meta:Ui(Bc({}))}),lie=fC.extend({method:ft("prompts/list")}),jan=pC.extend({prompts:Vn(Fan)}),Han=Sl.extend({name:le(),arguments:ii(le(),le()).optional()}),die=ma.extend({method:ft("prompts/get"),params:Han}),fie=$e({type:ft("text"),text:le(),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),pie=$e({type:ft("image"),data:cie,mimeType:le(),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),hie=$e({type:ft("audio"),data:cie,mimeType:le(),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),qan=$e({type:ft("tool_use"),name:le(),id:le(),input:ii(le(),Li()),_meta:ii(le(),Li()).optional()}),Ban=$e({type:ft("resource"),resource:mi([FZe,jZe]),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),zan=HZe.extend({type:ft("resource_link")}),mie=mi([fie,pie,hie,zan,Ban]),Gan=$e({role:gC,content:mie}),Van=ga.extend({description:le().optional(),messages:Vn(Gan)}),Wan=gd.extend({method:ft("notifications/prompts/list_changed"),params:md.optional()}),Kan=$e({title:le().optional(),readOnlyHint:Vo().optional(),destructiveHint:Vo().optional(),idempotentHint:Vo().optional(),openWorldHint:Vo().optional()}),Yan=$e({taskSupport:Tu(["required","optional","forbidden"]).optional()}),qZe=$e({...Jw.shape,...dC.shape,description:le().optional(),inputSchema:$e({type:ft("object"),properties:ii(le(),_o).optional(),required:Vn(le()).optional()}).catchall(Li()),outputSchema:$e({type:ft("object"),properties:ii(le(),_o).optional(),required:Vn(le()).optional()}).catchall(Li()).optional(),annotations:Kan.optional(),execution:Yan.optional(),_meta:ii(le(),Li()).optional()}),gie=fC.extend({method:ft("tools/list")}),Zan=pC.extend({tools:Vn(qZe)}),C2=ga.extend({content:Vn(mie).default([]),structuredContent:ii(le(),Li()).optional(),isError:Vo().optional()}),MBr=C2.or(ga.extend({toolResult:Li()})),Jan=uC.extend({name:le(),arguments:ii(le(),Li()).optional()}),yC=ma.extend({method:ft("tools/call"),params:Jan}),Xan=gd.extend({method:ft("notifications/tools/list_changed"),params:md.optional()}),DBr=$e({autoRefresh:Vo().default(!0),debounceMs:vr().int().nonnegative().default(300)}),SC=Tu(["debug","info","notice","warning","error","critical","alert","emergency"]),Qan=Sl.extend({level:SC}),yie=ma.extend({method:ft("logging/setLevel"),params:Qan}),$an=md.extend({level:SC,logger:le().optional(),data:Li()}),ecn=gd.extend({method:ft("notifications/message"),params:$an}),tcn=$e({name:le().optional()}),ncn=$e({hints:Vn(tcn).optional(),costPriority:vr().min(0).max(1).optional(),speedPriority:vr().min(0).max(1).optional(),intelligencePriority:vr().min(0).max(1).optional()}),rcn=$e({mode:Tu(["auto","required","none"]).optional()}),icn=$e({type:ft("tool_result"),toolUseId:le().describe("The unique identifier for the corresponding tool call."),content:Vn(mie).default([]),structuredContent:$e({}).loose().optional(),isError:Vo().optional(),_meta:ii(le(),Li()).optional()}),scn=Qre("type",[fie,pie,hie]),E2=Qre("type",[fie,pie,hie,qan,icn]),ocn=$e({role:gC,content:mi([E2,Vn(E2)]),_meta:ii(le(),Li()).optional()}),acn=uC.extend({messages:Vn(ocn),modelPreferences:ncn.optional(),systemPrompt:le().optional(),includeContext:Tu(["none","thisServer","allServers"]).optional(),temperature:vr().optional(),maxTokens:vr().int(),stopSequences:Vn(le()).optional(),metadata:_o.optional(),tools:Vn(qZe).optional(),toolChoice:rcn.optional()}),ccn=ma.extend({method:ft("sampling/createMessage"),params:acn}),bC=ga.extend({model:le(),stopReason:Ui(Tu(["endTurn","stopSequence","maxTokens"]).or(le())),role:gC,content:scn}),Sie=ga.extend({model:le(),stopReason:Ui(Tu(["endTurn","stopSequence","maxTokens","toolUse"]).or(le())),role:gC,content:mi([E2,Vn(E2)])}),ucn=$e({type:ft("boolean"),title:le().optional(),description:le().optional(),default:Vo().optional()}),lcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),minLength:vr().optional(),maxLength:vr().optional(),format:Tu(["email","uri","date","date-time"]).optional(),default:le().optional()}),dcn=$e({type:Tu(["number","integer"]),title:le().optional(),description:le().optional(),minimum:vr().optional(),maximum:vr().optional(),default:vr().optional()}),fcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),enum:Vn(le()),default:le().optional()}),pcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),oneOf:Vn($e({const:le(),title:le()})),default:le().optional()}),hcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),enum:Vn(le()),enumNames:Vn(le()).optional(),default:le().optional()}),mcn=mi([fcn,pcn]),gcn=$e({type:ft("array"),title:le().optional(),description:le().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({type:ft("string"),enum:Vn(le())}),default:Vn(le()).optional()}),ycn=$e({type:ft("array"),title:le().optional(),description:le().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({anyOf:Vn($e({const:le(),title:le()}))}),default:Vn(le()).optional()}),Scn=mi([gcn,ycn]),bcn=mi([hcn,mcn,Scn]),Ecn=mi([bcn,ucn,lcn,dcn]),_cn=uC.extend({mode:ft("form").optional(),message:le(),requestedSchema:$e({type:ft("object"),properties:ii(le(),Ecn),required:Vn(le()).optional()})}),Tcn=uC.extend({mode:ft("url"),message:le(),elicitationId:le(),url:le().url()}),vcn=mi([_cn,Tcn]),Rcn=ma.extend({method:ft("elicitation/create"),params:vcn}),Acn=md.extend({elicitationId:le()}),wcn=gd.extend({method:ft("notifications/elicitation/complete"),params:Acn}),$w=ga.extend({action:Tu(["accept","decline","cancel"]),content:$re(e=>e===null?void 0:e,ii(le(),mi([le(),vr(),Vo(),Vn(le())])).optional())}),kcn=$e({type:ft("ref/resource"),uri:le()}),Icn=$e({type:ft("ref/prompt"),name:le()}),xcn=Sl.extend({ref:mi([Icn,kcn]),argument:$e({name:le(),value:le()}),context:$e({arguments:ii(le(),le()).optional()}).optional()}),bie=ma.extend({method:ft("completion/complete"),params:xcn}),Ocn=ga.extend({completion:Bc({values:Vn(le()).max(100),total:Ui(vr().int()),hasMore:Ui(Vo())})}),Pcn=$e({uri:le().startsWith("file://"),name:le().optional(),_meta:ii(le(),Li()).optional()}),Ncn=ma.extend({method:ft("roots/list"),params:Sl.optional()}),Eie=ga.extend({roots:Vn(Pcn)}),Ccn=gd.extend({method:ft("notifications/roots/list_changed"),params:md.optional()}),LBr=mi([A2,oie,bie,yie,die,lie,van,Aan,Ian,Nan,Man,yC,gie,k2,x2,O2,N2]),UBr=mi([R2,w2,aie,Ccn,mC]),FBr=mi([v2,bC,Sie,$w,Eie,I2,P2,Xw]),jBr=mi([A2,ccn,Rcn,Ncn,k2,x2,O2,N2]),HBr=mi([R2,w2,ecn,Lan,Oan,Xan,Wan,mC,wcn]),qBr=mi([v2,gan,Ocn,Van,jan,Ran,wan,xan,C2,Zan,I2,P2,Xw]),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===Sn.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new eie(i.elicitations,n)}return new e(t,n,r)}},eie=class extends rn{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(Sn.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}}});function PS(e){return e==="completed"||e==="failed"||e==="cancelled"}var BZe=v(()=>{});var M2=v(()=>{});var _ie=v(()=>{M2()});var NS=v(()=>{});var D2=v(()=>{});var yd=v(()=>{D2()});var Tie=v(()=>{NS();Qs()});var vie=v(()=>{NS()});var Rie=v(()=>{});var L2=v(()=>{Qs()});var Aie=v(()=>{Qs()});var wie=v(()=>{NS()});var kie=v(()=>{Qs()});var Iie=v(()=>{Qs();yd()});var xie=v(()=>{});var Oie=v(()=>{Qs()});var Pie=v(()=>{});var Ezr,U2=v(()=>{NS();Ezr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789")});var F2=v(()=>{Qs();U2();L2();yd()});var Nie=v(()=>{Qs();F2();yd()});var Cie=v(()=>{});var Mie=v(()=>{yd()});var Die=v(()=>{});var j2=v(()=>{Qs()});var Lie=v(()=>{Qs();j2()});var Uie=v(()=>{NS()});var Fie=v(()=>{Qs()});var jie=v(()=>{Qs();yd()});var Hie=v(()=>{Qs()});var qie=v(()=>{Qs()});var Bie=v(()=>{NS();Qs()});var zie=v(()=>{Qs()});var Gie=v(()=>{yd()});var Vie=v(()=>{yd()});var Wie=v(()=>{Qs()});var Kie=v(()=>{yd();Tie();vie();Rie();L2();Aie();wie();kie();Iie();xie();Oie();Pie();Nie();Cie();Mie();Die();Lie();Uie();Fie();jie();Hie();qie();F2();Bie();U2();zie();Gie();j2();Vie();Wie()});var Qs=v(()=>{M2();Kie();D2();yd()});var zZe=v(()=>{});var Yie=v(()=>{Qs();_ie();yd()});var Zie=v(()=>{M2();_ie();NS();D2();Qs();zZe();yd();Tie();vie();Rie();L2();Aie();wie();kie();Iie();xie();Oie();Pie();Nie();Cie();Mie();Die();Lie();Uie();Fie();jie();Hie();qie();Wie();F2();Bie();U2();zie();Gie();j2();Vie();Kie();Yie();Yie()});function Jie(e){let n=g2(e)?.method;if(!n)throw new Error("Schema is missing a method literal");let r=QYe(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function Xie(e,t){let n=xS(e,t);if(!n.success)throw n.error;return n.data}var VZe=v(()=>{y2();Zie()});function WZe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function KZe(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];WZe(o)&&WZe(s)?n[i]={...o,...s}:n[i]=s}return n}var Fcn,H2,YZe=v(()=>{y2();C_();BZe();VZe();Fcn=6e4,H2=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(R2,n=>{this._oncancel(n)}),this.setNotificationHandler(w2,n=>{this._onprogress(n)}),this.setRequestHandler(A2,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(k2,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(Sn.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(x2,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(Sn.InvalidParams,`Task not found: ${s}`);if(!PS(o.status))return await this._waitForTaskUpdate(s,r.signal),await i();if(PS(o.status)){let a=await this._taskStore.getTaskResult(s,r.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[OS]:{taskId:s}}}}return await i()};return await i()}),this.setRequestHandler(O2,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(Sn.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(N2,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(Sn.InvalidParams,`Task not found: ${n.params.taskId}`);if(PS(i.status))throw new rn(Sn.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(Sn.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof rn?i:new rn(Sn.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(Sn.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),lC(s)||CZe(s)?this._onresponse(s):rie(s)?this._onrequest(s,o):NZe(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(Sn.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?.[OS]?.taskId;if(r===void 0){let l={jsonrpc:"2.0",id:t.id,error:{code:Sn.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=xZe(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(Sn.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:Sn.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),lC(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(lC(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),lC(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(Sn.InternalError,String(o))}}return}let s;try{let o=await this.request(t,Xw,r);if(o.task)s=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new rn(Sn.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},r);if(yield{type:"taskStatus",task:a},PS(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(Sn.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new rn(Sn.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(Sn.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||{},[OS]: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(Sn.RequestTimeout,String(b));l(S)};this._responseHandlers.set(f,b=>{if(!r?.signal?.aborted){if(b instanceof Error)return l(b);try{let S=xS(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??Fcn,g=()=>h(rn.fromError(Sn.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},I2,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},P2,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},LZe,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||{},[OS]: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||{},[OS]: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||{},[OS]:n.relatedTask}}}),await this._transport.send(o,n)}setRequestHandler(t,n){let r=Jie(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=Xie(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=Jie(t);this._notificationHandlers.set(r,i=>{let s=Xie(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"&&rie(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new rn(Sn.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(Sn.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,r);n.addEventListener("abort",()=>{clearTimeout(o),s(new rn(Sn.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(Sn.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=mC.parse({method:"notifications/tasks/status",params:a});await this.notification(c),PS(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(Sn.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(PS(a.status))throw new rn(Sn.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=mC.parse({method:"notifications/tasks/status",params:c});await this.notification(u),PS(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}}});var ek=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 _C=class{};tr._CodeOrName=_C;tr.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var M_=class extends _C{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=M_;var Sd=class extends _C{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 M_&&(n[r.str]=(n[r.str]||0)+1),n),{})}};tr._Code=Sd;tr.nil=new Sd("");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=ek(),ese=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},q2;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(q2||(Ru.UsedValueState=q2={}));Ru.varKinds={const:new vu.Name("const"),let:new vu.Name("let"),var:new vu.Name("var")};var B2=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=B2;var z2=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=z2;var Kcn=(0,vu._)`\n`,tse=class extends B2{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?Kcn:vu.nil}}get(){return this._scope}name(t){return new z2(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,q2.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 ese(u);c.set(u,q2.Completed)})}return s}};Ru.ValueScope=tse});var Ot=w(bn=>{"use strict";Object.defineProperty(bn,"__esModule",{value:!0});bn.or=bn.and=bn.not=bn.CodeGen=bn.operators=bn.varKinds=bn.ValueScopeName=bn.ValueScope=bn.Scope=bn.Name=bn.regexpCode=bn.stringify=bn.getProperty=bn.nil=bn.strConcat=bn.str=bn._=void 0;var Wn=ek(),Rf=G2(),CS=ek();Object.defineProperty(bn,"_",{enumerable:!0,get:function(){return CS._}});Object.defineProperty(bn,"str",{enumerable:!0,get:function(){return CS.str}});Object.defineProperty(bn,"strConcat",{enumerable:!0,get:function(){return CS.strConcat}});Object.defineProperty(bn,"nil",{enumerable:!0,get:function(){return CS.nil}});Object.defineProperty(bn,"getProperty",{enumerable:!0,get:function(){return CS.getProperty}});Object.defineProperty(bn,"stringify",{enumerable:!0,get:function(){return CS.stringify}});Object.defineProperty(bn,"regexpCode",{enumerable:!0,get:function(){return CS.regexpCode}});Object.defineProperty(bn,"Name",{enumerable:!0,get:function(){return CS.Name}});var Y2=G2();Object.defineProperty(bn,"Scope",{enumerable:!0,get:function(){return Y2.Scope}});Object.defineProperty(bn,"ValueScope",{enumerable:!0,get:function(){return Y2.ValueScope}});Object.defineProperty(bn,"ValueScopeName",{enumerable:!0,get:function(){return Y2.ValueScopeName}});Object.defineProperty(bn,"varKinds",{enumerable:!0,get:function(){return Y2.varKinds}});bn.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 Wm=class{optimizeNodes(){return this}optimizeNames(t,n){return this}},nse=class extends Wm{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=nk(this.rhs,t,n)),this}get names(){return this.rhs instanceof Wn._CodeOrName?this.rhs.names:{}}},V2=class extends Wm{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=nk(this.rhs,t,n),this}get names(){let t=this.lhs instanceof Wn.Name?{}:{...this.lhs.names};return K2(t,this.rhs)}},rse=class extends V2{constructor(t,n,r,i){super(t,r,i),this.op=n}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},ise=class extends Wm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},sse=class extends Wm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},ose=class extends Wm{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},ase=class extends Wm{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=nk(this.code,t,n),this}get names(){return this.code instanceof Wn._CodeOrName?this.code.names:{}}},vC=class extends Wm{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)||(Ycn(t,s.names),r.splice(i,1))}return r.length>0?this:void 0}get names(){return this.nodes.reduce((t,n)=>U_(t,n.names),{})}},Km=class extends vC{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},cse=class extends vC{},tk=class extends Km{};tk.kind="else";var D_=class e extends Km{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 tk(r):r}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(XZe(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=nk(this.condition,t,n),this}get names(){let t=super.names;return K2(t,this.condition),this.else&&U_(t,this.else.names),t}};D_.kind="if";var L_=class extends Km{};L_.kind="for";var use=class extends L_{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=nk(this.iteration,t,n),this}get names(){return U_(super.names,this.iteration.names)}},lse=class extends L_{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=K2(super.names,this.from);return K2(t,this.to)}},W2=class extends L_{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=nk(this.iterable,t,n),this}get names(){return U_(super.names,this.iterable.names)}},RC=class extends Km{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)}};RC.kind="func";var AC=class extends vC{render(t){return"return "+super.render(t)}};AC.kind="return";var dse=class extends Km{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&&U_(t,this.catch.names),this.finally&&U_(t,this.finally.names),t}},wC=class extends Km{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};wC.kind="catch";var kC=class extends Km{render(t){return"finally"+super.render(t)}};kC.kind="finally";var fse=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 cse]}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 nse(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 V2(t,n,r))}add(t,n){return this._leafNode(new rse(t,bn.operators.ADD,n))}code(t){return typeof t=="function"?t():t!==Wn.nil&&this._leafNode(new ase(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 D_(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 D_(t))}else(){return this._elseNode(new tk)}endIf(){return this._endBlockNode(D_,tk)}_for(t,n){return this._blockNode(t),n&&this.code(n).endFor(),this}for(t,n){return this._for(new use(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 lse(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 W2("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 W2("in",i,s,n),()=>r(s))}endFor(){return this._endBlockNode(L_)}label(t){return this._leafNode(new ise(t))}break(t){return this._leafNode(new sse(t))}return(t){let n=new AC;if(this._blockNode(n),this.code(t),n.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(AC)}try(t,n,r){if(!n&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new dse;if(this._blockNode(i),this.code(t),n){let s=this.name("e");this._currNode=i.catch=new wC(s),n(s)}return r&&(this._currNode=i.finally=new kC,this.code(r)),this._endBlockNode(wC,kC)}throw(t){return this._leafNode(new ose(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 RC(t,n,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(RC)}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 D_))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}};bn.CodeGen=fse;function U_(e,t){for(let n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function K2(e,t){return t instanceof Wn._CodeOrName?U_(e,t.names):e}function nk(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 Ycn(e,t){for(let n in t)e[n]=(e[n]||0)-(t[n]||0)}function XZe(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,Wn._)`!${pse(e)}`}bn.not=XZe;var Zcn=QZe(bn.operators.AND);function Jcn(...e){return e.reduce(Zcn)}bn.and=Jcn;var Xcn=QZe(bn.operators.OR);function Qcn(...e){return e.reduce(Xcn)}bn.or=Qcn;function QZe(e){return(t,n)=>t===Wn.nil?n:n===Wn.nil?t:(0,Wn._)`${pse(t)} ${e} ${pse(n)}`}function pse(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(),$cn=ek();function eun(e){let t={};for(let n of e)t[n]=!0;return t}Rn.toHash=eun;function tun(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(t6e(e,t),!n6e(t,e.self.RULES.all))}Rn.alwaysValidSchema=tun;function t6e(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]||s6e(e,`unknown keyword: "${s}"`)}Rn.checkUnknownRules=t6e;function n6e(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(t[n])return!0;return!1}Rn.schemaHasRules=n6e;function nun(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=nun;function run({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=run;function iun(e){return r6e(decodeURIComponent(e))}Rn.unescapeFragment=iun;function sun(e){return encodeURIComponent(mse(e))}Rn.escapeFragment=sun;function mse(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}Rn.escapeJsonPointer=mse;function r6e(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}Rn.unescapeJsonPointer=r6e;function oun(e,t){if(Array.isArray(e))for(let n of e)t(n);else t(e)}Rn.eachItem=oun;function $Ze({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:$Ze({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} || {}`),gse(e,n,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:i6e}),items:$Ze({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 i6e(e,t){if(t===!0)return e.var("props",!0);let n=e.var("props",(0,Wr._)`{}`);return t!==void 0&&gse(e,n,t),n}Rn.evaluatedPropsToName=i6e;function gse(e,t,n){Object.keys(n).forEach(r=>e.assign((0,Wr._)`${t}${(0,Wr.getProperty)(r)}`,!0))}Rn.setEvaluated=gse;var e6e={};function aun(e,t){return e.scopeValue("func",{ref:t,code:e6e[t.code]||(e6e[t.code]=new $cn._Code(t.code))})}Rn.useFunc=aun;var hse;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(hse||(Rn.Type=hse={}));function cun(e,t,n){if(e instanceof Wr.Name){let r=t===hse.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():"/"+mse(e)}Rn.getErrorPath=cun;function s6e(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=s6e});var bd=w(yse=>{"use strict";Object.defineProperty(yse,"__esModule",{value:!0});var ic=Ot(),uun={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")};yse.default=uun});var IC=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(),Z2=pn(),zc=bd();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 lun(e,t=sc.keywordError,n,r){let{it:i}=e,{gen:s,compositeRule:o,allErrors:a}=i,c=c6e(e,t,n);r??(o||a)?o6e(s,c):a6e(i,(0,Jn._)`[${c}]`)}sc.reportError=lun;function dun(e,t=sc.keywordError,n){let{it:r}=e,{gen:i,compositeRule:s,allErrors:o}=r,a=c6e(e,t,n);o6e(i,a),s||o||a6e(r,zc.default.vErrors)}sc.reportExtraError=dun;function fun(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=fun;function pun({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=pun;function o6e(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 a6e(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 F_={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 c6e(e,t,n){let{createErrors:r}=e.it;return r===!1?(0,Jn._)`{}`:hun(e,t,n)}function hun(e,t,n={}){let{gen:r,it:i}=e,s=[mun(i,n),gun(e,n)];return yun(e,t,s),r.object(...s)}function mun({errorPath:e},{instancePath:t}){let n=t?(0,Jn.str)`${e}${(0,Z2.getErrorPath)(t,Z2.Type.Str)}`:e;return[zc.default.instancePath,(0,Jn.strConcat)(zc.default.instancePath,n)]}function gun({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,Z2.getErrorPath)(n,Z2.Type.Str)}`),[F_.schemaPath,i]}function yun(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([F_.keyword,i],[F_.params,typeof t=="function"?t(e):t||(0,Jn._)`{}`]),c.messages&&r.push([F_.message,typeof n=="function"?n(e):n]),c.verbose&&r.push([F_.schema,o],[F_.parentSchema,(0,Jn._)`${l}${d}`],[zc.default.data,s]),u&&r.push([F_.propertyName,u])}});var l6e=w(rk=>{"use strict";Object.defineProperty(rk,"__esModule",{value:!0});rk.boolOrEmptySchema=rk.topBoolOrEmptySchema=void 0;var Sun=IC(),bun=Ot(),Eun=bd(),_un={message:"boolean schema is false"};function Tun(e){let{gen:t,schema:n,validateName:r}=e;n===!1?u6e(e,!1):typeof n=="object"&&n.$async===!0?t.return(Eun.default.data):(t.assign((0,bun._)`${r}.errors`,null),t.return(!0))}rk.topBoolOrEmptySchema=Tun;function vun(e,t){let{gen:n,schema:r}=e;r===!1?(n.var(t,!1),u6e(e)):n.var(t,!0)}rk.boolOrEmptySchema=vun;function u6e(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,Sun.reportError)(i,_un,void 0,t)}});var Sse=w(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});ik.getRules=ik.isJSONType=void 0;var Run=["string","number","integer","boolean","null","object","array"],Aun=new Set(Run);function wun(e){return typeof e=="string"&&Aun.has(e)}ik.isJSONType=wun;function kun(){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:{}}}ik.getRules=kun});var bse=w(MS=>{"use strict";Object.defineProperty(MS,"__esModule",{value:!0});MS.shouldUseRule=MS.shouldUseGroup=MS.schemaHasRulesForType=void 0;function Iun({schema:e,self:t},n){let r=t.RULES.types[n];return r&&r!==!0&&d6e(e,r)}MS.schemaHasRulesForType=Iun;function d6e(e,t){return t.rules.some(n=>f6e(e,n))}MS.shouldUseGroup=d6e;function f6e(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))}MS.shouldUseRule=f6e});var xC=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 xun=Sse(),Oun=bse(),Pun=IC(),hn=Ot(),p6e=pn(),sk;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(sk||(oc.DataType=sk={}));function Nun(e){let t=h6e(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=Nun;function h6e(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(xun.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}oc.getJSONTypes=h6e;function Cun(e,t){let{gen:n,data:r,opts:i}=e,s=Mun(t,i.coerceTypes),o=t.length>0&&!(s.length===0&&t.length===1&&(0,Oun.schemaHasRulesForType)(e,t[0]));if(o){let a=_se(t,r,i.strictNumbers,sk.Wrong);n.if(a,()=>{s.length?Dun(e,t,s):Tse(e)})}return o}oc.coerceAndCheckDataType=Cun;var m6e=new Set(["string","number","integer","boolean","null"]);function Mun(e,t){return t?e.filter(n=>m6e.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(_se(t,i,s.strictNumbers),()=>r.assign(a,i))),r.if((0,hn._)`${a} !== undefined`);for(let u of n)(m6e.has(u)||u==="array"&&s.coerceTypes==="array")&&c(u);r.else(),Tse(e),r.endIf(),r.if((0,hn._)`${a} !== undefined`,()=>{r.assign(i,a),Lun(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 Dun({gen:e,parentData:t,parentDataProperty:n},r){e.if((0,hn._)`${t} !== undefined`,()=>e.assign((0,hn._)`${t}[${n}]`,r))}function Ese(e,t,n,r=sk.Correct){let i=r===sk.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===sk.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=Ese;function _se(e,t,n,r){if(e.length===1)return Ese(e[0],t,n,r);let i,s=(0,d6e.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,Ese(o,t,n,r));return i}oc.checkDataTypes=_se;var Lun={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,hn._)`{type: ${e}}`:(0,hn._)`{type: ${t}}`};function Tse(e){let t=Uun(e);(0,Oun.reportError)(t,Lun)}oc.reportTypeError=Tse;function Uun(e){let{gen:t,data:n,schema:r}=e,i=(0,d6e.schemaRefOrVal)(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:e}}});var m6e=w(J2=>{"use strict";Object.defineProperty(J2,"__esModule",{value:!0});J2.assignDefaults=void 0;var ok=Ot(),Fun=pn();function jun(e,t){let{properties:n,items:r}=e.schema;if(t==="object"&&n)for(let i in n)h6e(e,i,n[i].default);else t==="array"&&Array.isArray(r)&&r.forEach((i,s)=>h6e(e,s,i.default))}J2.assignDefaults=jun;function h6e(e,t,n){let{gen:r,compositeRule:i,data:s,opts:o}=e;if(n===void 0)return;let a=(0,ok._)`${s}${(0,ok.getProperty)(t)}`;if(i){(0,Fun.checkStrictMode)(e,`default is ignored for: ${a}`);return}let c=(0,ok._)`${a} === undefined`;o.useDefaults==="empty"&&(c=(0,ok._)`${c} || ${a} === null || ${a} === ""`),r.if(c,(0,ok._)`${a} = ${(0,ok.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(),vse=pn(),DS=bd(),Hun=pn();function qun(e,t){let{gen:n,data:r,it:i}=e;n.if(Ase(n,r,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,gi._)`${t}`},!0),e.error()})}Fr.checkReportMissingProp=qun;function Bun({gen:e,data:t,it:{opts:n}},r,i){return(0,gi.or)(...r.map(s=>(0,gi.and)(Ase(e,t,s,n.ownProperties),(0,gi._)`${i} = ${s}`)))}Fr.checkMissingProp=Bun;function zun(e,t){e.setParams({missingProperty:t},!0),e.error()}Fr.reportMissingProp=zun;function g6e(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,gi._)`Object.prototype.hasOwnProperty`})}Fr.hasPropFunc=g6e;function Rse(e,t,n){return(0,gi._)`${g6e(e)}.call(${t}, ${n})`}Fr.isOwnProperty=Rse;function Gun(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} !== undefined`;return r?(0,gi._)`${i} && ${Rse(e,t,n)}`:i}Fr.propertyInData=Gun;function Ase(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} === undefined`;return r?(0,gi.or)(i,(0,gi.not)(Rse(e,t,n))):i}Fr.noPropertyInData=Ase;function y6e(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}Fr.allSchemaProperties=y6e;function Vun(e,t){return y6e(t).filter(n=>!(0,vse.alwaysValidSchema)(e,t[n]))}Fr.schemaProperties=Vun;function Wun({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=[[DS.default.instancePath,(0,gi.strConcat)(DS.default.instancePath,s)],[DS.default.parentData,o.parentData],[DS.default.parentDataProperty,o.parentDataProperty],[DS.default.rootData,DS.default.rootData]];o.opts.dynamicRef&&d.push([DS.default.dynamicAnchors,DS.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=Wun;var Kun=(0,gi._)`new RegExp`;function Yun({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"?Kun:(0,Hun.useFunc)(e,i)}(${n}, ${r})`})}Fr.usePattern=Yun;function Zun(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:vse.Type.Num},s),t.if((0,gi.not)(s),a)})}}Fr.validateArray=Zun;function Jun(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,vse.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=Jun});var E6e=w(fh=>{"use strict";Object.defineProperty(fh,"__esModule",{value:!0});fh.validateKeywordUsage=fh.validSchemaType=fh.funcKeywordCode=fh.macroKeywordCode=void 0;var Gc=Ot(),j_=bd(),Xun=Sa(),Qun=IC();function $un(e,t){let{gen:n,keyword:r,schema:i,parentSchema:s,it:o}=e,a=t.macro.call(o.self,i,s,o),c=b6e(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=$un;function eln(e,t){var n;let{gen:r,keyword:i,schema:s,parentSchema:o,$data:a,it:c}=e;nln(c,t);let u=!a&&t.compile?t.compile.call(c.self,s,o,c):t.validate,l=b6e(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&&S6e(e),g(()=>e.error());else{let y=t.async?p():h();t.modifying&&S6e(e),g(()=>tln(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?j_.default.this:j_.default.self,S=!("compile"in t&&!a||t.schema===!1);r.assign(d,(0,Gc._)`${y}${(0,Xun.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=eln;function S6e(e){let{gen:t,data:n,it:r}=e;t.if(r.parentData,()=>t.assign(n,(0,Gc._)`${r.parentData}[${r.parentDataProperty}]`))}function tln(e,t){let{gen:n}=e;n.if((0,Gc._)`Array.isArray(${t})`,()=>{n.assign(j_.default.vErrors,(0,Gc._)`${j_.default.vErrors} === null ? ${t} : ${j_.default.vErrors}.concat(${t})`).assign(j_.default.errors,(0,Gc._)`${j_.default.vErrors}.length`),(0,Qun.extendErrors)(e)},()=>e.error())}function nln({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function b6e(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 rln(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=rln;function iln({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=iln});var T6e=w(LS=>{"use strict";Object.defineProperty(LS,"__esModule",{value:!0});LS.extendSubschemaMode=LS.extendSubschemaData=LS.getSubschema=void 0;var ph=Ot(),_6e=pn();function sln(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,_6e.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')}LS.getSubschema=sln;function oln(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,_6e.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]}}LS.extendSubschemaData=oln;function aln(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}LS.extendSubschemaMode=aln});var OC=w((NVr,v6e)=>{"use strict";v6e.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 A6e=w((CVr,R6e)=>{"use strict";var US=R6e.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(){};X2(t,r,i,e,"",e)};US.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};US.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};US.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};US.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 X2(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 US.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 uln=pn(),lln=OC(),dln=A6e(),fln=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function pln(e,t=!0){return typeof e=="boolean"?!0:t===!0?!wse(e):t?w6e(e)<=t:!1}Au.inlineRef=pln;var hln=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function wse(e){for(let t in e){if(hln.has(t))return!0;let n=e[t];if(Array.isArray(n)&&n.some(wse)||typeof n=="object"&&wse(n))return!0}return!1}function w6e(e){let t=0;for(let n in e){if(n==="$ref")return 1/0;if(t++,!fln.has(n)&&(typeof e[n]=="object"&&(0,uln.eachItem)(e[n],r=>t+=w6e(r)),t===1/0))return 1/0}return t}function k6e(e,t="",n){n!==!1&&(t=ak(t));let r=e.parse(t);return I6e(e,r)}Au.getFullPath=k6e;function I6e(e,t){return e.serialize(t).split("#")[0]+"#"}Au._getFullPath=I6e;var mln=/#\/?$/;function ak(e){return e?e.replace(mln,""):""}Au.normalizeId=ak;function gln(e,t,n){return n=ak(n),e.resolve(t,n)}Au.resolveUrl=gln;var yln=/^[a-z_][-a-z0-9._]*$/i;function Sln(e,t){if(typeof e=="boolean")return{};let{schemaId:n,uriResolver:r}=this.opts,i=ak(e[n]||t),s={"":i},o=k6e(r,i,!1),a={},c=new Set;return dln(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=ak(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!==ak(m)&&(S[0]==="#"?(u(d,a[S],S),a[S]=d):this.refs[S]=m),S}function b(S){if(typeof S=="string"){if(!yln.test(S))throw new Error(`invalid anchor "${S}"`);y.call(this,`#${S}`)}}}),a;function u(d,f,p){if(f!==void 0&&!lln(d,f))throw l(p)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Au.getSchemaRefs=Sln});var ck=w(FS=>{"use strict";Object.defineProperty(FS,"__esModule",{value:!0});FS.getData=FS.KeywordCxt=FS.validateFunctionCode=void 0;var C6e=c6e(),x6e=xC(),Ise=bse(),Q2=xC(),bln=m6e(),CC=E6e(),kse=T6e(),pt=Ot(),Xt=bd(),Eln=PC(),Ym=pn(),NC=IC();function _ln(e){if(L6e(e)&&(U6e(e),D6e(e))){Rln(e);return}M6e(e,()=>(0,C6e.topBoolOrEmptySchema)(e))}FS.validateFunctionCode=_ln;function M6e({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"; ${O6e(n,i)}`),vln(e,i),e.code(s)}):e.func(t,(0,pt._)`${Xt.default.data}, ${Tln(i)}`,r.$async,()=>e.code(O6e(n,i)).code(s))}function Tln(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 vln(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 Rln(e){let{schema:t,opts:n,gen:r}=e;M6e(e,()=>{n.$comment&&t.$comment&&j6e(e),xln(e),r.let(Xt.default.vErrors,null),r.let(Xt.default.errors,0),n.unevaluated&&Aln(e),F6e(e),Nln(e)})}function Aln(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 O6e(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 wln(e,t){if(L6e(e)&&(U6e(e),D6e(e))){kln(e,t);return}(0,C6e.boolOrEmptySchema)(e,t)}function D6e({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 L6e(e){return typeof e.schema!="boolean"}function kln(e,t){let{schema:n,gen:r,opts:i}=e;i.$comment&&n.$comment&&j6e(e),Oln(e),Pln(e);let s=r.const("_errs",Xt.default.errors);F6e(e,s),r.var(t,(0,pt._)`${s} === ${Xt.default.errors}`)}function U6e(e){(0,Ym.checkUnknownRules)(e),Iln(e)}function F6e(e,t){if(e.opts.jtd)return P6e(e,[],!1,t);let n=(0,x6e.getSchemaTypes)(e.schema),r=(0,x6e.coerceAndCheckDataType)(e,n);P6e(e,n,!r,t)}function Iln(e){let{schema:t,errSchemaPath:n,opts:r,self:i}=e;t.$ref&&r.ignoreKeywordsWithRef&&(0,Ym.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}function xln(e){let{schema:t,opts:n}=e;t.default!==void 0&&n.useDefaults&&n.strictSchema&&(0,Ym.checkStrictMode)(e,"default is ignored in the schema root")}function Oln(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,Eln.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function Pln(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function j6e({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 Nln(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&&Cln(e),t.return((0,pt._)`${Xt.default.errors} === 0`))}function Cln({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 P6e(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,Ym.schemaHasRulesButRef)(s,l))){i.block(()=>q6e(e,"$ref",l.all.$ref.definition));return}c.jtd||Mln(e,t),i.block(()=>{for(let f of l.rules)d(f);d(l.post)});function d(f){(0,Ise.shouldUseGroup)(s,f)&&(f.type?(i.if((0,Q2.checkDataType)(f.type,o,c.strictNumbers)),N6e(e,f),t.length===1&&t[0]===f.type&&n&&(i.else(),(0,Q2.reportTypeError)(e)),i.endIf()):N6e(e,f),a||i.if((0,pt._)`${Xt.default.errors} === ${r||0}`))}}function N6e(e,t){let{gen:n,schema:r,opts:{useDefaults:i}}=e;i&&(0,bln.assignDefaults)(e,t.type),n.block(()=>{for(let s of t.rules)(0,Ise.shouldUseRule)(r,s)&&q6e(e,s.keyword,s.definition,t.type)})}function Mln(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(Dln(e,t),e.opts.allowUnionTypes||Lln(e,t),Uln(e,e.dataTypes))}function Dln(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(n=>{H6e(e.dataTypes,n)||xse(e,`type "${n}" not allowed by context "${e.dataTypes.join(",")}"`)}),jln(e,t)}}function Lln(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&xse(e,"use allowUnionTypes to allow union type keyword")}function Uln(e,t){let n=e.self.RULES.all;for(let r in n){let i=n[r];if(typeof i=="object"&&(0,Ise.shouldUseRule)(e.schema,i)){let{type:s}=i.definition;s.length&&!s.some(o=>Fln(t,o))&&xse(e,`missing type "${s.join(",")}" for keyword "${r}"`)}}}function Fln(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function H6e(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function jln(e,t){let n=[];for(let r of e.dataTypes)H6e(t,r)?n.push(r):t.includes("integer")&&r==="number"&&n.push("integer");e.dataTypes=n}function xse(e,t){let n=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${n}" (strictTypes)`,(0,Ym.checkStrictMode)(e,t,e.opts.strictTypes)}var $2=class{constructor(t,n,r){if((0,CC.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,Ym.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",B6e(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,CC.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?NC.reportExtraError:NC.reportError)(this,this.def.error,n)}$dataError(){(0,NC.reportError)(this,this.def.$dataError||NC.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,NC.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,Q2.checkDataTypes)(c,n,s.opts.strictNumbers,Q2.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,kse.getSubschema)(this.it,t);(0,kse.extendSubschemaData)(r,this.it,t),(0,kse.extendSubschemaMode)(r,t);let i={...this.it,...r,items:void 0,props:void 0};return wln(i,n),i}mergeEvaluated(t,n){let{it:r,gen:i}=this;r.opts.unevaluated&&(r.props!==!0&&t.props!==void 0&&(r.props=Ym.mergeEvaluated.props(i,t.props,r.props,n)),r.items!==!0&&t.items!==void 0&&(r.items=Ym.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}};FS.KeywordCxt=$2;function q6e(e,t,n,r){let i=new $2(e,n,t);"code"in n?n.code(i,r):i.$data&&n.validate?(0,CC.funcKeywordCode)(i,n):"macro"in n?(0,CC.macroKeywordCode)(i,n):(n.compile||n.validate)&&(0,CC.funcKeywordCode)(i,n)}var Hln=/^\/(?:[^~]|~0|~1)*$/,qln=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function B6e(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let i,s;if(e==="")return Xt.default.rootData;if(e[0]==="/"){if(!Hln.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,s=Xt.default.rootData}else{let u=qln.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,Ym.unescapeJsonPointer)(u))}`,o=(0,pt._)`${o} && ${s}`);return o;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${t}`}}FS.getData=B6e});var MC=w(Pse=>{"use strict";Object.defineProperty(Pse,"__esModule",{value:!0});var Ose=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Pse.default=Ose});var Zm=w(Mse=>{"use strict";Object.defineProperty(Mse,"__esModule",{value:!0});var Nse=PC(),Cse=class extends Error{constructor(t,n,r,i){super(i||`can't resolve reference ${r} from id ${n}`),this.missingRef=(0,Nse.resolveUrl)(t,n,r),this.missingSchema=(0,Nse.normalizeId)((0,Nse.getFullPath)(t,this.missingRef))}};Mse.default=Cse});var q_=w(Ed=>{"use strict";Object.defineProperty(Ed,"__esModule",{value:!0});Ed.resolveSchema=Ed.getCompilingSchema=Ed.resolveRef=Ed.compileSchema=Ed.SchemaEnv=void 0;var Af=Ot(),Bln=MC(),H_=bd(),wf=PC(),z6e=pn(),zln=ck(),uk=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={}}};Ed.SchemaEnv=uk;function Lse(e){let t=G6e.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:Bln.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:H_.default.data,parentData:H_.default.parentData,parentDataProperty:H_.default.parentDataProperty,dataNames:[H_.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,zln.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let d=o.toString();l=`${o.scopeRefs(H_.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let p=new Function(`${H_.default.self}`,`${H_.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)}}Ed.compileSchema=Lse;function Gln(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=Kln.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 uk({schema:o,schemaId:a,root:e,baseId:t}))}if(s!==void 0)return e.refs[n]=Vln.call(this,s)}Ed.resolveRef=Gln;function Vln(e){return(0,wf.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:Lse.call(this,e)}function G6e(e){for(let t of this._compilations)if(Wln(t,e))return t}Ed.getCompilingSchema=G6e;function Wln(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function Kln(e,t){let n;for(;typeof(n=this.refs[t])=="string";)t=n;return n||this.schemas[t]||eV.call(this,e,t)}function eV(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 Dse.call(this,n,e);let s=(0,wf.normalizeId)(r),o=this.refs[s]||this.schemas[s];if(typeof o=="string"){let a=eV.call(this,e,o);return typeof a?.schema!="object"?void 0:Dse.call(this,n,a)}if(typeof o?.schema=="object"){if(o.validate||Lse.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 uk({schema:a,schemaId:c,root:e,baseId:i})}return Dse.call(this,n,o)}}Ed.resolveSchema=eV;var Yln=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Dse(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,z6e.unescapeFragment)(a)];if(c===void 0)return;n=c;let u=typeof n=="object"&&n[this.opts.schemaId];!Yln.has(a)&&u&&(t=(0,wf.resolveUrl)(this.opts.uriResolver,t,u))}let s;if(typeof n!="boolean"&&n.$ref&&!(0,z6e.schemaHasRulesButRef)(n,this.RULES)){let a=(0,wf.resolveUrl)(this.opts.uriResolver,t,n.$ref);s=eV.call(this,r,a)}let{schemaId:o}=this.opts;if(s=s||new uk({schema:n,schemaId:o,root:r,baseId:t}),s.schema!==s.root.schema)return s}});var V6e=w((jVr,Zln)=>{Zln.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 Fse=w((HVr,Z6e)=>{"use strict";var Jln=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),K6e=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 Use(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 Xln=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function W6e(e){return e.length=0,!0}function Qln(e,t,n){if(e.length){let r=Use(e);if(r!=="")t.push(r);else return n.error=!0,!1;e.length=0}return!0}function $ln(e){let t=0,n={error:!1,address:"",zone:""},r=[],i=[],s=!1,o=!1,a=Qln;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=W6e}else{i.push(u);continue}}return i.length&&(a===W6e?n.zone=i.join(""):o?r.push(i.join("")):r.push(Use(i))),n.address=r.join(""),n}function Y6e(e){if(edn(e,":")<2)return{host:e,isIPV6:!1};let t=$ln(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 edn(e,t){let n=0;for(let r=0;r{"use strict";var{isUUID:idn}=Fse(),sdn=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,odn=["http","https","ws","wss","urn","urn:uuid"];function adn(e){return odn.indexOf(e)!==-1}function jse(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 J6e(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function X6e(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 cdn(e){return e.secure=jse(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function udn(e){if((e.port===(jse(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 ldn(e,t){if(!e.path)return e.error="URN can not be parsed",e;let n=e.path.match(sdn);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=Hse(i);e.path=void 0,s&&(e=s.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function ddn(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=Hse(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 fdn(e,t){let n=e;return n.uuid=n.nss,n.nss=void 0,!t.tolerant&&(!n.uuid||!idn(n.uuid))&&(n.error=n.error||"UUID is not valid."),n}function pdn(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var Q6e={scheme:"http",domainHost:!0,parse:J6e,serialize:X6e},hdn={scheme:"https",domainHost:Q6e.domainHost,parse:J6e,serialize:X6e},tV={scheme:"ws",domainHost:!0,parse:cdn,serialize:udn},mdn={scheme:"wss",domainHost:tV.domainHost,parse:tV.parse,serialize:tV.serialize},gdn={scheme:"urn",parse:ldn,serialize:ddn,skipNormalize:!0},ydn={scheme:"urn:uuid",parse:fdn,serialize:pdn,skipNormalize:!0},nV={http:Q6e,https:hdn,ws:tV,wss:mdn,urn:gdn,"urn:uuid":ydn};Object.setPrototypeOf(nV,null);function Hse(e){return e&&(nV[e]||nV[e.toLowerCase()])||void 0}$6e.exports={wsIsSecure:jse,SCHEMES:nV,isValidSchemeName:adn,getSchemeHandler:Hse}});var sV=w((BVr,iV)=>{"use strict";var{normalizeIPv6:Sdn,removeDotSegments:DC,recomposeAuthority:bdn,normalizeComponentEncoding:rV,isIPv4:Edn,nonSimpleDomain:_dn}=Fse(),{SCHEMES:Tdn,getSchemeHandler:t5e}=e5e();function vdn(e,t){return typeof e=="string"?e=hh(Jm(e,t),t):typeof e=="object"&&(e=Jm(hh(e,t),t)),e}function Rdn(e,t,n){let r=n?Object.assign({scheme:"null"},n):{scheme:"null"},i=n5e(Jm(e,r),Jm(t,r),r,!0);return r.skipEscape=!0,hh(i,r)}function n5e(e,t,n,r){let i={};return r||(e=Jm(hh(e,n),n),t=Jm(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=DC(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=DC(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=DC(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=DC(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 Adn(e,t,n){return typeof e=="string"?(e=unescape(e),e=hh(rV(Jm(e,n),!0),{...n,skipEscape:!0})):typeof e=="object"&&(e=hh(rV(e,!0),{...n,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=hh(rV(Jm(t,n),!0),{...n,skipEscape:!0})):typeof t=="object"&&(t=hh(rV(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=t5e(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=bdn(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=DC(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 wdn=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Jm(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(wdn);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(Edn(r.host)===!1){let c=Sdn(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=t5e(n.scheme||r.scheme);if(!n.unicodeSupport&&(!o||!o.unicodeSupport)&&r.host&&(n.domainHost||o&&o.domainHost)&&i===!1&&_dn(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 qse={SCHEMES:Tdn,normalize:vdn,resolve:Rdn,resolveComponent:n5e,equal:Adn,serialize:hh,parse:Jm};iV.exports=qse;iV.exports.default=qse;iV.exports.fastUri=qse});var i5e=w(Bse=>{"use strict";Object.defineProperty(Bse,"__esModule",{value:!0});var r5e=sV();r5e.code='require("ajv/dist/runtime/uri").default';Bse.default=r5e});var Vse=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 kdn=ck();Object.defineProperty(ba,"KeywordCxt",{enumerable:!0,get:function(){return kdn.KeywordCxt}});var lk=Ot();Object.defineProperty(ba,"_",{enumerable:!0,get:function(){return lk._}});Object.defineProperty(ba,"str",{enumerable:!0,get:function(){return lk.str}});Object.defineProperty(ba,"stringify",{enumerable:!0,get:function(){return lk.stringify}});Object.defineProperty(ba,"nil",{enumerable:!0,get:function(){return lk.nil}});Object.defineProperty(ba,"Name",{enumerable:!0,get:function(){return lk.Name}});Object.defineProperty(ba,"CodeGen",{enumerable:!0,get:function(){return lk.CodeGen}});var Idn=MC(),u5e=Zm(),xdn=Sse(),LC=q_(),Odn=Ot(),UC=PC(),oV=xC(),Gse=pn(),s5e=V6e(),Pdn=i5e(),l5e=(e,t)=>new RegExp(e,t);l5e.code="new RegExp";var Ndn=["removeAdditional","useDefaults","coerceTypes"],Cdn=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),Mdn={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."},Ddn={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},o5e=200;function Ldn(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:l5e,L=(i=e.uriResolver)!==null&&i!==void 0?i:Pdn.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:o5e,loopEnum:(g=e.loopEnum)!==null&&g!==void 0?g:o5e,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 FC=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...Ldn(t)};let{es5:n,lines:r}=this.opts.code;this.scope=new Odn.ValueScope({scope:{},prefixes:Cdn,es5:n,lines:r}),this.logger=Bdn(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,xdn.getRules)(),a5e.call(this,Mdn,t,"NOT SUPPORTED"),a5e.call(this,Ddn,t,"DEPRECATED","warn"),this._metaOpts=Hdn.call(this),t.formats&&Fdn.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&jdn.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),Udn.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:n,schemaId:r}=this.opts,i=s5e;r==="id"&&(i={...s5e},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 u5e.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,UC.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=c5e.call(this,t))=="string";)t=n;if(n===void 0){let{schemaId:r}=this.opts,i=new LC.SchemaEnv({schema:{},schemaId:r});if(n=LC.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=c5e.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,UC.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(Gdn.call(this,r,n),!n)return(0,Gse.eachItem)(r,s=>zse.call(this,s)),this;Wdn.call(this,n);let i={...n,type:(0,oV.getJSONTypes)(n.type),schemaType:(0,oV.getJSONTypes)(n.schemaType)};return(0,Gse.eachItem)(r,i.type.length===0?s=>zse.call(this,s,i):s=>i.type.forEach(o=>zse.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]=d5e(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,UC.normalizeId)(o||r);let u=UC.getSchemaRefs.call(this,t,r);return c=new LC.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):LC.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{LC.compileSchema.call(this,t)}finally{this.opts=n}}};FC.ValidationError=Idn.default;FC.MissingRefError=u5e.default;ba.default=FC;function a5e(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 c5e(e){return e=(0,UC.normalizeId)(e),this.schemas[e]||this.refs[e]}function Udn(){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 Fdn(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function jdn(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 Hdn(){let e={...this.opts};for(let t of Ndn)delete e[t];return e}var qdn={log(){},warn(){},error(){}};function Bdn(e){if(e===!1)return qdn;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 zdn=/^[a-z_$][a-z0-9_$:-]*$/i;function Gdn(e,t){let{RULES:n}=this;if((0,Gse.eachItem)(e,r=>{if(n.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!zdn.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 zse(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,oV.getJSONTypes)(t.type),schemaType:(0,oV.getJSONTypes)(t.schemaType)}};t.before?Vdn.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 Vdn(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 Wdn(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=d5e(t)),e.validateSchema=this.compile(t,!0))}var Kdn={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function d5e(e){return{anyOf:[e,Kdn]}}});var f5e=w(Wse=>{"use strict";Object.defineProperty(Wse,"__esModule",{value:!0});var Ydn={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Wse.default=Ydn});var Kse=w(B_=>{"use strict";Object.defineProperty(B_,"__esModule",{value:!0});B_.callRef=B_.getValidate=void 0;var Zdn=Zm(),p5e=Sa(),wu=Ot(),dk=bd(),h5e=q_(),aV=pn(),Jdn={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=h5e.resolveRef.call(c,u,i,n);if(l===void 0)throw new Zdn.default(r.opts.uriResolver,i,n);if(l instanceof h5e.SchemaEnv)return f(l);return p(l);function d(){if(s===u)return cV(e,o,s,s.$async);let h=t.scopeValue("root",{ref:u});return cV(e,(0,wu._)`${h}.validate`,u,u.$async)}function f(h){let m=m5e(e,h);cV(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 m5e(e,t){let{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):(0,wu._)`${n.scopeValue("wrapper",{ref:t})}.validate`}B_.getValidate=m5e;function cV(e,t,n,r){let{gen:i,it:s}=e,{allErrors:o,schemaEnv:a,opts:c}=s,u=c.passContext?dk.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,p5e.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,p5e.callValidateCode)(e,t,u),()=>p(t),()=>f(t))}function f(h){let m=(0,wu._)`${h}.errors`;i.assign(dk.default.vErrors,(0,wu._)`${dk.default.vErrors} === null ? ${m} : ${dk.default.vErrors}.concat(${m})`),i.assign(dk.default.errors,(0,wu._)`${dk.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=aV.mergeEvaluated.props(i,g.props,s.props));else{let y=i.var("props",(0,wu._)`${h}.evaluated.props`);s.props=aV.mergeEvaluated.props(i,y,s.props,wu.Name)}if(s.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(s.items=aV.mergeEvaluated.items(i,g.items,s.items));else{let y=i.var("items",(0,wu._)`${h}.evaluated.items`);s.items=aV.mergeEvaluated.items(i,y,s.items,wu.Name)}}}B_.callRef=cV;B_.default=Jdn});var g5e=w(Yse=>{"use strict";Object.defineProperty(Yse,"__esModule",{value:!0});var Xdn=f5e(),Qdn=Kse(),$dn=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Xdn.default,Qdn.default];Yse.default=$dn});var y5e=w(Zse=>{"use strict";Object.defineProperty(Zse,"__esModule",{value:!0});var uV=Ot(),jS=uV.operators,lV={maximum:{okStr:"<=",ok:jS.LTE,fail:jS.GT},minimum:{okStr:">=",ok:jS.GTE,fail:jS.LT},exclusiveMaximum:{okStr:"<",ok:jS.LT,fail:jS.GTE},exclusiveMinimum:{okStr:">",ok:jS.GT,fail:jS.LTE}},efn={message:({keyword:e,schemaCode:t})=>(0,uV.str)`must be ${lV[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,uV._)`{comparison: ${lV[e].okStr}, limit: ${t}}`},tfn={keyword:Object.keys(lV),type:"number",schemaType:"number",$data:!0,error:efn,code(e){let{keyword:t,data:n,schemaCode:r}=e;e.fail$data((0,uV._)`${n} ${lV[t].fail} ${r} || isNaN(${n})`)}};Zse.default=tfn});var S5e=w(Jse=>{"use strict";Object.defineProperty(Jse,"__esModule",{value:!0});var jC=Ot(),nfn={message:({schemaCode:e})=>(0,jC.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,jC._)`{multipleOf: ${e}}`},rfn={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:nfn,code(e){let{gen:t,data:n,schemaCode:r,it:i}=e,s=i.opts.multipleOfPrecision,o=t.let("res"),a=s?(0,jC._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${s}`:(0,jC._)`${o} !== parseInt(${o})`;e.fail$data((0,jC._)`(${r} === 0 || (${o} = ${n}/${r}, ${a}))`)}};Jse.default=rfn});var E5e=w(Xse=>{"use strict";Object.defineProperty(Xse,"__esModule",{value:!0});function b5e(e){let t=e.length,n=0,r=0,i;for(;r=55296&&i<=56319&&r{"use strict";Object.defineProperty(Qse,"__esModule",{value:!0});var z_=Ot(),ifn=pn(),sfn=E5e(),ofn={message({keyword:e,schemaCode:t}){let n=e==="maxLength"?"more":"fewer";return(0,z_.str)`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>(0,z_._)`{limit: ${e}}`},afn={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:ofn,code(e){let{keyword:t,data:n,schemaCode:r,it:i}=e,s=t==="maxLength"?z_.operators.GT:z_.operators.LT,o=i.opts.unicode===!1?(0,z_._)`${n}.length`:(0,z_._)`${(0,ifn.useFunc)(e.gen,sfn.default)}(${n})`;e.fail$data((0,z_._)`${o} ${s} ${r}`)}};Qse.default=afn});var T5e=w($se=>{"use strict";Object.defineProperty($se,"__esModule",{value:!0});var cfn=Sa(),ufn=pn(),fk=Ot(),lfn={message:({schemaCode:e})=>(0,fk.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,fk._)`{pattern: ${e}}`},dfn={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:lfn,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,fk._)`new RegExp`:(0,ufn.useFunc)(t,c),l=t.let("valid");t.try(()=>t.assign(l,(0,fk._)`${u}(${s}, ${a}).test(${n})`),()=>t.assign(l,!1)),e.fail$data((0,fk._)`!${l}`)}else{let c=(0,cfn.usePattern)(e,i);e.fail$data((0,fk._)`!${c}.test(${n})`)}}};$se.default=dfn});var v5e=w(eoe=>{"use strict";Object.defineProperty(eoe,"__esModule",{value:!0});var HC=Ot(),ffn={message({keyword:e,schemaCode:t}){let n=e==="maxProperties"?"more":"fewer";return(0,HC.str)`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>(0,HC._)`{limit: ${e}}`},pfn={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:ffn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxProperties"?HC.operators.GT:HC.operators.LT;e.fail$data((0,HC._)`Object.keys(${n}).length ${i} ${r}`)}};eoe.default=pfn});var R5e=w(toe=>{"use strict";Object.defineProperty(toe,"__esModule",{value:!0});var qC=Sa(),BC=Ot(),hfn=pn(),mfn={message:({params:{missingProperty:e}})=>(0,BC.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,BC._)`{missingProperty: ${e}}`},gfn={keyword:"required",type:"object",schemaType:"array",$data:!0,error:mfn,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,hfn.checkStrictMode)(o,y,o.opts.strictRequired)}}function u(){if(c||s)e.block$data(BC.nil,d);else for(let p of n)(0,qC.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,qC.checkMissingProp)(e,n,p)),(0,qC.reportMissingProp)(e,p),t.else()}function d(){t.forOf("prop",r,p=>{e.setParams({missingProperty:p}),t.if((0,qC.noPropertyInData)(t,i,p,a.ownProperties),()=>e.error())})}function f(p,h){e.setParams({missingProperty:p}),t.forOf(p,r,()=>{t.assign(h,(0,qC.propertyInData)(t,i,p,a.ownProperties)),t.if((0,BC.not)(h),()=>{e.error(),t.break()})},BC.nil)}}};toe.default=gfn});var A5e=w(noe=>{"use strict";Object.defineProperty(noe,"__esModule",{value:!0});var zC=Ot(),yfn={message({keyword:e,schemaCode:t}){let n=e==="maxItems"?"more":"fewer";return(0,zC.str)`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>(0,zC._)`{limit: ${e}}`},Sfn={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:yfn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxItems"?zC.operators.GT:zC.operators.LT;e.fail$data((0,zC._)`${n}.length ${i} ${r}`)}};noe.default=Sfn});var GC=w(roe=>{"use strict";Object.defineProperty(roe,"__esModule",{value:!0});var w5e=OC();w5e.code='require("ajv/dist/runtime/equal").default';roe.default=w5e});var k5e=w(soe=>{"use strict";Object.defineProperty(soe,"__esModule",{value:!0});var ioe=xC(),Ea=Ot(),bfn=pn(),Efn=GC(),_fn={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}}`},Tfn={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:_fn,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,ioe.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,ioe.checkDataTypes)(u,g,a.opts.strictNumbers,ioe.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,bfn.useFunc)(t,Efn.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)})))}}};soe.default=Tfn});var I5e=w(aoe=>{"use strict";Object.defineProperty(aoe,"__esModule",{value:!0});var ooe=Ot(),vfn=pn(),Rfn=GC(),Afn={message:"must be equal to constant",params:({schemaCode:e})=>(0,ooe._)`{allowedValue: ${e}}`},wfn={keyword:"const",$data:!0,error:Afn,code(e){let{gen:t,data:n,$data:r,schemaCode:i,schema:s}=e;r||s&&typeof s=="object"?e.fail$data((0,ooe._)`!${(0,vfn.useFunc)(t,Rfn.default)}(${n}, ${i})`):e.fail((0,ooe._)`${s} !== ${n}`)}};aoe.default=wfn});var x5e=w(coe=>{"use strict";Object.defineProperty(coe,"__esModule",{value:!0});var VC=Ot(),kfn=pn(),Ifn=GC(),xfn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,VC._)`{allowedValues: ${e}}`},Ofn={keyword:"enum",schemaType:"array",$data:!0,error:xfn,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,kfn.useFunc)(t,Ifn.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,VC.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,VC._)`${u()}(${n}, ${p})`,()=>t.assign(l,!0).break()))}function f(p,h){let m=i[h];return typeof m=="object"&&m!==null?(0,VC._)`${u()}(${n}, ${p}[${h}])`:(0,VC._)`${n} === ${m}`}}};coe.default=Ofn});var O5e=w(uoe=>{"use strict";Object.defineProperty(uoe,"__esModule",{value:!0});var Pfn=y5e(),Nfn=S5e(),Cfn=_5e(),Mfn=T5e(),Dfn=v5e(),Lfn=R5e(),Ufn=A5e(),Ffn=k5e(),jfn=I5e(),Hfn=x5e(),qfn=[Pfn.default,Nfn.default,Cfn.default,Mfn.default,Dfn.default,Lfn.default,Ufn.default,Ffn.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},jfn.default,Hfn.default];uoe.default=qfn});var doe=w(WC=>{"use strict";Object.defineProperty(WC,"__esModule",{value:!0});WC.validateAdditionalItems=void 0;var G_=Ot(),loe=pn(),Bfn={message:({params:{len:e}})=>(0,G_.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,G_._)`{limit: ${e}}`},zfn={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Bfn,code(e){let{parentSchema:t,it:n}=e,{items:r}=t;if(!Array.isArray(r)){(0,loe.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas');return}P5e(e,r)}};function P5e(e,t){let{gen:n,schema:r,data:i,keyword:s,it:o}=e;o.items=!0;let a=n.const("len",(0,G_._)`${i}.length`);if(r===!1)e.setParams({len:t.length}),e.pass((0,G_._)`${a} <= ${t.length}`);else if(typeof r=="object"&&!(0,loe.alwaysValidSchema)(o,r)){let u=n.var("valid",(0,G_._)`${a} <= ${t.length}`);n.if((0,G_.not)(u),()=>c(u)),e.ok(u)}function c(u){n.forRange("i",t.length,a,l=>{e.subschema({keyword:s,dataProp:l,dataPropType:loe.Type.Num},u),o.allErrors||n.if((0,G_.not)(u),()=>n.break())})}}WC.validateAdditionalItems=P5e;WC.default=zfn});var foe=w(KC=>{"use strict";Object.defineProperty(KC,"__esModule",{value:!0});KC.validateTuple=void 0;var N5e=Ot(),dV=pn(),Gfn=Sa(),Vfn={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:n}=e;if(Array.isArray(t))return C5e(e,"additionalItems",t);n.items=!0,!(0,dV.alwaysValidSchema)(n,t)&&e.ok((0,Gfn.validateArray)(e))}};function C5e(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=dV.mergeEvaluated.items(r,n.length,a.items));let c=r.name("valid"),u=r.const("len",(0,N5e._)`${s}.length`);n.forEach((d,f)=>{(0,dV.alwaysValidSchema)(a,d)||(r.if((0,N5e._)`${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,dV.checkStrictMode)(a,g,f.strictTuples)}}}KC.validateTuple=C5e;KC.default=Vfn});var M5e=w(poe=>{"use strict";Object.defineProperty(poe,"__esModule",{value:!0});var Wfn=foe(),Kfn={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,Wfn.validateTuple)(e,"items")};poe.default=Kfn});var L5e=w(hoe=>{"use strict";Object.defineProperty(hoe,"__esModule",{value:!0});var D5e=Ot(),Yfn=pn(),Zfn=Sa(),Jfn=doe(),Xfn={message:({params:{len:e}})=>(0,D5e.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,D5e._)`{limit: ${e}}`},Qfn={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Xfn,code(e){let{schema:t,parentSchema:n,it:r}=e,{prefixItems:i}=n;r.items=!0,!(0,Yfn.alwaysValidSchema)(r,t)&&(i?(0,Jfn.validateAdditionalItems)(e,i):e.ok((0,Zfn.validateArray)(e)))}};hoe.default=Qfn});var U5e=w(moe=>{"use strict";Object.defineProperty(moe,"__esModule",{value:!0});var _d=Ot(),fV=pn(),$fn={message:({params:{min:e,max:t}})=>t===void 0?(0,_d.str)`must contain at least ${e} valid item(s)`:(0,_d.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,_d._)`{minContains: ${e}}`:(0,_d._)`{minContains: ${e}, maxContains: ${t}}`},epn={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:$fn,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,_d._)`${i}.length`);if(e.setParams({min:o,max:a}),a===void 0&&o===0){(0,fV.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&o>a){(0,fV.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,fV.alwaysValidSchema)(s,n)){let m=(0,_d._)`${l} >= ${o}`;a!==void 0&&(m=(0,_d._)`${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,_d._)`${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:fV.Type.Num,compositeRule:!0},m),g()})}function h(m){t.code((0,_d._)`${m}++`),a===void 0?t.if((0,_d._)`${m} >= ${o}`,()=>t.assign(d,!0).break()):(t.if((0,_d._)`${m} > ${a}`,()=>t.assign(d,!1).break()),o===1?t.assign(d,!0):t.if((0,_d._)`${m} >= ${o}`,()=>t.assign(d,!0)))}}};moe.default=epn});var H5e=w(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0});mh.validateSchemaDeps=mh.validatePropertyDeps=mh.error=void 0;var goe=Ot(),tpn=pn(),YC=Sa();mh.error={message:({params:{property:e,depsCount:t,deps:n}})=>{let r=t===1?"property":"properties";return(0,goe.str)`must have ${r} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:r}})=>(0,goe._)`{property: ${e}, + || ${o} === "boolean" || ${i} === null`).assign(a,(0,hn._)`[${i}]`)}}}function Lun({gen:e,parentData:t,parentDataProperty:n},r){e.if((0,hn._)`${t} !== undefined`,()=>e.assign((0,hn._)`${t}[${n}]`,r))}function Ese(e,t,n,r=sk.Correct){let i=r===sk.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===sk.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=Ese;function _se(e,t,n,r){if(e.length===1)return Ese(e[0],t,n,r);let i,s=(0,p6e.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,Ese(o,t,n,r));return i}oc.checkDataTypes=_se;var Uun={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,hn._)`{type: ${e}}`:(0,hn._)`{type: ${t}}`};function Tse(e){let t=Fun(e);(0,Pun.reportError)(t,Uun)}oc.reportTypeError=Tse;function Fun(e){let{gen:t,data:n,schema:r}=e,i=(0,p6e.schemaRefOrVal)(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:e}}});var y6e=w(J2=>{"use strict";Object.defineProperty(J2,"__esModule",{value:!0});J2.assignDefaults=void 0;var ok=Ot(),jun=pn();function Hun(e,t){let{properties:n,items:r}=e.schema;if(t==="object"&&n)for(let i in n)g6e(e,i,n[i].default);else t==="array"&&Array.isArray(r)&&r.forEach((i,s)=>g6e(e,s,i.default))}J2.assignDefaults=Hun;function g6e(e,t,n){let{gen:r,compositeRule:i,data:s,opts:o}=e;if(n===void 0)return;let a=(0,ok._)`${s}${(0,ok.getProperty)(t)}`;if(i){(0,jun.checkStrictMode)(e,`default is ignored for: ${a}`);return}let c=(0,ok._)`${a} === undefined`;o.useDefaults==="empty"&&(c=(0,ok._)`${c} || ${a} === null || ${a} === ""`),r.if(c,(0,ok._)`${a} = ${(0,ok.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(),vse=pn(),DS=bd(),qun=pn();function Bun(e,t){let{gen:n,data:r,it:i}=e;n.if(Ase(n,r,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,gi._)`${t}`},!0),e.error()})}Fr.checkReportMissingProp=Bun;function zun({gen:e,data:t,it:{opts:n}},r,i){return(0,gi.or)(...r.map(s=>(0,gi.and)(Ase(e,t,s,n.ownProperties),(0,gi._)`${i} = ${s}`)))}Fr.checkMissingProp=zun;function Gun(e,t){e.setParams({missingProperty:t},!0),e.error()}Fr.reportMissingProp=Gun;function S6e(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,gi._)`Object.prototype.hasOwnProperty`})}Fr.hasPropFunc=S6e;function Rse(e,t,n){return(0,gi._)`${S6e(e)}.call(${t}, ${n})`}Fr.isOwnProperty=Rse;function Vun(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} !== undefined`;return r?(0,gi._)`${i} && ${Rse(e,t,n)}`:i}Fr.propertyInData=Vun;function Ase(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} === undefined`;return r?(0,gi.or)(i,(0,gi.not)(Rse(e,t,n))):i}Fr.noPropertyInData=Ase;function b6e(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}Fr.allSchemaProperties=b6e;function Wun(e,t){return b6e(t).filter(n=>!(0,vse.alwaysValidSchema)(e,t[n]))}Fr.schemaProperties=Wun;function Kun({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=[[DS.default.instancePath,(0,gi.strConcat)(DS.default.instancePath,s)],[DS.default.parentData,o.parentData],[DS.default.parentDataProperty,o.parentDataProperty],[DS.default.rootData,DS.default.rootData]];o.opts.dynamicRef&&d.push([DS.default.dynamicAnchors,DS.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=Kun;var Yun=(0,gi._)`new RegExp`;function Zun({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"?Yun:(0,qun.useFunc)(e,i)}(${n}, ${r})`})}Fr.usePattern=Zun;function Jun(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:vse.Type.Num},s),t.if((0,gi.not)(s),a)})}}Fr.validateArray=Jun;function Xun(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,vse.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=Xun});var T6e=w(fh=>{"use strict";Object.defineProperty(fh,"__esModule",{value:!0});fh.validateKeywordUsage=fh.validSchemaType=fh.funcKeywordCode=fh.macroKeywordCode=void 0;var Gc=Ot(),j_=bd(),Qun=Sa(),$un=IC();function eln(e,t){let{gen:n,keyword:r,schema:i,parentSchema:s,it:o}=e,a=t.macro.call(o.self,i,s,o),c=_6e(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=eln;function tln(e,t){var n;let{gen:r,keyword:i,schema:s,parentSchema:o,$data:a,it:c}=e;rln(c,t);let u=!a&&t.compile?t.compile.call(c.self,s,o,c):t.validate,l=_6e(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&&E6e(e),g(()=>e.error());else{let y=t.async?p():h();t.modifying&&E6e(e),g(()=>nln(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?j_.default.this:j_.default.self,S=!("compile"in t&&!a||t.schema===!1);r.assign(d,(0,Gc._)`${y}${(0,Qun.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=tln;function E6e(e){let{gen:t,data:n,it:r}=e;t.if(r.parentData,()=>t.assign(n,(0,Gc._)`${r.parentData}[${r.parentDataProperty}]`))}function nln(e,t){let{gen:n}=e;n.if((0,Gc._)`Array.isArray(${t})`,()=>{n.assign(j_.default.vErrors,(0,Gc._)`${j_.default.vErrors} === null ? ${t} : ${j_.default.vErrors}.concat(${t})`).assign(j_.default.errors,(0,Gc._)`${j_.default.vErrors}.length`),(0,$un.extendErrors)(e)},()=>e.error())}function rln({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function _6e(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 iln(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=iln;function sln({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=sln});var R6e=w(LS=>{"use strict";Object.defineProperty(LS,"__esModule",{value:!0});LS.extendSubschemaMode=LS.extendSubschemaData=LS.getSubschema=void 0;var ph=Ot(),v6e=pn();function oln(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,v6e.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')}LS.getSubschema=oln;function aln(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,v6e.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]}}LS.extendSubschemaData=aln;function cln(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}LS.extendSubschemaMode=cln});var OC=w((CVr,A6e)=>{"use strict";A6e.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 k6e=w((MVr,w6e)=>{"use strict";var US=w6e.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(){};X2(t,r,i,e,"",e)};US.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};US.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};US.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};US.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 X2(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 US.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 lln=pn(),dln=OC(),fln=k6e(),pln=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function hln(e,t=!0){return typeof e=="boolean"?!0:t===!0?!wse(e):t?I6e(e)<=t:!1}Au.inlineRef=hln;var mln=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function wse(e){for(let t in e){if(mln.has(t))return!0;let n=e[t];if(Array.isArray(n)&&n.some(wse)||typeof n=="object"&&wse(n))return!0}return!1}function I6e(e){let t=0;for(let n in e){if(n==="$ref")return 1/0;if(t++,!pln.has(n)&&(typeof e[n]=="object"&&(0,lln.eachItem)(e[n],r=>t+=I6e(r)),t===1/0))return 1/0}return t}function x6e(e,t="",n){n!==!1&&(t=ak(t));let r=e.parse(t);return O6e(e,r)}Au.getFullPath=x6e;function O6e(e,t){return e.serialize(t).split("#")[0]+"#"}Au._getFullPath=O6e;var gln=/#\/?$/;function ak(e){return e?e.replace(gln,""):""}Au.normalizeId=ak;function yln(e,t,n){return n=ak(n),e.resolve(t,n)}Au.resolveUrl=yln;var Sln=/^[a-z_][-a-z0-9._]*$/i;function bln(e,t){if(typeof e=="boolean")return{};let{schemaId:n,uriResolver:r}=this.opts,i=ak(e[n]||t),s={"":i},o=x6e(r,i,!1),a={},c=new Set;return fln(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=ak(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!==ak(m)&&(S[0]==="#"?(u(d,a[S],S),a[S]=d):this.refs[S]=m),S}function b(S){if(typeof S=="string"){if(!Sln.test(S))throw new Error(`invalid anchor "${S}"`);y.call(this,`#${S}`)}}}),a;function u(d,f,p){if(f!==void 0&&!dln(d,f))throw l(p)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Au.getSchemaRefs=bln});var ck=w(FS=>{"use strict";Object.defineProperty(FS,"__esModule",{value:!0});FS.getData=FS.KeywordCxt=FS.validateFunctionCode=void 0;var D6e=l6e(),P6e=xC(),Ise=bse(),Q2=xC(),Eln=y6e(),CC=T6e(),kse=R6e(),pt=Ot(),Xt=bd(),_ln=PC(),Ym=pn(),NC=IC();function Tln(e){if(F6e(e)&&(j6e(e),U6e(e))){Aln(e);return}L6e(e,()=>(0,D6e.topBoolOrEmptySchema)(e))}FS.validateFunctionCode=Tln;function L6e({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"; ${N6e(n,i)}`),Rln(e,i),e.code(s)}):e.func(t,(0,pt._)`${Xt.default.data}, ${vln(i)}`,r.$async,()=>e.code(N6e(n,i)).code(s))}function vln(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 Rln(e,t){e.if(Xt.default.valCxt,()=>{e.var(Xt.default.instancePath,(0,pt._)`${Xt.default.valCxt}.${Xt.default.instancePath}`),e.var(Xt.default.parentData,(0,pt._)`${Xt.default.valCxt}.${Xt.default.parentData}`),e.var(Xt.default.parentDataProperty,(0,pt._)`${Xt.default.valCxt}.${Xt.default.parentDataProperty}`),e.var(Xt.default.rootData,(0,pt._)`${Xt.default.valCxt}.${Xt.default.rootData}`),t.dynamicRef&&e.var(Xt.default.dynamicAnchors,(0,pt._)`${Xt.default.valCxt}.${Xt.default.dynamicAnchors}`)},()=>{e.var(Xt.default.instancePath,(0,pt._)`""`),e.var(Xt.default.parentData,(0,pt._)`undefined`),e.var(Xt.default.parentDataProperty,(0,pt._)`undefined`),e.var(Xt.default.rootData,Xt.default.data),t.dynamicRef&&e.var(Xt.default.dynamicAnchors,(0,pt._)`{}`)})}function Aln(e){let{schema:t,opts:n,gen:r}=e;L6e(e,()=>{n.$comment&&t.$comment&&q6e(e),Oln(e),r.let(Xt.default.vErrors,null),r.let(Xt.default.errors,0),n.unevaluated&&wln(e),H6e(e),Cln(e)})}function wln(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 N6e(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 kln(e,t){if(F6e(e)&&(j6e(e),U6e(e))){Iln(e,t);return}(0,D6e.boolOrEmptySchema)(e,t)}function U6e({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 F6e(e){return typeof e.schema!="boolean"}function Iln(e,t){let{schema:n,gen:r,opts:i}=e;i.$comment&&n.$comment&&q6e(e),Pln(e),Nln(e);let s=r.const("_errs",Xt.default.errors);H6e(e,s),r.var(t,(0,pt._)`${s} === ${Xt.default.errors}`)}function j6e(e){(0,Ym.checkUnknownRules)(e),xln(e)}function H6e(e,t){if(e.opts.jtd)return C6e(e,[],!1,t);let n=(0,P6e.getSchemaTypes)(e.schema),r=(0,P6e.coerceAndCheckDataType)(e,n);C6e(e,n,!r,t)}function xln(e){let{schema:t,errSchemaPath:n,opts:r,self:i}=e;t.$ref&&r.ignoreKeywordsWithRef&&(0,Ym.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,Ym.checkStrictMode)(e,"default is ignored in the schema root")}function Pln(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,_ln.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function Nln(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function q6e({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 Cln(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&&Mln(e),t.return((0,pt._)`${Xt.default.errors} === 0`))}function Mln({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 C6e(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,Ym.schemaHasRulesButRef)(s,l))){i.block(()=>z6e(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,Ise.shouldUseGroup)(s,f)&&(f.type?(i.if((0,Q2.checkDataType)(f.type,o,c.strictNumbers)),M6e(e,f),t.length===1&&t[0]===f.type&&n&&(i.else(),(0,Q2.reportTypeError)(e)),i.endIf()):M6e(e,f),a||i.if((0,pt._)`${Xt.default.errors} === ${r||0}`))}}function M6e(e,t){let{gen:n,schema:r,opts:{useDefaults:i}}=e;i&&(0,Eln.assignDefaults)(e,t.type),n.block(()=>{for(let s of t.rules)(0,Ise.shouldUseRule)(r,s)&&z6e(e,s.keyword,s.definition,t.type)})}function Dln(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(Lln(e,t),e.opts.allowUnionTypes||Uln(e,t),Fln(e,e.dataTypes))}function Lln(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(n=>{B6e(e.dataTypes,n)||xse(e,`type "${n}" not allowed by context "${e.dataTypes.join(",")}"`)}),Hln(e,t)}}function Uln(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&xse(e,"use allowUnionTypes to allow union type keyword")}function Fln(e,t){let n=e.self.RULES.all;for(let r in n){let i=n[r];if(typeof i=="object"&&(0,Ise.shouldUseRule)(e.schema,i)){let{type:s}=i.definition;s.length&&!s.some(o=>jln(t,o))&&xse(e,`missing type "${s.join(",")}" for keyword "${r}"`)}}}function jln(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function B6e(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function Hln(e,t){let n=[];for(let r of e.dataTypes)B6e(t,r)?n.push(r):t.includes("integer")&&r==="number"&&n.push("integer");e.dataTypes=n}function xse(e,t){let n=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${n}" (strictTypes)`,(0,Ym.checkStrictMode)(e,t,e.opts.strictTypes)}var $2=class{constructor(t,n,r){if((0,CC.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,Ym.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",G6e(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,CC.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?NC.reportExtraError:NC.reportError)(this,this.def.error,n)}$dataError(){(0,NC.reportError)(this,this.def.$dataError||NC.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,NC.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,Q2.checkDataTypes)(c,n,s.opts.strictNumbers,Q2.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,kse.getSubschema)(this.it,t);(0,kse.extendSubschemaData)(r,this.it,t),(0,kse.extendSubschemaMode)(r,t);let i={...this.it,...r,items:void 0,props:void 0};return kln(i,n),i}mergeEvaluated(t,n){let{it:r,gen:i}=this;r.opts.unevaluated&&(r.props!==!0&&t.props!==void 0&&(r.props=Ym.mergeEvaluated.props(i,t.props,r.props,n)),r.items!==!0&&t.items!==void 0&&(r.items=Ym.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}};FS.KeywordCxt=$2;function z6e(e,t,n,r){let i=new $2(e,n,t);"code"in n?n.code(i,r):i.$data&&n.validate?(0,CC.funcKeywordCode)(i,n):"macro"in n?(0,CC.macroKeywordCode)(i,n):(n.compile||n.validate)&&(0,CC.funcKeywordCode)(i,n)}var qln=/^\/(?:[^~]|~0|~1)*$/,Bln=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function G6e(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let i,s;if(e==="")return Xt.default.rootData;if(e[0]==="/"){if(!qln.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,s=Xt.default.rootData}else{let u=Bln.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,Ym.unescapeJsonPointer)(u))}`,o=(0,pt._)`${o} && ${s}`);return o;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${t}`}}FS.getData=G6e});var MC=w(Pse=>{"use strict";Object.defineProperty(Pse,"__esModule",{value:!0});var Ose=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Pse.default=Ose});var Zm=w(Mse=>{"use strict";Object.defineProperty(Mse,"__esModule",{value:!0});var Nse=PC(),Cse=class extends Error{constructor(t,n,r,i){super(i||`can't resolve reference ${r} from id ${n}`),this.missingRef=(0,Nse.resolveUrl)(t,n,r),this.missingSchema=(0,Nse.normalizeId)((0,Nse.getFullPath)(t,this.missingRef))}};Mse.default=Cse});var q_=w(Ed=>{"use strict";Object.defineProperty(Ed,"__esModule",{value:!0});Ed.resolveSchema=Ed.getCompilingSchema=Ed.resolveRef=Ed.compileSchema=Ed.SchemaEnv=void 0;var Af=Ot(),zln=MC(),H_=bd(),wf=PC(),V6e=pn(),Gln=ck(),uk=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={}}};Ed.SchemaEnv=uk;function Lse(e){let t=W6e.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:zln.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:H_.default.data,parentData:H_.default.parentData,parentDataProperty:H_.default.parentDataProperty,dataNames:[H_.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,Gln.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let d=o.toString();l=`${o.scopeRefs(H_.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let p=new Function(`${H_.default.self}`,`${H_.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)}}Ed.compileSchema=Lse;function Vln(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=Yln.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 uk({schema:o,schemaId:a,root:e,baseId:t}))}if(s!==void 0)return e.refs[n]=Wln.call(this,s)}Ed.resolveRef=Vln;function Wln(e){return(0,wf.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:Lse.call(this,e)}function W6e(e){for(let t of this._compilations)if(Kln(t,e))return t}Ed.getCompilingSchema=W6e;function Kln(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function Yln(e,t){let n;for(;typeof(n=this.refs[t])=="string";)t=n;return n||this.schemas[t]||eV.call(this,e,t)}function eV(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 Dse.call(this,n,e);let s=(0,wf.normalizeId)(r),o=this.refs[s]||this.schemas[s];if(typeof o=="string"){let a=eV.call(this,e,o);return typeof a?.schema!="object"?void 0:Dse.call(this,n,a)}if(typeof o?.schema=="object"){if(o.validate||Lse.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 uk({schema:a,schemaId:c,root:e,baseId:i})}return Dse.call(this,n,o)}}Ed.resolveSchema=eV;var Zln=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Dse(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,V6e.unescapeFragment)(a)];if(c===void 0)return;n=c;let u=typeof n=="object"&&n[this.opts.schemaId];!Zln.has(a)&&u&&(t=(0,wf.resolveUrl)(this.opts.uriResolver,t,u))}let s;if(typeof n!="boolean"&&n.$ref&&!(0,V6e.schemaHasRulesButRef)(n,this.RULES)){let a=(0,wf.resolveUrl)(this.opts.uriResolver,t,n.$ref);s=eV.call(this,r,a)}let{schemaId:o}=this.opts;if(s=s||new uk({schema:n,schemaId:o,root:r,baseId:t}),s.schema!==s.root.schema)return s}});var K6e=w((HVr,Jln)=>{Jln.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 Fse=w((qVr,X6e)=>{"use strict";var Xln=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 Use(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 Qln=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Y6e(e){return e.length=0,!0}function $ln(e,t,n){if(e.length){let r=Use(e);if(r!=="")t.push(r);else return n.error=!0,!1;e.length=0}return!0}function edn(e){let t=0,n={error:!1,address:"",zone:""},r=[],i=[],s=!1,o=!1,a=$ln;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=Y6e}else{i.push(u);continue}}return i.length&&(a===Y6e?n.zone=i.join(""):o?r.push(i.join("")):r.push(Use(i))),n.address=r.join(""),n}function J6e(e){if(tdn(e,":")<2)return{host:e,isIPV6:!1};let t=edn(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 tdn(e,t){let n=0;for(let r=0;r{"use strict";var{isUUID:sdn}=Fse(),odn=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,adn=["http","https","ws","wss","urn","urn:uuid"];function cdn(e){return adn.indexOf(e)!==-1}function jse(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 Q6e(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function $6e(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 udn(e){return e.secure=jse(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function ldn(e){if((e.port===(jse(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 ddn(e,t){if(!e.path)return e.error="URN can not be parsed",e;let n=e.path.match(odn);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=Hse(i);e.path=void 0,s&&(e=s.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function fdn(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=Hse(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 pdn(e,t){let n=e;return n.uuid=n.nss,n.nss=void 0,!t.tolerant&&(!n.uuid||!sdn(n.uuid))&&(n.error=n.error||"UUID is not valid."),n}function hdn(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var e5e={scheme:"http",domainHost:!0,parse:Q6e,serialize:$6e},mdn={scheme:"https",domainHost:e5e.domainHost,parse:Q6e,serialize:$6e},tV={scheme:"ws",domainHost:!0,parse:udn,serialize:ldn},gdn={scheme:"wss",domainHost:tV.domainHost,parse:tV.parse,serialize:tV.serialize},ydn={scheme:"urn",parse:ddn,serialize:fdn,skipNormalize:!0},Sdn={scheme:"urn:uuid",parse:pdn,serialize:hdn,skipNormalize:!0},nV={http:e5e,https:mdn,ws:tV,wss:gdn,urn:ydn,"urn:uuid":Sdn};Object.setPrototypeOf(nV,null);function Hse(e){return e&&(nV[e]||nV[e.toLowerCase()])||void 0}t5e.exports={wsIsSecure:jse,SCHEMES:nV,isValidSchemeName:cdn,getSchemeHandler:Hse}});var sV=w((zVr,iV)=>{"use strict";var{normalizeIPv6:bdn,removeDotSegments:DC,recomposeAuthority:Edn,normalizeComponentEncoding:rV,isIPv4:_dn,nonSimpleDomain:Tdn}=Fse(),{SCHEMES:vdn,getSchemeHandler:r5e}=n5e();function Rdn(e,t){return typeof e=="string"?e=hh(Jm(e,t),t):typeof e=="object"&&(e=Jm(hh(e,t),t)),e}function Adn(e,t,n){let r=n?Object.assign({scheme:"null"},n):{scheme:"null"},i=i5e(Jm(e,r),Jm(t,r),r,!0);return r.skipEscape=!0,hh(i,r)}function i5e(e,t,n,r){let i={};return r||(e=Jm(hh(e,n),n),t=Jm(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=DC(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=DC(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=DC(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=DC(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 wdn(e,t,n){return typeof e=="string"?(e=unescape(e),e=hh(rV(Jm(e,n),!0),{...n,skipEscape:!0})):typeof e=="object"&&(e=hh(rV(e,!0),{...n,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=hh(rV(Jm(t,n),!0),{...n,skipEscape:!0})):typeof t=="object"&&(t=hh(rV(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=r5e(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=Edn(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=DC(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 kdn=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Jm(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(kdn);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(_dn(r.host)===!1){let c=bdn(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=r5e(n.scheme||r.scheme);if(!n.unicodeSupport&&(!o||!o.unicodeSupport)&&r.host&&(n.domainHost||o&&o.domainHost)&&i===!1&&Tdn(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 qse={SCHEMES:vdn,normalize:Rdn,resolve:Adn,resolveComponent:i5e,equal:wdn,serialize:hh,parse:Jm};iV.exports=qse;iV.exports.default=qse;iV.exports.fastUri=qse});var o5e=w(Bse=>{"use strict";Object.defineProperty(Bse,"__esModule",{value:!0});var s5e=sV();s5e.code='require("ajv/dist/runtime/uri").default';Bse.default=s5e});var Vse=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 Idn=ck();Object.defineProperty(ba,"KeywordCxt",{enumerable:!0,get:function(){return Idn.KeywordCxt}});var lk=Ot();Object.defineProperty(ba,"_",{enumerable:!0,get:function(){return lk._}});Object.defineProperty(ba,"str",{enumerable:!0,get:function(){return lk.str}});Object.defineProperty(ba,"stringify",{enumerable:!0,get:function(){return lk.stringify}});Object.defineProperty(ba,"nil",{enumerable:!0,get:function(){return lk.nil}});Object.defineProperty(ba,"Name",{enumerable:!0,get:function(){return lk.Name}});Object.defineProperty(ba,"CodeGen",{enumerable:!0,get:function(){return lk.CodeGen}});var xdn=MC(),d5e=Zm(),Odn=Sse(),LC=q_(),Pdn=Ot(),UC=PC(),oV=xC(),Gse=pn(),a5e=K6e(),Ndn=o5e(),f5e=(e,t)=>new RegExp(e,t);f5e.code="new RegExp";var Cdn=["removeAdditional","useDefaults","coerceTypes"],Mdn=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."},Ldn={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},c5e=200;function Udn(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:f5e,L=(i=e.uriResolver)!==null&&i!==void 0?i:Ndn.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:c5e,loopEnum:(g=e.loopEnum)!==null&&g!==void 0?g:c5e,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 FC=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...Udn(t)};let{es5:n,lines:r}=this.opts.code;this.scope=new Pdn.ValueScope({scope:{},prefixes:Mdn,es5:n,lines:r}),this.logger=zdn(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,Odn.getRules)(),u5e.call(this,Ddn,t,"NOT SUPPORTED"),u5e.call(this,Ldn,t,"DEPRECATED","warn"),this._metaOpts=qdn.call(this),t.formats&&jdn.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&Hdn.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),Fdn.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:n,schemaId:r}=this.opts,i=a5e;r==="id"&&(i={...a5e},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 d5e.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,UC.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=l5e.call(this,t))=="string";)t=n;if(n===void 0){let{schemaId:r}=this.opts,i=new LC.SchemaEnv({schema:{},schemaId:r});if(n=LC.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=l5e.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,UC.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(Vdn.call(this,r,n),!n)return(0,Gse.eachItem)(r,s=>zse.call(this,s)),this;Kdn.call(this,n);let i={...n,type:(0,oV.getJSONTypes)(n.type),schemaType:(0,oV.getJSONTypes)(n.schemaType)};return(0,Gse.eachItem)(r,i.type.length===0?s=>zse.call(this,s,i):s=>i.type.forEach(o=>zse.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]=p5e(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,UC.normalizeId)(o||r);let u=UC.getSchemaRefs.call(this,t,r);return c=new LC.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):LC.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{LC.compileSchema.call(this,t)}finally{this.opts=n}}};FC.ValidationError=xdn.default;FC.MissingRefError=d5e.default;ba.default=FC;function u5e(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 l5e(e){return e=(0,UC.normalizeId)(e),this.schemas[e]||this.refs[e]}function Fdn(){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 jdn(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function Hdn(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 qdn(){let e={...this.opts};for(let t of Cdn)delete e[t];return e}var Bdn={log(){},warn(){},error(){}};function zdn(e){if(e===!1)return Bdn;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 Gdn=/^[a-z_$][a-z0-9_$:-]*$/i;function Vdn(e,t){let{RULES:n}=this;if((0,Gse.eachItem)(e,r=>{if(n.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!Gdn.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 zse(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,oV.getJSONTypes)(t.type),schemaType:(0,oV.getJSONTypes)(t.schemaType)}};t.before?Wdn.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 Wdn(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 Kdn(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=p5e(t)),e.validateSchema=this.compile(t,!0))}var Ydn={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function p5e(e){return{anyOf:[e,Ydn]}}});var h5e=w(Wse=>{"use strict";Object.defineProperty(Wse,"__esModule",{value:!0});var Zdn={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Wse.default=Zdn});var Kse=w(B_=>{"use strict";Object.defineProperty(B_,"__esModule",{value:!0});B_.callRef=B_.getValidate=void 0;var Jdn=Zm(),m5e=Sa(),wu=Ot(),dk=bd(),g5e=q_(),aV=pn(),Xdn={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=g5e.resolveRef.call(c,u,i,n);if(l===void 0)throw new Jdn.default(r.opts.uriResolver,i,n);if(l instanceof g5e.SchemaEnv)return f(l);return p(l);function d(){if(s===u)return cV(e,o,s,s.$async);let h=t.scopeValue("root",{ref:u});return cV(e,(0,wu._)`${h}.validate`,u,u.$async)}function f(h){let m=y5e(e,h);cV(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 y5e(e,t){let{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):(0,wu._)`${n.scopeValue("wrapper",{ref:t})}.validate`}B_.getValidate=y5e;function cV(e,t,n,r){let{gen:i,it:s}=e,{allErrors:o,schemaEnv:a,opts:c}=s,u=c.passContext?dk.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,m5e.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,m5e.callValidateCode)(e,t,u),()=>p(t),()=>f(t))}function f(h){let m=(0,wu._)`${h}.errors`;i.assign(dk.default.vErrors,(0,wu._)`${dk.default.vErrors} === null ? ${m} : ${dk.default.vErrors}.concat(${m})`),i.assign(dk.default.errors,(0,wu._)`${dk.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=aV.mergeEvaluated.props(i,g.props,s.props));else{let y=i.var("props",(0,wu._)`${h}.evaluated.props`);s.props=aV.mergeEvaluated.props(i,y,s.props,wu.Name)}if(s.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(s.items=aV.mergeEvaluated.items(i,g.items,s.items));else{let y=i.var("items",(0,wu._)`${h}.evaluated.items`);s.items=aV.mergeEvaluated.items(i,y,s.items,wu.Name)}}}B_.callRef=cV;B_.default=Xdn});var S5e=w(Yse=>{"use strict";Object.defineProperty(Yse,"__esModule",{value:!0});var Qdn=h5e(),$dn=Kse(),efn=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Qdn.default,$dn.default];Yse.default=efn});var b5e=w(Zse=>{"use strict";Object.defineProperty(Zse,"__esModule",{value:!0});var uV=Ot(),jS=uV.operators,lV={maximum:{okStr:"<=",ok:jS.LTE,fail:jS.GT},minimum:{okStr:">=",ok:jS.GTE,fail:jS.LT},exclusiveMaximum:{okStr:"<",ok:jS.LT,fail:jS.GTE},exclusiveMinimum:{okStr:">",ok:jS.GT,fail:jS.LTE}},tfn={message:({keyword:e,schemaCode:t})=>(0,uV.str)`must be ${lV[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,uV._)`{comparison: ${lV[e].okStr}, limit: ${t}}`},nfn={keyword:Object.keys(lV),type:"number",schemaType:"number",$data:!0,error:tfn,code(e){let{keyword:t,data:n,schemaCode:r}=e;e.fail$data((0,uV._)`${n} ${lV[t].fail} ${r} || isNaN(${n})`)}};Zse.default=nfn});var E5e=w(Jse=>{"use strict";Object.defineProperty(Jse,"__esModule",{value:!0});var jC=Ot(),rfn={message:({schemaCode:e})=>(0,jC.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,jC._)`{multipleOf: ${e}}`},ifn={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:rfn,code(e){let{gen:t,data:n,schemaCode:r,it:i}=e,s=i.opts.multipleOfPrecision,o=t.let("res"),a=s?(0,jC._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${s}`:(0,jC._)`${o} !== parseInt(${o})`;e.fail$data((0,jC._)`(${r} === 0 || (${o} = ${n}/${r}, ${a}))`)}};Jse.default=ifn});var T5e=w(Xse=>{"use strict";Object.defineProperty(Xse,"__esModule",{value:!0});function _5e(e){let t=e.length,n=0,r=0,i;for(;r=55296&&i<=56319&&r{"use strict";Object.defineProperty(Qse,"__esModule",{value:!0});var z_=Ot(),sfn=pn(),ofn=T5e(),afn={message({keyword:e,schemaCode:t}){let n=e==="maxLength"?"more":"fewer";return(0,z_.str)`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>(0,z_._)`{limit: ${e}}`},cfn={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:afn,code(e){let{keyword:t,data:n,schemaCode:r,it:i}=e,s=t==="maxLength"?z_.operators.GT:z_.operators.LT,o=i.opts.unicode===!1?(0,z_._)`${n}.length`:(0,z_._)`${(0,sfn.useFunc)(e.gen,ofn.default)}(${n})`;e.fail$data((0,z_._)`${o} ${s} ${r}`)}};Qse.default=cfn});var R5e=w($se=>{"use strict";Object.defineProperty($se,"__esModule",{value:!0});var ufn=Sa(),lfn=pn(),fk=Ot(),dfn={message:({schemaCode:e})=>(0,fk.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,fk._)`{pattern: ${e}}`},ffn={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:dfn,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,fk._)`new RegExp`:(0,lfn.useFunc)(t,c),l=t.let("valid");t.try(()=>t.assign(l,(0,fk._)`${u}(${s}, ${a}).test(${n})`),()=>t.assign(l,!1)),e.fail$data((0,fk._)`!${l}`)}else{let c=(0,ufn.usePattern)(e,i);e.fail$data((0,fk._)`!${c}.test(${n})`)}}};$se.default=ffn});var A5e=w(eoe=>{"use strict";Object.defineProperty(eoe,"__esModule",{value:!0});var HC=Ot(),pfn={message({keyword:e,schemaCode:t}){let n=e==="maxProperties"?"more":"fewer";return(0,HC.str)`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>(0,HC._)`{limit: ${e}}`},hfn={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:pfn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxProperties"?HC.operators.GT:HC.operators.LT;e.fail$data((0,HC._)`Object.keys(${n}).length ${i} ${r}`)}};eoe.default=hfn});var w5e=w(toe=>{"use strict";Object.defineProperty(toe,"__esModule",{value:!0});var qC=Sa(),BC=Ot(),mfn=pn(),gfn={message:({params:{missingProperty:e}})=>(0,BC.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,BC._)`{missingProperty: ${e}}`},yfn={keyword:"required",type:"object",schemaType:"array",$data:!0,error:gfn,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,mfn.checkStrictMode)(o,y,o.opts.strictRequired)}}function u(){if(c||s)e.block$data(BC.nil,d);else for(let p of n)(0,qC.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,qC.checkMissingProp)(e,n,p)),(0,qC.reportMissingProp)(e,p),t.else()}function d(){t.forOf("prop",r,p=>{e.setParams({missingProperty:p}),t.if((0,qC.noPropertyInData)(t,i,p,a.ownProperties),()=>e.error())})}function f(p,h){e.setParams({missingProperty:p}),t.forOf(p,r,()=>{t.assign(h,(0,qC.propertyInData)(t,i,p,a.ownProperties)),t.if((0,BC.not)(h),()=>{e.error(),t.break()})},BC.nil)}}};toe.default=yfn});var k5e=w(noe=>{"use strict";Object.defineProperty(noe,"__esModule",{value:!0});var zC=Ot(),Sfn={message({keyword:e,schemaCode:t}){let n=e==="maxItems"?"more":"fewer";return(0,zC.str)`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>(0,zC._)`{limit: ${e}}`},bfn={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Sfn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxItems"?zC.operators.GT:zC.operators.LT;e.fail$data((0,zC._)`${n}.length ${i} ${r}`)}};noe.default=bfn});var GC=w(roe=>{"use strict";Object.defineProperty(roe,"__esModule",{value:!0});var I5e=OC();I5e.code='require("ajv/dist/runtime/equal").default';roe.default=I5e});var x5e=w(soe=>{"use strict";Object.defineProperty(soe,"__esModule",{value:!0});var ioe=xC(),Ea=Ot(),Efn=pn(),_fn=GC(),Tfn={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}}`},vfn={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Tfn,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,ioe.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,ioe.checkDataTypes)(u,g,a.opts.strictNumbers,ioe.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,Efn.useFunc)(t,_fn.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)})))}}};soe.default=vfn});var O5e=w(aoe=>{"use strict";Object.defineProperty(aoe,"__esModule",{value:!0});var ooe=Ot(),Rfn=pn(),Afn=GC(),wfn={message:"must be equal to constant",params:({schemaCode:e})=>(0,ooe._)`{allowedValue: ${e}}`},kfn={keyword:"const",$data:!0,error:wfn,code(e){let{gen:t,data:n,$data:r,schemaCode:i,schema:s}=e;r||s&&typeof s=="object"?e.fail$data((0,ooe._)`!${(0,Rfn.useFunc)(t,Afn.default)}(${n}, ${i})`):e.fail((0,ooe._)`${s} !== ${n}`)}};aoe.default=kfn});var P5e=w(coe=>{"use strict";Object.defineProperty(coe,"__esModule",{value:!0});var VC=Ot(),Ifn=pn(),xfn=GC(),Ofn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,VC._)`{allowedValues: ${e}}`},Pfn={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,xfn.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,VC.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,VC._)`${u()}(${n}, ${p})`,()=>t.assign(l,!0).break()))}function f(p,h){let m=i[h];return typeof m=="object"&&m!==null?(0,VC._)`${u()}(${n}, ${p}[${h}])`:(0,VC._)`${n} === ${m}`}}};coe.default=Pfn});var N5e=w(uoe=>{"use strict";Object.defineProperty(uoe,"__esModule",{value:!0});var Nfn=b5e(),Cfn=E5e(),Mfn=v5e(),Dfn=R5e(),Lfn=A5e(),Ufn=w5e(),Ffn=k5e(),jfn=x5e(),Hfn=O5e(),qfn=P5e(),Bfn=[Nfn.default,Cfn.default,Mfn.default,Dfn.default,Lfn.default,Ufn.default,Ffn.default,jfn.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Hfn.default,qfn.default];uoe.default=Bfn});var doe=w(WC=>{"use strict";Object.defineProperty(WC,"__esModule",{value:!0});WC.validateAdditionalItems=void 0;var G_=Ot(),loe=pn(),zfn={message:({params:{len:e}})=>(0,G_.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,G_._)`{limit: ${e}}`},Gfn={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:zfn,code(e){let{parentSchema:t,it:n}=e,{items:r}=t;if(!Array.isArray(r)){(0,loe.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas');return}C5e(e,r)}};function C5e(e,t){let{gen:n,schema:r,data:i,keyword:s,it:o}=e;o.items=!0;let a=n.const("len",(0,G_._)`${i}.length`);if(r===!1)e.setParams({len:t.length}),e.pass((0,G_._)`${a} <= ${t.length}`);else if(typeof r=="object"&&!(0,loe.alwaysValidSchema)(o,r)){let u=n.var("valid",(0,G_._)`${a} <= ${t.length}`);n.if((0,G_.not)(u),()=>c(u)),e.ok(u)}function c(u){n.forRange("i",t.length,a,l=>{e.subschema({keyword:s,dataProp:l,dataPropType:loe.Type.Num},u),o.allErrors||n.if((0,G_.not)(u),()=>n.break())})}}WC.validateAdditionalItems=C5e;WC.default=Gfn});var foe=w(KC=>{"use strict";Object.defineProperty(KC,"__esModule",{value:!0});KC.validateTuple=void 0;var M5e=Ot(),dV=pn(),Vfn=Sa(),Wfn={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:n}=e;if(Array.isArray(t))return D5e(e,"additionalItems",t);n.items=!0,!(0,dV.alwaysValidSchema)(n,t)&&e.ok((0,Vfn.validateArray)(e))}};function D5e(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=dV.mergeEvaluated.items(r,n.length,a.items));let c=r.name("valid"),u=r.const("len",(0,M5e._)`${s}.length`);n.forEach((d,f)=>{(0,dV.alwaysValidSchema)(a,d)||(r.if((0,M5e._)`${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,dV.checkStrictMode)(a,g,f.strictTuples)}}}KC.validateTuple=D5e;KC.default=Wfn});var L5e=w(poe=>{"use strict";Object.defineProperty(poe,"__esModule",{value:!0});var Kfn=foe(),Yfn={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,Kfn.validateTuple)(e,"items")};poe.default=Yfn});var F5e=w(hoe=>{"use strict";Object.defineProperty(hoe,"__esModule",{value:!0});var U5e=Ot(),Zfn=pn(),Jfn=Sa(),Xfn=doe(),Qfn={message:({params:{len:e}})=>(0,U5e.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,U5e._)`{limit: ${e}}`},$fn={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Qfn,code(e){let{schema:t,parentSchema:n,it:r}=e,{prefixItems:i}=n;r.items=!0,!(0,Zfn.alwaysValidSchema)(r,t)&&(i?(0,Xfn.validateAdditionalItems)(e,i):e.ok((0,Jfn.validateArray)(e)))}};hoe.default=$fn});var j5e=w(moe=>{"use strict";Object.defineProperty(moe,"__esModule",{value:!0});var _d=Ot(),fV=pn(),epn={message:({params:{min:e,max:t}})=>t===void 0?(0,_d.str)`must contain at least ${e} valid item(s)`:(0,_d.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,_d._)`{minContains: ${e}}`:(0,_d._)`{minContains: ${e}, maxContains: ${t}}`},tpn={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:epn,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,_d._)`${i}.length`);if(e.setParams({min:o,max:a}),a===void 0&&o===0){(0,fV.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&o>a){(0,fV.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,fV.alwaysValidSchema)(s,n)){let m=(0,_d._)`${l} >= ${o}`;a!==void 0&&(m=(0,_d._)`${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,_d._)`${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:fV.Type.Num,compositeRule:!0},m),g()})}function h(m){t.code((0,_d._)`${m}++`),a===void 0?t.if((0,_d._)`${m} >= ${o}`,()=>t.assign(d,!0).break()):(t.if((0,_d._)`${m} > ${a}`,()=>t.assign(d,!1).break()),o===1?t.assign(d,!0):t.if((0,_d._)`${m} >= ${o}`,()=>t.assign(d,!0)))}}};moe.default=tpn});var B5e=w(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0});mh.validateSchemaDeps=mh.validatePropertyDeps=mh.error=void 0;var goe=Ot(),npn=pn(),YC=Sa();mh.error={message:({params:{property:e,depsCount:t,deps:n}})=>{let r=t===1?"property":"properties";return(0,goe.str)`must have ${r} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:r}})=>(0,goe._)`{property: ${e}, missingProperty: ${r}, depsCount: ${t}, - deps: ${n}}`};var npn={keyword:"dependencies",type:"object",schemaType:"object",error:mh.error,code(e){let[t,n]=rpn(e);F5e(e,t),j5e(e,n)}};function rpn({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 F5e(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,YC.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,YC.checkReportMissingProp)(e,u)}):(n.if((0,goe._)`${c} && (${(0,YC.checkMissingProp)(e,a,s)})`),(0,YC.reportMissingProp)(e,s),n.else())}}mh.validatePropertyDeps=F5e;function j5e(e,t=e.schema){let{gen:n,data:r,keyword:i,it:s}=e,o=n.name("valid");for(let a in t)(0,tpn.alwaysValidSchema)(s,t[a])||(n.if((0,YC.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=j5e;mh.default=npn});var B5e=w(yoe=>{"use strict";Object.defineProperty(yoe,"__esModule",{value:!0});var q5e=Ot(),ipn=pn(),spn={message:"property name must be valid",params:({params:e})=>(0,q5e._)`{propertyName: ${e.propertyName}}`},opn={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:spn,code(e){let{gen:t,schema:n,data:r,it:i}=e;if((0,ipn.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,q5e.not)(s),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(s)}};yoe.default=opn});var boe=w(Soe=>{"use strict";Object.defineProperty(Soe,"__esModule",{value:!0});var pV=Sa(),kf=Ot(),apn=bd(),hV=pn(),cpn={message:"must NOT have additional properties",params:({params:e})=>(0,kf._)`{additionalProperty: ${e.additionalProperty}}`},upn={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:cpn,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,hV.alwaysValidSchema)(o,n))return;let u=(0,pV.allSchemaProperties)(r.properties),l=(0,pV.allSchemaProperties)(r.patternProperties);d(),e.ok((0,kf._)`${s} === ${apn.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,hV.schemaRefOrVal)(o,r.properties,"properties");y=(0,pV.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,pV.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,hV.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:hV.Type.Str};b===!1&&Object.assign(S,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(S,y)}}};Soe.default=upn});var V5e=w(_oe=>{"use strict";Object.defineProperty(_oe,"__esModule",{value:!0});var lpn=ck(),z5e=Sa(),Eoe=pn(),G5e=boe(),dpn={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&&G5e.default.code(new lpn.KeywordCxt(s,G5e.default,"additionalProperties"));let o=(0,z5e.allSchemaProperties)(n);for(let d of o)s.definedProperties.add(d);s.opts.unevaluated&&o.length&&s.props!==!0&&(s.props=Eoe.mergeEvaluated.props(t,(0,Eoe.toHash)(o),s.props));let a=o.filter(d=>!(0,Eoe.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,z5e.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)}}};_oe.default=dpn});var Z5e=w(Toe=>{"use strict";Object.defineProperty(Toe,"__esModule",{value:!0});var W5e=Sa(),mV=Ot(),K5e=pn(),Y5e=pn(),fpn={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,W5e.allSchemaProperties)(n),c=a.filter(m=>(0,K5e.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 mV.Name)&&(s.props=(0,Y5e.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,K5e.checkStrictMode)(s,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){t.forIn("key",r,g=>{t.if((0,mV._)`${(0,W5e.usePattern)(e,m)}.test(${g})`,()=>{let y=c.includes(m);y||e.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:Y5e.Type.Str},l),s.opts.unevaluated&&d!==!0?t.assign((0,mV._)`${d}[${g}]`,!0):!y&&!s.allErrors&&t.if((0,mV.not)(l),()=>t.break())})})}}};Toe.default=fpn});var J5e=w(voe=>{"use strict";Object.defineProperty(voe,"__esModule",{value:!0});var ppn=pn(),hpn={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:n,it:r}=e;if((0,ppn.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"}};voe.default=hpn});var X5e=w(Roe=>{"use strict";Object.defineProperty(Roe,"__esModule",{value:!0});var mpn=Sa(),gpn={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:mpn.validateUnion,error:{message:"must match a schema in anyOf"}};Roe.default=gpn});var Q5e=w(Aoe=>{"use strict";Object.defineProperty(Aoe,"__esModule",{value:!0});var gV=Ot(),ypn=pn(),Spn={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,gV._)`{passingSchemas: ${e.passing}}`},bpn={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Spn,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,ypn.alwaysValidSchema)(i,l)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,gV._)`${c} && ${o}`).assign(o,!1).assign(a,(0,gV._)`[${a}, ${d}]`).else(),t.if(c,()=>{t.assign(o,!0),t.assign(a,d),f&&e.mergeEvaluated(f,gV.Name)})})}}};Aoe.default=bpn});var $5e=w(woe=>{"use strict";Object.defineProperty(woe,"__esModule",{value:!0});var Epn=pn(),_pn={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,Epn.alwaysValidSchema)(r,s))return;let a=e.subschema({keyword:"allOf",schemaProp:o},i);e.ok(i),e.mergeEvaluated(a)})}};woe.default=_pn});var n8e=w(koe=>{"use strict";Object.defineProperty(koe,"__esModule",{value:!0});var yV=Ot(),t8e=pn(),Tpn={message:({params:e})=>(0,yV.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,yV._)`{failingKeyword: ${e.ifClause}}`},vpn={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Tpn,code(e){let{gen:t,parentSchema:n,it:r}=e;n.then===void 0&&n.else===void 0&&(0,t8e.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=e8e(r,"then"),s=e8e(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,yV.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,yV._)`${l}`):e.setParams({ifClause:l})}}}};function e8e(e,t){let n=e.schema[t];return n!==void 0&&!(0,t8e.alwaysValidSchema)(e,n)}koe.default=vpn});var r8e=w(Ioe=>{"use strict";Object.defineProperty(Ioe,"__esModule",{value:!0});var Rpn=pn(),Apn={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,Rpn.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};Ioe.default=Apn});var i8e=w(xoe=>{"use strict";Object.defineProperty(xoe,"__esModule",{value:!0});var wpn=doe(),kpn=M5e(),Ipn=foe(),xpn=L5e(),Opn=U5e(),Ppn=H5e(),Npn=B5e(),Cpn=boe(),Mpn=V5e(),Dpn=Z5e(),Lpn=J5e(),Upn=X5e(),Fpn=Q5e(),jpn=$5e(),Hpn=n8e(),qpn=r8e();function Bpn(e=!1){let t=[Lpn.default,Upn.default,Fpn.default,jpn.default,Hpn.default,qpn.default,Npn.default,Cpn.default,Ppn.default,Mpn.default,Dpn.default];return e?t.push(kpn.default,xpn.default):t.push(wpn.default,Ipn.default),t.push(Opn.default),t}xoe.default=Bpn});var s8e=w(Ooe=>{"use strict";Object.defineProperty(Ooe,"__esModule",{value:!0});var Cs=Ot(),zpn={message:({schemaCode:e})=>(0,Cs.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,Cs._)`{format: ${e}}`},Gpn={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:zpn,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})`}}}};Ooe.default=Gpn});var o8e=w(Poe=>{"use strict";Object.defineProperty(Poe,"__esModule",{value:!0});var Vpn=s8e(),Wpn=[Vpn.default];Poe.default=Wpn});var a8e=w(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});pk.contentVocabulary=pk.metadataVocabulary=void 0;pk.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];pk.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var u8e=w(Noe=>{"use strict";Object.defineProperty(Noe,"__esModule",{value:!0});var Kpn=g5e(),Ypn=O5e(),Zpn=i8e(),Jpn=o8e(),c8e=a8e(),Xpn=[Kpn.default,Ypn.default,(0,Zpn.default)(),Jpn.default,c8e.metadataVocabulary,c8e.contentVocabulary];Noe.default=Xpn});var Coe=w(SV=>{"use strict";Object.defineProperty(SV,"__esModule",{value:!0});SV.DiscrError=void 0;var l8e;(function(e){e.Tag="tag",e.Mapping="mapping"})(l8e||(SV.DiscrError=l8e={}))});var f8e=w(Doe=>{"use strict";Object.defineProperty(Doe,"__esModule",{value:!0});var hk=Ot(),Moe=Coe(),d8e=q_(),Qpn=Zm(),$pn=pn(),ehn={message:({params:{discrError:e,tagName:t}})=>e===Moe.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,hk._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},thn={keyword:"discriminator",type:"object",schemaType:"object",error:ehn,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,hk._)`${n}${(0,hk.getProperty)(a)}`);t.if((0,hk._)`typeof ${u} == "string"`,()=>l(),()=>e.error(!1,{discrError:Moe.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,hk._)`${u} === ${h}`),t.assign(c,d(p[h]));t.else(),e.error(!1,{discrError:Moe.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,hk.Name),h}function f(){var p;let h={},m=y(i),g=!0;for(let E=0;E{nhn.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 V_=w((yi,Loe)=>{"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 rhn=Vse(),ihn=u8e(),shn=f8e(),h8e=p8e(),ohn=["/properties"],bV="http://json-schema.org/draft-07/schema",mk=class extends rhn.default{_addVocabularies(){super._addVocabularies(),ihn.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(shn.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(h8e,ohn):h8e;this.addMetaSchema(t,bV,!1),this.refs["http://json-schema.org/schema"]=bV}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(bV)?bV:void 0)}};yi.Ajv=mk;Loe.exports=yi=mk;Loe.exports.Ajv=mk;Object.defineProperty(yi,"__esModule",{value:!0});yi.default=mk;var ahn=ck();Object.defineProperty(yi,"KeywordCxt",{enumerable:!0,get:function(){return ahn.KeywordCxt}});var gk=Ot();Object.defineProperty(yi,"_",{enumerable:!0,get:function(){return gk._}});Object.defineProperty(yi,"str",{enumerable:!0,get:function(){return gk.str}});Object.defineProperty(yi,"stringify",{enumerable:!0,get:function(){return gk.stringify}});Object.defineProperty(yi,"nil",{enumerable:!0,get:function(){return gk.nil}});Object.defineProperty(yi,"Name",{enumerable:!0,get:function(){return gk.Name}});Object.defineProperty(yi,"CodeGen",{enumerable:!0,get:function(){return gk.CodeGen}});var chn=MC();Object.defineProperty(yi,"ValidationError",{enumerable:!0,get:function(){return chn.default}});var uhn=Zm();Object.defineProperty(yi,"MissingRefError",{enumerable:!0,get:function(){return uhn.default}})});var EV=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(S8e,Hoe),time:gh(Foe(!0),qoe),"date-time":gh(m8e(!0),E8e),"iso-time":gh(Foe(),b8e),"iso-date-time":gh(m8e(),_8e),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:mhn,"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:Thn,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:ghn,int32:{type:"number",validate:bhn},int64:{type:"number",validate:Ehn},float:{type:"number",validate:y8e},double:{type:"number",validate:y8e},password:!0,binary:!0};yh.fastFormats={...yh.fullFormats,date:gh(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,Hoe),time:gh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,qoe),"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,E8e),"iso-time":gh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,b8e),"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,_8e),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 lhn(e){return e%4===0&&(e%100!==0||e%400===0)}var dhn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,fhn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function S8e(e){let t=dhn.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&&lhn(n)?29:fhn[r])}function Hoe(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 qoe(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 b8e(e,t){if(!(e&&t))return;let n=Uoe.exec(e),r=Uoe.exec(t);if(n&&r)return e=n[1]+n[2]+n[3],t=r[1]+r[2]+r[3],e>t?1:e=yhn}function Ehn(e){return Number.isInteger(e)}function y8e(){return!0}var _hn=/[^\\]\\Z/;function Thn(e){if(_hn.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var T8e=w(yk=>{"use strict";Object.defineProperty(yk,"__esModule",{value:!0});yk.formatLimitDefinition=void 0;var vhn=V_(),If=Ot(),HS=If.operators,_V={formatMaximum:{okStr:"<=",ok:HS.LTE,fail:HS.GT},formatMinimum:{okStr:">=",ok:HS.GTE,fail:HS.LT},formatExclusiveMaximum:{okStr:"<",ok:HS.LT,fail:HS.GTE},formatExclusiveMinimum:{okStr:">",ok:HS.GT,fail:HS.LTE}},Rhn={message:({keyword:e,schemaCode:t})=>(0,If.str)`should be ${_V[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,If._)`{comparison: ${_V[e].okStr}, limit: ${t}}`};yk.formatLimitDefinition={keyword:Object.keys(_V),type:"string",schemaType:"string",$data:!0,error:Rhn,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 vhn.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}) ${_V[i].fail} 0`}},dependencies:["format"]};var Ahn=e=>(e.addKeyword(yk.formatLimitDefinition),e);yk.default=Ahn});var TV=w((ZC,A8e)=>{"use strict";Object.defineProperty(ZC,"__esModule",{value:!0});var Sk=EV(),whn=T8e(),Boe=Ot(),v8e=new Boe.Name("fullFormats"),khn=new Boe.Name("fastFormats"),zoe=(e,t={keywords:!0})=>{if(Array.isArray(t))return R8e(e,t,Sk.fullFormats,v8e),e;let[n,r]=t.mode==="fast"?[Sk.fastFormats,khn]:[Sk.fullFormats,v8e],i=t.formats||Sk.formatNames;return R8e(e,i,n,r),t.keywords&&(0,whn.default)(e),e};zoe.get=(e,t="full")=>{let r=(t==="fast"?Sk.fastFormats:Sk.fullFormats)[e];if(!r)throw new Error(`Unknown format "${e}"`);return r};function R8e(e,t,n,r){var i,s;(i=(s=e.opts.code).formats)!==null&&i!==void 0||(s.formats=(0,Boe._)`require("ajv-formats/dist/formats").${r}`);for(let o of t)e.addFormat(o,n[o])}A8e.exports=ZC=zoe;Object.defineProperty(ZC,"__esModule",{value:!0});ZC.default=zoe});function Ihn(){let e=new w8e.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,k8e.default)(e),e}var w8e,k8e,vV,I8e=v(()=>{w8e=Re(V_(),1),k8e=Re(TV(),1);vV=class{constructor(t){this._ajv=t??Ihn()}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 RV,x8e=v(()=>{C_();RV=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},bC,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},$w,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 O8e(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 P8e(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 N8e=v(()=>{});var AV,C8e=v(()=>{WZe();C_();I8e();y2();x8e();N8e();AV=class extends H2{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(aie,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(yie,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 RV(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=VZe(this._capabilities,t)}setRequestHandler(t,n){let i=g2(t)?.method;if(!i)throw new Error("Schema is missing a method literal");let s;if(Zw(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=xS(yC,c);if(!l.success){let h=l.error instanceof Error?l.error.message:String(l.error);throw new rn(Sn.InvalidParams,`Invalid tools/call request: ${h}`)}let{params:d}=l.data,f=await Promise.resolve(n(c,u));if(d.task){let h=xS(Xw,f);if(!h.success){let m=h.error instanceof Error?h.error.message:String(h.error);throw new rn(Sn.InvalidParams,`Invalid task creation result: ${m}`)}return h.data}let p=xS(C2,f);if(!p.success){let h=p.error instanceof Error?p.error.message:String(p.error);throw new rn(Sn.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){P8e(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&O8e(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:RZe.includes(n)?n:tie,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"},v2)}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},Sie,n):this.request({method:"sampling/createMessage",params:t},bC,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},$w,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},$w,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(Sn.InvalidParams,`Elicitation response content does not match requested schema: ${a.errorMessage}`)}catch(o){throw o instanceof rn?o:new rn(Sn.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},Eie,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 xhn(e){return NZe.parse(JSON.parse(e))}function M8e(e){return JSON.stringify(e)+` -`}var wV,D8e=v(()=>{C_();wV=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),xhn(n)}clear(){this._buffer=void 0}}});import L8e from"node:process";var kV,U8e=v(()=>{D8e();kV=class{constructor(t=L8e.stdin,n=L8e.stdout){this._stdin=t,this._stdout=n,this._readBuffer=new wV,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=M8e(t);this._stdout.write(r)?n():this._stdout.once("drain",n)})}}});var j8e=w((ZWr,Goe)=>{"use strict";var Ohn=/at\s(?:.*\.)?plugin\s.*\n\s*(.*)/,Phn=/(\w*(\.\w*)*)\..*/;Goe.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,F8e(r.stack)}};function F8e(e){let t=e.match(Ohn);return t?t[1].split(/[/\\]/).slice(-1)[0].match(Phn)[1]:"anonymous"}Goe.exports.extractPluginName=F8e});var q8e=w((JWr,H8e)=>{"use strict";H8e.exports=function(t){return t[0]==="@"&&(t=t.slice(1).replace("/","-")),t.replace(/-(.)/g,function(n,r){return r.toUpperCase()})}});var JC=w((XWr,IV)=>{"use strict";var Nhn=j8e(),Chn=q8e(),Mhn=0;function Voe(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=Nhn(e)+"-auto-"+Mhn++),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=Chn(t.name);return!n&&!e[r]&&(e[r]=e),e}IV.exports=Voe;IV.exports.default=Voe;IV.exports.fastifyPlugin=Voe});var NV=w(Sh=>{"use strict";var Woe=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}},Koe=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}},XC=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}},xV=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 B8e(e){return`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}-${e.getDate().toString().padStart(2,"0")}`}var Yoe=class{constructor(t,n,r){this.cacheId=t,this.statisticTtlInHours=n,this.collectionStart=new Date,this.currentTimeStamp=B8e(this.collectionStart),this.records=r||new xV,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=B8e(this.collectionStart),this.records.initForCache(this.cacheId,this.currentTimeStamp))}},OV=class extends XC{constructor(t,n,r,i,s){if(super(t||1e3,n||0),!r)throw new Error("Cache id is mandatory");this.hitStatistics=new Yoe(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()}},PV=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=PV;Sh.FifoMap=Woe;Sh.FifoObject=PV;Sh.HitStatisticsRecord=xV;Sh.Lru=XC;Sh.LruHitStatistics=OV;Sh.LruMap=Koe;Sh.LruObject=XC;Sh.LruObjectHitStatistics=OV});var G8e=w(($Wr,QC)=>{"use strict";var{FifoMap:Dhn}=NV(),Lhn=/^[!#$%&'*+\-.^\w`|~]+$/u;function Uhn(e){if(Lhn.test(e)===!1)throw new TypeError("Fieldname contains invalid characters.")}function z8e(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 Fhn=JC(),{addAccessControlRequestHeadersToVaryHeader:jhn,addOriginToVaryHeader:Hhn}=G8e(),Xoe={origin:"*",methods:"GET,HEAD,POST",hook:"onRequest",preflightContinue:!1,optionsSuccessStatus:204,credentials:!1,exposedHeaders:null,allowedHeaders:null,maxAge:null,preflight:!0,strictPreflight:!0},qhn=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend"],Joe=["preSerialization","preParsing","onSend"];function K8e(e,t){qhn.indexOf(e)===-1&&t(new TypeError("@fastify/cors: Invalid hook option provided."))}function Bhn(e,t,n){e.decorateRequest("corsPreflightEnabled",!1);let r=!0,i;if(typeof t=="function")V8e(t,e,{hook:Xoe.hook},n);else if(t.delegator){let{delegator:s,...o}=t;V8e(s,e,o,n)}else{let s=CV(t);K8e(s.hook,n),Joe.indexOf(s.hook)!==-1?e.addHook(s.hook,function(a,c,u,l){$C(e,s,a,c,l)}):e.addHook(s.hook,function(a,c,u){$C(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 V8e(e,t,n,r){let i=n?.hook||Xoe.hook;K8e(i,r),e.length===2?Joe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){W8e(e,t,o,a,u)}):t.addHook(i,function(o,a,c){W8e(e,t,o,a,c)}):Joe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){let l=e(o);if(l&&typeof l.then=="function"){l.then(d=>$C(t,CV(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=>$C(t,CV(l,!0),o,a,c)).catch(c);return}c(new Error("Invalid CORS origin option"))})}function W8e(e,t,n,r,i){e(n,(s,o)=>{s?i(s):$C(t,CV(o,!0),n,r,i)})}function CV(e,t){let n={...Xoe,...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 $C(e,t,n,r,i){let s={...t,...n.routeOptions.config?.cors};(typeof s.origin!="string"&&s.origin!==!1||s.dynamic)&&Hhn(r),(typeof s.origin=="function"?Vhn(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(zhn(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,Ghn(n,r,s),!s.preflightContinue){r.code(s.optionsSuccessStatus).header("Content-Length","0").send();return}}return i()})}function zhn(e,t,n,r){let i=Whn(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 Ghn(e,t,n){if(t.header("Access-Control-Allow-Methods",Array.isArray(n.methods)?n.methods.join(", "):n.methods),n.allowedHeaders===null){jhn(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 Vhn(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 Whn(e,t){return typeof t=="string"?t:Y8e(e,t)?e:!1}function Y8e(e,t){if(Array.isArray(t)){for(let n=0;n{var Khn=/^(-?(?:\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?)?)?$/,DV=1e3,LV=DV*60,UV=LV*60,tM=UV*24,$oe=tM*365.25;function Yhn(e){var t,n=e.toLowerCase().match(Khn);if(n!=null&&(t=parseFloat(n[1])))return n[3]!=null?t*DV:n[4]!=null?t*LV:n[5]!=null?t*UV:n[6]!=null?t*tM:n[7]!=null?t*tM*7:n[8]!=null?t*$oe:t}function eM(e,t,n,r){var i=(e|0)===e?e:~~(e+.5);return t+i+(r?" "+n+(i!=1?"s":""):n[0])}function Zhn(e,t){var n=e<0?"-":"",r=e<0?-e:e;return r{"use strict";var{LruMap:Jhn}=NV();function FV(e,t,n=5e3){this.continueExceeding=e,this.exponentialBackoff=t,this.lru=new Jhn(n)}FV.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)};FV.prototype.child=function(e){return new FV(e.continueExceeding,e.exponentialBackoff,e.cache)};X8e.exports=FV});var e7e=w((r4r,$8e)=>{"use strict";var Xhn=` + deps: ${n}}`};var rpn={keyword:"dependencies",type:"object",schemaType:"object",error:mh.error,code(e){let[t,n]=ipn(e);H5e(e,t),q5e(e,n)}};function ipn({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 H5e(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,YC.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,YC.checkReportMissingProp)(e,u)}):(n.if((0,goe._)`${c} && (${(0,YC.checkMissingProp)(e,a,s)})`),(0,YC.reportMissingProp)(e,s),n.else())}}mh.validatePropertyDeps=H5e;function q5e(e,t=e.schema){let{gen:n,data:r,keyword:i,it:s}=e,o=n.name("valid");for(let a in t)(0,npn.alwaysValidSchema)(s,t[a])||(n.if((0,YC.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=q5e;mh.default=rpn});var G5e=w(yoe=>{"use strict";Object.defineProperty(yoe,"__esModule",{value:!0});var z5e=Ot(),spn=pn(),opn={message:"property name must be valid",params:({params:e})=>(0,z5e._)`{propertyName: ${e.propertyName}}`},apn={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:opn,code(e){let{gen:t,schema:n,data:r,it:i}=e;if((0,spn.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,z5e.not)(s),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(s)}};yoe.default=apn});var boe=w(Soe=>{"use strict";Object.defineProperty(Soe,"__esModule",{value:!0});var pV=Sa(),kf=Ot(),cpn=bd(),hV=pn(),upn={message:"must NOT have additional properties",params:({params:e})=>(0,kf._)`{additionalProperty: ${e.additionalProperty}}`},lpn={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:upn,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,hV.alwaysValidSchema)(o,n))return;let u=(0,pV.allSchemaProperties)(r.properties),l=(0,pV.allSchemaProperties)(r.patternProperties);d(),e.ok((0,kf._)`${s} === ${cpn.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,hV.schemaRefOrVal)(o,r.properties,"properties");y=(0,pV.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,pV.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,hV.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:hV.Type.Str};b===!1&&Object.assign(S,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(S,y)}}};Soe.default=lpn});var K5e=w(_oe=>{"use strict";Object.defineProperty(_oe,"__esModule",{value:!0});var dpn=ck(),V5e=Sa(),Eoe=pn(),W5e=boe(),fpn={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&&W5e.default.code(new dpn.KeywordCxt(s,W5e.default,"additionalProperties"));let o=(0,V5e.allSchemaProperties)(n);for(let d of o)s.definedProperties.add(d);s.opts.unevaluated&&o.length&&s.props!==!0&&(s.props=Eoe.mergeEvaluated.props(t,(0,Eoe.toHash)(o),s.props));let a=o.filter(d=>!(0,Eoe.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,V5e.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)}}};_oe.default=fpn});var X5e=w(Toe=>{"use strict";Object.defineProperty(Toe,"__esModule",{value:!0});var Y5e=Sa(),mV=Ot(),Z5e=pn(),J5e=pn(),ppn={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,Y5e.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 mV.Name)&&(s.props=(0,J5e.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,mV._)`${(0,Y5e.usePattern)(e,m)}.test(${g})`,()=>{let y=c.includes(m);y||e.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:J5e.Type.Str},l),s.opts.unevaluated&&d!==!0?t.assign((0,mV._)`${d}[${g}]`,!0):!y&&!s.allErrors&&t.if((0,mV.not)(l),()=>t.break())})})}}};Toe.default=ppn});var Q5e=w(voe=>{"use strict";Object.defineProperty(voe,"__esModule",{value:!0});var hpn=pn(),mpn={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:n,it:r}=e;if((0,hpn.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"}};voe.default=mpn});var $5e=w(Roe=>{"use strict";Object.defineProperty(Roe,"__esModule",{value:!0});var gpn=Sa(),ypn={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:gpn.validateUnion,error:{message:"must match a schema in anyOf"}};Roe.default=ypn});var e8e=w(Aoe=>{"use strict";Object.defineProperty(Aoe,"__esModule",{value:!0});var gV=Ot(),Spn=pn(),bpn={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,gV._)`{passingSchemas: ${e.passing}}`},Epn={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:bpn,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,Spn.alwaysValidSchema)(i,l)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,gV._)`${c} && ${o}`).assign(o,!1).assign(a,(0,gV._)`[${a}, ${d}]`).else(),t.if(c,()=>{t.assign(o,!0),t.assign(a,d),f&&e.mergeEvaluated(f,gV.Name)})})}}};Aoe.default=Epn});var t8e=w(woe=>{"use strict";Object.defineProperty(woe,"__esModule",{value:!0});var _pn=pn(),Tpn={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,_pn.alwaysValidSchema)(r,s))return;let a=e.subschema({keyword:"allOf",schemaProp:o},i);e.ok(i),e.mergeEvaluated(a)})}};woe.default=Tpn});var i8e=w(koe=>{"use strict";Object.defineProperty(koe,"__esModule",{value:!0});var yV=Ot(),r8e=pn(),vpn={message:({params:e})=>(0,yV.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,yV._)`{failingKeyword: ${e.ifClause}}`},Rpn={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:vpn,code(e){let{gen:t,parentSchema:n,it:r}=e;n.then===void 0&&n.else===void 0&&(0,r8e.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=n8e(r,"then"),s=n8e(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,yV.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,yV._)`${l}`):e.setParams({ifClause:l})}}}};function n8e(e,t){let n=e.schema[t];return n!==void 0&&!(0,r8e.alwaysValidSchema)(e,n)}koe.default=Rpn});var s8e=w(Ioe=>{"use strict";Object.defineProperty(Ioe,"__esModule",{value:!0});var Apn=pn(),wpn={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,Apn.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};Ioe.default=wpn});var o8e=w(xoe=>{"use strict";Object.defineProperty(xoe,"__esModule",{value:!0});var kpn=doe(),Ipn=L5e(),xpn=foe(),Opn=F5e(),Ppn=j5e(),Npn=B5e(),Cpn=G5e(),Mpn=boe(),Dpn=K5e(),Lpn=X5e(),Upn=Q5e(),Fpn=$5e(),jpn=e8e(),Hpn=t8e(),qpn=i8e(),Bpn=s8e();function zpn(e=!1){let t=[Upn.default,Fpn.default,jpn.default,Hpn.default,qpn.default,Bpn.default,Cpn.default,Mpn.default,Npn.default,Dpn.default,Lpn.default];return e?t.push(Ipn.default,Opn.default):t.push(kpn.default,xpn.default),t.push(Ppn.default),t}xoe.default=zpn});var a8e=w(Ooe=>{"use strict";Object.defineProperty(Ooe,"__esModule",{value:!0});var Cs=Ot(),Gpn={message:({schemaCode:e})=>(0,Cs.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,Cs._)`{format: ${e}}`},Vpn={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:Gpn,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})`}}}};Ooe.default=Vpn});var c8e=w(Poe=>{"use strict";Object.defineProperty(Poe,"__esModule",{value:!0});var Wpn=a8e(),Kpn=[Wpn.default];Poe.default=Kpn});var u8e=w(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});pk.contentVocabulary=pk.metadataVocabulary=void 0;pk.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];pk.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var d8e=w(Noe=>{"use strict";Object.defineProperty(Noe,"__esModule",{value:!0});var Ypn=S5e(),Zpn=N5e(),Jpn=o8e(),Xpn=c8e(),l8e=u8e(),Qpn=[Ypn.default,Zpn.default,(0,Jpn.default)(),Xpn.default,l8e.metadataVocabulary,l8e.contentVocabulary];Noe.default=Qpn});var Coe=w(SV=>{"use strict";Object.defineProperty(SV,"__esModule",{value:!0});SV.DiscrError=void 0;var f8e;(function(e){e.Tag="tag",e.Mapping="mapping"})(f8e||(SV.DiscrError=f8e={}))});var h8e=w(Doe=>{"use strict";Object.defineProperty(Doe,"__esModule",{value:!0});var hk=Ot(),Moe=Coe(),p8e=q_(),$pn=Zm(),ehn=pn(),thn={message:({params:{discrError:e,tagName:t}})=>e===Moe.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,hk._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},nhn={keyword:"discriminator",type:"object",schemaType:"object",error:thn,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,hk._)`${n}${(0,hk.getProperty)(a)}`);t.if((0,hk._)`typeof ${u} == "string"`,()=>l(),()=>e.error(!1,{discrError:Moe.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,hk._)`${u} === ${h}`),t.assign(c,d(p[h]));t.else(),e.error(!1,{discrError:Moe.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,hk.Name),h}function f(){var p;let h={},m=y(i),g=!0;for(let E=0;E{rhn.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 V_=w((yi,Loe)=>{"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 ihn=Vse(),shn=d8e(),ohn=h8e(),g8e=m8e(),ahn=["/properties"],bV="http://json-schema.org/draft-07/schema",mk=class extends ihn.default{_addVocabularies(){super._addVocabularies(),shn.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(ohn.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(g8e,ahn):g8e;this.addMetaSchema(t,bV,!1),this.refs["http://json-schema.org/schema"]=bV}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(bV)?bV:void 0)}};yi.Ajv=mk;Loe.exports=yi=mk;Loe.exports.Ajv=mk;Object.defineProperty(yi,"__esModule",{value:!0});yi.default=mk;var chn=ck();Object.defineProperty(yi,"KeywordCxt",{enumerable:!0,get:function(){return chn.KeywordCxt}});var gk=Ot();Object.defineProperty(yi,"_",{enumerable:!0,get:function(){return gk._}});Object.defineProperty(yi,"str",{enumerable:!0,get:function(){return gk.str}});Object.defineProperty(yi,"stringify",{enumerable:!0,get:function(){return gk.stringify}});Object.defineProperty(yi,"nil",{enumerable:!0,get:function(){return gk.nil}});Object.defineProperty(yi,"Name",{enumerable:!0,get:function(){return gk.Name}});Object.defineProperty(yi,"CodeGen",{enumerable:!0,get:function(){return gk.CodeGen}});var uhn=MC();Object.defineProperty(yi,"ValidationError",{enumerable:!0,get:function(){return uhn.default}});var lhn=Zm();Object.defineProperty(yi,"MissingRefError",{enumerable:!0,get:function(){return lhn.default}})});var EV=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(E8e,Hoe),time:gh(Foe(!0),qoe),"date-time":gh(y8e(!0),T8e),"iso-time":gh(Foe(),_8e),"iso-date-time":gh(y8e(),v8e),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:ghn,"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:vhn,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:yhn,int32:{type:"number",validate:Ehn},int64:{type:"number",validate:_hn},float:{type:"number",validate:b8e},double:{type:"number",validate:b8e},password:!0,binary:!0};yh.fastFormats={...yh.fullFormats,date:gh(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,Hoe),time:gh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,qoe),"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,T8e),"iso-time":gh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,_8e),"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,v8e),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 dhn(e){return e%4===0&&(e%100!==0||e%400===0)}var fhn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,phn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function E8e(e){let t=fhn.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&&dhn(n)?29:phn[r])}function Hoe(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 qoe(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 _8e(e,t){if(!(e&&t))return;let n=Uoe.exec(e),r=Uoe.exec(t);if(n&&r)return e=n[1]+n[2]+n[3],t=r[1]+r[2]+r[3],e>t?1:e=Shn}function _hn(e){return Number.isInteger(e)}function b8e(){return!0}var Thn=/[^\\]\\Z/;function vhn(e){if(Thn.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var R8e=w(yk=>{"use strict";Object.defineProperty(yk,"__esModule",{value:!0});yk.formatLimitDefinition=void 0;var Rhn=V_(),If=Ot(),HS=If.operators,_V={formatMaximum:{okStr:"<=",ok:HS.LTE,fail:HS.GT},formatMinimum:{okStr:">=",ok:HS.GTE,fail:HS.LT},formatExclusiveMaximum:{okStr:"<",ok:HS.LT,fail:HS.GTE},formatExclusiveMinimum:{okStr:">",ok:HS.GT,fail:HS.LTE}},Ahn={message:({keyword:e,schemaCode:t})=>(0,If.str)`should be ${_V[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,If._)`{comparison: ${_V[e].okStr}, limit: ${t}}`};yk.formatLimitDefinition={keyword:Object.keys(_V),type:"string",schemaType:"string",$data:!0,error:Ahn,code(e){let{gen:t,data:n,schemaCode:r,keyword:i,it:s}=e,{opts:o,self:a}=s;if(!o.validateFormats)return;let c=new Rhn.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}) ${_V[i].fail} 0`}},dependencies:["format"]};var whn=e=>(e.addKeyword(yk.formatLimitDefinition),e);yk.default=whn});var TV=w((ZC,k8e)=>{"use strict";Object.defineProperty(ZC,"__esModule",{value:!0});var Sk=EV(),khn=R8e(),Boe=Ot(),A8e=new Boe.Name("fullFormats"),Ihn=new Boe.Name("fastFormats"),zoe=(e,t={keywords:!0})=>{if(Array.isArray(t))return w8e(e,t,Sk.fullFormats,A8e),e;let[n,r]=t.mode==="fast"?[Sk.fastFormats,Ihn]:[Sk.fullFormats,A8e],i=t.formats||Sk.formatNames;return w8e(e,i,n,r),t.keywords&&(0,khn.default)(e),e};zoe.get=(e,t="full")=>{let r=(t==="fast"?Sk.fastFormats:Sk.fullFormats)[e];if(!r)throw new Error(`Unknown format "${e}"`);return r};function w8e(e,t,n,r){var i,s;(i=(s=e.opts.code).formats)!==null&&i!==void 0||(s.formats=(0,Boe._)`require("ajv-formats/dist/formats").${r}`);for(let o of t)e.addFormat(o,n[o])}k8e.exports=ZC=zoe;Object.defineProperty(ZC,"__esModule",{value:!0});ZC.default=zoe});function xhn(){let e=new I8e.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,x8e.default)(e),e}var I8e,x8e,vV,O8e=v(()=>{I8e=Re(V_(),1),x8e=Re(TV(),1);vV=class{constructor(t){this._ajv=t??xhn()}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 RV,P8e=v(()=>{C_();RV=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},bC,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},$w,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 N8e(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 C8e(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 M8e=v(()=>{});var AV,D8e=v(()=>{YZe();C_();O8e();y2();P8e();M8e();AV=class extends H2{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(aie,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(yie,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 RV(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=KZe(this._capabilities,t)}setRequestHandler(t,n){let i=g2(t)?.method;if(!i)throw new Error("Schema is missing a method literal");let s;if(Zw(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=xS(yC,c);if(!l.success){let h=l.error instanceof Error?l.error.message:String(l.error);throw new rn(Sn.InvalidParams,`Invalid tools/call request: ${h}`)}let{params:d}=l.data,f=await Promise.resolve(n(c,u));if(d.task){let h=xS(Xw,f);if(!h.success){let m=h.error instanceof Error?h.error.message:String(h.error);throw new rn(Sn.InvalidParams,`Invalid task creation result: ${m}`)}return h.data}let p=xS(C2,f);if(!p.success){let h=p.error instanceof Error?p.error.message:String(p.error);throw new rn(Sn.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){C8e(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&N8e(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:wZe.includes(n)?n:tie,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"},v2)}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},Sie,n):this.request({method:"sampling/createMessage",params:t},bC,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},$w,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},$w,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(Sn.InvalidParams,`Elicitation response content does not match requested schema: ${a.errorMessage}`)}catch(o){throw o instanceof rn?o:new rn(Sn.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},Eie,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 MZe.parse(JSON.parse(e))}function L8e(e){return JSON.stringify(e)+` +`}var wV,U8e=v(()=>{C_();wV=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 F8e from"node:process";var kV,j8e=v(()=>{U8e();kV=class{constructor(t=F8e.stdin,n=F8e.stdout){this._stdin=t,this._stdout=n,this._readBuffer=new wV,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=L8e(t);this._stdout.write(r)?n():this._stdout.once("drain",n)})}}});var q8e=w((JWr,Goe)=>{"use strict";var Phn=/at\s(?:.*\.)?plugin\s.*\n\s*(.*)/,Nhn=/(\w*(\.\w*)*)\..*/;Goe.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,H8e(r.stack)}};function H8e(e){let t=e.match(Phn);return t?t[1].split(/[/\\]/).slice(-1)[0].match(Nhn)[1]:"anonymous"}Goe.exports.extractPluginName=H8e});var z8e=w((XWr,B8e)=>{"use strict";B8e.exports=function(t){return t[0]==="@"&&(t=t.slice(1).replace("/","-")),t.replace(/-(.)/g,function(n,r){return r.toUpperCase()})}});var JC=w((QWr,IV)=>{"use strict";var Chn=q8e(),Mhn=z8e(),Dhn=0;function Voe(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=Chn(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=Mhn(t.name);return!n&&!e[r]&&(e[r]=e),e}IV.exports=Voe;IV.exports.default=Voe;IV.exports.fastifyPlugin=Voe});var NV=w(Sh=>{"use strict";var Woe=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}},Koe=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}},XC=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}},xV=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 G8e(e){return`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}-${e.getDate().toString().padStart(2,"0")}`}var Yoe=class{constructor(t,n,r){this.cacheId=t,this.statisticTtlInHours=n,this.collectionStart=new Date,this.currentTimeStamp=G8e(this.collectionStart),this.records=r||new xV,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=G8e(this.collectionStart),this.records.initForCache(this.cacheId,this.currentTimeStamp))}},OV=class extends XC{constructor(t,n,r,i,s){if(super(t||1e3,n||0),!r)throw new Error("Cache id is mandatory");this.hitStatistics=new Yoe(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()}},PV=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=PV;Sh.FifoMap=Woe;Sh.FifoObject=PV;Sh.HitStatisticsRecord=xV;Sh.Lru=XC;Sh.LruHitStatistics=OV;Sh.LruMap=Koe;Sh.LruObject=XC;Sh.LruObjectHitStatistics=OV});var W8e=w((e4r,QC)=>{"use strict";var{FifoMap:Lhn}=NV(),Uhn=/^[!#$%&'*+\-.^\w`|~]+$/u;function Fhn(e){if(Uhn.test(e)===!1)throw new TypeError("Fieldname contains invalid characters.")}function V8e(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 jhn=JC(),{addAccessControlRequestHeadersToVaryHeader:Hhn,addOriginToVaryHeader:qhn}=W8e(),Xoe={origin:"*",methods:"GET,HEAD,POST",hook:"onRequest",preflightContinue:!1,optionsSuccessStatus:204,credentials:!1,exposedHeaders:null,allowedHeaders:null,maxAge:null,preflight:!0,strictPreflight:!0},Bhn=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend"],Joe=["preSerialization","preParsing","onSend"];function Z8e(e,t){Bhn.indexOf(e)===-1&&t(new TypeError("@fastify/cors: Invalid hook option provided."))}function zhn(e,t,n){e.decorateRequest("corsPreflightEnabled",!1);let r=!0,i;if(typeof t=="function")K8e(t,e,{hook:Xoe.hook},n);else if(t.delegator){let{delegator:s,...o}=t;K8e(s,e,o,n)}else{let s=CV(t);Z8e(s.hook,n),Joe.indexOf(s.hook)!==-1?e.addHook(s.hook,function(a,c,u,l){$C(e,s,a,c,l)}):e.addHook(s.hook,function(a,c,u){$C(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 K8e(e,t,n,r){let i=n?.hook||Xoe.hook;Z8e(i,r),e.length===2?Joe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){Y8e(e,t,o,a,u)}):t.addHook(i,function(o,a,c){Y8e(e,t,o,a,c)}):Joe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){let l=e(o);if(l&&typeof l.then=="function"){l.then(d=>$C(t,CV(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=>$C(t,CV(l,!0),o,a,c)).catch(c);return}c(new Error("Invalid CORS origin option"))})}function Y8e(e,t,n,r,i){e(n,(s,o)=>{s?i(s):$C(t,CV(o,!0),n,r,i)})}function CV(e,t){let n={...Xoe,...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 $C(e,t,n,r,i){let s={...t,...n.routeOptions.config?.cors};(typeof s.origin!="string"&&s.origin!==!1||s.dynamic)&&qhn(r),(typeof s.origin=="function"?Whn(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(Ghn(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,Vhn(n,r,s),!s.preflightContinue){r.code(s.optionsSuccessStatus).header("Content-Length","0").send();return}}return i()})}function Ghn(e,t,n,r){let i=Khn(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 Vhn(e,t,n){if(t.header("Access-Control-Allow-Methods",Array.isArray(n.methods)?n.methods.join(", "):n.methods),n.allowedHeaders===null){Hhn(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 Whn(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 Khn(e,t){return typeof t=="string"?t:J8e(e,t)?e:!1}function J8e(e,t){if(Array.isArray(t)){for(let n=0;n{var Yhn=/^(-?(?:\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?)?)?$/,DV=1e3,LV=DV*60,UV=LV*60,tM=UV*24,$oe=tM*365.25;function Zhn(e){var t,n=e.toLowerCase().match(Yhn);if(n!=null&&(t=parseFloat(n[1])))return n[3]!=null?t*DV:n[4]!=null?t*LV:n[5]!=null?t*UV:n[6]!=null?t*tM:n[7]!=null?t*tM*7:n[8]!=null?t*$oe:t}function eM(e,t,n,r){var i=(e|0)===e?e:~~(e+.5);return t+i+(r?" "+n+(i!=1?"s":""):n[0])}function Jhn(e,t){var n=e<0?"-":"",r=e<0?-e:e;return r{"use strict";var{LruMap:Xhn}=NV();function FV(e,t,n=5e3){this.continueExceeding=e,this.exponentialBackoff=t,this.lru=new Xhn(n)}FV.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)};FV.prototype.child=function(e){return new FV(e.continueExceeding,e.exponentialBackoff,e.cache)};$8e.exports=FV});var n7e=w((i4r,t7e)=>{"use strict";var Qhn=` -- Key to operate on local key = KEYS[1] -- Time window for the TTL @@ -100,17 +100,17 @@ Mongoose Error Code: ${t.code}`:""}`})}function Ste(e,t,n,r=void 0){n&&(0,hN.saf end return {current, timeWindow} -`;function jV(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:Xhn})}jV.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]})})};jV.prototype.child=function(e){return new jV(e.continueExceeding,e.exponentialBackoff,this.redis,`${this.key}${e.routeInfo.method}${e.routeInfo.url}-`)};$8e.exports=jV});var u7e=w((i4r,HV)=>{"use strict";var Qhn=JC(),{parse:r7e,format:$hn}=J8e(),emn=Q8e(),tmn=e7e(),i7e=1e3,s7e=6e4,nmn="onRequest",rmn={rateLimit:"x-ratelimit-limit",rateRemaining:"x-ratelimit-remaining",rateReset:"x-ratelimit-reset",retryAfter:"retry-after"},imn={rateLimit:"ratelimit-limit",rateRemaining:"ratelimit-remaining",rateReset:"ratelimit-reset",retryAfter:"retry-after"},tae=()=>{},smn=e=>e.ip,omn=(e,t)=>{let n=new Error(`Rate limit exceeded, retry in ${t.after}`);return n.statusCode=t.statusCode,n};async function nae(e,t){let n={global:typeof t.global=="boolean"?t.global:!0};typeof t.enableDraftSpec=="boolean"&&t.enableDraftSpec?(n.enableDraftSpec=!0,n.labels=imn):(n.enableDraftSpec=!1,n.labels=rmn),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=i7e,Number.isFinite(t.timeWindow)&&t.timeWindow>=0?n.timeWindow=Math.trunc(t.timeWindow):typeof t.timeWindow=="string"?n.timeWindow=r7e(t.timeWindow):typeof t.timeWindow=="function"?n.timeWindow=t.timeWindow:n.timeWindow=s7e,n.hook=t.hook||nmn,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:tae,n.onExceeding=typeof t.onExceeding=="function"?t.onExceeding:tae,n.onExceeded=typeof t.onExceeded=="function"?t.onExceeded:tae,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:smn,typeof t.errorResponseBuilder=="function"?(n.errorResponseBuilder=t.errorResponseBuilder,n.isCustomErrorMessage=!0):(n.errorResponseBuilder=omn,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 tmn(n.continueExceeding,n.exponentialBackoff,t.redis,t.nameSpace):r.store=new emn(n.continueExceeding,n.exponentialBackoff,t.cache);e.decorateRequest(r.rateLimitRan,!1),e.hasDecorator("createRateLimit")||e.decorate("createRateLimit",i=>{let s=t7e(r,n,i);return o=>a7e.apply(this,s.concat(o))}),e.hasDecorator("rateLimit")||e.decorate("rateLimit",i=>{let s=t7e(r,n,i);return c7e(...s)}),e.addHook("onRoute",i=>{if(i.config?.rateLimit!=null){if(typeof i.config.rateLimit=="object"){let s=Object.create(r),o=o7e(n,i.config.rateLimit,{routeInfo:i});s.store=r.store.child(o),n7e(s,o,i)}else if(i.config.rateLimit!==!1)throw new Error("Unknown value for route rate-limit configuration")}else n.global&&n7e(r,n,i)})}function o7e(...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=r7e(t.timeWindow):typeof t.timeWindow!="function"&&(t.timeWindow=s7e),Number.isFinite(t.max)&&t.max>=0?t.max=Math.trunc(t.max):typeof t.max!="function"&&(t.max=i7e),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 t7e(e,t,n){if(typeof n=="object"){let r=Object.create(e),i=o7e(t,n,{routeInfo:{}});return r.store=r.store.child(i),[r,i]}return[e,t]}function n7e(e,t,n){let r=t.hook,i=c7e(e,t);Array.isArray(n[r])?n[r].push(i):typeof n[r]=="function"?n[r]=[n[r],i]:n[r]=[i]}async function a7e(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 c7e(e,t){let{rateLimitRan:n}=e;return async(r,i)=>{if(r[n])return;r[n]=!0;let s=await a7e(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:$hn(l*1e3,!0)};throw f&&(p.statusCode=403,p.ban=!0,t.onBanReach(r,o)),t.errorResponseBuilder(r,p)}}HV.exports=Qhn(nae,{fastify:"5.x",name:"@fastify/rate-limit"});HV.exports.default=nae;HV.exports.fastifyRateLimit=nae});var Xm=w((s4r,f7e)=>{"use strict";var l7e=["nodebuffer","arraybuffer","fragments"],d7e=typeof Blob<"u";d7e&&l7e.push("blob");f7e.exports={BINARY_TYPES:l7e,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:d7e,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var nM=w((o4r,qV)=>{"use strict";var{EMPTY_BUFFER:amn}=Xm(),rae=Buffer[Symbol.species];function cmn(e,t){if(e.length===0)return amn;if(e.length===1)return e[0];let n=Buffer.allocUnsafe(t),r=0;for(let i=0;i{"use strict";var m7e=Symbol("kDone"),sae=Symbol("kRun"),oae=class{constructor(t){this[m7e]=()=>{this.pending--,this[sae]()},this.concurrency=t||1/0,this.jobs=[],this.pending=0}add(t){this.jobs.push(t),this[sae]()}[sae](){if(this.pending!==this.concurrency&&this.jobs.length){let t=this.jobs.shift();this.pending++,t(this[m7e])}}};g7e.exports=oae});var _k=w((c4r,_7e)=>{"use strict";var rM=Y("zlib"),S7e=nM(),lmn=y7e(),{kStatusCode:b7e}=Xm(),dmn=Buffer[Symbol.species],fmn=Buffer.from([0,0,255,255]),zV=Symbol("permessage-deflate"),Qm=Symbol("total-length"),bk=Symbol("callback"),qS=Symbol("buffers"),Ek=Symbol("error"),BV,aae=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,!BV){let n=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;BV=new lmn(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[bk];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){BV.add(i=>{this._decompress(t,n,(s,o)=>{i(),r(s,o)})})}compress(t,n,r){BV.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"?rM.Z_DEFAULT_WINDOWBITS:this.params[s];this._inflate=rM.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[zV]=this,this._inflate[Qm]=0,this._inflate[qS]=[],this._inflate.on("error",hmn),this._inflate.on("data",E7e)}this._inflate[bk]=r,this._inflate.write(t),n&&this._inflate.write(fmn),this._inflate.flush(()=>{let s=this._inflate[Ek];if(s){this._inflate.close(),this._inflate=null,r(s);return}let o=S7e.concat(this._inflate[qS],this._inflate[Qm]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Qm]=0,this._inflate[qS]=[],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"?rM.Z_DEFAULT_WINDOWBITS:this.params[s];this._deflate=rM.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[Qm]=0,this._deflate[qS]=[],this._deflate.on("data",pmn)}this._deflate[bk]=r,this._deflate.write(t),this._deflate.flush(rM.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let s=S7e.concat(this._deflate[qS],this._deflate[Qm]);n&&(s=new dmn(s.buffer,s.byteOffset,s.length-4)),this._deflate[bk]=null,this._deflate[Qm]=0,this._deflate[qS]=[],n&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),r(null,s)})}};_7e.exports=aae;function pmn(e){this[qS].push(e),this[Qm]+=e.length}function E7e(e){if(this[Qm]+=e.length,this[zV]._maxPayload<1||this[Qm]<=this[zV]._maxPayload){this[qS].push(e);return}this[Ek]=new RangeError("Max payload size exceeded"),this[Ek].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[Ek][b7e]=1009,this.removeListener("data",E7e),this.reset()}function hmn(e){if(this[zV]._inflate=null,this[Ek]){this[bk](this[Ek]);return}e[b7e]=1007,this[bk](e)}});var Tk=w((u4r,GV)=>{"use strict";var{isUtf8:T7e}=Y("buffer"),{hasBlob:mmn}=Xm(),gmn=[0,0,0,0,0,0,0,0,0,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 ymn(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function cae(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 Smn(e){return mmn&&typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}GV.exports={isBlob:Smn,isValidStatusCode:ymn,isValidUTF8:cae,tokenChars:gmn};if(T7e)GV.exports.isValidUTF8=function(e){return e.length<24?cae(e):T7e(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let e=Y("utf-8-validate");GV.exports.isValidUTF8=function(t){return t.length<32?cae(t):e(t)}}catch{}});var pae=w((l4r,x7e)=>{"use strict";var{Writable:bmn}=Y("stream"),v7e=_k(),{BINARY_TYPES:Emn,EMPTY_BUFFER:R7e,kStatusCode:_mn,kWebSocket:Tmn}=Xm(),{concat:uae,toArrayBuffer:vmn,unmask:Rmn}=nM(),{isValidStatusCode:Amn,isValidUTF8:A7e}=Tk(),VV=Buffer[Symbol.species],Td=0,w7e=1,k7e=2,I7e=3,lae=4,dae=5,WV=6,fae=class extends bmn{constructor(t={}){super(),this._allowSynchronousEvents=t.allowSynchronousEvents!==void 0?t.allowSynchronousEvents:!0,this._binaryType=t.binaryType||Emn[0],this._extensions=t.extensions||{},this._isServer=!!t.isServer,this._maxPayload=t.maxPayload|0,this._skipUTF8Validation=!!t.skipUTF8Validation,this[Tmn]=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=Td}_write(t,n,r){if(this._opcode===8&&this._state==Td)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 VV(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 Td:this.getInfo(t);break;case w7e:this.getPayloadLength16(t);break;case k7e:this.getPayloadLength64(t);break;case I7e:this.getMask();break;case lae:this.getData(t);break;case dae:case WV: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[v7e.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=w7e:this._payloadLength===127?this._state=k7e: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=I7e:this._state=lae}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=lae}getData(t){let n=R7e;if(this._payloadLength){if(this._bufferedBytes7){this.controlMessage(n,t);return}if(this._compressed){this._state=dae,this.decompress(n,t);return}n.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(n)),this.dataMessage(t)}decompress(t,n){this._extensions[v7e.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===Td&&this.startLoop(n)})}dataMessage(t){if(!this._fin){this._state=Td;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=uae(r,n):this._binaryType==="arraybuffer"?i=vmn(uae(r,n)):this._binaryType==="blob"?i=new Blob(r):i=r,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=Td):(this._state=WV,setImmediate(()=>{this.emit("message",i,!0),this._state=Td,this.startLoop(t)}))}else{let i=uae(r,n);if(!this._skipUTF8Validation&&!A7e(i)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(s);return}this._state===dae||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=Td):(this._state=WV,setImmediate(()=>{this.emit("message",i,!1),this._state=Td,this.startLoop(t)}))}}controlMessage(t,n){if(this._opcode===8){if(t.length===0)this._loop=!1,this.emit("conclude",1005,R7e),this.end();else{let r=t.readUInt16BE(0);if(!Amn(r)){let s=this.createError(RangeError,`invalid status code ${r}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");n(s);return}let i=new VV(t.buffer,t.byteOffset+2,t.length-2);if(!this._skipUTF8Validation&&!A7e(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=Td;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",t),this._state=Td):(this._state=WV,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",t),this._state=Td,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[_mn]=i,o}};x7e.exports=fae});var gae=w((f4r,N7e)=>{"use strict";var{Duplex:d4r}=Y("stream"),{randomFillSync:wmn}=Y("crypto"),O7e=_k(),{EMPTY_BUFFER:kmn,kWebSocket:Imn,NOOP:xmn}=Xm(),{isBlob:vk,isValidStatusCode:Omn}=Tk(),{mask:P7e,toBuffer:W_}=nM(),vd=Symbol("kByteLength"),Pmn=Buffer.alloc(4),KV=8*1024,K_,Rk=KV,xf=0,Nmn=1,Cmn=2,hae=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=xmn,this[Imn]=void 0}static frame(t,n){let r,i=!1,s=2,o=!1;n.mask&&(r=n.maskBuffer||Pmn,n.generateMask?n.generateMask(r):(Rk===KV&&(K_===void 0&&(K_=Buffer.alloc(KV)),wmn(K_,0,KV),Rk=0),r[0]=K_[Rk++],r[1]=K_[Rk++],r[2]=K_[Rk++],r[3]=K_[Rk++]),o=(r[0]|r[1]|r[2]|r[3])===0,s=6);let a;typeof t=="string"?(!n.mask||o)&&n[vd]!==void 0?a=n[vd]:(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?(P7e(t,r,u,s,a),[u]):(P7e(t,r,t,0,a),[u,t])):[u,t]}close(t,n,r,i){let s;if(t===void 0)s=kmn;else{if(typeof t!="number"||!Omn(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={[vd]: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):vk(t)?(i=t.size,s=!1):(t=W_(t),i=t.length,s=W_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[vd]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:s,rsv1:!1};vk(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):vk(t)?(i=t.size,s=!1):(t=W_(t),i=t.length,s=W_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[vd]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:s,rsv1:!1};vk(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[O7e.extensionName],s=n.binary?2:1,o=n.compress,a,c;typeof t=="string"?(a=Buffer.byteLength(t),c=!1):vk(t)?(a=t.size,c=!1):(t=W_(t),a=t.length,c=W_.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={[vd]:a,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:s,readOnly:c,rsv1:o};vk(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[vd],this._state=Cmn,t.arrayBuffer().then(s=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick(mae,this,a,i);return}this._bufferedBytes-=r[vd];let o=W_(s);n?this.dispatch(o,n,r,i):(this._state=xf,this.sendFrame(e.frame(o,r),i),this.dequeue())}).catch(s=>{process.nextTick(Mmn,this,s,i)})}dispatch(t,n,r,i){if(!n){this.sendFrame(e.frame(t,r),i);return}let s=this._extensions[O7e.extensionName];this._bufferedBytes+=r[vd],this._state=Nmn,s.compress(t,r.fin,(o,a)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");mae(this,c,i);return}this._bufferedBytes-=r[vd],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][vd],Reflect.apply(t[0],this,t.slice(1))}}enqueue(t){this._bufferedBytes+=t[3][vd],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)}};N7e.exports=hae;function mae(e,t,n){typeof n=="function"&&n(t);for(let r=0;r{"use strict";var{kForOnEventAttribute:iM,kListener:yae}=Xm(),C7e=Symbol("kCode"),M7e=Symbol("kData"),D7e=Symbol("kError"),L7e=Symbol("kMessage"),U7e=Symbol("kReason"),Ak=Symbol("kTarget"),F7e=Symbol("kType"),j7e=Symbol("kWasClean"),$m=class{constructor(t){this[Ak]=null,this[F7e]=t}get target(){return this[Ak]}get type(){return this[F7e]}};Object.defineProperty($m.prototype,"target",{enumerable:!0});Object.defineProperty($m.prototype,"type",{enumerable:!0});var Y_=class extends $m{constructor(t,n={}){super(t),this[C7e]=n.code===void 0?0:n.code,this[U7e]=n.reason===void 0?"":n.reason,this[j7e]=n.wasClean===void 0?!1:n.wasClean}get code(){return this[C7e]}get reason(){return this[U7e]}get wasClean(){return this[j7e]}};Object.defineProperty(Y_.prototype,"code",{enumerable:!0});Object.defineProperty(Y_.prototype,"reason",{enumerable:!0});Object.defineProperty(Y_.prototype,"wasClean",{enumerable:!0});var wk=class extends $m{constructor(t,n={}){super(t),this[D7e]=n.error===void 0?null:n.error,this[L7e]=n.message===void 0?"":n.message}get error(){return this[D7e]}get message(){return this[L7e]}};Object.defineProperty(wk.prototype,"error",{enumerable:!0});Object.defineProperty(wk.prototype,"message",{enumerable:!0});var sM=class extends $m{constructor(t,n={}){super(t),this[M7e]=n.data===void 0?null:n.data}get data(){return this[M7e]}};Object.defineProperty(sM.prototype,"data",{enumerable:!0});var Dmn={addEventListener(e,t,n={}){for(let i of this.listeners(e))if(!n[iM]&&i[yae]===t&&!i[iM])return;let r;if(e==="message")r=function(s,o){let a=new sM("message",{data:o?s:s.toString()});a[Ak]=this,YV(t,this,a)};else if(e==="close")r=function(s,o){let a=new Y_("close",{code:s,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[Ak]=this,YV(t,this,a)};else if(e==="error")r=function(s){let o=new wk("error",{error:s,message:s.message});o[Ak]=this,YV(t,this,o)};else if(e==="open")r=function(){let s=new $m("open");s[Ak]=this,YV(t,this,s)};else return;r[iM]=!!n[iM],r[yae]=t,n.once?this.once(e,r):this.on(e,r)},removeEventListener(e,t){for(let n of this.listeners(e))if(n[yae]===t&&!n[iM]){this.removeListener(e,n);break}}};H7e.exports={CloseEvent:Y_,ErrorEvent:wk,Event:$m,EventTarget:Dmn,MessageEvent:sM};function YV(e,t,n){typeof e=="object"&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}});var ZV=w((h4r,B7e)=>{"use strict";var{tokenChars:oM}=Tk();function bh(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}function Lmn(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(", ")}B7e.exports={format:Umn,parse:Lmn}});var $V=w((y4r,eJe)=>{"use strict";var Fmn=Y("events"),jmn=Y("https"),Hmn=Y("http"),V7e=Y("net"),qmn=Y("tls"),{randomBytes:Bmn,createHash:zmn}=Y("crypto"),{Duplex:m4r,Readable:g4r}=Y("stream"),{URL:Sae}=Y("url"),BS=_k(),Gmn=pae(),Vmn=gae(),{isBlob:Wmn}=Tk(),{BINARY_TYPES:z7e,CLOSE_TIMEOUT:Kmn,EMPTY_BUFFER:JV,GUID:Ymn,kForOnEventAttribute:bae,kListener:Zmn,kStatusCode:Jmn,kWebSocket:Wo,NOOP:W7e}=Xm(),{EventTarget:{addEventListener:Xmn,removeEventListener:Qmn}}=q7e(),{format:$mn,parse:egn}=ZV(),{toBuffer:tgn}=nM(),K7e=Symbol("kAborted"),Eae=[8,13],eg=["CONNECTING","OPEN","CLOSING","CLOSED"],ngn=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,Fi=class e extends Fmn{constructor(t,n,r){super(),this._binaryType=z7e[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=JV,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]),Y7e(this,t,n,r)):(this._autoPong=r.autoPong,this._closeTimeout=r.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(t){z7e.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 Gmn({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation}),s=new Vmn(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",sgn),i.on("drain",ogn),i.on("error",agn),i.on("message",cgn),i.on("ping",ugn),i.on("pong",lgn),s.onerror=dgn,t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on("close",X7e),t.on("data",QV),t.on("end",Q7e),t.on("error",$7e),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[BS.extensionName]&&this._extensions[BS.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())}),J7e(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){_ae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.ping(t||JV,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){_ae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.pong(t||JV,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){_ae(this,t,r);return}let i={binary:typeof t!="string",mask:!this._isServer,compress:!0,fin:!0,...n};this._extensions[BS.extensionName]||(i.compress=!1),this._sender.send(t||JV,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:eg.indexOf("CONNECTING")});Object.defineProperty(Fi.prototype,"CONNECTING",{enumerable:!0,value:eg.indexOf("CONNECTING")});Object.defineProperty(Fi,"OPEN",{enumerable:!0,value:eg.indexOf("OPEN")});Object.defineProperty(Fi.prototype,"OPEN",{enumerable:!0,value:eg.indexOf("OPEN")});Object.defineProperty(Fi,"CLOSING",{enumerable:!0,value:eg.indexOf("CLOSING")});Object.defineProperty(Fi.prototype,"CLOSING",{enumerable:!0,value:eg.indexOf("CLOSING")});Object.defineProperty(Fi,"CLOSED",{enumerable:!0,value:eg.indexOf("CLOSED")});Object.defineProperty(Fi.prototype,"CLOSED",{enumerable:!0,value:eg.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[bae])return t[Zmn];return null},set(t){for(let n of this.listeners(e))if(n[bae]){this.removeListener(e,n);break}typeof t=="function"&&this.addEventListener(e,t,{[bae]:!0})}})});Fi.prototype.addEventListener=Xmn;Fi.prototype.removeEventListener=Qmn;eJe.exports=Fi;function Y7e(e,t,n,r){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:Kmn,protocolVersion:Eae[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,!Eae.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${Eae.join(", ")})`);let s;if(t instanceof Sae)s=t;else try{s=new Sae(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;XV(e,m);return}let u=o?443:80,l=Bmn(16).toString("base64"),d=o?jmn.request:Hmn.request,f=new Set,p;if(i.createConnection=i.createConnection||(o?ign:rgn),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 BS({...i.perMessageDeflate,isServer:!1,maxPayload:i.maxPayload}),i.headers["Sec-WebSocket-Extensions"]=$mn({[BS.extensionName]:p.offer()})),n.length){for(let m of n){if(typeof m!="string"||!ngn.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[K7e]||(h=e._req=null,XV(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 Sae(g,t)}catch{let E=new SyntaxError(`Invalid URL: ${g}`);XV(e,E);return}Y7e(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=zmn("sha1").update(l+Ymn).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=egn(T)}catch{bl(e,g,"Invalid Sec-WebSocket-Extensions header");return}let A=Object.keys(R);if(A.length!==1||A[0]!==BS.extensionName){bl(e,g,"Server indicated an extension that was not requested");return}try{p.accept(R[BS.extensionName])}catch{bl(e,g,"Invalid Sec-WebSocket-Extensions header");return}e._extensions[BS.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 XV(e,t){e._readyState=Fi.CLOSING,e._errorEmitted=!0,e.emit("error",t),e.emitClose()}function rgn(e){return e.path=e.socketPath,V7e.connect(e)}function ign(e){return e.path=void 0,!e.servername&&e.servername!==""&&(e.servername=V7e.isIP(e.host)?"":e.host),qmn.connect(e)}function bl(e,t,n){e._readyState=Fi.CLOSING;let r=new Error(n);Error.captureStackTrace(r,bl),t.setHeader?(t[K7e]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(XV,e,r)):(t.destroy(r),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function _ae(e,t,n){if(t){let r=Wmn(t)?t.size:tgn(t).length;e._socket?e._sender._bufferedBytes+=r:e._bufferedAmount+=r}if(n){let r=new Error(`WebSocket is not open: readyState ${e.readyState} (${eg[e.readyState]})`);process.nextTick(n,r)}}function sgn(e,t){let n=this[Wo];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,n._socket[Wo]!==void 0&&(n._socket.removeListener("data",QV),process.nextTick(Z7e,n._socket),e===1005?n.close():n.close(e,t))}function ogn(){let e=this[Wo];e.isPaused||e._socket.resume()}function agn(e){let t=this[Wo];t._socket[Wo]!==void 0&&(t._socket.removeListener("data",QV),process.nextTick(Z7e,t._socket),t.close(e[Jmn])),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e))}function G7e(){this[Wo].emitClose()}function cgn(e,t){this[Wo].emit("message",e,t)}function ugn(e){let t=this[Wo];t._autoPong&&t.pong(e,!this._isServer,W7e),t.emit("ping",e)}function lgn(e){this[Wo].emit("pong",e)}function Z7e(e){e.resume()}function dgn(e){let t=this[Wo];t.readyState!==Fi.CLOSED&&(t.readyState===Fi.OPEN&&(t._readyState=Fi.CLOSING,J7e(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e)))}function J7e(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function X7e(){let e=this[Wo];if(this.removeListener("close",X7e),this.removeListener("data",QV),this.removeListener("end",Q7e),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",G7e),e._receiver.on("finish",G7e))}function QV(e){this[Wo]._receiver.write(e)||this.pause()}function Q7e(){let e=this[Wo];e._readyState=Fi.CLOSING,e._receiver.end(),this.end()}function $7e(){let e=this[Wo];this.removeListener("error",$7e),this.on("error",W7e),e&&(e._readyState=Fi.CLOSING,this.destroy())}});var iJe=w((b4r,rJe)=>{"use strict";var S4r=$V(),{Duplex:fgn}=Y("stream");function tJe(e){e.emit("close")}function pgn(){!this.destroyed&&this._writableState.finished&&this.destroy()}function nJe(e){this.removeListener("error",nJe),this.destroy(),this.listenerCount("error")===0&&this.emit("error",e)}function hgn(e,t){let n=!0,r=new fgn({...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(tJe,r);return}let o=!1;e.once("error",function(c){o=!0,s(c)}),e.once("close",function(){o||s(i),process.nextTick(tJe,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",pgn),r.on("error",nJe),r}rJe.exports=hgn});var Tae=w((E4r,sJe)=>{"use strict";var{tokenChars:mgn}=Tk();function ggn(e){let t=new Set,n=-1,r=-1,i=0;for(i;i{"use strict";var ygn=Y("events"),eW=Y("http"),{Duplex:_4r}=Y("stream"),{createHash:Sgn}=Y("crypto"),oJe=ZV(),Z_=_k(),bgn=Tae(),Egn=$V(),{CLOSE_TIMEOUT:_gn,GUID:Tgn,kWebSocket:vgn}=Xm(),Rgn=/^[+/0-9A-Za-z]{22}==$/,aJe=0,cJe=1,lJe=2,vae=class extends ygn{constructor(t,n){if(super(),t={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:_gn,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:Egn,...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=eW.createServer((r,i)=>{let s=eW.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=Agn(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=aJe}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===lJe){t&&this.once("close",()=>{t(new Error("The server is not running"))}),process.nextTick(aM,this);return}if(t&&this.once("close",t),this._state!==cJe)if(this._state=cJe,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(aM,this):process.nextTick(aM,this);else{let n=this._server;this._removeListeners(),this._removeListeners=this._server=null,n.close(()=>{aM(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",uJe);let s=t.headers["sec-websocket-key"],o=t.headers.upgrade,a=+t.headers["sec-websocket-version"];if(t.method!=="GET"){J_(this,t,n,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){J_(this,t,n,400,"Invalid Upgrade header");return}if(s===void 0||!Rgn.test(s)){J_(this,t,n,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==13&&a!==8){J_(this,t,n,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(t)){cM(n,400);return}let c=t.headers["sec-websocket-protocol"],u=new Set;if(c!==void 0)try{u=bgn.parse(c)}catch{J_(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 Z_({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let p=oJe.parse(l);p[Z_.extensionName]&&(f.accept(p[Z_.extensionName]),d[Z_.extensionName]=f)}catch{J_(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 cM(n,h||401,m,g);this.completeUpgrade(d,s,u,t,n,r,i)});return}if(!this.options.verifyClient(f))return cM(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[vgn])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>aJe)return cM(s,503);let u=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${Sgn("sha1").update(n+Tgn).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[Z_.extensionName]){let d=t[Z_.extensionName].params,f=oJe.format({[Z_.extensionName]:[d]});u.push(`Sec-WebSocket-Extensions: ${f}`),l._extensions=t}this.emit("headers",u,i),s.write(u.concat(`\r +`;function jV(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:Qhn})}jV.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]})})};jV.prototype.child=function(e){return new jV(e.continueExceeding,e.exponentialBackoff,this.redis,`${this.key}${e.routeInfo.method}${e.routeInfo.url}-`)};t7e.exports=jV});var d7e=w((s4r,HV)=>{"use strict";var $hn=JC(),{parse:s7e,format:emn}=Q8e(),tmn=e7e(),nmn=n7e(),o7e=1e3,a7e=6e4,rmn="onRequest",imn={rateLimit:"x-ratelimit-limit",rateRemaining:"x-ratelimit-remaining",rateReset:"x-ratelimit-reset",retryAfter:"retry-after"},smn={rateLimit:"ratelimit-limit",rateRemaining:"ratelimit-remaining",rateReset:"ratelimit-reset",retryAfter:"retry-after"},tae=()=>{},omn=e=>e.ip,amn=(e,t)=>{let n=new Error(`Rate limit exceeded, retry in ${t.after}`);return n.statusCode=t.statusCode,n};async function nae(e,t){let n={global:typeof t.global=="boolean"?t.global:!0};typeof t.enableDraftSpec=="boolean"&&t.enableDraftSpec?(n.enableDraftSpec=!0,n.labels=smn):(n.enableDraftSpec=!1,n.labels=imn),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=o7e,Number.isFinite(t.timeWindow)&&t.timeWindow>=0?n.timeWindow=Math.trunc(t.timeWindow):typeof t.timeWindow=="string"?n.timeWindow=s7e(t.timeWindow):typeof t.timeWindow=="function"?n.timeWindow=t.timeWindow:n.timeWindow=a7e,n.hook=t.hook||rmn,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:tae,n.onExceeding=typeof t.onExceeding=="function"?t.onExceeding:tae,n.onExceeded=typeof t.onExceeded=="function"?t.onExceeded:tae,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:omn,typeof t.errorResponseBuilder=="function"?(n.errorResponseBuilder=t.errorResponseBuilder,n.isCustomErrorMessage=!0):(n.errorResponseBuilder=amn,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 nmn(n.continueExceeding,n.exponentialBackoff,t.redis,t.nameSpace):r.store=new tmn(n.continueExceeding,n.exponentialBackoff,t.cache);e.decorateRequest(r.rateLimitRan,!1),e.hasDecorator("createRateLimit")||e.decorate("createRateLimit",i=>{let s=r7e(r,n,i);return o=>u7e.apply(this,s.concat(o))}),e.hasDecorator("rateLimit")||e.decorate("rateLimit",i=>{let s=r7e(r,n,i);return l7e(...s)}),e.addHook("onRoute",i=>{if(i.config?.rateLimit!=null){if(typeof i.config.rateLimit=="object"){let s=Object.create(r),o=c7e(n,i.config.rateLimit,{routeInfo:i});s.store=r.store.child(o),i7e(s,o,i)}else if(i.config.rateLimit!==!1)throw new Error("Unknown value for route rate-limit configuration")}else n.global&&i7e(r,n,i)})}function c7e(...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=s7e(t.timeWindow):typeof t.timeWindow!="function"&&(t.timeWindow=a7e),Number.isFinite(t.max)&&t.max>=0?t.max=Math.trunc(t.max):typeof t.max!="function"&&(t.max=o7e),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 r7e(e,t,n){if(typeof n=="object"){let r=Object.create(e),i=c7e(t,n,{routeInfo:{}});return r.store=r.store.child(i),[r,i]}return[e,t]}function i7e(e,t,n){let r=t.hook,i=l7e(e,t);Array.isArray(n[r])?n[r].push(i):typeof n[r]=="function"?n[r]=[n[r],i]:n[r]=[i]}async function u7e(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 l7e(e,t){let{rateLimitRan:n}=e;return async(r,i)=>{if(r[n])return;r[n]=!0;let s=await u7e(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:emn(l*1e3,!0)};throw f&&(p.statusCode=403,p.ban=!0,t.onBanReach(r,o)),t.errorResponseBuilder(r,p)}}HV.exports=$hn(nae,{fastify:"5.x",name:"@fastify/rate-limit"});HV.exports.default=nae;HV.exports.fastifyRateLimit=nae});var Xm=w((o4r,h7e)=>{"use strict";var f7e=["nodebuffer","arraybuffer","fragments"],p7e=typeof Blob<"u";p7e&&f7e.push("blob");h7e.exports={BINARY_TYPES:f7e,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:p7e,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var nM=w((a4r,qV)=>{"use strict";var{EMPTY_BUFFER:cmn}=Xm(),rae=Buffer[Symbol.species];function umn(e,t){if(e.length===0)return cmn;if(e.length===1)return e[0];let n=Buffer.allocUnsafe(t),r=0;for(let i=0;i{"use strict";var y7e=Symbol("kDone"),sae=Symbol("kRun"),oae=class{constructor(t){this[y7e]=()=>{this.pending--,this[sae]()},this.concurrency=t||1/0,this.jobs=[],this.pending=0}add(t){this.jobs.push(t),this[sae]()}[sae](){if(this.pending!==this.concurrency&&this.jobs.length){let t=this.jobs.shift();this.pending++,t(this[y7e])}}};S7e.exports=oae});var _k=w((u4r,v7e)=>{"use strict";var rM=Y("zlib"),E7e=nM(),dmn=b7e(),{kStatusCode:_7e}=Xm(),fmn=Buffer[Symbol.species],pmn=Buffer.from([0,0,255,255]),zV=Symbol("permessage-deflate"),Qm=Symbol("total-length"),bk=Symbol("callback"),qS=Symbol("buffers"),Ek=Symbol("error"),BV,aae=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,!BV){let n=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;BV=new dmn(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[bk];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){BV.add(i=>{this._decompress(t,n,(s,o)=>{i(),r(s,o)})})}compress(t,n,r){BV.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"?rM.Z_DEFAULT_WINDOWBITS:this.params[s];this._inflate=rM.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[zV]=this,this._inflate[Qm]=0,this._inflate[qS]=[],this._inflate.on("error",mmn),this._inflate.on("data",T7e)}this._inflate[bk]=r,this._inflate.write(t),n&&this._inflate.write(pmn),this._inflate.flush(()=>{let s=this._inflate[Ek];if(s){this._inflate.close(),this._inflate=null,r(s);return}let o=E7e.concat(this._inflate[qS],this._inflate[Qm]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Qm]=0,this._inflate[qS]=[],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"?rM.Z_DEFAULT_WINDOWBITS:this.params[s];this._deflate=rM.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[Qm]=0,this._deflate[qS]=[],this._deflate.on("data",hmn)}this._deflate[bk]=r,this._deflate.write(t),this._deflate.flush(rM.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let s=E7e.concat(this._deflate[qS],this._deflate[Qm]);n&&(s=new fmn(s.buffer,s.byteOffset,s.length-4)),this._deflate[bk]=null,this._deflate[Qm]=0,this._deflate[qS]=[],n&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),r(null,s)})}};v7e.exports=aae;function hmn(e){this[qS].push(e),this[Qm]+=e.length}function T7e(e){if(this[Qm]+=e.length,this[zV]._maxPayload<1||this[Qm]<=this[zV]._maxPayload){this[qS].push(e);return}this[Ek]=new RangeError("Max payload size exceeded"),this[Ek].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[Ek][_7e]=1009,this.removeListener("data",T7e),this.reset()}function mmn(e){if(this[zV]._inflate=null,this[Ek]){this[bk](this[Ek]);return}e[_7e]=1007,this[bk](e)}});var Tk=w((l4r,GV)=>{"use strict";var{isUtf8:R7e}=Y("buffer"),{hasBlob:gmn}=Xm(),ymn=[0,0,0,0,0,0,0,0,0,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 Smn(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function cae(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 bmn(e){return gmn&&typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}GV.exports={isBlob:bmn,isValidStatusCode:Smn,isValidUTF8:cae,tokenChars:ymn};if(R7e)GV.exports.isValidUTF8=function(e){return e.length<24?cae(e):R7e(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let e=Y("utf-8-validate");GV.exports.isValidUTF8=function(t){return t.length<32?cae(t):e(t)}}catch{}});var pae=w((d4r,P7e)=>{"use strict";var{Writable:Emn}=Y("stream"),A7e=_k(),{BINARY_TYPES:_mn,EMPTY_BUFFER:w7e,kStatusCode:Tmn,kWebSocket:vmn}=Xm(),{concat:uae,toArrayBuffer:Rmn,unmask:Amn}=nM(),{isValidStatusCode:wmn,isValidUTF8:k7e}=Tk(),VV=Buffer[Symbol.species],Td=0,I7e=1,x7e=2,O7e=3,lae=4,dae=5,WV=6,fae=class extends Emn{constructor(t={}){super(),this._allowSynchronousEvents=t.allowSynchronousEvents!==void 0?t.allowSynchronousEvents:!0,this._binaryType=t.binaryType||_mn[0],this._extensions=t.extensions||{},this._isServer=!!t.isServer,this._maxPayload=t.maxPayload|0,this._skipUTF8Validation=!!t.skipUTF8Validation,this[vmn]=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=Td}_write(t,n,r){if(this._opcode===8&&this._state==Td)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 VV(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 Td:this.getInfo(t);break;case I7e:this.getPayloadLength16(t);break;case x7e:this.getPayloadLength64(t);break;case O7e:this.getMask();break;case lae:this.getData(t);break;case dae:case WV: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[A7e.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=I7e:this._payloadLength===127?this._state=x7e: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=O7e:this._state=lae}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=lae}getData(t){let n=w7e;if(this._payloadLength){if(this._bufferedBytes7){this.controlMessage(n,t);return}if(this._compressed){this._state=dae,this.decompress(n,t);return}n.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(n)),this.dataMessage(t)}decompress(t,n){this._extensions[A7e.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===Td&&this.startLoop(n)})}dataMessage(t){if(!this._fin){this._state=Td;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=uae(r,n):this._binaryType==="arraybuffer"?i=Rmn(uae(r,n)):this._binaryType==="blob"?i=new Blob(r):i=r,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=Td):(this._state=WV,setImmediate(()=>{this.emit("message",i,!0),this._state=Td,this.startLoop(t)}))}else{let i=uae(r,n);if(!this._skipUTF8Validation&&!k7e(i)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(s);return}this._state===dae||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=Td):(this._state=WV,setImmediate(()=>{this.emit("message",i,!1),this._state=Td,this.startLoop(t)}))}}controlMessage(t,n){if(this._opcode===8){if(t.length===0)this._loop=!1,this.emit("conclude",1005,w7e),this.end();else{let r=t.readUInt16BE(0);if(!wmn(r)){let s=this.createError(RangeError,`invalid status code ${r}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");n(s);return}let i=new VV(t.buffer,t.byteOffset+2,t.length-2);if(!this._skipUTF8Validation&&!k7e(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=Td;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",t),this._state=Td):(this._state=WV,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",t),this._state=Td,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[Tmn]=i,o}};P7e.exports=fae});var gae=w((p4r,M7e)=>{"use strict";var{Duplex:f4r}=Y("stream"),{randomFillSync:kmn}=Y("crypto"),N7e=_k(),{EMPTY_BUFFER:Imn,kWebSocket:xmn,NOOP:Omn}=Xm(),{isBlob:vk,isValidStatusCode:Pmn}=Tk(),{mask:C7e,toBuffer:W_}=nM(),vd=Symbol("kByteLength"),Nmn=Buffer.alloc(4),KV=8*1024,K_,Rk=KV,xf=0,Cmn=1,Mmn=2,hae=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=Omn,this[xmn]=void 0}static frame(t,n){let r,i=!1,s=2,o=!1;n.mask&&(r=n.maskBuffer||Nmn,n.generateMask?n.generateMask(r):(Rk===KV&&(K_===void 0&&(K_=Buffer.alloc(KV)),kmn(K_,0,KV),Rk=0),r[0]=K_[Rk++],r[1]=K_[Rk++],r[2]=K_[Rk++],r[3]=K_[Rk++]),o=(r[0]|r[1]|r[2]|r[3])===0,s=6);let a;typeof t=="string"?(!n.mask||o)&&n[vd]!==void 0?a=n[vd]:(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?(C7e(t,r,u,s,a),[u]):(C7e(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"||!Pmn(t))throw new TypeError("First argument must be a valid error code number");if(n===void 0||!n.length)s=Buffer.allocUnsafe(2),s.writeUInt16BE(t,0);else{let a=Buffer.byteLength(n);if(a>123)throw new RangeError("The message must not be greater than 123 bytes");s=Buffer.allocUnsafe(2+a),s.writeUInt16BE(t,0),typeof n=="string"?s.write(n,2):s.set(n,2)}}let o={[vd]: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):vk(t)?(i=t.size,s=!1):(t=W_(t),i=t.length,s=W_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[vd]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:s,rsv1:!1};vk(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):vk(t)?(i=t.size,s=!1):(t=W_(t),i=t.length,s=W_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[vd]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:s,rsv1:!1};vk(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[N7e.extensionName],s=n.binary?2:1,o=n.compress,a,c;typeof t=="string"?(a=Buffer.byteLength(t),c=!1):vk(t)?(a=t.size,c=!1):(t=W_(t),a=t.length,c=W_.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={[vd]:a,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:s,readOnly:c,rsv1:o};vk(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[vd],this._state=Mmn,t.arrayBuffer().then(s=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick(mae,this,a,i);return}this._bufferedBytes-=r[vd];let o=W_(s);n?this.dispatch(o,n,r,i):(this._state=xf,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[N7e.extensionName];this._bufferedBytes+=r[vd],this._state=Cmn,s.compress(t,r.fin,(o,a)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");mae(this,c,i);return}this._bufferedBytes-=r[vd],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][vd],Reflect.apply(t[0],this,t.slice(1))}}enqueue(t){this._bufferedBytes+=t[3][vd],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)}};M7e.exports=hae;function mae(e,t,n){typeof n=="function"&&n(t);for(let r=0;r{"use strict";var{kForOnEventAttribute:iM,kListener:yae}=Xm(),D7e=Symbol("kCode"),L7e=Symbol("kData"),U7e=Symbol("kError"),F7e=Symbol("kMessage"),j7e=Symbol("kReason"),Ak=Symbol("kTarget"),H7e=Symbol("kType"),q7e=Symbol("kWasClean"),$m=class{constructor(t){this[Ak]=null,this[H7e]=t}get target(){return this[Ak]}get type(){return this[H7e]}};Object.defineProperty($m.prototype,"target",{enumerable:!0});Object.defineProperty($m.prototype,"type",{enumerable:!0});var Y_=class extends $m{constructor(t,n={}){super(t),this[D7e]=n.code===void 0?0:n.code,this[j7e]=n.reason===void 0?"":n.reason,this[q7e]=n.wasClean===void 0?!1:n.wasClean}get code(){return this[D7e]}get reason(){return this[j7e]}get wasClean(){return this[q7e]}};Object.defineProperty(Y_.prototype,"code",{enumerable:!0});Object.defineProperty(Y_.prototype,"reason",{enumerable:!0});Object.defineProperty(Y_.prototype,"wasClean",{enumerable:!0});var wk=class extends $m{constructor(t,n={}){super(t),this[U7e]=n.error===void 0?null:n.error,this[F7e]=n.message===void 0?"":n.message}get error(){return this[U7e]}get message(){return this[F7e]}};Object.defineProperty(wk.prototype,"error",{enumerable:!0});Object.defineProperty(wk.prototype,"message",{enumerable:!0});var sM=class extends $m{constructor(t,n={}){super(t),this[L7e]=n.data===void 0?null:n.data}get data(){return this[L7e]}};Object.defineProperty(sM.prototype,"data",{enumerable:!0});var Lmn={addEventListener(e,t,n={}){for(let i of this.listeners(e))if(!n[iM]&&i[yae]===t&&!i[iM])return;let r;if(e==="message")r=function(s,o){let a=new sM("message",{data:o?s:s.toString()});a[Ak]=this,YV(t,this,a)};else if(e==="close")r=function(s,o){let a=new Y_("close",{code:s,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[Ak]=this,YV(t,this,a)};else if(e==="error")r=function(s){let o=new wk("error",{error:s,message:s.message});o[Ak]=this,YV(t,this,o)};else if(e==="open")r=function(){let s=new $m("open");s[Ak]=this,YV(t,this,s)};else return;r[iM]=!!n[iM],r[yae]=t,n.once?this.once(e,r):this.on(e,r)},removeEventListener(e,t){for(let n of this.listeners(e))if(n[yae]===t&&!n[iM]){this.removeListener(e,n);break}}};B7e.exports={CloseEvent:Y_,ErrorEvent:wk,Event:$m,EventTarget:Lmn,MessageEvent:sM};function YV(e,t,n){typeof e=="object"&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}});var ZV=w((m4r,G7e)=>{"use strict";var{tokenChars:oM}=Tk();function bh(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}function Umn(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(", ")}G7e.exports={format:Fmn,parse:Umn}});var $V=w((S4r,nJe)=>{"use strict";var jmn=Y("events"),Hmn=Y("https"),qmn=Y("http"),K7e=Y("net"),Bmn=Y("tls"),{randomBytes:zmn,createHash:Gmn}=Y("crypto"),{Duplex:g4r,Readable:y4r}=Y("stream"),{URL:Sae}=Y("url"),BS=_k(),Vmn=pae(),Wmn=gae(),{isBlob:Kmn}=Tk(),{BINARY_TYPES:V7e,CLOSE_TIMEOUT:Ymn,EMPTY_BUFFER:JV,GUID:Zmn,kForOnEventAttribute:bae,kListener:Jmn,kStatusCode:Xmn,kWebSocket:Wo,NOOP:Y7e}=Xm(),{EventTarget:{addEventListener:Qmn,removeEventListener:$mn}}=z7e(),{format:egn,parse:tgn}=ZV(),{toBuffer:ngn}=nM(),Z7e=Symbol("kAborted"),Eae=[8,13],eg=["CONNECTING","OPEN","CLOSING","CLOSED"],rgn=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,Fi=class e extends jmn{constructor(t,n,r){super(),this._binaryType=V7e[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=JV,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]),J7e(this,t,n,r)):(this._autoPong=r.autoPong,this._closeTimeout=r.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(t){V7e.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 Vmn({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation}),s=new Wmn(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",ogn),i.on("drain",agn),i.on("error",cgn),i.on("message",ugn),i.on("ping",lgn),i.on("pong",dgn),s.onerror=fgn,t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on("close",$7e),t.on("data",QV),t.on("end",eJe),t.on("error",tJe),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[BS.extensionName]&&this._extensions[BS.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())}),Q7e(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){_ae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.ping(t||JV,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){_ae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.pong(t||JV,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){_ae(this,t,r);return}let i={binary:typeof t!="string",mask:!this._isServer,compress:!0,fin:!0,...n};this._extensions[BS.extensionName]||(i.compress=!1),this._sender.send(t||JV,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:eg.indexOf("CONNECTING")});Object.defineProperty(Fi.prototype,"CONNECTING",{enumerable:!0,value:eg.indexOf("CONNECTING")});Object.defineProperty(Fi,"OPEN",{enumerable:!0,value:eg.indexOf("OPEN")});Object.defineProperty(Fi.prototype,"OPEN",{enumerable:!0,value:eg.indexOf("OPEN")});Object.defineProperty(Fi,"CLOSING",{enumerable:!0,value:eg.indexOf("CLOSING")});Object.defineProperty(Fi.prototype,"CLOSING",{enumerable:!0,value:eg.indexOf("CLOSING")});Object.defineProperty(Fi,"CLOSED",{enumerable:!0,value:eg.indexOf("CLOSED")});Object.defineProperty(Fi.prototype,"CLOSED",{enumerable:!0,value:eg.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[bae])return t[Jmn];return null},set(t){for(let n of this.listeners(e))if(n[bae]){this.removeListener(e,n);break}typeof t=="function"&&this.addEventListener(e,t,{[bae]:!0})}})});Fi.prototype.addEventListener=Qmn;Fi.prototype.removeEventListener=$mn;nJe.exports=Fi;function J7e(e,t,n,r){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:Ymn,protocolVersion:Eae[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,!Eae.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${Eae.join(", ")})`);let s;if(t instanceof Sae)s=t;else try{s=new Sae(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;XV(e,m);return}let u=o?443:80,l=zmn(16).toString("base64"),d=o?Hmn.request:qmn.request,f=new Set,p;if(i.createConnection=i.createConnection||(o?sgn:ign),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 BS({...i.perMessageDeflate,isServer:!1,maxPayload:i.maxPayload}),i.headers["Sec-WebSocket-Extensions"]=egn({[BS.extensionName]:p.offer()})),n.length){for(let m of n){if(typeof m!="string"||!rgn.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,XV(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 Sae(g,t)}catch{let E=new SyntaxError(`Invalid URL: ${g}`);XV(e,E);return}J7e(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=Gmn("sha1").update(l+Zmn).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=tgn(T)}catch{bl(e,g,"Invalid Sec-WebSocket-Extensions header");return}let A=Object.keys(R);if(A.length!==1||A[0]!==BS.extensionName){bl(e,g,"Server indicated an extension that was not requested");return}try{p.accept(R[BS.extensionName])}catch{bl(e,g,"Invalid Sec-WebSocket-Extensions header");return}e._extensions[BS.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 XV(e,t){e._readyState=Fi.CLOSING,e._errorEmitted=!0,e.emit("error",t),e.emitClose()}function ign(e){return e.path=e.socketPath,K7e.connect(e)}function sgn(e){return e.path=void 0,!e.servername&&e.servername!==""&&(e.servername=K7e.isIP(e.host)?"":e.host),Bmn.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(XV,e,r)):(t.destroy(r),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function _ae(e,t,n){if(t){let r=Kmn(t)?t.size:ngn(t).length;e._socket?e._sender._bufferedBytes+=r:e._bufferedAmount+=r}if(n){let r=new Error(`WebSocket is not open: readyState ${e.readyState} (${eg[e.readyState]})`);process.nextTick(n,r)}}function ogn(e,t){let n=this[Wo];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,n._socket[Wo]!==void 0&&(n._socket.removeListener("data",QV),process.nextTick(X7e,n._socket),e===1005?n.close():n.close(e,t))}function agn(){let e=this[Wo];e.isPaused||e._socket.resume()}function cgn(e){let t=this[Wo];t._socket[Wo]!==void 0&&(t._socket.removeListener("data",QV),process.nextTick(X7e,t._socket),t.close(e[Xmn])),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e))}function W7e(){this[Wo].emitClose()}function ugn(e,t){this[Wo].emit("message",e,t)}function lgn(e){let t=this[Wo];t._autoPong&&t.pong(e,!this._isServer,Y7e),t.emit("ping",e)}function dgn(e){this[Wo].emit("pong",e)}function X7e(e){e.resume()}function fgn(e){let t=this[Wo];t.readyState!==Fi.CLOSED&&(t.readyState===Fi.OPEN&&(t._readyState=Fi.CLOSING,Q7e(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e)))}function Q7e(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function $7e(){let e=this[Wo];if(this.removeListener("close",$7e),this.removeListener("data",QV),this.removeListener("end",eJe),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",W7e),e._receiver.on("finish",W7e))}function QV(e){this[Wo]._receiver.write(e)||this.pause()}function eJe(){let e=this[Wo];e._readyState=Fi.CLOSING,e._receiver.end(),this.end()}function tJe(){let e=this[Wo];this.removeListener("error",tJe),this.on("error",Y7e),e&&(e._readyState=Fi.CLOSING,this.destroy())}});var oJe=w((E4r,sJe)=>{"use strict";var b4r=$V(),{Duplex:pgn}=Y("stream");function rJe(e){e.emit("close")}function hgn(){!this.destroyed&&this._writableState.finished&&this.destroy()}function iJe(e){this.removeListener("error",iJe),this.destroy(),this.listenerCount("error")===0&&this.emit("error",e)}function mgn(e,t){let n=!0,r=new pgn({...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(rJe,r);return}let o=!1;e.once("error",function(c){o=!0,s(c)}),e.once("close",function(){o||s(i),process.nextTick(rJe,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",hgn),r.on("error",iJe),r}sJe.exports=mgn});var Tae=w((_4r,aJe)=>{"use strict";var{tokenChars:ggn}=Tk();function ygn(e){let t=new Set,n=-1,r=-1,i=0;for(i;i{"use strict";var Sgn=Y("events"),eW=Y("http"),{Duplex:T4r}=Y("stream"),{createHash:bgn}=Y("crypto"),cJe=ZV(),Z_=_k(),Egn=Tae(),_gn=$V(),{CLOSE_TIMEOUT:Tgn,GUID:vgn,kWebSocket:Rgn}=Xm(),Agn=/^[+/0-9A-Za-z]{22}==$/,uJe=0,lJe=1,fJe=2,vae=class extends Sgn{constructor(t,n){if(super(),t={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:Tgn,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:_gn,...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=eW.createServer((r,i)=>{let s=eW.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=wgn(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=uJe}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===fJe){t&&this.once("close",()=>{t(new Error("The server is not running"))}),process.nextTick(aM,this);return}if(t&&this.once("close",t),this._state!==lJe)if(this._state=lJe,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(aM,this):process.nextTick(aM,this);else{let n=this._server;this._removeListeners(),this._removeListeners=this._server=null,n.close(()=>{aM(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",dJe);let s=t.headers["sec-websocket-key"],o=t.headers.upgrade,a=+t.headers["sec-websocket-version"];if(t.method!=="GET"){J_(this,t,n,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){J_(this,t,n,400,"Invalid Upgrade header");return}if(s===void 0||!Agn.test(s)){J_(this,t,n,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==13&&a!==8){J_(this,t,n,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(t)){cM(n,400);return}let c=t.headers["sec-websocket-protocol"],u=new Set;if(c!==void 0)try{u=Egn.parse(c)}catch{J_(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 Z_({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let p=cJe.parse(l);p[Z_.extensionName]&&(f.accept(p[Z_.extensionName]),d[Z_.extensionName]=f)}catch{J_(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 cM(n,h||401,m,g);this.completeUpgrade(d,s,u,t,n,r,i)});return}if(!this.options.verifyClient(f))return cM(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[Rgn])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>uJe)return cM(s,503);let u=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${bgn("sha1").update(n+vgn).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[Z_.extensionName]){let d=t[Z_.extensionName].params,f=cJe.format({[Z_.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",uJe),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(aM,this)})),a(l,i)}};dJe.exports=vae;function Agn(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 aM(e){e._state=lJe,e.emit("close")}function uJe(){this.destroy()}function cM(e,t,n,r){n=n||eW.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} ${eW.STATUS_CODES[t]}\r +`)),s.removeListener("error",dJe),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(aM,this)})),a(l,i)}};pJe.exports=vae;function wgn(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 aM(e){e._state=fJe,e.emit("close")}function dJe(){this.destroy()}function cM(e,t,n,r){n=n||eW.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} ${eW.STATUS_CODES[t]}\r `+Object.keys(r).map(i=>`${i}: ${r[i]}`).join(`\r `)+`\r \r -`+n)}function J_(e,t,n,r,i,s){if(e.listenerCount("wsClientError")){let o=new Error(i);Error.captureStackTrace(o,J_),e.emit("wsClientError",o,n,t)}else cM(n,r,i,s)}});var mJe=w((v4r,hJe)=>{"use strict";var wgn=iJe(),kgn=ZV(),Ign=_k(),xgn=pae(),Ogn=gae(),Pgn=Tae(),Of=$V(),pJe=fJe();Of.createWebSocketStream=wgn;Of.extension=kgn;Of.PerMessageDeflate=Ign;Of.Receiver=xgn;Of.Sender=Ogn;Of.Server=pJe;Of.subprotocol=Pgn;Of.WebSocket=Of;Of.WebSocketServer=pJe;hJe.exports=Of});var Rae=w((R4r,gJe)=>{gJe.exports=Y("stream")});var TJe=w((A4r,_Je)=>{"use strict";function yJe(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 SJe(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 tW.alloc(0);for(var r=tW.allocUnsafe(n>>>0),i=this.head,s=0;i;)jgn(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=tW.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:Fgn,value:function(n,r){return Aae(this,SJe(SJe({},r),{},{depth:0,customInspect:!1}))}}]),e})()});var kae=w((w4r,RJe)=>{"use strict";function Hgn(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(wae,this,e)):process.nextTick(wae,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(nW,n):(n._writableState.errorEmitted=!0,process.nextTick(vJe,n,s)):process.nextTick(vJe,n,s):t?(process.nextTick(nW,n),t(s)):process.nextTick(nW,n)}),this)}function vJe(e,t){wae(e,t),nW(e)}function nW(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function qgn(){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 wae(e,t){e.emit("error",t)}function Bgn(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}RJe.exports={destroy:Hgn,undestroy:qgn,errorOrDestroy:Bgn}});var zS=w((k4r,kJe)=>{"use strict";var wJe={};function Rd(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,wJe[e]=i}function AJe(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 zgn(e,t,n){return e.substr(!n||n<0?0:+n,t.length)===t}function Ggn(e,t,n){return(n===void 0||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}function Vgn(e,t,n){return typeof n!="number"&&(n=0),n+t.length>e.length?!1:e.indexOf(t,n)!==-1}Rd("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);Rd("ERR_INVALID_ARG_TYPE",function(e,t,n){let r;typeof t=="string"&&zgn(t,"not ")?(r="must not be",t=t.replace(/^not /,"")):r="must be";let i;if(Ggn(e," argument"))i=`The ${e} ${r} ${AJe(t,"type")}`;else{let s=Vgn(e,".")?"property":"argument";i=`The "${e}" ${s} ${r} ${AJe(t,"type")}`}return i+=`. Received type ${typeof n}`,i},TypeError);Rd("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Rd("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});Rd("ERR_STREAM_PREMATURE_CLOSE","Premature close");Rd("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});Rd("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Rd("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Rd("ERR_STREAM_WRITE_AFTER_END","write after end");Rd("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Rd("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);Rd("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");kJe.exports.codes=wJe});var Iae=w((I4r,IJe)=>{"use strict";var Wgn=zS().codes.ERR_INVALID_OPT_VALUE;function Kgn(e,t,n){return e.highWaterMark!=null?e.highWaterMark:t?e[n]:null}function Ygn(e,t,n,r){var i=Kgn(t,r,n);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var s=r?n:"highWaterMark";throw new Wgn(s,i)}return Math.floor(i)}return e.objectMode?16:16*1024}IJe.exports={getHighWaterMark:Ygn}});var xJe=w((x4r,xae)=>{typeof Object.create=="function"?xae.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:xae.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 X_=w((O4r,Pae)=>{try{if(Oae=Y("util"),typeof Oae.inherits!="function")throw"";Pae.exports=Oae.inherits}catch{Pae.exports=xJe()}var Oae});var PJe=w((P4r,OJe)=>{OJe.exports=Y("util").deprecate});var Mae=w((N4r,UJe)=>{"use strict";UJe.exports=gs;function CJe(e){var t=this;this.next=null,this.entry=null,this.finish=function(){_yn(t,e)}}var kk;gs.WritableState=lM;var Zgn={deprecate:PJe()},MJe=Rae(),iW=Y("buffer").Buffer,Jgn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Xgn(e){return iW.from(e)}function Qgn(e){return iW.isBuffer(e)||e instanceof Jgn}var Cae=kae(),$gn=Iae(),eyn=$gn.getHighWaterMark,GS=zS().codes,tyn=GS.ERR_INVALID_ARG_TYPE,nyn=GS.ERR_METHOD_NOT_IMPLEMENTED,ryn=GS.ERR_MULTIPLE_CALLBACK,iyn=GS.ERR_STREAM_CANNOT_PIPE,syn=GS.ERR_STREAM_DESTROYED,oyn=GS.ERR_STREAM_NULL_VALUES,ayn=GS.ERR_STREAM_WRITE_AFTER_END,cyn=GS.ERR_UNKNOWN_ENCODING,Ik=Cae.errorOrDestroy;X_()(gs,MJe);function uyn(){}function lM(e,t,n){kk=kk||Q_(),e=e||{},typeof n!="boolean"&&(n=t instanceof kk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=eyn(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){gyn(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 CJe(this)}lM.prototype.getBuffer=function(){for(var t=this.bufferedRequest,n=[];t;)n.push(t),t=t.next;return n};(function(){try{Object.defineProperty(lM.prototype,"buffer",{get:Zgn.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var rW;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(rW=Function.prototype[Symbol.hasInstance],Object.defineProperty(gs,Symbol.hasInstance,{value:function(t){return rW.call(this,t)?!0:this!==gs?!1:t&&t._writableState instanceof lM}})):rW=function(t){return t instanceof this};function gs(e){kk=kk||Q_();var t=this instanceof kk;if(!t&&!rW.call(gs,this))return new gs(e);this._writableState=new lM(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)),MJe.call(this)}gs.prototype.pipe=function(){Ik(this,new iyn)};function lyn(e,t){var n=new ayn;Ik(e,n),process.nextTick(t,n)}function dyn(e,t,n,r){var i;return n===null?i=new oyn:typeof n!="string"&&!t.objectMode&&(i=new tyn("chunk",["string","Buffer"],n)),i?(Ik(e,i),process.nextTick(r,i),!1):!0}gs.prototype.write=function(e,t,n){var r=this._writableState,i=!1,s=!r.objectMode&&Qgn(e);return s&&!iW.isBuffer(e)&&(e=Xgn(e)),typeof t=="function"&&(n=t,t=null),s?t="buffer":t||(t=r.defaultEncoding),typeof n!="function"&&(n=uyn),r.ending?lyn(this,n):(s||dyn(this,r,e,n))&&(r.pendingcb++,i=pyn(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&&DJe(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 cyn(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(gs.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function fyn(e,t,n){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=iW.from(t,n)),t}Object.defineProperty(gs.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function pyn(e,t,n,r,i,s){if(!n){var o=fyn(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 Tyn=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};jJe.exports=Eh;var FJe=Uae(),Lae=Mae();X_()(Eh,FJe);for(Dae=Tyn(Lae.prototype),sW=0;sW{var aW=Y("buffer"),_h=aW.Buffer;function HJe(e,t){for(var n in e)t[n]=e[n]}_h.from&&_h.alloc&&_h.allocUnsafe&&_h.allocUnsafeSlow?qJe.exports=aW:(HJe(aW,Fae),Fae.Buffer=$_);function $_(e,t,n){return _h(e,t,n)}$_.prototype=Object.create(_h.prototype);HJe(_h,$_);$_.from=function(e,t,n){if(typeof e=="number")throw new TypeError("Argument must not be a number");return _h(e,t,n)};$_.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};$_.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return _h(e)};$_.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return aW.SlowBuffer(e)}});var qae=w(GJe=>{"use strict";var Hae=BJe().Buffer,zJe=Hae.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 Ayn(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 wyn(e){var t=Ayn(e);if(typeof t!="string"&&(Hae.isEncoding===zJe||!zJe(e)))throw new Error("Unknown encoding: "+e);return t||e}GJe.StringDecoder=dM;function dM(e){this.encoding=wyn(e);var t;switch(this.encoding){case"utf16le":this.text=Nyn,this.end=Cyn,t=4;break;case"utf8":this.fillLast=xyn,t=4;break;case"base64":this.text=Myn,this.end=Dyn,t=3;break;default:this.write=Lyn,this.end=Uyn;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Hae.allocUnsafe(t)}dM.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 kyn(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 Iyn(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 xyn(e){var t=this.lastTotal-this.lastNeed,n=Iyn(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 Oyn(e,t){var n=kyn(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 Pyn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function Nyn(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 Cyn(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 Myn(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 Dyn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Lyn(e){return e.toString(this.encoding)}function Uyn(e){return e&&e.length?this.write(e):""}});var cW=w((D4r,KJe)=>{"use strict";var VJe=zS().codes.ERR_STREAM_PREMATURE_CLOSE;function Fyn(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 uW;function VS(e,t,n){return t=qyn(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qyn(e){var t=Byn(e,"string");return typeof t=="symbol"?t:String(t)}function Byn(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 zyn=cW(),WS=Symbol("lastResolve"),eT=Symbol("lastReject"),fM=Symbol("error"),lW=Symbol("ended"),tT=Symbol("lastPromise"),Bae=Symbol("handlePromise"),nT=Symbol("stream");function KS(e,t){return{value:e,done:t}}function Gyn(e){var t=e[WS];if(t!==null){var n=e[nT].read();n!==null&&(e[tT]=null,e[WS]=null,e[eT]=null,t(KS(n,!1)))}}function Vyn(e){process.nextTick(Gyn,e)}function Wyn(e,t){return function(n,r){e.then(function(){if(t[lW]){n(KS(void 0,!0));return}t[Bae](n,r)},r)}}var Kyn=Object.getPrototypeOf(function(){}),Yyn=Object.setPrototypeOf((uW={get stream(){return this[nT]},next:function(){var t=this,n=this[fM];if(n!==null)return Promise.reject(n);if(this[lW])return Promise.resolve(KS(void 0,!0));if(this[nT].destroyed)return new Promise(function(o,a){process.nextTick(function(){t[fM]?a(t[fM]):o(KS(void 0,!0))})});var r=this[tT],i;if(r)i=new Promise(Wyn(r,this));else{var s=this[nT].read();if(s!==null)return Promise.resolve(KS(s,!1));i=new Promise(this[Bae])}return this[tT]=i,i}},VS(uW,Symbol.asyncIterator,function(){return this}),VS(uW,"return",function(){var t=this;return new Promise(function(n,r){t[nT].destroy(null,function(i){if(i){r(i);return}n(KS(void 0,!0))})})}),uW),Kyn),Zyn=function(t){var n,r=Object.create(Yyn,(n={},VS(n,nT,{value:t,writable:!0}),VS(n,WS,{value:null,writable:!0}),VS(n,eT,{value:null,writable:!0}),VS(n,fM,{value:null,writable:!0}),VS(n,lW,{value:t._readableState.endEmitted,writable:!0}),VS(n,Bae,{value:function(s,o){var a=r[nT].read();a?(r[tT]=null,r[WS]=null,r[eT]=null,s(KS(a,!1))):(r[WS]=s,r[eT]=o)},writable:!0}),n));return r[tT]=null,zyn(t,function(i){if(i&&i.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=r[eT];s!==null&&(r[tT]=null,r[WS]=null,r[eT]=null,s(i)),r[fM]=i;return}var o=r[WS];o!==null&&(r[tT]=null,r[WS]=null,r[eT]=null,o(KS(void 0,!0))),r[lW]=!0}),t.on("readable",Vyn.bind(null,r)),r};YJe.exports=Zyn});var $Je=w((U4r,QJe)=>{"use strict";function JJe(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 Jyn(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var s=e.apply(t,n);function o(c){JJe(s,r,i,o,a,"next",c)}function a(c){JJe(s,r,i,o,a,"throw",c)}o(void 0)})}}function XJe(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 Xyn(e){for(var t=1;t{"use strict";uXe.exports=nr;var xk;nr.ReadableState=rXe;var F4r=Y("events").EventEmitter,nXe=function(t,n){return t.listeners(n).length},hM=Rae(),dW=Y("buffer").Buffer,rSn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function iSn(e){return dW.from(e)}function sSn(e){return dW.isBuffer(e)||e instanceof rSn}var zae=Y("util"),An;zae&&zae.debuglog?An=zae.debuglog("stream"):An=function(){};var oSn=TJe(),Jae=kae(),aSn=Iae(),cSn=aSn.getHighWaterMark,fW=zS().codes,uSn=fW.ERR_INVALID_ARG_TYPE,lSn=fW.ERR_STREAM_PUSH_AFTER_EOF,dSn=fW.ERR_METHOD_NOT_IMPLEMENTED,fSn=fW.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,Ok,Gae,Vae;X_()(nr,hM);var pM=Jae.errorOrDestroy,Wae=["error","close","destroy","pause","resume"];function pSn(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 rXe(e,t,n){xk=xk||Q_(),e=e||{},typeof n!="boolean"&&(n=t instanceof xk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=cSn(this,e,"readableHighWaterMark",n),this.buffer=new oSn,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&&(Ok||(Ok=qae().StringDecoder),this.decoder=new Ok(e.encoding),this.encoding=e.encoding)}function nr(e){if(xk=xk||Q_(),!(this instanceof nr))return new nr(e);var t=this instanceof xk;this._readableState=new rXe(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),hM.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=Jae.destroy;nr.prototype._undestroy=Jae.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=dW.from(e,t),t=""),r=!0),iXe(this,e,t,!1,r)};nr.prototype.unshift=function(e){return iXe(this,e,null,!0,!1)};function iXe(e,t,n,r,i){An("readableAddChunk",t);var s=e._readableState;if(t===null)s.reading=!1,gSn(e,s);else{var o;if(i||(o=hSn(s,t)),o)pM(e,o);else if(s.objectMode||t&&t.length>0)if(typeof t!="string"&&!s.objectMode&&Object.getPrototypeOf(t)!==dW.prototype&&(t=iSn(t)),r)s.endEmitted?pM(e,new fSn):Kae(e,s,t,!0);else if(s.ended)pM(e,new lSn);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||t.length!==0?Kae(e,s,t,!1):Zae(e,s)):Kae(e,s,t,!1)}else r||(s.reading=!1,Zae(e,s))}return!s.ended&&(s.length=eXe?e=eXe:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function tXe(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=mSn(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?Yae(this):pW(this),null;if(e=tXe(e,t),e===0&&t.ended)return t.length===0&&Yae(this),null;var r=t.needReadable;An("need readable",r),(t.length===0||t.length-e0?i=aXe(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&&Yae(this)),i!==null&&this.emit("data",i),i};function gSn(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?pW(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,sXe(e)))}}function pW(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(sXe,e))}function sXe(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,Xae(e)}function Zae(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(ySn,e,t))}function ySn(e,t){for(;!t.reading&&!t.ended&&(t.length1&&cXe(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),nXe(e,"error")===0&&pM(e,g)}pSn(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 SSn(e){return function(){var n=e._readableState;An("pipeOnDrain",n.awaitDrain),n.awaitDrain&&n.awaitDrain--,n.awaitDrain===0&&nXe(e,"data")&&(n.flowing=!0,Xae(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?pW(this):r.reading||process.nextTick(bSn,this)),n};nr.prototype.addListener=nr.prototype.on;nr.prototype.removeListener=function(e,t){var n=hM.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(oXe,this),n};nr.prototype.removeAllListeners=function(e){var t=hM.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(oXe,this),t};function oXe(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 bSn(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,ESn(this,e)),e.paused=!1,this};function ESn(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(_Sn,e,t))}function _Sn(e,t){An("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),Xae(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 Xae(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 Yae(e){var t=e._readableState;An("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(TSn,t,e))}function TSn(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 Vae===void 0&&(Vae=$Je()),Vae(nr,e,t)});function cXe(e,t){for(var n=0,r=e.length;n{"use strict";dXe.exports=tg;var hW=zS().codes,vSn=hW.ERR_METHOD_NOT_IMPLEMENTED,RSn=hW.ERR_MULTIPLE_CALLBACK,ASn=hW.ERR_TRANSFORM_ALREADY_TRANSFORMING,wSn=hW.ERR_TRANSFORM_WITH_LENGTH_0,mW=Q_();X_()(tg,mW);function kSn(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(r===null)return this.emit("error",new RSn);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";pXe.exports=mM;var fXe=Qae();X_()(mM,fXe);function mM(e){if(!(this instanceof mM))return new mM(e);fXe.call(this,e)}mM.prototype._transform=function(e,t,n){n(null,e)}});var bXe=w((B4r,SXe)=>{"use strict";var $ae;function xSn(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var yXe=zS().codes,OSn=yXe.ERR_MISSING_ARGS,PSn=yXe.ERR_STREAM_DESTROYED;function mXe(e){if(e)throw e}function NSn(e){return e.setHeader&&typeof e.abort=="function"}function CSn(e,t,n,r){r=xSn(r);var i=!1;e.on("close",function(){i=!0}),$ae===void 0&&($ae=cW()),$ae(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,NSn(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();r(o||new PSn("pipe"))}}}function gXe(e){e()}function MSn(e,t){return e.pipe(t)}function DSn(e){return!e.length||typeof e[e.length-1]!="function"?mXe:e.pop()}function LSn(){for(var e=arguments.length,t=new Array(e),n=0;n0;return CSn(o,c,u,function(l){i||(i=l),l&&s.forEach(gXe),!c&&(s.forEach(gXe),r(i))})});return t.reduce(MSn)}SXe.exports=LSn});var EXe=w((Ad,yM)=>{var gM=Y("stream");process.env.READABLE_STREAM==="disable"&&gM?(yM.exports=gM.Readable,Object.assign(yM.exports,gM),yM.exports.Stream=gM):(Ad=yM.exports=Uae(),Ad.Stream=gM||Ad,Ad.Readable=Ad,Ad.Writable=Mae(),Ad.Duplex=Q_(),Ad.Transform=Qae(),Ad.PassThrough=hXe(),Ad.finished=cW(),Ad.pipeline=bXe())});var vXe=w((z4r,TXe)=>{TXe.exports=_Xe;function _Xe(e,t){if(e&&t)return _Xe(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 RXe=vXe();ece.exports=RXe(gW);ece.exports.strict=RXe(AXe);gW.proto=gW(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return gW(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return AXe(this)},configurable:!0})});function gW(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function AXe(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 xXe=w((V4r,IXe)=>{var USn=wXe(),FSn=function(){},jSn=global.Bare?queueMicrotask:process.nextTick.bind(process),HSn=function(e){return e.setHeader&&typeof e.abort=="function"},qSn=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},kXe=function(e,t,n){if(typeof t=="function")return kXe(e,null,t);t||(t={}),n=USn(n||FSn);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(){jSn(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 HSn(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)),qSn(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)}};IXe.exports=kXe});var PXe=w((W4r,OXe)=>{OXe.exports=BSn;function BSn(e){var t=e._readableState;return t?t.objectMode||typeof e._duplexState=="number"?e.read():e.read(zSn(t)):null}function zSn(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 LXe=w((K4r,DXe)=>{var yW=EXe(),NXe=xXe(),GSn=X_(),VSn=PXe(),CXe=Buffer.from&&Buffer.from!==Uint8Array.from?Buffer.from([0]):new Buffer([0]),tce=function(e,t){e._corked?e.once("uncork",t):t()},WSn=function(e,t){e._autoDestroy&&e.destroy(t)},MXe=function(e,t){return function(n){n?WSn(e,n.message==="premature close"?null:n):t&&!e._ended&&e.end()}},KSn=function(e,t){if(!e||e._writableState&&e._writableState.finished)return t();if(e._writableState)return e.end(t);e.end(),t()},YSn=function(){},ZSn=function(e){return new yW.Readable({objectMode:!0,highWaterMark:16}).wrap(e)},_a=function(e,t,n){if(!(this instanceof _a))return new _a(e,t,n);yW.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)};GSn(_a,yW.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=NXe(e,{writable:!0,readable:!1},MXe(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=NXe(e,{writable:!1,readable:!0},MXe(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:ZSn(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=VSn(this._readable2))!==null;)this.destroyed||(this._drained=this.push(e));this._forwarding=!1}};_a.prototype.destroy=function(e,t){if(t||(t=YSn),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 tce(this,this._write.bind(this,e,t,n));if(e===CXe)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"),tce(this,function(){KSn(t._forwardEnd&&t._writable,function(){t._writableState.prefinished===!1&&(t._writableState.prefinished=!0),t.emit("prefinish"),tce(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(CXe),yW.Writable.prototype.end.call(this,n))};DXe.exports=_a});var HXe=w((Y4r,bW)=>{"use strict";var{ServerResponse:JSn}=Y("node:http"),{PassThrough:UXe}=Y("node:stream"),{randomBytes:XSn}=Y("node:crypto"),QSn=JC(),FXe=mJe(),jXe=LXe(),rT=Symbol("ws-socket"),SW=Symbol("ws-head"),$Sn=/HTTP\/1.1 (\d+)/u;function nce(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 FXe.Server(s);e.decorate("websocketServer",a);async function c(h="/",m={},g={}){let y=new UXe,b=new UXe,S=new jXe(y,b),E=new jXe(b,y),_=new FXe(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($Sn.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":XSn(16).toString("base64")},httpVersion:"1.1",url:h,[rT]:S,[SW]:T};return o.emit("upgrade",P,P[rT],P[SW]),x}e.decorate("injectWS",c);function u(h,m,g){h[rT]=m,h[SW]=g;let y=new JSn(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[rT],h[SW],g=>{a.emit("connection",g,h),g.on("error",y=>{e.log.error(y)}),m(g)})};e.addHook("onRequest",(h,m,g)=>{h.raw[rT]?h.ws=!0:h.ws=!1,g()}),e.addHook("onResponse",(h,m,g)=>{h.ws&&h.raw[rT].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[rT])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()}bW.exports=QSn(nce,{fastify:"5.x",name:"@fastify/websocket"});bW.exports.default=nce;bW.exports.fastifyWebsocket=nce});var BXe=w((Z4r,qXe)=>{"use strict";function ebn(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}}qXe.exports=ebn});var GXe=w((J4r,rce)=>{"use strict";var tbn=BXe();function zXe(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=tbn(nbn),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 nbn(){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 rbn(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=zXe(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}}rce.exports=zXe;rce.exports.promise=rbn});var _W=w((X4r,SM)=>{"use strict";var{format:ibn}=Y("node:util");function sbn(){return`${this.name} [${this.code}]: ${this.message}`}var EW=Symbol.for("fastify-error-generic");function Pk(e,t,n=500,r=Error,i=Pk.captureStackTrace){let s=e===EW;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=ibn(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},[EW]:{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[EW]},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=sbn,a}Pk.captureStackTrace=!0;var obn=Pk(EW,"Fastify Error",500,Error);SM.exports=Pk;SM.exports.FastifyError=obn;SM.exports.default=Pk;SM.exports.createError=Pk});var TW=w((Q4r,VXe)=>{"use strict";var{createError:YS}=_W();VXe.exports={AVV_ERR_EXPOSE_ALREADY_DEFINED:YS("AVV_ERR_EXPOSE_ALREADY_DEFINED","'%s' is already defined, specify an expose option for '%s'"),AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:YS("AVV_ERR_ATTRIBUTE_ALREADY_DEFINED","'%s' is already defined"),AVV_ERR_CALLBACK_NOT_FN:YS("AVV_ERR_CALLBACK_NOT_FN","Callback for '%s' hook is not a function. Received: '%s'"),AVV_ERR_PLUGIN_NOT_VALID:YS("AVV_ERR_PLUGIN_NOT_VALID","Plugin must be a function or a promise. Received: '%s'"),AVV_ERR_ROOT_PLG_BOOTED:YS("AVV_ERR_ROOT_PLG_BOOTED","Root plugin has already booted"),AVV_ERR_PARENT_PLG_LOADED:YS("AVV_ERR_PARENT_PLG_LOADED","Impossible to load '%s' plugin because the parent '%s' was already loaded"),AVV_ERR_READY_TIMEOUT:YS("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:YS("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 Nk=w(($4r,WXe)=>{"use strict";var abn=Symbol("avvio.Boot"),cbn=Symbol("isOnCloseHandler"),ubn=Symbol("avvio.ThenifyDoNotWrap"),lbn=Symbol("avvio.TimeTree.untrackNode"),dbn=Symbol("avvio.TimeTree.trackNode"),fbn=Symbol("avvio.TimeTree.getParent"),pbn=Symbol("avvio.TimeTree.getNode"),hbn=Symbol("avvio.TimeTree.addNode"),mbn=Symbol.for("plugin-meta");WXe.exports={kAvvio:abn,kIsOnCloseHandler:cbn,kThenifyDoNotWrap:ubn,kUntrackNode:lbn,kTrackNode:dbn,kGetParent:fbn,kGetNode:pbn,kAddNode:hbn,kPluginMeta:mbn}});var $Xe=w((eKr,QXe)=>{"use strict";var{kUntrackNode:KXe,kTrackNode:ice,kGetParent:YXe,kGetNode:ZXe,kAddNode:JXe}=Nk(),sce=class{constructor(){this.root=null,this.tableId=new Map,this.tableLabel=new Map}[ice](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])}[KXe](t){this.tableId.delete(t.id);let n=this.tableLabel.get(t.label);n.pop(),n.length===0&&this.tableLabel.delete(t.label)}[YXe](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}[ZXe](t){return this.tableId.get(t)}[JXe](t,n,r){let i=this[YXe](t);if(i===null)return this.root={parent:null,id:"root",label:n,nodes:[],start:r,stop:null,diff:-1},this[ice](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[ice](a),o}start(t,n,r=Date.now()){return this[JXe](t,n,r)}stop(t,n=Date.now()){let r=this[ZXe](t);r&&(r.stop=n,r.diff=r.stop-r.start||0,this[KXe](r))}toJSON(){return Object.assign({},this.root)}prettyPrint(){return XXe(this.toJSON())}};function XXe(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:gbn}=Y("node:util"),ybn=gbn("avvio");eQe.exports={debug:ybn}});var nQe=w((nKr,tQe)=>{"use strict";function Sbn(){let e={resolve:null,reject:null,promise:null};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}tQe.exports={createPromise:Sbn}});var sQe=w((rKr,iQe)=>{"use strict";var{kPluginMeta:rQe}=Nk();function bbn(e,t){return e[rQe]?.name?e[rQe].name:t?.name?t.name:e.name?e.name:e.toString().split(` -`).slice(0,2).map(n=>n.trim()).join(" -- ")}iQe.exports={getPluginName:bbn}});var RW=w((iKr,oQe)=>{"use strict";function Ebn(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}oQe.exports={isPromiseLike:Ebn}});var cQe=w((sKr,aQe)=>{"use strict";var{EventEmitter:_bn}=Y("node:events"),{inherits:Tbn}=Y("node:util"),{debug:Ta}=vW(),{createPromise:vbn}=nQe(),{AVV_ERR_PLUGIN_EXEC_TIMEOUT:Rbn}=TW(),{getPluginName:Abn}=sQe(),{isPromiseLike:wbn}=RW();function Ck(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=Abn(t,n),this.queue.pause(),this._error=null,this.loaded=!1,this._promise=null,this.startTime=null}Tbn(Ck,_bn);Ck.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 Rbn(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);wbn(a)?(Ta("exec: resolving promise",r),a.then(()=>process.nextTick(o),c=>process.nextTick(o,c))):n.length<3&&o()};Ck.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=vbn(),t=this._promise.promise,this.server?e():this.on("start",e)),t};Ck.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)};Ck.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=kbn,queueMicrotask(r)}};queueMicrotask(r),this.queue.resume()};function kbn(){}aQe.exports={Plugin:Ck}});var lQe=w((oKr,uQe)=>{"use strict";var{AVV_ERR_PLUGIN_NOT_VALID:oce}=TW();function Ibn(e){if(!(e&&(typeof e=="function"||typeof e.then=="function")))throw Array.isArray(e)?new oce("array"):e===null?new oce("null"):new oce(typeof e)}uQe.exports={validatePlugin:Ibn}});var fQe=w((aKr,dQe)=>{"use strict";function xbn(e){return e!==null&&typeof e=="object"&&typeof e.default=="function"}dQe.exports={isBundledOrTypescriptPlugin:xbn}});var mQe=w((cKr,hQe)=>{"use strict";var{debug:pQe}=vW(),{kThenifyDoNotWrap:ace}=Nk();function Obn(){if(this.booted){pQe("thenify returning undefined because we are already booted");return}if(this[ace]){this[ace]=!1;return}return pQe("thenify"),(e,t)=>this._loadRegistered().then(()=>(this[ace]=!0,e(this._server)),t)}hQe.exports={thenify:Obn}});var yQe=w((uKr,gQe)=>{"use strict";var{isPromiseLike:Pbn}=RW(),{kAvvio:Nbn}=Nk();function Cbn(e,t,n){let r;try{r=e.apply(e,t)}catch(i){n&&process.nextTick(n,i);return}Pbn(r)&&!r[Nbn]?r.then(()=>process.nextTick(n),i=>process.nextTick(n,i)):n&&process.nextTick(n)}gQe.exports={executeWithThenable:Cbn}});var wQe=w((lKr,AQe)=>{"use strict";var AW=GXe(),Mbn=Y("node:events").EventEmitter,Dbn=Y("node:util").inherits,{AVV_ERR_EXPOSE_ALREADY_DEFINED:bM,AVV_ERR_CALLBACK_NOT_FN:Mk,AVV_ERR_ROOT_PLG_BOOTED:Lbn,AVV_ERR_READY_TIMEOUT:Ubn,AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:Fbn}=TW(),{kAvvio:EQe,kIsOnCloseHandler:_Qe}=Nk(),{TimeTree:jbn}=$Xe(),{Plugin:TQe}=cQe(),{debug:Dk}=vW(),{validatePlugin:Hbn}=lQe(),{isBundledOrTypescriptPlugin:qbn}=fQe(),{isPromiseLike:Bbn}=RW(),{thenify:vQe}=mQe(),{executeWithThenable:SQe}=yQe();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 jbn,this._readyQ=AW(this,RQe,1),this._readyQ.pause(),this._readyQ.drain=()=>{this.emit("start"),this._readyQ.drain=bQe},this._closeQ=AW(this,Gbn,1),this._closeQ.pause(),this._closeQ.drain=()=>{this.emit("close"),this._closeQ.drain=bQe},this._doStart=null;let r=this;this._root=new TQe(AW(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=>{Dk("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()})}Dbn(Ms,Mbn);"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[EQe]=!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:vQe});Ms.prototype._addPlugin=function(e,t,n){if(qbn(e)&&(e=e.default),Hbn(e),t=t||{},this.booted)throw new Lbn;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 TQe(AW(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 bM(r,"use");if(n[r]=function(c,u){return t.use(c,u),this},n[i])throw new bM(i,"after");if(n[i]=function(c){return typeof c!="function"?t._loadRegistered():(t.after(cce(c,this)),this)},n[s])throw new bM(s,"ready");if(n[s]=function(c){if(c&&typeof c!="function")throw new Mk(s,typeof c);return t.ready(c?cce(c,this):void 0)},n[o])throw new bM(o,"onClose");if(n[o]=function(c){if(typeof c!="function")throw new Mk(o,typeof c);return t.onClose(Vbn(c,this)),this},n[a])throw new bM(a,"close");if(n[a]=function(c){if(c&&typeof c!="function")throw new Mk(a,typeof c);return c?(t.close(cce(c,this)),this):t.close()},n.then)throw new Fbn("then");Object.defineProperty(n,"then",{get:vQe.bind(t)}),n[EQe]=!0};Ms.prototype.after=function(e){if(!e)return this._loadRegistered();this._addPlugin(t.bind(this),{},!0);function t(n,r,i){RQe.call(this,e,i)}return this};Ms.prototype.onClose=function(e){if(typeof e!="function")throw new Mk("onClose",typeof e);return e[_Qe]=!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 Mk("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 Mk("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(Bbn(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){Dk("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 Dk("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 bQe(){}function RQe(e,t){let n=this._server,r=this._error;if(this._error=null,e.length===0)this._error=r,SQe(e,[],t);else if(e.length===1)SQe(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 zbn.call(this,e,r,n,t)}function zbn(e,t,n,r){let i=e.unwrappedName??e.name;Dk("setting up ready timeout",i,this._opts.timeout);let s=setTimeout(()=>{Dk("timed out",i),s=null;let a=new Ubn(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 Gbn(e,t){let n=this._server,r=e[_Qe];if(e.length===0||e.length===1){let i;r?i=e(n):i=e(this._error),i&&typeof i.then=="function"?(Dk("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 Vbn(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 cce(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)}}AQe.exports=Ms});var $s=w((dKr,kQe)=>{"use strict";var Wbn={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")};kQe.exports=Wbn});var xQe=w((fKr,wW)=>{"use strict";var{format:uce}=Y("node:util");function Kbn(e){return IQe({...e,name:"DeprecationWarning"})}function IQe({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=uce(n,o,a,c):o&&a?u=uce(n,o,a):o?u=uce(n,o):u=n,u},s}var lce={createWarning:IQe,createDeprecation:Kbn};wW.exports=lce;wW.exports.default=lce;wW.exports.processWarning=lce});var Lk=w((pKr,OQe)=>{"use strict";var{createWarning:EM}=xQe(),Ybn=EM({name:"FastifyWarning",code:"FSTWRN001",message:"The %s schema for %s: %s is missing. This may indicate the schema is not well specified.",unlimited:!0}),Zbn=EM({name:"FastifyWarning",code:"FSTWRN003",message:"The %s mixes async and callback styles that may lead to unhandled rejections. Please use only one of them.",unlimited:!0}),Jbn=EM({name:"FastifyWarning",code:"FSTWRN004",message:"It seems that you are overriding an errorHandler in the same scope, which can lead to subtle bugs.",unlimited:!0}),Xbn=EM({name:"FastifySecurity",code:"FSTSEC001",message:'You are using /%s/ Content-Type which may be vulnerable to CORS attack. Please make sure your RegExp start with "^" or include ";?" to proper detection of the essence MIME type.',unlimited:!0}),Qbn=EM({name:"FastifyWarning",code:"FSTDEP022",message:'The router options for %s property access is deprecated. Please use "options.routerOptions" instead for accessing router options. The router options will be removed in `fastify@6`.',unlimited:!0});OQe.exports={FSTWRN001:Ybn,FSTWRN003:Zbn,FSTWRN004:Jbn,FSTSEC001:Xbn,FSTDEP022:Qbn}});var Ko=w((hKr,kW)=>{"use strict";var je=_W(),iT={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 $bn(e,t){return t.cause=e,t}kW.exports=iT;kW.exports.appendStackTrace=$bn;kW.exports.AVVIO_ERRORS_MAP={AVV_ERR_CALLBACK_NOT_FN:iT.FST_ERR_PLUGIN_CALLBACK_NOT_FN,AVV_ERR_PLUGIN_NOT_VALID:iT.FST_ERR_PLUGIN_NOT_VALID,AVV_ERR_ROOT_PLG_BOOTED:iT.FST_ERR_ROOT_PLG_BOOTED,AVV_ERR_PARENT_PLG_LOADED:iT.FST_ERR_PARENT_PLUGIN_BOOTED,AVV_ERR_READY_TIMEOUT:iT.FST_ERR_PLUGIN_TIMEOUT,AVV_ERR_PLUGIN_EXEC_TIMEOUT:iT.FST_ERR_PLUGIN_TIMEOUT}});var ZS=w((mKr,jQe)=>{"use strict";var eEn=["onRoute","onRegister","onReady","onListen","preClose","onClose"],MQe=["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError","onRequestAbort"],tEn=MQe.concat(eEn),{FST_ERR_HOOK_INVALID_TYPE:nEn,FST_ERR_HOOK_INVALID_HANDLER:rEn,FST_ERR_SEND_UNDEFINED_ERR:IW,FST_ERR_HOOK_TIMEOUT:iEn,FST_ERR_HOOK_NOT_SUPPORTED:sEn,AVVIO_ERRORS_MAP:PQe,appendStackTrace:NQe}=Ko(),{kChildren:_M,kHooks:DQe,kRequestPayloadStream:CQe}=$s();function TM(){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=[]}TM.prototype=Object.create(null);TM.prototype.validate=function(e,t){if(typeof e!="string")throw new nEn;if(Array.isArray(this[e])===!1)throw new sEn(e);if(typeof t!="function")throw new rEn(e,Object.prototype.toString.call(t))};TM.prototype.add=function(e,t){this.validate(e,t),this[e].push(t)};function oEn(e){let t=new TM;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 LQe(e,t,n,r){let i=n[DQe][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=NQe(l,new iEn(e,f)):l=PQe[l.code]!=null?NQe(l,new PQe[l.code](l.message)):l,r(l);return}r()}function c(l){if(l){a(l);return}if(s===i.length&&o===n[_M].length){s===0&&o===0?a():t(function(f,p){a(f),p(f)});return}if(s===i.length&&o{"use strict";HQe.exports=function(){return{[Symbol.iterator]:function*(){},add(){},delete(){},has(){return!0}}}});var dce=w((yKr,zQe)=>{"use strict";var{kTestInternals:gEn}=$s();function BQe(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}zQe.exports={withResolvers:typeof Promise.withResolvers=="function"?Promise.withResolvers.bind(Promise):BQe,[gEn]:{withResolvers:BQe}}});var e$e=w((SKr,$Qe)=>{"use strict";var yEn=Y("node:http"),SEn=Y("node:https"),GQe=Y("node:http2"),bEn=Y("node:dns"),EEn=Y("node:os"),{kState:Ds,kOptions:_En,kServerBindings:TEn,kHttp2ServerSessions:sT}=$s(),{FSTWRN003:vEn}=Lk(),{onListenHookRunner:xW}=ZS(),{FST_ERR_REOPENED_CLOSE_SERVER:WQe,FST_ERR_REOPENED_SERVER:KQe,FST_ERR_LISTEN_OPTIONS_INVALID:REn,FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:AEn}=Ko(),wEn=qQe(),YQe=dce();$Qe.exports.createServer=kEn;function ZQe(e){return`Server listening at ${e}`}function kEn(e,t){let n=XQe(e,t);function r(u={port:0,host:"localhost"},l=void 0){if(typeof l=="function"&&(l.constructor.name==="AsyncFunction"&&vEn("listen method"),u.cb=l),u.signal){if(typeof u.signal.on!="function"&&typeof u.signal.addEventListener!="function")throw new REn("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}VQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,l(null,p),xW(this)})}:u.cb=(f,p)=>{if(f){l(f,p);return}this[Ds].listening=!0,l(null,p),xW(this)},l===void 0)return IEn.call(this,n,u).then(p=>{let{promise:h,resolve:m}=YQe.withResolvers();return d==="localhost"?VQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,m(p),xW(this)}):(m(p),xW(this)),h});this.ready(JQe.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 AEn;typeof a!="boolean"&&(a=s?"idle":!1);let c=!i&&a===!0?new Set:wEn();return{server:n,listen:r,forceCloseConnections:a,serverHasCloseAllConnections:i,serverHasCloseHttp2Sessions:o,keepAliveConnections:c}}function VQe(e,t,n,r,i){this[Ds].listening=!1,bEn.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[TEn].push(h),u===c&&i()}}),h=XQe(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,JQe.call(this,h,p)()}}if(c===0){i();return}let l=e.unref;e.unref=function(){l.call(e),e.emit("unref")}})}function JQe(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=QQe.call(this,e,t.listenTextResolver||ZQe);t.cb(null,i)}};return r=>{if(r!=null)return t.cb(r);if(this[Ds].listening&&this[Ds].closing)return t.cb(new WQe,null);if(this[Ds].listening)return t.cb(new KQe,null);e.once("error",n),this[Ds].closing||(e.once("listening",n),e.listen(t),this[Ds].listening=!0)}}function IEn(e,t){return this[Ds].listening&&this[Ds].closing?Promise.reject(new WQe):this[Ds].listening?Promise.reject(new KQe):this.ready().then(()=>{if(this[Ds].aborted)return;let{promise:n,resolve:r,reject:i}=YQe.withResolvers(),s=c=>{a(),this[Ds].listening=!1,i(c)},o=()=>{a(),this[Ds].listening=!0,r(QQe.call(this,e,t.listenTextResolver||ZQe))};function a(){e.removeListener("error",s),e.removeListener("listening",o)}return e.once("error",s),e.once("listening",o),e.listen(t),n})}function XQe(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"?GQe.createSecureServer(n,t):GQe.createServer(e.http,t);return i.on("session",s=>s.setTimeout(e.http2SessionTimeout,()=>{s.close()})),e.forceCloseConnections===!0&&(i.closeHttp2Sessions=OEn(i)),i.setTimeout(e.connectionTimeout),i}let r=n?SEn.createServer(n,t):yEn.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 xEn(e){return e.address==="0.0.0.0"?Object.values(EEn.networkInterfaces()).flatMap(t=>t.filter(n=>n.family==="IPv4")).sort(t=>t.internal?-1:1).map(t=>t.address):[e.address]}function QQe(e,t){let n;typeof e.address()=="string"?n=[e.address()]:(e.address().address.indexOf(":")===-1?n=xEn(e.address()).map(i=>i+":"+e.address().port):n=["["+e.address().address+"]:"+e.address().port],n=n.map(i=>"http"+(this[_En].https?"s":"")+"://"+i));for(let i of n)this.log.info(t(i));return n[0]}function OEn(e){return e[sT]=new Set,e.on("session",function(t){t.once("connect",function(){e[sT].add(t)}),t.once("close",function(){e[sT].delete(t)}),t.once("frameError",function(n,r,i){i===0&&e[sT].delete(t)}),t.once("goaway",function(){e[sT].delete(t)})}),function(){if(e[sT].size!==0)for(let n of e[sT])n.close()}}});var hce=w((bKr,r$e)=>{"use strict";var fce=/(?:^|;)\s*([\w!#$%&'*+.^`|~-]+)=([^;]*)/gm,t$e=/^[\w!#$%&'*+.^`|~-]+$/,n$e=/^[\w!#$%&'*+.^`|~-]+\s*$/,pce=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();t$e.test(c)===!0&&n$e.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(t$e.test(s)===!1||n$e.test(o)===!1)return;this.#i=s,this.#e=o,this.#t=!0,this.#n=!1;let a=fce.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=fce.exec(i);continue}this.#r.set(c,u.slice(1,u.length-1))}else this.#r.set(c,u);a=fce.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}};r$e.exports=pce});var OW=w((EKr,i$e)=>{"use strict";var{kReplyHasStatusCode:PEn}=$s();function NEn(e,t){if(!e[PEn]||e.statusCode===200){let n=t&&(t.statusCode||t.status);e.code(n>=400?n:500)}}i$e.exports={setErrorStatusCode:NEn}});var mce=w((_Kr,o$e)=>{"use strict";var{kReplyIsError:s$e,kReplyHijacked:CEn}=$s(),{setErrorStatusCode:MEn}=OW(),DEn=Y("node:diagnostics_channel"),RM=DEn.tracingChannel("fastify.request.handler");function LEn(e,t,n){n&&(n.async=!0),e.then(function(r){if(t[CEn]!==!0){n&&RM.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[s$e]=!0,t.send(i)}}finally{n&&RM.asyncEnd.publish(n)}}},function(r){n&&(n.error=r,MEn(t,r),RM.error.publish(n),RM.asyncStart.publish(n));try{if(t.sent===!0){t.log.error({err:r},"Promise errored, but reply.sent = true was set");return}t[s$e]=!0,t.send(r)}catch(i){t.send(i)}finally{n&&RM.asyncEnd.publish(n)}})}o$e.exports=LEn});var Sce=w((TKr,c$e)=>{"use strict";var{kSchemaHeaders:CW,kSchemaParams:gce,kSchemaQuerystring:yce,kSchemaBody:oT,kSchemaResponse:a$e}=$s(),UEn=/^[1-5](?:\d{2}|xx)$|^default$/,{FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:FEn}=Ko(),{FSTWRN001:PW}=Lk();function jEn(e,t){if(!e.schema||!e.schema.response)return;let{method:n,url:r}=e.config||{};e[a$e]=Object.keys(e.schema.response).reduce(function(i,s){let o=e.schema.response[s];if(s=s.toLowerCase(),!UEn.test(s))throw new FEn;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 HEn(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[CW]=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[CW]=t({schema:a,method:i,url:s,httpPart:"headers"})}else Object.hasOwn(r,"headers")&&PW("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[oT]=c}else e[oT]=t({schema:r.body,method:i,url:s,httpPart:"body"})}else Object.hasOwn(r,"body")&&PW("body",i,s);r.querystring?e[yce]=t({schema:r.querystring,method:i,url:s,httpPart:"querystring"}):Object.hasOwn(r,"querystring")&&PW("querystring",i,s),r.params?e[gce]=t({schema:r.params,method:i,url:s,httpPart:"params"}):Object.hasOwn(r,"params")&&PW("params",i,s)}function NW(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 MW(e,t,n){let r=n===void 0;if(r||!n.skipParams){let s=NW(e[gce],t,"params");if(s)return typeof s.then!="function"?JS(s,"params",e.schemaErrorFormatter):qEn(s,e,t)}if(r||!n.skipBody){let s=null;if(typeof e[oT]=="function")s=e[oT];else if(e[oT]){let a=VEn(t.headers["content-type"]),c=e[oT][a];c&&(s=c)}let o=NW(s,t,"body");if(o)return typeof o.then!="function"?JS(o,"body",e.schemaErrorFormatter):BEn(o,e,t)}if(r||!n.skipQuery){let s=NW(e[yce],t,"query");if(s)return typeof s.then!="function"?JS(s,"querystring",e.schemaErrorFormatter):zEn(s,e,t)}let i=NW(e[CW],t,"headers");return i?typeof i.then!="function"?JS(i,"headers",e.schemaErrorFormatter):GEn(i,e,t):!1}function qEn(e,t,n){return e.then(r=>r?JS(r,"params",t.schemaErrorFormatter):MW(t,n,{skipParams:!0}))}function BEn(e,t,n){return e.then(r=>r?JS(r,"body",t.schemaErrorFormatter):MW(t,n,{skipParams:!0,skipBody:!0}))}function zEn(e,t,n){return e.then(r=>r?JS(r,"querystring",t.schemaErrorFormatter):MW(t,n,{skipParams:!0,skipBody:!0,skipQuery:!0}))}function GEn(e,t,n){return e.then(r=>r?JS(r,"headers",t.schemaErrorFormatter):!1)}function JS(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 VEn(e){return e?e.trimStart().split(/[ ;]/,1)[0].trim().toLowerCase():""}c$e.exports={symbols:{bodySchema:oT,querystringSchema:yce,responseSchema:a$e,paramsSchema:gce,headersSchema:CW},compileSchemasForValidation:HEn,compileSchemasForSerialization:jEn,validate:MW}});var Tce=w((vKr,_ce)=>{"use strict";var WEn=Y("node:diagnostics_channel"),KEn=hce(),YEn=mce(),{validate:ZEn}=Sce(),{preValidationHookRunner:JEn,preHandlerHookRunner:XEn}=ZS(),{FST_ERR_CTP_INVALID_MEDIA_TYPE:QEn}=Ko(),{setErrorStatusCode:u$e}=OW(),{kReplyIsError:wM,kRouteContext:Th,kFourOhFourContext:$En,kSupportedHTTPMethods:l$e}=$s(),AM=WEn.tracingChannel("fastify.request.handler");function e_n(e,t,n){if(n.sent===!0)return;if(e!=null){n[wM]=!0,n.send(e);return}let r=t.method;if(this[l$e].bodyless.has(r)){Fk(t,n);return}if(this[l$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")){Fk(t,n);return}t[Th].contentTypeParser.run("",Fk,t,n);return}let o=new KEn(s);if(o.isValid===!1){n[wM]=!0,n.status(415).send(new QEn);return}t[Th].contentTypeParser.run(o.toString(),Fk,t,n);return}Fk(t,n)}function Fk(e,t){try{e[Th].preValidation!==null?JEn(e[Th].preValidation,e,t,bce):bce(null,e,t)}catch(n){bce(n,e,t)}}function bce(e,t,n){if(n.sent===!0)return;if(e!=null){n[wM]=!0,n.send(e);return}let r=ZEn(n[Th],t);if(r&&typeof r.then=="function"||!1){let s=d$e.bind(null,t,n);r.then(s,s)}else d$e(t,n,r)}function d$e(e,t,n){if(n){if(t[Th].attachValidation===!1){t.send(n);return}t.request.validationError=n}e[Th].preHandler!==null?XEn(e[Th].preHandler,e,t,Ece):Ece(null,e,t)}function Ece(e,t,n){if(n.sent)return;let r=t[Th];if(!AM.hasSubscribers||r[$En]===null)f$e(e,t,n);else{let i={request:t,reply:n,async:!1,route:{url:r.config.url,method:r.config.method}};AM.start.runStores(i,f$e,void 0,e,t,n,i)}}function f$e(e,t,n,r){let i=t[Th];try{if(e!=null){n[wM]=!0,r&&(r.error=e,u$e(n,e),AM.error.publish(r)),n.send(e);return}let s;try{s=i.handler(t,n)}catch(o){r&&(r.error=o,u$e(n,o),AM.error.publish(r)),n[wM]=!0,n.send(o);return}s!==void 0&&(s!==null&&typeof s.then=="function"?YEn(s,n,r):n.send(s))}finally{r&&AM.end.publish(r)}}_ce.exports=e_n;_ce.exports[Symbol.for("internals")]={handler:Fk,preHandlerCallback:Ece}});var h$e=w((RKr,p$e)=>{"use strict";function jk(){}var t_n={fatal:jk,error:jk,warn:jk,info:jk,debug:jk,trace:jk};Object.defineProperty(p$e,"exports",{get(){return Object.create(t_n)}})});var Rce=w((AKr,y$e)=>{"use strict";var kM=e=>e&&typeof e.message=="string",vce=e=>{if(!e)return;let t=e.cause;if(typeof t=="function"){let n=e.cause();return kM(n)?n:void 0}else return kM(t)?t:void 0},m$e=(e,t)=>{if(!kM(e))return"";let n=e.stack||"";if(t.has(e))return n+` +`+n)}function J_(e,t,n,r,i,s){if(e.listenerCount("wsClientError")){let o=new Error(i);Error.captureStackTrace(o,J_),e.emit("wsClientError",o,n,t)}else cM(n,r,i,s)}});var yJe=w((R4r,gJe)=>{"use strict";var kgn=oJe(),Ign=ZV(),xgn=_k(),Ogn=pae(),Pgn=gae(),Ngn=Tae(),Of=$V(),mJe=hJe();Of.createWebSocketStream=kgn;Of.extension=Ign;Of.PerMessageDeflate=xgn;Of.Receiver=Ogn;Of.Sender=Pgn;Of.Server=mJe;Of.subprotocol=Ngn;Of.WebSocket=Of;Of.WebSocketServer=mJe;gJe.exports=Of});var Rae=w((A4r,SJe)=>{SJe.exports=Y("stream")});var RJe=w((w4r,vJe)=>{"use strict";function bJe(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 EJe(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 tW.alloc(0);for(var r=tW.allocUnsafe(n>>>0),i=this.head,s=0;i;)Hgn(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=tW.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:jgn,value:function(n,r){return Aae(this,EJe(EJe({},r),{},{depth:0,customInspect:!1}))}}]),e})()});var kae=w((k4r,wJe)=>{"use strict";function qgn(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(wae,this,e)):process.nextTick(wae,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(nW,n):(n._writableState.errorEmitted=!0,process.nextTick(AJe,n,s)):process.nextTick(AJe,n,s):t?(process.nextTick(nW,n),t(s)):process.nextTick(nW,n)}),this)}function AJe(e,t){wae(e,t),nW(e)}function nW(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function Bgn(){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 wae(e,t){e.emit("error",t)}function zgn(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}wJe.exports={destroy:qgn,undestroy:Bgn,errorOrDestroy:zgn}});var zS=w((I4r,xJe)=>{"use strict";var IJe={};function Rd(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,IJe[e]=i}function kJe(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 Ggn(e,t,n){return e.substr(!n||n<0?0:+n,t.length)===t}function Vgn(e,t,n){return(n===void 0||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}function Wgn(e,t,n){return typeof n!="number"&&(n=0),n+t.length>e.length?!1:e.indexOf(t,n)!==-1}Rd("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);Rd("ERR_INVALID_ARG_TYPE",function(e,t,n){let r;typeof t=="string"&&Ggn(t,"not ")?(r="must not be",t=t.replace(/^not /,"")):r="must be";let i;if(Vgn(e," argument"))i=`The ${e} ${r} ${kJe(t,"type")}`;else{let s=Wgn(e,".")?"property":"argument";i=`The "${e}" ${s} ${r} ${kJe(t,"type")}`}return i+=`. Received type ${typeof n}`,i},TypeError);Rd("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Rd("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});Rd("ERR_STREAM_PREMATURE_CLOSE","Premature close");Rd("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});Rd("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Rd("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Rd("ERR_STREAM_WRITE_AFTER_END","write after end");Rd("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Rd("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);Rd("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");xJe.exports.codes=IJe});var Iae=w((x4r,OJe)=>{"use strict";var Kgn=zS().codes.ERR_INVALID_OPT_VALUE;function Ygn(e,t,n){return e.highWaterMark!=null?e.highWaterMark:t?e[n]:null}function Zgn(e,t,n,r){var i=Ygn(t,r,n);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var s=r?n:"highWaterMark";throw new Kgn(s,i)}return Math.floor(i)}return e.objectMode?16:16*1024}OJe.exports={getHighWaterMark:Zgn}});var PJe=w((O4r,xae)=>{typeof Object.create=="function"?xae.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:xae.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 X_=w((P4r,Pae)=>{try{if(Oae=Y("util"),typeof Oae.inherits!="function")throw"";Pae.exports=Oae.inherits}catch{Pae.exports=PJe()}var Oae});var CJe=w((N4r,NJe)=>{NJe.exports=Y("util").deprecate});var Mae=w((C4r,jJe)=>{"use strict";jJe.exports=gs;function DJe(e){var t=this;this.next=null,this.entry=null,this.finish=function(){Tyn(t,e)}}var kk;gs.WritableState=lM;var Jgn={deprecate:CJe()},LJe=Rae(),iW=Y("buffer").Buffer,Xgn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Qgn(e){return iW.from(e)}function $gn(e){return iW.isBuffer(e)||e instanceof Xgn}var Cae=kae(),eyn=Iae(),tyn=eyn.getHighWaterMark,GS=zS().codes,nyn=GS.ERR_INVALID_ARG_TYPE,ryn=GS.ERR_METHOD_NOT_IMPLEMENTED,iyn=GS.ERR_MULTIPLE_CALLBACK,syn=GS.ERR_STREAM_CANNOT_PIPE,oyn=GS.ERR_STREAM_DESTROYED,ayn=GS.ERR_STREAM_NULL_VALUES,cyn=GS.ERR_STREAM_WRITE_AFTER_END,uyn=GS.ERR_UNKNOWN_ENCODING,Ik=Cae.errorOrDestroy;X_()(gs,LJe);function lyn(){}function lM(e,t,n){kk=kk||Q_(),e=e||{},typeof n!="boolean"&&(n=t instanceof kk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=tyn(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){yyn(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 DJe(this)}lM.prototype.getBuffer=function(){for(var t=this.bufferedRequest,n=[];t;)n.push(t),t=t.next;return n};(function(){try{Object.defineProperty(lM.prototype,"buffer",{get:Jgn.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var rW;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(rW=Function.prototype[Symbol.hasInstance],Object.defineProperty(gs,Symbol.hasInstance,{value:function(t){return rW.call(this,t)?!0:this!==gs?!1:t&&t._writableState instanceof lM}})):rW=function(t){return t instanceof this};function gs(e){kk=kk||Q_();var t=this instanceof kk;if(!t&&!rW.call(gs,this))return new gs(e);this._writableState=new lM(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)),LJe.call(this)}gs.prototype.pipe=function(){Ik(this,new syn)};function dyn(e,t){var n=new cyn;Ik(e,n),process.nextTick(t,n)}function fyn(e,t,n,r){var i;return n===null?i=new ayn:typeof n!="string"&&!t.objectMode&&(i=new nyn("chunk",["string","Buffer"],n)),i?(Ik(e,i),process.nextTick(r,i),!1):!0}gs.prototype.write=function(e,t,n){var r=this._writableState,i=!1,s=!r.objectMode&&$gn(e);return s&&!iW.isBuffer(e)&&(e=Qgn(e)),typeof t=="function"&&(n=t,t=null),s?t="buffer":t||(t=r.defaultEncoding),typeof n!="function"&&(n=lyn),r.ending?dyn(this,n):(s||fyn(this,r,e,n))&&(r.pendingcb++,i=hyn(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&&UJe(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 uyn(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(gs.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function pyn(e,t,n){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=iW.from(t,n)),t}Object.defineProperty(gs.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function hyn(e,t,n,r,i,s){if(!n){var o=pyn(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 vyn=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};qJe.exports=Eh;var HJe=Uae(),Lae=Mae();X_()(Eh,HJe);for(Dae=vyn(Lae.prototype),sW=0;sW{var aW=Y("buffer"),_h=aW.Buffer;function BJe(e,t){for(var n in e)t[n]=e[n]}_h.from&&_h.alloc&&_h.allocUnsafe&&_h.allocUnsafeSlow?zJe.exports=aW:(BJe(aW,Fae),Fae.Buffer=$_);function $_(e,t,n){return _h(e,t,n)}$_.prototype=Object.create(_h.prototype);BJe(_h,$_);$_.from=function(e,t,n){if(typeof e=="number")throw new TypeError("Argument must not be a number");return _h(e,t,n)};$_.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};$_.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return _h(e)};$_.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return aW.SlowBuffer(e)}});var qae=w(WJe=>{"use strict";var Hae=GJe().Buffer,VJe=Hae.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 wyn(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 kyn(e){var t=wyn(e);if(typeof t!="string"&&(Hae.isEncoding===VJe||!VJe(e)))throw new Error("Unknown encoding: "+e);return t||e}WJe.StringDecoder=dM;function dM(e){this.encoding=kyn(e);var t;switch(this.encoding){case"utf16le":this.text=Cyn,this.end=Myn,t=4;break;case"utf8":this.fillLast=Oyn,t=4;break;case"base64":this.text=Dyn,this.end=Lyn,t=3;break;default:this.write=Uyn,this.end=Fyn;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Hae.allocUnsafe(t)}dM.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 xyn(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=xyn(this,e,t);if(n!==void 0)return n;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function Pyn(e,t){var n=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 Nyn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function Cyn(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 Myn(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 Lyn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Uyn(e){return e.toString(this.encoding)}function Fyn(e){return e&&e.length?this.write(e):""}});var cW=w((L4r,ZJe)=>{"use strict";var KJe=zS().codes.ERR_STREAM_PREMATURE_CLOSE;function jyn(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 uW;function VS(e,t,n){return t=Byn(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Byn(e){var t=zyn(e,"string");return typeof t=="symbol"?t:String(t)}function zyn(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 Gyn=cW(),WS=Symbol("lastResolve"),eT=Symbol("lastReject"),fM=Symbol("error"),lW=Symbol("ended"),tT=Symbol("lastPromise"),Bae=Symbol("handlePromise"),nT=Symbol("stream");function KS(e,t){return{value:e,done:t}}function Vyn(e){var t=e[WS];if(t!==null){var n=e[nT].read();n!==null&&(e[tT]=null,e[WS]=null,e[eT]=null,t(KS(n,!1)))}}function Wyn(e){process.nextTick(Vyn,e)}function Kyn(e,t){return function(n,r){e.then(function(){if(t[lW]){n(KS(void 0,!0));return}t[Bae](n,r)},r)}}var Yyn=Object.getPrototypeOf(function(){}),Zyn=Object.setPrototypeOf((uW={get stream(){return this[nT]},next:function(){var t=this,n=this[fM];if(n!==null)return Promise.reject(n);if(this[lW])return Promise.resolve(KS(void 0,!0));if(this[nT].destroyed)return new Promise(function(o,a){process.nextTick(function(){t[fM]?a(t[fM]):o(KS(void 0,!0))})});var r=this[tT],i;if(r)i=new Promise(Kyn(r,this));else{var s=this[nT].read();if(s!==null)return Promise.resolve(KS(s,!1));i=new Promise(this[Bae])}return this[tT]=i,i}},VS(uW,Symbol.asyncIterator,function(){return this}),VS(uW,"return",function(){var t=this;return new Promise(function(n,r){t[nT].destroy(null,function(i){if(i){r(i);return}n(KS(void 0,!0))})})}),uW),Yyn),Jyn=function(t){var n,r=Object.create(Zyn,(n={},VS(n,nT,{value:t,writable:!0}),VS(n,WS,{value:null,writable:!0}),VS(n,eT,{value:null,writable:!0}),VS(n,fM,{value:null,writable:!0}),VS(n,lW,{value:t._readableState.endEmitted,writable:!0}),VS(n,Bae,{value:function(s,o){var a=r[nT].read();a?(r[tT]=null,r[WS]=null,r[eT]=null,s(KS(a,!1))):(r[WS]=s,r[eT]=o)},writable:!0}),n));return r[tT]=null,Gyn(t,function(i){if(i&&i.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=r[eT];s!==null&&(r[tT]=null,r[WS]=null,r[eT]=null,s(i)),r[fM]=i;return}var o=r[WS];o!==null&&(r[tT]=null,r[WS]=null,r[eT]=null,o(KS(void 0,!0))),r[lW]=!0}),t.on("readable",Wyn.bind(null,r)),r};JJe.exports=Jyn});var tXe=w((F4r,eXe)=>{"use strict";function QJe(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 Xyn(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var s=e.apply(t,n);function o(c){QJe(s,r,i,o,a,"next",c)}function a(c){QJe(s,r,i,o,a,"throw",c)}o(void 0)})}}function $Je(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 Qyn(e){for(var t=1;t{"use strict";dXe.exports=nr;var xk;nr.ReadableState=sXe;var j4r=Y("events").EventEmitter,iXe=function(t,n){return t.listeners(n).length},hM=Rae(),dW=Y("buffer").Buffer,iSn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function sSn(e){return dW.from(e)}function oSn(e){return dW.isBuffer(e)||e instanceof iSn}var zae=Y("util"),An;zae&&zae.debuglog?An=zae.debuglog("stream"):An=function(){};var aSn=RJe(),Jae=kae(),cSn=Iae(),uSn=cSn.getHighWaterMark,fW=zS().codes,lSn=fW.ERR_INVALID_ARG_TYPE,dSn=fW.ERR_STREAM_PUSH_AFTER_EOF,fSn=fW.ERR_METHOD_NOT_IMPLEMENTED,pSn=fW.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,Ok,Gae,Vae;X_()(nr,hM);var pM=Jae.errorOrDestroy,Wae=["error","close","destroy","pause","resume"];function hSn(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 sXe(e,t,n){xk=xk||Q_(),e=e||{},typeof n!="boolean"&&(n=t instanceof xk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=uSn(this,e,"readableHighWaterMark",n),this.buffer=new aSn,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&&(Ok||(Ok=qae().StringDecoder),this.decoder=new Ok(e.encoding),this.encoding=e.encoding)}function nr(e){if(xk=xk||Q_(),!(this instanceof nr))return new nr(e);var t=this instanceof xk;this._readableState=new sXe(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),hM.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=Jae.destroy;nr.prototype._undestroy=Jae.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=dW.from(e,t),t=""),r=!0),oXe(this,e,t,!1,r)};nr.prototype.unshift=function(e){return oXe(this,e,null,!0,!1)};function oXe(e,t,n,r,i){An("readableAddChunk",t);var s=e._readableState;if(t===null)s.reading=!1,ySn(e,s);else{var o;if(i||(o=mSn(s,t)),o)pM(e,o);else if(s.objectMode||t&&t.length>0)if(typeof t!="string"&&!s.objectMode&&Object.getPrototypeOf(t)!==dW.prototype&&(t=sSn(t)),r)s.endEmitted?pM(e,new pSn):Kae(e,s,t,!0);else if(s.ended)pM(e,new dSn);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||t.length!==0?Kae(e,s,t,!1):Zae(e,s)):Kae(e,s,t,!1)}else r||(s.reading=!1,Zae(e,s))}return!s.ended&&(s.length=nXe?e=nXe:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function rXe(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=gSn(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?Yae(this):pW(this),null;if(e=rXe(e,t),e===0&&t.ended)return t.length===0&&Yae(this),null;var r=t.needReadable;An("need readable",r),(t.length===0||t.length-e0?i=uXe(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&&Yae(this)),i!==null&&this.emit("data",i),i};function ySn(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?pW(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,aXe(e)))}}function pW(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(aXe,e))}function aXe(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,Xae(e)}function Zae(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(SSn,e,t))}function SSn(e,t){for(;!t.reading&&!t.ended&&(t.length1&&lXe(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),iXe(e,"error")===0&&pM(e,g)}hSn(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 bSn(e){return function(){var n=e._readableState;An("pipeOnDrain",n.awaitDrain),n.awaitDrain&&n.awaitDrain--,n.awaitDrain===0&&iXe(e,"data")&&(n.flowing=!0,Xae(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?pW(this):r.reading||process.nextTick(ESn,this)),n};nr.prototype.addListener=nr.prototype.on;nr.prototype.removeListener=function(e,t){var n=hM.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(cXe,this),n};nr.prototype.removeAllListeners=function(e){var t=hM.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(cXe,this),t};function cXe(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 ESn(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,_Sn(this,e)),e.paused=!1,this};function _Sn(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(TSn,e,t))}function TSn(e,t){An("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),Xae(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 Xae(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 Yae(e){var t=e._readableState;An("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(vSn,t,e))}function vSn(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 Vae===void 0&&(Vae=tXe()),Vae(nr,e,t)});function lXe(e,t){for(var n=0,r=e.length;n{"use strict";pXe.exports=tg;var hW=zS().codes,RSn=hW.ERR_METHOD_NOT_IMPLEMENTED,ASn=hW.ERR_MULTIPLE_CALLBACK,wSn=hW.ERR_TRANSFORM_ALREADY_TRANSFORMING,kSn=hW.ERR_TRANSFORM_WITH_LENGTH_0,mW=Q_();X_()(tg,mW);function ISn(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(r===null)return this.emit("error",new ASn);n.writechunk=null,n.writecb=null,t!=null&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{"use strict";mXe.exports=mM;var hXe=Qae();X_()(mM,hXe);function mM(e){if(!(this instanceof mM))return new mM(e);hXe.call(this,e)}mM.prototype._transform=function(e,t,n){n(null,e)}});var _Xe=w((z4r,EXe)=>{"use strict";var $ae;function OSn(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var bXe=zS().codes,PSn=bXe.ERR_MISSING_ARGS,NSn=bXe.ERR_STREAM_DESTROYED;function yXe(e){if(e)throw e}function CSn(e){return e.setHeader&&typeof e.abort=="function"}function MSn(e,t,n,r){r=OSn(r);var i=!1;e.on("close",function(){i=!0}),$ae===void 0&&($ae=cW()),$ae(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,CSn(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();r(o||new NSn("pipe"))}}}function SXe(e){e()}function DSn(e,t){return e.pipe(t)}function LSn(e){return!e.length||typeof e[e.length-1]!="function"?yXe:e.pop()}function USn(){for(var e=arguments.length,t=new Array(e),n=0;n0;return MSn(o,c,u,function(l){i||(i=l),l&&s.forEach(SXe),!c&&(s.forEach(SXe),r(i))})});return t.reduce(DSn)}EXe.exports=USn});var TXe=w((Ad,yM)=>{var gM=Y("stream");process.env.READABLE_STREAM==="disable"&&gM?(yM.exports=gM.Readable,Object.assign(yM.exports,gM),yM.exports.Stream=gM):(Ad=yM.exports=Uae(),Ad.Stream=gM||Ad,Ad.Readable=Ad,Ad.Writable=Mae(),Ad.Duplex=Q_(),Ad.Transform=Qae(),Ad.PassThrough=gXe(),Ad.finished=cW(),Ad.pipeline=_Xe())});var AXe=w((G4r,RXe)=>{RXe.exports=vXe;function vXe(e,t){if(e&&t)return vXe(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 wXe=AXe();ece.exports=wXe(gW);ece.exports.strict=wXe(kXe);gW.proto=gW(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return gW(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return kXe(this)},configurable:!0})});function gW(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function kXe(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 PXe=w((W4r,OXe)=>{var FSn=IXe(),jSn=function(){},HSn=global.Bare?queueMicrotask:process.nextTick.bind(process),qSn=function(e){return e.setHeader&&typeof e.abort=="function"},BSn=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},xXe=function(e,t,n){if(typeof t=="function")return xXe(e,null,t);t||(t={}),n=FSn(n||jSn);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(){HSn(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 qSn(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)),BSn(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)}};OXe.exports=xXe});var CXe=w((K4r,NXe)=>{NXe.exports=zSn;function zSn(e){var t=e._readableState;return t?t.objectMode||typeof e._duplexState=="number"?e.read():e.read(GSn(t)):null}function GSn(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 FXe=w((Y4r,UXe)=>{var yW=TXe(),MXe=PXe(),VSn=X_(),WSn=CXe(),DXe=Buffer.from&&Buffer.from!==Uint8Array.from?Buffer.from([0]):new Buffer([0]),tce=function(e,t){e._corked?e.once("uncork",t):t()},KSn=function(e,t){e._autoDestroy&&e.destroy(t)},LXe=function(e,t){return function(n){n?KSn(e,n.message==="premature close"?null:n):t&&!e._ended&&e.end()}},YSn=function(e,t){if(!e||e._writableState&&e._writableState.finished)return t();if(e._writableState)return e.end(t);e.end(),t()},ZSn=function(){},JSn=function(e){return new yW.Readable({objectMode:!0,highWaterMark:16}).wrap(e)},_a=function(e,t,n){if(!(this instanceof _a))return new _a(e,t,n);yW.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)};VSn(_a,yW.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=MXe(e,{writable:!0,readable:!1},LXe(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=MXe(e,{writable:!1,readable:!0},LXe(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:JSn(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=WSn(this._readable2))!==null;)this.destroyed||(this._drained=this.push(e));this._forwarding=!1}};_a.prototype.destroy=function(e,t){if(t||(t=ZSn),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 tce(this,this._write.bind(this,e,t,n));if(e===DXe)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"),tce(this,function(){YSn(t._forwardEnd&&t._writable,function(){t._writableState.prefinished===!1&&(t._writableState.prefinished=!0),t.emit("prefinish"),tce(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(DXe),yW.Writable.prototype.end.call(this,n))};UXe.exports=_a});var BXe=w((Z4r,bW)=>{"use strict";var{ServerResponse:XSn}=Y("node:http"),{PassThrough:jXe}=Y("node:stream"),{randomBytes:QSn}=Y("node:crypto"),$Sn=JC(),HXe=yJe(),qXe=FXe(),rT=Symbol("ws-socket"),SW=Symbol("ws-head"),ebn=/HTTP\/1.1 (\d+)/u;function nce(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 HXe.Server(s);e.decorate("websocketServer",a);async function c(h="/",m={},g={}){let y=new jXe,b=new jXe,S=new qXe(y,b),E=new qXe(b,y),_=new HXe(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(ebn.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":QSn(16).toString("base64")},httpVersion:"1.1",url:h,[rT]:S,[SW]:T};return o.emit("upgrade",P,P[rT],P[SW]),x}e.decorate("injectWS",c);function u(h,m,g){h[rT]=m,h[SW]=g;let y=new XSn(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[rT],h[SW],g=>{a.emit("connection",g,h),g.on("error",y=>{e.log.error(y)}),m(g)})};e.addHook("onRequest",(h,m,g)=>{h.raw[rT]?h.ws=!0:h.ws=!1,g()}),e.addHook("onResponse",(h,m,g)=>{h.ws&&h.raw[rT].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[rT])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()}bW.exports=$Sn(nce,{fastify:"5.x",name:"@fastify/websocket"});bW.exports.default=nce;bW.exports.fastifyWebsocket=nce});var GXe=w((J4r,zXe)=>{"use strict";function tbn(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}}zXe.exports=tbn});var WXe=w((X4r,rce)=>{"use strict";var nbn=GXe();function VXe(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=nbn(rbn),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 rbn(){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 ibn(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=VXe(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}}rce.exports=VXe;rce.exports.promise=ibn});var _W=w((Q4r,SM)=>{"use strict";var{format:sbn}=Y("node:util");function obn(){return`${this.name} [${this.code}]: ${this.message}`}var EW=Symbol.for("fastify-error-generic");function Pk(e,t,n=500,r=Error,i=Pk.captureStackTrace){let s=e===EW;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=sbn(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},[EW]:{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[EW]},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=obn,a}Pk.captureStackTrace=!0;var abn=Pk(EW,"Fastify Error",500,Error);SM.exports=Pk;SM.exports.FastifyError=abn;SM.exports.default=Pk;SM.exports.createError=Pk});var TW=w(($4r,KXe)=>{"use strict";var{createError:YS}=_W();KXe.exports={AVV_ERR_EXPOSE_ALREADY_DEFINED:YS("AVV_ERR_EXPOSE_ALREADY_DEFINED","'%s' is already defined, specify an expose option for '%s'"),AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:YS("AVV_ERR_ATTRIBUTE_ALREADY_DEFINED","'%s' is already defined"),AVV_ERR_CALLBACK_NOT_FN:YS("AVV_ERR_CALLBACK_NOT_FN","Callback for '%s' hook is not a function. Received: '%s'"),AVV_ERR_PLUGIN_NOT_VALID:YS("AVV_ERR_PLUGIN_NOT_VALID","Plugin must be a function or a promise. Received: '%s'"),AVV_ERR_ROOT_PLG_BOOTED:YS("AVV_ERR_ROOT_PLG_BOOTED","Root plugin has already booted"),AVV_ERR_PARENT_PLG_LOADED:YS("AVV_ERR_PARENT_PLG_LOADED","Impossible to load '%s' plugin because the parent '%s' was already loaded"),AVV_ERR_READY_TIMEOUT:YS("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:YS("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 Nk=w((eKr,YXe)=>{"use strict";var cbn=Symbol("avvio.Boot"),ubn=Symbol("isOnCloseHandler"),lbn=Symbol("avvio.ThenifyDoNotWrap"),dbn=Symbol("avvio.TimeTree.untrackNode"),fbn=Symbol("avvio.TimeTree.trackNode"),pbn=Symbol("avvio.TimeTree.getParent"),hbn=Symbol("avvio.TimeTree.getNode"),mbn=Symbol("avvio.TimeTree.addNode"),gbn=Symbol.for("plugin-meta");YXe.exports={kAvvio:cbn,kIsOnCloseHandler:ubn,kThenifyDoNotWrap:lbn,kUntrackNode:dbn,kTrackNode:fbn,kGetParent:pbn,kGetNode:hbn,kAddNode:mbn,kPluginMeta:gbn}});var tQe=w((tKr,eQe)=>{"use strict";var{kUntrackNode:ZXe,kTrackNode:ice,kGetParent:JXe,kGetNode:XXe,kAddNode:QXe}=Nk(),sce=class{constructor(){this.root=null,this.tableId=new Map,this.tableLabel=new Map}[ice](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)}[JXe](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}[XXe](t){return this.tableId.get(t)}[QXe](t,n,r){let i=this[JXe](t);if(i===null)return this.root={parent:null,id:"root",label:n,nodes:[],start:r,stop:null,diff:-1},this[ice](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[ice](a),o}start(t,n,r=Date.now()){return this[QXe](t,n,r)}stop(t,n=Date.now()){let r=this[XXe](t);r&&(r.stop=n,r.diff=r.stop-r.start||0,this[ZXe](r))}toJSON(){return Object.assign({},this.root)}prettyPrint(){return $Xe(this.toJSON())}};function $Xe(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:ybn}=Y("node:util"),Sbn=ybn("avvio");nQe.exports={debug:Sbn}});var iQe=w((rKr,rQe)=>{"use strict";function bbn(){let e={resolve:null,reject:null,promise:null};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}rQe.exports={createPromise:bbn}});var aQe=w((iKr,oQe)=>{"use strict";var{kPluginMeta:sQe}=Nk();function Ebn(e,t){return e[sQe]?.name?e[sQe].name:t?.name?t.name:e.name?e.name:e.toString().split(` +`).slice(0,2).map(n=>n.trim()).join(" -- ")}oQe.exports={getPluginName:Ebn}});var RW=w((sKr,cQe)=>{"use strict";function _bn(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}cQe.exports={isPromiseLike:_bn}});var lQe=w((oKr,uQe)=>{"use strict";var{EventEmitter:Tbn}=Y("node:events"),{inherits:vbn}=Y("node:util"),{debug:Ta}=vW(),{createPromise:Rbn}=iQe(),{AVV_ERR_PLUGIN_EXEC_TIMEOUT:Abn}=TW(),{getPluginName:wbn}=aQe(),{isPromiseLike:kbn}=RW();function Ck(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=wbn(t,n),this.queue.pause(),this._error=null,this.loaded=!1,this._promise=null,this.startTime=null}vbn(Ck,Tbn);Ck.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 Abn(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);kbn(a)?(Ta("exec: resolving promise",r),a.then(()=>process.nextTick(o),c=>process.nextTick(o,c))):n.length<3&&o()};Ck.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=Rbn(),t=this._promise.promise,this.server?e():this.on("start",e)),t};Ck.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)};Ck.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=Ibn,queueMicrotask(r)}};queueMicrotask(r),this.queue.resume()};function Ibn(){}uQe.exports={Plugin:Ck}});var fQe=w((aKr,dQe)=>{"use strict";var{AVV_ERR_PLUGIN_NOT_VALID:oce}=TW();function xbn(e){if(!(e&&(typeof e=="function"||typeof e.then=="function")))throw Array.isArray(e)?new oce("array"):e===null?new oce("null"):new oce(typeof e)}dQe.exports={validatePlugin:xbn}});var hQe=w((cKr,pQe)=>{"use strict";function Obn(e){return e!==null&&typeof e=="object"&&typeof e.default=="function"}pQe.exports={isBundledOrTypescriptPlugin:Obn}});var yQe=w((uKr,gQe)=>{"use strict";var{debug:mQe}=vW(),{kThenifyDoNotWrap:ace}=Nk();function Pbn(){if(this.booted){mQe("thenify returning undefined because we are already booted");return}if(this[ace]){this[ace]=!1;return}return mQe("thenify"),(e,t)=>this._loadRegistered().then(()=>(this[ace]=!0,e(this._server)),t)}gQe.exports={thenify:Pbn}});var bQe=w((lKr,SQe)=>{"use strict";var{isPromiseLike:Nbn}=RW(),{kAvvio:Cbn}=Nk();function Mbn(e,t,n){let r;try{r=e.apply(e,t)}catch(i){n&&process.nextTick(n,i);return}Nbn(r)&&!r[Cbn]?r.then(()=>process.nextTick(n),i=>process.nextTick(n,i)):n&&process.nextTick(n)}SQe.exports={executeWithThenable:Mbn}});var IQe=w((dKr,kQe)=>{"use strict";var AW=WXe(),Dbn=Y("node:events").EventEmitter,Lbn=Y("node:util").inherits,{AVV_ERR_EXPOSE_ALREADY_DEFINED:bM,AVV_ERR_CALLBACK_NOT_FN:Mk,AVV_ERR_ROOT_PLG_BOOTED:Ubn,AVV_ERR_READY_TIMEOUT:Fbn,AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:jbn}=TW(),{kAvvio:TQe,kIsOnCloseHandler:vQe}=Nk(),{TimeTree:Hbn}=tQe(),{Plugin:RQe}=lQe(),{debug:Dk}=vW(),{validatePlugin:qbn}=fQe(),{isBundledOrTypescriptPlugin:Bbn}=hQe(),{isPromiseLike:zbn}=RW(),{thenify:AQe}=yQe(),{executeWithThenable:EQe}=bQe();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 Hbn,this._readyQ=AW(this,wQe,1),this._readyQ.pause(),this._readyQ.drain=()=>{this.emit("start"),this._readyQ.drain=_Qe},this._closeQ=AW(this,Vbn,1),this._closeQ.pause(),this._closeQ.drain=()=>{this.emit("close"),this._closeQ.drain=_Qe},this._doStart=null;let r=this;this._root=new RQe(AW(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=>{Dk("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()})}Lbn(Ms,Dbn);"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[TQe]=!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(Bbn(e)&&(e=e.default),qbn(e),t=t||{},this.booted)throw new Ubn;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 RQe(AW(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 bM(r,"use");if(n[r]=function(c,u){return t.use(c,u),this},n[i])throw new bM(i,"after");if(n[i]=function(c){return typeof c!="function"?t._loadRegistered():(t.after(cce(c,this)),this)},n[s])throw new bM(s,"ready");if(n[s]=function(c){if(c&&typeof c!="function")throw new Mk(s,typeof c);return t.ready(c?cce(c,this):void 0)},n[o])throw new bM(o,"onClose");if(n[o]=function(c){if(typeof c!="function")throw new Mk(o,typeof c);return t.onClose(Wbn(c,this)),this},n[a])throw new bM(a,"close");if(n[a]=function(c){if(c&&typeof c!="function")throw new Mk(a,typeof c);return c?(t.close(cce(c,this)),this):t.close()},n.then)throw new jbn("then");Object.defineProperty(n,"then",{get:AQe.bind(t)}),n[TQe]=!0};Ms.prototype.after=function(e){if(!e)return this._loadRegistered();this._addPlugin(t.bind(this),{},!0);function t(n,r,i){wQe.call(this,e,i)}return this};Ms.prototype.onClose=function(e){if(typeof e!="function")throw new Mk("onClose",typeof e);return e[vQe]=!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 Mk("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 Mk("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(zbn(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){Dk("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 Dk("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 _Qe(){}function wQe(e,t){let n=this._server,r=this._error;if(this._error=null,e.length===0)this._error=r,EQe(e,[],t);else if(e.length===1)EQe(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 Gbn.call(this,e,r,n,t)}function Gbn(e,t,n,r){let i=e.unwrappedName??e.name;Dk("setting up ready timeout",i,this._opts.timeout);let s=setTimeout(()=>{Dk("timed out",i),s=null;let a=new Fbn(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 Vbn(e,t){let n=this._server,r=e[vQe];if(e.length===0||e.length===1){let i;r?i=e(n):i=e(this._error),i&&typeof i.then=="function"?(Dk("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 Wbn(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 cce(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)}}kQe.exports=Ms});var $s=w((fKr,xQe)=>{"use strict";var Kbn={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")};xQe.exports=Kbn});var PQe=w((pKr,wW)=>{"use strict";var{format:uce}=Y("node:util");function Ybn(e){return OQe({...e,name:"DeprecationWarning"})}function OQe({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=uce(n,o,a,c):o&&a?u=uce(n,o,a):o?u=uce(n,o):u=n,u},s}var lce={createWarning:OQe,createDeprecation:Ybn};wW.exports=lce;wW.exports.default=lce;wW.exports.processWarning=lce});var Lk=w((hKr,NQe)=>{"use strict";var{createWarning:EM}=PQe(),Zbn=EM({name:"FastifyWarning",code:"FSTWRN001",message:"The %s schema for %s: %s is missing. This may indicate the schema is not well specified.",unlimited:!0}),Jbn=EM({name:"FastifyWarning",code:"FSTWRN003",message:"The %s mixes async and callback styles that may lead to unhandled rejections. Please use only one of them.",unlimited:!0}),Xbn=EM({name:"FastifyWarning",code:"FSTWRN004",message:"It seems that you are overriding an errorHandler in the same scope, which can lead to subtle bugs.",unlimited:!0}),Qbn=EM({name:"FastifySecurity",code:"FSTSEC001",message:'You are using /%s/ Content-Type which may be vulnerable to CORS attack. Please make sure your RegExp start with "^" or include ";?" to proper detection of the essence MIME type.',unlimited:!0}),$bn=EM({name:"FastifyWarning",code:"FSTDEP022",message:'The router options for %s property access is deprecated. Please use "options.routerOptions" instead for accessing router options. The router options will be removed in `fastify@6`.',unlimited:!0});NQe.exports={FSTWRN001:Zbn,FSTWRN003:Jbn,FSTWRN004:Xbn,FSTSEC001:Qbn,FSTDEP022:$bn}});var Ko=w((mKr,kW)=>{"use strict";var je=_W(),iT={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 eEn(e,t){return t.cause=e,t}kW.exports=iT;kW.exports.appendStackTrace=eEn;kW.exports.AVVIO_ERRORS_MAP={AVV_ERR_CALLBACK_NOT_FN:iT.FST_ERR_PLUGIN_CALLBACK_NOT_FN,AVV_ERR_PLUGIN_NOT_VALID:iT.FST_ERR_PLUGIN_NOT_VALID,AVV_ERR_ROOT_PLG_BOOTED:iT.FST_ERR_ROOT_PLG_BOOTED,AVV_ERR_PARENT_PLG_LOADED:iT.FST_ERR_PARENT_PLUGIN_BOOTED,AVV_ERR_READY_TIMEOUT:iT.FST_ERR_PLUGIN_TIMEOUT,AVV_ERR_PLUGIN_EXEC_TIMEOUT:iT.FST_ERR_PLUGIN_TIMEOUT}});var ZS=w((gKr,qQe)=>{"use strict";var tEn=["onRoute","onRegister","onReady","onListen","preClose","onClose"],LQe=["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError","onRequestAbort"],nEn=LQe.concat(tEn),{FST_ERR_HOOK_INVALID_TYPE:rEn,FST_ERR_HOOK_INVALID_HANDLER:iEn,FST_ERR_SEND_UNDEFINED_ERR:IW,FST_ERR_HOOK_TIMEOUT:sEn,FST_ERR_HOOK_NOT_SUPPORTED:oEn,AVVIO_ERRORS_MAP:CQe,appendStackTrace:MQe}=Ko(),{kChildren:_M,kHooks:UQe,kRequestPayloadStream:DQe}=$s();function TM(){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=[]}TM.prototype=Object.create(null);TM.prototype.validate=function(e,t){if(typeof e!="string")throw new rEn;if(Array.isArray(this[e])===!1)throw new oEn(e);if(typeof t!="function")throw new iEn(e,Object.prototype.toString.call(t))};TM.prototype.add=function(e,t){this.validate(e,t),this[e].push(t)};function aEn(e){let t=new TM;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 FQe(e,t,n,r){let i=n[UQe][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=MQe(l,new sEn(e,f)):l=CQe[l.code]!=null?MQe(l,new CQe[l.code](l.message)):l,r(l);return}r()}function c(l){if(l){a(l);return}if(s===i.length&&o===n[_M].length){s===0&&o===0?a():t(function(f,p){a(f),p(f)});return}if(s===i.length&&o{"use strict";BQe.exports=function(){return{[Symbol.iterator]:function*(){},add(){},delete(){},has(){return!0}}}});var dce=w((SKr,VQe)=>{"use strict";var{kTestInternals:yEn}=$s();function GQe(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}VQe.exports={withResolvers:typeof Promise.withResolvers=="function"?Promise.withResolvers.bind(Promise):GQe,[yEn]:{withResolvers:GQe}}});var n$e=w((bKr,t$e)=>{"use strict";var SEn=Y("node:http"),bEn=Y("node:https"),WQe=Y("node:http2"),EEn=Y("node:dns"),_En=Y("node:os"),{kState:Ds,kOptions:TEn,kServerBindings:vEn,kHttp2ServerSessions:sT}=$s(),{FSTWRN003:REn}=Lk(),{onListenHookRunner:xW}=ZS(),{FST_ERR_REOPENED_CLOSE_SERVER:YQe,FST_ERR_REOPENED_SERVER:ZQe,FST_ERR_LISTEN_OPTIONS_INVALID:AEn,FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:wEn}=Ko(),kEn=zQe(),JQe=dce();t$e.exports.createServer=IEn;function XQe(e){return`Server listening at ${e}`}function IEn(e,t){let n=$Qe(e,t);function r(u={port:0,host:"localhost"},l=void 0){if(typeof l=="function"&&(l.constructor.name==="AsyncFunction"&&REn("listen method"),u.cb=l),u.signal){if(typeof u.signal.on!="function"&&typeof u.signal.addEventListener!="function")throw new AEn("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}KQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,l(null,p),xW(this)})}:u.cb=(f,p)=>{if(f){l(f,p);return}this[Ds].listening=!0,l(null,p),xW(this)},l===void 0)return xEn.call(this,n,u).then(p=>{let{promise:h,resolve:m}=JQe.withResolvers();return d==="localhost"?KQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,m(p),xW(this)}):(m(p),xW(this)),h});this.ready(QQe.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 wEn;typeof a!="boolean"&&(a=s?"idle":!1);let c=!i&&a===!0?new Set:kEn();return{server:n,listen:r,forceCloseConnections:a,serverHasCloseAllConnections:i,serverHasCloseHttp2Sessions:o,keepAliveConnections:c}}function KQe(e,t,n,r,i){this[Ds].listening=!1,EEn.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[vEn].push(h),u===c&&i()}}),h=$Qe(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,QQe.call(this,h,p)()}}if(c===0){i();return}let l=e.unref;e.unref=function(){l.call(e),e.emit("unref")}})}function QQe(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=e$e.call(this,e,t.listenTextResolver||XQe);t.cb(null,i)}};return r=>{if(r!=null)return t.cb(r);if(this[Ds].listening&&this[Ds].closing)return t.cb(new YQe,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 xEn(e,t){return this[Ds].listening&&this[Ds].closing?Promise.reject(new YQe):this[Ds].listening?Promise.reject(new ZQe):this.ready().then(()=>{if(this[Ds].aborted)return;let{promise:n,resolve:r,reject:i}=JQe.withResolvers(),s=c=>{a(),this[Ds].listening=!1,i(c)},o=()=>{a(),this[Ds].listening=!0,r(e$e.call(this,e,t.listenTextResolver||XQe))};function a(){e.removeListener("error",s),e.removeListener("listening",o)}return e.once("error",s),e.once("listening",o),e.listen(t),n})}function $Qe(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"?WQe.createSecureServer(n,t):WQe.createServer(e.http,t);return i.on("session",s=>s.setTimeout(e.http2SessionTimeout,()=>{s.close()})),e.forceCloseConnections===!0&&(i.closeHttp2Sessions=PEn(i)),i.setTimeout(e.connectionTimeout),i}let r=n?bEn.createServer(n,t):SEn.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 OEn(e){return e.address==="0.0.0.0"?Object.values(_En.networkInterfaces()).flatMap(t=>t.filter(n=>n.family==="IPv4")).sort(t=>t.internal?-1:1).map(t=>t.address):[e.address]}function e$e(e,t){let n;typeof e.address()=="string"?n=[e.address()]:(e.address().address.indexOf(":")===-1?n=OEn(e.address()).map(i=>i+":"+e.address().port):n=["["+e.address().address+"]:"+e.address().port],n=n.map(i=>"http"+(this[TEn].https?"s":"")+"://"+i));for(let i of n)this.log.info(t(i));return n[0]}function PEn(e){return e[sT]=new Set,e.on("session",function(t){t.once("connect",function(){e[sT].add(t)}),t.once("close",function(){e[sT].delete(t)}),t.once("frameError",function(n,r,i){i===0&&e[sT].delete(t)}),t.once("goaway",function(){e[sT].delete(t)})}),function(){if(e[sT].size!==0)for(let n of e[sT])n.close()}}});var hce=w((EKr,s$e)=>{"use strict";var fce=/(?:^|;)\s*([\w!#$%&'*+.^`|~-]+)=([^;]*)/gm,r$e=/^[\w!#$%&'*+.^`|~-]+$/,i$e=/^[\w!#$%&'*+.^`|~-]+\s*$/,pce=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();r$e.test(c)===!0&&i$e.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(r$e.test(s)===!1||i$e.test(o)===!1)return;this.#i=s,this.#e=o,this.#t=!0,this.#n=!1;let a=fce.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=fce.exec(i);continue}this.#r.set(c,u.slice(1,u.length-1))}else this.#r.set(c,u);a=fce.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}};s$e.exports=pce});var OW=w((_Kr,o$e)=>{"use strict";var{kReplyHasStatusCode:NEn}=$s();function CEn(e,t){if(!e[NEn]||e.statusCode===200){let n=t&&(t.statusCode||t.status);e.code(n>=400?n:500)}}o$e.exports={setErrorStatusCode:CEn}});var mce=w((TKr,c$e)=>{"use strict";var{kReplyIsError:a$e,kReplyHijacked:MEn}=$s(),{setErrorStatusCode:DEn}=OW(),LEn=Y("node:diagnostics_channel"),RM=LEn.tracingChannel("fastify.request.handler");function UEn(e,t,n){n&&(n.async=!0),e.then(function(r){if(t[MEn]!==!0){n&&RM.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[a$e]=!0,t.send(i)}}finally{n&&RM.asyncEnd.publish(n)}}},function(r){n&&(n.error=r,DEn(t,r),RM.error.publish(n),RM.asyncStart.publish(n));try{if(t.sent===!0){t.log.error({err:r},"Promise errored, but reply.sent = true was set");return}t[a$e]=!0,t.send(r)}catch(i){t.send(i)}finally{n&&RM.asyncEnd.publish(n)}})}c$e.exports=UEn});var Sce=w((vKr,l$e)=>{"use strict";var{kSchemaHeaders:CW,kSchemaParams:gce,kSchemaQuerystring:yce,kSchemaBody:oT,kSchemaResponse:u$e}=$s(),FEn=/^[1-5](?:\d{2}|xx)$|^default$/,{FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:jEn}=Ko(),{FSTWRN001:PW}=Lk();function HEn(e,t){if(!e.schema||!e.schema.response)return;let{method:n,url:r}=e.config||{};e[u$e]=Object.keys(e.schema.response).reduce(function(i,s){let o=e.schema.response[s];if(s=s.toLowerCase(),!FEn.test(s))throw new jEn;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 qEn(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[CW]=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[CW]=t({schema:a,method:i,url:s,httpPart:"headers"})}else Object.hasOwn(r,"headers")&&PW("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[oT]=c}else e[oT]=t({schema:r.body,method:i,url:s,httpPart:"body"})}else Object.hasOwn(r,"body")&&PW("body",i,s);r.querystring?e[yce]=t({schema:r.querystring,method:i,url:s,httpPart:"querystring"}):Object.hasOwn(r,"querystring")&&PW("querystring",i,s),r.params?e[gce]=t({schema:r.params,method:i,url:s,httpPart:"params"}):Object.hasOwn(r,"params")&&PW("params",i,s)}function NW(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 MW(e,t,n){let r=n===void 0;if(r||!n.skipParams){let s=NW(e[gce],t,"params");if(s)return typeof s.then!="function"?JS(s,"params",e.schemaErrorFormatter):BEn(s,e,t)}if(r||!n.skipBody){let s=null;if(typeof e[oT]=="function")s=e[oT];else if(e[oT]){let a=WEn(t.headers["content-type"]),c=e[oT][a];c&&(s=c)}let o=NW(s,t,"body");if(o)return typeof o.then!="function"?JS(o,"body",e.schemaErrorFormatter):zEn(o,e,t)}if(r||!n.skipQuery){let s=NW(e[yce],t,"query");if(s)return typeof s.then!="function"?JS(s,"querystring",e.schemaErrorFormatter):GEn(s,e,t)}let i=NW(e[CW],t,"headers");return i?typeof i.then!="function"?JS(i,"headers",e.schemaErrorFormatter):VEn(i,e,t):!1}function BEn(e,t,n){return e.then(r=>r?JS(r,"params",t.schemaErrorFormatter):MW(t,n,{skipParams:!0}))}function zEn(e,t,n){return e.then(r=>r?JS(r,"body",t.schemaErrorFormatter):MW(t,n,{skipParams:!0,skipBody:!0}))}function GEn(e,t,n){return e.then(r=>r?JS(r,"querystring",t.schemaErrorFormatter):MW(t,n,{skipParams:!0,skipBody:!0,skipQuery:!0}))}function VEn(e,t,n){return e.then(r=>r?JS(r,"headers",t.schemaErrorFormatter):!1)}function JS(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 WEn(e){return e?e.trimStart().split(/[ ;]/,1)[0].trim().toLowerCase():""}l$e.exports={symbols:{bodySchema:oT,querystringSchema:yce,responseSchema:u$e,paramsSchema:gce,headersSchema:CW},compileSchemasForValidation:qEn,compileSchemasForSerialization:HEn,validate:MW}});var Tce=w((RKr,_ce)=>{"use strict";var KEn=Y("node:diagnostics_channel"),YEn=hce(),ZEn=mce(),{validate:JEn}=Sce(),{preValidationHookRunner:XEn,preHandlerHookRunner:QEn}=ZS(),{FST_ERR_CTP_INVALID_MEDIA_TYPE:$En}=Ko(),{setErrorStatusCode:d$e}=OW(),{kReplyIsError:wM,kRouteContext:Th,kFourOhFourContext:e_n,kSupportedHTTPMethods:f$e}=$s(),AM=KEn.tracingChannel("fastify.request.handler");function t_n(e,t,n){if(n.sent===!0)return;if(e!=null){n[wM]=!0,n.send(e);return}let r=t.method;if(this[f$e].bodyless.has(r)){Fk(t,n);return}if(this[f$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")){Fk(t,n);return}t[Th].contentTypeParser.run("",Fk,t,n);return}let o=new YEn(s);if(o.isValid===!1){n[wM]=!0,n.status(415).send(new $En);return}t[Th].contentTypeParser.run(o.toString(),Fk,t,n);return}Fk(t,n)}function Fk(e,t){try{e[Th].preValidation!==null?XEn(e[Th].preValidation,e,t,bce):bce(null,e,t)}catch(n){bce(n,e,t)}}function bce(e,t,n){if(n.sent===!0)return;if(e!=null){n[wM]=!0,n.send(e);return}let r=JEn(n[Th],t);if(r&&typeof r.then=="function"||!1){let s=p$e.bind(null,t,n);r.then(s,s)}else p$e(t,n,r)}function p$e(e,t,n){if(n){if(t[Th].attachValidation===!1){t.send(n);return}t.request.validationError=n}e[Th].preHandler!==null?QEn(e[Th].preHandler,e,t,Ece):Ece(null,e,t)}function Ece(e,t,n){if(n.sent)return;let r=t[Th];if(!AM.hasSubscribers||r[e_n]===null)h$e(e,t,n);else{let i={request:t,reply:n,async:!1,route:{url:r.config.url,method:r.config.method}};AM.start.runStores(i,h$e,void 0,e,t,n,i)}}function h$e(e,t,n,r){let i=t[Th];try{if(e!=null){n[wM]=!0,r&&(r.error=e,d$e(n,e),AM.error.publish(r)),n.send(e);return}let s;try{s=i.handler(t,n)}catch(o){r&&(r.error=o,d$e(n,o),AM.error.publish(r)),n[wM]=!0,n.send(o);return}s!==void 0&&(s!==null&&typeof s.then=="function"?ZEn(s,n,r):n.send(s))}finally{r&&AM.end.publish(r)}}_ce.exports=t_n;_ce.exports[Symbol.for("internals")]={handler:Fk,preHandlerCallback:Ece}});var g$e=w((AKr,m$e)=>{"use strict";function jk(){}var n_n={fatal:jk,error:jk,warn:jk,info:jk,debug:jk,trace:jk};Object.defineProperty(m$e,"exports",{get(){return Object.create(n_n)}})});var Rce=w((wKr,b$e)=>{"use strict";var kM=e=>e&&typeof e.message=="string",vce=e=>{if(!e)return;let t=e.cause;if(typeof t=="function"){let n=e.cause();return kM(n)?n:void 0}else return kM(t)?t:void 0},y$e=(e,t)=>{if(!kM(e))return"";let n=e.stack||"";if(t.has(e))return n+` causes have become circular...`;let r=vce(e);return r?(t.add(e),n+` -caused by: `+m$e(r,t)):n},n_n=e=>m$e(e,new Set),g$e=(e,t,n)=>{if(!kM(e))return"";let r=n?"":e.message||"";if(t.has(e))return r+": ...";let i=vce(e);if(i){t.add(e);let s=typeof e.cause=="function";return r+(s?"":": ")+g$e(i,t,s)}else return r},r_n=e=>g$e(e,new Set);y$e.exports={isErrorLike:kM,getErrorCause:vce,stackWithCauses:n_n,messageWithCauses:r_n}});var Ace=w((wKr,b$e)=>{"use strict";var i_n=Symbol("circular-ref-tag"),DW=Symbol("pino-raw-err-ref"),S$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[DW]},set:function(e){this[DW]=e}}});Object.defineProperty(S$e,DW,{writable:!0,value:{}});b$e.exports={pinoErrProto:S$e,pinoErrorSymbols:{seen:i_n,rawSymbol:DW}}});var T$e=w((kKr,_$e)=>{"use strict";_$e.exports=kce;var{messageWithCauses:s_n,stackWithCauses:o_n,isErrorLike:E$e}=Rce(),{pinoErrProto:a_n,pinoErrorSymbols:c_n}=Ace(),{seen:wce}=c_n,{toString:u_n}=Object.prototype;function kce(e){if(!E$e(e))return e;e[wce]=void 0;let t=Object.create(a_n);t.type=u_n.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,t.message=s_n(e),t.stack=o_n(e),Array.isArray(e.errors)&&(t.aggregateErrors=e.errors.map(n=>kce(n)));for(let n in e)if(t[n]===void 0){let r=e[n];E$e(r)?n!=="cause"&&!Object.prototype.hasOwnProperty.call(r,wce)&&(t[n]=kce(r)):t[n]=r}return delete e[wce],t.raw=e,t}});var R$e=w((IKr,v$e)=>{"use strict";v$e.exports=UW;var{isErrorLike:Ice}=Rce(),{pinoErrProto:l_n,pinoErrorSymbols:d_n}=Ace(),{seen:LW}=d_n,{toString:f_n}=Object.prototype;function UW(e){if(!Ice(e))return e;e[LW]=void 0;let t=Object.create(l_n);t.type=f_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=>UW(n))),Ice(e.cause)&&!Object.prototype.hasOwnProperty.call(e.cause,LW)&&(t.cause=UW(e.cause));for(let n in e)if(t[n]===void 0){let r=e[n];Ice(r)?Object.prototype.hasOwnProperty.call(r,LW)||(t[n]=UW(r)):t[n]=r}return delete e[LW],t.raw=e,t}});var I$e=w((xKr,k$e)=>{"use strict";k$e.exports={mapHttpRequest:p_n,reqSerializer:w$e};var xce=Symbol("pino-raw-req-ref"),A$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[xce]},set:function(e){this[xce]=e}}});Object.defineProperty(A$e,xce,{writable:!0,value:{}});function w$e(e){let t=e.info||e.socket,n=Object.create(A$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 p_n(e){return{req:w$e(e)}}});var N$e=w((OKr,P$e)=>{"use strict";P$e.exports={mapHttpResponse:h_n,resSerializer:O$e};var Oce=Symbol("pino-raw-res-ref"),x$e=Object.create({},{statusCode:{enumerable:!0,writable:!0,value:0},headers:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[Oce]},set:function(e){this[Oce]=e}}});Object.defineProperty(x$e,Oce,{writable:!0,value:{}});function O$e(e){let t=Object.create(x$e);return t.statusCode=e.headersSent?e.statusCode:null,t.headers=e.getHeaders?e.getHeaders():e._headers,t.raw=e,t}function h_n(e){return{res:O$e(e)}}});var Nce=w((PKr,C$e)=>{"use strict";var Pce=T$e(),m_n=R$e(),FW=I$e(),jW=N$e();C$e.exports={err:Pce,errWithCause:m_n,mapHttpRequest:FW.mapHttpRequest,mapHttpResponse:jW.mapHttpResponse,req:FW.reqSerializer,res:jW.resSerializer,wrapErrorSerializer:function(t){return t===Pce?t:function(r){return t(Pce(r))}},wrapRequestSerializer:function(t){return t===FW.reqSerializer?t:function(r){return t(FW.reqSerializer(r))}},wrapResponseSerializer:function(t){return t===jW.resSerializer?t:function(r){return t(jW.resSerializer(r))}}}});var Cce=w((NKr,M$e)=>{"use strict";function g_n(e,t){return t}M$e.exports=function(){let t=Error.prepareStackTrace;Error.prepareStackTrace=g_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 H$e=w((CKr,j$e)=>{"use strict";function Mce(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)U$e(l,a);else{let f=typeof n=="function"?n(S_n(l,a),[...c.slice(0,d),...a]):n;L$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 R_n(e){if(!Array.isArray(e))throw new TypeError("paths must be an array");for(let t of e)v_n(t)}function A_n(e={}){let{paths:t=[],censor:n="[REDACTED]",serialize:r=JSON.stringify,strict:i=!0,remove:s=!1}=e;R_n(t);let o=__n(t);return function(c){if(i&&(c===null||typeof c!="object")&&(c==null||typeof c!="object"))return r?r(c):c;let u=T_n(c,o),l=c,d=n;return typeof n=="function"&&(d=n),b_n(u,t,d,s),r===!1?(u.restore=function(){return Mce(l)},u):typeof r=="function"?r(u):JSON.stringify(u)}}j$e.exports=A_n});var Hk=w((MKr,q$e)=>{"use strict";var w_n=Symbol("pino.setLevel"),k_n=Symbol("pino.getLevel"),I_n=Symbol("pino.levelVal"),x_n=Symbol("pino.levelComp"),O_n=Symbol("pino.useLevelLabels"),P_n=Symbol("pino.useOnlyCustomLevels"),N_n=Symbol("pino.mixin"),C_n=Symbol("pino.lsCache"),M_n=Symbol("pino.chindings"),D_n=Symbol("pino.asJson"),L_n=Symbol("pino.write"),U_n=Symbol("pino.redactFmt"),F_n=Symbol("pino.time"),j_n=Symbol("pino.timeSliceIndex"),H_n=Symbol("pino.stream"),q_n=Symbol("pino.stringify"),B_n=Symbol("pino.stringifySafe"),z_n=Symbol("pino.stringifiers"),G_n=Symbol("pino.end"),V_n=Symbol("pino.formatOpts"),W_n=Symbol("pino.messageKey"),K_n=Symbol("pino.errorKey"),Y_n=Symbol("pino.nestedKey"),Z_n=Symbol("pino.nestedKeyStr"),J_n=Symbol("pino.mixinMergeStrategy"),X_n=Symbol("pino.msgPrefix"),Q_n=Symbol("pino.wildcardFirst"),$_n=Symbol.for("pino.serializers"),eTn=Symbol.for("pino.formatters"),tTn=Symbol.for("pino.hooks"),nTn=Symbol.for("pino.metadata");q$e.exports={setLevelSym:w_n,getLevelSym:k_n,levelValSym:I_n,levelCompSym:x_n,useLevelLabelsSym:O_n,mixinSym:N_n,lsCacheSym:C_n,chindingsSym:M_n,asJsonSym:D_n,writeSym:L_n,serializersSym:$_n,redactFmtSym:U_n,timeSym:F_n,timeSliceIndexSym:j_n,streamSym:H_n,stringifySym:q_n,stringifySafeSym:B_n,stringifiersSym:z_n,endSym:G_n,formatOptsSym:V_n,messageKeySym:W_n,errorKeySym:K_n,nestedKeySym:Y_n,wildcardFirstSym:Q_n,needsMetadataGsym:nTn,useOnlyCustomLevelsSym:P_n,formattersSym:eTn,hooksSym:tTn,nestedKeyStrSym:Z_n,mixinMergeStrategySym:J_n,msgPrefixSym:X_n}});var Lce=w((DKr,V$e)=>{"use strict";var B$e=H$e(),{redactFmtSym:rTn,wildcardFirstSym:qW}=Hk(),Dce=/[^.[\]]+|\[([^[\]]*?)\]/g,z$e="[Redacted]",G$e=!1;function iTn(e,t){let{paths:n,censor:r,remove:i}=sTn(e),s=n.reduce((c,u)=>{Dce.lastIndex=0;let l=Dce.exec(u),d=Dce.exec(u),f=l[1]!==void 0?l[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):l[0];if(f==="*"&&(f=qW),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!==qW&&c[f].length===0&&c[f].push(...c[qW]||[]),f===qW&&Object.keys(c).forEach(function(m){c[m]&&c[m].push(h)}),c[f].push(h),c},{}),o={[rTn]:B$e({paths:n,censor:r,serialize:t,strict:G$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]=B$e({paths:s[u],censor:l,serialize:t,strict:G$e,remove:i})}return c},o)}function sTn(e){if(Array.isArray(e))return e={paths:e,censor:z$e},e;let{paths:t,censor:n=z$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}}V$e.exports=iTn});var Y$e=w((LKr,K$e)=>{"use strict";var oTn=()=>"",aTn=()=>`,"time":${Date.now()}`,cTn=()=>`,"time":${Math.round(Date.now()/1e3)}`,uTn=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,lTn=1000000n,W$e=1000000000n,dTn=BigInt(Date.now())*lTn,fTn=process.hrtime.bigint(),pTn=()=>{let e=process.hrtime.bigint()-fTn,t=dTn+e,n=t/W$e,r=t%W$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"`};K$e.exports={nullTime:oTn,epochTime:aTn,unixTime:cTn,isoTime:uTn,isoTimeNano:pTn}});var J$e=w((UKr,Z$e)=>{"use strict";function hTn(e){try{return JSON.stringify(e)}catch{return'"[Circular]"'}}Z$e.exports=mTn;function mTn(e,t,n){var r=n&&n.stringify||hTn,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));Uce.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(););};Uce.exports=e}});var iet=w((jKr,ret)=>{"use strict";var Si=Y("fs"),gTn=Y("events"),yTn=Y("util").inherits,X$e=Y("path"),Hce=Fce(),STn=Y("assert"),BW=100,zW=Buffer.allocUnsafe(0),bTn=16*1024,Q$e="buffer",$$e="utf8",[ETn,_Tn]=(process.versions.node||"0.0").split(".").map(Number),TTn=ETn>=22&&_Tn>=7;function eet(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(X$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(X$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||bTn,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===Q$e)this._writingBuf=zW,this.write=ATn,this.flush=kTn,this.flushSync=xTn,this._actualWrite=PTn,h=()=>Si.writeSync(this.fd,this._writingBuf),m=()=>Si.write(this.fd,this._writingBuf,this.release);else if(f===void 0||f===$$e)this._writingBuf="",this.write=RTn,this.flush=wTn,this.flushSync=ITn,this._actualWrite=OTn,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 "${$$e}" and "${Q$e}", but passed ${f}`);if(typeof t=="number")this.fd=t,process.nextTick(()=>this.emit("ready"));else if(typeof t=="string")eet(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{Hce(BW),this.release(void 0,0)}catch(E){this.release(E)}else setTimeout(m,BW);else this._writing=!1,this.emit("error",g);return}this.emit("write",y);let b=jce(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(),_=jce(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,GW(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(vTn,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 jce(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 vTn(e){e.listenerCount("drain")>0&&(e._asyncDrainScheduled=!1,e.emit("drain"))}yTn(Pf,gTn);function tet(e,t){return e.length===0?zW:e.length===1?e[0]:Buffer.concat(e,t)}function RTn(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 wTn(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&&net.call(this,e),!this._writing&&(this._bufs.length===0&&this._bufs.push(""),this._actualWrite())}function kTn(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&&net.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)})}),eet(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():GW(this)))};function ITn(){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=jce(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;Hce(BW)}}try{Si.fsyncSync(this.fd)}catch{}}function xTn(){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=zW);let e=zW;for(;this._bufs.length||e.length;){e.length<=0&&(e=tet(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;Hce(BW)}}}Pf.prototype.destroy=function(){this.destroyed||GW(this)};function OTn(){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 PTn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:tet(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 TTn&&(this._writingBuf=Buffer.from(this._writingBuf)),Si.write(this.fd,this._writingBuf,e)}function GW(e){if(e.fd===-1){e.once("ready",GW.bind(null,e));return}e._periodicFlushTimer!==void 0&&clearInterval(e._periodicFlushTimer),e.destroyed=!0,e._bufs=[],e._lens=[],STn(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;ret.exports=Pf});var qce=w((HKr,uet)=>{"use strict";var Nf={exit:[],beforeExit:[]},set={exit:MTn,beforeExit:DTn},qk;function NTn(){qk===void 0&&(qk=new FinalizationRegistry(LTn))}function CTn(e){Nf[e].length>0||process.on(e,set[e])}function oet(e){Nf[e].length>0||(process.removeListener(e,set[e]),Nf.exit.length===0&&Nf.beforeExit.length===0&&(qk=void 0))}function MTn(){aet("exit")}function DTn(){aet("beforeExit")}function aet(e){for(let t of Nf[e]){let n=t.deref(),r=t.fn;n!==void 0&&r(n,e)}Nf[e]=[]}function LTn(e){for(let t of["exit","beforeExit"]){let n=Nf[t].indexOf(e);Nf[t].splice(n,n+1),oet(t)}}function cet(e,t,n){if(t===void 0)throw new Error("the object can't be undefined");CTn(e);let r=new WeakRef(t);r.fn=n,NTn(),qk.register(t,r),Nf[e].push(r)}function UTn(e,t){cet("exit",e,t)}function FTn(e,t){cet("beforeExit",e,t)}function jTn(e){if(qk!==void 0){qk.unregister(e);for(let t of["exit","beforeExit"])Nf[t]=Nf[t].filter(n=>{let r=n.deref();return r&&r!==e}),oet(t)}}uet.exports={register:UTn,registerBeforeExit:FTn,unregister:jTn}});var det=w((qKr,HTn)=>{HTn.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 pet=w((BKr,fet)=>{"use strict";function qTn(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 BTn(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()}fet.exports={wait:qTn,waitDiff:BTn}});var met=w((zKr,het)=>{"use strict";het.exports={WRITE_INDEX:4,READ_INDEX:8}});var _et=w((GKr,Eet)=>{"use strict";var{version:zTn}=det(),{EventEmitter:GTn}=Y("events"),{Worker:VTn}=Y("worker_threads"),{join:WTn}=Y("path"),{pathToFileURL:KTn}=Y("url"),{wait:YTn}=pet(),{WRITE_INDEX:xu,READ_INDEX:Iu}=met(),ZTn=Y("buffer"),JTn=Y("assert"),be=Symbol("kImpl"),XTn=ZTn.constants.MAX_STRING_LENGTH,IM=class{constructor(t){this._value=t}deref(){return this._value}},WW=class{register(){}unregister(){}},QTn=process.env.NODE_V8_COVERAGE?WW:global.FinalizationRegistry||WW,$Tn=process.env.NODE_V8_COVERAGE?IM:global.WeakRef||IM,get=new QTn(e=>{e.exited||e.terminate()});function evn(e,t){let{filename:n,workerData:r}=t,s=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||WTn(__dirname,"lib","worker.js"),o=new VTn(s,{...t.workerOpts,trackUnmanagedFds:!1,workerData:{filename:n.indexOf("file://")===0?n:KTn(n).href,dataBuf:e[be].dataBuf,stateBuf:e[be].stateBuf,workerData:{$context:{threadStreamVersion:zTn},...r}}});return o.stream=new IM(e),o.on("message",tvn),o.on("exit",bet),get.register(e,o),o}function yet(e){JTn(!e[be].sync),e[be].needDrain&&(e[be].needDrain=!1,e.emit("drain"))}function VW(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?Wce(e):e[be].needDrain&&process.nextTick(yet,e);return}let r=e[be].buf.slice(0,n),i=Buffer.byteLength(r);i<=n?(e[be].buf=e[be].buf.slice(n),KW(e,r,VW.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),KW(e,r,VW.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),VW(e)})}else vh(e,new Error("overwritten"))}function tvn(e){let t=this.stream.deref();if(t===void 0){this.exited=!0,this.terminate();return}switch(e.code){case"READY":this.stream=new $Tn(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 bet(e){let t=this.stream.deref();t!==void 0&&(get.unregister(t),t.worker.exited=!0,t.worker.off("exit",bet),vh(t,e!==0?new Error("the worker thread exited"):null))}var zce=class extends GTn{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=evn(this,t),this.on("message",(n,r)=>{this.worker.postMessage(n,r)})}write(t){if(this[be].destroyed)return Gce(this,new Error("the worker has exited")),!1;if(this[be].ending)return Gce(this,new Error("the worker is ending")),!1;if(this[be].flushing&&this[be].buf.length+t.length>=XTn)try{Bce(this),this[be].flushing=!0}catch(n){return vh(this,n),!1}if(this[be].buf+=t,this[be].sync)try{return Bce(this),!0}catch(n){return vh(this,n),!1}return this[be].flushing||(this[be].flushing=!0,setImmediate(VW,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,Wce(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);YTn(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||(Bce(this),Vce(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 Gce(e,t){setImmediate(()=>{e.emit("error",t)})}function vh(e,t){e[be].destroyed||(e[be].destroyed=!0,t&&(e[be].errored=t,Gce(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 KW(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 Wce(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 Bce(e){let t=()=>{e[be].ending?Wce(e):e[be].needDrain&&process.nextTick(yet,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){Vce(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),KW(e,i,t);else{for(Vce(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),KW(e,i,t)}}}function Vce(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)")}}Eet.exports=zce});var Zce=w((VKr,Ret)=>{"use strict";var{createRequire:nvn}=Y("module"),{existsSync:rvn}=Y("node:fs"),ivn=Cce(),{join:Kce,isAbsolute:vet,sep:svn}=Y("node:path"),{fileURLToPath:ovn}=Y("node:url"),avn=Fce(),Yce=qce(),cvn=_et();function uvn(e){Yce.register(e,hvn),Yce.registerBeforeExit(e,mvn),e.on("close",function(){Yce.unregister(e)})}function lvn(){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"]||Kce(__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 pvn(p(d),c,s,a,f);function p(h){if(h=l[h]||h,vet(h)||h.indexOf("file://")===0)return h;if(h==="pino/file")return Kce(__dirname,"..","file.js");let m;for(let g of u)try{let y=g==="node:repl"?process.cwd()+svn:g;m=nvn(y).resolve(h);break}catch{continue}if(!m)throw new Error(`unable to determine transport target for "${h}"`);return m}}Ret.exports=gvn});var JW=w((KKr,Uet)=>{"use strict";var yvn=Y("node:diagnostics_channel"),Aet=J$e(),{mapHttpRequest:Svn,mapHttpResponse:bvn}=Nce(),Xce=iet(),wet=qce(),{lsCacheSym:Evn,chindingsSym:Pet,writeSym:ket,serializersSym:Net,formatOptsSym:Iet,endSym:_vn,stringifiersSym:Cet,stringifySym:Met,stringifySafeSym:Qce,wildcardFirstSym:Det,nestedKeySym:Tvn,formattersSym:Let,messageKeySym:vvn,errorKeySym:Rvn,nestedKeyStrSym:Avn,msgPrefixSym:YW}=Hk(),{isMainThread:wvn}=Y("worker_threads"),kvn=Zce(),[Ivn]=process.versions.node.split(".").map(e=>Number(e)),xet=yvn.tracingChannel("pino_asJson"),Jce=Ivn>=25?e=>JSON.stringify(e):Ovn;function Bk(){}function xvn(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=Svn(r):typeof r.setHeader=="function"&&(r=bvn(r)));let o;s===null&&i.length===0?o=[null]:(s=i.shift(),o=i),typeof this[YW]=="string"&&s!==void 0&&s!==null&&(s=this[YW]+s),this[ket](r,Aet(s,o,this[Iet]),e)}else{let s=r===void 0?i.shift():r;typeof this[YW]=="string"&&s!==void 0&&s!==null&&(s=this[YW]+s),this[ket](null,Aet(s,i,this[Iet]),e)}}}function Ovn(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 Pvn(e,t,n,r){if(xet.hasSubscribers===!1)return Oet.call(this,e,t,n,r);let i={instance:this,arguments};return xet.traceSync(Oet,i,this,e,t,n,r)}function Oet(e,t,n,r){let i=this[Met],s=this[Qce],o=this[Cet],a=this[_vn],c=this[Pet],u=this[Net],l=this[Let],d=this[vvn],f=this[Rvn],p=this[Evn][n]+r;p=p+c;let h;l.log&&(e=l.log(e));let m=o[Det],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||Jce)(h);break;default:h=(S||i)(h,s)}if(h===void 0)continue;let E=Jce(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||Jce)(h),y=',"'+d+'":'+h;break;default:h=(b||i)(h,s),y=',"'+d+'":'+h}}return this[Tvn]&&g?p+this[Avn]+g.slice(1)+"}"+y+a:p+g+y+a}function Nvn(e,t){let n,r=e[Pet],i=e[Met],s=e[Qce],o=e[Cet],a=o[Det],c=e[Net],u=e[Let].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 Cvn(e){return e.write!==e.constructor.prototype.write}function ZW(e){let t=new Xce(e);return t.on("error",n),!e.sync&&wvn&&(wet.register(t,Mvn),t.on("close",function(){wet.unregister(t)})),t;function n(r){if(r.code==="EPIPE"){t.write=Bk,t.end=Bk,t.flushSync=Bk,t.destroy=Bk;return}t.removeListener("error",n),t.emit("error",r)}}function Mvn(e,t){e.destroyed||(t==="beforeExit"?(e.flush(),e.on("drain",function(){e.end()})):e.flushSync())}function Dvn(e){return function(n,r,i={},s){if(typeof i=="string")s=ZW({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=ZW({dest:s})}else if(i instanceof Xce||i.writable||i._writableState)s=i,i={};else if(i.transport){if(i.transport instanceof Xce||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=kvn({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=Bk),s||(Cvn(process.stdout)?s=process.stdout:s=ZW({fd:process.stdout.fd||1})),{opts:i,stream:s}}}function Lvn(e,t){try{return JSON.stringify(e)}catch{try{return(t||this[Qce])(e)}catch{return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function Uvn(e,t,n){return{level:e,bindings:t,log:n}}function Fvn(e){let t=Number(e);return typeof e=="string"&&Number.isFinite(t)?t:e===void 0?1:e}Uet.exports={noop:Bk,buildSafeSonicBoom:ZW,asChindings:Nvn,asJson:Pvn,genLog:xvn,createArgsNormalizer:Dvn,stringify:Lvn,buildFormatters:Uvn,normalizeDestFileDescriptor:Fvn}});var XW=w((YKr,Fet)=>{var jvn={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},Hvn={ASC:"ASC",DESC:"DESC"};Fet.exports={DEFAULT_LEVELS:jvn,SORTING_ORDER:Hvn}});var tue=w((ZKr,Bet)=>{"use strict";var{lsCacheSym:qvn,levelValSym:$ce,useOnlyCustomLevelsSym:Bvn,streamSym:zvn,formattersSym:Gvn,hooksSym:Vvn,levelCompSym:jet}=Hk(),{noop:Wvn,genLog:aT}=JW(),{DEFAULT_LEVELS:Rh,SORTING_ORDER:Het}=XW(),qet={fatal:e=>{let t=aT(Rh.fatal,e);return function(...n){let r=this[zvn];if(t.call(this,...n),typeof r.flushSync=="function")try{r.flushSync()}catch{}}},error:e=>aT(Rh.error,e),warn:e=>aT(Rh.warn,e),info:e=>aT(Rh.info,e),debug:e=>aT(Rh.debug,e),trace:e=>aT(Rh.trace,e)},eue=Object.keys(Rh).reduce((e,t)=>(e[Rh[t]]=t,e),{}),Kvn=Object.keys(eue).reduce((e,t)=>(e[t]='{"level":'+Number(t),e),{});function Yvn(e){let t=e[Gvn].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[qvn]=r,e}function Zvn(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 Jvn(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[$ce],i=this[$ce]=n[e],s=this[Bvn],o=this[jet],a=this[Vvn].logMethod;for(let c in n){if(o(n[c],i)===!1){this[c]=Wvn;continue}this[c]=Zvn(c,s)?qet[c](a):aT(n[c],a)}this.emit("level-change",e,i,t[r],r,this)}function Xvn(e){let{levels:t,levelVal:n}=this;return t&&t.labels?t.labels[n]:""}function Qvn(e){let{values:t}=this.levels,n=t[e];return n!==void 0&&this[jet](n,this[$ce])}function $vn(e,t,n){return e===Het.DESC?t<=n:t>=n}function eRn(e){return typeof e=="string"?$vn.bind(null,e):e}function tRn(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:eue,n),i=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),t?null:Rh,e);return{labels:r,values:i}}function nRn(e,t,n){if(typeof e=="number"){if(![].concat(Object.keys(t||{}).map(s=>t[s]),n?[]:Object.keys(eue).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 rRn(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 iRn(e){if(typeof e!="function"&&!(typeof e=="string"&&Object.values(Het).includes(e)))throw new Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}Bet.exports={initialLsCache:Kvn,genLsCache:Yvn,levelMethods:qet,getLevel:Xvn,setLevel:Jvn,isLevelEnabled:Qvn,mappings:tRn,assertNoLevelCollisions:rRn,assertDefaultLevelFound:nRn,genLevelComparison:eRn,assertLevelComparison:iRn}});var nue=w((JKr,zet)=>{"use strict";zet.exports={version:"10.3.1"}});var Xet=w((QKr,Jet)=>{"use strict";var{EventEmitter:sRn}=Y("node:events"),{lsCacheSym:oRn,levelValSym:aRn,setLevelSym:iue,getLevelSym:Get,chindingsSym:$W,mixinSym:cRn,asJsonSym:Wet,writeSym:uRn,mixinMergeStrategySym:lRn,timeSym:dRn,timeSliceIndexSym:fRn,streamSym:Ket,serializersSym:cT,formattersSym:xM,errorKeySym:pRn,messageKeySym:hRn,useOnlyCustomLevelsSym:mRn,needsMetadataGsym:gRn,redactFmtSym:yRn,stringifySym:SRn,formatOptsSym:bRn,stringifiersSym:ERn,msgPrefixSym:sue,hooksSym:_Rn}=Hk(),{getLevel:TRn,setLevel:vRn,isLevelEnabled:RRn,mappings:ARn,initialLsCache:wRn,genLsCache:kRn,assertNoLevelCollisions:IRn}=tue(),{asChindings:oue,asJson:xRn,buildFormatters:rue,stringify:Vet,noop:Yet}=JW(),{version:ORn}=nue(),PRn=Lce(),NRn=class{},Zet={constructor:NRn,child:CRn,bindings:MRn,setBindings:DRn,flush:FRn,isLevelEnabled:RRn,version:ORn,get level(){return this[Get]()},set level(e){this[iue](e)},get levelVal(){return this[aRn]},set levelVal(e){throw Error("levelVal is read-only")},get msgPrefix(){return this[sue]},get[Symbol.toStringTag](){return"Pino"},[oRn]:wRn,[uRn]:URn,[Wet]:xRn,[Get]:TRn,[iue]:vRn};Object.setPrototypeOf(Zet,sRn.prototype);Jet.exports=function(){return Object.create(Zet)};var QW=e=>e;function CRn(e,t){if(!e)throw Error("missing bindings for child Pino");let n=this[cT],r=this[xM],i=Object.create(this);if(t==null)return i[xM].bindings!==QW&&(i[xM]=rue(r.level,QW,r.log)),i[$W]=oue(i,e),this.onChild!==Yet&&this.onChild(i),i;if(t.hasOwnProperty("serializers")===!0){i[cT]=Object.create(null);for(let u in n)i[cT][u]=n[u];let a=Object.getOwnPropertySymbols(n);for(var s=0;s{"use strict";var{hasOwnProperty:OM}=Object.prototype,lT=uue();lT.configure=uue;lT.stringify=lT;lT.default=lT;lue.stringify=lT;lue.configure=uue;ett.exports=lT;var jRn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function XS(e){return e.length<5e3&&!jRn.test(e)?`"${e}"`:JSON.stringify(e)}function aue(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 HRn=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function cue(e){return HRn.call(e)!==void 0&&e.length!==0}function Qet(e,t,n){e.length= 1`)}return n===void 0?1/0:n}function uT(e){return e===1?"1 item":`${e} items`}function GRn(e){let t=new Set;for(let n of e)(typeof n=="string"||typeof n=="number")&&t.add(String(n));return t}function VRn(e){if(OM.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 uue(e){e={...e};let t=VRn(e);t&&(e.bigint===void 0&&(e.bigint=!1),"circularValue"in e||(e.circularValue=Error));let n=qRn(e),r=zRn(e,"bigint"),i=BRn(e),s=typeof i=="function"?i:void 0,o=$et(e,"maximumDepth"),a=$et(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 XS(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(oy$e(e,new Set),S$e=(e,t,n)=>{if(!kM(e))return"";let r=n?"":e.message||"";if(t.has(e))return r+": ...";let i=vce(e);if(i){t.add(e);let s=typeof e.cause=="function";return r+(s?"":": ")+S$e(i,t,s)}else return r},i_n=e=>S$e(e,new Set);b$e.exports={isErrorLike:kM,getErrorCause:vce,stackWithCauses:r_n,messageWithCauses:i_n}});var Ace=w((kKr,_$e)=>{"use strict";var s_n=Symbol("circular-ref-tag"),DW=Symbol("pino-raw-err-ref"),E$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[DW]},set:function(e){this[DW]=e}}});Object.defineProperty(E$e,DW,{writable:!0,value:{}});_$e.exports={pinoErrProto:E$e,pinoErrorSymbols:{seen:s_n,rawSymbol:DW}}});var R$e=w((IKr,v$e)=>{"use strict";v$e.exports=kce;var{messageWithCauses:o_n,stackWithCauses:a_n,isErrorLike:T$e}=Rce(),{pinoErrProto:c_n,pinoErrorSymbols:u_n}=Ace(),{seen:wce}=u_n,{toString:l_n}=Object.prototype;function kce(e){if(!T$e(e))return e;e[wce]=void 0;let t=Object.create(c_n);t.type=l_n.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,t.message=o_n(e),t.stack=a_n(e),Array.isArray(e.errors)&&(t.aggregateErrors=e.errors.map(n=>kce(n)));for(let n in e)if(t[n]===void 0){let r=e[n];T$e(r)?n!=="cause"&&!Object.prototype.hasOwnProperty.call(r,wce)&&(t[n]=kce(r)):t[n]=r}return delete e[wce],t.raw=e,t}});var w$e=w((xKr,A$e)=>{"use strict";A$e.exports=UW;var{isErrorLike:Ice}=Rce(),{pinoErrProto:d_n,pinoErrorSymbols:f_n}=Ace(),{seen:LW}=f_n,{toString:p_n}=Object.prototype;function UW(e){if(!Ice(e))return e;e[LW]=void 0;let t=Object.create(d_n);t.type=p_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=>UW(n))),Ice(e.cause)&&!Object.prototype.hasOwnProperty.call(e.cause,LW)&&(t.cause=UW(e.cause));for(let n in e)if(t[n]===void 0){let r=e[n];Ice(r)?Object.prototype.hasOwnProperty.call(r,LW)||(t[n]=UW(r)):t[n]=r}return delete e[LW],t.raw=e,t}});var O$e=w((OKr,x$e)=>{"use strict";x$e.exports={mapHttpRequest:h_n,reqSerializer:I$e};var xce=Symbol("pino-raw-req-ref"),k$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[xce]},set:function(e){this[xce]=e}}});Object.defineProperty(k$e,xce,{writable:!0,value:{}});function I$e(e){let t=e.info||e.socket,n=Object.create(k$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 h_n(e){return{req:I$e(e)}}});var M$e=w((PKr,C$e)=>{"use strict";C$e.exports={mapHttpResponse:m_n,resSerializer:N$e};var Oce=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[Oce]},set:function(e){this[Oce]=e}}});Object.defineProperty(P$e,Oce,{writable:!0,value:{}});function N$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 m_n(e){return{res:N$e(e)}}});var Nce=w((NKr,D$e)=>{"use strict";var Pce=R$e(),g_n=w$e(),FW=O$e(),jW=M$e();D$e.exports={err:Pce,errWithCause:g_n,mapHttpRequest:FW.mapHttpRequest,mapHttpResponse:jW.mapHttpResponse,req:FW.reqSerializer,res:jW.resSerializer,wrapErrorSerializer:function(t){return t===Pce?t:function(r){return t(Pce(r))}},wrapRequestSerializer:function(t){return t===FW.reqSerializer?t:function(r){return t(FW.reqSerializer(r))}},wrapResponseSerializer:function(t){return t===jW.resSerializer?t:function(r){return t(jW.resSerializer(r))}}}});var Cce=w((CKr,L$e)=>{"use strict";function y_n(e,t){return t}L$e.exports=function(){let t=Error.prepareStackTrace;Error.prepareStackTrace=y_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 B$e=w((MKr,q$e)=>{"use strict";function Mce(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)j$e(l,a);else{let f=typeof n=="function"?n(b_n(l,a),[...c.slice(0,d),...a]):n;F$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 A_n(e){if(!Array.isArray(e))throw new TypeError("paths must be an array");for(let t of e)R_n(t)}function w_n(e={}){let{paths:t=[],censor:n="[REDACTED]",serialize:r=JSON.stringify,strict:i=!0,remove:s=!1}=e;A_n(t);let o=T_n(t);return function(c){if(i&&(c===null||typeof c!="object")&&(c==null||typeof c!="object"))return r?r(c):c;let u=v_n(c,o),l=c,d=n;return typeof n=="function"&&(d=n),E_n(u,t,d,s),r===!1?(u.restore=function(){return Mce(l)},u):typeof r=="function"?r(u):JSON.stringify(u)}}q$e.exports=w_n});var Hk=w((DKr,z$e)=>{"use strict";var k_n=Symbol("pino.setLevel"),I_n=Symbol("pino.getLevel"),x_n=Symbol("pino.levelVal"),O_n=Symbol("pino.levelComp"),P_n=Symbol("pino.useLevelLabels"),N_n=Symbol("pino.useOnlyCustomLevels"),C_n=Symbol("pino.mixin"),M_n=Symbol("pino.lsCache"),D_n=Symbol("pino.chindings"),L_n=Symbol("pino.asJson"),U_n=Symbol("pino.write"),F_n=Symbol("pino.redactFmt"),j_n=Symbol("pino.time"),H_n=Symbol("pino.timeSliceIndex"),q_n=Symbol("pino.stream"),B_n=Symbol("pino.stringify"),z_n=Symbol("pino.stringifySafe"),G_n=Symbol("pino.stringifiers"),V_n=Symbol("pino.end"),W_n=Symbol("pino.formatOpts"),K_n=Symbol("pino.messageKey"),Y_n=Symbol("pino.errorKey"),Z_n=Symbol("pino.nestedKey"),J_n=Symbol("pino.nestedKeyStr"),X_n=Symbol("pino.mixinMergeStrategy"),Q_n=Symbol("pino.msgPrefix"),$_n=Symbol("pino.wildcardFirst"),eTn=Symbol.for("pino.serializers"),tTn=Symbol.for("pino.formatters"),nTn=Symbol.for("pino.hooks"),rTn=Symbol.for("pino.metadata");z$e.exports={setLevelSym:k_n,getLevelSym:I_n,levelValSym:x_n,levelCompSym:O_n,useLevelLabelsSym:P_n,mixinSym:C_n,lsCacheSym:M_n,chindingsSym:D_n,asJsonSym:L_n,writeSym:U_n,serializersSym:eTn,redactFmtSym:F_n,timeSym:j_n,timeSliceIndexSym:H_n,streamSym:q_n,stringifySym:B_n,stringifySafeSym:z_n,stringifiersSym:G_n,endSym:V_n,formatOptsSym:W_n,messageKeySym:K_n,errorKeySym:Y_n,nestedKeySym:Z_n,wildcardFirstSym:$_n,needsMetadataGsym:rTn,useOnlyCustomLevelsSym:N_n,formattersSym:tTn,hooksSym:nTn,nestedKeyStrSym:J_n,mixinMergeStrategySym:X_n,msgPrefixSym:Q_n}});var Lce=w((LKr,K$e)=>{"use strict";var G$e=B$e(),{redactFmtSym:iTn,wildcardFirstSym:qW}=Hk(),Dce=/[^.[\]]+|\[([^[\]]*?)\]/g,V$e="[Redacted]",W$e=!1;function sTn(e,t){let{paths:n,censor:r,remove:i}=oTn(e),s=n.reduce((c,u)=>{Dce.lastIndex=0;let l=Dce.exec(u),d=Dce.exec(u),f=l[1]!==void 0?l[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):l[0];if(f==="*"&&(f=qW),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!==qW&&c[f].length===0&&c[f].push(...c[qW]||[]),f===qW&&Object.keys(c).forEach(function(m){c[m]&&c[m].push(h)}),c[f].push(h),c},{}),o={[iTn]:G$e({paths:n,censor:r,serialize:t,strict:W$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]=G$e({paths:s[u],censor:l,serialize:t,strict:W$e,remove:i})}return c},o)}function oTn(e){if(Array.isArray(e))return e={paths:e,censor:V$e},e;let{paths:t,censor:n=V$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}}K$e.exports=sTn});var J$e=w((UKr,Z$e)=>{"use strict";var aTn=()=>"",cTn=()=>`,"time":${Date.now()}`,uTn=()=>`,"time":${Math.round(Date.now()/1e3)}`,lTn=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,dTn=1000000n,Y$e=1000000000n,fTn=BigInt(Date.now())*dTn,pTn=process.hrtime.bigint(),hTn=()=>{let e=process.hrtime.bigint()-pTn,t=fTn+e,n=t/Y$e,r=t%Y$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:aTn,epochTime:cTn,unixTime:uTn,isoTime:lTn,isoTimeNano:hTn}});var Q$e=w((FKr,X$e)=>{"use strict";function mTn(e){try{return JSON.stringify(e)}catch{return'"[Circular]"'}}X$e.exports=gTn;function gTn(e,t,n){var r=n&&n.stringify||mTn,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));Uce.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(););};Uce.exports=e}});var oet=w((HKr,set)=>{"use strict";var Si=Y("fs"),yTn=Y("events"),STn=Y("util").inherits,$$e=Y("path"),Hce=Fce(),bTn=Y("assert"),BW=100,zW=Buffer.allocUnsafe(0),ETn=16*1024,eet="buffer",tet="utf8",[_Tn,TTn]=(process.versions.node||"0.0").split(".").map(Number),vTn=_Tn>=22&&TTn>=7;function net(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($$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($$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||ETn,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===eet)this._writingBuf=zW,this.write=wTn,this.flush=ITn,this.flushSync=OTn,this._actualWrite=NTn,h=()=>Si.writeSync(this.fd,this._writingBuf),m=()=>Si.write(this.fd,this._writingBuf,this.release);else if(f===void 0||f===tet)this._writingBuf="",this.write=ATn,this.flush=kTn,this.flushSync=xTn,this._actualWrite=PTn,h=()=>Buffer.isBuffer(this._writingBuf)?Si.writeSync(this.fd,this._writingBuf):Si.writeSync(this.fd,this._writingBuf,"utf8"),m=()=>Buffer.isBuffer(this._writingBuf)?Si.write(this.fd,this._writingBuf,this.release):Si.write(this.fd,this._writingBuf,"utf8",this.release);else throw new Error(`SonicBoom supports "${tet}" and "${eet}", but passed ${f}`);if(typeof t=="number")this.fd=t,process.nextTick(()=>this.emit("ready"));else if(typeof t=="string")net(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{Hce(BW),this.release(void 0,0)}catch(E){this.release(E)}else setTimeout(m,BW);else this._writing=!1,this.emit("error",g);return}this.emit("write",y);let b=jce(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(),_=jce(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,GW(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(RTn,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 jce(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 RTn(e){e.listenerCount("drain")>0&&(e._asyncDrainScheduled=!1,e.emit("drain"))}STn(Pf,yTn);function ret(e,t){return e.length===0?zW:e.length===1?e[0]:Buffer.concat(e,t)}function ATn(e){if(this.destroyed)throw new Error("SonicBoom destroyed");e=""+e;let t=Buffer.byteLength(e),n=this._len+t,r=this._bufs;return this.maxLength&&n>this.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?r.push(e):r[r.length-1]+=e,this._len=n,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._lenthis.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?(n.push([e]),r.push(e.length)):(n[n.length-1].push(e),r[r.length-1]+=e.length),this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._len{if(this._fsync)this._flushPending=!1,e();else try{Si.fsync(this.fd,r=>{this._flushPending=!1,e(r)})}catch(r){e(r)}this.off("error",n)},n=r=>{this._flushPending=!1,e(r),this.off("drain",t)};this.once("drain",t),this.once("error",n)}function kTn(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&&iet.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&&iet.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)})}),net(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():GW(this)))};function xTn(){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=jce(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;Hce(BW)}}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=zW);let e=zW;for(;this._bufs.length||e.length;){e.length<=0&&(e=ret(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;Hce(BW)}}}Pf.prototype.destroy=function(){this.destroyed||GW(this)};function PTn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:this._bufs.shift()||"",this.sync)try{let t=Buffer.isBuffer(this._writingBuf)?Si.writeSync(this.fd,this._writingBuf):Si.writeSync(this.fd,this._writingBuf,"utf8");e(null,t)}catch(t){e(t)}else Si.write(this.fd,this._writingBuf,e)}function NTn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:ret(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 vTn&&(this._writingBuf=Buffer.from(this._writingBuf)),Si.write(this.fd,this._writingBuf,e)}function GW(e){if(e.fd===-1){e.once("ready",GW.bind(null,e));return}e._periodicFlushTimer!==void 0&&clearInterval(e._periodicFlushTimer),e.destroyed=!0,e._bufs=[],e._lens=[],bTn(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;set.exports=Pf});var qce=w((qKr,fet)=>{"use strict";var Nf={exit:[],beforeExit:[]},aet={exit:DTn,beforeExit:LTn},qk;function CTn(){qk===void 0&&(qk=new FinalizationRegistry(UTn))}function MTn(e){Nf[e].length>0||process.on(e,aet[e])}function cet(e){Nf[e].length>0||(process.removeListener(e,aet[e]),Nf.exit.length===0&&Nf.beforeExit.length===0&&(qk=void 0))}function DTn(){uet("exit")}function LTn(){uet("beforeExit")}function uet(e){for(let t of Nf[e]){let n=t.deref(),r=t.fn;n!==void 0&&r(n,e)}Nf[e]=[]}function UTn(e){for(let t of["exit","beforeExit"]){let n=Nf[t].indexOf(e);Nf[t].splice(n,n+1),cet(t)}}function det(e,t,n){if(t===void 0)throw new Error("the object can't be undefined");MTn(e);let r=new WeakRef(t);r.fn=n,CTn(),qk.register(t,r),Nf[e].push(r)}function FTn(e,t){det("exit",e,t)}function jTn(e,t){det("beforeExit",e,t)}function HTn(e){if(qk!==void 0){qk.unregister(e);for(let t of["exit","beforeExit"])Nf[t]=Nf[t].filter(n=>{let r=n.deref();return r&&r!==e}),cet(t)}}fet.exports={register:FTn,registerBeforeExit:jTn,unregister:HTn}});var pet=w((BKr,qTn)=>{qTn.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 met=w((zKr,het)=>{"use strict";function BTn(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 zTn(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()}het.exports={wait:BTn,waitDiff:zTn}});var yet=w((GKr,get)=>{"use strict";get.exports={WRITE_INDEX:4,READ_INDEX:8}});var vet=w((VKr,Tet)=>{"use strict";var{version:GTn}=pet(),{EventEmitter:VTn}=Y("events"),{Worker:WTn}=Y("worker_threads"),{join:KTn}=Y("path"),{pathToFileURL:YTn}=Y("url"),{wait:ZTn}=met(),{WRITE_INDEX:xu,READ_INDEX:Iu}=yet(),JTn=Y("buffer"),XTn=Y("assert"),be=Symbol("kImpl"),QTn=JTn.constants.MAX_STRING_LENGTH,IM=class{constructor(t){this._value=t}deref(){return this._value}},WW=class{register(){}unregister(){}},$Tn=process.env.NODE_V8_COVERAGE?WW:global.FinalizationRegistry||WW,evn=process.env.NODE_V8_COVERAGE?IM:global.WeakRef||IM,bet=new $Tn(e=>{e.exited||e.terminate()});function tvn(e,t){let{filename:n,workerData:r}=t,s=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||KTn(__dirname,"lib","worker.js"),o=new WTn(s,{...t.workerOpts,trackUnmanagedFds:!1,workerData:{filename:n.indexOf("file://")===0?n:YTn(n).href,dataBuf:e[be].dataBuf,stateBuf:e[be].stateBuf,workerData:{$context:{threadStreamVersion:GTn},...r}}});return o.stream=new IM(e),o.on("message",nvn),o.on("exit",_et),bet.register(e,o),o}function Eet(e){XTn(!e[be].sync),e[be].needDrain&&(e[be].needDrain=!1,e.emit("drain"))}function VW(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?Wce(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),KW(e,r,VW.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),KW(e,r,VW.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),VW(e)})}else vh(e,new Error("overwritten"))}function nvn(e){let t=this.stream.deref();if(t===void 0){this.exited=!0,this.terminate();return}switch(e.code){case"READY":this.stream=new evn(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 _et(e){let t=this.stream.deref();t!==void 0&&(bet.unregister(t),t.worker.exited=!0,t.worker.off("exit",_et),vh(t,e!==0?new Error("the worker thread exited"):null))}var zce=class extends VTn{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=tvn(this,t),this.on("message",(n,r)=>{this.worker.postMessage(n,r)})}write(t){if(this[be].destroyed)return Gce(this,new Error("the worker has exited")),!1;if(this[be].ending)return Gce(this,new Error("the worker is ending")),!1;if(this[be].flushing&&this[be].buf.length+t.length>=QTn)try{Bce(this),this[be].flushing=!0}catch(n){return vh(this,n),!1}if(this[be].buf+=t,this[be].sync)try{return Bce(this),!0}catch(n){return vh(this,n),!1}return this[be].flushing||(this[be].flushing=!0,setImmediate(VW,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,Wce(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);ZTn(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||(Bce(this),Vce(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 Gce(e,t){setImmediate(()=>{e.emit("error",t)})}function vh(e,t){e[be].destroyed||(e[be].destroyed=!0,t&&(e[be].errored=t,Gce(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 KW(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 Wce(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 Bce(e){let t=()=>{e[be].ending?Wce(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,xu),r=e[be].data.length-n;if(r===0){Vce(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),KW(e,i,t);else{for(Vce(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),KW(e,i,t)}}}function Vce(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)")}}Tet.exports=zce});var Zce=w((WKr,wet)=>{"use strict";var{createRequire:rvn}=Y("module"),{existsSync:ivn}=Y("node:fs"),svn=Cce(),{join:Kce,isAbsolute:Aet,sep:ovn}=Y("node:path"),{fileURLToPath:avn}=Y("node:url"),cvn=Fce(),Yce=qce(),uvn=vet();function lvn(e){Yce.register(e,mvn),Yce.registerBeforeExit(e,gvn),e.on("close",function(){Yce.unregister(e)})}function dvn(){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"]||Kce(__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 hvn(p(d),c,s,a,f);function p(h){if(h=l[h]||h,Aet(h)||h.indexOf("file://")===0)return h;if(h==="pino/file")return Kce(__dirname,"..","file.js");let m;for(let g of u)try{let y=g==="node:repl"?process.cwd()+ovn:g;m=rvn(y).resolve(h);break}catch{continue}if(!m)throw new Error(`unable to determine transport target for "${h}"`);return m}}wet.exports=yvn});var JW=w((YKr,jet)=>{"use strict";var Svn=Y("node:diagnostics_channel"),ket=Q$e(),{mapHttpRequest:bvn,mapHttpResponse:Evn}=Nce(),Xce=oet(),Iet=qce(),{lsCacheSym:_vn,chindingsSym:Cet,writeSym:xet,serializersSym:Met,formatOptsSym:Oet,endSym:Tvn,stringifiersSym:Det,stringifySym:Let,stringifySafeSym:Qce,wildcardFirstSym:Uet,nestedKeySym:vvn,formattersSym:Fet,messageKeySym:Rvn,errorKeySym:Avn,nestedKeyStrSym:wvn,msgPrefixSym:YW}=Hk(),{isMainThread:kvn}=Y("worker_threads"),Ivn=Zce(),[xvn]=process.versions.node.split(".").map(e=>Number(e)),Pet=Svn.tracingChannel("pino_asJson"),Jce=xvn>=25?e=>JSON.stringify(e):Pvn;function Bk(){}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=bvn(r):typeof r.setHeader=="function"&&(r=Evn(r)));let o;s===null&&i.length===0?o=[null]:(s=i.shift(),o=i),typeof this[YW]=="string"&&s!==void 0&&s!==null&&(s=this[YW]+s),this[xet](r,ket(s,o,this[Oet]),e)}else{let s=r===void 0?i.shift():r;typeof this[YW]=="string"&&s!==void 0&&s!==null&&(s=this[YW]+s),this[xet](null,ket(s,i,this[Oet]),e)}}}function Pvn(e){let t="",n=0,r=!1,i=255,s=e.length;if(s>100)return JSON.stringify(e);for(var o=0;o=32;o++)i=e.charCodeAt(o),(i===34||i===92)&&(t+=e.slice(n,o)+"\\",n=o,r=!0);return r?t+=e.slice(n):t=e,i<32?JSON.stringify(e):'"'+t+'"'}function Nvn(e,t,n,r){if(Pet.hasSubscribers===!1)return Net.call(this,e,t,n,r);let i={instance:this,arguments};return Pet.traceSync(Net,i,this,e,t,n,r)}function Net(e,t,n,r){let i=this[Let],s=this[Qce],o=this[Det],a=this[Tvn],c=this[Cet],u=this[Met],l=this[Fet],d=this[Rvn],f=this[Avn],p=this[_vn][n]+r;p=p+c;let h;l.log&&(e=l.log(e));let m=o[Uet],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||Jce)(h);break;default:h=(S||i)(h,s)}if(h===void 0)continue;let E=Jce(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||Jce)(h),y=',"'+d+'":'+h;break;default:h=(b||i)(h,s),y=',"'+d+'":'+h}}return this[vvn]&&g?p+this[wvn]+g.slice(1)+"}"+y+a:p+g+y+a}function Cvn(e,t){let n,r=e[Cet],i=e[Let],s=e[Qce],o=e[Det],a=o[Uet],c=e[Met],u=e[Fet].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 Mvn(e){return e.write!==e.constructor.prototype.write}function ZW(e){let t=new Xce(e);return t.on("error",n),!e.sync&&kvn&&(Iet.register(t,Dvn),t.on("close",function(){Iet.unregister(t)})),t;function n(r){if(r.code==="EPIPE"){t.write=Bk,t.end=Bk,t.flushSync=Bk,t.destroy=Bk;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 Lvn(e){return function(n,r,i={},s){if(typeof i=="string")s=ZW({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=ZW({dest:s})}else if(i instanceof Xce||i.writable||i._writableState)s=i,i={};else if(i.transport){if(i.transport instanceof Xce||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=Bk),s||(Mvn(process.stdout)?s=process.stdout:s=ZW({fd:process.stdout.fd||1})),{opts:i,stream:s}}}function Uvn(e,t){try{return JSON.stringify(e)}catch{try{return(t||this[Qce])(e)}catch{return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function Fvn(e,t,n){return{level:e,bindings:t,log:n}}function jvn(e){let t=Number(e);return typeof e=="string"&&Number.isFinite(t)?t:e===void 0?1:e}jet.exports={noop:Bk,buildSafeSonicBoom:ZW,asChindings:Cvn,asJson:Nvn,genLog:Ovn,createArgsNormalizer:Lvn,stringify:Uvn,buildFormatters:Fvn,normalizeDestFileDescriptor:jvn}});var XW=w((ZKr,Het)=>{var Hvn={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},qvn={ASC:"ASC",DESC:"DESC"};Het.exports={DEFAULT_LEVELS:Hvn,SORTING_ORDER:qvn}});var tue=w((JKr,Get)=>{"use strict";var{lsCacheSym:Bvn,levelValSym:$ce,useOnlyCustomLevelsSym:zvn,streamSym:Gvn,formattersSym:Vvn,hooksSym:Wvn,levelCompSym:qet}=Hk(),{noop:Kvn,genLog:aT}=JW(),{DEFAULT_LEVELS:Rh,SORTING_ORDER:Bet}=XW(),zet={fatal:e=>{let t=aT(Rh.fatal,e);return function(...n){let r=this[Gvn];if(t.call(this,...n),typeof r.flushSync=="function")try{r.flushSync()}catch{}}},error:e=>aT(Rh.error,e),warn:e=>aT(Rh.warn,e),info:e=>aT(Rh.info,e),debug:e=>aT(Rh.debug,e),trace:e=>aT(Rh.trace,e)},eue=Object.keys(Rh).reduce((e,t)=>(e[Rh[t]]=t,e),{}),Yvn=Object.keys(eue).reduce((e,t)=>(e[t]='{"level":'+Number(t),e),{});function Zvn(e){let t=e[Vvn].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[Bvn]=r,e}function Jvn(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 Xvn(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[$ce],i=this[$ce]=n[e],s=this[zvn],o=this[qet],a=this[Wvn].logMethod;for(let c in n){if(o(n[c],i)===!1){this[c]=Kvn;continue}this[c]=Jvn(c,s)?zet[c](a):aT(n[c],a)}this.emit("level-change",e,i,t[r],r,this)}function Qvn(e){let{levels:t,levelVal:n}=this;return t&&t.labels?t.labels[n]:""}function $vn(e){let{values:t}=this.levels,n=t[e];return n!==void 0&&this[qet](n,this[$ce])}function eRn(e,t,n){return e===Bet.DESC?t<=n:t>=n}function tRn(e){return typeof e=="string"?eRn.bind(null,e):e}function nRn(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:eue,n),i=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),t?null:Rh,e);return{labels:r,values:i}}function rRn(e,t,n){if(typeof e=="number"){if(![].concat(Object.keys(t||{}).map(s=>t[s]),n?[]:Object.keys(eue).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 iRn(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 sRn(e){if(typeof e!="function"&&!(typeof e=="string"&&Object.values(Bet).includes(e)))throw new Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}Get.exports={initialLsCache:Yvn,genLsCache:Zvn,levelMethods:zet,getLevel:Qvn,setLevel:Xvn,isLevelEnabled:$vn,mappings:nRn,assertNoLevelCollisions:iRn,assertDefaultLevelFound:rRn,genLevelComparison:tRn,assertLevelComparison:sRn}});var nue=w((XKr,Vet)=>{"use strict";Vet.exports={version:"10.3.1"}});var $et=w(($Kr,Qet)=>{"use strict";var{EventEmitter:oRn}=Y("node:events"),{lsCacheSym:aRn,levelValSym:cRn,setLevelSym:iue,getLevelSym:Wet,chindingsSym:$W,mixinSym:uRn,asJsonSym:Yet,writeSym:lRn,mixinMergeStrategySym:dRn,timeSym:fRn,timeSliceIndexSym:pRn,streamSym:Zet,serializersSym:cT,formattersSym:xM,errorKeySym:hRn,messageKeySym:mRn,useOnlyCustomLevelsSym:gRn,needsMetadataGsym:yRn,redactFmtSym:SRn,stringifySym:bRn,formatOptsSym:ERn,stringifiersSym:_Rn,msgPrefixSym:sue,hooksSym:TRn}=Hk(),{getLevel:vRn,setLevel:RRn,isLevelEnabled:ARn,mappings:wRn,initialLsCache:kRn,genLsCache:IRn,assertNoLevelCollisions:xRn}=tue(),{asChindings:oue,asJson:ORn,buildFormatters:rue,stringify:Ket,noop:Jet}=JW(),{version:PRn}=nue(),NRn=Lce(),CRn=class{},Xet={constructor:CRn,child:MRn,bindings:DRn,setBindings:LRn,flush:jRn,isLevelEnabled:ARn,version:PRn,get level(){return this[Wet]()},set level(e){this[iue](e)},get levelVal(){return this[cRn]},set levelVal(e){throw Error("levelVal is read-only")},get msgPrefix(){return this[sue]},get[Symbol.toStringTag](){return"Pino"},[aRn]:kRn,[lRn]:FRn,[Yet]:ORn,[Wet]:vRn,[iue]:RRn};Object.setPrototypeOf(Xet,oRn.prototype);Qet.exports=function(){return Object.create(Xet)};var QW=e=>e;function MRn(e,t){if(!e)throw Error("missing bindings for child Pino");let n=this[cT],r=this[xM],i=Object.create(this);if(t==null)return i[xM].bindings!==QW&&(i[xM]=rue(r.level,QW,r.log)),i[$W]=oue(i,e),this.onChild!==Jet&&this.onChild(i),i;if(t.hasOwnProperty("serializers")===!0){i[cT]=Object.create(null);for(let u in n)i[cT][u]=n[u];let a=Object.getOwnPropertySymbols(n);for(var s=0;s{"use strict";var{hasOwnProperty:OM}=Object.prototype,lT=uue();lT.configure=uue;lT.stringify=lT;lT.default=lT;lue.stringify=lT;lue.configure=uue;ntt.exports=lT;var HRn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function XS(e){return e.length<5e3&&!HRn.test(e)?`"${e}"`:JSON.stringify(e)}function aue(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 qRn=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function cue(e){return qRn.call(e)!==void 0&&e.length!==0}function ett(e,t,n){e.length= 1`)}return n===void 0?1/0:n}function uT(e){return e===1?"1 item":`${e} items`}function VRn(e){let t=new Set;for(let n of e)(typeof n=="string"||typeof n=="number")&&t.add(String(n));return t}function WRn(e){if(OM.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 uue(e){e={...e};let t=WRn(e);t&&(e.bigint===void 0&&(e.bigint=!1),"circularValue"in e||(e.circularValue=Error));let n=BRn(e),r=GRn(e,"bigint"),i=zRn(e),s=typeof i=="function"?i:void 0,o=ttt(e,"maximumDepth"),a=ttt(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 XS(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+=`${_}"... ${uT(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 L=h.length-a-1;x+=`${k}"... ${uT(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}"...": "${uT(x)} not stringified"`,R=_}return R!==""&&(T=` +${y}`,T="",R="",A=Math.min(E,a);cue(h)&&(T+=ett(h,_,a),S=S.slice(h.length),A-=h.length,R=_),i&&(S=aue(S,s)),m.push(h);for(let x=0;xa){let x=E-a;T+=`${R}"...": "${uT(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 XS(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+=`,"... ${uT(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}"...":"${uT(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,[],GRn(h),g,"")}if(g.length!==0)return l("",p,[],g,"")}return d("",p,[])}return f}});var stt=w(($Kr,itt)=>{"use strict";var due=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:rtt}=XW(),WRn=rtt.info;function KRn(e,t){e=e||[],t=t||{dedupe:!1};let n=Object.create(rtt);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,[due]:!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=YRn(h.length,t.dedupe);JRn(y,h.length,t.dedupe);y=ZRn(y,t.dedupe))if(f=h[y],f.level<=p){if(m!==0&&m!==f.level)break;if(g=f.stream,g[due]){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=WRn;let y={stream:p,level:g,levelVal:void 0,id:++r.lastId};return h.unshift(y),h.sort(ntt),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(ntt),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 XRn=Y("node:os"),ptt=Nce(),QRn=Cce(),$Rn=Lce(),htt=Y$e(),eAn=Xet(),mtt=Hk(),{configure:tAn}=ttt(),{assertDefaultLevelFound:nAn,mappings:gtt,genLsCache:rAn,genLevelComparison:iAn,assertLevelComparison:sAn}=tue(),{DEFAULT_LEVELS:ytt,SORTING_ORDER:oAn}=XW(),{createArgsNormalizer:aAn,asChindings:cAn,buildSafeSonicBoom:ott,buildFormatters:uAn,stringify:fue,normalizeDestFileDescriptor:att,noop:lAn}=JW(),{version:dAn}=nue(),{chindingsSym:ctt,redactFmtSym:fAn,serializersSym:utt,timeSym:pAn,timeSliceIndexSym:hAn,streamSym:mAn,stringifySym:ltt,stringifySafeSym:pue,stringifiersSym:dtt,setLevelSym:gAn,endSym:yAn,formatOptsSym:SAn,messageKeySym:bAn,errorKeySym:EAn,nestedKeySym:_An,mixinSym:TAn,levelCompSym:vAn,useOnlyCustomLevelsSym:RAn,formattersSym:ftt,hooksSym:AAn,nestedKeyStrSym:wAn,mixinMergeStrategySym:kAn,msgPrefixSym:IAn}=mtt,{epochTime:Stt,nullTime:xAn}=htt,{pid:OAn}=process,PAn=XRn.hostname(),NAn=ptt.err,CAn={level:"info",levelComparison:oAn.ASC,levels:ytt,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:OAn,hostname:PAn},serializers:Object.assign(Object.create(null),{err:NAn}),formatters:Object.assign(Object.create(null),{bindings(e){return e},level(e,t){return{level:t}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:Stt,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},MAn=aAn(CAn),DAn=Object.assign(Object.create(null),ptt);function hue(...e){let t={},{opts:n,stream:r}=MAn(t,QRn(),...e);n.level&&typeof n.level=="string"&&ytt[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=tAn({maximumDepth:_,maximumBreadth:T}),k=uAn(S.level,S.bindings,S.log),P=fue.bind({[pue]:x}),N=i?$Rn(i,P):{},C=i?{stringify:N[fAn]}:{stringify:P},L="}"+(s?`\r +${b}`),m.pop(),`{${T}}`}case"number":return isFinite(h)?String(h):t?t(h):"null";case"boolean":return h===!0?"true":"false";case"undefined":return;case"bigint":if(r)return String(h);default:return t?t(h):void 0}}function d(p,h,m){switch(typeof h){case"string":return XS(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+=`,"... ${uT(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}"...":"${uT(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,[],VRn(h),g,"")}if(g.length!==0)return l("",p,[],g,"")}return d("",p,[])}return f}});var att=w((e3r,ott)=>{"use strict";var due=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:stt}=XW(),KRn=stt.info;function YRn(e,t){e=e||[],t=t||{dedupe:!1};let n=Object.create(stt);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,[due]:!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=ZRn(h.length,t.dedupe);XRn(y,h.length,t.dedupe);y=JRn(y,t.dedupe))if(f=h[y],f.level<=p){if(m!==0&&m!==f.level)break;if(g=f.stream,g[due]){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=KRn;let y={stream:p,level:g,levelVal:void 0,id:++r.lastId};return h.unshift(y),h.sort(itt),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(itt),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 QRn=Y("node:os"),mtt=Nce(),$Rn=Cce(),eAn=Lce(),gtt=J$e(),tAn=$et(),ytt=Hk(),{configure:nAn}=rtt(),{assertDefaultLevelFound:rAn,mappings:Stt,genLsCache:iAn,genLevelComparison:sAn,assertLevelComparison:oAn}=tue(),{DEFAULT_LEVELS:btt,SORTING_ORDER:aAn}=XW(),{createArgsNormalizer:cAn,asChindings:uAn,buildSafeSonicBoom:ctt,buildFormatters:lAn,stringify:fue,normalizeDestFileDescriptor:utt,noop:dAn}=JW(),{version:fAn}=nue(),{chindingsSym:ltt,redactFmtSym:pAn,serializersSym:dtt,timeSym:hAn,timeSliceIndexSym:mAn,streamSym:gAn,stringifySym:ftt,stringifySafeSym:pue,stringifiersSym:ptt,setLevelSym:yAn,endSym:SAn,formatOptsSym:bAn,messageKeySym:EAn,errorKeySym:_An,nestedKeySym:TAn,mixinSym:vAn,levelCompSym:RAn,useOnlyCustomLevelsSym:AAn,formattersSym:htt,hooksSym:wAn,nestedKeyStrSym:kAn,mixinMergeStrategySym:IAn,msgPrefixSym:xAn}=ytt,{epochTime:Ett,nullTime:OAn}=gtt,{pid:PAn}=process,NAn=QRn.hostname(),CAn=mtt.err,MAn={level:"info",levelComparison:aAn.ASC,levels:btt,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:PAn,hostname:NAn},serializers:Object.assign(Object.create(null),{err:CAn}),formatters:Object.assign(Object.create(null),{bindings(e){return e},level(e,t){return{level:t}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:Ett,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},DAn=cAn(MAn),LAn=Object.assign(Object.create(null),mtt);function hue(...e){let t={},{opts:n,stream:r}=DAn(t,$Rn(),...e);n.level&&typeof n.level=="string"&&btt[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=nAn({maximumDepth:_,maximumBreadth:T}),k=lAn(S.level,S.bindings,S.log),P=fue.bind({[pue]:x}),N=i?eAn(i,P):{},C=i?{stringify:N[pAn]}:{stringify:P},L="}"+(s?`\r `:` -`),G=cAn.bind(null,{[ctt]:"",[utt]:o,[dtt]:N,[ltt]:fue,[pue]:x,[ftt]:k}),W="";d!==null&&(f===void 0?W=G(d):W=G(Object.assign({},d,{name:f})));let $=a instanceof Function?a:a?Stt:xAn,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"`);nAn(p,h,b);let Q=gtt(h,b);typeof r.emit=="function"&&r.emit("message",{code:"PINO_CONFIG",config:{levels:Q,messageKey:c,errorKey:u}}),sAn(m);let B=iAn(m);return Object.assign(t,{levels:Q,[vAn]:B,[RAn]:b,[mAn]:r,[pAn]:$,[hAn]:q,[ltt]:fue,[pue]:x,[dtt]:N,[yAn]:L,[SAn]:C,[bAn]:c,[EAn]:u,[_An]:l,[wAn]:l?`,${JSON.stringify(l)}:{`:"",[utt]:o,[TAn]:g,[kAn]:y,[ctt]:W,[ftt]:k,[AAn]:E,silent:lAn,onChild:R,[IAn]:A}),Object.setPrototypeOf(t,eAn()),rAn(t),t[gAn](p),t}wd.exports=hue;wd.exports.destination=(e=process.stdout.fd)=>typeof e=="object"?(e.dest=att(e.dest||process.stdout.fd),ott(e)):ott({dest:att(e),minLength:0});wd.exports.transport=Zce();wd.exports.multistream=stt();wd.exports.levels=gtt();wd.exports.stdSerializers=DAn;wd.exports.stdTimeFunctions=Object.assign({},htt);wd.exports.symbols=mtt;wd.exports.version=dAn;wd.exports.default=hue;wd.exports.pino=hue});var Ttt=w((t3r,_tt)=>{"use strict";var e4=btt(),{serializersSym:Ett}=e4.symbols,{FST_ERR_LOG_INVALID_DESTINATION:LAn}=Ko();function UAn(e){if(e.stream&&e.file)throw new LAn;e.file&&(e.stream=e4.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[Ett]&&(e.serializers=Object.assign({},e.serializers,t[Ett])),r=t.child({},e),e.logger=t,e.genReqId=n):r=e4(e,e.stream),r}var FAn={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:e4.stdSerializers.err,res:function(t){return{statusCode:t.statusCode}}};_tt.exports={serializers:FAn,createPinoLogger:UAn}});var PM=w((n3r,Rtt)=>{"use strict";var{FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:jAn,FST_ERR_LOG_INVALID_LOGGER_CONFIG:HAn,FST_ERR_LOG_INVALID_LOGGER_INSTANCE:qAn,FST_ERR_LOG_INVALID_LOGGER:BAn}=Ko();function zAn(e,t,n,r,i){let s={[e.requestIdLogLabel]:r},o=e.childLoggerFactory.call(e.server,t,s,i||{},n);return e.childLoggerFactory!==vtt&&t4(o,!0),o}function vtt(e,t,n){return e.child(t,n)}function t4(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 BAn(r.join(","))}else return!0}function GAn(e){if(e.logger&&e.loggerInstance)throw new jAn;if(!e.loggerInstance&&!e.logger){let o=h$e();return o.child=()=>o,{logger:o,hasLogger:!1}}let{createPinoLogger:t,serializers:n}=Ttt();if(t4(e.loggerInstance))return{logger:t({logger:e.loggerInstance,serializers:Object.assign({},n,e.loggerInstance.serializers)}),hasLogger:!0};if(t4(e.logger))throw HAn();if(e.loggerInstance)throw qAn();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 VAn(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}Rtt.exports={createChildLogger:zAn,defaultChildLoggerFactory:vtt,createLogger:GAn,validateLogger:t4,now:VAn}});var n4=w((r3r,Att)=>{"use strict";Att.exports=WAn;function zk(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function WAn(e){if(e=e||{},e.circles)return KAn(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 YAn=n4()({circles:!1,proto:!0}),{kSchemaVisited:wtt,kSchemaResponse:ZAn}=$s(),mue=Symbol.for("fluent-schema-object"),{FST_ERR_SCH_MISSING_ID:JAn,FST_ERR_SCH_ALREADY_PRESENT:XAn,FST_ERR_SCH_DUPLICATE:QAn,FST_ERR_SCH_CONTENT_MISSING_SCHEMA:ktt}=Ko(),xtt=["params","body","querystring","query","headers"];function r4(e){this.store=e||{}}r4.prototype.add=function(e){let t=YAn(e.isFluentSchema||e.isFluentJSONSchema||e[mue]?e.valueOf():e),n=t.$id;if(!n)throw new JAn;if(this.store[n])throw new XAn(n);this.store[n]=t};r4.prototype.getSchemas=function(){return Object.assign({},this.store)};r4.prototype.getSchema=function(e){return this.store[e]};function Itt(e){return typeof e=="object"&&Object.getPrototypeOf(e)!==Object.prototype}function $An(e,t){if(e[wtt])return e;if(e.query){if(e.querystring)throw new QAn("querystring");e.querystring=e.query}ewn(e);for(let n of xtt){let r=e[n];if(r&&!Itt(r)&&n==="body"&&r.content){let i=r.content,s=Object.keys(i);for(let o=0;o{"use strict";var nwn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;Ntt.exports=class Ptt{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&&nwn.test(t)===!1?'"'+t+'"':JSON.stringify(t)}asUnsafeString(t){return'"'+t+'"'}getState(){return this._options}static restoreFromState(t){return new Ptt(t)}}});var Mtt=w((o3r,Ctt)=>{"use strict";var rwn=i4(),iwn={mode:"standalone"},swn=rwn.restoreFromState(iwn),own=null;Ctt.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})(own,swn)});var CM=w((a3r,Ftt)=>{"use strict";var Dtt=Y("node:http").STATUS_CODES,awn=mce(),{setErrorStatusCode:cwn}=OW(),{kReplyHeaders:dT,kReplyNextErrorHandler:s4,kReplyIsRunningOnErrorHook:uwn,kRouteContext:Utt,kDisableRequestLogging:o4}=$s(),{FST_ERR_REP_INVALID_PAYLOAD_TYPE:lwn,FST_ERR_FAILED_ERROR_SERIALIZATION:dwn}=Ko(),{getSchemaSerializer:fwn}=NM(),gue=Mtt(),pwn={func:mwn,toJSON(){return this.func.name.toString()+"()"}};function hwn(e,t,n){e[uwn]=!1;let r=e[Utt];if(e[s4]===!1){Ltt(t,e,function(o,a){try{o.raw.writeHead(o.raw.statusCode,o[dT])}catch(c){o.log[o4]||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[s4]||r.errorHandler;e[s4]=Object.getPrototypeOf(i),delete e[dT]["content-type"],delete e[dT]["content-length"];let s=i.func;if(!s){e[s4]=!1,Ltt(t,e,n);return}try{let o=s(t,e.request,e);o!==void 0&&(o!==null&&typeof o.then=="function"?awn(o,e):e.send(o))}catch(o){e.send(o)}}function mwn(e,t,n){ywn(e,n),cwn(n,e),n.statusCode<500?n.log[o4]||n.log.info({res:n,err:e},e?.message):n.log[o4]||n.log.error({req:t,res:n,err:e},e?.message),n.send(e)}function Ltt(e,t,n){let r=t.raw,i=t.statusCode;t[dT]["content-type"]=t[dT]["content-type"]??"application/json; charset=utf-8";let s;try{let o=fwn(t[Utt],i,t[dT]["content-type"]);o===!1?s=gue({error:Dtt[i+""],code:e.code,message:e.message,statusCode:i}):s=o(Object.create(e,{error:{value:Dtt[i+""]},message:{value:e.message},statusCode:{value:i}}))}catch(o){t.log[o4]||t.log.error({err:o,statusCode:r.statusCode},"The serializer for the given status code failed"),t.code(500),s=gue(new dwn(o.message,e.message))}typeof s!="string"&&!Buffer.isBuffer(s)&&(s=gue(new lwn(typeof s))),t[dT]["content-length"]=""+Buffer.byteLength(s),n(t,s)}function gwn(e=pwn,t){if(!t)return e;let n=Object.create(e);return n.func=t,n}function ywn(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}Ftt.exports={buildErrorHandler:gwn,handleError:hwn}});var LM=w((c3r,Btt)=>{"use strict";var{kReply:yue,kRequest:Sue,kState:Swn,kHasBeenDecorated:bwn}=$s(),{FST_ERR_DEC_ALREADY_PRESENT:jtt,FST_ERR_DEC_MISSING_DEPENDENCY:Ewn,FST_ERR_DEC_AFTER_START:_wn,FST_ERR_DEC_REFERENCE_TYPE:Twn,FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:vwn,FST_ERR_DEC_UNDECLARED:Rwn}=Ko();function Awn(e,t,n,r){if(Object.hasOwn(e,t))throw new jtt(t);bue(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 wwn(e){if(!MM(this,e))throw new Rwn(e,"instance");return typeof this[e]=="function"?this[e].bind(this):this[e]}function Htt(e,t,n,r){let i=e.prototype;if(Object.hasOwn(i,t)||DM(e,t))throw new jtt(t);e[bwn]=!0,bue(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 qtt(e,t){if(typeof t=="object"&&t&&!(typeof t.getter=="function"||typeof t.setter=="function"))throw new Twn(e,typeof t)}function kwn(e,t,n){return Eue(this,e),Awn(this,e,t,n),this}function MM(e,t){return t?t in e||e.prototype&&t in e.prototype||DM(e,t):e in this}function DM(e,t){return e.props?e.props.find(({key:n})=>n===t):!1}function Iwn(e){return e&&DM(this[Sue],e)?!0:MM(this[Sue].prototype,e)}function xwn(e){return e&&DM(this[yue],e)?!0:MM(this[yue].prototype,e)}function bue(e,t,n){if(n!=null){if(!Array.isArray(n))throw new vwn(t);for(let r=0;r!==n.length;++r)if(!MM(e,n[r]))throw new Ewn(n[r])}}function Own(e,t,n){return Eue(this,e),qtt(e,t),Htt(this[yue],e,t,n),this}function Pwn(e,t,n){return Eue(this,e),qtt(e,t),Htt(this[Sue],e,t,n),this}function Eue(e,t){if(e[Swn].started)throw new _wn(t)}Btt.exports={add:kwn,exist:MM,existRequest:Iwn,existReply:xwn,dependencies:bue,decorateReply:Own,decorateRequest:Pwn,getInstanceDecorator:wwn,hasKey:DM}});var m4=w((u3r,h4)=>{"use strict";var a4=Y("node:stream").finished,{kFourOhFourContext:ztt,kReplyErrorHandlerCalled:Jtt,kReplyHijacked:Aue,kReplyStartTime:FM,kReplyEndTime:wue,kReplySerializer:ng,kReplySerializerDefault:c4,kReplyIsError:u4,kReplyHeaders:jr,kReplyTrailers:Yo,kReplyHasStatusCode:kue,kReplyIsRunningOnErrorHook:Iue,kReplyNextErrorHandler:Nwn,kDisableRequestLogging:Xtt,kSchemaResponse:l4,kReplyCacheSerializeFns:QS,kSchemaController:_ue,kOptions:Cwn,kRouteContext:Dn,kTimeoutTimer:d4,kOnAbort:Gk,kRequestSignal:Qtt}=$s(),{onSendHookRunner:$tt,onResponseHookRunner:Mwn,preHandlerHookRunner:Dwn,preSerializationHookRunner:Lwn}=ZS(),Gtt=Tce()[Symbol.for("internals")],Uwn=PM(),Rue=Uwn.now,{handleError:Vtt}=CM(),{getSchemaSerializer:Fwn}=NM(),Tue={JSON:"application/json; charset=utf-8",PLAIN:"text/plain; charset=utf-8",OCTET:"application/octet-stream"},{FST_ERR_REP_INVALID_PAYLOAD_TYPE:jwn,FST_ERR_REP_RESPONSE_BODY_CONSUMED:Hwn,FST_ERR_REP_READABLE_STREAM_LOCKED:qwn,FST_ERR_REP_ALREADY_SENT:Bwn,FST_ERR_SEND_INSIDE_ONERR:zwn,FST_ERR_BAD_STATUS_CODE:Gwn,FST_ERR_BAD_TRAILER_NAME:Vwn,FST_ERR_BAD_TRAILER_VALUE:Wwn,FST_ERR_MISSING_SERIALIZATION_FN:Kwn,FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:Ywn,FST_ERR_DEC_UNDECLARED:Zwn}=Ko(),Wtt=LM(),ent=Object.prototype.toString;function Hr(e,t,n){this.raw=e,this[ng]=null,this[Jtt]=!1,this[u4]=!1,this[Iue]=!1,this.request=t,this[jr]={},this[Yo]=null,this[kue]=!1,this[FM]=void 0,this.log=n}Hr.props=[];Object.defineProperties(Hr.prototype,{[Dn]:{get(){return this.request[Dn]}},elapsedTime:{get(){return this[FM]===void 0?0:(this[wue]||Rue())-this[FM]}},server:{get(){return this.request[Dn].server}},sent:{enumerable:!0,get(){return(this[Aue]||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[Aue]=!0,this.request[Qtt]&&(clearTimeout(this.request[d4]),this.request[d4]=null,this.request[Gk]&&(this.request.raw.removeListener("close",this.request[Gk]),this.request[Gk]=null)),this};Hr.prototype.send=function(e){if(this[Iue])throw new zwn;if(this.sent===!0)return this.log.warn({err:new Bwn(this.request.url,this.request.method)}),this;if(this[u4]||e instanceof Error)return this[u4]=!1,Vk(this,e,fT),this;if(e===void 0)return fT(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"||ent.call(e)==="[object Response]")return fT(this,e),this;if(e.buffer instanceof ArrayBuffer){n||(this[jr]["content-type"]=Tue.OCTET);let r=Buffer.isBuffer(e)?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength);return fT(this,r),this}if(!n&&typeof e=="string")return this[jr]["content-type"]=Tue.PLAIN,fT(this,e),this}if(this[ng]!==null){if(typeof e!="string")return Ktt(this,e),this;e=this[ng](e)}else if(!n||t.indexOf("json")!==-1){if(!n)this[jr]["content-type"]=Tue.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 Ktt(this,e),this}return fT(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 Jwn=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(),Jwn.has(e))throw new Vwn(e);if(typeof t!="function")throw new Wwn(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 Gwn(e||String(e));return this.raw.statusCode=t,this[kue]=!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[Dn][l4]?.[e]?.[t]:n=this[Dn][l4]?.[e]:typeof e=="object"&&(n=this[Dn][QS]?.get(e)),n};Hr.prototype.compileSerializationSchema=function(e,t=null,n=null){let{request:r}=this,{method:i,url:s}=r;if(this[Dn][QS]?.has(e))return this[Dn][QS].get(e);let a=(this[Dn].serializerCompiler||this.server[_ue].serializerCompiler||this.server[_ue].setupSerializer(this.server[Cwn])||this.server[_ue].serializerCompiler)({schema:e,method:i,url:s,httpStatus:t,contentType:n});return this[Dn][QS]==null&&(this[Dn][QS]=new WeakMap),this[Dn][QS].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[Dn][l4]?.[n]?.[r]:s=this[Dn][l4]?.[n],s==null)throw r?new Ywn(n,r):new Kwn(n)}else this[Dn][QS]?.has(t)?s=this[Dn][QS].get(t):s=this.compileSerializationSchema(t,n,r);return s(e)};Hr.prototype.serialize=function(e){return this[ng]!==null?this[ng](e):this[Dn]&&this[Dn][c4]?this[Dn][c4](e,this.raw.statusCode):nnt(this[Dn],e,this.raw.statusCode)};Hr.prototype.serializer=function(e){return this[ng]=e,this};Hr.prototype.type=function(e){return this[jr]["content-type"]=e,this};Hr.prototype.redirect=function(e,t){return t||(t=this[kue]?this.raw.statusCode:302),this.header("location",e).code(t).send()};Hr.prototype.callNotFound=function(){return ikn(this),this};Hr.prototype.then=function(e,t){if(this.sent){e();return}a4(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(!Wtt.hasKey(this,e)&&!Wtt.exist(this,e))throw new Zwn(e,"reply");let t=this[e];return typeof t=="function"?t.bind(this):t};function Ktt(e,t){e[Dn].preSerialization!==null?Lwn(e[Dn].preSerialization,e.request,e,t,Ytt):Ytt(null,void 0,e,t)}function Ytt(e,t,n,r){if(e!=null){Vk(n,e);return}try{n[ng]!==null?r=n[ng](r):n[Dn]&&n[Dn][c4]?r=n[Dn][c4](r,n.raw.statusCode):r=nnt(n[Dn],r,n.raw.statusCode,n[jr]["content-type"])}catch(i){Xwn(i,n),Vk(n,i);return}fT(n,r)}function Xwn(e,t){e.serialization=t[Dn].config}function fT(e,t){e[Dn].onSend!==null?$tt(e[Dn].onSend,e.request,e,t,Qwn):tnt(e,t)}function Qwn(e,t,n,r){e!=null?Vk(n,e):tnt(n,r)}function vue(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 tnt(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(ent.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 Hwn;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"),vue(e,i),UM(t,n,e);return}if(i>=100&&i<200||i===204){e.removeHeader("content-type"),e.removeHeader("content-length"),vue(e,i),UM(void 0,n,e),typeof t.resume=="function"&&(t.on("error",p4),t.resume());return}if(typeof t.pipe=="function"){ekn(t,n,e);return}if(typeof t.getReader=="function"){$wn(t,n,e);return}if(typeof t!="string"&&!Buffer.isBuffer(t))throw new jwn(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))}vue(e,i),n.write(t),UM(t,n,e)}function f4(e,t,n){t.code==="ERR_STREAM_PREMATURE_CLOSE"?e[Xtt]||e.info({res:n},"stream closed prematurely"):e.warn({err:t},"response terminated with an error with headers already sent")}function $wn(e,t,n){if(e.locked)throw new qwn;let r=!0,i=!1,s=!1,o=e.getReader();if(a4(t,function(l){r&&(l!=null&&t.headersSent&&!i&&(i=!0,f4(n.log,l,t)),o.cancel().catch(p4))}),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,UM(null,t,n);return}if(t.destroyed){r=!1,o.cancel().catch(p4);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,f4(n.log,l,n)),t.destroy()):Vk(n,l)}o.read().then(a,u)}function ekn(e,t,n){let r=!0,i=!1;if(tkn(e,t,n),a4(e,{readable:!0,writable:!1},function(s){r=!1,s!=null&&(t.headersSent||n.request.raw.aborted===!0?(i||(i=!0,f4(n.log,s,n)),t.destroy()):Vk(n,s))}),a4(t,function(s){r&&(s!=null&&t.headersSent&&!i&&(i=!0,f4(n.log,s,t)),typeof e.destroy=="function"?e.destroy():typeof e.close=="function"?e.close(p4):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 UM(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 tkn(e,t,n){n[Yo]!==null&&e.on("end",()=>UM(null,t,n))}function Vk(e,t,n){e[Dn].onError!==null&&!e[Nwn]?(e[Iue]=!0,$tt(e[Dn].onError,e.request,e,t,()=>Vtt(e,t,n))):Vtt(e,t,n)}function nkn(e){e[FM]=Rue();let t=n=>{e[wue]=Rue(),e.raw.removeListener("finish",t),e.raw.removeListener("error",t);let r=e[Dn];e.request[Qtt]&&(clearTimeout(e.request[d4]),e.request[d4]=null,e.request[Gk]&&(e.request.raw.removeListener("close",e.request[Gk]),e.request[Gk]=null)),r&&r.onResponse!==null?Mwn(r.onResponse,e.request,e,Ztt):Ztt(n,e.request,e)};e.raw.on("finish",t),e.raw.on("error",t)}function Ztt(e,t,n){if(n.log[Xtt])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 rkn(e){let t=e.props.slice();function n(r,i,s){this.raw=r,this[u4]=!1,this[Jtt]=!1,this[Aue]=!1,this[ng]=null,this.request=i,this[jr]={},this[Yo]=null,this[FM]=void 0,this[wue]=void 0,this.log=s;let o;for(let a=0;a{"use strict";function xue(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 skn(t,n)}function skn(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}g4.exports=xue;g4.exports.default=xue;g4.exports.forwarded=xue});var snt=w((int,y4)=>{(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";Wk.exports=Oue;Wk.exports.default=Oue;Wk.exports.proxyaddr=Oue;Wk.exports.all=cnt;Wk.exports.compile=unt;var okn=rnt(),ant=snt(),akn=/^\d+$/u,S4=ant.isValid,b4=ant.parse,ont={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 cnt(e,t){let n=okn(e);if(!t)return n;typeof t!="function"&&(t=unt(t));for(let r=0;ri)throw new TypeError("invalid range on address: "+e);return[r,s]}function dkn(e){let t=b4(e);return t.kind()==="ipv4"?t.prefixLengthFromSubnetMask():null}function Oue(e,t){if(!e)throw new TypeError("req argument is required");if(!t)throw new TypeError("trust argument is required");let n=cnt(e,t);return n[n.length-1]}function fkn(){return!1}function pkn(e){return function(n){if(!S4(n))return!1;let r=b4(n),i,s=r.kind();for(let o=0;o{"use strict";var E4=lnt(),{kHasBeenDecorated:mkn,kSchemaBody:gkn,kSchemaHeaders:ykn,kSchemaParams:Skn,kSchemaQuerystring:dnt,kSchemaController:Pue,kOptions:bkn,kRequestCacheValidateFns:$S,kRouteContext:ac,kRequestOriginalUrl:Nue,kRequestSignal:fnt,kOnAbort:Ekn}=$s(),{FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:_kn,FST_ERR_DEC_UNDECLARED:Tkn}=Ko(),pnt=LM(),hnt={body:gkn,headers:ykn,params:Skn,querystring:dnt,query:dnt};function Cue(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}Cue.props=[];function vkn(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 E4.compile(t)}return E4.compile(e)}function Rkn(e,t){return t?Akn(e,t):ynt(e)}function ynt(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[Ekn]=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=hnt[e];return this[ac][t]}else if(typeof e=="object")return this[ac][$S]?.get(e)}},compileValidationSchema:{value:function(e,t=null){let{method:n,url:r}=this;if(this[ac][$S]?.has(e))return this[ac][$S].get(e);let s=(this[ac].validatorCompiler||this.server[Pue].validatorCompiler||this.server[Pue].setupValidator(this.server[bkn])||this.server[Pue].validatorCompiler)({schema:e,method:n,url:r,httpPart:t});return this[ac][$S]==null&&(this[ac][$S]=new WeakMap),this[ac][$S].set(e,s),s}},validateInput:{value:function(e,t,n){n=typeof t=="string"?t:n;let r=n!=null&&typeof n=="string"&&hnt[n],i;if(r&&(i=this[ac][r]),i==null&&(t==null||typeof t!="object"||Array.isArray(t)))throw new _kn(n);return i==null&&(this[ac][$S]?.has(t)?i=this[ac][$S].get(t):i=this.compileValidationSchema(t,n)),i(e)}},getDecorator:{value:function(e){gnt(this,e);let t=this[e];return typeof t=="function"?t.bind(this):t}},setDecorator:{value:function(e,t){gnt(this,e),this[e]=t}}});Mue.exports=Cue;Mue.exports.buildRequest=Rkn});var T4=w((p3r,Snt)=>{"use strict";var{kFourOhFourContext:wkn,kReplySerializerDefault:kkn,kSchemaErrorFormatter:Ikn,kErrorHandler:xkn,kChildLoggerFactory:Okn,kOptions:Pkn,kReply:Nkn,kRequest:Ckn,kBodyLimit:Mkn,kLogLevel:Dkn,kContentTypeParser:Lkn,kRouteByFastify:Ukn,kRequestCacheValidateFns:Fkn,kReplyCacheSerializeFns:jkn,kHandlerTimeout:Hkn}=$s();function qkn({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[Nkn],this.Request=g[Ckn],this.contentTypeParser=g[Lkn],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[xkn],this.requestIdLogLabel=r||g[Pkn].requestIdLogLabel,this.childLoggerFactory=i||g[Okn],this._middie=null,this._parserOptions={limit:o||g[Mkn]},this.exposeHeadRoute=h,this.prefixTrailingSlash=m,this.logLevel=a||g[Dkn],this.logSerializers=c,this[wkn]=null,this.attachValidation=u,this[kkn]=f,this.schemaErrorFormatter=p||g[Ikn]||Bkn,this[Ukn]=y,this[Fkn]=null,this[jkn]=null,this.validatorCompiler=l||null,this.serializerCompiler=d||null,this.handlerTimeout=b||g[Hkn]||0,this.server=g}function Bkn(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))}Snt.exports=qkn});var Lue=w((h3r,Kk)=>{"use strict";var zkn=typeof Buffer<"u",bnt=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,Ent=/"(?: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 _nt(e,t,n){n==null&&t!==null&&typeof t=="object"&&(n=t,t=void 0),zkn&&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(bnt.test(e)===!1&&Ent.test(e)===!1)return r}else if(i!=="ignore"&&s==="ignore"){if(bnt.test(e)===!1)return r}else if(Ent.test(e)===!1)return r;return Tnt(r,{protoAction:i,constructorAction:s,safe:n&&n.safe})}function Tnt(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 Due(e,t,n){let{stackTraceLimit:r}=Error;Error.stackTraceLimit=0;try{return _nt(e,t,n)}finally{Error.stackTraceLimit=r}}function Gkn(e,t){let{stackTraceLimit:n}=Error;Error.stackTraceLimit=0;try{return _nt(e,t,{safe:!0})}catch{return}finally{Error.stackTraceLimit=n}}Kk.exports=Due;Kk.exports.default=Due;Kk.exports.parse=Due;Kk.exports.safeParse=Gkn;Kk.exports.scan=Tnt});var que=w((m3r,qM)=>{"use strict";var{AsyncResource:Vkn}=Y("node:async_hooks"),{FifoMap:Ant}=NV(),{parse:Wkn}=Lue(),HM=hce(),{kDefaultJsonParse:jM,kContentTypeParser:Yk,kBodyLimit:Kkn,kRequestPayloadStream:wnt,kState:Fue,kTestInternals:Ykn,kReplyIsError:vnt,kRouteContext:Zkn}=$s(),{FST_ERR_CTP_INVALID_TYPE:v4,FST_ERR_CTP_EMPTY_TYPE:Jkn,FST_ERR_CTP_ALREADY_PRESENT:Xkn,FST_ERR_CTP_INVALID_HANDLER:Qkn,FST_ERR_CTP_INVALID_PARSE_TYPE:$kn,FST_ERR_CTP_BODY_TOO_LARGE:Rnt,FST_ERR_CTP_INVALID_MEDIA_TYPE:eIn,FST_ERR_CTP_INVALID_CONTENT_LENGTH:tIn,FST_ERR_CTP_EMPTY_JSON_BODY:nIn,FST_ERR_CTP_INSTANCE_ALREADY_STARTED:jue,FST_ERR_CTP_INVALID_JSON_BODY:rIn}=Ko(),{FSTSEC001:iIn}=Lk();function rg(e,t,n){this[jM]=Int(t,n),this.customParsers=new Map,this.customParsers.set("application/json",new Uue(!0,!1,e,this[jM])),this.customParsers.set("text/plain",new Uue(!0,!1,e,Hue)),this.parserList=["application/json","text/plain"],this.parserRegExpList=[],this.cache=new Ant(100)}rg.prototype.add=function(e,t,n){let r=typeof e=="string";if(r){if(e=e.trim().toLowerCase(),e.length===0)throw new Jkn}else if(!(e instanceof RegExp))throw new v4;if(typeof n!="function")throw new Qkn;if(this.existingParser(e))throw new Xkn(e);if(t.parseAs!==void 0&&t.parseAs!=="string"&&t.parseAs!=="buffer")throw new $kn(t.parseAs);let i=new Uue(t.parseAs==="string",t.parseAs==="buffer",t.bodyLimit,n);if(e==="*")this.customParsers.set("",i);else if(r){let s=new HM(e);if(s.isValid===!1)throw new v4;let o=s.toString();this.parserList.unshift(o),this.customParsers.set(o,i)}else lIn(e),this.parserRegExpList.unshift(e),this.customParsers.set(e.toString(),i)};rg.prototype.hasParser=function(e){if(typeof e=="string")e=new HM(e).toString();else{if(!(e instanceof RegExp))throw new v4;e=e.toString()}return this.customParsers.has(e)};rg.prototype.existingParser=function(e){if(typeof e=="string"){let t=new HM(e).toString();if(e==="application/json"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==this[jM];if(e==="text/plain"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==Hue}return this.hasParser(e)};rg.prototype.getParser=function(e){typeof e=="string"&&(e=new HM(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("")};rg.prototype.removeAll=function(){this.customParsers=new Map,this.parserRegExpList=[],this.parserList=[],this.cache=new Ant(100)};rg.prototype.remove=function(e){let t;if(typeof e=="string")e=new HM(e).toString(),t=this.parserList;else{if(!(e instanceof RegExp))throw new v4;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};rg.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[vnt]=!0,r.send(new eIn);return}let s=new Vkn("content-type-parser:run",n),o=s.bind(c);if(i.asString===!0||i.asBuffer===!0){knt(n,r,r[Zkn]._parserOptions,i,o);return}let a=i.fn(n,n[wnt],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[vnt]=!0,r.send(u);return}n.body=l,t(n,r)}};function knt(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 Rnt,void 0);return}let c=0,u=s?"":[],l=e[wnt]||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 Rnt,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 tIn,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 Int(e,t){let n={protoAction:e,constructorAction:t};return r;function r(i,s,o){if(s.length===0){o(new nIn,void 0);return}try{o(null,Wkn(s,n))}catch{o(new rIn,void 0)}}}function Hue(e,t,n){n(null,t)}function Uue(e,t,n,r){this.asString=e,this.asBuffer=t,this.bodyLimit=n,this.fn=r}function sIn(e){let t=new rg;return t[jM]=e[jM],t.customParsers=new Map(e.customParsers.entries()),t.parserList=e.parserList.slice(),t.parserRegExpList=e.parserRegExpList.slice(),t}function oIn(e,t,n){if(this[Fue].started)throw new jue("addContentTypeParser");return typeof t=="function"&&(n=t,t={}),t||(t={}),t.bodyLimit||(t.bodyLimit=this[Kkn]),Array.isArray(e)?e.forEach(r=>this[Yk].add(r,t,n)):this[Yk].add(e,t,n),this}function aIn(e){return this[Yk].hasParser(e)}function cIn(e){if(this[Fue].started)throw new jue("removeContentTypeParser");if(Array.isArray(e))for(let t of e)this[Yk].remove(t);else this[Yk].remove(e)}function uIn(){if(this[Fue].started)throw new jue("removeAllContentTypeParsers");this[Yk].removeAll()}function lIn(e){e.source[0]!=="^"&&e.source.includes(";?")===!1&&iIn(e.source)}qM.exports=rg;qM.exports.helpers={buildContentTypeParser:sIn,addContentTypeParser:oIn,hasContentTypeParser:aIn,removeContentTypeParser:cIn,removeAllContentTypeParsers:uIn};qM.exports.defaultParsers={getDefaultJsonParser:Int,defaultTextParser:Hue};qM.exports[Ykn]={rawBody:knt}});var ig=w(BM=>{"use strict";Object.defineProperty(BM,"__esModule",{value:!0});BM.checkMetadata=void 0;var dIn=pn(),fIn={keyword:"metadata",schemaType:"object",code(e){xnt(e);let{gen:t,schema:n,it:r}=e;if((0,dIn.alwaysValidSchema)(r,n))return;let i=t.name("valid");e.subschema({keyword:"metadata",jtdMetadata:!0},i),e.ok(i)}};function xnt({it:e,keyword:t},n){if(e.jtdMetadata!==n)throw new Error(`JTD: "${t}" cannot be used in this schema location`)}BM.checkMetadata=xnt;BM.default=fIn});var R4=w(GM=>{"use strict";Object.defineProperty(GM,"__esModule",{value:!0});GM.hasRef=void 0;var Ont=q_(),zM=Ot(),pIn=Zm(),Pnt=bd(),Nnt=Kse(),hIn=ig(),mIn={keyword:"ref",schemaType:"string",code(e){(0,hIn.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,zM._)`${n} === null`),t.if((0,zM.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 pIn.default(s.opts.uriResolver,"",r,`No definition ${r}`);Bue(f)||!s.opts.inlineRefs?u(f):l(f)}function u(d){let f=Ont.compileSchema.call(s.self,new Ont.SchemaEnv({schema:d,root:o,schemaPath:`/definitions/${r}`})),p=(0,Nnt.getValidate)(e,f),h=t.const("_errs",Pnt.default.errors);(0,Nnt.callRef)(e,p,f,f.$async),t.assign(a,(0,zM._)`${h} === ${Pnt.default.errors}`)}function l(d){let f=t.scopeValue("schema",s.opts.code.source===!0?{ref:d,code:(0,zM.stringify)(d)}:{ref:d});e.subschema({schema:d,dataTypes:[],schemaPath:zM.nil,topSchemaRef:f,errSchemaPath:`/definitions/${r}`},a)}}};function Bue(e){for(let t in e){let n;if(t==="ref"||typeof(n=e[t])=="object"&&Bue(n))return!0}return!1}GM.hasRef=Bue;GM.default=mIn});var Gue=w(zue=>{"use strict";Object.defineProperty(zue,"__esModule",{value:!0});var gIn=/t|\s/i,yIn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,SIn=/^(\d\d):(\d\d):(\d\d)(?:\.\d+)?(?:z|([+-]\d\d)(?::?(\d\d))?)$/i,bIn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Mnt(e,t){let n=e.split(gIn);return n.length===2&&Cnt(n[0])&&EIn(n[1])||t&&n.length===1&&Cnt(n[0])}zue.default=Mnt;function Cnt(e){let t=yIn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&(i<=bIn[r]||r===2&&i===29&&(n%100===0?n%400===0:n%4===0))}function EIn(e){let t=SIn.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}Mnt.code='require("ajv/dist/runtime/timestamp").default'});var Zk=w(eb=>{"use strict";Object.defineProperty(eb,"__esModule",{value:!0});eb.typeErrorParams=eb.typeErrorMessage=eb.typeError=void 0;var _In=Ot();function TIn(e){return{message:t=>Dnt(t,e),params:t=>Lnt(t,e)}}eb.typeError=TIn;function Dnt({parentSchema:e},t){return e?.nullable?`must be ${t} or null`:`must be ${t}`}eb.typeErrorMessage=Dnt;function Lnt({parentSchema:e},t){return(0,_In._)`{type: ${t}, nullable: ${!!e?.nullable}}`}eb.typeErrorParams=Lnt});var Vue=w(Jk=>{"use strict";Object.defineProperty(Jk,"__esModule",{value:!0});Jk.intRange=void 0;var El=Ot(),vIn=Gue(),RIn=pn(),AIn=ig(),Unt=Zk();Jk.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 wIn={message:e=>(0,Unt.typeErrorMessage)(e,e.schema),params:e=>(0,Unt.typeErrorParams)(e,e.schema)};function kIn(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,RIn.useFunc)(t,vIn.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 IIn={keyword:"type",schemaType:"string",error:wIn,code(e){(0,AIn.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=kIn(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]=Jk.intRange[o];s=(0,El._)`${s} && ${t} >= ${a} && ${t} <= ${c}`}}}e.pass(r.nullable?(0,El.or)((0,El._)`${t} === null`,s):s)}};Jk.default=IIn});var Qk=w(Xk=>{"use strict";Object.defineProperty(Xk,"__esModule",{value:!0});Xk.checkNullableObject=Xk.checkNullable=void 0;var A4=Ot();function Fnt({gen:e,data:t,parentSchema:n},r=A4.nil){let i=e.name("valid");return n.nullable?(e.let(i,(0,A4._)`${t} === null`),r=(0,A4.not)(i)):e.let(i,!1),[i,r]}Xk.checkNullable=Fnt;function xIn(e,t){let[n,r]=Fnt(e,t);return[n,(0,A4._)`${r} && typeof ${e.data} == "object" && !Array.isArray(${e.data})`]}Xk.checkNullableObject=xIn});var jnt=w(Wue=>{"use strict";Object.defineProperty(Wue,"__esModule",{value:!0});var tb=Ot(),OIn=ig(),PIn=Qk(),NIn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,tb._)`{allowedValues: ${e}}`},CIn={keyword:"enum",schemaType:"array",error:NIn,code(e){(0,OIn.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,tb._)`typeof ${n} == "string"`;if(r.length>=o.opts.loopEnum){let l;[a,l]=(0,PIn.checkNullable)(e,c),t.if(l,u)}else{if(!Array.isArray(r))throw new Error("ajv implementation error");a=(0,tb.and)(c,(0,tb.or)(...r.map(l=>(0,tb._)`${n} === ${l}`))),s.nullable&&(a=(0,tb.or)((0,tb._)`${n} === null`,a))}e.pass(a);function u(){t.forOf("v",i,l=>t.if((0,tb._)`${a} = ${n} === ${l}`,()=>t.break()))}}};Wue.default=CIn});var qnt=w(Kue=>{"use strict";Object.defineProperty(Kue,"__esModule",{value:!0});var MIn=pn(),DIn=Sa(),Hnt=Ot(),LIn=ig(),UIn=Qk(),FIn=Zk(),jIn={keyword:"elements",schemaType:"object",error:(0,FIn.typeError)("array"),code(e){(0,LIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e;if((0,MIn.alwaysValidSchema)(i,r))return;let[s]=(0,UIn.checkNullable)(e);t.if((0,Hnt.not)(s),()=>t.if((0,Hnt._)`Array.isArray(${n})`,()=>t.assign(s,(0,DIn.validateArray)(e)),()=>e.error())),e.ok(s)}};Kue.default=jIn});var Zue=w(nb=>{"use strict";Object.defineProperty(nb,"__esModule",{value:!0});nb.validateProperties=nb.error=void 0;var Yue=Sa(),Bnt=pn(),sg=Ot(),HIn=ig(),qIn=Qk(),znt=Zk(),$k;(function(e){e.Additional="additional",e.Missing="missing"})($k||($k={}));nb.error={message:e=>{let{params:t}=e;return t.propError?t.propError===$k.Additional?"must NOT have additional properties":`must have property '${t.missingProperty}'`:(0,znt.typeErrorMessage)(e,"object")},params:e=>{let{params:t}=e;return t.propError?t.propError===$k.Additional?(0,sg._)`{error: ${t.propError}, additionalProperty: ${t.additionalProperty}}`:(0,sg._)`{error: ${t.propError}, missingProperty: ${t.missingProperty}}`:(0,znt.typeErrorParams)(e,"object")}};var BIn={keyword:"properties",schemaType:"object",error:nb.error,code:Gnt};function Gnt(e){(0,HIn.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,qIn.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,Yue.allSchemaProperties)(E):[];if(i.jtdDiscriminator&&_.some(R=>R===i.jtdDiscriminator))throw new Error(`JTD: discriminator tag used in ${S}`);let T=_.filter(R=>!(0,Bnt.alwaysValidSchema)(i,E[R]));return[_,T]}function m(S,E,_){let T=t.var("valid");for(let A of S)t.if((0,Yue.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:$k.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,sg.and)(E,_);t.if(T,()=>{i.opts.removeAdditional?t.code((0,sg._)`delete ${n}[${S}]`):(e.error(!1,{propError:$k.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,Bnt.schemaRefOrVal)(i,r[_],_);R=(0,sg.not)((0,Yue.isOwnProperty)(t,A,S)),T!==void 0&&(R=(0,sg.and)(R,(0,sg._)`${S} !== ${T}`))}else if(E.length||T!==void 0){let A=T===void 0?E:[T].concat(E);R=(0,sg.and)(...A.map(x=>(0,sg._)`${S} !== ${x}`))}else R=!0;return R}}nb.validateProperties=Gnt;nb.default=BIn});var Wnt=w(Jue=>{"use strict";Object.defineProperty(Jue,"__esModule",{value:!0});var Vnt=Zue(),zIn={keyword:"optionalProperties",schemaType:"object",error:Vnt.error,code(e){e.parentSchema.properties||(0,Vnt.validateProperties)(e)}};Jue.default=zIn});var Ynt=w(Xue=>{"use strict";Object.defineProperty(Xue,"__esModule",{value:!0});var pT=Ot(),GIn=ig(),VIn=Qk(),Knt=Zk(),w4=Coe(),WIn={message:e=>{let{schema:t,params:n}=e;return n.discrError?n.discrError===w4.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in mapping`:(0,Knt.typeErrorMessage)(e,"object")},params:e=>{let{schema:t,params:n}=e;return n.discrError?(0,pT._)`{error: ${n.discrError}, tag: ${t}, tagValue: ${n.tag}}`:(0,Knt.typeErrorParams)(e,"object")}},KIn={keyword:"discriminator",schemaType:"string",implements:["mapping"],error:WIn,code(e){(0,GIn.checkMetadata)(e);let{gen:t,data:n,schema:r,parentSchema:i}=e,[s,o]=(0,VIn.checkNullableObject)(e,n);t.if(o),a(),t.elseIf((0,pT.not)(s)),e.error(),t.endIf(),e.ok(s);function a(){let l=t.const("tag",(0,pT._)`${n}${(0,pT.getProperty)(r)}`);t.if((0,pT._)`${l} === undefined`),e.error(!1,{discrError:w4.DiscrError.Tag,tag:l}),t.elseIf((0,pT._)`typeof ${l} == "string"`),c(l),t.else(),e.error(!1,{discrError:w4.DiscrError.Tag,tag:l},{instancePath:r}),t.endIf()}function c(l){t.if(!1);for(let d in i.mapping)t.elseIf((0,pT._)`${l} === ${d}`),t.assign(s,u(d));t.else(),e.error(!1,{discrError:w4.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}}};Xue.default=KIn});var Jnt=w(Que=>{"use strict";Object.defineProperty(Que,"__esModule",{value:!0});var Znt=pn(),k4=Ot(),YIn=ig(),ZIn=Qk(),JIn=Zk(),XIn={keyword:"values",schemaType:"object",error:(0,JIn.typeError)("object"),code(e){(0,YIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e,[s,o]=(0,ZIn.checkNullableObject)(e,n);(0,Znt.alwaysValidSchema)(i,r)?t.if((0,k4.not)((0,k4.or)(o,s)),()=>e.error()):(t.if(o),t.assign(s,a()),t.elseIf((0,k4.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:Znt.Type.Str},c),t.if((0,k4.not)(c),l)})}}}};Que.default=XIn});var Xnt=w($ue=>{"use strict";Object.defineProperty($ue,"__esModule",{value:!0});var QIn=Sa(),$In={keyword:"union",schemaType:"array",trackErrors:!0,code:QIn.validateUnion,error:{message:"must match a schema in union"}};$ue.default=$In});var Qnt=w(ele=>{"use strict";Object.defineProperty(ele,"__esModule",{value:!0});var e0n=R4(),t0n=Vue(),n0n=jnt(),r0n=qnt(),i0n=Zue(),s0n=Wnt(),o0n=Ynt(),a0n=Jnt(),c0n=Xnt(),u0n=ig(),l0n=["definitions",e0n.default,t0n.default,n0n.default,r0n.default,i0n.default,s0n.default,o0n.default,a0n.default,c0n.default,u0n.default,{keyword:"additionalProperties",schemaType:"boolean"},{keyword:"nullable",schemaType:"boolean"}];ele.default=l0n});var nrt=w(tle=>{"use strict";Object.defineProperty(tle,"__esModule",{value:!0});var og=e=>{let t={nullable:{type:"boolean"},metadata:{optionalProperties:{union:{elements:{ref:"schema"}}},additionalProperties:!0}};return e&&(t.definitions={values:{ref:"schema"}}),t},d0n=e=>({optionalProperties:og(e)}),f0n=e=>({properties:{ref:{type:"string"}},optionalProperties:og(e)}),p0n=e=>({properties:{type:{enum:["boolean","timestamp","string","float32","float64","int8","uint8","int16","uint16","int32","uint32"]}},optionalProperties:og(e)}),h0n=e=>({properties:{enum:{elements:{type:"string"}}},optionalProperties:og(e)}),m0n=e=>({properties:{elements:{ref:"schema"}},optionalProperties:og(e)}),ert=e=>({properties:{properties:{values:{ref:"schema"}}},optionalProperties:{optionalProperties:{values:{ref:"schema"}},additionalProperties:{type:"boolean"},...og(e)}}),trt=e=>({properties:{optionalProperties:{values:{ref:"schema"}}},optionalProperties:{additionalProperties:{type:"boolean"},...og(e)}}),g0n=e=>({properties:{discriminator:{type:"string"},mapping:{values:{metadata:{union:[ert(!1),trt(!1)]}}}},optionalProperties:og(e)}),y0n=e=>({properties:{values:{ref:"schema"}},optionalProperties:og(e)}),$nt=e=>({metadata:{union:[d0n,f0n,p0n,h0n,m0n,ert,trt,g0n,y0n].map(t=>t(e))}}),S0n={definitions:{schema:$nt(!1)},...$nt(!0)};tle.default=S0n});var nle=w(I4=>{"use strict";Object.defineProperty(I4,"__esModule",{value:!0});I4.jtdForms=void 0;I4.jtdForms=["elements","values","discriminator","properties","optionalProperties","enum","type","ref"]});var irt=w(ile=>{"use strict";Object.defineProperty(ile,"__esModule",{value:!0});var rle=/[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,b0n={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function rrt(e){return rle.lastIndex=0,'"'+(rle.test(e)?e.replace(rle,t=>{let n=b0n[t];return typeof n=="string"?n:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)}):e)+'"'}ile.default=rrt;rrt.code='require("ajv/dist/runtime/quote").default'});var lrt=w(ole=>{"use strict";Object.defineProperty(ole,"__esModule",{value:!0});var E0n=nle(),ort=q_(),En=Ot(),_0n=Zm(),qr=bd(),T0n=Sa(),v0n=R4(),R0n=pn(),A0n=irt(),w0n={elements:I0n,values:x0n,discriminator:O0n,properties:srt,optionalProperties:srt,enum:VM,type:P0n,ref:C0n};function art(e,t){let n=ort.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)``),WM(c),o.return(qr.default.json)}),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(qr.default.scope)}return ${l}`;let f=new Function(`${qr.default.scope}`,u)(this.scope.get());this.scope.value(a,{ref:f}),e.serialize=f}catch(l){throw u&&this.logger.error("Error compiling serializer, function code:",u),delete e.serialize,delete e.serializeName,l}finally{this._compilations.delete(e)}return e}ole.default=art;function WM(e){let t;for(let n of E0n.jtdForms)if(n in e.schema){t=n;break}k0n(e,t?w0n[t]:D0n)}function k0n(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 I0n(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=>{sle(e,i),WM({...e,schema:n.elements,data:s})}),t.add(qr.default.json,(0,En.str)`]`)}function x0n(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=>crt(e,s,n.values,i)),t.add(qr.default.json,(0,En.str)`}`)}function crt(e,t,n,r){let{gen:i,data:s}=e;sle(e,r),VM({...e,data:t}),i.add(qr.default.json,(0,En.str)`:`);let o=i.const("value",(0,En._)`${s}${(0,En.getProperty)(t)}`);WM({...e,schema:n,data:o})}function O0n(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)}`);VM({...e,data:s}),t.if(!1);for(let o in n.mapping){t.elseIf((0,En._)`${s} === ${o}`);let a=n.mapping[o];urt({...e,schema:a},i)}t.endIf(),t.add(qr.default.json,(0,En.str)`}`)}function srt(e){let{gen:t}=e;t.add(qr.default.json,(0,En.str)`{`),urt(e),t.add(qr.default.json,(0,En.str)`}`)}function urt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o}=r,a=f(s),c=f(o),u=p(a.concat(c)),l=!t,d;for(let y of a)l?l=!1:n.add(qr.default.json,(0,En.str)`,`),m(y,s[y],h(y));l&&(d=n.let("first",!0));for(let y of c){let b=h(y);n.if((0,En.and)((0,En._)`${b} !== undefined`,(0,T0n.isOwnProperty)(n,i,y)),()=>{sle(e,d),m(y,o[y],b)})}r.additionalProperties&&n.forIn("key",i,y=>n.if(g(y,u),()=>crt(e,y,{},d)));function f(y){return y?Object.keys(y):[]}function p(y){if(t&&y.push(t),new Set(y).size!==y.length)throw new Error("JTD: properties/optionalProperties/disciminator overlap");return y}function h(y){return n.const("value",(0,En._)`${i}${(0,En.getProperty)(y)}`)}function m(y,b,S){n.add(qr.default.json,(0,En.str)`${JSON.stringify(y)}:`),WM({...e,schema:b,data:S})}function g(y,b){return b.length?(0,En.and)(...b.map(S=>(0,En._)`${y} !== ${S}`)):!0}}function P0n(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":VM(e);break;case"timestamp":t.if((0,En._)`${r} instanceof Date`,()=>t.add(qr.default.json,(0,En._)`'"' + ${r}.toISOString() + '"'`),()=>VM(e));break;default:N0n(e)}}function VM({gen:e,data:t}){e.add(qr.default.json,(0,En._)`${(0,R0n.useFunc)(e,A0n.default)}(${t})`)}function N0n({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 C0n(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 _0n.default(n.opts.uriResolver,"",a,`No definition ${a}`);if(!(0,v0n.hasRef)(c))return WM({...e,schema:c});let{root:u}=o,l=art.call(n,new ort.SchemaEnv({schema:c,root:u}),i);t.add(qr.default.json,(0,En._)`${M0n(t,l)}(${r})`)}function M0n(e,t){return t.serialize?e.scopeValue("serialize",{ref:t.serialize}):(0,En._)`${e.scopeValue("wrapper",{ref:t})}.serialize`}function D0n({gen:e,data:t}){e.add(qr.default.json,(0,En._)`JSON.stringify(${t})`)}function sle({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 frt=w(ib=>{"use strict";Object.defineProperty(ib,"__esModule",{value:!0});ib.parseJsonString=ib.parseJsonNumber=ib.parseJson=void 0;var L0n=/position\s(\d+)(?: \(line \d+ column \d+\))?$/;function ag(e,t){let n;ag.message=void 0;let r;t&&(e=e.slice(t));try{return ag.position=t+e.length,JSON.parse(e)}catch(i){if(r=L0n.exec(i.message),!r){ag.message="unexpected end";return}n=+r[1];let s=e[n];e=e.slice(0,n),ag.position=t+n;try{return JSON.parse(e)}catch{ag.message=`unexpected token ${s}`;return}}}ib.parseJson=ag;ag.message=void 0;ag.position=0;ag.code='require("ajv/dist/runtime/parseJson").parseJson';function cg(e,t,n){let r="",i;if(cg.message=void 0,e[t]==="-"&&(r+="-",t++),e[t]==="0")r+="0",t++;else if(!s(n)){o();return}if(n)return cg.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 cg.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(){cg.position=t,cg.message=t="a"&&r<="f")o+=r.charCodeAt(0)-U0n+10;else if(r>="0"&&r<="9")o+=r.charCodeAt(0)-F0n;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 rb.position=t,n;function i(s){rb.position=t,rb.message=s}}ib.parseJsonString=rb;rb.message=void 0;rb.position=0;rb.code='require("ajv/dist/runtime/parseJson").parseJsonString'});var vrt=w(hle=>{"use strict";Object.defineProperty(hle,"__esModule",{value:!0});var j0n=nle(),grt=q_(),mt=Ot(),H0n=Zm(),Ln=bd(),q0n=Sa(),B0n=R4(),z0n=Vue(),ule=frt(),yrt=pn(),G0n=Gue(),V0n={elements:Z0n,values:J0n,discriminator:Q0n,properties:prt,optionalProperties:prt,enum:exn,type:$0n,ref:txn};function Srt(e,t){let n=grt.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:Ln.default.data,parseName:a,char:o.name("c")},u;try{this._compilations.add(e),e.parseName=a,W0n(c),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(Ln.default.scope)}return ${l}`;let f=new Function(`${Ln.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}hle.default=Srt;var cle=(0,mt._)`undefined`;function W0n(e){let{gen:t,parseName:n,char:r}=e;t.func(n,(0,mt._)`${Ln.default.json}, ${Ln.default.jsonPos}, ${Ln.default.jsonPart}`,!1,()=>{t.let(Ln.default.data),t.let(r),t.assign((0,mt._)`${n}.message`,cle),t.assign((0,mt._)`${n}.position`,cle),t.assign(Ln.default.jsonPos,(0,mt._)`${Ln.default.jsonPos} || 0`),t.const(Ln.default.jsonLen,(0,mt._)`${Ln.default.json}.length`),x4(e),ple(e),t.if(Ln.default.jsonPart,()=>{t.assign((0,mt._)`${n}.position`,Ln.default.jsonPos),t.return(Ln.default.data)}),t.if((0,mt._)`${Ln.default.jsonPos} === ${Ln.default.jsonLen}`,()=>t.return(Ln.default.data)),eI(e)})}function x4(e){let t;for(let n of j0n.jtdForms)if(n in e.schema){t=n;break}t?Y0n(e,V0n[t]):dle(e)}var K0n=mrt(!0,mrt(!1,eI));function Y0n(e,t){let{gen:n,schema:r,data:i}=e;if(!r.nullable)return t(e);KM(e,"null",t,()=>n.assign(i,null))}function Z0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"[");let i=t.let("i",0);t.assign(r,(0,mt._)`[]`),lle(e,"]",()=>{let s=t.let("el");x4({...e,schema:n.elements,data:s}),t.assign((0,mt._)`${r}[${i}++]`,s)})}function J0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"{"),t.assign(r,(0,mt._)`{}`),lle(e,"}",()=>X0n(e,n.values))}function lle(e,t,n){brt(e,t,n),Ah(e,t)}function brt(e,t,n){let{gen:r}=e;r.for((0,mt._)`;${Ln.default.jsonPos}<${Ln.default.jsonLen} && ${O4(1)}!==${t};`,()=>{n(),KM(e,",",()=>r.break(),i)});function i(){KM(e,t,()=>{},eI)}}function X0n(e,t){let{gen:n}=e,r=n.let("key");hT({...e,data:r}),Ah(e,":"),_rt(e,r,t)}function Q0n(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",Ln.default.jsonPos),a=t.let("value"),c=t.let("tag");brt(e,"}",()=>{let u=t.let("key");hT({...e,data:u}),Ah(e,":"),t.if((0,mt._)`${u} === ${i}`,()=>{hT({...e,data:c}),t.assign((0,mt._)`${n}[${u}]`,c),t.break()},()=>dle({...e,data:a}))}),t.assign(Ln.default.jsonPos,o),t.if((0,mt._)`${c} === undefined`),ug(e,(0,mt.str)`discriminator tag not found`);for(let u in s)t.elseIf((0,mt._)`${c} === ${u}`),Ert({...e,schema:s[u]},i);t.else(),ug(e,(0,mt.str)`discriminator value not in schema`),t.endIf()}function prt(e){let{gen:t,data:n}=e;Ah(e,"{"),t.assign(n,(0,mt._)`{}`),Ert(e)}function Ert(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o,additionalProperties:a}=r;if(lle(e,"}",()=>{let c=n.let("key");if(hT({...e,data:c}),Ah(e,":"),n.if(!1),hrt(e,c,s),hrt(e,c,o),t){n.elseIf((0,mt._)`${c} === ${t}`);let u=n.let("tag");hT({...e,data:u})}n.else(),a?dle({...e,data:(0,mt._)`${i}[${c}]`}):ug(e,(0,mt.str)`property ${c} not allowed`),n.endIf()}),s){let c=(0,q0n.hasPropFunc)(n),u=(0,mt.and)(...Object.keys(s).map(l=>(0,mt._)`${c}.call(${i}, ${l})`));n.if((0,mt.not)(u),()=>ug(e,(0,mt.str)`missing required properties`))}}function hrt(e,t,n={}){let{gen:r}=e;for(let i in n)r.elseIf((0,mt._)`${t} === ${i}`),_rt(e,t,n[i])}function _rt(e,t,n){x4({...e,schema:n,data:(0,mt._)`${e.data}[${t}]`})}function $0n(e){let{gen:t,schema:n,data:r,self:i}=e;switch(n.type){case"boolean":K0n(e);break;case"string":hT(e);break;case"timestamp":{hT(e);let s=(0,yrt.useFunc)(t,G0n.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,()=>ug(e,(0,mt.str)`invalid timestamp`));break}case"float32":case"float64":ale(e);break;default:{let s=n.type;if(!i.opts.int32range&&(s==="int32"||s==="uint32"))ale(e,16),s==="uint32"&&t.if((0,mt._)`${r} < 0`,()=>ug(e,(0,mt.str)`integer out of range`));else{let[o,a,c]=z0n.intRange[s];ale(e,c),t.if((0,mt._)`${r} < ${o} || ${r} > ${a}`,()=>ug(e,(0,mt.str)`integer out of range`))}}}}function hT(e){Ah(e,'"'),fle(e,ule.parseJsonString)}function exn(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._)`${O4(o.length)} === ${o}`),t.assign(n,(0,mt.str)`${s}`),t.add(Ln.default.jsonPos,o.length)}t.else(),eI(e),t.endIf()}function ale(e,t){let{gen:n}=e;ple(e),n.if((0,mt._)`"-0123456789".indexOf(${O4(1)}) < 0`,()=>eI(e),()=>fle(e,ule.parseJsonNumber,t))}function mrt(e,t){return n=>{let{gen:r,data:i}=n;KM(n,`${e}`,()=>t(n),()=>r.assign(i,e))}}function txn(e){let{gen:t,self:n,definitions:r,schema:i,schemaEnv:s}=e,{ref:o}=i,a=r[o];if(!a)throw new H0n.default(n.opts.uriResolver,"",o,`No definition ${o}`);if(!(0,B0n.hasRef)(a))return x4({...e,schema:a});let{root:c}=s,u=Srt.call(n,new grt.SchemaEnv({schema:a,root:c}),r);Trt(e,nxn(t,u),!0)}function nxn(e,t){return t.parse?e.scopeValue("parse",{ref:t.parse}):(0,mt._)`${e.scopeValue("wrapper",{ref:t})}.parse`}function dle(e){fle(e,ule.parseJson)}function fle(e,t,n){Trt(e,(0,yrt.useFunc)(e.gen,t),n)}function Trt(e,t,n){let{gen:r,data:i}=e;r.assign(i,(0,mt._)`${t}(${Ln.default.json}, ${Ln.default.jsonPos}${n?(0,mt._)`, ${n}`:mt.nil})`),r.assign(Ln.default.jsonPos,(0,mt._)`${t}.position`),r.if((0,mt._)`${i} === undefined`,()=>ug(e,(0,mt._)`${t}.message`))}function Ah(e,t){KM(e,t,eI)}function KM(e,t,n,r){let{gen:i}=e,s=t.length;ple(e),i.if((0,mt._)`${O4(s)} === ${t}`,()=>{i.add(Ln.default.jsonPos,s),r?.(e)},()=>n(e))}function ple({gen:e,char:t}){e.code((0,mt._)`while((${t}=${Ln.default.json}[${Ln.default.jsonPos}],${t}===" "||${t}==="\\n"||${t}==="\\r"||${t}==="\\t"))${Ln.default.jsonPos}++;`)}function O4(e){return e===1?(0,mt._)`${Ln.default.json}[${Ln.default.jsonPos}]`:(0,mt._)`${Ln.default.json}.slice(${Ln.default.jsonPos}, ${Ln.default.jsonPos}+${e})`}function eI(e){ug(e,(0,mt._)`"unexpected token " + ${Ln.default.json}[${Ln.default.jsonPos}]`)}function ug({gen:e,parseName:t},n){e.assign((0,mt._)`${t}.message`,n),e.assign((0,mt._)`${t}.position`,Ln.default.jsonPos),e.return(cle)}});var yle=w((bi,gle)=>{"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 rxn=Vse(),ixn=Qnt(),sxn=nrt(),oxn=lrt(),axn=vrt(),mle="JTD-meta-schema",tI=class extends rxn.default{constructor(t={}){super({...t,jtd:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(ixn.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema(),this.opts.meta&&this.addMetaSchema(sxn.default,mle,!1)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(mle)?mle: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(oxn.default.call(this,t,t.schema.definitions||{}),!t.serialize)throw new Error("ajv implementation error");return t.serialize}_compileParser(t){if(axn.default.call(this,t,t.schema.definitions||{}),!t.parse)throw new Error("ajv implementation error");return t.parse}};bi.Ajv=tI;gle.exports=bi=tI;gle.exports.Ajv=tI;Object.defineProperty(bi,"__esModule",{value:!0});bi.default=tI;var cxn=ck();Object.defineProperty(bi,"KeywordCxt",{enumerable:!0,get:function(){return cxn.KeywordCxt}});var nI=Ot();Object.defineProperty(bi,"_",{enumerable:!0,get:function(){return nI._}});Object.defineProperty(bi,"str",{enumerable:!0,get:function(){return nI.str}});Object.defineProperty(bi,"stringify",{enumerable:!0,get:function(){return nI.stringify}});Object.defineProperty(bi,"nil",{enumerable:!0,get:function(){return nI.nil}});Object.defineProperty(bi,"Name",{enumerable:!0,get:function(){return nI.Name}});Object.defineProperty(bi,"CodeGen",{enumerable:!0,get:function(){return nI.CodeGen}});var uxn=MC();Object.defineProperty(bi,"ValidationError",{enumerable:!0,get:function(){return uxn.default}});var lxn=Zm();Object.defineProperty(bi,"MissingRefError",{enumerable:!0,get:function(){return lxn.default}})});var Sle=w((L3r,Rrt)=>{"use strict";var dxn=sV();Rrt.exports=Object.freeze({coerceTypes:"array",useDefaults:!0,removeAdditional:!0,uriResolver:dxn,addUsedSchema:!1,allErrors:!1})});var krt=w((U3r,wrt)=>{"use strict";var fxn=V_().default,pxn=yle(),Art=Sle(),ble=class{constructor(t,n){n.mode==="JTD"?this.ajv=new pxn(Object.assign({},Art,n.customOptions)):this.ajv=new fxn(Object.assign({},Art,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&&TV()(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)}};wrt.exports=ble});var xrt=w((F3r,Irt)=>{"use strict";var hxn=yle(),mxn=Sle(),Ele=class{constructor(t,n){this.ajv=new hxn(Object.assign({},mxn,n))}buildSerializerFunction({schema:t}){return this.ajv.compileSerializer(t)}};Irt.exports=Ele});var Nrt=w((ZM,Prt)=>{"use strict";Object.defineProperty(ZM,"__esModule",{value:!0});var YM=G2(),Cf=ek();function Ort(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)===YM.UsedValueState.Completed)return Cf.nil;p(c.validateName,YM.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?YM.varKinds.var:YM.varKinds.const,E=(0,Cf._)`${S} ${h} = {validate: ${b}};`;if(f(b)===YM.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)}}}Prt.exports=ZM=Ort;Object.defineProperty(ZM,"__esModule",{value:!0});ZM.default=Ort});var Drt=w((j3r,Mrt)=>{"use strict";var Crt=_le(),gxn=Nrt().default;function yxn(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=Crt();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=gxn(s[Crt.AjvReference].ajv,a);return e.storeFunction(o,c),a}}}Mrt.exports=yxn});var _le=w((H3r,rI)=>{"use strict";var Urt=Symbol.for("fastify.ajv-compiler.reference"),Sxn=krt(),bxn=xrt();function Tle(e){let t=new Map,n=new Map;return e&&e.jtdSerializer===!0?function(i,s){let o=Lrt({},s);if(n.has(o))return n.get(o);let a=new bxn(i,s),c=a.buildSerializerFunction.bind(a);return n.set(o,c),c}:function(i,s){let o=Lrt(i,s.customOptions);if(t.has(o))return t.get(o);let a=new Sxn(i,s),c=a.buildValidatorFunction.bind(a);return t.set(o,c),s.customOptions.code!==void 0&&(c[Urt]=a),c}}function Lrt(e,t){let n=JSON.stringify(e),r=JSON.stringify(t);return`${n}${r}`}rI.exports=Tle;rI.exports.default=Tle;rI.exports.AjvCompiler=Tle;rI.exports.AjvReference=Urt;rI.exports.StandaloneValidator=Drt()});var P4=w(Hrt=>{var Frt=Object.prototype.hasOwnProperty;function jrt(e,t,n){for(n of e.keys())if(JM(n,t))return n}function JM(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--&&JM(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=jrt(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=jrt(t,i),!i)||!JM(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(Frt.call(e,n)&&++r&&!Frt.call(t,n)||!(n in t)||!JM(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}Hrt.dequal=JM});var Grt=w((B3r,zrt)=>{"use strict";var{dequal:qrt}=P4(),Exn=Symbol.for("json-schema-ref"),vle=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]:Brt(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]:Brt(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[Exn]=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(qrt(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&&qrt(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 Brt(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}zrt.exports={RefResolver:vle}});var Ale=w((z3r,Vrt)=>{"use strict";var _xn=V_(),Txn=sV(),vxn=TV(),Rxn=n4()({proto:!0}),Rle=class e{constructor(t){this.ajv=new _xn({...t,strictSchema:!1,validateSchema:!1,allowUnionTypes:!0,uriResolver:Txn}),vxn(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=Rxn(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}};Vrt.exports=Rle});var Krt=w((G3r,Wrt)=>{"use strict";var wle=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}};Wrt.exports=wle});var Qrt=w((V3r,Ile)=>{"use strict";Ile.exports=qe;Ile.exports.default=qe;var Axn={$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},Yrt={enum:["array","boolean","integer","null","number","object","string"]},Zrt=/^(?:[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,wxn=EV().fullFormats.uri,Jrt=EV().fullFormats.regex;function kd(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))?(kd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1):(kd.errors=s,o===0):(kd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1)}var kle={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;kd(e.minLength,{instancePath:t+"/minLength",parentData:e,parentDataProperty:"minLength",rootData:i})||(s=s===null?kd.errors:s.concat(kd.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(!Jrt(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;kd(e.minItems,{instancePath:t+"/minItems",parentData:e,parentDataProperty:"minItems",rootData:i})||(s=s===null?kd.errors:s.concat(kd.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;kd(e.minProperties,{instancePath:t+"/minProperties",parentData:e,parentDataProperty:"minProperties",rootData:i})||(s=s===null?kd.errors:s.concat(kd.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"&&!Jrt(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(Xrt(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:Yrt.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(Xrt(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 Nle=w((W3r,$rt)=>{"use strict";var xle=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}},Ole=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}},Ple=class extends Error{constructor(t){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Invalid "onConflict" option: "${t}".`}};$rt.exports={MergeError:xle,ResolverNotFoundError:Ole,InvalidOnConflictOptionError:Ple}});var nit=w((K3r,tit)=>{"use strict";var{dequal:kxn}=P4(),{MergeError:Cle}=Nle();function eit(e){let t=e[0];for(let n=1;ne[n].includes(r));return t}function Ixn(e,t,n){let r=eit(t);if(r.length===0)throw new Cle(e,t);n[e]=r}function xxn(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 Mxn(e,t,n){let r=t[0];for(let i=1;i{"use strict";var{dequal:Fxn}=P4(),Xi=nit(),M4=Nle(),sit={$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:Gxn,patternProperties:C4,additionalProperties:N4,items:qxn,additionalItems:Bxn,definitions:C4,$defs:C4,nullable:Xi.booleanAnd,oneOf:rit,anyOf:rit,allOf:Xi.arraysUnion,not:N4,if:Vxn,then:Xi.skip,else:Xi.skip,dependencies:iit,dependentRequired:iit,dependentSchemas:C4,propertyNames:N4,uniqueItems:Xi.booleanOr,contains:N4};function N4(e,t,n,r,i){n[e]=Mf(t,i)}function jxn(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 rit(e,t,n,r,i){if(t.length===1){n[e]=t[0];return}let s=jxn(t),o=[];for(let a of s)try{let c=Mf(a,i);c!==void 0&&o.push(c)}catch(c){if(c instanceof M4.MergeError)continue;throw c}n[e]=o}function Hxn(e,t){let{items:n,additionalItems:r}=e;return Array.isArray(n)?t{"use strict";var{mergeSchemas:Kxn}=cit();function Yxn(e){return Kxn(e,{onConflict:"skip"})}uit.exports=Yxn});var dit=w((J3r,Mle)=>{"use strict";function Zxn(e,t,n,r){let i="";t.validatorSchemasIds.size>0?(i+=`const Validator = require('fast-json-stringify/lib/validator') +`),G=uAn.bind(null,{[ltt]:"",[dtt]:o,[ptt]:N,[ftt]:fue,[pue]:x,[htt]:k}),W="";d!==null&&(f===void 0?W=G(d):W=G(Object.assign({},d,{name:f})));let $=a instanceof Function?a:a?Ett:OAn,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"`);rAn(p,h,b);let Q=Stt(h,b);typeof r.emit=="function"&&r.emit("message",{code:"PINO_CONFIG",config:{levels:Q,messageKey:c,errorKey:u}}),oAn(m);let B=sAn(m);return Object.assign(t,{levels:Q,[RAn]:B,[AAn]:b,[gAn]:r,[hAn]:$,[mAn]:q,[ftt]:fue,[pue]:x,[ptt]:N,[SAn]:L,[bAn]:C,[EAn]:c,[_An]:u,[TAn]:l,[kAn]:l?`,${JSON.stringify(l)}:{`:"",[dtt]:o,[vAn]:g,[IAn]:y,[ltt]:W,[htt]:k,[wAn]:E,silent:dAn,onChild:R,[xAn]:A}),Object.setPrototypeOf(t,tAn()),iAn(t),t[yAn](p),t}wd.exports=hue;wd.exports.destination=(e=process.stdout.fd)=>typeof e=="object"?(e.dest=utt(e.dest||process.stdout.fd),ctt(e)):ctt({dest:utt(e),minLength:0});wd.exports.transport=Zce();wd.exports.multistream=att();wd.exports.levels=Stt();wd.exports.stdSerializers=LAn;wd.exports.stdTimeFunctions=Object.assign({},gtt);wd.exports.symbols=ytt;wd.exports.version=fAn;wd.exports.default=hue;wd.exports.pino=hue});var Rtt=w((n3r,vtt)=>{"use strict";var e4=_tt(),{serializersSym:Ttt}=e4.symbols,{FST_ERR_LOG_INVALID_DESTINATION:UAn}=Ko();function FAn(e){if(e.stream&&e.file)throw new UAn;e.file&&(e.stream=e4.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[Ttt]&&(e.serializers=Object.assign({},e.serializers,t[Ttt])),r=t.child({},e),e.logger=t,e.genReqId=n):r=e4(e,e.stream),r}var jAn={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:e4.stdSerializers.err,res:function(t){return{statusCode:t.statusCode}}};vtt.exports={serializers:jAn,createPinoLogger:FAn}});var PM=w((r3r,wtt)=>{"use strict";var{FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:HAn,FST_ERR_LOG_INVALID_LOGGER_CONFIG:qAn,FST_ERR_LOG_INVALID_LOGGER_INSTANCE:BAn,FST_ERR_LOG_INVALID_LOGGER:zAn}=Ko();function GAn(e,t,n,r,i){let s={[e.requestIdLogLabel]:r},o=e.childLoggerFactory.call(e.server,t,s,i||{},n);return e.childLoggerFactory!==Att&&t4(o,!0),o}function Att(e,t,n){return e.child(t,n)}function t4(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 zAn(r.join(","))}else return!0}function VAn(e){if(e.logger&&e.loggerInstance)throw new HAn;if(!e.loggerInstance&&!e.logger){let o=g$e();return o.child=()=>o,{logger:o,hasLogger:!1}}let{createPinoLogger:t,serializers:n}=Rtt();if(t4(e.loggerInstance))return{logger:t({logger:e.loggerInstance,serializers:Object.assign({},n,e.loggerInstance.serializers)}),hasLogger:!0};if(t4(e.logger))throw qAn();if(e.loggerInstance)throw BAn();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 WAn(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}wtt.exports={createChildLogger:GAn,defaultChildLoggerFactory:Att,createLogger:VAn,validateLogger:t4,now:WAn}});var n4=w((i3r,ktt)=>{"use strict";ktt.exports=KAn;function zk(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function KAn(e){if(e=e||{},e.circles)return YAn(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 ZAn=n4()({circles:!1,proto:!0}),{kSchemaVisited:Itt,kSchemaResponse:JAn}=$s(),mue=Symbol.for("fluent-schema-object"),{FST_ERR_SCH_MISSING_ID:XAn,FST_ERR_SCH_ALREADY_PRESENT:QAn,FST_ERR_SCH_DUPLICATE:$An,FST_ERR_SCH_CONTENT_MISSING_SCHEMA:xtt}=Ko(),Ptt=["params","body","querystring","query","headers"];function r4(e){this.store=e||{}}r4.prototype.add=function(e){let t=ZAn(e.isFluentSchema||e.isFluentJSONSchema||e[mue]?e.valueOf():e),n=t.$id;if(!n)throw new XAn;if(this.store[n])throw new QAn(n);this.store[n]=t};r4.prototype.getSchemas=function(){return Object.assign({},this.store)};r4.prototype.getSchema=function(e){return this.store[e]};function Ott(e){return typeof e=="object"&&Object.getPrototypeOf(e)!==Object.prototype}function ewn(e,t){if(e[Itt])return e;if(e.query){if(e.querystring)throw new $An("querystring");e.querystring=e.query}twn(e);for(let n of Ptt){let r=e[n];if(r&&!Ott(r)&&n==="body"&&r.content){let i=r.content,s=Object.keys(i);for(let o=0;o{"use strict";var rwn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;Mtt.exports=class Ctt{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&&rwn.test(t)===!1?'"'+t+'"':JSON.stringify(t)}asUnsafeString(t){return'"'+t+'"'}getState(){return this._options}static restoreFromState(t){return new Ctt(t)}}});var Ltt=w((a3r,Dtt)=>{"use strict";var iwn=i4(),swn={mode:"standalone"},own=iwn.restoreFromState(swn),awn=null;Dtt.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})(awn,own)});var CM=w((c3r,Htt)=>{"use strict";var Utt=Y("node:http").STATUS_CODES,cwn=mce(),{setErrorStatusCode:uwn}=OW(),{kReplyHeaders:dT,kReplyNextErrorHandler:s4,kReplyIsRunningOnErrorHook:lwn,kRouteContext:jtt,kDisableRequestLogging:o4}=$s(),{FST_ERR_REP_INVALID_PAYLOAD_TYPE:dwn,FST_ERR_FAILED_ERROR_SERIALIZATION:fwn}=Ko(),{getSchemaSerializer:pwn}=NM(),gue=Ltt(),hwn={func:gwn,toJSON(){return this.func.name.toString()+"()"}};function mwn(e,t,n){e[lwn]=!1;let r=e[jtt];if(e[s4]===!1){Ftt(t,e,function(o,a){try{o.raw.writeHead(o.raw.statusCode,o[dT])}catch(c){o.log[o4]||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[s4]||r.errorHandler;e[s4]=Object.getPrototypeOf(i),delete e[dT]["content-type"],delete e[dT]["content-length"];let s=i.func;if(!s){e[s4]=!1,Ftt(t,e,n);return}try{let o=s(t,e.request,e);o!==void 0&&(o!==null&&typeof o.then=="function"?cwn(o,e):e.send(o))}catch(o){e.send(o)}}function gwn(e,t,n){Swn(e,n),uwn(n,e),n.statusCode<500?n.log[o4]||n.log.info({res:n,err:e},e?.message):n.log[o4]||n.log.error({req:t,res:n,err:e},e?.message),n.send(e)}function Ftt(e,t,n){let r=t.raw,i=t.statusCode;t[dT]["content-type"]=t[dT]["content-type"]??"application/json; charset=utf-8";let s;try{let o=pwn(t[jtt],i,t[dT]["content-type"]);o===!1?s=gue({error:Utt[i+""],code:e.code,message:e.message,statusCode:i}):s=o(Object.create(e,{error:{value:Utt[i+""]},message:{value:e.message},statusCode:{value:i}}))}catch(o){t.log[o4]||t.log.error({err:o,statusCode:r.statusCode},"The serializer for the given status code failed"),t.code(500),s=gue(new fwn(o.message,e.message))}typeof s!="string"&&!Buffer.isBuffer(s)&&(s=gue(new dwn(typeof s))),t[dT]["content-length"]=""+Buffer.byteLength(s),n(t,s)}function ywn(e=hwn,t){if(!t)return e;let n=Object.create(e);return n.func=t,n}function Swn(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}Htt.exports={buildErrorHandler:ywn,handleError:mwn}});var LM=w((u3r,Gtt)=>{"use strict";var{kReply:yue,kRequest:Sue,kState:bwn,kHasBeenDecorated:Ewn}=$s(),{FST_ERR_DEC_ALREADY_PRESENT:qtt,FST_ERR_DEC_MISSING_DEPENDENCY:_wn,FST_ERR_DEC_AFTER_START:Twn,FST_ERR_DEC_REFERENCE_TYPE:vwn,FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:Rwn,FST_ERR_DEC_UNDECLARED:Awn}=Ko();function wwn(e,t,n,r){if(Object.hasOwn(e,t))throw new qtt(t);bue(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 kwn(e){if(!MM(this,e))throw new Awn(e,"instance");return typeof this[e]=="function"?this[e].bind(this):this[e]}function Btt(e,t,n,r){let i=e.prototype;if(Object.hasOwn(i,t)||DM(e,t))throw new qtt(t);e[Ewn]=!0,bue(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 ztt(e,t){if(typeof t=="object"&&t&&!(typeof t.getter=="function"||typeof t.setter=="function"))throw new vwn(e,typeof t)}function Iwn(e,t,n){return Eue(this,e),wwn(this,e,t,n),this}function MM(e,t){return t?t in e||e.prototype&&t in e.prototype||DM(e,t):e in this}function DM(e,t){return e.props?e.props.find(({key:n})=>n===t):!1}function xwn(e){return e&&DM(this[Sue],e)?!0:MM(this[Sue].prototype,e)}function Own(e){return e&&DM(this[yue],e)?!0:MM(this[yue].prototype,e)}function bue(e,t,n){if(n!=null){if(!Array.isArray(n))throw new Rwn(t);for(let r=0;r!==n.length;++r)if(!MM(e,n[r]))throw new _wn(n[r])}}function Pwn(e,t,n){return Eue(this,e),ztt(e,t),Btt(this[yue],e,t,n),this}function Nwn(e,t,n){return Eue(this,e),ztt(e,t),Btt(this[Sue],e,t,n),this}function Eue(e,t){if(e[bwn].started)throw new Twn(t)}Gtt.exports={add:Iwn,exist:MM,existRequest:xwn,existReply:Own,dependencies:bue,decorateReply:Pwn,decorateRequest:Nwn,getInstanceDecorator:kwn,hasKey:DM}});var m4=w((l3r,h4)=>{"use strict";var a4=Y("node:stream").finished,{kFourOhFourContext:Vtt,kReplyErrorHandlerCalled:Qtt,kReplyHijacked:Aue,kReplyStartTime:FM,kReplyEndTime:wue,kReplySerializer:ng,kReplySerializerDefault:c4,kReplyIsError:u4,kReplyHeaders:jr,kReplyTrailers:Yo,kReplyHasStatusCode:kue,kReplyIsRunningOnErrorHook:Iue,kReplyNextErrorHandler:Cwn,kDisableRequestLogging:$tt,kSchemaResponse:l4,kReplyCacheSerializeFns:QS,kSchemaController:_ue,kOptions:Mwn,kRouteContext:Dn,kTimeoutTimer:d4,kOnAbort:Gk,kRequestSignal:ent}=$s(),{onSendHookRunner:tnt,onResponseHookRunner:Dwn,preHandlerHookRunner:Lwn,preSerializationHookRunner:Uwn}=ZS(),Wtt=Tce()[Symbol.for("internals")],Fwn=PM(),Rue=Fwn.now,{handleError:Ktt}=CM(),{getSchemaSerializer:jwn}=NM(),Tue={JSON:"application/json; charset=utf-8",PLAIN:"text/plain; charset=utf-8",OCTET:"application/octet-stream"},{FST_ERR_REP_INVALID_PAYLOAD_TYPE:Hwn,FST_ERR_REP_RESPONSE_BODY_CONSUMED:qwn,FST_ERR_REP_READABLE_STREAM_LOCKED:Bwn,FST_ERR_REP_ALREADY_SENT:zwn,FST_ERR_SEND_INSIDE_ONERR:Gwn,FST_ERR_BAD_STATUS_CODE:Vwn,FST_ERR_BAD_TRAILER_NAME:Wwn,FST_ERR_BAD_TRAILER_VALUE:Kwn,FST_ERR_MISSING_SERIALIZATION_FN:Ywn,FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:Zwn,FST_ERR_DEC_UNDECLARED:Jwn}=Ko(),Ytt=LM(),nnt=Object.prototype.toString;function Hr(e,t,n){this.raw=e,this[ng]=null,this[Qtt]=!1,this[u4]=!1,this[Iue]=!1,this.request=t,this[jr]={},this[Yo]=null,this[kue]=!1,this[FM]=void 0,this.log=n}Hr.props=[];Object.defineProperties(Hr.prototype,{[Dn]:{get(){return this.request[Dn]}},elapsedTime:{get(){return this[FM]===void 0?0:(this[wue]||Rue())-this[FM]}},server:{get(){return this.request[Dn].server}},sent:{enumerable:!0,get(){return(this[Aue]||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[Aue]=!0,this.request[ent]&&(clearTimeout(this.request[d4]),this.request[d4]=null,this.request[Gk]&&(this.request.raw.removeListener("close",this.request[Gk]),this.request[Gk]=null)),this};Hr.prototype.send=function(e){if(this[Iue])throw new Gwn;if(this.sent===!0)return this.log.warn({err:new zwn(this.request.url,this.request.method)}),this;if(this[u4]||e instanceof Error)return this[u4]=!1,Vk(this,e,fT),this;if(e===void 0)return fT(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"||nnt.call(e)==="[object Response]")return fT(this,e),this;if(e.buffer instanceof ArrayBuffer){n||(this[jr]["content-type"]=Tue.OCTET);let r=Buffer.isBuffer(e)?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength);return fT(this,r),this}if(!n&&typeof e=="string")return this[jr]["content-type"]=Tue.PLAIN,fT(this,e),this}if(this[ng]!==null){if(typeof e!="string")return Ztt(this,e),this;e=this[ng](e)}else if(!n||t.indexOf("json")!==-1){if(!n)this[jr]["content-type"]=Tue.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 fT(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 Xwn=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(),Xwn.has(e))throw new Wwn(e);if(typeof t!="function")throw new Kwn(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 Vwn(e||String(e));return this.raw.statusCode=t,this[kue]=!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[Dn][l4]?.[e]?.[t]:n=this[Dn][l4]?.[e]:typeof e=="object"&&(n=this[Dn][QS]?.get(e)),n};Hr.prototype.compileSerializationSchema=function(e,t=null,n=null){let{request:r}=this,{method:i,url:s}=r;if(this[Dn][QS]?.has(e))return this[Dn][QS].get(e);let a=(this[Dn].serializerCompiler||this.server[_ue].serializerCompiler||this.server[_ue].setupSerializer(this.server[Mwn])||this.server[_ue].serializerCompiler)({schema:e,method:i,url:s,httpStatus:t,contentType:n});return this[Dn][QS]==null&&(this[Dn][QS]=new WeakMap),this[Dn][QS].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[Dn][l4]?.[n]?.[r]:s=this[Dn][l4]?.[n],s==null)throw r?new Zwn(n,r):new Ywn(n)}else this[Dn][QS]?.has(t)?s=this[Dn][QS].get(t):s=this.compileSerializationSchema(t,n,r);return s(e)};Hr.prototype.serialize=function(e){return this[ng]!==null?this[ng](e):this[Dn]&&this[Dn][c4]?this[Dn][c4](e,this.raw.statusCode):int(this[Dn],e,this.raw.statusCode)};Hr.prototype.serializer=function(e){return this[ng]=e,this};Hr.prototype.type=function(e){return this[jr]["content-type"]=e,this};Hr.prototype.redirect=function(e,t){return t||(t=this[kue]?this.raw.statusCode:302),this.header("location",e).code(t).send()};Hr.prototype.callNotFound=function(){return skn(this),this};Hr.prototype.then=function(e,t){if(this.sent){e();return}a4(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(!Ytt.hasKey(this,e)&&!Ytt.exist(this,e))throw new Jwn(e,"reply");let t=this[e];return typeof t=="function"?t.bind(this):t};function Ztt(e,t){e[Dn].preSerialization!==null?Uwn(e[Dn].preSerialization,e.request,e,t,Jtt):Jtt(null,void 0,e,t)}function Jtt(e,t,n,r){if(e!=null){Vk(n,e);return}try{n[ng]!==null?r=n[ng](r):n[Dn]&&n[Dn][c4]?r=n[Dn][c4](r,n.raw.statusCode):r=int(n[Dn],r,n.raw.statusCode,n[jr]["content-type"])}catch(i){Qwn(i,n),Vk(n,i);return}fT(n,r)}function Qwn(e,t){e.serialization=t[Dn].config}function fT(e,t){e[Dn].onSend!==null?tnt(e[Dn].onSend,e.request,e,t,$wn):rnt(e,t)}function $wn(e,t,n,r){e!=null?Vk(n,e):rnt(n,r)}function vue(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 rnt(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(nnt.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 qwn;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"),vue(e,i),UM(t,n,e);return}if(i>=100&&i<200||i===204){e.removeHeader("content-type"),e.removeHeader("content-length"),vue(e,i),UM(void 0,n,e),typeof t.resume=="function"&&(t.on("error",p4),t.resume());return}if(typeof t.pipe=="function"){tkn(t,n,e);return}if(typeof t.getReader=="function"){ekn(t,n,e);return}if(typeof t!="string"&&!Buffer.isBuffer(t))throw new Hwn(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))}vue(e,i),n.write(t),UM(t,n,e)}function f4(e,t,n){t.code==="ERR_STREAM_PREMATURE_CLOSE"?e[$tt]||e.info({res:n},"stream closed prematurely"):e.warn({err:t},"response terminated with an error with headers already sent")}function ekn(e,t,n){if(e.locked)throw new Bwn;let r=!0,i=!1,s=!1,o=e.getReader();if(a4(t,function(l){r&&(l!=null&&t.headersSent&&!i&&(i=!0,f4(n.log,l,t)),o.cancel().catch(p4))}),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,UM(null,t,n);return}if(t.destroyed){r=!1,o.cancel().catch(p4);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,f4(n.log,l,n)),t.destroy()):Vk(n,l)}o.read().then(a,u)}function tkn(e,t,n){let r=!0,i=!1;if(nkn(e,t,n),a4(e,{readable:!0,writable:!1},function(s){r=!1,s!=null&&(t.headersSent||n.request.raw.aborted===!0?(i||(i=!0,f4(n.log,s,n)),t.destroy()):Vk(n,s))}),a4(t,function(s){r&&(s!=null&&t.headersSent&&!i&&(i=!0,f4(n.log,s,t)),typeof e.destroy=="function"?e.destroy():typeof e.close=="function"?e.close(p4):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 UM(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 nkn(e,t,n){n[Yo]!==null&&e.on("end",()=>UM(null,t,n))}function Vk(e,t,n){e[Dn].onError!==null&&!e[Cwn]?(e[Iue]=!0,tnt(e[Dn].onError,e.request,e,t,()=>Ktt(e,t,n))):Ktt(e,t,n)}function rkn(e){e[FM]=Rue();let t=n=>{e[wue]=Rue(),e.raw.removeListener("finish",t),e.raw.removeListener("error",t);let r=e[Dn];e.request[ent]&&(clearTimeout(e.request[d4]),e.request[d4]=null,e.request[Gk]&&(e.request.raw.removeListener("close",e.request[Gk]),e.request[Gk]=null)),r&&r.onResponse!==null?Dwn(r.onResponse,e.request,e,Xtt):Xtt(n,e.request,e)};e.raw.on("finish",t),e.raw.on("error",t)}function Xtt(e,t,n){if(n.log[$tt])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 ikn(e){let t=e.props.slice();function n(r,i,s){this.raw=r,this[u4]=!1,this[Qtt]=!1,this[Aue]=!1,this[ng]=null,this.request=i,this[jr]={},this[Yo]=null,this[FM]=void 0,this[wue]=void 0,this.log=s;let o;for(let a=0;a{"use strict";function xue(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 okn(t,n)}function okn(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}g4.exports=xue;g4.exports.default=xue;g4.exports.forwarded=xue});var ant=w((ont,y4)=>{(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";Wk.exports=Oue;Wk.exports.default=Oue;Wk.exports.proxyaddr=Oue;Wk.exports.all=lnt;Wk.exports.compile=dnt;var akn=snt(),unt=ant(),ckn=/^\d+$/u,S4=unt.isValid,b4=unt.parse,cnt={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 lnt(e,t){let n=akn(e);if(!t)return n;typeof t!="function"&&(t=dnt(t));for(let r=0;ri)throw new TypeError("invalid range on address: "+e);return[r,s]}function fkn(e){let t=b4(e);return t.kind()==="ipv4"?t.prefixLengthFromSubnetMask():null}function Oue(e,t){if(!e)throw new TypeError("req argument is required");if(!t)throw new TypeError("trust argument is required");let n=lnt(e,t);return n[n.length-1]}function pkn(){return!1}function hkn(e){return function(n){if(!S4(n))return!1;let r=b4(n),i,s=r.kind();for(let o=0;o{"use strict";var E4=fnt(),{kHasBeenDecorated:gkn,kSchemaBody:ykn,kSchemaHeaders:Skn,kSchemaParams:bkn,kSchemaQuerystring:pnt,kSchemaController:Pue,kOptions:Ekn,kRequestCacheValidateFns:$S,kRouteContext:ac,kRequestOriginalUrl:Nue,kRequestSignal:hnt,kOnAbort:_kn}=$s(),{FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:Tkn,FST_ERR_DEC_UNDECLARED:vkn}=Ko(),mnt=LM(),gnt={body:ykn,headers:Skn,params:bkn,querystring:pnt,query:pnt};function Cue(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}Cue.props=[];function Rkn(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 E4.compile(t)}return E4.compile(e)}function Akn(e,t){return t?wkn(e,t):bnt(e)}function bnt(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[_kn]=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=gnt[e];return this[ac][t]}else if(typeof e=="object")return this[ac][$S]?.get(e)}},compileValidationSchema:{value:function(e,t=null){let{method:n,url:r}=this;if(this[ac][$S]?.has(e))return this[ac][$S].get(e);let s=(this[ac].validatorCompiler||this.server[Pue].validatorCompiler||this.server[Pue].setupValidator(this.server[Ekn])||this.server[Pue].validatorCompiler)({schema:e,method:n,url:r,httpPart:t});return this[ac][$S]==null&&(this[ac][$S]=new WeakMap),this[ac][$S].set(e,s),s}},validateInput:{value:function(e,t,n){n=typeof t=="string"?t:n;let r=n!=null&&typeof n=="string"&&gnt[n],i;if(r&&(i=this[ac][r]),i==null&&(t==null||typeof t!="object"||Array.isArray(t)))throw new Tkn(n);return i==null&&(this[ac][$S]?.has(t)?i=this[ac][$S].get(t):i=this.compileValidationSchema(t,n)),i(e)}},getDecorator:{value:function(e){Snt(this,e);let t=this[e];return typeof t=="function"?t.bind(this):t}},setDecorator:{value:function(e,t){Snt(this,e),this[e]=t}}});Mue.exports=Cue;Mue.exports.buildRequest=Akn});var T4=w((h3r,Ent)=>{"use strict";var{kFourOhFourContext:kkn,kReplySerializerDefault:Ikn,kSchemaErrorFormatter:xkn,kErrorHandler:Okn,kChildLoggerFactory:Pkn,kOptions:Nkn,kReply:Ckn,kRequest:Mkn,kBodyLimit:Dkn,kLogLevel:Lkn,kContentTypeParser:Ukn,kRouteByFastify:Fkn,kRequestCacheValidateFns:jkn,kReplyCacheSerializeFns:Hkn,kHandlerTimeout:qkn}=$s();function Bkn({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[Ckn],this.Request=g[Mkn],this.contentTypeParser=g[Ukn],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[Okn],this.requestIdLogLabel=r||g[Nkn].requestIdLogLabel,this.childLoggerFactory=i||g[Pkn],this._middie=null,this._parserOptions={limit:o||g[Dkn]},this.exposeHeadRoute=h,this.prefixTrailingSlash=m,this.logLevel=a||g[Lkn],this.logSerializers=c,this[kkn]=null,this.attachValidation=u,this[Ikn]=f,this.schemaErrorFormatter=p||g[xkn]||zkn,this[Fkn]=y,this[jkn]=null,this[Hkn]=null,this.validatorCompiler=l||null,this.serializerCompiler=d||null,this.handlerTimeout=b||g[qkn]||0,this.server=g}function zkn(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))}Ent.exports=Bkn});var Lue=w((m3r,Kk)=>{"use strict";var Gkn=typeof Buffer<"u",_nt=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,Tnt=/"(?: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 vnt(e,t,n){n==null&&t!==null&&typeof t=="object"&&(n=t,t=void 0),Gkn&&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(_nt.test(e)===!1&&Tnt.test(e)===!1)return r}else if(i!=="ignore"&&s==="ignore"){if(_nt.test(e)===!1)return r}else if(Tnt.test(e)===!1)return r;return Rnt(r,{protoAction:i,constructorAction:s,safe:n&&n.safe})}function Rnt(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 Due(e,t,n){let{stackTraceLimit:r}=Error;Error.stackTraceLimit=0;try{return vnt(e,t,n)}finally{Error.stackTraceLimit=r}}function Vkn(e,t){let{stackTraceLimit:n}=Error;Error.stackTraceLimit=0;try{return vnt(e,t,{safe:!0})}catch{return}finally{Error.stackTraceLimit=n}}Kk.exports=Due;Kk.exports.default=Due;Kk.exports.parse=Due;Kk.exports.safeParse=Vkn;Kk.exports.scan=Rnt});var que=w((g3r,qM)=>{"use strict";var{AsyncResource:Wkn}=Y("node:async_hooks"),{FifoMap:knt}=NV(),{parse:Kkn}=Lue(),HM=hce(),{kDefaultJsonParse:jM,kContentTypeParser:Yk,kBodyLimit:Ykn,kRequestPayloadStream:Int,kState:Fue,kTestInternals:Zkn,kReplyIsError:Ant,kRouteContext:Jkn}=$s(),{FST_ERR_CTP_INVALID_TYPE:v4,FST_ERR_CTP_EMPTY_TYPE:Xkn,FST_ERR_CTP_ALREADY_PRESENT:Qkn,FST_ERR_CTP_INVALID_HANDLER:$kn,FST_ERR_CTP_INVALID_PARSE_TYPE:eIn,FST_ERR_CTP_BODY_TOO_LARGE:wnt,FST_ERR_CTP_INVALID_MEDIA_TYPE:tIn,FST_ERR_CTP_INVALID_CONTENT_LENGTH:nIn,FST_ERR_CTP_EMPTY_JSON_BODY:rIn,FST_ERR_CTP_INSTANCE_ALREADY_STARTED:jue,FST_ERR_CTP_INVALID_JSON_BODY:iIn}=Ko(),{FSTSEC001:sIn}=Lk();function rg(e,t,n){this[jM]=Ont(t,n),this.customParsers=new Map,this.customParsers.set("application/json",new Uue(!0,!1,e,this[jM])),this.customParsers.set("text/plain",new Uue(!0,!1,e,Hue)),this.parserList=["application/json","text/plain"],this.parserRegExpList=[],this.cache=new knt(100)}rg.prototype.add=function(e,t,n){let r=typeof e=="string";if(r){if(e=e.trim().toLowerCase(),e.length===0)throw new Xkn}else if(!(e instanceof RegExp))throw new v4;if(typeof n!="function")throw new $kn;if(this.existingParser(e))throw new Qkn(e);if(t.parseAs!==void 0&&t.parseAs!=="string"&&t.parseAs!=="buffer")throw new eIn(t.parseAs);let i=new Uue(t.parseAs==="string",t.parseAs==="buffer",t.bodyLimit,n);if(e==="*")this.customParsers.set("",i);else if(r){let s=new HM(e);if(s.isValid===!1)throw new v4;let o=s.toString();this.parserList.unshift(o),this.customParsers.set(o,i)}else dIn(e),this.parserRegExpList.unshift(e),this.customParsers.set(e.toString(),i)};rg.prototype.hasParser=function(e){if(typeof e=="string")e=new HM(e).toString();else{if(!(e instanceof RegExp))throw new v4;e=e.toString()}return this.customParsers.has(e)};rg.prototype.existingParser=function(e){if(typeof e=="string"){let t=new HM(e).toString();if(e==="application/json"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==this[jM];if(e==="text/plain"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==Hue}return this.hasParser(e)};rg.prototype.getParser=function(e){typeof e=="string"&&(e=new HM(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("")};rg.prototype.removeAll=function(){this.customParsers=new Map,this.parserRegExpList=[],this.parserList=[],this.cache=new knt(100)};rg.prototype.remove=function(e){let t;if(typeof e=="string")e=new HM(e).toString(),t=this.parserList;else{if(!(e instanceof RegExp))throw new v4;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};rg.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 tIn);return}let s=new Wkn("content-type-parser:run",n),o=s.bind(c);if(i.asString===!0||i.asBuffer===!0){xnt(n,r,r[Jkn]._parserOptions,i,o);return}let a=i.fn(n,n[Int],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 xnt(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 wnt,void 0);return}let c=0,u=s?"":[],l=e[Int]||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 wnt,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 nIn,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 Ont(e,t){let n={protoAction:e,constructorAction:t};return r;function r(i,s,o){if(s.length===0){o(new rIn,void 0);return}try{o(null,Kkn(s,n))}catch{o(new iIn,void 0)}}}function Hue(e,t,n){n(null,t)}function Uue(e,t,n,r){this.asString=e,this.asBuffer=t,this.bodyLimit=n,this.fn=r}function oIn(e){let t=new rg;return t[jM]=e[jM],t.customParsers=new Map(e.customParsers.entries()),t.parserList=e.parserList.slice(),t.parserRegExpList=e.parserRegExpList.slice(),t}function aIn(e,t,n){if(this[Fue].started)throw new jue("addContentTypeParser");return typeof t=="function"&&(n=t,t={}),t||(t={}),t.bodyLimit||(t.bodyLimit=this[Ykn]),Array.isArray(e)?e.forEach(r=>this[Yk].add(r,t,n)):this[Yk].add(e,t,n),this}function cIn(e){return this[Yk].hasParser(e)}function uIn(e){if(this[Fue].started)throw new jue("removeContentTypeParser");if(Array.isArray(e))for(let t of e)this[Yk].remove(t);else this[Yk].remove(e)}function lIn(){if(this[Fue].started)throw new jue("removeAllContentTypeParsers");this[Yk].removeAll()}function dIn(e){e.source[0]!=="^"&&e.source.includes(";?")===!1&&sIn(e.source)}qM.exports=rg;qM.exports.helpers={buildContentTypeParser:oIn,addContentTypeParser:aIn,hasContentTypeParser:cIn,removeContentTypeParser:uIn,removeAllContentTypeParsers:lIn};qM.exports.defaultParsers={getDefaultJsonParser:Ont,defaultTextParser:Hue};qM.exports[Zkn]={rawBody:xnt}});var ig=w(BM=>{"use strict";Object.defineProperty(BM,"__esModule",{value:!0});BM.checkMetadata=void 0;var fIn=pn(),pIn={keyword:"metadata",schemaType:"object",code(e){Pnt(e);let{gen:t,schema:n,it:r}=e;if((0,fIn.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`)}BM.checkMetadata=Pnt;BM.default=pIn});var R4=w(GM=>{"use strict";Object.defineProperty(GM,"__esModule",{value:!0});GM.hasRef=void 0;var Nnt=q_(),zM=Ot(),hIn=Zm(),Cnt=bd(),Mnt=Kse(),mIn=ig(),gIn={keyword:"ref",schemaType:"string",code(e){(0,mIn.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,zM._)`${n} === null`),t.if((0,zM.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 hIn.default(s.opts.uriResolver,"",r,`No definition ${r}`);Bue(f)||!s.opts.inlineRefs?u(f):l(f)}function u(d){let f=Nnt.compileSchema.call(s.self,new Nnt.SchemaEnv({schema:d,root:o,schemaPath:`/definitions/${r}`})),p=(0,Mnt.getValidate)(e,f),h=t.const("_errs",Cnt.default.errors);(0,Mnt.callRef)(e,p,f,f.$async),t.assign(a,(0,zM._)`${h} === ${Cnt.default.errors}`)}function l(d){let f=t.scopeValue("schema",s.opts.code.source===!0?{ref:d,code:(0,zM.stringify)(d)}:{ref:d});e.subschema({schema:d,dataTypes:[],schemaPath:zM.nil,topSchemaRef:f,errSchemaPath:`/definitions/${r}`},a)}}};function Bue(e){for(let t in e){let n;if(t==="ref"||typeof(n=e[t])=="object"&&Bue(n))return!0}return!1}GM.hasRef=Bue;GM.default=gIn});var Gue=w(zue=>{"use strict";Object.defineProperty(zue,"__esModule",{value:!0});var yIn=/t|\s/i,SIn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,bIn=/^(\d\d):(\d\d):(\d\d)(?:\.\d+)?(?:z|([+-]\d\d)(?::?(\d\d))?)$/i,EIn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Lnt(e,t){let n=e.split(yIn);return n.length===2&&Dnt(n[0])&&_In(n[1])||t&&n.length===1&&Dnt(n[0])}zue.default=Lnt;function Dnt(e){let t=SIn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&(i<=EIn[r]||r===2&&i===29&&(n%100===0?n%400===0:n%4===0))}function _In(e){let t=bIn.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}Lnt.code='require("ajv/dist/runtime/timestamp").default'});var Zk=w(eb=>{"use strict";Object.defineProperty(eb,"__esModule",{value:!0});eb.typeErrorParams=eb.typeErrorMessage=eb.typeError=void 0;var TIn=Ot();function vIn(e){return{message:t=>Unt(t,e),params:t=>Fnt(t,e)}}eb.typeError=vIn;function Unt({parentSchema:e},t){return e?.nullable?`must be ${t} or null`:`must be ${t}`}eb.typeErrorMessage=Unt;function Fnt({parentSchema:e},t){return(0,TIn._)`{type: ${t}, nullable: ${!!e?.nullable}}`}eb.typeErrorParams=Fnt});var Vue=w(Jk=>{"use strict";Object.defineProperty(Jk,"__esModule",{value:!0});Jk.intRange=void 0;var El=Ot(),RIn=Gue(),AIn=pn(),wIn=ig(),jnt=Zk();Jk.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 kIn={message:e=>(0,jnt.typeErrorMessage)(e,e.schema),params:e=>(0,jnt.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,El._)`${n} instanceof Date `;let o=(0,AIn.useFunc)(t,RIn.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 xIn={keyword:"type",schemaType:"string",error:kIn,code(e){(0,wIn.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=IIn(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]=Jk.intRange[o];s=(0,El._)`${s} && ${t} >= ${a} && ${t} <= ${c}`}}}e.pass(r.nullable?(0,El.or)((0,El._)`${t} === null`,s):s)}};Jk.default=xIn});var Qk=w(Xk=>{"use strict";Object.defineProperty(Xk,"__esModule",{value:!0});Xk.checkNullableObject=Xk.checkNullable=void 0;var A4=Ot();function Hnt({gen:e,data:t,parentSchema:n},r=A4.nil){let i=e.name("valid");return n.nullable?(e.let(i,(0,A4._)`${t} === null`),r=(0,A4.not)(i)):e.let(i,!1),[i,r]}Xk.checkNullable=Hnt;function OIn(e,t){let[n,r]=Hnt(e,t);return[n,(0,A4._)`${r} && typeof ${e.data} == "object" && !Array.isArray(${e.data})`]}Xk.checkNullableObject=OIn});var qnt=w(Wue=>{"use strict";Object.defineProperty(Wue,"__esModule",{value:!0});var tb=Ot(),PIn=ig(),NIn=Qk(),CIn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,tb._)`{allowedValues: ${e}}`},MIn={keyword:"enum",schemaType:"array",error:CIn,code(e){(0,PIn.checkMetadata)(e);let{gen:t,data:n,schema:r,schemaValue:i,parentSchema:s,it:o}=e;if(r.length===0)throw new Error("enum must have non-empty array");if(r.length!==new Set(r).size)throw new Error("enum items must be unique");let a,c=(0,tb._)`typeof ${n} == "string"`;if(r.length>=o.opts.loopEnum){let l;[a,l]=(0,NIn.checkNullable)(e,c),t.if(l,u)}else{if(!Array.isArray(r))throw new Error("ajv implementation error");a=(0,tb.and)(c,(0,tb.or)(...r.map(l=>(0,tb._)`${n} === ${l}`))),s.nullable&&(a=(0,tb.or)((0,tb._)`${n} === null`,a))}e.pass(a);function u(){t.forOf("v",i,l=>t.if((0,tb._)`${a} = ${n} === ${l}`,()=>t.break()))}}};Wue.default=MIn});var znt=w(Kue=>{"use strict";Object.defineProperty(Kue,"__esModule",{value:!0});var DIn=pn(),LIn=Sa(),Bnt=Ot(),UIn=ig(),FIn=Qk(),jIn=Zk(),HIn={keyword:"elements",schemaType:"object",error:(0,jIn.typeError)("array"),code(e){(0,UIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e;if((0,DIn.alwaysValidSchema)(i,r))return;let[s]=(0,FIn.checkNullable)(e);t.if((0,Bnt.not)(s),()=>t.if((0,Bnt._)`Array.isArray(${n})`,()=>t.assign(s,(0,LIn.validateArray)(e)),()=>e.error())),e.ok(s)}};Kue.default=HIn});var Zue=w(nb=>{"use strict";Object.defineProperty(nb,"__esModule",{value:!0});nb.validateProperties=nb.error=void 0;var Yue=Sa(),Gnt=pn(),sg=Ot(),qIn=ig(),BIn=Qk(),Vnt=Zk(),$k;(function(e){e.Additional="additional",e.Missing="missing"})($k||($k={}));nb.error={message:e=>{let{params:t}=e;return t.propError?t.propError===$k.Additional?"must NOT have additional properties":`must have property '${t.missingProperty}'`:(0,Vnt.typeErrorMessage)(e,"object")},params:e=>{let{params:t}=e;return t.propError?t.propError===$k.Additional?(0,sg._)`{error: ${t.propError}, additionalProperty: ${t.additionalProperty}}`:(0,sg._)`{error: ${t.propError}, missingProperty: ${t.missingProperty}}`:(0,Vnt.typeErrorParams)(e,"object")}};var zIn={keyword:"properties",schemaType:"object",error:nb.error,code:Wnt};function Wnt(e){(0,qIn.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,BIn.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,Yue.allSchemaProperties)(E):[];if(i.jtdDiscriminator&&_.some(R=>R===i.jtdDiscriminator))throw new Error(`JTD: discriminator tag used in ${S}`);let T=_.filter(R=>!(0,Gnt.alwaysValidSchema)(i,E[R]));return[_,T]}function m(S,E,_){let T=t.var("valid");for(let A of S)t.if((0,Yue.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:$k.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,sg.and)(E,_);t.if(T,()=>{i.opts.removeAdditional?t.code((0,sg._)`delete ${n}[${S}]`):(e.error(!1,{propError:$k.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,Gnt.schemaRefOrVal)(i,r[_],_);R=(0,sg.not)((0,Yue.isOwnProperty)(t,A,S)),T!==void 0&&(R=(0,sg.and)(R,(0,sg._)`${S} !== ${T}`))}else if(E.length||T!==void 0){let A=T===void 0?E:[T].concat(E);R=(0,sg.and)(...A.map(x=>(0,sg._)`${S} !== ${x}`))}else R=!0;return R}}nb.validateProperties=Wnt;nb.default=zIn});var Ynt=w(Jue=>{"use strict";Object.defineProperty(Jue,"__esModule",{value:!0});var Knt=Zue(),GIn={keyword:"optionalProperties",schemaType:"object",error:Knt.error,code(e){e.parentSchema.properties||(0,Knt.validateProperties)(e)}};Jue.default=GIn});var Jnt=w(Xue=>{"use strict";Object.defineProperty(Xue,"__esModule",{value:!0});var pT=Ot(),VIn=ig(),WIn=Qk(),Znt=Zk(),w4=Coe(),KIn={message:e=>{let{schema:t,params:n}=e;return n.discrError?n.discrError===w4.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,pT._)`{error: ${n.discrError}, tag: ${t}, tagValue: ${n.tag}}`:(0,Znt.typeErrorParams)(e,"object")}},YIn={keyword:"discriminator",schemaType:"string",implements:["mapping"],error:KIn,code(e){(0,VIn.checkMetadata)(e);let{gen:t,data:n,schema:r,parentSchema:i}=e,[s,o]=(0,WIn.checkNullableObject)(e,n);t.if(o),a(),t.elseIf((0,pT.not)(s)),e.error(),t.endIf(),e.ok(s);function a(){let l=t.const("tag",(0,pT._)`${n}${(0,pT.getProperty)(r)}`);t.if((0,pT._)`${l} === undefined`),e.error(!1,{discrError:w4.DiscrError.Tag,tag:l}),t.elseIf((0,pT._)`typeof ${l} == "string"`),c(l),t.else(),e.error(!1,{discrError:w4.DiscrError.Tag,tag:l},{instancePath:r}),t.endIf()}function c(l){t.if(!1);for(let d in i.mapping)t.elseIf((0,pT._)`${l} === ${d}`),t.assign(s,u(d));t.else(),e.error(!1,{discrError:w4.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}}};Xue.default=YIn});var Qnt=w(Que=>{"use strict";Object.defineProperty(Que,"__esModule",{value:!0});var Xnt=pn(),k4=Ot(),ZIn=ig(),JIn=Qk(),XIn=Zk(),QIn={keyword:"values",schemaType:"object",error:(0,XIn.typeError)("object"),code(e){(0,ZIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e,[s,o]=(0,JIn.checkNullableObject)(e,n);(0,Xnt.alwaysValidSchema)(i,r)?t.if((0,k4.not)((0,k4.or)(o,s)),()=>e.error()):(t.if(o),t.assign(s,a()),t.elseIf((0,k4.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:Xnt.Type.Str},c),t.if((0,k4.not)(c),l)})}}}};Que.default=QIn});var $nt=w($ue=>{"use strict";Object.defineProperty($ue,"__esModule",{value:!0});var $In=Sa(),e0n={keyword:"union",schemaType:"array",trackErrors:!0,code:$In.validateUnion,error:{message:"must match a schema in union"}};$ue.default=e0n});var ert=w(ele=>{"use strict";Object.defineProperty(ele,"__esModule",{value:!0});var t0n=R4(),n0n=Vue(),r0n=qnt(),i0n=znt(),s0n=Zue(),o0n=Ynt(),a0n=Jnt(),c0n=Qnt(),u0n=$nt(),l0n=ig(),d0n=["definitions",t0n.default,n0n.default,r0n.default,i0n.default,s0n.default,o0n.default,a0n.default,c0n.default,u0n.default,l0n.default,{keyword:"additionalProperties",schemaType:"boolean"},{keyword:"nullable",schemaType:"boolean"}];ele.default=d0n});var irt=w(tle=>{"use strict";Object.defineProperty(tle,"__esModule",{value:!0});var og=e=>{let t={nullable:{type:"boolean"},metadata:{optionalProperties:{union:{elements:{ref:"schema"}}},additionalProperties:!0}};return e&&(t.definitions={values:{ref:"schema"}}),t},f0n=e=>({optionalProperties:og(e)}),p0n=e=>({properties:{ref:{type:"string"}},optionalProperties:og(e)}),h0n=e=>({properties:{type:{enum:["boolean","timestamp","string","float32","float64","int8","uint8","int16","uint16","int32","uint32"]}},optionalProperties:og(e)}),m0n=e=>({properties:{enum:{elements:{type:"string"}}},optionalProperties:og(e)}),g0n=e=>({properties:{elements:{ref:"schema"}},optionalProperties:og(e)}),nrt=e=>({properties:{properties:{values:{ref:"schema"}}},optionalProperties:{optionalProperties:{values:{ref:"schema"}},additionalProperties:{type:"boolean"},...og(e)}}),rrt=e=>({properties:{optionalProperties:{values:{ref:"schema"}}},optionalProperties:{additionalProperties:{type:"boolean"},...og(e)}}),y0n=e=>({properties:{discriminator:{type:"string"},mapping:{values:{metadata:{union:[nrt(!1),rrt(!1)]}}}},optionalProperties:og(e)}),S0n=e=>({properties:{values:{ref:"schema"}},optionalProperties:og(e)}),trt=e=>({metadata:{union:[f0n,p0n,h0n,m0n,g0n,nrt,rrt,y0n,S0n].map(t=>t(e))}}),b0n={definitions:{schema:trt(!1)},...trt(!0)};tle.default=b0n});var nle=w(I4=>{"use strict";Object.defineProperty(I4,"__esModule",{value:!0});I4.jtdForms=void 0;I4.jtdForms=["elements","values","discriminator","properties","optionalProperties","enum","type","ref"]});var ort=w(ile=>{"use strict";Object.defineProperty(ile,"__esModule",{value:!0});var rle=/[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,E0n={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function srt(e){return rle.lastIndex=0,'"'+(rle.test(e)?e.replace(rle,t=>{let n=E0n[t];return typeof n=="string"?n:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)}):e)+'"'}ile.default=srt;srt.code='require("ajv/dist/runtime/quote").default'});var frt=w(ole=>{"use strict";Object.defineProperty(ole,"__esModule",{value:!0});var _0n=nle(),crt=q_(),En=Ot(),T0n=Zm(),qr=bd(),v0n=Sa(),R0n=R4(),A0n=pn(),w0n=ort(),k0n={elements:x0n,values:O0n,discriminator:P0n,properties:art,optionalProperties:art,enum:VM,type:N0n,ref:M0n};function urt(e,t){let n=crt.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)``),WM(c),o.return(qr.default.json)}),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(qr.default.scope)}return ${l}`;let f=new Function(`${qr.default.scope}`,u)(this.scope.get());this.scope.value(a,{ref:f}),e.serialize=f}catch(l){throw u&&this.logger.error("Error compiling serializer, function code:",u),delete e.serialize,delete e.serializeName,l}finally{this._compilations.delete(e)}return e}ole.default=urt;function WM(e){let t;for(let n of _0n.jtdForms)if(n in e.schema){t=n;break}I0n(e,t?k0n[t]:L0n)}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 x0n(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=>{sle(e,i),WM({...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=>lrt(e,s,n.values,i)),t.add(qr.default.json,(0,En.str)`}`)}function lrt(e,t,n,r){let{gen:i,data:s}=e;sle(e,r),VM({...e,data:t}),i.add(qr.default.json,(0,En.str)`:`);let o=i.const("value",(0,En._)`${s}${(0,En.getProperty)(t)}`);WM({...e,schema:n,data:o})}function P0n(e){let{gen:t,schema:n,data:r}=e,{discriminator:i}=n;t.add(qr.default.json,(0,En.str)`{${JSON.stringify(i)}:`);let s=t.const("tag",(0,En._)`${r}${(0,En.getProperty)(i)}`);VM({...e,data:s}),t.if(!1);for(let o in n.mapping){t.elseIf((0,En._)`${s} === ${o}`);let a=n.mapping[o];drt({...e,schema:a},i)}t.endIf(),t.add(qr.default.json,(0,En.str)`}`)}function art(e){let{gen:t}=e;t.add(qr.default.json,(0,En.str)`{`),drt(e),t.add(qr.default.json,(0,En.str)`}`)}function drt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o}=r,a=f(s),c=f(o),u=p(a.concat(c)),l=!t,d;for(let y of a)l?l=!1:n.add(qr.default.json,(0,En.str)`,`),m(y,s[y],h(y));l&&(d=n.let("first",!0));for(let y of c){let b=h(y);n.if((0,En.and)((0,En._)`${b} !== undefined`,(0,v0n.isOwnProperty)(n,i,y)),()=>{sle(e,d),m(y,o[y],b)})}r.additionalProperties&&n.forIn("key",i,y=>n.if(g(y,u),()=>lrt(e,y,{},d)));function f(y){return y?Object.keys(y):[]}function p(y){if(t&&y.push(t),new Set(y).size!==y.length)throw new Error("JTD: properties/optionalProperties/disciminator overlap");return y}function h(y){return n.const("value",(0,En._)`${i}${(0,En.getProperty)(y)}`)}function m(y,b,S){n.add(qr.default.json,(0,En.str)`${JSON.stringify(y)}:`),WM({...e,schema:b,data:S})}function g(y,b){return b.length?(0,En.and)(...b.map(S=>(0,En._)`${y} !== ${S}`)):!0}}function N0n(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":VM(e);break;case"timestamp":t.if((0,En._)`${r} instanceof Date`,()=>t.add(qr.default.json,(0,En._)`'"' + ${r}.toISOString() + '"'`),()=>VM(e));break;default:C0n(e)}}function VM({gen:e,data:t}){e.add(qr.default.json,(0,En._)`${(0,A0n.useFunc)(e,w0n.default)}(${t})`)}function C0n({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 M0n(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 T0n.default(n.opts.uriResolver,"",a,`No definition ${a}`);if(!(0,R0n.hasRef)(c))return WM({...e,schema:c});let{root:u}=o,l=urt.call(n,new crt.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 L0n({gen:e,data:t}){e.add(qr.default.json,(0,En._)`JSON.stringify(${t})`)}function sle({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 hrt=w(ib=>{"use strict";Object.defineProperty(ib,"__esModule",{value:!0});ib.parseJsonString=ib.parseJsonNumber=ib.parseJson=void 0;var U0n=/position\s(\d+)(?: \(line \d+ column \d+\))?$/;function ag(e,t){let n;ag.message=void 0;let r;t&&(e=e.slice(t));try{return ag.position=t+e.length,JSON.parse(e)}catch(i){if(r=U0n.exec(i.message),!r){ag.message="unexpected end";return}n=+r[1];let s=e[n];e=e.slice(0,n),ag.position=t+n;try{return JSON.parse(e)}catch{ag.message=`unexpected token ${s}`;return}}}ib.parseJson=ag;ag.message=void 0;ag.position=0;ag.code='require("ajv/dist/runtime/parseJson").parseJson';function cg(e,t,n){let r="",i;if(cg.message=void 0,e[t]==="-"&&(r+="-",t++),e[t]==="0")r+="0",t++;else if(!s(n)){o();return}if(n)return cg.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 cg.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(){cg.position=t,cg.message=t="a"&&r<="f")o+=r.charCodeAt(0)-F0n+10;else if(r>="0"&&r<="9")o+=r.charCodeAt(0)-j0n;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 rb.position=t,n;function i(s){rb.position=t,rb.message=s}}ib.parseJsonString=rb;rb.message=void 0;rb.position=0;rb.code='require("ajv/dist/runtime/parseJson").parseJsonString'});var Art=w(hle=>{"use strict";Object.defineProperty(hle,"__esModule",{value:!0});var H0n=nle(),Srt=q_(),mt=Ot(),q0n=Zm(),Ln=bd(),B0n=Sa(),z0n=R4(),G0n=Vue(),ule=hrt(),brt=pn(),V0n=Gue(),W0n={elements:J0n,values:X0n,discriminator:$0n,properties:mrt,optionalProperties:mrt,enum:txn,type:exn,ref:nxn};function Ert(e,t){let n=Srt.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:Ln.default.data,parseName:a,char:o.name("c")},u;try{this._compilations.add(e),e.parseName=a,K0n(c),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(Ln.default.scope)}return ${l}`;let f=new Function(`${Ln.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}hle.default=Ert;var cle=(0,mt._)`undefined`;function K0n(e){let{gen:t,parseName:n,char:r}=e;t.func(n,(0,mt._)`${Ln.default.json}, ${Ln.default.jsonPos}, ${Ln.default.jsonPart}`,!1,()=>{t.let(Ln.default.data),t.let(r),t.assign((0,mt._)`${n}.message`,cle),t.assign((0,mt._)`${n}.position`,cle),t.assign(Ln.default.jsonPos,(0,mt._)`${Ln.default.jsonPos} || 0`),t.const(Ln.default.jsonLen,(0,mt._)`${Ln.default.json}.length`),x4(e),ple(e),t.if(Ln.default.jsonPart,()=>{t.assign((0,mt._)`${n}.position`,Ln.default.jsonPos),t.return(Ln.default.data)}),t.if((0,mt._)`${Ln.default.jsonPos} === ${Ln.default.jsonLen}`,()=>t.return(Ln.default.data)),eI(e)})}function x4(e){let t;for(let n of H0n.jtdForms)if(n in e.schema){t=n;break}t?Z0n(e,W0n[t]):dle(e)}var Y0n=yrt(!0,yrt(!1,eI));function Z0n(e,t){let{gen:n,schema:r,data:i}=e;if(!r.nullable)return t(e);KM(e,"null",t,()=>n.assign(i,null))}function J0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"[");let i=t.let("i",0);t.assign(r,(0,mt._)`[]`),lle(e,"]",()=>{let s=t.let("el");x4({...e,schema:n.elements,data:s}),t.assign((0,mt._)`${r}[${i}++]`,s)})}function X0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"{"),t.assign(r,(0,mt._)`{}`),lle(e,"}",()=>Q0n(e,n.values))}function lle(e,t,n){_rt(e,t,n),Ah(e,t)}function _rt(e,t,n){let{gen:r}=e;r.for((0,mt._)`;${Ln.default.jsonPos}<${Ln.default.jsonLen} && ${O4(1)}!==${t};`,()=>{n(),KM(e,",",()=>r.break(),i)});function i(){KM(e,t,()=>{},eI)}}function Q0n(e,t){let{gen:n}=e,r=n.let("key");hT({...e,data:r}),Ah(e,":"),vrt(e,r,t)}function $0n(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",Ln.default.jsonPos),a=t.let("value"),c=t.let("tag");_rt(e,"}",()=>{let u=t.let("key");hT({...e,data:u}),Ah(e,":"),t.if((0,mt._)`${u} === ${i}`,()=>{hT({...e,data:c}),t.assign((0,mt._)`${n}[${u}]`,c),t.break()},()=>dle({...e,data:a}))}),t.assign(Ln.default.jsonPos,o),t.if((0,mt._)`${c} === undefined`),ug(e,(0,mt.str)`discriminator tag not found`);for(let u in s)t.elseIf((0,mt._)`${c} === ${u}`),Trt({...e,schema:s[u]},i);t.else(),ug(e,(0,mt.str)`discriminator value not in schema`),t.endIf()}function mrt(e){let{gen:t,data:n}=e;Ah(e,"{"),t.assign(n,(0,mt._)`{}`),Trt(e)}function Trt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o,additionalProperties:a}=r;if(lle(e,"}",()=>{let c=n.let("key");if(hT({...e,data:c}),Ah(e,":"),n.if(!1),grt(e,c,s),grt(e,c,o),t){n.elseIf((0,mt._)`${c} === ${t}`);let u=n.let("tag");hT({...e,data:u})}n.else(),a?dle({...e,data:(0,mt._)`${i}[${c}]`}):ug(e,(0,mt.str)`property ${c} not allowed`),n.endIf()}),s){let c=(0,B0n.hasPropFunc)(n),u=(0,mt.and)(...Object.keys(s).map(l=>(0,mt._)`${c}.call(${i}, ${l})`));n.if((0,mt.not)(u),()=>ug(e,(0,mt.str)`missing required properties`))}}function grt(e,t,n={}){let{gen:r}=e;for(let i in n)r.elseIf((0,mt._)`${t} === ${i}`),vrt(e,t,n[i])}function vrt(e,t,n){x4({...e,schema:n,data:(0,mt._)`${e.data}[${t}]`})}function exn(e){let{gen:t,schema:n,data:r,self:i}=e;switch(n.type){case"boolean":Y0n(e);break;case"string":hT(e);break;case"timestamp":{hT(e);let s=(0,brt.useFunc)(t,V0n.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,()=>ug(e,(0,mt.str)`invalid timestamp`));break}case"float32":case"float64":ale(e);break;default:{let s=n.type;if(!i.opts.int32range&&(s==="int32"||s==="uint32"))ale(e,16),s==="uint32"&&t.if((0,mt._)`${r} < 0`,()=>ug(e,(0,mt.str)`integer out of range`));else{let[o,a,c]=G0n.intRange[s];ale(e,c),t.if((0,mt._)`${r} < ${o} || ${r} > ${a}`,()=>ug(e,(0,mt.str)`integer out of range`))}}}}function hT(e){Ah(e,'"'),fle(e,ule.parseJsonString)}function txn(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._)`${O4(o.length)} === ${o}`),t.assign(n,(0,mt.str)`${s}`),t.add(Ln.default.jsonPos,o.length)}t.else(),eI(e),t.endIf()}function ale(e,t){let{gen:n}=e;ple(e),n.if((0,mt._)`"-0123456789".indexOf(${O4(1)}) < 0`,()=>eI(e),()=>fle(e,ule.parseJsonNumber,t))}function yrt(e,t){return n=>{let{gen:r,data:i}=n;KM(n,`${e}`,()=>t(n),()=>r.assign(i,e))}}function nxn(e){let{gen:t,self:n,definitions:r,schema:i,schemaEnv:s}=e,{ref:o}=i,a=r[o];if(!a)throw new q0n.default(n.opts.uriResolver,"",o,`No definition ${o}`);if(!(0,z0n.hasRef)(a))return x4({...e,schema:a});let{root:c}=s,u=Ert.call(n,new Srt.SchemaEnv({schema:a,root:c}),r);Rrt(e,rxn(t,u),!0)}function rxn(e,t){return t.parse?e.scopeValue("parse",{ref:t.parse}):(0,mt._)`${e.scopeValue("wrapper",{ref:t})}.parse`}function dle(e){fle(e,ule.parseJson)}function fle(e,t,n){Rrt(e,(0,brt.useFunc)(e.gen,t),n)}function Rrt(e,t,n){let{gen:r,data:i}=e;r.assign(i,(0,mt._)`${t}(${Ln.default.json}, ${Ln.default.jsonPos}${n?(0,mt._)`, ${n}`:mt.nil})`),r.assign(Ln.default.jsonPos,(0,mt._)`${t}.position`),r.if((0,mt._)`${i} === undefined`,()=>ug(e,(0,mt._)`${t}.message`))}function Ah(e,t){KM(e,t,eI)}function KM(e,t,n,r){let{gen:i}=e,s=t.length;ple(e),i.if((0,mt._)`${O4(s)} === ${t}`,()=>{i.add(Ln.default.jsonPos,s),r?.(e)},()=>n(e))}function ple({gen:e,char:t}){e.code((0,mt._)`while((${t}=${Ln.default.json}[${Ln.default.jsonPos}],${t}===" "||${t}==="\\n"||${t}==="\\r"||${t}==="\\t"))${Ln.default.jsonPos}++;`)}function O4(e){return e===1?(0,mt._)`${Ln.default.json}[${Ln.default.jsonPos}]`:(0,mt._)`${Ln.default.json}.slice(${Ln.default.jsonPos}, ${Ln.default.jsonPos}+${e})`}function eI(e){ug(e,(0,mt._)`"unexpected token " + ${Ln.default.json}[${Ln.default.jsonPos}]`)}function ug({gen:e,parseName:t},n){e.assign((0,mt._)`${t}.message`,n),e.assign((0,mt._)`${t}.position`,Ln.default.jsonPos),e.return(cle)}});var yle=w((bi,gle)=>{"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 ixn=Vse(),sxn=ert(),oxn=irt(),axn=frt(),cxn=Art(),mle="JTD-meta-schema",tI=class extends ixn.default{constructor(t={}){super({...t,jtd:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(sxn.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema(),this.opts.meta&&this.addMetaSchema(oxn.default,mle,!1)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(mle)?mle: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(axn.default.call(this,t,t.schema.definitions||{}),!t.serialize)throw new Error("ajv implementation error");return t.serialize}_compileParser(t){if(cxn.default.call(this,t,t.schema.definitions||{}),!t.parse)throw new Error("ajv implementation error");return t.parse}};bi.Ajv=tI;gle.exports=bi=tI;gle.exports.Ajv=tI;Object.defineProperty(bi,"__esModule",{value:!0});bi.default=tI;var uxn=ck();Object.defineProperty(bi,"KeywordCxt",{enumerable:!0,get:function(){return uxn.KeywordCxt}});var nI=Ot();Object.defineProperty(bi,"_",{enumerable:!0,get:function(){return nI._}});Object.defineProperty(bi,"str",{enumerable:!0,get:function(){return nI.str}});Object.defineProperty(bi,"stringify",{enumerable:!0,get:function(){return nI.stringify}});Object.defineProperty(bi,"nil",{enumerable:!0,get:function(){return nI.nil}});Object.defineProperty(bi,"Name",{enumerable:!0,get:function(){return nI.Name}});Object.defineProperty(bi,"CodeGen",{enumerable:!0,get:function(){return nI.CodeGen}});var lxn=MC();Object.defineProperty(bi,"ValidationError",{enumerable:!0,get:function(){return lxn.default}});var dxn=Zm();Object.defineProperty(bi,"MissingRefError",{enumerable:!0,get:function(){return dxn.default}})});var Sle=w((U3r,wrt)=>{"use strict";var fxn=sV();wrt.exports=Object.freeze({coerceTypes:"array",useDefaults:!0,removeAdditional:!0,uriResolver:fxn,addUsedSchema:!1,allErrors:!1})});var xrt=w((F3r,Irt)=>{"use strict";var pxn=V_().default,hxn=yle(),krt=Sle(),ble=class{constructor(t,n){n.mode==="JTD"?this.ajv=new hxn(Object.assign({},krt,n.customOptions)):this.ajv=new pxn(Object.assign({},krt,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&&TV()(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)}};Irt.exports=ble});var Prt=w((j3r,Ort)=>{"use strict";var mxn=yle(),gxn=Sle(),Ele=class{constructor(t,n){this.ajv=new mxn(Object.assign({},gxn,n))}buildSerializerFunction({schema:t}){return this.ajv.compileSerializer(t)}};Ort.exports=Ele});var Mrt=w((ZM,Crt)=>{"use strict";Object.defineProperty(ZM,"__esModule",{value:!0});var YM=G2(),Cf=ek();function Nrt(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)===YM.UsedValueState.Completed)return Cf.nil;p(c.validateName,YM.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?YM.varKinds.var:YM.varKinds.const,E=(0,Cf._)`${S} ${h} = {validate: ${b}};`;if(f(b)===YM.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)}}}Crt.exports=ZM=Nrt;Object.defineProperty(ZM,"__esModule",{value:!0});ZM.default=Nrt});var Urt=w((H3r,Lrt)=>{"use strict";var Drt=_le(),yxn=Mrt().default;function Sxn(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=Drt();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=yxn(s[Drt.AjvReference].ajv,a);return e.storeFunction(o,c),a}}}Lrt.exports=Sxn});var _le=w((q3r,rI)=>{"use strict";var jrt=Symbol.for("fastify.ajv-compiler.reference"),bxn=xrt(),Exn=Prt();function Tle(e){let t=new Map,n=new Map;return e&&e.jtdSerializer===!0?function(i,s){let o=Frt({},s);if(n.has(o))return n.get(o);let a=new Exn(i,s),c=a.buildSerializerFunction.bind(a);return n.set(o,c),c}:function(i,s){let o=Frt(i,s.customOptions);if(t.has(o))return t.get(o);let a=new bxn(i,s),c=a.buildValidatorFunction.bind(a);return t.set(o,c),s.customOptions.code!==void 0&&(c[jrt]=a),c}}function Frt(e,t){let n=JSON.stringify(e),r=JSON.stringify(t);return`${n}${r}`}rI.exports=Tle;rI.exports.default=Tle;rI.exports.AjvCompiler=Tle;rI.exports.AjvReference=jrt;rI.exports.StandaloneValidator=Urt()});var P4=w(Brt=>{var Hrt=Object.prototype.hasOwnProperty;function qrt(e,t,n){for(n of e.keys())if(JM(n,t))return n}function JM(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--&&JM(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=qrt(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=qrt(t,i),!i)||!JM(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(Hrt.call(e,n)&&++r&&!Hrt.call(t,n)||!(n in t)||!JM(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}Brt.dequal=JM});var Wrt=w((z3r,Vrt)=>{"use strict";var{dequal:zrt}=P4(),_xn=Symbol.for("json-schema-ref"),vle=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]:Grt(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]:Grt(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[_xn]=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(zrt(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&&zrt(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 Grt(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}Vrt.exports={RefResolver:vle}});var Ale=w((G3r,Krt)=>{"use strict";var Txn=V_(),vxn=sV(),Rxn=TV(),Axn=n4()({proto:!0}),Rle=class e{constructor(t){this.ajv=new Txn({...t,strictSchema:!1,validateSchema:!1,allowUnionTypes:!0,uriResolver:vxn}),Rxn(this.ajv),this.ajv.addKeyword({keyword:"fjs_type",type:"object",errors:!1,validate:(n,r)=>r&&typeof r.toJSON=="function"}),this._ajvSchemas={},this._ajvOptions=t||{}}addSchema(t,n){let r=t.$id||n;if(t.$id!==void 0&&t.$id[0]==="#"&&(r=n+t.$id),this.ajv.refs[r]===void 0&&this.ajv.schemas[r]===void 0){let i=Axn(t);this.convertSchemaToAjvFormat(i),this.ajv.addSchema(i,r),this._ajvSchemas[r]=t}}validate(t,n){return this.ajv.validate(t,n)}convertSchemaToAjvFormat(t){if(t!==null){t.type==="string"?(t.fjs_type="string",t.type=["string","object"]):Array.isArray(t.type)&&t.type.includes("string")&&!t.type.includes("object")&&(t.fjs_type="string",t.type.push("object"));for(let n in t)typeof t[n]=="object"&&this.convertSchemaToAjvFormat(t[n])}}getState(){return{ajvOptions:this._ajvOptions,ajvSchemas:this._ajvSchemas}}static restoreFromState(t){let n=new e(t.ajvOptions);for(let[r,i]of Object.entries(t.ajvSchemas))n.ajv.addSchema(i,r);return n}};Krt.exports=Rle});var Zrt=w((V3r,Yrt)=>{"use strict";var wle=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}};Yrt.exports=wle});var eit=w((W3r,Ile)=>{"use strict";Ile.exports=qe;Ile.exports.default=qe;var wxn={$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},Jrt={enum:["array","boolean","integer","null","number","object","string"]},Xrt=/^(?:[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,kxn=EV().fullFormats.uri,Qrt=EV().fullFormats.regex;function kd(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))?(kd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1):(kd.errors=s,o===0):(kd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1)}var kle={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;kd(e.minLength,{instancePath:t+"/minLength",parentData:e,parentDataProperty:"minLength",rootData:i})||(s=s===null?kd.errors:s.concat(kd.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(!Qrt(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;kd(e.minItems,{instancePath:t+"/minItems",parentData:e,parentDataProperty:"minItems",rootData:i})||(s=s===null?kd.errors:s.concat(kd.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;kd(e.minProperties,{instancePath:t+"/minProperties",parentData:e,parentDataProperty:"minProperties",rootData:i})||(s=s===null?kd.errors:s.concat(kd.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"&&!Qrt(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($rt(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:Jrt.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($rt(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 Nle=w((K3r,tit)=>{"use strict";var xle=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}},Ole=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}},Ple=class extends Error{constructor(t){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Invalid "onConflict" option: "${t}".`}};tit.exports={MergeError:xle,ResolverNotFoundError:Ole,InvalidOnConflictOptionError:Ple}});var iit=w((Y3r,rit)=>{"use strict";var{dequal:Ixn}=P4(),{MergeError:Cle}=Nle();function nit(e){let t=e[0];for(let n=1;ne[n].includes(r));return t}function xxn(e,t,n){let r=nit(t);if(r.length===0)throw new Cle(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:jxn}=P4(),Qi=iit(),M4=Nle(),ait={$id:Qi.skip,type:Qi.hybridArraysIntersection,enum:Qi.arraysIntersection,minLength:Qi.maxNumber,maxLength:Qi.minNumber,minimum:Qi.maxNumber,maximum:Qi.minNumber,multipleOf:Qi.commonMultiple,exclusiveMinimum:Qi.maxNumber,exclusiveMaximum:Qi.minNumber,minItems:Qi.maxNumber,maxItems:Qi.minNumber,maxProperties:Qi.minNumber,minProperties:Qi.maxNumber,const:Qi.allEqual,default:Qi.allEqual,format:Qi.allEqual,required:Qi.arraysUnion,properties:Vxn,patternProperties:C4,additionalProperties:N4,items:Bxn,additionalItems:zxn,definitions:C4,$defs:C4,nullable:Qi.booleanAnd,oneOf:sit,anyOf:sit,allOf:Qi.arraysUnion,not:N4,if:Wxn,then:Qi.skip,else:Qi.skip,dependencies:oit,dependentRequired:oit,dependentSchemas:C4,propertyNames:N4,uniqueItems:Qi.booleanOr,contains:N4};function N4(e,t,n,r,i){n[e]=Mf(t,i)}function Hxn(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 sit(e,t,n,r,i){if(t.length===1){n[e]=t[0];return}let s=Hxn(t),o=[];for(let a of s)try{let c=Mf(a,i);c!==void 0&&o.push(c)}catch(c){if(c instanceof M4.MergeError)continue;throw c}n[e]=o}function qxn(e,t){let{items:n,additionalItems:r}=e;return Array.isArray(n)?t{"use strict";var{mergeSchemas:Yxn}=lit();function Zxn(e){return Yxn(e,{onConflict:"skip"})}dit.exports=Zxn});var pit=w((X3r,Mle)=>{"use strict";function Jxn(e,t,n,r){let i="";t.validatorSchemasIds.size>0?(i+=`const Validator = require('fast-json-stringify/lib/validator') `,i+=`const validatorState = ${JSON.stringify(r.getState())} `,i+=`const validator = Validator.restoreFromState(validatorState) `):i+=`const validator = null @@ -144,7 +144,7 @@ ${b}`),m.pop(),`{${T}}`}case"number":return isFinite(h)?String(h):t?t(h):"null"; ${i} - module.exports = ${e.toString()}(validator, serializer)`}Mle.exports=Zxn;Mle.exports.dependencies={Serializer:i4(),Validator:Ale()}});var Eit=w((X3r,iI)=>{"use strict";var{RefResolver:Jxn}=Grt(),Xxn=i4(),Qxn=Ale(),mT=Krt(),fit=Qrt(),$xn=lit(),eOn=/'/g,XM=2e4,D4="default",tOn=` + module.exports = ${e.toString()}(validator, serializer)`}Mle.exports=Jxn;Mle.exports.dependencies={Serializer:i4(),Validator:Ale()}});var Tit=w((Q3r,iI)=>{"use strict";var{RefResolver:Xxn}=Wrt(),Qxn=i4(),$xn=Ale(),mT=Zrt(),hit=eit(),eOn=fit(),tOn=/'/g,XM=2e4,D4="default",nOn=` const { asString, asNumber, @@ -157,8 +157,8 @@ const { const asInteger = serializer.asInteger.bind(serializer) -`,nOn=new Set(["floor","ceil","round","trunc"]),git=new Set(["default","json-stringify"]),QM=0;function Dle(e,t){if(!fit(e)){t?t=`"${t}" `:t="";let n=fit.errors[0],r=new Error(`${t}schema is invalid: data${n.instancePath} ${n.message}`);throw r.errors=Dle.errors,r}}function lg(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 mT(o,i,s);return o.$ref!==void 0?lg(e,a):a}function L4(e,t){let n=e.refResolver.getSchema(t,"#");return new mT(n,t,"#")}function pit(e,t){return e.$id&&e.$id.charAt(0)!=="#"?e.$id:t}function $M(e,t){let n=t.getSchemaRef()||"";return n.startsWith(e.rootSchemaId)&&(n=n.replace(e.rootSchemaId,"")||"#"),n}function Ule(e,t){Dle(e),t=t||{};let n={functions:[],functionsCounter:0,functionsNamesBySchema:new Map,options:t,refResolver:new Jxn,rootSchemaId:e.$id||`__fjs_root_${QM++}`,validatorSchemasIds:new Set,mergedSchemasIds:new Map,recursiveSchemas:new Set,recursivePaths:new Set,buildingSet:new Set,uid:0},r=pit(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=pit(d,l);n.refResolver.hasSchema(f)||(Dle(d,l),n.refResolver.addSchema(d,l))}if(t.rounding&&!nOn.has(t.rounding))throw new Error(`Unsupported integer rounding method ${t.rounding}`);if(t.largeArrayMechanism)if(git.has(t.largeArrayMechanism))D4=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)))XM=d;else if(l==="number"&&Number.isInteger(t.largeArraySize))XM=t.largeArraySize;else if(l==="bigint")XM=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 mT(e,n.rootSchemaId);fOn(n,i);let s=cc(n,i,"input"),o=` - ${tOn} +`,rOn=new Set(["floor","ceil","round","trunc"]),Sit=new Set(["default","json-stringify"]),QM=0;function Dle(e,t){if(!hit(e)){t?t=`"${t}" `:t="";let n=hit.errors[0],r=new Error(`${t}schema is invalid: data${n.instancePath} ${n.message}`);throw r.errors=Dle.errors,r}}function lg(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 mT(o,i,s);return o.$ref!==void 0?lg(e,a):a}function L4(e,t){let n=e.refResolver.getSchema(t,"#");return new mT(n,t,"#")}function mit(e,t){return e.$id&&e.$id.charAt(0)!=="#"?e.$id:t}function $M(e,t){let n=t.getSchemaRef()||"";return n.startsWith(e.rootSchemaId)&&(n=n.replace(e.rootSchemaId,"")||"#"),n}function Ule(e,t){Dle(e),t=t||{};let n={functions:[],functionsCounter:0,functionsNamesBySchema:new Map,options:t,refResolver:new Xxn,rootSchemaId:e.$id||`__fjs_root_${QM++}`,validatorSchemasIds:new Set,mergedSchemasIds:new Map,recursiveSchemas:new Set,recursivePaths:new Set,buildingSet:new Set,uid:0},r=mit(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=mit(d,l);n.refResolver.hasSchema(f)||(Dle(d,l),n.refResolver.addSchema(d,l))}if(t.rounding&&!rOn.has(t.rounding))throw new Error(`Unsupported integer rounding method ${t.rounding}`);if(t.largeArrayMechanism)if(Sit.has(t.largeArrayMechanism))D4=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)))XM=d;else if(l==="number"&&Number.isInteger(t.largeArraySize))XM=t.largeArraySize;else if(l==="bigint")XM=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 mT(e,n.rootSchemaId);pOn(n,i);let s=cc(n,i,"input"),o=` + ${nOn} 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 Xxn(t),c=new Qxn(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 Qxn(t),c=new $xn(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"?dit()(u,n,a,c):u(c,a)}var rOn=["properties","required","additionalProperties","patternProperties","maxProperties","minProperties","dependencies"],iOn=["items","additionalItems","maxItems","minItems","uniqueItems","contains"],sOn=["maxLength","minLength","pattern"],oOn=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum"];function aOn(e){for(let t of rOn)if(t in e)return"object";for(let t of iOn)if(t in e)return"array";for(let t of sOn)if(t in e)return"string";for(let t of oOn)if(t in e)return"number";return e.type}function cOn(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"?pit()(u,n,a,c):u(c,a)}var iOn=["properties","required","additionalProperties","patternProperties","maxProperties","minProperties","dependencies"],sOn=["items","additionalItems","maxItems","minItems","uniqueItems","contains"],oOn=["maxLength","minLength","pattern"],aOn=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum"];function cOn(e){for(let t of iOn)if(t in e)return"object";for(let t of sOn)if(t in e)return"array";for(let t of oOn)if(t in e)return"string";for(let t of aOn)if(t in e)return"number";return e.type}function uOn(e,t,n,r){let i=t.schema,s=Object.keys(i.properties||{}),o=` for (const key of Object.keys(${r})) { if ( ${s.length>0?s.map(d=>`key === ${JSON.stringify(d)}`).join(" || ")+" ||":""} @@ -211,7 +211,7 @@ ${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode=== ${cc(e,d,"value")} `}return o+=` } - `,o}function hit(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 git(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;lLle(i,t)).join(" || ")})`)}return n}function Sit(e){return"anonymous"+e.functionsCounter++}function dOn(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=bit(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=>Lle(i,t)).join(" || ")})`)}return n}function Eit(e){return"anonymous"+e.functionsCounter++}function fOn(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=_it(e,t,n),u=a===0?"if":"else if";switch(o){case"null":s+=` ${u} (${n} === null) { ${c} } @@ -389,7 +389,7 @@ ${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode=== } `;break}}}),s+=` else throw new TypeError(\`The value of '${$M(e,t)}' does not match schema definition.\`) - `,s}function bit(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})`:` + `,s}function _it(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,19 +403,19 @@ ${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 uOn(e,t,n);case"array":return lOn(e,t,n);case void 0:return`json += JSON.stringify(${n})`;default:throw new Error(`${r.type} unsupported`)}}function fOn(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=lg(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 yOn=Eit();function _it(){return function(t,n){let r=Object.assign({},n,{schema:t});return SOn.bind(null,r)}}function SOn(e,{schema:t}){return e.schema&&t.$id&&e.schema[t.$id]&&(e.schema={...e.schema},delete e.schema[t.$id]),yOn(t,e)}function Tit(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=_it();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)}}}F4.exports.SerializerSelector=_it;F4.exports.StandaloneSerializer=Tit;F4.exports.default=Tit});var Rit=w(($3r,eD)=>{"use strict";var{SerializerSelector:Fle,StandaloneSerializer:bOn}=vit();eD.exports=Fle;eD.exports.default=Fle;eD.exports.SerializerSelector=Fle;eD.exports.StandaloneSerializer=bOn});var jle=w((e9r,Ait)=>{"use strict";var{buildSchemas:EOn}=NM();function _On(e,t){if(e)return new sI(e,t);let n=Object.assign({buildValidator:null,buildSerializer:null},t?.compilersFactory);if(!n.buildValidator){let i=_le();n.buildValidator=i()}if(!n.buildSerializer){let i=Rit();n.buildSerializer=i()}let r={bucket:t&&t.bucket||EOn,compilersFactory:n,isCustomValidatorCompiler:typeof t?.compilersFactory?.buildValidator=="function",isCustomSerializerCompiler:typeof t?.compilersFactory?.buildValidator=="function"};return new sI(void 0,r)}var sI=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))}};sI.buildSchemaController=_On;Ait.exports=sI});var tD=w((t9r,wit)=>{"use strict";var TOn="2.0.0",vOn=Number.MAX_SAFE_INTEGER||9007199254740991,ROn=16,AOn=250,wOn=["major","premajor","minor","preminor","patch","prepatch","prerelease"];wit.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:ROn,MAX_SAFE_BUILD_LENGTH:AOn,MAX_SAFE_INTEGER:vOn,RELEASE_TYPES:wOn,SEMVER_SPEC_VERSION:TOn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var nD=w((n9r,kit)=>{"use strict";var kOn=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};kit.exports=kOn});var oI=w((wh,Iit)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Hle,MAX_SAFE_BUILD_LENGTH:IOn,MAX_LENGTH:xOn}=tD(),OOn=nD();wh=Iit.exports={};var POn=wh.re=[],NOn=wh.safeRe=[],et=wh.src=[],COn=wh.safeSrc=[],tt=wh.t={},MOn=0,qle="[a-zA-Z0-9-]",DOn=[["\\s",1],["\\d",xOn],[qle,IOn]],LOn=e=>{for(let[t,n]of DOn)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e},on=(e,t,n)=>{let r=LOn(t),i=MOn++;OOn(e,i,t),tt[e]=i,et[i]=t,COn[i]=r,POn[i]=new RegExp(t,n?"g":void 0),NOn[i]=new RegExp(r,n?"g":void 0)};on("NUMERICIDENTIFIER","0|[1-9]\\d*");on("NUMERICIDENTIFIERLOOSE","\\d+");on("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${qle}*`);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",`${qle}+`);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,${Hle}})(?:\\.(\\d{1,${Hle}}))?(?:\\.(\\d{1,${Hle}}))?`);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 j4=w((r9r,xit)=>{"use strict";var UOn=Object.freeze({loose:!0}),FOn=Object.freeze({}),jOn=e=>e?typeof e!="object"?UOn:e:FOn;xit.exports=jOn});var Ble=w((i9r,Nit)=>{"use strict";var Oit=/^[0-9]+$/,Pit=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:ePit(t,e);Nit.exports={compareIdentifiers:Pit,rcompareIdentifiers:HOn}});var uc=w((s9r,Mit)=>{"use strict";var H4=nD(),{MAX_LENGTH:Cit,MAX_SAFE_INTEGER:q4}=tD(),{safeRe:B4,t:z4}=oI(),qOn=j4(),{compareIdentifiers:zle}=Ble(),Gle=class e{constructor(t,n){if(n=qOn(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>Cit)throw new TypeError(`version is longer than ${Cit} characters`);H4("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;let r=t.trim().match(n.loose?B4[z4.LOOSE]:B4[z4.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>q4||this.major<0)throw new TypeError("Invalid major version");if(this.minor>q4||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>q4||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(H4("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 zle(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(H4("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 zle(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?B4[z4.PRERELEASELOOSE]:B4[z4.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]),zle(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}};Mit.exports=Gle});var gT=w((o9r,Lit)=>{"use strict";var Dit=uc(),BOn=(e,t,n=!1)=>{if(e instanceof Dit)return e;try{return new Dit(e,t)}catch(r){if(!n)return null;throw r}};Lit.exports=BOn});var Fit=w((a9r,Uit)=>{"use strict";var zOn=gT(),GOn=(e,t)=>{let n=zOn(e,t);return n?n.version:null};Uit.exports=GOn});var Hit=w((c9r,jit)=>{"use strict";var VOn=gT(),WOn=(e,t)=>{let n=VOn(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null};jit.exports=WOn});var zit=w((u9r,Bit)=>{"use strict";var qit=uc(),KOn=(e,t,n,r,i)=>{typeof n=="string"&&(i=r,r=n,n=void 0);try{return new qit(e instanceof qit?e.version:e,n).inc(t,r,i).version}catch{return null}};Bit.exports=KOn});var Wit=w((l9r,Vit)=>{"use strict";var Git=gT(),YOn=(e,t)=>{let n=Git(e,null,!0),r=Git(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"};Vit.exports=YOn});var Yit=w((d9r,Kit)=>{"use strict";var ZOn=uc(),JOn=(e,t)=>new ZOn(e,t).major;Kit.exports=JOn});var Jit=w((f9r,Zit)=>{"use strict";var XOn=uc(),QOn=(e,t)=>new XOn(e,t).minor;Zit.exports=QOn});var Qit=w((p9r,Xit)=>{"use strict";var $On=uc(),ePn=(e,t)=>new $On(e,t).patch;Xit.exports=ePn});var est=w((h9r,$it)=>{"use strict";var tPn=gT(),nPn=(e,t)=>{let n=tPn(e,t);return n&&n.prerelease.length?n.prerelease:null};$it.exports=nPn});var Id=w((m9r,nst)=>{"use strict";var tst=uc(),rPn=(e,t,n)=>new tst(e,n).compare(new tst(t,n));nst.exports=rPn});var ist=w((g9r,rst)=>{"use strict";var iPn=Id(),sPn=(e,t,n)=>iPn(t,e,n);rst.exports=sPn});var ost=w((y9r,sst)=>{"use strict";var oPn=Id(),aPn=(e,t)=>oPn(e,t,!0);sst.exports=aPn});var G4=w((S9r,cst)=>{"use strict";var ast=uc(),cPn=(e,t,n)=>{let r=new ast(e,n),i=new ast(t,n);return r.compare(i)||r.compareBuild(i)};cst.exports=cPn});var lst=w((b9r,ust)=>{"use strict";var uPn=G4(),lPn=(e,t)=>e.sort((n,r)=>uPn(n,r,t));ust.exports=lPn});var fst=w((E9r,dst)=>{"use strict";var dPn=G4(),fPn=(e,t)=>e.sort((n,r)=>dPn(r,n,t));dst.exports=fPn});var rD=w((_9r,pst)=>{"use strict";var pPn=Id(),hPn=(e,t,n)=>pPn(e,t,n)>0;pst.exports=hPn});var V4=w((T9r,hst)=>{"use strict";var mPn=Id(),gPn=(e,t,n)=>mPn(e,t,n)<0;hst.exports=gPn});var Vle=w((v9r,mst)=>{"use strict";var yPn=Id(),SPn=(e,t,n)=>yPn(e,t,n)===0;mst.exports=SPn});var Wle=w((R9r,gst)=>{"use strict";var bPn=Id(),EPn=(e,t,n)=>bPn(e,t,n)!==0;gst.exports=EPn});var W4=w((A9r,yst)=>{"use strict";var _Pn=Id(),TPn=(e,t,n)=>_Pn(e,t,n)>=0;yst.exports=TPn});var K4=w((w9r,Sst)=>{"use strict";var vPn=Id(),RPn=(e,t,n)=>vPn(e,t,n)<=0;Sst.exports=RPn});var Kle=w((k9r,bst)=>{"use strict";var APn=Vle(),wPn=Wle(),kPn=rD(),IPn=W4(),xPn=V4(),OPn=K4(),PPn=(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 APn(e,n,r);case"!=":return wPn(e,n,r);case">":return kPn(e,n,r);case">=":return IPn(e,n,r);case"<":return xPn(e,n,r);case"<=":return OPn(e,n,r);default:throw new TypeError(`Invalid operator: ${t}`)}};bst.exports=PPn});var _st=w((I9r,Est)=>{"use strict";var NPn=uc(),CPn=gT(),{safeRe:Y4,t:Z4}=oI(),MPn=(e,t)=>{if(e instanceof NPn)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?Y4[Z4.COERCEFULL]:Y4[Z4.COERCE]);else{let c=t.includePrerelease?Y4[Z4.COERCERTLFULL]:Y4[Z4.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 CPn(`${r}.${i}.${s}${o}${a}`,t)};Est.exports=MPn});var vst=w((x9r,Tst)=>{"use strict";var Yle=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}};Tst.exports=Yle});var xd=w((O9r,kst)=>{"use strict";var DPn=/\s+/g,Zle=class e{constructor(t,n){if(n=UPn(n),t instanceof e)return t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease?t:new e(t.raw,n);if(t instanceof Jle)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(DPn," "),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=>!Ast(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&&GPn(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&&BPn)|(this.options.loose&&zPn))+":"+t,i=Rst.get(r);if(i)return i;let s=this.options.loose,o=s?Wc[lc.HYPHENRANGELOOSE]:Wc[lc.HYPHENRANGE];t=t.replace(o,eNn(this.options.includePrerelease)),Ei("hyphen replace",t),t=t.replace(Wc[lc.COMPARATORTRIM],jPn),Ei("comparator trim",t),t=t.replace(Wc[lc.TILDETRIM],HPn),Ei("tilde trim",t),t=t.replace(Wc[lc.CARETTRIM],qPn),Ei("caret trim",t);let a=t.split(" ").map(d=>VPn(d,this.options)).join(" ").split(/\s+/).map(d=>$Pn(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 Jle(d,this.options));for(let d of u){if(Ast(d))return[d];c.set(d.value,d)}c.size>1&&c.has("")&&c.delete("");let l=[...c.values()];return Rst.set(r,l),l}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(r=>wst(r,n)&&t.set.some(i=>wst(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 FPn(t,this.options)}catch{return!1}for(let n=0;ne.value==="<0.0.0-0",GPn=e=>e.value==="",wst=(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},VPn=(e,t)=>(e=e.replace(Wc[lc.BUILD],""),Ei("comp",e,t),e=YPn(e,t),Ei("caret",e),e=WPn(e,t),Ei("tildes",e),e=JPn(e,t),Ei("xrange",e),e=QPn(e,t),Ei("stars",e),e),Kc=e=>!e||e.toLowerCase()==="x"||e==="*",WPn=(e,t)=>e.trim().split(/\s+/).map(n=>KPn(n,t)).join(" "),KPn=(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})},YPn=(e,t)=>e.trim().split(/\s+/).map(n=>ZPn(n,t)).join(" "),ZPn=(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})},JPn=(e,t)=>(Ei("replaceXRanges",e,t),e.split(/\s+/).map(n=>XPn(n,t)).join(" ")),XPn=(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})},QPn=(e,t)=>(Ei("replaceStars",e,t),e.trim().replace(Wc[lc.STAR],"")),$Pn=(e,t)=>(Ei("replaceGTE0",e,t),e.trim().replace(Wc[t.includePrerelease?lc.GTE0PRE:lc.GTE0],"")),eNn=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()),tNn=(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 iD=w((P9r,Cst)=>{"use strict";var sD=Symbol("SemVer ANY"),$le=class e{static get ANY(){return sD}constructor(t,n){if(n=Ist(n),t instanceof e){if(t.loose===!!n.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),Qle("comparator",t,n),this.options=n,this.loose=!!n.loose,this.parse(t),this.semver===sD?this.value="":this.value=this.operator+this.semver.version,Qle("comp",this)}parse(t){let n=this.options.loose?xst[Ost.COMPARATORLOOSE]:xst[Ost.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 Pst(r[2],this.options.loose):this.semver=sD}toString(){return this.value}test(t){if(Qle("Comparator.test",t,this.options.loose),this.semver===sD||t===sD)return!0;if(typeof t=="string")try{t=new Pst(t,this.options)}catch{return!1}return Xle(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 Nst(t.value,n).test(this.value):t.operator===""?t.value===""?!0:new Nst(this.value,n).test(t.semver):(n=Ist(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("=")||Xle(this.semver,"<",t.semver,n)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||Xle(this.semver,">",t.semver,n)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};Cst.exports=$le;var Ist=j4(),{safeRe:xst,t:Ost}=oI(),Xle=Kle(),Qle=nD(),Pst=uc(),Nst=xd()});var oD=w((N9r,Mst)=>{"use strict";var nNn=xd(),rNn=(e,t,n)=>{try{t=new nNn(t,n)}catch{return!1}return t.test(e)};Mst.exports=rNn});var Lst=w((C9r,Dst)=>{"use strict";var iNn=xd(),sNn=(e,t)=>new iNn(e,t).set.map(n=>n.map(r=>r.value).join(" ").trim().split(" "));Dst.exports=sNn});var Fst=w((M9r,Ust)=>{"use strict";var oNn=uc(),aNn=xd(),cNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new aNn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===-1)&&(r=o,i=new oNn(r,n))}),r};Ust.exports=cNn});var Hst=w((D9r,jst)=>{"use strict";var uNn=uc(),lNn=xd(),dNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new lNn(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};jst.exports=dNn});var zst=w((L9r,Bst)=>{"use strict";var ede=uc(),fNn=xd(),qst=rD(),pNn=(e,t)=>{e=new fNn(e,t);let n=new ede("0.0.0");if(e.test(n)||(n=new ede("0.0.0-0"),e.test(n)))return n;n=null;for(let r=0;r{let a=new ede(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||qst(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!n||qst(n,s))&&(n=s)}return n&&e.test(n)?n:null};Bst.exports=pNn});var Vst=w((U9r,Gst)=>{"use strict";var hNn=xd(),mNn=(e,t)=>{try{return new hNn(e,t).range||"*"}catch{return null}};Gst.exports=mNn});var J4=w((F9r,Zst)=>{"use strict";var gNn=uc(),Yst=iD(),{ANY:yNn}=Yst,SNn=xd(),bNn=oD(),Wst=rD(),Kst=V4(),ENn=K4(),_Nn=W4(),TNn=(e,t,n,r)=>{e=new gNn(e,r),t=new SNn(t,r);let i,s,o,a,c;switch(n){case">":i=Wst,s=ENn,o=Kst,a=">",c=">=";break;case"<":i=Kst,s=_Nn,o=Wst,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(bNn(e,t,r))return!1;for(let u=0;u{p.semver===yNn&&(p=new Yst(">=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};Zst.exports=TNn});var Xst=w((j9r,Jst)=>{"use strict";var vNn=J4(),RNn=(e,t,n)=>vNn(e,t,">",n);Jst.exports=RNn});var $st=w((H9r,Qst)=>{"use strict";var ANn=J4(),wNn=(e,t,n)=>ANn(e,t,"<",n);Qst.exports=wNn});var not=w((q9r,tot)=>{"use strict";var eot=xd(),kNn=(e,t,n)=>(e=new eot(e,n),t=new eot(t,n),e.intersects(t,n));tot.exports=kNn});var iot=w((B9r,rot)=>{"use strict";var INn=oD(),xNn=Id();rot.exports=(e,t,n)=>{let r=[],i=null,s=null,o=e.sort((l,d)=>xNn(l,d,n));for(let l of o)INn(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 sot=xd(),nde=iD(),{ANY:tde}=nde,aD=oD(),rde=Id(),ONn=(e,t,n={})=>{if(e===t)return!0;e=new sot(e,n),t=new sot(t,n);let r=!1;e:for(let i of e.set){for(let s of t.set){let o=NNn(i,s,n);if(r=r||o!==null,o)continue e}if(r)return!1}return!0},PNn=[new nde(">=0.0.0-0")],oot=[new nde(">=0.0.0")],NNn=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===tde){if(t.length===1&&t[0].semver===tde)return!0;n.includePrerelease?e=PNn:e=oot}if(t.length===1&&t[0].semver===tde){if(n.includePrerelease)return!0;t=oot}let r=new Set,i,s;for(let p of e)p.operator===">"||p.operator===">="?i=aot(i,p,n):p.operator==="<"||p.operator==="<="?s=cot(s,p,n):r.add(p.semver);if(r.size>1)return null;let o;if(i&&s){if(o=rde(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&&!aD(p,String(i),n)||s&&!aD(p,String(s),n))return null;for(let h of t)if(!aD(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=aot(i,p,n),a===p&&a!==i)return!1}else if(i.operator===">="&&!aD(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=cot(s,p,n),c===p&&c!==s)return!1}else if(s.operator==="<="&&!aD(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)},aot=(e,t,n)=>{if(!e)return t;let r=rde(e.semver,t.semver,n);return r>0?e:r<0||t.operator===">"&&e.operator===">="?t:e},cot=(e,t,n)=>{if(!e)return t;let r=rde(e.semver,t.semver,n);return r<0?e:r>0||t.operator==="<"&&e.operator==="<="?t:e};uot.exports=ONn});var hot=w((G9r,pot)=>{"use strict";var ide=oI(),dot=tD(),CNn=uc(),fot=Ble(),MNn=gT(),DNn=Fit(),LNn=Hit(),UNn=zit(),FNn=Wit(),jNn=Yit(),HNn=Jit(),qNn=Qit(),BNn=est(),zNn=Id(),GNn=ist(),VNn=ost(),WNn=G4(),KNn=lst(),YNn=fst(),ZNn=rD(),JNn=V4(),XNn=Vle(),QNn=Wle(),$Nn=W4(),eCn=K4(),tCn=Kle(),nCn=_st(),rCn=iD(),iCn=xd(),sCn=oD(),oCn=Lst(),aCn=Fst(),cCn=Hst(),uCn=zst(),lCn=Vst(),dCn=J4(),fCn=Xst(),pCn=$st(),hCn=not(),mCn=iot(),gCn=lot();pot.exports={parse:MNn,valid:DNn,clean:LNn,inc:UNn,diff:FNn,major:jNn,minor:HNn,patch:qNn,prerelease:BNn,compare:zNn,rcompare:GNn,compareLoose:VNn,compareBuild:WNn,sort:KNn,rsort:YNn,gt:ZNn,lt:JNn,eq:XNn,neq:QNn,gte:$Nn,lte:eCn,cmp:tCn,coerce:nCn,Comparator:rCn,Range:iCn,satisfies:sCn,toComparators:oCn,maxSatisfying:aCn,minSatisfying:cCn,minVersion:uCn,validRange:lCn,outside:dCn,gtr:fCn,ltr:pCn,intersects:hCn,simplifyRange:mCn,subset:gCn,SemVer:CNn,re:ide.re,src:ide.src,tokens:ide.t,SEMVER_SPEC_VERSION:dot.SEMVER_SPEC_VERSION,RELEASE_TYPES:dot.RELEASE_TYPES,compareIdentifiers:fot.compareIdentifiers,rcompareIdentifiers:fot.rcompareIdentifiers}});var lde=w((V9r,ude)=>{"use strict";var sde=hot(),ade=Y("node:assert"),cde=Symbol.for("registered-plugin"),{kTestInternals:yCn}=$s(),{exist:SCn,existReply:bCn,existRequest:ECn}=LM(),{FST_ERR_PLUGIN_VERSION_MISMATCH:_Cn,FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:TCn,FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:vCn}=Ko(),RCn=/-(?:rc|pre|alpha).+$/u;function cD(e){return e[Symbol.for("plugin-meta")]}function mot(e){let t=got(e);if(t)return t;let n=Y.cache;if(n){let r=Object.keys(n);for(let i=0;it.trim()).join(" -- ")}function got(e){return e[Symbol.for("fastify.display-name")]}function yot(e){return!!e[Symbol.for("skip-override")]}function Sot(e){let t=cD(e);if(!t)return;let n=t.dependencies;n&&(ade(Array.isArray(n),"The dependencies should be an array of strings"),n.forEach(r=>{ade(this[cde].indexOf(r)>-1,`The dependency '${r}' of plugin '${t.name}' is not registered`)}))}function bot(e){let t=cD(e);if(!t)return;let{decorators:n,name:r}=t;n&&(n.fastify&&ode(this,"Fastify",n.fastify,r),n.reply&&ode(this,"Reply",n.reply,r),n.request&&ode(this,"Request",n.request,r))}var wCn={Fastify:SCn,Request:ECn,Reply:bCn};function ode(e,t,n,r){ade(Array.isArray(n),"The decorators should be an array of strings"),n.forEach(i=>{let s=typeof r=="string"?` required by '${r}'`:"";if(!wCn[t].call(e,i))throw new TCn(i,s,t)})}function kCn(e){let t=cD(e);if(t?.fastify==null)return;let n=t.fastify,r=RCn.test(this.version);if(!(r===!0&&sde.gt(this.version,sde.coerce(n))===!0)&&n&&sde.satisfies(this.version,n,{includePrerelease:r})===!1)throw new _Cn(t.name,n,this.version)}function ICn(e){let t=cD(e);if(!t)return;let n=t.name;if(n)return this[cde].push(n),n}function xCn(e,t){if(e.constructor.name==="AsyncFunction"&&e.length===3)throw new vCn(t)}function OCn(e){let t=ICn.call(this,e)||mot(e);return xCn.call(this,e,t),kCn.call(this,e),bot.call(this,e),Sot.call(this,e),yot(e)}ude.exports={getPluginName:mot,getFuncPreview:ACn,kRegisteredPlugins:cde,getDisplayName:got,registerPlugin:OCn};ude.exports[yCn]={shouldSkipOverride:yot,getMeta:cD,checkDecorators:bot,checkDependencies:Sot}});var X4=w((K9r,Eot)=>{"use strict";function PCn(e,t){let n=t||CCn();return e?MCn(e,n):n}function NCn(e,t){return e.genReqId(t)}function CCn(){let t=0;return function(){return t=t+1&2147483647,`req-${t.toString(36)}`}}function MCn(e,t){return function(n){return n.headers[e]||t(n)}}Eot.exports={getGenReqId:NCn,reqIdGenFactory:PCn}});var Rot=w((Y9r,vot)=>{"use strict";var _ot=12,DCn=0,dde=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 LCn(e){var t=e.indexOf("%");if(t===-1)return e;for(var n=e.length,r="",i=0,s=0,o=t,a=_ot;t>-1&&t>10),56320+(s&1023)),s=0,i=t+3,t=o=e.indexOf("%",i);else{if(a===DCn)return null;if(t+=3,t{"use strict";var Aot=Rot(),wot=/\+/g,kot=function(){};kot.prototype=Object.create(null);function FCn(e){let t=new kot;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(wot," ")),a&&(r=Aot(r)||r),d&&(i=e.slice(o+1,p),l&&(i=i.replace(wot," ")),c&&(i=Aot(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}Iot.exports=FCn});var Pot=w((J9r,Oot)=>{var kh=Array.from({length:256},(e,t)=>"%"+((t<16?"0":"")+t.toString(16)).toUpperCase()),jCn=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 HCn(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:fde}=Pot();function Not(e){let t=typeof e;return t==="string"?fde(e):t==="bigint"?e.toString():t==="boolean"?e?"true":"false":t==="number"&&Number.isFinite(e)?e<1e21?""+e:fde(""+e):""}function qCn(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 Dot=xot(),Lot=Mot(),Uot={parse:Dot,stringify:Lot};uD.exports=Uot;uD.exports.default=Uot;uD.exports.parse=Dot;uD.exports.stringify=Lot});var Hot=w(jot=>{"use strict";Object.defineProperty(jot,"__esModule",{value:!0})});var qot=w(lD=>{"use strict";Object.defineProperty(lD,"__esModule",{value:!0});lD.types=void 0;var BCn;(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"})(BCn=lD.types||(lD.types={}))});var zot=w(Bot=>{"use strict";Object.defineProperty(Bot,"__esModule",{value:!0})});var fg=w(dg=>{"use strict";var zCn=dg&&dg.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),pde=dg&&dg.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&zCn(t,e,n)};Object.defineProperty(dg,"__esModule",{value:!0});pde(Hot(),dg);pde(qot(),dg);pde(zot(),dg)});var Q4=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 mr=fg(),Got=()=>[{type:mr.types.RANGE,from:48,to:57}],Vot=()=>[{type:mr.types.CHAR,value:95},{type:mr.types.RANGE,from:97,to:122},{type:mr.types.RANGE,from:65,to:90},{type:mr.types.RANGE,from:48,to:57}],Wot=()=>[{type:mr.types.CHAR,value:9},{type:mr.types.CHAR,value:10},{type:mr.types.CHAR,value:11},{type:mr.types.CHAR,value:12},{type:mr.types.CHAR,value:13},{type:mr.types.CHAR,value:32},{type:mr.types.CHAR,value:160},{type:mr.types.CHAR,value:5760},{type:mr.types.RANGE,from:8192,to:8202},{type:mr.types.CHAR,value:8232},{type:mr.types.CHAR,value:8233},{type:mr.types.CHAR,value:8239},{type:mr.types.CHAR,value:8287},{type:mr.types.CHAR,value:12288},{type:mr.types.CHAR,value:65279}],GCn=()=>[{type:mr.types.CHAR,value:10},{type:mr.types.CHAR,value:13},{type:mr.types.CHAR,value:8232},{type:mr.types.CHAR,value:8233}];dc.words=()=>({type:mr.types.SET,set:Vot(),not:!1});dc.notWords=()=>({type:mr.types.SET,set:Vot(),not:!0});dc.ints=()=>({type:mr.types.SET,set:Got(),not:!1});dc.notInts=()=>({type:mr.types.SET,set:Got(),not:!0});dc.whitespace=()=>({type:mr.types.SET,set:Wot(),not:!1});dc.notWhitespace=()=>({type:mr.types.SET,set:Wot(),not:!0});dc.anyChar=()=>({type:mr.types.SET,set:GCn(),not:!0})});var Yot=w(Od=>{"use strict";var VCn=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]})),WCn=Od&&Od.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),KCn=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)&&VCn(t,e,n);return WCn(t,e),t};Object.defineProperty(Od,"__esModule",{value:!0});Od.tokenizeClass=Od.strToChars=void 0;var Kot=fg(),aI=KCn(Q4()),YCn="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?";Od.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?YCn.indexOf(a):{0:0,t:9,n:10,v:11,f:12,r:13}[c],l=String.fromCharCode(u);return/[[\]{}^$.|?*+()]/.test(l)?`\\${l}`:l})};Od.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]&&aI.words())!==null&&n!==void 0?n:l[2]&&aI.ints())!==null&&r!==void 0?r:l[3]&&aI.whitespace())!==null&&i!==void 0?i:l[4]&&aI.notWords())!==null&&s!==void 0?s:l[5]&&aI.notInts())!==null&&o!==void 0?o:l[6]&&aI.notWhitespace())!==null&&a!==void 0?a:l[7]&&{type:Kot.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:Kot.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 hde=w(Ih=>{"use strict";var ZCn=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]})),JCn=Ih&&Ih.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Xot=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)&&ZCn(t,e,n);return JCn(t,e),t};Object.defineProperty(Ih,"__esModule",{value:!0});Ih.tokenizer=void 0;var Zot=Xot(Yot()),va=fg(),yT=Xot(Q4()),XCn=/^[a-zA-Z_$]$/i,QCn=/^[a-zA-Z0-9_$]$/i,Jot=/\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=Zot.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 $Cn(a,c),r};function $Cn(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 $ot=w(fc=>{"use strict";var eMn=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]})),tMn=fc&&fc.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),nMn=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)&&eMn(t,e,n);return tMn(t,e),t};Object.defineProperty(fc,"__esModule",{value:!0});fc.NOTANYCHAR=fc.WHITESPACE=fc.WORDS=fc.INTS=void 0;var $4=nMn(Q4()),Qot=fg();function eK(e){let t={},n=0;for(let r of e)r.type===Qot.types.CHAR&&(t[r.value]=!0),r.type===Qot.types.RANGE&&(t[`${r.from}-${r.to}`]=!0),n+=1;return{lookup:()=>Object.assign({},t),len:n}}fc.INTS=eK($4.ints().set);fc.WORDS=eK($4.words().set);fc.WHITESPACE=eK($4.whitespace().set);fc.NOTANYCHAR=eK($4.anyChar().set)});var tat=w(Pd=>{"use strict";var rMn=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]})),iMn=Pd&&Pd.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),sMn=Pd&&Pd.__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)&&rMn(t,e,n);return iMn(t,e),t};Object.defineProperty(Pd,"__esModule",{value:!0});Pd.writeSetTokens=Pd.setChar=void 0;var iK=fg(),tK=sMn($ot());function rK(e){return e===94?"\\^":e===92?"\\\\":e===93?"\\]":e===45?"\\-":String.fromCharCode(e)}Pd.setChar=rK;function nK(e,{lookup:t,len:n}){if(n!==e.length)return!1;let r=t();for(let i of e){if(i.type===iK.types.SET)return!1;let s=i.type===iK.types.CHAR?i.value:`${i.from}-${i.to}`;if(r[s])r[s]=!1;else return!1}return!0}function eat(e,t=!1){if(nK(e.set,tK.INTS))return e.not?"\\D":"\\d";if(nK(e.set,tK.WORDS))return e.not?"\\W":"\\w";if(e.not&&nK(e.set,tK.NOTANYCHAR))return".";if(nK(e.set,tK.WHITESPACE))return e.not?"\\S":"\\s";let n="";for(let i=0;i{"use strict";Object.defineProperty(cI,"__esModule",{value:!0});cI.reconstruct=void 0;var sb=fg(),mde=tat(),nat=e=>e.map(cI.reconstruct).join(""),rat=e=>{if("options"in e)return e.options.map(nat).join("|");if("stack"in e)return nat(e.stack);throw new Error("options or stack must be Root or Group token")};cI.reconstruct=e=>{switch(e.type){case sb.types.ROOT:return rat(e);case sb.types.CHAR:{let t=String.fromCharCode(e.value);return(/[[\\{}$^.|?*+()]/.test(t)?"\\":"")+t}case sb.types.POSITION:return e.value==="^"||e.value==="$"?e.value:`\\${e.value}`;case sb.types.REFERENCE:return`\\${e.value}`;case sb.types.SET:return mde.writeSetTokens(e);case sb.types.GROUP:return`(${e.name?`?<${e.name}>`:e.remember?"":e.followedBy?"?=":e.notFollowedBy?"?!":"?:"}${rat(e)})`;case sb.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}}`,`${cI.reconstruct(e.value)}${r}`}case sb.types.RANGE:return`${mde.setChar(e.from)}-${mde.setChar(e.to)}`;default:throw new Error(`Invalid token type ${e}`)}}});var Sde=w((Nd,sK)=>{"use strict";var aMn=Nd&&Nd.__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]})),yde=Nd&&Nd.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&aMn(t,e,n)};Object.defineProperty(Nd,"__esModule",{value:!0});Nd.types=void 0;var iat=fg();Object.defineProperty(Nd,"types",{enumerable:!0,get:function(){return iat.types}});yde(hde(),Nd);yde(gde(),Nd);var sat=hde(),cMn=gde();yde(fg(),Nd);Nd.default=sat.tokenizer;sK.exports=sat.tokenizer;sK.exports.types=iat.types;sK.exports.reconstruct=cMn.reconstruct});var oat=w((uYr,oK)=>{"use strict";var uMn=Sde(),{types:lMn}=Sde();function bde(e,t,n){let r,i,s;if(e.type===lMn.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";aat.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 hat=w((dYr,pat)=>{"use strict";var cat=OC(),uat=aK(),lat=Symbol("treeData");function dat(e,t=""){let n="",r=Object.keys(e);for(let i=0;i{"use strict";var SOn=Tit();function vit(){return function(t,n){let r=Object.assign({},n,{schema:t});return bOn.bind(null,r)}}function bOn(e,{schema:t}){return e.schema&&t.$id&&e.schema[t.$id]&&(e.schema={...e.schema},delete e.schema[t.$id]),SOn(t,e)}function Rit(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=vit();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)}}}F4.exports.SerializerSelector=vit;F4.exports.StandaloneSerializer=Rit;F4.exports.default=Rit});var wit=w((e9r,eD)=>{"use strict";var{SerializerSelector:Fle,StandaloneSerializer:EOn}=Ait();eD.exports=Fle;eD.exports.default=Fle;eD.exports.SerializerSelector=Fle;eD.exports.StandaloneSerializer=EOn});var jle=w((t9r,kit)=>{"use strict";var{buildSchemas:_On}=NM();function TOn(e,t){if(e)return new sI(e,t);let n=Object.assign({buildValidator:null,buildSerializer:null},t?.compilersFactory);if(!n.buildValidator){let i=_le();n.buildValidator=i()}if(!n.buildSerializer){let i=wit();n.buildSerializer=i()}let r={bucket:t&&t.bucket||_On,compilersFactory:n,isCustomValidatorCompiler:typeof t?.compilersFactory?.buildValidator=="function",isCustomSerializerCompiler:typeof t?.compilersFactory?.buildValidator=="function"};return new sI(void 0,r)}var sI=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))}};sI.buildSchemaController=TOn;kit.exports=sI});var tD=w((n9r,Iit)=>{"use strict";var vOn="2.0.0",ROn=Number.MAX_SAFE_INTEGER||9007199254740991,AOn=16,wOn=250,kOn=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Iit.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:AOn,MAX_SAFE_BUILD_LENGTH:wOn,MAX_SAFE_INTEGER:ROn,RELEASE_TYPES:kOn,SEMVER_SPEC_VERSION:vOn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var nD=w((r9r,xit)=>{"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):()=>{};xit.exports=IOn});var oI=w((wh,Oit)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Hle,MAX_SAFE_BUILD_LENGTH:xOn,MAX_LENGTH:OOn}=tD(),POn=nD();wh=Oit.exports={};var NOn=wh.re=[],COn=wh.safeRe=[],et=wh.src=[],MOn=wh.safeSrc=[],tt=wh.t={},DOn=0,qle="[a-zA-Z0-9-]",LOn=[["\\s",1],["\\d",OOn],[qle,xOn]],UOn=e=>{for(let[t,n]of LOn)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e},on=(e,t,n)=>{let r=UOn(t),i=DOn++;POn(e,i,t),tt[e]=i,et[i]=t,MOn[i]=r,NOn[i]=new RegExp(t,n?"g":void 0),COn[i]=new RegExp(r,n?"g":void 0)};on("NUMERICIDENTIFIER","0|[1-9]\\d*");on("NUMERICIDENTIFIERLOOSE","\\d+");on("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${qle}*`);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",`${qle}+`);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,${Hle}})(?:\\.(\\d{1,${Hle}}))?(?:\\.(\\d{1,${Hle}}))?`);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 j4=w((i9r,Pit)=>{"use strict";var FOn=Object.freeze({loose:!0}),jOn=Object.freeze({}),HOn=e=>e?typeof e!="object"?FOn:e:jOn;Pit.exports=HOn});var Ble=w((s9r,Mit)=>{"use strict";var Nit=/^[0-9]+$/,Cit=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:eCit(t,e);Mit.exports={compareIdentifiers:Cit,rcompareIdentifiers:qOn}});var uc=w((o9r,Lit)=>{"use strict";var H4=nD(),{MAX_LENGTH:Dit,MAX_SAFE_INTEGER:q4}=tD(),{safeRe:B4,t:z4}=oI(),BOn=j4(),{compareIdentifiers:zle}=Ble(),Gle=class e{constructor(t,n){if(n=BOn(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>Dit)throw new TypeError(`version is longer than ${Dit} characters`);H4("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;let r=t.trim().match(n.loose?B4[z4.LOOSE]:B4[z4.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>q4||this.major<0)throw new TypeError("Invalid major version");if(this.minor>q4||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>q4||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(H4("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 zle(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(H4("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 zle(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?B4[z4.PRERELEASELOOSE]:B4[z4.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]),zle(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}};Lit.exports=Gle});var gT=w((a9r,Fit)=>{"use strict";var Uit=uc(),zOn=(e,t,n=!1)=>{if(e instanceof Uit)return e;try{return new Uit(e,t)}catch(r){if(!n)return null;throw r}};Fit.exports=zOn});var Hit=w((c9r,jit)=>{"use strict";var GOn=gT(),VOn=(e,t)=>{let n=GOn(e,t);return n?n.version:null};jit.exports=VOn});var Bit=w((u9r,qit)=>{"use strict";var WOn=gT(),KOn=(e,t)=>{let n=WOn(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null};qit.exports=KOn});var Vit=w((l9r,Git)=>{"use strict";var zit=uc(),YOn=(e,t,n,r,i)=>{typeof n=="string"&&(i=r,r=n,n=void 0);try{return new zit(e instanceof zit?e.version:e,n).inc(t,r,i).version}catch{return null}};Git.exports=YOn});var Yit=w((d9r,Kit)=>{"use strict";var Wit=gT(),ZOn=(e,t)=>{let n=Wit(e,null,!0),r=Wit(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"};Kit.exports=ZOn});var Jit=w((f9r,Zit)=>{"use strict";var JOn=uc(),XOn=(e,t)=>new JOn(e,t).major;Zit.exports=XOn});var Qit=w((p9r,Xit)=>{"use strict";var QOn=uc(),$On=(e,t)=>new QOn(e,t).minor;Xit.exports=$On});var est=w((h9r,$it)=>{"use strict";var ePn=uc(),tPn=(e,t)=>new ePn(e,t).patch;$it.exports=tPn});var nst=w((m9r,tst)=>{"use strict";var nPn=gT(),rPn=(e,t)=>{let n=nPn(e,t);return n&&n.prerelease.length?n.prerelease:null};tst.exports=rPn});var Id=w((g9r,ist)=>{"use strict";var rst=uc(),iPn=(e,t,n)=>new rst(e,n).compare(new rst(t,n));ist.exports=iPn});var ost=w((y9r,sst)=>{"use strict";var sPn=Id(),oPn=(e,t,n)=>sPn(t,e,n);sst.exports=oPn});var cst=w((S9r,ast)=>{"use strict";var aPn=Id(),cPn=(e,t)=>aPn(e,t,!0);ast.exports=cPn});var G4=w((b9r,lst)=>{"use strict";var ust=uc(),uPn=(e,t,n)=>{let r=new ust(e,n),i=new ust(t,n);return r.compare(i)||r.compareBuild(i)};lst.exports=uPn});var fst=w((E9r,dst)=>{"use strict";var lPn=G4(),dPn=(e,t)=>e.sort((n,r)=>lPn(n,r,t));dst.exports=dPn});var hst=w((_9r,pst)=>{"use strict";var fPn=G4(),pPn=(e,t)=>e.sort((n,r)=>fPn(r,n,t));pst.exports=pPn});var rD=w((T9r,mst)=>{"use strict";var hPn=Id(),mPn=(e,t,n)=>hPn(e,t,n)>0;mst.exports=mPn});var V4=w((v9r,gst)=>{"use strict";var gPn=Id(),yPn=(e,t,n)=>gPn(e,t,n)<0;gst.exports=yPn});var Vle=w((R9r,yst)=>{"use strict";var SPn=Id(),bPn=(e,t,n)=>SPn(e,t,n)===0;yst.exports=bPn});var Wle=w((A9r,Sst)=>{"use strict";var EPn=Id(),_Pn=(e,t,n)=>EPn(e,t,n)!==0;Sst.exports=_Pn});var W4=w((w9r,bst)=>{"use strict";var TPn=Id(),vPn=(e,t,n)=>TPn(e,t,n)>=0;bst.exports=vPn});var K4=w((k9r,Est)=>{"use strict";var RPn=Id(),APn=(e,t,n)=>RPn(e,t,n)<=0;Est.exports=APn});var Kle=w((I9r,_st)=>{"use strict";var wPn=Vle(),kPn=Wle(),IPn=rD(),xPn=W4(),OPn=V4(),PPn=K4(),NPn=(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 wPn(e,n,r);case"!=":return kPn(e,n,r);case">":return IPn(e,n,r);case">=":return xPn(e,n,r);case"<":return OPn(e,n,r);case"<=":return PPn(e,n,r);default:throw new TypeError(`Invalid operator: ${t}`)}};_st.exports=NPn});var vst=w((x9r,Tst)=>{"use strict";var CPn=uc(),MPn=gT(),{safeRe:Y4,t:Z4}=oI(),DPn=(e,t)=>{if(e instanceof CPn)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?Y4[Z4.COERCEFULL]:Y4[Z4.COERCE]);else{let c=t.includePrerelease?Y4[Z4.COERCERTLFULL]:Y4[Z4.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 MPn(`${r}.${i}.${s}${o}${a}`,t)};Tst.exports=DPn});var Ast=w((O9r,Rst)=>{"use strict";var Yle=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}};Rst.exports=Yle});var xd=w((P9r,xst)=>{"use strict";var LPn=/\s+/g,Zle=class e{constructor(t,n){if(n=FPn(n),t instanceof e)return t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease?t:new e(t.raw,n);if(t instanceof Jle)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(LPn," "),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=>!kst(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&&VPn(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&&zPn)|(this.options.loose&&GPn))+":"+t,i=wst.get(r);if(i)return i;let s=this.options.loose,o=s?Wc[lc.HYPHENRANGELOOSE]:Wc[lc.HYPHENRANGE];t=t.replace(o,tNn(this.options.includePrerelease)),Ei("hyphen replace",t),t=t.replace(Wc[lc.COMPARATORTRIM],HPn),Ei("comparator trim",t),t=t.replace(Wc[lc.TILDETRIM],qPn),Ei("tilde trim",t),t=t.replace(Wc[lc.CARETTRIM],BPn),Ei("caret trim",t);let a=t.split(" ").map(d=>WPn(d,this.options)).join(" ").split(/\s+/).map(d=>eNn(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 Jle(d,this.options));for(let d of u){if(kst(d))return[d];c.set(d.value,d)}c.size>1&&c.has("")&&c.delete("");let l=[...c.values()];return wst.set(r,l),l}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(r=>Ist(r,n)&&t.set.some(i=>Ist(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 jPn(t,this.options)}catch{return!1}for(let n=0;ne.value==="<0.0.0-0",VPn=e=>e.value==="",Ist=(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},WPn=(e,t)=>(e=e.replace(Wc[lc.BUILD],""),Ei("comp",e,t),e=ZPn(e,t),Ei("caret",e),e=KPn(e,t),Ei("tildes",e),e=XPn(e,t),Ei("xrange",e),e=$Pn(e,t),Ei("stars",e),e),Kc=e=>!e||e.toLowerCase()==="x"||e==="*",KPn=(e,t)=>e.trim().split(/\s+/).map(n=>YPn(n,t)).join(" "),YPn=(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})},ZPn=(e,t)=>e.trim().split(/\s+/).map(n=>JPn(n,t)).join(" "),JPn=(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})},XPn=(e,t)=>(Ei("replaceXRanges",e,t),e.split(/\s+/).map(n=>QPn(n,t)).join(" ")),QPn=(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})},$Pn=(e,t)=>(Ei("replaceStars",e,t),e.trim().replace(Wc[lc.STAR],"")),eNn=(e,t)=>(Ei("replaceGTE0",e,t),e.trim().replace(Wc[t.includePrerelease?lc.GTE0PRE:lc.GTE0],"")),tNn=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()),nNn=(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 iD=w((N9r,Dst)=>{"use strict";var sD=Symbol("SemVer ANY"),$le=class e{static get ANY(){return sD}constructor(t,n){if(n=Ost(n),t instanceof e){if(t.loose===!!n.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),Qle("comparator",t,n),this.options=n,this.loose=!!n.loose,this.parse(t),this.semver===sD?this.value="":this.value=this.operator+this.semver.version,Qle("comp",this)}parse(t){let n=this.options.loose?Pst[Nst.COMPARATORLOOSE]:Pst[Nst.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 Cst(r[2],this.options.loose):this.semver=sD}toString(){return this.value}test(t){if(Qle("Comparator.test",t,this.options.loose),this.semver===sD||t===sD)return!0;if(typeof t=="string")try{t=new Cst(t,this.options)}catch{return!1}return Xle(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 Mst(t.value,n).test(this.value):t.operator===""?t.value===""?!0:new Mst(this.value,n).test(t.semver):(n=Ost(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("=")||Xle(this.semver,"<",t.semver,n)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||Xle(this.semver,">",t.semver,n)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};Dst.exports=$le;var Ost=j4(),{safeRe:Pst,t:Nst}=oI(),Xle=Kle(),Qle=nD(),Cst=uc(),Mst=xd()});var oD=w((C9r,Lst)=>{"use strict";var rNn=xd(),iNn=(e,t,n)=>{try{t=new rNn(t,n)}catch{return!1}return t.test(e)};Lst.exports=iNn});var Fst=w((M9r,Ust)=>{"use strict";var sNn=xd(),oNn=(e,t)=>new sNn(e,t).set.map(n=>n.map(r=>r.value).join(" ").trim().split(" "));Ust.exports=oNn});var Hst=w((D9r,jst)=>{"use strict";var aNn=uc(),cNn=xd(),uNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new cNn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===-1)&&(r=o,i=new aNn(r,n))}),r};jst.exports=uNn});var Bst=w((L9r,qst)=>{"use strict";var lNn=uc(),dNn=xd(),fNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new dNn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===1)&&(r=o,i=new lNn(r,n))}),r};qst.exports=fNn});var Vst=w((U9r,Gst)=>{"use strict";var ede=uc(),pNn=xd(),zst=rD(),hNn=(e,t)=>{e=new pNn(e,t);let n=new ede("0.0.0");if(e.test(n)||(n=new ede("0.0.0-0"),e.test(n)))return n;n=null;for(let r=0;r{let a=new ede(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||zst(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!n||zst(n,s))&&(n=s)}return n&&e.test(n)?n:null};Gst.exports=hNn});var Kst=w((F9r,Wst)=>{"use strict";var mNn=xd(),gNn=(e,t)=>{try{return new mNn(e,t).range||"*"}catch{return null}};Wst.exports=gNn});var J4=w((j9r,Xst)=>{"use strict";var yNn=uc(),Jst=iD(),{ANY:SNn}=Jst,bNn=xd(),ENn=oD(),Yst=rD(),Zst=V4(),_Nn=K4(),TNn=W4(),vNn=(e,t,n,r)=>{e=new yNn(e,r),t=new bNn(t,r);let i,s,o,a,c;switch(n){case">":i=Yst,s=_Nn,o=Zst,a=">",c=">=";break;case"<":i=Zst,s=TNn,o=Yst,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(ENn(e,t,r))return!1;for(let u=0;u{p.semver===SNn&&(p=new Jst(">=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};Xst.exports=vNn});var $st=w((H9r,Qst)=>{"use strict";var RNn=J4(),ANn=(e,t,n)=>RNn(e,t,">",n);Qst.exports=ANn});var tot=w((q9r,eot)=>{"use strict";var wNn=J4(),kNn=(e,t,n)=>wNn(e,t,"<",n);eot.exports=kNn});var iot=w((B9r,rot)=>{"use strict";var not=xd(),INn=(e,t,n)=>(e=new not(e,n),t=new not(t,n),e.intersects(t,n));rot.exports=INn});var oot=w((z9r,sot)=>{"use strict";var xNn=oD(),ONn=Id();sot.exports=(e,t,n)=>{let r=[],i=null,s=null,o=e.sort((l,d)=>ONn(l,d,n));for(let l of o)xNn(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 aot=xd(),nde=iD(),{ANY:tde}=nde,aD=oD(),rde=Id(),PNn=(e,t,n={})=>{if(e===t)return!0;e=new aot(e,n),t=new aot(t,n);let r=!1;e:for(let i of e.set){for(let s of t.set){let o=CNn(i,s,n);if(r=r||o!==null,o)continue e}if(r)return!1}return!0},NNn=[new nde(">=0.0.0-0")],cot=[new nde(">=0.0.0")],CNn=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===tde){if(t.length===1&&t[0].semver===tde)return!0;n.includePrerelease?e=NNn:e=cot}if(t.length===1&&t[0].semver===tde){if(n.includePrerelease)return!0;t=cot}let r=new Set,i,s;for(let p of e)p.operator===">"||p.operator===">="?i=uot(i,p,n):p.operator==="<"||p.operator==="<="?s=lot(s,p,n):r.add(p.semver);if(r.size>1)return null;let o;if(i&&s){if(o=rde(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&&!aD(p,String(i),n)||s&&!aD(p,String(s),n))return null;for(let h of t)if(!aD(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=uot(i,p,n),a===p&&a!==i)return!1}else if(i.operator===">="&&!aD(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=lot(s,p,n),c===p&&c!==s)return!1}else if(s.operator==="<="&&!aD(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)},uot=(e,t,n)=>{if(!e)return t;let r=rde(e.semver,t.semver,n);return r>0?e:r<0||t.operator===">"&&e.operator===">="?t:e},lot=(e,t,n)=>{if(!e)return t;let r=rde(e.semver,t.semver,n);return r<0?e:r>0||t.operator==="<"&&e.operator==="<="?t:e};dot.exports=PNn});var got=w((V9r,mot)=>{"use strict";var ide=oI(),pot=tD(),MNn=uc(),hot=Ble(),DNn=gT(),LNn=Hit(),UNn=Bit(),FNn=Vit(),jNn=Yit(),HNn=Jit(),qNn=Qit(),BNn=est(),zNn=nst(),GNn=Id(),VNn=ost(),WNn=cst(),KNn=G4(),YNn=fst(),ZNn=hst(),JNn=rD(),XNn=V4(),QNn=Vle(),$Nn=Wle(),eCn=W4(),tCn=K4(),nCn=Kle(),rCn=vst(),iCn=iD(),sCn=xd(),oCn=oD(),aCn=Fst(),cCn=Hst(),uCn=Bst(),lCn=Vst(),dCn=Kst(),fCn=J4(),pCn=$st(),hCn=tot(),mCn=iot(),gCn=oot(),yCn=fot();mot.exports={parse:DNn,valid:LNn,clean:UNn,inc:FNn,diff:jNn,major:HNn,minor:qNn,patch:BNn,prerelease:zNn,compare:GNn,rcompare:VNn,compareLoose:WNn,compareBuild:KNn,sort:YNn,rsort:ZNn,gt:JNn,lt:XNn,eq:QNn,neq:$Nn,gte:eCn,lte:tCn,cmp:nCn,coerce:rCn,Comparator:iCn,Range:sCn,satisfies:oCn,toComparators:aCn,maxSatisfying:cCn,minSatisfying:uCn,minVersion:lCn,validRange:dCn,outside:fCn,gtr:pCn,ltr:hCn,intersects:mCn,simplifyRange:gCn,subset:yCn,SemVer:MNn,re:ide.re,src:ide.src,tokens:ide.t,SEMVER_SPEC_VERSION:pot.SEMVER_SPEC_VERSION,RELEASE_TYPES:pot.RELEASE_TYPES,compareIdentifiers:hot.compareIdentifiers,rcompareIdentifiers:hot.rcompareIdentifiers}});var lde=w((W9r,ude)=>{"use strict";var sde=got(),ade=Y("node:assert"),cde=Symbol.for("registered-plugin"),{kTestInternals:SCn}=$s(),{exist:bCn,existReply:ECn,existRequest:_Cn}=LM(),{FST_ERR_PLUGIN_VERSION_MISMATCH:TCn,FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:vCn,FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:RCn}=Ko(),ACn=/-(?:rc|pre|alpha).+$/u;function cD(e){return e[Symbol.for("plugin-meta")]}function yot(e){let t=Sot(e);if(t)return t;let n=Y.cache;if(n){let r=Object.keys(n);for(let i=0;it.trim()).join(" -- ")}function Sot(e){return e[Symbol.for("fastify.display-name")]}function bot(e){return!!e[Symbol.for("skip-override")]}function Eot(e){let t=cD(e);if(!t)return;let n=t.dependencies;n&&(ade(Array.isArray(n),"The dependencies should be an array of strings"),n.forEach(r=>{ade(this[cde].indexOf(r)>-1,`The dependency '${r}' of plugin '${t.name}' is not registered`)}))}function _ot(e){let t=cD(e);if(!t)return;let{decorators:n,name:r}=t;n&&(n.fastify&&ode(this,"Fastify",n.fastify,r),n.reply&&ode(this,"Reply",n.reply,r),n.request&&ode(this,"Request",n.request,r))}var kCn={Fastify:bCn,Request:_Cn,Reply:ECn};function ode(e,t,n,r){ade(Array.isArray(n),"The decorators should be an array of strings"),n.forEach(i=>{let s=typeof r=="string"?` required by '${r}'`:"";if(!kCn[t].call(e,i))throw new vCn(i,s,t)})}function ICn(e){let t=cD(e);if(t?.fastify==null)return;let n=t.fastify,r=ACn.test(this.version);if(!(r===!0&&sde.gt(this.version,sde.coerce(n))===!0)&&n&&sde.satisfies(this.version,n,{includePrerelease:r})===!1)throw new TCn(t.name,n,this.version)}function xCn(e){let t=cD(e);if(!t)return;let n=t.name;if(n)return this[cde].push(n),n}function OCn(e,t){if(e.constructor.name==="AsyncFunction"&&e.length===3)throw new RCn(t)}function PCn(e){let t=xCn.call(this,e)||yot(e);return OCn.call(this,e,t),ICn.call(this,e),_ot.call(this,e),Eot.call(this,e),bot(e)}ude.exports={getPluginName:yot,getFuncPreview:wCn,kRegisteredPlugins:cde,getDisplayName:Sot,registerPlugin:PCn};ude.exports[SCn]={shouldSkipOverride:bot,getMeta:cD,checkDecorators:_ot,checkDependencies:Eot}});var X4=w((Y9r,Tot)=>{"use strict";function NCn(e,t){let n=t||MCn();return e?DCn(e,n):n}function CCn(e,t){return e.genReqId(t)}function MCn(){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)}}Tot.exports={getGenReqId:CCn,reqIdGenFactory:NCn}});var wot=w((Z9r,Aot)=>{"use strict";var vot=12,LCn=0,dde=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 UCn(e){var t=e.indexOf("%");if(t===-1)return e;for(var n=e.length,r="",i=0,s=0,o=t,a=vot;t>-1&&t>10),56320+(s&1023)),s=0,i=t+3,t=o=e.indexOf("%",i);else{if(a===LCn)return null;if(t+=3,t{"use strict";var kot=wot(),Iot=/\+/g,xot=function(){};xot.prototype=Object.create(null);function jCn(e){let t=new xot;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(Iot," ")),a&&(r=kot(r)||r),d&&(i=e.slice(o+1,p),l&&(i=i.replace(Iot," ")),c&&(i=kot(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}Oot.exports=jCn});var Cot=w((X9r,Not)=>{var kh=Array.from({length:256},(e,t)=>"%"+((t<16?"0":"")+t.toString(16)).toUpperCase()),HCn=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 qCn(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:fde}=Cot();function Mot(e){let t=typeof e;return t==="string"?fde(e):t==="bigint"?e.toString():t==="boolean"?e?"true":"false":t==="number"&&Number.isFinite(e)?e<1e21?""+e:fde(""+e):""}function BCn(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 Uot=Pot(),Fot=Lot(),jot={parse:Uot,stringify:Fot};uD.exports=jot;uD.exports.default=jot;uD.exports.parse=Uot;uD.exports.stringify=Fot});var Bot=w(qot=>{"use strict";Object.defineProperty(qot,"__esModule",{value:!0})});var zot=w(lD=>{"use strict";Object.defineProperty(lD,"__esModule",{value:!0});lD.types=void 0;var zCn;(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"})(zCn=lD.types||(lD.types={}))});var Vot=w(Got=>{"use strict";Object.defineProperty(Got,"__esModule",{value:!0})});var fg=w(dg=>{"use strict";var GCn=dg&&dg.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),pde=dg&&dg.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&GCn(t,e,n)};Object.defineProperty(dg,"__esModule",{value:!0});pde(Bot(),dg);pde(zot(),dg);pde(Vot(),dg)});var Q4=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 mr=fg(),Wot=()=>[{type:mr.types.RANGE,from:48,to:57}],Kot=()=>[{type:mr.types.CHAR,value:95},{type:mr.types.RANGE,from:97,to:122},{type:mr.types.RANGE,from:65,to:90},{type:mr.types.RANGE,from:48,to:57}],Yot=()=>[{type:mr.types.CHAR,value:9},{type:mr.types.CHAR,value:10},{type:mr.types.CHAR,value:11},{type:mr.types.CHAR,value:12},{type:mr.types.CHAR,value:13},{type:mr.types.CHAR,value:32},{type:mr.types.CHAR,value:160},{type:mr.types.CHAR,value:5760},{type:mr.types.RANGE,from:8192,to:8202},{type:mr.types.CHAR,value:8232},{type:mr.types.CHAR,value:8233},{type:mr.types.CHAR,value:8239},{type:mr.types.CHAR,value:8287},{type:mr.types.CHAR,value:12288},{type:mr.types.CHAR,value:65279}],VCn=()=>[{type:mr.types.CHAR,value:10},{type:mr.types.CHAR,value:13},{type:mr.types.CHAR,value:8232},{type:mr.types.CHAR,value:8233}];dc.words=()=>({type:mr.types.SET,set:Kot(),not:!1});dc.notWords=()=>({type:mr.types.SET,set:Kot(),not:!0});dc.ints=()=>({type:mr.types.SET,set:Wot(),not:!1});dc.notInts=()=>({type:mr.types.SET,set:Wot(),not:!0});dc.whitespace=()=>({type:mr.types.SET,set:Yot(),not:!1});dc.notWhitespace=()=>({type:mr.types.SET,set:Yot(),not:!0});dc.anyChar=()=>({type:mr.types.SET,set:VCn(),not:!0})});var Jot=w(Od=>{"use strict";var WCn=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]})),KCn=Od&&Od.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),YCn=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)&&WCn(t,e,n);return KCn(t,e),t};Object.defineProperty(Od,"__esModule",{value:!0});Od.tokenizeClass=Od.strToChars=void 0;var Zot=fg(),aI=YCn(Q4()),ZCn="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?";Od.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?ZCn.indexOf(a):{0:0,t:9,n:10,v:11,f:12,r:13}[c],l=String.fromCharCode(u);return/[[\]{}^$.|?*+()]/.test(l)?`\\${l}`:l})};Od.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]&&aI.words())!==null&&n!==void 0?n:l[2]&&aI.ints())!==null&&r!==void 0?r:l[3]&&aI.whitespace())!==null&&i!==void 0?i:l[4]&&aI.notWords())!==null&&s!==void 0?s:l[5]&&aI.notInts())!==null&&o!==void 0?o:l[6]&&aI.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 hde=w(Ih=>{"use strict";var JCn=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]})),XCn=Ih&&Ih.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),$ot=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)&&JCn(t,e,n);return XCn(t,e),t};Object.defineProperty(Ih,"__esModule",{value:!0});Ih.tokenizer=void 0;var Xot=$ot(Jot()),va=fg(),yT=$ot(Q4()),QCn=/^[a-zA-Z_$]$/i,$Cn=/^[a-zA-Z0-9_$]$/i,Qot=/\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=Xot.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 eMn(a,c),r};function eMn(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 tat=w(fc=>{"use strict";var tMn=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]})),nMn=fc&&fc.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),rMn=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)&&tMn(t,e,n);return nMn(t,e),t};Object.defineProperty(fc,"__esModule",{value:!0});fc.NOTANYCHAR=fc.WHITESPACE=fc.WORDS=fc.INTS=void 0;var $4=rMn(Q4()),eat=fg();function eK(e){let t={},n=0;for(let r of e)r.type===eat.types.CHAR&&(t[r.value]=!0),r.type===eat.types.RANGE&&(t[`${r.from}-${r.to}`]=!0),n+=1;return{lookup:()=>Object.assign({},t),len:n}}fc.INTS=eK($4.ints().set);fc.WORDS=eK($4.words().set);fc.WHITESPACE=eK($4.whitespace().set);fc.NOTANYCHAR=eK($4.anyChar().set)});var rat=w(Pd=>{"use strict";var iMn=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]})),sMn=Pd&&Pd.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),oMn=Pd&&Pd.__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)&&iMn(t,e,n);return sMn(t,e),t};Object.defineProperty(Pd,"__esModule",{value:!0});Pd.writeSetTokens=Pd.setChar=void 0;var iK=fg(),tK=oMn(tat());function rK(e){return e===94?"\\^":e===92?"\\\\":e===93?"\\]":e===45?"\\-":String.fromCharCode(e)}Pd.setChar=rK;function nK(e,{lookup:t,len:n}){if(n!==e.length)return!1;let r=t();for(let i of e){if(i.type===iK.types.SET)return!1;let s=i.type===iK.types.CHAR?i.value:`${i.from}-${i.to}`;if(r[s])r[s]=!1;else return!1}return!0}function nat(e,t=!1){if(nK(e.set,tK.INTS))return e.not?"\\D":"\\d";if(nK(e.set,tK.WORDS))return e.not?"\\W":"\\w";if(e.not&&nK(e.set,tK.NOTANYCHAR))return".";if(nK(e.set,tK.WHITESPACE))return e.not?"\\S":"\\s";let n="";for(let i=0;i{"use strict";Object.defineProperty(cI,"__esModule",{value:!0});cI.reconstruct=void 0;var sb=fg(),mde=rat(),iat=e=>e.map(cI.reconstruct).join(""),sat=e=>{if("options"in e)return e.options.map(iat).join("|");if("stack"in e)return iat(e.stack);throw new Error("options or stack must be Root or Group token")};cI.reconstruct=e=>{switch(e.type){case sb.types.ROOT:return sat(e);case sb.types.CHAR:{let t=String.fromCharCode(e.value);return(/[[\\{}$^.|?*+()]/.test(t)?"\\":"")+t}case sb.types.POSITION:return e.value==="^"||e.value==="$"?e.value:`\\${e.value}`;case sb.types.REFERENCE:return`\\${e.value}`;case sb.types.SET:return mde.writeSetTokens(e);case sb.types.GROUP:return`(${e.name?`?<${e.name}>`:e.remember?"":e.followedBy?"?=":e.notFollowedBy?"?!":"?:"}${sat(e)})`;case sb.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}}`,`${cI.reconstruct(e.value)}${r}`}case sb.types.RANGE:return`${mde.setChar(e.from)}-${mde.setChar(e.to)}`;default:throw new Error(`Invalid token type ${e}`)}}});var Sde=w((Nd,sK)=>{"use strict";var cMn=Nd&&Nd.__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]})),yde=Nd&&Nd.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&cMn(t,e,n)};Object.defineProperty(Nd,"__esModule",{value:!0});Nd.types=void 0;var oat=fg();Object.defineProperty(Nd,"types",{enumerable:!0,get:function(){return oat.types}});yde(hde(),Nd);yde(gde(),Nd);var aat=hde(),uMn=gde();yde(fg(),Nd);Nd.default=aat.tokenizer;sK.exports=aat.tokenizer;sK.exports.types=oat.types;sK.exports.reconstruct=uMn.reconstruct});var cat=w((lYr,oK)=>{"use strict";var lMn=Sde(),{types:dMn}=Sde();function bde(e,t,n){let r,i,s;if(e.type===dMn.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";uat.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 gat=w((fYr,mat)=>{"use strict";var lat=OC(),dat=aK(),fat=Symbol("treeData");function pat(e,t=""){let n="",r=Object.keys(e);for(let i=0;ifat(t)):typeof e=="symbol"?e.toString():typeof e=="function"?fMn(e):e}function pMn(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(fat(a));r[o]=c}}return r}function hMn(e){let t="";for(let[n,r]of Object.entries(e))t+=` -\u2022 (${n}) ${r}`;return t}function mMn(e){let t={...e.opts.constraints},n=t[uat.name];return delete t[uat.name],{...e,method:n,opts:{constraints:t}}}function gMn(e){let t=` (${e.method})`,n=e.opts.constraints||{};return Object.keys(n).length!==0&&(t+=" "+JSON.stringify(n)),t+=hMn(e.metaData),t}function yMn(e){return e.reduce((t,n)=>{for(let r of t)if(cat(n.opts.constraints,r.opts.constraints)&&cat(n.metaData,r.metaData))return r.method+=", "+n.method,t;return t.push(n),t},[])}function SMn(e,t,n){let r=e.routes;return n.method===void 0&&(r=r.map(mMn)),r=r.map(i=>(i.metaData=pMn(i,n),i)),n.method===void 0&&(r=yMn(r)),r.map(gMn).join(` -${t}`)}function cK(e,t,n,r){if((e.isLeafNode||r.commonPrefix!==!1)&&(n=n||"(empty root node)",t=t[n]={},e.isLeafNode&&(t[lat]=SMn(e,n,r)),n=""),e.staticChildren)for(let i of Object.values(e.staticChildren))cK(i,t,n+i.prefix,r);if(e.parametricChildren)for(let i of Object.values(e.parametricChildren)){let s=Array.from(i.nodePaths).join("|");cK(i,t,n+s,r)}e.wildcardChild&&cK(e.wildcardChild,t,"*",r)}function bMn(e,t){let n={};return cK(e,n,e.prefix,t),dat(n)}pat.exports={prettyPrintTree:bMn}});var yat=w((fYr,gat)=>{"use strict";var mat=function(){};mat.prototype=Object.create(null);gat.exports={NullObject:mat}});var bat=w((pYr,Sat)=>{"use strict";var{NullObject:EMn}=yat(),_Mn=aK(),_de=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(_Mn.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;rhat(t)):typeof e=="symbol"?e.toString():typeof e=="function"?pMn(e):e}function hMn(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(hat(a));r[o]=c}}return r}function mMn(e){let t="";for(let[n,r]of Object.entries(e))t+=` +\u2022 (${n}) ${r}`;return t}function gMn(e){let t={...e.opts.constraints},n=t[dat.name];return delete t[dat.name],{...e,method:n,opts:{constraints:t}}}function yMn(e){let t=` (${e.method})`,n=e.opts.constraints||{};return Object.keys(n).length!==0&&(t+=" "+JSON.stringify(n)),t+=mMn(e.metaData),t}function SMn(e){return e.reduce((t,n)=>{for(let r of t)if(lat(n.opts.constraints,r.opts.constraints)&&lat(n.metaData,r.metaData))return r.method+=", "+n.method,t;return t.push(n),t},[])}function bMn(e,t,n){let r=e.routes;return n.method===void 0&&(r=r.map(gMn)),r=r.map(i=>(i.metaData=hMn(i,n),i)),n.method===void 0&&(r=SMn(r)),r.map(yMn).join(` +${t}`)}function cK(e,t,n,r){if((e.isLeafNode||r.commonPrefix!==!1)&&(n=n||"(empty root node)",t=t[n]={},e.isLeafNode&&(t[fat]=bMn(e,n,r)),n=""),e.staticChildren)for(let i of Object.values(e.staticChildren))cK(i,t,n+i.prefix,r);if(e.parametricChildren)for(let i of Object.values(e.parametricChildren)){let s=Array.from(i.nodePaths).join("|");cK(i,t,n+s,r)}e.wildcardChild&&cK(e.wildcardChild,t,"*",r)}function EMn(e,t){let n={};return cK(e,n,e.prefix,t),pat(n)}mat.exports={prettyPrintTree:EMn}});var bat=w((pYr,Sat)=>{"use strict";var yat=function(){};yat.prototype=Object.create(null);Sat.exports={NullObject:yat}});var _at=w((hYr,Eat)=>{"use strict";var{NullObject:_Mn}=bat(),TMn=aK(),_de=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(TMn.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 TMn=bat(),hK={STATIC:0,PARAMETRIC:1,WILDCARD:2},uK=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 TMn),this.isLeafNode=!0,this.routes.push(t),this.handlerStorage.addHandler(n,t)}},lK=class extends uK{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 fK(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 pK,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 vMn=Y("node:assert");function dD(){if(!(this instanceof dD))return new dD;this.store=new Map,this.maxMajor=0,this.maxMinors={},this.maxPatches={}}dD.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};dD.prototype.get=function(e){return this.store.get(e)};Tat.exports={name:"version",mustMatchWhenDerived:!0,storage:dD,validate(e){vMn(typeof e=="string","Version should be a string")}}});var Aat=w((gYr,Rat)=>{"use strict";var RMn=Y("node:assert");function AMn(){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)}}}Rat.exports={name:"host",mustMatchWhenDerived:!1,storage:AMn,validate(e){RMn(typeof e=="string"||Object.prototype.toString.call(e)==="[object RegExp]","Host should be a string or a RegExp")}}});var kat=w((yYr,wat)=>{"use strict";var wMn=vat(),kMn=Aat(),Tde=Y("node:assert"),vde=class{constructor(t){if(this.strategies={version:wMn,host:kMn},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(Tde(typeof t.name=="string"&&t.name!=="","strategy.name is required."),Tde(t.storage&&typeof t.storage=="function","strategy.storage function is required."),Tde(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)}};wat.exports=vde});var xat=w((SYr,Iat)=>{"use strict";var IMn=["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"];Iat.exports=IMn});var Nat=w((bYr,Pat)=>{"use strict";function Oat(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 xMn(e,t){let n=!1,r=!1,i="";for(let o=1;o{"use strict";var Ls=Y("node:assert"),PMn=Fot(),lI=oat(),wde=OC(),{prettyPrintTree:NMn}=hat(),{StaticNode:Cat,NODE_TYPES:Mat}=_at(),CMn=kat(),uI=xat(),Rde=aK(),{safeDecodeURI:Dat,safeDecodeURIComponent:Ade}=Nat(),Lat=/^https?:\/\/.*?\//,ST=/(\/:[^/()]*?)\?(\/?)/,Uat=/[.*+?^${}()|[\]\\]/g,Fat=/\/\/+/g;if(!lI(Lat))throw new Error("the FULL_PATH_REGEXP is not safe, update this module");if(!lI(ST))throw new Error("the OPTIONAL_PARAM_REGEXP is not safe, update this module");if(!lI(Uat))throw new Error("the ESCAPE_REGEXP is not safe, update this module");if(!lI(Fat))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=MMn,e.querystringParser?(Ls(typeof e.querystringParser=="function","querystringParser must be a function"),this.querystringParser=e.querystringParser):this.querystringParser=t=>t.length===0?{}:PMn.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 CMn(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(ST);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(ST,"$1$2"),l=n.replace(ST,"$2")||"/";this.on(t,u,r,i,s),this.on(t,l,r,i,s);return}let a=n;this.ignoreDuplicateSlashes&&(n=mK(n)),this.ignoreTrailingSlash&&(n=gK(n));let c=Array.isArray(t)?t:[t];for(let u of c)Ls(typeof u=="string","Method should be a string"),Ls(uI.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 Cat("/"));let a=n;if(a==="*"&&this.trees[t].prefix.length!==0){let f=this.trees[t];this.trees[t]=new Cat(""),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=qat(a,E),C=a.slice(E,N+1);this.allowUnsafeRegex||Ls(lI(new RegExp(C)),`The regex '${C}' is not safe!`),b.push(Hat(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(ST);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(ST,"$1$2"),a=n.replace(ST,"$2");this.off(t,o,r),this.off(t,a,r);return}this.ignoreDuplicateSlashes&&(n=mK(n)),this.ignoreTrailingSlash&&(n=gK(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(uI.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)||!wde(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(Lat,"/")),this.ignoreDuplicateSlashes&&(n=mK(n));let s,o,a;try{s=Dat(n,this.useSemicolonDelimiter),n=s.path,o=s.querystring,a=s.shouldDecodeParam}catch{return this._onBadUrl(n)}this.ignoreTrailingSlash&&(n=gK(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===Mat.STATIC){l+=i.prefix.length;continue}if(i.kind===Mat.WILDCARD){let y=c.slice(l);a&&(y=Ade(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=Ade(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[Rde.name]=Rde;let o=new _i({...this._opts,constraints:s}),a=this.routes.map(c=>{let u={...c.opts.constraints,[Rde.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)":NMn(n,e)};for(let e in uI){if(!uI.hasOwnProperty(e))continue;let t=uI[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(uI,e,t,n)};_i.sanitizeUrlPath=function(t,n){let r=Dat(t,n);return r.shouldDecodeParam?Ade(r.path):r.path};_i.removeDuplicateSlashes=mK;_i.trimLastSlash=gK;Bat.exports=_i;function jat(e){return e.replace(Uat,"\\$&")}function mK(e){return e.indexOf("//")!==-1?e.replace(Fat,"/"):e}function gK(e){return e.length>1&&e.charCodeAt(e.length-1)===47?e.slice(0,-1):e}function Hat(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 qat(e,t){let n=1;for(;t{"use strict";function Ide(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 DMn(e){return e==null?Ide:Array.isArray(e)?[...e,Ide]:[e,Ide]}zat.exports={parseHeadOnSendHandlers:DMn}});var lct=w((TYr,uct)=>{"use strict";var LMn=kde(),UMn=T4(),Vat=Tce(),{onRequestAbortHookRunner:FMn,lifecycleHooks:Wat,preParsingHookRunner:jMn,onTimeoutHookRunner:HMn,onRequestHookRunner:qMn}=ZS(),{normalizeSchema:BMn}=NM(),{parseHeadOnSendHandlers:zMn}=Gat(),{compileSchemasForValidation:GMn,compileSchemasForSerialization:VMn}=Sce(),{FST_ERR_SCH_VALIDATION_BUILD:WMn,FST_ERR_SCH_SERIALIZATION_BUILD:KMn,FST_ERR_DUPLICATED_ROUTE:YMn,FST_ERR_INVALID_URL:ZMn,FST_ERR_HOOK_INVALID_HANDLER:Kat,FST_ERR_ROUTE_OPTIONS_NOT_OBJ:JMn,FST_ERR_ROUTE_DUPLICATED_HANDLER:XMn,FST_ERR_ROUTE_HANDLER_NOT_FN:Yat,FST_ERR_ROUTE_MISSING_HANDLER:QMn,FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:$Mn,FST_ERR_ROUTE_METHOD_INVALID:eDn,FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:tDn,FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:nDn,FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:rDn,FST_ERR_HANDLER_TIMEOUT:iDn,FST_ERR_HOOK_INVALID_ASYNC_HANDLER:xde}=Ko(),{kRoutePrefix:sDn,kSupportedHTTPMethods:Nde,kLogLevel:oDn,kLogSerializers:Zat,kHooks:Jat,kSchemaController:aDn,kOptions:Xat,kReplySerializerDefault:Ode,kReplyIsError:act,kRequestPayloadStream:cDn,kDisableRequestLogging:Qat,kSchemaErrorFormatter:uDn,kErrorHandler:$at,kHasBeenDecorated:ect,kRequestAcceptVersion:Pde,kRouteByFastify:lDn,kRouteContext:tct,kRequestSignal:dDn,kTimeoutTimer:nct,kOnAbort:fDn}=$s(),{buildErrorHandler:pDn}=CM(),{createChildLogger:hDn}=PM(),{getGenReqId:mDn}=X4(),{FSTDEP022:gDn}=Lk(),rct=["allowUnsafeRegex","buildPrettyMeta","caseSensitive","constraints","defaultRoute","ignoreDuplicateSlashes","ignoreTrailingSlash","maxParamLength","onBadUrl","querystringParser","useSemicolonDelimiter"];function yDn(e){let t=LMn(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 ZMn(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 JMn(A,x);if(k.handler)throw typeof k.handler=="function"?new XMn(A,x):new Yat(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 QMn(k.method,P);if(k.errorHandler!==void 0&&typeof k.errorHandler!="function")throw new Yat(k.method,P);cct(k.bodyLimit),EDn(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[oDn],(this[Zat]||k.logSerializers)&&(k.logSerializers=Object.assign(Object.create(this[Zat]),k.logSerializers)),k.attachValidation==null&&(k.attachValidation=!1),Q===!1)for(let K of this[Jat].onRoute)K.call(this,k);for(let K of Wat)if(k&&K in k){if(Array.isArray(k[K]))for(let ee of k[K]){if(typeof ee!="function")throw new Kat(K,Object.prototype.toString.call(ee));if(K==="onSend"||K==="preSerialization"||K==="onError"||K==="preParsing"){if(ee.constructor.name==="AsyncFunction"&&ee.length===4)throw new xde}else if(K==="onRequestAbort"){if(ee.constructor.name==="AsyncFunction"&&ee.length!==1)throw new xde}else if(ee.constructor.name==="AsyncFunction"&&ee.length===3)throw new xde}else if(k[K]!==void 0&&typeof k[K]!="function")throw new Kat(K,Object.prototype.toString.call(k[K]))}let V=k.constraints||{},U={...k.config,url:F,method:k.method},M=new UMn({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[Ode],validatorCompiler:k.validatorCompiler,serializerCompiler:k.serializerCompiler,exposeHeadRoute:N,prefixTrailingSlash:k.prefixTrailingSlash||"both",server:this,isFastify:B,handlerTimeout:k.handlerTimeout}),H=t.findRoute("HEAD",k.url,V)!==null;try{t.on(k.method,k.url,{constraints:V},R,M)}catch(K){if(!M[lDn])throw K.message.includes(`Method '${k.method}' already declared for route`)?new YMn(k.method,k.url):K}if(this.after((K,ee)=>{M.errorHandler=k.errorHandler?pDn(this[$at],k.errorHandler):this[$at],M._parserOptions.limit=k.bodyLimit||null,M.logLevel=k.logLevel,M.logSerializers=k.logSerializers,M.attachValidation=k.attachValidation,M[Ode]=this[Ode],M.schemaErrorFormatter=k.schemaErrorFormatter||this[uDn]||M.schemaErrorFormatter,n.once("preReady",()=>{for(let se of Wat){let Le=this[Jat][se].concat(k[se]||[]).map(Ae=>Ae.bind(this));M[se]=Le.length?Le:null}for(;!M.Request[ect]&&M.Request.parent;)M.Request=M.Request.parent;for(;!M.Reply[ect]&&M.Reply.parent;)M.Reply=M.Reply.parent;if(r.setContext(this,M),k.schema){M.schema=BMn(M.schema,this.initialConfig);let se=this[aDn],Le=k.schema.body||k.schema.headers||k.schema.querystring||k.schema.params;!k.validatorCompiler&&Le&&se.setupValidator(this[Xat]);try{let Ae=typeof k?.validatorCompiler=="function"||se.isCustomValidatorCompiler;GMn(M,k.validatorCompiler||se.validatorCompiler,Ae)}catch(Ae){throw new WMn(k.method,F,Ae.message)}k.schema.response&&!k.serializerCompiler&&se.setupSerializer(this[Xat]);try{VMn(M,k.serializerCompiler||se.serializerCompiler)}catch(Ae){throw new KMn(k.method,F,Ae.message)}}}),ee(K)}),N&&C&&!L&&!H){let K=zMn(G.onSend);S.call(this,{method:"HEAD",url:q,options:{...G,onSend:K},isFastify:!0})}}}function R(A,x,k,P,N){let C=mDn(P.server,A),L={level:P.logLevel};P.logSerializers&&(L.serializers=P.logSerializers);let G=hDn(P,i,A,C,L);if(G[Qat]=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",TDn.bind({keepAliveConnections:h,socket:A.socket}))),A.headers[Pde]!==void 0&&(A.headers["accept-version"]=A.headers[Pde],A.headers[Pde]=void 0);let $=new P.Request(C,k,A,N,G,P),q=new P.Reply(x,$,G),Q=u?u($):c;G[Qat]=Q,Q===!1&&G.info({req:$},"incoming request");let B=P.handlerTimeout;if(B>0){let F=new AbortController;$[dDn]=F,$[nct]=setTimeout(()=>{if(!q.sent){let U=new iDn(B,P.config?.url);F.abort(U),q[act]=!0,q.send(U)}},B);let V=()=>{F.signal.aborted||F.abort(),clearTimeout($[nct])};A.on("close",V),$[fDn]=V}(s===!0||P.onResponse!==null||B>0)&&o(q),P.onRequest!==null?qMn(P.onRequest,$,q,oct):oct(null,$,q),P.onRequestAbort!==null&&A.on("close",()=>{A.aborted&&FMn(P.onRequestAbort,$,SDn.bind(null,q))}),P.onTimeout!==null&&($.raw.socket._meta||$.raw.socket.on("timeout",bDn),$.raw.socket._meta={context:P,request:$,reply:q})}}function SDn(e,t){t&&e.log.error({err:t},"onRequestAborted hook failed")}function bDn(){let{context:e,request:t,reply:n}=this._meta;HMn(e.onTimeout,t,n,vDn)}function ict(e){if(typeof e!="string")throw new eDn;if(e=e.toUpperCase(),!this[Nde].bodyless.has(e)&&!this[Nde].bodywith.has(e))throw new $Mn(e);return e}function sct(e,t,n){if(this[Nde].bodyless.has(e)&&n?.body)throw new tDn(e,t)}function cct(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new nDn(e)}function EDn(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new rDn(e)}function oct(e,t,n){if(n.sent!==!0){if(e!=null){n[act]=!0,n.send(e);return}t[cDn]=t.raw,t[tct].preParsing!==null?jMn(t[tct].preParsing,t,n,Vat.bind(t.server)):Vat.call(t.server,null,t,n)}}function _Dn(e,t){let n=e.routerOptions==null?Object.create(null):Object.assign(Object.create(null),e.routerOptions),r=rct.filter(i=>Object.hasOwn(e,i));r.length>0&&gDn(r.join(", "));for(let i of rct)Object.hasOwn(n,i)||(n[i]=e[i]??t[i]);return n}function TDn(){this.keepAliveConnections.delete(this.socket)}function vDn(){}uct.exports={buildRouting:yDn,validateBodyLimitOption:cct,buildRouterOptions:_Dn}});var yct=w((vYr,gct)=>{"use strict";var RDn=kde(),dct=m4(),fct=_4(),ADn=T4(),{kRoutePrefix:wDn,kCanSetNotFoundHandler:fD,kFourOhFourLevelInstance:pD,kFourOhFourContext:xh,kHooks:kDn,kErrorHandler:pct}=$s(),{lifecycleHooks:IDn}=ZS(),{buildErrorHandler:xDn}=CM(),{FST_ERR_NOT_FOUND:ODn}=Ko(),{createChildLogger:hct}=PM(),{getGenReqId:mct}=X4();function PDn(e){let{logger:t,disableRequestLogging:n}=e,r=RDn({onBadUrl:a(),defaultRoute:d}),i=null;return{router:r,setNotFoundHandler:u,setContext:c,arrange404:s};function s(f){f[pD]=f,f[fD]=!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[pD][xh],y=mct(g.server,h),b=hct(g,t,h,y),S=new fct(y,null,h,null,b,g),E=new dct(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[fD]===void 0&&(this[fD]=!0),this[xh]===void 0&&(this[xh]=null);let g=this,y=this[wDn]||"/";if(this[fD]===!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[pD][fD]=!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 ADn({schema:p.schema,handler:h,config:p.config||{},server:this});if(m.once("preReady",()=>{let b=this[xh];for(let S of IDn){let E=this[kDn][S].concat(p[S]||[]).map(_=>_.bind(this));b[S]=E.length?E:null}b.errorHandler=p.errorHandler?xDn(this[pct],p.errorHandler):this[pct]}),this[xh]!==null&&f==="/"){Object.assign(this[xh],y);return}this[pD][xh]=y,r.all(f+(f.endsWith("/")?"*":"/*"),g,y),r.all(f,g,y)}function d(f,p){let h=this[pD][xh],m=mct(h.server,f),g=hct(h,t,f,m);g.info({req:f},"incoming request");let y=new fct(m,null,f,null,g,h),b=new dct(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 ODn)}}gct.exports=PDn});var Sct=w((RYr,yK)=>{"use strict";yK.exports=Bn;yK.exports.default=Bn;var NDn={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:{}}}}}},CDn=Object.prototype.hasOwnProperty,MDn=new RegExp("idle","u");function Bn(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)CDn.call(NDn.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 Bn.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 Bn.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"&&!MDn.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++,Bn.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 Bn.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 Bn.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 Bn.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 Bn.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 Bn.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 Bn.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 H;if(H===void 0)if(U==="false"||U===0||U===null)H=!1;else if(U==="true"||U===1)H=!0;else return Bn.errors=[{instancePath:t+"/http2",schemaPath:"#/properties/http2/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;H!==void 0&&(U=H,e!==void 0&&(e.http2=H))}var a=M===o}else var a=!0;if(a){if(e.https!==void 0){let U=e.https,M=o,j=o,H=!0,K=o,ee=o,se=o,Le=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 kt={};s===null?s=[kt]:s.push(kt),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 kt={};s===null?s=[kt]:s.push(kt),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 Un={};s===null?s=[Un]:s.push(Un),o++}else{let Un=o;for(let dr in U)dr!=="allowHTTP1"&&delete U[dr];if(Un===o&&U.allowHTTP1!==void 0){let dr=U.allowHTTP1;if(typeof dr!="boolean"){let sn;if(sn===void 0)if(dr==="false"||dr===0||dr===null)sn=!1;else if(dr==="true"||dr===1)sn=!0;else{let fr={};s===null?s=[fr]:s.push(fr),o++}sn!==void 0&&(dr=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=Le,s!==null&&(Le?s.length=Le:s=null);else{let _e={};s===null?s=[_e]:s.push(_e),o++}var l=se===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=K===o;if(o=j,s!==null&&(j?s.length=j:s=null),d){let _e=o;e.https=!0;var d=_e===o;H=d}if(!H){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++,Bn.errors=s,!1}var a=M===o}else var a=!0;if(a){let U=e.ignoreTrailingSlash,M=o;if(typeof U!="boolean"){let H;if(H===void 0)if(U==="false"||U===0||U===null)H=!1;else if(U==="true"||U===1)H=!0;else return Bn.errors=[{instancePath:t+"/ignoreTrailingSlash",schemaPath:"#/properties/ignoreTrailingSlash/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;H!==void 0&&(U=H,e!==void 0&&(e.ignoreTrailingSlash=H))}var a=M===o;if(a){let H=e.ignoreDuplicateSlashes,K=o;if(typeof H!="boolean"){let se;if(se===void 0)if(H==="false"||H===0||H===null)se=!1;else if(H==="true"||H===1)se=!0;else return Bn.errors=[{instancePath:t+"/ignoreDuplicateSlashes",schemaPath:"#/properties/ignoreDuplicateSlashes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;se!==void 0&&(H=se,e!==void 0&&(e.ignoreDuplicateSlashes=se))}var a=K===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 Bn.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 de=typeof z,_e;if(_e===void 0)if(de=="number"||de=="boolean")_e=""+z;else if(z===null)_e="";else return Bn.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 de=e.onConstructorPoisoning,_e=o;if(typeof de!="string"){let Ue=typeof de,Un;if(Un===void 0)if(Ue=="number"||Ue=="boolean")Un=""+de;else if(de===null)Un="";else return Bn.errors=[{instancePath:t+"/onConstructorPoisoning",schemaPath:"#/properties/onConstructorPoisoning/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Un!==void 0&&(de=Un,e!==void 0&&(e.onConstructorPoisoning=Un))}var a=_e===o;if(a){let Ue=e.pluginTimeout,Un=o;if(!(typeof Ue=="number"&&!(Ue%1)&&!isNaN(Ue)&&isFinite(Ue))){let sn=typeof Ue,fr;if(fr===void 0)if(sn==="boolean"||Ue===null||sn==="string"&&Ue&&Ue==+Ue&&!(Ue%1))fr=+Ue;else return Bn.errors=[{instancePath:t+"/pluginTimeout",schemaPath:"#/properties/pluginTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;fr!==void 0&&(Ue=fr,e!==void 0&&(e.pluginTimeout=fr))}var a=Un===o;if(a){let sn=e.requestIdHeader,fr=o,nl=o,As=!1,lE=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=lE===o;if(As=As||f,!As){let Ii=o;if(typeof sn!="string"){let ly=typeof sn,Rr;if(Rr===void 0)if(ly=="number"||ly=="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++,Bn.errors=s,!1}var a=fr===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 Bn.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 Bn.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 Bn.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,ne=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 Bn.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=ne===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 Bn.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 Bn.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,dE;if(dE===void 0)if(Rp==="boolean"||xi===null||Rp==="string"&&xi&&xi==+xi&&!(xi%1))dE=+xi;else return Bn.errors=[{instancePath:t+"/routerOptions/maxParamLength",schemaPath:"#/properties/routerOptions/properties/maxParamLength/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;dE!==void 0&&(xi=dE,Se!==void 0&&(Se.maxParamLength=dE))}var p=vp===o;if(p){let Rp=Se.allowUnsafeRegex,dE=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 Bn.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=dE===o;if(p){let au=Se.useSemicolonDelimiter,oMt=o;if(typeof au!="boolean"){let uR;if(uR===void 0)if(au==="false"||au===0||au===null)uR=!1;else if(au==="true"||au===1)uR=!0;else return Bn.errors=[{instancePath:t+"/routerOptions/useSemicolonDelimiter",schemaPath:"#/properties/routerOptions/properties/useSemicolonDelimiter/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;uR!==void 0&&(au=uR,Se!==void 0&&(Se.useSemicolonDelimiter=uR))}var p=oMt===o}}}}}else return Bn.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 Bn.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 Hl=dn.name;if(typeof Hl!="string"){let xi=typeof Hl,vp;if(vp===void 0)if(xi=="number"||xi=="boolean")vp=""+Hl;else if(Hl===null)vp="";else return Bn.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&&(Hl=vp,dn!==void 0&&(dn.name=vp))}}}else return Bn.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 Bn.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 Bn.errors=[{instancePath:t,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;return Bn.errors=s,o===0}yK.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 bct=w((AYr,bK)=>{"use strict";var SK=Sct(),DDn=n4()({circles:!0,proto:!1}),{FST_ERR_INIT_OPTS_INVALID:LDn}=Ko();function UDn(e){let t=DDn(e);if(!SK(t)){let n=new LDn(JSON.stringify(SK.errors.map(r=>r.message)));throw n.errors=SK.errors,n}return Cde(t)}function Cde(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"?Cde(r):r)}return Object.freeze(e)}bK.exports=UDn;bK.exports.defaultInitOptions=SK.defaultInitOptions;bK.exports.utils={deepFreezeObject:Cde}});var Ict=w((wYr,kct)=>{"use strict";var{kAvvioBoot:FDn,kChildren:Ect,kRoutePrefix:_ct,kLogLevel:Tct,kLogSerializers:Mde,kHooks:Dde,kSchemaController:dI,kContentTypeParser:vct,kReply:Rct,kRequest:Act,kFourOhFour:jDn,kPluginNameChain:wct,kErrorHandlerAlreadySet:HDn}=$s(),qDn=m4(),BDn=_4(),zDn=jle(),GDn=que(),{buildHooks:VDn}=ZS(),hD=lde();kct.exports=function(t,n,r){let i=hD.registerPlugin.call(t,n),s=hD.getPluginName(n)||hD.getFuncPreview(n);if(i)return t[wct].push(s),t;let o=Object.create(t);t[Ect].push(o),o.ready=t[FDn].bind(o),o[Ect]=[],o[Rct]=qDn.buildReply(o[Rct]),o[Act]=BDn.buildRequest(o[Act]),o[vct]=GDn.helpers.buildContentTypeParser(o[vct]),o[Dde]=VDn(o[Dde]),o[_ct]=WDn(o[_ct],r.prefix),o[Tct]=r.logLevel||o[Tct],o[dI]=zDn.buildSchemaController(t[dI]),o.getSchema=o[dI].getSchema.bind(o[dI]),o.getSchemas=o[dI].getSchemas.bind(o[dI]),o[hD.kRegisteredPlugins]=Object.create(o[hD.kRegisteredPlugins]),o[wct]=[s],o[HDn]=!1,(o[Mde]||r.logSerializers)&&(o[Mde]=Object.assign(Object.create(o[Mde]),r.logSerializers)),r.prefix&&o[jDn].arrange404(o);for(let a of o[Dde].onRegister)a.call(t,o,r);return o};function WDn(e,t){return t?(e.endsWith("/")&&t[0]==="/"?t=t.slice(1):t[0]!=="/"&&(t="/"+t),e+t):e}});var Cct=w(Oh=>{"use strict";Object.defineProperty(Oh,"__esModule",{value:!0});Oh.parseCookie=Pct;Oh.parse=Pct;Oh.stringifyCookie=QDn;Oh.stringifySetCookie=EK;Oh.serialize=EK;Oh.parseSetCookie=$Dn;Oh.stringifySetCookie=EK;Oh.serialize=EK;var xct=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,Oct=/^[\u0021-\u003A\u003C-\u007E]*$/,KDn=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,YDn=/^[\u0020-\u003A\u003D-\u007E]*$/,ZDn=/^-?\d+$/,JDn=Object.prototype.toString,XDn=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function Pct(e,t){let n=new XDn,r=e.length;if(r<2)return n;let i=t?.decode||Nct,s=0;do{let o=Ude(e,s,r);if(o===-1)break;let a=Lde(e,s,r);if(o>a){s=e.lastIndexOf(";",o-1)+1;continue}let c=ob(e,s,o);n[c]===void 0&&(n[c]=i(ob(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 Nct(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function eLn(e){return JDn.call(e)==="[object Date]"}});var Dct=w((IYr,_K)=>{"use strict";var{format:Fde}=Y("node:util");function tLn(e){return Mct({...e,name:"DeprecationWarning"})}function Mct({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=Fde(n,o,a,c):o&&a?u=Fde(n,o,a):o?u=Fde(n,o):u=n,u},s}var jde={createWarning:Mct,createDeprecation:tLn};_K.exports=jde;_K.exports.default=jde;_K.exports.processWarning=jde});var Fct=w((xYr,Uct)=>{"use strict";var{URL:Lct}=Y("node:url"),Hde="http://localhost";Uct.exports=function(t,n){(typeof t=="string"||Object.prototype.toString.call(t)==="[object String]")&&t.startsWith("//")&&(t=Hde+t);let r=typeof t=="object"?Object.assign(new Lct(Hde),t):new Lct(t,Hde);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 jct=w((OYr,qde)=>{"use strict";var{randomUUID:nLn}=Y("node:crypto"),{Readable:rLn}=Y("node:stream"),fI;function iLn(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 sLn(e){fI=fI??new TextEncoder;let t=`----formdata-${nLn()}`,n=`--${t}\r +`))}};Eat.exports=_de});var vat=w((mYr,Tat)=>{"use strict";var vMn=_at(),hK={STATIC:0,PARAMETRIC:1,WILDCARD:2},uK=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 vMn),this.isLeafNode=!0,this.routes.push(t),this.handlerStorage.addHandler(n,t)}},lK=class extends uK{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 fK(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 pK,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 RMn=Y("node:assert");function dD(){if(!(this instanceof dD))return new dD;this.store=new Map,this.maxMajor=0,this.maxMinors={},this.maxPatches={}}dD.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};dD.prototype.get=function(e){return this.store.get(e)};Rat.exports={name:"version",mustMatchWhenDerived:!0,storage:dD,validate(e){RMn(typeof e=="string","Version should be a string")}}});var kat=w((yYr,wat)=>{"use strict";var AMn=Y("node:assert");function wMn(){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)}}}wat.exports={name:"host",mustMatchWhenDerived:!1,storage:wMn,validate(e){AMn(typeof e=="string"||Object.prototype.toString.call(e)==="[object RegExp]","Host should be a string or a RegExp")}}});var xat=w((SYr,Iat)=>{"use strict";var kMn=Aat(),IMn=kat(),Tde=Y("node:assert"),vde=class{constructor(t){if(this.strategies={version:kMn,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(Tde(typeof t.name=="string"&&t.name!=="","strategy.name is required."),Tde(t.storage&&typeof t.storage=="function","strategy.storage function is required."),Tde(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)}};Iat.exports=vde});var Pat=w((bYr,Oat)=>{"use strict";var xMn=["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"];Oat.exports=xMn});var Mat=w((EYr,Cat)=>{"use strict";function Nat(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=Y("node:assert"),NMn=Hot(),lI=cat(),wde=OC(),{prettyPrintTree:CMn}=gat(),{StaticNode:Dat,NODE_TYPES:Lat}=vat(),MMn=xat(),uI=Pat(),Rde=aK(),{safeDecodeURI:Uat,safeDecodeURIComponent:Ade}=Mat(),Fat=/^https?:\/\/.*?\//,ST=/(\/:[^/()]*?)\?(\/?)/,jat=/[.*+?^${}()|[\]\\]/g,Hat=/\/\/+/g;if(!lI(Fat))throw new Error("the FULL_PATH_REGEXP is not safe, update this module");if(!lI(ST))throw new Error("the OPTIONAL_PARAM_REGEXP is not safe, update this module");if(!lI(jat))throw new Error("the ESCAPE_REGEXP is not safe, update this module");if(!lI(Hat))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?{}:NMn.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 MMn(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(ST);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(ST,"$1$2"),l=n.replace(ST,"$2")||"/";this.on(t,u,r,i,s),this.on(t,l,r,i,s);return}let a=n;this.ignoreDuplicateSlashes&&(n=mK(n)),this.ignoreTrailingSlash&&(n=gK(n));let c=Array.isArray(t)?t:[t];for(let u of c)Ls(typeof u=="string","Method should be a string"),Ls(uI.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 Dat("/"));let a=n;if(a==="*"&&this.trees[t].prefix.length!==0){let f=this.trees[t];this.trees[t]=new Dat(""),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=zat(a,E),C=a.slice(E,N+1);this.allowUnsafeRegex||Ls(lI(new RegExp(C)),`The regex '${C}' is not safe!`),b.push(Bat(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(ST);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(ST,"$1$2"),a=n.replace(ST,"$2");this.off(t,o,r),this.off(t,a,r);return}this.ignoreDuplicateSlashes&&(n=mK(n)),this.ignoreTrailingSlash&&(n=gK(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(uI.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)||!wde(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(Fat,"/")),this.ignoreDuplicateSlashes&&(n=mK(n));let s,o,a;try{s=Uat(n,this.useSemicolonDelimiter),n=s.path,o=s.querystring,a=s.shouldDecodeParam}catch{return this._onBadUrl(n)}this.ignoreTrailingSlash&&(n=gK(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===Lat.STATIC){l+=i.prefix.length;continue}if(i.kind===Lat.WILDCARD){let y=c.slice(l);a&&(y=Ade(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=Ade(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[Rde.name]=Rde;let o=new _i({...this._opts,constraints:s}),a=this.routes.map(c=>{let u={...c.opts.constraints,[Rde.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)":CMn(n,e)};for(let e in uI){if(!uI.hasOwnProperty(e))continue;let t=uI[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(uI,e,t,n)};_i.sanitizeUrlPath=function(t,n){let r=Uat(t,n);return r.shouldDecodeParam?Ade(r.path):r.path};_i.removeDuplicateSlashes=mK;_i.trimLastSlash=gK;Gat.exports=_i;function qat(e){return e.replace(jat,"\\$&")}function mK(e){return e.indexOf("//")!==-1?e.replace(Hat,"/"):e}function gK(e){return e.length>1&&e.charCodeAt(e.length-1)===47?e.slice(0,-1):e}function Bat(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 zat(e,t){let n=1;for(;t{"use strict";function Ide(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 LMn(e){return e==null?Ide:Array.isArray(e)?[...e,Ide]:[e,Ide]}Vat.exports={parseHeadOnSendHandlers:LMn}});var fct=w((vYr,dct)=>{"use strict";var UMn=kde(),FMn=T4(),Kat=Tce(),{onRequestAbortHookRunner:jMn,lifecycleHooks:Yat,preParsingHookRunner:HMn,onTimeoutHookRunner:qMn,onRequestHookRunner:BMn}=ZS(),{normalizeSchema:zMn}=NM(),{parseHeadOnSendHandlers:GMn}=Wat(),{compileSchemasForValidation:VMn,compileSchemasForSerialization:WMn}=Sce(),{FST_ERR_SCH_VALIDATION_BUILD:KMn,FST_ERR_SCH_SERIALIZATION_BUILD:YMn,FST_ERR_DUPLICATED_ROUTE:ZMn,FST_ERR_INVALID_URL:JMn,FST_ERR_HOOK_INVALID_HANDLER:Zat,FST_ERR_ROUTE_OPTIONS_NOT_OBJ:XMn,FST_ERR_ROUTE_DUPLICATED_HANDLER:QMn,FST_ERR_ROUTE_HANDLER_NOT_FN:Jat,FST_ERR_ROUTE_MISSING_HANDLER:$Mn,FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:eDn,FST_ERR_ROUTE_METHOD_INVALID:tDn,FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:nDn,FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:rDn,FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:iDn,FST_ERR_HANDLER_TIMEOUT:sDn,FST_ERR_HOOK_INVALID_ASYNC_HANDLER:xde}=Ko(),{kRoutePrefix:oDn,kSupportedHTTPMethods:Nde,kLogLevel:aDn,kLogSerializers:Xat,kHooks:Qat,kSchemaController:cDn,kOptions:$at,kReplySerializerDefault:Ode,kReplyIsError:uct,kRequestPayloadStream:uDn,kDisableRequestLogging:ect,kSchemaErrorFormatter:lDn,kErrorHandler:tct,kHasBeenDecorated:nct,kRequestAcceptVersion:Pde,kRouteByFastify:dDn,kRouteContext:rct,kRequestSignal:fDn,kTimeoutTimer:ict,kOnAbort:pDn}=$s(),{buildErrorHandler:hDn}=CM(),{createChildLogger:mDn}=PM(),{getGenReqId:gDn}=X4(),{FSTDEP022:yDn}=Lk(),sct=["allowUnsafeRegex","buildPrettyMeta","caseSensitive","constraints","defaultRoute","ignoreDuplicateSlashes","ignoreTrailingSlash","maxParamLength","onBadUrl","querystringParser","useSemicolonDelimiter"];function SDn(e){let t=UMn(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 JMn(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 XMn(A,x);if(k.handler)throw typeof k.handler=="function"?new QMn(A,x):new Jat(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 $Mn(k.method,P);if(k.errorHandler!==void 0&&typeof k.errorHandler!="function")throw new Jat(k.method,P);lct(k.bodyLimit),_Dn(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[aDn],(this[Xat]||k.logSerializers)&&(k.logSerializers=Object.assign(Object.create(this[Xat]),k.logSerializers)),k.attachValidation==null&&(k.attachValidation=!1),Q===!1)for(let K of this[Qat].onRoute)K.call(this,k);for(let K of Yat)if(k&&K in k){if(Array.isArray(k[K]))for(let ee of k[K]){if(typeof ee!="function")throw new Zat(K,Object.prototype.toString.call(ee));if(K==="onSend"||K==="preSerialization"||K==="onError"||K==="preParsing"){if(ee.constructor.name==="AsyncFunction"&&ee.length===4)throw new xde}else if(K==="onRequestAbort"){if(ee.constructor.name==="AsyncFunction"&&ee.length!==1)throw new xde}else if(ee.constructor.name==="AsyncFunction"&&ee.length===3)throw new xde}else if(k[K]!==void 0&&typeof k[K]!="function")throw new Zat(K,Object.prototype.toString.call(k[K]))}let V=k.constraints||{},U={...k.config,url:F,method:k.method},M=new FMn({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[Ode],validatorCompiler:k.validatorCompiler,serializerCompiler:k.serializerCompiler,exposeHeadRoute:N,prefixTrailingSlash:k.prefixTrailingSlash||"both",server:this,isFastify:B,handlerTimeout:k.handlerTimeout}),H=t.findRoute("HEAD",k.url,V)!==null;try{t.on(k.method,k.url,{constraints:V},R,M)}catch(K){if(!M[dDn])throw K.message.includes(`Method '${k.method}' already declared for route`)?new ZMn(k.method,k.url):K}if(this.after((K,ee)=>{M.errorHandler=k.errorHandler?hDn(this[tct],k.errorHandler):this[tct],M._parserOptions.limit=k.bodyLimit||null,M.logLevel=k.logLevel,M.logSerializers=k.logSerializers,M.attachValidation=k.attachValidation,M[Ode]=this[Ode],M.schemaErrorFormatter=k.schemaErrorFormatter||this[lDn]||M.schemaErrorFormatter,n.once("preReady",()=>{for(let se of Yat){let Le=this[Qat][se].concat(k[se]||[]).map(Ae=>Ae.bind(this));M[se]=Le.length?Le:null}for(;!M.Request[nct]&&M.Request.parent;)M.Request=M.Request.parent;for(;!M.Reply[nct]&&M.Reply.parent;)M.Reply=M.Reply.parent;if(r.setContext(this,M),k.schema){M.schema=zMn(M.schema,this.initialConfig);let se=this[cDn],Le=k.schema.body||k.schema.headers||k.schema.querystring||k.schema.params;!k.validatorCompiler&&Le&&se.setupValidator(this[$at]);try{let Ae=typeof k?.validatorCompiler=="function"||se.isCustomValidatorCompiler;VMn(M,k.validatorCompiler||se.validatorCompiler,Ae)}catch(Ae){throw new KMn(k.method,F,Ae.message)}k.schema.response&&!k.serializerCompiler&&se.setupSerializer(this[$at]);try{WMn(M,k.serializerCompiler||se.serializerCompiler)}catch(Ae){throw new YMn(k.method,F,Ae.message)}}}),ee(K)}),N&&C&&!L&&!H){let K=GMn(G.onSend);S.call(this,{method:"HEAD",url:q,options:{...G,onSend:K},isFastify:!0})}}}function R(A,x,k,P,N){let C=gDn(P.server,A),L={level:P.logLevel};P.logSerializers&&(L.serializers=P.logSerializers);let G=mDn(P,i,A,C,L);if(G[ect]=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",vDn.bind({keepAliveConnections:h,socket:A.socket}))),A.headers[Pde]!==void 0&&(A.headers["accept-version"]=A.headers[Pde],A.headers[Pde]=void 0);let $=new P.Request(C,k,A,N,G,P),q=new P.Reply(x,$,G),Q=u?u($):c;G[ect]=Q,Q===!1&&G.info({req:$},"incoming request");let B=P.handlerTimeout;if(B>0){let F=new AbortController;$[fDn]=F,$[ict]=setTimeout(()=>{if(!q.sent){let U=new sDn(B,P.config?.url);F.abort(U),q[uct]=!0,q.send(U)}},B);let V=()=>{F.signal.aborted||F.abort(),clearTimeout($[ict])};A.on("close",V),$[pDn]=V}(s===!0||P.onResponse!==null||B>0)&&o(q),P.onRequest!==null?BMn(P.onRequest,$,q,cct):cct(null,$,q),P.onRequestAbort!==null&&A.on("close",()=>{A.aborted&&jMn(P.onRequestAbort,$,bDn.bind(null,q))}),P.onTimeout!==null&&($.raw.socket._meta||$.raw.socket.on("timeout",EDn),$.raw.socket._meta={context:P,request:$,reply:q})}}function bDn(e,t){t&&e.log.error({err:t},"onRequestAborted hook failed")}function EDn(){let{context:e,request:t,reply:n}=this._meta;qMn(e.onTimeout,t,n,RDn)}function oct(e){if(typeof e!="string")throw new tDn;if(e=e.toUpperCase(),!this[Nde].bodyless.has(e)&&!this[Nde].bodywith.has(e))throw new eDn(e);return e}function act(e,t,n){if(this[Nde].bodyless.has(e)&&n?.body)throw new nDn(e,t)}function lct(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new rDn(e)}function _Dn(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new iDn(e)}function cct(e,t,n){if(n.sent!==!0){if(e!=null){n[uct]=!0,n.send(e);return}t[uDn]=t.raw,t[rct].preParsing!==null?HMn(t[rct].preParsing,t,n,Kat.bind(t.server)):Kat.call(t.server,null,t,n)}}function TDn(e,t){let n=e.routerOptions==null?Object.create(null):Object.assign(Object.create(null),e.routerOptions),r=sct.filter(i=>Object.hasOwn(e,i));r.length>0&&yDn(r.join(", "));for(let i of sct)Object.hasOwn(n,i)||(n[i]=e[i]??t[i]);return n}function vDn(){this.keepAliveConnections.delete(this.socket)}function RDn(){}dct.exports={buildRouting:SDn,validateBodyLimitOption:lct,buildRouterOptions:TDn}});var bct=w((RYr,Sct)=>{"use strict";var ADn=kde(),pct=m4(),hct=_4(),wDn=T4(),{kRoutePrefix:kDn,kCanSetNotFoundHandler:fD,kFourOhFourLevelInstance:pD,kFourOhFourContext:xh,kHooks:IDn,kErrorHandler:mct}=$s(),{lifecycleHooks:xDn}=ZS(),{buildErrorHandler:ODn}=CM(),{FST_ERR_NOT_FOUND:PDn}=Ko(),{createChildLogger:gct}=PM(),{getGenReqId:yct}=X4();function NDn(e){let{logger:t,disableRequestLogging:n}=e,r=ADn({onBadUrl:a(),defaultRoute:d}),i=null;return{router:r,setNotFoundHandler:u,setContext:c,arrange404:s};function s(f){f[pD]=f,f[fD]=!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[pD][xh],y=yct(g.server,h),b=gct(g,t,h,y),S=new hct(y,null,h,null,b,g),E=new pct(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[fD]===void 0&&(this[fD]=!0),this[xh]===void 0&&(this[xh]=null);let g=this,y=this[kDn]||"/";if(this[fD]===!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[pD][fD]=!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 wDn({schema:p.schema,handler:h,config:p.config||{},server:this});if(m.once("preReady",()=>{let b=this[xh];for(let S of xDn){let E=this[IDn][S].concat(p[S]||[]).map(_=>_.bind(this));b[S]=E.length?E:null}b.errorHandler=p.errorHandler?ODn(this[mct],p.errorHandler):this[mct]}),this[xh]!==null&&f==="/"){Object.assign(this[xh],y);return}this[pD][xh]=y,r.all(f+(f.endsWith("/")?"*":"/*"),g,y),r.all(f,g,y)}function d(f,p){let h=this[pD][xh],m=yct(h.server,f),g=gct(h,t,f,m);g.info({req:f},"incoming request");let y=new hct(m,null,f,null,g,h),b=new pct(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 PDn)}}Sct.exports=NDn});var Ect=w((AYr,yK)=>{"use strict";yK.exports=Bn;yK.exports.default=Bn;var CDn={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:{}}}}}},MDn=Object.prototype.hasOwnProperty,DDn=new RegExp("idle","u");function Bn(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)MDn.call(CDn.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 Bn.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 Bn.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"&&!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&&(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++,Bn.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 Bn.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 Bn.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 Bn.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 Bn.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 Bn.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 Bn.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 H;if(H===void 0)if(U==="false"||U===0||U===null)H=!1;else if(U==="true"||U===1)H=!0;else return Bn.errors=[{instancePath:t+"/http2",schemaPath:"#/properties/http2/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;H!==void 0&&(U=H,e!==void 0&&(e.http2=H))}var a=M===o}else var a=!0;if(a){if(e.https!==void 0){let U=e.https,M=o,j=o,H=!0,K=o,ee=o,se=o,Le=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 kt={};s===null?s=[kt]:s.push(kt),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 kt={};s===null?s=[kt]:s.push(kt),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 Un={};s===null?s=[Un]:s.push(Un),o++}else{let Un=o;for(let dr in U)dr!=="allowHTTP1"&&delete U[dr];if(Un===o&&U.allowHTTP1!==void 0){let dr=U.allowHTTP1;if(typeof dr!="boolean"){let sn;if(sn===void 0)if(dr==="false"||dr===0||dr===null)sn=!1;else if(dr==="true"||dr===1)sn=!0;else{let fr={};s===null?s=[fr]:s.push(fr),o++}sn!==void 0&&(dr=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=Le,s!==null&&(Le?s.length=Le:s=null);else{let _e={};s===null?s=[_e]:s.push(_e),o++}var l=se===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=K===o;if(o=j,s!==null&&(j?s.length=j:s=null),d){let _e=o;e.https=!0;var d=_e===o;H=d}if(!H){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++,Bn.errors=s,!1}var a=M===o}else var a=!0;if(a){let U=e.ignoreTrailingSlash,M=o;if(typeof U!="boolean"){let H;if(H===void 0)if(U==="false"||U===0||U===null)H=!1;else if(U==="true"||U===1)H=!0;else return Bn.errors=[{instancePath:t+"/ignoreTrailingSlash",schemaPath:"#/properties/ignoreTrailingSlash/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;H!==void 0&&(U=H,e!==void 0&&(e.ignoreTrailingSlash=H))}var a=M===o;if(a){let H=e.ignoreDuplicateSlashes,K=o;if(typeof H!="boolean"){let se;if(se===void 0)if(H==="false"||H===0||H===null)se=!1;else if(H==="true"||H===1)se=!0;else return Bn.errors=[{instancePath:t+"/ignoreDuplicateSlashes",schemaPath:"#/properties/ignoreDuplicateSlashes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;se!==void 0&&(H=se,e!==void 0&&(e.ignoreDuplicateSlashes=se))}var a=K===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 Bn.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 de=typeof z,_e;if(_e===void 0)if(de=="number"||de=="boolean")_e=""+z;else if(z===null)_e="";else return Bn.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 de=e.onConstructorPoisoning,_e=o;if(typeof de!="string"){let Ue=typeof de,Un;if(Un===void 0)if(Ue=="number"||Ue=="boolean")Un=""+de;else if(de===null)Un="";else return Bn.errors=[{instancePath:t+"/onConstructorPoisoning",schemaPath:"#/properties/onConstructorPoisoning/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Un!==void 0&&(de=Un,e!==void 0&&(e.onConstructorPoisoning=Un))}var a=_e===o;if(a){let Ue=e.pluginTimeout,Un=o;if(!(typeof Ue=="number"&&!(Ue%1)&&!isNaN(Ue)&&isFinite(Ue))){let sn=typeof Ue,fr;if(fr===void 0)if(sn==="boolean"||Ue===null||sn==="string"&&Ue&&Ue==+Ue&&!(Ue%1))fr=+Ue;else return Bn.errors=[{instancePath:t+"/pluginTimeout",schemaPath:"#/properties/pluginTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;fr!==void 0&&(Ue=fr,e!==void 0&&(e.pluginTimeout=fr))}var a=Un===o;if(a){let sn=e.requestIdHeader,fr=o,nl=o,As=!1,lE=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=lE===o;if(As=As||f,!As){let Ii=o;if(typeof sn!="string"){let ly=typeof sn,Rr;if(Rr===void 0)if(ly=="number"||ly=="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++,Bn.errors=s,!1}var a=fr===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 Bn.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 Bn.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 Bn.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,ne=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 Bn.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=ne===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 Bn.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 Bn.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,dE;if(dE===void 0)if(Rp==="boolean"||xi===null||Rp==="string"&&xi&&xi==+xi&&!(xi%1))dE=+xi;else return Bn.errors=[{instancePath:t+"/routerOptions/maxParamLength",schemaPath:"#/properties/routerOptions/properties/maxParamLength/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;dE!==void 0&&(xi=dE,Se!==void 0&&(Se.maxParamLength=dE))}var p=vp===o;if(p){let Rp=Se.allowUnsafeRegex,dE=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 Bn.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=dE===o;if(p){let au=Se.useSemicolonDelimiter,aMt=o;if(typeof au!="boolean"){let uR;if(uR===void 0)if(au==="false"||au===0||au===null)uR=!1;else if(au==="true"||au===1)uR=!0;else return Bn.errors=[{instancePath:t+"/routerOptions/useSemicolonDelimiter",schemaPath:"#/properties/routerOptions/properties/useSemicolonDelimiter/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;uR!==void 0&&(au=uR,Se!==void 0&&(Se.useSemicolonDelimiter=uR))}var p=aMt===o}}}}}else return Bn.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 Bn.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 Hl=dn.name;if(typeof Hl!="string"){let xi=typeof Hl,vp;if(vp===void 0)if(xi=="number"||xi=="boolean")vp=""+Hl;else if(Hl===null)vp="";else return Bn.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&&(Hl=vp,dn!==void 0&&(dn.name=vp))}}}else return Bn.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 Bn.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 Bn.errors=[{instancePath:t,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;return Bn.errors=s,o===0}yK.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 _ct=w((wYr,bK)=>{"use strict";var SK=Ect(),LDn=n4()({circles:!0,proto:!1}),{FST_ERR_INIT_OPTS_INVALID:UDn}=Ko();function FDn(e){let t=LDn(e);if(!SK(t)){let n=new UDn(JSON.stringify(SK.errors.map(r=>r.message)));throw n.errors=SK.errors,n}return Cde(t)}function Cde(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"?Cde(r):r)}return Object.freeze(e)}bK.exports=FDn;bK.exports.defaultInitOptions=SK.defaultInitOptions;bK.exports.utils={deepFreezeObject:Cde}});var Oct=w((kYr,xct)=>{"use strict";var{kAvvioBoot:jDn,kChildren:Tct,kRoutePrefix:vct,kLogLevel:Rct,kLogSerializers:Mde,kHooks:Dde,kSchemaController:dI,kContentTypeParser:Act,kReply:wct,kRequest:kct,kFourOhFour:HDn,kPluginNameChain:Ict,kErrorHandlerAlreadySet:qDn}=$s(),BDn=m4(),zDn=_4(),GDn=jle(),VDn=que(),{buildHooks:WDn}=ZS(),hD=lde();xct.exports=function(t,n,r){let i=hD.registerPlugin.call(t,n),s=hD.getPluginName(n)||hD.getFuncPreview(n);if(i)return t[Ict].push(s),t;let o=Object.create(t);t[Tct].push(o),o.ready=t[jDn].bind(o),o[Tct]=[],o[wct]=BDn.buildReply(o[wct]),o[kct]=zDn.buildRequest(o[kct]),o[Act]=VDn.helpers.buildContentTypeParser(o[Act]),o[Dde]=WDn(o[Dde]),o[vct]=KDn(o[vct],r.prefix),o[Rct]=r.logLevel||o[Rct],o[dI]=GDn.buildSchemaController(t[dI]),o.getSchema=o[dI].getSchema.bind(o[dI]),o.getSchemas=o[dI].getSchemas.bind(o[dI]),o[hD.kRegisteredPlugins]=Object.create(o[hD.kRegisteredPlugins]),o[Ict]=[s],o[qDn]=!1,(o[Mde]||r.logSerializers)&&(o[Mde]=Object.assign(Object.create(o[Mde]),r.logSerializers)),r.prefix&&o[HDn].arrange404(o);for(let a of o[Dde].onRegister)a.call(t,o,r);return o};function KDn(e,t){return t?(e.endsWith("/")&&t[0]==="/"?t=t.slice(1):t[0]!=="/"&&(t="/"+t),e+t):e}});var Dct=w(Oh=>{"use strict";Object.defineProperty(Oh,"__esModule",{value:!0});Oh.parseCookie=Cct;Oh.parse=Cct;Oh.stringifyCookie=$Dn;Oh.stringifySetCookie=EK;Oh.serialize=EK;Oh.parseSetCookie=eLn;Oh.stringifySetCookie=EK;Oh.serialize=EK;var Pct=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,Nct=/^[\u0021-\u003A\u003C-\u007E]*$/,YDn=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,ZDn=/^[\u0020-\u003A\u003D-\u007E]*$/,JDn=/^-?\d+$/,XDn=Object.prototype.toString,QDn=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function Cct(e,t){let n=new QDn,r=e.length;if(r<2)return n;let i=t?.decode||Mct,s=0;do{let o=Ude(e,s,r);if(o===-1)break;let a=Lde(e,s,r);if(o>a){s=e.lastIndexOf(";",o-1)+1;continue}let c=ob(e,s,o);n[c]===void 0&&(n[c]=i(ob(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 Mct(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function tLn(e){return XDn.call(e)==="[object Date]"}});var Uct=w((xYr,_K)=>{"use strict";var{format:Fde}=Y("node:util");function nLn(e){return Lct({...e,name:"DeprecationWarning"})}function Lct({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=Fde(n,o,a,c):o&&a?u=Fde(n,o,a):o?u=Fde(n,o):u=n,u},s}var jde={createWarning:Lct,createDeprecation:nLn};_K.exports=jde;_K.exports.default=jde;_K.exports.processWarning=jde});var Hct=w((OYr,jct)=>{"use strict";var{URL:Fct}=Y("node:url"),Hde="http://localhost";jct.exports=function(t,n){(typeof t=="string"||Object.prototype.toString.call(t)==="[object String]")&&t.startsWith("//")&&(t=Hde+t);let r=typeof t=="object"?Object.assign(new Fct(Hde),t):new Fct(t,Hde);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 qct=w((PYr,qde)=>{"use strict";var{randomUUID:rLn}=Y("node:crypto"),{Readable:iLn}=Y("node:stream"),fI;function sLn(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 oLn(e){fI=fI??new TextEncoder;let t=`----formdata-${rLn()}`,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 fI.encode(`${n}; name="${r(i(c))}"\r \r @@ -464,105 +464,105 @@ Content-Disposition: form-data`;let r=c=>c.replace(/\n/g,"%0A").replace(/\r/g,"% `);else{let l=`${n}; name="${r(i(c))}"`;u.name&&(l+=`; filename="${r(u.name)}"`),l+=`\r Content-Type: ${u.type||"application/octet-stream"}\r \r -`,yield fI.encode(l),u.stream?yield*u.stream():yield u,yield s}yield fI.encode(`--${t}--`)}return{stream:rLn.from(o()),contentType:`multipart/form-data; boundary=${t}`}}qde.exports.isFormDataLike=iLn;qde.exports.formDataToStream=sLn});var Bct=w((PYr,TK)=>{"use strict";var{Readable:Hct,addAbortSignal:oLn}=Y("node:stream"),zde=Y("node:util"),aLn=Cct(),cLn=Y("node:assert"),{createDeprecation:uLn}=Dct(),lLn=Fct(),{isFormDataLike:dLn,formDataToStream:fLn}=jct(),{EventEmitter:pLn}=Y("node:events"),hLn=uLn({name:"FastifyDeprecationLightMyRequest",code:"FST_LIGHTMYREQUEST_DEP01",message:'You are accessing "request.connection", use "request.socket" instead.'});function mLn(e){return e.port?e.host:e.hostname+(e.protocol==="https:"?":443":":80")}var Bde=class extends pLn{constructor(t){super(),this.remoteAddress=t}};function qct(e){return new t(this);function t(n){ab.call(n,{...e,Request:void 0}),Object.assign(this,n);for(let r of Object.keys(ab.prototype))this.constructor.prototype[r]=ab.prototype[r];return zde.inherits(this.constructor,e.Request),this}}function ab(e){Hct.call(this,{autoDestroy:!1});let t=lLn(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];cLn(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||mLn(t),e.cookies){let{cookies:o}=e,a=Object.keys(o).map(c=>aLn.serialize(c,o[c]));this.headers.cookie&&a.unshift(this.headers.cookie),this.headers.cookie=a.join("; ")}this.socket=new Bde(e.remoteAddress||"127.0.0.1"),Object.defineProperty(this,"connection",{get(){return hLn(),this.socket},configurable:!0});let r=e.payload||e.body||null,i=r&&typeof r.resume=="function";if(dLn(r)){let o=fLn(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&&oLn(s,this);{let o=this._lightMyRequest.payload;o?._readableState?(this._read=gLn,o.on("error",a=>{this.destroy(a)}),o.on("end",()=>{this.push(null)})):this._read=yLn}return this}function gLn(){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 yLn(){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)})}zde.inherits(ab,Hct);zde.inherits(qct,ab);ab.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")))};TK.exports=ab;TK.exports.Request=ab;TK.exports.CustomRequest=qct});var Gct=w((NYr,mD)=>{"use strict";var vK={decodeValues:!0,map:!1,silent:!1};function Gde(e){return typeof e!="string"||e in{}}function Vde(){return Object.create(null)}function Wde(e){return typeof e=="string"&&!!e.trim()}function Kde(e,t){var n=e.split(";").filter(Wde),r=n.shift(),i=SLn(r),s=i.name,o=i.value;if(t=t?Object.assign({},vK,t):vK,Gde(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=Vde();return a.name=s,a.value=o,n.forEach(function(c){var u=c.split("="),l=u.shift().trimLeft().toLowerCase();if(!Gde(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 SLn(e){var t="",n="",r=e.split("=");return r.length>1?(t=r.shift(),n=r.join("=")):n=e,{name:t,value:n}}function zct(e,t){if(t=t?Object.assign({},vK,t):vK,!e)return t.map?Vde():[];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=Vde();return e.filter(Wde).reduce(function(i,s){var o=Kde(s,t);return o&&!Gde(o.name)&&(i[o.name]=o),i},r)}else return e.filter(Wde).map(function(i){return Kde(i,t)}).filter(Boolean)}function bLn(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}mD.exports=zct;mD.exports.parse=zct;mD.exports.parseString=Kde;mD.exports.splitCookiesString=bLn});var Zct=w((CYr,Yct)=>{"use strict";var gD=Y("node:http"),{Writable:ELn,Readable:Vct,addAbortSignal:_Ln}=Y("node:stream"),TLn=Y("node:util"),vLn=Gct();function cb(e,t,n){if(gD.ServerResponse.call(this,e),e._lightMyRequest?.payloadAsStream){let a=this.emit.bind(this,"drain");this._lightMyRequest={headers:null,trailers:{},stream:new Vct({read:a})};let c=e._lightMyRequest.signal;c&&_Ln(c,this._lightMyRequest.stream)}else this._lightMyRequest={headers:null,trailers:{},payloadChunks:[]};this.setHeader("foo","bar"),this.removeHeader("foo"),this.assignSocket(RLn()),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=Wct(this);a.raw.req=e,i(a)}),this.connection.once("error",o),this.once("error",o),this.once("close",o)}TLn.inherits(cb,gD.ServerResponse);cb.prototype.setTimeout=function(e,t){return this.timeoutHandle=setTimeout(()=>{this.emit("timeout")},e),this.on("timeout",t),this};cb.prototype.writeHead=function(){let e=gD.ServerResponse.prototype.writeHead.apply(this,arguments);return Kct(this),this._lightMyRequest.stream&&this._lightMyRequest.onEndSuccess(Wct(this)),e};cb.prototype.write=function(e,t,n){return this.timeoutHandle&&clearTimeout(this.timeoutHandle),gD.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)};cb.prototype.end=function(e,t,n){e&&this.write(e,t),gD.ServerResponse.prototype.end.call(this,n),this.emit("finish"),this.destroy()};cb.prototype.destroy=function(e){this.destroyed||(this.destroyed=!0,e&&process.nextTick(()=>this.emit("error",e)),process.nextTick(()=>this.emit("close")))};cb.prototype.addTrailers=function(e){for(let t in e)this._lightMyRequest.trailers[t.toLowerCase().trim()]=e[t].toString().trim()};function Wct(e){e._lightMyRequest.headers===null&&Kct(e),ALn(e);let t={raw:{res:e},headers:e._lightMyRequest.headers,statusCode:e.statusCode,statusMessage:e.statusMessage,trailers:{},get cookies(){return vLn.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:Vct.from(e._lightMyRequest.payloadChunks)},t}function RLn(){return new ELn({write(e,t,n){setImmediate(n)}})}function ALn(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 Kct(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])})}Yct.exports=cb});var Jct=w((MYr,Yde)=>{"use strict";Yde.exports=eo;Yde.exports.default=eo;var wLn={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:wLn.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 $ct=w((DYr,SD)=>{"use strict";var kLn=Y("node:assert"),Zde=Bct(),RK=Zct(),wK="The dispatch function has already been invoked",Xct=Jct();function Jde(e,t,n){return n===void 0?new yD(e,t):AK(e,t,n)}function ILn(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 Qct(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()}),ILn(n,()=>e.call(t,n,r))}function AK(e,t,n){if(t=typeof t=="string"?{url:t}:t,t.validate!==!1&&(kLn(typeof e=="function","dispatchFunc should be a function"),!Xct(t)))throw new Error(Xct.errors.map(o=>o.message));let r=t.server||{},i=t.Request?Zde.CustomRequest:Zde;if(e.request&&e.request.app===e&&(Object.setPrototypeOf(Object.getPrototypeOf(e.request),i.prototype),Object.setPrototypeOf(Object.getPrototypeOf(e.response),RK.prototype)),typeof n=="function"){let s=new i(t),o=new RK(s,n);return Qct(e,r,s,o)}else return new Promise((s,o)=>{let a=new i(t),c=new RK(a,s,o);Qct(e,r,a,c)})}function yD(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 xLn=["delete","get","head","options","patch","post","put","trace"];xLn.forEach(e=>{yD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(wK);return this.option.url=t,this.option.method=e.toUpperCase(),this}});var OLn=["body","cookies","headers","payload","query"];OLn.forEach(e=>{yD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(wK);return this.option[e]=t,this}});yD.prototype.end=function(e){if(this._hasInvoked===!0||this._promise)throw new Error(wK);if(this._hasInvoked=!0,typeof e=="function")AK(this.dispatch,this.option,e);else return this._promise=AK(this.dispatch,this.option),this._promise};Object.getOwnPropertyNames(Promise.prototype).forEach(e=>{e!=="constructor"&&(yD.prototype[e]=function(...t){if(!this._promise){if(this._hasInvoked===!0)throw new Error(wK);this._hasInvoked=!0,this._promise=AK(this.dispatch,this.option)}return this._promise[e](...t)})});function PLn(e){return e instanceof Zde||e instanceof RK||e?.constructor?.name==="_CustomLMRRequest"}SD.exports=Jde;SD.exports.default=Jde;SD.exports.inject=Jde;SD.exports.isInjection=PLn});var mut=w((LYr,vD)=>{"use strict";var NLn="5.8.5",CLn=wQe(),OK=Y("node:http"),MLn=Y("node:diagnostics_channel"),bD,{kAvvioBoot:ED,kChildren:Xde,kServerBindings:eut,kBodyLimit:DLn,kSupportedHTTPMethods:bT,kRoutePrefix:tut,kLogLevel:LLn,kLogSerializers:ULn,kHooks:Qde,kSchemaController:ub,kRequestAcceptVersion:FLn,kReplySerializerDefault:nut,kContentTypeParser:jLn,kReply:HLn,kRequest:qLn,kFourOhFour:BLn,kState:Qi,kOptions:$de,kPluginNameChain:_D,kSchemaErrorFormatter:efe,kErrorHandler:kK,kKeepAliveConnections:tfe,kChildLoggerFactory:nfe,kGenReqId:rfe,kErrorHandlerAlreadySet:IK,kHandlerTimeout:zLn}=$s(),{createServer:GLn}=e$e(),TD=m4(),xK=_4(),VLn=T4(),ET=LM(),_T=que(),rut=jle(),{Hooks:WLn,hookRunnerApplication:iut,supportedHooks:ife}=ZS(),{createChildLogger:sut,defaultChildLoggerFactory:KLn,createLogger:YLn}=PM(),out=lde(),{getGenReqId:aut,reqIdGenFactory:put}=X4(),{buildRouting:ZLn,validateBodyLimitOption:JLn,buildRouterOptions:XLn}=lct(),QLn=yct(),hut=bct(),$Ln=Ict(),{appendStackTrace:e1n,AVVIO_ERRORS_MAP:cut,...TT}=Ko(),t1n=dce(),{defaultInitOptions:Ou}=hut,{FST_ERR_ASYNC_CONSTRAINT:n1n,FST_ERR_BAD_URL:r1n,FST_ERR_OPTIONS_NOT_OBJ:i1n,FST_ERR_QSP_NOT_FN:s1n,FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:o1n,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:a1n,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:c1n,FST_ERR_INSTANCE_ALREADY_LISTENING:u1n,FST_ERR_REOPENED_CLOSE_SERVER:l1n,FST_ERR_ROUTE_REWRITE_NOT_STR:d1n,FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:uut,FST_ERR_ERROR_HANDLER_NOT_FN:f1n,FST_ERR_ERROR_HANDLER_ALREADY_SET:p1n,FST_ERR_ROUTE_METHOD_INVALID:h1n}=TT,{buildErrorHandler:lut}=CM(),{FSTWRN004:m1n}=Lk(),dut=MLn.channel("fastify.initialization");function sfe(e){let{options:t,genReqId:n,disableRequestLogging:r,hasLogger:i,initialConfig:s}=g1n(e,P,N),o=ZLn(t.routerOptions),a=QLn(t),c=U(o,t),{server:u,listen:l,forceCloseConnections:d,serverHasCloseAllConnections:f,serverHasCloseHttp2Sessions:p,keepAliveConnections:h}=GLn(t,c),m=TD.setupResponseListeners,g=rut.buildSchemaController(null,t.schemaController),y={[Qi]:{listening:!1,closing:!1,started:!1,ready:!1,booting:!1,aborted:!1,readyResolver:null},[tfe]:h,[bT]:{bodyless:new Set(["GET","HEAD","TRACE"]),bodywith:new Set(["DELETE","OPTIONS","PATCH","PUT","POST"])},[$de]:t,[Xde]:[],[eut]:[],[DLn]:t.bodyLimit,[zLn]:t.handlerTimeout,[tut]:"",[LLn]:"",[ULn]:null,[Qde]:new WLn,[ub]:g,[efe]:null,[kK]:lut(),[IK]:!1,[nfe]:t.childLoggerFactory||KLn,[nut]:null,[jLn]:new _T(t.bodyLimit,t.onProtoPoisoning||Ou.onProtoPoisoning,t.onConstructorPoisoning||Ou.onConstructorPoisoning),[HLn]:TD.buildReply(TD),[qLn]:xK.buildRequest(xK,t.trustProxy),[BLn]:a,[out.kRegisteredPlugins]:[],[_D]:["fastify"],[ED]:null,[rfe]:n,routing:c,delete:function(K,ee,se){return o.prepareRoute.call(this,{method:"DELETE",url:K,options:ee,handler:se})},get:function(K,ee,se){return o.prepareRoute.call(this,{method:"GET",url:K,options:ee,handler:se})},head:function(K,ee,se){return o.prepareRoute.call(this,{method:"HEAD",url:K,options:ee,handler:se})},trace:function(K,ee,se){return o.prepareRoute.call(this,{method:"TRACE",url:K,options:ee,handler:se})},patch:function(K,ee,se){return o.prepareRoute.call(this,{method:"PATCH",url:K,options:ee,handler:se})},post:function(K,ee,se){return o.prepareRoute.call(this,{method:"POST",url:K,options:ee,handler:se})},put:function(K,ee,se){return o.prepareRoute.call(this,{method:"PUT",url:K,options:ee,handler:se})},options:function(K,ee,se){return o.prepareRoute.call(this,{method:"OPTIONS",url:K,options:ee,handler:se})},all:function(K,ee,se){return o.prepareRoute.call(this,{method:this.supportedMethods,url:K,options:ee,handler:se})},route:function(K){return o.route.call(this,{options:K})},hasRoute:function(K){return o.hasRoute.call(this,{options:K})},findRoute:function(K){return o.findRoute(K)},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:_T.helpers.addContentTypeParser,hasContentTypeParser:_T.helpers.hasContentTypeParser,getDefaultJsonParser:_T.defaultParsers.getDefaultJsonParser,defaultTextParser:_T.defaultParsers.defaultTextParser,removeContentTypeParser:_T.helpers.removeContentTypeParser,removeAllContentTypeParsers:_T.helpers.removeAllContentTypeParsers,register:null,after:null,ready:null,onClose:null,close:null,printPlugins:null,hasPlugin:function(H){return this[out.kRegisteredPlugins].includes(H)||this[_D].includes(H)},listen:l,server:u,addresses:function(){let H=this[eut].map(K=>K.address());return H.push(this.server.address()),H.filter(K=>K)},decorate:ET.add,hasDecorator:ET.exist,decorateReply:ET.decorateReply,decorateRequest:ET.decorateRequest,hasRequestDecorator:ET.existRequest,hasReplyDecorator:ET.existReply,getDecorator:ET.getInstanceDecorator,addHttpMethod:j,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 H=this.addresses().slice(-1).pop();if(typeof H=="string")return H;let K=H.family==="IPv6"?`[${H.address}]`:H.address;return`${this[$de].https?"https":"http"}://${K}:${H.port}`}},pluginName:{configurable:!0,get(){return this[_D].length>1?this[_D].join(" -> "):this[_D][0]}},prefix:{configurable:!0,get(){return this[tut]}},validatorCompiler:{configurable:!0,get(){return this[ub].getValidatorCompiler()}},serializerCompiler:{configurable:!0,get(){return this[ub].getSerializerCompiler()}},childLoggerFactory:{configurable:!0,get(){return this[nfe]}},version:{configurable:!0,get(){return NLn}},errorHandler:{configurable:!0,get(){return this[kK].func}},genReqId:{configurable:!0,get(){return this[rfe]}},supportedMethods:{configurable:!1,get(){return[...this[bT].bodyless,...this[bT].bodywith]}}}),t.schemaErrorFormatter&&(fut(t.schemaErrorFormatter),y[efe]=t.schemaErrorFormatter.bind(y));let b=Number(t.pluginTimeout),S=CLn(y,{autostart:!1,timeout:isNaN(b)===!1?b:Ou.pluginTimeout,expose:{use:"register"}});S.override=$Ln,S.on("start",()=>y[Qi].started=!0),y[ED]=y.ready,y.ready=R,y.printPlugins=S.prettyPrint.bind(S),S.once("preReady",()=>{y.onClose((H,K)=>{y[Qi].closing=!0,o.closeRoutes(),iut("preClose",y[ED],y,function(){if(y[Qi].listening){if(d==="idle")H.server.closeIdleConnections();else if(f&&d)H.server.closeAllConnections();else if(d===!0)for(let ee of y[tfe])ee.destroy(),y[tfe].delete(ee)}p&&H.server.closeHttp2Sessions(),!t.serverFactory||y[Qi].listening?H.server.close(function(ee){ee&&ee.code!=="ERR_SERVER_NOT_RUNNING"?K(null):K()}):process.nextTick(K,null)})})});let E=new VLn({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)),dut.hasSubscribers&&dut.publish({fastify:y}),"asyncDispose"in Symbol&&(y[Symbol.asyncDispose]=function(){return y.close()}),y;function _(H){if(y[Qi].started)throw new u1n(H)}function T(H,K){if(bD===void 0&&(bD=$ct()),y[Qi].started){if(y[Qi].closing){let ee=new l1n;if(K){K(ee);return}else return Promise.reject(ee)}return bD(c,H,K)}if(K)this.ready(ee=>{ee?K(ee,null):bD(c,H,K)});else return bD((ee,se)=>{this.ready(function(Le){if(Le){se.emit("error",Le);return}c(ee,se)})},H)}function R(H){if(this[Qi].readyResolver!==null){if(H!=null){this[Qi].readyResolver.promise.then(()=>H(null,y),H);return}return this[Qi].readyResolver.promise}if(process.nextTick(K),this[Qi].readyResolver=t1n.withResolvers(),H)this[Qi].readyResolver.promise.then(()=>H(null,y),H);else return this[Qi].readyResolver.promise;function K(){y[ED]((se,Le)=>{se||y[Qi].started||y[Qi].ready||y[Qi].booting?ee(se):(y[Qi].booting=!0,iut("onReady",y[ED],y,ee)),Le()})}function ee(se){if(se=se!=null&&cut[se.code]!=null?e1n(se,new cut[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(H,K){if(_('Cannot call "addHook"!'),K==null)throw new TT.FST_ERR_HOOK_INVALID_HANDLER(H,K);if(H==="onSend"||H==="preSerialization"||H==="onError"||H==="preParsing"){if(K.constructor.name==="AsyncFunction"&&K.length===4)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(H==="onReady"||H==="onListen"){if(K.constructor.name==="AsyncFunction"&&K.length!==0)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(H==="onRequestAbort"){if(K.constructor.name==="AsyncFunction"&&K.length!==1)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(K.constructor.name==="AsyncFunction"&&K.length===3)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER;return H==="onClose"?this.onClose(K.bind(this)):H==="onReady"||H==="onListen"||H==="onRoute"?this[Qde].add(H,K):this.after((se,Le)=>{try{ee.call(this,H,K),Le(se)}catch(Ae){Le(Ae)}}),this;function ee(se,Le){this[Qde].add(se,Le),this[Xde].forEach(Ae=>ee.call(Ae,se,Le))}}function k(H){return _('Cannot call "addSchema"!'),this[ub].add(H),this[Xde].forEach(K=>K.addSchema(H)),this}function P(H,K){H.headers["accept-version"]!==void 0&&(H.headers[FLn]=H.headers["accept-version"],H.headers["accept-version"]=void 0),a.router.lookup(H,K)}function N(H,K,ee){if(t.frameworkErrors){let Le=aut(E.server,K),Ae=sut(E,t.logger,K,Le),z=new xK(Le,null,K,null,Ae,E),J=new TD(ee,z,Ae);return(typeof r=="function"?r(K):r)===!1&&Ae.info({req:z},"incoming request"),t.frameworkErrors(new r1n(H),z,J)}let se=JSON.stringify({error:"Bad Request",code:"FST_ERR_BAD_URL",message:`'${H}' 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(H,K,ee){if(H!==!1)return function(Le){if(Le){if(t.frameworkErrors){let z=aut(E.server,K),J=sut(E,t.logger,K,z),oe=new xK(z,null,K,null,J,E),de=new TD(ee,oe,J);return(typeof r=="function"?r(K):r)===!1&&J.info({req:oe},"incoming request"),t.frameworkErrors(new n1n,oe,de)}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(H,K){return _('Cannot call "setNotFoundHandler"!'),a.setNotFoundHandler.call(this,H,K,S,o.routeHandler),this}function G(H){return _('Cannot call "setValidatorCompiler"!'),this[ub].setValidatorCompiler(H),this}function W(H){return _('Cannot call "setSchemaErrorFormatter"!'),fut(H),this[efe]=H.bind(this),this}function $(H){return _('Cannot call "setSerializerCompiler"!'),this[ub].setSerializerCompiler(H),this}function q(H){_('Cannot call "setSchemaController"!');let K=this[ub],ee=rut.buildSchemaController(K,Object.assign({},K.opts,H));return this[ub]=ee,this.getSchema=ee.getSchema.bind(ee),this.getSchemas=ee.getSchemas.bind(ee),this}function Q(H){return _('Cannot call "setReplySerializer"!'),this[nut]=H,this}function B(H){if(_('Cannot call "setErrorHandler"!'),typeof H!="function")throw new f1n;if(!t.allowErrorHandlerOverride&&this[IK])throw new p1n;return this[IK]&&m1n("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[IK]=!0,this[kK]=lut(this[kK],H.bind(this)),this}function F(H){return _('Cannot call "setChildLoggerFactory"!'),this[nfe]=H,this}function V(H={}){return H.includeMeta=H.includeHooks?H.includeMeta?ife.concat(H.includeMeta):ife:H.includeMeta,o.printRoutes(H)}function U(H,{rewriteUrl:K,logger:ee}){let se;return function(Ae,z){if(se===void 0&&(se=H.isAsyncConstraint()),K){Ae.originalUrl=Ae.url;let J=K.call(y,Ae);if(typeof J=="string")Ae.url=J;else{let oe=new d1n(Ae.url,typeof J);Ae.destroy(oe)}}H.routing(Ae,z,C(se,Ae,z))}}function M(H){return _('Cannot call "setGenReqId"!'),this[rfe]=put(this[$de].requestIdHeader,H),this}function j(H,{hasBody:K=!1}={}){if(typeof H!="string"||OK.METHODS.indexOf(H)===-1)throw new h1n;K===!0?(this[bT].bodywith.add(H),this[bT].bodyless.delete(H)):(this[bT].bodywith.delete(H),this[bT].bodyless.add(H));let ee=H.toLowerCase();return this.hasDecorator(ee)||this.decorate(ee,function(se,Le,Ae){return o.prepareRoute.call(this,{method:H,url:se,options:Le,handler:Ae})}),this}}function g1n(e,t,n){if(e&&typeof e!="object")throw new i1n;if(e=Object.assign({},e),e.querystringParser&&typeof e.querystringParser!="function"||e.routerOptions?.querystringParser&&typeof e.routerOptions.querystringParser!="function")throw new s1n(typeof(e.querystringParser??e.routerOptions.querystringParser));if(e.schemaController&&e.schemaController.bucket&&typeof e.schemaController.bucket!="function")throw new o1n(typeof e.schemaController.bucket);JLn(e.bodyLimit);let r=typeof e.requestIdHeader=="string"&&e.requestIdHeader.length!==0?e.requestIdHeader.toLowerCase():e.requestIdHeader===!0&&"request-id",i=put(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 a1n(typeof a.customOptions);if(!a.plugins||!Array.isArray(a.plugins))throw new c1n(typeof a.plugins);let{logger:c,hasLogger:u}=YLn(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||S1n,e.allowErrorHandlerOverride=e.allowErrorHandlerOverride??Ou.allowErrorHandlerOverride;let l=hut(e);return e.exposeHeadRoutes=l.exposeHeadRoutes,e.http2SessionTimeout=l.http2SessionTimeout,e.routerOptions=XLn(e,{defaultRoute:t,onBadUrl:n,ignoreTrailingSlash:Ou.ignoreTrailingSlash,ignoreDuplicateSlashes:Ou.ignoreDuplicateSlashes,maxParamLength:Ou.maxParamLength,allowUnsafeRegex:Ou.allowUnsafeRegex,buildPrettyMeta:y1n,useSemicolonDelimiter:Ou.useSemicolonDelimiter}),{options:e,genReqId:i,disableRequestLogging:o,hasLogger:u,initialConfig:l}}function y1n(e){let t={};return["errorHandler","logLevel","logSerializers"].concat(ife).forEach(r=>{t[r]=e.store[r]}),Object.assign({},t)}function S1n(e,t){if(e.code==="ECONNRESET"||t.destroyed)return;let n,r,i,s;e.code==="ERR_HTTP_REQUEST_TIMEOUT"?(r="408",i=OK.STATUS_CODES[r],n=`{"error":"${i}","message":"Client Timeout","statusCode":408}`,s="timeout"):e.code==="HPE_HEADER_OVERFLOW"?(r="431",i=OK.STATUS_CODES[r],n=`{"error":"${i}","message":"Exceeded maximum allowed HTTP header size","statusCode":431}`,s="header_overflow"):(r="400",i=OK.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 fI.encode(l),u.stream?yield*u.stream():yield u,yield s}yield fI.encode(`--${t}--`)}return{stream:iLn.from(o()),contentType:`multipart/form-data; boundary=${t}`}}qde.exports.isFormDataLike=sLn;qde.exports.formDataToStream=oLn});var Gct=w((NYr,TK)=>{"use strict";var{Readable:Bct,addAbortSignal:aLn}=Y("node:stream"),zde=Y("node:util"),cLn=Dct(),uLn=Y("node:assert"),{createDeprecation:lLn}=Uct(),dLn=Hct(),{isFormDataLike:fLn,formDataToStream:pLn}=qct(),{EventEmitter:hLn}=Y("node:events"),mLn=lLn({name:"FastifyDeprecationLightMyRequest",code:"FST_LIGHTMYREQUEST_DEP01",message:'You are accessing "request.connection", use "request.socket" instead.'});function gLn(e){return e.port?e.host:e.hostname+(e.protocol==="https:"?":443":":80")}var Bde=class extends hLn{constructor(t){super(),this.remoteAddress=t}};function zct(e){return new t(this);function t(n){ab.call(n,{...e,Request:void 0}),Object.assign(this,n);for(let r of Object.keys(ab.prototype))this.constructor.prototype[r]=ab.prototype[r];return zde.inherits(this.constructor,e.Request),this}}function ab(e){Bct.call(this,{autoDestroy:!1});let t=dLn(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];uLn(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||gLn(t),e.cookies){let{cookies:o}=e,a=Object.keys(o).map(c=>cLn.serialize(c,o[c]));this.headers.cookie&&a.unshift(this.headers.cookie),this.headers.cookie=a.join("; ")}this.socket=new Bde(e.remoteAddress||"127.0.0.1"),Object.defineProperty(this,"connection",{get(){return mLn(),this.socket},configurable:!0});let r=e.payload||e.body||null,i=r&&typeof r.resume=="function";if(fLn(r)){let o=pLn(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&&aLn(s,this);{let o=this._lightMyRequest.payload;o?._readableState?(this._read=yLn,o.on("error",a=>{this.destroy(a)}),o.on("end",()=>{this.push(null)})):this._read=SLn}return this}function yLn(){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 SLn(){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)})}zde.inherits(ab,Bct);zde.inherits(zct,ab);ab.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")))};TK.exports=ab;TK.exports.Request=ab;TK.exports.CustomRequest=zct});var Wct=w((CYr,mD)=>{"use strict";var vK={decodeValues:!0,map:!1,silent:!1};function Gde(e){return typeof e!="string"||e in{}}function Vde(){return Object.create(null)}function Wde(e){return typeof e=="string"&&!!e.trim()}function Kde(e,t){var n=e.split(";").filter(Wde),r=n.shift(),i=bLn(r),s=i.name,o=i.value;if(t=t?Object.assign({},vK,t):vK,Gde(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=Vde();return a.name=s,a.value=o,n.forEach(function(c){var u=c.split("="),l=u.shift().trimLeft().toLowerCase();if(!Gde(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 bLn(e){var t="",n="",r=e.split("=");return r.length>1?(t=r.shift(),n=r.join("=")):n=e,{name:t,value:n}}function Vct(e,t){if(t=t?Object.assign({},vK,t):vK,!e)return t.map?Vde():[];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=Vde();return e.filter(Wde).reduce(function(i,s){var o=Kde(s,t);return o&&!Gde(o.name)&&(i[o.name]=o),i},r)}else return e.filter(Wde).map(function(i){return Kde(i,t)}).filter(Boolean)}function ELn(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}mD.exports=Vct;mD.exports.parse=Vct;mD.exports.parseString=Kde;mD.exports.splitCookiesString=ELn});var Xct=w((MYr,Jct)=>{"use strict";var gD=Y("node:http"),{Writable:_Ln,Readable:Kct,addAbortSignal:TLn}=Y("node:stream"),vLn=Y("node:util"),RLn=Wct();function cb(e,t,n){if(gD.ServerResponse.call(this,e),e._lightMyRequest?.payloadAsStream){let a=this.emit.bind(this,"drain");this._lightMyRequest={headers:null,trailers:{},stream:new Kct({read:a})};let c=e._lightMyRequest.signal;c&&TLn(c,this._lightMyRequest.stream)}else this._lightMyRequest={headers:null,trailers:{},payloadChunks:[]};this.setHeader("foo","bar"),this.removeHeader("foo"),this.assignSocket(ALn()),this._promiseCallback=typeof n=="function";let r=!1,i=a=>{if(!r){if(r=!0,this._promiseCallback)return process.nextTick(()=>t(a));process.nextTick(()=>t(null,a))}};this._lightMyRequest.onEndSuccess=i;let s=!1,o=a=>{if(r){this._lightMyRequest.stream&&!s&&(a||(a=new Error("response destroyed before completion"),a.code="LIGHT_ECONNRESET"),this._lightMyRequest.stream.destroy(a),this._lightMyRequest.stream.on("error",()=>{}));return}if(r=!0,a||(a=new Error("response destroyed before completion"),a.code="LIGHT_ECONNRESET"),this._promiseCallback)return process.nextTick(()=>n(a));process.nextTick(()=>t(a,null))};this._lightMyRequest.stream?this.once("finish",()=>{s=!0,this._lightMyRequest.stream.push(null)}):this.once("finish",()=>{let a=Yct(this);a.raw.req=e,i(a)}),this.connection.once("error",o),this.once("error",o),this.once("close",o)}vLn.inherits(cb,gD.ServerResponse);cb.prototype.setTimeout=function(e,t){return this.timeoutHandle=setTimeout(()=>{this.emit("timeout")},e),this.on("timeout",t),this};cb.prototype.writeHead=function(){let e=gD.ServerResponse.prototype.writeHead.apply(this,arguments);return Zct(this),this._lightMyRequest.stream&&this._lightMyRequest.onEndSuccess(Yct(this)),e};cb.prototype.write=function(e,t,n){return this.timeoutHandle&&clearTimeout(this.timeoutHandle),gD.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)};cb.prototype.end=function(e,t,n){e&&this.write(e,t),gD.ServerResponse.prototype.end.call(this,n),this.emit("finish"),this.destroy()};cb.prototype.destroy=function(e){this.destroyed||(this.destroyed=!0,e&&process.nextTick(()=>this.emit("error",e)),process.nextTick(()=>this.emit("close")))};cb.prototype.addTrailers=function(e){for(let t in e)this._lightMyRequest.trailers[t.toLowerCase().trim()]=e[t].toString().trim()};function Yct(e){e._lightMyRequest.headers===null&&Zct(e),wLn(e);let t={raw:{res:e},headers:e._lightMyRequest.headers,statusCode:e.statusCode,statusMessage:e.statusMessage,trailers:{},get cookies(){return RLn.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:Kct.from(e._lightMyRequest.payloadChunks)},t}function ALn(){return new _Ln({write(e,t,n){setImmediate(n)}})}function wLn(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])})}Jct.exports=cb});var Qct=w((DYr,Yde)=>{"use strict";Yde.exports=eo;Yde.exports.default=eo;var kLn={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:kLn.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 tut=w((LYr,SD)=>{"use strict";var ILn=Y("node:assert"),Zde=Gct(),RK=Xct(),wK="The dispatch function has already been invoked",$ct=Qct();function Jde(e,t,n){return n===void 0?new yD(e,t):AK(e,t,n)}function xLn(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 eut(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()}),xLn(n,()=>e.call(t,n,r))}function AK(e,t,n){if(t=typeof t=="string"?{url:t}:t,t.validate!==!1&&(ILn(typeof e=="function","dispatchFunc should be a function"),!$ct(t)))throw new Error($ct.errors.map(o=>o.message));let r=t.server||{},i=t.Request?Zde.CustomRequest:Zde;if(e.request&&e.request.app===e&&(Object.setPrototypeOf(Object.getPrototypeOf(e.request),i.prototype),Object.setPrototypeOf(Object.getPrototypeOf(e.response),RK.prototype)),typeof n=="function"){let s=new i(t),o=new RK(s,n);return eut(e,r,s,o)}else return new Promise((s,o)=>{let a=new i(t),c=new RK(a,s,o);eut(e,r,a,c)})}function yD(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=>{yD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(wK);return this.option.url=t,this.option.method=e.toUpperCase(),this}});var PLn=["body","cookies","headers","payload","query"];PLn.forEach(e=>{yD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(wK);return this.option[e]=t,this}});yD.prototype.end=function(e){if(this._hasInvoked===!0||this._promise)throw new Error(wK);if(this._hasInvoked=!0,typeof e=="function")AK(this.dispatch,this.option,e);else return this._promise=AK(this.dispatch,this.option),this._promise};Object.getOwnPropertyNames(Promise.prototype).forEach(e=>{e!=="constructor"&&(yD.prototype[e]=function(...t){if(!this._promise){if(this._hasInvoked===!0)throw new Error(wK);this._hasInvoked=!0,this._promise=AK(this.dispatch,this.option)}return this._promise[e](...t)})});function NLn(e){return e instanceof Zde||e instanceof RK||e?.constructor?.name==="_CustomLMRRequest"}SD.exports=Jde;SD.exports.default=Jde;SD.exports.inject=Jde;SD.exports.isInjection=NLn});var yut=w((UYr,vD)=>{"use strict";var CLn="5.8.5",MLn=IQe(),OK=Y("node:http"),DLn=Y("node:diagnostics_channel"),bD,{kAvvioBoot:ED,kChildren:Xde,kServerBindings:nut,kBodyLimit:LLn,kSupportedHTTPMethods:bT,kRoutePrefix:rut,kLogLevel:ULn,kLogSerializers:FLn,kHooks:Qde,kSchemaController:ub,kRequestAcceptVersion:jLn,kReplySerializerDefault:iut,kContentTypeParser:HLn,kReply:qLn,kRequest:BLn,kFourOhFour:zLn,kState:$i,kOptions:$de,kPluginNameChain:_D,kSchemaErrorFormatter:efe,kErrorHandler:kK,kKeepAliveConnections:tfe,kChildLoggerFactory:nfe,kGenReqId:rfe,kErrorHandlerAlreadySet:IK,kHandlerTimeout:GLn}=$s(),{createServer:VLn}=n$e(),TD=m4(),xK=_4(),WLn=T4(),ET=LM(),_T=que(),sut=jle(),{Hooks:KLn,hookRunnerApplication:out,supportedHooks:ife}=ZS(),{createChildLogger:aut,defaultChildLoggerFactory:YLn,createLogger:ZLn}=PM(),cut=lde(),{getGenReqId:uut,reqIdGenFactory:mut}=X4(),{buildRouting:JLn,validateBodyLimitOption:XLn,buildRouterOptions:QLn}=fct(),$Ln=bct(),gut=_ct(),e1n=Oct(),{appendStackTrace:t1n,AVVIO_ERRORS_MAP:lut,...TT}=Ko(),n1n=dce(),{defaultInitOptions:Ou}=gut,{FST_ERR_ASYNC_CONSTRAINT:r1n,FST_ERR_BAD_URL:i1n,FST_ERR_OPTIONS_NOT_OBJ:s1n,FST_ERR_QSP_NOT_FN:o1n,FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:a1n,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:c1n,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:u1n,FST_ERR_INSTANCE_ALREADY_LISTENING:l1n,FST_ERR_REOPENED_CLOSE_SERVER:d1n,FST_ERR_ROUTE_REWRITE_NOT_STR:f1n,FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:dut,FST_ERR_ERROR_HANDLER_NOT_FN:p1n,FST_ERR_ERROR_HANDLER_ALREADY_SET:h1n,FST_ERR_ROUTE_METHOD_INVALID:m1n}=TT,{buildErrorHandler:fut}=CM(),{FSTWRN004:g1n}=Lk(),put=DLn.channel("fastify.initialization");function sfe(e){let{options:t,genReqId:n,disableRequestLogging:r,hasLogger:i,initialConfig:s}=y1n(e,P,N),o=JLn(t.routerOptions),a=$Ln(t),c=U(o,t),{server:u,listen:l,forceCloseConnections:d,serverHasCloseAllConnections:f,serverHasCloseHttp2Sessions:p,keepAliveConnections:h}=VLn(t,c),m=TD.setupResponseListeners,g=sut.buildSchemaController(null,t.schemaController),y={[$i]:{listening:!1,closing:!1,started:!1,ready:!1,booting:!1,aborted:!1,readyResolver:null},[tfe]:h,[bT]:{bodyless:new Set(["GET","HEAD","TRACE"]),bodywith:new Set(["DELETE","OPTIONS","PATCH","PUT","POST"])},[$de]:t,[Xde]:[],[nut]:[],[LLn]:t.bodyLimit,[GLn]:t.handlerTimeout,[rut]:"",[ULn]:"",[FLn]:null,[Qde]:new KLn,[ub]:g,[efe]:null,[kK]:fut(),[IK]:!1,[nfe]:t.childLoggerFactory||YLn,[iut]:null,[HLn]:new _T(t.bodyLimit,t.onProtoPoisoning||Ou.onProtoPoisoning,t.onConstructorPoisoning||Ou.onConstructorPoisoning),[qLn]:TD.buildReply(TD),[BLn]:xK.buildRequest(xK,t.trustProxy),[zLn]:a,[cut.kRegisteredPlugins]:[],[_D]:["fastify"],[ED]:null,[rfe]:n,routing:c,delete:function(K,ee,se){return o.prepareRoute.call(this,{method:"DELETE",url:K,options:ee,handler:se})},get:function(K,ee,se){return o.prepareRoute.call(this,{method:"GET",url:K,options:ee,handler:se})},head:function(K,ee,se){return o.prepareRoute.call(this,{method:"HEAD",url:K,options:ee,handler:se})},trace:function(K,ee,se){return o.prepareRoute.call(this,{method:"TRACE",url:K,options:ee,handler:se})},patch:function(K,ee,se){return o.prepareRoute.call(this,{method:"PATCH",url:K,options:ee,handler:se})},post:function(K,ee,se){return o.prepareRoute.call(this,{method:"POST",url:K,options:ee,handler:se})},put:function(K,ee,se){return o.prepareRoute.call(this,{method:"PUT",url:K,options:ee,handler:se})},options:function(K,ee,se){return o.prepareRoute.call(this,{method:"OPTIONS",url:K,options:ee,handler:se})},all:function(K,ee,se){return o.prepareRoute.call(this,{method:this.supportedMethods,url:K,options:ee,handler:se})},route:function(K){return o.route.call(this,{options:K})},hasRoute:function(K){return o.hasRoute.call(this,{options:K})},findRoute:function(K){return o.findRoute(K)},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:_T.helpers.addContentTypeParser,hasContentTypeParser:_T.helpers.hasContentTypeParser,getDefaultJsonParser:_T.defaultParsers.getDefaultJsonParser,defaultTextParser:_T.defaultParsers.defaultTextParser,removeContentTypeParser:_T.helpers.removeContentTypeParser,removeAllContentTypeParsers:_T.helpers.removeAllContentTypeParsers,register:null,after:null,ready:null,onClose:null,close:null,printPlugins:null,hasPlugin:function(H){return this[cut.kRegisteredPlugins].includes(H)||this[_D].includes(H)},listen:l,server:u,addresses:function(){let H=this[nut].map(K=>K.address());return H.push(this.server.address()),H.filter(K=>K)},decorate:ET.add,hasDecorator:ET.exist,decorateReply:ET.decorateReply,decorateRequest:ET.decorateRequest,hasRequestDecorator:ET.existRequest,hasReplyDecorator:ET.existReply,getDecorator:ET.getInstanceDecorator,addHttpMethod:j,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 H=this.addresses().slice(-1).pop();if(typeof H=="string")return H;let K=H.family==="IPv6"?`[${H.address}]`:H.address;return`${this[$de].https?"https":"http"}://${K}:${H.port}`}},pluginName:{configurable:!0,get(){return this[_D].length>1?this[_D].join(" -> "):this[_D][0]}},prefix:{configurable:!0,get(){return this[rut]}},validatorCompiler:{configurable:!0,get(){return this[ub].getValidatorCompiler()}},serializerCompiler:{configurable:!0,get(){return this[ub].getSerializerCompiler()}},childLoggerFactory:{configurable:!0,get(){return this[nfe]}},version:{configurable:!0,get(){return CLn}},errorHandler:{configurable:!0,get(){return this[kK].func}},genReqId:{configurable:!0,get(){return this[rfe]}},supportedMethods:{configurable:!1,get(){return[...this[bT].bodyless,...this[bT].bodywith]}}}),t.schemaErrorFormatter&&(hut(t.schemaErrorFormatter),y[efe]=t.schemaErrorFormatter.bind(y));let b=Number(t.pluginTimeout),S=MLn(y,{autostart:!1,timeout:isNaN(b)===!1?b:Ou.pluginTimeout,expose:{use:"register"}});S.override=e1n,S.on("start",()=>y[$i].started=!0),y[ED]=y.ready,y.ready=R,y.printPlugins=S.prettyPrint.bind(S),S.once("preReady",()=>{y.onClose((H,K)=>{y[$i].closing=!0,o.closeRoutes(),out("preClose",y[ED],y,function(){if(y[$i].listening){if(d==="idle")H.server.closeIdleConnections();else if(f&&d)H.server.closeAllConnections();else if(d===!0)for(let ee of y[tfe])ee.destroy(),y[tfe].delete(ee)}p&&H.server.closeHttp2Sessions(),!t.serverFactory||y[$i].listening?H.server.close(function(ee){ee&&ee.code!=="ERR_SERVER_NOT_RUNNING"?K(null):K()}):process.nextTick(K,null)})})});let E=new WLn({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)),put.hasSubscribers&&put.publish({fastify:y}),"asyncDispose"in Symbol&&(y[Symbol.asyncDispose]=function(){return y.close()}),y;function _(H){if(y[$i].started)throw new l1n(H)}function T(H,K){if(bD===void 0&&(bD=tut()),y[$i].started){if(y[$i].closing){let ee=new d1n;if(K){K(ee);return}else return Promise.reject(ee)}return bD(c,H,K)}if(K)this.ready(ee=>{ee?K(ee,null):bD(c,H,K)});else return bD((ee,se)=>{this.ready(function(Le){if(Le){se.emit("error",Le);return}c(ee,se)})},H)}function R(H){if(this[$i].readyResolver!==null){if(H!=null){this[$i].readyResolver.promise.then(()=>H(null,y),H);return}return this[$i].readyResolver.promise}if(process.nextTick(K),this[$i].readyResolver=n1n.withResolvers(),H)this[$i].readyResolver.promise.then(()=>H(null,y),H);else return this[$i].readyResolver.promise;function K(){y[ED]((se,Le)=>{se||y[$i].started||y[$i].ready||y[$i].booting?ee(se):(y[$i].booting=!0,out("onReady",y[ED],y,ee)),Le()})}function ee(se){if(se=se!=null&&lut[se.code]!=null?t1n(se,new lut[se.code](se.message)):se,se)return y[$i].readyResolver.reject(se);y[$i].readyResolver.resolve(y),y[$i].booting=!1,y[$i].ready=!0,y[$i].readyResolver=null}}function A(){return this}function x(H,K){if(_('Cannot call "addHook"!'),K==null)throw new TT.FST_ERR_HOOK_INVALID_HANDLER(H,K);if(H==="onSend"||H==="preSerialization"||H==="onError"||H==="preParsing"){if(K.constructor.name==="AsyncFunction"&&K.length===4)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(H==="onReady"||H==="onListen"){if(K.constructor.name==="AsyncFunction"&&K.length!==0)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(H==="onRequestAbort"){if(K.constructor.name==="AsyncFunction"&&K.length!==1)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(K.constructor.name==="AsyncFunction"&&K.length===3)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER;return H==="onClose"?this.onClose(K.bind(this)):H==="onReady"||H==="onListen"||H==="onRoute"?this[Qde].add(H,K):this.after((se,Le)=>{try{ee.call(this,H,K),Le(se)}catch(Ae){Le(Ae)}}),this;function ee(se,Le){this[Qde].add(se,Le),this[Xde].forEach(Ae=>ee.call(Ae,se,Le))}}function k(H){return _('Cannot call "addSchema"!'),this[ub].add(H),this[Xde].forEach(K=>K.addSchema(H)),this}function P(H,K){H.headers["accept-version"]!==void 0&&(H.headers[jLn]=H.headers["accept-version"],H.headers["accept-version"]=void 0),a.router.lookup(H,K)}function N(H,K,ee){if(t.frameworkErrors){let Le=uut(E.server,K),Ae=aut(E,t.logger,K,Le),z=new xK(Le,null,K,null,Ae,E),J=new TD(ee,z,Ae);return(typeof r=="function"?r(K):r)===!1&&Ae.info({req:z},"incoming request"),t.frameworkErrors(new i1n(H),z,J)}let se=JSON.stringify({error:"Bad Request",code:"FST_ERR_BAD_URL",message:`'${H}' 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(H,K,ee){if(H!==!1)return function(Le){if(Le){if(t.frameworkErrors){let z=uut(E.server,K),J=aut(E,t.logger,K,z),oe=new xK(z,null,K,null,J,E),de=new TD(ee,oe,J);return(typeof r=="function"?r(K):r)===!1&&J.info({req:oe},"incoming request"),t.frameworkErrors(new r1n,oe,de)}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(H,K){return _('Cannot call "setNotFoundHandler"!'),a.setNotFoundHandler.call(this,H,K,S,o.routeHandler),this}function G(H){return _('Cannot call "setValidatorCompiler"!'),this[ub].setValidatorCompiler(H),this}function W(H){return _('Cannot call "setSchemaErrorFormatter"!'),hut(H),this[efe]=H.bind(this),this}function $(H){return _('Cannot call "setSerializerCompiler"!'),this[ub].setSerializerCompiler(H),this}function q(H){_('Cannot call "setSchemaController"!');let K=this[ub],ee=sut.buildSchemaController(K,Object.assign({},K.opts,H));return this[ub]=ee,this.getSchema=ee.getSchema.bind(ee),this.getSchemas=ee.getSchemas.bind(ee),this}function Q(H){return _('Cannot call "setReplySerializer"!'),this[iut]=H,this}function B(H){if(_('Cannot call "setErrorHandler"!'),typeof H!="function")throw new p1n;if(!t.allowErrorHandlerOverride&&this[IK])throw new h1n;return this[IK]&&g1n("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[IK]=!0,this[kK]=fut(this[kK],H.bind(this)),this}function F(H){return _('Cannot call "setChildLoggerFactory"!'),this[nfe]=H,this}function V(H={}){return H.includeMeta=H.includeHooks?H.includeMeta?ife.concat(H.includeMeta):ife:H.includeMeta,o.printRoutes(H)}function U(H,{rewriteUrl:K,logger:ee}){let se;return function(Ae,z){if(se===void 0&&(se=H.isAsyncConstraint()),K){Ae.originalUrl=Ae.url;let J=K.call(y,Ae);if(typeof J=="string")Ae.url=J;else{let oe=new f1n(Ae.url,typeof J);Ae.destroy(oe)}}H.routing(Ae,z,C(se,Ae,z))}}function M(H){return _('Cannot call "setGenReqId"!'),this[rfe]=mut(this[$de].requestIdHeader,H),this}function j(H,{hasBody:K=!1}={}){if(typeof H!="string"||OK.METHODS.indexOf(H)===-1)throw new m1n;K===!0?(this[bT].bodywith.add(H),this[bT].bodyless.delete(H)):(this[bT].bodywith.delete(H),this[bT].bodyless.add(H));let ee=H.toLowerCase();return this.hasDecorator(ee)||this.decorate(ee,function(se,Le,Ae){return o.prepareRoute.call(this,{method:H,url:se,options:Le,handler:Ae})}),this}}function y1n(e,t,n){if(e&&typeof e!="object")throw new s1n;if(e=Object.assign({},e),e.querystringParser&&typeof e.querystringParser!="function"||e.routerOptions?.querystringParser&&typeof e.routerOptions.querystringParser!="function")throw new o1n(typeof(e.querystringParser??e.routerOptions.querystringParser));if(e.schemaController&&e.schemaController.bucket&&typeof e.schemaController.bucket!="function")throw new a1n(typeof e.schemaController.bucket);XLn(e.bodyLimit);let r=typeof e.requestIdHeader=="string"&&e.requestIdHeader.length!==0?e.requestIdHeader.toLowerCase():e.requestIdHeader===!0&&"request-id",i=mut(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 c1n(typeof a.customOptions);if(!a.plugins||!Array.isArray(a.plugins))throw new u1n(typeof a.plugins);let{logger:c,hasLogger:u}=ZLn(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||b1n,e.allowErrorHandlerOverride=e.allowErrorHandlerOverride??Ou.allowErrorHandlerOverride;let l=gut(e);return e.exposeHeadRoutes=l.exposeHeadRoutes,e.http2SessionTimeout=l.http2SessionTimeout,e.routerOptions=QLn(e,{defaultRoute:t,onBadUrl:n,ignoreTrailingSlash:Ou.ignoreTrailingSlash,ignoreDuplicateSlashes:Ou.ignoreDuplicateSlashes,maxParamLength:Ou.maxParamLength,allowUnsafeRegex:Ou.allowUnsafeRegex,buildPrettyMeta:S1n,useSemicolonDelimiter:Ou.useSemicolonDelimiter}),{options:e,genReqId:i,disableRequestLogging:o,hasLogger:u,initialConfig:l}}function S1n(e){let t={};return["errorHandler","logLevel","logSerializers"].concat(ife).forEach(r=>{t[r]=e.store[r]}),Object.assign({},t)}function b1n(e,t){if(e.code==="ECONNRESET"||t.destroyed)return;let n,r,i,s;e.code==="ERR_HTTP_REQUEST_TIMEOUT"?(r="408",i=OK.STATUS_CODES[r],n=`{"error":"${i}","message":"Client Timeout","statusCode":408}`,s="timeout"):e.code==="HPE_HEADER_OVERFLOW"?(r="431",i=OK.STATUS_CODES[r],n=`{"error":"${i}","message":"Exceeded maximum allowed HTTP header size","statusCode":431}`,s="header_overflow"):(r="400",i=OK.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 fut(e){if(typeof e!="function")throw new uut(typeof e);if(e.constructor.name==="AsyncFunction")throw new uut("AsyncFunction")}vD.exports=sfe;vD.exports.errorCodes=TT;vD.exports.fastify=sfe;vD.exports.default=sfe});var _l=v(()=>{tre();tre()});var b1n,ofe=v(()=>{"use strict";_l();b1n=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 E1n,_1n,afe=v(()=>{"use strict";_l();E1n=O.enum(["loopback","token"]).describe("Transport invariant \u2014 routes declare 'loopback' (v1 runtime policy) or 'token' (reserved for future bearer-token routes)."),_1n=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 gut,cfe,yut,RD,PK,Sut,but,ufe,Eut,pI,T1n,v1n,NK,VYr,AD,R1n,WYr,wD,CK,kD,lfe,pg=v(()=>{"use strict";_l();afe();gut=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."),cfe=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)."),yut=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."),RD=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."),PK=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."),Sut=O.object({author:O.string().min(1).max(200).describe("Free-form author handle ('user', agent name)."),author_type:gut,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"),but=gut,ufe=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"),Eut=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"),pI=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(ufe).optional(),comments:O.array(Eut).optional()}).describe("Annotations attached to a review decision"),T1n=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"),v1n=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"),NK=O.object({comments:O.array(Eut).optional(),pins:O.array(T1n).optional(),screenshots:O.array(v1n).max(20).optional()}).describe("Annotations attached to a question answer"),VYr=O.enum(["review","question","design_direction"]).describe("Session type discriminator"),AD=O.enum(["pending","decided","answered","approved","changes_requested"]).describe("Runtime status across review | question | design_direction sessions."),R1n=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."),WYr=O.object({error:O.literal("validation_failed"),issues:O.array(R1n)}).describe("Uniform 400 response for request-body validation failure (malformed JSON, schema mismatch, oversize)"),wD=1048576,CK=131072,kD=8388608,lfe=33554432});var A1n,w1n,k1n,I1n,x1n,O1n,P1n,dfe,N1n,ffe=v(()=>{"use strict";_l();pg();A1n=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"),w1n=O.object({pins:O.array(ufe).optional(),screenshots:O.array(A1n).max(20).optional()}).describe("Annotations attached to a design-direction selection"),k1n=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:w1n.optional()}).describe("Final selection \u2014 user picked one archetype"),I1n=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"),x1n=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"),O1n=O.object({mode:O.literal("upload"),files:O.array(x1n).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"),P1n=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"),dfe=O.discriminatedUnion("mode",[k1n,I1n,O1n,P1n]).describe("POST /direction/:sessionId/select request body"),N1n=O.object({ok:O.literal(!0)}).describe("POST /direction/:sessionId/select response body")});var _ut,C1n,M1n,D1n,L1n,pfe,U1n,hfe,F1n,j1n,mfe,H1n,gfe=v(()=>{"use strict";_l();pg();_ut=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"),C1n=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:RD,origin:cfe,severity:yut.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:but,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:PK.nullable().optional().describe("Routing hint for the feedback resolver. null/unset = router defaults to stage_revisit."),replies:O.array(Sut).optional().describe("Thread of replies on this feedback item. Empty / missing = no replies yet."),inline_anchor:_ut.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"),M1n=O.object({intent:O.string(),stage:O.string(),count:O.number().int().nonnegative(),items:O.array(C1n)}).describe("GET /api/feedback/:intent/:stage response body"),D1n=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"),L1n=6e6,pfe=O.object({title:O.string().min(1).max(200),body:O.string().min(1).max(1e4),origin:cfe.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:D1n.optional(),inline_anchor:_ut.optional(),resolution:PK.optional().describe("Author's preferred resolution path. Router defaults to stage_revisit when omitted."),attachment_data_url:O.string().max(L1n).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"),U1n=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"),hfe=O.object({status:RD.optional(),closed_by:O.string().max(200).optional(),resolution:PK.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"),F1n=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"),j1n=O.object({feedback_id:O.string(),deleted:O.literal(!0),message:O.string()}).describe("DELETE /api/feedback/:intent/:stage/:id response body"),mfe=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"),H1n=O.object({feedback_id:O.string(),reply_index:O.number().int().nonnegative().describe("Zero-based index of the new reply inside replies[]."),status:RD,message:O.string()}).describe("POST /api/feedback/:intent/:stage/:id/replies response body")});var yfe,Sfe,q1n,MK=v(()=>{"use strict";_l();pg();yfe=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"),Sfe=O.object({answers:O.array(yfe).max(50),feedback:O.string().max(1e4).optional(),annotations:NK.optional()}).describe("POST /question/:sessionId/answer request body"),q1n=O.object({ok:O.literal(!0)}).describe("POST /question/:sessionId/answer response body")});var B1n,bfe,z1n,Efe=v(()=>{"use strict";_l();pg();B1n=O.enum(["approved","changes_requested"]).describe("Canonical review decision. Anything != approved is coerced to changes_requested server-side."),bfe=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:pI.optional()}).describe("POST /review/:sessionId/decide request body"),z1n=O.object({ok:O.literal(!0),decision:B1n,feedback:O.string()}).describe("POST /review/:sessionId/decide response body")});var ID,uZr,G1n,V1n,W1n,_fe,K1n,Y1n,Z1n,Tut,J1n,X1n,Q1n,$1n,eUn,tUn,nUn,rUn,iUn,sUn,oUn,aUn,cUn,uUn,lUn,dUn,fUn,pUn,hUn,mUn,gUn,yUn,lZr,SUn,Tfe=v(()=>{"use strict";_l();pg();ID=O.record(O.unknown()).describe("Opaque parsed artifact (ParsedIntent / ParsedUnit / CriterionItem / etc.)"),uZr=O.enum(["auto","ask","external","await"]).describe("Review-gate type declared in STAGE.md"),G1n=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."),V1n=O.object({name:O.string(),content:O.string()}),W1n=O.object({stage:O.string(),name:O.string(),content:O.string()}),_fe=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()}),K1n=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()}),Y1n=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."),Z1n=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."),Tut=O.object({key:O.string(),label:O.string(),status:O.enum(["done","active","pending"])}).describe("One milestone in the granular per-stage progress track"),J1n=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(Tut).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?'."),X1n=O.enum(["ad_hoc_done","open_pr","submit_external","start_intent","start_execution","complete_stage","submit_intent_review","complete_intent","approve"]),Q1n=O.object({label:O.string(),kind:X1n}).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')."),$1n=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"),eUn=O.object({session_id:O.string(),session_type:O.literal("review"),status:AD,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:pI.optional(),intent:ID.optional(),units:O.array(ID).optional(),criteria:O.array(ID).optional(),mermaid:O.string().optional(),intent_mockups:O.array(ID).optional(),unit_mockups:O.record(O.array(ID)).optional(),stage_states:O.record(G1n).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(Tut)).optional(),current_state:J1n.optional(),knowledge_files:O.array(V1n).optional(),stage_artifacts:O.array(W1n).optional(),output_artifacts:O.array(_fe).optional(),other_files:O.array(_fe).optional(),intent_other_files:O.array(_fe).optional(),unit_outputs:O.record(O.array(K1n)).optional(),output_declared_by:O.record(O.array(O.string())).optional(),previous_review:Z1n.optional(),drift:O.array(Y1n).optional(),discovered_review_url:$1n.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:Q1n.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)"),tUn=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"),nUn=O.object({question:O.string(),selectedOptions:O.array(O.string()),otherText:O.string().optional()}),rUn=O.object({session_id:O.string(),session_type:O.literal("question"),status:AD,title:O.string().optional(),context:O.string().optional(),questions:O.array(tUn).optional(),answers:O.array(nUn).optional(),image_urls:O.array(O.string()).optional()}).describe("Question session payload (GET /api/session/:id, session_type=question)"),iUn=O.object({name:O.string(),description:O.string(),preview_html:O.string()}),sUn=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)"),oUn=O.object({session_id:O.string(),session_type:O.literal("design_direction"),status:AD,title:O.string().optional(),intent_slug:O.string().optional(),context:O.string().optional(),archetypes:O.array(iUn).optional(),selection:sUn.nullable().optional()}).describe("Design-direction session payload (GET /api/session/:id, session_type=design_direction)"),aUn=O.enum(["studio","mode","stage","confirm","url_input"]),cUn=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)."),uUn=O.object({id:O.string()}).describe("Saved picker selection (nullable on the session)"),lUn=O.object({session_id:O.string(),session_type:O.literal("picker"),status:AD,intent_slug:O.string().optional(),kind:aUn,title:O.string(),prompt:O.string(),options:O.array(cUn),selection:uUn.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"),dUn=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"),fUn=O.object({ok:O.literal(!0),id:O.string()}).describe("Success response from POST /picker/:sessionId/select"),pUn=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."),hUn=O.discriminatedUnion("session_type",[eUn,rUn,oUn,lUn,pUn]).describe("GET /api/session/:id response body \u2014 discriminated on session_type"),mUn=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."),gUn=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()}),yUn=O.object({slug:O.string(),title:O.string(),status:O.string()}),lZr=O.object({intent:O.string(),stage:O.string().nullable(),phase:O.string().optional(),units:O.array(yUn),feedback_summary:mUn,stages:O.array(gUn)}).describe("GET /api/review/current response body"),SUn=O.object({}).describe("HEAD /api/session/:id/heartbeat \u2014 no body. 200 if session exists, 404 otherwise.")});var vfe=v(()=>{"use strict";ofe();pg();ffe();gfe();MK();Efe();Tfe()});var Rfe=v(()=>{"use strict"});var vut=v(()=>{"use strict";Zie();vfe();Rfe()});function vUn(e){return!(e.includes("\0")||_Un.test(e)||e.startsWith("/")||e.startsWith("\\")||TUn.test(e)||e==="."||e.split(/[\\/]+/).some(n=>n===".."))}var _Un,TUn,Rut,wZr,Aut=v(()=>{"use strict";_l();_Un=/%(?:00|2e|2f|5c)/i,TUn=/^[A-Za-z]:/;Rut=O.object({sessionId:O.string().min(1).describe("Session ID (UUID issued by sessions.createSession)"),path:O.string().min(1).refine(vUn,{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"),wZr=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 wut,RUn,AUn,wUn,kUn,kut,Iut,IUn,xUn,OUn,PUn,NUn,CUn,MUn,DUn,LUn,UUn,FUn,jUn,PZr,xut=v(()=>{"use strict";_l();pg();MK();wut=65536,RUn=O.object({type:O.literal("decide"),decision:O.string().max(32),feedback:O.string().max(1e4).optional(),annotations:pI.optional()}).describe("Review decision frame (session_type=review)"),AUn=O.object({type:O.literal("answer"),answers:O.array(yfe),feedback:O.string().max(1e4).optional(),annotations:NK.optional()}).describe("Question answer frame (session_type=question)"),wUn=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"),kUn=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."),kut=(e,t)=>{let n=JSON.stringify(e).length;n>wut&&t.addIssue({code:O.ZodIssueCode.custom,message:`Serialized frame size ${n} exceeds ${wut} bytes`,path:[]})},Iut=O.discriminatedUnion("type",[RUn,AUn,wUn,kUn]).superRefine(kut).describe("Any client -> server WebSocket envelope"),IUn=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."),xUn=O.object({type:O.literal("error"),error:O.string().max(500)}).describe("Server error frame"),OUn=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."),PUn=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)."),NUn=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()}),CUn=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()}),MUn=O.object({type:O.literal("feedback_changed"),feedback_id:O.string().max(64),status:O.string().max(32),stage:O.string().max(64).optional()}),DUn=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()}),LUn=O.object({type:O.literal("await_state_changed"),session_id:O.string().max(64),await_active:O.boolean()}),UUn=O.object({type:O.literal("pending_decision_changed"),session_id:O.string().max(64),queued:O.boolean()}),FUn=O.discriminatedUnion("type",[NUn,CUn,MUn,DUn,LUn,UUn]),jUn=O.object({type:O.literal("intent-event"),session_id:O.string().max(64),event:FUn}).describe("Server broadcast \u2014 a per-intent live-state event for any SPA tab subscribed to this intent's channel."),PZr=O.discriminatedUnion("type",[IUn,xUn,OUn,PUn,jUn]).superRefine(kut).describe("Any server -> client WebSocket envelope")});var vT=v(()=>{"use strict";vut();vfe();ofe();afe();pg();ffe();gfe();Aut();MK();Efe();Tfe();xut();Rfe()});function hg(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}=Out(t[1]);return r.length===0?{text:e,removed:[]}:{text:`--- +${n}`),t.destroy(e)}function hut(e){if(typeof e!="function")throw new dut(typeof e);if(e.constructor.name==="AsyncFunction")throw new dut("AsyncFunction")}vD.exports=sfe;vD.exports.errorCodes=TT;vD.exports.fastify=sfe;vD.exports.default=sfe});var _l=v(()=>{tre();tre()});var E1n,ofe=v(()=>{"use strict";_l();E1n=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 _1n,T1n,afe=v(()=>{"use strict";_l();_1n=O.enum(["loopback","token"]).describe("Transport invariant \u2014 routes declare 'loopback' (v1 runtime policy) or 'token' (reserved for future bearer-token routes)."),T1n=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 Sut,cfe,but,RD,PK,Eut,_ut,ufe,Tut,pI,v1n,R1n,NK,WYr,AD,A1n,KYr,wD,CK,kD,lfe,pg=v(()=>{"use strict";_l();afe();Sut=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."),cfe=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)."),but=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."),RD=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."),PK=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."),Eut=O.object({author:O.string().min(1).max(200).describe("Free-form author handle ('user', agent name)."),author_type:Sut,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"),_ut=Sut,ufe=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"),Tut=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"),pI=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(ufe).optional(),comments:O.array(Tut).optional()}).describe("Annotations attached to a review decision"),v1n=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"),R1n=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"),NK=O.object({comments:O.array(Tut).optional(),pins:O.array(v1n).optional(),screenshots:O.array(R1n).max(20).optional()}).describe("Annotations attached to a question answer"),WYr=O.enum(["review","question","design_direction"]).describe("Session type discriminator"),AD=O.enum(["pending","decided","answered","approved","changes_requested"]).describe("Runtime status across review | question | design_direction sessions."),A1n=O.object({code:O.string(),message:O.string(),path:O.array(O.union([O.string(),O.number()]))}).passthrough().describe("Structural ZodIssue on the wire \u2014 we expose code/message/path at minimum; extra keys are preserved via passthrough."),KYr=O.object({error:O.literal("validation_failed"),issues:O.array(A1n)}).describe("Uniform 400 response for request-body validation failure (malformed JSON, schema mismatch, oversize)"),wD=1048576,CK=131072,kD=8388608,lfe=33554432});var w1n,k1n,I1n,x1n,O1n,P1n,N1n,dfe,C1n,ffe=v(()=>{"use strict";_l();pg();w1n=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"),k1n=O.object({pins:O.array(ufe).optional(),screenshots:O.array(w1n).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:k1n.optional()}).describe("Final selection \u2014 user picked one archetype"),x1n=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"),P1n=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"),N1n=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"),dfe=O.discriminatedUnion("mode",[I1n,x1n,P1n,N1n]).describe("POST /direction/:sessionId/select request body"),C1n=O.object({ok:O.literal(!0)}).describe("POST /direction/:sessionId/select response body")});var vut,M1n,D1n,L1n,U1n,pfe,F1n,hfe,j1n,H1n,mfe,q1n,gfe=v(()=>{"use strict";_l();pg();vut=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"),M1n=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:RD,origin:cfe,severity:but.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:_ut,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:PK.nullable().optional().describe("Routing hint for the feedback resolver. null/unset = router defaults to stage_revisit."),replies:O.array(Eut).optional().describe("Thread of replies on this feedback item. Empty / missing = no replies yet."),inline_anchor:vut.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(M1n)}).describe("GET /api/feedback/:intent/:stage response body"),L1n=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"),U1n=6e6,pfe=O.object({title:O.string().min(1).max(200),body:O.string().min(1).max(1e4),origin:cfe.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:L1n.optional(),inline_anchor:vut.optional(),resolution:PK.optional().describe("Author's preferred resolution path. Router defaults to stage_revisit when omitted."),attachment_data_url:O.string().max(U1n).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"),F1n=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"),hfe=O.object({status:RD.optional(),closed_by:O.string().max(200).optional(),resolution:PK.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"),j1n=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"),H1n=O.object({feedback_id:O.string(),deleted:O.literal(!0),message:O.string()}).describe("DELETE /api/feedback/:intent/:stage/:id response body"),mfe=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"),q1n=O.object({feedback_id:O.string(),reply_index:O.number().int().nonnegative().describe("Zero-based index of the new reply inside replies[]."),status:RD,message:O.string()}).describe("POST /api/feedback/:intent/:stage/:id/replies response body")});var yfe,Sfe,B1n,MK=v(()=>{"use strict";_l();pg();yfe=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"),Sfe=O.object({answers:O.array(yfe).max(50),feedback:O.string().max(1e4).optional(),annotations:NK.optional()}).describe("POST /question/:sessionId/answer request body"),B1n=O.object({ok:O.literal(!0)}).describe("POST /question/:sessionId/answer response body")});var z1n,bfe,G1n,Efe=v(()=>{"use strict";_l();pg();z1n=O.enum(["approved","changes_requested"]).describe("Canonical review decision. Anything != approved is coerced to changes_requested server-side."),bfe=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:pI.optional()}).describe("POST /review/:sessionId/decide request body"),G1n=O.object({ok:O.literal(!0),decision:z1n,feedback:O.string()}).describe("POST /review/:sessionId/decide response body")});var ID,lZr,V1n,W1n,K1n,_fe,Y1n,Z1n,J1n,Rut,X1n,Q1n,$1n,eUn,tUn,nUn,rUn,iUn,sUn,oUn,aUn,cUn,uUn,lUn,dUn,fUn,pUn,hUn,mUn,gUn,yUn,SUn,dZr,bUn,Tfe=v(()=>{"use strict";_l();pg();ID=O.record(O.unknown()).describe("Opaque parsed artifact (ParsedIntent / ParsedUnit / CriterionItem / etc.)"),lZr=O.enum(["auto","ask","external","await"]).describe("Review-gate type declared in STAGE.md"),V1n=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."),W1n=O.object({name:O.string(),content:O.string()}),K1n=O.object({stage:O.string(),name:O.string(),content:O.string()}),_fe=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()}),Y1n=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()}),Z1n=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."),J1n=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."),Rut=O.object({key:O.string(),label:O.string(),status:O.enum(["done","active","pending"])}).describe("One milestone in the granular per-stage progress track"),X1n=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(Rut).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?'."),Q1n=O.enum(["ad_hoc_done","open_pr","submit_external","start_intent","start_execution","complete_stage","submit_intent_review","complete_intent","approve"]),$1n=O.object({label:O.string(),kind:Q1n}).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')."),eUn=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"),tUn=O.object({session_id:O.string(),session_type:O.literal("review"),status:AD,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:pI.optional(),intent:ID.optional(),units:O.array(ID).optional(),criteria:O.array(ID).optional(),mermaid:O.string().optional(),intent_mockups:O.array(ID).optional(),unit_mockups:O.record(O.array(ID)).optional(),stage_states:O.record(V1n).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(Rut)).optional(),current_state:X1n.optional(),knowledge_files:O.array(W1n).optional(),stage_artifacts:O.array(K1n).optional(),output_artifacts:O.array(_fe).optional(),other_files:O.array(_fe).optional(),intent_other_files:O.array(_fe).optional(),unit_outputs:O.record(O.array(Y1n)).optional(),output_declared_by:O.record(O.array(O.string())).optional(),previous_review:J1n.optional(),drift:O.array(Z1n).optional(),discovered_review_url:eUn.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:$1n.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)"),nUn=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"),rUn=O.object({question:O.string(),selectedOptions:O.array(O.string()),otherText:O.string().optional()}),iUn=O.object({session_id:O.string(),session_type:O.literal("question"),status:AD,title:O.string().optional(),context:O.string().optional(),questions:O.array(nUn).optional(),answers:O.array(rUn).optional(),image_urls:O.array(O.string()).optional()}).describe("Question session payload (GET /api/session/:id, session_type=question)"),sUn=O.object({name:O.string(),description:O.string(),preview_html:O.string()}),oUn=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)"),aUn=O.object({session_id:O.string(),session_type:O.literal("design_direction"),status:AD,title:O.string().optional(),intent_slug:O.string().optional(),context:O.string().optional(),archetypes:O.array(sUn).optional(),selection:oUn.nullable().optional()}).describe("Design-direction session payload (GET /api/session/:id, session_type=design_direction)"),cUn=O.enum(["studio","mode","stage","confirm","url_input"]),uUn=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)."),lUn=O.object({id:O.string()}).describe("Saved picker selection (nullable on the session)"),dUn=O.object({session_id:O.string(),session_type:O.literal("picker"),status:AD,intent_slug:O.string().optional(),kind:cUn,title:O.string(),prompt:O.string(),options:O.array(uUn),selection:lUn.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"),fUn=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"),pUn=O.object({ok:O.literal(!0),id:O.string()}).describe("Success response from POST /picker/:sessionId/select"),hUn=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."),mUn=O.discriminatedUnion("session_type",[tUn,iUn,aUn,dUn,hUn]).describe("GET /api/session/:id response body \u2014 discriminated on session_type"),gUn=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."),yUn=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()}),SUn=O.object({slug:O.string(),title:O.string(),status:O.string()}),dZr=O.object({intent:O.string(),stage:O.string().nullable(),phase:O.string().optional(),units:O.array(SUn),feedback_summary:gUn,stages:O.array(yUn)}).describe("GET /api/review/current response body"),bUn=O.object({}).describe("HEAD /api/session/:id/heartbeat \u2014 no body. 200 if session exists, 404 otherwise.")});var vfe=v(()=>{"use strict";ofe();pg();ffe();gfe();MK();Efe();Tfe()});var Rfe=v(()=>{"use strict"});var Aut=v(()=>{"use strict";Zie();vfe();Rfe()});function RUn(e){return!(e.includes("\0")||TUn.test(e)||e.startsWith("/")||e.startsWith("\\")||vUn.test(e)||e==="."||e.split(/[\\/]+/).some(n=>n===".."))}var TUn,vUn,wut,kZr,kut=v(()=>{"use strict";_l();TUn=/%(?:00|2e|2f|5c)/i,vUn=/^[A-Za-z]:/;wut=O.object({sessionId:O.string().min(1).describe("Session ID (UUID issued by sessions.createSession)"),path:O.string().min(1).refine(RUn,{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"),kZr=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 Iut,AUn,wUn,kUn,IUn,xut,Out,xUn,OUn,PUn,NUn,CUn,MUn,DUn,LUn,UUn,FUn,jUn,HUn,NZr,Put=v(()=>{"use strict";_l();pg();MK();Iut=65536,AUn=O.object({type:O.literal("decide"),decision:O.string().max(32),feedback:O.string().max(1e4).optional(),annotations:pI.optional()}).describe("Review decision frame (session_type=review)"),wUn=O.object({type:O.literal("answer"),answers:O.array(yfe),feedback:O.string().max(1e4).optional(),annotations:NK.optional()}).describe("Question answer frame (session_type=question)"),kUn=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."),xut=(e,t)=>{let n=JSON.stringify(e).length;n>Iut&&t.addIssue({code:O.ZodIssueCode.custom,message:`Serialized frame size ${n} exceeds ${Iut} bytes`,path:[]})},Out=O.discriminatedUnion("type",[AUn,wUn,kUn,IUn]).superRefine(xut).describe("Any client -> server WebSocket envelope"),xUn=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"),PUn=O.object({type:O.literal("heartbeat_ack"),t:O.number().optional()}).describe("Server heartbeat acknowledgement \u2014 presence was recorded; the connection is still seen as live."),NUn=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)."),CUn=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()}),MUn=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()}),LUn=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()}),UUn=O.object({type:O.literal("await_state_changed"),session_id:O.string().max(64),await_active:O.boolean()}),FUn=O.object({type:O.literal("pending_decision_changed"),session_id:O.string().max(64),queued:O.boolean()}),jUn=O.discriminatedUnion("type",[CUn,MUn,DUn,LUn,UUn,FUn]),HUn=O.object({type:O.literal("intent-event"),session_id:O.string().max(64),event:jUn}).describe("Server broadcast \u2014 a per-intent live-state event for any SPA tab subscribed to this intent's channel."),NZr=O.discriminatedUnion("type",[xUn,OUn,PUn,NUn,HUn]).superRefine(xut).describe("Any server -> client WebSocket envelope")});var vT=v(()=>{"use strict";Aut();vfe();ofe();afe();pg();ffe();gfe();kut();MK();Efe();Tfe();Put();Rfe()});function hg(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}=Nut(t[1]);return r.length===0?{text:e,removed:[]}:{text:`--- ${n} ----${t[2]??""}`,removed:r}}function Out(e){let t=e.split(/\r?\n/),n=[],r=null;for(let c of t){let u=c.match(/^([A-Za-z_][A-Za-z0-9_-]*)\s*:/);u!=null&&!c.startsWith(" ")&&!c.startsWith(" ")&&u?(r&&n.push(r),r={key:u[1],text:[c]}):r?r.text.push(c):n.push({key:null,text:[c]})}r&&n.push(r);let i=new Map,s=new Map;for(let c=0;c1&&o.push(c);let a=[];for(let c=0;c{});var OD=w(($Zr,Nut)=>{var HUn=Object.prototype.toString;Nut.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 VUn(t)?"generatorfunction":"function";if(qUn(t))return"array";if(YUn(t))return"buffer";if(KUn(t))return"arguments";if(zUn(t))return"date";if(BUn(t))return"error";if(GUn(t))return"regexp";switch(Put(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(WUn(t))return"generator";switch(n=HUn.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 Put(e){return typeof e.constructor=="function"?e.constructor.name:null}function qUn(e){return Array.isArray?Array.isArray(e):e instanceof Array}function BUn(e){return e instanceof Error||typeof e.message=="string"&&e.constructor&&typeof e.constructor.stackTraceLimit=="number"}function zUn(e){return e instanceof Date?!0:typeof e.toDateString=="function"&&typeof e.getDate=="function"&&typeof e.setDate=="function"}function GUn(e){return e instanceof RegExp?!0:typeof e.flags=="string"&&typeof e.ignoreCase=="boolean"&&typeof e.multiline=="boolean"&&typeof e.global=="boolean"}function VUn(e,t){return Put(e)==="GeneratorFunction"}function WUn(e){return typeof e.throw=="function"&&typeof e.return=="function"&&typeof e.next=="function"}function KUn(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 YUn(e){return e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}});var Mut=w((e6r,Cut)=>{"use strict";Cut.exports=function(t){return typeof t<"u"&&t!==null&&(typeof t=="object"||typeof t=="function")}});var Uut=w((t6r,Lut)=>{"use strict";var Dut=Mut();Lut.exports=function(t){Dut(t)||(t={});for(var n=arguments.length,r=1;r{"use strict";var XUn=OD(),QUn=Uut();jut.exports=function(e,t){typeof t=="function"&&(t={parse:t});var n=eFn(e),r={section_delimiter:"---",parse:nFn},i=QUn({},r,t),s=i.section_delimiter,o=n.content.split(/\r?\n/),a=null,c=Fut(),u=[],l=[];function d(y){n.content=y,a=[],u=[]}function f(y){l.length&&(c.key=tFn(l[0],s),c.content=y,i.parse(c,a),a.push(c),c=Fut(),u=[],l=[])}for(var p=0;p1&&o.push(c);let a=[];for(let c=0;c{});var OD=w((e6r,Mut)=>{var qUn=Object.prototype.toString;Mut.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 WUn(t)?"generatorfunction":"function";if(BUn(t))return"array";if(ZUn(t))return"buffer";if(YUn(t))return"arguments";if(GUn(t))return"date";if(zUn(t))return"error";if(VUn(t))return"regexp";switch(Cut(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(KUn(t))return"generator";switch(n=qUn.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 Cut(e){return typeof e.constructor=="function"?e.constructor.name:null}function BUn(e){return Array.isArray?Array.isArray(e):e instanceof Array}function zUn(e){return e instanceof Error||typeof e.message=="string"&&e.constructor&&typeof e.constructor.stackTraceLimit=="number"}function GUn(e){return e instanceof Date?!0:typeof e.toDateString=="function"&&typeof e.getDate=="function"&&typeof e.setDate=="function"}function VUn(e){return e instanceof RegExp?!0:typeof e.flags=="string"&&typeof e.ignoreCase=="boolean"&&typeof e.multiline=="boolean"&&typeof e.global=="boolean"}function WUn(e,t){return Cut(e)==="GeneratorFunction"}function KUn(e){return typeof e.throw=="function"&&typeof e.return=="function"&&typeof e.next=="function"}function YUn(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 ZUn(e){return e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}});var Lut=w((t6r,Dut)=>{"use strict";Dut.exports=function(t){return typeof t<"u"&&t!==null&&(typeof t=="object"||typeof t=="function")}});var jut=w((n6r,Fut)=>{"use strict";var Uut=Lut();Fut.exports=function(t){Uut(t)||(t={});for(var n=arguments.length,r=1;r{"use strict";var QUn=OD(),$Un=jut();qut.exports=function(e,t){typeof t=="function"&&(t={parse:t});var n=tFn(e),r={section_delimiter:"---",parse:rFn},i=$Un({},r,t),s=i.section_delimiter,o=n.content.split(/\r?\n/),a=null,c=Hut(),u=[],l=[];function d(y){n.content=y,a=[],u=[]}function f(y){l.length&&(c.key=nFn(l[0],s),c.content=y,i.parse(c,a),a.push(c),c=Hut(),u=[],l=[])}for(var p=0;p{"use strict";function qut(e){return typeof e>"u"||e===null}function iFn(e){return typeof e=="object"&&e!==null}function sFn(e){return Array.isArray(e)?e:qut(e)?[]:[e]}function oFn(e,t){var n,r,i,s;if(t)for(s=Object.keys(t),n=0,r=s.length;n{"use strict";function PD(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||""}PD.prototype=Object.create(Error.prototype);PD.prototype.constructor=PD;PD.prototype.toString=function(t){var n=this.name+": ";return n+=this.reason||"(unknown reason)",!t&&this.mark&&(n+=" "+this.mark.toString()),n};But.exports=PD});var Vut=w((s6r,Gut)=>{"use strict";var zut=AT();function Afe(e,t,n,r,i){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=i}Afe.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 eFn(e,t){return!(e.slice(0,t.length)!==t||e.charAt(t.length+1)===t.slice(-1))}function tFn(e){if(QUn(e)!=="object"&&(e={content:e}),typeof e.content!="string"&&!iFn(e.content))throw new TypeError("expected a buffer or string");return e.content=e.content.toString(),e.sections=[],e}function nFn(e,t){return e?e.slice(t.length).trim():""}function Hut(){return{key:"",data:"",content:""}}function rFn(e){return e}function iFn(e){return e&&e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}});var AT=w((i6r,RT)=>{"use strict";function zut(e){return typeof e>"u"||e===null}function sFn(e){return typeof e=="object"&&e!==null}function oFn(e){return Array.isArray(e)?e:zut(e)?[]:[e]}function aFn(e,t){var n,r,i,s;if(t)for(s=Object.keys(t),n=0,r=s.length;n{"use strict";function PD(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||""}PD.prototype=Object.create(Error.prototype);PD.prototype.constructor=PD;PD.prototype.toString=function(t){var n=this.name+": ";return n+=this.reason||"(unknown reason)",!t&&this.mark&&(n+=" "+this.mark.toString()),n};Gut.exports=PD});var Kut=w((o6r,Wut)=>{"use strict";var Vut=AT();function Afe(e,t,n,r,i){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=i}Afe.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),zut.repeat(" ",t)+r+a+s+` -`+zut.repeat(" ",t+this.position-i+r.length)+"^"};Afe.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};Gut.exports=Afe});var To=w((o6r,Kut)=>{"use strict";var Wut=mI(),uFn=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],lFn=["scalar","sequence","mapping"];function dFn(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(r){t[String(r)]=n})}),t}function fFn(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(uFn.indexOf(n)===-1)throw new Wut('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=dFn(t.styleAliases||null),lFn.indexOf(this.kind)===-1)throw new Wut('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}Kut.exports=fFn});var wT=w((a6r,Zut)=>{"use strict";var Yut=AT(),DK=mI(),pFn=To();function wfe(e,t,n){var r=[];return e.include.forEach(function(i){n=wfe(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 hFn(){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 mFn=To();Jut.exports=new mFn("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var $ut=w((u6r,Qut)=>{"use strict";var gFn=To();Qut.exports=new gFn("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var tlt=w((l6r,elt)=>{"use strict";var yFn=To();elt.exports=new yFn("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var LK=w((d6r,nlt)=>{"use strict";var SFn=wT();nlt.exports=new SFn({explicit:[Xut(),$ut(),tlt()]})});var ilt=w((f6r,rlt)=>{"use strict";var bFn=To();function EFn(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function _Fn(){return null}function TFn(e){return e===null}rlt.exports=new bFn("tag:yaml.org,2002:null",{kind:"scalar",resolve:EFn,construct:_Fn,predicate:TFn,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var olt=w((p6r,slt)=>{"use strict";var vFn=To();function RFn(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 AFn(e){return e==="true"||e==="True"||e==="TRUE"}function wFn(e){return Object.prototype.toString.call(e)==="[object Boolean]"}slt.exports=new vFn("tag:yaml.org,2002:bool",{kind:"scalar",resolve:RFn,construct:AFn,predicate:wFn,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 clt=w((h6r,alt)=>{"use strict";var kFn=AT(),IFn=To();function xFn(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function OFn(e){return 48<=e&&e<=55}function PFn(e){return 48<=e&&e<=57}function NFn(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 dlt=w((m6r,llt)=>{"use strict";var ult=AT(),DFn=To(),LFn=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 UFn(e){return!(e===null||!LFn.test(e)||e[e.length-1]==="_")}function FFn(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 jFn=/^[-+]?[0-9]+e/;function HFn(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(ult.isNegativeZero(e))return"-0.0";return n=e.toString(10),jFn.test(n)?n.replace("e",".e"):n}function qFn(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||ult.isNegativeZero(e))}llt.exports=new DFn("tag:yaml.org,2002:float",{kind:"scalar",resolve:UFn,construct:FFn,predicate:qFn,represent:HFn,defaultStyle:"lowercase"})});var kfe=w((g6r,flt)=>{"use strict";var BFn=wT();flt.exports=new BFn({include:[LK()],implicit:[ilt(),olt(),clt(),dlt()]})});var Ife=w((y6r,plt)=>{"use strict";var zFn=wT();plt.exports=new zFn({include:[kfe()]})});var ylt=w((S6r,glt)=>{"use strict";var GFn=To(),hlt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),mlt=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 VFn(e){return e===null?!1:hlt.exec(e)!==null||mlt.exec(e)!==null}function WFn(e){var t,n,r,i,s,o,a,c=0,u=null,l,d,f;if(t=hlt.exec(e),t===null&&(t=mlt.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 KFn(e){return e.toISOString()}glt.exports=new GFn("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:VFn,construct:WFn,instanceOf:Date,represent:KFn})});var blt=w((b6r,Slt)=>{"use strict";var YFn=To();function ZFn(e){return e==="<<"||e===null}Slt.exports=new YFn("tag:yaml.org,2002:merge",{kind:"scalar",resolve:ZFn})});var Tlt=w((E6r,_lt)=>{"use strict";var kT;try{Elt=Y,kT=Elt("buffer").Buffer}catch{}var Elt,JFn=To(),xfe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function XFn(e){if(e===null)return!1;var t,n,r=0,i=e.length,s=xfe;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8===0}function QFn(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,s=xfe,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),kT?kT.from?kT.from(a):new kT(a):a}function $Fn(e){var t="",n=0,r,i,s=e.length,o=xfe;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 ejn(e){return kT&&kT.isBuffer(e)}_lt.exports=new JFn("tag:yaml.org,2002:binary",{kind:"scalar",resolve:XFn,construct:QFn,predicate:ejn,represent:$Fn})});var Rlt=w((T6r,vlt)=>{"use strict";var tjn=To(),njn=Object.prototype.hasOwnProperty,rjn=Object.prototype.toString;function ijn(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 ojn=To(),ajn=Object.prototype.toString;function cjn(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 ljn=To(),djn=Object.prototype.hasOwnProperty;function fjn(e){if(e===null)return!0;var t,n=e;for(t in n)if(djn.call(n,t)&&n[t]!==null)return!1;return!0}function pjn(e){return e!==null?e:{}}klt.exports=new ljn("tag:yaml.org,2002:set",{kind:"mapping",resolve:fjn,construct:pjn})});var yI=w((A6r,xlt)=>{"use strict";var hjn=wT();xlt.exports=new hjn({include:[Ife()],implicit:[ylt(),blt()],explicit:[Tlt(),Rlt(),wlt(),Ilt()]})});var Plt=w((w6r,Olt)=>{"use strict";var mjn=To();function gjn(){return!0}function yjn(){}function Sjn(){return""}function bjn(e){return typeof e>"u"}Olt.exports=new mjn("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:gjn,construct:yjn,predicate:bjn,represent:Sjn})});var Clt=w((k6r,Nlt)=>{"use strict";var Ejn=To();function _jn(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 Tjn(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 vjn(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function Rjn(e){return Object.prototype.toString.call(e)==="[object RegExp]"}Nlt.exports=new Ejn("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:_jn,construct:Tjn,predicate:Rjn,represent:vjn})});var Llt=w((I6r,Dlt)=>{"use strict";var UK;try{Mlt=Y,UK=Mlt("esprima")}catch{typeof window<"u"&&(UK=window.esprima)}var Mlt,Ajn=To();function wjn(e){if(e===null)return!1;try{var t="("+e+")",n=UK.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 kjn(e){var t="("+e+")",n=UK.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 Ijn(e){return e.toString()}function xjn(e){return Object.prototype.toString.call(e)==="[object Function]"}Dlt.exports=new Ajn("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:wjn,construct:kjn,predicate:xjn,represent:Ijn})});var ND=w((O6r,Flt)=>{"use strict";var Ult=wT();Flt.exports=Ult.DEFAULT=new Ult({include:[yI()],explicit:[Plt(),Clt(),Llt()]})});var idt=w((P6r,CD)=>{"use strict";var mg=AT(),Vlt=mI(),Ojn=Vut(),Wlt=yI(),Pjn=ND(),db=Object.prototype.hasOwnProperty,FK=1,Klt=2,Ylt=3,jK=4,Ofe=1,Njn=2,jlt=3,Cjn=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Mjn=/[\x85\u2028\u2029]/,Djn=/[,\[\]\{\}]/,Zlt=/^(?:!|!!|![a-z\-]+!)$/i,Jlt=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Hlt(e){return Object.prototype.toString.call(e)}function Ph(e){return e===10||e===13}function xT(e){return e===9||e===32}function Pu(e){return e===9||e===32||e===10||e===13}function SI(e){return e===44||e===91||e===93||e===123||e===125}function Ljn(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function Ujn(e){return e===120?2:e===117?4:e===85?8:0}function Fjn(e){return 48<=e&&e<=57?e-48:-1}function qlt(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 jjn(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function Xlt(e,t,n){t==="__proto__"?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!0,value:n}):e[t]=n}var Qlt=new Array(256),$lt=new Array(256);for(IT=0;IT<256;IT++)Qlt[IT]=qlt(IT)?1:0,$lt[IT]=qlt(IT);var IT;function Hjn(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Pjn,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 edt(e,t){return new Vlt(t,new Ojn(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Lt(e,t){throw edt(e,t)}function HK(e,t){e.onWarning&&e.onWarning.call(null,edt(e,t))}var Blt={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&&HK(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],Zlt.test(i)||Lt(t,"ill-formed tag handle (first argument) of the TAG directive"),db.call(t.tagMap,i)&&Lt(t,'there is a previously declared suffix for "'+i+'" tag handle'),Jlt.test(s)||Lt(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[i]=s}};function lb(e,t,n,r){var i,s,o,a;if(t1&&(e.result+=mg.repeat(` -`,t-1))}function qjn(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)||SI(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(i=e.input.charCodeAt(e.position+1),Pu(i)||n&&SI(i)))return!1;for(e.kind="scalar",e.result="",s=o=e.position,a=!1;p!==0;){if(p===58){if(i=e.input.charCodeAt(e.position+1),Pu(i)||n&&SI(i))break}else if(p===35){if(r=e.input.charCodeAt(e.position-1),Pu(r))break}else{if(e.position===e.lineStart&&qK(e)||n&&SI(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&&(lb(e,s,o,!1),Nfe(e,e.line-c),s=o=e.position,a=!1),xT(p)||(o=e.position+1),p=e.input.charCodeAt(++e.position)}return lb(e,s,o,!1),e.result?!0:(e.kind=d,e.result=f,!1)}function Bjn(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(lb(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)?(lb(e,r,i,!0),Nfe(e,to(e,!1,t)),r=i=e.position):e.position===e.lineStart&&qK(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 zjn(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 lb(e,n,e.position,!0),e.position++,!0;if(a===92){if(lb(e,n,e.position,!0),a=e.input.charCodeAt(++e.position),Ph(a))to(e,!1,t);else if(a<256&&Qlt[a])e.result+=$lt[a],e.position++;else if((o=Ujn(a))>0){for(i=o,s=0;i>0;i--)a=e.input.charCodeAt(++e.position),(o=Ljn(a))>=0?s=(s<<4)+o:Lt(e,"expected hexadecimal character");e.result+=jjn(s),e.position++}else Lt(e,"unknown escape sequence");n=r=e.position}else Ph(a)?(lb(e,n,r,!0),Nfe(e,to(e,!1,t)),n=r=e.position):e.position===e.lineStart&&qK(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 Gjn(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,EI(e,t,FK,!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),EI(e,t,FK,!1,!0),m=e.result),d?bI(e,s,f,h,p,m):u?s.push(bI(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 Vjn(e,t){var n,r,i=Ofe,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)Ofe===i?i=d===43?jlt:Njn:Lt(e,"repeat of a chomping mode identifier");else if((l=Fjn(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(xT(d)){do d=e.input.charCodeAt(++e.position);while(xT(d));if(d===35)do d=e.input.charCodeAt(++e.position);while(!Ph(d)&&d!==0)}for(;d!==0;){for(Pfe(e),e.lineIndent=0,d=e.input.charCodeAt(e.position);(!o||e.lineIndenta&&(a=e.lineIndent),Ph(d)){c++;continue}if(e.lineIndentn/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(i,o),Vut.repeat(" ",t)+r+a+s+` +`+Vut.repeat(" ",t+this.position-i+r.length)+"^"};Afe.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};Wut.exports=Afe});var To=w((a6r,Zut)=>{"use strict";var Yut=mI(),lFn=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],dFn=["scalar","sequence","mapping"];function fFn(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(r){t[String(r)]=n})}),t}function pFn(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(lFn.indexOf(n)===-1)throw new Yut('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=fFn(t.styleAliases||null),dFn.indexOf(this.kind)===-1)throw new Yut('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}Zut.exports=pFn});var wT=w((c6r,Xut)=>{"use strict";var Jut=AT(),DK=mI(),hFn=To();function wfe(e,t,n){var r=[];return e.include.forEach(function(i){n=wfe(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 mFn(){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 gFn=To();Qut.exports=new gFn("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var tlt=w((l6r,elt)=>{"use strict";var yFn=To();elt.exports=new yFn("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var rlt=w((d6r,nlt)=>{"use strict";var SFn=To();nlt.exports=new SFn("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var LK=w((f6r,ilt)=>{"use strict";var bFn=wT();ilt.exports=new bFn({explicit:[$ut(),tlt(),rlt()]})});var olt=w((p6r,slt)=>{"use strict";var EFn=To();function _Fn(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function TFn(){return null}function vFn(e){return e===null}slt.exports=new EFn("tag:yaml.org,2002:null",{kind:"scalar",resolve:_Fn,construct:TFn,predicate:vFn,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var clt=w((h6r,alt)=>{"use strict";var RFn=To();function AFn(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function wFn(e){return e==="true"||e==="True"||e==="TRUE"}function kFn(e){return Object.prototype.toString.call(e)==="[object Boolean]"}alt.exports=new RFn("tag:yaml.org,2002:bool",{kind:"scalar",resolve:AFn,construct:wFn,predicate:kFn,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 llt=w((m6r,ult)=>{"use strict";var IFn=AT(),xFn=To();function OFn(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function PFn(e){return 48<=e&&e<=55}function NFn(e){return 48<=e&&e<=57}function CFn(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 plt=w((g6r,flt)=>{"use strict";var dlt=AT(),LFn=To(),UFn=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 FFn(e){return!(e===null||!UFn.test(e)||e[e.length-1]==="_")}function jFn(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 HFn=/^[-+]?[0-9]+e/;function qFn(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(dlt.isNegativeZero(e))return"-0.0";return n=e.toString(10),HFn.test(n)?n.replace("e",".e"):n}function BFn(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||dlt.isNegativeZero(e))}flt.exports=new LFn("tag:yaml.org,2002:float",{kind:"scalar",resolve:FFn,construct:jFn,predicate:BFn,represent:qFn,defaultStyle:"lowercase"})});var kfe=w((y6r,hlt)=>{"use strict";var zFn=wT();hlt.exports=new zFn({include:[LK()],implicit:[olt(),clt(),llt(),plt()]})});var Ife=w((S6r,mlt)=>{"use strict";var GFn=wT();mlt.exports=new GFn({include:[kfe()]})});var blt=w((b6r,Slt)=>{"use strict";var VFn=To(),glt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),ylt=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 WFn(e){return e===null?!1:glt.exec(e)!==null||ylt.exec(e)!==null}function KFn(e){var t,n,r,i,s,o,a,c=0,u=null,l,d,f;if(t=glt.exec(e),t===null&&(t=ylt.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 YFn(e){return e.toISOString()}Slt.exports=new VFn("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:WFn,construct:KFn,instanceOf:Date,represent:YFn})});var _lt=w((E6r,Elt)=>{"use strict";var ZFn=To();function JFn(e){return e==="<<"||e===null}Elt.exports=new ZFn("tag:yaml.org,2002:merge",{kind:"scalar",resolve:JFn})});var Rlt=w((_6r,vlt)=>{"use strict";var kT;try{Tlt=Y,kT=Tlt("buffer").Buffer}catch{}var Tlt,XFn=To(),xfe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function QFn(e){if(e===null)return!1;var t,n,r=0,i=e.length,s=xfe;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8===0}function $Fn(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,s=xfe,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),kT?kT.from?kT.from(a):new kT(a):a}function ejn(e){var t="",n=0,r,i,s=e.length,o=xfe;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 tjn(e){return kT&&kT.isBuffer(e)}vlt.exports=new XFn("tag:yaml.org,2002:binary",{kind:"scalar",resolve:QFn,construct:$Fn,predicate:tjn,represent:ejn})});var wlt=w((v6r,Alt)=>{"use strict";var njn=To(),rjn=Object.prototype.hasOwnProperty,ijn=Object.prototype.toString;function sjn(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 ajn=To(),cjn=Object.prototype.toString;function ujn(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 djn=To(),fjn=Object.prototype.hasOwnProperty;function pjn(e){if(e===null)return!0;var t,n=e;for(t in n)if(fjn.call(n,t)&&n[t]!==null)return!1;return!0}function hjn(e){return e!==null?e:{}}xlt.exports=new djn("tag:yaml.org,2002:set",{kind:"mapping",resolve:pjn,construct:hjn})});var yI=w((w6r,Plt)=>{"use strict";var mjn=wT();Plt.exports=new mjn({include:[Ife()],implicit:[blt(),_lt()],explicit:[Rlt(),wlt(),Ilt(),Olt()]})});var Clt=w((k6r,Nlt)=>{"use strict";var gjn=To();function yjn(){return!0}function Sjn(){}function bjn(){return""}function Ejn(e){return typeof e>"u"}Nlt.exports=new gjn("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:yjn,construct:Sjn,predicate:Ejn,represent:bjn})});var Dlt=w((I6r,Mlt)=>{"use strict";var _jn=To();function Tjn(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 vjn(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 Rjn(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function Ajn(e){return Object.prototype.toString.call(e)==="[object RegExp]"}Mlt.exports=new _jn("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:Tjn,construct:vjn,predicate:Ajn,represent:Rjn})});var Flt=w((x6r,Ult)=>{"use strict";var UK;try{Llt=Y,UK=Llt("esprima")}catch{typeof window<"u"&&(UK=window.esprima)}var Llt,wjn=To();function kjn(e){if(e===null)return!1;try{var t="("+e+")",n=UK.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=UK.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 xjn(e){return e.toString()}function Ojn(e){return Object.prototype.toString.call(e)==="[object Function]"}Ult.exports=new wjn("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:kjn,construct:Ijn,predicate:Ojn,represent:xjn})});var ND=w((P6r,Hlt)=>{"use strict";var jlt=wT();Hlt.exports=jlt.DEFAULT=new jlt({include:[yI()],explicit:[Clt(),Dlt(),Flt()]})});var odt=w((N6r,CD)=>{"use strict";var mg=AT(),Klt=mI(),Pjn=Kut(),Ylt=yI(),Njn=ND(),db=Object.prototype.hasOwnProperty,FK=1,Zlt=2,Jlt=3,jK=4,Ofe=1,Cjn=2,qlt=3,Mjn=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Djn=/[\x85\u2028\u2029]/,Ljn=/[,\[\]\{\}]/,Xlt=/^(?:!|!!|![a-z\-]+!)$/i,Qlt=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Blt(e){return Object.prototype.toString.call(e)}function Ph(e){return e===10||e===13}function xT(e){return e===9||e===32}function Pu(e){return e===9||e===32||e===10||e===13}function SI(e){return e===44||e===91||e===93||e===123||e===125}function Ujn(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function Fjn(e){return e===120?2:e===117?4:e===85?8:0}function jjn(e){return 48<=e&&e<=57?e-48:-1}function zlt(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 Hjn(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function $lt(e,t,n){t==="__proto__"?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!0,value:n}):e[t]=n}var edt=new Array(256),tdt=new Array(256);for(IT=0;IT<256;IT++)edt[IT]=zlt(IT)?1:0,tdt[IT]=zlt(IT);var IT;function qjn(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Njn,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 ndt(e,t){return new Klt(t,new Pjn(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Lt(e,t){throw ndt(e,t)}function HK(e,t){e.onWarning&&e.onWarning.call(null,ndt(e,t))}var Glt={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&&HK(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],Xlt.test(i)||Lt(t,"ill-formed tag handle (first argument) of the TAG directive"),db.call(t.tagMap,i)&&Lt(t,'there is a previously declared suffix for "'+i+'" tag handle'),Qlt.test(s)||Lt(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[i]=s}};function lb(e,t,n,r){var i,s,o,a;if(t1&&(e.result+=mg.repeat(` +`,t-1))}function Bjn(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)||SI(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(i=e.input.charCodeAt(e.position+1),Pu(i)||n&&SI(i)))return!1;for(e.kind="scalar",e.result="",s=o=e.position,a=!1;p!==0;){if(p===58){if(i=e.input.charCodeAt(e.position+1),Pu(i)||n&&SI(i))break}else if(p===35){if(r=e.input.charCodeAt(e.position-1),Pu(r))break}else{if(e.position===e.lineStart&&qK(e)||n&&SI(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&&(lb(e,s,o,!1),Nfe(e,e.line-c),s=o=e.position,a=!1),xT(p)||(o=e.position+1),p=e.input.charCodeAt(++e.position)}return lb(e,s,o,!1),e.result?!0:(e.kind=d,e.result=f,!1)}function zjn(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(lb(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)?(lb(e,r,i,!0),Nfe(e,to(e,!1,t)),r=i=e.position):e.position===e.lineStart&&qK(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 Gjn(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 lb(e,n,e.position,!0),e.position++,!0;if(a===92){if(lb(e,n,e.position,!0),a=e.input.charCodeAt(++e.position),Ph(a))to(e,!1,t);else if(a<256&&edt[a])e.result+=tdt[a],e.position++;else if((o=Fjn(a))>0){for(i=o,s=0;i>0;i--)a=e.input.charCodeAt(++e.position),(o=Ujn(a))>=0?s=(s<<4)+o:Lt(e,"expected hexadecimal character");e.result+=Hjn(s),e.position++}else Lt(e,"unknown escape sequence");n=r=e.position}else Ph(a)?(lb(e,n,r,!0),Nfe(e,to(e,!1,t)),n=r=e.position):e.position===e.lineStart&&qK(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 Vjn(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,EI(e,t,FK,!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),EI(e,t,FK,!1,!0),m=e.result),d?bI(e,s,f,h,p,m):u?s.push(bI(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 Wjn(e,t){var n,r,i=Ofe,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)Ofe===i?i=d===43?qlt:Cjn:Lt(e,"repeat of a chomping mode identifier");else if((l=jjn(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(xT(d)){do d=e.input.charCodeAt(++e.position);while(xT(d));if(d===35)do d=e.input.charCodeAt(++e.position);while(!Ph(d)&&d!==0)}for(;d!==0;){for(Pfe(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)&&(EI(e,t,jK,!0,i)&&(h?f=e.result:p=e.result),h||(bI(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 Jjn(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(;xT(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&&Pfe(e),db.call(Blt,r)?Blt[r](e,r,i):HK(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"),EI(e,e.lineIndent-1,jK,!1,!0),to(e,!0,-1),e.checkLineBreaks&&Mjn.test(e.input.slice(t,e.position))&&HK(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&qK(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=tdt(e,n);if(typeof t!="function")return r;for(var i=0,s=r.length;i"u"&&(n=t,t=null),ndt(e,t,mg.extend({schema:Wlt},n))}function Qjn(e,t){return rdt(e,mg.extend({schema:Wlt},t))}CD.exports.loadAll=ndt;CD.exports.load=rdt;CD.exports.safeLoadAll=Xjn;CD.exports.safeLoad=Qjn});var kdt=w((N6r,Lfe)=>{"use strict";var DD=AT(),LD=mI(),$jn=ND(),eHn=yI(),fdt=Object.prototype.toString,pdt=Object.prototype.hasOwnProperty,tHn=9,MD=10,nHn=13,rHn=32,iHn=33,sHn=34,hdt=35,oHn=37,aHn=38,cHn=39,uHn=42,mdt=44,lHn=45,gdt=58,dHn=61,fHn=62,pHn=63,hHn=64,ydt=91,Sdt=93,mHn=96,bdt=123,gHn=124,Edt=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 yHn=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function SHn(e,t){var n,r,i,s,o,a,c;if(t===null)return{};for(n={},r=Object.keys(t),i=0,s=r.length;it)&&c!==0)Lt(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(EI(e,t,jK,!0,i)&&(h?f=e.result:p=e.result),h||(bI(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 Xjn(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(;xT(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&&Pfe(e),db.call(Glt,r)?Glt[r](e,r,i):HK(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"),EI(e,e.lineIndent-1,jK,!1,!0),to(e,!0,-1),e.checkLineBreaks&&Djn.test(e.input.slice(t,e.position))&&HK(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&qK(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=rdt(e,n);if(typeof t!="function")return r;for(var i=0,s=r.length;i"u"&&(n=t,t=null),idt(e,t,mg.extend({schema:Ylt},n))}function $jn(e,t){return sdt(e,mg.extend({schema:Ylt},t))}CD.exports.loadAll=idt;CD.exports.load=sdt;CD.exports.safeLoadAll=Qjn;CD.exports.safeLoad=$jn});var xdt=w((C6r,Lfe)=>{"use strict";var DD=AT(),LD=mI(),eHn=ND(),tHn=yI(),hdt=Object.prototype.toString,mdt=Object.prototype.hasOwnProperty,nHn=9,MD=10,rHn=13,iHn=32,sHn=33,oHn=34,gdt=35,aHn=37,cHn=38,uHn=39,lHn=42,ydt=44,dHn=45,Sdt=58,fHn=61,pHn=62,hHn=63,mHn=64,bdt=91,Edt=93,gHn=96,_dt=123,yHn=124,Tdt=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 SHn=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function bHn(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&&adt(o,a)}else{for(s=0;sr&&e[d+1]!==" ",d=s);else if(!_I(o))return BK;a=s>0?e.charCodeAt(s-1):null,f=f&&adt(o,a)}u=u||l&&s-d-1>r&&e[d+1]!==" "}return!c&&!u?f&&!i(e)?Tdt:vdt:n>9&&_dt(e)?BK:u?Adt:Rdt}function RHn(e,t,n,r){e.dump=(function(){if(t.length===0)return"''";if(!e.noCompatMode&&yHn.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 EHn(e,c)}switch(vHn(t,o,e.indent,s,a)){case Tdt:return t;case vdt:return"'"+t.replace(/'/g,"''")+"'";case Rdt:return"|"+cdt(t,e.indent)+udt(odt(t,i));case Adt:return">"+cdt(t,e.indent)+udt(odt(AHn(t,s),i));case BK:return'"'+wHn(t,s)+'"';default:throw new LD("impossible error: invalid scalar style")}})()}function cdt(e,t){var n=_dt(e)?String(t):"",r=e[e.length-1]===` +`+DD.repeat(" ",e.indent*t)}function _Hn(e,t){var n,r,i;for(n=0,r=e.implicitTypes.length;n0?e.charCodeAt(s-1):null,f=f&&udt(o,a)}else{for(s=0;sr&&e[d+1]!==" ",d=s);else if(!_I(o))return BK;a=s>0?e.charCodeAt(s-1):null,f=f&&udt(o,a)}u=u||l&&s-d-1>r&&e[d+1]!==" "}return!c&&!u?f&&!i(e)?Rdt:Adt:n>9&&vdt(e)?BK:u?kdt:wdt}function AHn(e,t,n,r){e.dump=(function(){if(t.length===0)return"''";if(!e.noCompatMode&&SHn.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 _Hn(e,c)}switch(RHn(t,o,e.indent,s,a)){case Rdt:return t;case Adt:return"'"+t.replace(/'/g,"''")+"'";case wdt:return"|"+ldt(t,e.indent)+ddt(cdt(t,i));case kdt:return">"+ldt(t,e.indent)+ddt(cdt(wHn(t,s),i));case BK:return'"'+kHn(t,s)+'"';default:throw new LD("impossible error: invalid scalar style")}})()}function ldt(e,t){var n=vdt(e)?String(t):"",r=e[e.length-1]===` `,i=r&&(e[e.length-2]===` `||e===` `),s=i?"+":r?"":"-";return n+s+` -`}function udt(e){return e[e.length-1]===` -`?e.slice(0,-1):e}function AHn(e,t){for(var n=/(\n+)([^\n]*)/g,r=(function(){var u=e.indexOf(` -`);return u=u!==-1?u:e.length,n.lastIndex=u,ldt(e.slice(0,u),t)})(),i=e[0]===` +`}function ddt(e){return e[e.length-1]===` +`?e.slice(0,-1):e}function wHn(e,t){for(var n=/(\n+)([^\n]*)/g,r=(function(){var u=e.indexOf(` +`);return u=u!==-1?u:e.length,n.lastIndex=u,fdt(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!==""?` -`:"")+ldt(c,t),i=s}return r}function ldt(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+=` +`:"")+fdt(c,t),i=s}return r}function fdt(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 wHn(e){for(var t="",n,r,i,s=0;s=55296&&n<=56319&&(r=e.charCodeAt(s+1),r>=56320&&r<=57343)){t+=sdt((n-55296)*1024+r-56320+65536),s++;continue}i=pc[n],t+=!i&&_I(n)?e[s]:i||sdt(n)}return t}function kHn(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?"":" "),OT(e,t,u,!1,!1)&&(l+=e.dump,r+=l));e.tag=i,e.dump="{"+r+"}"}function OHn(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 LD("sortKeys must be a boolean or a function");for(a=0,c=o.length;a1024,d&&(e.dump&&MD===e.dump.charCodeAt(0)?f+="?":f+="? "),f+=e.dump,d&&(f+=Cfe(e,t)),OT(e,t+1,l,!0,d)&&(e.dump&&MD===e.dump.charCodeAt(0)?f+=":":f+=": ",f+=e.dump,i+=f));e.tag=s,e.dump=i||"{}"}function ddt(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 OT(e,t,n,r,i,s){e.tag=null,e.dump=n,ddt(e,n,!1)||ddt(e,n,!0);var o=fdt.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?(OHn(e,t,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(xHn(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?(IHn(e,l,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(kHn(e,l,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump))}else if(o==="[object String]")e.tag!=="?"&&RHn(e,e.dump,t,s);else{if(e.skipInvalid)return!1;throw new LD("unacceptable kind of an object to dump "+o)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function PHn(e,t){var n=[],r=[],i,s;for(Mfe(e,n,r),i=0,s=r.length;i{"use strict";var zK=idt(),Idt=kdt();function GK(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}ys.exports.Type=To();ys.exports.Schema=wT();ys.exports.FAILSAFE_SCHEMA=LK();ys.exports.JSON_SCHEMA=kfe();ys.exports.CORE_SCHEMA=Ife();ys.exports.DEFAULT_SAFE_SCHEMA=yI();ys.exports.DEFAULT_FULL_SCHEMA=ND();ys.exports.load=zK.load;ys.exports.loadAll=zK.loadAll;ys.exports.safeLoad=zK.safeLoad;ys.exports.safeLoadAll=zK.safeLoadAll;ys.exports.dump=Idt.dump;ys.exports.safeDump=Idt.safeDump;ys.exports.YAMLException=mI();ys.exports.MINIMAL_SCHEMA=LK();ys.exports.SAFE_SCHEMA=yI();ys.exports.DEFAULT_SCHEMA=ND();ys.exports.scan=GK("scan");ys.exports.parse=GK("parse");ys.exports.compose=GK("compose");ys.exports.addConstructor=GK("addConstructor")});var Pdt=w((M6r,Odt)=>{"use strict";var CHn=xdt();Odt.exports=CHn});var Ufe=w((exports,module)=>{"use strict";var yaml=Pdt(),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 kHn(e){for(var t="",n,r,i,s=0;s=55296&&n<=56319&&(r=e.charCodeAt(s+1),r>=56320&&r<=57343)){t+=adt((n-55296)*1024+r-56320+65536),s++;continue}i=pc[n],t+=!i&&_I(n)?e[s]:i||adt(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?"":" "),OT(e,t,u,!1,!1)&&(l+=e.dump,r+=l));e.tag=i,e.dump="{"+r+"}"}function PHn(e,t,n,r){var i="",s=e.tag,o=Object.keys(n),a,c,u,l,d,f;if(e.sortKeys===!0)o.sort();else if(typeof e.sortKeys=="function")o.sort(e.sortKeys);else if(e.sortKeys)throw new LD("sortKeys must be a boolean or a function");for(a=0,c=o.length;a1024,d&&(e.dump&&MD===e.dump.charCodeAt(0)?f+="?":f+="? "),f+=e.dump,d&&(f+=Cfe(e,t)),OT(e,t+1,l,!0,d)&&(e.dump&&MD===e.dump.charCodeAt(0)?f+=":":f+=": ",f+=e.dump,i+=f));e.tag=s,e.dump=i||"{}"}function pdt(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 OT(e,t,n,r,i,s){e.tag=null,e.dump=n,pdt(e,n,!1)||pdt(e,n,!0);var o=hdt.call(e.dump);r&&(r=e.flowLevel<0||e.flowLevel>t);var a=o==="[object Object]"||o==="[object Array]",c,u;if(a&&(c=e.duplicates.indexOf(n),u=c!==-1),(e.tag!==null&&e.tag!=="?"||u||e.indent!==2&&t>0)&&(i=!1),u&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(a&&u&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),o==="[object Object]")r&&Object.keys(e.dump).length!==0?(PHn(e,t,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(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?(xHn(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!=="?"&&AHn(e,e.dump,t,s);else{if(e.skipInvalid)return!1;throw new LD("unacceptable kind of an object to dump "+o)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function NHn(e,t){var n=[],r=[],i,s;for(Mfe(e,n,r),i=0,s=r.length;i{"use strict";var zK=odt(),Odt=xdt();function GK(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}ys.exports.Type=To();ys.exports.Schema=wT();ys.exports.FAILSAFE_SCHEMA=LK();ys.exports.JSON_SCHEMA=kfe();ys.exports.CORE_SCHEMA=Ife();ys.exports.DEFAULT_SAFE_SCHEMA=yI();ys.exports.DEFAULT_FULL_SCHEMA=ND();ys.exports.load=zK.load;ys.exports.loadAll=zK.loadAll;ys.exports.safeLoad=zK.safeLoad;ys.exports.safeLoadAll=zK.safeLoadAll;ys.exports.dump=Odt.dump;ys.exports.safeDump=Odt.safeDump;ys.exports.YAMLException=mI();ys.exports.MINIMAL_SCHEMA=LK();ys.exports.SAFE_SCHEMA=yI();ys.exports.DEFAULT_SCHEMA=ND();ys.exports.scan=GK("scan");ys.exports.parse=GK("parse");ys.exports.compose=GK("compose");ys.exports.addConstructor=GK("addConstructor")});var Cdt=w((D6r,Ndt)=>{"use strict";var MHn=Pdt();Ndt.exports=MHn});var Ufe=w((exports,module)=>{"use strict";var yaml=Cdt(),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 Cdt=w((D6r,Ndt)=>{"use strict";Ndt.exports=function(e){return typeof e=="string"&&e.charAt(0)==="\uFEFF"?e.slice(1):e}});var VK=w(gg=>{"use strict";var Mdt=Cdt(),Ddt=OD();gg.define=function(e,t,n){Reflect.defineProperty(e,t,{enumerable:!1,configurable:!0,writable:!0,value:n})};gg.isBuffer=function(e){return Ddt(e)==="buffer"};gg.isObject=function(e){return Ddt(e)==="object"};gg.toBuffer=function(e){return typeof e=="string"?Buffer.from(e):e};gg.toString=function(e){if(gg.isBuffer(e))return Mdt(String(e));if(typeof e!="string")throw new TypeError("expected input to be a string or buffer");return Mdt(e)};gg.arrayify=function(e){return e?Array.isArray(e)?e:[e]:[]};gg.startsWith=function(e,t,n){return typeof n!="number"&&(n=t.length),e.slice(0,n)===t}});var UD=w((U6r,Ldt)=>{"use strict";var MHn=Ufe(),DHn=VK();Ldt.exports=function(e){let t=Object.assign({},e);return t.delimiters=DHn.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({},MHn,t.parsers,t.engines),t}});var Ffe=w((F6r,Udt)=>{"use strict";Udt.exports=function(e,t){let n=t.engines[e]||t.engines[LHn(e)];if(typeof n>"u")throw new Error('gray-matter engine "'+e+'" is not registered');return typeof n=="function"&&(n={parse:n}),n};function LHn(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 jfe=w((j6r,Fdt)=>{"use strict";var UHn=OD(),FHn=Ffe(),jHn=UD();Fdt.exports=function(e,t,n){if(t==null&&n==null)switch(UHn(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=jHn(n);if(t==null){if(!i.data)return e;t=i.data}let s=e.language||i.language,o=FHn(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=TI(a)+TI(u)+TI(c)),typeof e.excerpt=="string"&&e.excerpt!==""&&r.indexOf(e.excerpt.trim())===-1&&(l+=TI(e.excerpt)+TI(c)),l+TI(r)};function TI(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 Ddt=w((L6r,Mdt)=>{"use strict";Mdt.exports=function(e){return typeof e=="string"&&e.charAt(0)==="\uFEFF"?e.slice(1):e}});var VK=w(gg=>{"use strict";var Ldt=Ddt(),Udt=OD();gg.define=function(e,t,n){Reflect.defineProperty(e,t,{enumerable:!1,configurable:!0,writable:!0,value:n})};gg.isBuffer=function(e){return Udt(e)==="buffer"};gg.isObject=function(e){return Udt(e)==="object"};gg.toBuffer=function(e){return typeof e=="string"?Buffer.from(e):e};gg.toString=function(e){if(gg.isBuffer(e))return Ldt(String(e));if(typeof e!="string")throw new TypeError("expected input to be a string or buffer");return Ldt(e)};gg.arrayify=function(e){return e?Array.isArray(e)?e:[e]:[]};gg.startsWith=function(e,t,n){return typeof n!="number"&&(n=t.length),e.slice(0,n)===t}});var UD=w((F6r,Fdt)=>{"use strict";var DHn=Ufe(),LHn=VK();Fdt.exports=function(e){let t=Object.assign({},e);return t.delimiters=LHn.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 Ffe=w((j6r,jdt)=>{"use strict";jdt.exports=function(e,t){let n=t.engines[e]||t.engines[UHn(e)];if(typeof n>"u")throw new Error('gray-matter engine "'+e+'" is not registered');return typeof n=="function"&&(n={parse:n}),n};function UHn(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 jfe=w((H6r,Hdt)=>{"use strict";var FHn=OD(),jHn=Ffe(),HHn=UD();Hdt.exports=function(e,t,n){if(t==null&&n==null)switch(FHn(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=HHn(n);if(t==null){if(!i.data)return e;t=i.data}let s=e.language||i.language,o=jHn(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=TI(a)+TI(u)+TI(c)),typeof e.excerpt=="string"&&e.excerpt!==""&&r.indexOf(e.excerpt.trim())===-1&&(l+=TI(e.excerpt)+TI(c)),l+TI(r)};function TI(e){return e.slice(-1)!==` `?e+` -`:e}});var Hdt=w((H6r,jdt)=>{"use strict";var HHn=UD();jdt.exports=function(e,t){let n=HHn(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 zdt=w((q6r,Bdt)=>{"use strict";var qdt=OD(),qHn=jfe(),vI=VK();Bdt.exports=function(e){return qdt(e)!=="object"&&(e={content:e}),qdt(e.data)!=="object"&&(e.data={}),e.contents&&e.content==null&&(e.content=e.contents),vI.define(e,"orig",vI.toBuffer(e.content)),vI.define(e,"language",e.language||""),vI.define(e,"matter",e.matter||""),vI.define(e,"stringify",function(t,n){return n&&n.language&&(e.language=n.language),qHn(e,t,n)}),e.content=vI.toString(e.content),e.isEmpty=!1,e.excerpt="",e}});var Vdt=w((B6r,Gdt)=>{"use strict";var BHn=Ffe(),zHn=UD();Gdt.exports=function(e,t,n){let r=zHn(n),i=BHn(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((z6r,Ydt)=>{"use strict";var GHn=Y("fs"),VHn=Hut(),Hfe=UD(),WHn=jfe(),Wdt=Hdt(),KHn=Ufe(),YHn=zdt(),ZHn=Vdt(),Kdt=VK();function Yc(e,t){if(e==="")return{data:{},content:e,excerpt:"",orig:e};let n=YHn(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 JHn(n,t)}function JHn(e,t){let n=Hfe(t),r=n.delimiters[0],i=` -`+n.delimiters[1],s=e.content;n.language&&(e.language=n.language);let o=r.length;if(!Kdt.startsWith(s,r,o))return Wdt(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=ZHn(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))),Wdt(e,n),(n.sections===!0||typeof n.section=="function")&&VHn(e,n.section),e}Yc.engines=KHn;Yc.stringify=function(e,t,n){return typeof e=="string"&&(e=Yc(e,n)),WHn(e,t,n)};Yc.read=function(e,t){let n=GHn.readFileSync(e,"utf8"),r=Yc(n,t);return r.path=e,r};Yc.test=function(e,t){return Kdt.startsWith(e,Hfe(t).delimiters[0])};Yc.language=function(e,t){let r=Hfe(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={}};Ydt.exports=Yc});import{execFileSync as XHn}from"node:child_process";function WK(e,t){try{return XHn(e,t,{stdio:"ignore",timeout:5e3}),!0}catch{return!1}}function FD(e){let t=e.toLowerCase().replace(/[\s_]/g,"-"),n=Jdt[t];if(!n)return!1;let r=Zdt.get(t);if(r!==void 0)return r;let i=n.probe();return Zdt.set(t,i),i}function qfe(){return Object.keys(Jdt).filter(FD)}var Jdt,Zdt,Bfe=v(()=>{"use strict";Jdt={docker:{name:"docker",displayName:"Docker",probe:()=>WK("docker",["info"])},"docker-compose":{name:"docker-compose",displayName:"Docker Compose",probe:()=>WK("docker",["compose","version"])||WK("docker-compose",["version"])},make:{name:"make",displayName:"Make",probe:()=>WK("make",["--version"])}},Zdt=new Map});function $Hn(e,t={}){for(let n of t.requiredTools??[])if(!FD(n))return{environment:!0,requiresTool:n,reason:`gate '${e.name}' needs '${n}', which isn't available in this environment`};return QHn.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 KK(e,t={}){for(let n of e){let r=$Hn(n,t);if(r.environment)return r}return{environment:!1,reason:null}}var QHn,zfe=v(()=>{"use strict";Bfe();QHn=[/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=YK.get(e)??[];if(r.some(i=>i.to===t))throw new Error(`registerMigrator: duplicate edge ${e} \u2192 ${t}`);r.push({to:t,migrator:n}),YK.set(e,r)}function eqn(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=YK.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 ZK(e,t,n){if(t===n)return{from:t,to:n,steps:0,chain:[],details:hc()};let r=eqn(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=(YK.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 YK,Nh=v(()=>{"use strict";YK=new Map});import{join as Xdt}from"node:path";function rr(e,t){if(/[/\\]|\.\./.test(e))throw new Error(`Invalid ${t}: "${e}"`);return e}function Qdt(){let e=nn();return[Xdt(process.cwd(),".haiku","studios"),Xdt(e,"studios")]}var Gfe=v(()=>{"use strict";Ci();ze();ze()});function $dt(e){return typeof e=="string"&&nqn.has(e)}function RI(e){return $dt(e)?e:void 0}function fb(e){let t=[["unit",e.unit],["hat",e.hat],["stage",e.stage],["studio",e.studio]];for(let[n,r]of t){let i=RI(r);if(i)return{model:i,source:n}}return{model:void 0,source:"none"}}function Vfe(e){if($dt(e))return rqn[e]}var tqn,nqn,rqn,pb=v(()=>{"use strict";tqn=["haiku","sonnet","opus"],nqn=new Set(tqn),rqn={haiku:"sonnet",sonnet:"opus",opus:void 0}});import{existsSync as Ss,lstatSync as iqn,readdirSync as Ch,readFileSync as Cu,statSync as eft}from"node:fs";import{join as Yt}from"node:path";function nft(e){try{if(!Ss(e))return;let{data:t}=re(Cu(e,"utf8"));return RI(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 Cd(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 rft(e){return e==="plan"||e==="build"||e==="verify"?e:void 0}function ift(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 ift(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:rft(o.role),raw:s}}return n}function hb(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"hat");let r=null;for(let i of ift(e,t)){let s=Yt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Kfe(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??hb(e,t,n)}function sft(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 sft(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 qD(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"agent");let r=null;for(let i of sft(e,t)){let s=Yt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Yfe(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 sqn(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 yg(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 BD(e){if(!e||!Ss(e))return null;let{body:t}=re(Cu(e,"utf8"));return(t||"").trim()||null}function AI(e,t,n,r=!1){return BD(r?Kfe(e,t,n):hb(e,t,n))}function Mh(e,t,n){let r=t?qD(e,t,n):yg(e)[n]??null;return BD(r)}function wI(e,t,n){return BD(Yfe(e,t,n))}function JK(e,t,n){return BD(sqn(e,t,n))}function XK(e,t,n){return(Zfe(e,t,n)?.body||"").trim()||null}function Dh(e,t){return($i(e,t)?.body||"").trim()||null}function oft(e,t){return BD(zD(e)[t]??null)}function aft(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 QK(e){rr(e,"studio");let t={};for(let n of aft(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:rft(s.role),raw:i}}return t}function zD(e){rr(e,"studio");let t={};for(let n of aft(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 cft(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=oqn(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 oqn(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 $K(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=tft(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&eft(u).isDirectory())&&l){let f=Wfe(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=tft(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&eft(u).isDirectory())&&l){let f=Wfe(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 Wfe(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=iqn(s)}catch{continue}if(!a.isSymbolicLink())if(a.isDirectory())r.push(Wfe(s,o));else{let c;try{c=Cu(s,"utf8")}catch{continue}r.push(`### ${o} +`:e}});var Bdt=w((q6r,qdt)=>{"use strict";var qHn=UD();qdt.exports=function(e,t){let n=qHn(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 Vdt=w((B6r,Gdt)=>{"use strict";var zdt=OD(),BHn=jfe(),vI=VK();Gdt.exports=function(e){return zdt(e)!=="object"&&(e={content:e}),zdt(e.data)!=="object"&&(e.data={}),e.contents&&e.content==null&&(e.content=e.contents),vI.define(e,"orig",vI.toBuffer(e.content)),vI.define(e,"language",e.language||""),vI.define(e,"matter",e.matter||""),vI.define(e,"stringify",function(t,n){return n&&n.language&&(e.language=n.language),BHn(e,t,n)}),e.content=vI.toString(e.content),e.isEmpty=!1,e.excerpt="",e}});var Kdt=w((z6r,Wdt)=>{"use strict";var zHn=Ffe(),GHn=UD();Wdt.exports=function(e,t,n){let r=GHn(n),i=zHn(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((G6r,Jdt)=>{"use strict";var VHn=Y("fs"),WHn=But(),Hfe=UD(),KHn=jfe(),Ydt=Bdt(),YHn=Ufe(),ZHn=Vdt(),JHn=Kdt(),Zdt=VK();function Yc(e,t){if(e==="")return{data:{},content:e,excerpt:"",orig:e};let n=ZHn(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 XHn(n,t)}function XHn(e,t){let n=Hfe(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 Ydt(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=JHn(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))),Ydt(e,n),(n.sections===!0||typeof n.section=="function")&&WHn(e,n.section),e}Yc.engines=YHn;Yc.stringify=function(e,t,n){return typeof e=="string"&&(e=Yc(e,n)),KHn(e,t,n)};Yc.read=function(e,t){let n=VHn.readFileSync(e,"utf8"),r=Yc(n,t);return r.path=e,r};Yc.test=function(e,t){return Zdt.startsWith(e,Hfe(t).delimiters[0])};Yc.language=function(e,t){let r=Hfe(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={}};Jdt.exports=Yc});import{execFileSync as QHn}from"node:child_process";function WK(e,t){try{return QHn(e,t,{stdio:"ignore",timeout:5e3}),!0}catch{return!1}}function FD(e){let t=e.toLowerCase().replace(/[\s_]/g,"-"),n=Qdt[t];if(!n)return!1;let r=Xdt.get(t);if(r!==void 0)return r;let i=n.probe();return Xdt.set(t,i),i}function qfe(){return Object.keys(Qdt).filter(FD)}var Qdt,Xdt,Bfe=v(()=>{"use strict";Qdt={docker:{name:"docker",displayName:"Docker",probe:()=>WK("docker",["info"])},"docker-compose":{name:"docker-compose",displayName:"Docker Compose",probe:()=>WK("docker",["compose","version"])||WK("docker-compose",["version"])},make:{name:"make",displayName:"Make",probe:()=>WK("make",["--version"])}},Xdt=new Map});function eqn(e,t={}){for(let n of t.requiredTools??[])if(!FD(n))return{environment:!0,requiresTool:n,reason:`gate '${e.name}' needs '${n}', which isn't available in this environment`};return $Hn.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 KK(e,t={}){for(let n of e){let r=eqn(n,t);if(r.environment)return r}return{environment:!1,reason:null}}var $Hn,zfe=v(()=>{"use strict";Bfe();$Hn=[/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=YK.get(e)??[];if(r.some(i=>i.to===t))throw new Error(`registerMigrator: duplicate edge ${e} \u2192 ${t}`);r.push({to:t,migrator:n}),YK.set(e,r)}function tqn(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=YK.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 ZK(e,t,n){if(t===n)return{from:t,to:n,steps:0,chain:[],details:hc()};let r=tqn(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=(YK.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 YK,Nh=v(()=>{"use strict";YK=new Map});import{join as $dt}from"node:path";function rr(e,t){if(/[/\\]|\.\./.test(e))throw new Error(`Invalid ${t}: "${e}"`);return e}function eft(){let e=nn();return[$dt(process.cwd(),".haiku","studios"),$dt(e,"studios")]}var Gfe=v(()=>{"use strict";Ci();ze();ze()});function tft(e){return typeof e=="string"&&rqn.has(e)}function RI(e){return tft(e)?e:void 0}function fb(e){let t=[["unit",e.unit],["hat",e.hat],["stage",e.stage],["studio",e.studio]];for(let[n,r]of t){let i=RI(r);if(i)return{model:i,source:n}}return{model:void 0,source:"none"}}function Vfe(e){if(tft(e))return iqn[e]}var nqn,rqn,iqn,pb=v(()=>{"use strict";nqn=["haiku","sonnet","opus"],rqn=new Set(nqn),iqn={haiku:"sonnet",sonnet:"opus",opus:void 0}});import{existsSync as Ss,lstatSync as sqn,readdirSync as Ch,readFileSync as Cu,statSync as nft}from"node:fs";import{join as Yt}from"node:path";function ift(e){try{if(!Ss(e))return;let{data:t}=re(Cu(e,"utf8"));return RI(t.model)}catch{return}}function es(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 Cd(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 sft(e){return e==="plan"||e==="build"||e==="verify"?e:void 0}function oft(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 oft(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:sft(o.role),raw:s}}return n}function hb(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"hat");let r=null;for(let i of oft(e,t)){let s=Yt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Kfe(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??hb(e,t,n)}function aft(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 aft(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 qD(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"agent");let r=null;for(let i of aft(e,t)){let s=Yt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Yfe(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 oqn(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 yg(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 BD(e){if(!e||!Ss(e))return null;let{body:t}=re(Cu(e,"utf8"));return(t||"").trim()||null}function AI(e,t,n,r=!1){return BD(r?Kfe(e,t,n):hb(e,t,n))}function Mh(e,t,n){let r=t?qD(e,t,n):yg(e)[n]??null;return BD(r)}function wI(e,t,n){return BD(Yfe(e,t,n))}function JK(e,t,n){return BD(oqn(e,t,n))}function XK(e,t,n){return(Zfe(e,t,n)?.body||"").trim()||null}function Dh(e,t){return(es(e,t)?.body||"").trim()||null}function cft(e,t){return BD(zD(e)[t]??null)}function uft(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 QK(e){rr(e,"studio");let t={};for(let n of uft(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:sft(s.role),raw:i}}return t}function zD(e){rr(e,"studio");let t={};for(let n of uft(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 lft(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=aqn(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 aqn(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 $K(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=rft(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&nft(u).isDirectory())&&l){let f=Wfe(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=rft(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&nft(u).isDirectory())&&l){let f=Wfe(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 Wfe(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=sqn(s)}catch{continue}if(!a.isSymbolicLink())if(a.isDirectory())r.push(Wfe(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 tft(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 cqn(){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 kI(){let e=Mu().join("|"),t=Date.now();if(HD&&HD.key===e&&HD.expiresAt>t)return HD.value;let n=cqn();return HD={key:e,expiresAt:t+aqn,value:n},n}function si(e){if(!e)return null;let t=e.toLowerCase(),n=kI();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 Zfe(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 uft(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,aqn,HD,Kn=v(()=>{"use strict";Gfe();Ci();pb();ze();Mu=Qdt;aqn=2e3,HD=null});import{spawnSync as uqn}from"node:child_process";import{readFileSync as lqn}from"node:fs";import{homedir as dqn}from"node:os";import{join as Jfe}from"node:path";function Md(e){let t=(process.env[`HAIKU_${e}`]??"").trim();return t||(process.env[e]??"").trim()}function lft(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 fqn(){let e=Md("OTEL_EXPORTER_OTLP_LOGS_ENDPOINT");return e||`${(Md("OTEL_EXPORTER_OTLP_ENDPOINT")||"http://localhost:4318").replace(/\/$/,"")}/v1/logs`}function pqn(){let e=Md("OTEL_EXPORTER_OTLP_LOGS_HEADERS");return lft(e||Md("OTEL_EXPORTER_OTLP_HEADERS"))}function hqn(){let e=Md("OTEL_EXPORTER_OTLP_LOGS_PROTOCOL");return e||Md("OTEL_EXPORTER_OTLP_PROTOCOL")||"http/json"}function mqn(){let e=Number(Md("OTEL_EXPORTER_OTLP_LOGS_TIMEOUT"));if(Number.isFinite(e)&&e>0)return e;let t=Number(Md("OTEL_EXPORTER_OTLP_TIMEOUT"));return Number.isFinite(t)&&t>0?t:1e4}function gqn(){return Md("OTEL_LOGS_EXPORTER").toLowerCase()||"otlp"}function yqn(e){try{let t=lqn(e,"utf8"),n=JSON.parse(t);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{}return null}function Sqn(){let e={},t=dqn(),n=process.cwd(),r=[t?Jfe(t,".claude","settings.json"):null,Jfe(n,".claude","settings.json"),Jfe(n,".claude","settings.local.json")].filter(i=>i!==null);for(let i of r){let s=yqn(i);s&&Object.assign(e,s)}return e}function bqn(){let t=Sqn().otelHeadersHelper;return typeof t=="string"?t.trim():""}function _qn(){let e=Number(Md("CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS"));return Number.isFinite(e)&&e>0?e:Eqn}function Tqn(e){let[t,...n]=e.split(/\s+/).filter(Boolean);if(!t)return null;let r=uqn(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 vqn(){let e=_qn();if(II!==null&&Date.now()-Xfe({key:c,value:{stringValue:u}}))],s=JSON.stringify({resourceLogs:[{resource:{attributes:Iqn},scopeLogs:[{scope:{name:"haiku"},logRecords:[{timeUnixNano:r,severityNumber:9,severityText:"INFO",body:{stringValue:e},attributes:i}]}]}]}),o=vqn(),a={"Content-Type":"application/json",...wqn,...o};fetch(Aqn,{method:"POST",headers:a,body:s,signal:AbortSignal.timeout(kqn)}).catch(()=>{})}var $fe,Eqn,II,Xfe,Aqn,wqn,fft,kqn,Iqn,Qfe,epe,pft,xqn,Oqn,dft,vo=v(()=>{"use strict";Ci();$fe=Go.telemetry;Eqn=174e4,II=null,Xfe=0;Aqn=fqn(),wqn=pqn(),fft=hqn(),kqn=mqn(),Iqn=Rqn(),Qfe=gqn(),epe=Qfe==="otlp",pft=fft==="http/json";$fe&&!epe&&Qfe!=="none"&&console.error(`[haiku/telemetry] OTEL_LOGS_EXPORTER="${Qfe}" not supported \u2014 telemetry disabled. Use "otlp" or unset.`);$fe&&epe&&!pft&&console.error(`[haiku/telemetry] OTLP protocol "${fft}" not supported \u2014 only http/json is implemented. Telemetry disabled.`);xqn=$fe&&epe&&pft,Oqn=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"]),dft=new Set});import{existsSync as Lu,mkdirSync as Nqn,readdirSync as xI,readFileSync as mft,renameSync as Cqn,rmSync as tpe,writeFileSync as Mqn}from"node:fs";import{dirname as Dqn,join as ro}from"node:path";function Hqn(e){return!1}function OI(e){let t=mft(e,"utf8"),n=(0,npe.default)(t);return{data:n.data,body:n.content}}function rpe(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 ipe(e,t,n){let r=npe.default.stringify(n,t);Mqn(e,r)}function spe(e,t){let n={};for(let[r,i]of Object.entries(e))t.has(r)||(n[r]=i);return n}function yft(e){for(let t of e)if(typeof t=="string"&&t.length>0)return t;return new Date().toISOString()}function zqn(e,t){let n=ro(e,"intent.md");Lu(n)&&rpe(n,()=>{let{data:r,body:i}=OI(n),s=spe(r,Lqn);s.plugin_version=gft,(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),ipe(n,s,i),t.intent_md_migrated=!0},"intent.md")}function Gqn(e,t,n,r){let i=ro(e,"units");if(!Lu(i))return;let s=xI(i,{withFileTypes:!0});for(let o of s){if(!o.isFile()||!o.name.endsWith(".md"))continue;let a=ro(i,o.name);rpe(a,()=>Wqn(a,t,n,r),`unit ${o.name}`)}}function Vqn(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 Wqn(e,t,n,r){let{data:i,body:s}=OI(e),o=i.status==="completed",a=typeof i.completed_at=="string"?i.completed_at:null,c=spe(i,Uqn);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=yft([a]);Vqn(c,u,n,r,t),t.units_with_synthesized_approval++}ipe(e,c,s),t.units_migrated++}function hft(e,t,n){if(!Lu(e))return;let r=xI(e,{withFileTypes:!0});for(let i of r){if(!i.isFile()||!i.name.endsWith(".md"))continue;let s=ro(e,i.name);rpe(s,()=>Yqn(s,t,n),`feedback ${i.name}`)}}function Kqn(e,t,n){let r=t.upstream_stage;if(typeof r!="string"||!r)return null;let s=Dqn(e).match(/\/stages\/([^/]+)\/feedback\/?$/);if((s?s[1]:"")===r)return null;let a=ro(n,"stages",r,"feedback");if(!Lu(a))try{Nqn(a,{recursive:!0})}catch{return null}let c=new Set;for(let h of xI(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:(Cqn(e,p),p)}function Yqn(e,t,n){let{data:r,body:i}=OI(e),s=typeof r.status=="string"?r.status:"",o=typeof r.closed_by=="string"?r.closed_by:null,a=spe(r,qqn);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&&(Bqn.has(s)?(a.closed_at=yft([o,r.created_at]),c=!0):a.closed_at=null),ipe(e,a,i),n.feedback_migrated++,c&&n.feedback_with_synthesized_closure++,Kqn(e,r,t)&&n.feedback_relocated++}function Zqn(e){let{intentDir:t}=e,n=hc();zqn(t,n);let r="",i=ro(t,"intent.md");if(Lu(i))try{let o=OI(i).data;typeof o.studio=="string"&&(r=o.studio)}catch{r=""}let s=ro(t,"stages");if(Lu(s))for(let o of xI(s,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=ro(s,o.name),c=o.name;Gqn(a,n,r,c),hft(ro(a,"feedback"),t,n);let u=ro(a,"state.json");Lu(u)&&(tpe(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)&&(tpe(d,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}}hft(ro(t,"feedback"),t,n);for(let o of["baseline.json","drift-markers.json","baseline-content"]){let a=ro(t,o);Lu(a)&&(tpe(a,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}return n}function e3(e){let t=ro(e,"intent.md");if(Lu(t))try{let r=OI(t).data;for(let i of Fqn)if(i in r)return!0}catch{}let n=ro(e,"stages");if(!Lu(n))return!1;for(let r of xI(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=ro(n,r.name),s=ro(i,"units");if(Lu(s)){let a=xI(s).filter(c=>c.endsWith(".md"));for(let c of a)try{let u=OI(ro(s,c)).data;for(let l of jqn)if(l in u)return!0;if(Hqn(u))return!0}catch{}}let o=ro(i,"state.json");if(Lu(o))try{let a=JSON.parse(mft(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 npe,gft,Lqn,Uqn,Fqn,jqn,qqn,Bqn,t3=v(()=>{"use strict";npe=Re(Kt(),1);Kn();vo();Nh();gft="4.0.0",Lqn=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"]),Uqn=new Set(["status","hat","bolt","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]),Fqn=new Set(["active_stage","phase","iteration","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at","composite","intent_reviewed","autopilot"]),jqn=new Set(["status","bolt","hat","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]);qqn=new Set(["status","bolt","triaged_at","closed_by","resolution","iteration","visit","integrator_attempts","upstream_stage"]),Bqn=new Set(["closed","answered","addressed","rejected"]);Nu("0",gft,Zqn)});var MI={};Ar(MI,{GIT_NETWORK_TIMEOUT_MS:()=>Ra,GIT_NONINTERACTIVE_ENV:()=>Aa,addTempWorktree:()=>s3,branchAheadOfOrigin:()=>u3,branchExists:()=>Pt,buildCompareUrl:()=>c3,checkoutFromBranchOnIntentMain:()=>uBn,cleanupDiscoveryWorktree:()=>hBn,cleanupFixChainWorktree:()=>f3,cleanupIntentWorktrees:()=>QD,cleanupOrphanedStageBranches:()=>l3,cleanupUnitWorktree:()=>Npe,commitAndPushFromWorktree:()=>a3,consolidateStageBranches:()=>vpe,createDiscoveryWorktree:()=>xpe,createFixChainWorktree:()=>Ppe,createIntentBranch:()=>PI,createStageBranch:()=>_pe,createUnitWorktree:()=>kpe,deleteBranch:()=>$D,deleteStageBranch:()=>bb,detectPrTool:()=>CT,discoveryBranchName:()=>CI,discoveryWorktreePath:()=>NI,ensureOnIntentMain:()=>bpe,ensureOnStageBranch:()=>yr,ensureStageBranch:()=>Sb,fetchOrigin:()=>NT,finalizeIntentBranches:()=>Cpe,fixChainBranchName:()=>JD,fixChainWorktreePath:()=>Sg,getCurrentBranch:()=>gr,getMainlineBranch:()=>Zo,hasGitRemote:()=>fpe,hasNoMergeDebt:()=>WD,isAncestor:()=>Uu,isBranchMerged:()=>Zc,isCurrentWorktreeLocked:()=>aBn,isLiveWorktree:()=>Tft,isMergeInProgress:()=>gb,isOnIntentBranch:()=>rBn,isOnStageBranch:()=>Epe,listIntentBranches:()=>i3,listOrphanDiscreteIntents:()=>lpe,markPullRequestReady:()=>ype,mergeDiscoveryWorktree:()=>Ope,mergeFixChainWorktree:()=>XD,mergeStageBranchForward:()=>Tpe,mergeStageBranchIntoMain:()=>ZD,mergeUnitWorktree:()=>Ipe,openIntentDraftPullRequest:()=>mpe,openPullRequest:()=>MT,openStageDraftPullRequest:()=>gpe,openStagePullRequest:()=>tBn,prepareRevisitBranch:()=>mBn,pushBranchToOrigin:()=>Lh,pushFixChainWorktree:()=>hpe,pushStageBranch:()=>YD,pushUnitWorktree:()=>ppe,readFileFromBranch:()=>Rpe,reconcileIntentBranches:()=>Spe,reconcileMisroutedStageMerges:()=>nBn,refsHaveIdenticalTrees:()=>r3,removeTempWorktree:()=>o3,resolveMainlineRef:()=>upe,syncBranchDownstream:()=>cpe,uncommittedAgentWork:()=>Ape,unitBranchExists:()=>dpe,unitSpecInWorktree:()=>oBn,unitWorktreePath:()=>yb,writeOnIntentMain:()=>cBn});import{execFileSync as Kr}from"node:child_process";import{existsSync as io,writeFileSync as ope,mkdirSync as VD,mkdtempSync as Jqn,readFileSync as Xqn,rmSync as ape}from"node:fs";import{tmpdir as Qqn}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 $qn(e){if(!(e instanceof Error))return String(e);let t=e.stderr;return[e.message,t?t.toString():""].join(` -`)}function r3(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 gb(){if(!Ee())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 WD(e,t){return!!(r3(e,t)||Uu(e,t))}function n3(e,t){try{return Kr(e[0],e.slice(1),{encoding:"utf8",stdio:"pipe",cwd:t,timeout:Ra,env:Aa}).trim()}catch{return""}}function gr(){return ae(["git","rev-parse","--abbrev-ref","HEAD"])}function Pt(e){return Ee()?ae(["git","rev-parse","--verify",e])!=="":!1}function cpe(e){if(!Ee())return{ok:!0,performed:!1,message:"non-git mode"};let t=Zo(),n=`haiku/${e}/main`,r=gr(),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&&!WD(c,n)){let u=eBn(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}/`)&&!r3(r,n)){let s=Eft(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 eBn(e,t,n,r,i){if(n===t)return Eft(e,r,i);try{return Uh(t,o=>KD(["-C",o],e,i,r))}catch(s){return{ok:!1,performed:!1,message:s instanceof Error?s.message:String(s)}}}function KD(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};d3(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 Eft(e,t,n){return KD([],e,n,t)}function Zo(){if(!Ee())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 upe(){if(!Ee())return"";let e=Zo();return ae(["git","rev-parse","--verify",e])?e:ae(["git","rev-parse","--verify",`origin/${e}`])?`origin/${e}`:""}function NT(){if(!Ee())return!1;try{return Kr("git",["fetch","--prune","origin"],{stdio:"pipe",timeout:Ra,env:Aa}),!0}catch{return!1}}function i3(){if(!Ee())return[];let e=new Set,t=ae(["git","for-each-ref","--format=%(refname:short)","refs/heads/haiku"]);for(let r of t.split(` +`)}function rft(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 uqn(){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 kI(){let e=Mu().join("|"),t=Date.now();if(HD&&HD.key===e&&HD.expiresAt>t)return HD.value;let n=uqn();return HD={key:e,expiresAt:t+cqn,value:n},n}function si(e){if(!e)return null;let t=e.toLowerCase(),n=kI();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 Zfe(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 dft(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,cqn,HD,Kn=v(()=>{"use strict";Gfe();Ci();pb();ze();Mu=eft;cqn=2e3,HD=null});import{spawnSync as lqn}from"node:child_process";import{readFileSync as dqn}from"node:fs";import{homedir as fqn}from"node:os";import{join as Jfe}from"node:path";function Md(e){let t=(process.env[`HAIKU_${e}`]??"").trim();return t||(process.env[e]??"").trim()}function fft(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 pqn(){let e=Md("OTEL_EXPORTER_OTLP_LOGS_ENDPOINT");return e||`${(Md("OTEL_EXPORTER_OTLP_ENDPOINT")||"http://localhost:4318").replace(/\/$/,"")}/v1/logs`}function hqn(){let e=Md("OTEL_EXPORTER_OTLP_LOGS_HEADERS");return fft(e||Md("OTEL_EXPORTER_OTLP_HEADERS"))}function mqn(){let e=Md("OTEL_EXPORTER_OTLP_LOGS_PROTOCOL");return e||Md("OTEL_EXPORTER_OTLP_PROTOCOL")||"http/json"}function gqn(){let e=Number(Md("OTEL_EXPORTER_OTLP_LOGS_TIMEOUT"));if(Number.isFinite(e)&&e>0)return e;let t=Number(Md("OTEL_EXPORTER_OTLP_TIMEOUT"));return Number.isFinite(t)&&t>0?t:1e4}function yqn(){return Md("OTEL_LOGS_EXPORTER").toLowerCase()||"otlp"}function Sqn(e){try{let t=dqn(e,"utf8"),n=JSON.parse(t);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{}return null}function bqn(){let e={},t=fqn(),n=process.cwd(),r=[t?Jfe(t,".claude","settings.json"):null,Jfe(n,".claude","settings.json"),Jfe(n,".claude","settings.local.json")].filter(i=>i!==null);for(let i of r){let s=Sqn(i);s&&Object.assign(e,s)}return e}function Eqn(){let t=bqn().otelHeadersHelper;return typeof t=="string"?t.trim():""}function Tqn(){let e=Number(Md("CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS"));return Number.isFinite(e)&&e>0?e:_qn}function vqn(e){let[t,...n]=e.split(/\s+/).filter(Boolean);if(!t)return null;let r=lqn(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 Rqn(){let e=Tqn();if(II!==null&&Date.now()-Xfe({key:c,value:{stringValue:u}}))],s=JSON.stringify({resourceLogs:[{resource:{attributes:xqn},scopeLogs:[{scope:{name:"haiku"},logRecords:[{timeUnixNano:r,severityNumber:9,severityText:"INFO",body:{stringValue:e},attributes:i}]}]}]}),o=Rqn(),a={"Content-Type":"application/json",...kqn,...o};fetch(wqn,{method:"POST",headers:a,body:s,signal:AbortSignal.timeout(Iqn)}).catch(()=>{})}var $fe,_qn,II,Xfe,wqn,kqn,hft,Iqn,xqn,Qfe,epe,mft,Oqn,Pqn,pft,vo=v(()=>{"use strict";Ci();$fe=Go.telemetry;_qn=174e4,II=null,Xfe=0;wqn=pqn(),kqn=hqn(),hft=mqn(),Iqn=gqn(),xqn=Aqn(),Qfe=yqn(),epe=Qfe==="otlp",mft=hft==="http/json";$fe&&!epe&&Qfe!=="none"&&console.error(`[haiku/telemetry] OTEL_LOGS_EXPORTER="${Qfe}" not supported \u2014 telemetry disabled. Use "otlp" or unset.`);$fe&&epe&&!mft&&console.error(`[haiku/telemetry] OTLP protocol "${hft}" not supported \u2014 only http/json is implemented. Telemetry disabled.`);Oqn=$fe&&epe&&mft,Pqn=new Set(["diff_unified","excerpt","file_content","file_body","user_email","user_name","message_body","finding_body","fb_body","content","password","passwd","pwd","token","access_token","refresh_token","id_token","bearer_token","bearer","api_key","apikey","api-key","authorization","auth_header","auth","secret","client_secret","signing_secret","credential","credentials","session_id","cookie","private_key","pem"]),pft=new Set});import{existsSync as Lu,mkdirSync as Cqn,readdirSync as xI,readFileSync as yft,renameSync as Mqn,rmSync as tpe,writeFileSync as Dqn}from"node:fs";import{dirname as Lqn,join as ro}from"node:path";function qqn(e){return!1}function OI(e){let t=yft(e,"utf8"),n=(0,npe.default)(t);return{data:n.data,body:n.content}}function rpe(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 ipe(e,t,n){let r=npe.default.stringify(n,t);Dqn(e,r)}function spe(e,t){let n={};for(let[r,i]of Object.entries(e))t.has(r)||(n[r]=i);return n}function bft(e){for(let t of e)if(typeof t=="string"&&t.length>0)return t;return new Date().toISOString()}function Gqn(e,t){let n=ro(e,"intent.md");Lu(n)&&rpe(n,()=>{let{data:r,body:i}=OI(n),s=spe(r,Uqn);s.plugin_version=Sft,(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),ipe(n,s,i),t.intent_md_migrated=!0},"intent.md")}function Vqn(e,t,n,r){let i=ro(e,"units");if(!Lu(i))return;let s=xI(i,{withFileTypes:!0});for(let o of s){if(!o.isFile()||!o.name.endsWith(".md"))continue;let a=ro(i,o.name);rpe(a,()=>Kqn(a,t,n,r),`unit ${o.name}`)}}function Wqn(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 Kqn(e,t,n,r){let{data:i,body:s}=OI(e),o=i.status==="completed",a=typeof i.completed_at=="string"?i.completed_at:null,c=spe(i,Fqn);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=bft([a]);Wqn(c,u,n,r,t),t.units_with_synthesized_approval++}ipe(e,c,s),t.units_migrated++}function gft(e,t,n){if(!Lu(e))return;let r=xI(e,{withFileTypes:!0});for(let i of r){if(!i.isFile()||!i.name.endsWith(".md"))continue;let s=ro(e,i.name);rpe(s,()=>Zqn(s,t,n),`feedback ${i.name}`)}}function Yqn(e,t,n){let r=t.upstream_stage;if(typeof r!="string"||!r)return null;let s=Lqn(e).match(/\/stages\/([^/]+)\/feedback\/?$/);if((s?s[1]:"")===r)return null;let a=ro(n,"stages",r,"feedback");if(!Lu(a))try{Cqn(a,{recursive:!0})}catch{return null}let c=new Set;for(let h of xI(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:(Mqn(e,p),p)}function Zqn(e,t,n){let{data:r,body:i}=OI(e),s=typeof r.status=="string"?r.status:"",o=typeof r.closed_by=="string"?r.closed_by:null,a=spe(r,Bqn);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&&(zqn.has(s)?(a.closed_at=bft([o,r.created_at]),c=!0):a.closed_at=null),ipe(e,a,i),n.feedback_migrated++,c&&n.feedback_with_synthesized_closure++,Yqn(e,r,t)&&n.feedback_relocated++}function Jqn(e){let{intentDir:t}=e,n=hc();Gqn(t,n);let r="",i=ro(t,"intent.md");if(Lu(i))try{let o=OI(i).data;typeof o.studio=="string"&&(r=o.studio)}catch{r=""}let s=ro(t,"stages");if(Lu(s))for(let o of xI(s,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=ro(s,o.name),c=o.name;Vqn(a,n,r,c),gft(ro(a,"feedback"),t,n);let u=ro(a,"state.json");Lu(u)&&(tpe(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)&&(tpe(d,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}}gft(ro(t,"feedback"),t,n);for(let o of["baseline.json","drift-markers.json","baseline-content"]){let a=ro(t,o);Lu(a)&&(tpe(a,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}return n}function e3(e){let t=ro(e,"intent.md");if(Lu(t))try{let r=OI(t).data;for(let i of jqn)if(i in r)return!0}catch{}let n=ro(e,"stages");if(!Lu(n))return!1;for(let r of xI(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=ro(n,r.name),s=ro(i,"units");if(Lu(s)){let a=xI(s).filter(c=>c.endsWith(".md"));for(let c of a)try{let u=OI(ro(s,c)).data;for(let l of Hqn)if(l in u)return!0;if(qqn(u))return!0}catch{}}let o=ro(i,"state.json");if(Lu(o))try{let a=JSON.parse(yft(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 npe,Sft,Uqn,Fqn,jqn,Hqn,Bqn,zqn,t3=v(()=>{"use strict";npe=Re(Kt(),1);Kn();vo();Nh();Sft="4.0.0",Uqn=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"]),Fqn=new Set(["status","hat","bolt","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]),jqn=new Set(["active_stage","phase","iteration","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at","composite","intent_reviewed","autopilot"]),Hqn=new Set(["status","bolt","hat","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]);Bqn=new Set(["status","bolt","triaged_at","closed_by","resolution","iteration","visit","integrator_attempts","upstream_stage"]),zqn=new Set(["closed","answered","addressed","rejected"]);Nu("0",Sft,Jqn)});var MI={};Ar(MI,{GIT_NETWORK_TIMEOUT_MS:()=>Ra,GIT_NONINTERACTIVE_ENV:()=>Aa,addTempWorktree:()=>s3,branchAheadOfOrigin:()=>u3,branchExists:()=>Pt,buildCompareUrl:()=>c3,checkoutFromBranchOnIntentMain:()=>lBn,cleanupDiscoveryWorktree:()=>mBn,cleanupFixChainWorktree:()=>f3,cleanupIntentWorktrees:()=>QD,cleanupOrphanedStageBranches:()=>l3,cleanupUnitWorktree:()=>Npe,commitAndPushFromWorktree:()=>a3,consolidateStageBranches:()=>vpe,createDiscoveryWorktree:()=>xpe,createFixChainWorktree:()=>Ppe,createIntentBranch:()=>PI,createStageBranch:()=>_pe,createUnitWorktree:()=>kpe,deleteBranch:()=>$D,deleteStageBranch:()=>bb,detectPrTool:()=>CT,discoveryBranchName:()=>CI,discoveryWorktreePath:()=>NI,ensureOnIntentMain:()=>bpe,ensureOnStageBranch:()=>yr,ensureStageBranch:()=>Sb,fetchOrigin:()=>NT,finalizeIntentBranches:()=>Cpe,fixChainBranchName:()=>JD,fixChainWorktreePath:()=>Sg,getCurrentBranch:()=>gr,getMainlineBranch:()=>Zo,hasGitRemote:()=>fpe,hasNoMergeDebt:()=>WD,isAncestor:()=>Uu,isBranchMerged:()=>Zc,isCurrentWorktreeLocked:()=>cBn,isLiveWorktree:()=>Rft,isMergeInProgress:()=>gb,isOnIntentBranch:()=>iBn,isOnStageBranch:()=>Epe,listIntentBranches:()=>i3,listOrphanDiscreteIntents:()=>lpe,markPullRequestReady:()=>ype,mergeDiscoveryWorktree:()=>Ope,mergeFixChainWorktree:()=>XD,mergeStageBranchForward:()=>Tpe,mergeStageBranchIntoMain:()=>ZD,mergeUnitWorktree:()=>Ipe,openIntentDraftPullRequest:()=>mpe,openPullRequest:()=>MT,openStageDraftPullRequest:()=>gpe,openStagePullRequest:()=>nBn,prepareRevisitBranch:()=>gBn,pushBranchToOrigin:()=>Lh,pushFixChainWorktree:()=>hpe,pushStageBranch:()=>YD,pushUnitWorktree:()=>ppe,readFileFromBranch:()=>Rpe,reconcileIntentBranches:()=>Spe,reconcileMisroutedStageMerges:()=>rBn,refsHaveIdenticalTrees:()=>r3,removeTempWorktree:()=>o3,resolveMainlineRef:()=>upe,syncBranchDownstream:()=>cpe,uncommittedAgentWork:()=>Ape,unitBranchExists:()=>dpe,unitSpecInWorktree:()=>aBn,unitWorktreePath:()=>yb,writeOnIntentMain:()=>uBn});import{execFileSync as Kr}from"node:child_process";import{existsSync as io,writeFileSync as ope,mkdirSync as VD,mkdtempSync as Xqn,readFileSync as Qqn,rmSync as ape}from"node:fs";import{tmpdir as $qn}from"node:os";import{join as ts}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 eBn(e){if(!(e instanceof Error))return String(e);let t=e.stderr;return[e.message,t?t.toString():""].join(` +`)}function r3(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 gb(){if(!Ee())return!1;let e=ae(["git","rev-parse","--git-dir"]);if(!e)return!1;let t=e.startsWith("/")?e:ts(process.cwd(),e);for(let n of["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(io(ts(t,n)))return!0;return!1}function WD(e,t){return!!(r3(e,t)||Uu(e,t))}function n3(e,t){try{return Kr(e[0],e.slice(1),{encoding:"utf8",stdio:"pipe",cwd:t,timeout:Ra,env:Aa}).trim()}catch{return""}}function gr(){return ae(["git","rev-parse","--abbrev-ref","HEAD"])}function Pt(e){return Ee()?ae(["git","rev-parse","--verify",e])!=="":!1}function cpe(e){if(!Ee())return{ok:!0,performed:!1,message:"non-git mode"};let t=Zo(),n=`haiku/${e}/main`,r=gr(),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&&!WD(c,n)){let u=tBn(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}/`)&&!r3(r,n)){let s=Tft(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 tBn(e,t,n,r,i){if(n===t)return Tft(e,r,i);try{return Uh(t,o=>KD(["-C",o],e,i,r))}catch(s){return{ok:!1,performed:!1,message:s instanceof Error?s.message:String(s)}}}function KD(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};d3(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 Tft(e,t,n){return KD([],e,n,t)}function Zo(){if(!Ee())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 upe(){if(!Ee())return"";let e=Zo();return ae(["git","rev-parse","--verify",e])?e:ae(["git","rev-parse","--verify",`origin/${e}`])?`origin/${e}`:""}function NT(){if(!Ee())return!1;try{return Kr("git",["fetch","--prune","origin"],{stdio:"pipe",timeout:Ra,env:Aa}),!0}catch{return!1}}function i3(){if(!Ee())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 lpe(){if(!Ee())return[];let e=new Set(i3()),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(!Ee())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=CT(),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 s3(e,t="haiku-repair",n=!1){if(!Ee())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 o3(e){e&&io(e)&&ae(["git","worktree","remove","--force",e])}function a3(e,t,n){if(!Ee())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??"")){n3(["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 CT(){return ae(["which","gh"])?"gh":ae(["which","glab"])?"glab":null}function MT(e,t,n,r,i){let s=CT();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=n3(["glab","mr","list","--source-branch",e,"--state","opened","--per-page","1"]).match(/^!(\d+)\b/m);if(c){let d=c[1],f=n3(["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 dpe(e,t){if(!Ee())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 fpe(){return Ee()?!!ae(["git","remote"])?.trim():!1}function ppe(e,t){if(!Ee())return;let n=yb(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 hpe(e,t,n){if(!Ee())return;let r=Sg(e,t,n);if(!io(r))return;let i=JD(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 Lh(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 c3(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 tBn(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 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(!Ee())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=CT(),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 s3(e,t="haiku-repair",n=!1){if(!Ee())throw new Error("not a git repo");let r=ts("/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 o3(e){e&&io(e)&&ae(["git","worktree","remove","--force",e])}function a3(e,t,n){if(!Ee())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??"")){n3(["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 CT(){return ae(["which","gh"])?"gh":ae(["which","glab"])?"glab":null}function MT(e,t,n,r,i){let s=CT();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=n3(["glab","mr","list","--source-branch",e,"--state","opened","--per-page","1"]).match(/^!(\d+)\b/m);if(c){let d=c[1],f=n3(["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 dpe(e,t){if(!Ee())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 fpe(){return Ee()?!!ae(["git","remote"])?.trim():!1}function ppe(e,t){if(!Ee())return;let n=yb(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 hpe(e,t,n){if(!Ee())return;let r=Sg(e,t,n);if(!io(r))return;let i=JD(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 Lh(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 c3(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 nBn(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(!Ee())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=Lh(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=MT(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=c3(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 mpe(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(!Ee())return{branch:t,base:n,message:"Not a git repo \u2014 no draft PR opened."};let s=Lh(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=MT(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=c3(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 gpe(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}`,i=e.body??`Stage \`${e.stage}\` of intent \`${e.slug}\` is in flight. The H\xB7AI\xB7K\xB7U engine opened this PR as a draft so the stage's work \u2014 and its runtime-verification proof \u2014 can be watched as units land. The engine marks it ready at the stage gate; merging it signals approval.`;if(!Ee())return{branch:t,base:n,message:"Not a git repo \u2014 no draft stage PR opened."};let s=Lh(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=MT(t,n,r,i,{draft:!0});if(c.ok&&c.url)return o.createdUrl=c.url,o.message=`Draft stage PR opened: ${c.url}`,o;o.prError=c.error}let a=c3(t,n);return a?(o.compareUrl=a,o.message=s.ok?`Stage 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 stage PR at: ${a}`,o):(o.message=s.ok?`Pushed \`${t}\` but no compare URL could be built (origin host not recognised). Open the draft stage PR manually from \`${t}\` into \`${n}\`.`:`Failed to push \`${t}\` (${s.error}) and no compare URL could be built.`,o)}function ype(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 YD(e,t){if(!Ee())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"])?u3(n)?Lh(n):{ok:!0,skipped:!0}:{ok:!0,skipped:!0}:{ok:!0,skipped:!0}}function u3(e){if(!Ee()||!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 nBn(e,t){if(!Ee())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)&&Sft(c,u)>0)continue;let l=ae(["git","rev-parse","--verify",`origin/${r}`])||ae(["git","rev-parse","--verify",r]);if(!l||!Uu(c,l)||Sft(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=gr(),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=Lh(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 Spe(e){let t={intentMainFastForwarded:!1,stageBranchFastForwarded:!1};if(!Ee())return t;NT();let n=`haiku/${e}/main`,r=Zo();if(!Pt(n)||!r)return t;let i=gr(),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 Sft(e,t){let n=ae(["git","rev-list","--count",`${e}..${t}`]),r=Number.parseInt(n,10);return Number.isFinite(r)?r:0}function rBn(e){return gr()===`haiku/${e}/main`}function bpe(e){if(!Ee())return!0;let t=`haiku/${e}/main`;if(!Pt(t)||gr()===t)return!0;try{return PT(["checkout",t]),!0}catch{return!1}}function Epe(e,t){return gr()===`haiku/${e}/${t}`}function _ft(e,t){if(ae(["git","rev-parse","--verify",e]))gr()!==e&&PT(["checkout",e]);else if(t)PT(["checkout","-b",e,t]);else try{PT(["checkout","-b",e])}catch{}return e}function PI(e,t){let n=`haiku/${e}/main`;return!Ee()||Pt(n)||Gt(t?["git","branch",n,t]:["git","branch",n]),n}function _pe(e,t){if(t==="main")throw new Error("Stage name 'main' is reserved \u2014 it would collide with the intent hub branch");if(!Ee())return`haiku/${e}/${t}`;let n=`haiku/${e}/main`;return _ft(`haiku/${e}/${t}`,n)}function Tpe(e,t,n){if(!Ee())return{success:!0,message:"no git"};let r=`haiku/${e}/${t}`,i=`haiku/${e}/${n}`,s=gr();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=KD(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():Uh(i,c=>o(c));return a.conflictFiles.length>0?{success:!1,isConflict:!0,conflictFiles:a.conflictFiles,message:`Merge ${r} \u2192 ${i} left ${a.conflictFiles.length} conflicted file(s): ${a.conflictFiles.join(", ")}. Resolve the conflicts on '${i}' (edit files, \`git add\`, \`git commit\`), then retry the forward merge.`}:{success:!0,message:`merged ${r} \u2192 ${i}`}}catch(a){return ae(["git","merge","--abort"]),{success:!1,message:a instanceof Error?a.message:String(a)}}}function ZD(e,t){if(!Ee())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=gr();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]),WD(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=gr(),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[];d3(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=$qn(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=iBn(e,f)}catch(m){sBn(e,m)}return{conflictFiles:[],postMergeMigration:h}},d;if(c===r)d=l();else if(c===n){GD(n);try{PT(["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=Uh(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)&&gr()!==s&&!gb()&&ae(["git","checkout",s]),{success:!1,message:o instanceof Error?o.message:String(o)}}}function iBn(e,t){let n=t??Br(),r=es(n,".haiku","intents",e);if(!io(r))return{migrated:!1,unitsMigrated:0};if(!e3(r))return{migrated:!1,unitsMigrated:0};let i=ZK({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 sBn(e,t){try{Ke("haiku.post_merge_migrate.failed",{intent:e,error:String(t?.message??t)})}catch{}}function vpe(e,t){let n=`haiku/${e}/main`;if(!Ee())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:_ft(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=gr()===n?i(Br()):Uh(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 Rpe(e,t){if(!Ee())return null;try{return Gt(["git","show",`${e}:${t}`])}catch{return null}}function yb(e,t){return es(Br(),".haiku","worktrees",e,t)}function Sg(e,t,n){return es(Br(),".haiku","worktrees",e,`fix-${t}-${n}`)}function JD(e,t,n){return`haiku/${e}/fix-${t}-${n}`}function oBn(e,t,n){let r=yb(e,n),i=n.endsWith(".md")?n:`${n}.md`;return es(r,".haiku","intents",e,"stages",t,"units",i)}function Sb(e,t){let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;return!Ee()||Pt(n)||(Pt(r)||PI(e),DT(e),ae(["git","branch",n,r])),n}function PT(e){Gt(["git",...e])}function aBn(){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 yr(e,t){if(!Ee())return{ok:!0,branch:"",message:"no git",switched:!1};let n=`haiku/${e}/main`,r=t?`haiku/${e}/${t}`:"";t&&r&&!Pt(r)&&Sb(e,t);let i=t&&Pt(r)?r:n,s=gr();if(!Pt(i)){let l=Zo();if(l&&Pt(l)&&s!==l){let d=wpe(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=GD(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=GD(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&&!r3(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=GD(s);if(g.ok)try{Gt(["git","checkout",r])}catch(y){return{ok:!1,branch:gr()||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:bft(h),target_branch:r}}else return{ok:!1,branch:gr()||s,message:`failed to checkout '${r}' before merging main: ${h}`,switched:!1,target_branch:r}}let d=KD([],n,e,`haiku: merge intent-main \u2192 stage ${t} (workflow engine branch enforcement)`);if(d.ok)return{ok:!0,branch:r,message:`merged main \u2192 stage, now on ${r}`,switched:!0};let f=d.conflictFiles??[];return{ok:!1,branch:r,message:f.length>0?`Merge intent-main \u2192 stage '${t}' left ${f.length} conflicted file(s): ${f.join(", ")}. Resolve on '${r}', then \`git add\` + \`git commit\` and retry. +Merging this PR signals approval to the H\xB7AI\xB7K\xB7U workflow engine.`;if(!Ee())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=Lh(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=MT(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=c3(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 mpe(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(!Ee())return{branch:t,base:n,message:"Not a git repo \u2014 no draft PR opened."};let s=Lh(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=MT(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=c3(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 gpe(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}`,i=e.body??`Stage \`${e.stage}\` of intent \`${e.slug}\` is in flight. The H\xB7AI\xB7K\xB7U engine opened this PR as a draft so the stage's work \u2014 and its runtime-verification proof \u2014 can be watched as units land. The engine marks it ready at the stage gate; merging it signals approval.`;if(!Ee())return{branch:t,base:n,message:"Not a git repo \u2014 no draft stage PR opened."};let s=Lh(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=MT(t,n,r,i,{draft:!0});if(c.ok&&c.url)return o.createdUrl=c.url,o.message=`Draft stage PR opened: ${c.url}`,o;o.prError=c.error}let a=c3(t,n);return a?(o.compareUrl=a,o.message=s.ok?`Stage 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 stage PR at: ${a}`,o):(o.message=s.ok?`Pushed \`${t}\` but no compare URL could be built (origin host not recognised). Open the draft stage PR manually from \`${t}\` into \`${n}\`.`:`Failed to push \`${t}\` (${s.error}) and no compare URL could be built.`,o)}function ype(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 YD(e,t){if(!Ee())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"])?u3(n)?Lh(n):{ok:!0,skipped:!0}:{ok:!0,skipped:!0}:{ok:!0,skipped:!0}}function u3(e){if(!Ee()||!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 rBn(e,t){if(!Ee())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)&&Eft(c,u)>0)continue;let l=ae(["git","rev-parse","--verify",`origin/${r}`])||ae(["git","rev-parse","--verify",r]);if(!l||!Uu(c,l)||Eft(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=gr(),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=Lh(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 Spe(e){let t={intentMainFastForwarded:!1,stageBranchFastForwarded:!1};if(!Ee())return t;NT();let n=`haiku/${e}/main`,r=Zo();if(!Pt(n)||!r)return t;let i=gr(),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 Eft(e,t){let n=ae(["git","rev-list","--count",`${e}..${t}`]),r=Number.parseInt(n,10);return Number.isFinite(r)?r:0}function iBn(e){return gr()===`haiku/${e}/main`}function bpe(e){if(!Ee())return!0;let t=`haiku/${e}/main`;if(!Pt(t)||gr()===t)return!0;try{return PT(["checkout",t]),!0}catch{return!1}}function Epe(e,t){return gr()===`haiku/${e}/${t}`}function vft(e,t){if(ae(["git","rev-parse","--verify",e]))gr()!==e&&PT(["checkout",e]);else if(t)PT(["checkout","-b",e,t]);else try{PT(["checkout","-b",e])}catch{}return e}function PI(e,t){let n=`haiku/${e}/main`;return!Ee()||Pt(n)||Gt(t?["git","branch",n,t]:["git","branch",n]),n}function _pe(e,t){if(t==="main")throw new Error("Stage name 'main' is reserved \u2014 it would collide with the intent hub branch");if(!Ee())return`haiku/${e}/${t}`;let n=`haiku/${e}/main`;return vft(`haiku/${e}/${t}`,n)}function Tpe(e,t,n){if(!Ee())return{success:!0,message:"no git"};let r=`haiku/${e}/${t}`,i=`haiku/${e}/${n}`,s=gr();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=KD(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():Uh(i,c=>o(c));return a.conflictFiles.length>0?{success:!1,isConflict:!0,conflictFiles:a.conflictFiles,message:`Merge ${r} \u2192 ${i} left ${a.conflictFiles.length} conflicted file(s): ${a.conflictFiles.join(", ")}. Resolve the conflicts on '${i}' (edit files, \`git add\`, \`git commit\`), then retry the forward merge.`}:{success:!0,message:`merged ${r} \u2192 ${i}`}}catch(a){return ae(["git","merge","--abort"]),{success:!1,message:a instanceof Error?a.message:String(a)}}}function ZD(e,t){if(!Ee())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=gr();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]),WD(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=gr(),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[];d3(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=eBn(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=sBn(e,f)}catch(m){oBn(e,m)}return{conflictFiles:[],postMergeMigration:h}},d;if(c===r)d=l();else if(c===n){GD(n);try{PT(["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=Uh(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)&&gr()!==s&&!gb()&&ae(["git","checkout",s]),{success:!1,message:o instanceof Error?o.message:String(o)}}}function sBn(e,t){let n=t??Br(),r=ts(n,".haiku","intents",e);if(!io(r))return{migrated:!1,unitsMigrated:0};if(!e3(r))return{migrated:!1,unitsMigrated:0};let i=ZK({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 oBn(e,t){try{Ke("haiku.post_merge_migrate.failed",{intent:e,error:String(t?.message??t)})}catch{}}function vpe(e,t){let n=`haiku/${e}/main`;if(!Ee())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:vft(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=gr()===n?i(Br()):Uh(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 Rpe(e,t){if(!Ee())return null;try{return Gt(["git","show",`${e}:${t}`])}catch{return null}}function yb(e,t){return ts(Br(),".haiku","worktrees",e,t)}function Sg(e,t,n){return ts(Br(),".haiku","worktrees",e,`fix-${t}-${n}`)}function JD(e,t,n){return`haiku/${e}/fix-${t}-${n}`}function aBn(e,t,n){let r=yb(e,n),i=n.endsWith(".md")?n:`${n}.md`;return ts(r,".haiku","intents",e,"stages",t,"units",i)}function Sb(e,t){let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;return!Ee()||Pt(n)||(Pt(r)||PI(e),DT(e),ae(["git","branch",n,r])),n}function PT(e){Gt(["git",...e])}function cBn(){try{let e=Kr("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}).trim();if(!e)return!1;let t=e.startsWith("/")?e:ts(process.cwd(),e),n=ts(t,"locked");return io(n)}catch{return!1}}function yr(e,t){if(!Ee())return{ok:!0,branch:"",message:"no git",switched:!1};let n=`haiku/${e}/main`,r=t?`haiku/${e}/${t}`:"";t&&r&&!Pt(r)&&Sb(e,t);let i=t&&Pt(r)?r:n,s=gr();if(!Pt(i)){let l=Zo();if(l&&Pt(l)&&s!==l){let d=wpe(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=GD(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(ts(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=GD(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&&!r3(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=GD(s);if(g.ok)try{Gt(["git","checkout",r])}catch(y){return{ok:!1,branch:gr()||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:_ft(h),target_branch:r}}else return{ok:!1,branch:gr()||s,message:`failed to checkout '${r}' before merging main: ${h}`,switched:!1,target_branch:r}}let d=KD([],n,e,`haiku: merge intent-main \u2192 stage ${t} (workflow engine branch enforcement)`);if(d.ok)return{ok:!0,branch:r,message:`merged main \u2192 stage, now on ${r}`,switched:!0};let f=d.conflictFiles??[];return{ok:!1,branch:r,message:f.length>0?`Merge intent-main \u2192 stage '${t}' left ${f.length} conflicted file(s): ${f.join(", ")}. Resolve on '${r}', then \`git add\` + \`git commit\` and retry. While this merge is in progress the workflow-file guardrails are SUSPENDED (both raw Read/Write/Edit and the internal MCP write tools' lifecycle/ownership preventions), so you can resolve the conflicts directly. Prefer the schema-safe internal tools (\`haiku_feedback_write\`, \`haiku_unit_set\`, \`haiku_intent_set\`) \u2014 their schema validation still runs, so the resolved files stay valid. -Resolution rule for engine-owned feedback/unit YAML: the MORE-ADVANCED state wins. A terminal (closed/rejected) feedback beats an open one; more iterations / a later closure timestamp beats fewer. BUT feedback that exists only on this (incomplete, not-yet-merged) stage branch must be KEPT \u2014 intent-main doesn't have it yet, so don't drop it in favor of main's absence.`:`failed to merge main into stage: ${d.message??"unknown error"}. Resolve manually on '${r}', then retry.`,switched:!1,block:f.length>0?"merge_conflict":void 0,dirty_files:f.length>0?f:void 0,target_branch:r}}}try{return Gt(["git","checkout",i]),{ok:!0,branch:i,message:`checked out ${i}`,switched:!0}}catch(l){let d=l instanceof Error?l.message:String(l);if(d.includes("would be overwritten by checkout")||d.includes("Please commit your changes or stash them")){let p=GD(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:bft(d),target_branch:i}}return{ok:!1,branch:s,message:`failed to checkout ${i}: ${d}`,switched:!1,target_branch:i}}}function GD(e){try{Gt(["git","add","-A"]);let n=ae(["git","diff","--cached","--name-only"]).split(` +Resolution rule for engine-owned feedback/unit YAML: the MORE-ADVANCED state wins. A terminal (closed/rejected) feedback beats an open one; more iterations / a later closure timestamp beats fewer. BUT feedback that exists only on this (incomplete, not-yet-merged) stage branch must be KEPT \u2014 intent-main doesn't have it yet, so don't drop it in favor of main's absence.`:`failed to merge main into stage: ${d.message??"unknown error"}. Resolve manually on '${r}', then retry.`,switched:!1,block:f.length>0?"merge_conflict":void 0,dirty_files:f.length>0?f:void 0,target_branch:r}}}try{return Gt(["git","checkout",i]),{ok:!0,branch:i,message:`checked out ${i}`,switched:!0}}catch(l){let d=l instanceof Error?l.message:String(l);if(d.includes("would be overwritten by checkout")||d.includes("Please commit your changes or stash them")){let p=GD(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:_ft(d),target_branch:i}}return{ok:!1,branch:s,message:`failed to checkout ${i}: ${d}`,switched:!1,target_branch:i}}}function GD(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 Ape(){if(!Ee())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 bft(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 cBn(e,t,n,r){if(!Ee())return{ok:!0,message:"no git"};let i=`haiku/${e}/main`;if(!Pt(i))return{ok:!1,message:`${i} does not exist`};try{if(gr()===i){let o=Br(),a=es(o,t),c=a.replace(/\/[^/]+$/,"");VD(c,{recursive:!0}),ope(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 Uh(i,o=>{let a=es(o,t),c=a.replace(/\/[^/]+$/,"");VD(c,{recursive:!0}),ope(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 uBn(e,t,n,r){let i={paths_copied:[]};if(!Ee())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(` +`)){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 _ft(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 uBn(e,t,n,r){if(!Ee())return{ok:!0,message:"no git"};let i=`haiku/${e}/main`;if(!Pt(i))return{ok:!1,message:`${i} does not exist`};try{if(gr()===i){let o=Br(),a=ts(o,t),c=a.replace(/\/[^/]+$/,"");VD(c,{recursive:!0}),ope(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 Uh(i,o=>{let a=ts(o,t),c=a.replace(/\/[^/]+$/,"");VD(c,{recursive:!0}),ope(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 lBn(e,t,n,r){let i={paths_copied:[]};if(!Ee())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 gr()===s?a(Br()):Uh(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 l3(e){let t={deleted_local:[],deleted_remote:[]};if(!Ee())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)&&n3(["git","push","origin","--delete",o])&&t.deleted_remote.push(o)}return t}function lBn(e,t){let n=Jqn(es(Qqn(),"haiku-merge-"));try{Gt(["git","worktree","add",n,e]);try{return t(n)}finally{ae(["git","worktree","remove","--force",n])}}finally{try{ape(n,{recursive:!0,force:!0})}catch{}}}function DT(e){if(Ee())try{let t=es(Br(),".haiku","intents",e);if(!io(t))return;let n=["action-log.jsonl merge=union","write-audit.jsonl merge=union"],i=`${[...["# Engine-owned append-only event streams. `merge=union` tells git","# to concatenate both sides on conflict \u2014 these files are pure","# event streams and never benefit from manual conflict resolution."],...n].join(` +`).filter(Boolean)){let o=s.startsWith("origin/")?s.slice(7):s;o===n||o.slice(`haiku/${e}/`.length).startsWith("unit-")||Zc(o,n)&&n3(["git","push","origin","--delete",o])&&t.deleted_remote.push(o)}return t}function dBn(e,t){let n=Xqn(ts($qn(),"haiku-merge-"));try{Gt(["git","worktree","add",n,e]);try{return t(n)}finally{ae(["git","worktree","remove","--force",n])}}finally{try{ape(n,{recursive:!0,force:!0})}catch{}}}function DT(e){if(Ee())try{let t=ts(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=Xqn(d,"utf8"))}catch{}n.every(p=>f.includes(p))||(ope(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=gr();if(c===s)a();else try{Uh(s,u=>a(u))}catch{}c&&c!==s&&a()}catch{}}function mb(e,t){if(!Ee()||!Pt(e)||ae(["git","branch","-D",e])!=="")return!0;let r=wpe(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 wpe(e){if(!Ee()||!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 Tft(e){return io(es(e,".git"))}function dBn(e){try{Kr("git",["worktree","prune"],{stdio:["ignore","ignore","ignore"]})}catch{}try{ape(e,{recursive:!0,force:!0})}catch{}}function fBn(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 Uh(e,t){let n=wpe(e);if(n){let r=fBn(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 lBn(e,t)}function kpe(e,t,n){if(!Ee())return null;if(!n)throw new Error("createUnitWorktree requires `stage` \u2014 units always fork from the stage branch");let r=Sb(e,n);DT(e),eL();let i=`haiku/${e}/${t}`,s=es(Br(),".haiku","worktrees",e),o=es(s,t);try{if(io(o))return o;if(VD(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 pBn(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 d3(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)pBn(s,n)&&(ae(["git",...e,"checkout",t,"--",s]),ae(["git",...e,"add","--",s]))}function Ipe(e,t,n){if(!Ee())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=Sb(e,n),i=`haiku/${e}/${t}`,s=yb(e,t);DT(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=gr()===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}d3(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():Uh(r,u=>c(u)),ae(["git","worktree","remove",s,"--force"]),mb(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 NI(e,t,n){return es(Br(),".haiku","worktrees",e,`discovery-${t}-${n}`)}function CI(e,t,n){return`haiku/${e}/discovery-${t}-${n}`}function xpe(e,t,n){if(!Ee())return null;if(!t||!n)throw new Error("createDiscoveryWorktree requires `stage` and `template`");let r=Sb(e,t);DT(e),eL();let i=CI(e,t,n),s=NI(e,t,n),o=es(Br(),".haiku","worktrees",e);try{return io(s)||(VD(o,{recursive:!0}),Pt(i)||ae(["git","branch",i,r]),Gt(["git","worktree","add",s,i])),s}catch{return null}}function Ope(e,t,n){if(!Ee())return{success:!0,message:"no worktree"};let r=Sb(e,t),i=CI(e,t,n),s=NI(e,t,n);if(DT(e),!io(s))return mb(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?ts(u,o):ts(Br(),o),f="";try{io(d)&&(f=Qqn(d,"utf8"))}catch{}n.every(p=>f.includes(p))||(ope(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=gr();if(c===s)a();else try{Uh(s,u=>a(u))}catch{}c&&c!==s&&a()}catch{}}function mb(e,t){if(!Ee()||!Pt(e)||ae(["git","branch","-D",e])!=="")return!0;let r=wpe(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 wpe(e){if(!Ee()||!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 Rft(e){return io(ts(e,".git"))}function fBn(e){try{Kr("git",["worktree","prune"],{stdio:["ignore","ignore","ignore"]})}catch{}try{ape(e,{recursive:!0,force:!0})}catch{}}function pBn(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 Uh(e,t){let n=wpe(e);if(n){let r=pBn(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 dBn(e,t)}function kpe(e,t,n){if(!Ee())return null;if(!n)throw new Error("createUnitWorktree requires `stage` \u2014 units always fork from the stage branch");let r=Sb(e,n);DT(e),eL();let i=`haiku/${e}/${t}`,s=ts(Br(),".haiku","worktrees",e),o=ts(s,t);try{if(io(o))return o;if(VD(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 hBn(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 d3(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)hBn(s,n)&&(ae(["git",...e,"checkout",t,"--",s]),ae(["git",...e,"add","--",s]))}function Ipe(e,t,n){if(!Ee())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=Sb(e,n),i=`haiku/${e}/${t}`,s=yb(e,t);DT(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=gr()===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}d3(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():Uh(r,u=>c(u)),ae(["git","worktree","remove",s,"--force"]),mb(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 NI(e,t,n){return ts(Br(),".haiku","worktrees",e,`discovery-${t}-${n}`)}function CI(e,t,n){return`haiku/${e}/discovery-${t}-${n}`}function xpe(e,t,n){if(!Ee())return null;if(!t||!n)throw new Error("createDiscoveryWorktree requires `stage` and `template`");let r=Sb(e,t);DT(e),eL();let i=CI(e,t,n),s=NI(e,t,n),o=ts(Br(),".haiku","worktrees",e);try{return io(s)||(VD(o,{recursive:!0}),Pt(i)||ae(["git","branch",i,r]),Gt(["git","worktree","add",s,i])),s}catch{return null}}function Ope(e,t,n){if(!Ee())return{success:!0,message:"no worktree"};let r=Sb(e,t),i=CI(e,t,n),s=NI(e,t,n);if(DT(e),!io(s))return mb(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=gr()===r,u=l=>{let f=KD(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 Uh(r,l=>u(l));return ae(["git","worktree","remove",s,"--force"]),mb(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 hBn(e,t,n){if(!Ee())return{success:!0,message:"no git"};let r=CI(e,t,n),i=NI(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),mb(r,`discovery cleanup for ${e}/${t}/${n}`),{success:!0,message:`cleaned up ${r}`}}function Ppe(e,t,n){if(!Ee())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`:Sb(e,t);DT(e),eL();let i=JD(e,t,n),s=Sg(e,t,n),o=es(Br(),".haiku","worktrees",e);try{if(io(s))return s;if(VD(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 XD(e,t,n){if(!Ee())return{success:!0,message:"no worktree"};let r=t==="intent"?`haiku/${e}/main`:Sb(e,t),i=JD(e,t,n),s=Sg(e,t,n);if(DT(e),!io(s)||!Tft(s))return io(s)&&dBn(s),mb(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=gr()===r,u=l=>{let f=KD(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 Uh(r,l=>u(l));return ae(["git","worktree","remove",s,"--force"]),mb(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 mBn(e,t,n){if(!Ee())return{success:!0,message:"no git"};let r=CI(e,t,n),i=NI(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),mb(r,`discovery cleanup for ${e}/${t}/${n}`),{success:!0,message:`cleaned up ${r}`}}function Ppe(e,t,n){if(!Ee())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`:Sb(e,t);DT(e),eL();let i=JD(e,t,n),s=Sg(e,t,n),o=ts(Br(),".haiku","worktrees",e);try{if(io(s))return s;if(VD(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 XD(e,t,n){if(!Ee())return{success:!0,message:"no worktree"};let r=t==="intent"?`haiku/${e}/main`:Sb(e,t),i=JD(e,t,n),s=Sg(e,t,n);if(DT(e),!io(s)||!Rft(s))return io(s)&&fBn(s),mb(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=gr()===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}d3(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():Uh(r,l=>u(l)),ae(["git","worktree","remove",s,"--force"]),mb(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 f3(e,t,n){if(!Ee())return{success:!0,message:"no git"};let r=JD(e,t,n),i=Sg(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),mb(r,`fix-chain cleanup for ${e}/${t}/${n}`),ae(["git","push","origin","--delete",r]),{success:!0,message:`cleaned up ${r}`}}function Npe(e,t){if(!Ee())return{success:!0,message:"no git"};let n=`haiku/${e}/${t}`,r=yb(e,t);return io(r)&&ae(["git","worktree","remove",r,"--force"]),mb(n,`unit reset for ${e}/${t}`),ae(["git","push","origin","--delete",n]),ae(["git","worktree","prune"]),{success:!0,message:`reset unit worktree ${n}`}}function QD(e){let t=es(Br(),".haiku","worktrees",e);try{ape(t,{recursive:!0,force:!0})}catch{}ae(["git","worktree","prune"])}function $D(e){return!Ee()||gr()===e||!Pt(e)?!1:ae(["git","branch","-D",e])!==""}function bb(e,t){if(!Ee()||t==="main")return!1;let n=`haiku/${e}/${t}`;return ae(["git","worktree","prune"]),$D(n)}function Cpe(e,t){let n=`haiku/${e}/main`;if(!Ee())return{success:!0,merged:[],deleted:[],message:"no git"};if(!Pt(n))return{success:!0,merged:[],deleted:[],message:`no intent main branch (${n})`};let r=[],i=[];for(let s of t){let o=`haiku/${e}/${s}`;if(!Pt(o)||Zc(o,n))continue;let a=ZD(e,s);if(!a.success)return{success:!1,merged:r,deleted:i,message:`merge of '${s}' into main failed: ${a.message}`};r.push(o)}if(gr()!==n)try{PT(["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)&&$D(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 mBn(e,t,n){if(!Ee())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]),gr()!==r&&PT(["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,ar=v(()=>{"use strict";Nh();t3();ze();vo();Ra=3e4,Aa={...process.env,GIT_TERMINAL_PROMPT:"0",GIT_ASKPASS:"true",SSH_ASKPASS:"true",SSH_ASKPASS_REQUIRE:"never"}});import*as Aft from"node:fs";import*as Dd from"node:path";function tL(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(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():Uh(r,l=>u(l)),ae(["git","worktree","remove",s,"--force"]),mb(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 f3(e,t,n){if(!Ee())return{success:!0,message:"no git"};let r=JD(e,t,n),i=Sg(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),mb(r,`fix-chain cleanup for ${e}/${t}/${n}`),ae(["git","push","origin","--delete",r]),{success:!0,message:`cleaned up ${r}`}}function Npe(e,t){if(!Ee())return{success:!0,message:"no git"};let n=`haiku/${e}/${t}`,r=yb(e,t);return io(r)&&ae(["git","worktree","remove",r,"--force"]),mb(n,`unit reset for ${e}/${t}`),ae(["git","push","origin","--delete",n]),ae(["git","worktree","prune"]),{success:!0,message:`reset unit worktree ${n}`}}function QD(e){let t=ts(Br(),".haiku","worktrees",e);try{ape(t,{recursive:!0,force:!0})}catch{}ae(["git","worktree","prune"])}function $D(e){return!Ee()||gr()===e||!Pt(e)?!1:ae(["git","branch","-D",e])!==""}function bb(e,t){if(!Ee()||t==="main")return!1;let n=`haiku/${e}/${t}`;return ae(["git","worktree","prune"]),$D(n)}function Cpe(e,t){let n=`haiku/${e}/main`;if(!Ee())return{success:!0,merged:[],deleted:[],message:"no git"};if(!Pt(n))return{success:!0,merged:[],deleted:[],message:`no intent main branch (${n})`};let r=[],i=[];for(let s of t){let o=`haiku/${e}/${s}`;if(!Pt(o)||Zc(o,n))continue;let a=ZD(e,s);if(!a.success)return{success:!1,merged:r,deleted:i,message:`merge of '${s}' into main failed: ${a.message}`};r.push(o)}if(gr()!==n)try{PT(["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)&&$D(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 gBn(e,t,n){if(!Ee())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]),gr()!==r&&PT(["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,ar=v(()=>{"use strict";Nh();t3();ze();vo();Ra=3e4,Aa={...process.env,GIT_TERMINAL_PROMPT:"0",GIT_ASKPASS:"true",SSH_ASKPASS:"true",SSH_ASKPASS_REQUIRE:"never"}});import*as kft from"node:fs";import*as Dd from"node:path";function tL(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 wft(e)}function SBn(e,t,n,r){let i=t.split(` + `+Array(s).join(" ")+"^",new Ift(e)}function bBn(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 gBn((a?a+":"+n+` +`),u=new yBn((a?a+":"+n+` `:"line "+n+` `)+c+` -`+e.message);throw u.name=e.name,u.cause=e,u}function bBn(e){let t="";try{t=Aft.readFileSync(e,"utf8")}catch(n){throw n?.code==="ENOENT"?new Mpe(`Could not find template: ${e}`):n}return t}function EBn(e,t){let n="",r=this.config.views;if(!r)throw new Mpe("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+=Dd.extname(e)?"":s,i){if(this.config.cacheFilepaths&&this.filepathCache[o])return this.filepathCache[o];if(TBn.exec(e)?.length){let a=e.replace(/^\/*|^\\*/,"");n=Dd.join(r,a)}else n=Dd.join(Dd.dirname(i),e)}else n=Dd.join(r,e);if(_Bn(r,n))return i&&this.config.cacheFilepaths&&(this.filepathCache[o]=n),n;throw new Mpe(`Template '${e}' is not in the views directory`)}function _Bn(e,t){let n=Dd.relative(e,t);return n&&!n.startsWith("..")&&!Dd.isAbsolute(n)}function RBn(e,t){let n=this.config,r=t?.async?vBn:Function;try{return new r(n.varName,"options",this.compileToString.call(this,e,t))}catch(i){throw i instanceof SyntaxError?new wft(`Bad template syntax +`+e.message);throw u.name=e.name,u.cause=e,u}function EBn(e){let t="";try{t=kft.readFileSync(e,"utf8")}catch(n){throw n?.code==="ENOENT"?new Mpe(`Could not find template: ${e}`):n}return t}function _Bn(e,t){let n="",r=this.config.views;if(!r)throw new Mpe("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+=Dd.extname(e)?"":s,i){if(this.config.cacheFilepaths&&this.filepathCache[o])return this.filepathCache[o];if(vBn.exec(e)?.length){let a=e.replace(/^\/*|^\\*/,"");n=Dd.join(r,a)}else n=Dd.join(Dd.dirname(i),e)}else n=Dd.join(r,e);if(TBn(r,n))return i&&this.config.cacheFilepaths&&(this.filepathCache[o]=n),n;throw new Mpe(`Template '${e}' is not in the views directory`)}function TBn(e,t){let n=Dd.relative(e,t);return n&&!n.startsWith("..")&&!Dd.isAbsolute(n)}function ABn(e,t){let n=this.config,r=t?.async?RBn:Function;try{return new r(n.varName,"options",this.compileToString.call(this,e,t))}catch(i){throw i instanceof SyntaxError?new Ift(`Bad template syntax `+i.message+` `+Array(i.message.length+1).join("=")+` `+this.compileToString.call(this,e,t)+` -`):i}}function ABn(e,t){let n=this.config,r=t?.async,i=this.compileBody,s=this.parse.call(this,e),o=`${n.functionHeader} +`):i}}function wBn(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); @@ -585,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,xBn):t}function g3(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function PBn(e,t){return e.slice(0,t).split(` -`).length}function NBn(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+"|"+g3(p):p?g3(p):f,""),u=new RegExp(g3(t.tags[0])+"(-|_)?\\s*("+c+")?\\s*","g"),l=new RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?"+g3(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&&tL("unclosed comment",e,m.index),l.lastIndex=b}else y==="'"?(h3.lastIndex=m.index,h3.exec(e)?l.lastIndex=h3.lastIndex:tL("unclosed string",e,m.index)):y==='"'?(m3.lastIndex=m.index,m3.exec(e)?l.lastIndex=m3.lastIndex:tL("unclosed string",e,m.index)):y==="`"&&(p3.lastIndex=m.index,p3.exec(e)?l.lastIndex=p3.lastIndex:tL("unclosed string",e,m.index))}g?(t.debug&&(g.lineNo=PBn(e,d.index)),n.push(g)):tL("unclosed tag",e,d.index)}if(a(e.slice(i,e.length),!1),t.plugins)for(let f=0;f{nL=class extends Error{constructor(e){super(e),this.name="Eta Error"}},wft=class extends nL{constructor(e){super(e),this.name="EtaParser Error"}},gBn=class extends nL{constructor(e){super(e),this.name="EtaRuntime Error"}},Mpe=class extends nL{constructor(e){super(e),this.name="EtaFileResolution Error"}},yBn=class extends nL{constructor(e){super(e),this.name="EtaNameResolution Error"}};TBn=/^\\|^\//,vBn=(async()=>{}).constructor;IBn={"&":"&","<":"<",">":">",'"':""","'":"'"};vft={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,customTags:{},debug:!1,escapeFunction:OBn,filterFunction:e=>String(e),outputFunctionName:"output",functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it",defaultExtension:".eta"},p3=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,h3=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,m3=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;Rft=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}}},DBn=class{constructor(e){e?this.config={...vft,...e}:this.config={...vft};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 nL(`Custom tag prefix "${n}" conflicts with a built-in prefix`)}config;RuntimeErr=SBn;compile=RBn;compileToString=ABn;compileBody=wBn;parse=NBn;render=Ift;renderAsync=xft;renderString=CBn;renderStringAsync=MBn;filepathCache={};templatesSync=new Rft({});templatesAsync=new Rft({});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 DBn{readFile=bBn;resolvePath=EBn}});import{execFileSync as LBn}from"node:child_process";import{existsSync as UBn,mkdirSync as j5r,readdirSync as H5r,readFileSync as q5r,writeFileSync as B5r}from"node:fs";import{join as Dpe}from"node:path";function Ee(){if(LT!==null)return LT;try{LBn("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}),LT=!0}catch{LT=!1}return LT}function Oft(){LT=null}function Pft(e){LT=e}function Nft(e){Lpe=e}function ve(){if(Lpe)return Lpe;let e=process.cwd();for(let t=0;t<20;t++){if(UBn(Dpe(e,".haiku")))return Dpe(e,".haiku");let n=Dpe(e,"..");if(n===e)break;e=n}throw new Error("No .haiku/ directory found")}var FBn,LT,Lpe,Eb=v(()=>{"use strict";xD();FBn=Re(Kt(),1);sh();LT=null;Lpe=null});import{execFileSync as jBn}from"node:child_process";import{mkdirSync as S3,mkdtempSync as HBn,readdirSync as Z5r,renameSync as qBn,rmSync as BBn,statSync as J5r,writeFileSync as zBn}from"node:fs";import{homedir as GBn,tmpdir as VBn}from"node:os";import{dirname as Cft,join as Fu,resolve as WBn}from"node:path";function Mft(e){e&&(y3&&y3!==e||(y3=e))}function KBn(){return y3||process.env.CLAUDE_SESSION_ID||process.env.HAIKU_SESSION_ID||String(process.pid)}function YBn(){try{let e=jBn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Cft(WBn(e))}catch{}try{return Cft(ve())}catch{return process.cwd()}}function ZBn(){return YBn().replace(/\//g,"-")}function JBn(){return process.env.NODE_TEST_CONTEXT||process.env.NODE_ENV==="test"?!0:process.argv.some(e=>/\.test\.(mjs|js|ts)$/.test(e))}function Fpe(){let e=process.env.HAIKU_PROJECTS_ROOT;return e||(JBn()?(Upe||(Upe=HBn(Fu(VBn(),"haiku-test-projects-"))),Upe):Fu(GBn(),".haiku","projects"))}function jpe(){return Fu(Fpe(),ZBn())}function b3(e,t){let n=o=>o.replace(/[^A-Za-z0-9._-]+/g,"-"),r=n(e),i=t?Fu("stages",n(t)):"intent",s=Fu(jpe(),"intents",r,"prompts",i);return S3(s,{recursive:!0}),s}function XBn(){let e=Fu(jpe(),"sessions",KBn());return S3(e,{recursive:!0}),e}function Dft(e){return Fu(XBn(),e)}function DI(e,t){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-"),r=Fu(jpe(),"intents",n);return S3(r,{recursive:!0}),Fu(r,t)}function Lft(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=b3(s,o),d=Fu(l,`${u}.prompt.md`);_3(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 _b(e){let{intent:t,stage:n,kind:r,name:i,body:s}=e,o=u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"),a=Fu(b3(t,n),"refs",o(r));S3(a,{recursive:!0});let c=Fu(a,`${o(i).replace(/\.md$/,"")}.md`);return _3(c,s),c}function Uft(e){let{action:t,intent:n,stage:r,content:i}=e,o=`main-action-${(u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"))(t)}`,a=b3(n,r),c=Fu(a,`${o}.prompt.md`);return _3(c,i),{path:c}}function Fft(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 IBn(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 OBn(e){return xBn[e]}function PBn(e){let t=String(e);return/[&<>"']/.test(t)?t.replace(/[&<>"']/g,OBn):t}function g3(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function NBn(e,t){return e.slice(0,t).split(` +`).length}function CBn(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+"|"+g3(p):p?g3(p):f,""),u=new RegExp(g3(t.tags[0])+"(-|_)?\\s*("+c+")?\\s*","g"),l=new RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?"+g3(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&&tL("unclosed comment",e,m.index),l.lastIndex=b}else y==="'"?(h3.lastIndex=m.index,h3.exec(e)?l.lastIndex=h3.lastIndex:tL("unclosed string",e,m.index)):y==='"'?(m3.lastIndex=m.index,m3.exec(e)?l.lastIndex=m3.lastIndex:tL("unclosed string",e,m.index)):y==="`"&&(p3.lastIndex=m.index,p3.exec(e)?l.lastIndex=p3.lastIndex:tL("unclosed string",e,m.index))}g?(t.debug&&(g.lineNo=NBn(e,d.index)),n.push(g)):tL("unclosed tag",e,d.index)}if(a(e.slice(i,e.length),!1),t.plugins)for(let f=0;f{nL=class extends Error{constructor(e){super(e),this.name="Eta Error"}},Ift=class extends nL{constructor(e){super(e),this.name="EtaParser Error"}},yBn=class extends nL{constructor(e){super(e),this.name="EtaRuntime Error"}},Mpe=class extends nL{constructor(e){super(e),this.name="EtaFileResolution Error"}},SBn=class extends nL{constructor(e){super(e),this.name="EtaNameResolution Error"}};vBn=/^\\|^\//,RBn=(async()=>{}).constructor;xBn={"&":"&","<":"<",">":">",'"':""","'":"'"};Aft={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,customTags:{},debug:!1,escapeFunction:PBn,filterFunction:e=>String(e),outputFunctionName:"output",functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it",defaultExtension:".eta"},p3=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,h3=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,m3=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;wft=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}}},LBn=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 nL(`Custom tag prefix "${n}" conflicts with a built-in prefix`)}config;RuntimeErr=bBn;compile=ABn;compileToString=wBn;compileBody=kBn;parse=CBn;render=Oft;renderAsync=Pft;renderString=MBn;renderStringAsync=DBn;filepathCache={};templatesSync=new wft({});templatesAsync=new wft({});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 LBn{readFile=EBn;resolvePath=_Bn}});import{execFileSync as UBn}from"node:child_process";import{existsSync as FBn,mkdirSync as H5r,readdirSync as q5r,readFileSync as B5r,writeFileSync as z5r}from"node:fs";import{join as Dpe}from"node:path";function Ee(){if(LT!==null)return LT;try{UBn("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}),LT=!0}catch{LT=!1}return LT}function Nft(){LT=null}function Cft(e){LT=e}function Mft(e){Lpe=e}function ve(){if(Lpe)return Lpe;let e=process.cwd();for(let t=0;t<20;t++){if(FBn(Dpe(e,".haiku")))return Dpe(e,".haiku");let n=Dpe(e,"..");if(n===e)break;e=n}throw new Error("No .haiku/ directory found")}var jBn,LT,Lpe,Eb=v(()=>{"use strict";xD();jBn=Re(Kt(),1);sh();LT=null;Lpe=null});import{execFileSync as HBn}from"node:child_process";import{mkdirSync as S3,mkdtempSync as qBn,readdirSync as J5r,renameSync as BBn,rmSync as zBn,statSync as X5r,writeFileSync as GBn}from"node:fs";import{homedir as VBn,tmpdir as WBn}from"node:os";import{dirname as Dft,join as Fu,resolve as KBn}from"node:path";function Lft(e){e&&(y3&&y3!==e||(y3=e))}function YBn(){return y3||process.env.CLAUDE_SESSION_ID||process.env.HAIKU_SESSION_ID||String(process.pid)}function ZBn(){try{let e=HBn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Dft(KBn(e))}catch{}try{return Dft(ve())}catch{return process.cwd()}}function JBn(){return ZBn().replace(/\//g,"-")}function XBn(){return process.env.NODE_TEST_CONTEXT||process.env.NODE_ENV==="test"?!0:process.argv.some(e=>/\.test\.(mjs|js|ts)$/.test(e))}function Fpe(){let e=process.env.HAIKU_PROJECTS_ROOT;return e||(XBn()?(Upe||(Upe=qBn(Fu(WBn(),"haiku-test-projects-"))),Upe):Fu(VBn(),".haiku","projects"))}function jpe(){return Fu(Fpe(),JBn())}function b3(e,t){let n=o=>o.replace(/[^A-Za-z0-9._-]+/g,"-"),r=n(e),i=t?Fu("stages",n(t)):"intent",s=Fu(jpe(),"intents",r,"prompts",i);return S3(s,{recursive:!0}),s}function QBn(){let e=Fu(jpe(),"sessions",YBn());return S3(e,{recursive:!0}),e}function Uft(e){return Fu(QBn(),e)}function DI(e,t){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-"),r=Fu(jpe(),"intents",n);return S3(r,{recursive:!0}),Fu(r,t)}function Fft(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=b3(s,o),d=Fu(l,`${u}.prompt.md`);_3(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 _b(e){let{intent:t,stage:n,kind:r,name:i,body:s}=e,o=u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"),a=Fu(b3(t,n),"refs",o(r));S3(a,{recursive:!0});let c=Fu(a,`${o(i).replace(/\.md$/,"")}.md`);return _3(c,s),c}function jft(e){let{action:t,intent:n,stage:r,content:i}=e,o=`main-action-${(u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"))(t)}`,a=b3(n,r),c=Fu(a,`${o}.prompt.md`);return _3(c,i),{path:c}}function Hft(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 QBn(e){let{unit:t,hat:n,bolt:r,intent:i,stage:s}=e,o=`subagent-${t.replace(/\.md$/,"")}-${n}-${r}`;return Fu(b3(i,s),`${o}.next-relay.md`)}function E3(e,t){_3(QBn(e),t)}function _3(e,t){let n=`${e}.${process.pid}.tmp`;zBn(n,t,"utf8");try{qBn(n,e)}catch(r){try{BBn(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 y3,Upe,vl=v(()=>{"use strict";Eb();y3=null;Upe=null});import{existsSync as $Bn,readFileSync as ezn,statSync as Hpe}from"node:fs";import{join as T3}from"node:path";import{fileURLToPath as tzn}from"node:url";function rzn(e,t){let n=T3(process.cwd(),".haiku","prompts",e);try{if(Hpe(n).isFile())return n}catch{}let r=T3(t,e);try{if(Hpe(r).isFile())return r}catch{}throw new Error(`loadTemplate: could not find "${e}" \u2014 checked ${n} and ${r}`)}function Bft(e){let t=tzn(e),n=t.indexOf(Hft);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+Hft.length),s=i.lastIndexOf("/");return{rel:s<0?"":i.slice(0,s),pluginPromptsRoot:T3(r,"plugin","prompts")}}function izn(e){let t=Hpe(e).mtimeMs,n=qft.get(e);if(n&&n.mtimeMs>=t)return n.body;let r=ezn(e,"utf8");return qft.set(e,{body:r,mtimeMs:t,path:e}),r}function szn(){let e=T3(nn(),"prompts");if($Bn(e))return e;try{return Bft(import.meta.url).pluginPromptsRoot}catch{return e}}function ie(e,t="template.eta.md"){let n,r;if(e.startsWith(jft))n=e.slice(jft.length),r=szn();else{let a=Bft(e);n=a.rel,r=a.pluginPromptsRoot}let i=n?`${n}/${t}`:t,s=nzn.get(i);if(s!==void 0)return s;let o=rzn(i,r);return izn(o)}var jft,Hft,qft,nzn,ht=v(()=>{"use strict";Ci();jft="@canon:",Hft="/packages/haiku/src/orchestrator/prompts/",qft=new Map,nzn=new Map});import{existsSync as v3,readFileSync as qpe}from"node:fs";import{join as rL}from"node:path";function ozn(e){let t=e;for(let n=0;n<4;n++){let r=rL(t,"settings.yml");if(v3(r))try{let i=qpe(r,"utf8"),{data:s}=(0,R3.default)(`--- +`}function $Bn(e){let{unit:t,hat:n,bolt:r,intent:i,stage:s}=e,o=`subagent-${t.replace(/\.md$/,"")}-${n}-${r}`;return Fu(b3(i,s),`${o}.next-relay.md`)}function E3(e,t){_3($Bn(e),t)}function _3(e,t){let n=`${e}.${process.pid}.tmp`;GBn(n,t,"utf8");try{BBn(n,e)}catch(r){try{zBn(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 y3,Upe,vl=v(()=>{"use strict";Eb();y3=null;Upe=null});import{existsSync as ezn,readFileSync as tzn,statSync as Hpe}from"node:fs";import{join as T3}from"node:path";import{fileURLToPath as nzn}from"node:url";function izn(e,t){let n=T3(process.cwd(),".haiku","prompts",e);try{if(Hpe(n).isFile())return n}catch{}let r=T3(t,e);try{if(Hpe(r).isFile())return r}catch{}throw new Error(`loadTemplate: could not find "${e}" \u2014 checked ${n} and ${r}`)}function Gft(e){let t=nzn(e),n=t.indexOf(Bft);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+Bft.length),s=i.lastIndexOf("/");return{rel:s<0?"":i.slice(0,s),pluginPromptsRoot:T3(r,"plugin","prompts")}}function szn(e){let t=Hpe(e).mtimeMs,n=zft.get(e);if(n&&n.mtimeMs>=t)return n.body;let r=tzn(e,"utf8");return zft.set(e,{body:r,mtimeMs:t,path:e}),r}function ozn(){let e=T3(nn(),"prompts");if(ezn(e))return e;try{return Gft(import.meta.url).pluginPromptsRoot}catch{return e}}function ie(e,t="template.eta.md"){let n,r;if(e.startsWith(qft))n=e.slice(qft.length),r=ozn();else{let a=Gft(e);n=a.rel,r=a.pluginPromptsRoot}let i=n?`${n}/${t}`:t,s=rzn.get(i);if(s!==void 0)return s;let o=izn(i,r);return szn(o)}var qft,Bft,zft,rzn,ht=v(()=>{"use strict";Ci();qft="@canon:",Bft="/packages/haiku/src/orchestrator/prompts/",zft=new Map,rzn=new Map});import{existsSync as v3,readFileSync as qpe}from"node:fs";import{join as rL}from"node:path";function azn(e){let t=e;for(let n=0;n<4;n++){let r=rL(t,"settings.yml");if(v3(r))try{let i=qpe(r,"utf8"),{data:s}=(0,R3.default)(`--- ${i} --- `);return s}catch{return{}}t=rL(t,"..")}try{let n=ve(),r=rL(n,"settings.yml");if(v3(r)){let i=qpe(r,"utf8"),{data:s}=(0,R3.default)(`--- ${i} --- -`);return s}}catch{}return{}}function azn(e){let t;try{t=ve()}catch{t=process.cwd()}let n=rL(t,"providers",`${e}.md`);if(v3(n))return n;let r=rL(nn(),"providers",`${e}.md`);return v3(r)?r:null}function czn(e){try{let t=qpe(e,"utf8"),n=(0,R3.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 uzn(e){return e==="git"?Ee():!0}function lzn(e){let n=ozn(e).providers??{},r=["git","ticketing","spec","knowledge","design"],i=[];for(let s of r){let o=azn(s);if(!o)continue;let a=czn(o);if(!a)continue;if(n[s]!==void 0){i.push(a);continue}a.alwaysOn&&uzn(s)&&i.push(a)}return i}function zft(e,t){return lzn(t).filter(n=>n.splicesInto.includes(e))}var R3,Gft=v(()=>{"use strict";R3=Re(Kt(),1);Ci();Eb()});var UT,FT,A3=v(()=>{"use strict";UT=new Set(["runtime-verifier"]),FT=new Set(["delivery-verifier","runtime-verifier"])});import{execFileSync as dzn}from"node:child_process";import{mkdirSync as Yft,writeFileSync as Zft}from"node:fs";import{dirname as Vft,join as iL,resolve as fzn}from"node:path";function jT(e){let t=null;return()=>(t===null&&(t=ie("@canon:_shared",e)),t)}function _zn(){return Bpe===null&&(Bpe=pzn.renderString(ie("@canon:_shared","workflow-contracts-review.eta.md"),{maxStageIterations:Df})),Bpe}function Tzn(){try{let e=dzn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Vft(fzn(e))}catch{}try{return Vft(ve())}catch{return process.cwd()}}function zpe(){let e=Tzn().replace(/\//g,"-");return iL(Fpe(),e,"shared")}function vzn(){let e=zpe();if(Wft!==e){Yft(e,{recursive:!0});for(let[t,n]of Object.entries(Jft))try{Zft(iL(e,`${t}.md`),n.content(),"utf8")}catch{}Wft=e}}function bs(e){vzn();let t=Jft[e],n=iL(zpe(),`${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 Azn(e,t){let n=Rzn();Yft(n,{recursive:!0});let r=iL(n,`${e}.md`),i=`${r}:${e}`;if(!Kft.has(i)){try{Zft(r,t,"utf8")}catch{}Kft.add(i)}return r}function Xft(e){let t=Azn(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 pzn,hzn,mzn,gzn,yzn,Szn,bzn,Ezn,Bpe,Jft,Wft,Rzn,Kft,Fh=v(()=>{"use strict";gt();Eb();ze();vl();ht();A3();pzn=new Te({autoEscape:!1,useWith:!0});hzn=jT("announcement.md"),mzn=jT("subagent-error-recovery.md"),gzn=jT("workflow-contracts-elaborate.md"),yzn=jT("workflow-contracts-execute.md"),Szn=jT("workflow-contracts-fix-loop.md"),bzn=jT("runtime-verification.md"),Ezn=jT("service-dependencies.md"),Bpe=null;Jft={"workflow-contracts-elaborate":{content:()=>gzn(),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:()=>yzn(),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:()=>_zn(),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:()=>Szn(),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:()=>hzn(),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:()=>mzn(),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:()=>bzn(),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 + a self-installed Playwright script that records video, with the `haiku-playwright` MCP as fallback; 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 video+screenshot evidence under the gitignored `proof/` and upload it to the change request (GitLab uploads API / GitHub release-asset); and the PASS/FAIL/BLOCKED/SKIP verdict that drives sign-off vs. feedback."},"service-dependencies":{content:()=>Ezn(),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."}},Wft="";Rzn=()=>iL(zpe(),"providers"),Kft=new Set});import{existsSync as sL,readdirSync as wzn,readFileSync as w3}from"node:fs";import{join as kzn}from"node:path";function LI(e){if(!(!e||!sL(e)))try{let{data:t}=re(w3(e,"utf8")),n=t.interpretation;return n==="lens"||n==="strict"?n:void 0}catch{return}}function UI(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 czn(e){let t;try{t=ve()}catch{t=process.cwd()}let n=rL(t,"providers",`${e}.md`);if(v3(n))return n;let r=rL(nn(),"providers",`${e}.md`);return v3(r)?r:null}function uzn(e){try{let t=qpe(e,"utf8"),n=(0,R3.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 lzn(e){return e==="git"?Ee():!0}function dzn(e){let n=azn(e).providers??{},r=["git","ticketing","spec","knowledge","design"],i=[];for(let s of r){let o=czn(s);if(!o)continue;let a=uzn(o);if(!a)continue;if(n[s]!==void 0){i.push(a);continue}a.alwaysOn&&lzn(s)&&i.push(a)}return i}function Vft(e,t){return dzn(t).filter(n=>n.splicesInto.includes(e))}var R3,Wft=v(()=>{"use strict";R3=Re(Kt(),1);Ci();Eb()});var UT,FT,A3=v(()=>{"use strict";UT=new Set(["runtime-verifier"]),FT=new Set(["delivery-verifier","runtime-verifier"])});import{execFileSync as fzn}from"node:child_process";import{mkdirSync as Jft,writeFileSync as Xft}from"node:fs";import{dirname as Kft,join as iL,resolve as pzn}from"node:path";function jT(e){let t=null;return()=>(t===null&&(t=ie("@canon:_shared",e)),t)}function Tzn(){return Bpe===null&&(Bpe=hzn.renderString(ie("@canon:_shared","workflow-contracts-review.eta.md"),{maxStageIterations:Df})),Bpe}function vzn(){try{let e=fzn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Kft(pzn(e))}catch{}try{return Kft(ve())}catch{return process.cwd()}}function zpe(){let e=vzn().replace(/\//g,"-");return iL(Fpe(),e,"shared")}function Rzn(){let e=zpe();if(Yft!==e){Jft(e,{recursive:!0});for(let[t,n]of Object.entries(Qft))try{Xft(iL(e,`${t}.md`),n.content(),"utf8")}catch{}Yft=e}}function bs(e){Rzn();let t=Qft[e],n=iL(zpe(),`${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 wzn(e,t){let n=Azn();Jft(n,{recursive:!0});let r=iL(n,`${e}.md`),i=`${r}:${e}`;if(!Zft.has(i)){try{Xft(r,t,"utf8")}catch{}Zft.add(i)}return r}function $ft(e){let t=wzn(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 hzn,mzn,gzn,yzn,Szn,bzn,Ezn,_zn,Bpe,Qft,Yft,Azn,Zft,Fh=v(()=>{"use strict";gt();Eb();ze();vl();ht();A3();hzn=new Te({autoEscape:!1,useWith:!0});mzn=jT("announcement.md"),gzn=jT("subagent-error-recovery.md"),yzn=jT("workflow-contracts-elaborate.md"),Szn=jT("workflow-contracts-execute.md"),bzn=jT("workflow-contracts-fix-loop.md"),Ezn=jT("runtime-verification.md"),_zn=jT("service-dependencies.md"),Bpe=null;Qft={"workflow-contracts-elaborate":{content:()=>yzn(),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:()=>Szn(),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:()=>Tzn(),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:()=>bzn(),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:()=>mzn(),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:()=>gzn(),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:()=>Ezn(),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 + a self-installed Playwright script that records video, with the `haiku-playwright` MCP as fallback; 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 video+screenshot evidence under the gitignored `proof/` and upload it to the change request (GitLab uploads API / GitHub release-asset); and the PASS/FAIL/BLOCKED/SKIP verdict that drives sign-off vs. feedback."},"service-dependencies":{content:()=>_zn(),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."}},Yft="";Azn=()=>iL(zpe(),"providers"),Zft=new Set});import{existsSync as sL,readdirSync as kzn,readFileSync as w3}from"node:fs";import{join as Izn}from"node:path";function LI(e){if(!(!e||!sL(e)))try{let{data:t}=re(w3(e,"utf8")),n=t.interpretation;return n==="lens"||n==="strict"?n:void 0}catch{return}}function UI(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 Gpe(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(!sL(e))return"";let n=w3(e,"utf8"),r;try{r=(0,Qft.default)(n).content.trim()}catch{r=n}return r?`### ${t} +`)}function Rl(e,t){if(!sL(e))return"";let n=w3(e,"utf8"),r;try{r=(0,ept.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** \`${_b({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 ept(e,t){if(!sL(e))return"";let n=[];try{let{data:p}=re(w3(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** \`${_b({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 npt(e,t){if(!sL(e))return"";let n=[];try{let{data:p}=re(w3(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 k3(e){return ept(e,{rejectResults:new Set(["reject"]),rejectAdvanceTool:"haiku_unit_advance_hat",rejectHatTool:"haiku_unit_reject_hat",fixLoop:!1})}function FI(e){return ept(e,{rejectResults:new Set(["rejected"]),rejectAdvanceTool:"haiku_feedback_advance_hat",rejectHatTool:"haiku_feedback_reject_hat",fixLoop:!0})}function jI(e,t){let n=[];try{let c=t?Us(e,t):[],u=Us(e,""),l=new Set;for(let d of[...c,...u])l.has(d.file)||(l.add(d.file),n.push(d))}catch{return""}if(n.length===0)return"";let r=50,i=n.slice(0,r),s=(c,u)=>c.length>u?`${c.slice(0,u)}\u2026`:c,o=i.map(c=>{let u=c.file.includes("/stages/")?"stage":"intent",l=c.severity?`${c.severity} \xB7 `:"",d=(c.body||"").replace(/```[\s\S]*?```/g," ").replace(/\s+/g," ").trim(),f=s(d,140),p="",h=c.closure_reply?.text?.replace(/\s+/g," ").trim();if(h)p=` \xB7 resolved: ${s(h,160)}`;else if(c.status==="rejected"){let m=(c.body||"").match(/\*\*Rejection reason:\*\*\s*([\s\S]+)$/),g=m?m[1].replace(/\s+/g," ").trim():"";p=g?` \xB7 dismissed: ${s(g,160)}`:" \xB7 dismissed"}return`- \`${c.id}\` [${l}${c.status} \xB7 ${c.origin} \xB7 ${u}] ${c.title}${f?` \u2014 ${f}`:""}${p}`}),a=n.length>r?` +${f}`}function k3(e){return npt(e,{rejectResults:new Set(["reject"]),rejectAdvanceTool:"haiku_unit_advance_hat",rejectHatTool:"haiku_unit_reject_hat",fixLoop:!1})}function FI(e){return npt(e,{rejectResults:new Set(["rejected"]),rejectAdvanceTool:"haiku_feedback_advance_hat",rejectHatTool:"haiku_feedback_reject_hat",fixLoop:!0})}function jI(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 HI(e){let t=kzn(ce(e),"stages");if(!sL(t))return"";let n=[];try{for(let r of wzn(t,{withFileTypes:!0}))if(r.isDirectory())for(let i of I3(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}=Lft({unit:t,hat:n,bolt:r,intent:i,stage:s,content:c,omitBolt:f});return Fft({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=nft(t);if(s)return s}if(r){let s=$i(n,r),o=RI(s?.data?.default_model);if(o)return o}let i=Cd(n);return RI(i?.data?.default_model)}function tpt(e,t,n,r,i){let s=Mi();return s.hooks?"":$ft.renderString(Izn,{slug:e,stage:t,hat:n,hatsStr:r.join(" \u2192 "),bolt:i,nativeAskUser:s.nativeAskUser})}function qI(e,t){if(!t)return"";let n=zft(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=>Xft({kind:i.kind,category:i.category,body:i.body})).join(` +`).trimEnd()}function HI(e){let t=Izn(ce(e),"stages");if(!sL(t))return"";let n=[];try{for(let r of kzn(t,{withFileTypes:!0}))if(r.isDirectory())for(let i of I3(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}=Fft({unit:t,hat:n,bolt:r,intent:i,stage:s,content:c,omitBolt:f});return Hft({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=ift(t);if(s)return s}if(r){let s=es(n,r),o=RI(s?.data?.default_model);if(o)return o}let i=Cd(n);return RI(i?.data?.default_model)}function rpt(e,t,n,r,i){let s=Mi();return s.hooks?"":tpt.renderString(xzn,{slug:e,stage:t,hat:n,hatsStr:r.join(" \u2192 "),bolt:i,nativeAskUser:s.nativeAskUser})}function qI(e,t){if(!t)return"";let n=Vft(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=>$ft({kind:i.kind,category:i.category,body:i.body})).join(` `)].join(` -`)}function BI(e){let t=`${e.replace(/\/$/,"")}/intent.md`;if(!sL(t))return"";try{let{data:n}=re(w3(t,"utf8"));return typeof n.mode=="string"?n.mode:""}catch{return""}}function zI(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?"":$ft.renderString(xzn,{slug:n,concurrentLines:o.map(a=>a.line)})}var Qft,$ft,Izn,xzn,ts=v(()=>{"use strict";gt();Qft=Re(Kt(),1);Ci();_f();pb();ze();Kn();vl();ht();Gft();Fh();$ft=new Te({autoEscape:!1,useWith:!0}),Izn=ie("@canon:","_shared/inline-subagent-context.eta.md"),xzn=ie("@canon:","_shared/concurrent-elaborate-loop.eta.md")});function x3(e,t,n){let r=e.ensureWorktree(),i=e.mandateRef(t),s=e.priorHandoffBlock(),o=e.resolveModel(t),a=e.bolt(),c=Ozn.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 Ozn,Vpe=v(()=>{"use strict";gt();ts();Ozn=new Te({autoEscape:!1,useWith:!0})});import{existsSync as npt,readdirSync as rpt,readFileSync as ipt}from"node:fs";import{join as GI}from"node:path";function Pzn(){return Wpe===null&&(Wpe=ie("@canon:feedback/start_feedback_hat","subagent.eta.md")),Wpe}function Nzn(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?GI(cr(t,n),"feedback"):GI(ce(t),"feedback");try{let p=npt(f)?rpt(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=ipt(GI(f,p[0]),"utf8");o=(0,Kpe.default)(h).data.model}}catch{}}let a=n?Du(r,n)?.[i]:QK(r)?.[i],c=n?$i(r,n):void 0,u=Cd(r),l=fb({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}function VI(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?GI(cr(t,i),"feedback"):GI(ce(t),"feedback"),p=r.replace(/^FB-/i,""),h="",m=1;if(npt(f)){let g=rpt(f).find(y=>y.startsWith(p)&&y.endsWith(".md"));if(g){let y=GI(f,g);h=FI(y);try{let b=(0,Kpe.default)(ipt(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:()=>Ppe(t,c,r)??"",mandateRef:f=>kr({resolveBody:()=>i?AI(n,i,f,!0):oft(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=>Nzn({slug:t,studio:n,stage:i,hat:f,feedbackId:r})?.model,bolt:()=>l().bolt,template:()=>Pzn(),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 x3(d,s,o)}var Kpe,Wpe,Ype=v(()=>{"use strict";Kpe=Re(Kt(),1);Ci();ar();pb();ze();Kn();Vpe();ts();ht();Wpe=null});function Zpe(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 spt=v(()=>{"use strict"});var cpt={};Ar(cpt,{computeStageDependents:()=>Qpe,filterInputsByPlanStages:()=>Xpe,resolveIntentStages:()=>wn,resolveStageFixHats:()=>bg,resolveStageHats:()=>Es,resolveStageMetadata:()=>the,resolveStageOptional:()=>oL,resolveStageReview:()=>ehe,resolveStudioFilePath:()=>Ff,resolveStudioFixHats:()=>jf,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>$pe});import{existsSync as Uf,readdirSync as Czn,readFileSync as Jpe}from"node:fs";import{join as Yr}from"node:path";function HT(e){if(!Uf(e))return{};let t=Jpe(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 Xpe(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 HT(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 HT(o).hats||[]}return[]}function apt(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 HT(o)}return{}}function oL(e,t){return apt(e,t).optional===!0}function Qpe(e,t,n){let r=n.indexOf(t);if(r<0)return[];let i=[];for(let s of n.slice(r+1)){let o=apt(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=HT(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 Czn(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=HT(o).fix_hats;return Array.isArray(c)?c:[]}}return[]}function $pe(e,t,n,r){let i=Es(e,t),s=ce(n),o=Yr(s,"stages",t,"units",r.endsWith(".md")?r:`${r}.md`);if(!Uf(o))return i;try{let{data:a}=re(Jpe(o,"utf8"));if((a.closes||[]).length>0&&!i.includes("feedback-assessor"))return[...i,"feedback-assessor"]}catch{}return i}function ehe(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=HT(o).review;return Array.isArray(c)?c.join(","):c||"auto"}}return"auto"}function the(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=Jpe(o,"utf8"),c=HT(o),{content:u}=(0,opt.default)(a);return{description:c.description||t,body:u.trim()}}}return null}var opt,ns=v(()=>{"use strict";opt=Re(Kt(),1);Ci();ze();Kn()});import{existsSync as upt,readFileSync as lpt}from"node:fs";import{join as rhe}from"node:path";function Mzn(){return nhe===null&&(nhe=ie("@canon:stage/execute/start_unit_hat","subagent.eta.md")),nhe}function Dzn(e){if(!Go.modelSelection)return;let{slug:t,studio:n,stage:r,hat:i,unit:s}=e,o,a=rhe(cr(t,r),"units",`${s}.md`);if(upt(a))try{let d=lpt(a,"utf8");o=(0,ihe.default)(d).data.model}catch{}let c=r?Du(n,r)?.[i]:void 0,u=r?$i(n,r):void 0,l=Cd(n);return fb({unit:o,hat:c?.model,stage:u?.data?.default_model,studio:l?.data?.default_model}).model}function Lzn(e){let{slug:t,stage:n,unit:r}=e,i=rhe(cr(t,n),"units",`${r}.md`);if(!upt(i))return[];try{let s=(0,ihe.default)(lpt(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 WI(e){let{slug:t,studio:n,unit:r,stage:i,hat:s,terminal:o}=e,a=rhe(cr(t,i),"units",`${r}.md`),c=null,u=()=>c??=Lzn({slug:t,stage:i,unit:r});return x3({slug:t,emitStage:i||void 0,dispatchId:r,ensureWorktree:()=>kpe(t,r,i)??"",mandateRef:d=>kr({resolveBody:()=>AI(n,i,d),toolName:"haiku_read_hat",toolArgs:{studio:n,stage:i,hat:d},intent:t,stage:i,kind:"mandate",name:d}),priorHandoffBlock:()=>k3(a),resolveModel:d=>Dzn({slug:t,studio:n,stage:i,hat:d,unit:r}),bolt:()=>u().length+1,template:()=>Mzn(),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 ihe,nhe,she=v(()=>{"use strict";ihe=Re(Kt(),1);Ci();ar();pb();ze();Kn();Vpe();ts();ht();nhe=null});function P3(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 fpt(e){let t=new Map;for(let i of e.nodes)t.set(i.id,0);for(let i of e.edges)t.set(i.to,(t.get(i.to)??0)+1);let n=[];for(let[i,s]of t)s===0&&n.push(i);n.sort();let r=[];for(;n.length>0;){let i=n.shift();if(!i)break;r.push(i);let s=e.adjacency.get(i)??[];for(let o of s){let a=(t.get(o)??1)-1;if(t.set(o,a),a===0){let c=n.findIndex(u=>u>o);c===-1?n.push(o):n.splice(c,0,o)}}}if(r.lengths.id).filter(s=>!r.includes(s));throw new Error(`Circular dependency detected among units: ${i.join(", ")}`)}return r}function N3(e){let t=fpt(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 O3(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 C3(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=O3(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=O3(h),g=Hu(p.slug);n.push(` ${g}["${m}"]`)}n.push(" end")}else{let l=N3(e),d=new Map(t.map(h=>[h.slug,h])),f=Array.from(l.keys()).sort((h,m)=>h-m),p=f.length>1;for(let h of f){let 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=O3(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=O3(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=dpt[l]??dpt.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 dpt,ohe=v(()=>{"use strict";dpt={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 ahe,readdirSync as ppt,readFileSync as Uzn,rmSync as Fzn}from"node:fs";import{join as M3}from"node:path";function jzn(e){if(!ahe(e))return{};let t=Uzn(e,"utf8"),{data:n}=re(t);return n}function aL(e,t){let n=Eg(e,t);return n.length===0?!0:!n.some(r=>r.status==="completed")}function hpt(e,t){if(!aL(e,t))return[];let n=M3(e,"stages",t,"feedback");if(!ahe(n))return[];let r=[];for(let i of ppt(n))if(i.endsWith(".md")&&/^\d+-/.test(i))try{Fzn(M3(n,i),{force:!0}),r.push(i)}catch{}return r}function Hzn(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=M3(e,"stages",t,"units");if(!ahe(n))return[];let i=ppt(n).filter(o=>o.endsWith(".md")).map(o=>{let a=jzn(M3(n,o)),c=Hzn(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 KI(e){let t=e.map(c=>({id:c.name,status:c.status})),n=[],r=new Map;for(let c of e)r.set(c.name,[]);for(let c of e)for(let u of c.dependsOn){if(!r.has(u))continue;n.push({from:u,to:c.name});let l=r.get(u);l&&l.push(c.name)}let i={nodes:t,edges:n,adjacency:r},s;try{s=N3(i)}catch{s=new Map([[0,e.map(c=>c.name)]])}let o=new Map,a=0;for(let[c,u]of s){for(let l of u)o.set(l,c);c+1>a&&(a=c+1)}return{waves:s,unitWave:o,totalWaves:a}}function YI(e,t,n){for(let r=0;rt.get(s.name)===r&&s.status!=="completed"))return r;return 0}function D3(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}=KI(n),u=YI(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 L3=v(()=>{"use strict";ohe();ze()});var mc={};Ar(mc,{HasPropertyKey:()=>U3,IsArray:()=>js,IsAsyncIterator:()=>che,IsBigInt:()=>cL,IsBoolean:()=>_g,IsDate:()=>qT,IsFunction:()=>uhe,IsIterator:()=>lhe,IsNull:()=>dhe,IsNumber:()=>Al,IsObject:()=>Ir,IsRegExp:()=>uL,IsString:()=>Zr,IsSymbol:()=>fhe,IsUint8Array:()=>Tg,IsUndefined:()=>Hs});function U3(e,t){return t in e}function che(e){return Ir(e)&&!js(e)&&!Tg(e)&&Symbol.asyncIterator in e}function js(e){return Array.isArray(e)}function cL(e){return typeof e=="bigint"}function _g(e){return typeof e=="boolean"}function qT(e){return e instanceof globalThis.Date}function uhe(e){return typeof e=="function"}function lhe(e){return Ir(e)&&!js(e)&&!Tg(e)&&Symbol.iterator in e}function dhe(e){return e===null}function Al(e){return typeof e=="number"}function Ir(e){return typeof e=="object"&&e!==null}function uL(e){return e instanceof globalThis.RegExp}function Zr(e){return typeof e=="string"}function fhe(e){return typeof e=="symbol"}function Tg(e){return e instanceof globalThis.Uint8Array}function Hs(e){return e===void 0}var Jc=v(()=>{});function qzn(e){return e.map(t=>F3(t))}function Bzn(e){return new Date(e.getTime())}function zzn(e){return new Uint8Array(e)}function Gzn(e){return new RegExp(e.source,e.flags)}function Vzn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=F3(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=F3(e[n]);return t}function F3(e){return js(e)?qzn(e):qT(e)?Bzn(e):Tg(e)?zzn(e):uL(e)?Gzn(e):Ir(e)?Vzn(e):e}function vi(e){return F3(e)}var qu=v(()=>{Jc()});function ZI(e,t){return t===void 0?vi(e):vi({...t,...e})}var j3=v(()=>{qu()});var phe=v(()=>{j3();qu()});function mpt(e){return e!==null&&typeof e=="object"}function gpt(e){return globalThis.Array.isArray(e)&&!globalThis.ArrayBuffer.isView(e)}function ypt(e){return e===void 0}function Spt(e){return typeof e=="number"}var bpt=v(()=>{});var Ept=v(()=>{bpt()});var H3,_pt=v(()=>{Ept();(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=mpt(o);return e.AllowArrayObject?a:a&&!gpt(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?Spt(o):Number.isFinite(o)}e.IsNumberLike=i;function s(o){let a=ypt(o);return e.AllowNullVoid?a||o===null:a}e.IsVoidLike=s})(H3||(H3={}))});function Wzn(e){return globalThis.Object.freeze(e).map(t=>lL(t))}function Kzn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=lL(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=lL(e[n]);return globalThis.Object.freeze(t)}function lL(e){return js(e)?Wzn(e):qT(e)?e:Tg(e)?e:uL(e)?e:Ir(e)?Kzn(e):e}var Tpt=v(()=>{Jc()});function fe(e,t){let n=t!==void 0?{...t,...e}:e;switch(H3.InstanceMode){case"freeze":return lL(n);case"clone":return vi(n);default:return n}}var Nt=v(()=>{_pt();Tpt();qu()});var vg=v(()=>{Nt()});var Jo,vpt=v(()=>{Jo=class extends Error{constructor(t){super(t)}}});var jh=v(()=>{vpt()});var so,Hf,wa,Ld,Pe,dL=v(()=>{so=Symbol.for("TypeBox.Transform"),Hf=Symbol.for("TypeBox.Readonly"),wa=Symbol.for("TypeBox.Optional"),Ld=Symbol.for("TypeBox.Hint"),Pe=Symbol.for("TypeBox.Kind")});var Ut=v(()=>{dL()});function JI(e){return Ir(e)&&e[Hf]==="Readonly"}function Bu(e){return Ir(e)&&e[wa]==="Optional"}function hhe(e){return zn(e,"Any")}function mhe(e){return zn(e,"Argument")}function qf(e){return zn(e,"Array")}function BT(e){return zn(e,"AsyncIterator")}function zT(e){return zn(e,"BigInt")}function Rg(e){return zn(e,"Boolean")}function Bf(e){return zn(e,"Computed")}function zf(e){return zn(e,"Constructor")}function Yzn(e){return zn(e,"Date")}function Gf(e){return zn(e,"Function")}function Vf(e){return zn(e,"Integer")}function rs(e){return zn(e,"Intersect")}function GT(e){return zn(e,"Iterator")}function zn(e,t){return Ir(e)&&Pe in e&&e[Pe]===t}function q3(e){return _g(e)||Al(e)||Zr(e)}function wl(e){return zn(e,"Literal")}function kl(e){return zn(e,"MappedKey")}function Ri(e){return zn(e,"MappedResult")}function Tb(e){return zn(e,"Never")}function Zzn(e){return zn(e,"Not")}function fL(e){return zn(e,"Null")}function Wf(e){return zn(e,"Number")}function qs(e){return zn(e,"Object")}function VT(e){return zn(e,"Promise")}function WT(e){return zn(e,"Record")}function _s(e){return zn(e,"Ref")}function ghe(e){return zn(e,"RegExp")}function Ag(e){return zn(e,"String")}function pL(e){return zn(e,"Symbol")}function Il(e){return zn(e,"TemplateLiteral")}function Jzn(e){return zn(e,"This")}function vb(e){return Ir(e)&&so in e}function xl(e){return zn(e,"Tuple")}function hL(e){return zn(e,"Undefined")}function Yn(e){return zn(e,"Union")}function Xzn(e){return zn(e,"Uint8Array")}function Qzn(e){return zn(e,"Unknown")}function $zn(e){return zn(e,"Unsafe")}function eGn(e){return zn(e,"Void")}function tGn(e){return Ir(e)&&Pe in e&&Zr(e[Pe])}function Ol(e){return hhe(e)||mhe(e)||qf(e)||Rg(e)||zT(e)||BT(e)||Bf(e)||zf(e)||Yzn(e)||Gf(e)||Vf(e)||rs(e)||GT(e)||wl(e)||kl(e)||Ri(e)||Tb(e)||Zzn(e)||fL(e)||Wf(e)||qs(e)||VT(e)||WT(e)||_s(e)||ghe(e)||Ag(e)||pL(e)||Il(e)||Jzn(e)||xl(e)||hL(e)||Yn(e)||Xzn(e)||Qzn(e)||$zn(e)||eGn(e)||tGn(e)}var Xn=v(()=>{Jc();Ut()});var X={};Ar(X,{IsAny:()=>kpt,IsArgument:()=>Ipt,IsArray:()=>xpt,IsAsyncIterator:()=>Opt,IsBigInt:()=>Ppt,IsBoolean:()=>Npt,IsComputed:()=>Cpt,IsConstructor:()=>Mpt,IsDate:()=>Dpt,IsFunction:()=>Lpt,IsImport:()=>aGn,IsInteger:()=>Upt,IsIntersect:()=>Fpt,IsIterator:()=>jpt,IsKind:()=>dht,IsKindOf:()=>kn,IsLiteral:()=>gL,IsLiteralBoolean:()=>cGn,IsLiteralNumber:()=>qpt,IsLiteralString:()=>Hpt,IsLiteralValue:()=>Bpt,IsMappedKey:()=>zpt,IsMappedResult:()=>Gpt,IsNever:()=>Vpt,IsNot:()=>Wpt,IsNull:()=>Kpt,IsNumber:()=>Ypt,IsObject:()=>Zpt,IsOptional:()=>oGn,IsPromise:()=>Jpt,IsProperties:()=>B3,IsReadonly:()=>sGn,IsRecord:()=>Xpt,IsRecursive:()=>uGn,IsRef:()=>Qpt,IsRegExp:()=>$pt,IsSchema:()=>Xo,IsString:()=>eht,IsSymbol:()=>tht,IsTemplateLiteral:()=>nht,IsThis:()=>rht,IsTransform:()=>iht,IsTuple:()=>sht,IsUint8Array:()=>aht,IsUndefined:()=>oht,IsUnion:()=>Ehe,IsUnionLiteral:()=>lGn,IsUnknown:()=>cht,IsUnsafe:()=>uht,IsVoid:()=>lht,TypeGuardUnknownTypeError:()=>yhe});function Rpt(e){try{return new RegExp(e),!0}catch{return!1}}function She(e){if(!Zr(e))return!1;for(let t=0;t=7&&n<=13||n===27||n===127)return!1}return!0}function Apt(e){return bhe(e)||Xo(e)}function mL(e){return Hs(e)||cL(e)}function Jr(e){return Hs(e)||Al(e)}function bhe(e){return Hs(e)||_g(e)}function xr(e){return Hs(e)||Zr(e)}function rGn(e){return Hs(e)||Zr(e)&&She(e)&&Rpt(e)}function iGn(e){return Hs(e)||Zr(e)&&She(e)}function wpt(e){return Hs(e)||Xo(e)}function sGn(e){return Ir(e)&&e[Hf]==="Readonly"}function oGn(e){return Ir(e)&&e[wa]==="Optional"}function kpt(e){return kn(e,"Any")&&xr(e.$id)}function Ipt(e){return kn(e,"Argument")&&Al(e.index)}function xpt(e){return kn(e,"Array")&&e.type==="array"&&xr(e.$id)&&Xo(e.items)&&Jr(e.minItems)&&Jr(e.maxItems)&&bhe(e.uniqueItems)&&wpt(e.contains)&&Jr(e.minContains)&&Jr(e.maxContains)}function Opt(e){return kn(e,"AsyncIterator")&&e.type==="AsyncIterator"&&xr(e.$id)&&Xo(e.items)}function Ppt(e){return kn(e,"BigInt")&&e.type==="bigint"&&xr(e.$id)&&mL(e.exclusiveMaximum)&&mL(e.exclusiveMinimum)&&mL(e.maximum)&&mL(e.minimum)&&mL(e.multipleOf)}function Npt(e){return kn(e,"Boolean")&&e.type==="boolean"&&xr(e.$id)}function Cpt(e){return kn(e,"Computed")&&Zr(e.target)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))}function Mpt(e){return kn(e,"Constructor")&&e.type==="Constructor"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function Dpt(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 Lpt(e){return kn(e,"Function")&&e.type==="Function"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function aGn(e){return kn(e,"Import")&&U3(e,"$defs")&&Ir(e.$defs)&&B3(e.$defs)&&U3(e,"$ref")&&Zr(e.$ref)&&e.$ref in e.$defs}function Upt(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 B3(e){return Ir(e)&&Object.entries(e).every(([t,n])=>She(t)&&Xo(n))}function Fpt(e){return kn(e,"Intersect")&&!(Zr(e.type)&&e.type!=="object")&&js(e.allOf)&&e.allOf.every(t=>Xo(t)&&!iht(t))&&xr(e.type)&&(bhe(e.unevaluatedProperties)||wpt(e.unevaluatedProperties))&&xr(e.$id)}function jpt(e){return kn(e,"Iterator")&&e.type==="Iterator"&&xr(e.$id)&&Xo(e.items)}function kn(e,t){return Ir(e)&&Pe in e&&e[Pe]===t}function Hpt(e){return gL(e)&&Zr(e.const)}function qpt(e){return gL(e)&&Al(e.const)}function cGn(e){return gL(e)&&_g(e.const)}function gL(e){return kn(e,"Literal")&&xr(e.$id)&&Bpt(e.const)}function Bpt(e){return _g(e)||Al(e)||Zr(e)}function zpt(e){return kn(e,"MappedKey")&&js(e.keys)&&e.keys.every(t=>Al(t)||Zr(t))}function Gpt(e){return kn(e,"MappedResult")&&B3(e.properties)}function Vpt(e){return kn(e,"Never")&&Ir(e.not)&&Object.getOwnPropertyNames(e.not).length===0}function Wpt(e){return kn(e,"Not")&&Xo(e.not)}function Kpt(e){return kn(e,"Null")&&e.type==="null"&&xr(e.$id)}function Ypt(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 Zpt(e){return kn(e,"Object")&&e.type==="object"&&xr(e.$id)&&B3(e.properties)&&Apt(e.additionalProperties)&&Jr(e.minProperties)&&Jr(e.maxProperties)}function Jpt(e){return kn(e,"Promise")&&e.type==="Promise"&&xr(e.$id)&&Xo(e.item)}function Xpt(e){return kn(e,"Record")&&e.type==="object"&&xr(e.$id)&&Apt(e.additionalProperties)&&Ir(e.patternProperties)&&(t=>{let n=Object.getOwnPropertyNames(t.patternProperties);return n.length===1&&Rpt(n[0])&&Ir(t.patternProperties)&&Xo(t.patternProperties[n[0]])})(e)}function uGn(e){return Ir(e)&&Ld in e&&e[Ld]==="Recursive"}function Qpt(e){return kn(e,"Ref")&&xr(e.$id)&&Zr(e.$ref)}function $pt(e){return kn(e,"RegExp")&&xr(e.$id)&&Zr(e.source)&&Zr(e.flags)&&Jr(e.maxLength)&&Jr(e.minLength)}function eht(e){return kn(e,"String")&&e.type==="string"&&xr(e.$id)&&Jr(e.minLength)&&Jr(e.maxLength)&&rGn(e.pattern)&&iGn(e.format)}function tht(e){return kn(e,"Symbol")&&e.type==="symbol"&&xr(e.$id)}function nht(e){return kn(e,"TemplateLiteral")&&e.type==="string"&&Zr(e.pattern)&&e.pattern[0]==="^"&&e.pattern[e.pattern.length-1]==="$"}function rht(e){return kn(e,"This")&&xr(e.$id)&&Zr(e.$ref)}function iht(e){return Ir(e)&&so in e}function sht(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 oht(e){return kn(e,"Undefined")&&e.type==="undefined"&&xr(e.$id)}function lGn(e){return Ehe(e)&&e.anyOf.every(t=>Hpt(t)||qpt(t))}function Ehe(e){return kn(e,"Union")&&xr(e.$id)&&Ir(e)&&js(e.anyOf)&&e.anyOf.every(t=>Xo(t))}function aht(e){return kn(e,"Uint8Array")&&e.type==="Uint8Array"&&xr(e.$id)&&Jr(e.minByteLength)&&Jr(e.maxByteLength)}function cht(e){return kn(e,"Unknown")&&xr(e.$id)}function uht(e){return kn(e,"Unsafe")}function lht(e){return kn(e,"Void")&&e.type==="void"&&xr(e.$id)}function dht(e){return Ir(e)&&Pe in e&&Zr(e[Pe])&&!nGn.includes(e[Pe])}function Xo(e){return Ir(e)&&(kpt(e)||Ipt(e)||xpt(e)||Npt(e)||Ppt(e)||Opt(e)||Cpt(e)||Mpt(e)||Dpt(e)||Lpt(e)||Upt(e)||Fpt(e)||jpt(e)||gL(e)||zpt(e)||Gpt(e)||Vpt(e)||Wpt(e)||Kpt(e)||Ypt(e)||Zpt(e)||Jpt(e)||Xpt(e)||Qpt(e)||$pt(e)||eht(e)||tht(e)||nht(e)||rht(e)||sht(e)||oht(e)||Ehe(e)||aht(e)||cht(e)||uht(e)||lht(e)||dht(e))}var yhe,nGn,fht=v(()=>{Jc();Ut();jh();yhe=class extends Jo{},nGn=["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 _he=v(()=>{Xn();fht();Jc()});var pht=v(()=>{});var hht=v(()=>{pht()});var The,yL,vhe,dGn,Z7r,Rb,Ab,mht,ght=v(()=>{The="(true|false)",yL="(0|[1-9][0-9]*)",vhe="(.*)",dGn="(?!.*)",Z7r=`^${The}$`,Rb=`^${yL}$`,Ab=`^${vhe}$`,mht=`^${dGn}$`});var SL=v(()=>{ght()});var yht=v(()=>{});var Sht=v(()=>{});var bht=v(()=>{yht();Sht()});function Eht(e,t){return e.includes(t)}function _ht(e){return[...new Set(e)]}function hGn(e,t){return e.filter(n=>t.includes(n))}function mGn(e,t){return e.reduce((n,r)=>hGn(n,r),t)}function Tht(e){return e.length===1?e[0]:e.length>1?mGn(e.slice(1),e[0]):[]}function vht(e){let t=[];for(let n of e)t.push(...n);return t}var Rht=v(()=>{});var bL=v(()=>{Rht()});function wb(e){return fe({[Pe]:"Any"},e)}var Aht=v(()=>{vg();Ut()});var EL=v(()=>{Aht()});function XI(e,t){return fe({[Pe]:"Array",type:"array",items:e},t)}var wht=v(()=>{Nt();Ut()});var _L=v(()=>{wht()});function kht(e){return fe({[Pe]:"Argument",index:e})}var Iht=v(()=>{Nt();Ut()});var Rhe=v(()=>{Iht()});function QI(e,t){return fe({[Pe]:"AsyncIterator",type:"AsyncIterator",items:e},t)}var xht=v(()=>{Ut();Nt()});var TL=v(()=>{xht()});function oi(e,t,n){return fe({[Pe]:"Computed",target:e,parameters:t},n)}var Oht=v(()=>{vg();dL()});var kb=v(()=>{Oht()});function gGn(e,t){let{[t]:n,...r}=e;return r}function is(e,t){return t.reduce((n,r)=>gGn(n,r),e)}var z3=v(()=>{});var kg=v(()=>{z3()});function Zn(e){return fe({[Pe]:"Never",not:{}},e)}var Pht=v(()=>{Nt();Ut()});var ka=v(()=>{Pht()});var Nht=v(()=>{});function Qn(e){return fe({[Pe]:"MappedResult",properties:e})}var Ahe=v(()=>{Nt();Ut()});function $I(e,t,n){return fe({[Pe]:"Constructor",type:"Constructor",parameters:e,returns:t},n)}var Cht=v(()=>{Nt();Ut()});var vL=v(()=>{Cht()});function Hh(e,t,n){return fe({[Pe]:"Function",type:"Function",parameters:e,returns:t},n)}var Mht=v(()=>{Nt();Ut()});var KT=v(()=>{Mht()});function RL(e,t){return fe({[Pe]:"Union",anyOf:e},t)}var whe=v(()=>{Nt();Ut()});function yGn(e){return e.some(t=>Bu(t))}function Dht(e){return e.map(t=>Bu(t)?SGn(t):t)}function SGn(e){return is(e,[wa])}function bGn(e,t){return yGn(e)?gc(RL(Dht(e),t)):RL(Dht(e),t)}function qh(e,t){return e.length===1?fe(e[0],t):e.length===0?Zn(t):bGn(e,t)}var Lht=v(()=>{Nt();Ut();kg();ka();Ig();whe();Xn()});var Uht=v(()=>{});function Sr(e,t){return e.length===0?Zn(t):e.length===1?fe(e[0],t):RL(e,t)}var Fht=v(()=>{ka();Nt();whe()});var oo=v(()=>{Lht();Uht();Fht()});function EGn(e){return e.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function khe(e,t,n){return e[t]===n&&e.charCodeAt(t-1)!==92}function xg(e,t){return khe(e,t,"(")}function AL(e,t){return khe(e,t,")")}function jht(e,t){return khe(e,t,"|")}function _Gn(e){if(!(xg(e,0)&&AL(e,e.length-1)))return!1;let t=0;for(let n=0;n0&&r.push(e0(o)),n=s+1}let i=e.slice(n);return i.length>0&&r.push(e0(i)),r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"or",expr:r}}function wGn(e){function t(i,s){if(!xg(i,s))throw new G3("TemplateLiteralParser: Index must point to open parens");let o=0;for(let a=s;a0&&r.push(e0(a)),i=o-1}return r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"and",expr:r}}function e0(e){return _Gn(e)?e0(TGn(e)):vGn(e)?AGn(e):RGn(e)?wGn(e):{type:"const",const:EGn(e)}}function t0(e){return e0(e.slice(1,e.length-1))}var G3,V3=v(()=>{jh();G3=class extends Jo{}});function kGn(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 IGn(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 xGn(e){return e.type==="const"&&e.const===".*"}function YT(e){return kGn(e)||xGn(e)?!1:IGn(e)?!0:e.type==="and"?e.expr.every(t=>YT(t)):e.type==="or"?e.expr.every(t=>YT(t)):e.type==="const"?!0:(()=>{throw new Ihe("Unknown expression type")})()}function Hht(e){let t=t0(e.pattern);return YT(t)}var Ihe,xhe=v(()=>{V3();jh();Ihe=class extends Jo{}});function*qht(e){if(e.length===1)return yield*e[0];for(let t of e[0])for(let n of qht(e.slice(1)))yield`${t}${n}`}function*OGn(e){return yield*qht(e.expr.map(t=>[...wL(t)]))}function*PGn(e){for(let t of e.expr)yield*wL(t)}function*NGn(e){return yield e.const}function*wL(e){return e.type==="and"?yield*OGn(e):e.type==="or"?yield*PGn(e):e.type==="const"?yield*NGn(e):(()=>{throw new Ohe("Unknown expression")})()}function W3(e){let t=t0(e.pattern);return YT(t)?[...wL(t)]:[]}var Ohe,Phe=v(()=>{xhe();V3();jh();Ohe=class extends Jo{}});function ur(e,t){return fe({[Pe]:"Literal",const:e,type:typeof e},t)}var Bht=v(()=>{Nt();Ut()});var zu=v(()=>{Bht()});function K3(e){return fe({[Pe]:"Boolean",type:"boolean"},e)}var zht=v(()=>{Ut();vg()});var Y3=v(()=>{zht()});function n0(e){return fe({[Pe]:"BigInt",type:"bigint"},e)}var Ght=v(()=>{Ut();vg()});var kL=v(()=>{Ght()});function Ud(e){return fe({[Pe]:"Number",type:"number"},e)}var Vht=v(()=>{Nt();Ut()});var ZT=v(()=>{Vht()});function Kf(e){return fe({[Pe]:"String",type:"string"},e)}var Wht=v(()=>{Nt();Ut()});var r0=v(()=>{Wht()});function*CGn(e){let t=e.trim().replace(/"|'/g,"");return t==="boolean"?yield K3():t==="number"?yield Ud():t==="bigint"?yield n0():t==="string"?yield Kf():yield(()=>{let n=t.split("|").map(r=>ur(r.trim()));return n.length===0?Zn():n.length===1?n[0]:qh(n)})()}function*MGn(e){if(e[1]!=="{"){let t=ur("$"),n=Nhe(e.slice(1));return yield*[t,...n]}for(let t=2;t{zu();Y3();kL();ZT();r0();oo();ka()});function DGn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Yht(e,t){return Il(e)?e.pattern.slice(1,e.pattern.length-1):Yn(e)?`(${e.anyOf.map(n=>Yht(n,t)).join("|")})`:Wf(e)?`${t}${yL}`:Vf(e)?`${t}${yL}`:zT(e)?`${t}${yL}`:Ag(e)?`${t}${vhe}`:wl(e)?`${t}${DGn(e.const.toString())}`:Rg(e)?`${t}${The}`:(()=>{throw new Mhe(`Unexpected Kind '${e[Pe]}'`)})()}function Dhe(e){return`^${e.map(t=>Yht(t,"")).join("")}$`}var Mhe,Lhe=v(()=>{SL();Ut();jh();Xn();Mhe=class extends Jo{}});function JT(e){let n=W3(e).map(r=>ur(r));return qh(n)}var Zht=v(()=>{oo();zu();Phe()});function Z3(e,t){let n=Zr(e)?Dhe(Kht(e)):Dhe(e);return fe({[Pe]:"TemplateLiteral",type:"string",pattern:n},t)}var Jht=v(()=>{Nt();Che();Lhe();Jc();Ut()});var Og=v(()=>{xhe();Phe();Che();V3();Lhe();Zht();Jht()});function LGn(e){return W3(e).map(n=>n.toString())}function UGn(e){let t=[];for(let n of e)t.push(...Gu(n));return t}function FGn(e){return[e.toString()]}function Gu(e){return[...new Set(Il(e)?LGn(e):Yn(e)?UGn(e.anyOf):wl(e)?FGn(e.const):Wf(e)?["[number]"]:Vf(e)?["[number]"]:[])]}var J3=v(()=>{Og();Xn()});function jGn(e,t,n){let r={};for(let i of Object.getOwnPropertyNames(t))r[i]=Ib(e,Gu(t[i]),n);return r}function HGn(e,t,n){return jGn(e,t.properties,n)}function Xht(e,t,n){let r=HGn(e,t,n);return Qn(r)}var Uhe=v(()=>{Ro();J3();Bh()});function $ht(e,t){return e.map(n=>emt(n,t))}function qGn(e){return e.filter(t=>!Tb(t))}function BGn(e,t){return X3(qGn($ht(e,t)))}function zGn(e){return e.some(t=>Tb(t))?[]:e}function GGn(e,t){return qh(zGn($ht(e,t)))}function VGn(e,t){return t in e?e[t]:t==="[number]"?qh(e):Zn()}function WGn(e,t){return t==="[number]"?e:Zn()}function KGn(e,t){return t in e?e[t]:Zn()}function emt(e,t){return rs(e)?BGn(e.allOf,t):Yn(e)?GGn(e.anyOf,t):xl(e)?VGn(e.items??[],t):qf(e)?WGn(e.items,t):qs(e)?KGn(e.properties,t):Zn()}function Fhe(e,t){return t.map(n=>emt(e,n))}function Qht(e,t){return qh(Fhe(e,t))}function Ib(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)?Xht(e,t,n):kl(t)?tmt(e,t,n):fe(Ol(t)?Qht(e,Gu(t)):Qht(e,t),n)}var jhe=v(()=>{Nt();jh();kb();ka();Fd();oo();J3();Hhe();Uhe();Xn()});function YGn(e,t,n){return{[t]:Ib(e,[t],vi(n))}}function ZGn(e,t,n){return t.reduce((r,i)=>({...r,...YGn(e,i,n)}),{})}function JGn(e,t,n){return ZGn(e,t.keys,n)}function tmt(e,t,n){let r=JGn(e,t,n);return Qn(r)}var Hhe=v(()=>{jhe();Ro();qu()});var Bh=v(()=>{Hhe();Uhe();J3();jhe()});function i0(e,t){return fe({[Pe]:"Iterator",type:"Iterator",items:e},t)}var nmt=v(()=>{Nt();Ut()});var IL=v(()=>{nmt()});function XGn(e){return globalThis.Object.keys(e).filter(t=>!Bu(e[t]))}function QGn(e,t){let n=XGn(e),r=n.length>0?{[Pe]:"Object",type:"object",required:n,properties:e}:{[Pe]:"Object",type:"object",properties:e};return fe(r,t)}var Or,rmt=v(()=>{Nt();Ut();Xn();Or=QGn});var Pl=v(()=>{rmt()});function Q3(e,t){return fe({[Pe]:"Promise",type:"Promise",item:e},t)}var imt=v(()=>{Nt();Ut()});var $3=v(()=>{imt()});function $Gn(e){return fe(is(e,[Hf]))}function e2n(e){return fe({...e,[Hf]:"Readonly"})}function t2n(e,t){return t===!1?$Gn(e):e2n(e)}function Vu(e,t){let n=t??!0;return Ri(e)?smt(e,n):t2n(e,n)}var qhe=v(()=>{Nt();Ut();kg();Bhe();Xn()});function n2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=Vu(e[r],t);return n}function r2n(e,t){return n2n(e.properties,t)}function smt(e,t){let n=r2n(e,t);return Qn(n)}var Bhe=v(()=>{Ro();qhe()});var XT=v(()=>{Bhe();qhe()});function jd(e,t){return fe(e.length>0?{[Pe]:"Tuple",type:"array",items:e,additionalItems:!1,minItems:e.length,maxItems:e.length}:{[Pe]:"Tuple",type:"array",minItems:e.length,maxItems:e.length},t)}var omt=v(()=>{Nt();Ut()});var xb=v(()=>{omt()});function amt(e,t){return e in t?Hd(e,t[e]):Qn(t)}function i2n(e){return{[e]:ur(e)}}function s2n(e){let t={};for(let n of e)t[n]=ur(n);return t}function o2n(e,t){return Eht(t,e)?i2n(e):s2n(t)}function a2n(e,t){let n=o2n(e,t);return amt(e,n)}function xL(e,t){return t.map(n=>Hd(e,n))}function c2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(t))n[r]=Hd(e,t[r]);return n}function Hd(e,t){let n={...t};return Bu(t)?gc(Hd(e,is(t,[wa]))):JI(t)?Vu(Hd(e,is(t,[Hf]))):Ri(t)?amt(e,t.properties):kl(t)?a2n(e,t.keys):zf(t)?$I(xL(e,t.parameters),Hd(e,t.returns),n):Gf(t)?Hh(xL(e,t.parameters),Hd(e,t.returns),n):BT(t)?QI(Hd(e,t.items),n):GT(t)?i0(Hd(e,t.items),n):rs(t)?yc(xL(e,t.allOf),n):Yn(t)?Sr(xL(e,t.anyOf),n):xl(t)?jd(xL(e,t.items??[]),n):qs(t)?Or(c2n(e,t.properties),n):qf(t)?XI(Hd(e,t.items),n):VT(t)?Q3(Hd(e,t.item),n):t}function u2n(e,t){let n={};for(let r of e)n[r]=Hd(r,t);return n}function cmt(e,t,n){let r=Ol(e)?Gu(e):e,i=t({[Pe]:"MappedKey",keys:r}),s=u2n(r,i);return Or(s,n)}var umt=v(()=>{Ut();kg();_L();TL();vL();KT();Bh();Fd();IL();zu();Pl();Ig();$3();XT();xb();oo();bL();Ahe();Xn()});var Ro=v(()=>{Nht();Ahe();umt()});function l2n(e){return fe(is(e,[wa]))}function d2n(e){return fe({...e,[wa]:"Optional"})}function f2n(e,t){return t===!1?l2n(e):d2n(e)}function gc(e,t){let n=t??!0;return Ri(e)?lmt(e,n):f2n(e,n)}var zhe=v(()=>{Nt();Ut();kg();Ghe();Xn()});function p2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=gc(e[r],t);return n}function h2n(e,t){return p2n(e.properties,t)}function lmt(e,t){let n=h2n(e,t);return Qn(n)}var Ghe=v(()=>{Ro();zhe()});var Ig=v(()=>{Ghe();zhe()});function OL(e,t={}){let n=e.every(i=>qs(i)),r=Ol(t.unevaluatedProperties)?{unevaluatedProperties:t.unevaluatedProperties}:{};return fe(t.unevaluatedProperties===!1||Ol(t.unevaluatedProperties)||n?{...r,[Pe]:"Intersect",type:"object",allOf:e}:{...r,[Pe]:"Intersect",allOf:e},t)}var Vhe=v(()=>{Nt();Ut();Xn()});function m2n(e){return e.every(t=>Bu(t))}function g2n(e){return is(e,[wa])}function dmt(e){return e.map(t=>Bu(t)?g2n(t):t)}function y2n(e,t){return m2n(e)?gc(OL(dmt(e),t)):OL(dmt(e),t)}function X3(e,t={}){if(e.length===1)return fe(e[0],t);if(e.length===0)return Zn(t);if(e.some(n=>vb(n)))throw new Error("Cannot intersect transform types");return y2n(e,t)}var fmt=v(()=>{Ut();Nt();kg();ka();Ig();Vhe();Xn()});var pmt=v(()=>{});function yc(e,t){if(e.length===1)return fe(e[0],t);if(e.length===0)return Zn(t);if(e.some(n=>vb(n)))throw new Error("Cannot intersect transform types");return OL(e,t)}var hmt=v(()=>{Nt();ka();Vhe();Xn()});var Fd=v(()=>{fmt();pmt();hmt()});function zh(...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 fe({[Pe]:"Ref",$ref:t},n)}var mmt=v(()=>{jh();Nt();Ut()});var QT=v(()=>{mmt()});function S2n(e,t){return oi("Awaited",[oi(e,t)])}function b2n(e){return oi("Awaited",[zh(e)])}function E2n(e){return yc(gmt(e))}function _2n(e){return Sr(gmt(e))}function T2n(e){return s0(e)}function gmt(e){return e.map(t=>s0(t))}function s0(e,t){return fe(Bf(e)?S2n(e.target,e.parameters):rs(e)?E2n(e.allOf):Yn(e)?_2n(e.anyOf):VT(e)?T2n(e.item):_s(e)?b2n(e.$ref):e,t)}var ymt=v(()=>{Nt();kb();Fd();oo();QT();Xn()});var e9=v(()=>{ymt()});function Smt(e){let t=[];for(let n of e)t.push(PL(n));return t}function v2n(e){let t=Smt(e);return vht(t)}function R2n(e){let t=Smt(e);return Tht(t)}function A2n(e){return e.map((t,n)=>n.toString())}function w2n(e){return["[number]"]}function k2n(e){return globalThis.Object.getOwnPropertyNames(e)}function I2n(e){return x2n?globalThis.Object.getOwnPropertyNames(e).map(n=>n[0]==="^"&&n[n.length-1]==="$"?n.slice(1,n.length-1):n):[]}function PL(e){return rs(e)?v2n(e.allOf):Yn(e)?R2n(e.anyOf):xl(e)?A2n(e.items??[]):qf(e)?w2n(e.items):qs(e)?k2n(e.properties):WT(e)?I2n(e.patternProperties):[]}var x2n,Whe=v(()=>{bL();Xn();x2n=!1});function O2n(e,t){return oi("KeyOf",[oi(e,t)])}function P2n(e){return oi("KeyOf",[zh(e)])}function N2n(e,t){let n=PL(e),r=C2n(n),i=qh(r);return fe(i,t)}function C2n(e){return e.map(t=>t==="[number]"?Ud():ur(t))}function o0(e,t){return Bf(e)?O2n(e.target,e.parameters):_s(e)?P2n(e.$ref):Ri(e)?bmt(e,t):N2n(e,t)}var Khe=v(()=>{Nt();zu();ZT();kb();QT();Whe();oo();Yhe();Xn()});function M2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=o0(e[r],vi(t));return n}function D2n(e,t){return M2n(e.properties,t)}function bmt(e,t){let n=D2n(e,t);return Qn(n)}var Yhe=v(()=>{Ro();Khe();qu()});var Emt=v(()=>{});var NL=v(()=>{Yhe();Emt();Whe();Khe()});function L2n(e){let t=[];for(let n of e)t.push(...PL(n));return _ht(t)}function U2n(e){return e.filter(t=>!Tb(t))}function F2n(e,t){let n=[];for(let r of e)n.push(...Fhe(r,[t]));return U2n(n)}function j2n(e,t){let n={};for(let r of t)n[r]=X3(F2n(e,r));return n}function _mt(e,t){let n=L2n(e),r=j2n(e,n);return Or(r,t)}var Tmt=v(()=>{Fd();Bh();NL();Pl();bL();Xn()});var Zhe=v(()=>{Tmt()});function t9(e){return fe({[Pe]:"Date",type:"Date"},e)}var vmt=v(()=>{Ut();Nt()});var n9=v(()=>{vmt()});function r9(e){return fe({[Pe]:"Null",type:"null"},e)}var Rmt=v(()=>{Nt();Ut()});var i9=v(()=>{Rmt()});function s9(e){return fe({[Pe]:"Symbol",type:"symbol"},e)}var Amt=v(()=>{Nt();Ut()});var o9=v(()=>{Amt()});function a9(e){return fe({[Pe]:"Undefined",type:"undefined"},e)}var wmt=v(()=>{Nt();Ut()});var c9=v(()=>{wmt()});function u9(e){return fe({[Pe]:"Uint8Array",type:"Uint8Array"},e)}var kmt=v(()=>{Nt();Ut()});var l9=v(()=>{kmt()});function Ob(e){return fe({[Pe]:"Unknown"},e)}var Imt=v(()=>{Nt();Ut()});var a0=v(()=>{Imt()});function H2n(e){return e.map(t=>Jhe(t,!1))}function q2n(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=Vu(Jhe(e[n],!1));return t}function d9(e,t){return t===!0?e:Vu(e)}function Jhe(e,t){return che(e)?d9(wb(),t):lhe(e)?d9(wb(),t):js(e)?Vu(jd(H2n(e))):Tg(e)?u9():qT(e)?t9():Ir(e)?d9(Or(q2n(e)),t):uhe(e)?d9(Hh([],Ob()),t):Hs(e)?a9():dhe(e)?r9():fhe(e)?s9():cL(e)?n0():Al(e)?ur(e):_g(e)?ur(e):Zr(e)?ur(e):Or({})}function xmt(e,t){return fe(Jhe(e,!0),t)}var Omt=v(()=>{EL();kL();n9();KT();zu();i9();Pl();o9();xb();XT();c9();l9();a0();vg();Jc()});var Xhe=v(()=>{Omt()});function Pmt(e,t){return zf(e)?jd(e.parameters,t):Zn(t)}var Nmt=v(()=>{xb();ka();Xn()});var Qhe=v(()=>{Nmt()});function Cmt(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=>ur(s));return Sr(i,{...t,[Ld]:"Enum"})}var Mmt=v(()=>{zu();Ut();oo();Jc()});var $he=v(()=>{Mmt()});function qd(e){return e===pe.False?e:pe.True}function c0(e){throw new tme(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)?qmt(e,t):X.IsIntersect(t)?f9(e,t):X.IsUnion(t)?sme(e,t):X.IsUnknown(t)?Vmt(e,t):X.IsAny(t)?ime(e,t):c0("StructuralRight")}function ime(e,t){return pe.True}function B2n(e,t){return X.IsIntersect(t)?f9(e,t):X.IsUnion(t)&&t.anyOf.some(n=>X.IsAny(n)||X.IsUnknown(n))?pe.True:X.IsUnion(t)?pe.Union:X.IsUnknown(t)||X.IsAny(t)?pe.True:pe.Union}function z2n(e,t){return X.IsUnknown(e)?pe.False:X.IsAny(e)?pe.Union:X.IsNever(e)?pe.True:pe.False}function G2n(e,t){return X.IsObject(t)&&p9(t)?pe.True:ao(t)?co(e,t):X.IsArray(t)?qd(Pr(e.items,t.items)):pe.False}function V2n(e,t){return ao(t)?co(e,t):X.IsAsyncIterator(t)?qd(Pr(e.items,t.items)):pe.False}function W2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsBigInt(t)?pe.True:pe.False}function jmt(e,t){return X.IsLiteralBoolean(e)||X.IsBoolean(e)?pe.True:pe.False}function K2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsBoolean(t)?pe.True:pe.False}function Y2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsConstructor(t)?e.parameters.length>t.parameters.length?pe.False:e.parameters.every((n,r)=>qd(Pr(t.parameters[r],n))===pe.True)?qd(Pr(e.returns,t.returns)):pe.False:pe.False}function Z2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsDate(t)?pe.True:pe.False}function J2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsFunction(t)?e.parameters.length>t.parameters.length?pe.False:e.parameters.every((n,r)=>qd(Pr(t.parameters[r],n))===pe.True)?qd(Pr(e.returns,t.returns)):pe.False:pe.False}function Hmt(e,t){return X.IsLiteral(e)&&mc.IsNumber(e.const)||X.IsNumber(e)||X.IsInteger(e)?pe.True:pe.False}function X2n(e,t){return X.IsInteger(t)||X.IsNumber(t)?pe.True:ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):pe.False}function f9(e,t){return t.allOf.every(n=>Pr(e,n)===pe.True)?pe.True:pe.False}function Q2n(e,t){return e.allOf.some(n=>Pr(n,t)===pe.True)?pe.True:pe.False}function $2n(e,t){return ao(t)?co(e,t):X.IsIterator(t)?qd(Pr(e.items,t.items)):pe.False}function eVn(e,t){return X.IsLiteral(t)&&t.const===e.const?pe.True:ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsString(t)?Gmt(e,t):X.IsNumber(t)?Bmt(e,t):X.IsInteger(t)?Hmt(e,t):X.IsBoolean(t)?jmt(e,t):pe.False}function qmt(e,t){return pe.False}function tVn(e,t){return pe.True}function Dmt(e){let[t,n]=[e,0];for(;X.IsNot(t);)t=t.not,n+=1;return n%2===0?t:Ob()}function nVn(e,t){return X.IsNot(e)?Pr(Dmt(e),t):X.IsNot(t)?Pr(e,Dmt(t)):c0("Invalid fallthrough for Not")}function rVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsNull(t)?pe.True:pe.False}function Bmt(e,t){return X.IsLiteralNumber(e)||X.IsNumber(e)||X.IsInteger(e)?pe.True:pe.False}function iVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsInteger(t)||X.IsNumber(t)?pe.True:pe.False}function Wu(e,t){return Object.getOwnPropertyNames(e.properties).length===t}function Lmt(e){return p9(e)}function Umt(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 eme(e){return Wu(e,0)}function Fmt(e){return Wu(e,0)}function sVn(e){return Wu(e,0)}function oVn(e){return Wu(e,0)}function aVn(e){return p9(e)}function cVn(e){let t=Ud();return Wu(e,0)||Wu(e,1)&&"length"in e.properties&&qd(Pr(e.properties.length,t))===pe.True}function uVn(e){return Wu(e,0)}function p9(e){let t=Ud();return Wu(e,0)||Wu(e,1)&&"length"in e.properties&&qd(Pr(e.properties.length,t))===pe.True}function lVn(e){let t=Hh([wb()],wb());return Wu(e,0)||Wu(e,1)&&"then"in e.properties&&qd(Pr(e.properties.then,t))===pe.True}function zmt(e,t){return Pr(e,t)===pe.False||X.IsOptional(e)&&!X.IsOptional(t)?pe.False:pe.True}function Sc(e,t){return X.IsUnknown(e)?pe.False:X.IsAny(e)?pe.Union:X.IsNever(e)||X.IsLiteralString(e)&&Lmt(t)||X.IsLiteralNumber(e)&&eme(t)||X.IsLiteralBoolean(e)&&Fmt(t)||X.IsSymbol(e)&&Umt(t)||X.IsBigInt(e)&&sVn(t)||X.IsString(e)&&Lmt(t)||X.IsSymbol(e)&&Umt(t)||X.IsNumber(e)&&eme(t)||X.IsInteger(e)&&eme(t)||X.IsBoolean(e)&&Fmt(t)||X.IsUint8Array(e)&&aVn(t)||X.IsDate(e)&&oVn(t)||X.IsConstructor(e)&&uVn(t)||X.IsFunction(e)&&cVn(t)?pe.True:X.IsRecord(e)&&X.IsString(nme(e))?t[Ld]==="Record"?pe.True:pe.False:X.IsRecord(e)&&X.IsNumber(nme(e))&&Wu(t,0)?pe.True:pe.False}function dVn(e,t){return ao(t)?co(e,t):X.IsRecord(t)?Bd(e,t):X.IsObject(t)?(()=>{for(let n of Object.getOwnPropertyNames(t.properties)){if(!(n in e.properties)&&!X.IsOptional(t.properties[n]))return pe.False;if(X.IsOptional(t.properties[n]))return pe.True;if(zmt(e.properties[n],t.properties[n])===pe.False)return pe.False}return pe.True})():pe.False}function fVn(e,t){return ao(t)?co(e,t):X.IsObject(t)&&lVn(t)?pe.True:X.IsPromise(t)?qd(Pr(e.item,t.item)):pe.False}function nme(e){return Rb in e.patternProperties?Ud():Ab in e.patternProperties?Kf():c0("Unknown record key pattern")}function rme(e){return Rb in e.patternProperties?e.patternProperties[Rb]:Ab in e.patternProperties?e.patternProperties[Ab]:c0("Unable to get record value schema")}function Bd(e,t){let[n,r]=[nme(t),rme(t)];return X.IsLiteralString(e)&&X.IsNumber(n)&&qd(Pr(e,r))===pe.True?pe.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(zmt(r,e.properties[i])===pe.False)return pe.False;return pe.True})():pe.False}function pVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Pr(rme(e),rme(t)):pe.False}function hVn(e,t){let n=X.IsRegExp(e)?Kf():e,r=X.IsRegExp(t)?Kf():t;return Pr(n,r)}function Gmt(e,t){return X.IsLiteral(e)&&mc.IsString(e.const)||X.IsString(e)?pe.True:pe.False}function mVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsString(t)?pe.True:pe.False}function gVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsSymbol(t)?pe.True:pe.False}function yVn(e,t){return X.IsTemplateLiteral(e)?Pr(JT(e),t):X.IsTemplateLiteral(t)?Pr(e,JT(t)):c0("Invalid fallthrough for TemplateLiteral")}function SVn(e,t){return X.IsArray(t)&&e.items!==void 0&&e.items.every(n=>Pr(n,t.items)===pe.True)}function bVn(e,t){return X.IsNever(e)?pe.True:X.IsUnknown(e)?pe.False:X.IsAny(e)?pe.Union:pe.False}function EVn(e,t){return ao(t)?co(e,t):X.IsObject(t)&&p9(t)||X.IsArray(t)&&SVn(e,t)?pe.True:X.IsTuple(t)?mc.IsUndefined(e.items)&&!mc.IsUndefined(t.items)||!mc.IsUndefined(e.items)&&mc.IsUndefined(t.items)?pe.False:mc.IsUndefined(e.items)&&!mc.IsUndefined(t.items)||e.items.every((n,r)=>Pr(n,t.items[r])===pe.True)?pe.True:pe.False:pe.False}function _Vn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsUint8Array(t)?pe.True:pe.False}function TVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsVoid(t)?AVn(e,t):X.IsUndefined(t)?pe.True:pe.False}function sme(e,t){return t.anyOf.some(n=>Pr(e,n)===pe.True)?pe.True:pe.False}function vVn(e,t){return e.anyOf.every(n=>Pr(n,t)===pe.True)?pe.True:pe.False}function Vmt(e,t){return pe.True}function RVn(e,t){return X.IsNever(t)?qmt(e,t):X.IsIntersect(t)?f9(e,t):X.IsUnion(t)?sme(e,t):X.IsAny(t)?ime(e,t):X.IsString(t)?Gmt(e,t):X.IsNumber(t)?Bmt(e,t):X.IsInteger(t)?Hmt(e,t):X.IsBoolean(t)?jmt(e,t):X.IsArray(t)?z2n(e,t):X.IsTuple(t)?bVn(e,t):X.IsObject(t)?Sc(e,t):X.IsUnknown(t)?pe.True:pe.False}function AVn(e,t){return X.IsUndefined(e)||X.IsUndefined(e)?pe.True:pe.False}function wVn(e,t){return X.IsIntersect(t)?f9(e,t):X.IsUnion(t)?sme(e,t):X.IsUnknown(t)?Vmt(e,t):X.IsAny(t)?ime(e,t):X.IsObject(t)?Sc(e,t):X.IsVoid(t)?pe.True:pe.False}function Pr(e,t){return X.IsTemplateLiteral(e)||X.IsTemplateLiteral(t)?yVn(e,t):X.IsRegExp(e)||X.IsRegExp(t)?hVn(e,t):X.IsNot(e)||X.IsNot(t)?nVn(e,t):X.IsAny(e)?B2n(e,t):X.IsArray(e)?G2n(e,t):X.IsBigInt(e)?W2n(e,t):X.IsBoolean(e)?K2n(e,t):X.IsAsyncIterator(e)?V2n(e,t):X.IsConstructor(e)?Y2n(e,t):X.IsDate(e)?Z2n(e,t):X.IsFunction(e)?J2n(e,t):X.IsInteger(e)?X2n(e,t):X.IsIntersect(e)?Q2n(e,t):X.IsIterator(e)?$2n(e,t):X.IsLiteral(e)?eVn(e,t):X.IsNever(e)?tVn(e,t):X.IsNull(e)?rVn(e,t):X.IsNumber(e)?iVn(e,t):X.IsObject(e)?dVn(e,t):X.IsRecord(e)?pVn(e,t):X.IsString(e)?mVn(e,t):X.IsSymbol(e)?gVn(e,t):X.IsTuple(e)?EVn(e,t):X.IsPromise(e)?fVn(e,t):X.IsUint8Array(e)?_Vn(e,t):X.IsUndefined(e)?TVn(e,t):X.IsUnion(e)?vVn(e,t):X.IsUnknown(e)?RVn(e,t):X.IsVoid(e)?wVn(e,t):c0(`Unknown left type operand '${e[Pe]}'`)}function Pb(e,t){return Pr(e,t)}var tme,pe,ome=v(()=>{EL();KT();ZT();r0();a0();Og();SL();Ut();jh();_he();tme=class extends Jo{};(function(e){e[e.Union=0]="Union",e[e.True=1]="True",e[e.False=2]="False"})(pe||(pe={}))});function kVn(e,t,n,r,i){let s={};for(let o of globalThis.Object.getOwnPropertyNames(e))s[o]=u0(e[o],t,n,r,vi(i));return s}function IVn(e,t,n,r,i){return kVn(e.properties,t,n,r,i)}function Wmt(e,t,n,r,i){let s=IVn(e,t,n,r,i);return Qn(s)}var ame=v(()=>{Ro();h9();qu()});function xVn(e,t,n,r){let i=Pb(e,t);return i===pe.Union?Sr([n,r]):i===pe.True?n:r}function u0(e,t,n,r,i){return Ri(e)?Wmt(e,t,n,r,i):kl(e)?fe(Kmt(e,t,n,r,i)):fe(xVn(e,t,n,r),i)}var h9=v(()=>{Nt();oo();ome();cme();ame();Xn()});function OVn(e,t,n,r,i){return{[e]:u0(ur(e),t,n,r,vi(i))}}function PVn(e,t,n,r,i){return e.reduce((s,o)=>({...s,...OVn(o,t,n,r,i)}),{})}function NVn(e,t,n,r,i){return PVn(e.keys,t,n,r,i)}function Kmt(e,t,n,r,i){let s=NVn(e,t,n,r,i);return Qn(s)}var cme=v(()=>{Ro();zu();h9();qu()});var Ymt=v(()=>{});var CL=v(()=>{ome();cme();ame();Ymt();h9()});function Zmt(e,t){return l0(JT(e),t)}var ume=v(()=>{m9();Og()});function CVn(e,t){let n=e.filter(r=>Pb(r,t)===pe.False);return n.length===1?n[0]:Sr(n)}function l0(e,t,n={}){return Il(e)?fe(Zmt(e,t),n):Ri(e)?fe(Jmt(e,t),n):fe(Yn(e)?CVn(e.anyOf,t):Pb(e,t)!==pe.False?Zn():e,n)}var m9=v(()=>{Nt();oo();ka();CL();lme();ume();Xn()});function MVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=l0(e[r],t);return n}function DVn(e,t){return MVn(e.properties,t)}function Jmt(e,t){let n=DVn(e,t);return Qn(n)}var lme=v(()=>{Ro();m9()});var dme=v(()=>{lme();ume();m9()});function Xmt(e,t){return d0(JT(e),t)}var fme=v(()=>{g9();Og()});function LVn(e,t){let n=e.filter(r=>Pb(r,t)!==pe.False);return n.length===1?n[0]:Sr(n)}function d0(e,t,n){return Il(e)?fe(Xmt(e,t),n):Ri(e)?fe(Qmt(e,t),n):fe(Yn(e)?LVn(e.anyOf,t):Pb(e,t)!==pe.False?e:Zn(),n)}var g9=v(()=>{Nt();oo();ka();CL();pme();fme();Xn()});function UVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=d0(e[r],t);return n}function FVn(e,t){return UVn(e.properties,t)}function Qmt(e,t){let n=FVn(e,t);return Qn(n)}var pme=v(()=>{Ro();g9()});var hme=v(()=>{pme();fme();g9()});function $mt(e,t){return zf(e)?fe(e.returns,t):Zn(t)}var egt=v(()=>{Nt();ka();Xn()});var mme=v(()=>{egt()});function y9(e){return Vu(gc(e))}var tgt=v(()=>{XT();Ig()});var S9=v(()=>{tgt()});function $T(e,t,n){return fe({[Pe]:"Record",type:"object",patternProperties:{[e]:t}},n)}function gme(e,t,n){let r={};for(let i of e)r[i]=t;return Or(r,{...n,[Ld]:"Record"})}function jVn(e,t,n){return Hht(e)?gme(Gu(e),t,n):$T(e.pattern,t,n)}function HVn(e,t,n){return gme(Gu(Sr(e)),t,n)}function qVn(e,t,n){return gme([e.toString()],t,n)}function BVn(e,t,n){return $T(e.source,t,n)}function zVn(e,t,n){let r=Hs(e.pattern)?Ab:e.pattern;return $T(r,t,n)}function GVn(e,t,n){return $T(Ab,t,n)}function VVn(e,t,n){return $T(mht,t,n)}function WVn(e,t,n){return Or({true:t,false:t},n)}function KVn(e,t,n){return $T(Rb,t,n)}function YVn(e,t,n){return $T(Rb,t,n)}function b9(e,t,n={}){return Yn(e)?HVn(e.anyOf,t,n):Il(e)?jVn(e,t,n):wl(e)?qVn(e.const,t,n):Rg(e)?WVn(e,t,n):Vf(e)?KVn(e,t,n):Wf(e)?YVn(e,t,n):ghe(e)?BVn(e,t,n):Ag(e)?zVn(e,t,n):hhe(e)?GVn(e,t,n):Tb(e)?VVn(e,t,n):Zn(n)}function E9(e){return globalThis.Object.getOwnPropertyNames(e.patternProperties)[0]}function ngt(e){let t=E9(e);return t===Ab?Kf():t===Rb?Ud():Kf({pattern:t})}function _9(e){return e.patternProperties[E9(e)]}var rgt=v(()=>{Nt();Ut();ka();ZT();Pl();r0();oo();Og();SL();Bh();Jc();Xn()});var ML=v(()=>{rgt()});function ZVn(e,t){return t.parameters=DL(e,t.parameters),t.returns=Yf(e,t.returns),t}function JVn(e,t){return t.parameters=DL(e,t.parameters),t.returns=Yf(e,t.returns),t}function XVn(e,t){return t.allOf=DL(e,t.allOf),t}function QVn(e,t){return t.anyOf=DL(e,t.anyOf),t}function $Vn(e,t){return Hs(t.items)||(t.items=DL(e,t.items)),t}function eWn(e,t){return t.items=Yf(e,t.items),t}function tWn(e,t){return t.items=Yf(e,t.items),t}function nWn(e,t){return t.items=Yf(e,t.items),t}function rWn(e,t){return t.item=Yf(e,t.item),t}function iWn(e,t){let n=cWn(e,t.properties);return{...t,...Or(n)}}function sWn(e,t){let n=Yf(e,ngt(t)),r=Yf(e,_9(t)),i=b9(n,r);return{...t,...i}}function oWn(e,t){return t.index in e?e[t.index]:Ob()}function aWn(e,t){let n=JI(t),r=Bu(t),i=Yf(e,t);return n&&r?y9(i):n&&!r?Vu(i):!n&&r?gc(i):i}function cWn(e,t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:aWn(e,t[r])}),{})}function DL(e,t){return t.map(n=>Yf(e,n))}function Yf(e,t){return zf(t)?ZVn(e,t):Gf(t)?JVn(e,t):rs(t)?XVn(e,t):Yn(t)?QVn(e,t):xl(t)?$Vn(e,t):qf(t)?eWn(e,t):BT(t)?tWn(e,t):GT(t)?nWn(e,t):VT(t)?rWn(e,t):qs(t)?iWn(e,t):WT(t)?sWn(e,t):mhe(t)?oWn(e,t):t}function igt(e,t){return Yf(t,ZI(e))}var sgt=v(()=>{j3();a0();S9();XT();Ig();Pl();ML();Jc();Xn()});var yme=v(()=>{sgt()});function ogt(e){return fe({[Pe]:"Integer",type:"integer"},e)}var agt=v(()=>{Nt();Ut()});var Sme=v(()=>{agt()});function uWn(e,t,n){return{[e]:Zf(ur(e),t,vi(n))}}function lWn(e,t,n){return e.reduce((i,s)=>({...i,...uWn(s,t,n)}),{})}function dWn(e,t,n){return lWn(e.keys,t,n)}function cgt(e,t,n){let r=dWn(e,t,n);return Qn(r)}var bme=v(()=>{Ro();ev();zu();qu()});function fWn(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toLowerCase(),n].join("")}function pWn(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toUpperCase(),n].join("")}function hWn(e){return e.toUpperCase()}function mWn(e){return e.toLowerCase()}function gWn(e,t,n){let r=t0(e.pattern);if(!YT(r))return{...e,pattern:ugt(e.pattern,t)};let o=[...wL(r)].map(u=>ur(u)),a=lgt(o,t),c=Sr(a);return Z3([c],n)}function ugt(e,t){return typeof e=="string"?t==="Uncapitalize"?fWn(e):t==="Capitalize"?pWn(e):t==="Uppercase"?hWn(e):t==="Lowercase"?mWn(e):e:e.toString()}function lgt(e,t){return e.map(n=>Zf(n,t))}function Zf(e,t,n={}){return kl(e)?cgt(e,t,n):Il(e)?gWn(e,t,n):Yn(e)?Sr(lgt(e.anyOf,t),n):wl(e)?ur(ugt(e.const,t),n):fe(e,n)}var ev=v(()=>{Nt();Og();bme();zu();oo();Xn()});function dgt(e,t={}){return Zf(e,"Capitalize",t)}var fgt=v(()=>{ev()});function pgt(e,t={}){return Zf(e,"Lowercase",t)}var hgt=v(()=>{ev()});function mgt(e,t={}){return Zf(e,"Uncapitalize",t)}var ggt=v(()=>{ev()});function ygt(e,t={}){return Zf(e,"Uppercase",t)}var Sgt=v(()=>{ev()});var Eme=v(()=>{fgt();bme();ev();hgt();ggt();Sgt()});function yWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Nb(e[i],t,vi(n));return r}function SWn(e,t,n){return yWn(e.properties,t,n)}function bgt(e,t,n){let r=SWn(e,t,n);return Qn(r)}var _me=v(()=>{Ro();T9();qu()});function bWn(e,t){return e.map(n=>Tme(n,t))}function EWn(e,t){return e.map(n=>Tme(n,t))}function _Wn(e,t){let{[t]:n,...r}=e;return r}function TWn(e,t){return t.reduce((n,r)=>_Wn(n,r),e)}function vWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=TWn(n,t);return Or(i,r)}function RWn(e){let t=e.reduce((n,r)=>q3(r)?[...n,ur(r)]:n,[]);return Sr(t)}function Tme(e,t){return rs(e)?yc(bWn(e.allOf,t)):Yn(e)?Sr(EWn(e.anyOf,t)):qs(e)?vWn(e,t,e.properties):Or({})}function Nb(e,t,n){let r=js(t)?RWn(t):t,i=Ol(t)?Gu(t):t,s=_s(e),o=_s(t);return Ri(e)?bgt(e,i,n):kl(t)?Egt(e,t,n):s&&o?oi("Omit",[e,r],n):!s&&o?oi("Omit",[e,r],n):s&&!o?oi("Omit",[e,r],n):fe({...Tme(e,i),...n})}var T9=v(()=>{Nt();z3();dL();kb();zu();Bh();Fd();oo();Pl();vme();_me();Xn();Jc()});function AWn(e,t,n){return{[t]:Nb(e,[t],vi(n))}}function wWn(e,t,n){return t.reduce((r,i)=>({...r,...AWn(e,i,n)}),{})}function kWn(e,t,n){return wWn(e,t.keys,n)}function Egt(e,t,n){let r=kWn(e,t,n);return Qn(r)}var vme=v(()=>{Ro();T9();qu()});var v9=v(()=>{vme();_me();T9()});function IWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Cb(e[i],t,vi(n));return r}function xWn(e,t,n){return IWn(e.properties,t,n)}function _gt(e,t,n){let r=xWn(e,t,n);return Qn(r)}var Rme=v(()=>{Ro();R9();qu()});function OWn(e,t){return e.map(n=>Ame(n,t))}function PWn(e,t){return e.map(n=>Ame(n,t))}function NWn(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function CWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=NWn(n,t);return Or(i,r)}function MWn(e){let t=e.reduce((n,r)=>q3(r)?[...n,ur(r)]:n,[]);return Sr(t)}function Ame(e,t){return rs(e)?yc(OWn(e.allOf,t)):Yn(e)?Sr(PWn(e.anyOf,t)):qs(e)?CWn(e,t,e.properties):Or({})}function Cb(e,t,n){let r=js(t)?MWn(t):t,i=Ol(t)?Gu(t):t,s=_s(e),o=_s(t);return Ri(e)?_gt(e,i,n):kl(t)?Tgt(e,t,n):s&&o?oi("Pick",[e,r],n):!s&&o?oi("Pick",[e,r],n):s&&!o?oi("Pick",[e,r],n):fe({...Ame(e,i),...n})}var R9=v(()=>{Nt();z3();kb();Fd();zu();Pl();oo();Bh();dL();Xn();Jc();wme();Rme()});function DWn(e,t,n){return{[t]:Cb(e,[t],vi(n))}}function LWn(e,t,n){return t.reduce((r,i)=>({...r,...DWn(e,i,n)}),{})}function UWn(e,t,n){return LWn(e,t.keys,n)}function Tgt(e,t,n){let r=UWn(e,t,n);return Qn(r)}var wme=v(()=>{Ro();R9();qu()});var A9=v(()=>{wme();Rme();R9()});function FWn(e,t){return oi("Partial",[oi(e,t)])}function jWn(e){return oi("Partial",[zh(e)])}function HWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=gc(e[n]);return t}function qWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=HWn(t);return Or(r,n)}function vgt(e){return e.map(t=>Rgt(t))}function Rgt(e){return Bf(e)?FWn(e.target,e.parameters):_s(e)?jWn(e.$ref):rs(e)?yc(vgt(e.allOf)):Yn(e)?Sr(vgt(e.anyOf)):qs(e)?qWn(e,e.properties):zT(e)||Rg(e)||Vf(e)||wl(e)||fL(e)||Wf(e)||Ag(e)||pL(e)||hL(e)?e:Or({})}function f0(e,t){return Ri(e)?Agt(e,t):fe({...Rgt(e),...t})}var kme=v(()=>{Nt();kb();Ig();Pl();Fd();oo();QT();kg();Ut();Ime();Xn()});function BWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=f0(e[r],vi(t));return n}function zWn(e,t){return BWn(e.properties,t)}function Agt(e,t){let n=zWn(e,t);return Qn(n)}var Ime=v(()=>{Ro();kme();qu()});var w9=v(()=>{Ime();kme()});function GWn(e,t){return oi("Required",[oi(e,t)])}function VWn(e){return oi("Required",[zh(e)])}function WWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=is(e[n],[wa]);return t}function KWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=WWn(t);return Or(r,n)}function wgt(e){return e.map(t=>kgt(t))}function kgt(e){return Bf(e)?GWn(e.target,e.parameters):_s(e)?VWn(e.$ref):rs(e)?yc(wgt(e.allOf)):Yn(e)?Sr(wgt(e.anyOf)):qs(e)?KWn(e,e.properties):zT(e)||Rg(e)||Vf(e)||wl(e)||fL(e)||Wf(e)||Ag(e)||pL(e)||hL(e)?e:Or({})}function p0(e,t){return Ri(e)?Igt(e,t):fe({...kgt(e),...t})}var xme=v(()=>{Nt();kb();Pl();Fd();oo();QT();Ut();kg();Ome();Xn()});function YWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=p0(e[r],t);return n}function ZWn(e,t){return YWn(e.properties,t)}function Igt(e,t){let n=ZWn(e,t);return Qn(n)}var Ome=v(()=>{Ro();xme()});var k9=v(()=>{Ome();xme()});function JWn(e,t){return t.map(n=>_s(n)?Pme(e,n.$ref):Nl(e,n))}function Pme(e,t){return t in e?_s(e[t])?Pme(e,e[t].$ref):Nl(e,e[t]):Zn()}function XWn(e){return s0(e[0])}function QWn(e){return Ib(e[0],e[1])}function $Wn(e){return o0(e[0])}function e4n(e){return f0(e[0])}function t4n(e){return Nb(e[0],e[1])}function n4n(e){return Cb(e[0],e[1])}function r4n(e){return p0(e[0])}function i4n(e,t,n){let r=JWn(e,n);return t==="Awaited"?XWn(r):t==="Index"?QWn(r):t==="KeyOf"?$Wn(r):t==="Partial"?e4n(r):t==="Omit"?t4n(r):t==="Pick"?n4n(r):t==="Required"?r4n(r):Zn()}function s4n(e,t){return XI(Nl(e,t))}function o4n(e,t){return QI(Nl(e,t))}function a4n(e,t,n){return $I(LL(e,t),Nl(e,n))}function c4n(e,t,n){return Hh(LL(e,t),Nl(e,n))}function u4n(e,t){return yc(LL(e,t))}function l4n(e,t){return i0(Nl(e,t))}function d4n(e,t){return Or(globalThis.Object.keys(t).reduce((n,r)=>({...n,[r]:Nl(e,t[r])}),{}))}function f4n(e,t){let[n,r]=[Nl(e,_9(t)),E9(t)],i=ZI(t);return i.patternProperties[r]=n,i}function p4n(e,t){return _s(t)?{...Pme(e,t.$ref),[so]:t[so]}:t}function h4n(e,t){return jd(LL(e,t))}function m4n(e,t){return Sr(LL(e,t))}function LL(e,t){return t.map(n=>Nl(e,n))}function Nl(e,t){return Bu(t)?fe(Nl(e,is(t,[wa])),t):JI(t)?fe(Nl(e,is(t,[Hf])),t):vb(t)?fe(p4n(e,t),t):qf(t)?fe(s4n(e,t.items),t):BT(t)?fe(o4n(e,t.items),t):Bf(t)?fe(i4n(e,t.target,t.parameters)):zf(t)?fe(a4n(e,t.parameters,t.returns),t):Gf(t)?fe(c4n(e,t.parameters,t.returns),t):rs(t)?fe(u4n(e,t.allOf),t):GT(t)?fe(l4n(e,t.items),t):qs(t)?fe(d4n(e,t.properties),t):WT(t)?fe(f4n(e,t)):xl(t)?fe(h4n(e,t.items||[]),t):Yn(t)?fe(m4n(e,t.anyOf),t):t}function g4n(e,t){return t in e?Nl(e,e[t]):Zn()}function xgt(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:g4n(e,n)}),{})}var Ogt=v(()=>{vg();phe();kg();_L();e9();TL();vL();Bh();KT();Fd();IL();NL();Pl();v9();A9();ka();w9();ML();k9();xb();oo();Ut();Xn()});function Pgt(e){return new Nme(e)}var Nme,Ngt=v(()=>{vg();Ut();Ogt();Nme=class{constructor(t){let n=xgt(t),r=this.WithIdentifiers(n);this.$defs=r}Import(t,n){let r={...this.$defs,[t]:fe(this.$defs[t],n)};return fe({[Pe]:"Import",$defs:r,$ref:t})}WithIdentifiers(t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:{...t[r],$id:r}}),{})}}});var Cme=v(()=>{Ngt()});function Cgt(e,t){return fe({[Pe]:"Not",not:e},t)}var Mgt=v(()=>{Nt();Ut()});var Mme=v(()=>{Mgt()});function Dgt(e,t){return Gf(e)?jd(e.parameters,t):Zn()}var Lgt=v(()=>{xb();ka();Xn()});var Dme=v(()=>{Lgt()});function Ugt(e,t={}){Hs(t.$id)&&(t.$id=`T${y4n++}`);let n=ZI(e({[Pe]:"This",$ref:`${t.$id}`}));return n.$id=t.$id,fe({[Ld]:"Recursive",...n},t)}var y4n,Fgt=v(()=>{j3();Nt();Jc();Ut();y4n=0});var Lme=v(()=>{Fgt()});function jgt(e,t){let n=Zr(e)?new globalThis.RegExp(e):e;return fe({[Pe]:"RegExp",type:"RegExp",source:n.source,flags:n.flags},t)}var Hgt=v(()=>{Nt();Jc();Ut()});var Ume=v(()=>{Hgt()});function S4n(e){return rs(e)?e.allOf:Yn(e)?e.anyOf:xl(e)?e.items??[]:[]}function qgt(e){return S4n(e)}var Bgt=v(()=>{Xn()});var Fme=v(()=>{Bgt()});function zgt(e,t){return Gf(e)?fe(e.returns,t):Zn(t)}var Ggt=v(()=>{Nt();ka();Xn()});var jme=v(()=>{Ggt()});var Vgt=v(()=>{});var Wgt=v(()=>{});var Kgt=v(()=>{Vgt();Wgt()});var Ygt=v(()=>{});var Zgt=v(()=>{Ygt()});function Jgt(e){return new Hme(e)}var Hme,qme,Xgt=v(()=>{Ut();Xn();Hme=class{constructor(t){this.schema=t}Decode(t){return new qme(this.schema,t)}},qme=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 vb(this.schema)?this.EncodeTransform(t,this.schema):this.EncodeSchema(t,this.schema)}}});var Bme=v(()=>{Xgt()});function Qgt(e={}){return fe({[Pe]:e[Pe]??"Unsafe"},e)}var $gt=v(()=>{Nt();Ut()});var zme=v(()=>{$gt()});function eyt(e){return fe({[Pe]:"Void",type:"void"},e)}var tyt=v(()=>{Nt();Ut()});var Gme=v(()=>{tyt()});var Vme={};Ar(Vme,{Any:()=>wb,Argument:()=>kht,Array:()=>XI,AsyncIterator:()=>QI,Awaited:()=>s0,BigInt:()=>n0,Boolean:()=>K3,Capitalize:()=>dgt,Composite:()=>_mt,Const:()=>xmt,Constructor:()=>$I,ConstructorParameters:()=>Pmt,Date:()=>t9,Enum:()=>Cmt,Exclude:()=>l0,Extends:()=>u0,Extract:()=>d0,Function:()=>Hh,Index:()=>Ib,InstanceType:()=>$mt,Instantiate:()=>igt,Integer:()=>ogt,Intersect:()=>yc,Iterator:()=>i0,KeyOf:()=>o0,Literal:()=>ur,Lowercase:()=>pgt,Mapped:()=>cmt,Module:()=>Pgt,Never:()=>Zn,Not:()=>Cgt,Null:()=>r9,Number:()=>Ud,Object:()=>Or,Omit:()=>Nb,Optional:()=>gc,Parameters:()=>Dgt,Partial:()=>f0,Pick:()=>Cb,Promise:()=>Q3,Readonly:()=>Vu,ReadonlyOptional:()=>y9,Record:()=>b9,Recursive:()=>Ugt,Ref:()=>zh,RegExp:()=>jgt,Required:()=>p0,Rest:()=>qgt,ReturnType:()=>zgt,String:()=>Kf,Symbol:()=>s9,TemplateLiteral:()=>Z3,Transform:()=>Jgt,Tuple:()=>jd,Uint8Array:()=>u9,Uncapitalize:()=>mgt,Undefined:()=>a9,Union:()=>Sr,Unknown:()=>Ob,Unsafe:()=>Qgt,Uppercase:()=>ygt,Void:()=>eyt});var nyt=v(()=>{EL();Rhe();_L();TL();e9();kL();Y3();Zhe();Xhe();vL();Qhe();n9();$he();dme();CL();hme();KT();Bh();mme();yme();Sme();Fd();Eme();IL();NL();zu();Ro();Cme();ka();Mme();i9();ZT();Pl();v9();Ig();Dme();w9();A9();$3();XT();S9();ML();Lme();QT();Ume();k9();Fme();jme();r0();o9();Og();Bme();xb();l9();c9();oo();a0();zme();Gme()});var I,ryt=v(()=>{nyt();I=Vme});var Ao=v(()=>{phe();vg();jh();_he();hht();SL();bht();bL();Ut();EL();_L();Rhe();TL();e9();kL();Y3();Zhe();Xhe();vL();Qhe();n9();$he();dme();CL();hme();KT();Bh();mme();yme();Sme();Fd();IL();Eme();NL();zu();Cme();Ro();ka();Mme();i9();ZT();Pl();v9();Ig();Dme();w9();A9();$3();XT();S9();ML();Lme();QT();Ume();k9();Fme();jme();Kgt();Zgt();r0();o9();Og();Bme();xb();l9();c9();oo();a0();zme();Gme();ryt()});var b4n,Wme,Kme=v(()=>{"use strict";Ao();b4n=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}),Wme=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 iyt,He,Ia=v(()=>{"use strict";iyt=Re(V_(),1),He=new iyt.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 syt(){let e=(process.env.HAIKU_FIX_SEVERITY_THRESHOLD||"high").trim().toLowerCase();return UL.includes(e)?Xc(e):Xc("high")}function h0(e){return typeof e!="string"||e.length===0?!0:Xc(e)<=syt()}var I9,UL,oyt,ayt,E4n,_4n,T4n,v4n,x9,Yme,R4n,Bli,FL,jL,cyt=v(()=>{"use strict";Ao();Ia();I9=["adversarial-review","studio-review","engine-review","drift","discovery","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],UL=["blocker","high","medium","low"];oyt="^(?:FB-)?\\d+$",ayt=["iterations","closed_at"],E4n=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}),_4n=I.Object({text:I.String({minLength:1}),at:I.String()},{additionalProperties:!1}),T4n=I.Object({title:I.Optional(I.String({minLength:1,maxLength:120})),origin:I.Optional(I.String({enum:[...I9]})),severity:I.Optional(I.String({enum:[...UL]})),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(E4n),closure_reply:I.Optional(_4n),closure_reply_unread:I.Optional(I.Boolean())},{propertyNames:{not:{enum:[...ayt]}},additionalProperties:!0}),v4n=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}),x9=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:[...UL],description:`How urgent the finding is. REQUIRED \u2014 classify as you file. One of: ${UL.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:[...I9],description:`Source of the feedback. One of: ${I9.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(v4n),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}),Yme=He.compile(x9),R4n=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String()),feedback_id:I.String({pattern:oyt}),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}),Bli=He.compile(R4n),FL=ayt,jL=["title","origin","severity","author","author_type","created_at","source_ref","attachment","inline_anchor","targets"]});var m0,Zme,O9,Jme,P9,Xme,uyt=v(()=>{"use strict";Ao();Ia();m0=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}),Zme=He.compile(m0),O9=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by ask_user_visual_question."}),url:I.Optional(I.String({description:"Question URL. Optional \u2014 primarily used for the browser-launch step."})),auto_open:I.Optional(I.Boolean({description:"Try to open the URL in the default browser when waiting begins (default true). Set to false for remote control / headless / mobile-chat scenarios."}))},{additionalProperties:!1}),Jme=He.compile(O9),P9=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}),Xme=He.compile(P9)});var HL,g0,Qme,lyt=v(()=>{"use strict";Ao();Ia();HL=["force_stage_complete","set_intent_field","reset_drift","mutate_feedback","set_unit_iterations","preview_cursor"],g0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),op:I.String({enum:[...HL],description:"Which admin op to run: force_stage_complete, set_intent_field, reset_drift, mutate_feedback, preview_cursor."}),reason:I.Optional(I.String({description:"Why you're running this admin op \u2014 the cause that led here (e.g. 'cursor stuck on stage `design` after a manual branch edit; force-completing to unblock'). Surfaced verbatim to the user at the top of the confirmation picker so they have the context to approve or cancel. Plain prose, not a status code."})),stage:I.Optional(I.String({description:"Target stage (force_stage_complete, mutate_feedback)."})),field:I.Optional(I.String({description:"intent.md FM key (set_intent_field)."})),value:I.Optional(I.Unsafe({type:["string","array","number","boolean","null","object"],description:"intent.md FM value (set_intent_field)."})),feedback_id:I.Optional(I.String({description:"Feedback ID to mutate (mutate_feedback). For batch mutations, use feedback_ids instead."})),feedback_ids:I.Optional(I.Array(I.String(),{description:"Batch form of feedback_id \u2014 array of FB IDs to mutate in a single call (mutate_feedback). The same `patch` is applied to every FB in the list. Use this instead of firing the picker confirmation per-FB."})),patch:I.Optional(I.Object({},{additionalProperties:!0,description:"FB FM keys to set (mutate_feedback). Example: { closed_at: '2026-...', closed_by: 'manual_review' }."})),fields:I.Optional(I.Object({},{additionalProperties:!0,description:"Batch form of field/value \u2014 object of intent.md FM keys to set in a single call (set_intent_field). Example: { mode: 'autopilot', archived: false }."})),close_open_feedback:I.Optional(I.Boolean({description:'force_stage_complete only. When true, also stamps `closed_at` + `closed_by: "force_complete"` on every open FB on the targeted stages (and on intent scope when the final stage is the target). Open FBs otherwise continue blocking the cursor even after every approval is signed.'})),unit:I.Optional(I.String({description:"Unit slug or filename stem (set_unit_iterations). Example: 'unit-03-my-thing' or 'unit-03'."})),iterations:I.Optional(I.Array(I.Object({hat:I.String({minLength:1}),result:I.String({enum:["advance","reject"]}),at:I.Optional(I.String())},{additionalProperties:!0}),{description:"Explicit iterations[] array to write (set_unit_iterations). Omit to auto-synthesize one `advance` entry per hat in the stage's `hats:` sequence \u2014 the typical recovery shape when a legacy unit has no iterations but its outputs landed."}))},{additionalProperties:!1}),Qme=He.compile(g0)});var y0,$me,dyt=v(()=>{"use strict";Ao();Ia();y0=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}),$me=He.compile(y0)});var Gh,Pg,N9,ege,C9,tge,M9,nge,D9,rge,L9,ige,U9,sge,F9,oge,j9,age,H9,cge,q9,uge,fyt=v(()=>{"use strict";Ao();Ia();Gh=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."})},N9=I.Object({...Pg,state_file:Gh},{additionalProperties:!1}),ege=He.compile(N9),C9=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:Gh},{additionalProperties:!1}),tge=He.compile(C9),M9=I.Object({...Pg,reason:I.String({minLength:1,description:"Explanation for why this feedback is being rejected"}),state_file:Gh},{additionalProperties:!1}),nge=He.compile(M9),D9=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:Gh},{additionalProperties:!1}),rge=He.compile(D9),L9=I.Object({...Pg,state_file:Gh},{additionalProperties:!1}),ige=He.compile(L9),U9=I.Object({...Pg,body:I.String({description:"Full markdown body to write. Replaces the prior body entirely."}),state_file:Gh},{additionalProperties:!1}),sge=He.compile(U9),F9=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:Gh},{additionalProperties:!1}),oge=He.compile(F9),j9=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:Gh},{additionalProperties:!1}),age=He.compile(j9),H9=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:Gh},{additionalProperties:!1}),cge=He.compile(H9),q9=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:Gh},{additionalProperties:!1}),uge=He.compile(q9)});var B9,qL,z9,lge,G9,dge,V9,fge,pyt=v(()=>{"use strict";Ao();Ia();B9=I.Optional(I.String()),qL=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:B9},{additionalProperties:!1}),z9=I.Object({slug:I.String({minLength:1,description:"Intent slug"}),field:I.String({minLength:1,description:"Frontmatter field name to read"}),state_file:B9},{additionalProperties:!1}),lge=He.compile(z9),G9=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:B9},{additionalProperties:!1}),dge=He.compile(G9),V9=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:B9},{additionalProperties:!1}),fge=He.compile(V9)});var wo,hyt,W9,pge,K9,hge,Y9,mge,Z9,gge,BL,zL,J9,yge,X9,Sge,Q9,bge,$9,Ege,eY,_ge,tY,Tge,nY,vge,rY,Rge,iY,Age,sY,wge,oY,kge,S0,Ige,aY,xge,cY,Oge,uY,Pge,myt=v(()=>{"use strict";Ao();Ia();wo=I.Optional(I.String()),hyt=I.Object({state_file:wo},{additionalProperties:!1}),W9=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}),pge=He.compile(W9),K9=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}),hge=He.compile(K9),Y9=I.Object({intent:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),mge=He.compile(Y9),Z9=I.Object({intent:I.String({minLength:1}),name:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),gge=He.compile(Z9),BL=hyt,zL=He.compile(hyt),J9=I.Object({studio:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),yge=He.compile(J9),X9=I.Object({studio:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),Sge=He.compile(X9),Q9=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}),bge=He.compile(Q9),$9=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}),Ege=He.compile($9),eY=I.Object({studio:I.Optional(I.String({description:"Optional: filter to a specific studio"})),state_file:wo},{additionalProperties:!1}),_ge=He.compile(eY),tY=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}),Tge=He.compile(tY),nY=I.Object({intent:I.Optional(I.String({description:"Optional: intent slug for context"})),state_file:wo},{additionalProperties:!1}),vge=He.compile(nY),rY=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}),Rge=He.compile(rY),iY=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}),Age=He.compile(iY),sY=I.Object({action:I.Optional(I.String({enum:["list","plant","check"],description:"Defaults to `list`."})),state_file:wo},{additionalProperties:!1}),wge=He.compile(sY),oY=I.Object({version:I.Optional(I.String({description:"Optional: specific version to extract (e.g. '1.2.0')"})),state_file:wo},{additionalProperties:!1}),kge=He.compile(oY),S0=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}),Ige=He.compile(S0),aY=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}),xge=He.compile(aY),cY=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}),Oge=He.compile(cY),uY=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by `haiku_view`."}),state_file:wo},{additionalProperties:!1}),Pge=He.compile(uY)});var b0,Nge,gyt=v(()=>{"use strict";Ao();Ia();b0=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}),Nge=He.compile(b0)});var E0,Cge,_0,Mge,T0,Dge,v0,Lge,yyt=v(()=>{"use strict";Ao();Ia();E0=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}),Cge=He.compile(E0),_0=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}),Mge=He.compile(_0),T0=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}),Dge=He.compile(T0),v0=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}),Lge=He.compile(v0)});var Syt,R0,Uge,A0,Fge,w0,jge,lY,Hge,dY,qge,k0,Bge,byt=v(()=>{"use strict";Ao();Ia();Syt=I.Optional(I.String()),R0=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}),Uge=He.compile(R0),A0=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}),Fge=He.compile(A0),w0=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}),jge=He.compile(w0),lY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),field:I.String({minLength:1}),state_file:Syt},{additionalProperties:!1}),Hge=He.compile(lY),dY=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:Syt},{additionalProperties:!1}),qge=He.compile(dY),k0=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}),Bge=He.compile(k0)});var fY,zge,pY,Gge,hY,Vge,mY,Wge,gY,Kge,yY,Yge,SY,Zge,Eyt=v(()=>{"use strict";Ao();Ia();fY=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}),zge=He.compile(fY),pY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"})},{additionalProperties:!1}),Gge=He.compile(pY),hY=I.Object({intent:I.String({minLength:1,description:"Intent slug"})},{additionalProperties:!1}),Vge=He.compile(hY),mY=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}),Wge=He.compile(mY),gY=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}),Kge=He.compile(gY),yY=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}),Yge=He.compile(yY),SY=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}),Zge=He.compile(SY)});var bY,Mb,EY,Jge,_Y,Xge,TY,Qge,$ge,vY,eye,RY,tye,AY,nye,wY,rye,kY,iye,IY,sye,I0,oye,_yt=v(()=>{"use strict";Ao();Ia();bY={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."})},Mb=I.Optional(I.String()),EY=I.Object({...bY,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:Mb},{additionalProperties:!1}),Jge=He.compile(EY),_Y=I.Object({...bY,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}),Xge=He.compile(_Y),TY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:Mb},{additionalProperties:!1}),Qge=He.compile(TY),$ge=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."})),vY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:$ge,state_file:Mb},{additionalProperties:!1}),eye=He.compile(vY),RY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:$ge,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:Mb},{additionalProperties:!1}),tye=He.compile(RY),AY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:$ge,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:Mb},{additionalProperties:!1}),nye=He.compile(AY),wY=I.Object({...bY,state_file:Mb},{additionalProperties:!1}),rye=He.compile(wY),kY=I.Object({...bY,state_file:Mb},{additionalProperties:!1}),iye=He.compile(kY),IY=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:Mb},{additionalProperties:!1}),sye=He.compile(IY),I0=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}),oye=He.compile(I0)});var aye,A4n,xY,w4n,GL,x0,k4n,tv,nv,OY,cye=v(()=>{"use strict";Ao();Ia();Kme();aye=["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"],A4n=["draft","ready","failed"],xY=["continuous","discrete","autopilot","discrete-hybrid","quick"],w4n=I.Record(I.String(),I.Union([Wme,I.Null()])),GL=I.Object({title:I.Optional(I.String({minLength:1})),description:I.Optional(I.String()),mode:I.Optional(I.String({enum:[...xY]})),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:[...A4n]})),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:[...aye]}},additionalProperties:!0}),x0=He.compile(GL),k4n=new Set(aye),tv=Object.keys(GL.properties??{}).filter(e=>!k4n.has(e)),nv=aye,OY=["studio","plugin_version","follows"]});var I4n,Tyt=v(()=>{"use strict";Ao();I4n=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 uye,lye,vyt=v(()=>{"use strict";Ao();uye=I.Object({error:I.String({description:"Stable named error code."}),message:I.String({description:"Human-readable remediation guidance."})},{additionalProperties:!0}),lye=I.Object({ok:I.Literal(!0),message:I.String()},{additionalProperties:!0})});var PY,dye,Ryt=v(()=>{"use strict";Ao();PY=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}),dye=Object.keys(PY.properties??{})});var wyt,Ayt,rv,Ng,Db,Jf,kyt=v(()=>{"use strict";Ao();Ia();wyt=["started_at","iterations","reviews","approvals","quality_gates_env_blocked"],Ayt="^[^\\s:,]+(?:/[^\\s:,]+)*$",rv=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:Ayt}),{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:Ayt}),{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:[...wyt]}},additionalProperties:!0}),Ng=He.compile(rv),Db=Object.keys(rv.properties??{}),Jf=wyt});var ji=v(()=>{"use strict";Kme();cyt();uyt();lyt();dyt();fyt();pyt();myt();gyt();yyt();byt();Eyt();_yt();cye();Tyt();vyt();Ryt();kyt()});var Oyt={};Ar(Oyt,{DIR_INVENTORY_SKIP:()=>MY,bodyMatchesStoredHash:()=>VL,bodySha256:()=>Cg,buildApprovalRecord:()=>zd,buildOutputWitnesses:()=>P4n,buildReviewRecord:()=>Cl,fileSha256:()=>O0,isTextBodyExtension:()=>CY,normalizeInputPath:()=>WL,outputSha256:()=>Lb,resolveInputWitnesses:()=>DY});import{createHash as NY}from"node:crypto";import{existsSync as iv,readdirSync as x4n,readFileSync as fye,statSync as Iyt}from"node:fs";import{join as sv}from"node:path";function Cg(e){if(!iv(e))return"";let t=fye(e,"utf8"),n=t;try{n=(0,pye.default)(t).content}catch{n=t}return n.endsWith(` +`)}function BI(e){let t=`${e.replace(/\/$/,"")}/intent.md`;if(!sL(t))return"";try{let{data:n}=re(w3(t,"utf8"));return typeof n.mode=="string"?n.mode:""}catch{return""}}function zI(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?"":tpt.renderString(Ozn,{slug:n,concurrentLines:o.map(a=>a.line)})}var ept,tpt,xzn,Ozn,ns=v(()=>{"use strict";gt();ept=Re(Kt(),1);Ci();_f();pb();ze();Kn();vl();ht();Wft();Fh();tpt=new Te({autoEscape:!1,useWith:!0}),xzn=ie("@canon:","_shared/inline-subagent-context.eta.md"),Ozn=ie("@canon:","_shared/concurrent-elaborate-loop.eta.md")});function x3(e,t,n){let r=e.ensureWorktree(),i=e.mandateRef(t),s=e.priorHandoffBlock(),o=e.resolveModel(t),a=e.bolt(),c=Pzn.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 Pzn,Vpe=v(()=>{"use strict";gt();ns();Pzn=new Te({autoEscape:!1,useWith:!0})});import{existsSync as ipt,readdirSync as spt,readFileSync as opt}from"node:fs";import{join as GI}from"node:path";function Nzn(){return Wpe===null&&(Wpe=ie("@canon:feedback/start_feedback_hat","subagent.eta.md")),Wpe}function Czn(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?GI(cr(t,n),"feedback"):GI(ce(t),"feedback");try{let p=ipt(f)?spt(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=opt(GI(f,p[0]),"utf8");o=(0,Kpe.default)(h).data.model}}catch{}}let a=n?Du(r,n)?.[i]:QK(r)?.[i],c=n?es(r,n):void 0,u=Cd(r),l=fb({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}function VI(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?GI(cr(t,i),"feedback"):GI(ce(t),"feedback"),p=r.replace(/^FB-/i,""),h="",m=1;if(ipt(f)){let g=spt(f).find(y=>y.startsWith(p)&&y.endsWith(".md"));if(g){let y=GI(f,g);h=FI(y);try{let b=(0,Kpe.default)(opt(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:()=>Ppe(t,c,r)??"",mandateRef:f=>kr({resolveBody:()=>i?AI(n,i,f,!0):cft(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=>Czn({slug:t,studio:n,stage:i,hat:f,feedbackId:r})?.model,bolt:()=>l().bolt,template:()=>Nzn(),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 x3(d,s,o)}var Kpe,Wpe,Ype=v(()=>{"use strict";Kpe=Re(Kt(),1);Ci();ar();pb();ze();Kn();Vpe();ns();ht();Wpe=null});function Zpe(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 apt=v(()=>{"use strict"});var upt={};Ar(upt,{computeStageDependents:()=>ehe,filterInputsByPlanStages:()=>Xpe,resolveIntentStages:()=>wn,resolveStageFixHats:()=>bg,resolveStageHats:()=>Es,resolveStageMetadata:()=>rhe,resolveStageOptional:()=>oL,resolveStageReview:()=>nhe,resolveStudioFilePath:()=>Ff,resolveStudioFixHats:()=>jf,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>the,stageRequiresExternalReview:()=>$pe});import{existsSync as Uf,readdirSync as Mzn,readFileSync as Jpe}from"node:fs";import{join as Yr}from"node:path";function HT(e){if(!Uf(e))return{};let t=Jpe(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 Xpe(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 HT(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 HT(o).hats||[]}return[]}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))return HT(o)}return{}}function oL(e,t){return Qpe(e,t).optional===!0}function $pe(e,t){let n=Qpe(e,t).review;return typeof n=="string"?n==="external":Array.isArray(n)?n.includes("external"):!1}function ehe(e,t,n){let r=n.indexOf(t);if(r<0)return[];let i=[];for(let s of n.slice(r+1)){let o=Qpe(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=HT(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 Mzn(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=HT(o).fix_hats;return Array.isArray(c)?c:[]}}return[]}function the(e,t,n,r){let i=Es(e,t),s=ce(n),o=Yr(s,"stages",t,"units",r.endsWith(".md")?r:`${r}.md`);if(!Uf(o))return i;try{let{data:a}=re(Jpe(o,"utf8"));if((a.closes||[]).length>0&&!i.includes("feedback-assessor"))return[...i,"feedback-assessor"]}catch{}return i}function nhe(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=HT(o).review;return Array.isArray(c)?c.join(","):c||"auto"}}return"auto"}function rhe(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=Jpe(o,"utf8"),c=HT(o),{content:u}=(0,cpt.default)(a);return{description:c.description||t,body:u.trim()}}}return null}var cpt,ji=v(()=>{"use strict";cpt=Re(Kt(),1);Ci();ze();Kn()});import{existsSync as lpt,readFileSync as dpt}from"node:fs";import{join as she}from"node:path";function Dzn(){return ihe===null&&(ihe=ie("@canon:stage/execute/start_unit_hat","subagent.eta.md")),ihe}function Lzn(e){if(!Go.modelSelection)return;let{slug:t,studio:n,stage:r,hat:i,unit:s}=e,o,a=she(cr(t,r),"units",`${s}.md`);if(lpt(a))try{let d=dpt(a,"utf8");o=(0,ohe.default)(d).data.model}catch{}let c=r?Du(n,r)?.[i]:void 0,u=r?es(n,r):void 0,l=Cd(n);return fb({unit:o,hat:c?.model,stage:u?.data?.default_model,studio:l?.data?.default_model}).model}function Uzn(e){let{slug:t,stage:n,unit:r}=e,i=she(cr(t,n),"units",`${r}.md`);if(!lpt(i))return[];try{let s=(0,ohe.default)(dpt(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 WI(e){let{slug:t,studio:n,unit:r,stage:i,hat:s,terminal:o}=e,a=she(cr(t,i),"units",`${r}.md`),c=null,u=()=>c??=Uzn({slug:t,stage:i,unit:r});return x3({slug:t,emitStage:i||void 0,dispatchId:r,ensureWorktree:()=>kpe(t,r,i)??"",mandateRef:d=>kr({resolveBody:()=>AI(n,i,d),toolName:"haiku_read_hat",toolArgs:{studio:n,stage:i,hat:d},intent:t,stage:i,kind:"mandate",name:d}),priorHandoffBlock:()=>k3(a),resolveModel:d=>Lzn({slug:t,studio:n,stage:i,hat:d,unit:r}),bolt:()=>u().length+1,template:()=>Dzn(),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 ohe,ihe,ahe=v(()=>{"use strict";ohe=Re(Kt(),1);Ci();ar();pb();ze();Kn();Vpe();ns();ht();ihe=null});function P3(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 ppt(e){let t=new Map;for(let i of e.nodes)t.set(i.id,0);for(let i of e.edges)t.set(i.to,(t.get(i.to)??0)+1);let n=[];for(let[i,s]of t)s===0&&n.push(i);n.sort();let r=[];for(;n.length>0;){let i=n.shift();if(!i)break;r.push(i);let s=e.adjacency.get(i)??[];for(let o of s){let a=(t.get(o)??1)-1;if(t.set(o,a),a===0){let c=n.findIndex(u=>u>o);c===-1?n.push(o):n.splice(c,0,o)}}}if(r.lengths.id).filter(s=>!r.includes(s));throw new Error(`Circular dependency detected among units: ${i.join(", ")}`)}return r}function N3(e){let t=ppt(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 O3(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 C3(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=O3(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=O3(h),g=Hu(p.slug);n.push(` ${g}["${m}"]`)}n.push(" end")}else{let l=N3(e),d=new Map(t.map(h=>[h.slug,h])),f=Array.from(l.keys()).sort((h,m)=>h-m),p=f.length>1;for(let h of f){let 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=O3(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=O3(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=fpt[l]??fpt.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 fpt,che=v(()=>{"use strict";fpt={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 uhe,readdirSync as hpt,readFileSync as Fzn,rmSync as jzn}from"node:fs";import{join as M3}from"node:path";function Hzn(e){if(!uhe(e))return{};let t=Fzn(e,"utf8"),{data:n}=re(t);return n}function aL(e,t){let n=Eg(e,t);return n.length===0?!0:!n.some(r=>r.status==="completed")}function mpt(e,t){if(!aL(e,t))return[];let n=M3(e,"stages",t,"feedback");if(!uhe(n))return[];let r=[];for(let i of hpt(n))if(i.endsWith(".md")&&/^\d+-/.test(i))try{jzn(M3(n,i),{force:!0}),r.push(i)}catch{}return r}function qzn(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=M3(e,"stages",t,"units");if(!uhe(n))return[];let i=hpt(n).filter(o=>o.endsWith(".md")).map(o=>{let a=Hzn(M3(n,o)),c=qzn(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 KI(e){let t=e.map(c=>({id:c.name,status:c.status})),n=[],r=new Map;for(let c of e)r.set(c.name,[]);for(let c of e)for(let u of c.dependsOn){if(!r.has(u))continue;n.push({from:u,to:c.name});let l=r.get(u);l&&l.push(c.name)}let i={nodes:t,edges:n,adjacency:r},s;try{s=N3(i)}catch{s=new Map([[0,e.map(c=>c.name)]])}let o=new Map,a=0;for(let[c,u]of s){for(let l of u)o.set(l,c);c+1>a&&(a=c+1)}return{waves:s,unitWave:o,totalWaves:a}}function YI(e,t,n){for(let r=0;rt.get(s.name)===r&&s.status!=="completed"))return r;return 0}function D3(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}=KI(n),u=YI(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 L3=v(()=>{"use strict";che();ze()});var mc={};Ar(mc,{HasPropertyKey:()=>U3,IsArray:()=>js,IsAsyncIterator:()=>lhe,IsBigInt:()=>cL,IsBoolean:()=>_g,IsDate:()=>qT,IsFunction:()=>dhe,IsIterator:()=>fhe,IsNull:()=>phe,IsNumber:()=>Al,IsObject:()=>Ir,IsRegExp:()=>uL,IsString:()=>Zr,IsSymbol:()=>hhe,IsUint8Array:()=>Tg,IsUndefined:()=>Hs});function U3(e,t){return t in e}function lhe(e){return Ir(e)&&!js(e)&&!Tg(e)&&Symbol.asyncIterator in e}function js(e){return Array.isArray(e)}function cL(e){return typeof e=="bigint"}function _g(e){return typeof e=="boolean"}function qT(e){return e instanceof globalThis.Date}function dhe(e){return typeof e=="function"}function fhe(e){return Ir(e)&&!js(e)&&!Tg(e)&&Symbol.iterator in e}function phe(e){return e===null}function Al(e){return typeof e=="number"}function Ir(e){return typeof e=="object"&&e!==null}function uL(e){return e instanceof globalThis.RegExp}function Zr(e){return typeof e=="string"}function hhe(e){return typeof e=="symbol"}function Tg(e){return e instanceof globalThis.Uint8Array}function Hs(e){return e===void 0}var Jc=v(()=>{});function Bzn(e){return e.map(t=>F3(t))}function zzn(e){return new Date(e.getTime())}function Gzn(e){return new Uint8Array(e)}function Vzn(e){return new RegExp(e.source,e.flags)}function Wzn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=F3(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=F3(e[n]);return t}function F3(e){return js(e)?Bzn(e):qT(e)?zzn(e):Tg(e)?Gzn(e):uL(e)?Vzn(e):Ir(e)?Wzn(e):e}function vi(e){return F3(e)}var qu=v(()=>{Jc()});function ZI(e,t){return t===void 0?vi(e):vi({...t,...e})}var j3=v(()=>{qu()});var mhe=v(()=>{j3();qu()});function gpt(e){return e!==null&&typeof e=="object"}function ypt(e){return globalThis.Array.isArray(e)&&!globalThis.ArrayBuffer.isView(e)}function Spt(e){return e===void 0}function bpt(e){return typeof e=="number"}var Ept=v(()=>{});var _pt=v(()=>{Ept()});var H3,Tpt=v(()=>{_pt();(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=gpt(o);return e.AllowArrayObject?a:a&&!ypt(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?bpt(o):Number.isFinite(o)}e.IsNumberLike=i;function s(o){let a=Spt(o);return e.AllowNullVoid?a||o===null:a}e.IsVoidLike=s})(H3||(H3={}))});function Kzn(e){return globalThis.Object.freeze(e).map(t=>lL(t))}function Yzn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=lL(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=lL(e[n]);return globalThis.Object.freeze(t)}function lL(e){return js(e)?Kzn(e):qT(e)?e:Tg(e)?e:uL(e)?e:Ir(e)?Yzn(e):e}var vpt=v(()=>{Jc()});function fe(e,t){let n=t!==void 0?{...t,...e}:e;switch(H3.InstanceMode){case"freeze":return lL(n);case"clone":return vi(n);default:return n}}var Nt=v(()=>{Tpt();vpt();qu()});var vg=v(()=>{Nt()});var Jo,Rpt=v(()=>{Jo=class extends Error{constructor(t){super(t)}}});var jh=v(()=>{Rpt()});var so,Hf,wa,Ld,Pe,dL=v(()=>{so=Symbol.for("TypeBox.Transform"),Hf=Symbol.for("TypeBox.Readonly"),wa=Symbol.for("TypeBox.Optional"),Ld=Symbol.for("TypeBox.Hint"),Pe=Symbol.for("TypeBox.Kind")});var Ut=v(()=>{dL()});function JI(e){return Ir(e)&&e[Hf]==="Readonly"}function Bu(e){return Ir(e)&&e[wa]==="Optional"}function ghe(e){return zn(e,"Any")}function yhe(e){return zn(e,"Argument")}function qf(e){return zn(e,"Array")}function BT(e){return zn(e,"AsyncIterator")}function zT(e){return zn(e,"BigInt")}function Rg(e){return zn(e,"Boolean")}function Bf(e){return zn(e,"Computed")}function zf(e){return zn(e,"Constructor")}function Zzn(e){return zn(e,"Date")}function Gf(e){return zn(e,"Function")}function Vf(e){return zn(e,"Integer")}function rs(e){return zn(e,"Intersect")}function GT(e){return zn(e,"Iterator")}function zn(e,t){return Ir(e)&&Pe in e&&e[Pe]===t}function q3(e){return _g(e)||Al(e)||Zr(e)}function wl(e){return zn(e,"Literal")}function kl(e){return zn(e,"MappedKey")}function Ri(e){return zn(e,"MappedResult")}function Tb(e){return zn(e,"Never")}function Jzn(e){return zn(e,"Not")}function fL(e){return zn(e,"Null")}function Wf(e){return zn(e,"Number")}function qs(e){return zn(e,"Object")}function VT(e){return zn(e,"Promise")}function WT(e){return zn(e,"Record")}function _s(e){return zn(e,"Ref")}function She(e){return zn(e,"RegExp")}function Ag(e){return zn(e,"String")}function pL(e){return zn(e,"Symbol")}function Il(e){return zn(e,"TemplateLiteral")}function Xzn(e){return zn(e,"This")}function vb(e){return Ir(e)&&so in e}function xl(e){return zn(e,"Tuple")}function hL(e){return zn(e,"Undefined")}function Yn(e){return zn(e,"Union")}function Qzn(e){return zn(e,"Uint8Array")}function $zn(e){return zn(e,"Unknown")}function eGn(e){return zn(e,"Unsafe")}function tGn(e){return zn(e,"Void")}function nGn(e){return Ir(e)&&Pe in e&&Zr(e[Pe])}function Ol(e){return ghe(e)||yhe(e)||qf(e)||Rg(e)||zT(e)||BT(e)||Bf(e)||zf(e)||Zzn(e)||Gf(e)||Vf(e)||rs(e)||GT(e)||wl(e)||kl(e)||Ri(e)||Tb(e)||Jzn(e)||fL(e)||Wf(e)||qs(e)||VT(e)||WT(e)||_s(e)||She(e)||Ag(e)||pL(e)||Il(e)||Xzn(e)||xl(e)||hL(e)||Yn(e)||Qzn(e)||$zn(e)||eGn(e)||tGn(e)||nGn(e)}var Xn=v(()=>{Jc();Ut()});var X={};Ar(X,{IsAny:()=>Ipt,IsArgument:()=>xpt,IsArray:()=>Opt,IsAsyncIterator:()=>Ppt,IsBigInt:()=>Npt,IsBoolean:()=>Cpt,IsComputed:()=>Mpt,IsConstructor:()=>Dpt,IsDate:()=>Lpt,IsFunction:()=>Upt,IsImport:()=>cGn,IsInteger:()=>Fpt,IsIntersect:()=>jpt,IsIterator:()=>Hpt,IsKind:()=>fht,IsKindOf:()=>kn,IsLiteral:()=>gL,IsLiteralBoolean:()=>uGn,IsLiteralNumber:()=>Bpt,IsLiteralString:()=>qpt,IsLiteralValue:()=>zpt,IsMappedKey:()=>Gpt,IsMappedResult:()=>Vpt,IsNever:()=>Wpt,IsNot:()=>Kpt,IsNull:()=>Ypt,IsNumber:()=>Zpt,IsObject:()=>Jpt,IsOptional:()=>aGn,IsPromise:()=>Xpt,IsProperties:()=>B3,IsReadonly:()=>oGn,IsRecord:()=>Qpt,IsRecursive:()=>lGn,IsRef:()=>$pt,IsRegExp:()=>eht,IsSchema:()=>Xo,IsString:()=>tht,IsSymbol:()=>nht,IsTemplateLiteral:()=>rht,IsThis:()=>iht,IsTransform:()=>sht,IsTuple:()=>oht,IsUint8Array:()=>cht,IsUndefined:()=>aht,IsUnion:()=>The,IsUnionLiteral:()=>dGn,IsUnknown:()=>uht,IsUnsafe:()=>lht,IsVoid:()=>dht,TypeGuardUnknownTypeError:()=>bhe});function Apt(e){try{return new RegExp(e),!0}catch{return!1}}function Ehe(e){if(!Zr(e))return!1;for(let t=0;t=7&&n<=13||n===27||n===127)return!1}return!0}function wpt(e){return _he(e)||Xo(e)}function mL(e){return Hs(e)||cL(e)}function Jr(e){return Hs(e)||Al(e)}function _he(e){return Hs(e)||_g(e)}function xr(e){return Hs(e)||Zr(e)}function iGn(e){return Hs(e)||Zr(e)&&Ehe(e)&&Apt(e)}function sGn(e){return Hs(e)||Zr(e)&&Ehe(e)}function kpt(e){return Hs(e)||Xo(e)}function oGn(e){return Ir(e)&&e[Hf]==="Readonly"}function aGn(e){return Ir(e)&&e[wa]==="Optional"}function Ipt(e){return kn(e,"Any")&&xr(e.$id)}function xpt(e){return kn(e,"Argument")&&Al(e.index)}function Opt(e){return kn(e,"Array")&&e.type==="array"&&xr(e.$id)&&Xo(e.items)&&Jr(e.minItems)&&Jr(e.maxItems)&&_he(e.uniqueItems)&&kpt(e.contains)&&Jr(e.minContains)&&Jr(e.maxContains)}function Ppt(e){return kn(e,"AsyncIterator")&&e.type==="AsyncIterator"&&xr(e.$id)&&Xo(e.items)}function Npt(e){return kn(e,"BigInt")&&e.type==="bigint"&&xr(e.$id)&&mL(e.exclusiveMaximum)&&mL(e.exclusiveMinimum)&&mL(e.maximum)&&mL(e.minimum)&&mL(e.multipleOf)}function Cpt(e){return kn(e,"Boolean")&&e.type==="boolean"&&xr(e.$id)}function Mpt(e){return kn(e,"Computed")&&Zr(e.target)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))}function Dpt(e){return kn(e,"Constructor")&&e.type==="Constructor"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function Lpt(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 Upt(e){return kn(e,"Function")&&e.type==="Function"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function cGn(e){return kn(e,"Import")&&U3(e,"$defs")&&Ir(e.$defs)&&B3(e.$defs)&&U3(e,"$ref")&&Zr(e.$ref)&&e.$ref in e.$defs}function Fpt(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 B3(e){return Ir(e)&&Object.entries(e).every(([t,n])=>Ehe(t)&&Xo(n))}function jpt(e){return kn(e,"Intersect")&&!(Zr(e.type)&&e.type!=="object")&&js(e.allOf)&&e.allOf.every(t=>Xo(t)&&!sht(t))&&xr(e.type)&&(_he(e.unevaluatedProperties)||kpt(e.unevaluatedProperties))&&xr(e.$id)}function Hpt(e){return kn(e,"Iterator")&&e.type==="Iterator"&&xr(e.$id)&&Xo(e.items)}function kn(e,t){return Ir(e)&&Pe in e&&e[Pe]===t}function qpt(e){return gL(e)&&Zr(e.const)}function Bpt(e){return gL(e)&&Al(e.const)}function uGn(e){return gL(e)&&_g(e.const)}function gL(e){return kn(e,"Literal")&&xr(e.$id)&&zpt(e.const)}function zpt(e){return _g(e)||Al(e)||Zr(e)}function Gpt(e){return kn(e,"MappedKey")&&js(e.keys)&&e.keys.every(t=>Al(t)||Zr(t))}function Vpt(e){return kn(e,"MappedResult")&&B3(e.properties)}function Wpt(e){return kn(e,"Never")&&Ir(e.not)&&Object.getOwnPropertyNames(e.not).length===0}function Kpt(e){return kn(e,"Not")&&Xo(e.not)}function Ypt(e){return kn(e,"Null")&&e.type==="null"&&xr(e.$id)}function Zpt(e){return kn(e,"Number")&&e.type==="number"&&xr(e.$id)&&Jr(e.exclusiveMaximum)&&Jr(e.exclusiveMinimum)&&Jr(e.maximum)&&Jr(e.minimum)&&Jr(e.multipleOf)}function Jpt(e){return kn(e,"Object")&&e.type==="object"&&xr(e.$id)&&B3(e.properties)&&wpt(e.additionalProperties)&&Jr(e.minProperties)&&Jr(e.maxProperties)}function Xpt(e){return kn(e,"Promise")&&e.type==="Promise"&&xr(e.$id)&&Xo(e.item)}function Qpt(e){return kn(e,"Record")&&e.type==="object"&&xr(e.$id)&&wpt(e.additionalProperties)&&Ir(e.patternProperties)&&(t=>{let n=Object.getOwnPropertyNames(t.patternProperties);return n.length===1&&Apt(n[0])&&Ir(t.patternProperties)&&Xo(t.patternProperties[n[0]])})(e)}function lGn(e){return Ir(e)&&Ld in e&&e[Ld]==="Recursive"}function $pt(e){return kn(e,"Ref")&&xr(e.$id)&&Zr(e.$ref)}function eht(e){return kn(e,"RegExp")&&xr(e.$id)&&Zr(e.source)&&Zr(e.flags)&&Jr(e.maxLength)&&Jr(e.minLength)}function tht(e){return kn(e,"String")&&e.type==="string"&&xr(e.$id)&&Jr(e.minLength)&&Jr(e.maxLength)&&iGn(e.pattern)&&sGn(e.format)}function nht(e){return kn(e,"Symbol")&&e.type==="symbol"&&xr(e.$id)}function rht(e){return kn(e,"TemplateLiteral")&&e.type==="string"&&Zr(e.pattern)&&e.pattern[0]==="^"&&e.pattern[e.pattern.length-1]==="$"}function iht(e){return kn(e,"This")&&xr(e.$id)&&Zr(e.$ref)}function sht(e){return Ir(e)&&so in e}function oht(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 aht(e){return kn(e,"Undefined")&&e.type==="undefined"&&xr(e.$id)}function dGn(e){return The(e)&&e.anyOf.every(t=>qpt(t)||Bpt(t))}function The(e){return kn(e,"Union")&&xr(e.$id)&&Ir(e)&&js(e.anyOf)&&e.anyOf.every(t=>Xo(t))}function cht(e){return kn(e,"Uint8Array")&&e.type==="Uint8Array"&&xr(e.$id)&&Jr(e.minByteLength)&&Jr(e.maxByteLength)}function uht(e){return kn(e,"Unknown")&&xr(e.$id)}function lht(e){return kn(e,"Unsafe")}function dht(e){return kn(e,"Void")&&e.type==="void"&&xr(e.$id)}function fht(e){return Ir(e)&&Pe in e&&Zr(e[Pe])&&!rGn.includes(e[Pe])}function Xo(e){return Ir(e)&&(Ipt(e)||xpt(e)||Opt(e)||Cpt(e)||Npt(e)||Ppt(e)||Mpt(e)||Dpt(e)||Lpt(e)||Upt(e)||Fpt(e)||jpt(e)||Hpt(e)||gL(e)||Gpt(e)||Vpt(e)||Wpt(e)||Kpt(e)||Ypt(e)||Zpt(e)||Jpt(e)||Xpt(e)||Qpt(e)||$pt(e)||eht(e)||tht(e)||nht(e)||rht(e)||iht(e)||oht(e)||aht(e)||The(e)||cht(e)||uht(e)||lht(e)||dht(e)||fht(e))}var bhe,rGn,pht=v(()=>{Jc();Ut();jh();bhe=class extends Jo{},rGn=["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 vhe=v(()=>{Xn();pht();Jc()});var hht=v(()=>{});var mht=v(()=>{hht()});var Rhe,yL,Ahe,fGn,J7r,Rb,Ab,ght,yht=v(()=>{Rhe="(true|false)",yL="(0|[1-9][0-9]*)",Ahe="(.*)",fGn="(?!.*)",J7r=`^${Rhe}$`,Rb=`^${yL}$`,Ab=`^${Ahe}$`,ght=`^${fGn}$`});var SL=v(()=>{yht()});var Sht=v(()=>{});var bht=v(()=>{});var Eht=v(()=>{Sht();bht()});function _ht(e,t){return e.includes(t)}function Tht(e){return[...new Set(e)]}function mGn(e,t){return e.filter(n=>t.includes(n))}function gGn(e,t){return e.reduce((n,r)=>mGn(n,r),t)}function vht(e){return e.length===1?e[0]:e.length>1?gGn(e.slice(1),e[0]):[]}function Rht(e){let t=[];for(let n of e)t.push(...n);return t}var Aht=v(()=>{});var bL=v(()=>{Aht()});function wb(e){return fe({[Pe]:"Any"},e)}var wht=v(()=>{vg();Ut()});var EL=v(()=>{wht()});function XI(e,t){return fe({[Pe]:"Array",type:"array",items:e},t)}var kht=v(()=>{Nt();Ut()});var _L=v(()=>{kht()});function Iht(e){return fe({[Pe]:"Argument",index:e})}var xht=v(()=>{Nt();Ut()});var whe=v(()=>{xht()});function QI(e,t){return fe({[Pe]:"AsyncIterator",type:"AsyncIterator",items:e},t)}var Oht=v(()=>{Ut();Nt()});var TL=v(()=>{Oht()});function oi(e,t,n){return fe({[Pe]:"Computed",target:e,parameters:t},n)}var Pht=v(()=>{vg();dL()});var kb=v(()=>{Pht()});function yGn(e,t){let{[t]:n,...r}=e;return r}function is(e,t){return t.reduce((n,r)=>yGn(n,r),e)}var z3=v(()=>{});var kg=v(()=>{z3()});function Zn(e){return fe({[Pe]:"Never",not:{}},e)}var Nht=v(()=>{Nt();Ut()});var ka=v(()=>{Nht()});var Cht=v(()=>{});function Qn(e){return fe({[Pe]:"MappedResult",properties:e})}var khe=v(()=>{Nt();Ut()});function $I(e,t,n){return fe({[Pe]:"Constructor",type:"Constructor",parameters:e,returns:t},n)}var Mht=v(()=>{Nt();Ut()});var vL=v(()=>{Mht()});function Hh(e,t,n){return fe({[Pe]:"Function",type:"Function",parameters:e,returns:t},n)}var Dht=v(()=>{Nt();Ut()});var KT=v(()=>{Dht()});function RL(e,t){return fe({[Pe]:"Union",anyOf:e},t)}var Ihe=v(()=>{Nt();Ut()});function SGn(e){return e.some(t=>Bu(t))}function Lht(e){return e.map(t=>Bu(t)?bGn(t):t)}function bGn(e){return is(e,[wa])}function EGn(e,t){return SGn(e)?gc(RL(Lht(e),t)):RL(Lht(e),t)}function qh(e,t){return e.length===1?fe(e[0],t):e.length===0?Zn(t):EGn(e,t)}var Uht=v(()=>{Nt();Ut();kg();ka();Ig();Ihe();Xn()});var Fht=v(()=>{});function Sr(e,t){return e.length===0?Zn(t):e.length===1?fe(e[0],t):RL(e,t)}var jht=v(()=>{ka();Nt();Ihe()});var oo=v(()=>{Uht();Fht();jht()});function _Gn(e){return e.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function xhe(e,t,n){return e[t]===n&&e.charCodeAt(t-1)!==92}function xg(e,t){return xhe(e,t,"(")}function AL(e,t){return xhe(e,t,")")}function Hht(e,t){return xhe(e,t,"|")}function TGn(e){if(!(xg(e,0)&&AL(e,e.length-1)))return!1;let t=0;for(let n=0;n0&&r.push(e0(o)),n=s+1}let i=e.slice(n);return i.length>0&&r.push(e0(i)),r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"or",expr:r}}function kGn(e){function t(i,s){if(!xg(i,s))throw new G3("TemplateLiteralParser: Index must point to open parens");let o=0;for(let a=s;a0&&r.push(e0(a)),i=o-1}return r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"and",expr:r}}function e0(e){return TGn(e)?e0(vGn(e)):RGn(e)?wGn(e):AGn(e)?kGn(e):{type:"const",const:_Gn(e)}}function t0(e){return e0(e.slice(1,e.length-1))}var G3,V3=v(()=>{jh();G3=class extends Jo{}});function IGn(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 xGn(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 OGn(e){return e.type==="const"&&e.const===".*"}function YT(e){return IGn(e)||OGn(e)?!1:xGn(e)?!0:e.type==="and"?e.expr.every(t=>YT(t)):e.type==="or"?e.expr.every(t=>YT(t)):e.type==="const"?!0:(()=>{throw new Ohe("Unknown expression type")})()}function qht(e){let t=t0(e.pattern);return YT(t)}var Ohe,Phe=v(()=>{V3();jh();Ohe=class extends Jo{}});function*Bht(e){if(e.length===1)return yield*e[0];for(let t of e[0])for(let n of Bht(e.slice(1)))yield`${t}${n}`}function*PGn(e){return yield*Bht(e.expr.map(t=>[...wL(t)]))}function*NGn(e){for(let t of e.expr)yield*wL(t)}function*CGn(e){return yield e.const}function*wL(e){return e.type==="and"?yield*PGn(e):e.type==="or"?yield*NGn(e):e.type==="const"?yield*CGn(e):(()=>{throw new Nhe("Unknown expression")})()}function W3(e){let t=t0(e.pattern);return YT(t)?[...wL(t)]:[]}var Nhe,Che=v(()=>{Phe();V3();jh();Nhe=class extends Jo{}});function ur(e,t){return fe({[Pe]:"Literal",const:e,type:typeof e},t)}var zht=v(()=>{Nt();Ut()});var zu=v(()=>{zht()});function K3(e){return fe({[Pe]:"Boolean",type:"boolean"},e)}var Ght=v(()=>{Ut();vg()});var Y3=v(()=>{Ght()});function n0(e){return fe({[Pe]:"BigInt",type:"bigint"},e)}var Vht=v(()=>{Ut();vg()});var kL=v(()=>{Vht()});function Ud(e){return fe({[Pe]:"Number",type:"number"},e)}var Wht=v(()=>{Nt();Ut()});var ZT=v(()=>{Wht()});function Kf(e){return fe({[Pe]:"String",type:"string"},e)}var Kht=v(()=>{Nt();Ut()});var r0=v(()=>{Kht()});function*MGn(e){let t=e.trim().replace(/"|'/g,"");return t==="boolean"?yield K3():t==="number"?yield Ud():t==="bigint"?yield n0():t==="string"?yield Kf():yield(()=>{let n=t.split("|").map(r=>ur(r.trim()));return n.length===0?Zn():n.length===1?n[0]:qh(n)})()}function*DGn(e){if(e[1]!=="{"){let t=ur("$"),n=Mhe(e.slice(1));return yield*[t,...n]}for(let t=2;t{zu();Y3();kL();ZT();r0();oo();ka()});function LGn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Zht(e,t){return Il(e)?e.pattern.slice(1,e.pattern.length-1):Yn(e)?`(${e.anyOf.map(n=>Zht(n,t)).join("|")})`:Wf(e)?`${t}${yL}`:Vf(e)?`${t}${yL}`:zT(e)?`${t}${yL}`:Ag(e)?`${t}${Ahe}`:wl(e)?`${t}${LGn(e.const.toString())}`:Rg(e)?`${t}${Rhe}`:(()=>{throw new Lhe(`Unexpected Kind '${e[Pe]}'`)})()}function Uhe(e){return`^${e.map(t=>Zht(t,"")).join("")}$`}var Lhe,Fhe=v(()=>{SL();Ut();jh();Xn();Lhe=class extends Jo{}});function JT(e){let n=W3(e).map(r=>ur(r));return qh(n)}var Jht=v(()=>{oo();zu();Che()});function Z3(e,t){let n=Zr(e)?Uhe(Yht(e)):Uhe(e);return fe({[Pe]:"TemplateLiteral",type:"string",pattern:n},t)}var Xht=v(()=>{Nt();Dhe();Fhe();Jc();Ut()});var Og=v(()=>{Phe();Che();Dhe();V3();Fhe();Jht();Xht()});function UGn(e){return W3(e).map(n=>n.toString())}function FGn(e){let t=[];for(let n of e)t.push(...Gu(n));return t}function jGn(e){return[e.toString()]}function Gu(e){return[...new Set(Il(e)?UGn(e):Yn(e)?FGn(e.anyOf):wl(e)?jGn(e.const):Wf(e)?["[number]"]:Vf(e)?["[number]"]:[])]}var J3=v(()=>{Og();Xn()});function HGn(e,t,n){let r={};for(let i of Object.getOwnPropertyNames(t))r[i]=Ib(e,Gu(t[i]),n);return r}function qGn(e,t,n){return HGn(e,t.properties,n)}function Qht(e,t,n){let r=qGn(e,t,n);return Qn(r)}var jhe=v(()=>{Ro();J3();Bh()});function emt(e,t){return e.map(n=>tmt(n,t))}function BGn(e){return e.filter(t=>!Tb(t))}function zGn(e,t){return X3(BGn(emt(e,t)))}function GGn(e){return e.some(t=>Tb(t))?[]:e}function VGn(e,t){return qh(GGn(emt(e,t)))}function WGn(e,t){return t in e?e[t]:t==="[number]"?qh(e):Zn()}function KGn(e,t){return t==="[number]"?e:Zn()}function YGn(e,t){return t in e?e[t]:Zn()}function tmt(e,t){return rs(e)?zGn(e.allOf,t):Yn(e)?VGn(e.anyOf,t):xl(e)?WGn(e.items??[],t):qf(e)?KGn(e.items,t):qs(e)?YGn(e.properties,t):Zn()}function Hhe(e,t){return t.map(n=>tmt(e,n))}function $ht(e,t){return qh(Hhe(e,t))}function Ib(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)?Qht(e,t,n):kl(t)?nmt(e,t,n):fe(Ol(t)?$ht(e,Gu(t)):$ht(e,t),n)}var qhe=v(()=>{Nt();jh();kb();ka();Fd();oo();J3();Bhe();jhe();Xn()});function ZGn(e,t,n){return{[t]:Ib(e,[t],vi(n))}}function JGn(e,t,n){return t.reduce((r,i)=>({...r,...ZGn(e,i,n)}),{})}function XGn(e,t,n){return JGn(e,t.keys,n)}function nmt(e,t,n){let r=XGn(e,t,n);return Qn(r)}var Bhe=v(()=>{qhe();Ro();qu()});var Bh=v(()=>{Bhe();jhe();J3();qhe()});function i0(e,t){return fe({[Pe]:"Iterator",type:"Iterator",items:e},t)}var rmt=v(()=>{Nt();Ut()});var IL=v(()=>{rmt()});function QGn(e){return globalThis.Object.keys(e).filter(t=>!Bu(e[t]))}function $Gn(e,t){let n=QGn(e),r=n.length>0?{[Pe]:"Object",type:"object",required:n,properties:e}:{[Pe]:"Object",type:"object",properties:e};return fe(r,t)}var Or,imt=v(()=>{Nt();Ut();Xn();Or=$Gn});var Pl=v(()=>{imt()});function Q3(e,t){return fe({[Pe]:"Promise",type:"Promise",item:e},t)}var smt=v(()=>{Nt();Ut()});var $3=v(()=>{smt()});function e2n(e){return fe(is(e,[Hf]))}function t2n(e){return fe({...e,[Hf]:"Readonly"})}function n2n(e,t){return t===!1?e2n(e):t2n(e)}function Vu(e,t){let n=t??!0;return Ri(e)?omt(e,n):n2n(e,n)}var zhe=v(()=>{Nt();Ut();kg();Ghe();Xn()});function r2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=Vu(e[r],t);return n}function i2n(e,t){return r2n(e.properties,t)}function omt(e,t){let n=i2n(e,t);return Qn(n)}var Ghe=v(()=>{Ro();zhe()});var XT=v(()=>{Ghe();zhe()});function jd(e,t){return fe(e.length>0?{[Pe]:"Tuple",type:"array",items:e,additionalItems:!1,minItems:e.length,maxItems:e.length}:{[Pe]:"Tuple",type:"array",minItems:e.length,maxItems:e.length},t)}var amt=v(()=>{Nt();Ut()});var xb=v(()=>{amt()});function cmt(e,t){return e in t?Hd(e,t[e]):Qn(t)}function s2n(e){return{[e]:ur(e)}}function o2n(e){let t={};for(let n of e)t[n]=ur(n);return t}function a2n(e,t){return _ht(t,e)?s2n(e):o2n(t)}function c2n(e,t){let n=a2n(e,t);return cmt(e,n)}function xL(e,t){return t.map(n=>Hd(e,n))}function u2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(t))n[r]=Hd(e,t[r]);return n}function Hd(e,t){let n={...t};return Bu(t)?gc(Hd(e,is(t,[wa]))):JI(t)?Vu(Hd(e,is(t,[Hf]))):Ri(t)?cmt(e,t.properties):kl(t)?c2n(e,t.keys):zf(t)?$I(xL(e,t.parameters),Hd(e,t.returns),n):Gf(t)?Hh(xL(e,t.parameters),Hd(e,t.returns),n):BT(t)?QI(Hd(e,t.items),n):GT(t)?i0(Hd(e,t.items),n):rs(t)?yc(xL(e,t.allOf),n):Yn(t)?Sr(xL(e,t.anyOf),n):xl(t)?jd(xL(e,t.items??[]),n):qs(t)?Or(u2n(e,t.properties),n):qf(t)?XI(Hd(e,t.items),n):VT(t)?Q3(Hd(e,t.item),n):t}function l2n(e,t){let n={};for(let r of e)n[r]=Hd(r,t);return n}function umt(e,t,n){let r=Ol(e)?Gu(e):e,i=t({[Pe]:"MappedKey",keys:r}),s=l2n(r,i);return Or(s,n)}var lmt=v(()=>{Ut();kg();_L();TL();vL();KT();Bh();Fd();IL();zu();Pl();Ig();$3();XT();xb();oo();bL();khe();Xn()});var Ro=v(()=>{Cht();khe();lmt()});function d2n(e){return fe(is(e,[wa]))}function f2n(e){return fe({...e,[wa]:"Optional"})}function p2n(e,t){return t===!1?d2n(e):f2n(e)}function gc(e,t){let n=t??!0;return Ri(e)?dmt(e,n):p2n(e,n)}var Vhe=v(()=>{Nt();Ut();kg();Whe();Xn()});function h2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=gc(e[r],t);return n}function m2n(e,t){return h2n(e.properties,t)}function dmt(e,t){let n=m2n(e,t);return Qn(n)}var Whe=v(()=>{Ro();Vhe()});var Ig=v(()=>{Whe();Vhe()});function OL(e,t={}){let n=e.every(i=>qs(i)),r=Ol(t.unevaluatedProperties)?{unevaluatedProperties:t.unevaluatedProperties}:{};return fe(t.unevaluatedProperties===!1||Ol(t.unevaluatedProperties)||n?{...r,[Pe]:"Intersect",type:"object",allOf:e}:{...r,[Pe]:"Intersect",allOf:e},t)}var Khe=v(()=>{Nt();Ut();Xn()});function g2n(e){return e.every(t=>Bu(t))}function y2n(e){return is(e,[wa])}function fmt(e){return e.map(t=>Bu(t)?y2n(t):t)}function S2n(e,t){return g2n(e)?gc(OL(fmt(e),t)):OL(fmt(e),t)}function X3(e,t={}){if(e.length===1)return fe(e[0],t);if(e.length===0)return Zn(t);if(e.some(n=>vb(n)))throw new Error("Cannot intersect transform types");return S2n(e,t)}var pmt=v(()=>{Ut();Nt();kg();ka();Ig();Khe();Xn()});var hmt=v(()=>{});function yc(e,t){if(e.length===1)return fe(e[0],t);if(e.length===0)return Zn(t);if(e.some(n=>vb(n)))throw new Error("Cannot intersect transform types");return OL(e,t)}var mmt=v(()=>{Nt();ka();Khe();Xn()});var Fd=v(()=>{pmt();hmt();mmt()});function zh(...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 fe({[Pe]:"Ref",$ref:t},n)}var gmt=v(()=>{jh();Nt();Ut()});var QT=v(()=>{gmt()});function b2n(e,t){return oi("Awaited",[oi(e,t)])}function E2n(e){return oi("Awaited",[zh(e)])}function _2n(e){return yc(ymt(e))}function T2n(e){return Sr(ymt(e))}function v2n(e){return s0(e)}function ymt(e){return e.map(t=>s0(t))}function s0(e,t){return fe(Bf(e)?b2n(e.target,e.parameters):rs(e)?_2n(e.allOf):Yn(e)?T2n(e.anyOf):VT(e)?v2n(e.item):_s(e)?E2n(e.$ref):e,t)}var Smt=v(()=>{Nt();kb();Fd();oo();QT();Xn()});var e9=v(()=>{Smt()});function bmt(e){let t=[];for(let n of e)t.push(PL(n));return t}function R2n(e){let t=bmt(e);return Rht(t)}function A2n(e){let t=bmt(e);return vht(t)}function w2n(e){return e.map((t,n)=>n.toString())}function k2n(e){return["[number]"]}function I2n(e){return globalThis.Object.getOwnPropertyNames(e)}function x2n(e){return O2n?globalThis.Object.getOwnPropertyNames(e).map(n=>n[0]==="^"&&n[n.length-1]==="$"?n.slice(1,n.length-1):n):[]}function PL(e){return rs(e)?R2n(e.allOf):Yn(e)?A2n(e.anyOf):xl(e)?w2n(e.items??[]):qf(e)?k2n(e.items):qs(e)?I2n(e.properties):WT(e)?x2n(e.patternProperties):[]}var O2n,Yhe=v(()=>{bL();Xn();O2n=!1});function P2n(e,t){return oi("KeyOf",[oi(e,t)])}function N2n(e){return oi("KeyOf",[zh(e)])}function C2n(e,t){let n=PL(e),r=M2n(n),i=qh(r);return fe(i,t)}function M2n(e){return e.map(t=>t==="[number]"?Ud():ur(t))}function o0(e,t){return Bf(e)?P2n(e.target,e.parameters):_s(e)?N2n(e.$ref):Ri(e)?Emt(e,t):C2n(e,t)}var Zhe=v(()=>{Nt();zu();ZT();kb();QT();Yhe();oo();Jhe();Xn()});function D2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=o0(e[r],vi(t));return n}function L2n(e,t){return D2n(e.properties,t)}function Emt(e,t){let n=L2n(e,t);return Qn(n)}var Jhe=v(()=>{Ro();Zhe();qu()});var _mt=v(()=>{});var NL=v(()=>{Jhe();_mt();Yhe();Zhe()});function U2n(e){let t=[];for(let n of e)t.push(...PL(n));return Tht(t)}function F2n(e){return e.filter(t=>!Tb(t))}function j2n(e,t){let n=[];for(let r of e)n.push(...Hhe(r,[t]));return F2n(n)}function H2n(e,t){let n={};for(let r of t)n[r]=X3(j2n(e,r));return n}function Tmt(e,t){let n=U2n(e),r=H2n(e,n);return Or(r,t)}var vmt=v(()=>{Fd();Bh();NL();Pl();bL();Xn()});var Xhe=v(()=>{vmt()});function t9(e){return fe({[Pe]:"Date",type:"Date"},e)}var Rmt=v(()=>{Ut();Nt()});var n9=v(()=>{Rmt()});function r9(e){return fe({[Pe]:"Null",type:"null"},e)}var Amt=v(()=>{Nt();Ut()});var i9=v(()=>{Amt()});function s9(e){return fe({[Pe]:"Symbol",type:"symbol"},e)}var wmt=v(()=>{Nt();Ut()});var o9=v(()=>{wmt()});function a9(e){return fe({[Pe]:"Undefined",type:"undefined"},e)}var kmt=v(()=>{Nt();Ut()});var c9=v(()=>{kmt()});function u9(e){return fe({[Pe]:"Uint8Array",type:"Uint8Array"},e)}var Imt=v(()=>{Nt();Ut()});var l9=v(()=>{Imt()});function Ob(e){return fe({[Pe]:"Unknown"},e)}var xmt=v(()=>{Nt();Ut()});var a0=v(()=>{xmt()});function q2n(e){return e.map(t=>Qhe(t,!1))}function B2n(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=Vu(Qhe(e[n],!1));return t}function d9(e,t){return t===!0?e:Vu(e)}function Qhe(e,t){return lhe(e)?d9(wb(),t):fhe(e)?d9(wb(),t):js(e)?Vu(jd(q2n(e))):Tg(e)?u9():qT(e)?t9():Ir(e)?d9(Or(B2n(e)),t):dhe(e)?d9(Hh([],Ob()),t):Hs(e)?a9():phe(e)?r9():hhe(e)?s9():cL(e)?n0():Al(e)?ur(e):_g(e)?ur(e):Zr(e)?ur(e):Or({})}function Omt(e,t){return fe(Qhe(e,!0),t)}var Pmt=v(()=>{EL();kL();n9();KT();zu();i9();Pl();o9();xb();XT();c9();l9();a0();vg();Jc()});var $he=v(()=>{Pmt()});function Nmt(e,t){return zf(e)?jd(e.parameters,t):Zn(t)}var Cmt=v(()=>{xb();ka();Xn()});var eme=v(()=>{Cmt()});function Mmt(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=>ur(s));return Sr(i,{...t,[Ld]:"Enum"})}var Dmt=v(()=>{zu();Ut();oo();Jc()});var tme=v(()=>{Dmt()});function qd(e){return e===pe.False?e:pe.True}function c0(e){throw new rme(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)?Bmt(e,t):X.IsIntersect(t)?f9(e,t):X.IsUnion(t)?ame(e,t):X.IsUnknown(t)?Wmt(e,t):X.IsAny(t)?ome(e,t):c0("StructuralRight")}function ome(e,t){return pe.True}function z2n(e,t){return X.IsIntersect(t)?f9(e,t):X.IsUnion(t)&&t.anyOf.some(n=>X.IsAny(n)||X.IsUnknown(n))?pe.True:X.IsUnion(t)?pe.Union:X.IsUnknown(t)||X.IsAny(t)?pe.True:pe.Union}function G2n(e,t){return X.IsUnknown(e)?pe.False:X.IsAny(e)?pe.Union:X.IsNever(e)?pe.True:pe.False}function V2n(e,t){return X.IsObject(t)&&p9(t)?pe.True:ao(t)?co(e,t):X.IsArray(t)?qd(Pr(e.items,t.items)):pe.False}function W2n(e,t){return ao(t)?co(e,t):X.IsAsyncIterator(t)?qd(Pr(e.items,t.items)):pe.False}function K2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsBigInt(t)?pe.True:pe.False}function Hmt(e,t){return X.IsLiteralBoolean(e)||X.IsBoolean(e)?pe.True:pe.False}function Y2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsBoolean(t)?pe.True:pe.False}function Z2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsConstructor(t)?e.parameters.length>t.parameters.length?pe.False:e.parameters.every((n,r)=>qd(Pr(t.parameters[r],n))===pe.True)?qd(Pr(e.returns,t.returns)):pe.False:pe.False}function J2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsDate(t)?pe.True:pe.False}function X2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsFunction(t)?e.parameters.length>t.parameters.length?pe.False:e.parameters.every((n,r)=>qd(Pr(t.parameters[r],n))===pe.True)?qd(Pr(e.returns,t.returns)):pe.False:pe.False}function qmt(e,t){return X.IsLiteral(e)&&mc.IsNumber(e.const)||X.IsNumber(e)||X.IsInteger(e)?pe.True:pe.False}function Q2n(e,t){return X.IsInteger(t)||X.IsNumber(t)?pe.True:ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):pe.False}function f9(e,t){return t.allOf.every(n=>Pr(e,n)===pe.True)?pe.True:pe.False}function $2n(e,t){return e.allOf.some(n=>Pr(n,t)===pe.True)?pe.True:pe.False}function eVn(e,t){return ao(t)?co(e,t):X.IsIterator(t)?qd(Pr(e.items,t.items)):pe.False}function tVn(e,t){return X.IsLiteral(t)&&t.const===e.const?pe.True:ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsString(t)?Vmt(e,t):X.IsNumber(t)?zmt(e,t):X.IsInteger(t)?qmt(e,t):X.IsBoolean(t)?Hmt(e,t):pe.False}function Bmt(e,t){return pe.False}function nVn(e,t){return pe.True}function Lmt(e){let[t,n]=[e,0];for(;X.IsNot(t);)t=t.not,n+=1;return n%2===0?t:Ob()}function rVn(e,t){return X.IsNot(e)?Pr(Lmt(e),t):X.IsNot(t)?Pr(e,Lmt(t)):c0("Invalid fallthrough for Not")}function iVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsNull(t)?pe.True:pe.False}function zmt(e,t){return X.IsLiteralNumber(e)||X.IsNumber(e)||X.IsInteger(e)?pe.True:pe.False}function sVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsInteger(t)||X.IsNumber(t)?pe.True:pe.False}function Wu(e,t){return Object.getOwnPropertyNames(e.properties).length===t}function Umt(e){return p9(e)}function Fmt(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 nme(e){return Wu(e,0)}function jmt(e){return Wu(e,0)}function oVn(e){return Wu(e,0)}function aVn(e){return Wu(e,0)}function cVn(e){return p9(e)}function uVn(e){let t=Ud();return Wu(e,0)||Wu(e,1)&&"length"in e.properties&&qd(Pr(e.properties.length,t))===pe.True}function lVn(e){return Wu(e,0)}function p9(e){let t=Ud();return Wu(e,0)||Wu(e,1)&&"length"in e.properties&&qd(Pr(e.properties.length,t))===pe.True}function dVn(e){let t=Hh([wb()],wb());return Wu(e,0)||Wu(e,1)&&"then"in e.properties&&qd(Pr(e.properties.then,t))===pe.True}function Gmt(e,t){return Pr(e,t)===pe.False||X.IsOptional(e)&&!X.IsOptional(t)?pe.False:pe.True}function Sc(e,t){return X.IsUnknown(e)?pe.False:X.IsAny(e)?pe.Union:X.IsNever(e)||X.IsLiteralString(e)&&Umt(t)||X.IsLiteralNumber(e)&&nme(t)||X.IsLiteralBoolean(e)&&jmt(t)||X.IsSymbol(e)&&Fmt(t)||X.IsBigInt(e)&&oVn(t)||X.IsString(e)&&Umt(t)||X.IsSymbol(e)&&Fmt(t)||X.IsNumber(e)&&nme(t)||X.IsInteger(e)&&nme(t)||X.IsBoolean(e)&&jmt(t)||X.IsUint8Array(e)&&cVn(t)||X.IsDate(e)&&aVn(t)||X.IsConstructor(e)&&lVn(t)||X.IsFunction(e)&&uVn(t)?pe.True:X.IsRecord(e)&&X.IsString(ime(e))?t[Ld]==="Record"?pe.True:pe.False:X.IsRecord(e)&&X.IsNumber(ime(e))&&Wu(t,0)?pe.True:pe.False}function fVn(e,t){return ao(t)?co(e,t):X.IsRecord(t)?Bd(e,t):X.IsObject(t)?(()=>{for(let n of Object.getOwnPropertyNames(t.properties)){if(!(n in e.properties)&&!X.IsOptional(t.properties[n]))return pe.False;if(X.IsOptional(t.properties[n]))return pe.True;if(Gmt(e.properties[n],t.properties[n])===pe.False)return pe.False}return pe.True})():pe.False}function pVn(e,t){return ao(t)?co(e,t):X.IsObject(t)&&dVn(t)?pe.True:X.IsPromise(t)?qd(Pr(e.item,t.item)):pe.False}function ime(e){return Rb in e.patternProperties?Ud():Ab in e.patternProperties?Kf():c0("Unknown record key pattern")}function sme(e){return Rb in e.patternProperties?e.patternProperties[Rb]:Ab in e.patternProperties?e.patternProperties[Ab]:c0("Unable to get record value schema")}function Bd(e,t){let[n,r]=[ime(t),sme(t)];return X.IsLiteralString(e)&&X.IsNumber(n)&&qd(Pr(e,r))===pe.True?pe.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(Gmt(r,e.properties[i])===pe.False)return pe.False;return pe.True})():pe.False}function hVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Pr(sme(e),sme(t)):pe.False}function mVn(e,t){let n=X.IsRegExp(e)?Kf():e,r=X.IsRegExp(t)?Kf():t;return Pr(n,r)}function Vmt(e,t){return X.IsLiteral(e)&&mc.IsString(e.const)||X.IsString(e)?pe.True:pe.False}function gVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsString(t)?pe.True:pe.False}function yVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsSymbol(t)?pe.True:pe.False}function SVn(e,t){return X.IsTemplateLiteral(e)?Pr(JT(e),t):X.IsTemplateLiteral(t)?Pr(e,JT(t)):c0("Invalid fallthrough for TemplateLiteral")}function bVn(e,t){return X.IsArray(t)&&e.items!==void 0&&e.items.every(n=>Pr(n,t.items)===pe.True)}function EVn(e,t){return X.IsNever(e)?pe.True:X.IsUnknown(e)?pe.False:X.IsAny(e)?pe.Union:pe.False}function _Vn(e,t){return ao(t)?co(e,t):X.IsObject(t)&&p9(t)||X.IsArray(t)&&bVn(e,t)?pe.True:X.IsTuple(t)?mc.IsUndefined(e.items)&&!mc.IsUndefined(t.items)||!mc.IsUndefined(e.items)&&mc.IsUndefined(t.items)?pe.False:mc.IsUndefined(e.items)&&!mc.IsUndefined(t.items)||e.items.every((n,r)=>Pr(n,t.items[r])===pe.True)?pe.True:pe.False:pe.False}function TVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsUint8Array(t)?pe.True:pe.False}function vVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsVoid(t)?wVn(e,t):X.IsUndefined(t)?pe.True:pe.False}function ame(e,t){return t.anyOf.some(n=>Pr(e,n)===pe.True)?pe.True:pe.False}function RVn(e,t){return e.anyOf.every(n=>Pr(n,t)===pe.True)?pe.True:pe.False}function Wmt(e,t){return pe.True}function AVn(e,t){return X.IsNever(t)?Bmt(e,t):X.IsIntersect(t)?f9(e,t):X.IsUnion(t)?ame(e,t):X.IsAny(t)?ome(e,t):X.IsString(t)?Vmt(e,t):X.IsNumber(t)?zmt(e,t):X.IsInteger(t)?qmt(e,t):X.IsBoolean(t)?Hmt(e,t):X.IsArray(t)?G2n(e,t):X.IsTuple(t)?EVn(e,t):X.IsObject(t)?Sc(e,t):X.IsUnknown(t)?pe.True:pe.False}function wVn(e,t){return X.IsUndefined(e)||X.IsUndefined(e)?pe.True:pe.False}function kVn(e,t){return X.IsIntersect(t)?f9(e,t):X.IsUnion(t)?ame(e,t):X.IsUnknown(t)?Wmt(e,t):X.IsAny(t)?ome(e,t):X.IsObject(t)?Sc(e,t):X.IsVoid(t)?pe.True:pe.False}function Pr(e,t){return X.IsTemplateLiteral(e)||X.IsTemplateLiteral(t)?SVn(e,t):X.IsRegExp(e)||X.IsRegExp(t)?mVn(e,t):X.IsNot(e)||X.IsNot(t)?rVn(e,t):X.IsAny(e)?z2n(e,t):X.IsArray(e)?V2n(e,t):X.IsBigInt(e)?K2n(e,t):X.IsBoolean(e)?Y2n(e,t):X.IsAsyncIterator(e)?W2n(e,t):X.IsConstructor(e)?Z2n(e,t):X.IsDate(e)?J2n(e,t):X.IsFunction(e)?X2n(e,t):X.IsInteger(e)?Q2n(e,t):X.IsIntersect(e)?$2n(e,t):X.IsIterator(e)?eVn(e,t):X.IsLiteral(e)?tVn(e,t):X.IsNever(e)?nVn(e,t):X.IsNull(e)?iVn(e,t):X.IsNumber(e)?sVn(e,t):X.IsObject(e)?fVn(e,t):X.IsRecord(e)?hVn(e,t):X.IsString(e)?gVn(e,t):X.IsSymbol(e)?yVn(e,t):X.IsTuple(e)?_Vn(e,t):X.IsPromise(e)?pVn(e,t):X.IsUint8Array(e)?TVn(e,t):X.IsUndefined(e)?vVn(e,t):X.IsUnion(e)?RVn(e,t):X.IsUnknown(e)?AVn(e,t):X.IsVoid(e)?kVn(e,t):c0(`Unknown left type operand '${e[Pe]}'`)}function Pb(e,t){return Pr(e,t)}var rme,pe,cme=v(()=>{EL();KT();ZT();r0();a0();Og();SL();Ut();jh();vhe();rme=class extends Jo{};(function(e){e[e.Union=0]="Union",e[e.True=1]="True",e[e.False=2]="False"})(pe||(pe={}))});function IVn(e,t,n,r,i){let s={};for(let o of globalThis.Object.getOwnPropertyNames(e))s[o]=u0(e[o],t,n,r,vi(i));return s}function xVn(e,t,n,r,i){return IVn(e.properties,t,n,r,i)}function Kmt(e,t,n,r,i){let s=xVn(e,t,n,r,i);return Qn(s)}var ume=v(()=>{Ro();h9();qu()});function OVn(e,t,n,r){let i=Pb(e,t);return i===pe.Union?Sr([n,r]):i===pe.True?n:r}function u0(e,t,n,r,i){return Ri(e)?Kmt(e,t,n,r,i):kl(e)?fe(Ymt(e,t,n,r,i)):fe(OVn(e,t,n,r),i)}var h9=v(()=>{Nt();oo();cme();lme();ume();Xn()});function PVn(e,t,n,r,i){return{[e]:u0(ur(e),t,n,r,vi(i))}}function NVn(e,t,n,r,i){return e.reduce((s,o)=>({...s,...PVn(o,t,n,r,i)}),{})}function CVn(e,t,n,r,i){return NVn(e.keys,t,n,r,i)}function Ymt(e,t,n,r,i){let s=CVn(e,t,n,r,i);return Qn(s)}var lme=v(()=>{Ro();zu();h9();qu()});var Zmt=v(()=>{});var CL=v(()=>{cme();lme();ume();Zmt();h9()});function Jmt(e,t){return l0(JT(e),t)}var dme=v(()=>{m9();Og()});function MVn(e,t){let n=e.filter(r=>Pb(r,t)===pe.False);return n.length===1?n[0]:Sr(n)}function l0(e,t,n={}){return Il(e)?fe(Jmt(e,t),n):Ri(e)?fe(Xmt(e,t),n):fe(Yn(e)?MVn(e.anyOf,t):Pb(e,t)!==pe.False?Zn():e,n)}var m9=v(()=>{Nt();oo();ka();CL();fme();dme();Xn()});function DVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=l0(e[r],t);return n}function LVn(e,t){return DVn(e.properties,t)}function Xmt(e,t){let n=LVn(e,t);return Qn(n)}var fme=v(()=>{Ro();m9()});var pme=v(()=>{fme();dme();m9()});function Qmt(e,t){return d0(JT(e),t)}var hme=v(()=>{g9();Og()});function UVn(e,t){let n=e.filter(r=>Pb(r,t)!==pe.False);return n.length===1?n[0]:Sr(n)}function d0(e,t,n){return Il(e)?fe(Qmt(e,t),n):Ri(e)?fe($mt(e,t),n):fe(Yn(e)?UVn(e.anyOf,t):Pb(e,t)!==pe.False?e:Zn(),n)}var g9=v(()=>{Nt();oo();ka();CL();mme();hme();Xn()});function FVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=d0(e[r],t);return n}function jVn(e,t){return FVn(e.properties,t)}function $mt(e,t){let n=jVn(e,t);return Qn(n)}var mme=v(()=>{Ro();g9()});var gme=v(()=>{mme();hme();g9()});function egt(e,t){return zf(e)?fe(e.returns,t):Zn(t)}var tgt=v(()=>{Nt();ka();Xn()});var yme=v(()=>{tgt()});function y9(e){return Vu(gc(e))}var ngt=v(()=>{XT();Ig()});var S9=v(()=>{ngt()});function $T(e,t,n){return fe({[Pe]:"Record",type:"object",patternProperties:{[e]:t}},n)}function Sme(e,t,n){let r={};for(let i of e)r[i]=t;return Or(r,{...n,[Ld]:"Record"})}function HVn(e,t,n){return qht(e)?Sme(Gu(e),t,n):$T(e.pattern,t,n)}function qVn(e,t,n){return Sme(Gu(Sr(e)),t,n)}function BVn(e,t,n){return Sme([e.toString()],t,n)}function zVn(e,t,n){return $T(e.source,t,n)}function GVn(e,t,n){let r=Hs(e.pattern)?Ab:e.pattern;return $T(r,t,n)}function VVn(e,t,n){return $T(Ab,t,n)}function WVn(e,t,n){return $T(ght,t,n)}function KVn(e,t,n){return Or({true:t,false:t},n)}function YVn(e,t,n){return $T(Rb,t,n)}function ZVn(e,t,n){return $T(Rb,t,n)}function b9(e,t,n={}){return Yn(e)?qVn(e.anyOf,t,n):Il(e)?HVn(e,t,n):wl(e)?BVn(e.const,t,n):Rg(e)?KVn(e,t,n):Vf(e)?YVn(e,t,n):Wf(e)?ZVn(e,t,n):She(e)?zVn(e,t,n):Ag(e)?GVn(e,t,n):ghe(e)?VVn(e,t,n):Tb(e)?WVn(e,t,n):Zn(n)}function E9(e){return globalThis.Object.getOwnPropertyNames(e.patternProperties)[0]}function rgt(e){let t=E9(e);return t===Ab?Kf():t===Rb?Ud():Kf({pattern:t})}function _9(e){return e.patternProperties[E9(e)]}var igt=v(()=>{Nt();Ut();ka();ZT();Pl();r0();oo();Og();SL();Bh();Jc();Xn()});var ML=v(()=>{igt()});function JVn(e,t){return t.parameters=DL(e,t.parameters),t.returns=Yf(e,t.returns),t}function XVn(e,t){return t.parameters=DL(e,t.parameters),t.returns=Yf(e,t.returns),t}function QVn(e,t){return t.allOf=DL(e,t.allOf),t}function $Vn(e,t){return t.anyOf=DL(e,t.anyOf),t}function eWn(e,t){return Hs(t.items)||(t.items=DL(e,t.items)),t}function tWn(e,t){return t.items=Yf(e,t.items),t}function nWn(e,t){return t.items=Yf(e,t.items),t}function rWn(e,t){return t.items=Yf(e,t.items),t}function iWn(e,t){return t.item=Yf(e,t.item),t}function sWn(e,t){let n=uWn(e,t.properties);return{...t,...Or(n)}}function oWn(e,t){let n=Yf(e,rgt(t)),r=Yf(e,_9(t)),i=b9(n,r);return{...t,...i}}function aWn(e,t){return t.index in e?e[t.index]:Ob()}function cWn(e,t){let n=JI(t),r=Bu(t),i=Yf(e,t);return n&&r?y9(i):n&&!r?Vu(i):!n&&r?gc(i):i}function uWn(e,t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:cWn(e,t[r])}),{})}function DL(e,t){return t.map(n=>Yf(e,n))}function Yf(e,t){return zf(t)?JVn(e,t):Gf(t)?XVn(e,t):rs(t)?QVn(e,t):Yn(t)?$Vn(e,t):xl(t)?eWn(e,t):qf(t)?tWn(e,t):BT(t)?nWn(e,t):GT(t)?rWn(e,t):VT(t)?iWn(e,t):qs(t)?sWn(e,t):WT(t)?oWn(e,t):yhe(t)?aWn(e,t):t}function sgt(e,t){return Yf(t,ZI(e))}var ogt=v(()=>{j3();a0();S9();XT();Ig();Pl();ML();Jc();Xn()});var bme=v(()=>{ogt()});function agt(e){return fe({[Pe]:"Integer",type:"integer"},e)}var cgt=v(()=>{Nt();Ut()});var Eme=v(()=>{cgt()});function lWn(e,t,n){return{[e]:Zf(ur(e),t,vi(n))}}function dWn(e,t,n){return e.reduce((i,s)=>({...i,...lWn(s,t,n)}),{})}function fWn(e,t,n){return dWn(e.keys,t,n)}function ugt(e,t,n){let r=fWn(e,t,n);return Qn(r)}var _me=v(()=>{Ro();ev();zu();qu()});function pWn(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toLowerCase(),n].join("")}function hWn(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toUpperCase(),n].join("")}function mWn(e){return e.toUpperCase()}function gWn(e){return e.toLowerCase()}function yWn(e,t,n){let r=t0(e.pattern);if(!YT(r))return{...e,pattern:lgt(e.pattern,t)};let o=[...wL(r)].map(u=>ur(u)),a=dgt(o,t),c=Sr(a);return Z3([c],n)}function lgt(e,t){return typeof e=="string"?t==="Uncapitalize"?pWn(e):t==="Capitalize"?hWn(e):t==="Uppercase"?mWn(e):t==="Lowercase"?gWn(e):e:e.toString()}function dgt(e,t){return e.map(n=>Zf(n,t))}function Zf(e,t,n={}){return kl(e)?ugt(e,t,n):Il(e)?yWn(e,t,n):Yn(e)?Sr(dgt(e.anyOf,t),n):wl(e)?ur(lgt(e.const,t),n):fe(e,n)}var ev=v(()=>{Nt();Og();_me();zu();oo();Xn()});function fgt(e,t={}){return Zf(e,"Capitalize",t)}var pgt=v(()=>{ev()});function hgt(e,t={}){return Zf(e,"Lowercase",t)}var mgt=v(()=>{ev()});function ggt(e,t={}){return Zf(e,"Uncapitalize",t)}var ygt=v(()=>{ev()});function Sgt(e,t={}){return Zf(e,"Uppercase",t)}var bgt=v(()=>{ev()});var Tme=v(()=>{pgt();_me();ev();mgt();ygt();bgt()});function SWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Nb(e[i],t,vi(n));return r}function bWn(e,t,n){return SWn(e.properties,t,n)}function Egt(e,t,n){let r=bWn(e,t,n);return Qn(r)}var vme=v(()=>{Ro();T9();qu()});function EWn(e,t){return e.map(n=>Rme(n,t))}function _Wn(e,t){return e.map(n=>Rme(n,t))}function TWn(e,t){let{[t]:n,...r}=e;return r}function vWn(e,t){return t.reduce((n,r)=>TWn(n,r),e)}function RWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=vWn(n,t);return Or(i,r)}function AWn(e){let t=e.reduce((n,r)=>q3(r)?[...n,ur(r)]:n,[]);return Sr(t)}function Rme(e,t){return rs(e)?yc(EWn(e.allOf,t)):Yn(e)?Sr(_Wn(e.anyOf,t)):qs(e)?RWn(e,t,e.properties):Or({})}function Nb(e,t,n){let r=js(t)?AWn(t):t,i=Ol(t)?Gu(t):t,s=_s(e),o=_s(t);return Ri(e)?Egt(e,i,n):kl(t)?_gt(e,t,n):s&&o?oi("Omit",[e,r],n):!s&&o?oi("Omit",[e,r],n):s&&!o?oi("Omit",[e,r],n):fe({...Rme(e,i),...n})}var T9=v(()=>{Nt();z3();dL();kb();zu();Bh();Fd();oo();Pl();Ame();vme();Xn();Jc()});function wWn(e,t,n){return{[t]:Nb(e,[t],vi(n))}}function kWn(e,t,n){return t.reduce((r,i)=>({...r,...wWn(e,i,n)}),{})}function IWn(e,t,n){return kWn(e,t.keys,n)}function _gt(e,t,n){let r=IWn(e,t,n);return Qn(r)}var Ame=v(()=>{Ro();T9();qu()});var v9=v(()=>{Ame();vme();T9()});function xWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Cb(e[i],t,vi(n));return r}function OWn(e,t,n){return xWn(e.properties,t,n)}function Tgt(e,t,n){let r=OWn(e,t,n);return Qn(r)}var wme=v(()=>{Ro();R9();qu()});function PWn(e,t){return e.map(n=>kme(n,t))}function NWn(e,t){return e.map(n=>kme(n,t))}function CWn(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function MWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=CWn(n,t);return Or(i,r)}function DWn(e){let t=e.reduce((n,r)=>q3(r)?[...n,ur(r)]:n,[]);return Sr(t)}function kme(e,t){return rs(e)?yc(PWn(e.allOf,t)):Yn(e)?Sr(NWn(e.anyOf,t)):qs(e)?MWn(e,t,e.properties):Or({})}function Cb(e,t,n){let r=js(t)?DWn(t):t,i=Ol(t)?Gu(t):t,s=_s(e),o=_s(t);return Ri(e)?Tgt(e,i,n):kl(t)?vgt(e,t,n):s&&o?oi("Pick",[e,r],n):!s&&o?oi("Pick",[e,r],n):s&&!o?oi("Pick",[e,r],n):fe({...kme(e,i),...n})}var R9=v(()=>{Nt();z3();kb();Fd();zu();Pl();oo();Bh();dL();Xn();Jc();Ime();wme()});function LWn(e,t,n){return{[t]:Cb(e,[t],vi(n))}}function UWn(e,t,n){return t.reduce((r,i)=>({...r,...LWn(e,i,n)}),{})}function FWn(e,t,n){return UWn(e,t.keys,n)}function vgt(e,t,n){let r=FWn(e,t,n);return Qn(r)}var Ime=v(()=>{Ro();R9();qu()});var A9=v(()=>{Ime();wme();R9()});function jWn(e,t){return oi("Partial",[oi(e,t)])}function HWn(e){return oi("Partial",[zh(e)])}function qWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=gc(e[n]);return t}function BWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=qWn(t);return Or(r,n)}function Rgt(e){return e.map(t=>Agt(t))}function Agt(e){return Bf(e)?jWn(e.target,e.parameters):_s(e)?HWn(e.$ref):rs(e)?yc(Rgt(e.allOf)):Yn(e)?Sr(Rgt(e.anyOf)):qs(e)?BWn(e,e.properties):zT(e)||Rg(e)||Vf(e)||wl(e)||fL(e)||Wf(e)||Ag(e)||pL(e)||hL(e)?e:Or({})}function f0(e,t){return Ri(e)?wgt(e,t):fe({...Agt(e),...t})}var xme=v(()=>{Nt();kb();Ig();Pl();Fd();oo();QT();kg();Ut();Ome();Xn()});function zWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=f0(e[r],vi(t));return n}function GWn(e,t){return zWn(e.properties,t)}function wgt(e,t){let n=GWn(e,t);return Qn(n)}var Ome=v(()=>{Ro();xme();qu()});var w9=v(()=>{Ome();xme()});function VWn(e,t){return oi("Required",[oi(e,t)])}function WWn(e){return oi("Required",[zh(e)])}function KWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=is(e[n],[wa]);return t}function YWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=KWn(t);return Or(r,n)}function kgt(e){return e.map(t=>Igt(t))}function Igt(e){return Bf(e)?VWn(e.target,e.parameters):_s(e)?WWn(e.$ref):rs(e)?yc(kgt(e.allOf)):Yn(e)?Sr(kgt(e.anyOf)):qs(e)?YWn(e,e.properties):zT(e)||Rg(e)||Vf(e)||wl(e)||fL(e)||Wf(e)||Ag(e)||pL(e)||hL(e)?e:Or({})}function p0(e,t){return Ri(e)?xgt(e,t):fe({...Igt(e),...t})}var Pme=v(()=>{Nt();kb();Pl();Fd();oo();QT();Ut();kg();Nme();Xn()});function ZWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=p0(e[r],t);return n}function JWn(e,t){return ZWn(e.properties,t)}function xgt(e,t){let n=JWn(e,t);return Qn(n)}var Nme=v(()=>{Ro();Pme()});var k9=v(()=>{Nme();Pme()});function XWn(e,t){return t.map(n=>_s(n)?Cme(e,n.$ref):Nl(e,n))}function Cme(e,t){return t in e?_s(e[t])?Cme(e,e[t].$ref):Nl(e,e[t]):Zn()}function QWn(e){return s0(e[0])}function $Wn(e){return Ib(e[0],e[1])}function e4n(e){return o0(e[0])}function t4n(e){return f0(e[0])}function n4n(e){return Nb(e[0],e[1])}function r4n(e){return Cb(e[0],e[1])}function i4n(e){return p0(e[0])}function s4n(e,t,n){let r=XWn(e,n);return t==="Awaited"?QWn(r):t==="Index"?$Wn(r):t==="KeyOf"?e4n(r):t==="Partial"?t4n(r):t==="Omit"?n4n(r):t==="Pick"?r4n(r):t==="Required"?i4n(r):Zn()}function o4n(e,t){return XI(Nl(e,t))}function a4n(e,t){return QI(Nl(e,t))}function c4n(e,t,n){return $I(LL(e,t),Nl(e,n))}function u4n(e,t,n){return Hh(LL(e,t),Nl(e,n))}function l4n(e,t){return yc(LL(e,t))}function d4n(e,t){return i0(Nl(e,t))}function f4n(e,t){return Or(globalThis.Object.keys(t).reduce((n,r)=>({...n,[r]:Nl(e,t[r])}),{}))}function p4n(e,t){let[n,r]=[Nl(e,_9(t)),E9(t)],i=ZI(t);return i.patternProperties[r]=n,i}function h4n(e,t){return _s(t)?{...Cme(e,t.$ref),[so]:t[so]}:t}function m4n(e,t){return jd(LL(e,t))}function g4n(e,t){return Sr(LL(e,t))}function LL(e,t){return t.map(n=>Nl(e,n))}function Nl(e,t){return Bu(t)?fe(Nl(e,is(t,[wa])),t):JI(t)?fe(Nl(e,is(t,[Hf])),t):vb(t)?fe(h4n(e,t),t):qf(t)?fe(o4n(e,t.items),t):BT(t)?fe(a4n(e,t.items),t):Bf(t)?fe(s4n(e,t.target,t.parameters)):zf(t)?fe(c4n(e,t.parameters,t.returns),t):Gf(t)?fe(u4n(e,t.parameters,t.returns),t):rs(t)?fe(l4n(e,t.allOf),t):GT(t)?fe(d4n(e,t.items),t):qs(t)?fe(f4n(e,t.properties),t):WT(t)?fe(p4n(e,t)):xl(t)?fe(m4n(e,t.items||[]),t):Yn(t)?fe(g4n(e,t.anyOf),t):t}function y4n(e,t){return t in e?Nl(e,e[t]):Zn()}function Ogt(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:y4n(e,n)}),{})}var Pgt=v(()=>{vg();mhe();kg();_L();e9();TL();vL();Bh();KT();Fd();IL();NL();Pl();v9();A9();ka();w9();ML();k9();xb();oo();Ut();Xn()});function Ngt(e){return new Mme(e)}var Mme,Cgt=v(()=>{vg();Ut();Pgt();Mme=class{constructor(t){let n=Ogt(t),r=this.WithIdentifiers(n);this.$defs=r}Import(t,n){let r={...this.$defs,[t]:fe(this.$defs[t],n)};return fe({[Pe]:"Import",$defs:r,$ref:t})}WithIdentifiers(t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:{...t[r],$id:r}}),{})}}});var Dme=v(()=>{Cgt()});function Mgt(e,t){return fe({[Pe]:"Not",not:e},t)}var Dgt=v(()=>{Nt();Ut()});var Lme=v(()=>{Dgt()});function Lgt(e,t){return Gf(e)?jd(e.parameters,t):Zn()}var Ugt=v(()=>{xb();ka();Xn()});var Ume=v(()=>{Ugt()});function Fgt(e,t={}){Hs(t.$id)&&(t.$id=`T${S4n++}`);let n=ZI(e({[Pe]:"This",$ref:`${t.$id}`}));return n.$id=t.$id,fe({[Ld]:"Recursive",...n},t)}var S4n,jgt=v(()=>{j3();Nt();Jc();Ut();S4n=0});var Fme=v(()=>{jgt()});function Hgt(e,t){let n=Zr(e)?new globalThis.RegExp(e):e;return fe({[Pe]:"RegExp",type:"RegExp",source:n.source,flags:n.flags},t)}var qgt=v(()=>{Nt();Jc();Ut()});var jme=v(()=>{qgt()});function b4n(e){return rs(e)?e.allOf:Yn(e)?e.anyOf:xl(e)?e.items??[]:[]}function Bgt(e){return b4n(e)}var zgt=v(()=>{Xn()});var Hme=v(()=>{zgt()});function Ggt(e,t){return Gf(e)?fe(e.returns,t):Zn(t)}var Vgt=v(()=>{Nt();ka();Xn()});var qme=v(()=>{Vgt()});var Wgt=v(()=>{});var Kgt=v(()=>{});var Ygt=v(()=>{Wgt();Kgt()});var Zgt=v(()=>{});var Jgt=v(()=>{Zgt()});function Xgt(e){return new Bme(e)}var Bme,zme,Qgt=v(()=>{Ut();Xn();Bme=class{constructor(t){this.schema=t}Decode(t){return new zme(this.schema,t)}},zme=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 vb(this.schema)?this.EncodeTransform(t,this.schema):this.EncodeSchema(t,this.schema)}}});var Gme=v(()=>{Qgt()});function $gt(e={}){return fe({[Pe]:e[Pe]??"Unsafe"},e)}var eyt=v(()=>{Nt();Ut()});var Vme=v(()=>{eyt()});function tyt(e){return fe({[Pe]:"Void",type:"void"},e)}var nyt=v(()=>{Nt();Ut()});var Wme=v(()=>{nyt()});var Kme={};Ar(Kme,{Any:()=>wb,Argument:()=>Iht,Array:()=>XI,AsyncIterator:()=>QI,Awaited:()=>s0,BigInt:()=>n0,Boolean:()=>K3,Capitalize:()=>fgt,Composite:()=>Tmt,Const:()=>Omt,Constructor:()=>$I,ConstructorParameters:()=>Nmt,Date:()=>t9,Enum:()=>Mmt,Exclude:()=>l0,Extends:()=>u0,Extract:()=>d0,Function:()=>Hh,Index:()=>Ib,InstanceType:()=>egt,Instantiate:()=>sgt,Integer:()=>agt,Intersect:()=>yc,Iterator:()=>i0,KeyOf:()=>o0,Literal:()=>ur,Lowercase:()=>hgt,Mapped:()=>umt,Module:()=>Ngt,Never:()=>Zn,Not:()=>Mgt,Null:()=>r9,Number:()=>Ud,Object:()=>Or,Omit:()=>Nb,Optional:()=>gc,Parameters:()=>Lgt,Partial:()=>f0,Pick:()=>Cb,Promise:()=>Q3,Readonly:()=>Vu,ReadonlyOptional:()=>y9,Record:()=>b9,Recursive:()=>Fgt,Ref:()=>zh,RegExp:()=>Hgt,Required:()=>p0,Rest:()=>Bgt,ReturnType:()=>Ggt,String:()=>Kf,Symbol:()=>s9,TemplateLiteral:()=>Z3,Transform:()=>Xgt,Tuple:()=>jd,Uint8Array:()=>u9,Uncapitalize:()=>ggt,Undefined:()=>a9,Union:()=>Sr,Unknown:()=>Ob,Unsafe:()=>$gt,Uppercase:()=>Sgt,Void:()=>tyt});var ryt=v(()=>{EL();whe();_L();TL();e9();kL();Y3();Xhe();$he();vL();eme();n9();tme();pme();CL();gme();KT();Bh();yme();bme();Eme();Fd();Tme();IL();NL();zu();Ro();Dme();ka();Lme();i9();ZT();Pl();v9();Ig();Ume();w9();A9();$3();XT();S9();ML();Fme();QT();jme();k9();Hme();qme();r0();o9();Og();Gme();xb();l9();c9();oo();a0();Vme();Wme()});var I,iyt=v(()=>{ryt();I=Kme});var Ao=v(()=>{mhe();vg();jh();vhe();mht();SL();Eht();bL();Ut();EL();_L();whe();TL();e9();kL();Y3();Xhe();$he();vL();eme();n9();tme();pme();CL();gme();KT();Bh();yme();bme();Eme();Fd();IL();Tme();NL();zu();Dme();Ro();ka();Lme();i9();ZT();Pl();v9();Ig();Ume();w9();A9();$3();XT();S9();ML();Fme();QT();jme();k9();Hme();qme();Ygt();Jgt();r0();o9();Og();Gme();xb();l9();c9();oo();a0();Vme();Wme();iyt()});var E4n,Yme,Zme=v(()=>{"use strict";Ao();E4n=I.Object({at:I.String({description:"ISO 8601 timestamp the spec review was signed. Drift sweep walks `git log --since=` against the unit spec to detect out-of-band edits."}),migrated:I.Optional(I.Boolean({description:"True when synthesized by the v0\u2192v4 migrator from legacy state. Real reviews omit this field."}))},{additionalProperties:!1}),Yme=I.Object({at:I.String({description:"ISO 8601 timestamp the approval was signed. Drift sweep walks `git log --since=` against declared output paths to detect out-of-band edits."}),migrated:I.Optional(I.Boolean({description:"True when synthesized by the v0\u2192v4 migrator from a legacy `status: completed` unit. Real approvals omit this field."}))},{additionalProperties:!1})});var syt,He,Ia=v(()=>{"use strict";syt=Re(V_(),1),He=new syt.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 oyt(){let e=(process.env.HAIKU_FIX_SEVERITY_THRESHOLD||"high").trim().toLowerCase();return UL.includes(e)?Xc(e):Xc("high")}function h0(e){return typeof e!="string"||e.length===0?!0:Xc(e)<=oyt()}var I9,UL,ayt,cyt,_4n,T4n,v4n,R4n,x9,Jme,A4n,zli,FL,jL,uyt=v(()=>{"use strict";Ao();Ia();I9=["adversarial-review","studio-review","engine-review","drift","discovery","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],UL=["blocker","high","medium","low"];ayt="^(?:FB-)?\\d+$",cyt=["iterations","closed_at"],_4n=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}),T4n=I.Object({text:I.String({minLength:1}),at:I.String()},{additionalProperties:!1}),v4n=I.Object({title:I.Optional(I.String({minLength:1,maxLength:120})),origin:I.Optional(I.String({enum:[...I9]})),severity:I.Optional(I.String({enum:[...UL]})),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(_4n),closure_reply:I.Optional(T4n),closure_reply_unread:I.Optional(I.Boolean())},{propertyNames:{not:{enum:[...cyt]}},additionalProperties:!0}),R4n=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}),x9=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:[...UL],description:`How urgent the finding is. REQUIRED \u2014 classify as you file. One of: ${UL.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:[...I9],description:`Source of the feedback. One of: ${I9.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(R4n),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}),Jme=He.compile(x9),A4n=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String()),feedback_id:I.String({pattern:ayt}),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}),zli=He.compile(A4n),FL=cyt,jL=["title","origin","severity","author","author_type","created_at","source_ref","attachment","inline_anchor","targets"]});var m0,Xme,O9,Qme,P9,$me,lyt=v(()=>{"use strict";Ao();Ia();m0=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}),Xme=He.compile(m0),O9=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}),Qme=He.compile(O9),P9=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}),$me=He.compile(P9)});var HL,g0,ege,dyt=v(()=>{"use strict";Ao();Ia();HL=["force_stage_complete","set_intent_field","reset_drift","mutate_feedback","set_unit_iterations","preview_cursor"],g0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),op:I.String({enum:[...HL],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}),ege=He.compile(g0)});var y0,tge,fyt=v(()=>{"use strict";Ao();Ia();y0=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}),tge=He.compile(y0)});var Gh,Pg,N9,nge,C9,rge,M9,ige,D9,sge,L9,oge,U9,age,F9,cge,j9,uge,H9,lge,q9,dge,pyt=v(()=>{"use strict";Ao();Ia();Gh=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."})},N9=I.Object({...Pg,state_file:Gh},{additionalProperties:!1}),nge=He.compile(N9),C9=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:Gh},{additionalProperties:!1}),rge=He.compile(C9),M9=I.Object({...Pg,reason:I.String({minLength:1,description:"Explanation for why this feedback is being rejected"}),state_file:Gh},{additionalProperties:!1}),ige=He.compile(M9),D9=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:Gh},{additionalProperties:!1}),sge=He.compile(D9),L9=I.Object({...Pg,state_file:Gh},{additionalProperties:!1}),oge=He.compile(L9),U9=I.Object({...Pg,body:I.String({description:"Full markdown body to write. Replaces the prior body entirely."}),state_file:Gh},{additionalProperties:!1}),age=He.compile(U9),F9=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:Gh},{additionalProperties:!1}),cge=He.compile(F9),j9=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:Gh},{additionalProperties:!1}),uge=He.compile(j9),H9=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:Gh},{additionalProperties:!1}),lge=He.compile(H9),q9=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:Gh},{additionalProperties:!1}),dge=He.compile(q9)});var B9,qL,z9,fge,G9,pge,V9,hge,hyt=v(()=>{"use strict";Ao();Ia();B9=I.Optional(I.String()),qL=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:B9},{additionalProperties:!1}),z9=I.Object({slug:I.String({minLength:1,description:"Intent slug"}),field:I.String({minLength:1,description:"Frontmatter field name to read"}),state_file:B9},{additionalProperties:!1}),fge=He.compile(z9),G9=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:B9},{additionalProperties:!1}),pge=He.compile(G9),V9=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:B9},{additionalProperties:!1}),hge=He.compile(V9)});var wo,myt,W9,mge,K9,gge,Y9,yge,Z9,Sge,BL,zL,J9,bge,X9,Ege,Q9,_ge,$9,Tge,eY,vge,tY,Rge,nY,Age,rY,wge,iY,kge,sY,Ige,oY,xge,S0,Oge,aY,Pge,cY,Nge,uY,Cge,gyt=v(()=>{"use strict";Ao();Ia();wo=I.Optional(I.String()),myt=I.Object({state_file:wo},{additionalProperties:!1}),W9=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}),mge=He.compile(W9),K9=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}),gge=He.compile(K9),Y9=I.Object({intent:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),yge=He.compile(Y9),Z9=I.Object({intent:I.String({minLength:1}),name:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),Sge=He.compile(Z9),BL=myt,zL=He.compile(myt),J9=I.Object({studio:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),bge=He.compile(J9),X9=I.Object({studio:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),Ege=He.compile(X9),Q9=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}),_ge=He.compile(Q9),$9=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}),Tge=He.compile($9),eY=I.Object({studio:I.Optional(I.String({description:"Optional: filter to a specific studio"})),state_file:wo},{additionalProperties:!1}),vge=He.compile(eY),tY=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}),Rge=He.compile(tY),nY=I.Object({intent:I.Optional(I.String({description:"Optional: intent slug for context"})),state_file:wo},{additionalProperties:!1}),Age=He.compile(nY),rY=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}),wge=He.compile(rY),iY=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}),kge=He.compile(iY),sY=I.Object({action:I.Optional(I.String({enum:["list","plant","check"],description:"Defaults to `list`."})),state_file:wo},{additionalProperties:!1}),Ige=He.compile(sY),oY=I.Object({version:I.Optional(I.String({description:"Optional: specific version to extract (e.g. '1.2.0')"})),state_file:wo},{additionalProperties:!1}),xge=He.compile(oY),S0=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}),Oge=He.compile(S0),aY=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}),Pge=He.compile(aY),cY=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}),Nge=He.compile(cY),uY=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by `haiku_view`."}),state_file:wo},{additionalProperties:!1}),Cge=He.compile(uY)});var b0,Mge,yyt=v(()=>{"use strict";Ao();Ia();b0=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}),Mge=He.compile(b0)});var E0,Dge,_0,Lge,T0,Uge,v0,Fge,Syt=v(()=>{"use strict";Ao();Ia();E0=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}),Dge=He.compile(E0),_0=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}),Lge=He.compile(_0),T0=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}),Uge=He.compile(T0),v0=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}),Fge=He.compile(v0)});var byt,R0,jge,A0,Hge,w0,qge,lY,Bge,dY,zge,k0,Gge,Eyt=v(()=>{"use strict";Ao();Ia();byt=I.Optional(I.String()),R0=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}),jge=He.compile(R0),A0=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}),Hge=He.compile(A0),w0=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}),qge=He.compile(w0),lY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),field:I.String({minLength:1}),state_file:byt},{additionalProperties:!1}),Bge=He.compile(lY),dY=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:byt},{additionalProperties:!1}),zge=He.compile(dY),k0=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}),Gge=He.compile(k0)});var fY,Vge,pY,Wge,hY,Kge,mY,Yge,gY,Zge,yY,Jge,SY,Xge,_yt=v(()=>{"use strict";Ao();Ia();fY=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}),Vge=He.compile(fY),pY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"})},{additionalProperties:!1}),Wge=He.compile(pY),hY=I.Object({intent:I.String({minLength:1,description:"Intent slug"})},{additionalProperties:!1}),Kge=He.compile(hY),mY=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}),Yge=He.compile(mY),gY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),template:I.String({minLength:1,description:"Discovery template name (no .md extension)"})},{additionalProperties:!1}),Zge=He.compile(gY),yY=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}),Jge=He.compile(yY),SY=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}),Xge=He.compile(SY)});var bY,Mb,EY,Qge,_Y,$ge,TY,eye,tye,vY,nye,RY,rye,AY,iye,wY,sye,kY,oye,IY,aye,I0,cye,Tyt=v(()=>{"use strict";Ao();Ia();bY={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."})},Mb=I.Optional(I.String()),EY=I.Object({...bY,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:Mb},{additionalProperties:!1}),Qge=He.compile(EY),_Y=I.Object({...bY,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}),$ge=He.compile(_Y),TY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:Mb},{additionalProperties:!1}),eye=He.compile(TY),tye=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."})),vY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:tye,state_file:Mb},{additionalProperties:!1}),nye=He.compile(vY),RY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:tye,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:Mb},{additionalProperties:!1}),rye=He.compile(RY),AY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:tye,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:Mb},{additionalProperties:!1}),iye=He.compile(AY),wY=I.Object({...bY,state_file:Mb},{additionalProperties:!1}),sye=He.compile(wY),kY=I.Object({...bY,state_file:Mb},{additionalProperties:!1}),oye=He.compile(kY),IY=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:Mb},{additionalProperties:!1}),aye=He.compile(IY),I0=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}),cye=He.compile(I0)});var uye,w4n,xY,k4n,GL,x0,I4n,tv,nv,OY,lye=v(()=>{"use strict";Ao();Ia();Zme();uye=["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"],w4n=["draft","ready","failed"],xY=["continuous","discrete","autopilot","discrete-hybrid","quick"],k4n=I.Record(I.String(),I.Union([Yme,I.Null()])),GL=I.Object({title:I.Optional(I.String({minLength:1})),description:I.Optional(I.String()),mode:I.Optional(I.String({enum:[...xY]})),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:[...w4n]})),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:[...uye]}},additionalProperties:!0}),x0=He.compile(GL),I4n=new Set(uye),tv=Object.keys(GL.properties??{}).filter(e=>!I4n.has(e)),nv=uye,OY=["studio","plugin_version","follows"]});var x4n,vyt=v(()=>{"use strict";Ao();x4n=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 dye,fye,Ryt=v(()=>{"use strict";Ao();dye=I.Object({error:I.String({description:"Stable named error code."}),message:I.String({description:"Human-readable remediation guidance."})},{additionalProperties:!0}),fye=I.Object({ok:I.Literal(!0),message:I.String()},{additionalProperties:!0})});var PY,pye,Ayt=v(()=>{"use strict";Ao();PY=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}),pye=Object.keys(PY.properties??{})});var kyt,wyt,rv,Ng,Db,Jf,Iyt=v(()=>{"use strict";Ao();Ia();kyt=["started_at","iterations","reviews","approvals","quality_gates_env_blocked"],wyt="^[^\\s:,]+(?:/[^\\s:,]+)*$",rv=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:wyt}),{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:wyt}),{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:[...kyt]}},additionalProperties:!0}),Ng=He.compile(rv),Db=Object.keys(rv.properties??{}),Jf=kyt});var Hi=v(()=>{"use strict";Zme();uyt();lyt();dyt();fyt();pyt();hyt();gyt();yyt();Syt();Eyt();_yt();Tyt();lye();vyt();Ryt();Ayt();Iyt()});var Pyt={};Ar(Pyt,{DIR_INVENTORY_SKIP:()=>MY,bodyMatchesStoredHash:()=>VL,bodySha256:()=>Cg,buildApprovalRecord:()=>zd,buildOutputWitnesses:()=>N4n,buildReviewRecord:()=>Cl,fileSha256:()=>O0,isTextBodyExtension:()=>CY,normalizeInputPath:()=>WL,outputSha256:()=>Lb,resolveInputWitnesses:()=>DY});import{createHash as NY}from"node:crypto";import{existsSync as iv,readdirSync as O4n,readFileSync as hye,statSync as xyt}from"node:fs";import{join as sv}from"node:path";function Cg(e){if(!iv(e))return"";let t=hye(e,"utf8"),n=t;try{n=(0,mye.default)(t).content}catch{n=t}return n.endsWith(` `)||(n=`${n} -`),NY("sha256").update(n,"utf8").digest("hex")}function O0(e){if(!iv(e))return"";let t=fye(e);return NY("sha256").update(t).digest("hex")}function VL(e,t){if(!iv(e))return!0;let n=Cg(e);if(n&&n===t)return!0;let r=fye(e,"utf8"),i=r;try{i=(0,pye.default)(r).content}catch{i=r}if(NY("sha256").update(i,"utf8").digest("hex")===t)return!0;let o=i.endsWith(` -`)?i.slice(0,-1):i;return o===i?!1:NY("sha256").update(o,"utf8").digest("hex")===t}function Lb(e){return iv(e)?CY(e)?Cg(e):O0(e):""}function CY(e){let t=e.slice(e.lastIndexOf(".")).toLowerCase();return O4n.has(t)}function P4n(e,t,n){let r={},i=n??xyt(e);for(let s of t){let o=s.startsWith("stages/")?sv(e,s):sv(i,s),a=Lb(o);a&&(r[s]=a)}return r}function xyt(e){return sv(e,"..","..","..")}function WL(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 N4n(e){let t={},n=[];try{n=x4n(e)}catch{return t}for(let r of n){if(r.startsWith(".")||MY.has(r))continue;let i=sv(e,r);try{if(!Iyt(i).isFile())continue}catch{continue}let s=O0(i);s&&(t[r]=s)}return t}function DY(e){let t=e.repoRoot??xyt(e.intentDir),n={files:{},dirs:{}},r=sv(e.intentDir,"intent.md");if(iv(r)){let i=Cg(r);i&&(n.files["intent.md"]=i)}for(let i of e.unitInputs){if(i==="intent.md")continue;let s=WL(i,e.intentDir);if(s==="intent.md")continue;let o=sv(e.intentDir,s),a=iv(o)?o:sv(t,s);if(!iv(a))continue;let c=!1;try{c=Iyt(a).isDirectory()}catch{continue}if(c)n.dirs[s]=N4n(a);else{let u=Lb(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:DY({intentDir:t.intentDir,repoRoot:t.repoRoot,unitInputs:t.unitInputs})}:n}function zd(e,t){return{at:new Date().toISOString()}}var pye,O4n,MY,Xf=v(()=>{"use strict";pye=Re(Kt(),1);O4n=new Set([".md",".markdown",".mdx",".txt",".rst",".adoc"]);MY=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 ov,readdirSync as Pyt,readFileSync as hye}from"node:fs";import{join as Vh}from"node:path";function C4n(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function mye(e,t){return`${e}:${t}`}function M4n(e){let t=new Map;for(let n of e){let r=mye(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(mye(d,f))}return t}function L4n(e,t){let n=t.slice(t.lastIndexOf(".")).toLowerCase();return n===".md"||n===".markdown"||n===".mdx"?Cg(e):Lb(e)}function U4n(e,t,n){let r=Vh(t,e);if(ov(r))return r;let i=Vh(n,e);if(ov(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=Vh(t,a);if(ov(c))return c}}return null}function F4n(e){let t=Vh(e.intentDir,"stages",e.stage,"units",`${e.unit}.md`);if(!ov(t))return;let n=hye(t,"utf8"),i=(0,LY.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&&Ne(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};Ne(t,"reviews",d)}function j4n(e){let t=Vh(e.intentDir,"intent.md");if(!ov(t))return;let n=hye(t,"utf8"),s=(0,LY.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};Ne(t,"approvals",u)}function H4n(e){let t=e.group.slots.map(s=>`- \`${s.unit}\` / role \`${s.role}\``).join(` +`),NY("sha256").update(n,"utf8").digest("hex")}function O0(e){if(!iv(e))return"";let t=hye(e);return NY("sha256").update(t).digest("hex")}function VL(e,t){if(!iv(e))return!0;let n=Cg(e);if(n&&n===t)return!0;let r=hye(e,"utf8"),i=r;try{i=(0,mye.default)(r).content}catch{i=r}if(NY("sha256").update(i,"utf8").digest("hex")===t)return!0;let o=i.endsWith(` +`)?i.slice(0,-1):i;return o===i?!1:NY("sha256").update(o,"utf8").digest("hex")===t}function Lb(e){return iv(e)?CY(e)?Cg(e):O0(e):""}function CY(e){let t=e.slice(e.lastIndexOf(".")).toLowerCase();return P4n.has(t)}function N4n(e,t,n){let r={},i=n??Oyt(e);for(let s of t){let o=s.startsWith("stages/")?sv(e,s):sv(i,s),a=Lb(o);a&&(r[s]=a)}return r}function Oyt(e){return sv(e,"..","..","..")}function WL(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 C4n(e){let t={},n=[];try{n=O4n(e)}catch{return t}for(let r of n){if(r.startsWith(".")||MY.has(r))continue;let i=sv(e,r);try{if(!xyt(i).isFile())continue}catch{continue}let s=O0(i);s&&(t[r]=s)}return t}function DY(e){let t=e.repoRoot??Oyt(e.intentDir),n={files:{},dirs:{}},r=sv(e.intentDir,"intent.md");if(iv(r)){let i=Cg(r);i&&(n.files["intent.md"]=i)}for(let i of e.unitInputs){if(i==="intent.md")continue;let s=WL(i,e.intentDir);if(s==="intent.md")continue;let o=sv(e.intentDir,s),a=iv(o)?o:sv(t,s);if(!iv(a))continue;let c=!1;try{c=xyt(a).isDirectory()}catch{continue}if(c)n.dirs[s]=C4n(a);else{let u=Lb(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:DY({intentDir:t.intentDir,repoRoot:t.repoRoot,unitInputs:t.unitInputs})}:n}function zd(e,t){return{at:new Date().toISOString()}}var mye,P4n,MY,Xf=v(()=>{"use strict";mye=Re(Kt(),1);P4n=new Set([".md",".markdown",".mdx",".txt",".rst",".adoc"]);MY=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 ov,readdirSync as Nyt,readFileSync as gye}from"node:fs";import{join as Vh}from"node:path";function M4n(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function yye(e,t){return`${e}:${t}`}function D4n(e){let t=new Map;for(let n of e){let r=yye(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(yye(d,f))}return t}function U4n(e,t){let n=t.slice(t.lastIndexOf(".")).toLowerCase();return n===".md"||n===".markdown"||n===".mdx"?Cg(e):Lb(e)}function F4n(e,t,n){let r=Vh(t,e);if(ov(r))return r;let i=Vh(n,e);if(ov(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=Vh(t,a);if(ov(c))return c}}return null}function j4n(e){let t=Vh(e.intentDir,"stages",e.stage,"units",`${e.unit}.md`);if(!ov(t))return;let n=gye(t,"utf8"),i=(0,LY.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&&Ne(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};Ne(t,"reviews",d)}function H4n(e){let t=Vh(e.intentDir,"intent.md");if(!ov(t))return;let n=gye(t,"utf8"),s=(0,LY.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};Ne(t,"approvals",u)}function q4n(e){let t=e.group.slots.map(s=>`- \`${s.unit}\` / role \`${s.role}\``).join(` `),n=e.group.kind==="input_deletion"||e.currentSha===null?`**File**: \`${e.group.file}\` (no longer present on disk)`:`**File**: \`${e.group.file}\``,r=e.currentSha?`**Current SHA**: \`${e.currentSha}\``:"",i=`**Witnessed at**: ${e.group.since}`;return`_Engine-authored drift FB. The premise that ${e.group.slots.length} signed slot(s) depended on has shifted. Read the file at the path below and classify._ ${n} @@ -652,46 +652,46 @@ 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 Cyt(e){let t=e.repoRoot??Vh(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=M4n(e.events);n.groups_total=r.length;let i=D4n(e.intentDir),s=i.size>=Nyt;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 ${Nyt}. 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=U4n(o.file,e.intentDir,t),c=a?L4n(a,o.file):"";for(let m of o.slots){if(m.unit==="(intent)"){c&&(j4n({intentDir:e.intentDir,role:m.role,currentSha:c}),n.slots_restamped++);continue}F4n({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")&&!C4n(o.file)){n.fbs_untracked_skipped=(n.fbs_untracked_skipped??0)+1;continue}let l=mye(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:H4n({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 LY,Nyt,Myt=v(()=>{"use strict";LY=Re(Kt(),1);ze();Xf();Nyt=(()=>{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 q4n,createReadStream as lfi,existsSync as UY,fsyncSync as dfi,mkdirSync as ffi,openSync as B4n,readdirSync as Dyt,readFileSync as Lyt,readSync as z4n,statSync as G4n,unlinkSync as pfi,writeFileSync as hfi,writeSync as mfi}from"node:fs";import{dirname as yfi,join as Mg,relative as Sfi}from"node:path";function av(e){return e.replace(/^(stages\/[^/]+\/)outputs\//,"$1artifacts/")}function Fyt(e){try{if(G4n(e).size<12)return null;let n=Buffer.alloc(16),r=B4n(e,"r");try{z4n(r,n,0,16,0)}finally{q4n(r)}for(let{kind:i,prefix:s}of Z4n)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 J4n(e,t){return Mg(e,"stages",t,"baseline-content")}function jyt(e,t,n){return Mg(J4n(e,t),n)}function X4n(e){return Mg(e,"baseline-content")}function Hyt(e,t){return Mg(X4n(e),t)}function Ub(e,t){let n=Mg(e,"stages");if(!UY(n))return 0;let r=i=>{if(!UY(i))return null;try{let o=JSON.parse(Lyt(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=Dyt(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 FY(e){let t=Mg(e,"settings.yml");if(!UY(t))return!1;try{let n=Lyt(t,"utf-8"),{data:r}=(0,Uyt.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 Myt(e){let t=e.repoRoot??Vh(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=D4n(e.events);n.groups_total=r.length;let i=L4n(e.intentDir),s=i.size>=Cyt;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 ${Cyt}. 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=F4n(o.file,e.intentDir,t),c=a?U4n(a,o.file):"";for(let m of o.slots){if(m.unit==="(intent)"){c&&(H4n({intentDir:e.intentDir,role:m.role,currentSha:c}),n.slots_restamped++);continue}j4n({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")&&!M4n(o.file)){n.fbs_untracked_skipped=(n.fbs_untracked_skipped??0)+1;continue}let l=yye(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:q4n({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 LY,Cyt,Dyt=v(()=>{"use strict";LY=Re(Kt(),1);ze();Xf();Cyt=(()=>{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 B4n,createReadStream as dfi,existsSync as UY,fsyncSync as ffi,mkdirSync as pfi,openSync as z4n,readdirSync as Lyt,readFileSync as Uyt,readSync as G4n,statSync as V4n,unlinkSync as hfi,writeFileSync as mfi,writeSync as gfi}from"node:fs";import{dirname as Sfi,join as Mg,relative as bfi}from"node:path";function av(e){return e.replace(/^(stages\/[^/]+\/)outputs\//,"$1artifacts/")}function jyt(e){try{if(V4n(e).size<12)return null;let n=Buffer.alloc(16),r=z4n(e,"r");try{G4n(r,n,0,16,0)}finally{B4n(r)}for(let{kind:i,prefix:s}of J4n)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 X4n(e,t){return Mg(e,"stages",t,"baseline-content")}function Hyt(e,t,n){return Mg(X4n(e,t),n)}function Q4n(e){return Mg(e,"baseline-content")}function qyt(e,t){return Mg(Q4n(e),t)}function Ub(e,t){let n=Mg(e,"stages");if(!UY(n))return 0;let r=i=>{if(!UY(i))return null;try{let o=JSON.parse(Uyt(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=Lyt(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 FY(e){let t=Mg(e,"settings.yml");if(!UY(t))return!1;try{let n=Uyt(t,"utf-8"),{data:r}=(0,Fyt.default)(`--- ${n} --- -`);return r.drift_detection===!1}catch{return!1}}function qyt(e){let t=Mg(e,"stages");if(!UY(t))return[];try{return Dyt(t,{withFileTypes:!0}).filter(n=>n.isDirectory()).map(n=>n.name)}catch{return[]}}var Uyt,V4n,W4n,K4n,Y4n,Efi,_fi,Z4n,P0=v(()=>{"use strict";Uyt=Re(Kt(),1);_l();V4n=O.enum(["agent","human-via-mcp","human-implicit"]),W4n=O.enum(["agent-write","human-write-tool","spa-upload","classification-terminal","baseline-init"]),K4n=O.enum(["stage-output","knowledge","unit-output","intent-meta"]),Y4n=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:V4n,acknowledged_at:O.string(),acknowledged_via:W4n,stage:O.string().nullable(),tracking_class:K4n}),Efi=O.record(O.string(),Y4n);_fi=64*1024,Z4n=[{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 Gyt,readFileSync as Q4n,statSync as $4n}from"node:fs";import{basename as Vyt,join as $o,relative as jY}from"node:path";function eKn(e){if(!Qf(e))return[];let t=[];try{t=Gyt(e)}catch{return[]}let n=[];for(let r of t)if(!r.startsWith(".")&&!MY.has(r))try{$4n($o(e,r)).isFile()&&n.push(r)}catch{}return n}function tKn(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 yye(e){if(!Qf(e))return null;try{let t=Q4n(e,"utf8");return(0,Wyt.default)(t).data}catch{return null}}function gye(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 Byt(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 zyt(e,t){let n=Lb(e);if(!n)return null;if(n===t)return{matches:!0,current:n};let r=O0(e);return r===t?{matches:!0,current:r}:{matches:!1,current:n}}function nKn(e){let t=$o(e,"units");return Qf(t)?Gyt(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>$o(t,n.name)):[]}function rKn(e,t,n){return $o(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 iKn(e,t,n,r){let i=Vyt(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=yye(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 sKn(e,t,n,r){return $o(e,"plugin","studios",t,"stages",n,"discovery",`${r}.md`)}function HY(e){let t=e.repoRoot??$o(e.intentDir,"..","..",".."),n=$o(t,".haiku");if(FY(n))return{events:[],scanned:0,skipped:0};let r=[],i=0,s=0,o=$o(e.intentDir,"stages",e.stage),a=nKn(o),c=iKn(e.intentDir,e.studio,e.stage,a),u=Vyt(e.intentDir),l=p=>c.has(p)||c.has(Sye(p,u));for(let p of a){let h=yye(p);if(!h)continue;let m=(p.split("/").pop()??"").replace(/\.md$/,"");if(h.started_at==null){s++;continue}let g=jY(e.intentDir,p),y=h.reviews??{};for(let[S,E]of Object.entries(y)){i++;let _=gye(E);if(!_)continue;let T=Byt(E);T&&Qf(p)&&!VL(p,T)&&r.push({unit:m,role:S,kind:"spec",file:g,since:_});let R=tKn(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=WL(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}(CY(N)?!VL(N,x):(()=>{let L=Lb(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=WL(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=eKn(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=O0($);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 _=gye(E);if(!_)continue;let T=E,R=rKn(e.intentDir,e.stage,S),A=typeof T.output_sha256=="string"?T.output_sha256:null;if(A){let P=zyt(R,A);P&&!P.matches&&r.push({unit:m,role:S,kind:"discovery_output",file:jY(e.intentDir,R),since:_})}let x=sKn(t,e.studio,e.stage,S),k=typeof T.mandate_sha256=="string"?T.mandate_sha256:null;if(k){let P=zyt(x,k);P&&!P.matches&&r.push({unit:m,role:S,kind:"discovery_mandate",file:jY(t,x),since:_})}}}let d=$o(e.intentDir,"intent.md"),f=yye(d);if(f){let p=f.approvals??{},h=jY(e.intentDir,d);for(let[m,g]of Object.entries(p)){i++;let y=gye(g);if(!y)continue;let b=Byt(g);b&&(VL(d,b)||r.push({unit:"(intent)",role:m,kind:"spec",file:h,since:y}))}}return{events:r,scanned:i,skipped:s}}var Wyt,bye=v(()=>{"use strict";Wyt=Re(Kt(),1);Kn();P0();Xf()});function N0(e,t={}){let n=`haiku/${e}/main`;if(!Ee())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 KL(e,t={}){let n=N0(e,t);return n.applicable&&!n.merged}var YL=v(()=>{"use strict";ar();Eb()});var D0={};Ar(D0,{__testOnly:()=>hKn,computeElaborateSignals:()=>M0,derivePosition:()=>$f,findCurrentStage:()=>ai,intentReviewRoles:()=>GY,isBriefEnabled:()=>Jyt,isReflectionEnabled:()=>lv,isStageComplete:()=>C0,listUnitPaths:()=>dv,nextHatForUnit:()=>uv,pendingApprovalSlots:()=>cKn,pendingReviewSlots:()=>aKn,readFm:()=>Qc,serializeElaborateSignals:()=>vye,stageOwesBrief:()=>$yt,stageOwesObservations:()=>_ye,stageRoleLists:()=>VY,unitName:()=>zY,walkFeedbackTrack:()=>Tye});import{existsSync as xa,readdirSync as ZL,readFileSync as qY,writeFileSync as Kyt}from"node:fs";import{basename as Zyt,join as zr}from"node:path";function oKn(e){let t=zr(e.intentDir,"intent.md");if(xa(t))try{let n=qY(t,"utf8"),r=(0,cv.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,Kyt(t,cv.default.stringify(r.content,i))):u===!0&&(delete c[o],Object.keys(c).length===0?delete i[s]:i[s]=c,Kyt(t,cv.default.stringify(r.content,i)))}catch{}}function lv(e){let t=zr(e,"intent.md");if(!xa(t))return!0;try{let n=qY(t,"utf8"),i=(0,cv.default)(n).data;return!(i.reflection===!1||i.autotune===!1)}catch{return!0}}function Jyt(e){let t=zr(e,"intent.md");if(!xa(t))return!0;try{let n=qY(t,"utf8");return(0,cv.default)(n).data.brief!==!1}catch{return!0}}function Qc(e){if(!xa(e))return null;try{let t=qY(e,"utf8"),n=(0,cv.default)(t);return{data:n.data,body:n.content}}catch{return null}}function Xyt(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 Fb(e){return Array.isArray(e.iterations)?e.iterations??[]:[]}function BY(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function Qyt(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function zY(e){return Zyt(e).replace(/\.md$/,"")}function dv(e){let t=zr(e,"units");return xa(t)?ZL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>zr(t,n.name)).sort():[]}function Yyt(e){let t=zr(e,"feedback");return xa(t)?ZL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>zr(t,n.name)).sort():[]}function uv(e,t){if(t.length===0)return null;let n=Fb(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 aKn(e,t){let n=Qyt(e);return t.filter(r=>!n[r])}function cKn(e,t){let n=BY(e);return t.filter(r=>!n[r])}function uKn(e,t,n){let r=Object.keys(Tl(e,t)).sort();return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...r,"user"]}function lKn(e){return typeof e.started_at=="string"&&e.started_at.length>0}function dKn(e,t){let n=BY(e);for(let r of t)if(!n[r])return!1;return!0}function fKn(e,t){if(dKn(e,t))return!0;let n=lKn(e),r=Fb(e);return n&&r.length===0?(Array.isArray(e.outputs)?e.outputs:[]).length===0:!1}function pKn(e,t,n,r){let i=zr(e,"stages",n,"units");if(!xa(i))return!1;let s=ZL(i).filter(c=>c.endsWith(".md"));if(s.length===0||Es(t,n).length===0)return!1;let a=uKn(t,n,r);for(let c of s){let u=Qc(zr(i,c))?.data;if(!u||!fKn(u,a))return!1}return!0}function C0(e,t,n,r){return pKn(e,t,n,r)}function _ye(e,t){return lv(e)?!xa(zr(e,"stages",t,"observations.md")):!1}function $yt(e,t,n){return!(!Jyt(e)||xa(zr(e,"stages",t,"BRIEF.md"))||n)}function ai(e,t,n){let r=n??zr(ve(),"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(!C0(r,t,c,a))return c;return null}function Tye(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=eSt(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=Yyt(zr(t,"stages",b));for(let E of S){let _=u(b,E);if(_)return _}}let l=Yyt(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=ZL(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&&Xyt(k)){A=!0;break}}if(A){_=!1;break}}_&&p.push(b)}if(p.length===0||!p.some(b=>b.inFlight||h0(b.severity)))return null;let g=[...p].sort((b,S)=>Xc(b.severity)-Xc(S.severity)).slice(0,fv),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 eSt(e,t,n){let r=Qc(t);if(!r)return null;let i=r.data;if(Xyt(i))return null;let s=tSt(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=Fb(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=uv(i,a);if(c===null){let u=Fb(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 tSt(e){let t=Zyt(e).match(/^(\d+)-/);return t?`FB-${t[1].padStart(3,"0")}`:null}function nSt(e){let{slug:t,intentDir:n,studio:r,stage:i,mode:s}=e,o=zr(n,"stages",i),c=dv(o).map(R=>({path:R,name:zY(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}=VY(r,i,s,d),h=M0({slug:t,studio:r,stage:i,stageDir:o,unitNames:c.map(R=>R.name),mode:s});if(h.length>0){if(oL(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:Qpe(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||Fb(P.fm).length>0?!1:!Qyt(P.fm)[x]).map(P=>P.name);if(k.length!==0){if(x==="user"){A=k;continue}if(Eye.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||Fb(k.fm).length>0);if($yt(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=Fb(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&&uv(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,fv),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=uv(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:Fb(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=>!BY(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(Eye.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(lv(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",a;if(s&&typeof s.data.sealed_at=="string"&&s.data.sealed_at.length>0&&(a=N0(t),!a.applicable||a.merged))return{track:"sealed",action:{kind:"sealed"}};if(s&&o!=="autopilot"&&!(typeof s.data.verified_at=="string"?s.data.verified_at:"")){let d=wn(s.data,r)[0]??"",f=d?zr(n,"stages",d):"",p=f&&xa(f)?dv(f).length>0:!1;if(ai(t,r,n)===d&&!p)return{track:"intent",action:{kind:"elaborate_loop",signals_unmet:[{signal:"verify_conversation"}]}}}let c=ai(t,r,n);if(c){let u=HY({intentDir:n,stage:c,studio:r});if(u.events.length>0){let l=Cyt({events:u.events,intentDir:n,stage:c,slug:t});s&&oKn({intentDir:n,stage:c,tripped:l.cascade_alarm_tripped})}}{let u=s?.data??{},l=Tye({intentDir:n,studio:r,intent:u,currentStage:c??wn(u,r).slice(-1)[0]??""});if(l)return{track:"feedback",action:l}}if(c){let u=nSt({slug:t,intentDir:n,studio:r,stage:c,mode:o});return u!==null?{track:"intent",action:u}:{track:"noop",action:null}}if(s){let u=BY(s.data),l=Object.keys(yg(r)).sort(),d=GY(o,l),f=[],p=!1;for(let m of d)if(!u[m]){if(m==="user"){p=!0;continue}if(Eye.has(m))return f.length>0?{track:"intent",action:{kind:"intent_review",role:f[0].role,dispatches:f}}:{track:"intent",action:{kind:"intent_review",role:m,dispatches:[{role:m}]}};f.push({role:m})}if(f.length>0)return{track:"intent",action:{kind:"intent_review",role:f[0].role,dispatches:f}};if(!u.intent_quality_gates)return{track:"intent",action:{kind:"dispatch_quality_gates",stage:"",units:[],scope:"intent"}};if(p)return{track:"intent",action:{kind:"intent_review",role:"user",dispatches:[{role:"user"}]}};if(s.data.sealed_at==null&&lv(n)){let m=zr(n,"reflection.md");if(!xa(m))return{track:"intent",action:{kind:"record_reflection"}}}let h=a??N0(t);if(h.applicable&&!h.merged)return{track:"intent",action:{kind:"pending_seal",default_branch:h.defaultBranch}};if(s.data.sealed_at==null)return{track:"intent",action:{kind:"seal_intent"}}}return{track:"sealed",action:{kind:"sealed"}}}function GY(e,t=[]){let n=["spec","continuity","cross-stage-consistency"],r=t.filter(i=>!n.includes(i));return[...n,...r,"user"]}function VY(e,t,n,r){let s=["continuity","cross-stage-consistency",...r??Object.keys(Tl(e,t)).sort()],o=n==="autopilot",a=s.filter(l=>!UT.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 M0(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)&&ZL(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 vye(e){return e.map(t=>t.signal==="discovery"?`discovery:${t.agent}`:t.signal)}var cv,Eye,hKn,Oa=v(()=>{"use strict";cv=Re(Kt(),1);ji();ze();Kn();A3();ns();Myt();bye();YL();Eye=new Set(["spec","quality_gates","user"]);hKn={walkIntentTrack:nSt,walkFeedbackTrack:Tye,nextActionForFeedback:eSt,parseFbIdFromFilename:tSt}});var rSt,JL,Rye=v(()=>{"use strict";rSt=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"]),JL=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 yKn(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 SKn(e,t){let n=t.toLowerCase(),r=new RegExp(`<${n}\\b[^>]*/?>`,"gi");return e.replace(r,"")}function bKn(e){return e.replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function EKn(e){return e.replace(/\s+(?:formaction|srcdoc|xlink:href)\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function _Kn(e){return e.replace(/\b(href|src)\s*=\s*(["']?)([^"'\s>]+)/gi,(t,n,r,i)=>sSt.test(i.trim())?`${n}=${r||'"'}#${r||'"'}`:t)}function TKn(e){return e.replace(/(!?\[[^\]]*\])\(([^)]+)\)/g,(t,n,r)=>sSt.test(r.trim())?`${n}(#)`:t)}function iSt(e){let t=e;for(let n of mKn)t=yKn(t,n);for(let n of gKn)t=SKn(t,n);return t=bKn(t),t=EKn(t),t=_Kn(t),t=TKn(t),t}function pv(e){if(typeof e!="string")return"";let t=e;for(let n=0;n<5;n++){let r=iSt(t);if(r===t)return r;t=r}return iSt(t)}var mKn,gKn,sSt,Aye=v(()=>{"use strict";mKn=["script","iframe","object","style","form"],gKn=["embed"],sSt=/^(?:javascript|vbscript|data:text\/html|data:text\/javascript|data:application\/(?:java|ecma)script|data:image\/svg\+xml)/i});import{randomBytes as vKn}from"node:crypto";function L0(){let e=AKn();return wKn(e)}function AKn(){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=vKn(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 wKn(e){let t=0;for(;t0n;){let i=Number(n%58n);n=n/58n,r=RKn[i]+r}return"1".repeat(t)+r}var RKn,oSt=v(()=>{"use strict";RKn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"});var Dye={};Ar(Dye,{_runPresenceSweepForTests:()=>PKn,beginPresenceWatch:()=>wye,clearHeartbeat:()=>WY,clearPreviousReviewSnapshot:()=>fSt,createDesignDirectionSession:()=>Pye,createPickerSession:()=>Nye,createQuestionSession:()=>Oye,createSession:()=>KY,createViewSession:()=>Cye,deleteSession:()=>q0,endPresenceWatch:()=>kye,findLiveReviewSessionForIntent:()=>e1,getPreviousReviewSnapshot:()=>xye,getSession:()=>$t,hasAttachedReviewSessionForIntent:()=>t1,hasPresenceLost:()=>Iye,isBrowserAttached:()=>mv,notifySessionUpdate:()=>H0,recordHeartbeat:()=>QL,setPreviousReviewSnapshot:()=>dSt,updateDesignDirectionSession:()=>r1,updatePickerSession:()=>MKn,updateQuestionSession:()=>n1,updateSession:()=>Ml,updateViewSession:()=>Mye,waitForSession:()=>hv});import{EventEmitter as kKn}from"node:events";function wye(e,t={}){j0.set(e,t.startedAt??Date.now())}function kye(e){j0.delete(e)}function QL(e){return Hi.has(e)?(F0.set(e,Date.now()),j0.delete(e),jb.delete(e)&&console.error(`[haiku] Presence restored for session ${e}`),!0):!1}function Iye(e){return jb.has(e)}function WY(e){F0.delete(e),jb.delete(e),j0.delete(e)}function aSt(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 cSt(e,t){jb.has(e)||(jb.add(e),console.error(`[haiku] Presence lost for session ${e} \u2014 ${t}`),U0.emit(`session:${e}`))}function lSt(){let e=Date.now();for(let[t,n]of F0){if(e-n<=IKn)continue;let r=Hi.get(t);if(!r){F0.delete(t),jb.delete(t);continue}aSt(r)&&cSt(t,`no heartbeat in ${Math.round((e-n)/1e3)}s`)}for(let[t,n]of j0){if(F0.has(t)||e-n<=OKn)continue;let r=Hi.get(t);if(!r){j0.delete(t);continue}aSt(r)&&cSt(t,`SPA never opened (no heartbeat in the first ${Math.round((e-n)/1e3)}s)`)}}function PKn(){lSt()}function H0(e){U0.emit(`session:${e}`)}function hv(e,t=1800*1e3,n){return new Promise((r,i)=>{let s=setTimeout(()=>{U0.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),U0.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}),U0.once(`session:${e}`,o)})}function xye(e){return XL.get(e)}function dSt(e,t){XL.set(e,t)}function fSt(e){XL.delete(e)}function uSt(e){if(XL.has(e)){for(let t of Hi.values())if(t.session_type==="review"&&t.intent_dir===e)return;XL.delete(e)}}function $L(){let e=Date.now();for(let[t,n]of ep)if(e-n>CKn){let r=Hi.get(t);Hi.delete(t),ep.delete(t),WY(t),r?.session_type==="review"&&uSt(r.intent_dir)}for(;Hi.size>=NKn;){let t=ep.entries().next().value;if(!t)break;let n=Hi.get(t[0]);Hi.delete(t[0]),ep.delete(t[0]),WY(t[0]),n?.session_type==="review"&&uSt(n.intent_dir)}}function KY(e){$L();let t=L0(),n={...e,session_type:"review",session_id:t,status:"pending",decision:"",feedback:""};return Hi.set(t,n),ep.set(t,Date.now()),n}function Oye(e){$L();let t=L0(),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 Pye(e){$L();let t=L0(),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 Nye(e){$L();let t=L0(),n={...e,session_type:"picker",session_id:t,status:"pending",selection:null};return Hi.set(t,n),ep.set(t,Date.now()),n}function MKn(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="picker"))return Object.assign(n,t),H0(e),n}function Cye(e){$L();let t=L0(),n={...e,session_type:"view",session_id:t,status:"open"};return Hi.set(t,n),ep.set(t,Date.now()),n}function Mye(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="view"))return Object.assign(n,t),H0(e),n}function $t(e){return Hi.get(e)}function e1(e){let t,n=0;for(let[r,i]of Hi){if(i.session_type!=="review"||i.intent_slug!==e||i.ad_hoc||jb.has(r))continue;let s=ep.get(r)??0;s>n&&(t=i,n=s)}return t}function mv(e){if(!Hi.has(e)||jb.has(e))return!1;let t=F0.get(e);return t?Date.now()-t<=DKn:!1}function t1(e){for(let[t,n]of Hi)if(n.session_type==="review"&&n.intent_slug===e&&!n.ad_hoc&&mv(t))return!0;return!1}function q0(e){let t=Hi.delete(e);return ep.delete(e),WY(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);dSt(n.intent_dir,{feedback:n.feedback??"",reviewedAt:new Date().toISOString(),intentRawContent:r?.rawContent??"",unitRawContents:s})}else fSt(n.intent_dir);return H0(e),n}}function n1(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="question"))return Object.assign(n,t),H0(e),n}function r1(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="design_direction"))return Object.assign(n,t),H0(e),n}var U0,IKn,xKn,F0,jb,OKn,j0,Hi,XL,NKn,CKn,ep,DKn,$c=v(()=>{"use strict";oSt();U0=new kKn;U0.setMaxListeners(200);IKn=12e4,xKn=5e3,F0=new Map,jb=new Set,OKn=6e4,j0=new Map;setInterval(lSt,xKn).unref();Hi=new Map,XL=new Map;NKn=100,CKn=14400*1e3,ep=new Map;DKn=3e4});import{spawn as LKn}from"node:child_process";import{existsSync as B0,readFileSync as mSt}from"node:fs";import{createServer as UKn}from"node:net";import{isAbsolute as FKn,join as gv}from"node:path";function HKn(){return new Promise((e,t)=>{let n=UKn();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 qKn(e){return new Promise(t=>{let{Socket:n}=Y("node:net"),r=new n;r.setTimeout(500),r.once("connect",()=>{r.destroy(),t(!0)}),r.once("timeout",()=>{r.destroy(),t(!1)}),r.once("error",()=>{r.destroy(),t(!1)}),r.connect(e,"127.0.0.1")})}async function BKn(e,t){let n=Date.now()+YY;for(;Date.now()setTimeout(r,ySt))}throw new Error(`Dev server did not bind to port ${e} within ${YY}ms`)}async function zKn(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 GKn(e,t){let n=Date.now()+YY;for(;Date.now()setTimeout(r,ySt))}throw new Error(`Process did not return a healthy ready_url (${e}) within ${YY}ms`)}function SSt(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 bSt(e){let t=gv(e,"package.json");if(!B0(t))return null;let n;try{n=JSON.parse(mSt(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=VKn(e);return{command:s==="npm"?["npm","run",i]:[s,"run",i],cwd:e,description:`${s} run ${i}`}}function VKn(e){return B0(gv(e,"bun.lockb"))||B0(gv(e,"bun.lock"))?"bun":B0(gv(e,"pnpm-lock.yaml"))?"pnpm":B0(gv(e,"yarn.lock"))?"yarn":"npm"}function Lg(e){return new Error(`[${ESt}] ${e}`)}function pSt(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 Lye(e){let t=gv(e,ESt);if(!B0(t))return null;let n;try{n=(0,gSt.default)(mSt(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 FKn(s)?s:gv(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:pSt(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:pSt(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 s1(e){let t=Lye(e);return t?t.processes.filter(n=>n.service||n.requires_tool!==void 0&&n.name!==t.primary):[]}function WKn(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 Uye(e,t,n){if(t.length===0)throw new Error("spawnBootGroup: at least one process spec required");let r=WKn(t),i=new Map;for(let l of t)i.set(l.name,l.no_port?null:await HKn());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`),z0(e)},jKn);o.unref?.();let a={sessionId:e,processes:[],primaryName:n,primaryPort:i.get(n)??null,startedAt:Date.now(),ttlTimer:o};i1.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=LKn(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 GKn(b)}else await BKn(d)}}catch(l){throw z0(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 _St(e,t){let n={name:"app",command:t.command,cwd:t.cwd};return(await Uye(e,[n],"app")).primary}function z0(e){let t=i1.get(e);if(!t)return!1;clearTimeout(t.ttlTimer),i1.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 TSt(){let e=0;for(let[t]of i1)$t(t)||(z0(t),e+=1);return e}function KKn(){if(hSt)return;hSt=!0;let e=()=>{for(let[t]of i1)z0(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var gSt,i1,jKn,YY,ySt,ESt,hSt,o1=v(()=>{"use strict";gSt=Re(Kt(),1);$c();i1=new Map,jKn=1800*1e3,YY=60*1e3,ySt=200;ESt=".haiku/boot.md";hSt=!1;KKn()});import{lstatSync as Fye,mkdirSync as YKn,realpathSync as vSt,renameSync as ZKn,unlinkSync as JKn}from"node:fs";import{isAbsolute as XKn,relative as QKn,resolve as ZY,sep as JY}from"node:path";function yv(e,t,n,r){let i=ZY(e),s=ZY(t),o=ZY(r),a;try{if(Fye(i).isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`intent root '${i}' is itself a symlink \u2014 refusing`};a=vSt(i)}catch(d){return{ok:!1,code:"parent_open_failed",detail:`cannot stat intent root: ${G0(d)}`}}if(s!==i&&!s.startsWith(`${i}${JY}`))return{ok:!1,code:"parent_chain_escape",detail:`parent '${s}' is not inside intent root '${i}'`};if(!o.startsWith(`${s}${JY}`))return{ok:!1,code:"parent_chain_escape",detail:`dest '${o}' is not directly below parent '${s}'`};let c=QKn(i,s),u=c===""?[]:c.split(JY),l=i;for(let d of u){if(d===""||d==="."||d===".."||XKn(d))return{ok:!1,code:"parent_chain_escape",detail:`chain segment '${d}' is invalid`};l=ZY(l,d);try{let f=Fye(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{YKn(l)}catch(h){if(h.code==="EEXIST")try{let g=Fye(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: ${G0(g)}`}}else return{ok:!1,code:"parent_open_failed",detail:`mkdir '${l}' failed: ${G0(h)}`}}else return{ok:!1,code:"parent_open_failed",detail:`lstat '${l}' failed: ${G0(f)}`}}}try{let d=vSt(s);if(d!==a&&!d.startsWith(`${a}${JY}`))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: ${G0(d)}`}}try{ZKn(n,o)}catch(d){return{ok:!1,code:"rename_failed",detail:`rename '${n}' \u2192 '${o}' failed: ${G0(d)}`}}return{ok:!0}}function G0(e){return e instanceof Error?e.message:String(e)}function V0(e){try{JKn(e)}catch{}}var XY=v(()=>{"use strict"});var l1={};Ar(l1,{applyFeedbackInvalidations:()=>Hye,drainPendingDispatches:()=>t3n,stampSingleDispatch:()=>jye,stashPendingDispatch:()=>$Kn,stashPendingIntentReview:()=>e3n});import{existsSync as a1,readdirSync as ASt,readFileSync as c1}from"node:fs";import{join as Ug}from"node:path";function u1(e){let t=Ug(ve(),"intents",e,"intent.md");if(!a1(t))return null;let n=c1(t,"utf8"),r=re(n);return{path:t,fm:r.data||{}}}function tZ(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function wSt(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function $Kn(e,t,n,r,i){let s=u1(e);if(!s)return;let o=t==="review"?$Y:eZ,a={...tZ(s.fm,o)},c={...a[n]??{}};c[r]={dispatched_at:new Date().toISOString(),units:[...i]},a[n]=c,Ne(s.path,o,a)}function e3n(e,t){if(t==="user")return;let n=u1(e);if(!n)return;let r={...wSt(n.fm,QY)};r[t]={dispatched_at:new Date().toISOString()},Ne(n.path,QY,r)}function kSt(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(!a1(l))continue;if(s&&n3n({intentDir:t,stage:n,targetUnit:u,role:r,sinceIso:s})){c.push(u);continue}let d=c1(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}),Ne(l,"reviews",h)}else{let h=Array.isArray(p.outputs)?p.outputs:[],m=p.approvals&&typeof p.approvals=="object"?{...p.approvals}:{};m[r]=zd(t,h),Ne(l,"approvals",m)}a.push(u)}return{stamped:a,skipped:c}}function jye(e,t,n,r){let i=u1(e);if(!i)return{found:!1,stamped:[],skipped:[]};let s=t==="review"?$Y:eZ,o=tZ(i.fm,s),a=o[n]?.[r];if(!a||!Array.isArray(a.units))return{found:!1,stamped:[],skipped:[]};let c=Ug(ve(),"intents",e),{stamped:u,skipped:l}=kSt({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,Ne(i.path,s,o),{found:!0,stamped:u,skipped:l}}function t3n(e){let t=u1(e);if(!t)return!1;let n=ve(),r=Ug(n,"intents",e),i=!1;for(let o of["review","approval"]){let a=o==="review"?$Y:eZ,c=tZ(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;kSt({intentDir:r,stage:u,role:d,units:f.units,dispatchedAt:f.dispatched_at,kind:o}).stamped.length>0&&(i=!0)}}Ne(t.path,a,{})}}let s=wSt(t.fm,QY);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&&(r3n({intentDir:r,role:c,sinceIso:u.dispatched_at})||(o[c]={at:new Date().toISOString()},a=!0,i=!0))}a&&Ne(t.path,"approvals",o),Ne(t.path,QY,{})}return i}function n3n(e){let t=Ug(e.intentDir,"stages",e.stage,"feedback");if(!a1(t))return!1;for(let n of ASt(t,{withFileTypes:!0})){if(!n.isFile()||!n.name.endsWith(".md"))continue;let r=Ug(t,n.name),i=c1(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)||!h0(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],Ne(t.path,e.field,n))}var $Y,eZ,QY,Sv=v(()=>{"use strict";ji();ze();Xf();$Y="_pending_review_dispatches",eZ="_pending_approval_dispatches",QY="_pending_intent_review_dispatches"});import{existsSync as i3n,readFileSync as s3n}from"node:fs";import{join as o3n}from"node:path";function xSt(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{Hye({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{a3n({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 a3n(e){let t=ve(),n=o3n(t,"intents",e.slug,"stages",e.stage,"units",`${e.targetUnit}.md`);if(!i3n(n))return;let r=Cg(n);if(!r)return;let i=s3n(n,"utf8"),o=(0,ISt.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&&Ne(n,"reviews",u);let l=c("approvals");l&&Ne(n,"approvals",l)}var ISt,OSt=v(()=>{"use strict";ISt=Re(Kt(),1);Sv();Xf();ze();vo()});var USt={};Ar(USt,{__testOnly:()=>y3n,withIntentDispatchLock:()=>W0,withIntentMainLock:()=>sZ,withStageLock:()=>Hb});import{existsSync as c3n,mkdirSync as NSt,readFileSync as u3n,rmSync as CSt,statSync as l3n,writeFileSync as d3n}from"node:fs";import{join as nZ}from"node:path";function MSt(){return nZ(Br(),".haiku","locks")}function h3n(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function m3n(e){let t=nZ(e,"holder.json");if(!c3n(t))return null;try{let n=u3n(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 DSt(e){let t;try{t=Date.now()-l3n(e).mtimeMs}catch{return!1}if(t{"use strict";ze();f3n=50,PSt=3e4,p3n=5*6e4;y3n={acquireLock:rZ,releaseLock:iZ,lockRoot:MSt,isStale:DSt}});function d1(e){return Array.isArray(e.iterations)?e.iterations:[]}function S3n(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function qye(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function FSt(e){let t=e.fm.started_at;return typeof t=="string"&&t.length>0||t instanceof Date&&!Number.isNaN(t.getTime())?!0:d1(e.fm).length>0}function b3n(e,t,n,r){return r===!0?"completed":r===!1?e.length===0?"pending":e.some(FSt)?"active":"pending":e.length===0||!e.some(FSt)?"pending":e.every(s=>{let o=d1(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=qye(s.fm);return n.every(u=>c[u])})?"completed":"active"}function E3n(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=>!S3n(c.fm)[o]))return"review";if(t.length>0&&!e.every(a=>{let c=d1(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=>!qye(c.fm)[o]))return"gate";return null}function _3n(e,t){return e.length===0?null:e.every(r=>{let i=qye(r.fm);return t.every(s=>i[s])})?"advanced":null}function jSt(e){return typeof e=="string"&&e.length>0?e:e instanceof Date&&!Number.isNaN(e.getTime())?e.toISOString():null}function T3n(e){return e.map(n=>jSt(n.fm.started_at)).filter(n=>n!==null).sort()[0]??null}function v3n(e,t){if(t!=="completed")return null;let n=null;for(let r of e){let i=d1(r.fm);if(i.length===0)continue;let s=i[i.length-1];if(s.result!=="advance")continue;let o=jSt(s.completed_at);o!==null&&(n===null||o>n)&&(n=o)}return n}function R3n(e){let t=0;for(let n of e){let r=d1(n.fm);r.length>t&&(t=r.length)}return t}function Bye(e){let{stage:t,units:n,intentMode:r,hats:i=[],reviewRoles:s=[],approvalRoles:o=[],stageMergedIntoMain:a=null,elaborationVerified:c=null}=e,u=b3n(n,i,o,a),l=u==="completed"?null:E3n(n,i,s,o,r,c),d=_3n(n,o),f=T3n(n),p=v3n(n,u),h=R3n(n);return{stage:t,status:u,phase:l,started_at:f,completed_at:p,gate_outcome:d,visits:h}}var zye=v(()=>{});import{execFileSync as aZ}from"node:child_process";import{existsSync as qSt,readdirSync as A3n,readFileSync as w3n}from"node:fs";import{basename as BSt,join as oZ}from"node:path";function Gye(e){if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(Gye);if(e!==null&&typeof e=="object"){let t={};for(let[n,r]of Object.entries(e))t[n]=Gye(r);return t}return e}function GSt(e){try{let t=(0,zSt.default)(e).data;return Gye(t)}catch{return null}}function VSt(e){if(!qSt(e))return null;try{return GSt(w3n(e,"utf8"))}catch{return null}}function k3n(e){let t=oZ(e,"units");return qSt(t)?A3n(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).sort((n,r)=>n.name.localeCompare(r.name)).map(n=>{let r=VSt(oZ(t,n.name))??{};return{name:BSt(n.name,".md"),fm:r}}):[]}function I3n(e,t){if(!Ee())return null;try{return aZ("git",["show",`${e}:${t}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return null}}function WSt(e,t){let n=I3n(e,t);return n==null?null:GSt(n)}function x3n(e,t){if(!Ee())return[];try{return aZ("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 O3n(e,t,n){let r=`.haiku/intents/${t}/stages/${n}/units`,i=x3n(e,r);return i.length===0?[]:i.map(s=>{let o=WSt(e,`${r}/${s}`)??{};return{name:BSt(s,".md"),fm:o}})}function Vye(e,t,n){return n==="autopilot"?["spec"]:["spec",...Object.keys(Tl(e,t)).sort(),"user"]}function Wye(e,t,n){return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...Object.keys(Tl(e,t)).sort(),"user"]}function P3n(e,t){if(!Ee())return!1;let n=`haiku/${e}/main`,r=`.haiku/intents/${e}/stages/${t}/units`;try{return aZ("git",["ls-tree","--name-only",`${n}:${r}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` -`).some(s=>s.trim().endsWith(".md"))}catch{return!1}}function HSt(e){if(!Ee())return!1;try{return aZ("git",["rev-parse","--verify",e],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!1}}function bv(e){let{slug:t,studio:n,stage:r,intentDir:i,intentMode:s}=e,o=oZ(i,"stages",r),a=Es(n,r),c=Vye(n,r,s),u=Wye(n,r,s),l=`haiku/${t}/main`,d=`haiku/${t}/${r}`,f=Ee(),p=f&&HSt(l),m=f&&HSt(d)?d:p?l:null,g=m?O3n(m,t,r):k3n(o),y=p?P3n(t,r):null,b=oZ(o,"elaboration.md"),S=`.haiku/intents/${t}/stages/${r}/elaboration.md`,E=m?WSt(m,S):VSt(b),_=null;return E!==null&&(_=(typeof E.verified_at=="string"?E.verified_at:"").length>0),Bye({stage:r,units:g,intentMode:s,hats:a,reviewRoles:c,approvalRoles:u,stageMergedIntoMain:y,elaborationVerified:_})}var zSt,f1=v(()=>{"use strict";zye();zSt=Re(Kt(),1);Eb();Kn();ns()});import{appendFileSync as N3n,existsSync as Ipi,mkdirSync as KSt,readFileSync as xpi,writeFileSync as C3n}from"node:fs";import{dirname as YSt}from"node:path";function ZSt(e,t){try{KSt(YSt(e),{recursive:!0}),C3n(e,`${JSON.stringify(t,null,2)} -`)}catch{}}function qi(e,t){try{let n=e.replace(/\.json$/,".jsonl");KSt(YSt(n),{recursive:!0});let r={...t,ts:new Date().toISOString()};N3n(n,`${JSON.stringify(r)} -`)}catch{}}var p1=v(()=>{"use strict"});var JSt,XSt,QSt,$St=v(()=>{"use strict";JSt=["status","active_stage","started_at","completed_at","phase","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at"],XSt=["status","phase","started_at","completed_at","gate_entered_at","gate_outcome"],QSt=["status","started_at","completed_at","bolt","hat","hat_started_at","scope_reject_attempts"]});import{createHash as M3n}from"node:crypto";import{existsSync as ebt,readdirSync as D3n,readFileSync as tbt,writeFileSync as L3n}from"node:fs";import{join as cZ}from"node:path";function U3n(e){let t=JSON.stringify(e,Object.keys(e).sort());return M3n("sha256").update(t).digest("hex").slice(0,16)}function Kye(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function F3n(e,t,n){if(!n)return{};let r=cZ(e,"intents",t,"stages",n,"units");if(!ebt(r))return{};for(let i of D3n(r)){if(!i.endsWith(".md"))continue;let s=tbt(cZ(r,i),"utf8"),{data:o}=re(s);if(o.status==="active")return Kye(o,QSt)}return{}}function ci(e){if(!Mi().hooks)try{let t=ve(),n=cZ(t,"intents",e,"intent.md");if(!ebt(n))return;let r=tbt(n,"utf8"),{data:i}=re(r),s=i.active_stage||"",o=Kye(i,JSt),a={};if(s){let f=Y0(e,s),p=qb(f);a=Kye(p,XSt)}let c=F3n(t,e,s),l=U3n({intent:o,stage:a,unit:c}),d=cZ(t,"intents",e,".fsm_checksum");L3n(d,l)}catch(t){console.error(`[haiku] sealIntentState(${e}) failed:`,t)}}var uZ=v(()=>{"use strict";_f();ze();$St()});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 AZ={};Ar(AZ,{AGENT_AUTHORABLE_INTENT_FIELDS:()=>tv,AGENT_AUTHORABLE_UNIT_FIELDS:()=>Db,CREATE_TIME_FB_FIELDS:()=>jL,ERROR_OUTPUT_SCHEMA:()=>uye,FEEDBACK_ASSESSOR_HAT:()=>vbt,FEEDBACK_ORIGINS:()=>w9n,FEEDBACK_STATUSES:()=>Bb,FSM_DRIVEN_FB_FIELDS:()=>FL,FSM_DRIVEN_INTENT_FIELDS:()=>nv,FSM_DRIVEN_UNIT_FIELDS:()=>Jf,INTENT_FRONTMATTER_SCHEMA:()=>GL,INTENT_TITLE_MAX_LENGTH:()=>sSe,IntentScopeTickPersistError:()=>Vd,MAX_CONCURRENT_SUBAGENTS:()=>fv,MAX_FIX_LOOP_BOLTS:()=>Dg,MAX_INTEGRATOR_ATTEMPTS:()=>k9n,MAX_RATIONALE_BYTES:()=>$ye,MAX_RATIONALE_EXCERPT_BYTES:()=>eSe,MAX_STAGE_ITERATIONS:()=>Df,MAX_UNIT_BOLTS:()=>Ev,OK_OUTPUT_SCHEMA:()=>lye,REJECT_LOOP_MIN_REPEATS:()=>gZ,STAGE_STATE_FIELDS:()=>dye,STAGE_STATE_SCHEMA:()=>PY,UNIT_FRONTMATTER_SCHEMA:()=>rv,_resetIsGitRepoForTests:()=>Oft,appendFeedbackIteration:()=>N9n,appendFeedbackReply:()=>ESe,appendStageIteration:()=>lSe,applyAutoFixes:()=>oSe,closeCurrentStageIteration:()=>dSe,completeUnitIteration:()=>yZ,computeFeedbackSignature:()=>gbt,countConsecutiveSameRejects:()=>mbt,countInFlightUnits:()=>wbt,countPendingFeedback:()=>M9n,countUnitBolts:()=>hbt,deleteFeedbackFile:()=>RZ,deleteFrontmatterFields:()=>Zh,deriveAuthorType:()=>mSe,deriveFeedbackIdFromFilename:()=>xbt,deriveFeedbackStatus:()=>np,deriveUnitStatus:()=>J0,detectDagCycles:()=>_bt,detectSettledDuplicate:()=>ybt,dismissFeedbackClosureReply:()=>_Se,ensureHaikuGitignored:()=>eL,feedbackDir:()=>lo,feedbackSeverityRank:()=>Xc,findFeedbackFile:()=>bc,findHaikuRoot:()=>ve,formatFeedbackId:()=>Gd,getIntentScopeTickCounter:()=>T1,getStageIterationCount:()=>bbt,gitCommitAll:()=>SZ,gitCommitState:()=>wt,gitCommitStateBackgroundPush:()=>jg,gitCommitStateIfDirty:()=>pSe,handleStateTool:()=>vSe,incrementFeedbackBolt:()=>D9n,intentDir:()=>ce,intentFromCurrentBranch:()=>_v,intentTitleNeedsRepair:()=>b1,isGitRepo:()=>Ee,isIntentArchived:()=>_1,isIntentLocked:()=>E1,listInstalledSkills:()=>$0,listVisibleIntentSlugs:()=>T9n,listVisibleIntents:()=>Fg,matchesGlob:()=>tSe,migrateIterationReasonsOnRead:()=>nSe,migrateMisplacedWorktrees:()=>pbt,moveFeedbackFile:()=>Ibt,normalizeLegacyFeedbackStatus:()=>TZ,normalizeRejectReason:()=>cSe,parseFrontmatter:()=>re,persistDesignDirectionSelection:()=>gSe,persistDesignDirectionUploads:()=>ySe,pickUndispatchedUnitBlocks:()=>Abt,primaryRepoRoot:()=>Br,readClaimedAuthorId:()=>n9n,readDecisionLog:()=>I3,readFeedbackFiles:()=>Us,readIntentBody:()=>Yh,readJson:()=>qb,readStagePr:()=>Tv,readStagePrs:()=>fSe,repairDeclaredOutput:()=>_Z,resolveUnitHats:()=>iSe,runInlineQualityGates:()=>aSe,safeMkdirAndRename:()=>yv,setFrontmatterField:()=>Ne,setHaikuRootForTests:()=>Nft,setIsGitRepoForTests:()=>Pft,setStagePrField:()=>zb,setUnitFrontmatterField:()=>v9n,slugifyTitle:()=>vZ,stageDir:()=>cr,stageStatePath:()=>Y0,stampDispatchClaim:()=>Rbt,stampUnitHatLease:()=>SSe,startUnitIteration:()=>y1,stateToolDefs:()=>TSe,syncSessionMetadata:()=>Xr,timestamp:()=>mn,unitIntentDir:()=>i9n,unitOutputExists:()=>Kh,unitPath:()=>Pa,updateFeedbackFile:()=>bSe,validateBranch:()=>hSe,validateIntentSchema:()=>x0,validateRationaleCaps:()=>V3n,validateSlugArgs:()=>jD,validateUnitFrontmatter:()=>Ebt,validateUnitSchema:()=>Ng,validateUnitScope:()=>mZ,writeFeedbackFile:()=>Qo,writeJson:()=>S1});import{execFileSync as Na,execSync as Wh,spawn as j3n,spawnSync as lZ}from"node:child_process";import{randomBytes as H3n}from"node:crypto";import{appendFileSync as q3n,existsSync as ue,lstatSync as B3n,mkdirSync as Dl,readdirSync as an,readFileSync as xe,renameSync as cbt,rmSync as Qye,statSync as ubt,unlinkSync as X0,writeFileSync as In}from"node:fs";import{homedir as z3n}from"node:os";import{basename as G3n,dirname as Q0,join as te,resolve as tp,sep as Z0}from"node:path";import{readdirSync as S9n}from"node:fs";function nbt(e){return Buffer.byteLength(e,"utf-8")}function V3n(e){let t=nbt(e.agent_rationale);if(t>$ye)return{kind:"agent_rationale_too_long",bytes:t,cap:$ye};for(let n=0;neSe)return{kind:"rationale_excerpt_too_long",index:n,path:r.path,bytes:i,cap:eSe}}return null}function b1(e){if(typeof e!="string")return!0;let t=e.trim();return!!(t.length===0||t.length>sSe||/\n/.test(t))}function oSe(e,t,n){let r=te(e,t,"intent.md");if(!ue(r))return{applied:[],remaining:n};let i=[],s=[r],o=te(e,t,"stages");if(ue(o))for(let y of an(o,{withFileTypes:!0})){if(!y.isDirectory())continue;let b=te(o,y.name,"units");if(ue(b))for(let S of an(b,{withFileTypes:!0}))S.isFile()&&S.name.endsWith(".md")&&s.push(te(b,S.name))}for(let y of s){let b=xe(y,"utf8"),{text:S,removed:E}=hg(b);if(E.length===0)continue;In(y,S);let _=y.startsWith(te(e,t))?y.slice(te(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=xe(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"&&b1(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=W3n(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=te(e,t,"stages");if(ue(h))for(let y of an(h,{withFileTypes:!0})){if(!y.isDirectory())continue;let b=te(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=te(b,S.name),_=xe(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],_=te(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=te(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=xe(_,"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 W3n(e){try{return ubt(e)}catch{return null}}function K3n(e,t){if(!Ee())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 dbt(e){let t=new Map,n=nn(),r=[te(e,"studios"),te(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=te(i,s.name,"STUDIO.md");if(!ue(o))continue;let{data:a}=re(xe(o,"utf8")),c=Array.isArray(a.stages)?a.stages:[];t.set(s.name,c)}return{studioMap:t,searchPaths:r}}function EZ(e,t,n,r){let i=te(e,t,"intent.md");if(!ue(i))return[];let s=xe(i,"utf8"),{data:o}=re(s),a=[],{removed:c}=hg(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"&&b1(o.title)){let d=o.title,f=/\n/.test(d)?"title contains newlines":`title is ${d.length} chars (max ${sSe})`;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=te(e,t,"stages",d,"units");if(!ue(f))continue;let p=[];if(u){let h=null;for(let m of r){let g=te(m,u,"stages",d,"STAGE.md");if(!ue(g))continue;let{data:y}=re(xe(g,"utf8"));Array.isArray(y.inputs)&&y.inputs.length>0&&(h=y.inputs);break}if(h){let m=te(e,t);for(let g of h)for(let y of r)for(let b of["discovery","outputs"]){let S=te(y,u,"stages",g.stage,b);if(ue(S))for(let E of an(S).filter(_=>_.endsWith(".md"))){let _=xe(te(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=te(m,k);ue(P)&&p.push(k)}}}}for(let h of an(f,{withFileTypes:!0})){if(!(h.isFile()&&h.name.endsWith(".md")))continue;Y3n.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=xe(te(f,h.name),"utf8"),{removed:g}=hg(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(Ee()){let d=te(e,t,"intent.md"),f=K3n(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 fbt(e,t,n){let r=e??ve(),i=te(r,"intents");if(!ue(i))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};let{studioMap:s,searchPaths:o}=dbt(r),a;if(t){if(/[/\\]|\.\./.test(t))throw new Error(`Invalid intent slug: "${t}"`);if(!ue(te(i,t,"intent.md")))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};a=[t]}else a=an(i,{withFileTypes:!0}).filter(f=>f.isDirectory()&&ue(te(i,f.name,"intent.md"))).map(f=>f.name);let c=[],u=[],l=[],d=[];for(let f of a){let p=EZ(i,f,s,o);if(n&&p.length>0){let h=oSe(i,f,p);l.push(...h.applied),h.applied.length>0&&(p=EZ(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 Z3n(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 rbt(){if(!Ee())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 J3n(e){try{return Na("git",["-C",e,"status","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!0}}function pbt(){let e={moved:[],skipped:[],cleanedSkeletons:[]};if(!Ee())return e;let t=Br(),n=`${Z0}.haiku${Z0}worktrees${Z0}`;for(let i of rbt()){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(J3n(i.path)){e.skipped.push({path:i.path,reason:"uncommitted changes \u2014 commit/stash inside the worktree, then re-run haiku_repair"});continue}try{let u=c.slice(0,c.lastIndexOf(Z0));Dl(u,{recursive:!0}),Na("git",["worktree","move",i.path,c],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}),e.moved.push({old:i.path,new:c,branch:i.branch??"(detached)"})}catch(u){e.skipped.push({path:i.path,reason:`git worktree move failed: ${u instanceof Error?u.message:String(u)}`})}}let r=new Set;for(let i of rbt())i.path!==t&&r.add(i.path);for(let i of r){let s=te(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=te(c,u.name);if(u.isFile()||u.isSymbolicLink()){o=!0;return}u.isDirectory()&&a(l)}};a(s)}catch{o=!0}if(!o)try{Qye(s,{recursive:!0,force:!0}),e.cleanedSkeletons.push(s);let a=te(i,".haiku");ue(a)&&an(a).length===0&&Qye(a,{recursive:!0,force:!0})}catch{}}return e}function X3n(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 Q3n(e){NT();let t=Zo(),n=[];if(e){let s=lpe();for(let{slug:o,branches:a}of s){let c=a.map(u=>u.replace(`haiku/${o}/`,""));try{let u=a[0],l=Rpe(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=vpe(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=i3();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=s3(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=te(a,".haiku"),l=fbt(u,void 0,e);c.scanned=l.scanned,c.applied=l.applied,c.remaining=l.remaining;let d=te(u,"intents",s,"intent.md");if(ue(d)&&re(xe(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=a3(a,o,p.join(` +`);return r.drift_detection===!1}catch{return!1}}function Byt(e){let t=Mg(e,"stages");if(!UY(t))return[];try{return Lyt(t,{withFileTypes:!0}).filter(n=>n.isDirectory()).map(n=>n.name)}catch{return[]}}var Fyt,W4n,K4n,Y4n,Z4n,_fi,Tfi,J4n,P0=v(()=>{"use strict";Fyt=Re(Kt(),1);_l();W4n=O.enum(["agent","human-via-mcp","human-implicit"]),K4n=O.enum(["agent-write","human-write-tool","spa-upload","classification-terminal","baseline-init"]),Y4n=O.enum(["stage-output","knowledge","unit-output","intent-meta"]),Z4n=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:W4n,acknowledged_at:O.string(),acknowledged_via:K4n,stage:O.string().nullable(),tracking_class:Y4n}),_fi=O.record(O.string(),Z4n);Tfi=64*1024,J4n=[{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 Vyt,readFileSync as $4n,statSync as eKn}from"node:fs";import{basename as Wyt,join as $o,relative as jY}from"node:path";function tKn(e){if(!Qf(e))return[];let t=[];try{t=Vyt(e)}catch{return[]}let n=[];for(let r of t)if(!r.startsWith(".")&&!MY.has(r))try{eKn($o(e,r)).isFile()&&n.push(r)}catch{}return n}function nKn(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 bye(e){if(!Qf(e))return null;try{let t=$4n(e,"utf8");return(0,Kyt.default)(t).data}catch{return null}}function Sye(e){if(e===null||typeof e!="object")return null;let t=e;return typeof t.at=="string"&&t.at.length>0?t.at:null}function zyt(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 Gyt(e,t){let n=Lb(e);if(!n)return null;if(n===t)return{matches:!0,current:n};let r=O0(e);return r===t?{matches:!0,current:r}:{matches:!1,current:n}}function rKn(e){let t=$o(e,"units");return Qf(t)?Vyt(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>$o(t,n.name)):[]}function iKn(e,t,n){return $o(e,"stages",t,"discovery",`${n}.md`)}function Eye(e,t){let n=e.replace(/\{intent-slug\}/g,t),r=`.haiku/intents/${t}/`;return n.startsWith(r)?n.slice(r.length):n}function sKn(e,t,n,r){let i=Wyt(e),s=new Set;try{for(let o of no(t,n))o.location&&s.add(Eye(o.location,i))}catch{}for(let o of r){let a=bye(o),c=a&&Array.isArray(a.outputs)?a.outputs:[];for(let u of c)typeof u=="string"&&u.length>0&&s.add(Eye(u,i))}return s}function oKn(e,t,n,r){return $o(e,"plugin","studios",t,"stages",n,"discovery",`${r}.md`)}function HY(e){let t=e.repoRoot??$o(e.intentDir,"..","..",".."),n=$o(t,".haiku");if(FY(n))return{events:[],scanned:0,skipped:0};let r=[],i=0,s=0,o=$o(e.intentDir,"stages",e.stage),a=rKn(o),c=sKn(e.intentDir,e.studio,e.stage,a),u=Wyt(e.intentDir),l=p=>c.has(p)||c.has(Eye(p,u));for(let p of a){let h=bye(p);if(!h)continue;let m=(p.split("/").pop()??"").replace(/\.md$/,"");if(h.started_at==null){s++;continue}let g=jY(e.intentDir,p),y=h.reviews??{};for(let[S,E]of Object.entries(y)){i++;let _=Sye(E);if(!_)continue;let T=zyt(E);T&&Qf(p)&&!VL(p,T)&&r.push({unit:m,role:S,kind:"spec",file:g,since:_});let R=nKn(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=WL(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}(CY(N)?!VL(N,x):(()=>{let L=Lb(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=WL(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=tKn(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=O0($);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 _=Sye(E);if(!_)continue;let T=E,R=iKn(e.intentDir,e.stage,S),A=typeof T.output_sha256=="string"?T.output_sha256:null;if(A){let P=Gyt(R,A);P&&!P.matches&&r.push({unit:m,role:S,kind:"discovery_output",file:jY(e.intentDir,R),since:_})}let x=oKn(t,e.studio,e.stage,S),k=typeof T.mandate_sha256=="string"?T.mandate_sha256:null;if(k){let P=Gyt(x,k);P&&!P.matches&&r.push({unit:m,role:S,kind:"discovery_mandate",file:jY(t,x),since:_})}}}let d=$o(e.intentDir,"intent.md"),f=bye(d);if(f){let p=f.approvals??{},h=jY(e.intentDir,d);for(let[m,g]of Object.entries(p)){i++;let y=Sye(g);if(!y)continue;let b=zyt(g);b&&(VL(d,b)||r.push({unit:"(intent)",role:m,kind:"spec",file:h,since:y}))}}return{events:r,scanned:i,skipped:s}}var Kyt,_ye=v(()=>{"use strict";Kyt=Re(Kt(),1);Kn();P0();Xf()});function N0(e,t={}){let n=`haiku/${e}/main`;if(!Ee())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 KL(e,t={}){let n=N0(e,t);return n.applicable&&!n.merged}var YL=v(()=>{"use strict";ar();Eb()});var D0={};Ar(D0,{__testOnly:()=>mKn,computeElaborateSignals:()=>M0,derivePosition:()=>$f,findCurrentStage:()=>ai,intentReviewRoles:()=>GY,isBriefEnabled:()=>Xyt,isReflectionEnabled:()=>lv,isStageComplete:()=>C0,listUnitPaths:()=>dv,nextHatForUnit:()=>uv,pendingApprovalSlots:()=>uKn,pendingReviewSlots:()=>cKn,readFm:()=>Qc,serializeElaborateSignals:()=>Aye,stageOwesBrief:()=>eSt,stageOwesObservations:()=>vye,stageRoleLists:()=>VY,unitName:()=>zY,walkFeedbackTrack:()=>Rye});import{existsSync as xa,readdirSync as ZL,readFileSync as qY,writeFileSync as Yyt}from"node:fs";import{basename as Jyt,join as zr}from"node:path";function aKn(e){let t=zr(e.intentDir,"intent.md");if(xa(t))try{let n=qY(t,"utf8"),r=(0,cv.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,Yyt(t,cv.default.stringify(r.content,i))):u===!0&&(delete c[o],Object.keys(c).length===0?delete i[s]:i[s]=c,Yyt(t,cv.default.stringify(r.content,i)))}catch{}}function lv(e){let t=zr(e,"intent.md");if(!xa(t))return!0;try{let n=qY(t,"utf8"),i=(0,cv.default)(n).data;return!(i.reflection===!1||i.autotune===!1)}catch{return!0}}function Xyt(e){let t=zr(e,"intent.md");if(!xa(t))return!0;try{let n=qY(t,"utf8");return(0,cv.default)(n).data.brief!==!1}catch{return!0}}function Qc(e){if(!xa(e))return null;try{let t=qY(e,"utf8"),n=(0,cv.default)(t);return{data:n.data,body:n.content}}catch{return null}}function Qyt(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 Fb(e){return Array.isArray(e.iterations)?e.iterations??[]:[]}function BY(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function $yt(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function zY(e){return Jyt(e).replace(/\.md$/,"")}function dv(e){let t=zr(e,"units");return xa(t)?ZL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>zr(t,n.name)).sort():[]}function Zyt(e){let t=zr(e,"feedback");return xa(t)?ZL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>zr(t,n.name)).sort():[]}function uv(e,t){if(t.length===0)return null;let n=Fb(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 cKn(e,t){let n=$yt(e);return t.filter(r=>!n[r])}function uKn(e,t){let n=BY(e);return t.filter(r=>!n[r])}function lKn(e,t,n){let r=Object.keys(Tl(e,t)).sort();return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...r,"user"]}function dKn(e){return typeof e.started_at=="string"&&e.started_at.length>0}function fKn(e,t){let n=BY(e);for(let r of t)if(!n[r])return!1;return!0}function pKn(e,t){if(fKn(e,t))return!0;let n=dKn(e),r=Fb(e);return n&&r.length===0?(Array.isArray(e.outputs)?e.outputs:[]).length===0:!1}function hKn(e,t,n,r){let i=zr(e,"stages",n,"units");if(!xa(i))return!1;let s=ZL(i).filter(c=>c.endsWith(".md"));if(s.length===0||Es(t,n).length===0)return!1;let a=lKn(t,n,r);for(let c of s){let u=Qc(zr(i,c))?.data;if(!u||!pKn(u,a))return!1}return!0}function C0(e,t,n,r){return hKn(e,t,n,r)}function vye(e,t){return lv(e)?!xa(zr(e,"stages",t,"observations.md")):!1}function eSt(e,t,n){return!(!Xyt(e)||xa(zr(e,"stages",t,"BRIEF.md"))||n)}function ai(e,t,n){let r=n??zr(ve(),"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(!C0(r,t,c,a))return c;return null}function Rye(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=tSt(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=Zyt(zr(t,"stages",b));for(let E of S){let _=u(b,E);if(_)return _}}let l=Zyt(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=ZL(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&&Qyt(k)){A=!0;break}}if(A){_=!1;break}}_&&p.push(b)}if(p.length===0||!p.some(b=>b.inFlight||h0(b.severity)))return null;let g=[...p].sort((b,S)=>Xc(b.severity)-Xc(S.severity)).slice(0,fv),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 tSt(e,t,n){let r=Qc(t);if(!r)return null;let i=r.data;if(Qyt(i))return null;let s=nSt(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=Fb(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=uv(i,a);if(c===null){let u=Fb(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 nSt(e){let t=Jyt(e).match(/^(\d+)-/);return t?`FB-${t[1].padStart(3,"0")}`:null}function rSt(e){let{slug:t,intentDir:n,studio:r,stage:i,mode:s}=e,o=zr(n,"stages",i),c=dv(o).map(R=>({path:R,name:zY(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}=VY(r,i,s,d),h=M0({slug:t,studio:r,stage:i,stageDir:o,unitNames:c.map(R=>R.name),mode:s});if(h.length>0){if(oL(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:ehe(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||Fb(P.fm).length>0?!1:!$yt(P.fm)[x]).map(P=>P.name);if(k.length!==0){if(x==="user"){A=k;continue}if(Tye.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||Fb(k.fm).length>0);if(eSt(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=Fb(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&&uv(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,fv),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=uv(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:Fb(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=>!BY(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(Tye.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(lv(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",a;if(s&&typeof s.data.sealed_at=="string"&&s.data.sealed_at.length>0&&(a=N0(t),!a.applicable||a.merged))return{track:"sealed",action:{kind:"sealed"}};if(s&&o!=="autopilot"&&!(typeof s.data.verified_at=="string"?s.data.verified_at:"")){let d=wn(s.data,r)[0]??"",f=d?zr(n,"stages",d):"",p=f&&xa(f)?dv(f).length>0:!1;if(ai(t,r,n)===d&&!p)return{track:"intent",action:{kind:"elaborate_loop",signals_unmet:[{signal:"verify_conversation"}]}}}let c=ai(t,r,n);if(c){let u=HY({intentDir:n,stage:c,studio:r});if(u.events.length>0){let l=Myt({events:u.events,intentDir:n,stage:c,slug:t});s&&aKn({intentDir:n,stage:c,tripped:l.cascade_alarm_tripped})}}{let u=s?.data??{},l=Rye({intentDir:n,studio:r,intent:u,currentStage:c??wn(u,r).slice(-1)[0]??""});if(l)return{track:"feedback",action:l}}if(c){let u=rSt({slug:t,intentDir:n,studio:r,stage:c,mode:o});return u!==null?{track:"intent",action:u}:{track:"noop",action:null}}if(s){let u=BY(s.data),l=Object.keys(yg(r)).sort(),d=GY(o,l),f=[],p=!1;for(let m of d)if(!u[m]){if(m==="user"){p=!0;continue}if(Tye.has(m))return f.length>0?{track:"intent",action:{kind:"intent_review",role:f[0].role,dispatches:f}}:{track:"intent",action:{kind:"intent_review",role:m,dispatches:[{role:m}]}};f.push({role:m})}if(f.length>0)return{track:"intent",action:{kind:"intent_review",role:f[0].role,dispatches:f}};if(!u.intent_quality_gates)return{track:"intent",action:{kind:"dispatch_quality_gates",stage:"",units:[],scope:"intent"}};if(p)return{track:"intent",action:{kind:"intent_review",role:"user",dispatches:[{role:"user"}]}};if(s.data.sealed_at==null&&lv(n)){let m=zr(n,"reflection.md");if(!xa(m))return{track:"intent",action:{kind:"record_reflection"}}}let h=a??N0(t);if(h.applicable&&!h.merged)return{track:"intent",action:{kind:"pending_seal",default_branch:h.defaultBranch}};if(s.data.sealed_at==null)return{track:"intent",action:{kind:"seal_intent"}}}return{track:"sealed",action:{kind:"sealed"}}}function GY(e,t=[]){let n=["spec","continuity","cross-stage-consistency"],r=t.filter(i=>!n.includes(i));return[...n,...r,"user"]}function VY(e,t,n,r){let s=["continuity","cross-stage-consistency",...r??Object.keys(Tl(e,t)).sort()],o=n==="autopilot",a=s.filter(l=>!UT.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 M0(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)&&ZL(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 Aye(e){return e.map(t=>t.signal==="discovery"?`discovery:${t.agent}`:t.signal)}var cv,Tye,mKn,Oa=v(()=>{"use strict";cv=Re(Kt(),1);Hi();ze();Kn();A3();ji();Dyt();_ye();YL();Tye=new Set(["spec","quality_gates","user"]);mKn={walkIntentTrack:rSt,walkFeedbackTrack:Rye,nextActionForFeedback:tSt,parseFbIdFromFilename:nSt}});var iSt,JL,wye=v(()=>{"use strict";iSt=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"]),JL=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 SKn(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 bKn(e,t){let n=t.toLowerCase(),r=new RegExp(`<${n}\\b[^>]*/?>`,"gi");return e.replace(r,"")}function EKn(e){return e.replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function _Kn(e){return e.replace(/\s+(?:formaction|srcdoc|xlink:href)\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function TKn(e){return e.replace(/\b(href|src)\s*=\s*(["']?)([^"'\s>]+)/gi,(t,n,r,i)=>oSt.test(i.trim())?`${n}=${r||'"'}#${r||'"'}`:t)}function vKn(e){return e.replace(/(!?\[[^\]]*\])\(([^)]+)\)/g,(t,n,r)=>oSt.test(r.trim())?`${n}(#)`:t)}function sSt(e){let t=e;for(let n of gKn)t=SKn(t,n);for(let n of yKn)t=bKn(t,n);return t=EKn(t),t=_Kn(t),t=TKn(t),t=vKn(t),t}function pv(e){if(typeof e!="string")return"";let t=e;for(let n=0;n<5;n++){let r=sSt(t);if(r===t)return r;t=r}return sSt(t)}var gKn,yKn,oSt,kye=v(()=>{"use strict";gKn=["script","iframe","object","style","form"],yKn=["embed"],oSt=/^(?:javascript|vbscript|data:text\/html|data:text\/javascript|data:application\/(?:java|ecma)script|data:image\/svg\+xml)/i});import{randomBytes as RKn}from"node:crypto";function L0(){let e=wKn();return kKn(e)}function wKn(){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=RKn(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 kKn(e){let t=0;for(;t0n;){let i=Number(n%58n);n=n/58n,r=AKn[i]+r}return"1".repeat(t)+r}var AKn,aSt=v(()=>{"use strict";AKn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"});var Uye={};Ar(Uye,{_runPresenceSweepForTests:()=>NKn,beginPresenceWatch:()=>Iye,clearHeartbeat:()=>WY,clearPreviousReviewSnapshot:()=>pSt,createDesignDirectionSession:()=>Cye,createPickerSession:()=>Mye,createQuestionSession:()=>Nye,createSession:()=>KY,createViewSession:()=>Dye,deleteSession:()=>q0,endPresenceWatch:()=>xye,findLiveReviewSessionForIntent:()=>e1,getPreviousReviewSnapshot:()=>Pye,getSession:()=>$t,hasAttachedReviewSessionForIntent:()=>t1,hasPresenceLost:()=>Oye,isBrowserAttached:()=>mv,notifySessionUpdate:()=>H0,recordHeartbeat:()=>QL,setPreviousReviewSnapshot:()=>fSt,updateDesignDirectionSession:()=>r1,updatePickerSession:()=>DKn,updateQuestionSession:()=>n1,updateSession:()=>Ml,updateViewSession:()=>Lye,waitForSession:()=>hv});import{EventEmitter as IKn}from"node:events";function Iye(e,t={}){j0.set(e,t.startedAt??Date.now())}function xye(e){j0.delete(e)}function QL(e){return qi.has(e)?(F0.set(e,Date.now()),j0.delete(e),jb.delete(e)&&console.error(`[haiku] Presence restored for session ${e}`),!0):!1}function Oye(e){return jb.has(e)}function WY(e){F0.delete(e),jb.delete(e),j0.delete(e)}function cSt(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 uSt(e,t){jb.has(e)||(jb.add(e),console.error(`[haiku] Presence lost for session ${e} \u2014 ${t}`),U0.emit(`session:${e}`))}function dSt(){let e=Date.now();for(let[t,n]of F0){if(e-n<=xKn)continue;let r=qi.get(t);if(!r){F0.delete(t),jb.delete(t);continue}cSt(r)&&uSt(t,`no heartbeat in ${Math.round((e-n)/1e3)}s`)}for(let[t,n]of j0){if(F0.has(t)||e-n<=PKn)continue;let r=qi.get(t);if(!r){j0.delete(t);continue}cSt(r)&&uSt(t,`SPA never opened (no heartbeat in the first ${Math.round((e-n)/1e3)}s)`)}}function NKn(){dSt()}function H0(e){U0.emit(`session:${e}`)}function hv(e,t=1800*1e3,n){return new Promise((r,i)=>{let s=setTimeout(()=>{U0.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),U0.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}),U0.once(`session:${e}`,o)})}function Pye(e){return XL.get(e)}function fSt(e,t){XL.set(e,t)}function pSt(e){XL.delete(e)}function lSt(e){if(XL.has(e)){for(let t of qi.values())if(t.session_type==="review"&&t.intent_dir===e)return;XL.delete(e)}}function $L(){let e=Date.now();for(let[t,n]of ep)if(e-n>MKn){let r=qi.get(t);qi.delete(t),ep.delete(t),WY(t),r?.session_type==="review"&&lSt(r.intent_dir)}for(;qi.size>=CKn;){let t=ep.entries().next().value;if(!t)break;let n=qi.get(t[0]);qi.delete(t[0]),ep.delete(t[0]),WY(t[0]),n?.session_type==="review"&&lSt(n.intent_dir)}}function KY(e){$L();let t=L0(),n={...e,session_type:"review",session_id:t,status:"pending",decision:"",feedback:""};return qi.set(t,n),ep.set(t,Date.now()),n}function Nye(e){$L();let t=L0(),n={...e,session_type:"question",session_id:t,imagePaths:e.imagePaths??[],status:"pending",answers:[],feedback:""};return qi.set(t,n),ep.set(t,Date.now()),n}function Cye(e){$L();let t=L0(),n={...e,session_type:"design_direction",session_id:t,status:"pending",selection:null};return qi.set(t,n),ep.set(t,Date.now()),n}function Mye(e){$L();let t=L0(),n={...e,session_type:"picker",session_id:t,status:"pending",selection:null};return qi.set(t,n),ep.set(t,Date.now()),n}function DKn(e,t){let n=qi.get(e);if(!(!n||n.session_type!=="picker"))return Object.assign(n,t),H0(e),n}function Dye(e){$L();let t=L0(),n={...e,session_type:"view",session_id:t,status:"open"};return qi.set(t,n),ep.set(t,Date.now()),n}function Lye(e,t){let n=qi.get(e);if(!(!n||n.session_type!=="view"))return Object.assign(n,t),H0(e),n}function $t(e){return qi.get(e)}function e1(e){let t,n=0;for(let[r,i]of qi){if(i.session_type!=="review"||i.intent_slug!==e||i.ad_hoc||jb.has(r))continue;let s=ep.get(r)??0;s>n&&(t=i,n=s)}return t}function mv(e){if(!qi.has(e)||jb.has(e))return!1;let t=F0.get(e);return t?Date.now()-t<=LKn:!1}function t1(e){for(let[t,n]of qi)if(n.session_type==="review"&&n.intent_slug===e&&!n.ad_hoc&&mv(t))return!0;return!1}function q0(e){let t=qi.delete(e);return ep.delete(e),WY(e),t}function Ml(e,t){let n=qi.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);fSt(n.intent_dir,{feedback:n.feedback??"",reviewedAt:new Date().toISOString(),intentRawContent:r?.rawContent??"",unitRawContents:s})}else pSt(n.intent_dir);return H0(e),n}}function n1(e,t){let n=qi.get(e);if(!(!n||n.session_type!=="question"))return Object.assign(n,t),H0(e),n}function r1(e,t){let n=qi.get(e);if(!(!n||n.session_type!=="design_direction"))return Object.assign(n,t),H0(e),n}var U0,xKn,OKn,F0,jb,PKn,j0,qi,XL,CKn,MKn,ep,LKn,$c=v(()=>{"use strict";aSt();U0=new IKn;U0.setMaxListeners(200);xKn=12e4,OKn=5e3,F0=new Map,jb=new Set,PKn=6e4,j0=new Map;setInterval(dSt,OKn).unref();qi=new Map,XL=new Map;CKn=100,MKn=14400*1e3,ep=new Map;LKn=3e4});import{spawn as UKn}from"node:child_process";import{existsSync as B0,readFileSync as gSt}from"node:fs";import{createServer as FKn}from"node:net";import{isAbsolute as jKn,join as gv}from"node:path";function qKn(){return new Promise((e,t)=>{let n=FKn();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 BKn(e){return new Promise(t=>{let{Socket:n}=Y("node:net"),r=new n;r.setTimeout(500),r.once("connect",()=>{r.destroy(),t(!0)}),r.once("timeout",()=>{r.destroy(),t(!1)}),r.once("error",()=>{r.destroy(),t(!1)}),r.connect(e,"127.0.0.1")})}async function zKn(e,t){let n=Date.now()+YY;for(;Date.now()setTimeout(r,SSt))}throw new Error(`Dev server did not bind to port ${e} within ${YY}ms`)}async function GKn(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 VKn(e,t){let n=Date.now()+YY;for(;Date.now()setTimeout(r,SSt))}throw new Error(`Process did not return a healthy ready_url (${e}) within ${YY}ms`)}function bSt(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 ESt(e){let t=gv(e,"package.json");if(!B0(t))return null;let n;try{n=JSON.parse(gSt(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=WKn(e);return{command:s==="npm"?["npm","run",i]:[s,"run",i],cwd:e,description:`${s} run ${i}`}}function WKn(e){return B0(gv(e,"bun.lockb"))||B0(gv(e,"bun.lock"))?"bun":B0(gv(e,"pnpm-lock.yaml"))?"pnpm":B0(gv(e,"yarn.lock"))?"yarn":"npm"}function Lg(e){return new Error(`[${_St}] ${e}`)}function hSt(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 Fye(e){let t=gv(e,_St);if(!B0(t))return null;let n;try{n=(0,ySt.default)(gSt(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 jKn(s)?s:gv(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:hSt(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:hSt(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 s1(e){let t=Fye(e);return t?t.processes.filter(n=>n.service||n.requires_tool!==void 0&&n.name!==t.primary):[]}function KKn(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 jye(e,t,n){if(t.length===0)throw new Error("spawnBootGroup: at least one process spec required");let r=KKn(t),i=new Map;for(let l of t)i.set(l.name,l.no_port?null:await qKn());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`),z0(e)},HKn);o.unref?.();let a={sessionId:e,processes:[],primaryName:n,primaryPort:i.get(n)??null,startedAt:Date.now(),ttlTimer:o};i1.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=UKn(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 VKn(b)}else await zKn(d)}}catch(l){throw z0(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 TSt(e,t){let n={name:"app",command:t.command,cwd:t.cwd};return(await jye(e,[n],"app")).primary}function z0(e){let t=i1.get(e);if(!t)return!1;clearTimeout(t.ttlTimer),i1.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 vSt(){let e=0;for(let[t]of i1)$t(t)||(z0(t),e+=1);return e}function YKn(){if(mSt)return;mSt=!0;let e=()=>{for(let[t]of i1)z0(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var ySt,i1,HKn,YY,SSt,_St,mSt,o1=v(()=>{"use strict";ySt=Re(Kt(),1);$c();i1=new Map,HKn=1800*1e3,YY=60*1e3,SSt=200;_St=".haiku/boot.md";mSt=!1;YKn()});import{lstatSync as Hye,mkdirSync as ZKn,realpathSync as RSt,renameSync as JKn,unlinkSync as XKn}from"node:fs";import{isAbsolute as QKn,relative as $Kn,resolve as ZY,sep as JY}from"node:path";function yv(e,t,n,r){let i=ZY(e),s=ZY(t),o=ZY(r),a;try{if(Hye(i).isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`intent root '${i}' is itself a symlink \u2014 refusing`};a=RSt(i)}catch(d){return{ok:!1,code:"parent_open_failed",detail:`cannot stat intent root: ${G0(d)}`}}if(s!==i&&!s.startsWith(`${i}${JY}`))return{ok:!1,code:"parent_chain_escape",detail:`parent '${s}' is not inside intent root '${i}'`};if(!o.startsWith(`${s}${JY}`))return{ok:!1,code:"parent_chain_escape",detail:`dest '${o}' is not directly below parent '${s}'`};let c=$Kn(i,s),u=c===""?[]:c.split(JY),l=i;for(let d of u){if(d===""||d==="."||d===".."||QKn(d))return{ok:!1,code:"parent_chain_escape",detail:`chain segment '${d}' is invalid`};l=ZY(l,d);try{let f=Hye(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{ZKn(l)}catch(h){if(h.code==="EEXIST")try{let g=Hye(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: ${G0(g)}`}}else return{ok:!1,code:"parent_open_failed",detail:`mkdir '${l}' failed: ${G0(h)}`}}else return{ok:!1,code:"parent_open_failed",detail:`lstat '${l}' failed: ${G0(f)}`}}}try{let d=RSt(s);if(d!==a&&!d.startsWith(`${a}${JY}`))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: ${G0(d)}`}}try{JKn(n,o)}catch(d){return{ok:!1,code:"rename_failed",detail:`rename '${n}' \u2192 '${o}' failed: ${G0(d)}`}}return{ok:!0}}function G0(e){return e instanceof Error?e.message:String(e)}function V0(e){try{XKn(e)}catch{}}var XY=v(()=>{"use strict"});var l1={};Ar(l1,{applyFeedbackInvalidations:()=>Bye,drainPendingDispatches:()=>n3n,stampSingleDispatch:()=>qye,stashPendingDispatch:()=>e3n,stashPendingIntentReview:()=>t3n});import{existsSync as a1,readdirSync as wSt,readFileSync as c1}from"node:fs";import{join as Ug}from"node:path";function u1(e){let t=Ug(ve(),"intents",e,"intent.md");if(!a1(t))return null;let n=c1(t,"utf8"),r=re(n);return{path:t,fm:r.data||{}}}function tZ(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function kSt(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function e3n(e,t,n,r,i){let s=u1(e);if(!s)return;let o=t==="review"?$Y:eZ,a={...tZ(s.fm,o)},c={...a[n]??{}};c[r]={dispatched_at:new Date().toISOString(),units:[...i]},a[n]=c,Ne(s.path,o,a)}function t3n(e,t){if(t==="user")return;let n=u1(e);if(!n)return;let r={...kSt(n.fm,QY)};r[t]={dispatched_at:new Date().toISOString()},Ne(n.path,QY,r)}function ISt(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(!a1(l))continue;if(s&&r3n({intentDir:t,stage:n,targetUnit:u,role:r,sinceIso:s})){c.push(u);continue}let d=c1(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}),Ne(l,"reviews",h)}else{let h=Array.isArray(p.outputs)?p.outputs:[],m=p.approvals&&typeof p.approvals=="object"?{...p.approvals}:{};m[r]=zd(t,h),Ne(l,"approvals",m)}a.push(u)}return{stamped:a,skipped:c}}function qye(e,t,n,r){let i=u1(e);if(!i)return{found:!1,stamped:[],skipped:[]};let s=t==="review"?$Y:eZ,o=tZ(i.fm,s),a=o[n]?.[r];if(!a||!Array.isArray(a.units))return{found:!1,stamped:[],skipped:[]};let c=Ug(ve(),"intents",e),{stamped:u,skipped:l}=ISt({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,Ne(i.path,s,o),{found:!0,stamped:u,skipped:l}}function n3n(e){let t=u1(e);if(!t)return!1;let n=ve(),r=Ug(n,"intents",e),i=!1;for(let o of["review","approval"]){let a=o==="review"?$Y:eZ,c=tZ(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;ISt({intentDir:r,stage:u,role:d,units:f.units,dispatchedAt:f.dispatched_at,kind:o}).stamped.length>0&&(i=!0)}}Ne(t.path,a,{})}}let s=kSt(t.fm,QY);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&&(i3n({intentDir:r,role:c,sinceIso:u.dispatched_at})||(o[c]={at:new Date().toISOString()},a=!0,i=!0))}a&&Ne(t.path,"approvals",o),Ne(t.path,QY,{})}return i}function r3n(e){let t=Ug(e.intentDir,"stages",e.stage,"feedback");if(!a1(t))return!1;for(let n of wSt(t,{withFileTypes:!0})){if(!n.isFile()||!n.name.endsWith(".md"))continue;let r=Ug(t,n.name),i=c1(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)||!h0(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],Ne(t.path,e.field,n))}var $Y,eZ,QY,Sv=v(()=>{"use strict";Hi();ze();Xf();$Y="_pending_review_dispatches",eZ="_pending_approval_dispatches",QY="_pending_intent_review_dispatches"});import{existsSync as s3n,readFileSync as o3n}from"node:fs";import{join as a3n}from"node:path";function OSt(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{Bye({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{c3n({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 c3n(e){let t=ve(),n=a3n(t,"intents",e.slug,"stages",e.stage,"units",`${e.targetUnit}.md`);if(!s3n(n))return;let r=Cg(n);if(!r)return;let i=o3n(n,"utf8"),o=(0,xSt.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&&Ne(n,"reviews",u);let l=c("approvals");l&&Ne(n,"approvals",l)}var xSt,PSt=v(()=>{"use strict";xSt=Re(Kt(),1);Sv();Xf();ze();vo()});var FSt={};Ar(FSt,{__testOnly:()=>S3n,withIntentDispatchLock:()=>W0,withIntentMainLock:()=>sZ,withStageLock:()=>Hb});import{existsSync as u3n,mkdirSync as CSt,readFileSync as l3n,rmSync as MSt,statSync as d3n,writeFileSync as f3n}from"node:fs";import{join as nZ}from"node:path";function DSt(){return nZ(Br(),".haiku","locks")}function m3n(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function g3n(e){let t=nZ(e,"holder.json");if(!u3n(t))return null;try{let n=l3n(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 LSt(e){let t;try{t=Date.now()-d3n(e).mtimeMs}catch{return!1}if(t{"use strict";ze();p3n=50,NSt=3e4,h3n=5*6e4;S3n={acquireLock:rZ,releaseLock:iZ,lockRoot:DSt,isStale:LSt}});function d1(e){return Array.isArray(e.iterations)?e.iterations:[]}function b3n(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function zye(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function jSt(e){let t=e.fm.started_at;return typeof t=="string"&&t.length>0||t instanceof Date&&!Number.isNaN(t.getTime())?!0:d1(e.fm).length>0}function E3n(e,t,n,r){return r===!0?"completed":r===!1?e.length===0?"pending":e.some(jSt)?"active":"pending":e.length===0||!e.some(jSt)?"pending":e.every(s=>{let o=d1(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=zye(s.fm);return n.every(u=>c[u])})?"completed":"active"}function _3n(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=>!b3n(c.fm)[o]))return"review";if(t.length>0&&!e.every(a=>{let c=d1(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=>!zye(c.fm)[o]))return"gate";return null}function T3n(e,t){return e.length===0?null:e.every(r=>{let i=zye(r.fm);return t.every(s=>i[s])})?"advanced":null}function HSt(e){return typeof e=="string"&&e.length>0?e:e instanceof Date&&!Number.isNaN(e.getTime())?e.toISOString():null}function v3n(e){return e.map(n=>HSt(n.fm.started_at)).filter(n=>n!==null).sort()[0]??null}function R3n(e,t){if(t!=="completed")return null;let n=null;for(let r of e){let i=d1(r.fm);if(i.length===0)continue;let s=i[i.length-1];if(s.result!=="advance")continue;let o=HSt(s.completed_at);o!==null&&(n===null||o>n)&&(n=o)}return n}function A3n(e){let t=0;for(let n of e){let r=d1(n.fm);r.length>t&&(t=r.length)}return t}function Gye(e){let{stage:t,units:n,intentMode:r,hats:i=[],reviewRoles:s=[],approvalRoles:o=[],stageMergedIntoMain:a=null,elaborationVerified:c=null}=e,u=E3n(n,i,o,a),l=u==="completed"?null:_3n(n,i,s,o,r,c),d=T3n(n,o),f=v3n(n),p=R3n(n,u),h=A3n(n);return{stage:t,status:u,phase:l,started_at:f,completed_at:p,gate_outcome:d,visits:h}}var Vye=v(()=>{});import{execFileSync as aZ}from"node:child_process";import{existsSync as BSt,readdirSync as w3n,readFileSync as k3n}from"node:fs";import{basename as zSt,join as oZ}from"node:path";function Wye(e){if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(Wye);if(e!==null&&typeof e=="object"){let t={};for(let[n,r]of Object.entries(e))t[n]=Wye(r);return t}return e}function VSt(e){try{let t=(0,GSt.default)(e).data;return Wye(t)}catch{return null}}function WSt(e){if(!BSt(e))return null;try{return VSt(k3n(e,"utf8"))}catch{return null}}function I3n(e){let t=oZ(e,"units");return BSt(t)?w3n(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).sort((n,r)=>n.name.localeCompare(r.name)).map(n=>{let r=WSt(oZ(t,n.name))??{};return{name:zSt(n.name,".md"),fm:r}}):[]}function x3n(e,t){if(!Ee())return null;try{return aZ("git",["show",`${e}:${t}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return null}}function KSt(e,t){let n=x3n(e,t);return n==null?null:VSt(n)}function O3n(e,t){if(!Ee())return[];try{return aZ("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 P3n(e,t,n){let r=`.haiku/intents/${t}/stages/${n}/units`,i=O3n(e,r);return i.length===0?[]:i.map(s=>{let o=KSt(e,`${r}/${s}`)??{};return{name:zSt(s,".md"),fm:o}})}function Kye(e,t,n){return n==="autopilot"?["spec"]:["spec",...Object.keys(Tl(e,t)).sort(),"user"]}function Yye(e,t,n){return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...Object.keys(Tl(e,t)).sort(),"user"]}function N3n(e,t){if(!Ee())return!1;let n=`haiku/${e}/main`,r=`.haiku/intents/${e}/stages/${t}/units`;try{return aZ("git",["ls-tree","--name-only",`${n}:${r}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` +`).some(s=>s.trim().endsWith(".md"))}catch{return!1}}function qSt(e){if(!Ee())return!1;try{return aZ("git",["rev-parse","--verify",e],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!1}}function bv(e){let{slug:t,studio:n,stage:r,intentDir:i,intentMode:s}=e,o=oZ(i,"stages",r),a=Es(n,r),c=Kye(n,r,s),u=Yye(n,r,s),l=`haiku/${t}/main`,d=`haiku/${t}/${r}`,f=Ee(),p=f&&qSt(l),m=f&&qSt(d)?d:p?l:null,g=m?P3n(m,t,r):I3n(o),y=p?N3n(t,r):null,b=oZ(o,"elaboration.md"),S=`.haiku/intents/${t}/stages/${r}/elaboration.md`,E=m?KSt(m,S):WSt(b),_=null;return E!==null&&(_=(typeof E.verified_at=="string"?E.verified_at:"").length>0),Gye({stage:r,units:g,intentMode:s,hats:a,reviewRoles:c,approvalRoles:u,stageMergedIntoMain:y,elaborationVerified:_})}var GSt,f1=v(()=>{"use strict";Vye();GSt=Re(Kt(),1);Eb();Kn();ji()});import{appendFileSync as C3n,existsSync as xpi,mkdirSync as YSt,readFileSync as Opi,writeFileSync as M3n}from"node:fs";import{dirname as ZSt}from"node:path";function JSt(e,t){try{YSt(ZSt(e),{recursive:!0}),M3n(e,`${JSON.stringify(t,null,2)} +`)}catch{}}function Bi(e,t){try{let n=e.replace(/\.json$/,".jsonl");YSt(ZSt(n),{recursive:!0});let r={...t,ts:new Date().toISOString()};C3n(n,`${JSON.stringify(r)} +`)}catch{}}var p1=v(()=>{"use strict"});var XSt,QSt,$St,ebt=v(()=>{"use strict";XSt=["status","active_stage","started_at","completed_at","phase","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at"],QSt=["status","phase","started_at","completed_at","gate_entered_at","gate_outcome"],$St=["status","started_at","completed_at","bolt","hat","hat_started_at","scope_reject_attempts"]});import{createHash as D3n}from"node:crypto";import{existsSync as tbt,readdirSync as L3n,readFileSync as nbt,writeFileSync as U3n}from"node:fs";import{join as cZ}from"node:path";function F3n(e){let t=JSON.stringify(e,Object.keys(e).sort());return D3n("sha256").update(t).digest("hex").slice(0,16)}function Zye(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function j3n(e,t,n){if(!n)return{};let r=cZ(e,"intents",t,"stages",n,"units");if(!tbt(r))return{};for(let i of L3n(r)){if(!i.endsWith(".md"))continue;let s=nbt(cZ(r,i),"utf8"),{data:o}=re(s);if(o.status==="active")return Zye(o,$St)}return{}}function ci(e){if(!Mi().hooks)try{let t=ve(),n=cZ(t,"intents",e,"intent.md");if(!tbt(n))return;let r=nbt(n,"utf8"),{data:i}=re(r),s=i.active_stage||"",o=Zye(i,XSt),a={};if(s){let f=Y0(e,s),p=qb(f);a=Zye(p,QSt)}let c=j3n(t,e,s),l=F3n({intent:o,stage:a,unit:c}),d=cZ(t,"intents",e,".fsm_checksum");U3n(d,l)}catch(t){console.error(`[haiku] sealIntentState(${e}) failed:`,t)}}var uZ=v(()=>{"use strict";_f();ze();ebt()});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 AZ={};Ar(AZ,{AGENT_AUTHORABLE_INTENT_FIELDS:()=>tv,AGENT_AUTHORABLE_UNIT_FIELDS:()=>Db,CREATE_TIME_FB_FIELDS:()=>jL,ERROR_OUTPUT_SCHEMA:()=>dye,FEEDBACK_ASSESSOR_HAT:()=>Rbt,FEEDBACK_ORIGINS:()=>k9n,FEEDBACK_STATUSES:()=>Bb,FSM_DRIVEN_FB_FIELDS:()=>FL,FSM_DRIVEN_INTENT_FIELDS:()=>nv,FSM_DRIVEN_UNIT_FIELDS:()=>Jf,INTENT_FRONTMATTER_SCHEMA:()=>GL,INTENT_TITLE_MAX_LENGTH:()=>aSe,IntentScopeTickPersistError:()=>Vd,MAX_CONCURRENT_SUBAGENTS:()=>fv,MAX_FIX_LOOP_BOLTS:()=>Dg,MAX_INTEGRATOR_ATTEMPTS:()=>I9n,MAX_RATIONALE_BYTES:()=>tSe,MAX_RATIONALE_EXCERPT_BYTES:()=>nSe,MAX_STAGE_ITERATIONS:()=>Df,MAX_UNIT_BOLTS:()=>Ev,OK_OUTPUT_SCHEMA:()=>fye,REJECT_LOOP_MIN_REPEATS:()=>gZ,STAGE_STATE_FIELDS:()=>pye,STAGE_STATE_SCHEMA:()=>PY,UNIT_FRONTMATTER_SCHEMA:()=>rv,_resetIsGitRepoForTests:()=>Nft,appendFeedbackIteration:()=>C9n,appendFeedbackReply:()=>TSe,appendStageIteration:()=>fSe,applyAutoFixes:()=>cSe,closeCurrentStageIteration:()=>pSe,completeUnitIteration:()=>yZ,computeFeedbackSignature:()=>ybt,countConsecutiveSameRejects:()=>gbt,countInFlightUnits:()=>kbt,countPendingFeedback:()=>D9n,countUnitBolts:()=>mbt,deleteFeedbackFile:()=>RZ,deleteFrontmatterFields:()=>Zh,deriveAuthorType:()=>ySe,deriveFeedbackIdFromFilename:()=>Obt,deriveFeedbackStatus:()=>np,deriveUnitStatus:()=>J0,detectDagCycles:()=>Tbt,detectSettledDuplicate:()=>Sbt,dismissFeedbackClosureReply:()=>vSe,ensureHaikuGitignored:()=>eL,feedbackDir:()=>lo,feedbackSeverityRank:()=>Xc,findFeedbackFile:()=>bc,findHaikuRoot:()=>ve,formatFeedbackId:()=>Gd,getIntentScopeTickCounter:()=>T1,getStageIterationCount:()=>Ebt,gitCommitAll:()=>SZ,gitCommitState:()=>wt,gitCommitStateBackgroundPush:()=>jg,gitCommitStateIfDirty:()=>mSe,handleStateTool:()=>ASe,incrementFeedbackBolt:()=>L9n,intentDir:()=>ce,intentFromCurrentBranch:()=>_v,intentTitleNeedsRepair:()=>b1,isGitRepo:()=>Ee,isIntentArchived:()=>_1,isIntentLocked:()=>E1,listInstalledSkills:()=>$0,listVisibleIntentSlugs:()=>v9n,listVisibleIntents:()=>Fg,matchesGlob:()=>rSe,migrateIterationReasonsOnRead:()=>iSe,migrateMisplacedWorktrees:()=>hbt,moveFeedbackFile:()=>xbt,normalizeLegacyFeedbackStatus:()=>TZ,normalizeRejectReason:()=>lSe,parseFrontmatter:()=>re,persistDesignDirectionSelection:()=>SSe,persistDesignDirectionUploads:()=>bSe,pickUndispatchedUnitBlocks:()=>wbt,primaryRepoRoot:()=>Br,readClaimedAuthorId:()=>r9n,readDecisionLog:()=>I3,readFeedbackFiles:()=>Us,readIntentBody:()=>Yh,readJson:()=>qb,readStagePr:()=>Tv,readStagePrs:()=>hSe,repairDeclaredOutput:()=>_Z,resolveUnitHats:()=>oSe,runInlineQualityGates:()=>uSe,safeMkdirAndRename:()=>yv,setFrontmatterField:()=>Ne,setHaikuRootForTests:()=>Mft,setIsGitRepoForTests:()=>Cft,setStagePrField:()=>zb,setUnitFrontmatterField:()=>R9n,slugifyTitle:()=>vZ,stageDir:()=>cr,stageStatePath:()=>Y0,stampDispatchClaim:()=>Abt,stampUnitHatLease:()=>ESe,startUnitIteration:()=>y1,stateToolDefs:()=>RSe,syncSessionMetadata:()=>Xr,timestamp:()=>mn,unitIntentDir:()=>s9n,unitOutputExists:()=>Kh,unitPath:()=>Pa,updateFeedbackFile:()=>_Se,validateBranch:()=>gSe,validateIntentSchema:()=>x0,validateRationaleCaps:()=>W3n,validateSlugArgs:()=>jD,validateUnitFrontmatter:()=>_bt,validateUnitSchema:()=>Ng,validateUnitScope:()=>mZ,writeFeedbackFile:()=>Qo,writeJson:()=>S1});import{execFileSync as Na,execSync as Wh,spawn as H3n,spawnSync as lZ}from"node:child_process";import{randomBytes as q3n}from"node:crypto";import{appendFileSync as B3n,existsSync as ue,lstatSync as z3n,mkdirSync as Dl,readdirSync as an,readFileSync as xe,renameSync as ubt,rmSync as eSe,statSync as lbt,unlinkSync as X0,writeFileSync as In}from"node:fs";import{homedir as G3n}from"node:os";import{basename as V3n,dirname as Q0,join as te,resolve as tp,sep as Z0}from"node:path";import{readdirSync as b9n}from"node:fs";function rbt(e){return Buffer.byteLength(e,"utf-8")}function W3n(e){let t=rbt(e.agent_rationale);if(t>tSe)return{kind:"agent_rationale_too_long",bytes:t,cap:tSe};for(let n=0;nnSe)return{kind:"rationale_excerpt_too_long",index:n,path:r.path,bytes:i,cap:nSe}}return null}function b1(e){if(typeof e!="string")return!0;let t=e.trim();return!!(t.length===0||t.length>aSe||/\n/.test(t))}function cSe(e,t,n){let r=te(e,t,"intent.md");if(!ue(r))return{applied:[],remaining:n};let i=[],s=[r],o=te(e,t,"stages");if(ue(o))for(let y of an(o,{withFileTypes:!0})){if(!y.isDirectory())continue;let b=te(o,y.name,"units");if(ue(b))for(let S of an(b,{withFileTypes:!0}))S.isFile()&&S.name.endsWith(".md")&&s.push(te(b,S.name))}for(let y of s){let b=xe(y,"utf8"),{text:S,removed:E}=hg(b);if(E.length===0)continue;In(y,S);let _=y.startsWith(te(e,t))?y.slice(te(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=xe(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"&&b1(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=K3n(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=te(e,t,"stages");if(ue(h))for(let y of an(h,{withFileTypes:!0})){if(!y.isDirectory())continue;let b=te(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=te(b,S.name),_=xe(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],_=te(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=te(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=xe(_,"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 K3n(e){try{return lbt(e)}catch{return null}}function Y3n(e,t){if(!Ee())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 fbt(e){let t=new Map,n=nn(),r=[te(e,"studios"),te(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=te(i,s.name,"STUDIO.md");if(!ue(o))continue;let{data:a}=re(xe(o,"utf8")),c=Array.isArray(a.stages)?a.stages:[];t.set(s.name,c)}return{studioMap:t,searchPaths:r}}function EZ(e,t,n,r){let i=te(e,t,"intent.md");if(!ue(i))return[];let s=xe(i,"utf8"),{data:o}=re(s),a=[],{removed:c}=hg(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"&&b1(o.title)){let d=o.title,f=/\n/.test(d)?"title contains newlines":`title is ${d.length} chars (max ${aSe})`;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=te(e,t,"stages",d,"units");if(!ue(f))continue;let p=[];if(u){let h=null;for(let m of r){let g=te(m,u,"stages",d,"STAGE.md");if(!ue(g))continue;let{data:y}=re(xe(g,"utf8"));Array.isArray(y.inputs)&&y.inputs.length>0&&(h=y.inputs);break}if(h){let m=te(e,t);for(let g of h)for(let y of r)for(let b of["discovery","outputs"]){let S=te(y,u,"stages",g.stage,b);if(ue(S))for(let E of an(S).filter(_=>_.endsWith(".md"))){let _=xe(te(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=te(m,k);ue(P)&&p.push(k)}}}}for(let h of an(f,{withFileTypes:!0})){if(!(h.isFile()&&h.name.endsWith(".md")))continue;Z3n.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=xe(te(f,h.name),"utf8"),{removed:g}=hg(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(Ee()){let d=te(e,t,"intent.md"),f=Y3n(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 pbt(e,t,n){let r=e??ve(),i=te(r,"intents");if(!ue(i))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};let{studioMap:s,searchPaths:o}=fbt(r),a;if(t){if(/[/\\]|\.\./.test(t))throw new Error(`Invalid intent slug: "${t}"`);if(!ue(te(i,t,"intent.md")))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};a=[t]}else a=an(i,{withFileTypes:!0}).filter(f=>f.isDirectory()&&ue(te(i,f.name,"intent.md"))).map(f=>f.name);let c=[],u=[],l=[],d=[];for(let f of a){let p=EZ(i,f,s,o);if(n&&p.length>0){let h=cSe(i,f,p);l.push(...h.applied),h.applied.length>0&&(p=EZ(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 J3n(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 ibt(){if(!Ee())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 X3n(e){try{return Na("git",["-C",e,"status","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!0}}function hbt(){let e={moved:[],skipped:[],cleanedSkeletons:[]};if(!Ee())return e;let t=Br(),n=`${Z0}.haiku${Z0}worktrees${Z0}`;for(let i of ibt()){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(X3n(i.path)){e.skipped.push({path:i.path,reason:"uncommitted changes \u2014 commit/stash inside the worktree, then re-run haiku_repair"});continue}try{let u=c.slice(0,c.lastIndexOf(Z0));Dl(u,{recursive:!0}),Na("git",["worktree","move",i.path,c],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}),e.moved.push({old:i.path,new:c,branch:i.branch??"(detached)"})}catch(u){e.skipped.push({path:i.path,reason:`git worktree move failed: ${u instanceof Error?u.message:String(u)}`})}}let r=new Set;for(let i of ibt())i.path!==t&&r.add(i.path);for(let i of r){let s=te(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=te(c,u.name);if(u.isFile()||u.isSymbolicLink()){o=!0;return}u.isDirectory()&&a(l)}};a(s)}catch{o=!0}if(!o)try{eSe(s,{recursive:!0,force:!0}),e.cleanedSkeletons.push(s);let a=te(i,".haiku");ue(a)&&an(a).length===0&&eSe(a,{recursive:!0,force:!0})}catch{}}return e}function Q3n(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 $3n(e){NT();let t=Zo(),n=[];if(e){let s=lpe();for(let{slug:o,branches:a}of s){let c=a.map(u=>u.replace(`haiku/${o}/`,""));try{let u=a[0],l=Rpe(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=vpe(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=i3();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=s3(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=te(a,".haiku"),l=pbt(u,void 0,e);c.scanned=l.scanned,c.applied=l.applied,c.remaining=l.remaining;let d=te(u,"intents",s,"intent.md");if(ue(d)&&re(xe(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=a3(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=MT(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&&o3(a)}n.push(c)}let i=$3n(r,t,e);return{summaries:n,mainline:t,archivedSummary:i}}function $3n(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=s3(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=te(o,".haiku"),c=te(a,"intents");if(!ue(c))return;let l=an(c,{withFileTypes:!0}).filter(p=>p.isDirectory()&&ue(te(c,p.name,"intent.md"))).map(p=>p.name).filter(p=>!r.has(p));if(l.length===0)return;let{studioMap:d,searchPaths:f}=dbt(a);for(let p of l){let h=EZ(c,p,d,f);if(s.scanned++,n&&h.length>0){let m=oSe(c,p,h);s.applied.push(...m.applied),m.applied.length>0&&(h=EZ(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=a3(o,i,p.join(` +`)}`);m.ok?c.prUrl=m.url:c.prError=m.error}}}finally{a&&o3(a)}n.push(c)}let i=e9n(r,t,e);return{summaries:n,mainline:t,archivedSummary:i}}function e9n(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=s3(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=te(o,".haiku"),c=te(a,"intents");if(!ue(c))return;let l=an(c,{withFileTypes:!0}).filter(p=>p.isDirectory()&&ue(te(c,p.name,"intent.md"))).map(p=>p.name).filter(p=>!r.has(p));if(l.length===0)return;let{studioMap:d,searchPaths:f}=fbt(a);for(let p of l){let h=EZ(c,p,d,f);if(s.scanned++,n&&h.length>0){let m=cSe(c,p,h);s.applied.push(...m.applied),m.applied.length>0&&(h=EZ(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=a3(o,i,p.join(` `));if(s.committed=h.committed,s.pushed=h.pushed,s.pushError=h.pushError,h.committed&&h.pushed){let m=MT(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&&o3(o)}if(s.scanned>0||s.setupError)return s}function e9n(e,t,n){if(e.length===0&&!n)return"No intent branches or archived intents found in this repository.";let r=["# Multi-Branch Repair Report","",`Scanned ${e.length} intent branch(es). Mainline: \`${t}\`.`,""],i=e.reduce((l,d)=>l+d.applied.length,0)+(n?.applied.length??0),s=e.reduce((l,d)=>l+d.remaining.length,0)+(n?.remaining.length??0),o=e.filter(l=>l.pushed).length+(n?.pushed?1:0),a=e.filter(l=>l.prUrl).length,c=n?.prUrl?1:0,u=a>0&&c>0?`${a} PR(s) for already-merged branches + 1 PR for archived intents`:a>0?`${a} PR(s) opened for already-merged branches`:c>0?"1 PR opened for archived intents":"no PRs opened";r.push(`**Summary:** ${i} fix(es) auto-applied across ${o} branch(es); ${u}; ${s} issue(s) still need attention.`),r.push("");for(let l of e){if(r.push(`## \`${l.branch}\``),r.push(""),r.push(`- Scanned: ${l.scanned} intent(s)`),r.push(`- Auto-applied: ${l.applied.length}`),r.push(`- Remaining: ${l.remaining.length}`),l.committed&&l.pushed?r.push(`- Committed and pushed to \`origin/${l.branch}\``):l.committed?r.push(`- Committed locally; push failed: ${l.pushError||"unknown"}`):l.error?r.push(`- Error: ${l.error}`):l.pushError&&r.push(`- Push error: ${l.pushError}`),l.merged&&l.prUrl?r.push(`- Branch already merged into \`${t}\` \u2014 opened PR/MR: ${l.prUrl}`):l.merged&&l.prError&&r.push(`- Branch already merged into \`${t}\` \u2014 failed to open PR: ${l.prError}`),l.applied.length>0){r.push(""),r.push("**Fixes applied:**");for(let d of l.applied)r.push(`- ${d.intent}/${d.field}: ${d.description}`)}if(l.remaining.length>0){r.push(""),r.push("**Remaining issues (need agent attention):**");for(let d of l.remaining)r.push(`- **${d.intent}**/${d.field} (${d.severity}): ${d.message} \u2192 ${d.fix}`)}r.push("")}if(n){if(r.push("## Archived intents (mainline only)"),r.push(""),n.setupError)return r.push(`- **Mainline worktree setup failed:** ${n.setupError}`),r.push("- No archived intents were scanned. Fix the underlying git/filesystem issue and re-run `/repair`."),r.push(""),r.join(` +`)}`);m.ok?s.prUrl=m.url:s.prError=m.error}}}finally{o&&o3(o)}if(s.scanned>0||s.setupError)return s}function t9n(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(h1!==null&&h1.cwd===e)return h1.root;if(!Ee())return h1={cwd:e,root:e},e;let t;try{let n=Na("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(!n)t=e;else{let r=n.startsWith("/")?n:tp(e,n);t=tp(r,"..")}}catch{t=e}return h1={cwd:e,root:t},t}function aSe(e,t){let n=ve(),r=te(n,"intents",e,"intent.md");function i(f){if(!ue(f))return[];let p=xe(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=Wh("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 t9n(e){try{let t=s1(Br());return[...new Set(t.map(n=>n.requires_tool).filter(n=>typeof n=="string"&&n.length>0))]}catch{return[]}}function ce(e){return te(ve(),"intents",e)}function Yh(e){let t=te(ce(e),"intent.md");if(!ue(t))return null;let{body:n}=re(xe(t,"utf8"));return(n||"").trim()||null}function E1(e){try{let t=te(e,"intent.md");if(!ue(t))return!1;let n=xe(t,"utf-8"),{data:r}=(0,Ct.default)(n);return r.status==="locked"}catch{return!1}}function _1(e){try{let t=te(e,"intent.md");if(!ue(t))return!1;let n=xe(t,"utf-8"),{data:r}=(0,Ct.default)(n),i=r;return i.status==="archived"||i.archived===!0}catch{return!1}}function n9n(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 r9n(e){return te(e,"intent-tick.json")}function T1(e){let t=r9n(e),n=Q0(t);try{let o=B3n(n);if(o.isSymbolicLink())throw new Vd(`intent dir '${n}' is a symlink \u2014 refusing (V-04)`);if(!o.isDirectory())throw new Vd(`intent dir '${n}' exists but is not a directory`)}catch(o){throw o instanceof Vd?o:new Vd(`cannot stat intent dir '${n}': ${o instanceof Error?o.message:String(o)}`)}let r=0;try{if(ue(t)){let o=xe(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=te(n,`.intent-tick-${process.pid}-${H3n(6).toString("hex")}.json.tmp`);try{In(s,JSON.stringify({tick:i},null,2)),cbt(s,t)}catch(o){try{X0(s)}catch{}throw new Vd(`failed to persist intent-scope tick counter at '${t}': ${o instanceof Error?o.message:String(o)}`)}return i}function i9n(e,t){let n=te(Br(),".haiku","worktrees",e,t),r=te(n,".haiku","intents",e);return ue(r)?r:ce(e)}function m1(e){if(!ue(e))return!1;try{let t=ubt(e);if(t.isFile()&&t.size===0)return!1}catch{return!0}return!0}function Kh(e,t,n){let r=tp(ce(e),n);if(m1(r))return!0;let i=te(Br(),".haiku","worktrees",e,t),s=te(i,".haiku","intents",e);if(ue(s)){let a=tp(s,n);if(m1(a))return!0}let o=(()=>{try{return Wh("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{return null}})();if(o){let a=tp(o,n);if(m1(a))return!0}if(ue(i)){let a=tp(i,n);if(m1(a))return!0}return!1}function s9n(e,t){let n=[ce(e)],r=te(Br(),".haiku","worktrees",e,t),i=te(r,".haiku","intents",e);ue(i)&&n.push(i);try{let s=Wh("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 Yye(e){let t=e.lastIndexOf(".");return t<=0?e:e.slice(0,t)}function _Z(e,t,n){let r=G3n(n);if(Yye(r)===r)return null;let i=Yye(r),s=Q0(n),o=new Set;for(let c of s9n(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&&Yye(d)===i&&m1(te(u,d))&&o.add(d)}if(o.size!==1)return null;let a=[...o][0];return s==="."?a:te(s,a)}function cr(e,t){return te(ce(e),"stages",t)}function Pa(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=te(cr(e,t),"units"),s=te(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?te(i,u[0]):s}function Y0(e,t){return te(cr(e,t),"state.json")}function tSe(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 o9n(e,t,n){if(!Ee())return null;let r=t.replace(/\.md$/,""),i=te(Br(),".haiku","worktrees",e,r);if(!ue(i))return null;try{let s=`haiku/${e}/${r}`,o=`haiku/${e}/${n}`,a=Wh(`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(Wh(`git diff --name-only ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(Wh(`git log --name-only --pretty=format: ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(Wh("git diff --name-only HEAD",{cwd:i,encoding:"utf8"}).toString()),u(Wh("git diff --name-only --cached",{cwd:i,encoding:"utf8"}).toString()),u(Wh("git ls-files --others --exclude-standard",{cwd:i,encoding:"utf8"}).toString()),[...c].filter(l=>ue(te(i,l)))}catch{return null}}function a9n(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 c9n(e,t,n,r){let i=o9n(e,n,t);return i!==null?i:[]}function u9n(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=>tSe(s,o))||r&&s===null&&(n.repoWildcard||n.repoGlobs.some(o=>tSe(e,o))))}function l9n(e,t,n,r){if(r.length===0)return;let i=Pa(e,t,n);if(!ue(i))return;let s=xe(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=Ee(),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))||JL.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 mZ(e,t,n,r){let i=Pa(e,n,r);if(!ue(i))return null;let{data:s}=re(xe(i,"utf8")),o=s.hat_started_at,a=c9n(e,n,r,o);if(a.length===0)return null;let c=a9n(e,t,n,r),u=Ee(),l=[];for(let d of a)u9n(d,e,c,u)||l.push(d);return l.length>0?{violations:l,scope:c}:(l9n(e,n,r,a),null)}function cSe(e){return e?e.replace(/\s+/g," ").trim().toLowerCase().slice(0,100):""}function hbt(e){let t=0;for(let n of e)n.result==="reject"&&t++;return t}function mbt(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||cSe(s.reason)!==n)break;r++}}return r}function gbt(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 ibt(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&&!d9n.has(i));return new Set(r)}function f9n(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 ybt(e,t,n){let r;try{let a=t?Us(e,t):[],c=Us(e,"");r=[...a,...c]}catch{return null}let i=ibt(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=f9n(i,ibt(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 Sbt(e,t){return te(cr(e,t),"decisions.jsonl")}function sbt(e,t,n){let r=Sbt(e,t);try{Dl(Q0(r),{recursive:!0}),q3n(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 I3(e,t){let n=Sbt(e,t);if(!ue(n))return[];let r=xe(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 uSe(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 bbt(e,t,n){if(t&&n){let s=uSe(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 lSe(e,t,n,r="feedback-revisit"){let i=uSe(e,t),s=mn();i.length>0&&(i[i.length-1].completed_at||void 0);let o=n.feedbackTitles?gbt(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 dSe(e,t,n,r){let i=uSe(e,t),s=mn();i.length===0&&void 0,{...r?{reason:r}:{}}}function y1(e,t){if(!ue(e))return;let{data:n,body:r}=re(xe(e,"utf8")),i=Array.isArray(n.iterations)?n.iterations.slice():[];i.push({hat:t,started_at:mn(),completed_at:null,result:null}),n.iterations=i,In(e,Ct.default.stringify(r,n))}function nSe(e){if(!ue(e))return;let t;try{t=re(xe(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 yZ(e,t,n){if(!ue(e))return;let{data:r,body:i}=re(xe(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=mn(),o.result=t,n&&(o.message=n),r.iterations=s,In(e,Ct.default.stringify(i,r)))}function m9n(e){let t=[],n=new Set;for(let r of h9n){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 g9n(e){let t=m9n(e);if(t.length===0)return null;let n=process.cwd(),r=n.endsWith(Z0)?n:`${n}${Z0}`;for(let i of t){let s=i.path.startsWith("/")?i.path:te(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=xe(o,"utf8");if(!new RegExp(`(?:export[^\\n]*\\b${Zye(i.identifier)}\\b|\\bfunction\\s+${Zye(i.identifier)}\\b|\\b${Zye(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 Zye(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function y9n(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 b9n(e){if(!Jye){let t=new lbt.Ajv({allErrors:!0,strict:!1}),n=nn(),r=te(n,"schemas","providers");if(ue(r)){let a="https://haiku.dev/schemas/";for(let c of S9n(r))if(c.endsWith(".schema.json"))try{let u=JSON.parse(xe(te(r,c),"utf8"));u.$id=`${a}providers/${c}`,t.addSchema(u)}catch{}}let i=te(n,"schemas","settings.schema.json"),s=ue(i)?JSON.parse(xe(i,"utf8")):{type:"object",additionalProperties:!0},o=t.compile(s);Jye=o,rSe=()=>o.errors}return Jye(e)}function E9n(){return rSe?rSe():[]}function _9n(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 dZ(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 Ebt(e,t){let n=[];if(!Ng(e)&&Ng.errors)for(let i of Ng.errors)n.push(_9n(i));if(Array.isArray(e.depends_on))for(let i of e.depends_on){if(typeof i!="string")continue;(i===t.unit||dZ(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=>dZ(i,o))&&!dZ(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=>dZ(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 _bt(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 v1(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:v1(r),body:i.trim()}};try{return t(e)}catch(n){if(!hI(n))throw n;let{text:r,removed:i}=hg(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=te(e,i,"intent.md");if(!ue(s))continue;let{data:o}=re(xe(s,"utf8"));!n&&o.archived===!0||r.push({slug:i,data:o})}return r}function T9n(e,t){return Fg(e,t).map(n=>n.slug)}function _v(){if(!Ee())return null;let e=gr();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 Ne(e,t,n){let r=xe(e,"utf8"),i=(0,Ct.default)(r),s={...i.data,[t]:n};In(e,Ct.default.stringify(i.content,v1(s)))}function fSe(e){let t=te(ce(e),"intent.md");if(!ue(t))return{};let r=re(xe(t,"utf8")).data.stage_prs;return!r||typeof r!="object"||Array.isArray(r)?{}:r}function Tv(e,t){return fSe(e)[t]??null}function zb(e,t,n,r){let i=te(ce(e),"intent.md");if(!ue(i))return;let s=fSe(e),o={...s[t]??{},[n]:r},a={...s,[t]:o};Ne(i,"stage_prs",a)}function Zh(e,t){if(!ue(e))return;let n=xe(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,v1(i)))}function v9n(e,t,n,r,i){let s=Pa(e,t,n);ue(s)&&Ne(s,r,i);let o=te(Br(),".haiku","worktrees",e,n);if(!ue(o))return;let a=te(o,".haiku","intents",e,"stages",t,"units",n.endsWith(".md")?n:`${n}.md`);ue(a)&&Ne(a,r,i)}function obt(e){let{data:t}=(0,Ct.default)(`--- +`)}`,failures:u}}function n9n(e){try{let t=s1(Br());return[...new Set(t.map(n=>n.requires_tool).filter(n=>typeof n=="string"&&n.length>0))]}catch{return[]}}function ce(e){return te(ve(),"intents",e)}function Yh(e){let t=te(ce(e),"intent.md");if(!ue(t))return null;let{body:n}=re(xe(t,"utf8"));return(n||"").trim()||null}function E1(e){try{let t=te(e,"intent.md");if(!ue(t))return!1;let n=xe(t,"utf-8"),{data:r}=(0,Ct.default)(n);return r.status==="locked"}catch{return!1}}function _1(e){try{let t=te(e,"intent.md");if(!ue(t))return!1;let n=xe(t,"utf-8"),{data:r}=(0,Ct.default)(n),i=r;return i.status==="archived"||i.archived===!0}catch{return!1}}function r9n(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 i9n(e){return te(e,"intent-tick.json")}function T1(e){let t=i9n(e),n=Q0(t);try{let o=z3n(n);if(o.isSymbolicLink())throw new Vd(`intent dir '${n}' is a symlink \u2014 refusing (V-04)`);if(!o.isDirectory())throw new Vd(`intent dir '${n}' exists but is not a directory`)}catch(o){throw o instanceof Vd?o:new Vd(`cannot stat intent dir '${n}': ${o instanceof Error?o.message:String(o)}`)}let r=0;try{if(ue(t)){let o=xe(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=te(n,`.intent-tick-${process.pid}-${q3n(6).toString("hex")}.json.tmp`);try{In(s,JSON.stringify({tick:i},null,2)),ubt(s,t)}catch(o){try{X0(s)}catch{}throw new Vd(`failed to persist intent-scope tick counter at '${t}': ${o instanceof Error?o.message:String(o)}`)}return i}function s9n(e,t){let n=te(Br(),".haiku","worktrees",e,t),r=te(n,".haiku","intents",e);return ue(r)?r:ce(e)}function m1(e){if(!ue(e))return!1;try{let t=lbt(e);if(t.isFile()&&t.size===0)return!1}catch{return!0}return!0}function Kh(e,t,n){let r=tp(ce(e),n);if(m1(r))return!0;let i=te(Br(),".haiku","worktrees",e,t),s=te(i,".haiku","intents",e);if(ue(s)){let a=tp(s,n);if(m1(a))return!0}let o=(()=>{try{return Wh("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{return null}})();if(o){let a=tp(o,n);if(m1(a))return!0}if(ue(i)){let a=tp(i,n);if(m1(a))return!0}return!1}function o9n(e,t){let n=[ce(e)],r=te(Br(),".haiku","worktrees",e,t),i=te(r,".haiku","intents",e);ue(i)&&n.push(i);try{let s=Wh("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 Jye(e){let t=e.lastIndexOf(".");return t<=0?e:e.slice(0,t)}function _Z(e,t,n){let r=V3n(n);if(Jye(r)===r)return null;let i=Jye(r),s=Q0(n),o=new Set;for(let c of o9n(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&&Jye(d)===i&&m1(te(u,d))&&o.add(d)}if(o.size!==1)return null;let a=[...o][0];return s==="."?a:te(s,a)}function cr(e,t){return te(ce(e),"stages",t)}function Pa(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=te(cr(e,t),"units"),s=te(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?te(i,u[0]):s}function Y0(e,t){return te(cr(e,t),"state.json")}function rSe(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 a9n(e,t,n){if(!Ee())return null;let r=t.replace(/\.md$/,""),i=te(Br(),".haiku","worktrees",e,r);if(!ue(i))return null;try{let s=`haiku/${e}/${r}`,o=`haiku/${e}/${n}`,a=Wh(`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(Wh(`git diff --name-only ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(Wh(`git log --name-only --pretty=format: ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(Wh("git diff --name-only HEAD",{cwd:i,encoding:"utf8"}).toString()),u(Wh("git diff --name-only --cached",{cwd:i,encoding:"utf8"}).toString()),u(Wh("git ls-files --others --exclude-standard",{cwd:i,encoding:"utf8"}).toString()),[...c].filter(l=>ue(te(i,l)))}catch{return null}}function c9n(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 u9n(e,t,n,r){let i=a9n(e,n,t);return i!==null?i:[]}function l9n(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=>rSe(s,o))||r&&s===null&&(n.repoWildcard||n.repoGlobs.some(o=>rSe(e,o))))}function d9n(e,t,n,r){if(r.length===0)return;let i=Pa(e,t,n);if(!ue(i))return;let s=xe(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=Ee(),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))||JL.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 mZ(e,t,n,r){let i=Pa(e,n,r);if(!ue(i))return null;let{data:s}=re(xe(i,"utf8")),o=s.hat_started_at,a=u9n(e,n,r,o);if(a.length===0)return null;let c=c9n(e,t,n,r),u=Ee(),l=[];for(let d of a)l9n(d,e,c,u)||l.push(d);return l.length>0?{violations:l,scope:c}:(d9n(e,n,r,a),null)}function lSe(e){return e?e.replace(/\s+/g," ").trim().toLowerCase().slice(0,100):""}function mbt(e){let t=0;for(let n of e)n.result==="reject"&&t++;return t}function gbt(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||lSe(s.reason)!==n)break;r++}}return r}function ybt(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 sbt(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&&!f9n.has(i));return new Set(r)}function p9n(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 Sbt(e,t,n){let r;try{let a=t?Us(e,t):[],c=Us(e,"");r=[...a,...c]}catch{return null}let i=sbt(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=p9n(i,sbt(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 bbt(e,t){return te(cr(e,t),"decisions.jsonl")}function obt(e,t,n){let r=bbt(e,t);try{Dl(Q0(r),{recursive:!0}),B3n(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 I3(e,t){let n=bbt(e,t);if(!ue(n))return[];let r=xe(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 dSe(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 Ebt(e,t,n){if(t&&n){let s=dSe(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 fSe(e,t,n,r="feedback-revisit"){let i=dSe(e,t),s=mn();i.length>0&&(i[i.length-1].completed_at||void 0);let o=n.feedbackTitles?ybt(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 pSe(e,t,n,r){let i=dSe(e,t),s=mn();i.length===0&&void 0,{...r?{reason:r}:{}}}function y1(e,t){if(!ue(e))return;let{data:n,body:r}=re(xe(e,"utf8")),i=Array.isArray(n.iterations)?n.iterations.slice():[];i.push({hat:t,started_at:mn(),completed_at:null,result:null}),n.iterations=i,In(e,Ct.default.stringify(r,n))}function iSe(e){if(!ue(e))return;let t;try{t=re(xe(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 yZ(e,t,n){if(!ue(e))return;let{data:r,body:i}=re(xe(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=mn(),o.result=t,n&&(o.message=n),r.iterations=s,In(e,Ct.default.stringify(i,r)))}function g9n(e){let t=[],n=new Set;for(let r of m9n){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 y9n(e){let t=g9n(e);if(t.length===0)return null;let n=process.cwd(),r=n.endsWith(Z0)?n:`${n}${Z0}`;for(let i of t){let s=i.path.startsWith("/")?i.path:te(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=xe(o,"utf8");if(!new RegExp(`(?:export[^\\n]*\\b${Xye(i.identifier)}\\b|\\bfunction\\s+${Xye(i.identifier)}\\b|\\b${Xye(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 Xye(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function S9n(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 E9n(e){if(!Qye){let t=new dbt.Ajv({allErrors:!0,strict:!1}),n=nn(),r=te(n,"schemas","providers");if(ue(r)){let a="https://haiku.dev/schemas/";for(let c of b9n(r))if(c.endsWith(".schema.json"))try{let u=JSON.parse(xe(te(r,c),"utf8"));u.$id=`${a}providers/${c}`,t.addSchema(u)}catch{}}let i=te(n,"schemas","settings.schema.json"),s=ue(i)?JSON.parse(xe(i,"utf8")):{type:"object",additionalProperties:!0},o=t.compile(s);Qye=o,sSe=()=>o.errors}return Qye(e)}function _9n(){return sSe?sSe():[]}function T9n(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 dZ(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 _bt(e,t){let n=[];if(!Ng(e)&&Ng.errors)for(let i of Ng.errors)n.push(T9n(i));if(Array.isArray(e.depends_on))for(let i of e.depends_on){if(typeof i!="string")continue;(i===t.unit||dZ(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=>dZ(i,o))&&!dZ(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=>dZ(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 Tbt(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 v1(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:v1(r),body:i.trim()}};try{return t(e)}catch(n){if(!hI(n))throw n;let{text:r,removed:i}=hg(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=te(e,i,"intent.md");if(!ue(s))continue;let{data:o}=re(xe(s,"utf8"));!n&&o.archived===!0||r.push({slug:i,data:o})}return r}function v9n(e,t){return Fg(e,t).map(n=>n.slug)}function _v(){if(!Ee())return null;let e=gr();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 Ne(e,t,n){let r=xe(e,"utf8"),i=(0,Ct.default)(r),s={...i.data,[t]:n};In(e,Ct.default.stringify(i.content,v1(s)))}function hSe(e){let t=te(ce(e),"intent.md");if(!ue(t))return{};let r=re(xe(t,"utf8")).data.stage_prs;return!r||typeof r!="object"||Array.isArray(r)?{}:r}function Tv(e,t){return hSe(e)[t]??null}function zb(e,t,n,r){let i=te(ce(e),"intent.md");if(!ue(i))return;let s=hSe(e),o={...s[t]??{},[n]:r},a={...s,[t]:o};Ne(i,"stage_prs",a)}function Zh(e,t){if(!ue(e))return;let n=xe(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,v1(i)))}function R9n(e,t,n,r,i){let s=Pa(e,t,n);ue(s)&&Ne(s,r,i);let o=te(Br(),".haiku","worktrees",e,n);if(!ue(o))return;let a=te(o,".haiku","intents",e,"stages",t,"units",n.endsWith(".md")?n:`${n}.md`);ue(a)&&Ne(a,r,i)}function abt(e){let{data:t}=(0,Ct.default)(`--- ${e} --- -`);return v1(t)}function R9n(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 qb(e){return ue(e)?JSON.parse(xe(e,"utf8")):{}}function S1(e,t){Dl(te(e,".."),{recursive:!0}),In(e,`${JSON.stringify(t,null,2)} +`);return v1(t)}function A9n(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 qb(e){return ue(e)?JSON.parse(xe(e,"utf8")):{}}function S1(e,t){Dl(te(e,".."),{recursive:!0}),In(e,`${JSON.stringify(t,null,2)} `)}function mn(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function eL(){if(Ee())try{let e=te(Br(),".gitignore"),t="";try{ue(e)&&(t=xe(e,"utf8"))}catch{}let n=t.split(` -`).map(c=>c.trim()).filter(Boolean),r=new Set(n),i=A9n.filter(c=>!r.has(c.entry)&&!c.accept.some(u=>r.has(u))).map(c=>c.entry);if(i.length===0)return;let s="# H\xB7AI\xB7K\xB7U engine-managed: worktree pool (linked git worktrees) + runtime-verification proof (regenerated binary churn \u2014 uploaded to the PR, never committed).",o=t&&!t.endsWith(` +`).map(c=>c.trim()).filter(Boolean),r=new Set(n),i=w9n.filter(c=>!r.has(c.entry)&&!c.accept.some(u=>r.has(u))).map(c=>c.entry);if(i.length===0)return;let s="# H\xB7AI\xB7K\xB7U engine-managed: worktree pool (linked git worktrees) + runtime-verification proof (regenerated binary churn \u2014 uploaded to the PR, never committed).",o=t&&!t.endsWith(` `)?` `:"";In(e,`${t}${o}${t?` `:""}${s} ${i.join(` `)} -`),Na("git",["add","--",".gitignore"],{encoding:"utf8",stdio:"pipe"}),Na("git",["commit","-m",`chore(haiku): gitignore engine artifacts (${i.join(", ")})`,"--",".gitignore"],{encoding:"utf8",stdio:"pipe"})}catch{}}function Tbt(e){Na("git",["add","--",e],{encoding:"utf8",stdio:"pipe"});try{Na("git",["rm","--cached","-r","--ignore-unmatch","-f","--",te(e,"worktrees")],{encoding:"utf8",stdio:"pipe"})}catch{}}function SZ(e){if(!Ee())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: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(!Ee())return{committed:!1,pushed:!1};try{Tbt(ve()),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 pSe(e){if(!Ee())return{committed:!1,pushed:!1};try{if(!Na("git",["status","--porcelain","--",ve()],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim())return{committed:!1,pushed:!1}}catch{}return wt(e)}function jg(e){if(!Ee())return{committed:!1};try{Tbt(ve()),Na("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"})}catch{return{committed:!1}}try{let t=j3n("git",["push"],{stdio:"ignore",detached:!0});t.unref(),t.on("error",()=>{})}catch{}return{committed:!0}}function hSe(e,t,n){if(!Ee())return"";let r=gr();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 fZ(e){return e.pushed||!e.committed?"":` +`),Na("git",["add","--",".gitignore"],{encoding:"utf8",stdio:"pipe"}),Na("git",["commit","-m",`chore(haiku): gitignore engine artifacts (${i.join(", ")})`,"--",".gitignore"],{encoding:"utf8",stdio:"pipe"})}catch{}}function vbt(e){Na("git",["add","--",e],{encoding:"utf8",stdio:"pipe"});try{Na("git",["rm","--cached","-r","--ignore-unmatch","-f","--",te(e,"worktrees")],{encoding:"utf8",stdio:"pipe"})}catch{}}function SZ(e){if(!Ee())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: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(!Ee())return{committed:!1,pushed:!1};try{vbt(ve()),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 mSe(e){if(!Ee())return{committed:!1,pushed:!1};try{if(!Na("git",["status","--porcelain","--",ve()],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim())return{committed:!1,pushed:!1}}catch{}return wt(e)}function jg(e){if(!Ee())return{committed:!1};try{vbt(ve()),Na("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"})}catch{return{committed:!1}}try{let t=H3n("git",["push"],{stdio:"ignore",detached:!0});t.unref(),t.on("error",()=>{})}catch{}return{committed:!0}}function gSe(e,t,n){if(!Ee())return"";let r=gr();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 fZ(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 pZ(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 g1(e){let t=ve(),n=te(t,"intents",e,"intent.md");if(!ue(n))return"";let{data:r}=re(xe(n,"utf8"));return r.active_stage||""}function ea(e,t){if(gb())return null;let n=yr(e,t);if(!n.ok){if(n.block==="dirty_tree"){let r=n.dirty_files||[],i=r.length>0?` @@ -702,39 +702,39 @@ ${r.map(o=>` - ${o}`).join(` Steps: 1. \`git add ${r.length>0?r.join(" "):""}\` 2. \`git commit -m "haiku: wip on ${n.branch}"\` - 3. Retry the call.`};return{content:[{type:"text",text:JSON.stringify(s,null,2)}],isError:!0}}return{content:[{type:"text",text:`Error: stage-branch enforcement failed for intent '${e}', stage '${t??"(none)"}' \u2014 ${n.message}`}],isError:!0}}return null}function bZ(e,t){let n=ve(),r=g1(e);if(r){let s=Pa(e,r,t);if(ue(s))return{path:s,stage:r}}let i=te(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 iSe(e,t,n){return R1(e,t)}function R1(e,t){try{let n=ve(),r=te(n,"intents",e,"intent.md");if(!ue(r))return[];let{data:i}=re(xe(r,"utf8")),s=i.studio||"";if(!s)return[];let o=nn();for(let a of[te(process.cwd(),".haiku","studios"),te(o,"studios")]){let c=te(a,s,"stages",t,"STAGE.md");if(!ue(c))continue;let{data:u}=re(xe(c,"utf8"));return u.hats||[]}}catch{}return[]}function hZ(e,t){try{let n=ve(),r=te(n,"intents",e,"intent.md");if(!ue(r))return"";let{data:i}=re(xe(r,"utf8")),s=i.studio||"";if(!s)return"";let o=nn();for(let a of[te(process.cwd(),".haiku","studios"),te(o,"studios")]){let c=te(a,s,"stages",t,"STAGE.md");if(!ue(c))continue;let u=xe(c,"utf8"),l=re(u),{content:d}=(0,Ct.default)(u),f=l.data.description||t;return`[stage_scope] ${t}: ${f} | ${d.trim().slice(0,500)}`}}catch{}return""}function Xr(e,t){if(t)try{let n=ve(),r=te(n,"intents",e,"intent.md");if(!ue(r))return;let{data:i}=re(xe(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=bv({slug:e,studio:s,stage:o,intentDir:te(n,"intents",e),intentMode:f}).phase??""}let c=null,u=null,l=null;if(o){let f=te(cr(e,o),"units");if(ue(f))for(let p of an(f).filter(h=>h.endsWith(".md"))){let{data:h}=re(xe(te(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[te(process.cwd(),".haiku","studios"),te(f,"studios")]){let h=te(p,s,"stages",o,"STAGE.md");if(!ue(h))continue;let{data:m}=re(xe(h,"utf8"));d=m.description||o;break}}ZSt(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 J0(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 TZ(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 mSe(e){return I9n.has(e)?"human":"agent"}function x9n(e){return mSe(e)==="human"?"user":"agent"}function O9n(e,t){return Array.isArray(e)?e:t.startsWith("user-")?["user"]:[]}function vZ(e,t=60){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-{2,}/g,"-").slice(0,t).replace(/-+$/,"")}function gSe(e){let t=te(cr(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{X0(te(t,s))}catch{}let n=vZ(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-${A1(i)}-${n}.${a}`;In(te(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=te(ce(e.slug),"intent.md");if(ue(s)){let o=xe(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:mn()},Ne(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=te(cr(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"archetype",archetype:e.archetype,recorded_at:mn()};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(Q0(s),{recursive:!0}),In(s,Ct.default.stringify(`${a.join(` + 3. Retry the call.`};return{content:[{type:"text",text:JSON.stringify(s,null,2)}],isError:!0}}return{content:[{type:"text",text:`Error: stage-branch enforcement failed for intent '${e}', stage '${t??"(none)"}' \u2014 ${n.message}`}],isError:!0}}return null}function bZ(e,t){let n=ve(),r=g1(e);if(r){let s=Pa(e,r,t);if(ue(s))return{path:s,stage:r}}let i=te(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 oSe(e,t,n){return R1(e,t)}function R1(e,t){try{let n=ve(),r=te(n,"intents",e,"intent.md");if(!ue(r))return[];let{data:i}=re(xe(r,"utf8")),s=i.studio||"";if(!s)return[];let o=nn();for(let a of[te(process.cwd(),".haiku","studios"),te(o,"studios")]){let c=te(a,s,"stages",t,"STAGE.md");if(!ue(c))continue;let{data:u}=re(xe(c,"utf8"));return u.hats||[]}}catch{}return[]}function hZ(e,t){try{let n=ve(),r=te(n,"intents",e,"intent.md");if(!ue(r))return"";let{data:i}=re(xe(r,"utf8")),s=i.studio||"";if(!s)return"";let o=nn();for(let a of[te(process.cwd(),".haiku","studios"),te(o,"studios")]){let c=te(a,s,"stages",t,"STAGE.md");if(!ue(c))continue;let u=xe(c,"utf8"),l=re(u),{content:d}=(0,Ct.default)(u),f=l.data.description||t;return`[stage_scope] ${t}: ${f} | ${d.trim().slice(0,500)}`}}catch{}return""}function Xr(e,t){if(t)try{let n=ve(),r=te(n,"intents",e,"intent.md");if(!ue(r))return;let{data:i}=re(xe(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=bv({slug:e,studio:s,stage:o,intentDir:te(n,"intents",e),intentMode:f}).phase??""}let c=null,u=null,l=null;if(o){let f=te(cr(e,o),"units");if(ue(f))for(let p of an(f).filter(h=>h.endsWith(".md"))){let{data:h}=re(xe(te(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[te(process.cwd(),".haiku","studios"),te(f,"studios")]){let h=te(p,s,"stages",o,"STAGE.md");if(!ue(h))continue;let{data:m}=re(xe(h,"utf8"));d=m.description||o;break}}JSt(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 J0(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 TZ(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 ySe(e){return x9n.has(e)?"human":"agent"}function O9n(e){return ySe(e)==="human"?"user":"agent"}function P9n(e,t){return Array.isArray(e)?e:t.startsWith("user-")?["user"]:[]}function vZ(e,t=60){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-{2,}/g,"-").slice(0,t).replace(/-+$/,"")}function SSe(e){let t=te(cr(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{X0(te(t,s))}catch{}let n=vZ(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-${A1(i)}-${n}.${a}`;In(te(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=te(ce(e.slug),"intent.md");if(ue(s)){let o=xe(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:mn()},Ne(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=te(cr(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"archetype",archetype:e.archetype,recorded_at:mn()};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(Q0(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 ySe(e){let t=te(cr(e.slug,e.stage),"artifacts","design-direction"),n=te(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{X0(te(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=vZ(e.files[i-1]?.filename.replace(/\.[^.]+$/,"")??"")||`upload-${i}`,l=`up-${A1(i)}-${u}.${c}`;In(te(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=te(ce(e.slug),"intent.md");if(ue(s)){let o=xe(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:mn()},Ne(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=te(cr(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"upload",recorded_at:mn()};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(Q0(s),{recursive:!0}),In(s,Ct.default.stringify(`${a.join(` +`,o))}catch(s){console.error(`[haiku] failed to write design-direction.md manifest: ${s instanceof Error?s.message:String(s)}`)}return{annotations:r,artifactsDir:t}}function bSe(e){let t=te(cr(e.slug,e.stage),"artifacts","design-direction"),n=te(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{X0(te(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=vZ(e.files[i-1]?.filename.replace(/\.[^.]+$/,"")??"")||`upload-${i}`,l=`up-${A1(i)}-${u}.${c}`;In(te(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=te(ce(e.slug),"intent.md");if(ue(s)){let o=xe(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:mn()},Ne(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=te(cr(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"upload",recorded_at:mn()};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(Q0(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?te(cr(e,t),"feedback"):te(ce(e),"feedback")}function Rbt(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=te(s,a),u=xe(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:mn(),result:null,bolt:m});let g={...d,iterations:f};In(c,Ct.default.stringify(`${l.content.trimEnd()} -`,g))}catch{}}function SSe(e){let{slug:t,stage:n,unit:r,hat:i}=e;try{let s=Pa(t,n,r);if(!ue(s))return;let a=(0,Ct.default)(xe(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=mn(),Ne(s,"iterations",c)}catch{}}function abt(e,t){try{return W0(e,()=>{let n=ce(e),r=te(n,"intent.md");if(!ue(r))return null;let i=(0,Ct.default)(xe(r,"utf8")).data,s=typeof i.studio=="string"?i.studio:"";if(!s)return null;if(t){let d=bZ(e,t);if(!d)return null;let f=re(xe(d.path,"utf8")),p=R1(e,d.stage),h=uv(f.data,p);if(!h)return null;let m=WI({slug:e,studio:s,unit:t,stage:d.stage,hat:h.hat,terminal:h.terminal});return SSe({slug:e,stage:d.stage,unit:t,hat:h.hat}),m}let o=$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:WI({slug:e,studio:s,unit:u[0],stage:a,hat:c,terminal:l})})}catch{return null}}function Xye(e,t){let n=ce(e),r=ue(te(n,"intent.md"))?(0,Ct.default)(xe(te(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:te(n,"stages",d,"feedback")});c.push({stage:"",dir:te(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(xe(te(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 Rbt({slug:e,stage:l.stage,feedbackId:l.feedbackId,hat:l.firstHat}),VI({slug:e,studio:t,feedbackId:l.feedbackId,stage:l.stage,hat:l.firstHat,terminal:l.terminal})}function Abt(e,t,n){if(n<=0)return[];let r=ce(e),i=ai(e,t,r)??"";if(!i)return[];let s=R1(e,i);if(s.length===0)return[];let o=s[0],a=s[s.length-1],c=s.length===1,u=te(cr(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=te(u,h),g;try{g=re(xe(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=>!Kh(e,h.name,b))||(Ne(h.path,"started_at",mn()),y1(h.path,o),SSe({slug:e,stage:i,unit:h.name,hat:o}),p.push(WI({slug:e,studio:t,unit:h.name,stage:i,hat:o,terminal:c})))}return p.length>0&&ci(e),p}function wbt(e,t,n){let r=R1(e,t);if(r.length===0)return 0;let i=te(cr(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(xe(te(i,o),"utf8")).data}catch{continue}!c||c.started_at==null||uv(c,r)!==null&&s++}return s}function kbt(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 A1(e){return e.toString().padStart(3,"0")}function Qo(e,t,n){let r=lo(e,t);Dl(r,{recursive:!0});let i=kbt(r),s=A1(i),o=vZ(n.title),a=`${s}-${o}.md`,c=te(r,a),u=n.origin||"agent",l=n.authorType??mSe(u),d=n.author||x9n(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=Y0(e,t),A=ue(R)?qb(R):{};h=bbt(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=te(r,m);In(k,Buffer.from(R[2],"base64"))}}let g=pv(n.body),y=m?`${g.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?te(cr(e,t),"feedback"):te(ce(e),"feedback")}function Abt(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=te(s,a),u=xe(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:mn(),result:null,bolt:m});let g={...d,iterations:f};In(c,Ct.default.stringify(`${l.content.trimEnd()} +`,g))}catch{}}function ESe(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)(xe(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=mn(),Ne(s,"iterations",c)}catch{}}function cbt(e,t){try{return W0(e,()=>{let n=ce(e),r=te(n,"intent.md");if(!ue(r))return null;let i=(0,Ct.default)(xe(r,"utf8")).data,s=typeof i.studio=="string"?i.studio:"";if(!s)return null;if(t){let d=bZ(e,t);if(!d)return null;let f=re(xe(d.path,"utf8")),p=R1(e,d.stage),h=uv(f.data,p);if(!h)return null;let m=WI({slug:e,studio:s,unit:t,stage:d.stage,hat:h.hat,terminal:h.terminal});return ESe({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:WI({slug:e,studio:s,unit:u[0],stage:a,hat:c,terminal:l})})}catch{return null}}function $ye(e,t){let n=ce(e),r=ue(te(n,"intent.md"))?(0,Ct.default)(xe(te(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:te(n,"stages",d,"feedback")});c.push({stage:"",dir:te(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(xe(te(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 Abt({slug:e,stage:l.stage,feedbackId:l.feedbackId,hat:l.firstHat}),VI({slug:e,studio:t,feedbackId:l.feedbackId,stage:l.stage,hat:l.firstHat,terminal:l.terminal})}function wbt(e,t,n){if(n<=0)return[];let r=ce(e),i=ai(e,t,r)??"";if(!i)return[];let s=R1(e,i);if(s.length===0)return[];let o=s[0],a=s[s.length-1],c=s.length===1,u=te(cr(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=te(u,h),g;try{g=re(xe(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=>!Kh(e,h.name,b))||(Ne(h.path,"started_at",mn()),y1(h.path,o),ESe({slug:e,stage:i,unit:h.name,hat:o}),p.push(WI({slug:e,studio:t,unit:h.name,stage:i,hat:o,terminal:c})))}return p.length>0&&ci(e),p}function kbt(e,t,n){let r=R1(e,t);if(r.length===0)return 0;let i=te(cr(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(xe(te(i,o),"utf8")).data}catch{continue}!c||c.started_at==null||uv(c,r)!==null&&s++}return s}function Ibt(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 A1(e){return e.toString().padStart(3,"0")}function Qo(e,t,n){let r=lo(e,t);Dl(r,{recursive:!0});let i=Ibt(r),s=A1(i),o=vZ(n.title),a=`${s}-${o}.md`,c=te(r,a),u=n.origin||"agent",l=n.authorType??ySe(u),d=n.author||O9n(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=Y0(e,t),A=ue(R)?qb(R):{};h=Ebt(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=te(r,m);In(k,Buffer.from(R[2],"base64"))}}let g=pv(n.body),y=m?`${g.trim()} ![annotation](/api/feedback-attachment/${encodeURIComponent(e)}/${encodeURIComponent(t)}/${encodeURIComponent(m)}) -`:g,b=new Set(["question","inline_fix","stage_revisit"]),S=typeof n.resolution=="string"&&b.has(n.resolution)?n.resolution:null,E={title:n.title,status:"pending",origin:u,...p?{severity:p}:{},author:d,author_type:l,created_at:mn(),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"?mn():null,resolution:S,replies:[],targets:{unit:n.targetUnit===void 0||n.targetUnit===null?null:n.targetUnit,invalidates:O9n(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(` +`: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:mn(),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"?mn():null,resolution:S,replies:[],targets:{unit:n.targetUnit===void 0||n.targetUnit===null?null:n.targetUnit,invalidates:P9n(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=xe(te(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-${A1(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:C9n(l),iterations:P9n(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 P9n(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 N9n(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=te(i,o),c=xe(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,v1(f)))}function C9n(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 M9n(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(xe(te(r,c),"utf8"));return{path:te(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 Ibt(e,t,n,r){let i=bc(e,t,n);if(!i)return null;let s=mn(),o={...i.data,triaged_at:s};if(t===r){TZ(o);let S=Ct.default.stringify(` +`,E);In(c,_);let T=t?`.haiku/intents/${e}/stages/${t}/feedback/${a}`:`.haiku/intents/${e}/feedback/${a}`;return{feedback_id:`FB-${s}`,file:T,num:i}}function Us(e,t){let n=lo(e,t);if(!ue(n))return[];let r=an(n).filter(s=>s.endsWith(".md")).sort(),i=[];for(let s of r){let o=s.match(/^(\d+)-(.+)\.md$/);if(!o)continue;let a=Number.parseInt(o[1],10),c=o[2],u=xe(te(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-${A1(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:M9n(l),iterations:N9n(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 N9n(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 C9n(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=te(i,o),c=xe(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,v1(f)))}function M9n(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 D9n(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(xe(te(r,c),"utf8"));return{path:te(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 xbt(e,t,n,r){let i=bc(e,t,n);if(!i)return null;let s=mn(),o={...i.data,triaged_at:s};if(t===r){TZ(o);let S=Ct.default.stringify(` ${i.body.trim()} -`,o);In(i.path,S);let E=t?`.haiku/intents/${e}/stages/${t}/feedback/${i.filename}`:`.haiku/intents/${e}/feedback/${i.filename}`,_=o.id;return{feedback_id:typeof _=="string"&&_.length>0?_:xbt(i.filename),file:E,moved:!1,triaged_at:s}}let a=lo(e,r);Dl(a,{recursive:!0});let c=kbt(a),u=A1(c),l=i.filename.match(/^\d+-(.+)\.md$/),d=l?l[1]:"moved-feedback",f=`${u}-${d}.md`,p=te(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=te(h,`${g}-${d}.${S}`);if(ue(E)){let _=te(a,`${u}-${d}.${S}`);if(ue(_))throw new Error(`moveFeedbackFile: refusing to overwrite existing attachment '${_}' \u2014 clean it up manually before retrying.`)}}let y=Ct.default.stringify(` +`,o);In(i.path,S);let E=t?`.haiku/intents/${e}/stages/${t}/feedback/${i.filename}`:`.haiku/intents/${e}/feedback/${i.filename}`,_=o.id;return{feedback_id:typeof _=="string"&&_.length>0?_:Obt(i.filename),file:E,moved:!1,triaged_at:s}}let a=lo(e,r);Dl(a,{recursive:!0});let c=Ibt(a),u=A1(c),l=i.filename.match(/^\d+-(.+)\.md$/),d=l?l[1]:"moved-feedback",f=`${u}-${d}.md`,p=te(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=te(h,`${g}-${d}.${S}`);if(ue(E)){let _=te(a,`${u}-${d}.${S}`);if(ue(_))throw new Error(`moveFeedbackFile: refusing to overwrite existing attachment '${_}' \u2014 clean it up manually before retrying.`)}}let y=Ct.default.stringify(` ${i.body.trim()} -`,o);if(In(p,y),g)for(let S of["png","jpg","jpeg","webp"]){let E=te(h,`${g}-${d}.${S}`);if(ue(E)){let _=te(a,`${u}-${d}.${S}`);cbt(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(` +`,o);if(In(p,y),g)for(let S of["png","jpg","jpeg","webp"]){let E=te(h,`${g}-${d}.${S}`);if(ue(E)){let _=te(a,`${u}-${d}.${S}`);ubt(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))}}X0(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 xbt(e){let t=e.match(/^(\d+)-/);return t?`FB-${t[1]}`:"FB-???"}function Gd(e){return`FB-${e.toString().padStart(3,"0")}`}function bSe(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&&!Bb.includes(r.status))return{ok:!1,error:`Error: status must be one of: ${Bb.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=te(cr(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")),TZ(a),In(s.path,Ct.default.stringify(` +`,o))}}X0(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 Obt(e){let t=e.match(/^(\d+)-/);return t?`FB-${t[1]}`:"FB-???"}function Gd(e){return`FB-${e.toString().padStart(3,"0")}`}function _Se(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&&!Bb.includes(r.status))return{ok:!1,error:`Error: status must be one of: ${Bb.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=te(cr(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")),TZ(a),In(s.path,Ct.default.stringify(` ${s.body} -`,a)),{ok:!0,updated_fields:o}}function ESe(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=pv(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:mn()},l=[...Array.isArray(s.data.replies)?s.data.replies:[],c],d={...s.data,replies:l};return i.close_as_answered&&(d.closed_at||(d.closed_at=new Date().toISOString()),d.resolution||(d.resolution="answered")),In(s.path,Ct.default.stringify(` +`,a)),{ok:!0,updated_fields:o}}function TSe(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=pv(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:mn()},l=[...Array.isArray(s.data.replies)?s.data.replies:[],c],d={...s.data,replies:l};return i.close_as_answered&&(d.closed_at||(d.closed_at=new Date().toISOString()),d.resolution||(d.resolution="answered")),In(s.path,Ct.default.stringify(` ${s.body} -`,d)),{ok:!0,reply_index:l.length-1,status:np(d)}}function D9n(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(` +`,d)),{ok:!0,reply_index:l.length-1,status:np(d)}}function L9n(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 _Se(e,t,n){let r=bc(e,t,n);if(!r)return null;if(!(r.data.closure_reply_unread===!0))return{ok:!0,already_dismissed:!0};let s={...r.data,closure_reply_unread:!1};return In(r.path,Ct.default.stringify(` +`,o)),{bolt:s}}function vSe(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 RZ(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."};X0(i.path);let a=Q0(i.path),c=i.filename.match(/^(\d+-.+)\.md$/);if(c){let u=c[1];for(let l of["png","jpg","jpeg","webp"]){let d=te(a,`${u}.${l}`);if(ue(d))try{X0(d)}catch{}}}return{ok:!0}}function $0(){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=te(i,c,"SKILL.md");if(ue(u)){t.add(c);try{let l=xe(u,"utf8"),{data:d}=re(l);e.push({slug:c,name:d.name||c,description:d.description||"",source:s})}catch{}}}}n(te(process.cwd(),".claude","skills"),"project");try{let i=te(z3n(),".claude","plugins");if(ue(i))for(let s of an(i,{withFileTypes:!0}))s.isDirectory()&&n(te(i,s.name,"skills"),"global")}catch{}let r=nn();return r&&n(te(r,"skills"),"plugin"),e}function jD(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 L9n(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 U9n(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 RZ(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."};X0(i.path);let a=Q0(i.path),c=i.filename.match(/^(\d+-.+)\.md$/);if(c){let u=c[1];for(let l of["png","jpg","jpeg","webp"]){let d=te(a,`${u}.${l}`);if(ue(d))try{X0(d)}catch{}}}return{ok:!0}}function $0(){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=te(i,c,"SKILL.md");if(ue(u)){t.add(c);try{let l=xe(u,"utf8"),{data:d}=re(l);e.push({slug:c,name:d.name||c,description:d.description||"",source:s})}catch{}}}}n(te(process.cwd(),".claude","skills"),"project");try{let i=te(G3n(),".claude","plugins");if(ue(i))for(let s of an(i,{withFileTypes:!0}))s.isDirectory()&&n(te(i,s.name,"skills"),"global")}catch{}let r=nn();return r&&n(te(r,"skills"),"plugin"),e}function jD(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 U9n(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 F9n(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 F9n(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 j9n(e){let t=e.task,n=kI(),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=F9n(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)=>L9n(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(U9n(b)),m.push("```"),m.push("")}return{message:m.join(` -`),studio:s,stage:c}}function vSe(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&&Mft(i.CLAUDE_SESSION_ID);let s=jD(t);if(s)return s;switch(e){case"haiku_intent_get":{let o=Be(t,lge,"haiku_intent_get");if(o)return o;let a=te(ce(t.slug),"intent.md");if(!ue(a))return r({found:!1,field:t.field,value:null});let{data:c}=re(xe(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,dge,"haiku_intent_list");if(o)return o;let a=ve(),c=te(a,"intents");if(!ue(c))return n("[]");let u=t.include_archived===!0,l=Fg(c,{includeArchived:u}),d=_v(),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=KL(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,Hge,"haiku_stage_get");if(o)return o;let a=t.intent,c=t.stage,u=t.field,l=te(ce(a),"intent.md"),d=ue(l)?re(xe(l,"utf8")).data:{},f=d.studio||"",p=typeof d.mode=="string"&&d.mode.length>0?d.mode:"continuous",h=bv({slug:a,studio:f,stage:c,intentDir:ce(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,Xge,"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: [${Db.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(xe(c,"utf8")),l=u[a];return r({ok:!0,field:a,found:l!=null,value:l??null})}case"haiku_unit_set":{let o=Be(t,Jge,"haiku_unit_set");if(o)return o;let a=t.field,c=t.value,u=gb();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(xe(d,"utf8")),h=J0(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=rv.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 Ne(d,a,c),n("ok")}case"haiku_unit_list":{let o=Be(t,Qge,"haiku_unit_list");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=te(cr(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(xe(te(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,eye,"haiku_unit_start");if(o)return o;let a=bZ(t.intent,t.unit),c=t.stage||a?.stage||g1(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(xe(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=hZ(t.intent,c);return n(A?`ok (already started by the engine) +`)}function j9n(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 H9n(e){let t=e.task,n=kI(),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=j9n(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=es(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)=>U9n(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(F9n(b)),m.push("```"),m.push("")}return{message:m.join(` +`),studio:s,stage:c}}function ASe(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&&Lft(i.CLAUDE_SESSION_ID);let s=jD(t);if(s)return s;switch(e){case"haiku_intent_get":{let o=Be(t,fge,"haiku_intent_get");if(o)return o;let a=te(ce(t.slug),"intent.md");if(!ue(a))return r({found:!1,field:t.field,value:null});let{data:c}=re(xe(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,pge,"haiku_intent_list");if(o)return o;let a=ve(),c=te(a,"intents");if(!ue(c))return n("[]");let u=t.include_archived===!0,l=Fg(c,{includeArchived:u}),d=_v(),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=KL(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,Bge,"haiku_stage_get");if(o)return o;let a=t.intent,c=t.stage,u=t.field,l=te(ce(a),"intent.md"),d=ue(l)?re(xe(l,"utf8")).data:{},f=d.studio||"",p=typeof d.mode=="string"&&d.mode.length>0?d.mode:"continuous",h=bv({slug:a,studio:f,stage:c,intentDir:ce(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,$ge,"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: [${Db.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(xe(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,Qge,"haiku_unit_set");if(o)return o;let a=t.field,c=t.value,u=gb();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(xe(d,"utf8")),h=J0(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=rv.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 Ne(d,a,c),n("ok")}case"haiku_unit_list":{let o=Be(t,eye,"haiku_unit_list");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=te(cr(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(xe(te(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,nye,"haiku_unit_start");if(o)return o;let a=bZ(t.intent,t.unit),c=t.stage||a?.stage||g1(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(xe(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=hZ(t.intent,c);return n(A?`ok (already started by the engine) -${A}`:"ok (already started by the engine)")}let T=hZ(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(xe(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)Kh(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=R1(t.intent,c)[0]||"";Ne(l,"started_at",mn()),y1(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=hZ(t.intent,c);return n((m?`ok +${A}`:"ok (already started by the engine)")}let T=hZ(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(xe(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)Kh(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=R1(t.intent,c)[0]||"";Ne(l,"started_at",mn()),y1(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&&Bi(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=hZ(t.intent,c);return n((m?`ok -${m}`:"ok")+fZ(h))}case"haiku_unit_advance_hat":{let o=Be(t,tye,"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=bZ(t.intent,t.unit);if(!C)return r({error:"unit_not_found",message:`Unit '${t.unit}' not found in any stage of intent '${t.intent}'.`},{isError:!0});u=C.path,c=C.stage}let l=ea(t.intent,c);if(l)return l;let d=(C,L,G)=>L&&L.length>0?`${C} +${m}`:"ok")+fZ(h))}case"haiku_unit_advance_hat":{let o=Be(t,rye,"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=bZ(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} --- @@ -742,7 +742,7 @@ Wave still has work \u2014 spawn the block below as your next Task call: ${L}`:`${C} -Wave done \u2014 call \`haiku_run_next { intent: "${G}" }\` for the next instruction.`,f=xe(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=ce(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=>!Kh(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=iSe(t.intent,c,t.unit),E=b.indexOf(g)+1;if(E>=b.length){{let z=`${ce(t.intent)}/intent.md`,{data:J}=re(xe(z,"utf8")),oe=J.studio||"",de=oe?mZ(t.intent,oe,c,t.unit):null;if(de){let _e=t.state_file;_e&&qi(_e,{event:"unit_scope_violation",intent:t.intent,stage:c,unit:t.unit,violations:de.violations});let kt=[...de.scope.intentGlobs.map(Ue=>` - \`${Ue}\` (intent-relative)`),...de.scope.repoGlobs.map(Ue=>` - \`${Ue}\` (repo-relative)`),de.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=xe(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=ce(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=>!Kh(t.intent,t.unit,W));if(G.length>0){let W=t.state_file;return W&&Bi(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=oSe(t.intent,c,t.unit),E=b.indexOf(g)+1;if(E>=b.length){{let z=`${ce(t.intent)}/intent.md`,{data:J}=re(xe(z,"utf8")),oe=J.studio||"",de=oe?mZ(t.intent,oe,c,t.unit):null;if(de){let _e=t.state_file;_e&&Bi(_e,{event:"unit_scope_violation",intent:t.intent,stage:c,unit:t.unit,violations:de.violations});let kt=[...de.scope.intentGlobs.map(Ue=>` - \`${Ue}\` (intent-relative)`),...de.scope.repoGlobs.map(Ue=>` - \`${Ue}\` (repo-relative)`),de.scope.repoWildcard?" - any repo-level path (stage declares scope: repo with wildcard location)":""].filter(Boolean).join(` `);return r({error:"unit_scope_violation",violations:de.violations,scope:de.scope,message:`Cannot complete unit: ${de.violations.length} file(s) were written outside the stage's declared scope. Out-of-bounds files: @@ -756,9 +756,9 @@ To resolve (in the unit worktree): (a) drop ALL unit commits with \`git reset -- NOTE: \`git checkout HEAD -- \` does NOT work on committed files (it's a no-op when the file matches HEAD). Use one of the above. -Alternatively: (d) update the stage's output template \`location:\` / \`scope:\` if this pattern is legitimate, or (e) log a stage_revisit feedback at the upstream stage via \`haiku_feedback\` with \`resolution: "stage_revisit"\` if the scope itself is wrong.`},{isError:!0})}}let C=xe(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(Kh(t.intent,t.unit,z)){q.push(z);continue}let J=_Z(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=xe(u,"utf8"),{data:J,content:oe}=(0,Ct.default)(z);In(u,Ct.default.stringify(oe,{...J,outputs:q}));let de=t.state_file;de&&qi(de,{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})}yZ(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=SZ(`haiku: complete unit ${t.unit}`),F=t.intent,V=`haiku/${F}/${c}`,U=Hb(F,c,()=>Ipe(F,t.unit,c));if(!U.success){let z=te(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(de=>de.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})`,j=D3(ce(t.intent),c),H=`completed (last hat) \u2014 unit branch merged into ${V}${M}. +Alternatively: (d) update the stage's output template \`location:\` / \`scope:\` if this pattern is legitimate, or (e) log a stage_revisit feedback at the upstream stage via \`haiku_feedback\` with \`resolution: "stage_revisit"\` if the scope itself is wrong.`},{isError:!0})}}let C=xe(u,"utf8"),{data:L}=re(C),G=L.outputs||[];if(G.length===0){let z=t.state_file;return z&&Bi(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(Kh(t.intent,t.unit,z)){q.push(z);continue}let J=_Z(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=xe(u,"utf8"),{data:J,content:oe}=(0,Ct.default)(z);In(u,Ct.default.stringify(oe,{...J,outputs:q}));let de=t.state_file;de&&Bi(de,{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&&Bi(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&&Bi(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})}yZ(u,"advance",t.message),Ke("haiku.unit.completed",{intent:t.intent,stage:c,unit:t.unit});{let z=t.state_file;z&&Bi(z,{event:"unit_completed",intent:t.intent,stage:c,unit:t.unit})}let B=SZ(`haiku: complete unit ${t.unit}`),F=t.intent,V=`haiku/${F}/${c}`,U=Hb(F,c,()=>Ipe(F,t.unit,c));if(!U.success){let z=te(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(de=>de.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})`,j=D3(ce(t.intent),c),H=`completed (last hat) \u2014 unit branch merged into ${V}${M}. ${t.unit}: ${g} done \u2014 unit complete`+(j?` -${j}`:"")+fZ(B),K=(()=>{let z=te(ce(t.intent),"intent.md");if(!ue(z))return"";let J=(0,Ct.default)(xe(z,"utf8")).data;return typeof J.studio=="string"?J.studio:""})(),ee=wbt(t.intent,c,t.unit),se=Math.max(0,fv-ee),Le=K&&se>0?W0(t.intent,()=>Abt(t.intent,K,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=`${H} +${j}`:"")+fZ(B),K=(()=>{let z=te(ce(t.intent),"intent.md");if(!ue(z))return"";let J=(0,Ct.default)(xe(z,"utf8")).data;return typeof J.studio=="string"?J.studio:""})(),ee=kbt(t.intent,c,t.unit),se=Math.max(0,fv-ee),Le=K&&se>0?W0(t.intent,()=>wbt(t.intent,K,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=`${H} --- @@ -770,7 +770,7 @@ Wave still has work \u2014 spawn the ${Le.length} ${z} below as your next Task c No unstarted units are ready to dispatch right now; sibling subagents are still working and will refill the pool as they finish. Terminate this turn \u2014 do NOT call haiku_run_next.`:Ae=`${H} -Wave done \u2014 call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;return n(Ae)}{let C=`${ce(t.intent)}/intent.md`,{data:L}=re(xe(C,"utf8")),G=L.studio||"",W=G?mZ(t.intent,G,c,t.unit):null;if(W){let $=t.state_file;$&&qi($,{event:"unit_scope_violation",intent:t.intent,stage:c,unit:t.unit,hat:g,violations:W.violations});let q=[...W.scope.intentGlobs.map(Q=>` - \`${Q}\` (intent-relative)`),...W.scope.repoGlobs.map(Q=>` - \`${Q}\` (repo-relative)`),W.scope.repoWildcard?" - any repo-level path (stage declares scope: repo with wildcard location)":""].filter(Boolean).join(` +Wave done \u2014 call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;return n(Ae)}{let C=`${ce(t.intent)}/intent.md`,{data:L}=re(xe(C,"utf8")),G=L.studio||"",W=G?mZ(t.intent,G,c,t.unit):null;if(W){let $=t.state_file;$&&Bi($,{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: @@ -780,11 +780,11 @@ ${W.violations.map(Q=>` - ${Q}`).join(` Allowed paths (stage output templates + workflow engine metadata): ${q} -Revert the out-of-bounds commits in the unit worktree: drop all unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${c})\`, or amend a single file out with \`git rm && git commit --amend --no-edit\`, or \`git revert --no-edit \` for a whole commit. NOTE: \`git checkout HEAD -- \` is a no-op on committed files. Or update the stage's output template if this pattern is legitimate. Do NOT advance with scope violations \u2014 downstream hats will run blind.`},{isError:!0})}}let T=b[E];yZ(u,"advance",t.message),y1(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=SZ(`haiku: advance hat to ${T} on ${t.unit}`);ppe(t.intent,t.unit),Xr(t.intent,t.state_file);let A=hZ(t.intent,c),x=`${t.unit}: ${g} \u2192 ${T} (hat ${E+1}/${b.length})`,k=D3(ce(t.intent),c),P=`advanced to ${T} +Revert the out-of-bounds commits in the unit worktree: drop all unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${c})\`, or amend a single file out with \`git rm && git commit --amend --no-edit\`, or \`git revert --no-edit \` for a whole commit. NOTE: \`git checkout HEAD -- \` is a no-op on committed files. Or update the stage's output template if this pattern is legitimate. Do NOT advance with scope violations \u2014 downstream hats will run blind.`},{isError:!0})}}let T=b[E];yZ(u,"advance",t.message),y1(u,T);{let C=t.state_file;C&&Bi(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=SZ(`haiku: advance hat to ${T} on ${t.unit}`);ppe(t.intent,t.unit),Xr(t.intent,t.state_file);let A=hZ(t.intent,c),x=`${t.unit}: ${g} \u2192 ${T} (hat ${E+1}/${b.length})`,k=D3(ce(t.intent),c),P=`advanced to ${T} ${x}`+(k?` ${k}`:"")+(A?` -${A}`:"")+fZ(R),N=abt(t.intent,t.unit);return n(d(P,N,t.intent))}case"haiku_unit_reject_hat":{let o=Be(t,nye,"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=bZ(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(xe(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=hbt(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)Kh(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=cSe(g),A=mbt(f,h,R);if(R.length>0&&A+1>=gZ&&m+1<=Ev){let B=null;try{let V=`Reject-loop escalation: ${(g||"").trim().slice(0,80)||"unit stuck on same reason"}`,U=`Unit \`${t.unit}\` (stage \`${u}\`) has been rejected ${A+1} consecutive times by hat \`${h}\` for substantially the same reason. The doer cannot fix what requires a spec change, an open question, or user input. +${A}`:"")+fZ(R),N=cbt(t.intent,t.unit);return n(d(P,N,t.intent))}case"haiku_unit_reject_hat":{let o=Be(t,iye,"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=bZ(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(xe(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=mbt(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)Kh(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=lSe(g),A=gbt(f,h,R);if(R.length>0&&A+1>=gZ&&m+1<=Ev){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**: @@ -798,7 +798,7 @@ Out-of-bounds files: ${U.violations.map(M=>` - ${M}`).join(` `)} -Revert the out-of-bounds commits in the unit worktree: drop all unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${u})\`, or amend a single file out with \`git rm && git commit --amend --no-edit\`, or \`git revert --no-edit \` for a whole commit. NOTE: \`git checkout HEAD -- \` is a NO-OP on committed files and will not clear the violation. After the revert, call reject_hat again.`},{isError:!0})}let x=iSe(t.intent,u,t.unit),k=re(xe(`${ce(t.intent)}/intent.md`,"utf8")).data.studio||"",P=k?Du(k,u):{},{targetHat:N}=Zpe(x,h,{assessorToFirst:!0,assessorHat:vbt,roleOf:B=>P[B]?.role});if(Go.modelSelection){let B=d.model,F=Vfe(B);B&&F&&(Ne(c,"model_original",B),Ne(c,"model",F),console.error(`[haiku] model escalated: ${B} \u2192 ${F} (hat rejected, iteration ${m+1})`))}let C=g;yZ(c,"reject",C),y1(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=abt(t.intent,t.unit),W=T?`${T} `:"",$=D3(ce(t.intent),u),q=`${W}rejected \u2014 back to ${N} (iteration ${m+1}). Reason: ${C??"(none)"} +Revert the out-of-bounds commits in the unit worktree: drop all unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${u})\`, or amend a single file out with \`git rm && git commit --amend --no-edit\`, or \`git revert --no-edit \` for a whole commit. NOTE: \`git checkout HEAD -- \` is a NO-OP on committed files and will not clear the violation. After the revert, call reject_hat again.`},{isError:!0})}let x=oSe(t.intent,u,t.unit),k=re(xe(`${ce(t.intent)}/intent.md`,"utf8")).data.studio||"",P=k?Du(k,u):{},{targetHat:N}=Zpe(x,h,{assessorToFirst:!0,assessorHat:Rbt,roleOf:B=>P[B]?.role});if(Go.modelSelection){let B=d.model,F=Vfe(B);B&&F&&(Ne(c,"model_original",B),Ne(c,"model",F),console.error(`[haiku] model escalated: ${B} \u2192 ${F} (hat rejected, iteration ${m+1})`))}let C=g;yZ(c,"reject",C),y1(c,N);{let B=t.state_file;B&&Bi(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=cbt(t.intent,t.unit),W=T?`${T} `:"",$=D3(ce(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})`+($?` ${$}`:"")+fZ(L),Q=G&&G.length>0?`${q} @@ -808,8 +808,8 @@ Wave still has work \u2014 spawn the block below as your next Task call: ${G}`:`${q} -Call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;return r({ok:!0,unit:t.unit,stage:u,prev_hat:N,bolt:m+1,reason:C??null,outputs_present:E,outputs_files_present:b,outputs_files_missing:S,next_subagent_dispatch_block:G,message:Q})}case"haiku_unit_read":{let o=Be(t,rye,"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});nSe(c);let{data:u,body:l}=re(xe(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,zge,"haiku_read_hat");if(o)return o;let a=t.studio,c=t.stage,u=t.hat,l=t.fix===!0,d=AI(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,Gge,"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,Wge,"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,Vge,"haiku_read_intent");if(o)return o;let a=t.intent,c=Yh(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,Kge,"haiku_read_discovery");if(o)return o;let a=t.studio,c=t.stage,u=t.template,l=wI(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,Yge,"haiku_read_phase");if(o)return o;let a=t.studio,c=t.stage,u=t.phase,l=XK(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,Zge,"haiku_read_output");if(o)return o;let a=t.studio,c=t.stage,u=t.name,l=JK(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,iye,"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(xe(c,"utf8")),l=J0(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}):(Qye(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,sye,"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(xe(p,"utf8")),k=J0(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=te(cr(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(xe(te(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=te(ce(c),"intent.md");if(ue(x)){let k=re(xe(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=Ebt(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(xe(te(m,x),"utf8"));E[k]=Array.isArray(P.depends_on)?P.depends_on:[]}E[l]=Array.isArray(f.depends_on)?f.depends_on:[];let _=_bt(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=g9n(d);if(T)return r(T,{isError:!0});let R=y9n(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,pge,"haiku_reconciliation_acknowledge");if(o)return o;let a=t.intent,u=t.stage||g1(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=te(ce(a),"stages",u);Dl(d,{recursive:!0});let f=te(d,"upstream-reconciliation.json");return S1(f,{acknowledged:!0,acknowledged_at:mn(),rationale:l}),sbt(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:mn()}),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,hge,"haiku_decision_record");if(o)return o;let a=t.intent,u=t.stage||g1(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=te(ce(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=te(l,"no-decisions.json");return S1(b,{declared:!0,declared_at:mn(),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});sbt(a,u,{decision:p,options:h,choice:m,source:g,rationale:f||null,recorded_at:mn()});let y=I3(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,mge,"haiku_knowledge_list");if(o)return o;let a=te(ce(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,gge,"haiku_knowledge_read");if(o)return o;let a=te(ce(t.intent),"knowledge",t.name);return ue(a)?r({found:!0,name:t.name,content:xe(a,"utf8")}):r({found:!1,name:t.name,content:""})}case"haiku_skill_list":{let o=Be(t,zL,"haiku_skill_list");return o||r({skills:$0()})}case"haiku_studio_list":{let o=Be(t,zL,"haiku_studio_list");if(o)return o;let a=kI().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,yge,"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=te(a.path,"stages",c,"STAGE.md");if(!ue(u))return r({found:!1});let l=xe(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,bge,"haiku_settings_get");if(o)return o;let a=t.field,c="";try{c=te(ve(),"settings.yml")}catch{}if(!(c&&ue(c)))return r({found:!1,field:a,value:null});let u=xe(c,"utf8"),l=obt(u),d=R9n(l,a);return r({found:d!=null,field:a,value:d??null})}case"haiku_settings_set":{let o=Be(t,Ege,"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=te(ve(),"settings.yml")}catch(m){return u("haiku_root_not_found",`No .haiku/ directory found: ${m.message}`)}let f={...ue(l)?obt(xe(l,"utf8")):{}};if(c==null?delete f[a]:f[a]=c,!b9n(f)){let m=E9n()[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,fge,"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=gb();if(!d&&nv.includes(c))return l("intent_field_engine_only",`Field '${c}' is workflow engine-managed \u2014 agents cannot set it. Engine-only fields: ${nv.join(", ")}.`);if(!d&&OY.includes(c))return l("intent_field_immutable",`Field '${c}' is immutable after creation.`);if(!tv.includes(c))return l("intent_field_unknown",`Field '${c}' is not in INTENT_FRONTMATTER_SCHEMA. Allowed: ${tv.filter(h=>!OY.includes(h)).join(", ")}.`);let f="";try{f=te(ce(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(!x0(p)){let h=x0.errors?.[0];return l("intent_field_type_mismatch",`Field '${c}' fails INTENT_FRONTMATTER_SCHEMA validation: ${h?.instancePath||"(root)"} ${h?.message||"invalid"}.`)}return Ne(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,qge,"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,_ge,"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=te(u,"intents");if(!ue(l))return r({markdown:"No intents found.",studio:c});let d=Fg(l),f=m=>{if(m.length===0)return 0;let g=[...m].sort((b,S)=>b-S),y=Math.floor(g.length/2);return g.length%2!==0?g[y]:(g[y-1]+g[y])/2},p=new Map;for(let{slug:m,data:g}of d){let y=g.studio||"unassigned";if(a&&y!==a)continue;p.has(y)||p.set(y,[]);let b=typeof g.plugin_version=="string",S=g.status||"",E=b?typeof g.sealed_at=="string"&&g.sealed_at?"completed":"active":"",_=S||E||"unknown";p.get(y)?.push({slug:m,status:_,data:g})}if(p.size===0)return r({markdown:a?`No intents found for studio '${a}'.`:"No intents found.",studio:c});let h=`# Capacity Report +Call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;return r({ok:!0,unit:t.unit,stage:u,prev_hat:N,bolt:m+1,reason:C??null,outputs_present:E,outputs_files_present:b,outputs_files_missing:S,next_subagent_dispatch_block:G,message:Q})}case"haiku_unit_read":{let o=Be(t,sye,"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});iSe(c);let{data:u,body:l}=re(xe(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,Vge,"haiku_read_hat");if(o)return o;let a=t.studio,c=t.stage,u=t.hat,l=t.fix===!0,d=AI(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,Wge,"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,Yge,"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,Kge,"haiku_read_intent");if(o)return o;let a=t.intent,c=Yh(a);return c===null?r({error:"intent_not_found",intent:a,message:`No intent.md for '${a}'.`},{isError:!0}):r({intent:a,body:c})}case"haiku_read_discovery":{let o=Be(t,Zge,"haiku_read_discovery");if(o)return o;let a=t.studio,c=t.stage,u=t.template,l=wI(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,Jge,"haiku_read_phase");if(o)return o;let a=t.studio,c=t.stage,u=t.phase,l=XK(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,Xge,"haiku_read_output");if(o)return o;let a=t.studio,c=t.stage,u=t.name,l=JK(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,oye,"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(xe(c,"utf8")),l=J0(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}):(eSe(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,aye,"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(xe(p,"utf8")),k=J0(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=te(cr(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(xe(te(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=te(ce(c),"intent.md");if(ue(x)){let k=re(xe(x,"utf8")).data.studio||"",P=k?si(k):null;if(P){let N=es(P.dir,u);N&&N.data.produces==="build"&&(b="build")}}}catch{}let S=_bt(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(xe(te(m,x),"utf8"));E[k]=Array.isArray(P.depends_on)?P.depends_on:[]}E[l]=Array.isArray(f.depends_on)?f.depends_on:[];let _=Tbt(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=y9n(d);if(T)return r(T,{isError:!0});let R=S9n(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,mge,"haiku_reconciliation_acknowledge");if(o)return o;let a=t.intent,u=t.stage||g1(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=te(ce(a),"stages",u);Dl(d,{recursive:!0});let f=te(d,"upstream-reconciliation.json");return S1(f,{acknowledged:!0,acknowledged_at:mn(),rationale:l}),obt(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:mn()}),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,gge,"haiku_decision_record");if(o)return o;let a=t.intent,u=t.stage||g1(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=te(ce(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=te(l,"no-decisions.json");return S1(b,{declared:!0,declared_at:mn(),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});obt(a,u,{decision:p,options:h,choice:m,source:g,rationale:f||null,recorded_at:mn()});let y=I3(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,yge,"haiku_knowledge_list");if(o)return o;let a=te(ce(t.intent),"knowledge");if(!ue(a))return r({files:[]});let c=an(a).filter(u=>u.endsWith(".md"));return r({files:c})}case"haiku_knowledge_read":{let o=Be(t,Sge,"haiku_knowledge_read");if(o)return o;let a=te(ce(t.intent),"knowledge",t.name);return ue(a)?r({found:!0,name:t.name,content:xe(a,"utf8")}):r({found:!1,name:t.name,content:""})}case"haiku_skill_list":{let o=Be(t,zL,"haiku_skill_list");return o||r({skills:$0()})}case"haiku_studio_list":{let o=Be(t,zL,"haiku_studio_list");if(o)return o;let a=kI().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,bge,"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,Ege,"haiku_studio_stage_get");if(o)return o;let a=si(t.studio);if(!a)return r({found:!1});let c=t.stage,u=te(a.path,"stages",c,"STAGE.md");if(!ue(u))return r({found:!1});let l=xe(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,_ge,"haiku_settings_get");if(o)return o;let a=t.field,c="";try{c=te(ve(),"settings.yml")}catch{}if(!(c&&ue(c)))return r({found:!1,field:a,value:null});let u=xe(c,"utf8"),l=abt(u),d=A9n(l,a);return r({found:d!=null,field:a,value:d??null})}case"haiku_settings_set":{let o=Be(t,Tge,"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=te(ve(),"settings.yml")}catch(m){return u("haiku_root_not_found",`No .haiku/ directory found: ${m.message}`)}let f={...ue(l)?abt(xe(l,"utf8")):{}};if(c==null?delete f[a]:f[a]=c,!E9n(f)){let m=_9n()[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,hge,"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=gb();if(!d&&nv.includes(c))return l("intent_field_engine_only",`Field '${c}' is workflow engine-managed \u2014 agents cannot set it. Engine-only fields: ${nv.join(", ")}.`);if(!d&&OY.includes(c))return l("intent_field_immutable",`Field '${c}' is immutable after creation.`);if(!tv.includes(c))return l("intent_field_unknown",`Field '${c}' is not in INTENT_FRONTMATTER_SCHEMA. Allowed: ${tv.filter(h=>!OY.includes(h)).join(", ")}.`);let f="";try{f=te(ce(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(!x0(p)){let h=x0.errors?.[0];return l("intent_field_type_mismatch",`Field '${c}' fails INTENT_FRONTMATTER_SCHEMA validation: ${h?.instancePath||"(root)"} ${h?.message||"invalid"}.`)}return Ne(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,zge,"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,vge,"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=te(u,"intents");if(!ue(l))return r({markdown:"No intents found.",studio:c});let d=Fg(l),f=m=>{if(m.length===0)return 0;let g=[...m].sort((b,S)=>b-S),y=Math.floor(g.length/2);return g.length%2!==0?g[y]:(g[y-1]+g[y])/2},p=new Map;for(let{slug:m,data:g}of d){let y=g.studio||"unassigned";if(a&&y!==a)continue;p.has(y)||p.set(y,[]);let b=typeof g.plugin_version=="string",S=g.status||"",E=b?typeof g.sealed_at=="string"&&g.sealed_at?"completed":"active":"",_=S||E||"unknown";p.get(y)?.push({slug:m,status:_,data:g})}if(p.size===0)return r({markdown:a?`No intents found for studio '${a}'.`:"No intents found.",studio:c});let h=`# Capacity Report `;for(let[m,g]of p){let y=g.filter(E=>E.status==="completed").length,b=g.filter(E=>E.status==="active").length;h+=` ## Studio: ${m} `,h+=`- Total intents: ${g.length} @@ -819,7 +819,7 @@ Call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;ret | Stage | Units | Median Iterations | |-------|-------|-------------------| `;for(let[E,_]of S)h+=`| ${E} | ${_.length} | ${f(_)} | -`}}return r({markdown:h,studio:c})}case"haiku_zap":{let o=Be(t,Tge,"haiku_zap");if(o)return o;let a=j9n(t);return r(a,a.error?{isError:!0}:void 0)}case"haiku_review":{let o=Be(t,vge,"haiku_review");if(o)return o;let a=Zo();try{let m=lZ("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=lZ("git",["diff",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe",maxBuffer:10485760}).stdout||"",u=lZ("git",["diff","--stat",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||"",l=lZ("git",["diff","--name-only",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||""}catch{}let d=1e5;c.length>d&&(c=`${c.slice(0,d)} +`}}return r({markdown:h,studio:c})}case"haiku_zap":{let o=Be(t,Rge,"haiku_zap");if(o)return o;let a=H9n(t);return r(a,a.error?{isError:!0}:void 0)}case"haiku_review":{let o=Be(t,Age,"haiku_review");if(o)return o;let a=Zo();try{let m=lZ("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=lZ("git",["diff",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe",maxBuffer:10485760}).stdout||"",u=lZ("git",["diff","--stat",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||"",l=lZ("git",["diff","--name-only",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||""}catch{}let d=1e5;c.length>d&&(c=`${c.slice(0,d)} ... [TRUNCATED at 100k chars] ...`);let f="",p=process.cwd();for(let m of["REVIEW.md","CLAUDE.md"]){let g=te(p,m);ue(g)&&(f+=` ### ${m} @@ -848,7 +848,7 @@ ${c||"No changes detected."} `,h+=`2. Collect findings, deduplicate across agents `,h+=`3. Fix all HIGH severity findings before delivery `,h+=`4. Report findings summary to the user -`,n(h)}case"haiku_backlog":{let o=Be(t,Age,"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=te(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,kge,"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=te(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 | |---|------|----------|---------| @@ -880,7 +880,7 @@ For each item, ask the user and apply their choice. `,d+=`1. Read the backlog item file `,d+=`2. Use /haiku:haiku-start to create an intent from its description `,d+=`3. Delete the backlog file after the intent is created -`,c(d)}default:return c(`Unknown backlog action: '${a}'. Valid actions: list, add, review, promote.`)}}case"haiku_seed":{let o=Be(t,wge,"haiku_seed");if(o)return o;let a=t.action||"list",c;try{c=ve()}catch{return n("No .haiku directory found.")}let u=te(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(xe(te(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,Ige,"haiku_seed");if(o)return o;let a=t.action||"list",c;try{c=ve()}catch{return n("No .haiku directory found.")}let u=te(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(xe(te(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}) @@ -906,7 +906,7 @@ Evaluate each planted seed's trigger condition against the current project state `}return f+=`--- For each seed: if the trigger condition is met, update its status to 'surfaced'. If not, leave as 'planted'. -`,n(f)}default:return n(`Unknown seed action: '${a}'. Valid actions: list, plant, check.`)}}case"haiku_release_notes":{let o=Be(t,kge,"haiku_release_notes");if(o)return o;let a=t.version||"",c=a||null,u=b=>r({markdown:b,version:c}),l="",d=nn();if(d){let b=te(d,"CHANGELOG.md");ue(b)&&(l=b)}if(!l){let b=process.cwd();for(let S=0;S<20;S++){let E=te(b,"CHANGELOG.md");if(ue(E)){l=E;break}let _=te(b,"..");if(_===b)break;b=_}}if(!l)return u("No CHANGELOG.md found.");let f=xe(l,"utf8"),p=/^## \[([^\]]+)\]/gm,h=[],m=p.exec(f);for(;m!==null;)h.push({version:m[1],start:m.index}),m=p.exec(f);if(h.length===0)return u("No versioned entries found in CHANGELOG.md.");if(a){let b=h.findIndex(_=>_.version===a);if(b===-1)return u(`Version '${a}' not found in CHANGELOG.md. Available: ${h.slice(0,10).map(_=>_.version).join(", ")}`);let S=b+1r({markdown:b,version:c}),l="",d=nn();if(d){let b=te(d,"CHANGELOG.md");ue(b)&&(l=b)}if(!l){let b=process.cwd();for(let S=0;S<20;S++){let E=te(b,"CHANGELOG.md");if(ue(E)){l=E;break}let _=te(b,"..");if(_===b)break;b=_}}if(!l)return u("No CHANGELOG.md found.");let f=xe(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?pbt():{moved:[],skipped:[],cleanedSkeletons:[]},f=X3n(d);if(Ee()&&!a&&!u)try{let{summaries:m,mainline:g,archivedSummary:y}=Q3n(c);if(m.length>0||y){let b=e9n(m,g,y);return l(f?`${f} +`,u(y)}case"haiku_repair":{let o=Be(t,Pge,"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?hbt():{moved:[],skipped:[],cleanedSkeletons:[]},f=Q3n(d);if(Ee()&&!a&&!u)try{let{summaries:m,mainline:g,archivedSummary:y}=$3n(c);if(m.length>0||y){let b=t9n(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{ve()}catch{return l(f?`${f} -No .haiku/ directory found.`:"No .haiku/ directory found.")}let p;try{p=fbt(void 0,a,c)}catch(m){let g=`Repair failed: ${m instanceof Error?m.message:String(m)}`;return l(f?`${f} +No .haiku/ directory found.`:"No .haiku/ directory found.")}let p;try{p=pbt(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=Z3n(p);return l(f?`${f} -${h}`:h)}case"haiku_feedback":{let o=Be(t,Yme,"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=te(ce(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=cr(a,c);if(!ue(k)){let{data:P}=re(xe(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=ybt(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(pZ(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,ege,"haiku_feedback_delete");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=RZ(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(pZ(p,f))}case"haiku_feedback_move":{let o=Be(t,tge,"haiku_feedback_move");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=te(ce(a),"intent.md");if(!ue(d))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};if(l){let{data:S}=re(xe(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=Ibt(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(pZ(b,y))}case"haiku_feedback_reject":{let o=Be(t,nge,"haiku_feedback_reject");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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()};TZ(h);let m=`${f.body} +No intents found.`:"No intents found.");let h=J3n(p);return l(f?`${f} +${h}`:h)}case"haiku_feedback":{let o=Be(t,Jme,"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=te(ce(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=cr(a,c);if(!ue(k)){let{data:P}=re(xe(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=Sbt(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(pZ(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,nge,"haiku_feedback_delete");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=RZ(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(pZ(p,f))}case"haiku_feedback_move":{let o=Be(t,rge,"haiku_feedback_move");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=te(ce(a),"intent.md");if(!ue(d))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};if(l){let{data:S}=re(xe(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=xbt(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(pZ(b,y))}case"haiku_feedback_reject":{let o=Be(t,ige,"haiku_feedback_reject");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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()};TZ(h);let m=`${f.body} --- **Rejection reason:** ${l}`;In(f.path,Ct.default.stringify(` ${m} -`,h));let g=wt(c?`feedback: reject ${u} in ${c}`:`feedback: reject ${u} (intent-scope)`);f3(a,c||"intent",u);let y=null;try{let S=te(ce(a),"intent.md"),E=ue(S)?re(xe(S,"utf8")).data.studio??"":"";E&&(y=W0(a,()=>Xye(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(pZ(b,g))}case"haiku_feedback_list":{let o=Be(t,rge,"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=te(ce(a),"intent.md");if(!ue(l))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};let d=ea(a,c??g1(a));if(d)return d;let f;if(c)f=[c];else{let g=te(ce(a),"stages");ue(g)?f=an(g).filter(y=>ue(te(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,ige,"haiku_feedback_read");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=te(l,S),{data:_,body:T}=re(xe(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});nSe(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,sge,"haiku_feedback_write");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(t.feedback_id),l=t.body??"",d=pv(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(!gb()&&(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!gb()&&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,cge,"haiku_feedback_advance_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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 j=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 ${j}.`},{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=te(ce(a),"intent.md"),b="software";if(ue(y)){let{data:j}=re(xe(y,"utf8"));b=j.studio||"software"}if(c){let j=$i(b,c);j?.data?.fix_hats&&Array.isArray(j.data.fix_hats)&&(g=j.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 j=(typeof t.reply=="string"?t.reply.trim():"")||(typeof t.message=="string"?t.message.trim():"");if(!j)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 H=Array.isArray(p.iterations)?p.iterations.slice():[],K=H[H.length-1],ee={bolt:E,hat:R,completed_at:mn(),result:"closed",message:j};K&&(K.result===null||K.result===void 0)&&K.hat===R?H[H.length-1]={...K,...ee}:H.push(ee);let se={...p,hat:R,iterations:H,status:"non_actionable",resolution:"non_actionable",closed_at:mn(),closed_by:`${R}:non_actionable`,closure_reply:{text:j,at:mn()},closure_reply_unread:!0};In(f,Ct.default.stringify(`${h.trimEnd()} -`,se)),ci(a),f3(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=Xye(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}': ${j}`+(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:mn(),result:A?"closed":"advanced",...P?{message:P}:{}}:N.push({bolt:E,hat:R,completed_at:mn(),result:A?"closed":"advanced",...P?{message:P}:{}});let G=m,W,$;A?(G="closed",W=`fix-loop:${u}:bolt-${E}`,$=mn()):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:mn()},Q.closure_reply_unread=!0),In(f,Ct.default.stringify(`${h.trimEnd()} -`,Q)),ci(a),A&&xSt({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)hpe(a,B,u);else{SZ(`haiku: close fix-chain ${u}`);let j=Hb(a,B,()=>XD(a,B,u));if(!j.success){let H=Sg(a,B,u);return j.isConflict?r({action:"integrate_fix_chains",intent:a,scope:B,items:[{feedback_id:u}],feedback_id:u,worktree:H,conflict_paths:j.conflictFiles??[],message:`Fix-chain ${u} closed, but landing its code on ${B==="intent"?`haiku/${a}/main`:`stage '${B}'`} produced conflicts on ${(j.conflictFiles??[]).length} file(s): ${(j.conflictFiles??[]).join(", ")}. The merge is left in-progress in the fix-chain worktree (${H}) \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:H,error:j.message,message:`Fix-chain ${u} closed, but the engine could not merge its code into ${B==="intent"?`haiku/${a}/main`:`stage '${B}'`}. Git output: ${j.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 j=te(ce(a),"intent.md");if(!ue(j))return"";let H=(0,Ct.default)(xe(j,"utf8")).data;return typeof H.studio=="string"?H.studio:""})();if(!A&&F&&M)try{let j=T+1===g.length-1;V=VI({slug:a,studio:M,feedbackId:u,stage:c??"",hat:F,terminal:j}),U="Relay the `next_subagent_dispatch_block` field verbatim as your final message."}catch{}else if(A&&M)try{V=W0(a,()=>Xye(a,M)),V&&(U="Relay the `next_subagent_dispatch_block` field verbatim as your final message.")}catch{}if(!V){let j=!1;try{let H=ce(a),K=[te(H,"feedback")],ee=te(H,"stages");if(ue(ee))for(let se of an(ee))K.push(te(ee,se,"feedback"));e:for(let se of K)if(ue(se))for(let Le of an(se).filter(Ae=>Ae.endsWith(".md"))){let Ae=xe(te(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)){j=!0;break e}}}catch{}U=j?"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,uge,"haiku_feedback_reject_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=te(ce(a),"intent.md"),S="software";if(ue(b)){let{data:V}=re(xe(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):QK(S),{targetHat:N}=Zpe(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: +`,h));let g=wt(c?`feedback: reject ${u} in ${c}`:`feedback: reject ${u} (intent-scope)`);f3(a,c||"intent",u);let y=null;try{let S=te(ce(a),"intent.md"),E=ue(S)?re(xe(S,"utf8")).data.studio??"":"";E&&(y=W0(a,()=>$ye(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(pZ(b,g))}case"haiku_feedback_list":{let o=Be(t,sge,"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=te(ce(a),"intent.md");if(!ue(l))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};let d=ea(a,c??g1(a));if(d)return d;let f;if(c)f=[c];else{let g=te(ce(a),"stages");ue(g)?f=an(g).filter(y=>ue(te(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,oge,"haiku_feedback_read");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=te(l,S),{data:_,body:T}=re(xe(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});iSe(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,age,"haiku_feedback_write");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(t.feedback_id),l=t.body??"",d=pv(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(!gb()&&(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!gb()&&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,lge,"haiku_feedback_advance_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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 j=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 ${j}.`},{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=te(ce(a),"intent.md"),b="software";if(ue(y)){let{data:j}=re(xe(y,"utf8"));b=j.studio||"software"}if(c){let j=es(b,c);j?.data?.fix_hats&&Array.isArray(j.data.fix_hats)&&(g=j.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 j=(typeof t.reply=="string"?t.reply.trim():"")||(typeof t.message=="string"?t.message.trim():"");if(!j)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 H=Array.isArray(p.iterations)?p.iterations.slice():[],K=H[H.length-1],ee={bolt:E,hat:R,completed_at:mn(),result:"closed",message:j};K&&(K.result===null||K.result===void 0)&&K.hat===R?H[H.length-1]={...K,...ee}:H.push(ee);let se={...p,hat:R,iterations:H,status:"non_actionable",resolution:"non_actionable",closed_at:mn(),closed_by:`${R}:non_actionable`,closure_reply:{text:j,at:mn()},closure_reply_unread:!0};In(f,Ct.default.stringify(`${h.trimEnd()} +`,se)),ci(a),f3(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=$ye(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}': ${j}`+(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:mn(),result:A?"closed":"advanced",...P?{message:P}:{}}:N.push({bolt:E,hat:R,completed_at:mn(),result:A?"closed":"advanced",...P?{message:P}:{}});let G=m,W,$;A?(G="closed",W=`fix-loop:${u}:bolt-${E}`,$=mn()):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:mn()},Q.closure_reply_unread=!0),In(f,Ct.default.stringify(`${h.trimEnd()} +`,Q)),ci(a),A&&OSt({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)hpe(a,B,u);else{SZ(`haiku: close fix-chain ${u}`);let j=Hb(a,B,()=>XD(a,B,u));if(!j.success){let H=Sg(a,B,u);return j.isConflict?r({action:"integrate_fix_chains",intent:a,scope:B,items:[{feedback_id:u}],feedback_id:u,worktree:H,conflict_paths:j.conflictFiles??[],message:`Fix-chain ${u} closed, but landing its code on ${B==="intent"?`haiku/${a}/main`:`stage '${B}'`} produced conflicts on ${(j.conflictFiles??[]).length} file(s): ${(j.conflictFiles??[]).join(", ")}. The merge is left in-progress in the fix-chain worktree (${H}) \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:H,error:j.message,message:`Fix-chain ${u} closed, but the engine could not merge its code into ${B==="intent"?`haiku/${a}/main`:`stage '${B}'`}. Git output: ${j.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 j=te(ce(a),"intent.md");if(!ue(j))return"";let H=(0,Ct.default)(xe(j,"utf8")).data;return typeof H.studio=="string"?H.studio:""})();if(!A&&F&&M)try{let j=T+1===g.length-1;V=VI({slug:a,studio:M,feedbackId:u,stage:c??"",hat:F,terminal:j}),U="Relay the `next_subagent_dispatch_block` field verbatim as your final message."}catch{}else if(A&&M)try{V=W0(a,()=>$ye(a,M)),V&&(U="Relay the `next_subagent_dispatch_block` field verbatim as your final message.")}catch{}if(!V){let j=!1;try{let H=ce(a),K=[te(H,"feedback")],ee=te(H,"stages");if(ue(ee))for(let se of an(ee))K.push(te(ee,se,"feedback"));e:for(let se of K)if(ue(se))for(let Le of an(se).filter(Ae=>Ae.endsWith(".md"))){let Ae=xe(te(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)){j=!0;break e}}}catch{}U=j?"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,dge,"haiku_feedback_reject_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=te(ce(a),"intent.md"),S="software";if(ue(b)){let{data:V}=re(xe(b,"utf8"));S=V.studio||"software"}if(c){let V=es(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):QK(S),{targetHat:N}=Zpe(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:mn(),result:"rejected",message:l||"(no message provided)"}:C.push({bolt:_,hat:A,completed_at:mn(),result:"rejected",message:l||"(no message provided)"});let $,q;if(Go.modelSelection){let V=h.model,U=Vfe(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=VI({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,oge,"haiku_feedback_set_targets");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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(` +`,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=VI({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,cge,"haiku_feedback_set_targets");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(t.feedback_id),l=t.target_unit===null||t.target_unit===void 0?null:t.target_unit,d=t.target_invalidates??[],f=typeof t.reasoning=="string"?t.reasoning.trim():"",p=ea(a,c||void 0);if(p)return p;let h=bc(a,c,u);if(!h)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let m=h.data.targets&&typeof h.data.targets=="object"?h.data.targets:null,g=m&&typeof m.unit<"u"&&m.unit!==null?m.unit:null,y=m&&Array.isArray(m.invalidates)?m.invalidates:[];if(g!==null||y.length>0)return r({error:"targets_already_set",feedback_id:u,current_target_unit:g,current_target_invalidates:y,message:`Feedback '${u}' already has classified targets \u2014 once set, immutable per the FB-as-unit architecture. To retarget, reject the FB (haiku_feedback_reject) and create a new one with the correct targets.`},{isError:!0});let b=h.data.status||"pending";if(b==="closed"||b==="rejected")return r({error:"lifecycle_violation",current_status:b,message:`Cannot classify FB '${u}' \u2014 already ${b} (terminal).`},{isError:!0});let S={unit:l,invalidates:d};f&&(S.reasoning=f);let E={...h.data,targets:S};return In(h.path,Ct.default.stringify(` ${h.body} -`,E)),ci(a),r({ok:!0,feedback_id:u,target_unit:l,target_invalidates:d,reasoning:f||null,message:`Feedback '${u}' classified: target_unit=${l??"null (intent-scope)"}, invalidates=[${d.join(", ")}]${f?` \u2014 ${f}`:""}.`})}case"haiku_feedback_set_severity":{let o=Be(t,age,"haiku_feedback_set_severity");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(t.feedback_id),l=t.severity,d=typeof t.reasoning=="string"?t.reasoning.trim():"",f=ea(a,c||void 0);if(f)return f;let p=bc(a,c,u);if(!p)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let h=typeof p.data.severity=="string"?p.data.severity:null;if(h!==null)return r({error:"severity_already_set",feedback_id:u,current_severity:h,message:`Feedback '${u}' already has severity '${h}' \u2014 once set, immutable per the FB-as-unit architecture. To re-rank, reject the FB (haiku_feedback_reject) and create a new one.`},{isError:!0});let m=p.data.status||"pending";if(m==="closed"||m==="rejected")return r({error:"lifecycle_violation",current_status:m,message:`Cannot set severity on FB '${u}' \u2014 already ${m} (terminal).`},{isError:!0});let g={...p.data,severity:l};return In(p.path,Ct.default.stringify(` +`,E)),ci(a),r({ok:!0,feedback_id:u,target_unit:l,target_invalidates:d,reasoning:f||null,message:`Feedback '${u}' classified: target_unit=${l??"null (intent-scope)"}, invalidates=[${d.join(", ")}]${f?` \u2014 ${f}`:""}.`})}case"haiku_feedback_set_severity":{let o=Be(t,uge,"haiku_feedback_set_severity");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(t.feedback_id),l=t.severity,d=typeof t.reasoning=="string"?t.reasoning.trim():"",f=ea(a,c||void 0);if(f)return f;let p=bc(a,c,u);if(!p)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let h=typeof p.data.severity=="string"?p.data.severity:null;if(h!==null)return r({error:"severity_already_set",feedback_id:u,current_severity:h,message:`Feedback '${u}' already has severity '${h}' \u2014 once set, immutable per the FB-as-unit architecture. To re-rank, reject the FB (haiku_feedback_reject) and create a new one.`},{isError:!0});let m=p.data.status||"pending";if(m==="closed"||m==="rejected")return r({error:"lifecycle_violation",current_status:m,message:`Cannot set severity on FB '${u}' \u2014 already ${m} (terminal).`},{isError:!0});let g={...p.data,severity:l};return In(p.path,Ct.default.stringify(` ${p.body} -`,g)),ci(a),r({ok:!0,feedback_id:u,severity:l,reasoning:d||null,message:`Feedback '${u}' severity set to '${l}'${d?` \u2014 ${d}`:""}.`})}case"haiku_version_info":{let o=Be(t,zL,"haiku_version_info");if(o)return o;let a=ud==="dev",c={mcp_version:ud,plugin_version:vS(),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 lbt,Ct,$ye,eSe,sSe,Y3n,h1,Vd,Df,Ev,gZ,d9n,p9n,h9n,Jye,rSe,A9n,vbt,w9n,Bb,Dg,k9n,fv,I9n,TSe,ze=v(()=>{"use strict";xD();lbt=Re(V_(),1),Ct=Re(Kt(),1);Ci();zfe();Ype();spt();ns();she();L3();Oa();YL();Rye();Aye();o1();XY();OSt();ar();K0();pb();f1();sh();p1();uZ();Kn();vl();vo();p_();Eb();ji();Ia();ji();uo();$ye=10*1024,eSe=1024;sSe=80;Y3n=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;h1=null;Vd=class extends Error{constructor(t){super(t),this.name="IntentScopeTickPersistError"}};Df=2,Ev=5,gZ=3;d9n=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"]);p9n=.6;h9n=[/\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];Jye=null,rSe=null;A9n=[{entry:".haiku/worktrees/",accept:[".haiku/worktrees"]},{entry:".haiku/intents/*/stages/*/proof/",accept:[".haiku/intents/*/stages/*/proof"]},{entry:".haiku/intents/*/proof/",accept:[".haiku/intents/*/proof"]}];vbt="feedback-assessor";w9n=["adversarial-review","studio-review","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],Bb=["pending","fixing","addressed","answered","non_actionable","closed","rejected"];Dg=3,k9n=3,fv=(()=>{let e=process.env.HAIKU_MAX_CONCURRENT_SUBAGENTS,t=e?Number.parseInt(e,10):NaN;return Number.isFinite(t)&&t>0?t:10})(),I9n=new Set(["user-visual","user-chat","user-question","user-revisit","external-pr","external-mr"]);TSe=[{name:"haiku_intent_get",description:"Read a field from an intent's frontmatter",inputSchema:z9,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:G9,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:lY,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: ${Db.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:_Y,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: ${Db.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:EY,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:TY,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:vY,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:RY,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:AY,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:wY,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:fY,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:pY,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:mY,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:hY,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:gY,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:yY,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:SY,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:kY,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,zL,"haiku_version_info");if(o)return o;let a=ud==="dev",c={mcp_version:ud,plugin_version:vS(),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 dbt,Ct,tSe,nSe,aSe,Z3n,h1,Vd,Df,Ev,gZ,f9n,h9n,m9n,Qye,sSe,w9n,Rbt,k9n,Bb,Dg,I9n,fv,x9n,RSe,ze=v(()=>{"use strict";xD();dbt=Re(V_(),1),Ct=Re(Kt(),1);Ci();zfe();Ype();apt();ji();ahe();L3();Oa();YL();wye();kye();o1();XY();PSt();ar();K0();pb();f1();sh();p1();uZ();Kn();vl();vo();p_();Eb();Hi();Ia();Hi();uo();tSe=10*1024,nSe=1024;aSe=80;Z3n=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;h1=null;Vd=class extends Error{constructor(t){super(t),this.name="IntentScopeTickPersistError"}};Df=2,Ev=5,gZ=3;f9n=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"]);h9n=.6;m9n=[/\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];Qye=null,sSe=null;w9n=[{entry:".haiku/worktrees/",accept:[".haiku/worktrees"]},{entry:".haiku/intents/*/stages/*/proof/",accept:[".haiku/intents/*/stages/*/proof"]},{entry:".haiku/intents/*/proof/",accept:[".haiku/intents/*/proof"]}];Rbt="feedback-assessor";k9n=["adversarial-review","studio-review","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],Bb=["pending","fixing","addressed","answered","non_actionable","closed","rejected"];Dg=3,I9n=3,fv=(()=>{let e=process.env.HAIKU_MAX_CONCURRENT_SUBAGENTS,t=e?Number.parseInt(e,10):NaN;return Number.isFinite(t)&&t>0?t:10})(),x9n=new Set(["user-visual","user-chat","user-question","user-revisit","external-pr","external-mr"]);RSe=[{name:"haiku_intent_get",description:"Read a field from an intent's frontmatter",inputSchema:z9,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:G9,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:lY,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: ${Db.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:_Y,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: ${Db.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:EY,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:TY,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:vY,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:RY,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:AY,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:wY,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:fY,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:pY,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:mY,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:hY,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:gY,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:yY,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:SY,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:kY,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): ${Db.join(", ")} \u2014 plus any stage-specific fields the per-stage \`phases/ELABORATION.md\` documents. @@ -949,23 +949,23 @@ Frontmatter is workflow engine-controlled and cannot be set through this tool. F \u2022 workflow-driven (mutated over the FB lifecycle): ${FL.join(", ")} \u2022 Set at creation, immutable thereafter: ${jL.join(", ")} -Use haiku_feedback_update for status transitions and haiku_feedback_reject for rejections.`,inputSchema:U9,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:H9,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:q9,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:F9,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:j9,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:oY,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:aY,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Repair report \u2014 markdown text including any worktree-migration findings."}},required:["markdown"]}},{name:"haiku_version_info",description:"Return the running MCP binary version and plugin version. MCP version is baked into the binary at build time; plugin version is read from plugin.json at runtime.",inputSchema:BL,outputSchema:{type:"object",properties:{mcp_version:{type:"string"},plugin_version:{type:"string"}},required:["mcp_version","plugin_version"]}}]});var RSe=w((Ahi,Obt)=>{"use strict";Obt.exports=function(t,n){return function(){for(var i=new Array(arguments.length),s=0;s{"use strict";var H9n=RSe(),vv=Object.prototype.toString;function kSe(e){return vv.call(e)==="[object Array]"}function ASe(e){return typeof e>"u"}function q9n(e){return e!==null&&!ASe(e)&&e.constructor!==null&&!ASe(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function B9n(e){return vv.call(e)==="[object ArrayBuffer]"}function z9n(e){return typeof FormData<"u"&&e instanceof FormData}function G9n(e){var t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function V9n(e){return typeof e=="string"}function W9n(e){return typeof e=="number"}function Pbt(e){return e!==null&&typeof e=="object"}function wZ(e){if(vv.call(e)!=="[object Object]")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function K9n(e){return vv.call(e)==="[object Date]"}function Y9n(e){return vv.call(e)==="[object File]"}function Z9n(e){return vv.call(e)==="[object Blob]"}function Nbt(e){return vv.call(e)==="[object Function]"}function J9n(e){return Pbt(e)&&Nbt(e.pipe)}function X9n(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function Q9n(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function $9n(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function ISe(e,t){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),kSe(e))for(var n=0,r=e.length;n{"use strict";var ex=eu();function Mbt(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}Dbt.exports=function(t,n,r){if(!n)return t;var i;if(r)i=r(n);else if(ex.isURLSearchParams(n))i=n.toString();else{var s=[];ex.forEach(n,function(c,u){c===null||typeof c>"u"||(ex.isArray(c)?u=u+"[]":c=[c],ex.forEach(c,function(d){ex.isDate(d)?d=d.toISOString():ex.isObject(d)&&(d=JSON.stringify(d)),s.push(Mbt(u)+"="+Mbt(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 Ubt=w((Ihi,Lbt)=>{"use strict";var nYn=eu();function IZ(){this.handlers=[]}IZ.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};IZ.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};IZ.prototype.forEach=function(t){nYn.forEach(this.handlers,function(r){r!==null&&t(r)})};Lbt.exports=IZ});var jbt=w((xhi,Fbt)=>{"use strict";var rYn=eu();Fbt.exports=function(t,n){rYn.forEach(t,function(i,s){s!==n&&s.toUpperCase()===n.toUpperCase()&&(t[n]=i,delete t[s])})}});var xZ=w((Ohi,Hbt)=>{"use strict";Hbt.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 OZ=w((Phi,qbt)=>{"use strict";var iYn=xZ();qbt.exports=function(t,n,r,i,s){var o=new Error(t);return iYn(o,n,r,i,s)}});var xSe=w((Nhi,Bbt)=>{"use strict";var sYn=OZ();Bbt.exports=function(t,n,r){var i=r.config.validateStatus;!r.status||!i||i(r.status)?t(r):n(sYn("Request failed with status code "+r.status,r.config,null,r.request,r))}});var Gbt=w((Chi,zbt)=>{"use strict";var PZ=eu();zbt.exports=PZ.isStandardBrowserEnv()?(function(){return{write:function(n,r,i,s,o,a){var c=[];c.push(n+"="+encodeURIComponent(r)),PZ.isNumber(i)&&c.push("expires="+new Date(i).toGMTString()),PZ.isString(s)&&c.push("path="+s),PZ.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 Wbt=w((Mhi,Vbt)=>{"use strict";Vbt.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}});var Ybt=w((Dhi,Kbt)=>{"use strict";Kbt.exports=function(t,n){return n?t.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):t}});var OSe=w((Lhi,Zbt)=>{"use strict";var oYn=Wbt(),aYn=Ybt();Zbt.exports=function(t,n){return t&&!oYn(n)?aYn(t,n):n}});var Xbt=w((Uhi,Jbt)=>{"use strict";var PSe=eu(),cYn=["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"];Jbt.exports=function(t){var n={},r,i,s;return t&&PSe.forEach(t.split(` -`),function(a){if(s=a.indexOf(":"),r=PSe.trim(a.substr(0,s)).toLowerCase(),i=PSe.trim(a.substr(s+1)),r){if(n[r]&&cYn.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 eEt=w((Fhi,$bt)=>{"use strict";var Qbt=eu();$bt.exports=Qbt.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=Qbt.isString(o)?i(o):o;return a.protocol===r.protocol&&a.host===r.host}})():(function(){return function(){return!0}})()});var nEt=w((jhi,tEt)=>{"use strict";var NZ=eu(),uYn=xSe(),lYn=Gbt(),dYn=kZ(),fYn=OSe(),pYn=Xbt(),hYn=eEt(),NSe=OZ();tEt.exports=function(t){return new Promise(function(r,i){var s=t.data,o=t.headers,a=t.responseType;NZ.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=fYn(t.baseURL,t.url);c.open(t.method.toUpperCase(),dYn(d,t.params,t.paramsSerializer),!0),c.timeout=t.timeout;function f(){if(c){var h="getAllResponseHeaders"in c?pYn(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};uYn(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(NSe("Request aborted",t,"ECONNABORTED",c)),c=null)},c.onerror=function(){i(NSe("Network Error",t,null,c)),c=null},c.ontimeout=function(){var m="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(m=t.timeoutErrorMessage),i(NSe(m,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",c)),c=null},NZ.isStandardBrowserEnv()){var p=(t.withCredentials||hYn(d))&&t.xsrfCookieName?lYn.read(t.xsrfCookieName):void 0;p&&(o[t.xsrfHeaderName]=p)}"setRequestHeader"in c&&NZ.forEach(o,function(m,g){typeof s>"u"&&g.toLowerCase()==="content-type"?delete o[g]:c.setRequestHeader(g,m)}),NZ.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 iEt=w((Hhi,rEt)=>{var tx=1e3,nx=tx*60,rx=nx*60,Rv=rx*24,mYn=Rv*7,gYn=Rv*365.25;rEt.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return yYn(e);if(n==="number"&&isFinite(e))return t.long?bYn(e):SYn(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function yYn(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*gYn;case"weeks":case"week":case"w":return n*mYn;case"days":case"day":case"d":return n*Rv;case"hours":case"hour":case"hrs":case"hr":case"h":return n*rx;case"minutes":case"minute":case"mins":case"min":case"m":return n*nx;case"seconds":case"second":case"secs":case"sec":case"s":return n*tx;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function SYn(e){var t=Math.abs(e);return t>=Rv?Math.round(e/Rv)+"d":t>=rx?Math.round(e/rx)+"h":t>=nx?Math.round(e/nx)+"m":t>=tx?Math.round(e/tx)+"s":e+"ms"}function bYn(e){var t=Math.abs(e);return t>=Rv?CZ(e,t,Rv,"day"):t>=rx?CZ(e,t,rx,"hour"):t>=nx?CZ(e,t,nx,"minute"):t>=tx?CZ(e,t,tx,"second"):e+" ms"}function CZ(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var CSe=w((qhi,sEt)=>{function EYn(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=iEt(),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=TYn;Ll.save=vYn;Ll.load=RYn;Ll.useColors=_Yn;Ll.storage=AYn();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 _Yn(){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 TYn(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+MZ.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 vYn(e){try{e?Ll.storage.setItem("debug",e):Ll.storage.removeItem("debug")}catch{}}function RYn(){let e;try{e=Ll.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function AYn(){try{return localStorage}catch{}}MZ.exports=CSe()(Ll);var{formatters:wYn}=MZ.exports;wYn.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var cEt=w((Ma,LZ)=>{var kYn=Y("tty"),DZ=Y("util");Ma.init=MYn;Ma.log=PYn;Ma.formatArgs=xYn;Ma.save=NYn;Ma.load=CYn;Ma.useColors=IYn;Ma.destroy=DZ.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=mj();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 IYn(){return"colors"in Ma.inspectOpts?!!Ma.inspectOpts.colors:kYn.isatty(process.stderr.fd)}function xYn(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:U9,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:H9,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:q9,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:F9,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:j9,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:oY,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:aY,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Repair report \u2014 markdown text including any worktree-migration findings."}},required:["markdown"]}},{name:"haiku_version_info",description:"Return the running MCP binary version and plugin version. MCP version is baked into the binary at build time; plugin version is read from plugin.json at runtime.",inputSchema:BL,outputSchema:{type:"object",properties:{mcp_version:{type:"string"},plugin_version:{type:"string"}},required:["mcp_version","plugin_version"]}}]});var wSe=w((whi,Pbt)=>{"use strict";Pbt.exports=function(t,n){return function(){for(var i=new Array(arguments.length),s=0;s{"use strict";var q9n=wSe(),vv=Object.prototype.toString;function xSe(e){return vv.call(e)==="[object Array]"}function kSe(e){return typeof e>"u"}function B9n(e){return e!==null&&!kSe(e)&&e.constructor!==null&&!kSe(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function z9n(e){return vv.call(e)==="[object ArrayBuffer]"}function G9n(e){return typeof FormData<"u"&&e instanceof FormData}function V9n(e){var t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function W9n(e){return typeof e=="string"}function K9n(e){return typeof e=="number"}function Nbt(e){return e!==null&&typeof e=="object"}function wZ(e){if(vv.call(e)!=="[object Object]")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Y9n(e){return vv.call(e)==="[object Date]"}function Z9n(e){return vv.call(e)==="[object File]"}function J9n(e){return vv.call(e)==="[object Blob]"}function Cbt(e){return vv.call(e)==="[object Function]"}function X9n(e){return Nbt(e)&&Cbt(e.pipe)}function Q9n(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function $9n(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function eYn(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function OSe(e,t){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),xSe(e))for(var n=0,r=e.length;n{"use strict";var ex=eu();function Dbt(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}Lbt.exports=function(t,n,r){if(!n)return t;var i;if(r)i=r(n);else if(ex.isURLSearchParams(n))i=n.toString();else{var s=[];ex.forEach(n,function(c,u){c===null||typeof c>"u"||(ex.isArray(c)?u=u+"[]":c=[c],ex.forEach(c,function(d){ex.isDate(d)?d=d.toISOString():ex.isObject(d)&&(d=JSON.stringify(d)),s.push(Dbt(u)+"="+Dbt(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 Fbt=w((xhi,Ubt)=>{"use strict";var rYn=eu();function IZ(){this.handlers=[]}IZ.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};IZ.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};IZ.prototype.forEach=function(t){rYn.forEach(this.handlers,function(r){r!==null&&t(r)})};Ubt.exports=IZ});var Hbt=w((Ohi,jbt)=>{"use strict";var iYn=eu();jbt.exports=function(t,n){iYn.forEach(t,function(i,s){s!==n&&s.toUpperCase()===n.toUpperCase()&&(t[n]=i,delete t[s])})}});var xZ=w((Phi,qbt)=>{"use strict";qbt.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 OZ=w((Nhi,Bbt)=>{"use strict";var sYn=xZ();Bbt.exports=function(t,n,r,i,s){var o=new Error(t);return sYn(o,n,r,i,s)}});var PSe=w((Chi,zbt)=>{"use strict";var oYn=OZ();zbt.exports=function(t,n,r){var i=r.config.validateStatus;!r.status||!i||i(r.status)?t(r):n(oYn("Request failed with status code "+r.status,r.config,null,r.request,r))}});var Vbt=w((Mhi,Gbt)=>{"use strict";var PZ=eu();Gbt.exports=PZ.isStandardBrowserEnv()?(function(){return{write:function(n,r,i,s,o,a){var c=[];c.push(n+"="+encodeURIComponent(r)),PZ.isNumber(i)&&c.push("expires="+new Date(i).toGMTString()),PZ.isString(s)&&c.push("path="+s),PZ.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 Kbt=w((Dhi,Wbt)=>{"use strict";Wbt.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}});var Zbt=w((Lhi,Ybt)=>{"use strict";Ybt.exports=function(t,n){return n?t.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):t}});var NSe=w((Uhi,Jbt)=>{"use strict";var aYn=Kbt(),cYn=Zbt();Jbt.exports=function(t,n){return t&&!aYn(n)?cYn(t,n):n}});var Qbt=w((Fhi,Xbt)=>{"use strict";var CSe=eu(),uYn=["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"];Xbt.exports=function(t){var n={},r,i,s;return t&&CSe.forEach(t.split(` +`),function(a){if(s=a.indexOf(":"),r=CSe.trim(a.substr(0,s)).toLowerCase(),i=CSe.trim(a.substr(s+1)),r){if(n[r]&&uYn.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 tEt=w((jhi,eEt)=>{"use strict";var $bt=eu();eEt.exports=$bt.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=$bt.isString(o)?i(o):o;return a.protocol===r.protocol&&a.host===r.host}})():(function(){return function(){return!0}})()});var rEt=w((Hhi,nEt)=>{"use strict";var NZ=eu(),lYn=PSe(),dYn=Vbt(),fYn=kZ(),pYn=NSe(),hYn=Qbt(),mYn=tEt(),MSe=OZ();nEt.exports=function(t){return new Promise(function(r,i){var s=t.data,o=t.headers,a=t.responseType;NZ.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=pYn(t.baseURL,t.url);c.open(t.method.toUpperCase(),fYn(d,t.params,t.paramsSerializer),!0),c.timeout=t.timeout;function f(){if(c){var h="getAllResponseHeaders"in c?hYn(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};lYn(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(MSe("Request aborted",t,"ECONNABORTED",c)),c=null)},c.onerror=function(){i(MSe("Network Error",t,null,c)),c=null},c.ontimeout=function(){var m="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(m=t.timeoutErrorMessage),i(MSe(m,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",c)),c=null},NZ.isStandardBrowserEnv()){var p=(t.withCredentials||mYn(d))&&t.xsrfCookieName?dYn.read(t.xsrfCookieName):void 0;p&&(o[t.xsrfHeaderName]=p)}"setRequestHeader"in c&&NZ.forEach(o,function(m,g){typeof s>"u"&&g.toLowerCase()==="content-type"?delete o[g]:c.setRequestHeader(g,m)}),NZ.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 sEt=w((qhi,iEt)=>{var tx=1e3,nx=tx*60,rx=nx*60,Rv=rx*24,gYn=Rv*7,yYn=Rv*365.25;iEt.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return SYn(e);if(n==="number"&&isFinite(e))return t.long?EYn(e):bYn(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function SYn(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*yYn;case"weeks":case"week":case"w":return n*gYn;case"days":case"day":case"d":return n*Rv;case"hours":case"hour":case"hrs":case"hr":case"h":return n*rx;case"minutes":case"minute":case"mins":case"min":case"m":return n*nx;case"seconds":case"second":case"secs":case"sec":case"s":return n*tx;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function bYn(e){var t=Math.abs(e);return t>=Rv?Math.round(e/Rv)+"d":t>=rx?Math.round(e/rx)+"h":t>=nx?Math.round(e/nx)+"m":t>=tx?Math.round(e/tx)+"s":e+"ms"}function EYn(e){var t=Math.abs(e);return t>=Rv?CZ(e,t,Rv,"day"):t>=rx?CZ(e,t,rx,"hour"):t>=nx?CZ(e,t,nx,"minute"):t>=tx?CZ(e,t,tx,"second"):e+" ms"}function CZ(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var DSe=w((Bhi,oEt)=>{function _Yn(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=sEt(),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=vYn;Ll.save=RYn;Ll.load=AYn;Ll.useColors=TYn;Ll.storage=wYn();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 TYn(){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 vYn(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+MZ.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 RYn(e){try{e?Ll.storage.setItem("debug",e):Ll.storage.removeItem("debug")}catch{}}function AYn(){let e;try{e=Ll.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function wYn(){try{return localStorage}catch{}}MZ.exports=DSe()(Ll);var{formatters:kYn}=MZ.exports;kYn.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var uEt=w((Ma,LZ)=>{var IYn=Y("tty"),DZ=Y("util");Ma.init=DYn;Ma.log=NYn;Ma.formatArgs=OYn;Ma.save=CYn;Ma.load=MYn;Ma.useColors=xYn;Ma.destroy=DZ.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=mj();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 xYn(){return"colors"in Ma.inspectOpts?!!Ma.inspectOpts.colors:IYn.isatty(process.stderr.fd)}function OYn(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+"+LZ.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=OYn()+t+" "+e[0]}function OYn(){return Ma.inspectOpts.hideDate?"":new Date().toISOString()+" "}function PYn(...e){return process.stderr.write(DZ.format(...e)+` -`)}function NYn(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function CYn(){return process.env.DEBUG}function MYn(e){e.inspectOpts={};let t=Object.keys(Ma.inspectOpts);for(let n=0;nt.trim()).join(" ")};aEt.O=function(e){return this.inspectOpts.colors=this.useColors,DZ.inspect(e,this.inspectOpts)}});var uEt=w((Bhi,MSe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?MSe.exports=oEt():MSe.exports=cEt()});var dEt=w((zhi,lEt)=>{var w1;lEt.exports=function(){if(!w1){try{w1=uEt()("follow-redirects")}catch{}typeof w1!="function"&&(w1=function(){})}w1.apply(null,arguments)}});var KSe=w((Ghi,WSe)=>{var I1=Y("url"),k1=I1.URL,DYn=Y("http"),LYn=Y("https"),jSe=Y("stream").Writable,HSe=Y("assert"),fEt=dEt();(function(){var t=typeof process<"u",n=typeof window<"u"&&typeof document<"u",r=wv(Error.captureStackTrace);!t&&(n||!r)&&console.warn("The follow-redirects package should be excluded from browser builds.")})();var qSe=!1;try{HSe(new k1(""))}catch(e){qSe=e.code==="ERR_INVALID_URL"}var UYn=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],BSe=["abort","aborted","connect","error","socket","timeout"],zSe=Object.create(null);BSe.forEach(function(e){zSe[e]=function(t,n,r){this._redirectable.emit(e,t,n,r)}});var LSe=x1("ERR_INVALID_URL","Invalid URL",TypeError),USe=x1("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),FYn=x1("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",USe),jYn=x1("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),HYn=x1("ERR_STREAM_WRITE_AFTER_END","write after end"),qYn=jSe.prototype.destroy||hEt;function Ku(e,t){jSe.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 USe?i:new USe({cause:i}))}},this._performRequest()}Ku.prototype=Object.create(jSe.prototype);Ku.prototype.abort=function(){VSe(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};Ku.prototype.destroy=function(e){return VSe(this._currentRequest,e),qYn.call(this,e),this};Ku.prototype.write=function(e,t,n){if(this._ending)throw new HYn;if(!Av(e)&&!GYn(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(wv(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 jYn),this.abort())};Ku.prototype.end=function(e,t,n){if(wv(e)?(n=e,e=t=null):wv(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 BSe)r.on(i,zSe[i]);if(this._currentUrl=/^\//.test(this._options.path)?I1.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(VSe(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new FYn;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=[],DSe(/^content-/i,this._options.headers));var o=DSe(/^host$/i,this._options.headers),a=GSe(this._currentUrl),c=o||a.host,u=/^\w+:/.test(n)?this._currentUrl:I1.format(Object.assign(a,{host:c})),l=BYn(n,u);if(fEt("redirecting to",l.href),this._isRedirect=!0,FSe(l,this._options),(l.protocol!==a.protocol&&l.protocol!=="https:"||l.host!==c&&!zYn(l.host,c))&&DSe(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),wv(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 pEt(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 VYn(u)?u=FSe(u):Av(u)?u=FSe(GSe(u)):(d=l,l=mEt(u),u={protocol:i}),wv(l)&&(d=l,l=null),l=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},u,l),l.nativeProtocols=n,!Av(l.host)&&!Av(l.hostname)&&(l.hostname="::1"),HSe.equal(l.protocol,i,"protocol mismatch"),fEt("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 hEt(){}function GSe(e){var t;if(qSe)t=new k1(e);else if(t=mEt(I1.parse(e)),!Av(t.protocol))throw new LSe({input:e});return t}function BYn(e,t){return qSe?new k1(e,t):GSe(I1.resolve(t,e))}function mEt(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new LSe({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new LSe({input:e.href||e});return e}function FSe(e,t){var n=t||{};for(var r of UYn)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 DSe(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 x1(e,t,n){function r(i){wv(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 VSe(e,t){for(var n of BSe)e.removeListener(n,zSe[n]);e.on("error",hEt),e.destroy(t)}function zYn(e,t){HSe(Av(e)&&Av(t));var n=e.length-t.length-1;return n>0&&e[n]==="."&&e.endsWith(t)}function Av(e){return typeof e=="string"||e instanceof String}function wv(e){return typeof e=="function"}function GYn(e){return typeof e=="object"&&"length"in e}function VYn(e){return k1&&e instanceof k1}WSe.exports=pEt({http:DYn,https:LYn});WSe.exports.wrap=pEt});var YSe=w((Vhi,WYn)=>{WYn.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 _Et=w((Whi,EEt)=>{"use strict";var O1=eu(),gEt=xSe(),KYn=OSe(),YYn=kZ(),ZYn=Y("http"),JYn=Y("https"),XYn=KSe().http,QYn=KSe().https,yEt=Y("url"),$Yn=Y("zlib"),eZn=YSe(),UZ=OZ(),ZSe=xZ(),SEt=/https:?/;function bEt(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,bEt(s,t,s.href)}}EEt.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/"+eZn.version,a&&!O1.isStream(a)){if(!Buffer.isBuffer(a))if(O1.isArrayBuffer(a))a=Buffer.from(new Uint8Array(a));else if(O1.isString(a))a=Buffer.from(a,"utf-8");else return o(UZ("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=KYn(t.baseURL,t.url),p=yEt.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=SEt.test(h),S=b?t.httpsAgent:t.httpAgent,E={path:YYn(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=yEt.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:""),bEt(E,_,h+"//"+p.hostname+(p.port?":"+p.port:"")+E.path));var C,L=b&&(_?SEt.test(_.protocol):!0);t.transport?C=t.transport:t.maxRedirects===0?C=L?JYn:ZYn:(t.maxRedirects&&(E.maxRedirects=t.maxRedirects),C=L?QYn:XYn),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($Yn.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,gEt(s,o,F);else{var V=[],U=0;Q.on("data",function(j){V.push(j),U+=j.length,t.maxContentLength>-1&&U>t.maxContentLength&&(Q.destroy(),o(UZ("maxContentLength size of "+t.maxContentLength+" exceeded",t,null,B)))}),Q.on("error",function(j){G.aborted||o(ZSe(j,t,null,B))}),Q.on("end",function(){var j=Buffer.concat(V);t.responseType!=="arraybuffer"&&(j=j.toString(t.responseEncoding),(!t.responseEncoding||t.responseEncoding==="utf8")&&(j=O1.stripBOM(j))),F.data=j,gEt(s,o,F)})}}});if(G.on("error",function(q){G.aborted&&q.code!=="ERR_FR_TOO_MANY_REDIRECTS"||o(ZSe(q,t,null,G))}),t.timeout){var W=parseInt(t.timeout,10);if(isNaN(W)){o(UZ("error trying to parse `config.timeout` to int",t,"ERR_PARSE_TIMEOUT",G));return}G.setTimeout(W,function(){G.abort(),o(UZ("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))}),O1.isStream(a)?a.on("error",function(q){o(ZSe(q,t,null,G))}).pipe(G):G.end(a)})}});var jZ=w((Khi,REt)=>{"use strict";var Da=eu(),TEt=jbt(),tZn=xZ(),nZn={"Content-Type":"application/x-www-form-urlencoded"};function vEt(e,t){!Da.isUndefined(e)&&Da.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function rZn(){var e;return typeof XMLHttpRequest<"u"?e=nEt():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=_Et()),e}function iZn(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 FZ={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:rZn(),transformRequest:[function(t,n){return TEt(n,"Accept"),TEt(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)?(vEt(n,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):Da.isObject(t)||n&&n["Content-Type"]==="application/json"?(vEt(n,"application/json"),iZn(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"?tZn(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}};FZ.headers={common:{Accept:"application/json, text/plain, */*"}};Da.forEach(["delete","get","head"],function(t){FZ.headers[t]={}});Da.forEach(["post","put","patch"],function(t){FZ.headers[t]=Da.merge(nZn)});REt.exports=FZ});var wEt=w((Yhi,AEt)=>{"use strict";var sZn=eu(),oZn=jZ();AEt.exports=function(t,n,r){var i=this||oZn;return sZn.forEach(r,function(o){t=o.call(i,t,n)}),t}});var JSe=w((Zhi,kEt)=>{"use strict";kEt.exports=function(t){return!!(t&&t.__CANCEL__)}});var OEt=w((Jhi,xEt)=>{"use strict";var IEt=eu(),XSe=wEt(),aZn=JSe(),cZn=jZ();function QSe(e){e.cancelToken&&e.cancelToken.throwIfRequested()}xEt.exports=function(t){QSe(t),t.headers=t.headers||{},t.data=XSe.call(t,t.data,t.headers,t.transformRequest),t.headers=IEt.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),IEt.forEach(["delete","get","head","post","put","patch","common"],function(i){delete t.headers[i]});var n=t.adapter||cZn.adapter;return n(t).then(function(i){return QSe(t),i.data=XSe.call(t,i.data,i.headers,t.transformResponse),i},function(i){return aZn(i)||(QSe(t),i&&i.response&&(i.response.data=XSe.call(t,i.response.data,i.response.headers,t.transformResponse))),Promise.reject(i)})}});var $Se=w((Xhi,PEt)=>{"use strict";var Ec=eu();PEt.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 LEt=w((Qhi,DEt)=>{"use strict";var CEt=YSe(),ebe={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){ebe[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});var NEt={},uZn=CEt.version.split(".");function MEt(e,t){for(var n=t?t.split("."):uZn,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)}}DEt.exports={isOlderVersion:MEt,assertOptions:lZn,validators:ebe}});var BEt=w(($hi,qEt)=>{"use strict";var jEt=eu(),dZn=kZ(),UEt=Ubt(),FEt=OEt(),HZ=$Se(),HEt=LEt(),ix=HEt.validators;function P1(e){this.defaults=e,this.interceptors={request:new UEt,response:new UEt}}P1.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=HZ(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&&HEt.assertOptions(n,{silentJSONParsing:ix.transitional(ix.boolean,"1.0.0"),forcedJSONParsing:ix.transitional(ix.boolean,"1.0.0"),clarifyTimeoutError:ix.transitional(ix.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=[FEt,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=FEt(c)}catch(d){return Promise.reject(d)}for(;s.length;)o=o.then(s.shift(),s.shift());return o};P1.prototype.getUri=function(t){return t=HZ(this.defaults,t),dZn(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};jEt.forEach(["delete","get","head","options"],function(t){P1.prototype[t]=function(n,r){return this.request(HZ(r||{},{method:t,url:n,data:(r||{}).data}))}});jEt.forEach(["post","put","patch"],function(t){P1.prototype[t]=function(n,r,i){return this.request(HZ(i||{},{method:t,url:n,data:r}))}});qEt.exports=P1});var nbe=w((emi,zEt)=>{"use strict";function tbe(e){this.message=e}tbe.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};tbe.prototype.__CANCEL__=!0;zEt.exports=tbe});var VEt=w((tmi,GEt)=>{"use strict";var fZn=nbe();function qZ(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 fZn(i),t(n.reason))})}qZ.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};qZ.source=function(){var t,n=new qZ(function(i){t=i});return{token:n,cancel:t}};GEt.exports=qZ});var KEt=w((nmi,WEt)=>{"use strict";WEt.exports=function(t){return function(r){return t.apply(null,r)}}});var ZEt=w((rmi,YEt)=>{"use strict";YEt.exports=function(t){return typeof t=="object"&&t.isAxiosError===!0}});var QEt=w((imi,rbe)=>{"use strict";var JEt=eu(),pZn=RSe(),BZ=BEt(),hZn=$Se(),mZn=jZ();function XEt(e){var t=new BZ(e),n=pZn(BZ.prototype.request,t);return JEt.extend(n,BZ.prototype,t),JEt.extend(n,t),n}var rp=XEt(mZn);rp.Axios=BZ;rp.create=function(t){return XEt(hZn(rp.defaults,t))};rp.Cancel=nbe();rp.CancelToken=VEt();rp.isCancel=JSe();rp.all=function(t){return Promise.all(t)};rp.spread=KEt();rp.isAxiosError=ZEt();rbe.exports=rp;rbe.exports.default=rp});var e_t=w((smi,$Et)=>{$Et.exports=QEt()});var n_t=w((omi,t_t)=>{var sx=1e3,ox=sx*60,ax=ox*60,kv=ax*24,gZn=kv*7,yZn=kv*365.25;t_t.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return SZn(e);if(n==="number"&&isFinite(e))return t.long?EZn(e):bZn(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function SZn(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*yZn;case"weeks":case"week":case"w":return n*gZn;case"days":case"day":case"d":return n*kv;case"hours":case"hour":case"hrs":case"hr":case"h":return n*ax;case"minutes":case"minute":case"mins":case"min":case"m":return n*ox;case"seconds":case"second":case"secs":case"sec":case"s":return n*sx;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function bZn(e){var t=Math.abs(e);return t>=kv?Math.round(e/kv)+"d":t>=ax?Math.round(e/ax)+"h":t>=ox?Math.round(e/ox)+"m":t>=sx?Math.round(e/sx)+"s":e+"ms"}function EZn(e){var t=Math.abs(e);return t>=kv?zZ(e,t,kv,"day"):t>=ax?zZ(e,t,ax,"hour"):t>=ox?zZ(e,t,ox,"minute"):t>=sx?zZ(e,t,sx,"second"):e+" ms"}function zZ(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var ibe=w((ami,r_t)=>{function _Zn(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=n_t(),n.destroy=u,Object.keys(e).forEach(l=>{n[l]=e[l]}),n.names=[],n.skips=[],n.formatters={};function t(l){let d=0;for(let f=0;f{if(T==="%%")return"%";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=vZn;Ul.save=RZn;Ul.load=AZn;Ul.useColors=TZn;Ul.storage=wZn();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 TZn(){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 vZn(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+GZ.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 RZn(e){try{e?Ul.storage.setItem("debug",e):Ul.storage.removeItem("debug")}catch{}}function AZn(){let e;try{e=Ul.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function wZn(){try{return localStorage}catch{}}GZ.exports=ibe()(Ul);var{formatters:kZn}=GZ.exports;kZn.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var o_t=w((La,WZ)=>{var IZn=Y("tty"),VZ=Y("util");La.init=DZn;La.log=NZn;La.formatArgs=OZn;La.save=CZn;La.load=MZn;La.useColors=xZn;La.destroy=VZ.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=mj();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 xZn(){return"colors"in La.inspectOpts?!!La.inspectOpts.colors:IZn.isatty(process.stderr.fd)}function OZn(e){let{namespace:t,useColors:n}=this;if(n){let r=this.color,i="\x1B[3"+(r<8?r:"8;5;"+r),s=` ${i};1m${t} \x1B[0m`;e[0]=s+e[0].split(` +`+s),e.push(i+"m+"+LZ.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=PYn()+t+" "+e[0]}function PYn(){return Ma.inspectOpts.hideDate?"":new Date().toISOString()+" "}function NYn(...e){return process.stderr.write(DZ.format(...e)+` +`)}function CYn(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function MYn(){return process.env.DEBUG}function DYn(e){e.inspectOpts={};let t=Object.keys(Ma.inspectOpts);for(let n=0;nt.trim()).join(" ")};cEt.O=function(e){return this.inspectOpts.colors=this.useColors,DZ.inspect(e,this.inspectOpts)}});var lEt=w((zhi,LSe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?LSe.exports=aEt():LSe.exports=uEt()});var fEt=w((Ghi,dEt)=>{var w1;dEt.exports=function(){if(!w1){try{w1=lEt()("follow-redirects")}catch{}typeof w1!="function"&&(w1=function(){})}w1.apply(null,arguments)}});var ZSe=w((Vhi,YSe)=>{var I1=Y("url"),k1=I1.URL,LYn=Y("http"),UYn=Y("https"),qSe=Y("stream").Writable,BSe=Y("assert"),pEt=fEt();(function(){var t=typeof process<"u",n=typeof window<"u"&&typeof document<"u",r=wv(Error.captureStackTrace);!t&&(n||!r)&&console.warn("The follow-redirects package should be excluded from browser builds.")})();var zSe=!1;try{BSe(new k1(""))}catch(e){zSe=e.code==="ERR_INVALID_URL"}var FYn=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],GSe=["abort","aborted","connect","error","socket","timeout"],VSe=Object.create(null);GSe.forEach(function(e){VSe[e]=function(t,n,r){this._redirectable.emit(e,t,n,r)}});var FSe=x1("ERR_INVALID_URL","Invalid URL",TypeError),jSe=x1("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),jYn=x1("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",jSe),HYn=x1("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),qYn=x1("ERR_STREAM_WRITE_AFTER_END","write after end"),BYn=qSe.prototype.destroy||mEt;function Ku(e,t){qSe.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 jSe?i:new jSe({cause:i}))}},this._performRequest()}Ku.prototype=Object.create(qSe.prototype);Ku.prototype.abort=function(){KSe(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};Ku.prototype.destroy=function(e){return KSe(this._currentRequest,e),BYn.call(this,e),this};Ku.prototype.write=function(e,t,n){if(this._ending)throw new qYn;if(!Av(e)&&!VYn(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(wv(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 HYn),this.abort())};Ku.prototype.end=function(e,t,n){if(wv(e)?(n=e,e=t=null):wv(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 GSe)r.on(i,VSe[i]);if(this._currentUrl=/^\//.test(this._options.path)?I1.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(KSe(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new jYn;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=[],USe(/^content-/i,this._options.headers));var o=USe(/^host$/i,this._options.headers),a=WSe(this._currentUrl),c=o||a.host,u=/^\w+:/.test(n)?this._currentUrl:I1.format(Object.assign(a,{host:c})),l=zYn(n,u);if(pEt("redirecting to",l.href),this._isRedirect=!0,HSe(l,this._options),(l.protocol!==a.protocol&&l.protocol!=="https:"||l.host!==c&&!GYn(l.host,c))&&USe(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),wv(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 hEt(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 WYn(u)?u=HSe(u):Av(u)?u=HSe(WSe(u)):(d=l,l=gEt(u),u={protocol:i}),wv(l)&&(d=l,l=null),l=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},u,l),l.nativeProtocols=n,!Av(l.host)&&!Av(l.hostname)&&(l.hostname="::1"),BSe.equal(l.protocol,i,"protocol mismatch"),pEt("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 mEt(){}function WSe(e){var t;if(zSe)t=new k1(e);else if(t=gEt(I1.parse(e)),!Av(t.protocol))throw new FSe({input:e});return t}function zYn(e,t){return zSe?new k1(e,t):WSe(I1.resolve(t,e))}function gEt(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new FSe({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new FSe({input:e.href||e});return e}function HSe(e,t){var n=t||{};for(var r of FYn)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 USe(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 x1(e,t,n){function r(i){wv(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 KSe(e,t){for(var n of GSe)e.removeListener(n,VSe[n]);e.on("error",mEt),e.destroy(t)}function GYn(e,t){BSe(Av(e)&&Av(t));var n=e.length-t.length-1;return n>0&&e[n]==="."&&e.endsWith(t)}function Av(e){return typeof e=="string"||e instanceof String}function wv(e){return typeof e=="function"}function VYn(e){return typeof e=="object"&&"length"in e}function WYn(e){return k1&&e instanceof k1}YSe.exports=hEt({http:LYn,https:UYn});YSe.exports.wrap=hEt});var JSe=w((Whi,KYn)=>{KYn.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 TEt=w((Khi,_Et)=>{"use strict";var O1=eu(),yEt=PSe(),YYn=NSe(),ZYn=kZ(),JYn=Y("http"),XYn=Y("https"),QYn=ZSe().http,$Yn=ZSe().https,SEt=Y("url"),eZn=Y("zlib"),tZn=JSe(),UZ=OZ(),XSe=xZ(),bEt=/https:?/;function EEt(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,EEt(s,t,s.href)}}_Et.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/"+tZn.version,a&&!O1.isStream(a)){if(!Buffer.isBuffer(a))if(O1.isArrayBuffer(a))a=Buffer.from(new Uint8Array(a));else if(O1.isString(a))a=Buffer.from(a,"utf-8");else return o(UZ("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=YYn(t.baseURL,t.url),p=SEt.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=bEt.test(h),S=b?t.httpsAgent:t.httpAgent,E={path:ZYn(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=SEt.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:""),EEt(E,_,h+"//"+p.hostname+(p.port?":"+p.port:"")+E.path));var C,L=b&&(_?bEt.test(_.protocol):!0);t.transport?C=t.transport:t.maxRedirects===0?C=L?XYn:JYn:(t.maxRedirects&&(E.maxRedirects=t.maxRedirects),C=L?$Yn:QYn),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(eZn.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,yEt(s,o,F);else{var V=[],U=0;Q.on("data",function(j){V.push(j),U+=j.length,t.maxContentLength>-1&&U>t.maxContentLength&&(Q.destroy(),o(UZ("maxContentLength size of "+t.maxContentLength+" exceeded",t,null,B)))}),Q.on("error",function(j){G.aborted||o(XSe(j,t,null,B))}),Q.on("end",function(){var j=Buffer.concat(V);t.responseType!=="arraybuffer"&&(j=j.toString(t.responseEncoding),(!t.responseEncoding||t.responseEncoding==="utf8")&&(j=O1.stripBOM(j))),F.data=j,yEt(s,o,F)})}}});if(G.on("error",function(q){G.aborted&&q.code!=="ERR_FR_TOO_MANY_REDIRECTS"||o(XSe(q,t,null,G))}),t.timeout){var W=parseInt(t.timeout,10);if(isNaN(W)){o(UZ("error trying to parse `config.timeout` to int",t,"ERR_PARSE_TIMEOUT",G));return}G.setTimeout(W,function(){G.abort(),o(UZ("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))}),O1.isStream(a)?a.on("error",function(q){o(XSe(q,t,null,G))}).pipe(G):G.end(a)})}});var jZ=w((Yhi,AEt)=>{"use strict";var Da=eu(),vEt=Hbt(),nZn=xZ(),rZn={"Content-Type":"application/x-www-form-urlencoded"};function REt(e,t){!Da.isUndefined(e)&&Da.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function iZn(){var e;return typeof XMLHttpRequest<"u"?e=rEt():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=TEt()),e}function sZn(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 FZ={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:iZn(),transformRequest:[function(t,n){return vEt(n,"Accept"),vEt(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)?(REt(n,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):Da.isObject(t)||n&&n["Content-Type"]==="application/json"?(REt(n,"application/json"),sZn(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"?nZn(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}};FZ.headers={common:{Accept:"application/json, text/plain, */*"}};Da.forEach(["delete","get","head"],function(t){FZ.headers[t]={}});Da.forEach(["post","put","patch"],function(t){FZ.headers[t]=Da.merge(rZn)});AEt.exports=FZ});var kEt=w((Zhi,wEt)=>{"use strict";var oZn=eu(),aZn=jZ();wEt.exports=function(t,n,r){var i=this||aZn;return oZn.forEach(r,function(o){t=o.call(i,t,n)}),t}});var QSe=w((Jhi,IEt)=>{"use strict";IEt.exports=function(t){return!!(t&&t.__CANCEL__)}});var PEt=w((Xhi,OEt)=>{"use strict";var xEt=eu(),$Se=kEt(),cZn=QSe(),uZn=jZ();function ebe(e){e.cancelToken&&e.cancelToken.throwIfRequested()}OEt.exports=function(t){ebe(t),t.headers=t.headers||{},t.data=$Se.call(t,t.data,t.headers,t.transformRequest),t.headers=xEt.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),xEt.forEach(["delete","get","head","post","put","patch","common"],function(i){delete t.headers[i]});var n=t.adapter||uZn.adapter;return n(t).then(function(i){return ebe(t),i.data=$Se.call(t,i.data,i.headers,t.transformResponse),i},function(i){return cZn(i)||(ebe(t),i&&i.response&&(i.response.data=$Se.call(t,i.response.data,i.response.headers,t.transformResponse))),Promise.reject(i)})}});var tbe=w((Qhi,NEt)=>{"use strict";var Ec=eu();NEt.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 UEt=w(($hi,LEt)=>{"use strict";var MEt=JSe(),nbe={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){nbe[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});var CEt={},lZn=MEt.version.split(".");function DEt(e,t){for(var n=t?t.split("."):lZn,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)}}LEt.exports={isOlderVersion:DEt,assertOptions:dZn,validators:nbe}});var zEt=w((emi,BEt)=>{"use strict";var HEt=eu(),fZn=kZ(),FEt=Fbt(),jEt=PEt(),HZ=tbe(),qEt=UEt(),ix=qEt.validators;function P1(e){this.defaults=e,this.interceptors={request:new FEt,response:new FEt}}P1.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=HZ(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&&qEt.assertOptions(n,{silentJSONParsing:ix.transitional(ix.boolean,"1.0.0"),forcedJSONParsing:ix.transitional(ix.boolean,"1.0.0"),clarifyTimeoutError:ix.transitional(ix.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=[jEt,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=jEt(c)}catch(d){return Promise.reject(d)}for(;s.length;)o=o.then(s.shift(),s.shift());return o};P1.prototype.getUri=function(t){return t=HZ(this.defaults,t),fZn(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};HEt.forEach(["delete","get","head","options"],function(t){P1.prototype[t]=function(n,r){return this.request(HZ(r||{},{method:t,url:n,data:(r||{}).data}))}});HEt.forEach(["post","put","patch"],function(t){P1.prototype[t]=function(n,r,i){return this.request(HZ(i||{},{method:t,url:n,data:r}))}});BEt.exports=P1});var ibe=w((tmi,GEt)=>{"use strict";function rbe(e){this.message=e}rbe.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};rbe.prototype.__CANCEL__=!0;GEt.exports=rbe});var WEt=w((nmi,VEt)=>{"use strict";var pZn=ibe();function qZ(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 pZn(i),t(n.reason))})}qZ.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};qZ.source=function(){var t,n=new qZ(function(i){t=i});return{token:n,cancel:t}};VEt.exports=qZ});var YEt=w((rmi,KEt)=>{"use strict";KEt.exports=function(t){return function(r){return t.apply(null,r)}}});var JEt=w((imi,ZEt)=>{"use strict";ZEt.exports=function(t){return typeof t=="object"&&t.isAxiosError===!0}});var $Et=w((smi,sbe)=>{"use strict";var XEt=eu(),hZn=wSe(),BZ=zEt(),mZn=tbe(),gZn=jZ();function QEt(e){var t=new BZ(e),n=hZn(BZ.prototype.request,t);return XEt.extend(n,BZ.prototype,t),XEt.extend(n,t),n}var rp=QEt(gZn);rp.Axios=BZ;rp.create=function(t){return QEt(mZn(rp.defaults,t))};rp.Cancel=ibe();rp.CancelToken=WEt();rp.isCancel=QSe();rp.all=function(t){return Promise.all(t)};rp.spread=YEt();rp.isAxiosError=JEt();sbe.exports=rp;sbe.exports.default=rp});var t_t=w((omi,e_t)=>{e_t.exports=$Et()});var r_t=w((ami,n_t)=>{var sx=1e3,ox=sx*60,ax=ox*60,kv=ax*24,yZn=kv*7,SZn=kv*365.25;n_t.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return bZn(e);if(n==="number"&&isFinite(e))return t.long?_Zn(e):EZn(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function bZn(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*SZn;case"weeks":case"week":case"w":return n*yZn;case"days":case"day":case"d":return n*kv;case"hours":case"hour":case"hrs":case"hr":case"h":return n*ax;case"minutes":case"minute":case"mins":case"min":case"m":return n*ox;case"seconds":case"second":case"secs":case"sec":case"s":return n*sx;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function EZn(e){var t=Math.abs(e);return t>=kv?Math.round(e/kv)+"d":t>=ax?Math.round(e/ax)+"h":t>=ox?Math.round(e/ox)+"m":t>=sx?Math.round(e/sx)+"s":e+"ms"}function _Zn(e){var t=Math.abs(e);return t>=kv?zZ(e,t,kv,"day"):t>=ax?zZ(e,t,ax,"hour"):t>=ox?zZ(e,t,ox,"minute"):t>=sx?zZ(e,t,sx,"second"):e+" ms"}function zZ(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var obe=w((cmi,i_t)=>{function TZn(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=r_t(),n.destroy=u,Object.keys(e).forEach(l=>{n[l]=e[l]}),n.names=[],n.skips=[],n.formatters={};function t(l){let d=0;for(let f=0;f{if(T==="%%")return"%";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=RZn;Ul.save=AZn;Ul.load=wZn;Ul.useColors=vZn;Ul.storage=kZn();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 vZn(){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 RZn(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+GZ.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 AZn(e){try{e?Ul.storage.setItem("debug",e):Ul.storage.removeItem("debug")}catch{}}function wZn(){let e;try{e=Ul.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function kZn(){try{return localStorage}catch{}}GZ.exports=obe()(Ul);var{formatters:IZn}=GZ.exports;IZn.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var a_t=w((La,WZ)=>{var xZn=Y("tty"),VZ=Y("util");La.init=LZn;La.log=CZn;La.formatArgs=PZn;La.save=MZn;La.load=DZn;La.useColors=OZn;La.destroy=VZ.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=mj();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 OZn(){return"colors"in La.inspectOpts?!!La.inspectOpts.colors:xZn.isatty(process.stderr.fd)}function PZn(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+"+WZ.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=PZn()+t+" "+e[0]}function PZn(){return La.inspectOpts.hideDate?"":new Date().toISOString()+" "}function NZn(...e){return process.stderr.write(VZ.format(...e)+` -`)}function CZn(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function MZn(){return process.env.DEBUG}function DZn(e){e.inspectOpts={};let t=Object.keys(La.inspectOpts);for(let n=0;nt.trim()).join(" ")};s_t.O=function(e){return this.inspectOpts.colors=this.useColors,VZ.inspect(e,this.inspectOpts)}});var obe=w((cmi,sbe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?sbe.exports=i_t():sbe.exports=o_t()});var c_t=w((umi,a_t)=>{var{Transform:LZn}=Y("stream"),abe=class extends LZn{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)))}};a_t.exports=abe});var d_t=w((dmi,l_t)=>{var{EventEmitter:UZn}=Y("events"),Jh=obe()("localtunnel:client"),cbe=Y("fs"),u_t=Y("net"),FZn=Y("tls"),jZn=c_t();l_t.exports=class extends UZn{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;Jh("establishing tunnel %s://%s:%s <> %s:%s",o,i,s,n,r);let c=u_t.connect({host:n,port:r});c.setKeepAlive(!0),c.on("error",l=>{Jh("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){Jh("remote destroyed"),this.emit("dead");return}Jh("connecting locally to %s://%s:%d",o,i,s),c.pause(),a&&Jh("allowing invalid certificates");let l=()=>a?{rejectUnauthorized:!1}:{cert:cbe.readFileSync(t.local_cert),key:cbe.readFileSync(t.local_key),ca:t.local_ca?[cbe.readFileSync(t.local_ca)]:void 0},d=t.local_https?FZn.connect({host:i,port:s,...l()}):u_t.connect({host:i,port:s}),f=()=>{Jh("remote close"),this.emit("dead"),d.end()};c.once("close",f),d.once("error",p=>{if(Jh("local error %s",p.message),d.end(),c.removeListener("close",f),p.code!=="ECONNREFUSED")return c.end();setTimeout(u,1e3)}),d.once("connect",()=>{Jh("connected locally"),c.resume();let p=c;t.local_host&&(Jh("transform Host header to %s",t.local_host),p=c.pipe(new jZn({host:t.local_host}))),p.pipe(d).pipe(c),d.once("close",h=>{Jh("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 h_t=w((pmi,p_t)=>{var{parse:HZn}=Y("url"),{EventEmitter:f_t}=Y("events"),qZn=e_t(),N1=obe()("localtunnel:client"),BZn=d_t();p_t.exports=class extends f_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:HZn(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(){qZn.get(a,i).then(u=>{let l=u.data;if(N1("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=>(N1(`tunnel server offline: ${u.message}, retry 1s`),setTimeout(c,1e3)))})()}_establish(t){this.setMaxListeners(t.max_conn+(f_t.defaultMaxListeners||10)),this.tunnelCluster=new BZn(t),this.tunnelCluster.once("open",()=>{this.emit("url",t.url)}),this.tunnelCluster.on("error",r=>{N1("got socket error",r.message),this.emit("error",r)});let n=0;this.tunnelCluster.on("open",r=>{n++,N1("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--,N1("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 g_t=w((hmi,m_t)=>{var zZn=h_t();m_t.exports=function(t,n,r){let i=typeof t=="object"?t:{...n,port:t},s=typeof t=="object"?n:r,o=new zZn(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 w_t={};Ar(w_t,{__setActiveTunnelForTesting:()=>JZn,buildReviewUrl:()=>Ov,clearE2EKey:()=>mbe,closeTunnel:()=>pbe,e2eEncrypt:()=>hbe,getTunnelUrl:()=>A_t,isE2EActive:()=>D1,isRemoteReviewEnabled:()=>Bi,isTunnelOpen:()=>YZn,openTunnel:()=>Hg,signJWT:()=>v_t,verifyTunnelJWT:()=>Xh});import{createCipheriv as GZn,createHmac as E_t,randomBytes as dbe,timingSafeEqual as VZn}from"node:crypto";async function KZn(){if(!(!Ts||xv||Iv))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,lbe()}}function T_t(){KZ(),C1=setInterval(KZn,WZn),C1.unref()}function KZ(){C1&&(clearInterval(C1),C1=null)}function y_t(e){return(typeof e=="string"?Buffer.from(e).toString("base64"):e.toString("base64")).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function v_t(e){let t=y_t(JSON.stringify({alg:"HS256",typ:"JWT"})),n=y_t(JSON.stringify(e)),r=E_t("sha256",__t).update(`${t}.${n}`).digest("base64url");return`${t}.${n}.${r}`}function Xh(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=E_t("sha256",__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(!VZn(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=A_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 lbe(){if(Iv||xv||!ube)return;Iv=!0;let e=5;for(let t=0;tsetTimeout(r,n));try{let r=await(0,fbe.default)({port:ube});Ts=r,R_t(r),console.error(`[haiku] Tunnel reconnected: ${r.url}`),T_t(),Iv=!1;return}catch(r){console.error("[haiku] Tunnel reconnect failed:",r instanceof Error?r.message:r)}}Iv=!1,console.error(`[haiku] Tunnel reconnect exhausted \u2014 giving up after ${e} attempts`)}function R_t(e){e.on("close",()=>{Ts===e&&(Ts=null,KZ(),console.error("[haiku] Tunnel closed unexpectedly"),xv||lbe())}),e.on("error",t=>{console.error("[haiku] Tunnel error:",t.message),Ts===e&&(Ts=null,KZ(),xv||lbe())})}async function Hg(e){if(Ts)return Ts.url;if(Iv){let n=Date.now()+S_t;if(await new Promise((r,i)=>{let s=setInterval(()=>{Iv?Date.now()>n&&(clearInterval(s),i(new Error(`openTunnel: timed out after ${S_t}ms waiting for an in-flight reconnect to settle`))):(clearInterval(s),r())},100)}),Ts)return Ts.url}ube=e,xv=!1;let t=3;for(let n=0;nsetTimeout(()=>o(new Error(`localtunnel did not respond within ${b_t}ms`)),b_t)),i=await Promise.race([(0,fbe.default)({port:e}),r]);return Ts=i,R_t(i),console.error(`[haiku] Tunnel opened: ${i.url}`),T_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 pbe(){xv=!0,KZ(),Ts&&(Ts.close(),Ts=null,console.error("[haiku] Tunnel closed"))}function A_t(){return Ts?.url??null}function YZn(){return Ts!==null}function Bi(){return Go.remoteReview}function Ov(e,t,n){let r=dbe(32);M1.set(e,r);let i=Math.floor(Date.now()/1e3),s=v_t({tun:t,sid:e,typ:n,key:r.toString("base64url"),iat:i,exp:i+3600});return`${ZZn}/review/#${s}`}function hbe(e,t){let n=M1.get(e);if(!n)return null;let r=dbe(12),i=GZn("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 D1(e){return e?M1.has(e):M1.size>0}function mbe(e){M1.delete(e)}function JZn(e){e?Ts={url:e,close:()=>{Ts=null},on:()=>{}}:Ts=null}var fbe,__t,M1,Ts,ube,Iv,xv,C1,WZn,S_t,b_t,ZZn,Qh=v(()=>{"use strict";fbe=Re(g_t(),1);Ci();__t=dbe(32),M1=new Map,Ts=null,ube=null,Iv=!1,xv=!1,C1=null,WZn=3e4;S_t=3e4,b_t=15e3;ZZn=bf.siteUrl});import{randomBytes as XZn}from"node:crypto";function $Zn(){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 e6n(){let e=process.env.HAIKU_CSRF_NONCE_REQUIRED;return e==="true"||e==="1"}function t6n(){let e=process.env.HAIKU_CSRF_NONCE_TTL_MS;if(!e)return k_t;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?k_t:t}function P_t(e){let t=XZn(32).toString("base64url");return gbe.set(e,{nonce:t,expiresAt:Date.now()+t6n()}),t}function N_t(e){let t=gbe.get(e);return t?t.expiresAt{if(!Bi())return n.send({nonce:"local-mode-no-csrf-required"});let r=L1(t);if(!r)return n.status(401).send({error:"unauthorized",reason:"missing_token"});let i=Xh(r,null);if(!i.ok)return n.status(401).send({error:"unauthorized",reason:i.reason});let s=P_t(i.payload.sid);return n.send({nonce:s})})}var QZn,I_t,x_t,k_t,gbe,ybe=v(()=>{"use strict";Qh();qg();QZn=new Set(["POST","PUT","PATCH","DELETE"]),I_t="query_param_token_disallowed_on_mutating_route",x_t="X-Haiku-CSRF";k_t=3600*1e3;gbe=new Map});function L1(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=L1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Xh(r,n);return i.ok?!0:(t.status(401).send({error:"unauthorized",reason:i.reason}),!1)}function cx(e,t,n){if(!Bi())return!0;let r=L1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Xh(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 ux,qg=v(()=>{"use strict";$c();Qh();ybe();ux=cx});import{existsSync as D_t}from"node:fs";import{join as L_t}from"node:path";function n6n(e,t,n=400){let r={error:"validation_failed",issues:t};return e.status(n).send(r)}function Gb(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 n6n(e,i),{ok:!1}}return{ok:!0,data:r.data}}function yn(e){let t;try{t=decodeURIComponent(e)}catch{return!1}return t.includes("\0")?!1:!/[/\\]|\.\./.test(t)}function Ua(e){try{let t=ce(e);return D_t(L_t(t,"intent.md"))}catch{return!1}}function $h(e,t){try{let n=ce(e);return D_t(L_t(n,"stages",t))}catch{return!1}}var Pv=v(()=>{"use strict";ze()});import{existsSync as YZ,readdirSync as Sbe,readFileSync as r6n}from"node:fs";import{join as F1}from"node:path";function F_t(e){return typeof e!="string"||e.length<=U_t?e:`${e.slice(0,U_t)}\u2026`}function i6n(e){let t={...e};t.agent_rationale=F_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:F_t(r.rationale_excerpt)})),t}function s6n(e){return/^DA-\d+$/.test(e)}function U1(e){try{let t=r6n(e,"utf-8");return JSON.parse(t)}catch{return null}}function o6n(e){let t=ce(e),n=F1(t,"stages");if(!YZ(n))return[];let r=[],i;try{i=Sbe(n,{withFileTypes:!0}).filter(s=>s.isDirectory()).map(s=>s.name)}catch{return[]}for(let s of i){let o=F1(n,s,"drift-assessments");if(!YZ(o))continue;let a;try{a=Sbe(o).filter(c=>/^DA-\d+\.json$/.test(c))}catch{continue}for(let c of a){let u=c.replace(/\.json$/,""),l=F1(o,c),d=U1(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 j_t(e){e.get("/api/intents/:intent/assessments",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r}=t.params;if(!yn(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=o6n(r).filter(m=>{if(o!==null&&new Date(m.createdAt).getTime()<=o)return!1;if(a!==null){let g=U1(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=U1(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=U1(m.absPath);g!==null&&h.push(i6n(g))}n.send({ok:!0,assessments:h,total:d,has_more:f})}),e.get("/api/intents/:intent/assessments/:assessmentId",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,assessmentId:i}=t.params;if(!yn(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(!s6n(i)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let s=ce(r),o=F1(s,"stages");if(!YZ(o)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let a;try{a=Sbe(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=F1(o,c,"drift-assessments",`${i}.json`);if(YZ(u)){let l=U1(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 U_t,H_t=v(()=>{"use strict";ze();qg();Pv();U_t=256});import{createReadStream as a6n,existsSync as c6n}from"node:fs";function ZZ(e,t){e.status(400).send({error:t,code:t})}function bbe(e,t){e.status(404).send({error:t,code:t})}function B_t(e,t){if(!c6n(t)){bbe(e,"sidecar_not_found");return}let n=Fyt(t),r=n?u6n[n]:"application/octet-stream";e.header("Content-Type",r),e.header("Cache-Control","public, max-age=31536000, immutable"),e.send(a6n(t))}function z_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(!yn(r)||!yn(i)){ZZ(n,"bad_param");return}if(!q_t.test(s)){ZZ(n,"bad_sha");return}if(!Ua(r)){bbe(n,"intent_not_found");return}let o=jyt(ce(r),i,s);B_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(!yn(r)){ZZ(n,"bad_param");return}if(!q_t.test(i)){ZZ(n,"bad_sha");return}if(!Ua(r)){bbe(n,"intent_not_found");return}let s=Hyt(ce(r),i);B_t(n,s)})}var q_t,u6n,G_t=v(()=>{"use strict";P0();ze();qg();Pv();q_t=/^[0-9a-f]{64}$/,u6n={png:"image/png",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",avif:"image/avif"}});import{brotliDecompressSync as l6n}from"node:zlib";var d6n,Wd,JZ=v(()=>{"use strict";d6n="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",Wd=l6n(Buffer.from(d6n,"base64")).toString("utf-8")});import{existsSync as ip,readdirSync as lx,readFileSync as Nv,writeFileSync as f6n}from"node:fs";import{join as ko}from"node:path";function XZ(e){let t=ce(e.slug),n=ko(t,"intent.md");if(!ip(n))return{ok:!1,error:"intent_not_found",details:{slug:e.slug}};let r=re(Nv(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=Vye(i,y,s),E=Wye(i,y,s);for(let _ of lx(b).filter(T=>T.endsWith(".md"))){let T=ko(b,_),R=re(Nv(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]=zd(t,b));Ne(y.unitPath,"reviews",S),Ne(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(Nv(S,"utf8")).data,T=!1;_.verified_at||(Ne(S,"verified_at",E),T=!0),_.decompose_verified_at||(Ne(S,"decompose_verified_at",E),T=!0),T&&h++}else{let _=`# Elaboration (synthesized by /haiku:haiku-debug) +`+s),e.push(i+"m+"+WZ.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=NZn()+t+" "+e[0]}function NZn(){return La.inspectOpts.hideDate?"":new Date().toISOString()+" "}function CZn(...e){return process.stderr.write(VZ.format(...e)+` +`)}function MZn(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function DZn(){return process.env.DEBUG}function LZn(e){e.inspectOpts={};let t=Object.keys(La.inspectOpts);for(let n=0;nt.trim()).join(" ")};o_t.O=function(e){return this.inspectOpts.colors=this.useColors,VZ.inspect(e,this.inspectOpts)}});var cbe=w((umi,abe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?abe.exports=s_t():abe.exports=a_t()});var u_t=w((lmi,c_t)=>{var{Transform:UZn}=Y("stream"),ube=class extends UZn{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)))}};c_t.exports=ube});var f_t=w((fmi,d_t)=>{var{EventEmitter:FZn}=Y("events"),Jh=cbe()("localtunnel:client"),lbe=Y("fs"),l_t=Y("net"),jZn=Y("tls"),HZn=u_t();d_t.exports=class extends FZn{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;Jh("establishing tunnel %s://%s:%s <> %s:%s",o,i,s,n,r);let c=l_t.connect({host:n,port:r});c.setKeepAlive(!0),c.on("error",l=>{Jh("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){Jh("remote destroyed"),this.emit("dead");return}Jh("connecting locally to %s://%s:%d",o,i,s),c.pause(),a&&Jh("allowing invalid certificates");let l=()=>a?{rejectUnauthorized:!1}:{cert:lbe.readFileSync(t.local_cert),key:lbe.readFileSync(t.local_key),ca:t.local_ca?[lbe.readFileSync(t.local_ca)]:void 0},d=t.local_https?jZn.connect({host:i,port:s,...l()}):l_t.connect({host:i,port:s}),f=()=>{Jh("remote close"),this.emit("dead"),d.end()};c.once("close",f),d.once("error",p=>{if(Jh("local error %s",p.message),d.end(),c.removeListener("close",f),p.code!=="ECONNREFUSED")return c.end();setTimeout(u,1e3)}),d.once("connect",()=>{Jh("connected locally"),c.resume();let p=c;t.local_host&&(Jh("transform Host header to %s",t.local_host),p=c.pipe(new HZn({host:t.local_host}))),p.pipe(d).pipe(c),d.once("close",h=>{Jh("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 m_t=w((hmi,h_t)=>{var{parse:qZn}=Y("url"),{EventEmitter:p_t}=Y("events"),BZn=t_t(),N1=cbe()("localtunnel:client"),zZn=f_t();h_t.exports=class extends p_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:qZn(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(){BZn.get(a,i).then(u=>{let l=u.data;if(N1("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=>(N1(`tunnel server offline: ${u.message}, retry 1s`),setTimeout(c,1e3)))})()}_establish(t){this.setMaxListeners(t.max_conn+(p_t.defaultMaxListeners||10)),this.tunnelCluster=new zZn(t),this.tunnelCluster.once("open",()=>{this.emit("url",t.url)}),this.tunnelCluster.on("error",r=>{N1("got socket error",r.message),this.emit("error",r)});let n=0;this.tunnelCluster.on("open",r=>{n++,N1("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--,N1("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 y_t=w((mmi,g_t)=>{var GZn=m_t();g_t.exports=function(t,n,r){let i=typeof t=="object"?t:{...n,port:t},s=typeof t=="object"?n:r,o=new GZn(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 k_t={};Ar(k_t,{__setActiveTunnelForTesting:()=>XZn,buildReviewUrl:()=>Ov,clearE2EKey:()=>ybe,closeTunnel:()=>mbe,e2eEncrypt:()=>gbe,getTunnelUrl:()=>w_t,isE2EActive:()=>D1,isRemoteReviewEnabled:()=>zi,isTunnelOpen:()=>ZZn,openTunnel:()=>Hg,signJWT:()=>R_t,verifyTunnelJWT:()=>Xh});import{createCipheriv as VZn,createHmac as __t,randomBytes as pbe,timingSafeEqual as WZn}from"node:crypto";async function YZn(){if(!(!Ts||xv||Iv))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,fbe()}}function v_t(){KZ(),C1=setInterval(YZn,KZn),C1.unref()}function KZ(){C1&&(clearInterval(C1),C1=null)}function S_t(e){return(typeof e=="string"?Buffer.from(e).toString("base64"):e.toString("base64")).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function R_t(e){let t=S_t(JSON.stringify({alg:"HS256",typ:"JWT"})),n=S_t(JSON.stringify(e)),r=__t("sha256",T_t).update(`${t}.${n}`).digest("base64url");return`${t}.${n}.${r}`}function Xh(e,t){let n=e.split(".");if(n.length!==3)return{ok:!1,reason:"malformed"};let[r,i,s]=n;if(!r||!i||!s)return{ok:!1,reason:"malformed"};try{let f=Buffer.from(r,"base64url").toString("utf-8"),p=JSON.parse(f);if(p.alg!=="HS256")return{ok:!1,reason:"bad_alg"};if(p.typ!==void 0&&p.typ!=="JWT")return{ok:!1,reason:"bad_typ"}}catch{return{ok:!1,reason:"malformed"}}let o=__t("sha256",T_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(!WZn(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=w_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 fbe(){if(Iv||xv||!dbe)return;Iv=!0;let e=5;for(let t=0;tsetTimeout(r,n));try{let r=await(0,hbe.default)({port:dbe});Ts=r,A_t(r),console.error(`[haiku] Tunnel reconnected: ${r.url}`),v_t(),Iv=!1;return}catch(r){console.error("[haiku] Tunnel reconnect failed:",r instanceof Error?r.message:r)}}Iv=!1,console.error(`[haiku] Tunnel reconnect exhausted \u2014 giving up after ${e} attempts`)}function A_t(e){e.on("close",()=>{Ts===e&&(Ts=null,KZ(),console.error("[haiku] Tunnel closed unexpectedly"),xv||fbe())}),e.on("error",t=>{console.error("[haiku] Tunnel error:",t.message),Ts===e&&(Ts=null,KZ(),xv||fbe())})}async function Hg(e){if(Ts)return Ts.url;if(Iv){let n=Date.now()+b_t;if(await new Promise((r,i)=>{let s=setInterval(()=>{Iv?Date.now()>n&&(clearInterval(s),i(new Error(`openTunnel: timed out after ${b_t}ms waiting for an in-flight reconnect to settle`))):(clearInterval(s),r())},100)}),Ts)return Ts.url}dbe=e,xv=!1;let t=3;for(let n=0;nsetTimeout(()=>o(new Error(`localtunnel did not respond within ${E_t}ms`)),E_t)),i=await Promise.race([(0,hbe.default)({port:e}),r]);return Ts=i,A_t(i),console.error(`[haiku] Tunnel opened: ${i.url}`),v_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 mbe(){xv=!0,KZ(),Ts&&(Ts.close(),Ts=null,console.error("[haiku] Tunnel closed"))}function w_t(){return Ts?.url??null}function ZZn(){return Ts!==null}function zi(){return Go.remoteReview}function Ov(e,t,n){let r=pbe(32);M1.set(e,r);let i=Math.floor(Date.now()/1e3),s=R_t({tun:t,sid:e,typ:n,key:r.toString("base64url"),iat:i,exp:i+3600});return`${JZn}/review/#${s}`}function gbe(e,t){let n=M1.get(e);if(!n)return null;let r=pbe(12),i=VZn("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 D1(e){return e?M1.has(e):M1.size>0}function ybe(e){M1.delete(e)}function XZn(e){e?Ts={url:e,close:()=>{Ts=null},on:()=>{}}:Ts=null}var hbe,T_t,M1,Ts,dbe,Iv,xv,C1,KZn,b_t,E_t,JZn,Qh=v(()=>{"use strict";hbe=Re(y_t(),1);Ci();T_t=pbe(32),M1=new Map,Ts=null,dbe=null,Iv=!1,xv=!1,C1=null,KZn=3e4;b_t=3e4,E_t=15e3;JZn=bf.siteUrl});import{randomBytes as QZn}from"node:crypto";function e6n(){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 P_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 t6n(){let e=process.env.HAIKU_CSRF_NONCE_REQUIRED;return e==="true"||e==="1"}function n6n(){let e=process.env.HAIKU_CSRF_NONCE_TTL_MS;if(!e)return I_t;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?I_t:t}function N_t(e){let t=QZn(32).toString("base64url");return Sbe.set(e,{nonce:t,expiresAt:Date.now()+n6n()}),t}function C_t(e){let t=Sbe.get(e);return t?t.expiresAt{if(!zi())return n.send({nonce:"local-mode-no-csrf-required"});let r=L1(t);if(!r)return n.status(401).send({error:"unauthorized",reason:"missing_token"});let i=Xh(r,null);if(!i.ok)return n.status(401).send({error:"unauthorized",reason:i.reason});let s=N_t(i.payload.sid);return n.send({nonce:s})})}var $Zn,x_t,O_t,I_t,Sbe,bbe=v(()=>{"use strict";Qh();qg();$Zn=new Set(["POST","PUT","PATCH","DELETE"]),x_t="query_param_token_disallowed_on_mutating_route",O_t="X-Haiku-CSRF";I_t=3600*1e3;Sbe=new Map});function L1(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(!zi())return!0;let r=L1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Xh(r,n);return i.ok?!0:(t.status(401).send({error:"unauthorized",reason:i.reason}),!1)}function cx(e,t,n){if(!zi())return!0;let r=L1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Xh(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 ux,qg=v(()=>{"use strict";$c();Qh();bbe();ux=cx});import{existsSync as L_t}from"node:fs";import{join as U_t}from"node:path";function r6n(e,t,n=400){let r={error:"validation_failed",issues:t};return e.status(n).send(r)}function Gb(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 r6n(e,i),{ok:!1}}return{ok:!0,data:r.data}}function yn(e){let t;try{t=decodeURIComponent(e)}catch{return!1}return t.includes("\0")?!1:!/[/\\]|\.\./.test(t)}function Ua(e){try{let t=ce(e);return L_t(U_t(t,"intent.md"))}catch{return!1}}function $h(e,t){try{let n=ce(e);return L_t(U_t(n,"stages",t))}catch{return!1}}var Pv=v(()=>{"use strict";ze()});import{existsSync as YZ,readdirSync as Ebe,readFileSync as i6n}from"node:fs";import{join as F1}from"node:path";function j_t(e){return typeof e!="string"||e.length<=F_t?e:`${e.slice(0,F_t)}\u2026`}function s6n(e){let t={...e};t.agent_rationale=j_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:j_t(r.rationale_excerpt)})),t}function o6n(e){return/^DA-\d+$/.test(e)}function U1(e){try{let t=i6n(e,"utf-8");return JSON.parse(t)}catch{return null}}function a6n(e){let t=ce(e),n=F1(t,"stages");if(!YZ(n))return[];let r=[],i;try{i=Ebe(n,{withFileTypes:!0}).filter(s=>s.isDirectory()).map(s=>s.name)}catch{return[]}for(let s of i){let o=F1(n,s,"drift-assessments");if(!YZ(o))continue;let a;try{a=Ebe(o).filter(c=>/^DA-\d+\.json$/.test(c))}catch{continue}for(let c of a){let u=c.replace(/\.json$/,""),l=F1(o,c),d=U1(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 H_t(e){e.get("/api/intents/:intent/assessments",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r}=t.params;if(!yn(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=a6n(r).filter(m=>{if(o!==null&&new Date(m.createdAt).getTime()<=o)return!1;if(a!==null){let g=U1(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=U1(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=U1(m.absPath);g!==null&&h.push(s6n(g))}n.send({ok:!0,assessments:h,total:d,has_more:f})}),e.get("/api/intents/:intent/assessments/:assessmentId",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,assessmentId:i}=t.params;if(!yn(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(!o6n(i)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let s=ce(r),o=F1(s,"stages");if(!YZ(o)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let a;try{a=Ebe(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=F1(o,c,"drift-assessments",`${i}.json`);if(YZ(u)){let l=U1(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 F_t,q_t=v(()=>{"use strict";ze();qg();Pv();F_t=256});import{createReadStream as c6n,existsSync as u6n}from"node:fs";function ZZ(e,t){e.status(400).send({error:t,code:t})}function _be(e,t){e.status(404).send({error:t,code:t})}function z_t(e,t){if(!u6n(t)){_be(e,"sidecar_not_found");return}let n=jyt(t),r=n?l6n[n]:"application/octet-stream";e.header("Content-Type",r),e.header("Cache-Control","public, max-age=31536000, immutable"),e.send(c6n(t))}function G_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(!yn(r)||!yn(i)){ZZ(n,"bad_param");return}if(!B_t.test(s)){ZZ(n,"bad_sha");return}if(!Ua(r)){_be(n,"intent_not_found");return}let o=Hyt(ce(r),i,s);z_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(!yn(r)){ZZ(n,"bad_param");return}if(!B_t.test(i)){ZZ(n,"bad_sha");return}if(!Ua(r)){_be(n,"intent_not_found");return}let s=qyt(ce(r),i);z_t(n,s)})}var B_t,l6n,V_t=v(()=>{"use strict";P0();ze();qg();Pv();B_t=/^[0-9a-f]{64}$/,l6n={png:"image/png",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",avif:"image/avif"}});import{brotliDecompressSync as d6n}from"node:zlib";var f6n,Wd,JZ=v(()=>{"use strict";f6n="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",Wd=d6n(Buffer.from(f6n,"base64")).toString("utf-8")});import{existsSync as ip,readdirSync as lx,readFileSync as Nv,writeFileSync as p6n}from"node:fs";import{join as ko}from"node:path";function XZ(e){let t=ce(e.slug),n=ko(t,"intent.md");if(!ip(n))return{ok:!1,error:"intent_not_found",details:{slug:e.slug}};let r=re(Nv(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=Kye(i,y,s),E=Yye(i,y,s);for(let _ of lx(b).filter(T=>T.endsWith(".md"))){let T=ko(b,_),R=re(Nv(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]=zd(t,b));Ne(y.unitPath,"reviews",S),Ne(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(Nv(S,"utf8")).data,T=!1;_.verified_at||(Ne(S,"verified_at",E),T=!0),_.decompose_verified_at||(Ne(S,"decompose_verified_at",E),T=!0),T&&h++}else{let _=`# Elaboration (synthesized by /haiku:haiku-debug) This stage's units terminal-advanced through every hat without an elaboration.md being recorded. The debug recovery op synthesized this artifact so the cursor can walk past the elaborate phase. -`,T={recorded_at:E,verified_at:E,decompose_verified_at:E,intent:e.slug,stage:y,synthesized_by:"force_complete"};f6n(S,V_t.default.stringify(_,T)),h++}}let m=!1;if(a===o.length-1){let y=r.approvals&&typeof r.approvals=="object"?{...r.approvals}:{};for(let b of["spec","continuity","user","intent_quality_gates"])y[b]||(y[b]={at:new Date().toISOString()});Ne(n,"approvals",y),m=!0}let g=0;if(e.closeOpenFeedback){let y=p.map(S=>ko(t,"stages",S,"feedback"));a===o.length-1&&y.push(ko(t,"feedback"));let b=new Date().toISOString();for(let S of y)if(ip(S))for(let E of lx(S).filter(_=>_.endsWith(".md"))){let _=ko(S,E),T=re(Nv(_,"utf8")).data,R=T.closed_at,A=T.rejected_at;if(typeof R=="string"&&R.length>0||typeof A=="string"&&A.length>0)continue;Ne(_,"closed_at",b);let x=T.closed_by;typeof x=="string"&&x.length>0||Ne(_,"closed_by","force_complete"),g++}}return{ok:!0,result:{stages_processed:p,units_signed:f,intent_quality_gates_signed:m,feedback_closed:g,elaborations_sealed:h}}}function dx(e){let t=ko(ce(e.slug),"intent.md");return ip(t)?(Ne(t,e.field,e.value),{ok:!0}):{ok:!1,error:"intent_not_found"}}function QZ(e){let t=ce(e.slug),n=ko(t,"stages");if(!ip(n))return{ok:!1,error:"no_stages_dir"};let r=0,i=0;for(let s of lx(n,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=ko(n,s.name,"units");if(ip(o))for(let a of lx(o).filter(c=>c.endsWith(".md"))){let c=ko(o,a),u=re(Nv(c,"utf8")).data,l=Array.isArray(u.outputs)?u.outputs:[],d=u.reviews&&typeof u.reviews=="object"?{...u.reviews}:{},f=Array.isArray(u.inputs)?u.inputs:[];for(let h of Object.keys(d))d[h]=Cl(c,{intentDir:t,unitInputs:f}),r++;let p=u.approvals&&typeof u.approvals=="object"?{...u.approvals}:{};for(let h of Object.keys(p))p[h]=zd(t,l),i++;Object.keys(d).length>0&&Ne(c,"reviews",d),Object.keys(p).length>0&&Ne(c,"approvals",p)}}return{ok:!0,reviews_refreshed:r,approvals_refreshed:i}}function $Z(e){let t=ce(e.slug),n=ko(t,"intent.md");if(!ip(n))return{ok:!1,error:"intent_not_found"};let i=re(Nv(n,"utf8")).data.studio||"";if(!i)return{ok:!1,error:"intent_missing_studio"};let s=ko(t,"stages",e.stage,"units");if(!ip(s))return{ok:!1,error:"units_dir_not_found",details:{stage:e.stage}};let o=lx(s).filter(u=>u.endsWith(".md")).find(u=>{let l=u.replace(/\.md$/,"");if(l===e.unit||l.startsWith(`${e.unit}-`))return!0;let d=e.unit.match(/^(?:unit-)?(\d+)$/i);if(d){let f=Number.parseInt(d[1],10),p=l.match(/^unit-(\d+)-/);if(p&&Number.parseInt(p[1],10)===f)return!0}return!1});if(!o)return{ok:!1,error:"unit_not_found",details:{stage:e.stage,unit:e.unit}};let a=ko(s,o);if(Array.isArray(e.iterations)&&e.iterations.length===0)return{ok:!1,error:"use_haiku_unit_reset",details:{message:"Passing iterations: [] does NOT reset a unit \u2014 set_unit_iterations with no entries synthesizes a COMPLETED state (one advance per hat). To return a unit to pending (clear iterations, discard its worktree), use haiku_unit_reset { intent, stage, unit }."}};let c;if(e.iterations&&e.iterations.length>0){let u=new Date().toISOString();c=e.iterations.map(l=>({hat:l.hat,result:l.result,at:l.at||u}))}else{let u=Es(i,e.stage);if(u.length===0)return{ok:!1,error:"no_hats_defined_for_stage",details:{studio:i,stage:e.stage}};let l=new Date().toISOString();c=u.map(d=>({hat:d,result:"advance",at:l}))}return Ne(a,"iterations",c),{ok:!0,unit_file:o,iterations_written:c.length}}function fx(e){let t=ce(e.slug),n=e.stage?ko(t,"stages",e.stage,"feedback"):ko(t,"feedback");if(!ip(n))return{ok:!1,error:"feedback_dir_not_found"};let r=e.feedbackId.match(/^(?:FB-)?(\d+)/i);if(!r)return{ok:!1,error:"invalid_feedback_id_shape"};let i=Number.parseInt(r[1],10),s=lx(n).filter(c=>c.endsWith(".md")).find(c=>{let u=c.match(/^(\d+)-/);return u&&Number.parseInt(u[1],10)===i});if(!s)return{ok:!1,error:"feedback_not_found"};let o=ko(n,s),a=[];for(let[c,u]of Object.entries(e.patch))Ne(o,c,u),a.push(c);return{ok:!0,written_keys:a}}function e6(e){let t=ce(e.slug),n=ko(t,"intent.md");if(!ip(n))return{ok:!1,error:"intent_not_found"};let i=re(Nv(n,"utf8")).data.studio||"";return i?{ok:!0,position:$f({slug:e.slug,intentDir:t,studio:i})}:{ok:!1,error:"intent_missing_studio"}}var V_t,Ebe=v(()=>{"use strict";V_t=Re(Kt(),1);ze();ns();Oa();f1();Xf()});import{existsSync as t6,readdirSync as K_t,readFileSync as Y_t}from"node:fs";import{join as n6}from"node:path";function p6n(){let e=n6(ve(),"intents");if(!t6(e))return[];let t=[];for(let n of K_t(e,{withFileTypes:!0})){if(!n.isDirectory())continue;let r=n6(e,n.name,"intent.md");if(t6(r))try{let i=re(Y_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 h6n(e){if(!yn(e))return{ok:!1,error:"invalid_slug"};let t=ce(e),n=n6(t,"intent.md");if(!t6(n))return{ok:!1,error:"intent_not_found"};let r=re(Y_t(n,"utf8")).data,i=n6(t,"stages"),s=t6(i)?K_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 Z_t(e){e.get("/debug",async(t,n)=>{n.type("text/html; charset=utf-8").send(Wd)}),e.get("/debug/:slug",async(t,n)=>{n.type("text/html; charset=utf-8").send(Wd)}),e.get("/api/debug/intents",async(t,n)=>{Gn(t,n,null)&&n.send({intents:p6n()})}),e.get("/api/debug/intents/:intent",async(t,n)=>{if(!Gn(t,n,null))return;let r=h6n(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(!yn(r)){n.status(400).send({error:"invalid_slug"});return}try{let i=e6({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(!yn(r)){n.status(400).send({error:"invalid_slug"});return}if(!cx(t,n,r))return;if(!W_t.has(i)){n.status(400).send({error:"unsupported_op",message:`op must be one of: ${[...W_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(!yn(a)){n.status(400).send({error:"invalid_stage"});return}o=XZ({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:dx({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=dx({slug:r,field:a,value:s.value});break}case"reset_drift":{o=QZ({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(!yn(a)){n.status(400).send({error:"invalid_stage"});return}if(!yn(c)){n.status(400).send({error:"invalid_unit"});return}let u=Array.isArray(s.iterations)?s.iterations:void 0;o=$Z({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&&!yn(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:fx({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=fx({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 W_t,J_t=v(()=>{"use strict";JZ();Ebe();ze();qg();Pv();W_t=new Set(["force_stage_complete","set_intent_field","reset_drift","mutate_feedback","set_unit_iterations"])});function X_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:ud,plugin_version:m6n})),e.get("/",async(n,r)=>{r.type("text/html; charset=utf-8").send(Wd)}),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(Wd);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)?kD:wD;i.status(413).send({error:"payload_too_large",max_bytes:l});return}i.status(o).send({error:"internal_error",message:a})})}var m6n,Q_t=v(()=>{"use strict";vT();JZ();p_();m6n=vS()});function _be(e){return e.match(/\/(?:api\/session|review|question|direction|files|mockups|wireframe|stage-artifacts|question-image)\/([^/]+)/)?.[1]??null}async function $_t(e,t,n){if(t.statusCode>=400||t.statusCode===204||t.statusCode===205||t.statusCode===304)return n;let r=_be(e.url.split("?")[0]);if(!r||!D1(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=hbe(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 eTt=v(()=>{"use strict";Qh()});function ta(e){try{let t={ts:new Date().toISOString(),reqId:e.reqId,action:e.action,status:e.status,...e.intent?{intent:e.intent}:{},...e.stage?{stage:e.stage}:{},...e.feedbackId?{feedbackId:e.feedbackId}:{},...e.detail?{detail:e.detail}:{}};process.stderr.write(`[haiku-mcp][feedback] ${JSON.stringify(t)} -`)}catch{}}var Tbe=v(()=>{"use strict"});import{readFile as g6n}from"node:fs/promises";import{dirname as r6,relative as y6n,resolve as Rbe,sep as vbe}from"node:path";function Abe(e){return e.length>0&&!/^[a-z][a-z0-9+.-]*:/i.test(e)&&!e.startsWith("//")&&!e.startsWith("/")&&!e.startsWith("#")}function nTt(e,t){let n=t.endsWith(vbe)?t:t+vbe;return e===t||e.startsWith(n)}function tTt(e,t,n){return e.replace(/url\(\s*(['"]?)([^'")]+)\1\s*\)/gi,(r,i,s)=>{let o=s.trim();return Abe(o)?`url("${y6n(n,Rbe(t,o)).split(vbe).join("/")}")`:r})}async function rTt(e,t,n,r=0){if(r>3)return null;let i;try{i=await g6n(e,"utf-8")}catch{return null}let s=r6(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(!Abe(l))continue;let f=Rbe(s,l);if(!nTt(f,t))continue;let p=await rTt(f,t,n,r+1);p!=null&&(a+=tTt(i.slice(c,d),s,n),a+=p,c=d+u[0].length)}return a+=tTt(i.slice(c),s,n),a}async function i6(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||!Abe(f))continue;let p=Rbe(r,f);if(!nTt(p,n))continue;let h=await rTt(p,n,r);h!=null&&(s+=e.slice(o,u),s+=``,o=u+c.length)}return s+=e.slice(o),s}function iTt(e,t){let n=t.split(/[/\\]+/).filter(Boolean).length-1,r=r6(e);for(let i=0;i{"use strict"});import{readFile as sTt,realpath as kbe}from"node:fs/promises";import{extname as oTt,resolve as Ibe}from"node:path";async function xbe(e,t){let n=Ibe(e),r=Ibe(n,t);if(!r.startsWith(`${n}/`)&&r!==n)return{ok:!1};try{let i=await kbe(r).catch(()=>null),s=await kbe(n).catch(()=>n);return!i||!i.startsWith(`${s}/`)&&i!==s?{ok:!1}:{ok:!0,path:i}}catch{return{ok:!1}}}function j1(e,t,n){return Rut.safeParse({sessionId:t,path:n}).success?!1:(e.status(403).send({error:"forbidden_path_traversal"}),!0)}async function Obe(e,t){try{let n=await sTt(t),r=oTt(t).toLowerCase(),i=S6n[r],s=b6n.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 Pbe(e,t,n){if(!E6n.has(oTt(t).toLowerCase()))return Obe(e,t);let r;try{let i=await sTt(t,"utf-8"),s=await kbe(n).catch(()=>Ibe(n));r=await i6(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 px(e,t,n){let r=await xbe(t,n);if(!r.ok){e.status(403).send({error:"forbidden_path_traversal"});return}return Pbe(e,r.path,t)}var S6n,b6n,E6n,Nbe=v(()=>{"use strict";vT();wbe();S6n={".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"},b6n=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);E6n=new Set([".html",".htm"])});import{join as _6n}from"node:path";function aTt(e){e.get("/api/feedback/:intent/:stage",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(yn(r)&&yn(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(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let s=t.query?.status;if(s&&!Bb.includes(s)){n.status(400).send({error:`Invalid status filter. Must be one of: ${Bb.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(!yn(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&&!Bb.includes(i)){n.status(400).send({error:`Invalid status filter. Must be one of: ${Bb.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(!(yn(r)&&yn(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=_6n(ce(r),"stages",i,"feedback");await px(n,o,s)}),e.post("/api/feedback/:intent/:stage",{bodyLimit:kD},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(yn(r)&&yn(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(!ux(t,n,r))return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let s=Gb(n,t.body,pfe);if(!s.ok)return;let o=s.data.inline_anchor,a=pv(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:CK},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!ux(t,n,r))return;let o=Gb(n,t.body,hfe);if(!o.ok)return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let a=bSe(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(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}if(!ux(t,n,r))return;let o=_Se(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(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!ux(t,n,r))return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let o=RZ(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:CK},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!ux(t,n,r))return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let o=Gb(n,t.body,mfe);if(!o.ok)return;let a=pv(o.data.body),c=ESe(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 cTt=v(()=>{"use strict";vT();Aye();ze();Tbe();qg();Nbe();Pv()});import{realpath as uTt}from"node:fs/promises";import{dirname as lTt,join as T6n,resolve as dTt}from"node:path";function fTt(e){e.get("/files/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!Gn(t,n,r)||j1(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?dTt(lTt(lTt(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 xbe(l,i);if(!d.ok){u=!0;continue}return Pbe(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)||j1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return px(n,T6n(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)||j1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return px(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)||j1(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 px(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 uTt(a).catch(()=>null),l=await uTt(c).catch(()=>dTt(c));if(!u||!u.startsWith(`${l}/`)&&u!==l){n.status(403).send("Forbidden");return}}catch{n.status(403).send("Forbidden");return}return Obe(n,a)})}var pTt=v(()=>{"use strict";$c();qg();Nbe()});import{EventEmitter as v6n}from"node:events";function hTt(e,t){let n=`intent:${e}`;return s6.on(n,t),()=>{s6.off(n,t)}}function Kd(e,t){s6.emit(`intent:${e}`,t)}var s6,hx=v(()=>{"use strict";s6=new v6n;s6.setMaxListeners(200)});import{spawn as R6n}from"node:child_process";import{accessSync as A6n,constants as w6n,existsSync as k6n,mkdirSync as I6n,readdirSync as x6n,rmSync as O6n}from"node:fs";import{homedir as Dbe,tmpdir as P6n}from"node:os";import{join as na}from"node:path";function N6n(e=process.platform,t=process.env,n=Dbe(),r=i=>{try{return x6n(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 C6n(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(Dbe(),"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 M6n(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 D6n(e=process.platform,t=process.env,n=i=>{try{return A6n(i,w6n.X_OK),!0}catch{return k6n(i)}},r){let i=t.HAIKU_MICRO_APP_BROWSER;if(i)return n(i)?i:null;let s=N6n(e,t,Dbe(),r);if(s&&n(s))return s;for(let o of C6n(e,t)){let a=M6n(o,t,n);if(a)return a}return null}function yTt(){return Cbe===void 0&&(Cbe=D6n()),Cbe}function L6n(){return process.env.HAIKU_DISABLE_MICRO_APP==="1"?!1:yTt()!==null}function U6n(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 F6n(e,t=na(P6n(),"haiku-micro-app")){return na(t,e)}function STt(e,t={}){if(!L6n())return!1;let n=yTt();if(!n)return!1;let r=t.sessionId??`anon-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,i=Cv.get(r);if(i&&i.child.exitCode===null&&!i.child.killed)return!0;let s=F6n(r);try{I6n(s,{recursive:!0})}catch{return!1}try{let o=R6n(n,U6n(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.`),Cv.delete(r),Mbe(s)}),Cv.set(r,{child:o,profileDir:s}),j6n(),!0}catch(o){return console.error(`[haiku-micro-app] spawn threw: ${o instanceof Error?o.message:String(o)}`),Mbe(s),!1}}function Mbe(e){try{O6n(e,{recursive:!0,force:!0})}catch{}}function mTt(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 mx(e){let t=Cv.get(e);return t?(Cv.delete(e),mTt(t,"SIGTERM"),setTimeout(()=>{mTt(t,"SIGKILL")},2e3).unref?.(),Mbe(t.profileDir),!0):!1}function bTt(){let e=0;for(let[t]of Cv)t.startsWith("anon-")||$t(t)||(mx(t),e+=1);return e}function j6n(){if(gTt)return;gTt=!0;let e=()=>{for(let[t]of Cv)mx(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var Cv,Cbe,gTt,H1=v(()=>{"use strict";$c();Cv=new Map;gTt=!1});import{existsSync as ETt,readdirSync as H6n,readFileSync as q6n}from"node:fs";import{join as a6}from"node:path";function o6(e,t){return t?a6(t,"intents",e):ce(e)}function z6n(e,t){let n=a6(o6(e,t),"intent.md");if(!ETt(n))return null;let{data:r}=re(q6n(n,"utf8"));return r}function _Tt(e,t){let n=z6n(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,o6(e,t)),c=a??s[s.length-1],l=bv({slug:e,studio:r,stage:c,intentDir:o6(e,t),intentMode:o}).phase??"",d=B6n.has(l)?l:"",f;if(d==="elaborate"){let m=a6(o6(e,t),"stages",c),g=a6(m,"units"),y=ETt(g)?H6n(g).filter(S=>S.endsWith(".md")).map(S=>S.replace(/\.md$/,"")):[],b=M0({slug:e,studio:r,stage:c,stageDir:m,unitNames:y,mode:o});b.length>0&&(f=vye(b))}let p,h;if(a===null){let m=typeof n.sealed_at=="string"&&n.sealed_at.length>0,g=N0(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 B6n,TTt=v(()=>{"use strict";ns();Oa();f1();YL();ze();B6n=new Set(["elaborate","execute","review","gate"])});import{execFileSync as G6n}from"node:child_process";function c6(e){try{return G6n(e[0],e.slice(1),{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:5e3}).trim()}catch{return""}}function V6n(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 W6n(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=c6(["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 K6n(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 Y6n(e){if(!Ee())return null;let t=`haiku/${e}/main`,n=c6(["git","rev-parse","--verify",t])||c6(["git","rev-parse","--verify",`origin/${t}`]);if(!n)return null;let r=c6(["git","remote","get-url","origin"]),i=V6n(r);if(!i)return null;let s=W6n(n,i);if(!s)return null;let o=K6n(i,s.source,s.prNumber);return o?{url:o,source:s.source,prNumber:s.prNumber,matchedSha:n}:null}function RTt(e){let t=Date.now(),n=vTt.get(e);if(n&&n.expiresAt>t)return n.value;let r=Y6n(e);return vTt.set(e,{value:r,expiresAt:t+Z6n}),r}var Z6n,vTt,ATt=v(()=>{"use strict";Eb();Z6n=3e4,vTt=new Map});var wTt=v(()=>{});var UTt=w(cn=>{"use strict";var Fbe=Symbol.for("react.transitional.element"),J6n=Symbol.for("react.portal"),X6n=Symbol.for("react.fragment"),Q6n=Symbol.for("react.strict_mode"),$6n=Symbol.for("react.profiler"),e5n=Symbol.for("react.consumer"),t5n=Symbol.for("react.context"),n5n=Symbol.for("react.forward_ref"),r5n=Symbol.for("react.suspense"),i5n=Symbol.for("react.memo"),PTt=Symbol.for("react.lazy"),s5n=Symbol.for("react.activity"),kTt=Symbol.iterator;function o5n(e){return e===null||typeof e!="object"?null:(e=kTt&&e[kTt]||e["@@iterator"],typeof e=="function"?e:null)}var NTt={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},CTt=Object.assign,MTt={};function yx(e,t,n){this.props=e,this.context=t,this.refs=MTt,this.updater=n||NTt}yx.prototype.isReactComponent={};yx.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")};yx.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function DTt(){}DTt.prototype=yx.prototype;function jbe(e,t,n){this.props=e,this.context=t,this.refs=MTt,this.updater=n||NTt}var Hbe=jbe.prototype=new DTt;Hbe.constructor=jbe;CTt(Hbe,yx.prototype);Hbe.isPureReactComponent=!0;var ITt=Array.isArray;function Ube(){}var Ai={H:null,A:null,T:null,S:null},LTt=Object.prototype.hasOwnProperty;function qbe(e,t,n){var r=n.ref;return{$$typeof:Fbe,type:e,key:t,ref:r!==void 0?r:null,props:n}}function a5n(e,t){return qbe(e.type,t,e.props)}function Bbe(e){return typeof e=="object"&&e!==null&&e.$$typeof===Fbe}function c5n(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var xTt=/\/+/g;function Lbe(e,t){return typeof e=="object"&&e!==null&&e.key!=null?c5n(""+e.key):t.toString(36)}function u5n(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(Ube,Ube):(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 gx(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 Fbe:case J6n:o=!0;break;case PTt:return o=e._init,gx(o(e._payload),t,n,r,i)}}if(o)return i=i(e),o=r===""?"."+Lbe(e,0):r,ITt(i)?(n="",o!=null&&(n=o.replace(xTt,"$&/")+"/"),gx(i,t,n,"",function(u){return u})):i!=null&&(Bbe(i)&&(i=a5n(i,n+(i.key==null||e&&e.key===i.key?"":(""+i.key).replace(xTt,"$&/")+"/")+o)),t.push(i)),1;o=0;var a=r===""?".":r+":";if(ITt(e))for(var c=0;c{"use strict";process.env.NODE_ENV!=="production"&&(function(){function e(D,ne){Object.defineProperty(r.prototype,D,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",ne[0],ne[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,ne){D=(D=D.constructor)&&(D.displayName||D.name)||"ReactClass";var Ce=D+"."+ne;Ae[Ce]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",ne,D),Ae[Ce]=!0)}function r(D,ne,Ce){this.props=D,this.context=ne,this.refs=oe,this.updater=Ce||z}function i(){}function s(D,ne,Ce){this.props=D,this.context=ne,this.refs=oe,this.updater=Ce||z}function o(){}function a(D){return""+D}function c(D){try{a(D);var ne=!1}catch{ne=!0}if(ne){ne=console;var Ce=ne.error,Se=typeof Symbol=="function"&&Symbol.toStringTag&&D[Symbol.toStringTag]||D.constructor.name||"Object";return Ce.call(ne,"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 j:return"Suspense";case H: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 ne=D.render;return D=D.displayName,D||(D=ne.displayName||ne.name||"",D=D!==""?"ForwardRef("+D+")":"ForwardRef"),D;case K:return ne=D.displayName||null,ne!==null?ne:u(D.type)||"Memo";case ee:ne=D._payload,D=D._init;try{return u(D(ne))}catch{}}return null}function l(D){if(D===Q)return"<>";if(typeof D=="object"&&D!==null&&D.$$typeof===ee)return"<...>";try{var ne=u(D);return ne?"<"+ne+">":"<...>"}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(Un.call(D,"key")){var ne=Object.getOwnPropertyDescriptor(D,"key").get;if(ne&&ne.isReactWarning)return!1}return D.key!==void 0}function h(D,ne){function Ce(){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)",ne))}Ce.isReactWarning=!0,Object.defineProperty(D,"key",{get:Ce,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,ne,Ce,Se,at,Pn){var It=Ce.ref;return D={$$typeof:$,type:D,key:ne,props:Ce,_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:Pn}),Object.freeze&&(Object.freeze(D.props),Object.freeze(D)),D}function y(D,ne){return ne=g(D.type,ne,D.props,D._owner,D._debugStack,D._debugTask),D._store&&(ne._store.validated=D._store.validated),ne}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 ne={"=":"=0",":":"=2"};return"$"+D.replace(/[=:]/g,function(Ce){return ne[Ce]})}function _(D,ne){return typeof D=="object"&&D!==null&&D.key!=null?(c(D.key),E(""+D.key)):ne.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(ne){D.status==="pending"&&(D.status="fulfilled",D.value=ne)},function(ne){D.status==="pending"&&(D.status="rejected",D.reason=ne)})),D.status){case"fulfilled":return D.value;case"rejected":throw D.reason}}throw D}function R(D,ne,Ce,Se,at){var Pn=typeof D;(Pn==="undefined"||Pn==="boolean")&&(D=null);var It=!1;if(D===null)It=!0;else switch(Pn){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),ne,Ce,Se,at)}}if(It){It=D,at=at(It);var dn=Se===""?"."+_(It,0):Se;return _e(at)?(Ce="",dn!=null&&(Ce=dn.replace(Ii,"$&/")+"/"),R(at,ne,Ce,"",function(ra){return ra})):at!=null&&(S(at)&&(at.key!=null&&(It&&It.key===at.key||c(at.key)),Ce=y(at,Ce+(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&&(Ce._store.validated=2),at=Ce),ne.push(at)),1}if(It=0,dn=Se===""?".":Se+":",_e(D))for(var _t=0;_t`,o=u+c.length)}return s+=e.slice(o),s}function sTt(e,t){let n=t.split(/[/\\]+/).filter(Boolean).length-1,r=r6(e);for(let i=0;i{"use strict"});import{readFile as oTt,realpath as xbe}from"node:fs/promises";import{extname as aTt,resolve as Obe}from"node:path";async function Pbe(e,t){let n=Obe(e),r=Obe(n,t);if(!r.startsWith(`${n}/`)&&r!==n)return{ok:!1};try{let i=await xbe(r).catch(()=>null),s=await xbe(n).catch(()=>n);return!i||!i.startsWith(`${s}/`)&&i!==s?{ok:!1}:{ok:!0,path:i}}catch{return{ok:!1}}}function j1(e,t,n){return wut.safeParse({sessionId:t,path:n}).success?!1:(e.status(403).send({error:"forbidden_path_traversal"}),!0)}async function Nbe(e,t){try{let n=await oTt(t),r=aTt(t).toLowerCase(),i=b6n[r],s=E6n.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 Cbe(e,t,n){if(!_6n.has(aTt(t).toLowerCase()))return Nbe(e,t);let r;try{let i=await oTt(t,"utf-8"),s=await xbe(n).catch(()=>Obe(n));r=await i6(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 px(e,t,n){let r=await Pbe(t,n);if(!r.ok){e.status(403).send({error:"forbidden_path_traversal"});return}return Cbe(e,r.path,t)}var b6n,E6n,_6n,Mbe=v(()=>{"use strict";vT();Ibe();b6n={".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"},E6n=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);_6n=new Set([".html",".htm"])});import{join as T6n}from"node:path";function cTt(e){e.get("/api/feedback/:intent/:stage",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(yn(r)&&yn(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(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let s=t.query?.status;if(s&&!Bb.includes(s)){n.status(400).send({error:`Invalid status filter. Must be one of: ${Bb.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(!yn(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&&!Bb.includes(i)){n.status(400).send({error:`Invalid status filter. Must be one of: ${Bb.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(!(yn(r)&&yn(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=T6n(ce(r),"stages",i,"feedback");await px(n,o,s)}),e.post("/api/feedback/:intent/:stage",{bodyLimit:kD},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(yn(r)&&yn(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(!ux(t,n,r))return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let s=Gb(n,t.body,pfe);if(!s.ok)return;let o=s.data.inline_anchor,a=pv(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:CK},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!ux(t,n,r))return;let o=Gb(n,t.body,hfe);if(!o.ok)return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let a=_Se(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(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}if(!ux(t,n,r))return;let o=vSe(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(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!ux(t,n,r))return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let o=RZ(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:CK},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!ux(t,n,r))return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let o=Gb(n,t.body,mfe);if(!o.ok)return;let a=pv(o.data.body),c=TSe(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 uTt=v(()=>{"use strict";vT();kye();ze();Rbe();qg();Mbe();Pv()});import{realpath as lTt}from"node:fs/promises";import{dirname as dTt,join as v6n,resolve as fTt}from"node:path";function pTt(e){e.get("/files/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!Gn(t,n,r)||j1(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?fTt(dTt(dTt(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 Pbe(l,i);if(!d.ok){u=!0;continue}return Cbe(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)||j1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return px(n,v6n(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)||j1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return px(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)||j1(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 px(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 lTt(a).catch(()=>null),l=await lTt(c).catch(()=>fTt(c));if(!u||!u.startsWith(`${l}/`)&&u!==l){n.status(403).send("Forbidden");return}}catch{n.status(403).send("Forbidden");return}return Nbe(n,a)})}var hTt=v(()=>{"use strict";$c();qg();Mbe()});import{EventEmitter as R6n}from"node:events";function mTt(e,t){let n=`intent:${e}`;return s6.on(n,t),()=>{s6.off(n,t)}}function Kd(e,t){s6.emit(`intent:${e}`,t)}var s6,hx=v(()=>{"use strict";s6=new R6n;s6.setMaxListeners(200)});import{spawn as A6n}from"node:child_process";import{accessSync as w6n,constants as k6n,existsSync as I6n,mkdirSync as x6n,readdirSync as O6n,rmSync as P6n}from"node:fs";import{homedir as Ube,tmpdir as N6n}from"node:os";import{join as na}from"node:path";function C6n(e=process.platform,t=process.env,n=Ube(),r=i=>{try{return O6n(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 M6n(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(Ube(),"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 D6n(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 L6n(e=process.platform,t=process.env,n=i=>{try{return w6n(i,k6n.X_OK),!0}catch{return I6n(i)}},r){let i=t.HAIKU_MICRO_APP_BROWSER;if(i)return n(i)?i:null;let s=C6n(e,t,Ube(),r);if(s&&n(s))return s;for(let o of M6n(e,t)){let a=D6n(o,t,n);if(a)return a}return null}function STt(){return Dbe===void 0&&(Dbe=L6n()),Dbe}function U6n(){return process.env.HAIKU_DISABLE_MICRO_APP==="1"?!1:STt()!==null}function F6n(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 j6n(e,t=na(N6n(),"haiku-micro-app")){return na(t,e)}function bTt(e,t={}){if(!U6n())return!1;let n=STt();if(!n)return!1;let r=t.sessionId??`anon-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,i=Cv.get(r);if(i&&i.child.exitCode===null&&!i.child.killed)return!0;let s=j6n(r);try{x6n(s,{recursive:!0})}catch{return!1}try{let o=A6n(n,F6n(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.`),Cv.delete(r),Lbe(s)}),Cv.set(r,{child:o,profileDir:s}),H6n(),!0}catch(o){return console.error(`[haiku-micro-app] spawn threw: ${o instanceof Error?o.message:String(o)}`),Lbe(s),!1}}function Lbe(e){try{P6n(e,{recursive:!0,force:!0})}catch{}}function gTt(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 mx(e){let t=Cv.get(e);return t?(Cv.delete(e),gTt(t,"SIGTERM"),setTimeout(()=>{gTt(t,"SIGKILL")},2e3).unref?.(),Lbe(t.profileDir),!0):!1}function ETt(){let e=0;for(let[t]of Cv)t.startsWith("anon-")||$t(t)||(mx(t),e+=1);return e}function H6n(){if(yTt)return;yTt=!0;let e=()=>{for(let[t]of Cv)mx(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var Cv,Dbe,yTt,H1=v(()=>{"use strict";$c();Cv=new Map;yTt=!1});import{existsSync as _Tt,readdirSync as q6n,readFileSync as B6n}from"node:fs";import{join as a6}from"node:path";function o6(e,t){return t?a6(t,"intents",e):ce(e)}function G6n(e,t){let n=a6(o6(e,t),"intent.md");if(!_Tt(n))return null;let{data:r}=re(B6n(n,"utf8"));return r}function TTt(e,t){let n=G6n(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,o6(e,t)),c=a??s[s.length-1],l=bv({slug:e,studio:r,stage:c,intentDir:o6(e,t),intentMode:o}).phase??"",d=z6n.has(l)?l:"",f;if(d==="elaborate"){let m=a6(o6(e,t),"stages",c),g=a6(m,"units"),y=_Tt(g)?q6n(g).filter(S=>S.endsWith(".md")).map(S=>S.replace(/\.md$/,"")):[],b=M0({slug:e,studio:r,stage:c,stageDir:m,unitNames:y,mode:o});b.length>0&&(f=Aye(b))}let p,h;if(a===null){let m=typeof n.sealed_at=="string"&&n.sealed_at.length>0,g=N0(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 z6n,vTt=v(()=>{"use strict";ji();Oa();f1();YL();ze();z6n=new Set(["elaborate","execute","review","gate"])});import{execFileSync as V6n}from"node:child_process";function c6(e){try{return V6n(e[0],e.slice(1),{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:5e3}).trim()}catch{return""}}function W6n(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 K6n(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=c6(["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 Y6n(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 Z6n(e){if(!Ee())return null;let t=`haiku/${e}/main`,n=c6(["git","rev-parse","--verify",t])||c6(["git","rev-parse","--verify",`origin/${t}`]);if(!n)return null;let r=c6(["git","remote","get-url","origin"]),i=W6n(r);if(!i)return null;let s=K6n(n,i);if(!s)return null;let o=Y6n(i,s.source,s.prNumber);return o?{url:o,source:s.source,prNumber:s.prNumber,matchedSha:n}:null}function ATt(e){let t=Date.now(),n=RTt.get(e);if(n&&n.expiresAt>t)return n.value;let r=Z6n(e);return RTt.set(e,{value:r,expiresAt:t+J6n}),r}var J6n,RTt,wTt=v(()=>{"use strict";Eb();J6n=3e4,RTt=new Map});var kTt=v(()=>{});var FTt=w(cn=>{"use strict";var Hbe=Symbol.for("react.transitional.element"),X6n=Symbol.for("react.portal"),Q6n=Symbol.for("react.fragment"),$6n=Symbol.for("react.strict_mode"),e5n=Symbol.for("react.profiler"),t5n=Symbol.for("react.consumer"),n5n=Symbol.for("react.context"),r5n=Symbol.for("react.forward_ref"),i5n=Symbol.for("react.suspense"),s5n=Symbol.for("react.memo"),NTt=Symbol.for("react.lazy"),o5n=Symbol.for("react.activity"),ITt=Symbol.iterator;function a5n(e){return e===null||typeof e!="object"?null:(e=ITt&&e[ITt]||e["@@iterator"],typeof e=="function"?e:null)}var CTt={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},MTt=Object.assign,DTt={};function yx(e,t,n){this.props=e,this.context=t,this.refs=DTt,this.updater=n||CTt}yx.prototype.isReactComponent={};yx.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")};yx.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function LTt(){}LTt.prototype=yx.prototype;function qbe(e,t,n){this.props=e,this.context=t,this.refs=DTt,this.updater=n||CTt}var Bbe=qbe.prototype=new LTt;Bbe.constructor=qbe;MTt(Bbe,yx.prototype);Bbe.isPureReactComponent=!0;var xTt=Array.isArray;function jbe(){}var Ai={H:null,A:null,T:null,S:null},UTt=Object.prototype.hasOwnProperty;function zbe(e,t,n){var r=n.ref;return{$$typeof:Hbe,type:e,key:t,ref:r!==void 0?r:null,props:n}}function c5n(e,t){return zbe(e.type,t,e.props)}function Gbe(e){return typeof e=="object"&&e!==null&&e.$$typeof===Hbe}function u5n(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var OTt=/\/+/g;function Fbe(e,t){return typeof e=="object"&&e!==null&&e.key!=null?u5n(""+e.key):t.toString(36)}function l5n(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(jbe,jbe):(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 gx(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 Hbe:case X6n:o=!0;break;case NTt:return o=e._init,gx(o(e._payload),t,n,r,i)}}if(o)return i=i(e),o=r===""?"."+Fbe(e,0):r,xTt(i)?(n="",o!=null&&(n=o.replace(OTt,"$&/")+"/"),gx(i,t,n,"",function(u){return u})):i!=null&&(Gbe(i)&&(i=c5n(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(xTt(e))for(var c=0;c{"use strict";process.env.NODE_ENV!=="production"&&(function(){function e(D,ne){Object.defineProperty(r.prototype,D,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",ne[0],ne[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,ne){D=(D=D.constructor)&&(D.displayName||D.name)||"ReactClass";var Ce=D+"."+ne;Ae[Ce]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",ne,D),Ae[Ce]=!0)}function r(D,ne,Ce){this.props=D,this.context=ne,this.refs=oe,this.updater=Ce||z}function i(){}function s(D,ne,Ce){this.props=D,this.context=ne,this.refs=oe,this.updater=Ce||z}function o(){}function a(D){return""+D}function c(D){try{a(D);var ne=!1}catch{ne=!0}if(ne){ne=console;var Ce=ne.error,Se=typeof Symbol=="function"&&Symbol.toStringTag&&D[Symbol.toStringTag]||D.constructor.name||"Object";return Ce.call(ne,"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 j:return"Suspense";case H: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 ne=D.render;return D=D.displayName,D||(D=ne.displayName||ne.name||"",D=D!==""?"ForwardRef("+D+")":"ForwardRef"),D;case K:return ne=D.displayName||null,ne!==null?ne:u(D.type)||"Memo";case ee:ne=D._payload,D=D._init;try{return u(D(ne))}catch{}}return null}function l(D){if(D===Q)return"<>";if(typeof D=="object"&&D!==null&&D.$$typeof===ee)return"<...>";try{var ne=u(D);return ne?"<"+ne+">":"<...>"}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(Un.call(D,"key")){var ne=Object.getOwnPropertyDescriptor(D,"key").get;if(ne&&ne.isReactWarning)return!1}return D.key!==void 0}function h(D,ne){function Ce(){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)",ne))}Ce.isReactWarning=!0,Object.defineProperty(D,"key",{get:Ce,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,ne,Ce,Se,at,Pn){var It=Ce.ref;return D={$$typeof:$,type:D,key:ne,props:Ce,_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:Pn}),Object.freeze&&(Object.freeze(D.props),Object.freeze(D)),D}function y(D,ne){return ne=g(D.type,ne,D.props,D._owner,D._debugStack,D._debugTask),D._store&&(ne._store.validated=D._store.validated),ne}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 ne={"=":"=0",":":"=2"};return"$"+D.replace(/[=:]/g,function(Ce){return ne[Ce]})}function _(D,ne){return typeof D=="object"&&D!==null&&D.key!=null?(c(D.key),E(""+D.key)):ne.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(ne){D.status==="pending"&&(D.status="fulfilled",D.value=ne)},function(ne){D.status==="pending"&&(D.status="rejected",D.reason=ne)})),D.status){case"fulfilled":return D.value;case"rejected":throw D.reason}}throw D}function R(D,ne,Ce,Se,at){var Pn=typeof D;(Pn==="undefined"||Pn==="boolean")&&(D=null);var It=!1;if(D===null)It=!0;else switch(Pn){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),ne,Ce,Se,at)}}if(It){It=D,at=at(It);var dn=Se===""?"."+_(It,0):Se;return _e(at)?(Ce="",dn!=null&&(Ce=dn.replace(Ii,"$&/")+"/"),R(at,ne,Ce,"",function(ra){return ra})):at!=null&&(S(at)&&(at.key!=null&&(It&&It.key===at.key||c(at.key)),Ce=y(at,Ce+(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&&(Ce._store.validated=2),at=Ce),ne.push(at)),1}if(It=0,dn=Se===""?".":Se+":",_e(D))for(var _t=0;_t import('./MyComponent')) @@ -977,24 +977,24 @@ Your code should look like: 1. You might have mismatching versions of React and the renderer (such as React DOM) 2. You might be breaking the Rules of Hooks 3. You might have more than one copy of React in the same app -See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`),D}function P(){Ue.asyncTransitions--}function N(D){if(Rr===null)try{var ne=("require"+Math.random()).slice(0,7);Rr=(l6&&l6[ne]).call(l6,"timers").setImmediate}catch{Rr=function(Se){ly===!1&&(ly=!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(Hl){if(L(ne,Ce),Ce===0){try{W(Se),N(function(){return G(Hl,_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?dr(l(D)):lE)},en.createRef=function(){var D={current:null};return Object.seal(D),D},en.forwardRef=function(D){D!=null&&D.$$typeof===K?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 ne={$$typeof:M,render:D},Ce;return Object.defineProperty(ne,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ce},set:function(Se){Ce=Se,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Se}),D.displayName=Se)}}),ne},en.isValidElement=S,en.lazy=function(D){D={_status:-1,_result:D};var ne={$$typeof:ee,_payload:D,_init:x},Ce={name:"lazy",start:-1,end:-1,value:null,owner:null,debugStack:Error("react-stack-top-frame"),debugTask:console.createTask?console.createTask("lazy()"):null};return D._ioInfo=Ce,ne._debugInfo=[{awaited:Ce}],ne},en.memo=function(D,ne){D==null&&console.error("memo: The first argument must be a component. Instead received: %s",D===null?"null":typeof D),ne={$$typeof:K,type:D,compare:ne===void 0?null:ne};var Ce;return Object.defineProperty(ne,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ce},set:function(Se){Ce=Se,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Se}),D.displayName=Se)}}),ne},en.startTransition=function(D){var ne=Ue.T,Ce={};Ce._updatedFibers=new Set,Ue.T=Ce;try{var Se=D(),at=Ue.S;at!==null&&at(Ce,Se),typeof Se=="object"&&Se!==null&&typeof Se.then=="function"&&(Ue.asyncTransitions++,Se.then(P,P),Se.then(o,_p))}catch(Pn){_p(Pn)}finally{ne===null&&Ce._updatedFibers&&(D=Ce._updatedFibers.size,Ce._updatedFibers.clear(),10{"use strict";process.env.NODE_ENV==="production"?zbe.exports=UTt():zbe.exports=FTt()});var f5n,HTt=v(()=>{f5n=Re(jTt(),1)});var qTt=v(()=>{});var BTt=v(()=>{});var zTt=v(()=>{});var GTt=v(()=>{wTt();HTt();qTt();BTt();zTt()});var VTt=v(()=>{});function KTt(e){return e==="user"?"spec gate":e==="cross-stage-consistency"?"cross-stage review":`${e} review`}function YTt(e){return e==="user"?"approval gate":e==="quality_gates"?"quality gates":e==="cross-stage-consistency"?"cross-stage approval":`${e} approval`}function d6(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 Gbe(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}),d6(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):YTt(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)S5n.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 S5n,ZTt=v(()=>{S5n=new Set(["spec","quality_gates","user"])});var JTt=v(()=>{GTt();zye();VTt();xD();ZTt()});import{existsSync as XTt}from"node:fs";import{join as Mv}from"node:path";function Wbe(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&&!Vbe.has(t)}function f6(e,t){if(!e)return-1;let n=e.kind,r=e.role,i=e.gate_kind,s=Wbe(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 b5n(e){let t=e.reviews;return t&&typeof t=="object"?t:{}}function $Tt(e){let t=e.approvals;return t&&typeof t=="object"?t:{}}function E5n(e){return Array.isArray(e.iterations)?e.iterations:[]}function Kbe(e){let{slug:t,studio:n,stage:r,stageDir:i,mode:s,groupAdversarial:o=!0}=e,c=dv(i).map(y=>({name:zY(y),fm:Qc(y)?.data??{}})).filter(y=>y.fm),u=c.map(y=>y.name),l=Es(n,r),{reviewRoles:d,approvalRoles:f}=VY(n,r,s),p=M0({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"?b5n(S.fm):$Tt(S.fm))[b]),m=c.length>0&&(l.length===0||c.every(y=>{let b=E5n(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=lv(Mv(i,"..",".."))?XTt(Mv(i,"observations.md")):null;return Gbe({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 evt(e){let{intentDir:t,mode:n,groupAdversarial:r=!0}=e,i=[],s=Qc(Mv(t,"intent.md"))?.data??{},o=$Tt(s),a=s.studio||"",c=a?Object.keys(yg(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 GY(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}),lv(t)&&i.push({key:"reflection",label:"reflection",done:XTt(Mv(t,"reflection.md"))}),i.push({key:"seal",label:"seal",done:s.sealed_at!=null}),d6(i)}function p6(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:ai(t,n,r),a=o?Kbe({slug:t,studio:n,stage:o,stageDir:Mv(r,"stages",o),mode:i}):evt({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 tvt(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:ai(t,n,r);return o?Kbe({slug:t,studio:n,stage:o,stageDir:Mv(r,"stages",o),mode:i,groupAdversarial:!1}):evt({intentDir:r,mode:i,groupAdversarial:!1})}function nvt(e){return Kbe({slug:e.slug,studio:e.studio,stage:e.stage,stageDir:Mv(e.intentDir,"stages",e.stage),mode:e.mode})}var Vbe,QTt,Ybe=v(()=>{"use strict";JTt();Kn();ns();Oa();Vbe=new Set(["spec","quality_gates","user"]),QTt=e=>e.includes(":")?e.slice(e.indexOf(":")+1):e});import{existsSync as q1,readFileSync as B1}from"node:fs";import{join as z1}from"node:path";function _5n(e){return e.split(/[-_]/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function ivt(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 T5n(e){return e.map(t=>({...t,frontmatter:ivt(t.frontmatter)??t.frontmatter}))}function Zbe(e){if(!e)return{};let t=z1(ce(e),"intent.md");if(!q1(t))return{};try{return re(B1(t,"utf8")).data}catch{return{}}}function R5n(e){let t=`${e.slug}::${e.stage}`,n=Date.now(),r=rvt.get(t);if(r&&n-r.atd.trim()),o=i.some(d=>d==="external")&&i.length===1,a=t?.stage||e.stage||"",c=a?_5n(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=Zbe(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(yg(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 svt(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:ivt(o.frontmatter)}}if(n.parsedUnits&&(r.units=T5n(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?_Tt(n.intent_slug):null;if(i&&(r.current_state=i,n.intent_slug&&i.studio))try{let o=Zbe(n.intent_slug),a=typeof o?.mode=="string"?o.mode:"",c=p6({slug:n.intent_slug,studio:i.studio,intentDir:ce(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:ce(n.intent_slug),studio:i.studio}),d=f6(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?Zbe(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=ce(o),p={},h={},m={},g={},y={};for(let b of d){try{let _=nvt({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 _=z1(f,"stages",b,"BRIEF.md");if(q1(_)){let T=B1(_,"utf8").trim();T&&(m[b]=T)}}catch{}try{let _=z1(f,"stages",b,"observations.md");if(q1(_)){let T=B1(_,"utf8").trim();T&&(g[b]=T)}}catch{}try{let _=z1(f,"stages",b,"elaboration.md");if(q1(_)){let T=B1(_,"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=z1(f,"reflection.md");if(q1(b)){let S=B1(b,"utf8").trim();S&&(r.reflection=S)}}catch{}}catch{}}let s=n.intent_slug;if(s&&i?.stage&&i.studio)try{let o=R5n({slug:s,stage:i.stage,studio:i.studio,intentDir:ce(s)});o.length>0&&(r.drift=o.map(a=>({path:a.file,stage:a.unit==="(intent)"?"":i.stage,intent:s,action:"modified",age:a.since,kind:a.kind,unit:a.unit,role:a.role})))}catch{}if(n.intent_slug){let o=RTt(n.intent_slug);o&&(r.discovered_review_url=o)}n.knowledgeFiles&&(r.knowledge_files=n.knowledgeFiles),n.stageArtifacts&&(r.stage_artifacts=n.stageArtifacts),n.outputArtifacts&&(r.output_artifacts=n.outputArtifacts),n.otherFiles&&(r.other_files=n.otherFiles),n.intentOtherFiles&&(r.intent_other_files=n.intentOtherFiles),n.unitOutputs&&(r.unit_outputs=n.unitOutputs),n.outputDeclaredBy&&(r.output_declared_by=n.outputDeclaredBy),n.previousReview&&(r.previous_review=n.previousReview),n.ad_hoc&&(r.ad_hoc=!0),n.stage&&(r.stage=n.stage),n.gate_context&&(r.gate_context=n.gate_context),n.next_stage!==void 0&&(r.next_stage=n.next_stage),n.next_phase!==void 0&&(r.next_phase=n.next_phase),r.await_active=n.await_active===!0,r.await_count=n.await_count??0,n.pending_decision&&(r.pending_decision=n.pending_decision),n.last_await_started_at&&(r.last_await_started_at=n.last_await_started_at),n.last_await_ended_at&&(r.last_await_ended_at=n.last_await_ended_at),r.approve_action=A5n(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 rvt,v5n,ovt=v(()=>{"use strict";TTt();ATt();ns();Oa();bye();Ybe();$c();ze();Kn();rvt=new Map,v5n=2e3});import{appendFileSync as w5n}from"node:fs";function Vb(e){try{w5n(k5n,`${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 ne=("require"+Math.random()).slice(0,7);Rr=(l6&&l6[ne]).call(l6,"timers").setImmediate}catch{Rr=function(Se){ly===!1&&(ly=!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(Hl){if(L(ne,Ce),Ce===0){try{W(Se),N(function(){return G(Hl,_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?dr(l(D)):lE)},en.createRef=function(){var D={current:null};return Object.seal(D),D},en.forwardRef=function(D){D!=null&&D.$$typeof===K?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 ne={$$typeof:M,render:D},Ce;return Object.defineProperty(ne,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ce},set:function(Se){Ce=Se,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Se}),D.displayName=Se)}}),ne},en.isValidElement=S,en.lazy=function(D){D={_status:-1,_result:D};var ne={$$typeof:ee,_payload:D,_init:x},Ce={name:"lazy",start:-1,end:-1,value:null,owner:null,debugStack:Error("react-stack-top-frame"),debugTask:console.createTask?console.createTask("lazy()"):null};return D._ioInfo=Ce,ne._debugInfo=[{awaited:Ce}],ne},en.memo=function(D,ne){D==null&&console.error("memo: The first argument must be a component. Instead received: %s",D===null?"null":typeof D),ne={$$typeof:K,type:D,compare:ne===void 0?null:ne};var Ce;return Object.defineProperty(ne,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ce},set:function(Se){Ce=Se,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Se}),D.displayName=Se)}}),ne},en.startTransition=function(D){var ne=Ue.T,Ce={};Ce._updatedFibers=new Set,Ue.T=Ce;try{var Se=D(),at=Ue.S;at!==null&&at(Ce,Se),typeof Se=="object"&&Se!==null&&typeof Se.then=="function"&&(Ue.asyncTransitions++,Se.then(P,P),Se.then(o,_p))}catch(Pn){_p(Pn)}finally{ne===null&&Ce._updatedFibers&&(D=Ce._updatedFibers.size,Ce._updatedFibers.clear(),10{"use strict";process.env.NODE_ENV==="production"?Vbe.exports=FTt():Vbe.exports=jTt()});var p5n,qTt=v(()=>{p5n=Re(HTt(),1)});var BTt=v(()=>{});var zTt=v(()=>{});var GTt=v(()=>{});var VTt=v(()=>{kTt();qTt();BTt();zTt();GTt()});var WTt=v(()=>{});function YTt(e){return e==="user"?"spec gate":e==="cross-stage-consistency"?"cross-stage review":`${e} review`}function ZTt(e){return e==="user"?"approval gate":e==="quality_gates"?"quality gates":e==="cross-stage-consistency"?"cross-stage approval":`${e} approval`}function d6(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 Wbe(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(...KTt(n,"review",t,o)),a.push({key:"execute",label:"execute",done:r}),a.push(...KTt(i,"approve",r,o)),s!=null&&a.push({key:"observations",label:"observations",done:s}),d6(a)}function KTt(e,t,n,r=!0){let i=[],s=[],o=0,a=t==="review"?"adversarial review":"adversarial approval",c=l=>t==="review"?YTt(l):ZTt(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)b5n.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 b5n,JTt=v(()=>{b5n=new Set(["spec","quality_gates","user"])});var XTt=v(()=>{VTt();Vye();WTt();xD();JTt()});import{existsSync as QTt}from"node:fs";import{join as Mv}from"node:path";function Ybe(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&&!Kbe.has(t)}function f6(e,t){if(!e)return-1;let n=e.kind,r=e.role,i=e.gate_kind,s=Ybe(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 E5n(e){let t=e.reviews;return t&&typeof t=="object"?t:{}}function evt(e){let t=e.approvals;return t&&typeof t=="object"?t:{}}function _5n(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=dv(i).map(y=>({name:zY(y),fm:Qc(y)?.data??{}})).filter(y=>y.fm),u=c.map(y=>y.name),l=Es(n,r),{reviewRoles:d,approvalRoles:f}=VY(n,r,s),p=M0({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"?E5n(S.fm):evt(S.fm))[b]),m=c.length>0&&(l.length===0||c.every(y=>{let b=_5n(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=lv(Mv(i,"..",".."))?QTt(Mv(i,"observations.md")):null;return Wbe({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 tvt(e){let{intentDir:t,mode:n,groupAdversarial:r=!0}=e,i=[],s=Qc(Mv(t,"intent.md"))?.data??{},o=evt(s),a=s.studio||"",c=a?Object.keys(yg(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 GY(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}),lv(t)&&i.push({key:"reflection",label:"reflection",done:QTt(Mv(t,"reflection.md"))}),i.push({key:"seal",label:"seal",done:s.sealed_at!=null}),d6(i)}function p6(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:Mv(r,"stages",o),mode:i}):tvt({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 nvt(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:Mv(r,"stages",o),mode:i,groupAdversarial:!1}):tvt({intentDir:r,mode:i,groupAdversarial:!1})}function rvt(e){return Zbe({slug:e.slug,studio:e.studio,stage:e.stage,stageDir:Mv(e.intentDir,"stages",e.stage),mode:e.mode})}var Kbe,$Tt,Jbe=v(()=>{"use strict";XTt();Kn();ji();Oa();Kbe=new Set(["spec","quality_gates","user"]),$Tt=e=>e.includes(":")?e.slice(e.indexOf(":")+1):e});import{existsSync as q1,readFileSync as B1}from"node:fs";import{join as z1}from"node:path";function T5n(e){return e.split(/[-_]/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function svt(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 v5n(e){return e.map(t=>({...t,frontmatter:svt(t.frontmatter)??t.frontmatter}))}function Xbe(e){if(!e)return{};let t=z1(ce(e),"intent.md");if(!q1(t))return{};try{return re(B1(t,"utf8")).data}catch{return{}}}function A5n(e){let t=`${e.slug}::${e.stage}`,n=Date.now(),r=ivt.get(t);if(r&&n-r.atd.trim()),o=i.some(d=>d==="external")&&i.length===1,a=t?.stage||e.stage||"",c=a?T5n(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=Xbe(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(yg(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 ovt(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:svt(o.frontmatter)}}if(n.parsedUnits&&(r.units=v5n(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?TTt(n.intent_slug):null;if(i&&(r.current_state=i,n.intent_slug&&i.studio))try{let o=Xbe(n.intent_slug),a=typeof o?.mode=="string"?o.mode:"",c=p6({slug:n.intent_slug,studio:i.studio,intentDir:ce(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:ce(n.intent_slug),studio:i.studio}),d=f6(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?Xbe(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=ce(o),p={},h={},m={},g={},y={};for(let b of d){try{let _=rvt({slug:o,studio:c,intentDir:f,stage:b,mode:u});_.length>0&&(p[b]=_)}catch{}let E=es(c,b)?.data?.description;typeof E=="string"&&E.trim()&&(h[b]=E.trim());try{let _=z1(f,"stages",b,"BRIEF.md");if(q1(_)){let T=B1(_,"utf8").trim();T&&(m[b]=T)}}catch{}try{let _=z1(f,"stages",b,"observations.md");if(q1(_)){let T=B1(_,"utf8").trim();T&&(g[b]=T)}}catch{}try{let _=z1(f,"stages",b,"elaboration.md");if(q1(_)){let T=B1(_,"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=z1(f,"reflection.md");if(q1(b)){let S=B1(b,"utf8").trim();S&&(r.reflection=S)}}catch{}}catch{}}let s=n.intent_slug;if(s&&i?.stage&&i.studio)try{let o=A5n({slug:s,stage:i.stage,studio:i.studio,intentDir:ce(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=ATt(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=w5n(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 ivt,R5n,avt=v(()=>{"use strict";vTt();wTt();ji();Oa();_ye();Jbe();$c();ze();Kn();ivt=new Map,R5n=2e3});import{appendFileSync as k5n}from"node:fs";function Vb(e){try{k5n(I5n,`${new Date().toISOString()} ${e} `)}catch{}process.stderr.write(`[haiku-mcp] ${e} -`)}function uvt(e){let t=Date.now(),n=t-1e3,i=(Jbe.get(e)??[]).filter(s=>s>n);return i.length>=I5n?(Jbe.set(e,i),!1):(i.push(t),Jbe.set(e,i),!0)}function em(e,t){let n=Yu.get(e);if(!(!n||n.readyState!==n.OPEN))try{n.send(JSON.stringify(t))}catch{}}function Dv(e,t){Vb(`closeSessionConnection(${e}) invoked [build:fastify] reason=${t??"null"}`),mx(e);let n=Yu.get(e);if(!n){Vb(`closeSessionConnection(${e}): NO socket registered \u2014 SPA has no active WS`);return}try{n.send(JSON.stringify({type:"session-ended",reason:t??null})),Vb(`closeSessionConnection(${e}): hint frame queued`)}catch(r){Vb(`closeSessionConnection(${e}): hint write threw ${r instanceof Error?r.message:String(r)}`)}try{n.close(4001,t??"session ended"),Vb(`closeSessionConnection(${e}): close frame sent`)}catch{}Yu.delete(e)}function lvt(e,t){let n;try{n=JSON.parse(t)}catch{em(e,{type:"error",error:"invalid_json"});return}let r=Iut.safeParse(n);if(!r.success){em(e,{type:"error",error:"invalid_ws_frame"});return}let i=r.data,s=$t(e);if(s){if(i.type==="heartbeat"){QL(e),em(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&&Kd(s.intent_slug,{type:"pending_decision_changed",session_id:e,queued:!0}),em(e,{type:"ack",ok:!0,decision:o,feedback:a})}else if(s.session_type==="question"&&i.type==="answer"){let o=i.annotations;n1(e,{status:"answered",answers:i.answers,feedback:i.feedback??"",annotations:o}),em(e,{type:"ack",ok:!0})}else if(s.session_type==="design_direction"&&i.type==="select"){if(s.status==="answered"){em(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}:{}};r1(e,{status:"answered",selection:o}),em(e,{type:"ack",ok:!0})}}}var k5n,Yu,Jbe,avt,I5n,cvt,G1,h6=v(()=>{"use strict";vT();hx();H1();$c();k5n="/tmp/haiku-session-cancel.log";Yu=new Map,Jbe=new WeakMap,avt=20,I5n=(()=>{let e=process.env.HAIKU_WS_RATE_LIMIT;if(e===void 0)return avt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?avt:Math.max(t,1)})();cvt=128,G1=(()=>{let e=process.env.HAIKU_MAX_WS_SESSIONS;if(e===void 0)return cvt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?cvt:Math.max(t,1)})()});import{existsSync as dvt,readdirSync as x5n,readFileSync as fvt}from"node:fs";import{join as Qbe}from"node:path";function pvt(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(Wd)}),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(Wd)}),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(Wd)}),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(Wd)}),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=Gb(n,t.body,bfe);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),Dv(t.params.sessionId,"ad-hoc review closed"),Bi()&&(mbe(t.params.sessionId),pbe()),q0(t.params.sessionId);return}Ml(t.params.sessionId,{pending_decision:{decision:s,feedback:o,annotations:a,submitted_at:new Date().toISOString()}}),r.intent_slug&&Kd(r.intent_slug,{type:"pending_decision_changed",session_id:t.params.sessionId,queued:!0}),n.send(c),mx(t.params.sessionId)}),e.post("/question/:sessionId/answer",{bodyLimit:lfe},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=Gb(n,t.body,Sfe);if(!i.ok)return;n1(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:lfe},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=Gb(n,t.body,dfe);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?Xbe(c):"";if(c&&u){let l=i.data.annotations?.screenshots??[],d=!1;if(l.length>0)try{gSe({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=Y0(c,u),p=qb(f);p.design_direction_selected=!0,p.design_direction_selected_at=mn(),p.design_direction={archetype:i.data.archetype,...i.data.comments?{comments:i.data.comments}:{}},delete p.design_direction_surfaced,S1(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?Xbe(c):"";if(c&&u)try{let{uploads:l}=ySe({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}}r1(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(Wd)}),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(()=>($c(),Dye));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(),Dye));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)&&svt(n,t.params.sessionId)}),e.head("/api/session/:sessionId/heartbeat",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=QL(t.params.sessionId);n.status(r?200:404).send()}),e.post("/api/advance/:sessionId",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){ta({reqId:t.id,action:"advance",status:404,detail:`session=${t.params.sessionId} not_found_or_wrong_type`}),n.status(404).send("Session not found");return}if(!r.intent_slug){ta({reqId:t.id,action:"advance",status:409,detail:`session=${t.params.sessionId} no_intent_context`}),n.status(409).send({error:"Session has no intent context"});return}let i=r.intent_slug,s=Xbe(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{O5n(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&&Kd(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 Xbe(e){let t=Qbe(ce(e),"intent.md");if(!dvt(t))return"";try{let{data:n}=re(fvt(t,"utf8"));return n.active_stage||""}catch{return""}}function O5n(e,t){let n=ce(e),r=Qbe(n,"stages",t,"units");if(!dvt(r))return;let i=x5n(r).filter(s=>s.endsWith(".md"));for(let s of i){let o=Qbe(r,s);try{let{data:a}=re(fvt(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=zd(n,c),f=!0),d&&Ne(o,"reviews",u),f&&Ne(o,"approvals",l)}catch{}}}var hvt=v(()=>{"use strict";vT();JZ();hx();H1();Xf();$c();ze();Qh();Tbe();qg();ovt();Pv();h6()});var $be=w((dSi,mvt)=>{"use strict";var{EventEmitter:P5n}=Y("node:events"),{inherits:N5n}=Y("node:util");function Lv(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};Lv.prototype._sbmh_lookup_char=function(e,t){return t<0?this._lookbehind[this._lookbehind_size+t]:e[t]};Lv.prototype._sbmh_memcmp=function(e,t,n){for(var r=0;r{"use strict";var C5n=Y("node:util").inherits,gvt=Y("node:stream").Readable;function eEe(e){gvt.call(this,e)}C5n(eEe,gvt);eEe.prototype._read=function(e){};yvt.exports=eEe});var m6=w((pSi,bvt)=>{"use strict";bvt.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 vvt=w((hSi,Tvt)=>{"use strict";var _vt=Y("node:events").EventEmitter,M5n=Y("node:util").inherits,Evt=m6(),D5n=$be(),L5n=Buffer.from(`\r +`)}function lvt(e){let t=Date.now(),n=t-1e3,i=(Qbe.get(e)??[]).filter(s=>s>n);return i.length>=x5n?(Qbe.set(e,i),!1):(i.push(t),Qbe.set(e,i),!0)}function em(e,t){let n=Yu.get(e);if(!(!n||n.readyState!==n.OPEN))try{n.send(JSON.stringify(t))}catch{}}function Dv(e,t){Vb(`closeSessionConnection(${e}) invoked [build:fastify] reason=${t??"null"}`),mx(e);let n=Yu.get(e);if(!n){Vb(`closeSessionConnection(${e}): NO socket registered \u2014 SPA has no active WS`);return}try{n.send(JSON.stringify({type:"session-ended",reason:t??null})),Vb(`closeSessionConnection(${e}): hint frame queued`)}catch(r){Vb(`closeSessionConnection(${e}): hint write threw ${r instanceof Error?r.message:String(r)}`)}try{n.close(4001,t??"session ended"),Vb(`closeSessionConnection(${e}): close frame sent`)}catch{}Yu.delete(e)}function dvt(e,t){let n;try{n=JSON.parse(t)}catch{em(e,{type:"error",error:"invalid_json"});return}let r=Out.safeParse(n);if(!r.success){em(e,{type:"error",error:"invalid_ws_frame"});return}let i=r.data,s=$t(e);if(s){if(i.type==="heartbeat"){QL(e),em(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&&Kd(s.intent_slug,{type:"pending_decision_changed",session_id:e,queued:!0}),em(e,{type:"ack",ok:!0,decision:o,feedback:a})}else if(s.session_type==="question"&&i.type==="answer"){let o=i.annotations;n1(e,{status:"answered",answers:i.answers,feedback:i.feedback??"",annotations:o}),em(e,{type:"ack",ok:!0})}else if(s.session_type==="design_direction"&&i.type==="select"){if(s.status==="answered"){em(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}:{}};r1(e,{status:"answered",selection:o}),em(e,{type:"ack",ok:!0})}}}var I5n,Yu,Qbe,cvt,x5n,uvt,G1,h6=v(()=>{"use strict";vT();hx();H1();$c();I5n="/tmp/haiku-session-cancel.log";Yu=new Map,Qbe=new WeakMap,cvt=20,x5n=(()=>{let e=process.env.HAIKU_WS_RATE_LIMIT;if(e===void 0)return cvt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?cvt:Math.max(t,1)})();uvt=128,G1=(()=>{let e=process.env.HAIKU_MAX_WS_SESSIONS;if(e===void 0)return uvt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?uvt:Math.max(t,1)})()});import{existsSync as fvt,readdirSync as O5n,readFileSync as pvt}from"node:fs";import{join as eEe}from"node:path";function hvt(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(Wd)}),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(Wd)}),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(Wd)}),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(Wd)}),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=Gb(n,t.body,bfe);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),Dv(t.params.sessionId,"ad-hoc review closed"),zi()&&(ybe(t.params.sessionId),mbe()),q0(t.params.sessionId);return}Ml(t.params.sessionId,{pending_decision:{decision:s,feedback:o,annotations:a,submitted_at:new Date().toISOString()}}),r.intent_slug&&Kd(r.intent_slug,{type:"pending_decision_changed",session_id:t.params.sessionId,queued:!0}),n.send(c),mx(t.params.sessionId)}),e.post("/question/:sessionId/answer",{bodyLimit:lfe},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=Gb(n,t.body,Sfe);if(!i.ok)return;n1(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:lfe},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=Gb(n,t.body,dfe);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?$be(c):"";if(c&&u){let l=i.data.annotations?.screenshots??[],d=!1;if(l.length>0)try{SSe({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=Y0(c,u),p=qb(f);p.design_direction_selected=!0,p.design_direction_selected_at=mn(),p.design_direction={archetype:i.data.archetype,...i.data.comments?{comments:i.data.comments}:{}},delete p.design_direction_surfaced,S1(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?$be(c):"";if(c&&u)try{let{uploads:l}=bSe({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}}r1(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(Wd)}),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(()=>($c(),Uye));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(),Uye));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)&&ovt(n,t.params.sessionId)}),e.head("/api/session/:sessionId/heartbeat",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=QL(t.params.sessionId);n.status(r?200:404).send()}),e.post("/api/advance/:sessionId",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){ta({reqId:t.id,action:"advance",status:404,detail:`session=${t.params.sessionId} not_found_or_wrong_type`}),n.status(404).send("Session not found");return}if(!r.intent_slug){ta({reqId:t.id,action:"advance",status:409,detail:`session=${t.params.sessionId} no_intent_context`}),n.status(409).send({error:"Session has no intent context"});return}let i=r.intent_slug,s=$be(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{P5n(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&&Kd(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 $be(e){let t=eEe(ce(e),"intent.md");if(!fvt(t))return"";try{let{data:n}=re(pvt(t,"utf8"));return n.active_stage||""}catch{return""}}function P5n(e,t){let n=ce(e),r=eEe(n,"stages",t,"units");if(!fvt(r))return;let i=O5n(r).filter(s=>s.endsWith(".md"));for(let s of i){let o=eEe(r,s);try{let{data:a}=re(pvt(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=zd(n,c),f=!0),d&&Ne(o,"reviews",u),f&&Ne(o,"approvals",l)}catch{}}}var mvt=v(()=>{"use strict";vT();JZ();hx();H1();Xf();$c();ze();Qh();Rbe();qg();avt();Pv();h6()});var tEe=w((fSi,gvt)=>{"use strict";var{EventEmitter:N5n}=Y("node:events"),{inherits:C5n}=Y("node:util");function Lv(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};Lv.prototype._sbmh_lookup_char=function(e,t){return t<0?this._lookbehind[this._lookbehind_size+t]:e[t]};Lv.prototype._sbmh_memcmp=function(e,t,n){for(var r=0;r{"use strict";var M5n=Y("node:util").inherits,yvt=Y("node:stream").Readable;function nEe(e){yvt.call(this,e)}M5n(nEe,yvt);nEe.prototype._read=function(e){};Svt.exports=nEe});var m6=w((hSi,Evt)=>{"use strict";Evt.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((mSi,vvt)=>{"use strict";var Tvt=Y("node:events").EventEmitter,D5n=Y("node:util").inherits,_vt=m6(),L5n=tEe(),U5n=Buffer.from(`\r \r -`),U5n=/\r\n/g,F5n=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function Sx(e){_vt.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 D5n(L5n),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()})}M5n(Sx,_vt);Sx.prototype.push=function(e){let t=this.ss.push(e);if(this.finished)return t};Sx.prototype.reset=function(){this.finished=!1,this.buffer="",this.header={},this.ss.reset()};Sx.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)};Sx.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs)return;let e=this.buffer.split(U5n),t=e.length,n,r;for(var i=0;i{"use strict";var tEe=Y("node:stream").Writable,j5n=Y("node:util").inherits,H5n=$be(),Rvt=Svt(),q5n=vvt(),B5n=45,z5n=Buffer.from("-"),G5n=Buffer.from(`\r -`),V5n=function(){};function sp(e){if(!(this instanceof sp))return new sp(e);if(tEe.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 q5n(e),this._hparser.on("header",function(n){t._inHeader=!1,t._part.emit("header",n)})}j5n(sp,tEe);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 tEe.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 Rvt(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 wvt=new TextDecoder("utf-8"),kvt=new Map([["utf-8",wvt],["utf8",wvt]]);function W5n(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return V1.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 V1.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return V1.utf16le;case"base64":return V1.base64;default:if(t===void 0){t=!0,e=e.toLowerCase();continue}return V1.other.bind(e)}}var V1={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)),kvt.has(rEe.toString()))try{return kvt.get(rEe).decode(e)}catch{}return typeof e=="string"?e:e.toString()}};function K5n(e,t,n){return e&&W5n(n)(e,t)}Ivt.exports=K5n});var sEe=w((gSi,Cvt)=>{"use strict";var y6=g6(),xvt=/%[a-fA-F0-9][a-fA-F0-9]/g,Y5n={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"\x07","%08":"\b","%09":" ","%0a":` +`),F5n=/\r\n/g,j5n=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function Sx(e){Tvt.call(this),e=e||{};let t=this;this.nread=0,this.maxed=!1,this.npairs=0,this.maxHeaderPairs=_vt(e,"maxHeaderPairs",2e3),this.maxHeaderSize=_vt(e,"maxHeaderSize",80*1024),this.buffer="",this.header={},this.finished=!1,this.ss=new L5n(U5n),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()})}D5n(Sx,Tvt);Sx.prototype.push=function(e){let t=this.ss.push(e);if(this.finished)return t};Sx.prototype.reset=function(){this.finished=!1,this.buffer="",this.header={},this.ss.reset()};Sx.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)};Sx.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs)return;let e=this.buffer.split(F5n),t=e.length,n,r;for(var i=0;i{"use strict";var rEe=Y("node:stream").Writable,H5n=Y("node:util").inherits,q5n=tEe(),Avt=bvt(),B5n=Rvt(),z5n=45,G5n=Buffer.from("-"),V5n=Buffer.from(`\r +`),W5n=function(){};function sp(e){if(!(this instanceof sp))return new sp(e);if(rEe.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 B5n(e),this._hparser.on("header",function(n){t._inHeader=!1,t._part.emit("header",n)})}H5n(sp,rEe);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 rEe.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 Avt(this._partOpts),this.listenerCount("preamble")!==0?this.emit("preamble",this._part):this._ignore());let r=this._hparser.push(e);if(!this._inHeader&&r!==void 0&&r{"use strict";var kvt=new TextDecoder("utf-8"),Ivt=new Map([["utf-8",kvt],["utf8",kvt]]);function K5n(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return V1.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 V1.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return V1.utf16le;case"base64":return V1.base64;default:if(t===void 0){t=!0,e=e.toLowerCase();continue}return V1.other.bind(e)}}var V1={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)),Ivt.has(sEe.toString()))try{return Ivt.get(sEe).decode(e)}catch{}return typeof e=="string"?e:e.toString()}};function Y5n(e,t,n){return e&&K5n(n)(e,t)}xvt.exports=Y5n});var aEe=w((ySi,Mvt)=>{"use strict";var y6=g6(),Ovt=/%[a-fA-F0-9][a-fA-F0-9]/g,Z5n={"%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 Ovt(e){return Y5n[e]}var S6=0,Pvt=1,iEe=2,Nvt=3;function Z5n(e){let t=[],n=S6,r="",i=!1,s=!1,o=0,a="",c=e.length;for(var u=0;u{"use strict";Mvt.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 jvt=w((SSi,Fvt)=>{"use strict";var{Readable:Uvt}=Y("node:stream"),{inherits:J5n}=Y("node:util"),X5n=nEe(),Lvt=sEe(),Q5n=g6(),$5n=Dvt(),Uv=m6(),e8n=/^boundary$/i,t8n=/^form-data$/i,n8n=/^charset$/i,r8n=/^filename$/i,i8n=/^name$/i;b6.detect=/^multipart\/form-data/i;function b6(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",bx),e.hitPartsLimit=!0,e.emit("partsLimit"),bx(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=Lvt(C["content-type"][0]),W[0])){for(L=W[0].toLowerCase(),n=0,r=W.length;nh){let j=h-B+M.length;j>0&&U.push(M.slice(0,j)),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")),bx(N);++_,++T;let U="",M=!1;A=N,F=function(j){if((B+=j.length)>p){let H=p-(B-j.length);U+=j.toString("binary",0,H),M=!0,N.removeAllListeners("data")}else U+=j.toString("binary")},V=function(){A=void 0,U.length&&(U=Q5n(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()})}b6.prototype.write=function(e,t){let n=this.parser.write(e);n&&!this._pause?t():(this._needDrain=!n,this._cb=t)};b6.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 bx(e){e.resume()}function oEe(e){Uvt.call(this,e),this.bytesRead=0,this.truncated=!1}J5n(oEe,Uvt);oEe.prototype._read=function(e){};Fvt.exports=b6});var qvt=w((bSi,Hvt)=>{"use strict";var s8n=/\+/g,o8n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 aEe(){this.buffer=void 0}aEe.prototype.write=function(e){e=e.replace(s8n," ");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 a8n=qvt(),Ex=g6(),cEe=m6(),c8n=/^charset$/i;E6.detect=/^application\/x-www-form-urlencoded/i;function E6(e,t){let n=t.limits,r=t.parsedConType;this.boy=e,this.fieldSizeLimit=cEe(n,"fieldSize",1*1024*1024),this.fieldNameSizeLimit=cEe(n,"fieldNameSize",100),this.fieldsLimit=cEe(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",Ex(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",Ex(this._key,"binary",this.charset),Ex(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",Ex(this._key,"binary",this.charset),"",this._keyTrunc,!1):this._state==="val"&&this.boy.emit("field",Ex(this._key,"binary",this.charset),Ex(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this.boy._done=!0,this.boy.emit("finish"))};Bvt.exports=E6});var Wvt=w((_Si,W1)=>{"use strict";var uEe=Y("node:stream").Writable,{inherits:u8n}=Y("node:util"),l8n=nEe(),Gvt=jvt(),Vvt=zvt(),d8n=sEe();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},uEe.call(this,this.opts),this._done=!1,this._parser=this.getParserByHeaders(t),this._finished=!1}u8n(Bg,uEe);Bg.prototype.emit=function(e){if(e==="finish"){if(this._done){if(this._finished)return}else{this._parser?.end();return}this._finished=!0}uEe.prototype.emit.apply(this,arguments)};Bg.prototype.getParserByHeaders=function(e){let t=d8n(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(Gvt.detect.test(t[0]))return new Gvt(this,n);if(Vvt.detect.test(t[0]))return new Vvt(this,n);throw new Error("Unsupported Content-Type.")};Bg.prototype._write=function(e,t,n){this._parser.write(e,n)};W1.exports=Bg;W1.exports.default=Bg;W1.exports.Busboy=Bg;W1.exports.Dicer=l8n});var Zvt=w((TSi,Yvt)=>{"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"],Fv=Math.random;function Kvt(){return zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]}Yvt.exports.generateId=(function(){let t=0,n=Kvt();return function(){return t===255?(n=Kvt())+zg[t=0]:n+zg[++t]}})()});var Xvt=w((vSi,Jvt)=>{"use strict";Jvt.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 eRt=w((RSi,K1)=>{"use strict";var Qvt=Object.getPrototypeOf({});function $vt(){return function(t){return typeof t=="object"&&t!==null&&!(t instanceof RegExp)&&!(t instanceof Date)}}function lEe(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 f8n=Wvt(),p8n=Y("node:os"),h8n=JC(),{createWriteStream:m8n}=Y("node:fs"),{unlink:g8n}=Y("node:fs/promises"),tRt=Y("node:path"),{generateId:y8n}=Zvt(),Gg=_W(),S8n=Xvt(),b8n=eRt()({all:!0}),{PassThrough:E8n,Readable:_8n}=Y("node:stream"),{pipeline:T8n}=Y("node:stream/promises"),v8n=Lue(),pEe=Symbol("multipart"),_6=Symbol("multipartHandler"),Y1=Symbol("savedRequestFilesResult"),nRt=Gg("FST_PARTS_LIMIT","reach parts limit",413),rRt=Gg("FST_FILES_LIMIT","reach files limit",413),iRt=Gg("FST_FIELDS_LIMIT","reach fields limit",413),dEe=Gg("FST_REQ_FILE_TOO_LARGE","request file too large",413),fEe=Gg("FST_PROTO_VIOLATION","prototype property is not allowed as field name",400),sRt=Gg("FST_INVALID_MULTIPART_CONTENT_TYPE","the request is not multipart",406),oRt=Gg("FST_INVALID_JSON_FIELD_ERROR","a request field is not a valid JSON as declared by its Content-Type",406),aRt=Gg("FST_FILE_BUFFER_NOT_FOUND","the file buffer was not found",500),R8n=Gg("FST_NO_FORM_DATA","FormData is not available",500);function A8n(e,t,n){e[pEe]=!0,n()}function w8n(e){try{return new f8n(e)}catch(t){let n=new E8n;return process.nextTick(function(){n.emit("error",t)}),n}}function hEe(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[pEe]}function o(p={}){if(!this.isMultipart())throw new sRt;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=b8n({headers:T.headers},t,p);this.log.trace({busboyOptions:R},"Providing options to busboy");let A=w8n(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 nRt;P(C),process.nextTick(()=>N(C))}),A.on("filesLimit",function(){let C=new rRt;P(C),process.nextTick(()=>N(C))}),A.on("fieldsLimit",function(){let C=new iRt;P(C),process.nextTick(()=>N(C))}),T.pipe(A);function x(C,L,G,W,$,q){if(C in Object.prototype){P(new fEe);return}if(q.startsWith("application/json")){if(W){P(new oRt);return}try{L=v8n.parse(L),q="application/json"}catch{P(new oRt);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){S8n(L).catch(()=>{}),P(new fEe);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 dEe,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 dEe;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[Y1])return this[Y1];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||p8n.tmpdir();this.tmpUploads=[];let y=0;for await(let b of h){if(m=b.fields,!b.file)continue;let S=tRt.join(g,y8n()+tRt.extname(b.filename||"file"+y++)),E=m8n(S);try{this.tmpUploads.push(S),await T8n(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[Y1]={files:this.savedRequestFiles,values:m},this[Y1]}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"}})}Z1.exports=h8n(hEe,{fastify:"5.x",name:"@fastify/multipart"});Z1.exports.default=hEe;Z1.exports.fastifyMultipart=hEe;Z1.exports.ajvFilePlugin=k8n});import{mkdirSync as I8n}from"node:fs";import{open as x8n}from"node:fs/promises";import{dirname as O8n,join as P8n}from"node:path";function Q1(e,t){let n=String(t).padStart(2,"0");return`HWM-${e}-${n}`}function lRt(e,t=200){return e.length<=t?e:`${e.slice(0,t)}...`}function X1(e){return Buffer.byteLength(e,"utf-8")}function mEe(e,t){if(X1(e)<=t)return e;let n="...[truncated]",r=X1(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 L8n(e){let t=(s,o)=>s==null?null:mEe(s,o),n={...e,path:mEe(e.path,C8n),claimed_author_id:t(e.claimed_author_id,uRt),human_author_id:t(e.human_author_id,uRt),rationale:t(e.rationale,N8n),dirs_created:(e.dirs_created??[]).slice(0,M8n).map(s=>mEe(s,D8n))},r=JSON.stringify(n),i=X1(r);return i>T6?{ok:!1,reason:"record_too_large",bytes:i,cap:T6}:{ok:!0,record:n,line:r}}function U8n(e){return P8n(e,"write-audit.jsonl")}async function F8n(e,t){let n=J1.get(e)??Promise.resolve(),r,i=new Promise(s=>{r=s});J1.set(e,n.then(()=>i));try{return await n,await t()}finally{r(),queueMicrotask(()=>{let s=J1.get(e);s!==void 0&&Promise.resolve(s).then(()=>{J1.get(e)===s&&J1.delete(e)})})}}async function dRt(e,t){try{I8n(O8n(e),{recursive:!0})}catch(n){return{ok:!1,reason:String(n)}}return F8n(e,async()=>{let n=null;try{return n=await x8n(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 $1(e,t){let n=L8n(t);if(!n.ok)return{ok:!1,reason:`${n.reason} (bytes=${n.bytes}, cap=${n.cap})`};let r=U8n(e);return dRt(r,n.line)}async function fRt(e,t){return X1(t)>T6?{ok:!1,reason:`record_too_large (bytes=${X1(t)}, cap=${T6})`}:dRt(e,t)}var T6,N8n,uRt,C8n,M8n,D8n,J1,v6=v(()=>{"use strict";T6=16*1024,N8n=4096,uRt=128,C8n=1024,M8n=16,D8n=512;J1=new Map});import{join as j8n}from"node:path";function gEe(e){return j8n(e,"action-log.jsonl")}async function jv(e,t,n){let r=gEe(e),i=JSON.stringify(n);return fRt(r,i)}var R6=v(()=>{"use strict";v6()});import{createHash as H8n}from"node:crypto";import{createWriteStream as q8n,existsSync as SEe,readFileSync as B8n,unlinkSync as _Rt}from"node:fs";import{join as eU,resolve as pRt}from"node:path";function z8n(e){return!(!e||e==="application/octet-stream")}function mRt(e){return typeof e!="string"?!1:EEe.test(e)}function G8n(e){let t=e.lastIndexOf(".");return t<0?"":e.slice(t).toLowerCase()}function V8n(e){if(!e)return"";let t=e.indexOf(";");return(t<0?e:e.slice(0,t)).trim().toLowerCase()}function gRt(e){return bEe.has(G8n(e))}function yEe(){let e=process.env.HAIKU_UPLOAD_MAX_BYTES,t;if(e===void 0)t=hRt;else{let n=Number.parseInt(e,10);t=!Number.isFinite(n)||n<=0?hRt:n}return t>A6?(Ke("haiku.upload.cap_clamped",{env_value:String(t),hard_cap:String(A6)}),A6):Math.min(t,A6)}function yRt(e,t){try{let n=eU(ce(e),"stages",t,"state.json");if(!SEe(n))return!1;let r=B8n(n,"utf-8"),s=JSON.parse(r).status;return s==="complete"||s==="sealed"}catch{return!1}}function SRt(e){return _1(ce(e))}function bRt(e){return E1(ce(e))}async function ERt(e,t,n){let r=eU(t,`.upload-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}.tmp`),i=H8n("sha256"),s=0,o=q8n(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{_Rt(r)}catch{}throw c}),{tmpPath:r,sha256:i.digest("hex"),bytes:s}}async function vRt(e){await e.register(async t=>{await t.register(TRt.default,{limits:{fileSize:yEe()+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(!yn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!cx(n,r,i))return;if(!Ua(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(SRt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(bRt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=yEe(),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(!mRt(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:EEe.source});return}let d=gRt(l.filename),f=gRt(a);if(d||f){r.status(415).send({error:"unsupported_media_type",code:"unsupported_media_type",message:`Files with extensions ${Array.from(bEe).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(bEe)});return}let p=V8n(l.mimetype);if(!z8n(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(!yn(o)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!$h(i,o)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(yRt(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=av(`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=ce(i),S=eU(b,g),E=S.substring(0,S.lastIndexOf("/")),_=pRt(S),T=pRt(eU(b,y));if(!_.startsWith(T)){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let R=SEe(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 ERt(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=yv(b,E,A,S);if(!P.ok){V0(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=Ub(b,o),C=Q1(N,1),L=new Date().toISOString();await jv(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 $1(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(!Gn(n,r,null))return;let{intent:i}=n.params;if(!yn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!cx(n,r,i))return;if(!Ua(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(SRt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(bRt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=yEe(),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(!mRt(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:EEe.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(!yn(a)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!$h(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(yRt(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}}let d=ce(i),f=a!==null?`stages/${a}/knowledge/${l}`:`knowledge/${l}`,p=eU(d,f),h=p.substring(0,p.lastIndexOf("/"));if(SEe(p)){r.status(409).send({error:"filename_collision",code:"filename_collision"});return}let g=null,y,b;try{let k=await ERt(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=yv(d,h,g,p);if(!S.ok){V0(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?T1(d):Ub(d,a)}catch(k){if(k instanceof Vd){try{_Rt(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=Q1(_,1),A=new Date().toISOString();await jv(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 $1(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 TRt,hRt,A6,bEe,EEe,RRt=v(()=>{"use strict";TRt=Re(cRt(),1);R6();P0();v6();XY();ze();vo();qg();Pv();hRt=50*1024*1024,A6=50*1024*1024,bEe=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);EEe=/^[\w][\w\-.@ ]{0,127}$/});function ARt(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=Xh(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(!Xh(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>=G1){Vb(`upgrade REJECT session=${i} reason=ws_session_cap size=${Yu.size} cap=${G1}`),n.close(1013,"session cap reached");return}Yu.set(i,n),Vb(`upgrade ACCEPT session=${i}`);let o=null,a=s.session_type==="review"?s:null;a?.intent_slug&&(o=hTt(a.intent_slug,c=>{em(i,{type:"intent-event",session_id:i,event:c})})),n.on("message",c=>{if(!uvt(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");lvt(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 wRt=v(()=>{"use strict";hx();$c();Qh();h6()});import{randomUUID as W8n}from"node:crypto";function K8n(){return _Ee}function Y8n(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 Z8n(){let e=(0,CRt.default)({logger:!1,bodyLimit:wD,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 W8n()},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(ORt.default,{origin:(t,n)=>{n(null,Y8n(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(PRt.default,{max:t,timeWindow:n})}return await e.register(NRt.default,{options:{maxPayload:64*1024}}),e.addHook("onSend",async(t,n,r)=>{let i=_be((t.url??"/").split("?")[0]);if(!i||!D1(i)||n.statusCode>=400)return r;try{return await $_t(t,n,r)}catch{return r}}),X_t(e,K8n),M_t(e),pvt(e),fTt(e),aTt(e),await vRt(e),j_t(e),z_t(e),Z_t(e),ARt(e),e}function xRt(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 Yb(){if(Kb&&Wb!==null)return Wb;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."),Kb=await Z8n();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 Kb.listen({host:t,port:0});Kb.server.maxConnections=IRt;let r=n.match(/^https?:\/\/(\[?[^\]]*\]?|[^:]+):(\d+)/);if(r&&(Wb=Number.parseInt(r[2],10),xRt(r[1].replace(/^\[|\]$/g,""))),Wb===null){let i=Kb.server.address();i&&typeof i=="object"&&(Wb=i.port,xRt(i.address))}return console.error(`Review HTTP server listening on http://127.0.0.1:${Wb} (maxConnections=${IRt}, maxWsSessions=${G1})`),_Ee=!0,Wb}async function MRt(){if(Kb)try{for(let e of Array.from(Yu.keys()))try{Dv(e,"shutdown")}catch{}await Kb.close()}finally{Kb=null,Wb=null,_Ee=!1}}var ORt,PRt,NRt,CRt,kRt,IRt,Kb,Wb,_Ee,w6=v(()=>{"use strict";ORt=Re(Z8e(),1),PRt=Re(u7e(),1),NRt=Re(HXe(),1),CRt=Re(mut(),1);vT();Ci();H_t();G_t();ybe();J_t();Q_t();eTt();cTt();pTt();hvt();RRt();h6();wRt();Qh();kRt=256,IRt=(()=>{let e=process.env.HAIKU_MAX_CONNECTIONS;if(e===void 0)return kRt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?kRt:Math.max(t,1)})(),Kb=null,Wb=null,_Ee=!1});import{execFileSync as J8n}from"node:child_process";import{cpSync as DRt,existsSync as REe,mkdirSync as TEe}from"node:fs";import{homedir as LRt}from"node:os";import{join as AEe}from"node:path";function $8n(){return AEe(LRt(),".claude","plugins","npm-cache","node_modules","haiku-method")}function e7n(e){let t=e??nn();if(!t)return{removed:!0,root:"",missingPaths:[""]};let n=[];for(let r of X8n)REe(AEe(t,r))||n.push(r);return{removed:n.length>0,root:t,missingPaths:n}}function t7n(){if(ud==="dev")return{ok:!1,method:"skipped",reason:"dev_build_no_npm_source"};let e=nn();if(!e)return{ok:!1,method:"skipped",reason:"no_target_path"};let t=$8n();if(REe(t))try{return TEe(e,{recursive:!0}),DRt(t,e,{recursive:!0,force:!0}),{ok:!0,method:"npm-cache-copy"}}catch(r){}let n=AEe(LRt(),".claude","plugins","npm-cache");try{return TEe(n,{recursive:!0}),J8n("npm",["install",`haiku-method@${ud}`,"--prefix",n],{encoding:"utf8",timeout:6e4,stdio:"pipe"}),REe(t)?(TEe(e,{recursive:!0}),DRt(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 URt(e){let t=Date.now();if(t-vEe{"use strict";Ci();sh();p_();X8n=["studios","schemas",".claude-plugin/plugin.json"],Q8n=5e3,vEe=0});var Rt=v(()=>{"use strict"});var n7n,r7n,jRt,HRt=v(()=>{"use strict";gt();ht();Rt();n7n=new Te({autoEscape:!1,useWith:!0}),r7n=ie("@canon:feedback/changes_requested"),jRt=({slug:e,action:t})=>{let n=t.annotations,r=t.message||"No details provided.";return n7n.renderString(r7n,{slug:e,message:r,annotations:n})}});var i7n,s7n,qRt,BRt=v(()=>{"use strict";gt();ht();Rt();i7n=new Te({autoEscape:!1,useWith:!0}),s7n=ie("@canon:feedback/close_feedback"),qRt=({slug:e,action:t})=>{let n=t.stage||"",r=t.feedback_id||"";return i7n.renderString(s7n,{slug:e,stage:n,fbId:r})}});var o7n,a7n,zRt,GRt=v(()=>{"use strict";gt();ts();ht();Rt();o7n=new Te({autoEscape:!1,useWith:!0}),a7n=ie("@canon:feedback/feedback_question"),zRt=e=>{let t=e.action;return o7n.renderString(a7n,{slug:e.slug,stage:t.stage,feedbackId:t.feedback_id,feedbackPath:t.feedback_path,isAutopilot:BI(e.dir)==="autopilot"})}});var c7n,u7n,VRt,WRt=v(()=>{"use strict";gt();ht();Rt();c7n=new Te({autoEscape:!1,useWith:!0}),u7n=ie("@canon:feedback/fix_quality_gates"),VRt=({slug:e,action:t})=>{let n=t.stage||"",r=n?`, stage: "${n}"`:"",i=t.message||"No details provided.";return c7n.renderString(u7n,{slug:e,stageHint:r,message:i})}});import{existsSync as k6}from"node:fs";import{join as l7n}from"node:path";var KRt,d7n,f7n,YRt,ZRt=v(()=>{"use strict";gt();_f();ze();Kn();vl();ts();ht();Fh();Rt();KRt=new Te({autoEscape:!1,useWith:!0}),d7n=ie("@canon:feedback/intent_completion_fix"),f7n=ie("@canon:feedback/intent_completion_fix","subagent.eta.md"),YRt=({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=ve(),u=zD(t),l=s.map(({feedback_id:f,feedback_file:p,feedback_title:h,bolt:m,worktree:g,branch:y})=>{let b=l7n(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&&k6(x)?Rl(x,`Fix-hat mandate: ${A}`):"",N=x&&k6(x)?UI(LI(x)):"",C=k6(b)?Rl(b,`Feedback: ${f} \u2014 ${h}`):"",L=k6(b)?FI(b):"",G=KRt.renderString(f7n,{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:Ee(),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{E3({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 KRt.renderString(d7n,{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 I6}from"node:fs";import{join as x6}from"node:path";var JRt,p7n,h7n,XRt,QRt=v(()=>{"use strict";gt();Ci();_f();ze();Kn();vl();ns();ts();ht();Fh();Rt();JRt=new Te({autoEscape:!1,useWith:!0}),p7n=ie("@canon:feedback/review_fix"),h7n=ie("@canon:feedback/review_fix","subagent.eta.md"),XRt=({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=ve(),l=Du(t,r),d=si(t),f=d?d.dir:t,p=nn(),h=Ff(x6(f,"stages",r,"STAGE.md")),m=o.map(({feedback_id:y,feedback_file:b,feedback_title:S,bolt:E,worktree:_,branch:T})=>{let R=x6(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?x6(p,"studios",f,"stages",r,"hats",`${C}.md`):null,W=N===i.length-1,$=h?Rl(h,`Stage scope: ${r}`):"",q=G&&I6(G)?Rl(G,`Hat mandate: ${C}`):"",Q=G&&I6(G)?UI(LI(G)):"",B=I6(R)?Rl(R,`Feedback: ${y} \u2014 ${S}`):"",F=I6(R)?FI(R):"",V=JRt.renderString(h7n,{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:Ee(),isLast:W}),U=x6(nn(),"studios",t,"stages",r,"hats",`${C}.md`),M=ju({mandatePath:U,studio:t,stage:r}),j=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{E3({unit:`fix-${y}`,hat:C,bolt:E,intent:e,stage:r},k)}catch{}k=j,N===0&&(P=j)}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 JRt.renderString(p7n,{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 $Rt,readdirSync as eAt,readFileSync as tAt}from"node:fs";import{join as _x}from"node:path";function y7n(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?_x(cr(t,n),"feedback"):_x(ce(t),"feedback");try{let p=$Rt(f)?eAt(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=tAt(_x(f,p[0]),"utf8");o=(0,wEe.default)(h).data.model}}catch{}}let a=n?Du(r,n)?.[i]:void 0,c=n?$i(r,n):void 0,u=Cd(r),l=fb({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}var wEe,m7n,g7n,nAt,rAt=v(()=>{"use strict";gt();wEe=Re(Kt(),1);Ci();pb();ze();Kn();Ype();ts();ht();Fh();Rt();m7n=new Te({autoEscape:!1,useWith:!0}),g7n=ie("@canon:feedback/start_feedback_hat");nAt=({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?_x(cr(e,s.stage),"feedback"):_x(ce(e),"feedback");if(!$Rt(a))return!0;let c=eAt(a).filter(u=>u.startsWith(o)&&u.endsWith(".md"));if(c.length===0)return!0;try{let u=tAt(_x(a,c[0]),"utf8"),l=(0,wEe.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=y7n({slug:e,studio:t,stage:s.stage,hat:s.hat,feedbackId:s.feedback_id}),a=VI({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?hb(t,s.stage,s.hat):null,dispatch_block:a}});return m7n.renderString(g7n,{slug:e,dispatches:i,dispatchCount:i.length,plural:i.length===1?"":"s",batchDirective:i.length>0?zI(i.length,"fix-hat subagents"):"",fixLoopContractsBlock:bs("workflow-contracts-fix-loop")})}});var S7n,b7n,iAt,sAt=v(()=>{"use strict";gt();ht();Rt();S7n=new Te({autoEscape:!1,useWith:!0}),b7n=ie("@canon:global/complete"),iAt=({action:e})=>S7n.renderString(b7n,{message:e.message??""})});var E7n,_7n,oAt,aAt=v(()=>{"use strict";gt();ht();Rt();E7n=new Te({autoEscape:!1,useWith:!0}),_7n=ie("@canon:global/error"),oAt=({action:e})=>E7n.renderString(_7n,{message:e.message??""})});var T7n,v7n,cAt,uAt=v(()=>{"use strict";gt();ht();Rt();T7n=new Te({autoEscape:!1,useWith:!0}),v7n=ie("@canon:global/loop_halted"),cAt=({action:e})=>{let t=e;return T7n.renderString(v7n,{message:t.message??"",loop:t.loop??"repeat",intent:t.intent??""})}});function w7n(e){let t=e.match(/^---\n[\s\S]*?\n---\n?/);return(t?e.slice(t[0].length):e).trim()}var R7n,A7n,lAt,dAt=v(()=>{"use strict";gt();Kn();ht();Rt();R7n=new Te({autoEscape:!1,useWith:!0}),A7n=ie("@canon:intent/reflection/record_reflection");lAt=({slug:e,studio:t})=>{let n=t?Object.entries(uft(t)).map(([r,i])=>({name:r,body:w7n(i)})):[];return R7n.renderString(A7n,{slug:e,dimensions:n})}});var k7n,I7n,fAt,pAt=v(()=>{"use strict";gt();ht();Rt();k7n=new Te({autoEscape:!1,useWith:!0}),I7n=ie("@canon:intent/repair/external_review_requested"),fAt=({action:e})=>k7n.renderString(I7n,{message:e.message??""})});var x7n,O7n,hAt,mAt=v(()=>{"use strict";gt();ht();Rt();x7n=new Te({autoEscape:!1,useWith:!0}),O7n=ie("@canon:intent/repair/revise_unit_specs"),hAt=({action:e})=>x7n.renderString(O7n,{message:e.message??""})});var P7n,N7n,gAt,yAt=v(()=>{"use strict";gt();ht();Rt();P7n=new Te({autoEscape:!1,useWith:!0}),N7n=ie("@canon:intent/repair/safe_intent_repair"),gAt=({slug:e,action:t})=>{let n=t.synthesized_stages||[],r=t.phase_regressed||!1,i=t.message||"";return P7n.renderString(N7n,{slug:e,message:i,synthesizedStages:n,phaseWasRegressed:r})}});import{existsSync as C7n,readFileSync as M7n}from"node:fs";import{join as D7n}from"node:path";function F7n(e){let t=D7n(ce(e),"intent.md");return C7n(t)&&re(M7n(t,"utf8")).data.draft_pr_url||""}function j7n(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 H7n(e,t,n){let r=L7n[n],i="",s;if(r){let l=O6.renderString(r,{slug:e}).trim();i=`**Read** \`${_b({intent:e,kind:"engine-body",name:n,body:l})}\``}else{let l=Mh(t,void 0,n);l&&(i=kr({resolveBody:()=>l,toolName:"haiku_read_review_agent",toolArgs:{studio:t,role:n},intent:e,kind:"mandate",name:n}),s=ju({mandatePath:yg(t)[n],studio:t}))}let o=FT.has(n),a=o?F7n(e):"",c=i?O6.renderString(U7n,{slug:e,role:n,mandateRef:i,doctrineRef:UT.has(n)?bs("runtime-verification"):"",prInteraction:o,proofTargetPrUrl:a,existingFeedback:jI(e,""),decisions:HI(e)}):j7n(e,n);return{dispatchBlock:Ti({unit:"review",hat:n,bolt:1,intent:e,agentType:"general-purpose",model:s,promptBody:c,heading:`### Subagent: \`${n}\``,omitBolt:!0}),isEngine:!!r}}var L7n,O6,SAt,U7n,bAt,EAt=v(()=>{"use strict";gt();ze();Kn();vl();ts();ht();Fh();Rt();L7n={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")},O6=new Te({autoEscape:!1,useWith:!0}),SAt=ie("@canon:intent/review/intent_review"),U7n=ie("@canon:intent/review/intent_review","subagent.eta.md");bAt=({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 O6.renderString(SAt,{slug:e,role:"user",roles:["user"],dispatchCount:1,mandatePath:"",dispatchBlock:"",isEngineRole:!1,description:""});let i=r.map(o=>H7n(e,t,o.role)),s=i.map(o=>o.dispatchBlock).join(` +`,"%0b":"\v","%0B":"\v","%0c":"\f","%0C":"\f","%0d":"\r","%0D":"\r","%0e":"","%0E":"","%0f":"","%0F":"","%10":"","%11":"","%12":"","%13":"","%14":"","%15":"","%16":"","%17":"","%18":"","%19":"","%1a":"","%1A":"","%1b":"\x1B","%1B":"\x1B","%1c":"","%1C":"","%1d":"","%1D":"","%1e":"","%1E":"","%1f":"","%1F":"","%20":" ","%21":"!","%22":'"',"%23":"#","%24":"$","%25":"%","%26":"&","%27":"'","%28":"(","%29":")","%2a":"*","%2A":"*","%2b":"+","%2B":"+","%2c":",","%2C":",","%2d":"-","%2D":"-","%2e":".","%2E":".","%2f":"/","%2F":"/","%30":"0","%31":"1","%32":"2","%33":"3","%34":"4","%35":"5","%36":"6","%37":"7","%38":"8","%39":"9","%3a":":","%3A":":","%3b":";","%3B":";","%3c":"<","%3C":"<","%3d":"=","%3D":"=","%3e":">","%3E":">","%3f":"?","%3F":"?","%40":"@","%41":"A","%42":"B","%43":"C","%44":"D","%45":"E","%46":"F","%47":"G","%48":"H","%49":"I","%4a":"J","%4A":"J","%4b":"K","%4B":"K","%4c":"L","%4C":"L","%4d":"M","%4D":"M","%4e":"N","%4E":"N","%4f":"O","%4F":"O","%50":"P","%51":"Q","%52":"R","%53":"S","%54":"T","%55":"U","%56":"V","%57":"W","%58":"X","%59":"Y","%5a":"Z","%5A":"Z","%5b":"[","%5B":"[","%5c":"\\","%5C":"\\","%5d":"]","%5D":"]","%5e":"^","%5E":"^","%5f":"_","%5F":"_","%60":"`","%61":"a","%62":"b","%63":"c","%64":"d","%65":"e","%66":"f","%67":"g","%68":"h","%69":"i","%6a":"j","%6A":"j","%6b":"k","%6B":"k","%6c":"l","%6C":"l","%6d":"m","%6D":"m","%6e":"n","%6E":"n","%6f":"o","%6F":"o","%70":"p","%71":"q","%72":"r","%73":"s","%74":"t","%75":"u","%76":"v","%77":"w","%78":"x","%79":"y","%7a":"z","%7A":"z","%7b":"{","%7B":"{","%7c":"|","%7C":"|","%7d":"}","%7D":"}","%7e":"~","%7E":"~","%7f":"\x7F","%7F":"\x7F","%80":"\x80","%81":"\x81","%82":"\x82","%83":"\x83","%84":"\x84","%85":"\x85","%86":"\x86","%87":"\x87","%88":"\x88","%89":"\x89","%8a":"\x8A","%8A":"\x8A","%8b":"\x8B","%8B":"\x8B","%8c":"\x8C","%8C":"\x8C","%8d":"\x8D","%8D":"\x8D","%8e":"\x8E","%8E":"\x8E","%8f":"\x8F","%8F":"\x8F","%90":"\x90","%91":"\x91","%92":"\x92","%93":"\x93","%94":"\x94","%95":"\x95","%96":"\x96","%97":"\x97","%98":"\x98","%99":"\x99","%9a":"\x9A","%9A":"\x9A","%9b":"\x9B","%9B":"\x9B","%9c":"\x9C","%9C":"\x9C","%9d":"\x9D","%9D":"\x9D","%9e":"\x9E","%9E":"\x9E","%9f":"\x9F","%9F":"\x9F","%a0":"\xA0","%A0":"\xA0","%a1":"\xA1","%A1":"\xA1","%a2":"\xA2","%A2":"\xA2","%a3":"\xA3","%A3":"\xA3","%a4":"\xA4","%A4":"\xA4","%a5":"\xA5","%A5":"\xA5","%a6":"\xA6","%A6":"\xA6","%a7":"\xA7","%A7":"\xA7","%a8":"\xA8","%A8":"\xA8","%a9":"\xA9","%A9":"\xA9","%aa":"\xAA","%Aa":"\xAA","%aA":"\xAA","%AA":"\xAA","%ab":"\xAB","%Ab":"\xAB","%aB":"\xAB","%AB":"\xAB","%ac":"\xAC","%Ac":"\xAC","%aC":"\xAC","%AC":"\xAC","%ad":"\xAD","%Ad":"\xAD","%aD":"\xAD","%AD":"\xAD","%ae":"\xAE","%Ae":"\xAE","%aE":"\xAE","%AE":"\xAE","%af":"\xAF","%Af":"\xAF","%aF":"\xAF","%AF":"\xAF","%b0":"\xB0","%B0":"\xB0","%b1":"\xB1","%B1":"\xB1","%b2":"\xB2","%B2":"\xB2","%b3":"\xB3","%B3":"\xB3","%b4":"\xB4","%B4":"\xB4","%b5":"\xB5","%B5":"\xB5","%b6":"\xB6","%B6":"\xB6","%b7":"\xB7","%B7":"\xB7","%b8":"\xB8","%B8":"\xB8","%b9":"\xB9","%B9":"\xB9","%ba":"\xBA","%Ba":"\xBA","%bA":"\xBA","%BA":"\xBA","%bb":"\xBB","%Bb":"\xBB","%bB":"\xBB","%BB":"\xBB","%bc":"\xBC","%Bc":"\xBC","%bC":"\xBC","%BC":"\xBC","%bd":"\xBD","%Bd":"\xBD","%bD":"\xBD","%BD":"\xBD","%be":"\xBE","%Be":"\xBE","%bE":"\xBE","%BE":"\xBE","%bf":"\xBF","%Bf":"\xBF","%bF":"\xBF","%BF":"\xBF","%c0":"\xC0","%C0":"\xC0","%c1":"\xC1","%C1":"\xC1","%c2":"\xC2","%C2":"\xC2","%c3":"\xC3","%C3":"\xC3","%c4":"\xC4","%C4":"\xC4","%c5":"\xC5","%C5":"\xC5","%c6":"\xC6","%C6":"\xC6","%c7":"\xC7","%C7":"\xC7","%c8":"\xC8","%C8":"\xC8","%c9":"\xC9","%C9":"\xC9","%ca":"\xCA","%Ca":"\xCA","%cA":"\xCA","%CA":"\xCA","%cb":"\xCB","%Cb":"\xCB","%cB":"\xCB","%CB":"\xCB","%cc":"\xCC","%Cc":"\xCC","%cC":"\xCC","%CC":"\xCC","%cd":"\xCD","%Cd":"\xCD","%cD":"\xCD","%CD":"\xCD","%ce":"\xCE","%Ce":"\xCE","%cE":"\xCE","%CE":"\xCE","%cf":"\xCF","%Cf":"\xCF","%cF":"\xCF","%CF":"\xCF","%d0":"\xD0","%D0":"\xD0","%d1":"\xD1","%D1":"\xD1","%d2":"\xD2","%D2":"\xD2","%d3":"\xD3","%D3":"\xD3","%d4":"\xD4","%D4":"\xD4","%d5":"\xD5","%D5":"\xD5","%d6":"\xD6","%D6":"\xD6","%d7":"\xD7","%D7":"\xD7","%d8":"\xD8","%D8":"\xD8","%d9":"\xD9","%D9":"\xD9","%da":"\xDA","%Da":"\xDA","%dA":"\xDA","%DA":"\xDA","%db":"\xDB","%Db":"\xDB","%dB":"\xDB","%DB":"\xDB","%dc":"\xDC","%Dc":"\xDC","%dC":"\xDC","%DC":"\xDC","%dd":"\xDD","%Dd":"\xDD","%dD":"\xDD","%DD":"\xDD","%de":"\xDE","%De":"\xDE","%dE":"\xDE","%DE":"\xDE","%df":"\xDF","%Df":"\xDF","%dF":"\xDF","%DF":"\xDF","%e0":"\xE0","%E0":"\xE0","%e1":"\xE1","%E1":"\xE1","%e2":"\xE2","%E2":"\xE2","%e3":"\xE3","%E3":"\xE3","%e4":"\xE4","%E4":"\xE4","%e5":"\xE5","%E5":"\xE5","%e6":"\xE6","%E6":"\xE6","%e7":"\xE7","%E7":"\xE7","%e8":"\xE8","%E8":"\xE8","%e9":"\xE9","%E9":"\xE9","%ea":"\xEA","%Ea":"\xEA","%eA":"\xEA","%EA":"\xEA","%eb":"\xEB","%Eb":"\xEB","%eB":"\xEB","%EB":"\xEB","%ec":"\xEC","%Ec":"\xEC","%eC":"\xEC","%EC":"\xEC","%ed":"\xED","%Ed":"\xED","%eD":"\xED","%ED":"\xED","%ee":"\xEE","%Ee":"\xEE","%eE":"\xEE","%EE":"\xEE","%ef":"\xEF","%Ef":"\xEF","%eF":"\xEF","%EF":"\xEF","%f0":"\xF0","%F0":"\xF0","%f1":"\xF1","%F1":"\xF1","%f2":"\xF2","%F2":"\xF2","%f3":"\xF3","%F3":"\xF3","%f4":"\xF4","%F4":"\xF4","%f5":"\xF5","%F5":"\xF5","%f6":"\xF6","%F6":"\xF6","%f7":"\xF7","%F7":"\xF7","%f8":"\xF8","%F8":"\xF8","%f9":"\xF9","%F9":"\xF9","%fa":"\xFA","%Fa":"\xFA","%fA":"\xFA","%FA":"\xFA","%fb":"\xFB","%Fb":"\xFB","%fB":"\xFB","%FB":"\xFB","%fc":"\xFC","%Fc":"\xFC","%fC":"\xFC","%FC":"\xFC","%fd":"\xFD","%Fd":"\xFD","%fD":"\xFD","%FD":"\xFD","%fe":"\xFE","%Fe":"\xFE","%fE":"\xFE","%FE":"\xFE","%ff":"\xFF","%Ff":"\xFF","%fF":"\xFF","%FF":"\xFF"};function Pvt(e){return Z5n[e]}var S6=0,Nvt=1,oEe=2,Cvt=3;function J5n(e){let t=[],n=S6,r="",i=!1,s=!1,o=0,a="",c=e.length;for(var u=0;u{"use strict";Dvt.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 Hvt=w((bSi,jvt)=>{"use strict";var{Readable:Fvt}=Y("node:stream"),{inherits:X5n}=Y("node:util"),Q5n=iEe(),Uvt=aEe(),$5n=g6(),e8n=Lvt(),Uv=m6(),t8n=/^boundary$/i,n8n=/^form-data$/i,r8n=/^charset$/i,i8n=/^filename$/i,s8n=/^name$/i;b6.detect=/^multipart\/form-data/i;function b6(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",bx),e.hitPartsLimit=!0,e.emit("partsLimit"),bx(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=Uvt(C["content-type"][0]),W[0])){for(L=W[0].toLowerCase(),n=0,r=W.length;nh){let j=h-B+M.length;j>0&&U.push(M.slice(0,j)),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")),bx(N);++_,++T;let U="",M=!1;A=N,F=function(j){if((B+=j.length)>p){let H=p-(B-j.length);U+=j.toString("binary",0,H),M=!0,N.removeAllListeners("data")}else U+=j.toString("binary")},V=function(){A=void 0,U.length&&(U=$5n(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()})}b6.prototype.write=function(e,t){let n=this.parser.write(e);n&&!this._pause?t():(this._needDrain=!n,this._cb=t)};b6.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 bx(e){e.resume()}function cEe(e){Fvt.call(this,e),this.bytesRead=0,this.truncated=!1}X5n(cEe,Fvt);cEe.prototype._read=function(e){};jvt.exports=b6});var Bvt=w((ESi,qvt)=>{"use strict";var o8n=/\+/g,a8n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 uEe(){this.buffer=void 0}uEe.prototype.write=function(e){e=e.replace(o8n," ");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 c8n=Bvt(),Ex=g6(),lEe=m6(),u8n=/^charset$/i;E6.detect=/^application\/x-www-form-urlencoded/i;function E6(e,t){let n=t.limits,r=t.parsedConType;this.boy=e,this.fieldSizeLimit=lEe(n,"fieldSize",1*1024*1024),this.fieldNameSizeLimit=lEe(n,"fieldNameSize",100),this.fieldsLimit=lEe(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",Ex(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",Ex(this._key,"binary",this.charset),Ex(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",Ex(this._key,"binary",this.charset),"",this._keyTrunc,!1):this._state==="val"&&this.boy.emit("field",Ex(this._key,"binary",this.charset),Ex(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this.boy._done=!0,this.boy.emit("finish"))};zvt.exports=E6});var Kvt=w((TSi,W1)=>{"use strict";var dEe=Y("node:stream").Writable,{inherits:l8n}=Y("node:util"),d8n=iEe(),Vvt=Hvt(),Wvt=Gvt(),f8n=aEe();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},dEe.call(this,this.opts),this._done=!1,this._parser=this.getParserByHeaders(t),this._finished=!1}l8n(Bg,dEe);Bg.prototype.emit=function(e){if(e==="finish"){if(this._done){if(this._finished)return}else{this._parser?.end();return}this._finished=!0}dEe.prototype.emit.apply(this,arguments)};Bg.prototype.getParserByHeaders=function(e){let t=f8n(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(Vvt.detect.test(t[0]))return new Vvt(this,n);if(Wvt.detect.test(t[0]))return new Wvt(this,n);throw new Error("Unsupported Content-Type.")};Bg.prototype._write=function(e,t,n){this._parser.write(e,n)};W1.exports=Bg;W1.exports.default=Bg;W1.exports.Busboy=Bg;W1.exports.Dicer=d8n});var Jvt=w((vSi,Zvt)=>{"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"],Fv=Math.random;function Yvt(){return zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]}Zvt.exports.generateId=(function(){let t=0,n=Yvt();return function(){return t===255?(n=Yvt())+zg[t=0]:n+zg[++t]}})()});var Qvt=w((RSi,Xvt)=>{"use strict";Xvt.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 tRt=w((ASi,K1)=>{"use strict";var $vt=Object.getPrototypeOf({});function eRt(){return function(t){return typeof t=="object"&&t!==null&&!(t instanceof RegExp)&&!(t instanceof Date)}}function fEe(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 p8n=Kvt(),h8n=Y("node:os"),m8n=JC(),{createWriteStream:g8n}=Y("node:fs"),{unlink:y8n}=Y("node:fs/promises"),nRt=Y("node:path"),{generateId:S8n}=Jvt(),Gg=_W(),b8n=Qvt(),E8n=tRt()({all:!0}),{PassThrough:_8n,Readable:T8n}=Y("node:stream"),{pipeline:v8n}=Y("node:stream/promises"),R8n=Lue(),mEe=Symbol("multipart"),_6=Symbol("multipartHandler"),Y1=Symbol("savedRequestFilesResult"),rRt=Gg("FST_PARTS_LIMIT","reach parts limit",413),iRt=Gg("FST_FILES_LIMIT","reach files limit",413),sRt=Gg("FST_FIELDS_LIMIT","reach fields limit",413),pEe=Gg("FST_REQ_FILE_TOO_LARGE","request file too large",413),hEe=Gg("FST_PROTO_VIOLATION","prototype property is not allowed as field name",400),oRt=Gg("FST_INVALID_MULTIPART_CONTENT_TYPE","the request is not multipart",406),aRt=Gg("FST_INVALID_JSON_FIELD_ERROR","a request field is not a valid JSON as declared by its Content-Type",406),cRt=Gg("FST_FILE_BUFFER_NOT_FOUND","the file buffer was not found",500),A8n=Gg("FST_NO_FORM_DATA","FormData is not available",500);function w8n(e,t,n){e[mEe]=!0,n()}function k8n(e){try{return new p8n(e)}catch(t){let n=new _8n;return process.nextTick(function(){n.emit("error",t)}),n}}function gEe(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[mEe]}function o(p={}){if(!this.isMultipart())throw new oRt;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=E8n({headers:T.headers},t,p);this.log.trace({busboyOptions:R},"Providing options to busboy");let A=k8n(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 rRt;P(C),process.nextTick(()=>N(C))}),A.on("filesLimit",function(){let C=new iRt;P(C),process.nextTick(()=>N(C))}),A.on("fieldsLimit",function(){let C=new sRt;P(C),process.nextTick(()=>N(C))}),T.pipe(A);function x(C,L,G,W,$,q){if(C in Object.prototype){P(new hEe);return}if(q.startsWith("application/json")){if(W){P(new aRt);return}try{L=R8n.parse(L),q="application/json"}catch{P(new aRt);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){b8n(L).catch(()=>{}),P(new hEe);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 pEe,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 pEe;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[Y1])return this[Y1];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||h8n.tmpdir();this.tmpUploads=[];let y=0;for await(let b of h){if(m=b.fields,!b.file)continue;let S=nRt.join(g,S8n()+nRt.extname(b.filename||"file"+y++)),E=g8n(S);try{this.tmpUploads.push(S),await v8n(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[Y1]={files:this.savedRequestFiles,values:m},this[Y1]}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"}})}Z1.exports=m8n(gEe,{fastify:"5.x",name:"@fastify/multipart"});Z1.exports.default=gEe;Z1.exports.fastifyMultipart=gEe;Z1.exports.ajvFilePlugin=I8n});import{mkdirSync as x8n}from"node:fs";import{open as O8n}from"node:fs/promises";import{dirname as P8n,join as N8n}from"node:path";function Q1(e,t){let n=String(t).padStart(2,"0");return`HWM-${e}-${n}`}function dRt(e,t=200){return e.length<=t?e:`${e.slice(0,t)}...`}function X1(e){return Buffer.byteLength(e,"utf-8")}function yEe(e,t){if(X1(e)<=t)return e;let n="...[truncated]",r=X1(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 U8n(e){let t=(s,o)=>s==null?null:yEe(s,o),n={...e,path:yEe(e.path,M8n),claimed_author_id:t(e.claimed_author_id,lRt),human_author_id:t(e.human_author_id,lRt),rationale:t(e.rationale,C8n),dirs_created:(e.dirs_created??[]).slice(0,D8n).map(s=>yEe(s,L8n))},r=JSON.stringify(n),i=X1(r);return i>T6?{ok:!1,reason:"record_too_large",bytes:i,cap:T6}:{ok:!0,record:n,line:r}}function F8n(e){return N8n(e,"write-audit.jsonl")}async function j8n(e,t){let n=J1.get(e)??Promise.resolve(),r,i=new Promise(s=>{r=s});J1.set(e,n.then(()=>i));try{return await n,await t()}finally{r(),queueMicrotask(()=>{let s=J1.get(e);s!==void 0&&Promise.resolve(s).then(()=>{J1.get(e)===s&&J1.delete(e)})})}}async function fRt(e,t){try{x8n(P8n(e),{recursive:!0})}catch(n){return{ok:!1,reason:String(n)}}return j8n(e,async()=>{let n=null;try{return n=await O8n(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 $1(e,t){let n=U8n(t);if(!n.ok)return{ok:!1,reason:`${n.reason} (bytes=${n.bytes}, cap=${n.cap})`};let r=F8n(e);return fRt(r,n.line)}async function pRt(e,t){return X1(t)>T6?{ok:!1,reason:`record_too_large (bytes=${X1(t)}, cap=${T6})`}:fRt(e,t)}var T6,C8n,lRt,M8n,D8n,L8n,J1,v6=v(()=>{"use strict";T6=16*1024,C8n=4096,lRt=128,M8n=1024,D8n=16,L8n=512;J1=new Map});import{join as H8n}from"node:path";function SEe(e){return H8n(e,"action-log.jsonl")}async function jv(e,t,n){let r=SEe(e),i=JSON.stringify(n);return pRt(r,i)}var R6=v(()=>{"use strict";v6()});import{createHash as q8n}from"node:crypto";import{createWriteStream as B8n,existsSync as EEe,readFileSync as z8n,unlinkSync as TRt}from"node:fs";import{join as eU,resolve as hRt}from"node:path";function G8n(e){return!(!e||e==="application/octet-stream")}function gRt(e){return typeof e!="string"?!1:TEe.test(e)}function V8n(e){let t=e.lastIndexOf(".");return t<0?"":e.slice(t).toLowerCase()}function W8n(e){if(!e)return"";let t=e.indexOf(";");return(t<0?e:e.slice(0,t)).trim().toLowerCase()}function yRt(e){return _Ee.has(V8n(e))}function bEe(){let e=process.env.HAIKU_UPLOAD_MAX_BYTES,t;if(e===void 0)t=mRt;else{let n=Number.parseInt(e,10);t=!Number.isFinite(n)||n<=0?mRt:n}return t>A6?(Ke("haiku.upload.cap_clamped",{env_value:String(t),hard_cap:String(A6)}),A6):Math.min(t,A6)}function SRt(e,t){try{let n=eU(ce(e),"stages",t,"state.json");if(!EEe(n))return!1;let r=z8n(n,"utf-8"),s=JSON.parse(r).status;return s==="complete"||s==="sealed"}catch{return!1}}function bRt(e){return _1(ce(e))}function ERt(e){return E1(ce(e))}async function _Rt(e,t,n){let r=eU(t,`.upload-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}.tmp`),i=q8n("sha256"),s=0,o=B8n(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{TRt(r)}catch{}throw c}),{tmpPath:r,sha256:i.digest("hex"),bytes:s}}async function RRt(e){await e.register(async t=>{await t.register(vRt.default,{limits:{fileSize:bEe()+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(!yn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!cx(n,r,i))return;if(!Ua(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(bRt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(ERt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=bEe(),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(!gRt(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:TEe.source});return}let d=yRt(l.filename),f=yRt(a);if(d||f){r.status(415).send({error:"unsupported_media_type",code:"unsupported_media_type",message:`Files with extensions ${Array.from(_Ee).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(_Ee)});return}let p=W8n(l.mimetype);if(!G8n(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(!yn(o)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!$h(i,o)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(SRt(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=av(`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=ce(i),S=eU(b,g),E=S.substring(0,S.lastIndexOf("/")),_=hRt(S),T=hRt(eU(b,y));if(!_.startsWith(T)){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let R=EEe(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 _Rt(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=yv(b,E,A,S);if(!P.ok){V0(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=Ub(b,o),C=Q1(N,1),L=new Date().toISOString();await jv(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 $1(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(!Gn(n,r,null))return;let{intent:i}=n.params;if(!yn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!cx(n,r,i))return;if(!Ua(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(bRt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(ERt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=bEe(),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(!gRt(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:TEe.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(!yn(a)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!$h(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(SRt(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}}let d=ce(i),f=a!==null?`stages/${a}/knowledge/${l}`:`knowledge/${l}`,p=eU(d,f),h=p.substring(0,p.lastIndexOf("/"));if(EEe(p)){r.status(409).send({error:"filename_collision",code:"filename_collision"});return}let g=null,y,b;try{let k=await _Rt(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=yv(d,h,g,p);if(!S.ok){V0(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?T1(d):Ub(d,a)}catch(k){if(k instanceof Vd){try{TRt(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=Q1(_,1),A=new Date().toISOString();await jv(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 $1(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 vRt,mRt,A6,_Ee,TEe,ARt=v(()=>{"use strict";vRt=Re(uRt(),1);R6();P0();v6();XY();ze();vo();qg();Pv();mRt=50*1024*1024,A6=50*1024*1024,_Ee=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);TEe=/^[\w][\w\-.@ ]{0,127}$/});function wRt(e){e.register(async t=>{t.get("/ws/session/:sessionId",{websocket:!0,preValidation:async(n,r)=>{if(!zi())return;let{sessionId:i}=n.params,s=n.query?.t;if(!s){r.status(401).send({error:"unauthorized",reason:"missing_token"});return}let o=Xh(s,i);if(!o.ok){r.status(401).send({error:"unauthorized",reason:o.reason});return}}},(n,r)=>{let{sessionId:i}=r.params;if(zi()){let c=r.query?.t;if(!c){n.close(4401,"unauthorized");return}if(!Xh(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>=G1){Vb(`upgrade REJECT session=${i} reason=ws_session_cap size=${Yu.size} cap=${G1}`),n.close(1013,"session cap reached");return}Yu.set(i,n),Vb(`upgrade ACCEPT session=${i}`);let o=null,a=s.session_type==="review"?s:null;a?.intent_slug&&(o=mTt(a.intent_slug,c=>{em(i,{type:"intent-event",session_id:i,event:c})})),n.on("message",c=>{if(!lvt(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");dvt(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 kRt=v(()=>{"use strict";hx();$c();Qh();h6()});import{randomUUID as K8n}from"node:crypto";function Y8n(){return vEe}function Z8n(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 J8n(){let e=(0,MRt.default)({logger:!1,bodyLimit:wD,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 K8n()},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{}}),zi()&&await e.register(PRt.default,{origin:(t,n)=>{n(null,Z8n(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}),zi()){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(NRt.default,{max:t,timeWindow:n})}return await e.register(CRt.default,{options:{maxPayload:64*1024}}),e.addHook("onSend",async(t,n,r)=>{let i=vbe((t.url??"/").split("?")[0]);if(!i||!D1(i)||n.statusCode>=400)return r;try{return await eTt(t,n,r)}catch{return r}}),Q_t(e,Y8n),D_t(e),hvt(e),pTt(e),cTt(e),await RRt(e),H_t(e),G_t(e),J_t(e),wRt(e),e}function ORt(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 Yb(){if(Kb&&Wb!==null)return Wb;zi()&&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."),Kb=await J8n();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 Kb.listen({host:t,port:0});Kb.server.maxConnections=xRt;let r=n.match(/^https?:\/\/(\[?[^\]]*\]?|[^:]+):(\d+)/);if(r&&(Wb=Number.parseInt(r[2],10),ORt(r[1].replace(/^\[|\]$/g,""))),Wb===null){let i=Kb.server.address();i&&typeof i=="object"&&(Wb=i.port,ORt(i.address))}return console.error(`Review HTTP server listening on http://127.0.0.1:${Wb} (maxConnections=${xRt}, maxWsSessions=${G1})`),vEe=!0,Wb}async function DRt(){if(Kb)try{for(let e of Array.from(Yu.keys()))try{Dv(e,"shutdown")}catch{}await Kb.close()}finally{Kb=null,Wb=null,vEe=!1}}var PRt,NRt,CRt,MRt,IRt,xRt,Kb,Wb,vEe,w6=v(()=>{"use strict";PRt=Re(X8e(),1),NRt=Re(d7e(),1),CRt=Re(BXe(),1),MRt=Re(yut(),1);vT();Ci();q_t();V_t();bbe();X_t();$_t();tTt();uTt();hTt();mvt();ARt();h6();kRt();Qh();IRt=256,xRt=(()=>{let e=process.env.HAIKU_MAX_CONNECTIONS;if(e===void 0)return IRt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?IRt:Math.max(t,1)})(),Kb=null,Wb=null,vEe=!1});import{execFileSync as X8n}from"node:child_process";import{cpSync as LRt,existsSync as wEe,mkdirSync as REe}from"node:fs";import{homedir as URt}from"node:os";import{join as kEe}from"node:path";function e7n(){return kEe(URt(),".claude","plugins","npm-cache","node_modules","haiku-method")}function t7n(e){let t=e??nn();if(!t)return{removed:!0,root:"",missingPaths:[""]};let n=[];for(let r of Q8n)wEe(kEe(t,r))||n.push(r);return{removed:n.length>0,root:t,missingPaths:n}}function n7n(){if(ud==="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=e7n();if(wEe(t))try{return REe(e,{recursive:!0}),LRt(t,e,{recursive:!0,force:!0}),{ok:!0,method:"npm-cache-copy"}}catch(r){}let n=kEe(URt(),".claude","plugins","npm-cache");try{return REe(n,{recursive:!0}),X8n("npm",["install",`haiku-method@${ud}`,"--prefix",n],{encoding:"utf8",timeout:6e4,stdio:"pipe"}),wEe(t)?(REe(e,{recursive:!0}),LRt(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 FRt(e){let t=Date.now();if(t-AEe<$8n)return{ok:!0,repaired:!1};let n=t7n();if(!n.removed)return AEe=t,{ok:!0,repaired:!1};ms(new Error(`Haiku plugin dir missing during tool call: ${n.missingPaths.join(", ")}`),{context:"plugin-self-repair-detected",plugin_root:n.root,missing_paths:n.missingPaths,mcp_version:ud},e);let r=n7n();return ms(new Error(`Haiku plugin self-repair ${r.ok?"succeeded":"failed"} (${r.method})`),{context:"plugin-self-repair-result",ok:r.ok,method:r.method,reason:r.reason,error:r.error,mcp_version:ud},e),r.ok&&(AEe=t),{ok:r.ok,repaired:r.ok,result:r}}var Q8n,$8n,AEe,jRt=v(()=>{"use strict";Ci();sh();p_();Q8n=["studios","schemas",".claude-plugin/plugin.json"],$8n=5e3,AEe=0});var Rt=v(()=>{"use strict"});var r7n,i7n,HRt,qRt=v(()=>{"use strict";gt();ht();Rt();r7n=new Te({autoEscape:!1,useWith:!0}),i7n=ie("@canon:feedback/changes_requested"),HRt=({slug:e,action:t})=>{let n=t.annotations,r=t.message||"No details provided.";return r7n.renderString(i7n,{slug:e,message:r,annotations:n})}});var s7n,o7n,BRt,zRt=v(()=>{"use strict";gt();ht();Rt();s7n=new Te({autoEscape:!1,useWith:!0}),o7n=ie("@canon:feedback/close_feedback"),BRt=({slug:e,action:t})=>{let n=t.stage||"",r=t.feedback_id||"";return s7n.renderString(o7n,{slug:e,stage:n,fbId:r})}});var a7n,c7n,GRt,VRt=v(()=>{"use strict";gt();ns();ht();Rt();a7n=new Te({autoEscape:!1,useWith:!0}),c7n=ie("@canon:feedback/feedback_question"),GRt=e=>{let t=e.action;return a7n.renderString(c7n,{slug:e.slug,stage:t.stage,feedbackId:t.feedback_id,feedbackPath:t.feedback_path,isAutopilot:BI(e.dir)==="autopilot"})}});var u7n,l7n,WRt,KRt=v(()=>{"use strict";gt();ht();Rt();u7n=new Te({autoEscape:!1,useWith:!0}),l7n=ie("@canon:feedback/fix_quality_gates"),WRt=({slug:e,action:t})=>{let n=t.stage||"",r=n?`, stage: "${n}"`:"",i=t.message||"No details provided.";return u7n.renderString(l7n,{slug:e,stageHint:r,message:i})}});import{existsSync as k6}from"node:fs";import{join as d7n}from"node:path";var YRt,f7n,p7n,ZRt,JRt=v(()=>{"use strict";gt();_f();ze();Kn();vl();ns();ht();Fh();Rt();YRt=new Te({autoEscape:!1,useWith:!0}),f7n=ie("@canon:feedback/intent_completion_fix"),p7n=ie("@canon:feedback/intent_completion_fix","subagent.eta.md"),ZRt=({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=ve(),u=zD(t),l=s.map(({feedback_id:f,feedback_file:p,feedback_title:h,bolt:m,worktree:g,branch:y})=>{let b=d7n(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&&k6(x)?Rl(x,`Fix-hat mandate: ${A}`):"",N=x&&k6(x)?UI(LI(x)):"",C=k6(b)?Rl(b,`Feedback: ${f} \u2014 ${h}`):"",L=k6(b)?FI(b):"",G=YRt.renderString(p7n,{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:Ee(),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{E3({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 YRt.renderString(f7n,{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 I6}from"node:fs";import{join as x6}from"node:path";var XRt,h7n,m7n,QRt,$Rt=v(()=>{"use strict";gt();Ci();_f();ze();Kn();vl();ji();ns();ht();Fh();Rt();XRt=new Te({autoEscape:!1,useWith:!0}),h7n=ie("@canon:feedback/review_fix"),m7n=ie("@canon:feedback/review_fix","subagent.eta.md"),QRt=({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=ve(),l=Du(t,r),d=si(t),f=d?d.dir:t,p=nn(),h=Ff(x6(f,"stages",r,"STAGE.md")),m=o.map(({feedback_id:y,feedback_file:b,feedback_title:S,bolt:E,worktree:_,branch:T})=>{let R=x6(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?x6(p,"studios",f,"stages",r,"hats",`${C}.md`):null,W=N===i.length-1,$=h?Rl(h,`Stage scope: ${r}`):"",q=G&&I6(G)?Rl(G,`Hat mandate: ${C}`):"",Q=G&&I6(G)?UI(LI(G)):"",B=I6(R)?Rl(R,`Feedback: ${y} \u2014 ${S}`):"",F=I6(R)?FI(R):"",V=XRt.renderString(m7n,{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:Ee(),isLast:W}),U=x6(nn(),"studios",t,"stages",r,"hats",`${C}.md`),M=ju({mandatePath:U,studio:t,stage:r}),j=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{E3({unit:`fix-${y}`,hat:C,bolt:E,intent:e,stage:r},k)}catch{}k=j,N===0&&(P=j)}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 XRt.renderString(h7n,{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 eAt,readdirSync as tAt,readFileSync as nAt}from"node:fs";import{join as _x}from"node:path";function S7n(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?_x(cr(t,n),"feedback"):_x(ce(t),"feedback");try{let p=eAt(f)?tAt(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=nAt(_x(f,p[0]),"utf8");o=(0,IEe.default)(h).data.model}}catch{}}let a=n?Du(r,n)?.[i]:void 0,c=n?es(r,n):void 0,u=Cd(r),l=fb({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}var IEe,g7n,y7n,rAt,iAt=v(()=>{"use strict";gt();IEe=Re(Kt(),1);Ci();pb();ze();Kn();Ype();ns();ht();Fh();Rt();g7n=new Te({autoEscape:!1,useWith:!0}),y7n=ie("@canon:feedback/start_feedback_hat");rAt=({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?_x(cr(e,s.stage),"feedback"):_x(ce(e),"feedback");if(!eAt(a))return!0;let c=tAt(a).filter(u=>u.startsWith(o)&&u.endsWith(".md"));if(c.length===0)return!0;try{let u=nAt(_x(a,c[0]),"utf8"),l=(0,IEe.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=S7n({slug:e,studio:t,stage:s.stage,hat:s.hat,feedbackId:s.feedback_id}),a=VI({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?hb(t,s.stage,s.hat):null,dispatch_block:a}});return g7n.renderString(y7n,{slug:e,dispatches:i,dispatchCount:i.length,plural:i.length===1?"":"s",batchDirective:i.length>0?zI(i.length,"fix-hat subagents"):"",fixLoopContractsBlock:bs("workflow-contracts-fix-loop")})}});var b7n,E7n,sAt,oAt=v(()=>{"use strict";gt();ht();Rt();b7n=new Te({autoEscape:!1,useWith:!0}),E7n=ie("@canon:global/complete"),sAt=({action:e})=>b7n.renderString(E7n,{message:e.message??""})});var _7n,T7n,aAt,cAt=v(()=>{"use strict";gt();ht();Rt();_7n=new Te({autoEscape:!1,useWith:!0}),T7n=ie("@canon:global/error"),aAt=({action:e})=>_7n.renderString(T7n,{message:e.message??""})});var v7n,R7n,uAt,lAt=v(()=>{"use strict";gt();ht();Rt();v7n=new Te({autoEscape:!1,useWith:!0}),R7n=ie("@canon:global/loop_halted"),uAt=({action:e})=>{let t=e;return v7n.renderString(R7n,{message:t.message??"",loop:t.loop??"repeat",intent:t.intent??""})}});function k7n(e){let t=e.match(/^---\n[\s\S]*?\n---\n?/);return(t?e.slice(t[0].length):e).trim()}var A7n,w7n,dAt,fAt=v(()=>{"use strict";gt();Kn();ht();Rt();A7n=new Te({autoEscape:!1,useWith:!0}),w7n=ie("@canon:intent/reflection/record_reflection");dAt=({slug:e,studio:t})=>{let n=t?Object.entries(dft(t)).map(([r,i])=>({name:r,body:k7n(i)})):[];return A7n.renderString(w7n,{slug:e,dimensions:n})}});var I7n,x7n,pAt,hAt=v(()=>{"use strict";gt();ht();Rt();I7n=new Te({autoEscape:!1,useWith:!0}),x7n=ie("@canon:intent/repair/external_review_requested"),pAt=({action:e})=>I7n.renderString(x7n,{message:e.message??""})});var O7n,P7n,mAt,gAt=v(()=>{"use strict";gt();ht();Rt();O7n=new Te({autoEscape:!1,useWith:!0}),P7n=ie("@canon:intent/repair/revise_unit_specs"),mAt=({action:e})=>O7n.renderString(P7n,{message:e.message??""})});var N7n,C7n,yAt,SAt=v(()=>{"use strict";gt();ht();Rt();N7n=new Te({autoEscape:!1,useWith:!0}),C7n=ie("@canon:intent/repair/safe_intent_repair"),yAt=({slug:e,action:t})=>{let n=t.synthesized_stages||[],r=t.phase_regressed||!1,i=t.message||"";return N7n.renderString(C7n,{slug:e,message:i,synthesizedStages:n,phaseWasRegressed:r})}});import{existsSync as M7n,readFileSync as D7n}from"node:fs";import{join as L7n}from"node:path";function j7n(e){let t=L7n(ce(e),"intent.md");return M7n(t)&&re(D7n(t,"utf8")).data.draft_pr_url||""}function H7n(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 q7n(e,t,n){let r=U7n[n],i="",s;if(r){let l=O6.renderString(r,{slug:e}).trim();i=`**Read** \`${_b({intent:e,kind:"engine-body",name:n,body:l})}\``}else{let l=Mh(t,void 0,n);l&&(i=kr({resolveBody:()=>l,toolName:"haiku_read_review_agent",toolArgs:{studio:t,role:n},intent:e,kind:"mandate",name:n}),s=ju({mandatePath:yg(t)[n],studio:t}))}let o=FT.has(n),a=o?j7n(e):"",c=i?O6.renderString(F7n,{slug:e,role:n,mandateRef:i,doctrineRef:UT.has(n)?bs("runtime-verification"):"",prInteraction:o,proofTargetPrUrl:a,existingFeedback:jI(e,""),decisions:HI(e)}):H7n(e,n);return{dispatchBlock:Ti({unit:"review",hat:n,bolt:1,intent:e,agentType:"general-purpose",model:s,promptBody:c,heading:`### Subagent: \`${n}\``,omitBolt:!0}),isEngine:!!r}}var U7n,O6,bAt,F7n,EAt,_At=v(()=>{"use strict";gt();ze();Kn();vl();ns();ht();Fh();Rt();U7n={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")},O6=new Te({autoEscape:!1,useWith:!0}),bAt=ie("@canon:intent/review/intent_review"),F7n=ie("@canon:intent/review/intent_review","subagent.eta.md");EAt=({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 O6.renderString(bAt,{slug:e,role:"user",roles:["user"],dispatchCount:1,mandatePath:"",dispatchBlock:"",isEngineRole:!1,description:""});let i=r.map(o=>q7n(e,t,o.role)),s=i.map(o=>o.dispatchBlock).join(` -`);return O6.renderString(SAt,{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 q7n,B7n,_At,TAt=v(()=>{"use strict";gt();ht();Rt();q7n=new Te({autoEscape:!1,useWith:!0}),B7n=ie("@canon:intent/seal/intent_approved"),_At=({slug:e})=>q7n.renderString(B7n,{slug:e})});var z7n,G7n,vAt,RAt=v(()=>{"use strict";gt();ar();ze();ht();Rt();z7n=new Te({autoEscape:!1,useWith:!0}),G7n=ie("@canon:intent/seal/intent_complete"),vAt=({slug:e})=>{let t=Ee(),n=t?Zo():"";return z7n.renderString(G7n,{slug:e,gitMode:t,mainline:n})}});import{existsSync as V7n,readFileSync as W7n}from"node:fs";import{join as K7n}from"node:path";var AAt,Y7n,Z7n,wAt,kAt=v(()=>{"use strict";gt();AAt=Re(Kt(),1);ht();Rt();Y7n=new Te({autoEscape:!1,useWith:!0}),Z7n=ie("@canon:intent/seal/pending_seal"),wAt=({slug:e,action:t,dir:n})=>{let r=t.default_branch||"the default branch",i="";try{let s=K7n(n,"intent.md");if(V7n(s)){let o=(0,AAt.default)(W7n(s,"utf8")).data;typeof o.draft_pr_url=="string"&&(i=o.draft_pr_url)}}catch{}return Y7n.renderString(Z7n,{slug:e,defaultBranch:r,prUrl:i,intentMain:`haiku/${e}/main`})}});var J7n,X7n,IAt,xAt=v(()=>{"use strict";gt();ts();ht();Rt();J7n=new Te({autoEscape:!1,useWith:!0}),X7n=ie("@canon:intent/seal/seal_intent"),IAt=({slug:e,dir:t})=>J7n.renderString(X7n,{slug:e,providerBlock:qI("seal_intent",t)})});var Q7n,$7n,OAt,PAt=v(()=>{"use strict";gt();ht();Rt();Q7n=new Te({autoEscape:!1,useWith:!0}),$7n=ie("@canon:intent/setup/migrated"),OAt=({action:e})=>Q7n.renderString($7n,{message:e.message??""})});var eJn,tJn,NAt,CAt=v(()=>{"use strict";gt();ht();Rt();eJn=new Te({autoEscape:!1,useWith:!0}),tJn=ie("@canon:intent/setup/select_studio"),NAt=({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 eJn.renderString(tJn,{slug:e,studioListing:r,emptyFallback:i})}});import{existsSync as MAt,readFileSync as DAt}from"node:fs";import{join as LAt}from"node:path";function rJn(e,t){let n=LAt(ce(e),"intent.md");if(!MAt(n))return"";let r=re(DAt(n,"utf8")).data,i=r.mode||"";if(t&&nJn.has(i)){let s=Tv(e,t)?.url;if(s)return s}return r.draft_pr_url||""}function aJn(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=LAt(cr(e,t),"units",r);if(!MAt(i))return[];try{let{data:s}=(0,UAt.default)(DAt(i,"utf8")),o=s.outputs;return Array.isArray(o)?o.filter(a=>typeof a=="string"):[]}catch{return[]}}function cJn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=oJn[i],a="",c;if(o){let m=kEe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${_b({intent:t,stage:r||void 0,kind:"engine-body",name:i,body:m})}\``}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 m=qD(n,r,i);m&&(c=ju({mandatePath:m,studio:n,stage:r}))}let u=r?s.flatMap(m=>aJn(t,r,m)).filter((m,g,y)=>y.indexOf(m)===g):[],l=UT.has(i)?bs("runtime-verification"):"",d=FT.has(i),f=d?rJn(t,r):"",p=kEe.renderString(sJn,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,outputPaths:u,doctrineRef:l,prInteraction:d,proofTargetPrUrl:f,existingFeedback:jI(t,r),decisions:HI(t)});return{dispatchBlock:Ti({unit:`approval-${i}`,hat:"approval",bolt:1,intent:t,stage:r||void 0,agentType:"general-purpose",model:c,promptBody:p,heading:`### Subagent: \`${i}\` (post-execute approval)`,omitBolt:!0}),isEngineRole:o!==void 0}}var UAt,nJn,kEe,iJn,sJn,oJn,FAt,jAt=v(()=>{"use strict";gt();UAt=Re(Kt(),1);ze();Kn();vl();ts();ht();Fh();Rt();nJn=new Set(["discrete","discrete-hybrid"]);kEe=new Te({autoEscape:!1,useWith:!0}),iJn=ie("@canon:stage/approve/dispatch_approval"),sJn=ie("@canon:stage/approve/dispatch_approval","subagent.eta.md"),oJn={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")};FAt=({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=>cJn({slug:e,studio:t,stage:r,role:c.role,units:c.units})),o=s.map(c=>c.dispatchBlock).join(` +`);return O6.renderString(bAt,{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 B7n,z7n,TAt,vAt=v(()=>{"use strict";gt();ht();Rt();B7n=new Te({autoEscape:!1,useWith:!0}),z7n=ie("@canon:intent/seal/intent_approved"),TAt=({slug:e})=>B7n.renderString(z7n,{slug:e})});var G7n,V7n,RAt,AAt=v(()=>{"use strict";gt();ar();ze();ht();Rt();G7n=new Te({autoEscape:!1,useWith:!0}),V7n=ie("@canon:intent/seal/intent_complete"),RAt=({slug:e})=>{let t=Ee(),n=t?Zo():"";return G7n.renderString(V7n,{slug:e,gitMode:t,mainline:n})}});import{existsSync as W7n,readFileSync as K7n}from"node:fs";import{join as Y7n}from"node:path";var wAt,Z7n,J7n,kAt,IAt=v(()=>{"use strict";gt();wAt=Re(Kt(),1);ht();Rt();Z7n=new Te({autoEscape:!1,useWith:!0}),J7n=ie("@canon:intent/seal/pending_seal"),kAt=({slug:e,action:t,dir:n})=>{let r=t.default_branch||"the default branch",i="";try{let s=Y7n(n,"intent.md");if(W7n(s)){let o=(0,wAt.default)(K7n(s,"utf8")).data;typeof o.draft_pr_url=="string"&&(i=o.draft_pr_url)}}catch{}return Z7n.renderString(J7n,{slug:e,defaultBranch:r,prUrl:i,intentMain:`haiku/${e}/main`})}});var X7n,Q7n,xAt,OAt=v(()=>{"use strict";gt();ns();ht();Rt();X7n=new Te({autoEscape:!1,useWith:!0}),Q7n=ie("@canon:intent/seal/seal_intent"),xAt=({slug:e,dir:t})=>X7n.renderString(Q7n,{slug:e,providerBlock:qI("seal_intent",t)})});var $7n,eJn,PAt,NAt=v(()=>{"use strict";gt();ht();Rt();$7n=new Te({autoEscape:!1,useWith:!0}),eJn=ie("@canon:intent/setup/migrated"),PAt=({action:e})=>$7n.renderString(eJn,{message:e.message??""})});var tJn,nJn,CAt,MAt=v(()=>{"use strict";gt();ht();Rt();tJn=new Te({autoEscape:!1,useWith:!0}),nJn=ie("@canon:intent/setup/select_studio"),CAt=({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 tJn.renderString(nJn,{slug:e,studioListing:r,emptyFallback:i})}});import{existsSync as DAt,readFileSync as LAt}from"node:fs";import{join as UAt}from"node:path";function iJn(e,t){let n=UAt(ce(e),"intent.md");if(!DAt(n))return"";let r=re(LAt(n,"utf8")).data,i=r.mode||"";if(t&&rJn.has(i)){let s=Tv(e,t)?.url;if(s)return s}return r.draft_pr_url||""}function cJn(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=UAt(cr(e,t),"units",r);if(!DAt(i))return[];try{let{data:s}=(0,FAt.default)(LAt(i,"utf8")),o=s.outputs;return Array.isArray(o)?o.filter(a=>typeof a=="string"):[]}catch{return[]}}function uJn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=aJn[i],a="",c;if(o){let m=xEe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${_b({intent:t,stage:r||void 0,kind:"engine-body",name:i,body:m})}\``}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 m=qD(n,r,i);m&&(c=ju({mandatePath:m,studio:n,stage:r}))}let u=r?s.flatMap(m=>cJn(t,r,m)).filter((m,g,y)=>y.indexOf(m)===g):[],l=UT.has(i)?bs("runtime-verification"):"",d=FT.has(i),f=d?iJn(t,r):"",p=xEe.renderString(oJn,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,outputPaths:u,doctrineRef:l,prInteraction:d,proofTargetPrUrl:f,existingFeedback:jI(t,r),decisions:HI(t)});return{dispatchBlock:Ti({unit:`approval-${i}`,hat:"approval",bolt:1,intent:t,stage:r||void 0,agentType:"general-purpose",model:c,promptBody:p,heading:`### Subagent: \`${i}\` (post-execute approval)`,omitBolt:!0}),isEngineRole:o!==void 0}}var FAt,rJn,xEe,sJn,oJn,aJn,jAt,HAt=v(()=>{"use strict";gt();FAt=Re(Kt(),1);ze();Kn();vl();ns();ht();Fh();Rt();rJn=new Set(["discrete","discrete-hybrid"]);xEe=new Te({autoEscape:!1,useWith:!0}),sJn=ie("@canon:stage/approve/dispatch_approval"),oJn=ie("@canon:stage/approve/dispatch_approval","subagent.eta.md"),aJn={spec:ie("@canon:stage/approve/dispatch_approval","engine-bodies/spec.eta.md"),continuity:ie("@canon:stage/approve/dispatch_approval","engine-bodies/continuity.eta.md"),"cross-stage-consistency":ie("@canon:stage/approve/dispatch_approval","engine-bodies/cross_stage_consistency.eta.md")};jAt=({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=>uJn({slug:e,studio:t,stage:r,role:c.role,units:c.units})),o=s.map(c=>c.dispatchBlock).join(` -`),a=[...new Set(i.flatMap(c=>c.units))];return kEe.renderString(iJn,{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 uJn,lJn,HAt,qAt=v(()=>{"use strict";gt();ht();Rt();uJn=new Te({autoEscape:!1,useWith:!0}),lJn=ie("@canon:stage/approve/dispatch_quality_gates"),HAt=({slug:e,action:t})=>{let n=t.stage||"",r=t.units||[],s=(t.scope||"")==="intent"||n==="";return uJn.renderString(lJn,{slug:e,stage:n,units:r,unitCount:r.length,unitsJson:JSON.stringify(r),intentScope:s})}});var dJn,fJn,BAt,zAt=v(()=>{"use strict";gt();ht();Rt();dJn=new Te({autoEscape:!1,useWith:!0}),fJn=ie("@canon:stage/complete/advance_phase"),BAt=({slug:e,action:t})=>{let n=t.to_phase;return dJn.renderString(fJn,{slug:e,toPhase:n})}});var pJn,hJn,GAt,VAt=v(()=>{"use strict";gt();ht();Rt();pJn=new Te({autoEscape:!1,useWith:!0}),hJn=ie("@canon:stage/complete/advance_stage"),GAt=({slug:e,action:t})=>{let n=t.stage,r=t.next_stage;return pJn.renderString(hJn,{slug:e,stage:n,nextStage:r})}});var mJn,gJn,WAt,KAt=v(()=>{"use strict";gt();ts();ht();Rt();mJn=new Te({autoEscape:!1,useWith:!0}),gJn=ie("@canon:stage/complete/complete_stage"),WAt=({slug:e,action:t,dir:n})=>{let r=t.stage||"";return mJn.renderString(gJn,{slug:e,stage:r,providerBlock:qI("complete_stage",n)})}});var yJn,SJn,YAt,ZAt=v(()=>{"use strict";gt();ht();Rt();yJn=new Te({autoEscape:!1,useWith:!0}),SJn=ie("@canon:stage/complete/record_observations"),YAt=({slug:e,action:t})=>{let n=t.stage||"";return yJn.renderString(SJn,{slug:e,stage:n})}});import{execFileSync as bJn,execSync as JAt}from"node:child_process";import{existsSync as _c,readdirSync as op,readFileSync as P6,statSync as EJn}from"node:fs";import{join as br,resolve as _Jn}from"node:path";function tU(e){if(!_c(e))return{};let t=P6(e,"utf8"),{data:n}=re(t);return n}function XAt(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=P6(br(s,c),"utf8"),{data:l}=(0,IEe.default)(u);if(!(l.required!==!1))continue;let f=l.location||"";if(!f||f.startsWith("("))continue;let p=f.replace("{intent-slug}",e),h=br(process.cwd(),p);p.endsWith("/")?(!_c(h)||op(h).filter(m=>m!==".gitkeep").length===0)&&a.push({name:l.name||c,location:p}):_c(h)||a.push({name:l.name||c,location:p})}if(a.length>0)return{action:"outputs_missing",intent:e,stage:t,missing:a,message:`Cannot advance to review: ${a.length} required output(s) not found. +`),a=[...new Set(i.flatMap(c=>c.units))];return xEe.renderString(sJn,{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 lJn,dJn,qAt,BAt=v(()=>{"use strict";gt();ht();Rt();lJn=new Te({autoEscape:!1,useWith:!0}),dJn=ie("@canon:stage/approve/dispatch_quality_gates"),qAt=({slug:e,action:t})=>{let n=t.stage||"",r=t.units||[],s=(t.scope||"")==="intent"||n==="";return lJn.renderString(dJn,{slug:e,stage:n,units:r,unitCount:r.length,unitsJson:JSON.stringify(r),intentScope:s})}});var fJn,pJn,zAt,GAt=v(()=>{"use strict";gt();ht();Rt();fJn=new Te({autoEscape:!1,useWith:!0}),pJn=ie("@canon:stage/complete/advance_phase"),zAt=({slug:e,action:t})=>{let n=t.to_phase;return fJn.renderString(pJn,{slug:e,toPhase:n})}});var hJn,mJn,VAt,WAt=v(()=>{"use strict";gt();ht();Rt();hJn=new Te({autoEscape:!1,useWith:!0}),mJn=ie("@canon:stage/complete/advance_stage"),VAt=({slug:e,action:t})=>{let n=t.stage,r=t.next_stage;return hJn.renderString(mJn,{slug:e,stage:n,nextStage:r})}});var gJn,yJn,KAt,YAt=v(()=>{"use strict";gt();ns();ht();Rt();gJn=new Te({autoEscape:!1,useWith:!0}),yJn=ie("@canon:stage/complete/complete_stage"),KAt=({slug:e,action:t,dir:n})=>{let r=t.stage||"";return gJn.renderString(yJn,{slug:e,stage:r,providerBlock:qI("complete_stage",n)})}});var SJn,bJn,ZAt,JAt=v(()=>{"use strict";gt();ht();Rt();SJn=new Te({autoEscape:!1,useWith:!0}),bJn=ie("@canon:stage/complete/record_observations"),ZAt=({slug:e,action:t})=>{let n=t.stage||"";return SJn.renderString(bJn,{slug:e,stage:n})}});import{execFileSync as EJn,execSync as XAt}from"node:child_process";import{existsSync as _c,readdirSync as op,readFileSync as P6,statSync as _Jn}from"node:fs";import{join as br,resolve as TJn}from"node:path";function tU(e){if(!_c(e))return{};let t=P6(e,"utf8"),{data:n}=re(t);return n}function QAt(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=P6(br(s,c),"utf8"),{data:l}=(0,OEe.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(` `)} @@ -1002,16 +1002,16 @@ The execution phase must produce these artifacts. Go back and create them, then `).map(p=>`> ${p}`).join(` `):"",u=[s.location?`**Location:** \`${s.location}\` (paragraph ${s.paragraph})`:`**Location:** paragraph ${s.paragraph}`];a&&u.push("","**Selected text:**","",a),u.push("","**Comment:**","",s.comment);let l=u.join(` `),d=s.location?`${s.location}:paragraph=${s.paragraph}`:`paragraph:${s.paragraph}`,f=Qo(e,t,{title:o,body:l,origin:"user-visual",author:"user",source_ref:d});r.push(f.feedback_id)}if(n.feedback?.trim()){let s=n.feedback.trim(),o=s.length>120?`${s.slice(0,117)}...`:s,a=Qo(e,t,{title:o,body:s,origin:"user-chat",author:"user"});r.push(a.feedback_id)}return r.length>0&&wt(t?`feedback: create ${r.join(", ")} from review UI in ${t}`:`feedback: create ${r.join(", ")} from review UI (intent-scope)`),r}function Tx(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:()=>JK(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 QAt(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=P6(br(s,c),"utf8"),{data:l}=(0,IEe.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. +`)}function $At(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=P6(br(s,c),"utf8"),{data:l}=(0,OEe.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 $At(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(!TJn.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 ewt(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(!vJn.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 ewt(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=tU(br(n,s)),a=o.status||"";if(["complete","skipped","failed"].includes(a))continue;(o.inputs||o.refs||[]).length===0&&i.push(s.replace(/\.md$/,""))}if(i.length>0){let s=e.split("/intents/")[1]||"";return{action:"unit_inputs_missing",intent:s,stage:t,missing_units:i,message:`Cannot advance to execution: ${i.length} unit(s) have no \`inputs:\` field. +Rename the files to match the convention, then call \`haiku_run_next { intent: "${o}" }\` again.`}}return null}function twt(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=tU(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. @@ -1019,7 +1019,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 twt(e){let t=br(e,"coverage-decisions.json");if(!_c(t))return new Set;try{let n=JSON.parse(P6(t,"utf8")),r=new Set;for(let i of n.decisions??[])i?.path&&r.add(i.path);return r}catch{return new Set}}function RJn(e,t){let n=[];for(let r of vJn){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=EJn(d);f.isDirectory()?s.push(l):f.isFile()&&n.push(`${t}/${r}/${l}`)}catch{}}}}return n}function AJn(e){if(!_c(e))return[];let t=[];for(let n of op(e)){if(!n.endsWith(".md"))continue;let i=tU(br(e,n)).outputs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.push(s.trim())}return t}function wJn(e){let t=new Set;if(!_c(e))return t;for(let n of op(e)){if(!n.endsWith(".md"))continue;let r=tU(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 nwt(e,t,n){if(n.length===0)return null;let r=br(e,"stages",t,"units"),i=wJn(r),s=twt(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=AJn(br(l,"units")),p=RJn(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 nwt(e){let t=br(e,"coverage-decisions.json");if(!_c(t))return new Set;try{let n=JSON.parse(P6(t,"utf8")),r=new Set;for(let i of n.decisions??[])i?.path&&r.add(i.path);return r}catch{return new Set}}function AJn(e,t){let n=[];for(let r of RJn){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=_Jn(d);f.isDirectory()?s.push(l):f.isFile()&&n.push(`${t}/${r}/${l}`)}catch{}}}}return n}function wJn(e){if(!_c(e))return[];let t=[];for(let n of op(e)){if(!n.endsWith(".md"))continue;let i=tU(br(e,n)).outputs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.push(s.trim())}return t}function kJn(e){let t=new Set;if(!_c(e))return t;for(let n of op(e)){if(!n.endsWith(".md"))continue;let r=tU(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 rwt(e,t,n){if(n.length===0)return null;let r=br(e,"stages",t,"units"),i=kJn(r),s=nwt(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=wJn(br(l,"units")),p=AJn(l,d);for(let h of[...f,...p])a.has(h)||(a.add(h),!i.has(h)&&(s.has(h)||o.push({path:h,from_stage:u})))}if(o.length===0)return null;let c=e.split("/intents/")[1]||"";return{action:"coverage_review_required",intent:c,stage:t,unreferenced:o,message:`Cannot advance past elaborate: ${o.length} prior-stage output(s) are not referenced by any unit's \`inputs:\` in stage '${t}' AND have no entry in \`stages/${t}/coverage-decisions.json\`. Continuity contract: downstream stages must cover upstream deliverables. For each unreferenced file, EITHER: (a) Call \`haiku_unit_set { intent: "${c}", stage: "${t}", unit: "", field: "inputs", value: [...existing, ""] }\` to add it to a unit's inputs (the canonical path). @@ -1029,8 +1029,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 xJn(e){return!(!kJn.test(e)||IJn.test(e))}function OJn(e){let t=e.replace(/^.*\//,""),n=t.lastIndexOf(".");return n>0?t.slice(0,n):t}function PJn(e){return e.startsWith(".haiku/")}function NJn(e,t,n){if(t===""||t.length<2)return[];try{return bJn("git",["grep","-lw","--",t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).split(` -`).map(i=>i.trim()).filter(i=>i!==""&&i!==n&&!PJn(i))}catch{return[]}}function rwt(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=tU(br(u,l)).outputs||[];for(let p of f)typeof p!="string"||!xJn(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=twt(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=OJn(c.path);NJn(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 OJn(e){return!(!IJn.test(e)||xJn.test(e))}function PJn(e){let t=e.replace(/^.*\//,""),n=t.lastIndexOf(".");return n>0?t.slice(0,n):t}function NJn(e){return e.startsWith(".haiku/")}function CJn(e,t,n){if(t===""||t.length<2)return[];try{return EJn("git",["grep","-lw","--",t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).split(` +`).map(i=>i.trim()).filter(i=>i!==""&&i!==n&&!NJn(i))}catch{return[]}}function iwt(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=tU(br(u,l)).outputs||[];for(let p of f)typeof p!="string"||!OJn(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=nwt(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=PJn(c.path);CJn(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. @@ -1040,16 +1040,16 @@ Orphan outputs: ${o.map(c=>`- \`${c.path}\` (declared by ${c.from_unit} in stage '${c.from_stage}')`).join(` `)} -After resolving each, call \`haiku_run_next { intent: "${a}" }\` to re-run the validator.`}}function iwt(e,t){let n=ve(),r=br(n,"intents",e),i=br(r,"intent.md"),s;try{s=JAt("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{s=process.cwd()}function o(p){let h=tU(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";IEe=Re(Kt(),1);Ci();ze();Kn();ts();ns();TJn=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;vJn=["artifacts","outputs","knowledge","discovery"];kJn=/\.(ts|tsx|js|jsx|mjs|cjs)$/i,IJn=/\.(test|spec)\.[a-z]+$|\/__tests__\/|\/test\//i});import{existsSync as Vg,mkdirSync as CJn,readdirSync as MJn,readFileSync as awt,renameSync as DJn}from"node:fs";import{dirname as LJn,join as tu}from"node:path";function swt(e){if(!Vg(e))return{};let t=awt(e,"utf8"),{data:n}=re(t);return n}function xEe(e,t,n,r){let i=cft(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[FJn,"",...o].join(` -`).trimEnd()}function owt(){let e=$0();if(e.length===0)return null;let t=e.map(n=>{let r=n.description?` \u2014 ${n.description}`:"";return`- \`/${n.slug}\`${r}`});return vx.renderString(XJn,{preamble:jJn,skillLines:t})}function QJn(e){let{slug:t,studio:n,action:r,dir:i}=e,s=r.stage,o=$i(n,s),c=BI(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=swt(F),U=V.title||B,M=V.hat||"",j=Array.isArray(V.outputs)?V.outputs:[],H=[`- **${B}** \u2014 ${U}`,M?` - hat: \`${M}\``:null,j.length>0?` - outputs: ${j.map(K=>`\`${K}\``).join(", ")}`:null,` - file: \`.haiku/intents/${t}/stages/${s}/units/${B}.md\``].filter(Boolean).join(` +After resolving each, call \`haiku_run_next { intent: "${a}" }\` to re-run the validator.`}}function swt(e,t){let n=ve(),r=br(n,"intents",e),i=br(r,"intent.md"),s;try{s=XAt("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{s=process.cwd()}function o(p){let h=tU(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";OEe=Re(Kt(),1);Ci();ze();Kn();ns();ji();vJn=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;RJn=["artifacts","outputs","knowledge","discovery"];IJn=/\.(ts|tsx|js|jsx|mjs|cjs)$/i,xJn=/\.(test|spec)\.[a-z]+$|\/__tests__\/|\/test\//i});import{existsSync as Vg,mkdirSync as MJn,readdirSync as DJn,readFileSync as cwt,renameSync as LJn}from"node:fs";import{dirname as UJn,join as tu}from"node:path";function owt(e){if(!Vg(e))return{};let t=cwt(e,"utf8"),{data:n}=re(t);return n}function PEe(e,t,n,r){let i=lft(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[jJn,"",...o].join(` +`).trimEnd()}function awt(){let e=$0();if(e.length===0)return null;let t=e.map(n=>{let r=n.description?` \u2014 ${n.description}`:"";return`- \`/${n.slug}\`${r}`});return vx.renderString(QJn,{preamble:HJn,skillLines:t})}function $Jn(e){let{slug:t,studio:n,action:r,dir:i}=e,s=r.stage,o=es(n,s),c=BI(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=owt(F),U=V.title||B,M=V.hat||"",j=Array.isArray(V.outputs)?V.outputs:[],H=[`- **${B}** \u2014 ${U}`,M?` - hat: \`${M}\``:null,j.length>0?` - outputs: ${j.map(K=>`\`${K}\``).join(", ")}`:null,` - file: \`.haiku/intents/${t}/stages/${s}/units/${B}.md\``].filter(Boolean).join(` `);Q.push(H)}y.push(Q.join(` `))}f.length>0&&y.push(`### Pending Units (targets for this iteration) ${f.map(Q=>`- \`${Q}\``).join(` `)} -These units exist but haven't been executed. If they're still relevant, leave them. Revise their specs if the intent has evolved. Reject individual units by deleting their file (not advised unless clearly obsolete).`),y.push(bs("workflow-contracts-elaborate"));let q=xEe(n,s,i,t);return q&&y.push(q),y.push(vx.renderString(UJn,{slug:t})),y.join(` +These units exist but haven't been executed. If they're still relevant, leave them. Revise their specs if the intent has evolved. Reject individual units by deleting their file (not advised unless clearly obsolete).`),y.push(bs("workflow-contracts-elaborate"));let q=PEe(n,s,i,t);return q&&y.push(q),y.push(vx.renderString(FJn,{slug:t})),y.join(` `)}if(l>1){g||y.push(`## Revisit Elaborate: ${s} (iteration #${l})`),m&&y.push(`### Validation Error @@ -1065,7 +1065,7 @@ ${h.map(B=>`- **${B.feedback_id}** \u2014 ${B.title} - origin: ${B.origin} \xB7 author: ${B.author}`).join(` `)} -You MUST open every file above and read it completely before drafting units. The title is only a handle; the body carries requirements, tests, and acceptance criteria.`);let q=xEe(n,s,i,t);q&&y.push(q);let Q=owt();return Q&&y.push(Q),y.push("### Responsibilities\n\n- Read every `pending_feedback[].file` in full before drafting \u2014 the title is only a handle.\n- Draft one or more new units whose `closes:` frontmatter references the feedback items they resolve.\n- Every pending feedback item MUST be referenced by at least one new unit's `closes:` (orphans block advancement).\n- Ask the user clarifying questions (`AskUserQuestion` with options[]) when trade-offs are unclear; iterate across turns.\n- When the user approves the drafted units, call `haiku_run_next` to advance.\n\nInputs (read directly \u2014 do not inline summaries, open the actual files):\n- every `pending_feedback[].file` listed above\n- `stage_metadata` (STAGE.md body + review agents)\n- `completed_units` (read-only reference)\n- `intent.md` for overall goals"),y.push(`### Mechanics +You MUST open every file above and read it completely before drafting units. The title is only a handle; the body carries requirements, tests, and acceptance criteria.`);let q=PEe(n,s,i,t);q&&y.push(q);let Q=awt();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. @@ -1075,14 +1075,14 @@ You MUST open every file above and read it completely before drafting units. The `)}if(g||y.push(`## Elaborate: ${s}`),o&&y.push(`${o.body}`),Zfe(n,s,"ELABORATION")){let q=kr({resolveBody:()=>XK(n,s,"ELABORATION"),toolName:"haiku_read_phase",toolArgs:{studio:n,stage:s,phase:"ELABORATION"},intent:t,stage:s,kind:"phase",name:"ELABORATION"});y.push(`### Phase: Elaboration Override -${q}`)}y.push(bs("workflow-contracts-elaborate"));let b=qI("elaborate",i);b&&y.push(b);let S=xEe(n,s,i,t);S&&y.push(S);let E=wn(Vg(tu(i,"intent.md"))?swt(tu(i,"intent.md")):{},n),_=[],T=[];if(o?.data?.inputs&&Array.isArray(o.data.inputs)){let q=o.data.inputs,Q=Xpe(q,E),B=$K(n,Q,i,t),F=B.filter(U=>U.exists),V=B.filter(U=>!U.exists);if(F.length>0){T=F.map(U=>U.resolvedPath.startsWith(`${i}/`)?U.resolvedPath.slice(i.length+1):U.resolvedPath);for(let U of F){let M=U.resolvedPath.startsWith(`${i}/`)?U.resolvedPath.slice(i.length+1):U.resolvedPath;_.push(`- **${U.stage}/${U.artifactName}** (${U.kind}) \u2014 \`${M}\``)}}V.length>0&&y.push(`## \u26A0 Missing Upstream Artifacts +${q}`)}y.push(bs("workflow-contracts-elaborate"));let b=qI("elaborate",i);b&&y.push(b);let S=PEe(n,s,i,t);S&&y.push(S);let E=wn(Vg(tu(i,"intent.md"))?owt(tu(i,"intent.md")):{},n),_=[],T=[];if(o?.data?.inputs&&Array.isArray(o.data.inputs)){let q=o.data.inputs,Q=Xpe(q,E),B=$K(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: ${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 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=[HJn];_.length>0&&(q.push("","### Declared Inputs (from STAGE.md)"),q.push("",..._)),R.length>0&&q.push("",qJn,"",...R,"",BJn),y.push(q.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 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=[qJn];_.length>0&&(q.push("","### Declared Inputs (from STAGE.md)"),q.push("",..._)),R.length>0&&q.push("",BJn,"",...R,"",zJn),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. @@ -1100,7 +1100,7 @@ This project carries knowledge that persists across intents (\`scope: project\`) ${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 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 MJn(B).filter(V=>V.endsWith(".md"))){if(q.has(F))continue;q.add(F);let V=tu(B,F),U=awt(V,"utf8"),{data:M}=re(U),j=M.location,H=typeof j=="string"?j.replace(/\{intent-slug\}/g,t):j,K=null;typeof H=="string"&&H.length>0&&(H.startsWith(".haiku/")?K=tu(process.cwd(),H):H.startsWith("/")?K=H:K=tu(i,H)),A.push({name:F.replace(/\.md$/i,"").toLowerCase(),templatePath:V,outputPath:K})}}}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{CJn(LJn(q.outputPath),{recursive:!0}),DJn(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(j=>`\`${j.name}\``).join(", "),Q=k.length!==1?"s":"",B=kr({resolveBody:()=>Yh(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) +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 DJn(B).filter(V=>V.endsWith(".md"))){if(q.has(F))continue;q.add(F);let V=tu(B,F),U=cwt(V,"utf8"),{data:M}=re(U),j=M.location,H=typeof j=="string"?j.replace(/\{intent-slug\}/g,t):j,K=null;typeof H=="string"&&H.length>0&&(H.startsWith(".haiku/")?K=tu(process.cwd(),H):H.startsWith("/")?K=H:K=tu(i,H)),A.push({name:F.replace(/\.md$/i,"").toLowerCase(),templatePath:V,outputPath:K})}}}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{MJn(UJn(q.outputPath),{recursive:!0}),LJn(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(j=>`\`${j.name}\``).join(", "),Q=k.length!==1?"s":"",B=kr({resolveBody:()=>Yh(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${Q}: ${q}. @@ -1110,7 +1110,7 @@ ${bs("workflow-contracts-announcement")} ${zI(k.length,"discovery subagents",{forceForeground:c})} -`;for(let j of k){let H=xpe(t,s,j.name),K=H?j.outputPath?j.outputPath.startsWith(i)?tu(H,".haiku","intents",t,j.outputPath.slice(i.length+1)):j.outputPath.startsWith(process.cwd())?tu(H,j.outputPath.slice(process.cwd().length+1)):j.outputPath:tu(H,".haiku","intents",t,"knowledge",`${j.name.toUpperCase()}.md`):null,ee=kr({resolveBody:()=>wI(n,s,j.name),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:s,template:j.name},intent:t,stage:s,kind:"discovery-template",name:j.name}),se=vx.renderString(JJn,{artifactName:j.name,slug:t,stage:s,studio:n,worktree:H,branchName:H?CI(t,s,j.name):"",expectedArtifactPath:K,intentRef:B,stageRef:F,templateRef:ee}),Le=ju({mandatePath:j.templatePath,studio:n,stage:s});V+=`${Ti({unit:"discovery",hat:j.name,bolt:1,intent:t,stage:s,agentType:"general-purpose",model:Le,promptBody:se,heading:`### Subagent: \`${j.name}\``,forceForeground:c,omitBolt:!0})} +`;for(let j of k){let H=xpe(t,s,j.name),K=H?j.outputPath?j.outputPath.startsWith(i)?tu(H,".haiku","intents",t,j.outputPath.slice(i.length+1)):j.outputPath.startsWith(process.cwd())?tu(H,j.outputPath.slice(process.cwd().length+1)):j.outputPath:tu(H,".haiku","intents",t,"knowledge",`${j.name.toUpperCase()}.md`):null,ee=kr({resolveBody:()=>wI(n,s,j.name),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:s,template:j.name},intent:t,stage:s,kind:"discovery-template",name:j.name}),se=vx.renderString(XJn,{artifactName:j.name,slug:t,stage:s,studio:n,worktree:H,branchName:H?CI(t,s,j.name):"",expectedArtifactPath:K,intentRef:B,stageRef:F,templateRef:ee}),Le=ju({mandatePath:j.templatePath,studio:n,stage:s});V+=`${Ti({unit:"discovery",hat:j.name,bolt:1,intent:t,stage:s,agentType:"general-purpose",model:Le,promptBody:se,heading:`### Subagent: \`${j.name}\``,forceForeground:c,omitBolt:!0})} `}let U=Mi().subagents.backgroundSpawn&&!c?' Each `` carries `background="true"` \u2014 pass `run_in_background: true` to the Task tool so the parent thread stays responsive while discovery agents run.':"",M=c?` **You are in autopilot mode \u2014 do NOT yield.** Spawn the subagents in the foreground (the \`\` blocks above carry no \`background\` attribute) and wait for every one to return in this same response. The instant the last subagent returns, call \`haiku_run_next { intent: "${t}" }\` in the SAME response. The next tick emits the unit-decomposition instructions, which you also handle in-turn. Autopilot is a contiguous drive \u2014 pausing across turns defeats the mode.`:` When ALL subagents return, call \`haiku_run_next { intent: "${t}" }\` \u2014 the workflow engine merges their isolation worktrees back into the stage branch (resolving conflicts via the integrator if needed) and then emits the unit-decomposition instructions. **Do NOT proceed to decomposition in this response** \u2014 wait for the next workflow tick so the merged knowledge artifacts are visible.`;return V+=`### Parent Instructions (do NOT include in subagent prompts) @@ -1118,41 +1118,41 @@ Spawn each subagent above using the \`prompt_file\` attribute \u2014 pass \`"Rea `)}let P=Tx(n,s,`## Stage Output Expectations -This stage must ultimately produce the following outputs during execution. Plan units accordingly:`,t);P&&y.push(P),o?.data?.produces==="build"&&y.push("## Build-Class Units: Declare Verification\n\nThis is a **build** stage \u2014 every unit that declares `outputs:` MUST also declare a `quality_gates:` field. Pair each produced artifact with the executable check that verifies it (the verify-command pattern in this stage's elaboration guidance). If a unit genuinely defers verification to a sibling test unit, declare an explicit empty list (`quality_gates: []`) \u2014 but the field must be present so the choice is deliberate and reviewable. `haiku_unit_write` will reject a producing unit that omits it.\n\n**Gates that need a live dependency** (a test suite that hits a database, a migration, a check that talks to a queue/cache) only verify something when that dependency is running. Declare the dependency once as a service in `.haiku/boot.md` \u2014 a `processes:` entry with `service: true` and `requires_tool: docker` (e.g. a `docker compose up` Postgres with a `ready_url` health probe). At gate time the engine brings declared services up via the live tool, or \u2014 if the tool isn't available \u2014 escalates to the user. It will NOT advance a gate that couldn't reach its dependency, so a missing service recipe turns into a hold, not a false green. If this project already has a `docker-compose.yml` / `Makefile` the engine can auto-detect it, but a `.haiku/boot.md` service entry is the reproducible declaration.\n\n**Declare real internal services; never mock them.** Internal infrastructure the app owns \u2014 its database, cache, queue, search, object store (Postgres, Redis, Mongo, Elasticsearch, Kafka, \u2026) \u2014 MUST be a real `service:` process in `.haiku/boot.md`; never a mock, in-memory fake, or SQLite stand-in, because a gate that passes against a faked datastore verified nothing about migrations/queries/persistence. Third-party SaaS the app only calls across the network (Stripe, Twilio, SendGrid, vendor LLM/auth APIs) is the opposite: do NOT declare it as a `service:` to run \u2014 stub it or use the vendor sandbox at the app's edge, since hitting it live costs money and fires real side effects. The line is ownership: a process we stand up ourselves is real; a vendor API we call out to is mocked.");let N=o?.data?.hats||[];(s.includes("design")||N.some(q=>q.includes("designer")||q.includes("design"))||o?.body?.includes("pick_design_direction"))&&y.push(zJn),y.push(vx.renderString(GJn,{collaborative:u==="collaborative"}));let L=owt();L&&y.push(L);let G=u==="collaborative"?VJn:WJn,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.':"",$=vx.renderString(KJn,{slug:t,stage:s});return y.push(`${YJn} +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(GJn),y.push(vx.renderString(VJn,{collaborative:u==="collaborative"}));let L=awt();L&&y.push(L);let G=u==="collaborative"?WJn:KJn,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.':"",$=vx.renderString(YJn,{slug:t,stage:s});return y.push(`${ZJn} ${G}${W} ${$}`),g||y.push(Lf("decompose",{slug:t,stage:s})),y.join(` -`)}var vx,UJn,FJn,jJn,HJn,qJn,BJn,zJn,GJn,VJn,WJn,KJn,YJn,ZJn,JJn,XJn,cwt,uwt=v(()=>{"use strict";gt();ar();_f();ze();Kn();ns();C6();ts();ht();Fh();Rt();vx=new Te({autoEscape:!1,useWith:!0}),UJn=ie("@canon:stage/elaborate/decompose","blocks/iterative-decide.eta.md"),FJn=ie("@canon:stage/elaborate/decompose","blocks/lens-preamble.md"),jJn=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-preamble.md"),HJn=ie("@canon:stage/elaborate/decompose","blocks/upstream-context-header.md"),qJn=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-preamble.md"),BJn=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-footer.md"),zJn=ie("@canon:stage/elaborate/decompose","blocks/design-provider-mcps.md"),GJn=ie("@canon:stage/elaborate/decompose","blocks/approach-selection.eta.md"),VJn=ie("@canon:stage/elaborate/decompose","blocks/collaborative-mechanics.md"),WJn=ie("@canon:stage/elaborate/decompose","blocks/autonomous-mechanics.md"),KJn=ie("@canon:stage/elaborate/decompose","blocks/elaborate-output-tail.eta.md"),YJn=ie("@canon:stage/elaborate/decompose","blocks/scope-header.md"),ZJn=ie("@canon:stage/elaborate/decompose","blocks/file-based-pointer.eta.md"),JJn=ie("@canon:stage/elaborate/decompose","blocks/discovery-subagent.eta.md"),XJn=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-section.eta.md");cwt=e=>{let t=e.action.prompt_file;return t?vx.renderString(ZJn,{promptFile:t}):QJn(e)}});import{join as $Jn}from"node:path";var lwt,eXn,tXn,dwt,fwt=v(()=>{"use strict";gt();ze();Kn();ts();ht();Rt();lwt=new Te({autoEscape:!1,useWith:!0}),eXn=ie("@canon:stage/elaborate/decompose_review"),tXn=ie("@canon:stage/elaborate/decompose_review","subagent.eta.md"),dwt=e=>{let t=e.action,n=t.stage,r=t.intent??e.slug,i=e.studio,s=t.verifier_nonce??"",o=kr({resolveBody:()=>Yh(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=$Jn(e.dir,"stages",n,"elaboration.md"),u=Lf("verify_decompose",{slug:r,stage:n}),l=lwt.renderString(tXn,{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 lwt.renderString(eXn,{stage:n,intentSlug:r,elabPath:c,concurrentLoopBlock:u,verifierNonce:s,composedMode:e.composedMode===!0,dispatchBlock:d})}});var pwt,nXn,rXn,OEe,hwt=v(()=>{"use strict";gt();Kn();ts();ht();Rt();pwt=new Te({autoEscape:!1,useWith:!0}),nXn=ie("@canon:stage/elaborate/discovery_required"),rXn=ie("@canon:stage/elaborate/discovery_required","subagent.eta.md"),OEe=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:()=>wI(n,i,l),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:i,template:l},intent:t,stage:i,kind:"discovery-template",name:l}),b=pwt.renderString(rXn,{agent:l,stage:i,slug:t,unit:f,resolvedLocation:h,templateRef:y}),S=ju({mandatePath:Yfe(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 pwt.renderString(nXn,{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 iXn,sXn,mwt,gwt=v(()=>{"use strict";gt();ze();Kn();ts();ht();Rt();iXn=new Te({autoEscape:!1,useWith:!0}),sXn=ie("@canon:stage/elaborate/elaborate"),mwt=e=>{let t=e.action,n=t.stage??"(unknown)",r=t.intent??e.slug,i=kr({resolveBody:()=>Yh(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 iXn.renderString(sXn,{stage:n,intentSlug:r,intentRef:i,stageRef:s,concurrentLoopBlock:o,composedMode:e.composedMode===!0})}});import{join as oXn}from"node:path";var ywt,aXn,cXn,Swt,bwt=v(()=>{"use strict";gt();ze();Kn();ts();ht();Rt();ywt=new Te({autoEscape:!1,useWith:!0}),aXn=ie("@canon:stage/elaborate/elaborate_review"),cXn=ie("@canon:stage/elaborate/elaborate_review","subagent.eta.md"),Swt=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:()=>Yh(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?"":oXn(e.dir,"stages",o,"elaboration.md"),l=i?"":Lf("verify_conversation",{slug:r,stage:o}),d=ywt.renderString(cXn,{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 ywt.renderString(aXn,{isPreIntent:i,intentSlug:r,stage:o,elabPath:u,concurrentLoopBlock:l,composedMode:e.composedMode===!0,verifierNonce:s,dispatchBlock:f})}});function uXn(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 lXn(e){switch(e){case"conversation":return mwt;case"verify_conversation":return Swt;case"discovery":return OEe;case"decompose":return cwt;case"verify_decompose":return dwt}}function Ewt(e){switch(e){case"conversation":return"Signal: `conversation` \u2014 capture the stage's human-conversation outcome";case"verify_conversation":return"Signal: `verify_conversation` \u2014 dispatch the elaboration substance verifier";case"discovery":return"Signal: `discovery` \u2014 produce a missing discovery artifact";case"decompose":return"Signal: `decompose` \u2014 draft unit specs for this stage";case"verify_decompose":return"Signal: `verify_decompose` \u2014 dispatch the decompose coverage verifier"}}var _wt,Twt=v(()=>{"use strict";ts();Rt();uwt();fwt();hwt();gwt();bwt();_wt=e=>{let t=e.action,n=t.signals_unmet??[],r=t.stage,i=t.intent??e.slug,s=BI(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 vx,FJn,jJn,HJn,qJn,BJn,zJn,GJn,VJn,WJn,KJn,YJn,ZJn,JJn,XJn,QJn,uwt,lwt=v(()=>{"use strict";gt();ar();_f();ze();Kn();ji();C6();ns();ht();Fh();Rt();vx=new Te({autoEscape:!1,useWith:!0}),FJn=ie("@canon:stage/elaborate/decompose","blocks/iterative-decide.eta.md"),jJn=ie("@canon:stage/elaborate/decompose","blocks/lens-preamble.md"),HJn=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-preamble.md"),qJn=ie("@canon:stage/elaborate/decompose","blocks/upstream-context-header.md"),BJn=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-preamble.md"),zJn=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-footer.md"),GJn=ie("@canon:stage/elaborate/decompose","blocks/design-provider-mcps.md"),VJn=ie("@canon:stage/elaborate/decompose","blocks/approach-selection.eta.md"),WJn=ie("@canon:stage/elaborate/decompose","blocks/collaborative-mechanics.md"),KJn=ie("@canon:stage/elaborate/decompose","blocks/autonomous-mechanics.md"),YJn=ie("@canon:stage/elaborate/decompose","blocks/elaborate-output-tail.eta.md"),ZJn=ie("@canon:stage/elaborate/decompose","blocks/scope-header.md"),JJn=ie("@canon:stage/elaborate/decompose","blocks/file-based-pointer.eta.md"),XJn=ie("@canon:stage/elaborate/decompose","blocks/discovery-subagent.eta.md"),QJn=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-section.eta.md");uwt=e=>{let t=e.action.prompt_file;return t?vx.renderString(JJn,{promptFile:t}):$Jn(e)}});import{join as eXn}from"node:path";var dwt,tXn,nXn,fwt,pwt=v(()=>{"use strict";gt();ze();Kn();ns();ht();Rt();dwt=new Te({autoEscape:!1,useWith:!0}),tXn=ie("@canon:stage/elaborate/decompose_review"),nXn=ie("@canon:stage/elaborate/decompose_review","subagent.eta.md"),fwt=e=>{let t=e.action,n=t.stage,r=t.intent??e.slug,i=e.studio,s=t.verifier_nonce??"",o=kr({resolveBody:()=>Yh(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=eXn(e.dir,"stages",n,"elaboration.md"),u=Lf("verify_decompose",{slug:r,stage:n}),l=dwt.renderString(nXn,{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 dwt.renderString(tXn,{stage:n,intentSlug:r,elabPath:c,concurrentLoopBlock:u,verifierNonce:s,composedMode:e.composedMode===!0,dispatchBlock:d})}});var hwt,rXn,iXn,NEe,mwt=v(()=>{"use strict";gt();Kn();ns();ht();Rt();hwt=new Te({autoEscape:!1,useWith:!0}),rXn=ie("@canon:stage/elaborate/discovery_required"),iXn=ie("@canon:stage/elaborate/discovery_required","subagent.eta.md"),NEe=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:()=>wI(n,i,l),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:i,template:l},intent:t,stage:i,kind:"discovery-template",name:l}),b=hwt.renderString(iXn,{agent:l,stage:i,slug:t,unit:f,resolvedLocation:h,templateRef:y}),S=ju({mandatePath:Yfe(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 hwt.renderString(rXn,{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 sXn,oXn,gwt,ywt=v(()=>{"use strict";gt();ze();Kn();ns();ht();Rt();sXn=new Te({autoEscape:!1,useWith:!0}),oXn=ie("@canon:stage/elaborate/elaborate"),gwt=e=>{let t=e.action,n=t.stage??"(unknown)",r=t.intent??e.slug,i=kr({resolveBody:()=>Yh(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 sXn.renderString(oXn,{stage:n,intentSlug:r,intentRef:i,stageRef:s,concurrentLoopBlock:o,composedMode:e.composedMode===!0})}});import{join as aXn}from"node:path";var Swt,cXn,uXn,bwt,Ewt=v(()=>{"use strict";gt();ze();Kn();ns();ht();Rt();Swt=new Te({autoEscape:!1,useWith:!0}),cXn=ie("@canon:stage/elaborate/elaborate_review"),uXn=ie("@canon:stage/elaborate/elaborate_review","subagent.eta.md"),bwt=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:()=>Yh(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?"":aXn(e.dir,"stages",o,"elaboration.md"),l=i?"":Lf("verify_conversation",{slug:r,stage:o}),d=Swt.renderString(uXn,{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 Swt.renderString(cXn,{isPreIntent:i,intentSlug:r,stage:o,elabPath:u,concurrentLoopBlock:l,composedMode:e.composedMode===!0,verifierNonce:s,dispatchBlock:f})}});function lXn(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 dXn(e){switch(e){case"conversation":return gwt;case"verify_conversation":return bwt;case"discovery":return NEe;case"decompose":return uwt;case"verify_decompose":return fwt}}function _wt(e){switch(e){case"conversation":return"Signal: `conversation` \u2014 capture the stage's human-conversation outcome";case"verify_conversation":return"Signal: `verify_conversation` \u2014 dispatch the elaboration substance verifier";case"discovery":return"Signal: `discovery` \u2014 produce a missing discovery artifact";case"decompose":return"Signal: `decompose` \u2014 draft unit specs for this stage";case"verify_decompose":return"Signal: `verify_decompose` \u2014 dispatch the decompose coverage verifier"}}var Twt,vwt=v(()=>{"use strict";ns();Rt();lwt();pwt();mwt();ywt();Ewt();Twt=e=>{let t=e.action,n=t.signals_unmet??[],r=t.stage,i=t.intent??e.slug,s=BI(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=OEe(f)??"";o.push(`### ${Ewt("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=NEe(f)??"";o.push(`### ${_wt("discovery")} -${p.trim()}`)}for(let d of l){let f=uXn(t,d),p={...e,action:f,composedMode:!0},h=lXn(d.signal)(p)??"";o.push(`### ${Ewt(d.signal)} +${p.trim()}`)}for(let d of l){let f=lXn(t,d),p={...e,action:f,composedMode:!0},h=dXn(d.signal)(p)??"";o.push(`### ${_wt(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 dXn,fXn,vwt,Rwt=v(()=>{"use strict";gt();ht();Rt();dXn=new Te({autoEscape:!1,useWith:!0}),fXn=ie("@canon:stage/error/blocked"),vwt=({action:e})=>{let t=e.blocked_units||[];return dXn.renderString(fXn,{blockedUnits:t})}});var pXn,hXn,Awt,wwt=v(()=>{"use strict";gt();ht();Rt();pXn=new Te({autoEscape:!1,useWith:!0}),hXn=ie("@canon:stage/error/coverage_review_required"),Awt=({action:e})=>pXn.renderString(hXn,{message:e.message??""})});var mXn,gXn,kwt,Iwt=v(()=>{"use strict";gt();ht();Rt();mXn=new Te({autoEscape:!1,useWith:!0}),gXn=ie("@canon:stage/error/dag_cycle_detected"),kwt=({action:e})=>mXn.renderString(gXn,{message:e.message??""})});var yXn,SXn,xwt,Owt=v(()=>{"use strict";gt();ht();Rt();yXn=new Te({autoEscape:!1,useWith:!0}),SXn=ie("@canon:stage/error/discovery_missing"),xwt=({action:e})=>yXn.renderString(SXn,{message:e.message??""})});var bXn,EXn,Pwt,Nwt=v(()=>{"use strict";gt();ht();Rt();bXn=new Te({autoEscape:!1,useWith:!0}),EXn=ie("@canon:stage/error/elaboration_insufficient"),Pwt=({action:e})=>bXn.renderString(EXn,{message:e.message??""})});var _Xn,TXn,Cwt,Mwt=v(()=>{"use strict";gt();ze();ht();Rt();_Xn=new Te({autoEscape:!1,useWith:!0}),TXn=ie("@canon:stage/error/escalate"),Cwt=({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 _Xn.renderString(TXn,{header:l,message:o,pendingItems:a,capLine:f,rejectExample:d,isIntentScope:c})}});var vXn,RXn,Dwt,Lwt=v(()=>{"use strict";gt();ht();Rt();vXn=new Te({autoEscape:!1,useWith:!0}),RXn=ie("@canon:stage/error/gate_blocked"),Dwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return vXn.renderString(RXn,{slug:e,message:n})}});var AXn,wXn,Uwt,Fwt=v(()=>{"use strict";gt();ht();Rt();AXn=new Te({autoEscape:!1,useWith:!0}),wXn=ie("@canon:stage/error/output_liveness_review_required"),Uwt=({action:e})=>AXn.renderString(wXn,{message:e.message??""})});var kXn,IXn,jwt,Hwt=v(()=>{"use strict";gt();ht();Rt();kXn=new Te({autoEscape:!1,useWith:!0}),IXn=ie("@canon:stage/error/outputs_missing"),jwt=({action:e})=>kXn.renderString(IXn,{message:e.message??""})});var xXn,OXn,qwt,Bwt=v(()=>{"use strict";gt();ht();Rt();xXn=new Te({autoEscape:!1,useWith:!0}),OXn=ie("@canon:stage/error/save_wip"),qwt=({action:e})=>xXn.renderString(OXn,{message:e.message??""})});var PXn,NXn,zwt,Gwt=v(()=>{"use strict";gt();ht();Rt();PXn=new Te({autoEscape:!1,useWith:!0}),NXn=ie("@canon:stage/error/unit_inputs_missing"),zwt=({action:e})=>PXn.renderString(NXn,{message:e.message??""})});var CXn,MXn,Vwt,Wwt=v(()=>{"use strict";gt();ht();Rt();CXn=new Te({autoEscape:!1,useWith:!0}),MXn=ie("@canon:stage/error/unit_inputs_not_declared"),Vwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return CXn.renderString(MXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var DXn,LXn,Kwt,Ywt=v(()=>{"use strict";gt();ht();Rt();DXn=new Te({autoEscape:!1,useWith:!0}),LXn=ie("@canon:stage/error/unit_naming_invalid"),Kwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return DXn.renderString(LXn,{slug:e,message:n})}});var UXn,FXn,Zwt,Jwt=v(()=>{"use strict";gt();ht();Rt();UXn=new Te({autoEscape:!1,useWith:!0}),FXn=ie("@canon:stage/error/unit_outputs_empty_iterations"),Zwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return UXn.renderString(FXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var jXn,HXn,Xwt,Qwt=v(()=>{"use strict";gt();ht();Rt();jXn=new Te({autoEscape:!1,useWith:!0}),HXn=ie("@canon:stage/error/unresolved_dependencies"),Xwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return jXn.renderString(HXn,{slug:e,message:n})}});import{existsSync as PEe,readFileSync as $wt}from"node:fs";import{join as ap,resolve as M6}from"node:path";var D6,qXn,BXn,zXn,GXn,VXn,WXn,KXn,YXn,ekt,tkt=v(()=>{"use strict";gt();Ci();_f();pb();ze();Kn();ns();C6();ts();ht();Fh();Rt();D6=new Te({autoEscape:!1,useWith:!0}),qXn=ie("@canon:stage/execute/start_unit","blocks/worktree-and-timeouts.md"),BXn=ie("@canon:stage/execute/start_unit","blocks/required-context-preamble.md"),zXn=ie("@canon:stage/execute/start_unit","blocks/skills-preamble.md"),GXn=ie("@canon:stage/execute/start_unit","blocks/autonomy-note.md"),VXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions.eta.md"),WXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions-assessor.eta.md"),KXn=ie("@canon:stage/execute/start_unit","blocks/unit-subagent.eta.md"),YXn=ie("@canon:stage/execute/start_unit","blocks/feedback-assessor.eta.md"),ekt=({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(PEe(f)){let{data:q}=re($wt(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=Cd(t),{model:B,source:F}=fb({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=M6(r);for(let Q of p){let B=M6(r,Q);!B.startsWith(`${q}/`)&&B!==q||PEe(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=$K(t,Q,r,e).filter(U=>U.exists),V=new Set(p.map(U=>M6(r,U)));for(let U of F){if(V.has(M6(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=Tx(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=tpt(e,i,o,a,c),N=[];if(o==="feedback-assessor"){let q=PEe(f)?re($wt(f,"utf8")).data:{},Q=q.closes||[],B=q.outputs||[],F=[],V=Us(e,i);for(let K of Q){let ee=V.find(se=>se.id===K);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=Gpe(B.map(K=>({heading:`Unit output: ${K}`,path:ap(A,K)}))),j=Gpe(F.map(K=>({heading:`Feedback ${K.id}`,path:ap(A,K.file)}))),H=D6.renderString(YXn,{slug:e,stage:i,unit:s,bolt:c,worktreePath:R,intentRoot:A,unitInline:U,outputsInline:M,feedbackInline:j});if(k.subagents.supported){let K=P?`${P} +`)}});var fXn,pXn,Rwt,Awt=v(()=>{"use strict";gt();ht();Rt();fXn=new Te({autoEscape:!1,useWith:!0}),pXn=ie("@canon:stage/error/blocked"),Rwt=({action:e})=>{let t=e.blocked_units||[];return fXn.renderString(pXn,{blockedUnits:t})}});var hXn,mXn,wwt,kwt=v(()=>{"use strict";gt();ht();Rt();hXn=new Te({autoEscape:!1,useWith:!0}),mXn=ie("@canon:stage/error/coverage_review_required"),wwt=({action:e})=>hXn.renderString(mXn,{message:e.message??""})});var gXn,yXn,Iwt,xwt=v(()=>{"use strict";gt();ht();Rt();gXn=new Te({autoEscape:!1,useWith:!0}),yXn=ie("@canon:stage/error/dag_cycle_detected"),Iwt=({action:e})=>gXn.renderString(yXn,{message:e.message??""})});var SXn,bXn,Owt,Pwt=v(()=>{"use strict";gt();ht();Rt();SXn=new Te({autoEscape:!1,useWith:!0}),bXn=ie("@canon:stage/error/discovery_missing"),Owt=({action:e})=>SXn.renderString(bXn,{message:e.message??""})});var EXn,_Xn,Nwt,Cwt=v(()=>{"use strict";gt();ht();Rt();EXn=new Te({autoEscape:!1,useWith:!0}),_Xn=ie("@canon:stage/error/elaboration_insufficient"),Nwt=({action:e})=>EXn.renderString(_Xn,{message:e.message??""})});var TXn,vXn,Mwt,Dwt=v(()=>{"use strict";gt();ze();ht();Rt();TXn=new Te({autoEscape:!1,useWith:!0}),vXn=ie("@canon:stage/error/escalate"),Mwt=({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 TXn.renderString(vXn,{header:l,message:o,pendingItems:a,capLine:f,rejectExample:d,isIntentScope:c})}});var RXn,AXn,Lwt,Uwt=v(()=>{"use strict";gt();ht();Rt();RXn=new Te({autoEscape:!1,useWith:!0}),AXn=ie("@canon:stage/error/gate_blocked"),Lwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return RXn.renderString(AXn,{slug:e,message:n})}});var wXn,kXn,Fwt,jwt=v(()=>{"use strict";gt();ht();Rt();wXn=new Te({autoEscape:!1,useWith:!0}),kXn=ie("@canon:stage/error/output_liveness_review_required"),Fwt=({action:e})=>wXn.renderString(kXn,{message:e.message??""})});var IXn,xXn,Hwt,qwt=v(()=>{"use strict";gt();ht();Rt();IXn=new Te({autoEscape:!1,useWith:!0}),xXn=ie("@canon:stage/error/outputs_missing"),Hwt=({action:e})=>IXn.renderString(xXn,{message:e.message??""})});var OXn,PXn,Bwt,zwt=v(()=>{"use strict";gt();ht();Rt();OXn=new Te({autoEscape:!1,useWith:!0}),PXn=ie("@canon:stage/error/save_wip"),Bwt=({action:e})=>OXn.renderString(PXn,{message:e.message??""})});var NXn,CXn,Gwt,Vwt=v(()=>{"use strict";gt();ht();Rt();NXn=new Te({autoEscape:!1,useWith:!0}),CXn=ie("@canon:stage/error/unit_inputs_missing"),Gwt=({action:e})=>NXn.renderString(CXn,{message:e.message??""})});var MXn,DXn,Wwt,Kwt=v(()=>{"use strict";gt();ht();Rt();MXn=new Te({autoEscape:!1,useWith:!0}),DXn=ie("@canon:stage/error/unit_inputs_not_declared"),Wwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return MXn.renderString(DXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var LXn,UXn,Ywt,Zwt=v(()=>{"use strict";gt();ht();Rt();LXn=new Te({autoEscape:!1,useWith:!0}),UXn=ie("@canon:stage/error/unit_naming_invalid"),Ywt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return LXn.renderString(UXn,{slug:e,message:n})}});var FXn,jXn,Jwt,Xwt=v(()=>{"use strict";gt();ht();Rt();FXn=new Te({autoEscape:!1,useWith:!0}),jXn=ie("@canon:stage/error/unit_outputs_empty_iterations"),Jwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return FXn.renderString(jXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var HXn,qXn,Qwt,$wt=v(()=>{"use strict";gt();ht();Rt();HXn=new Te({autoEscape:!1,useWith:!0}),qXn=ie("@canon:stage/error/unresolved_dependencies"),Qwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return HXn.renderString(qXn,{slug:e,message:n})}});import{existsSync as CEe,readFileSync as ekt}from"node:fs";import{join as ap,resolve as M6}from"node:path";var D6,BXn,zXn,GXn,VXn,WXn,KXn,YXn,ZXn,tkt,nkt=v(()=>{"use strict";gt();Ci();_f();pb();ze();Kn();ji();C6();ns();ht();Fh();Rt();D6=new Te({autoEscape:!1,useWith:!0}),BXn=ie("@canon:stage/execute/start_unit","blocks/worktree-and-timeouts.md"),zXn=ie("@canon:stage/execute/start_unit","blocks/required-context-preamble.md"),GXn=ie("@canon:stage/execute/start_unit","blocks/skills-preamble.md"),VXn=ie("@canon:stage/execute/start_unit","blocks/autonomy-note.md"),WXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions.eta.md"),KXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions-assessor.eta.md"),YXn=ie("@canon:stage/execute/start_unit","blocks/unit-subagent.eta.md"),ZXn=ie("@canon:stage/execute/start_unit","blocks/feedback-assessor.eta.md"),tkt=({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(CEe(f)){let{data:q}=re(ekt(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=es(t,i),Q=Cd(t),{model:B,source:F}=fb({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=M6(r);for(let Q of p){let B=M6(r,Q);!B.startsWith(`${q}/`)&&B!==q||CEe(ap(r,Q))&&E.push(Q)}}let _=[];{let q=es(t,i);if(q?.data?.inputs&&Array.isArray(q.data.inputs)){let Q=q.data.inputs,F=$K(t,Q,r,e).filter(U=>U.exists),V=new Set(p.map(U=>M6(r,U)));for(let U of F){if(V.has(M6(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=Tx(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=rpt(e,i,o,a,c),N=[];if(o==="feedback-assessor"){let q=CEe(f)?re(ekt(f,"utf8")).data:{},Q=q.closes||[],B=q.outputs||[],F=[],V=Us(e,i);for(let K of Q){let ee=V.find(se=>se.id===K);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=Gpe(B.map(K=>({heading:`Unit output: ${K}`,path:ap(A,K)}))),j=Gpe(F.map(K=>({heading:`Feedback ${K.id}`,path:ap(A,K.file)}))),H=D6.renderString(ZXn,{slug:e,stage:i,unit:s,bolt:c,worktreePath:R,intentRoot:A,unitInline:U,outputsInline:M,feedbackInline:j});if(k.subagents.supported){let K=P?`${P} -${H}`:H;N.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:b,model:S,promptBody:K,toolAttr:!0})),N.push(D6.renderString(WXn,{backgroundSpawn:k.subagents.backgroundSpawn}))}else P&&N.push(P),N.push(`### Feedback Assessor (Direct Execution) +${H}`:H;N.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:b,model:S,promptBody:K,toolAttr:!0})),N.push(D6.renderString(KXn,{backgroundSpawn:k.subagents.backgroundSpawn}))}else P&&N.push(P),N.push(`### Feedback Assessor (Direct Execution) ${H}`);return N.join(` -`)}let C=o===(a[0]||""),L=new Map($0().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?UI(LI(l)):"",$=D6.renderString(KXn,{unit:s,hat:o,bolt:c,stage:i,studio:t,slug:e,worktreePath:R,intentRoot:A,worktreeAndTimeoutsBlock:qXn,requiredContextPreamble:BXn,stageInline:u?Rl(u,"Stage scope"):"",hatInline:l?Rl(l,`Hat: ${o}`):"",hatInterpBlock:W,unitInline:Rl(x,`Unit spec: ${s}`),outputsDir:d||"",priorRejectBlock:k3(f),unitInputPaths:E.map(q=>ap(A,q)),upstreamPaths:_.map(q=>({label:q.label,path:ap(A,q.path)})),outputReqs:T||"",skillLines:G,skillsPreamble:zXn,isStartUnit:n.action==="start_unit",isFirstHat:C,autonomyNote:GXn,subagentErrorRecovery:bs("subagent-error-recovery")});if(k.subagents.supported){let q=P?`${P} +`)}let C=o===(a[0]||""),L=new Map($0().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?UI(LI(l)):"",$=D6.renderString(YXn,{unit:s,hat:o,bolt:c,stage:i,studio:t,slug:e,worktreePath:R,intentRoot:A,worktreeAndTimeoutsBlock:BXn,requiredContextPreamble:zXn,stageInline:u?Rl(u,"Stage scope"):"",hatInline:l?Rl(l,`Hat: ${o}`):"",hatInterpBlock:W,unitInline:Rl(x,`Unit spec: ${s}`),outputsDir:d||"",priorRejectBlock:k3(f),unitInputPaths:E.map(q=>ap(A,q)),upstreamPaths:_.map(q=>({label:q.label,path:ap(A,q.path)})),outputReqs:T||"",skillLines:G,skillsPreamble:GXn,isStartUnit:n.action==="start_unit",isFirstHat:C,autonomyNote:VXn,subagentErrorRecovery:bs("subagent-error-recovery")});if(k.subagents.supported){let q=P?`${P} -${$}`:$;N.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:b,model:S,promptBody:q,toolAttr:!0})),N.push(D6.renderString(VXn,{backgroundSpawn:k.subagents.backgroundSpawn}))}else P&&N.push(P),N.push(`### Mechanics (Direct Execution) +${$}`:$;N.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:b,model:S,promptBody:q,toolAttr:!0})),N.push(D6.renderString(WXn,{backgroundSpawn:k.subagents.backgroundSpawn}))}else P&&N.push(P),N.push(`### Mechanics (Direct Execution) **Execute the "${o}" hat work directly** \u2014 your harness does not support subagents. ${$}`);return N.join(` -`)}});var ZXn,JXn,nkt,rkt=v(()=>{"use strict";gt();she();ts();ht();Fh();Rt();ZXn=new Te({autoEscape:!1,useWith:!0}),JXn=ie("@canon:stage/execute/start_unit_hat"),nkt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=n.hat||"",s=n.units||[],o=n.terminal||!1,a=s.map(c=>WI({slug:e,studio:t,unit:c,stage:r,hat:i,terminal:o}));return ZXn.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?zI(s.length,"subagents"):""})}});var XXn,QXn,ikt,skt=v(()=>{"use strict";gt();ht();Rt();XXn=new Te({autoEscape:!1,useWith:!0}),QXn=ie("@canon:stage/gate/user_gate"),ikt=({slug:e,action:t})=>{let n=t.stage||"",r=t.gate_kind||"approval",i=t.units||[];return XXn.renderString(QXn,{slug:e,stage:n,gateKind:r,units:i,unitCount:i.length,unitsJson:JSON.stringify(i)})}});function nQn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=tQn[i],a="",c;if(o){let d=NEe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${_b({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=qD(n,r,i);d&&(c=ju({mandatePath:d,studio:n,stage:r}))}let u=NEe.renderString(eQn,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,existingFeedback:jI(t,r),decisions:HI(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 NEe,$Xn,eQn,tQn,okt,akt=v(()=>{"use strict";gt();Kn();vl();ts();ht();Rt();NEe=new Te({autoEscape:!1,useWith:!0}),$Xn=ie("@canon:stage/review/dispatch_review"),eQn=ie("@canon:stage/review/dispatch_review","subagent.eta.md"),tQn={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")};okt=({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=>nQn({slug:e,studio:t,stage:r,role:c.role,units:c.units})),o=s.map(c=>c.dispatchBlock).join(` +`)}});var JXn,XXn,rkt,ikt=v(()=>{"use strict";gt();ahe();ns();ht();Fh();Rt();JXn=new Te({autoEscape:!1,useWith:!0}),XXn=ie("@canon:stage/execute/start_unit_hat"),rkt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=n.hat||"",s=n.units||[],o=n.terminal||!1,a=s.map(c=>WI({slug:e,studio:t,unit:c,stage:r,hat:i,terminal:o}));return JXn.renderString(XXn,{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?zI(s.length,"subagents"):""})}});var QXn,$Xn,skt,okt=v(()=>{"use strict";gt();ht();Rt();QXn=new Te({autoEscape:!1,useWith:!0}),$Xn=ie("@canon:stage/gate/user_gate"),skt=({slug:e,action:t})=>{let n=t.stage||"",r=t.gate_kind||"approval",i=t.units||[];return QXn.renderString($Xn,{slug:e,stage:n,gateKind:r,units:i,unitCount:i.length,unitsJson:JSON.stringify(i)})}});function rQn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=nQn[i],a="",c;if(o){let d=MEe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${_b({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=qD(n,r,i);d&&(c=ju({mandatePath:d,studio:n,stage:r}))}let u=MEe.renderString(tQn,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,existingFeedback:jI(t,r),decisions:HI(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 MEe,eQn,tQn,nQn,akt,ckt=v(()=>{"use strict";gt();Kn();vl();ns();ht();Rt();MEe=new Te({autoEscape:!1,useWith:!0}),eQn=ie("@canon:stage/review/dispatch_review"),tQn=ie("@canon:stage/review/dispatch_review","subagent.eta.md"),nQn={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")};akt=({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=>rQn({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 NEe.renderString($Xn,{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 ckt,rQn,iQn,ukt,lkt=v(()=>{"use strict";gt();ts();ht();Rt();ckt=new Te({autoEscape:!1,useWith:!0}),rQn=ie("@canon:stage/review/write_brief"),iQn=ie("@canon:stage/review/write_brief","subagent.eta.md"),ukt=({slug:e,action:t})=>{let n=t.stage||"",r=ckt.renderString(iQn,{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 ckt.renderString(rQn,{slug:e,stage:n,dispatchBlock:i})}});var sQn,oQn,dkt,fkt=v(()=>{"use strict";gt();Kn();ht();Rt();sQn=new Te({autoEscape:!1,useWith:!0}),oQn=ie("@canon:stage/start_stage"),dkt=({slug:e,studio:t,action:n})=>{let r=n.stage,i=n.hats||[],s=$i(t,r),o=Cd(t);return sQn.renderString(oQn,{slug:e,studio:t,stage:r,hats:i,studioBody:o?.body||"",stageBody:s?.body||"",follows:n.follows||"",parentKnowledgeJson:JSON.stringify(n.parent_knowledge)})}});var pkt,hkt=v(()=>{"use strict";HRt();BRt();GRt();WRt();ZRt();QRt();rAt();sAt();aAt();uAt();dAt();pAt();mAt();yAt();EAt();TAt();RAt();kAt();xAt();PAt();CAt();jAt();qAt();zAt();VAt();KAt();ZAt();Twt();Rwt();wwt();Iwt();Owt();Nwt();Mwt();Lwt();Fwt();Hwt();Bwt();Gwt();Wwt();Ywt();Jwt();Qwt();tkt();rkt();skt();akt();lkt();fkt();pkt=new Map([["start_stage",dkt],["elaborate_loop",_wt],["start_unit",ekt],["start_unit_hat",nkt],["dispatch_review",okt],["write_brief",ukt],["dispatch_approval",FAt],["dispatch_quality_gates",HAt],["user_gate",ikt],["advance_phase",BAt],["advance_stage",GAt],["complete_stage",WAt],["record_observations",YAt],["record_reflection",lAt],["blocked",vwt],["coverage_review_required",Awt],["dag_cycle_detected",kwt],["discovery_missing",xwt],["elaboration_insufficient",Pwt],["escalate",Cwt],["gate_blocked",Dwt],["output_liveness_review_required",Uwt],["outputs_missing",jwt],["save_wip",qwt],["unit_inputs_missing",zwt],["unit_inputs_not_declared",Vwt],["unit_naming_invalid",Kwt],["unit_outputs_empty_iterations",Zwt],["unresolved_dependencies",Xwt],["migrated",OAt],["select_studio",NAt],["intent_review",bAt],["intent_approved",_At],["intent_complete",vAt],["seal_intent",IAt],["pending_seal",wAt],["external_review_requested",fAt],["revise_unit_specs",hAt],["safe_intent_repair",gAt],["changes_requested",jRt],["close_feedback",qRt],["feedback_question",zRt],["fix_quality_gates",VRt],["intent_completion_fix",YRt],["review_fix",XRt],["start_feedback_hat",nAt],["complete",iAt],["error",oAt],["loop_halted",cAt]])});var L6,mkt=v(()=>{"use strict";ji();uo();L6=[{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:m0},{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:qL},{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:E0},{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:_0},{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:T0},{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:v0},{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:S0},{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:I0},{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:g0},{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:k0},{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:R0},{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:A0},{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:w0},{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:y0},{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:b0},{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 aQn,readFileSync as cQn,writeFileSync as uQn}from"node:fs";import{join as lQn}from"node:path";function fQn(e){let t=hc(),n=lQn(e.intentDir,"intent.md");if(!aQn(n))return t;let r=cQn(n,"utf8"),i=(0,CEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===MEe||(s.plugin_version=MEe,uQn(n,CEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var CEe,dQn,MEe,gkt=v(()=>{"use strict";CEe=Re(Kt(),1);Nh();dQn="4.0.0",MEe="5.0.0";Nu(dQn,MEe,fQn)});import{existsSync as pQn,readFileSync as hQn,writeFileSync as mQn}from"node:fs";import{join as gQn}from"node:path";function SQn(e){let t=hc(),n=gQn(e.intentDir,"intent.md");if(!pQn(n))return t;let r=hQn(n,"utf8"),i=(0,DEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===LEe||(s.plugin_version=LEe,mQn(n,DEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var DEe,yQn,LEe,ykt=v(()=>{"use strict";DEe=Re(Kt(),1);Nh();yQn="5.0.0",LEe="6.0.0";Nu(yQn,LEe,SQn)});import{existsSync as bQn,readFileSync as EQn,writeFileSync as _Qn}from"node:fs";import{join as TQn}from"node:path";function RQn(e){let t=hc(),n=TQn(e.intentDir,"intent.md");if(!bQn(n))return t;let r=EQn(n,"utf8"),i=(0,UEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===FEe||(s.plugin_version=FEe,_Qn(n,UEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var UEe,vQn,FEe,Skt=v(()=>{"use strict";UEe=Re(Kt(),1);Nh();vQn="6.0.0",FEe="7.0.0";Nu(vQn,FEe,RQn)});import{existsSync as Rx,readdirSync as U6,readFileSync as HEe,writeFileSync as qEe}from"node:fs";import{join as Zb}from"node:path";function wQn(e){let t=HEe(e,"utf8"),n=(0,Hv.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,qEe(e,Hv.default.stringify(n.content,r)),{migrated:!0,closure_synthesized:a}}function kQn(e){let t=HEe(e,"utf8"),n=(0,Hv.default)(t),r=n.data;return r.status===void 0?!1:(delete r.status,qEe(e,Hv.default.stringify(n.content,r)),!0)}function IQn(e,t){let n=[],r=Zb(e,"feedback");Rx(r)&&n.push(r);let i=Zb(e,"stages");if(Rx(i))for(let s of U6(i,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=Zb(i,s.name,"feedback");Rx(o)&&n.push(o)}for(let s of n)for(let o of U6(s).filter(a=>a.endsWith(".md"))){let a=wQn(Zb(s,o));a.migrated&&(t.feedback_migrated++,a.closure_synthesized&&t.feedback_with_synthesized_closure++)}}function xQn(e,t){let n=Zb(e,"stages");if(Rx(n))for(let r of U6(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Zb(n,r.name,"units");if(Rx(i))for(let s of U6(i).filter(o=>o.endsWith(".md")))kQn(Zb(i,s))&&t.units_migrated++}}function OQn(e){let t=hc(),n={feedback_migrated:0,feedback_with_synthesized_closure:0,units_migrated:0};IQn(e.intentDir,n),xQn(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=Zb(e.intentDir,"intent.md");if(Rx(r)){let i=HEe(r,"utf8"),s=(0,Hv.default)(i),o=s.data;(typeof o.plugin_version=="string"?o.plugin_version:"")!==jEe&&(o.plugin_version=jEe,qEe(r,Hv.default.stringify(s.content,o)),t.intent_md_migrated=!0)}return t}var Hv,AQn,jEe,bkt=v(()=>{"use strict";Hv=Re(Kt(),1);Nh();AQn="7.0.0",jEe="8.0.0";Nu(AQn,jEe,OQn)});import{existsSync as qv,readdirSync as nU,readFileSync as zEe,rmSync as Ekt,statSync as PQn,writeFileSync as GEe}from"node:fs";import{join as Fa}from"node:path";function _kt(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 CQn(e,t,n,r){let i=zEe(e,"utf8"),s=(0,Bv.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=DY({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=_kt(o);return d>0&&(r.iterations_message_migrated+=d,a=!0),a?(GEe(e,Bv.default.stringify(s.content,o)),!0):!1}function MQn(e,t){let n=[Fa(e,"feedback")],r=Fa(e,"stages");if(qv(r))for(let i of nU(r,{withFileTypes:!0}))i.isDirectory()&&n.push(Fa(r,i.name,"feedback"));for(let i of n)if(qv(i))for(let s of nU(i).filter(o=>o.endsWith(".md"))){let o=Fa(i,s),a=zEe(o,"utf8"),c=(0,Bv.default)(a),u=c.data,l=_kt(u);l>0&&(t.iterations_message_migrated+=l,GEe(o,Bv.default.stringify(c.content,u)))}}function Ax(e,t){if(qv(e))try{PQn(e).isDirectory()?Ekt(e,{recursive:!0,force:!0}):Ekt(e,{force:!0}),t.drift_artifacts_deleted++}catch{}}function DQn(e,t){Ax(Fa(e,"drift-markers.json"),t);let n=Fa(e,"stages");if(qv(n))for(let r of nU(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Fa(n,r.name);Ax(Fa(i,"baseline.json"),t),Ax(Fa(i,"baseline-content"),t),Ax(Fa(i,".baseline-ack"),t),Ax(Fa(i,"baseline-thrash.json"),t),Ax(Fa(i,"gate-session.json"),t)}}function LQn(e){return Fa(e,"..","..","..")}function UQn(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=LQn(e.intentDir),i=Fa(e.intentDir,"stages");if(qv(i))for(let o of nU(i,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=Fa(i,o.name,"units");if(qv(a))for(let c of nU(a).filter(u=>u.endsWith(".md"))){let u=Fa(a,c);CQn(u,e.intentDir,r,n)&&n.units_migrated++}}MQn(e.intentDir,n),DQn(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(qv(s)){let o=zEe(s,"utf8"),a=(0,Bv.default)(o),c=a.data;(typeof c.plugin_version=="string"?c.plugin_version:"")!==BEe&&(c.plugin_version=BEe,GEe(s,Bv.default.stringify(a.content,c)),t.intent_md_migrated=!0)}return t}var Bv,NQn,BEe,Tkt=v(()=>{"use strict";Bv=Re(Kt(),1);Nh();Xf();NQn="8.0.0",BEe="9.0.0";Nu(NQn,BEe,UQn)});import{existsSync as FQn,readFileSync as jQn,writeFileSync as HQn}from"node:fs";import{join as qQn}from"node:path";function zQn(e){let t=hc(),n=qQn(e.intentDir,"intent.md");if(!FQn(n))return t;let r=jQn(n,"utf8"),i=(0,VEe.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===WEe&&!a||(s.plugin_version=WEe,HQn(n,VEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var VEe,BQn,WEe,vkt=v(()=>{"use strict";VEe=Re(Kt(),1);Nh();ns();BQn="9.0.0",WEe="10.0.0";Nu(BQn,WEe,zQn)});import{existsSync as Rkt,readFileSync as GQn,renameSync as VQn,unlinkSync as WQn,writeFileSync as KQn}from"node:fs";function wkt(e,t){let n=DI(e,Akt),r=`${n}.tmp-${process.pid}-${Date.now()}`;try{let i={intent:e,action:t??null,at:new Date().toISOString()};KQn(r,JSON.stringify(i)),VQn(r,n)}catch{try{Rkt(r)&&WQn(r)}catch{}}}function kkt(e){try{let t=DI(e,Akt);if(!Rkt(t))return null;let n=JSON.parse(GQn(t,"utf8"));return!n||typeof n!="object"||n.intent!==e?null:n}catch{return null}}var Akt,KEe=v(()=>{"use strict";vl();Akt="statusline.json"});import{existsSync as YQn,readFileSync as ZQn,rmSync as Ywi,writeFileSync as JQn}from"node:fs";function Pkt(e){let t=wx.get(e);if(t)return t;try{let n=DI(e,Okt);if(!YQn(n))return;let r=JSON.parse(ZQn(n,"utf8")),i=r.updated_at??r.first_seen;return!i||Date.now()-new Date(i).getTime()>Ckt?void 0:(wx.set(e,r),r)}catch{return}}function QQn(e,t){wx.set(e,t);try{JQn(DI(e,Okt),JSON.stringify(t),"utf8"),XQn.add(e)}catch{}}function t$n(){if(wx.size<100)return;let e=Date.now();for(let[t,n]of wx)e-new Date(n.first_seen).getTime()>Ckt&&wx.delete(t)}function Mkt(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 Dkt(e,t){if(ZEe(t))return;let n=Mkt(t),r=new Date().toISOString(),i=Pkt(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(-YEe);o={signature:n,count:a,first_seen:i.first_seen,updated_at:r,recent:c,churn_fired:i.churn_fired},a===$Qn&&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(-YEe),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>=Ikt){let l=u.slice(-Ikt),d=new Set(l);d.size<=Nkt&&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),t$n()}function ZEe(e){if(!e||typeof e!="object")return!1;let t=e.action;return typeof t!="string"?!1:!!(n$n.has(t)||t==="intent_review"&&e.role==="user")}function r$n(e){try{return ZEe(JSON.parse(e))}catch{return!1}}function Lkt(e){return e.filter(t=>!r$n(t))}function Ukt(e,t){if(ZEe(t))return null;let n=Mkt(t),r=Pkt(e);if(!r)return null;if(r.signature===n&&r.count+1>=e$n)return{kind:"repeat",count:r.count+1,signature:n};let i=Lkt([...r.recent,n].slice(-YEe));if(i.length>=xkt){let s=i.slice(-xkt),o=new Set(s);if(o.size<=Nkt&&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 MEe.renderString(eQn,{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 ukt,iQn,sQn,lkt,dkt=v(()=>{"use strict";gt();ns();ht();Rt();ukt=new Te({autoEscape:!1,useWith:!0}),iQn=ie("@canon:stage/review/write_brief"),sQn=ie("@canon:stage/review/write_brief","subagent.eta.md"),lkt=({slug:e,action:t})=>{let n=t.stage||"",r=ukt.renderString(sQn,{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 ukt.renderString(iQn,{slug:e,stage:n,dispatchBlock:i})}});var oQn,aQn,fkt,pkt=v(()=>{"use strict";gt();Kn();ht();Rt();oQn=new Te({autoEscape:!1,useWith:!0}),aQn=ie("@canon:stage/start_stage"),fkt=({slug:e,studio:t,action:n})=>{let r=n.stage,i=n.hats||[],s=es(t,r),o=Cd(t);return oQn.renderString(aQn,{slug:e,studio:t,stage:r,hats:i,studioBody:o?.body||"",stageBody:s?.body||"",follows:n.follows||"",parentKnowledgeJson:JSON.stringify(n.parent_knowledge)})}});var hkt,mkt=v(()=>{"use strict";qRt();zRt();VRt();KRt();JRt();$Rt();iAt();oAt();cAt();lAt();fAt();hAt();gAt();SAt();_At();vAt();AAt();IAt();OAt();NAt();MAt();HAt();BAt();GAt();WAt();YAt();JAt();vwt();Awt();kwt();xwt();Pwt();Cwt();Dwt();Uwt();jwt();qwt();zwt();Vwt();Kwt();Zwt();Xwt();$wt();nkt();ikt();okt();ckt();dkt();pkt();hkt=new Map([["start_stage",fkt],["elaborate_loop",Twt],["start_unit",tkt],["start_unit_hat",rkt],["dispatch_review",akt],["write_brief",lkt],["dispatch_approval",jAt],["dispatch_quality_gates",qAt],["user_gate",skt],["advance_phase",zAt],["advance_stage",VAt],["complete_stage",KAt],["record_observations",ZAt],["record_reflection",dAt],["blocked",Rwt],["coverage_review_required",wwt],["dag_cycle_detected",Iwt],["discovery_missing",Owt],["elaboration_insufficient",Nwt],["escalate",Mwt],["gate_blocked",Lwt],["output_liveness_review_required",Fwt],["outputs_missing",Hwt],["save_wip",Bwt],["unit_inputs_missing",Gwt],["unit_inputs_not_declared",Wwt],["unit_naming_invalid",Ywt],["unit_outputs_empty_iterations",Jwt],["unresolved_dependencies",Qwt],["migrated",PAt],["select_studio",CAt],["intent_review",EAt],["intent_approved",TAt],["intent_complete",RAt],["seal_intent",xAt],["pending_seal",kAt],["external_review_requested",pAt],["revise_unit_specs",mAt],["safe_intent_repair",yAt],["changes_requested",HRt],["close_feedback",BRt],["feedback_question",GRt],["fix_quality_gates",WRt],["intent_completion_fix",ZRt],["review_fix",QRt],["start_feedback_hat",rAt],["complete",sAt],["error",aAt],["loop_halted",uAt]])});var L6,gkt=v(()=>{"use strict";Hi();uo();L6=[{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:m0},{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:qL},{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:E0},{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:_0},{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:T0},{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:v0},{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:S0},{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:I0},{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:g0},{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:k0},{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:R0},{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:A0},{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:w0},{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:y0},{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:b0},{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 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,DEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===LEe||(s.plugin_version=LEe,lQn(n,DEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var DEe,fQn,LEe,ykt=v(()=>{"use strict";DEe=Re(Kt(),1);Nh();fQn="4.0.0",LEe="5.0.0";Nu(fQn,LEe,pQn)});import{existsSync as hQn,readFileSync as mQn,writeFileSync as gQn}from"node:fs";import{join as yQn}from"node:path";function bQn(e){let t=hc(),n=yQn(e.intentDir,"intent.md");if(!hQn(n))return t;let r=mQn(n,"utf8"),i=(0,UEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===FEe||(s.plugin_version=FEe,gQn(n,UEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var UEe,SQn,FEe,Skt=v(()=>{"use strict";UEe=Re(Kt(),1);Nh();SQn="5.0.0",FEe="6.0.0";Nu(SQn,FEe,bQn)});import{existsSync as EQn,readFileSync as _Qn,writeFileSync as TQn}from"node:fs";import{join as vQn}from"node:path";function AQn(e){let t=hc(),n=vQn(e.intentDir,"intent.md");if(!EQn(n))return t;let r=_Qn(n,"utf8"),i=(0,jEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===HEe||(s.plugin_version=HEe,TQn(n,jEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var jEe,RQn,HEe,bkt=v(()=>{"use strict";jEe=Re(Kt(),1);Nh();RQn="6.0.0",HEe="7.0.0";Nu(RQn,HEe,AQn)});import{existsSync as Rx,readdirSync as U6,readFileSync as BEe,writeFileSync as zEe}from"node:fs";import{join as Zb}from"node:path";function kQn(e){let t=BEe(e,"utf8"),n=(0,Hv.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,zEe(e,Hv.default.stringify(n.content,r)),{migrated:!0,closure_synthesized:a}}function IQn(e){let t=BEe(e,"utf8"),n=(0,Hv.default)(t),r=n.data;return r.status===void 0?!1:(delete r.status,zEe(e,Hv.default.stringify(n.content,r)),!0)}function xQn(e,t){let n=[],r=Zb(e,"feedback");Rx(r)&&n.push(r);let i=Zb(e,"stages");if(Rx(i))for(let s of U6(i,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=Zb(i,s.name,"feedback");Rx(o)&&n.push(o)}for(let s of n)for(let o of U6(s).filter(a=>a.endsWith(".md"))){let a=kQn(Zb(s,o));a.migrated&&(t.feedback_migrated++,a.closure_synthesized&&t.feedback_with_synthesized_closure++)}}function OQn(e,t){let n=Zb(e,"stages");if(Rx(n))for(let r of U6(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Zb(n,r.name,"units");if(Rx(i))for(let s of U6(i).filter(o=>o.endsWith(".md")))IQn(Zb(i,s))&&t.units_migrated++}}function PQn(e){let t=hc(),n={feedback_migrated:0,feedback_with_synthesized_closure:0,units_migrated:0};xQn(e.intentDir,n),OQn(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=Zb(e.intentDir,"intent.md");if(Rx(r)){let i=BEe(r,"utf8"),s=(0,Hv.default)(i),o=s.data;(typeof o.plugin_version=="string"?o.plugin_version:"")!==qEe&&(o.plugin_version=qEe,zEe(r,Hv.default.stringify(s.content,o)),t.intent_md_migrated=!0)}return t}var Hv,wQn,qEe,Ekt=v(()=>{"use strict";Hv=Re(Kt(),1);Nh();wQn="7.0.0",qEe="8.0.0";Nu(wQn,qEe,PQn)});import{existsSync as qv,readdirSync as nU,readFileSync as VEe,rmSync as _kt,statSync as NQn,writeFileSync as WEe}from"node:fs";import{join as Fa}from"node:path";function Tkt(e){let t=e.iterations;if(!Array.isArray(t))return 0;let n=0;for(let r of t){if(!r||typeof r!="object"||Array.isArray(r))continue;let i=r;typeof i.reason=="string"&&(i.message===void 0&&i.reason.length>0&&(i.message=i.reason),delete i.reason,n++)}return n}function MQn(e,t,n,r){let i=VEe(e,"utf8"),s=(0,Bv.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=DY({intentDir:t,repoRoot:n,unitInputs:c});h.input_witnesses=m,r.review_slots_backfilled++,a=!0}}let l=o.approvals;if(l&&typeof l=="object"&&!Array.isArray(l)){let f=l;for(let[,p]of Object.entries(f)){if(!p||typeof p!="object"||Array.isArray(p))continue;let h=p;h.witnesses!==void 0&&(delete h.witnesses,r.approval_slots_stripped++,a=!0)}}let d=Tkt(o);return d>0&&(r.iterations_message_migrated+=d,a=!0),a?(WEe(e,Bv.default.stringify(s.content,o)),!0):!1}function DQn(e,t){let n=[Fa(e,"feedback")],r=Fa(e,"stages");if(qv(r))for(let i of nU(r,{withFileTypes:!0}))i.isDirectory()&&n.push(Fa(r,i.name,"feedback"));for(let i of n)if(qv(i))for(let s of nU(i).filter(o=>o.endsWith(".md"))){let o=Fa(i,s),a=VEe(o,"utf8"),c=(0,Bv.default)(a),u=c.data,l=Tkt(u);l>0&&(t.iterations_message_migrated+=l,WEe(o,Bv.default.stringify(c.content,u)))}}function Ax(e,t){if(qv(e))try{NQn(e).isDirectory()?_kt(e,{recursive:!0,force:!0}):_kt(e,{force:!0}),t.drift_artifacts_deleted++}catch{}}function LQn(e,t){Ax(Fa(e,"drift-markers.json"),t);let n=Fa(e,"stages");if(qv(n))for(let r of nU(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Fa(n,r.name);Ax(Fa(i,"baseline.json"),t),Ax(Fa(i,"baseline-content"),t),Ax(Fa(i,".baseline-ack"),t),Ax(Fa(i,"baseline-thrash.json"),t),Ax(Fa(i,"gate-session.json"),t)}}function UQn(e){return Fa(e,"..","..","..")}function FQn(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=UQn(e.intentDir),i=Fa(e.intentDir,"stages");if(qv(i))for(let o of nU(i,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=Fa(i,o.name,"units");if(qv(a))for(let c of nU(a).filter(u=>u.endsWith(".md"))){let u=Fa(a,c);MQn(u,e.intentDir,r,n)&&n.units_migrated++}}DQn(e.intentDir,n),LQn(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(qv(s)){let o=VEe(s,"utf8"),a=(0,Bv.default)(o),c=a.data;(typeof c.plugin_version=="string"?c.plugin_version:"")!==GEe&&(c.plugin_version=GEe,WEe(s,Bv.default.stringify(a.content,c)),t.intent_md_migrated=!0)}return t}var Bv,CQn,GEe,vkt=v(()=>{"use strict";Bv=Re(Kt(),1);Nh();Xf();CQn="8.0.0",GEe="9.0.0";Nu(CQn,GEe,FQn)});import{existsSync as jQn,readFileSync as HQn,writeFileSync as qQn}from"node:fs";import{join as BQn}from"node:path";function GQn(e){let t=hc(),n=BQn(e.intentDir,"intent.md");if(!jQn(n))return t;let r=HQn(n,"utf8"),i=(0,KEe.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===YEe&&!a||(s.plugin_version=YEe,qQn(n,KEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var KEe,zQn,YEe,Rkt=v(()=>{"use strict";KEe=Re(Kt(),1);Nh();ji();zQn="9.0.0",YEe="10.0.0";Nu(zQn,YEe,GQn)});import{existsSync as Akt,readFileSync as VQn,renameSync as WQn,unlinkSync as KQn,writeFileSync as YQn}from"node:fs";function kkt(e,t){let n=DI(e,wkt),r=`${n}.tmp-${process.pid}-${Date.now()}`;try{let i={intent:e,action:t??null,at:new Date().toISOString()};YQn(r,JSON.stringify(i)),WQn(r,n)}catch{try{Akt(r)&&KQn(r)}catch{}}}function Ikt(e){try{let t=DI(e,wkt);if(!Akt(t))return null;let n=JSON.parse(VQn(t,"utf8"));return!n||typeof n!="object"||n.intent!==e?null:n}catch{return null}}var wkt,ZEe=v(()=>{"use strict";vl();wkt="statusline.json"});import{existsSync as ZQn,readFileSync as JQn,rmSync as Zwi,writeFileSync as XQn}from"node:fs";function Nkt(e){let t=wx.get(e);if(t)return t;try{let n=DI(e,Pkt);if(!ZQn(n))return;let r=JSON.parse(JQn(n,"utf8")),i=r.updated_at??r.first_seen;return!i||Date.now()-new Date(i).getTime()>Mkt?void 0:(wx.set(e,r),r)}catch{return}}function $Qn(e,t){wx.set(e,t);try{XQn(DI(e,Pkt),JSON.stringify(t),"utf8"),QQn.add(e)}catch{}}function n$n(){if(wx.size<100)return;let e=Date.now();for(let[t,n]of wx)e-new Date(n.first_seen).getTime()>Mkt&&wx.delete(t)}function Dkt(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 Lkt(e,t){if(XEe(t))return;let n=Dkt(t),r=new Date().toISOString(),i=Nkt(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(-JEe);o={signature:n,count:a,first_seen:i.first_seen,updated_at:r,recent:c,churn_fired:i.churn_fired},a===e$n&&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(-JEe),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=Ukt(a);if(!o.churn_fired&&u.length>=xkt){let l=u.slice(-xkt),d=new Set(l);d.size<=Ckt&&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};$Qn(e,o),n$n()}function XEe(e){if(!e||typeof e!="object")return!1;let t=e.action;return typeof t!="string"?!1:!!(r$n.has(t)||t==="intent_review"&&e.role==="user")}function i$n(e){try{return XEe(JSON.parse(e))}catch{return!1}}function Ukt(e){return e.filter(t=>!i$n(t))}function Fkt(e,t){if(XEe(t))return null;let n=Dkt(t),r=Nkt(e);if(!r)return null;if(r.signature===n&&r.count+1>=t$n)return{kind:"repeat",count:r.count+1,signature:n};let i=Ukt([...r.recent,n].slice(-JEe));if(i.length>=Okt){let s=i.slice(-Okt),o=new Set(s);if(o.size<=Ckt&&o.size>1)return{kind:"churn",distinct:o.size,window:s.length}}return null}function jkt(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. @@ -1167,28 +1167,28 @@ 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 wx,XQn,Okt,$Qn,YEe,Ikt,Nkt,e$n,xkt,Ckt,n$n,jkt=v(()=>{"use strict";vl();vo();wx=new Map,XQn=new Set,Okt=".deadlock-history.json";$Qn=2,YEe=10,Ikt=4,Nkt=2,e$n=4,xkt=8,Ckt=3600*1e3;n$n=new Set(["user_gate","feedback_question","select_studio","select_mode","select_stage"])});import{existsSync as JEe,readdirSync as i$n,readFileSync as Hkt}from"node:fs";function qkt(e,t){if(!Ee())return{action:null};let n=[];try{let o=`${ce(e)}/intent.md`;if(!JEe(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(JEe(d))for(let f of i$n(d).filter(p=>p.endsWith(".md"))){let p;try{p=re(Hkt(`${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=Gd(h),g=Sg(e,l,m);if(!JEe(g))continue;let y=Hb(e,l,()=>XD(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 Bkt=v(()=>{"use strict";ar();K0();ze();ns()});import{existsSync as zkt,readdirSync as s$n,readFileSync as Gkt,writeFileSync as o$n}from"node:fs";import{join as rU}from"node:path";function a$n(e,t){return new Set(Es(e,t).filter(n=>hb(e,t,n)!==null))}function c$n(e,t){return new Set(bg(e,t).filter(n=>Kfe(e,t,n)!==null))}function u$n(e){let t=zD(e);return new Set(jf(e).filter(n=>t[n]!=null))}function l$n(e,t){let n;try{n=(0,F6.default)(Gkt(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,o$n(e,F6.default.stringify(n.content,o)),!0}function XEe(e,t,n,r){if(zkt(e))for(let i of s$n(e).filter(s=>s.endsWith(".md")))l$n(rU(e,i),t)&&r.push(`${n}/${i.replace(/\.md$/,"")}`)}function Vkt(e){let t=[],n=ce(e),r=rU(n,"intent.md");if(!zkt(r))return{reconciled:t};let i=[],s="";try{let{data:o}=(0,F6.default)(Gkt(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)XEe(rU(n,"stages",o,"units"),a$n(s,o),o,t),XEe(rU(n,"stages",o,"feedback"),c$n(s,o),`${o}/feedback`,t);return XEe(rU(n,"feedback"),u$n(s),"feedback",t),{reconciled:t}}var F6,Wkt=v(()=>{"use strict";F6=Re(Kt(),1);ze();Kn();ns()});import{existsSync as d$n,readdirSync as Kkt,readFileSync as Ykt,renameSync as f$n,rmSync as p$n,writeFileSync as h$n}from"node:fs";import{join as kx}from"node:path";function m$n(e){let t=e.match(/^(\d+)-/);return t?Number.parseInt(t[1],10):null}function Zkt(e,t){let n=[],r=["",...t];for(let i of r){let s=lo(e,i);if(!d$n(s))continue;let o;try{o=Kkt(s)}catch{continue}let a=o.filter(d=>d.endsWith(".md")),c=new Map;for(let d of a){let f=m$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,j6.default)(Ykt(kx(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";j6=Re(Kt(),1);ze()});import{existsSync as iU,readdirSync as y$n,rmSync as Xkt,statSync as $kt}from"node:fs";import{join as H6}from"node:path";function Qkt(e){if(iU(e))try{$kt(e).isDirectory()?Xkt(e,{recursive:!0,force:!0}):Xkt(e,{force:!0})}catch{}}function eIt(e){let t=0,n=new Set;for(let i of S$n){let s=H6(e,i);iU(s)&&n.add(s),Qkt(s)}let r=H6(e,"stages");if(iU(r)){let i=[];try{i=y$n(r)}catch{i=[]}for(let s of i){let o=H6(r,s),a=!1;try{a=$kt(o).isDirectory()}catch{continue}if(a)for(let c of b$n){let u=H6(o,c);iU(u)&&n.add(u),Qkt(u)}}}for(let i of n)iU(i)||t++;return t}var S$n,b$n,tIt=v(()=>{"use strict";S$n=["drift-markers.json"],b$n=["baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","gate-session.json"]});import{existsSync as zv,readdirSync as q6,readFileSync as rIt,writeFileSync as E$n}from"node:fs";import{join as Jb}from"node:path";function _$n(e){if(!zv(e))return null;try{let t=rIt(e,"utf8"),n=(0,B6.default)(t);return{data:JSON.parse(JSON.stringify(n.data)),body:n.content}}catch{return null}}function T$n(e,t,n){E$n(e,B6.default.stringify(n,t))}function v$n(e,t){let n=Jb(e,"stages",t);if(!zv(n))return!1;let r=Jb(n,"units");if(zv(r)&&q6(r,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||zv(Jb(n,"elaboration.md")))return!0;let i=Jb(n,"feedback");return!!(zv(i)&&q6(i,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||q6(n,{withFileTypes:!0}).some(o=>o.isFile()&&o.name.endsWith(".md")))}function iIt(e){let t=e.iterations;return Array.isArray(t)?t:[]}function R$n(e,t){let n=iIt(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 sIt(e,t,n){let r={stagesRepaired:[],unitsTouched:0,reviewsAdded:0,approvalsAdded:0},i=Jb(e,"intent.md");if(!zv(i))return r;let s={};try{s=(0,B6.default)(rIt(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(_=>Jb(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=A$n(t,c),y=[],b=!0;for(let _ of d){let T=_$n(_);if(!T){Ke("haiku.self_repair.unit_unreadable",{stage:c,path:_}),b=!1;break}y.push({path:_,data:T.data,body:T.body}),R$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:nIt},r.reviewsAdded++,C=!0);for(let L of m)N[L]==null&&(N[L]={at:k,migrated:!0,synthesized_reason:nIt},r.approvalsAdded++,C=!0);C&&(T.reviews=P,T.approvals=N,T$n(_,T,R),r.unitsTouched++,E=!0)}E&&r.stagesRepaired.push(c)}return r}function A$n(e,t){try{return Es(e,t)||[]}catch{return[]}}var B6,nIt,oIt=v(()=>{"use strict";B6=Re(Kt(),1);Kn();vo();ns();nIt="pre-tick-self-repair: later stage has on-disk work"});import{existsSync as z6,readdirSync as aIt,readFileSync as cIt}from"node:fs";import{join as G6}from"node:path";function uIt(e,t){let n=[];try{if(!fpe())return{reset:n};let r=ce(e),i=ai(e,t,r);if(!i)return{reset:n};let s=G6(r,"stages",i,"units");if(!z6(s))return{reset:n};let o=Es(t,i),a=o[o.length-1]??"";for(let c of aIt(s).filter(u=>u.endsWith(".md"))){let u=G6(s,c),l;try{l=re(cIt(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(z6(yb(e,h)))continue;let{local:m,remote:g}=dpe(e,h);m||g||(Array.isArray(l.outputs)?l.outputs.filter(b=>typeof b=="string"&&b.length>0):[]).some(b=>Kh(e,h,b))||(Ne(u,"iterations",[]),Ne(u,"started_at",null),n.push(h))}}catch{}return{reset:n}}function lIt(e,t){let n=[];try{let r=ce(e),i=ai(e,t,r);if(!i)return{cleared:n};let s=G6(r,"stages",i,"units");if(!z6(s))return{cleared:n};let o=Ee(),a=Date.now();for(let c of aIt(s).filter(u=>u.endsWith(".md"))){let u=G6(s,c),l;try{l=re(cIt(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&&!z6(yb(e,h)),g=a-Date.parse(p),y=Number.isFinite(g)&&g>w$n;!m&&!y||(f.dispatched_at=null,Ne(u,"iterations",d),n.push(h))}}catch{}return{cleared:n}}var w$n,dIt=v(()=>{"use strict";ar();ze();ns();Oa();w$n=Number.parseInt(process.env.HAIKU_UNIT_LEASE_TTL_MS??"",10)||45*6e4});import{existsSync as k$n,readdirSync as I$n,readFileSync as x$n,writeFileSync as O$n}from"node:fs";import{join as QEe}from"node:path";function fIt(e,t){let n=[],r=[],i=[];for(let s of t){let o=QEe(cr(e,s),"units");if(!k$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=I$n(o).filter(u=>u.endsWith(".md"))}catch{continue}for(let u of c){let l=u.replace(/\.md$/,""),d;try{d=(0,$Ee.default)(x$n(QEe(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(Kh(e,l,g)){p.push(g);continue}let y=_Z(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{O$n(QEe(o,u),$Ee.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 $Ee,pIt=v(()=>{"use strict";$Ee=Re(Kt(),1);ze()});import{existsSync as P$n,readdirSync as N$n,readFileSync as C$n}from"node:fs";import{join as hIt}from"node:path";function gIt(e,t,n){let r=[],i=[],s=ai(e,n,t);if(!s)return{filed:r,skipped:i};let o=hIt(cr(e,s),"units");if(!P$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$n(o).filter(u=>u.endsWith(".md"))}catch{return{filed:r,skipped:i}}for(let u of c){let l;try{l=(0,mIt.default)(C$n(hIt(o,u),"utf8")).data}catch{continue}let f=(Array.isArray(l.inputs)?l.inputs:[]).filter(g=>typeof g=="string"&&M$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 mIt,M$n,yIt=v(()=>{"use strict";mIt=Re(Kt(),1);ze();Oa();M$n=/^unit-\d+-/});import{randomBytes as D$n}from"node:crypto";import{existsSync as SIt,readFileSync as L$n,unlinkSync as U$n,writeFileSync as F$n}from"node:fs";import{join as j$n}from"node:path";function bIt(e,t){let n=t??ve();return j$n(n,"intents",e,".verifier-nonces.json")}function e_e(e){switch(e.kind){case"intent_elaborate":return"intent.elaborate";case"stage_elaborate":return`stages/${e.stage}/elaborate`;case"stage_decompose":return`stages/${e.stage}/decompose`}}function t_e(e){let t=bIt(e);if(!SIt(t))return{};try{let n=L$n(t,"utf8"),r=JSON.parse(n);return!r||typeof r!="object"||Array.isArray(r)?{}:r}catch{return{}}}function n_e(e,t){let n=bIt(e);if(Object.keys(t).length===0){if(SIt(n))try{U$n(n)}catch{}return}F$n(n,`${JSON.stringify(t,null,2)} -`)}function V6(e,t){let n=t_e(e.slug),r=e_e(e),i=n[r];if(i&&i.tied_to===t)return i.nonce;let s=D$n(16).toString("hex");return n[r]={nonce:s,tied_to:t},n_e(e.slug,n),s}function Ix(e,t){if(!t||t.length===0)return{ok:!1,reason:"missing"};let n=t_e(e.slug),r=e_e(e),i=n[r];return i?i.nonce!==t?{ok:!1,reason:"mismatch"}:(delete n[r],n_e(e.slug,n),{ok:!0}):{ok:!1,reason:"missing"}}function r_e(e){let t=t_e(e.slug),n=e_e(e);t[n]&&(delete t[n],n_e(e.slug,t))}var xx=v(()=>{"use strict";ze()});import{existsSync as TIt,readFileSync as vIt}from"node:fs";import{join as RIt}from"node:path";function s_e(e,t){let n;try{n=ce(e)}catch{return null}let r=RIt(n,"intent.md");if(!TIt(r))return null;let i=vS(),s=Number(i.split(".")[0]??"0"),o=EIt(r);if(s>=4){let f=typeof o.plugin_version=="string"?o.plugin_version:"0",p=Number(f.split(".")[0]??"0")||0,h=p===s&&e3(n);if(p>s)Ke("haiku.migrate.skipped_no_regress",{intent:e,source:f,target:i});else if(p0){pSe(`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.`),Gv(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)}),Gv(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.`}})}}}eIt(n),TSt(),bTt();let a=o.studio||"";if(!a)return Gv(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 Gv(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 Gv(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=sIt(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=uIt(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=lIt(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=Vkt(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=Zkt(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=gIt(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=fIt(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=qkt(e,a);if(f.action)return Gv(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?H$n(e,l.action):null;return Gv(e,{position:l,action:d})}function AIt(e,t){let n=s_e(e,t);return n?n.action?n.action:{action:"noop",intent:e,message:"Mid-wave noop. In-flight subagents are still working \u2014 wait for them to terminate, then retick."}:{action:"error",message:`Intent '${e}' not found`}}function EIt(e){let t=vIt(e,"utf8");return(0,i_e.default)(t).data}function H$n(e,t){let n={...t,action:t.kind,intent:e};if(t.kind==="elaborate_loop"){let r=q$n(e,t);Object.keys(r).length>0&&(n.verifier_nonces=r)}return n}function q$n(e,t){let n={};for(let r of t.signals_unmet)if(r.signal==="verify_conversation")if(t.stage){let i=_It(e,t.stage);n.verify_conversation=V6({kind:"stage_elaborate",slug:e,stage:t.stage},i)}else n.verify_conversation=V6({kind:"intent_elaborate",slug:e},null);else if(r.signal==="verify_decompose"&&t.stage){let i=_It(e,t.stage);n.verify_decompose=V6({kind:"stage_decompose",slug:e,stage:t.stage},i)}return n}function _It(e,t){let n=RIt(ce(e),"stages",t,"elaboration.md");if(!TIt(n))return null;try{let r=vIt(n,"utf8"),s=(0,i_e.default)(r).data.recorded_at;return typeof s=="string"&&s.length>0?s:null}catch{return null}}function Gv(e,t){let n=Ukt(e,t.action),r=t;if(n!==null){let i=Fkt(e,n);r={position:t.position,action:i}}return r.action&&Kd(e,{type:"tick_committed",action:r.action.action??"unknown"}),Dkt(e,r.action),wkt(e,r.position.action),r}var i_e,o_e=v(()=>{"use strict";i_e=Re(Kt(),1);hx();ze();vo();p_();Nh();t3();gkt();ykt();Skt();bkt();Tkt();vkt();H1();KEe();o1();t3();ns();Oa();jkt();Bkt();Wkt();Jkt();tIt();oIt();dIt();pIt();yIt();xx()});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 xn(e,t){return`${B$n} ${e} +4. Once the underlying state has changed, the next \`haiku_run_next\` tick will surface a different action and the loop guard will reset.`;return{action:"loop_halted",intent:e,message:i,loop:t.kind}}var wx,QQn,Pkt,e$n,JEe,xkt,Ckt,t$n,Okt,Mkt,r$n,Hkt=v(()=>{"use strict";vl();vo();wx=new Map,QQn=new Set,Pkt=".deadlock-history.json";e$n=2,JEe=10,xkt=4,Ckt=2,t$n=4,Okt=8,Mkt=3600*1e3;r$n=new Set(["user_gate","feedback_question","select_studio","select_mode","select_stage"])});import{existsSync as QEe,readdirSync as s$n,readFileSync as qkt}from"node:fs";function Bkt(e,t){if(!Ee())return{action:null};let n=[];try{let o=`${ce(e)}/intent.md`;if(!QEe(o))return{action:null};let a=re(qkt(o,"utf8")).data,c=[...wn(a,t),""];for(let u of c){let l=u||"intent",d=lo(e,u);if(QEe(d))for(let f of s$n(d).filter(p=>p.endsWith(".md"))){let p;try{p=re(qkt(`${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=Gd(h),g=Sg(e,l,m);if(!QEe(g))continue;let y=Hb(e,l,()=>XD(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 zkt=v(()=>{"use strict";ar();K0();ze();ji()});import{existsSync as Gkt,readdirSync as o$n,readFileSync as Vkt,writeFileSync as a$n}from"node:fs";import{join as rU}from"node:path";function c$n(e,t){return new Set(Es(e,t).filter(n=>hb(e,t,n)!==null))}function u$n(e,t){return new Set(bg(e,t).filter(n=>Kfe(e,t,n)!==null))}function l$n(e){let t=zD(e);return new Set(jf(e).filter(n=>t[n]!=null))}function d$n(e,t){let n;try{n=(0,F6.default)(Vkt(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,a$n(e,F6.default.stringify(n.content,o)),!0}function $Ee(e,t,n,r){if(Gkt(e))for(let i of o$n(e).filter(s=>s.endsWith(".md")))d$n(rU(e,i),t)&&r.push(`${n}/${i.replace(/\.md$/,"")}`)}function Wkt(e){let t=[],n=ce(e),r=rU(n,"intent.md");if(!Gkt(r))return{reconciled:t};let i=[],s="";try{let{data:o}=(0,F6.default)(Vkt(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)$Ee(rU(n,"stages",o,"units"),c$n(s,o),o,t),$Ee(rU(n,"stages",o,"feedback"),u$n(s,o),`${o}/feedback`,t);return $Ee(rU(n,"feedback"),l$n(s),"feedback",t),{reconciled:t}}var F6,Kkt=v(()=>{"use strict";F6=Re(Kt(),1);ze();Kn();ji()});import{existsSync as f$n,readdirSync as Ykt,readFileSync as Zkt,renameSync as p$n,rmSync as h$n,writeFileSync as m$n}from"node:fs";import{join as kx}from"node:path";function g$n(e){let t=e.match(/^(\d+)-/);return t?Number.parseInt(t[1],10):null}function Jkt(e,t){let n=[],r=["",...t];for(let i of r){let s=lo(e,i);if(!f$n(s))continue;let o;try{o=Ykt(s)}catch{continue}let a=o.filter(d=>d.endsWith(".md")),c=new Map;for(let d of a){let f=g$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,j6.default)(Zkt(kx(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";j6=Re(Kt(),1);ze()});import{existsSync as iU,readdirSync as S$n,rmSync as Qkt,statSync as eIt}from"node:fs";import{join as H6}from"node:path";function $kt(e){if(iU(e))try{eIt(e).isDirectory()?Qkt(e,{recursive:!0,force:!0}):Qkt(e,{force:!0})}catch{}}function tIt(e){let t=0,n=new Set;for(let i of b$n){let s=H6(e,i);iU(s)&&n.add(s),$kt(s)}let r=H6(e,"stages");if(iU(r)){let i=[];try{i=S$n(r)}catch{i=[]}for(let s of i){let o=H6(r,s),a=!1;try{a=eIt(o).isDirectory()}catch{continue}if(a)for(let c of E$n){let u=H6(o,c);iU(u)&&n.add(u),$kt(u)}}}for(let i of n)iU(i)||t++;return t}var b$n,E$n,nIt=v(()=>{"use strict";b$n=["drift-markers.json"],E$n=["baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","gate-session.json"]});import{existsSync as zv,readdirSync as q6,readFileSync as iIt,writeFileSync as _$n}from"node:fs";import{join as Jb}from"node:path";function T$n(e){if(!zv(e))return null;try{let t=iIt(e,"utf8"),n=(0,B6.default)(t);return{data:JSON.parse(JSON.stringify(n.data)),body:n.content}}catch{return null}}function v$n(e,t,n){_$n(e,B6.default.stringify(n,t))}function R$n(e,t){let n=Jb(e,"stages",t);if(!zv(n))return!1;let r=Jb(n,"units");if(zv(r)&&q6(r,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||zv(Jb(n,"elaboration.md")))return!0;let i=Jb(n,"feedback");return!!(zv(i)&&q6(i,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||q6(n,{withFileTypes:!0}).some(o=>o.isFile()&&o.name.endsWith(".md")))}function sIt(e){let t=e.iterations;return Array.isArray(t)?t:[]}function A$n(e,t){let n=sIt(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 oIt(e,t,n){let r={stagesRepaired:[],unitsTouched:0,reviewsAdded:0,approvalsAdded:0},i=Jb(e,"intent.md");if(!zv(i))return r;let s={};try{s=(0,B6.default)(iIt(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(_=>Jb(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=w$n(t,c),y=[],b=!0;for(let _ of d){let T=T$n(_);if(!T){Ke("haiku.self_repair.unit_unreadable",{stage:c,path:_}),b=!1;break}y.push({path:_,data:T.data,body:T.body}),A$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:rIt},r.reviewsAdded++,C=!0);for(let L of m)N[L]==null&&(N[L]={at:k,migrated:!0,synthesized_reason:rIt},r.approvalsAdded++,C=!0);C&&(T.reviews=P,T.approvals=N,v$n(_,T,R),r.unitsTouched++,E=!0)}E&&r.stagesRepaired.push(c)}return r}function w$n(e,t){try{return Es(e,t)||[]}catch{return[]}}var B6,rIt,aIt=v(()=>{"use strict";B6=Re(Kt(),1);Kn();vo();ji();rIt="pre-tick-self-repair: later stage has on-disk work"});import{existsSync as z6,readdirSync as cIt,readFileSync as uIt}from"node:fs";import{join as G6}from"node:path";function lIt(e,t){let n=[];try{if(!fpe())return{reset:n};let r=ce(e),i=ai(e,t,r);if(!i)return{reset:n};let s=G6(r,"stages",i,"units");if(!z6(s))return{reset:n};let o=Es(t,i),a=o[o.length-1]??"";for(let c of cIt(s).filter(u=>u.endsWith(".md"))){let u=G6(s,c),l;try{l=re(uIt(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(z6(yb(e,h)))continue;let{local:m,remote:g}=dpe(e,h);m||g||(Array.isArray(l.outputs)?l.outputs.filter(b=>typeof b=="string"&&b.length>0):[]).some(b=>Kh(e,h,b))||(Ne(u,"iterations",[]),Ne(u,"started_at",null),n.push(h))}}catch{}return{reset:n}}function dIt(e,t){let n=[];try{let r=ce(e),i=ai(e,t,r);if(!i)return{cleared:n};let s=G6(r,"stages",i,"units");if(!z6(s))return{cleared:n};let o=Ee(),a=Date.now();for(let c of cIt(s).filter(u=>u.endsWith(".md"))){let u=G6(s,c),l;try{l=re(uIt(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&&!z6(yb(e,h)),g=a-Date.parse(p),y=Number.isFinite(g)&&g>k$n;!m&&!y||(f.dispatched_at=null,Ne(u,"iterations",d),n.push(h))}}catch{}return{cleared:n}}var k$n,fIt=v(()=>{"use strict";ar();ze();ji();Oa();k$n=Number.parseInt(process.env.HAIKU_UNIT_LEASE_TTL_MS??"",10)||45*6e4});import{existsSync as I$n,readdirSync as x$n,readFileSync as O$n,writeFileSync as P$n}from"node:fs";import{join as e_e}from"node:path";function pIt(e,t){let n=[],r=[],i=[];for(let s of t){let o=e_e(cr(e,s),"units");if(!I$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=x$n(o).filter(u=>u.endsWith(".md"))}catch{continue}for(let u of c){let l=u.replace(/\.md$/,""),d;try{d=(0,t_e.default)(O$n(e_e(o,u),"utf8"))}catch{continue}let f=Array.isArray(d.data.outputs)?d.data.outputs.filter(g=>typeof g=="string"):[];if(f.length===0)continue;let p=[],h=[],m=!1;for(let g of f){if(Kh(e,l,g)){p.push(g);continue}let y=_Z(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{P$n(e_e(o,u),t_e.default.stringify(d.content,{...d.data,outputs:p}))}catch{}for(let g of h){let y=`missing-output:${l}:${g}`;if(a.has(y)){i.push(`${l}:${g}`);continue}let 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 t_e,hIt=v(()=>{"use strict";t_e=Re(Kt(),1);ze()});import{existsSync as N$n,readdirSync as C$n,readFileSync as M$n}from"node:fs";import{join as mIt}from"node:path";function yIt(e,t,n){let r=[],i=[],s=ai(e,n,t);if(!s)return{filed:r,skipped:i};let o=mIt(cr(e,s),"units");if(!N$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=C$n(o).filter(u=>u.endsWith(".md"))}catch{return{filed:r,skipped:i}}for(let u of c){let l;try{l=(0,gIt.default)(M$n(mIt(o,u),"utf8")).data}catch{continue}let f=(Array.isArray(l.inputs)?l.inputs:[]).filter(g=>typeof g=="string"&&D$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 gIt,D$n,SIt=v(()=>{"use strict";gIt=Re(Kt(),1);ze();Oa();D$n=/^unit-\d+-/});import{randomBytes as L$n}from"node:crypto";import{existsSync as bIt,readFileSync as U$n,unlinkSync as F$n,writeFileSync as j$n}from"node:fs";import{join as H$n}from"node:path";function EIt(e,t){let n=t??ve();return H$n(n,"intents",e,".verifier-nonces.json")}function n_e(e){switch(e.kind){case"intent_elaborate":return"intent.elaborate";case"stage_elaborate":return`stages/${e.stage}/elaborate`;case"stage_decompose":return`stages/${e.stage}/decompose`}}function r_e(e){let t=EIt(e);if(!bIt(t))return{};try{let n=U$n(t,"utf8"),r=JSON.parse(n);return!r||typeof r!="object"||Array.isArray(r)?{}:r}catch{return{}}}function i_e(e,t){let n=EIt(e);if(Object.keys(t).length===0){if(bIt(n))try{F$n(n)}catch{}return}j$n(n,`${JSON.stringify(t,null,2)} +`)}function V6(e,t){let n=r_e(e.slug),r=n_e(e),i=n[r];if(i&&i.tied_to===t)return i.nonce;let s=L$n(16).toString("hex");return n[r]={nonce:s,tied_to:t},i_e(e.slug,n),s}function Ix(e,t){if(!t||t.length===0)return{ok:!1,reason:"missing"};let n=r_e(e.slug),r=n_e(e),i=n[r];return i?i.nonce!==t?{ok:!1,reason:"mismatch"}:(delete n[r],i_e(e.slug,n),{ok:!0}):{ok:!1,reason:"missing"}}function s_e(e){let t=r_e(e.slug),n=n_e(e);t[n]&&(delete t[n],i_e(e.slug,t))}var xx=v(()=>{"use strict";ze()});import{existsSync as vIt,readFileSync as RIt}from"node:fs";import{join as AIt}from"node:path";function a_e(e,t){let n;try{n=ce(e)}catch{return null}let r=AIt(n,"intent.md");if(!vIt(r))return null;let i=vS(),s=Number(i.split(".")[0]??"0"),o=_It(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&&e3(n);if(p>s)Ke("haiku.migrate.skipped_no_regress",{intent:e,source:f,target:i});else if(p0){mSe(`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.`),Gv(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)}),Gv(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.`}})}}}tIt(n),vSt(),ETt();let a=o.studio||"";if(!a)return Gv(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 Gv(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 Gv(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=oIt(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=lIt(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=dIt(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=Wkt(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=Jkt(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=yIt(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=pIt(e,f);(p.repaired.length>0||p.filed.length>0)&&Ke("haiku.output_validation.closeout_sweep",{intent:e,repaired:String(p.repaired.length),filed:String(p.filed.length)})}}catch(f){Ke("haiku.output_validation.failed",{intent:e,error:String(f?.message??f)})}try{let f=Bkt(e,a);if(f.action)return Gv(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?q$n(e,l.action):null;return Gv(e,{position:l,action:d})}function wIt(e,t){let n=a_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 _It(e){let t=RIt(e,"utf8");return(0,o_e.default)(t).data}function q$n(e,t){let n={...t,action:t.kind,intent:e};if(t.kind==="elaborate_loop"){let r=B$n(e,t);Object.keys(r).length>0&&(n.verifier_nonces=r)}return n}function B$n(e,t){let n={};for(let r of t.signals_unmet)if(r.signal==="verify_conversation")if(t.stage){let i=TIt(e,t.stage);n.verify_conversation=V6({kind:"stage_elaborate",slug:e,stage:t.stage},i)}else n.verify_conversation=V6({kind:"intent_elaborate",slug:e},null);else if(r.signal==="verify_decompose"&&t.stage){let i=TIt(e,t.stage);n.verify_decompose=V6({kind:"stage_decompose",slug:e,stage:t.stage},i)}return n}function TIt(e,t){let n=AIt(ce(e),"stages",t,"elaboration.md");if(!vIt(n))return null;try{let r=RIt(n,"utf8"),s=(0,o_e.default)(r).data.recorded_at;return typeof s=="string"&&s.length>0?s:null}catch{return null}}function Gv(e,t){let n=Fkt(e,t.action),r=t;if(n!==null){let i=jkt(e,n);r={position:t.position,action:i}}return r.action&&Kd(e,{type:"tick_committed",action:r.action.action??"unknown"}),Lkt(e,r.action),kkt(e,r.position.action),r}var o_e,c_e=v(()=>{"use strict";o_e=Re(Kt(),1);hx();ze();vo();p_();Nh();t3();ykt();Skt();bkt();Ekt();vkt();Rkt();H1();ZEe();o1();t3();ji();Oa();Hkt();zkt();Kkt();Xkt();nIt();aIt();fIt();hIt();SIt();xx()});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 Gi=v(()=>{"use strict"});function xn(e,t){return`${z$n} ${e} -${t}`}var B$n,Vv=v(()=>{"use strict";B$n="**ANNOUNCE TO USER (post in chat now):**"});function wIt(e){return e.includes("Review timeout")||e.includes("Session timeout")||e.includes("timeout")||e.includes("Timeout")}function kIt(e){return e.includes("lost presence")}function IIt(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 xIt(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 OIt=v(()=>{"use strict"});function ye(e){return{content:[{type:"text",text:e}]}}var vs=v(()=>{"use strict"});function z$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 G$n(e,t){return t.promptsAsSlashCommands?e:e.replace(/\/haiku:(\w[\w-]*)/g,(n,r)=>WN(r))}function V$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 W$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 K$n(e,t){return t.hooks?e:e.replace(/\bpermission_mode\b[^\n]*/g,"")}function Y$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 W6(e){let t=Mi();if(oh())return e;let n=e;return n=z$n(n,t),n=G$n(n,t),n=V$n(n,t),n=W$n(n,t),n=K$n(n,t),n=Y$n(n,t),n}var a_e=v(()=>{"use strict";_f()});function PIt(e,t,n){Ox(n);let r=sU(e,t,n,ce(e)),i=W6(r),{tell_user:s,next_step:o,...a}=n;return`${JSON.stringify(a,null,2)} +${t}`}var z$n,Vv=v(()=>{"use strict";z$n="**ANNOUNCE TO USER (post in chat now):**"});function kIt(e){return e.includes("Review timeout")||e.includes("Session timeout")||e.includes("timeout")||e.includes("Timeout")}function IIt(e){return e.includes("lost presence")}function xIt(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 OIt(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 PIt=v(()=>{"use strict"});function ye(e){return{content:[{type:"text",text:e}]}}var vs=v(()=>{"use strict"});function G$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 V$n(e,t){return t.promptsAsSlashCommands?e:e.replace(/\/haiku:(\w[\w-]*)/g,(n,r)=>WN(r))}function W$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 K$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 Y$n(e,t){return t.hooks?e:e.replace(/\bpermission_mode\b[^\n]*/g,"")}function Z$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 W6(e){let t=Mi();if(oh())return e;let n=e;return n=G$n(n,t),n=V$n(n,t),n=W$n(n,t),n=K$n(n,t),n=Y$n(n,t),n=Z$n(n,t),n}var u_e=v(()=>{"use strict";_f()});function NIt(e,t,n){Ox(n);let r=sU(e,t,n,ce(e)),i=W6(r),{tell_user:s,next_step:o,...a}=n;return`${JSON.stringify(a,null,2)} --- -${i}`}var NIt=v(()=>{"use strict";a_e();Yd();ze()});import{existsSync as CIt,mkdirSync as Z$n,readdirSync as J$n,readFileSync as X$n,writeFileSync as Q$n}from"node:fs";import{join as Fl}from"node:path";function aU(e){if(!CIt(e))return{};let t=X$n(e,"utf8"),{data:n}=re(t);return n}function oU(e,t,n){let r=ce(e),i=Fl(r,"intent.md");if(t==="intent_completion"||t==="intent_review"){let u=aU(i),l=u.approvals&&typeof u.approvals=="object"?u.approvals:{};l.user=Cl(i),Ne(i,"approvals",l);return}let s=t==="elaborate_to_execute",o=s?"reviews":"approvals",a=Fl(r,"stages",n,"units");if(!CIt(a))return;let c=J$n(a);for(let u of c){if(!u.endsWith(".md"))continue;let l=Fl(a,u),d=aU(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=zd();Ne(l,o,f)}}var $$n,MIt,DIt=v(()=>{"use strict";ar();Xf();Yd();sh();p1();$c();ji();uo();uZ();ze();zi();Vv();OIt();vs();NIt();$$n=(e,t)=>{};MIt={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:m0,async handle(e,t){let n=Be(e,Zme,"haiku_await_gate");if(n)return n;let r=e,i=r.intent,s=r.state_file,o=Fl(ce(i),"intent.md"),a=aU(o),c=a.studio||"",{findCurrentStage:u}=await Promise.resolve().then(()=>(Oa(),D0)),l=c?u(i,c)??"":"",d=a.phase||"",f=!l||d==="intent_review"||d==="awaiting_completion_review"||d==="intent_completion",p=e1(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=c_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=>PIt(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&&Zh(o,N)}catch{}try{let N=await A(b,{autoOpen:k,reviewUrl:x,timeoutMs:144e5,signal:t}),C=yr(i,S);if(!C.ok)return Xb(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:xn("User signaled advance. Run the next tick \u2014 the cursor will pick up on-disk feedback / approvals / drift and emit the natural next action.","Call haiku_run_next to continue.")}));if(N.decision==="approved"){if(T==="intent_completion"){let U=aU(Fl(ce(i),"intent.md")).studio||"",M=uU(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}));oU(i,"intent_completion",S),Z6(i),Xr(i,s);let j={action:"intent_complete",intent:i,studio:U,message:xn(`The user approved final review for "${i}" \u2014 intent complete.`,"Report the completion summary to the user.")};return ye(P(j))}if(T==="intent_review"){oU(i,"intent_review",S);let U=Fl(process.cwd(),R,"intent.md");Ne(U,"intent_reviewed",!0),S&&_?cU(i,S,_):(Zh(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?xn(`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.`):xn(`The user approved intent "${i}" \u2014 beginning stage 0.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`)};return ye(P(M))}if(T==="elaborate_to_execute"&&_){oU(i,"elaborate_to_execute",S),cU(i,S,_),Xr(i,s);let U={action:"advance_phase",intent:i,stage:S,from_phase:"elaborate",to_phase:_,message:xn(`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){oU(i,"stage_gate",S),K6(i,S,E),Xr(i,s);let U={action:"advance_stage",intent:i,stage:S,next_stage:E,gate_outcome:"advanced",message:xn(`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))}oU(i,"stage_gate",S),Px(i,S,"advanced"),Xr(i,s);let F=aU(Fl(ce(i),"intent.md")).studio||"",V=Y6(i,F,xn(`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"){Px(i,S,"advanced"),Xr(i,s);let F,V=Tv(i,S);if(Ee()&&V?.url){let M=V.url,{markPullRequestReady:j}=await Promise.resolve().then(()=>(ar(),MI)),H=j(M);try{let K=Fl(ce(i),"intent.md");Ne(K,"external_review_url",M)}catch{}H.ok?(zb(i,S,"status","ready"),zb(i,S,"ready_at",mn()),F=xn(`The user routed stage "${S}" to external review. The engine flipped the stage's draft PR to ready: ${M}`,`Tell the user: "The stage PR at ${M} is ready for review \u2014 merge it when you're satisfied. Run /haiku:haiku-pickup after the merge to continue." It targets \`haiku/${i}/main\` so the engine detects the merge.`)):(console.error(`[haiku] flip-to-ready of stage PR ${M} failed: ${H.error}`),F=xn(`The user routed stage "${S}" to external review. The stage's draft PR is at ${M}.`,`The engine couldn't flip the draft to ready (${H.error??"unknown"}). Tell the user to mark ${M} ready and merge it \u2014 it targets \`haiku/${i}/main\` so the merge signal lands correctly. Run /haiku:haiku-pickup after the merge.`))}else if(Ee()){let{openStagePullRequest:M}=await Promise.resolve().then(()=>(ar(),MI)),j=M({slug:i,stage:S});if(j.createdUrl){try{let H=Fl(ce(i),"intent.md");Ne(H,"external_review_url",j.createdUrl)}catch{}F=xn(`The user routed stage "${S}" to external review. The engine opened the MR for you: ${j.createdUrl}`,`Tell the user: "I opened the MR at ${j.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 j.compareUrl?F=xn(`The user routed stage "${S}" to external review. ${j.message}`,`The engine couldn't open the MR programmatically (${j.prError??j.pushError??"no gh/glab on PATH"}). Tell the user to click ${j.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=xn(`The user routed stage "${S}" to external review.`,`${j.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=xn(`The user routed stage "${S}" to external review.`,`Submit the work for review through your project's review process. Record the review URL via haiku_run_next { intent: "${i}", external_review_url: "" }. Run /haiku:haiku-pickup again after the PR is merged.`);let U={action:"external_review_requested",intent:i,stage:S,feedback:N.feedback,message:F};return ye(P(U))}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=Fl(process.cwd(),R),q=(T==="intent_review"&&!S?!0:T==="elaborate_to_execute"||T==="intent_review"?aL(W,S):!1)||!S?[]:N6(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:xn(`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=Fl(ce(i),"intent.md");Ne(F,"completion_review_dispatched",!1),Ne(F,"completion_review_skipped",!1),$$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:xn(`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:xn(`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:xn(`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=Fl(process.cwd(),".haiku","logs");Z$n(W,{recursive:!0}),Q$n(Fl(W,"gate-review-error.log"),`${new Date().toISOString()} +${i}`}var CIt=v(()=>{"use strict";u_e();Yd();ze()});import{existsSync as MIt,mkdirSync as J$n,readdirSync as X$n,readFileSync as Q$n,writeFileSync as $$n}from"node:fs";import{join as Fl}from"node:path";function aU(e){if(!MIt(e))return{};let t=Q$n(e,"utf8"),{data:n}=re(t);return n}function oU(e,t,n){let r=ce(e),i=Fl(r,"intent.md");if(t==="intent_completion"||t==="intent_review"){let u=aU(i),l=u.approvals&&typeof u.approvals=="object"?u.approvals:{};l.user=Cl(i),Ne(i,"approvals",l);return}let s=t==="elaborate_to_execute",o=s?"reviews":"approvals",a=Fl(r,"stages",n,"units");if(!MIt(a))return;let c=X$n(a);for(let u of c){if(!u.endsWith(".md"))continue;let l=Fl(a,u),d=aU(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=zd();Ne(l,o,f)}}var eer,DIt,LIt=v(()=>{"use strict";ar();Xf();Yd();sh();p1();$c();Hi();uo();uZ();ze();Gi();Vv();PIt();vs();CIt();eer=(e,t)=>{};DIt={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:m0,async handle(e,t){let n=Be(e,Xme,"haiku_await_gate");if(n)return n;let r=e,i=r.intent,s=r.state_file,o=Fl(ce(i),"intent.md"),a=aU(o),c=a.studio||"",{findCurrentStage:u}=await Promise.resolve().then(()=>(Oa(),D0)),l=c?u(i,c)??"":"",d=a.phase||"",f=!l||d==="intent_review"||d==="awaiting_completion_review"||d==="intent_completion",p=e1(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=l_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&&Bi(s,{event:"haiku_await_gate_entered",intent:i,stage:S,session_id:b,auto_open:k});let P=N=>NIt(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&&Zh(o,N)}catch{}try{let N=await A(b,{autoOpen:k,reviewUrl:x,timeoutMs:144e5,signal:t}),C=yr(i,S);if(!C.ok)return Xb(i,S,C,"after review wait");if(s&&Bi(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:xn("User signaled advance. Run the next tick \u2014 the cursor will pick up on-disk feedback / approvals / drift and emit the natural next action.","Call haiku_run_next to continue.")}));if(N.decision==="approved"){if(T==="intent_completion"){let U=aU(Fl(ce(i),"intent.md")).studio||"",M=uU(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}));oU(i,"intent_completion",S),Z6(i),Xr(i,s);let j={action:"intent_complete",intent:i,studio:U,message:xn(`The user approved final review for "${i}" \u2014 intent complete.`,"Report the completion summary to the user.")};return ye(P(j))}if(T==="intent_review"){oU(i,"intent_review",S);let U=Fl(process.cwd(),R,"intent.md");Ne(U,"intent_reviewed",!0),S&&_?cU(i,S,_):(Zh(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?xn(`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.`):xn(`The user approved intent "${i}" \u2014 beginning stage 0.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`)};return ye(P(M))}if(T==="elaborate_to_execute"&&_){oU(i,"elaborate_to_execute",S),cU(i,S,_),Xr(i,s);let U={action:"advance_phase",intent:i,stage:S,from_phase:"elaborate",to_phase:_,message:xn(`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){oU(i,"stage_gate",S),K6(i,S,E),Xr(i,s);let U={action:"advance_stage",intent:i,stage:S,next_stage:E,gate_outcome:"advanced",message:xn(`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))}oU(i,"stage_gate",S),Px(i,S,"advanced"),Xr(i,s);let F=aU(Fl(ce(i),"intent.md")).studio||"",V=Y6(i,F,xn(`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"){Px(i,S,"advanced"),Xr(i,s);let F,V=Tv(i,S);if(Ee()&&V?.url){let M=V.url,{markPullRequestReady:j}=await Promise.resolve().then(()=>(ar(),MI)),H=j(M);try{let K=Fl(ce(i),"intent.md");Ne(K,"external_review_url",M)}catch{}H.ok?(zb(i,S,"status","ready"),zb(i,S,"ready_at",mn()),F=xn(`The user routed stage "${S}" to external review. The engine flipped the stage's draft PR to ready: ${M}`,`Tell the user: "The stage PR at ${M} is ready for review \u2014 merge it when you're satisfied. Run /haiku:haiku-pickup after the merge to continue." It targets \`haiku/${i}/main\` so the engine detects the merge.`)):(console.error(`[haiku] flip-to-ready of stage PR ${M} failed: ${H.error}`),F=xn(`The user routed stage "${S}" to external review. The stage's draft PR is at ${M}.`,`The engine couldn't flip the draft to ready (${H.error??"unknown"}). Tell the user to mark ${M} ready and merge it \u2014 it targets \`haiku/${i}/main\` so the merge signal lands correctly. Run /haiku:haiku-pickup after the merge.`))}else if(Ee()){let{openStagePullRequest:M}=await Promise.resolve().then(()=>(ar(),MI)),j=M({slug:i,stage:S});if(j.createdUrl){try{let H=Fl(ce(i),"intent.md");Ne(H,"external_review_url",j.createdUrl)}catch{}F=xn(`The user routed stage "${S}" to external review. The engine opened the MR for you: ${j.createdUrl}`,`Tell the user: "I opened the MR at ${j.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 j.compareUrl?F=xn(`The user routed stage "${S}" to external review. ${j.message}`,`The engine couldn't open the MR programmatically (${j.prError??j.pushError??"no gh/glab on PATH"}). Tell the user to click ${j.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=xn(`The user routed stage "${S}" to external review.`,`${j.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=xn(`The user routed stage "${S}" to external review.`,`Submit the work for review through your project's review process. Record the review URL via haiku_run_next { intent: "${i}", external_review_url: "" }. Run /haiku:haiku-pickup again after the PR is merged.`);let U={action:"external_review_requested",intent:i,stage:S,feedback:N.feedback,message:F};return ye(P(U))}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=Fl(process.cwd(),R),q=(T==="intent_review"&&!S?!0:T==="elaborate_to_execute"||T==="intent_review"?aL(W,S):!1)||!S?[]:N6(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:xn(`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=Fl(ce(i),"intent.md");Ne(F,"completion_review_dispatched",!1),Ne(F,"completion_review_skipped",!1),eer(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:xn(`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:xn(`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:xn(`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=Fl(process.cwd(),".haiku","logs");J$n(W,{recursive:!0}),$$n(Fl(W,"gate-review-error.log"),`${new Date().toISOString()} intent: ${i} stage: ${S} error: ${C} ${L} --- -`,{flag:"a"})}catch{}if(C.includes("not found")||C.includes("wrong type"))return{content:[{type:"text",text:`Gate review session expired or unavailable: ${C}. Call haiku_run_next { intent: "${i}" } to recreate it.`}],isError:!0};if(wIt(C))return xIt(i);if(kIt(C)){Xr(i,s);let W=IIt(x,a,S);return ye(P({action:"gate_awaiting_client",intent:i,stage:S,review_url:W||null,message:xn(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 LIt,mkdirSync as eer,readFileSync as ter,renameSync as ner,writeFileSync as rer}from"node:fs";import{dirname as ier,join as UIt}from"node:path";function FIt(e,t){let n=ve();return UIt(n,"intents",e,"stages",t,"coverage-decisions.json")}function ser(e,t){let n=FIt(e,t);if(!LIt(n))return{stage:t,decisions:[]};try{let r=JSON.parse(ter(n,"utf8"));return{stage:r.stage||t,decisions:Array.isArray(r.decisions)?r.decisions:[]}}catch{return{stage:t,decisions:[]}}}function oer(e,t,n){let r=FIt(e,t);eer(ier(r),{recursive:!0});let i=`${r}.tmp`;rer(i,`${JSON.stringify(n,null,2)} -`),ner(i,r)}function u_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var jIt,HIt=v(()=>{"use strict";ze();zi();jIt={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 u_e("empty_rationale","`rationale` must contain at least one non-whitespace character.");if(i==="covered-by-unit"&&(!o||o.trim()===""))return u_e("unit_required","`unit` is required when decision is `covered-by-unit`.");let c=ve(),u=UIt(c,"intents",t,"stages",n);if(!LIt(u))return u_e("stage_not_found",`Stage '${n}' not found for intent '${t}'.`);let l=ser(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),oer(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 p_e(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function KIt(e){Yv=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 tm(e,t){if(t){if(nu.escapeTest.test(e))return e.replace(nu.escapeReplace,zIt)}else if(nu.escapeTestNoEncode.test(e))return e.replace(nu.escapeReplaceNoEncode,zIt);return e}function GIt(e){try{e=encodeURI(e).replace(nu.percentDecode,"%")}catch{return null}return e}function VIt(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 Ver(e,t=0){let n=t,r="";for(let i of e)if(i===" "){let s=4-n%4;r+=" ".repeat(s),n+=s}else r+=i,n++;return r}function WIt(e,t,n,r,i){let s=t.href,o=t.title||null,a=e[1].replace(i.other.outputLinkReplace,"$1");r.state.inLink=!0;let c={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:s,title:o,text:a,tokens:r.inlineTokens(a)};return r.state.inLink=!1,c}function Wer(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(kIt(C))return OIt(i);if(IIt(C)){Xr(i,s);let W=xIt(x,a,S);return ye(P({action:"gate_awaiting_client",intent:i,stage:S,review_url:W||null,message:xn(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&&Bi(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 UIt,mkdirSync as ter,readFileSync as ner,renameSync as rer,writeFileSync as ier}from"node:fs";import{dirname as ser,join as FIt}from"node:path";function jIt(e,t){let n=ve();return FIt(n,"intents",e,"stages",t,"coverage-decisions.json")}function oer(e,t){let n=jIt(e,t);if(!UIt(n))return{stage:t,decisions:[]};try{let r=JSON.parse(ner(n,"utf8"));return{stage:r.stage||t,decisions:Array.isArray(r.decisions)?r.decisions:[]}}catch{return{stage:t,decisions:[]}}}function aer(e,t,n){let r=jIt(e,t);ter(ser(r),{recursive:!0});let i=`${r}.tmp`;ier(i,`${JSON.stringify(n,null,2)} +`),rer(i,r)}function d_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var HIt,qIt=v(()=>{"use strict";ze();Gi();HIt={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 d_e("empty_rationale","`rationale` must contain at least one non-whitespace character.");if(i==="covered-by-unit"&&(!o||o.trim()===""))return d_e("unit_required","`unit` is required when decision is `covered-by-unit`.");let c=ve(),u=FIt(c,"intents",t,"stages",n);if(!UIt(u))return d_e("stage_not_found",`Stage '${n}' not found for intent '${t}'.`);let l=oer(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),aer(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 m_e(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function YIt(e){Yv=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 tm(e,t){if(t){if(nu.escapeTest.test(e))return e.replace(nu.escapeReplace,GIt)}else if(nu.escapeTestNoEncode.test(e))return e.replace(nu.escapeReplaceNoEncode,GIt);return e}function VIt(e){try{e=encodeURI(e).replace(nu.percentDecode,"%")}catch{return null}return e}function WIt(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 Wer(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 KIt(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 Ker(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(` `).map(s=>{let o=s.match(n.other.beginningSpace);if(o===null)return s;let[a]=o;return a.length>=i.length?s.slice(i.length):s}).join(` -`)}function Nr(e,t){return Kv.parse(e,t)}var Yv,Wv,aer,nu,cer,uer,ler,pU,der,h_e,YIt,ZIt,fer,m_e,per,g_e,her,mer,e5,y_e,ger,JIt,yer,S_e,qIt,Ser,ber,Eer,_er,XIt,Ter,Nx,t5,b_e,ver,QIt,Rer,Aer,wer,$It,ker,Ier,e0t,xer,Oer,Per,Ner,Cer,Mer,Der,Ler,Uer,Fer,X6,jer,t0t,n0t,Her,BIt,E_e,qer,l_e,Ber,J6,lU,zer,zIt,Q6,cp,$6,__e,up,fU,Ker,Kv,e0i,t0i,n0i,r0i,i0i,s0i,o0i,r0t=v(()=>{Yv=p_e();Wv={exec:()=>null};aer=(()=>{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)}}>`)},cer=/^(?:[ \t]*(?:\n|$))+/,uer=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,ler=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,pU=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,der=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,h_e=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,YIt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,ZIt=$n(YIt).replace(/bull/g,h_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(),fer=$n(YIt).replace(/bull/g,h_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(),m_e=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,per=/^[^\n]+/,g_e=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,her=$n(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",g_e).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),mer=$n(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,h_e).getRegex(),e5="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",y_e=/|$))/,ger=$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",y_e).replace("tag",e5).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),JIt=$n(m_e).replace("hr",pU).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",e5).getRegex(),yer=$n(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",JIt).getRegex(),S_e={blockquote:yer,code:uer,def:her,fences:ler,heading:der,hr:pU,html:ger,lheading:ZIt,list:mer,newline:cer,paragraph:JIt,table:Wv,text:per},qIt=$n("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",pU).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",e5).getRegex(),Ser={...S_e,lheading:fer,table:qIt,paragraph:$n(m_e).replace("hr",pU).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",qIt).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",e5).getRegex()},ber={...S_e,html:$n(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",y_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:Wv,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:$n(m_e).replace("hr",pU).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",ZIt).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Eer=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,_er=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,XIt=/^( {2,}|\\)\n(?!\s*$)/,Ter=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",aer?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),$It=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,ker=$n($It,"u").replace(/punct/g,Nx).getRegex(),Ier=$n($It,"u").replace(/punct/g,QIt).getRegex(),e0t="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",xer=$n(e0t,"gu").replace(/notPunctSpace/g,b_e).replace(/punctSpace/g,t5).replace(/punct/g,Nx).getRegex(),Oer=$n(e0t,"gu").replace(/notPunctSpace/g,Aer).replace(/punctSpace/g,Rer).replace(/punct/g,QIt).getRegex(),Per=$n("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,b_e).replace(/punctSpace/g,t5).replace(/punct/g,Nx).getRegex(),Ner=$n(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Nx).getRegex(),Cer="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",Mer=$n(Cer,"gu").replace(/notPunctSpace/g,b_e).replace(/punctSpace/g,t5).replace(/punct/g,Nx).getRegex(),Der=$n(/\\(punct)/,"gu").replace(/punct/g,Nx).getRegex(),Ler=$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(),Uer=$n(y_e).replace("(?:-->|$)","-->").getRegex(),Fer=$n("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",Uer).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),X6=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,jer=$n(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",X6).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),t0t=$n(/^!?\[(label)\]\[(ref)\]/).replace("label",X6).replace("ref",g_e).getRegex(),n0t=$n(/^!?\[(ref)\](?:\[\])?/).replace("ref",g_e).getRegex(),Her=$n("reflink|nolink(?!\\()","g").replace("reflink",t0t).replace("nolink",n0t).getRegex(),BIt=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,E_e={_backpedal:Wv,anyPunctuation:Der,autolink:Ler,blockSkip:wer,br:XIt,code:_er,del:Wv,delLDelim:Wv,delRDelim:Wv,emStrongLDelim:ker,emStrongRDelimAst:xer,emStrongRDelimUnd:Per,escape:Eer,link:jer,nolink:n0t,punctuation:ver,reflink:t0t,reflinkSearch:Her,tag:Fer,text:Ter,url:Wv},qer={...E_e,link:$n(/^!?\[(label)\]\((.*?)\)/).replace("label",X6).getRegex(),reflink:$n(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",X6).getRegex()},l_e={...E_e,emStrongRDelimAst:Oer,emStrongLDelim:Ier,delLDelim:Ner,delRDelim:Mer,url:$n(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",BIt).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]*?(?:(?=[\\":">",'"':""","'":"'"},zIt=e=>zer[e];Q6=class{options;rules;lexer;constructor(e){this.options=e||Yv}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:dU(n,` -`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=Wer(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=dU(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:dU(t[0],` +`)}function Nr(e,t){return Kv.parse(e,t)}var Yv,Wv,cer,nu,uer,ler,der,pU,fer,g_e,ZIt,JIt,per,y_e,her,S_e,mer,ger,e5,b_e,yer,XIt,Ser,E_e,BIt,ber,Eer,_er,Ter,QIt,ver,Nx,t5,__e,Rer,$It,Aer,wer,ker,e0t,Ier,xer,t0t,Oer,Per,Ner,Cer,Mer,Der,Ler,Uer,Fer,jer,X6,Her,n0t,r0t,qer,zIt,T_e,Ber,f_e,zer,J6,lU,Ger,GIt,Q6,cp,$6,v_e,up,fU,Yer,Kv,t0i,n0i,r0i,i0i,s0i,o0i,a0i,i0t=v(()=>{Yv=m_e();Wv={exec:()=>null};cer=(()=>{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)}}>`)},uer=/^(?:[ \t]*(?:\n|$))+/,ler=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,der=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,pU=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,fer=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,g_e=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,ZIt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,JIt=$n(ZIt).replace(/bull/g,g_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(),per=$n(ZIt).replace(/bull/g,g_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(),y_e=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,her=/^[^\n]+/,S_e=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,mer=$n(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",S_e).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),ger=$n(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,g_e).getRegex(),e5="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",b_e=/|$))/,yer=$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",b_e).replace("tag",e5).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),XIt=$n(y_e).replace("hr",pU).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",e5).getRegex(),Ser=$n(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",XIt).getRegex(),E_e={blockquote:Ser,code:ler,def:mer,fences:der,heading:fer,hr:pU,html:yer,lheading:JIt,list:ger,newline:uer,paragraph:XIt,table:Wv,text:her},BIt=$n("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",pU).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",e5).getRegex(),ber={...E_e,lheading:per,table:BIt,paragraph:$n(y_e).replace("hr",pU).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",BIt).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",e5).getRegex()},Eer={...E_e,html:$n(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",b_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:Wv,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:$n(y_e).replace("hr",pU).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",JIt).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},_er=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Ter=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,QIt=/^( {2,}|\\)\n(?!\s*$)/,ver=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",cer?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),e0t=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Ier=$n(e0t,"u").replace(/punct/g,Nx).getRegex(),xer=$n(e0t,"u").replace(/punct/g,$It).getRegex(),t0t="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Oer=$n(t0t,"gu").replace(/notPunctSpace/g,__e).replace(/punctSpace/g,t5).replace(/punct/g,Nx).getRegex(),Per=$n(t0t,"gu").replace(/notPunctSpace/g,wer).replace(/punctSpace/g,Aer).replace(/punct/g,$It).getRegex(),Ner=$n("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,__e).replace(/punctSpace/g,t5).replace(/punct/g,Nx).getRegex(),Cer=$n(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Nx).getRegex(),Mer="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",Der=$n(Mer,"gu").replace(/notPunctSpace/g,__e).replace(/punctSpace/g,t5).replace(/punct/g,Nx).getRegex(),Ler=$n(/\\(punct)/,"gu").replace(/punct/g,Nx).getRegex(),Uer=$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(),Fer=$n(b_e).replace("(?:-->|$)","-->").getRegex(),jer=$n("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",Fer).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),X6=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Her=$n(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",X6).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),n0t=$n(/^!?\[(label)\]\[(ref)\]/).replace("label",X6).replace("ref",S_e).getRegex(),r0t=$n(/^!?\[(ref)\](?:\[\])?/).replace("ref",S_e).getRegex(),qer=$n("reflink|nolink(?!\\()","g").replace("reflink",n0t).replace("nolink",r0t).getRegex(),zIt=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,T_e={_backpedal:Wv,anyPunctuation:Ler,autolink:Uer,blockSkip:ker,br:QIt,code:Ter,del:Wv,delLDelim:Wv,delRDelim:Wv,emStrongLDelim:Ier,emStrongRDelimAst:Oer,emStrongRDelimUnd:Ner,escape:_er,link:Her,nolink:r0t,punctuation:Rer,reflink:n0t,reflinkSearch:qer,tag:jer,text:ver,url:Wv},Ber={...T_e,link:$n(/^!?\[(label)\]\((.*?)\)/).replace("label",X6).getRegex(),reflink:$n(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",X6).getRegex()},f_e={...T_e,emStrongRDelimAst:Per,emStrongLDelim:xer,delLDelim:Cer,delRDelim:Der,url:$n(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",zIt).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]*?(?:(?=[\\":">",'"':""","'":"'"},GIt=e=>Ger[e];Q6=class{options;rules;lexer;constructor(e){this.options=e||Yv}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:dU(n,` +`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=Ker(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=dU(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:dU(t[0],` `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=dU(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=Ver(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=Wer(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),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=VIt(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=dU(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=Ger(t[2],"()");if(s===-2)return;if(s>-1){let o=(t[0].indexOf("!")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,o).trim(),t[3]=""}}let r=t[2],i="";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(r);s&&(r=s[1],i=s[3])}else i=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),WIt(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=t[r.toLowerCase()];if(!i){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return WIt(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,s,o,a=i,c=0,u=r[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,t=t.slice(-1*e.length+i);(r=u.exec(t))!==null;){if(s=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!s)continue;if(o=[...s].length,r[3]||r[4]){a+=o;continue}else if((r[5]||r[6])&&i%3&&!((i+o)%3)){c+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a+c);let l=[...r[0]][0].length,d=e.slice(0,i+r.index+l+o);if(Math.min(i,o)%2){let p=d.slice(1,-1);return{type:"em",raw:d,text:p,tokens:this.lexer.inlineTokens(p)}}let f=d.slice(2,-2);return{type:"strong",raw:d,text:f,tokens:this.lexer.inlineTokens(f)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,n=""){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,s,o,a=i,c=this.rules.inline.delRDelim;for(c.lastIndex=0,t=t.slice(-1*e.length+i);(r=c.exec(t))!==null;){if(s=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!s||(o=[...s].length,o!==i))continue;if(r[3]||r[4]){a+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a);let u=[...r[0]][0].length,l=e.slice(0,i+r.index+u+o),d=l.slice(i,-i);return{type:"del",raw:l,text:d,tokens:this.lexer.inlineTokens(d)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,r;return t[2]==="@"?(n=t[1],r="mailto:"+n):(n=t[1],r=n),{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,r;if(t[2]==="@")n=t[0],r="mailto:"+n;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(i!==t[0]);n=t[0],t[1]==="www."?r="http://"+t[0]:r=t[0]}return{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}},cp=class d_e{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Yv,this.options.tokenizer=this.options.tokenizer||new Q6,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:J6.normal,inline:lU.normal};this.options.pedantic?(n.block=J6.pedantic,n.inline=lU.pedantic):this.options.gfm&&(n.block=J6.gfm,this.options.breaks?n.inline=lU.breaks:n.inline=lU.gfm),this.tokenizer.rules=n}static get rules(){return{block:J6,inline:lU}}static lex(t,n){return new d_e(n).lex(t)}static lexInline(t,n){return new d_e(n).inlineTokens(t)}lex(t){t=t.replace(nu.carriageReturn,` +`,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=WIt(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=dU(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=Ver(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)),KIt(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 KIt(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 p_e{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Yv,this.options.tokenizer=this.options.tokenizer||new Q6,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:J6.normal,inline:lU.normal};this.options.pedantic?(n.block=J6.pedantic,n.inline=lU.pedantic):this.options.gfm&&(n.block=J6.gfm,this.options.breaks?n.inline=lU.breaks:n.inline=lU.gfm),this.tokenizer.rules=n}static get rules(){return{block:J6,inline:lU}}static lex(t,n){return new p_e(n).lex(t)}static lexInline(t,n){return new p_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(` `)?"":` @@ -1241,34 +1241,34 @@ ${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`${tm(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=GIt(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=GIt(e);if(i===null)return tm(n);e=i;let s=`${tm(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 $6(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 Q6(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 fU;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];fU.passThroughHooks.has(s)?i[o]=u=>{if(this.defaults.async&&fU.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:

"+tm(n.message+"",!0)+"
";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}},Kv=new Ker;Nr.options=Nr.setOptions=function(e){return Kv.setOptions(e),Nr.defaults=Kv.defaults,KIt(Nr.defaults),Nr};Nr.getDefaults=p_e;Nr.defaults=Yv;Nr.use=function(...e){return Kv.use(...e),Nr.defaults=Kv.defaults,KIt(Nr.defaults),Nr};Nr.walkTokens=function(e,t){return Kv.walkTokens(e,t)};Nr.parseInline=Kv.parseInline;Nr.Parser=up;Nr.parser=up.parse;Nr.Renderer=$6;Nr.TextRenderer=__e;Nr.Lexer=cp;Nr.lexer=cp.lex;Nr.Tokenizer=Q6;Nr.Hooks=fU;Nr.parse=Nr;e0i=Nr.options,t0i=Nr.setOptions,n0i=Nr.use,r0i=Nr.walkTokens,i0i=Nr.parseInline,s0i=up.parse,o0i=cp.lex});function n5(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`${tm(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=VIt(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=VIt(e);if(i===null)return tm(n);e=i;let s=`${tm(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 $6(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 Q6(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 fU;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];fU.passThroughHooks.has(s)?i[o]=u=>{if(this.defaults.async&&fU.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:

"+tm(n.message+"",!0)+"
";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}},Kv=new Yer;Nr.options=Nr.setOptions=function(e){return Kv.setOptions(e),Nr.defaults=Kv.defaults,YIt(Nr.defaults),Nr};Nr.getDefaults=m_e;Nr.defaults=Yv;Nr.use=function(...e){return Kv.use(...e),Nr.defaults=Kv.defaults,YIt(Nr.defaults),Nr};Nr.walkTokens=function(e,t){return Kv.walkTokens(e,t)};Nr.parseInline=Kv.parseInline;Nr.Parser=up;Nr.parser=up.parse;Nr.Renderer=$6;Nr.TextRenderer=v_e;Nr.Lexer=cp;Nr.lexer=cp.lex;Nr.Tokenizer=Q6;Nr.Hooks=fU;Nr.parse=Nr;t0i=Nr.options,n0i=Nr.setOptions,r0i=Nr.use,i0i=Nr.walkTokens,s0i=Nr.parseInline,o0i=up.parse,a0i=cp.lex});function n5(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 r5(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 T_e=v(()=>{"use strict";r0t()});import{existsSync as Yer}from"node:fs";import{readdir as Zu,readFile as lp}from"node:fs/promises";import{basename as hU,join as wi,relative as i0t,resolve as i5}from"node:path";function v_e(e,t){try{return(0,Qb.default)(e)}catch(n){if(!hI(n))throw n;let{text:r,removed:i}=hg(e);if(i.length===0)throw n;let s=(0,Qb.default)(r);return console.warn(`[haiku] Recovered duplicate YAML keys in ${t}: kept last occurrence of ${i.join(", ")}`),s}}function s0t(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 o0t(e){let t=e.match(/^# (.+)$/m);return t?t[1].trim():""}function a0t(e){return e.replace(/^# .+$/m,"").trim()}async function mU(e){try{let t=wi(e,"intent.md"),n=await lp(t,"utf-8"),{data:r,content:i}=v_e(n,t),s=s0t(r),o=o0t(i),a=a0t(i),c=n5(a);return{slug:hU(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 c0t(e){try{let t=await lp(e,"utf-8"),{data:n,content:r}=v_e(t,e),i=s0t(n),s=o0t(r),o=a0t(r),a=n5(o),c=hU(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 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,"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 c0t(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 a5(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 Zer(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 Zer(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,Qb.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 c5(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,Qb.default)(s);t.push({name:i.replace(/\.md$/,""),content:o})}catch{}}catch{}return t}async function u5(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,Qb.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,Qb.default)(d);t.push({stage:i.name,name:`${a}/${l.name.replace(/\.md$/,"")}`,content:f})}catch{}}catch{}}catch{}}catch{}return t}async function u0t(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 u0t(i)):t.push(i)}return t}async function s5(e,t,n,r){let i=hU(e),s=i.substring(i.lastIndexOf(".")).toLowerCase();if(s===".md")try{let o=await lp(e,"utf-8"),{content:a}=(0,Qb.default)(o);return{stage:t,name:n,type:"markdown",content:a}}catch{return null}if(Xer.includes(s))try{let o=await lp(e,"utf-8"),a=await i6(o,e,iTt(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(etr.includes(s))try{let o=await lp(e,"utf-8");return{stage:t,name:n,type:"code",language:$er[s],content:o,relativePath:r}}catch{}try{let o=await lp(e);if(ttr(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 ttr(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 gU(e,t){let r=`.haiku/intents/${hU(t)}/`;return e.startsWith(r)?e.slice(r.length):e}async function rtr(e){let t=[],n=i5(e),r=`${n}/`,i=n.indexOf("/.haiku/"),s=i>=0?n.slice(0,i):i5(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()&&ntr.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=v_e(m,p).data.outputs;h=Array.isArray(y)?y.filter(b=>typeof b=="string"):[]}catch{continue}for(let m of h){if(JL.has(hU(m)))continue;let g=gU(m,e),y=i5(n,g),b=y!==n&&y.startsWith(r),S=y,E=i0t(n,y),_=E;if(!(b&&Yer(y))){let R=i5(s,m);if(R!==s&&R.startsWith(o))S=R,E=m,_=void 0;else if(!b)continue}let T=await s5(S,u,E,_??E);T&&(_===void 0&&(T.relativePath=void 0),t.push({absPath:S,artifact:T}))}}}return t}async function l0t(e,t=""){let n=[],r;try{r=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&rSt.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 l0t(o,s)):i.isFile()&&n.push({absPath:o,relFromStage:s})}return n}async function l5(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 u0t(c)).sort();for(let l of u){let d=i0t(c,l),f=d,p=`stages/${a}/artifacts/${d}`,h=await s5(l,a,f,p);h&&(t.push(h),r.add(l))}}}catch{}for(let{absPath:s,artifact:o}of await rtr(e))r.has(s)||(t.push(o),r.add(s));for(let s of i){let o=wi(e,"stages",s),a=await l0t(o);a.sort((c,u)=>c.relFromStage.localeCompare(u.relFromStage));for(let{absPath:c,relFromStage:u}of a){if(r.has(c)||itr.has(u))continue;let l=u,d=`stages/${s}/${u}`,f=await s5(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 d5(e){let t=[],n=await d0t(e);n.sort((r,i)=>r.relFromRoot.localeCompare(i.relFromRoot));for(let{absPath:r,relFromRoot:i}of n){let s=await s5(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 d0t(e,t=""){let n=[],r;try{r=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&JL.has(i.name))continue;let s=t?`${t}/${i.name}`:i.name,o=wi(e,i.name);i.isDirectory()?n.push(...await d0t(o,s)):i.isFile()&&n.push({absPath:o,relFromRoot:s})}return n}var Qb,Jer,Xer,Qer,$er,etr,ntr,itr,f5=v(()=>{"use strict";xD();Qb=Re(Kt(),1);wbe();T_e();Rye();Jer=[".png",".jpg",".jpeg",".svg",".webp",".gif"],Xer=[".html",".htm"],Qer=[".mp4",".webm",".mov",".m4v",".ogv"],$er={".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"},etr=[".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"];ntr=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;itr=new Set(["BRIEF.md","elaboration.md","observations.md"])});var f0t=v(()=>{"use strict";ohe();T_e();f5()});function yU(e,t){let n=t.replace(/^\/+/,"");return`/stage-artifacts/${e}/${n}`}var R_e=v(()=>{"use strict"});import{readFile as p0t,stat as otr}from"node:fs/promises";import{basename as g0t,relative as atr,resolve as h0t}from"node:path";function A_e(e){let t=g0t(e);return!!(t.startsWith(".")||ftr.has(t)||t.endsWith(".manifest")||t.includes("fs-manifest"))}async function S0t(e,t,n){if(!n||n.length===0)return[];let r=h0t(e),i=`${r}/`,s=[];for(let o of n){if(typeof o!="string"||A_e(o))continue;let a=gU(o,e),c=h0t(r,a);if(c!==r&&!c.startsWith(i))continue;let u=atr(r,c),l=g0t(u),d=l.lastIndexOf("."),f=d>=0?l.substring(d).toLowerCase():"",p=l.replace(/\.[^.]+$/,"")||l,h=yU(t,u),m=!0,g;try{let b=await otr(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 p0t(c,"utf-8"),{content:E}=(0,y0t.default)(S);b=m0t(E,ctr)}catch{}s.push({...y,type:"markdown",...b!==void 0?{previewBody:b}:{}});continue}if(dtr.has(f)){let b;if(m)try{let S=await p0t(c,"utf-8");b=m0t(S,utr)}catch{}s.push({...y,type:"html",...b!==void 0?{previewBody:b}:{}});continue}if(ltr.has(f)){s.push({...y,type:"image"});continue}s.push({...y,type:"file"})}return s}function m0t(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 r5(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 R_e=v(()=>{"use strict";i0t()});import{existsSync as Zer}from"node:fs";import{readdir as Zu,readFile as lp}from"node:fs/promises";import{basename as hU,join as wi,relative as s0t,resolve as i5}from"node:path";function A_e(e,t){try{return(0,Qb.default)(e)}catch(n){if(!hI(n))throw n;let{text:r,removed:i}=hg(e);if(i.length===0)throw n;let s=(0,Qb.default)(r);return console.warn(`[haiku] Recovered duplicate YAML keys in ${t}: kept last occurrence of ${i.join(", ")}`),s}}function o0t(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 a0t(e){let t=e.match(/^# (.+)$/m);return t?t[1].trim():""}function c0t(e){return e.replace(/^# .+$/m,"").trim()}async function mU(e){try{let t=wi(e,"intent.md"),n=await lp(t,"utf-8"),{data:r,content:i}=A_e(n,t),s=o0t(r),o=a0t(i),a=c0t(i),c=n5(a);return{slug:hU(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 u0t(e){try{let t=await lp(e,"utf-8"),{data:n,content:r}=A_e(t,e),i=o0t(n),s=a0t(r),o=c0t(r),a=n5(o),c=hU(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 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,"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 u0t(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 a5(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 Jer(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 Jer(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,Qb.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 c5(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,Qb.default)(s);t.push({name:i.replace(/\.md$/,""),content:o})}catch{}}catch{}return t}async function u5(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,Qb.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,Qb.default)(d);t.push({stage:i.name,name:`${a}/${l.name.replace(/\.md$/,"")}`,content:f})}catch{}}catch{}}catch{}}catch{}return t}async function l0t(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 l0t(i)):t.push(i)}return t}async function s5(e,t,n,r){let i=hU(e),s=i.substring(i.lastIndexOf(".")).toLowerCase();if(s===".md")try{let o=await lp(e,"utf-8"),{content:a}=(0,Qb.default)(o);return{stage:t,name:n,type:"markdown",content:a}}catch{return null}if(Qer.includes(s))try{let o=await lp(e,"utf-8"),a=await i6(o,e,sTt(e,r));return{stage:t,name:n,type:"html",content:a,relativePath:r}}catch{return null}if(Xer.includes(s))return{stage:t,name:n,type:"image",relativePath:r};if($er.includes(s))return{stage:t,name:n,type:"video",relativePath:r};if(ttr.includes(s))try{let o=await lp(e,"utf-8");return{stage:t,name:n,type:"code",language:etr[s],content:o,relativePath:r}}catch{}try{let o=await lp(e);if(ntr(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 ntr(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 gU(e,t){let r=`.haiku/intents/${hU(t)}/`;return e.startsWith(r)?e.slice(r.length):e}async function itr(e){let t=[],n=i5(e),r=`${n}/`,i=n.indexOf("/.haiku/"),s=i>=0?n.slice(0,i):i5(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()&&rtr.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=A_e(m,p).data.outputs;h=Array.isArray(y)?y.filter(b=>typeof b=="string"):[]}catch{continue}for(let m of h){if(JL.has(hU(m)))continue;let g=gU(m,e),y=i5(n,g),b=y!==n&&y.startsWith(r),S=y,E=s0t(n,y),_=E;if(!(b&&Zer(y))){let R=i5(s,m);if(R!==s&&R.startsWith(o))S=R,E=m,_=void 0;else if(!b)continue}let T=await s5(S,u,E,_??E);T&&(_===void 0&&(T.relativePath=void 0),t.push({absPath:S,artifact:T}))}}}return t}async function d0t(e,t=""){let n=[],r;try{r=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&iSt.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 d0t(o,s)):i.isFile()&&n.push({absPath:o,relFromStage:s})}return n}async function l5(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 l0t(c)).sort();for(let l of u){let d=s0t(c,l),f=d,p=`stages/${a}/artifacts/${d}`,h=await s5(l,a,f,p);h&&(t.push(h),r.add(l))}}}catch{}for(let{absPath:s,artifact:o}of await itr(e))r.has(s)||(t.push(o),r.add(s));for(let s of i){let o=wi(e,"stages",s),a=await d0t(o);a.sort((c,u)=>c.relFromStage.localeCompare(u.relFromStage));for(let{absPath:c,relFromStage:u}of a){if(r.has(c)||otr.has(u))continue;let l=u,d=`stages/${s}/${u}`,f=await s5(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 d5(e){let t=[],n=await f0t(e);n.sort((r,i)=>r.relFromRoot.localeCompare(i.relFromRoot));for(let{absPath:r,relFromRoot:i}of n){let s=await s5(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 f0t(e,t=""){let n=[],r;try{r=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&JL.has(i.name))continue;let s=t?`${t}/${i.name}`:i.name,o=wi(e,i.name);i.isDirectory()?n.push(...await f0t(o,s)):i.isFile()&&n.push({absPath:o,relFromRoot:s})}return n}var Qb,Xer,Qer,$er,etr,ttr,rtr,otr,f5=v(()=>{"use strict";xD();Qb=Re(Kt(),1);Ibe();R_e();wye();Xer=[".png",".jpg",".jpeg",".svg",".webp",".gif"],Qer=[".html",".htm"],$er=[".mp4",".webm",".mov",".m4v",".ogv"],etr={".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"},ttr=[".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"];rtr=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;otr=new Set(["BRIEF.md","elaboration.md","observations.md"])});var p0t=v(()=>{"use strict";che();R_e();f5()});function yU(e,t){let n=t.replace(/^\/+/,"");return`/stage-artifacts/${e}/${n}`}var w_e=v(()=>{"use strict"});import{readFile as h0t,stat as atr}from"node:fs/promises";import{basename as y0t,relative as ctr,resolve as m0t}from"node:path";function k_e(e){let t=y0t(e);return!!(t.startsWith(".")||ptr.has(t)||t.endsWith(".manifest")||t.includes("fs-manifest"))}async function b0t(e,t,n){if(!n||n.length===0)return[];let r=m0t(e),i=`${r}/`,s=[];for(let o of n){if(typeof o!="string"||k_e(o))continue;let a=gU(o,e),c=m0t(r,a);if(c!==r&&!c.startsWith(i))continue;let u=ctr(r,c),l=y0t(u),d=l.lastIndexOf("."),f=d>=0?l.substring(d).toLowerCase():"",p=l.replace(/\.[^.]+$/,"")||l,h=yU(t,u),m=!0,g;try{let b=await atr(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 h0t(c,"utf-8"),{content:E}=(0,S0t.default)(S);b=g0t(E,utr)}catch{}s.push({...y,type:"markdown",...b!==void 0?{previewBody:b}:{}});continue}if(ftr.has(f)){let b;if(m)try{let S=await h0t(c,"utf-8");b=g0t(S,ltr)}catch{}s.push({...y,type:"html",...b!==void 0?{previewBody:b}:{}});continue}if(dtr.has(f)){s.push({...y,type:"image"});continue}s.push({...y,type:"file"})}return s}function g0t(e,t){let n=e.trim();return n.length<=t?n:`${n.slice(0,t).trimEnd()} -\u2026`}var y0t,ctr,utr,ltr,dtr,ftr,w_e=v(()=>{"use strict";y0t=Re(Kt(),1);f5();R_e();ctr=2e3,utr=2e3,ltr=new Set([".png",".jpg",".jpeg",".svg",".webp",".gif",".avif"]),dtr=new Set([".html",".htm"]),ftr=new Set(["action-log.jsonl","write-audit.jsonl","decisions.jsonl","coverage-decisions.json"])});import{readdir as b0t,readFile as ptr}from"node:fs/promises";import{basename as htr,join as k_e,relative as mtr,resolve as E0t}from"node:path";async function T0t(e){let t=E0t(e),n=`${t}/`,r={},i;try{i=await b0t(k_e(e,"stages"),{withFileTypes:!0,encoding:"utf8"})}catch{return r}for(let s of i){if(!s.isDirectory())continue;let o=k_e(e,"stages",s.name,"units"),a;try{a=(await b0t(o,{withFileTypes:!0,encoding:"utf8"})).filter(c=>c.isFile()&>r.test(c.name)).map(c=>c.name).sort()}catch{continue}for(let c of a){let u=k_e(o,c),l=htr(c,".md"),d;try{let f=await ptr(u,"utf-8"),p=(0,_0t.default)(f).data.outputs;d=Array.isArray(p)?p.filter(h=>typeof h=="string"):[]}catch{continue}for(let f of d){if(A_e(f))continue;let p=gU(f,e),h=E0t(t,p);if(h!==t&&!h.startsWith(n))continue;let m=mtr(t,h);r[m]||(r[m]=[]),r[m].includes(l)||r[m].push(l)}}}return r}var _0t,gtr,v0t=v(()=>{"use strict";_0t=Re(Kt(),1);f5();w_e();gtr=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/});import{spawn as ytr}from"node:child_process";import{appendFileSync as Str,existsSync as I_e,mkdirSync as w0t,writeFileSync as k0t}from"node:fs";import{readFile as SU}from"node:fs/promises";import{dirname as x_e,join as nm,resolve as h5}from"node:path";async function x0t(e,t,n){let r=await Promise.all(n.map(async o=>({slug:o.slug,outputs:await S0t(e,t,o.frontmatter.outputs)}))),i={};for(let{slug:o,outputs:a}of r)a.length>0&&(i[o]=a);let s=await T0t(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.`),STt(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=ytr(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 p5(e){try{Str(_tr,`${new Date().toISOString()} ${e} +\u2026`}var S0t,utr,ltr,dtr,ftr,ptr,I_e=v(()=>{"use strict";S0t=Re(Kt(),1);f5();w_e();utr=2e3,ltr=2e3,dtr=new Set([".png",".jpg",".jpeg",".svg",".webp",".gif",".avif"]),ftr=new Set([".html",".htm"]),ptr=new Set(["action-log.jsonl","write-audit.jsonl","decisions.jsonl","coverage-decisions.json"])});import{readdir as E0t,readFile as htr}from"node:fs/promises";import{basename as mtr,join as x_e,relative as gtr,resolve as _0t}from"node:path";async function v0t(e){let t=_0t(e),n=`${t}/`,r={},i;try{i=await E0t(x_e(e,"stages"),{withFileTypes:!0,encoding:"utf8"})}catch{return r}for(let s of i){if(!s.isDirectory())continue;let o=x_e(e,"stages",s.name,"units"),a;try{a=(await E0t(o,{withFileTypes:!0,encoding:"utf8"})).filter(c=>c.isFile()&&ytr.test(c.name)).map(c=>c.name).sort()}catch{continue}for(let c of a){let u=x_e(o,c),l=mtr(c,".md"),d;try{let f=await htr(u,"utf-8"),p=(0,T0t.default)(f).data.outputs;d=Array.isArray(p)?p.filter(h=>typeof h=="string"):[]}catch{continue}for(let f of d){if(k_e(f))continue;let p=gU(f,e),h=_0t(t,p);if(h!==t&&!h.startsWith(n))continue;let m=gtr(t,h);r[m]||(r[m]=[]),r[m].includes(l)||r[m].push(l)}}}return r}var T0t,ytr,R0t=v(()=>{"use strict";T0t=Re(Kt(),1);f5();I_e();ytr=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/});import{spawn as Str}from"node:child_process";import{appendFileSync as btr,existsSync as O_e,mkdirSync as k0t,writeFileSync as I0t}from"node:fs";import{readFile as SU}from"node:fs/promises";import{dirname as P_e,join as nm,resolve as h5}from"node:path";async function O0t(e,t,n){let r=await Promise.all(n.map(async o=>({slug:o.slug,outputs:await b0t(e,t,o.frontmatter.outputs)}))),i={};for(let{slug:o,outputs:a}of r)a.length>0&&(i[o]=a);let s=await v0t(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.`),bTt(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=Str(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 p5(e){try{btr(Ttr,`${new Date().toISOString()} ${e} `)}catch{}process.stderr.write(`[haiku-mcp] ${e} -`)}function Ttr(e,t){if(!t){p5(`bindSessionCancellation(${e}): no signal passed \u2014 cancel will not fire`);return}if(p5(`bindSessionCancellation(${e}): signal attached, aborted=${t.aborted}`),t.aborted){p5(`bindSessionCancellation(${e}): signal was already aborted, closing immediately`),Dv(e,"tool call cancelled");return}t.addEventListener("abort",()=>{p5(`abort fired for session ${e} \u2014 closing WS (reason: ${t.reason})`),Dv(e,"tool call cancelled")},{once:!0})}async function O0t(e,t){let{name:n,arguments:r}=e.params;if(bU.has(n))return N_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(!Yne())try{let u=nm(ve(),"reports");w0t(u,{recursive:!0});let l=new Date().toISOString().replace(/[:.]/g,"-"),d=nm(u,`${l}.json`);return k0t(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 Kne(s,c,o,a),{content:[{type:"text",text:"Feedback submitted. Thank you!"}]}}if(n==="haiku_review_open"){let i=r??{},s=Be(i,Rge,"haiku_review_open");if(s)return s;let o=i.intent||"";if(!o){let q=_v();if(q)o=q.slug;else{let Q=ve(),B=nm(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=ce(o),c=await mU(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(),D0)),h=u||(d?f(o,d)??"":""),m=await o5(a),g=P3(m),y=C3(g,m),b=c.sections.find(q=>q.heading?.toLowerCase().includes("completion criteria")||q.heading?.toLowerCase().includes("success criteria")),S=b?r5(b.content):[],E=KY({intent_dir:a,intent_slug:o,target:""});E.ad_hoc=!0,E.stage=h||void 0;let{unitOutputs:_,outputDeclaredBy:T}=await x0t(a,E.session_id,m);Object.assign(E,{parsedIntent:c,parsedUnits:m,parsedCriteria:S,parsedMermaid:y,unitOutputs:_,outputDeclaredBy:T});let R=await a5(a),A=await c5(a),x=await u5(a),{outputs:k,other:P}=await l5(a),N=await d5(a);for(let q of[...k,...P,...N])q.relativePath&&(q.intentRelativePath=q.relativePath,q.relativePath=yU(E.session_id,q.relativePath));Object.assign(E,{stageStates:R,knowledgeFiles:A,stageArtifacts:x,outputArtifacts:k,otherFiles:P,intentOtherFiles:N});let C=await Yb(),L=Bi()?Ov(E.session_id,await Hg(C),"intent"):`http://127.0.0.1:${C}/review/${E.session_id}`,G=h?`/stages/${h}`:"",W=`${L}${G}`;Ttr(E.session_id,t);let $=i.gate_kind||"";return $==="spec"||$==="approval"?(E.ad_hoc=!1,dp(W,"User gate review",E.session_id),{content:[{type:"text",text:`User-gate review opened for stage "${h||"(unspecified)"}". Review URL: ${W} +`)}function vtr(e,t){if(!t){p5(`bindSessionCancellation(${e}): no signal passed \u2014 cancel will not fire`);return}if(p5(`bindSessionCancellation(${e}): signal attached, aborted=${t.aborted}`),t.aborted){p5(`bindSessionCancellation(${e}): signal was already aborted, closing immediately`),Dv(e,"tool call cancelled");return}t.addEventListener("abort",()=>{p5(`abort fired for session ${e} \u2014 closing WS (reason: ${t.reason})`),Dv(e,"tool call cancelled")},{once:!0})}async function P0t(e,t){let{name:n,arguments:r}=e.params;if(bU.has(n))return M_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(!Yne())try{let u=nm(ve(),"reports");k0t(u,{recursive:!0});let l=new Date().toISOString().replace(/[:.]/g,"-"),d=nm(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 Kne(s,c,o,a),{content:[{type:"text",text:"Feedback submitted. Thank you!"}]}}if(n==="haiku_review_open"){let i=r??{},s=Be(i,wge,"haiku_review_open");if(s)return s;let o=i.intent||"";if(!o){let q=_v();if(q)o=q.slug;else{let Q=ve(),B=nm(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=ce(o),c=await mU(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(),D0)),h=u||(d?f(o,d)??"":""),m=await o5(a),g=P3(m),y=C3(g,m),b=c.sections.find(q=>q.heading?.toLowerCase().includes("completion criteria")||q.heading?.toLowerCase().includes("success criteria")),S=b?r5(b.content):[],E=KY({intent_dir:a,intent_slug:o,target:""});E.ad_hoc=!0,E.stage=h||void 0;let{unitOutputs:_,outputDeclaredBy:T}=await O0t(a,E.session_id,m);Object.assign(E,{parsedIntent:c,parsedUnits:m,parsedCriteria:S,parsedMermaid:y,unitOutputs:_,outputDeclaredBy:T});let R=await a5(a),A=await c5(a),x=await u5(a),{outputs:k,other:P}=await l5(a),N=await d5(a);for(let q of[...k,...P,...N])q.relativePath&&(q.intentRelativePath=q.relativePath,q.relativePath=yU(E.session_id,q.relativePath));Object.assign(E,{stageStates:R,knowledgeFiles:A,stageArtifacts:x,outputArtifacts:k,otherFiles:P,intentOtherFiles:N});let C=await Yb(),L=zi()?Ov(E.session_id,await Hg(C),"intent"):`http://127.0.0.1:${C}/review/${E.session_id}`,G=h?`/stages/${h}`:"",W=`${L}${G}`;vtr(E.session_id,t);let $=i.gate_kind||"";return $==="spec"||$==="approval"?(E.ad_hoc=!1,dp(W,"User gate review",E.session_id),{content:[{type:"text",text:`User-gate review opened for stage "${h||"(unspecified)"}". Review URL: ${W} -Now call haiku_await_gate { intent: "${o}" } to block on the user's decision. On approve, the engine stamps ${$==="spec"?"reviews.user":"approvals.user"} on each unit and the cursor advances on the next tick.`}]}):(dp(W,"Ad-hoc review",E.session_id),{content:[{type:"text",text:`Ad-hoc review pane open at ${W} (stage "${h||"(unspecified)"}"). Non-blocking \u2014 keep working. The user browses and closes the pane with Done when finished; any feedback they leave persists to disk and the next \`haiku_run_next\` routes it through the normal fix-loop. No workflow action is required here.`}]})}if(n.startsWith("haiku_")&&!vtr.has(n))return vSe(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=btr.parse(r),s=i.title??"Question",o=i.context??"",a=i.questions,c=i.image_paths??[],u=c.map(h=>x_e(h5(h))),l=Oye({title:s,questions:a,context:o,imagePaths:c,imageBaseDirs:u}),d=c.map((h,m)=>`/question-image/${l.session_id}/${m}`),f=await Yb(),p;if(Bi()){let h=await Hg(f);p=Ov(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 A0t(l.session_id,{url:p,signal:t})}if(n==="haiku_view"){let i=r??{},s=Be(i,Oge,"haiku_view");if(s)return s;let o=i,a=o.mode??"auto",c=o.intent;if(!c){let R=_v();if(R)c=R.slug;else{let A=ve(),x=nm(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=ce(c);if(!I_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?nm(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?nm(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=Lye(x_e(ve()))}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=SSt(o.command,d):h=bSt(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 mU(u))?.frontmatter;A&&typeof A.studio=="string"&&A.studio&&(m=A.studio)}catch{}let g=f||h?"boot":"viewer",y=Cye({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 Uye(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 _St(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");Mye(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 q0(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 Yb(),S=Bi()?Ov(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,Pge,"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"?z0(o.session_id):!1,d=q0(o.session_id);return{content:[{type:"text",text:JSON.stringify({closed:d,session_id:o.session_id,was_view_session:c,killed_boot_process:l})}]}}if(n==="haiku_await_visual_answer"){let i=r??{},s=Be(i,Jme,"haiku_await_visual_answer");if(s)return s;let o=i,a=o.session_id,c=o.auto_open!==!1,u=o.url??"",l=$t(a);return!l||l.session_type!=="question"?{content:[{type:"text",text:`Question session ${a} not found or wrong type \u2014 call ask_user_visual_question to create a new one.`}],isError:!0}:(c&&u&&dp(u,"Question session"),await A0t(a,{url:u,signal:t}))}if(n==="pick_design_direction"){let i=Etr.parse(r),s=i.title??"Design Direction";try{let l=nm(ve(),"intents",i.intent_slug,"intent.md");if(I_e(l)){let d=await SU(l,"utf-8");if((re(d).data.mode||"")==="autopilot"){let p=await C0t(i.intent_slug);if(!p)return{content:[{type:"text",text:`Autopilot short-circuit for pick_design_direction failed: no discovery template with tool=pick_design_direction found for intent '${i.intent_slug}'. The cursor's discovery gate will not clear automatically \u2014 file a bug or fall back to manual handling.`}],isError:!0};let h=[];if(i.archetypes)h=i.archetypes;else if(i.archetypes_file){let y=await SU(h5(i.archetypes_file),"utf-8");h=O.array(O_e).parse(JSON.parse(y))}let m=h[0];P_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:xn(g,"Call `haiku_run_next` to continue \u2014 the cursor's discovery gate is now cleared.")}]}}}}catch(l){console.error(`[pick_design_direction] autopilot check failed: ${l instanceof Error?l.message:String(l)}. Falling through to the SPA picker.`)}let o=[];if(i.archetypes)o=i.archetypes;else if(i.archetypes_file){let l=await SU(h5(i.archetypes_file),"utf-8");o=O.array(O_e).parse(JSON.parse(l))}let a=Pye({intent_slug:i.intent_slug,archetypes:o,context:i.context??""}),c=await Yb(),u;if(Bi()){let l=await Hg(c);u=Ov(a.session_id,l,"direction")}else u=`http://127.0.0.1:${c}/direction/${a.session_id}`;return dp(u,"Direction session"),await R0t(a.session_id,{url:u,intentSlug:i.intent_slug,signal:t})}if(n==="haiku_await_design_direction"){let i=r??{},s=Be(i,Xme,"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 R0t(a,{url:u,intentSlug:d,signal:t})}return{content:[{type:"text",text:`Unknown tool: ${n}`}],isError:!0}}async function P0t(e,t,n){let r=h5(process.cwd(),e),i=await mU(r);if(!i)throw new Error("Could not parse intent");let s=await o5(r),o=P3(s),a=C3(o,s),c=i.sections.find(k=>k.heading?.toLowerCase().includes("completion criteria")||k.heading?.toLowerCase().includes("success criteria")),u=c?r5(c.content):[],l=e1(i.slug),d=l??KY({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 x0t(r,d.session_id,s);Object.assign(d,{parsedIntent:i,parsedUnits:s,parsedCriteria:u,parsedMermaid:a,unitOutputs:f,outputDeclaredBy:p});let h=xye(r);h&&(d.previousReview=h);let m=await a5(r),g=await c5(r),y=await u5(r),{outputs:b,other:S}=await l5(r),E=await d5(r);for(let k of[...b,...S,...E])k.relativePath&&(k.intentRelativePath=k.relativePath,k.relativePath=yU(d.session_id,k.relativePath));Object.assign(d,{stageStates:m,knowledgeFiles:g,stageArtifacts:y,outputArtifacts:b,otherFiles:S,intentOtherFiles:E});let _=await Yb(),T=Bi(),R=T?Ov(d.session_id,await Hg(_),"intent"):`http://127.0.0.1:${_}/review/${d.session_id}`,A=l!==void 0,x=A&&mv(d.session_id);return Kd(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 Rtr(e,t,n,r){return!(!e||!t||mv(n)||r&&t1(r))}async function N0t(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(Rtr(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}),Kd(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}),Kd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!0}),wye(e);try{for(;;){let u=!1;try{await hv(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(Iye(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{kye(e),Ml(e,{await_active:!1,last_await_ended_at:new Date().toISOString()}),Kd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!1})}}async function C0t(e){let t=nm(ve(),"intents",e,"intent.md");if(!I_e(t))return null;let n=await SU(t,"utf-8"),r=re(n).data.studio||"";if(!r)return null;let{findCurrentStage:i}=await Promise.resolve().then(()=>(Oa(),D0)),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:nm(ve(),"..",c),stage:s,templateBody:a.body}}function P_e(e){w0t(x_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}`),k0t(e.absPath,I0t.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_")&&!Rtr.has(n))return ASe(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=Etr.parse(r),s=i.title??"Question",o=i.context??"",a=i.questions,c=i.image_paths??[],u=c.map(h=>P_e(h5(h))),l=Nye({title:s,questions:a,context:o,imagePaths:c,imageBaseDirs:u}),d=c.map((h,m)=>`/question-image/${l.session_id}/${m}`),f=await Yb(),p;if(zi()){let h=await Hg(f);p=Ov(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 w0t(l.session_id,{url:p,signal:t})}if(n==="haiku_view"){let i=r??{},s=Be(i,Nge,"haiku_view");if(s)return s;let o=i,a=o.mode??"auto",c=o.intent;if(!c){let R=_v();if(R)c=R.slug;else{let A=ve(),x=nm(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=ce(c);if(!O_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?nm(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?nm(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=Fye(P_e(ve()))}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=bSt(o.command,d):h=ESt(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 mU(u))?.frontmatter;A&&typeof A.studio=="string"&&A.studio&&(m=A.studio)}catch{}let g=f||h?"boot":"viewer",y=Dye({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 jye(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 TSt(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");Lye(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 q0(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 Yb(),S=zi()?Ov(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,Cge,"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"?z0(o.session_id):!1,d=q0(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,Qme,"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 w0t(a,{url:u,signal:t}))}if(n==="pick_design_direction"){let i=_tr.parse(r),s=i.title??"Design Direction";try{let l=nm(ve(),"intents",i.intent_slug,"intent.md");if(O_e(l)){let d=await SU(l,"utf-8");if((re(d).data.mode||"")==="autopilot"){let p=await M0t(i.intent_slug);if(!p)return{content:[{type:"text",text:`Autopilot short-circuit for pick_design_direction failed: no discovery template with tool=pick_design_direction found for intent '${i.intent_slug}'. The cursor's discovery gate will not clear automatically \u2014 file a bug or fall back to manual handling.`}],isError:!0};let h=[];if(i.archetypes)h=i.archetypes;else if(i.archetypes_file){let y=await SU(h5(i.archetypes_file),"utf-8");h=O.array(N_e).parse(JSON.parse(y))}let m=h[0];C_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:xn(g,"Call `haiku_run_next` to continue \u2014 the cursor's discovery gate is now cleared.")}]}}}}catch(l){console.error(`[pick_design_direction] autopilot check failed: ${l instanceof Error?l.message:String(l)}. Falling through to the SPA picker.`)}let o=[];if(i.archetypes)o=i.archetypes;else if(i.archetypes_file){let l=await SU(h5(i.archetypes_file),"utf-8");o=O.array(N_e).parse(JSON.parse(l))}let a=Cye({intent_slug:i.intent_slug,archetypes:o,context:i.context??""}),c=await Yb(),u;if(zi()){let l=await Hg(c);u=Ov(a.session_id,l,"direction")}else u=`http://127.0.0.1:${c}/direction/${a.session_id}`;return dp(u,"Direction session"),await A0t(a.session_id,{url:u,intentSlug:i.intent_slug,signal:t})}if(n==="haiku_await_design_direction"){let i=r??{},s=Be(i,$me,"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 A0t(a,{url:u,intentSlug:d,signal:t})}return{content:[{type:"text",text:`Unknown tool: ${n}`}],isError:!0}}async function N0t(e,t,n){let r=h5(process.cwd(),e),i=await mU(r);if(!i)throw new Error("Could not parse intent");let s=await o5(r),o=P3(s),a=C3(o,s),c=i.sections.find(k=>k.heading?.toLowerCase().includes("completion criteria")||k.heading?.toLowerCase().includes("success criteria")),u=c?r5(c.content):[],l=e1(i.slug),d=l??KY({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=Pye(r);h&&(d.previousReview=h);let m=await a5(r),g=await c5(r),y=await u5(r),{outputs:b,other:S}=await l5(r),E=await d5(r);for(let k of[...b,...S,...E])k.relativePath&&(k.intentRelativePath=k.relativePath,k.relativePath=yU(d.session_id,k.relativePath));Object.assign(d,{stageStates:m,knowledgeFiles:g,stageArtifacts:y,outputArtifacts:b,otherFiles:S,intentOtherFiles:E});let _=await Yb(),T=zi(),R=T?Ov(d.session_id,await Hg(_),"intent"):`http://127.0.0.1:${_}/review/${d.session_id}`,A=l!==void 0,x=A&&mv(d.session_id);return Kd(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 Atr(e,t,n,r){return!(!e||!t||mv(n)||r&&t1(r))}async function C0t(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(Atr(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}),Kd(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}),Kd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!0}),Iye(e);try{for(;;){let u=!1;try{await hv(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(Oye(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{xye(e),Ml(e,{await_active:!1,last_await_ended_at:new Date().toISOString()}),Kd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!1})}}async function M0t(e){let t=nm(ve(),"intents",e,"intent.md");if(!O_e(t))return null;let n=await SU(t,"utf-8"),r=re(n).data.studio||"";if(!r)return null;let{findCurrentStage:i}=await Promise.resolve().then(()=>(Oa(),D0)),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:nm(ve(),"..",c),stage:s,templateBody:a.body}}function C_e(e){k0t(P_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,x0t.default.stringify(`${n.join(` `)} -`,t))}async function R0t(e,t={}){let{url:n="",intentSlug:r="",signal:i,timeoutMs:s=1800*1e3}=t;try{await hv(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:xn(f,p)}]}}if(a.mode==="generate"){let l=a.comments?`The user has no existing designs and wants you to generate variants. Steering notes: ${a.comments}`:"The user has no existing designs and wants you to generate variants.";return{content:[{type:"text",text:xn(l,"Generate 2-3 distinct archetypes (HTML wireframe snippets \u2014 different layouts, interaction patterns, or visual hierarchies) and call `pick_design_direction` again with `archetypes` populated.")}]}}if(r)try{let l=await SU(nm(ve(),"intents",r,"intent.md"),"utf-8"),d=re(l).data.studio||"",{findCurrentStage:f}=await Promise.resolve().then(()=>(Oa(),D0)),p=d?f(r,d)??"":"";if(p){let h=yr(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 C0t(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{P_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:xn(d.join(` -`),"Call `haiku_run_next` to continue \u2014 the workflow will surface the upload paths so you can `Read` each file and incorporate the designs into elaboration.")}]}}if(c)try{P_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:xn(u.join(` -`),"Call `haiku_run_next` to continue \u2014 the workflow will surface any screenshot annotations the user attached.")}]}}async function A0t(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:xn("The user answered your visual question \u2014 see the `answers` field below.","Acknowledge their answer in chat and continue with whatever the answer enables.")};u.feedback&&(f.feedback=u.feedback),Object.keys(l).length>0&&(f.annotations=l);let p=[{type:"text",text:JSON.stringify(f,null,2)}],h=d?.screenshots??[];if(h.length>0){p.push({type:"text",text:` +`,t))}async function A0t(e,t={}){let{url:n="",intentSlug:r="",signal:i,timeoutMs:s=1800*1e3}=t;try{await hv(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:xn(f,p)}]}}if(a.mode==="generate"){let l=a.comments?`The user has no existing designs and wants you to generate variants. Steering notes: ${a.comments}`:"The user has no existing designs and wants you to generate variants.";return{content:[{type:"text",text:xn(l,"Generate 2-3 distinct archetypes (HTML wireframe snippets \u2014 different layouts, interaction patterns, or visual hierarchies) and call `pick_design_direction` again with `archetypes` populated.")}]}}if(r)try{let l=await SU(nm(ve(),"intents",r,"intent.md"),"utf-8"),d=re(l).data.studio||"",{findCurrentStage:f}=await Promise.resolve().then(()=>(Oa(),D0)),p=d?f(r,d)??"":"";if(p){let h=yr(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 M0t(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{C_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:xn(d.join(` +`),"Call `haiku_run_next` to continue \u2014 the workflow will surface the upload paths so you can `Read` each file and incorporate the designs into elaboration.")}]}}if(c)try{C_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:xn(u.join(` +`),"Call `haiku_run_next` to continue \u2014 the workflow will surface any screenshot annotations the user attached.")}]}}async function w0t(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:xn("The user answered your visual question \u2014 see the `answers` field below.","Acknowledge their answer in chat and continue with whatever the answer enables.")};u.feedback&&(f.feedback=u.feedback),Object.keys(l).length>0&&(f.annotations=l);let p=[{type:"text",text:JSON.stringify(f,null,2)}],h=d?.screenshots??[];if(h.length>0){p.push({type:"text",text:` ${h.length} screenshot annotation${h.length===1?"":"s"} attached below \u2014 each pair is the reviewer's note + the captured surface they were drawing on.`});for(let m=0;m{"use strict";I0t=Re(Kt(),1);_l();ar();w6();f0t();hx();H1();Yd();v0t();sh();$c();R_e();ji();uo();ze();Kn();Vv();EU();Qh();w_e();o1();btr=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.")}),O_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")}),Etr=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(O_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')")});_tr="/tmp/haiku-session-cancel.log";vtr=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=Nye({intent_slug:e.intentSlug,kind:e.kind,title:e.title,prompt:e.prompt,options:e.options}),r=await Yb(),i;if(Bi()){let a=await Hg(r),{buildReviewUrl:c}=await Promise.resolve().then(()=>(Qh(),w_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??Atr,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 hv(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 Atr,$b=v(()=>{"use strict";w6();$c();Qh();m5();Atr=1800*1e3});function eE(e){return{content:[{type:"text",text:JSON.stringify(e)}],isError:!0}}function wtr(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 M0t,D0t=v(()=>{"use strict";Ebe();$b();ji();uo();zi();vs();M0t={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:g0,async handle(e,t){let n=Be(e,Qme,"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(!HL.includes(s))return eE({error:"unsupported_op",message:`Unknown op '${s}'. Supported: ${HL.join(", ")}.`});if(s==="preview_cursor")try{let l=e6({slug:i});return ye(JSON.stringify(l))}catch(l){return eE({error:"preview_cursor_threw",detail:l instanceof Error?l.message:String(l)})}let o=wtr(s,e),a=typeof e.reason=="string"&&e.reason.trim().length>0?e.reason.trim():null,c=a?`Why: ${a} +Annotation ${m+1} (image ${g.image_index+1}): ${g.comment}`});let y=/^data:(image\/[a-z+]+);base64,(.+)$/i.exec(g.screenshot_data_url);y?p.push({type:"image",mimeType:y[1],data:y[2]}):p.push({type:"text",text:`(screenshot for annotation ${m+1} could not be decoded)`})}}return{content:p}},o=s();if(o)return o;let a=Date.now()+i,c="User did not respond within 30 minutes. Call haiku_await_visual_answer to keep waiting, or ask_user_visual_question to start a new session.";for(;;){let u=a-Date.now();if(u<=0)break;try{await hv(e,u,r)}catch(d){if(r?.aborted)throw d;return{content:[{type:"text",text:JSON.stringify({status:"timeout",session_id:e,...n?{url:n}:{},message:c},null,2)}]}}let l=s();if(l)return l}return{content:[{type:"text",text:JSON.stringify({status:"timeout",session_id:e,...n?{url:n}:{},message:c},null,2)}]}}var x0t,Etr,N_e,_tr,Ttr,Rtr,m5=v(()=>{"use strict";x0t=Re(Kt(),1);_l();ar();w6();p0t();hx();H1();Yd();R0t();sh();$c();w_e();Hi();uo();ze();Kn();Vv();EU();Qh();I_e();o1();Etr=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.")}),N_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")}),_tr=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(N_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')")});Ttr="/tmp/haiku-session-cancel.log";Rtr=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=Mye({intent_slug:e.intentSlug,kind:e.kind,title:e.title,prompt:e.prompt,options:e.options}),r=await Yb(),i;if(zi()){let a=await Hg(r),{buildReviewUrl:c}=await Promise.resolve().then(()=>(Qh(),k_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??wtr,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 hv(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 wtr,$b=v(()=>{"use strict";w6();$c();Qh();m5();wtr=1800*1e3});function eE(e){return{content:[{type:"text",text:JSON.stringify(e)}],isError:!0}}function ktr(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,L0t=v(()=>{"use strict";Tbe();$b();Hi();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:g0,async handle(e,t){let n=Be(e,ege,"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(!HL.includes(s))return eE({error:"unsupported_op",message:`Unknown op '${s}'. Supported: ${HL.join(", ")}.`});if(s==="preview_cursor")try{let l=e6({slug:i});return ye(JSON.stringify(l))}catch(l){return eE({error:"preview_cursor_threw",detail:l instanceof Error?l.message:String(l)})}let o=ktr(s,e),a=typeof e.reason=="string"&&e.reason.trim().length>0?e.reason.trim():null,c=a?`Why: ${a} `:"",u=await Ju({intentSlug:i,kind:"confirm",title:`DEBUG: ${s} on ${i}`,prompt:`${c}${o} -This is an ADMIN op that BYPASSES the normal workflow engine. It mutates state in ways the cursor would not. Confirm only if you understand the consequences.`,options:[{id:"confirm",label:`Yes, run ${s}`,description:"Proceed with the admin op. State will be mutated immediately."},{id:"cancel",label:"Cancel",description:"Abort. No state changes."}],signal:t});if(u.timedOut||!u.selection||u.selection.id!=="confirm")return ye(JSON.stringify({action:"cancelled",message:`Debug op '${s}' cancelled \u2014 no state mutated.`}));try{switch(s){case"force_stage_complete":{let l=e.stage;if(!l)return eE({error:"missing_stage",message:"force_stage_complete requires `stage`"});let d=XZ({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:dx({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 eE({error:"missing_field",message:"set_intent_field requires `field` or `fields`"});let f=dx({slug:i,field:l,value:d});return ye(JSON.stringify(f))}case"reset_drift":{let l=QZ({slug:i});return ye(JSON.stringify(l))}case"set_unit_iterations":{let l=e.stage,d=e.unit;if(!l||!d)return eE({error:"missing_stage_or_unit",message:"set_unit_iterations requires `stage` and `unit`"});let f=Array.isArray(e.iterations)?e.iterations:void 0,p=$Z({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:fx({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 eE({error:"missing_feedback_id",message:"mutate_feedback requires `feedback_id` or `feedback_ids`"});let p=fx({slug:i,stage:d,feedbackId:f,patch:l});return ye(JSON.stringify(p))}default:return eE({error:"unhandled_op",op:s})}}catch(l){return eE({error:"debug_op_threw",op:s,detail:l instanceof Error?l.message:String(l)})}}}});import{existsSync as C_e,readFileSync as ktr}from"node:fs";import{join as g5}from"node:path";function Itr(e,t,n){if(!n)return null;let r=n.replace(/\{intent-slug\}/g,t);return r.startsWith(".haiku/")?g5(e,r):r.startsWith("/")?r:g5(e,".haiku","intents",t,r)}var L0t,U0t=v(()=>{"use strict";ar();K0();ji();uo();ze();Kn();vo();zi();vs();L0t={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:y0,async handle(e){let t=Be(e,$me,"haiku_discovery_complete");if(t)return t;let n=e,{intent:r,stage:i,template:s}=n,o=ve(),a=g5(o,"intents",r);if(!C_e(a))return ye(JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${r}' not found at ${a}.`}));let c=NI(r,i,s);if(!C_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(ktr(g5(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=Itr(c,r,f.location);if(p&&!C_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=Hb(r,i,()=>Ope(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 F0t}from"node:child_process";import{existsSync as Zv,readdirSync as M_e,readFileSync as Kg,statSync as xtr,writeFileSync as Cx}from"node:fs";import{join as fp,resolve as Otr}from"node:path";function Ntr(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},Cx(e,Tc.default.stringify(r.content,i)),o}catch{return 1}}function H0t(){let e=[];try{e=s1(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?FD(r.requires_tool):!0})),n=t.some(r=>r.tool_live);return{services:t,bootable:n}}function y5(e,t,n){let r=Array.isArray(n)?n:[n],i=t?fp(ce(e),"stages",t,"feedback"):fp(ce(e),"feedback");if(!Zv(i))return[];let s=[];for(let o of M_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 q0t(e){if(e.closed_at||e.rejected_at)return!1;let t=e.status;return t!=="closed"&&t!=="rejected"}function B0t(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},Cx(e,Tc.default.stringify(n.content,r))}catch{}}function Ctr(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}))],Cx(e,Tc.default.stringify(n.content,r))}catch{}}function Mtr(e,t,n){let r=[],i=[],s=[],o=[];for(let c of n){let u=fp(ce(e),"stages",t,"units",`${c}.md`);if(!Zv(u)){i.push({unit:c,failures:[{name:"unit_not_found",command:"",exit_code:1,output:`Unit file not found at ${u}`}]});continue}let l=aSe(e,u);if(l===null)Ftr(u,"quality_gates"),r.push(c);else if(l.environment){let d=Ntr(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}`;y5(e,t,[m,d]).length>=D_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 ${D_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.`;Ctr(u,f);let g=[d,...h.map(y=>`${d}:${y}`)];for(let y of y5(e,t,g))q0t(y.data)&&B0t(y.path,m);s.push({unit:c,gates:h,reason:m})}if(p.length>0){i.push({unit:c,failures:p});for(let h of p){let m=`${d}:${h.name}`;Qo(e,t,{title:`quality_gates failure on ${c} (${h.name})`,body:`Declared quality_gate \`${h.name}\` failed on unit \`${c}\`: +This is an ADMIN op that BYPASSES the normal workflow engine. It mutates state in ways the cursor would not. Confirm only if you understand the consequences.`,options:[{id:"confirm",label:`Yes, run ${s}`,description:"Proceed with the admin op. State will be mutated immediately."},{id:"cancel",label:"Cancel",description:"Abort. No state changes."}],signal:t});if(u.timedOut||!u.selection||u.selection.id!=="confirm")return ye(JSON.stringify({action:"cancelled",message:`Debug op '${s}' cancelled \u2014 no state mutated.`}));try{switch(s){case"force_stage_complete":{let l=e.stage;if(!l)return eE({error:"missing_stage",message:"force_stage_complete requires `stage`"});let d=XZ({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:dx({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 eE({error:"missing_field",message:"set_intent_field requires `field` or `fields`"});let f=dx({slug:i,field:l,value:d});return ye(JSON.stringify(f))}case"reset_drift":{let l=QZ({slug:i});return ye(JSON.stringify(l))}case"set_unit_iterations":{let l=e.stage,d=e.unit;if(!l||!d)return eE({error:"missing_stage_or_unit",message:"set_unit_iterations requires `stage` and `unit`"});let f=Array.isArray(e.iterations)?e.iterations:void 0,p=$Z({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:fx({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 eE({error:"missing_feedback_id",message:"mutate_feedback requires `feedback_id` or `feedback_ids`"});let p=fx({slug:i,stage:d,feedbackId:f,patch:l});return ye(JSON.stringify(p))}default:return eE({error:"unhandled_op",op:s})}}catch(l){return eE({error:"debug_op_threw",op:s,detail:l instanceof Error?l.message:String(l)})}}}});import{existsSync as D_e,readFileSync as Itr}from"node:fs";import{join as g5}from"node:path";function xtr(e,t,n){if(!n)return null;let r=n.replace(/\{intent-slug\}/g,t);return r.startsWith(".haiku/")?g5(e,r):r.startsWith("/")?r:g5(e,".haiku","intents",t,r)}var U0t,F0t=v(()=>{"use strict";ar();K0();Hi();uo();ze();Kn();vo();Gi();vs();U0t={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:y0,async handle(e){let t=Be(e,tge,"haiku_discovery_complete");if(t)return t;let n=e,{intent:r,stage:i,template:s}=n,o=ve(),a=g5(o,"intents",r);if(!D_e(a))return ye(JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${r}' not found at ${a}.`}));let c=NI(r,i,s);if(!D_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(Itr(g5(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=xtr(c,r,f.location);if(p&&!D_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=Hb(r,i,()=>Ope(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 j0t}from"node:child_process";import{existsSync as Zv,readdirSync as L_e,readFileSync as Kg,statSync as Otr,writeFileSync as Cx}from"node:fs";import{join as fp,resolve as Ptr}from"node:path";function Ctr(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},Cx(e,Tc.default.stringify(r.content,i)),o}catch{return 1}}function q0t(){let e=[];try{e=s1(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?FD(r.requires_tool):!0})),n=t.some(r=>r.tool_live);return{services:t,bootable:n}}function y5(e,t,n){let r=Array.isArray(n)?n:[n],i=t?fp(ce(e),"stages",t,"feedback"):fp(ce(e),"feedback");if(!Zv(i))return[];let s=[];for(let o of L_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 B0t(e){if(e.closed_at||e.rejected_at)return!1;let t=e.status;return t!=="closed"&&t!=="rejected"}function z0t(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},Cx(e,Tc.default.stringify(n.content,r))}catch{}}function Mtr(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}))],Cx(e,Tc.default.stringify(n.content,r))}catch{}}function Dtr(e,t,n){let r=[],i=[],s=[],o=[];for(let c of n){let u=fp(ce(e),"stages",t,"units",`${c}.md`);if(!Zv(u)){i.push({unit:c,failures:[{name:"unit_not_found",command:"",exit_code:1,output:`Unit file not found at ${u}`}]});continue}let l=uSe(e,u);if(l===null)jtr(u,"quality_gates"),r.push(c);else if(l.environment){let d=Ctr(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}`;y5(e,t,[m,d]).length>=U_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 ${U_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.`;Mtr(u,f);let g=[d,...h.map(y=>`${d}:${y}`)];for(let y of y5(e,t,g))B0t(y.data)&&z0t(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=H0t(),u=o.every(h=>h.attempts>Ptr),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(` +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=q0t(),u=o.every(h=>h.attempts>Ntr),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=qfe(),p=l==="best_effort_boot"?`Quality gates can't reach a live environment on: ${o.map(h=>h.unit).join(", ")}. ${o.map(h=>` \u2022 ${h.unit}: ${h.reason}`).join(` `)} @@ -1287,8 +1287,8 @@ ${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 Dtr(e){let t=ce(e),n=fp(t,"stages"),r=Ltr(t),i=Utr(n,r);if(i.length===0)return j0t(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=F0t("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{}let o=[];for(let u of i){let l=u.dir?Otr(s,u.dir):s;try{F0t(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 j0t(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(s1(Br()).map(d=>d.requires_tool).filter(d=>typeof d=="string"&&d.length>0))]}catch{u=[]}let l=KK(o,{requiredTools:u});if(l.environment){let d=H0t(),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(` +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 Ltr(e){let t=ce(e),n=fp(t,"stages"),r=Utr(t),i=Ftr(n,r);if(i.length===0)return H0t(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=j0t("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{}let o=[];for(let u of i){let l=u.dir?Ptr(s,u.dir):s;try{j0t(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 H0t(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(s1(Br()).map(d=>d.requires_tool).filter(d=>typeof d=="string"&&d.length>0))]}catch{u=[]}let l=KK(o,{requiredTools:u});if(l.environment){let d=q0t(),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=qfe();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. @@ -1296,20 +1296,20 @@ Then WAIT for the user. Do NOT advance, do NOT call \`haiku_run_next\` in a loop Declared services: ${f} -Available tools: ${p.length>0?p.join(", "):"(none live)"}.`},null,2))}}let a=y5(e,"","intent_quality_gates").length;if(a>=D_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.`;jtr(e,o);for(let d of y5(e,"","intent_quality_gates"))q0t(d.data)&&B0t(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=y5(e,"","intent_quality_gates").length;if(a>=U_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.`;Htr(e,o);for(let d of y5(e,"","intent_quality_gates"))B0t(d.data)&&z0t(d.path,l);return ye(JSON.stringify({scope:"intent",ran:i.length,failures:o,deferred:{gates:u,reason:l},message:`${o.length} of ${i.length} intent-scope quality_gates stayed red across ${a} fix-loop attempt(s) \u2014 DEFERRED to CI. approvals.intent_quality_gates stamped deferred; intent can seal.`},null,2))}let c=o.map(u=>`- **${u.name}**: \`${u.command}\` exited ${u.exit_code} (declared by: ${u.contributors.join(", ")}) ${u.output.slice(0,400).split(` `).join(` `)}`).join(` `);return Qo(e,"",{title:`intent_quality_gates: ${o.length} failing command(s)`,body:`${o.length} of ${i.length} distinct quality_gates command(s) failed at intent scope. The studio fix-hat loop should resolve each failure; on close, the cursor's intent walk will re-dispatch dispatch_quality_gates because approvals.intent_quality_gates is still unset. If the gates keep failing across attempts, the engine defers them to CI (environmental / non-source-convergent). -${c}`,origin:"agent",severity:"blocker",author:"engine",source_ref:"intent_quality_gates"}),ye(JSON.stringify({scope:"intent",ran:i.length,failures:o,message:`${o.length} of ${i.length} distinct quality_gates command(s) failed at intent scope \u2014 intent-scope FB filed.`},null,2))}function Ltr(e){let t=fp(e,"intent.md");if(!Zv(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 Utr(e,t=new Set){if(!Zv(e))return[];let n=new Map,r=M_e(e).filter(i=>{try{return xtr(fp(e,i)).isDirectory()}catch{return!1}});for(let i of r){let s=fp(e,i,"units");if(!Zv(s))continue;let o=M_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 Ftr(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]=zd(a,o),i.approvals=s;let c=Tc.default.stringify(r.content,i);Cx(e,c)}function jtr(e,t){let n=fp(ce(e),"intent.md");if(Zv(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}))],Cx(n,Tc.default.stringify(r.content,i))}catch{}}function j0t(e,t){let n=fp(ce(e),"intent.md");if(!Zv(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,Cx(n,Tc.default.stringify(i.content,s))}var Tc,Ptr,D_e,z0t,G0t=v(()=>{"use strict";Tc=Re(Kt(),1);Bfe();zfe();Xf();ze();o1();zi();vs();Ptr=1;D_e=2;z0t={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"?Dtr(t):Mtr(t,n,r)}}});import{existsSync as V0t,readFileSync as Htr}from"node:fs";import{join as S5}from"node:path";var W0t,K0t=v(()=>{"use strict";ns();Oa();ji();uo();ze();vo();zi();Vv();vs();W0t={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:v0,async handle(e){let t=Be(e,Lge,"haiku_drop_stage");if(t)return t;let{intent:n,stage:r}=e,i=ve(),s=S5(i,"intents",n),o=S5(s,"intent.md");if(!V0t(o))return ye(JSON.stringify({error:"not_found",message:`Intent '${n}' not found`}));let a=re(Htr(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(!oL(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=S5(s,"stages",r);if(V0t(S5(l,"elaboration.md"))||dv(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 Ne(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:xn(`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 qtr,randomBytes as Btr}from"node:crypto";import{existsSync as Jv,readFileSync as F_e,realpathSync as Y0t,unlinkSync as ztr}from"node:fs";import{writeFile as Gtr}from"node:fs/promises";import{dirname as U_e,isAbsolute as Vtr,join as Xv,relative as _U,resolve as L_e}from"node:path";function Wtr(e){let t=Xv(e,"settings.yml");if(!Jv(t))return!1;try{let n=F_e(t,"utf8"),{data:r}=(0,Z0t.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 Utr(e){let t=fp(e,"intent.md");if(!Zv(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 Ftr(e,t=new Set){if(!Zv(e))return[];let n=new Map,r=L_e(e).filter(i=>{try{return Otr(fp(e,i)).isDirectory()}catch{return!1}});for(let i of r){let s=fp(e,i,"units");if(!Zv(s))continue;let o=L_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 jtr(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]=zd(a,o),i.approvals=s;let c=Tc.default.stringify(r.content,i);Cx(e,c)}function Htr(e,t){let n=fp(ce(e),"intent.md");if(Zv(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}))],Cx(n,Tc.default.stringify(r.content,i))}catch{}}function H0t(e,t){let n=fp(ce(e),"intent.md");if(!Zv(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,Cx(n,Tc.default.stringify(i.content,s))}var Tc,Ntr,U_e,G0t,V0t=v(()=>{"use strict";Tc=Re(Kt(),1);Bfe();zfe();Xf();ze();o1();Gi();vs();Ntr=1;U_e=2;G0t={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"?Ltr(t):Dtr(t,n,r)}}});import{existsSync as W0t,readFileSync as qtr}from"node:fs";import{join as S5}from"node:path";var K0t,Y0t=v(()=>{"use strict";ji();Oa();Hi();uo();ze();vo();Gi();Vv();vs();K0t={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:v0,async handle(e){let t=Be(e,Fge,"haiku_drop_stage");if(t)return t;let{intent:n,stage:r}=e,i=ve(),s=S5(i,"intents",n),o=S5(s,"intent.md");if(!W0t(o))return ye(JSON.stringify({error:"not_found",message:`Intent '${n}' not found`}));let a=re(qtr(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(!oL(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=S5(s,"stages",r);if(W0t(S5(l,"elaboration.md"))||dv(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 Ne(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:xn(`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 Btr,randomBytes as ztr}from"node:crypto";import{existsSync as Jv,readFileSync as H_e,realpathSync as Z0t,unlinkSync as Gtr}from"node:fs";import{writeFile as Vtr}from"node:fs/promises";import{dirname as j_e,isAbsolute as Wtr,join as Xv,relative as _U,resolve as F_e}from"node:path";function Ktr(e){let t=Xv(e,"settings.yml");if(!Jv(t))return!1;try{let n=H_e(t,"utf8"),{data:r}=(0,J0t.default)(`--- ${n} --- -`);return r.human_write_require_rationale===!0}catch{return!1}}function Ktr(e){let t=Xv(e,"write-audit.jsonl");if(!Jv(t))return 1;try{return F_e(t,"utf8").split(` -`).filter(i=>i.trim()!=="").length+1}catch{return 1}}function Ztr(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=av(e),i=L_e(t);if(Vtr(r)){let l=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=_U(i,l)}let s=L_e(Xv(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=_U(i,s),a=U_e(s);if(Jv(a))try{let l=Y0t(a),d=Y0t(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=av(o);for(let l of Ytr)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=Ztr(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 Z0t,Ytr,J0t,X0t=v(()=>{"use strict";Z0t=Re(Kt(),1);R6();P0();v6();XY();ze();zi();vs();Ytr=[{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."}];J0t={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=ve(),f=Xv(d,"intents",t),p=Xv(f,"intent.md");if(!Jv(p))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${t}' not found.`},null,2)}],isError:!0};if(_1(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(E1(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(Wtr(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=qyt(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=Xv(f,y),S=U_e(b);if(!c&&Jv(b)){let F="";try{let{createHash:V}=await import("node:crypto"),U=F_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&&!Jv(S))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"parent_dir_missing",path:y,missing_dir:_U(f,S),message:`Parent directory '${_U(f,S)}' does not exist and create_dirs is false.`},null,2)}],isError:!0};let E=[];if(u){let F=S,V=[];for(;!Jv(F);){V.unshift(F);let U=U_e(F);if(U===F)break;F=U}for(let U of V)E.push(_U(f,U))}let _=qtr("sha256").update(h).digest("hex"),T=process.pid,R=Btr(6).toString("hex"),A=Xv(f,`.hwm-tmp-${T}-${R}.tmp`);try{await Gtr(A,h)}catch(F){return V0(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=yv(f,S,A,b);if(!x.ok){V0(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?T1(f):Ub(f,k[1])}catch(F){if(F instanceof Vd){try{ztr(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=Ktr(f),W=Q1(N,G),$=FY(d);await jv(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?lRt(a):null;q=(await $1(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 Xtr,readFileSync as Qtr}from"node:fs";import{join as $tr}from"node:path";var Q0t,$0t=v(()=>{"use strict";ar();ze();zi();vs();Q0t={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=$tr(n,"intents",t,"intent.md");if(!Xtr(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=yr(t,void 0);return s.ok?(Ne(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 b5}from"node:child_process";import{existsSync as enr,mkdirSync as j_e,writeFileSync as H_e}from"node:fs";import{join as rm}from"node:path";function ext(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 txt,nxt=v(()=>{"use strict";ar();Gfe();p1();ji();uo();ze();Kn();vo();p_();zi();vs();txt={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:qL,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(b1(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=ext(i),o=ext(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=ve(),d=rm(l,"intents",r),f=`haiku/${r}/main`;if(Ee())try{let y=upe();Pt(f)||PI(r,y||void 0);let b="";try{b=b5("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}b!==f&&b5("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(enr(rm(d,"intent.md")))return ye(JSON.stringify({error:"intent_exists",slug:r,message:`Intent '${r}' already exists`}));j_e(rm(d,"knowledge"),{recursive:!0}),j_e(rm(d,"stages"),{recursive:!0});let p=e.context,h=(t||"").trim(),m=["---",`title: "${i.replace(/"/g,'\\"')}"`,'studio: ""',`plugin_version: "${vS()}"`,"status: active",`created_at: ${mn()}`,"---","",`# ${i}`,"",...h?[h,""]:[],...p?[p,""]:[]].join(` -`);if(H_e(rm(d,"intent.md"),m),Ne(rm(d,"intent.md"),"studio_candidates",c),H_e(rm(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(` -`)),Ee())try{let y=`.haiku/intents/${r}/.gitattributes`;b5("git",["add","--",y],{stdio:"pipe"}),b5("git",["commit","-m",`haiku: seed .gitattributes (merge=union for event streams) for ${r}`,"--",y],{stdio:"pipe"})}catch{}if(p){let y=rm(d,"knowledge");j_e(y,{recursive:!0}),H_e(rm(y,"CONVERSATION-CONTEXT.md"),`# Conversation Context +`);return r.human_write_require_rationale===!0}catch{return!1}}function Ytr(e){let t=Xv(e,"write-audit.jsonl");if(!Jv(t))return 1;try{return H_e(t,"utf8").split(` +`).filter(i=>i.trim()!=="").length+1}catch{return 1}}function Jtr(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 Xtr(e,t,n){let r=av(e),i=F_e(t);if(Wtr(r)){let l=F_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=_U(i,l)}let s=F_e(Xv(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=_U(i,s),a=j_e(s);if(Jv(a))try{let l=Z0t(a),d=Z0t(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=av(o);for(let l of Ztr)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=Jtr(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 J0t,Ztr,X0t,Q0t=v(()=>{"use strict";J0t=Re(Kt(),1);R6();P0();v6();XY();ze();Gi();vs();Ztr=[{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."}];X0t={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=ve(),f=Xv(d,"intents",t),p=Xv(f,"intent.md");if(!Jv(p))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${t}' not found.`},null,2)}],isError:!0};if(_1(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(E1(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(Ktr(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=Byt(f),g=Xtr(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=Xv(f,y),S=j_e(b);if(!c&&Jv(b)){let F="";try{let{createHash:V}=await import("node:crypto"),U=H_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&&!Jv(S))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"parent_dir_missing",path:y,missing_dir:_U(f,S),message:`Parent directory '${_U(f,S)}' does not exist and create_dirs is false.`},null,2)}],isError:!0};let E=[];if(u){let F=S,V=[];for(;!Jv(F);){V.unshift(F);let U=j_e(F);if(U===F)break;F=U}for(let U of V)E.push(_U(f,U))}let _=Btr("sha256").update(h).digest("hex"),T=process.pid,R=ztr(6).toString("hex"),A=Xv(f,`.hwm-tmp-${T}-${R}.tmp`);try{await Vtr(A,h)}catch(F){return V0(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=yv(f,S,A,b);if(!x.ok){V0(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?T1(f):Ub(f,k[1])}catch(F){if(F instanceof Vd){try{Gtr(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=Ytr(f),W=Q1(N,G),$=FY(d);await jv(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?dRt(a):null;q=(await $1(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 Qtr,readFileSync as $tr}from"node:fs";import{join as enr}from"node:path";var $0t,ext=v(()=>{"use strict";ar();ze();Gi();vs();$0t={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=enr(n,"intents",t,"intent.md");if(!Qtr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let{data:i}=re($tr(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=yr(t,void 0);return s.ok?(Ne(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 b5}from"node:child_process";import{existsSync as tnr,mkdirSync as q_e,writeFileSync as B_e}from"node:fs";import{join as rm}from"node:path";function txt(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 nxt,rxt=v(()=>{"use strict";ar();Gfe();p1();Hi();uo();ze();Kn();vo();p_();Gi();vs();nxt={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:qL,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(b1(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=txt(i),o=txt(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=ve(),d=rm(l,"intents",r),f=`haiku/${r}/main`;if(Ee())try{let y=upe();Pt(f)||PI(r,y||void 0);let b="";try{b=b5("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}b!==f&&b5("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(tnr(rm(d,"intent.md")))return ye(JSON.stringify({error:"intent_exists",slug:r,message:`Intent '${r}' already exists`}));q_e(rm(d,"knowledge"),{recursive:!0}),q_e(rm(d,"stages"),{recursive:!0});let p=e.context,h=(t||"").trim(),m=["---",`title: "${i.replace(/"/g,'\\"')}"`,'studio: ""',`plugin_version: "${vS()}"`,"status: active",`created_at: ${mn()}`,"---","",`# ${i}`,"",...h?[h,""]:[],...p?[p,""]:[]].join(` +`);if(B_e(rm(d,"intent.md"),m),Ne(rm(d,"intent.md"),"studio_candidates",c),B_e(rm(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(` +`)),Ee())try{let y=`.haiku/intents/${r}/.gitattributes`;b5("git",["add","--",y],{stdio:"pipe"}),b5("git",["commit","-m",`haiku: seed .gitattributes (merge=union for event streams) for ${r}`,"--",y],{stdio:"pipe"})}catch{}if(p){let y=rm(d,"knowledge");q_e(y,{recursive:!0}),B_e(rm(y,"CONVERSATION-CONTEXT.md"),`# Conversation Context ${p} `)}wt(`haiku: create intent ${r}`);let g="";if(Ee()&&CT()!==null)try{let y=rm(d,"intent.md"),b=mpe({slug:r,title:i?`H\xB7AI\xB7K\xB7U: ${i}`:`H\xB7AI\xB7K\xB7U: ${r}`,body:t?`${t} @@ -1322,38 +1322,38 @@ Draft PR opened: ${b.createdUrl}`):b.compareUrl?(Ne(y,"draft_pr_status","failed" The engine couldn't open the draft PR via the CLI (${b.prError??b.pushError??"unknown"}). Open one manually: ${b.compareUrl}`):(Ne(y,"draft_pr_status","failed"),g=` -The engine couldn't open a draft PR: ${b.message}`),wt(`haiku: stamp draft PR status for ${r}`);try{let S=Lh(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 q_e}from"node:child_process";import{existsSync as rxt,readFileSync as ixt,rmSync as tnr}from"node:fs";import{join as B_e}from"node:path";var sxt,oxt=v(()=>{"use strict";ar();Yd();$b();ze();zi();vs();sxt={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=B_e(r,"intents",n),s=B_e(i,"intent.md");if(!rxt(s))return{content:[{type:"text",text:`Intent '${n}' not found.`}],isError:!0};let o=ixt(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=B_e(i,"knowledge","CONVERSATION-CONTEXT.md");rxt(p)&&(f=ixt(p,"utf8").replace(/^# Conversation Context\n\n/,""));let m=re(o).data.studio||"";if(Ee()){try{let y=Zo(),b="";try{b=q_e("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(y&&b!==y)try{q_e("git",["checkout",y],{encoding:"utf8",stdio:"pipe"})}catch(S){try{q_e("git",["checkout",`${y}^0`],{encoding:"utf8",stdio:"pipe"})}catch(E){let _=S instanceof Error?S.message:String(S),T=E instanceof Error?E.message:String(E);throw new Error(`could not move HEAD off the haiku branches: \`git checkout ${y}\` failed (${_.split(` +The engine couldn't open a draft PR: ${b.message}`),wt(`haiku: stamp draft PR status for ${r}`);try{let S=Lh(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&&Bi(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 z_e}from"node:child_process";import{existsSync as ixt,readFileSync as sxt,rmSync as nnr}from"node:fs";import{join as G_e}from"node:path";var oxt,axt=v(()=>{"use strict";ar();Yd();$b();ze();Gi();vs();oxt={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=G_e(r,"intents",n),s=G_e(i,"intent.md");if(!ixt(s))return{content:[{type:"text",text:`Intent '${n}' not found.`}],isError:!0};let o=sxt(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=G_e(i,"knowledge","CONVERSATION-CONTEXT.md");ixt(p)&&(f=sxt(p,"utf8").replace(/^# Conversation Context\n\n/,""));let m=re(o).data.studio||"";if(Ee()){try{let y=Zo(),b="";try{b=z_e("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(y&&b!==y)try{z_e("git",["checkout",y],{encoding:"utf8",stdio:"pipe"})}catch(S){try{z_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(QD(n),m){let y=Fs(m);for(let b of y){let S=`haiku/${n}/${b}`;Pt(S)&&bb(n,b)}}let g=`haiku/${n}/main`;Pt(g)&&$D(g)}return tnr(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 nnr,readFileSync as rnr,writeFileSync as inr}from"node:fs";import{join as snr}from"node:path";var z_e,axt,cxt=v(()=>{"use strict";z_e=Re(Kt(),1);ar();xx();ji();uo();ze();zi();vs();axt={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:k0,handle(e){let t=Be(e,Bge,"haiku_intent_seal");if(t)return t;let n=e.intent,r=e.nonce,i=e.notes??"",s=Ix({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=snr(o,"intents",n,"intent.md");if(!nnr(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=yr(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=rnr(a,"utf8"),l=(0,z_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()),inr(a,z_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 onr,readFileSync as anr,writeFileSync as cnr}from"node:fs";import{join as unr}from"node:path";var G_e,uxt,lxt=v(()=>{"use strict";G_e=Re(Kt(),1);ar();ze();zi();vs();uxt={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=unr(n,"intents",t,"intent.md");if(!onr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let i=anr(r,"utf8"),s=(0,G_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=yr(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 cnr(r,G_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 lnr}from"node:crypto";import{existsSync as dxt,readFileSync as fxt}from"node:fs";function dnr(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 fnr(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function pnr(e){let t=gEe(e);if(!dxt(t))return 1;try{return fxt(t,"utf8").split(` -`).filter(n=>n.trim()!=="").length+1}catch{return 1}}async function E5(e){let t=dnr(e);if(!t)return{stamped:!1,reason:"not_in_intent_dir"};if(!fnr(t.pathRel))return{stamped:!1,reason:"not_in_tracked_surface"};if(!dxt(e))return{stamped:!1,reason:"file_missing"};let n;try{n=lnr("sha256").update(fxt(e)).digest("hex")}catch{return{stamped:!1,reason:"read_failed"}}let r=t.stageOwner?Ub(t.intentDir,t.stageOwner):Ub(t.intentDir),i=pnr(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=av(t.pathRel);return await jv(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 V_e=v(()=>{"use strict";R6();P0()});import{realpathSync as pxt}from"node:fs";import{isAbsolute as hnr,join as hxt}from"node:path";function W_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var mxt,gxt=v(()=>{"use strict";V_e();ze();zi();mxt={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 W_e("missing_intent_slug","`intent_slug` is required and must be a non-empty string.");if(typeof n!="string"||n.trim()==="")return W_e("missing_path","`path` is required and must be a non-empty string.");let r=Wg({intent:t});if(r)return r;let i=ve(),s=hxt(i,"intents",t),o=hnr(n)?n:hxt(s,n),a=(()=>{try{return pxt(s)}catch{return s}})(),c=(()=>{try{return pxt(o)}catch{return o}})();if(!c.startsWith(`${a}/`)&&c!==a)return W_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 E5(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 yxt,Sxt,bxt=v(()=>{"use strict";Sv();ji();uo();vo();zi();vs();yxt="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.",Sxt={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:b0,async handle(e){let t=Be(e,Nge,"haiku_review_stamp");if(t)return t;let{intent:n,kind:r,role:i,stage:s}=e,o=jye(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)`:""}. ${yxt}`:`No pending ${r} dispatch for '${i}' on stage '${s}' (already stamped). ${yxt}`}))}}});import{appendFileSync as mnr}from"node:fs";function _5(e){return Date.now()-e>Ext}function T5(e,t,n,r){let i=Date.now()-n;return im(`${e} (wall-deadline ${Ext}ms exceeded; elapsed=${i}ms)`,t,r,"no_progress")}function Mx(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 gnr(e){let t=`[${new Date().toISOString()}] ${e} -`;try{let n=Dft("loop-guards.log");return mnr(n,t),n}catch{return null}}function im(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=gnr(`loop guard fired: ${s}`),a=o?` +`)[0]}). Commit / stash / clean any uncommitted changes here and retry.`)}}}catch(y){let b=y instanceof Error?y.message:String(y);return{content:[{type:"text",text:`Error: failed to move HEAD off the haiku branches before resetting intent '${n}'. ${b}`}],isError:!0}}if(QD(n),m){let y=Fs(m);for(let b of y){let S=`haiku/${n}/${b}`;Pt(S)&&bb(n,b)}}let g=`haiku/${n}/main`;Pt(g)&&$D(g)}return nnr(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 rnr,readFileSync as inr,writeFileSync as snr}from"node:fs";import{join as onr}from"node:path";var V_e,cxt,uxt=v(()=>{"use strict";V_e=Re(Kt(),1);ar();xx();Hi();uo();ze();Gi();vs();cxt={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:k0,handle(e){let t=Be(e,Gge,"haiku_intent_seal");if(t)return t;let n=e.intent,r=e.nonce,i=e.notes??"",s=Ix({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=onr(o,"intents",n,"intent.md");if(!rnr(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=yr(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=inr(a,"utf8"),l=(0,V_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()),snr(a,V_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 anr,readFileSync as cnr,writeFileSync as unr}from"node:fs";import{join as lnr}from"node:path";var W_e,lxt,dxt=v(()=>{"use strict";W_e=Re(Kt(),1);ar();ze();Gi();vs();lxt={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=lnr(n,"intents",t,"intent.md");if(!anr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let i=cnr(r,"utf8"),s=(0,W_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=yr(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 unr(r,W_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 dnr}from"node:crypto";import{existsSync as fxt,readFileSync as pxt}from"node:fs";function fnr(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 pnr(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function hnr(e){let t=SEe(e);if(!fxt(t))return 1;try{return pxt(t,"utf8").split(` +`).filter(n=>n.trim()!=="").length+1}catch{return 1}}async function E5(e){let t=fnr(e);if(!t)return{stamped:!1,reason:"not_in_intent_dir"};if(!pnr(t.pathRel))return{stamped:!1,reason:"not_in_tracked_surface"};if(!fxt(e))return{stamped:!1,reason:"file_missing"};let n;try{n=dnr("sha256").update(pxt(e)).digest("hex")}catch{return{stamped:!1,reason:"read_failed"}}let r=t.stageOwner?Ub(t.intentDir,t.stageOwner):Ub(t.intentDir),i=hnr(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=av(t.pathRel);return await jv(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 K_e=v(()=>{"use strict";R6();P0()});import{realpathSync as hxt}from"node:fs";import{isAbsolute as mnr,join as mxt}from"node:path";function Y_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var gxt,yxt=v(()=>{"use strict";K_e();ze();Gi();gxt={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 Y_e("missing_intent_slug","`intent_slug` is required and must be a non-empty string.");if(typeof n!="string"||n.trim()==="")return Y_e("missing_path","`path` is required and must be a non-empty string.");let r=Wg({intent:t});if(r)return r;let i=ve(),s=mxt(i,"intents",t),o=mnr(n)?n:mxt(s,n),a=(()=>{try{return hxt(s)}catch{return s}})(),c=(()=>{try{return hxt(o)}catch{return o}})();if(!c.startsWith(`${a}/`)&&c!==a)return Y_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 E5(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 Sxt,bxt,Ext=v(()=>{"use strict";Sv();Hi();uo();vo();Gi();vs();Sxt="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.",bxt={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:b0,async handle(e){let t=Be(e,Mge,"haiku_review_stamp");if(t)return t;let{intent:n,kind:r,role:i,stage:s}=e,o=qye(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)`:""}. ${Sxt}`:`No pending ${r} dispatch for '${i}' on stage '${s}' (already stamped). ${Sxt}`}))}}});import{appendFileSync as gnr}from"node:fs";function _5(e){return Date.now()-e>_xt}function T5(e,t,n,r){let i=Date.now()-n;return im(`${e} (wall-deadline ${_xt}ms exceeded; elapsed=${i}ms)`,t,r,"no_progress")}function Mx(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 ynr(e){let t=`[${new Date().toISOString()}] ${e} +`;try{let n=Uft("loop-guards.log");return gnr(n,t),n}catch{return null}}function im(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=ynr(`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 TU,Ext,_xt=v(()=>{"use strict";vl();TU=16,Ext=9e4});var vxt={};Ar(vxt,{invalidateDownstreamApprovals:()=>Enr});import{existsSync as ynr,readdirSync as Snr,readFileSync as bnr}from"node:fs";import{join as Txt}from"node:path";function Enr(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=Txt(e.intentDir,"stages",o,"units");if(!ynr(a))continue;let c=Snr(a).filter(l=>l.endsWith(".md")),u=!1;for(let l of c){let d=Txt(a,l);try{let f=bnr(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"),Zh(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 Rxt=v(()=>{"use strict";ze();ns()});var aNt={};Ar(aNt,{AbortError:()=>rE,EXIT_REASONS:()=>zsr,HOOK_EVENTS:()=>Bsr,createSdkMcpServer:()=>spr,query:()=>opr,tool:()=>ipr,unstable_v2_createSession:()=>apr,unstable_v2_prompt:()=>upr,unstable_v2_resumeSession:()=>cpr});import{join as wxt}from"path";import{fileURLToPath as wrr}from"url";import{setMaxListeners as krr}from"events";import{spawn as xrr}from"child_process";import{createInterface as Orr}from"readline";import*as Zt from"fs";import{stat as Prr}from"fs/promises";import{join as _sr}from"path";import{homedir as Tsr}from"os";import{dirname as rTe,join as OOt}from"path";import{cwd as vsr}from"process";import{realpathSync as Rsr}from"fs";import{randomUUID as Asr}from"crypto";import{randomUUID as Gsr}from"crypto";import{appendFileSync as Vsr,existsSync as Wsr,mkdirSync as Ksr}from"fs";import{join as Cxt}from"path";import{randomUUID as Xsr}from"crypto";import{join as Dxt}from"path";import{fileURLToPath as Qsr}from"url";function UTe(e=Irr){let t=new AbortController;return krr(e,t.signal),t}function jrr(e){var t=Urr.call(e,vU),n=e[vU];try{e[vU]=void 0;var r=!0}catch{}var i=Frr.call(e);return r&&(t?e[vU]=n:delete e[vU]),i}function zrr(e){return Brr.call(e)}function Krr(e){return e==null?e===void 0?Wrr:Vrr:kxt&&kxt in Object(e)?Hrr(e):Grr(e)}function Zrr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function eir(e){if(!wOt(e))return!1;var t=Yrr(e);return t==Xrr||t==Qrr||t==Jrr||t==$rr}function rir(e){return!!Ixt&&Ixt in e}function air(e){if(e!=null){try{return oir.call(e)}catch{}try{return e+""}catch{}}return""}function gir(e){if(!wOt(e)||iir(e))return!1;var t=tir(e)?mir:lir;return t.test(cir(e))}function Sir(e,t){return e?.[t]}function Eir(e,t){var n=bir(e,t);return yir(n)?n:void 0}function Tir(){this.__data__=PU?PU(null):{},this.size=0}function Rir(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function xir(e){var t=this.__data__;if(PU){var n=t[e];return n===wir?void 0:n}return Iir.call(t,e)?t[e]:void 0}function Cir(e){var t=this.__data__;return PU?t[e]!==void 0:Nir.call(t,e)}function Lir(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=PU&&t===void 0?Dir:t,this}function Qx(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}function Xir(e,t){var n=this.__data__,r=X5(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function $x(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 Esr(e,t){if(!t)return!0;let n=Ssr(e);return bsr(n,t)}function xOt(){return process.env.CLAUDE_CONFIG_DIR??_sr(Tsr(),".claude")}function Pxt(e){if(!e)return!1;if(typeof e=="boolean")return e;let t=e.toLowerCase().trim();return["1","true","yes","on"].includes(t)}function POt(e){return{name:e,default:v5,validate:t=>{if(!t)return{effective:v5,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:v5,status:"invalid",message:`Invalid value "${t}" (using default: ${v5})`}:n>Y_e?{effective:Y_e,status:"capped",message:`Capped from ${n} to ${Y_e}`}:{effective:n,status:"valid"}}}}function Isr(){let e="";return typeof process<"u"&&typeof process.cwd=="function"&&(e=Rsr(vsr())),{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:Asr(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[wsr,ksr],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 Osr(){return xsr.sessionId}function Psr({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 Nsr(e){return Nxt.add(e),()=>Nxt.delete(e)}function Csr(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 COt(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>NOt&&(Zg(`[SLOW OPERATION DETECTED] ${e} (${r.toFixed(1)}ms)`),void 0)}}function sm(e,t,n){let r=Csr(e);return COt(`JSON.stringify(${r})`,()=>JSON.stringify(e,t,n))}function Lsr(e){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let t=Dsr();return Esr(e,t)}function Fsr(){return R5||(R5=Psr({writeFn:e=>{let t=LOt();Xg().existsSync(rTe(t))||Xg().mkdirSync(rTe(t)),Xg().appendFileSync(t,e),jsr()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:Msr()}),Nsr(async()=>R5?.dispose())),R5}function Zg(e,{level:t}={level:"debug"}){if(!Lsr(e))return;Usr&&e.includes(` +diagnostic: ${s}${a}`}],isError:!0}}var TU,_xt,Txt=v(()=>{"use strict";vl();TU=16,_xt=9e4});var Rxt={};Ar(Rxt,{invalidateDownstreamApprovals:()=>_nr});import{existsSync as Snr,readdirSync as bnr,readFileSync as Enr}from"node:fs";import{join as vxt}from"node:path";function _nr(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=vxt(e.intentDir,"stages",o,"units");if(!Snr(a))continue;let c=bnr(a).filter(l=>l.endsWith(".md")),u=!1;for(let l of c){let d=vxt(a,l);try{let f=Enr(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"),Zh(d,g),s++,u=!0}catch(f){console.error(`[invalidate-downstream] skipping ${d}: ${f instanceof Error?f.message:String(f)}`)}}u&&i.push(o)}return{stages_cleared:i,units_cleared:s}}var Axt=v(()=>{"use strict";ze();ji()});var cNt={};Ar(cNt,{AbortError:()=>rE,EXIT_REASONS:()=>Gsr,HOOK_EVENTS:()=>zsr,createSdkMcpServer:()=>opr,query:()=>apr,tool:()=>spr,unstable_v2_createSession:()=>cpr,unstable_v2_prompt:()=>lpr,unstable_v2_resumeSession:()=>upr});import{join as kxt}from"path";import{fileURLToPath as krr}from"url";import{setMaxListeners as Irr}from"events";import{spawn as Orr}from"child_process";import{createInterface as Prr}from"readline";import*as Zt from"fs";import{stat as Nrr}from"fs/promises";import{join as Tsr}from"path";import{homedir as vsr}from"os";import{dirname as sTe,join as POt}from"path";import{cwd as Rsr}from"process";import{realpathSync as Asr}from"fs";import{randomUUID as wsr}from"crypto";import{randomUUID as Vsr}from"crypto";import{appendFileSync as Wsr,existsSync as Ksr,mkdirSync as Ysr}from"fs";import{join as Mxt}from"path";import{randomUUID as Qsr}from"crypto";import{join as Lxt}from"path";import{fileURLToPath as $sr}from"url";function jTe(e=xrr){let t=new AbortController;return Irr(e,t.signal),t}function Hrr(e){var t=Frr.call(e,vU),n=e[vU];try{e[vU]=void 0;var r=!0}catch{}var i=jrr.call(e);return r&&(t?e[vU]=n:delete e[vU]),i}function Grr(e){return zrr.call(e)}function Yrr(e){return e==null?e===void 0?Krr:Wrr:Ixt&&Ixt in Object(e)?qrr(e):Vrr(e)}function Jrr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function tir(e){if(!kOt(e))return!1;var t=Zrr(e);return t==Qrr||t==$rr||t==Xrr||t==eir}function iir(e){return!!xxt&&xxt in e}function cir(e){if(e!=null){try{return air.call(e)}catch{}try{return e+""}catch{}}return""}function yir(e){if(!kOt(e)||sir(e))return!1;var t=nir(e)?gir:dir;return t.test(uir(e))}function bir(e,t){return e?.[t]}function _ir(e,t){var n=Eir(e,t);return Sir(n)?n:void 0}function vir(){this.__data__=PU?PU(null):{},this.size=0}function Air(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function Oir(e){var t=this.__data__;if(PU){var n=t[e];return n===kir?void 0:n}return xir.call(t,e)?t[e]:void 0}function Mir(e){var t=this.__data__;return PU?t[e]!==void 0:Cir.call(t,e)}function Uir(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=PU&&t===void 0?Lir:t,this}function Qx(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}function Qir(e,t){var n=this.__data__,r=X5(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function $x(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 _sr(e,t){if(!t)return!0;let n=bsr(e);return Esr(n,t)}function OOt(){return process.env.CLAUDE_CONFIG_DIR??Tsr(vsr(),".claude")}function Nxt(e){if(!e)return!1;if(typeof e=="boolean")return e;let t=e.toLowerCase().trim();return["1","true","yes","on"].includes(t)}function NOt(e){return{name:e,default:v5,validate:t=>{if(!t)return{effective:v5,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:v5,status:"invalid",message:`Invalid value "${t}" (using default: ${v5})`}:n>J_e?{effective:J_e,status:"capped",message:`Capped from ${n} to ${J_e}`}:{effective:n,status:"valid"}}}}function xsr(){let e="";return typeof process<"u"&&typeof process.cwd=="function"&&(e=Asr(Rsr())),{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:wsr(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[ksr,Isr],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 Psr(){return Osr.sessionId}function Nsr({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 Csr(e){return Cxt.add(e),()=>Cxt.delete(e)}function Msr(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 MOt(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>COt&&(Zg(`[SLOW OPERATION DETECTED] ${e} (${r.toFixed(1)}ms)`),void 0)}}function sm(e,t,n){let r=Msr(e);return MOt(`JSON.stringify(${r})`,()=>JSON.stringify(e,t,n))}function Usr(e){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let t=Lsr();return _sr(e,t)}function jsr(){return R5||(R5=Nsr({writeFn:e=>{let t=UOt();Xg().existsSync(sTe(t))||Xg().mkdirSync(sTe(t)),Xg().appendFileSync(t,e),Hsr()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:Dsr()}),Csr(async()=>R5?.dispose())),R5}function Zg(e,{level:t}={level:"debug"}){if(!Usr(e))return;Fsr&&e.includes(` `)&&(e=sm(e));let r=`${new Date().toISOString()} [${t.toUpperCase()}] ${e.trim()} -`;if(DOt()){gsr(r);return}Fsr().write(r)}function LOt(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??OOt(xOt(),"debug",`${Osr()}.txt`)}function fo(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>NOt&&(Zg(`[SLOW OPERATION DETECTED] fs.${e} (${r.toFixed(1)}ms)`),`${e}`,void 0)}}function Xg(){return qsr}function HTe(){return process.versions.bun!==void 0}function Ysr(){if(Mxt)return A5;if(Mxt=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let e=Cxt(xOt(),"debug");return A5=Cxt(e,`sdk-${Gsr()}.txt`),Wsr(e)||Ksr(e,{recursive:!0}),process.stderr.write(`SDK debug logs: ${A5} -`),A5}function Qv(e){let t=Ysr();if(!t)return;let r=`${new Date().toISOString()} ${e} -`;Vsr(t,r)}function Zsr(e,t){let n={...e};if(t){let r={sandbox:t};if(n.settings)try{r={...MOt(n.settings),sandbox:t}}catch{}n.settings=sm(r)}return n}function Jsr(e){return![".js",".mjs",".tsx",".ts",".jsx"].some(n=>e.endsWith(n))}function UOt(e){return new D5(e)}function $sr(e,t){return new D5({...t,resume:e})}function sTe(){return tor}function Ye(e,t){let n=sTe(),r=oTe({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===NU?void 0:NU].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 jOt(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 bor(e){return new RegExp(`^${jOt(e)}$`)}function Eor(e){let t=`${FOt}T${jOt(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 _or(e,t){return!!((t==="v4"||!t)&&dor.test(e)||(t==="v6"||!t)&&hor.test(e))}function Tor(e,t){if(!aor.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 vor(e,t){return!!((t==="v4"||!t)&&por.test(e)||(t==="v6"||!t)&&mor.test(e))}function Ror(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 Dx(e){if(e instanceof jl){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=mp.create(Dx(r))}return new jl({...e._def,shape:()=>t})}else return e instanceof oE?new oE({...e._def,type:Dx(e.element)}):e instanceof mp?mp.create(Dx(e.unwrap())):e instanceof $g?$g.create(Dx(e.unwrap())):e instanceof Qg?Qg.create(e.items.map(t=>Dx(t))):e}function cTe(e,t){let n=nE(e),r=nE(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=cTe(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(dTe,e),dTe}function wor(e){return e}function kor(e){return e}function Ior(e){}function xor(e){throw new Error}function Oor(e){}function qTe(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 fTe(e,t="|"){return e.map(n=>GTe(n)).join(t)}function qOt(e,t){return typeof t=="bigint"?t.toString():t}function $5(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function e8(e){return e==null}function t8(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function BOt(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 BTe(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Por(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function Nor(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 Uor(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 GTe(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function VOt(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function jor(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 Hor(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 qor(e,t){if(!GU(t))throw new Error("Invalid input to extend: expected a plain object");let n={...e._zod.def,get shape(){let r={...e._zod.def.shape,...t};return BTe(this,"shape",r),r},checks:[]};return ny(e,n)}function Bor(e,t){return ny(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return BTe(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function zor(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 Gor(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 Ux(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function kU(e){return typeof e=="string"?e:e?.message}function ty(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=kU(e.inst?._zod.def?.error?.(e))??kU(t?.error?.(e))??kU(n.customError?.(e))??kU(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function Vor(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function n8(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function KOt(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Wor(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function Kor(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 Yor(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 oPt(n)}function ccr(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 qxt(e,t,n){e.issues.length&&t.issues.push(...iE(n,e.issues)),t.value[n]=e.value}function w5(e,t,n){e.issues.length&&t.issues.push(...iE(n,e.issues)),t.value[n]=e.value}function Bxt(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(...iE(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function zxt(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 mTe(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(GU(e)&&GU(t)){let n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),i={...e,...t};for(let s of r){let o=mTe(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 Eur(){return WU(e=>e.trim())}function _ur(){return WU(e=>e.toLowerCase())}function Tur(){return WU(e=>e.toUpperCase())}function vur(e,t,n){return new e({type:"array",element:t,...Ht(n)})}function Rur(e,t,n){let r=Ht(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function Aur(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Ht(n)})}function wur(e,t){if(e instanceof j5){let r=new q5(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 q5(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 eOt(e,t){let n={type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},...Gr.normalizeParams(t)};return new Iur(n)}function yp(e){return!!e._zod}function xU(e){let t=Object.values(e);if(t.length===0)return eOt({});let n=t.every(yp),r=t.every(i=>!yp(i));if(n)return eOt(e);if(r)return Aor(e);throw new Error("Mixed Zod versions detected in object shape.")}function OU(e,t){return yp(e)?VTe(e,t):e.safeParse(t)}async function Q_e(e,t){return yp(e)?await WTe(e,t):await e.safeParseAsync(t)}function KU(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 RU(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 xU(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 $_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 xur(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 Our(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 fPt(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 mPt(e){return rur(hPt,e)}function yPt(e){return iur(gPt,e)}function bPt(e){return sur(SPt,e)}function _Pt(e){return our(EPt,e)}function he(e){return Dcr(Dur,e)}function ui(e){return aur(RPt,e)}function nOt(e){return cur($ur,e)}function vc(e){return uur(elr,e)}function APt(e){return lur(tlr,e)}function xo(){return dur(nlr)}function ilr(e){return fur(rlr,e)}function er(e,t){return vur(slr,e,t)}function Ge(e,t){let n={type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},...Gr.normalizeParams(t)};return new wPt(n)}function Sp(e,t){return new wPt({type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},catchall:xo(),...Gr.normalizeParams(t)})}function Vi(e,t){return new kPt({type:"union",options:e,...Gr.normalizeParams(t)})}function IPt(e,t,n){return new olr({type:"union",options:t,discriminator:e,...Gr.normalizeParams(n)})}function YTe(e,t){return new alr({type:"intersection",left:e,right:t})}function Oo(e,t,n){return new clr({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 gTe({type:"enum",entries:n,...Gr.normalizeParams(t)})}function St(e,t){return new ulr({type:"literal",values:Array.isArray(e)?e:[e],...Gr.normalizeParams(t)})}function xPt(e){return new llr({type:"transform",transform:e})}function yt(e){return new OPt({type:"optional",innerType:e})}function rOt(e){return new dlr({type:"nullable",innerType:e})}function plr(e,t){return new flr({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function mlr(e,t){return new hlr({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function glr(e,t){return new PPt({type:"nonoptional",innerType:e,...Gr.normalizeParams(t)})}function Slr(e,t){return new ylr({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function yTe(e,t){return new blr({type:"pipe",in:e,out:t})}function _lr(e){return new Elr({type:"readonly",innerType:e})}function Tlr(e,t){let n=new $u({check:"custom",...Gr.normalizeParams(t)});return n._zod.check=e,n}function vlr(e,t){return Rur(NPt,e??(()=>!0),t)}function Rlr(e,t={}){return Aur(NPt,e,t)}function Alr(e,t){let n=Tlr(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 CPt(e,t){return yTe(xPt(e),t)}function Qdr(e){if(e.params.ref.type!=="ref/prompt")throw new TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function $dr(e){if(e.params.ref.type!=="ref/resource")throw new TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}function $v(e){return e==="completed"||e==="failed"||e==="cancelled"}function $Pt(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function Cr(e,t,n,r,i){e[t]=n,$Pt(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"?eNt(t,e.currentPath):t.join("/")}}function afr(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 cfr(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 ufr(){return{type:"boolean"}}function tNt(e,t){return Er(e.type._def,t)}function nNt(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((i,s)=>nNt(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 dfr(e,t)}}function ffr(e,t){return{...Er(e.innerType._def,t),default:e.defaultValue()}}function pfr(e,t){return t.effectStrategy==="input"?Er(e.schema._def,t):Qu(t)}function hfr(e){return{type:"string",enum:Array.from(e.values)}}function gfr(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(mfr(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 yfr(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 rNt(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(`^${tTe(r.value,t)}`),r.message,t);break;case"endsWith":ru(n,RegExp(`${tTe(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(tTe(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 tTe(e,t){return t.patternStrategy==="escape"?bfr(e):e}function bfr(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:oOt(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):Cr(e,"pattern",oOt(t,r),n,r)}function oOt(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;cCOt&&(Zg(`[SLOW OPERATION DETECTED] fs.${e} (${r.toFixed(1)}ms)`),`${e}`,void 0)}}function Xg(){return Bsr}function BTe(){return process.versions.bun!==void 0}function Zsr(){if(Dxt)return A5;if(Dxt=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let e=Mxt(OOt(),"debug");return A5=Mxt(e,`sdk-${Vsr()}.txt`),Ksr(e)||Ysr(e,{recursive:!0}),process.stderr.write(`SDK debug logs: ${A5} +`),A5}function Qv(e){let t=Zsr();if(!t)return;let r=`${new Date().toISOString()} ${e} +`;Wsr(t,r)}function Jsr(e,t){let n={...e};if(t){let r={sandbox:t};if(n.settings)try{r={...DOt(n.settings),sandbox:t}}catch{}n.settings=sm(r)}return n}function Xsr(e){return![".js",".mjs",".tsx",".ts",".jsx"].some(n=>e.endsWith(n))}function FOt(e){return new D5(e)}function eor(e,t){return new D5({...t,resume:e})}function aTe(){return nor}function Ye(e,t){let n=aTe(),r=cTe({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===NU?void 0:NU].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 HOt(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 Eor(e){return new RegExp(`^${HOt(e)}$`)}function _or(e){let t=`${jOt}T${HOt(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 Tor(e,t){return!!((t==="v4"||!t)&&por.test(e)||(t==="v6"||!t)&&mor.test(e))}function vor(e,t){if(!cor.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 Ror(e,t){return!!((t==="v4"||!t)&&hor.test(e)||(t==="v6"||!t)&&gor.test(e))}function Aor(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 Dx(e){if(e instanceof jl){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=mp.create(Dx(r))}return new jl({...e._def,shape:()=>t})}else return e instanceof oE?new oE({...e._def,type:Dx(e.element)}):e instanceof mp?mp.create(Dx(e.unwrap())):e instanceof $g?$g.create(Dx(e.unwrap())):e instanceof Qg?Qg.create(e.items.map(t=>Dx(t))):e}function lTe(e,t){let n=nE(e),r=nE(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=lTe(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(pTe,e),pTe}function kor(e){return e}function Ior(e){return e}function xor(e){}function Oor(e){throw new Error}function Por(e){}function zTe(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 hTe(e,t="|"){return e.map(n=>WTe(n)).join(t)}function BOt(e,t){return typeof t=="bigint"?t.toString():t}function $5(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function e8(e){return e==null}function t8(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function zOt(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 GTe(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Nor(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function Cor(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 For(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 WTe(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function WOt(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Hor(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 qor(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 Bor(e,t){if(!GU(t))throw new Error("Invalid input to extend: expected a plain object");let n={...e._zod.def,get shape(){let r={...e._zod.def.shape,...t};return GTe(this,"shape",r),r},checks:[]};return ny(e,n)}function zor(e,t){return ny(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return GTe(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function Gor(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 Vor(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 Ux(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function kU(e){return typeof e=="string"?e:e?.message}function ty(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=kU(e.inst?._zod.def?.error?.(e))??kU(t?.error?.(e))??kU(n.customError?.(e))??kU(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function Wor(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function n8(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function YOt(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Kor(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function Yor(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 Zor(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 aPt(n)}function ucr(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 Bxt(e,t,n){e.issues.length&&t.issues.push(...iE(n,e.issues)),t.value[n]=e.value}function w5(e,t,n){e.issues.length&&t.issues.push(...iE(n,e.issues)),t.value[n]=e.value}function zxt(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(...iE(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function Gxt(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 yTe(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(GU(e)&&GU(t)){let n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),i={...e,...t};for(let s of r){let o=yTe(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 _ur(){return WU(e=>e.trim())}function Tur(){return WU(e=>e.toLowerCase())}function vur(){return WU(e=>e.toUpperCase())}function Rur(e,t,n){return new e({type:"array",element:t,...Ht(n)})}function Aur(e,t,n){let r=Ht(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function wur(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Ht(n)})}function kur(e,t){if(e instanceof j5){let r=new q5(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 q5(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 tOt(e,t){let n={type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},...Gr.normalizeParams(t)};return new xur(n)}function yp(e){return!!e._zod}function xU(e){let t=Object.values(e);if(t.length===0)return tOt({});let n=t.every(yp),r=t.every(i=>!yp(i));if(n)return tOt(e);if(r)return wor(e);throw new Error("Mixed Zod versions detected in object shape.")}function OU(e,t){return yp(e)?KTe(e,t):e.safeParse(t)}async function eTe(e,t){return yp(e)?await YTe(e,t):await e.safeParseAsync(t)}function KU(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 RU(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 xU(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 tTe(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 Our(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 Pur(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 pPt(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 gPt(e){return iur(mPt,e)}function SPt(e){return sur(yPt,e)}function EPt(e){return our(bPt,e)}function TPt(e){return aur(_Pt,e)}function he(e){return Lcr(Lur,e)}function ui(e){return cur(APt,e)}function rOt(e){return uur(elr,e)}function vc(e){return lur(tlr,e)}function wPt(e){return dur(nlr,e)}function xo(){return fur(rlr)}function slr(e){return pur(ilr,e)}function er(e,t){return Rur(olr,e,t)}function Ge(e,t){let n={type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},...Gr.normalizeParams(t)};return new kPt(n)}function Sp(e,t){return new kPt({type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},catchall:xo(),...Gr.normalizeParams(t)})}function Wi(e,t){return new IPt({type:"union",options:e,...Gr.normalizeParams(t)})}function xPt(e,t,n){return new alr({type:"union",options:t,discriminator:e,...Gr.normalizeParams(n)})}function JTe(e,t){return new clr({type:"intersection",left:e,right:t})}function Oo(e,t,n){return new ulr({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 STe({type:"enum",entries:n,...Gr.normalizeParams(t)})}function St(e,t){return new llr({type:"literal",values:Array.isArray(e)?e:[e],...Gr.normalizeParams(t)})}function OPt(e){return new dlr({type:"transform",transform:e})}function yt(e){return new PPt({type:"optional",innerType:e})}function iOt(e){return new flr({type:"nullable",innerType:e})}function hlr(e,t){return new plr({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function glr(e,t){return new mlr({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function ylr(e,t){return new NPt({type:"nonoptional",innerType:e,...Gr.normalizeParams(t)})}function blr(e,t){return new Slr({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function bTe(e,t){return new Elr({type:"pipe",in:e,out:t})}function Tlr(e){return new _lr({type:"readonly",innerType:e})}function vlr(e,t){let n=new $u({check:"custom",...Gr.normalizeParams(t)});return n._zod.check=e,n}function Rlr(e,t){return Aur(CPt,e??(()=>!0),t)}function Alr(e,t={}){return wur(CPt,e,t)}function wlr(e,t){let n=vlr(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 MPt(e,t){return bTe(OPt(e),t)}function $dr(e){if(e.params.ref.type!=="ref/prompt")throw new TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function efr(e){if(e.params.ref.type!=="ref/resource")throw new TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}function $v(e){return e==="completed"||e==="failed"||e==="cancelled"}function eNt(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function Cr(e,t,n,r,i){e[t]=n,eNt(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"?tNt(t,e.currentPath):t.join("/")}}function cfr(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 ufr(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 lfr(){return{type:"boolean"}}function nNt(e,t){return Er(e.type._def,t)}function rNt(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((i,s)=>rNt(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 ffr(e,t)}}function pfr(e,t){return{...Er(e.innerType._def,t),default:e.defaultValue()}}function hfr(e,t){return t.effectStrategy==="input"?Er(e.schema._def,t):Qu(t)}function mfr(e){return{type:"string",enum:Array.from(e.values)}}function yfr(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(gfr(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 Sfr(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 iNt(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(`^${rTe(r.value,t)}`),r.message,t);break;case"endsWith":ru(n,RegExp(`${rTe(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(rTe(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 rTe(e,t){return t.patternStrategy==="escape"?Efr(e):e}function Efr(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:aOt(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):Cr(e,"pattern",aOt(t,r),n,r)}function aOt(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;let n={i:e.flags.includes("i"),m:e.flags.includes("m"),s:e.flags.includes("s")},r=n.i?e.source.toLowerCase():e.source,i="",s=!1,o=!1,a=!1;for(let c=0;c({...r,[i]:Er(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",i]})??Qu(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let n={type:"object",additionalProperties:Er(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]})??t.allowedAdditionalProperties};if(t.target==="openApi3")return n;if(e.keyType?._def.typeName===De.ZodString&&e.keyType._def.checks?.length){let{type:r,...i}=rNt(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}=tNt(e.keyType._def,t);return{...n,propertyNames:i}}}return n}function Efr(e,t){if(t.mapStrategy==="record")return iNt(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 _fr(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 Tfr(e){return e.target==="openAi"?void 0:{not:Qu({...e,currentPath:[...e.currentPath,"not"]})}}function vfr(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}function Rfr(e,t){if(t.target==="openApi3")return aOt(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(r=>r._def.typeName in W5&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((i,s)=>{let o=W5[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 aOt(e,t)}function Afr(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:W5[e.innerType._def.typeName],nullable:!0}:{type:[W5[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 wfr(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",$Pt(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 kfr(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=xfr(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=Ifr(e,t);return o!==void 0&&(r.additionalProperties=o),r}function Ifr(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 xfr(e){try{return e.isOptional()}catch{return!0}}function Nfr(e,t){return Er(e.type._def,t)}function Cfr(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 Mfr(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 Dfr(e){return{not:Qu(e)}}function Lfr(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!==ifr)return a}if(r&&!n){let a=jfr(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=Ffr(e,e.typeName,t),o=typeof s=="function"?Er(s(),t):s;if(o&&Hfr(e,t,o),t.postProcess){let a=t.postProcess(o,e,t);return i.jsonSchema=o,a}return i.jsonSchema=o,o}function Bfr(e){return!e||e==="jsonSchema7"||e==="draft-7"?"draft-7":e==="jsonSchema2019-09"||e==="draft-2020-12"?"draft-2020-12":"draft-7"}function cOt(e,t){var n,r,i;return yp(e)?wur(e,{target:Bfr(t?.target),io:(n=t?.pipeStrategy)!==null&&n!==void 0?n:"input"}):qfr(e,{strictUnions:(r=t?.strictUnions)!==null&&r!==void 0?r:!0,pipeStrategy:(i=t?.pipeStrategy)!==null&&i!==void 0?i:"input"})}function uOt(e){let t=KU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=fPt(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function lOt(e,t){let n=OU(e,t);if(!n.success)throw n.error;return n.data}function dOt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Gfr(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];dOt(o)&&dOt(s)?n[i]={...o,...s}:n[i]=s}return n}function Kfr(){let e=new Vfr.Ajv({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0}),t=Wfr.default;return t(e),e}function Yfr(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 Zfr(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"&&sNt in e}function Xfr(e){let t=e[sNt];return t?.complete}function $fr(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 epr(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 pOt(e){let t=$fr(e);return epr(e,t.warnings),t.isValid}function oNt(e){return e!==null&&typeof e=="object"&&"parse"in e&&typeof e.parse=="function"&&"safeParse"in e&&typeof e.safeParse=="function"}function npr(e){return"_def"in e||"_zod"in e||oNt(e)}function CTe(e){return typeof e!="object"||e===null||npr(e)?!1:Object.keys(e).length===0?!0:Object.values(e).some(oNt)}function hOt(e){if(e)return CTe(e)?xU(e):e}function rpr(e){let t=KU(e);return t?Object.entries(t).map(([n,r])=>{let i=xur(r),s=Our(r);return{name:n,description:i,required:!s}}):[]}function tE(e){let t=KU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=fPt(n);if(typeof r=="string")return r;throw new Error("Schema method literal must be a string")}function mOt(e){return{completion:{values:e.slice(0,100),total:e.length,hasMore:e.length>100}}}function ipr(e,t,n,r){return{name:e,description:t,inputSchema:n,handler:r}}function spr(e){let t=new NTe({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 opr({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 de=wrr(import.meta.url),_e=wxt(de,"..");c=wxt(_e,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.77";let{abortController:u=UTe(),additionalDirectories:l=[],agents:d,allowedTools:f=[],betas:p,canUseTool:h,continue:m,cwd:g,disallowedTools:y=[],tools:b,env:S,executable:E=HTe()?"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:j,strictMcpConfig:H}=s,K=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[de,_e]of Object.entries(W))_e.type==="sdk"&&"instance"in _e?(Le.set(de,_e.instance),se[de]={type:"sdk",name:de}):se[de]=_e;let Ae=typeof e=="string",z=new N5({abortController:u,additionalDirectories:l,betas:p,cwd:g,executable:E,executableArgs:_,extraArgs:T,pathToClaudeCodeExecutable:c,env:ee,forkSession:x,stderr:j,maxThinkingTokens:C,maxTurns:L,maxBudgetUsd:G,model:$,fallbackModel:R,jsonSchema:K,permissionMode:Q,allowDangerouslySkipPermissions:B,permissionPromptToolName:F,continueConversation:m,resume:U,resumeSessionAt:M,settingSources:r??[],allowedTools:f,disallowedTools:y,tools:b,mcpServers:se,strictMcpConfig:H,canUseTool:!!h,hooks:!!k,includePartialMessages:P,persistSession:N,plugins:V,sandbox:i,spawnClaudeCodeProcess:s.spawnClaudeCodeProcess}),J={systemPrompt:o,appendSystemPrompt:a,agents:d},oe=new M5(z,Ae,h,k,u,Le,K,J);return typeof e=="string"?z.write(sm({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:e}]},parent_tool_use_id:null})+` -`):oe.streamInput(e),oe}function apr(e){return UOt(e)}function cpr(e,t){return $sr(e,t)}async function upr(e,t){let n=[];try{let o=knr(n,UOt(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=Inr(n,r,i);s&&await s}}var _nr,Tnr,nTe,vnr,Rnr,gOt,Xe,yOt,Anr,wnr,knr,Inr,x5,Axt,_n,lr,aE,K5,xnr,SOt,bOt,O5,Onr,bp,Pnr,Nnr,EOt,Cnr,Y5,Z5,MTe,J5,DTe,Mnr,Dnr,Lnr,Unr,Fnr,jnr,Hnr,qnr,Bnr,znr,Gnr,Vnr,Wnr,Knr,Ynr,Znr,Jnr,Xnr,LTe,Qnr,$nr,err,trr,_Ot,TOt,nrr,rrr,irr,srr,orr,vOt,arr,crr,urr,lrr,drr,frr,prr,hrr,mrr,grr,yrr,Srr,brr,Err,_rr,Trr,ROt,vrr,Rrr,Arr,Irr,Nrr,Crr,Mrr,Drr,FTe,Lrr,P5,AOt,Urr,Frr,vU,Hrr,qrr,Brr,Grr,Vrr,Wrr,kxt,Yrr,wOt,Jrr,Xrr,Qrr,$rr,tir,nir,K_e,Ixt,iir,sir,oir,cir,uir,lir,dir,fir,pir,hir,mir,yir,bir,kOt,_ir,PU,vir,Air,wir,kir,Iir,Oir,Pir,Nir,Mir,Dir,Uir,xxt,jir,qir,X5,zir,Gir,Wir,Yir,Jir,Qir,$ir,esr,tsr,rsr,ssr,Q5,csr,lsr,fsr,hsr,IOt,msr,VU,Oxt,ysr,Y_e,v5,wsr,QPi,ksr,xsr,Nxt,NOt,MOt,Msr,Dsr,DOt,Usr,R5,jsr,Hsr,qsr,Bsr,zsr,rE,A5,Mxt,N5,C5,iTe,M5,D5,ir,Lxt,nt,nE,Oe,Zd,eor,NU,tor,oTe,iu,Vt,wU,Xu,Uxt,Fxt,Fx,L5,lt,Jd,jxt,Tn,nor,ror,ior,sor,oor,aor,cor,uor,lor,Z_e,dor,por,hor,mor,gor,yor,FOt,Sor,jx,CU,MU,DU,LU,UU,Hx,qx,FU,sE,am,jU,oE,jl,Bx,Yg,aTe,zx,Qg,uTe,HU,qU,lTe,Gx,Vx,Wx,Kx,eR,gp,mp,$g,Yx,Zx,BU,U5,F5,Jx,sNi,De,oNi,aNi,cNi,uNi,lNi,dNi,fNi,pNi,hNi,mNi,gNi,yNi,SNi,bNi,Aor,ENi,_Ni,TNi,vNi,RNi,ANi,wNi,kNi,INi,xNi,ONi,PNi,NNi,CNi,MNi,DNi,LNi,UNi,FNi,jNi,tR,dTe,Gr,zTe,zOt,Dor,GOt,Lor,WOt,For,pTe,YOt,ZOt,r8,JOt,Zor,XOt,Jor,QOt,VTe,$Ot,WTe,Xor,Qor,$or,ear,tar,nar,rar,iar,Hxt,sar,oar,car,uar,lar,dar,far,ePt,par,har,tPt,mar,Sar,bar,Ear,_ar,Tar,Rar,Aar,$u,rPt,iPt,sPt,war,kar,Iar,xar,Oar,i8,Par,Nar,Car,Mar,Dar,Lar,Uar,hTe,Far,li,KTe,Gi,jar,Har,qar,Bar,zar,Gar,Var,War,Kar,Yar,Zar,Jar,Xar,Qar,$ar,ecr,tcr,ncr,rcr,icr,ocr,acr,ucr,aPt,lcr,dcr,fcr,pcr,hcr,mcr,cPt,uPt,gcr,ycr,Scr,bcr,Ecr,_cr,Tcr,vcr,Rcr,Acr,wcr,kcr,Icr,xcr,Ocr,Pcr,Ncr,j5,IU,q5,kur,Iur,pPt,hPt,gPt,SPt,EPt,TPt,HNi,s8,Pur,Nur,Cur,Mur,ss,vPt,Dur,os,Lur,tOt,k5,Uur,Fur,jur,Hur,qur,Bur,zur,Gur,Vur,Wur,Kur,Yur,Zur,Jur,Xur,Qur,RPt,$ur,elr,tlr,nlr,rlr,slr,wPt,kPt,olr,alr,clr,gTe,ulr,llr,OPt,dlr,flr,hlr,PPt,ylr,blr,Elr,NPt,MPt,wlr,Jg,o8,om,DPt,LPt,klr,ZTe,Ilr,el,ja,nR,Xd,Ac,a8,UPt,iOt,FPt,xlr,jPt,I5,Ft,HPt,Olr,qNi,JTe,Plr,XTe,Nlr,YU,Xx,qPt,Clr,Mlr,Dlr,Llr,Ulr,Flr,BPt,jlr,Hlr,zPt,QTe,qlr,Blr,$Te,zlr,ZU,JU,XU,c8,Glr,B5,eve,tve,nve,rve,ive,Vlr,Wlr,GPt,VPt,sve,WPt,nO,KPt,Klr,STe,Ylr,bTe,Zlr,ove,Jlr,ETe,Xlr,Qlr,$lr,edr,tdr,ndr,rdr,idr,sdr,odr,_Te,adr,cdr,TTe,ave,cve,uve,udr,ldr,ddr,lve,fdr,pdr,hdr,mdr,gdr,YPt,vTe,ydr,dve,BNi,Sdr,z5,bdr,G5,Edr,ZPt,_dr,Tdr,vdr,Rdr,Adr,wdr,kdr,V5,Idr,xdr,Odr,JPt,XPt,Pdr,Ndr,Cdr,Mdr,Ddr,Ldr,Udr,Fdr,jdr,Hdr,qdr,Bdr,zdr,Gdr,Vdr,Wdr,Kdr,Ydr,RTe,Zdr,Jdr,Xdr,ATe,efr,tfr,nfr,QPt,rfr,zNi,GNi,VNi,WNi,KNi,YNi,Et,wTe,ifr,sOt,sfr,ofr,eNt,lfr,dfr,mfr,eTe,pp,Sfr,W5,aOt,Ofr,Pfr,Ufr,Ffr,jfr,Hfr,qfr,zfr,kTe,Vfr,Wfr,ITe,xTe,OTe,sNt,fOt,Qfr,PTe,NTe,tpr,AU,cNt=v(()=>{_nr=Object.create,Tnr=Object.getPrototypeOf,nTe=Object.defineProperty,vnr=Object.getOwnPropertyNames,Rnr=Object.prototype.hasOwnProperty,gOt=(e,t,n)=>{n=e!=null?_nr(Tnr(e)):{};let r=t||!e||!e.__esModule?nTe(n,"default",{value:e,enumerable:!0}):n;for(let i of vnr(e))Rnr.call(r,i)||nTe(r,i,{get:()=>e[i],enumerable:!0});return r},Xe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),yOt=(e,t)=>{for(var n in t)nTe(e,n,{get:t[n],enumerable:!0,configurable:!0,set:r=>t[n]=()=>r})},Anr=Symbol.dispose||Symbol.for("Symbol.dispose"),wnr=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),knr=(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[wnr]),r===void 0&&(r=t[Anr]),typeof r!="function")throw TypeError("Object not disposable");e.push([n,r,t])}else n&&e.push([n]);return t},Inr=(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()},x5=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=x5();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=x5(),n=Axt(),r=x5();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=Axt();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,j){return this}}class o extends s{constructor(M,j,H){super(),this.varKind=M,this.name=j,this.rhs=H}render({es5:M,_n:j}){let H=M?n.varKinds.var:this.varKind,K=this.rhs===void 0?"":` = ${this.rhs}`;return`${H} ${this.name}${K};`+j}optimizeNames(M,j){if(M[this.name.str])return this.rhs&&(this.rhs=L(this.rhs,M,j)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class a extends s{constructor(M,j,H){super(),this.lhs=M,this.rhs=j,this.sideEffects=H}render({_n:M}){return`${this.lhs} = ${this.rhs};`+M}optimizeNames(M,j){if(!(this.lhs instanceof t.Name&&!M[this.lhs.str]&&!this.sideEffects))return this.rhs=L(this.rhs,M,j),this}get names(){let M=this.lhs instanceof t.Name?{}:{...this.lhs.names};return C(M,this.rhs)}}class c extends a{constructor(M,j,H,K){super(M,H,K),this.op=j}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,j){return this.code=L(this.code,M,j),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((j,H)=>j+H.render(M),"")}optimizeNodes(){let{nodes:M}=this,j=M.length;for(;j--;){let H=M[j].optimizeNodes();Array.isArray(H)?M.splice(j,1,...H):H?M[j]=H:M.splice(j,1)}return M.length>0?this:void 0}optimizeNames(M,j){let{nodes:H}=this,K=H.length;for(;K--;){let ee=H[K];ee.optimizeNames(M,j)||(G(M,ee.names),H.splice(K,1))}return H.length>0?this:void 0}get names(){return this.nodes.reduce((M,j)=>N(M,j.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,j){super(j),this.condition=M}render(M){let j=`if(${this.condition})`+super.render(M);return this.else&&(j+="else "+this.else.render(M)),j}optimizeNodes(){super.optimizeNodes();let M=this.condition;if(M===!0)return this.nodes;let j=this.else;if(j){let H=j.optimizeNodes();j=this.else=Array.isArray(H)?new g(H):H}if(j)return M===!1?j instanceof y?j:j.nodes:this.nodes.length?this:new y(W(M),j instanceof y?[j]:j.nodes);if(!(M===!1||!this.nodes.length))return this}optimizeNames(M,j){var H;if(this.else=(H=this.else)===null||H===void 0?void 0:H.optimizeNames(M,j),!!(super.optimizeNames(M,j)||this.else))return this.condition=L(this.condition,M,j),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,j){if(super.optimizeNames(M,j))return this.iteration=L(this.iteration,M,j),this}get names(){return N(super.names,this.iteration.names)}}class E extends b{constructor(M,j,H,K){super(),this.varKind=M,this.name=j,this.from=H,this.to=K}render(M){let j=M.es5?n.varKinds.var:this.varKind,{name:H,from:K,to:ee}=this;return`for(${j} ${H}=${K}; ${H}<${ee}; ${H}++)`+super.render(M)}get names(){let M=C(super.names,this.from);return C(M,this.to)}}class _ extends b{constructor(M,j,H,K){super(),this.loop=M,this.varKind=j,this.name=H,this.iterable=K}render(M){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(M)}optimizeNames(M,j){if(super.optimizeNames(M,j))return this.iterable=L(this.iterable,M,j),this}get names(){return N(super.names,this.iterable.names)}}class T extends h{constructor(M,j,H){super(),this.name=M,this.args=j,this.async=H}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 j="try"+super.render(M);return this.catch&&(j+=this.catch.render(M)),this.finally&&(j+=this.finally.render(M)),j}optimizeNodes(){var M,j;return super.optimizeNodes(),(M=this.catch)===null||M===void 0||M.optimizeNodes(),(j=this.finally)===null||j===void 0||j.optimizeNodes(),this}optimizeNames(M,j){var H,K;return super.optimizeNames(M,j),(H=this.catch)===null||H===void 0||H.optimizeNames(M,j),(K=this.finally)===null||K===void 0||K.optimizeNames(M,j),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,j={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...j,_n:j.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,j){let H=this._extScope.value(M,j);return(this._values[H.prefix]||(this._values[H.prefix]=new Set)).add(H),H}getScopeValue(M,j){return this._extScope.getValue(M,j)}scopeRefs(M){return this._extScope.scopeRefs(M,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(M,j,H,K){let ee=this._scope.toName(j);return H!==void 0&&K&&(this._constants[ee.str]=H),this._leafNode(new o(M,ee,H)),ee}const(M,j,H){return this._def(n.varKinds.const,M,j,H)}let(M,j,H){return this._def(n.varKinds.let,M,j,H)}var(M,j,H){return this._def(n.varKinds.var,M,j,H)}assign(M,j,H){return this._leafNode(new a(M,j,H))}add(M,j){return this._leafNode(new c(M,e.operators.ADD,j))}code(M){return typeof M=="function"?M():M!==t.nil&&this._leafNode(new f(M)),this}object(...M){let j=["{"];for(let[H,K]of M)j.length>1&&j.push(","),j.push(H),(H!==K||this.opts.es5)&&(j.push(":"),(0,t.addCodeArg)(j,K));return j.push("}"),new t._Code(j)}if(M,j,H){if(this._blockNode(new y(M)),j&&H)this.code(j).else().code(H).endIf();else if(j)this.code(j).endIf();else if(H)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,j){return this._blockNode(M),j&&this.code(j).endFor(),this}for(M,j){return this._for(new S(M),j)}forRange(M,j,H,K,ee=this.opts.es5?n.varKinds.var:n.varKinds.let){let se=this._scope.toName(M);return this._for(new E(ee,se,j,H),()=>K(se))}forOf(M,j,H,K=n.varKinds.const){let ee=this._scope.toName(M);if(this.opts.es5){let se=j instanceof t.Name?j:this.var("_arr",j);return this.forRange("_i",0,(0,t._)`${se}.length`,Le=>{this.var(ee,(0,t._)`${se}[${Le}]`),H(ee)})}return this._for(new _("of",K,ee,j),()=>H(ee))}forIn(M,j,H,K=this.opts.es5?n.varKinds.var:n.varKinds.const){if(this.opts.ownProperties)return this.forOf(M,(0,t._)`Object.keys(${j})`,H);let ee=this._scope.toName(M);return this._for(new _("in",K,ee,j),()=>H(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 j=new R;if(this._blockNode(j),this.code(M),j.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(R)}try(M,j,H){if(!j&&!H)throw new Error('CodeGen: "try" without "catch" and "finally"');let K=new A;if(this._blockNode(K),this.code(M),j){let ee=this.name("e");this._currNode=K.catch=new x(ee),j(ee)}return H&&(this._currNode=K.finally=new k,this.code(H)),this._endBlockNode(x,k)}throw(M){return this._leafNode(new d(M))}block(M,j){return this._blockStarts.push(this._nodes.length),M&&this.code(M).endBlock(j),this}endBlock(M){let j=this._blockStarts.pop();if(j===void 0)throw new Error("CodeGen: not in self-balancing block");let H=this._nodes.length-j;if(H<0||M!==void 0&&H!==M)throw new Error(`CodeGen: wrong number of nodes: ${H} vs ${M} expected`);return this._nodes.length=j,this}func(M,j=t.nil,H,K){return this._blockNode(new T(M,j,H)),K&&this.code(K).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,j){let H=this._currNode;if(H instanceof M||j&&H instanceof j)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${j?`${M.kind}/${j.kind}`:M.kind}"`)}_elseNode(M){let j=this._currNode;if(!(j instanceof y))throw new Error('CodeGen: "else" without "if"');return this._currNode=j.else=M,this}get _root(){return this._nodes[0]}get _currNode(){let M=this._nodes;return M[M.length-1]}set _currNode(M){let j=this._nodes;j[j.length-1]=M}}e.CodeGen=P;function N(U,M){for(let j in M)U[j]=(U[j]||0)+(M[j]||0);return U}function C(U,M){return M instanceof t._CodeOrName?N(U,M.names):U}function L(U,M,j){if(U instanceof t.Name)return H(U);if(!K(U))return U;return new t._Code(U._items.reduce((ee,se)=>(se instanceof t.Name&&(se=H(se)),se instanceof t._Code?ee.push(...se._items):ee.push(se),ee),[]));function H(ee){let se=j[ee.str];return se===void 0||M[ee.str]!==1?ee:(delete M[ee.str],se)}function K(ee){return ee instanceof t._Code&&ee._items.some(se=>se instanceof t.Name&&M[se.str]===1&&j[se.str]!==void 0)}}function G(U,M){for(let j in M)U[j]=(U[j]||0)-(M[j]||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,j)=>M===t.nil?j:j===t.nil?M:(0,t._)`${V(M)} ${U} ${V(j)}`}function V(U){return U instanceof t.Name?U:(0,t._)`(${U})`}}),lr=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=x5();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=_}),aE=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}),K5=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=lr(),r=aE();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])}}),xnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.boolOrEmptySchema=e.topBoolOrEmptySchema=void 0;var t=K5(),n=_n(),r=aE(),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)}}),SOt=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}),bOt=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}),O5=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=SOt(),n=bOt(),r=K5(),i=_n(),s=lr(),o;(function(S){S[S.Correct=0]="Correct",S[S.Wrong=1]="Wrong"})(o||(e.DataType=o={}));function a(S){let E=c(S.type);if(E.includes("null")){if(S.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!E.length&&S.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');S.nullable===!0&&E.push("null")}return E}e.getSchemaTypes=a;function c(S){let E=Array.isArray(S)?S:S?[S]:[];if(E.every(t.isJSONType))return E;throw new Error("type must be JSONType or JSONType[]: "+E.join(","))}e.getJSONTypes=c;function u(S,E){let{gen:_,data:T,opts:R}=S,A=d(E,R.coerceTypes),x=E.length>0&&!(A.length===0&&E.length===1&&(0,n.schemaHasRulesForType)(S,E[0]));if(x){let k=m(E,T,R.strictNumbers,o.Wrong);_.if(k,()=>{A.length?f(S,E,A):y(S)})}return x}e.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(S,E){return E?S.filter(_=>l.has(_)||E==="array"&&_==="array"):[]}function f(S,E,_){let{gen:T,data:R,opts:A}=S,x=T.let("dataType",(0,i._)`typeof ${R}`),k=T.let("coerced",(0,i._)`undefined`);A.coerceTypes==="array"&&T.if((0,i._)`${x} == 'object' && Array.isArray(${R}) && ${R}.length == 1`,()=>T.assign(R,(0,i._)`${R}[0]`).assign(x,(0,i._)`typeof ${R}`).if(m(E,R,A.strictNumbers),()=>T.assign(k,R))),T.if((0,i._)`${k} !== undefined`);for(let N of _)(l.has(N)||N==="array"&&A.coerceTypes==="array")&&P(N);T.else(),y(S),T.endIf(),T.if((0,i._)`${k} !== undefined`,()=>{T.assign(R,k),p(S,k)});function P(N){switch(N){case"string":T.elseIf((0,i._)`${x} == "number" || ${x} == "boolean"`).assign(k,(0,i._)`"" + ${R}`).elseIf((0,i._)`${R} === null`).assign(k,(0,i._)`""`);return;case"number":T.elseIf((0,i._)`${x} == "boolean" || ${R} === null +]`;continue}i+=r[c],r[c]==="\\"?s=!0:o&&r[c]==="]"?o=!1:!o&&r[c]==="["&&(o=!0)}try{new RegExp(i)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return i}function sNt(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}=iNt(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}=nNt(e.keyType._def,t);return{...n,propertyNames:i}}}return n}function _fr(e,t){if(t.mapStrategy==="record")return sNt(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 Tfr(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 vfr(e){return e.target==="openAi"?void 0:{not:Qu({...e,currentPath:[...e.currentPath,"not"]})}}function Rfr(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}function Afr(e,t){if(t.target==="openApi3")return cOt(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(r=>r._def.typeName in W5&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((i,s)=>{let o=W5[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 cOt(e,t)}function wfr(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:W5[e.innerType._def.typeName],nullable:!0}:{type:[W5[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 kfr(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",eNt(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 Ifr(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=Ofr(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=xfr(e,t);return o!==void 0&&(r.additionalProperties=o),r}function xfr(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 Ofr(e){try{return e.isOptional()}catch{return!0}}function Cfr(e,t){return Er(e.type._def,t)}function Mfr(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 Dfr(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 Lfr(e){return{not:Qu(e)}}function Ufr(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!==sfr)return a}if(r&&!n){let a=Hfr(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=jfr(e,e.typeName,t),o=typeof s=="function"?Er(s(),t):s;if(o&&qfr(e,t,o),t.postProcess){let a=t.postProcess(o,e,t);return i.jsonSchema=o,a}return i.jsonSchema=o,o}function zfr(e){return!e||e==="jsonSchema7"||e==="draft-7"?"draft-7":e==="jsonSchema2019-09"||e==="draft-2020-12"?"draft-2020-12":"draft-7"}function uOt(e,t){var n,r,i;return yp(e)?kur(e,{target:zfr(t?.target),io:(n=t?.pipeStrategy)!==null&&n!==void 0?n:"input"}):Bfr(e,{strictUnions:(r=t?.strictUnions)!==null&&r!==void 0?r:!0,pipeStrategy:(i=t?.pipeStrategy)!==null&&i!==void 0?i:"input"})}function lOt(e){let t=KU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=pPt(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function dOt(e,t){let n=OU(e,t);if(!n.success)throw n.error;return n.data}function fOt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Vfr(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];fOt(o)&&fOt(s)?n[i]={...o,...s}:n[i]=s}return n}function Yfr(){let e=new Wfr.Ajv({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0}),t=Kfr.default;return t(e),e}function Zfr(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 Jfr(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 Xfr(e){return!!e&&typeof e=="object"&&oNt in e}function Qfr(e){let t=e[oNt];return t?.complete}function epr(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"),!$fr.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 tpr(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 hOt(e){let t=epr(e);return tpr(e,t.warnings),t.isValid}function aNt(e){return e!==null&&typeof e=="object"&&"parse"in e&&typeof e.parse=="function"&&"safeParse"in e&&typeof e.safeParse=="function"}function rpr(e){return"_def"in e||"_zod"in e||aNt(e)}function DTe(e){return typeof e!="object"||e===null||rpr(e)?!1:Object.keys(e).length===0?!0:Object.values(e).some(aNt)}function mOt(e){if(e)return DTe(e)?xU(e):e}function ipr(e){let t=KU(e);return t?Object.entries(t).map(([n,r])=>{let i=Our(r),s=Pur(r);return{name:n,description:i,required:!s}}):[]}function tE(e){let t=KU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=pPt(n);if(typeof r=="string")return r;throw new Error("Schema method literal must be a string")}function gOt(e){return{completion:{values:e.slice(0,100),total:e.length,hasMore:e.length>100}}}function spr(e,t,n,r){return{name:e,description:t,inputSchema:n,handler:r}}function opr(e){let t=new MTe({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 apr({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 de=krr(import.meta.url),_e=kxt(de,"..");c=kxt(_e,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.77";let{abortController:u=jTe(),additionalDirectories:l=[],agents:d,allowedTools:f=[],betas:p,canUseTool:h,continue:m,cwd:g,disallowedTools:y=[],tools:b,env:S,executable:E=BTe()?"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:j,strictMcpConfig:H}=s,K=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[de,_e]of Object.entries(W))_e.type==="sdk"&&"instance"in _e?(Le.set(de,_e.instance),se[de]={type:"sdk",name:de}):se[de]=_e;let Ae=typeof e=="string",z=new N5({abortController:u,additionalDirectories:l,betas:p,cwd:g,executable:E,executableArgs:_,extraArgs:T,pathToClaudeCodeExecutable:c,env:ee,forkSession:x,stderr:j,maxThinkingTokens:C,maxTurns:L,maxBudgetUsd:G,model:$,fallbackModel:R,jsonSchema:K,permissionMode:Q,allowDangerouslySkipPermissions:B,permissionPromptToolName:F,continueConversation:m,resume:U,resumeSessionAt:M,settingSources:r??[],allowedTools:f,disallowedTools:y,tools:b,mcpServers:se,strictMcpConfig:H,canUseTool:!!h,hooks:!!k,includePartialMessages:P,persistSession:N,plugins:V,sandbox:i,spawnClaudeCodeProcess:s.spawnClaudeCodeProcess}),J={systemPrompt:o,appendSystemPrompt:a,agents:d},oe=new M5(z,Ae,h,k,u,Le,K,J);return typeof e=="string"?z.write(sm({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:e}]},parent_tool_use_id:null})+` +`):oe.streamInput(e),oe}function cpr(e){return FOt(e)}function upr(e,t){return eor(e,t)}async function lpr(e,t){let n=[];try{let o=Inr(n,FOt(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=xnr(n,r,i);s&&await s}}var Tnr,vnr,iTe,Rnr,Anr,yOt,Xe,SOt,wnr,knr,Inr,xnr,x5,wxt,_n,lr,aE,K5,Onr,bOt,EOt,O5,Pnr,bp,Nnr,Cnr,_Ot,Mnr,Y5,Z5,LTe,J5,UTe,Dnr,Lnr,Unr,Fnr,jnr,Hnr,qnr,Bnr,znr,Gnr,Vnr,Wnr,Knr,Ynr,Znr,Jnr,Xnr,Qnr,FTe,$nr,err,trr,nrr,TOt,vOt,rrr,irr,srr,orr,arr,ROt,crr,urr,lrr,drr,frr,prr,hrr,mrr,grr,yrr,Srr,brr,Err,_rr,Trr,vrr,AOt,Rrr,Arr,wrr,xrr,Crr,Mrr,Drr,Lrr,HTe,Urr,P5,wOt,Frr,jrr,vU,qrr,Brr,zrr,Vrr,Wrr,Krr,Ixt,Zrr,kOt,Xrr,Qrr,$rr,eir,nir,rir,Z_e,xxt,sir,oir,air,uir,lir,dir,fir,pir,hir,mir,gir,Sir,Eir,IOt,Tir,PU,Rir,wir,kir,Iir,xir,Pir,Nir,Cir,Dir,Lir,Fir,Oxt,Hir,Bir,X5,Gir,Vir,Kir,Zir,Xir,$ir,esr,tsr,nsr,isr,osr,Q5,usr,dsr,psr,msr,xOt,gsr,VU,Pxt,Ssr,J_e,v5,ksr,$Pi,Isr,Osr,Cxt,COt,DOt,Dsr,Lsr,LOt,Fsr,R5,Hsr,qsr,Bsr,zsr,Gsr,rE,A5,Dxt,N5,C5,oTe,M5,D5,ir,Uxt,nt,nE,Oe,Zd,tor,NU,nor,cTe,iu,Vt,wU,Xu,Fxt,jxt,Fx,L5,lt,Jd,Hxt,Tn,ror,ior,sor,oor,aor,cor,uor,lor,dor,X_e,por,hor,mor,gor,yor,Sor,jOt,bor,jx,CU,MU,DU,LU,UU,Hx,qx,FU,sE,am,jU,oE,jl,Bx,Yg,uTe,zx,Qg,dTe,HU,qU,fTe,Gx,Vx,Wx,Kx,eR,gp,mp,$g,Yx,Zx,BU,U5,F5,Jx,oNi,De,aNi,cNi,uNi,lNi,dNi,fNi,pNi,hNi,mNi,gNi,yNi,SNi,bNi,ENi,wor,_Ni,TNi,vNi,RNi,ANi,wNi,kNi,INi,xNi,ONi,PNi,NNi,CNi,MNi,DNi,LNi,UNi,FNi,jNi,HNi,tR,pTe,Gr,VTe,GOt,Lor,VOt,Uor,KOt,jor,mTe,ZOt,JOt,r8,XOt,Jor,QOt,Xor,$Ot,KTe,ePt,YTe,Qor,$or,ear,tar,nar,rar,iar,sar,qxt,oar,aar,uar,lar,dar,far,par,tPt,har,mar,nPt,gar,bar,Ear,_ar,Tar,Rar,Aar,war,$u,iPt,sPt,oPt,kar,Iar,xar,Oar,Par,i8,Nar,Car,Mar,Dar,Lar,Uar,Far,gTe,jar,li,ZTe,Vi,Har,qar,Bar,zar,Gar,Var,War,Kar,Yar,Zar,Jar,Xar,Qar,$ar,ecr,tcr,ncr,rcr,icr,scr,acr,ccr,lcr,cPt,dcr,fcr,pcr,hcr,mcr,gcr,uPt,lPt,ycr,Scr,bcr,Ecr,_cr,Tcr,vcr,Rcr,Acr,wcr,kcr,Icr,xcr,Ocr,Pcr,Ncr,Ccr,j5,IU,q5,Iur,xur,hPt,mPt,yPt,bPt,_Pt,vPt,qNi,s8,Nur,Cur,Mur,Dur,ss,RPt,Lur,os,Uur,nOt,k5,Fur,jur,Hur,qur,Bur,zur,Gur,Vur,Wur,Kur,Yur,Zur,Jur,Xur,Qur,$ur,APt,elr,tlr,nlr,rlr,ilr,olr,kPt,IPt,alr,clr,ulr,STe,llr,dlr,PPt,flr,plr,mlr,NPt,Slr,Elr,_lr,CPt,DPt,klr,Jg,o8,om,LPt,UPt,Ilr,XTe,xlr,el,ja,nR,Xd,Ac,a8,FPt,sOt,jPt,Olr,HPt,I5,Ft,qPt,Plr,BNi,QTe,Nlr,$Te,Clr,YU,Xx,BPt,Mlr,Dlr,Llr,Ulr,Flr,jlr,zPt,Hlr,qlr,GPt,eve,Blr,zlr,tve,Glr,ZU,JU,XU,c8,Vlr,B5,nve,rve,ive,sve,ove,Wlr,Klr,VPt,WPt,ave,KPt,nO,YPt,Ylr,ETe,Zlr,_Te,Jlr,cve,Xlr,TTe,Qlr,$lr,edr,tdr,ndr,rdr,idr,sdr,odr,adr,vTe,cdr,udr,RTe,uve,lve,dve,ldr,ddr,fdr,fve,pdr,hdr,mdr,gdr,ydr,ZPt,ATe,Sdr,pve,zNi,bdr,z5,Edr,G5,_dr,JPt,Tdr,vdr,Rdr,Adr,wdr,kdr,Idr,V5,xdr,Odr,Pdr,XPt,QPt,Ndr,Cdr,Mdr,Ddr,Ldr,Udr,Fdr,jdr,Hdr,qdr,Bdr,zdr,Gdr,Vdr,Wdr,Kdr,Ydr,Zdr,wTe,Jdr,Xdr,Qdr,kTe,tfr,nfr,rfr,$Pt,ifr,GNi,VNi,WNi,KNi,YNi,ZNi,Et,ITe,sfr,oOt,ofr,afr,tNt,dfr,ffr,gfr,nTe,pp,bfr,W5,cOt,Pfr,Nfr,Ffr,jfr,Hfr,qfr,Bfr,Gfr,xTe,Wfr,Kfr,OTe,PTe,NTe,oNt,pOt,$fr,CTe,MTe,npr,AU,uNt=v(()=>{Tnr=Object.create,vnr=Object.getPrototypeOf,iTe=Object.defineProperty,Rnr=Object.getOwnPropertyNames,Anr=Object.prototype.hasOwnProperty,yOt=(e,t,n)=>{n=e!=null?Tnr(vnr(e)):{};let r=t||!e||!e.__esModule?iTe(n,"default",{value:e,enumerable:!0}):n;for(let i of Rnr(e))Anr.call(r,i)||iTe(r,i,{get:()=>e[i],enumerable:!0});return r},Xe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),SOt=(e,t)=>{for(var n in t)iTe(e,n,{get:t[n],enumerable:!0,configurable:!0,set:r=>t[n]=()=>r})},wnr=Symbol.dispose||Symbol.for("Symbol.dispose"),knr=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),Inr=(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[knr]),r===void 0&&(r=t[wnr]),typeof r!="function")throw TypeError("Object not disposable");e.push([n,r,t])}else n&&e.push([n]);return t},xnr=(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()},x5=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=x5();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=x5(),n=wxt(),r=x5();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=wxt();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,j){return this}}class o extends s{constructor(M,j,H){super(),this.varKind=M,this.name=j,this.rhs=H}render({es5:M,_n:j}){let H=M?n.varKinds.var:this.varKind,K=this.rhs===void 0?"":` = ${this.rhs}`;return`${H} ${this.name}${K};`+j}optimizeNames(M,j){if(M[this.name.str])return this.rhs&&(this.rhs=L(this.rhs,M,j)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class a extends s{constructor(M,j,H){super(),this.lhs=M,this.rhs=j,this.sideEffects=H}render({_n:M}){return`${this.lhs} = ${this.rhs};`+M}optimizeNames(M,j){if(!(this.lhs instanceof t.Name&&!M[this.lhs.str]&&!this.sideEffects))return this.rhs=L(this.rhs,M,j),this}get names(){let M=this.lhs instanceof t.Name?{}:{...this.lhs.names};return C(M,this.rhs)}}class c extends a{constructor(M,j,H,K){super(M,H,K),this.op=j}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,j){return this.code=L(this.code,M,j),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((j,H)=>j+H.render(M),"")}optimizeNodes(){let{nodes:M}=this,j=M.length;for(;j--;){let H=M[j].optimizeNodes();Array.isArray(H)?M.splice(j,1,...H):H?M[j]=H:M.splice(j,1)}return M.length>0?this:void 0}optimizeNames(M,j){let{nodes:H}=this,K=H.length;for(;K--;){let ee=H[K];ee.optimizeNames(M,j)||(G(M,ee.names),H.splice(K,1))}return H.length>0?this:void 0}get names(){return this.nodes.reduce((M,j)=>N(M,j.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,j){super(j),this.condition=M}render(M){let j=`if(${this.condition})`+super.render(M);return this.else&&(j+="else "+this.else.render(M)),j}optimizeNodes(){super.optimizeNodes();let M=this.condition;if(M===!0)return this.nodes;let j=this.else;if(j){let H=j.optimizeNodes();j=this.else=Array.isArray(H)?new g(H):H}if(j)return M===!1?j instanceof y?j:j.nodes:this.nodes.length?this:new y(W(M),j instanceof y?[j]:j.nodes);if(!(M===!1||!this.nodes.length))return this}optimizeNames(M,j){var H;if(this.else=(H=this.else)===null||H===void 0?void 0:H.optimizeNames(M,j),!!(super.optimizeNames(M,j)||this.else))return this.condition=L(this.condition,M,j),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,j){if(super.optimizeNames(M,j))return this.iteration=L(this.iteration,M,j),this}get names(){return N(super.names,this.iteration.names)}}class E extends b{constructor(M,j,H,K){super(),this.varKind=M,this.name=j,this.from=H,this.to=K}render(M){let j=M.es5?n.varKinds.var:this.varKind,{name:H,from:K,to:ee}=this;return`for(${j} ${H}=${K}; ${H}<${ee}; ${H}++)`+super.render(M)}get names(){let M=C(super.names,this.from);return C(M,this.to)}}class _ extends b{constructor(M,j,H,K){super(),this.loop=M,this.varKind=j,this.name=H,this.iterable=K}render(M){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(M)}optimizeNames(M,j){if(super.optimizeNames(M,j))return this.iterable=L(this.iterable,M,j),this}get names(){return N(super.names,this.iterable.names)}}class T extends h{constructor(M,j,H){super(),this.name=M,this.args=j,this.async=H}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 j="try"+super.render(M);return this.catch&&(j+=this.catch.render(M)),this.finally&&(j+=this.finally.render(M)),j}optimizeNodes(){var M,j;return super.optimizeNodes(),(M=this.catch)===null||M===void 0||M.optimizeNodes(),(j=this.finally)===null||j===void 0||j.optimizeNodes(),this}optimizeNames(M,j){var H,K;return super.optimizeNames(M,j),(H=this.catch)===null||H===void 0||H.optimizeNames(M,j),(K=this.finally)===null||K===void 0||K.optimizeNames(M,j),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,j={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...j,_n:j.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,j){let H=this._extScope.value(M,j);return(this._values[H.prefix]||(this._values[H.prefix]=new Set)).add(H),H}getScopeValue(M,j){return this._extScope.getValue(M,j)}scopeRefs(M){return this._extScope.scopeRefs(M,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(M,j,H,K){let ee=this._scope.toName(j);return H!==void 0&&K&&(this._constants[ee.str]=H),this._leafNode(new o(M,ee,H)),ee}const(M,j,H){return this._def(n.varKinds.const,M,j,H)}let(M,j,H){return this._def(n.varKinds.let,M,j,H)}var(M,j,H){return this._def(n.varKinds.var,M,j,H)}assign(M,j,H){return this._leafNode(new a(M,j,H))}add(M,j){return this._leafNode(new c(M,e.operators.ADD,j))}code(M){return typeof M=="function"?M():M!==t.nil&&this._leafNode(new f(M)),this}object(...M){let j=["{"];for(let[H,K]of M)j.length>1&&j.push(","),j.push(H),(H!==K||this.opts.es5)&&(j.push(":"),(0,t.addCodeArg)(j,K));return j.push("}"),new t._Code(j)}if(M,j,H){if(this._blockNode(new y(M)),j&&H)this.code(j).else().code(H).endIf();else if(j)this.code(j).endIf();else if(H)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,j){return this._blockNode(M),j&&this.code(j).endFor(),this}for(M,j){return this._for(new S(M),j)}forRange(M,j,H,K,ee=this.opts.es5?n.varKinds.var:n.varKinds.let){let se=this._scope.toName(M);return this._for(new E(ee,se,j,H),()=>K(se))}forOf(M,j,H,K=n.varKinds.const){let ee=this._scope.toName(M);if(this.opts.es5){let se=j instanceof t.Name?j:this.var("_arr",j);return this.forRange("_i",0,(0,t._)`${se}.length`,Le=>{this.var(ee,(0,t._)`${se}[${Le}]`),H(ee)})}return this._for(new _("of",K,ee,j),()=>H(ee))}forIn(M,j,H,K=this.opts.es5?n.varKinds.var:n.varKinds.const){if(this.opts.ownProperties)return this.forOf(M,(0,t._)`Object.keys(${j})`,H);let ee=this._scope.toName(M);return this._for(new _("in",K,ee,j),()=>H(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 j=new R;if(this._blockNode(j),this.code(M),j.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(R)}try(M,j,H){if(!j&&!H)throw new Error('CodeGen: "try" without "catch" and "finally"');let K=new A;if(this._blockNode(K),this.code(M),j){let ee=this.name("e");this._currNode=K.catch=new x(ee),j(ee)}return H&&(this._currNode=K.finally=new k,this.code(H)),this._endBlockNode(x,k)}throw(M){return this._leafNode(new d(M))}block(M,j){return this._blockStarts.push(this._nodes.length),M&&this.code(M).endBlock(j),this}endBlock(M){let j=this._blockStarts.pop();if(j===void 0)throw new Error("CodeGen: not in self-balancing block");let H=this._nodes.length-j;if(H<0||M!==void 0&&H!==M)throw new Error(`CodeGen: wrong number of nodes: ${H} vs ${M} expected`);return this._nodes.length=j,this}func(M,j=t.nil,H,K){return this._blockNode(new T(M,j,H)),K&&this.code(K).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,j){let H=this._currNode;if(H instanceof M||j&&H instanceof j)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${j?`${M.kind}/${j.kind}`:M.kind}"`)}_elseNode(M){let j=this._currNode;if(!(j instanceof y))throw new Error('CodeGen: "else" without "if"');return this._currNode=j.else=M,this}get _root(){return this._nodes[0]}get _currNode(){let M=this._nodes;return M[M.length-1]}set _currNode(M){let j=this._nodes;j[j.length-1]=M}}e.CodeGen=P;function N(U,M){for(let j in M)U[j]=(U[j]||0)+(M[j]||0);return U}function C(U,M){return M instanceof t._CodeOrName?N(U,M.names):U}function L(U,M,j){if(U instanceof t.Name)return H(U);if(!K(U))return U;return new t._Code(U._items.reduce((ee,se)=>(se instanceof t.Name&&(se=H(se)),se instanceof t._Code?ee.push(...se._items):ee.push(se),ee),[]));function H(ee){let se=j[ee.str];return se===void 0||M[ee.str]!==1?ee:(delete M[ee.str],se)}function K(ee){return ee instanceof t._Code&&ee._items.some(se=>se instanceof t.Name&&M[se.str]===1&&j[se.str]!==void 0)}}function G(U,M){for(let j in M)U[j]=(U[j]||0)-(M[j]||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,j)=>M===t.nil?j:j===t.nil?M:(0,t._)`${V(M)} ${U} ${V(j)}`}function V(U){return U instanceof t.Name?U:(0,t._)`(${U})`}}),lr=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=x5();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=_}),aE=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}),K5=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=lr(),r=aE();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])}}),Onr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.boolOrEmptySchema=e.topBoolOrEmptySchema=void 0;var t=K5(),n=_n(),r=aE(),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)}}),bOt=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}),EOt=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}),O5=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=bOt(),n=EOt(),r=K5(),i=_n(),s=lr(),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}}}),Onr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.assignDefaults=void 0;var t=_n(),n=lr();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=lr(),r=aE(),i=lr();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}),Pnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateKeywordUsage=e.validSchemaType=e.funcKeywordCode=e.macroKeywordCode=void 0;var t=_n(),n=aE(),r=bp(),i=K5();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}),Nnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendSubschemaMode=e.extendSubschemaData=e.getSubschema=void 0;var t=_n(),n=lr();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}),EOt=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}}),Cnr=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=lr(),n=EOt(),r=Cnr(),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}),Z5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getData=e.KeywordCxt=e.validateFunctionCode=void 0;var t=xnr(),n=O5(),r=bOt(),i=O5(),s=Onr(),o=Pnr(),a=Nnr(),c=_n(),u=aE(),l=Y5(),d=lr(),f=K5();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:de,opts:_e},kt){_e.code.es5?z.func(J,(0,c._)`${u.default.data}, ${u.default.valCxt}`,de.$async,()=>{z.code((0,c._)`"use strict"; ${S(oe,_e)}`),g(z,_e),z.code(kt)}):z.func(J,(0,c._)`${u.default.data}, ${m(_e)}`,de.$async,()=>z.code(S(oe,_e)).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:de}=z;h(z,()=>{oe.$comment&&J.$comment&&L(z),P(z),de.let(u.default.vErrors,null),de.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:de,opts:_e}=z;_e.$comment&&oe.$comment&&L(z),N(z),C(z);let kt=de.const("_errs",u.default.errors);x(z,kt),de.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),de=(0,n.coerceAndCheckDataType)(z,oe);$(z,oe,!de,J)}function k(z){let{schema:J,errSchemaPath:oe,opts:de,self:_e}=z;J.$ref&&de.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(J,_e.RULES)&&_e.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:de,opts:_e}){let kt=oe.$comment;if(_e.$comment===!0)z.code((0,c._)`${u.default.self}.logger.log(${kt})`);else if(typeof _e.$comment=="function"){let Ue=(0,c.str)`${de}/$comment`,Un=z.scopeValue("root",{ref:J.root});z.code((0,c._)`${u.default.self}.opts.$comment(${kt}, ${Ue}, ${Un}.schema)`)}}function G(z){let{gen:J,schemaEnv:oe,validateName:de,ValidationError:_e,opts:kt}=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._)`${de}.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:de}){oe instanceof c.Name&&z.assign((0,c._)`${J}.props`,oe),de instanceof c.Name&&z.assign((0,c._)`${J}.items`,de)}function $(z,J,oe,de){let{gen:_e,schema:kt,data:Ue,allErrors:Un,opts:dr,self:sn}=z,{RULES:fr}=sn;if(kt.$ref&&(dr.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(kt,fr))){_e.block(()=>ee(z,"$ref",fr.all.$ref.definition));return}dr.jtd||Q(z,J),_e.block(()=>{for(let As of fr.rules)nl(As);nl(fr.post)});function nl(As){(0,r.shouldUseGroup)(kt,As)&&(As.type?(_e.if((0,i.checkDataType)(As.type,Ue,dr.strictNumbers)),q(z,As),J.length===1&&J[0]===As.type&&oe&&(_e.else(),(0,i.reportTypeError)(z)),_e.endIf()):q(z,As),Un||_e.if((0,c._)`${u.default.errors} === ${de||0}`))}}function q(z,J){let{gen:oe,schema:de,opts:{useDefaults:_e}}=z;_e&&(0,s.assignDefaults)(z,J.type),oe.block(()=>{for(let kt of J.rules)(0,r.shouldUseRule)(de,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)||H(z,`type "${oe}" not allowed by context "${z.dataTypes.join(",")}"`)}),j(z,J)}}function F(z,J){J.length>1&&!(J.length===2&&J.includes("null"))&&H(z,"use allowUnionTypes to allow union type keyword")}function V(z,J){let oe=z.self.RULES.all;for(let de in oe){let _e=oe[de];if(typeof _e=="object"&&(0,r.shouldUseRule)(z.schema,_e)){let{type:kt}=_e.definition;kt.length&&!kt.some(Ue=>U(J,Ue))&&H(z,`missing type "${kt.join(",")}" for keyword "${de}"`)}}}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 j(z,J){let oe=[];for(let de of z.dataTypes)M(J,de)?oe.push(de):J.includes("integer")&&de==="number"&&oe.push("integer");z.dataTypes=oe}function H(z,J){let oe=z.schemaEnv.baseId+z.errSchemaPath;J+=` at "${oe}" (strictTypes)`,(0,d.checkStrictMode)(z,J,z.opts.strictTypes)}class K{constructor(J,oe,de){if((0,o.validateKeywordUsage)(J,oe,de),this.gen=J.gen,this.allErrors=J.allErrors,this.keyword=de,this.data=J.data,this.schema=J.schema[de],this.$data=oe.$data&&J.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(J,this.schema,de,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(`${de} 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,de){this.failResult((0,c.not)(J),oe,de)}failResult(J,oe,de){this.gen.if(J),de?de():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,de){if(oe){this.setParams(oe),this._error(J,de),this.setParams({});return}this._error(J,de)}_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,de=c.nil){this.gen.block(()=>{this.check$data(J,de),oe()})}check$data(J=c.nil,oe=c.nil){if(!this.$data)return;let{gen:de,schemaCode:_e,schemaType:kt,def:Ue}=this;de.if((0,c.or)((0,c._)`${_e} === undefined`,oe)),J!==c.nil&&de.assign(J,!0),(kt.length||Ue.validateSchema)&&(de.elseIf(this.invalid$data()),this.$dataError(),J!==c.nil&&de.assign(J,!1)),de.else()}invalid$data(){let{gen:J,schemaCode:oe,schemaType:de,def:_e,it:kt}=this;return(0,c.or)(Ue(),Un());function Ue(){if(de.length){if(!(oe instanceof c.Name))throw new Error("ajv implementation error");let dr=Array.isArray(de)?de:[de];return(0,c._)`${(0,i.checkDataTypes)(dr,oe,kt.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function Un(){if(_e.validateSchema){let dr=J.scopeValue("validate$data",{ref:_e.validateSchema});return(0,c._)`!${dr}(${oe})`}return c.nil}}subschema(J,oe){let de=(0,a.getSubschema)(this.it,J);(0,a.extendSubschemaData)(de,this.it,J),(0,a.extendSubschemaMode)(de,J);let _e={...this.it,...de,items:void 0,props:void 0};return E(_e,oe),_e}mergeEvaluated(J,oe){let{it:de,gen:_e}=this;de.opts.unevaluated&&(de.props!==!0&&J.props!==void 0&&(de.props=d.mergeEvaluated.props(_e,J.props,de.props,oe)),de.items!==!0&&J.items!==void 0&&(de.items=d.mergeEvaluated.items(_e,J.items,de.items,oe)))}mergeValidEvaluated(J,oe){let{it:de,gen:_e}=this;if(de.opts.unevaluated&&(de.props!==!0||de.items!==!0))return _e.if(oe,()=>this.mergeEvaluated(J,c.Name)),!0}}e.KeywordCxt=K;function ee(z,J,oe,de){let _e=new K(z,oe,J);"code"in oe?oe.code(_e,de):_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 se=/^\/(?:[^~]|~0|~1)*$/,Le=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Ae(z,{dataLevel:J,dataNames:oe,dataPathArr:de}){let _e,kt;if(z==="")return u.default.rootData;if(z[0]==="/"){if(!se.test(z))throw new Error(`Invalid JSON-pointer: ${z}`);_e=z,kt=u.default.rootData}else{let sn=Le.exec(z);if(!sn)throw new Error(`Invalid JSON-pointer: ${z}`);let fr=+sn[1];if(_e=sn[2],_e==="#"){if(fr>=J)throw new Error(dr("property/index",fr));return de[J-fr]}if(fr>J)throw new Error(dr("data",fr));if(kt=oe[J-fr],!_e)return kt}let Ue=kt,Un=_e.split("/");for(let sn of Un)sn&&(kt=(0,c._)`${kt}${(0,c.getProperty)((0,d.unescapeJsonPointer)(sn))}`,Ue=(0,c._)`${Ue} && ${kt}`);return Ue;function dr(sn,fr){return`Cannot access ${sn} ${fr} levels up, current level is ${J}`}}e.getData=Ae}),MTe=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}),J5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Y5();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}),DTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.resolveSchema=e.getCompilingSchema=e.resolveRef=e.compileSchema=e.SchemaEnv=void 0;var t=_n(),n=MTe(),r=aE(),i=Y5(),s=lr(),o=Z5();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}}),Mnr=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}}),Dnr=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}}),Lnr=Xe((e,t)=>{var{HEX:n}=Dnr(),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}),Fnr=Xe((e,t)=>{var{normalizeIPv6:n,normalizeIPv4:r,removeDotSegments:i,recomposeAuthority:s,normalizeComponentEncoding:o}=Lnr(),a=Unr();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}),jnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Fnr();t.code='require("ajv/dist/runtime/uri").default',e.default=t}),Hnr=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=Z5();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=MTe(),i=J5(),s=SOt(),o=DTe(),a=_n(),c=Y5(),u=O5(),l=lr(),d=Mnr(),f=jnr(),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,j,H,K,ee,se,Le,Ae,z,J,oe,de,_e,kt,Ue,Un,dr,sn,fr,nl,As,lE;let uy=B.strict,Ii=(F=B.code)===null||F===void 0?void 0:F.optimize,_p=Ii===!0||Ii===void 0?1:Ii||0,ly=(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:(H=(j=B.strictSchema)!==null&&j!==void 0?j:uy)!==null&&H!==void 0?H:!0,strictNumbers:(ee=(K=B.strictNumbers)!==null&&K!==void 0?K:uy)!==null&&ee!==void 0?ee:!0,strictTypes:(Le=(se=B.strictTypes)!==null&&se!==void 0?se:uy)!==null&&Le!==void 0?Le:"log",strictTuples:(z=(Ae=B.strictTuples)!==null&&Ae!==void 0?Ae:uy)!==null&&z!==void 0?z:"log",strictRequired:(oe=(J=B.strictRequired)!==null&&J!==void 0?J:uy)!==null&&oe!==void 0?oe:!1,code:B.code?{...B.code,optimize:_p,regExp:ly}:{optimize:_p,regExp:ly},loopRequired:(de=B.loopRequired)!==null&&de!==void 0?de:b,loopEnum:(_e=B.loopEnum)!==null&&_e!==void 0?_e:b,meta:(kt=B.meta)!==null&&kt!==void 0?kt:!0,messages:(Ue=B.messages)!==null&&Ue!==void 0?Ue:!0,inlineRefs:(Un=B.inlineRefs)!==null&&Un!==void 0?Un:!0,schemaId:(dr=B.schemaId)!==null&&dr!==void 0?dr:"$id",addUsedSchema:(sn=B.addUsedSchema)!==null&&sn!==void 0?sn:!0,validateSchema:(fr=B.validateSchema)!==null&&fr!==void 0?fr:!0,validateFormats:(nl=B.validateFormats)!==null&&nl!==void 0?nl:!0,unicodeRegExp:(As=B.unicodeRegExp)!==null&&As!==void 0?As:!0,int32range:(lE=B.int32range)!==null&&lE!==void 0?lE:!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 j.call(this,Le.$schema);let z=this._addSchema(Le,Ae);return z.validate||H.call(this,z)}async function j(Le){Le&&!this.getSchema(Le)&&await M.call(this,{$ref:Le},!0)}async function H(Le){try{return this._compileSchemaEnv(Le)}catch(Ae){if(!(Ae instanceof i.default))throw Ae;return K.call(this,Ae),await ee.call(this,Ae.missingSchema),H.call(this,Le)}}function K({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 j.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 H of F)this.addSchema(H,void 0,U,M);return this}let j;if(typeof F=="object"){let{schemaId:H}=this.opts;if(j=F[H],j!==void 0&&typeof j!="string")throw new Error(`schema ${H} must be string`)}return V=(0,c.normalizeId)(V||j),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 j="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(j);else throw new Error(j)}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,j=>G.call(this,j)),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?j=>G.call(this,j,M):j=>M.type.forEach(H=>G.call(this,j,M,H))),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(j=>j.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,j)=>M+V+j)}$dataMetaSchema(F,V){let U=this.RULES.all;F=JSON.parse(JSON.stringify(F));for(let M of V){let j=M.split("/").slice(1),H=F;for(let K of j)H=H[K];for(let K in U){let ee=U[K];if(typeof ee!="object")continue;let{$data:se}=ee.definition,Le=H[K];se&&Le&&(H[K]=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,j=this.opts.addUsedSchema){let H,{schemaId:K}=this.opts;if(typeof F=="object")H=F[K];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)(H||U);let se=c.getSchemaRefs.call(this,F,U);return ee=new o.SchemaEnv({schema:F,schemaId:K,meta:V,baseId:U,localRefs:se}),this._cache.set(ee.schema,ee),j&&!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 j=M;j in F&&this.logger[U](`${V}: option ${M}. ${B[j]}`)}}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:j}=this,H=M?j.post:j.rules.find(({type:ee})=>ee===V);if(H||(H={type:V,rules:[]},j.rules.push(H)),j.keywords[B]=!0,!F)return;let K={keyword:B,definition:{...F,type:(0,u.getJSONTypes)(F.type),schemaType:(0,u.getJSONTypes)(F.schemaType)}};F.before?W.call(this,H,K,F.before):H.rules.push(K),j.all[B]=K,(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]}}}),qnr=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}),Bnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.callRef=e.getValidate=void 0;var t=J5(),n=bp(),r=_n(),i=aE(),s=DTe(),o=lr(),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}),znr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=qnr(),n=Bnr(),r=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",t.default,n.default];e.default=r}),Gnr=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}),Vnr=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}),Wnr=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=lr(),r=Wnr(),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}),Ynr=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}),Znr=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=lr(),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}),Xnr=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}),LTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=EOt();t.code='require("ajv/dist/runtime/equal").default',e.default=t}),Qnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=O5(),n=_n(),r=lr(),i=LTe(),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}),$nr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),r=LTe(),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}),err=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),r=LTe(),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}),trr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Gnr(),n=Vnr(),r=Knr(),i=Ynr(),s=Znr(),o=Jnr(),a=Xnr(),c=Qnr(),u=$nr(),l=err(),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}),_Ot=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateAdditionalItems=void 0;var t=_n(),n=lr(),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}),TOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateTuple=void 0;var t=_n(),n=lr(),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}),nrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=TOt(),n={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,t.validateTuple)(r,"items")};e.default=n}),rrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),r=bp(),i=_Ot(),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}),irr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),srr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;var t=_n(),n=lr(),r=bp();e.error={message:({params:{property:c,depsCount:u,deps:l}})=>{let d=u===1?"property":"properties";return(0,t.str)`must have ${d} ${l} when property ${c} is present`},params:({params:{property:c,depsCount:u,deps:l,missingProperty:d}})=>(0,t._)`{property: ${c}, + || ${x} === "boolean" || ${R} === null`).assign(k,(0,i._)`[${R}]`)}}}function p({gen:S,parentData:E,parentDataProperty:_},T){S.if((0,i._)`${E} !== undefined`,()=>S.assign((0,i._)`${E}[${_}]`,T))}function h(S,E,_,T=o.Correct){let R=T===o.Correct?i.operators.EQ:i.operators.NEQ,A;switch(S){case"null":return(0,i._)`${E} ${R} null`;case"array":A=(0,i._)`Array.isArray(${E})`;break;case"object":A=(0,i._)`${E} && typeof ${E} == "object" && !Array.isArray(${E})`;break;case"integer":A=x((0,i._)`!(${E} % 1) && !isNaN(${E})`);break;case"number":A=x();break;default:return(0,i._)`typeof ${E} ${R} ${S}`}return T===o.Correct?A:(0,i.not)(A);function x(k=i.nil){return(0,i.and)((0,i._)`typeof ${E} == "number"`,k,_?(0,i._)`isFinite(${E})`:i.nil)}}e.checkDataType=h;function m(S,E,_,T){if(S.length===1)return h(S[0],E,_,T);let R,A=(0,s.toHash)(S);if(A.array&&A.object){let x=(0,i._)`typeof ${E} != "object"`;R=A.null?x:(0,i._)`!${E} || ${x}`,delete A.null,delete A.array,delete A.object}else R=i.nil;A.number&&delete A.integer;for(let x in A)R=(0,i.and)(R,h(x,E,_,T));return R}e.checkDataTypes=m;var g={message:({schema:S})=>`must be ${S}`,params:({schema:S,schemaValue:E})=>typeof S=="string"?(0,i._)`{type: ${S}}`:(0,i._)`{type: ${E}}`};function y(S){let E=b(S);(0,r.reportError)(E,g)}e.reportTypeError=y;function b(S){let{gen:E,data:_,schema:T}=S,R=(0,s.schemaRefOrVal)(S,T,"type");return{gen:E,keyword:"type",data:_,schema:T.type,schemaCode:R,schemaValue:R,parentSchema:T,params:{},it:S}}}),Pnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.assignDefaults=void 0;var t=_n(),n=lr();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=lr(),r=aE(),i=lr();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}),Nnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateKeywordUsage=e.validSchemaType=e.funcKeywordCode=e.macroKeywordCode=void 0;var t=_n(),n=aE(),r=bp(),i=K5();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}),Cnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendSubschemaMode=e.extendSubschemaData=e.getSubschema=void 0;var t=_n(),n=lr();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}),_Ot=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}}),Mnr=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=lr(),n=_Ot(),r=Mnr(),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}),Z5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getData=e.KeywordCxt=e.validateFunctionCode=void 0;var t=Onr(),n=O5(),r=EOt(),i=O5(),s=Pnr(),o=Nnr(),a=Cnr(),c=_n(),u=aE(),l=Y5(),d=lr(),f=K5();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:de,opts:_e},kt){_e.code.es5?z.func(J,(0,c._)`${u.default.data}, ${u.default.valCxt}`,de.$async,()=>{z.code((0,c._)`"use strict"; ${S(oe,_e)}`),g(z,_e),z.code(kt)}):z.func(J,(0,c._)`${u.default.data}, ${m(_e)}`,de.$async,()=>z.code(S(oe,_e)).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:de}=z;h(z,()=>{oe.$comment&&J.$comment&&L(z),P(z),de.let(u.default.vErrors,null),de.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:de,opts:_e}=z;_e.$comment&&oe.$comment&&L(z),N(z),C(z);let kt=de.const("_errs",u.default.errors);x(z,kt),de.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),de=(0,n.coerceAndCheckDataType)(z,oe);$(z,oe,!de,J)}function k(z){let{schema:J,errSchemaPath:oe,opts:de,self:_e}=z;J.$ref&&de.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(J,_e.RULES)&&_e.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:de,opts:_e}){let kt=oe.$comment;if(_e.$comment===!0)z.code((0,c._)`${u.default.self}.logger.log(${kt})`);else if(typeof _e.$comment=="function"){let Ue=(0,c.str)`${de}/$comment`,Un=z.scopeValue("root",{ref:J.root});z.code((0,c._)`${u.default.self}.opts.$comment(${kt}, ${Ue}, ${Un}.schema)`)}}function G(z){let{gen:J,schemaEnv:oe,validateName:de,ValidationError:_e,opts:kt}=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._)`${de}.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:de}){oe instanceof c.Name&&z.assign((0,c._)`${J}.props`,oe),de instanceof c.Name&&z.assign((0,c._)`${J}.items`,de)}function $(z,J,oe,de){let{gen:_e,schema:kt,data:Ue,allErrors:Un,opts:dr,self:sn}=z,{RULES:fr}=sn;if(kt.$ref&&(dr.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(kt,fr))){_e.block(()=>ee(z,"$ref",fr.all.$ref.definition));return}dr.jtd||Q(z,J),_e.block(()=>{for(let As of fr.rules)nl(As);nl(fr.post)});function nl(As){(0,r.shouldUseGroup)(kt,As)&&(As.type?(_e.if((0,i.checkDataType)(As.type,Ue,dr.strictNumbers)),q(z,As),J.length===1&&J[0]===As.type&&oe&&(_e.else(),(0,i.reportTypeError)(z)),_e.endIf()):q(z,As),Un||_e.if((0,c._)`${u.default.errors} === ${de||0}`))}}function q(z,J){let{gen:oe,schema:de,opts:{useDefaults:_e}}=z;_e&&(0,s.assignDefaults)(z,J.type),oe.block(()=>{for(let kt of J.rules)(0,r.shouldUseRule)(de,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)||H(z,`type "${oe}" not allowed by context "${z.dataTypes.join(",")}"`)}),j(z,J)}}function F(z,J){J.length>1&&!(J.length===2&&J.includes("null"))&&H(z,"use allowUnionTypes to allow union type keyword")}function V(z,J){let oe=z.self.RULES.all;for(let de in oe){let _e=oe[de];if(typeof _e=="object"&&(0,r.shouldUseRule)(z.schema,_e)){let{type:kt}=_e.definition;kt.length&&!kt.some(Ue=>U(J,Ue))&&H(z,`missing type "${kt.join(",")}" for keyword "${de}"`)}}}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 j(z,J){let oe=[];for(let de of z.dataTypes)M(J,de)?oe.push(de):J.includes("integer")&&de==="number"&&oe.push("integer");z.dataTypes=oe}function H(z,J){let oe=z.schemaEnv.baseId+z.errSchemaPath;J+=` at "${oe}" (strictTypes)`,(0,d.checkStrictMode)(z,J,z.opts.strictTypes)}class K{constructor(J,oe,de){if((0,o.validateKeywordUsage)(J,oe,de),this.gen=J.gen,this.allErrors=J.allErrors,this.keyword=de,this.data=J.data,this.schema=J.schema[de],this.$data=oe.$data&&J.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(J,this.schema,de,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(`${de} 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,de){this.failResult((0,c.not)(J),oe,de)}failResult(J,oe,de){this.gen.if(J),de?de():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,de){if(oe){this.setParams(oe),this._error(J,de),this.setParams({});return}this._error(J,de)}_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,de=c.nil){this.gen.block(()=>{this.check$data(J,de),oe()})}check$data(J=c.nil,oe=c.nil){if(!this.$data)return;let{gen:de,schemaCode:_e,schemaType:kt,def:Ue}=this;de.if((0,c.or)((0,c._)`${_e} === undefined`,oe)),J!==c.nil&&de.assign(J,!0),(kt.length||Ue.validateSchema)&&(de.elseIf(this.invalid$data()),this.$dataError(),J!==c.nil&&de.assign(J,!1)),de.else()}invalid$data(){let{gen:J,schemaCode:oe,schemaType:de,def:_e,it:kt}=this;return(0,c.or)(Ue(),Un());function Ue(){if(de.length){if(!(oe instanceof c.Name))throw new Error("ajv implementation error");let dr=Array.isArray(de)?de:[de];return(0,c._)`${(0,i.checkDataTypes)(dr,oe,kt.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function Un(){if(_e.validateSchema){let dr=J.scopeValue("validate$data",{ref:_e.validateSchema});return(0,c._)`!${dr}(${oe})`}return c.nil}}subschema(J,oe){let de=(0,a.getSubschema)(this.it,J);(0,a.extendSubschemaData)(de,this.it,J),(0,a.extendSubschemaMode)(de,J);let _e={...this.it,...de,items:void 0,props:void 0};return E(_e,oe),_e}mergeEvaluated(J,oe){let{it:de,gen:_e}=this;de.opts.unevaluated&&(de.props!==!0&&J.props!==void 0&&(de.props=d.mergeEvaluated.props(_e,J.props,de.props,oe)),de.items!==!0&&J.items!==void 0&&(de.items=d.mergeEvaluated.items(_e,J.items,de.items,oe)))}mergeValidEvaluated(J,oe){let{it:de,gen:_e}=this;if(de.opts.unevaluated&&(de.props!==!0||de.items!==!0))return _e.if(oe,()=>this.mergeEvaluated(J,c.Name)),!0}}e.KeywordCxt=K;function ee(z,J,oe,de){let _e=new K(z,oe,J);"code"in oe?oe.code(_e,de):_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 se=/^\/(?:[^~]|~0|~1)*$/,Le=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Ae(z,{dataLevel:J,dataNames:oe,dataPathArr:de}){let _e,kt;if(z==="")return u.default.rootData;if(z[0]==="/"){if(!se.test(z))throw new Error(`Invalid JSON-pointer: ${z}`);_e=z,kt=u.default.rootData}else{let sn=Le.exec(z);if(!sn)throw new Error(`Invalid JSON-pointer: ${z}`);let fr=+sn[1];if(_e=sn[2],_e==="#"){if(fr>=J)throw new Error(dr("property/index",fr));return de[J-fr]}if(fr>J)throw new Error(dr("data",fr));if(kt=oe[J-fr],!_e)return kt}let Ue=kt,Un=_e.split("/");for(let sn of Un)sn&&(kt=(0,c._)`${kt}${(0,c.getProperty)((0,d.unescapeJsonPointer)(sn))}`,Ue=(0,c._)`${Ue} && ${kt}`);return Ue;function dr(sn,fr){return`Cannot access ${sn} ${fr} levels up, current level is ${J}`}}e.getData=Ae}),LTe=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}),J5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Y5();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}),UTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.resolveSchema=e.getCompilingSchema=e.resolveRef=e.compileSchema=e.SchemaEnv=void 0;var t=_n(),n=LTe(),r=aE(),i=Y5(),s=lr(),o=Z5();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}}),Dnr=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}}),Lnr=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}}),Unr=Xe((e,t)=>{var{HEX:n}=Lnr(),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}),jnr=Xe((e,t)=>{var{normalizeIPv6:n,normalizeIPv4:r,removeDotSegments:i,recomposeAuthority:s,normalizeComponentEncoding:o}=Unr(),a=Fnr();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}),Hnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=jnr();t.code='require("ajv/dist/runtime/uri").default',e.default=t}),qnr=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=Z5();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=LTe(),i=J5(),s=bOt(),o=UTe(),a=_n(),c=Y5(),u=O5(),l=lr(),d=Dnr(),f=Hnr(),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,j,H,K,ee,se,Le,Ae,z,J,oe,de,_e,kt,Ue,Un,dr,sn,fr,nl,As,lE;let uy=B.strict,Ii=(F=B.code)===null||F===void 0?void 0:F.optimize,_p=Ii===!0||Ii===void 0?1:Ii||0,ly=(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:(H=(j=B.strictSchema)!==null&&j!==void 0?j:uy)!==null&&H!==void 0?H:!0,strictNumbers:(ee=(K=B.strictNumbers)!==null&&K!==void 0?K:uy)!==null&&ee!==void 0?ee:!0,strictTypes:(Le=(se=B.strictTypes)!==null&&se!==void 0?se:uy)!==null&&Le!==void 0?Le:"log",strictTuples:(z=(Ae=B.strictTuples)!==null&&Ae!==void 0?Ae:uy)!==null&&z!==void 0?z:"log",strictRequired:(oe=(J=B.strictRequired)!==null&&J!==void 0?J:uy)!==null&&oe!==void 0?oe:!1,code:B.code?{...B.code,optimize:_p,regExp:ly}:{optimize:_p,regExp:ly},loopRequired:(de=B.loopRequired)!==null&&de!==void 0?de:b,loopEnum:(_e=B.loopEnum)!==null&&_e!==void 0?_e:b,meta:(kt=B.meta)!==null&&kt!==void 0?kt:!0,messages:(Ue=B.messages)!==null&&Ue!==void 0?Ue:!0,inlineRefs:(Un=B.inlineRefs)!==null&&Un!==void 0?Un:!0,schemaId:(dr=B.schemaId)!==null&&dr!==void 0?dr:"$id",addUsedSchema:(sn=B.addUsedSchema)!==null&&sn!==void 0?sn:!0,validateSchema:(fr=B.validateSchema)!==null&&fr!==void 0?fr:!0,validateFormats:(nl=B.validateFormats)!==null&&nl!==void 0?nl:!0,unicodeRegExp:(As=B.unicodeRegExp)!==null&&As!==void 0?As:!0,int32range:(lE=B.int32range)!==null&&lE!==void 0?lE:!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 j.call(this,Le.$schema);let z=this._addSchema(Le,Ae);return z.validate||H.call(this,z)}async function j(Le){Le&&!this.getSchema(Le)&&await M.call(this,{$ref:Le},!0)}async function H(Le){try{return this._compileSchemaEnv(Le)}catch(Ae){if(!(Ae instanceof i.default))throw Ae;return K.call(this,Ae),await ee.call(this,Ae.missingSchema),H.call(this,Le)}}function K({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 j.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 H of F)this.addSchema(H,void 0,U,M);return this}let j;if(typeof F=="object"){let{schemaId:H}=this.opts;if(j=F[H],j!==void 0&&typeof j!="string")throw new Error(`schema ${H} must be string`)}return V=(0,c.normalizeId)(V||j),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 j="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(j);else throw new Error(j)}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,j=>G.call(this,j)),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?j=>G.call(this,j,M):j=>M.type.forEach(H=>G.call(this,j,M,H))),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(j=>j.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,j)=>M+V+j)}$dataMetaSchema(F,V){let U=this.RULES.all;F=JSON.parse(JSON.stringify(F));for(let M of V){let j=M.split("/").slice(1),H=F;for(let K of j)H=H[K];for(let K in U){let ee=U[K];if(typeof ee!="object")continue;let{$data:se}=ee.definition,Le=H[K];se&&Le&&(H[K]=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,j=this.opts.addUsedSchema){let H,{schemaId:K}=this.opts;if(typeof F=="object")H=F[K];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)(H||U);let se=c.getSchemaRefs.call(this,F,U);return ee=new o.SchemaEnv({schema:F,schemaId:K,meta:V,baseId:U,localRefs:se}),this._cache.set(ee.schema,ee),j&&!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 j=M;j in F&&this.logger[U](`${V}: option ${M}. ${B[j]}`)}}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:j}=this,H=M?j.post:j.rules.find(({type:ee})=>ee===V);if(H||(H={type:V,rules:[]},j.rules.push(H)),j.keywords[B]=!0,!F)return;let K={keyword:B,definition:{...F,type:(0,u.getJSONTypes)(F.type),schemaType:(0,u.getJSONTypes)(F.schemaType)}};F.before?W.call(this,H,K,F.before):H.rules.push(K),j.all[B]=K,(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]}}}),Bnr=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}),znr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.callRef=e.getValidate=void 0;var t=J5(),n=bp(),r=_n(),i=aE(),s=UTe(),o=lr(),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}),Gnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Bnr(),n=znr(),r=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",t.default,n.default];e.default=r}),Vnr=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}),Wnr=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}),Knr=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=lr(),r=Knr(),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}),Znr=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}),Jnr=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}),Xnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=lr(),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}),Qnr=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}),FTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_Ot();t.code='require("ajv/dist/runtime/equal").default',e.default=t}),$nr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=O5(),n=_n(),r=lr(),i=FTe(),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}),err=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),r=FTe(),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}),trr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),r=FTe(),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}),nrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Vnr(),n=Wnr(),r=Ynr(),i=Znr(),s=Jnr(),o=Xnr(),a=Qnr(),c=$nr(),u=err(),l=trr(),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}),TOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateAdditionalItems=void 0;var t=_n(),n=lr(),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}),vOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateTuple=void 0;var t=_n(),n=lr(),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}),rrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=vOt(),n={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,t.validateTuple)(r,"items")};e.default=n}),irr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),r=bp(),i=TOt(),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}),srr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),orr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;var t=_n(),n=lr(),r=bp();e.error={message:({params:{property:c,depsCount:u,deps:l}})=>{let d=u===1?"property":"properties";return(0,t.str)`must have ${d} ${l} when property ${c} is present`},params:({params:{property:c,depsCount:u,deps:l,missingProperty:d}})=>(0,t._)`{property: ${c}, missingProperty: ${d}, depsCount: ${u}, - deps: ${l}}`};var i={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(c){let[u,l]=s(c);o(c,u),a(c,l)}};function s({schema:c}){let u={},l={};for(let d in c){if(d==="__proto__")continue;let f=Array.isArray(c[d])?u:l;f[d]=c[d]}return[u,l]}function o(c,u=c.schema){let{gen:l,data:d,it:f}=c;if(Object.keys(u).length===0)return;let p=l.let("missing");for(let h in u){let m=u[h];if(m.length===0)continue;let g=(0,r.propertyInData)(l,d,h,f.opts.ownProperties);c.setParams({property:h,depsCount:m.length,deps:m.join(", ")}),f.allErrors?l.if(g,()=>{for(let y of m)(0,r.checkReportMissingProp)(c,y)}):(l.if((0,t._)`${g} && (${(0,r.checkMissingProp)(c,m,p)})`),(0,r.reportMissingProp)(c,p),l.else())}}e.validatePropertyDeps=o;function a(c,u=c.schema){let{gen:l,data:d,keyword:f,it:p}=c,h=l.name("valid");for(let m in u)(0,n.alwaysValidSchema)(p,u[m])||(l.if((0,r.propertyInData)(l,d,m,p.opts.ownProperties),()=>{let g=c.subschema({keyword:f,schemaProp:m},h);c.mergeValidEvaluated(g,h)},()=>l.var(h,!0)),c.ok(h))}e.validateSchemaDeps=a,e.default=i}),orr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),vOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=aE(),i=lr(),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}),arr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Z5(),n=bp(),r=lr(),i=vOt(),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}),crr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=lr(),i=lr(),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}),urr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lr(),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}),lrr=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}),drr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),frr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lr(),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}),prr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),hrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lr(),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}),mrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_Ot(),n=nrr(),r=TOt(),i=rrr(),s=irr(),o=srr(),a=orr(),c=vOt(),u=arr(),l=crr(),d=urr(),f=lrr(),p=drr(),h=frr(),m=prr(),g=hrr();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}),grr=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}),yrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=grr(),n=[t.default];e.default=n}),Srr=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"]}),brr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=znr(),n=trr(),r=mrr(),i=yrr(),s=Srr(),o=[t.default,n.default,(0,r.default)(),i.default,s.metadataVocabulary,s.contentVocabulary];e.default=o}),Err=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={}))}),_rr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=Err(),r=DTe(),i=J5(),s=lr(),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}}),ROt=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=Hnr(),r=brr(),i=_rr(),s=Trr(),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=Z5();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=MTe();Object.defineProperty(e,"ValidationError",{enumerable:!0,get:function(){return d.default}});var f=J5();Object.defineProperty(e,"MissingRefError",{enumerable:!0,get:function(){return f.default}})}),vrr=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}}}),Rrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatLimitDefinition=void 0;var t=ROt(),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}),Arr=Xe((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=vrr(),r=Rrr(),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}),Irr=50;Nrr=typeof global=="object"&&global&&global.Object===Object&&global,Crr=Nrr,Mrr=typeof self=="object"&&self&&self.Object===Object&&self,Drr=Crr||Mrr||Function("return this")(),FTe=Drr,Lrr=FTe.Symbol,P5=Lrr,AOt=Object.prototype,Urr=AOt.hasOwnProperty,Frr=AOt.toString,vU=P5?P5.toStringTag:void 0;Hrr=jrr,qrr=Object.prototype,Brr=qrr.toString;Grr=zrr,Vrr="[object Null]",Wrr="[object Undefined]",kxt=P5?P5.toStringTag:void 0;Yrr=Krr;wOt=Zrr,Jrr="[object AsyncFunction]",Xrr="[object Function]",Qrr="[object GeneratorFunction]",$rr="[object Proxy]";tir=eir,nir=FTe["__core-js_shared__"],K_e=nir,Ixt=(function(){var e=/[^.]+$/.exec(K_e&&K_e.keys&&K_e.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();iir=rir,sir=Function.prototype,oir=sir.toString;cir=air,uir=/[\\^$.*+?()[\]{}|]/g,lir=/^\[object .+?Constructor\]$/,dir=Function.prototype,fir=Object.prototype,pir=dir.toString,hir=fir.hasOwnProperty,mir=RegExp("^"+pir.call(hir).replace(uir,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");yir=gir;bir=Sir;kOt=Eir,_ir=kOt(Object,"create"),PU=_ir;vir=Tir;Air=Rir,wir="__lodash_hash_undefined__",kir=Object.prototype,Iir=kir.hasOwnProperty;Oir=xir,Pir=Object.prototype,Nir=Pir.hasOwnProperty;Mir=Cir,Dir="__lodash_hash_undefined__";Uir=Lir;Qx.prototype.clear=vir;Qx.prototype.delete=Air;Qx.prototype.get=Oir;Qx.prototype.has=Mir;Qx.prototype.set=Uir;xxt=Qx;jir=Fir;qir=Hir;X5=Bir,zir=Array.prototype,Gir=zir.splice;Wir=Vir;Yir=Kir;Jir=Zir;Qir=Xir;$x.prototype.clear=jir;$x.prototype.delete=Wir;$x.prototype.get=Yir;$x.prototype.has=Jir;$x.prototype.set=Qir;$ir=$x,esr=kOt(FTe,"Map"),tsr=esr;rsr=nsr;ssr=isr;Q5=osr;csr=asr;lsr=usr;fsr=dsr;hsr=psr;eO.prototype.clear=rsr;eO.prototype.delete=csr;eO.prototype.get=lsr;eO.prototype.has=fsr;eO.prototype.set=hsr;IOt=eO,msr="Expected a function";jTe.Cache=IOt;VU=jTe,Oxt=2e3;ysr=VU(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}});Y_e=15e4,v5=3e4;wsr=POt("BASH_MAX_OUTPUT_LENGTH"),QPi=POt("TASK_MAX_OUTPUT_LENGTH"),ksr={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"}}};xsr=Isr();Nxt=new Set;NOt=1/0;MOt=(e,t)=>{let n=typeof e=="string"?e.length:0;return COt(`JSON.parse(${n} chars)`,()=>JSON.parse(e,t))},Msr=VU(()=>Pxt(process.env.DEBUG)||Pxt(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||DOt()||process.argv.some(e=>e.startsWith("--debug="))),Dsr=VU(()=>{let e=process.argv.find(n=>n.startsWith("--debug="));if(!e)return null;let t=e.substring(8);return ysr(t)}),DOt=VU(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));Usr=!1,R5=null;jsr=VU(()=>{if(process.argv[2]!=="--ripgrep")try{let e=LOt(),t=rTe(e),n=OOt(t,"latest");if(Xg().existsSync(t)||Xg().mkdirSync(t),Xg().existsSync(n))try{Xg().unlinkSync(n)}catch{}Xg().symlinkSync(e,n)}catch{}});Hsr={cwd(){return process.cwd()},existsSync(e){return fo(`existsSync(${e})`,()=>Zt.existsSync(e))},async stat(e){return Prr(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)}},qsr=Hsr;Bsr=["PreToolUse","PostToolUse","PostToolUseFailure","Notification","UserPromptSubmit","SessionStart","SessionEnd","Stop","SubagentStart","SubagentStop","PreCompact","PermissionRequest"],zsr=["clear","logout","prompt_input_exit","other","bypass_permissions_disabled"],rE=class extends Error{};A5=null,Mxt=!1;N5=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(t){this.options=t,this.abortController=t.abortController||UTe(),this.initialize()}getDefaultExecutable(){return HTe()?"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=xrr(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();Qv(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",sm(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",sm({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=Zsr(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)Qv(`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)}Qv(`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 rE("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${F.message}`),Qv(this.exitError.message))}),this.process.on("exit",(F,V)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new rE("Claude Code process aborted by user");else{let U=this.getProcessExitError(F,V);U&&(this.exitError=U,Qv(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 rE("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}`);Qv(`[ProcessTransport] Writing to stdin: ${t.substring(0,100)}`);try{this.processStdin.write(t)||Qv("[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=Orr({input:this.processStdout});try{for await(let n of t)n.trim()&&(yield MOt(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 rE("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)})})}};C5=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})}},iTe=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?.())}},M5=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new C5;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(sm(i)+` + deps: ${l}}`};var i={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(c){let[u,l]=s(c);o(c,u),a(c,l)}};function s({schema:c}){let u={},l={};for(let d in c){if(d==="__proto__")continue;let f=Array.isArray(c[d])?u:l;f[d]=c[d]}return[u,l]}function o(c,u=c.schema){let{gen:l,data:d,it:f}=c;if(Object.keys(u).length===0)return;let p=l.let("missing");for(let h in u){let m=u[h];if(m.length===0)continue;let g=(0,r.propertyInData)(l,d,h,f.opts.ownProperties);c.setParams({property:h,depsCount:m.length,deps:m.join(", ")}),f.allErrors?l.if(g,()=>{for(let y of m)(0,r.checkReportMissingProp)(c,y)}):(l.if((0,t._)`${g} && (${(0,r.checkMissingProp)(c,m,p)})`),(0,r.reportMissingProp)(c,p),l.else())}}e.validatePropertyDeps=o;function a(c,u=c.schema){let{gen:l,data:d,keyword:f,it:p}=c,h=l.name("valid");for(let m in u)(0,n.alwaysValidSchema)(p,u[m])||(l.if((0,r.propertyInData)(l,d,m,p.opts.ownProperties),()=>{let g=c.subschema({keyword:f,schemaProp:m},h);c.mergeValidEvaluated(g,h)},()=>l.var(h,!0)),c.ok(h))}e.validateSchemaDeps=a,e.default=i}),arr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),ROt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=aE(),i=lr(),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}),crr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Z5(),n=bp(),r=lr(),i=ROt(),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}),urr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=lr(),i=lr(),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}),lrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lr(),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}),drr=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}),frr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),prr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lr(),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}),hrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),mrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lr(),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}),grr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=TOt(),n=rrr(),r=vOt(),i=irr(),s=srr(),o=orr(),a=arr(),c=ROt(),u=crr(),l=urr(),d=lrr(),f=drr(),p=frr(),h=prr(),m=hrr(),g=mrr();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}),yrr=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}),Srr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=yrr(),n=[t.default];e.default=n}),brr=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"]}),Err=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Gnr(),n=nrr(),r=grr(),i=Srr(),s=brr(),o=[t.default,n.default,(0,r.default)(),i.default,s.metadataVocabulary,s.contentVocabulary];e.default=o}),_rr=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={}))}),Trr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=_rr(),r=UTe(),i=J5(),s=lr(),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}}),AOt=Xe((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv=void 0;var n=qnr(),r=Err(),i=Trr(),s=vrr(),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=Z5();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=LTe();Object.defineProperty(e,"ValidationError",{enumerable:!0,get:function(){return d.default}});var f=J5();Object.defineProperty(e,"MissingRefError",{enumerable:!0,get:function(){return f.default}})}),Rrr=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}}}),Arr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatLimitDefinition=void 0;var t=AOt(),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}),wrr=Xe((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=Rrr(),r=Arr(),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}),xrr=50;Crr=typeof global=="object"&&global&&global.Object===Object&&global,Mrr=Crr,Drr=typeof self=="object"&&self&&self.Object===Object&&self,Lrr=Mrr||Drr||Function("return this")(),HTe=Lrr,Urr=HTe.Symbol,P5=Urr,wOt=Object.prototype,Frr=wOt.hasOwnProperty,jrr=wOt.toString,vU=P5?P5.toStringTag:void 0;qrr=Hrr,Brr=Object.prototype,zrr=Brr.toString;Vrr=Grr,Wrr="[object Null]",Krr="[object Undefined]",Ixt=P5?P5.toStringTag:void 0;Zrr=Yrr;kOt=Jrr,Xrr="[object AsyncFunction]",Qrr="[object Function]",$rr="[object GeneratorFunction]",eir="[object Proxy]";nir=tir,rir=HTe["__core-js_shared__"],Z_e=rir,xxt=(function(){var e=/[^.]+$/.exec(Z_e&&Z_e.keys&&Z_e.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();sir=iir,oir=Function.prototype,air=oir.toString;uir=cir,lir=/[\\^$.*+?()[\]{}|]/g,dir=/^\[object .+?Constructor\]$/,fir=Function.prototype,pir=Object.prototype,hir=fir.toString,mir=pir.hasOwnProperty,gir=RegExp("^"+hir.call(mir).replace(lir,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");Sir=yir;Eir=bir;IOt=_ir,Tir=IOt(Object,"create"),PU=Tir;Rir=vir;wir=Air,kir="__lodash_hash_undefined__",Iir=Object.prototype,xir=Iir.hasOwnProperty;Pir=Oir,Nir=Object.prototype,Cir=Nir.hasOwnProperty;Dir=Mir,Lir="__lodash_hash_undefined__";Fir=Uir;Qx.prototype.clear=Rir;Qx.prototype.delete=wir;Qx.prototype.get=Pir;Qx.prototype.has=Dir;Qx.prototype.set=Fir;Oxt=Qx;Hir=jir;Bir=qir;X5=zir,Gir=Array.prototype,Vir=Gir.splice;Kir=Wir;Zir=Yir;Xir=Jir;$ir=Qir;$x.prototype.clear=Hir;$x.prototype.delete=Kir;$x.prototype.get=Zir;$x.prototype.has=Xir;$x.prototype.set=$ir;esr=$x,tsr=IOt(HTe,"Map"),nsr=tsr;isr=rsr;osr=ssr;Q5=asr;usr=csr;dsr=lsr;psr=fsr;msr=hsr;eO.prototype.clear=isr;eO.prototype.delete=usr;eO.prototype.get=dsr;eO.prototype.has=psr;eO.prototype.set=msr;xOt=eO,gsr="Expected a function";qTe.Cache=xOt;VU=qTe,Pxt=2e3;Ssr=VU(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}});J_e=15e4,v5=3e4;ksr=NOt("BASH_MAX_OUTPUT_LENGTH"),$Pi=NOt("TASK_MAX_OUTPUT_LENGTH"),Isr={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"}}};Osr=xsr();Cxt=new Set;COt=1/0;DOt=(e,t)=>{let n=typeof e=="string"?e.length:0;return MOt(`JSON.parse(${n} chars)`,()=>JSON.parse(e,t))},Dsr=VU(()=>Nxt(process.env.DEBUG)||Nxt(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||LOt()||process.argv.some(e=>e.startsWith("--debug="))),Lsr=VU(()=>{let e=process.argv.find(n=>n.startsWith("--debug="));if(!e)return null;let t=e.substring(8);return Ssr(t)}),LOt=VU(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));Fsr=!1,R5=null;Hsr=VU(()=>{if(process.argv[2]!=="--ripgrep")try{let e=UOt(),t=sTe(e),n=POt(t,"latest");if(Xg().existsSync(t)||Xg().mkdirSync(t),Xg().existsSync(n))try{Xg().unlinkSync(n)}catch{}Xg().symlinkSync(e,n)}catch{}});qsr={cwd(){return process.cwd()},existsSync(e){return fo(`existsSync(${e})`,()=>Zt.existsSync(e))},async stat(e){return Nrr(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)}},Bsr=qsr;zsr=["PreToolUse","PostToolUse","PostToolUseFailure","Notification","UserPromptSubmit","SessionStart","SessionEnd","Stop","SubagentStart","SubagentStop","PreCompact","PermissionRequest"],Gsr=["clear","logout","prompt_input_exit","other","bypass_permissions_disabled"],rE=class extends Error{};A5=null,Dxt=!1;N5=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(t){this.options=t,this.abortController=t.abortController||jTe(),this.initialize()}getDefaultExecutable(){return BTe()?"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=Orr(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();Qv(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",sm(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",sm({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=Jsr(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=Xsr(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)Qv(`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)}Qv(`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 rE("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${F.message}`),Qv(this.exitError.message))}),this.process.on("exit",(F,V)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new rE("Claude Code process aborted by user");else{let U=this.getProcessExitError(F,V);U&&(this.exitError=U,Qv(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 rE("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}`);Qv(`[ProcessTransport] Writing to stdin: ${t.substring(0,100)}`);try{this.processStdin.write(t)||Qv("[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=Prr({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 rE("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)})})}};C5=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})}},oTe=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?.())}},M5=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new C5;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(sm(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(sm(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(sm(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(sm(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 rE))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 iTe(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:Xsr(),request:{subtype:"mcp_message",server_name:t,message:n}};this.transport.write(sm(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}})}},D5=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 C5;let n=t.pathToClaudeCodeExecutable;if(!n){let s=Qsr(import.meta.url),o=Dxt(s,"..");n=Dxt(o,"cli.js")}let r={...t.env??process.env};r.CLAUDE_CODE_ENTRYPOINT||(r.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),this.abortController=UTe();let i=new N5({abortController:this.abortController,pathToClaudeCodeExecutable:n,env:r,executable:t.executable??(HTe()?"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 M5(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})})(Lxt||(Lxt={}));nt=ir.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),nE=e=>{switch(typeof e){case"undefined":return nt.undefined;case"string":return nt.string;case"number":return Number.isNaN(e)?nt.nan:nt.number;case"boolean":return nt.boolean;case"function":return nt.function;case"bigint":return nt.bigint;case"symbol":return nt.symbol;case"object":return Array.isArray(e)?nt.array:e===null?nt.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?nt.promise:typeof Map<"u"&&e instanceof Map?nt.map:typeof Set<"u"&&e instanceof Set?nt.set:typeof Date<"u"&&e instanceof Date?nt.date:nt.object;default:return nt.unknown}},Oe=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);eor=(e,t)=>{let n;switch(e.code){case Oe.invalid_type:e.received===nt.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case Oe.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,ir.jsonStringifyReplacer)}`;break;case Oe.unrecognized_keys:n=`Unrecognized key(s) in object: ${ir.joinValues(e.keys,", ")}`;break;case Oe.invalid_union:n="Invalid input";break;case Oe.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${ir.joinValues(e.options)}`;break;case Oe.invalid_enum_value:n=`Invalid enum value. Expected ${ir.joinValues(e.options)}, received '${e.received}'`;break;case Oe.invalid_arguments:n="Invalid function arguments";break;case Oe.invalid_return_type:n="Invalid function return type";break;case Oe.invalid_date:n="Invalid date";break;case Oe.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:ir.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case Oe.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case Oe.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case Oe.custom:n="Invalid input";break;case Oe.invalid_intersection_types:n="Intersection results could not be merged";break;case Oe.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Oe.not_finite:n="Number must be finite";break;default:n=t.defaultError,ir.assertNever(e)}return{message:n}},NU=eor,tor=NU;oTe=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"}),wU=e=>({status:"dirty",value:e}),Xu=e=>({status:"valid",value:e}),Uxt=e=>e.status==="aborted",Fxt=e=>e.status==="dirty",Fx=e=>e.status==="valid",L5=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}},jxt=(e,t)=>{if(Fx(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 nE(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:nE(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:nE(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(L5(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:nE(t)},i=this._parseSync({data:t,path:r.path,parent:r});return jxt(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:nE(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return Fx(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=>Fx(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:nE(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(L5(i)?i:Promise.resolve(i));return jxt(r,s)}refine(t,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{let o=t(i),a=()=>s.addIssue({code:Oe.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new 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 oE.create(this)}promise(){return eR.create(this,this._def)}or(t){return Bx.create([this,t],this._def)}and(t){return zx.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 Yx({...ln(this._def),innerType:this,defaultValue:n,typeName:De.ZodDefault})}brand(){return new U5({typeName:De.ZodBranded,type:this,...ln(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Zx({...ln(this._def),innerType:this,catchValue:n,typeName:De.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return F5.create(this,t)}readonly(){return Jx.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},nor=/^c[^\s-]{8,}$/i,ror=/^[0-9a-z]+$/,ior=/^[0-9A-HJKMNP-TV-Z]{26}$/i,sor=/^[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,oor=/^[a-z0-9_-]{21}$/i,aor=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,cor=/^[-+]?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)?)??$/,uor=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,lor="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",dor=/^(?:(?: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])$/,por=/^(?:(?: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])$/,hor=/^(([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]))$/,mor=/^(([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])$/,gor=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,yor=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,FOt="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Sor=new RegExp(`^${FOt}$`);jx=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:Oe.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:Oe.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let o=t.data.length>s.value,a=t.data.lengtht.test(i),{validation:n,code:Oe.invalid_string,...lt.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...lt.errToObj(t)})}url(t){return this._addCheck({kind:"url",...lt.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...lt.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...lt.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...lt.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...lt.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...lt.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...lt.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...lt.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...lt.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...lt.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...lt.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...lt.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...lt.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...lt.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...lt.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...lt.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...lt.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...lt.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...lt.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...lt.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...lt.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...lt.errToObj(n)})}nonempty(t){return this.min(1,lt.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew jx({checks:[],typeName:De.ZodString,coerce:e?.coerce??!1,...ln(e)});CU=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:Oe.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:Oe.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?Ror(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.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 CU({checks:[],typeName:De.ZodNumber,coerce:e?.coerce||!1,...ln(e)});MU=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:Oe.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.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:Oe.invalid_type,expected:nt.bigint,received:n.parsedType}),Vt}gte(t,n){return this.setLimit("min",t,!0,lt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,lt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,lt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,lt.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lt.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:lt.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew MU({checks:[],typeName:De.ZodBigInt,coerce:e?.coerce??!1,...ln(e)});DU=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:Oe.invalid_type,expected:nt.boolean,received:r.parsedType}),Vt}return Xu(t.data)}};DU.create=e=>new DU({typeName:De.ZodBoolean,coerce:e?.coerce||!1,...ln(e)});LU=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:Oe.invalid_type,expected:nt.date,received:s.parsedType}),Vt}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return Ye(s,{code:Oe.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:Oe.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 LU({checks:[],coerce:e?.coerce||!1,typeName:De.ZodDate,...ln(e)});UU=class extends Tn{_parse(t){if(this._getType(t)!==nt.symbol){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.symbol,received:r.parsedType}),Vt}return Xu(t.data)}};UU.create=e=>new UU({typeName:De.ZodSymbol,...ln(e)});Hx=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.undefined,received:r.parsedType}),Vt}return Xu(t.data)}};Hx.create=e=>new Hx({typeName:De.ZodUndefined,...ln(e)});qx=class extends Tn{_parse(t){if(this._getType(t)!==nt.null){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.null,received:r.parsedType}),Vt}return Xu(t.data)}};qx.create=e=>new qx({typeName:De.ZodNull,...ln(e)});FU=class extends Tn{constructor(){super(...arguments),this._any=!0}_parse(t){return Xu(t.data)}};FU.create=e=>new FU({typeName:De.ZodAny,...ln(e)});sE=class extends Tn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Xu(t.data)}};sE.create=e=>new sE({typeName:De.ZodUnknown,...ln(e)});am=class extends Tn{_parse(t){let n=this._getOrReturnCtx(t);return Ye(n,{code:Oe.invalid_type,expected:nt.never,received:n.parsedType}),Vt}};am.create=e=>new am({typeName:De.ZodNever,...ln(e)});jU=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.void,received:r.parsedType}),Vt}return Xu(t.data)}};jU.create=e=>new jU({typeName:De.ZodVoid,...ln(e)});oE=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:Oe.invalid_type,expected:nt.array,received:n.parsedType}),Vt;if(i.exactLength!==null){let o=n.data.length>i.exactLength.value,a=n.data.lengthi.maxLength.value&&(Ye(n,{code:Oe.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,a)=>i.type._parseAsync(new 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)}};oE.create=(e,t)=>new oE({type:e,minLength:null,maxLength:null,exactLength:null,typeName:De.ZodArray,...ln(t)});jl=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:Oe.invalid_type,expected:nt.object,received:u.parsedType}),Vt}let{status:r,ctx:i}=this._processInputParams(t),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof am&&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 am){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:Oe.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new 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 Dx(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 HOt(ir.objectKeys(this.shape))}};jl.create=(e,t)=>new jl({shape:()=>e,unknownKeys:"strip",catchall:am.create(),typeName:De.ZodObject,...ln(t)});jl.strictCreate=(e,t)=>new jl({shape:()=>e,unknownKeys:"strict",catchall:am.create(),typeName:De.ZodObject,...ln(t)});jl.lazycreate=(e,t)=>new jl({shape:e,unknownKeys:"strip",catchall:am.create(),typeName:De.ZodObject,...ln(t)});Bx=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:Oe.invalid_union,unionErrors:o}),Vt}if(n.common.async)return Promise.all(r.map(async s=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of r){let u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new Zd(c));return Ye(n,{code:Oe.invalid_union,unionErrors:a}),Vt}}get options(){return this._def.options}};Bx.create=(e,t)=>new Bx({options:e,typeName:De.ZodUnion,...ln(t)});Yg=e=>e instanceof Gx?Yg(e.schema):e instanceof gp?Yg(e.innerType()):e instanceof Vx?[e.value]:e instanceof Wx?e.options:e instanceof Kx?ir.objectValues(e.enum):e instanceof Yx?Yg(e._def.innerType):e instanceof Hx?[void 0]:e instanceof qx?[null]:e instanceof mp?[void 0,...Yg(e.unwrap())]:e instanceof $g?[null,...Yg(e.unwrap())]:e instanceof U5||e instanceof Jx?Yg(e.unwrap()):e instanceof Zx?Yg(e._def.innerType):[],aTe=class e extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.object)return Ye(n,{code:Oe.invalid_type,expected:nt.object,received:n.parsedType}),Vt;let r=this.discriminator,i=n.data[r],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(Ye(n,{code:Oe.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Vt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let s of n){let o=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)})}};zx=class extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(Uxt(s)||Uxt(o))return Vt;let a=cTe(s.value,o.value);return a.valid?((Fxt(s)||Fxt(o))&&n.dirty(),{status:n.value,value:a.data}):(Ye(r,{code:Oe.invalid_intersection_types}),Vt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};zx.create=(e,t,n)=>new zx({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:Oe.invalid_type,expected:nt.array,received:r.parsedType}),Vt;if(r.data.lengththis._def.items.length&&(Ye(r,{code:Oe.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new 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)})};uTe=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:Oe.invalid_type,expected:nt.object,received:r.parsedType}),Vt;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in r.data)i.push({key:s._parse(new 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:jx.create(),valueType:t,typeName:De.ZodRecord,...ln(n)})}},HU=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:Oe.invalid_type,expected:nt.map,received:r.parsedType}),Vt;let i=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([a,c],u)=>({key:i._parse(new 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}}}};HU.create=(e,t,n)=>new HU({valueType:t,keyType:e,typeName:De.ZodMap,...ln(n)});qU=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.set)return Ye(r,{code:Oe.invalid_type,expected:nt.set,received:r.parsedType}),Vt;let i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(Ye(r,{code:Oe.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Vt;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((c,u)=>s._parse(new 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)}};qU.create=(e,t)=>new qU({valueType:e,minSize:null,maxSize:null,typeName:De.ZodSet,...ln(t)});lTe=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:Oe.invalid_type,expected:nt.function,received:n.parsedType}),Vt;function r(a,c){return oTe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,sTe(),NU].filter(u=>!!u),issueData:{code:Oe.invalid_arguments,argumentsError:c}})}function i(a,c){return oTe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,sTe(),NU].filter(u=>!!u),issueData:{code:Oe.invalid_return_type,returnTypeError:c}})}let s={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof eR){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(sE.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(sE.create()),returns:n||sE.create(),typeName:De.ZodFunction,...ln(r)})}},Gx=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})}};Gx.create=(e,t)=>new Gx({getter:e,typeName:De.ZodLazy,...ln(t)});Vx=class extends Tn{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return Ye(n,{received:n.data,code:Oe.invalid_literal,expected:this._def.value}),Vt}return{status:"valid",value:t.data}}get value(){return this._def.value}};Vx.create=(e,t)=>new Vx({value:e,typeName:De.ZodLiteral,...ln(t)});Wx=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:Oe.invalid_type}),Vt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return Ye(n,{received:n.data,code:Oe.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})}};Wx.create=HOt;Kx=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:Oe.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:Oe.invalid_enum_value,options:i}),Vt}return Xu(t.data)}get enum(){return this._def.values}};Kx.create=(e,t)=>new Kx({values:e,typeName:De.ZodNativeEnum,...ln(t)});eR=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:Oe.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})))}};eR.create=(e,t)=>new eR({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"?wU(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"?wU(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(!Fx(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=>Fx(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)});Yx=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}};Yx.create=(e,t)=>new Yx({innerType:e,typeName:De.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...ln(t)});Zx=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return L5(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Zd(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Zd(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Zx.create=(e,t)=>new Zx({innerType:e,typeName:De.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...ln(t)});BU=class extends Tn{_parse(t){if(this._getType(t)!==nt.nan){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.nan,received:r.parsedType}),Vt}return{status:"valid",value:t.data}}};BU.create=e=>new BU({typeName:De.ZodNaN,...ln(e)});U5=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}},F5=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(),wU(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})}},Jx=class extends Tn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(Fx(i)&&(i.value=Object.freeze(i.value)),i);return L5(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};Jx.create=(e,t)=>new Jx({innerType:e,typeName:De.ZodReadonly,...ln(t)});sNi={object:jl.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={}));oNi=jx.create,aNi=CU.create,cNi=BU.create,uNi=MU.create,lNi=DU.create,dNi=LU.create,fNi=UU.create,pNi=Hx.create,hNi=qx.create,mNi=FU.create,gNi=sE.create,yNi=am.create,SNi=jU.create,bNi=oE.create,Aor=jl.create,ENi=jl.strictCreate,_Ni=Bx.create,TNi=aTe.create,vNi=zx.create,RNi=Qg.create,ANi=uTe.create,wNi=HU.create,kNi=qU.create,INi=lTe.create,xNi=Gx.create,ONi=Vx.create,PNi=Wx.create,NNi=Kx.create,CNi=eR.create,MNi=gp.create,DNi=mp.create,LNi=$g.create,UNi=gp.createWithPreprocess,FNi=F5.create,jNi=Object.freeze({status:"aborted"});tR=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},dTe={};Gr={};yOt(Gr,{unwrapMessage:()=>kU,stringifyPrimitive:()=>GTe,required:()=>Gor,randomString:()=>Cor,propertyKeyTypes:()=>GOt,promiseAllObject:()=>Nor,primitiveTypes:()=>Lor,prefixIssues:()=>iE,pick:()=>jor,partial:()=>zor,optionalKeys:()=>VOt,omit:()=>Hor,numKeys:()=>Mor,nullish:()=>e8,normalizeParams:()=>Ht,merge:()=>Bor,jsonStringifyReplacer:()=>qOt,joinValues:()=>fTe,issue:()=>KOt,isPlainObject:()=>GU,isObject:()=>zU,getSizableOrigin:()=>Vor,getParsedType:()=>Dor,getLengthableOrigin:()=>n8,getEnumValues:()=>qTe,getElementAtPath:()=>Por,floatSafeRemainder:()=>BOt,finalizeIssue:()=>ty,extend:()=>qor,escapeRegex:()=>tO,esc:()=>Lx,defineLazy:()=>ki,createTransparentProxy:()=>Uor,clone:()=>ny,cleanRegex:()=>t8,cleanEnum:()=>Wor,captureStackTrace:()=>zTe,cached:()=>$5,assignProp:()=>BTe,assertNotEqual:()=>kor,assertNever:()=>xor,assertIs:()=>Ior,assertEqual:()=>wor,assert:()=>Oor,allowsEval:()=>zOt,aborted:()=>Ux,NUMBER_FORMAT_RANGES:()=>WOt,Class:()=>pTe,BIGINT_FORMAT_RANGES:()=>For});zTe=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};zOt=$5(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});Dor=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}`)}},GOt=new Set(["string","number","symbol"]),Lor=new Set(["string","number","bigint","boolean","symbol","undefined"]);WOt={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]},For={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};pTe=class{constructor(...t){}},YOt=(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,qOt,2)},enumerable:!0})},ZOt=ge("$ZodError",YOt),r8=ge("$ZodError",YOt,{Parent:Error});JOt=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 tR;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>ty(c,s,ey())));throw zTe(a,i?.callee),a}return o.value},Zor=JOt(r8),XOt=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 zTe(a,i?.callee),a}return o.value},Jor=XOt(r8),QOt=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 tR;return s.issues.length?{success:!1,error:new(e??ZOt)(s.issues.map(o=>ty(o,i,ey())))}:{success:!0,data:s.value}},VTe=QOt(r8),$Ot=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}},WTe=$Ot(r8),Xor=/^[cC][^\s-]{8,}$/,Qor=/^[0-9a-z]+$/,$or=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,ear=/^[0-9a-vA-V]{20}$/,tar=/^[A-Za-z0-9]{27}$/,nar=/^[a-zA-Z0-9_-]{21}$/,rar=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,iar=/^([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})$/,Hxt=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)$/,sar=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,oar="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";car=/^(?:(?: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])$/,uar=/^(([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})$/,lar=/^((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])$/,dar=/^(([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])$/,far=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,ePt=/^[A-Za-z0-9_-]*$/,par=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,har=/^\+(?:[0-9]){6,14}[0-9]$/,tPt="(?:(?:\\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])))",mar=new RegExp(`^${tPt}$`);Sar=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},bar=/^\d+$/,Ear=/^-?\d+(?:\.\d+)?/i,_ar=/true|false/i,Tar=/null/i,Rar=/^[^A-Z]*$/,Aar=/^[^a-z]*$/,$u=ge("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),rPt={number:"number",bigint:"bigint",object:"date"},iPt=ge("$ZodCheckLessThan",(e,t)=>{$u.init(e,t);let n=rPt[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=rPt[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})}}),war=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):BOt(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})}}),kar=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]=WOt[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=bar)}),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})}}),Iar=ge("$ZodCheckMaxLength",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!e8(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=n8(r);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),xar=ge("$ZodCheckMinLength",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!e8(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=n8(r);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Oar=ge("$ZodCheckLengthEquals",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!e8(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=n8(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})}}),i8=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=()=>{})}),Par=ge("$ZodCheckRegex",(e,t)=>{i8.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})}}),Nar=ge("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Rar),i8.init(e,t)}),Car=ge("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Aar),i8.init(e,t)}),Mar=ge("$ZodCheckIncludes",(e,t)=>{$u.init(e,t);let n=tO(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})}}),Dar=ge("$ZodCheckStartsWith",(e,t)=>{$u.init(e,t);let n=new RegExp(`^${tO(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})}}),Lar=ge("$ZodCheckEndsWith",(e,t)=>{$u.init(e,t);let n=new RegExp(`.*${tO(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})}}),Uar=ge("$ZodCheckOverwrite",(e,t)=>{$u.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}}),hTe=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let r=t.split(` +`))}Zg(`[Query.streamInput] Finished processing ${n} messages from input stream`),n>0&&this.hasBidirectionalNeeds()&&(Zg("[Query.streamInput] Has bidirectional needs, waiting for first result"),await this.waitForFirstResult()),Zg("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(n){if(!(n instanceof rE))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 oTe(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:Qsr(),request:{subtype:"mcp_message",server_name:t,message:n}};this.transport.write(sm(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}})}},D5=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 C5;let n=t.pathToClaudeCodeExecutable;if(!n){let s=$sr(import.meta.url),o=Lxt(s,"..");n=Lxt(o,"cli.js")}let r={...t.env??process.env};r.CLAUDE_CODE_ENTRYPOINT||(r.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),this.abortController=jTe();let i=new N5({abortController:this.abortController,pathToClaudeCodeExecutable:n,env:r,executable:t.executable??(BTe()?"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 M5(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})})(Uxt||(Uxt={}));nt=ir.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),nE=e=>{switch(typeof e){case"undefined":return nt.undefined;case"string":return nt.string;case"number":return Number.isNaN(e)?nt.nan:nt.number;case"boolean":return nt.boolean;case"function":return nt.function;case"bigint":return nt.bigint;case"symbol":return nt.symbol;case"object":return Array.isArray(e)?nt.array:e===null?nt.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?nt.promise:typeof Map<"u"&&e instanceof Map?nt.map:typeof Set<"u"&&e instanceof Set?nt.set:typeof Date<"u"&&e instanceof Date?nt.date:nt.object;default:return nt.unknown}},Oe=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);tor=(e,t)=>{let n;switch(e.code){case Oe.invalid_type:e.received===nt.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case Oe.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,ir.jsonStringifyReplacer)}`;break;case Oe.unrecognized_keys:n=`Unrecognized key(s) in object: ${ir.joinValues(e.keys,", ")}`;break;case Oe.invalid_union:n="Invalid input";break;case Oe.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${ir.joinValues(e.options)}`;break;case Oe.invalid_enum_value:n=`Invalid enum value. Expected ${ir.joinValues(e.options)}, received '${e.received}'`;break;case Oe.invalid_arguments:n="Invalid function arguments";break;case Oe.invalid_return_type:n="Invalid function return type";break;case Oe.invalid_date:n="Invalid date";break;case Oe.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:ir.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case Oe.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case Oe.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case Oe.custom:n="Invalid input";break;case Oe.invalid_intersection_types:n="Intersection results could not be merged";break;case Oe.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Oe.not_finite:n="Number must be finite";break;default:n=t.defaultError,ir.assertNever(e)}return{message:n}},NU=tor,nor=NU;cTe=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"}),wU=e=>({status:"dirty",value:e}),Xu=e=>({status:"valid",value:e}),Fxt=e=>e.status==="aborted",jxt=e=>e.status==="dirty",Fx=e=>e.status==="valid",L5=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}},Hxt=(e,t)=>{if(Fx(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 nE(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:nE(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:nE(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(L5(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:nE(t)},i=this._parseSync({data:t,path:r.path,parent:r});return Hxt(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:nE(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return Fx(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=>Fx(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:nE(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(L5(i)?i:Promise.resolve(i));return Hxt(r,s)}refine(t,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{let o=t(i),a=()=>s.addIssue({code:Oe.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new 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 oE.create(this)}promise(){return eR.create(this,this._def)}or(t){return Bx.create([this,t],this._def)}and(t){return zx.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 Yx({...ln(this._def),innerType:this,defaultValue:n,typeName:De.ZodDefault})}brand(){return new U5({typeName:De.ZodBranded,type:this,...ln(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Zx({...ln(this._def),innerType:this,catchValue:n,typeName:De.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return F5.create(this,t)}readonly(){return Jx.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},ror=/^c[^\s-]{8,}$/i,ior=/^[0-9a-z]+$/,sor=/^[0-9A-HJKMNP-TV-Z]{26}$/i,oor=/^[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,aor=/^[a-z0-9_-]{21}$/i,cor=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,uor=/^[-+]?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)?)??$/,lor=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,dor="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",por=/^(?:(?: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])$/,hor=/^(?:(?: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])$/,mor=/^(([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]))$/,gor=/^(([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])$/,yor=/^([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}(=)?))?$/,jOt="((\\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])))",bor=new RegExp(`^${jOt}$`);jx=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:Oe.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:Oe.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let o=t.data.length>s.value,a=t.data.lengtht.test(i),{validation:n,code:Oe.invalid_string,...lt.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...lt.errToObj(t)})}url(t){return this._addCheck({kind:"url",...lt.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...lt.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...lt.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...lt.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...lt.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...lt.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...lt.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...lt.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...lt.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...lt.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...lt.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...lt.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...lt.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...lt.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...lt.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...lt.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...lt.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...lt.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...lt.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...lt.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...lt.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...lt.errToObj(n)})}nonempty(t){return this.min(1,lt.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew jx({checks:[],typeName:De.ZodString,coerce:e?.coerce??!1,...ln(e)});CU=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:Oe.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:Oe.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?Aor(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.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 CU({checks:[],typeName:De.ZodNumber,coerce:e?.coerce||!1,...ln(e)});MU=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:Oe.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.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:Oe.invalid_type,expected:nt.bigint,received:n.parsedType}),Vt}gte(t,n){return this.setLimit("min",t,!0,lt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,lt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,lt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,lt.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lt.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:lt.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew MU({checks:[],typeName:De.ZodBigInt,coerce:e?.coerce??!1,...ln(e)});DU=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:Oe.invalid_type,expected:nt.boolean,received:r.parsedType}),Vt}return Xu(t.data)}};DU.create=e=>new DU({typeName:De.ZodBoolean,coerce:e?.coerce||!1,...ln(e)});LU=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:Oe.invalid_type,expected:nt.date,received:s.parsedType}),Vt}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return Ye(s,{code:Oe.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:Oe.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 LU({checks:[],coerce:e?.coerce||!1,typeName:De.ZodDate,...ln(e)});UU=class extends Tn{_parse(t){if(this._getType(t)!==nt.symbol){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.symbol,received:r.parsedType}),Vt}return Xu(t.data)}};UU.create=e=>new UU({typeName:De.ZodSymbol,...ln(e)});Hx=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.undefined,received:r.parsedType}),Vt}return Xu(t.data)}};Hx.create=e=>new Hx({typeName:De.ZodUndefined,...ln(e)});qx=class extends Tn{_parse(t){if(this._getType(t)!==nt.null){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.null,received:r.parsedType}),Vt}return Xu(t.data)}};qx.create=e=>new qx({typeName:De.ZodNull,...ln(e)});FU=class extends Tn{constructor(){super(...arguments),this._any=!0}_parse(t){return Xu(t.data)}};FU.create=e=>new FU({typeName:De.ZodAny,...ln(e)});sE=class extends Tn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Xu(t.data)}};sE.create=e=>new sE({typeName:De.ZodUnknown,...ln(e)});am=class extends Tn{_parse(t){let n=this._getOrReturnCtx(t);return Ye(n,{code:Oe.invalid_type,expected:nt.never,received:n.parsedType}),Vt}};am.create=e=>new am({typeName:De.ZodNever,...ln(e)});jU=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.void,received:r.parsedType}),Vt}return Xu(t.data)}};jU.create=e=>new jU({typeName:De.ZodVoid,...ln(e)});oE=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:Oe.invalid_type,expected:nt.array,received:n.parsedType}),Vt;if(i.exactLength!==null){let o=n.data.length>i.exactLength.value,a=n.data.lengthi.maxLength.value&&(Ye(n,{code:Oe.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,a)=>i.type._parseAsync(new 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)}};oE.create=(e,t)=>new oE({type:e,minLength:null,maxLength:null,exactLength:null,typeName:De.ZodArray,...ln(t)});jl=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:Oe.invalid_type,expected:nt.object,received:u.parsedType}),Vt}let{status:r,ctx:i}=this._processInputParams(t),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof am&&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 am){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:Oe.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new 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 Dx(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 qOt(ir.objectKeys(this.shape))}};jl.create=(e,t)=>new jl({shape:()=>e,unknownKeys:"strip",catchall:am.create(),typeName:De.ZodObject,...ln(t)});jl.strictCreate=(e,t)=>new jl({shape:()=>e,unknownKeys:"strict",catchall:am.create(),typeName:De.ZodObject,...ln(t)});jl.lazycreate=(e,t)=>new jl({shape:e,unknownKeys:"strip",catchall:am.create(),typeName:De.ZodObject,...ln(t)});Bx=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:Oe.invalid_union,unionErrors:o}),Vt}if(n.common.async)return Promise.all(r.map(async s=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of r){let u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new Zd(c));return Ye(n,{code:Oe.invalid_union,unionErrors:a}),Vt}}get options(){return this._def.options}};Bx.create=(e,t)=>new Bx({options:e,typeName:De.ZodUnion,...ln(t)});Yg=e=>e instanceof Gx?Yg(e.schema):e instanceof gp?Yg(e.innerType()):e instanceof Vx?[e.value]:e instanceof Wx?e.options:e instanceof Kx?ir.objectValues(e.enum):e instanceof Yx?Yg(e._def.innerType):e instanceof Hx?[void 0]:e instanceof qx?[null]:e instanceof mp?[void 0,...Yg(e.unwrap())]:e instanceof $g?[null,...Yg(e.unwrap())]:e instanceof U5||e instanceof Jx?Yg(e.unwrap()):e instanceof Zx?Yg(e._def.innerType):[],uTe=class e extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.object)return Ye(n,{code:Oe.invalid_type,expected:nt.object,received:n.parsedType}),Vt;let r=this.discriminator,i=n.data[r],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(Ye(n,{code:Oe.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Vt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let s of n){let o=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)})}};zx=class extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(Fxt(s)||Fxt(o))return Vt;let a=lTe(s.value,o.value);return a.valid?((jxt(s)||jxt(o))&&n.dirty(),{status:n.value,value:a.data}):(Ye(r,{code:Oe.invalid_intersection_types}),Vt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};zx.create=(e,t,n)=>new zx({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:Oe.invalid_type,expected:nt.array,received:r.parsedType}),Vt;if(r.data.lengththis._def.items.length&&(Ye(r,{code:Oe.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new 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)})};dTe=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:Oe.invalid_type,expected:nt.object,received:r.parsedType}),Vt;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in r.data)i.push({key:s._parse(new 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:jx.create(),valueType:t,typeName:De.ZodRecord,...ln(n)})}},HU=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:Oe.invalid_type,expected:nt.map,received:r.parsedType}),Vt;let i=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([a,c],u)=>({key:i._parse(new 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}}}};HU.create=(e,t,n)=>new HU({valueType:t,keyType:e,typeName:De.ZodMap,...ln(n)});qU=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.set)return Ye(r,{code:Oe.invalid_type,expected:nt.set,received:r.parsedType}),Vt;let i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(Ye(r,{code:Oe.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Vt;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((c,u)=>s._parse(new 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)}};qU.create=(e,t)=>new qU({valueType:e,minSize:null,maxSize:null,typeName:De.ZodSet,...ln(t)});fTe=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:Oe.invalid_type,expected:nt.function,received:n.parsedType}),Vt;function r(a,c){return cTe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,aTe(),NU].filter(u=>!!u),issueData:{code:Oe.invalid_arguments,argumentsError:c}})}function i(a,c){return cTe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,aTe(),NU].filter(u=>!!u),issueData:{code:Oe.invalid_return_type,returnTypeError:c}})}let s={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof eR){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(sE.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(sE.create()),returns:n||sE.create(),typeName:De.ZodFunction,...ln(r)})}},Gx=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})}};Gx.create=(e,t)=>new Gx({getter:e,typeName:De.ZodLazy,...ln(t)});Vx=class extends Tn{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return Ye(n,{received:n.data,code:Oe.invalid_literal,expected:this._def.value}),Vt}return{status:"valid",value:t.data}}get value(){return this._def.value}};Vx.create=(e,t)=>new Vx({value:e,typeName:De.ZodLiteral,...ln(t)});Wx=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:Oe.invalid_type}),Vt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return Ye(n,{received:n.data,code:Oe.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})}};Wx.create=qOt;Kx=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:Oe.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:Oe.invalid_enum_value,options:i}),Vt}return Xu(t.data)}get enum(){return this._def.values}};Kx.create=(e,t)=>new Kx({values:e,typeName:De.ZodNativeEnum,...ln(t)});eR=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:Oe.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})))}};eR.create=(e,t)=>new eR({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"?wU(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"?wU(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(!Fx(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=>Fx(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)});Yx=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}};Yx.create=(e,t)=>new Yx({innerType:e,typeName:De.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...ln(t)});Zx=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return L5(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Zd(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Zd(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Zx.create=(e,t)=>new Zx({innerType:e,typeName:De.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...ln(t)});BU=class extends Tn{_parse(t){if(this._getType(t)!==nt.nan){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.nan,received:r.parsedType}),Vt}return{status:"valid",value:t.data}}};BU.create=e=>new BU({typeName:De.ZodNaN,...ln(e)});U5=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}},F5=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(),wU(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})}},Jx=class extends Tn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(Fx(i)&&(i.value=Object.freeze(i.value)),i);return L5(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};Jx.create=(e,t)=>new Jx({innerType:e,typeName:De.ZodReadonly,...ln(t)});oNi={object:jl.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={}));aNi=jx.create,cNi=CU.create,uNi=BU.create,lNi=MU.create,dNi=DU.create,fNi=LU.create,pNi=UU.create,hNi=Hx.create,mNi=qx.create,gNi=FU.create,yNi=sE.create,SNi=am.create,bNi=jU.create,ENi=oE.create,wor=jl.create,_Ni=jl.strictCreate,TNi=Bx.create,vNi=uTe.create,RNi=zx.create,ANi=Qg.create,wNi=dTe.create,kNi=HU.create,INi=qU.create,xNi=fTe.create,ONi=Gx.create,PNi=Vx.create,NNi=Wx.create,CNi=Kx.create,MNi=eR.create,DNi=gp.create,LNi=mp.create,UNi=$g.create,FNi=gp.createWithPreprocess,jNi=F5.create,HNi=Object.freeze({status:"aborted"});tR=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},pTe={};Gr={};SOt(Gr,{unwrapMessage:()=>kU,stringifyPrimitive:()=>WTe,required:()=>Vor,randomString:()=>Mor,propertyKeyTypes:()=>VOt,promiseAllObject:()=>Cor,primitiveTypes:()=>Uor,prefixIssues:()=>iE,pick:()=>Hor,partial:()=>Gor,optionalKeys:()=>WOt,omit:()=>qor,numKeys:()=>Dor,nullish:()=>e8,normalizeParams:()=>Ht,merge:()=>zor,jsonStringifyReplacer:()=>BOt,joinValues:()=>hTe,issue:()=>YOt,isPlainObject:()=>GU,isObject:()=>zU,getSizableOrigin:()=>Wor,getParsedType:()=>Lor,getLengthableOrigin:()=>n8,getEnumValues:()=>zTe,getElementAtPath:()=>Nor,floatSafeRemainder:()=>zOt,finalizeIssue:()=>ty,extend:()=>Bor,escapeRegex:()=>tO,esc:()=>Lx,defineLazy:()=>ki,createTransparentProxy:()=>For,clone:()=>ny,cleanRegex:()=>t8,cleanEnum:()=>Kor,captureStackTrace:()=>VTe,cached:()=>$5,assignProp:()=>GTe,assertNotEqual:()=>Ior,assertNever:()=>Oor,assertIs:()=>xor,assertEqual:()=>kor,assert:()=>Por,allowsEval:()=>GOt,aborted:()=>Ux,NUMBER_FORMAT_RANGES:()=>KOt,Class:()=>mTe,BIGINT_FORMAT_RANGES:()=>jor});VTe=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};GOt=$5(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});Lor=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}`)}},VOt=new Set(["string","number","symbol"]),Uor=new Set(["string","number","bigint","boolean","symbol","undefined"]);KOt={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]},jor={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};mTe=class{constructor(...t){}},ZOt=(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,BOt,2)},enumerable:!0})},JOt=ge("$ZodError",ZOt),r8=ge("$ZodError",ZOt,{Parent:Error});XOt=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 tR;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>ty(c,s,ey())));throw VTe(a,i?.callee),a}return o.value},Jor=XOt(r8),QOt=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 VTe(a,i?.callee),a}return o.value},Xor=QOt(r8),$Ot=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 tR;return s.issues.length?{success:!1,error:new(e??JOt)(s.issues.map(o=>ty(o,i,ey())))}:{success:!0,data:s.value}},KTe=$Ot(r8),ePt=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}},YTe=ePt(r8),Qor=/^[cC][^\s-]{8,}$/,$or=/^[0-9a-z]+$/,ear=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,tar=/^[0-9a-vA-V]{20}$/,nar=/^[A-Za-z0-9]{27}$/,rar=/^[a-zA-Z0-9_-]{21}$/,iar=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,sar=/^([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})$/,qxt=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)$/,oar=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,aar="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";uar=/^(?:(?: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])$/,lar=/^(([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})$/,dar=/^((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])$/,far=/^(([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])$/,par=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,tPt=/^[A-Za-z0-9_-]*$/,har=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,mar=/^\+(?:[0-9]){6,14}[0-9]$/,nPt="(?:(?:\\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])))",gar=new RegExp(`^${nPt}$`);bar=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Ear=/^\d+$/,_ar=/^-?\d+(?:\.\d+)?/i,Tar=/true|false/i,Rar=/null/i,Aar=/^[^A-Z]*$/,war=/^[^a-z]*$/,$u=ge("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),iPt={number:"number",bigint:"bigint",object:"date"},sPt=ge("$ZodCheckLessThan",(e,t)=>{$u.init(e,t);let n=iPt[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=iPt[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})}}),kar=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):zOt(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})}}),Iar=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]=KOt[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=Ear)}),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})}}),xar=ge("$ZodCheckMaxLength",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!e8(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=n8(r);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Oar=ge("$ZodCheckMinLength",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!e8(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=n8(r);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Par=ge("$ZodCheckLengthEquals",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!e8(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=n8(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})}}),i8=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=()=>{})}),Nar=ge("$ZodCheckRegex",(e,t)=>{i8.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})}}),Car=ge("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Aar),i8.init(e,t)}),Mar=ge("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=war),i8.init(e,t)}),Dar=ge("$ZodCheckIncludes",(e,t)=>{$u.init(e,t);let n=tO(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})}}),Lar=ge("$ZodCheckStartsWith",(e,t)=>{$u.init(e,t);let n=new RegExp(`^${tO(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})}}),Uar=ge("$ZodCheckEndsWith",(e,t)=>{$u.init(e,t);let n=new RegExp(`.*${tO(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})}}),Far=ge("$ZodCheckOverwrite",(e,t)=>{$u.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}}),gTe=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(` -`))}},Far={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=Far;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=Ux(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 tR;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=Ux(s,d)))});else{if(s.issues.length===d)continue;c||(c=Ux(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 tR;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=VTe(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return WTe(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),KTe=ge("$ZodString",(e,t)=>{li.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Sar(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)=>{i8.init(e,t),KTe.init(e,t)}),jar=ge("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=iar),Gi.init(e,t)}),Har=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=Hxt(r))}else t.pattern??(t.pattern=Hxt());Gi.init(e,t)}),qar=ge("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=sar),Gi.init(e,t)}),Bar=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:par.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})}}}),zar=ge("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=aar()),Gi.init(e,t)}),Gar=ge("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=nar),Gi.init(e,t)}),Var=ge("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Xor),Gi.init(e,t)}),War=ge("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Qor),Gi.init(e,t)}),Kar=ge("$ZodULID",(e,t)=>{t.pattern??(t.pattern=$or),Gi.init(e,t)}),Yar=ge("$ZodXID",(e,t)=>{t.pattern??(t.pattern=ear),Gi.init(e,t)}),Zar=ge("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=tar),Gi.init(e,t)}),Jar=ge("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=yar(t)),Gi.init(e,t)}),Xar=ge("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=mar),Gi.init(e,t)}),Qar=ge("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=gar(t)),Gi.init(e,t)}),$ar=ge("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=rar),Gi.init(e,t)}),ecr=ge("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=car),Gi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),tcr=ge("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=uar),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})}}}),ncr=ge("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=lar),Gi.init(e,t)}),rcr=ge("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=dar),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})}}});icr=ge("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=far),Gi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{oPt(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});ocr=ge("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=ePt),Gi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{scr(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),acr=ge("$ZodE164",(e,t)=>{t.pattern??(t.pattern=har),Gi.init(e,t)});ucr=ge("$ZodJWT",(e,t)=>{Gi.init(e,t),e._zod.check=n=>{ccr(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),aPt=ge("$ZodNumber",(e,t)=>{li.init(e,t),e._zod.pattern=e._zod.bag.pattern??Ear,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}}),lcr=ge("$ZodNumber",(e,t)=>{kar.init(e,t),aPt.init(e,t)}),dcr=ge("$ZodBoolean",(e,t)=>{li.init(e,t),e._zod.pattern=_ar,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}}),fcr=ge("$ZodNull",(e,t)=>{li.init(e,t),e._zod.pattern=Tar,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}}),pcr=ge("$ZodUnknown",(e,t)=>{li.init(e,t),e._zod.parse=n=>n}),hcr=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)});mcr=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;oqxt(u,n,o))):qxt(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});cPt=ge("$ZodObject",(e,t)=>{li.init(e,t);let n=$5(()=>{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=VOt(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 hTe(["shape","payload","ctx"]),p=n.value,h=b=>{let S=Lx(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=Lx(b);f.write(` +`))}},jar={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=jar;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=Ux(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 tR;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=Ux(s,d)))});else{if(s.issues.length===d)continue;c||(c=Ux(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 tR;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=KTe(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return YTe(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()??bar(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}}),Vi=ge("$ZodStringFormat",(e,t)=>{i8.init(e,t),ZTe.init(e,t)}),Har=ge("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=sar),Vi.init(e,t)}),qar=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=qxt(r))}else t.pattern??(t.pattern=qxt());Vi.init(e,t)}),Bar=ge("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=oar),Vi.init(e,t)}),zar=ge("$ZodURL",(e,t)=>{Vi.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:har.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})}}}),Gar=ge("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=car()),Vi.init(e,t)}),Var=ge("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=rar),Vi.init(e,t)}),War=ge("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Qor),Vi.init(e,t)}),Kar=ge("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=$or),Vi.init(e,t)}),Yar=ge("$ZodULID",(e,t)=>{t.pattern??(t.pattern=ear),Vi.init(e,t)}),Zar=ge("$ZodXID",(e,t)=>{t.pattern??(t.pattern=tar),Vi.init(e,t)}),Jar=ge("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=nar),Vi.init(e,t)}),Xar=ge("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Sar(t)),Vi.init(e,t)}),Qar=ge("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=gar),Vi.init(e,t)}),$ar=ge("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=yar(t)),Vi.init(e,t)}),ecr=ge("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=iar),Vi.init(e,t)}),tcr=ge("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=uar),Vi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),ncr=ge("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=lar),Vi.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})}}}),rcr=ge("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=dar),Vi.init(e,t)}),icr=ge("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=far),Vi.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})}}});scr=ge("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=par),Vi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{aPt(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});acr=ge("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=tPt),Vi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{ocr(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),ccr=ge("$ZodE164",(e,t)=>{t.pattern??(t.pattern=mar),Vi.init(e,t)});lcr=ge("$ZodJWT",(e,t)=>{Vi.init(e,t),e._zod.check=n=>{ucr(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),cPt=ge("$ZodNumber",(e,t)=>{li.init(e,t),e._zod.pattern=e._zod.bag.pattern??_ar,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}}),dcr=ge("$ZodNumber",(e,t)=>{Iar.init(e,t),cPt.init(e,t)}),fcr=ge("$ZodBoolean",(e,t)=>{li.init(e,t),e._zod.pattern=Tar,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}}),pcr=ge("$ZodNull",(e,t)=>{li.init(e,t),e._zod.pattern=Rar,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}}),hcr=ge("$ZodUnknown",(e,t)=>{li.init(e,t),e._zod.parse=n=>n}),mcr=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)});gcr=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;oBxt(u,n,o))):Bxt(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});uPt=ge("$ZodObject",(e,t)=>{li.init(e,t);let n=$5(()=>{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=WOt(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 gTe(["shape","payload","ctx"]),p=n.value,h=b=>{let S=Lx(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=Lx(b);f.write(` if (${S}.issues.length) { if (input[${E}] === undefined) { if (${E} in input) { @@ -1376,9 +1376,9 @@ diagnostic: ${s}${a}`}],isError:!0}}var TU,Ext,_xt=v(()=>{"use strict";vl();TU=1 if (${S}.issues.length) payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ ...iss, path: iss.path ? [${Lx(b)}, ...iss.path] : [${Lx(b)}] - })));`),f.write(`newResult[${Lx(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=zU,o=!dTe.jitless,c=o&&zOt.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?Bxt(A,d,E,p):w5(A,d,E))):R?Bxt(T,d,E,p):w5(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(_=>w5(_,d,S))):w5(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}});uPt=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=>t8(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=>zxt(o,n,e,r)):zxt(s,n,e,r)}}),gcr=ge("$ZodDiscriminatedUnion",(e,t)=>{uPt.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=$5(()=>{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(!zU(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)}}),ycr=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])=>Gxt(n,c,u)):Gxt(n,s,o)}});Scr=ge("$ZodRecord",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!GU(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;let s=[];if(t.keyType._zod.values){let o=t.keyType._zod.values;n.value={};for(let c of o)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&n.issues.push(...iE(c,l.issues)),n.value[c]=l.value})):(u.issues.length&&n.issues.push(...iE(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(...iE(o,u.issues)),n.value[a.value]=u.value})):(c.issues.length&&n.issues.push(...iE(o,c.issues)),n.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),bcr=ge("$ZodEnum",(e,t)=>{li.init(e,t);let n=qTe(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>GOt.has(typeof r)).map(r=>typeof r=="string"?tO(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}}),Ecr=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"?tO(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}}),_cr=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 tR;return n.value=i,n}}),Tcr=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(`^(${t8(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)}),vcr=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(`^(${t8(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)}),Rcr=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=>Vxt(s,t)):Vxt(i,t)}});Acr=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))}),wcr=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=>Wxt(s,e)):Wxt(i,e)}});kcr=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)}}),Icr=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=>Kxt(s,t,r)):Kxt(i,t,r)}});xcr=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(Yxt):Yxt(i)}});Ocr=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=>Zxt(s,n,r,e));Zxt(i,n,r,e)}});Pcr=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},Ncr=()=>{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 ${Pcr(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${GTe(r.values[0])}`:`Invalid option: expected one of ${fTe(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":""}: ${fTe(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"}}};j5=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)}};IU=Mcr();q5=class{constructor(t){this.counter=0,this.metadataRegistry=t?.metadata??IU,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=qTe(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("/")}/ + })));`),f.write(`newResult[${Lx(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=zU,o=!pTe.jitless,c=o&&GOt.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?zxt(A,d,E,p):w5(A,d,E))):R?zxt(T,d,E,p):w5(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(_=>w5(_,d,S))):w5(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}});lPt=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=>t8(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=>Gxt(o,n,e,r)):Gxt(s,n,e,r)}}),ycr=ge("$ZodDiscriminatedUnion",(e,t)=>{lPt.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=$5(()=>{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(!zU(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)}}),Scr=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])=>Vxt(n,c,u)):Vxt(n,s,o)}});bcr=ge("$ZodRecord",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!GU(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;let s=[];if(t.keyType._zod.values){let o=t.keyType._zod.values;n.value={};for(let c of o)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&n.issues.push(...iE(c,l.issues)),n.value[c]=l.value})):(u.issues.length&&n.issues.push(...iE(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(...iE(o,u.issues)),n.value[a.value]=u.value})):(c.issues.length&&n.issues.push(...iE(o,c.issues)),n.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),Ecr=ge("$ZodEnum",(e,t)=>{li.init(e,t);let n=zTe(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>VOt.has(typeof r)).map(r=>typeof r=="string"?tO(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}}),_cr=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"?tO(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}}),Tcr=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 tR;return n.value=i,n}}),vcr=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(`^(${t8(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)}),Rcr=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(`^(${t8(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)}),Acr=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=>Wxt(s,t)):Wxt(i,t)}});wcr=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))}),kcr=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=>Kxt(s,e)):Kxt(i,e)}});Icr=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)}}),xcr=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=>Yxt(s,t,r)):Yxt(i,t,r)}});Ocr=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(Zxt):Zxt(i)}});Pcr=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=>Jxt(s,n,r,e));Jxt(i,n,r,e)}});Ncr=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},Ccr=()=>{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 ${Ncr(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${WTe(r.values[0])}`:`Invalid option: expected one of ${hTe(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":""}: ${hTe(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"}}};j5=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)}};IU=Dcr();q5=class{constructor(t){this.counter=0,this.metadataRegistry=t?.metadata??IU,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=zTe(i.entries);m.every(g=>typeof g=="number")&&(h.type="number"),m.every(g=>typeof g=="string")&&(h.type="string"),h.enum=m;break}case"literal":{let h=p,m=[];for(let g of i.values)if(g===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof g=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");m.push(Number(g))}else m.push(g);if(m.length!==0)if(m.length===1){let g=m[0];h.type=g===null?"null":typeof g,h.const=g}else m.every(g=>typeof g=="number")&&(h.type="number"),m.every(g=>typeof g=="string")&&(h.type="string"),m.every(g=>typeof g=="boolean")&&(h.type="string"),m.every(g=>g===null)&&(h.type="null"),h.enum=m;break}case"file":{let h=p,m={type:"string",format:"binary",contentEncoding:"binary"},{minimum:g,maximum:y,mime:b}=t._zod.bag;g!==void 0&&(m.minLength=g),y!==void 0&&(m.maxLength=y),b?b.length===1?(m.contentMediaType=b[0],Object.assign(h,m)):h.anyOf=b.map(S=>({...m,contentMediaType:S})):Object.assign(h,m);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{let h=this.process(i.innerType,d);p.anyOf=[h,{type:"null"}];break}case"nonoptional":{this.process(i.innerType,d),a.ref=i.innerType;break}case"success":{let h=p;h.type="boolean";break}case"default":{this.process(i.innerType,d),a.ref=i.innerType,p.default=JSON.parse(JSON.stringify(i.defaultValue));break}case"prefault":{this.process(i.innerType,d),a.ref=i.innerType,this.io==="input"&&(p._prefault=JSON.parse(JSON.stringify(i.defaultValue)));break}case"catch":{this.process(i.innerType,d),a.ref=i.innerType;let h;try{h=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}p.default=h;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let h=p,m=t._zod.pattern;if(!m)throw new Error("Pattern not found in template literal");h.type="string",h.pattern=m.source;break}case"pipe":{let h=this.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;this.process(h,d),a.ref=h;break}case"readonly":{this.process(i.innerType,d),a.ref=i.innerType,p.readOnly=!0;break}case"promise":{this.process(i.innerType,d),a.ref=i.innerType;break}case"optional":{this.process(i.innerType,d),a.ref=i.innerType;break}case"lazy":{let h=t._zod.innerType;this.process(h,d),a.ref=h;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}default:}}}let u=this.metadataRegistry.get(t);return u&&Object.assign(a.schema,u),this.io==="input"&&Io(t)&&(delete a.schema.examples,delete a.schema.default),this.io==="input"&&a.schema._prefault&&((r=a.schema).default??(r.default=a.schema._prefault)),delete a.schema._prefault,this.seen.get(t).schema}emit(t,n){let r={cycles:n?.cycles??"ref",reused:n?.reused??"inline",external:n?.external??void 0},i=this.seen.get(t);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");let s=l=>{let d=this.target==="draft-2020-12"?"$defs":"definitions";if(r.external){let m=r.external.registry.get(l[0])?.id;if(m)return{ref:r.external.uri(m)};let g=l[1].defId??l[1].schema.id??`schema${this.counter++}`;return l[1].defId=g,{defId:g,ref:`${r.external.uri("__shared")}#/${d}/${g}`}}if(l[1]===i)return{ref:"#"};let p=`#/${d}/`,h=l[1].schema.id??`__schema${this.counter++}`;return{defId:h,ref:p+h}},o=l=>{if(l[1].schema.$ref)return;let d=l[1],{ref:f,defId:p}=s(l);d.def={...d.schema},p&&(d.defId=p);let h=d.schema;for(let m in h)delete h[m];h.$ref=f};for(let l of this.seen.entries()){let d=l[1];if(t===l[0]){o(l);continue}if(r.external){let p=r.external.registry.get(l[0])?.id;if(t!==l[0]&&p){o(l);continue}}if(this.metadataRegistry.get(l[0])?.id){o(l);continue}if(d.cycle){if(r.cycles==="throw")throw new Error(`Cycle detected: #/${d.cycle?.join("/")}/ -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`);r.cycles==="ref"&&o(l);continue}if(d.count>1&&r.reused==="ref"){o(l);continue}}let a=(l,d)=>{let f=this.seen.get(l),p=f.def??f.schema,h={...p};if(f.ref===null)return;let m=f.ref;if(f.ref=null,m){a(m,d);let g=this.seen.get(m).schema;g.$ref&&d.target==="draft-7"?(p.allOf=p.allOf??[],p.allOf.push(g)):(Object.assign(p,g),Object.assign(p,h))}f.isParent||this.override({zodSchema:l,jsonSchema:p,path:f.path??[]})};for(let l of[...this.seen.entries()].reverse())a(l[0],{target:this.target});let c={};this.target==="draft-2020-12"?c.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?c.$schema="http://json-schema.org/draft-07/schema#":console.warn(`Invalid target: ${this.target}`),Object.assign(c,i.def);let u=r.external?.defs??{};for(let l of this.seen.entries()){let d=l[1];d.def&&d.defId&&(u[d.defId]=d.def)}!r.external&&Object.keys(u).length>0&&(this.target==="draft-2020-12"?c.$defs=u:c.definitions=u);try{return JSON.parse(JSON.stringify(c))}catch{throw new Error("Error converting schema to JSON.")}}};kur=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)=>Zor(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>VTe(e,n,r),e.parseAsync=async(n,r)=>Jor(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>WTe(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)}),Iur=ge("ZodMiniObject",(e,t)=>{cPt.init(e,t),kur.init(e,t),Gr.defineLazy(e,"shape",()=>t.shape)});pPt={};yOt(pPt,{time:()=>bPt,duration:()=>_Pt,datetime:()=>mPt,date:()=>yPt,ZodISOTime:()=>SPt,ZodISODuration:()=>EPt,ZodISODateTime:()=>hPt,ZodISODate:()=>gPt});hPt=ge("ZodISODateTime",(e,t)=>{Jar.init(e,t),os.init(e,t)});gPt=ge("ZodISODate",(e,t)=>{Xar.init(e,t),os.init(e,t)});SPt=ge("ZodISOTime",(e,t)=>{Qar.init(e,t),os.init(e,t)});EPt=ge("ZodISODuration",(e,t)=>{$ar.init(e,t),os.init(e,t)});TPt=(e,t)=>{ZOt.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>Yor(e,n)},flatten:{value:n=>Kor(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},HNi=ge("ZodError",TPt),s8=ge("ZodError",TPt,{Parent:Error}),Pur=JOt(s8),Nur=XOt(s8),Cur=QOt(s8),Mur=$Ot(s8),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)=>Pur(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Cur(e,n,r),e.parseAsync=async(n,r)=>Nur(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>Mur(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(Rlr(n,r)),e.superRefine=n=>e.check(Alr(n)),e.overwrite=n=>e.check(WU(n)),e.optional=()=>yt(e),e.nullable=()=>rOt(e),e.nullish=()=>yt(rOt(e)),e.nonoptional=n=>glr(e,n),e.array=()=>er(e),e.or=n=>Vi([e,n]),e.and=n=>YTe(e,n),e.transform=n=>yTe(e,xPt(n)),e.default=n=>plr(e,n),e.prefault=n=>mlr(e,n),e.catch=n=>Slr(e,n),e.pipe=n=>yTe(e,n),e.readonly=()=>_lr(e),e.describe=n=>{let r=e.clone();return IU.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return IU.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return IU.get(e);let r=e.clone();return IU.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),vPt=ge("_ZodString",(e,t)=>{KTe.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(pur(...r)),e.includes=(...r)=>e.check(gur(...r)),e.startsWith=(...r)=>e.check(yur(...r)),e.endsWith=(...r)=>e.check(Sur(...r)),e.min=(...r)=>e.check(H5(...r)),e.max=(...r)=>e.check(lPt(...r)),e.length=(...r)=>e.check(dPt(...r)),e.nonempty=(...r)=>e.check(H5(1,...r)),e.lowercase=r=>e.check(hur(r)),e.uppercase=r=>e.check(mur(r)),e.trim=()=>e.check(Eur()),e.normalize=(...r)=>e.check(bur(...r)),e.toLowerCase=()=>e.check(_ur()),e.toUpperCase=()=>e.check(Tur())}),Dur=ge("ZodString",(e,t)=>{KTe.init(e,t),vPt.init(e,t),e.email=n=>e.check(Lcr(Lur,n)),e.url=n=>e.check(qcr(Uur,n)),e.jwt=n=>e.check(nur(Qur,n)),e.emoji=n=>e.check(Bcr(Fur,n)),e.guid=n=>e.check(Jxt(tOt,n)),e.uuid=n=>e.check(Ucr(k5,n)),e.uuidv4=n=>e.check(Fcr(k5,n)),e.uuidv6=n=>e.check(jcr(k5,n)),e.uuidv7=n=>e.check(Hcr(k5,n)),e.nanoid=n=>e.check(zcr(jur,n)),e.guid=n=>e.check(Jxt(tOt,n)),e.cuid=n=>e.check(Gcr(Hur,n)),e.cuid2=n=>e.check(Vcr(qur,n)),e.ulid=n=>e.check(Wcr(Bur,n)),e.base64=n=>e.check($cr(Zur,n)),e.base64url=n=>e.check(eur(Jur,n)),e.xid=n=>e.check(Kcr(zur,n)),e.ksuid=n=>e.check(Ycr(Gur,n)),e.ipv4=n=>e.check(Zcr(Vur,n)),e.ipv6=n=>e.check(Jcr(Wur,n)),e.cidrv4=n=>e.check(Xcr(Kur,n)),e.cidrv6=n=>e.check(Qcr(Yur,n)),e.e164=n=>e.check(tur(Xur,n)),e.datetime=n=>e.check(mPt(n)),e.date=n=>e.check(yPt(n)),e.time=n=>e.check(bPt(n)),e.duration=n=>e.check(_Pt(n))});os=ge("ZodStringFormat",(e,t)=>{Gi.init(e,t),vPt.init(e,t)}),Lur=ge("ZodEmail",(e,t)=>{qar.init(e,t),os.init(e,t)}),tOt=ge("ZodGUID",(e,t)=>{jar.init(e,t),os.init(e,t)}),k5=ge("ZodUUID",(e,t)=>{Har.init(e,t),os.init(e,t)}),Uur=ge("ZodURL",(e,t)=>{Bar.init(e,t),os.init(e,t)}),Fur=ge("ZodEmoji",(e,t)=>{zar.init(e,t),os.init(e,t)}),jur=ge("ZodNanoID",(e,t)=>{Gar.init(e,t),os.init(e,t)}),Hur=ge("ZodCUID",(e,t)=>{Var.init(e,t),os.init(e,t)}),qur=ge("ZodCUID2",(e,t)=>{War.init(e,t),os.init(e,t)}),Bur=ge("ZodULID",(e,t)=>{Kar.init(e,t),os.init(e,t)}),zur=ge("ZodXID",(e,t)=>{Yar.init(e,t),os.init(e,t)}),Gur=ge("ZodKSUID",(e,t)=>{Zar.init(e,t),os.init(e,t)}),Vur=ge("ZodIPv4",(e,t)=>{ecr.init(e,t),os.init(e,t)}),Wur=ge("ZodIPv6",(e,t)=>{tcr.init(e,t),os.init(e,t)}),Kur=ge("ZodCIDRv4",(e,t)=>{ncr.init(e,t),os.init(e,t)}),Yur=ge("ZodCIDRv6",(e,t)=>{rcr.init(e,t),os.init(e,t)}),Zur=ge("ZodBase64",(e,t)=>{icr.init(e,t),os.init(e,t)}),Jur=ge("ZodBase64URL",(e,t)=>{ocr.init(e,t),os.init(e,t)}),Xur=ge("ZodE164",(e,t)=>{acr.init(e,t),os.init(e,t)}),Qur=ge("ZodJWT",(e,t)=>{ucr.init(e,t),os.init(e,t)}),RPt=ge("ZodNumber",(e,t)=>{aPt.init(e,t),ss.init(e,t),e.gt=(r,i)=>e.check(Qxt(r,i)),e.gte=(r,i)=>e.check(X_e(r,i)),e.min=(r,i)=>e.check(X_e(r,i)),e.lt=(r,i)=>e.check(Xxt(r,i)),e.lte=(r,i)=>e.check(J_e(r,i)),e.max=(r,i)=>e.check(J_e(r,i)),e.int=r=>e.check(nOt(r)),e.safe=r=>e.check(nOt(r)),e.positive=r=>e.check(Qxt(0,r)),e.nonnegative=r=>e.check(X_e(0,r)),e.negative=r=>e.check(Xxt(0,r)),e.nonpositive=r=>e.check(J_e(0,r)),e.multipleOf=(r,i)=>e.check($xt(r,i)),e.step=(r,i)=>e.check($xt(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});$ur=ge("ZodNumberFormat",(e,t)=>{lcr.init(e,t),RPt.init(e,t)});elr=ge("ZodBoolean",(e,t)=>{dcr.init(e,t),ss.init(e,t)});tlr=ge("ZodNull",(e,t)=>{fcr.init(e,t),ss.init(e,t)});nlr=ge("ZodUnknown",(e,t)=>{pcr.init(e,t),ss.init(e,t)});rlr=ge("ZodNever",(e,t)=>{hcr.init(e,t),ss.init(e,t)});slr=ge("ZodArray",(e,t)=>{mcr.init(e,t),ss.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(H5(n,r)),e.nonempty=n=>e.check(H5(1,n)),e.max=(n,r)=>e.check(lPt(n,r)),e.length=(n,r)=>e.check(dPt(n,r)),e.unwrap=()=>e.element});wPt=ge("ZodObject",(e,t)=>{cPt.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:ilr()}),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(OPt,e,n[0]),e.required=(...n)=>Gr.required(PPt,e,n[0])});kPt=ge("ZodUnion",(e,t)=>{uPt.init(e,t),ss.init(e,t),e.options=t.options});olr=ge("ZodDiscriminatedUnion",(e,t)=>{kPt.init(e,t),gcr.init(e,t)});alr=ge("ZodIntersection",(e,t)=>{ycr.init(e,t),ss.init(e,t)});clr=ge("ZodRecord",(e,t)=>{Scr.init(e,t),ss.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});gTe=ge("ZodEnum",(e,t)=>{bcr.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 gTe({...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 gTe({...t,checks:[],...Gr.normalizeParams(i),entries:s})}});ulr=ge("ZodLiteral",(e,t)=>{Ecr.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]}})});llr=ge("ZodTransform",(e,t)=>{_cr.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)}});OPt=ge("ZodOptional",(e,t)=>{Tcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});dlr=ge("ZodNullable",(e,t)=>{vcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});flr=ge("ZodDefault",(e,t)=>{Rcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});hlr=ge("ZodPrefault",(e,t)=>{Acr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});PPt=ge("ZodNonOptional",(e,t)=>{wcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});ylr=ge("ZodCatch",(e,t)=>{kcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});blr=ge("ZodPipe",(e,t)=>{Icr.init(e,t),ss.init(e,t),e.in=t.in,e.out=t.out});Elr=ge("ZodReadonly",(e,t)=>{xcr.init(e,t),ss.init(e,t)});NPt=ge("ZodCustom",(e,t)=>{Ocr.init(e,t),ss.init(e,t)});ey(Ccr());MPt="2025-11-25",wlr=[MPt,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Jg="io.modelcontextprotocol/related-task",o8="2.0",om=vlr(e=>e!==null&&(typeof e=="object"||typeof e=="function")),DPt=Vi([he(),ui().int()]),LPt=he(),klr=Sp({ttl:Vi([ui(),APt()]).optional(),pollInterval:ui().optional()}),ZTe=Sp({taskId:he()}),Ilr=Sp({progressToken:DPt.optional(),[Jg]:ZTe.optional()}),el=Sp({task:klr.optional(),_meta:Ilr.optional()}),ja=Ge({method:he(),params:el.optional()}),nR=Sp({_meta:Ge({[Jg]:yt(ZTe)}).passthrough().optional()}),Xd=Ge({method:he(),params:nR.optional()}),Ac=Sp({_meta:Sp({[Jg]:ZTe.optional()}).optional()}),a8=Vi([he(),ui().int()]),UPt=Ge({jsonrpc:St(o8),id:a8,...ja.shape}).strict(),iOt=e=>UPt.safeParse(e).success,FPt=Ge({jsonrpc:St(o8),...Xd.shape}).strict(),xlr=e=>FPt.safeParse(e).success,jPt=Ge({jsonrpc:St(o8),id:a8,result:Ac}).strict(),I5=e=>jPt.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={}));HPt=Ge({jsonrpc:St(o8),id:a8,error:Ge({code:ui().int(),message:he(),data:yt(xo())})}).strict(),Olr=e=>HPt.safeParse(e).success,qNi=Vi([UPt,FPt,jPt,HPt]),JTe=Ac.strict(),Plr=nR.extend({requestId:a8,reason:he().optional()}),XTe=Xd.extend({method:St("notifications/cancelled"),params:Plr}),Nlr=Ge({src:he(),mimeType:he().optional(),sizes:er(he()).optional()}),YU=Ge({icons:er(Nlr).optional()}),Xx=Ge({name:he(),title:he().optional()}),qPt=Xx.extend({...Xx.shape,...YU.shape,version:he(),websiteUrl:he().optional()}),Clr=YTe(Ge({applyDefaults:vc().optional()}),Oo(he(),xo())),Mlr=CPt(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,YTe(Ge({form:Clr.optional(),url:om.optional()}),Oo(he(),xo()).optional())),Dlr=Ge({list:yt(Ge({}).passthrough()),cancel:yt(Ge({}).passthrough()),requests:yt(Ge({sampling:yt(Ge({createMessage:yt(Ge({}).passthrough())}).passthrough()),elicitation:yt(Ge({create:yt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Llr=Ge({list:yt(Ge({}).passthrough()),cancel:yt(Ge({}).passthrough()),requests:yt(Ge({tools:yt(Ge({call:yt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Ulr=Ge({experimental:Oo(he(),om).optional(),sampling:Ge({context:om.optional(),tools:om.optional()}).optional(),elicitation:Mlr.optional(),roots:Ge({listChanged:vc().optional()}).optional(),tasks:yt(Dlr)}),Flr=el.extend({protocolVersion:he(),capabilities:Ulr,clientInfo:qPt}),BPt=ja.extend({method:St("initialize"),params:Flr}),jlr=Ge({experimental:Oo(he(),om).optional(),logging:om.optional(),completions:om.optional(),prompts:yt(Ge({listChanged:yt(vc())})),resources:Ge({subscribe:vc().optional(),listChanged:vc().optional()}).optional(),tools:Ge({listChanged:vc().optional()}).optional(),tasks:yt(Llr)}).passthrough(),Hlr=Ac.extend({protocolVersion:he(),capabilities:jlr,serverInfo:qPt,instructions:he().optional()}),zPt=Xd.extend({method:St("notifications/initialized")}),QTe=ja.extend({method:St("ping")}),qlr=Ge({progress:ui(),total:yt(ui()),message:yt(he())}),Blr=Ge({...nR.shape,...qlr.shape,progressToken:DPt}),$Te=Xd.extend({method:St("notifications/progress"),params:Blr}),zlr=el.extend({cursor:LPt.optional()}),ZU=ja.extend({params:zlr.optional()}),JU=Ac.extend({nextCursor:yt(LPt)}),XU=Ge({taskId:he(),status:Rc(["working","input_required","completed","failed","cancelled"]),ttl:Vi([ui(),APt()]),createdAt:he(),lastUpdatedAt:he(),pollInterval:yt(ui()),statusMessage:yt(he())}),c8=Ac.extend({task:XU}),Glr=nR.merge(XU),B5=Xd.extend({method:St("notifications/tasks/status"),params:Glr}),eve=ja.extend({method:St("tasks/get"),params:el.extend({taskId:he()})}),tve=Ac.merge(XU),nve=ja.extend({method:St("tasks/result"),params:el.extend({taskId:he()})}),rve=ZU.extend({method:St("tasks/list")}),ive=JU.extend({tasks:er(XU)}),Vlr=ja.extend({method:St("tasks/cancel"),params:el.extend({taskId:he()})}),Wlr=Ac.merge(XU),GPt=Ge({uri:he(),mimeType:yt(he()),_meta:Oo(he(),xo()).optional()}),VPt=GPt.extend({text:he()}),sve=he().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),WPt=GPt.extend({blob:sve}),nO=Ge({audience:er(Rc(["user","assistant"])).optional(),priority:ui().min(0).max(1).optional(),lastModified:pPt.datetime({offset:!0}).optional()}),KPt=Ge({...Xx.shape,...YU.shape,uri:he(),description:yt(he()),mimeType:yt(he()),annotations:nO.optional(),_meta:yt(Sp({}))}),Klr=Ge({...Xx.shape,...YU.shape,uriTemplate:he(),description:yt(he()),mimeType:yt(he()),annotations:nO.optional(),_meta:yt(Sp({}))}),STe=ZU.extend({method:St("resources/list")}),Ylr=JU.extend({resources:er(KPt)}),bTe=ZU.extend({method:St("resources/templates/list")}),Zlr=JU.extend({resourceTemplates:er(Klr)}),ove=el.extend({uri:he()}),Jlr=ove,ETe=ja.extend({method:St("resources/read"),params:Jlr}),Xlr=Ac.extend({contents:er(Vi([VPt,WPt]))}),Qlr=Xd.extend({method:St("notifications/resources/list_changed")}),$lr=ove,edr=ja.extend({method:St("resources/subscribe"),params:$lr}),tdr=ove,ndr=ja.extend({method:St("resources/unsubscribe"),params:tdr}),rdr=nR.extend({uri:he()}),idr=Xd.extend({method:St("notifications/resources/updated"),params:rdr}),sdr=Ge({name:he(),description:yt(he()),required:yt(vc())}),odr=Ge({...Xx.shape,...YU.shape,description:yt(he()),arguments:yt(er(sdr)),_meta:yt(Sp({}))}),_Te=ZU.extend({method:St("prompts/list")}),adr=JU.extend({prompts:er(odr)}),cdr=el.extend({name:he(),arguments:Oo(he(),he()).optional()}),TTe=ja.extend({method:St("prompts/get"),params:cdr}),ave=Ge({type:St("text"),text:he(),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),cve=Ge({type:St("image"),data:sve,mimeType:he(),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),uve=Ge({type:St("audio"),data:sve,mimeType:he(),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),udr=Ge({type:St("tool_use"),name:he(),id:he(),input:Ge({}).passthrough(),_meta:yt(Ge({}).passthrough())}).passthrough(),ldr=Ge({type:St("resource"),resource:Vi([VPt,WPt]),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),ddr=KPt.extend({type:St("resource_link")}),lve=Vi([ave,cve,uve,ddr,ldr]),fdr=Ge({role:Rc(["user","assistant"]),content:lve}),pdr=Ac.extend({description:yt(he()),messages:er(fdr)}),hdr=Xd.extend({method:St("notifications/prompts/list_changed")}),mdr=Ge({title:he().optional(),readOnlyHint:vc().optional(),destructiveHint:vc().optional(),idempotentHint:vc().optional(),openWorldHint:vc().optional()}),gdr=Ge({taskSupport:Rc(["required","optional","forbidden"]).optional()}),YPt=Ge({...Xx.shape,...YU.shape,description:he().optional(),inputSchema:Ge({type:St("object"),properties:Oo(he(),om).optional(),required:er(he()).optional()}).catchall(xo()),outputSchema:Ge({type:St("object"),properties:Oo(he(),om).optional(),required:er(he()).optional()}).catchall(xo()).optional(),annotations:yt(mdr),execution:yt(gdr),_meta:Oo(he(),xo()).optional()}),vTe=ZU.extend({method:St("tools/list")}),ydr=JU.extend({tools:er(YPt)}),dve=Ac.extend({content:er(lve).default([]),structuredContent:Oo(he(),xo()).optional(),isError:yt(vc())}),BNi=dve.or(Ac.extend({toolResult:xo()})),Sdr=el.extend({name:he(),arguments:yt(Oo(he(),xo()))}),z5=ja.extend({method:St("tools/call"),params:Sdr}),bdr=Xd.extend({method:St("notifications/tools/list_changed")}),G5=Rc(["debug","info","notice","warning","error","critical","alert","emergency"]),Edr=el.extend({level:G5}),ZPt=ja.extend({method:St("logging/setLevel"),params:Edr}),_dr=nR.extend({level:G5,logger:he().optional(),data:xo()}),Tdr=Xd.extend({method:St("notifications/message"),params:_dr}),vdr=Ge({name:he().optional()}),Rdr=Ge({hints:yt(er(vdr)),costPriority:yt(ui().min(0).max(1)),speedPriority:yt(ui().min(0).max(1)),intelligencePriority:yt(ui().min(0).max(1))}),Adr=Ge({mode:yt(Rc(["auto","required","none"]))}),wdr=Ge({type:St("tool_result"),toolUseId:he().describe("The unique identifier for the corresponding tool call."),content:er(lve).default([]),structuredContent:Ge({}).passthrough().optional(),isError:yt(vc()),_meta:yt(Ge({}).passthrough())}).passthrough(),kdr=IPt("type",[ave,cve,uve]),V5=IPt("type",[ave,cve,uve,udr,wdr]),Idr=Ge({role:Rc(["user","assistant"]),content:Vi([V5,er(V5)]),_meta:yt(Ge({}).passthrough())}).passthrough(),xdr=el.extend({messages:er(Idr),modelPreferences:Rdr.optional(),systemPrompt:he().optional(),includeContext:Rc(["none","thisServer","allServers"]).optional(),temperature:ui().optional(),maxTokens:ui().int(),stopSequences:er(he()).optional(),metadata:om.optional(),tools:yt(er(YPt)),toolChoice:yt(Adr)}),Odr=ja.extend({method:St("sampling/createMessage"),params:xdr}),JPt=Ac.extend({model:he(),stopReason:yt(Rc(["endTurn","stopSequence","maxTokens"]).or(he())),role:Rc(["user","assistant"]),content:kdr}),XPt=Ac.extend({model:he(),stopReason:yt(Rc(["endTurn","stopSequence","maxTokens","toolUse"]).or(he())),role:Rc(["user","assistant"]),content:Vi([V5,er(V5)])}),Pdr=Ge({type:St("boolean"),title:he().optional(),description:he().optional(),default:vc().optional()}),Ndr=Ge({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()}),Cdr=Ge({type:Rc(["number","integer"]),title:he().optional(),description:he().optional(),minimum:ui().optional(),maximum:ui().optional(),default:ui().optional()}),Mdr=Ge({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),default:he().optional()}),Ddr=Ge({type:St("string"),title:he().optional(),description:he().optional(),oneOf:er(Ge({const:he(),title:he()})),default:he().optional()}),Ldr=Ge({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),enumNames:er(he()).optional(),default:he().optional()}),Udr=Vi([Mdr,Ddr]),Fdr=Ge({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:Ge({type:St("string"),enum:er(he())}),default:er(he()).optional()}),jdr=Ge({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:Ge({anyOf:er(Ge({const:he(),title:he()}))}),default:er(he()).optional()}),Hdr=Vi([Fdr,jdr]),qdr=Vi([Ldr,Udr,Hdr]),Bdr=Vi([qdr,Pdr,Ndr,Cdr]),zdr=el.extend({mode:St("form").optional(),message:he(),requestedSchema:Ge({type:St("object"),properties:Oo(he(),Bdr),required:er(he()).optional()})}),Gdr=el.extend({mode:St("url"),message:he(),elicitationId:he(),url:he().url()}),Vdr=Vi([zdr,Gdr]),Wdr=ja.extend({method:St("elicitation/create"),params:Vdr}),Kdr=nR.extend({elicitationId:he()}),Ydr=Xd.extend({method:St("notifications/elicitation/complete"),params:Kdr}),RTe=Ac.extend({action:Rc(["accept","decline","cancel"]),content:CPt(e=>e===null?void 0:e,Oo(he(),Vi([he(),ui(),vc(),er(he())])).optional())}),Zdr=Ge({type:St("ref/resource"),uri:he()}),Jdr=Ge({type:St("ref/prompt"),name:he()}),Xdr=el.extend({ref:Vi([Jdr,Zdr]),argument:Ge({name:he(),value:he()}),context:Ge({arguments:Oo(he(),he()).optional()}).optional()}),ATe=ja.extend({method:St("completion/complete"),params:Xdr});efr=Ac.extend({completion:Sp({values:er(he()).max(100),total:yt(ui().int()),hasMore:yt(vc())})}),tfr=Ge({uri:he().startsWith("file://"),name:he().optional(),_meta:Oo(he(),xo()).optional()}),nfr=ja.extend({method:St("roots/list")}),QPt=Ac.extend({roots:er(tfr)}),rfr=Xd.extend({method:St("notifications/roots/list_changed")}),zNi=Vi([QTe,BPt,ATe,ZPt,TTe,_Te,STe,bTe,ETe,edr,ndr,z5,vTe,eve,nve,rve]),GNi=Vi([XTe,$Te,zPt,rfr,B5]),VNi=Vi([JTe,JPt,XPt,RTe,QPt,tve,ive,c8]),WNi=Vi([QTe,Odr,Wdr,nfr,eve,nve,rve]),KNi=Vi([XTe,$Te,Tdr,idr,Qlr,bdr,hdr,B5,Ydr]),YNi=Vi([JTe,Hlr,efr,pdr,adr,Ylr,Zlr,Xlr,dve,ydr,tve,ive,c8]),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 wTe(i.elicitations,n)}return new e(t,n,r)}},wTe=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:[]}};ifr=Symbol("Let zodToJsonSchema decide on which parser to use"),sOt={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"},sfr=e=>typeof e=="string"?{...sOt,name:e}:{...sOt,...e},ofr=e=>{let t=sfr(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}]))}};eNt=(e,t)=>{let n=0;for(;nEr(e.innerType._def,t);dfr=(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};mfr=e=>"type"in e&&e.type==="string"?!1:"allOf"in e;eTe=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:()=>(eTe===void 0&&(eTe=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),eTe),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-_]*$/};Sfr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");W5={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};aOt=(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};Ofr=(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)},Pfr=(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)}};Ufr=(e,t)=>Er(e.innerType._def,t),Ffr=(e,t,n)=>{switch(t){case De.ZodString:return rNt(e,n);case De.ZodNumber:return wfr(e,n);case De.ZodObject:return kfr(e,n);case De.ZodBigInt:return cfr(e,n);case De.ZodBoolean:return ufr();case De.ZodDate:return nNt(e,n);case De.ZodUndefined:return Dfr(n);case De.ZodNull:return vfr(n);case De.ZodArray:return afr(e,n);case De.ZodUnion:case De.ZodDiscriminatedUnion:return Rfr(e,n);case De.ZodIntersection:return gfr(e,n);case De.ZodTuple:return Mfr(e,n);case De.ZodRecord:return iNt(e,n);case De.ZodLiteral:return yfr(e,n);case De.ZodEnum:return hfr(e);case De.ZodNativeEnum:return _fr(e);case De.ZodNullable:return Afr(e,n);case De.ZodOptional:return Ofr(e,n);case De.ZodMap:return Efr(e,n);case De.ZodSet:return Cfr(e,n);case De.ZodLazy:return()=>e.getter()._def;case De.ZodPromise:return Nfr(e,n);case De.ZodNaN:case De.ZodNever:return Tfr(n);case De.ZodEffects:return pfr(e,n);case De.ZodAny:return Qu(n);case De.ZodUnknown:return Lfr(n);case De.ZodDefault:return ffr(e,n);case De.ZodBranded:return tNt(e,n);case De.ZodReadonly:return Ufr(e,n);case De.ZodCatch:return lfr(e,n);case De.ZodPipeline:return Pfr(e,n);case De.ZodFunction:case De.ZodVoid:case De.ZodSymbol:return;default:return(r=>{})(t)}};jfr=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:eNt(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}},Hfr=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),qfr=(e,t)=>{let n=ofr(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};zfr=6e4,kTe=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(XTe,n=>{this._oncancel(n)}),this.setNotificationHandler($Te,n=>{this._onprogress(n)}),this.setRequestHandler(QTe,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(eve,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(nve,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(!$v(a.status))return await this._waitForTaskUpdate(o,r.signal),await i();if($v(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(rve,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(Vlr,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($v(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),I5(c)||Olr(c)?this._onresponse(c):iOt(c)?this._onrequest(c,u):xlr(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),I5(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(I5(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),I5(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,c8,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},$v(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=OU(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:zfr,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},tve,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},ive,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},Wlr,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=uOt(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=lOt(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=uOt(t);this._notificationHandlers.set(r,i=>{let s=lOt(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"&&iOt(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=B5.parse({method:"notifications/tasks/status",params:a});await this.notification(c),$v(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($v(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=B5.parse({method:"notifications/tasks/status",params:c});await this.notification(u),$v(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}};Vfr=gOt(ROt(),1),Wfr=gOt(Arr(),1);ITe=class{constructor(t){this._ajv=t??Kfr()}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)}}},xTe=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)}};OTe=class extends kTe{constructor(t,n){var r,i;super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(G5.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(zPt,()=>{var s;return(s=this.oninitialized)===null||s===void 0?void 0:s.call(this)}),this._capabilities.logging&&this.setRequestHandler(ZPt,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=G5.safeParse(u);return l.success&&this._loggingLevels.set(c,l.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new xTe(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Gfr(this._capabilities,t)}setRequestHandler(t,n){var r,i,s;let o=KU(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=OU(z5,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=OU(c8,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=OU(dve,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;Zfr((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&&Yfr((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:wlr.includes(n)?n:MPt,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"},JTe)}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},XPt,n):this.request({method:"sampling/createMessage",params:t},JPt,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},RTe,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},RTe,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},QPt,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"})}},sNt=Symbol.for("mcp.completable");(function(e){e.Completable="McpCompletable"})(fOt||(fOt={}));Qfr=/^[A-Za-z0-9._-]{1,128}$/;PTe=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)}},NTe=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 OTe(t,n)}get experimental(){return this._experimental||(this._experimental={tasks:new PTe(this)}),this._experimental}async connect(t){return await this.server.connect(t)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler(tE(vTe)),this.server.assertCanSetRequestHandler(tE(z5)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(vTe,()=>({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=RU(n.inputSchema);return i?cOt(i,{strictUnions:!0,pipeStrategy:"input"}):tpr})(),annotations:n.annotations,execution:n.execution,_meta:n._meta};if(n.outputSchema){let i=RU(n.outputSchema);i&&(r.outputSchema=cOt(i,{strictUnions:!0,pipeStrategy:"output"}))}return r})})),this.server.setRequestHandler(z5,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=RU(t.inputSchema),s=i??t.inputSchema,o=await Q_e(s,n);if(!o.success){let a="error"in o?o.error:"Unknown error",c=$_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=RU(t.outputSchema),s=await Q_e(i,n.structuredContent);if(!s.success){let o="error"in s?s.error:"Unknown error",a=$_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(tE(ATe)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(ATe,async t=>{switch(t.params.ref.type){case"ref/prompt":return Qdr(t),this.handlePromptCompletion(t,t.params.ref);case"ref/resource":return $dr(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 AU;let i=KU(r.argsSchema),s=i?.[t.params.argument.name];if(!Jfr(s))return AU;let o=Xfr(s);if(!o)return AU;let a=await o(t.params.argument.value,t.params.context);return mOt(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 AU;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 AU;let s=await i(t.params.argument.value,t.params.context);return mOt(s)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(tE(STe)),this.server.assertCanSetRequestHandler(tE(bTe)),this.server.assertCanSetRequestHandler(tE(ETe)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(STe,async(t,n)=>{let r=Object.entries(this._registeredResources).filter(([s,o])=>o.enabled).map(([s,o])=>({uri:s,name:o.name,...o.metadata})),i=[];for(let s of Object.values(this._registeredResourceTemplates)){if(!s.resourceTemplate.listCallback)continue;let o=await s.resourceTemplate.listCallback(n);for(let a of o.resources)i.push({...s.metadata,...a})}return{resources:[...r,...i]}}),this.server.setRequestHandler(bTe,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([n,r])=>({name:n,uriTemplate:r.resourceTemplate.uriTemplate.toString(),...r.metadata}))})),this.server.setRequestHandler(ETe,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(tE(_Te)),this.server.assertCanSetRequestHandler(tE(TTe)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(_Te,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,t])=>t.enabled).map(([t,n])=>({name:t,title:n.title,description:n.description,arguments:n.argsSchema?rpr(n.argsSchema):void 0}))})),this.server.setRequestHandler(TTe,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=RU(r.argsSchema),s=await Q_e(i,t.params.arguments);if(!s.success){let c="error"in s?s.error:"Unknown error",u=$_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:xU(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=xU(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){pOt(t);let l={title:n,description:r,inputSchema:hOt(i),outputSchema:hOt(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"&&pOt(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=xU(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];CTe(c)?(i=n.shift(),n.length>1&&typeof n[0]=="object"&&n[0]!==null&&!CTe(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()}},tpr={type:"object",properties:{}};AU={completion:{values:[],hasMore:!1}}});var uNt={};Ar(uNt,{runRepairAgent:()=>lpr});import{existsSync as rR,readdirSync as fve,readFileSync as pve}from"node:fs";import{join as ry}from"node:path";async function lpr(e){let t;try{t=(await Promise.resolve().then(()=>(cNt(),aNt))).query}catch{return{success:!1,summary:"Claude Agent SDK not available \u2014 mechanical repair applied, remaining issues need manual attention",fallbackUsed:!0}}let n=dpr(e),r=fpr(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 dpr(e){let t=ppr(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.")}}};Iur=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)=>Jor(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>KTe(e,n,r),e.parseAsync=async(n,r)=>Xor(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>YTe(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)}),xur=ge("ZodMiniObject",(e,t)=>{uPt.init(e,t),Iur.init(e,t),Gr.defineLazy(e,"shape",()=>t.shape)});hPt={};SOt(hPt,{time:()=>EPt,duration:()=>TPt,datetime:()=>gPt,date:()=>SPt,ZodISOTime:()=>bPt,ZodISODuration:()=>_Pt,ZodISODateTime:()=>mPt,ZodISODate:()=>yPt});mPt=ge("ZodISODateTime",(e,t)=>{Xar.init(e,t),os.init(e,t)});yPt=ge("ZodISODate",(e,t)=>{Qar.init(e,t),os.init(e,t)});bPt=ge("ZodISOTime",(e,t)=>{$ar.init(e,t),os.init(e,t)});_Pt=ge("ZodISODuration",(e,t)=>{ecr.init(e,t),os.init(e,t)});vPt=(e,t)=>{JOt.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>Zor(e,n)},flatten:{value:n=>Yor(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},qNi=ge("ZodError",vPt),s8=ge("ZodError",vPt,{Parent:Error}),Nur=XOt(s8),Cur=QOt(s8),Mur=$Ot(s8),Dur=ePt(s8),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)=>Nur(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Mur(e,n,r),e.parseAsync=async(n,r)=>Cur(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>Dur(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(Alr(n,r)),e.superRefine=n=>e.check(wlr(n)),e.overwrite=n=>e.check(WU(n)),e.optional=()=>yt(e),e.nullable=()=>iOt(e),e.nullish=()=>yt(iOt(e)),e.nonoptional=n=>ylr(e,n),e.array=()=>er(e),e.or=n=>Wi([e,n]),e.and=n=>JTe(e,n),e.transform=n=>bTe(e,OPt(n)),e.default=n=>hlr(e,n),e.prefault=n=>glr(e,n),e.catch=n=>blr(e,n),e.pipe=n=>bTe(e,n),e.readonly=()=>Tlr(e),e.describe=n=>{let r=e.clone();return IU.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return IU.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return IU.get(e);let r=e.clone();return IU.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),RPt=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(hur(...r)),e.includes=(...r)=>e.check(yur(...r)),e.startsWith=(...r)=>e.check(Sur(...r)),e.endsWith=(...r)=>e.check(bur(...r)),e.min=(...r)=>e.check(H5(...r)),e.max=(...r)=>e.check(dPt(...r)),e.length=(...r)=>e.check(fPt(...r)),e.nonempty=(...r)=>e.check(H5(1,...r)),e.lowercase=r=>e.check(mur(r)),e.uppercase=r=>e.check(gur(r)),e.trim=()=>e.check(_ur()),e.normalize=(...r)=>e.check(Eur(...r)),e.toLowerCase=()=>e.check(Tur()),e.toUpperCase=()=>e.check(vur())}),Lur=ge("ZodString",(e,t)=>{ZTe.init(e,t),RPt.init(e,t),e.email=n=>e.check(Ucr(Uur,n)),e.url=n=>e.check(Bcr(Fur,n)),e.jwt=n=>e.check(rur($ur,n)),e.emoji=n=>e.check(zcr(jur,n)),e.guid=n=>e.check(Xxt(nOt,n)),e.uuid=n=>e.check(Fcr(k5,n)),e.uuidv4=n=>e.check(jcr(k5,n)),e.uuidv6=n=>e.check(Hcr(k5,n)),e.uuidv7=n=>e.check(qcr(k5,n)),e.nanoid=n=>e.check(Gcr(Hur,n)),e.guid=n=>e.check(Xxt(nOt,n)),e.cuid=n=>e.check(Vcr(qur,n)),e.cuid2=n=>e.check(Wcr(Bur,n)),e.ulid=n=>e.check(Kcr(zur,n)),e.base64=n=>e.check(eur(Jur,n)),e.base64url=n=>e.check(tur(Xur,n)),e.xid=n=>e.check(Ycr(Gur,n)),e.ksuid=n=>e.check(Zcr(Vur,n)),e.ipv4=n=>e.check(Jcr(Wur,n)),e.ipv6=n=>e.check(Xcr(Kur,n)),e.cidrv4=n=>e.check(Qcr(Yur,n)),e.cidrv6=n=>e.check($cr(Zur,n)),e.e164=n=>e.check(nur(Qur,n)),e.datetime=n=>e.check(gPt(n)),e.date=n=>e.check(SPt(n)),e.time=n=>e.check(EPt(n)),e.duration=n=>e.check(TPt(n))});os=ge("ZodStringFormat",(e,t)=>{Vi.init(e,t),RPt.init(e,t)}),Uur=ge("ZodEmail",(e,t)=>{Bar.init(e,t),os.init(e,t)}),nOt=ge("ZodGUID",(e,t)=>{Har.init(e,t),os.init(e,t)}),k5=ge("ZodUUID",(e,t)=>{qar.init(e,t),os.init(e,t)}),Fur=ge("ZodURL",(e,t)=>{zar.init(e,t),os.init(e,t)}),jur=ge("ZodEmoji",(e,t)=>{Gar.init(e,t),os.init(e,t)}),Hur=ge("ZodNanoID",(e,t)=>{Var.init(e,t),os.init(e,t)}),qur=ge("ZodCUID",(e,t)=>{War.init(e,t),os.init(e,t)}),Bur=ge("ZodCUID2",(e,t)=>{Kar.init(e,t),os.init(e,t)}),zur=ge("ZodULID",(e,t)=>{Yar.init(e,t),os.init(e,t)}),Gur=ge("ZodXID",(e,t)=>{Zar.init(e,t),os.init(e,t)}),Vur=ge("ZodKSUID",(e,t)=>{Jar.init(e,t),os.init(e,t)}),Wur=ge("ZodIPv4",(e,t)=>{tcr.init(e,t),os.init(e,t)}),Kur=ge("ZodIPv6",(e,t)=>{ncr.init(e,t),os.init(e,t)}),Yur=ge("ZodCIDRv4",(e,t)=>{rcr.init(e,t),os.init(e,t)}),Zur=ge("ZodCIDRv6",(e,t)=>{icr.init(e,t),os.init(e,t)}),Jur=ge("ZodBase64",(e,t)=>{scr.init(e,t),os.init(e,t)}),Xur=ge("ZodBase64URL",(e,t)=>{acr.init(e,t),os.init(e,t)}),Qur=ge("ZodE164",(e,t)=>{ccr.init(e,t),os.init(e,t)}),$ur=ge("ZodJWT",(e,t)=>{lcr.init(e,t),os.init(e,t)}),APt=ge("ZodNumber",(e,t)=>{cPt.init(e,t),ss.init(e,t),e.gt=(r,i)=>e.check($xt(r,i)),e.gte=(r,i)=>e.check($_e(r,i)),e.min=(r,i)=>e.check($_e(r,i)),e.lt=(r,i)=>e.check(Qxt(r,i)),e.lte=(r,i)=>e.check(Q_e(r,i)),e.max=(r,i)=>e.check(Q_e(r,i)),e.int=r=>e.check(rOt(r)),e.safe=r=>e.check(rOt(r)),e.positive=r=>e.check($xt(0,r)),e.nonnegative=r=>e.check($_e(0,r)),e.negative=r=>e.check(Qxt(0,r)),e.nonpositive=r=>e.check(Q_e(0,r)),e.multipleOf=(r,i)=>e.check(eOt(r,i)),e.step=(r,i)=>e.check(eOt(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});elr=ge("ZodNumberFormat",(e,t)=>{dcr.init(e,t),APt.init(e,t)});tlr=ge("ZodBoolean",(e,t)=>{fcr.init(e,t),ss.init(e,t)});nlr=ge("ZodNull",(e,t)=>{pcr.init(e,t),ss.init(e,t)});rlr=ge("ZodUnknown",(e,t)=>{hcr.init(e,t),ss.init(e,t)});ilr=ge("ZodNever",(e,t)=>{mcr.init(e,t),ss.init(e,t)});olr=ge("ZodArray",(e,t)=>{gcr.init(e,t),ss.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(H5(n,r)),e.nonempty=n=>e.check(H5(1,n)),e.max=(n,r)=>e.check(dPt(n,r)),e.length=(n,r)=>e.check(fPt(n,r)),e.unwrap=()=>e.element});kPt=ge("ZodObject",(e,t)=>{uPt.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:slr()}),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(PPt,e,n[0]),e.required=(...n)=>Gr.required(NPt,e,n[0])});IPt=ge("ZodUnion",(e,t)=>{lPt.init(e,t),ss.init(e,t),e.options=t.options});alr=ge("ZodDiscriminatedUnion",(e,t)=>{IPt.init(e,t),ycr.init(e,t)});clr=ge("ZodIntersection",(e,t)=>{Scr.init(e,t),ss.init(e,t)});ulr=ge("ZodRecord",(e,t)=>{bcr.init(e,t),ss.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});STe=ge("ZodEnum",(e,t)=>{Ecr.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 STe({...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 STe({...t,checks:[],...Gr.normalizeParams(i),entries:s})}});llr=ge("ZodLiteral",(e,t)=>{_cr.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]}})});dlr=ge("ZodTransform",(e,t)=>{Tcr.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)}});PPt=ge("ZodOptional",(e,t)=>{vcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});flr=ge("ZodNullable",(e,t)=>{Rcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});plr=ge("ZodDefault",(e,t)=>{Acr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});mlr=ge("ZodPrefault",(e,t)=>{wcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});NPt=ge("ZodNonOptional",(e,t)=>{kcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});Slr=ge("ZodCatch",(e,t)=>{Icr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});Elr=ge("ZodPipe",(e,t)=>{xcr.init(e,t),ss.init(e,t),e.in=t.in,e.out=t.out});_lr=ge("ZodReadonly",(e,t)=>{Ocr.init(e,t),ss.init(e,t)});CPt=ge("ZodCustom",(e,t)=>{Pcr.init(e,t),ss.init(e,t)});ey(Mcr());DPt="2025-11-25",klr=[DPt,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Jg="io.modelcontextprotocol/related-task",o8="2.0",om=Rlr(e=>e!==null&&(typeof e=="object"||typeof e=="function")),LPt=Wi([he(),ui().int()]),UPt=he(),Ilr=Sp({ttl:Wi([ui(),wPt()]).optional(),pollInterval:ui().optional()}),XTe=Sp({taskId:he()}),xlr=Sp({progressToken:LPt.optional(),[Jg]:XTe.optional()}),el=Sp({task:Ilr.optional(),_meta:xlr.optional()}),ja=Ge({method:he(),params:el.optional()}),nR=Sp({_meta:Ge({[Jg]:yt(XTe)}).passthrough().optional()}),Xd=Ge({method:he(),params:nR.optional()}),Ac=Sp({_meta:Sp({[Jg]:XTe.optional()}).optional()}),a8=Wi([he(),ui().int()]),FPt=Ge({jsonrpc:St(o8),id:a8,...ja.shape}).strict(),sOt=e=>FPt.safeParse(e).success,jPt=Ge({jsonrpc:St(o8),...Xd.shape}).strict(),Olr=e=>jPt.safeParse(e).success,HPt=Ge({jsonrpc:St(o8),id:a8,result:Ac}).strict(),I5=e=>HPt.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={}));qPt=Ge({jsonrpc:St(o8),id:a8,error:Ge({code:ui().int(),message:he(),data:yt(xo())})}).strict(),Plr=e=>qPt.safeParse(e).success,BNi=Wi([FPt,jPt,HPt,qPt]),QTe=Ac.strict(),Nlr=nR.extend({requestId:a8,reason:he().optional()}),$Te=Xd.extend({method:St("notifications/cancelled"),params:Nlr}),Clr=Ge({src:he(),mimeType:he().optional(),sizes:er(he()).optional()}),YU=Ge({icons:er(Clr).optional()}),Xx=Ge({name:he(),title:he().optional()}),BPt=Xx.extend({...Xx.shape,...YU.shape,version:he(),websiteUrl:he().optional()}),Mlr=JTe(Ge({applyDefaults:vc().optional()}),Oo(he(),xo())),Dlr=MPt(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,JTe(Ge({form:Mlr.optional(),url:om.optional()}),Oo(he(),xo()).optional())),Llr=Ge({list:yt(Ge({}).passthrough()),cancel:yt(Ge({}).passthrough()),requests:yt(Ge({sampling:yt(Ge({createMessage:yt(Ge({}).passthrough())}).passthrough()),elicitation:yt(Ge({create:yt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Ulr=Ge({list:yt(Ge({}).passthrough()),cancel:yt(Ge({}).passthrough()),requests:yt(Ge({tools:yt(Ge({call:yt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Flr=Ge({experimental:Oo(he(),om).optional(),sampling:Ge({context:om.optional(),tools:om.optional()}).optional(),elicitation:Dlr.optional(),roots:Ge({listChanged:vc().optional()}).optional(),tasks:yt(Llr)}),jlr=el.extend({protocolVersion:he(),capabilities:Flr,clientInfo:BPt}),zPt=ja.extend({method:St("initialize"),params:jlr}),Hlr=Ge({experimental:Oo(he(),om).optional(),logging:om.optional(),completions:om.optional(),prompts:yt(Ge({listChanged:yt(vc())})),resources:Ge({subscribe:vc().optional(),listChanged:vc().optional()}).optional(),tools:Ge({listChanged:vc().optional()}).optional(),tasks:yt(Ulr)}).passthrough(),qlr=Ac.extend({protocolVersion:he(),capabilities:Hlr,serverInfo:BPt,instructions:he().optional()}),GPt=Xd.extend({method:St("notifications/initialized")}),eve=ja.extend({method:St("ping")}),Blr=Ge({progress:ui(),total:yt(ui()),message:yt(he())}),zlr=Ge({...nR.shape,...Blr.shape,progressToken:LPt}),tve=Xd.extend({method:St("notifications/progress"),params:zlr}),Glr=el.extend({cursor:UPt.optional()}),ZU=ja.extend({params:Glr.optional()}),JU=Ac.extend({nextCursor:yt(UPt)}),XU=Ge({taskId:he(),status:Rc(["working","input_required","completed","failed","cancelled"]),ttl:Wi([ui(),wPt()]),createdAt:he(),lastUpdatedAt:he(),pollInterval:yt(ui()),statusMessage:yt(he())}),c8=Ac.extend({task:XU}),Vlr=nR.merge(XU),B5=Xd.extend({method:St("notifications/tasks/status"),params:Vlr}),nve=ja.extend({method:St("tasks/get"),params:el.extend({taskId:he()})}),rve=Ac.merge(XU),ive=ja.extend({method:St("tasks/result"),params:el.extend({taskId:he()})}),sve=ZU.extend({method:St("tasks/list")}),ove=JU.extend({tasks:er(XU)}),Wlr=ja.extend({method:St("tasks/cancel"),params:el.extend({taskId:he()})}),Klr=Ac.merge(XU),VPt=Ge({uri:he(),mimeType:yt(he()),_meta:Oo(he(),xo()).optional()}),WPt=VPt.extend({text:he()}),ave=he().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),KPt=VPt.extend({blob:ave}),nO=Ge({audience:er(Rc(["user","assistant"])).optional(),priority:ui().min(0).max(1).optional(),lastModified:hPt.datetime({offset:!0}).optional()}),YPt=Ge({...Xx.shape,...YU.shape,uri:he(),description:yt(he()),mimeType:yt(he()),annotations:nO.optional(),_meta:yt(Sp({}))}),Ylr=Ge({...Xx.shape,...YU.shape,uriTemplate:he(),description:yt(he()),mimeType:yt(he()),annotations:nO.optional(),_meta:yt(Sp({}))}),ETe=ZU.extend({method:St("resources/list")}),Zlr=JU.extend({resources:er(YPt)}),_Te=ZU.extend({method:St("resources/templates/list")}),Jlr=JU.extend({resourceTemplates:er(Ylr)}),cve=el.extend({uri:he()}),Xlr=cve,TTe=ja.extend({method:St("resources/read"),params:Xlr}),Qlr=Ac.extend({contents:er(Wi([WPt,KPt]))}),$lr=Xd.extend({method:St("notifications/resources/list_changed")}),edr=cve,tdr=ja.extend({method:St("resources/subscribe"),params:edr}),ndr=cve,rdr=ja.extend({method:St("resources/unsubscribe"),params:ndr}),idr=nR.extend({uri:he()}),sdr=Xd.extend({method:St("notifications/resources/updated"),params:idr}),odr=Ge({name:he(),description:yt(he()),required:yt(vc())}),adr=Ge({...Xx.shape,...YU.shape,description:yt(he()),arguments:yt(er(odr)),_meta:yt(Sp({}))}),vTe=ZU.extend({method:St("prompts/list")}),cdr=JU.extend({prompts:er(adr)}),udr=el.extend({name:he(),arguments:Oo(he(),he()).optional()}),RTe=ja.extend({method:St("prompts/get"),params:udr}),uve=Ge({type:St("text"),text:he(),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),lve=Ge({type:St("image"),data:ave,mimeType:he(),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),dve=Ge({type:St("audio"),data:ave,mimeType:he(),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),ldr=Ge({type:St("tool_use"),name:he(),id:he(),input:Ge({}).passthrough(),_meta:yt(Ge({}).passthrough())}).passthrough(),ddr=Ge({type:St("resource"),resource:Wi([WPt,KPt]),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),fdr=YPt.extend({type:St("resource_link")}),fve=Wi([uve,lve,dve,fdr,ddr]),pdr=Ge({role:Rc(["user","assistant"]),content:fve}),hdr=Ac.extend({description:yt(he()),messages:er(pdr)}),mdr=Xd.extend({method:St("notifications/prompts/list_changed")}),gdr=Ge({title:he().optional(),readOnlyHint:vc().optional(),destructiveHint:vc().optional(),idempotentHint:vc().optional(),openWorldHint:vc().optional()}),ydr=Ge({taskSupport:Rc(["required","optional","forbidden"]).optional()}),ZPt=Ge({...Xx.shape,...YU.shape,description:he().optional(),inputSchema:Ge({type:St("object"),properties:Oo(he(),om).optional(),required:er(he()).optional()}).catchall(xo()),outputSchema:Ge({type:St("object"),properties:Oo(he(),om).optional(),required:er(he()).optional()}).catchall(xo()).optional(),annotations:yt(gdr),execution:yt(ydr),_meta:Oo(he(),xo()).optional()}),ATe=ZU.extend({method:St("tools/list")}),Sdr=JU.extend({tools:er(ZPt)}),pve=Ac.extend({content:er(fve).default([]),structuredContent:Oo(he(),xo()).optional(),isError:yt(vc())}),zNi=pve.or(Ac.extend({toolResult:xo()})),bdr=el.extend({name:he(),arguments:yt(Oo(he(),xo()))}),z5=ja.extend({method:St("tools/call"),params:bdr}),Edr=Xd.extend({method:St("notifications/tools/list_changed")}),G5=Rc(["debug","info","notice","warning","error","critical","alert","emergency"]),_dr=el.extend({level:G5}),JPt=ja.extend({method:St("logging/setLevel"),params:_dr}),Tdr=nR.extend({level:G5,logger:he().optional(),data:xo()}),vdr=Xd.extend({method:St("notifications/message"),params:Tdr}),Rdr=Ge({name:he().optional()}),Adr=Ge({hints:yt(er(Rdr)),costPriority:yt(ui().min(0).max(1)),speedPriority:yt(ui().min(0).max(1)),intelligencePriority:yt(ui().min(0).max(1))}),wdr=Ge({mode:yt(Rc(["auto","required","none"]))}),kdr=Ge({type:St("tool_result"),toolUseId:he().describe("The unique identifier for the corresponding tool call."),content:er(fve).default([]),structuredContent:Ge({}).passthrough().optional(),isError:yt(vc()),_meta:yt(Ge({}).passthrough())}).passthrough(),Idr=xPt("type",[uve,lve,dve]),V5=xPt("type",[uve,lve,dve,ldr,kdr]),xdr=Ge({role:Rc(["user","assistant"]),content:Wi([V5,er(V5)]),_meta:yt(Ge({}).passthrough())}).passthrough(),Odr=el.extend({messages:er(xdr),modelPreferences:Adr.optional(),systemPrompt:he().optional(),includeContext:Rc(["none","thisServer","allServers"]).optional(),temperature:ui().optional(),maxTokens:ui().int(),stopSequences:er(he()).optional(),metadata:om.optional(),tools:yt(er(ZPt)),toolChoice:yt(wdr)}),Pdr=ja.extend({method:St("sampling/createMessage"),params:Odr}),XPt=Ac.extend({model:he(),stopReason:yt(Rc(["endTurn","stopSequence","maxTokens"]).or(he())),role:Rc(["user","assistant"]),content:Idr}),QPt=Ac.extend({model:he(),stopReason:yt(Rc(["endTurn","stopSequence","maxTokens","toolUse"]).or(he())),role:Rc(["user","assistant"]),content:Wi([V5,er(V5)])}),Ndr=Ge({type:St("boolean"),title:he().optional(),description:he().optional(),default:vc().optional()}),Cdr=Ge({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()}),Mdr=Ge({type:Rc(["number","integer"]),title:he().optional(),description:he().optional(),minimum:ui().optional(),maximum:ui().optional(),default:ui().optional()}),Ddr=Ge({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),default:he().optional()}),Ldr=Ge({type:St("string"),title:he().optional(),description:he().optional(),oneOf:er(Ge({const:he(),title:he()})),default:he().optional()}),Udr=Ge({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),enumNames:er(he()).optional(),default:he().optional()}),Fdr=Wi([Ddr,Ldr]),jdr=Ge({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:Ge({type:St("string"),enum:er(he())}),default:er(he()).optional()}),Hdr=Ge({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:Ge({anyOf:er(Ge({const:he(),title:he()}))}),default:er(he()).optional()}),qdr=Wi([jdr,Hdr]),Bdr=Wi([Udr,Fdr,qdr]),zdr=Wi([Bdr,Ndr,Cdr,Mdr]),Gdr=el.extend({mode:St("form").optional(),message:he(),requestedSchema:Ge({type:St("object"),properties:Oo(he(),zdr),required:er(he()).optional()})}),Vdr=el.extend({mode:St("url"),message:he(),elicitationId:he(),url:he().url()}),Wdr=Wi([Gdr,Vdr]),Kdr=ja.extend({method:St("elicitation/create"),params:Wdr}),Ydr=nR.extend({elicitationId:he()}),Zdr=Xd.extend({method:St("notifications/elicitation/complete"),params:Ydr}),wTe=Ac.extend({action:Rc(["accept","decline","cancel"]),content:MPt(e=>e===null?void 0:e,Oo(he(),Wi([he(),ui(),vc(),er(he())])).optional())}),Jdr=Ge({type:St("ref/resource"),uri:he()}),Xdr=Ge({type:St("ref/prompt"),name:he()}),Qdr=el.extend({ref:Wi([Xdr,Jdr]),argument:Ge({name:he(),value:he()}),context:Ge({arguments:Oo(he(),he()).optional()}).optional()}),kTe=ja.extend({method:St("completion/complete"),params:Qdr});tfr=Ac.extend({completion:Sp({values:er(he()).max(100),total:yt(ui().int()),hasMore:yt(vc())})}),nfr=Ge({uri:he().startsWith("file://"),name:he().optional(),_meta:Oo(he(),xo()).optional()}),rfr=ja.extend({method:St("roots/list")}),$Pt=Ac.extend({roots:er(nfr)}),ifr=Xd.extend({method:St("notifications/roots/list_changed")}),GNi=Wi([eve,zPt,kTe,JPt,RTe,vTe,ETe,_Te,TTe,tdr,rdr,z5,ATe,nve,ive,sve]),VNi=Wi([$Te,tve,GPt,ifr,B5]),WNi=Wi([QTe,XPt,QPt,wTe,$Pt,rve,ove,c8]),KNi=Wi([eve,Pdr,Kdr,rfr,nve,ive,sve]),YNi=Wi([$Te,tve,vdr,sdr,$lr,Edr,mdr,B5,Zdr]),ZNi=Wi([QTe,qlr,tfr,hdr,cdr,Zlr,Jlr,Qlr,pve,Sdr,rve,ove,c8]),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 ITe(i.elicitations,n)}return new e(t,n,r)}},ITe=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:[]}};sfr=Symbol("Let zodToJsonSchema decide on which parser to use"),oOt={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"},ofr=e=>typeof e=="string"?{...oOt,name:e}:{...oOt,...e},afr=e=>{let t=ofr(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}]))}};tNt=(e,t)=>{let n=0;for(;nEr(e.innerType._def,t);ffr=(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};gfr=e=>"type"in e&&e.type==="string"?!1:"allOf"in e;nTe=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:()=>(nTe===void 0&&(nTe=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),nTe),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-_]*$/};bfr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");W5={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};cOt=(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};Pfr=(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)},Nfr=(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)}};Ffr=(e,t)=>Er(e.innerType._def,t),jfr=(e,t,n)=>{switch(t){case De.ZodString:return iNt(e,n);case De.ZodNumber:return kfr(e,n);case De.ZodObject:return Ifr(e,n);case De.ZodBigInt:return ufr(e,n);case De.ZodBoolean:return lfr();case De.ZodDate:return rNt(e,n);case De.ZodUndefined:return Lfr(n);case De.ZodNull:return Rfr(n);case De.ZodArray:return cfr(e,n);case De.ZodUnion:case De.ZodDiscriminatedUnion:return Afr(e,n);case De.ZodIntersection:return yfr(e,n);case De.ZodTuple:return Dfr(e,n);case De.ZodRecord:return sNt(e,n);case De.ZodLiteral:return Sfr(e,n);case De.ZodEnum:return mfr(e);case De.ZodNativeEnum:return Tfr(e);case De.ZodNullable:return wfr(e,n);case De.ZodOptional:return Pfr(e,n);case De.ZodMap:return _fr(e,n);case De.ZodSet:return Mfr(e,n);case De.ZodLazy:return()=>e.getter()._def;case De.ZodPromise:return Cfr(e,n);case De.ZodNaN:case De.ZodNever:return vfr(n);case De.ZodEffects:return hfr(e,n);case De.ZodAny:return Qu(n);case De.ZodUnknown:return Ufr(n);case De.ZodDefault:return pfr(e,n);case De.ZodBranded:return nNt(e,n);case De.ZodReadonly:return Ffr(e,n);case De.ZodCatch:return dfr(e,n);case De.ZodPipeline:return Nfr(e,n);case De.ZodFunction:case De.ZodVoid:case De.ZodSymbol:return;default:return(r=>{})(t)}};Hfr=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:tNt(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}},qfr=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),Bfr=(e,t)=>{let n=afr(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};Gfr=6e4,xTe=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($Te,n=>{this._oncancel(n)}),this.setNotificationHandler(tve,n=>{this._onprogress(n)}),this.setRequestHandler(eve,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(nve,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(ive,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(!$v(a.status))return await this._waitForTaskUpdate(o,r.signal),await i();if($v(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(sve,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(Wlr,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($v(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),I5(c)||Plr(c)?this._onresponse(c):sOt(c)?this._onrequest(c,u):Olr(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),I5(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(I5(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),I5(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,c8,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},$v(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=OU(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:Gfr,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},rve,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},ove,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},Klr,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=lOt(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=dOt(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=lOt(t);this._notificationHandlers.set(r,i=>{let s=dOt(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"&&sOt(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=B5.parse({method:"notifications/tasks/status",params:a});await this.notification(c),$v(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($v(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=B5.parse({method:"notifications/tasks/status",params:c});await this.notification(u),$v(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}};Wfr=yOt(AOt(),1),Kfr=yOt(wrr(),1);OTe=class{constructor(t){this._ajv=t??Yfr()}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)}}},PTe=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)}};NTe=class extends xTe{constructor(t,n){var r,i;super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(G5.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(GPt,()=>{var s;return(s=this.oninitialized)===null||s===void 0?void 0:s.call(this)}),this._capabilities.logging&&this.setRequestHandler(JPt,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=G5.safeParse(u);return l.success&&this._loggingLevels.set(c,l.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new PTe(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Vfr(this._capabilities,t)}setRequestHandler(t,n){var r,i,s;let o=KU(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=OU(z5,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=OU(c8,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=OU(pve,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;Jfr((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&&Zfr((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:klr.includes(n)?n:DPt,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"},QTe)}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},QPt,n):this.request({method:"sampling/createMessage",params:t},XPt,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},wTe,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},wTe,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},$Pt,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"})}},oNt=Symbol.for("mcp.completable");(function(e){e.Completable="McpCompletable"})(pOt||(pOt={}));$fr=/^[A-Za-z0-9._-]{1,128}$/;CTe=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)}},MTe=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 NTe(t,n)}get experimental(){return this._experimental||(this._experimental={tasks:new CTe(this)}),this._experimental}async connect(t){return await this.server.connect(t)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler(tE(ATe)),this.server.assertCanSetRequestHandler(tE(z5)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(ATe,()=>({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=RU(n.inputSchema);return i?uOt(i,{strictUnions:!0,pipeStrategy:"input"}):npr})(),annotations:n.annotations,execution:n.execution,_meta:n._meta};if(n.outputSchema){let i=RU(n.outputSchema);i&&(r.outputSchema=uOt(i,{strictUnions:!0,pipeStrategy:"output"}))}return r})})),this.server.setRequestHandler(z5,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=RU(t.inputSchema),s=i??t.inputSchema,o=await eTe(s,n);if(!o.success){let a="error"in o?o.error:"Unknown error",c=tTe(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=RU(t.outputSchema),s=await eTe(i,n.structuredContent);if(!s.success){let o="error"in s?s.error:"Unknown error",a=tTe(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(tE(kTe)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(kTe,async t=>{switch(t.params.ref.type){case"ref/prompt":return $dr(t),this.handlePromptCompletion(t,t.params.ref);case"ref/resource":return efr(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 AU;let i=KU(r.argsSchema),s=i?.[t.params.argument.name];if(!Xfr(s))return AU;let o=Qfr(s);if(!o)return AU;let a=await o(t.params.argument.value,t.params.context);return gOt(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 AU;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 AU;let s=await i(t.params.argument.value,t.params.context);return gOt(s)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(tE(ETe)),this.server.assertCanSetRequestHandler(tE(_Te)),this.server.assertCanSetRequestHandler(tE(TTe)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(ETe,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(_Te,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([n,r])=>({name:n,uriTemplate:r.resourceTemplate.uriTemplate.toString(),...r.metadata}))})),this.server.setRequestHandler(TTe,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(tE(vTe)),this.server.assertCanSetRequestHandler(tE(RTe)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(vTe,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,t])=>t.enabled).map(([t,n])=>({name:t,title:n.title,description:n.description,arguments:n.argsSchema?ipr(n.argsSchema):void 0}))})),this.server.setRequestHandler(RTe,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=RU(r.argsSchema),s=await eTe(i,t.params.arguments);if(!s.success){let c="error"in s?s.error:"Unknown error",u=tTe(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:xU(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=xU(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){hOt(t);let l={title:n,description:r,inputSchema:mOt(i),outputSchema:mOt(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"&&hOt(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=xU(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];DTe(c)?(i=n.shift(),n.length>1&&typeof n[0]=="object"&&n[0]!==null&&!DTe(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()}},npr={type:"object",properties:{}};AU={completion:{values:[],hasMore:!1}}});var lNt={};Ar(lNt,{runRepairAgent:()=>dpr});import{existsSync as rR,readdirSync as hve,readFileSync as mve}from"node:fs";import{join as ry}from"node:path";async function dpr(e){let t;try{t=(await Promise.resolve().then(()=>(uNt(),cNt))).query}catch{return{success:!1,summary:"Claude Agent SDK not available \u2014 mechanical repair applied, remaining issues need manual attention",fallbackUsed:!0}}let n=fpr(e),r=ppr(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 fpr(e){let t=hpr(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) @@ -1464,7 +1464,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 fpr(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 ppr(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(` @@ -1489,7 +1489,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=hpr(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=mpr(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): @@ -1510,31 +1510,31 @@ 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 ppr(e){let t=ry(e,"stages");if(!rR(t))return"(no stages directory found)";let n=[],r;try{r=fve(t).filter(i=>rR(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=pve(s,"utf8"),{data:a}=(0,u8.default)(o),c=Object.keys(a).length>0?Object.entries(a).map(([u,l])=>`${u}: ${JSON.stringify(l)}`).join(` +`)}function hpr(e){let t=ry(e,"stages");if(!rR(t))return"(no stages directory found)";let n=[],r;try{r=hve(t).filter(i=>rR(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=mve(s,"utf8"),{data:a}=(0,u8.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 hpr(e){let t=[],n=ry(e.studioDir,"stages");if(!rR(n))return t;let r={},i;try{i=fve(n).filter(o=>rR(ry(n,o,"STAGE.md")))}catch{return t}for(let o of i){let a=ry(n,o,"discovery");if(rR(a))try{for(let c of fve(a).filter(u=>u.endsWith(".md"))){let{data:u}=(0,u8.default)(pve(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(!rR(s))return t;try{let o=pve(s,"utf8"),{data:a}=(0,u8.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);rR(d)||t.push({name:u.discovery,path:l,neededBy:e.activeStage})}}}catch{}return t}var u8,lNt=v(()=>{"use strict";u8=Re(Kt(),1)});import{execFileSync as cE}from"node:child_process";import{existsSync as su,mkdirSync as mpr,readFileSync as rO,writeFileSync as gpr}from"node:fs";import{join as po}from"node:path";function iy(e){let t=s_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 dNt(){try{return cE("git",["branch","--show-current"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return""}}function ypr(e){for(let t of e.content??[]){if(t.type!=="text"||typeof t.text!="string")continue;let n=t.text.indexOf(` +`)}function mpr(e){let t=[],n=ry(e.studioDir,"stages");if(!rR(n))return t;let r={},i;try{i=hve(n).filter(o=>rR(ry(n,o,"STAGE.md")))}catch{return t}for(let o of i){let a=ry(n,o,"discovery");if(rR(a))try{for(let c of hve(a).filter(u=>u.endsWith(".md"))){let{data:u}=(0,u8.default)(mve(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(!rR(s))return t;try{let o=mve(s,"utf8"),{data:a}=(0,u8.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);rR(d)||t.push({name:u.discovery,path:l,neededBy:e.activeStage})}}}catch{}return t}var u8,dNt=v(()=>{"use strict";u8=Re(Kt(),1)});import{execFileSync as cE}from"node:child_process";import{existsSync as su,mkdirSync as gpr,readFileSync as rO,writeFileSync as ypr}from"node:fs";import{join as po}from"node:path";function iy(e){let t=a_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 fNt(){try{return cE("git",["branch","--show-current"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return""}}function Spr(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 Spr(e,t,n){let{orchestratorToolHandlers:r}=await Promise.resolve().then(()=>(EU(),hve)),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 bpr(e,t,n){let{orchestratorToolHandlers:r}=await Promise.resolve().then(()=>(EU(),gve)),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 QU(e){if(!su(e))return{};let t=rO(e,"utf8"),{data:n}=re(t);return n}var fNt,pNt=v(()=>{"use strict";ar();a_e();A3();Oa();o_e();Yd();_xt();sh();m5();p1();$c();ze();Kn();vo();zi();vs();fNt={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=_v();if(S)r=S.slug;else{if(Ee())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=ve(),_=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=hSe(r,"intent");if(s)return{content:[{type:"text",text:s}],isError:!0};if(Ee())try{let S=cE("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 _=cE("git",["diff","--name-only","--diff-filter=U"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` +`).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 QU(e){if(!su(e))return{};let t=rO(e,"utf8"),{data:n}=re(t);return n}var pNt,hNt=v(()=>{"use strict";ar();u_e();A3();Oa();c_e();Yd();Txt();sh();m5();p1();$c();ze();Kn();vo();Gi();vs();pNt={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=_v();if(S)r=S.slug;else{if(Ee())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=ve(),_=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=gSe(r,"intent");if(s)return{content:[{type:"text",text:s}],isError:!0};if(Ee())try{let S=cE("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 _=cE("git",["diff","--name-only","--diff-filter=U"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` `).filter(Boolean),T=cE("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=Ape();if(o.length>0){let S=o.slice(0,50).join(` `),E=o.length>50?` \u2026and ${o.length-50} more`:"";return ye(JSON.stringify({action:"error",intent:r,error:"dirty_tree_blocking_tick",dirty_files:o,message:`I can't advance the workflow with uncommitted work in the tree. Commit everything first \u2014 you author these commits, not the engine, because you know what you just did and can tell the story of the work. Keep the commit messages logical: group related changes into separate, coherent commits (one logical step each), and write messages that explain the WHY of the change \u2014 not a single catch-all 'wip' dump. Then re-run \`haiku_run_next\` to continue. Uncommitted: - `+S+E},null,2))}try{let S=po(ve(),"intents",r,"intent.md");if(su(S)){let E=QU(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(()=>(ze(),AZ));if(R()){NT();let{resolveStudioStages:A}=await Promise.resolve().then(()=>(Yd(),hNt)),{reconcileMisroutedStageMerges:x}=await Promise.resolve().then(()=>(ar(),MI)),k=A(_),N=x(r,k).filter(C=>C.misrouted&&!C.reconciled&&C.error);if(N.length>0)return{content:[{type:"text",text:`Stage merge routed to the wrong branch \u2014 manual reconciliation needed: + `+S+E},null,2))}try{let S=po(ve(),"intents",r,"intent.md");if(su(S)){let E=QU(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(()=>(ze(),AZ));if(R()){NT();let{resolveStudioStages:A}=await Promise.resolve().then(()=>(Yd(),mNt)),{reconcileMisroutedStageMerges:x}=await Promise.resolve().then(()=>(ar(),MI)),k=A(_),N=x(r,k).filter(C=>C.misrouted&&!C.reconciled&&C.error);if(N.length>0)return{content:[{type:"text",text:`Stage merge routed to the wrong branch \u2014 manual reconciliation needed: ${N.map(C=>`- **Stage ${C.stage}**: ${C.error}`).join(` `)} -When reconciled, re-run \`haiku_run_next\` to continue.`}],isError:!0}}}}}catch(S){console.error(`[haiku_run_next] pre-cursor reconciliation failed: ${S instanceof Error?S.message:String(S)}`)}let a="";if(e.pickup===!0&&Ee())try{NT();let S=po(ve(),"intents",r,"intent.md");if(su(S)){let _=QU(S).studio||"";if(_){let T=ai(r,_);if(T){let R=`haiku/${r}/${T}`;try{cE("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=Spe(r);S.error&&console.error(`[haiku_run_next] reconcile: ${S.error}`)}{let S=po(ve(),"intents",r,"intent.md");if(su(S)){let E=QU(S),_=E.studio||"",T=E.mode||"";if(!_||!T){if(!gr().startsWith(`haiku/${r}/`)){let x=yr(r,void 0);if(!x.ok)return Xb(r,void 0,x,"run_next entry \u2014 intent main (pre-selection)")}}else{let R=cpe(r);if(!R.ok){let A=R.conflictAt==="mainline_to_intent_main"?`haiku/${r}/main`:gr()||`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=ve(),E=po(S,"intents",r,"intent.md");su(E)&&Ne(E,"external_review_url",e.external_review_url)}catch{}try{let{drainPendingDispatches:S}=await Promise.resolve().then(()=>(Sv(),l1));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=dNt(),E=`haiku/${r}/`,_=S.startsWith(E)&&S!==`${E}main`?S.slice(E.length):null;if(_&&!(typeof c.stage=="string"&&c.stage===_)){let T=ce(r),R=po(T,"intent.md");if(su(R)){let A=QU(R),x=A.studio||"",k=A.mode||"continuous";if(x&&C0(T,x,_,k)){let P=`haiku/${r}/${_}`,N=`haiku/${r}/main`;WD(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=Mx(c);if(++S>TU)return im("select_*",S,c,"cap");if(_5(n))return T5("select_*",S,n,c);let _=await Spr(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")&&Mx(c)===E)return im("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(()=>(Sv(),l1)),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(()=>(ze(),AZ));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(()=>(Sv(),l1));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=Mx(c);if(++u>TU)return im("close_feedback",u,c,"cap");if(_5(n))return T5("close_feedback",u,n,c);if(S===l)return im("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();Ne(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(()=>(Sv(),l1));C({slug:r,stage:E,targetUnit:P,invalidates:N})}if(A.origin==="drift"&&P){let C=po(ve(),"intents",r,"stages",E,"units",`${P}.md`);if(su(C)){let L=po(ve(),"intents",r),{buildReviewRecord:G}=await Promise.resolve().then(()=>(Xf(),Oyt)),W=rO(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 j=G(C,{intentDir:L,unitInputs:B});Q[V]={...M,body_sha256:j.body_sha256,input_witnesses:j.input_witnesses},F=!0}F&&Ne(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(ve(),"intents",r,"intent.md");su(S)&&(Ne(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(ve(),"intents",r,"intent.md");if(su(S)){let{data:E}=re(rO(S,"utf8")),_=E.approvals&&typeof E.approvals=="object"?{...E.approvals}:{},T=!1;for(let R of Object.keys(_))FT.has(R)&&_[R]!=null&&(_[R]=null,T=!0);T&&(Ne(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=Mx(c);if(++d>TU)return im("complete_stage",d,c,"cap");if(_5(n))return T5("complete_stage",d,n,c);if(S===f)return im("complete_stage",d,c,"no_progress");f=S;let E=c.stage;if(_ye(ce(r),E)){c={action:"record_observations",intent:r,stage:E};break}try{let{isGitRepo:_}=await Promise.resolve().then(()=>(ze(),AZ));if(!_()){c=iy(r);continue}try{let x=`haiku/${r}/${E}`;if(dNt()===x){let k=`.haiku/intents/${r}/stages/${E}/observations.md`;cE("git",["status","--porcelain","--",k],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()&&(cE("git",["add","--",k],{stdio:"ignore"}),cE("git",["commit","-m",`haiku: observations for stage ${E}`],{stdio:"ignore"}))}}catch{}let{mergeStageBranchIntoMain:T}=await Promise.resolve().then(()=>(ar(),MI)),{withIntentMainLock:R}=await Promise.resolve().then(()=>(K0(),USt)),A=R(r,()=>T(r,E));if(!A.success)return A.isConflict?{content:[{type:"text",text:`Stage '${E}' completion blocked by conflict: ${A.message}`}],isError:!0}:{content:[{type:"text",text:`Stage '${E}' completion blocked: its branch could not be merged into intent-main: ${A.message} +When reconciled, re-run \`haiku_run_next\` to continue.`}],isError:!0}}}}}catch(S){console.error(`[haiku_run_next] pre-cursor reconciliation failed: ${S instanceof Error?S.message:String(S)}`)}let a="";if(e.pickup===!0&&Ee())try{NT();let S=po(ve(),"intents",r,"intent.md");if(su(S)){let _=QU(S).studio||"";if(_){let T=ai(r,_);if(T){let R=`haiku/${r}/${T}`;try{cE("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=Spe(r);S.error&&console.error(`[haiku_run_next] reconcile: ${S.error}`)}{let S=po(ve(),"intents",r,"intent.md");if(su(S)){let E=QU(S),_=E.studio||"",T=E.mode||"";if(!_||!T){if(!gr().startsWith(`haiku/${r}/`)){let x=yr(r,void 0);if(!x.ok)return Xb(r,void 0,x,"run_next entry \u2014 intent main (pre-selection)")}}else{let R=cpe(r);if(!R.ok){let A=R.conflictAt==="mainline_to_intent_main"?`haiku/${r}/main`:gr()||`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=ve(),E=po(S,"intents",r,"intent.md");su(E)&&Ne(E,"external_review_url",e.external_review_url)}catch{}try{let{drainPendingDispatches:S}=await Promise.resolve().then(()=>(Sv(),l1));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=fNt(),E=`haiku/${r}/`,_=S.startsWith(E)&&S!==`${E}main`?S.slice(E.length):null;if(_&&!(typeof c.stage=="string"&&c.stage===_)){let T=ce(r),R=po(T,"intent.md");if(su(R)){let A=QU(R),x=A.studio||"",k=A.mode||"continuous";if(x&&C0(T,x,_,k)){let P=`haiku/${r}/${_}`,N=`haiku/${r}/main`;WD(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=Mx(c);if(++S>TU)return im("select_*",S,c,"cap");if(_5(n))return T5("select_*",S,n,c);let _=await bpr(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")&&Mx(c)===E)return im("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(()=>(Sv(),l1)),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(()=>(ze(),AZ));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(()=>(Sv(),l1));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=Mx(c);if(++u>TU)return im("close_feedback",u,c,"cap");if(_5(n))return T5("close_feedback",u,n,c);if(S===l)return im("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();Ne(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(()=>(Sv(),l1));C({slug:r,stage:E,targetUnit:P,invalidates:N})}if(A.origin==="drift"&&P){let C=po(ve(),"intents",r,"stages",E,"units",`${P}.md`);if(su(C)){let L=po(ve(),"intents",r),{buildReviewRecord:G}=await Promise.resolve().then(()=>(Xf(),Pyt)),W=rO(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 j=G(C,{intentDir:L,unitInputs:B});Q[V]={...M,body_sha256:j.body_sha256,input_witnesses:j.input_witnesses},F=!0}F&&Ne(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(ve(),"intents",r,"intent.md");su(S)&&(Ne(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(ve(),"intents",r,"intent.md");if(su(S)){let{data:E}=re(rO(S,"utf8")),_=E.approvals&&typeof E.approvals=="object"?{...E.approvals}:{},T=!1;for(let R of Object.keys(_))FT.has(R)&&_[R]!=null&&(_[R]=null,T=!0);T&&(Ne(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=Mx(c);if(++d>TU)return im("complete_stage",d,c,"cap");if(_5(n))return T5("complete_stage",d,n,c);if(S===f)return im("complete_stage",d,c,"no_progress");f=S;let E=c.stage;if(vye(ce(r),E)){c={action:"record_observations",intent:r,stage:E};break}try{let{isGitRepo:_}=await Promise.resolve().then(()=>(ze(),AZ));if(!_()){c=iy(r);continue}try{let x=`haiku/${r}/${E}`;if(fNt()===x){let k=`.haiku/intents/${r}/stages/${E}/observations.md`;cE("git",["status","--porcelain","--",k],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()&&(cE("git",["add","--",k],{stdio:"ignore"}),cE("git",["commit","-m",`haiku: observations for stage ${E}`],{stdio:"ignore"}))}}catch{}let{mergeStageBranchIntoMain:T}=await Promise.resolve().then(()=>(ar(),MI)),{withIntentMainLock:R}=await Promise.resolve().then(()=>(K0(),FSt)),A=R(r,()=>T(r,E));if(!A.success)return A.isConflict?{content:[{type:"text",text:`Stage '${E}' completion blocked by conflict: ${A.message}`}],isError:!0}:{content:[{type:"text",text:`Stage '${E}' completion blocked: its branch could not be merged into intent-main: ${A.message} -The stage branch \`haiku/${r}/${E}\` is intact (not deleted) \u2014 no work is lost. Resolve the merge on \`haiku/${r}/main\` (commit/stash any blocking untracked files, then \`git merge haiku/${r}/${E}\`), then re-run.`}],isError:!0};try{let{invalidateDownstreamApprovals:x}=await Promise.resolve().then(()=>(Rxt(),vxt)),k=ce(r),P=po(k,"intent.md");if(su(P)){let N=QU(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(ve(),"intents",r,"intent.md");if(su(S)){let E=yr(r,c.stage);if(!E.ok)return Xb(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=ce(r),E=rO(po(S,"intent.md"),"utf8");p=re(E).data}catch{}let h=p.studio||"",m=S=>{Ox(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 _=sU(r,h,S,ce(r)),T=W6(_),{tell_user:R,next_step:A,...x}=S;return`${JSON.stringify(x,null,2)} +The stage branch \`haiku/${r}/${E}\` is intact (not deleted) \u2014 no work is lost. Resolve the merge on \`haiku/${r}/main\` (commit/stash any blocking untracked files, then \`git merge haiku/${r}/${E}\`), then re-run.`}],isError:!0};try{let{invalidateDownstreamApprovals:x}=await Promise.resolve().then(()=>(Axt(),Rxt)),k=ce(r),P=po(k,"intent.md");if(su(P)){let N=QU(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(ve(),"intents",r,"intent.md");if(su(S)){let E=yr(r,c.stage);if(!E.ok)return Xb(r,c.stage,E,"run_next post-cursor revisit alignment")}}catch{}Ke("haiku.orchestrator.action",{intent:r,action:c.action}),i&&Bi(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"&&Bi(i,{event:"outputs_missing",intent:r,stage:c.stage,missing:c.missing}),i&&c.action==="discovery_missing"&&Bi(i,{event:"discovery_missing",intent:r,stage:c.stage,missing:c.missing});let p={};try{let S=ce(r),E=rO(po(S,"intent.md"),"utf8");p=re(E).data}catch{}let h=p.studio||"",m=S=>{Ox(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 _=sU(r,h,S,ce(r)),T=W6(_),{tell_user:R,next_step:A,...x}=S;return`${JSON.stringify(x,null,2)} --- @@ -1546,30 +1546,30 @@ Engine couldn't open the MR via gh/glab (${E.prError??E.pushError??"no CLI found ${E.message} Open ONE merge request from branch \`haiku/${r}/${c.stage}\` to \`haiku/${r}/main\` (NOT the repo default branch \u2014 the engine detects merges via intent main, not the repo default). Record the URL via haiku_run_next { intent: "${r}", external_review_url: "" }.`}catch(S){c.message=`${c.message||""} -IMPORTANT: Open the change request from \`haiku/${r}/${c.stage}\` to \`haiku/${r}/main\` (NOT the repo default). Try \`gh pr create --base haiku/${r}/main\` for GitHub or \`glab mr create --target-branch haiku/${r}/main\` for GitLab. (Engine helper threw: ${S instanceof Error?S.message:String(S)}.) Record the URL via haiku_run_next { intent: "${r}", external_review_url: "" }.`}let g=0,y=null;for(;c.action==="gate_review"||c.action==="user_gate";){let S=Mx(c);if(++g>TU)return im("gate_review",g,c,"cap");if(S===y)return im("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(),cpt)),L=po(ve(),"intents",r,"intent.md"),G=su(L)?re(rO(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=mve();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=()=>mv(C.session_id)||t1(r);!C.browser_attached&&!W()&&dp(C.review_url,"Gate review",C.session_id);let{orchestratorToolHandlers:$}=await Promise.resolve().then(()=>(EU(),hve)),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=ypr(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");mpr(Q,{recursive:!0}),gpr(po(Q,"gate-review-error.log"),`${new Date().toISOString()} +IMPORTANT: Open the change request from \`haiku/${r}/${c.stage}\` to \`haiku/${r}/main\` (NOT the repo default). Try \`gh pr create --base haiku/${r}/main\` for GitHub or \`glab mr create --target-branch haiku/${r}/main\` for GitLab. (Engine helper threw: ${S instanceof Error?S.message:String(S)}.) Record the URL via haiku_run_next { intent: "${r}", external_review_url: "" }.`}let g=0,y=null;for(;c.action==="gate_review"||c.action==="user_gate";){let S=Mx(c);if(++g>TU)return im("gate_review",g,c,"cap");if(S===y)return im("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(()=>(ji(),upt)),L=po(ve(),"intents",r,"intent.md"),G=su(L)?re(rO(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&&Bi(i,{event:"gate_review_prepared",intent:r,stage:E,gate_type:k});let N=yve();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=()=>mv(C.session_id)||t1(r);!C.browser_attached&&!W()&&dp(C.review_url,"Gate review",C.session_id);let{orchestratorToolHandlers:$}=await Promise.resolve().then(()=>(EU(),gve)),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=Spr(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");gpr(Q,{recursive:!0}),ypr(po(Q,"gate-review-error.log"),`${new Date().toISOString()} intent: ${r} stage: ${E} phase: ${q} error: ${L} ${G} --- -`,{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(()=>(lNt(),uNt)),E=ve(),_=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=yr(r,c.stage||void 0);if(!P.ok)return Xb(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} +`,{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(()=>(dNt(),lNt)),E=ve(),_=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=yr(r,c.stage||void 0);if(!P.ok)return Xb(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&&Bi(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(P)}]}}}catch{}try{let S=ce(r),E=po(S,"intent.md");if(su(E)){let _=rO(E,"utf8"),{data:T}=re(_),R=T.studio||"";if(R){let A=ai(r,R);if(A){let x=`haiku/${r}/${A}`,k=YD(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)&&u3(x)){let k=Lh(x);!k.ok&&k.error&&console.error(`[haiku] auto-push of ${x} failed: ${k.error}`)}}}}}catch(S){console.error(`[haiku] auto-push end-of-tick check threw: ${S instanceof Error?S.message:String(S)}`)}Xr(r,e.state_file);let b=m(c);return ye(a?`${a} -${b}`:b)}}});import{existsSync as gNt,readFileSync as bpr}from"node:fs";import{join as mNt}from"node:path";function Epr(e){if(!gNt(e))return{};let t=bpr(e,"utf8"),{data:n}=re(t);return n}var _pr,yNt,SNt=v(()=>{"use strict";ar();Yd();$b();ji();uo();cye();ze();vo();zi();Vv();vs();_pr={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."},yNt={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:_0,async handle(e,t){let n=Be(e,Mge,"haiku_select_mode");if(n)return n;let r=e,i=r.intent,s=ve(),o=mNt(s,"intents",i),a=mNt(o,"intent.md");if(!gNt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=Epr(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(),D0)),p=!!(d(i,u)??""),m=xY.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:_pr[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:xn("Mode picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));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=yr(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(Ne(a,"mode",b),b==="quick")Zh(a,["stages"]);else{let E=Fs(u);Ne(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"?xn(`The user picked **quick** mode for "${i}".`,`Call haiku_run_next { intent: "${i}" } \u2014 the engine will open the stage picker next.`):xn(`The user picked **${b}** mode for "${i}"${l&&l!==b?` (was ${l})`:""}.`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))}}});import{existsSync as ENt,readFileSync as Tpr}from"node:fs";import{join as bNt}from"node:path";function vpr(e){if(!ENt(e))return{};let t=Tpr(e,"utf8"),{data:n}=re(t);return n}var _Nt,TNt=v(()=>{"use strict";ar();Yd();$b();ji();uo();ze();vo();zi();Vv();vs();_Nt={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:T0,async handle(e,t){let n=Be(e,Dge,"haiku_select_stage");if(n)return n;let r=e,i=r.intent,s=ve(),o=bNt(s,"intents",i),a=bNt(o,"intent.md");if(!ENt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=vpr(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:xn("Stage picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));m=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=yr(i,void 0);return g.ok?(Ne(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:xn(`The user picked the **${m}** stage for quick intent "${i}".`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))):{content:[{type:"text",text:`Error: branch enforcement failed after stage selection for intent '${i}' \u2014 ${g.message}. Resolve manually and retry.`}],isError:!0}}}});function vNt(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 RNt=v(()=>{"use strict"});import{existsSync as gve,readdirSync as Rpr,readFileSync as Apr}from"node:fs";import{join as l8}from"node:path";var ANt,wNt=v(()=>{"use strict";ar();Yd();$b();ji();uo();ze();Kn();vo();zi();Vv();vs();RNt();ANt={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:E0,async handle(e,t){let n=Be(e,Cge,"haiku_select_studio");if(n)return n;let r=e,i=r.intent,s=ve(),o=l8(s,"intents",i),a=l8(o,"intent.md");if(!gve(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=l8(o,"stages");if(gve(c))for(let h of Rpr(c,{withFileTypes:!0})){if(!h.isDirectory())continue;let m=l8(c,h.name,"state.json");if(gve(m)){let g=qb(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=kI().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(Apr(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=vNt(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:xn("Studio picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon the intent.")}));d=y.selection.id}if(!d)return{content:[{type:"text",text:"No studio selected."}],isError:!0};let f=yr(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 Ne(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:xn(`The user selected the **${d}** studio for "${i}". Studio is now locked.`,"Continue the tick \u2014 the engine will drive the next selection (mode, then stage if quick) automatically.")},null,2))}}});import{existsSync as kNt,readFileSync as wpr,writeFileSync as kpr}from"node:fs";import{join as INt}from"node:path";var yve,xNt,ONt=v(()=>{"use strict";yve=Re(Kt(),1);ar();xx();ji();uo();ze();zi();vs();xNt={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:w0,handle(e){let t=Be(e,jge,"haiku_stage_decompose_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=Ix({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=INt(a,"intents",n);if(!kNt(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=INt(c,"stages",r,"elaboration.md");if(!kNt(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=yr(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=wpr(u,"utf8"),f=(0,yve.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()),kpr(u,yve.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 Ipr,mkdirSync as xpr,writeFileSync as Opr}from"node:fs";import{join as Sve}from"node:path";var PNt,NNt,CNt=v(()=>{"use strict";PNt=Re(Kt(),1);ar();xx();ji();uo();ze();zi();vs();NNt={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:R0,handle(e){let t=Be(e,Uge,"haiku_stage_elaboration_record");if(t)return t;let n=e.intent,r=e.stage,i=e.body,s=ve(),o=Sve(s,"intents",n);if(!Ipr(o))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_stage_elaboration_record",message:`Intent '${n}' not found.`},null,2)}],isError:!0};let a=Sve(o,"stages",r),c=yr(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};xpr(a,{recursive:!0});let u=Sve(a,"elaboration.md"),l=new Date().toISOString(),d={recorded_at:l,intent:n,stage:r};return Opr(u,PNt.default.stringify(i,d)),r_e({kind:"stage_elaborate",slug:n,stage:r}),r_e({kind:"stage_decompose",slug:n,stage:r}),wt(`haiku: record elaboration for ${n}/${r}`),ye(JSON.stringify({action:"elaboration_recorded",slug:n,stage:r,path:u,recorded_at:l,message:`Captured elaboration for '${n}/${r}'. The cursor will dispatch the verifier on the next tick.`},null,2))}}});import{existsSync as MNt,readFileSync as Ppr,writeFileSync as Npr}from"node:fs";import{join as DNt}from"node:path";var bve,LNt,UNt=v(()=>{"use strict";bve=Re(Kt(),1);ar();xx();ji();uo();ze();zi();vs();LNt={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:A0,handle(e){let t=Be(e,Fge,"haiku_stage_elaboration_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=Ix({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=DNt(a,"intents",n);if(!MNt(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=DNt(c,"stages",r,"elaboration.md");if(!MNt(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=yr(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=Ppr(u,"utf8"),f=(0,bve.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()),Npr(u,bve.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 Eve}from"node:child_process";import{existsSync as $U,readdirSync as FNt,readFileSync as Cpr,rmSync as jNt,statSync as HNt}from"node:fs";import{join as uE}from"node:path";var qNt,BNt=v(()=>{"use strict";ar();$b();ji();uo();ze();zi();vs();qNt={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:S0,async handle(e,t){let n=Be(e,Ige,"haiku_stage_reset");if(n)return n;let{intent:r,stage:i}=e,s=ve(),o=uE(s,"intents",r),a=uE(o,"intent.md");if(!$U(a))return{content:[{type:"text",text:`Intent '${r}' not found.`}],isError:!0};let c=uE(o,"stages",i);if(!$U(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=uE(c,m);$U(g)&&u.push(m)}let l=uE(c,"discovery"),d=(()=>{if(!$U(l))return!1;try{return FNt(l).some(m=>{let g=uE(l,m);try{return HNt(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=Ee()&&Pt(f);if(p&&u.push(`git branch \`${f}\``),u.length===0)return ye(JSON.stringify({action:"noop",message:`Stage '${i}' has no resettable state \u2014 already clean.`}));let h=await Ju({intentSlug:r,kind:"confirm",title:`Reset stage "${i}" on intent "${r}"?`,prompt:`This will DELETE the following from stage '${i}': +${b}`:b)}}});import{existsSync as yNt,readFileSync as Epr}from"node:fs";import{join as gNt}from"node:path";function _pr(e){if(!yNt(e))return{};let t=Epr(e,"utf8"),{data:n}=re(t);return n}var Tpr,SNt,bNt=v(()=>{"use strict";ar();Yd();$b();Hi();uo();lye();ze();vo();Gi();Vv();vs();Tpr={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."},SNt={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:_0,async handle(e,t){let n=Be(e,Lge,"haiku_select_mode");if(n)return n;let r=e,i=r.intent,s=ve(),o=gNt(s,"intents",i),a=gNt(o,"intent.md");if(!yNt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=_pr(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(),D0)),p=!!(d(i,u)??""),m=xY.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:Tpr[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:xn("Mode picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));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=yr(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(Ne(a,"mode",b),b==="quick")Zh(a,["stages"]);else{let E=Fs(u);Ne(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"?xn(`The user picked **quick** mode for "${i}".`,`Call haiku_run_next { intent: "${i}" } \u2014 the engine will open the stage picker next.`):xn(`The user picked **${b}** mode for "${i}"${l&&l!==b?` (was ${l})`:""}.`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))}}});import{existsSync as _Nt,readFileSync as vpr}from"node:fs";import{join as ENt}from"node:path";function Rpr(e){if(!_Nt(e))return{};let t=vpr(e,"utf8"),{data:n}=re(t);return n}var TNt,vNt=v(()=>{"use strict";ar();Yd();$b();Hi();uo();ze();vo();Gi();Vv();vs();TNt={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:T0,async handle(e,t){let n=Be(e,Uge,"haiku_select_stage");if(n)return n;let r=e,i=r.intent,s=ve(),o=ENt(s,"intents",i),a=ENt(o,"intent.md");if(!_Nt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=Rpr(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:xn("Stage picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));m=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=yr(i,void 0);return g.ok?(Ne(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:xn(`The user picked the **${m}** stage for quick intent "${i}".`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))):{content:[{type:"text",text:`Error: branch enforcement failed after stage selection for intent '${i}' \u2014 ${g.message}. Resolve manually and retry.`}],isError:!0}}}});function RNt(e,t){let n=new Map(e.map(a=>[a.name,a])),r=new Set(t),i=[];for(let a of t){let c=n.get(a);c&&!i.includes(c)&&i.push(c)}let s=[...i,...e.filter(a=>!r.has(a.name))],o=i.length>0;return s.map(a=>({id:a.dir,label:a.name,description:a.description??"",...o&&!r.has(a.name)?{secondary:!0}:{}}))}var ANt=v(()=>{"use strict"});import{existsSync as Sve,readdirSync as Apr,readFileSync as wpr}from"node:fs";import{join as l8}from"node:path";var wNt,kNt=v(()=>{"use strict";ar();Yd();$b();Hi();uo();ze();Kn();vo();Gi();Vv();vs();ANt();wNt={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:E0,async handle(e,t){let n=Be(e,Dge,"haiku_select_studio");if(n)return n;let r=e,i=r.intent,s=ve(),o=l8(s,"intents",i),a=l8(o,"intent.md");if(!Sve(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=l8(o,"stages");if(Sve(c))for(let h of Apr(c,{withFileTypes:!0})){if(!h.isDirectory())continue;let m=l8(c,h.name,"state.json");if(Sve(m)){let g=qb(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=kI().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(wpr(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=RNt(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:xn("Studio picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon the intent.")}));d=y.selection.id}if(!d)return{content:[{type:"text",text:"No studio selected."}],isError:!0};let f=yr(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 Ne(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:xn(`The user selected the **${d}** studio for "${i}". Studio is now locked.`,"Continue the tick \u2014 the engine will drive the next selection (mode, then stage if quick) automatically.")},null,2))}}});import{existsSync as INt,readFileSync as kpr,writeFileSync as Ipr}from"node:fs";import{join as xNt}from"node:path";var bve,ONt,PNt=v(()=>{"use strict";bve=Re(Kt(),1);ar();xx();Hi();uo();ze();Gi();vs();ONt={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:w0,handle(e){let t=Be(e,qge,"haiku_stage_decompose_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=Ix({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=xNt(a,"intents",n);if(!INt(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=xNt(c,"stages",r,"elaboration.md");if(!INt(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=yr(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=kpr(u,"utf8"),f=(0,bve.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()),Ipr(u,bve.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 xpr,mkdirSync as Opr,writeFileSync as Ppr}from"node:fs";import{join as Eve}from"node:path";var NNt,CNt,MNt=v(()=>{"use strict";NNt=Re(Kt(),1);ar();xx();Hi();uo();ze();Gi();vs();CNt={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:R0,handle(e){let t=Be(e,jge,"haiku_stage_elaboration_record");if(t)return t;let n=e.intent,r=e.stage,i=e.body,s=ve(),o=Eve(s,"intents",n);if(!xpr(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=Eve(o,"stages",r),c=yr(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};Opr(a,{recursive:!0});let u=Eve(a,"elaboration.md"),l=new Date().toISOString(),d={recorded_at:l,intent:n,stage:r};return Ppr(u,NNt.default.stringify(i,d)),s_e({kind:"stage_elaborate",slug:n,stage:r}),s_e({kind:"stage_decompose",slug:n,stage:r}),wt(`haiku: record elaboration for ${n}/${r}`),ye(JSON.stringify({action:"elaboration_recorded",slug:n,stage:r,path:u,recorded_at:l,message:`Captured elaboration for '${n}/${r}'. The cursor will dispatch the verifier on the next tick.`},null,2))}}});import{existsSync as DNt,readFileSync as Npr,writeFileSync as Cpr}from"node:fs";import{join as LNt}from"node:path";var _ve,UNt,FNt=v(()=>{"use strict";_ve=Re(Kt(),1);ar();xx();Hi();uo();ze();Gi();vs();UNt={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:A0,handle(e){let t=Be(e,Hge,"haiku_stage_elaboration_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=Ix({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=LNt(a,"intents",n);if(!DNt(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=LNt(c,"stages",r,"elaboration.md");if(!DNt(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=yr(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=Npr(u,"utf8"),f=(0,_ve.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()),Cpr(u,_ve.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 Tve}from"node:child_process";import{existsSync as $U,readdirSync as jNt,readFileSync as Mpr,rmSync as HNt,statSync as qNt}from"node:fs";import{join as uE}from"node:path";var BNt,zNt=v(()=>{"use strict";ar();$b();Hi();uo();ze();Gi();vs();BNt={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:S0,async handle(e,t){let n=Be(e,Oge,"haiku_stage_reset");if(n)return n;let{intent:r,stage:i}=e,s=ve(),o=uE(s,"intents",r),a=uE(o,"intent.md");if(!$U(a))return{content:[{type:"text",text:`Intent '${r}' not found.`}],isError:!0};let c=uE(o,"stages",i);if(!$U(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=uE(c,m);$U(g)&&u.push(m)}let l=uE(c,"discovery"),d=(()=>{if(!$U(l))return!1;try{return jNt(l).some(m=>{let g=uE(l,m);try{return qNt(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=Ee()&&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(Ee())try{let m="";try{m=Eve("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{Eve("git",["checkout",b],{encoding:"utf8",stdio:"pipe"})}catch{Eve("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=uE(c,m);$U(g)&&jNt(g,{recursive:!0,force:!0})}if(d)try{for(let m of FNt(l)){if(!m.endsWith(".md"))continue;let g=uE(l,m);try{HNt(g).isFile()&&jNt(g,{force:!0})}catch{}}}catch{}try{let m=Cpr(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);Zh(a,y)}}catch{}if(p)try{bb(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 Mpr,readFileSync as Dpr,writeFileSync as Lpr}from"node:fs";var _ve,Upr,zNt,GNt=v(()=>{"use strict";_ve=Re(Kt(),1);ar();$b();ji();uo();ze();zi();vs();Upr=["iterations","reviews","approvals","started_at","hat","hat_started_at","bolt","status"],zNt={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:I0,async handle(e,t){let n=Be(e,oye,"haiku_unit_reset");if(n)return n;let{intent:r,stage:i,unit:s}=e,o=Pa(r,i,s);if(!Mpr(o))return{content:[{type:"text",text:`No unit '${s}' in stage '${i}' of intent '${r}'.`}],isError:!0};let a=Dpr(o,"utf8"),{data:c,content:u}=(0,_ve.default)(a),l=J0(c);if(l==="pending")return ye(JSON.stringify({action:"noop",slug:r,stage:i,unit:s,message:`Unit '${s}' is already pending \u2014 nothing to reset. Edit it with haiku_unit_write or let the engine run it.`}));if(l==="completed")return{content:[{type:"text",text:JSON.stringify({error:"unit_completed_not_resettable",slug:r,stage:i,unit:s,message:`Unit '${s}' is completed \u2014 its work is already merged into the stage branch. Reset cannot un-merge it and would only desync engine state from the code on disk. Reset is for wedged in-flight units only. To change completed work, file feedback against the stage (fix-loop) or revisit the stage.`})}],isError:!0};let d=await Ju({intentSlug:r,kind:"confirm",title:`Reset unit "${s}" (currently ${l}) on "${r}"?`,prompt:`This will return unit '${s}' in stage '${i}' to **pending**: +Other stages of '${r}' will NOT be touched. Intent main's git history (including any prior merge of this stage) stays put. The next \`haiku_run_next\` will re-enter '${i}' at its elaborate phase. This cannot be undone.`,options:[{id:"reset",label:`Yes, reset stage ${i}`,description:"Wipe the stage and let the engine re-run it"},{id:"cancel",label:"Cancel",description:"Keep the stage as-is"}],signal:t});if(h.timedOut||!h.selection||h.selection.id!=="reset")return ye(JSON.stringify({action:"cancelled",message:`Reset of stage '${i}' cancelled.`}));if(Ee())try{let m="";try{m=Tve("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{Tve("git",["checkout",b],{encoding:"utf8",stdio:"pipe"})}catch{Tve("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=uE(c,m);$U(g)&&HNt(g,{recursive:!0,force:!0})}if(d)try{for(let m of jNt(l)){if(!m.endsWith(".md"))continue;let g=uE(l,m);try{qNt(g).isFile()&&HNt(g,{force:!0})}catch{}}}catch{}try{let m=Mpr(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);Zh(a,y)}}catch{}if(p)try{bb(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 Dpr,readFileSync as Lpr,writeFileSync as Upr}from"node:fs";var vve,Fpr,GNt,VNt=v(()=>{"use strict";vve=Re(Kt(),1);ar();$b();Hi();uo();ze();Gi();vs();Fpr=["iterations","reviews","approvals","started_at","hat","hat_started_at","bolt","status"],GNt={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:I0,async handle(e,t){let n=Be(e,cye,"haiku_unit_reset");if(n)return n;let{intent:r,stage:i,unit:s}=e,o=Pa(r,i,s);if(!Dpr(o))return{content:[{type:"text",text:`No unit '${s}' in stage '${i}' of intent '${r}'.`}],isError:!0};let a=Lpr(o,"utf8"),{data:c,content:u}=(0,vve.default)(a),l=J0(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 Upr)delete f[h];Lpr(o,_ve.default.stringify(u,f));let p=Npe(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 hve={};Ar(hve,{orchestratorToolHandlers:()=>bU});var bU,EU=v(()=>{"use strict";DIt();HIt();D0t();U0t();G0t();K0t();X0t();$0t();nxt();oxt();cxt();lxt();gxt();bxt();pNt();SNt();TNt();wNt();ONt();CNt();UNt();BNt();GNt();bU=new Map([MIt,jIt,M0t,L0t,z0t,W0t,J0t,Q0t,txt,sxt,axt,uxt,mxt,Sxt,fNt,yNt,_Nt,ANt,xNt,NNt,LNt,qNt,zNt].map(e=>[e.name,e]))});function VNt(e){return{feedback_id:e.id,title:e.title,status:e.status,origin:e.origin,author:e.author,file:e.file}}function Xb(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 Fpr)delete f[h];Upr(o,vve.default.stringify(u,f));let p=Npe(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 gve={};Ar(gve,{orchestratorToolHandlers:()=>bU});var bU,EU=v(()=>{"use strict";LIt();qIt();L0t();F0t();V0t();Y0t();Q0t();ext();rxt();axt();uxt();dxt();yxt();Ext();hNt();bNt();vNt();kNt();PNt();MNt();FNt();zNt();VNt();bU=new Map([DIt,HIt,D0t,U0t,G0t,K0t,X0t,$0t,nxt,oxt,cxt,lxt,gxt,bxt,pNt,SNt,TNt,wNt,ONt,CNt,UNt,BNt,GNt].map(e=>[e.name,e]))});function WNt(e){return{feedback_id:e.id,title:e.title,status:e.status,origin:e.origin,author:e.author,file:e.file}}function Xb(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(` @@ -1578,15 +1578,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 WNt(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 KNt(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 KNt(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 YNt(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 YNt=v(()=>{"use strict";ze();vo()});function Ox(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=Ee()?"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 ZNt=v(()=>{"use strict";ze()});import{execFileSync as JNt}from"node:child_process";import{existsSync as iR,readFileSync as Fpr}from"node:fs";import{join as sy}from"node:path";function Tve(e,t){if(t)try{let n=YD(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 iO(e){if(!iR(e))return{};let t=Fpr(e,"utf8"),{data:n}=re(t);return n}function Hpr(e,t){let n=sy(ce(e),"intent.md"),r=iO(n).mode||"";if(jpr.has(r)&&!(!Ee()||CT()===null)&&!Tv(e,t)?.url)try{let i=gpe({slug:e,stage:t});i.createdUrl?(zb(e,t,"url",i.createdUrl),zb(e,t,"status","draft")):(zb(e,t,"status","failed"),console.error(`[haiku] stage draft PR for ${e}/${t} not opened: ${i.message}`))}catch(i){console.error(`[haiku] stage draft PR for ${e}/${t} threw: ${i instanceof Error?i.message:String(i)}`)}}function qpr(e,t){let n=sy(ce(e),"intent.md"),r=iO(n),i=r.studio||"",s=wn(r,i),o=s.indexOf(t);return o>0?s[o-1]:void 0}function vve(e,t){PI(e),l3(e),wt(`haiku: pre-stage cleanup for ${e}/${t}`),Tve(e,t);let n=qpr(e,t),r=n?`haiku/${e}/${n}`:"";if(n&&Pt(r)&&!Zc(r,`haiku/${e}/main`)){let i=sZ(e,()=>ZD(e,n));if(!i.success)throw new Error(`Merge of completed stage '${n}' into main failed: ${i.message}. Resolve conflicts on 'haiku/${e}/main' manually, then retry.`)}if(n&&Pt(r)){bb(e,n);try{JNt("git",["push","origin","--delete",r],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}if(!Epe(e,t)){let i=`haiku/${e}/${t}`;if(Pt(i)&&n){let s=Tpe(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 _pe(e,t)}lSe(e,t,{trigger:"initial"}),l3(e),Hpr(e,t),Ke("haiku.stage.started",{intent:e,stage:t}),wt(`haiku: start stage ${t}`),Tve(e,t),ci(e)}function cU(e,t,n){Ke("haiku.stage.phase",{intent:e,stage:t,phase:n}),ci(e)}function Px(e,t,n){dSe(e,t,n==="advanced"?"advanced":"rejected"),Ke("haiku.stage.completed",{intent:e,stage:t,gate_outcome:n}),wt(`haiku: complete stage ${t}`),Tve(e,t),ci(e)}function K6(e,t,n){Px(e,t,"advanced"),vve(e,n),ci(e)}function XNt(e,t){Ke("haiku.gate.entered",{intent:e,stage:t}),ci(e)}function Bpr(e){let t=sy(ce(e),"intent.md");iR(t)&&(Ne(t,"completion_review_entered_at",mn()),Ke("haiku.intent.completion_review_entered",{intent:e}),ci(e))}function zpr(e,t){if(!Ee()||!t)return;let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;if(Pt(n)&&!Zc(n,r)){let i=sZ(e,()=>ZD(e,t));i.success||console.error(`[workflowFinalizeStageIntoIntentMain] merge ${n}\u2192${r} failed: ${i.message}. +${i}${o}`:`${s}${o}`}var ZNt=v(()=>{"use strict";ze();vo()});function Ox(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=Ee()?"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 JNt=v(()=>{"use strict";ze()});import{execFileSync as XNt}from"node:child_process";import{existsSync as iR,readFileSync as jpr}from"node:fs";import{join as sy}from"node:path";function Rve(e,t){if(t)try{let n=YD(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 iO(e){if(!iR(e))return{};let t=jpr(e,"utf8"),{data:n}=re(t);return n}function qpr(e,t){let n=iO(sy(ce(e),"intent.md")),r=n.mode||"";if(Hpr.has(r)){if(r==="discrete-hybrid"){let i=n.studio||"";if(!i||!$pe(i,t))return}if(!(!Ee()||CT()===null)&&!Tv(e,t)?.url)try{let i=gpe({slug:e,stage:t});i.createdUrl?(zb(e,t,"url",i.createdUrl),zb(e,t,"status","draft")):(zb(e,t,"status","failed"),console.error(`[haiku] stage draft PR for ${e}/${t} not opened: ${i.message}`))}catch(i){console.error(`[haiku] stage draft PR for ${e}/${t} threw: ${i instanceof Error?i.message:String(i)}`)}}}function Bpr(e,t){let n=sy(ce(e),"intent.md"),r=iO(n),i=r.studio||"",s=wn(r,i),o=s.indexOf(t);return o>0?s[o-1]:void 0}function Ave(e,t){PI(e),l3(e),wt(`haiku: pre-stage cleanup for ${e}/${t}`),Rve(e,t);let n=Bpr(e,t),r=n?`haiku/${e}/${n}`:"";if(n&&Pt(r)&&!Zc(r,`haiku/${e}/main`)){let i=sZ(e,()=>ZD(e,n));if(!i.success)throw new Error(`Merge of completed stage '${n}' into main failed: ${i.message}. Resolve conflicts on 'haiku/${e}/main' manually, then retry.`)}if(n&&Pt(r)){bb(e,n);try{XNt("git",["push","origin","--delete",r],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}if(!Epe(e,t)){let i=`haiku/${e}/${t}`;if(Pt(i)&&n){let s=Tpe(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 _pe(e,t)}fSe(e,t,{trigger:"initial"}),l3(e),qpr(e,t),Ke("haiku.stage.started",{intent:e,stage:t}),wt(`haiku: start stage ${t}`),Rve(e,t),ci(e)}function cU(e,t,n){Ke("haiku.stage.phase",{intent:e,stage:t,phase:n}),ci(e)}function Px(e,t,n){pSe(e,t,n==="advanced"?"advanced":"rejected"),Ke("haiku.stage.completed",{intent:e,stage:t,gate_outcome:n}),wt(`haiku: complete stage ${t}`),Rve(e,t),ci(e)}function K6(e,t,n){Px(e,t,"advanced"),Ave(e,n),ci(e)}function QNt(e,t){Ke("haiku.gate.entered",{intent:e,stage:t}),ci(e)}function zpr(e){let t=sy(ce(e),"intent.md");iR(t)&&(Ne(t,"completion_review_entered_at",mn()),Ke("haiku.intent.completion_review_entered",{intent:e}),ci(e))}function Gpr(e,t){if(!Ee()||!t)return;let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;if(Pt(n)&&!Zc(n,r)){let i=sZ(e,()=>ZD(e,t));i.success||console.error(`[workflowFinalizeStageIntoIntentMain] merge ${n}\u2192${r} failed: ${i.message}. Intent-completion review will still open; resolve the merge manually before approving the final gate. Recovery paths for the stage branch if the reap below loses it before you can merge: - \`git reflog show ${n}\` \u2014 the branch's tip is still in reflog until gc runs (default 90 days). - \`origin/${n}\` \u2014 if the branch was pushed, the remote tracking ref still has the tip. - - \`git fsck --lost-found\` \u2014 catches dangling commits even after the branch ref is deleted.`)}if(Pt(n)&&Zc(n,r)){bb(e,t);try{JNt("git",["push","origin","--delete",n],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}yr(e,void 0)}function uU(e,t,n){let r=n?sy(n,"intents",e):ce(e),i=sy(r,"intent.md"),s=iR(i)?iO(i):{},o=wn(s,t),a=typeof s.mode=="string"&&s.mode.length>0?s.mode:"continuous",c=[];for(let u of o)bv({slug:e,studio:t,stage:u,intentDir:r,intentMode:a}).status!=="completed"&&c.push(u);return c}function Gpr(e,t){let n=t?sy(t,"intents",e):ce(e),r=sy(n,"intent.md");iR(r)&&(Ne(r,"completion_review_entered_at",""),Ne(r,"completion_review_dispatched",!1),Ne(r,"completion_review_skipped",!1),Ne(r,"completion_review_dispatched_at",""),ci(e))}function Y6(e,t,n){let r=uU(e,t);if(r.length>0)return Gpr(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=sy(ce(e),"intent.md"),s=iR(i)?iO(i):{},a=wn(s,t).at(-1)??"";return a&&zpr(e,a),Bpr(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 Z6(e){let t=sy(ce(e),"intent.md");if(iR(t)){let s=iO(t),o=s.draft_pr_url,a=s.draft_pr_status;if(o&&a==="draft"){let c=ype(o);c.ok?(Ne(t,"draft_pr_status","ready"),Ne(t,"draft_pr_ready_at",mn())):(console.error(`[haiku] mark-ready of ${o} failed: ${c.error}`),Ne(t,"draft_pr_status","failed"))}}Ke("haiku.intent.completed",{intent:e}),wt(`haiku: complete intent ${e}`);let n=iR(t)?iO(t):{},r=n.studio||"",i=r?wn(n,r):[];if(i.length>0){let s=Cpe(e,i);s.success||console.error(`[haiku] finalizeIntentBranches warning for ${e}: ${s.message}`)}QD(e),ci(e),bpe(e)}var jpr,QNt=v(()=>{"use strict";ar();K0();Yd();uZ();ze();vo();f1();jpr=new Set(["discrete","discrete-hybrid"])});var hNt={};Ar(hNt,{buildElaboratorInstruction:()=>KNt,buildGuardResponse:()=>Xb,buildOutputRequirements:()=>Tx,buildRunInstructions:()=>sU,cleanupPreExecuteFeedback:()=>hpt,completeOrReviewIntent:()=>Y6,computeUnitWaves:()=>KI,currentWaveNumber:()=>YI,enrichActionWithPreview:()=>Ox,findIncompleteStages:()=>uU,getAwaitGateReviewSession:()=>c_e,getPrepareGateReview:()=>mve,handleOrchestratorTool:()=>N_e,isStagePreExecute:()=>aL,listUnits:()=>Eg,maybeEscalate:()=>WNt,orchestratorToolDefs:()=>L6,resolveIntentStages:()=>wn,resolveStageHats:()=>Es,resolveStageMetadata:()=>the,resolveStageReview:()=>ehe,resolveStudioFilePath:()=>Ff,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>$pe,runNext:()=>Vpr,runQualityGates:()=>iwt,setGateReviewHandlers:()=>Rve,summarizeFeedback:()=>VNt,validateCumulativeInputCoverage:()=>nwt,validateDiscoveryArtifacts:()=>QAt,validateOutputLiveness:()=>rwt,validateStageOutputs:()=>XAt,validateUnitInputs:()=>ewt,validateUnitNaming:()=>$At,workflowAdvancePhase:()=>cU,workflowAdvanceStage:()=>K6,workflowCompleteStage:()=>Px,workflowGateAsk:()=>XNt,workflowIntentComplete:()=>Z6,workflowStartStage:()=>vve,writeReviewFeedbackFiles:()=>N6});function Kpr(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 sU(e,t,n,r){let i=pkt.get(n.action),s=null;if(i&&(s=i({slug:e,studio:t,action:n,dir:r})),s&&!Wpr.has(n.action)&&!n.prompt_file)try{let{path:d}=Uft({action:n.action,intent:e,stage:n.stage||void 0,content:s,tickHint:Kpr(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)){bb(e,t);try{XNt("git",["push","origin","--delete",n],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}yr(e,void 0)}function uU(e,t,n){let r=n?sy(n,"intents",e):ce(e),i=sy(r,"intent.md"),s=iR(i)?iO(i):{},o=wn(s,t),a=typeof s.mode=="string"&&s.mode.length>0?s.mode:"continuous",c=[];for(let u of o)bv({slug:e,studio:t,stage:u,intentDir:r,intentMode:a}).status!=="completed"&&c.push(u);return c}function Vpr(e,t){let n=t?sy(t,"intents",e):ce(e),r=sy(n,"intent.md");iR(r)&&(Ne(r,"completion_review_entered_at",""),Ne(r,"completion_review_dispatched",!1),Ne(r,"completion_review_skipped",!1),Ne(r,"completion_review_dispatched_at",""),ci(e))}function Y6(e,t,n){let r=uU(e,t);if(r.length>0)return Vpr(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=sy(ce(e),"intent.md"),s=iR(i)?iO(i):{},a=wn(s,t).at(-1)??"";return a&&Gpr(e,a),zpr(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 Z6(e){let t=sy(ce(e),"intent.md");if(iR(t)){let s=iO(t),o=s.draft_pr_url,a=s.draft_pr_status;if(o&&a==="draft"){let c=ype(o);c.ok?(Ne(t,"draft_pr_status","ready"),Ne(t,"draft_pr_ready_at",mn())):(console.error(`[haiku] mark-ready of ${o} failed: ${c.error}`),Ne(t,"draft_pr_status","failed"))}}Ke("haiku.intent.completed",{intent:e}),wt(`haiku: complete intent ${e}`);let n=iR(t)?iO(t):{},r=n.studio||"",i=r?wn(n,r):[];if(i.length>0){let s=Cpe(e,i);s.success||console.error(`[haiku] finalizeIntentBranches warning for ${e}: ${s.message}`)}QD(e),ci(e),bpe(e)}var Hpr,$Nt=v(()=>{"use strict";ar();K0();Yd();ji();uZ();ze();vo();f1();Hpr=new Set(["discrete","discrete-hybrid"])});var mNt={};Ar(mNt,{buildElaboratorInstruction:()=>YNt,buildGuardResponse:()=>Xb,buildOutputRequirements:()=>Tx,buildRunInstructions:()=>sU,cleanupPreExecuteFeedback:()=>mpt,completeOrReviewIntent:()=>Y6,computeUnitWaves:()=>KI,currentWaveNumber:()=>YI,enrichActionWithPreview:()=>Ox,findIncompleteStages:()=>uU,getAwaitGateReviewSession:()=>l_e,getPrepareGateReview:()=>yve,handleOrchestratorTool:()=>M_e,isStagePreExecute:()=>aL,listUnits:()=>Eg,maybeEscalate:()=>KNt,orchestratorToolDefs:()=>L6,resolveIntentStages:()=>wn,resolveStageHats:()=>Es,resolveStageMetadata:()=>rhe,resolveStageReview:()=>nhe,resolveStudioFilePath:()=>Ff,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>the,runNext:()=>Wpr,runQualityGates:()=>swt,setGateReviewHandlers:()=>wve,summarizeFeedback:()=>WNt,validateCumulativeInputCoverage:()=>rwt,validateDiscoveryArtifacts:()=>$At,validateOutputLiveness:()=>iwt,validateStageOutputs:()=>QAt,validateUnitInputs:()=>twt,validateUnitNaming:()=>ewt,workflowAdvancePhase:()=>cU,workflowAdvanceStage:()=>K6,workflowCompleteStage:()=>Px,workflowGateAsk:()=>QNt,workflowIntentComplete:()=>Z6,workflowStartStage:()=>Ave,writeReviewFeedbackFiles:()=>N6});function Ypr(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 sU(e,t,n,r){let i=hkt.get(n.action),s=null;if(i&&(s=i({slug:e,studio:t,action:n,dir:r})),s&&!Kpr.has(n.action)&&!n.prompt_file)try{let{path:d}=jft({action:n.action,intent:e,stage:n.stage||void 0,content:s,tickHint:Ypr(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(` @@ -1601,29 +1601,29 @@ ${u} ${JSON.stringify(n,null,2)}`),l.join(` -`))}function Rve(e){$Nt=e.prepare,eCt=e.await}function mve(){return $Nt}function c_e(){return eCt}async function N_e(e,t,n){let r=o=>({content:[{type:"text",text:o}]}),i=jD(t);if(i)return i;let s=bU.get(e);if(s){let o=s.handle(t,n);return o instanceof Promise?await o:o}return r(`Unknown orchestrator tool: ${e}`)}var Vpr,Wpr,$Nt,eCt,Yd=v(()=>{"use strict";hkt();mkt();o_e();ze();vl();EU();YNt();ZNt();ns();L3();C6();QNt();Vpr=AIt,Wpr=new Set(["noop","sealed","error"]);$Nt=null,eCt=null});function Ave(e){d8.set(e.name,e)}function tCt(){return Array.from(d8.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 nCt(e,t){let n=d8.get(e);if(!n)throw new rn(Sn.InvalidParams,`Unknown prompt: ${e}`);let r=t??{};for(let i of n.arguments)if(i.required&&!(i.name in r))throw new rn(Sn.InvalidParams,`Missing required argument: ${i.name} for prompt ${e}`);return n.handler(r)}async function rCt(e){let t={completion:{values:[]}};if(e.ref.type!=="ref/prompt")return t;let n=e.ref.name;if(!n)return t;let r=d8.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 d8,wve=v(()=>{"use strict";C_();d8=new Map});import{existsSync as iCt,readdirSync as Ypr,readFileSync as Zpr}from"node:fs";import{join as sCt}from"node:path";function oCt(){let e=0;Ave({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=sCt(t,"skills");if(!iCt(n))return console.error(`[haiku] Registered ${e} prompt(s) (skills dir not found \u2014 skills not bridged)`),e;let r=Ypr(n,{withFileTypes:!0});for(let i of r){if(!i.isDirectory())continue;let s=sCt(n,i.name,"SKILL.md");if(!iCt(s))continue;let o=Zpr(s,"utf8"),{data:a,body:c}=re(o),u=a.name||i.name,l=a.description||"",d=`haiku:${u}`;Ave({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 wve(e){eCt=e.prepare,tCt=e.await}function yve(){return eCt}function l_e(){return tCt}async function M_e(e,t,n){let r=o=>({content:[{type:"text",text:o}]}),i=jD(t);if(i)return i;let s=bU.get(e);if(s){let o=s.handle(t,n);return o instanceof Promise?await o:o}return r(`Unknown orchestrator tool: ${e}`)}var Wpr,Kpr,eCt,tCt,Yd=v(()=>{"use strict";mkt();gkt();c_e();ze();vl();EU();ZNt();JNt();ji();L3();C6();$Nt();Wpr=wIt,Kpr=new Set(["noop","sealed","error"]);eCt=null,tCt=null});function kve(e){d8.set(e.name,e)}function nCt(){return Array.from(d8.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 rCt(e,t){let n=d8.get(e);if(!n)throw new rn(Sn.InvalidParams,`Unknown prompt: ${e}`);let r=t??{};for(let i of n.arguments)if(i.required&&!(i.name in r))throw new rn(Sn.InvalidParams,`Missing required argument: ${i.name} for prompt ${e}`);return n.handler(r)}async function iCt(e){let t={completion:{values:[]}};if(e.ref.type!=="ref/prompt")return t;let n=e.ref.name;if(!n)return t;let r=d8.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 d8,Ive=v(()=>{"use strict";C_();d8=new Map});import{existsSync as sCt,readdirSync as Zpr,readFileSync as Jpr}from"node:fs";import{join as oCt}from"node:path";function aCt(){let e=0;kve({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=oCt(t,"skills");if(!sCt(n))return console.error(`[haiku] Registered ${e} prompt(s) (skills dir not found \u2014 skills not bridged)`),e;let r=Zpr(n,{withFileTypes:!0});for(let i of r){if(!i.isDirectory())continue;let s=oCt(n,i.name,"SKILL.md");if(!sCt(s))continue;let o=Jpr(s,"utf8"),{data:a,body:c}=re(o),u=a.name||i.name,l=a.description||"",d=`haiku:${u}`;kve({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 aCt=v(()=>{"use strict";Ci();ze();wve()});var Xpr={};async function Jpr(){Vne();let e=new kV;await sR.connect(e);let t=oh()?"":` (harness: ${Mi().displayName})`;console.error(`H\xB7AI\xB7K\xB7U Review MCP server running on stdio${t}`)}async function lCt(e){if(uCt)return;uCt=!0,console.error(`Shutting down (${e})...`);let t=setTimeout(()=>{console.error(`Graceful shutdown exceeded ${cCt}ms \u2014 forcing exit`),process.exit(1)},cCt);t.unref();try{await sR.close(),await MRt(),await Ef()}catch(n){console.error(`Error during graceful shutdown: ${n instanceof Error?n.message:String(n)}`)}finally{clearTimeout(t),process.exit(0)}}var sR,cCt,uCt,dCt=v(()=>{"use strict";C8e();U8e();C_();Ci();w6();FRt();sh();_f();Yd();wve();aCt();m5();ji();uo();ze();sR=new AV({name:"haiku-review",version:"0.1.0"},{capabilities:{tools:{},prompts:{listChanged:!0},completions:{}}});oh()||Mi().mcpPrompts&&oCt();sR.setRequestHandler(lie,async()=>({prompts:tCt()}));sR.setRequestHandler(die,async e=>nCt(e.params.name,e.params.arguments));sR.setRequestHandler(bie,async e=>rCt(e.params));sR.setRequestHandler(gie,async()=>{let e=Mi(),n=[...L6,...TSe,{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:O9},{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:P9},{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}});sR.setRequestHandler(yC,async(e,t)=>{let r=(e.params?.arguments??{})._session_context,i=URt(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 O0t(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 cCt=v(()=>{"use strict";Ci();ze();Ive()});var Qpr={};async function Xpr(){Vne();let e=new kV;await sR.connect(e);let t=oh()?"":` (harness: ${Mi().displayName})`;console.error(`H\xB7AI\xB7K\xB7U Review MCP server running on stdio${t}`)}async function dCt(e){if(lCt)return;lCt=!0,console.error(`Shutting down (${e})...`);let t=setTimeout(()=>{console.error(`Graceful shutdown exceeded ${uCt}ms \u2014 forcing exit`),process.exit(1)},uCt);t.unref();try{await sR.close(),await DRt(),await Ef()}catch(n){console.error(`Error during graceful shutdown: ${n instanceof Error?n.message:String(n)}`)}finally{clearTimeout(t),process.exit(0)}}var sR,uCt,lCt,fCt=v(()=>{"use strict";D8e();j8e();C_();Ci();w6();jRt();sh();_f();Yd();Ive();cCt();m5();Hi();uo();ze();sR=new AV({name:"haiku-review",version:"0.1.0"},{capabilities:{tools:{},prompts:{listChanged:!0},completions:{}}});oh()||Mi().mcpPrompts&&aCt();sR.setRequestHandler(lie,async()=>({prompts:nCt()}));sR.setRequestHandler(die,async e=>rCt(e.params.name,e.params.arguments));sR.setRequestHandler(bie,async e=>iCt(e.params));sR.setRequestHandler(gie,async()=>{let e=Mi(),n=[...L6,...RSe,{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:O9},{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:P9},{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}});sR.setRequestHandler(yC,async(e,t)=>{let r=(e.params?.arguments??{})._session_context,i=FRt(r);if(!i.ok)return{content:[{type:"text",text:`Haiku plugin dir was wiped from under the running MCP server and self-repair failed (${i.result?`${i.result.method}${i.result.reason?`:${i.result.reason}`:""}${i.result.error?` \u2014 ${i.result.error}`:""}`:"no-result"}). Run \`/plugin install haiku@haiku\` (or \`/plugin update haiku\`) to restore it manually.`}],isError:!0};let s;try{s=await P0t(e,t?.signal)}catch(o){if(t?.signal?.aborted)throw o;let a=e.params?.name??"",u=(e.params?.arguments??{})._session_context;try{let{appendFileSync:l}=await import("node:fs"),d=new Date().toISOString(),f=o instanceof Error?o.stack||o.message:String(o);l("/tmp/haiku-mcp-crashes.log",` --- ${d} tool=${a} --- ${f} -`)}catch{}ms(o,{context:"mcp-tool-handler",tool_name:a},u);try{let{flush:l}=await Promise.resolve().then(()=>(sh(),DKe));await l(1e3)}catch{}throw console.error(`[haiku] Tool handler '${a}' threw:`,o instanceof Error?o.stack||o.message:String(o)),o}return s});Rve({prepare:P0t,await:N0t});cCt=1e4,uCt=!1;process.on("SIGINT",()=>{lCt("SIGINT")});process.on("SIGTERM",()=>{lCt("SIGTERM")});Jpr().catch(e=>{ms(e,{context:"mcp-server-fatal"}),console.error("Fatal error:",e),process.exit(1)})});var oy=v(()=>{"use strict"});import{execSync as Qpr}from"node:child_process";import{existsSync as eF,mkdirSync as ALi,readdirSync as $pr,readFileSync as fCt,statSync as wLi,writeFileSync as kLi}from"node:fs";import{dirname as xLi,join as f8}from"node:path";function kve(e,t){if(!eF(e))return"";let r=fCt(e,"utf8").match(new RegExp(`^${t}:\\s*(.+)$`,"m"));return r?r[1].trim().replace(/^["']|["']$/g,""):""}function pCt(e){if(!eF(e))return{};try{return JSON.parse(fCt(e,"utf8"))}catch{return{}}}function sO(){return eF(f8(p8(),".haiku"))}function oO(){let e=p8(),t=f8(e,".haiku","intents");if(!eF(t))return null;let n=$pr(t);for(let r of n){let i=f8(t,r,"intent.md");if(!eF(i))continue;if(kve(i,"status")==="active")return f8(t,r)}return null}function p8(){try{return Qpr("git rev-parse --show-toplevel",{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return process.cwd()}}var oR=v(()=>{"use strict"});import{appendFileSync as hCt,existsSync as ehr,readFileSync as thr}from"node:fs";import{join as Ive}from"node:path";function nhr(e){let t=Ive(e,"intent.md"),n=kve(t,"active_stage");if(!n)return null;let r=Ive(e,"stages",n,"state.json"),i=pCt(r);return(typeof i.phase=="string"?i.phase:"")||null}async function rhr(e,t){let n=Number(e.total_tokens??0),r=Number(e.max_tokens??0);if(n===0||r===0)return;let i=oO();if(!i||nhr(i)!=="elaborate")return;let s=Math.floor((r-n)*100/r),o=process.env.CLAUDE_SESSION_ID??"unknown",a=Ive("/tmp",`context-monitor-${o}`),c="";ehr(a)&&(c=thr(a,"utf8")),s<=25?c.includes("25")||(hCt(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")||(hCt(a,`35 +`)}catch{}ms(o,{context:"mcp-tool-handler",tool_name:a},u);try{let{flush:l}=await Promise.resolve().then(()=>(sh(),UKe));await l(1e3)}catch{}throw console.error(`[haiku] Tool handler '${a}' threw:`,o instanceof Error?o.stack||o.message:String(o)),o}return s});wve({prepare:N0t,await:C0t});uCt=1e4,lCt=!1;process.on("SIGINT",()=>{dCt("SIGINT")});process.on("SIGTERM",()=>{dCt("SIGTERM")});Xpr().catch(e=>{ms(e,{context:"mcp-server-fatal"}),console.error("Fatal error:",e),process.exit(1)})});var oy=v(()=>{"use strict"});import{execSync as $pr}from"node:child_process";import{existsSync as eF,mkdirSync as kLi,readdirSync as ehr,readFileSync as pCt,statSync as ILi,writeFileSync as xLi}from"node:fs";import{dirname as PLi,join as f8}from"node:path";function xve(e,t){if(!eF(e))return"";let r=pCt(e,"utf8").match(new RegExp(`^${t}:\\s*(.+)$`,"m"));return r?r[1].trim().replace(/^["']|["']$/g,""):""}function hCt(e){if(!eF(e))return{};try{return JSON.parse(pCt(e,"utf8"))}catch{return{}}}function sO(){return eF(f8(p8(),".haiku"))}function oO(){let e=p8(),t=f8(e,".haiku","intents");if(!eF(t))return null;let n=ehr(t);for(let r of n){let i=f8(t,r,"intent.md");if(!eF(i))continue;if(xve(i,"status")==="active")return f8(t,r)}return null}function p8(){try{return $pr("git rev-parse --show-toplevel",{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return process.cwd()}}var oR=v(()=>{"use strict"});import{appendFileSync as mCt,existsSync as thr,readFileSync as nhr}from"node:fs";import{join as Ove}from"node:path";function rhr(e){let t=Ove(e,"intent.md"),n=xve(t,"active_stage");if(!n)return null;let r=Ove(e,"stages",n,"state.json"),i=hCt(r);return(typeof i.phase=="string"?i.phase:"")||null}async function ihr(e,t){let n=Number(e.total_tokens??0),r=Number(e.max_tokens??0);if(n===0||r===0)return;let i=oO();if(!i||rhr(i)!=="elaborate")return;let s=Math.floor((r-n)*100/r),o=process.env.CLAUDE_SESSION_ID??"unknown",a=Ove("/tmp",`context-monitor-${o}`),c="";thr(a)&&(c=nhr(a,"utf8")),s<=25?c.includes("25")||(mCt(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")||(mCt(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 mCt,gCt=v(()=>{"use strict";oy();oR();mCt={name:"context-monitor",description:"PostToolUse: while elaborating in an active intent, suggest /clear at 35% / 25% remaining context budget.",async handle(e,t){await rhr(e,t.pluginRoot)}}});function ihr(e){if(e==null)return!1;if(typeof e=="string"){let n=e.toLowerCase();return xve.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(xve.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(xve.some(s=>i.includes(s)))return!0}}return!1}var xve,yCt,SCt=v(()=>{"use strict";oy();oR();xve=["file has not been read yet","file has not been read in this session","read it first before writing to it"];yCt={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(!sO())return;let n=e??{};if(!ihr(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 shr}from"node:child_process";import{existsSync as ohr}from"node:fs";import{join as bCt,resolve as ahr}from"node:path";function chr(e){process.stderr.write(e)}function uhr(e){try{let t=shr("git",["rev-parse","--git-dir"],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(!t)return!1;let n=t.startsWith("/")?t:bCt(e,t);for(let r of["MERGE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(ohr(bCt(n,r)))return!0;return!1}catch{return!1}}function lhr(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 dhr(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 gCt,yCt=v(()=>{"use strict";oy();oR();gCt={name:"context-monitor",description:"PostToolUse: while elaborating in an active intent, suggest /clear at 35% / 25% remaining context budget.",async handle(e,t){await ihr(e,t.pluginRoot)}}});function shr(e){if(e==null)return!1;if(typeof e=="string"){let n=e.toLowerCase();return Pve.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(Pve.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(Pve.some(s=>i.includes(s)))return!0}}return!1}var Pve,SCt,bCt=v(()=>{"use strict";oy();oR();Pve=["file has not been read yet","file has not been read in this session","read it first before writing to it"];SCt={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(!sO())return;let n=e??{};if(!shr(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 ohr}from"node:child_process";import{existsSync as ahr}from"node:fs";import{join as ECt,resolve as chr}from"node:path";function uhr(e){process.stderr.write(e)}function lhr(e){try{let t=ohr("git",["rev-parse","--git-dir"],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(!t)return!1;let n=t.startsWith("/")?t:ECt(e,t);for(let r of["MERGE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(ahr(ECt(n,r)))return!0;return!1}catch{return!1}}function dhr(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 fhr(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 fhr(e){if(!sO())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=ahr(process.cwd(),r),s=lhr(i);s.kind!==null&&(s.kind==="brief"&&t!=="Read"||uhr(process.cwd())||(chr(dhr(t,s)),process.exit(2)))}var ECt,_Ct=v(()=>{"use strict";oR();oy();ECt={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 fhr(e)}}});import{join as TCt}from"node:path";function phr(e){return e.replace(/^\//,"-").replace(/[/.]/g,"-")}function hhr(){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 mhr(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||TCt(process.env.HOME||"",".claude"),s=phr(process.cwd());n.state_file=TCt(i,"projects",s,r,"haiku.json")}n._session_context=hhr(),process.stdout.write(JSON.stringify(n))}var vCt,RCt=v(()=>{"use strict";oy();vCt={name:"inject-state-file",description:"PreToolUse: inject state_file path + _session_context into haiku_* tool calls.",async handle(e,t){await mhr(e)}}});async function yhr(e,t){if(!sO())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||"";ghr.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 phr(e){if(!sO())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=chr(process.cwd(),r),s=dhr(i);s.kind!==null&&(s.kind==="brief"&&t!=="Read"||lhr(process.cwd())||(uhr(fhr(t,s)),process.exit(2)))}var _Ct,TCt=v(()=>{"use strict";oR();oy();_Ct={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 phr(e)}}});import{join as vCt}from"node:path";function hhr(e){return e.replace(/^\//,"-").replace(/[/.]/g,"-")}function mhr(){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 ghr(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||vCt(process.env.HOME||"",".claude"),s=hhr(process.cwd());n.state_file=vCt(i,"projects",s,r,"haiku.json")}n._session_context=mhr(),process.stdout.write(JSON.stringify(n))}var RCt,ACt=v(()=>{"use strict";oy();RCt={name:"inject-state-file",description:"PreToolUse: inject state_file path + _session_context into haiku_* tool calls.",async handle(e,t){await ghr(e)}}});async function Shr(e,t){if(!sO())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||"";yhr.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 ghr,ACt,wCt=v(()=>{"use strict";oy();oR();ghr=/ignore previous|disregard|override instructions|you are now|system prompt||<\/system>/i;ACt={name:"prompt-guard",description:"PreToolUse Write/Edit: advisory scan for prompt injection in haiku spec writes.",async handle(e,t){await yhr(e,t.pluginRoot)}}});import{existsSync as Shr}from"node:fs";import{join as bhr}from"node:path";function Ehr(){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 _hr(e,t){if(e.tool_name!=="EnterPlanMode"||!Ehr()||!oh()||oO())return;let n=p8();if(!Shr(bhr(n,".haiku")))return;let r=WN("start"),i={hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`H\xB7AI\xB7K\xB7U: Use ${r} instead of plan mode. +`)}var yhr,wCt,kCt=v(()=>{"use strict";oy();oR();yhr=/ignore previous|disregard|override instructions|you are now|system prompt||<\/system>/i;wCt={name:"prompt-guard",description:"PreToolUse Write/Edit: advisory scan for prompt injection in haiku spec writes.",async handle(e,t){await Shr(e,t.pluginRoot)}}});import{existsSync as bhr}from"node:fs";import{join as Ehr}from"node:path";function _hr(){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 Thr(e,t){if(e.tool_name!=="EnterPlanMode"||!_hr()||!oh()||oO())return;let n=p8();if(!bhr(Ehr(n,".haiku")))return;let r=WN("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: @@ -1635,9 +1635,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 kCt,ICt=v(()=>{"use strict";_f();oy();oR();kCt={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 _hr(e,t.pluginRoot)}}});import{resolve as Thr}from"node:path";async function vhr(e){if(!oO())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 E5(Thr(process.cwd(),i))}var xCt,OCt=v(()=>{"use strict";V_e();oy();oR();xCt={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 vhr(e)}catch{}}}});import{existsSync as PCt,readdirSync as Rhr}from"node:fs";import{join as Ove}from"node:path";function Ahr(){let e=Ove(process.cwd(),".haiku","intents");if(!PCt(e))return null;let t=Rhr(e).filter(n=>PCt(Ove(e,n,"intent.md")));return t.length===1?Ove(e,t[0]):null}async function whr(e,t){let n=e.tool_name;if(n!=="Write"&&n!=="Edit"||!Ahr())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 NCt,CCt=v(()=>{"use strict";oy();NCt={name:"workflow-guard",description:"PreToolUse Write/Edit: warn when editing outside the active hat's scope.",async handle(e,t){await whr(e,t.pluginRoot)}}});var DCt={};Ar(DCt,{__HOOK_REGISTRY:()=>Nhr,runHook:()=>Phr});import{readFileSync as khr}from"node:fs";function Ohr(){try{return khr(0,"utf8")}catch{return""}}async function Phr(e,t){if(xhr.has(e))return;let n=Ihr.get(e);n||(console.error(`haiku: hook '${e}' not implemented`),process.exit(2));let r=Ohr(),i={};try{r.trim()&&(i=JSON.parse(r))}catch{}let{resolvePluginRoot:s}=await Promise.resolve().then(()=>(Ci(),CKe)),o=s();await n.handle(i,{pluginRoot:o})}var MCt,Ihr,xhr,Nhr,LCt=v(()=>{"use strict";gCt();SCt();_Ct();RCt();wCt();ICt();OCt();CCt();MCt=[mCt,yCt,ECt,vCt,ACt,kCt,xCt,NCt],Ihr=new Map(MCt.map(e=>[e.name,e])),xhr=new Set(["quality-gate","track-outputs","ensure-deps","inject-context","subagent-hook","subagent-context","enforce-iteration"]);Nhr=MCt});var jCt={};Ar(jCt,{runMigrate:()=>Uhr});import{execSync as Chr}from"node:child_process";import{cpSync as tF,existsSync as ay,mkdirSync as aO,readdirSync as UCt,readFileSync as Mhr,writeFileSync as cO}from"node:fs";import{basename as Pve,join as On}from"node:path";function FCt(e){let t=Mhr(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 Dhr(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function Nve(e){try{let{execSync:t}=Y("node:child_process");return t(`git log --diff-filter=A --follow --format=%aI -- "${e}" | tail -1`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}function Lhr(e){try{let{execSync:t}=Y("node:child_process");return t(`git log -1 --format=%aI -- "${e}"`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}async function Uhr(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=On(c,".ai-dlc"),l=On(c,".haiku","intents");if(!ay(u)){console.log("No .ai-dlc/ directory found. Nothing to migrate.");return}let d=UCt(u).filter(_=>{let T=On(u,_);return ay(On(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 ICt,xCt=v(()=>{"use strict";_f();oy();oR();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 Thr(e,t.pluginRoot)}}});import{resolve as vhr}from"node:path";async function Rhr(e){if(!oO())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 E5(vhr(process.cwd(),i))}var OCt,PCt=v(()=>{"use strict";K_e();oy();oR();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 Rhr(e)}catch{}}}});import{existsSync as NCt,readdirSync as Ahr}from"node:fs";import{join as Nve}from"node:path";function whr(){let e=Nve(process.cwd(),".haiku","intents");if(!NCt(e))return null;let t=Ahr(e).filter(n=>NCt(Nve(e,n,"intent.md")));return t.length===1?Nve(e,t[0]):null}async function khr(e,t){let n=e.tool_name;if(n!=="Write"&&n!=="Edit"||!whr())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 CCt,MCt=v(()=>{"use strict";oy();CCt={name:"workflow-guard",description:"PreToolUse Write/Edit: warn when editing outside the active hat's scope.",async handle(e,t){await khr(e,t.pluginRoot)}}});var LCt={};Ar(LCt,{__HOOK_REGISTRY:()=>Chr,runHook:()=>Nhr});import{readFileSync as Ihr}from"node:fs";function Phr(){try{return Ihr(0,"utf8")}catch{return""}}async function Nhr(e,t){if(Ohr.has(e))return;let n=xhr.get(e);n||(console.error(`haiku: hook '${e}' not implemented`),process.exit(2));let r=Phr(),i={};try{r.trim()&&(i=JSON.parse(r))}catch{}let{resolvePluginRoot:s}=await Promise.resolve().then(()=>(Ci(),DKe)),o=s();await n.handle(i,{pluginRoot:o})}var DCt,xhr,Ohr,Chr,UCt=v(()=>{"use strict";yCt();bCt();TCt();ACt();kCt();xCt();PCt();MCt();DCt=[gCt,SCt,_Ct,RCt,wCt,ICt,OCt,CCt],xhr=new Map(DCt.map(e=>[e.name,e])),Ohr=new Set(["quality-gate","track-outputs","ensure-deps","inject-context","subagent-hook","subagent-context","enforce-iteration"]);Chr=DCt});var HCt={};Ar(HCt,{runMigrate:()=>Fhr});import{execSync as Mhr}from"node:child_process";import{cpSync as tF,existsSync as ay,mkdirSync as aO,readdirSync as FCt,readFileSync as Dhr,writeFileSync as cO}from"node:fs";import{basename as Cve,join as On}from"node:path";function jCt(e){let t=Dhr(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 Lhr(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function Mve(e){try{let{execSync:t}=Y("node:child_process");return t(`git log --diff-filter=A --follow --format=%aI -- "${e}" | tail -1`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}function Uhr(e){try{let{execSync:t}=Y("node:child_process");return t(`git log -1 --format=%aI -- "${e}"`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}async function Fhr(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=On(c,".ai-dlc"),l=On(c,".haiku","intents");if(!ay(u)){console.log("No .ai-dlc/ directory found. Nothing to migrate.");return}let d=FCt(u).filter(_=>{let T=On(u,_);return ay(On(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/: @@ -1657,13 +1657,13 @@ ${T}`)}}let f=["-dev","-product","-design","-tests"],p=new Map,h=new Set,m=["-fo Migrate the base intent instead \u2014 sub-intents fold in automatically: ${T.join(` - `)}`)}}let b=n.length>0?y.filter(_=>n.includes(_)):y;if(!i&&!o){let _=null;try{_=Chr("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{_=Mhr("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/ (${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=On(u,_),R=On(l,_);if(ay(R)){let ee=ay(On(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}=FCt(On(T,"intent.md")),k=A.status||"active",P=x.match(/^# (.+)$/m)?.[1]||_,N=g.get(_)||"",C=Nve(On(T,"intent.md")),L=Lhr(T),G=A.created||"",W=C||(G?`${G}T00:00:00Z`:Dhr()),$=k==="completed"||k==="complete"?L||W:null;if(i){console.log(` DRY RUN: ${_} (status: ${k})`),S++;continue}aO(On(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=On(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=UCt(ee).filter(Ae=>Ae.startsWith("unit-")&&Ae.endsWith(".md"));for(let Ae of Le){let{data:z,body:J}=FCt(On(ee,Ae)),oe=z.pass||"",de=oe?Q[oe]||"development":se||"development";U.has(de)||U.set(de,[]),U.get(de)?.push({file:Ae,fm:z,body:J}),M++}if(ee!==T){if(ay(On(ee,"discovery.md"))){let Ae=Pve(ee);i||tF(On(ee,"discovery.md"),On(R,"knowledge",`${Ae}-discovery.md`))}if(ay(On(ee,"mockups"))&&!i){let Ae=On(R,"stages","design","artifacts");aO(Ae,{recursive:!0});try{tF(On(ee,"mockups"),Ae,{recursive:!0})}catch{}}}}let j=A.active_pass||"",H=j&&Q[j]||"",K=A.epic||"";if(k==="completed"||k==="complete"){cO(On(R,"intent.md"),`--- +`);let S=0,E=0;for(let _ of b){let T=On(u,_),R=On(l,_);if(ay(R)){let ee=ay(On(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}=jCt(On(T,"intent.md")),k=A.status||"active",P=x.match(/^# (.+)$/m)?.[1]||_,N=g.get(_)||"",C=Mve(On(T,"intent.md")),L=Uhr(T),G=A.created||"",W=C||(G?`${G}T00:00:00Z`:Lhr()),$=k==="completed"||k==="complete"?L||W:null;if(i){console.log(` DRY RUN: ${_} (status: ${k})`),S++;continue}aO(On(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=On(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=FCt(ee).filter(Ae=>Ae.startsWith("unit-")&&Ae.endsWith(".md"));for(let Ae of Le){let{data:z,body:J}=jCt(On(ee,Ae)),oe=z.pass||"",de=oe?Q[oe]||"development":se||"development";U.has(de)||U.set(de,[]),U.get(de)?.push({file:Ae,fm:z,body:J}),M++}if(ee!==T){if(ay(On(ee,"discovery.md"))){let Ae=Cve(ee);i||tF(On(ee,"discovery.md"),On(R,"knowledge",`${Ae}-discovery.md`))}if(ay(On(ee,"mockups"))&&!i){let Ae=On(R,"stages","design","artifacts");aO(Ae,{recursive:!0});try{tF(On(ee,"mockups"),Ae,{recursive:!0})}catch{}}}}let j=A.active_pass||"",H=j&&Q[j]||"",K=A.epic||"";if(k==="completed"||k==="complete"){cO(On(R,"intent.md"),`--- title: "${P}" studio: software stages: [inception, design, product, development, operations, security] @@ -1678,8 +1678,8 @@ follows: ${N}`:""} ${x} `);for(let se of q)aO(On(R,"stages",se,"units"),{recursive:!0}),cO(On(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){aO(On(R,"stages",se,"units"),{recursive:!0});for(let{file:Ae,fm:z,body:J}of Le){let oe=z.status||"pending",de=z.depends_on||[],_e=z.discipline||"fullstack",kt=z.last_updated||Nve(On(T,Ae))||null,Ue=z.ticket||"",Un=z.branch||"";cO(On(R,"stages",se,"units",Ae),`--- -name: ${Pve(Ae,".md")} +`);for(let[se,Le]of U){aO(On(R,"stages",se,"units"),{recursive:!0});for(let{file:Ae,fm:z,body:J}of Le){let oe=z.status||"pending",de=z.depends_on||[],_e=z.discipline||"fullstack",kt=z.last_updated||Mve(On(T,Ae))||null,Ue=z.ticket||"",Un=z.branch||"";cO(On(R,"stages",se,"units",Ae),`--- +name: ${Cve(Ae,".md")} type: ${_e} status: ${oe} depends_on: [${de.join(", ")}] @@ -1707,8 +1707,8 @@ follows: ${N}`:""} ${x} `);for(let Ae of q)aO(On(R,"stages",Ae,"units"),{recursive:!0}),U.has(Ae)&&cO(On(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:de}of z){let _e=oe.status||"pending",kt=oe.depends_on||[],Ue=oe.discipline||"fullstack",Un=oe.last_updated||Nve(On(T,J))||null,dr=oe.ticket||"",sn=oe.branch||"";cO(On(R,"stages",Ae,"units",J),`--- -name: ${Pve(J,".md")} +`);for(let[Ae,z]of U)for(let{file:J,fm:oe,body:de}of z){let _e=oe.status||"pending",kt=oe.depends_on||[],Ue=oe.discipline||"fullstack",Un=oe.last_updated||Mve(On(T,J))||null,dr=oe.ticket||"",sn=oe.branch||"";cO(On(R,"stages",Ae,"units",J),`--- +name: ${Cve(J,".md")} type: ${Ue} status: ${_e} depends_on: [${kt.join(", ")}] @@ -1723,16 +1723,16 @@ completed_at: ${_e==="completed"&&Un||"null"} ${de} `)}let Le=F.length>0?` [merged: ${F.join(", ")}]`:"";console.log(` MIGRATED: ${_} (active, stage: ${H||"inception"}, ${M} units across ${U.size} stage(s))${Le}`)}if(ay(On(T,"discovery.md"))&&tF(On(T,"discovery.md"),On(R,"knowledge","DISCOVERY.md")),ay(On(T,"knowledge")))try{tF(On(T,"knowledge"),On(R,"knowledge"),{recursive:!0})}catch{}if(ay(On(T,"mockups"))){let ee=On(R,"stages","design","artifacts");aO(ee,{recursive:!0});try{tF(On(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 HCt=v(()=>{"use strict"});function Bhr(e,t){return t?Qr.gate:Qr[e]??Qr.execute}function zCt(e,t={}){let n=t.color??!process.env.NO_COLOR,r=(k,P)=>n?`${k}${P}${Qr.reset}`:P,i=r(Qr.brand,Fhr),s=r(Qr.brand,"\u2B22"),o=r(Qr.intent,e.intent),a=e.studio?r(Qr.dim,e.studio):"",c=Bhr(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}`:qhr(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?jhr[k.severity]:Hhr,N=P?P.pips:BCt;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=qCt[k.status]??qCt.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 Fhr,nF,BCt,h8,qCt,jhr,Hhr,qhr,Qr,GCt=v(()=>{"use strict";Fhr="H\xB7AI\xB7K\xB7U",nF="\x1B[1;38;2;255;255;0m",BCt={done:"\x1B[38;5;71m",active:nF,rejected:"\x1B[1;38;5;167m",pending:"\x1B[38;5;244m"},h8="\x1B[38;5;240m",qCt={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"}},jhr={blocker:{bg:"\x1B[48;5;210m",mark:"!",pips:{done:"\x1B[1;38;5;22m",active:nF,rejected:"\x1B[1;38;5;52m",pending:h8}},high:{bg:"\x1B[48;5;216m",mark:"^",pips:{done:"\x1B[1;38;5;22m",active:nF,rejected:"\x1B[1;38;5;88m",pending:h8}},medium:{bg:"\x1B[48;5;223m",mark:"~",pips:{done:"\x1B[1;38;5;22m",active:nF,rejected:"\x1B[1;38;5;88m",pending:h8}},low:{bg:"\x1B[48;5;254m",mark:".",pips:BCt}},Hhr={bg:"\x1B[48;5;189m",mark:"?",pips:{done:"\x1B[1;38;5;28m",active:nF,rejected:"\x1B[1;38;5;124m",pending:h8}},qhr=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 zhr}from"node:child_process";import{existsSync as cy,readdirSync as uO,readFileSync as Ghr,statSync as Vhr}from"node:fs";import{join as wc}from"node:path";function lO(e){if(!cy(e))return null;try{return re(Ghr(e,"utf8")).data}catch{return null}}function Whr(){try{return zhr("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return""}}function Khr(e){let t=wc(e,"intents");if(!cy(t))return null;let r=Whr().match(/^haiku\/(.+?)\/[^/]+$/);if(r?.[1]){let o=r[1];if(cy(wc(t,o,"intent.md")))return o}let i;try{i=uO(t).filter(o=>{try{return Vhr(wc(t,o)).isDirectory()}catch{return!1}})}catch{return null}let s=i.filter(o=>{let a=lO(wc(t,o,"intent.md"));return!a||a.archived===!0?!1:typeof a.sealed_at=="string"&&a.sealed_at.length>0?KL(o,{localOnly:!0}):!0});return s.length===1?s[0]:null}function Mve(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 Zhr(e){return!!e&&Mve(e)===""&&Yhr.has(e.kind)}function Cve(e){return e==="cross-stage-consistency"?"cross-stage":e}function Jhr(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":`${Cve(e.role)} review`,gated:!1}}case"dispatch_approval":{let t=e.dispatches;return{kind:"approve",label:t&&t.length>1?"adversarial approval":`${Cve(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":`${Cve(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 VCt(e,t,n,r){let i=wc(r,"stages",n,"units");if(!cy(i))return{done:0,total:0};let s=Es(t,n),o=s[s.length-1]??"",a=0,c=0;for(let u of uO(i).filter(l=>l.endsWith(".md"))){let l=lO(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 WCt(e,t){let n=t?wc(e,"stages",t,"feedback"):wc(e,"feedback");if(!cy(n))return{closed:0,total:0};let r=0,i=0;for(let s of uO(n).filter(o=>o.endsWith(".md"))){let o=lO(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 ZCt(e){return e.match(/^(?:unit-)?(\d+)/)?.[1]??""}function Xhr(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 JCt(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"&&KCt.has(c)?"done":typeof c=="string"&&Qhr.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"&&KCt.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 uO(r).filter(c=>c.endsWith(".md")).sort()){if(!s.has(a.replace(/\.md$/,"")))continue;let c=lO(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-${ZCt(a)}`,segments:JCt(u,i,l)})}return o}function YCt(e,t){if(!cy(e)||t.length===0)return[];let n=[];for(let r of uO(e).filter(i=>i.endsWith(".md")).sort()){let i=lO(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-${ZCt(r)}`,segments:JCt(a,t,a.length>0),severity:c})}return n}function XCt(){let e;try{e=ve()}catch{return null}let t=Khr(e);if(!t)return null;let n=ce(t),r=lO(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=KL(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=kkt(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"&&!Mve(u))return s("verifying intent",3);let{kind:d,label:f,gated:p}=Jhr(u),h=Zhr(u),m=h?"":Mve(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&&C0(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}=VCt(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}=KI(C);if(G>1){let W=YI(C,L,G);b=`${b||`${N} units`} \xB7 wave ${W+1}/${G}`}}}catch{}}else if(d==="fixloop"){let P=y?WCt(n,y):{closed:0,total:0},N=WCt(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}=VCt(t,i,y,n);P>0&&(b=`${P} units`)}else d==="elaborate"&&(b="decomposing");let S=null,E="",_=null;try{if(_=p6({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=f6(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=$hr(i,y,n);P.length>0&&(T=P)}else if(d==="fixloop"){let P=[];y&&P.push(...YCt(wc(n,"stages",y,"feedback"),bg(i,y))),P.push(...YCt(wc(n,"feedback"),jf(i))),P.sort((N,C)=>Xc(N.severity)-Xc(C.severity)),P.length>0&&(T=P.slice(0,fv))}let R=null;if(_&&(d==="review"||d==="approve")&&Wbe(u)){let P=tvt({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)&&!Vbe.has(QTt(L.key))).map(L=>({id:Xhr(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("/")?cy(W)&&uO(W).filter($=>$!==".gitkeep").length>0:cy(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();L3();Oa();YL();Ybe();ji();ze();Kn();KEe();Yhr=new Set(["intent_review","record_reflection","seal_intent","pending_seal","sealed"]);KCt=new Set(["advance","advanced","closed"]),Qhr=new Set(["reject","rejected"])});var iMt={};Ar(iMt,{resolveFallbackCommand:()=>nMt,runStatusline:()=>fmr});import{execFileSync as emr}from"node:child_process";import{existsSync as cR,mkdirSync as $Ct,readFileSync as rF,writeFileSync as Lve}from"node:fs";import{homedir as m8}from"node:os";import{dirname as Uve,join as tl}from"node:path";function tmr(){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 eMt(e){let t=e;for(let n=0;n<30;n++){let r=tl(t,".haiku");if(cR(r))return r;let i=Uve(t);if(i===t)break;t=i}return null}function nmr(e,t=m8()){let n=[],r=eMt(e);r&&n.push(tl(r,iF)),n.push(tl(t,".haiku",iF));for(let i of n)if(cR(i))try{return JSON.parse(rF(i,"utf8"))}catch{}return null}function rmr(e){return e?tMt(e.statusLine):null}function tMt(e){let t=e;return t&&t.type==="command"&&typeof t.command=="string"&&t.command?t.command:null}function Dve(e){return e.includes("statusline")&&e.includes("haiku")}function imr(e){if(!cR(e))return null;try{let t=JSON.parse(rF(e,"utf8"));return tMt(t.statusLine)}catch{return null}}function smr(e){let t=eMt(e);return t?Uve(t):e}function nMt(e,t=m8()){let n=rmr(nmr(e,t)),r=smr(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=imr(s);if(o){if(Dve(o)){if(n&&!Dve(n))return n;continue}return o}}return n&&!Dve(n)?n:null}async function omr(){let e=await tmr(),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=XCt()}catch(s){n&&process.stderr.write(`[haiku statusline] resolveStatuslineState threw: ${s instanceof Error?`${s.message} +Next steps:`),console.log(" git add .haiku/intents/ && git commit -m 'haiku: migrate intents from .ai-dlc/'"),console.log(" For active intents: run /haiku:haiku-pickup to start from inception"))}var qCt=v(()=>{"use strict"});function zhr(e,t){return t?Qr.gate:Qr[e]??Qr.execute}function GCt(e,t={}){let n=t.color??!process.env.NO_COLOR,r=(k,P)=>n?`${k}${P}${Qr.reset}`:P,i=r(Qr.brand,jhr),s=r(Qr.brand,"\u2B22"),o=r(Qr.intent,e.intent),a=e.studio?r(Qr.dim,e.studio):"",c=zhr(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}`:Bhr(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?Hhr[k.severity]:qhr,N=P?P.pips:zCt;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=BCt[k.status]??BCt.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 jhr,nF,zCt,h8,BCt,Hhr,qhr,Bhr,Qr,VCt=v(()=>{"use strict";jhr="H\xB7AI\xB7K\xB7U",nF="\x1B[1;38;2;255;255;0m",zCt={done:"\x1B[38;5;71m",active:nF,rejected:"\x1B[1;38;5;167m",pending:"\x1B[38;5;244m"},h8="\x1B[38;5;240m",BCt={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"}},Hhr={blocker:{bg:"\x1B[48;5;210m",mark:"!",pips:{done:"\x1B[1;38;5;22m",active:nF,rejected:"\x1B[1;38;5;52m",pending:h8}},high:{bg:"\x1B[48;5;216m",mark:"^",pips:{done:"\x1B[1;38;5;22m",active:nF,rejected:"\x1B[1;38;5;88m",pending:h8}},medium:{bg:"\x1B[48;5;223m",mark:"~",pips:{done:"\x1B[1;38;5;22m",active:nF,rejected:"\x1B[1;38;5;88m",pending:h8}},low:{bg:"\x1B[48;5;254m",mark:".",pips:zCt}},qhr={bg:"\x1B[48;5;189m",mark:"?",pips:{done:"\x1B[1;38;5;28m",active:nF,rejected:"\x1B[1;38;5;124m",pending:h8}},Bhr=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 Ghr}from"node:child_process";import{existsSync as cy,readdirSync as uO,readFileSync as Vhr,statSync as Whr}from"node:fs";import{join as wc}from"node:path";function lO(e){if(!cy(e))return null;try{return re(Vhr(e,"utf8")).data}catch{return null}}function Khr(){try{return Ghr("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return""}}function Yhr(e){let t=wc(e,"intents");if(!cy(t))return null;let r=Khr().match(/^haiku\/(.+?)\/[^/]+$/);if(r?.[1]){let o=r[1];if(cy(wc(t,o,"intent.md")))return o}let i;try{i=uO(t).filter(o=>{try{return Whr(wc(t,o)).isDirectory()}catch{return!1}})}catch{return null}let s=i.filter(o=>{let a=lO(wc(t,o,"intent.md"));return!a||a.archived===!0?!1:typeof a.sealed_at=="string"&&a.sealed_at.length>0?KL(o,{localOnly:!0}):!0});return s.length===1?s[0]:null}function Lve(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 Jhr(e){return!!e&&Lve(e)===""&&Zhr.has(e.kind)}function Dve(e){return e==="cross-stage-consistency"?"cross-stage":e}function Xhr(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":`${Dve(e.role)} review`,gated:!1}}case"dispatch_approval":{let t=e.dispatches;return{kind:"approve",label:t&&t.length>1?"adversarial approval":`${Dve(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":`${Dve(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 WCt(e,t,n,r){let i=wc(r,"stages",n,"units");if(!cy(i))return{done:0,total:0};let s=Es(t,n),o=s[s.length-1]??"",a=0,c=0;for(let u of uO(i).filter(l=>l.endsWith(".md"))){let l=lO(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 KCt(e,t){let n=t?wc(e,"stages",t,"feedback"):wc(e,"feedback");if(!cy(n))return{closed:0,total:0};let r=0,i=0;for(let s of uO(n).filter(o=>o.endsWith(".md"))){let o=lO(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 JCt(e){return e.match(/^(?:unit-)?(\d+)/)?.[1]??""}function Qhr(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 XCt(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"&&YCt.has(c)?"done":typeof c=="string"&&$hr.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"&&YCt.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 uO(r).filter(c=>c.endsWith(".md")).sort()){if(!s.has(a.replace(/\.md$/,"")))continue;let c=lO(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-${JCt(a)}`,segments:XCt(u,i,l)})}return o}function ZCt(e,t){if(!cy(e)||t.length===0)return[];let n=[];for(let r of uO(e).filter(i=>i.endsWith(".md")).sort()){let i=lO(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-${JCt(r)}`,segments:XCt(a,t,a.length>0),severity:c})}return n}function QCt(){let e;try{e=ve()}catch{return null}let t=Yhr(e);if(!t)return null;let n=ce(t),r=lO(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=KL(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=Ikt(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"&&!Lve(u))return s("verifying intent",3);let{kind:d,label:f,gated:p}=Xhr(u),h=Jhr(u),m=h?"":Lve(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&&C0(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}=WCt(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}=KI(C);if(G>1){let W=YI(C,L,G);b=`${b||`${N} units`} \xB7 wave ${W+1}/${G}`}}}catch{}}else if(d==="fixloop"){let P=y?KCt(n,y):{closed:0,total:0},N=KCt(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}=WCt(t,i,y,n);P>0&&(b=`${P} units`)}else d==="elaborate"&&(b="decomposing");let S=null,E="",_=null;try{if(_=p6({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=f6(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=emr(i,y,n);P.length>0&&(T=P)}else if(d==="fixloop"){let P=[];y&&P.push(...ZCt(wc(n,"stages",y,"feedback"),bg(i,y))),P.push(...ZCt(wc(n,"feedback"),jf(i))),P.sort((N,C)=>Xc(N.severity)-Xc(C.severity)),P.length>0&&(T=P.slice(0,fv))}let R=null;if(_&&(d==="review"||d==="approve")&&Ybe(u)){let P=nvt({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)&&!Kbe.has($Tt(L.key))).map(L=>({id:Qhr(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("/")?cy(W)&&uO(W).filter($=>$!==".gitkeep").length>0:cy(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";ji();L3();Oa();YL();Jbe();Hi();ze();Kn();ZEe();Zhr=new Set(["intent_review","record_reflection","seal_intent","pending_seal","sealed"]);YCt=new Set(["advance","advanced","closed"]),$hr=new Set(["reject","rejected"])});var sMt={};Ar(sMt,{resolveFallbackCommand:()=>rMt,runStatusline:()=>pmr});import{execFileSync as tmr}from"node:child_process";import{existsSync as cR,mkdirSync as eMt,readFileSync as rF,writeFileSync as Fve}from"node:fs";import{homedir as m8}from"node:os";import{dirname as jve,join as tl}from"node:path";function nmr(){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 tMt(e){let t=e;for(let n=0;n<30;n++){let r=tl(t,".haiku");if(cR(r))return r;let i=jve(t);if(i===t)break;t=i}return null}function rmr(e,t=m8()){let n=[],r=tMt(e);r&&n.push(tl(r,iF)),n.push(tl(t,".haiku",iF));for(let i of n)if(cR(i))try{return JSON.parse(rF(i,"utf8"))}catch{}return null}function imr(e){return e?nMt(e.statusLine):null}function nMt(e){let t=e;return t&&t.type==="command"&&typeof t.command=="string"&&t.command?t.command:null}function Uve(e){return e.includes("statusline")&&e.includes("haiku")}function smr(e){if(!cR(e))return null;try{let t=JSON.parse(rF(e,"utf8"));return nMt(t.statusLine)}catch{return null}}function omr(e){let t=tMt(e);return t?jve(t):e}function rMt(e,t=m8()){let n=imr(rmr(e,t)),r=omr(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=smr(s);if(o){if(Uve(o)){if(n&&!Uve(n))return n;continue}return o}}return n&&!Uve(n)?n:null}async function amr(){let e=await nmr(),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=QCt()}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(zCt(r));return}let i=nMt(t);if(i)try{let s=emr("sh",["-c",i],{input:e,encoding:"utf8",stdio:["pipe","pipe","ignore"]});process.stdout.write(s)}catch{}}function cmr(e){return process.env.HAIKU_PROD==="1"?!0:process.env.HAIKU_DEV==="1"?!1:/\/\.claude\/(plugins|mcpb)\//.test(e)}function umr(){let e=nn();if(e&&cmr(e))return`npx -y ${amr} statusline`;if(e){let t=tl(e,"bin","haiku");if(cR(t))return`${t} statusline`}return"haiku statusline"}function rMt(e,t){return e?{settingsPath:tl(m8(),".claude","settings.json"),haikuDir:tl(m8(),".haiku")}:{settingsPath:tl(t,".claude","settings.json"),haikuDir:tl(t,".haiku")}}function lmr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=rMt(t,n),s={};if(cR(r))try{s=JSON.parse(rF(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=umr(),c=o&&typeof o=="object"&&typeof o.command=="string"&&o.command.includes("statusline");c||($Ct(i,{recursive:!0}),Lve(tl(i,iF),JSON.stringify({statusLine:o??null},null,2))),s.statusLine={type:"command",command:a,padding:0},$Ct(Uve(r),{recursive:!0}),Lve(r,`${JSON.stringify(s,null,2)} +`),r){process.stdout.write(GCt(r));return}let i=rMt(t);if(i)try{let s=tmr("sh",["-c",i],{input:e,encoding:"utf8",stdio:["pipe","pipe","ignore"]});process.stdout.write(s)}catch{}}function umr(e){return process.env.HAIKU_PROD==="1"?!0:process.env.HAIKU_DEV==="1"?!1:/\/\.claude\/(plugins|mcpb)\//.test(e)}function lmr(){let e=nn();if(e&&umr(e))return`npx -y ${cmr} statusline`;if(e){let t=tl(e,"bin","haiku");if(cR(t))return`${t} statusline`}return"haiku statusline"}function iMt(e,t){return e?{settingsPath:tl(m8(),".claude","settings.json"),haikuDir:tl(m8(),".haiku")}:{settingsPath:tl(t,".claude","settings.json"),haikuDir:tl(t,".haiku")}}function dmr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=iMt(t,n),s={};if(cR(r))try{s=JSON.parse(rF(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=lmr(),c=o&&typeof o=="object"&&typeof o.command=="string"&&o.command.includes("statusline");c||(eMt(i,{recursive:!0}),Fve(tl(i,iF),JSON.stringify({statusLine:o??null},null,2))),s.statusLine={type:"command",command:a,padding:0},eMt(jve(r),{recursive:!0}),Fve(r,`${JSON.stringify(s,null,2)} `),console.error(`haiku statusline installed \u2192 ${r} command: ${a} - fallback saved: ${c?"(unchanged)":tl(i,iF)}`)}function dmr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=rMt(t,n);if(!cR(r)){console.error(`haiku statusline uninstall: no settings at ${r}`);return}let s;try{s=JSON.parse(rF(r,"utf8"))}catch{console.error(`haiku statusline uninstall: ${r} is not valid JSON`),process.exit(1)}let o=tl(i,iF),a=null;if(cR(o))try{a=JSON.parse(rF(o,"utf8")).statusLine}catch{}a?s.statusLine=a:delete s.statusLine,Lve(r,`${JSON.stringify(s,null,2)} + fallback saved: ${c?"(unchanged)":tl(i,iF)}`)}function fmr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=iMt(t,n);if(!cR(r)){console.error(`haiku statusline uninstall: no settings at ${r}`);return}let s;try{s=JSON.parse(rF(r,"utf8"))}catch{console.error(`haiku statusline uninstall: ${r} is not valid JSON`),process.exit(1)}let o=tl(i,iF),a=null;if(cR(o))try{a=JSON.parse(rF(o,"utf8")).statusLine}catch{}a?s.statusLine=a:delete s.statusLine,Fve(r,`${JSON.stringify(s,null,2)} `),console.error(`haiku statusline uninstalled \u2192 ${r} - restored: ${a?"original statusLine":"(none \u2014 removed)"}`)}async function fmr(e){let t=e[0];return t==="install"?lmr(e.slice(1)):t==="uninstall"?dmr(e.slice(1)):omr()}var iF,amr,sMt=v(()=>{"use strict";Ci();GCt();QCt();iF="statusline-fallback.json";amr="@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[g8,...Ep]=process.argv.slice(2);if(g8==="mcp"){let e=Promise.resolve().then(()=>(FKe(),UKe)).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(),jKe)).then(i=>i.setHarness(t)):Promise.resolve();Promise.all([e,r]).then(()=>Promise.resolve().then(()=>(dCt(),Xpr))).catch(i=>{ms(i,{context:"mcp-bootstrap"}),console.error(`haiku mcp: ${i.message}`),Ef().finally(()=>process.exit(1))})}else if(g8==="hook"){let e=Ep[0];e||(console.error("Usage: haiku hook "),process.exit(1)),Promise.resolve().then(()=>(LCt(),DCt)).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 g8==="migrate"?Promise.resolve().then(()=>(HCt(),jCt)).then(e=>e.runMigrate(Ep)).catch(e=>{ms(e,{context:"migrate"}),console.error(`haiku migrate: ${e.message}`),Ef().finally(()=>process.exit(1))}):g8==="statusline"?Promise.resolve().then(()=>(sMt(),iMt)).then(e=>e.runStatusline(Ep)).catch(e=>{ms(e,{context:"statusline"}),process.env.HAIKU_STATUSLINE_DEBUG&&console.error(`[haiku statusline] handler error: ${e instanceof Error?`${e.message} + restored: ${a?"original statusLine":"(none \u2014 removed)"}`)}async function pmr(e){let t=e[0];return t==="install"?dmr(e.slice(1)):t==="uninstall"?fmr(e.slice(1)):amr()}var iF,cmr,oMt=v(()=>{"use strict";Ci();VCt();$Ct();iF="statusline-fallback.json";cmr="@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[g8,...Ep]=process.argv.slice(2);if(g8==="mcp"){let e=Promise.resolve().then(()=>(HKe(),jKe)).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(),qKe)).then(i=>i.setHarness(t)):Promise.resolve();Promise.all([e,r]).then(()=>Promise.resolve().then(()=>(fCt(),Qpr))).catch(i=>{ms(i,{context:"mcp-bootstrap"}),console.error(`haiku mcp: ${i.message}`),Ef().finally(()=>process.exit(1))})}else if(g8==="hook"){let e=Ep[0];e||(console.error("Usage: haiku hook "),process.exit(1)),Promise.resolve().then(()=>(UCt(),LCt)).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 g8==="migrate"?Promise.resolve().then(()=>(qCt(),HCt)).then(e=>e.runMigrate(Ep)).catch(e=>{ms(e,{context:"migrate"}),console.error(`haiku migrate: ${e.message}`),Ef().finally(()=>process.exit(1))}):g8==="statusline"?Promise.resolve().then(()=>(oMt(),sMt)).then(e=>e.runStatusline(Ep)).catch(e=>{ms(e,{context:"statusline"}),process.env.HAIKU_STATUSLINE_DEBUG&&console.error(`[haiku statusline] handler error: ${e instanceof Error?`${e.message} ${e.stack}`:String(e)}`),Ef().finally(()=>process.exit(0))}):(console.error("Usage: haiku [args...]"),process.exit(1)); /*! Bundled license information: diff --git a/plugin/providers/git.md b/plugin/providers/git.md index d5565894a..f8f91081e 100644 --- a/plugin/providers/git.md +++ b/plugin/providers/git.md @@ -31,7 +31,7 @@ H·AI·K·U is always git-backed when a `.git/` directory is present. This contr When git creates a draft PR at intent-create time, the PR URL is stamped on `intent.md` frontmatter as `external_refs.git_pr` and `draft_pr_status`. The draft flips `ready` automatically at intent completion. You don't write these fields manually — the engine does — but you can read them to surface PR state to the user. -In **discrete / discrete-hybrid** mode the engine also opens a per-stage draft PR at stage start (base = `haiku//main`) and records it in the `stage_prs` map on `intent.md` FM; the stage gate flips that draft to ready (merging it is the approval). That stage PR is where the stage's runtime-verification proof gets uploaded. Continuous / autopilot / quick keep everything on the single intent-main draft PR. +The engine also opens a per-stage draft PR at stage start (base = `haiku//main`) and records it in the `stage_prs` map on `intent.md` FM; the stage gate flips that draft to ready (merging it is the approval). That stage PR is where the stage's runtime-verification proof gets uploaded. `discrete` opens one per stage; `discrete-hybrid` opens one only for stages whose `review:` gate is/includes `external` (the rest run continuous and keep work on the intent-main PR). Continuous / autopilot / quick keep everything on the single intent-main draft PR. ## Proof asset uploads (runtime-verification evidence) diff --git a/plugin/studios/ARCHITECTURE.md b/plugin/studios/ARCHITECTURE.md index 47fbc2e11..f7bb845e6 100644 --- a/plugin/studios/ARCHITECTURE.md +++ b/plugin/studios/ARCHITECTURE.md @@ -108,7 +108,7 @@ Every stage moves through the same conceptual lifecycle. In v4 these aren't stor | **approve / gate** | Reviews signed, but approval-role slots unsigned → cursor emits `dispatch_approval`, `dispatch_quality_gates`, or `user_gate` | Engine-built quality_gates + configured agents + the human (mode-shaped) | | **merge** | Every approval signed → cursor emits `complete_stage` | Engine merges the stage branch into intent main | -**Per-stage delivery PR (discrete / discrete-hybrid).** Independent of the cursor's filesystem-driven walk (Rule 1 — the cursor reads no git topology): the git layer opens a **draft** PR for the stage at stage start (`workflowStartStage` → `openStageDraftPullRequest`, branch `haiku//` → base `haiku//main`), recorded in the `stage_prs` map on intent.md FM. It is where the stage's runtime-verification proof (gitignored locally) gets uploaded, and the stage gate flips it draft→ready (`haiku_await_gate` external-review path → `markPullRequestReady`) rather than opening a second PR; merging it is the approval signal. continuous / autopilot / quick open no per-stage PR — they keep the single intent-main draft PR (opened at `intent_create`) and proof uploads there. This is a delivery-shape detail under the git/handler layer, not a phase the cursor derives. +**Per-stage delivery PR (discrete / discrete-hybrid).** Independent of the cursor's filesystem-driven walk (Rule 1 — the cursor reads no git topology): the git layer opens a **draft** PR for the stage at stage start (`workflowStartStage` → `openStageDraftPullRequest`, branch `haiku//` → base `haiku//main`), recorded in the `stage_prs` map on intent.md FM. It is where the stage's runtime-verification proof (gitignored locally) gets uploaded, and the stage gate flips it draft→ready (`haiku_await_gate` external-review path → `markPullRequestReady`) rather than opening a second PR; merging it is the approval signal. `discrete` opens one per stage; `discrete-hybrid` opens one only for stages whose `review:` gate is/includes `external` (`stageRequiresExternalReview`) — the continuous stages keep their work on the intent-main PR. continuous / autopilot / quick open no per-stage PR — they keep the single intent-main draft PR (opened at `intent_create`) and proof uploads there. This is a delivery-shape detail under the git/handler layer, not a phase the cursor derives. **The elaborate / decompose split (2026-05-08).** Pre-2026-05-08, "elaborate" meant the whole pre-execute phase: read context, dispatch discovery subagents, write unit specs. The same prompt did all three. This made the human-in-the-loop conversation an implicit instruction inside a heavy autonomous prompt — and agents skipped it. diff --git a/website/app/studios/[slug]/architecture/_data/actors.ts b/website/app/studios/[slug]/architecture/_data/actors.ts index 7187ddc3b..6d9df6d26 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. 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; a DRAFT stage PR is opened at stage START (`workflowStartStage` → `openStageDraftPullRequest`, branch `haiku//` → base `haiku//main`, stamped in the `stage_prs` map) so proof + work land on it, and the `user` gate flips it draft→ready (`markPullRequestReady`, NOT a second PR) — merge into intent main is the approval signal.\n• `discrete-hybrid` — discrete up to a chosen pivot stage, then continuous; per-stage gate type drives the dispatch choice. Per-stage draft PRs open the same way as discrete.\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` for the boot URL, then drive it with a SELF-INSTALLED Playwright script (own scratch dir, never the project's deps; the Playwright MCP is the fallback) that RECORDS VIDEO + step screenshots into `.haiku/intents//[stages//]proof/`. That `proof/` tree is GITIGNORED (regenerated binary churn — `ensureHaikuGitignored` seeds the globs). `runtime-verifier` is now in BOTH `RUNTIME_OBSERVATION_ROLES` and `PR_INTERACTION_ROLES`, so it uploads the captures to the relevant PR/MR (mode-aware target the dispatch builder injects: discrete/discrete-hybrid → the stage's `stage_prs[stage].url`, else the intent-main `draft_pr_url`; GitLab uploads API / GitHub release-asset) where humans audit the chain. `ViewSession` lives in `sessions.ts`; the file-serve route accepts view sessions through the same `/stage-artifacts/:sessionId/*` path-safety chain reviews use, so proof renders live off disk even though it's gitignored.\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; a DRAFT stage PR is opened at stage START (`workflowStartStage` → `openStageDraftPullRequest`, branch `haiku//` → base `haiku//main`, stamped in the `stage_prs` map) so proof + work land on it, and the `user` gate flips it draft→ready (`markPullRequestReady`, NOT a second PR) — merge into intent main is the approval signal.\n• `discrete-hybrid` — discrete up to a chosen pivot stage, then continuous; per-stage gate type drives the dispatch choice. Per-stage draft PRs open ONLY for stages whose `review:` gate is/includes `external` (`stageRequiresExternalReview`); the continuous stages keep work on the intent-main PR.\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` for the boot URL, then drive it with a SELF-INSTALLED Playwright script (own scratch dir, never the project's deps; the Playwright MCP is the fallback) that RECORDS VIDEO + step screenshots into `.haiku/intents//[stages//]proof/`. That `proof/` tree is GITIGNORED (regenerated binary churn — `ensureHaikuGitignored` seeds the globs). `runtime-verifier` is now in BOTH `RUNTIME_OBSERVATION_ROLES` and `PR_INTERACTION_ROLES`, so it uploads the captures to the relevant PR/MR (mode-aware target the dispatch builder injects: discrete/discrete-hybrid → the stage's `stage_prs[stage].url`, else the intent-main `draft_pr_url`; GitLab uploads API / GitHub release-asset) where humans audit the chain. `ViewSession` lives in `sessions.ts`; the file-serve route accepts view sessions through the same `/stage-artifacts/:sessionId/*` path-safety chain reviews use, so proof renders live off disk even though it's gitignored.\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: "🌐", From 8610db2382e6cf737d73c902086ddf2b6bea1d3a Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 15:14:19 -0600 Subject: [PATCH 3/3] review(pr#376): address claude-review findings + fix Biome MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Extract `PER_STAGE_PR_MODES` to a shared leaf module (orchestrator/workflow/delivery-modes.ts) and import it from both side-effects.ts (opens the stage PR) and dispatch_approval/index.ts (picks the proof-upload target). Was duplicated inline in both — a new mode would have had to be added in two places (review #1). - ensureHaikuGitignored: emit a concise one-line note instead of a second full banner when a repo already carries the old worktree-only banner (partial upgrade no longer stacks two banners) (review #2). - Clarify the haiku_await_gate external-review comment: the else-if fallback covers BOTH no-per-stage-PR modes AND a failed stage-start open (no recorded URL) — not just "second PR" (review #3). - Biome: fixed import-sort/format in the touched src files (`npx biome check packages/haiku/src` was red on the import order). Kept as-is with rationale on the threads: the `stage &&` guard in resolveProofTargetPrUrl (defensive on a param), the release-asset privacy note (already documented in git.md), and the test helper's JSON-in-YAML seed (valid YAML, test-only). Co-Authored-By: Claude Opus 4.8 (1M context) --- packages/haiku/src/git-worktree.ts | 3 +- .../stage/approve/dispatch_approval/index.ts | 3 +- .../orchestrator/workflow/delivery-modes.ts | 19 + .../src/orchestrator/workflow/side-effects.ts | 10 +- packages/haiku/src/state-tools.ts | 12 +- .../tools/orchestrator/haiku_await_gate.ts | 17 +- plugin/bin/haiku.mjs | 732 +++++++++--------- 7 files changed, 408 insertions(+), 388 deletions(-) create mode 100644 packages/haiku/src/orchestrator/workflow/delivery-modes.ts diff --git a/packages/haiku/src/git-worktree.ts b/packages/haiku/src/git-worktree.ts index fd068e119..5ad710215 100644 --- a/packages/haiku/src/git-worktree.ts +++ b/packages/haiku/src/git-worktree.ts @@ -1355,8 +1355,7 @@ export function openStageDraftPullRequest(opts: { }): OpenIntentMrResult { const branch = `haiku/${opts.slug}/${opts.stage}` const base = `haiku/${opts.slug}/main` - const title = - opts.title ?? `H·AI·K·U: ${opts.slug} — stage ${opts.stage}` + const title = opts.title ?? `H·AI·K·U: ${opts.slug} — stage ${opts.stage}` const body = opts.body ?? `Stage \`${opts.stage}\` of intent \`${opts.slug}\` is in flight. The H·AI·K·U engine opened this PR as a draft so the stage's work — and its runtime-verification proof — can be watched as units land. The engine marks it ready at the stage gate; merging it signals approval.` diff --git a/packages/haiku/src/orchestrator/prompts/stage/approve/dispatch_approval/index.ts b/packages/haiku/src/orchestrator/prompts/stage/approve/dispatch_approval/index.ts index df11ebc8c..9aa03909c 100644 --- a/packages/haiku/src/orchestrator/prompts/stage/approve/dispatch_approval/index.ts +++ b/packages/haiku/src/orchestrator/prompts/stage/approve/dispatch_approval/index.ts @@ -29,6 +29,7 @@ import { resolveReviewAgentPath, } from "../../../../../studio-reader.js" import { materializeReferenceFile } from "../../../../../subagent-prompt-file.js" +import { PER_STAGE_PR_MODES } from "../../../../workflow/delivery-modes.js" import { buildDecisionsBlock, buildExistingFeedbackBlock, @@ -44,8 +45,6 @@ import { } from "../../../_shared/index.js" import { definePromptBuilder } from "../../../define.js" -const PER_STAGE_PR_MODES = new Set(["discrete", "discrete-hybrid"]) - /** The PR/MR a runtime-verifier uploads this stage's proof to. In * per-stage delivery modes that's the stage's own draft PR (base = * intent main); otherwise the single intent-main draft PR. Empty string diff --git a/packages/haiku/src/orchestrator/workflow/delivery-modes.ts b/packages/haiku/src/orchestrator/workflow/delivery-modes.ts new file mode 100644 index 000000000..ffb56cc6b --- /dev/null +++ b/packages/haiku/src/orchestrator/workflow/delivery-modes.ts @@ -0,0 +1,19 @@ +// orchestrator/workflow/delivery-modes.ts — the single source for which +// intent modes use per-stage delivery PRs. A neutral leaf module (no heavy +// deps) so both the workflow side-effects (which OPEN the stage PR) and the +// prompt dispatch builder (which picks the proof-upload TARGET) read the +// same set and can never drift when a new mode is added. +// +// `discrete` / `discrete-hybrid` open a per-stage draft PR (base = intent +// main) where that stage's work + runtime-verification proof lands. +// `continuous` / `autopilot` / `quick` keep everything on the single +// intent-main draft PR opened at intent_create. +// +// Note: membership here means "this mode CAN open per-stage PRs." +// `discrete-hybrid` further narrows WHICH stages get one to the external- +// review stages (`stageRequiresExternalReview`); `discrete` opens one for +// every stage. +export const PER_STAGE_PR_MODES: ReadonlySet = new Set([ + "discrete", + "discrete-hybrid", +]) diff --git a/packages/haiku/src/orchestrator/workflow/side-effects.ts b/packages/haiku/src/orchestrator/workflow/side-effects.ts index e61ed1f94..5b119d767 100644 --- a/packages/haiku/src/orchestrator/workflow/side-effects.ts +++ b/packages/haiku/src/orchestrator/workflow/side-effects.ts @@ -56,7 +56,6 @@ import { import { withIntentMainLock } from "../../locks.js" import type { OrchestratorAction } from "../../orchestrator.js" import { resolveIntentStages } from "../../orchestrator.js" -import { stageRequiresExternalReview } from "../studio.js" import { sealIntentState } from "../../state-integrity.js" import { appendStageIteration, @@ -71,6 +70,8 @@ import { timestamp, } from "../../state-tools.js" import { emitTelemetry } from "../../telemetry.js" +import { stageRequiresExternalReview } from "../studio.js" +import { PER_STAGE_PR_MODES } from "./delivery-modes.js" import { deriveStageState } from "./derived-stage-state.js" /** Best-effort push of the stage branch to origin after an engine @@ -102,13 +103,6 @@ function readFrontmatter(filePath: string): Record { return data } -/** Modes whose stages each get their own draft PR (base = intent main). - * In discrete delivery the per-stage PR is where that stage's work — and - * its runtime-verification proof — lands; merging it is the approval - * signal. continuous / autopilot / quick keep everything on the single - * intent-main draft PR opened at intent_create. */ -const PER_STAGE_PR_MODES = new Set(["discrete", "discrete-hybrid"]) - /** Best-effort: open a DRAFT PR for this stage at stage start, in the * modes that use per-stage delivery. Mirrors the intent-create draft-PR * contract — gated on a git repo with a provider CLI, never throws, diff --git a/packages/haiku/src/state-tools.ts b/packages/haiku/src/state-tools.ts index 8546a9b56..d6603dc7c 100644 --- a/packages/haiku/src/state-tools.ts +++ b/packages/haiku/src/state-tools.ts @@ -4686,8 +4686,16 @@ export function ensureHaikuGitignored(): void { (p) => !lineSet.has(p.entry) && !p.accept.some((a) => lineSet.has(a)), ).map((p) => p.entry) if (missing.length === 0) return - const banner = - "# H·AI·K·U engine-managed: worktree pool (linked git worktrees) + runtime-verification proof (regenerated binary churn — uploaded to the PR, never committed)." + // Only emit the banner when no H·AI·K·U-managed line is present yet. + // A repo upgraded from the old worktree-only seeder already carries a + // banner above `.haiku/worktrees/`; appending a second one when we add + // the proof globs leaves two banners stacked (cosmetic, but messy on + // upgrade). When some patterns already exist, append just the missing + // lines under a short inline note instead. + const hasManagedLine = lines.some((l) => l.startsWith(".haiku/")) + const banner = hasManagedLine + ? "# H·AI·K·U engine-managed (proof: regenerated binary churn — uploaded to the PR, never committed)" + : "# H·AI·K·U engine-managed: worktree pool (linked git worktrees) + runtime-verification proof (regenerated binary churn — uploaded to the PR, never committed)." const prefix = existing && !existing.endsWith("\n") ? "\n" : "" const separator = existing ? "\n" : "" writeFileSync( diff --git a/packages/haiku/src/tools/orchestrator/haiku_await_gate.ts b/packages/haiku/src/tools/orchestrator/haiku_await_gate.ts index 306217ed3..12af940c3 100644 --- a/packages/haiku/src/tools/orchestrator/haiku_await_gate.ts +++ b/packages/haiku/src/tools/orchestrator/haiku_await_gate.ts @@ -581,15 +581,16 @@ export default defineTool({ let externalReviewMessage: string const existingStagePr = readStagePr(slug, stage) if (isGitRepo() && existingStagePr?.url) { - // Per-stage delivery (discrete / discrete-hybrid): a DRAFT - // stage PR was already opened at stage start. Flip it to - // ready instead of opening a SECOND, non-draft PR. The - // merge is still the approval signal (gate.ts reconciles - // on branch-merged-into-intent-main). + // Per-stage delivery (discrete / discrete-hybrid) where the + // stage-start draft PR opened SUCCESSFULLY (we have its URL): + // flip that existing draft to ready rather than opening a + // second, non-draft PR. The `else if` branch below covers + // both no-per-stage-PR modes AND the case where the stage- + // start open failed (no URL recorded) — there we fall back + // to opening the PR now. The merge is still the approval + // signal (gate.ts reconciles on branch-merged-into-intent-main). const stagePrUrl = existingStagePr.url - const { markPullRequestReady } = await import( - "../../git-worktree.js" - ) + const { markPullRequestReady } = await import("../../git-worktree.js") const ready = markPullRequestReady(stagePrUrl) try { const intentMd = join(intentDir(slug), "intent.md") diff --git a/plugin/bin/haiku.mjs b/plugin/bin/haiku.mjs index 0c9d488df..519fc5ded 100755 --- a/plugin/bin/haiku.mjs +++ b/plugin/bin/haiku.mjs @@ -1,45 +1,45 @@ #!/usr/bin/env node import{createRequire}from"module";const require=createRequire(import.meta.url); -var cMt=Object.create;var oF=Object.defineProperty;var uMt=Object.getOwnPropertyDescriptor;var lMt=Object.getOwnPropertyNames;var dMt=Object.getPrototypeOf,fMt=Object.prototype.hasOwnProperty;var Y=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var v=(e,t)=>()=>(e&&(t=e(e=0)),t);var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ar=(e,t)=>{for(var n in t)oF(e,n,{get:t[n],enumerable:!0})},Hve=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of lMt(t))!fMt.call(e,i)&&i!==n&&oF(e,i,{get:()=>t[i],enumerable:!(r=uMt(t,i))||r.enumerable});return e};var Re=(e,t,n)=>(n=e!=null?cMt(dMt(e)):{},Hve(t||!e||!e.__esModule?oF(n,"default",{value:e,enumerable:!0}):n,e)),ke=e=>Hve(oF({},"__esModule",{value:!0}),e);var cm,y8=v(()=>{cm="1.9.1"});function pMt(e){let t=new Set([e]),n=new Set,r=e.match(qve);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(qve);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 qve,Bve,zve=v(()=>{y8();qve=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;Bve=pMt(cm)});function Ap(e,t,n,r=!1){var i;let s=pO[fO]=(i=pO[fO])!==null&&i!==void 0?i:{version:cm};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!==cm){let o=new Error(`@opentelemetry/api: Registration of version v${s.version} for ${e} does not match previously registered API v${cm}`);return n.error(o.stack||o.message),!1}return s[e]=t,n.debug(`@opentelemetry/api: Registered a global for ${e} v${cm}.`),!0}function rl(e){var t,n;let r=(t=pO[fO])===null||t===void 0?void 0:t.version;if(!(!r||!Bve(r)))return(n=pO[fO])===null||n===void 0?void 0:n[e]}function wp(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${cm}.`);let n=pO[fO];n&&delete n[e]}var hMt,fO,pO,fE=v(()=>{y8();zve();hMt=cm.split(".")[0],fO=Symbol.for(`opentelemetry.js.api.${hMt}`),pO=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{}});function hO(e,t,n){let r=rl("diag");if(r)return r[e](t,...n)}var aF,Gve=v(()=>{fE();aF=class{constructor(t){this._namespace=t.namespace||"DiagComponentLogger"}debug(...t){return hO("debug",this._namespace,t)}error(...t){return hO("error",this._namespace,t)}info(...t){return hO("info",this._namespace,t)}warn(...t){return hO("warn",this._namespace,t)}verbose(...t){return hO("verbose",this._namespace,t)}}});var ho,cF=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 Vve(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 Wve=v(()=>{cF()});var mMt,Po,pE=v(()=>{Gve();Wve();cF();fE();mMt="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=Vve((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(mMt,n)},n.createComponentLogger=i=>new aF(i),n.verbose=t("verbose"),n.debug=t("debug"),n.info=t("info"),n.warn=t("warn"),n.error=t("error")}}});var uF,Kve=v(()=>{uF=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 Yve,Zve=v(()=>{Yve=Symbol("BaggageEntryMetadata")});function Jve(e={}){return new uF(new Map(Object.entries(e)))}function Xve(e){return typeof e!="string"&&(gMt.error(`Cannot create baggage metadata from unknown type: ${typeof e}`),e=""),{__TYPE__:Yve,toString(){return e}}}var gMt,S8=v(()=>{pE();Kve();Zve();gMt=Po.instance()});function il(e){return Symbol.for(e)}var b8,lR,mO=v(()=>{b8=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}}},lR=new b8});var E8,_8,lF,Qve=v(()=>{E8=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],_8={};if(typeof console<"u"){let e=["error","warn","info","debug","trace","log"];for(let t of e)typeof console[t]=="function"&&(_8[t]=console[t])}lF=class{constructor(){function t(n){return function(...r){let i=_8[n];if(typeof i!="function"&&(i=_8.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{T8=class{constructor(){}createGauge(t,n){return SMt}createHistogram(t,n){return bMt}createCounter(t,n){return yMt}createUpDownCounter(t,n){return EMt}createObservableGauge(t,n){return TMt}createObservableCounter(t,n){return _Mt}createObservableUpDownCounter(t,n){return vMt}addBatchObservableCallback(t,n){}removeBatchObservableCallback(t){}},dR=class{},v8=class extends dR{add(t,n){}},R8=class extends dR{add(t,n){}},A8=class extends dR{record(t,n){}},w8=class extends dR{record(t,n){}},gO=class{addCallback(t){}removeCallback(t){}},k8=class extends gO{},I8=class extends gO{},x8=class extends gO{},O8=new T8,yMt=new v8,SMt=new A8,bMt=new w8,EMt=new R8,_Mt=new k8,TMt=new I8,vMt=new x8});var dF,eRe=v(()=>{(function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"})(dF||(dF={}))});var fF,pF,N8=v(()=>{fF={get(e,t){if(e!=null)return e[t]},keys(e){return e==null?[]:Object.keys(e)}},pF={set(e,t,n){e!=null&&(e[t]=n)}}});var hF,tRe=v(()=>{mO();hF=class{active(){return lR}with(t,n,r,...i){return n.call(r,...i)}bind(t,n){return n}enable(){return this}disable(){return this}}});var C8,RMt,kp,yO=v(()=>{tRe();fE();pE();C8="context",RMt=new hF,kp=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalContextManager(t){return Ap(C8,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(C8)||RMt}disable(){this._getContextManager().disable(),wp(C8,Po.instance())}}});var qa,M8=v(()=>{(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(qa||(qa={}))});var SO,hE,mF,gF=v(()=>{M8();SO="0000000000000000",hE="00000000000000000000000000000000",mF={traceId:hE,spanId:SO,traceFlags:qa.NONE}});var Ip,yF=v(()=>{gF();Ip=class{constructor(t=mF){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 SF(e){return e.getValue(D8)||void 0}function nRe(){return SF(kp.getInstance().active())}function bO(e,t){return e.setValue(D8,t)}function rRe(e){return e.deleteValue(D8)}function iRe(e,t){return bO(e,new Ip(t))}function bF(e){var t;return(t=SF(e))===null||t===void 0?void 0:t.spanContext()}var D8,L8=v(()=>{mO();yF();yO();D8=il("OpenTelemetry Context Key SPAN")});function sRe(e,t){if(typeof e!="string"||e.length!==t)return!1;let n=0;for(let r=0;r{gF();yF();EF=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1])});function AMt(e){return e!==null&&typeof e=="object"&&"spanId"in e&&typeof e.spanId=="string"&&"traceId"in e&&typeof e.traceId=="string"&&"traceFlags"in e&&typeof e.traceFlags=="number"}var j8,fR,H8=v(()=>{yO();L8();yF();_F();j8=kp.getInstance(),fR=class{startSpan(t,n,r=j8.active()){if(!!n?.root)return new Ip;let s=r&&bF(r);return AMt(s)&&um(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??j8.active(),u=this.startSpan(t,s,c),l=bO(c,u);return j8.with(l,a,void 0,u)}}});var wMt,pR,q8=v(()=>{H8();wMt=new fR,pR=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):wMt}}});var TF,aRe=v(()=>{H8();TF=class{getTracer(t,n,r){return new fR}}});var kMt,mE,B8=v(()=>{q8();aRe();kMt=new TF,mE=class{getTracer(t,n,r){var i;return(i=this.getDelegateTracer(t,n,r))!==null&&i!==void 0?i:new pR(this,t,n,r)}getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:kMt}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 vF,cRe=v(()=>{(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(vF||(vF={}))});var $r,uRe=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,lRe=v(()=>{(function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"})(as||(as={}))});function dRe(e){return OMt.test(e)}function fRe(e){return PMt.test(e)&&!NMt.test(e)}var z8,IMt,xMt,OMt,PMt,NMt,pRe=v(()=>{z8="[_0-9a-z-*/]",IMt=`[a-z]${z8}{0,255}`,xMt=`[a-z0-9]${z8}{0,240}@[a-z]${z8}{0,13}`,OMt=new RegExp(`^(?:${IMt}|${xMt})$`),PMt=/^[ -~]{0,255}[!-~]$/,NMt=/,|=/});var hRe,CMt,mRe,gRe,RF,yRe=v(()=>{pRe();hRe=32,CMt=512,mRe=",",gRe="=",RF=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+gRe+this.get(n)),t),[]).join(mRe)}_parse(t){t.length>CMt||(this._internalState=t.split(mRe).reduceRight((n,r)=>{let i=r.trim(),s=i.indexOf(gRe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);dRe(o)&&fRe(a)&&n.set(o,a)}return n},new Map),this._internalState.size>hRe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,hRe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}}});function SRe(e){return new RF(e)}var bRe=v(()=>{yRe()});var Ve,ERe=v(()=>{yO();Ve=kp.getInstance()});var sl,_Re=v(()=>{pE();sl=Po.instance()});var G8,TRe,vRe=v(()=>{P8();G8=class{getMeter(t,n,r){return O8}},TRe=new G8});var V8,AF,RRe=v(()=>{vRe();fE();pE();V8="metrics",AF=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalMeterProvider(t){return Ap(V8,t,Po.instance())}getMeterProvider(){return rl(V8)||TRe}getMeter(t,n,r){return this.getMeterProvider().getMeter(t,n,r)}disable(){wp(V8,Po.instance())}}});var W8,ARe=v(()=>{RRe();W8=AF.getInstance()});var wF,wRe=v(()=>{wF=class{inject(t,n){}extract(t,n){return t}fields(){return[]}}});function Y8(e){return e.getValue(K8)||void 0}function kRe(){return Y8(kp.getInstance().active())}function IRe(e,t){return e.setValue(K8,t)}function xRe(e){return e.deleteValue(K8)}var K8,ORe=v(()=>{yO();mO();K8=il("OpenTelemetry Baggage Key")});var Z8,MMt,kF,PRe=v(()=>{fE();wRe();N8();ORe();S8();pE();Z8="propagation",MMt=new wF,kF=class e{constructor(){this.createBaggage=Jve,this.getBaggage=Y8,this.getActiveBaggage=kRe,this.setBaggage=IRe,this.deleteBaggage=xRe}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalPropagator(t){return Ap(Z8,t,Po.instance())}inject(t,n,r=pF){return this._getGlobalPropagator().inject(t,n,r)}extract(t,n,r=fF){return this._getGlobalPropagator().extract(t,n,r)}fields(){return this._getGlobalPropagator().fields()}disable(){wp(Z8,Po.instance())}_getGlobalPropagator(){return rl(Z8)||MMt}}});var Qd,NRe=v(()=>{PRe();Qd=kF.getInstance()});var J8,IF,CRe=v(()=>{fE();B8();_F();L8();pE();J8="trace",IF=class e{constructor(){this._proxyTracerProvider=new mE,this.wrapSpanContext=oRe,this.isSpanContextValid=um,this.deleteSpan=rRe,this.getSpan=SF,this.getActiveSpan=nRe,this.getSpanContext=bF,this.setSpan=bO,this.setSpanContext=iRe}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalTracerProvider(t){let n=Ap(J8,this._proxyTracerProvider,Po.instance());return n&&this._proxyTracerProvider.setDelegate(t),n}getTracerProvider(){return rl(J8)||this._proxyTracerProvider}getTracer(t,n){return this.getTracerProvider().getTracer(t,n)}disable(){wp(J8,Po.instance()),this._proxyTracerProvider=new mE}}});var jt,MRe=v(()=>{CRe();jt=IF.getInstance()});var Ze={};Ar(Ze,{DiagConsoleLogger:()=>lF,DiagLogLevel:()=>ho,INVALID_SPANID:()=>SO,INVALID_SPAN_CONTEXT:()=>mF,INVALID_TRACEID:()=>hE,ProxyTracer:()=>pR,ProxyTracerProvider:()=>mE,ROOT_CONTEXT:()=>lR,SamplingDecision:()=>vF,SpanKind:()=>$r,SpanStatusCode:()=>as,TraceFlags:()=>qa,ValueType:()=>dF,baggageEntryMetadataFromString:()=>Xve,context:()=>Ve,createContextKey:()=>il,createNoopMeter:()=>$ve,createTraceState:()=>SRe,default:()=>DMt,defaultTextMapGetter:()=>fF,defaultTextMapSetter:()=>pF,diag:()=>sl,isSpanContextValid:()=>um,isValidSpanId:()=>F8,isValidTraceId:()=>U8,metrics:()=>W8,propagation:()=>Qd,trace:()=>jt});var DMt,Me=v(()=>{S8();mO();Qve();cF();P8();eRe();N8();q8();B8();cRe();uRe();lRe();M8();bRe();_F();gF();ERe();_Re();ARe();NRe();MRe();DMt={context:Ve,diag:sl,metrics:W8,propagation:Qd,trace:jt}});var EO=w(dy=>{"use strict";Object.defineProperty(dy,"__esModule",{value:!0});dy.isTracingSuppressed=dy.unsuppressTracing=dy.suppressTracing=void 0;var LMt=(Me(),ke(Ze)),X8=(0,LMt.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function UMt(e){return e.setValue(X8,!0)}dy.suppressTracing=UMt;function FMt(e){return e.deleteValue(X8)}dy.unsuppressTracing=FMt;function jMt(e){return e.getValue(X8)===!0}dy.isTracingSuppressed=jMt});var Q8=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 $8=w(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});xp.parseKeyPairsIntoRecord=xp.parsePairKeyValue=xp.getKeyPairs=xp.serializeKeyPairs=void 0;var HMt=(Me(),ke(Ze)),hR=Q8();function qMt(e){return e.reduce((t,n)=>{let r=`${t}${t!==""?hR.BAGGAGE_ITEMS_SEPARATOR:""}${n}`;return r.length>hR.BAGGAGE_MAX_TOTAL_LENGTH?t:r},"")}xp.serializeKeyPairs=qMt;function BMt(e){return e.getAllEntries().map(([t,n])=>{let r=`${encodeURIComponent(t)}=${encodeURIComponent(n.value)}`;return n.metadata!==void 0&&(r+=hR.BAGGAGE_PROPERTIES_SEPARATOR+n.metadata.toString()),r})}xp.getKeyPairs=BMt;function DRe(e){if(!e)return;let t=e.indexOf(hR.BAGGAGE_PROPERTIES_SEPARATOR),n=t===-1?e:e.substring(0,t),r=n.indexOf(hR.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(hR.BAGGAGE_ITEMS_SEPARATOR).forEach(n=>{let r=DRe(n);r!==void 0&&r.value.length>0&&(t[r.key]=r.value)}),t}xp.parseKeyPairsIntoRecord=zMt});var LRe=w(xF=>{"use strict";Object.defineProperty(xF,"__esModule",{value:!0});xF.W3CBaggagePropagator=void 0;var e7=(Me(),ke(Ze)),GMt=EO(),gE=Q8(),t7=$8(),n7=class{inject(t,n,r){let i=e7.propagation.getBaggage(t);if(!i||(0,GMt.isTracingSuppressed)(t))return;let s=(0,t7.getKeyPairs)(i).filter(a=>a.length<=gE.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,gE.BAGGAGE_MAX_NAME_VALUE_PAIRS),o=(0,t7.serializeKeyPairs)(s);o.length>0&&r.set(n,gE.BAGGAGE_HEADER,o)}extract(t,n,r){let i=r.get(n,gE.BAGGAGE_HEADER),s=Array.isArray(i)?i.join(gE.BAGGAGE_ITEMS_SEPARATOR):i;if(!s)return t;let o={};return s.length===0||(s.split(gE.BAGGAGE_ITEMS_SEPARATOR).forEach(c=>{let u=(0,t7.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:e7.propagation.setBaggage(t,e7.propagation.createBaggage(o))}fields(){return[gE.BAGGAGE_HEADER]}};xF.W3CBaggagePropagator=n7});var URe=w(OF=>{"use strict";Object.defineProperty(OF,"__esModule",{value:!0});OF.AnchoredClock=void 0;var r7=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}};OF.AnchoredClock=r7});var BRe=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.isAttributeValue=fy.isAttributeKey=fy.sanitizeAttributes=void 0;var FRe=(Me(),ke(Ze));function VMt(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(!jRe(n)){FRe.diag.warn(`Invalid attribute key: ${n}`);continue}let r=e[n];if(!HRe(r)){FRe.diag.warn(`Invalid attribute value set for key: ${n}`);continue}Array.isArray(r)?t[n]=r.slice():t[n]=r}return t}fy.sanitizeAttributes=VMt;function jRe(e){return typeof e=="string"&&e!==""}fy.isAttributeKey=jRe;function HRe(e){return e==null?!0:Array.isArray(e)?WMt(e):qRe(typeof e)}fy.isAttributeValue=HRe;function WMt(e){let t;for(let n of e){if(n==null)continue;let r=typeof n;if(r!==t){if(!t){if(qRe(r)){t=r;continue}return!1}return!1}}return!0}function qRe(e){switch(e){case"number":case"boolean":case"string":return!0}return!1}});var i7=w(PF=>{"use strict";Object.defineProperty(PF,"__esModule",{value:!0});PF.loggingErrorHandler=void 0;var KMt=(Me(),ke(Ze));function YMt(){return e=>{KMt.diag.error(ZMt(e))}}PF.loggingErrorHandler=YMt;function ZMt(e){return typeof e=="string"?e:JSON.stringify(JMt(e))}function JMt(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 GRe=w(mR=>{"use strict";Object.defineProperty(mR,"__esModule",{value:!0});mR.globalErrorHandler=mR.setGlobalErrorHandler=void 0;var XMt=i7(),zRe=(0,XMt.loggingErrorHandler)();function QMt(e){zRe=e}mR.setGlobalErrorHandler=QMt;function $Mt(e){try{zRe(e)}catch{}}mR.globalErrorHandler=$Mt});var YRe=w(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});Op.getStringListFromEnv=Op.getBooleanFromEnv=Op.getStringFromEnv=Op.getNumberFromEnv=void 0;var VRe=(Me(),ke(Ze)),WRe=Y("util");function eDt(e){let t=process.env[e];if(t==null||t.trim()==="")return;let n=Number(t);if(isNaN(n)){VRe.diag.warn(`Unknown value ${(0,WRe.inspect)(t)} for ${e}, expected a number, using defaults`);return}return n}Op.getNumberFromEnv=eDt;function KRe(e){let t=process.env[e];if(!(t==null||t.trim()===""))return t}Op.getStringFromEnv=KRe;function tDt(e){let t=process.env[e]?.trim().toLowerCase();return t==null||t===""?!1:t==="true"?!0:(t==="false"||VRe.diag.warn(`Unknown value ${(0,WRe.inspect)(t)} for ${e}, expected 'true' or 'false', falling back to 'false' (default)`),!1)}Op.getBooleanFromEnv=tDt;function nDt(e){return KRe(e)?.split(",").map(t=>t.trim()).filter(t=>t!=="")}Op.getStringListFromEnv=nDt});var ZRe=w(NF=>{"use strict";Object.defineProperty(NF,"__esModule",{value:!0});NF._globalThis=void 0;NF._globalThis=globalThis});var JRe=w(CF=>{"use strict";Object.defineProperty(CF,"__esModule",{value:!0});CF.VERSION=void 0;CF.VERSION="2.6.1"});function ws(e){let t={},n=e.length;for(let r=0;r{});var 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,fke,pke,hke,mke,gke,rDt,o7,iDt,sDt,oDt,aDt,a7,cDt,uDt,lDt,dDt,fDt,pDt,hDt,mDt,gDt,yDt,SDt,bDt,EDt,_Dt,TDt,vDt,RDt,ADt,c7,wDt,kDt,IDt,xDt,ODt,PDt,NDt,CDt,MDt,DDt,LDt,UDt,u7,FDt,jDt,l7,d7,HDt,qDt,BDt,zDt,GDt,VDt,WDt,KDt,YDt,ZDt,JDt,XDt,QDt,$Dt,eLt,tLt,nLt,_O,gR,f7,rLt,iLt,yE,sLt,oLt,aLt,cLt,p7,h7,uLt,m7,lLt,dLt,fLt,pLt,hLt,mLt,gLt,yLt,SLt,bLt,ELt,_Lt,TLt,vLt,RLt,ALt,wLt,kLt,ILt,xLt,OLt,PLt,NLt,g7,CLt,MLt,DLt,LLt,ULt,FLt,jLt,HLt,qLt,BLt,zLt,GLt,VLt,WLt,KLt,YLt,ZLt,JLt,XLt,y7,QLt,S7,$Lt,e1t,t1t,n1t,r1t,i1t,s1t,o1t,a1t,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,sIe,oIe,aIe,cIe,uIe,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,Y1t,Z1t,J1t,X1t,Q1t,$1t,eUt,tUt,lIe,dIe,fIe,pIe,hIe,mIe,gIe,yIe,SIe,bIe,EIe,nUt,rUt,iUt,sUt,oUt,aUt,cUt,uUt,lUt,dUt,fUt,pUt,_Ie,TIe,vIe,RIe,AIe,hUt,mUt,gUt,yUt,SUt,bUt,wIe,kIe,IIe,EUt,_Ut,TUt,vUt,xIe,OIe,PIe,NIe,RUt,AUt,wUt,kUt,IUt,CIe,MIe,DIe,LIe,UIe,FIe,jIe,xUt,OUt,PUt,NUt,CUt,MUt,DUt,LUt,HIe,qIe,BIe,zIe,GIe,UUt,FUt,jUt,HUt,qUt,BUt,VIe,WIe,KIe,YIe,ZIe,JIe,XIe,QIe,$Ie,e0e,t0e,n0e,r0e,i0e,s0e,o0e,a0e,c0e,u0e,l0e,d0e,zUt,GUt,VUt,WUt,KUt,YUt,ZUt,JUt,XUt,QUt,$Ut,eFt,tFt,nFt,rFt,iFt,sFt,oFt,aFt,cFt,uFt,lFt,f0e,p0e,h0e,m0e,g0e,dFt,fFt,pFt,hFt,mFt,gFt,y0e,S0e,yFt,SFt,bFt,b0e,E0e,EFt,_Ft,TFt,_0e,T0e,v0e,R0e,A0e,w0e,k0e,I0e,x0e,O0e,P0e,N0e,C0e,M0e,D0e,L0e,U0e,vFt,RFt,AFt,wFt,kFt,IFt,xFt,OFt,PFt,NFt,CFt,MFt,DFt,LFt,UFt,FFt,jFt,HFt,F0e,j0e,qFt,BFt,zFt,H0e=v(()=>{s7();XRe="aws.lambda.invoked_arn",QRe="db.system",$Re="db.connection_string",eAe="db.user",tAe="db.jdbc.driver_classname",nAe="db.name",rAe="db.statement",iAe="db.operation",sAe="db.mssql.instance_name",oAe="db.cassandra.keyspace",aAe="db.cassandra.page_size",cAe="db.cassandra.consistency_level",uAe="db.cassandra.table",lAe="db.cassandra.idempotence",dAe="db.cassandra.speculative_execution_count",fAe="db.cassandra.coordinator.id",pAe="db.cassandra.coordinator.dc",hAe="db.hbase.namespace",mAe="db.redis.database_index",gAe="db.mongodb.collection",yAe="db.sql.table",SAe="exception.type",bAe="exception.message",EAe="exception.stacktrace",_Ae="exception.escaped",TAe="faas.trigger",vAe="faas.execution",RAe="faas.document.collection",AAe="faas.document.operation",wAe="faas.document.time",kAe="faas.document.name",IAe="faas.time",xAe="faas.cron",OAe="faas.coldstart",PAe="faas.invoked_name",NAe="faas.invoked_provider",CAe="faas.invoked_region",MAe="net.transport",DAe="net.peer.ip",LAe="net.peer.port",UAe="net.peer.name",FAe="net.host.ip",jAe="net.host.port",HAe="net.host.name",qAe="net.host.connection.type",BAe="net.host.connection.subtype",zAe="net.host.carrier.name",GAe="net.host.carrier.mcc",VAe="net.host.carrier.mnc",WAe="net.host.carrier.icc",KAe="peer.service",YAe="enduser.id",ZAe="enduser.role",JAe="enduser.scope",XAe="thread.id",QAe="thread.name",$Ae="code.function",ewe="code.namespace",twe="code.filepath",nwe="code.lineno",rwe="http.method",iwe="http.url",swe="http.target",owe="http.host",awe="http.scheme",cwe="http.status_code",uwe="http.flavor",lwe="http.user_agent",dwe="http.request_content_length",fwe="http.request_content_length_uncompressed",pwe="http.response_content_length",hwe="http.response_content_length_uncompressed",mwe="http.server_name",gwe="http.route",ywe="http.client_ip",Swe="aws.dynamodb.table_names",bwe="aws.dynamodb.consumed_capacity",Ewe="aws.dynamodb.item_collection_metrics",_we="aws.dynamodb.provisioned_read_capacity",Twe="aws.dynamodb.provisioned_write_capacity",vwe="aws.dynamodb.consistent_read",Rwe="aws.dynamodb.projection",Awe="aws.dynamodb.limit",wwe="aws.dynamodb.attributes_to_get",kwe="aws.dynamodb.index_name",Iwe="aws.dynamodb.select",xwe="aws.dynamodb.global_secondary_indexes",Owe="aws.dynamodb.local_secondary_indexes",Pwe="aws.dynamodb.exclusive_start_table",Nwe="aws.dynamodb.table_count",Cwe="aws.dynamodb.scan_forward",Mwe="aws.dynamodb.segment",Dwe="aws.dynamodb.total_segments",Lwe="aws.dynamodb.count",Uwe="aws.dynamodb.scanned_count",Fwe="aws.dynamodb.attribute_definitions",jwe="aws.dynamodb.global_secondary_index_updates",Hwe="messaging.system",qwe="messaging.destination",Bwe="messaging.destination_kind",zwe="messaging.temp_destination",Gwe="messaging.protocol",Vwe="messaging.protocol_version",Wwe="messaging.url",Kwe="messaging.message_id",Ywe="messaging.conversation_id",Zwe="messaging.message_payload_size_bytes",Jwe="messaging.message_payload_compressed_size_bytes",Xwe="messaging.operation",Qwe="messaging.consumer_id",$we="messaging.rabbitmq.routing_key",eke="messaging.kafka.message_key",tke="messaging.kafka.consumer_group",nke="messaging.kafka.client_id",rke="messaging.kafka.partition",ike="messaging.kafka.tombstone",ske="rpc.system",oke="rpc.service",ake="rpc.method",cke="rpc.grpc.status_code",uke="rpc.jsonrpc.version",lke="rpc.jsonrpc.request_id",dke="rpc.jsonrpc.error_code",fke="rpc.jsonrpc.error_message",pke="message.type",hke="message.id",mke="message.compressed_size",gke="message.uncompressed_size",rDt=XRe,o7=QRe,iDt=$Re,sDt=eAe,oDt=tAe,aDt=nAe,a7=rAe,cDt=iAe,uDt=sAe,lDt=oAe,dDt=aAe,fDt=cAe,pDt=uAe,hDt=lAe,mDt=dAe,gDt=fAe,yDt=pAe,SDt=hAe,bDt=mAe,EDt=gAe,_Dt=yAe,TDt=SAe,vDt=bAe,RDt=EAe,ADt=_Ae,c7=TAe,wDt=vAe,kDt=RAe,IDt=AAe,xDt=wAe,ODt=kAe,PDt=IAe,NDt=xAe,CDt=OAe,MDt=PAe,DDt=NAe,LDt=CAe,UDt=MAe,u7=DAe,FDt=LAe,jDt=UAe,l7=FAe,d7=jAe,HDt=HAe,qDt=qAe,BDt=BAe,zDt=zAe,GDt=GAe,VDt=VAe,WDt=WAe,KDt=KAe,YDt=YAe,ZDt=ZAe,JDt=JAe,XDt=XAe,QDt=QAe,$Dt=$Ae,eLt=ewe,tLt=twe,nLt=nwe,_O=rwe,gR=iwe,f7=swe,rLt=owe,iLt=awe,yE=cwe,sLt=uwe,oLt=lwe,aLt=dwe,cLt=fwe,p7=pwe,h7=hwe,uLt=mwe,m7=gwe,lLt=ywe,dLt=Swe,fLt=bwe,pLt=Ewe,hLt=_we,mLt=Twe,gLt=vwe,yLt=Rwe,SLt=Awe,bLt=wwe,ELt=kwe,_Lt=Iwe,TLt=xwe,vLt=Owe,RLt=Pwe,ALt=Nwe,wLt=Cwe,kLt=Mwe,ILt=Dwe,xLt=Lwe,OLt=Uwe,PLt=Fwe,NLt=jwe,g7=Hwe,CLt=qwe,MLt=Bwe,DLt=zwe,LLt=Gwe,ULt=Vwe,FLt=Wwe,jLt=Kwe,HLt=Ywe,qLt=Zwe,BLt=Jwe,zLt=Xwe,GLt=Qwe,VLt=$we,WLt=eke,KLt=tke,YLt=nke,ZLt=rke,JLt=ike,XLt=ske,y7=oke,QLt=ake,S7=cke,$Lt=uke,e1t=lke,t1t=dke,n1t=fke,r1t=pke,i1t=hke,s1t=mke,o1t=gke,a1t=ws([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,fke,pke,hke,mke,gke]),yke="other_sql",Ske="mssql",bke="mysql",Eke="oracle",_ke="db2",Tke="postgresql",vke="redshift",Rke="hive",Ake="cloudscape",wke="hsqldb",kke="progress",Ike="maxdb",xke="hanadb",Oke="ingres",Pke="firstsql",Nke="edb",Cke="cache",Mke="adabas",Dke="firebird",Lke="derby",Uke="filemaker",Fke="informix",jke="instantdb",Hke="interbase",qke="mariadb",Bke="netezza",zke="pervasive",Gke="pointbase",Vke="sqlite",Wke="sybase",Kke="teradata",Yke="vertica",Zke="h2",Jke="coldfusion",Xke="cassandra",Qke="hbase",$ke="mongodb",eIe="redis",tIe="couchbase",nIe="couchdb",rIe="cosmosdb",iIe="dynamodb",sIe="neo4j",oIe="geode",aIe="elasticsearch",cIe="memcached",uIe="cockroachdb",c1t=yke,u1t=Ske,l1t=bke,d1t=Eke,f1t=_ke,p1t=Tke,h1t=vke,m1t=Rke,g1t=Ake,y1t=wke,S1t=kke,b1t=Ike,E1t=xke,_1t=Oke,T1t=Pke,v1t=Nke,R1t=Cke,A1t=Mke,w1t=Dke,k1t=Lke,I1t=Uke,x1t=Fke,O1t=jke,P1t=Hke,N1t=qke,C1t=Bke,M1t=zke,D1t=Gke,L1t=Vke,U1t=Wke,F1t=Kke,j1t=Yke,H1t=Zke,q1t=Jke,B1t=Xke,z1t=Qke,G1t=$ke,V1t=eIe,W1t=tIe,K1t=nIe,Y1t=rIe,Z1t=iIe,J1t=sIe,X1t=oIe,Q1t=aIe,$1t=cIe,eUt=uIe,tUt=ws([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,sIe,oIe,aIe,cIe,uIe]),lIe="all",dIe="each_quorum",fIe="quorum",pIe="local_quorum",hIe="one",mIe="two",gIe="three",yIe="local_one",SIe="any",bIe="serial",EIe="local_serial",nUt=lIe,rUt=dIe,iUt=fIe,sUt=pIe,oUt=hIe,aUt=mIe,cUt=gIe,uUt=yIe,lUt=SIe,dUt=bIe,fUt=EIe,pUt=ws([lIe,dIe,fIe,pIe,hIe,mIe,gIe,yIe,SIe,bIe,EIe]),_Ie="datasource",TIe="http",vIe="pubsub",RIe="timer",AIe="other",hUt=_Ie,mUt=TIe,gUt=vIe,yUt=RIe,SUt=AIe,bUt=ws([_Ie,TIe,vIe,RIe,AIe]),wIe="insert",kIe="edit",IIe="delete",EUt=wIe,_Ut=kIe,TUt=IIe,vUt=ws([wIe,kIe,IIe]),xIe="alibaba_cloud",OIe="aws",PIe="azure",NIe="gcp",RUt=xIe,AUt=OIe,wUt=PIe,kUt=NIe,IUt=ws([xIe,OIe,PIe,NIe]),CIe="ip_tcp",MIe="ip_udp",DIe="ip",LIe="unix",UIe="pipe",FIe="inproc",jIe="other",xUt=CIe,OUt=MIe,PUt=DIe,NUt=LIe,CUt=UIe,MUt=FIe,DUt=jIe,LUt=ws([CIe,MIe,DIe,LIe,UIe,FIe,jIe]),HIe="wifi",qIe="wired",BIe="cell",zIe="unavailable",GIe="unknown",UUt=HIe,FUt=qIe,jUt=BIe,HUt=zIe,qUt=GIe,BUt=ws([HIe,qIe,BIe,zIe,GIe]),VIe="gprs",WIe="edge",KIe="umts",YIe="cdma",ZIe="evdo_0",JIe="evdo_a",XIe="cdma2000_1xrtt",QIe="hsdpa",$Ie="hsupa",e0e="hspa",t0e="iden",n0e="evdo_b",r0e="lte",i0e="ehrpd",s0e="hspap",o0e="gsm",a0e="td_scdma",c0e="iwlan",u0e="nr",l0e="nrnsa",d0e="lte_ca",zUt=VIe,GUt=WIe,VUt=KIe,WUt=YIe,KUt=ZIe,YUt=JIe,ZUt=XIe,JUt=QIe,XUt=$Ie,QUt=e0e,$Ut=t0e,eFt=n0e,tFt=r0e,nFt=i0e,rFt=s0e,iFt=o0e,sFt=a0e,oFt=c0e,aFt=u0e,cFt=l0e,uFt=d0e,lFt=ws([VIe,WIe,KIe,YIe,ZIe,JIe,XIe,QIe,$Ie,e0e,t0e,n0e,r0e,i0e,s0e,o0e,a0e,c0e,u0e,l0e,d0e]),f0e="1.0",p0e="1.1",h0e="2.0",m0e="SPDY",g0e="QUIC",dFt=f0e,fFt=p0e,pFt=h0e,hFt=m0e,mFt=g0e,gFt={HTTP_1_0:f0e,HTTP_1_1:p0e,HTTP_2_0:h0e,SPDY:m0e,QUIC:g0e},y0e="queue",S0e="topic",yFt=y0e,SFt=S0e,bFt=ws([y0e,S0e]),b0e="receive",E0e="process",EFt=b0e,_Ft=E0e,TFt=ws([b0e,E0e]),_0e=0,T0e=1,v0e=2,R0e=3,A0e=4,w0e=5,k0e=6,I0e=7,x0e=8,O0e=9,P0e=10,N0e=11,C0e=12,M0e=13,D0e=14,L0e=15,U0e=16,vFt=_0e,RFt=T0e,AFt=v0e,wFt=R0e,kFt=A0e,IFt=w0e,xFt=k0e,OFt=I0e,PFt=x0e,NFt=O0e,CFt=P0e,MFt=N0e,DFt=C0e,LFt=M0e,UFt=D0e,FFt=L0e,jFt=U0e,HFt={OK:_0e,CANCELLED:T0e,UNKNOWN:v0e,INVALID_ARGUMENT:R0e,DEADLINE_EXCEEDED:A0e,NOT_FOUND:w0e,ALREADY_EXISTS:k0e,PERMISSION_DENIED:I0e,RESOURCE_EXHAUSTED:x0e,FAILED_PRECONDITION:O0e,ABORTED:P0e,OUT_OF_RANGE:N0e,UNIMPLEMENTED:C0e,INTERNAL:M0e,UNAVAILABLE:D0e,DATA_LOSS:L0e,UNAUTHENTICATED:U0e},F0e="SENT",j0e="RECEIVED",qFt=F0e,BFt=j0e,zFt=ws([F0e,j0e])});var q0e=v(()=>{H0e()});var 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,lOe,dOe,fOe,pOe,hOe,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,$jt,eHt,tHt,nHt,rHt,iHt,sHt,oHt,b7,aHt,cHt,uHt,lHt,dHt,fHt,pHt,hHt,mHt,gHt,mOe,gOe,yOe,SOe,yHt,SHt,bHt,EHt,_Ht,bOe,EOe,_Oe,TOe,vOe,ROe,AOe,wOe,kOe,IOe,xOe,OOe,POe,NOe,COe,MOe,DOe,THt,vHt,RHt,AHt,wHt,kHt,IHt,xHt,OHt,PHt,NHt,CHt,MHt,DHt,LHt,UHt,FHt,jHt,LOe,UOe,HHt,qHt,BHt,FOe,jOe,HOe,qOe,BOe,zOe,GOe,zHt,GHt,VHt,WHt,KHt,YHt,ZHt,JHt,VOe,WOe,KOe,YOe,ZOe,JOe,XOe,QOe,$Oe,ePe,tPe,XHt,QHt,$Ht,eqt,tqt,nqt,rqt,iqt,sqt,oqt,aqt,cqt,nPe,rPe,iPe,sPe,oPe,aPe,cPe,uPe,lPe,dPe,uqt,lqt,dqt,fqt,pqt,hqt,mqt,gqt,yqt,Sqt,bqt,fPe=v(()=>{s7();B0e="cloud.provider",z0e="cloud.account.id",G0e="cloud.region",V0e="cloud.availability_zone",W0e="cloud.platform",K0e="aws.ecs.container.arn",Y0e="aws.ecs.cluster.arn",Z0e="aws.ecs.launchtype",J0e="aws.ecs.task.arn",X0e="aws.ecs.task.family",Q0e="aws.ecs.task.revision",$0e="aws.eks.cluster.arn",exe="aws.log.group.names",txe="aws.log.group.arns",nxe="aws.log.stream.names",rxe="aws.log.stream.arns",ixe="container.name",sxe="container.id",oxe="container.runtime",axe="container.image.name",cxe="container.image.tag",uxe="deployment.environment",lxe="device.id",dxe="device.model.identifier",fxe="device.model.name",pxe="faas.name",hxe="faas.id",mxe="faas.version",gxe="faas.instance",yxe="faas.max_memory",Sxe="host.id",bxe="host.name",Exe="host.type",_xe="host.arch",Txe="host.image.name",vxe="host.image.id",Rxe="host.image.version",Axe="k8s.cluster.name",wxe="k8s.node.name",kxe="k8s.node.uid",Ixe="k8s.namespace.name",xxe="k8s.pod.uid",Oxe="k8s.pod.name",Pxe="k8s.container.name",Nxe="k8s.replicaset.uid",Cxe="k8s.replicaset.name",Mxe="k8s.deployment.uid",Dxe="k8s.deployment.name",Lxe="k8s.statefulset.uid",Uxe="k8s.statefulset.name",Fxe="k8s.daemonset.uid",jxe="k8s.daemonset.name",Hxe="k8s.job.uid",qxe="k8s.job.name",Bxe="k8s.cronjob.uid",zxe="k8s.cronjob.name",Gxe="os.type",Vxe="os.description",Wxe="os.name",Kxe="os.version",Yxe="process.pid",Zxe="process.executable.name",Jxe="process.executable.path",Xxe="process.command",Qxe="process.command_line",$xe="process.command_args",eOe="process.owner",tOe="process.runtime.name",nOe="process.runtime.version",rOe="process.runtime.description",iOe="service.name",sOe="service.namespace",oOe="service.instance.id",aOe="service.version",cOe="telemetry.sdk.name",uOe="telemetry.sdk.language",lOe="telemetry.sdk.version",dOe="telemetry.auto.version",fOe="webengine.name",pOe="webengine.version",hOe="webengine.description",GFt=B0e,VFt=z0e,WFt=G0e,KFt=V0e,YFt=W0e,ZFt=K0e,JFt=Y0e,XFt=Z0e,QFt=J0e,$Ft=X0e,ejt=Q0e,tjt=$0e,njt=exe,rjt=txe,ijt=nxe,sjt=rxe,ojt=ixe,ajt=sxe,cjt=oxe,ujt=axe,ljt=cxe,djt=uxe,fjt=lxe,pjt=dxe,hjt=fxe,mjt=pxe,gjt=hxe,yjt=mxe,Sjt=gxe,bjt=yxe,Ejt=Sxe,_jt=bxe,Tjt=Exe,vjt=_xe,Rjt=Txe,Ajt=vxe,wjt=Rxe,kjt=Axe,Ijt=wxe,xjt=kxe,Ojt=Ixe,Pjt=xxe,Njt=Oxe,Cjt=Pxe,Mjt=Nxe,Djt=Cxe,Ljt=Mxe,Ujt=Dxe,Fjt=Lxe,jjt=Uxe,Hjt=Fxe,qjt=jxe,Bjt=Hxe,zjt=qxe,Gjt=Bxe,Vjt=zxe,Wjt=Gxe,Kjt=Vxe,Yjt=Wxe,Zjt=Kxe,Jjt=Yxe,Xjt=Zxe,Qjt=Jxe,$jt=Xxe,eHt=Qxe,tHt=$xe,nHt=eOe,rHt=tOe,iHt=nOe,sHt=rOe,oHt=iOe,b7=sOe,aHt=oOe,cHt=aOe,uHt=cOe,lHt=uOe,dHt=lOe,fHt=dOe,pHt=fOe,hHt=pOe,mHt=hOe,gHt=ws([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,lOe,dOe,fOe,pOe,hOe]),mOe="alibaba_cloud",gOe="aws",yOe="azure",SOe="gcp",yHt=mOe,SHt=gOe,bHt=yOe,EHt=SOe,_Ht=ws([mOe,gOe,yOe,SOe]),bOe="alibaba_cloud_ecs",EOe="alibaba_cloud_fc",_Oe="aws_ec2",TOe="aws_ecs",vOe="aws_eks",ROe="aws_lambda",AOe="aws_elastic_beanstalk",wOe="azure_vm",kOe="azure_container_instances",IOe="azure_aks",xOe="azure_functions",OOe="azure_app_service",POe="gcp_compute_engine",NOe="gcp_cloud_run",COe="gcp_kubernetes_engine",MOe="gcp_cloud_functions",DOe="gcp_app_engine",THt=bOe,vHt=EOe,RHt=_Oe,AHt=TOe,wHt=vOe,kHt=ROe,IHt=AOe,xHt=wOe,OHt=kOe,PHt=IOe,NHt=xOe,CHt=OOe,MHt=POe,DHt=NOe,LHt=COe,UHt=MOe,FHt=DOe,jHt=ws([bOe,EOe,_Oe,TOe,vOe,ROe,AOe,wOe,kOe,IOe,xOe,OOe,POe,NOe,COe,MOe,DOe]),LOe="ec2",UOe="fargate",HHt=LOe,qHt=UOe,BHt=ws([LOe,UOe]),FOe="amd64",jOe="arm32",HOe="arm64",qOe="ia64",BOe="ppc32",zOe="ppc64",GOe="x86",zHt=FOe,GHt=jOe,VHt=HOe,WHt=qOe,KHt=BOe,YHt=zOe,ZHt=GOe,JHt=ws([FOe,jOe,HOe,qOe,BOe,zOe,GOe]),VOe="windows",WOe="linux",KOe="darwin",YOe="freebsd",ZOe="netbsd",JOe="openbsd",XOe="dragonflybsd",QOe="hpux",$Oe="aix",ePe="solaris",tPe="z_os",XHt=VOe,QHt=WOe,$Ht=KOe,eqt=YOe,tqt=ZOe,nqt=JOe,rqt=XOe,iqt=QOe,sqt=$Oe,oqt=ePe,aqt=tPe,cqt=ws([VOe,WOe,KOe,YOe,ZOe,JOe,XOe,QOe,$Oe,ePe,tPe]),nPe="cpp",rPe="dotnet",iPe="erlang",sPe="go",oPe="java",aPe="nodejs",cPe="php",uPe="python",lPe="ruby",dPe="webjs",uqt=nPe,lqt=rPe,dqt=iPe,fqt=sPe,pqt=oPe,hqt=aPe,mqt=cPe,gqt=uPe,yqt=lPe,Sqt=dPe,bqt=ws([nPe,rPe,iPe,sPe,oPe,aPe,cPe,uPe,lPe,dPe])});var pPe=v(()=>{fPe()});var Eqt,_qt,Tqt,vqt,Rqt,Aqt,wqt,kqt,Iqt,xqt,Oqt,Pqt,Nqt,Cqt,Mqt,Dqt,Lqt,Uqt,Fqt,jqt,Hqt,qqt,Bqt,zqt,Gqt,E7,_7,Vqt,yR,Wqt,T7,v7,Kqt,SE,Yqt,Zqt,Jqt,Xqt,Qqt,$qt,eBt,tBt,Wyr,Kyr,R7,nBt,rBt,iBt,sBt,oBt,aBt,bE,cBt,uBt,lBt,Yyr,dBt,fBt,pBt,hBt,Zyr,mBt,gBt,yBt,SBt,lm,dm,bBt,EBt,_Bt,TBt,vBt,RBt,ABt,wBt,kBt,Jyr,IBt,xBt,OBt,PBt,NBt,CBt,A7,w7,MBt,k7,I7,DBt,LBt,Xyr,Qyr,UBt,FBt,jBt,HBt,qBt,BBt,zBt,GBt,$yr,VBt,x7,O7,WBt,P7,KBt,N7,YBt,ZBt,JBt,XBt,QBt,$Bt,ezt,tzt,nzt,eSr,rzt,izt,tSr,szt,ozt,nSr,azt,czt,uzt,lzt,dzt,fzt,pzt,hzt,py,mzt,gzt,yzt,C7,hPe=v(()=>{Eqt="aspnetcore.diagnostics.exception.result",_qt="aborted",Tqt="handled",vqt="skipped",Rqt="unhandled",Aqt="aspnetcore.diagnostics.handler.type",wqt="aspnetcore.rate_limiting.policy",kqt="aspnetcore.rate_limiting.result",Iqt="acquired",xqt="endpoint_limiter",Oqt="global_limiter",Pqt="request_canceled",Nqt="aspnetcore.request.is_unhandled",Cqt="aspnetcore.routing.is_fallback",Mqt="aspnetcore.routing.match_status",Dqt="failure",Lqt="success",Uqt="aspnetcore.user.is_authenticated",Fqt="client.address",jqt="client.port",Hqt="code.column.number",qqt="code.file.path",Bqt="code.function.name",zqt="code.line.number",Gqt="code.stacktrace",E7="db.collection.name",_7="db.namespace",Vqt="db.operation.batch.size",yR="db.operation.name",Wqt="db.query.summary",T7="db.query.text",v7="db.response.status_code",Kqt="db.stored_procedure.name",SE="db.system.name",Yqt="mariadb",Zqt="microsoft.sql_server",Jqt="mysql",Xqt="postgresql",Qqt="dotnet.gc.heap.generation",$qt="gen0",eBt="gen1",tBt="gen2",Wyr="loh",Kyr="poh",R7="error.type",nBt="_OTHER",rBt="exception.escaped",iBt="exception.message",sBt="exception.stacktrace",oBt="exception.type",aBt=e=>`http.request.header.${e}`,bE="http.request.method",cBt="_OTHER",uBt="CONNECT",lBt="DELETE",Yyr="GET",dBt="HEAD",fBt="OPTIONS",pBt="PATCH",hBt="POST",Zyr="PUT",mBt="TRACE",gBt="http.request.method_original",yBt="http.request.resend_count",SBt=e=>`http.response.header.${e}`,lm="http.response.status_code",dm="http.route",bBt="jvm.gc.action",EBt="jvm.gc.name",_Bt="jvm.memory.pool.name",TBt="jvm.memory.type",vBt="heap",RBt="non_heap",ABt="jvm.thread.daemon",wBt="jvm.thread.state",kBt="blocked",Jyr="new",IBt="runnable",xBt="terminated",OBt="timed_waiting",PBt="waiting",NBt="network.local.address",CBt="network.local.port",A7="network.peer.address",w7="network.peer.port",MBt="network.protocol.name",k7="network.protocol.version",I7="network.transport",DBt="pipe",LBt="quic",Xyr="tcp",Qyr="udp",UBt="unix",FBt="network.type",jBt="ipv4",HBt="ipv6",qBt="otel.scope.name",BBt="otel.scope.version",zBt="otel.status_code",GBt="ERROR",$yr="OK",VBt="otel.status_description",x7="server.address",O7="server.port",WBt="service.instance.id",P7="service.name",KBt="service.namespace",N7="service.version",YBt="signalr.connection.status",ZBt="app_shutdown",JBt="normal_closure",XBt="timeout",QBt="signalr.transport",$Bt="long_polling",ezt="server_sent_events",tzt="web_sockets",nzt="telemetry.sdk.language",eSr="cpp",rzt="dotnet",izt="erlang",tSr="go",szt="java",ozt="nodejs",nSr="php",azt="python",czt="ruby",uzt="rust",lzt="swift",dzt="webjs",fzt="telemetry.sdk.name",pzt="telemetry.sdk.version",hzt="url.fragment",py="url.full",mzt="url.path",gzt="url.query",yzt="url.scheme",C7="user_agent.original"});var 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,aGt,cGt,uGt,lGt,dGt,fGt,pGt,hGt,mPe=v(()=>{Szt="aspnetcore.diagnostics.exceptions",bzt="aspnetcore.rate_limiting.active_request_leases",Ezt="aspnetcore.rate_limiting.queued_requests",_zt="aspnetcore.rate_limiting.request.time_in_queue",Tzt="aspnetcore.rate_limiting.request_lease.duration",vzt="aspnetcore.rate_limiting.requests",Rzt="aspnetcore.routing.match_attempts",Azt="db.client.operation.duration",wzt="dotnet.assembly.count",kzt="dotnet.exceptions",Izt="dotnet.gc.collections",xzt="dotnet.gc.heap.total_allocated",Ozt="dotnet.gc.last_collection.heap.fragmentation.size",Pzt="dotnet.gc.last_collection.heap.size",Nzt="dotnet.gc.last_collection.memory.committed_size",Czt="dotnet.gc.pause.time",Mzt="dotnet.jit.compilation.time",Dzt="dotnet.jit.compiled_il.size",Lzt="dotnet.jit.compiled_methods",Uzt="dotnet.monitor.lock_contentions",Fzt="dotnet.process.cpu.count",jzt="dotnet.process.cpu.time",Hzt="dotnet.process.memory.working_set",qzt="dotnet.thread_pool.queue.length",Bzt="dotnet.thread_pool.thread.count",zzt="dotnet.thread_pool.work_item.count",Gzt="dotnet.timer.count",Vzt="http.client.request.duration",Wzt="http.server.request.duration",Kzt="jvm.class.count",Yzt="jvm.class.loaded",Zzt="jvm.class.unloaded",Jzt="jvm.cpu.count",Xzt="jvm.cpu.recent_utilization",Qzt="jvm.cpu.time",$zt="jvm.gc.duration",eGt="jvm.memory.committed",tGt="jvm.memory.limit",nGt="jvm.memory.used",rGt="jvm.memory.used_after_last_gc",iGt="jvm.thread.count",sGt="kestrel.active_connections",oGt="kestrel.active_tls_handshakes",aGt="kestrel.connection.duration",cGt="kestrel.queued_connections",uGt="kestrel.queued_requests",lGt="kestrel.rejected_connections",dGt="kestrel.tls_handshake.duration",fGt="kestrel.upgraded_connections",pGt="signalr.server.active_connections",hGt="signalr.server.connection.duration"});var mGt,gPe=v(()=>{mGt="exception"});var Mr={};Ar(Mr,{ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED:()=>_qt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED:()=>Tqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED:()=>vqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED:()=>Rqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED:()=>Iqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER:()=>xqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER:()=>Oqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED:()=>Pqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE:()=>Dqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS:()=>Lqt,ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT:()=>Eqt,ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE:()=>Aqt,ATTR_ASPNETCORE_RATE_LIMITING_POLICY:()=>wqt,ATTR_ASPNETCORE_RATE_LIMITING_RESULT:()=>kqt,ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED:()=>Nqt,ATTR_ASPNETCORE_ROUTING_IS_FALLBACK:()=>Cqt,ATTR_ASPNETCORE_ROUTING_MATCH_STATUS:()=>Mqt,ATTR_ASPNETCORE_USER_IS_AUTHENTICATED:()=>Uqt,ATTR_CLIENT_ADDRESS:()=>Fqt,ATTR_CLIENT_PORT:()=>jqt,ATTR_CODE_COLUMN_NUMBER:()=>Hqt,ATTR_CODE_FILE_PATH:()=>qqt,ATTR_CODE_FUNCTION_NAME:()=>Bqt,ATTR_CODE_LINE_NUMBER:()=>zqt,ATTR_CODE_STACKTRACE:()=>Gqt,ATTR_DB_COLLECTION_NAME:()=>E7,ATTR_DB_NAMESPACE:()=>_7,ATTR_DB_OPERATION_BATCH_SIZE:()=>Vqt,ATTR_DB_OPERATION_NAME:()=>yR,ATTR_DB_QUERY_SUMMARY:()=>Wqt,ATTR_DB_QUERY_TEXT:()=>T7,ATTR_DB_RESPONSE_STATUS_CODE:()=>v7,ATTR_DB_STORED_PROCEDURE_NAME:()=>Kqt,ATTR_DB_SYSTEM_NAME:()=>SE,ATTR_DOTNET_GC_HEAP_GENERATION:()=>Qqt,ATTR_ERROR_TYPE:()=>R7,ATTR_EXCEPTION_ESCAPED:()=>rBt,ATTR_EXCEPTION_MESSAGE:()=>iBt,ATTR_EXCEPTION_STACKTRACE:()=>sBt,ATTR_EXCEPTION_TYPE:()=>oBt,ATTR_HTTP_REQUEST_HEADER:()=>aBt,ATTR_HTTP_REQUEST_METHOD:()=>bE,ATTR_HTTP_REQUEST_METHOD_ORIGINAL:()=>gBt,ATTR_HTTP_REQUEST_RESEND_COUNT:()=>yBt,ATTR_HTTP_RESPONSE_HEADER:()=>SBt,ATTR_HTTP_RESPONSE_STATUS_CODE:()=>lm,ATTR_HTTP_ROUTE:()=>dm,ATTR_JVM_GC_ACTION:()=>bBt,ATTR_JVM_GC_NAME:()=>EBt,ATTR_JVM_MEMORY_POOL_NAME:()=>_Bt,ATTR_JVM_MEMORY_TYPE:()=>TBt,ATTR_JVM_THREAD_DAEMON:()=>ABt,ATTR_JVM_THREAD_STATE:()=>wBt,ATTR_NETWORK_LOCAL_ADDRESS:()=>NBt,ATTR_NETWORK_LOCAL_PORT:()=>CBt,ATTR_NETWORK_PEER_ADDRESS:()=>A7,ATTR_NETWORK_PEER_PORT:()=>w7,ATTR_NETWORK_PROTOCOL_NAME:()=>MBt,ATTR_NETWORK_PROTOCOL_VERSION:()=>k7,ATTR_NETWORK_TRANSPORT:()=>I7,ATTR_NETWORK_TYPE:()=>FBt,ATTR_OTEL_SCOPE_NAME:()=>qBt,ATTR_OTEL_SCOPE_VERSION:()=>BBt,ATTR_OTEL_STATUS_CODE:()=>zBt,ATTR_OTEL_STATUS_DESCRIPTION:()=>VBt,ATTR_SERVER_ADDRESS:()=>x7,ATTR_SERVER_PORT:()=>O7,ATTR_SERVICE_INSTANCE_ID:()=>WBt,ATTR_SERVICE_NAME:()=>P7,ATTR_SERVICE_NAMESPACE:()=>KBt,ATTR_SERVICE_VERSION:()=>N7,ATTR_SIGNALR_CONNECTION_STATUS:()=>YBt,ATTR_SIGNALR_TRANSPORT:()=>QBt,ATTR_TELEMETRY_SDK_LANGUAGE:()=>nzt,ATTR_TELEMETRY_SDK_NAME:()=>fzt,ATTR_TELEMETRY_SDK_VERSION:()=>pzt,ATTR_URL_FRAGMENT:()=>hzt,ATTR_URL_FULL:()=>py,ATTR_URL_PATH:()=>mzt,ATTR_URL_QUERY:()=>gzt,ATTR_URL_SCHEME:()=>yzt,ATTR_USER_AGENT_ORIGINAL:()=>C7,AWSECSLAUNCHTYPEVALUES_EC2:()=>HHt,AWSECSLAUNCHTYPEVALUES_FARGATE:()=>qHt,AwsEcsLaunchtypeValues:()=>BHt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS:()=>THt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC:()=>vHt,CLOUDPLATFORMVALUES_AWS_EC2:()=>RHt,CLOUDPLATFORMVALUES_AWS_ECS:()=>AHt,CLOUDPLATFORMVALUES_AWS_EKS:()=>wHt,CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK:()=>IHt,CLOUDPLATFORMVALUES_AWS_LAMBDA:()=>kHt,CLOUDPLATFORMVALUES_AZURE_AKS:()=>PHt,CLOUDPLATFORMVALUES_AZURE_APP_SERVICE:()=>CHt,CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES:()=>OHt,CLOUDPLATFORMVALUES_AZURE_FUNCTIONS:()=>NHt,CLOUDPLATFORMVALUES_AZURE_VM:()=>xHt,CLOUDPLATFORMVALUES_GCP_APP_ENGINE:()=>FHt,CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS:()=>UHt,CLOUDPLATFORMVALUES_GCP_CLOUD_RUN:()=>DHt,CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE:()=>MHt,CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE:()=>LHt,CLOUDPROVIDERVALUES_ALIBABA_CLOUD:()=>yHt,CLOUDPROVIDERVALUES_AWS:()=>SHt,CLOUDPROVIDERVALUES_AZURE:()=>bHt,CLOUDPROVIDERVALUES_GCP:()=>EHt,CloudPlatformValues:()=>jHt,CloudProviderValues:()=>_Ht,DBCASSANDRACONSISTENCYLEVELVALUES_ALL:()=>nUt,DBCASSANDRACONSISTENCYLEVELVALUES_ANY:()=>lUt,DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM:()=>rUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE:()=>uUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM:()=>sUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL:()=>fUt,DBCASSANDRACONSISTENCYLEVELVALUES_ONE:()=>oUt,DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM:()=>iUt,DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL:()=>dUt,DBCASSANDRACONSISTENCYLEVELVALUES_THREE:()=>cUt,DBCASSANDRACONSISTENCYLEVELVALUES_TWO:()=>aUt,DBSYSTEMVALUES_ADABAS:()=>A1t,DBSYSTEMVALUES_CACHE:()=>R1t,DBSYSTEMVALUES_CASSANDRA:()=>B1t,DBSYSTEMVALUES_CLOUDSCAPE:()=>g1t,DBSYSTEMVALUES_COCKROACHDB:()=>eUt,DBSYSTEMVALUES_COLDFUSION:()=>q1t,DBSYSTEMVALUES_COSMOSDB:()=>Y1t,DBSYSTEMVALUES_COUCHBASE:()=>W1t,DBSYSTEMVALUES_COUCHDB:()=>K1t,DBSYSTEMVALUES_DB2:()=>f1t,DBSYSTEMVALUES_DERBY:()=>k1t,DBSYSTEMVALUES_DYNAMODB:()=>Z1t,DBSYSTEMVALUES_EDB:()=>v1t,DBSYSTEMVALUES_ELASTICSEARCH:()=>Q1t,DBSYSTEMVALUES_FILEMAKER:()=>I1t,DBSYSTEMVALUES_FIREBIRD:()=>w1t,DBSYSTEMVALUES_FIRSTSQL:()=>T1t,DBSYSTEMVALUES_GEODE:()=>X1t,DBSYSTEMVALUES_H2:()=>H1t,DBSYSTEMVALUES_HANADB:()=>E1t,DBSYSTEMVALUES_HBASE:()=>z1t,DBSYSTEMVALUES_HIVE:()=>m1t,DBSYSTEMVALUES_HSQLDB:()=>y1t,DBSYSTEMVALUES_INFORMIX:()=>x1t,DBSYSTEMVALUES_INGRES:()=>_1t,DBSYSTEMVALUES_INSTANTDB:()=>O1t,DBSYSTEMVALUES_INTERBASE:()=>P1t,DBSYSTEMVALUES_MARIADB:()=>N1t,DBSYSTEMVALUES_MAXDB:()=>b1t,DBSYSTEMVALUES_MEMCACHED:()=>$1t,DBSYSTEMVALUES_MONGODB:()=>G1t,DBSYSTEMVALUES_MSSQL:()=>u1t,DBSYSTEMVALUES_MYSQL:()=>l1t,DBSYSTEMVALUES_NEO4J:()=>J1t,DBSYSTEMVALUES_NETEZZA:()=>C1t,DBSYSTEMVALUES_ORACLE:()=>d1t,DBSYSTEMVALUES_OTHER_SQL:()=>c1t,DBSYSTEMVALUES_PERVASIVE:()=>M1t,DBSYSTEMVALUES_POINTBASE:()=>D1t,DBSYSTEMVALUES_POSTGRESQL:()=>p1t,DBSYSTEMVALUES_PROGRESS:()=>S1t,DBSYSTEMVALUES_REDIS:()=>V1t,DBSYSTEMVALUES_REDSHIFT:()=>h1t,DBSYSTEMVALUES_SQLITE:()=>L1t,DBSYSTEMVALUES_SYBASE:()=>U1t,DBSYSTEMVALUES_TERADATA:()=>F1t,DBSYSTEMVALUES_VERTICA:()=>j1t,DB_SYSTEM_NAME_VALUE_MARIADB:()=>Yqt,DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER:()=>Zqt,DB_SYSTEM_NAME_VALUE_MYSQL:()=>Jqt,DB_SYSTEM_NAME_VALUE_POSTGRESQL:()=>Xqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN0:()=>$qt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN1:()=>eBt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN2:()=>tBt,DOTNET_GC_HEAP_GENERATION_VALUE_LOH:()=>Wyr,DOTNET_GC_HEAP_GENERATION_VALUE_POH:()=>Kyr,DbCassandraConsistencyLevelValues:()=>pUt,DbSystemValues:()=>tUt,ERROR_TYPE_VALUE_OTHER:()=>nBt,EVENT_EXCEPTION:()=>mGt,FAASDOCUMENTOPERATIONVALUES_DELETE:()=>TUt,FAASDOCUMENTOPERATIONVALUES_EDIT:()=>_Ut,FAASDOCUMENTOPERATIONVALUES_INSERT:()=>EUt,FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD:()=>RUt,FAASINVOKEDPROVIDERVALUES_AWS:()=>AUt,FAASINVOKEDPROVIDERVALUES_AZURE:()=>wUt,FAASINVOKEDPROVIDERVALUES_GCP:()=>kUt,FAASTRIGGERVALUES_DATASOURCE:()=>hUt,FAASTRIGGERVALUES_HTTP:()=>mUt,FAASTRIGGERVALUES_OTHER:()=>SUt,FAASTRIGGERVALUES_PUBSUB:()=>gUt,FAASTRIGGERVALUES_TIMER:()=>yUt,FaasDocumentOperationValues:()=>vUt,FaasInvokedProviderValues:()=>IUt,FaasTriggerValues:()=>bUt,HOSTARCHVALUES_AMD64:()=>zHt,HOSTARCHVALUES_ARM32:()=>GHt,HOSTARCHVALUES_ARM64:()=>VHt,HOSTARCHVALUES_IA64:()=>WHt,HOSTARCHVALUES_PPC32:()=>KHt,HOSTARCHVALUES_PPC64:()=>YHt,HOSTARCHVALUES_X86:()=>ZHt,HTTPFLAVORVALUES_HTTP_1_0:()=>dFt,HTTPFLAVORVALUES_HTTP_1_1:()=>fFt,HTTPFLAVORVALUES_HTTP_2_0:()=>pFt,HTTPFLAVORVALUES_QUIC:()=>mFt,HTTPFLAVORVALUES_SPDY:()=>hFt,HTTP_REQUEST_METHOD_VALUE_CONNECT:()=>uBt,HTTP_REQUEST_METHOD_VALUE_DELETE:()=>lBt,HTTP_REQUEST_METHOD_VALUE_GET:()=>Yyr,HTTP_REQUEST_METHOD_VALUE_HEAD:()=>dBt,HTTP_REQUEST_METHOD_VALUE_OPTIONS:()=>fBt,HTTP_REQUEST_METHOD_VALUE_OTHER:()=>cBt,HTTP_REQUEST_METHOD_VALUE_PATCH:()=>pBt,HTTP_REQUEST_METHOD_VALUE_POST:()=>hBt,HTTP_REQUEST_METHOD_VALUE_PUT:()=>Zyr,HTTP_REQUEST_METHOD_VALUE_TRACE:()=>mBt,HostArchValues:()=>JHt,HttpFlavorValues:()=>gFt,JVM_MEMORY_TYPE_VALUE_HEAP:()=>vBt,JVM_MEMORY_TYPE_VALUE_NON_HEAP:()=>RBt,JVM_THREAD_STATE_VALUE_BLOCKED:()=>kBt,JVM_THREAD_STATE_VALUE_NEW:()=>Jyr,JVM_THREAD_STATE_VALUE_RUNNABLE:()=>IBt,JVM_THREAD_STATE_VALUE_TERMINATED:()=>xBt,JVM_THREAD_STATE_VALUE_TIMED_WAITING:()=>OBt,JVM_THREAD_STATE_VALUE_WAITING:()=>PBt,MESSAGETYPEVALUES_RECEIVED:()=>BFt,MESSAGETYPEVALUES_SENT:()=>qFt,MESSAGINGDESTINATIONKINDVALUES_QUEUE:()=>yFt,MESSAGINGDESTINATIONKINDVALUES_TOPIC:()=>SFt,MESSAGINGOPERATIONVALUES_PROCESS:()=>_Ft,MESSAGINGOPERATIONVALUES_RECEIVE:()=>EFt,METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS:()=>Szt,METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES:()=>bzt,METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS:()=>Ezt,METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS:()=>vzt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION:()=>Tzt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE:()=>_zt,METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS:()=>Rzt,METRIC_DB_CLIENT_OPERATION_DURATION:()=>Azt,METRIC_DOTNET_ASSEMBLY_COUNT:()=>wzt,METRIC_DOTNET_EXCEPTIONS:()=>kzt,METRIC_DOTNET_GC_COLLECTIONS:()=>Izt,METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED:()=>xzt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE:()=>Ozt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE:()=>Pzt,METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE:()=>Nzt,METRIC_DOTNET_GC_PAUSE_TIME:()=>Czt,METRIC_DOTNET_JIT_COMPILATION_TIME:()=>Mzt,METRIC_DOTNET_JIT_COMPILED_IL_SIZE:()=>Dzt,METRIC_DOTNET_JIT_COMPILED_METHODS:()=>Lzt,METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS:()=>Uzt,METRIC_DOTNET_PROCESS_CPU_COUNT:()=>Fzt,METRIC_DOTNET_PROCESS_CPU_TIME:()=>jzt,METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET:()=>Hzt,METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH:()=>qzt,METRIC_DOTNET_THREAD_POOL_THREAD_COUNT:()=>Bzt,METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT:()=>zzt,METRIC_DOTNET_TIMER_COUNT:()=>Gzt,METRIC_HTTP_CLIENT_REQUEST_DURATION:()=>Vzt,METRIC_HTTP_SERVER_REQUEST_DURATION:()=>Wzt,METRIC_JVM_CLASS_COUNT:()=>Kzt,METRIC_JVM_CLASS_LOADED:()=>Yzt,METRIC_JVM_CLASS_UNLOADED:()=>Zzt,METRIC_JVM_CPU_COUNT:()=>Jzt,METRIC_JVM_CPU_RECENT_UTILIZATION:()=>Xzt,METRIC_JVM_CPU_TIME:()=>Qzt,METRIC_JVM_GC_DURATION:()=>$zt,METRIC_JVM_MEMORY_COMMITTED:()=>eGt,METRIC_JVM_MEMORY_LIMIT:()=>tGt,METRIC_JVM_MEMORY_USED:()=>nGt,METRIC_JVM_MEMORY_USED_AFTER_LAST_GC:()=>rGt,METRIC_JVM_THREAD_COUNT:()=>iGt,METRIC_KESTREL_ACTIVE_CONNECTIONS:()=>sGt,METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES:()=>oGt,METRIC_KESTREL_CONNECTION_DURATION:()=>aGt,METRIC_KESTREL_QUEUED_CONNECTIONS:()=>cGt,METRIC_KESTREL_QUEUED_REQUESTS:()=>uGt,METRIC_KESTREL_REJECTED_CONNECTIONS:()=>lGt,METRIC_KESTREL_TLS_HANDSHAKE_DURATION:()=>dGt,METRIC_KESTREL_UPGRADED_CONNECTIONS:()=>fGt,METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS:()=>pGt,METRIC_SIGNALR_SERVER_CONNECTION_DURATION:()=>hGt,MessageTypeValues:()=>zFt,MessagingDestinationKindValues:()=>bFt,MessagingOperationValues:()=>TFt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA:()=>WUt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT:()=>ZUt,NETHOSTCONNECTIONSUBTYPEVALUES_EDGE:()=>GUt,NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD:()=>nFt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0:()=>KUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A:()=>YUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B:()=>eFt,NETHOSTCONNECTIONSUBTYPEVALUES_GPRS:()=>zUt,NETHOSTCONNECTIONSUBTYPEVALUES_GSM:()=>iFt,NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA:()=>JUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPA:()=>QUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP:()=>rFt,NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA:()=>XUt,NETHOSTCONNECTIONSUBTYPEVALUES_IDEN:()=>$Ut,NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN:()=>oFt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE:()=>tFt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA:()=>uFt,NETHOSTCONNECTIONSUBTYPEVALUES_NR:()=>aFt,NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA:()=>cFt,NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA:()=>sFt,NETHOSTCONNECTIONSUBTYPEVALUES_UMTS:()=>VUt,NETHOSTCONNECTIONTYPEVALUES_CELL:()=>jUt,NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE:()=>HUt,NETHOSTCONNECTIONTYPEVALUES_UNKNOWN:()=>qUt,NETHOSTCONNECTIONTYPEVALUES_WIFI:()=>UUt,NETHOSTCONNECTIONTYPEVALUES_WIRED:()=>FUt,NETTRANSPORTVALUES_INPROC:()=>MUt,NETTRANSPORTVALUES_IP:()=>PUt,NETTRANSPORTVALUES_IP_TCP:()=>xUt,NETTRANSPORTVALUES_IP_UDP:()=>OUt,NETTRANSPORTVALUES_OTHER:()=>DUt,NETTRANSPORTVALUES_PIPE:()=>CUt,NETTRANSPORTVALUES_UNIX:()=>NUt,NETWORK_TRANSPORT_VALUE_PIPE:()=>DBt,NETWORK_TRANSPORT_VALUE_QUIC:()=>LBt,NETWORK_TRANSPORT_VALUE_TCP:()=>Xyr,NETWORK_TRANSPORT_VALUE_UDP:()=>Qyr,NETWORK_TRANSPORT_VALUE_UNIX:()=>UBt,NETWORK_TYPE_VALUE_IPV4:()=>jBt,NETWORK_TYPE_VALUE_IPV6:()=>HBt,NetHostConnectionSubtypeValues:()=>lFt,NetHostConnectionTypeValues:()=>BUt,NetTransportValues:()=>LUt,OSTYPEVALUES_AIX:()=>sqt,OSTYPEVALUES_DARWIN:()=>$Ht,OSTYPEVALUES_DRAGONFLYBSD:()=>rqt,OSTYPEVALUES_FREEBSD:()=>eqt,OSTYPEVALUES_HPUX:()=>iqt,OSTYPEVALUES_LINUX:()=>QHt,OSTYPEVALUES_NETBSD:()=>tqt,OSTYPEVALUES_OPENBSD:()=>nqt,OSTYPEVALUES_SOLARIS:()=>oqt,OSTYPEVALUES_WINDOWS:()=>XHt,OSTYPEVALUES_Z_OS:()=>aqt,OTEL_STATUS_CODE_VALUE_ERROR:()=>GBt,OTEL_STATUS_CODE_VALUE_OK:()=>$yr,OsTypeValues:()=>cqt,RPCGRPCSTATUSCODEVALUES_ABORTED:()=>CFt,RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS:()=>xFt,RPCGRPCSTATUSCODEVALUES_CANCELLED:()=>RFt,RPCGRPCSTATUSCODEVALUES_DATA_LOSS:()=>FFt,RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED:()=>kFt,RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION:()=>NFt,RPCGRPCSTATUSCODEVALUES_INTERNAL:()=>LFt,RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT:()=>wFt,RPCGRPCSTATUSCODEVALUES_NOT_FOUND:()=>IFt,RPCGRPCSTATUSCODEVALUES_OK:()=>vFt,RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE:()=>MFt,RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED:()=>OFt,RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED:()=>PFt,RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED:()=>jFt,RPCGRPCSTATUSCODEVALUES_UNAVAILABLE:()=>UFt,RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED:()=>DFt,RPCGRPCSTATUSCODEVALUES_UNKNOWN:()=>AFt,RpcGrpcStatusCodeValues:()=>HFt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET:()=>bLt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:()=>PLt,SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ:()=>gLt,SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY:()=>fLt,SEMATTRS_AWS_DYNAMODB_COUNT:()=>xLt,SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE:()=>RLt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:()=>TLt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:()=>NLt,SEMATTRS_AWS_DYNAMODB_INDEX_NAME:()=>ELt,SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS:()=>pLt,SEMATTRS_AWS_DYNAMODB_LIMIT:()=>SLt,SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:()=>vLt,SEMATTRS_AWS_DYNAMODB_PROJECTION:()=>yLt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:()=>hLt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:()=>mLt,SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT:()=>OLt,SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD:()=>wLt,SEMATTRS_AWS_DYNAMODB_SEGMENT:()=>kLt,SEMATTRS_AWS_DYNAMODB_SELECT:()=>_Lt,SEMATTRS_AWS_DYNAMODB_TABLE_COUNT:()=>ALt,SEMATTRS_AWS_DYNAMODB_TABLE_NAMES:()=>dLt,SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS:()=>ILt,SEMATTRS_AWS_LAMBDA_INVOKED_ARN:()=>rDt,SEMATTRS_CODE_FILEPATH:()=>tLt,SEMATTRS_CODE_FUNCTION:()=>$Dt,SEMATTRS_CODE_LINENO:()=>nLt,SEMATTRS_CODE_NAMESPACE:()=>eLt,SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL:()=>fDt,SEMATTRS_DB_CASSANDRA_COORDINATOR_DC:()=>yDt,SEMATTRS_DB_CASSANDRA_COORDINATOR_ID:()=>gDt,SEMATTRS_DB_CASSANDRA_IDEMPOTENCE:()=>hDt,SEMATTRS_DB_CASSANDRA_KEYSPACE:()=>lDt,SEMATTRS_DB_CASSANDRA_PAGE_SIZE:()=>dDt,SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:()=>mDt,SEMATTRS_DB_CASSANDRA_TABLE:()=>pDt,SEMATTRS_DB_CONNECTION_STRING:()=>iDt,SEMATTRS_DB_HBASE_NAMESPACE:()=>SDt,SEMATTRS_DB_JDBC_DRIVER_CLASSNAME:()=>oDt,SEMATTRS_DB_MONGODB_COLLECTION:()=>EDt,SEMATTRS_DB_MSSQL_INSTANCE_NAME:()=>uDt,SEMATTRS_DB_NAME:()=>aDt,SEMATTRS_DB_OPERATION:()=>cDt,SEMATTRS_DB_REDIS_DATABASE_INDEX:()=>bDt,SEMATTRS_DB_SQL_TABLE:()=>_Dt,SEMATTRS_DB_STATEMENT:()=>a7,SEMATTRS_DB_SYSTEM:()=>o7,SEMATTRS_DB_USER:()=>sDt,SEMATTRS_ENDUSER_ID:()=>YDt,SEMATTRS_ENDUSER_ROLE:()=>ZDt,SEMATTRS_ENDUSER_SCOPE:()=>JDt,SEMATTRS_EXCEPTION_ESCAPED:()=>ADt,SEMATTRS_EXCEPTION_MESSAGE:()=>vDt,SEMATTRS_EXCEPTION_STACKTRACE:()=>RDt,SEMATTRS_EXCEPTION_TYPE:()=>TDt,SEMATTRS_FAAS_COLDSTART:()=>CDt,SEMATTRS_FAAS_CRON:()=>NDt,SEMATTRS_FAAS_DOCUMENT_COLLECTION:()=>kDt,SEMATTRS_FAAS_DOCUMENT_NAME:()=>ODt,SEMATTRS_FAAS_DOCUMENT_OPERATION:()=>IDt,SEMATTRS_FAAS_DOCUMENT_TIME:()=>xDt,SEMATTRS_FAAS_EXECUTION:()=>wDt,SEMATTRS_FAAS_INVOKED_NAME:()=>MDt,SEMATTRS_FAAS_INVOKED_PROVIDER:()=>DDt,SEMATTRS_FAAS_INVOKED_REGION:()=>LDt,SEMATTRS_FAAS_TIME:()=>PDt,SEMATTRS_FAAS_TRIGGER:()=>c7,SEMATTRS_HTTP_CLIENT_IP:()=>lLt,SEMATTRS_HTTP_FLAVOR:()=>sLt,SEMATTRS_HTTP_HOST:()=>rLt,SEMATTRS_HTTP_METHOD:()=>_O,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH:()=>aLt,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:()=>cLt,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH:()=>p7,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:()=>h7,SEMATTRS_HTTP_ROUTE:()=>m7,SEMATTRS_HTTP_SCHEME:()=>iLt,SEMATTRS_HTTP_SERVER_NAME:()=>uLt,SEMATTRS_HTTP_STATUS_CODE:()=>yE,SEMATTRS_HTTP_TARGET:()=>f7,SEMATTRS_HTTP_URL:()=>gR,SEMATTRS_HTTP_USER_AGENT:()=>oLt,SEMATTRS_MESSAGE_COMPRESSED_SIZE:()=>s1t,SEMATTRS_MESSAGE_ID:()=>i1t,SEMATTRS_MESSAGE_TYPE:()=>r1t,SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE:()=>o1t,SEMATTRS_MESSAGING_CONSUMER_ID:()=>GLt,SEMATTRS_MESSAGING_CONVERSATION_ID:()=>HLt,SEMATTRS_MESSAGING_DESTINATION:()=>CLt,SEMATTRS_MESSAGING_DESTINATION_KIND:()=>MLt,SEMATTRS_MESSAGING_KAFKA_CLIENT_ID:()=>YLt,SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP:()=>KLt,SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY:()=>WLt,SEMATTRS_MESSAGING_KAFKA_PARTITION:()=>ZLt,SEMATTRS_MESSAGING_KAFKA_TOMBSTONE:()=>JLt,SEMATTRS_MESSAGING_MESSAGE_ID:()=>jLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:()=>BLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:()=>qLt,SEMATTRS_MESSAGING_OPERATION:()=>zLt,SEMATTRS_MESSAGING_PROTOCOL:()=>LLt,SEMATTRS_MESSAGING_PROTOCOL_VERSION:()=>ULt,SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY:()=>VLt,SEMATTRS_MESSAGING_SYSTEM:()=>g7,SEMATTRS_MESSAGING_TEMP_DESTINATION:()=>DLt,SEMATTRS_MESSAGING_URL:()=>FLt,SEMATTRS_NET_HOST_CARRIER_ICC:()=>WDt,SEMATTRS_NET_HOST_CARRIER_MCC:()=>GDt,SEMATTRS_NET_HOST_CARRIER_MNC:()=>VDt,SEMATTRS_NET_HOST_CARRIER_NAME:()=>zDt,SEMATTRS_NET_HOST_CONNECTION_SUBTYPE:()=>BDt,SEMATTRS_NET_HOST_CONNECTION_TYPE:()=>qDt,SEMATTRS_NET_HOST_IP:()=>l7,SEMATTRS_NET_HOST_NAME:()=>HDt,SEMATTRS_NET_HOST_PORT:()=>d7,SEMATTRS_NET_PEER_IP:()=>u7,SEMATTRS_NET_PEER_NAME:()=>jDt,SEMATTRS_NET_PEER_PORT:()=>FDt,SEMATTRS_NET_TRANSPORT:()=>UDt,SEMATTRS_PEER_SERVICE:()=>KDt,SEMATTRS_RPC_GRPC_STATUS_CODE:()=>S7,SEMATTRS_RPC_JSONRPC_ERROR_CODE:()=>t1t,SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE:()=>n1t,SEMATTRS_RPC_JSONRPC_REQUEST_ID:()=>e1t,SEMATTRS_RPC_JSONRPC_VERSION:()=>$Lt,SEMATTRS_RPC_METHOD:()=>QLt,SEMATTRS_RPC_SERVICE:()=>y7,SEMATTRS_RPC_SYSTEM:()=>XLt,SEMATTRS_THREAD_ID:()=>XDt,SEMATTRS_THREAD_NAME:()=>QDt,SEMRESATTRS_AWS_ECS_CLUSTER_ARN:()=>JFt,SEMRESATTRS_AWS_ECS_CONTAINER_ARN:()=>ZFt,SEMRESATTRS_AWS_ECS_LAUNCHTYPE:()=>XFt,SEMRESATTRS_AWS_ECS_TASK_ARN:()=>QFt,SEMRESATTRS_AWS_ECS_TASK_FAMILY:()=>$Ft,SEMRESATTRS_AWS_ECS_TASK_REVISION:()=>ejt,SEMRESATTRS_AWS_EKS_CLUSTER_ARN:()=>tjt,SEMRESATTRS_AWS_LOG_GROUP_ARNS:()=>rjt,SEMRESATTRS_AWS_LOG_GROUP_NAMES:()=>njt,SEMRESATTRS_AWS_LOG_STREAM_ARNS:()=>sjt,SEMRESATTRS_AWS_LOG_STREAM_NAMES:()=>ijt,SEMRESATTRS_CLOUD_ACCOUNT_ID:()=>VFt,SEMRESATTRS_CLOUD_AVAILABILITY_ZONE:()=>KFt,SEMRESATTRS_CLOUD_PLATFORM:()=>YFt,SEMRESATTRS_CLOUD_PROVIDER:()=>GFt,SEMRESATTRS_CLOUD_REGION:()=>WFt,SEMRESATTRS_CONTAINER_ID:()=>ajt,SEMRESATTRS_CONTAINER_IMAGE_NAME:()=>ujt,SEMRESATTRS_CONTAINER_IMAGE_TAG:()=>ljt,SEMRESATTRS_CONTAINER_NAME:()=>ojt,SEMRESATTRS_CONTAINER_RUNTIME:()=>cjt,SEMRESATTRS_DEPLOYMENT_ENVIRONMENT:()=>djt,SEMRESATTRS_DEVICE_ID:()=>fjt,SEMRESATTRS_DEVICE_MODEL_IDENTIFIER:()=>pjt,SEMRESATTRS_DEVICE_MODEL_NAME:()=>hjt,SEMRESATTRS_FAAS_ID:()=>gjt,SEMRESATTRS_FAAS_INSTANCE:()=>Sjt,SEMRESATTRS_FAAS_MAX_MEMORY:()=>bjt,SEMRESATTRS_FAAS_NAME:()=>mjt,SEMRESATTRS_FAAS_VERSION:()=>yjt,SEMRESATTRS_HOST_ARCH:()=>vjt,SEMRESATTRS_HOST_ID:()=>Ejt,SEMRESATTRS_HOST_IMAGE_ID:()=>Ajt,SEMRESATTRS_HOST_IMAGE_NAME:()=>Rjt,SEMRESATTRS_HOST_IMAGE_VERSION:()=>wjt,SEMRESATTRS_HOST_NAME:()=>_jt,SEMRESATTRS_HOST_TYPE:()=>Tjt,SEMRESATTRS_K8S_CLUSTER_NAME:()=>kjt,SEMRESATTRS_K8S_CONTAINER_NAME:()=>Cjt,SEMRESATTRS_K8S_CRONJOB_NAME:()=>Vjt,SEMRESATTRS_K8S_CRONJOB_UID:()=>Gjt,SEMRESATTRS_K8S_DAEMONSET_NAME:()=>qjt,SEMRESATTRS_K8S_DAEMONSET_UID:()=>Hjt,SEMRESATTRS_K8S_DEPLOYMENT_NAME:()=>Ujt,SEMRESATTRS_K8S_DEPLOYMENT_UID:()=>Ljt,SEMRESATTRS_K8S_JOB_NAME:()=>zjt,SEMRESATTRS_K8S_JOB_UID:()=>Bjt,SEMRESATTRS_K8S_NAMESPACE_NAME:()=>Ojt,SEMRESATTRS_K8S_NODE_NAME:()=>Ijt,SEMRESATTRS_K8S_NODE_UID:()=>xjt,SEMRESATTRS_K8S_POD_NAME:()=>Njt,SEMRESATTRS_K8S_POD_UID:()=>Pjt,SEMRESATTRS_K8S_REPLICASET_NAME:()=>Djt,SEMRESATTRS_K8S_REPLICASET_UID:()=>Mjt,SEMRESATTRS_K8S_STATEFULSET_NAME:()=>jjt,SEMRESATTRS_K8S_STATEFULSET_UID:()=>Fjt,SEMRESATTRS_OS_DESCRIPTION:()=>Kjt,SEMRESATTRS_OS_NAME:()=>Yjt,SEMRESATTRS_OS_TYPE:()=>Wjt,SEMRESATTRS_OS_VERSION:()=>Zjt,SEMRESATTRS_PROCESS_COMMAND:()=>$jt,SEMRESATTRS_PROCESS_COMMAND_ARGS:()=>tHt,SEMRESATTRS_PROCESS_COMMAND_LINE:()=>eHt,SEMRESATTRS_PROCESS_EXECUTABLE_NAME:()=>Xjt,SEMRESATTRS_PROCESS_EXECUTABLE_PATH:()=>Qjt,SEMRESATTRS_PROCESS_OWNER:()=>nHt,SEMRESATTRS_PROCESS_PID:()=>Jjt,SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION:()=>sHt,SEMRESATTRS_PROCESS_RUNTIME_NAME:()=>rHt,SEMRESATTRS_PROCESS_RUNTIME_VERSION:()=>iHt,SEMRESATTRS_SERVICE_INSTANCE_ID:()=>aHt,SEMRESATTRS_SERVICE_NAME:()=>oHt,SEMRESATTRS_SERVICE_NAMESPACE:()=>b7,SEMRESATTRS_SERVICE_VERSION:()=>cHt,SEMRESATTRS_TELEMETRY_AUTO_VERSION:()=>fHt,SEMRESATTRS_TELEMETRY_SDK_LANGUAGE:()=>lHt,SEMRESATTRS_TELEMETRY_SDK_NAME:()=>uHt,SEMRESATTRS_TELEMETRY_SDK_VERSION:()=>dHt,SEMRESATTRS_WEBENGINE_DESCRIPTION:()=>mHt,SEMRESATTRS_WEBENGINE_NAME:()=>pHt,SEMRESATTRS_WEBENGINE_VERSION:()=>hHt,SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN:()=>ZBt,SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE:()=>JBt,SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT:()=>XBt,SIGNALR_TRANSPORT_VALUE_LONG_POLLING:()=>$Bt,SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS:()=>ezt,SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS:()=>tzt,SemanticAttributes:()=>a1t,SemanticResourceAttributes:()=>gHt,TELEMETRYSDKLANGUAGEVALUES_CPP:()=>uqt,TELEMETRYSDKLANGUAGEVALUES_DOTNET:()=>lqt,TELEMETRYSDKLANGUAGEVALUES_ERLANG:()=>dqt,TELEMETRYSDKLANGUAGEVALUES_GO:()=>fqt,TELEMETRYSDKLANGUAGEVALUES_JAVA:()=>pqt,TELEMETRYSDKLANGUAGEVALUES_NODEJS:()=>hqt,TELEMETRYSDKLANGUAGEVALUES_PHP:()=>mqt,TELEMETRYSDKLANGUAGEVALUES_PYTHON:()=>gqt,TELEMETRYSDKLANGUAGEVALUES_RUBY:()=>yqt,TELEMETRYSDKLANGUAGEVALUES_WEBJS:()=>Sqt,TELEMETRY_SDK_LANGUAGE_VALUE_CPP:()=>eSr,TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET:()=>rzt,TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG:()=>izt,TELEMETRY_SDK_LANGUAGE_VALUE_GO:()=>tSr,TELEMETRY_SDK_LANGUAGE_VALUE_JAVA:()=>szt,TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS:()=>ozt,TELEMETRY_SDK_LANGUAGE_VALUE_PHP:()=>nSr,TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON:()=>azt,TELEMETRY_SDK_LANGUAGE_VALUE_RUBY:()=>czt,TELEMETRY_SDK_LANGUAGE_VALUE_RUST:()=>uzt,TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT:()=>lzt,TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS:()=>dzt,TelemetrySdkLanguageValues:()=>bqt});var Nn=v(()=>{q0e();pPe();hPe();mPe();gPe()});var yPe=w(MF=>{"use strict";Object.defineProperty(MF,"__esModule",{value:!0});MF.ATTR_PROCESS_RUNTIME_NAME=void 0;MF.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var SPe=w(LF=>{"use strict";Object.defineProperty(LF,"__esModule",{value:!0});LF.SDK_INFO=void 0;var gGt=JRe(),DF=(Nn(),ke(Mr)),yGt=yPe();LF.SDK_INFO={[DF.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[yGt.ATTR_PROCESS_RUNTIME_NAME]:"node",[DF.ATTR_TELEMETRY_SDK_LANGUAGE]:DF.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[DF.ATTR_TELEMETRY_SDK_VERSION]:gGt.VERSION}});var bPe=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 UF=YRe();Object.defineProperty(za,"getStringFromEnv",{enumerable:!0,get:function(){return UF.getStringFromEnv}});Object.defineProperty(za,"getBooleanFromEnv",{enumerable:!0,get:function(){return UF.getBooleanFromEnv}});Object.defineProperty(za,"getNumberFromEnv",{enumerable:!0,get:function(){return UF.getNumberFromEnv}});Object.defineProperty(za,"getStringListFromEnv",{enumerable:!0,get:function(){return UF.getStringListFromEnv}});var SGt=ZRe();Object.defineProperty(za,"_globalThis",{enumerable:!0,get:function(){return SGt._globalThis}});var bGt=SPe();Object.defineProperty(za,"SDK_INFO",{enumerable:!0,get:function(){return bGt.SDK_INFO}});za.otperformance=performance});var M7=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 EE=bPe();Object.defineProperty(Ga,"SDK_INFO",{enumerable:!0,get:function(){return EE.SDK_INFO}});Object.defineProperty(Ga,"_globalThis",{enumerable:!0,get:function(){return EE._globalThis}});Object.defineProperty(Ga,"otperformance",{enumerable:!0,get:function(){return EE.otperformance}});Object.defineProperty(Ga,"getBooleanFromEnv",{enumerable:!0,get:function(){return EE.getBooleanFromEnv}});Object.defineProperty(Ga,"getStringFromEnv",{enumerable:!0,get:function(){return EE.getStringFromEnv}});Object.defineProperty(Ga,"getNumberFromEnv",{enumerable:!0,get:function(){return EE.getNumberFromEnv}});Object.defineProperty(Ga,"getStringListFromEnv",{enumerable:!0,get:function(){return EE.getStringListFromEnv}})});var vPe=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 FF=M7(),EPe=9,EGt=6,_Gt=Math.pow(10,EGt),jF=Math.pow(10,EPe);function TO(e){let t=e/1e3,n=Math.trunc(t),r=Math.round(e%1e3*_Gt);return[n,r]}ei.millisToHrTime=TO;function TGt(){return FF.otperformance.timeOrigin}ei.getTimeOrigin=TGt;function _Pe(e){let t=TO(FF.otperformance.timeOrigin),n=TO(typeof e=="number"?e:FF.otperformance.now());return TPe(t,n)}ei.hrTime=_Pe;function vGt(e){if(D7(e))return e;if(typeof e=="number")return e=jF&&(n[1]-=jF,n[0]+=1),n}ei.addHrTimes=TPe});var RPe=w(HF=>{"use strict";Object.defineProperty(HF,"__esModule",{value:!0});HF.unrefTimer=void 0;function OGt(e){typeof e!="number"&&e.unref()}HF.unrefTimer=OGt});var APe=w(vO=>{"use strict";Object.defineProperty(vO,"__esModule",{value:!0});vO.ExportResultCode=void 0;var PGt;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(PGt=vO.ExportResultCode||(vO.ExportResultCode={}))});var kPe=w(qF=>{"use strict";Object.defineProperty(qF,"__esModule",{value:!0});qF.CompositePropagator=void 0;var wPe=(Me(),ke(Ze)),L7=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){wPe.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){wPe.diag.warn(`Failed to extract with ${s.constructor.name}. Err: ${o.message}`)}return i},t)}fields(){return this._fields.slice()}};qF.CompositePropagator=L7});var IPe=w(SR=>{"use strict";Object.defineProperty(SR,"__esModule",{value:!0});SR.validateValue=SR.validateKey=void 0;var U7="[_0-9a-z-*/]",NGt=`[a-z]${U7}{0,255}`,CGt=`[a-z0-9]${U7}{0,240}@[a-z]${U7}{0,13}`,MGt=new RegExp(`^(?:${NGt}|${CGt})$`),DGt=/^[ -~]{0,255}[!-~]$/,LGt=/,|=/;function UGt(e){return MGt.test(e)}SR.validateKey=UGt;function FGt(e){return DGt.test(e)&&!LGt.test(e)}SR.validateValue=FGt});var j7=w(BF=>{"use strict";Object.defineProperty(BF,"__esModule",{value:!0});BF.TraceState=void 0;var xPe=IPe(),OPe=32,jGt=512,PPe=",",NPe="=",F7=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+NPe+this.get(n)),t),[]).join(PPe)}_parse(t){t.length>jGt||(this._internalState=t.split(PPe).reverse().reduce((n,r)=>{let i=r.trim(),s=i.indexOf(NPe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);(0,xPe.validateKey)(o)&&(0,xPe.validateValue)(a)&&n.set(o,a)}return n},new Map),this._internalState.size>OPe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,OPe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};BF.TraceState=F7});var MPe=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 zF=(Me(),ke(Ze)),HGt=EO(),qGt=j7();Va.TRACE_PARENT_HEADER="traceparent";Va.TRACE_STATE_HEADER="tracestate";var BGt="00",zGt="(?!ff)[\\da-f]{2}",GGt="(?![0]{32})[\\da-f]{32}",VGt="(?![0]{16})[\\da-f]{16}",WGt="[\\da-f]{2}",KGt=new RegExp(`^\\s?(${zGt})-(${GGt})-(${VGt})-(${WGt})(-.*)?\\s?$`);function CPe(e){let t=KGt.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}Va.parseTraceParent=CPe;var H7=class{inject(t,n,r){let i=zF.trace.getSpanContext(t);if(!i||(0,HGt.isTracingSuppressed)(t)||!(0,zF.isSpanContextValid)(i))return;let s=`${BGt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||zF.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=CPe(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 qGt.TraceState(typeof c=="string"?c:void 0)}return zF.trace.setSpanContext(t,o)}fields(){return[Va.TRACE_PARENT_HEADER,Va.TRACE_STATE_HEADER]}};Va.W3CTraceContextPropagator=H7});var DPe=w($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});$d.getRPCMetadata=$d.deleteRPCMetadata=$d.setRPCMetadata=$d.RPCType=void 0;var YGt=(Me(),ke(Ze)),q7=(0,YGt.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),ZGt;(function(e){e.HTTP="http"})(ZGt=$d.RPCType||($d.RPCType={}));function JGt(e,t){return e.setValue(q7,t)}$d.setRPCMetadata=JGt;function XGt(e){return e.deleteValue(q7)}$d.deleteRPCMetadata=XGt;function QGt(e){return e.getValue(q7)}$d.getRPCMetadata=QGt});var HPe=w(GF=>{"use strict";Object.defineProperty(GF,"__esModule",{value:!0});GF.isPlainObject=void 0;var $Gt="[object Object]",e2t="[object Null]",t2t="[object Undefined]",n2t=Function.prototype,LPe=n2t.toString,r2t=LPe.call(Object),i2t=Object.getPrototypeOf,UPe=Object.prototype,FPe=UPe.hasOwnProperty,_E=Symbol?Symbol.toStringTag:void 0,jPe=UPe.toString;function s2t(e){if(!o2t(e)||a2t(e)!==$Gt)return!1;let t=i2t(e);if(t===null)return!0;let n=FPe.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&LPe.call(n)===r2t}GF.isPlainObject=s2t;function o2t(e){return e!=null&&typeof e=="object"}function a2t(e){return e==null?e===void 0?t2t:e2t:_E&&_E in Object(e)?c2t(e):u2t(e)}function c2t(e){let t=FPe.call(e,_E),n=e[_E],r=!1;try{e[_E]=void 0,r=!0}catch{}let i=jPe.call(e);return r&&(t?e[_E]=n:delete e[_E]),i}function u2t(e){return jPe.call(e)}});var VPe=w(KF=>{"use strict";Object.defineProperty(KF,"__esModule",{value:!0});KF.merge=void 0;var qPe=HPe(),l2t=20;function d2t(...e){let t=e.shift(),n=new WeakMap;for(;e.length>0;)t=zPe(t,e.shift(),0,n);return t}KF.merge=d2t;function B7(e){return WF(e)?e.slice():e}function zPe(e,t,n=0,r){let i;if(!(n>l2t)){if(n++,VF(e)||VF(t)||GPe(t))i=B7(t);else if(WF(e)){if(i=e.slice(),WF(t))for(let s=0,o=t.length;s"u"?delete i[c]:i[c]=u;else{let l=i[c],d=u;if(BPe(e,c,r)||BPe(t,c,r))delete i[c];else{if(RO(l)&&RO(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]=zPe(i[c],u,n,r)}}}}else i=t;return i}}function BPe(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 f2t(e,t){return!(!(0,qPe.isPlainObject)(e)||!(0,qPe.isPlainObject)(t))}});var WPe=w(bR=>{"use strict";Object.defineProperty(bR,"__esModule",{value:!0});bR.callWithTimeout=bR.TimeoutError=void 0;var YF=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};bR.TimeoutError=YF;function p2t(e,t){let n,r=new Promise(function(s,o){n=setTimeout(function(){o(new YF("Operation timed out."))},t)});return Promise.race([e,r]).then(i=>(clearTimeout(n),i),i=>{throw clearTimeout(n),i})}bR.callWithTimeout=p2t});var YPe=w(ER=>{"use strict";Object.defineProperty(ER,"__esModule",{value:!0});ER.isUrlIgnored=ER.urlMatches=void 0;function KPe(e,t){return typeof t=="string"?e===t:!!e.match(t)}ER.urlMatches=KPe;function h2t(e,t){if(!t)return!1;for(let n of t)if(KPe(e,n))return!0;return!1}ER.isUrlIgnored=h2t});var ZPe=w(ZF=>{"use strict";Object.defineProperty(ZF,"__esModule",{value:!0});ZF.Deferred=void 0;var z7=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)}};ZF.Deferred=z7});var JPe=w(JF=>{"use strict";Object.defineProperty(JF,"__esModule",{value:!0});JF.BindOnceFuture=void 0;var m2t=ZPe(),G7=class{_isCalled=!1;_deferred=new m2t.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}};JF.BindOnceFuture=G7});var QPe=w(XF=>{"use strict";Object.defineProperty(XF,"__esModule",{value:!0});XF.diagLogLevelFromString=void 0;var fm=(Me(),ke(Ze)),XPe={ALL:fm.DiagLogLevel.ALL,VERBOSE:fm.DiagLogLevel.VERBOSE,DEBUG:fm.DiagLogLevel.DEBUG,INFO:fm.DiagLogLevel.INFO,WARN:fm.DiagLogLevel.WARN,ERROR:fm.DiagLogLevel.ERROR,NONE:fm.DiagLogLevel.NONE};function g2t(e){if(e==null)return;let t=XPe[e.toUpperCase()];return t??(fm.diag.warn(`Unknown log level "${e}", expected one of ${Object.keys(XPe)}, using default`),fm.DiagLogLevel.INFO)}XF.diagLogLevelFromString=g2t});var eNe=w(QF=>{"use strict";Object.defineProperty(QF,"__esModule",{value:!0});QF._export=void 0;var $Pe=(Me(),ke(Ze)),y2t=EO();function S2t(e,t){return new Promise(n=>{$Pe.context.with((0,y2t.suppressTracing)($Pe.context.active()),()=>{e.export(t,n)})})}QF._export=S2t});var pr=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 b2t=LRe();Object.defineProperty(we,"W3CBaggagePropagator",{enumerable:!0,get:function(){return b2t.W3CBaggagePropagator}});var E2t=URe();Object.defineProperty(we,"AnchoredClock",{enumerable:!0,get:function(){return E2t.AnchoredClock}});var tNe=BRe();Object.defineProperty(we,"isAttributeValue",{enumerable:!0,get:function(){return tNe.isAttributeValue}});Object.defineProperty(we,"sanitizeAttributes",{enumerable:!0,get:function(){return tNe.sanitizeAttributes}});var nNe=GRe();Object.defineProperty(we,"globalErrorHandler",{enumerable:!0,get:function(){return nNe.globalErrorHandler}});Object.defineProperty(we,"setGlobalErrorHandler",{enumerable:!0,get:function(){return nNe.setGlobalErrorHandler}});var _2t=i7();Object.defineProperty(we,"loggingErrorHandler",{enumerable:!0,get:function(){return _2t.loggingErrorHandler}});var ql=vPe();Object.defineProperty(we,"addHrTimes",{enumerable:!0,get:function(){return ql.addHrTimes}});Object.defineProperty(we,"getTimeOrigin",{enumerable:!0,get:function(){return ql.getTimeOrigin}});Object.defineProperty(we,"hrTime",{enumerable:!0,get:function(){return ql.hrTime}});Object.defineProperty(we,"hrTimeDuration",{enumerable:!0,get:function(){return ql.hrTimeDuration}});Object.defineProperty(we,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return ql.hrTimeToMicroseconds}});Object.defineProperty(we,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return ql.hrTimeToMilliseconds}});Object.defineProperty(we,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return ql.hrTimeToNanoseconds}});Object.defineProperty(we,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return ql.hrTimeToTimeStamp}});Object.defineProperty(we,"isTimeInput",{enumerable:!0,get:function(){return ql.isTimeInput}});Object.defineProperty(we,"isTimeInputHrTime",{enumerable:!0,get:function(){return ql.isTimeInputHrTime}});Object.defineProperty(we,"millisToHrTime",{enumerable:!0,get:function(){return ql.millisToHrTime}});Object.defineProperty(we,"timeInputToHrTime",{enumerable:!0,get:function(){return ql.timeInputToHrTime}});var T2t=RPe();Object.defineProperty(we,"unrefTimer",{enumerable:!0,get:function(){return T2t.unrefTimer}});var v2t=APe();Object.defineProperty(we,"ExportResultCode",{enumerable:!0,get:function(){return v2t.ExportResultCode}});var R2t=$8();Object.defineProperty(we,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return R2t.parseKeyPairsIntoRecord}});var TE=M7();Object.defineProperty(we,"SDK_INFO",{enumerable:!0,get:function(){return TE.SDK_INFO}});Object.defineProperty(we,"_globalThis",{enumerable:!0,get:function(){return TE._globalThis}});Object.defineProperty(we,"getStringFromEnv",{enumerable:!0,get:function(){return TE.getStringFromEnv}});Object.defineProperty(we,"getBooleanFromEnv",{enumerable:!0,get:function(){return TE.getBooleanFromEnv}});Object.defineProperty(we,"getNumberFromEnv",{enumerable:!0,get:function(){return TE.getNumberFromEnv}});Object.defineProperty(we,"getStringListFromEnv",{enumerable:!0,get:function(){return TE.getStringListFromEnv}});Object.defineProperty(we,"otperformance",{enumerable:!0,get:function(){return TE.otperformance}});var A2t=kPe();Object.defineProperty(we,"CompositePropagator",{enumerable:!0,get:function(){return A2t.CompositePropagator}});var $F=MPe();Object.defineProperty(we,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return $F.TRACE_PARENT_HEADER}});Object.defineProperty(we,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return $F.TRACE_STATE_HEADER}});Object.defineProperty(we,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return $F.W3CTraceContextPropagator}});Object.defineProperty(we,"parseTraceParent",{enumerable:!0,get:function(){return $F.parseTraceParent}});var ej=DPe();Object.defineProperty(we,"RPCType",{enumerable:!0,get:function(){return ej.RPCType}});Object.defineProperty(we,"deleteRPCMetadata",{enumerable:!0,get:function(){return ej.deleteRPCMetadata}});Object.defineProperty(we,"getRPCMetadata",{enumerable:!0,get:function(){return ej.getRPCMetadata}});Object.defineProperty(we,"setRPCMetadata",{enumerable:!0,get:function(){return ej.setRPCMetadata}});var V7=EO();Object.defineProperty(we,"isTracingSuppressed",{enumerable:!0,get:function(){return V7.isTracingSuppressed}});Object.defineProperty(we,"suppressTracing",{enumerable:!0,get:function(){return V7.suppressTracing}});Object.defineProperty(we,"unsuppressTracing",{enumerable:!0,get:function(){return V7.unsuppressTracing}});var w2t=j7();Object.defineProperty(we,"TraceState",{enumerable:!0,get:function(){return w2t.TraceState}});var k2t=VPe();Object.defineProperty(we,"merge",{enumerable:!0,get:function(){return k2t.merge}});var rNe=WPe();Object.defineProperty(we,"TimeoutError",{enumerable:!0,get:function(){return rNe.TimeoutError}});Object.defineProperty(we,"callWithTimeout",{enumerable:!0,get:function(){return rNe.callWithTimeout}});var iNe=YPe();Object.defineProperty(we,"isUrlIgnored",{enumerable:!0,get:function(){return iNe.isUrlIgnored}});Object.defineProperty(we,"urlMatches",{enumerable:!0,get:function(){return iNe.urlMatches}});var I2t=JPe();Object.defineProperty(we,"BindOnceFuture",{enumerable:!0,get:function(){return I2t.BindOnceFuture}});var x2t=QPe();Object.defineProperty(we,"diagLogLevelFromString",{enumerable:!0,get:function(){return x2t.diagLogLevelFromString}});var O2t=eNe();we.internal={_export:O2t._export}});var sNe=w(tj=>{"use strict";Object.defineProperty(tj,"__esModule",{value:!0});tj.VERSION=void 0;tj.VERSION="0.214.0"});var oNe=w(AO=>{"use strict";Object.defineProperty(AO,"__esModule",{value:!0});AO.SeverityNumber=void 0;var P2t;(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"})(P2t=AO.SeverityNumber||(AO.SeverityNumber={}))});var rj=w(_R=>{"use strict";Object.defineProperty(_R,"__esModule",{value:!0});_R.NOOP_LOGGER=_R.NoopLogger=void 0;var nj=class{emit(t){}};_R.NoopLogger=nj;_R.NOOP_LOGGER=new nj});var aNe=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 N2t(e,t,n){return r=>r===e?t:n}Pp.makeGetter=N2t;Pp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var W7=w(TR=>{"use strict";Object.defineProperty(TR,"__esModule",{value:!0});TR.NOOP_LOGGER_PROVIDER=TR.NoopLoggerProvider=void 0;var C2t=rj(),ij=class{getLogger(t,n,r){return new C2t.NoopLogger}};TR.NoopLoggerProvider=ij;TR.NOOP_LOGGER_PROVIDER=new ij});var cNe=w(sj=>{"use strict";Object.defineProperty(sj,"__esModule",{value:!0});sj.ProxyLogger=void 0;var M2t=rj(),K7=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):M2t.NOOP_LOGGER}};sj.ProxyLogger=K7});var uNe=w(oj=>{"use strict";Object.defineProperty(oj,"__esModule",{value:!0});oj.ProxyLoggerProvider=void 0;var D2t=W7(),L2t=cNe(),Y7=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new L2t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:D2t.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)}};oj.ProxyLoggerProvider=Y7});var dNe=w(aj=>{"use strict";Object.defineProperty(aj,"__esModule",{value:!0});aj.LogsAPI=void 0;var Bl=aNe(),U2t=W7(),lNe=uNe(),Z7=class e{constructor(){this._proxyLoggerProvider=new lNe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return Bl._global[Bl.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(Bl._global[Bl.GLOBAL_LOGS_API_KEY]=(0,Bl.makeGetter)(Bl.API_BACKWARDS_COMPATIBILITY_VERSION,t,U2t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=Bl._global[Bl.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(Bl._global,Bl.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete Bl._global[Bl.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new lNe.ProxyLoggerProvider}};aj.LogsAPI=Z7});var J7=w(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});Np.logs=Np.NoopLogger=Np.NOOP_LOGGER=Np.SeverityNumber=void 0;var F2t=oNe();Object.defineProperty(Np,"SeverityNumber",{enumerable:!0,get:function(){return F2t.SeverityNumber}});var fNe=rj();Object.defineProperty(Np,"NOOP_LOGGER",{enumerable:!0,get:function(){return fNe.NOOP_LOGGER}});Object.defineProperty(Np,"NoopLogger",{enumerable:!0,get:function(){return fNe.NoopLogger}});var j2t=dNe();Np.logs=j2t.LogsAPI.getInstance()});var pNe=w(vR=>{"use strict";Object.defineProperty(vR,"__esModule",{value:!0});vR.disableInstrumentations=vR.enableInstrumentations=void 0;function H2t(e,t,n,r){for(let i=0,s=e.length;it.disable())}vR.disableInstrumentations=q2t});var gNe=w(cj=>{"use strict";Object.defineProperty(cj,"__esModule",{value:!0});cj.registerInstrumentations=void 0;var hNe=(Me(),ke(Ze)),B2t=J7(),mNe=pNe();function z2t(e){let t=e.tracerProvider||hNe.trace.getTracerProvider(),n=e.meterProvider||hNe.metrics.getMeterProvider(),r=e.loggerProvider||B2t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,mNe.enableInstrumentations)(i,t,n,r),()=>{(0,mNe.disableInstrumentations)(i)}}cj.registerInstrumentations=z2t});var ANe=w(uj=>{"use strict";Object.defineProperty(uj,"__esModule",{value:!0});uj.satisfies=void 0;var eJ=(Me(),ke(Ze)),_Ne=/^(?: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-]+)*))?$/,G2t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,V2t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function W2t(e,t,n){if(!K2t(e))return eJ.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=X2t(e);if(!r)return!1;let i=[],s=TNe(r,t,i,n);return s&&!n?.includePrerelease?Z2t(r,i):s}uj.satisfies=W2t;function K2t(e){return typeof e=="string"&&_Ne.test(e)}function TNe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(X7(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=SVt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!X7(e,s,n,r))return!1;return!0}return X7(e,t,n,r)}function X7(e,t,n,r){if(t=J2t(t,r),t.includes(" "))return TNe(e,t,n,r);{let i=Q2t(t);return n.push(i),Y2t(e,i)}}function Y2t(e,t){if(t.invalid)return!1;if(!t.version||$7(t.version))return!0;let n=SNe(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=SNe(r,i)}return V2t[t.op]?.includes(n)}function Z2t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function J2t(e,t){return e=e.trim(),e=gVt(e,t),e=mVt(e),e=yVt(e,t),e=e.trim(),e}function kc(e){return!e||e.toLowerCase()==="x"||e==="*"}function X2t(e){let t=e.match(_Ne);if(!t){eJ.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 Q2t(e){if(!e)return{};let t=e.match(G2t);if(!t)return eJ.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 $7(e){return e==="*"||e==="x"||e==="X"}function yNe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function $2t(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 eVt(e,t){if($7(e)||$7(t))return 0;let[n,r]=$2t(yNe(e),yNe(t));return n>r?1:n)?=?)",bNe=`(?:${RNe}|${tVt})`,rVt=`(?:-(${bNe}(?:\\.${bNe})*))`,ENe=`${vNe}+`,iVt=`(?:\\+(${ENe}(?:\\.${ENe})*))`,Q7=`${RNe}|x|X|\\*`,wO=`[v=\\s]*(${Q7})(?:\\.(${Q7})(?:\\.(${Q7})(?:${rVt})?${iVt}?)?)?`,sVt=`^${nVt}\\s*${wO}$`,oVt=new RegExp(sVt),aVt=`^\\s*(${wO})\\s+-\\s+(${wO})\\s*$`,cVt=new RegExp(aVt),uVt="(?:~>?)",lVt=`^${uVt}${wO}$`,dVt=new RegExp(lVt),fVt="(?:\\^)",pVt=`^${fVt}${wO}$`,hVt=new RegExp(pVt);function mVt(e){let t=dVt;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 gVt(e,t){let n=hVt,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 yVt(e,t){let n=oVt;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 SVt(e,t){let n=cVt;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 tJ=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 kO(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 bVt=(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 kO(i,"__original",r),kO(i,"__unwrap",()=>{e[t]===i&&kO(e,t,r)}),kO(i,"__wrapped",!0),kO(e,t,i),i};ia.wrap=bVt;var EVt=(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=EVt;var _Vt=(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=_Vt;var TVt=(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=TVt;function IO(e){e&&e.logger&&(typeof e.logger!="function"?Ic("new logger isn't a function, not replacing"):Ic=e.logger)}ia.default=IO;IO.wrap=ia.wrap;IO.massWrap=ia.massWrap;IO.unwrap=ia.unwrap;IO.massUnwrap=ia.massUnwrap});var wNe=w(dj=>{"use strict";Object.defineProperty(dj,"__esModule",{value:!0});dj.InstrumentationAbstract=void 0;var nJ=(Me(),ke(Ze)),vVt=J7(),lj=tJ(),rJ=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=nJ.diag.createComponentLogger({namespace:t}),this._tracer=nJ.trace.getTracer(t,n),this._meter=nJ.metrics.getMeter(t,n),this._logger=vVt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=lj.wrap;_unwrap=lj.unwrap;_massWrap=lj.massWrap;_massUnwrap=lj.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)}}};dj.InstrumentationAbstract=rJ});var INe=w((WSr,kNe)=>{var RR=1e3,AR=RR*60,wR=AR*60,vE=wR*24,RVt=vE*7,AVt=vE*365.25;kNe.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return wVt(e);if(n==="number"&&isFinite(e))return t.long?IVt(e):kVt(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function wVt(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*AVt;case"weeks":case"week":case"w":return n*RVt;case"days":case"day":case"d":return n*vE;case"hours":case"hour":case"hrs":case"hr":case"h":return n*wR;case"minutes":case"minute":case"mins":case"min":case"m":return n*AR;case"seconds":case"second":case"secs":case"sec":case"s":return n*RR;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function kVt(e){var t=Math.abs(e);return t>=vE?Math.round(e/vE)+"d":t>=wR?Math.round(e/wR)+"h":t>=AR?Math.round(e/AR)+"m":t>=RR?Math.round(e/RR)+"s":e+"ms"}function IVt(e){var t=Math.abs(e);return t>=vE?fj(e,t,vE,"day"):t>=wR?fj(e,t,wR,"hour"):t>=AR?fj(e,t,AR,"minute"):t>=RR?fj(e,t,RR,"second"):e+" ms"}function fj(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var iJ=w((KSr,xNe)=>{function xVt(e){n.debug=n,n.default=n,n.coerce=c,n.disable=o,n.enable=i,n.enabled=a,n.humanize=INe(),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}xNe.exports=xVt});var ONe=w((cu,pj)=>{cu.formatArgs=PVt;cu.save=NVt;cu.load=CVt;cu.useColors=OVt;cu.storage=MVt();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 OVt(){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 PVt(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+pj.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 NVt(e){try{e?cu.storage.setItem("debug",e):cu.storage.removeItem("debug")}catch{}}function CVt(){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 MVt(){try{return localStorage}catch{}}pj.exports=iJ()(cu);var{formatters:DVt}=pj.exports;DVt.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var NNe=w((YSr,PNe)=>{"use strict";PNe.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 LVt=Y("os"),CNe=Y("tty"),zl=NNe(),{env:No}=process,hj;zl("no-color")||zl("no-colors")||zl("color=false")||zl("color=never")?hj=0:(zl("color")||zl("colors")||zl("color=true")||zl("color=always"))&&(hj=1);function UVt(){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 FVt(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function jVt(e,{streamIsTTY:t,sniffFlags:n=!0}={}){let r=UVt();r!==void 0&&(hj=r);let i=n?hj:r;if(i===0)return 0;if(n){if(zl("color=16m")||zl("color=full")||zl("color=truecolor"))return 3;if(zl("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=LVt.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 sJ(e,t={}){let n=jVt(e,{streamIsTTY:e&&e.isTTY,...t});return FVt(n)}MNe.exports={supportsColor:sJ,stdout:sJ({isTTY:CNe.isatty(1)}),stderr:sJ({isTTY:CNe.isatty(2)})}});var LNe=w((Co,yj)=>{var HVt=Y("tty"),gj=Y("util");Co.init=KVt;Co.log=GVt;Co.formatArgs=BVt;Co.save=VVt;Co.load=WVt;Co.useColors=qVt;Co.destroy=gj.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Co.colors=[6,2,3,4,5,1];try{let e=mj();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 qVt(){return"colors"in Co.inspectOpts?!!Co.inspectOpts.colors:HVt.isatty(process.stderr.fd)}function BVt(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 lMt=Object.create;var oF=Object.defineProperty;var dMt=Object.getOwnPropertyDescriptor;var fMt=Object.getOwnPropertyNames;var pMt=Object.getPrototypeOf,hMt=Object.prototype.hasOwnProperty;var Y=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var v=(e,t)=>()=>(e&&(t=e(e=0)),t);var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ar=(e,t)=>{for(var n in t)oF(e,n,{get:t[n],enumerable:!0})},Bve=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of fMt(t))!hMt.call(e,i)&&i!==n&&oF(e,i,{get:()=>t[i],enumerable:!(r=dMt(t,i))||r.enumerable});return e};var Re=(e,t,n)=>(n=e!=null?lMt(pMt(e)):{},Bve(t||!e||!e.__esModule?oF(n,"default",{value:e,enumerable:!0}):n,e)),ke=e=>Bve(oF({},"__esModule",{value:!0}),e);var cm,S8=v(()=>{cm="1.9.1"});function mMt(e){let t=new Set([e]),n=new Set,r=e.match(zve);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(zve);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 zve,Gve,Vve=v(()=>{S8();zve=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;Gve=mMt(cm)});function Ap(e,t,n,r=!1){var i;let s=pO[fO]=(i=pO[fO])!==null&&i!==void 0?i:{version:cm};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!==cm){let o=new Error(`@opentelemetry/api: Registration of version v${s.version} for ${e} does not match previously registered API v${cm}`);return n.error(o.stack||o.message),!1}return s[e]=t,n.debug(`@opentelemetry/api: Registered a global for ${e} v${cm}.`),!0}function rl(e){var t,n;let r=(t=pO[fO])===null||t===void 0?void 0:t.version;if(!(!r||!Gve(r)))return(n=pO[fO])===null||n===void 0?void 0:n[e]}function wp(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${cm}.`);let n=pO[fO];n&&delete n[e]}var gMt,fO,pO,fE=v(()=>{S8();Vve();gMt=cm.split(".")[0],fO=Symbol.for(`opentelemetry.js.api.${gMt}`),pO=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{}});function hO(e,t,n){let r=rl("diag");if(r)return r[e](t,...n)}var aF,Wve=v(()=>{fE();aF=class{constructor(t){this._namespace=t.namespace||"DiagComponentLogger"}debug(...t){return hO("debug",this._namespace,t)}error(...t){return hO("error",this._namespace,t)}info(...t){return hO("info",this._namespace,t)}warn(...t){return hO("warn",this._namespace,t)}verbose(...t){return hO("verbose",this._namespace,t)}}});var ho,cF=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 Kve(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 Yve=v(()=>{cF()});var yMt,Po,pE=v(()=>{Wve();Yve();cF();fE();yMt="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=Kve((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(yMt,n)},n.createComponentLogger=i=>new aF(i),n.verbose=t("verbose"),n.debug=t("debug"),n.info=t("info"),n.warn=t("warn"),n.error=t("error")}}});var uF,Zve=v(()=>{uF=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 Jve,Xve=v(()=>{Jve=Symbol("BaggageEntryMetadata")});function Qve(e={}){return new uF(new Map(Object.entries(e)))}function $ve(e){return typeof e!="string"&&(SMt.error(`Cannot create baggage metadata from unknown type: ${typeof e}`),e=""),{__TYPE__:Jve,toString(){return e}}}var SMt,b8=v(()=>{pE();Zve();Xve();SMt=Po.instance()});function il(e){return Symbol.for(e)}var E8,lR,mO=v(()=>{E8=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}}},lR=new E8});var _8,T8,lF,eRe=v(()=>{_8=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],T8={};if(typeof console<"u"){let e=["error","warn","info","debug","trace","log"];for(let t of e)typeof console[t]=="function"&&(T8[t]=console[t])}lF=class{constructor(){function t(n){return function(...r){let i=T8[n];if(typeof i!="function"&&(i=T8.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<_8.length;n++)this[_8[n].n]=t(_8[n].c)}}});function tRe(){return P8}var v8,dR,R8,A8,w8,k8,gO,I8,x8,O8,P8,bMt,EMt,_Mt,TMt,vMt,RMt,AMt,N8=v(()=>{v8=class{constructor(){}createGauge(t,n){return EMt}createHistogram(t,n){return _Mt}createCounter(t,n){return bMt}createUpDownCounter(t,n){return TMt}createObservableGauge(t,n){return RMt}createObservableCounter(t,n){return vMt}createObservableUpDownCounter(t,n){return AMt}addBatchObservableCallback(t,n){}removeBatchObservableCallback(t){}},dR=class{},R8=class extends dR{add(t,n){}},A8=class extends dR{add(t,n){}},w8=class extends dR{record(t,n){}},k8=class extends dR{record(t,n){}},gO=class{addCallback(t){}removeCallback(t){}},I8=class extends gO{},x8=class extends gO{},O8=class extends gO{},P8=new v8,bMt=new R8,EMt=new w8,_Mt=new k8,TMt=new A8,vMt=new I8,RMt=new x8,AMt=new O8});var dF,nRe=v(()=>{(function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"})(dF||(dF={}))});var fF,pF,C8=v(()=>{fF={get(e,t){if(e!=null)return e[t]},keys(e){return e==null?[]:Object.keys(e)}},pF={set(e,t,n){e!=null&&(e[t]=n)}}});var hF,rRe=v(()=>{mO();hF=class{active(){return lR}with(t,n,r,...i){return n.call(r,...i)}bind(t,n){return n}enable(){return this}disable(){return this}}});var M8,wMt,kp,yO=v(()=>{rRe();fE();pE();M8="context",wMt=new hF,kp=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalContextManager(t){return Ap(M8,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(M8)||wMt}disable(){this._getContextManager().disable(),wp(M8,Po.instance())}}});var qa,D8=v(()=>{(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(qa||(qa={}))});var SO,hE,mF,gF=v(()=>{D8();SO="0000000000000000",hE="00000000000000000000000000000000",mF={traceId:hE,spanId:SO,traceFlags:qa.NONE}});var Ip,yF=v(()=>{gF();Ip=class{constructor(t=mF){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 SF(e){return e.getValue(L8)||void 0}function iRe(){return SF(kp.getInstance().active())}function bO(e,t){return e.setValue(L8,t)}function sRe(e){return e.deleteValue(L8)}function oRe(e,t){return bO(e,new Ip(t))}function bF(e){var t;return(t=SF(e))===null||t===void 0?void 0:t.spanContext()}var L8,U8=v(()=>{mO();yF();yO();L8=il("OpenTelemetry Context Key SPAN")});function aRe(e,t){if(typeof e!="string"||e.length!==t)return!1;let n=0;for(let r=0;r{gF();yF();EF=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 kMt(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 H8,fR,q8=v(()=>{yO();U8();yF();_F();H8=kp.getInstance(),fR=class{startSpan(t,n,r=H8.active()){if(!!n?.root)return new Ip;let s=r&&bF(r);return kMt(s)&&um(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??H8.active(),u=this.startSpan(t,s,c),l=bO(c,u);return H8.with(l,a,void 0,u)}}});var IMt,pR,B8=v(()=>{q8();IMt=new fR,pR=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):IMt}}});var TF,uRe=v(()=>{q8();TF=class{getTracer(t,n,r){return new fR}}});var xMt,mE,z8=v(()=>{B8();uRe();xMt=new TF,mE=class{getTracer(t,n,r){var i;return(i=this.getDelegateTracer(t,n,r))!==null&&i!==void 0?i:new pR(this,t,n,r)}getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:xMt}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 vF,lRe=v(()=>{(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(vF||(vF={}))});var $r,dRe=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,fRe=v(()=>{(function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"})(as||(as={}))});function pRe(e){return NMt.test(e)}function hRe(e){return CMt.test(e)&&!MMt.test(e)}var G8,OMt,PMt,NMt,CMt,MMt,mRe=v(()=>{G8="[_0-9a-z-*/]",OMt=`[a-z]${G8}{0,255}`,PMt=`[a-z0-9]${G8}{0,240}@[a-z]${G8}{0,13}`,NMt=new RegExp(`^(?:${OMt}|${PMt})$`),CMt=/^[ -~]{0,255}[!-~]$/,MMt=/,|=/});var gRe,DMt,yRe,SRe,RF,bRe=v(()=>{mRe();gRe=32,DMt=512,yRe=",",SRe="=",RF=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+SRe+this.get(n)),t),[]).join(yRe)}_parse(t){t.length>DMt||(this._internalState=t.split(yRe).reduceRight((n,r)=>{let i=r.trim(),s=i.indexOf(SRe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);pRe(o)&&hRe(a)&&n.set(o,a)}return n},new Map),this._internalState.size>gRe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,gRe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}}});function ERe(e){return new RF(e)}var _Re=v(()=>{bRe()});var Ve,TRe=v(()=>{yO();Ve=kp.getInstance()});var sl,vRe=v(()=>{pE();sl=Po.instance()});var V8,RRe,ARe=v(()=>{N8();V8=class{getMeter(t,n,r){return P8}},RRe=new V8});var W8,AF,wRe=v(()=>{ARe();fE();pE();W8="metrics",AF=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalMeterProvider(t){return Ap(W8,t,Po.instance())}getMeterProvider(){return rl(W8)||RRe}getMeter(t,n,r){return this.getMeterProvider().getMeter(t,n,r)}disable(){wp(W8,Po.instance())}}});var K8,kRe=v(()=>{wRe();K8=AF.getInstance()});var wF,IRe=v(()=>{wF=class{inject(t,n){}extract(t,n){return t}fields(){return[]}}});function Z8(e){return e.getValue(Y8)||void 0}function xRe(){return Z8(kp.getInstance().active())}function ORe(e,t){return e.setValue(Y8,t)}function PRe(e){return e.deleteValue(Y8)}var Y8,NRe=v(()=>{yO();mO();Y8=il("OpenTelemetry Baggage Key")});var J8,LMt,kF,CRe=v(()=>{fE();IRe();C8();NRe();b8();pE();J8="propagation",LMt=new wF,kF=class e{constructor(){this.createBaggage=Qve,this.getBaggage=Z8,this.getActiveBaggage=xRe,this.setBaggage=ORe,this.deleteBaggage=PRe}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalPropagator(t){return Ap(J8,t,Po.instance())}inject(t,n,r=pF){return this._getGlobalPropagator().inject(t,n,r)}extract(t,n,r=fF){return this._getGlobalPropagator().extract(t,n,r)}fields(){return this._getGlobalPropagator().fields()}disable(){wp(J8,Po.instance())}_getGlobalPropagator(){return rl(J8)||LMt}}});var Qd,MRe=v(()=>{CRe();Qd=kF.getInstance()});var X8,IF,DRe=v(()=>{fE();z8();_F();U8();pE();X8="trace",IF=class e{constructor(){this._proxyTracerProvider=new mE,this.wrapSpanContext=cRe,this.isSpanContextValid=um,this.deleteSpan=sRe,this.getSpan=SF,this.getActiveSpan=iRe,this.getSpanContext=bF,this.setSpan=bO,this.setSpanContext=oRe}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalTracerProvider(t){let n=Ap(X8,this._proxyTracerProvider,Po.instance());return n&&this._proxyTracerProvider.setDelegate(t),n}getTracerProvider(){return rl(X8)||this._proxyTracerProvider}getTracer(t,n){return this.getTracerProvider().getTracer(t,n)}disable(){wp(X8,Po.instance()),this._proxyTracerProvider=new mE}}});var jt,LRe=v(()=>{DRe();jt=IF.getInstance()});var Ze={};Ar(Ze,{DiagConsoleLogger:()=>lF,DiagLogLevel:()=>ho,INVALID_SPANID:()=>SO,INVALID_SPAN_CONTEXT:()=>mF,INVALID_TRACEID:()=>hE,ProxyTracer:()=>pR,ProxyTracerProvider:()=>mE,ROOT_CONTEXT:()=>lR,SamplingDecision:()=>vF,SpanKind:()=>$r,SpanStatusCode:()=>as,TraceFlags:()=>qa,ValueType:()=>dF,baggageEntryMetadataFromString:()=>$ve,context:()=>Ve,createContextKey:()=>il,createNoopMeter:()=>tRe,createTraceState:()=>ERe,default:()=>UMt,defaultTextMapGetter:()=>fF,defaultTextMapSetter:()=>pF,diag:()=>sl,isSpanContextValid:()=>um,isValidSpanId:()=>j8,isValidTraceId:()=>F8,metrics:()=>K8,propagation:()=>Qd,trace:()=>jt});var UMt,Me=v(()=>{b8();mO();eRe();cF();N8();nRe();C8();B8();z8();lRe();dRe();fRe();D8();_Re();_F();gF();TRe();vRe();kRe();MRe();LRe();UMt={context:Ve,diag:sl,metrics:K8,propagation:Qd,trace:jt}});var EO=w(dy=>{"use strict";Object.defineProperty(dy,"__esModule",{value:!0});dy.isTracingSuppressed=dy.unsuppressTracing=dy.suppressTracing=void 0;var FMt=(Me(),ke(Ze)),Q8=(0,FMt.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function jMt(e){return e.setValue(Q8,!0)}dy.suppressTracing=jMt;function HMt(e){return e.deleteValue(Q8)}dy.unsuppressTracing=HMt;function qMt(e){return e.getValue(Q8)===!0}dy.isTracingSuppressed=qMt});var $8=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 e7=w(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});xp.parseKeyPairsIntoRecord=xp.parsePairKeyValue=xp.getKeyPairs=xp.serializeKeyPairs=void 0;var BMt=(Me(),ke(Ze)),hR=$8();function zMt(e){return e.reduce((t,n)=>{let r=`${t}${t!==""?hR.BAGGAGE_ITEMS_SEPARATOR:""}${n}`;return r.length>hR.BAGGAGE_MAX_TOTAL_LENGTH?t:r},"")}xp.serializeKeyPairs=zMt;function GMt(e){return e.getAllEntries().map(([t,n])=>{let r=`${encodeURIComponent(t)}=${encodeURIComponent(n.value)}`;return n.metadata!==void 0&&(r+=hR.BAGGAGE_PROPERTIES_SEPARATOR+n.metadata.toString()),r})}xp.getKeyPairs=GMt;function URe(e){if(!e)return;let t=e.indexOf(hR.BAGGAGE_PROPERTIES_SEPARATOR),n=t===-1?e:e.substring(0,t),r=n.indexOf(hR.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(hR.BAGGAGE_ITEMS_SEPARATOR).forEach(n=>{let r=URe(n);r!==void 0&&r.value.length>0&&(t[r.key]=r.value)}),t}xp.parseKeyPairsIntoRecord=VMt});var FRe=w(xF=>{"use strict";Object.defineProperty(xF,"__esModule",{value:!0});xF.W3CBaggagePropagator=void 0;var t7=(Me(),ke(Ze)),WMt=EO(),gE=$8(),n7=e7(),r7=class{inject(t,n,r){let i=t7.propagation.getBaggage(t);if(!i||(0,WMt.isTracingSuppressed)(t))return;let s=(0,n7.getKeyPairs)(i).filter(a=>a.length<=gE.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,gE.BAGGAGE_MAX_NAME_VALUE_PAIRS),o=(0,n7.serializeKeyPairs)(s);o.length>0&&r.set(n,gE.BAGGAGE_HEADER,o)}extract(t,n,r){let i=r.get(n,gE.BAGGAGE_HEADER),s=Array.isArray(i)?i.join(gE.BAGGAGE_ITEMS_SEPARATOR):i;if(!s)return t;let o={};return s.length===0||(s.split(gE.BAGGAGE_ITEMS_SEPARATOR).forEach(c=>{let u=(0,n7.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:t7.propagation.setBaggage(t,t7.propagation.createBaggage(o))}fields(){return[gE.BAGGAGE_HEADER]}};xF.W3CBaggagePropagator=r7});var jRe=w(OF=>{"use strict";Object.defineProperty(OF,"__esModule",{value:!0});OF.AnchoredClock=void 0;var i7=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}};OF.AnchoredClock=i7});var GRe=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.isAttributeValue=fy.isAttributeKey=fy.sanitizeAttributes=void 0;var HRe=(Me(),ke(Ze));function KMt(e){let t={};if(typeof e!="object"||e==null)return t;for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;if(!qRe(n)){HRe.diag.warn(`Invalid attribute key: ${n}`);continue}let r=e[n];if(!BRe(r)){HRe.diag.warn(`Invalid attribute value set for key: ${n}`);continue}Array.isArray(r)?t[n]=r.slice():t[n]=r}return t}fy.sanitizeAttributes=KMt;function qRe(e){return typeof e=="string"&&e!==""}fy.isAttributeKey=qRe;function BRe(e){return e==null?!0:Array.isArray(e)?YMt(e):zRe(typeof e)}fy.isAttributeValue=BRe;function YMt(e){let t;for(let n of e){if(n==null)continue;let r=typeof n;if(r!==t){if(!t){if(zRe(r)){t=r;continue}return!1}return!1}}return!0}function zRe(e){switch(e){case"number":case"boolean":case"string":return!0}return!1}});var s7=w(PF=>{"use strict";Object.defineProperty(PF,"__esModule",{value:!0});PF.loggingErrorHandler=void 0;var ZMt=(Me(),ke(Ze));function JMt(){return e=>{ZMt.diag.error(XMt(e))}}PF.loggingErrorHandler=JMt;function XMt(e){return typeof e=="string"?e:JSON.stringify(QMt(e))}function QMt(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 WRe=w(mR=>{"use strict";Object.defineProperty(mR,"__esModule",{value:!0});mR.globalErrorHandler=mR.setGlobalErrorHandler=void 0;var $Mt=s7(),VRe=(0,$Mt.loggingErrorHandler)();function eDt(e){VRe=e}mR.setGlobalErrorHandler=eDt;function tDt(e){try{VRe(e)}catch{}}mR.globalErrorHandler=tDt});var JRe=w(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});Op.getStringListFromEnv=Op.getBooleanFromEnv=Op.getStringFromEnv=Op.getNumberFromEnv=void 0;var KRe=(Me(),ke(Ze)),YRe=Y("util");function nDt(e){let t=process.env[e];if(t==null||t.trim()==="")return;let n=Number(t);if(isNaN(n)){KRe.diag.warn(`Unknown value ${(0,YRe.inspect)(t)} for ${e}, expected a number, using defaults`);return}return n}Op.getNumberFromEnv=nDt;function ZRe(e){let t=process.env[e];if(!(t==null||t.trim()===""))return t}Op.getStringFromEnv=ZRe;function rDt(e){let t=process.env[e]?.trim().toLowerCase();return t==null||t===""?!1:t==="true"?!0:(t==="false"||KRe.diag.warn(`Unknown value ${(0,YRe.inspect)(t)} for ${e}, expected 'true' or 'false', falling back to 'false' (default)`),!1)}Op.getBooleanFromEnv=rDt;function iDt(e){return ZRe(e)?.split(",").map(t=>t.trim()).filter(t=>t!=="")}Op.getStringListFromEnv=iDt});var XRe=w(NF=>{"use strict";Object.defineProperty(NF,"__esModule",{value:!0});NF._globalThis=void 0;NF._globalThis=globalThis});var QRe=w(CF=>{"use strict";Object.defineProperty(CF,"__esModule",{value:!0});CF.VERSION=void 0;CF.VERSION="2.6.1"});function ws(e){let t={},n=e.length;for(let r=0;r{});var $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,fke,pke,hke,mke,gke,yke,Ske,sDt,a7,oDt,aDt,cDt,uDt,c7,lDt,dDt,fDt,pDt,hDt,mDt,gDt,yDt,SDt,bDt,EDt,_Dt,TDt,vDt,RDt,ADt,wDt,kDt,u7,IDt,xDt,ODt,PDt,NDt,CDt,MDt,DDt,LDt,UDt,FDt,jDt,l7,HDt,qDt,d7,f7,BDt,zDt,GDt,VDt,WDt,KDt,YDt,ZDt,JDt,XDt,QDt,$Dt,eLt,tLt,nLt,rLt,iLt,_O,gR,p7,sLt,oLt,yE,aLt,cLt,uLt,lLt,h7,m7,dLt,g7,fLt,pLt,hLt,mLt,gLt,yLt,SLt,bLt,ELt,_Lt,TLt,vLt,RLt,ALt,wLt,kLt,ILt,xLt,OLt,PLt,NLt,CLt,MLt,y7,DLt,LLt,ULt,FLt,jLt,HLt,qLt,BLt,zLt,GLt,VLt,WLt,KLt,YLt,ZLt,JLt,XLt,QLt,$Lt,S7,e1t,b7,t1t,n1t,r1t,i1t,s1t,o1t,a1t,c1t,u1t,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,sIe,oIe,aIe,cIe,uIe,lIe,dIe,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,Y1t,Z1t,J1t,X1t,Q1t,$1t,eUt,tUt,nUt,rUt,fIe,pIe,hIe,mIe,gIe,yIe,SIe,bIe,EIe,_Ie,TIe,iUt,sUt,oUt,aUt,cUt,uUt,lUt,dUt,fUt,pUt,hUt,mUt,vIe,RIe,AIe,wIe,kIe,gUt,yUt,SUt,bUt,EUt,_Ut,IIe,xIe,OIe,TUt,vUt,RUt,AUt,PIe,NIe,CIe,MIe,wUt,kUt,IUt,xUt,OUt,DIe,LIe,UIe,FIe,jIe,HIe,qIe,PUt,NUt,CUt,MUt,DUt,LUt,UUt,FUt,BIe,zIe,GIe,VIe,WIe,jUt,HUt,qUt,BUt,zUt,GUt,KIe,YIe,ZIe,JIe,XIe,QIe,$Ie,e0e,t0e,n0e,r0e,i0e,s0e,o0e,a0e,c0e,u0e,l0e,d0e,f0e,p0e,VUt,WUt,KUt,YUt,ZUt,JUt,XUt,QUt,$Ut,eFt,tFt,nFt,rFt,iFt,sFt,oFt,aFt,cFt,uFt,lFt,dFt,fFt,h0e,m0e,g0e,y0e,S0e,pFt,hFt,mFt,gFt,yFt,SFt,b0e,E0e,bFt,EFt,_Ft,_0e,T0e,TFt,vFt,RFt,v0e,R0e,A0e,w0e,k0e,I0e,x0e,O0e,P0e,N0e,C0e,M0e,D0e,L0e,U0e,F0e,j0e,AFt,wFt,kFt,IFt,xFt,OFt,PFt,NFt,CFt,MFt,DFt,LFt,UFt,FFt,jFt,HFt,qFt,BFt,H0e,q0e,zFt,GFt,VFt,B0e=v(()=>{o7();$Re="aws.lambda.invoked_arn",eAe="db.system",tAe="db.connection_string",nAe="db.user",rAe="db.jdbc.driver_classname",iAe="db.name",sAe="db.statement",oAe="db.operation",aAe="db.mssql.instance_name",cAe="db.cassandra.keyspace",uAe="db.cassandra.page_size",lAe="db.cassandra.consistency_level",dAe="db.cassandra.table",fAe="db.cassandra.idempotence",pAe="db.cassandra.speculative_execution_count",hAe="db.cassandra.coordinator.id",mAe="db.cassandra.coordinator.dc",gAe="db.hbase.namespace",yAe="db.redis.database_index",SAe="db.mongodb.collection",bAe="db.sql.table",EAe="exception.type",_Ae="exception.message",TAe="exception.stacktrace",vAe="exception.escaped",RAe="faas.trigger",AAe="faas.execution",wAe="faas.document.collection",kAe="faas.document.operation",IAe="faas.document.time",xAe="faas.document.name",OAe="faas.time",PAe="faas.cron",NAe="faas.coldstart",CAe="faas.invoked_name",MAe="faas.invoked_provider",DAe="faas.invoked_region",LAe="net.transport",UAe="net.peer.ip",FAe="net.peer.port",jAe="net.peer.name",HAe="net.host.ip",qAe="net.host.port",BAe="net.host.name",zAe="net.host.connection.type",GAe="net.host.connection.subtype",VAe="net.host.carrier.name",WAe="net.host.carrier.mcc",KAe="net.host.carrier.mnc",YAe="net.host.carrier.icc",ZAe="peer.service",JAe="enduser.id",XAe="enduser.role",QAe="enduser.scope",$Ae="thread.id",ewe="thread.name",twe="code.function",nwe="code.namespace",rwe="code.filepath",iwe="code.lineno",swe="http.method",owe="http.url",awe="http.target",cwe="http.host",uwe="http.scheme",lwe="http.status_code",dwe="http.flavor",fwe="http.user_agent",pwe="http.request_content_length",hwe="http.request_content_length_uncompressed",mwe="http.response_content_length",gwe="http.response_content_length_uncompressed",ywe="http.server_name",Swe="http.route",bwe="http.client_ip",Ewe="aws.dynamodb.table_names",_we="aws.dynamodb.consumed_capacity",Twe="aws.dynamodb.item_collection_metrics",vwe="aws.dynamodb.provisioned_read_capacity",Rwe="aws.dynamodb.provisioned_write_capacity",Awe="aws.dynamodb.consistent_read",wwe="aws.dynamodb.projection",kwe="aws.dynamodb.limit",Iwe="aws.dynamodb.attributes_to_get",xwe="aws.dynamodb.index_name",Owe="aws.dynamodb.select",Pwe="aws.dynamodb.global_secondary_indexes",Nwe="aws.dynamodb.local_secondary_indexes",Cwe="aws.dynamodb.exclusive_start_table",Mwe="aws.dynamodb.table_count",Dwe="aws.dynamodb.scan_forward",Lwe="aws.dynamodb.segment",Uwe="aws.dynamodb.total_segments",Fwe="aws.dynamodb.count",jwe="aws.dynamodb.scanned_count",Hwe="aws.dynamodb.attribute_definitions",qwe="aws.dynamodb.global_secondary_index_updates",Bwe="messaging.system",zwe="messaging.destination",Gwe="messaging.destination_kind",Vwe="messaging.temp_destination",Wwe="messaging.protocol",Kwe="messaging.protocol_version",Ywe="messaging.url",Zwe="messaging.message_id",Jwe="messaging.conversation_id",Xwe="messaging.message_payload_size_bytes",Qwe="messaging.message_payload_compressed_size_bytes",$we="messaging.operation",eke="messaging.consumer_id",tke="messaging.rabbitmq.routing_key",nke="messaging.kafka.message_key",rke="messaging.kafka.consumer_group",ike="messaging.kafka.client_id",ske="messaging.kafka.partition",oke="messaging.kafka.tombstone",ake="rpc.system",cke="rpc.service",uke="rpc.method",lke="rpc.grpc.status_code",dke="rpc.jsonrpc.version",fke="rpc.jsonrpc.request_id",pke="rpc.jsonrpc.error_code",hke="rpc.jsonrpc.error_message",mke="message.type",gke="message.id",yke="message.compressed_size",Ske="message.uncompressed_size",sDt=$Re,a7=eAe,oDt=tAe,aDt=nAe,cDt=rAe,uDt=iAe,c7=sAe,lDt=oAe,dDt=aAe,fDt=cAe,pDt=uAe,hDt=lAe,mDt=dAe,gDt=fAe,yDt=pAe,SDt=hAe,bDt=mAe,EDt=gAe,_Dt=yAe,TDt=SAe,vDt=bAe,RDt=EAe,ADt=_Ae,wDt=TAe,kDt=vAe,u7=RAe,IDt=AAe,xDt=wAe,ODt=kAe,PDt=IAe,NDt=xAe,CDt=OAe,MDt=PAe,DDt=NAe,LDt=CAe,UDt=MAe,FDt=DAe,jDt=LAe,l7=UAe,HDt=FAe,qDt=jAe,d7=HAe,f7=qAe,BDt=BAe,zDt=zAe,GDt=GAe,VDt=VAe,WDt=WAe,KDt=KAe,YDt=YAe,ZDt=ZAe,JDt=JAe,XDt=XAe,QDt=QAe,$Dt=$Ae,eLt=ewe,tLt=twe,nLt=nwe,rLt=rwe,iLt=iwe,_O=swe,gR=owe,p7=awe,sLt=cwe,oLt=uwe,yE=lwe,aLt=dwe,cLt=fwe,uLt=pwe,lLt=hwe,h7=mwe,m7=gwe,dLt=ywe,g7=Swe,fLt=bwe,pLt=Ewe,hLt=_we,mLt=Twe,gLt=vwe,yLt=Rwe,SLt=Awe,bLt=wwe,ELt=kwe,_Lt=Iwe,TLt=xwe,vLt=Owe,RLt=Pwe,ALt=Nwe,wLt=Cwe,kLt=Mwe,ILt=Dwe,xLt=Lwe,OLt=Uwe,PLt=Fwe,NLt=jwe,CLt=Hwe,MLt=qwe,y7=Bwe,DLt=zwe,LLt=Gwe,ULt=Vwe,FLt=Wwe,jLt=Kwe,HLt=Ywe,qLt=Zwe,BLt=Jwe,zLt=Xwe,GLt=Qwe,VLt=$we,WLt=eke,KLt=tke,YLt=nke,ZLt=rke,JLt=ike,XLt=ske,QLt=oke,$Lt=ake,S7=cke,e1t=uke,b7=lke,t1t=dke,n1t=fke,r1t=pke,i1t=hke,s1t=mke,o1t=gke,a1t=yke,c1t=Ske,u1t=ws([$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,fke,pke,hke,mke,gke,yke,Ske]),bke="other_sql",Eke="mssql",_ke="mysql",Tke="oracle",vke="db2",Rke="postgresql",Ake="redshift",wke="hive",kke="cloudscape",Ike="hsqldb",xke="progress",Oke="maxdb",Pke="hanadb",Nke="ingres",Cke="firstsql",Mke="edb",Dke="cache",Lke="adabas",Uke="firebird",Fke="derby",jke="filemaker",Hke="informix",qke="instantdb",Bke="interbase",zke="mariadb",Gke="netezza",Vke="pervasive",Wke="pointbase",Kke="sqlite",Yke="sybase",Zke="teradata",Jke="vertica",Xke="h2",Qke="coldfusion",$ke="cassandra",eIe="hbase",tIe="mongodb",nIe="redis",rIe="couchbase",iIe="couchdb",sIe="cosmosdb",oIe="dynamodb",aIe="neo4j",cIe="geode",uIe="elasticsearch",lIe="memcached",dIe="cockroachdb",l1t=bke,d1t=Eke,f1t=_ke,p1t=Tke,h1t=vke,m1t=Rke,g1t=Ake,y1t=wke,S1t=kke,b1t=Ike,E1t=xke,_1t=Oke,T1t=Pke,v1t=Nke,R1t=Cke,A1t=Mke,w1t=Dke,k1t=Lke,I1t=Uke,x1t=Fke,O1t=jke,P1t=Hke,N1t=qke,C1t=Bke,M1t=zke,D1t=Gke,L1t=Vke,U1t=Wke,F1t=Kke,j1t=Yke,H1t=Zke,q1t=Jke,B1t=Xke,z1t=Qke,G1t=$ke,V1t=eIe,W1t=tIe,K1t=nIe,Y1t=rIe,Z1t=iIe,J1t=sIe,X1t=oIe,Q1t=aIe,$1t=cIe,eUt=uIe,tUt=lIe,nUt=dIe,rUt=ws([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,sIe,oIe,aIe,cIe,uIe,lIe,dIe]),fIe="all",pIe="each_quorum",hIe="quorum",mIe="local_quorum",gIe="one",yIe="two",SIe="three",bIe="local_one",EIe="any",_Ie="serial",TIe="local_serial",iUt=fIe,sUt=pIe,oUt=hIe,aUt=mIe,cUt=gIe,uUt=yIe,lUt=SIe,dUt=bIe,fUt=EIe,pUt=_Ie,hUt=TIe,mUt=ws([fIe,pIe,hIe,mIe,gIe,yIe,SIe,bIe,EIe,_Ie,TIe]),vIe="datasource",RIe="http",AIe="pubsub",wIe="timer",kIe="other",gUt=vIe,yUt=RIe,SUt=AIe,bUt=wIe,EUt=kIe,_Ut=ws([vIe,RIe,AIe,wIe,kIe]),IIe="insert",xIe="edit",OIe="delete",TUt=IIe,vUt=xIe,RUt=OIe,AUt=ws([IIe,xIe,OIe]),PIe="alibaba_cloud",NIe="aws",CIe="azure",MIe="gcp",wUt=PIe,kUt=NIe,IUt=CIe,xUt=MIe,OUt=ws([PIe,NIe,CIe,MIe]),DIe="ip_tcp",LIe="ip_udp",UIe="ip",FIe="unix",jIe="pipe",HIe="inproc",qIe="other",PUt=DIe,NUt=LIe,CUt=UIe,MUt=FIe,DUt=jIe,LUt=HIe,UUt=qIe,FUt=ws([DIe,LIe,UIe,FIe,jIe,HIe,qIe]),BIe="wifi",zIe="wired",GIe="cell",VIe="unavailable",WIe="unknown",jUt=BIe,HUt=zIe,qUt=GIe,BUt=VIe,zUt=WIe,GUt=ws([BIe,zIe,GIe,VIe,WIe]),KIe="gprs",YIe="edge",ZIe="umts",JIe="cdma",XIe="evdo_0",QIe="evdo_a",$Ie="cdma2000_1xrtt",e0e="hsdpa",t0e="hsupa",n0e="hspa",r0e="iden",i0e="evdo_b",s0e="lte",o0e="ehrpd",a0e="hspap",c0e="gsm",u0e="td_scdma",l0e="iwlan",d0e="nr",f0e="nrnsa",p0e="lte_ca",VUt=KIe,WUt=YIe,KUt=ZIe,YUt=JIe,ZUt=XIe,JUt=QIe,XUt=$Ie,QUt=e0e,$Ut=t0e,eFt=n0e,tFt=r0e,nFt=i0e,rFt=s0e,iFt=o0e,sFt=a0e,oFt=c0e,aFt=u0e,cFt=l0e,uFt=d0e,lFt=f0e,dFt=p0e,fFt=ws([KIe,YIe,ZIe,JIe,XIe,QIe,$Ie,e0e,t0e,n0e,r0e,i0e,s0e,o0e,a0e,c0e,u0e,l0e,d0e,f0e,p0e]),h0e="1.0",m0e="1.1",g0e="2.0",y0e="SPDY",S0e="QUIC",pFt=h0e,hFt=m0e,mFt=g0e,gFt=y0e,yFt=S0e,SFt={HTTP_1_0:h0e,HTTP_1_1:m0e,HTTP_2_0:g0e,SPDY:y0e,QUIC:S0e},b0e="queue",E0e="topic",bFt=b0e,EFt=E0e,_Ft=ws([b0e,E0e]),_0e="receive",T0e="process",TFt=_0e,vFt=T0e,RFt=ws([_0e,T0e]),v0e=0,R0e=1,A0e=2,w0e=3,k0e=4,I0e=5,x0e=6,O0e=7,P0e=8,N0e=9,C0e=10,M0e=11,D0e=12,L0e=13,U0e=14,F0e=15,j0e=16,AFt=v0e,wFt=R0e,kFt=A0e,IFt=w0e,xFt=k0e,OFt=I0e,PFt=x0e,NFt=O0e,CFt=P0e,MFt=N0e,DFt=C0e,LFt=M0e,UFt=D0e,FFt=L0e,jFt=U0e,HFt=F0e,qFt=j0e,BFt={OK:v0e,CANCELLED:R0e,UNKNOWN:A0e,INVALID_ARGUMENT:w0e,DEADLINE_EXCEEDED:k0e,NOT_FOUND:I0e,ALREADY_EXISTS:x0e,PERMISSION_DENIED:O0e,RESOURCE_EXHAUSTED:P0e,FAILED_PRECONDITION:N0e,ABORTED:C0e,OUT_OF_RANGE:M0e,UNIMPLEMENTED:D0e,INTERNAL:L0e,UNAVAILABLE:U0e,DATA_LOSS:F0e,UNAUTHENTICATED:j0e},H0e="SENT",q0e="RECEIVED",zFt=H0e,GFt=q0e,VFt=ws([H0e,q0e])});var z0e=v(()=>{B0e()});var 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,lOe,dOe,fOe,pOe,hOe,mOe,gOe,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,$jt,eHt,tHt,nHt,rHt,iHt,sHt,oHt,aHt,cHt,E7,uHt,lHt,dHt,fHt,pHt,hHt,mHt,gHt,yHt,SHt,yOe,SOe,bOe,EOe,bHt,EHt,_Ht,THt,vHt,_Oe,TOe,vOe,ROe,AOe,wOe,kOe,IOe,xOe,OOe,POe,NOe,COe,MOe,DOe,LOe,UOe,RHt,AHt,wHt,kHt,IHt,xHt,OHt,PHt,NHt,CHt,MHt,DHt,LHt,UHt,FHt,jHt,HHt,qHt,FOe,jOe,BHt,zHt,GHt,HOe,qOe,BOe,zOe,GOe,VOe,WOe,VHt,WHt,KHt,YHt,ZHt,JHt,XHt,QHt,KOe,YOe,ZOe,JOe,XOe,QOe,$Oe,ePe,tPe,nPe,rPe,$Ht,eqt,tqt,nqt,rqt,iqt,sqt,oqt,aqt,cqt,uqt,lqt,iPe,sPe,oPe,aPe,cPe,uPe,lPe,dPe,fPe,pPe,dqt,fqt,pqt,hqt,mqt,gqt,yqt,Sqt,bqt,Eqt,_qt,hPe=v(()=>{o7();G0e="cloud.provider",V0e="cloud.account.id",W0e="cloud.region",K0e="cloud.availability_zone",Y0e="cloud.platform",Z0e="aws.ecs.container.arn",J0e="aws.ecs.cluster.arn",X0e="aws.ecs.launchtype",Q0e="aws.ecs.task.arn",$0e="aws.ecs.task.family",exe="aws.ecs.task.revision",txe="aws.eks.cluster.arn",nxe="aws.log.group.names",rxe="aws.log.group.arns",ixe="aws.log.stream.names",sxe="aws.log.stream.arns",oxe="container.name",axe="container.id",cxe="container.runtime",uxe="container.image.name",lxe="container.image.tag",dxe="deployment.environment",fxe="device.id",pxe="device.model.identifier",hxe="device.model.name",mxe="faas.name",gxe="faas.id",yxe="faas.version",Sxe="faas.instance",bxe="faas.max_memory",Exe="host.id",_xe="host.name",Txe="host.type",vxe="host.arch",Rxe="host.image.name",Axe="host.image.id",wxe="host.image.version",kxe="k8s.cluster.name",Ixe="k8s.node.name",xxe="k8s.node.uid",Oxe="k8s.namespace.name",Pxe="k8s.pod.uid",Nxe="k8s.pod.name",Cxe="k8s.container.name",Mxe="k8s.replicaset.uid",Dxe="k8s.replicaset.name",Lxe="k8s.deployment.uid",Uxe="k8s.deployment.name",Fxe="k8s.statefulset.uid",jxe="k8s.statefulset.name",Hxe="k8s.daemonset.uid",qxe="k8s.daemonset.name",Bxe="k8s.job.uid",zxe="k8s.job.name",Gxe="k8s.cronjob.uid",Vxe="k8s.cronjob.name",Wxe="os.type",Kxe="os.description",Yxe="os.name",Zxe="os.version",Jxe="process.pid",Xxe="process.executable.name",Qxe="process.executable.path",$xe="process.command",eOe="process.command_line",tOe="process.command_args",nOe="process.owner",rOe="process.runtime.name",iOe="process.runtime.version",sOe="process.runtime.description",oOe="service.name",aOe="service.namespace",cOe="service.instance.id",uOe="service.version",lOe="telemetry.sdk.name",dOe="telemetry.sdk.language",fOe="telemetry.sdk.version",pOe="telemetry.auto.version",hOe="webengine.name",mOe="webengine.version",gOe="webengine.description",WFt=G0e,KFt=V0e,YFt=W0e,ZFt=K0e,JFt=Y0e,XFt=Z0e,QFt=J0e,$Ft=X0e,ejt=Q0e,tjt=$0e,njt=exe,rjt=txe,ijt=nxe,sjt=rxe,ojt=ixe,ajt=sxe,cjt=oxe,ujt=axe,ljt=cxe,djt=uxe,fjt=lxe,pjt=dxe,hjt=fxe,mjt=pxe,gjt=hxe,yjt=mxe,Sjt=gxe,bjt=yxe,Ejt=Sxe,_jt=bxe,Tjt=Exe,vjt=_xe,Rjt=Txe,Ajt=vxe,wjt=Rxe,kjt=Axe,Ijt=wxe,xjt=kxe,Ojt=Ixe,Pjt=xxe,Njt=Oxe,Cjt=Pxe,Mjt=Nxe,Djt=Cxe,Ljt=Mxe,Ujt=Dxe,Fjt=Lxe,jjt=Uxe,Hjt=Fxe,qjt=jxe,Bjt=Hxe,zjt=qxe,Gjt=Bxe,Vjt=zxe,Wjt=Gxe,Kjt=Vxe,Yjt=Wxe,Zjt=Kxe,Jjt=Yxe,Xjt=Zxe,Qjt=Jxe,$jt=Xxe,eHt=Qxe,tHt=$xe,nHt=eOe,rHt=tOe,iHt=nOe,sHt=rOe,oHt=iOe,aHt=sOe,cHt=oOe,E7=aOe,uHt=cOe,lHt=uOe,dHt=lOe,fHt=dOe,pHt=fOe,hHt=pOe,mHt=hOe,gHt=mOe,yHt=gOe,SHt=ws([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,lOe,dOe,fOe,pOe,hOe,mOe,gOe]),yOe="alibaba_cloud",SOe="aws",bOe="azure",EOe="gcp",bHt=yOe,EHt=SOe,_Ht=bOe,THt=EOe,vHt=ws([yOe,SOe,bOe,EOe]),_Oe="alibaba_cloud_ecs",TOe="alibaba_cloud_fc",vOe="aws_ec2",ROe="aws_ecs",AOe="aws_eks",wOe="aws_lambda",kOe="aws_elastic_beanstalk",IOe="azure_vm",xOe="azure_container_instances",OOe="azure_aks",POe="azure_functions",NOe="azure_app_service",COe="gcp_compute_engine",MOe="gcp_cloud_run",DOe="gcp_kubernetes_engine",LOe="gcp_cloud_functions",UOe="gcp_app_engine",RHt=_Oe,AHt=TOe,wHt=vOe,kHt=ROe,IHt=AOe,xHt=wOe,OHt=kOe,PHt=IOe,NHt=xOe,CHt=OOe,MHt=POe,DHt=NOe,LHt=COe,UHt=MOe,FHt=DOe,jHt=LOe,HHt=UOe,qHt=ws([_Oe,TOe,vOe,ROe,AOe,wOe,kOe,IOe,xOe,OOe,POe,NOe,COe,MOe,DOe,LOe,UOe]),FOe="ec2",jOe="fargate",BHt=FOe,zHt=jOe,GHt=ws([FOe,jOe]),HOe="amd64",qOe="arm32",BOe="arm64",zOe="ia64",GOe="ppc32",VOe="ppc64",WOe="x86",VHt=HOe,WHt=qOe,KHt=BOe,YHt=zOe,ZHt=GOe,JHt=VOe,XHt=WOe,QHt=ws([HOe,qOe,BOe,zOe,GOe,VOe,WOe]),KOe="windows",YOe="linux",ZOe="darwin",JOe="freebsd",XOe="netbsd",QOe="openbsd",$Oe="dragonflybsd",ePe="hpux",tPe="aix",nPe="solaris",rPe="z_os",$Ht=KOe,eqt=YOe,tqt=ZOe,nqt=JOe,rqt=XOe,iqt=QOe,sqt=$Oe,oqt=ePe,aqt=tPe,cqt=nPe,uqt=rPe,lqt=ws([KOe,YOe,ZOe,JOe,XOe,QOe,$Oe,ePe,tPe,nPe,rPe]),iPe="cpp",sPe="dotnet",oPe="erlang",aPe="go",cPe="java",uPe="nodejs",lPe="php",dPe="python",fPe="ruby",pPe="webjs",dqt=iPe,fqt=sPe,pqt=oPe,hqt=aPe,mqt=cPe,gqt=uPe,yqt=lPe,Sqt=dPe,bqt=fPe,Eqt=pPe,_qt=ws([iPe,sPe,oPe,aPe,cPe,uPe,lPe,dPe,fPe,pPe])});var mPe=v(()=>{hPe()});var Tqt,vqt,Rqt,Aqt,wqt,kqt,Iqt,xqt,Oqt,Pqt,Nqt,Cqt,Mqt,Dqt,Lqt,Uqt,Fqt,jqt,Hqt,qqt,Bqt,zqt,Gqt,Vqt,Wqt,_7,T7,Kqt,yR,Yqt,v7,R7,Zqt,SE,Jqt,Xqt,Qqt,$qt,eBt,tBt,nBt,rBt,Wyr,Kyr,A7,iBt,sBt,oBt,aBt,cBt,uBt,bE,lBt,dBt,fBt,Yyr,pBt,hBt,mBt,gBt,Zyr,yBt,SBt,bBt,EBt,lm,dm,_Bt,TBt,vBt,RBt,ABt,wBt,kBt,IBt,xBt,Jyr,OBt,PBt,NBt,CBt,MBt,DBt,w7,k7,LBt,I7,x7,UBt,FBt,Xyr,Qyr,jBt,HBt,qBt,BBt,zBt,GBt,VBt,WBt,$yr,KBt,O7,P7,YBt,N7,ZBt,C7,JBt,XBt,QBt,$Bt,ezt,tzt,nzt,rzt,izt,eSr,szt,ozt,tSr,azt,czt,nSr,uzt,lzt,dzt,fzt,pzt,hzt,mzt,gzt,py,yzt,Szt,bzt,M7,gPe=v(()=>{Tqt="aspnetcore.diagnostics.exception.result",vqt="aborted",Rqt="handled",Aqt="skipped",wqt="unhandled",kqt="aspnetcore.diagnostics.handler.type",Iqt="aspnetcore.rate_limiting.policy",xqt="aspnetcore.rate_limiting.result",Oqt="acquired",Pqt="endpoint_limiter",Nqt="global_limiter",Cqt="request_canceled",Mqt="aspnetcore.request.is_unhandled",Dqt="aspnetcore.routing.is_fallback",Lqt="aspnetcore.routing.match_status",Uqt="failure",Fqt="success",jqt="aspnetcore.user.is_authenticated",Hqt="client.address",qqt="client.port",Bqt="code.column.number",zqt="code.file.path",Gqt="code.function.name",Vqt="code.line.number",Wqt="code.stacktrace",_7="db.collection.name",T7="db.namespace",Kqt="db.operation.batch.size",yR="db.operation.name",Yqt="db.query.summary",v7="db.query.text",R7="db.response.status_code",Zqt="db.stored_procedure.name",SE="db.system.name",Jqt="mariadb",Xqt="microsoft.sql_server",Qqt="mysql",$qt="postgresql",eBt="dotnet.gc.heap.generation",tBt="gen0",nBt="gen1",rBt="gen2",Wyr="loh",Kyr="poh",A7="error.type",iBt="_OTHER",sBt="exception.escaped",oBt="exception.message",aBt="exception.stacktrace",cBt="exception.type",uBt=e=>`http.request.header.${e}`,bE="http.request.method",lBt="_OTHER",dBt="CONNECT",fBt="DELETE",Yyr="GET",pBt="HEAD",hBt="OPTIONS",mBt="PATCH",gBt="POST",Zyr="PUT",yBt="TRACE",SBt="http.request.method_original",bBt="http.request.resend_count",EBt=e=>`http.response.header.${e}`,lm="http.response.status_code",dm="http.route",_Bt="jvm.gc.action",TBt="jvm.gc.name",vBt="jvm.memory.pool.name",RBt="jvm.memory.type",ABt="heap",wBt="non_heap",kBt="jvm.thread.daemon",IBt="jvm.thread.state",xBt="blocked",Jyr="new",OBt="runnable",PBt="terminated",NBt="timed_waiting",CBt="waiting",MBt="network.local.address",DBt="network.local.port",w7="network.peer.address",k7="network.peer.port",LBt="network.protocol.name",I7="network.protocol.version",x7="network.transport",UBt="pipe",FBt="quic",Xyr="tcp",Qyr="udp",jBt="unix",HBt="network.type",qBt="ipv4",BBt="ipv6",zBt="otel.scope.name",GBt="otel.scope.version",VBt="otel.status_code",WBt="ERROR",$yr="OK",KBt="otel.status_description",O7="server.address",P7="server.port",YBt="service.instance.id",N7="service.name",ZBt="service.namespace",C7="service.version",JBt="signalr.connection.status",XBt="app_shutdown",QBt="normal_closure",$Bt="timeout",ezt="signalr.transport",tzt="long_polling",nzt="server_sent_events",rzt="web_sockets",izt="telemetry.sdk.language",eSr="cpp",szt="dotnet",ozt="erlang",tSr="go",azt="java",czt="nodejs",nSr="php",uzt="python",lzt="ruby",dzt="rust",fzt="swift",pzt="webjs",hzt="telemetry.sdk.name",mzt="telemetry.sdk.version",gzt="url.fragment",py="url.full",yzt="url.path",Szt="url.query",bzt="url.scheme",M7="user_agent.original"});var 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,aGt,cGt,uGt,lGt,dGt,fGt,pGt,hGt,mGt,gGt,yPe=v(()=>{Ezt="aspnetcore.diagnostics.exceptions",_zt="aspnetcore.rate_limiting.active_request_leases",Tzt="aspnetcore.rate_limiting.queued_requests",vzt="aspnetcore.rate_limiting.request.time_in_queue",Rzt="aspnetcore.rate_limiting.request_lease.duration",Azt="aspnetcore.rate_limiting.requests",wzt="aspnetcore.routing.match_attempts",kzt="db.client.operation.duration",Izt="dotnet.assembly.count",xzt="dotnet.exceptions",Ozt="dotnet.gc.collections",Pzt="dotnet.gc.heap.total_allocated",Nzt="dotnet.gc.last_collection.heap.fragmentation.size",Czt="dotnet.gc.last_collection.heap.size",Mzt="dotnet.gc.last_collection.memory.committed_size",Dzt="dotnet.gc.pause.time",Lzt="dotnet.jit.compilation.time",Uzt="dotnet.jit.compiled_il.size",Fzt="dotnet.jit.compiled_methods",jzt="dotnet.monitor.lock_contentions",Hzt="dotnet.process.cpu.count",qzt="dotnet.process.cpu.time",Bzt="dotnet.process.memory.working_set",zzt="dotnet.thread_pool.queue.length",Gzt="dotnet.thread_pool.thread.count",Vzt="dotnet.thread_pool.work_item.count",Wzt="dotnet.timer.count",Kzt="http.client.request.duration",Yzt="http.server.request.duration",Zzt="jvm.class.count",Jzt="jvm.class.loaded",Xzt="jvm.class.unloaded",Qzt="jvm.cpu.count",$zt="jvm.cpu.recent_utilization",eGt="jvm.cpu.time",tGt="jvm.gc.duration",nGt="jvm.memory.committed",rGt="jvm.memory.limit",iGt="jvm.memory.used",sGt="jvm.memory.used_after_last_gc",oGt="jvm.thread.count",aGt="kestrel.active_connections",cGt="kestrel.active_tls_handshakes",uGt="kestrel.connection.duration",lGt="kestrel.queued_connections",dGt="kestrel.queued_requests",fGt="kestrel.rejected_connections",pGt="kestrel.tls_handshake.duration",hGt="kestrel.upgraded_connections",mGt="signalr.server.active_connections",gGt="signalr.server.connection.duration"});var yGt,SPe=v(()=>{yGt="exception"});var Mr={};Ar(Mr,{ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED:()=>vqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED:()=>Rqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED:()=>Aqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED:()=>wqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED:()=>Oqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER:()=>Pqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER:()=>Nqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED:()=>Cqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE:()=>Uqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS:()=>Fqt,ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT:()=>Tqt,ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE:()=>kqt,ATTR_ASPNETCORE_RATE_LIMITING_POLICY:()=>Iqt,ATTR_ASPNETCORE_RATE_LIMITING_RESULT:()=>xqt,ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED:()=>Mqt,ATTR_ASPNETCORE_ROUTING_IS_FALLBACK:()=>Dqt,ATTR_ASPNETCORE_ROUTING_MATCH_STATUS:()=>Lqt,ATTR_ASPNETCORE_USER_IS_AUTHENTICATED:()=>jqt,ATTR_CLIENT_ADDRESS:()=>Hqt,ATTR_CLIENT_PORT:()=>qqt,ATTR_CODE_COLUMN_NUMBER:()=>Bqt,ATTR_CODE_FILE_PATH:()=>zqt,ATTR_CODE_FUNCTION_NAME:()=>Gqt,ATTR_CODE_LINE_NUMBER:()=>Vqt,ATTR_CODE_STACKTRACE:()=>Wqt,ATTR_DB_COLLECTION_NAME:()=>_7,ATTR_DB_NAMESPACE:()=>T7,ATTR_DB_OPERATION_BATCH_SIZE:()=>Kqt,ATTR_DB_OPERATION_NAME:()=>yR,ATTR_DB_QUERY_SUMMARY:()=>Yqt,ATTR_DB_QUERY_TEXT:()=>v7,ATTR_DB_RESPONSE_STATUS_CODE:()=>R7,ATTR_DB_STORED_PROCEDURE_NAME:()=>Zqt,ATTR_DB_SYSTEM_NAME:()=>SE,ATTR_DOTNET_GC_HEAP_GENERATION:()=>eBt,ATTR_ERROR_TYPE:()=>A7,ATTR_EXCEPTION_ESCAPED:()=>sBt,ATTR_EXCEPTION_MESSAGE:()=>oBt,ATTR_EXCEPTION_STACKTRACE:()=>aBt,ATTR_EXCEPTION_TYPE:()=>cBt,ATTR_HTTP_REQUEST_HEADER:()=>uBt,ATTR_HTTP_REQUEST_METHOD:()=>bE,ATTR_HTTP_REQUEST_METHOD_ORIGINAL:()=>SBt,ATTR_HTTP_REQUEST_RESEND_COUNT:()=>bBt,ATTR_HTTP_RESPONSE_HEADER:()=>EBt,ATTR_HTTP_RESPONSE_STATUS_CODE:()=>lm,ATTR_HTTP_ROUTE:()=>dm,ATTR_JVM_GC_ACTION:()=>_Bt,ATTR_JVM_GC_NAME:()=>TBt,ATTR_JVM_MEMORY_POOL_NAME:()=>vBt,ATTR_JVM_MEMORY_TYPE:()=>RBt,ATTR_JVM_THREAD_DAEMON:()=>kBt,ATTR_JVM_THREAD_STATE:()=>IBt,ATTR_NETWORK_LOCAL_ADDRESS:()=>MBt,ATTR_NETWORK_LOCAL_PORT:()=>DBt,ATTR_NETWORK_PEER_ADDRESS:()=>w7,ATTR_NETWORK_PEER_PORT:()=>k7,ATTR_NETWORK_PROTOCOL_NAME:()=>LBt,ATTR_NETWORK_PROTOCOL_VERSION:()=>I7,ATTR_NETWORK_TRANSPORT:()=>x7,ATTR_NETWORK_TYPE:()=>HBt,ATTR_OTEL_SCOPE_NAME:()=>zBt,ATTR_OTEL_SCOPE_VERSION:()=>GBt,ATTR_OTEL_STATUS_CODE:()=>VBt,ATTR_OTEL_STATUS_DESCRIPTION:()=>KBt,ATTR_SERVER_ADDRESS:()=>O7,ATTR_SERVER_PORT:()=>P7,ATTR_SERVICE_INSTANCE_ID:()=>YBt,ATTR_SERVICE_NAME:()=>N7,ATTR_SERVICE_NAMESPACE:()=>ZBt,ATTR_SERVICE_VERSION:()=>C7,ATTR_SIGNALR_CONNECTION_STATUS:()=>JBt,ATTR_SIGNALR_TRANSPORT:()=>ezt,ATTR_TELEMETRY_SDK_LANGUAGE:()=>izt,ATTR_TELEMETRY_SDK_NAME:()=>hzt,ATTR_TELEMETRY_SDK_VERSION:()=>mzt,ATTR_URL_FRAGMENT:()=>gzt,ATTR_URL_FULL:()=>py,ATTR_URL_PATH:()=>yzt,ATTR_URL_QUERY:()=>Szt,ATTR_URL_SCHEME:()=>bzt,ATTR_USER_AGENT_ORIGINAL:()=>M7,AWSECSLAUNCHTYPEVALUES_EC2:()=>BHt,AWSECSLAUNCHTYPEVALUES_FARGATE:()=>zHt,AwsEcsLaunchtypeValues:()=>GHt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS:()=>RHt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC:()=>AHt,CLOUDPLATFORMVALUES_AWS_EC2:()=>wHt,CLOUDPLATFORMVALUES_AWS_ECS:()=>kHt,CLOUDPLATFORMVALUES_AWS_EKS:()=>IHt,CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK:()=>OHt,CLOUDPLATFORMVALUES_AWS_LAMBDA:()=>xHt,CLOUDPLATFORMVALUES_AZURE_AKS:()=>CHt,CLOUDPLATFORMVALUES_AZURE_APP_SERVICE:()=>DHt,CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES:()=>NHt,CLOUDPLATFORMVALUES_AZURE_FUNCTIONS:()=>MHt,CLOUDPLATFORMVALUES_AZURE_VM:()=>PHt,CLOUDPLATFORMVALUES_GCP_APP_ENGINE:()=>HHt,CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS:()=>jHt,CLOUDPLATFORMVALUES_GCP_CLOUD_RUN:()=>UHt,CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE:()=>LHt,CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE:()=>FHt,CLOUDPROVIDERVALUES_ALIBABA_CLOUD:()=>bHt,CLOUDPROVIDERVALUES_AWS:()=>EHt,CLOUDPROVIDERVALUES_AZURE:()=>_Ht,CLOUDPROVIDERVALUES_GCP:()=>THt,CloudPlatformValues:()=>qHt,CloudProviderValues:()=>vHt,DBCASSANDRACONSISTENCYLEVELVALUES_ALL:()=>iUt,DBCASSANDRACONSISTENCYLEVELVALUES_ANY:()=>fUt,DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM:()=>sUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE:()=>dUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM:()=>aUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL:()=>hUt,DBCASSANDRACONSISTENCYLEVELVALUES_ONE:()=>cUt,DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM:()=>oUt,DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL:()=>pUt,DBCASSANDRACONSISTENCYLEVELVALUES_THREE:()=>lUt,DBCASSANDRACONSISTENCYLEVELVALUES_TWO:()=>uUt,DBSYSTEMVALUES_ADABAS:()=>k1t,DBSYSTEMVALUES_CACHE:()=>w1t,DBSYSTEMVALUES_CASSANDRA:()=>G1t,DBSYSTEMVALUES_CLOUDSCAPE:()=>S1t,DBSYSTEMVALUES_COCKROACHDB:()=>nUt,DBSYSTEMVALUES_COLDFUSION:()=>z1t,DBSYSTEMVALUES_COSMOSDB:()=>J1t,DBSYSTEMVALUES_COUCHBASE:()=>Y1t,DBSYSTEMVALUES_COUCHDB:()=>Z1t,DBSYSTEMVALUES_DB2:()=>h1t,DBSYSTEMVALUES_DERBY:()=>x1t,DBSYSTEMVALUES_DYNAMODB:()=>X1t,DBSYSTEMVALUES_EDB:()=>A1t,DBSYSTEMVALUES_ELASTICSEARCH:()=>eUt,DBSYSTEMVALUES_FILEMAKER:()=>O1t,DBSYSTEMVALUES_FIREBIRD:()=>I1t,DBSYSTEMVALUES_FIRSTSQL:()=>R1t,DBSYSTEMVALUES_GEODE:()=>$1t,DBSYSTEMVALUES_H2:()=>B1t,DBSYSTEMVALUES_HANADB:()=>T1t,DBSYSTEMVALUES_HBASE:()=>V1t,DBSYSTEMVALUES_HIVE:()=>y1t,DBSYSTEMVALUES_HSQLDB:()=>b1t,DBSYSTEMVALUES_INFORMIX:()=>P1t,DBSYSTEMVALUES_INGRES:()=>v1t,DBSYSTEMVALUES_INSTANTDB:()=>N1t,DBSYSTEMVALUES_INTERBASE:()=>C1t,DBSYSTEMVALUES_MARIADB:()=>M1t,DBSYSTEMVALUES_MAXDB:()=>_1t,DBSYSTEMVALUES_MEMCACHED:()=>tUt,DBSYSTEMVALUES_MONGODB:()=>W1t,DBSYSTEMVALUES_MSSQL:()=>d1t,DBSYSTEMVALUES_MYSQL:()=>f1t,DBSYSTEMVALUES_NEO4J:()=>Q1t,DBSYSTEMVALUES_NETEZZA:()=>D1t,DBSYSTEMVALUES_ORACLE:()=>p1t,DBSYSTEMVALUES_OTHER_SQL:()=>l1t,DBSYSTEMVALUES_PERVASIVE:()=>L1t,DBSYSTEMVALUES_POINTBASE:()=>U1t,DBSYSTEMVALUES_POSTGRESQL:()=>m1t,DBSYSTEMVALUES_PROGRESS:()=>E1t,DBSYSTEMVALUES_REDIS:()=>K1t,DBSYSTEMVALUES_REDSHIFT:()=>g1t,DBSYSTEMVALUES_SQLITE:()=>F1t,DBSYSTEMVALUES_SYBASE:()=>j1t,DBSYSTEMVALUES_TERADATA:()=>H1t,DBSYSTEMVALUES_VERTICA:()=>q1t,DB_SYSTEM_NAME_VALUE_MARIADB:()=>Jqt,DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER:()=>Xqt,DB_SYSTEM_NAME_VALUE_MYSQL:()=>Qqt,DB_SYSTEM_NAME_VALUE_POSTGRESQL:()=>$qt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN0:()=>tBt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN1:()=>nBt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN2:()=>rBt,DOTNET_GC_HEAP_GENERATION_VALUE_LOH:()=>Wyr,DOTNET_GC_HEAP_GENERATION_VALUE_POH:()=>Kyr,DbCassandraConsistencyLevelValues:()=>mUt,DbSystemValues:()=>rUt,ERROR_TYPE_VALUE_OTHER:()=>iBt,EVENT_EXCEPTION:()=>yGt,FAASDOCUMENTOPERATIONVALUES_DELETE:()=>RUt,FAASDOCUMENTOPERATIONVALUES_EDIT:()=>vUt,FAASDOCUMENTOPERATIONVALUES_INSERT:()=>TUt,FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD:()=>wUt,FAASINVOKEDPROVIDERVALUES_AWS:()=>kUt,FAASINVOKEDPROVIDERVALUES_AZURE:()=>IUt,FAASINVOKEDPROVIDERVALUES_GCP:()=>xUt,FAASTRIGGERVALUES_DATASOURCE:()=>gUt,FAASTRIGGERVALUES_HTTP:()=>yUt,FAASTRIGGERVALUES_OTHER:()=>EUt,FAASTRIGGERVALUES_PUBSUB:()=>SUt,FAASTRIGGERVALUES_TIMER:()=>bUt,FaasDocumentOperationValues:()=>AUt,FaasInvokedProviderValues:()=>OUt,FaasTriggerValues:()=>_Ut,HOSTARCHVALUES_AMD64:()=>VHt,HOSTARCHVALUES_ARM32:()=>WHt,HOSTARCHVALUES_ARM64:()=>KHt,HOSTARCHVALUES_IA64:()=>YHt,HOSTARCHVALUES_PPC32:()=>ZHt,HOSTARCHVALUES_PPC64:()=>JHt,HOSTARCHVALUES_X86:()=>XHt,HTTPFLAVORVALUES_HTTP_1_0:()=>pFt,HTTPFLAVORVALUES_HTTP_1_1:()=>hFt,HTTPFLAVORVALUES_HTTP_2_0:()=>mFt,HTTPFLAVORVALUES_QUIC:()=>yFt,HTTPFLAVORVALUES_SPDY:()=>gFt,HTTP_REQUEST_METHOD_VALUE_CONNECT:()=>dBt,HTTP_REQUEST_METHOD_VALUE_DELETE:()=>fBt,HTTP_REQUEST_METHOD_VALUE_GET:()=>Yyr,HTTP_REQUEST_METHOD_VALUE_HEAD:()=>pBt,HTTP_REQUEST_METHOD_VALUE_OPTIONS:()=>hBt,HTTP_REQUEST_METHOD_VALUE_OTHER:()=>lBt,HTTP_REQUEST_METHOD_VALUE_PATCH:()=>mBt,HTTP_REQUEST_METHOD_VALUE_POST:()=>gBt,HTTP_REQUEST_METHOD_VALUE_PUT:()=>Zyr,HTTP_REQUEST_METHOD_VALUE_TRACE:()=>yBt,HostArchValues:()=>QHt,HttpFlavorValues:()=>SFt,JVM_MEMORY_TYPE_VALUE_HEAP:()=>ABt,JVM_MEMORY_TYPE_VALUE_NON_HEAP:()=>wBt,JVM_THREAD_STATE_VALUE_BLOCKED:()=>xBt,JVM_THREAD_STATE_VALUE_NEW:()=>Jyr,JVM_THREAD_STATE_VALUE_RUNNABLE:()=>OBt,JVM_THREAD_STATE_VALUE_TERMINATED:()=>PBt,JVM_THREAD_STATE_VALUE_TIMED_WAITING:()=>NBt,JVM_THREAD_STATE_VALUE_WAITING:()=>CBt,MESSAGETYPEVALUES_RECEIVED:()=>GFt,MESSAGETYPEVALUES_SENT:()=>zFt,MESSAGINGDESTINATIONKINDVALUES_QUEUE:()=>bFt,MESSAGINGDESTINATIONKINDVALUES_TOPIC:()=>EFt,MESSAGINGOPERATIONVALUES_PROCESS:()=>vFt,MESSAGINGOPERATIONVALUES_RECEIVE:()=>TFt,METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS:()=>Ezt,METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES:()=>_zt,METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS:()=>Tzt,METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS:()=>Azt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION:()=>Rzt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE:()=>vzt,METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS:()=>wzt,METRIC_DB_CLIENT_OPERATION_DURATION:()=>kzt,METRIC_DOTNET_ASSEMBLY_COUNT:()=>Izt,METRIC_DOTNET_EXCEPTIONS:()=>xzt,METRIC_DOTNET_GC_COLLECTIONS:()=>Ozt,METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED:()=>Pzt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE:()=>Nzt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE:()=>Czt,METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE:()=>Mzt,METRIC_DOTNET_GC_PAUSE_TIME:()=>Dzt,METRIC_DOTNET_JIT_COMPILATION_TIME:()=>Lzt,METRIC_DOTNET_JIT_COMPILED_IL_SIZE:()=>Uzt,METRIC_DOTNET_JIT_COMPILED_METHODS:()=>Fzt,METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS:()=>jzt,METRIC_DOTNET_PROCESS_CPU_COUNT:()=>Hzt,METRIC_DOTNET_PROCESS_CPU_TIME:()=>qzt,METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET:()=>Bzt,METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH:()=>zzt,METRIC_DOTNET_THREAD_POOL_THREAD_COUNT:()=>Gzt,METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT:()=>Vzt,METRIC_DOTNET_TIMER_COUNT:()=>Wzt,METRIC_HTTP_CLIENT_REQUEST_DURATION:()=>Kzt,METRIC_HTTP_SERVER_REQUEST_DURATION:()=>Yzt,METRIC_JVM_CLASS_COUNT:()=>Zzt,METRIC_JVM_CLASS_LOADED:()=>Jzt,METRIC_JVM_CLASS_UNLOADED:()=>Xzt,METRIC_JVM_CPU_COUNT:()=>Qzt,METRIC_JVM_CPU_RECENT_UTILIZATION:()=>$zt,METRIC_JVM_CPU_TIME:()=>eGt,METRIC_JVM_GC_DURATION:()=>tGt,METRIC_JVM_MEMORY_COMMITTED:()=>nGt,METRIC_JVM_MEMORY_LIMIT:()=>rGt,METRIC_JVM_MEMORY_USED:()=>iGt,METRIC_JVM_MEMORY_USED_AFTER_LAST_GC:()=>sGt,METRIC_JVM_THREAD_COUNT:()=>oGt,METRIC_KESTREL_ACTIVE_CONNECTIONS:()=>aGt,METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES:()=>cGt,METRIC_KESTREL_CONNECTION_DURATION:()=>uGt,METRIC_KESTREL_QUEUED_CONNECTIONS:()=>lGt,METRIC_KESTREL_QUEUED_REQUESTS:()=>dGt,METRIC_KESTREL_REJECTED_CONNECTIONS:()=>fGt,METRIC_KESTREL_TLS_HANDSHAKE_DURATION:()=>pGt,METRIC_KESTREL_UPGRADED_CONNECTIONS:()=>hGt,METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS:()=>mGt,METRIC_SIGNALR_SERVER_CONNECTION_DURATION:()=>gGt,MessageTypeValues:()=>VFt,MessagingDestinationKindValues:()=>_Ft,MessagingOperationValues:()=>RFt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA:()=>YUt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT:()=>XUt,NETHOSTCONNECTIONSUBTYPEVALUES_EDGE:()=>WUt,NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD:()=>iFt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0:()=>ZUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A:()=>JUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B:()=>nFt,NETHOSTCONNECTIONSUBTYPEVALUES_GPRS:()=>VUt,NETHOSTCONNECTIONSUBTYPEVALUES_GSM:()=>oFt,NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA:()=>QUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPA:()=>eFt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP:()=>sFt,NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA:()=>$Ut,NETHOSTCONNECTIONSUBTYPEVALUES_IDEN:()=>tFt,NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN:()=>cFt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE:()=>rFt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA:()=>dFt,NETHOSTCONNECTIONSUBTYPEVALUES_NR:()=>uFt,NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA:()=>lFt,NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA:()=>aFt,NETHOSTCONNECTIONSUBTYPEVALUES_UMTS:()=>KUt,NETHOSTCONNECTIONTYPEVALUES_CELL:()=>qUt,NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE:()=>BUt,NETHOSTCONNECTIONTYPEVALUES_UNKNOWN:()=>zUt,NETHOSTCONNECTIONTYPEVALUES_WIFI:()=>jUt,NETHOSTCONNECTIONTYPEVALUES_WIRED:()=>HUt,NETTRANSPORTVALUES_INPROC:()=>LUt,NETTRANSPORTVALUES_IP:()=>CUt,NETTRANSPORTVALUES_IP_TCP:()=>PUt,NETTRANSPORTVALUES_IP_UDP:()=>NUt,NETTRANSPORTVALUES_OTHER:()=>UUt,NETTRANSPORTVALUES_PIPE:()=>DUt,NETTRANSPORTVALUES_UNIX:()=>MUt,NETWORK_TRANSPORT_VALUE_PIPE:()=>UBt,NETWORK_TRANSPORT_VALUE_QUIC:()=>FBt,NETWORK_TRANSPORT_VALUE_TCP:()=>Xyr,NETWORK_TRANSPORT_VALUE_UDP:()=>Qyr,NETWORK_TRANSPORT_VALUE_UNIX:()=>jBt,NETWORK_TYPE_VALUE_IPV4:()=>qBt,NETWORK_TYPE_VALUE_IPV6:()=>BBt,NetHostConnectionSubtypeValues:()=>fFt,NetHostConnectionTypeValues:()=>GUt,NetTransportValues:()=>FUt,OSTYPEVALUES_AIX:()=>aqt,OSTYPEVALUES_DARWIN:()=>tqt,OSTYPEVALUES_DRAGONFLYBSD:()=>sqt,OSTYPEVALUES_FREEBSD:()=>nqt,OSTYPEVALUES_HPUX:()=>oqt,OSTYPEVALUES_LINUX:()=>eqt,OSTYPEVALUES_NETBSD:()=>rqt,OSTYPEVALUES_OPENBSD:()=>iqt,OSTYPEVALUES_SOLARIS:()=>cqt,OSTYPEVALUES_WINDOWS:()=>$Ht,OSTYPEVALUES_Z_OS:()=>uqt,OTEL_STATUS_CODE_VALUE_ERROR:()=>WBt,OTEL_STATUS_CODE_VALUE_OK:()=>$yr,OsTypeValues:()=>lqt,RPCGRPCSTATUSCODEVALUES_ABORTED:()=>DFt,RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS:()=>PFt,RPCGRPCSTATUSCODEVALUES_CANCELLED:()=>wFt,RPCGRPCSTATUSCODEVALUES_DATA_LOSS:()=>HFt,RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED:()=>xFt,RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION:()=>MFt,RPCGRPCSTATUSCODEVALUES_INTERNAL:()=>FFt,RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT:()=>IFt,RPCGRPCSTATUSCODEVALUES_NOT_FOUND:()=>OFt,RPCGRPCSTATUSCODEVALUES_OK:()=>AFt,RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE:()=>LFt,RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED:()=>NFt,RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED:()=>CFt,RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED:()=>qFt,RPCGRPCSTATUSCODEVALUES_UNAVAILABLE:()=>jFt,RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED:()=>UFt,RPCGRPCSTATUSCODEVALUES_UNKNOWN:()=>kFt,RpcGrpcStatusCodeValues:()=>BFt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET:()=>_Lt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:()=>CLt,SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ:()=>SLt,SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY:()=>hLt,SEMATTRS_AWS_DYNAMODB_COUNT:()=>PLt,SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE:()=>wLt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:()=>RLt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:()=>MLt,SEMATTRS_AWS_DYNAMODB_INDEX_NAME:()=>TLt,SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS:()=>mLt,SEMATTRS_AWS_DYNAMODB_LIMIT:()=>ELt,SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:()=>ALt,SEMATTRS_AWS_DYNAMODB_PROJECTION:()=>bLt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:()=>gLt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:()=>yLt,SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT:()=>NLt,SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD:()=>ILt,SEMATTRS_AWS_DYNAMODB_SEGMENT:()=>xLt,SEMATTRS_AWS_DYNAMODB_SELECT:()=>vLt,SEMATTRS_AWS_DYNAMODB_TABLE_COUNT:()=>kLt,SEMATTRS_AWS_DYNAMODB_TABLE_NAMES:()=>pLt,SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS:()=>OLt,SEMATTRS_AWS_LAMBDA_INVOKED_ARN:()=>sDt,SEMATTRS_CODE_FILEPATH:()=>rLt,SEMATTRS_CODE_FUNCTION:()=>tLt,SEMATTRS_CODE_LINENO:()=>iLt,SEMATTRS_CODE_NAMESPACE:()=>nLt,SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL:()=>hDt,SEMATTRS_DB_CASSANDRA_COORDINATOR_DC:()=>bDt,SEMATTRS_DB_CASSANDRA_COORDINATOR_ID:()=>SDt,SEMATTRS_DB_CASSANDRA_IDEMPOTENCE:()=>gDt,SEMATTRS_DB_CASSANDRA_KEYSPACE:()=>fDt,SEMATTRS_DB_CASSANDRA_PAGE_SIZE:()=>pDt,SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:()=>yDt,SEMATTRS_DB_CASSANDRA_TABLE:()=>mDt,SEMATTRS_DB_CONNECTION_STRING:()=>oDt,SEMATTRS_DB_HBASE_NAMESPACE:()=>EDt,SEMATTRS_DB_JDBC_DRIVER_CLASSNAME:()=>cDt,SEMATTRS_DB_MONGODB_COLLECTION:()=>TDt,SEMATTRS_DB_MSSQL_INSTANCE_NAME:()=>dDt,SEMATTRS_DB_NAME:()=>uDt,SEMATTRS_DB_OPERATION:()=>lDt,SEMATTRS_DB_REDIS_DATABASE_INDEX:()=>_Dt,SEMATTRS_DB_SQL_TABLE:()=>vDt,SEMATTRS_DB_STATEMENT:()=>c7,SEMATTRS_DB_SYSTEM:()=>a7,SEMATTRS_DB_USER:()=>aDt,SEMATTRS_ENDUSER_ID:()=>JDt,SEMATTRS_ENDUSER_ROLE:()=>XDt,SEMATTRS_ENDUSER_SCOPE:()=>QDt,SEMATTRS_EXCEPTION_ESCAPED:()=>kDt,SEMATTRS_EXCEPTION_MESSAGE:()=>ADt,SEMATTRS_EXCEPTION_STACKTRACE:()=>wDt,SEMATTRS_EXCEPTION_TYPE:()=>RDt,SEMATTRS_FAAS_COLDSTART:()=>DDt,SEMATTRS_FAAS_CRON:()=>MDt,SEMATTRS_FAAS_DOCUMENT_COLLECTION:()=>xDt,SEMATTRS_FAAS_DOCUMENT_NAME:()=>NDt,SEMATTRS_FAAS_DOCUMENT_OPERATION:()=>ODt,SEMATTRS_FAAS_DOCUMENT_TIME:()=>PDt,SEMATTRS_FAAS_EXECUTION:()=>IDt,SEMATTRS_FAAS_INVOKED_NAME:()=>LDt,SEMATTRS_FAAS_INVOKED_PROVIDER:()=>UDt,SEMATTRS_FAAS_INVOKED_REGION:()=>FDt,SEMATTRS_FAAS_TIME:()=>CDt,SEMATTRS_FAAS_TRIGGER:()=>u7,SEMATTRS_HTTP_CLIENT_IP:()=>fLt,SEMATTRS_HTTP_FLAVOR:()=>aLt,SEMATTRS_HTTP_HOST:()=>sLt,SEMATTRS_HTTP_METHOD:()=>_O,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH:()=>uLt,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:()=>lLt,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH:()=>h7,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:()=>m7,SEMATTRS_HTTP_ROUTE:()=>g7,SEMATTRS_HTTP_SCHEME:()=>oLt,SEMATTRS_HTTP_SERVER_NAME:()=>dLt,SEMATTRS_HTTP_STATUS_CODE:()=>yE,SEMATTRS_HTTP_TARGET:()=>p7,SEMATTRS_HTTP_URL:()=>gR,SEMATTRS_HTTP_USER_AGENT:()=>cLt,SEMATTRS_MESSAGE_COMPRESSED_SIZE:()=>a1t,SEMATTRS_MESSAGE_ID:()=>o1t,SEMATTRS_MESSAGE_TYPE:()=>s1t,SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE:()=>c1t,SEMATTRS_MESSAGING_CONSUMER_ID:()=>WLt,SEMATTRS_MESSAGING_CONVERSATION_ID:()=>BLt,SEMATTRS_MESSAGING_DESTINATION:()=>DLt,SEMATTRS_MESSAGING_DESTINATION_KIND:()=>LLt,SEMATTRS_MESSAGING_KAFKA_CLIENT_ID:()=>JLt,SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP:()=>ZLt,SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY:()=>YLt,SEMATTRS_MESSAGING_KAFKA_PARTITION:()=>XLt,SEMATTRS_MESSAGING_KAFKA_TOMBSTONE:()=>QLt,SEMATTRS_MESSAGING_MESSAGE_ID:()=>qLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:()=>GLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:()=>zLt,SEMATTRS_MESSAGING_OPERATION:()=>VLt,SEMATTRS_MESSAGING_PROTOCOL:()=>FLt,SEMATTRS_MESSAGING_PROTOCOL_VERSION:()=>jLt,SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY:()=>KLt,SEMATTRS_MESSAGING_SYSTEM:()=>y7,SEMATTRS_MESSAGING_TEMP_DESTINATION:()=>ULt,SEMATTRS_MESSAGING_URL:()=>HLt,SEMATTRS_NET_HOST_CARRIER_ICC:()=>YDt,SEMATTRS_NET_HOST_CARRIER_MCC:()=>WDt,SEMATTRS_NET_HOST_CARRIER_MNC:()=>KDt,SEMATTRS_NET_HOST_CARRIER_NAME:()=>VDt,SEMATTRS_NET_HOST_CONNECTION_SUBTYPE:()=>GDt,SEMATTRS_NET_HOST_CONNECTION_TYPE:()=>zDt,SEMATTRS_NET_HOST_IP:()=>d7,SEMATTRS_NET_HOST_NAME:()=>BDt,SEMATTRS_NET_HOST_PORT:()=>f7,SEMATTRS_NET_PEER_IP:()=>l7,SEMATTRS_NET_PEER_NAME:()=>qDt,SEMATTRS_NET_PEER_PORT:()=>HDt,SEMATTRS_NET_TRANSPORT:()=>jDt,SEMATTRS_PEER_SERVICE:()=>ZDt,SEMATTRS_RPC_GRPC_STATUS_CODE:()=>b7,SEMATTRS_RPC_JSONRPC_ERROR_CODE:()=>r1t,SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE:()=>i1t,SEMATTRS_RPC_JSONRPC_REQUEST_ID:()=>n1t,SEMATTRS_RPC_JSONRPC_VERSION:()=>t1t,SEMATTRS_RPC_METHOD:()=>e1t,SEMATTRS_RPC_SERVICE:()=>S7,SEMATTRS_RPC_SYSTEM:()=>$Lt,SEMATTRS_THREAD_ID:()=>$Dt,SEMATTRS_THREAD_NAME:()=>eLt,SEMRESATTRS_AWS_ECS_CLUSTER_ARN:()=>QFt,SEMRESATTRS_AWS_ECS_CONTAINER_ARN:()=>XFt,SEMRESATTRS_AWS_ECS_LAUNCHTYPE:()=>$Ft,SEMRESATTRS_AWS_ECS_TASK_ARN:()=>ejt,SEMRESATTRS_AWS_ECS_TASK_FAMILY:()=>tjt,SEMRESATTRS_AWS_ECS_TASK_REVISION:()=>njt,SEMRESATTRS_AWS_EKS_CLUSTER_ARN:()=>rjt,SEMRESATTRS_AWS_LOG_GROUP_ARNS:()=>sjt,SEMRESATTRS_AWS_LOG_GROUP_NAMES:()=>ijt,SEMRESATTRS_AWS_LOG_STREAM_ARNS:()=>ajt,SEMRESATTRS_AWS_LOG_STREAM_NAMES:()=>ojt,SEMRESATTRS_CLOUD_ACCOUNT_ID:()=>KFt,SEMRESATTRS_CLOUD_AVAILABILITY_ZONE:()=>ZFt,SEMRESATTRS_CLOUD_PLATFORM:()=>JFt,SEMRESATTRS_CLOUD_PROVIDER:()=>WFt,SEMRESATTRS_CLOUD_REGION:()=>YFt,SEMRESATTRS_CONTAINER_ID:()=>ujt,SEMRESATTRS_CONTAINER_IMAGE_NAME:()=>djt,SEMRESATTRS_CONTAINER_IMAGE_TAG:()=>fjt,SEMRESATTRS_CONTAINER_NAME:()=>cjt,SEMRESATTRS_CONTAINER_RUNTIME:()=>ljt,SEMRESATTRS_DEPLOYMENT_ENVIRONMENT:()=>pjt,SEMRESATTRS_DEVICE_ID:()=>hjt,SEMRESATTRS_DEVICE_MODEL_IDENTIFIER:()=>mjt,SEMRESATTRS_DEVICE_MODEL_NAME:()=>gjt,SEMRESATTRS_FAAS_ID:()=>Sjt,SEMRESATTRS_FAAS_INSTANCE:()=>Ejt,SEMRESATTRS_FAAS_MAX_MEMORY:()=>_jt,SEMRESATTRS_FAAS_NAME:()=>yjt,SEMRESATTRS_FAAS_VERSION:()=>bjt,SEMRESATTRS_HOST_ARCH:()=>Ajt,SEMRESATTRS_HOST_ID:()=>Tjt,SEMRESATTRS_HOST_IMAGE_ID:()=>kjt,SEMRESATTRS_HOST_IMAGE_NAME:()=>wjt,SEMRESATTRS_HOST_IMAGE_VERSION:()=>Ijt,SEMRESATTRS_HOST_NAME:()=>vjt,SEMRESATTRS_HOST_TYPE:()=>Rjt,SEMRESATTRS_K8S_CLUSTER_NAME:()=>xjt,SEMRESATTRS_K8S_CONTAINER_NAME:()=>Djt,SEMRESATTRS_K8S_CRONJOB_NAME:()=>Kjt,SEMRESATTRS_K8S_CRONJOB_UID:()=>Wjt,SEMRESATTRS_K8S_DAEMONSET_NAME:()=>zjt,SEMRESATTRS_K8S_DAEMONSET_UID:()=>Bjt,SEMRESATTRS_K8S_DEPLOYMENT_NAME:()=>jjt,SEMRESATTRS_K8S_DEPLOYMENT_UID:()=>Fjt,SEMRESATTRS_K8S_JOB_NAME:()=>Vjt,SEMRESATTRS_K8S_JOB_UID:()=>Gjt,SEMRESATTRS_K8S_NAMESPACE_NAME:()=>Njt,SEMRESATTRS_K8S_NODE_NAME:()=>Ojt,SEMRESATTRS_K8S_NODE_UID:()=>Pjt,SEMRESATTRS_K8S_POD_NAME:()=>Mjt,SEMRESATTRS_K8S_POD_UID:()=>Cjt,SEMRESATTRS_K8S_REPLICASET_NAME:()=>Ujt,SEMRESATTRS_K8S_REPLICASET_UID:()=>Ljt,SEMRESATTRS_K8S_STATEFULSET_NAME:()=>qjt,SEMRESATTRS_K8S_STATEFULSET_UID:()=>Hjt,SEMRESATTRS_OS_DESCRIPTION:()=>Zjt,SEMRESATTRS_OS_NAME:()=>Jjt,SEMRESATTRS_OS_TYPE:()=>Yjt,SEMRESATTRS_OS_VERSION:()=>Xjt,SEMRESATTRS_PROCESS_COMMAND:()=>tHt,SEMRESATTRS_PROCESS_COMMAND_ARGS:()=>rHt,SEMRESATTRS_PROCESS_COMMAND_LINE:()=>nHt,SEMRESATTRS_PROCESS_EXECUTABLE_NAME:()=>$jt,SEMRESATTRS_PROCESS_EXECUTABLE_PATH:()=>eHt,SEMRESATTRS_PROCESS_OWNER:()=>iHt,SEMRESATTRS_PROCESS_PID:()=>Qjt,SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION:()=>aHt,SEMRESATTRS_PROCESS_RUNTIME_NAME:()=>sHt,SEMRESATTRS_PROCESS_RUNTIME_VERSION:()=>oHt,SEMRESATTRS_SERVICE_INSTANCE_ID:()=>uHt,SEMRESATTRS_SERVICE_NAME:()=>cHt,SEMRESATTRS_SERVICE_NAMESPACE:()=>E7,SEMRESATTRS_SERVICE_VERSION:()=>lHt,SEMRESATTRS_TELEMETRY_AUTO_VERSION:()=>hHt,SEMRESATTRS_TELEMETRY_SDK_LANGUAGE:()=>fHt,SEMRESATTRS_TELEMETRY_SDK_NAME:()=>dHt,SEMRESATTRS_TELEMETRY_SDK_VERSION:()=>pHt,SEMRESATTRS_WEBENGINE_DESCRIPTION:()=>yHt,SEMRESATTRS_WEBENGINE_NAME:()=>mHt,SEMRESATTRS_WEBENGINE_VERSION:()=>gHt,SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN:()=>XBt,SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE:()=>QBt,SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT:()=>$Bt,SIGNALR_TRANSPORT_VALUE_LONG_POLLING:()=>tzt,SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS:()=>nzt,SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS:()=>rzt,SemanticAttributes:()=>u1t,SemanticResourceAttributes:()=>SHt,TELEMETRYSDKLANGUAGEVALUES_CPP:()=>dqt,TELEMETRYSDKLANGUAGEVALUES_DOTNET:()=>fqt,TELEMETRYSDKLANGUAGEVALUES_ERLANG:()=>pqt,TELEMETRYSDKLANGUAGEVALUES_GO:()=>hqt,TELEMETRYSDKLANGUAGEVALUES_JAVA:()=>mqt,TELEMETRYSDKLANGUAGEVALUES_NODEJS:()=>gqt,TELEMETRYSDKLANGUAGEVALUES_PHP:()=>yqt,TELEMETRYSDKLANGUAGEVALUES_PYTHON:()=>Sqt,TELEMETRYSDKLANGUAGEVALUES_RUBY:()=>bqt,TELEMETRYSDKLANGUAGEVALUES_WEBJS:()=>Eqt,TELEMETRY_SDK_LANGUAGE_VALUE_CPP:()=>eSr,TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET:()=>szt,TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG:()=>ozt,TELEMETRY_SDK_LANGUAGE_VALUE_GO:()=>tSr,TELEMETRY_SDK_LANGUAGE_VALUE_JAVA:()=>azt,TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS:()=>czt,TELEMETRY_SDK_LANGUAGE_VALUE_PHP:()=>nSr,TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON:()=>uzt,TELEMETRY_SDK_LANGUAGE_VALUE_RUBY:()=>lzt,TELEMETRY_SDK_LANGUAGE_VALUE_RUST:()=>dzt,TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT:()=>fzt,TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS:()=>pzt,TelemetrySdkLanguageValues:()=>_qt});var Nn=v(()=>{z0e();mPe();gPe();yPe();SPe()});var bPe=w(MF=>{"use strict";Object.defineProperty(MF,"__esModule",{value:!0});MF.ATTR_PROCESS_RUNTIME_NAME=void 0;MF.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var EPe=w(LF=>{"use strict";Object.defineProperty(LF,"__esModule",{value:!0});LF.SDK_INFO=void 0;var SGt=QRe(),DF=(Nn(),ke(Mr)),bGt=bPe();LF.SDK_INFO={[DF.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[bGt.ATTR_PROCESS_RUNTIME_NAME]:"node",[DF.ATTR_TELEMETRY_SDK_LANGUAGE]:DF.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[DF.ATTR_TELEMETRY_SDK_VERSION]:SGt.VERSION}});var _Pe=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 UF=JRe();Object.defineProperty(za,"getStringFromEnv",{enumerable:!0,get:function(){return UF.getStringFromEnv}});Object.defineProperty(za,"getBooleanFromEnv",{enumerable:!0,get:function(){return UF.getBooleanFromEnv}});Object.defineProperty(za,"getNumberFromEnv",{enumerable:!0,get:function(){return UF.getNumberFromEnv}});Object.defineProperty(za,"getStringListFromEnv",{enumerable:!0,get:function(){return UF.getStringListFromEnv}});var EGt=XRe();Object.defineProperty(za,"_globalThis",{enumerable:!0,get:function(){return EGt._globalThis}});var _Gt=EPe();Object.defineProperty(za,"SDK_INFO",{enumerable:!0,get:function(){return _Gt.SDK_INFO}});za.otperformance=performance});var D7=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 EE=_Pe();Object.defineProperty(Ga,"SDK_INFO",{enumerable:!0,get:function(){return EE.SDK_INFO}});Object.defineProperty(Ga,"_globalThis",{enumerable:!0,get:function(){return EE._globalThis}});Object.defineProperty(Ga,"otperformance",{enumerable:!0,get:function(){return EE.otperformance}});Object.defineProperty(Ga,"getBooleanFromEnv",{enumerable:!0,get:function(){return EE.getBooleanFromEnv}});Object.defineProperty(Ga,"getStringFromEnv",{enumerable:!0,get:function(){return EE.getStringFromEnv}});Object.defineProperty(Ga,"getNumberFromEnv",{enumerable:!0,get:function(){return EE.getNumberFromEnv}});Object.defineProperty(Ga,"getStringListFromEnv",{enumerable:!0,get:function(){return EE.getStringListFromEnv}})});var APe=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 FF=D7(),TPe=9,TGt=6,vGt=Math.pow(10,TGt),jF=Math.pow(10,TPe);function TO(e){let t=e/1e3,n=Math.trunc(t),r=Math.round(e%1e3*vGt);return[n,r]}ei.millisToHrTime=TO;function RGt(){return FF.otperformance.timeOrigin}ei.getTimeOrigin=RGt;function vPe(e){let t=TO(FF.otperformance.timeOrigin),n=TO(typeof e=="number"?e:FF.otperformance.now());return RPe(t,n)}ei.hrTime=vPe;function AGt(e){if(L7(e))return e;if(typeof e=="number")return e=jF&&(n[1]-=jF,n[0]+=1),n}ei.addHrTimes=RPe});var wPe=w(HF=>{"use strict";Object.defineProperty(HF,"__esModule",{value:!0});HF.unrefTimer=void 0;function NGt(e){typeof e!="number"&&e.unref()}HF.unrefTimer=NGt});var kPe=w(vO=>{"use strict";Object.defineProperty(vO,"__esModule",{value:!0});vO.ExportResultCode=void 0;var CGt;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(CGt=vO.ExportResultCode||(vO.ExportResultCode={}))});var xPe=w(qF=>{"use strict";Object.defineProperty(qF,"__esModule",{value:!0});qF.CompositePropagator=void 0;var IPe=(Me(),ke(Ze)),U7=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){IPe.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){IPe.diag.warn(`Failed to extract with ${s.constructor.name}. Err: ${o.message}`)}return i},t)}fields(){return this._fields.slice()}};qF.CompositePropagator=U7});var OPe=w(SR=>{"use strict";Object.defineProperty(SR,"__esModule",{value:!0});SR.validateValue=SR.validateKey=void 0;var F7="[_0-9a-z-*/]",MGt=`[a-z]${F7}{0,255}`,DGt=`[a-z0-9]${F7}{0,240}@[a-z]${F7}{0,13}`,LGt=new RegExp(`^(?:${MGt}|${DGt})$`),UGt=/^[ -~]{0,255}[!-~]$/,FGt=/,|=/;function jGt(e){return LGt.test(e)}SR.validateKey=jGt;function HGt(e){return UGt.test(e)&&!FGt.test(e)}SR.validateValue=HGt});var H7=w(BF=>{"use strict";Object.defineProperty(BF,"__esModule",{value:!0});BF.TraceState=void 0;var PPe=OPe(),NPe=32,qGt=512,CPe=",",MPe="=",j7=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+MPe+this.get(n)),t),[]).join(CPe)}_parse(t){t.length>qGt||(this._internalState=t.split(CPe).reverse().reduce((n,r)=>{let i=r.trim(),s=i.indexOf(MPe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);(0,PPe.validateKey)(o)&&(0,PPe.validateValue)(a)&&n.set(o,a)}return n},new Map),this._internalState.size>NPe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,NPe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};BF.TraceState=j7});var LPe=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 zF=(Me(),ke(Ze)),BGt=EO(),zGt=H7();Va.TRACE_PARENT_HEADER="traceparent";Va.TRACE_STATE_HEADER="tracestate";var GGt="00",VGt="(?!ff)[\\da-f]{2}",WGt="(?![0]{32})[\\da-f]{32}",KGt="(?![0]{16})[\\da-f]{16}",YGt="[\\da-f]{2}",ZGt=new RegExp(`^\\s?(${VGt})-(${WGt})-(${KGt})-(${YGt})(-.*)?\\s?$`);function DPe(e){let t=ZGt.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}Va.parseTraceParent=DPe;var q7=class{inject(t,n,r){let i=zF.trace.getSpanContext(t);if(!i||(0,BGt.isTracingSuppressed)(t)||!(0,zF.isSpanContextValid)(i))return;let s=`${GGt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||zF.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=DPe(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 zGt.TraceState(typeof c=="string"?c:void 0)}return zF.trace.setSpanContext(t,o)}fields(){return[Va.TRACE_PARENT_HEADER,Va.TRACE_STATE_HEADER]}};Va.W3CTraceContextPropagator=q7});var UPe=w($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});$d.getRPCMetadata=$d.deleteRPCMetadata=$d.setRPCMetadata=$d.RPCType=void 0;var JGt=(Me(),ke(Ze)),B7=(0,JGt.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),XGt;(function(e){e.HTTP="http"})(XGt=$d.RPCType||($d.RPCType={}));function QGt(e,t){return e.setValue(B7,t)}$d.setRPCMetadata=QGt;function $Gt(e){return e.deleteValue(B7)}$d.deleteRPCMetadata=$Gt;function e2t(e){return e.getValue(B7)}$d.getRPCMetadata=e2t});var BPe=w(GF=>{"use strict";Object.defineProperty(GF,"__esModule",{value:!0});GF.isPlainObject=void 0;var t2t="[object Object]",n2t="[object Null]",r2t="[object Undefined]",i2t=Function.prototype,FPe=i2t.toString,s2t=FPe.call(Object),o2t=Object.getPrototypeOf,jPe=Object.prototype,HPe=jPe.hasOwnProperty,_E=Symbol?Symbol.toStringTag:void 0,qPe=jPe.toString;function a2t(e){if(!c2t(e)||u2t(e)!==t2t)return!1;let t=o2t(e);if(t===null)return!0;let n=HPe.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&FPe.call(n)===s2t}GF.isPlainObject=a2t;function c2t(e){return e!=null&&typeof e=="object"}function u2t(e){return e==null?e===void 0?r2t:n2t:_E&&_E in Object(e)?l2t(e):d2t(e)}function l2t(e){let t=HPe.call(e,_E),n=e[_E],r=!1;try{e[_E]=void 0,r=!0}catch{}let i=qPe.call(e);return r&&(t?e[_E]=n:delete e[_E]),i}function d2t(e){return qPe.call(e)}});var KPe=w(KF=>{"use strict";Object.defineProperty(KF,"__esModule",{value:!0});KF.merge=void 0;var zPe=BPe(),f2t=20;function p2t(...e){let t=e.shift(),n=new WeakMap;for(;e.length>0;)t=VPe(t,e.shift(),0,n);return t}KF.merge=p2t;function z7(e){return WF(e)?e.slice():e}function VPe(e,t,n=0,r){let i;if(!(n>f2t)){if(n++,VF(e)||VF(t)||WPe(t))i=z7(t);else if(WF(e)){if(i=e.slice(),WF(t))for(let s=0,o=t.length;s"u"?delete i[c]:i[c]=u;else{let l=i[c],d=u;if(GPe(e,c,r)||GPe(t,c,r))delete i[c];else{if(RO(l)&&RO(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]=VPe(i[c],u,n,r)}}}}else i=t;return i}}function GPe(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 h2t(e,t){return!(!(0,zPe.isPlainObject)(e)||!(0,zPe.isPlainObject)(t))}});var YPe=w(bR=>{"use strict";Object.defineProperty(bR,"__esModule",{value:!0});bR.callWithTimeout=bR.TimeoutError=void 0;var YF=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};bR.TimeoutError=YF;function m2t(e,t){let n,r=new Promise(function(s,o){n=setTimeout(function(){o(new YF("Operation timed out."))},t)});return Promise.race([e,r]).then(i=>(clearTimeout(n),i),i=>{throw clearTimeout(n),i})}bR.callWithTimeout=m2t});var JPe=w(ER=>{"use strict";Object.defineProperty(ER,"__esModule",{value:!0});ER.isUrlIgnored=ER.urlMatches=void 0;function ZPe(e,t){return typeof t=="string"?e===t:!!e.match(t)}ER.urlMatches=ZPe;function g2t(e,t){if(!t)return!1;for(let n of t)if(ZPe(e,n))return!0;return!1}ER.isUrlIgnored=g2t});var XPe=w(ZF=>{"use strict";Object.defineProperty(ZF,"__esModule",{value:!0});ZF.Deferred=void 0;var G7=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)}};ZF.Deferred=G7});var QPe=w(JF=>{"use strict";Object.defineProperty(JF,"__esModule",{value:!0});JF.BindOnceFuture=void 0;var y2t=XPe(),V7=class{_isCalled=!1;_deferred=new y2t.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}};JF.BindOnceFuture=V7});var eNe=w(XF=>{"use strict";Object.defineProperty(XF,"__esModule",{value:!0});XF.diagLogLevelFromString=void 0;var fm=(Me(),ke(Ze)),$Pe={ALL:fm.DiagLogLevel.ALL,VERBOSE:fm.DiagLogLevel.VERBOSE,DEBUG:fm.DiagLogLevel.DEBUG,INFO:fm.DiagLogLevel.INFO,WARN:fm.DiagLogLevel.WARN,ERROR:fm.DiagLogLevel.ERROR,NONE:fm.DiagLogLevel.NONE};function S2t(e){if(e==null)return;let t=$Pe[e.toUpperCase()];return t??(fm.diag.warn(`Unknown log level "${e}", expected one of ${Object.keys($Pe)}, using default`),fm.DiagLogLevel.INFO)}XF.diagLogLevelFromString=S2t});var nNe=w(QF=>{"use strict";Object.defineProperty(QF,"__esModule",{value:!0});QF._export=void 0;var tNe=(Me(),ke(Ze)),b2t=EO();function E2t(e,t){return new Promise(n=>{tNe.context.with((0,b2t.suppressTracing)(tNe.context.active()),()=>{e.export(t,n)})})}QF._export=E2t});var pr=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 _2t=FRe();Object.defineProperty(we,"W3CBaggagePropagator",{enumerable:!0,get:function(){return _2t.W3CBaggagePropagator}});var T2t=jRe();Object.defineProperty(we,"AnchoredClock",{enumerable:!0,get:function(){return T2t.AnchoredClock}});var rNe=GRe();Object.defineProperty(we,"isAttributeValue",{enumerable:!0,get:function(){return rNe.isAttributeValue}});Object.defineProperty(we,"sanitizeAttributes",{enumerable:!0,get:function(){return rNe.sanitizeAttributes}});var iNe=WRe();Object.defineProperty(we,"globalErrorHandler",{enumerable:!0,get:function(){return iNe.globalErrorHandler}});Object.defineProperty(we,"setGlobalErrorHandler",{enumerable:!0,get:function(){return iNe.setGlobalErrorHandler}});var v2t=s7();Object.defineProperty(we,"loggingErrorHandler",{enumerable:!0,get:function(){return v2t.loggingErrorHandler}});var ql=APe();Object.defineProperty(we,"addHrTimes",{enumerable:!0,get:function(){return ql.addHrTimes}});Object.defineProperty(we,"getTimeOrigin",{enumerable:!0,get:function(){return ql.getTimeOrigin}});Object.defineProperty(we,"hrTime",{enumerable:!0,get:function(){return ql.hrTime}});Object.defineProperty(we,"hrTimeDuration",{enumerable:!0,get:function(){return ql.hrTimeDuration}});Object.defineProperty(we,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return ql.hrTimeToMicroseconds}});Object.defineProperty(we,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return ql.hrTimeToMilliseconds}});Object.defineProperty(we,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return ql.hrTimeToNanoseconds}});Object.defineProperty(we,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return ql.hrTimeToTimeStamp}});Object.defineProperty(we,"isTimeInput",{enumerable:!0,get:function(){return ql.isTimeInput}});Object.defineProperty(we,"isTimeInputHrTime",{enumerable:!0,get:function(){return ql.isTimeInputHrTime}});Object.defineProperty(we,"millisToHrTime",{enumerable:!0,get:function(){return ql.millisToHrTime}});Object.defineProperty(we,"timeInputToHrTime",{enumerable:!0,get:function(){return ql.timeInputToHrTime}});var R2t=wPe();Object.defineProperty(we,"unrefTimer",{enumerable:!0,get:function(){return R2t.unrefTimer}});var A2t=kPe();Object.defineProperty(we,"ExportResultCode",{enumerable:!0,get:function(){return A2t.ExportResultCode}});var w2t=e7();Object.defineProperty(we,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return w2t.parseKeyPairsIntoRecord}});var TE=D7();Object.defineProperty(we,"SDK_INFO",{enumerable:!0,get:function(){return TE.SDK_INFO}});Object.defineProperty(we,"_globalThis",{enumerable:!0,get:function(){return TE._globalThis}});Object.defineProperty(we,"getStringFromEnv",{enumerable:!0,get:function(){return TE.getStringFromEnv}});Object.defineProperty(we,"getBooleanFromEnv",{enumerable:!0,get:function(){return TE.getBooleanFromEnv}});Object.defineProperty(we,"getNumberFromEnv",{enumerable:!0,get:function(){return TE.getNumberFromEnv}});Object.defineProperty(we,"getStringListFromEnv",{enumerable:!0,get:function(){return TE.getStringListFromEnv}});Object.defineProperty(we,"otperformance",{enumerable:!0,get:function(){return TE.otperformance}});var k2t=xPe();Object.defineProperty(we,"CompositePropagator",{enumerable:!0,get:function(){return k2t.CompositePropagator}});var $F=LPe();Object.defineProperty(we,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return $F.TRACE_PARENT_HEADER}});Object.defineProperty(we,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return $F.TRACE_STATE_HEADER}});Object.defineProperty(we,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return $F.W3CTraceContextPropagator}});Object.defineProperty(we,"parseTraceParent",{enumerable:!0,get:function(){return $F.parseTraceParent}});var ej=UPe();Object.defineProperty(we,"RPCType",{enumerable:!0,get:function(){return ej.RPCType}});Object.defineProperty(we,"deleteRPCMetadata",{enumerable:!0,get:function(){return ej.deleteRPCMetadata}});Object.defineProperty(we,"getRPCMetadata",{enumerable:!0,get:function(){return ej.getRPCMetadata}});Object.defineProperty(we,"setRPCMetadata",{enumerable:!0,get:function(){return ej.setRPCMetadata}});var W7=EO();Object.defineProperty(we,"isTracingSuppressed",{enumerable:!0,get:function(){return W7.isTracingSuppressed}});Object.defineProperty(we,"suppressTracing",{enumerable:!0,get:function(){return W7.suppressTracing}});Object.defineProperty(we,"unsuppressTracing",{enumerable:!0,get:function(){return W7.unsuppressTracing}});var I2t=H7();Object.defineProperty(we,"TraceState",{enumerable:!0,get:function(){return I2t.TraceState}});var x2t=KPe();Object.defineProperty(we,"merge",{enumerable:!0,get:function(){return x2t.merge}});var sNe=YPe();Object.defineProperty(we,"TimeoutError",{enumerable:!0,get:function(){return sNe.TimeoutError}});Object.defineProperty(we,"callWithTimeout",{enumerable:!0,get:function(){return sNe.callWithTimeout}});var oNe=JPe();Object.defineProperty(we,"isUrlIgnored",{enumerable:!0,get:function(){return oNe.isUrlIgnored}});Object.defineProperty(we,"urlMatches",{enumerable:!0,get:function(){return oNe.urlMatches}});var O2t=QPe();Object.defineProperty(we,"BindOnceFuture",{enumerable:!0,get:function(){return O2t.BindOnceFuture}});var P2t=eNe();Object.defineProperty(we,"diagLogLevelFromString",{enumerable:!0,get:function(){return P2t.diagLogLevelFromString}});var N2t=nNe();we.internal={_export:N2t._export}});var aNe=w(tj=>{"use strict";Object.defineProperty(tj,"__esModule",{value:!0});tj.VERSION=void 0;tj.VERSION="0.214.0"});var cNe=w(AO=>{"use strict";Object.defineProperty(AO,"__esModule",{value:!0});AO.SeverityNumber=void 0;var C2t;(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"})(C2t=AO.SeverityNumber||(AO.SeverityNumber={}))});var rj=w(_R=>{"use strict";Object.defineProperty(_R,"__esModule",{value:!0});_R.NOOP_LOGGER=_R.NoopLogger=void 0;var nj=class{emit(t){}};_R.NoopLogger=nj;_R.NOOP_LOGGER=new nj});var uNe=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 M2t(e,t,n){return r=>r===e?t:n}Pp.makeGetter=M2t;Pp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var K7=w(TR=>{"use strict";Object.defineProperty(TR,"__esModule",{value:!0});TR.NOOP_LOGGER_PROVIDER=TR.NoopLoggerProvider=void 0;var D2t=rj(),ij=class{getLogger(t,n,r){return new D2t.NoopLogger}};TR.NoopLoggerProvider=ij;TR.NOOP_LOGGER_PROVIDER=new ij});var lNe=w(sj=>{"use strict";Object.defineProperty(sj,"__esModule",{value:!0});sj.ProxyLogger=void 0;var L2t=rj(),Y7=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):L2t.NOOP_LOGGER}};sj.ProxyLogger=Y7});var dNe=w(oj=>{"use strict";Object.defineProperty(oj,"__esModule",{value:!0});oj.ProxyLoggerProvider=void 0;var U2t=K7(),F2t=lNe(),Z7=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new F2t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:U2t.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)}};oj.ProxyLoggerProvider=Z7});var pNe=w(aj=>{"use strict";Object.defineProperty(aj,"__esModule",{value:!0});aj.LogsAPI=void 0;var Bl=uNe(),j2t=K7(),fNe=dNe(),J7=class e{constructor(){this._proxyLoggerProvider=new fNe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return Bl._global[Bl.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(Bl._global[Bl.GLOBAL_LOGS_API_KEY]=(0,Bl.makeGetter)(Bl.API_BACKWARDS_COMPATIBILITY_VERSION,t,j2t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=Bl._global[Bl.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(Bl._global,Bl.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete Bl._global[Bl.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new fNe.ProxyLoggerProvider}};aj.LogsAPI=J7});var X7=w(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});Np.logs=Np.NoopLogger=Np.NOOP_LOGGER=Np.SeverityNumber=void 0;var H2t=cNe();Object.defineProperty(Np,"SeverityNumber",{enumerable:!0,get:function(){return H2t.SeverityNumber}});var hNe=rj();Object.defineProperty(Np,"NOOP_LOGGER",{enumerable:!0,get:function(){return hNe.NOOP_LOGGER}});Object.defineProperty(Np,"NoopLogger",{enumerable:!0,get:function(){return hNe.NoopLogger}});var q2t=pNe();Np.logs=q2t.LogsAPI.getInstance()});var mNe=w(vR=>{"use strict";Object.defineProperty(vR,"__esModule",{value:!0});vR.disableInstrumentations=vR.enableInstrumentations=void 0;function B2t(e,t,n,r){for(let i=0,s=e.length;it.disable())}vR.disableInstrumentations=z2t});var SNe=w(cj=>{"use strict";Object.defineProperty(cj,"__esModule",{value:!0});cj.registerInstrumentations=void 0;var gNe=(Me(),ke(Ze)),G2t=X7(),yNe=mNe();function V2t(e){let t=e.tracerProvider||gNe.trace.getTracerProvider(),n=e.meterProvider||gNe.metrics.getMeterProvider(),r=e.loggerProvider||G2t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,yNe.enableInstrumentations)(i,t,n,r),()=>{(0,yNe.disableInstrumentations)(i)}}cj.registerInstrumentations=V2t});var kNe=w(uj=>{"use strict";Object.defineProperty(uj,"__esModule",{value:!0});uj.satisfies=void 0;var tJ=(Me(),ke(Ze)),vNe=/^(?: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-]+)*))?$/,W2t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,K2t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function Y2t(e,t,n){if(!Z2t(e))return tJ.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=$2t(e);if(!r)return!1;let i=[],s=RNe(r,t,i,n);return s&&!n?.includePrerelease?X2t(r,i):s}uj.satisfies=Y2t;function Z2t(e){return typeof e=="string"&&vNe.test(e)}function RNe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Q7(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=EVt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!Q7(e,s,n,r))return!1;return!0}return Q7(e,t,n,r)}function Q7(e,t,n,r){if(t=Q2t(t,r),t.includes(" "))return RNe(e,t,n,r);{let i=eVt(t);return n.push(i),J2t(e,i)}}function J2t(e,t){if(t.invalid)return!1;if(!t.version||eJ(t.version))return!0;let n=ENe(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=ENe(r,i)}return K2t[t.op]?.includes(n)}function X2t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function Q2t(e,t){return e=e.trim(),e=SVt(e,t),e=yVt(e),e=bVt(e,t),e=e.trim(),e}function kc(e){return!e||e.toLowerCase()==="x"||e==="*"}function $2t(e){let t=e.match(vNe);if(!t){tJ.diag.error(`Invalid version: ${e}`);return}let n=t.groups.version,r=t.groups.prerelease,i=t.groups.build,s=n.split("."),o=r?.split(".");return{op:void 0,version:n,versionSegments:s,versionSegmentCount:s.length,prerelease:r,prereleaseSegments:o,prereleaseSegmentCount:o?o.length:0,build:i}}function eVt(e){if(!e)return{};let t=e.match(W2t);if(!t)return tJ.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function eJ(e){return e==="*"||e==="x"||e==="X"}function bNe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function tVt(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 nVt(e,t){if(eJ(e)||eJ(t))return 0;let[n,r]=tVt(bNe(e),bNe(t));return n>r?1:n)?=?)",_Ne=`(?:${wNe}|${rVt})`,sVt=`(?:-(${_Ne}(?:\\.${_Ne})*))`,TNe=`${ANe}+`,oVt=`(?:\\+(${TNe}(?:\\.${TNe})*))`,$7=`${wNe}|x|X|\\*`,wO=`[v=\\s]*(${$7})(?:\\.(${$7})(?:\\.(${$7})(?:${sVt})?${oVt}?)?)?`,aVt=`^${iVt}\\s*${wO}$`,cVt=new RegExp(aVt),uVt=`^\\s*(${wO})\\s+-\\s+(${wO})\\s*$`,lVt=new RegExp(uVt),dVt="(?:~>?)",fVt=`^${dVt}${wO}$`,pVt=new RegExp(fVt),hVt="(?:\\^)",mVt=`^${hVt}${wO}$`,gVt=new RegExp(mVt);function yVt(e){let t=pVt;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 SVt(e,t){let n=gVt,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 bVt(e,t){let n=cVt;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 EVt(e,t){let n=lVt;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 nJ=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 kO(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 _Vt=(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 kO(i,"__original",r),kO(i,"__unwrap",()=>{e[t]===i&&kO(e,t,r)}),kO(i,"__wrapped",!0),kO(e,t,i),i};ia.wrap=_Vt;var TVt=(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=TVt;var vVt=(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=vVt;var RVt=(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=RVt;function IO(e){e&&e.logger&&(typeof e.logger!="function"?Ic("new logger isn't a function, not replacing"):Ic=e.logger)}ia.default=IO;IO.wrap=ia.wrap;IO.massWrap=ia.massWrap;IO.unwrap=ia.unwrap;IO.massUnwrap=ia.massUnwrap});var INe=w(dj=>{"use strict";Object.defineProperty(dj,"__esModule",{value:!0});dj.InstrumentationAbstract=void 0;var rJ=(Me(),ke(Ze)),AVt=X7(),lj=nJ(),iJ=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=rJ.diag.createComponentLogger({namespace:t}),this._tracer=rJ.trace.getTracer(t,n),this._meter=rJ.metrics.getMeter(t,n),this._logger=AVt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=lj.wrap;_unwrap=lj.unwrap;_massWrap=lj.massWrap;_massUnwrap=lj.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)}}};dj.InstrumentationAbstract=iJ});var ONe=w((WSr,xNe)=>{var RR=1e3,AR=RR*60,wR=AR*60,vE=wR*24,wVt=vE*7,kVt=vE*365.25;xNe.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return IVt(e);if(n==="number"&&isFinite(e))return t.long?OVt(e):xVt(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function IVt(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*kVt;case"weeks":case"week":case"w":return n*wVt;case"days":case"day":case"d":return n*vE;case"hours":case"hour":case"hrs":case"hr":case"h":return n*wR;case"minutes":case"minute":case"mins":case"min":case"m":return n*AR;case"seconds":case"second":case"secs":case"sec":case"s":return n*RR;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function xVt(e){var t=Math.abs(e);return t>=vE?Math.round(e/vE)+"d":t>=wR?Math.round(e/wR)+"h":t>=AR?Math.round(e/AR)+"m":t>=RR?Math.round(e/RR)+"s":e+"ms"}function OVt(e){var t=Math.abs(e);return t>=vE?fj(e,t,vE,"day"):t>=wR?fj(e,t,wR,"hour"):t>=AR?fj(e,t,AR,"minute"):t>=RR?fj(e,t,RR,"second"):e+" ms"}function fj(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var sJ=w((KSr,PNe)=>{function PVt(e){n.debug=n,n.default=n,n.coerce=c,n.disable=o,n.enable=i,n.enabled=a,n.humanize=ONe(),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}PNe.exports=PVt});var NNe=w((cu,pj)=>{cu.formatArgs=CVt;cu.save=MVt;cu.load=DVt;cu.useColors=NVt;cu.storage=LVt();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 NVt(){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 CVt(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+pj.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 MVt(e){try{e?cu.storage.setItem("debug",e):cu.storage.removeItem("debug")}catch{}}function DVt(){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 LVt(){try{return localStorage}catch{}}pj.exports=sJ()(cu);var{formatters:UVt}=pj.exports;UVt.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var MNe=w((YSr,CNe)=>{"use strict";CNe.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 FVt=Y("os"),DNe=Y("tty"),zl=MNe(),{env:No}=process,hj;zl("no-color")||zl("no-colors")||zl("color=false")||zl("color=never")?hj=0:(zl("color")||zl("colors")||zl("color=true")||zl("color=always"))&&(hj=1);function jVt(){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 HVt(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function qVt(e,{streamIsTTY:t,sniffFlags:n=!0}={}){let r=jVt();r!==void 0&&(hj=r);let i=n?hj:r;if(i===0)return 0;if(n){if(zl("color=16m")||zl("color=full")||zl("color=truecolor"))return 3;if(zl("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=FVt.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 oJ(e,t={}){let n=qVt(e,{streamIsTTY:e&&e.isTTY,...t});return HVt(n)}LNe.exports={supportsColor:oJ,stdout:oJ({isTTY:DNe.isatty(1)}),stderr:oJ({isTTY:DNe.isatty(2)})}});var FNe=w((Co,yj)=>{var BVt=Y("tty"),gj=Y("util");Co.init=ZVt;Co.log=WVt;Co.formatArgs=GVt;Co.save=KVt;Co.load=YVt;Co.useColors=zVt;Co.destroy=gj.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Co.colors=[6,2,3,4,5,1];try{let e=mj();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 zVt(){return"colors"in Co.inspectOpts?!!Co.inspectOpts.colors:BVt.isatty(process.stderr.fd)}function GVt(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+"+yj.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=zVt()+t+" "+e[0]}function zVt(){return Co.inspectOpts.hideDate?"":new Date().toISOString()+" "}function GVt(...e){return process.stderr.write(gj.formatWithOptions(Co.inspectOpts,...e)+` -`)}function VVt(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function WVt(){return process.env.DEBUG}function KVt(e){e.inspectOpts={};let t=Object.keys(Co.inspectOpts);for(let n=0;nt.trim()).join(" ")};DNe.O=function(e){return this.inspectOpts.colors=this.useColors,gj.inspect(e,this.inspectOpts)}});var UNe=w((JSr,oJ)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?oJ.exports=ONe():oJ.exports=LNe()});var xO=w((XSr,FNe)=>{"use strict";var aJ=Y("path").sep;FNe.exports=function(e){var t=e.split(aJ),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]+aJ;for(var u="",l=t.length-1,d=n+s;d<=l;d++)d===l?u+=t[d]:u+=t[d]+aJ;return{name:i,basedir:o,path:u}}}});var RE=w((QSr,lJ)=>{"use strict";var kR=Y("path"),ef=Y("module"),ks=UNe()("require-in-the-middle"),YVt=xO();lJ.exports=OO;lJ.exports.Hook=OO;var cJ,Sj;if(ef.isBuiltin)Sj=ef.isBuiltin;else if(ef.builtinModules)Sj=e=>e.startsWith("node:")?!0:(cJ===void 0&&(cJ=new Set(ef.builtinModules)),cJ.has(e));else throw new Error("'require-in-the-middle' requires Node.js >=v9.3.0 or >=v8.10.0");var ZVt=/([/\\]index)?(\.js)?$/,uJ=class{constructor(){this._localCache=new Map,this._kRitmExports=Symbol("RitmExports")}has(t,n){if(this._localCache.has(t))return!0;if(n)return!1;{let r=Y.cache[t];return!!(r&&this._kRitmExports in r)}}get(t,n){let r=this._localCache.get(t);if(r!==void 0)return r;if(!n){let i=Y.cache[t];return i&&i[this._kRitmExports]}}set(t,n,r){r?this._localCache.set(t,n):t in Y.cache?Y.cache[t][this._kRitmExports]=n:(ks('non-core module is unexpectedly not in require.cache: "%s"',t),this._localCache.set(t,n))}};function OO(e,t,n){if(!(this instanceof OO))return new OO(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 uJ,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=Sj(l),f;if(d){if(f=l,l.startsWith("node:")){let b=l.slice(5);Sj(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=kR.parse(f);p=b.name,h=b.dir}else{let b=YVt(f);if(b===void 0)return ks("could not parse filename: %s",f),g;p=b.name,h=b.basedir;let S=JVt(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{_=Y.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+kR.sep+kR.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}}OO.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 JVt(e){let t=kR.sep!=="/"?e.path.split(kR.sep).join("/"):e.path;return kR.posix.join(e.name,t).replace(ZVt,"")}});var jNe=w(hy=>{"use strict";Object.defineProperty(hy,"__esModule",{value:!0});hy.ModuleNameTrie=hy.ModuleNameSeparator=void 0;hy.ModuleNameSeparator="/";var bj=class{hooks=[];children=new Map},dJ=class{_trie=new bj;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(hy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new bj,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(hy.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))}};hy.ModuleNameTrie=dJ});var qNe=w(Ej=>{"use strict";Object.defineProperty(Ej,"__esModule",{value:!0});Ej.RequireInTheMiddleSingleton=void 0;var XVt=RE(),HNe=Y("path"),fJ=jNe(),QVt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),pJ=class e{_moduleNameTrie=new fJ.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new XVt.Hook(null,{internals:!0},(t,n,r)=>{let i=$Vt(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 QVt?new e:this._instance=this._instance??new e}};Ej.RequireInTheMiddleSingleton=pJ;function $Vt(e){return HNe.sep!==fJ.ModuleNameSeparator?e.split(HNe.sep).join(fJ.ModuleNameSeparator):e}});var WNe=w(PO=>{var BNe=[],hJ=new WeakMap,zNe=new WeakMap,GNe=new Map,VNe=[],eWt={set(e,t,n){let r=hJ.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=zNe.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=hJ.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function tWt(e,t,n,r,i){GNe.set(e,i),hJ.set(t,n),zNe.set(t,r);let s=new Proxy(t,eWt);BNe.forEach(o=>o(e,s,i)),VNe.push([e,s,i])}PO.register=tWt;PO.importHooks=BNe;PO.specifiers=GNe;PO.toHook=VNe});var SJ=w((rbr,xR)=>{var KNe=Y("path"),nWt=xO(),{fileURLToPath:rWt}=Y("url"),{MessageChannel:iWt}=Y("worker_threads"),{isBuiltin:mJ}=Y("module");mJ||(mJ=()=>!0);var{importHooks:gJ,specifiers:YNe,toHook:sWt}=WNe();function oWt(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){gJ.push(e),sWt.forEach(([t,n,r])=>e(t,n,r))}function JNe(e){let t=gJ.indexOf(e);t>-1&&gJ.splice(t,1)}function IR(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var yJ;function aWt(){let{port1:e,port2:t}=new iWt,n=0,r;yJ=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 NO(e,t,n){if(!(this instanceof NO))return new NO(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;yJ&&Array.isArray(e)&&yJ(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);mJ(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=rWt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=nWt(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)IR(n,s,u,void 0);else if(d===i){if(!l)IR(n,s,i,l);else if(l.endsWith(YNe.get(a))||oWt(YNe.get(a),l))IR(n,s,i,l);else if(r){let f=i+KNe.sep+KNe.relative(l,u);IR(n,s,f,l)}}else d===o&&IR(n,s,o,l);else IR(n,s,i,l)},ZNe(this._iitmHook)}NO.prototype.unhook=function(){JNe(this._iitmHook)};xR.exports=NO;xR.exports.Hook=NO;xR.exports.addHook=ZNe;xR.exports.removeHook=JNe;xR.exports.createAddHookMessageChannel=aWt});var bJ=w(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.isWrapped=my.safeExecuteInTheMiddleAsync=my.safeExecuteInTheMiddle=void 0;function cWt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}my.safeExecuteInTheMiddle=cWt;async function uWt(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}}my.safeExecuteInTheMiddleAsync=uWt;function lWt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}my.isWrapped=lWt});var $Ne=w(_j=>{"use strict";Object.defineProperty(_j,"__esModule",{value:!0});_j.InstrumentationBase=void 0;var CO=Y("path"),XNe=Y("util"),dWt=ANe(),EJ=tJ(),fWt=wNe(),pWt=qNe(),hWt=SJ(),MO=(Me(),ke(Ze)),mWt=RE(),gWt=Y("fs"),yWt=bJ(),_J=class extends fWt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=pWt.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,yWt.isWrapped)(t[n])&&this._unwrap(t,n),XNe.types.isProxy(t)){let i=(0,EJ.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,EJ.wrap)(t,n,r)};_unwrap=(t,n)=>XNe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,EJ.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{MO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MO.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{MO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MO.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,gWt.readFileSync)(CO.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{MO.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 QNe(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=CO.normalize(r);return o.filter(u=>u.name===a&&QNe(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&&CO.isAbsolute(a)){let u=CO.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=CO.isAbsolute(t.name)?new mWt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new hWt.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}};_j.InstrumentationBase=_J;function QNe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,dWt.satisfies)(t,r,{includePrerelease:n}))}});var eCe=w(Tj=>{"use strict";Object.defineProperty(Tj,"__esModule",{value:!0});Tj.normalize=void 0;var SWt=Y("path");Object.defineProperty(Tj,"normalize",{enumerable:!0,get:function(){return SWt.normalize}})});var tCe=w(OR=>{"use strict";Object.defineProperty(OR,"__esModule",{value:!0});OR.normalize=OR.InstrumentationBase=void 0;var bWt=$Ne();Object.defineProperty(OR,"InstrumentationBase",{enumerable:!0,get:function(){return bWt.InstrumentationBase}});var EWt=eCe();Object.defineProperty(OR,"normalize",{enumerable:!0,get:function(){return EWt.normalize}})});var TJ=w(PR=>{"use strict";Object.defineProperty(PR,"__esModule",{value:!0});PR.normalize=PR.InstrumentationBase=void 0;var nCe=tCe();Object.defineProperty(PR,"InstrumentationBase",{enumerable:!0,get:function(){return nCe.InstrumentationBase}});Object.defineProperty(PR,"normalize",{enumerable:!0,get:function(){return nCe.normalize}})});var rCe=w(vj=>{"use strict";Object.defineProperty(vj,"__esModule",{value:!0});vj.InstrumentationNodeModuleDefinition=void 0;var vJ=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}};vj.InstrumentationNodeModuleDefinition=vJ});var iCe=w(Rj=>{"use strict";Object.defineProperty(Rj,"__esModule",{value:!0});Rj.InstrumentationNodeModuleFile=void 0;var _Wt=TJ(),RJ=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,_Wt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};Rj.InstrumentationNodeModuleFile=RJ});var sCe=w(AE=>{"use strict";Object.defineProperty(AE,"__esModule",{value:!0});AE.semconvStabilityFromStr=AE.SemconvStability=void 0;var Aj;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(Aj=AE.SemconvStability||(AE.SemconvStability={}));function TWt(e,t){let n=Aj.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=Aj.DUPLICATE;break}else i.toLowerCase()===e&&(n=Aj.STABLE);return n}AE.semconvStabilityFromStr=TWt});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 vWt=gNe();Object.defineProperty(Bs,"registerInstrumentations",{enumerable:!0,get:function(){return vWt.registerInstrumentations}});var RWt=TJ();Object.defineProperty(Bs,"InstrumentationBase",{enumerable:!0,get:function(){return RWt.InstrumentationBase}});var AWt=rCe();Object.defineProperty(Bs,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return AWt.InstrumentationNodeModuleDefinition}});var wWt=iCe();Object.defineProperty(Bs,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return wWt.InstrumentationNodeModuleFile}});var AJ=bJ();Object.defineProperty(Bs,"isWrapped",{enumerable:!0,get:function(){return AJ.isWrapped}});Object.defineProperty(Bs,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return AJ.safeExecuteInTheMiddle}});Object.defineProperty(Bs,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return AJ.safeExecuteInTheMiddleAsync}});var oCe=sCe();Object.defineProperty(Bs,"SemconvStability",{enumerable:!0,get:function(){return oCe.SemconvStability}});Object.defineProperty(Bs,"semconvStabilityFromStr",{enumerable:!0,get:function(){return oCe.semconvStabilityFromStr}})});var aCe=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 cCe=w(DO=>{"use strict";Object.defineProperty(DO,"__esModule",{value:!0});DO.AttributeNames=void 0;var kWt;(function(e){e.HTTP_ERROR_NAME="http.error_name",e.HTTP_ERROR_MESSAGE="http.error_message",e.HTTP_STATUS_TEXT="http.status_text"})(kWt=DO.AttributeNames||(DO.AttributeNames={}))});var wJ=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 lCe=w((gbr,uCe)=>{"use strict";var IWt=Y("util");function kJ(e,t){Error.captureStackTrace(this,kJ),this.name=this.constructor.name,this.message=e,this.input=t}IWt.inherits(kJ,Error);uCe.exports=kJ});var fCe=w((ybr,dCe)=>{"use strict";function xWt(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 PWt(e){return e>=32&&e<=126}function NWt(e){return e>=128&&e<=255}dCe.exports={isDelimiter:xWt,isTokenChar:OWt,isExtended:NWt,isPrint:PWt}});var yCe=w((Sbr,gCe)=>{"use strict";var CWt=Y("util"),NR=lCe(),wj=fCe(),MWt=wj.isDelimiter,pCe=wj.isTokenChar,hCe=wj.isExtended,DWt=wj.isPrint;function mCe(e){return e.replace(/\\(.)/g,"$1")}function LO(e,t){return CWt.format("Unexpected character '%s' at index %d",e.charAt(t),t)}function LWt(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 UO=(Me(),ke(Ze)),fn=(Nn(),ke(Mr)),dt=aCe(),SCe=pr(),ol=Jt(),UWt=Y("url"),Ij=cCe(),bCe=wJ(),kj=wJ(),FWt=yCe(),jWt=(e,t,n="http:",r=Array.from(kj.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,kj.STR_REDACTED);a=`${l.pathname}${l.search}`}catch{}let u=i.auth?`${kj.STR_REDACTED}:${kj.STR_REDACTED}@`:"";return`${s}//${u}${c}${a}`};Tt.getAbsoluteUrl=jWt;var HWt=(e,t)=>{let n=e===UO.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=qWt;var BWt=(e,t,n)=>{let r=t.message;n&ol.SemconvStability.OLD&&(e.setAttribute(Ij.AttributeNames.HTTP_ERROR_NAME,t.name),e.setAttribute(Ij.AttributeNames.HTTP_ERROR_MESSAGE,r)),n&ol.SemconvStability.STABLE&&e.setAttribute(fn.ATTR_ERROR_TYPE,t.name),e.setStatus({code:UO.SpanStatusCode.ERROR,message:r}),e.recordException(t)};Tt.setSpanWithError=BWt;var zWt=(e,t)=>{let n=_Ce(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=zWt;var GWt=(e,t)=>{let n=_Ce(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=GWt;function _Ce(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}var VWt=e=>{let t=e["content-encoding"];return!!t&&t!=="identity"};Tt.isCompressed=VWt;function WWt(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 KWt=(e,t,n)=>{let r,i,s,o=!1;if(typeof t=="string"){try{let c=WWt(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 UWt.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=KWt;var YWt=e=>{if(!e)return!1;let t=typeof e;return t==="string"||t==="object"&&!Array.isArray(e)};Tt.isValidOptionsType=YWt;var ZWt=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=ZWt;var JWt=(e,t,n,r)=>{let i=t.hostname,s=t.port,o=e.method??"GET",a=RCe(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]=TCe(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=JWt;var XWt=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=XWt;var QWt=(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=QWt;var TCe=e=>{let t=String(e).toLowerCase();for(let n of bCe.SYNTHETIC_TEST_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST;for(let n of bCe.SYNTHETIC_BOT_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT},$Wt=(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[Ij.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=$Wt;var e4t=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=e4t;var t4t=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=t4t;function gy(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 n4t(e,t){let n=e.headers.forwarded;if(n){for(let s of ACe(n))if(s.host)return gy(s.host,s.proto)}let r=e.headers["x-forwarded-host"];if(typeof r=="string")return typeof e.headers["x-forwarded-proto"]=="string"?gy(r,e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?gy(r,e.headers["x-forwarded-proto"][0]):gy(r);if(Array.isArray(r)&&typeof r[0]=="string"&&r[0].length>0)return typeof e.headers["x-forwarded-proto"]=="string"?gy(r[0],e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?gy(r[0],e.headers["x-forwarded-proto"][0]):gy(r[0]);let i=e.headers.host;return typeof i=="string"&&i.length>0?gy(i,t):null}function vCe(e){let t=e.headers.forwarded;if(t){for(let i of ACe(t))if(i.for)return ECe(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(),ECe(i)}let r=e.socket.remoteAddress;return r||null}Tt.getRemoteClientAddress=vCe;function ECe(e){try{let{hostname:t}=new URL(`http://${e}`);return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}catch{return e}}function r4t(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 i4t=(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=r4t(r,e,n),m,g;if(o!==ol.SemconvStability.OLD){let y=RCe(l),b=n4t(e,r),S=vCe(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]=TCe(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=i4t;var s4t=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=s4t;var o4t=(e,t,n)=>{let{socket:r}=e,{statusCode:i,statusMessage:s}=t,o={[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]:i},a=(0,SCe.getRPCMetadata)(UO.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[Ij.AttributeNames.HTTP_STATUS_TEXT]=(s||"").toUpperCase(),a?.type===SCe.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=o4t;var a4t=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=a4t;var c4t=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=c4t;function u4t(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=u4t;var l4t=new Set(["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH","QUERY"]);function RCe(e){if(e==null)return"GET";let t=e.toUpperCase();return l4t.has(t)?t:"_OTHER"}function ACe(e){try{return FWt(e)}catch{return[]}}});var kCe=w(xj=>{"use strict";Object.defineProperty(xj,"__esModule",{value:!0});xj.HttpInstrumentation=void 0;var tn=(Me(),ke(Ze)),yy=pr(),d4t=Y("url"),f4t=sNe(),Mo=Jt(),IJ=Y("events"),Oi=(Nn(),ke(Mr)),Is=wCe(),xJ=class extends Mo.InstrumentationBase{_spanNotEnded=new WeakSet;_headerCapture;_httpPatched=!1;_httpsPatched=!1;_semconvStability=Mo.SemconvStability.OLD;constructor(t={}){super("@opentelemetry/instrumentation-http",f4t.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(IJ.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(IJ.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,yy.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,yy.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:yy.RPCType.HTTP,span:y};return tn.context.with((0,yy.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(IJ.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 d4t.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,yy.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,yy.hrTimeToMilliseconds)((0,yy.hrTimeDuration)(r,(0,yy.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)}}}};xj.HttpInstrumentation=xJ});var ICe=w(Oj=>{"use strict";Object.defineProperty(Oj,"__esModule",{value:!0});Oj.HttpInstrumentation=void 0;var p4t=kCe();Object.defineProperty(Oj,"HttpInstrumentation",{enumerable:!0,get:function(){return p4t.HttpInstrumentation}})});var Fe,Pi=v(()=>{Fe=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var qt,Wa=v(()=>{qt=globalThis});var Cn,Pj=v(()=>{Cn="10.47.0"});function xc(){return Sy(qt),qt}function Sy(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||Cn,t[Cn]=t[Cn]||{}}function tf(e,t,n=qt){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[Cn]=r[Cn]||{};return i[e]||(i[e]=t())}var Gl=v(()=>{Pj();Wa()});function xs(e){if(!("console"in qt))return e();let t=qt.console,n={},r=Object.keys(CR);r.forEach(i=>{let s=CR[i];n[i]=t[i],t[i]=s});try{return e()}finally{r.forEach(i=>{t[i]=n[i]})}}function m4t(){PJ().enabled=!0}function g4t(){PJ().enabled=!1}function xCe(){return PJ().enabled}function y4t(...e){OJ("log",...e)}function S4t(...e){OJ("warn",...e)}function b4t(...e){OJ("error",...e)}function OJ(e,...t){Fe&&xCe()&&xs(()=>{qt.console[e](`${h4t}[${e}]:`,...t)})}function PJ(){return Fe?tf("loggerSettings",()=>({enabled:!1})):{enabled:!1}}var FO,h4t,CR,Z,_r=v(()=>{Gl();Pi();Wa();FO=["debug","info","warn","error","log","assert","trace"],h4t="Sentry Logger ",CR={};Z={enable:m4t,disable:g4t,isEnabled:xCe,log:y4t,warn:S4t,error:b4t}});function Cj(...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=OCe.test(c)?c.replace(OCe,"$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 NCe(s.slice(i))}}function CJ(e){return Array.isArray(e)?Cj(...e):e}function NCe(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(Nj(t).function||"")&&t.pop(),t.reverse(),PCe.test(Nj(t).function||"")&&(t.pop(),PCe.test(Nj(t).function||"")&&t.pop()),t.slice(0,50).map(n=>({...n,filename:n.filename||Nj(t).filename,function:n.function||"?"}))}function Nj(e){return e[e.length-1]||{}}function jO(e){try{return!e||typeof e!="function"?NJ:e.name||NJ}catch{return NJ}}function Mj(e){return"__v_isVNode"in e&&e.__v_isVNode?"[VueVNode]":"[VueViewModel]"}function CCe(e){let t=e?.startsWith("file://")?e.slice(7):e;return t?.match(/\/[A-Z]:/)&&(t=t.slice(1)),t}var OCe,PCe,NJ,MR=v(()=>{OCe=/\(error: (.*)\)/,PCe=/captureMessage|captureException/;NJ=""});function DR(e,t){Dj[e]=Dj[e]||[],Dj[e].push(t)}function LR(e,t){if(!MCe[e]){MCe[e]=!0;try{t()}catch(n){Fe&&Z.error(`Error while instrumenting ${e}`,n)}}}function UR(e,t){let n=e&&Dj[e];if(n)for(let r of n)try{r(t)}catch(i){Fe&&Z.error(`Error while triggering instrumentation handler. +`+s),e.push(i+"m+"+yj.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=VVt()+t+" "+e[0]}function VVt(){return Co.inspectOpts.hideDate?"":new Date().toISOString()+" "}function WVt(...e){return process.stderr.write(gj.formatWithOptions(Co.inspectOpts,...e)+` +`)}function KVt(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function YVt(){return process.env.DEBUG}function ZVt(e){e.inspectOpts={};let t=Object.keys(Co.inspectOpts);for(let n=0;nt.trim()).join(" ")};UNe.O=function(e){return this.inspectOpts.colors=this.useColors,gj.inspect(e,this.inspectOpts)}});var jNe=w((JSr,aJ)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?aJ.exports=NNe():aJ.exports=FNe()});var xO=w((XSr,HNe)=>{"use strict";var cJ=Y("path").sep;HNe.exports=function(e){var t=e.split(cJ),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]+cJ;for(var u="",l=t.length-1,d=n+s;d<=l;d++)d===l?u+=t[d]:u+=t[d]+cJ;return{name:i,basedir:o,path:u}}}});var RE=w((QSr,dJ)=>{"use strict";var kR=Y("path"),ef=Y("module"),ks=jNe()("require-in-the-middle"),JVt=xO();dJ.exports=OO;dJ.exports.Hook=OO;var uJ,Sj;if(ef.isBuiltin)Sj=ef.isBuiltin;else if(ef.builtinModules)Sj=e=>e.startsWith("node:")?!0:(uJ===void 0&&(uJ=new Set(ef.builtinModules)),uJ.has(e));else throw new Error("'require-in-the-middle' requires Node.js >=v9.3.0 or >=v8.10.0");var XVt=/([/\\]index)?(\.js)?$/,lJ=class{constructor(){this._localCache=new Map,this._kRitmExports=Symbol("RitmExports")}has(t,n){if(this._localCache.has(t))return!0;if(n)return!1;{let r=Y.cache[t];return!!(r&&this._kRitmExports in r)}}get(t,n){let r=this._localCache.get(t);if(r!==void 0)return r;if(!n){let i=Y.cache[t];return i&&i[this._kRitmExports]}}set(t,n,r){r?this._localCache.set(t,n):t in Y.cache?Y.cache[t][this._kRitmExports]=n:(ks('non-core module is unexpectedly not in require.cache: "%s"',t),this._localCache.set(t,n))}};function OO(e,t,n){if(!(this instanceof OO))return new OO(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 lJ,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=Sj(l),f;if(d){if(f=l,l.startsWith("node:")){let b=l.slice(5);Sj(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=kR.parse(f);p=b.name,h=b.dir}else{let b=JVt(f);if(b===void 0)return ks("could not parse filename: %s",f),g;p=b.name,h=b.basedir;let S=QVt(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{_=Y.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+kR.sep+kR.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}}OO.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 QVt(e){let t=kR.sep!=="/"?e.path.split(kR.sep).join("/"):e.path;return kR.posix.join(e.name,t).replace(XVt,"")}});var qNe=w(hy=>{"use strict";Object.defineProperty(hy,"__esModule",{value:!0});hy.ModuleNameTrie=hy.ModuleNameSeparator=void 0;hy.ModuleNameSeparator="/";var bj=class{hooks=[];children=new Map},fJ=class{_trie=new bj;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(hy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new bj,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(hy.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))}};hy.ModuleNameTrie=fJ});var zNe=w(Ej=>{"use strict";Object.defineProperty(Ej,"__esModule",{value:!0});Ej.RequireInTheMiddleSingleton=void 0;var $Vt=RE(),BNe=Y("path"),pJ=qNe(),eWt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),hJ=class e{_moduleNameTrie=new pJ.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new $Vt.Hook(null,{internals:!0},(t,n,r)=>{let i=tWt(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 eWt?new e:this._instance=this._instance??new e}};Ej.RequireInTheMiddleSingleton=hJ;function tWt(e){return BNe.sep!==pJ.ModuleNameSeparator?e.split(BNe.sep).join(pJ.ModuleNameSeparator):e}});var YNe=w(PO=>{var GNe=[],mJ=new WeakMap,VNe=new WeakMap,WNe=new Map,KNe=[],nWt={set(e,t,n){let r=mJ.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=VNe.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=mJ.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function rWt(e,t,n,r,i){WNe.set(e,i),mJ.set(t,n),VNe.set(t,r);let s=new Proxy(t,nWt);GNe.forEach(o=>o(e,s,i)),KNe.push([e,s,i])}PO.register=rWt;PO.importHooks=GNe;PO.specifiers=WNe;PO.toHook=KNe});var bJ=w((rbr,xR)=>{var ZNe=Y("path"),iWt=xO(),{fileURLToPath:sWt}=Y("url"),{MessageChannel:oWt}=Y("worker_threads"),{isBuiltin:gJ}=Y("module");gJ||(gJ=()=>!0);var{importHooks:yJ,specifiers:JNe,toHook:aWt}=YNe();function cWt(e,t){if(!(process.env.TURBOPACK??process.argv.includes("--turbo")))return!1;let r=e.slice(0,e.lastIndexOf("-"));return t.endsWith(r)}function XNe(e){yJ.push(e),aWt.forEach(([t,n,r])=>e(t,n,r))}function QNe(e){let t=yJ.indexOf(e);t>-1&&yJ.splice(t,1)}function IR(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var SJ;function uWt(){let{port1:e,port2:t}=new oWt,n=0,r;SJ=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 NO(e,t,n){if(!(this instanceof NO))return new NO(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;SJ&&Array.isArray(e)&&SJ(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);gJ(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=sWt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=iWt(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)IR(n,s,u,void 0);else if(d===i){if(!l)IR(n,s,i,l);else if(l.endsWith(JNe.get(a))||cWt(JNe.get(a),l))IR(n,s,i,l);else if(r){let f=i+ZNe.sep+ZNe.relative(l,u);IR(n,s,f,l)}}else d===o&&IR(n,s,o,l);else IR(n,s,i,l)},XNe(this._iitmHook)}NO.prototype.unhook=function(){QNe(this._iitmHook)};xR.exports=NO;xR.exports.Hook=NO;xR.exports.addHook=XNe;xR.exports.removeHook=QNe;xR.exports.createAddHookMessageChannel=uWt});var EJ=w(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.isWrapped=my.safeExecuteInTheMiddleAsync=my.safeExecuteInTheMiddle=void 0;function lWt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}my.safeExecuteInTheMiddle=lWt;async function dWt(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}}my.safeExecuteInTheMiddleAsync=dWt;function fWt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}my.isWrapped=fWt});var tCe=w(_j=>{"use strict";Object.defineProperty(_j,"__esModule",{value:!0});_j.InstrumentationBase=void 0;var CO=Y("path"),$Ne=Y("util"),pWt=kNe(),_J=nJ(),hWt=INe(),mWt=zNe(),gWt=bJ(),MO=(Me(),ke(Ze)),yWt=RE(),SWt=Y("fs"),bWt=EJ(),TJ=class extends hWt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=mWt.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,bWt.isWrapped)(t[n])&&this._unwrap(t,n),$Ne.types.isProxy(t)){let i=(0,_J.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,_J.wrap)(t,n,r)};_unwrap=(t,n)=>$Ne.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,_J.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{MO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MO.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{MO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MO.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,SWt.readFileSync)(CO.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{MO.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 eCe(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=CO.normalize(r);return o.filter(u=>u.name===a&&eCe(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&&CO.isAbsolute(a)){let u=CO.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=CO.isAbsolute(t.name)?new yWt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new gWt.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}};_j.InstrumentationBase=TJ;function eCe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,pWt.satisfies)(t,r,{includePrerelease:n}))}});var nCe=w(Tj=>{"use strict";Object.defineProperty(Tj,"__esModule",{value:!0});Tj.normalize=void 0;var EWt=Y("path");Object.defineProperty(Tj,"normalize",{enumerable:!0,get:function(){return EWt.normalize}})});var rCe=w(OR=>{"use strict";Object.defineProperty(OR,"__esModule",{value:!0});OR.normalize=OR.InstrumentationBase=void 0;var _Wt=tCe();Object.defineProperty(OR,"InstrumentationBase",{enumerable:!0,get:function(){return _Wt.InstrumentationBase}});var TWt=nCe();Object.defineProperty(OR,"normalize",{enumerable:!0,get:function(){return TWt.normalize}})});var vJ=w(PR=>{"use strict";Object.defineProperty(PR,"__esModule",{value:!0});PR.normalize=PR.InstrumentationBase=void 0;var iCe=rCe();Object.defineProperty(PR,"InstrumentationBase",{enumerable:!0,get:function(){return iCe.InstrumentationBase}});Object.defineProperty(PR,"normalize",{enumerable:!0,get:function(){return iCe.normalize}})});var sCe=w(vj=>{"use strict";Object.defineProperty(vj,"__esModule",{value:!0});vj.InstrumentationNodeModuleDefinition=void 0;var RJ=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}};vj.InstrumentationNodeModuleDefinition=RJ});var oCe=w(Rj=>{"use strict";Object.defineProperty(Rj,"__esModule",{value:!0});Rj.InstrumentationNodeModuleFile=void 0;var vWt=vJ(),AJ=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,vWt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};Rj.InstrumentationNodeModuleFile=AJ});var aCe=w(AE=>{"use strict";Object.defineProperty(AE,"__esModule",{value:!0});AE.semconvStabilityFromStr=AE.SemconvStability=void 0;var Aj;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(Aj=AE.SemconvStability||(AE.SemconvStability={}));function RWt(e,t){let n=Aj.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=Aj.DUPLICATE;break}else i.toLowerCase()===e&&(n=Aj.STABLE);return n}AE.semconvStabilityFromStr=RWt});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 AWt=SNe();Object.defineProperty(Bs,"registerInstrumentations",{enumerable:!0,get:function(){return AWt.registerInstrumentations}});var wWt=vJ();Object.defineProperty(Bs,"InstrumentationBase",{enumerable:!0,get:function(){return wWt.InstrumentationBase}});var kWt=sCe();Object.defineProperty(Bs,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return kWt.InstrumentationNodeModuleDefinition}});var IWt=oCe();Object.defineProperty(Bs,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return IWt.InstrumentationNodeModuleFile}});var wJ=EJ();Object.defineProperty(Bs,"isWrapped",{enumerable:!0,get:function(){return wJ.isWrapped}});Object.defineProperty(Bs,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return wJ.safeExecuteInTheMiddle}});Object.defineProperty(Bs,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return wJ.safeExecuteInTheMiddleAsync}});var cCe=aCe();Object.defineProperty(Bs,"SemconvStability",{enumerable:!0,get:function(){return cCe.SemconvStability}});Object.defineProperty(Bs,"semconvStabilityFromStr",{enumerable:!0,get:function(){return cCe.semconvStabilityFromStr}})});var uCe=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 lCe=w(DO=>{"use strict";Object.defineProperty(DO,"__esModule",{value:!0});DO.AttributeNames=void 0;var xWt;(function(e){e.HTTP_ERROR_NAME="http.error_name",e.HTTP_ERROR_MESSAGE="http.error_message",e.HTTP_STATUS_TEXT="http.status_text"})(xWt=DO.AttributeNames||(DO.AttributeNames={}))});var kJ=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 fCe=w((gbr,dCe)=>{"use strict";var OWt=Y("util");function IJ(e,t){Error.captureStackTrace(this,IJ),this.name=this.constructor.name,this.message=e,this.input=t}OWt.inherits(IJ,Error);dCe.exports=IJ});var hCe=w((ybr,pCe)=>{"use strict";function PWt(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 NWt(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 CWt(e){return e>=32&&e<=126}function MWt(e){return e>=128&&e<=255}pCe.exports={isDelimiter:PWt,isTokenChar:NWt,isExtended:MWt,isPrint:CWt}});var bCe=w((Sbr,SCe)=>{"use strict";var DWt=Y("util"),NR=fCe(),wj=hCe(),LWt=wj.isDelimiter,mCe=wj.isTokenChar,gCe=wj.isExtended,UWt=wj.isPrint;function yCe(e){return e.replace(/\\(.)/g,"$1")}function LO(e,t){return DWt.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 UO=(Me(),ke(Ze)),fn=(Nn(),ke(Mr)),dt=uCe(),ECe=pr(),ol=Jt(),jWt=Y("url"),Ij=lCe(),_Ce=kJ(),kj=kJ(),HWt=bCe(),qWt=(e,t,n="http:",r=Array.from(kj.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,kj.STR_REDACTED);a=`${l.pathname}${l.search}`}catch{}let u=i.auth?`${kj.STR_REDACTED}:${kj.STR_REDACTED}@`:"";return`${s}//${u}${c}${a}`};Tt.getAbsoluteUrl=qWt;var BWt=(e,t)=>{let n=e===UO.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=zWt;var GWt=(e,t,n)=>{let r=t.message;n&ol.SemconvStability.OLD&&(e.setAttribute(Ij.AttributeNames.HTTP_ERROR_NAME,t.name),e.setAttribute(Ij.AttributeNames.HTTP_ERROR_MESSAGE,r)),n&ol.SemconvStability.STABLE&&e.setAttribute(fn.ATTR_ERROR_TYPE,t.name),e.setStatus({code:UO.SpanStatusCode.ERROR,message:r}),e.recordException(t)};Tt.setSpanWithError=GWt;var VWt=(e,t)=>{let n=vCe(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=VWt;var WWt=(e,t)=>{let n=vCe(e.headers);n!==null&&((0,Tt.isCompressed)(e.headers)?t[dt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH]=n:t[dt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED]=n)};Tt.setResponseContentLengthAttribute=WWt;function vCe(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}var KWt=e=>{let t=e["content-encoding"];return!!t&&t!=="identity"};Tt.isCompressed=KWt;function YWt(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 ZWt=(e,t,n)=>{let r,i,s,o=!1;if(typeof t=="string"){try{let c=YWt(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 jWt.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=ZWt;var JWt=e=>{if(!e)return!1;let t=typeof e;return t==="string"||t==="object"&&!Array.isArray(e)};Tt.isValidOptionsType=JWt;var XWt=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=XWt;var QWt=(e,t,n,r)=>{let i=t.hostname,s=t.port,o=e.method??"GET",a=wCe(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]=RCe(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=QWt;var $Wt=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=$Wt;var e4t=(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=e4t;var RCe=e=>{let t=String(e).toLowerCase();for(let n of _Ce.SYNTHETIC_TEST_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST;for(let n of _Ce.SYNTHETIC_BOT_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT},t4t=(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[Ij.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=t4t;var n4t=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=n4t;var r4t=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=r4t;function gy(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 i4t(e,t){let n=e.headers.forwarded;if(n){for(let s of kCe(n))if(s.host)return gy(s.host,s.proto)}let r=e.headers["x-forwarded-host"];if(typeof r=="string")return typeof e.headers["x-forwarded-proto"]=="string"?gy(r,e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?gy(r,e.headers["x-forwarded-proto"][0]):gy(r);if(Array.isArray(r)&&typeof r[0]=="string"&&r[0].length>0)return typeof e.headers["x-forwarded-proto"]=="string"?gy(r[0],e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?gy(r[0],e.headers["x-forwarded-proto"][0]):gy(r[0]);let i=e.headers.host;return typeof i=="string"&&i.length>0?gy(i,t):null}function ACe(e){let t=e.headers.forwarded;if(t){for(let i of kCe(t))if(i.for)return TCe(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(),TCe(i)}let r=e.socket.remoteAddress;return r||null}Tt.getRemoteClientAddress=ACe;function TCe(e){try{let{hostname:t}=new URL(`http://${e}`);return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}catch{return e}}function s4t(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 o4t=(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=s4t(r,e,n),m,g;if(o!==ol.SemconvStability.OLD){let y=wCe(l),b=i4t(e,r),S=ACe(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]=RCe(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=o4t;var a4t=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=a4t;var c4t=(e,t,n)=>{let{socket:r}=e,{statusCode:i,statusMessage:s}=t,o={[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]:i},a=(0,ECe.getRPCMetadata)(UO.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[Ij.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 ol.SemconvStability.STABLE:return o;case ol.SemconvStability.OLD:return c}return Object.assign(c,o)};Tt.getIncomingRequestAttributesOnResponse=c4t;var u4t=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=u4t;var l4t=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=l4t;function d4t(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=d4t;var f4t=new Set(["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH","QUERY"]);function wCe(e){if(e==null)return"GET";let t=e.toUpperCase();return f4t.has(t)?t:"_OTHER"}function kCe(e){try{return HWt(e)}catch{return[]}}});var xCe=w(xj=>{"use strict";Object.defineProperty(xj,"__esModule",{value:!0});xj.HttpInstrumentation=void 0;var tn=(Me(),ke(Ze)),yy=pr(),p4t=Y("url"),h4t=aNe(),Mo=Jt(),xJ=Y("events"),Oi=(Nn(),ke(Mr)),Is=ICe(),OJ=class extends Mo.InstrumentationBase{_spanNotEnded=new WeakSet;_headerCapture;_httpPatched=!1;_httpsPatched=!1;_semconvStability=Mo.SemconvStability.OLD;constructor(t={}){super("@opentelemetry/instrumentation-http",h4t.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(xJ.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(xJ.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,yy.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,yy.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:yy.RPCType.HTTP,span:y};return tn.context.with((0,yy.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(xJ.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 p4t.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,yy.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,yy.hrTimeToMilliseconds)((0,yy.hrTimeDuration)(r,(0,yy.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)}}}};xj.HttpInstrumentation=OJ});var OCe=w(Oj=>{"use strict";Object.defineProperty(Oj,"__esModule",{value:!0});Oj.HttpInstrumentation=void 0;var m4t=xCe();Object.defineProperty(Oj,"HttpInstrumentation",{enumerable:!0,get:function(){return m4t.HttpInstrumentation}})});var Fe,Pi=v(()=>{Fe=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var qt,Wa=v(()=>{qt=globalThis});var Cn,Pj=v(()=>{Cn="10.47.0"});function xc(){return Sy(qt),qt}function Sy(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||Cn,t[Cn]=t[Cn]||{}}function tf(e,t,n=qt){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[Cn]=r[Cn]||{};return i[e]||(i[e]=t())}var Gl=v(()=>{Pj();Wa()});function xs(e){if(!("console"in qt))return e();let t=qt.console,n={},r=Object.keys(CR);r.forEach(i=>{let s=CR[i];n[i]=t[i],t[i]=s});try{return e()}finally{r.forEach(i=>{t[i]=n[i]})}}function y4t(){NJ().enabled=!0}function S4t(){NJ().enabled=!1}function PCe(){return NJ().enabled}function b4t(...e){PJ("log",...e)}function E4t(...e){PJ("warn",...e)}function _4t(...e){PJ("error",...e)}function PJ(e,...t){Fe&&PCe()&&xs(()=>{qt.console[e](`${g4t}[${e}]:`,...t)})}function NJ(){return Fe?tf("loggerSettings",()=>({enabled:!1})):{enabled:!1}}var FO,g4t,CR,Z,_r=v(()=>{Gl();Pi();Wa();FO=["debug","info","warn","error","log","assert","trace"],g4t="Sentry Logger ",CR={};Z={enable:y4t,disable:S4t,isEnabled:PCe,log:b4t,warn:E4t,error:_4t}});function Cj(...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=NCe.test(c)?c.replace(NCe,"$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 MCe(s.slice(i))}}function MJ(e){return Array.isArray(e)?Cj(...e):e}function MCe(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(Nj(t).function||"")&&t.pop(),t.reverse(),CCe.test(Nj(t).function||"")&&(t.pop(),CCe.test(Nj(t).function||"")&&t.pop()),t.slice(0,50).map(n=>({...n,filename:n.filename||Nj(t).filename,function:n.function||"?"}))}function Nj(e){return e[e.length-1]||{}}function jO(e){try{return!e||typeof e!="function"?CJ:e.name||CJ}catch{return CJ}}function Mj(e){return"__v_isVNode"in e&&e.__v_isVNode?"[VueVNode]":"[VueViewModel]"}function DCe(e){let t=e?.startsWith("file://")?e.slice(7):e;return t?.match(/\/[A-Z]:/)&&(t=t.slice(1)),t}var NCe,CCe,CJ,MR=v(()=>{NCe=/\(error: (.*)\)/,CCe=/captureMessage|captureException/;CJ=""});function DR(e,t){Dj[e]=Dj[e]||[],Dj[e].push(t)}function LR(e,t){if(!LCe[e]){LCe[e]=!0;try{t()}catch(n){Fe&&Z.error(`Error while instrumenting ${e}`,n)}}}function UR(e,t){let n=e&&Dj[e];if(n)for(let r of n)try{r(t)}catch(i){Fe&&Z.error(`Error while triggering instrumentation handler. Type: ${e} Name: ${jO(r)} -Error:`,i)}}var Dj,MCe,Lj=v(()=>{Pi();_r();MR();Dj={},MCe={}});function DCe(e){let t="error";DR(t,e),LR(t,E4t)}function E4t(){MJ=qt.onerror,qt.onerror=function(e,t,n,r,i){return UR("error",{column:r,error:i,line:n,msg:e,url:t}),MJ?MJ.apply(this,arguments):!1},qt.onerror.__SENTRY_INSTRUMENTED__=!0}var MJ,LCe=v(()=>{Wa();Lj();MJ=null});function UCe(e){let t="unhandledrejection";DR(t,e),LR(t,_4t)}function _4t(){DJ=qt.onunhandledrejection,qt.onunhandledrejection=function(e){return UR("unhandledrejection",e),DJ?DJ.apply(this,arguments):!0},qt.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}var DJ,FCe=v(()=>{Wa();Lj();DJ=null});function Mp(e){switch(jCe.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return Dp(e,Error)}}function Uj(e,t){return jCe.call(e)===`[object ${t}]`}function LJ(e){return Uj(e,"ErrorEvent")}function by(e){return Uj(e,"String")}function FR(e){return typeof e=="object"&&e!==null&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function HO(e){return e===null||FR(e)||typeof e!="object"&&typeof e!="function"}function pm(e){return Uj(e,"Object")}function UJ(e){return typeof Event<"u"&&Dp(e,Event)}function FJ(e){return typeof Element<"u"&&Dp(e,Element)}function jJ(e){return Uj(e,"RegExp")}function sa(e){return!!(e?.then&&typeof e.then=="function")}function HJ(e){return pm(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}function Dp(e,t){try{return e instanceof t}catch{return!1}}function qO(e){return!!(typeof e=="object"&&e!==null&&(e.__isVue||e._isVue||e.__v_isVNode))}var jCe,Ka=v(()=>{jCe=Object.prototype.toString});function HCe(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||v4t;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 R4t(e,t){let n=e,r=[];if(!n?.tagName)return"";if(T4t.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&&by(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 T4t,v4t,qCe=v(()=>{Ka();Wa();T4t=qt,v4t=80});function qJ(e,t,n){if(!(t in e))return;let r=e[t];if(typeof r!="function")return;let i=n(r);typeof i=="function"&&GCe(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 GCe(e,t){try{let n=t.prototype||{};e.prototype=t.prototype=n,zs(e,"__sentry_original__",t)}catch{}}function BJ(e){return e.__sentry_original__}function Fj(e){if(Mp(e))return{message:e.message,name:e.name,stack:e.stack,...zCe(e)};if(UJ(e)){let t={type:e.type,target:BCe(e.target),currentTarget:BCe(e.currentTarget),...zCe(e)};return typeof CustomEvent<"u"&&Dp(e,CustomEvent)&&(t.detail=e.detail),t}else return e}function BCe(e){try{return FJ(e)?HCe(e):Object.prototype.toString.call(e)}catch{return""}}function zCe(e){return typeof e=="object"&&e!==null?Object.fromEntries(Object.entries(e)):{}}function zJ(e){let t=Object.keys(Fj(e));return t.sort(),t[0]?t.join(", "):"[object has no keys]"}var nf=v(()=>{Pi();qCe();_r();Ka()});function wE(e){if(jR!==void 0)return jR?jR(e):e();let t=Symbol.for("__SENTRY_SAFE_RANDOM_ID_WRAPPER__"),n=qt;return t in n&&typeof n[t]=="function"?(jR=n[t],jR(e)):(jR=null,e())}function Do(){return wE(()=>Math.random())}function Vl(){return wE(()=>Date.now())}var jR,Ey=v(()=>{Wa()});function _y(e,t=0){return typeof e!="string"||t===0||e.length<=t?e:`${e.slice(0,t)}...`}function GJ(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}`),shm(e,r,n))}var vy=v(()=>{Ka();MR()});function A4t(){let e=qt;return e.crypto||e.msCrypto}function w4t(){return Do()*16}function mo(e=A4t()){try{if(e?.randomUUID)return wE(()=>e.randomUUID()).replace(/-/g,"")}catch{}return WJ||(WJ="10000000100040008000"+1e11),WJ.replace(/[018]/g,t=>(t^(w4t()&15)>>t/4).toString(16))}function VCe(e){return e.exception?.values?.[0]}function Ry(e){let{message:t,event_id:n}=e;if(t)return t;let r=VCe(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"":n||""}function YJ(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 HR(e,t){let n=VCe(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 KJ(e){return parseInt(e||"",10)}function ZJ(e){let t=e.match(k4t)||[],n=KJ(t[1]),r=KJ(t[2]),i=KJ(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 jj(e){if(WCe(e))return!0;try{zs(e,"__sentry_captured__",!0)}catch{}return!1}function WCe(e){try{return e.__sentry_captured__}catch{}}var WJ,k4t,Lp=v(()=>{nf();Ey();Wa();k4t=/^(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 mm(){return Vl()/YCe}function I4t(){let{performance:e}=qt;if(!e?.now||!e.timeOrigin)return mm;let t=e.timeOrigin;return()=>(t+wE(()=>e.now()))/YCe}function Ay(){return(KCe??(KCe=I4t()))()}var YCe,KCe,wy=v(()=>{Ey();Wa();YCe=1e3});function ZCe(e){let t=Ay(),n={sid:mo(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>x4t(n)};return e&&gm(n,e),n}function gm(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||Ay(),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 JCe(e,t){let n={};t?n={status:t}:e.status==="ok"&&(n={status:"exited"}),gm(e,n)}function x4t(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 Hj=v(()=>{Lp();wy()});function ky(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]=ky(r[i],t[i],n-1));return r}var qj=v(()=>{});function Ya(){return mo()}function Za(){return mo().substring(16)}var Iy=v(()=>{Lp()});function kE(e,t){t?zs(e,JJ,t):delete e[JJ]}function IE(e){return e[JJ]}var JJ,Bj=v(()=>{nf();JJ="_sentrySpan"});var O4t,uu,BO=v(()=>{Pi();Hj();_r();Ka();qj();Lp();Iy();Ey();Bj();vy();wy();O4t=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,kE(t,IE(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&&gm(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():pm(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,kE(this,void 0),this._attachments=[],this.setPropagationContext({traceId:Ya(),sampleRand:Do()}),this._notifyScopeListeners(),this}addBreadcrumb(t,n){let r=typeof n=="number"?n:O4t;if(r<=0)return this;let i={timestamp:mm(),...t,message:t.message?_y(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:IE(this),conversationId:this._conversationId}}setSDKProcessingMetadata(t){return this._sdkProcessingMetadata=ky(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 qR(){return tf("defaultCurrentScope",()=>new uu)}function Wl(){return tf("defaultIsolationScope",()=>new uu)}var XJ=v(()=>{Gl();BO()});var XCe,QCe,zj,P4t,QJ=v(()=>{XCe=e=>e instanceof Promise&&!e[QCe],QCe=Symbol("chained PromiseLike"),zj=(e,t,n)=>{let r=e.then(i=>(t(i),i),i=>{throw n(i),i});return XCe(r)&&XCe(e)?r:P4t(e,r)},P4t=(e,t)=>{let n=!1;for(let r in e){if(r in t)continue;n=!0;let i=e[r];typeof i=="function"?Object.defineProperty(t,r,{value:(...s)=>i.apply(e,s),enumerable:!0,configurable:!0,writable:!0}):t[r]=i}return n&&Object.assign(t,{[QCe]:!0}),t}});function BR(){let e=xc(),t=Sy(e);return t.stack=t.stack||new $J(qR(),Wl())}function N4t(e){return BR().withScope(e)}function C4t(e,t){let n=BR();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function $Ce(e){return BR().withScope(()=>e(BR().getIsolationScope()))}function eMe(){return{withIsolationScope:$Ce,withScope:N4t,withSetScope:C4t,withSetIsolationScope:(e,t)=>$Ce(t),getCurrentScope:()=>BR().getScope(),getIsolationScope:()=>BR().getIsolationScope()}}var $J,tMe=v(()=>{XJ();BO();QJ();Ka();Gl();$J=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)?zj(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 eX(e){let t=xc(),n=Sy(t);n.acs=e}function rf(e){let t=Sy(e);return t.acs?t.acs:eMe()}var zR=v(()=>{Gl();tMe()});function rMe(){return nMe?.()}function tX(){return nMe!==void 0}function Fn(){let e=xc();return rf(e).getCurrentScope()}function vn(){let e=xc();return rf(e).getIsolationScope()}function Gj(){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 zO(...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 Fn().getClient()}function xE(e){let t=rMe();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 nMe,go=v(()=>{zR();Gl();BO();Iy()});var Ki,sf,nX,zt,At,rX,iX,Kl,GR,VR,sX,oX,aX,cX,xy,uX,Lo=v(()=>{Ki="sentry.source",sf="sentry.sample_rate",nX="sentry.previous_trace_sample_rate",zt="sentry.op",At="sentry.origin",rX="sentry.measurement_unit",iX="sentry.measurement_value",Kl="sentry.custom_span_name",GR="sentry.profile_id",VR="sentry.exclusive_time",sX="cache.hit",oX="cache.key",aX="cache.item_size",cX="http.request.method",xy="url.full",uX="gen_ai.conversation.id"});function ym(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 iMe=v(()=>{});function M4t(e){try{let t=qt.WeakRef;if(typeof t=="function")return new t(e)}catch{}return e}function D4t(e){if(e){if(typeof e=="object"&&"deref"in e&&typeof e.deref=="function")try{return e.deref()}catch{return}return e}}function GO(e,t,n){e&&(zs(e,oMe,M4t(n)),zs(e,sMe,t))}function of(e){let t=e;return{scope:t[sMe],isolationScope:D4t(t[oMe])}}var sMe,oMe,WR=v(()=>{nf();Wa();sMe="_sentryScope",oMe="_sentryIsolationScope"});function Sm(e){let t=PE(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 OE(e){if(!e)return;let t=Object.entries(e).reduce((n,[r,i])=>(i&&(n[`${Up}${r}`]=i),n),{});return Vj(t)}function PE(e){if(!(!e||!by(e)&&!Array.isArray(e)))return Array.isArray(e)?e.reduce((t,n)=>{let r=aMe(n);return Object.entries(r).forEach(([i,s])=>{t[i]=s}),t},{}):aMe(e)}function aMe(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 Vj(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>cMe?(Fe&&Z.warn(`Not adding key: ${n} with val: ${r} to baggage header due to exceeding baggage size limits.`),t):o},"")}var Up,cMe,VO=v(()=>{Pi();_r();Ka();Up="sentry-",cMe=8192});function F4t(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 j4t(e){let t=U4t.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 uMe({host:s,pass:i,path:c,projectId:u,port:o,protocol:n,publicKey:r})}function uMe(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function H4t(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+$/)?F4t(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 q4t(e){return e.match(L4t)?.[1]}function Wj(e){let t=e.getOptions(),{host:n}=e.getDsn()||{},r;return t.orgId?r=String(t.orgId):n&&(r=q4t(n)),r}function lMe(e){let t=typeof e=="string"?j4t(e):uMe(e);if(!(!t||!H4t(t)))return t}var L4t,U4t,bm=v(()=>{Pi();_r();L4t=/^o(\d+)\./,U4t=/^(?:(\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 KR=v(()=>{});function dMe(e){if(!e)return;let t=e.match(Kj);if(!t)return;let n;return t[3]==="1"?n=!0:t[3]==="0"&&(n=!1),{traceId:t[1],parentSampled:n,parentSpanId:t[2]}}function WO(e,t){let n=dMe(e),r=Sm(t);if(!n?.traceId)return{traceId:Ya(),sampleRand:Do()};let i=B4t(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 Oy(e=Ya(),t=Za(),n){let r="";return n!==void 0&&(r=n?"-1":"-0"),`${e}-${t}${r}`}function Py(e=Ya(),t=Za(),n){return`00-${e}-${t}-${n?"01":"00"}`}function B4t(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 lX(e,t){let n=Wj(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 Kj,Yj=v(()=>{_r();VO();bm();KR();Iy();Ey();Kj=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$")});function hMe(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 Ny(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 Qj(e){let{traceId:t,spanId:n}=e.spanContext(),r=af(e);return Oy(t,n,r)}function mMe(e){let{traceId:t,spanId:n}=e.spanContext(),r=af(e);return Py(t,n,r)}function NE(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===Xj,attributes:s,...i}))}function lu(e){return typeof e=="number"?pMe(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?pMe(e.getTime()):Ay()}function pMe(e){return e>9999999999?e/1e3:e}function vt(e){if(V4t(e))return e.getSpanJSON();let{spanId:t,traceId:n}=e.spanContext();if(G4t(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:CE(a),op:r[zt],origin:r[At],links:NE(c)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function G4t(e){let t=e;return!!t.attributes&&!!t.startTime&&!!t.name&&!!t.endTime&&!!t.status}function V4t(e){return typeof e.getSpanJSON=="function"}function af(e){let{traceFlags:t}=e.spanContext();return t===Xj}function CE(e){if(!(!e||e.code===0))return e.code===1?"ok":e.message||"internal_error"}function YR(e,t){let n=e[dX]||e;zs(t,dX,n),e[KO]?e[KO].add(t):zs(e,KO,new Set([t]))}function $j(e){let t=new Set;function n(r){if(!t.has(r)&&af(r)){t.add(r);let i=r[KO]?Array.from(r[KO]):[];for(let s of i)n(s)}}return n(e),Array.from(t)}function cs(e){return e[dX]||e}function Yl(){let e=xc(),t=rf(e);return t.getActiveSpan?t.getActiveSpan():IE(Fn())}function YO(){fMe||(xs(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),fMe=!0)}var Jj,Xj,fMe,KO,dX,Oc=v(()=>{zR();Gl();go();Lo();WR();nf();Iy();wy();Yj();_r();Bj();Jj=0,Xj=1,fMe=!1;KO="_sentryChildSpans",dX="_sentryRootSpan"});function yMe(){if(gMe)return;function e(){let t=Yl(),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",gMe=!0,DCe(e),UCe(e)}var gMe,SMe=v(()=>{Pi();LCe();FCe();_r();Oc();gMe=!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 bMe(e){Z.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function JO(e,t){if(!t?.length||!e.description)return!1;for(let n of t){if(W4t(n)){if(hm(e.description,n))return Fe&&bMe(e),!0;continue}if(!n.name&&!n.op)continue;let r=n.name?hm(e.description,n.name):!0,i=n.op?e.op&&hm(e.op,n.op):!0;if(r&&i)return Fe&&bMe(e),!0}return!1}function EMe(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 W4t(e){return typeof e=="string"||e instanceof RegExp}var fX=v(()=>{Pi();_r();vy()});var ZR,eH=v(()=>{ZR="production"});function tH(e,t){zs(e,_Me,t)}function pX(e,t){let n=t.getOptions(),{publicKey:r}=t.getDsn()||{},i={environment:n.environment||ZR,release:n.release,public_key:r,trace_id:e,org_id:Wj(t)};return t.emit("createDsc",i),i}function Fp(e,t){let n=t.getPropagationContext();return n.dsc||pX(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[nX];function a(h){return(typeof o=="number"||typeof o=="string")&&(h.sample_rate=`${o}`),h}let c=n[_Me];if(c)return a(c);let u=s?.get("sentry.dsc"),l=u&&Sm(u);if(l)return a(l);let d=pX(e.spanContext().traceId,t),f=i[Ki],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 _Me,Em=v(()=>{eH();go();Lo();VO();bm();ZO();nf();Oc();WR();_Me="_frozenDsc"});var Cy,TMe=v(()=>{Iy();Oc();Cy=class{constructor(t={}){this._traceId=t.traceId||Ya(),this._spanId=t.spanId||Za()}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:Jj}}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 hX("",e,t,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function mX(e,t=3,n=100*1024){let r=cf(e,t);return J4t(r)>n?mX(e,t-1,n):r}function hX(e,t,n=1/0,r=1/0,i=X4t()){let[s,o]=i;if(t==null||["boolean","string"].includes(typeof t)||typeof t=="number"&&Number.isFinite(t))return t;let a=K4t(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 hX("",p,c-1,r,i)}catch{}let l=Array.isArray(t)?[]:{},d=0,f=Fj(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]=hX(p,h,c-1,r,i),d++}return o(t),l}function K4t(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(qO(t))return Mj(t);if(HJ(t))return"[SyntheticEvent]";if(typeof t=="number"&&!Number.isFinite(t))return`[${t}]`;if(typeof t=="function")return`[Function: ${jO(t)}]`;if(typeof t=="symbol")return`[${String(t)}]`;if(typeof t=="bigint")return`[BigInt: ${String(t)}]`;let n=Y4t(t);return/^HTML(\w*)Element$/.test(n)?`[HTMLElement: ${n}]`:`[object ${n}]`}catch(n){return`**non-serializable** (${n})`}}function Y4t(e){let t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:"null prototype"}function Z4t(e){return~-encodeURI(e).split(/%..|./).length}function J4t(e){return Z4t(JSON.stringify(e))}function X4t(){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 nH=v(()=>{Ka();nf();MR()});function Pc(e,t=[]){return[e,t]}function yX(e,t){let[n,r]=e;return[n,[...r,t]]}function XO(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 SX(e,t){return XO(e,(n,r)=>t.includes(r))}function gX(e){let t=Sy(qt);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function QO(e){let[t,n]=e,r=JSON.stringify(t);function i(s){typeof r=="string"?r=typeof s=="string"?r+s:[gX(r),s]:r.push(typeof s=="string"?gX(s):s)}for(let s of n){let[o,a]=s;if(i(` +Error:`,i)}}var Dj,LCe,Lj=v(()=>{Pi();_r();MR();Dj={},LCe={}});function UCe(e){let t="error";DR(t,e),LR(t,T4t)}function T4t(){DJ=qt.onerror,qt.onerror=function(e,t,n,r,i){return UR("error",{column:r,error:i,line:n,msg:e,url:t}),DJ?DJ.apply(this,arguments):!1},qt.onerror.__SENTRY_INSTRUMENTED__=!0}var DJ,FCe=v(()=>{Wa();Lj();DJ=null});function jCe(e){let t="unhandledrejection";DR(t,e),LR(t,v4t)}function v4t(){LJ=qt.onunhandledrejection,qt.onunhandledrejection=function(e){return UR("unhandledrejection",e),LJ?LJ.apply(this,arguments):!0},qt.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}var LJ,HCe=v(()=>{Wa();Lj();LJ=null});function Mp(e){switch(qCe.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return Dp(e,Error)}}function Uj(e,t){return qCe.call(e)===`[object ${t}]`}function UJ(e){return Uj(e,"ErrorEvent")}function by(e){return Uj(e,"String")}function FR(e){return typeof e=="object"&&e!==null&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function HO(e){return e===null||FR(e)||typeof e!="object"&&typeof e!="function"}function pm(e){return Uj(e,"Object")}function FJ(e){return typeof Event<"u"&&Dp(e,Event)}function jJ(e){return typeof Element<"u"&&Dp(e,Element)}function HJ(e){return Uj(e,"RegExp")}function sa(e){return!!(e?.then&&typeof e.then=="function")}function qJ(e){return pm(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}function Dp(e,t){try{return e instanceof t}catch{return!1}}function qO(e){return!!(typeof e=="object"&&e!==null&&(e.__isVue||e._isVue||e.__v_isVNode))}var qCe,Ka=v(()=>{qCe=Object.prototype.toString});function BCe(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||A4t;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 w4t(e,t){let n=e,r=[];if(!n?.tagName)return"";if(R4t.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&&by(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 R4t,A4t,zCe=v(()=>{Ka();Wa();R4t=qt,A4t=80});function BJ(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&&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 WCe(e,t){try{let n=t.prototype||{};e.prototype=t.prototype=n,zs(e,"__sentry_original__",t)}catch{}}function zJ(e){return e.__sentry_original__}function Fj(e){if(Mp(e))return{message:e.message,name:e.name,stack:e.stack,...VCe(e)};if(FJ(e)){let t={type:e.type,target:GCe(e.target),currentTarget:GCe(e.currentTarget),...VCe(e)};return typeof CustomEvent<"u"&&Dp(e,CustomEvent)&&(t.detail=e.detail),t}else return e}function GCe(e){try{return jJ(e)?BCe(e):Object.prototype.toString.call(e)}catch{return""}}function VCe(e){return typeof e=="object"&&e!==null?Object.fromEntries(Object.entries(e)):{}}function GJ(e){let t=Object.keys(Fj(e));return t.sort(),t[0]?t.join(", "):"[object has no keys]"}var nf=v(()=>{Pi();zCe();_r();Ka()});function wE(e){if(jR!==void 0)return jR?jR(e):e();let t=Symbol.for("__SENTRY_SAFE_RANDOM_ID_WRAPPER__"),n=qt;return t in n&&typeof n[t]=="function"?(jR=n[t],jR(e)):(jR=null,e())}function Do(){return wE(()=>Math.random())}function Vl(){return wE(()=>Date.now())}var jR,Ey=v(()=>{Wa()});function _y(e,t=0){return typeof e!="string"||t===0||e.length<=t?e:`${e.slice(0,t)}...`}function VJ(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}`),shm(e,r,n))}var vy=v(()=>{Ka();MR()});function k4t(){let e=qt;return e.crypto||e.msCrypto}function I4t(){return Do()*16}function mo(e=k4t()){try{if(e?.randomUUID)return wE(()=>e.randomUUID()).replace(/-/g,"")}catch{}return KJ||(KJ="10000000100040008000"+1e11),KJ.replace(/[018]/g,t=>(t^(I4t()&15)>>t/4).toString(16))}function KCe(e){return e.exception?.values?.[0]}function Ry(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 ZJ(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 HR(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 YJ(e){return parseInt(e||"",10)}function JJ(e){let t=e.match(x4t)||[],n=YJ(t[1]),r=YJ(t[2]),i=YJ(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 jj(e){if(YCe(e))return!0;try{zs(e,"__sentry_captured__",!0)}catch{}return!1}function YCe(e){try{return e.__sentry_captured__}catch{}}var KJ,x4t,Lp=v(()=>{nf();Ey();Wa();x4t=/^(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 mm(){return Vl()/JCe}function O4t(){let{performance:e}=qt;if(!e?.now||!e.timeOrigin)return mm;let t=e.timeOrigin;return()=>(t+wE(()=>e.now()))/JCe}function Ay(){return(ZCe??(ZCe=O4t()))()}var JCe,ZCe,wy=v(()=>{Ey();Wa();JCe=1e3});function XCe(e){let t=Ay(),n={sid:mo(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>P4t(n)};return e&&gm(n,e),n}function gm(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||Ay(),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 QCe(e,t){let n={};t?n={status:t}:e.status==="ok"&&(n={status:"exited"}),gm(e,n)}function P4t(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 Hj=v(()=>{Lp();wy()});function ky(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]=ky(r[i],t[i],n-1));return r}var qj=v(()=>{});function Ya(){return mo()}function Za(){return mo().substring(16)}var Iy=v(()=>{Lp()});function kE(e,t){t?zs(e,XJ,t):delete e[XJ]}function IE(e){return e[XJ]}var XJ,Bj=v(()=>{nf();XJ="_sentrySpan"});var N4t,uu,BO=v(()=>{Pi();Hj();_r();Ka();qj();Lp();Iy();Ey();Bj();vy();wy();N4t=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,kE(t,IE(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&&gm(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():pm(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,kE(this,void 0),this._attachments=[],this.setPropagationContext({traceId:Ya(),sampleRand:Do()}),this._notifyScopeListeners(),this}addBreadcrumb(t,n){let r=typeof n=="number"?n:N4t;if(r<=0)return this;let i={timestamp:mm(),...t,message:t.message?_y(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:IE(this),conversationId:this._conversationId}}setSDKProcessingMetadata(t){return this._sdkProcessingMetadata=ky(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 qR(){return tf("defaultCurrentScope",()=>new uu)}function Wl(){return tf("defaultIsolationScope",()=>new uu)}var QJ=v(()=>{Gl();BO()});var $Ce,eMe,zj,C4t,$J=v(()=>{$Ce=e=>e instanceof Promise&&!e[eMe],eMe=Symbol("chained PromiseLike"),zj=(e,t,n)=>{let r=e.then(i=>(t(i),i),i=>{throw n(i),i});return $Ce(r)&&$Ce(e)?r:C4t(e,r)},C4t=(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,{[eMe]:!0}),t}});function BR(){let e=xc(),t=Sy(e);return t.stack=t.stack||new eX(qR(),Wl())}function M4t(e){return BR().withScope(e)}function D4t(e,t){let n=BR();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function tMe(e){return BR().withScope(()=>e(BR().getIsolationScope()))}function nMe(){return{withIsolationScope:tMe,withScope:M4t,withSetScope:D4t,withSetIsolationScope:(e,t)=>tMe(t),getCurrentScope:()=>BR().getScope(),getIsolationScope:()=>BR().getIsolationScope()}}var eX,rMe=v(()=>{QJ();BO();$J();Ka();Gl();eX=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)?zj(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 tX(e){let t=xc(),n=Sy(t);n.acs=e}function rf(e){let t=Sy(e);return t.acs?t.acs:nMe()}var zR=v(()=>{Gl();rMe()});function sMe(){return iMe?.()}function nX(){return iMe!==void 0}function Fn(){let e=xc();return rf(e).getCurrentScope()}function vn(){let e=xc();return rf(e).getIsolationScope()}function Gj(){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 zO(...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 Fn().getClient()}function xE(e){let t=sMe();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 iMe,go=v(()=>{zR();Gl();BO();Iy()});var Ki,sf,rX,zt,At,iX,sX,Kl,GR,VR,oX,aX,cX,uX,xy,lX,Lo=v(()=>{Ki="sentry.source",sf="sentry.sample_rate",rX="sentry.previous_trace_sample_rate",zt="sentry.op",At="sentry.origin",iX="sentry.measurement_unit",sX="sentry.measurement_value",Kl="sentry.custom_span_name",GR="sentry.profile_id",VR="sentry.exclusive_time",oX="cache.hit",aX="cache.key",cX="cache.item_size",uX="http.request.method",xy="url.full",lX="gen_ai.conversation.id"});function ym(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 oMe=v(()=>{});function L4t(e){try{let t=qt.WeakRef;if(typeof t=="function")return new t(e)}catch{}return e}function U4t(e){if(e){if(typeof e=="object"&&"deref"in e&&typeof e.deref=="function")try{return e.deref()}catch{return}return e}}function GO(e,t,n){e&&(zs(e,cMe,L4t(n)),zs(e,aMe,t))}function of(e){let t=e;return{scope:t[aMe],isolationScope:U4t(t[cMe])}}var aMe,cMe,WR=v(()=>{nf();Wa();aMe="_sentryScope",cMe="_sentryIsolationScope"});function Sm(e){let t=PE(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 OE(e){if(!e)return;let t=Object.entries(e).reduce((n,[r,i])=>(i&&(n[`${Up}${r}`]=i),n),{});return Vj(t)}function PE(e){if(!(!e||!by(e)&&!Array.isArray(e)))return Array.isArray(e)?e.reduce((t,n)=>{let r=uMe(n);return Object.entries(r).forEach(([i,s])=>{t[i]=s}),t},{}):uMe(e)}function uMe(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 Vj(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>lMe?(Fe&&Z.warn(`Not adding key: ${n} with val: ${r} to baggage header due to exceeding baggage size limits.`),t):o},"")}var Up,lMe,VO=v(()=>{Pi();_r();Ka();Up="sentry-",lMe=8192});function H4t(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 q4t(e){let t=j4t.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 dMe({host:s,pass:i,path:c,projectId:u,port:o,protocol:n,publicKey:r})}function dMe(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function B4t(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+$/)?H4t(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 z4t(e){return e.match(F4t)?.[1]}function Wj(e){let t=e.getOptions(),{host:n}=e.getDsn()||{},r;return t.orgId?r=String(t.orgId):n&&(r=z4t(n)),r}function fMe(e){let t=typeof e=="string"?q4t(e):dMe(e);if(!(!t||!B4t(t)))return t}var F4t,j4t,bm=v(()=>{Pi();_r();F4t=/^o(\d+)\./,j4t=/^(?:(\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 KR=v(()=>{});function pMe(e){if(!e)return;let t=e.match(Kj);if(!t)return;let n;return t[3]==="1"?n=!0:t[3]==="0"&&(n=!1),{traceId:t[1],parentSampled:n,parentSpanId:t[2]}}function WO(e,t){let n=pMe(e),r=Sm(t);if(!n?.traceId)return{traceId:Ya(),sampleRand:Do()};let i=G4t(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 Oy(e=Ya(),t=Za(),n){let r="";return n!==void 0&&(r=n?"-1":"-0"),`${e}-${t}${r}`}function Py(e=Ya(),t=Za(),n){return`00-${e}-${t}-${n?"01":"00"}`}function G4t(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 dX(e,t){let n=Wj(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 Kj,Yj=v(()=>{_r();VO();bm();KR();Iy();Ey();Kj=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$")});function gMe(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 Ny(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 Qj(e){let{traceId:t,spanId:n}=e.spanContext(),r=af(e);return Oy(t,n,r)}function yMe(e){let{traceId:t,spanId:n}=e.spanContext(),r=af(e);return Py(t,n,r)}function NE(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===Xj,attributes:s,...i}))}function lu(e){return typeof e=="number"?mMe(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?mMe(e.getTime()):Ay()}function mMe(e){return e>9999999999?e/1e3:e}function vt(e){if(K4t(e))return e.getSpanJSON();let{spanId:t,traceId:n}=e.spanContext();if(W4t(e)){let{attributes:r,startTime:i,name:s,endTime:o,status:a,links:c}=e,u="parentSpanId"in e?e.parentSpanId:"parentSpanContext"in e?e.parentSpanContext?.spanId:void 0;return{span_id:t,trace_id:n,data:r,description:s,parent_span_id:u,start_timestamp:lu(i),timestamp:lu(o)||void 0,status:CE(a),op:r[zt],origin:r[At],links:NE(c)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function W4t(e){let t=e;return!!t.attributes&&!!t.startTime&&!!t.name&&!!t.endTime&&!!t.status}function K4t(e){return typeof e.getSpanJSON=="function"}function af(e){let{traceFlags:t}=e.spanContext();return t===Xj}function CE(e){if(!(!e||e.code===0))return e.code===1?"ok":e.message||"internal_error"}function YR(e,t){let n=e[fX]||e;zs(t,fX,n),e[KO]?e[KO].add(t):zs(e,KO,new Set([t]))}function $j(e){let t=new Set;function n(r){if(!t.has(r)&&af(r)){t.add(r);let i=r[KO]?Array.from(r[KO]):[];for(let s of i)n(s)}}return n(e),Array.from(t)}function cs(e){return e[fX]||e}function Yl(){let e=xc(),t=rf(e);return t.getActiveSpan?t.getActiveSpan():IE(Fn())}function YO(){hMe||(xs(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),hMe=!0)}var Jj,Xj,hMe,KO,fX,Oc=v(()=>{zR();Gl();go();Lo();WR();nf();Iy();wy();Yj();_r();Bj();Jj=0,Xj=1,hMe=!1;KO="_sentryChildSpans",fX="_sentryRootSpan"});function bMe(){if(SMe)return;function e(){let t=Yl(),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",SMe=!0,UCe(e),jCe(e)}var SMe,EMe=v(()=>{Pi();FCe();HCe();_r();Oc();SMe=!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 _Me(e){Z.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function JO(e,t){if(!t?.length||!e.description)return!1;for(let n of t){if(Y4t(n)){if(hm(e.description,n))return Fe&&_Me(e),!0;continue}if(!n.name&&!n.op)continue;let r=n.name?hm(e.description,n.name):!0,i=n.op?e.op&&hm(e.op,n.op):!0;if(r&&i)return Fe&&_Me(e),!0}return!1}function TMe(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 Y4t(e){return typeof e=="string"||e instanceof RegExp}var pX=v(()=>{Pi();_r();vy()});var ZR,eH=v(()=>{ZR="production"});function tH(e,t){zs(e,vMe,t)}function hX(e,t){let n=t.getOptions(),{publicKey:r}=t.getDsn()||{},i={environment:n.environment||ZR,release:n.release,public_key:r,trace_id:e,org_id:Wj(t)};return t.emit("createDsc",i),i}function Fp(e,t){let n=t.getPropagationContext();return n.dsc||hX(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[rX];function a(h){return(typeof o=="number"||typeof o=="string")&&(h.sample_rate=`${o}`),h}let c=n[vMe];if(c)return a(c);let u=s?.get("sentry.dsc"),l=u&&Sm(u);if(l)return a(l);let d=hX(e.spanContext().traceId,t),f=i[Ki],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 vMe,Em=v(()=>{eH();go();Lo();VO();bm();ZO();nf();Oc();WR();vMe="_frozenDsc"});var Cy,RMe=v(()=>{Iy();Oc();Cy=class{constructor(t={}){this._traceId=t.traceId||Ya(),this._spanId=t.spanId||Za()}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:Jj}}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 mX("",e,t,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function gX(e,t=3,n=100*1024){let r=cf(e,t);return Q4t(r)>n?gX(e,t-1,n):r}function mX(e,t,n=1/0,r=1/0,i=$4t()){let[s,o]=i;if(t==null||["boolean","string"].includes(typeof t)||typeof t=="number"&&Number.isFinite(t))return t;let a=Z4t(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 mX("",p,c-1,r,i)}catch{}let l=Array.isArray(t)?[]:{},d=0,f=Fj(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]=mX(p,h,c-1,r,i),d++}return o(t),l}function Z4t(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(qO(t))return Mj(t);if(qJ(t))return"[SyntheticEvent]";if(typeof t=="number"&&!Number.isFinite(t))return`[${t}]`;if(typeof t=="function")return`[Function: ${jO(t)}]`;if(typeof t=="symbol")return`[${String(t)}]`;if(typeof t=="bigint")return`[BigInt: ${String(t)}]`;let n=J4t(t);return/^HTML(\w*)Element$/.test(n)?`[HTMLElement: ${n}]`:`[object ${n}]`}catch(n){return`**non-serializable** (${n})`}}function J4t(e){let t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:"null prototype"}function X4t(e){return~-encodeURI(e).split(/%..|./).length}function Q4t(e){return X4t(JSON.stringify(e))}function $4t(){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 nH=v(()=>{Ka();nf();MR()});function Pc(e,t=[]){return[e,t]}function SX(e,t){let[n,r]=e;return[n,[...r,t]]}function XO(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 bX(e,t){return XO(e,(n,r)=>t.includes(r))}function yX(e){let t=Sy(qt);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function QO(e){let[t,n]=e,r=JSON.stringify(t);function i(s){typeof r=="string"?r=typeof s=="string"?r+s:[yX(r),s]:r.push(typeof s=="string"?yX(s):s)}for(let s of n){let[o,a]=s;if(i(` ${JSON.stringify(o)} -`),typeof a=="string"||a instanceof Uint8Array)i(a);else{let c;try{c=JSON.stringify(a)}catch{c=JSON.stringify(cf(a))}i(c)}}return typeof r=="string"?r:Q4t(r)}function Q4t(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 bX(e){return[{type:"span"},e]}function EX(e){let t=typeof e.data=="string"?gX(e.data):e.data;return[{type:"attachment",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}function $4t(e){return e in vMe}function rH(e){return $4t(e)?vMe[e]:e}function iH(e){if(!e?.sdk)return;let{name:t,version:n}=e.sdk;return{name:t,version:n}}function _X(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 vMe,_m=v(()=>{Gl();bm();nH();Wa();vMe={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 eKt(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 RMe(e,t,n,r){let i=iH(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 AMe(e,t,n,r){let i=iH(n),s=e.type&&e.type!=="replay_event"?e.type:"event";eKt(e,n?.sdk);let o=_X(e,i,r,t);return delete e.sdkProcessingMetadata,Pc(o,[[{type:s},e]])}function wMe(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=>!JO(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||(YO(),h)}:vt,f=[];for(let p of u){let h=d(p);h&&f.push(bX(h))}return Pc(o,f)}var TX=v(()=>{Em();bm();_m();fX();Oc()});function $O(e){if(!Fe)return;let{description:t="< unknown name >",op:n="< unknown op >",parent_span_id:r}=vt(e),{spanId:i}=e.spanContext(),s=af(e),o=cs(e),a=o===e,c=`[Tracing] Starting ${s?"sampled":"unsampled"} ${a?"root ":""}span`,u=[`op: ${n}`,`name: ${t}`,`ID: ${i}`];if(r&&u.push(`parent ID: ${r}`),!a){let{op:l,description:d}=vt(o);u.push(`root ID: ${o.spanContext().spanId}`),l&&u.push(`root op: ${l}`),d&&u.push(`root description: ${d}`)}Z.log(`${c} +`),typeof a=="string"||a instanceof Uint8Array)i(a);else{let c;try{c=JSON.stringify(a)}catch{c=JSON.stringify(cf(a))}i(c)}}return typeof r=="string"?r:eKt(r)}function eKt(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 EX(e){return[{type:"span"},e]}function _X(e){let t=typeof e.data=="string"?yX(e.data):e.data;return[{type:"attachment",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}function tKt(e){return e in AMe}function rH(e){return tKt(e)?AMe[e]:e}function iH(e){if(!e?.sdk)return;let{name:t,version:n}=e.sdk;return{name:t,version:n}}function TX(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 AMe,_m=v(()=>{Gl();bm();nH();Wa();AMe={sessions:"session",event:"error",client_report:"internal",user_report:"default",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",raw_security:"security",log:"log_item",trace_metric:"metric"}});function nKt(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 wMe(e,t,n,r){let i=iH(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 kMe(e,t,n,r){let i=iH(n),s=e.type&&e.type!=="replay_event"?e.type:"event";nKt(e,n?.sdk);let o=TX(e,i,r,t);return delete e.sdkProcessingMetadata,Pc(o,[[{type:s},e]])}function IMe(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=>!JO(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||(YO(),h)}:vt,f=[];for(let p of u){let h=d(p);h&&f.push(EX(h))}return Pc(o,f)}var vX=v(()=>{Em();bm();_m();pX();Oc()});function $O(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 eP(e){if(!Fe)return;let{description:t="< unknown name >",op:n="< unknown op >"}=vt(e),{spanId:r}=e.spanContext(),s=cs(e)===e,o=`[Tracing] Finishing "${n}" ${s?"root ":""}span "${t}" with ID ${r}`;Z.log(o)}var sH=v(()=>{Pi();_r();Oc()});function ME(e){if(!e||e.length===0)return;let t={};return e.forEach(n=>{let r=n.attributes||{},i=r[rX],s=r[iX];typeof i=="string"&&typeof s=="number"&&(t[n.name]={value:s,unit:i})}),t}var vX=v(()=>{Lo()});function IMe(e){return e&&typeof e=="number"||e instanceof Date||Array.isArray(e)}function xMe(e){return!!e.start_timestamp&&!!e.timestamp&&!!e.span_id&&!!e.trace_id}function tKt(e){return e instanceof JR&&e.isStandaloneSpan()}function nKt(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 kMe,JR,OMe=v(()=>{go();Pi();TX();Lo();_r();Iy();Oc();wy();Em();sH();vX();WR();kMe=1e3,JR=class{constructor(t={}){this._traceId=t.traceId||Ya(),this._spanId=t.spanId||Za(),this._startTime=t.startTimestamp||Ay(),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?Xj:Jj}}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(Ki,"custom"),this}end(t){this._endTime||(this._endTime=lu(t),eP(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:CE(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[At],profile_id:this._attributes[GR],exclusive_time:this._attributes[VR],measurements:ME(this._events),is_segment:this._isStandaloneSpan&&cs(this)===this||void 0,segment_id:this._isStandaloneSpan?cs(this).spanContext().spanId:void 0,links:NE(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(t,n,r){Fe&&Z.log("[Tracing] Adding an event to span:",t);let i=IMe(n)?n:r||Ay(),s=IMe(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?nKt(wMe([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||Fn()).captureEvent(r)}_convertSpanToTransaction(){if(!xMe(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=$j(this).filter(l=>l!==this&&!tKt(l)).map(l=>vt(l)).filter(xMe),o=this._attributes[Ki];delete this._attributes[Kl],s.forEach(l=>{delete l.data[Kl]});let a={contexts:{trace:hMe(this)},spans:s.length>kMe?s.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,kMe):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=ME(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 rKt(i,t,n,r)}function rKt(e,t,n,r){return sa(e)?zj(e,i=>{n(),r(i)},i=>{t(i),n()}):(n(),r(e),e)}var oH=v(()=>{QJ();Ka()});function tP(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();KR()});function lf(e,t){let n=nP();if(n.startSpan)return n.startSpan(e,t);let r=wX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ja(a,()=>NMe(s)(()=>{let u=Fn(),l=kX(u,s),f=e.onlyIfParent&&!l?new Cy:AX({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return kE(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=nP();if(n.startSpanManual)return n.startSpanManual(e,t);let r=wX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ja(a,()=>NMe(s)(()=>{let u=Fn(),l=kX(u,s),f=e.onlyIfParent&&!l?new Cy:AX({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return kE(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 cH(e){let t=nP();if(t.startInactiveSpan)return t.startInactiveSpan(e);let n=wX(e),{forceTransaction:r,parentSpan:i}=e;return(e.scope?o=>Ja(e.scope,o):i!==void 0?o=>XR(i,o):o=>o())(()=>{let o=Fn(),a=kX(o,i);return e.onlyIfParent&&!a?new Cy:AX({parentSpan:a,spanArguments:n,forceTransaction:r,scope:o})})}function XR(e,t){let n=nP();return n.withActiveSpan?n.withActiveSpan(e,t):Ja(r=>(kE(r,e||void 0),t(r)))}function QR(e){let t=nP();return t.suppressTracing?t.suppressTracing(e):Ja(n=>{n.setSDKProcessingMetadata({[aH]:!0});let r=e();return n.setSDKProcessingMetadata({[aH]:void 0}),r})}function AX({parentSpan:e,spanArguments:t,forceTransaction:n,scope:r}){if(!Os()){let o=new Cy;if(n||!e){let a={sampled:"false",sample_rate:"0",transaction:t.name,...Ps(o)};tH(o,a)}return o}let i=vn(),s;if(e&&!n)s=iKt(e,r,t),YR(e,s);else if(e){let o=Ps(e),{traceId:a,spanId:c}=e.spanContext(),u=af(e);s=PMe({traceId:a,parentSpanId:c,...t},r,u),tH(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&&tH(s,a)}return $O(s),GO(s,r,i),s}function wX(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 nP(){let e=xc();return rf(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[aH]?[!1]:tP(i,{name:s,parentSampled:a,attributes:c,parentSampleRate:cl(u.dsc?.sample_rate)},u.sampleRand),p=new JR({...e,attributes:{[Ki]:"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 iKt(e,t,n){let{spanId:r,traceId:i}=e.spanContext(),s=t.getScopeData().sdkProcessingMetadata[aH]?!1:af(e),o=s?new JR({...n,parentSpanId:r,traceId:i,sampled:s}):new Cy({traceId:i});YR(e,o);let a=ct();return a&&(a.emit("spanStart",o),n.endTimestamp&&a.emit("spanEnd",o)),o}function kX(e,t){if(t)return t;if(t===null)return;let n=IE(e);if(!n)return;let r=ct();return(r?r.getOptions():{}).parentSpanIsAlwaysRootSpan?cs(n):n}function NMe(e){return e!==void 0?t=>XR(e,t):t=>t()}var aH,My=v(()=>{zR();Gl();go();Pi();Lo();_r();oH();ZO();KR();Bj();Oc();Em();sH();RX();TMe();OMe();WR();aH="__SENTRY_SUPPRESS_TRACING__"});function Tm(e){return new uH(t=>{t(e)})}function $R(e){return new uH((t,n)=>{n(e)})}var IX,CMe,MMe,uH,eA=v(()=>{Ka();IX=0,CMe=1,MMe=2;uH=class e{constructor(t){this._state=IX,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===IX)return;let t=this._handlers.slice();this._handlers=[],t.forEach(n=>{n[0]||(this._state===CMe&&n[1](this._value),this._state===MMe&&n[2](this._value),n[0]=!0)})}_runExecutor(t){let n=(s,o)=>{if(this._state===IX){if(sa(o)){o.then(r,i);return}this._state=s,this._value=o,this._executeHandlers()}},r=s=>{n(CMe,s)},i=s=>{n(MMe,s)};try{t(r,i)}catch(s){i(s)}}}});function DMe(e,t,n,r=0){try{let i=xX(t,n,e,r);return sa(i)?i:Tm(i)}catch(i){return $R(i)}}function xX(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=>xX(o,t,n,r+1)):xX(s,t,n,r+1)}var LMe=v(()=>{Pi();_r();Ka();eA()});function jMe(e){let t=qt._sentryDebugIds,n=qt._debugIds;if(!t&&!n)return{};let r=t?Object.keys(t):[],i=n?Object.keys(n):[];if(Dy&&r.length===UMe&&i.length===FMe)return Dy;UMe=r.length,FMe=i.length,Dy={},DE||(DE={});let s=(o,a)=>{for(let c of o){let u=a[c],l=DE?.[c];if(l&&Dy&&u)Dy[l[0]]=u,DE&&(DE[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&&Dy&&DE){Dy[h]=u,DE[c]=[h,u];break}}}}};return t&&s(r,t),n&&s(i,n),Dy}var DE,UMe,FMe,Dy,HMe=v(()=>{Wa()});function BMe(e,t){let{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:s}=t;sKt(e,t),r&&cKt(e,r),uKt(e,n),oKt(e,i),aKt(e,s)}function qMe(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;rP(e,"extra",n),rP(e,"tags",r),rP(e,"attributes",i),rP(e,"user",s),rP(e,"contexts",o),e.sdkProcessingMetadata=ky(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 rP(e,t,n){e[t]=ky(e[t],n,1)}function lH(e,t){let n=Gj().getScopeData();return e&&qMe(n,e.getScopeData()),t&&qMe(n,t.getScopeData()),n}function sKt(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 oKt(e,t){let n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function aKt(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function cKt(e,t){e.contexts={trace:Ny(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 uKt(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 OX=v(()=>{go();Em();qj();Oc()});function zMe(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||mm()},u=n.integrations||e.integrations.map(y=>y.name);lKt(c,e),pKt(c,u),i&&i.emit("applyFrameMetadata",t),t.type===void 0&&dKt(c,e.stackParser);let l=mKt(r,n.captureContext);n.mechanism&&HR(c,n.mechanism);let d=i?i.getEventProcessors():[],f=lH(s,l),p=[...n.attachments||[],...f.attachments];p.length&&(n.attachments=p),BMe(c,f);let h=[...d,...f.eventProcessors];return(n.data&&n.data.__sentry__===!0?Tm(c):DMe(h,c,n)).then(y=>(y&&fKt(y),typeof o=="number"&&o>0?hKt(y,o,a):y))}function lKt(e,t){let{environment:n,release:r,dist:i,maxValueLength:s}=t;e.environment=e.environment||n||ZR,!e.release&&r&&(e.release=r),!e.dist&&i&&(e.dist=i);let o=e.request;o?.url&&s&&(o.url=_y(o.url,s)),s&&e.exception?.values?.forEach(a=>{a.value&&(a.value=_y(a.value,s))})}function dKt(e,t){let n=jMe(t);e.exception?.values?.forEach(r=>{r.stacktrace?.frames?.forEach(i=>{i.filename&&(i.debug_id=n[i.filename])})})}function fKt(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 pKt(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function hKt(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 mKt(e,t){if(!t)return e;let n=e?e.clone():new uu;return n.update(t),n}function GMe(e){if(e)return gKt(e)?{captureContext:e}:SKt(e)?{captureContext:e}:e}function gKt(e){return e instanceof uu||typeof e=="function"}function SKt(e){return Object.keys(e).some(t=>yKt.includes(t))}var yKt,PX=v(()=>{eH();LMe();BO();HMe();Lp();nH();OX();vy();eA();wy();yKt=["user","level","extra","contexts","tags","fingerprint","propagationContext"]});function Wt(e,t){return Fn().captureException(e,GMe(t))}function dH(e,t){return Fn().captureEvent(e,t)}async function tA(e){let t=ct();return t?t.flush(e):(Fe&&Z.warn("Cannot flush events. No client defined."),Promise.resolve(!1))}function fH(){let e=ct();return e?.getOptions().enabled!==!1&&!!e?.getTransport()}function pH(e){let t=vn(),{user:n}=lH(t,Fn()),{userAgent:r}=qt.navigator||{},i=ZCe({user:n,...r&&{userAgent:r},...e}),s=t.getSession();return s?.status==="ok"&&gm(s,{status:"exited"}),iP(),t.setSession(i),i}function iP(){let e=vn(),n=Fn().getSession()||e.getSession();n&&JCe(n),bKt(),e.setSession()}function bKt(){let e=vn(),t=ct(),n=e.getSession();n&&t&&t.captureSession(n)}var ul=v(()=>{go();Pi();Hj();_r();PX();OX();Wa()});function _Kt(e){let t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function TKt(e){return`${_Kt(e)}${e.projectId}/envelope/`}function vKt(e,t){let n={sentry_version:EKt};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function VMe(e,t,n){return t||`${TKt(e)}?${vKt(e,n)}`}var EKt,WMe=v(()=>{EKt="7"});function RKt(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 CX(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 RKt(r)}function KMe(e,t){let n={};return t.forEach(r=>{r&&DX(e,r,n)}),n}function MX(e,t){for(let n of t)n?.afterAllSetup&&n.afterAllSetup(e)}function DX(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,!NX.includes(t.name)&&typeof t.setupOnce=="function"&&(t.setupOnce(),NX.push(t.name)),t.setup&&typeof t.setup=="function"&&t.setup(e),typeof t.preprocessEvent=="function"){let r=t.preprocessEvent.bind(t);e.on("preprocessEvent",(i,s)=>r(i,s,e))}if(typeof t.processEvent=="function"){let r=t.processEvent.bind(t),i=Object.assign((s,o)=>r(s,o,e),{id:t.name});e.addEventProcessor(i)}Fe&&Z.log(`Integration installed: ${t.name}`)}var NX,LX=v(()=>{Pi();_r();NX=[]});function YMe(e,t){return t?Ja(t,()=>{let n=Yl(),r=n?Ny(n):xE(t);return[n?Ps(n):Fp(e,t),r]}):[void 0,void 0]}var ZMe=v(()=>{go();Em();Oc()});function AKt(e){return[{type:"log",item_count:e.length,content_type:"application/vnd.sentry.items.log+json"},{items:e}]}function JMe(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,[AKt(e)])}var XMe=v(()=>{bm();_m()});function nA(e,t){let n=t??wKt(e)??[];if(n.length===0)return;let r=e.getOptions(),i=JMe(n,r._metadata,r.tunnel,e.getDsn());QMe().set(e,[]),e.emit("flushLogs"),e.sendEnvelope(i)}function wKt(e){return QMe().get(e)}function QMe(){return tf("clientToLogBufferMap",()=>new WeakMap)}var UX=v(()=>{Gl();XMe()});function kKt(e){return[{type:"trace_metric",item_count:e.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{items:e}]}function $Me(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,[kKt(e)])}var eDe=v(()=>{bm();_m()});function tDe(e,t){let n=t??IKt(e)??[];if(n.length===0)return;let r=e.getOptions(),i=$Me(n,r._metadata,r.tunnel,e.getDsn());nDe().set(e,[]),e.emit("flushMetrics"),e.sendEnvelope(i)}function IKt(e){return nDe().get(e)}function nDe(){return tf("clientToMetricBufferMap",()=>new WeakMap)}var rDe=v(()=>{Gl();eDe()});function hH(e){return typeof e=="object"&&typeof e.unref=="function"&&e.unref(),e}var FX=v(()=>{});function rA(e=100){let t=new Set;function n(){return t.sizer(a),()=>r(a)),a}function s(o){if(!t.size)return Tm(!0);let a=Promise.allSettled(Array.from(t)).then(()=>!0);if(!o)return a;let c=[a,new Promise(u=>hH(setTimeout(()=>u(!1),o)))];return Promise.race(c)}return{get $(){return Array.from(t)},add:i,drain:s}}var sP,mH=v(()=>{eA();FX();sP=Symbol.for("SentryBufferFullError")});function OKt(e,t=Vl()){let n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;let r=Date.parse(`${e}`);return isNaN(r)?xKt:r-t}function PKt(e,t){return e[t]||e.all||0}function iDe(e,t,n=Vl()){return PKt(e,t)>n}function sDe(e,{statusCode:t,headers:n},r=Vl()){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+OKt(o,r):t===429&&(i.all=r+60*1e3);return i}var xKt,oDe=v(()=>{Ey();xKt=60*1e3});function aP(e,t,n=rA(e.bufferSize||oP)){let r={},i=o=>n.drain(o);function s(o){let a=[];if(XO(o,(d,f)=>{let p=rH(f);iDe(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(SX(c,["client_report"])){Fe&&Z.warn(`Dropping client report. Will not send outcomes (reason: ${d}).`);return}XO(c,(f,p)=>{e.recordDroppedEvent(d,rH(p))})},l=()=>t({body:QO(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=sDe(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===sP)return Fe&&Z.error("Skipped sending event because buffer is full."),u("queue_overflow"),Promise.resolve({});throw d})}return{send:s,flush:i}}var oP,gH=v(()=>{Pi();_r();_m();mH();oDe();oP=64});function aDe(e,t,n){let r=[{type:"client_report"},{timestamp:n||mm(),discarded_events:e}];return Pc(t?{dsn:t}:{},[r])}var cDe=v(()=>{_m();wy()});function yH(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 jX=v(()=>{});function uDe(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?.[GR],exclusive_time:o?.[VR],measurements:e.measurements,is_segment:!0}}function lDe(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&&{[GR]:e.profile_id},...e.exclusive_time&&{[VR]:e.exclusive_time}}}},measurements:e.measurements}}var dDe=v(()=>{Lo()});function SH(e){return{message:e,[bDe]:!0}}function HX(e){return{message:e,[EDe]:!0}}function hDe(e){return!!e&&typeof e=="object"&&bDe in e}function mDe(e){return!!e&&typeof e=="object"&&EDe in e}function gDe(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=hH(setTimeout(()=>{i(e)},NKt)))}),e.on("flush",()=>{i(e)})}function yDe(e){return e==="replay_event"?"replay":e||"error"}function CKt(e,t){let n=`${t} must return \`null\` or a valid event.`;if(sa(e))return e.then(r=>{if(!pm(r)&&r!==null)throw SH(n);return r},r=>{throw SH(`${t} rejected with ${r}`)});if(!pm(e)&&e!==null)throw SH(n);return e}function MKt(e,t,n,r){let{beforeSend:i,beforeSendTransaction:s,beforeSendSpan:o,ignoreSpans:a}=t,c=n;if(qX(c)&&i)return i(c,r);if(_De(c)){if(o||a){let u=uDe(c);if(a?.length&&JO(u,a))return null;if(o){let l=o(u);l?c=ky(n,lDe(l)):YO()}if(c.spans){let l=[],d=c.spans;for(let p of d){if(a?.length&&JO(p,a)){EMe(d,p);continue}if(o){let h=o(p);h?l.push(h):(YO(),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 qX(e){return e.type===void 0}function _De(e){return e.type==="transaction"}function DKt(e){let t=0;return e.name&&(t+=e.name.length*2),t+=8,t+TDe(e.attributes)}function LKt(e){let t=0;return e.message&&(t+=e.message.length*2),t+TDe(e.attributes)}function TDe(e){if(!e)return 0;let t=0;return Object.values(e).forEach(n=>{Array.isArray(n)?t+=n.length*SDe(n[0]):HO(n)?t+=SDe(n):t+=100}),t}function SDe(e){return typeof e=="string"?e.length*2:typeof e=="number"?8:typeof e=="boolean"?4:0}var fDe,pDe,bDe,EDe,NKt,bH,vDe=v(()=>{WMe();eH();go();Pi();TX();LX();UX();rDe();Hj();Em();gH();cDe();_r();bm();_m();jX();Ka();qj();Lp();KR();PX();mH();Ey();fX();Oc();eA();FX();dDe();fDe="Not capturing exception because it's already been captured.",pDe="Discarded session because of missing or non-string release",bDe=Symbol.for("SentryInternalError"),EDe=Symbol.for("SentryDoNotSendEventError"),NKt=5e3;bH=class{constructor(t){if(this._options=t,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=rA(t.transportOptions?.bufferSize??oP),t.dsn?this._dsn=lMe(t.dsn):Fe&&Z.warn("No DSN provided, client will not send events."),this._dsn){let r=VMe(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&&gDe(this,"afterCaptureLog","flushLogs",LKt,nA),(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)&&gDe(this,"afterCaptureMetric","flushMetrics",DKt,tDe)}captureException(t,n,r){let i=mo();if(jj(t))return Fe&&Z.log(fDe),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=FR(t)?t:String(t),a=HO(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&&jj(n.originalException))return Fe&&Z.log(fDe),i;let s={event_id:i,...n},o=t.sdkProcessingMetadata||{},a=o.capturedSpanScope,c=o.capturedSpanIsolationScope,u=yDe(t.type);return this._process(()=>this._captureEvent(t,s,a||r,c),u),s.event_id}captureSession(t){this.sendSession(t),gm(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){nA(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];DX(this,t,this._integrations),n||MX(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=yX(r,EX(i));this.sendEnvelope(r).then(i=>this.emit("afterSendEvent",t,i))}sendSession(t){let{release:n,environment:r=ZR}=this._options;if("aggregates"in t){let s=t.attrs||{};if(!s.release&&!n){Fe&&Z.warn(pDe);return}s.release=s.release||n,s.environment=s.environment||r,t.attrs=s}else{if(!t.release&&!n){Fe&&Z.warn(pDe);return}t.release=t.release||n,t.environment=t.environment||r}this.emit("beforeSendSession",t);let i=RMe(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=KMe(this,t),MX(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)&&(gm(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),zMe(s,t,n,r,this,i).then(a=>{if(a===null)return a;this.emit("postprocessEvent",a,n),a.contexts={trace:{...a.contexts?.trace,...xE(r)},...a.contexts};let c=Fp(this,r);return a.sdkProcessingMetadata={dynamicSamplingContext:c,...a.sdkProcessingMetadata},a})}_captureEvent(t,n={},r=Fn(),i=vn()){return Fe&&qX(t)&&Z.log(`Captured error event \`${yH(t)[0]||""}\``),this._processEvent(t,n,r,i).then(s=>s.event_id,s=>{Fe&&(mDe(s)?Z.log(s.message):hDe(s)?Z.warn(s.message):Z.warn(s))})}_processEvent(t,n,r,i){let s=this.getOptions(),{sampleRate:o}=s,a=_De(t),c=qX(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"),$R(HX(`Discarding event because it's not included in the random sample (sampling rate = ${o})`));let f=yDe(t.type);return this._prepareEvent(t,n,r,i).then(p=>{if(p===null)throw this.recordDroppedEvent("event_processor",f),HX("An event processor returned `null`, will not send event.");if(n.data?.__sentry__===!0)return p;let m=MKt(this,s,p,n);return CKt(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 HX(`${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 mDe(p)||hDe(p)?p:(this.captureException(p,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:p}),SH(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. -Reason: ${p}`))})}_process(t,n){this._numProcessing++,this._promiseBuffer.add(t).then(r=>(this._numProcessing--,r),r=>(this._numProcessing--,r===sP&&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=aDe(t,this._options.tunnel&&al(this._dsn));this.sendEnvelope(n)}}});function RDe(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=UKt(e);return Pc(s,[o])}function UKt(e){return[{type:"check_in"},e]}var ADe=v(()=>{bm();_m()});function wDe(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 kDe=v(()=>{});function IDe(e,t){return e(t.stack||"",1)}function FKt(e){return Mp(e)&&"__sentry_fetch_url_host__"in e&&typeof e.__sentry_fetch_url_host__=="string"}function jKt(e){return FKt(e)?`${e.message} (${e.__sentry_fetch_url_host__})`:e.message}function BX(e,t){let n={type:t.name||t.constructor.name,value:jKt(t)},r=IDe(e,t);return r.length&&(n.stacktrace={frames:r}),n}function HKt(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];if(n instanceof Error)return n}}function qKt(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=zJ(e);if(LJ(e))return`Event \`ErrorEvent\` captured as exception with message \`${e.message}\``;let n=BKt(e);return`${n&&n!=="Object"?`'${n}'`:"Object"} captured as exception with keys: ${t}`}function BKt(e){try{let t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}function zKt(e,t,n,r){if(Mp(n))return[n,void 0];if(t.synthetic=!0,pm(n)){let s=e?.getOptions().normalizeDepth,o={__serialized__:mX(n,s)},a=HKt(n);if(a)return[a,o];let c=qKt(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 xDe(e,t,n,r){let s=r?.data&&r.data.mechanism||{handled:!0,type:"generic"},[o,a]=zKt(e,s,n,r),c={exception:{values:[BX(t,o)]}};return a&&(c.extra=a),YJ(c,void 0,void 0),HR(c,s),{...c,event_id:r?.event_id}}function ODe(e,t,n="info",r,i){let s={event_id:r?.event_id,level:n};if(i&&r?.syntheticException){let o=IDe(e,r.syntheticException);o.length&&(s.exception={values:[{value:t,stacktrace:{frames:o}}]},HR(s,{synthetic:!0}))}if(FR(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 zX=v(()=>{Ka();Lp();nH();nf()});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 cP,NDe=v(()=>{ADe();vDe();go();Pi();SMe();_r();Lp();gH();kDe();zX();mH();eA();ZMe();cP=class extends bH{constructor(t){yMe(),wDe(t),super(t),this._setUpMetricsProcessing()}eventFromException(t,n){let r=xDe(this,this._options.stackParser,t,n);return r.level="error",Tm(r)}eventFromMessage(t,n="info",r){return Tm(ODe(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: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]=YMe(this,r);d&&(u.contexts={trace:d});let f=RDe(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=rA(oP)}_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 VX(e){e.forEach(t=>{GX.add(t),Fe&&Z.log(`AI provider "${t}" wrapping will be skipped`)})}function LE(e){return GX.has(e)}function WX(){GX.clear(),Fe&&Z.log("Cleared AI provider skip registrations")}var GX,CDe=v(()=>{Pi();_r();GX=new Set});function iA(e,t){let n=String(e).toLowerCase();return GKt.has(n)?!1:VKt.has(n)?!0:t?.strict?null:!!e}var GKt,VKt,MDe=v(()=>{GKt=new Set(["false","f","n","no","off","0"]),VKt=new Set(["true","t","y","yes","on","1"])});function KX(e){return"isRelative"in e}function uP(e,t){let n=e.indexOf("://")<=0&&e.indexOf("//")!==0,r=t??(n?WKt: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 DDe(e){if(KX(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 KKt(e,t,n,r){let i=n?.method?.toUpperCase()??"GET",s=r||(e?t==="client"?DDe(e):e.pathname:"/");return`${i} ${s}`}function YX(e,t,n,r,i){let s={[At]:n,[Ki]:"url"};return i&&(s[t==="server"?"http.route":"url.template"]=i,s[Ki]="route"),r?.method&&(s[cX]=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[Ki]="route")),KX(e)||(s[xy]=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))),[KKt(e,t,r,i),s]}function Ly(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 vm(e){return e.split(/[?#]/,1)[0]}function Uy(e){let{protocol:t,host:n,path:r}=e,i=n?.replace(/^.*@/,"[filtered]:[filtered]@").replace(/(:80)$/,"").replace(/(:443)$/,"")||"";return`${t?`${t}://`:""}${i}${r}`}function sA(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 WKt,LDe=v(()=>{Lo();WKt="thismessage:/"});function UE(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:Cn})),i.version=Cn)}var UDe=v(()=>{Pj()});function oA(e={}){let t=e.client||ct();if(!fH()||!t)return{};let n=xc(),r=rf(n);if(r.getTraceData)return r.getTraceData(e);let i=e.scope||Fn(),s=e.span||Yl();if(!s&&tX())return{};let o=s?Qj(s):YKt(i),a=s?Ps(s):Fp(t,i),c=OE(a);if(!Kj.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?mMe(s):ZKt(i)),l}function YKt(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Oy(t,r,n)}function ZKt(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Py(t,r,n)}var FDe=v(()=>{zR();Gl();go();ul();_r();Oc();Em();VO();Yj()});function FE(e,t,n){if(typeof e!="string"||!t)return!0;let r=n?.get(e);if(r!==void 0)return Fe&&!r&&Z.log(jDe,e),r;let i=Ty(e,t);return n?.set(e,i),Fe&&!i&&Z.log(jDe,e),i}var jDe,HDe=v(()=>{Pi();_r();vy();jDe="[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:"});function ZX(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 qDe=v(()=>{});function VDe(e){let t=Object.create(null);try{Object.entries(e).forEach(([n,r])=>{typeof r=="string"&&(t[n]=r)})}catch{}return t}function lP(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=JKt({url:o,host:r,protocol:s}),c=e.body||void 0,u=e.cookies;return{url:a,method:e.method,query_string:WDe(o),headers:VDe(t),cookies:u,data:c}}function JKt({url:e,protocol:t,host:n}){if(e?.startsWith("http"))return e;if(e&&n)return`${t}://${n}${e}`}function EH(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();GDe(r,o,g,m,t,n)}}else GDe(r,o,"",s,t,n)})}catch{}return r}function zDe(e){return e.replace(/-/g,"_")}function GDe(e,t,n,r,i,s){let o=QKt(n||t,r,i);if(o==null)return;let a=`http.${s}.header.${zDe(t)}${n?`.${zDe(n)}`:""}`;e[a]=o}function QKt(e,t,n){if(n?BDe.some(i=>e.includes(i)):[...XKt,...BDe].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 WDe(e){if(e)try{let t=new URL(e,"http://s.io").search.slice(1);return t.length?t:void 0}catch{return}}var BDe,XKt,KDe=v(()=>{BDe=["auth","token","secret","session","password","passwd","pwd","key","jwt","bearer","sso","saml","csrf","xsrf","credentials","set-cookie","cookie"],XKt=["x-forwarded-","-user"]});function Zl(e,t){let n=ct(),r=vn();if(!n)return;let{beforeBreadcrumb:i=null,maxBreadcrumbs:s=$Kt}=n.getOptions();if(s<=0)return;let a={timestamp:mm(),...e},c=i?xs(()=>i(a,t)):a;c!==null&&(n.emit&&n.emit("beforeAddBreadcrumb",c,t),r.addBreadcrumb(c,s))}var $Kt,JX=v(()=>{go();_r();wy();$Kt=100});var YDe,e3t,ZDe,t3t,_H,JDe=v(()=>{go();nf();e3t="FunctionToString",ZDe=new WeakMap,t3t=(()=>({name:e3t,setupOnce(){YDe=Function.prototype.toString;try{Function.prototype.toString=function(...e){let t=BJ(this),n=ZDe.has(ct())&&t!==void 0?t:this;return YDe.apply(n,e)}}catch{}},setup(e){ZDe.set(e,!0)}})),_H=t3t});function XDe(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:n3t],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function i3t(e,t){if(e.type){if(e.type==="transaction"&&o3t(e,t.ignoreTransactions))return Fe&&Z.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. -Event: ${Ry(e)}`),!0}else{if(s3t(e,t.ignoreErrors))return Fe&&Z.warn(`Event dropped due to being matched by \`ignoreErrors\` option. -Event: ${Ry(e)}`),!0;if(l3t(e))return Fe&&Z.warn(`Event dropped due to not having an error message, error type or stacktrace. -Event: ${Ry(e)}`),!0;if(a3t(e,t.denyUrls))return Fe&&Z.warn(`Event dropped due to being matched by \`denyUrls\` option. + `)}`)}function eP(e){if(!Fe)return;let{description:t="< unknown name >",op:n="< unknown op >"}=vt(e),{spanId:r}=e.spanContext(),s=cs(e)===e,o=`[Tracing] Finishing "${n}" ${s?"root ":""}span "${t}" with ID ${r}`;Z.log(o)}var sH=v(()=>{Pi();_r();Oc()});function ME(e){if(!e||e.length===0)return;let t={};return e.forEach(n=>{let r=n.attributes||{},i=r[iX],s=r[sX];typeof i=="string"&&typeof s=="number"&&(t[n.name]={value:s,unit:i})}),t}var RX=v(()=>{Lo()});function OMe(e){return e&&typeof e=="number"||e instanceof Date||Array.isArray(e)}function PMe(e){return!!e.start_timestamp&&!!e.timestamp&&!!e.span_id&&!!e.trace_id}function rKt(e){return e instanceof JR&&e.isStandaloneSpan()}function iKt(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 xMe,JR,NMe=v(()=>{go();Pi();vX();Lo();_r();Iy();Oc();wy();Em();sH();RX();WR();xMe=1e3,JR=class{constructor(t={}){this._traceId=t.traceId||Ya(),this._spanId=t.spanId||Za(),this._startTime=t.startTimestamp||Ay(),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?Xj:Jj}}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(Ki,"custom"),this}end(t){this._endTime||(this._endTime=lu(t),eP(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:CE(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[At],profile_id:this._attributes[GR],exclusive_time:this._attributes[VR],measurements:ME(this._events),is_segment:this._isStandaloneSpan&&cs(this)===this||void 0,segment_id:this._isStandaloneSpan?cs(this).spanContext().spanId:void 0,links:NE(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(t,n,r){Fe&&Z.log("[Tracing] Adding an event to span:",t);let i=OMe(n)?n:r||Ay(),s=OMe(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?iKt(IMe([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||Fn()).captureEvent(r)}_convertSpanToTransaction(){if(!PMe(vt(this)))return;this._name||(Fe&&Z.warn("Transaction has no name, falling back to ``."),this._name="");let{scope:t,isolationScope:n}=of(this),r=t?.getScopeData().sdkProcessingMetadata?.normalizedRequest;if(this._sampled!==!0)return;let s=$j(this).filter(l=>l!==this&&!rKt(l)).map(l=>vt(l)).filter(PMe),o=this._attributes[Ki];delete this._attributes[Kl],s.forEach(l=>{delete l.data[Kl]});let a={contexts:{trace:gMe(this)},spans:s.length>xMe?s.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,xMe):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=ME(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 sKt(i,t,n,r)}function sKt(e,t,n,r){return sa(e)?zj(e,i=>{n(),r(i)},i=>{t(i),n()}):(n(),r(e),e)}var oH=v(()=>{$J();Ka()});function tP(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();KR()});function lf(e,t){let n=nP();if(n.startSpan)return n.startSpan(e,t);let r=kX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ja(a,()=>MMe(s)(()=>{let u=Fn(),l=IX(u,s),f=e.onlyIfParent&&!l?new Cy:wX({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return kE(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=nP();if(n.startSpanManual)return n.startSpanManual(e,t);let r=kX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ja(a,()=>MMe(s)(()=>{let u=Fn(),l=IX(u,s),f=e.onlyIfParent&&!l?new Cy:wX({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return kE(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 cH(e){let t=nP();if(t.startInactiveSpan)return t.startInactiveSpan(e);let n=kX(e),{forceTransaction:r,parentSpan:i}=e;return(e.scope?o=>Ja(e.scope,o):i!==void 0?o=>XR(i,o):o=>o())(()=>{let o=Fn(),a=IX(o,i);return e.onlyIfParent&&!a?new Cy:wX({parentSpan:a,spanArguments:n,forceTransaction:r,scope:o})})}function XR(e,t){let n=nP();return n.withActiveSpan?n.withActiveSpan(e,t):Ja(r=>(kE(r,e||void 0),t(r)))}function QR(e){let t=nP();return t.suppressTracing?t.suppressTracing(e):Ja(n=>{n.setSDKProcessingMetadata({[aH]:!0});let r=e();return n.setSDKProcessingMetadata({[aH]:void 0}),r})}function wX({parentSpan:e,spanArguments:t,forceTransaction:n,scope:r}){if(!Os()){let o=new Cy;if(n||!e){let a={sampled:"false",sample_rate:"0",transaction:t.name,...Ps(o)};tH(o,a)}return o}let i=vn(),s;if(e&&!n)s=oKt(e,r,t),YR(e,s);else if(e){let o=Ps(e),{traceId:a,spanId:c}=e.spanContext(),u=af(e);s=CMe({traceId:a,parentSpanId:c,...t},r,u),tH(s,o)}else{let{traceId:o,dsc:a,parentSpanId:c,sampled:u}={...i.getPropagationContext(),...r.getPropagationContext()};s=CMe({traceId:o,parentSpanId:c,...t},r,u),a&&tH(s,a)}return $O(s),GO(s,r,i),s}function kX(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 nP(){let e=xc();return rf(e)}function CMe(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[aH]?[!1]:tP(i,{name:s,parentSampled:a,attributes:c,parentSampleRate:cl(u.dsc?.sample_rate)},u.sampleRand),p=new JR({...e,attributes:{[Ki]:"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 oKt(e,t,n){let{spanId:r,traceId:i}=e.spanContext(),s=t.getScopeData().sdkProcessingMetadata[aH]?!1:af(e),o=s?new JR({...n,parentSpanId:r,traceId:i,sampled:s}):new Cy({traceId:i});YR(e,o);let a=ct();return a&&(a.emit("spanStart",o),n.endTimestamp&&a.emit("spanEnd",o)),o}function IX(e,t){if(t)return t;if(t===null)return;let n=IE(e);if(!n)return;let r=ct();return(r?r.getOptions():{}).parentSpanIsAlwaysRootSpan?cs(n):n}function MMe(e){return e!==void 0?t=>XR(e,t):t=>t()}var aH,My=v(()=>{zR();Gl();go();Pi();Lo();_r();oH();ZO();KR();Bj();Oc();Em();sH();AX();RMe();NMe();WR();aH="__SENTRY_SUPPRESS_TRACING__"});function Tm(e){return new uH(t=>{t(e)})}function $R(e){return new uH((t,n)=>{n(e)})}var xX,DMe,LMe,uH,eA=v(()=>{Ka();xX=0,DMe=1,LMe=2;uH=class e{constructor(t){this._state=xX,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===xX)return;let t=this._handlers.slice();this._handlers=[],t.forEach(n=>{n[0]||(this._state===DMe&&n[1](this._value),this._state===LMe&&n[2](this._value),n[0]=!0)})}_runExecutor(t){let n=(s,o)=>{if(this._state===xX){if(sa(o)){o.then(r,i);return}this._state=s,this._value=o,this._executeHandlers()}},r=s=>{n(DMe,s)},i=s=>{n(LMe,s)};try{t(r,i)}catch(s){i(s)}}}});function UMe(e,t,n,r=0){try{let i=OX(t,n,e,r);return sa(i)?i:Tm(i)}catch(i){return $R(i)}}function OX(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=>OX(o,t,n,r+1)):OX(s,t,n,r+1)}var FMe=v(()=>{Pi();_r();Ka();eA()});function qMe(e){let t=qt._sentryDebugIds,n=qt._debugIds;if(!t&&!n)return{};let r=t?Object.keys(t):[],i=n?Object.keys(n):[];if(Dy&&r.length===jMe&&i.length===HMe)return Dy;jMe=r.length,HMe=i.length,Dy={},DE||(DE={});let s=(o,a)=>{for(let c of o){let u=a[c],l=DE?.[c];if(l&&Dy&&u)Dy[l[0]]=u,DE&&(DE[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&&Dy&&DE){Dy[h]=u,DE[c]=[h,u];break}}}}};return t&&s(r,t),n&&s(i,n),Dy}var DE,jMe,HMe,Dy,BMe=v(()=>{Wa()});function GMe(e,t){let{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:s}=t;aKt(e,t),r&&lKt(e,r),dKt(e,n),cKt(e,i),uKt(e,s)}function zMe(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;rP(e,"extra",n),rP(e,"tags",r),rP(e,"attributes",i),rP(e,"user",s),rP(e,"contexts",o),e.sdkProcessingMetadata=ky(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 rP(e,t,n){e[t]=ky(e[t],n,1)}function lH(e,t){let n=Gj().getScopeData();return e&&zMe(n,e.getScopeData()),t&&zMe(n,t.getScopeData()),n}function aKt(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 cKt(e,t){let n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function uKt(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function lKt(e,t){e.contexts={trace:Ny(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 dKt(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 PX=v(()=>{go();Em();qj();Oc()});function VMe(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||mm()},u=n.integrations||e.integrations.map(y=>y.name);fKt(c,e),mKt(c,u),i&&i.emit("applyFrameMetadata",t),t.type===void 0&&pKt(c,e.stackParser);let l=yKt(r,n.captureContext);n.mechanism&&HR(c,n.mechanism);let d=i?i.getEventProcessors():[],f=lH(s,l),p=[...n.attachments||[],...f.attachments];p.length&&(n.attachments=p),GMe(c,f);let h=[...d,...f.eventProcessors];return(n.data&&n.data.__sentry__===!0?Tm(c):UMe(h,c,n)).then(y=>(y&&hKt(y),typeof o=="number"&&o>0?gKt(y,o,a):y))}function fKt(e,t){let{environment:n,release:r,dist:i,maxValueLength:s}=t;e.environment=e.environment||n||ZR,!e.release&&r&&(e.release=r),!e.dist&&i&&(e.dist=i);let o=e.request;o?.url&&s&&(o.url=_y(o.url,s)),s&&e.exception?.values?.forEach(a=>{a.value&&(a.value=_y(a.value,s))})}function pKt(e,t){let n=qMe(t);e.exception?.values?.forEach(r=>{r.stacktrace?.frames?.forEach(i=>{i.filename&&(i.debug_id=n[i.filename])})})}function hKt(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 mKt(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function gKt(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 yKt(e,t){if(!t)return e;let n=e?e.clone():new uu;return n.update(t),n}function WMe(e){if(e)return SKt(e)?{captureContext:e}:EKt(e)?{captureContext:e}:e}function SKt(e){return e instanceof uu||typeof e=="function"}function EKt(e){return Object.keys(e).some(t=>bKt.includes(t))}var bKt,NX=v(()=>{eH();FMe();BO();BMe();Lp();nH();PX();vy();eA();wy();bKt=["user","level","extra","contexts","tags","fingerprint","propagationContext"]});function Wt(e,t){return Fn().captureException(e,WMe(t))}function dH(e,t){return Fn().captureEvent(e,t)}async function tA(e){let t=ct();return t?t.flush(e):(Fe&&Z.warn("Cannot flush events. No client defined."),Promise.resolve(!1))}function fH(){let e=ct();return e?.getOptions().enabled!==!1&&!!e?.getTransport()}function pH(e){let t=vn(),{user:n}=lH(t,Fn()),{userAgent:r}=qt.navigator||{},i=XCe({user:n,...r&&{userAgent:r},...e}),s=t.getSession();return s?.status==="ok"&&gm(s,{status:"exited"}),iP(),t.setSession(i),i}function iP(){let e=vn(),n=Fn().getSession()||e.getSession();n&&QCe(n),_Kt(),e.setSession()}function _Kt(){let e=vn(),t=ct(),n=e.getSession();n&&t&&t.captureSession(n)}var ul=v(()=>{go();Pi();Hj();_r();NX();PX();Wa()});function vKt(e){let t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function RKt(e){return`${vKt(e)}${e.projectId}/envelope/`}function AKt(e,t){let n={sentry_version:TKt};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||`${RKt(e)}?${AKt(e,n)}`}var TKt,YMe=v(()=>{TKt="7"});function wKt(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 MX(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 wKt(r)}function ZMe(e,t){let n={};return t.forEach(r=>{r&&LX(e,r,n)}),n}function DX(e,t){for(let n of t)n?.afterAllSetup&&n.afterAllSetup(e)}function LX(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,!CX.includes(t.name)&&typeof t.setupOnce=="function"&&(t.setupOnce(),CX.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 CX,UX=v(()=>{Pi();_r();CX=[]});function JMe(e,t){return t?Ja(t,()=>{let n=Yl(),r=n?Ny(n):xE(t);return[n?Ps(n):Fp(e,t),r]}):[void 0,void 0]}var XMe=v(()=>{go();Em();Oc()});function kKt(e){return[{type:"log",item_count:e.length,content_type:"application/vnd.sentry.items.log+json"},{items:e}]}function QMe(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,[kKt(e)])}var $Me=v(()=>{bm();_m()});function nA(e,t){let n=t??IKt(e)??[];if(n.length===0)return;let r=e.getOptions(),i=QMe(n,r._metadata,r.tunnel,e.getDsn());eDe().set(e,[]),e.emit("flushLogs"),e.sendEnvelope(i)}function IKt(e){return eDe().get(e)}function eDe(){return tf("clientToLogBufferMap",()=>new WeakMap)}var FX=v(()=>{Gl();$Me()});function xKt(e){return[{type:"trace_metric",item_count:e.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{items:e}]}function tDe(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,[xKt(e)])}var nDe=v(()=>{bm();_m()});function rDe(e,t){let n=t??OKt(e)??[];if(n.length===0)return;let r=e.getOptions(),i=tDe(n,r._metadata,r.tunnel,e.getDsn());iDe().set(e,[]),e.emit("flushMetrics"),e.sendEnvelope(i)}function OKt(e){return iDe().get(e)}function iDe(){return tf("clientToMetricBufferMap",()=>new WeakMap)}var sDe=v(()=>{Gl();nDe()});function hH(e){return typeof e=="object"&&typeof e.unref=="function"&&e.unref(),e}var jX=v(()=>{});function rA(e=100){let t=new Set;function n(){return t.sizer(a),()=>r(a)),a}function s(o){if(!t.size)return Tm(!0);let a=Promise.allSettled(Array.from(t)).then(()=>!0);if(!o)return a;let c=[a,new Promise(u=>hH(setTimeout(()=>u(!1),o)))];return Promise.race(c)}return{get $(){return Array.from(t)},add:i,drain:s}}var sP,mH=v(()=>{eA();jX();sP=Symbol.for("SentryBufferFullError")});function NKt(e,t=Vl()){let n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;let r=Date.parse(`${e}`);return isNaN(r)?PKt:r-t}function CKt(e,t){return e[t]||e.all||0}function oDe(e,t,n=Vl()){return CKt(e,t)>n}function aDe(e,{statusCode:t,headers:n},r=Vl()){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+NKt(o,r):t===429&&(i.all=r+60*1e3);return i}var PKt,cDe=v(()=>{Ey();PKt=60*1e3});function aP(e,t,n=rA(e.bufferSize||oP)){let r={},i=o=>n.drain(o);function s(o){let a=[];if(XO(o,(d,f)=>{let p=rH(f);oDe(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(bX(c,["client_report"])){Fe&&Z.warn(`Dropping client report. Will not send outcomes (reason: ${d}).`);return}XO(c,(f,p)=>{e.recordDroppedEvent(d,rH(p))})},l=()=>t({body:QO(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=aDe(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===sP)return Fe&&Z.error("Skipped sending event because buffer is full."),u("queue_overflow"),Promise.resolve({});throw d})}return{send:s,flush:i}}var oP,gH=v(()=>{Pi();_r();_m();mH();cDe();oP=64});function uDe(e,t,n){let r=[{type:"client_report"},{timestamp:n||mm(),discarded_events:e}];return Pc(t?{dsn:t}:{},[r])}var lDe=v(()=>{_m();wy()});function yH(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 HX=v(()=>{});function dDe(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?.[GR],exclusive_time:o?.[VR],measurements:e.measurements,is_segment:!0}}function fDe(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&&{[GR]:e.profile_id},...e.exclusive_time&&{[VR]:e.exclusive_time}}}},measurements:e.measurements}}var pDe=v(()=>{Lo()});function SH(e){return{message:e,[_De]:!0}}function qX(e){return{message:e,[TDe]:!0}}function gDe(e){return!!e&&typeof e=="object"&&_De in e}function yDe(e){return!!e&&typeof e=="object"&&TDe in e}function SDe(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=hH(setTimeout(()=>{i(e)},MKt)))}),e.on("flush",()=>{i(e)})}function bDe(e){return e==="replay_event"?"replay":e||"error"}function DKt(e,t){let n=`${t} must return \`null\` or a valid event.`;if(sa(e))return e.then(r=>{if(!pm(r)&&r!==null)throw SH(n);return r},r=>{throw SH(`${t} rejected with ${r}`)});if(!pm(e)&&e!==null)throw SH(n);return e}function LKt(e,t,n,r){let{beforeSend:i,beforeSendTransaction:s,beforeSendSpan:o,ignoreSpans:a}=t,c=n;if(BX(c)&&i)return i(c,r);if(vDe(c)){if(o||a){let u=dDe(c);if(a?.length&&JO(u,a))return null;if(o){let l=o(u);l?c=ky(n,fDe(l)):YO()}if(c.spans){let l=[],d=c.spans;for(let p of d){if(a?.length&&JO(p,a)){TMe(d,p);continue}if(o){let h=o(p);h?l.push(h):(YO(),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 BX(e){return e.type===void 0}function vDe(e){return e.type==="transaction"}function UKt(e){let t=0;return e.name&&(t+=e.name.length*2),t+=8,t+RDe(e.attributes)}function FKt(e){let t=0;return e.message&&(t+=e.message.length*2),t+RDe(e.attributes)}function RDe(e){if(!e)return 0;let t=0;return Object.values(e).forEach(n=>{Array.isArray(n)?t+=n.length*EDe(n[0]):HO(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 hDe,mDe,_De,TDe,MKt,bH,ADe=v(()=>{YMe();eH();go();Pi();vX();UX();FX();sDe();Hj();Em();gH();lDe();_r();bm();_m();HX();Ka();qj();Lp();KR();NX();mH();Ey();pX();Oc();eA();jX();pDe();hDe="Not capturing exception because it's already been captured.",mDe="Discarded session because of missing or non-string release",_De=Symbol.for("SentryInternalError"),TDe=Symbol.for("SentryDoNotSendEventError"),MKt=5e3;bH=class{constructor(t){if(this._options=t,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=rA(t.transportOptions?.bufferSize??oP),t.dsn?this._dsn=fMe(t.dsn):Fe&&Z.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&&SDe(this,"afterCaptureLog","flushLogs",FKt,nA),(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)&&SDe(this,"afterCaptureMetric","flushMetrics",UKt,rDe)}captureException(t,n,r){let i=mo();if(jj(t))return Fe&&Z.log(hDe),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=FR(t)?t:String(t),a=HO(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&&jj(n.originalException))return Fe&&Z.log(hDe),i;let s={event_id:i,...n},o=t.sdkProcessingMetadata||{},a=o.capturedSpanScope,c=o.capturedSpanIsolationScope,u=bDe(t.type);return this._process(()=>this._captureEvent(t,s,a||r,c),u),s.event_id}captureSession(t){this.sendSession(t),gm(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){nA(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];LX(this,t,this._integrations),n||DX(this,[t])}sendEvent(t,n={}){this.emit("beforeSendEvent",t,n);let r=kMe(t,this._dsn,this._options._metadata,this._options.tunnel);for(let i of n.attachments||[])r=SX(r,_X(i));this.sendEnvelope(r).then(i=>this.emit("afterSendEvent",t,i))}sendSession(t){let{release:n,environment:r=ZR}=this._options;if("aggregates"in t){let s=t.attrs||{};if(!s.release&&!n){Fe&&Z.warn(mDe);return}s.release=s.release||n,s.environment=s.environment||r,t.attrs=s}else{if(!t.release&&!n){Fe&&Z.warn(mDe);return}t.release=t.release||n,t.environment=t.environment||r}this.emit("beforeSendSession",t);let i=wMe(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=ZMe(this,t),DX(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)&&(gm(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),VMe(s,t,n,r,this,i).then(a=>{if(a===null)return a;this.emit("postprocessEvent",a,n),a.contexts={trace:{...a.contexts?.trace,...xE(r)},...a.contexts};let c=Fp(this,r);return a.sdkProcessingMetadata={dynamicSamplingContext:c,...a.sdkProcessingMetadata},a})}_captureEvent(t,n={},r=Fn(),i=vn()){return Fe&&BX(t)&&Z.log(`Captured error event \`${yH(t)[0]||""}\``),this._processEvent(t,n,r,i).then(s=>s.event_id,s=>{Fe&&(yDe(s)?Z.log(s.message):gDe(s)?Z.warn(s.message):Z.warn(s))})}_processEvent(t,n,r,i){let s=this.getOptions(),{sampleRate:o}=s,a=vDe(t),c=BX(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"),$R(qX(`Discarding event because it's not included in the random sample (sampling rate = ${o})`));let f=bDe(t.type);return this._prepareEvent(t,n,r,i).then(p=>{if(p===null)throw this.recordDroppedEvent("event_processor",f),qX("An event processor returned `null`, will not send event.");if(n.data?.__sentry__===!0)return p;let m=LKt(this,s,p,n);return DKt(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 qX(`${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 yDe(p)||gDe(p)?p:(this.captureException(p,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:p}),SH(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. +Reason: ${p}`))})}_process(t,n){this._numProcessing++,this._promiseBuffer.add(t).then(r=>(this._numProcessing--,r),r=>(this._numProcessing--,r===sP&&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=uDe(t,this._options.tunnel&&al(this._dsn));this.sendEnvelope(n)}}});function wDe(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=jKt(e);return Pc(s,[o])}function jKt(e){return[{type:"check_in"},e]}var kDe=v(()=>{bm();_m()});function IDe(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 xDe=v(()=>{});function ODe(e,t){return e(t.stack||"",1)}function HKt(e){return Mp(e)&&"__sentry_fetch_url_host__"in e&&typeof e.__sentry_fetch_url_host__=="string"}function qKt(e){return HKt(e)?`${e.message} (${e.__sentry_fetch_url_host__})`:e.message}function zX(e,t){let n={type:t.name||t.constructor.name,value:qKt(t)},r=ODe(e,t);return r.length&&(n.stacktrace={frames:r}),n}function BKt(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];if(n instanceof Error)return n}}function zKt(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=GJ(e);if(UJ(e))return`Event \`ErrorEvent\` captured as exception with message \`${e.message}\``;let n=GKt(e);return`${n&&n!=="Object"?`'${n}'`:"Object"} captured as exception with keys: ${t}`}function GKt(e){try{let t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}function VKt(e,t,n,r){if(Mp(n))return[n,void 0];if(t.synthetic=!0,pm(n)){let s=e?.getOptions().normalizeDepth,o={__serialized__:gX(n,s)},a=BKt(n);if(a)return[a,o];let c=zKt(n),u=r?.syntheticException||new Error(c);return u.message=c,[u,o]}let i=r?.syntheticException||new Error(n);return i.message=`${n}`,[i,void 0]}function PDe(e,t,n,r){let s=r?.data&&r.data.mechanism||{handled:!0,type:"generic"},[o,a]=VKt(e,s,n,r),c={exception:{values:[zX(t,o)]}};return a&&(c.extra=a),ZJ(c,void 0,void 0),HR(c,s),{...c,event_id:r?.event_id}}function NDe(e,t,n="info",r,i){let s={event_id:r?.event_id,level:n};if(i&&r?.syntheticException){let o=ODe(e,r.syntheticException);o.length&&(s.exception={values:[{value:t,stacktrace:{frames:o}}]},HR(s,{synthetic:!0}))}if(FR(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 GX=v(()=>{Ka();Lp();nH();nf()});function CDe(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 cP,MDe=v(()=>{kDe();ADe();go();Pi();EMe();_r();Lp();gH();xDe();GX();mH();eA();XMe();cP=class extends bH{constructor(t){bMe(),IDe(t),super(t),this._setUpMetricsProcessing()}eventFromException(t,n){let r=PDe(this,this._options.stackParser,t,n);return r.level="error",Tm(r)}eventFromMessage(t,n="info",r){return Tm(NDe(this._options.stackParser,t,n,r,this._options.attachStacktrace))}captureException(t,n,r){return CDe(n),super.captureException(t,n,r)}captureEvent(t,n,r){return!t.type&&t.exception?.values&&t.exception.values.length>0&&CDe(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]=JMe(this,r);d&&(u.contexts={trace:d});let f=wDe(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=rA(oP)}_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 WX(e){e.forEach(t=>{VX.add(t),Fe&&Z.log(`AI provider "${t}" wrapping will be skipped`)})}function LE(e){return VX.has(e)}function KX(){VX.clear(),Fe&&Z.log("Cleared AI provider skip registrations")}var VX,DDe=v(()=>{Pi();_r();VX=new Set});function iA(e,t){let n=String(e).toLowerCase();return WKt.has(n)?!1:KKt.has(n)?!0:t?.strict?null:!!e}var WKt,KKt,LDe=v(()=>{WKt=new Set(["false","f","n","no","off","0"]),KKt=new Set(["true","t","y","yes","on","1"])});function YX(e){return"isRelative"in e}function uP(e,t){let n=e.indexOf("://")<=0&&e.indexOf("//")!==0,r=t??(n?YKt: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 UDe(e){if(YX(e))return e.pathname;let t=new URL(e);return t.search="",t.hash="",["80","443"].includes(t.port)&&(t.port=""),t.password&&(t.password="%filtered%"),t.username&&(t.username="%filtered%"),t.toString()}function ZKt(e,t,n,r){let i=n?.method?.toUpperCase()??"GET",s=r||(e?t==="client"?UDe(e):e.pathname:"/");return`${i} ${s}`}function ZX(e,t,n,r,i){let s={[At]:n,[Ki]:"url"};return i&&(s[t==="server"?"http.route":"url.template"]=i,s[Ki]="route"),r?.method&&(s[uX]=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[Ki]="route")),YX(e)||(s[xy]=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))),[ZKt(e,t,r,i),s]}function Ly(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 vm(e){return e.split(/[?#]/,1)[0]}function Uy(e){let{protocol:t,host:n,path:r}=e,i=n?.replace(/^.*@/,"[filtered]:[filtered]@").replace(/(:80)$/,"").replace(/(:443)$/,"")||"";return`${t?`${t}://`:""}${i}${r}`}function sA(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 YKt,FDe=v(()=>{Lo();YKt="thismessage:/"});function UE(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:Cn})),i.version=Cn)}var jDe=v(()=>{Pj()});function oA(e={}){let t=e.client||ct();if(!fH()||!t)return{};let n=xc(),r=rf(n);if(r.getTraceData)return r.getTraceData(e);let i=e.scope||Fn(),s=e.span||Yl();if(!s&&nX())return{};let o=s?Qj(s):JKt(i),a=s?Ps(s):Fp(t,i),c=OE(a);if(!Kj.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?yMe(s):XKt(i)),l}function JKt(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Oy(t,r,n)}function XKt(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Py(t,r,n)}var HDe=v(()=>{zR();Gl();go();ul();_r();Oc();Em();VO();Yj()});function FE(e,t,n){if(typeof e!="string"||!t)return!0;let r=n?.get(e);if(r!==void 0)return Fe&&!r&&Z.log(qDe,e),r;let i=Ty(e,t);return n?.set(e,i),Fe&&!i&&Z.log(qDe,e),i}var qDe,BDe=v(()=>{Pi();_r();vy();qDe="[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:"});function JX(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 zDe=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 lP(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=QKt({url:o,host:r,protocol:s}),c=e.body||void 0,u=e.cookies;return{url:a,method:e.method,query_string:YDe(o),headers:KDe(t),cookies:u,data:c}}function QKt({url:e,protocol:t,host:n}){if(e?.startsWith("http"))return e;if(e&&n)return`${t}://${n}${e}`}function EH(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();WDe(r,o,g,m,t,n)}}else WDe(r,o,"",s,t,n)})}catch{}return r}function VDe(e){return e.replace(/-/g,"_")}function WDe(e,t,n,r,i,s){let o=e3t(n||t,r,i);if(o==null)return;let a=`http.${s}.header.${VDe(t)}${n?`.${VDe(n)}`:""}`;e[a]=o}function e3t(e,t,n){if(n?GDe.some(i=>e.includes(i)):[...$Kt,...GDe].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 YDe(e){if(e)try{let t=new URL(e,"http://s.io").search.slice(1);return t.length?t:void 0}catch{return}}var GDe,$Kt,ZDe=v(()=>{GDe=["auth","token","secret","session","password","passwd","pwd","key","jwt","bearer","sso","saml","csrf","xsrf","credentials","set-cookie","cookie"],$Kt=["x-forwarded-","-user"]});function Zl(e,t){let n=ct(),r=vn();if(!n)return;let{beforeBreadcrumb:i=null,maxBreadcrumbs:s=t3t}=n.getOptions();if(s<=0)return;let a={timestamp:mm(),...e},c=i?xs(()=>i(a,t)):a;c!==null&&(n.emit&&n.emit("beforeAddBreadcrumb",c,t),r.addBreadcrumb(c,s))}var t3t,XX=v(()=>{go();_r();wy();t3t=100});var JDe,n3t,XDe,r3t,_H,QDe=v(()=>{go();nf();n3t="FunctionToString",XDe=new WeakMap,r3t=(()=>({name:n3t,setupOnce(){JDe=Function.prototype.toString;try{Function.prototype.toString=function(...e){let t=zJ(this),n=XDe.has(ct())&&t!==void 0?t:this;return JDe.apply(n,e)}}catch{}},setup(e){XDe.set(e,!0)}})),_H=r3t});function $De(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:i3t],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function o3t(e,t){if(e.type){if(e.type==="transaction"&&c3t(e,t.ignoreTransactions))return Fe&&Z.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. +Event: ${Ry(e)}`),!0}else{if(a3t(e,t.ignoreErrors))return Fe&&Z.warn(`Event dropped due to being matched by \`ignoreErrors\` option. +Event: ${Ry(e)}`),!0;if(f3t(e))return Fe&&Z.warn(`Event dropped due to not having an error message, error type or stacktrace. +Event: ${Ry(e)}`),!0;if(u3t(e,t.denyUrls))return Fe&&Z.warn(`Event dropped due to being matched by \`denyUrls\` option. Event: ${Ry(e)}. -Url: ${TH(e)}`),!0;if(!c3t(e,t.allowUrls))return Fe&&Z.warn(`Event dropped due to not being matched by \`allowUrls\` option. +Url: ${TH(e)}`),!0;if(!l3t(e,t.allowUrls))return Fe&&Z.warn(`Event dropped due to not being matched by \`allowUrls\` option. Event: ${Ry(e)}. -Url: ${TH(e)}`),!0}return!1}function s3t(e,t){return t?.length?yH(e).some(n=>Ty(n,t)):!1}function o3t(e,t){if(!t?.length)return!1;let n=e.transaction;return n?Ty(n,t):!1}function a3t(e,t){if(!t?.length)return!1;let n=TH(e);return n?Ty(n,t):!1}function c3t(e,t){if(!t?.length)return!0;let n=TH(e);return n?Ty(n,t):!0}function u3t(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 TH(e){try{let n=[...e.exception?.values??[]].reverse().find(r=>r.mechanism?.parent_id===void 0&&r.stacktrace?.frames?.length)?.stacktrace?.frames;return n?u3t(n):null}catch{return Fe&&Z.error(`Cannot extract url for event ${Ry(e)}`),null}}function l3t(e){return e.exception?.values?.length?!e.message&&!e.exception.values.some(t=>t.stacktrace||t.type&&t.type!=="Error"||t.value):!1}var n3t,r3t,XX,vH,QDe=v(()=>{Pi();_r();jX();Lp();vy();n3t=[/^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$/],r3t="EventFilters",XX=(e={})=>{let t;return{name:r3t,setup(n){let r=n.getOptions();t=XDe(e,r)},processEvent(n,r,i){if(!t){let s=i.getOptions();t=XDe(e,s)}return i3t(n,t)?null:n}}},vH=((e={})=>({...XX(e),name:"InboundFilters"}))});function tLe(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=QX(e,t,r,s.originalException,n,i.exception.values,o,0))}function QX(e,t,n,r,i,s,o,a){if(s.length>=n+1)return s;let c=[...s];if(Dp(r[i],Error)){$De(o,a,r);let u=e(t,r[i]),l=c.length;eLe(u,i,l,a),c=QX(e,t,n,r[i],i,[u,...c],u,l)}return nLe(r)&&r.errors.forEach((u,l)=>{if(Dp(u,Error)){$De(o,a,r);let d=e(t,u),f=c.length;eLe(d,`errors[${l}]`,f,a),c=QX(e,t,n,u,i,[d,...c],d,f)}}),c}function nLe(e){return Array.isArray(e.errors)}function $De(e,t,n){e.mechanism={handled:!0,type:"auto.core.linked_errors",...nLe(n)&&{is_exception_group:!0},...e.mechanism,exception_id:t}}function eLe(e,t,n,r){e.mechanism={handled:!0,...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}var rLe=v(()=>{Ka()});var d3t,f3t,p3t,h3t,RH,iLe=v(()=>{rLe();zX();d3t="cause",f3t=5,p3t="LinkedErrors",h3t=((e={})=>{let t=e.limit||f3t,n=e.key||d3t;return{name:p3t,preprocessEvent(r,i,s){let o=s.getOptions();tLe(BX,o.stackParser,n,t,r,i)}}}),RH=h3t});function sLe(e){let t={},n=0;for(;n{});function aLe(e){let t={};for(let s of Object.keys(e))t[s.toLowerCase()]=e[s];return $X.map(s=>{let o=t[s.toLowerCase()],a=Array.isArray(o)?o.join(";"):o;return s==="Forwarded"?m3t(a):a?.split(",").map(c=>c.trim())}).reduce((s,o)=>o?s.concat(o):s,[]).find(s=>s!==null&&g3t(s))||null}function m3t(e){if(!e)return null;for(let t of e.split(";"))if(t.startsWith("for="))return t.slice(4);return null}function g3t(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 $X,cLe=v(()=>{$X=["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 E3t(e,t,n,r){if(e.request={...e.request,..._3t(t,r)},r.ip){let i=t.headers&&aLe(t.headers)||n.ipAddress;i&&(e.user={...e.user,ip_address:i})}}function _3t(e,t){let n={},r={...e.headers};if(t.headers&&(n.headers=r,t.cookies||delete r.cookie,t.ip||$X.forEach(i=>{delete r[i]})),n.method=e.method,t.url&&(n.url=e.url),t.cookies){let i=e.cookies||(r?.cookie?sLe(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 y3t,S3t,b3t,AH,uLe=v(()=>{oLe();cLe();y3t={cookies:!0,data:!0,headers:!0,query_string:!0,url:!0},S3t="RequestData",b3t=((e={})=>{let t={...y3t,...e.include};return{name:S3t,processEvent(n,r,i){let{sdkProcessingMetadata:s={}}=n,{normalizedRequest:o,ipAddress:a}=s,c={...t,ip:t.ip??i.getOptions().sendDefaultPii};return o&&E3t(n,o,{ipAddress:a},c),n}}}),AH=b3t});function lLe(e){let t="console";DR(t,e),LR(t,T3t)}function T3t(){"console"in qt&&FO.forEach(function(e){e in qt.console&&qJ(qt.console,e,function(t){return CR[e]=t,function(...n){UR("console",{args:n,level:e}),CR[e]?.apply(qt.console,n)}})})}var dLe=v(()=>{_r();nf();Wa();Lj()});function fLe(e){return e==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(e)?e:"log"}var pLe=v(()=>{});function R3t(e){let t=e.length>1024?`${e.slice(-1024)}`:e,n=v3t.exec(t);return n?n.slice(1):[]}function eQ(e){let t=R3t(e),n=t[0]||"",r=t[1];return!n&&!r?".":(r&&(r=r.slice(0,r.length-1)),n+r)}var v3t,hLe=v(()=>{v3t=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/});function rQ(e,t){return!e||typeof e!="function"?(Fe&&Z.warn("instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance"),e):nQ(e,{requireParentSpan:!0,...t})}function nQ(e,t,n){if(e[tQ])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&&gLe(a,r,t),a},get(i,s){let o=i[s];return typeof s!="string"||typeof o!="function"?o:s==="unsafe"||s==="file"?k3t(o,i,r,t):s==="begin"||s==="reserve"?I3t(o,i,r,t):o}});return n?r[wH]=n:C3t(e,r),e[tQ]=!0,r[tQ]=!0,r}function k3t(e,t,n,r){return function(...i){let s=Reflect.apply(e,t,i);return s&&typeof s=="object"&&"handle"in s&&gLe(s,n,r),s}}function I3t(e,t,n,r){return function(...i){let s=n[wH];if(!(typeof i[i.length-1]=="function")){let l=Reflect.apply(e,t,i);return l&&typeof l.then=="function"?l.then(d=>nQ(d,r,s)):l}let a=i.length===1?i[0]:i[1],c=function(l){let d=nQ(l,r,s);return a(d)},u=i.length===1?[c]:[i[0],c];return Reflect.apply(e,t,u)}}function gLe(e,t,n){if(e.handle?.__sentryWrapped)return;e[w3t]=!0;let r=e.handle,i=async function(...s){if(!x3t(n))return r.apply(this,s);let o=O3t(e.strings),a=P3t(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[wH]:void 0;if(N3t(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{mLe(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"),mLe(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 x3t(e){return Yl()!==void 0||!e.requireParentSpan}function O3t(e){if(e?.length)return e.length===1?e[0]||void 0:e.reduce((t,n,r)=>r===0?n:`${t}$${r}${n}`,"")}function P3t(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();My();A3t=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,wH=Symbol("sentryPostgresConnectionContext"),tQ=Symbol.for("sentry.instrumented.postgresjs"),w3t=Symbol.for("sentry.query.from.instrumented.sql")});function D3t(e,t){let n={category:"console",data:{arguments:t,logger:"console"},level:fLe(e),message:SLe(t)};if(e==="assert")if(t[0]===!1){let r=t.slice(1);n.message=r.length>0?`Assertion failed: ${SLe(r)}`:"Assertion failed",n.data.arguments=r}else return;Zl(n,{input:t,level:e})}function SLe(e){return"util"in qt&&typeof qt.util.format=="function"?qt.util.format(...e):VJ(e," ")}var M3t,kH,bLe=v(()=>{JX();go();dLe();_r();pLe();vy();Wa();M3t="Console",kH=(e={})=>{let t=new Set(e.levels||FO);return{name:M3t,setup(n){lLe(({args:r,level:i})=>{ct()!==n||!t.has(i)||D3t(i,r)})}}}});var L3t,U3t,iQ,ELe=v(()=>{go();Lo();L3t="ConversationId",U3t=(()=>({name:L3t,setup(e){e.on("spanStart",t=>{let n=Fn().getScopeData(),r=vn().getScopeData(),i=n.conversationId||r.conversationId;i&&t.setAttribute(uX,i)})}})),iQ=U3t});function IH(e,t={},n=Fn()){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 _Le=v(()=>{go()});var TLe,Fy,us,aA,jy,cA,Hy,uA,qy,xH,vLe,RLe,du,yo,Jl,ALe,di,Ns,Nc,oa,Cc,aa,wLe,ll,Gs,jp,jE,Fo,sQ,kLe,dP,ILe,xLe,oQ,By,OH,OLe,PLe,NLe,CLe,lA,MLe,DLe,LLe,ULe,HE,aQ,cQ,PH,NH,FLe,uQ,lQ,dQ,jLe,HLe,fQ,Xa=v(()=>{TLe="gen_ai.prompt",Fy="gen_ai.system",us="gen_ai.request.model",aA="gen_ai.request.stream",jy="gen_ai.request.temperature",cA="gen_ai.request.max_tokens",Hy="gen_ai.request.frequency_penalty",uA="gen_ai.request.presence_penalty",qy="gen_ai.request.top_p",xH="gen_ai.request.top_k",vLe="gen_ai.request.encoding_format",RLe="gen_ai.request.dimensions",du="gen_ai.response.finish_reasons",yo="gen_ai.response.model",Jl="gen_ai.response.id",ALe="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",wLe="gen_ai.output.messages",ll="gen_ai.system_instructions",Gs="gen_ai.response.text",jp="gen_ai.request.available_tools",jE="gen_ai.response.streaming",Fo="gen_ai.response.tool_calls",sQ="gen_ai.agent.name",kLe="gen_ai.pipeline.name",dP="gen_ai.conversation.id",ILe="gen_ai.usage.cache_creation_input_tokens",xLe="gen_ai.usage.cache_read_input_tokens",oQ="gen_ai.usage.input_tokens.cache_write",By="gen_ai.usage.input_tokens.cached",OH="gen_ai.invoke_agent",OLe="gen_ai.generate_text",PLe="gen_ai.stream_text",NLe="gen_ai.generate_object",CLe="gen_ai.stream_object",lA="gen_ai.embeddings.input",MLe="gen_ai.embeddings",DLe="gen_ai.embeddings",LLe="gen_ai.rerank",ULe="gen_ai.execute_tool",HE="gen_ai.tool.name",aQ="gen_ai.tool.call.id",cQ="gen_ai.tool.type",PH="gen_ai.tool.input",NH="gen_ai.tool.output",FLe="gen_ai.tool.description",uQ="openai.response.id",lQ="openai.response.model",dQ="openai.response.timestamp",jLe="openai.usage.completion_tokens",HLe="openai.usage.prompt_tokens",fQ="anthropic.response.timestamp"});var fP,pQ,hQ,qLe,BLe,zLe,mQ=v(()=>{fP=new Map,pQ=new Set(["ai.generateText","ai.streamText","ai.generateObject","ai.streamObject"]),hQ=new Set(["ai.generateText.doGenerate","ai.streamText.doStream","ai.generateObject.doGenerate","ai.streamObject.doStream"]),qLe=new Set(["ai.embed.doEmbed","ai.embedMany.doEmbed"]),BLe=new Set(["ai.rerank.doRerank"]),zLe={"ai.embed.doEmbed":"embeddings","ai.embedMany.doEmbed":"embeddings","ai.rerank.doRerank":"rerank"}});function zy(e){return!e||typeof e!="object"?!1:j3t(e)||VLe(e)||F3t(e)||WLe(e)||KLe(e)||H3t(e)||q3t(e)||B3t(e)||z3t(e)||G3t(e)||V3t(e)||W3t(e)}function F3t(e){return"image_url"in e?typeof e.image_url=="string"?e.image_url.startsWith("data:"):GLe(e):!1}function GLe(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 j3t(e){return"type"in e&&typeof e.type=="string"&&"source"in e&&zy(e.source)}function VLe(e){return"inlineData"in e&&!!e.inlineData&&typeof e.inlineData=="object"&&"data"in e.inlineData&&typeof e.inlineData.data=="string"}function WLe(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 KLe(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 H3t(e){return"media_type"in e&&typeof e.media_type=="string"&&"data"in e}function q3t(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 B3t(e){return"type"in e&&e.type==="image"&&"image"in e&&typeof e.image=="string"&&!e.image.startsWith("http://")&&!e.image.startsWith("https://")}function z3t(e){return"type"in e&&(e.type==="blob"||e.type==="base64")}function G3t(e){return"b64_json"in e}function V3t(e){return"type"in e&&"result"in e&&e.type==="image_generation"}function W3t(e){return"uri"in e&&typeof e.uri=="string"&&e.uri.startsWith("data:")}function qE(e){let t={...e};zy(t.source)&&(t.source=qE(t.source)),VLe(e)&&(t.inlineData={...e.inlineData,data:pP}),GLe(e)&&(t.image_url={...e.image_url,url:pP}),WLe(e)&&(t.input_audio={...e.input_audio,data:pP}),KLe(e)&&(t.file={...e.file,file_data:pP});for(let n of K3t)typeof t[n]=="string"&&(t[n]=pP);return t}var pP,K3t,gQ=v(()=>{pP="[Blob substitute]",K3t=["image_url","data","content","b64_json","result","uri","image"]});function MH(e,t){if(CH(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);CH(o)<=t?(i=o,n=s+1):r=s-1}return i}function Y3t(e){return typeof e=="string"?e:"text"in e&&typeof e.text=="string"?e.text:""}function YLe(e,t){return typeof e=="string"?t:{...e,text:t}}function Z3t(e){return e!==null&&typeof e=="object"&&"content"in e&&typeof e.content=="string"}function JLe(e){return e!==null&&typeof e=="object"&&"content"in e&&Array.isArray(e.content)}function XLe(e){return e!==null&&typeof e=="object"&&"parts"in e&&Array.isArray(e.parts)&&e.parts.length>0}function J3t(e,t){let n={...e,content:""},r=SQ(n),i=t-r;if(i<=0)return[];let s=MH(e.content,i);return[{...e,content:s}]}function X3t(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 Q3t(e,t){let{key:n,items:r}=X3t(e);if(n===null||r.length===0)return[];let i=r.map(c=>YLe(c,"")),s=SQ({...e,[n]:i}),o=t-s;if(o<=0)return[];let a=[];for(let c of r){let u=Y3t(c),l=CH(u);if(l<=o)a.push(c),o-=l;else if(a.length===0){let d=MH(u,o);d&&a.push(YLe(c,d));break}else break}return a.length<=0?[]:[{...e,[n]:a}]}function $3t(e,t){if(!e)return[];if(typeof e=="string"){let n=MH(e,t);return n?[n]:[]}return typeof e!="object"?[]:Z3t(e)?J3t(e,t):JLe(e)||XLe(e)?Q3t(e,t):[]}function yQ(e){return e.map(n=>{let r;return n&&typeof n=="object"&&(JLe(n)?r={...n,content:yQ(n.content)}:"content"in n&&zy(n.content)&&(r={...n,content:qE(n.content)}),XLe(n)&&(r={...r??n,parts:yQ(n.parts)}),zy(r)?r=qE(r):zy(n)&&(r=qE(n))),r??n})}function e9t(e,t){if(!Array.isArray(e)||e.length===0)return e;let n=t-2,r=e[e.length-1],i=yQ([r]),s=i[0];return SQ(s)<=n?i:$3t(s,n)}function Gy(e){return e9t(e,ZLe)}function QLe(e){return MH(e,ZLe)}var ZLe,CH,SQ,hP=v(()=>{gQ();ZLe=2e4,CH=e=>new TextEncoder().encode(e).length,SQ=e=>CH(JSON.stringify(e))});function Hp(e){let t=!!ct()?.getOptions().sendDefaultPii;return{...e,recordInputs:e?.recordInputs??t,recordOutputs:e?.recordOutputs??t}}function dA(e,t){return e?`${e}.${t}`:t}function mP(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 BE(e){if(typeof e=="string")return QLe(e);if(Array.isArray(e)){let t=Gy(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 t9t(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 fA(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 t9t(u,t,n)}:typeof a=="function"?a.bind(o):a}}):t}var qp=v(()=>{ul();go();Ka();Xa();hP()});var DH,$Le,LH,e1e,t1e,bQ,EQ,_Q,n1e,zE,pA,gP,r1e,i1e,s1e,o1e,a1e,c1e,TQ,vQ,u1e,l1e,RQ=v(()=>{DH="operation.name",$Le="ai.operationId",LH="ai.prompt",e1e="ai.schema",t1e="ai.response.object",bQ="ai.values",EQ="ai.response.text",_Q="ai.response.toolCalls",n1e="ai.response.finishReason",zE="ai.prompt.messages",pA="ai.prompt.tools",gP="ai.model.id",r1e="ai.response.providerMetadata",i1e="ai.usage.cachedInputTokens",s1e="ai.telemetry.functionId",o1e="ai.usage.completionTokens",a1e="ai.usage.promptTokens",c1e="ai.usage.tokens",TQ="ai.toolCall.name",vQ="ai.toolCall.id",u1e="ai.toolCall.args",l1e="ai.toolCall.result"});function f1e(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 AQ(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 n9t(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 p1e(e,t){let n=n9t(e);for(let r of e){if(r.op==="gen_ai.execute_tool"){let i=r.data[HE];if(typeof i=="string"){let s=n.get(i);s&&(r.data[FLe]=s)}}r.op==="gen_ai.invoke_agent"&&AQ(r,t)}}function wQ(e){return fP.get(e)}function kQ(e){fP.delete(e)}function h1e(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 d1e(e){return e.filter(t=>!!t&&typeof t=="object"&&"role"in t&&"content"in t)}function r9t(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(...d1e(n)),s;if(Array.isArray(r))return s.push(...d1e(r)),s;if(typeof r=="string"&&s.push({role:"user",content:r}),s.length>0)return s}}catch{}return[]}function m1e(e,t){if(typeof t[LH]=="string"&&!t[aa]&&!t[zE]){let n=t[LH],r=r9t(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=BE(s);e.setAttributes({[LH]:a,[aa]:a,[Cc]:o})}}else if(typeof t[zE]=="string")try{let n=JSON.parse(t[zE]);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=BE(i);e.setAttributes({[zE]:o,[aa]:o,[Cc]:s})}}catch{}}function g1e(e){switch(e){case"ai.generateText":case"ai.streamText":case"ai.generateObject":case"ai.streamObject":return OH;case"ai.generateText.doGenerate":return OLe;case"ai.streamText.doStream":return PLe;case"ai.generateObject.doGenerate":return NLe;case"ai.streamObject.doStream":return CLe;case"ai.embed.doEmbed":return MLe;case"ai.embedMany.doEmbed":return DLe;case"ai.rerank.doRerank":return LLe;case"ai.toolCall":return ULe;default:return e.startsWith("ai.stream")?"ai.run":void 0}}var IQ=v(()=>{Xa();qp();mQ();RQ()});function i9t(e){return pQ.has(e)?"invoke_agent":hQ.has(e)?"generate_content":qLe.has(e)?"embeddings":BLe.has(e)?"rerank":e==="ai.toolCall"?"execute_tool":e}function s9t(e){let{data:t,description:n}=vt(e);if(n){if(t[TQ]&&t[vQ]&&n==="ai.toolCall"){l9t(e,t);return}!t[$Le]&&!n.startsWith("ai.")||d9t(e,n,t)}}function o9t(e){if(e.type==="transaction"&&e.spans){let t=new Map;for(let r of e.spans)u9t(r),f1e(r,t);p1e(e.spans,t);let n=e.contexts?.trace;n?.op==="gen_ai.invoke_agent"&&AQ(n,t)}return e}function a9t(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 c9t(e){let t=e[EQ],n=e[_Q],r=e[n1e];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[_Q]}}catch{}if(i.length>0){let s={role:"assistant",parts:i,finish_reason:a9t(r)};e[wLe]=JSON.stringify([s]),delete e[EQ]}}function u9t(e){let{data:t,origin:n}=e;if(n==="auto.vercelai.otel"){if(e.status&&e.status!=="ok"&&(e.status="internal_error"),ca(t,o1e,Ns),ca(t,a1e,di),ca(t,i1e,By),ca(t,"ai.usage.inputTokens",di),ca(t,"ai.usage.outputTokens",Ns),ca(t,c1e,di),ca(t,"ai.response.avgOutputTokensPerSecond","ai.response.avgCompletionTokensPerSecond"),typeof t[di]=="number"&&typeof t[By]=="number"&&(t[di]=t[di]+t[By]),typeof t[di]=="number"){let r=typeof t[Ns]=="number"?t[Ns]:0;t[Nc]=r+t[di]}if(t[pA]&&Array.isArray(t[pA])&&(t[pA]=h1e(t[pA])),t[DH]){let r=i9t(t[DH]);t[oa]=r,delete t[DH]}if(ca(t,zE,aa),c9t(t),ca(t,t1e,"gen_ai.response.object"),ca(t,pA,"gen_ai.request.available_tools"),ca(t,u1e,PH),ca(t,l1e,NH),ca(t,e1e,"gen_ai.request.schema"),ca(t,gP,us),Array.isArray(t[bQ])){let r=t[bQ].map(i=>{try{return JSON.parse(i)}catch{return i}});t[lA]=r.length===1?r[0]:JSON.stringify(r)}f9t(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 l9t(e,t){e.setAttribute(At,"auto.vercelai.otel"),e.setAttribute(zt,"gen_ai.execute_tool"),e.setAttribute(oa,"execute_tool"),ca(t,TQ,HE),ca(t,vQ,aQ);let n=t[aQ];typeof n=="string"&&fP.set(n,e.spanContext()),t[cQ]||e.setAttribute(cQ,"function");let r=t[HE];r&&e.updateName(`execute_tool ${r}`)}function d9t(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[s1e];i&&typeof i=="string"&&e.setAttribute("gen_ai.function_id",i),m1e(e,n),n[gP]&&!n[yo]&&e.setAttribute(yo,n[gP]),e.setAttribute("ai.streaming",t.includes("stream"));let s=g1e(t);if(s&&e.setAttribute(zt,s),pQ.has(t)){i&&typeof i=="string"?e.updateName(`invoke_agent ${i}`):e.updateName("invoke_agent");return}let o=n[gP];if(o){let a=hQ.has(t)?"generate_content":zLe[t];a&&e.updateName(`${a} ${o}`)}}function UH(e){e.on("spanStart",s9t),e.addEventProcessor(Object.assign(o9t,{id:"VercelAiEventProcessor"}))}function f9t(e){let t=e[r1e];if(t)try{let n=JSON.parse(t),r=n.openai??n.azure;if(r&&(df(e,By,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,By,i);let s=n.anthropic.usage?.cache_creation_input_tokens??n.anthropic.cacheCreationInputTokens;df(e,oQ,s)}n.bedrock?.usage&&(df(e,By,n.bedrock.usage.cacheReadInputTokens),df(e,oQ,n.bedrock.usage.cacheWriteInputTokens)),n.deepseek&&(df(e,By,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 y1e=v(()=>{Lo();Oc();Xa();mQ();IQ();RQ()});var Vy,S1e,p9t,b1e,FH=v(()=>{Vy="OpenAI",S1e={"responses.create":{operation:"chat"},"chat.completions.create":{operation:"chat"},"embeddings.create":{operation:"embeddings"},"conversations.create":{operation:"chat"}},p9t=["response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"],b1e=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta",...p9t]});function E1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion"}function _1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="response"}function T1e(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 v1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="conversation"}function R1e(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 w1e(e,t,n){if(jH(e,t.id,t.model,t.created),t.usage&&yP(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 k1e(e,t,n){if(jH(e,t.id,t.model,t.created_at),t.status&&e.setAttributes({[du]:JSON.stringify([t.status])}),t.usage&&yP(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 I1e(e,t){e.setAttributes({[lQ]:t.model,[yo]:t.model}),t.usage&&yP(e,t.usage.prompt_tokens,void 0,t.usage.total_tokens)}function x1e(e,t){let{id:n,created_at:r}=t;e.setAttributes({[uQ]:n,[Jl]:n,[dP]:n}),r&&e.setAttributes({[dQ]:new Date(r*1e3).toISOString()})}function yP(e,t,n,r){t!==void 0&&e.setAttributes({[HLe]:t,[di]:t}),n!==void 0&&e.setAttributes({[jLe]:n,[Ns]:n}),r!==void 0&&e.setAttributes({[Nc]:r})}function jH(e,t,n,r){e.setAttributes({[uQ]:t,[Jl]:t}),e.setAttributes({[lQ]:n,[yo]:n}),e.setAttributes({[dQ]:new Date(r*1e3).toISOString()})}function h9t(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 O1e(e){let t={[us]:e.model??"unknown"};"temperature"in e&&(t[jy]=e.temperature),"top_p"in e&&(t[qy]=e.top_p),"frequency_penalty"in e&&(t[Hy]=e.frequency_penalty),"presence_penalty"in e&&(t[uA]=e.presence_penalty),"stream"in e&&(t[aA]=e.stream),"encoding_format"in e&&(t[vLe]=e.encoding_format),"dimensions"in e&&(t[RLe]=e.dimensions);let n=h9t(e);return n&&(t[dP]=n),t}var xQ=v(()=>{Xa()});function m9t(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 g9t(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&&m9t(r.delta.tool_calls,t)),r.finish_reason&&t.finishReasons.push(r.finish_reason)}function y9t(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(!b1e.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)?g9t(i,r,n):R1e(i)&&y9t(i,r,n,t),yield i}finally{jH(t,r.responseId,r.responseModel,r.responseTimestamp),yP(t,r.promptTokens,r.completionTokens,r.totalTokens),t.setAttributes({[jE]:!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 N1e=v(()=>{ul();Xa();FH();xQ()});function S9t(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 b9t(e,t){let n={[Fy]:"openai",[oa]:t,[At]:"auto.ai.openai"};if(e.length>0&&typeof e[0]=="object"&&e[0]!==null){let r=e[0],i=S9t(r);i&&(n[jp]=i),Object.assign(n,O1e(r))}else n[us]="unknown";return n}function E9t(e,t,n){if(!t||typeof t!="object")return;let r=t;if(E1e(r)){if(w1e(e,r,n),n&&r.choices?.length){let i=r.choices.map(s=>s.message?.content||"");e.setAttributes({[Gs]:JSON.stringify(i)})}}else _1e(r)?(k1e(e,r,n),n&&r.output_text&&e.setAttributes({[Gs]:r.output_text})):T1e(r)?I1e(e,r):v1e(r)&&x1e(e,r)}function C1e(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(lA,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=BE(s);e.setAttribute(aa,o),Array.isArray(s)?e.setAttribute(Cc,s.length):e.setAttribute(Cc,1)}function _9t(e,t,n,r,i){return function(...o){let a=n.operation,c=b9t(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&&C1e(y,l,a),(async()=>{try{let b=await m;return P1e(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 fA(m,g,"auto.ai.openai")}let p,h=lf(f,m=>(p=e.apply(r,o),i.recordInputs&&l&&C1e(m,l,a),p.then(g=>(E9t(m,g,i.recordOutputs),g),g=>{throw Wt(g,{mechanism:{handled:!1,type:"auto.ai.openai",data:{function:t}}}),g})));return fA(p,h,"auto.ai.openai")}}function M1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=dA(t,String(i)),a=S1e[o];return typeof s=="function"&&a?_9t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?M1e(s,o,n):s}})}function HH(e,t){return M1e(e,"",Hp(t))}var D1e=v(()=>{Pi();ul();Lo();_r();My();Xa();qp();FH();N1e();xQ()});var Wy,L1e,OQ=v(()=>{Wy="Anthropic_AI",L1e={"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 U1e(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]:BE(r),[Cc]:i})}function PQ(e){return e&&T9t[e]||"internal_error"}function F1e(e,t){t.error&&(e.setStatus({code:2,message:PQ(t.error.type)}),Wt(t.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}))}function j1e(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 T9t,NQ=v(()=>{ul();Xa();qp();T9t={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 v9t(e,t){return"type"in e&&typeof e.type=="string"&&e.type==="error"?(t.setStatus({code:2,message:PQ(e.error?.type)}),Wt(e.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0):!1}function R9t(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 A9t(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 w9t(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 k9t(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 H1e(e,t,n,r){!(e&&typeof e=="object")||v9t(e,r)||(R9t(e,t),A9t(e,t),w9t(e,t,n),k9t(e,t))}function I9t(e,t,n){t.isRecording()&&(e.responseId&&t.setAttributes({[Jl]:e.responseId}),e.responseModel&&t.setAttributes({[yo]:e.responseModel}),mP(t,e.promptTokens,e.completionTokens,e.cacheCreationInputTokens,e.cacheReadInputTokens),t.setAttributes({[jE]:!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*q1e(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)H1e(i,r,n,t),yield i}finally{r.responseId&&t.setAttributes({[Jl]:r.responseId}),r.responseModel&&t.setAttributes({[yo]:r.responseModel}),mP(t,r.promptTokens,r.completionTokens,r.cacheCreationInputTokens,r.cacheReadInputTokens),t.setAttributes({[jE]:!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 B1e(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=>{H1e(i,r,n,t)}),e.on("message",()=>{I9t(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 z1e=v(()=>{ul();Xa();qp();NQ()});function x9t(e,t,n){let r={[Fy]:"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[jy]=i.temperature),"top_p"in i&&(r[qy]=i.top_p),"stream"in i&&(r[aA]=i.stream),"top_k"in i&&(r[xH]=i.top_k),"frequency_penalty"in i&&(r[Hy]=i.frequency_penalty),"max_tokens"in i&&(r[cA]=i.max_tokens)}else t==="models.retrieve"||t==="models.get"?r[us]=e[0]:r[us]="unknown";return r}function CQ(e,t){let n=j1e(t);U1e(e,n),"prompt"in t&&e.setAttributes({[TLe]:JSON.stringify(t.prompt)})}function O9t(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 P9t(e,t){"id"in t&&"model"in t&&(e.setAttributes({[Jl]:t.id,[yo]:t.model}),"created"in t&&typeof t.created=="number"&&e.setAttributes({[fQ]:new Date(t.created*1e3).toISOString()}),"created_at"in t&&typeof t.created_at=="number"&&e.setAttributes({[fQ]:new Date(t.created_at*1e3).toISOString()}),"usage"in t&&t.usage&&mP(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.cache_creation_input_tokens,t.usage.cache_read_input_tokens))}function N9t(e,t,n){if(!(!t||typeof t!="object")){if("type"in t&&t.type==="error"){F1e(e,t);return}n&&O9t(e,t),P9t(e,t)}}function G1e(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 C9t(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&&CQ(m,a),(async()=>{try{let g=await p;return q1e(g,m,c.recordOutputs??!1)}catch(g){return G1e(g,m,o)}})()));return fA(p,h,"auto.ai.anthropic")}else return Uo(f,p=>{try{c.recordInputs&&a&&CQ(p,a);let h=t.apply(n,r);return B1e(h,p,c.recordOutputs??!1)}catch(h){return G1e(h,p,o)}})}function M9t(e,t,n,r,i){return new Proxy(e,{apply(s,o,a){let c=n.operation,u=x9t(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 C9t(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&&CQ(g,d),h.then(y=>(N9t(g,y,i.recordOutputs),y),y=>{throw Wt(y,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:t}}}),y})));return fA(h,m,"auto.ai.anthropic")}})}function V1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=dA(t,String(i)),a=L1e[o];return typeof s=="function"&&a?M9t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?V1e(s,o,n):s}})}function qH(e,t){return V1e(e,"",Hp(t))}var W1e=v(()=>{ul();Lo();My();Xa();qp();OQ();z1e();NQ()});var Ky,K1e,Y1e,MQ,Z1e,DQ=v(()=>{Ky="Google_GenAI",K1e={"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}},Y1e="google_genai",MQ="chats.create",Z1e="chat"});function D9t(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 L9t(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 U9t(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 F9t(e,t,n,r){!e||D9t(e,r)||(L9t(e,t),U9t(e,t,n))}async function*J1e(e,t,n){let r={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(let i of e)F9t(i,r,n,t),yield i}finally{let i={[jE]:!0};r.responseId&&(i[Jl]=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 X1e=v(()=>{ul();Xa()});function hA(e,t="user"){return typeof e=="string"?[{role:t,content:e}]:Array.isArray(e)?e.flatMap(n=>hA(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 Q1e=v(()=>{});function $1e(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 j9t(e){let t={};return"temperature"in e&&typeof e.temperature=="number"&&(t[jy]=e.temperature),"topP"in e&&typeof e.topP=="number"&&(t[qy]=e.topP),"topK"in e&&typeof e.topK=="number"&&(t[xH]=e.topK),"maxOutputTokens"in e&&typeof e.maxOutputTokens=="number"&&(t[cA]=e.maxOutputTokens),"frequencyPenalty"in e&&typeof e.frequencyPenalty=="number"&&(t[Hy]=e.frequencyPenalty),"presencePenalty"in e&&typeof e.presencePenalty=="number"&&(t[uA]=e.presencePenalty),t}function H9t(e,t,n){let r={[Fy]:Y1e,[oa]:e,[At]:"auto.ai.google_genai"};if(t){if(r[us]=$1e(t,n),"config"in t&&typeof t.config=="object"&&t.config){let i=t.config;if(Object.assign(r,j9t(i)),"tools"in i&&Array.isArray(i.tools)){let s=i.tools.flatMap(o=>o.functionDeclarations);r[jp]=JSON.stringify(s)}}}else r[us]=$1e({},n);return r}function eUe(e,t,n){if(n){let i=t.contents;i!=null&&e.setAttribute(lA,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(...hA(t.config.systemInstruction,"system")),"history"in t&&r.push(...hA(t.history,"user")),"contents"in t&&r.push(...hA(t.contents,"user")),"message"in t&&r.push(...hA(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(Gy(s))})}}function q9t(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 tUe(e,t,n,r,i){let s=t===MQ,o=n.operation==="embeddings";return new Proxy(e,{apply(a,c,u){let l=n.operation,d=u[0],f=H9t(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&&eUe(h,d,o);let m=await a.apply(r,u);return J1e(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&&eUe(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&&q9t(h,m,i.recordOutputs)})))}})}function LQ(e,t="",n){return new Proxy(e,{get:(r,i,s)=>{let o=Reflect.get(r,i,s),a=dA(t,String(i)),c=K1e[a];if(typeof o=="function"&&c){if(a===MQ){let u=tUe(o,a,c,r,n);return function(...d){let f=u(...d);return f&&typeof f=="object"?LQ(f,Z1e,n):f}}return tUe(o,a,c,r,n)}return typeof o=="function"?o.bind(r):o&&typeof o=="object"?LQ(o,a,n):o}})}function BH(e,t){return LQ(e,"",Hp(t))}var nUe=v(()=>{ul();Lo();My();oH();Xa();hP();qp();DQ();X1e();Q1e()});var zH,GE,rUe,GH=v(()=>{zH="LangChain",GE="auto.ai.langchain",rUe={human:"user",ai:"assistant",assistant:"assistant",system:"system",function:"function",tool:"tool"}});function Rm(e){if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function mA(e){if(Array.isArray(e))try{let t=e.map(n=>n&&typeof n=="object"&&zy(n)?qE(n):n);return JSON.stringify(t)}catch{return String(e)}return Rm(e)}function SP(e){let t=e.toLowerCase();return rUe[t]??t}function iUe(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 UQ(e){if(!(!e||Array.isArray(e)))return e.invocation_params}function bP(e){return e.map(t=>{let n=t._getType;if(typeof n=="function"){let i=n.call(t);return{role:SP(i),content:mA(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"?iUe(s):"user";return{role:SP(o),content:mA(t.kwargs?.content)}}if(t.type){let i=String(t.type).toLowerCase();return{role:SP(i),content:mA(t.content)}}if(t.role)return{role:SP(String(t.role)),content:mA(t.content)};let r=t.constructor?.name;return r&&r!=="Object"?{role:SP(iUe(r)),content:mA(t.content)}:{role:"user",content:mA(t.content)}})}function B9t(e,t,n){let r={},i="kwargs"in e?e.kwargs:void 0,s=t?.temperature??n?.ls_temperature??i?.temperature;fl(r,jy,s);let o=t?.max_tokens??n?.ls_max_tokens??i?.max_tokens;fl(r,cA,o);let a=t?.top_p??i?.top_p;fl(r,qy,a);let c=t?.frequency_penalty;fl(r,Hy,c);let u=t?.presence_penalty;return fl(r,uA,u),t&&"stream"in t&&Xl(r,aA,!!t.stream),r}function sUe(e,t,n,r,i){return{[Fy]:Rm(e??"langchain"),[oa]:"chat",[us]:Rm(t),[At]:GE,...B9t(n,r,i)}}function oUe(e,t,n,r,i){let s=i?.ls_provider,o=r?.model??i?.ls_model_name??"unknown",a=sUe(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){Xl(a,Cc,t.length);let c=t.map(u=>({role:"user",content:u}));Xl(a,aa,Rm(c))}return a}function aUe(e,t,n,r,i){let s=i?.ls_provider??e.id?.[2],o=r?.model??i?.ls_model_name??"unknown",a=sUe(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){let c=bP(t.flat()),{systemInstructions:u,filteredMessages:l}=dl(c);u&&Xl(a,ll,u);let d=Array.isArray(l)?l.length:0;Xl(a,Cc,d);let f=Gy(l);Xl(a,aa,Rm(f))}return a}function z9t(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&&Xl(t,Fo,Rm(n))}function G9t(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,ILe,r.cache_creation_input_tokens),r.cache_read_input_tokens!==void 0&&fl(t,xLe,r.cache_read_input_tokens)}}function cUe(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&&Xl(n,du,Rm(u)),z9t(e.generations,n),t){let l=e.generations.flat().map(d=>d.text??d.message?.content).filter(d=>typeof d=="string");l.length>0&&Xl(n,Gs,Rm(l))}}G9t(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&&Xl(n,yo,o);let a=r?.id??s?.id;a&&Xl(n,Jl,a);let c=r?.stop_reason??s?.response_metadata?.finish_reason;return c&&Xl(n,ALe,Rm(c)),n}var Xl,fl,VH=v(()=>{Lo();Xa();gQ();hP();qp();GH();Xl=(e,t,n)=>{n!=null&&(e[t]=n)},fl=(e,t,n)=>{let r=Number(n);Number.isNaN(r)||(e[t]=r)}});function WH(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=UQ(d),m=oUe(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=UQ(d),m=aUe(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=cUe(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:`${GE}.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:`${GE}.chain_error_handler`}})},handleToolStart(o,a,c,u){let l=o.name||"unknown_tool",d={[At]:GE,[HE]:l};t&&(d[PH]=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({[NH]: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:`${GE}.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 uUe=v(()=>{ul();Lo();My();Xa();qp();GH();VH()});var KH,FQ,jQ=v(()=>{KH="LangGraph",FQ="auto.ai.langgraph"});function V9t(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 W9t(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 K9t(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 lUe(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 dUe(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=V9t(o);a&&e.setAttribute(Fo,JSON.stringify(a));let c=bP(o);e.setAttribute(Gs,JSON.stringify(c));let u=0,l=0,d=0;for(let f of o){let p=W9t(f);u+=p.inputTokens,l+=p.outputTokens,d+=p.totalTokens,K9t(e,f)}u>0&&e.setAttribute(di,u),l>0&&e.setAttribute(Ns,l),d>0&&e.setAttribute(Nc,d)}var fUe=v(()=>{Xa();VH()});function HQ(e,t){return new Proxy(e,{apply(n,r,i){return lf({op:"gen_ai.create_agent",name:"create_agent",attributes:{[At]:FQ,[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(sQ,a.name),s.updateName(`create_agent ${a.name}`));let c=o.invoke;return c&&typeof c=="function"&&(o.invoke=Y9t(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 Y9t(e,t,n,r){return new Proxy(e,{apply(i,s,o){return lf({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[At]:FQ,[zt]:OH,[oa]:"invoke_agent"}},async a=>{try{let c=n?.name;c&&typeof c=="string"&&(a.setAttribute(kLe,c),a.setAttribute(sQ,c),a.updateName(`invoke_agent ${c}`));let d=(o.length>1?o[1]:void 0)?.configurable?.thread_id;d&&typeof d=="string"&&a.setAttribute(dP,d);let f=lUe(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=bP(m),{systemInstructions:b,filteredMessages:S}=dl(y);b&&a.setAttribute(ll,b);let E=Gy(S),_=Array.isArray(S)?S.length:0;a.setAttributes({[aa]:JSON.stringify(E),[Cc]:_})}let g=await Reflect.apply(i,s,o);return h&&dUe(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 YH(e,t){return e.compile=HQ(e.compile,Hp(t)),e}var pUe=v(()=>{ul();Lo();My();Xa();hP();qp();VH();jQ();fUe()});function EP(e){if(e!==void 0)return e>=400&&e<500?"warning":e>=500?"error":void 0}var hUe=v(()=>{});function _P(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 mUe=v(()=>{});function SUe(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 bUe(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=CCe(o[2]),p=o[5]==="native";!f&&o[5]&&!p&&(f=o[5]);let h=f?Z9t(f):void 0;return{filename:h??f,module:h&&e?.(h),function:u,lineno:gUe(o[3]),colno:gUe(o[4]),in_app:SUe(f||"",p)}}if(i.match(t))return{filename:i}}}function qQ(e){return[90,bUe(e)]}function gUe(e){return parseInt(e||"",10)||void 0}function Z9t(e){try{return decodeURI(e)}catch{return}}var EUe=v(()=>{MR()});var fu,_Ue=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(()=>{WR();iMe();My();Em();vX();RX();sH();Lo();ul();go();XJ();zR();NDe();gH();LX();CDe();MDe();ZO();oH();Oc();KR();UDe();FDe();HDe();qDe();KDe();JX();JDe();QDe();iLe();uLe();yLe();bLe();ELe();_Le();UX();y1e();IQ();D1e();FH();W1e();OQ();nUe();DQ();uUe();GH();pUe();jQ();hUe();Wa();Ka();_r();Lp();nf();hLe();mUe();MR();EUe();vy();Yj();_m();VO();LDe();_Ue();Iy();Pj();Ey()});function rt(e,t,n){return n?EYt(e,t,n):bYt(e,t)}function bYt(e,t){return Object.assign(n=>{let r=TP[e];if(r)return n&&r.setConfig(n),r;let i=t(n);return TP[e]=i,(0,BQ.registerInstrumentations)({instrumentations:[i]}),i},{id:e})}function EYt(e,t,n){return Object.assign(r=>{let i=n(r),s=TP[e];if(s)return s.setConfig(i),s;let o=new t(i);return TP[e]=o,(0,BQ.registerInstrumentations)({instrumentations:[o]}),o},{id:e})}function vP(e){let t=!1,n=[];if(!_Yt(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 _Yt(e){return typeof e._wrap=="function"}var BQ,TP,ZH=v(()=>{BQ=Re(Jt(),1),TP={}});var Qt,ff=v(()=>{Qt=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var JH,TUe=v(()=>{JH="@sentry/instrumentation-http"});function vUe(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 RUe=v(()=>{st();ff()});import{subscribe as TYt}from"node:diagnostics_channel";function kUe(e,t){zs(e,"_startSpanCallback",new WeakRef(t))}function RYt(e,{ignoreRequestBody:t,maxRequestBodySize:n,sessions:r,sessionFlushingDelayMS:i}){let s=e.emit;if(wUe.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&&Z.log(GQ,"Handling incoming request");let d=vn().clone(),f=u[1],p=u[2],h=lP(f),m=f.ip||f.socket?.remoteAddress,g=f.url||"/";n!=="none"&&!t?.(g,f)&&vUe(f,d,n,GQ),d.setSDKProcessingMetadata({normalizedRequest:h,ipAddress:m});let y=(f.method||"GET").toUpperCase(),b=vm(g),S=`${y} ${b}`;return d.setTransactionName(S),r&&l&&AYt(l,{requestIsolationScope:d,response:p,sessionFlushingDelayMS:i??6e4}),zO(d,()=>{let E={traceId:Ya(),sampleRand:Do(),propagationSpanId:Za()};Fn().setPropagationContext({...E}),d.setPropagationContext({...E});let _=Qd.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)})})}});wUe.add(o),e.emit=o}function AYt(e,{requestIsolationScope:t,response:n,sessionFlushingDelayMS:r}){t.setSDKProcessingMetadata({requestSession:{status:"ok"}}),n.once("close",()=>{let i=t.getScopeData().sdkProcessingMetadata.requestSession;if(e&&i){Qt&&Z.log(`Recorded request session with status: ${i.status}`);let s=new Date;s.setSeconds(0,0);let o=s.toISOString(),a=zQ.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};zQ.set(e,u);let l=()=>{clearTimeout(f),d(),zQ.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 AUe,GQ,zQ,wUe,vYt,RP,XH=v(()=>{Me();st();ff();RUe();AUe=il("sentry_http_server_instrumented"),GQ="Http.Server",zQ=new Map,wUe=new WeakSet;vYt=((e={})=>{let t={sessions:e.sessions??!0,sessionFlushingDelayMS:e.sessionFlushingDelayMS??6e4,maxRequestBodySize:e.maxRequestBodySize??"medium",ignoreRequestBody:e.ignoreRequestBody};return{name:GQ,setupOnce(){TYt("http.server.request.start",(r=>{RYt(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`.")}}}),RP=vYt});import{errorMonitor as wYt}from"node:events";function IYt(e){return e.headers["next-router-prefetch"]==="1"}function xYt(e){let t=vm(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 OYt(e,{ignoreStaticAssets:t,ignoreIncomingRequests:n}){if((0,Am.isTracingSuppressed)(Ve.active()))return!0;let r=e.url,i=e.method?.toUpperCase();return!!(i==="OPTIONS"||i==="HEAD"||!r||t&&i==="GET"&&xYt(r)||n?.(r,e))}function PYt(e){let t=NYt(e.headers);return t==null?{}:CYt(e.headers)?{"http.request_content_length":t}:{"http.request_content_length_uncompressed":t}}function NYt(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}function CYt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}function MYt(e,t){let{socket:n}=e,{statusCode:r,statusMessage:i}=t,s={[lm]:r,[yE]:r,"http.status_text":i?.toUpperCase()},o=(0,Am.getRPCMetadata)(Ve.active());if(n){let{localAddress:a,localPort:c,remoteAddress:u,remotePort:l}=n;s[l7]=a,s[d7]=c,s[u7]=u,s["net.peer.port"]=l}if(s[yE]=r,s["http.status_text"]=(i||"").toUpperCase(),o?.type===Am.RPCType.HTTP&&o.route!==void 0){let a=o.route;s[dm]=a}return s}function DYt(e,t){return t.some(n=>{if(typeof n=="number")return n===e;let[r,i]=n;return e>=r&&e<=i})}var Am,IUe,kYt,AP,VQ=v(()=>{Me();Am=Re(pr(),1);Nn();st();ff();XH();IUe="Http.ServerSpans",kYt=((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:IUe,setup(c){typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__||c.on("httpServerRequest",(u,l,d)=>{let f=u,p=l;kUe(f,m=>{if(OYt(f,{ignoreStaticAssets:t,ignoreIncomingRequests:n}))return Qt&&Z.log(IUe,"Skipping span creation for incoming request",f.url),m();let g=d.url||f.url||"/",y=uP(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:vm(g),N=`${k} ${P}`,C=A.startSpan(N,{kind:$r.SERVER,attributes:{[zt]:"http.server",[At]:"auto.http.otel.http","sentry.http.prefetch":IYt(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",...PYt(f),...EH(d.headers||{},c.getOptions().sendDefaultPii??!1)}});s?.(C,f),o?.(C,p),a?.(C,f,p),i?.(C,f,p);let L={type:Am.RPCType.HTTP,span:C};return Ve.with((0,Am.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=MYt(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(ym(p.statusCode))}),p.on(wYt,()=>{let $=ym(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"&&DYt(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."))}}}),AP=kYt});function wP(e,t){if(!e)return t;let n=PE(e),r=PE(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 Vj(a)}var WQ=v(()=>{st()});function xUe(e,t){let n=LYt(e),r=t?.statusCode,i=EP(r);Zl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function QH(e,t){let n=$H(e),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=FE(n,r,t)?oA({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(gA,"Added sentry-trace header to outgoing request")}catch(l){Qt&&Z.error(gA,"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(gA,"Added traceparent header to outgoing request")}catch(l){Qt&&Z.error(gA,"Failed to add traceparent header to outgoing request:",Mp(l)?l.message:"Unknown error")}if(a){let l=e.getHeader("baggage"),d=wP(l,a);if(d)try{e.setHeader("baggage",d),Qt&&Z.log(gA,"Added baggage header to outgoing request")}catch(f){Qt&&Z.error(gA,"Failed to add baggage header to outgoing request:",Mp(f)?f.message:"Unknown error")}}}}function LYt(e){try{let t=e.getHeader("host")||e.host,n=new URL(e.path,`${e.protocol}//${t}`),r=Ly(n.toString()),i={url:Uy(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 OUe(e){return{method:e.method,protocol:e.protocol,host:e.host,hostname:e.host,path:e.path,headers:e.getHeaders()}}function $H(e){let t=e.getHeader("host")||e.host,n=e.protocol,r=e.path;return`${n}//${t}${r}`}var gA,PUe=v(()=>{st();ff();WQ();gA="@sentry/instrumentation-http"});import{subscribe as KQ,unsubscribe as YQ}from"node:diagnostics_channel";import{errorMonitor as NUe}from"node:events";function UYt(e){let t=$H(e),[n,r]=YX(uP(t),"client","auto.http.otel.http",e),i=e.getHeader("user-agent");return[n,{[zt]:"http.client","otel.kind":"CLIENT",[C7]:i,[py]:t,"http.url":t,"http.method":e.method,"http.target":e.path||"/","net.peer.name":e.host,"http.host":e.getHeader("host"),...r}]}function FYt(e){let{statusCode:t,statusMessage:n,httpVersion:r,socket:i}=e,s=r.toUpperCase()!=="QUIC"?"ip_tcp":"ip_udp",o={[lm]:t,[k7]:r,"http.flavor":r,[I7]:s,"net.transport":s,"http.status_text":n?.toUpperCase(),"http.status_code":t,...jYt(e)};if(i){let{remoteAddress:a,remotePort:c}=i;o[A7]=a,o[w7]=c,o["net.peer.ip"]=a,o["net.peer.port"]=c}return o}function jYt(e){let t=HYt(e.headers);return t==null?{}:qYt(e.headers)?{[p7]:t}:{[h7]:t}}function HYt(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 qYt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}var CUe,kP,VE,ZQ=v(()=>{Me();CUe=Re(pr(),1),kP=Re(Jt(),1);Nn();st();ff();TUe();PUe();VE=class extends kP.InstrumentationBase{constructor(t={}){super(JH,Cn,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,KQ("http.client.response.finish",n),KQ("http.client.request.error",r),(this.getConfig().propagateTraceInOutgoingRequests||this.getConfig().createSpansForOutgoingRequests)&&KQ("http.client.request.created",i)),a),o=()=>{YQ("http.client.response.finish",n),YQ("http.client.request.error",r),YQ("http.client.request.created",i)};return[new kP.InstrumentationNodeModuleDefinition("http",["*"],s,o),new kP.InstrumentationNodeModuleDefinition("https",["*"],s,o)]}_startSpanForOutgoingRequest(t){let n=t.once,[r,i]=UYt(t),s=cH({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=FYt(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}:ym(u.statusCode);c(p)};u.on("end",()=>{d()}),u.on(NUe,f=>{this._diag.debug("outgoingRequest on response error()",f),d(!0)})}),t.on("close",()=>{c({code:as.UNSET})}),t.on(NUe,u=>{this._diag.debug("outgoingRequest on request error()",u),c({code:as.ERROR})}),s}_onOutgoingRequestFinish(t,n){Qt&&Z.log(JH,"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&&xUe(t,n)}_onOutgoingRequestCreated(t){Qt&&Z.log(JH,"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,()=>{QH(t,this._propagationDecisionMap)})}else i&&QH(t,this._propagationDecisionMap)}else i&&QH(t,this._propagationDecisionMap)}_shouldIgnoreOutgoingRequest(t){if((0,CUe.isTracingSuppressed)(Ve.active()))return!0;let n=this.getConfig().ignoreOutgoingRequests;if(!n)return!1;let r=OUe(t),i=$H(t);return n(i,r)}}});var MUe,BYt,DUe,LUe=v(()=>{ZH();XH();VQ();ZQ();MUe="Http",BYt=rt(`${MUe}.sentry`,e=>new VE(e)),DUe=(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=RP(t),s=AP(n),o=e.spans??!1,a=e.disableIncomingRequestSpans??!1,c=o&&!a;return{name:MUe,setup(u){c&&s.setup(u)},setupOnce(){i.setupOnce(),BYt(r)},processEvent(u){return s.processEvent(u)}}}});var pf,wm,IP,yA=v(()=>{st();pf=ZJ(process.versions.node),wm=pf.major,IP=pf.minor});function UUe(e,t){let n=tq(e.origin,e.path),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=FE(n,r,t)?oA({propagateTraceparent:i}):void 0;if(!s)return;let{"sentry-trace":o,baggage:a,traceparent:c}=s,u=Array.isArray(e.headers)?e.headers:GYt(e.headers);if(XQ(u,JQ),XQ(u,eq),i&&XQ(u,zYt),!(QQ(u,JQ)!==-1)){o&&u.push(JQ,o),c&&QQ(u,"traceparent")===-1&&u.push("traceparent",c);let d=QQ(u,eq);if(a&&d===-1)u.push(eq,a);else if(a){let f=u[d+1],p=wP(f,a);p&&(u[d+1]=p)}}Array.isArray(e.headers)||(e.headers=VYt(u))}function GYt(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 VYt(e){let t=[];for(let n=0;nTy(n,t)):!1}function c3t(e,t){if(!t?.length)return!1;let n=e.transaction;return n?Ty(n,t):!1}function u3t(e,t){if(!t?.length)return!1;let n=TH(e);return n?Ty(n,t):!1}function l3t(e,t){if(!t?.length)return!0;let n=TH(e);return n?Ty(n,t):!0}function d3t(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 TH(e){try{let n=[...e.exception?.values??[]].reverse().find(r=>r.mechanism?.parent_id===void 0&&r.stacktrace?.frames?.length)?.stacktrace?.frames;return n?d3t(n):null}catch{return Fe&&Z.error(`Cannot extract url for event ${Ry(e)}`),null}}function f3t(e){return e.exception?.values?.length?!e.message&&!e.exception.values.some(t=>t.stacktrace||t.type&&t.type!=="Error"||t.value):!1}var i3t,s3t,QX,vH,eLe=v(()=>{Pi();_r();HX();Lp();vy();i3t=[/^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$/],s3t="EventFilters",QX=(e={})=>{let t;return{name:s3t,setup(n){let r=n.getOptions();t=$De(e,r)},processEvent(n,r,i){if(!t){let s=i.getOptions();t=$De(e,s)}return o3t(n,t)?null:n}}},vH=((e={})=>({...QX(e),name:"InboundFilters"}))});function rLe(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=$X(e,t,r,s.originalException,n,i.exception.values,o,0))}function $X(e,t,n,r,i,s,o,a){if(s.length>=n+1)return s;let c=[...s];if(Dp(r[i],Error)){tLe(o,a,r);let u=e(t,r[i]),l=c.length;nLe(u,i,l,a),c=$X(e,t,n,r[i],i,[u,...c],u,l)}return iLe(r)&&r.errors.forEach((u,l)=>{if(Dp(u,Error)){tLe(o,a,r);let d=e(t,u),f=c.length;nLe(d,`errors[${l}]`,f,a),c=$X(e,t,n,u,i,[d,...c],d,f)}}),c}function iLe(e){return Array.isArray(e.errors)}function tLe(e,t,n){e.mechanism={handled:!0,type:"auto.core.linked_errors",...iLe(n)&&{is_exception_group:!0},...e.mechanism,exception_id:t}}function nLe(e,t,n,r){e.mechanism={handled:!0,...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}var sLe=v(()=>{Ka()});var p3t,h3t,m3t,g3t,RH,oLe=v(()=>{sLe();GX();p3t="cause",h3t=5,m3t="LinkedErrors",g3t=((e={})=>{let t=e.limit||h3t,n=e.key||p3t;return{name:m3t,preprocessEvent(r,i,s){let o=s.getOptions();rLe(zX,o.stackParser,n,t,r,i)}}}),RH=g3t});function aLe(e){let t={},n=0;for(;n{});function uLe(e){let t={};for(let s of Object.keys(e))t[s.toLowerCase()]=e[s];return eQ.map(s=>{let o=t[s.toLowerCase()],a=Array.isArray(o)?o.join(";"):o;return s==="Forwarded"?y3t(a):a?.split(",").map(c=>c.trim())}).reduce((s,o)=>o?s.concat(o):s,[]).find(s=>s!==null&&S3t(s))||null}function y3t(e){if(!e)return null;for(let t of e.split(";"))if(t.startsWith("for="))return t.slice(4);return null}function S3t(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 eQ,lLe=v(()=>{eQ=["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 T3t(e,t,n,r){if(e.request={...e.request,...v3t(t,r)},r.ip){let i=t.headers&&uLe(t.headers)||n.ipAddress;i&&(e.user={...e.user,ip_address:i})}}function v3t(e,t){let n={},r={...e.headers};if(t.headers&&(n.headers=r,t.cookies||delete r.cookie,t.ip||eQ.forEach(i=>{delete r[i]})),n.method=e.method,t.url&&(n.url=e.url),t.cookies){let i=e.cookies||(r?.cookie?aLe(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 b3t,E3t,_3t,AH,dLe=v(()=>{cLe();lLe();b3t={cookies:!0,data:!0,headers:!0,query_string:!0,url:!0},E3t="RequestData",_3t=((e={})=>{let t={...b3t,...e.include};return{name:E3t,processEvent(n,r,i){let{sdkProcessingMetadata:s={}}=n,{normalizedRequest:o,ipAddress:a}=s,c={...t,ip:t.ip??i.getOptions().sendDefaultPii};return o&&T3t(n,o,{ipAddress:a},c),n}}}),AH=_3t});function fLe(e){let t="console";DR(t,e),LR(t,R3t)}function R3t(){"console"in qt&&FO.forEach(function(e){e in qt.console&&BJ(qt.console,e,function(t){return CR[e]=t,function(...n){UR("console",{args:n,level:e}),CR[e]?.apply(qt.console,n)}})})}var pLe=v(()=>{_r();nf();Wa();Lj()});function hLe(e){return e==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(e)?e:"log"}var mLe=v(()=>{});function w3t(e){let t=e.length>1024?`${e.slice(-1024)}`:e,n=A3t.exec(t);return n?n.slice(1):[]}function tQ(e){let t=w3t(e),n=t[0]||"",r=t[1];return!n&&!r?".":(r&&(r=r.slice(0,r.length-1)),n+r)}var A3t,gLe=v(()=>{A3t=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/});function iQ(e,t){return!e||typeof e!="function"?(Fe&&Z.warn("instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance"),e):rQ(e,{requireParentSpan:!0,...t})}function rQ(e,t,n){if(e[nQ])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&&SLe(a,r,t),a},get(i,s){let o=i[s];return typeof s!="string"||typeof o!="function"?o:s==="unsafe"||s==="file"?x3t(o,i,r,t):s==="begin"||s==="reserve"?O3t(o,i,r,t):o}});return n?r[wH]=n:D3t(e,r),e[nQ]=!0,r[nQ]=!0,r}function x3t(e,t,n,r){return function(...i){let s=Reflect.apply(e,t,i);return s&&typeof s=="object"&&"handle"in s&&SLe(s,n,r),s}}function O3t(e,t,n,r){return function(...i){let s=n[wH];if(!(typeof i[i.length-1]=="function")){let l=Reflect.apply(e,t,i);return l&&typeof l.then=="function"?l.then(d=>rQ(d,r,s)):l}let a=i.length===1?i[0]:i[1],c=function(l){let d=rQ(l,r,s);return a(d)},u=i.length===1?[c]:[i[0],c];return Reflect.apply(e,t,u)}}function SLe(e,t,n){if(e.handle?.__sentryWrapped)return;e[I3t]=!0;let r=e.handle,i=async function(...s){if(!P3t(n))return r.apply(this,s);let o=N3t(e.strings),a=C3t(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[wH]:void 0;if(M3t(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{yLe(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"),yLe(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 P3t(e){return Yl()!==void 0||!e.requireParentSpan}function N3t(e){if(e?.length)return e.length===1?e[0]||void 0:e.reduce((t,n,r)=>r===0?n:`${t}$${r}${n}`,"")}function C3t(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();My();k3t=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,wH=Symbol("sentryPostgresConnectionContext"),nQ=Symbol.for("sentry.instrumented.postgresjs"),I3t=Symbol.for("sentry.query.from.instrumented.sql")});function U3t(e,t){let n={category:"console",data:{arguments:t,logger:"console"},level:hLe(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;Zl(n,{input:t,level:e})}function ELe(e){return"util"in qt&&typeof qt.util.format=="function"?qt.util.format(...e):WJ(e," ")}var L3t,kH,_Le=v(()=>{XX();go();pLe();_r();mLe();vy();Wa();L3t="Console",kH=(e={})=>{let t=new Set(e.levels||FO);return{name:L3t,setup(n){fLe(({args:r,level:i})=>{ct()!==n||!t.has(i)||U3t(i,r)})}}}});var F3t,j3t,sQ,TLe=v(()=>{go();Lo();F3t="ConversationId",j3t=(()=>({name:F3t,setup(e){e.on("spanStart",t=>{let n=Fn().getScopeData(),r=vn().getScopeData(),i=n.conversationId||r.conversationId;i&&t.setAttribute(lX,i)})}})),sQ=j3t});function IH(e,t={},n=Fn()){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 vLe=v(()=>{go()});var RLe,Fy,us,aA,jy,cA,Hy,uA,qy,xH,ALe,wLe,du,yo,Jl,kLe,di,Ns,Nc,oa,Cc,aa,ILe,ll,Gs,jp,jE,Fo,oQ,xLe,dP,OLe,PLe,aQ,By,OH,NLe,CLe,MLe,DLe,lA,LLe,ULe,FLe,jLe,HE,cQ,uQ,PH,NH,HLe,lQ,dQ,fQ,qLe,BLe,pQ,Xa=v(()=>{RLe="gen_ai.prompt",Fy="gen_ai.system",us="gen_ai.request.model",aA="gen_ai.request.stream",jy="gen_ai.request.temperature",cA="gen_ai.request.max_tokens",Hy="gen_ai.request.frequency_penalty",uA="gen_ai.request.presence_penalty",qy="gen_ai.request.top_p",xH="gen_ai.request.top_k",ALe="gen_ai.request.encoding_format",wLe="gen_ai.request.dimensions",du="gen_ai.response.finish_reasons",yo="gen_ai.response.model",Jl="gen_ai.response.id",kLe="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",ILe="gen_ai.output.messages",ll="gen_ai.system_instructions",Gs="gen_ai.response.text",jp="gen_ai.request.available_tools",jE="gen_ai.response.streaming",Fo="gen_ai.response.tool_calls",oQ="gen_ai.agent.name",xLe="gen_ai.pipeline.name",dP="gen_ai.conversation.id",OLe="gen_ai.usage.cache_creation_input_tokens",PLe="gen_ai.usage.cache_read_input_tokens",aQ="gen_ai.usage.input_tokens.cache_write",By="gen_ai.usage.input_tokens.cached",OH="gen_ai.invoke_agent",NLe="gen_ai.generate_text",CLe="gen_ai.stream_text",MLe="gen_ai.generate_object",DLe="gen_ai.stream_object",lA="gen_ai.embeddings.input",LLe="gen_ai.embeddings",ULe="gen_ai.embeddings",FLe="gen_ai.rerank",jLe="gen_ai.execute_tool",HE="gen_ai.tool.name",cQ="gen_ai.tool.call.id",uQ="gen_ai.tool.type",PH="gen_ai.tool.input",NH="gen_ai.tool.output",HLe="gen_ai.tool.description",lQ="openai.response.id",dQ="openai.response.model",fQ="openai.response.timestamp",qLe="openai.usage.completion_tokens",BLe="openai.usage.prompt_tokens",pQ="anthropic.response.timestamp"});var fP,hQ,mQ,zLe,GLe,VLe,gQ=v(()=>{fP=new Map,hQ=new Set(["ai.generateText","ai.streamText","ai.generateObject","ai.streamObject"]),mQ=new Set(["ai.generateText.doGenerate","ai.streamText.doStream","ai.generateObject.doGenerate","ai.streamObject.doStream"]),zLe=new Set(["ai.embed.doEmbed","ai.embedMany.doEmbed"]),GLe=new Set(["ai.rerank.doRerank"]),VLe={"ai.embed.doEmbed":"embeddings","ai.embedMany.doEmbed":"embeddings","ai.rerank.doRerank":"rerank"}});function zy(e){return!e||typeof e!="object"?!1:q3t(e)||KLe(e)||H3t(e)||YLe(e)||ZLe(e)||B3t(e)||z3t(e)||G3t(e)||V3t(e)||W3t(e)||K3t(e)||Y3t(e)}function H3t(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 q3t(e){return"type"in e&&typeof e.type=="string"&&"source"in e&&zy(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 YLe(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 ZLe(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 B3t(e){return"media_type"in e&&typeof e.media_type=="string"&&"data"in e}function z3t(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 G3t(e){return"type"in e&&e.type==="image"&&"image"in e&&typeof e.image=="string"&&!e.image.startsWith("http://")&&!e.image.startsWith("https://")}function V3t(e){return"type"in e&&(e.type==="blob"||e.type==="base64")}function W3t(e){return"b64_json"in e}function K3t(e){return"type"in e&&"result"in e&&e.type==="image_generation"}function Y3t(e){return"uri"in e&&typeof e.uri=="string"&&e.uri.startsWith("data:")}function qE(e){let t={...e};zy(t.source)&&(t.source=qE(t.source)),KLe(e)&&(t.inlineData={...e.inlineData,data:pP}),WLe(e)&&(t.image_url={...e.image_url,url:pP}),YLe(e)&&(t.input_audio={...e.input_audio,data:pP}),ZLe(e)&&(t.file={...e.file,file_data:pP});for(let n of Z3t)typeof t[n]=="string"&&(t[n]=pP);return t}var pP,Z3t,yQ=v(()=>{pP="[Blob substitute]",Z3t=["image_url","data","content","b64_json","result","uri","image"]});function MH(e,t){if(CH(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);CH(o)<=t?(i=o,n=s+1):r=s-1}return i}function J3t(e){return typeof e=="string"?e:"text"in e&&typeof e.text=="string"?e.text:""}function JLe(e,t){return typeof e=="string"?t:{...e,text:t}}function X3t(e){return e!==null&&typeof e=="object"&&"content"in e&&typeof e.content=="string"}function QLe(e){return e!==null&&typeof e=="object"&&"content"in e&&Array.isArray(e.content)}function $Le(e){return e!==null&&typeof e=="object"&&"parts"in e&&Array.isArray(e.parts)&&e.parts.length>0}function Q3t(e,t){let n={...e,content:""},r=bQ(n),i=t-r;if(i<=0)return[];let s=MH(e.content,i);return[{...e,content:s}]}function $3t(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 e9t(e,t){let{key:n,items:r}=$3t(e);if(n===null||r.length===0)return[];let i=r.map(c=>JLe(c,"")),s=bQ({...e,[n]:i}),o=t-s;if(o<=0)return[];let a=[];for(let c of r){let u=J3t(c),l=CH(u);if(l<=o)a.push(c),o-=l;else if(a.length===0){let d=MH(u,o);d&&a.push(JLe(c,d));break}else break}return a.length<=0?[]:[{...e,[n]:a}]}function t9t(e,t){if(!e)return[];if(typeof e=="string"){let n=MH(e,t);return n?[n]:[]}return typeof e!="object"?[]:X3t(e)?Q3t(e,t):QLe(e)||$Le(e)?e9t(e,t):[]}function SQ(e){return e.map(n=>{let r;return n&&typeof n=="object"&&(QLe(n)?r={...n,content:SQ(n.content)}:"content"in n&&zy(n.content)&&(r={...n,content:qE(n.content)}),$Le(n)&&(r={...r??n,parts:SQ(n.parts)}),zy(r)?r=qE(r):zy(n)&&(r=qE(n))),r??n})}function n9t(e,t){if(!Array.isArray(e)||e.length===0)return e;let n=t-2,r=e[e.length-1],i=SQ([r]),s=i[0];return bQ(s)<=n?i:t9t(s,n)}function Gy(e){return n9t(e,XLe)}function e1e(e){return MH(e,XLe)}var XLe,CH,bQ,hP=v(()=>{yQ();XLe=2e4,CH=e=>new TextEncoder().encode(e).length,bQ=e=>CH(JSON.stringify(e))});function Hp(e){let t=!!ct()?.getOptions().sendDefaultPii;return{...e,recordInputs:e?.recordInputs??t,recordOutputs:e?.recordOutputs??t}}function dA(e,t){return e?`${e}.${t}`:t}function mP(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 BE(e){if(typeof e=="string")return e1e(e);if(Array.isArray(e)){let t=Gy(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 r9t(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 fA(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 r9t(u,t,n)}:typeof a=="function"?a.bind(o):a}}):t}var qp=v(()=>{ul();go();Ka();Xa();hP()});var DH,t1e,LH,n1e,r1e,EQ,_Q,TQ,i1e,zE,pA,gP,s1e,o1e,a1e,c1e,u1e,l1e,vQ,RQ,d1e,f1e,AQ=v(()=>{DH="operation.name",t1e="ai.operationId",LH="ai.prompt",n1e="ai.schema",r1e="ai.response.object",EQ="ai.values",_Q="ai.response.text",TQ="ai.response.toolCalls",i1e="ai.response.finishReason",zE="ai.prompt.messages",pA="ai.prompt.tools",gP="ai.model.id",s1e="ai.response.providerMetadata",o1e="ai.usage.cachedInputTokens",a1e="ai.telemetry.functionId",c1e="ai.usage.completionTokens",u1e="ai.usage.promptTokens",l1e="ai.usage.tokens",vQ="ai.toolCall.name",RQ="ai.toolCall.id",d1e="ai.toolCall.args",f1e="ai.toolCall.result"});function h1e(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 wQ(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 i9t(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 m1e(e,t){let n=i9t(e);for(let r of e){if(r.op==="gen_ai.execute_tool"){let i=r.data[HE];if(typeof i=="string"){let s=n.get(i);s&&(r.data[HLe]=s)}}r.op==="gen_ai.invoke_agent"&&wQ(r,t)}}function kQ(e){return fP.get(e)}function IQ(e){fP.delete(e)}function g1e(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 p1e(e){return e.filter(t=>!!t&&typeof t=="object"&&"role"in t&&"content"in t)}function s9t(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(...p1e(n)),s;if(Array.isArray(r))return s.push(...p1e(r)),s;if(typeof r=="string"&&s.push({role:"user",content:r}),s.length>0)return s}}catch{}return[]}function y1e(e,t){if(typeof t[LH]=="string"&&!t[aa]&&!t[zE]){let n=t[LH],r=s9t(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=BE(s);e.setAttributes({[LH]:a,[aa]:a,[Cc]:o})}}else if(typeof t[zE]=="string")try{let n=JSON.parse(t[zE]);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=BE(i);e.setAttributes({[zE]:o,[aa]:o,[Cc]:s})}}catch{}}function S1e(e){switch(e){case"ai.generateText":case"ai.streamText":case"ai.generateObject":case"ai.streamObject":return OH;case"ai.generateText.doGenerate":return NLe;case"ai.streamText.doStream":return CLe;case"ai.generateObject.doGenerate":return MLe;case"ai.streamObject.doStream":return DLe;case"ai.embed.doEmbed":return LLe;case"ai.embedMany.doEmbed":return ULe;case"ai.rerank.doRerank":return FLe;case"ai.toolCall":return jLe;default:return e.startsWith("ai.stream")?"ai.run":void 0}}var xQ=v(()=>{Xa();qp();gQ();AQ()});function o9t(e){return hQ.has(e)?"invoke_agent":mQ.has(e)?"generate_content":zLe.has(e)?"embeddings":GLe.has(e)?"rerank":e==="ai.toolCall"?"execute_tool":e}function a9t(e){let{data:t,description:n}=vt(e);if(n){if(t[vQ]&&t[RQ]&&n==="ai.toolCall"){f9t(e,t);return}!t[t1e]&&!n.startsWith("ai.")||p9t(e,n,t)}}function c9t(e){if(e.type==="transaction"&&e.spans){let t=new Map;for(let r of e.spans)d9t(r),h1e(r,t);m1e(e.spans,t);let n=e.contexts?.trace;n?.op==="gen_ai.invoke_agent"&&wQ(n,t)}return e}function u9t(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 l9t(e){let t=e[_Q],n=e[TQ],r=e[i1e];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[TQ]}}catch{}if(i.length>0){let s={role:"assistant",parts:i,finish_reason:u9t(r)};e[ILe]=JSON.stringify([s]),delete e[_Q]}}function d9t(e){let{data:t,origin:n}=e;if(n==="auto.vercelai.otel"){if(e.status&&e.status!=="ok"&&(e.status="internal_error"),ca(t,c1e,Ns),ca(t,u1e,di),ca(t,o1e,By),ca(t,"ai.usage.inputTokens",di),ca(t,"ai.usage.outputTokens",Ns),ca(t,l1e,di),ca(t,"ai.response.avgOutputTokensPerSecond","ai.response.avgCompletionTokensPerSecond"),typeof t[di]=="number"&&typeof t[By]=="number"&&(t[di]=t[di]+t[By]),typeof t[di]=="number"){let r=typeof t[Ns]=="number"?t[Ns]:0;t[Nc]=r+t[di]}if(t[pA]&&Array.isArray(t[pA])&&(t[pA]=g1e(t[pA])),t[DH]){let r=o9t(t[DH]);t[oa]=r,delete t[DH]}if(ca(t,zE,aa),l9t(t),ca(t,r1e,"gen_ai.response.object"),ca(t,pA,"gen_ai.request.available_tools"),ca(t,d1e,PH),ca(t,f1e,NH),ca(t,n1e,"gen_ai.request.schema"),ca(t,gP,us),Array.isArray(t[EQ])){let r=t[EQ].map(i=>{try{return JSON.parse(i)}catch{return i}});t[lA]=r.length===1?r[0]:JSON.stringify(r)}h9t(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 f9t(e,t){e.setAttribute(At,"auto.vercelai.otel"),e.setAttribute(zt,"gen_ai.execute_tool"),e.setAttribute(oa,"execute_tool"),ca(t,vQ,HE),ca(t,RQ,cQ);let n=t[cQ];typeof n=="string"&&fP.set(n,e.spanContext()),t[uQ]||e.setAttribute(uQ,"function");let r=t[HE];r&&e.updateName(`execute_tool ${r}`)}function p9t(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[a1e];i&&typeof i=="string"&&e.setAttribute("gen_ai.function_id",i),y1e(e,n),n[gP]&&!n[yo]&&e.setAttribute(yo,n[gP]),e.setAttribute("ai.streaming",t.includes("stream"));let s=S1e(t);if(s&&e.setAttribute(zt,s),hQ.has(t)){i&&typeof i=="string"?e.updateName(`invoke_agent ${i}`):e.updateName("invoke_agent");return}let o=n[gP];if(o){let a=mQ.has(t)?"generate_content":VLe[t];a&&e.updateName(`${a} ${o}`)}}function UH(e){e.on("spanStart",a9t),e.addEventProcessor(Object.assign(c9t,{id:"VercelAiEventProcessor"}))}function h9t(e){let t=e[s1e];if(t)try{let n=JSON.parse(t),r=n.openai??n.azure;if(r&&(df(e,By,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,By,i);let s=n.anthropic.usage?.cache_creation_input_tokens??n.anthropic.cacheCreationInputTokens;df(e,aQ,s)}n.bedrock?.usage&&(df(e,By,n.bedrock.usage.cacheReadInputTokens),df(e,aQ,n.bedrock.usage.cacheWriteInputTokens)),n.deepseek&&(df(e,By,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 b1e=v(()=>{Lo();Oc();Xa();gQ();xQ();AQ()});var Vy,E1e,m9t,_1e,FH=v(()=>{Vy="OpenAI",E1e={"responses.create":{operation:"chat"},"chat.completions.create":{operation:"chat"},"embeddings.create":{operation:"embeddings"},"conversations.create":{operation:"chat"}},m9t=["response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"],_1e=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta",...m9t]});function T1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion"}function v1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="response"}function R1e(e){if(e===null||typeof e!="object"||!("object"in e))return!1;let t=e;return t.object==="list"&&typeof t.model=="string"&&t.model.toLowerCase().includes("embedding")}function A1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="conversation"}function w1e(e){return e!==null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"&&e.type.startsWith("response.")}function k1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion.chunk"}function I1e(e,t,n){if(jH(e,t.id,t.model,t.created),t.usage&&yP(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 x1e(e,t,n){if(jH(e,t.id,t.model,t.created_at),t.status&&e.setAttributes({[du]:JSON.stringify([t.status])}),t.usage&&yP(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 O1e(e,t){e.setAttributes({[dQ]:t.model,[yo]:t.model}),t.usage&&yP(e,t.usage.prompt_tokens,void 0,t.usage.total_tokens)}function P1e(e,t){let{id:n,created_at:r}=t;e.setAttributes({[lQ]:n,[Jl]:n,[dP]:n}),r&&e.setAttributes({[fQ]:new Date(r*1e3).toISOString()})}function yP(e,t,n,r){t!==void 0&&e.setAttributes({[BLe]:t,[di]:t}),n!==void 0&&e.setAttributes({[qLe]:n,[Ns]:n}),r!==void 0&&e.setAttributes({[Nc]:r})}function jH(e,t,n,r){e.setAttributes({[lQ]:t,[Jl]:t}),e.setAttributes({[dQ]:n,[yo]:n}),e.setAttributes({[fQ]:new Date(r*1e3).toISOString()})}function g9t(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 N1e(e){let t={[us]:e.model??"unknown"};"temperature"in e&&(t[jy]=e.temperature),"top_p"in e&&(t[qy]=e.top_p),"frequency_penalty"in e&&(t[Hy]=e.frequency_penalty),"presence_penalty"in e&&(t[uA]=e.presence_penalty),"stream"in e&&(t[aA]=e.stream),"encoding_format"in e&&(t[ALe]=e.encoding_format),"dimensions"in e&&(t[wLe]=e.dimensions);let n=g9t(e);return n&&(t[dP]=n),t}var OQ=v(()=>{Xa()});function y9t(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 S9t(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&&y9t(r.delta.tool_calls,t)),r.finish_reason&&t.finishReasons.push(r.finish_reason)}function b9t(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(!_1e.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*C1e(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)k1e(i)?S9t(i,r,n):w1e(i)&&b9t(i,r,n,t),yield i}finally{jH(t,r.responseId,r.responseModel,r.responseTimestamp),yP(t,r.promptTokens,r.completionTokens,r.totalTokens),t.setAttributes({[jE]:!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 M1e=v(()=>{ul();Xa();FH();OQ()});function E9t(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 _9t(e,t){let n={[Fy]:"openai",[oa]:t,[At]:"auto.ai.openai"};if(e.length>0&&typeof e[0]=="object"&&e[0]!==null){let r=e[0],i=E9t(r);i&&(n[jp]=i),Object.assign(n,N1e(r))}else n[us]="unknown";return n}function T9t(e,t,n){if(!t||typeof t!="object")return;let r=t;if(T1e(r)){if(I1e(e,r,n),n&&r.choices?.length){let i=r.choices.map(s=>s.message?.content||"");e.setAttributes({[Gs]:JSON.stringify(i)})}}else v1e(r)?(x1e(e,r,n),n&&r.output_text&&e.setAttributes({[Gs]:r.output_text})):R1e(r)?O1e(e,r):A1e(r)&&P1e(e,r)}function D1e(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(lA,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=BE(s);e.setAttribute(aa,o),Array.isArray(s)?e.setAttribute(Cc,s.length):e.setAttribute(Cc,1)}function v9t(e,t,n,r,i){return function(...o){let a=n.operation,c=_9t(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&&D1e(y,l,a),(async()=>{try{let b=await m;return C1e(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 fA(m,g,"auto.ai.openai")}let p,h=lf(f,m=>(p=e.apply(r,o),i.recordInputs&&l&&D1e(m,l,a),p.then(g=>(T9t(m,g,i.recordOutputs),g),g=>{throw Wt(g,{mechanism:{handled:!1,type:"auto.ai.openai",data:{function:t}}}),g})));return fA(p,h,"auto.ai.openai")}}function L1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=dA(t,String(i)),a=E1e[o];return typeof s=="function"&&a?v9t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?L1e(s,o,n):s}})}function HH(e,t){return L1e(e,"",Hp(t))}var U1e=v(()=>{Pi();ul();Lo();_r();My();Xa();qp();FH();M1e();OQ()});var Wy,F1e,PQ=v(()=>{Wy="Anthropic_AI",F1e={"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 j1e(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]:BE(r),[Cc]:i})}function NQ(e){return e&&R9t[e]||"internal_error"}function H1e(e,t){t.error&&(e.setStatus({code:2,message:NQ(t.error.type)}),Wt(t.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}))}function q1e(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 R9t,CQ=v(()=>{ul();Xa();qp();R9t={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 A9t(e,t){return"type"in e&&typeof e.type=="string"&&e.type==="error"?(t.setStatus({code:2,message:NQ(e.error?.type)}),Wt(e.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0):!1}function w9t(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 k9t(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 I9t(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 x9t(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 B1e(e,t,n,r){!(e&&typeof e=="object")||A9t(e,r)||(w9t(e,t),k9t(e,t),I9t(e,t,n),x9t(e,t))}function O9t(e,t,n){t.isRecording()&&(e.responseId&&t.setAttributes({[Jl]:e.responseId}),e.responseModel&&t.setAttributes({[yo]:e.responseModel}),mP(t,e.promptTokens,e.completionTokens,e.cacheCreationInputTokens,e.cacheReadInputTokens),t.setAttributes({[jE]:!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*z1e(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)B1e(i,r,n,t),yield i}finally{r.responseId&&t.setAttributes({[Jl]:r.responseId}),r.responseModel&&t.setAttributes({[yo]:r.responseModel}),mP(t,r.promptTokens,r.completionTokens,r.cacheCreationInputTokens,r.cacheReadInputTokens),t.setAttributes({[jE]:!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 G1e(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=>{B1e(i,r,n,t)}),e.on("message",()=>{O9t(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 V1e=v(()=>{ul();Xa();qp();CQ()});function P9t(e,t,n){let r={[Fy]:"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[jy]=i.temperature),"top_p"in i&&(r[qy]=i.top_p),"stream"in i&&(r[aA]=i.stream),"top_k"in i&&(r[xH]=i.top_k),"frequency_penalty"in i&&(r[Hy]=i.frequency_penalty),"max_tokens"in i&&(r[cA]=i.max_tokens)}else t==="models.retrieve"||t==="models.get"?r[us]=e[0]:r[us]="unknown";return r}function MQ(e,t){let n=q1e(t);j1e(e,n),"prompt"in t&&e.setAttributes({[RLe]:JSON.stringify(t.prompt)})}function N9t(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 C9t(e,t){"id"in t&&"model"in t&&(e.setAttributes({[Jl]:t.id,[yo]:t.model}),"created"in t&&typeof t.created=="number"&&e.setAttributes({[pQ]:new Date(t.created*1e3).toISOString()}),"created_at"in t&&typeof t.created_at=="number"&&e.setAttributes({[pQ]:new Date(t.created_at*1e3).toISOString()}),"usage"in t&&t.usage&&mP(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.cache_creation_input_tokens,t.usage.cache_read_input_tokens))}function M9t(e,t,n){if(!(!t||typeof t!="object")){if("type"in t&&t.type==="error"){H1e(e,t);return}n&&N9t(e,t),C9t(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 D9t(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&&MQ(m,a),(async()=>{try{let g=await p;return z1e(g,m,c.recordOutputs??!1)}catch(g){return W1e(g,m,o)}})()));return fA(p,h,"auto.ai.anthropic")}else return Uo(f,p=>{try{c.recordInputs&&a&&MQ(p,a);let h=t.apply(n,r);return G1e(h,p,c.recordOutputs??!1)}catch(h){return W1e(h,p,o)}})}function L9t(e,t,n,r,i){return new Proxy(e,{apply(s,o,a){let c=n.operation,u=P9t(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 D9t(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&&MQ(g,d),h.then(y=>(M9t(g,y,i.recordOutputs),y),y=>{throw Wt(y,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:t}}}),y})));return fA(h,m,"auto.ai.anthropic")}})}function K1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=dA(t,String(i)),a=F1e[o];return typeof s=="function"&&a?L9t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?K1e(s,o,n):s}})}function qH(e,t){return K1e(e,"",Hp(t))}var Y1e=v(()=>{ul();Lo();My();Xa();qp();PQ();V1e();CQ()});var Ky,Z1e,J1e,DQ,X1e,LQ=v(()=>{Ky="Google_GenAI",Z1e={"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}},J1e="google_genai",DQ="chats.create",X1e="chat"});function U9t(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 F9t(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 j9t(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 H9t(e,t,n,r){!e||U9t(e,r)||(F9t(e,t),j9t(e,t,n))}async function*Q1e(e,t,n){let r={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(let i of e)H9t(i,r,n,t),yield i}finally{let i={[jE]:!0};r.responseId&&(i[Jl]=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 $1e=v(()=>{ul();Xa()});function hA(e,t="user"){return typeof e=="string"?[{role:t,content:e}]:Array.isArray(e)?e.flatMap(n=>hA(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 eUe=v(()=>{});function tUe(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 q9t(e){let t={};return"temperature"in e&&typeof e.temperature=="number"&&(t[jy]=e.temperature),"topP"in e&&typeof e.topP=="number"&&(t[qy]=e.topP),"topK"in e&&typeof e.topK=="number"&&(t[xH]=e.topK),"maxOutputTokens"in e&&typeof e.maxOutputTokens=="number"&&(t[cA]=e.maxOutputTokens),"frequencyPenalty"in e&&typeof e.frequencyPenalty=="number"&&(t[Hy]=e.frequencyPenalty),"presencePenalty"in e&&typeof e.presencePenalty=="number"&&(t[uA]=e.presencePenalty),t}function B9t(e,t,n){let r={[Fy]:J1e,[oa]:e,[At]:"auto.ai.google_genai"};if(t){if(r[us]=tUe(t,n),"config"in t&&typeof t.config=="object"&&t.config){let i=t.config;if(Object.assign(r,q9t(i)),"tools"in i&&Array.isArray(i.tools)){let s=i.tools.flatMap(o=>o.functionDeclarations);r[jp]=JSON.stringify(s)}}}else r[us]=tUe({},n);return r}function nUe(e,t,n){if(n){let i=t.contents;i!=null&&e.setAttribute(lA,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(...hA(t.config.systemInstruction,"system")),"history"in t&&r.push(...hA(t.history,"user")),"contents"in t&&r.push(...hA(t.contents,"user")),"message"in t&&r.push(...hA(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(Gy(s))})}}function z9t(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 rUe(e,t,n,r,i){let s=t===DQ,o=n.operation==="embeddings";return new Proxy(e,{apply(a,c,u){let l=n.operation,d=u[0],f=B9t(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&&nUe(h,d,o);let m=await a.apply(r,u);return Q1e(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&&nUe(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&&z9t(h,m,i.recordOutputs)})))}})}function UQ(e,t="",n){return new Proxy(e,{get:(r,i,s)=>{let o=Reflect.get(r,i,s),a=dA(t,String(i)),c=Z1e[a];if(typeof o=="function"&&c){if(a===DQ){let u=rUe(o,a,c,r,n);return function(...d){let f=u(...d);return f&&typeof f=="object"?UQ(f,X1e,n):f}}return rUe(o,a,c,r,n)}return typeof o=="function"?o.bind(r):o&&typeof o=="object"?UQ(o,a,n):o}})}function BH(e,t){return UQ(e,"",Hp(t))}var iUe=v(()=>{ul();Lo();My();oH();Xa();hP();qp();LQ();$1e();eUe()});var zH,GE,sUe,GH=v(()=>{zH="LangChain",GE="auto.ai.langchain",sUe={human:"user",ai:"assistant",assistant:"assistant",system:"system",function:"function",tool:"tool"}});function Rm(e){if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function mA(e){if(Array.isArray(e))try{let t=e.map(n=>n&&typeof n=="object"&&zy(n)?qE(n):n);return JSON.stringify(t)}catch{return String(e)}return Rm(e)}function SP(e){let t=e.toLowerCase();return sUe[t]??t}function oUe(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 FQ(e){if(!(!e||Array.isArray(e)))return e.invocation_params}function bP(e){return e.map(t=>{let n=t._getType;if(typeof n=="function"){let i=n.call(t);return{role:SP(i),content:mA(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"?oUe(s):"user";return{role:SP(o),content:mA(t.kwargs?.content)}}if(t.type){let i=String(t.type).toLowerCase();return{role:SP(i),content:mA(t.content)}}if(t.role)return{role:SP(String(t.role)),content:mA(t.content)};let r=t.constructor?.name;return r&&r!=="Object"?{role:SP(oUe(r)),content:mA(t.content)}:{role:"user",content:mA(t.content)}})}function G9t(e,t,n){let r={},i="kwargs"in e?e.kwargs:void 0,s=t?.temperature??n?.ls_temperature??i?.temperature;fl(r,jy,s);let o=t?.max_tokens??n?.ls_max_tokens??i?.max_tokens;fl(r,cA,o);let a=t?.top_p??i?.top_p;fl(r,qy,a);let c=t?.frequency_penalty;fl(r,Hy,c);let u=t?.presence_penalty;return fl(r,uA,u),t&&"stream"in t&&Xl(r,aA,!!t.stream),r}function aUe(e,t,n,r,i){return{[Fy]:Rm(e??"langchain"),[oa]:"chat",[us]:Rm(t),[At]:GE,...G9t(n,r,i)}}function cUe(e,t,n,r,i){let s=i?.ls_provider,o=r?.model??i?.ls_model_name??"unknown",a=aUe(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){Xl(a,Cc,t.length);let c=t.map(u=>({role:"user",content:u}));Xl(a,aa,Rm(c))}return a}function uUe(e,t,n,r,i){let s=i?.ls_provider??e.id?.[2],o=r?.model??i?.ls_model_name??"unknown",a=aUe(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){let c=bP(t.flat()),{systemInstructions:u,filteredMessages:l}=dl(c);u&&Xl(a,ll,u);let d=Array.isArray(l)?l.length:0;Xl(a,Cc,d);let f=Gy(l);Xl(a,aa,Rm(f))}return a}function V9t(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&&Xl(t,Fo,Rm(n))}function W9t(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,OLe,r.cache_creation_input_tokens),r.cache_read_input_tokens!==void 0&&fl(t,PLe,r.cache_read_input_tokens)}}function lUe(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&&Xl(n,du,Rm(u)),V9t(e.generations,n),t){let l=e.generations.flat().map(d=>d.text??d.message?.content).filter(d=>typeof d=="string");l.length>0&&Xl(n,Gs,Rm(l))}}W9t(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&&Xl(n,yo,o);let a=r?.id??s?.id;a&&Xl(n,Jl,a);let c=r?.stop_reason??s?.response_metadata?.finish_reason;return c&&Xl(n,kLe,Rm(c)),n}var Xl,fl,VH=v(()=>{Lo();Xa();yQ();hP();qp();GH();Xl=(e,t,n)=>{n!=null&&(e[t]=n)},fl=(e,t,n)=>{let r=Number(n);Number.isNaN(r)||(e[t]=r)}});function WH(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=FQ(d),m=cUe(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=FQ(d),m=uUe(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=lUe(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:`${GE}.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:`${GE}.chain_error_handler`}})},handleToolStart(o,a,c,u){let l=o.name||"unknown_tool",d={[At]:GE,[HE]:l};t&&(d[PH]=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({[NH]: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:`${GE}.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 dUe=v(()=>{ul();Lo();My();Xa();qp();GH();VH()});var KH,jQ,HQ=v(()=>{KH="LangGraph",jQ="auto.ai.langgraph"});function K9t(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 Y9t(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 Z9t(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 fUe(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 pUe(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=K9t(o);a&&e.setAttribute(Fo,JSON.stringify(a));let c=bP(o);e.setAttribute(Gs,JSON.stringify(c));let u=0,l=0,d=0;for(let f of o){let p=Y9t(f);u+=p.inputTokens,l+=p.outputTokens,d+=p.totalTokens,Z9t(e,f)}u>0&&e.setAttribute(di,u),l>0&&e.setAttribute(Ns,l),d>0&&e.setAttribute(Nc,d)}var hUe=v(()=>{Xa();VH()});function qQ(e,t){return new Proxy(e,{apply(n,r,i){return lf({op:"gen_ai.create_agent",name:"create_agent",attributes:{[At]:jQ,[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(oQ,a.name),s.updateName(`create_agent ${a.name}`));let c=o.invoke;return c&&typeof c=="function"&&(o.invoke=J9t(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 J9t(e,t,n,r){return new Proxy(e,{apply(i,s,o){return lf({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[At]:jQ,[zt]:OH,[oa]:"invoke_agent"}},async a=>{try{let c=n?.name;c&&typeof c=="string"&&(a.setAttribute(xLe,c),a.setAttribute(oQ,c),a.updateName(`invoke_agent ${c}`));let d=(o.length>1?o[1]:void 0)?.configurable?.thread_id;d&&typeof d=="string"&&a.setAttribute(dP,d);let f=fUe(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=bP(m),{systemInstructions:b,filteredMessages:S}=dl(y);b&&a.setAttribute(ll,b);let E=Gy(S),_=Array.isArray(S)?S.length:0;a.setAttributes({[aa]:JSON.stringify(E),[Cc]:_})}let g=await Reflect.apply(i,s,o);return h&&pUe(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 YH(e,t){return e.compile=qQ(e.compile,Hp(t)),e}var mUe=v(()=>{ul();Lo();My();Xa();hP();qp();VH();HQ();hUe()});function EP(e){if(e!==void 0)return e>=400&&e<500?"warning":e>=500?"error":void 0}var gUe=v(()=>{});function _P(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 yUe=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 _Ue(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=DCe(o[2]),p=o[5]==="native";!f&&o[5]&&!p&&(f=o[5]);let h=f?X9t(f):void 0;return{filename:h??f,module:h&&e?.(h),function:u,lineno:SUe(o[3]),colno:SUe(o[4]),in_app:EUe(f||"",p)}}if(i.match(t))return{filename:i}}}function BQ(e){return[90,_Ue(e)]}function SUe(e){return parseInt(e||"",10)||void 0}function X9t(e){try{return decodeURI(e)}catch{return}}var TUe=v(()=>{MR()});var fu,vUe=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(()=>{WR();oMe();My();Em();RX();AX();sH();Lo();ul();go();QJ();zR();MDe();gH();UX();DDe();LDe();ZO();oH();Oc();KR();jDe();HDe();BDe();zDe();ZDe();XX();QDe();eLe();oLe();dLe();bLe();_Le();TLe();vLe();FX();b1e();xQ();U1e();FH();Y1e();PQ();iUe();LQ();dUe();GH();mUe();HQ();gUe();Wa();Ka();_r();Lp();nf();gLe();yUe();MR();TUe();vy();Yj();_m();VO();FDe();vUe();Iy();Pj();Ey()});function rt(e,t,n){return n?TYt(e,t,n):_Yt(e,t)}function _Yt(e,t){return Object.assign(n=>{let r=TP[e];if(r)return n&&r.setConfig(n),r;let i=t(n);return TP[e]=i,(0,zQ.registerInstrumentations)({instrumentations:[i]}),i},{id:e})}function TYt(e,t,n){return Object.assign(r=>{let i=n(r),s=TP[e];if(s)return s.setConfig(i),s;let o=new t(i);return TP[e]=o,(0,zQ.registerInstrumentations)({instrumentations:[o]}),o},{id:e})}function vP(e){let t=!1,n=[];if(!vYt(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 vYt(e){return typeof e._wrap=="function"}var zQ,TP,ZH=v(()=>{zQ=Re(Jt(),1),TP={}});var Qt,ff=v(()=>{Qt=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var JH,RUe=v(()=>{JH="@sentry/instrumentation-http"});function AUe(e,t,n,r){let i=0,s=[];Qt&&Z.log(r,"Patching request.on");let o=new WeakMap,a=n==="small"?1e3:n==="medium"?1e4:1048576;try{e.on=new Proxy(e.on,{apply:(c,u,l)=>{let[d,f,...p]=l;if(d==="data"){Qt&&Z.log(r,`Handling request.on("data") with maximum body size of ${a}b`);let h=new Proxy(f,{apply:(m,g,y)=>{try{let 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 wUe=v(()=>{st();ff()});import{subscribe as RYt}from"node:diagnostics_channel";function xUe(e,t){zs(e,"_startSpanCallback",new WeakRef(t))}function wYt(e,{ignoreRequestBody:t,maxRequestBodySize:n,sessions:r,sessionFlushingDelayMS:i}){let s=e.emit;if(IUe.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(kUe)||!l)return a.apply(c,u);Qt&&Z.log(VQ,"Handling incoming request");let d=vn().clone(),f=u[1],p=u[2],h=lP(f),m=f.ip||f.socket?.remoteAddress,g=f.url||"/";n!=="none"&&!t?.(g,f)&&AUe(f,d,n,VQ),d.setSDKProcessingMetadata({normalizedRequest:h,ipAddress:m});let y=(f.method||"GET").toUpperCase(),b=vm(g),S=`${y} ${b}`;return d.setTransactionName(S),r&&l&&kYt(l,{requestIsolationScope:d,response:p,sessionFlushingDelayMS:i??6e4}),zO(d,()=>{let E={traceId:Ya(),sampleRand:Do(),propagationSpanId:Za()};Fn().setPropagationContext({...E}),d.setPropagationContext({...E});let _=Qd.extract(Ve.active(),h.headers).setValue(kUe,!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)})})}});IUe.add(o),e.emit=o}function kYt(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=GQ.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};GQ.set(e,u);let l=()=>{clearTimeout(f),d(),GQ.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 kUe,VQ,GQ,IUe,AYt,RP,XH=v(()=>{Me();st();ff();wUe();kUe=il("sentry_http_server_instrumented"),VQ="Http.Server",GQ=new Map,IUe=new WeakSet;AYt=((e={})=>{let t={sessions:e.sessions??!0,sessionFlushingDelayMS:e.sessionFlushingDelayMS??6e4,maxRequestBodySize:e.maxRequestBodySize??"medium",ignoreRequestBody:e.ignoreRequestBody};return{name:VQ,setupOnce(){RYt("http.server.request.start",(r=>{wYt(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`.")}}}),RP=AYt});import{errorMonitor as IYt}from"node:events";function OYt(e){return e.headers["next-router-prefetch"]==="1"}function PYt(e){let t=vm(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 NYt(e,{ignoreStaticAssets:t,ignoreIncomingRequests:n}){if((0,Am.isTracingSuppressed)(Ve.active()))return!0;let r=e.url,i=e.method?.toUpperCase();return!!(i==="OPTIONS"||i==="HEAD"||!r||t&&i==="GET"&&PYt(r)||n?.(r,e))}function CYt(e){let t=MYt(e.headers);return t==null?{}:DYt(e.headers)?{"http.request_content_length":t}:{"http.request_content_length_uncompressed":t}}function MYt(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}function DYt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}function LYt(e,t){let{socket:n}=e,{statusCode:r,statusMessage:i}=t,s={[lm]:r,[yE]:r,"http.status_text":i?.toUpperCase()},o=(0,Am.getRPCMetadata)(Ve.active());if(n){let{localAddress:a,localPort:c,remoteAddress:u,remotePort:l}=n;s[d7]=a,s[f7]=c,s[l7]=u,s["net.peer.port"]=l}if(s[yE]=r,s["http.status_text"]=(i||"").toUpperCase(),o?.type===Am.RPCType.HTTP&&o.route!==void 0){let a=o.route;s[dm]=a}return s}function UYt(e,t){return t.some(n=>{if(typeof n=="number")return n===e;let[r,i]=n;return e>=r&&e<=i})}var Am,OUe,xYt,AP,WQ=v(()=>{Me();Am=Re(pr(),1);Nn();st();ff();XH();OUe="Http.ServerSpans",xYt=((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:OUe,setup(c){typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__||c.on("httpServerRequest",(u,l,d)=>{let f=u,p=l;xUe(f,m=>{if(NYt(f,{ignoreStaticAssets:t,ignoreIncomingRequests:n}))return Qt&&Z.log(OUe,"Skipping span creation for incoming request",f.url),m();let g=d.url||f.url||"/",y=uP(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:vm(g),N=`${k} ${P}`,C=A.startSpan(N,{kind:$r.SERVER,attributes:{[zt]:"http.server",[At]:"auto.http.otel.http","sentry.http.prefetch":OYt(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",...CYt(f),...EH(d.headers||{},c.getOptions().sendDefaultPii??!1)}});s?.(C,f),o?.(C,p),a?.(C,f,p),i?.(C,f,p);let L={type:Am.RPCType.HTTP,span:C};return Ve.with((0,Am.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=LYt(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(ym(p.statusCode))}),p.on(IYt,()=>{let $=ym(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"&&UYt(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."))}}}),AP=xYt});function wP(e,t){if(!e)return t;let n=PE(e),r=PE(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 Vj(a)}var KQ=v(()=>{st()});function PUe(e,t){let n=FYt(e),r=t?.statusCode,i=EP(r);Zl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function QH(e,t){let n=$H(e),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=FE(n,r,t)?oA({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(gA,"Added sentry-trace header to outgoing request")}catch(l){Qt&&Z.error(gA,"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(gA,"Added traceparent header to outgoing request")}catch(l){Qt&&Z.error(gA,"Failed to add traceparent header to outgoing request:",Mp(l)?l.message:"Unknown error")}if(a){let l=e.getHeader("baggage"),d=wP(l,a);if(d)try{e.setHeader("baggage",d),Qt&&Z.log(gA,"Added baggage header to outgoing request")}catch(f){Qt&&Z.error(gA,"Failed to add baggage header to outgoing request:",Mp(f)?f.message:"Unknown error")}}}}function FYt(e){try{let t=e.getHeader("host")||e.host,n=new URL(e.path,`${e.protocol}//${t}`),r=Ly(n.toString()),i={url:Uy(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 NUe(e){return{method:e.method,protocol:e.protocol,host:e.host,hostname:e.host,path:e.path,headers:e.getHeaders()}}function $H(e){let t=e.getHeader("host")||e.host,n=e.protocol,r=e.path;return`${n}//${t}${r}`}var gA,CUe=v(()=>{st();ff();KQ();gA="@sentry/instrumentation-http"});import{subscribe as YQ,unsubscribe as ZQ}from"node:diagnostics_channel";import{errorMonitor as MUe}from"node:events";function jYt(e){let t=$H(e),[n,r]=ZX(uP(t),"client","auto.http.otel.http",e),i=e.getHeader("user-agent");return[n,{[zt]:"http.client","otel.kind":"CLIENT",[M7]:i,[py]:t,"http.url":t,"http.method":e.method,"http.target":e.path||"/","net.peer.name":e.host,"http.host":e.getHeader("host"),...r}]}function HYt(e){let{statusCode:t,statusMessage:n,httpVersion:r,socket:i}=e,s=r.toUpperCase()!=="QUIC"?"ip_tcp":"ip_udp",o={[lm]:t,[I7]:r,"http.flavor":r,[x7]:s,"net.transport":s,"http.status_text":n?.toUpperCase(),"http.status_code":t,...qYt(e)};if(i){let{remoteAddress:a,remotePort:c}=i;o[w7]=a,o[k7]=c,o["net.peer.ip"]=a,o["net.peer.port"]=c}return o}function qYt(e){let t=BYt(e.headers);return t==null?{}:zYt(e.headers)?{[h7]:t}:{[m7]:t}}function BYt(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 zYt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}var DUe,kP,VE,JQ=v(()=>{Me();DUe=Re(pr(),1),kP=Re(Jt(),1);Nn();st();ff();RUe();CUe();VE=class extends kP.InstrumentationBase{constructor(t={}){super(JH,Cn,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,YQ("http.client.response.finish",n),YQ("http.client.request.error",r),(this.getConfig().propagateTraceInOutgoingRequests||this.getConfig().createSpansForOutgoingRequests)&&YQ("http.client.request.created",i)),a),o=()=>{ZQ("http.client.response.finish",n),ZQ("http.client.request.error",r),ZQ("http.client.request.created",i)};return[new kP.InstrumentationNodeModuleDefinition("http",["*"],s,o),new kP.InstrumentationNodeModuleDefinition("https",["*"],s,o)]}_startSpanForOutgoingRequest(t){let n=t.once,[r,i]=jYt(t),s=cH({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=HYt(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}:ym(u.statusCode);c(p)};u.on("end",()=>{d()}),u.on(MUe,f=>{this._diag.debug("outgoingRequest on response error()",f),d(!0)})}),t.on("close",()=>{c({code:as.UNSET})}),t.on(MUe,u=>{this._diag.debug("outgoingRequest on request error()",u),c({code:as.ERROR})}),s}_onOutgoingRequestFinish(t,n){Qt&&Z.log(JH,"Handling finished outgoing request");let r=this.getConfig().breadcrumbs,i=typeof r>"u"?!0:r,s=this._ignoreOutgoingRequestsMap.get(t)??this._shouldIgnoreOutgoingRequest(t);this._ignoreOutgoingRequestsMap.set(t,s),i&&!s&&PUe(t,n)}_onOutgoingRequestCreated(t){Qt&&Z.log(JH,"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,()=>{QH(t,this._propagationDecisionMap)})}else i&&QH(t,this._propagationDecisionMap)}else i&&QH(t,this._propagationDecisionMap)}_shouldIgnoreOutgoingRequest(t){if((0,DUe.isTracingSuppressed)(Ve.active()))return!0;let n=this.getConfig().ignoreOutgoingRequests;if(!n)return!1;let r=NUe(t),i=$H(t);return n(i,r)}}});var LUe,GYt,UUe,FUe=v(()=>{ZH();XH();WQ();JQ();LUe="Http",GYt=rt(`${LUe}.sentry`,e=>new VE(e)),UUe=(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=RP(t),s=AP(n),o=e.spans??!1,a=e.disableIncomingRequestSpans??!1,c=o&&!a;return{name:LUe,setup(u){c&&s.setup(u)},setupOnce(){i.setupOnce(),GYt(r)},processEvent(u){return s.processEvent(u)}}}});var pf,wm,IP,yA=v(()=>{st();pf=JJ(process.versions.node),wm=pf.major,IP=pf.minor});function jUe(e,t){let n=tq(e.origin,e.path),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=FE(n,r,t)?oA({propagateTraceparent:i}):void 0;if(!s)return;let{"sentry-trace":o,baggage:a,traceparent:c}=s,u=Array.isArray(e.headers)?e.headers:WYt(e.headers);if(QQ(u,XQ),QQ(u,eq),i&&QQ(u,VYt),!($Q(u,XQ)!==-1)){o&&u.push(XQ,o),c&&$Q(u,"traceparent")===-1&&u.push("traceparent",c);let d=$Q(u,eq);if(a&&d===-1)u.push(eq,a);else if(a){let f=u[d+1],p=wP(f,a);p&&(u[d+1]=p)}}Array.isArray(e.headers)||(e.headers=KYt(u))}function WYt(e){let t=e.split(`\r +`),n=[];for(let r of t)try{let i=r.indexOf(":");if(i===-1)continue;let s=r.slice(0,i).trim(),o=r.slice(i+1).trim();s&&n.push(s,o)}catch{Z.warn(`Failed to convert string request header to array header: ${r}`)}return n}function KYt(e){let t=[];for(let n=0;nr%2===0&&n===t)}function FUe(e,t){let n=WYt(e),r=t.statusCode,i=EP(r);Zl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function WYt(e){try{let t=tq(e.origin,e.path),n=Ly(t),r={url:Uy(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 tq(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 JQ,eq,zYt,jUe=v(()=>{st();WQ();JQ="sentry-trace",eq="baggage",zYt="traceparent"});import*as SA from"diagnostics_channel";var HUe,qUe,WE,$Q=v(()=>{Me();HUe=Re(pr(),1),qUe=Re(Jt(),1);st();yA();jUe();WE=class extends qUe.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-node-fetch",Cn,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&&UUe(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&&FUe(t,n)}_subscribeToChannel(t,n){let r=wm>18||wm===18&&IP>=19,i;if(r)SA.subscribe?.(t,n),i=()=>SA.unsubscribe?.(t,n);else{let s=SA.channel(t);s.subscribe(n),i=()=>s.unsubscribe(n)}this._channelSubs.push({name:t,unsubscribe:i})}_shouldIgnoreOutgoingRequest(t){if((0,HUe.isTracingSuppressed)(Ve.active()))return!0;let n=tq(t.origin,t.path),r=this.getConfig().ignoreOutgoingRequests;return typeof r!="function"||!n?!1:r(n)}}});var KYt,YYt,ZYt,BUe,zUe=v(()=>{ZH();$Q();KYt="NodeFetch",YYt=rt(`${KYt}.sentry`,WE,e=>e),ZYt=((e={})=>({name:"NodeFetch",setupOnce(){YYt(e)}})),BUe=ZYt});var t$=w(nq=>{"use strict";Object.defineProperty(nq,"__esModule",{value:!0});nq.AbstractAsyncHooksContextManager=void 0;var JYt=Y("events"),XYt=["addListener","on","once","prependListener","prependOnceListener"],e$=class{bind(t,n){return n instanceof JYt.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),XYt.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};nq.AbstractAsyncHooksContextManager=e$});var GUe=w(rq=>{"use strict";Object.defineProperty(rq,"__esModule",{value:!0});rq.AsyncHooksContextManager=void 0;var QYt=(Me(),ke(Ze)),$Yt=Y("async_hooks"),eZt=t$(),n$=class extends eZt.AbstractAsyncHooksContextManager{_asyncHook;_contexts=new Map;_stack=[];constructor(){super(),this._asyncHook=$Yt.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]??QYt.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()}};rq.AsyncHooksContextManager=n$});var VUe=w(iq=>{"use strict";Object.defineProperty(iq,"__esModule",{value:!0});iq.AsyncLocalStorageContextManager=void 0;var tZt=(Me(),ke(Ze)),nZt=Y("async_hooks"),rZt=t$(),r$=class extends rZt.AbstractAsyncHooksContextManager{_asyncLocalStorage;constructor(){super(),this._asyncLocalStorage=new nZt.AsyncLocalStorage}active(){return this._asyncLocalStorage.getStore()??tZt.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}};iq.AsyncLocalStorageContextManager=r$});var WUe=w(bA=>{"use strict";Object.defineProperty(bA,"__esModule",{value:!0});bA.AsyncLocalStorageContextManager=bA.AsyncHooksContextManager=void 0;var iZt=GUe();Object.defineProperty(bA,"AsyncHooksContextManager",{enumerable:!0,get:function(){return iZt.AsyncHooksContextManager}});var sZt=VUe();Object.defineProperty(bA,"AsyncLocalStorageContextManager",{enumerable:!0,get:function(){return sZt.AsyncLocalStorageContextManager}})});var i$=w(EA=>{"use strict";Object.defineProperty(EA,"__esModule",{value:!0});EA._clearDefaultServiceNameCache=EA.defaultServiceName=void 0;var xP;function oZt(){if(xP===void 0)try{let e=globalThis.process.argv0;xP=e?`unknown_service:${e}`:"unknown_service"}catch{xP="unknown_service"}return xP}EA.defaultServiceName=oZt;function aZt(){xP=void 0}EA._clearDefaultServiceNameCache=aZt});var KUe=w(sq=>{"use strict";Object.defineProperty(sq,"__esModule",{value:!0});sq.isPromiseLike=void 0;var cZt=e=>e!==null&&typeof e=="object"&&typeof e.then=="function";sq.isPromiseLike=cZt});var a$=w(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});Bp.defaultResource=Bp.emptyResource=Bp.resourceFromDetectedResource=Bp.resourceFromAttributes=void 0;var PP=(Me(),ke(Ze)),s$=pr(),KE=(Nn(),ke(Mr)),uZt=i$(),OP=KUe(),oq=class e{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(t,n){let r=new e({},n);return r._rawAttributes=YUe(t),r._asyncAttributesPending=t.filter(([i,s])=>(0,OP.isPromiseLike)(s)).length>0,r}constructor(t,n){let r=t.attributes??{};this._rawAttributes=Object.entries(r).map(([i,s])=>((0,OP.isPromiseLike)(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=YUe(this._rawAttributes),this._schemaUrl=pZt(n?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let t=0;t(0,OP.isPromiseLike)(n)?[t,n.catch(r=>{PP.diag.debug("promise rejection for resource attribute: %s - %s",t,r)})]:[t,n])}function pZt(e){if(typeof e=="string"||e===void 0)return e;PP.diag.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",e)}function hZt(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;PP.diag.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',n,r)}});var JUe=w(aq=>{"use strict";Object.defineProperty(aq,"__esModule",{value:!0});aq.detectResources=void 0;var ZUe=(Me(),ke(Ze)),c$=a$(),mZt=(e={})=>(e.detectors||[]).map(n=>{try{let r=(0,c$.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,c$.emptyResource)()}}).reduce((n,r)=>n.merge(r),(0,c$.emptyResource)());aq.detectResources=mZt});var QUe=w(cq=>{"use strict";Object.defineProperty(cq,"__esModule",{value:!0});cq.envDetector=void 0;var gZt=(Me(),ke(Ze)),yZt=(Nn(),ke(Mr)),XUe=pr(),u$=class{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect(t){let n={},r=(0,XUe.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),i=(0,XUe.getStringFromEnv)("OTEL_SERVICE_NAME");if(r)try{let s=this._parseResourceAttributes(r);Object.assign(n,s)}catch(s){gZt.diag.debug(`EnvDetector failed: ${s instanceof Error?s.message:s}`)}return i&&(n[yZt.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}};cq.envDetector=new u$});var NP=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 lq=w(uq=>{"use strict";Object.defineProperty(uq,"__esModule",{value:!0});uq.execAsync=void 0;var SZt=Y("child_process"),bZt=Y("util");uq.execAsync=bZt.promisify(SZt.exec)});var $Ue=w(dq=>{"use strict";Object.defineProperty(dq,"__esModule",{value:!0});dq.getMachineId=void 0;var EZt=lq(),_Zt=(Me(),ke(Ze));async function TZt(){try{let t=(await(0,EZt.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){_Zt.diag.debug(`error reading machine id: ${e}`)}}dq.getMachineId=TZt});var eFe=w(fq=>{"use strict";Object.defineProperty(fq,"__esModule",{value:!0});fq.getMachineId=void 0;var vZt=Y("fs"),RZt=(Me(),ke(Ze));async function AZt(){let e=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let t of e)try{return(await vZt.promises.readFile(t,{encoding:"utf8"})).trim()}catch(n){RZt.diag.debug(`error reading machine id: ${n}`)}}fq.getMachineId=AZt});var nFe=w(pq=>{"use strict";Object.defineProperty(pq,"__esModule",{value:!0});pq.getMachineId=void 0;var wZt=Y("fs"),kZt=lq(),tFe=(Me(),ke(Ze));async function IZt(){try{return(await wZt.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(e){tFe.diag.debug(`error reading machine id: ${e}`)}try{return(await(0,kZt.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(e){tFe.diag.debug(`error reading machine id: ${e}`)}}pq.getMachineId=IZt});var iFe=w(hq=>{"use strict";Object.defineProperty(hq,"__esModule",{value:!0});hq.getMachineId=void 0;var rFe=Y("process"),xZt=lq(),OZt=(Me(),ke(Ze));async function PZt(){let e="QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",t="%windir%\\System32\\REG.exe";rFe.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in rFe.env&&(t="%windir%\\sysnative\\cmd.exe /c "+t);try{let r=(await(0,xZt.execAsync)(`${t} ${e}`)).stdout.split("REG_SZ");if(r.length===2)return r[1].trim()}catch(n){OZt.diag.debug(`error reading machine id: ${n}`)}}hq.getMachineId=PZt});var sFe=w(mq=>{"use strict";Object.defineProperty(mq,"__esModule",{value:!0});mq.getMachineId=void 0;var NZt=(Me(),ke(Ze));async function CZt(){NZt.diag.debug("could not read machine-id: unsupported platform")}mq.getMachineId=CZt});var oFe=w(gq=>{"use strict";Object.defineProperty(gq,"__esModule",{value:!0});gq.getMachineId=void 0;var MZt=Y("process"),YE;async function DZt(){if(!YE)switch(MZt.platform){case"darwin":YE=(await Promise.resolve().then(()=>Re($Ue()))).getMachineId;break;case"linux":YE=(await Promise.resolve().then(()=>Re(eFe()))).getMachineId;break;case"freebsd":YE=(await Promise.resolve().then(()=>Re(nFe()))).getMachineId;break;case"win32":YE=(await Promise.resolve().then(()=>Re(iFe()))).getMachineId;break;default:YE=(await Promise.resolve().then(()=>Re(sFe()))).getMachineId;break}return YE()}gq.getMachineId=DZt});var l$=w(_A=>{"use strict";Object.defineProperty(_A,"__esModule",{value:!0});_A.normalizeType=_A.normalizeArch=void 0;var LZt=e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}};_A.normalizeArch=LZt;var UZt=e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}};_A.normalizeType=UZt});var cFe=w(yq=>{"use strict";Object.defineProperty(yq,"__esModule",{value:!0});yq.hostDetector=void 0;var d$=NP(),aFe=Y("os"),FZt=oFe(),jZt=l$(),f$=class{detect(t){return{attributes:{[d$.ATTR_HOST_NAME]:(0,aFe.hostname)(),[d$.ATTR_HOST_ARCH]:(0,jZt.normalizeArch)((0,aFe.arch)()),[d$.ATTR_HOST_ID]:(0,FZt.getMachineId)()}}}};yq.hostDetector=new f$});var dFe=w(Sq=>{"use strict";Object.defineProperty(Sq,"__esModule",{value:!0});Sq.osDetector=void 0;var uFe=NP(),lFe=Y("os"),HZt=l$(),p$=class{detect(t){return{attributes:{[uFe.ATTR_OS_TYPE]:(0,HZt.normalizeType)((0,lFe.platform)()),[uFe.ATTR_OS_VERSION]:(0,lFe.release)()}}}};Sq.osDetector=new p$});var fFe=w(bq=>{"use strict";Object.defineProperty(bq,"__esModule",{value:!0});bq.processDetector=void 0;var qZt=(Me(),ke(Ze)),km=NP(),BZt=Y("os"),h$=class{detect(t){let n={[km.ATTR_PROCESS_PID]:process.pid,[km.ATTR_PROCESS_EXECUTABLE_NAME]:process.title,[km.ATTR_PROCESS_EXECUTABLE_PATH]:process.execPath,[km.ATTR_PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[km.ATTR_PROCESS_RUNTIME_VERSION]:process.versions.node,[km.ATTR_PROCESS_RUNTIME_NAME]:"nodejs",[km.ATTR_PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};process.argv.length>1&&(n[km.ATTR_PROCESS_COMMAND]=process.argv[1]);try{let r=BZt.userInfo();n[km.ATTR_PROCESS_OWNER]=r.username}catch(r){qZt.diag.debug(`error obtaining process owner: ${r}`)}return{attributes:n}}};bq.processDetector=new h$});var pFe=w(Eq=>{"use strict";Object.defineProperty(Eq,"__esModule",{value:!0});Eq.serviceInstanceIdDetector=void 0;var zZt=NP(),GZt=Y("crypto"),m$=class{detect(t){return{attributes:{[zZt.ATTR_SERVICE_INSTANCE_ID]:(0,GZt.randomUUID)()}}}};Eq.serviceInstanceIdDetector=new m$});var hFe=w(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});zp.serviceInstanceIdDetector=zp.processDetector=zp.osDetector=zp.hostDetector=void 0;var VZt=cFe();Object.defineProperty(zp,"hostDetector",{enumerable:!0,get:function(){return VZt.hostDetector}});var WZt=dFe();Object.defineProperty(zp,"osDetector",{enumerable:!0,get:function(){return WZt.osDetector}});var KZt=fFe();Object.defineProperty(zp,"processDetector",{enumerable:!0,get:function(){return KZt.processDetector}});var YZt=pFe();Object.defineProperty(zp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return YZt.serviceInstanceIdDetector}})});var mFe=w(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});Gp.serviceInstanceIdDetector=Gp.processDetector=Gp.osDetector=Gp.hostDetector=void 0;var _q=hFe();Object.defineProperty(Gp,"hostDetector",{enumerable:!0,get:function(){return _q.hostDetector}});Object.defineProperty(Gp,"osDetector",{enumerable:!0,get:function(){return _q.osDetector}});Object.defineProperty(Gp,"processDetector",{enumerable:!0,get:function(){return _q.processDetector}});Object.defineProperty(Gp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return _q.serviceInstanceIdDetector}})});var gFe=w(TA=>{"use strict";Object.defineProperty(TA,"__esModule",{value:!0});TA.noopDetector=TA.NoopDetector=void 0;var Tq=class{detect(){return{attributes:{}}}};TA.NoopDetector=Tq;TA.noopDetector=new Tq});var yFe=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 ZZt=QUe();Object.defineProperty(pu,"envDetector",{enumerable:!0,get:function(){return ZZt.envDetector}});var vq=mFe();Object.defineProperty(pu,"hostDetector",{enumerable:!0,get:function(){return vq.hostDetector}});Object.defineProperty(pu,"osDetector",{enumerable:!0,get:function(){return vq.osDetector}});Object.defineProperty(pu,"processDetector",{enumerable:!0,get:function(){return vq.processDetector}});Object.defineProperty(pu,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return vq.serviceInstanceIdDetector}});var JZt=gFe();Object.defineProperty(pu,"noopDetector",{enumerable:!0,get:function(){return JZt.noopDetector}})});var y$=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 XZt=JUe();Object.defineProperty(ls,"detectResources",{enumerable:!0,get:function(){return XZt.detectResources}});var CP=yFe();Object.defineProperty(ls,"envDetector",{enumerable:!0,get:function(){return CP.envDetector}});Object.defineProperty(ls,"hostDetector",{enumerable:!0,get:function(){return CP.hostDetector}});Object.defineProperty(ls,"osDetector",{enumerable:!0,get:function(){return CP.osDetector}});Object.defineProperty(ls,"processDetector",{enumerable:!0,get:function(){return CP.processDetector}});Object.defineProperty(ls,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return CP.serviceInstanceIdDetector}});var g$=a$();Object.defineProperty(ls,"resourceFromAttributes",{enumerable:!0,get:function(){return g$.resourceFromAttributes}});Object.defineProperty(ls,"defaultResource",{enumerable:!0,get:function(){return g$.defaultResource}});Object.defineProperty(ls,"emptyResource",{enumerable:!0,get:function(){return g$.emptyResource}});var QZt=i$();Object.defineProperty(ls,"defaultServiceName",{enumerable:!0,get:function(){return QZt.defaultServiceName}})});var SFe=w(Rq=>{"use strict";Object.defineProperty(Rq,"__esModule",{value:!0});Rq.ExceptionEventName=void 0;Rq.ExceptionEventName="exception"});var bFe=w(Aq=>{"use strict";Object.defineProperty(Aq,"__esModule",{value:!0});Aq.SpanImpl=void 0;var ua=(Me(),ke(Ze)),la=pr(),ZE=(Nn(),ke(Mr)),$Zt=SFe(),S$=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[ZE.ATTR_EXCEPTION_MESSAGE]=t:t&&(t.code?r[ZE.ATTR_EXCEPTION_TYPE]=t.code.toString():t.name&&(r[ZE.ATTR_EXCEPTION_TYPE]=t.name),t.message&&(r[ZE.ATTR_EXCEPTION_MESSAGE]=t.message),t.stack&&(r[ZE.ATTR_EXCEPTION_STACKTRACE]=t.stack)),r[ZE.ATTR_EXCEPTION_TYPE]||r[ZE.ATTR_EXCEPTION_MESSAGE]?this.addEvent($Zt.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}};Aq.SpanImpl=S$});var vA=w(MP=>{"use strict";Object.defineProperty(MP,"__esModule",{value:!0});MP.SamplingDecision=void 0;var e6t;(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(e6t=MP.SamplingDecision||(MP.SamplingDecision={}))});var kq=w(wq=>{"use strict";Object.defineProperty(wq,"__esModule",{value:!0});wq.AlwaysOffSampler=void 0;var t6t=vA(),b$=class{shouldSample(){return{decision:t6t.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};wq.AlwaysOffSampler=b$});var xq=w(Iq=>{"use strict";Object.defineProperty(Iq,"__esModule",{value:!0});Iq.AlwaysOnSampler=void 0;var n6t=vA(),E$=class{shouldSample(){return{decision:n6t.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};Iq.AlwaysOnSampler=E$});var v$=w(Pq=>{"use strict";Object.defineProperty(Pq,"__esModule",{value:!0});Pq.ParentBasedSampler=void 0;var Oq=(Me(),ke(Ze)),r6t=pr(),EFe=kq(),_$=xq(),T$=class{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor(t){this._root=t.root,this._root||((0,r6t.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new _$.AlwaysOnSampler),this._remoteParentSampled=t.remoteParentSampled??new _$.AlwaysOnSampler,this._remoteParentNotSampled=t.remoteParentNotSampled??new EFe.AlwaysOffSampler,this._localParentSampled=t.localParentSampled??new _$.AlwaysOnSampler,this._localParentNotSampled=t.localParentNotSampled??new EFe.AlwaysOffSampler}shouldSample(t,n,r,i,s,o){let a=Oq.trace.getSpanContext(t);return!a||!(0,Oq.isSpanContextValid)(a)?this._root.shouldSample(t,n,r,i,s,o):a.isRemote?a.traceFlags&Oq.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,n,r,i,s,o):this._remoteParentNotSampled.shouldSample(t,n,r,i,s,o):a.traceFlags&Oq.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()}}`}};Pq.ParentBasedSampler=T$});var A$=w(Nq=>{"use strict";Object.defineProperty(Nq,"__esModule",{value:!0});Nq.TraceIdRatioBasedSampler=void 0;var i6t=(Me(),ke(Ze)),_Fe=vA(),R$=class{_ratio;_upperBound;constructor(t=0){this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,n){return{decision:(0,i6t.isValidTraceId)(n)&&this._accumulate(n)=1?1:t<=0?0:t}_accumulate(t){let n=0;for(let r=0;r>>0}return n}};Nq.TraceIdRatioBasedSampler=R$});var I$=w(RA=>{"use strict";Object.defineProperty(RA,"__esModule",{value:!0});RA.buildSamplerFromEnv=RA.loadDefaultConfig=void 0;var k$=(Me(),ke(Ze)),Vp=pr(),TFe=kq(),w$=xq(),Cq=v$(),vFe=A$(),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 Mq=1;function s6t(){return{sampler:AFe(),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}}}RA.loadDefaultConfig=s6t;function AFe(){let e=(0,Vp.getStringFromEnv)("OTEL_TRACES_SAMPLER")??Wp.ParentBasedAlwaysOn;switch(e){case Wp.AlwaysOn:return new w$.AlwaysOnSampler;case Wp.AlwaysOff:return new TFe.AlwaysOffSampler;case Wp.ParentBasedAlwaysOn:return new Cq.ParentBasedSampler({root:new w$.AlwaysOnSampler});case Wp.ParentBasedAlwaysOff:return new Cq.ParentBasedSampler({root:new TFe.AlwaysOffSampler});case Wp.TraceIdRatio:return new vFe.TraceIdRatioBasedSampler(RFe());case Wp.ParentBasedTraceIdRatio:return new Cq.ParentBasedSampler({root:new vFe.TraceIdRatioBasedSampler(RFe())});default:return k$.diag.error(`OTEL_TRACES_SAMPLER value "${e}" invalid, defaulting to "${Wp.ParentBasedAlwaysOn}".`),new Cq.ParentBasedSampler({root:new w$.AlwaysOnSampler})}}RA.buildSamplerFromEnv=AFe;function RFe(){let e=(0,Vp.getNumberFromEnv)("OTEL_TRACES_SAMPLER_ARG");return e==null?(k$.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${Mq}.`),Mq):e<0||e>1?(k$.diag.error(`OTEL_TRACES_SAMPLER_ARG=${e} was given, but it is out of range ([0..1]), defaulting to ${Mq}.`),Mq):e}});var x$=w(Ql=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});Ql.reconfigureLimits=Ql.mergeConfig=Ql.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=Ql.DEFAULT_ATTRIBUTE_COUNT_LIMIT=void 0;var wFe=I$(),Dq=pr();Ql.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;Ql.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function o6t(e){let t={sampler:(0,wFe.buildSamplerFromEnv)()},n=(0,wFe.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}Ql.mergeConfig=o6t;function a6t(e){let t=Object.assign({},e.spanLimits);return t.attributeCountLimit=e.spanLimits?.attributeCountLimit??e.generalLimits?.attributeCountLimit??(0,Dq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??(0,Dq.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??Ql.DEFAULT_ATTRIBUTE_COUNT_LIMIT,t.attributeValueLengthLimit=e.spanLimits?.attributeValueLengthLimit??e.generalLimits?.attributeValueLengthLimit??(0,Dq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??(0,Dq.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??Ql.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},e,{spanLimits:t})}Ql.reconfigureLimits=a6t});var kFe=w(Lq=>{"use strict";Object.defineProperty(Lq,"__esModule",{value:!0});Lq.BatchSpanProcessorBase=void 0;var AA=(Me(),ke(Ze)),Im=pr(),O$=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,Im.getNumberFromEnv)("OTEL_BSP_MAX_EXPORT_BATCH_SIZE")??512,this._maxQueueSize=typeof n?.maxQueueSize=="number"?n.maxQueueSize:(0,Im.getNumberFromEnv)("OTEL_BSP_MAX_QUEUE_SIZE")??2048,this._scheduledDelayMillis=typeof n?.scheduledDelayMillis=="number"?n.scheduledDelayMillis:(0,Im.getNumberFromEnv)("OTEL_BSP_SCHEDULE_DELAY")??5e3,this._exportTimeoutMillis=typeof n?.exportTimeoutMillis=="number"?n.exportTimeoutMillis:(0,Im.getNumberFromEnv)("OTEL_BSP_EXPORT_TIMEOUT")??3e4,this._shutdownOnce=new Im.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(AA.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&AA.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&&AA.diag.debug("maxQueueSize reached, dropping spans"),this._droppedSpansCount++;return}this._droppedSpansCount>0&&(AA.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);AA.context.with((0,Im.suppressTracing)(AA.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===Im.ExportResultCode.SUCCESS?t():n(a.error??new Error("BatchSpanProcessor: span export failed"))}),o=null;for(let a=0,c=i.length;a{(0,Im.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,Im.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)}};Lq.BatchSpanProcessorBase=O$});var IFe=w(Uq=>{"use strict";Object.defineProperty(Uq,"__esModule",{value:!0});Uq.BatchSpanProcessor=void 0;var c6t=kFe(),P$=class extends c6t.BatchSpanProcessorBase{onShutdown(){}};Uq.BatchSpanProcessor=P$});var PFe=w(jq=>{"use strict";Object.defineProperty(jq,"__esModule",{value:!0});jq.RandomIdGenerator=void 0;var u6t=8,OFe=16,N$=class{generateTraceId=xFe(OFe);generateSpanId=xFe(u6t)};jq.RandomIdGenerator=N$;var Fq=Buffer.allocUnsafe(OFe);function xFe(e){return function(){for(let n=0;n>>0,n*4);for(let n=0;n0);n++)n===e-1&&(Fq[e-1]=1);return Fq.toString("hex",0,e)}}});var NFe=w(wA=>{"use strict";Object.defineProperty(wA,"__esModule",{value:!0});wA.RandomIdGenerator=wA.BatchSpanProcessor=void 0;var l6t=IFe();Object.defineProperty(wA,"BatchSpanProcessor",{enumerable:!0,get:function(){return l6t.BatchSpanProcessor}});var d6t=PFe();Object.defineProperty(wA,"RandomIdGenerator",{enumerable:!0,get:function(){return d6t.RandomIdGenerator}})});var C$=w(kA=>{"use strict";Object.defineProperty(kA,"__esModule",{value:!0});kA.RandomIdGenerator=kA.BatchSpanProcessor=void 0;var CFe=NFe();Object.defineProperty(kA,"BatchSpanProcessor",{enumerable:!0,get:function(){return CFe.BatchSpanProcessor}});Object.defineProperty(kA,"RandomIdGenerator",{enumerable:!0,get:function(){return CFe.RandomIdGenerator}})});var MFe=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 DFe=w(qq=>{"use strict";Object.defineProperty(qq,"__esModule",{value:!0});qq.TracerMetrics=void 0;var Hq=vA(),DP=MFe(),M$=class{startedSpans;liveSpans;constructor(t){this.startedSpans=t.createCounter(DP.METRIC_OTEL_SDK_SPAN_STARTED,{unit:"{span}",description:"The number of created spans."}),this.liveSpans=t.createUpDownCounter(DP.METRIC_OTEL_SDK_SPAN_LIVE,{unit:"{span}",description:"The number of currently live spans."})}startSpan(t,n){let r=p6t(n);if(this.startedSpans.add(1,{[DP.ATTR_OTEL_SPAN_PARENT_ORIGIN]:f6t(t),[DP.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r}),n===Hq.SamplingDecision.NOT_RECORD)return()=>{};let i={[DP.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r};return this.liveSpans.add(1,i),()=>{this.liveSpans.add(-1,i)}}};qq.TracerMetrics=M$;function f6t(e){return e?e.isRemote?"remote":"local":"none"}function p6t(e){switch(e){case Hq.SamplingDecision.RECORD_AND_SAMPLED:return"RECORD_AND_SAMPLE";case Hq.SamplingDecision.RECORD:return"RECORD_ONLY";case Hq.SamplingDecision.NOT_RECORD:return"DROP"}}});var LFe=w(Bq=>{"use strict";Object.defineProperty(Bq,"__esModule",{value:!0});Bq.VERSION=void 0;Bq.VERSION="2.6.1"});var UFe=w(Gq=>{"use strict";Object.defineProperty(Gq,"__esModule",{value:!0});Gq.Tracer=void 0;var jo=(Me(),ke(Ze)),zq=pr(),h6t=bFe(),m6t=x$(),g6t=C$(),y6t=DFe(),S6t=LFe(),D$=class{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;_tracerMetrics;constructor(t,n,r,i){let s=(0,m6t.mergeConfig)(n);this._sampler=s.sampler,this._generalLimits=s.generalLimits,this._spanLimits=s.spanLimits,this._idGenerator=n.idGenerator||new g6t.RandomIdGenerator,this._resource=r,this._spanProcessor=i,this.instrumentationScope=t;let o=s.meterProvider?s.meterProvider.getMeter("@opentelemetry/sdk-trace",S6t.VERSION):jo.createNoopMeter();this._tracerMetrics=new y6t.TracerMetrics(o)}startSpan(t,n={},r=jo.context.active()){n.root&&(r=jo.trace.deleteSpan(r));let i=jo.trace.getSpan(r);if((0,zq.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,zq.sanitizeAttributes)(S.attributes)})),f=(0,zq.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,zq.sanitizeAttributes)(Object.assign(f,p.attributes));return new h6t.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}};Gq.Tracer=D$});var FFe=w(Vq=>{"use strict";Object.defineProperty(Vq,"__esModule",{value:!0});Vq.MultiSpanProcessor=void 0;var b6t=pr(),L$=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,b6t.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)})}};Vq.MultiSpanProcessor=L$});var jFe=w(JE=>{"use strict";Object.defineProperty(JE,"__esModule",{value:!0});JE.BasicTracerProvider=JE.ForceFlushState=void 0;var E6t=pr(),_6t=y$(),T6t=UFe(),v6t=I$(),R6t=FFe(),A6t=x$(),IA;(function(e){e[e.resolved=0]="resolved",e[e.timeout=1]="timeout",e[e.error=2]="error",e[e.unresolved=3]="unresolved"})(IA=JE.ForceFlushState||(JE.ForceFlushState={}));var U$=class{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor(t={}){let n=(0,E6t.merge)({},(0,v6t.loadDefaultConfig)(),(0,A6t.reconfigureLimits)(t));this._resource=n.resource??(0,_6t.defaultResource)(),this._config=Object.assign({},n,{resource:this._resource});let r=[];t.spanProcessors?.length&&r.push(...t.spanProcessors),this._activeSpanProcessor=new R6t.MultiSpanProcessor(r)}getTracer(t,n,r){let i=`${t}@${n||""}:${r?.schemaUrl||""}`;return this._tracers.has(i)||this._tracers.set(i,new T6t.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=IA.timeout},t);r.forceFlush().then(()=>{clearTimeout(o),s!==IA.timeout&&(s=IA.resolved,i(s))}).catch(a=>{clearTimeout(o),s=IA.error,i(a)})}));return new Promise((r,i)=>{Promise.all(n).then(s=>{let o=s.filter(a=>a!==IA.resolved);o.length>0?i(o):r()}).catch(s=>i([s]))})}shutdown(){return this._activeSpanProcessor.shutdown()}};JE.BasicTracerProvider=U$});var HFe=w(Wq=>{"use strict";Object.defineProperty(Wq,"__esModule",{value:!0});Wq.ConsoleSpanExporter=void 0;var F$=pr(),j$=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,F$.hrTimeToMicroseconds)(t.startTime),duration:(0,F$.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:F$.ExportResultCode.SUCCESS})}};Wq.ConsoleSpanExporter=j$});var BFe=w(Kq=>{"use strict";Object.defineProperty(Kq,"__esModule",{value:!0});Kq.InMemorySpanExporter=void 0;var qFe=pr(),H$=class{_finishedSpans=[];_stopped=!1;export(t,n){if(this._stopped)return n({code:qFe.ExportResultCode.FAILED,error:new Error("Exporter has been stopped")});this._finishedSpans.push(...t),setTimeout(()=>n({code:qFe.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}};Kq.InMemorySpanExporter=H$});var zFe=w(Zq=>{"use strict";Object.defineProperty(Zq,"__esModule",{value:!0});Zq.SimpleSpanProcessor=void 0;var w6t=(Me(),ke(Ze)),Yq=pr(),q$=class{_exporter;_shutdownOnce;_pendingExports;constructor(t){this._exporter=t,this._shutdownOnce=new Yq.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&w6t.TraceFlags.SAMPLED)===0)return;let n=this._doExport(t).catch(r=>(0,Yq.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 Yq.internal._export(this._exporter,[t]);if(n.code!==Yq.ExportResultCode.SUCCESS)throw n.error??new Error(`SimpleSpanProcessor: span export failed (status ${n})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}};Zq.SimpleSpanProcessor=q$});var GFe=w(Jq=>{"use strict";Object.defineProperty(Jq,"__esModule",{value:!0});Jq.NoopSpanProcessor=void 0;var B$=class{onStart(t,n){}onEnd(t){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}};Jq.NoopSpanProcessor=B$});var z$=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 k6t=jFe();Object.defineProperty(ti,"BasicTracerProvider",{enumerable:!0,get:function(){return k6t.BasicTracerProvider}});var VFe=C$();Object.defineProperty(ti,"BatchSpanProcessor",{enumerable:!0,get:function(){return VFe.BatchSpanProcessor}});Object.defineProperty(ti,"RandomIdGenerator",{enumerable:!0,get:function(){return VFe.RandomIdGenerator}});var I6t=HFe();Object.defineProperty(ti,"ConsoleSpanExporter",{enumerable:!0,get:function(){return I6t.ConsoleSpanExporter}});var x6t=BFe();Object.defineProperty(ti,"InMemorySpanExporter",{enumerable:!0,get:function(){return x6t.InMemorySpanExporter}});var O6t=zFe();Object.defineProperty(ti,"SimpleSpanProcessor",{enumerable:!0,get:function(){return O6t.SimpleSpanProcessor}});var P6t=GFe();Object.defineProperty(ti,"NoopSpanProcessor",{enumerable:!0,get:function(){return P6t.NoopSpanProcessor}});var N6t=kq();Object.defineProperty(ti,"AlwaysOffSampler",{enumerable:!0,get:function(){return N6t.AlwaysOffSampler}});var C6t=xq();Object.defineProperty(ti,"AlwaysOnSampler",{enumerable:!0,get:function(){return C6t.AlwaysOnSampler}});var M6t=v$();Object.defineProperty(ti,"ParentBasedSampler",{enumerable:!0,get:function(){return M6t.ParentBasedSampler}});var D6t=A$();Object.defineProperty(ti,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return D6t.TraceIdRatioBasedSampler}});var L6t=vA();Object.defineProperty(ti,"SamplingDecision",{enumerable:!0,get:function(){return L6t.SamplingDecision}})});function $$(e){if("parentSpanId"in e)return e.parentSpanId;if("parentSpanContext"in e)return e.parentSpanContext?.spanId}function eee(e){let t=e;return!!t.attributes&&typeof t.attributes=="object"}function U6t(e){return typeof e.kind=="number"}function F6t(e){return!!e.status}function ZFe(e){return!!e.name}function j6t(e){if(!eee(e))return{};let t=e.attributes[py]||e.attributes[gR],n={url:t,"http.method":e.attributes[bE]||e.attributes[_O]};!n["http.method"]&&n.url&&(n["http.method"]="GET");try{if(typeof t=="string"){let r=Ly(t);n.url=Uy(r),r.search&&(n["http.query"]=r.search),r.hash&&(n["http.fragment"]=r.hash)}}catch{}return n}function H6t(e){return U6t(e)?e.kind:$r.INTERNAL}function NA(e){return e.getValue(ree)}function QFe(e,t){return e.setValue(ree,t)}function z6t(e,t){zs(e,XFe,t)}function UP(e){return e[XFe]}function OA(e){let{traceFlags:t,traceState:n}=e,r=n?n.get(nee)==="1":!1;if(t===qa.SAMPLED)return!0;if(r)return!1;let i=n?n.get(tee):void 0,s=i?Sm(i):void 0;if(s?.sampled==="true")return!0;if(s?.sampled==="false")return!1}function $Fe(e,t,n){let r=t[bE]||t[_O];if(r)return V6t({attributes:t,name:e,kind:n},r);let i=t[SE]||t[o7],s=typeof t[zt]=="string"&&t[zt].startsWith("cache.");if(i&&!s)return G6t({attributes:t,name:e});let o=t[Ki]==="custom"?"custom":"route";if(t[y7])return{...LP(e,t,"route"),op:"rpc"};if(t[g7])return{...LP(e,t,o),op:"message"};let u=t[c7];return u?{...LP(e,t,o),op:u.toString()}:{op:void 0,description:e,source:"custom"}}function eje(e){let t=eee(e)?e.attributes:{},n=ZFe(e)?e.name:"",r=H6t(e);return $Fe(n,t,r)}function G6t({attributes:e,name:t}){let n=e[Kl];if(typeof n=="string")return{op:"db",description:n,source:e[Ki]||"custom"};if(e[Ki]==="custom")return{op:"db",description:t,source:"custom"};let r=e[a7];return{op:"db",description:r?r.toString():t,source:"task"}}function V6t({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}=K6t(n,t);if(!s)return{...LP(e,n),op:i.join(".")};let l=n[PA],d=`${r} ${s}`,f=l?`${d} (${W6t(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[Ki]==="custom",S=n[Kl],E=!b&&S==null&&(m||!y),{description:_,source:T}=E?{description:f,source:p}:LP(e,n);return{op:i.join("."),description:_,source:T,data:h}}function W6t(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 K6t(e,t){let n=e[f7],r=e[gR]||e[py],i=e[dm],s=typeof r=="string"?Ly(r):void 0,o=s?Uy(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:vm(n),url:o,query:a,fragment:c,hasRoute:!1}:s?{urlPath:o,url:o,query:a,fragment:c,hasRoute:!1}:typeof n=="string"?{urlPath:vm(n),url:o,query:a,fragment:c,hasRoute:!1}:{urlPath:void 0,url:o,query:a,fragment:c,hasRoute:!1}}function LP(e,t,n="custom"){let r=t[Ki]||n,i=t[Kl];return i&&typeof i=="string"?{description:i,source:r}:{description:e,source:r}}function tje(e){e.on("createDsc",(t,n)=>{if(!n)return;let s=vt(n).data[Ki],{description:o}=ZFe(n)?eje(n):{description:void 0};if(s!=="url"&&o&&(t.transaction=o),Os()){let a=OA(n.spanContext());t.sampled=a==null?void 0:String(a)}})}function nje(){return jt.getActiveSpan()}function rje({dsc:e,sampled:t}){let n=e?OE(e):void 0,r=new Mc.TraceState,i=n?r.set(tee,n):r;return t===!1?i.set(nee,"1"):i}function sje(){return Array.from(ije)}function tB(e){ije.add(e)}function oje(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:OA(a)}}if(n){let a=n.spanContext();return{dynamicSamplingContext:Ps(n),traceId:a.traceId,spanId:a.spanId,sampled:OA(a)}}let r=t.scope||NA(e)?.scope||Fn(),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 aje(e,{sentryTrace:t,baggage:n}){let r=WO(t,n),{traceId:i,parentSpanId:s,sampled:o,dsc:a}=r,c=ct(),u=Sm(n);if(!s||c&&!lX(c,u?.org_id))return e;let l=Q6t({traceId:i,spanId:s,sampled:o,dsc:a});return jt.setSpanContext(e,l)}function Y6t(e,t,n){let r=cje(aje(e,t));return Ve.with(r,n)}function cje(e){let t=NA(e),n={scope:t?t.scope:Fn().clone(),isolationScope:t?t.isolationScope:vn()};return QFe(e,n)}function Z6t(e){try{let t=e[G$];return Array.isArray(t)?t.join(","):t}catch{return}}function J6t(e){try{return e[Xq]}catch{return}}function X6t(e){let t=vt(e).data,n=t[gR]||t[py];if(typeof n=="string")return n;let r=e.spanContext().traceState?.get(JFe);if(r)return r}function Q6t({spanId:e,traceId:t,sampled:n,dsc:r}){let i=rje({dsc:r,sampled:n});return{traceId:t,spanId:e,isRemote:!0,traceFlags:n?qa.SAMPLED:qa.NONE,traceState:i}}function uje(e,t,n){let r=dje(),{name:i,parentSpan:s}=e;return gje(s)(()=>{let a=hje(e.scope,e.forceTransaction),u=e.onlyIfParent&&!jt.getSpan(a)?(0,Mc.suppressTracing)(a):a,l=fje(e);if(!Os()){let d=(0,Mc.isTracingSuppressed)(u)?u:(0,Mc.suppressTracing)(u);return Ve.with(d,()=>r.startActiveSpan(i,l,d,f=>(Y$(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=>(Y$(d),uf(()=>t(d),()=>{vt(d).status===void 0&&d.setStatus({code:as.ERROR})},n?()=>d.end():void 0)))})}function $6t(e,t){return uje(e,t,!0)}function e5t(e,t){return uje(e,n=>t(n,()=>n.end()),!1)}function t5t(e){let t=dje(),{name:n,parentSpan:r}=e;return gje(r)(()=>{let s=hje(e.scope,e.forceTransaction),a=e.onlyIfParent&&!jt.getSpan(s)?(0,Mc.suppressTracing)(s):s,c=fje(e);Os()||(a=(0,Mc.isTracingSuppressed)(a)?a:(0,Mc.suppressTracing)(a));let u=t.startSpan(n,c,a);return Y$(u),u})}function lje(e,t){let n=e?jt.setSpan(Ve.active(),e):jt.deleteSpan(Ve.active());return Ve.with(n,()=>t(Fn()))}function dje(){return ct()?.tracer||jt.getTracer("@sentry/opentelemetry",Cn)}function fje(e){let{startTime:t,attributes:n,kind:r,op:i,links:s}=e,o=typeof t=="number"?pje(t):t;return{attributes:i?{[zt]:i,...n}:n,kind:r,links:s,startTime:o}}function pje(e){return e<9999999999?e*1e3:e}function Y$(e){let t=e.end.bind(e);e.end=n=>t(typeof n=="number"?pje(n):n)}function hje(e,t){let n=n5t(e),r=jt.getSpan(n);if(!r||!t)return n;let i=jt.deleteSpan(n),{spanId:s,traceId:o}=r.spanContext(),a=OA(r.spanContext()),c=cs(r),u=Ps(c),l=rje({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 n5t(e){if(e){let t=UP(e);if(t)return t}return Ve.active()}function r5t(e,t){return Y6t(Ve.active(),e,t)}function i5t(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,()=>(Fn().setPropagationContext({traceId:t,sampleRand:Do()}),e()))}function mje(e,t){let n=UP(t),r=n&&jt.getSpan(n),i=r?Ny(r):xE(t);return[r?Ps(r):Fp(e,t),i]}function gje(e){return e!==void 0?t=>lje(e,t):t=>t()}function s5t(e){let t=(0,Mc.suppressTracing)(Ve.active());return Ve.with(t,e)}function yje(e){e.on("preprocessEvent",t=>{let n=nje();if(!n||t.type==="transaction")return;t.contexts={trace:Ny(n),...t.contexts};let r=cs(n);return t.sdkProcessingMetadata={dynamicSamplingContext:Ps(r),...t.sdkProcessingMetadata},t})}function o5t({span:e,scope:t,client:n,propagateTraceparent:r}={}){let i=(t&&UP(t))??Ve.active();if(e){let{scope:l}=of(e);i=l&&UP(l)||jt.setSpan(Ve.active(),e)}let{traceId:s,spanId:o,sampled:a,dynamicSamplingContext:c}=oje(i,{scope:t,client:n}),u={"sentry-trace":Oy(s,o,a),baggage:OE(c)};return r&&(u.traceparent=Py(s,o,a)),u}function Sje(){function e(){let a=Ve.active(),c=NA(a);return c||{scope:qR(),isolationScope:Wl()}}function t(a){let c=Ve.active();return Ve.with(c,()=>a(s()))}function n(a,c){let u=UP(a)||Ve.active();return Ve.with(u.setValue(W$,a),()=>c(a))}function r(a){let c=Ve.active();return Ve.with(c.setValue(V$,!0),()=>a(o()))}function i(a,c){let u=Ve.active();return Ve.with(u.setValue(K$,a),()=>c(o()))}function s(){return e().scope}function o(){return e().isolationScope}eX({withScope:t,withSetScope:n,withSetIsolationScope:i,withIsolationScope:r,getCurrentScope:s,getIsolationScope:o,startSpan:$6t,startSpanManual:e5t,startInactiveSpan:t5t,getActiveSpan:nje,suppressTracing:s5t,getTraceData:o5t,continueTrace:r5t,startNewTrace:i5t,withActiveSpan:lje})}function bje(e){class t extends e{constructor(...r){super(...r),tB("SentryContextManager")}with(r,i,s,...o){let a=NA(r),c=a?.scope||Fn(),u=a?.isolationScope||vn(),l=r.getValue(V$)===!0,d=r.getValue(W$),f=r.getValue(K$),p=d||c.clone(),h=f||(l?u.clone():u),y=QFe(r,{scope:p,isolationScope:h}).deleteValue(V$).deleteValue(W$).deleteValue(K$);return z6t(p,y),super.with(y,i,s,...o)}getAsyncLocalStorageLookup(){return{asyncLocalStorage:this._asyncLocalStorage,contextSymbol:ree}}}return t}function a5t(e){let t=new Map;for(let n of e)c5t(t,n);return Array.from(t,function([n,r]){return r})}function Eje(e){return e.attributes[Q$]===!0?void 0:$$(e)}function c5t(e,t){let n=t.spanContext().spanId,r=Eje(t);if(!r){Z$(e,{id:n,span:t,children:[]});return}let i=u5t(e,r),s=Z$(e,{id:n,span:t,parentNode:i,children:[]});i.children.push(s)}function u5t(e,t){let n=e.get(t);return n||Z$(e,{id:t,children:[]})}function Z$(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 Tje(e){let t=eee(e)?e.attributes:{},n=F6t(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=WFe(t);if(i)return i}return n.message&&l5t(n.message)?{code:2,message:n.message}:{code:2,message:"internal_error"}}}let r=WFe(t);return r||(n?.code===as.UNSET?{code:1}:{code:2,message:"unknown_error"})}function WFe(e){let t=e[lm]||e[yE],n=e[S7],r=typeof t=="number"?t:typeof t=="string"?parseInt(t):void 0;if(typeof r=="number")return ym(r);if(typeof n=="string")return{code:2,message:_je[n]||"unknown_error"}}function d5t(e){let t=e.attributes,n=t[At],r=t[zt],i=t[Ki];return{origin:n,op:r,source:i}}function f5t(e){let{op:t,description:n,data:r,origin:i="manual",source:s}=vje(e),o=of(e),a=e.attributes[sf],c={[Ki]:s,[sf]:a,[zt]:t,[At]:i,...r,...Rje(e.attributes)},{links:u}=e,{traceId:l,spanId:d}=e.spanContext(),f=$$(e),p=Tje(e),h={parent_span_id:f,span_id:d,trace_id:l,data:c,origin:i,op:t,status:CE(p),links:NE(u)},m=c[lm],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 X$(e,t,n){let r=e.span;if(r&&n.add(r),!r){e.children.forEach(S=>{X$(S,t,n)});return}let s=r.spanContext().spanId,o=r.spanContext().traceId,a=$$(r),{attributes:c,startTime:u,endTime:l,links:d}=r,{op:f,description:p,data:h,origin:m="manual"}=vje(r),g={[At]:m,[zt]:f,...Rje(c),...h},y=Tje(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:CE(y),op:f,origin:m,measurements:ME(r.events),links:NE(d)};t.push(b),e.children.forEach(S=>{X$(S,t,n)})}function vje(e){let{op:t,source:n,origin:r}=d5t(e),{op:i,description:s,source:o,data:a}=eje(e),c=t||i,u=n||o,l={...a,...p5t(e)};return{op:c,description:s,source:u,origin:r,data:l}}function Rje(e){let t={...e};return delete t[sf],delete t[Q$],delete t[Kl],t}function p5t(e){let t=e.attributes,n={};e.kind!==$r.INTERNAL&&(n["otel.kind"]=$r[e.kind]);let r=t[yE];r&&(n[lm]=r);let i=j6t(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 h5t(e,t){let n=jt.getSpan(t),r=NA(t);n&&!n.spanContext().isRemote&&YR(n,e),n?.spanContext().isRemote&&e.setAttribute(Q$,!0),t===lR&&(r={scope:qR(),isolationScope:Wl()}),r&&GO(e,r.scope,r.isolationScope),$O(e),ct()?.emit("spanStart",e)}function m5t(e){eP(e),ct()?.emit("spanEnd",e)}function g5t(e,t,n){let r=e.spanContext();if(um(r)&&r.traceId===t){if(r.isRemote){let s=OA(e.spanContext());return Zy&&Z.log(`[Tracing] Inheriting remote parent's sampled decision for ${n}: ${s}`),s}let i=OA(r);return Zy&&Z.log(`[Tracing] Inheriting parent's sampled decision for ${n}: ${i}`),i}}function xA({decision:e,context:t,spanAttributes:n,sampleRand:r,downstreamTraceSampleRate:i}){let s=y5t(t,n);return i!==void 0&&(s=s.set(B6t,`${i}`)),r!==void 0&&(s=s.set(q6t,`${r}`)),e==null?{decision:Yy.SamplingDecision.NOT_RECORD,traceState:s}:e===Yy.SamplingDecision.NOT_RECORD?{decision:e,traceState:s.set(nee,"1")}:{decision:e,traceState:s}}function y5t(e,t){let i=jt.getSpan(e)?.spanContext()?.traceState||new Mc.TraceState,s=t[gR]||t[py];return s&&typeof s=="string"&&(i=i.set(JFe,s)),i}function S5t(e){let t=jt.getSpan(e);return t&&um(t.spanContext())?t:void 0}var Mc,Yy,Q$,PA,Xq,G$,tee,nee,JFe,q6t,B6t,ree,V$,W$,K$,XFe,Zy,ije,Qq,_je,l5t,KFe,YFe,J$,$q,eB,CA=v(()=>{Nn();st();Me();Me();Mc=Re(pr(),1),Yy=Re(z$(),1),Q$="sentry.parentIsRemote",PA="sentry.graphql.operation";Xq="sentry-trace",G$="baggage",tee="sentry.dsc",nee="sentry.sampled_not_recording",JFe="sentry.url",q6t="sentry.sample_rand",B6t="sentry.sample_rate",ree=il("sentry_scopes"),V$=il("sentry_fork_isolation_scope"),W$=il("sentry_fork_set_scope"),K$=il("sentry_fork_set_isolation_scope"),XFe="_scopeContext";Zy=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;ije=new Set;Qq=class extends Mc.W3CBaggagePropagator{constructor(){super(),tB("SentryPropagator"),this._urlMatchesTargetsMap=new fu(100)}inject(t,n,r){if((0,Mc.isTracingSuppressed)(t)){Zy&&Z.log("[Tracing] Not injecting trace data for url because tracing is suppressed.");return}let i=jt.getSpan(t),s=i&&X6t(i),{tracePropagationTargets:o,propagateTraceparent:a}=ct()?.getOptions()||{};if(!FE(s,o,this._urlMatchesTargetsMap)){Zy&&Z.log("[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:",s);return}let c=Z6t(n),u=J6t(n),l=Qd.getBaggage(t)||Qd.createBaggage({}),{dynamicSamplingContext:d,traceId:f,spanId:p,sampled:h}=oje(t);if(c){let m=PE(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!==hE&&(r.set(n,Xq,Oy(f,p,h)),a&&r.set(n,"traceparent",Py(f,p,h))),super.inject(Qd.setBaggage(t,l),n,r)}extract(t,n,r){let i=r.get(n,Xq),s=r.get(n,G$),o=i?Array.isArray(i)?i[0]:i:void 0;return cje(aje(t,{sentryTrace:o,baggage:s}))}fields(){return[Xq,G$,"traceparent"]}};_je={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"},l5t=e=>Object.values(_je).includes(e);KFe=1e3,YFe=300,J$=class{constructor(t){this._finishedSpanBucketSize=t?.timeout||YFe,this._finishedSpanBuckets=new Array(this._finishedSpanBucketSize).fill(void 0),this._lastCleanupTimestampInS=Math.floor(Vl()/1e3),this._spansToBucketEntry=new WeakMap,this._sentSpans=new Map,this._debouncedFlush=ZX(this.flush.bind(this),1,{maxWait:100})}export(t){let n=Math.floor(Vl()/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&&Zy&&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=Eje(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;Zy&&Z.log(`SpanExporter exported ${r} spans, ${i} spans are waiting for their parent spans to finish`);let s=Vl()+YFe*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=a5t(t),r=new Set,i=this._getCompletedRootNodes(n);for(let s of i){let o=s.span;r.add(o);let a=f5t(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)X$(l,c,r);a.spans=c.length>KFe?c.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,KFe):c;let u=ME(o.events);u&&(a.measurements=u),dH(a)}return r}_flushSentSpanCache(){let t=Vl();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))}};$q=class{constructor(t){tB("SentrySpanProcessor"),this._exporter=new J$(t)}async forceFlush(){this._exporter.flush()}async shutdown(){this._exporter.clear()}onStart(t,n){h5t(t,n)}onEnd(t){m5t(t),this._exporter.export(t)}},eB=class{constructor(t){this._client=t,tB("SentrySampler")}shouldSample(t,n,r,i,s,o){let a=this._client.getOptions(),c=S5t(t),u=c?.spanContext();if(!Os(a))return xA({decision:void 0,context:t,spanAttributes:s});let l=s[_O]||s[bE];if(i===$r.CLIENT&&l&&(!c||u?.isRemote))return xA({decision:void 0,context:t,spanAttributes:s});let d=c?g5t(c,n,r):void 0;if(!(!c||u?.isRemote))return xA({decision:d?Yy.SamplingDecision.RECORD_AND_SAMPLED:Yy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s});let{description:p,data:h,op:m}=$Fe(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 xA({decision:void 0,context:t,spanAttributes:s});let{isolationScope:b}=NA(t)??{},S=u?.traceState?u.traceState.get(tee):void 0,E=S?Sm(S):void 0,_=cl(E?.sample_rand)??Do(),[T,R,A]=tP(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"?(Zy&&Z.log(`[Tracing] Not sampling span because HTTP method is '${x}' for ${r}`),xA({decision:Yy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:0})):(!T&&d===void 0&&(Zy&&Z.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),this._client.recordDroppedEvent("sample_rate","transaction")),{...xA({decision:T?Yy.SamplingDecision.RECORD_AND_SAMPLED:Yy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:A?R:void 0}),attributes:{[sf]:A?R:void 0}})}toString(){return"SentrySampler"}}});var Aje,iee,wje=v(()=>{Aje=Re(WUe(),1);CA();iee=bje(Aje.AsyncLocalStorageContextManager)});function see(){sl.disable(),sl.setLogger({error:Z.error,warn:Z.warn,info:Z.log,debug:Z.log,verbose:Z.log},ho.DEBUG)}var kje=v(()=>{Me();st()});import*as oee from"node:diagnostics_channel";function E5t(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&&Zl({category:"child_process",message:`Child process exited with code '${i}'`,level:i===0?"info":"warning",data:r}))}).on("error",i=>{n||(n=!0,Zl({category:"child_process",message:`Child process errored with '${i.message}'`,level:"error",data:r}))})}function _5t(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)}}}):Zl({category:"worker_thread",message:`Worker thread errored with '${r.message}'`,level:"error",data:{threadId:n}})})}var b5t,Ije,xje=v(()=>{st();b5t="ChildProcess",Ije=(e={})=>({name:b5t,setup(){oee.channel("child_process").subscribe(t=>{t&&typeof t=="object"&&"process"in t&&E5t(t.process,e)}),oee.channel("worker_threads").subscribe(t=>{t&&typeof t=="object"&&"worker"in t&&_5t(t.worker,e)})}})});import{execFile as T5t}from"node:child_process";import{readFile as v5t,readdir as R5t}from"node:fs";import*as Ho from"node:os";import{join as A5t}from"node:path";import{promisify as Pje}from"node:util";function O5t(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 P5t(){let e=Ho.platform();switch(e){case"darwin":return F5t();case"linux":return j5t();default:return{name:D5t[e]||e,version:Ho.release()}}}function N5t(){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 C5t(){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 M5t(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 F5t(){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)=>{T5t("/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 Oje(e){return e.split(" ")[0].toLowerCase()}async function j5t(){let e={kernel_version:Ho.release(),name:"Linux"};try{let t=await k5t("/etc"),n=L5t.find(a=>t.includes(a.name));if(!n)return e;let r=A5t("/etc",n.name),i=(await w5t(r,{encoding:"utf-8"})).toLowerCase(),{distros:s}=n;e.name=s.find(a=>i.indexOf(Oje(a))>=0)||s[0];let o=Oje(e.name);e.version=U5t[o]?.(i)}catch{}return e}function H5t(){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 w5t,k5t,I5t,x5t,Nje,D5t,L5t,U5t,Cje=v(()=>{w5t=Pje(v5t),k5t=Pje(R5t),I5t="Context",x5t=((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=O5t(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 P5t()),n.app&&(s.app=C5t()),n.device&&(s.device=M5t(n.device)),n.culture){let o=N5t();o&&(s.culture=o)}return n.cloudResource&&(s.cloud_resource=H5t()),s}return{name:I5t,processEvent(s){return r(s)}}}),Nje=x5t;D5t={aix:"IBM AIX",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"SunOS",win32:"Windows",ohos:"OpenHarmony",android:"Android"},L5t=[{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"]}],U5t={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 q5t}from"node:fs";import{createInterface as B5t}from"node:readline";function K5t(e,t,n){let r=e.get(t);return r===void 0?(e.set(t,n),n):r}function Y5t(e){return!!(e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:"))}function Z5t(e){return e.lineno!==void 0&&e.lineno>W5t||e.colno!==void 0&&e.colno>V5t}function J5t(e,t){let n=aee.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 X5t(e,t){if(!e.length)return[];let n=0,r=e[0];if(typeof r!="number")return[];let i=Dje(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=Dje(o,t)),n++}return s}function Q5t(e,t,n){return new Promise((r,i)=>{let s=q5t(e),o=B5t({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){Lje.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 $5t(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"||Y5t(c)||Z5t(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(Lje.get(s))continue;let o=n[s];if(!o)continue;o.sort((u,l)=>u-l);let a=X5t(o,t);if(a.every(u=>J5t(s,u)))continue;let c=K5t(aee,s,{});i.push(Q5t(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&&e8t(s.stacktrace.frames,t,aee);return e}function e8t(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;t8t(r.lineno,r,t,i)}}function Mje(e){delete e.pre_context,delete e.context_line,delete e.post_context}function t8t(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=Uje(e,n);s{st();ff();aee=new fu(10),Lje=new fu(20),z5t=7,G5t="ContextLines",V5t=1e3,W5t=1e4;n8t=((e={})=>{let t=e.frameContextLines!==void 0?e.frameContextLines:z5t;return{name:G5t,processEvent(n){return $5t(n,t)}}}),jje=n8t});async function rB(){if(nB===void 0)try{nB=!!(await import("node:inspector")).url()}catch{nB=!1}return nB}var nB,cee=v(()=>{});function Bje(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 qje(e){return e!==void 0&&(e.length===0||e==="?"||e==="")}function iB(e,t){return e===t||`Object.${e}`===t||e===`Object.${t}`||qje(e)&&qje(t)}var FP,uee=v(()=>{FP="__SENTRY_ERROR_LOCAL_VARIABLES__"});import{Worker as r8t}from"node:worker_threads";function zje(...e){Z.log("[LocalVariables]",...e)}var i8t,Gje,Vje=v(()=>{st();cee();uee();i8t="LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQ3LjAgKGE1YTRlNzMpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=";Gje=((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=>{zje("Worker error",a)}),o.once("exit",a=>{zje("Worker exit",a)}),o.unref()}return{name:"LocalVariablesAsync",async setup(s){if(!s.getOptions().includeLocalVariables)return;if(await rB()){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 Wje(e){if(e!==void 0)return e.slice(-10).reduce((t,n)=>`${t},${n.function},${n.lineno},${n.colno}`,"")}function s8t(e,t){if(t!==void 0)return Wje(e(t,1))}function Kje(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 lee,o8t,a8t,Yje,Zje=v(()=>{st();yA();cee();uee();lee=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}=Kje(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)}},o8t="LocalVariables",a8t=((e={},t)=>{let n=new fu(20),r,i=!1;function s(u){let l=Wje(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 rB()){Z.warn("Local variables capture has been disabled because the debugger was already enabled");return}try{let f=await lee.create(t),p=(m,{params:{reason:g,data:y,callFrames:b}},S)=>{if(g!=="exception"&&g!=="promiseRejection"){S();return}r?.();let E=s8t(m,y.description);if(E==null){S();return}let{add:_,next:T}=Kje(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=Bje(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:o8t,setupOnce(){a=c()},async processEvent(u){return await a,i?o(u):u},_getCachedFramesCount(){return n.size},_getFirstCachedFrame(){return n.values()[0]}}}),Yje=a8t});var Jje,Xje=v(()=>{yA();Vje();Zje();Jje=(e={})=>pf.major<19?Yje(e):Gje(e)});function jP(){try{return typeof module<"u"&&typeof module.exports<"u"}catch{return!1}}function $je(){return jP()?!1:wm>=21||wm===20&&IP>=6||wm===18&&IP>=19?!0:(Qje||(Qje=!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 Qje,sB=v(()=>{st();yA()});import{existsSync as c8t,readFileSync as tHe}from"node:fs";import{dirname as u8t,join as nHe}from"node:path";function p8t(){try{return Y.cache?Object.keys(Y.cache):[]}catch{return[]}}function h8t(){return{...d8t,...y8t(),...jP()?m8t():{}}}function m8t(){let e=Y.main?.paths||[],t=p8t(),n={},r=new Set;return t.forEach(i=>{let s=i,o=()=>{let a=s;if(s=u8t(a),!s||a===s||r.has(a))return;if(e.indexOf(s)<0)return o();let c=nHe(a,"package.json");if(r.add(a),!c8t(c))return o();try{let u=JSON.parse(tHe(c,"utf8"));n[u.name]=u.version}catch{}};o()}),n}function eHe(){return dee||(dee=h8t()),dee}function g8t(){try{let e=nHe(process.cwd(),"package.json");return JSON.parse(tHe(e,"utf8"))}catch{return{}}}function y8t(){let e=g8t();return{...e.dependencies,...e.devDependencies}}var dee,l8t,d8t,f8t,rHe,iHe=v(()=>{sB();l8t="Modules",d8t=typeof __SENTRY_SERVER_MODULES__>"u"?{}:__SENTRY_SERVER_MODULES__,f8t=(()=>({name:l8t,processEvent(e){return e.modules={...e.modules,...eHe()},e},getModules:eHe})),rHe=f8t});function HP(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:S8t;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 S8t,fee=v(()=>{st();ff();S8t=2e3});import{isMainThread as b8t}from"worker_threads";function _8t(e,t){let r=!1,i=!1,s=!1,o,a=e.getOptions();return Object.assign(c=>{let u=HP;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"),HP(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 E8t,sHe,oHe=v(()=>{st();ff();fee();E8t="OnUncaughtException",sHe=(e={})=>{let t={exitEvenIfOtherHandlersAreRegistered:!1,...e};return{name:E8t,setup(n){b8t&&global.process.on("uncaughtException",_8t(n,t))}}}});function A8t(e){if(typeof e!="object"||e===null)return{name:"",message:String(e??"")};let t=e,n=typeof t.name=="string"?t.name:"",r=typeof t.message=="string"?t.message:String(e);return{name:n,message:r}}function w8t(e,t){let n=e.name===void 0||hm(t.name,e.name,!0),r=e.message===void 0||hm(t.message,e.message);return n&&r}function k8t(e,t){let n=A8t(t);return e.some(r=>w8t(r,n))}function I8t(e,t){return function(r,i){if(ct()!==e||k8t(t.ignore??[],r))return;let s=t.mode==="strict"?"fatal":"error",o=r&&typeof r=="object"?r._sentry_active_span:void 0;(o?c=>XR(o,c):c=>c())(()=>{Wt(r,{originalException:i,captureContext:{extra:{unhandledPromiseRejection:!0},level:s},mechanism:{handled:!1,type:"auto.node.onunhandledrejection"}})}),x8t(r,t.mode)}}function x8t(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)}),HP(e))}var T8t,v8t,R8t,aHe,cHe=v(()=>{st();fee();T8t="OnUnhandledRejection",v8t=[{name:"AI_NoOutputGeneratedError"},{name:"AbortError"}],R8t=((e={})=>{let t={mode:e.mode??"warn",ignore:[...v8t,...e.ignore??[]]};return{name:T8t,setup(n){global.process.on("unhandledRejection",I8t(n,t))}}}),aHe=R8t});var O8t,uHe,lHe=v(()=>{st();O8t="ProcessSession",uHe=()=>({name:O8t,setupOnce(){pH(),process.on("beforeExit",()=>{vn().getSession()?.status!=="ok"&&iP()})}})});import*as dHe from"node:http";function N8t(e,t){let n=C8t(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=QO(i);QR(()=>{let o=dHe.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 C8t(e){try{return new URL(`${e}`)}catch{Z.warn(`[Spotlight] Invalid sidecar URL: ${e}`);return}}var pee,P8t,fHe,pHe=v(()=>{st();pee="Spotlight",P8t=((e={})=>{let t={sidecarUrl:e.sidecarUrl||"http://localhost:8969/stream"};return{name:pee,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{}N8t(n,t)}}}),fHe=P8t});import*as hHe from"node:util";function D8t(e){return!(e instanceof Error)||!("errno"in e)||typeof e.errno!="number"?!1:hHe.getSystemErrorMap().has(e.errno)}var M8t,mHe,gHe=v(()=>{M8t="NodeSystemError";mHe=(e={})=>({name:M8t,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 hee from"node:http";var Zp,oB,yHe=v(()=>{Zp=Symbol("AgentBaseInternalState"),oB=class extends hee.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 hee.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 aB(...e){Z.log("[https-proxy-agent:parse-proxy-response]",...e)}function SHe(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(),aB("onend"),n(new Error("Proxy connection ended before receiving CONNECT response"))}function c(l){o(),aB("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 QQ(e,t){let n=-1;for(let r=0;rr%2===0&&n===t)}function HUe(e,t){let n=YYt(e),r=t.statusCode,i=EP(r);Zl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function YYt(e){try{let t=tq(e.origin,e.path),n=Ly(t),r={url:Uy(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 tq(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 XQ,eq,VYt,qUe=v(()=>{st();KQ();XQ="sentry-trace",eq="baggage",VYt="traceparent"});import*as SA from"diagnostics_channel";var BUe,zUe,WE,e$=v(()=>{Me();BUe=Re(pr(),1),zUe=Re(Jt(),1);st();yA();qUe();WE=class extends zUe.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-node-fetch",Cn,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&&jUe(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&&HUe(t,n)}_subscribeToChannel(t,n){let r=wm>18||wm===18&&IP>=19,i;if(r)SA.subscribe?.(t,n),i=()=>SA.unsubscribe?.(t,n);else{let s=SA.channel(t);s.subscribe(n),i=()=>s.unsubscribe(n)}this._channelSubs.push({name:t,unsubscribe:i})}_shouldIgnoreOutgoingRequest(t){if((0,BUe.isTracingSuppressed)(Ve.active()))return!0;let n=tq(t.origin,t.path),r=this.getConfig().ignoreOutgoingRequests;return typeof r!="function"||!n?!1:r(n)}}});var ZYt,JYt,XYt,GUe,VUe=v(()=>{ZH();e$();ZYt="NodeFetch",JYt=rt(`${ZYt}.sentry`,WE,e=>e),XYt=((e={})=>({name:"NodeFetch",setupOnce(){JYt(e)}})),GUe=XYt});var n$=w(nq=>{"use strict";Object.defineProperty(nq,"__esModule",{value:!0});nq.AbstractAsyncHooksContextManager=void 0;var QYt=Y("events"),$Yt=["addListener","on","once","prependListener","prependOnceListener"],t$=class{bind(t,n){return n instanceof QYt.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),$Yt.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};nq.AbstractAsyncHooksContextManager=t$});var WUe=w(rq=>{"use strict";Object.defineProperty(rq,"__esModule",{value:!0});rq.AsyncHooksContextManager=void 0;var eZt=(Me(),ke(Ze)),tZt=Y("async_hooks"),nZt=n$(),r$=class extends nZt.AbstractAsyncHooksContextManager{_asyncHook;_contexts=new Map;_stack=[];constructor(){super(),this._asyncHook=tZt.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]??eZt.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()}};rq.AsyncHooksContextManager=r$});var KUe=w(iq=>{"use strict";Object.defineProperty(iq,"__esModule",{value:!0});iq.AsyncLocalStorageContextManager=void 0;var rZt=(Me(),ke(Ze)),iZt=Y("async_hooks"),sZt=n$(),i$=class extends sZt.AbstractAsyncHooksContextManager{_asyncLocalStorage;constructor(){super(),this._asyncLocalStorage=new iZt.AsyncLocalStorage}active(){return this._asyncLocalStorage.getStore()??rZt.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}};iq.AsyncLocalStorageContextManager=i$});var YUe=w(bA=>{"use strict";Object.defineProperty(bA,"__esModule",{value:!0});bA.AsyncLocalStorageContextManager=bA.AsyncHooksContextManager=void 0;var oZt=WUe();Object.defineProperty(bA,"AsyncHooksContextManager",{enumerable:!0,get:function(){return oZt.AsyncHooksContextManager}});var aZt=KUe();Object.defineProperty(bA,"AsyncLocalStorageContextManager",{enumerable:!0,get:function(){return aZt.AsyncLocalStorageContextManager}})});var s$=w(EA=>{"use strict";Object.defineProperty(EA,"__esModule",{value:!0});EA._clearDefaultServiceNameCache=EA.defaultServiceName=void 0;var xP;function cZt(){if(xP===void 0)try{let e=globalThis.process.argv0;xP=e?`unknown_service:${e}`:"unknown_service"}catch{xP="unknown_service"}return xP}EA.defaultServiceName=cZt;function uZt(){xP=void 0}EA._clearDefaultServiceNameCache=uZt});var ZUe=w(sq=>{"use strict";Object.defineProperty(sq,"__esModule",{value:!0});sq.isPromiseLike=void 0;var lZt=e=>e!==null&&typeof e=="object"&&typeof e.then=="function";sq.isPromiseLike=lZt});var c$=w(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});Bp.defaultResource=Bp.emptyResource=Bp.resourceFromDetectedResource=Bp.resourceFromAttributes=void 0;var PP=(Me(),ke(Ze)),o$=pr(),KE=(Nn(),ke(Mr)),dZt=s$(),OP=ZUe(),oq=class e{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(t,n){let r=new e({},n);return r._rawAttributes=JUe(t),r._asyncAttributesPending=t.filter(([i,s])=>(0,OP.isPromiseLike)(s)).length>0,r}constructor(t,n){let r=t.attributes??{};this._rawAttributes=Object.entries(r).map(([i,s])=>((0,OP.isPromiseLike)(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=JUe(this._rawAttributes),this._schemaUrl=mZt(n?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let t=0;t(0,OP.isPromiseLike)(n)?[t,n.catch(r=>{PP.diag.debug("promise rejection for resource attribute: %s - %s",t,r)})]:[t,n])}function mZt(e){if(typeof e=="string"||e===void 0)return e;PP.diag.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",e)}function gZt(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;PP.diag.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',n,r)}});var QUe=w(aq=>{"use strict";Object.defineProperty(aq,"__esModule",{value:!0});aq.detectResources=void 0;var XUe=(Me(),ke(Ze)),u$=c$(),yZt=(e={})=>(e.detectors||[]).map(n=>{try{let r=(0,u$.resourceFromDetectedResource)(n.detect(e));return XUe.diag.debug(`${n.constructor.name} found resource.`,r),r}catch(r){return XUe.diag.debug(`${n.constructor.name} failed: ${r.message}`),(0,u$.emptyResource)()}}).reduce((n,r)=>n.merge(r),(0,u$.emptyResource)());aq.detectResources=yZt});var eFe=w(cq=>{"use strict";Object.defineProperty(cq,"__esModule",{value:!0});cq.envDetector=void 0;var SZt=(Me(),ke(Ze)),bZt=(Nn(),ke(Mr)),$Ue=pr(),l$=class{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect(t){let n={},r=(0,$Ue.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),i=(0,$Ue.getStringFromEnv)("OTEL_SERVICE_NAME");if(r)try{let s=this._parseResourceAttributes(r);Object.assign(n,s)}catch(s){SZt.diag.debug(`EnvDetector failed: ${s instanceof Error?s.message:s}`)}return i&&(n[bZt.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}};cq.envDetector=new l$});var NP=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 lq=w(uq=>{"use strict";Object.defineProperty(uq,"__esModule",{value:!0});uq.execAsync=void 0;var EZt=Y("child_process"),_Zt=Y("util");uq.execAsync=_Zt.promisify(EZt.exec)});var tFe=w(dq=>{"use strict";Object.defineProperty(dq,"__esModule",{value:!0});dq.getMachineId=void 0;var TZt=lq(),vZt=(Me(),ke(Ze));async function RZt(){try{let t=(await(0,TZt.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){vZt.diag.debug(`error reading machine id: ${e}`)}}dq.getMachineId=RZt});var nFe=w(fq=>{"use strict";Object.defineProperty(fq,"__esModule",{value:!0});fq.getMachineId=void 0;var AZt=Y("fs"),wZt=(Me(),ke(Ze));async function kZt(){let e=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let t of e)try{return(await AZt.promises.readFile(t,{encoding:"utf8"})).trim()}catch(n){wZt.diag.debug(`error reading machine id: ${n}`)}}fq.getMachineId=kZt});var iFe=w(pq=>{"use strict";Object.defineProperty(pq,"__esModule",{value:!0});pq.getMachineId=void 0;var IZt=Y("fs"),xZt=lq(),rFe=(Me(),ke(Ze));async function OZt(){try{return(await IZt.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(e){rFe.diag.debug(`error reading machine id: ${e}`)}try{return(await(0,xZt.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(e){rFe.diag.debug(`error reading machine id: ${e}`)}}pq.getMachineId=OZt});var oFe=w(hq=>{"use strict";Object.defineProperty(hq,"__esModule",{value:!0});hq.getMachineId=void 0;var sFe=Y("process"),PZt=lq(),NZt=(Me(),ke(Ze));async function CZt(){let e="QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",t="%windir%\\System32\\REG.exe";sFe.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in sFe.env&&(t="%windir%\\sysnative\\cmd.exe /c "+t);try{let r=(await(0,PZt.execAsync)(`${t} ${e}`)).stdout.split("REG_SZ");if(r.length===2)return r[1].trim()}catch(n){NZt.diag.debug(`error reading machine id: ${n}`)}}hq.getMachineId=CZt});var aFe=w(mq=>{"use strict";Object.defineProperty(mq,"__esModule",{value:!0});mq.getMachineId=void 0;var MZt=(Me(),ke(Ze));async function DZt(){MZt.diag.debug("could not read machine-id: unsupported platform")}mq.getMachineId=DZt});var cFe=w(gq=>{"use strict";Object.defineProperty(gq,"__esModule",{value:!0});gq.getMachineId=void 0;var LZt=Y("process"),YE;async function UZt(){if(!YE)switch(LZt.platform){case"darwin":YE=(await Promise.resolve().then(()=>Re(tFe()))).getMachineId;break;case"linux":YE=(await Promise.resolve().then(()=>Re(nFe()))).getMachineId;break;case"freebsd":YE=(await Promise.resolve().then(()=>Re(iFe()))).getMachineId;break;case"win32":YE=(await Promise.resolve().then(()=>Re(oFe()))).getMachineId;break;default:YE=(await Promise.resolve().then(()=>Re(aFe()))).getMachineId;break}return YE()}gq.getMachineId=UZt});var d$=w(_A=>{"use strict";Object.defineProperty(_A,"__esModule",{value:!0});_A.normalizeType=_A.normalizeArch=void 0;var FZt=e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}};_A.normalizeArch=FZt;var jZt=e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}};_A.normalizeType=jZt});var lFe=w(yq=>{"use strict";Object.defineProperty(yq,"__esModule",{value:!0});yq.hostDetector=void 0;var f$=NP(),uFe=Y("os"),HZt=cFe(),qZt=d$(),p$=class{detect(t){return{attributes:{[f$.ATTR_HOST_NAME]:(0,uFe.hostname)(),[f$.ATTR_HOST_ARCH]:(0,qZt.normalizeArch)((0,uFe.arch)()),[f$.ATTR_HOST_ID]:(0,HZt.getMachineId)()}}}};yq.hostDetector=new p$});var pFe=w(Sq=>{"use strict";Object.defineProperty(Sq,"__esModule",{value:!0});Sq.osDetector=void 0;var dFe=NP(),fFe=Y("os"),BZt=d$(),h$=class{detect(t){return{attributes:{[dFe.ATTR_OS_TYPE]:(0,BZt.normalizeType)((0,fFe.platform)()),[dFe.ATTR_OS_VERSION]:(0,fFe.release)()}}}};Sq.osDetector=new h$});var hFe=w(bq=>{"use strict";Object.defineProperty(bq,"__esModule",{value:!0});bq.processDetector=void 0;var zZt=(Me(),ke(Ze)),km=NP(),GZt=Y("os"),m$=class{detect(t){let n={[km.ATTR_PROCESS_PID]:process.pid,[km.ATTR_PROCESS_EXECUTABLE_NAME]:process.title,[km.ATTR_PROCESS_EXECUTABLE_PATH]:process.execPath,[km.ATTR_PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[km.ATTR_PROCESS_RUNTIME_VERSION]:process.versions.node,[km.ATTR_PROCESS_RUNTIME_NAME]:"nodejs",[km.ATTR_PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};process.argv.length>1&&(n[km.ATTR_PROCESS_COMMAND]=process.argv[1]);try{let r=GZt.userInfo();n[km.ATTR_PROCESS_OWNER]=r.username}catch(r){zZt.diag.debug(`error obtaining process owner: ${r}`)}return{attributes:n}}};bq.processDetector=new m$});var mFe=w(Eq=>{"use strict";Object.defineProperty(Eq,"__esModule",{value:!0});Eq.serviceInstanceIdDetector=void 0;var VZt=NP(),WZt=Y("crypto"),g$=class{detect(t){return{attributes:{[VZt.ATTR_SERVICE_INSTANCE_ID]:(0,WZt.randomUUID)()}}}};Eq.serviceInstanceIdDetector=new g$});var gFe=w(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});zp.serviceInstanceIdDetector=zp.processDetector=zp.osDetector=zp.hostDetector=void 0;var KZt=lFe();Object.defineProperty(zp,"hostDetector",{enumerable:!0,get:function(){return KZt.hostDetector}});var YZt=pFe();Object.defineProperty(zp,"osDetector",{enumerable:!0,get:function(){return YZt.osDetector}});var ZZt=hFe();Object.defineProperty(zp,"processDetector",{enumerable:!0,get:function(){return ZZt.processDetector}});var JZt=mFe();Object.defineProperty(zp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return JZt.serviceInstanceIdDetector}})});var yFe=w(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});Gp.serviceInstanceIdDetector=Gp.processDetector=Gp.osDetector=Gp.hostDetector=void 0;var _q=gFe();Object.defineProperty(Gp,"hostDetector",{enumerable:!0,get:function(){return _q.hostDetector}});Object.defineProperty(Gp,"osDetector",{enumerable:!0,get:function(){return _q.osDetector}});Object.defineProperty(Gp,"processDetector",{enumerable:!0,get:function(){return _q.processDetector}});Object.defineProperty(Gp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return _q.serviceInstanceIdDetector}})});var SFe=w(TA=>{"use strict";Object.defineProperty(TA,"__esModule",{value:!0});TA.noopDetector=TA.NoopDetector=void 0;var Tq=class{detect(){return{attributes:{}}}};TA.NoopDetector=Tq;TA.noopDetector=new Tq});var bFe=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 XZt=eFe();Object.defineProperty(pu,"envDetector",{enumerable:!0,get:function(){return XZt.envDetector}});var vq=yFe();Object.defineProperty(pu,"hostDetector",{enumerable:!0,get:function(){return vq.hostDetector}});Object.defineProperty(pu,"osDetector",{enumerable:!0,get:function(){return vq.osDetector}});Object.defineProperty(pu,"processDetector",{enumerable:!0,get:function(){return vq.processDetector}});Object.defineProperty(pu,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return vq.serviceInstanceIdDetector}});var QZt=SFe();Object.defineProperty(pu,"noopDetector",{enumerable:!0,get:function(){return QZt.noopDetector}})});var S$=w(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.defaultServiceName=ls.emptyResource=ls.defaultResource=ls.resourceFromAttributes=ls.serviceInstanceIdDetector=ls.processDetector=ls.osDetector=ls.hostDetector=ls.envDetector=ls.detectResources=void 0;var $Zt=QUe();Object.defineProperty(ls,"detectResources",{enumerable:!0,get:function(){return $Zt.detectResources}});var CP=bFe();Object.defineProperty(ls,"envDetector",{enumerable:!0,get:function(){return CP.envDetector}});Object.defineProperty(ls,"hostDetector",{enumerable:!0,get:function(){return CP.hostDetector}});Object.defineProperty(ls,"osDetector",{enumerable:!0,get:function(){return CP.osDetector}});Object.defineProperty(ls,"processDetector",{enumerable:!0,get:function(){return CP.processDetector}});Object.defineProperty(ls,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return CP.serviceInstanceIdDetector}});var y$=c$();Object.defineProperty(ls,"resourceFromAttributes",{enumerable:!0,get:function(){return y$.resourceFromAttributes}});Object.defineProperty(ls,"defaultResource",{enumerable:!0,get:function(){return y$.defaultResource}});Object.defineProperty(ls,"emptyResource",{enumerable:!0,get:function(){return y$.emptyResource}});var e6t=s$();Object.defineProperty(ls,"defaultServiceName",{enumerable:!0,get:function(){return e6t.defaultServiceName}})});var EFe=w(Rq=>{"use strict";Object.defineProperty(Rq,"__esModule",{value:!0});Rq.ExceptionEventName=void 0;Rq.ExceptionEventName="exception"});var _Fe=w(Aq=>{"use strict";Object.defineProperty(Aq,"__esModule",{value:!0});Aq.SpanImpl=void 0;var ua=(Me(),ke(Ze)),la=pr(),ZE=(Nn(),ke(Mr)),t6t=EFe(),b$=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[ZE.ATTR_EXCEPTION_MESSAGE]=t:t&&(t.code?r[ZE.ATTR_EXCEPTION_TYPE]=t.code.toString():t.name&&(r[ZE.ATTR_EXCEPTION_TYPE]=t.name),t.message&&(r[ZE.ATTR_EXCEPTION_MESSAGE]=t.message),t.stack&&(r[ZE.ATTR_EXCEPTION_STACKTRACE]=t.stack)),r[ZE.ATTR_EXCEPTION_TYPE]||r[ZE.ATTR_EXCEPTION_MESSAGE]?this.addEvent(t6t.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}};Aq.SpanImpl=b$});var vA=w(MP=>{"use strict";Object.defineProperty(MP,"__esModule",{value:!0});MP.SamplingDecision=void 0;var n6t;(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(n6t=MP.SamplingDecision||(MP.SamplingDecision={}))});var kq=w(wq=>{"use strict";Object.defineProperty(wq,"__esModule",{value:!0});wq.AlwaysOffSampler=void 0;var r6t=vA(),E$=class{shouldSample(){return{decision:r6t.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};wq.AlwaysOffSampler=E$});var xq=w(Iq=>{"use strict";Object.defineProperty(Iq,"__esModule",{value:!0});Iq.AlwaysOnSampler=void 0;var i6t=vA(),_$=class{shouldSample(){return{decision:i6t.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};Iq.AlwaysOnSampler=_$});var R$=w(Pq=>{"use strict";Object.defineProperty(Pq,"__esModule",{value:!0});Pq.ParentBasedSampler=void 0;var Oq=(Me(),ke(Ze)),s6t=pr(),TFe=kq(),T$=xq(),v$=class{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor(t){this._root=t.root,this._root||((0,s6t.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new T$.AlwaysOnSampler),this._remoteParentSampled=t.remoteParentSampled??new T$.AlwaysOnSampler,this._remoteParentNotSampled=t.remoteParentNotSampled??new TFe.AlwaysOffSampler,this._localParentSampled=t.localParentSampled??new T$.AlwaysOnSampler,this._localParentNotSampled=t.localParentNotSampled??new TFe.AlwaysOffSampler}shouldSample(t,n,r,i,s,o){let a=Oq.trace.getSpanContext(t);return!a||!(0,Oq.isSpanContextValid)(a)?this._root.shouldSample(t,n,r,i,s,o):a.isRemote?a.traceFlags&Oq.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,n,r,i,s,o):this._remoteParentNotSampled.shouldSample(t,n,r,i,s,o):a.traceFlags&Oq.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()}}`}};Pq.ParentBasedSampler=v$});var w$=w(Nq=>{"use strict";Object.defineProperty(Nq,"__esModule",{value:!0});Nq.TraceIdRatioBasedSampler=void 0;var o6t=(Me(),ke(Ze)),vFe=vA(),A$=class{_ratio;_upperBound;constructor(t=0){this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,n){return{decision:(0,o6t.isValidTraceId)(n)&&this._accumulate(n)=1?1:t<=0?0:t}_accumulate(t){let n=0;for(let r=0;r>>0}return n}};Nq.TraceIdRatioBasedSampler=A$});var x$=w(RA=>{"use strict";Object.defineProperty(RA,"__esModule",{value:!0});RA.buildSamplerFromEnv=RA.loadDefaultConfig=void 0;var I$=(Me(),ke(Ze)),Vp=pr(),RFe=kq(),k$=xq(),Cq=R$(),AFe=w$(),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 Mq=1;function a6t(){return{sampler:kFe(),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}}}RA.loadDefaultConfig=a6t;function kFe(){let e=(0,Vp.getStringFromEnv)("OTEL_TRACES_SAMPLER")??Wp.ParentBasedAlwaysOn;switch(e){case Wp.AlwaysOn:return new k$.AlwaysOnSampler;case Wp.AlwaysOff:return new RFe.AlwaysOffSampler;case Wp.ParentBasedAlwaysOn:return new Cq.ParentBasedSampler({root:new k$.AlwaysOnSampler});case Wp.ParentBasedAlwaysOff:return new Cq.ParentBasedSampler({root:new RFe.AlwaysOffSampler});case Wp.TraceIdRatio:return new AFe.TraceIdRatioBasedSampler(wFe());case Wp.ParentBasedTraceIdRatio:return new Cq.ParentBasedSampler({root:new AFe.TraceIdRatioBasedSampler(wFe())});default:return I$.diag.error(`OTEL_TRACES_SAMPLER value "${e}" invalid, defaulting to "${Wp.ParentBasedAlwaysOn}".`),new Cq.ParentBasedSampler({root:new k$.AlwaysOnSampler})}}RA.buildSamplerFromEnv=kFe;function wFe(){let e=(0,Vp.getNumberFromEnv)("OTEL_TRACES_SAMPLER_ARG");return e==null?(I$.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${Mq}.`),Mq):e<0||e>1?(I$.diag.error(`OTEL_TRACES_SAMPLER_ARG=${e} was given, but it is out of range ([0..1]), defaulting to ${Mq}.`),Mq):e}});var O$=w(Ql=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});Ql.reconfigureLimits=Ql.mergeConfig=Ql.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=Ql.DEFAULT_ATTRIBUTE_COUNT_LIMIT=void 0;var IFe=x$(),Dq=pr();Ql.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;Ql.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function c6t(e){let t={sampler:(0,IFe.buildSamplerFromEnv)()},n=(0,IFe.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}Ql.mergeConfig=c6t;function u6t(e){let t=Object.assign({},e.spanLimits);return t.attributeCountLimit=e.spanLimits?.attributeCountLimit??e.generalLimits?.attributeCountLimit??(0,Dq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??(0,Dq.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??Ql.DEFAULT_ATTRIBUTE_COUNT_LIMIT,t.attributeValueLengthLimit=e.spanLimits?.attributeValueLengthLimit??e.generalLimits?.attributeValueLengthLimit??(0,Dq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??(0,Dq.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??Ql.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},e,{spanLimits:t})}Ql.reconfigureLimits=u6t});var xFe=w(Lq=>{"use strict";Object.defineProperty(Lq,"__esModule",{value:!0});Lq.BatchSpanProcessorBase=void 0;var AA=(Me(),ke(Ze)),Im=pr(),P$=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,Im.getNumberFromEnv)("OTEL_BSP_MAX_EXPORT_BATCH_SIZE")??512,this._maxQueueSize=typeof n?.maxQueueSize=="number"?n.maxQueueSize:(0,Im.getNumberFromEnv)("OTEL_BSP_MAX_QUEUE_SIZE")??2048,this._scheduledDelayMillis=typeof n?.scheduledDelayMillis=="number"?n.scheduledDelayMillis:(0,Im.getNumberFromEnv)("OTEL_BSP_SCHEDULE_DELAY")??5e3,this._exportTimeoutMillis=typeof n?.exportTimeoutMillis=="number"?n.exportTimeoutMillis:(0,Im.getNumberFromEnv)("OTEL_BSP_EXPORT_TIMEOUT")??3e4,this._shutdownOnce=new Im.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(AA.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&AA.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&&AA.diag.debug("maxQueueSize reached, dropping spans"),this._droppedSpansCount++;return}this._droppedSpansCount>0&&(AA.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);AA.context.with((0,Im.suppressTracing)(AA.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===Im.ExportResultCode.SUCCESS?t():n(a.error??new Error("BatchSpanProcessor: span export failed"))}),o=null;for(let a=0,c=i.length;a{(0,Im.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,Im.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)}};Lq.BatchSpanProcessorBase=P$});var OFe=w(Uq=>{"use strict";Object.defineProperty(Uq,"__esModule",{value:!0});Uq.BatchSpanProcessor=void 0;var l6t=xFe(),N$=class extends l6t.BatchSpanProcessorBase{onShutdown(){}};Uq.BatchSpanProcessor=N$});var CFe=w(jq=>{"use strict";Object.defineProperty(jq,"__esModule",{value:!0});jq.RandomIdGenerator=void 0;var d6t=8,NFe=16,C$=class{generateTraceId=PFe(NFe);generateSpanId=PFe(d6t)};jq.RandomIdGenerator=C$;var Fq=Buffer.allocUnsafe(NFe);function PFe(e){return function(){for(let n=0;n>>0,n*4);for(let n=0;n0);n++)n===e-1&&(Fq[e-1]=1);return Fq.toString("hex",0,e)}}});var MFe=w(wA=>{"use strict";Object.defineProperty(wA,"__esModule",{value:!0});wA.RandomIdGenerator=wA.BatchSpanProcessor=void 0;var f6t=OFe();Object.defineProperty(wA,"BatchSpanProcessor",{enumerable:!0,get:function(){return f6t.BatchSpanProcessor}});var p6t=CFe();Object.defineProperty(wA,"RandomIdGenerator",{enumerable:!0,get:function(){return p6t.RandomIdGenerator}})});var M$=w(kA=>{"use strict";Object.defineProperty(kA,"__esModule",{value:!0});kA.RandomIdGenerator=kA.BatchSpanProcessor=void 0;var DFe=MFe();Object.defineProperty(kA,"BatchSpanProcessor",{enumerable:!0,get:function(){return DFe.BatchSpanProcessor}});Object.defineProperty(kA,"RandomIdGenerator",{enumerable:!0,get:function(){return DFe.RandomIdGenerator}})});var LFe=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 UFe=w(qq=>{"use strict";Object.defineProperty(qq,"__esModule",{value:!0});qq.TracerMetrics=void 0;var Hq=vA(),DP=LFe(),D$=class{startedSpans;liveSpans;constructor(t){this.startedSpans=t.createCounter(DP.METRIC_OTEL_SDK_SPAN_STARTED,{unit:"{span}",description:"The number of created spans."}),this.liveSpans=t.createUpDownCounter(DP.METRIC_OTEL_SDK_SPAN_LIVE,{unit:"{span}",description:"The number of currently live spans."})}startSpan(t,n){let r=m6t(n);if(this.startedSpans.add(1,{[DP.ATTR_OTEL_SPAN_PARENT_ORIGIN]:h6t(t),[DP.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r}),n===Hq.SamplingDecision.NOT_RECORD)return()=>{};let i={[DP.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r};return this.liveSpans.add(1,i),()=>{this.liveSpans.add(-1,i)}}};qq.TracerMetrics=D$;function h6t(e){return e?e.isRemote?"remote":"local":"none"}function m6t(e){switch(e){case Hq.SamplingDecision.RECORD_AND_SAMPLED:return"RECORD_AND_SAMPLE";case Hq.SamplingDecision.RECORD:return"RECORD_ONLY";case Hq.SamplingDecision.NOT_RECORD:return"DROP"}}});var FFe=w(Bq=>{"use strict";Object.defineProperty(Bq,"__esModule",{value:!0});Bq.VERSION=void 0;Bq.VERSION="2.6.1"});var jFe=w(Gq=>{"use strict";Object.defineProperty(Gq,"__esModule",{value:!0});Gq.Tracer=void 0;var jo=(Me(),ke(Ze)),zq=pr(),g6t=_Fe(),y6t=O$(),S6t=M$(),b6t=UFe(),E6t=FFe(),L$=class{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;_tracerMetrics;constructor(t,n,r,i){let s=(0,y6t.mergeConfig)(n);this._sampler=s.sampler,this._generalLimits=s.generalLimits,this._spanLimits=s.spanLimits,this._idGenerator=n.idGenerator||new S6t.RandomIdGenerator,this._resource=r,this._spanProcessor=i,this.instrumentationScope=t;let o=s.meterProvider?s.meterProvider.getMeter("@opentelemetry/sdk-trace",E6t.VERSION):jo.createNoopMeter();this._tracerMetrics=new b6t.TracerMetrics(o)}startSpan(t,n={},r=jo.context.active()){n.root&&(r=jo.trace.deleteSpan(r));let i=jo.trace.getSpan(r);if((0,zq.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,zq.sanitizeAttributes)(S.attributes)})),f=(0,zq.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,zq.sanitizeAttributes)(Object.assign(f,p.attributes));return new g6t.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}};Gq.Tracer=L$});var HFe=w(Vq=>{"use strict";Object.defineProperty(Vq,"__esModule",{value:!0});Vq.MultiSpanProcessor=void 0;var _6t=pr(),U$=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,_6t.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)})}};Vq.MultiSpanProcessor=U$});var qFe=w(JE=>{"use strict";Object.defineProperty(JE,"__esModule",{value:!0});JE.BasicTracerProvider=JE.ForceFlushState=void 0;var T6t=pr(),v6t=S$(),R6t=jFe(),A6t=x$(),w6t=HFe(),k6t=O$(),IA;(function(e){e[e.resolved=0]="resolved",e[e.timeout=1]="timeout",e[e.error=2]="error",e[e.unresolved=3]="unresolved"})(IA=JE.ForceFlushState||(JE.ForceFlushState={}));var F$=class{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor(t={}){let n=(0,T6t.merge)({},(0,A6t.loadDefaultConfig)(),(0,k6t.reconfigureLimits)(t));this._resource=n.resource??(0,v6t.defaultResource)(),this._config=Object.assign({},n,{resource:this._resource});let r=[];t.spanProcessors?.length&&r.push(...t.spanProcessors),this._activeSpanProcessor=new w6t.MultiSpanProcessor(r)}getTracer(t,n,r){let i=`${t}@${n||""}:${r?.schemaUrl||""}`;return this._tracers.has(i)||this._tracers.set(i,new R6t.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=IA.timeout},t);r.forceFlush().then(()=>{clearTimeout(o),s!==IA.timeout&&(s=IA.resolved,i(s))}).catch(a=>{clearTimeout(o),s=IA.error,i(a)})}));return new Promise((r,i)=>{Promise.all(n).then(s=>{let o=s.filter(a=>a!==IA.resolved);o.length>0?i(o):r()}).catch(s=>i([s]))})}shutdown(){return this._activeSpanProcessor.shutdown()}};JE.BasicTracerProvider=F$});var BFe=w(Wq=>{"use strict";Object.defineProperty(Wq,"__esModule",{value:!0});Wq.ConsoleSpanExporter=void 0;var j$=pr(),H$=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,j$.hrTimeToMicroseconds)(t.startTime),duration:(0,j$.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:j$.ExportResultCode.SUCCESS})}};Wq.ConsoleSpanExporter=H$});var GFe=w(Kq=>{"use strict";Object.defineProperty(Kq,"__esModule",{value:!0});Kq.InMemorySpanExporter=void 0;var zFe=pr(),q$=class{_finishedSpans=[];_stopped=!1;export(t,n){if(this._stopped)return n({code:zFe.ExportResultCode.FAILED,error:new Error("Exporter has been stopped")});this._finishedSpans.push(...t),setTimeout(()=>n({code:zFe.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}};Kq.InMemorySpanExporter=q$});var VFe=w(Zq=>{"use strict";Object.defineProperty(Zq,"__esModule",{value:!0});Zq.SimpleSpanProcessor=void 0;var I6t=(Me(),ke(Ze)),Yq=pr(),B$=class{_exporter;_shutdownOnce;_pendingExports;constructor(t){this._exporter=t,this._shutdownOnce=new Yq.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&I6t.TraceFlags.SAMPLED)===0)return;let n=this._doExport(t).catch(r=>(0,Yq.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 Yq.internal._export(this._exporter,[t]);if(n.code!==Yq.ExportResultCode.SUCCESS)throw n.error??new Error(`SimpleSpanProcessor: span export failed (status ${n})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}};Zq.SimpleSpanProcessor=B$});var WFe=w(Jq=>{"use strict";Object.defineProperty(Jq,"__esModule",{value:!0});Jq.NoopSpanProcessor=void 0;var z$=class{onStart(t,n){}onEnd(t){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}};Jq.NoopSpanProcessor=z$});var G$=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 x6t=qFe();Object.defineProperty(ti,"BasicTracerProvider",{enumerable:!0,get:function(){return x6t.BasicTracerProvider}});var KFe=M$();Object.defineProperty(ti,"BatchSpanProcessor",{enumerable:!0,get:function(){return KFe.BatchSpanProcessor}});Object.defineProperty(ti,"RandomIdGenerator",{enumerable:!0,get:function(){return KFe.RandomIdGenerator}});var O6t=BFe();Object.defineProperty(ti,"ConsoleSpanExporter",{enumerable:!0,get:function(){return O6t.ConsoleSpanExporter}});var P6t=GFe();Object.defineProperty(ti,"InMemorySpanExporter",{enumerable:!0,get:function(){return P6t.InMemorySpanExporter}});var N6t=VFe();Object.defineProperty(ti,"SimpleSpanProcessor",{enumerable:!0,get:function(){return N6t.SimpleSpanProcessor}});var C6t=WFe();Object.defineProperty(ti,"NoopSpanProcessor",{enumerable:!0,get:function(){return C6t.NoopSpanProcessor}});var M6t=kq();Object.defineProperty(ti,"AlwaysOffSampler",{enumerable:!0,get:function(){return M6t.AlwaysOffSampler}});var D6t=xq();Object.defineProperty(ti,"AlwaysOnSampler",{enumerable:!0,get:function(){return D6t.AlwaysOnSampler}});var L6t=R$();Object.defineProperty(ti,"ParentBasedSampler",{enumerable:!0,get:function(){return L6t.ParentBasedSampler}});var U6t=w$();Object.defineProperty(ti,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return U6t.TraceIdRatioBasedSampler}});var F6t=vA();Object.defineProperty(ti,"SamplingDecision",{enumerable:!0,get:function(){return F6t.SamplingDecision}})});function eee(e){if("parentSpanId"in e)return e.parentSpanId;if("parentSpanContext"in e)return e.parentSpanContext?.spanId}function tee(e){let t=e;return!!t.attributes&&typeof t.attributes=="object"}function j6t(e){return typeof e.kind=="number"}function H6t(e){return!!e.status}function XFe(e){return!!e.name}function q6t(e){if(!tee(e))return{};let t=e.attributes[py]||e.attributes[gR],n={url:t,"http.method":e.attributes[bE]||e.attributes[_O]};!n["http.method"]&&n.url&&(n["http.method"]="GET");try{if(typeof t=="string"){let r=Ly(t);n.url=Uy(r),r.search&&(n["http.query"]=r.search),r.hash&&(n["http.fragment"]=r.hash)}}catch{}return n}function B6t(e){return j6t(e)?e.kind:$r.INTERNAL}function NA(e){return e.getValue(iee)}function eje(e,t){return e.setValue(iee,t)}function V6t(e,t){zs(e,$Fe,t)}function UP(e){return e[$Fe]}function OA(e){let{traceFlags:t,traceState:n}=e,r=n?n.get(ree)==="1":!1;if(t===qa.SAMPLED)return!0;if(r)return!1;let i=n?n.get(nee):void 0,s=i?Sm(i):void 0;if(s?.sampled==="true")return!0;if(s?.sampled==="false")return!1}function tje(e,t,n){let r=t[bE]||t[_O];if(r)return K6t({attributes:t,name:e,kind:n},r);let i=t[SE]||t[a7],s=typeof t[zt]=="string"&&t[zt].startsWith("cache.");if(i&&!s)return W6t({attributes:t,name:e});let o=t[Ki]==="custom"?"custom":"route";if(t[S7])return{...LP(e,t,"route"),op:"rpc"};if(t[y7])return{...LP(e,t,o),op:"message"};let u=t[u7];return u?{...LP(e,t,o),op:u.toString()}:{op:void 0,description:e,source:"custom"}}function nje(e){let t=tee(e)?e.attributes:{},n=XFe(e)?e.name:"",r=B6t(e);return tje(n,t,r)}function W6t({attributes:e,name:t}){let n=e[Kl];if(typeof n=="string")return{op:"db",description:n,source:e[Ki]||"custom"};if(e[Ki]==="custom")return{op:"db",description:t,source:"custom"};let r=e[c7];return{op:"db",description:r?r.toString():t,source:"task"}}function K6t({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}=Z6t(n,t);if(!s)return{...LP(e,n),op:i.join(".")};let l=n[PA],d=`${r} ${s}`,f=l?`${d} (${Y6t(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[Ki]==="custom",S=n[Kl],E=!b&&S==null&&(m||!y),{description:_,source:T}=E?{description:f,source:p}:LP(e,n);return{op:i.join("."),description:_,source:T,data:h}}function Y6t(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 Z6t(e,t){let n=e[p7],r=e[gR]||e[py],i=e[dm],s=typeof r=="string"?Ly(r):void 0,o=s?Uy(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:vm(n),url:o,query:a,fragment:c,hasRoute:!1}:s?{urlPath:o,url:o,query:a,fragment:c,hasRoute:!1}:typeof n=="string"?{urlPath:vm(n),url:o,query:a,fragment:c,hasRoute:!1}:{urlPath:void 0,url:o,query:a,fragment:c,hasRoute:!1}}function LP(e,t,n="custom"){let r=t[Ki]||n,i=t[Kl];return i&&typeof i=="string"?{description:i,source:r}:{description:e,source:r}}function rje(e){e.on("createDsc",(t,n)=>{if(!n)return;let s=vt(n).data[Ki],{description:o}=XFe(n)?nje(n):{description:void 0};if(s!=="url"&&o&&(t.transaction=o),Os()){let a=OA(n.spanContext());t.sampled=a==null?void 0:String(a)}})}function ije(){return jt.getActiveSpan()}function sje({dsc:e,sampled:t}){let n=e?OE(e):void 0,r=new Mc.TraceState,i=n?r.set(nee,n):r;return t===!1?i.set(ree,"1"):i}function aje(){return Array.from(oje)}function tB(e){oje.add(e)}function cje(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:OA(a)}}if(n){let a=n.spanContext();return{dynamicSamplingContext:Ps(n),traceId:a.traceId,spanId:a.spanId,sampled:OA(a)}}let r=t.scope||NA(e)?.scope||Fn(),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 uje(e,{sentryTrace:t,baggage:n}){let r=WO(t,n),{traceId:i,parentSpanId:s,sampled:o,dsc:a}=r,c=ct(),u=Sm(n);if(!s||c&&!dX(c,u?.org_id))return e;let l=e5t({traceId:i,spanId:s,sampled:o,dsc:a});return jt.setSpanContext(e,l)}function J6t(e,t,n){let r=lje(uje(e,t));return Ve.with(r,n)}function lje(e){let t=NA(e),n={scope:t?t.scope:Fn().clone(),isolationScope:t?t.isolationScope:vn()};return eje(e,n)}function X6t(e){try{let t=e[V$];return Array.isArray(t)?t.join(","):t}catch{return}}function Q6t(e){try{return e[Xq]}catch{return}}function $6t(e){let t=vt(e).data,n=t[gR]||t[py];if(typeof n=="string")return n;let r=e.spanContext().traceState?.get(QFe);if(r)return r}function e5t({spanId:e,traceId:t,sampled:n,dsc:r}){let i=sje({dsc:r,sampled:n});return{traceId:t,spanId:e,isRemote:!0,traceFlags:n?qa.SAMPLED:qa.NONE,traceState:i}}function dje(e,t,n){let r=pje(),{name:i,parentSpan:s}=e;return Sje(s)(()=>{let a=gje(e.scope,e.forceTransaction),u=e.onlyIfParent&&!jt.getSpan(a)?(0,Mc.suppressTracing)(a):a,l=hje(e);if(!Os()){let d=(0,Mc.isTracingSuppressed)(u)?u:(0,Mc.suppressTracing)(u);return Ve.with(d,()=>r.startActiveSpan(i,l,d,f=>(Z$(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=>(Z$(d),uf(()=>t(d),()=>{vt(d).status===void 0&&d.setStatus({code:as.ERROR})},n?()=>d.end():void 0)))})}function t5t(e,t){return dje(e,t,!0)}function n5t(e,t){return dje(e,n=>t(n,()=>n.end()),!1)}function r5t(e){let t=pje(),{name:n,parentSpan:r}=e;return Sje(r)(()=>{let s=gje(e.scope,e.forceTransaction),a=e.onlyIfParent&&!jt.getSpan(s)?(0,Mc.suppressTracing)(s):s,c=hje(e);Os()||(a=(0,Mc.isTracingSuppressed)(a)?a:(0,Mc.suppressTracing)(a));let u=t.startSpan(n,c,a);return Z$(u),u})}function fje(e,t){let n=e?jt.setSpan(Ve.active(),e):jt.deleteSpan(Ve.active());return Ve.with(n,()=>t(Fn()))}function pje(){return ct()?.tracer||jt.getTracer("@sentry/opentelemetry",Cn)}function hje(e){let{startTime:t,attributes:n,kind:r,op:i,links:s}=e,o=typeof t=="number"?mje(t):t;return{attributes:i?{[zt]:i,...n}:n,kind:r,links:s,startTime:o}}function mje(e){return e<9999999999?e*1e3:e}function Z$(e){let t=e.end.bind(e);e.end=n=>t(typeof n=="number"?mje(n):n)}function gje(e,t){let n=i5t(e),r=jt.getSpan(n);if(!r||!t)return n;let i=jt.deleteSpan(n),{spanId:s,traceId:o}=r.spanContext(),a=OA(r.spanContext()),c=cs(r),u=Ps(c),l=sje({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 i5t(e){if(e){let t=UP(e);if(t)return t}return Ve.active()}function s5t(e,t){return J6t(Ve.active(),e,t)}function o5t(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,()=>(Fn().setPropagationContext({traceId:t,sampleRand:Do()}),e()))}function yje(e,t){let n=UP(t),r=n&&jt.getSpan(n),i=r?Ny(r):xE(t);return[r?Ps(r):Fp(e,t),i]}function Sje(e){return e!==void 0?t=>fje(e,t):t=>t()}function a5t(e){let t=(0,Mc.suppressTracing)(Ve.active());return Ve.with(t,e)}function bje(e){e.on("preprocessEvent",t=>{let n=ije();if(!n||t.type==="transaction")return;t.contexts={trace:Ny(n),...t.contexts};let r=cs(n);return t.sdkProcessingMetadata={dynamicSamplingContext:Ps(r),...t.sdkProcessingMetadata},t})}function c5t({span:e,scope:t,client:n,propagateTraceparent:r}={}){let i=(t&&UP(t))??Ve.active();if(e){let{scope:l}=of(e);i=l&&UP(l)||jt.setSpan(Ve.active(),e)}let{traceId:s,spanId:o,sampled:a,dynamicSamplingContext:c}=cje(i,{scope:t,client:n}),u={"sentry-trace":Oy(s,o,a),baggage:OE(c)};return r&&(u.traceparent=Py(s,o,a)),u}function Eje(){function e(){let a=Ve.active(),c=NA(a);return c||{scope:qR(),isolationScope:Wl()}}function t(a){let c=Ve.active();return Ve.with(c,()=>a(s()))}function n(a,c){let u=UP(a)||Ve.active();return Ve.with(u.setValue(K$,a),()=>c(a))}function r(a){let c=Ve.active();return Ve.with(c.setValue(W$,!0),()=>a(o()))}function i(a,c){let u=Ve.active();return Ve.with(u.setValue(Y$,a),()=>c(o()))}function s(){return e().scope}function o(){return e().isolationScope}tX({withScope:t,withSetScope:n,withSetIsolationScope:i,withIsolationScope:r,getCurrentScope:s,getIsolationScope:o,startSpan:t5t,startSpanManual:n5t,startInactiveSpan:r5t,getActiveSpan:ije,suppressTracing:a5t,getTraceData:c5t,continueTrace:s5t,startNewTrace:o5t,withActiveSpan:fje})}function _je(e){class t extends e{constructor(...r){super(...r),tB("SentryContextManager")}with(r,i,s,...o){let a=NA(r),c=a?.scope||Fn(),u=a?.isolationScope||vn(),l=r.getValue(W$)===!0,d=r.getValue(K$),f=r.getValue(Y$),p=d||c.clone(),h=f||(l?u.clone():u),y=eje(r,{scope:p,isolationScope:h}).deleteValue(W$).deleteValue(K$).deleteValue(Y$);return V6t(p,y),super.with(y,i,s,...o)}getAsyncLocalStorageLookup(){return{asyncLocalStorage:this._asyncLocalStorage,contextSymbol:iee}}}return t}function u5t(e){let t=new Map;for(let n of e)l5t(t,n);return Array.from(t,function([n,r]){return r})}function Tje(e){return e.attributes[$$]===!0?void 0:eee(e)}function l5t(e,t){let n=t.spanContext().spanId,r=Tje(t);if(!r){J$(e,{id:n,span:t,children:[]});return}let i=d5t(e,r),s=J$(e,{id:n,span:t,parentNode:i,children:[]});i.children.push(s)}function d5t(e,t){let n=e.get(t);return n||J$(e,{id:t,children:[]})}function J$(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 Rje(e){let t=tee(e)?e.attributes:{},n=H6t(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=YFe(t);if(i)return i}return n.message&&f5t(n.message)?{code:2,message:n.message}:{code:2,message:"internal_error"}}}let r=YFe(t);return r||(n?.code===as.UNSET?{code:1}:{code:2,message:"unknown_error"})}function YFe(e){let t=e[lm]||e[yE],n=e[b7],r=typeof t=="number"?t:typeof t=="string"?parseInt(t):void 0;if(typeof r=="number")return ym(r);if(typeof n=="string")return{code:2,message:vje[n]||"unknown_error"}}function p5t(e){let t=e.attributes,n=t[At],r=t[zt],i=t[Ki];return{origin:n,op:r,source:i}}function h5t(e){let{op:t,description:n,data:r,origin:i="manual",source:s}=Aje(e),o=of(e),a=e.attributes[sf],c={[Ki]:s,[sf]:a,[zt]:t,[At]:i,...r,...wje(e.attributes)},{links:u}=e,{traceId:l,spanId:d}=e.spanContext(),f=eee(e),p=Rje(e),h={parent_span_id:f,span_id:d,trace_id:l,data:c,origin:i,op:t,status:CE(p),links:NE(u)},m=c[lm],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 Q$(e,t,n){let r=e.span;if(r&&n.add(r),!r){e.children.forEach(S=>{Q$(S,t,n)});return}let s=r.spanContext().spanId,o=r.spanContext().traceId,a=eee(r),{attributes:c,startTime:u,endTime:l,links:d}=r,{op:f,description:p,data:h,origin:m="manual"}=Aje(r),g={[At]:m,[zt]:f,...wje(c),...h},y=Rje(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:CE(y),op:f,origin:m,measurements:ME(r.events),links:NE(d)};t.push(b),e.children.forEach(S=>{Q$(S,t,n)})}function Aje(e){let{op:t,source:n,origin:r}=p5t(e),{op:i,description:s,source:o,data:a}=nje(e),c=t||i,u=n||o,l={...a,...m5t(e)};return{op:c,description:s,source:u,origin:r,data:l}}function wje(e){let t={...e};return delete t[sf],delete t[$$],delete t[Kl],t}function m5t(e){let t=e.attributes,n={};e.kind!==$r.INTERNAL&&(n["otel.kind"]=$r[e.kind]);let r=t[yE];r&&(n[lm]=r);let i=q6t(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 g5t(e,t){let n=jt.getSpan(t),r=NA(t);n&&!n.spanContext().isRemote&&YR(n,e),n?.spanContext().isRemote&&e.setAttribute($$,!0),t===lR&&(r={scope:qR(),isolationScope:Wl()}),r&&GO(e,r.scope,r.isolationScope),$O(e),ct()?.emit("spanStart",e)}function y5t(e){eP(e),ct()?.emit("spanEnd",e)}function S5t(e,t,n){let r=e.spanContext();if(um(r)&&r.traceId===t){if(r.isRemote){let s=OA(e.spanContext());return Zy&&Z.log(`[Tracing] Inheriting remote parent's sampled decision for ${n}: ${s}`),s}let i=OA(r);return Zy&&Z.log(`[Tracing] Inheriting parent's sampled decision for ${n}: ${i}`),i}}function xA({decision:e,context:t,spanAttributes:n,sampleRand:r,downstreamTraceSampleRate:i}){let s=b5t(t,n);return i!==void 0&&(s=s.set(G6t,`${i}`)),r!==void 0&&(s=s.set(z6t,`${r}`)),e==null?{decision:Yy.SamplingDecision.NOT_RECORD,traceState:s}:e===Yy.SamplingDecision.NOT_RECORD?{decision:e,traceState:s.set(ree,"1")}:{decision:e,traceState:s}}function b5t(e,t){let i=jt.getSpan(e)?.spanContext()?.traceState||new Mc.TraceState,s=t[gR]||t[py];return s&&typeof s=="string"&&(i=i.set(QFe,s)),i}function E5t(e){let t=jt.getSpan(e);return t&&um(t.spanContext())?t:void 0}var Mc,Yy,$$,PA,Xq,V$,nee,ree,QFe,z6t,G6t,iee,W$,K$,Y$,$Fe,Zy,oje,Qq,vje,f5t,ZFe,JFe,X$,$q,eB,CA=v(()=>{Nn();st();Me();Me();Mc=Re(pr(),1),Yy=Re(G$(),1),$$="sentry.parentIsRemote",PA="sentry.graphql.operation";Xq="sentry-trace",V$="baggage",nee="sentry.dsc",ree="sentry.sampled_not_recording",QFe="sentry.url",z6t="sentry.sample_rand",G6t="sentry.sample_rate",iee=il("sentry_scopes"),W$=il("sentry_fork_isolation_scope"),K$=il("sentry_fork_set_scope"),Y$=il("sentry_fork_set_isolation_scope"),$Fe="_scopeContext";Zy=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;oje=new Set;Qq=class extends Mc.W3CBaggagePropagator{constructor(){super(),tB("SentryPropagator"),this._urlMatchesTargetsMap=new fu(100)}inject(t,n,r){if((0,Mc.isTracingSuppressed)(t)){Zy&&Z.log("[Tracing] Not injecting trace data for url because tracing is suppressed.");return}let i=jt.getSpan(t),s=i&&$6t(i),{tracePropagationTargets:o,propagateTraceparent:a}=ct()?.getOptions()||{};if(!FE(s,o,this._urlMatchesTargetsMap)){Zy&&Z.log("[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:",s);return}let c=X6t(n),u=Q6t(n),l=Qd.getBaggage(t)||Qd.createBaggage({}),{dynamicSamplingContext:d,traceId:f,spanId:p,sampled:h}=cje(t);if(c){let m=PE(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!==hE&&(r.set(n,Xq,Oy(f,p,h)),a&&r.set(n,"traceparent",Py(f,p,h))),super.inject(Qd.setBaggage(t,l),n,r)}extract(t,n,r){let i=r.get(n,Xq),s=r.get(n,V$),o=i?Array.isArray(i)?i[0]:i:void 0;return lje(uje(t,{sentryTrace:o,baggage:s}))}fields(){return[Xq,V$,"traceparent"]}};vje={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"},f5t=e=>Object.values(vje).includes(e);ZFe=1e3,JFe=300,X$=class{constructor(t){this._finishedSpanBucketSize=t?.timeout||JFe,this._finishedSpanBuckets=new Array(this._finishedSpanBucketSize).fill(void 0),this._lastCleanupTimestampInS=Math.floor(Vl()/1e3),this._spansToBucketEntry=new WeakMap,this._sentSpans=new Map,this._debouncedFlush=JX(this.flush.bind(this),1,{maxWait:100})}export(t){let n=Math.floor(Vl()/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&&Zy&&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=Tje(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;Zy&&Z.log(`SpanExporter exported ${r} spans, ${i} spans are waiting for their parent spans to finish`);let s=Vl()+JFe*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=h5t(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)Q$(l,c,r);a.spans=c.length>ZFe?c.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,ZFe):c;let u=ME(o.events);u&&(a.measurements=u),dH(a)}return r}_flushSentSpanCache(){let t=Vl();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))}};$q=class{constructor(t){tB("SentrySpanProcessor"),this._exporter=new X$(t)}async forceFlush(){this._exporter.flush()}async shutdown(){this._exporter.clear()}onStart(t,n){g5t(t,n)}onEnd(t){y5t(t),this._exporter.export(t)}},eB=class{constructor(t){this._client=t,tB("SentrySampler")}shouldSample(t,n,r,i,s,o){let a=this._client.getOptions(),c=E5t(t),u=c?.spanContext();if(!Os(a))return xA({decision:void 0,context:t,spanAttributes:s});let l=s[_O]||s[bE];if(i===$r.CLIENT&&l&&(!c||u?.isRemote))return xA({decision:void 0,context:t,spanAttributes:s});let d=c?S5t(c,n,r):void 0;if(!(!c||u?.isRemote))return xA({decision:d?Yy.SamplingDecision.RECORD_AND_SAMPLED:Yy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s});let{description:p,data:h,op:m}=tje(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 xA({decision:void 0,context:t,spanAttributes:s});let{isolationScope:b}=NA(t)??{},S=u?.traceState?u.traceState.get(nee):void 0,E=S?Sm(S):void 0,_=cl(E?.sample_rand)??Do(),[T,R,A]=tP(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"?(Zy&&Z.log(`[Tracing] Not sampling span because HTTP method is '${x}' for ${r}`),xA({decision:Yy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:0})):(!T&&d===void 0&&(Zy&&Z.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),this._client.recordDroppedEvent("sample_rate","transaction")),{...xA({decision:T?Yy.SamplingDecision.RECORD_AND_SAMPLED:Yy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:A?R:void 0}),attributes:{[sf]:A?R:void 0}})}toString(){return"SentrySampler"}}});var kje,see,Ije=v(()=>{kje=Re(YUe(),1);CA();see=_je(kje.AsyncLocalStorageContextManager)});function oee(){sl.disable(),sl.setLogger({error:Z.error,warn:Z.warn,info:Z.log,debug:Z.log,verbose:Z.log},ho.DEBUG)}var xje=v(()=>{Me();st()});import*as aee from"node:diagnostics_channel";function T5t(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&&Zl({category:"child_process",message:`Child process exited with code '${i}'`,level:i===0?"info":"warning",data:r}))}).on("error",i=>{n||(n=!0,Zl({category:"child_process",message:`Child process errored with '${i.message}'`,level:"error",data:r}))})}function v5t(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)}}}):Zl({category:"worker_thread",message:`Worker thread errored with '${r.message}'`,level:"error",data:{threadId:n}})})}var _5t,Oje,Pje=v(()=>{st();_5t="ChildProcess",Oje=(e={})=>({name:_5t,setup(){aee.channel("child_process").subscribe(t=>{t&&typeof t=="object"&&"process"in t&&T5t(t.process,e)}),aee.channel("worker_threads").subscribe(t=>{t&&typeof t=="object"&&"worker"in t&&v5t(t.worker,e)})}})});import{execFile as R5t}from"node:child_process";import{readFile as A5t,readdir as w5t}from"node:fs";import*as Ho from"node:os";import{join as k5t}from"node:path";import{promisify as Cje}from"node:util";function N5t(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 C5t(){let e=Ho.platform();switch(e){case"darwin":return H5t();case"linux":return q5t();default:return{name:U5t[e]||e,version:Ho.release()}}}function M5t(){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 D5t(){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 L5t(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 H5t(){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)=>{R5t("/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 Nje(e){return e.split(" ")[0].toLowerCase()}async function q5t(){let e={kernel_version:Ho.release(),name:"Linux"};try{let t=await x5t("/etc"),n=F5t.find(a=>t.includes(a.name));if(!n)return e;let r=k5t("/etc",n.name),i=(await I5t(r,{encoding:"utf-8"})).toLowerCase(),{distros:s}=n;e.name=s.find(a=>i.indexOf(Nje(a))>=0)||s[0];let o=Nje(e.name);e.version=j5t[o]?.(i)}catch{}return e}function B5t(){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 I5t,x5t,O5t,P5t,Mje,U5t,F5t,j5t,Dje=v(()=>{I5t=Cje(A5t),x5t=Cje(w5t),O5t="Context",P5t=((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=N5t(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 C5t()),n.app&&(s.app=D5t()),n.device&&(s.device=L5t(n.device)),n.culture){let o=M5t();o&&(s.culture=o)}return n.cloudResource&&(s.cloud_resource=B5t()),s}return{name:O5t,processEvent(s){return r(s)}}}),Mje=P5t;U5t={aix:"IBM AIX",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"SunOS",win32:"Windows",ohos:"OpenHarmony",android:"Android"},F5t=[{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"]}],j5t={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 z5t}from"node:fs";import{createInterface as G5t}from"node:readline";function Z5t(e,t,n){let r=e.get(t);return r===void 0?(e.set(t,n),n):r}function J5t(e){return!!(e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:"))}function X5t(e){return e.lineno!==void 0&&e.lineno>Y5t||e.colno!==void 0&&e.colno>K5t}function Q5t(e,t){let n=cee.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 $5t(e,t){if(!e.length)return[];let n=0,r=e[0];if(typeof r!="number")return[];let i=Uje(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=Uje(o,t)),n++}return s}function e8t(e,t,n){return new Promise((r,i)=>{let s=z5t(e),o=G5t({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){Fje.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 t8t(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"||J5t(c)||X5t(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(Fje.get(s))continue;let o=n[s];if(!o)continue;o.sort((u,l)=>u-l);let a=$5t(o,t);if(a.every(u=>Q5t(s,u)))continue;let c=Z5t(cee,s,{});i.push(e8t(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&&n8t(s.stacktrace.frames,t,cee);return e}function n8t(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;r8t(r.lineno,r,t,i)}}function Lje(e){delete e.pre_context,delete e.context_line,delete e.post_context}function r8t(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=jje(e,n);s{st();ff();cee=new fu(10),Fje=new fu(20),V5t=7,W5t="ContextLines",K5t=1e3,Y5t=1e4;i8t=((e={})=>{let t=e.frameContextLines!==void 0?e.frameContextLines:V5t;return{name:W5t,processEvent(n){return t8t(n,t)}}}),qje=i8t});async function rB(){if(nB===void 0)try{nB=!!(await import("node:inspector")).url()}catch{nB=!1}return nB}var nB,uee=v(()=>{});function Gje(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 zje(e){return e!==void 0&&(e.length===0||e==="?"||e==="")}function iB(e,t){return e===t||`Object.${e}`===t||e===`Object.${t}`||zje(e)&&zje(t)}var FP,lee=v(()=>{FP="__SENTRY_ERROR_LOCAL_VARIABLES__"});import{Worker as s8t}from"node:worker_threads";function Vje(...e){Z.log("[LocalVariables]",...e)}var o8t,Wje,Kje=v(()=>{st();uee();lee();o8t="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=>{Vje("Worker error",a)}),o.once("exit",a=>{Vje("Worker exit",a)}),o.unref()}return{name:"LocalVariablesAsync",async setup(s){if(!s.getOptions().includeLocalVariables)return;if(await rB()){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 Yje(e){if(e!==void 0)return e.slice(-10).reduce((t,n)=>`${t},${n.function},${n.lineno},${n.colno}`,"")}function a8t(e,t){if(t!==void 0)return Yje(e(t,1))}function Zje(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 dee,c8t,u8t,Jje,Xje=v(()=>{st();yA();uee();lee();dee=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}=Zje(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)}},c8t="LocalVariables",u8t=((e={},t)=>{let n=new fu(20),r,i=!1;function s(u){let l=Yje(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 rB()){Z.warn("Local variables capture has been disabled because the debugger was already enabled");return}try{let f=await dee.create(t),p=(m,{params:{reason:g,data:y,callFrames:b}},S)=>{if(g!=="exception"&&g!=="promiseRejection"){S();return}r?.();let E=a8t(m,y.description);if(E==null){S();return}let{add:_,next:T}=Zje(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=Gje(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:c8t,setupOnce(){a=c()},async processEvent(u){return await a,i?o(u):u},_getCachedFramesCount(){return n.size},_getFirstCachedFrame(){return n.values()[0]}}}),Jje=u8t});var Qje,$je=v(()=>{yA();Kje();Xje();Qje=(e={})=>pf.major<19?Jje(e):Wje(e)});function jP(){try{return typeof module<"u"&&typeof module.exports<"u"}catch{return!1}}function tHe(){return jP()?!1:wm>=21||wm===20&&IP>=6||wm===18&&IP>=19?!0:(eHe||(eHe=!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 eHe,sB=v(()=>{st();yA()});import{existsSync as l8t,readFileSync as rHe}from"node:fs";import{dirname as d8t,join as iHe}from"node:path";function m8t(){try{return Y.cache?Object.keys(Y.cache):[]}catch{return[]}}function g8t(){return{...p8t,...b8t(),...jP()?y8t():{}}}function y8t(){let e=Y.main?.paths||[],t=m8t(),n={},r=new Set;return t.forEach(i=>{let s=i,o=()=>{let a=s;if(s=d8t(a),!s||a===s||r.has(a))return;if(e.indexOf(s)<0)return o();let c=iHe(a,"package.json");if(r.add(a),!l8t(c))return o();try{let u=JSON.parse(rHe(c,"utf8"));n[u.name]=u.version}catch{}};o()}),n}function nHe(){return fee||(fee=g8t()),fee}function S8t(){try{let e=iHe(process.cwd(),"package.json");return JSON.parse(rHe(e,"utf8"))}catch{return{}}}function b8t(){let e=S8t();return{...e.dependencies,...e.devDependencies}}var fee,f8t,p8t,h8t,sHe,oHe=v(()=>{sB();f8t="Modules",p8t=typeof __SENTRY_SERVER_MODULES__>"u"?{}:__SENTRY_SERVER_MODULES__,h8t=(()=>({name:f8t,processEvent(e){return e.modules={...e.modules,...nHe()},e},getModules:nHe})),sHe=h8t});function HP(e){xs(()=>{console.error(e)});let t=ct();if(t===void 0){Qt&&Z.warn("No NodeClient was defined, we are exiting the process now."),global.process.exit(1);return}let n=t.getOptions(),r=n?.shutdownTimeout&&n.shutdownTimeout>0?n.shutdownTimeout:E8t;t.close(r).then(i=>{i||Qt&&Z.warn("We reached the timeout for emptying the request buffer, still exiting now!"),global.process.exit(1)},i=>{Qt&&Z.error(i)})}var E8t,pee=v(()=>{st();ff();E8t=2e3});import{isMainThread as _8t}from"worker_threads";function v8t(e,t){let r=!1,i=!1,s=!1,o,a=e.getOptions();return Object.assign(c=>{let u=HP;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"),HP(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 T8t,aHe,cHe=v(()=>{st();ff();pee();T8t="OnUncaughtException",aHe=(e={})=>{let t={exitEvenIfOtherHandlersAreRegistered:!1,...e};return{name:T8t,setup(n){_8t&&global.process.on("uncaughtException",v8t(n,t))}}}});function k8t(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 I8t(e,t){let n=e.name===void 0||hm(t.name,e.name,!0),r=e.message===void 0||hm(t.message,e.message);return n&&r}function x8t(e,t){let n=k8t(t);return e.some(r=>I8t(r,n))}function O8t(e,t){return function(r,i){if(ct()!==e||x8t(t.ignore??[],r))return;let s=t.mode==="strict"?"fatal":"error",o=r&&typeof r=="object"?r._sentry_active_span:void 0;(o?c=>XR(o,c):c=>c())(()=>{Wt(r,{originalException:i,captureContext:{extra:{unhandledPromiseRejection:!0},level:s},mechanism:{handled:!1,type:"auto.node.onunhandledrejection"}})}),P8t(r,t.mode)}}function P8t(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)}),HP(e))}var R8t,A8t,w8t,uHe,lHe=v(()=>{st();pee();R8t="OnUnhandledRejection",A8t=[{name:"AI_NoOutputGeneratedError"},{name:"AbortError"}],w8t=((e={})=>{let t={mode:e.mode??"warn",ignore:[...A8t,...e.ignore??[]]};return{name:R8t,setup(n){global.process.on("unhandledRejection",O8t(n,t))}}}),uHe=w8t});var N8t,dHe,fHe=v(()=>{st();N8t="ProcessSession",dHe=()=>({name:N8t,setupOnce(){pH(),process.on("beforeExit",()=>{vn().getSession()?.status!=="ok"&&iP()})}})});import*as pHe from"node:http";function M8t(e,t){let n=D8t(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=QO(i);QR(()=>{let o=pHe.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 D8t(e){try{return new URL(`${e}`)}catch{Z.warn(`[Spotlight] Invalid sidecar URL: ${e}`);return}}var hee,C8t,hHe,mHe=v(()=>{st();hee="Spotlight",C8t=((e={})=>{let t={sidecarUrl:e.sidecarUrl||"http://localhost:8969/stream"};return{name:hee,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{}M8t(n,t)}}}),hHe=C8t});import*as gHe from"node:util";function U8t(e){return!(e instanceof Error)||!("errno"in e)||typeof e.errno!="number"?!1:gHe.getSystemErrorMap().has(e.errno)}var L8t,yHe,SHe=v(()=>{L8t="NodeSystemError";yHe=(e={})=>({name:L8t,processEvent:(t,n,r)=>{if(!U8t(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 mee from"node:http";var Zp,oB,bHe=v(()=>{Zp=Symbol("AgentBaseInternalState"),oB=class extends mee.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 mee.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 aB(...e){Z.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(),aB("onend"),n(new Error("Proxy connection ended before receiving CONNECT response"))}function c(l){o(),aB("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){aB("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}aB("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 bHe=v(()=>{st()});import*as xm from"node:net";import*as mee from"node:tls";function qP(...e){Z.log("[https-proxy-agent]",...e)}function L8t(e){e.resume()}function EHe(e,...t){let n={},r;for(r in e)t.includes(r)||(n[r]=e[r]);return n}var BP,_He=v(()=>{st();yHe();bHe();BP=class extends oB{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??{},qP("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?EHe(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:"){qP("Creating `tls.Socket`: %o",this.connectOpts);let f=this.connectOpts.servername||this.connectOpts.host;i=mee.connect({...this.connectOpts,servername:f&&xm.isIP(f)?void 0:f})}else qP("Creating `net.Socket`: %o",this.connectOpts),i=xm.connect(this.connectOpts);let s=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},o=xm.isIPv6(n.host)?`[${n.host}]`:n.host,a=`CONNECT ${o}:${n.port} HTTP/1.1\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}aB("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 _He=v(()=>{st()});import*as xm from"node:net";import*as gee from"node:tls";function qP(...e){Z.log("[https-proxy-agent]",...e)}function F8t(e){e.resume()}function THe(e,...t){let n={},r;for(r in e)t.includes(r)||(n[r]=e[r]);return n}var BP,vHe=v(()=>{st();bHe();_He();BP=class extends oB{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??{},qP("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?THe(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:"){qP("Creating `tls.Socket`: %o",this.connectOpts);let f=this.connectOpts.servername||this.connectOpts.host;i=gee.connect({...this.connectOpts,servername:f&&xm.isIP(f)?void 0:f})}else qP("Creating `net.Socket`: %o",this.connectOpts),i=xm.connect(this.connectOpts);let s=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},o=xm.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=SHe(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",L8t),n.secureEndpoint){qP("Upgrading socket connection to TLS");let f=n.servername||n.host;return mee.connect({...EHe(n,"host","path","port"),socket:i,servername:xm.isIP(f)?void 0:f})}return i}i.destroy();let d=new xm.Socket({writable:!1});return d.readable=!0,t.once("socket",f=>{qP("Replaying proxy buffer for failed request"),f.push(l),f.push(null)}),d}};BP.__initStatic()});import*as U8t from"node:http";import*as F8t from"node:https";import{Readable as j8t}from"node:stream";import{createGzip as H8t}from"node:zlib";function B8t(e){return new j8t({read(){this.push(e),this.push(null)}})}function THe(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.")}),aP(e,()=>Promise.resolve({}))}let n=t.protocol==="https:",r=z8t(t,e.proxy||(n?process.env.https_proxy:void 0)||process.env.http_proxy),i=n?F8t:U8t,s=e.keepAlive===void 0?!1:e.keepAlive,o=r?new BP(r):new i.Agent({keepAlive:s,maxSockets:30,timeout:2e3}),a=G8t(e,e.httpModule??i,o);return aP(e,a)}function z8t(e,t){let{no_proxy:n}=process.env;if(!n?.split(",").some(i=>e.host.endsWith(i)||e.hostname.endsWith(i)))return t}function G8t(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)=>{QR(()=>{let f=B8t(u.body),p={...e.headers};u.body.length>q8t&&(p["content-encoding"]="gzip",f=f.pipe(H8t()));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 q8t,vHe=v(()=>{st();_He();q8t=1024*32});function RHe(e){if(e===!1)return!1;if(typeof e=="string")return e;let t=iA(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 V8t,sep as W8t}from"node:path";function wHe(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}function kHe(e=process.argv[1]?eQ(process.argv[1]):process.cwd(),t=W8t==="\\"){let n=t?wHe(e):e;return r=>{if(!r)return;let i=t?wHe(r):r,{dir:s,base:o,ext:a}=V8t.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 IHe=v(()=>{st()});function xHe(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 OHe,PHe=v(()=>{st();IHe();OHe=Cj(qQ(kHe()))});import*as NHe from"node:os";import{threadId as K8t,isMainThread as Y8t}from"worker_threads";var CHe,Z8t,cB,MHe=v(()=>{Me();CHe=Re(Jt(),1);st();CA();ff();Z8t=6e4,cB=class extends cP{constructor(t){let n=t.includeServerName===!1?void 0:t.serverName||global.process.env.SENTRY_NAME||NHe.hostname(),r={...t,platform:"node",runtime:t.runtime||{name:"node",version:global.process.version},serverName:n};t.openTelemetryInstrumentations&&(0,CHe.registerInstrumentations)({instrumentations:t.openTelemetryInstrumentations}),UE(r,"node"),Z.log(`Initializing Sentry: process: ${process.pid}, thread: ${Y8t?"main":`worker-${K8t}`}.`),super(r),this.getOptions().enableLogs&&(this._logOnExitFlushListener=()=>{nA(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=Cn,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??Z8t).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener))}_setupIntegrations(){WX(),super._setupIntegrations()}_getTraceInfoFromScope(t){return t?mje(this,t):[void 0,void 0]}}});import*as LHe from"module";function gee(){if($je()&&!qt._sentryEsmLoaderHookRegistered){qt._sentryEsmLoaderHookRegistered=!0;try{let{addHookMessagePort:e}=(0,DHe.createAddHookMessageChannel)();LHe.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 DHe,UHe=v(()=>{st();DHe=Re(SJ(),1);sB()});function uB(){return[vH(),_H(),RH(),AH(),mHe(),iQ(),kH(),DUe(),BUe(),sHe(),aHe(),jje(),Jje(),Nje(),Ije(),uHe(),rHe()]}function yee(e={}){return J8t(e,uB)}function J8t(e={},t){let n=X8t(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&&gee(),Sje(),Fn().update(n.initialScope),n.spotlight&&!n.integrations.some(({name:s})=>s===pee)&&n.integrations.push(fHe({sidecarUrl:typeof n.spotlight=="string"?n.spotlight:void 0})),UE(n,"node-core");let i=new cB(n);return Fn().setClient(i),i.init(),Z.log(`SDK initialized from ${jP()?"CommonJS":"ESM"}`),i.startClientReportTracking(),e7t(),tje(i),yje(i),process.env.VERCEL&&process.on("SIGTERM",async()=>{await i.flush(200)}),i}function See(){if(!Qt)return;let e=sje(),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 X8t(e,t){let n=Q8t(e.release),r=RHe(e.spotlight),i=$8t(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??THe,stackParser:CJ(e.stackParser||OHe),release:n,tracesSampleRate:i,spotlight:r,debug:iA(e.debug??process.env.SENTRY_DEBUG)},o=e.integrations,a=e.defaultIntegrations??t(s);return{...s,integrations:CX({defaultIntegrations:a,integrations:o})}}function Q8t(e){if(e!==void 0)return e;let t=xHe();if(t!==void 0)return t}function $8t(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 e7t(){if(iA(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let e=process.env.SENTRY_TRACE,t=process.env.SENTRY_BAGGAGE,n=WO(e,t);Fn().setPropagationContext(n)}}var FHe=v(()=>{st();CA();ff();xje();Cje();Hje();LUe();Xje();iHe();zUe();oHe();cHe();lHe();pHe();gHe();vHe();sB();AHe();PHe();MHe();UHe()});function Dr(e,t){e.setAttribute(At,t)}var jHe=v(()=>{st()});function zP(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 HHe=v(()=>{});var sr=v(()=>{VQ();XH();ZQ();$Q();wje();kje();ZH();FHe();jHe();HHe();yA()});function r7t(e,t={}){return typeof e.spans=="boolean"?e.spans:!(t.skipOpenTelemetrySetup||!Os(t)&&lB)}function i7t(e={}){return{disableOutgoingRequestInstrumentation:lB,ignoreOutgoingRequestHook:n=>{let r=zP(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=zP(r);if(i.startsWith("data:")){let s=sA(i);n.setAttribute("http.url",s),n.setAttribute(xy,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 BHe,bee,qHe,lB,t7t,n7t,zHe,GHe=v(()=>{Me();BHe=Re(ICe(),1);st();sr();bee="Http",qHe="@opentelemetry_sentry-patched/instrumentation-http",lB=pf.major===22&&pf.minor>=12||pf.major===23&&pf.minor>=2||pf.major>=24,t7t=rt(`${bee}.sentry`,e=>new VE(e)),n7t=rt(bee,e=>{let t=new BHe.HttpInstrumentation({...e,disableIncomingRequestInstrumentation:!0});try{t._diag=sl.createComponentLogger({namespace:qHe}),t.instrumentationName=qHe}catch{}try{let n={get:()=>!1,set:()=>{}};Object.defineProperty(t,"_httpPatched",n),Object.defineProperty(t,"_httpsPatched",n)}catch{}return t});zHe=(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=RP(r),o=AP(i),a=t&&!n;return{name:bee,setup(c){let u=c.getOptions();a&&Os(u)&&o.setup(c)},setupOnce(){let c=ct()?.getOptions()||{},u=r7t(e,c);s.setupOnce();let l={breadcrumbs:e.breadcrumbs,propagateTraceInOutgoingRequests:typeof e.tracePropagation=="boolean"?e.tracePropagation:lB||!u,createSpansForOutgoingRequests:lB,spans:e.spans,ignoreOutgoingRequests:e.ignoreOutgoingRequests,outgoingRequestHook:(d,f)=>{let p=zP(f);if(p.startsWith("data:")){let h=sA(p);d.setAttribute("http.url",h),d.setAttribute(xy,h),d.updateName(`${f.method||"GET"} ${h}`)}e.instrumentation?.requestHook?.(d,f)},outgoingResponseHook:e.instrumentation?.responseHook,outgoingRequestApplyCustomAttributes:e.instrumentation?.applyCustomAttributesOnSpan};if(t7t(l),u){let d=i7t(e);n7t(d)}},processEvent(c){return o.processEvent(c)}}}});var VHe=w(MA=>{"use strict";Object.defineProperty(MA,"__esModule",{value:!0});MA.PACKAGE_NAME=MA.PACKAGE_VERSION=void 0;MA.PACKAGE_VERSION="0.24.0";MA.PACKAGE_NAME="@opentelemetry/instrumentation-undici"});var KHe=w(fB=>{"use strict";Object.defineProperty(fB,"__esModule",{value:!0});fB.UndiciInstrumentation=void 0;var Eee=Y("diagnostics_channel"),s7t=Y("url"),GP=Jt(),pl=(Me(),ke(Ze)),dB=pr(),Vs=(Nn(),ke(Mr)),WHe=VHe(),_ee=class extends GP.InstrumentationBase{_recordFromReq=new WeakMap;constructor(t={}){super(WHe.PACKAGE_NAME,WHe.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)Eee.subscribe?.(t,n),o=()=>Eee.unsubscribe?.(t,n);else{let a=Eee.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,dB.hrTime)(),o;try{o=new s7t.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,GP.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,GP.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,GP.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,dB.hrTimeToMilliseconds)((0,dB.hrTimeDuration)(n,(0,dB.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"}};fB.UndiciInstrumentation=_ee});var YHe=w(pB=>{"use strict";Object.defineProperty(pB,"__esModule",{value:!0});pB.UndiciInstrumentation=void 0;var o7t=KHe();Object.defineProperty(pB,"UndiciInstrumentation",{enumerable:!0,get:function(){return o7t.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 l7t(e,t={}){return typeof e.spans=="boolean"?e.spans:!t.skipOpenTelemetrySetup&&Os(t)}function d7t(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=sA(r);return{[At]:"auto.http.otel.node_fetch","http.url":i,[xy]:i,[Kl]:`${n.method||"GET"} ${i}`}}return{[At]:"auto.http.otel.node_fetch"}},requestHook:e.requestHook,responseHook:e.responseHook,headersToSpanAttributes:e.headersToSpanAttributes}}var JHe,XHe,a7t,c7t,u7t,QHe,$He=v(()=>{JHe=Re(YHe(),1);st();sr();XHe="NodeFetch",a7t=rt(XHe,JHe.UndiciInstrumentation,e=>d7t(e)),c7t=rt(`${XHe}.sentry`,WE,e=>e),u7t=((e={})=>({name:"NodeFetch",setupOnce(){l7t(e,ct()?.getOptions())&&a7t(e),c7t(e)}})),QHe=u7t});var hB=w(VP=>{"use strict";Object.defineProperty(VP,"__esModule",{value:!0});VP.ExpressLayerType=void 0;var f7t;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(f7t=VP.ExpressLayerType||(VP.ExpressLayerType={}))});var mB=w(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});WP.AttributeNames=void 0;var p7t;(function(e){e.EXPRESS_TYPE="express.type",e.EXPRESS_NAME="express.name"})(p7t=WP.AttributeNames||(WP.AttributeNames={}))});var Tee=w(DA=>{"use strict";Object.defineProperty(DA,"__esModule",{value:!0});DA._LAYERS_STORE_PROPERTY=DA.kLayerPatched=void 0;DA.kLayerPatched=Symbol("express-layer-patched");DA._LAYERS_STORE_PROPERTY="__ot_middlewares"});var nqe=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 vee=hB(),LA=mB(),XE=Tee(),h7t=(e,t)=>(Array.isArray(e[XE._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,XE._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),t===void 0?{isLayerPathStored:!1}:(e[XE._LAYERS_STORE_PROPERTY].push(t),{isLayerPathStored:!0}));Ws.storeLayerPath=h7t;var m7t=(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=m7t;var g7t=(e,t,n)=>{if(t.name==="router"){let r=(0,Ws.getRouterPath)("",t),i=r||n||e||"/";return{attributes:{[LA.AttributeNames.EXPRESS_NAME]:i,[LA.AttributeNames.EXPRESS_TYPE]:vee.ExpressLayerType.ROUTER},name:`router - ${i}`}}else return t.name==="bound dispatch"||t.name==="handle"?{attributes:{[LA.AttributeNames.EXPRESS_NAME]:(e||n)??"request handler",[LA.AttributeNames.EXPRESS_TYPE]:vee.ExpressLayerType.REQUEST_HANDLER},name:`request handler${t.path?` - ${e||n}`:""}`}:{attributes:{[LA.AttributeNames.EXPRESS_NAME]:t.name,[LA.AttributeNames.EXPRESS_TYPE]:vee.ExpressLayerType.MIDDLEWARE},name:`middleware - ${t.name}`}};Ws.getLayerMetadata=g7t;var y7t=(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")},S7t=(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(y7t(e,r))return!0}catch{}return!1};Ws.isLayerIgnored=S7t;var b7t=e=>e instanceof Error?[e,e.message]:[String(e),String(e)];Ws.asErrorAndMessage=b7t;var E7t=e=>{let t=e[0];return Array.isArray(t)?t.map(n=>eqe(n)||"").join(","):eqe(t)};Ws.getLayerPath=E7t;var eqe=e=>{if(typeof e=="string")return e;if(e instanceof RegExp||typeof e=="number")return e.toString()};function tqe(e){let n=(Array.isArray(e[XE._LAYERS_STORE_PROPERTY])?e[XE._LAYERS_STORE_PROPERTY]:[]).filter(r=>r!=="/"&&r!=="/*");return n.length===1&&n[0]==="*"?"*":n.join("").replace(/\/{2,}/g,"/")}Ws.getConstructedRoute=tqe;function _7t(e){let t=Array.isArray(e[XE._LAYERS_STORE_PROPERTY])?e[XE._LAYERS_STORE_PROPERTY]:[];if(t.length===0)return;if(t.every(s=>s==="/"))return e.originalUrl==="/"?"/":void 0;let n=tqe(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)||T7t(r))?r:void 0}Ws.getActualMatchedRoute=_7t;function T7t(e){return e.includes(":")||e.includes("*")}});var rqe=w(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.PACKAGE_NAME=UA.PACKAGE_VERSION=void 0;UA.PACKAGE_VERSION="0.62.0";UA.PACKAGE_NAME="@opentelemetry/instrumentation-express"});var cqe=w(yB=>{"use strict";Object.defineProperty(yB,"__esModule",{value:!0});yB.ExpressInstrumentation=void 0;var iqe=pr(),hu=(Me(),ke(Ze)),sqe=hB(),oqe=mB(),Jp=nqe(),aqe=rqe(),FA=Jt(),v7t=(Nn(),ke(Mr)),gB=Tee(),Ree=class extends FA.InstrumentationBase{constructor(t={}){super(aqe.PACKAGE_NAME,aqe.PACKAGE_VERSION,t)}init(){return[new FA.InstrumentationNodeModuleDefinition("express",[">=4.0.0 <6"],t=>{let n=typeof t?.Router?.prototype?.route=="function",r=n?t.Router.prototype:t.Router;return(0,FA.isWrapped)(r.route)&&this._unwrap(r,"route"),this._wrap(r,"route",this._getRoutePatch()),(0,FA.isWrapped)(r.use)&&this._unwrap(r,"use"),this._wrap(r,"use",this._getRouterUsePatch()),(0,FA.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[gB.kLayerPatched]!==!0&&(t[gB.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={[v7t.ATTR_HTTP_ROUTE]:l},f=(0,Jp.getLayerMetadata)(u,t,n),p=f.attributes[oqe.AttributeNames.EXPRESS_TYPE],h=(0,iqe.getRPCMetadata)(hu.context.active());if(h?.type===iqe.RPCType.HTTP&&(h.route=l),(0,Jp.isLayerIgnored)(f.name,p,r.getConfig()))return p===sqe.ExpressLayerType.MIDDLEWARE&&o[gB._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,FA.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[oqe.AttributeNames.EXPRESS_TYPE]===sqe.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[gB._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}}};yB.ExpressInstrumentation=Ree});var uqe=w(Jy=>{"use strict";Object.defineProperty(Jy,"__esModule",{value:!0});Jy.AttributeNames=Jy.ExpressLayerType=Jy.ExpressInstrumentation=void 0;var R7t=cqe();Object.defineProperty(Jy,"ExpressInstrumentation",{enumerable:!0,get:function(){return R7t.ExpressInstrumentation}});var A7t=hB();Object.defineProperty(Jy,"ExpressLayerType",{enumerable:!0,get:function(){return A7t.ExpressLayerType}});var w7t=mB();Object.defineProperty(Jy,"AttributeNames",{enumerable:!0,get:function(){return w7t.AttributeNames}})});var So,QE=v(()=>{So=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});function k7t(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 I7t(e,t){if(vn()===Wl())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 lqe,dqe,fqe,x7t,pqe,hqe=v(()=>{lqe=Re(uqe(),1);st();sr();QE();dqe="Express";fqe=rt(dqe,()=>new lqe.ExpressInstrumentation({requestHook:e=>k7t(e),spanNameHook:(e,t)=>I7t(e,t)})),x7t=(()=>({name:dqe,setupOnce(){fqe()}})),pqe=x7t});var mqe=w(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});KP.SeverityNumber=void 0;var O7t;(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"})(O7t=KP.SeverityNumber||(KP.SeverityNumber={}))});var EB=w(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.NOOP_LOGGER=jA.NoopLogger=void 0;var bB=class{emit(t){}};jA.NoopLogger=bB;jA.NOOP_LOGGER=new bB});var gqe=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 P7t(e,t,n){return r=>r===e?t:n}Xp.makeGetter=P7t;Xp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var Aee=w(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.NOOP_LOGGER_PROVIDER=HA.NoopLoggerProvider=void 0;var N7t=EB(),_B=class{getLogger(t,n,r){return new N7t.NoopLogger}};HA.NoopLoggerProvider=_B;HA.NOOP_LOGGER_PROVIDER=new _B});var yqe=w(TB=>{"use strict";Object.defineProperty(TB,"__esModule",{value:!0});TB.ProxyLogger=void 0;var C7t=EB(),wee=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):C7t.NOOP_LOGGER}};TB.ProxyLogger=wee});var Sqe=w(vB=>{"use strict";Object.defineProperty(vB,"__esModule",{value:!0});vB.ProxyLoggerProvider=void 0;var M7t=Aee(),D7t=yqe(),kee=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new D7t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:M7t.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)}};vB.ProxyLoggerProvider=kee});var Eqe=w(RB=>{"use strict";Object.defineProperty(RB,"__esModule",{value:!0});RB.LogsAPI=void 0;var $l=gqe(),L7t=Aee(),bqe=Sqe(),Iee=class e{constructor(){this._proxyLoggerProvider=new bqe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return $l._global[$l.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():($l._global[$l.GLOBAL_LOGS_API_KEY]=(0,$l.makeGetter)($l.API_BACKWARDS_COMPATIBILITY_VERSION,t,L7t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=$l._global[$l.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call($l._global,$l.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete $l._global[$l.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new bqe.ProxyLoggerProvider}};RB.LogsAPI=Iee});var xee=w(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});Qp.logs=Qp.NoopLogger=Qp.NOOP_LOGGER=Qp.SeverityNumber=void 0;var U7t=mqe();Object.defineProperty(Qp,"SeverityNumber",{enumerable:!0,get:function(){return U7t.SeverityNumber}});var _qe=EB();Object.defineProperty(Qp,"NOOP_LOGGER",{enumerable:!0,get:function(){return _qe.NOOP_LOGGER}});Object.defineProperty(Qp,"NoopLogger",{enumerable:!0,get:function(){return _qe.NoopLogger}});var F7t=Eqe();Qp.logs=F7t.LogsAPI.getInstance()});var Tqe=w(qA=>{"use strict";Object.defineProperty(qA,"__esModule",{value:!0});qA.disableInstrumentations=qA.enableInstrumentations=void 0;function j7t(e,t,n,r){for(let i=0,s=e.length;it.disable())}qA.disableInstrumentations=H7t});var Aqe=w(AB=>{"use strict";Object.defineProperty(AB,"__esModule",{value:!0});AB.registerInstrumentations=void 0;var vqe=(Me(),ke(Ze)),q7t=xee(),Rqe=Tqe();function B7t(e){let t=e.tracerProvider||vqe.trace.getTracerProvider(),n=e.meterProvider||vqe.metrics.getMeterProvider(),r=e.loggerProvider||q7t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,Rqe.enableInstrumentations)(i,t,n,r),()=>{(0,Rqe.disableInstrumentations)(i)}}AB.registerInstrumentations=B7t});var Mqe=w(wB=>{"use strict";Object.defineProperty(wB,"__esModule",{value:!0});wB.satisfies=void 0;var Cee=(Me(),ke(Ze)),Oqe=/^(?: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-]+)*))?$/,z7t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,G7t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function V7t(e,t,n){if(!W7t(e))return Cee.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=J7t(e);if(!r)return!1;let i=[],s=Pqe(r,t,i,n);return s&&!n?.includePrerelease?Y7t(r,i):s}wB.satisfies=V7t;function W7t(e){return typeof e=="string"&&Oqe.test(e)}function Pqe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Oee(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=yJt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!Oee(e,s,n,r))return!1;return!0}return Oee(e,t,n,r)}function Oee(e,t,n,r){if(t=Z7t(t,r),t.includes(" "))return Pqe(e,t,n,r);{let i=X7t(t);return n.push(i),K7t(e,i)}}function K7t(e,t){if(t.invalid)return!1;if(!t.version||Nee(t.version))return!0;let n=kqe(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=kqe(r,i)}return G7t[t.op]?.includes(n)}function Y7t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function Z7t(e,t){return e=e.trim(),e=mJt(e,t),e=hJt(e),e=gJt(e,t),e=e.trim(),e}function Dc(e){return!e||e.toLowerCase()==="x"||e==="*"}function J7t(e){let t=e.match(Oqe);if(!t){Cee.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 X7t(e){if(!e)return{};let t=e.match(z7t);if(!t)return Cee.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function Nee(e){return e==="*"||e==="x"||e==="X"}function wqe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function Q7t(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 $7t(e,t){if(Nee(e)||Nee(t))return 0;let[n,r]=Q7t(wqe(e),wqe(t));return n>r?1:n)?=?)",Iqe=`(?:${Cqe}|${eJt})`,nJt=`(?:-(${Iqe}(?:\\.${Iqe})*))`,xqe=`${Nqe}+`,rJt=`(?:\\+(${xqe}(?:\\.${xqe})*))`,Pee=`${Cqe}|x|X|\\*`,YP=`[v=\\s]*(${Pee})(?:\\.(${Pee})(?:\\.(${Pee})(?:${nJt})?${rJt}?)?)?`,iJt=`^${tJt}\\s*${YP}$`,sJt=new RegExp(iJt),oJt=`^\\s*(${YP})\\s+-\\s+(${YP})\\s*$`,aJt=new RegExp(oJt),cJt="(?:~>?)",uJt=`^${cJt}${YP}$`,lJt=new RegExp(uJt),dJt="(?:\\^)",fJt=`^${dJt}${YP}$`,pJt=new RegExp(fJt);function hJt(e){let t=lJt;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 mJt(e,t){let n=pJt,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 gJt(e,t){let n=sJt;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 yJt(e,t){let n=aJt;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 Mee=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 SJt=(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=SJt;var bJt=(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=bJt;var EJt=(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=EJt;var _Jt=(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=_Jt;function JP(e){e&&e.logger&&(typeof e.logger!="function"?Lc("new logger isn't a function, not replacing"):Lc=e.logger)}da.default=JP;JP.wrap=da.wrap;JP.massWrap=da.massWrap;JP.unwrap=da.unwrap;JP.massUnwrap=da.massUnwrap});var Dqe=w(IB=>{"use strict";Object.defineProperty(IB,"__esModule",{value:!0});IB.InstrumentationAbstract=void 0;var Dee=(Me(),ke(Ze)),TJt=xee(),kB=Mee(),Lee=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=Dee.diag.createComponentLogger({namespace:t}),this._tracer=Dee.trace.getTracer(t,n),this._meter=Dee.metrics.getMeter(t,n),this._logger=TJt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=kB.wrap;_unwrap=kB.unwrap;_massWrap=kB.massWrap;_massUnwrap=kB.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)}}};IB.InstrumentationAbstract=Lee});var Lqe=w(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});Xy.ModuleNameTrie=Xy.ModuleNameSeparator=void 0;Xy.ModuleNameSeparator="/";var xB=class{hooks=[];children=new Map},Uee=class{_trie=new xB;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(Xy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new xB,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(Xy.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))}};Xy.ModuleNameTrie=Uee});var Fqe=w(OB=>{"use strict";Object.defineProperty(OB,"__esModule",{value:!0});OB.RequireInTheMiddleSingleton=void 0;var vJt=RE(),Uqe=Y("path"),Fee=Lqe(),RJt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),jee=class e{_moduleNameTrie=new Fee.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new vJt.Hook(null,{internals:!0},(t,n,r)=>{let i=AJt(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 RJt?new e:this._instance=this._instance??new e}};OB.RequireInTheMiddleSingleton=jee;function AJt(e){return Uqe.sep!==Fee.ModuleNameSeparator?e.split(Uqe.sep).join(Fee.ModuleNameSeparator):e}});var zqe=w(XP=>{var jqe=[],Hee=new WeakMap,Hqe=new WeakMap,qqe=new Map,Bqe=[],wJt={set(e,t,n){let r=Hee.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=Hqe.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=Hee.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function kJt(e,t,n,r,i){qqe.set(e,i),Hee.set(t,n),Hqe.set(t,r);let s=new Proxy(t,wJt);jqe.forEach(o=>o(e,s,i)),Bqe.push([e,s,i])}XP.register=kJt;XP.importHooks=jqe;XP.specifiers=qqe;XP.toHook=Bqe});var Kqe=w((AMr,zA)=>{var Gqe=Y("path"),IJt=xO(),{fileURLToPath:xJt}=Y("url"),{MessageChannel:OJt}=Y("worker_threads"),{isBuiltin:qee}=Y("module");qee||(qee=()=>!0);var{importHooks:Bee,specifiers:PJt,toHook:NJt}=zqe();function Vqe(e){Bee.push(e),NJt.forEach(([t,n,r])=>e(t,n,r))}function Wqe(e){let t=Bee.indexOf(e);t>-1&&Bee.splice(t,1)}function BA(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var zee;function CJt(){let{port1:e,port2:t}=new OJt,n=0,r;zee=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 QP(e,t,n){if(!(this instanceof QP))return new QP(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;zee&&Array.isArray(e)&&zee(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);qee(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=xJt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=IJt(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)BA(n,s,u,void 0);else if(d===i){if(!l)BA(n,s,i,l);else if(l.endsWith(PJt.get(a)))BA(n,s,i,l);else if(r){let f=i+Gqe.sep+Gqe.relative(l,u);BA(n,s,f,l)}}else d===o&&BA(n,s,o,l);else BA(n,s,i,l)},Vqe(this._iitmHook)}QP.prototype.unhook=function(){Wqe(this._iitmHook)};zA.exports=QP;zA.exports.Hook=QP;zA.exports.addHook=Vqe;zA.exports.removeHook=Wqe;zA.exports.createAddHookMessageChannel=CJt});var Gee=w(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.isWrapped=Qy.safeExecuteInTheMiddleAsync=Qy.safeExecuteInTheMiddle=void 0;function MJt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}Qy.safeExecuteInTheMiddle=MJt;async function DJt(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}}Qy.safeExecuteInTheMiddleAsync=DJt;function LJt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}Qy.isWrapped=LJt});var Jqe=w(PB=>{"use strict";Object.defineProperty(PB,"__esModule",{value:!0});PB.InstrumentationBase=void 0;var $P=Y("path"),Yqe=Y("util"),UJt=Mqe(),Vee=Mee(),FJt=Dqe(),jJt=Fqe(),HJt=Kqe(),eN=(Me(),ke(Ze)),qJt=RE(),BJt=Y("fs"),zJt=Gee(),Wee=class extends FJt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=jJt.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,zJt.isWrapped)(t[n])&&this._unwrap(t,n),Yqe.types.isProxy(t)){let i=(0,Vee.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,Vee.wrap)(t,n,r)};_unwrap=(t,n)=>Yqe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,Vee.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{eN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){eN.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{eN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){eN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=Y.resolve(n);Y.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,BJt.readFileSync)($P.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{eN.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=$P.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&&$P.isAbsolute(a)){let u=$P.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=$P.isAbsolute(t.name)?new qJt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new HJt.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}};PB.InstrumentationBase=Wee;function Zqe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,UJt.satisfies)(t,r,{includePrerelease:n}))}});var Xqe=w(NB=>{"use strict";Object.defineProperty(NB,"__esModule",{value:!0});NB.normalize=void 0;var GJt=Y("path");Object.defineProperty(NB,"normalize",{enumerable:!0,get:function(){return GJt.normalize}})});var Qqe=w(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.normalize=GA.InstrumentationBase=void 0;var VJt=Jqe();Object.defineProperty(GA,"InstrumentationBase",{enumerable:!0,get:function(){return VJt.InstrumentationBase}});var WJt=Xqe();Object.defineProperty(GA,"normalize",{enumerable:!0,get:function(){return WJt.normalize}})});var Kee=w(VA=>{"use strict";Object.defineProperty(VA,"__esModule",{value:!0});VA.normalize=VA.InstrumentationBase=void 0;var $qe=Qqe();Object.defineProperty(VA,"InstrumentationBase",{enumerable:!0,get:function(){return $qe.InstrumentationBase}});Object.defineProperty(VA,"normalize",{enumerable:!0,get:function(){return $qe.normalize}})});var eBe=w(CB=>{"use strict";Object.defineProperty(CB,"__esModule",{value:!0});CB.InstrumentationNodeModuleDefinition=void 0;var Yee=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}};CB.InstrumentationNodeModuleDefinition=Yee});var tBe=w(MB=>{"use strict";Object.defineProperty(MB,"__esModule",{value:!0});MB.InstrumentationNodeModuleFile=void 0;var KJt=Kee(),Zee=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,KJt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};MB.InstrumentationNodeModuleFile=Zee});var nBe=w($E=>{"use strict";Object.defineProperty($E,"__esModule",{value:!0});$E.semconvStabilityFromStr=$E.SemconvStability=void 0;var DB;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(DB=$E.SemconvStability||($E.SemconvStability={}));function YJt(e,t){let n=DB.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=DB.DUPLICATE;break}else i.toLowerCase()===e&&(n=DB.STABLE);return n}$E.semconvStabilityFromStr=YJt});var iBe=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 ZJt=Aqe();Object.defineProperty(Ks,"registerInstrumentations",{enumerable:!0,get:function(){return ZJt.registerInstrumentations}});var JJt=Kee();Object.defineProperty(Ks,"InstrumentationBase",{enumerable:!0,get:function(){return JJt.InstrumentationBase}});var XJt=eBe();Object.defineProperty(Ks,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return XJt.InstrumentationNodeModuleDefinition}});var QJt=tBe();Object.defineProperty(Ks,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return QJt.InstrumentationNodeModuleFile}});var Jee=Gee();Object.defineProperty(Ks,"isWrapped",{enumerable:!0,get:function(){return Jee.isWrapped}});Object.defineProperty(Ks,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return Jee.safeExecuteInTheMiddle}});Object.defineProperty(Ks,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return Jee.safeExecuteInTheMiddleAsync}});var rBe=nBe();Object.defineProperty(Ks,"SemconvStability",{enumerable:!0,get:function(){return rBe.SemconvStability}});Object.defineProperty(Ks,"semconvStabilityFromStr",{enumerable:!0,get:function(){return rBe.semconvStabilityFromStr}})});var sBe=w((LMr,$Jt)=>{$Jt.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 aBe=w(e_=>{"use strict";Object.defineProperty(e_,"__esModule",{value:!0});e_.range=e_.balanced=void 0;var eXt=(e,t,n)=>{let r=e instanceof RegExp?oBe(e,n):e,i=t instanceof RegExp?oBe(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=eXt;var oBe=(e,t)=>{let n=t.match(e);return n?n[0]:null},tXt=(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=tXt});var hBe=w(WA=>{"use strict";Object.defineProperty(WA,"__esModule",{value:!0});WA.EXPANSION_MAX=void 0;WA.expand=hXt;var cBe=aBe(),uBe="\0SLASH"+Math.random()+"\0",lBe="\0OPEN"+Math.random()+"\0",Qee="\0CLOSE"+Math.random()+"\0",dBe="\0COMMA"+Math.random()+"\0",fBe="\0PERIOD"+Math.random()+"\0",nXt=new RegExp(uBe,"g"),rXt=new RegExp(lBe,"g"),iXt=new RegExp(Qee,"g"),sXt=new RegExp(dBe,"g"),oXt=new RegExp(fBe,"g"),aXt=/\\\\/g,cXt=/\\{/g,uXt=/\\}/g,lXt=/\\,/g,dXt=/\\\./g;WA.EXPANSION_MAX=1e5;function Xee(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function fXt(e){return e.replace(aXt,uBe).replace(cXt,lBe).replace(uXt,Qee).replace(lXt,dBe).replace(dXt,fBe)}function pXt(e){return e.replace(nXt,"\\").replace(rXt,"{").replace(iXt,"}").replace(sXt,",").replace(oXt,".")}function pBe(e){if(!e)return[""];let t=[],n=(0,cBe.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=pBe(s);return s.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function hXt(e,t={}){if(!e)return[];let{max:n=WA.EXPANSION_MAX}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),tN(fXt(e),n,!0).map(pXt)}function mXt(e){return"{"+e+"}"}function gXt(e){return/^-?0\d/.test(e)}function yXt(e,t){return e<=t}function SXt(e,t){return e>=t}function tN(e,t,n){let r=[],i=(0,cBe.balanced)("{","}",e);if(!i)return[e];let s=i.pre,o=i.post.length?tN(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+Qee+i.post,tN(e,t,!0)):[e];let d;if(u)d=i.body.split(/\.\./);else if(d=pBe(i.body),d.length===1&&d[0]!==void 0&&(d=tN(d[0],t,!1).map(mXt),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=Xee(d[0]),h=Xee(d[1]),m=Math.max(d[0].length,d[1].length),g=d.length===3&&d[2]!==void 0?Math.max(Math.abs(Xee(d[2])),1):1,y=yXt;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(LB,"__esModule",{value:!0});LB.assertValidPattern=void 0;var bXt=1024*64,EXt=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>bXt)throw new TypeError("pattern is too long")};LB.assertValidPattern=EXt});var yBe=w(UB=>{"use strict";Object.defineProperty(UB,"__esModule",{value:!0});UB.parseClass=void 0;var _Xt={"[: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]},nN=e=>e.replace(/[[\]\\-]/g,"\\$&"),TXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),gBe=e=>e.join(""),vXt=(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(nN(d)+"-"+nN(m)):m===d&&r.push(nN(m)),d="",s++;continue}if(e.startsWith("-]",s+1)){r.push(nN(m+"-")),s+=2;continue}if(e.startsWith("-",s+1)){d=m,s+=2;continue}r.push(nN(m)),s++}if(l{"use strict";Object.defineProperty(FB,"__esModule",{value:!0});FB.unescape=void 0;var RXt=(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");FB.unescape=RXt});var tte=w(zB=>{"use strict";var mu;Object.defineProperty(zB,"__esModule",{value:!0});zB.AST=void 0;var AXt=yBe(),HB=jB(),wXt=new Set(["!","?","+","*","@"]),$ee=e=>wXt.has(e),SBe=e=>$ee(e.type),kXt=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),IXt=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),xXt=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),bBe=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),OXt="(?!(?:^|/)\\.\\.?(?:$|/))",qB="(?!\\.)",PXt=new Set(["[","."]),NXt=new Set(["..","."]),CXt=new Set("().*{}+?[]^$\\!"),MXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),ete="[^/]",EBe=ete+"*?",_Be=ete+"+?",DXt=0,BB=class{type;#t;#n;#i=!1;#e=[];#r;#s;#c;#u=!1;#o;#a;#l=!1;id=++DXt;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&&NXt.has(this.#e[0]))){let h=PXt,m=n&&h.has(u.charAt(0))||u.startsWith("\\.")&&h.has(u.charAt(2))||u.startsWith("\\.\\.")&&h.has(u.charAt(4)),g=!n&&!t&&h.has(u.charAt(0));l=m?OXt:g?qB:""}let d="";return this.isEnd()&&this.#t.#u&&this.#r?.type==="!"&&(d="(?:$|\\/)"),[l+u+d,(0,HB.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,HB.unescape)(this.toString()),!1,!1]}let o=!r||t||n||!qB?"":this.#y(!0);o===s&&(o=""),o&&(s=`(?:${s})(?:${o})*?`);let a="";if(this.type==="!"&&this.#l)a=(this.isStart()&&!n?qB:"")+_Be;else{let c=this.type==="!"?"))"+(this.isStart()&&!n&&!t?qB:"")+EBe+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+s+c}return[a,(0,HB.unescape)(s),this.#n=!!this.#n,this.#i]}#h(){if(SBe(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(GB,"__esModule",{value:!0});GB.escape=void 0;var LXt=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");GB.escape=LXt});var IBe=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 UXt=hBe(),VB=mBe(),RBe=tte(),FXt=nte(),jXt=jB(),HXt=(e,t,n={})=>((0,VB.assertValidPattern)(t),!n.nocomment&&t.charAt(0)==="#"?!1:new t_(t,n).match(e));it.minimatch=HXt;var qXt=/^\*+([^+@!?*[(]*)$/,BXt=e=>t=>!t.startsWith(".")&&t.endsWith(e),zXt=e=>t=>t.endsWith(e),GXt=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),VXt=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),WXt=/^\*+\.\*+$/,KXt=e=>!e.startsWith(".")&&e.includes("."),YXt=e=>e!=="."&&e!==".."&&e.includes("."),ZXt=/^\.\*+$/,JXt=e=>e!=="."&&e!==".."&&e.startsWith("."),XXt=/^\*+$/,QXt=e=>e.length!==0&&!e.startsWith("."),$Xt=e=>e.length!==0&&e!=="."&&e!=="..",eQt=/^\?+([^+@!?*[(]*)?$/,tQt=([e,t=""])=>{let n=ABe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},nQt=([e,t=""])=>{let n=wBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},rQt=([e,t=""])=>{let n=wBe([e]);return t?r=>n(r)&&r.endsWith(t):n},iQt=([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(".")},wBe=([e])=>{let t=e.length;return n=>n.length===t&&n!=="."&&n!==".."},kBe=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",TBe={win32:{sep:"\\"},posix:{sep:"/"}};it.sep=kBe==="win32"?TBe.win32.sep:TBe.posix.sep;it.minimatch.sep=it.sep;it.GLOBSTAR=Symbol("globstar **");it.minimatch.GLOBSTAR=it.GLOBSTAR;var sQt="[^/]",oQt=sQt+"*?",aQt="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",cQt="(?:(?!(?:\\/|^)\\.).)*?",uQt=(e,t={})=>n=>(0,it.minimatch)(n,e,t);it.filter=uQt;it.minimatch.filter=it.filter;var ed=(e,t={})=>Object.assign({},e,t),lQt=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,ed(e,s)),{Minimatch:class extends t.Minimatch{constructor(i,s={}){super(i,ed(e,s))}static defaults(i){return t.defaults(ed(e,i)).Minimatch}},AST:class extends t.AST{constructor(i,s,o={}){super(i,s,ed(e,o))}static fromGlob(i,s={}){return t.AST.fromGlob(i,ed(e,s))}},unescape:(r,i={})=>t.unescape(r,ed(e,i)),escape:(r,i={})=>t.escape(r,ed(e,i)),filter:(r,i={})=>t.filter(r,ed(e,i)),defaults:r=>t.defaults(ed(e,r)),makeRe:(r,i={})=>t.makeRe(r,ed(e,i)),braceExpand:(r,i={})=>t.braceExpand(r,ed(e,i)),match:(r,i,s={})=>t.match(r,i,ed(e,s)),sep:t.sep,GLOBSTAR:it.GLOBSTAR})};it.defaults=lQt;it.minimatch.defaults=it.defaults;var dQt=(e,t={})=>((0,VB.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,UXt.expand)(e,{max:t.braceExpandMax}));it.braceExpand=dQt;it.minimatch.braceExpand=it.braceExpand;var fQt=(e,t={})=>new t_(e,t).makeRe();it.makeRe=fQt;it.minimatch.makeRe=it.makeRe;var pQt=(e,t,n={})=>{let r=new t_(t,n);return e=e.filter(i=>r.match(i)),r.options.nonull&&!e.length&&e.push(t),e};it.match=pQt;it.minimatch.match=it.match;var vBe=/[?*]|[+@!]\(.*?\)|\[|\]/,hQt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),t_=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,n={}){(0,VB.assertValidPattern)(t),n=n||{},this.options=n,this.maxGlobstarRecursion=n.maxGlobstarRecursion??200,this.pattern=t,this.platform=n.platform||kBe,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]==="?"||!vBe.test(s[2]))&&!vBe.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"?hQt(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=t_;var mQt=tte();Object.defineProperty(it,"AST",{enumerable:!0,get:function(){return mQt.AST}});var gQt=nte();Object.defineProperty(it,"escape",{enumerable:!0,get:function(){return gQt.escape}});var yQt=jB();Object.defineProperty(it,"unescape",{enumerable:!0,get:function(){return yQt.unescape}});it.minimatch.AST=RBe.AST;it.minimatch.Minimatch=t_;it.minimatch.escape=FXt.escape;it.minimatch.unescape=jXt.unescape});var DBe=w((KMr,ste)=>{"use strict";var xBe=Y("node:diagnostics_channel"),{context:WB,trace:rte,SpanStatusCode:KB,propagation:ite,diag:SQt}=(Me(),ke(Ze)),{getRPCMetadata:bQt,RPCType:EQt}=pr(),{ATTR_HTTP_ROUTE:YB,ATTR_HTTP_RESPONSE_STATUS_CODE:OBe,ATTR_HTTP_REQUEST_METHOD:_Qt,ATTR_URL_PATH:TQt}=(Nn(),ke(Mr)),{InstrumentationBase:vQt}=iBe(),{version:RQt,name:PBe}=sBe(),AQt=">=4.0.0 <6",NBe=["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"},$y={ROUTE:"route-hook",INSTANCE:"hook",HANDLER:"request-handler"},Om="anonymous",eS=Symbol("fastify otel instance"),tS=Symbol("fastify otel request spans"),rN=Symbol("fastify otel request context"),CBe=Symbol("fastify otel addhook original"),MBe=Symbol("fastify otel setnotfound original"),iN=Symbol("fastify otel ignore path"),sN=Symbol("fastify otel record exceptions"),ZB=class extends vQt{logger=null;_requestHook=null;_lifecycleHook=null;constructor(t){if(super(PBe,RQt,t),this.logger=SQt.createComponentLogger({namespace:PBe}),this[iN]=null,this[sN]=!0,t?.recordExceptions!=null){if(typeof t.recordExceptions!="boolean")throw new TypeError("recordExceptions must be a boolean");this[sN]=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[iN]=i=>typeof n=="function"?n(i):(r==null&&(r=IBe().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)},xBe.subscribe("fastify.initialization",this._handleInitialization)),super.enable()}disable(){return this._handleInitialization&&(xBe.unsubscribe("fastify.initialization",this._handleInitialization),this._handleInitialization=void 0),super.disable()}init(){return[]}plugin(){let t=this;return n[Symbol.for("skip-override")]=!0,n[Symbol.for("fastify.display-name")]="@fastify/otel",n[Symbol.for("plugin-meta")]={fastify:AQt,name:"@fastify/otel"},n;function n(r,i,s){r.decorate(eS,t),r.decorate(CBe,r.addHook),r.decorate(MBe,r.setNotFoundHandler),r.decorateRequest("opentelemetry",function(){let p=this[rN],h=this[tS];return{enabled:this.routeOptions.config?.otel!==!1,span:h,tracer:t.tracer,context:p,inject:(m,g)=>ite.inject(p,m,g),extract:(m,g)=>ite.extract(p,m,g)}}),r.decorateRequest(tS,null),r.decorateRequest(rN,null),r.addHook("onRoute",function(p){if(t[iN]?.(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 NBe)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]:$y.ROUTE,[YB]:p.url,[fi.HOOK_CALLBACK_NAME]:m.name?.length>0?m.name:Om});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]:$y.ROUTE,[YB]:p.url,[fi.HOOK_CALLBACK_NAME]:y.name?.length>0?y.name:Om}));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]:$y.HANDLER,[YB]:p.url,[fi.HOOK_CALLBACK_NAME]:p.handler.name.length>0?p.handler.name:Om})}),r.addHook("onRequest",function(p,h,m){if(this[eS].isEnabled()===!1||p.routeOptions.config?.otel===!1)return m();if(this[eS][iN]?.({url:p.url,method:p.method})===!0)return this[eS].logger.debug(`Ignoring request ${p.method} ${p.url} because it matches the ignore path`),m();let g=WB.active();rte.getSpan(g)==null&&(g=ite.extract(g,p.headers));let y=bQt(g);p.routeOptions.url!=null&&y?.type===EQt.HTTP&&(y.route=p.routeOptions.url);let b={[fi.ROOT]:"@fastify/otel",[_Qt]:p.method,[TQt]:p.url};p.routeOptions.url!=null&&(b[YB]=p.routeOptions.url);let S=this[eS].tracer.startSpan("request",{attributes:b},g);try{this[eS]._requestHook?.(S,p)}catch(E){this[eS].logger.error({err:E},"requestHook threw")}p[rN]=rte.setSpan(g,S),p[tS]=S,WB.with(p[rN],()=>{m()})}),r.addHook("onResponse",function(p,h,m){let g=p[tS];g!=null&&(g.setAttributes({[OBe]:h.statusCode}),g.end()),p[tS]=null,m()}),r.addHook=c,r.setNotFoundHandler=u,s();function o(f,p,h,m){let g=f[tS];g!=null&&(p.statusCode>=500&&g.setStatus({code:KB.ERROR}),g.setAttributes({[OBe]:p.statusCode}),g.end()),f[tS]=null,m(null,h)}function a(f,p,h,m){let g=f[tS];g!=null&&(g.setStatus({code:KB.ERROR,message:h.message}),t[sN]!==!1&&g.recordException(h)),m()}function c(f,p){let h=this[CBe];return NBe.includes(f)?h.call(this,f,d(p,f,{[fi.HOOK_NAME]:`${this.pluginName} - ${f}`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:Om})):h.call(this,f,p)}function u(f,p){let h=this[MBe];typeof f=="function"?(p=d(f,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.name?.length>0?f.name:Om}),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]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preValidation.name?.length>0?f.preValidation.name:Om})),f.preHandler!=null&&(f.preHandler=d(f.preHandler,"notFoundHandler - preHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler - preHandler`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preHandler.name?.length>0?f.preHandler.name:Om})),p=d(p,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:Om}),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[eS],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[iN]?.({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[rN]??WB.active(),E=f.name?.length>0?f.name:this.pluginName??Om,_=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 WB.with(rte.setSpan(S,_),function(){try{let T=f.call(this,...g);return typeof T?.then=="function"?T.then(R=>(_.end(),R),R=>(_.setStatus({code:KB.ERROR,message:R.message}),y[sN]!==!1&&_.recordException(R),_.end(),Promise.reject(R))):(_.end(),T)}catch(T){throw _.setStatus({code:KB.ERROR,message:T.message}),y[sN]!==!1&&_.recordException(T),_.end(),T}},this)}}}}};ste.exports=ZB;ste.exports.FastifyOtelInstrumentation=ZB});var Pm,oN,aN,LBe=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})(Pm||(Pm={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request_handler";e.REQUEST_HANDLER=n})(oN||(oN={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request handler";e.REQUEST_HANDLER=n})(aN||(aN={}))});var cN,UBe=v(()=>{cN=Symbol("opentelemetry.instrumentation.fastify.request_active_span")});function ote(e,t,n,r={}){let i=t.startSpan(n,{attributes:r}),s=e[cN]||[];return s.push(i),Object.defineProperty(e,cN,{enumerable:!1,configurable:!0,value:s}),i}function JB(e,t){let n=e[cN]||[];n.length&&(n.forEach(r=>{t&&(r.setStatus({code:as.ERROR,message:t.message}),r.recordException(t)),r.end()}),delete e[cN])}function jBe(e,t,n){let r,i;try{i=e(),FBe(i)&&i.then(s=>t(void 0,s),s=>t(s))}catch(s){r=s}finally{if(!FBe(i)&&(t(r,i),r))throw r;return i}}function FBe(e){return typeof e=="object"&&e&&typeof Object.getOwnPropertyDescriptor(e,"then")?.value=="function"||!1}var HBe=v(()=>{Me();UBe()});function xQt(){let e=ct();e&&e.on("spanStart",t=>{BBe(t)})}function BBe(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 QB,n_,wQt,kQt,qBe,IQt,XB,zBe=v(()=>{Me();QB=Re(pr(),1),n_=Re(Jt(),1);Nn();st();LBe();HBe();wQt="0.1.0",kQt="@sentry/instrumentation-fastify-v3",qBe="anonymous",IQt=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]),XB=class extends n_.InstrumentationBase{constructor(t={}){super(kQt,wQt,t)}init(){return[new n_.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,QB.getRPCMetadata)(Ve.active()),c=o.routeOptions?o.routeOptions.url:r.routerPath;c&&a?.type===QB.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||qBe,c=`${aN.MIDDLEWARE} - ${a}`,u=o[1],l=ote(u,s.tracer,c,{[Pm.FASTIFY_TYPE]:oN.MIDDLEWARE,[Pm.PLUGIN_NAME]:t,[Pm.HOOK_NAME]:n}),d=i&&o[o.length-1];return d&&(o[o.length-1]=function(...f){JB(u),d.apply(this,f)}),Ve.with(jt.setSpan(Ve.active(),l),()=>jBe(()=>r.apply(this,o),f=>{f instanceof Error&&(l.setStatus({code:as.ERROR,message:f.message}),l.recordException(f)),i||JB(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()),xQt(),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,n_.safeExecuteInTheMiddle)(()=>r.apply(this,s),a=>{!a&&o instanceof Error&&(a=o),JB(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=`${aN.REQUEST_HANDLER} - ${c||this.pluginName||qBe}`,l={[Pm.PLUGIN_NAME]:this.pluginName,[Pm.FASTIFY_TYPE]:oN.REQUEST_HANDLER,[m7]:o.routeOptions?o.routeOptions.url:r.routerPath};c&&(l[Pm.FASTIFY_NAME]=c);let d=ote(i,t.tracer,u,l);BBe(d);let{requestHook:f}=t.getConfig();return f&&(0,n_.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 ate from"node:diagnostics_channel";function OQt(){let e=ct();if(e)return e.getIntegrationByName($B)}function GBe(e,t,n,r){let i=OQt()?.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 JBe(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 NQt(){let e=ct();e&&e.on("spanStart",t=>{JBe(t)})}function CQt(e){e.addHook("onRequest",async(t,n)=>{if(t.opentelemetry){let{span:s}=t.opentelemetry();s&&JBe(s)}let r=t.routeOptions?.url,i=t.method||"GET";vn().setTransactionName(`${i} ${r}`)})}var VBe,$B,WBe,KBe,PQt,YBe,XBe=v(()=>{VBe=Re(DBe(),1);st();sr();QE();zBe();$B="Fastify",WBe=rt(`${$B}.v3`,()=>new XB);KBe=rt(`${$B}.v5`,()=>{let e=new VBe.FastifyOtelInstrumentation,t=e.plugin();return ate.subscribe("fastify.initialization",n=>{let r=n.fastify;r?.register(t).after(i=>{i?So&&Z.error("Failed to setup Fastify instrumentation",i):(NQt(),r&&CQt(r))})}),ate.subscribe("tracing:fastify.request.handler:error",n=>{let{error:r,request:i,reply:s}=n;GBe.call(GBe,r,i,s,"diagnostics-channel")}),e}),PQt=(({shouldHandleError:e})=>{let t;return{name:$B,setupOnce(){t=e||ZBe,WBe(),KBe()},getShouldHandleError(){return t},setShouldHandleError(n){t=n}}}),YBe=(e={})=>PQt(e)});var cte=w(hf=>{"use strict";Object.defineProperty(hf,"__esModule",{value:!0});hf.SpanNames=hf.TokenKind=hf.AllowedOperationTypes=void 0;var MQt;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})(MQt=hf.AllowedOperationTypes||(hf.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=hf.TokenKind||(hf.TokenKind={}));var LQt;(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"})(LQt=hf.SpanNames||(hf.SpanNames={}))});var ute=w(uN=>{"use strict";Object.defineProperty(uN,"__esModule",{value:!0});uN.AttributeNames=void 0;var UQt;(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"})(UQt=uN.AttributeNames||(uN.AttributeNames={}))});var ez=w(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.OTEL_GRAPHQL_DATA_SYMBOL=KA.OTEL_PATCHED_SYMBOL=void 0;KA.OTEL_PATCHED_SYMBOL=Symbol.for("opentelemetry.patched");KA.OTEL_GRAPHQL_DATA_SYMBOL=Symbol.for("opentelemetry.graphql_data")});var QBe=w(tz=>{"use strict";Object.defineProperty(tz,"__esModule",{value:!0});tz.OPERATION_NOT_SUPPORTED=void 0;var pDr=ez();tz.OPERATION_NOT_SUPPORTED="Operation$operationName$not supported"});var fze=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 YA=(Me(),ke(Ze)),nS=cte(),r_=ute(),Nm=ez(),$Be=Object.values(nS.AllowedOperationTypes),FQt=e=>typeof e?.then=="function";bo.isPromise=FQt;var jQt=e=>typeof e=="object"&&e!==null;function lte(e,t,n){Array.isArray(n)?n.forEach((r,i)=>{lte(e,`${t}.${i}`,r)}):n instanceof Object?Object.entries(n).forEach(([r,i])=>{lte(e,`${t}.${r}`,i)}):e.setAttribute(`${r_.AttributeNames.VARIABLES}${String(t)}`,n)}function HQt(e,t){Object.entries(t).forEach(([n,r])=>{lte(e,n,r)})}bo.addInputVariableAttributes=HQt;function rze(e,t,n,r,i){let s=cze(t,n,r,i);e.setAttribute(r_.AttributeNames.SOURCE,s)}bo.addSpanSource=rze;function qQt(e,t,n,r,i){let s=ize(n,i);if(s)return{field:s,spanAdded:!1};let a=t().flatResolveSpans?oze(n):sze(n,i);return s={span:BQt(e,t,n,r,i,a)},VQt(n,i,s),{field:s,spanAdded:!0}}function BQt(e,t,n,r,i,s){let o={[r_.AttributeNames.FIELD_NAME]:r.fieldName,[r_.AttributeNames.FIELD_PATH]:i.join("."),[r_.AttributeNames.FIELD_TYPE]:r.returnType.toString(),[r_.AttributeNames.PARENT_NAME]:r.parentType.name},a=e.startSpan(`${nS.SpanNames.RESOLVE} ${o[r_.AttributeNames.FIELD_PATH]}`,{attributes:o},s?YA.trace.setSpan(YA.context.active(),s):void 0),c=n[Nm.OTEL_GRAPHQL_DATA_SYMBOL].source,u=r.fieldNodes.find(l=>l.kind==="Field");return u&&rze(a,c.loc,t().allowValues,u.loc?.start,u.loc?.end),a}function zQt(e,t){t&&e.recordException(t),e.end()}bo.endSpan=zQt;function GQt(e,t){if(!(!e||!Array.isArray(e.definitions)))return t?e.definitions.filter(n=>$Be.indexOf(n?.operation)!==-1).find(n=>t===n?.name?.value):e.definitions.find(n=>$Be.indexOf(n?.operation)!==-1)}bo.getOperation=GQt;function VQt(e,t,n){return e[Nm.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]=n}function ize(e,t){return e[Nm.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]}function sze(e,t){for(let n=t.length-1;n>0;n--){let r=ize(e,t.slice(0,n));if(r)return r.span}return oze(e)}function oze(e){return e[Nm.OTEL_GRAPHQL_DATA_SYMBOL].span}function WQt(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 KQt(e){return aze(` -`,e)}function eze(e){return aze(" ",e)}function aze(e,t){let n="";for(let r=0;ro){a=a.next,c=a?.line;continue}let u=a.value||a.kind,l="";!t&&YQt.indexOf(a.kind)>=0&&(u="*"),a.kind===nS.TokenKind.STRING&&(u=`"${u}"`),a.kind===nS.TokenKind.EOF&&(u=""),a.line>c?(i+=KQt(a.line-c),c=a.line,l=eze(a.column-1)):a.line===a.prev?.line&&(l=eze(a.start-(a.prev?.end||0))),i+=l+u,a&&(a=a.next)}}return i}bo.getSourceFromLocation=cze;function uze(e,t,n){if(!e||e[Nm.OTEL_PATCHED_SYMBOL])return;let r=e.getFields();e[Nm.OTEL_PATCHED_SYMBOL]=!0,Object.keys(r).forEach(i=>{let s=r[i];if(s&&(s.resolve&&(s.resolve=dze(t,n,s.resolve)),s.type)){let o=lze(s.type);for(let a of o)uze(a,t,n)}})}bo.wrapFields=uze;function lze(e){return"ofType"in e?lze(e.ofType):ZQt(e)?e.getTypes():JQt(e)?[e]:[]}function ZQt(e){return"getTypes"in e&&typeof e.getTypes=="function"}function JQt(e){return"getFields"in e&&typeof e.getFields=="function"}var tze=(e,t,n)=>{n&&(e.recordException(t),e.setStatus({code:YA.SpanStatusCode.ERROR,message:t.message}),e.end())},nze=(e,t)=>{t&&e.end()};function dze(e,t,n,r=!1){if(i[Nm.OTEL_PATCHED_SYMBOL]||typeof n!="function")return n;function i(s,o,a,c){if(!n)return;let u=t();if(u.ignoreTrivialResolveSpans&&r&&(jQt(s)||typeof s=="function")&&typeof s[c.fieldName]!="function")return n.call(this,s,o,a,c);if(!a[Nm.OTEL_GRAPHQL_DATA_SYMBOL])return n.call(this,s,o,a,c);let l=WQt(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=>(nze(f,p),m),m=>{throw tze(f,m,p),m}):(nze(f,p),h)}catch(h){throw tze(f,h,p),h}})}return i[Nm.OTEL_PATCHED_SYMBOL]=!0,i}bo.wrapFieldResolver=dze});var pze=w(ZA=>{"use strict";Object.defineProperty(ZA,"__esModule",{value:!0});ZA.PACKAGE_NAME=ZA.PACKAGE_VERSION=void 0;ZA.PACKAGE_VERSION="0.62.0";ZA.PACKAGE_NAME="@opentelemetry/instrumentation-graphql"});var gze=w(iz=>{"use strict";Object.defineProperty(iz,"__esModule",{value:!0});iz.GraphQLInstrumentation=void 0;var Cm=(Me(),ke(Ze)),td=Jt(),lN=cte(),nz=ute(),dte=ez(),XQt=QBe(),Qa=fze(),hze=pze(),mze={mergeItems:!1,depth:-1,allowValues:!1,ignoreResolveSpans:!1},rz=[">=14.0.0 <17"],fte=class extends td.InstrumentationBase{constructor(t={}){super(hze.PACKAGE_NAME,hze.PACKAGE_VERSION,{...mze,...t})}setConfig(t={}){super.setConfig({...mze,...t})}init(){let t=new td.InstrumentationNodeModuleDefinition("graphql",rz);return t.files.push(this._addPatchingExecute()),t.files.push(this._addPatchingParser()),t.files.push(this._addPatchingValidate()),t}_addPatchingExecute(){return new td.InstrumentationNodeModuleFile("graphql/execution/execute.js",rz,t=>((0,td.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 td.InstrumentationNodeModuleFile("graphql/language/parser.js",rz,t=>((0,td.isWrapped)(t.parse)&&this._unwrap(t,"parse"),this._wrap(t,"parse",this._patchParse()),t),t=>{t&&this._unwrap(t,"parse")})}_addPatchingValidate(){return new td.InstrumentationNodeModuleFile("graphql/validation/validate.js",rz,t=>((0,td.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[dte.OTEL_GRAPHQL_DATA_SYMBOL]={source:o.document?o.document||o.document[dte.OTEL_GRAPHQL_DATA_SYMBOL]:void 0,span:c,fields:{}},Cm.context.with(Cm.trace.setSpan(Cm.context.active(),c),()=>(0,td.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,td.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(lN.SpanNames.PARSE);return Cm.context.with(Cm.trace.setSpan(Cm.context.active(),o),()=>(0,td.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(lN.SpanNames.SCHEMA_PARSE)),(0,Qa.endSpan)(o,a)}))}_validate(t,n,r,i,s,o,a){let c=this.tracer.startSpan(lN.SpanNames.VALIDATE,{});return Cm.context.with(Cm.trace.setSpan(Cm.context.active(),c),()=>(0,td.safeExecuteInTheMiddle)(()=>n.call(t,r,i,s,a,o),(u,l)=>{i.loc||c.updateName(lN.SpanNames.SCHEMA_VALIDATE),l&&l.length&&c.recordException({name:nz.AttributeNames.ERROR_VALIDATION_NAME,message:JSON.stringify(l)}),(0,Qa.endSpan)(c,u)}))}_createExecuteSpan(t,n){let r=this.getConfig(),i=this.tracer.startSpan(lN.SpanNames.EXECUTE,{});if(t){let{operation:s,name:o}=t;i.setAttribute(nz.AttributeNames.OPERATION_TYPE,s);let a=o?.value;a?(i.setAttribute(nz.AttributeNames.OPERATION_NAME,a),i.updateName(`${s} ${a}`)):i.updateName(s)}else{let s=" ";n.operationName&&(s=` "${n.operationName}" `),s=XQt.OPERATION_NOT_SUPPORTED.replace("$operationName$",s),i.setAttribute(nz.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[dte.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}}};iz.GraphQLInstrumentation=fte});var yze=w(sz=>{"use strict";Object.defineProperty(sz,"__esModule",{value:!0});sz.GraphQLInstrumentation=void 0;var QQt=gze();Object.defineProperty(sz,"GraphQLInstrumentation",{enumerable:!0,get:function(){return QQt.GraphQLInstrumentation}})});function Tze(e){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...e}}function e$t(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 Sze,bze,Eze,$Qt,_ze,vze=v(()=>{Me();Sze=Re(yze(),1);st();sr();CA();bze="Graphql",Eze=rt(bze,Sze.GraphQLInstrumentation,e=>{let t=Tze(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[PA]||[],d=a?`${o} ${a}`:`${o}`;Array.isArray(l)?(l.push(d),c.setAttribute(PA,l)):typeof l=="string"?c.setAttribute(PA,[l,d]):c.setAttribute(PA,d),vt(c).data["original-description"]||c.setAttribute("original-description",vt(c).description),c.updateName(`${vt(c).data["original-description"]} (${e$t(l)})`)}}}}),$Qt=((e={})=>({name:bze,setupOnce(){Eze(Tze(e))}})),_ze=$Qt});var Rze=w(oz=>{"use strict";Object.defineProperty(oz,"__esModule",{value:!0});oz.EVENT_LISTENERS_SET=void 0;oz.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.kafkajs.eventListenersSet")});var Aze=w(az=>{"use strict";Object.defineProperty(az,"__esModule",{value:!0});az.bufferTextMapGetter=void 0;az.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 wze=w(jn=>{"use strict";Object.defineProperty(jn,"__esModule",{value:!0});jn.METRIC_MESSAGING_PROCESS_DURATION=jn.METRIC_MESSAGING_CLIENT_SENT_MESSAGES=jn.METRIC_MESSAGING_CLIENT_OPERATION_DURATION=jn.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES=jn.MESSAGING_SYSTEM_VALUE_KAFKA=jn.MESSAGING_OPERATION_TYPE_VALUE_SEND=jn.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE=jn.MESSAGING_OPERATION_TYPE_VALUE_PROCESS=jn.ATTR_MESSAGING_SYSTEM=jn.ATTR_MESSAGING_OPERATION_TYPE=jn.ATTR_MESSAGING_OPERATION_NAME=jn.ATTR_MESSAGING_KAFKA_OFFSET=jn.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE=jn.ATTR_MESSAGING_KAFKA_MESSAGE_KEY=jn.ATTR_MESSAGING_DESTINATION_PARTITION_ID=jn.ATTR_MESSAGING_DESTINATION_NAME=jn.ATTR_MESSAGING_BATCH_MESSAGE_COUNT=void 0;jn.ATTR_MESSAGING_BATCH_MESSAGE_COUNT="messaging.batch.message_count";jn.ATTR_MESSAGING_DESTINATION_NAME="messaging.destination.name";jn.ATTR_MESSAGING_DESTINATION_PARTITION_ID="messaging.destination.partition.id";jn.ATTR_MESSAGING_KAFKA_MESSAGE_KEY="messaging.kafka.message.key";jn.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE="messaging.kafka.message.tombstone";jn.ATTR_MESSAGING_KAFKA_OFFSET="messaging.kafka.offset";jn.ATTR_MESSAGING_OPERATION_NAME="messaging.operation.name";jn.ATTR_MESSAGING_OPERATION_TYPE="messaging.operation.type";jn.ATTR_MESSAGING_SYSTEM="messaging.system";jn.MESSAGING_OPERATION_TYPE_VALUE_PROCESS="process";jn.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE="receive";jn.MESSAGING_OPERATION_TYPE_VALUE_SEND="send";jn.MESSAGING_SYSTEM_VALUE_KAFKA="kafka";jn.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES="messaging.client.consumed.messages";jn.METRIC_MESSAGING_CLIENT_OPERATION_DURATION="messaging.client.operation.duration";jn.METRIC_MESSAGING_CLIENT_SENT_MESSAGES="messaging.client.sent.messages";jn.METRIC_MESSAGING_PROCESS_DURATION="messaging.process.duration"});var kze=w(JA=>{"use strict";Object.defineProperty(JA,"__esModule",{value:!0});JA.PACKAGE_NAME=JA.PACKAGE_VERSION=void 0;JA.PACKAGE_VERSION="0.23.0";JA.PACKAGE_NAME="@opentelemetry/instrumentation-kafkajs"});var Cze=w(uz=>{"use strict";Object.defineProperty(uz,"__esModule",{value:!0});uz.KafkaJsInstrumentation=void 0;var Lr=(Me(),ke(Ze)),nd=Jt(),XA=(Nn(),ke(Mr)),Ize=Rze(),xze=Aze(),ot=wze(),Oze=kze();function cz(e,t,n){return r=>{e.add(t,{...n,...r?{[XA.ATTR_ERROR_TYPE]:r}:{}})}}function Pze(e,t,n){return r=>{e.record((Date.now()-t)/1e3,{...n,...r?{[XA.ATTR_ERROR_TYPE]:r}:{}})}}var Nze=[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10],pte=class extends nd.InstrumentationBase{constructor(t={}){super(Oze.PACKAGE_NAME,Oze.PACKAGE_VERSION,t)}_updateMetricInstruments(){this._clientDuration=this.meter.createHistogram(ot.METRIC_MESSAGING_CLIENT_OPERATION_DURATION,{advice:{explicitBucketBoundaries:Nze}}),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:Nze}})}init(){let t=r=>{(0,nd.isWrapped)(r?.Kafka?.prototype.producer)&&this._unwrap(r.Kafka.prototype,"producer"),(0,nd.isWrapped)(r?.Kafka?.prototype.consumer)&&this._unwrap(r.Kafka.prototype,"consumer")};return new nd.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,nd.isWrapped)(s.run)&&t._unwrap(s,"run"),t._wrap(s,"run",t._getConsumerRunPatch()),t._setKafkaEventListeners(s),s}}_setKafkaEventListeners(t){t[Ize.EVENT_LISTENERS_SET]||(t.events?.REQUEST&&t.on(t.events.REQUEST,this._recordClientDurationMetric.bind(this)),t[Ize.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}`,[XA.ATTR_SERVER_ADDRESS]:n,[XA.ATTR_SERVER_PORT]:Number.parseInt(r,10)})}_getProducerPatch(){let t=this;return n=>function(...i){let s=n.apply(this,i);return(0,nd.isWrapped)(s.sendBatch)&&t._unwrap(s,"sendBatch"),t._wrap(s,"sendBatch",t._getSendBatchPatch()),(0,nd.isWrapped)(s.send)&&t._unwrap(s,"send"),t._wrap(s,"send",t._getSendPatch()),(0,nd.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,nd.isWrapped)(s.eachMessage)&&t._unwrap(s,"eachMessage"),t._wrap(s,"eachMessage",t._getConsumerEachMessagePatch())),s?.eachBatch&&((0,nd.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,xze.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=[Pze(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)}),cz(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=[cz(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,xze.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(Pze(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(cz(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=>cz(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=XA.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(XA.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,nd.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,nd.safeExecuteInTheMiddle)(()=>i(r,{topic:t,message:n}),s=>{s&&this._diag.error("producerHook error",s)},!0),r}};uz.KafkaJsInstrumentation=pte});var Mze=w(lz=>{"use strict";Object.defineProperty(lz,"__esModule",{value:!0});lz.KafkaJsInstrumentation=void 0;var t$t=Cze();Object.defineProperty(lz,"KafkaJsInstrumentation",{enumerable:!0,get:function(){return t$t.KafkaJsInstrumentation}})});var Dze,Lze,Uze,n$t,Fze,jze=v(()=>{Dze=Re(Mze(),1);sr();Lze="Kafka",Uze=rt(Lze,()=>new Dze.KafkaJsInstrumentation({consumerHook(e){Dr(e,"auto.kafkajs.otel.consumer")},producerHook(e){Dr(e,"auto.kafkajs.otel.producer")}})),n$t=(()=>({name:Lze,setupOnce(){Uze()}})),Fze=n$t});var Hze=w(QA=>{"use strict";Object.defineProperty(QA,"__esModule",{value:!0});QA.PACKAGE_NAME=QA.PACKAGE_VERSION=void 0;QA.PACKAGE_VERSION="0.58.0";QA.PACKAGE_NAME="@opentelemetry/instrumentation-lru-memoizer"});var Gze=w(dz=>{"use strict";Object.defineProperty(dz,"__esModule",{value:!0});dz.LruMemoizerInstrumentation=void 0;var qze=(Me(),ke(Ze)),Bze=Jt(),zze=Hze(),hte=class extends Bze.InstrumentationBase{constructor(t={}){super(zze.PACKAGE_NAME,zze.PACKAGE_VERSION,t)}init(){return[new Bze.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"?qze.context.bind(qze.context.active(),s):s;return i.push(o),r.apply(this,i)}};return n.sync=t.sync,n},void 0)]}};dz.LruMemoizerInstrumentation=hte});var Vze=w(fz=>{"use strict";Object.defineProperty(fz,"__esModule",{value:!0});fz.LruMemoizerInstrumentation=void 0;var r$t=Gze();Object.defineProperty(fz,"LruMemoizerInstrumentation",{enumerable:!0,get:function(){return r$t.LruMemoizerInstrumentation}})});var Wze,Kze,Yze,i$t,Zze,Jze=v(()=>{Wze=Re(Vze(),1);sr();Kze="LruMemoizer",Yze=rt(Kze,()=>new Wze.LruMemoizerInstrumentation),i$t=(()=>({name:Kze,setupOnce(){Yze()}})),Zze=i$t});var Xze=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 Qze=w(dN=>{"use strict";Object.defineProperty(dN,"__esModule",{value:!0});dN.MongodbCommandType=void 0;var s$t;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.AGGREGATE="aggregate",e.UNKNOWN="unknown"})(s$t=dN.MongodbCommandType||(dN.MongodbCommandType={}))});var $ze=w($A=>{"use strict";Object.defineProperty($A,"__esModule",{value:!0});$A.PACKAGE_NAME=$A.PACKAGE_VERSION=void 0;$A.PACKAGE_VERSION="0.67.0";$A.PACKAGE_NAME="@opentelemetry/instrumentation-mongodb"});var nGe=w(pz=>{"use strict";Object.defineProperty(pz,"__esModule",{value:!0});pz.MongoDBInstrumentation=void 0;var Yi=(Me(),ke(Ze)),Hn=Jt(),Mm=(Nn(),ke(Mr)),hl=Xze(),i_=Qze(),eGe=$ze(),tGe={requireParentSpan:!0},mte=class e extends Hn.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(eGe.PACKAGE_NAME,eGe.PACKAGE_VERSION,{...tGe,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,Hn.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,Hn.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...tGe,...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 Hn.InstrumentationNodeModuleDefinition("mongodb",[">=3.3.0 <4"],void 0,void 0,[new Hn.InstrumentationNodeModuleFile("mongodb/lib/core/wireprotocol/index.js",[">=3.3.0 <4"],t,n)]),new Hn.InstrumentationNodeModuleDefinition("mongodb",[">=4.0.0 <8"],void 0,void 0,[new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=4.0.0 <6.4"],s,a),new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=6.4.0 <8"],o,a),new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection_pool.js",[">=4.0.0 <6.4"],c,u),new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connect.js",[">=4.0.0 <8"],r,i),new Hn.InstrumentationNodeModuleFile("mongodb/lib/sessions.js",[">=4.0.0 <8"],l,d)])]}_getV3ConnectionPatches(){return{v3PatchConnection:t=>((0,Hn.isWrapped)(t.insert)&&this._unwrap(t,"insert"),this._wrap(t,"insert",this._getV3PatchOperation("insert")),(0,Hn.isWrapped)(t.remove)&&this._unwrap(t,"remove"),this._wrap(t,"remove",this._getV3PatchOperation("remove")),(0,Hn.isWrapped)(t.update)&&this._unwrap(t,"update"),this._wrap(t,"update",this._getV3PatchOperation("update")),(0,Hn.isWrapped)(t.command)&&this._unwrap(t,"command"),this._wrap(t,"command",this._getV3PatchCommand()),(0,Hn.isWrapped)(t.query)&&this._unwrap(t,"query"),this._wrap(t,"query",this._getV3PatchFind()),(0,Hn.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,Hn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),this._wrap(t.ServerSessionPool.prototype,"acquire",this._getV4AcquireCommand()),(0,Hn.isWrapped)(t.release)&&this._unwrap(t,"release"),this._wrap(t.ServerSessionPool.prototype,"release",this._getV4ReleaseCommand()),t),v4UnpatchSessions:t=>{t!==void 0&&((0,Hn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),(0,Hn.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,Hn.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,Hn.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=Yi.context.bind(Yi.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,Hn.isWrapped)(t.Connection.prototype.command)&&this._unwrap(t.Connection.prototype,"command"),this._wrap(t.Connection.prototype,"command",this._getV4PatchCommandCallback()),t),v4PatchConnectionPromise:t=>((0,Hn.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=Yi.trace.getSpan(Yi.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:Yi.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=Yi.trace.getSpan(Yi.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===i_.MongodbCommandType.UNKNOWN?void 0:f,h=t._getV3SpanAttributes(s,i,o,p),m=t._spanNameFromAttrs(h),g=t.tracer.startSpan(m,{kind:Yi.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=Yi.trace.getSpan(Yi.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:Yi.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=Yi.trace.getSpan(Yi.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:Yi.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=Yi.trace.getSpan(Yi.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:Yi.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=Yi.trace.getSpan(Yi.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:Yi.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?i_.MongodbCommandType.CREATE_INDEXES:t.findandmodify!==void 0?i_.MongodbCommandType.FIND_AND_MODIFY:t.ismaster!==void 0?i_.MongodbCommandType.IS_MASTER:t.count!==void 0?i_.MongodbCommandType.COUNT:t.aggregate!==void 0?i_.MongodbCommandType.AGGREGATE:i_.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&Hn.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&Hn.SemconvStability.STABLE&&(a[Mm.ATTR_DB_SYSTEM_NAME]=hl.DB_SYSTEM_NAME_VALUE_MONGODB,a[Mm.ATTR_DB_NAMESPACE]=t,a[Mm.ATTR_DB_OPERATION_NAME]=o,a[Mm.ATTR_DB_COLLECTION_NAME]=n),r&&i){this._netSemconvStability&Hn.SemconvStability.OLD&&(a[hl.ATTR_NET_PEER_NAME]=r),this._netSemconvStability&Hn.SemconvStability.STABLE&&(a[Mm.ATTR_SERVER_ADDRESS]=r);let c=parseInt(i,10);isNaN(c)||(this._netSemconvStability&Hn.SemconvStability.OLD&&(a[hl.ATTR_NET_PEER_PORT]=c),this._netSemconvStability&Hn.SemconvStability.STABLE&&(a[Mm.ATTR_SERVER_PORT]=c))}if(s){let{dbStatementSerializer:c}=this.getConfig(),u=typeof c=="function"?c:this._defaultDbStatementSerializer.bind(this);(0,Hn.safeExecuteInTheMiddle)(()=>{let l=u(s);this._dbSemconvStability&Hn.SemconvStability.OLD&&(a[hl.ATTR_DB_STATEMENT]=l),this._dbSemconvStability&Hn.SemconvStability.STABLE&&(a[Mm.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&Hn.SemconvStability.STABLE?n=[t[Mm.ATTR_DB_OPERATION_NAME],t[Mm.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,Hn.safeExecuteInTheMiddle)(()=>{r(t,{data:n})},i=>{i&&this._diag.error("Error running response hook",i)},!0)}_patchEnd(t,n,r,i){let s=Yi.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:Yi.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 Yi.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}};pz.MongoDBInstrumentation=mte});var rGe=w(fN=>{"use strict";Object.defineProperty(fN,"__esModule",{value:!0});fN.MongodbCommandType=void 0;var o$t;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.UNKNOWN="unknown"})(o$t=fN.MongodbCommandType||(fN.MongodbCommandType={}))});var iGe=w(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.MongodbCommandType=ew.MongoDBInstrumentation=void 0;var a$t=nGe();Object.defineProperty(ew,"MongoDBInstrumentation",{enumerable:!0,get:function(){return a$t.MongoDBInstrumentation}});var c$t=rGe();Object.defineProperty(ew,"MongodbCommandType",{enumerable:!0,get:function(){return c$t.MongodbCommandType}})});function u$t(e){let t=gte(e);return JSON.stringify(t)}function gte(e){if(Array.isArray(e))return e.map(t=>gte(t));if(l$t(e)){let t={};return Object.entries(e).map(([n,r])=>[n,gte(r)]).reduce((n,r)=>(f$t(r)&&(n[r[0]]=r[1]),n),t)}return"?"}function l$t(e){return typeof e=="object"&&e!==null&&!d$t(e)}function d$t(e){let t=!1;return typeof Buffer<"u"&&(t=Buffer.isBuffer(e)),t}function f$t(e){return Array.isArray(e)}var sGe,oGe,aGe,p$t,cGe,uGe=v(()=>{sGe=Re(iGe(),1);sr();oGe="Mongo",aGe=rt(oGe,()=>new sGe.MongoDBInstrumentation({dbStatementSerializer:u$t,responseHook(e){Dr(e,"auto.db.otel.mongo")}}));p$t=(()=>({name:oGe,setupOnce(){aGe()}})),cGe=p$t});var yte=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 fGe=w(rS=>{"use strict";Object.defineProperty(rS,"__esModule",{value:!0});rS.handleCallbackResponse=rS.handlePromiseResponse=rS.getAttributesFromCollection=void 0;var lGe=(Me(),ke(Ze)),hN=Jt(),pN=yte(),hz=(Nn(),ke(Mr));function h$t(e,t,n){let r={};return t&hN.SemconvStability.OLD&&(r[pN.ATTR_DB_MONGODB_COLLECTION]=e.name,r[pN.ATTR_DB_NAME]=e.conn.name,r[pN.ATTR_DB_USER]=e.conn.user),t&hN.SemconvStability.STABLE&&(r[hz.ATTR_DB_COLLECTION_NAME]=e.name,r[hz.ATTR_DB_NAMESPACE]=e.conn.name),n&hN.SemconvStability.OLD&&(r[pN.ATTR_NET_PEER_NAME]=e.conn.host,r[pN.ATTR_NET_PEER_PORT]=e.conn.port),n&hN.SemconvStability.STABLE&&(r[hz.ATTR_SERVER_ADDRESS]=e.conn.host,r[hz.ATTR_SERVER_PORT]=e.conn.port),r}rS.getAttributesFromCollection=h$t;function dGe(e,t={}){e.recordException(t),e.setStatus({code:lGe.SpanStatusCode.ERROR,message:`${t.message} ${t.code?` -Mongoose Error Code: ${t.code}`:""}`})}function Ste(e,t,n,r=void 0){n&&(0,hN.safeExecuteInTheMiddle)(()=>n(e,{moduleVersion:r,response:t}),i=>{i&&lGe.diag.error("mongoose instrumentation: responseHook error",i)},!0)}function m$t(e,t,n,r=void 0){return e instanceof Promise?e.then(i=>(Ste(t,i,n,r),i)).catch(i=>{throw dGe(t,i),i}).finally(()=>t.end()):(Ste(t,e,n,r),t.end(),e)}rS.handlePromiseResponse=m$t;function g$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?dGe(r,c):Ste(r,u,s,o),r.end(),e(c,u)),t.apply(n,i)}rS.handleCallbackResponse=g$t});var pGe=w(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});tw.PACKAGE_NAME=tw.PACKAGE_VERSION=void 0;tw.PACKAGE_VERSION="0.60.0";tw.PACKAGE_NAME="@opentelemetry/instrumentation-mongoose"});var SGe=w(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.MongooseInstrumentation=gu._ALREADY_INSTRUMENTED=gu._STORED_PARENT_SPAN=void 0;var Eo=(Me(),ke(Ze)),y$t=pr(),bte=fGe(),fa=Jt(),hGe=pGe(),iS=yte(),s_=(Nn(),ke(Mr)),mz=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],S$t=["remove","count","findOneAndRemove",...mz],b$t=["count","findOneAndRemove",...mz],E$t=[...mz];function mGe(e){return e?e.startsWith("6.")||e.startsWith("5.")?S$t:e.startsWith("7.")?b$t:E$t:mz}function gGe(e){return e&&(e.startsWith("5.")||e.startsWith("6."))||!1}function yGe(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 Ete=class extends fa.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(hGe.PACKAGE_NAME,hGe.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,gGe(n)&&this._wrap(r.Model.prototype,"remove",this.patchOnModelMethods("remove",n)),yGe(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)),mGe(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=mGe(n);this._unwrap(r.Model.prototype,"save"),r.Model.prototype.$save=r.Model.prototype.save,gGe(n)&&this._unwrap(r.Model.prototype,"remove"),yGe(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[iS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[s_.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[iS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[s_.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[iS.ATTR_DB_STATEMENT]=f),r._dbSemconvStability&fa.SemconvStability.STABLE&&(u[s_.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[iS.ATTR_DB_STATEMENT]=g),r._dbSemconvStability&fa.SemconvStability.STABLE&&(f[s_.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[iS.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&fa.SemconvStability.STABLE&&(l[s_.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,bte.getAttributesFromCollection)(t,this._dbSemconvStability,this._netSemconvStability)};this._dbSemconvStability&fa.SemconvStability.OLD&&(o[iS.ATTR_DB_OPERATION]=r,o[iS.ATTR_DB_SYSTEM]="mongoose"),this._dbSemconvStability&fa.SemconvStability.STABLE&&(o[s_.ATTR_DB_OPERATION_NAME]=r,o[s_.ATTR_DB_SYSTEM_NAME]=iS.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,bte.handleCallbackResponse)(s,n,r,t,i,a.getConfig().responseHook,o));{let c=a._callOriginalFunction(()=>n.apply(r,i));return(0,bte.handlePromiseResponse)(c,t,a.getConfig().responseHook,o)}}_callOriginalFunction(t){return this.getConfig().suppressInternalInstrumentation?Eo.context.with((0,y$t.suppressTracing)(Eo.context.active()),t):t()}};gu.MongooseInstrumentation=Ete});var bGe=w(gz=>{"use strict";Object.defineProperty(gz,"__esModule",{value:!0});gz.MongooseInstrumentation=void 0;var _$t=SGe();Object.defineProperty(gz,"MongooseInstrumentation",{enumerable:!0,get:function(){return _$t.MongooseInstrumentation}})});var EGe,_Ge,TGe,T$t,vGe,RGe=v(()=>{EGe=Re(bGe(),1);sr();_Ge="Mongoose",TGe=rt(_Ge,()=>new EGe.MongooseInstrumentation({responseHook(e){Dr(e,"auto.db.otel.mongoose")}})),T$t=(()=>({name:_Ge,setupOnce(){TGe()}})),vGe=T$t});var AGe=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 wGe=w(mN=>{"use strict";Object.defineProperty(mN,"__esModule",{value:!0});mN.AttributeNames=void 0;var v$t;(function(e){e.MYSQL_VALUES="db.mysql.values"})(v$t=mN.AttributeNames||(mN.AttributeNames={}))});var kGe=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 R$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=R$t;function A$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}$a.getJDBCString=A$t;function w$t(e){return typeof e=="string"?e:e.sql}$a.getDbQueryText=w$t;function k$t(e,t){return _te(typeof e=="string"?t:t||e.values)}$a.getDbValues=k$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}$a.getSpanName=I$t;function _te(e){return e?`[${e.toString()}]`:""}$a.arrayStringifyHelper=_te;function x$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=x$t});var IGe=w(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.PACKAGE_NAME=nw.PACKAGE_VERSION=void 0;nw.PACKAGE_VERSION="0.60.0";nw.PACKAGE_NAME="@opentelemetry/instrumentation-mysql"});var OGe=w(yz=>{"use strict";Object.defineProperty(yz,"__esModule",{value:!0});yz.MySQLInstrumentation=void 0;var yu=(Me(),ke(Ze)),rd=Jt(),rw=(Nn(),ke(Mr)),Dm=AGe(),O$t=wGe(),o_=kGe(),xGe=IGe(),Tte=class extends rd.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(xGe.PACKAGE_NAME,xGe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,rd.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,rd.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._connectionsUsageOld=this.meter.createUpDownCounter(Dm.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 rd.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],t=>((0,rd.isWrapped)(t.createConnection)&&this._unwrap(t,"createConnection"),this._wrap(t,"createConnection",this._patchCreateConnection()),(0,rd.isWrapped)(t.createPool)&&this._unwrap(t,"createPool"),this._wrap(t,"createPool",this._patchCreatePool()),(0,rd.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,o_.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,rd.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,o_.getConfig)(t.config),f=parseInt(u,10),p=(0,o_.getDbQueryText)(i);r._dbSemconvStability&rd.SemconvStability.OLD&&(a[Dm.ATTR_DB_SYSTEM]=Dm.DB_SYSTEM_VALUE_MYSQL,a[Dm.ATTR_DB_CONNECTION_STRING]=(0,o_.getJDBCString)(c,u,l),a[Dm.ATTR_DB_NAME]=l,a[Dm.ATTR_DB_USER]=d,a[Dm.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&rd.SemconvStability.STABLE&&(a[rw.ATTR_DB_SYSTEM_NAME]=rw.DB_SYSTEM_NAME_VALUE_MYSQL,a[rw.ATTR_DB_NAMESPACE]=l,a[rw.ATTR_DB_QUERY_TEXT]=p),r._netSemconvStability&rd.SemconvStability.OLD&&(a[Dm.ATTR_NET_PEER_NAME]=c,isNaN(f)||(a[Dm.ATTR_NET_PEER_PORT]=f)),r._netSemconvStability&rd.SemconvStability.STABLE&&(a[rw.ATTR_SERVER_ADDRESS]=c,isNaN(f)||(a[rw.ATTR_SERVER_PORT]=f));let h=r.tracer.startSpan((0,o_.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(O$t.AttributeNames.MYSQL_VALUES,(0,o_.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,o_.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")})}};yz.MySQLInstrumentation=Tte});var PGe=w(Sz=>{"use strict";Object.defineProperty(Sz,"__esModule",{value:!0});Sz.MySQLInstrumentation=void 0;var P$t=OGe();Object.defineProperty(Sz,"MySQLInstrumentation",{enumerable:!0,get:function(){return P$t.MySQLInstrumentation}})});var NGe,CGe,MGe,N$t,DGe,LGe=v(()=>{NGe=Re(PGe(),1);sr();CGe="Mysql",MGe=rt(CGe,()=>new NGe.MySQLInstrumentation({})),N$t=(()=>({name:CGe,setupOnce(){MGe()}})),DGe=N$t});var vte=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 Ate=w(bz=>{"use strict";Object.defineProperty(bz,"__esModule",{value:!0});bz.addSqlCommenterComment=void 0;var Rte=(Me(),ke(Ze)),C$t=pr();function M$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 L$t(e,t){if(typeof t!="string"||t.length===0||M$t(t))return t;let n=new C$t.W3CTraceContextPropagator,r={};n.inject(Rte.trace.setSpan(Rte.ROOT_CONTEXT,e),r,Rte.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}*/`}bz.addSqlCommenterComment=L$t});var UGe=w(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.getConnectionPrototypeToInstrument=id.once=id.getSpanName=id.getQueryText=id.getConnectionAttributes=void 0;var gN=vte(),Ez=Jt(),wte=(Nn(),ke(Mr));function U$t(e,t,n){let{host:r,port:i,database:s,user:o}=F$t(e),a={};t&Ez.SemconvStability.OLD&&(a[gN.ATTR_DB_CONNECTION_STRING]=j$t(r,i,s),a[gN.ATTR_DB_NAME]=s,a[gN.ATTR_DB_USER]=o),t&Ez.SemconvStability.STABLE&&(a[wte.ATTR_DB_NAMESPACE]=s);let c=parseInt(i,10);return n&Ez.SemconvStability.OLD&&(a[gN.ATTR_NET_PEER_NAME]=r,isNaN(c)||(a[gN.ATTR_NET_PEER_PORT]=c)),n&Ez.SemconvStability.STABLE&&(a[wte.ATTR_SERVER_ADDRESS]=r,isNaN(c)||(a[wte.ATTR_SERVER_PORT]=c)),a}id.getConnectionAttributes=U$t;function F$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 j$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}function H$t(e,t,n,r=!1,i=q$t){let[s,o]=typeof e=="string"?[e,n]:[e.sql,B$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"}}id.getQueryText=H$t;function q$t(e){return e.replace(/\b\d+\b/g,"?").replace(/(["'])(?:(?=(\\?))\2.)*?\1/g,"?")}function B$t(e){return"values"in e}function z$t(e){let t=typeof e=="object"?e.sql:e,n=t?.indexOf(" ");return typeof n=="number"&&n!==-1?t?.substring(0,n):t}id.getSpanName=z$t;var G$t=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};id.once=G$t;function V$t(e){let t=e.prototype,n=Object.getPrototypeOf(t);return typeof n?.query=="function"&&typeof n?.execute=="function"?n:t}id.getConnectionPrototypeToInstrument=V$t});var FGe=w(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.PACKAGE_NAME=iw.PACKAGE_VERSION=void 0;iw.PACKAGE_VERSION="0.60.0";iw.PACKAGE_NAME="@opentelemetry/instrumentation-mysql2"});var BGe=w(_z=>{"use strict";Object.defineProperty(_z,"__esModule",{value:!0});_z.MySQL2Instrumentation=void 0;var jGe=(Me(),ke(Ze)),mf=Jt(),kte=vte(),HGe=Ate(),sw=UGe(),qGe=FGe(),Ite=(Nn(),ke(Mr)),xte=[">=1.4.2 <4"],Ote=class extends mf.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(qGe.PACKAGE_NAME,qGe.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",xte,s=>(n(s),s),()=>{},[new mf.InstrumentationNodeModuleFile("mysql2/promise.js",xte,s=>(n(s),s),()=>{}),new mf.InstrumentationNodeModuleFile("mysql2/lib/connection.js",xte,s=>{let o=(0,sw.getConnectionPrototypeToInstrument)(s);return r(o),s},s=>{if(s===void 0)return;let o=(0,sw.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,sw.getConnectionAttributes)(this.config,i._dbSemconvStability,i._netSemconvStability),p=(0,sw.getQueryText)(s,t,c,u,l);i._dbSemconvStability&mf.SemconvStability.OLD&&(f[kte.ATTR_DB_SYSTEM]=kte.DB_SYSTEM_VALUE_MYSQL,f[kte.ATTR_DB_STATEMENT]=p),i._dbSemconvStability&mf.SemconvStability.STABLE&&(f[Ite.ATTR_DB_SYSTEM_NAME]=Ite.DB_SYSTEM_NAME_VALUE_MYSQL,f[Ite.ATTR_DB_QUERY_TEXT]=p);let h=i.tracer.startSpan((0,sw.getSpanName)(s),{kind:jGe.SpanKind.CLIENT,attributes:f});!n&&i.getConfig().addSqlCommenterCommentToQueries&&(arguments[0]=s=typeof s=="string"?(0,HGe.addSqlCommenterComment)(h,s):Object.assign(s,{sql:(0,HGe.addSqlCommenterComment)(h,s.sql)}));let m=(0,sw.once)((g,y)=>{g?h.setStatus({code:jGe.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)}}};_z.MySQL2Instrumentation=Ote});var zGe=w(Tz=>{"use strict";Object.defineProperty(Tz,"__esModule",{value:!0});Tz.MySQL2Instrumentation=void 0;var W$t=BGe();Object.defineProperty(Tz,"MySQL2Instrumentation",{enumerable:!0,get:function(){return W$t.MySQL2Instrumentation}})});var GGe,VGe,WGe,K$t,KGe,YGe=v(()=>{GGe=Re(zGe(),1);sr();VGe="Mysql2",WGe=rt(VGe,()=>new GGe.MySQL2Instrumentation({responseHook(e){Dr(e,"auto.db.otel.mysql2")}})),K$t=(()=>({name:VGe,setupOnce(){WGe()}})),KGe=K$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 JGe=w(vz=>{"use strict";Object.defineProperty(vz,"__esModule",{value:!0});vz.endSpan=void 0;var Y$t=(Me(),ke(Ze)),Z$t=(e,t)=>{t&&(e.recordException(t),e.setStatus({code:Y$t.SpanStatusCode.ERROR,message:t.message})),e.end()};vz.endSpan=Z$t});var Az=w(Rz=>{"use strict";Object.defineProperty(Rz,"__esModule",{value:!0});Rz.defaultDbStatementSerializer=void 0;var J$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}],X$t=(e,t)=>{if(Array.isArray(t)&&t.length){let n=J$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};Rz.defaultDbStatementSerializer=X$t});var XGe=w(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.PACKAGE_NAME=ow.PACKAGE_VERSION=void 0;ow.PACKAGE_VERSION="0.62.0";ow.PACKAGE_NAME="@opentelemetry/instrumentation-ioredis"});var t2e=w(wz=>{"use strict";Object.defineProperty(wz,"__esModule",{value:!0});wz.IORedisInstrumentation=void 0;var sS=(Me(),ke(Ze)),Su=Jt(),oS=(Nn(),ke(Mr)),bu=ZGe(),QGe=Jt(),yN=JGe(),Q$t=Az(),$Ge=XGe(),e2e={requireParentSpan:!0},Pte=class extends Su.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super($Ge.PACKAGE_NAME,$Ge.PACKAGE_VERSION,{...e2e,...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({...e2e,...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||Q$t.defaultDbStatementSerializer,a=sS.trace.getSpan(sS.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[oS.ATTR_DB_SYSTEM_NAME]=bu.DB_SYSTEM_NAME_VALUE_REDIS,c[oS.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[oS.ATTR_SERVER_ADDRESS]=u,c[oS.ATTR_SERVER_PORT]=l);let f=r.tracer.startSpan(i.name,{kind:sS.SpanKind.CLIENT,attributes:c}),{requestHook:p}=s;p&&(0,QGe.safeExecuteInTheMiddle)(()=>p(f,{moduleVersion:n,cmdName:i.name,cmdArgs:i.args}),h=>{h&&sS.diag.error("ioredis instrumentation: request hook failed",h)},!0);try{let h=t.apply(this,arguments),m=i.resolve;i.resolve=function(y){(0,QGe.safeExecuteInTheMiddle)(()=>s.responseHook?.(f,i.name,i.args,y),b=>{b&&sS.diag.error("ioredis instrumentation: response hook failed",b)},!0),(0,yN.endSpan)(f,null),m(y)};let g=i.reject;return i.reject=function(y){(0,yN.endSpan)(f,y),g(y)},h}catch(h){throw(0,yN.endSpan)(f,h),h}}}_traceConnection(t){let n=this;return function(){let r=sS.trace.getSpan(sS.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[oS.ATTR_DB_SYSTEM_NAME]=bu.DB_SYSTEM_NAME_VALUE_REDIS,i[oS.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[oS.ATTR_SERVER_ADDRESS]=s,i[oS.ATTR_SERVER_PORT]=o);let a=n.tracer.startSpan("connect",{kind:sS.SpanKind.CLIENT,attributes:i});try{let c=t.apply(this,arguments);return(0,yN.endSpan)(a,null),c}catch(c){throw(0,yN.endSpan)(a,c),c}}}};wz.IORedisInstrumentation=Pte});var n2e=w(kz=>{"use strict";Object.defineProperty(kz,"__esModule",{value:!0});kz.IORedisInstrumentation=void 0;var $$t=t2e();Object.defineProperty(kz,"IORedisInstrumentation",{enumerable:!0,get:function(){return $$t.IORedisInstrumentation}})});var Iz=w(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});aw.PACKAGE_NAME=aw.PACKAGE_VERSION=void 0;aw.PACKAGE_VERSION="0.62.0";aw.PACKAGE_NAME="@opentelemetry/instrumentation-redis"});var r2e=w(aS=>{"use strict";Object.defineProperty(aS,"__esModule",{value:!0});aS.getTracedCreateStreamTrace=aS.getTracedCreateClient=aS.endSpan=void 0;var SN=(Me(),ke(Ze)),een=(e,t)=>{t&&e.setStatus({code:SN.SpanStatusCode.ERROR,message:t.message}),e.end()};aS.endSpan=een;var ten=e=>function(){let n=e.apply(this,arguments);return SN.context.bind(SN.context.active(),n)};aS.getTracedCreateClient=ten;var nen=e=>function(){return Object.prototype.hasOwnProperty.call(this,"stream")||Object.defineProperty(this,"stream",{get(){return this._patched_redis_stream},set(n){SN.context.bind(SN.context.active(),n),this._patched_redis_stream=n}}),e.apply(this,arguments)};aS.getTracedCreateStreamTrace=nen});var xz=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 s2e=w(Pz=>{"use strict";Object.defineProperty(Pz,"__esModule",{value:!0});Pz.RedisInstrumentationV2_V3=void 0;var ml=Jt(),Oz=r2e(),i2e=Iz(),bN=(Me(),ke(Ze)),EN=(Nn(),ke(Mr)),a_=xz(),ren=Az(),Nte=class e extends ml.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(i2e.PACKAGE_NAME,i2e.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=bN.trace.getSpan(bN.context.active())===void 0;if(o.requireParentSpan===!0&&a)return r.apply(this,arguments);let c=o?.dbStatementSerializer||ren.defaultDbStatementSerializer,u={};t._semconvStability&ml.SemconvStability.OLD&&Object.assign(u,{[a_.ATTR_DB_SYSTEM]:a_.DB_SYSTEM_VALUE_REDIS,[a_.ATTR_DB_STATEMENT]:c(s.command,s.args)}),t._semconvStability&ml.SemconvStability.STABLE&&Object.assign(u,{[EN.ATTR_DB_SYSTEM_NAME]:a_.DB_SYSTEM_NAME_VALUE_REDIS,[EN.ATTR_DB_OPERATION_NAME]:s.command,[EN.ATTR_DB_QUERY_TEXT]:c(s.command,s.args)});let l=t.tracer.startSpan(`${e.COMPONENT}-${s.command}`,{kind:bN.SpanKind.CLIENT,attributes:u});if(this.connection_options){let f={};t._semconvStability&ml.SemconvStability.OLD&&Object.assign(f,{[a_.ATTR_NET_PEER_NAME]:this.connection_options.host,[a_.ATTR_NET_PEER_PORT]:this.connection_options.port}),t._semconvStability&ml.SemconvStability.STABLE&&Object.assign(f,{[EN.ATTR_SERVER_ADDRESS]:this.connection_options.host,[EN.ATTR_SERVER_PORT]:this.connection_options.port}),l.setAttributes(f)}this.address&&t._semconvStability&ml.SemconvStability.OLD&&l.setAttribute(a_.ATTR_DB_CONNECTION_STRING,`redis://${this.address}`);let d=arguments[0].callback;if(d){let f=bN.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,Oz.endSpan)(l,h),bN.context.with(f,d,this,...arguments)}}try{return r.apply(this,arguments)}catch(f){throw(0,Oz.endSpan)(l,f),f}}}}_getPatchCreateClient(){return function(n){return(0,Oz.getTracedCreateClient)(n)}}_getPatchCreateStream(){return function(n){return(0,Oz.getTracedCreateStreamTrace)(n)}}};Pz.RedisInstrumentationV2_V3=Nte});var a2e=w(Nz=>{"use strict";Object.defineProperty(Nz,"__esModule",{value:!0});Nz.getClientAttributes=void 0;var Cte=(Nn(),ke(Mr)),cw=xz(),o2e=Jt();function ien(e,t,n){let r={};return n&o2e.SemconvStability.OLD&&Object.assign(r,{[cw.ATTR_DB_SYSTEM]:cw.DB_SYSTEM_VALUE_REDIS,[cw.ATTR_NET_PEER_NAME]:t?.socket?.host,[cw.ATTR_NET_PEER_PORT]:t?.socket?.port,[cw.ATTR_DB_CONNECTION_STRING]:sen(e,t?.url)}),n&o2e.SemconvStability.STABLE&&Object.assign(r,{[Cte.ATTR_DB_SYSTEM_NAME]:cw.DB_SYSTEM_NAME_VALUE_REDIS,[Cte.ATTR_SERVER_ADDRESS]:t?.socket?.host,[Cte.ATTR_SERVER_PORT]:t?.socket?.port}),r}Nz.getClientAttributes=ien;function sen(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 d2e=w(Cz=>{"use strict";Object.defineProperty(Cz,"__esModule",{value:!0});Cz.RedisInstrumentationV4_V5=void 0;var sd=(Me(),ke(Ze)),pi=Jt(),c2e=a2e(),oen=Az(),u2e=Iz(),Mte=(Nn(),ke(Mr)),aen=xz(),_N=Symbol("opentelemetry.instrumentation.redis.open_spans"),l2e=Symbol("opentelemetry.instrumentation.redis.multi_command_options"),Dte=class e extends pi.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(u2e.PACKAGE_NAME,u2e.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[_N];return n._endSpansWithRedisReplies(c,a,t),a}).catch(a=>{let c=this[_N];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[l2e]=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,c2e.getClientAttributes)(t._diag,s,t._semconvStability),a=t.tracer.startSpan(`${e.COMPONENT}-connect`,{kind:sd.SpanKind.CLIENT,attributes:o});return sd.context.with(sd.trace.setSpan(sd.context.active(),a),()=>r.apply(this)).then(u=>(a.end(),u)).catch(u=>(a.recordException(u),a.setStatus({code:sd.SpanStatusCode.ERROR,message:u.message}),a.end(),Promise.reject(u)))}}}_traceClientCommand(t,n,r,i){if(sd.trace.getSpan(sd.context.active())===void 0&&this.getConfig().requireParentSpan)return t.apply(n,r);let o=n.options||n[l2e],a=i[0],c=i.slice(1),u=this.getConfig().dbStatementSerializer||oen.defaultDbStatementSerializer,l=(0,c2e.getClientAttributes)(this._diag,o,this._semconvStability);this._semconvStability&pi.SemconvStability.STABLE&&(l[Mte.ATTR_DB_OPERATION_NAME]=a);try{let p=u(a,c);p!=null&&(this._semconvStability&pi.SemconvStability.OLD&&(l[aen.ATTR_DB_STATEMENT]=p),this._semconvStability&pi.SemconvStability.STABLE&&(l[Mte.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:sd.SpanKind.CLIENT,attributes:l}),f=sd.context.with(sd.trace.setSpan(sd.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[_N]=p[_N]||[],p[_N].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(Mz,"__esModule",{value:!0});Mz.RedisInstrumentation=void 0;var cen=Jt(),f2e=Iz(),uen=s2e(),len=d2e(),p2e={requireParentSpan:!1},Lte=class extends cen.InstrumentationBase{instrumentationV2_V3;instrumentationV4_V5;initialized=!1;constructor(t={}){let n={...p2e,...t};super(f2e.PACKAGE_NAME,f2e.PACKAGE_VERSION,n),this.instrumentationV2_V3=new uen.RedisInstrumentationV2_V3(this.getConfig()),this.instrumentationV4_V5=new len.RedisInstrumentationV4_V5(this.getConfig()),this.initialized=!0}setConfig(t={}){let n={...p2e,...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())}};Mz.RedisInstrumentation=Lte});var m2e=w(Dz=>{"use strict";Object.defineProperty(Dz,"__esModule",{value:!0});Dz.RedisInstrumentation=void 0;var den=h2e();Object.defineProperty(Dz,"RedisInstrumentation",{enumerable:!0,get:function(){return den.RedisInstrumentation}})});function TN(e,t){return e.includes(t.toLowerCase())}function Fte(e){return TN(Ute,e)?"cache.get":TN(pen,e)?"cache.put":void 0}function hen(e,t){return t.some(n=>e.startsWith(n))}function y2e(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)?g2e(i.map(s=>n(s))):[""],r=t[0];return TN(fen,e)&&r!=null?n(r):g2e(t.map(i=>n(i)))}catch{return}}function S2e(e,t,n){if(!Fte(e))return!1;for(let r of t)if(hen(r,n))return!0;return!1}function b2e(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 g2e(e){let t=[],n=r=>{r.forEach(i=>{Array.isArray(i)?n(i):t.push(i)})};return n(e),t}var fen,Ute,pen,E2e=v(()=>{fen=["get","set","setex"],Ute=["get","mget"],pen=["set","setex"]});var _2e,T2e,Lz,vN,v2e,men,gen,R2e,yen,A2e,w2e=v(()=>{_2e=Re(n2e(),1),T2e=Re(m2e(),1);st();sr();E2e();Lz="Redis",vN={},v2e=(e,t,n,r)=>{e.setAttribute(At,"auto.db.otel.redis");let i=y2e(t,n),s=Fte(t);if(!i||!s||!vN.cachePrefixes||!S2e(t,i,vN.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=b2e(r);c&&e.setAttribute(aX,c),TN(Ute,t)&&c!==void 0&&e.setAttribute(sX,c>0),e.setAttributes({[zt]:s,[oX]:i});let u=i.join(", ");e.updateName(vN.maxCacheKeyLength?_y(u,vN.maxCacheKeyLength):u)},men=rt(`${Lz}.IORedis`,()=>new _2e.IORedisInstrumentation({responseHook:v2e})),gen=rt(`${Lz}.Redis`,()=>new T2e.RedisInstrumentation({responseHook:v2e})),R2e=Object.assign(()=>{men(),gen()},{id:Lz}),yen=((e={})=>({name:Lz,setupOnce(){vN=e,R2e()}})),A2e=yen});var k2e=w(Uz=>{"use strict";Object.defineProperty(Uz,"__esModule",{value:!0});Uz.EVENT_LISTENERS_SET=void 0;Uz.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.pg.eventListenersSet")});var jte=w(RN=>{"use strict";Object.defineProperty(RN,"__esModule",{value:!0});RN.AttributeNames=void 0;var Sen;(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"})(Sen=RN.AttributeNames||(RN.AttributeNames={}))});var Hte=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 qte=w(AN=>{"use strict";Object.defineProperty(AN,"__esModule",{value:!0});AN.SpanNames=void 0;var ben;(function(e){e.QUERY_PREFIX="pg.query",e.CONNECT="pg.connect",e.POOL_CONNECT="pg-pool.connect"})(ben=AN.SpanNames||(AN.SpanNames={}))});var M2e=w(qn=>{"use strict";Object.defineProperty(qn,"__esModule",{value:!0});qn.sanitizedErrorMessage=qn.isObjectWithTextString=qn.getErrorMessage=qn.patchClientConnectCallback=qn.patchCallbackPGPool=qn.updateCounter=qn.getPoolName=qn.patchCallback=qn.handleExecutionResult=qn.handleConfigQuery=qn.shouldSkipInstrumentation=qn.getSemanticAttributesFromPoolConnection=qn.getSemanticAttributesFromConnection=qn.getConnectionString=qn.parseAndMaskConnectionString=qn.parseNormalizedOperationName=qn.getQuerySpanName=void 0;var cS=(Me(),ke(Ze)),Fz=jte(),od=(Nn(),ke(Mr)),ds=Hte(),c_=Jt(),I2e=qte();function x2e(e,t){if(!t)return I2e.SpanNames.QUERY_PREFIX;let n=typeof t.name=="string"&&t.name?t.name:O2e(t.text);return`${I2e.SpanNames.QUERY_PREFIX}:${n}${e?` ${e}`:""}`}qn.getQuerySpanName=x2e;function O2e(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}qn.parseNormalizedOperationName=O2e;function P2e(e){try{let t=new URL(e);return t.username="",t.password="",t.toString()}catch{return"postgresql://localhost:5432/"}}qn.parseAndMaskConnectionString=P2e;function Bte(e){if("connectionString"in e&&e.connectionString)return P2e(e.connectionString);let t=e.host||"localhost",n=e.port||5432,r=e.database||"";return`postgresql://${t}:${n}/${r}`}qn.getConnectionString=Bte;function jz(e){if(Number.isInteger(e))return e}function N2e(e,t){let n={};return t&c_.SemconvStability.OLD&&(n={...n,[ds.ATTR_DB_SYSTEM]:ds.DB_SYSTEM_VALUE_POSTGRESQL,[ds.ATTR_DB_NAME]:e.database,[ds.ATTR_DB_CONNECTION_STRING]:Bte(e),[ds.ATTR_DB_USER]:e.user,[ds.ATTR_NET_PEER_NAME]:e.host,[ds.ATTR_NET_PEER_PORT]:jz(e.port)}),t&c_.SemconvStability.STABLE&&(n={...n,[od.ATTR_DB_SYSTEM_NAME]:od.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[od.ATTR_DB_NAMESPACE]:e.namespace,[od.ATTR_SERVER_ADDRESS]:e.host,[od.ATTR_SERVER_PORT]:jz(e.port)}),n}qn.getSemanticAttributesFromConnection=N2e;function Een(e,t){let n;try{n=e.connectionString?new URL(e.connectionString):void 0}catch{n=void 0}let r={[Fz.AttributeNames.IDLE_TIMEOUT_MILLIS]:e.idleTimeoutMillis,[Fz.AttributeNames.MAX_CLIENT]:e.maxClient};return t&c_.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]:Bte(e),[ds.ATTR_NET_PEER_NAME]:n?.hostname??e.host,[ds.ATTR_NET_PEER_PORT]:Number(n?.port)||jz(e.port),[ds.ATTR_DB_USER]:n?.username??e.user}),t&c_.SemconvStability.STABLE&&(r={...r,[od.ATTR_DB_SYSTEM_NAME]:od.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[od.ATTR_DB_NAMESPACE]:e.namespace,[od.ATTR_SERVER_ADDRESS]:n?.hostname??e.host,[od.ATTR_SERVER_PORT]:Number(n?.port)||jz(e.port)}),r}qn.getSemanticAttributesFromPoolConnection=Een;function _en(e){return e.requireParentSpan===!0&&cS.trace.getSpan(cS.context.active())===void 0}qn.shouldSkipInstrumentation=_en;function Ten(e,t,n,r){let{connectionParameters:i}=this,s=i.database,o=x2e(s,r),a=e.startSpan(o,{kind:cS.SpanKind.CLIENT,attributes:N2e(i,n)});if(!r)return a;if(r.text&&(n&c_.SemconvStability.OLD&&a.setAttribute(ds.ATTR_DB_STATEMENT,r.text),n&c_.SemconvStability.STABLE&&a.setAttribute(od.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(Fz.AttributeNames.PG_VALUES,c)}catch(c){cS.diag.error("failed to stringify ",r.values,c)}return typeof r.name=="string"&&a.setAttribute(Fz.AttributeNames.PG_PLAN,r.name),a}qn.handleConfigQuery=Ten;function C2e(e,t,n){typeof e.responseHook=="function"&&(0,c_.safeExecuteInTheMiddle)(()=>{e.responseHook(t,{data:n})},r=>{r&&cS.diag.error("Error running response hook",r)},!0)}qn.handleExecutionResult=C2e;function ven(e,t,n,r,i){return function(o,a){o?(Object.prototype.hasOwnProperty.call(o,"code")&&(r[od.ATTR_ERROR_TYPE]=o.code),o instanceof Error&&t.recordException(Hz(o)),t.setStatus({code:cS.SpanStatusCode.ERROR,message:o.message})):C2e(e,t,a),i(),t.end(),n.call(this,o,a)}}qn.patchCallback=ven;function Ren(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()}qn.getPoolName=Ren;function Aen(e,t,n,r,i){let s=t.totalCount,o=t.waitingCount,a=t.idleCount,c=s-a;return n.add(c-i.used,{[ds.ATTR_DB_CLIENT_CONNECTION_STATE]:ds.DB_CLIENT_CONNECTION_STATE_VALUE_USED,[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),n.add(a-i.idle,{[ds.ATTR_DB_CLIENT_CONNECTION_STATE]:ds.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE,[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),r.add(o-i.pending,{[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),{used:c,idle:a,pending:o}}qn.updateCounter=Aen;function wen(e,t){return function(r,i,s){r&&(r instanceof Error&&e.recordException(Hz(r)),e.setStatus({code:cS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.call(this,r,i,s)}}qn.patchCallbackPGPool=wen;function ken(e,t){return function(r){r&&(r instanceof Error&&e.recordException(Hz(r)),e.setStatus({code:cS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.apply(this,arguments)}}qn.patchClientConnectCallback=ken;function Ien(e){return typeof e=="object"&&e!==null&&"message"in e?String(e.message):void 0}qn.getErrorMessage=Ien;function xen(e){return typeof e=="object"&&typeof e?.text=="string"}qn.isObjectWithTextString=xen;function Hz(e){let t=e?.name??"PostgreSQLError",n=e?.code??"UNKNOWN";return`PostgreSQL error of type '${t}' occurred (code: ${n})`}qn.sanitizedErrorMessage=Hz});var D2e=w(uw=>{"use strict";Object.defineProperty(uw,"__esModule",{value:!0});uw.PACKAGE_NAME=uw.PACKAGE_VERSION=void 0;uw.PACKAGE_VERSION="0.66.0";uw.PACKAGE_NAME="@opentelemetry/instrumentation-pg"});var q2e=w(Bz=>{"use strict";Object.defineProperty(Bz,"__esModule",{value:!0});Bz.PgInstrumentation=void 0;var Uc=Jt(),Ur=(Me(),ke(Ze)),L2e=k2e(),Zi=M2e(),U2e=Ate(),F2e=D2e(),j2e=qte(),qz=pr(),gf=(Nn(),ke(Mr)),wN=Hte();function lw(e){return e[Symbol.toStringTag]==="Module"?e.default:e}var zte=class extends Uc.InstrumentationBase{_connectionsCounter={used:0,idle:0,pending:0};_semconvStability;constructor(t={}){super(F2e.PACKAGE_NAME,F2e.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(wN.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(wN.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=lw(a);return this._patchPgClient(c.Client),a},a=>{let c=lw(a);return this._unpatchPgClient(c.Client),a},[i,r]),o=new Uc.InstrumentationNodeModuleDefinition("pg-pool",n,a=>{let c=lw(a);return(0,Uc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect"),this._wrap(c.prototype,"connect",this._getPoolConnectPatch()),c},a=>{let c=lw(a);(0,Uc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect")});return[s,o]}_patchPgClient(t){if(!t)return;let n=lw(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=lw(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(Zi.shouldSkipInstrumentation(s)||s.ignoreConnectSpans)return n.call(this,i);let o=t.tracer.startSpan(j2e.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 H2e(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(wN.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,qz.hrTimeToMilliseconds)((0,qz.hrTimeDuration)(n,(0,qz.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,qz.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={[wN.ATTR_DB_SYSTEM]:wN.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]=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,U2e.addSqlCommenterComment)(p,o):c&&!("name"in o)&&(i[0]={...o,text:(0,U2e.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]=Zi.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=Zi.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(Zi.sanitizedErrorMessage(g)),p.setStatus({code:Ur.SpanStatusCode.ERROR,message:Zi.getErrorMessage(g)}),p.end(),g}return m instanceof Promise?m.then(g=>new Promise(y=>{Zi.handleExecutionResult(t.getConfig(),p,g),d(),p.end(),y(g)})).catch(g=>new Promise((y,b)=>{g instanceof Error&&p.recordException(Zi.sanitizedErrorMessage(g)),p.setStatus({code:Ur.SpanStatusCode.ERROR,message:g.message}),d(),p.end(),b(g)})):m})}_setPoolConnectEventListeners(t){if(t[L2e.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[L2e.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(j2e.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 H2e(o,a)}}};Bz.PgInstrumentation=zte;function H2e(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 B2e=w(dw=>{"use strict";Object.defineProperty(dw,"__esModule",{value:!0});dw.AttributeNames=dw.PgInstrumentation=void 0;var Oen=q2e();Object.defineProperty(dw,"PgInstrumentation",{enumerable:!0,get:function(){return Oen.PgInstrumentation}});var Pen=jte();Object.defineProperty(dw,"AttributeNames",{enumerable:!0,get:function(){return Pen.AttributeNames}})});var z2e,G2e,V2e,Nen,W2e,K2e=v(()=>{z2e=Re(B2e(),1);sr();G2e="Postgres",V2e=rt(G2e,z2e.PgInstrumentation,e=>({requireParentSpan:!0,requestHook(t){Dr(t,"auto.db.otel.postgres")},ignoreConnectSpans:e?.ignoreConnectSpans??!1})),Nen=(e=>({name:G2e,setupOnce(){V2e(e)}})),W2e=Nen});var uS,Vte,Y2e,Cen,Men,Z2e,Gte,Den,J2e,X2e=v(()=>{Me();uS=Re(Jt(),1);Nn();st();sr();QE();Vte="PostgresJs",Y2e=[">=3.0.0 <4"],Cen=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,Men=Symbol.for("sentry.query.from.instrumented.sql"),Z2e=rt(Vte,e=>new Gte({requireParentSpan:e?.requireParentSpan??!0,requestHook:e?.requestHook})),Gte=class extends uS.InstrumentationBase{constructor(t){super("sentry-postgres-js",Cn,t)}init(){let t=new uS.InstrumentationNodeModuleDefinition("postgres",Y2e,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 uS.InstrumentationNodeModuleFile(`postgres/${n}/query.js`,Y2e,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 rQ(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:(_P(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(yR,r);return}let i=n?.match(Cen);i?.[1]&&t.setAttribute(yR,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({[SE]:"postgres",[T7]:o});let c=n.getConfig(),{requestHook:u}=c;u&&(0,uS.safeExecuteInTheMiddle)(()=>u(a,o,void 0),f=>{f&&(a.setAttribute("sentry.hook.error","requestHook failed"),So&&Z.error(`Error in requestHook for ${Vte} 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(v7,h?.[0]?.code||"unknown"),a.setAttribute(R7,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}},Den=(e=>({name:Vte,setupOnce(){Z2e(e)}})),J2e=Den});var Q2e=w(kN=>{"use strict";Object.defineProperty(kN,"__esModule",{value:!0});kN.SeverityNumber=void 0;var Len;(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"})(Len=kN.SeverityNumber||(kN.SeverityNumber={}))});var Gz=w(fw=>{"use strict";Object.defineProperty(fw,"__esModule",{value:!0});fw.NOOP_LOGGER=fw.NoopLogger=void 0;var zz=class{emit(t){}};fw.NoopLogger=zz;fw.NOOP_LOGGER=new zz});var Wz=w(pw=>{"use strict";Object.defineProperty(pw,"__esModule",{value:!0});pw.NOOP_LOGGER_PROVIDER=pw.NoopLoggerProvider=void 0;var Uen=Gz(),Vz=class{getLogger(t,n,r){return new Uen.NoopLogger}};pw.NoopLoggerProvider=Vz;pw.NOOP_LOGGER_PROVIDER=new Vz});var Kte=w(Kz=>{"use strict";Object.defineProperty(Kz,"__esModule",{value:!0});Kz.ProxyLogger=void 0;var Fen=Gz(),Wte=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):Fen.NOOP_LOGGER}};Kz.ProxyLogger=Wte});var Zte=w(Yz=>{"use strict";Object.defineProperty(Yz,"__esModule",{value:!0});Yz.ProxyLoggerProvider=void 0;var jen=Wz(),Hen=Kte(),Yte=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new Hen.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:jen.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)}};Yz.ProxyLoggerProvider=Yte});var $2e=w(Zz=>{"use strict";Object.defineProperty(Zz,"__esModule",{value:!0});Zz._globalThis=void 0;Zz._globalThis=typeof globalThis=="object"?globalThis:global});var eVe=w(Jz=>{"use strict";Object.defineProperty(Jz,"__esModule",{value:!0});Jz._globalThis=void 0;var qen=$2e();Object.defineProperty(Jz,"_globalThis",{enumerable:!0,get:function(){return qen._globalThis}})});var tVe=w(Xz=>{"use strict";Object.defineProperty(Xz,"__esModule",{value:!0});Xz._globalThis=void 0;var Ben=eVe();Object.defineProperty(Xz,"_globalThis",{enumerable:!0,get:function(){return Ben._globalThis}})});var nVe=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 zen=tVe();$p.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");$p._global=zen._globalThis;function Gen(e,t,n){return r=>r===e?t:n}$p.makeGetter=Gen;$p.API_BACKWARDS_COMPATIBILITY_VERSION=1});var iVe=w(Qz=>{"use strict";Object.defineProperty(Qz,"__esModule",{value:!0});Qz.LogsAPI=void 0;var ad=nVe(),Ven=Wz(),rVe=Zte(),Jte=class e{constructor(){this._proxyLoggerProvider=new rVe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return ad._global[ad.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(ad._global[ad.GLOBAL_LOGS_API_KEY]=(0,ad.makeGetter)(ad.API_BACKWARDS_COMPATIBILITY_VERSION,t,Ven.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=ad._global[ad.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(ad._global,ad.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete ad._global[ad.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new rVe.ProxyLoggerProvider}};Qz.LogsAPI=Jte});var Xte=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 Wen=Q2e();Object.defineProperty(Bo,"SeverityNumber",{enumerable:!0,get:function(){return Wen.SeverityNumber}});var sVe=Gz();Object.defineProperty(Bo,"NOOP_LOGGER",{enumerable:!0,get:function(){return sVe.NOOP_LOGGER}});Object.defineProperty(Bo,"NoopLogger",{enumerable:!0,get:function(){return sVe.NoopLogger}});var oVe=Wz();Object.defineProperty(Bo,"NOOP_LOGGER_PROVIDER",{enumerable:!0,get:function(){return oVe.NOOP_LOGGER_PROVIDER}});Object.defineProperty(Bo,"NoopLoggerProvider",{enumerable:!0,get:function(){return oVe.NoopLoggerProvider}});var Ken=Kte();Object.defineProperty(Bo,"ProxyLogger",{enumerable:!0,get:function(){return Ken.ProxyLogger}});var Yen=Zte();Object.defineProperty(Bo,"ProxyLoggerProvider",{enumerable:!0,get:function(){return Yen.ProxyLoggerProvider}});var Zen=iVe();Bo.logs=Zen.LogsAPI.getInstance()});var aVe=w(hw=>{"use strict";Object.defineProperty(hw,"__esModule",{value:!0});hw.disableInstrumentations=hw.enableInstrumentations=void 0;function Jen(e,t,n,r){for(let i=0,s=e.length;it.disable())}hw.disableInstrumentations=Xen});var lVe=w($z=>{"use strict";Object.defineProperty($z,"__esModule",{value:!0});$z.registerInstrumentations=void 0;var cVe=(Me(),ke(Ze)),Qen=Xte(),uVe=aVe();function $en(e){let t=e.tracerProvider||cVe.trace.getTracerProvider(),n=e.meterProvider||cVe.metrics.getMeterProvider(),r=e.loggerProvider||Qen.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,uVe.enableInstrumentations)(i,t,n,r),()=>{(0,uVe.disableInstrumentations)(i)}}$z.registerInstrumentations=$en});var bVe=w(eG=>{"use strict";Object.defineProperty(eG,"__esModule",{value:!0});eG.satisfies=void 0;var tne=(Me(),ke(Ze)),mVe=/^(?: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-]+)*))?$/,etn=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,ttn={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function ntn(e,t,n){if(!rtn(e))return tne.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=atn(e);if(!r)return!1;let i=[],s=gVe(r,t,i,n);return s&&!n?.includePrerelease?stn(r,i):s}eG.satisfies=ntn;function rtn(e){return typeof e=="string"&&mVe.test(e)}function gVe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Qte(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(!Qte(e,s,n,r))return!1;return!0}return Qte(e,t,n,r)}function Qte(e,t,n,r){if(t=otn(t,r),t.includes(" "))return gVe(e,t,n,r);{let i=ctn(t);return n.push(i),itn(e,i)}}function itn(e,t){if(t.invalid)return!1;if(!t.version||ene(t.version))return!0;let n=fVe(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=fVe(r,i)}return ttn[t.op]?.includes(n)}function stn(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function otn(e,t){return e=e.trim(),e=wtn(e,t),e=Atn(e),e=ktn(e,t),e=e.trim(),e}function Fc(e){return!e||e.toLowerCase()==="x"||e==="*"}function atn(e){let t=e.match(mVe);if(!t){tne.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 ctn(e){if(!e)return{};let t=e.match(etn);if(!t)return tne.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 ene(e){return e==="*"||e==="x"||e==="X"}function dVe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function utn(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 ltn(e,t){if(ene(e)||ene(t))return 0;let[n,r]=utn(dVe(e),dVe(t));return n>r?1:n)?=?)",pVe=`(?:${SVe}|${dtn})`,ptn=`(?:-(${pVe}(?:\\.${pVe})*))`,hVe=`${yVe}+`,htn=`(?:\\+(${hVe}(?:\\.${hVe})*))`,$te=`${SVe}|x|X|\\*`,IN=`[v=\\s]*(${$te})(?:\\.(${$te})(?:\\.(${$te})(?:${ptn})?${htn}?)?)?`,mtn=`^${ftn}\\s*${IN}$`,gtn=new RegExp(mtn),ytn=`^\\s*(${IN})\\s+-\\s+(${IN})\\s*$`,Stn=new RegExp(ytn),btn="(?:~>?)",Etn=`^${btn}${IN}$`,_tn=new RegExp(Etn),Ttn="(?:\\^)",vtn=`^${Ttn}${IN}$`,Rtn=new RegExp(vtn);function Atn(e){let t=_tn;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 wtn(e,t){let n=Rtn,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 ktn(e,t){let n=gtn;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 Itn(e,t){let n=Stn;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 nne=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 xN(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var xtn=(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 xN(i,"__original",r),xN(i,"__unwrap",()=>{e[t]===i&&xN(e,t,r)}),xN(i,"__wrapped",!0),xN(e,t,i),i};pa.wrap=xtn;var Otn=(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=Otn;var Ptn=(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=Ptn;var Ntn=(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=Ntn;function ON(e){e&&e.logger&&(typeof e.logger!="function"?jc("new logger isn't a function, not replacing"):jc=e.logger)}pa.default=ON;ON.wrap=pa.wrap;ON.massWrap=pa.massWrap;ON.unwrap=pa.unwrap;ON.massUnwrap=pa.massUnwrap});var EVe=w(nG=>{"use strict";Object.defineProperty(nG,"__esModule",{value:!0});nG.InstrumentationAbstract=void 0;var rne=(Me(),ke(Ze)),Ctn=Xte(),tG=nne(),ine=class{instrumentationName;instrumentationVersion;_config={};_tracer;_meter;_logger;_diag;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=rne.diag.createComponentLogger({namespace:t}),this._tracer=rne.trace.getTracer(t,n),this._meter=rne.metrics.getMeter(t,n),this._logger=Ctn.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=tG.wrap;_unwrap=tG.unwrap;_massWrap=tG.massWrap;_massUnwrap=tG.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)}}};nG.InstrumentationAbstract=ine});var _Ve=w(lS=>{"use strict";Object.defineProperty(lS,"__esModule",{value:!0});lS.ModuleNameTrie=lS.ModuleNameSeparator=void 0;lS.ModuleNameSeparator="/";var rG=class{hooks=[];children=new Map},sne=class{_trie=new rG;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(lS.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new rG,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(lS.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))}};lS.ModuleNameTrie=sne});var vVe=w(iG=>{"use strict";Object.defineProperty(iG,"__esModule",{value:!0});iG.RequireInTheMiddleSingleton=void 0;var Mtn=RE(),TVe=Y("path"),one=_Ve(),Dtn=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),ane=class e{_moduleNameTrie=new one.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new Mtn.Hook(null,{internals:!0},(t,n,r)=>{let i=Ltn(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}};iG.RequireInTheMiddleSingleton=ane;function Ltn(e){return TVe.sep!==one.ModuleNameSeparator?e.split(TVe.sep).join(one.ModuleNameSeparator):e}});var IVe=w(PN=>{var RVe=[],cne=new WeakMap,AVe=new WeakMap,wVe=new Map,kVe=[],Utn={set(e,t,n){let r=cne.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=AVe.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=cne.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function Ftn(e,t,n,r,i){wVe.set(e,i),cne.set(t,n),AVe.set(t,r);let s=new Proxy(t,Utn);RVe.forEach(o=>o(e,s,i)),kVe.push([e,s,i])}PN.register=Ftn;PN.importHooks=RVe;PN.specifiers=wVe;PN.toHook=kVe});var NVe=w((h1r,gw)=>{var xVe=Y("path"),jtn=xO(),{fileURLToPath:Htn}=Y("url"),{MessageChannel:qtn}=Y("worker_threads"),{isBuiltin:une}=Y("module");une||(une=()=>!0);var{importHooks:lne,specifiers:Btn,toHook:ztn}=IVe();function OVe(e){lne.push(e),ztn.forEach(([t,n,r])=>e(t,n,r))}function PVe(e){let t=lne.indexOf(e);t>-1&&lne.splice(t,1)}function mw(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var dne;function Gtn(){let{port1:e,port2:t}=new qtn,n=0,r;dne=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 NN(e,t,n){if(!(this instanceof NN))return new NN(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;dne&&Array.isArray(e)&&dne(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);une(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=Htn(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=jtn(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)mw(n,s,u,void 0);else if(d===i){if(!l)mw(n,s,i,l);else if(l.endsWith(Btn.get(a)))mw(n,s,i,l);else if(r){let f=i+xVe.sep+xVe.relative(l,u);mw(n,s,f,l)}}else d===o&&mw(n,s,o,l);else mw(n,s,i,l)},OVe(this._iitmHook)}NN.prototype.unhook=function(){PVe(this._iitmHook)};gw.exports=NN;gw.exports.Hook=NN;gw.exports.addHook=OVe;gw.exports.removeHook=PVe;gw.exports.createAddHookMessageChannel=Gtn});var fne=w(dS=>{"use strict";Object.defineProperty(dS,"__esModule",{value:!0});dS.isWrapped=dS.safeExecuteInTheMiddleAsync=dS.safeExecuteInTheMiddle=void 0;function Vtn(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}dS.safeExecuteInTheMiddle=Vtn;async function Wtn(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}}dS.safeExecuteInTheMiddleAsync=Wtn;function Ktn(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}dS.isWrapped=Ktn});var DVe=w(sG=>{"use strict";Object.defineProperty(sG,"__esModule",{value:!0});sG.InstrumentationBase=void 0;var CN=Y("path"),CVe=Y("util"),Ytn=bVe(),pne=nne(),Ztn=EVe(),Jtn=vVe(),Xtn=NVe(),MN=(Me(),ke(Ze)),Qtn=RE(),$tn=Y("fs"),enn=fne(),hne=class extends Ztn.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=Jtn.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,enn.isWrapped)(t[n])&&this._unwrap(t,n),CVe.types.isProxy(t)){let i=(0,pne.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,pne.wrap)(t,n,r)};_unwrap=(t,n)=>CVe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,pne.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{MN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{MN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=Y.resolve(n);Y.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,$tn.readFileSync)(CN.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{MN.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return MVe(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=CN.normalize(r);return o.filter(u=>u.name===a).filter(u=>MVe(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&CN.isAbsolute(a)){let u=CN.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=CN.isAbsolute(t.name)?new Qtn.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new Xtn.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}};sG.InstrumentationBase=hne;function MVe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,Ytn.satisfies)(t,r,{includePrerelease:n}))}});var LVe=w(oG=>{"use strict";Object.defineProperty(oG,"__esModule",{value:!0});oG.normalize=void 0;var tnn=Y("path");Object.defineProperty(oG,"normalize",{enumerable:!0,get:function(){return tnn.normalize}})});var UVe=w(yw=>{"use strict";Object.defineProperty(yw,"__esModule",{value:!0});yw.normalize=yw.InstrumentationBase=void 0;var nnn=DVe();Object.defineProperty(yw,"InstrumentationBase",{enumerable:!0,get:function(){return nnn.InstrumentationBase}});var rnn=LVe();Object.defineProperty(yw,"normalize",{enumerable:!0,get:function(){return rnn.normalize}})});var mne=w(Sw=>{"use strict";Object.defineProperty(Sw,"__esModule",{value:!0});Sw.normalize=Sw.InstrumentationBase=void 0;var FVe=UVe();Object.defineProperty(Sw,"InstrumentationBase",{enumerable:!0,get:function(){return FVe.InstrumentationBase}});Object.defineProperty(Sw,"normalize",{enumerable:!0,get:function(){return FVe.normalize}})});var jVe=w(aG=>{"use strict";Object.defineProperty(aG,"__esModule",{value:!0});aG.InstrumentationNodeModuleDefinition=void 0;var gne=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||[]}};aG.InstrumentationNodeModuleDefinition=gne});var HVe=w(cG=>{"use strict";Object.defineProperty(cG,"__esModule",{value:!0});cG.InstrumentationNodeModuleFile=void 0;var inn=mne(),yne=class{supportedVersions;patch;unpatch;name;constructor(t,n,r,i){this.supportedVersions=n,this.patch=r,this.unpatch=i,this.name=(0,inn.normalize)(t)}};cG.InstrumentationNodeModuleFile=yne});var qVe=w(u_=>{"use strict";Object.defineProperty(u_,"__esModule",{value:!0});u_.semconvStabilityFromStr=u_.SemconvStability=void 0;var uG;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(uG=u_.SemconvStability||(u_.SemconvStability={}));function snn(e,t){let n=uG.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=uG.DUPLICATE;break}else i.toLowerCase()===e&&(n=uG.STABLE);return n}u_.semconvStabilityFromStr=snn});var zVe=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 onn=lVe();Object.defineProperty(Js,"registerInstrumentations",{enumerable:!0,get:function(){return onn.registerInstrumentations}});var ann=mne();Object.defineProperty(Js,"InstrumentationBase",{enumerable:!0,get:function(){return ann.InstrumentationBase}});var cnn=jVe();Object.defineProperty(Js,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return cnn.InstrumentationNodeModuleDefinition}});var unn=HVe();Object.defineProperty(Js,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return unn.InstrumentationNodeModuleFile}});var Sne=fne();Object.defineProperty(Js,"isWrapped",{enumerable:!0,get:function(){return Sne.isWrapped}});Object.defineProperty(Js,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return Sne.safeExecuteInTheMiddle}});Object.defineProperty(Js,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return Sne.safeExecuteInTheMiddleAsync}});var BVe=qVe();Object.defineProperty(Js,"SemconvStability",{enumerable:!0,get:function(){return BVe.SemconvStability}});Object.defineProperty(Js,"semconvStabilityFromStr",{enumerable:!0,get:function(){return BVe.semconvStabilityFromStr}})});function fnn(){let e=bw[Ene];return e?.helper?e.helper:bw[bne]?.helper}function pnn(e){let t={helper:e};bw[Ene]=t,bw[bne]=t}function hnn(){delete bw[Ene],delete bw[bne]}function ynn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}function WVe(e,t,n,r,i){if(KVe(t.name,i))return;let s={attributes:t.attributes,kind:ynn(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)WVe(e,c,n,r,i);o.end(t.endTime)})}function GVe(e,t){return bnn(t)?t.then(n=>(e.end(),n),n=>{throw e.end(),n}):(e.end(),t)}function bnn(e){return e!=null&&typeof e.then=="function"}function KVe(e,t){return t.some(n=>typeof n=="string"?n===e:n.test(e))}var lG,lnn,dnn,bne,Ene,bw,mnn,gnn,Snn,YVe,VVe,Enn,_nn,ZVe,JVe=v(()=>{Me();lG=Re(zVe(),1);Me();lnn={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"}},dnn=lnn.version.split(".")[0],bne="PRISMA_INSTRUMENTATION",Ene=`V${dnn}_PRISMA_INSTRUMENTATION`,bw=globalThis;mnn=process.env.PRISMA_SHOW_ALL_TRACES==="true",gnn="00-10-10-00";Snn=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}`:gnn}dispatchEngineSpans(e){let t=this.tracerProvider.getTracer("prisma"),n=new Map,r=e.filter(i=>i.parentId===null);for(let i of r)WVe(t,i,e,n,this.ignoreSpanTypes)}getActiveContext(){return Ve.active()}runInChildSpan(e,t){if(typeof e=="string"&&(e={name:e}),e.internal&&!mnn)return t();let n=this.tracerProvider.getTracer("prisma"),r=e.context??this.getActiveContext(),i=`prisma:client:${e.name}`;if(KVe(i,this.ignoreSpanTypes))return t();if(e.active===!1){let s=n.startSpan(i,e,r);return GVe(s,t(s,r))}return n.startActiveSpan(i,e,s=>GVe(s,t(s,r)))}};YVe={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},VVe=YVe.version,Enn=YVe.name,_nn="@prisma/client",ZVe=class extends lG.InstrumentationBase{tracerProvider;constructor(e={}){super(Enn,VVe,e)}setTracerProvider(e){this.tracerProvider=e}init(){return[new lG.InstrumentationNodeModuleDefinition(_nn,[VVe])]}enable(){let e=this._config;pnn(new Snn({tracerProvider:this.tracerProvider??jt.getTracerProvider(),ignoreSpanTypes:e.ignoreSpanTypes??[]}))}disable(){hnn()}isEnabled(){return fnn()!==void 0}}});function Tnn(e){return!!e&&typeof e=="object"&&"dispatchEngineSpans"in e}function QVe(){let e=globalThis.PRISMA_INSTRUMENTATION;return e&&typeof e=="object"&&"helper"in e?e.helper:void 0}function vnn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}var XVe,_ne,Rnn,$Ve,eWe=v(()=>{Me();JVe();st();sr();XVe="Prisma";_ne=class extends ZVe{constructor(t){super(t?.instrumentationConfig)}enable(){super.enable();let t=QVe();Tnn(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=vnn(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}})}};Rnn=rt(XVe,e=>new _ne(e)),$Ve=e=>({name:XVe,setupOnce(){Rnn(e)},setup(t){QVe()&&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 tWe=w(Ew=>{"use strict";Object.defineProperty(Ew,"__esModule",{value:!0});Ew.PACKAGE_NAME=Ew.PACKAGE_VERSION=void 0;Ew.PACKAGE_VERSION="0.60.0";Ew.PACKAGE_NAME="@opentelemetry/instrumentation-hapi"});var Tne=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 nWe=w(dG=>{"use strict";Object.defineProperty(dG,"__esModule",{value:!0});dG.ATTR_HTTP_METHOD=void 0;dG.ATTR_HTTP_METHOD="http.method"});var vne=w(DN=>{"use strict";Object.defineProperty(DN,"__esModule",{value:!0});DN.AttributeNames=void 0;var Ann;(function(e){e.HAPI_TYPE="hapi.type",e.PLUGIN_NAME="hapi.plugin.name",e.EXT_TYPE="server.ext.type"})(Ann=DN.AttributeNames||(DN.AttributeNames={}))});var sWe=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 rWe=(Nn(),ke(Mr)),wnn=nWe(),LN=Tne(),fS=vne(),iWe=Jt();function knn(e){return e.name?e.name:e.pkg.name}Xs.getPluginName=knn;var Inn=e=>typeof e=="string"&&LN.HapiLifecycleMethodNames.has(e);Xs.isLifecycleExtType=Inn;var xnn=e=>{let t=e?.type;return t!==void 0&&(0,Xs.isLifecycleExtType)(t)};Xs.isLifecycleExtEventObj=xnn;var Onn=e=>Array.isArray(e)&&e.length<=3&&(0,Xs.isLifecycleExtType)(e[0])&&typeof e[1]=="function";Xs.isDirectExtInput=Onn;var Pnn=e=>!Array.isArray(e);Xs.isPatchableExtMethod=Pnn;var Nnn=(e,t,n)=>{let r={[rWe.ATTR_HTTP_ROUTE]:e.path};t&iWe.SemconvStability.OLD&&(r[wnn.ATTR_HTTP_METHOD]=e.method),t&iWe.SemconvStability.STABLE&&(r[rWe.ATTR_HTTP_REQUEST_METHOD]=e.method);let i;return n?(r[fS.AttributeNames.HAPI_TYPE]=LN.HapiLayerType.PLUGIN,r[fS.AttributeNames.PLUGIN_NAME]=n,i=`${n}: route - ${e.path}`):(r[fS.AttributeNames.HAPI_TYPE]=LN.HapiLayerType.ROUTER,i=`route - ${e.path}`),{attributes:r,name:i}};Xs.getRouteMetadata=Nnn;var Cnn=(e,t,n)=>{let r=`ext - ${e}`;return n&&n!=="method"&&(r=`ext - ${e} - ${n}`),t?{attributes:{[fS.AttributeNames.EXT_TYPE]:e,[fS.AttributeNames.HAPI_TYPE]:LN.HapiLayerType.EXT,[fS.AttributeNames.PLUGIN_NAME]:t},name:`${t}: ${r}`}:{attributes:{[fS.AttributeNames.EXT_TYPE]:e,[fS.AttributeNames.HAPI_TYPE]:LN.HapiLayerType.EXT},name:r}};Xs.getExtMetadata=Cnn;var Mnn=e=>"plugin"in e?"plugin"in e.plugin?e.plugin.plugin:e.plugin:e;Xs.getPluginFromInput=Mnn});var cWe=w(fG=>{"use strict";Object.defineProperty(fG,"__esModule",{value:!0});fG.HapiInstrumentation=void 0;var gl=(Me(),ke(Ze)),oWe=pr(),UN=Jt(),aWe=tWe(),FN=Tne(),Lm=sWe(),Rne=class extends UN.InstrumentationBase{_semconvStability;constructor(t={}){super(aWe.PACKAGE_NAME,aWe.PACKAGE_VERSION,t),this._semconvStability=(0,UN.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new UN.InstrumentationNodeModuleDefinition(FN.HapiComponentName,[">=17.0.0 <22"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,UN.isWrapped)(n.server)||this._wrap(n,"server",this._getServerPatch.bind(this)),(0,UN.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,Lm.getPluginFromInput)(o);n._wrapRegisterHandler(a)}else{let o=(0,Lm.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,oWe.getRPCMetadata)(gl.context.active());a?.type===oWe.RPCType.HTTP&&(a.route=t.path);let c=(0,Lm.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}};fG.HapiInstrumentation=Rne});var uWe=w(_w=>{"use strict";Object.defineProperty(_w,"__esModule",{value:!0});_w.AttributeNames=_w.HapiInstrumentation=void 0;var Dnn=cWe();Object.defineProperty(_w,"HapiInstrumentation",{enumerable:!0,get:function(){return Dnn.HapiInstrumentation}});var Lnn=vne();Object.defineProperty(_w,"AttributeNames",{enumerable:!0,get:function(){return Lnn.AttributeNames}})});var lWe,dWe,fWe,Unn,pWe,hWe=v(()=>{lWe=Re(uWe(),1);sr();dWe="Hapi",fWe=rt(dWe,()=>new lWe.HapiInstrumentation),Unn=(()=>({name:dWe,setupOnce(){fWe()}})),pWe=Unn});var pS,jN,Ane=v(()=>{pS={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},jN={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"}});var hG,Fnn,jnn,pG,mWe=v(()=>{Me();hG=Re(Jt(),1);st();Ane();Fnn="@sentry/instrumentation-hono",jnn="0.0.1",pG=class extends hG.InstrumentationBase{constructor(t={}){super(Fnn,jnn,t)}init(){return[new hG.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({[pS.HONO_TYPE]:u,[pS.HONO_NAME]:u===jN.REQUEST_HANDLER?s:t.name||"anonymous"}),n.getConfig().responseHook?.(o),c});{let c=n._determineHandlerType(a);return o.setAttributes({[pS.HONO_TYPE]:c,[pS.HONO_NAME]:c===jN.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?jN.MIDDLEWARE:jN.REQUEST_HANDLER}_handleError(t,n){n instanceof Error&&(t.setStatus({code:as.ERROR,message:n.message}),t.recordException(n))}}});function Hnn(e){let t=vt(e).data,n=t[pS.HONO_TYPE];if(t[zt]||!n)return;e.setAttributes({[At]:"auto.http.otel.hono",[zt]:`${n}.hono`});let r=t[pS.HONO_NAME];if(typeof r=="string"&&e.updateName(r),vn()===Wl()){So&&Z.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let i=t[dm],s=t[bE];typeof i=="string"&&typeof s=="string"&&vn().setTransactionName(`${s} ${i}`)}var gWe,yWe,qnn,SWe,bWe=v(()=>{Nn();st();sr();QE();Ane();mWe();gWe="Hono";yWe=rt(gWe,()=>new pG({responseHook:e=>{Hnn(e)}})),qnn=(()=>({name:gWe,setupOnce(){yWe()}})),SWe=qnn});var mG=w(HN=>{"use strict";Object.defineProperty(HN,"__esModule",{value:!0});HN.KoaLayerType=void 0;var Bnn;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware"})(Bnn=HN.KoaLayerType||(HN.KoaLayerType={}))});var EWe=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-koa"});var wne=w(qN=>{"use strict";Object.defineProperty(qN,"__esModule",{value:!0});qN.AttributeNames=void 0;var znn;(function(e){e.KOA_TYPE="koa.type",e.KOA_NAME="koa.name"})(znn=qN.AttributeNames||(qN.AttributeNames={}))});var TWe=w(vw=>{"use strict";Object.defineProperty(vw,"__esModule",{value:!0});vw.isLayerIgnored=vw.getMiddlewareMetadata=void 0;var _We=mG(),gG=wne(),Gnn=(Nn(),ke(Mr)),Vnn=(e,t,n,r)=>n?{attributes:{[gG.AttributeNames.KOA_NAME]:r?.toString(),[gG.AttributeNames.KOA_TYPE]:_We.KoaLayerType.ROUTER,[Gnn.ATTR_HTTP_ROUTE]:r?.toString()},name:e._matchedRouteName||`router - ${r}`}:{attributes:{[gG.AttributeNames.KOA_NAME]:t.name??"middleware",[gG.AttributeNames.KOA_TYPE]:_We.KoaLayerType.MIDDLEWARE},name:`middleware - ${t.name}`};vw.getMiddlewareMetadata=Vnn;var Wnn=(e,t)=>!!(Array.isArray(t?.ignoreLayersType)&&t?.ignoreLayersType?.includes(e));vw.isLayerIgnored=Wnn});var vWe=w(yG=>{"use strict";Object.defineProperty(yG,"__esModule",{value:!0});yG.kLayerPatched=void 0;yG.kLayerPatched=Symbol("koa-layer-patched")});var xWe=w(SG=>{"use strict";Object.defineProperty(SG,"__esModule",{value:!0});SG.KoaInstrumentation=void 0;var th=(Me(),ke(Ze)),BN=Jt(),RWe=mG(),AWe=EWe(),wWe=TWe(),kWe=pr(),IWe=vWe(),kne=class extends BN.InstrumentationBase{constructor(t={}){super(AWe.PACKAGE_NAME,AWe.PACKAGE_VERSION,t)}init(){return new BN.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return n==null?n:((0,BN.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,BN.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,wWe.getMiddlewareMetadata)(s,t,n,r),u=this.tracer.startSpan(c.name,{attributes:c.attributes}),l=(0,kWe.getRPCMetadata)(th.context.active());l?.type===kWe.RPCType.HTTP&&s._matchedRoute&&(l.route=s._matchedRoute.toString());let{requestHook:d}=this.getConfig();d&&(0,BN.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()}})})}};SG.KoaInstrumentation=kne});var OWe=w(hS=>{"use strict";Object.defineProperty(hS,"__esModule",{value:!0});hS.KoaLayerType=hS.AttributeNames=hS.KoaInstrumentation=void 0;var Knn=xWe();Object.defineProperty(hS,"KoaInstrumentation",{enumerable:!0,get:function(){return Knn.KoaInstrumentation}});var Ynn=wne();Object.defineProperty(hS,"AttributeNames",{enumerable:!0,get:function(){return Ynn.AttributeNames}});var Znn=mG();Object.defineProperty(hS,"KoaLayerType",{enumerable:!0,get:function(){return Znn.KoaLayerType}})});var PWe,NWe,CWe,Jnn,MWe,DWe=v(()=>{PWe=Re(OWe(),1);Nn();st();sr();QE();NWe="Koa",CWe=rt(NWe,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()===Wl()){So&&Z.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let o=r[dm],a=n.context?.request?.method?.toUpperCase()||"GET";o&&vn().setTransactionName(`${a} ${o}`)}})),Jnn=((e={})=>({name:NWe,setupOnce(){CWe(e)}})),MWe=Jnn});var Ine=w(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});yf.ConnectNames=yf.ConnectTypes=yf.AttributeNames=void 0;var Xnn;(function(e){e.CONNECT_TYPE="connect.type",e.CONNECT_NAME="connect.name"})(Xnn=yf.AttributeNames||(yf.AttributeNames={}));var Qnn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(Qnn=yf.ConnectTypes||(yf.ConnectTypes={}));var $nn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request handler"})($nn=yf.ConnectNames||(yf.ConnectNames={}))});var LWe=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-connect"});var UWe=w(bG=>{"use strict";Object.defineProperty(bG,"__esModule",{value:!0});bG._LAYERS_STORE_PROPERTY=void 0;bG._LAYERS_STORE_PROPERTY=Symbol("opentelemetry.instrumentation-connect.request-route-stack")});var FWe=w(gS=>{"use strict";Object.defineProperty(gS,"__esModule",{value:!0});gS.generateRoute=gS.replaceCurrentStackRoute=gS.addNewStackLayer=void 0;var ern=(Me(),ke(Ze)),mS=UWe(),trn=e=>{Array.isArray(e[mS._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,mS._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),e[mS._LAYERS_STORE_PROPERTY].push("/");let t=e[mS._LAYERS_STORE_PROPERTY].length;return()=>{t===e[mS._LAYERS_STORE_PROPERTY].length?e[mS._LAYERS_STORE_PROPERTY].pop():ern.diag.warn("Connect: Trying to pop the stack multiple time")}};gS.addNewStackLayer=trn;var nrn=(e,t)=>{t&&e[mS._LAYERS_STORE_PROPERTY].splice(-1,1,t)};gS.replaceCurrentStackRoute=nrn;var rrn=e=>e[mS._LAYERS_STORE_PROPERTY].reduce((t,n)=>t.replace(/\/+$/,"")+n);gS.generateRoute=rrn});var qWe=w(yS=>{"use strict";Object.defineProperty(yS,"__esModule",{value:!0});yS.ConnectInstrumentation=yS.ANONYMOUS_NAME=void 0;var irn=(Me(),ke(Ze)),jWe=pr(),Aw=Ine(),HWe=LWe(),EG=Jt(),srn=(Nn(),ke(Mr)),xne=FWe();yS.ANONYMOUS_NAME="anonymous";var One=class extends EG.InstrumentationBase{constructor(t={}){super(HWe.PACKAGE_NAME,HWe.PACKAGE_VERSION,t)}init(){return[new EG.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],t=>this._patchConstructor(t))]}_patchApp(t){(0,EG.isWrapped)(t.use)||this._wrap(t,"use",this._patchUse.bind(this)),(0,EG.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=Aw.ConnectTypes.REQUEST_HANDLER,s=Aw.ConnectNames.REQUEST_HANDLER,i=t):(r=Aw.ConnectTypes.MIDDLEWARE,s=Aw.ConnectNames.MIDDLEWARE,i=n.name||yS.ANONYMOUS_NAME);let o=`${s} - ${i}`,a={attributes:{[srn.ATTR_HTTP_ROUTE]:t.length>0?t:"/",[Aw.AttributeNames.CONNECT_TYPE]:r,[Aw.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,xne.replaceCurrentStackRoute)(u,t);let f=(0,jWe.getRPCMetadata)(irn.context.active());t&&f?.type===jWe.RPCType.HTTP&&(f.route=(0,xne.generateRoute)(u));let p="";t?p=`request handler - ${t}`:p=`middleware - ${n.name||yS.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,xne.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)}}};yS.ConnectInstrumentation=One});var zWe=w(cd=>{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.ConnectTypes=cd.ConnectNames=cd.AttributeNames=cd.ANONYMOUS_NAME=cd.ConnectInstrumentation=void 0;var BWe=qWe();Object.defineProperty(cd,"ConnectInstrumentation",{enumerable:!0,get:function(){return BWe.ConnectInstrumentation}});Object.defineProperty(cd,"ANONYMOUS_NAME",{enumerable:!0,get:function(){return BWe.ANONYMOUS_NAME}});var Pne=Ine();Object.defineProperty(cd,"AttributeNames",{enumerable:!0,get:function(){return Pne.AttributeNames}});Object.defineProperty(cd,"ConnectNames",{enumerable:!0,get:function(){return Pne.ConnectNames}});Object.defineProperty(cd,"ConnectTypes",{enumerable:!0,get:function(){return Pne.ConnectTypes}})});var GWe,VWe,WWe,orn,KWe,YWe=v(()=>{GWe=Re(zWe(),1);sr();VWe="Connect",WWe=rt(VWe,()=>new GWe.ConnectInstrumentation),orn=(()=>({name:VWe,setupOnce(){WWe()}})),KWe=orn});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 JWe=w(ww=>{"use strict";Object.defineProperty(ww,"__esModule",{value:!0});ww.once=ww.getSpanName=void 0;function arn(e,t,n,r){return e==="execBulkLoad"&&r&&t?`${e} ${r} ${t}`:e==="callProcedure"?t?`${e} ${n} ${t}`:`${e} ${n}`:t?`${e} ${t}`:`${e}`}ww.getSpanName=arn;var crn=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};ww.once=crn});var XWe=w(kw=>{"use strict";Object.defineProperty(kw,"__esModule",{value:!0});kw.PACKAGE_NAME=kw.PACKAGE_VERSION=void 0;kw.PACKAGE_VERSION="0.33.0";kw.PACKAGE_NAME="@opentelemetry/instrumentation-tedious"});var n4e=w(bS=>{"use strict";Object.defineProperty(bS,"__esModule",{value:!0});bS.TediousInstrumentation=bS.INJECTED_CTX=void 0;var Iw=(Me(),ke(Ze)),urn=Y("events"),nh=Jt(),l_=(Nn(),ke(Mr)),SS=ZWe(),QWe=JWe(),$We=XWe(),t4e=Symbol("opentelemetry.instrumentation-tedious.current-database");bS.INJECTED_CTX=Symbol("opentelemetry.instrumentation-tedious.context-info-injected");var e4e=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function _G(e){Object.defineProperty(this,t4e,{value:e,writable:!0})}var Nne=class e extends nh.InstrumentationBase{static COMPONENT="tedious";_netSemconvStability;_dbSemconvStability;constructor(t={}){super($We.PACKAGE_NAME,$We.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 e4e)(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 e4e)this._unwrap(n,r);this._unwrap(n,"connect")})]}_patchConnect(t){return function(){return _G.call(this,this.config?.options?.database),this.removeListener("databaseChange",_G),this.on("databaseChange",_G),this.once("end",()=>{this.removeListener("databaseChange",_G)}),t.apply(this,arguments)}}_buildTraceparent(t){let n=t.spanContext();return`00-${n.traceId}-${n.spanId}-0${Number(n.traceFlags||Iw.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,bS.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?.[bS.INJECTED_CTX])return r.apply(this,arguments);if(!(o instanceof urn.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[t4e],f=(E=>E.sqlTextOrProcedure==="sp_prepare"&&E.parametersByName?.stmt?.value?E.parametersByName.stmt.value:E.sqlTextOrProcedure)(o),p={};i._dbSemconvStability&nh.SemconvStability.OLD&&(p[SS.ATTR_DB_SYSTEM]=SS.DB_SYSTEM_VALUE_MSSQL,p[SS.ATTR_DB_NAME]=d,p[SS.ATTR_DB_USER]=this.config?.userName??this.config?.authentication?.options?.userName,p[SS.ATTR_DB_STATEMENT]=f,p[SS.ATTR_DB_SQL_TABLE]=o.table),i._dbSemconvStability&nh.SemconvStability.STABLE&&(p[l_.ATTR_DB_NAMESPACE]=d,p[l_.ATTR_DB_SYSTEM_NAME]=l_.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER,p[l_.ATTR_DB_QUERY_TEXT]=f,p[l_.ATTR_DB_COLLECTION_NAME]=o.table),i._netSemconvStability&nh.SemconvStability.OLD&&(p[SS.ATTR_NET_PEER_NAME]=this.config?.server,p[SS.ATTR_NET_PEER_PORT]=this.config?.options?.port),i._netSemconvStability&nh.SemconvStability.STABLE&&(p[l_.ATTR_SERVER_ADDRESS]=this.config?.server,p[l_.ATTR_SERVER_PORT]=this.config?.options?.port);let h=i.tracer.startSpan((0,QWe.getSpanName)(t,d,f,o.table),{kind:Iw.SpanKind.CLIENT,attributes:p}),m=(0,QWe.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:Iw.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=()=>Iw.context.with(Iw.trace.setSpan(Iw.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)}}};bS.TediousInstrumentation=Nne});var r4e=w(TG=>{"use strict";Object.defineProperty(TG,"__esModule",{value:!0});TG.TediousInstrumentation=void 0;var lrn=n4e();Object.defineProperty(TG,"TediousInstrumentation",{enumerable:!0,get:function(){return lrn.TediousInstrumentation}})});var i4e,drn,s4e,o4e,frn,a4e,c4e=v(()=>{i4e=Re(r4e(),1);st();sr();drn=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),s4e="Tedious",o4e=rt(s4e,()=>new i4e.TediousInstrumentation({})),frn=(()=>{let e;return{name:s4e,setupOnce(){let t=o4e();e=vP(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]||"";drn.has(s)&&n.setAttribute(At,"auto.db.otel.tedious")}))}}}),a4e=frn});var u4e=w(xw=>{"use strict";Object.defineProperty(xw,"__esModule",{value:!0});xw.PACKAGE_NAME=xw.PACKAGE_VERSION=void 0;xw.PACKAGE_VERSION="0.57.0";xw.PACKAGE_NAME="@opentelemetry/instrumentation-generic-pool"});var d4e=w(vG=>{"use strict";Object.defineProperty(vG,"__esModule",{value:!0});vG.GenericPoolInstrumentation=void 0;var Ow=(Me(),ke(Ze)),d_=Jt(),l4e=u4e(),Cne="generic-pool",Mne=class extends d_.InstrumentationBase{_isDisabled=!1;constructor(t={}){super(l4e.PACKAGE_NAME,l4e.PACKAGE_VERSION,t)}init(){return[new d_.InstrumentationNodeModuleDefinition(Cne,[">=3.0.0 <4"],t=>{let n=t.Pool;return(0,d_.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 d_.InstrumentationNodeModuleDefinition(Cne,[">=2.4.0 <3"],t=>{let n=t.Pool;return(0,d_.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 d_.InstrumentationNodeModuleDefinition(Cne,[">=2.0.0 <2.4"],t=>(this._isDisabled=!1,(0,d_.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=Ow.context.active(),o=n.tracer.startSpan("generic-pool.acquire",{},s);return Ow.context.with(Ow.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=Ow.context.active(),a=n.tracer.startSpan("generic-pool.acquire",{},o);return Ow.context.with(Ow.trace.setSpan(o,a),()=>{t.call(this,(c,u)=>{if(a.end(),i)return i(c,u)},s)})}}};vG.GenericPoolInstrumentation=Mne});var f4e=w(RG=>{"use strict";Object.defineProperty(RG,"__esModule",{value:!0});RG.GenericPoolInstrumentation=void 0;var prn=d4e();Object.defineProperty(RG,"GenericPoolInstrumentation",{enumerable:!0,get:function(){return prn.GenericPoolInstrumentation}})});var p4e,h4e,m4e,hrn,g4e,y4e=v(()=>{p4e=Re(f4e(),1);st();sr();h4e="GenericPool",m4e=rt(h4e,()=>new p4e.GenericPoolInstrumentation({})),hrn=(()=>{let e;return{name:h4e,setupOnce(){let t=m4e();e=vP(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")}))}}}),g4e=hrn});var Dne=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 Lne=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 Une=w(f_=>{"use strict";Object.defineProperty(f_,"__esModule",{value:!0});f_.DEFAULT_CONFIG=f_.EndOperation=void 0;var mrn;(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"})(mrn=f_.EndOperation||(f_.EndOperation={}));f_.DEFAULT_CONFIG={consumeTimeoutMs:1e3*60,useLinksForConsume:!1}});var _4e=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 Fne=(Me(),ke(Ze)),ES=Jt(),AG=(Nn(),ke(Mr)),zN=Dne(),wG=Lne();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 jne=(0,Fne.createContextKey)("opentelemetry.amqplib.channel.is-confirm-channel"),grn=e=>e!==""?e:"";ps.normalizeExchange=grn;var yrn=e=>e.replace(/:[^:@/]*@/,":***@"),S4e=(e,t)=>e||(t==="AMQP"?5672:5671),b4e=e=>{let t=e||"amqp";return(t.endsWith(":")?t.substring(0,t.length-1):t).toUpperCase()},E4e=e=>e||"localhost",ih=(e,t,n,r)=>n?{[t]:n}:(Fne.diag.error(`amqplib instrumentation: could not extract connection attribute ${r} from user supplied url`,{url:e}),{}),Srn=e=>{let t=e.serverProperties.product?.toLowerCase?.();return t?{[zN.ATTR_MESSAGING_SYSTEM]:t}:{}};ps.getConnectionAttributesFromServer=Srn;var brn=(e,t)=>{let n={[wG.ATTR_MESSAGING_PROTOCOL_VERSION]:"0.9.1"};if(e=e||"amqp://localhost",typeof e=="object"){let r=e,i=b4e(r?.protocol);Object.assign(n,{...ih(e,wG.ATTR_MESSAGING_PROTOCOL,i,"protocol")});let s=E4e(r?.hostname);t&ES.SemconvStability.OLD&&Object.assign(n,{...ih(e,zN.ATTR_NET_PEER_NAME,s,"hostname")}),t&ES.SemconvStability.STABLE&&Object.assign(n,{...ih(e,AG.ATTR_SERVER_ADDRESS,s,"hostname")});let o=S4e(r.port,i);t&ES.SemconvStability.OLD&&Object.assign(n,ih(e,zN.ATTR_NET_PEER_PORT,o,"port")),t&ES.SemconvStability.STABLE&&Object.assign(n,ih(e,AG.ATTR_SERVER_PORT,o,"port"))}else{let r=yrn(e);n[wG.ATTR_MESSAGING_URL]=r;try{let i=new URL(r),s=b4e(i.protocol);Object.assign(n,{...ih(r,wG.ATTR_MESSAGING_PROTOCOL,s,"protocol")});let o=E4e(i.hostname);t&ES.SemconvStability.OLD&&Object.assign(n,{...ih(r,zN.ATTR_NET_PEER_NAME,o,"hostname")}),t&ES.SemconvStability.STABLE&&Object.assign(n,{...ih(r,AG.ATTR_SERVER_ADDRESS,o,"hostname")});let a=S4e(i.port?parseInt(i.port):void 0,s);t&ES.SemconvStability.OLD&&Object.assign(n,ih(r,zN.ATTR_NET_PEER_PORT,a,"port")),t&ES.SemconvStability.STABLE&&Object.assign(n,ih(r,AG.ATTR_SERVER_PORT,a,"port"))}catch(i){Fne.diag.error("amqplib instrumentation: error while extracting connection details from connection url",{censoredUrl:r,err:i})}}return n};ps.getConnectionAttributesFromUrl=brn;var Ern=e=>e.setValue(jne,!0);ps.markConfirmChannelTracing=Ern;var _rn=e=>e.deleteValue(jne);ps.unmarkConfirmChannelTracing=_rn;var Trn=e=>e.getValue(jne)===!0;ps.isConfirmChannelTracing=Trn});var T4e=w(Pw=>{"use strict";Object.defineProperty(Pw,"__esModule",{value:!0});Pw.PACKAGE_NAME=Pw.PACKAGE_VERSION=void 0;Pw.PACKAGE_VERSION="0.61.0";Pw.PACKAGE_NAME="@opentelemetry/instrumentation-amqplib"});var R4e=w(xG=>{"use strict";Object.defineProperty(xG,"__esModule",{value:!0});xG.AmqplibInstrumentation=void 0;var Ji=(Me(),ke(Ze)),kG=pr(),hr=Jt(),vrn=Dne(),yl=Lne(),Hc=Une(),hs=_4e(),v4e=T4e(),IG=[">=0.5.5 <1"],Hne=class extends hr.InstrumentationBase{_netSemconvStability;constructor(t={}){super(v4e.PACKAGE_NAME,v4e.PACKAGE_VERSION,{...Hc.DEFAULT_CONFIG,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,hr.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...Hc.DEFAULT_CONFIG,...t})}init(){let t=new hr.InstrumentationNodeModuleFile("amqplib/lib/channel_model.js",IG,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),n=new hr.InstrumentationNodeModuleFile("amqplib/lib/callback_model.js",IG,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),r=new hr.InstrumentationNodeModuleFile("amqplib/lib/connect.js",IG,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new hr.InstrumentationNodeModuleDefinition("amqplib",IG,void 0,void 0,[t,r,n])}patchConnect(t){return t=this.unpatchConnect(t),(0,hr.isWrapped)(t.connect)||this._wrap(t,"connect",this.getConnectPatch.bind(this)),t}unpatchConnect(t){return(0,hr.isWrapped)(t.connect)&&this._unwrap(t,"connect"),t}patchChannelModel(t,n){return(0,hr.isWrapped)(t.Channel.prototype.publish)||this._wrap(t.Channel.prototype,"publish",this.getPublishPatch.bind(this,n)),(0,hr.isWrapped)(t.Channel.prototype.consume)||this._wrap(t.Channel.prototype,"consume",this.getConsumePatch.bind(this,n)),(0,hr.isWrapped)(t.Channel.prototype.ack)||this._wrap(t.Channel.prototype,"ack",this.getAckPatch.bind(this,!1,Hc.EndOperation.Ack)),(0,hr.isWrapped)(t.Channel.prototype.nack)||this._wrap(t.Channel.prototype,"nack",this.getAckPatch.bind(this,!0,Hc.EndOperation.Nack)),(0,hr.isWrapped)(t.Channel.prototype.reject)||this._wrap(t.Channel.prototype,"reject",this.getAckPatch.bind(this,!0,Hc.EndOperation.Reject)),(0,hr.isWrapped)(t.Channel.prototype.ackAll)||this._wrap(t.Channel.prototype,"ackAll",this.getAckAllPatch.bind(this,!1,Hc.EndOperation.AckAll)),(0,hr.isWrapped)(t.Channel.prototype.nackAll)||this._wrap(t.Channel.prototype,"nackAll",this.getAckAllPatch.bind(this,!0,Hc.EndOperation.NackAll)),(0,hr.isWrapped)(t.Channel.prototype.emit)||this._wrap(t.Channel.prototype,"emit",this.getChannelEmitPatch.bind(this)),(0,hr.isWrapped)(t.ConfirmChannel.prototype.publish)||this._wrap(t.ConfirmChannel.prototype,"publish",this.getConfirmedPublishPatch.bind(this,n)),t}unpatchChannelModel(t){return(0,hr.isWrapped)(t.Channel.prototype.publish)&&this._unwrap(t.Channel.prototype,"publish"),(0,hr.isWrapped)(t.Channel.prototype.consume)&&this._unwrap(t.Channel.prototype,"consume"),(0,hr.isWrapped)(t.Channel.prototype.ack)&&this._unwrap(t.Channel.prototype,"ack"),(0,hr.isWrapped)(t.Channel.prototype.nack)&&this._unwrap(t.Channel.prototype,"nack"),(0,hr.isWrapped)(t.Channel.prototype.reject)&&this._unwrap(t.Channel.prototype,"reject"),(0,hr.isWrapped)(t.Channel.prototype.ackAll)&&this._unwrap(t.Channel.prototype,"ackAll"),(0,hr.isWrapped)(t.Channel.prototype.nackAll)&&this._unwrap(t.Channel.prototype,"nackAll"),(0,hr.isWrapped)(t.Channel.prototype.emit)&&this._unwrap(t.Channel.prototype,"emit"),(0,hr.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=Ji.propagation.extract(Ji.ROOT_CONTEXT,d),p=l.fields?.exchange,h;if(r._config.useLinksForConsume){let b=f?Ji.trace.getSpan(f)?.spanContext():void 0;f=void 0,b&&(h=[{context:b}])}let m=r.tracer.startSpan(`${s} process`,{kind:Ji.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,[vrn.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,hr.safeExecuteInTheMiddle)(()=>g(m,{moduleVersion:t,msg:l}),b=>{b&&Ji.diag.error("amqplib instrumentation: consumerHook error",b)},!0),a?.noAck||(c[hs.CHANNEL_SPANS_NOT_ENDED].push({msg:l,timeOfConsume:(0,kG.hrTime)()}),l[hs.MESSAGE_STORED_SPAN]=m);let y=f||Ji.ROOT_CONTEXT;Ji.context.with(Ji.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,hr.safeExecuteInTheMiddle)(()=>p(d,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:f,isConfirmChannel:!0}),y=>{y&&Ji.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,hr.safeExecuteInTheMiddle)(()=>S(d,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:c,isConfirmChannel:!0,confirmError:y}),E=>{E&&Ji.diag.error("amqplib instrumentation: publishConfirmHook error",E)},!0),y&&d.setStatus({code:Ji.SpanStatusCode.ERROR,message:"message confirmation has been nack'ed"}),d.end()}},m=(0,hs.markConfirmChannelTracing)(Ji.context.active()),g=[...arguments];return g[3]=f,g[4]=Ji.context.bind((0,hs.unmarkConfirmChannelTracing)(Ji.trace.setSpan(m,d)),h),Ji.context.with(m,n.bind(this,...g))}}getPublishPatch(t,n){let r=this;return function(s,o,a,c){if((0,hs.isConfirmChannelTracing)(Ji.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,hr.safeExecuteInTheMiddle)(()=>f(l,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:d,isConfirmChannel:!1}),m=>{m&&Ji.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:Ji.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??{},Ji.propagation.inject(Ji.trace.setSpan(Ji.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:Ji.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,hr.safeExecuteInTheMiddle)(()=>s(t,{msg:n,rejected:r,endOperation:i}),o=>{o&&Ji.diag.error("amqplib instrumentation: consumerEndHook error",o)},!0)}checkConsumeTimeoutOnChannel(t){let n=(0,kG.hrTime)(),r=t[hs.CHANNEL_SPANS_NOT_ENDED]??[],i,{consumeTimeoutMs:s}=this.getConfig();for(i=0;i{"use strict";Object.defineProperty(_S,"__esModule",{value:!0});_S.EndOperation=_S.DEFAULT_CONFIG=_S.AmqplibInstrumentation=void 0;var Rrn=R4e();Object.defineProperty(_S,"AmqplibInstrumentation",{enumerable:!0,get:function(){return Rrn.AmqplibInstrumentation}});var A4e=Une();Object.defineProperty(_S,"DEFAULT_CONFIG",{enumerable:!0,get:function(){return A4e.DEFAULT_CONFIG}});Object.defineProperty(_S,"EndOperation",{enumerable:!0,get:function(){return A4e.EndOperation}})});var k4e,I4e,Arn,x4e,wrn,O4e,P4e=v(()=>{k4e=Re(w4e(),1);sr();I4e="Amqplib",Arn={consumeEndHook:e=>{Dr(e,"auto.amqplib.otel.consumer")},publishHook:e=>{Dr(e,"auto.amqplib.otel.publisher")}},x4e=rt(I4e,()=>new k4e.AmqplibInstrumentation(Arn)),wrn=(()=>({name:I4e,setupOnce(){x4e()}})),O4e=wrn});var GN,qne=v(()=>{GN="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 xrn(e){if(typeof e!="object"||e===null||!("content"in e))return;let t=e;Array.isArray(t.content)&&(Orn(t.content),Prn(t.content))}function Orn(e){for(let t of e){if(!Irn(t))continue;let n=wQ(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 Prn(e){for(let t of e)typeof t=="object"&&t!==null&&"toolCallId"in t&&typeof t.toolCallId=="string"&&kQ(t.toolCallId)}function Nrn(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 PG,krn,N4e,OG,C4e=v(()=>{PG=Re(Jt(),1);st();qne();krn=[">=3.0.0 <7"],N4e=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];OG=class e extends PG.InstrumentationBase{__init(){this._isPatched=!1}__init2(){this._callbacks=[]}constructor(t={}){super("@sentry/instrumentation-vercel-ai",Cn,t),e.prototype.__init.call(this),e.prototype.__init2.call(this)}init(){return new PG.InstrumentationNodeModuleDefinition("ai",krn,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(GN),d=l?.options,f=l?!!u?.getOptions().sendDefaultPii:!1,{recordInputs:p,recordOutputs:h}=Nrn(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",Yl())},()=>{},m=>{xrn(m)})}});if(Object.prototype.toString.call(t)==="[object Module]"){for(let r of N4e)t[r]!=null&&(t[r]=n(t[r]));return t}else{let r=N4e.reduce((i,s)=>(t[s]!=null&&(i[s]=n(t[s])),i),{});return{...t,...r}}}}});function Crn(e){return!!e.getIntegrationByName("Modules")?.getModules?.()?.ai}var M4e,Mrn,D4e,L4e=v(()=>{st();sr();qne();C4e();M4e=rt(GN,()=>new OG({}));Mrn=((e={})=>{let t;return{name:GN,options:e,setupOnce(){t=M4e()},afterAllSetup(n){e.force??Crn(n)?UH(n):t?.callWhenPatched(()=>UH(n))}}}),D4e=Mrn});var CG,Drn,NG,U4e=v(()=>{CG=Re(Jt(),1);st();Drn=[">=4.0.0 <7"],NG=class extends CG.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-openai",Cn,t)}init(){return new CG.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(LE(Vy))return Reflect.construct(r,o);let a=Reflect.construct(r,o);return HH(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 F4e,Lrn,j4e,H4e=v(()=>{st();sr();U4e();F4e=rt(Vy,e=>new NG(e)),Lrn=((e={})=>({name:Vy,setupOnce(){F4e(e)}})),j4e=Lrn});var DG,Urn,MG,q4e=v(()=>{DG=Re(Jt(),1);st();Urn=[">=0.19.2 <1.0.0"],MG=class extends DG.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-anthropic-ai",Cn,t)}init(){return new DG.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",Urn,this._patch.bind(this))}_patch(t){let n=t.Anthropic,r=this.getConfig(),i=function(...s){if(LE(Wy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return qH(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 B4e,Frn,z4e,G4e=v(()=>{st();sr();q4e();B4e=rt(Wy,e=>new MG(e)),Frn=((e={})=>({name:Wy,options:e,setupOnce(){B4e(e)}})),z4e=Frn});var Nw,V4e,LG,W4e=v(()=>{Nw=Re(Jt(),1);st();V4e=[">=0.10.0 <2"],LG=class extends Nw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-google-genai",Cn,t)}init(){return new Nw.InstrumentationNodeModuleDefinition("@google/genai",V4e,n=>this._patch(n),n=>n,[new Nw.InstrumentationNodeModuleFile("@google/genai/dist/node/index.cjs",V4e,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(LE(Ky))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return BH(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 _P(t,"GoogleGenAI",i),t}}});var K4e,jrn,Y4e,Z4e=v(()=>{st();sr();W4e();K4e=rt(Ky,e=>new LG(e)),jrn=((e={})=>({name:Ky,setupOnce(){K4e(e)}})),Y4e=jrn});function Hrn(e,t){return e?Array.isArray(e)?e.includes(t)?e:[...e,t]:typeof e=="object"?[e,t]:e:[t]}function qrn(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=Hrn(c,t);return a.callbacks=u,Reflect.apply(r,i,s)}})}var TS,UG,FG,J4e=v(()=>{TS=Re(Jt(),1);st();UG=[">=0.1.0 <2.0.0"];FG=class extends TS.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langchain",Cn,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 TS.InstrumentationNodeModuleDefinition(r,UG,this._patch.bind(this),i=>i,[new TS.InstrumentationNodeModuleFile(`${r}/dist/index.cjs`,UG,this._patch.bind(this),i=>i)]));return t.push(new TS.InstrumentationNodeModuleDefinition("langchain",UG,this._patch.bind(this),r=>r,[new TS.InstrumentationNodeModuleFile("langchain/dist/chat_models/universal.cjs",UG,this._patch.bind(this),r=>r)])),t}_patch(t){VX([Vy,Wy,Ky]);let n=WH(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]=qrn(u,n))}}}});var X4e,Brn,Q4e,$4e=v(()=>{st();sr();J4e();X4e=rt(zH,e=>new FG(e)),Brn=((e={})=>({name:zH,setupOnce(){X4e(e)}})),Q4e=Brn});var Cw,eKe,jG,tKe=v(()=>{Cw=Re(Jt(),1);st();eKe=[">=0.0.0 <2.0.0"],jG=class extends Cw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langgraph",Cn,t)}init(){return new Cw.InstrumentationNodeModuleDefinition("@langchain/langgraph",eKe,this._patch.bind(this),n=>n,[new Cw.InstrumentationNodeModuleFile("@langchain/langgraph/dist/index.cjs",eKe,this._patch.bind(this),n=>n)])}_patch(t){return t.StateGraph&&typeof t.StateGraph=="function"&&YH(t.StateGraph.prototype,this.getConfig()),t}}});var nKe,zrn,rKe,iKe=v(()=>{st();sr();tKe();nKe=rt(KH,e=>new jG(e)),zrn=((e={})=>({name:KH,setupOnce(){nKe(e)}})),rKe=zrn});import*as oKe from"node:net";function aKe(e,t,n,r,i){let o=()=>{},a=i.firestoreSpanCreationHook;typeof a=="function"&&(o=l=>{(0,Um.safeExecuteInTheMiddle)(()=>a(l),d=>{d&&sl.error(d?.message)},!0)});let c=new Um.InstrumentationNodeModuleDefinition("@firebase/firestore",t,l=>sKe(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 Um.InstrumentationNodeModuleFile(l,t,d=>sKe(d,n,r,e,o),d=>cKe(d,r)));return c}function sKe(e,t,n,r,i){return cKe(e,n),t(e,"addDoc",Grn(r,i)),t(e,"getDocs",Wrn(r,i)),t(e,"setDoc",Krn(r,i)),t(e,"deleteDoc",Vrn(r,i)),e}function cKe(e,t){for(let n of["addDoc","getDocs","setDoc","deleteDoc"])(0,Um.isWrapped)(e[n])&&t(e,n);return e}function Grn(e,t){return function(r){return function(i,s){let o=qG(e,"addDoc",i);return t(o),HG(o,()=>r(i,s))}}}function Vrn(e,t){return function(r){return function(i){let s=qG(e,"deleteDoc",i.parent||i);return t(s),HG(s,()=>r(i))}}}function Wrn(e,t){return function(r){return function(i){let s=qG(e,"getDocs",i);return t(s),HG(s,()=>r(i))}}}function Krn(e,t){return function(r){return function(i,s,o){let a=qG(e,"setDoc",i.parent||i);return t(a),HG(a,()=>typeof o<"u"?r(i,s,o):r(i,s))}}}function HG(e,t){return Ve.with(jt.setSpan(Ve.active(),e),()=>(0,Um.safeExecuteInTheMiddle)(()=>t(),n=>{n&&e.recordException(n),e.end()},!0))}function qG(e,t,n){let r=e.startSpan(`${t} ${n.path}`,{kind:$r.CLIENT});return Zrn(r,n),r.setAttribute(yR,t),r}function Yrn(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(oKe.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 Zrn(e,t){let n=t.firestore.app,r=n.options,s=(t.firestore.toJSON()||{}).settings||{},o={[E7]:t.path,[_7]:n.name,[SE]:"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}=Yrn(s);a&&(o[x7]=a),c&&(o[O7]=c),e.setAttributes(o)}var Um,uKe=v(()=>{Me();Um=Re(Jt(),1);Nn()});function lKe(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,Fm.safeExecuteInTheMiddle)(()=>u(f,p),h=>{h&&sl.error(h?.message)},!0)}),typeof c=="function"&&(s=f=>{(0,Fm.safeExecuteInTheMiddle)(()=>c(f),p=>{p&&sl.error(p?.message)},!0)});let l=new Fm.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 Fm.InstrumentationNodeModuleFile(f,t,h=>Jrn(h,n,r,e,{requestHook:s,responseHook:o,errorHook:a},p),h=>dKe(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 Jrn(e,t,n,r,i,s){switch(dKe(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 dKe(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,Fm.isWrapped)(e[r])&&t(e,r);return e}var Fm,fKe=v(()=>{Me();Fm=Re(Jt(),1)});var hKe,pKe,Xrn,Qrn,BG,mKe=v(()=>{hKe=Re(Jt(),1);st();uKe();fKe();pKe={},Xrn=[">=3.0.0 <5"],Qrn=[">=6.0.0 <7"],BG=class extends hKe.InstrumentationBase{constructor(t=pKe){super("@sentry/instrumentation-firebase",Cn,t)}setConfig(t={}){super.setConfig({...pKe,...t})}init(){let t=[];return t.push(aKe(this.tracer,Xrn,this._wrap,this._unwrap,this.getConfig())),t.push(lKe(this.tracer,Qrn,this._wrap,this._unwrap,this.getConfig())),t}}});var gKe,$rn,yKe,ein,SKe,bKe=v(()=>{st();sr();mKe();gKe="Firebase",$rn={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 tA(2e3))}}},yKe=rt(gKe,()=>new BG($rn)),ein=(()=>({name:gKe,setupOnce(){yKe()}})),SKe=ein});function EKe(){return[pqe(),YBe(),_ze(),SWe(),cGe(),vGe(),DGe(),KGe(),A2e(),W2e(),$Ve(),pWe(),MWe(),KWe(),a4e(),g4e(),Fze(),O4e(),Zze(),Q4e(),rKe(),D4e(),j4e(),z4e(),Y4e(),J2e(),SKe()]}var _Ke=v(()=>{P4e();G4e();YWe();hqe();XBe();bKe();y4e();Z4e();vze();hWe();bWe();jze();DWe();$4e();iKe();Jze();uGe();RGe();LGe();YGe();H4e();K2e();X2e();eWe();w2e();c4e();L4e()});function vKe(e,t={}){e.getOptions().debug&&see();let[n,r]=tin(e,t);e.traceProvider=n,e.asyncLocalStorageLookup=r}function tin(e,t={}){let n=new TKe.BasicTracerProvider({sampler:new eB(e),resource:(0,zG.defaultResource)().merge((0,zG.resourceFromAttributes)({[P7]:"node",[b7]:"sentry",[N7]:Cn})),forceFlushTimeoutMillis:500,spanProcessors:[new $q({timeout:nin(e.getOptions().maxSpanWaitDuration)}),...t.spanProcessors||[]]});jt.setGlobalTracerProvider(n),Qd.setGlobalPropagator(new Qq);let r=new iee;return Ve.setGlobalContextManager(r),[n,r.getAsyncLocalStorageLookup()]}function nin(e){if(e!=null){if(e>Bne)return So&&Z.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${Bne}`),Bne;if(e<=0||Number.isNaN(e)){So&&Z.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return e}}var zG,TKe,Bne,RKe=v(()=>{Me();zG=Re(y$(),1),TKe=Re(z$(),1);Nn();st();sr();CA();QE();Bne=1e6});function AKe(){return uB().filter(t=>t.name!=="Http"&&t.name!=="NodeFetch").concat(zHe(),QHe())}function wKe(e){return[...AKe(),...Os(e)?EKe():[]]}function zne(e={}){return rin(e,wKe)}function rin(e={},t){UE(e,"node");let n=yee({...e,defaultIntegrations:e.defaultIntegrations??t(e)});return n&&!e.skipOpenTelemetrySetup&&(vKe(n,{spanProcessors:e.openTelemetrySpanProcessors}),See()),n}var kKe=v(()=>{st();sr();GHe();$He();_Ke();RKe()});var IKe=v(()=>{kKe();st()});var DKe={};Ar(DKe,{_resetPluginRootForTests:()=>oin,features:()=>Go,observability:()=>Wne,resolvePluginRoot:()=>nn,review:()=>bf,stripWildcardAllowedOrigins:()=>Vne});import{existsSync as xKe}from"node:fs";import{dirname as OKe,join as PKe}from"node:path";import{fileURLToPath as sin}from"node:url";function MKe(e){if(!e.startsWith("HAIKU_")){let t=process.env[`HAIKU_${e}`];if(t!==void 0)return t}return process.env[e]}function Gne(e,t){let n=MKe(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 NKe(e,t){let n=MKe(e);return n===void 0||n===""?t:n}function oin(){Sf=null}function nn(){if(Sf!==null)return Sf;let e=process.env.CLAUDE_PLUGIN_ROOT;if(e)return Sf=e,Sf;let t=CKe(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=sin(import.meta.url),r=CKe(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 CKe(e){if(!e)return null;let t=OKe(e);for(let n=0;n<6;n++){if(xKe(PKe(t,"studios"))||xKe(PKe(t,".claude-plugin","plugin.json")))return t;let r=OKe(t);if(r===t)return null;t=r}return null}function Vne(){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,Wne,Ci=v(()=>{"use strict";Sf=null;Go={modelSelection:Gne("HAIKU_MODEL_SELECTION",!0),remoteReview:Gne("HAIKU_REMOTE_REVIEW",!1),telemetry:Gne("CLAUDE_CODE_ENABLE_TELEMETRY",!1)},bf={siteUrl:NKe("HAIKU_REVIEW_SITE_URL","https://haikumethod.ai"),allowedOrigins:NKe("HAIKU_REVIEW_ALLOWED_ORIGINS","").split(",").map(e=>e.trim()).filter(Boolean)};Wne={sentryDsn:""}});import{readFileSync as ain}from"node:fs";import{join as cin}from"node:path";function vS(){try{let e=nn();if(e)return JSON.parse(ain(cin(e,".claude-plugin","plugin.json"),"utf8")).version??"unknown"}catch{}return"unknown"}var ud,p_=v(()=>{"use strict";Ci();ud="10.1.0"});var UKe={};Ar(UKe,{flush:()=>Ef,isSentryConfigured:()=>Yne,reportError:()=>ms,reportFeedback:()=>Kne});function LKe(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){Mw&&Ja(r=>{LKe(r,n),Wt(e,{extra:t})})}function Kne(e,t,n,r){Mw&&Ja(i=>{LKe(i,t),i.setTag("feedback","true"),IH({message:e,email:n,name:r||"H\xB7AI\xB7K\xB7U User"})})}function Yne(){return Mw!==""}async function Ef(e=2e3){Mw&&await tA(e)}var Mw,sh=v(()=>{"use strict";IKe();Ci();p_();Mw=Wne.sentryDsn;Mw&&zne({dsn:Mw,release:`haiku-mcp@${ud}`,tracesSampleRate:0})});var jKe={};Ar(jKe,{maybeRebuildSpaForDev:()=>min});import{execFileSync as uin}from"node:child_process";import{existsSync as VG,readdirSync as lin,statSync as FKe}from"node:fs";import{dirname as din,join as GG,resolve as Zne}from"node:path";import{fileURLToPath as fin}from"node:url";function pin(e){if(!VG(e))return 0;let t=0,n=[e];for(;n.length>0;){let r=n.pop(),i;try{i=lin(r)}catch{continue}for(let s of i){if(s==="node_modules"||s==="dist"||s==="__tests__")continue;let o=GG(r,s),a;try{a=FKe(o)}catch{continue}a.isDirectory()?n.push(o):a.isFile()&&a.mtimeMs>t&&(t=a.mtimeMs)}}return t}function hin(e){let t;try{t=din(fin(e))}catch{t=process.cwd()}let n=Zne(t,".."),r=Zne(n,".."),i=GG(r,"haiku-ui","src"),s=GG(n,"scripts","bundle-haiku-ui.mjs"),o=GG(n,"src","haiku-ui-html.ts");return!VG(i)||!VG(s)?null:{repoRoot:Zne(r,".."),uiSrcDir:i,bundledHtml:o,bundleScript:s}}function min(e){if(process.env.HAIKU_DEV_SPA_AUTO_REBUILD==="0")return;let t=hin(e);if(!t)return;let n=pin(t.uiSrcDir),r=VG(t.bundledHtml)?FKe(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{uin("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 HKe=v(()=>{"use strict"});var qKe={};Ar(qKe,{askUserInstruction:()=>Ein,getCapabilities:()=>Mi,getHarness:()=>yin,isClaudeCode:()=>oh,listHarnesses:()=>Sin,mapModelTier:()=>_in,setHarness:()=>gin,skillReference:()=>WN,subagentInstruction:()=>bin});function gin(e){let t=e.toLowerCase().replace(/[\s_]/g,"-");t in VN?Dw=t:(console.error(`[haiku] Unknown harness "${e}" \u2014 falling back to claude-code. Known: ${Object.keys(VN).join(", ")}`),Dw="claude-code"),console.error(`[haiku] Harness: ${VN[Dw].displayName}`)}function yin(){return Dw}function Mi(){return VN[Dw]}function oh(){return Dw==="claude-code"}function Sin(){return Object.keys(VN)}function bin(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 WN(e){let t=Mi();return t.promptsAsSlashCommands?`/haiku:${e}`:t.mcpPrompts?`the \`haiku:${e}\` prompt`:`the haiku ${e} workflow`}function Ein(){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 _in(e){return Mi().modelTierMap[e]||e}var VN,Dw,_f=v(()=>{"use strict";VN={"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"}}},Dw="claude-code"});var Mn,Jne,Qe,ah,KN=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})(Mn||(Mn={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Jne||(Jne={}));Qe=Mn.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,Tin,Eu,WG=v(()=>{KN();Ie=Mn.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"]),Tin=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 vin,jm,Xne=v(()=>{WG();KN();vin=(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,Mn.jsonStringifyReplacer)}`;break;case Ie.unrecognized_keys:n=`Unrecognized key(s) in object: ${Mn.joinValues(e.keys,", ")}`;break;case Ie.invalid_union:n="Invalid input";break;case Ie.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Mn.joinValues(e.options)}`;break;case Ie.invalid_enum_value:n=`Invalid enum value. Expected ${Mn.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}"`:Mn.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,Mn.assertNever(e)}return{message:n}},jm=vin});function Rin(e){BKe=e}function Lw(){return BKe}var BKe,KG=v(()=>{Xne();BKe=jm});function We(e,t){let n=Lw(),r=YN({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===jm?void 0:jm].filter(i=>!!i)});e.common.issues.push(r)}var YN,Ain,ha,Mt,h_,nc,YG,ZG,RS,Uw,Qne=v(()=>{KG();Xne();YN=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,s=[...n,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",c=r.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:t,defaultError:a}).message;return{...i,path:s,message:a}},Ain=[];ha=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let i of n){if(i.status==="aborted")return Mt;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let i of n){let s=await i.key,o=await i.value;r.push({key:s,value:o})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let i of n){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return Mt;s.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(r[s.value]=o.value)}return{status:t.value,value:r}}},Mt=Object.freeze({status:"aborted"}),h_=e=>({status:"dirty",value:e}),nc=e=>({status:"valid",value:e}),YG=e=>e.status==="aborted",ZG=e=>e.status==="dirty",RS=e=>e.status==="valid",Uw=e=>typeof Promise<"u"&&e instanceof Promise});var zKe=v(()=>{});var ut,GKe=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 YKe(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 Bin(e){return new RegExp(`^${YKe(e)}$`)}function ZKe(e){let t=`${KKe}T${YKe(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 zin(e,t){return!!((t==="v4"||!t)&&Din.test(e)||(t==="v6"||!t)&&Uin.test(e))}function Gin(e,t){if(!Pin.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function Vin(e,t){return!!((t==="v4"||!t)&&Lin.test(e)||(t==="v6"||!t)&&Fin.test(e))}function Win(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 Fw(e){if(e instanceof _u){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=ld.create(Fw(r))}return new _u({...e._def,shape:()=>t})}else return e instanceof Bm?new Bm({...e._def,type:Fw(e.element)}):e instanceof ld?ld.create(Fw(e.unwrap())):e instanceof uh?uh.create(Fw(e.unwrap())):e instanceof ch?ch.create(e.items.map(t=>Fw(t))):e}function ere(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=Mn.objectKeys(t),s=Mn.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of s){let c=ere(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=WKe(t,r),c=a.fatal??n??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!s){let o=WKe(t,r),a=o.fatal??n??!0;i.addIssue({code:"custom",...o,fatal:a})}}):wS.create()}var dd,VKe,gn,win,kin,Iin,xin,Oin,Pin,Nin,Cin,Min,$ne,Din,Lin,Uin,Fin,jin,Hin,KKe,qin,AS,m_,g_,y_,S_,jw,b_,E_,wS,qm,Tf,Hw,Bm,_u,__,Hm,JG,T_,ch,XG,qw,Bw,QG,v_,R_,A_,w_,kS,fd,ld,uh,k_,I_,zw,Kin,ZN,JN,x_,Yin,Bt,Zin,QKe,$Ke,Jin,Xin,e3e,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,Rsn,Asn,wsn,ksn,Isn,xsn,Osn,Psn,t3e=v(()=>{WG();KG();GKe();Qne();KN();dd=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}},VKe=(e,t)=>{if(RS(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}}};gn=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(Uw(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 VKe(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 RS(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=>RS(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(Uw(i)?i:Promise.resolve(i));return VKe(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 fd({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 ld.create(this,this._def)}nullable(){return uh.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Bm.create(this)}promise(){return kS.create(this,this._def)}or(t){return __.create([this,t],this._def)}and(t){return T_.create(this,t,this._def)}transform(t){return new fd({...un(this._def),schema:this,typeName:Bt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new k_({...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 I_({...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 JN.create(this,t)}readonly(){return x_.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},win=/^c[^\s-]{8,}$/i,kin=/^[0-9a-z]+$/,Iin=/^[0-9A-HJKMNP-TV-Z]{26}$/i,xin=/^[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,Pin=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Nin=/^[-+]?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)?)??$/,Cin=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Min="^(\\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])$/,Lin=/^(?:(?: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])$/,Uin=/^(([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]))$/,Fin=/^(([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])$/,jin=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Hin=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,KKe="((\\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])))",qin=new RegExp(`^${KKe}$`);AS=class e extends gn{_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 AS({checks:[],typeName:Bt.ZodString,coerce:e?.coerce??!1,...un(e)});m_=class e extends gn{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"?Mn.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"?Win(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()):Mn.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"&&Mn.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 m_({checks:[],typeName:Bt.ZodNumber,coerce:e?.coerce||!1,...un(e)});g_=class e extends gn{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()):Mn.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 g_({checks:[],typeName:Bt.ZodBigInt,coerce:e?.coerce??!1,...un(e)});y_=class extends gn{_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)}};y_.create=e=>new y_({typeName:Bt.ZodBoolean,coerce:e?.coerce||!1,...un(e)});S_=class e extends gn{_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()):Mn.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 S_({checks:[],coerce:e?.coerce||!1,typeName:Bt.ZodDate,...un(e)});jw=class extends gn{_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)}};jw.create=e=>new jw({typeName:Bt.ZodSymbol,...un(e)});b_=class extends gn{_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)}};b_.create=e=>new b_({typeName:Bt.ZodUndefined,...un(e)});E_=class extends gn{_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)}};E_.create=e=>new E_({typeName:Bt.ZodNull,...un(e)});wS=class extends gn{constructor(){super(...arguments),this._any=!0}_parse(t){return nc(t.data)}};wS.create=e=>new wS({typeName:Bt.ZodAny,...un(e)});qm=class extends gn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return nc(t.data)}};qm.create=e=>new qm({typeName:Bt.ZodUnknown,...un(e)});Tf=class extends gn{_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)});Hw=class extends gn{_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)}};Hw.create=e=>new Hw({typeName:Bt.ZodVoid,...un(e)});Bm=class e extends gn{_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 dd(n,o,n.path,a)))).then(o=>ha.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new dd(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)}};Bm.create=(e,t)=>new Bm({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Bt.ZodArray,...un(t)});_u=class e extends gn{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=Mn.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 dd(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 dd(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 Mn.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 Mn.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Fw(this)}partial(t){let n={};for(let r of Mn.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 Mn.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof ld;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return JKe(Mn.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)});__=class extends gn{_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}};__.create=(e,t)=>new __({options:e,typeName:Bt.ZodUnion,...un(t)});Hm=e=>e instanceof v_?Hm(e.schema):e instanceof fd?Hm(e.innerType()):e instanceof R_?[e.value]:e instanceof A_?e.options:e instanceof w_?Mn.objectValues(e.enum):e instanceof k_?Hm(e._def.innerType):e instanceof b_?[void 0]:e instanceof E_?[null]:e instanceof ld?[void 0,...Hm(e.unwrap())]:e instanceof uh?[null,...Hm(e.unwrap())]:e instanceof ZN||e instanceof x_?Hm(e.unwrap()):e instanceof I_?Hm(e._def.innerType):[],JG=class e extends gn{_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=Hm(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)})}};T_=class extends gn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(YG(s)||YG(o))return Mt;let a=ere(s.value,o.value);return a.valid?((ZG(s)||ZG(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}))}};T_.create=(e,t,n)=>new T_({left:e,right:t,typeName:Bt.ZodIntersection,...un(n)});ch=class e extends gn{_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 dd(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)})};XG=class e extends gn{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 dd(r,a,r.path,a)),value:o._parse(new dd(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 gn?new e({keyType:t,valueType:n,typeName:Bt.ZodRecord,...un(r)}):new e({keyType:AS.create(),valueType:t,typeName:Bt.ZodRecord,...un(n)})}},qw=class extends gn{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 dd(r,a,r.path,[u,"key"])),value:s._parse(new dd(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}}}};qw.create=(e,t,n)=>new qw({valueType:t,keyType:e,typeName:Bt.ZodMap,...un(n)});Bw=class e extends gn{_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 dd(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)}};Bw.create=(e,t)=>new Bw({valueType:e,minSize:null,maxSize:null,typeName:Bt.ZodSet,...un(t)});QG=class e extends gn{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 YN({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Lw(),jm].filter(u=>!!u),issueData:{code:Ie.invalid_arguments,argumentsError:c}})}function i(a,c){return YN({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Lw(),jm].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 kS){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(qm.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(qm.create()),returns:n||qm.create(),typeName:Bt.ZodFunction,...un(r)})}},v_=class extends gn{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})}};v_.create=(e,t)=>new v_({getter:e,typeName:Bt.ZodLazy,...un(t)});R_=class extends gn{_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}};R_.create=(e,t)=>new R_({value:e,typeName:Bt.ZodLiteral,...un(t)});A_=class e extends gn{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return We(n,{expected:Mn.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})}};A_.create=JKe;w_=class extends gn{_parse(t){let n=Mn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==Qe.string&&r.parsedType!==Qe.number){let i=Mn.objectValues(n);return We(r,{expected:Mn.joinValues(i),received:r.parsedType,code:Ie.invalid_type}),Mt}if(this._cache||(this._cache=new Set(Mn.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=Mn.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}};w_.create=(e,t)=>new w_({values:e,typeName:Bt.ZodNativeEnum,...un(t)});kS=class extends gn{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})))}};kS.create=(e,t)=>new kS({type:e,typeName:Bt.ZodPromise,...un(t)});fd=class extends gn{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"?h_(c.value):n.value==="dirty"?h_(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"?h_(a.value):n.value==="dirty"?h_(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(!RS(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=>RS(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:n.value,value:a})):Mt);Mn.assertNever(i)}};fd.create=(e,t,n)=>new fd({schema:e,typeName:Bt.ZodEffects,effect:t,...un(n)});fd.createWithPreprocess=(e,t,n)=>new fd({schema:t,effect:{type:"preprocess",transform:e},typeName:Bt.ZodEffects,...un(n)});ld=class extends gn{_parse(t){return this._getType(t)===Qe.undefined?nc(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ld.create=(e,t)=>new ld({innerType:e,typeName:Bt.ZodOptional,...un(t)});uh=class extends gn{_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)});k_=class extends gn{_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}};k_.create=(e,t)=>new k_({innerType:e,typeName:Bt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...un(t)});I_=class extends gn{_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 Uw(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}};I_.create=(e,t)=>new I_({innerType:e,typeName:Bt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...un(t)});zw=class extends gn{_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}}};zw.create=e=>new zw({typeName:Bt.ZodNaN,...un(e)});Kin=Symbol("zod_brand"),ZN=class extends gn{_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}},JN=class e extends gn{_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(),h_(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})}},x_=class extends gn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(RS(i)&&(i.value=Object.freeze(i.value)),i);return Uw(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};x_.create=(e,t)=>new x_({innerType:e,typeName:Bt.ZodReadonly,...un(t)});Yin={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={}));Zin=(e,t={message:`Input not instance of ${e.name}`})=>XKe(n=>n instanceof e,t),QKe=AS.create,$Ke=m_.create,Jin=zw.create,Xin=g_.create,e3e=y_.create,Qin=S_.create,$in=jw.create,esn=b_.create,tsn=E_.create,nsn=wS.create,rsn=qm.create,isn=Tf.create,ssn=Hw.create,osn=Bm.create,asn=_u.create,csn=_u.strictCreate,usn=__.create,lsn=JG.create,dsn=T_.create,fsn=ch.create,psn=XG.create,hsn=qw.create,msn=Bw.create,gsn=QG.create,ysn=v_.create,Ssn=R_.create,bsn=A_.create,Esn=w_.create,_sn=kS.create,Tsn=fd.create,vsn=ld.create,Rsn=uh.create,Asn=fd.createWithPreprocess,wsn=JN.create,ksn=()=>QKe().optional(),Isn=()=>$Ke().optional(),xsn=()=>e3e().optional(),Osn={string:(e=>AS.create({...e,coerce:!0})),number:(e=>m_.create({...e,coerce:!0})),boolean:(e=>y_.create({...e,coerce:!0})),bigint:(e=>g_.create({...e,coerce:!0})),date:(e=>S_.create({...e,coerce:!0}))},Psn=Mt});var O={};Ar(O,{BRAND:()=>Kin,DIRTY:()=>h_,EMPTY_PATH:()=>Ain,INVALID:()=>Mt,NEVER:()=>Psn,OK:()=>nc,ParseStatus:()=>ha,Schema:()=>gn,ZodAny:()=>wS,ZodArray:()=>Bm,ZodBigInt:()=>g_,ZodBoolean:()=>y_,ZodBranded:()=>ZN,ZodCatch:()=>I_,ZodDate:()=>S_,ZodDefault:()=>k_,ZodDiscriminatedUnion:()=>JG,ZodEffects:()=>fd,ZodEnum:()=>A_,ZodError:()=>Eu,ZodFirstPartyTypeKind:()=>Bt,ZodFunction:()=>QG,ZodIntersection:()=>T_,ZodIssueCode:()=>Ie,ZodLazy:()=>v_,ZodLiteral:()=>R_,ZodMap:()=>qw,ZodNaN:()=>zw,ZodNativeEnum:()=>w_,ZodNever:()=>Tf,ZodNull:()=>E_,ZodNullable:()=>uh,ZodNumber:()=>m_,ZodObject:()=>_u,ZodOptional:()=>ld,ZodParsedType:()=>Qe,ZodPipeline:()=>JN,ZodPromise:()=>kS,ZodReadonly:()=>x_,ZodRecord:()=>XG,ZodSchema:()=>gn,ZodSet:()=>Bw,ZodString:()=>AS,ZodSymbol:()=>jw,ZodTransformer:()=>fd,ZodTuple:()=>ch,ZodType:()=>gn,ZodUndefined:()=>b_,ZodUnion:()=>__,ZodUnknown:()=>qm,ZodVoid:()=>Hw,addIssueToContext:()=>We,any:()=>nsn,array:()=>osn,bigint:()=>Xin,boolean:()=>e3e,coerce:()=>Osn,custom:()=>XKe,date:()=>Qin,datetimeRegex:()=>ZKe,defaultErrorMap:()=>jm,discriminatedUnion:()=>lsn,effect:()=>Tsn,enum:()=>bsn,function:()=>gsn,getErrorMap:()=>Lw,getParsedType:()=>ah,instanceof:()=>Zin,intersection:()=>dsn,isAborted:()=>YG,isAsync:()=>Uw,isDirty:()=>ZG,isValid:()=>RS,late:()=>Yin,lazy:()=>ysn,literal:()=>Ssn,makeIssue:()=>YN,map:()=>hsn,nan:()=>Jin,nativeEnum:()=>Esn,never:()=>isn,null:()=>tsn,nullable:()=>Rsn,number:()=>$Ke,object:()=>asn,objectUtil:()=>Jne,oboolean:()=>xsn,onumber:()=>Isn,optional:()=>vsn,ostring:()=>ksn,pipeline:()=>wsn,preprocess:()=>Asn,promise:()=>_sn,quotelessJson:()=>Tin,record:()=>psn,set:()=>msn,setErrorMap:()=>Rin,strictObject:()=>csn,string:()=>QKe,symbol:()=>$in,transformer:()=>Tsn,tuple:()=>fsn,undefined:()=>esn,union:()=>usn,unknown:()=>rsn,util:()=>Mn,void:()=>ssn});var tre=v(()=>{KG();Qne();zKe();KN();t3e();WG()});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 pd(e){return e&&Object.assign($G,e),$G}var CHr,zm,$G,Gw=v(()=>{CHr=Object.freeze({status:"aborted"});zm=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},$G={}});var or={};Ar(or,{BIGINT_FORMAT_RANGES:()=>r3e,Class:()=>rre,NUMBER_FORMAT_RANGES:()=>dre,aborted:()=>P_,allowsEval:()=>cre,assert:()=>Lsn,assertEqual:()=>Nsn,assertIs:()=>Msn,assertNever:()=>Dsn,assertNotEqual:()=>Csn,assignProp:()=>are,cached:()=>QN,captureStackTrace:()=>t2,cleanEnum:()=>Zsn,cleanRegex:()=>eC,clone:()=>lh,createTransparentProxy:()=>Bsn,defineLazy:()=>ni,esc:()=>O_,escapeRegex:()=>IS,extend:()=>Vsn,finalizeIssue:()=>vf,floatSafeRemainder:()=>ore,getElementAtPath:()=>Usn,getEnumValues:()=>ire,getLengthableOrigin:()=>tC,getParsedType:()=>qsn,getSizableOrigin:()=>i3e,isObject:()=>Vw,isPlainObject:()=>Ww,issue:()=>fre,joinValues:()=>e2,jsonStringifyReplacer:()=>sre,merge:()=>Wsn,normalizeParams:()=>Dt,nullish:()=>$N,numKeys:()=>Hsn,omit:()=>Gsn,optionalKeys:()=>lre,partial:()=>Ksn,pick:()=>zsn,prefixIssues:()=>dh,primitiveTypes:()=>n3e,promiseAllObject:()=>Fsn,propertyKeyTypes:()=>ure,randomString:()=>jsn,required:()=>Ysn,stringifyPrimitive:()=>n2,unwrapMessage:()=>XN});function Nsn(e){return e}function Csn(e){return e}function Msn(e){}function Dsn(e){throw new Error}function Lsn(e){}function ire(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 e2(e,t="|"){return e.map(n=>n2(n)).join(t)}function sre(e,t){return typeof t=="bigint"?t.toString():t}function QN(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function $N(e){return e==null}function eC(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function ore(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 are(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Usn(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function Fsn(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 Bsn(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 n2(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function lre(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function zsn(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 Gsn(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 Vsn(e,t){if(!Ww(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 are(this,"shape",r),r},checks:[]};return lh(e,n)}function Wsn(e,t){return lh(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return are(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function Ksn(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 Ysn(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 P_(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function XN(e){return typeof e=="string"?e:e?.message}function vf(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=XN(e.inst?._zod.def?.error?.(e))??XN(t?.error?.(e))??XN(n.customError?.(e))??XN(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function i3e(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function tC(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function fre(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Zsn(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}var t2,cre,qsn,ure,n3e,dre,r3e,rre,Gm=v(()=>{t2=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};cre=QN(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});qsn=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}`)}},ure=new Set(["string","number","symbol"]),n3e=new Set(["string","number","bigint","boolean","symbol","undefined"]);dre={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]},r3e={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};rre=class{constructor(...t){}}});function o3e(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 a3e(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{Gw();Gm();s3e=(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,sre,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},r2=me("$ZodError",s3e),pre=me("$ZodError",s3e,{Parent:Error})});var c3e,u3e,mre,nC,gre,i2,yre=v(()=>{Gw();hre();Gm();c3e=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 zm;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>vf(c,s,pd())));throw t2(a,i?.callee),a}return o.value},u3e=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,pd())));throw t2(a,i?.callee),a}return o.value},mre=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 zm;return s.issues.length?{success:!1,error:new(e??r2)(s.issues.map(o=>vf(o,i,pd())))}:{success:!0,data:s.value}},nC=mre(pre),gre=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,pd())))}:{success:!0,data:s.value}},i2=gre(pre)});function b3e(){return new RegExp(Xsn,"u")}function x3e(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 O3e(e){return new RegExp(`^${x3e(e)}$`)}function P3e(e){let t=x3e({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(`^${k3e}T(?:${r})$`)}var l3e,d3e,f3e,p3e,h3e,m3e,g3e,y3e,Sre,S3e,Xsn,E3e,_3e,T3e,v3e,R3e,bre,A3e,w3e,k3e,I3e,N3e,C3e,M3e,D3e,L3e,U3e,F3e,s2=v(()=>{l3e=/^[cC][^\s-]{8,}$/,d3e=/^[0-9a-z]+$/,f3e=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,p3e=/^[0-9a-vA-V]{20}$/,h3e=/^[A-Za-z0-9]{27}$/,m3e=/^[a-zA-Z0-9_-]{21}$/,g3e=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,y3e=/^([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})$/,Sre=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)$/,S3e=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Xsn="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";E3e=/^(?:(?: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])$/,_3e=/^(([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})$/,T3e=/^((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])$/,v3e=/^(([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])$/,R3e=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,bre=/^[A-Za-z0-9_-]*$/,A3e=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,w3e=/^\+(?:[0-9]){6,14}[0-9]$/,k3e="(?:(?:\\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])))",I3e=new RegExp(`^${k3e}$`);N3e=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},C3e=/^\d+$/,M3e=/^-?\d+(?:\.\d+)?/i,D3e=/true|false/i,L3e=/null/i,U3e=/^[^A-Z]*$/,F3e=/^[^a-z]*$/});var rc,j3e,_re,Tre,H3e,q3e,B3e,z3e,G3e,rC,V3e,W3e,K3e,Y3e,Z3e,J3e,X3e,o2=v(()=>{Gw();s2();Gm();rc=me("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),j3e={number:"number",bigint:"bigint",object:"date"},_re=me("$ZodCheckLessThan",(e,t)=>{rc.init(e,t);let n=j3e[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=j3e[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})}}),H3e=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):ore(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})}}),q3e=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]=dre[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=C3e)}),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})}}),B3e=me("$ZodCheckMaxLength",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!$N(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=tC(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),z3e=me("$ZodCheckMinLength",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!$N(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=tC(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),G3e=me("$ZodCheckLengthEquals",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!$N(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=tC(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})}}),rC=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=()=>{})}),V3e=me("$ZodCheckRegex",(e,t)=>{rC.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})}}),W3e=me("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=U3e),rC.init(e,t)}),K3e=me("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=F3e),rC.init(e,t)}),Y3e=me("$ZodCheckIncludes",(e,t)=>{rc.init(e,t);let n=IS(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(`^${IS(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})}}),J3e=me("$ZodCheckEndsWith",(e,t)=>{rc.init(e,t);let n=new RegExp(`.*${IS(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})}}),X3e=me("$ZodCheckOverwrite",(e,t)=>{rc.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}})});var a2,vre=v(()=>{a2=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=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){qP("Upgrading socket connection to TLS");let f=n.servername||n.host;return gee.connect({...THe(n,"host","path","port"),socket:i,servername:xm.isIP(f)?void 0:f})}return i}i.destroy();let d=new xm.Socket({writable:!1});return d.readable=!0,t.once("socket",f=>{qP("Replaying proxy buffer for failed request"),f.push(l),f.push(null)}),d}};BP.__initStatic()});import*as j8t from"node:http";import*as H8t from"node:https";import{Readable as q8t}from"node:stream";import{createGzip as B8t}from"node:zlib";function G8t(e){return new q8t({read(){this.push(e),this.push(null)}})}function RHe(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.")}),aP(e,()=>Promise.resolve({}))}let n=t.protocol==="https:",r=V8t(t,e.proxy||(n?process.env.https_proxy:void 0)||process.env.http_proxy),i=n?H8t:j8t,s=e.keepAlive===void 0?!1:e.keepAlive,o=r?new BP(r):new i.Agent({keepAlive:s,maxSockets:30,timeout:2e3}),a=W8t(e,e.httpModule??i,o);return aP(e,a)}function V8t(e,t){let{no_proxy:n}=process.env;if(!n?.split(",").some(i=>e.host.endsWith(i)||e.hostname.endsWith(i)))return t}function W8t(e,t,n){let{hostname:r,pathname:i,port:s,protocol:o,search:a}=new URL(e.url);return function(u){return new Promise((l,d)=>{QR(()=>{let f=G8t(u.body),p={...e.headers};u.body.length>z8t&&(p["content-encoding"]="gzip",f=f.pipe(B8t()));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 z8t,AHe=v(()=>{st();vHe();z8t=1024*32});function wHe(e){if(e===!1)return!1;if(typeof e=="string")return e;let t=iA(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 kHe=v(()=>{st()});import{posix as K8t,sep as Y8t}from"node:path";function IHe(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}function xHe(e=process.argv[1]?tQ(process.argv[1]):process.cwd(),t=Y8t==="\\"){let n=t?IHe(e):e;return r=>{if(!r)return;let i=t?IHe(r):r,{dir:s,base:o,ext:a}=K8t.parse(i);(a===".js"||a===".mjs"||a===".cjs")&&(o=o.slice(0,a.length*-1));let c=decodeURIComponent(o);s||(s=".");let u=s.lastIndexOf("/node_modules");if(u>-1)return`${s.slice(u+14).replace(/\//g,".")}:${c}`;if(s.startsWith(n)){let l=s.slice(n.length+1).replace(/\//g,".");return l?`${l}:${c}`:c}return c}}var OHe=v(()=>{st()});function PHe(e){if(process.env.SENTRY_RELEASE)return process.env.SENTRY_RELEASE;if(qt.SENTRY_RELEASE?.id)return qt.SENTRY_RELEASE.id;let t=process.env.GITHUB_SHA||process.env.CI_MERGE_REQUEST_SOURCE_BRANCH_SHA||process.env.CI_BUILD_REF||process.env.CI_COMMIT_SHA||process.env.BITBUCKET_COMMIT,n=process.env.APPVEYOR_PULL_REQUEST_HEAD_COMMIT||process.env.APPVEYOR_REPO_COMMIT||process.env.CODEBUILD_RESOLVED_SOURCE_VERSION||process.env.AWS_COMMIT_ID||process.env.BUILD_SOURCEVERSION||process.env.GIT_CLONE_COMMIT_HASH||process.env.BUDDY_EXECUTION_REVISION||process.env.BUILDKITE_COMMIT||process.env.CIRCLE_SHA1||process.env.CIRRUS_CHANGE_IN_REPO||process.env.CF_REVISION||process.env.CM_COMMIT||process.env.CF_PAGES_COMMIT_SHA||process.env.DRONE_COMMIT_SHA||process.env.FC_GIT_COMMIT_SHA||process.env.HEROKU_TEST_RUN_COMMIT_VERSION||process.env.HEROKU_BUILD_COMMIT||process.env.HEROKU_SLUG_COMMIT||process.env.RAILWAY_GIT_COMMIT_SHA||process.env.RENDER_GIT_COMMIT||process.env.SEMAPHORE_GIT_SHA||process.env.TRAVIS_PULL_REQUEST_SHA||process.env.VERCEL_GIT_COMMIT_SHA||process.env.VERCEL_GITHUB_COMMIT_SHA||process.env.VERCEL_GITLAB_COMMIT_SHA||process.env.VERCEL_BITBUCKET_COMMIT_SHA||process.env.ZEIT_GITHUB_COMMIT_SHA||process.env.ZEIT_GITLAB_COMMIT_SHA||process.env.ZEIT_BITBUCKET_COMMIT_SHA,r=process.env.CI_COMMIT_ID||process.env.SOURCE_COMMIT||process.env.SOURCE_VERSION||process.env.GIT_COMMIT||process.env.COMMIT_REF||process.env.BUILD_VCS_NUMBER||process.env.CI_COMMIT_SHA;return t||n||r||e}var NHe,CHe=v(()=>{st();OHe();NHe=Cj(BQ(xHe()))});import*as MHe from"node:os";import{threadId as Z8t,isMainThread as J8t}from"worker_threads";var DHe,X8t,cB,LHe=v(()=>{Me();DHe=Re(Jt(),1);st();CA();ff();X8t=6e4,cB=class extends cP{constructor(t){let n=t.includeServerName===!1?void 0:t.serverName||global.process.env.SENTRY_NAME||MHe.hostname(),r={...t,platform:"node",runtime:t.runtime||{name:"node",version:global.process.version},serverName:n};t.openTelemetryInstrumentations&&(0,DHe.registerInstrumentations)({instrumentations:t.openTelemetryInstrumentations}),UE(r,"node"),Z.log(`Initializing Sentry: process: ${process.pid}, thread: ${J8t?"main":`worker-${Z8t}`}.`),super(r),this.getOptions().enableLogs&&(this._logOnExitFlushListener=()=>{nA(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=Cn,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??X8t).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener))}_setupIntegrations(){KX(),super._setupIntegrations()}_getTraceInfoFromScope(t){return t?yje(this,t):[void 0,void 0]}}});import*as FHe from"module";function yee(){if(tHe()&&!qt._sentryEsmLoaderHookRegistered){qt._sentryEsmLoaderHookRegistered=!0;try{let{addHookMessagePort:e}=(0,UHe.createAddHookMessageChannel)();FHe.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 UHe,jHe=v(()=>{st();UHe=Re(bJ(),1);sB()});function uB(){return[vH(),_H(),RH(),AH(),yHe(),sQ(),kH(),UUe(),GUe(),aHe(),uHe(),qje(),Qje(),Mje(),Oje(),dHe(),sHe()]}function See(e={}){return Q8t(e,uB)}function Q8t(e={},t){let n=$8t(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&&yee(),Eje(),Fn().update(n.initialScope),n.spotlight&&!n.integrations.some(({name:s})=>s===hee)&&n.integrations.push(hHe({sidecarUrl:typeof n.spotlight=="string"?n.spotlight:void 0})),UE(n,"node-core");let i=new cB(n);return Fn().setClient(i),i.init(),Z.log(`SDK initialized from ${jP()?"CommonJS":"ESM"}`),i.startClientReportTracking(),n7t(),rje(i),bje(i),process.env.VERCEL&&process.on("SIGTERM",async()=>{await i.flush(200)}),i}function bee(){if(!Qt)return;let e=aje(),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 $8t(e,t){let n=e7t(e.release),r=wHe(e.spotlight),i=t7t(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??RHe,stackParser:MJ(e.stackParser||NHe),release:n,tracesSampleRate:i,spotlight:r,debug:iA(e.debug??process.env.SENTRY_DEBUG)},o=e.integrations,a=e.defaultIntegrations??t(s);return{...s,integrations:MX({defaultIntegrations:a,integrations:o})}}function e7t(e){if(e!==void 0)return e;let t=PHe();if(t!==void 0)return t}function t7t(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 n7t(){if(iA(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let e=process.env.SENTRY_TRACE,t=process.env.SENTRY_BAGGAGE,n=WO(e,t);Fn().setPropagationContext(n)}}var HHe=v(()=>{st();CA();ff();Pje();Dje();Bje();FUe();$je();oHe();VUe();cHe();lHe();fHe();mHe();SHe();AHe();sB();kHe();CHe();LHe();jHe()});function Dr(e,t){e.setAttribute(At,t)}var qHe=v(()=>{st()});function zP(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 BHe=v(()=>{});var sr=v(()=>{WQ();XH();JQ();e$();Ije();xje();ZH();HHe();qHe();BHe();yA()});function s7t(e,t={}){return typeof e.spans=="boolean"?e.spans:!(t.skipOpenTelemetrySetup||!Os(t)&&lB)}function o7t(e={}){return{disableOutgoingRequestInstrumentation:lB,ignoreOutgoingRequestHook:n=>{let r=zP(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=zP(r);if(i.startsWith("data:")){let s=sA(i);n.setAttribute("http.url",s),n.setAttribute(xy,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 GHe,Eee,zHe,lB,r7t,i7t,VHe,WHe=v(()=>{Me();GHe=Re(OCe(),1);st();sr();Eee="Http",zHe="@opentelemetry_sentry-patched/instrumentation-http",lB=pf.major===22&&pf.minor>=12||pf.major===23&&pf.minor>=2||pf.major>=24,r7t=rt(`${Eee}.sentry`,e=>new VE(e)),i7t=rt(Eee,e=>{let t=new GHe.HttpInstrumentation({...e,disableIncomingRequestInstrumentation:!0});try{t._diag=sl.createComponentLogger({namespace:zHe}),t.instrumentationName=zHe}catch{}try{let n={get:()=>!1,set:()=>{}};Object.defineProperty(t,"_httpPatched",n),Object.defineProperty(t,"_httpsPatched",n)}catch{}return t});VHe=(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=RP(r),o=AP(i),a=t&&!n;return{name:Eee,setup(c){let u=c.getOptions();a&&Os(u)&&o.setup(c)},setupOnce(){let c=ct()?.getOptions()||{},u=s7t(e,c);s.setupOnce();let l={breadcrumbs:e.breadcrumbs,propagateTraceInOutgoingRequests:typeof e.tracePropagation=="boolean"?e.tracePropagation:lB||!u,createSpansForOutgoingRequests:lB,spans:e.spans,ignoreOutgoingRequests:e.ignoreOutgoingRequests,outgoingRequestHook:(d,f)=>{let p=zP(f);if(p.startsWith("data:")){let h=sA(p);d.setAttribute("http.url",h),d.setAttribute(xy,h),d.updateName(`${f.method||"GET"} ${h}`)}e.instrumentation?.requestHook?.(d,f)},outgoingResponseHook:e.instrumentation?.responseHook,outgoingRequestApplyCustomAttributes:e.instrumentation?.applyCustomAttributesOnSpan};if(r7t(l),u){let d=o7t(e);i7t(d)}},processEvent(c){return o.processEvent(c)}}}});var KHe=w(MA=>{"use strict";Object.defineProperty(MA,"__esModule",{value:!0});MA.PACKAGE_NAME=MA.PACKAGE_VERSION=void 0;MA.PACKAGE_VERSION="0.24.0";MA.PACKAGE_NAME="@opentelemetry/instrumentation-undici"});var ZHe=w(fB=>{"use strict";Object.defineProperty(fB,"__esModule",{value:!0});fB.UndiciInstrumentation=void 0;var _ee=Y("diagnostics_channel"),a7t=Y("url"),GP=Jt(),pl=(Me(),ke(Ze)),dB=pr(),Vs=(Nn(),ke(Mr)),YHe=KHe(),Tee=class extends GP.InstrumentationBase{_recordFromReq=new WeakMap;constructor(t={}){super(YHe.PACKAGE_NAME,YHe.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)_ee.subscribe?.(t,n),o=()=>_ee.unsubscribe?.(t,n);else{let a=_ee.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,dB.hrTime)(),o;try{o=new a7t.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,GP.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,GP.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,GP.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,dB.hrTimeToMilliseconds)((0,dB.hrTimeDuration)(n,(0,dB.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"}};fB.UndiciInstrumentation=Tee});var JHe=w(pB=>{"use strict";Object.defineProperty(pB,"__esModule",{value:!0});pB.UndiciInstrumentation=void 0;var c7t=ZHe();Object.defineProperty(pB,"UndiciInstrumentation",{enumerable:!0,get:function(){return c7t.UndiciInstrumentation}})});function XHe(e,t="/"){let n=`${e}`;return n.endsWith("/")&&t.startsWith("/")?`${n}${t.slice(1)}`:!n.endsWith("/")&&!t.startsWith("/")?`${n}/${t}`:`${n}${t}`}function f7t(e,t={}){return typeof e.spans=="boolean"?e.spans:!t.skipOpenTelemetrySetup&&Os(t)}function p7t(e={}){return{requireParentforSpans:!1,ignoreRequestHook:n=>{let r=XHe(n.origin,n.path),i=e.ignoreOutgoingRequests;return!!(i&&r&&i(r))},startSpanHook:n=>{let r=XHe(n.origin,n.path);if(r.startsWith("data:")){let i=sA(r);return{[At]:"auto.http.otel.node_fetch","http.url":i,[xy]:i,[Kl]:`${n.method||"GET"} ${i}`}}return{[At]:"auto.http.otel.node_fetch"}},requestHook:e.requestHook,responseHook:e.responseHook,headersToSpanAttributes:e.headersToSpanAttributes}}var QHe,$He,u7t,l7t,d7t,eqe,tqe=v(()=>{QHe=Re(JHe(),1);st();sr();$He="NodeFetch",u7t=rt($He,QHe.UndiciInstrumentation,e=>p7t(e)),l7t=rt(`${$He}.sentry`,WE,e=>e),d7t=((e={})=>({name:"NodeFetch",setupOnce(){f7t(e,ct()?.getOptions())&&u7t(e),l7t(e)}})),eqe=d7t});var hB=w(VP=>{"use strict";Object.defineProperty(VP,"__esModule",{value:!0});VP.ExpressLayerType=void 0;var h7t;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(h7t=VP.ExpressLayerType||(VP.ExpressLayerType={}))});var mB=w(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});WP.AttributeNames=void 0;var m7t;(function(e){e.EXPRESS_TYPE="express.type",e.EXPRESS_NAME="express.name"})(m7t=WP.AttributeNames||(WP.AttributeNames={}))});var vee=w(DA=>{"use strict";Object.defineProperty(DA,"__esModule",{value:!0});DA._LAYERS_STORE_PROPERTY=DA.kLayerPatched=void 0;DA.kLayerPatched=Symbol("express-layer-patched");DA._LAYERS_STORE_PROPERTY="__ot_middlewares"});var iqe=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 Ree=hB(),LA=mB(),XE=vee(),g7t=(e,t)=>(Array.isArray(e[XE._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,XE._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),t===void 0?{isLayerPathStored:!1}:(e[XE._LAYERS_STORE_PROPERTY].push(t),{isLayerPathStored:!0}));Ws.storeLayerPath=g7t;var y7t=(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=y7t;var S7t=(e,t,n)=>{if(t.name==="router"){let r=(0,Ws.getRouterPath)("",t),i=r||n||e||"/";return{attributes:{[LA.AttributeNames.EXPRESS_NAME]:i,[LA.AttributeNames.EXPRESS_TYPE]:Ree.ExpressLayerType.ROUTER},name:`router - ${i}`}}else return t.name==="bound dispatch"||t.name==="handle"?{attributes:{[LA.AttributeNames.EXPRESS_NAME]:(e||n)??"request handler",[LA.AttributeNames.EXPRESS_TYPE]:Ree.ExpressLayerType.REQUEST_HANDLER},name:`request handler${t.path?` - ${e||n}`:""}`}:{attributes:{[LA.AttributeNames.EXPRESS_NAME]:t.name,[LA.AttributeNames.EXPRESS_TYPE]:Ree.ExpressLayerType.MIDDLEWARE},name:`middleware - ${t.name}`}};Ws.getLayerMetadata=S7t;var b7t=(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")},E7t=(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(b7t(e,r))return!0}catch{}return!1};Ws.isLayerIgnored=E7t;var _7t=e=>e instanceof Error?[e,e.message]:[String(e),String(e)];Ws.asErrorAndMessage=_7t;var T7t=e=>{let t=e[0];return Array.isArray(t)?t.map(n=>nqe(n)||"").join(","):nqe(t)};Ws.getLayerPath=T7t;var nqe=e=>{if(typeof e=="string")return e;if(e instanceof RegExp||typeof e=="number")return e.toString()};function rqe(e){let n=(Array.isArray(e[XE._LAYERS_STORE_PROPERTY])?e[XE._LAYERS_STORE_PROPERTY]:[]).filter(r=>r!=="/"&&r!=="/*");return n.length===1&&n[0]==="*"?"*":n.join("").replace(/\/{2,}/g,"/")}Ws.getConstructedRoute=rqe;function v7t(e){let t=Array.isArray(e[XE._LAYERS_STORE_PROPERTY])?e[XE._LAYERS_STORE_PROPERTY]:[];if(t.length===0)return;if(t.every(s=>s==="/"))return e.originalUrl==="/"?"/":void 0;let n=rqe(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)||R7t(r))?r:void 0}Ws.getActualMatchedRoute=v7t;function R7t(e){return e.includes(":")||e.includes("*")}});var sqe=w(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.PACKAGE_NAME=UA.PACKAGE_VERSION=void 0;UA.PACKAGE_VERSION="0.62.0";UA.PACKAGE_NAME="@opentelemetry/instrumentation-express"});var lqe=w(yB=>{"use strict";Object.defineProperty(yB,"__esModule",{value:!0});yB.ExpressInstrumentation=void 0;var oqe=pr(),hu=(Me(),ke(Ze)),aqe=hB(),cqe=mB(),Jp=iqe(),uqe=sqe(),FA=Jt(),A7t=(Nn(),ke(Mr)),gB=vee(),Aee=class extends FA.InstrumentationBase{constructor(t={}){super(uqe.PACKAGE_NAME,uqe.PACKAGE_VERSION,t)}init(){return[new FA.InstrumentationNodeModuleDefinition("express",[">=4.0.0 <6"],t=>{let n=typeof t?.Router?.prototype?.route=="function",r=n?t.Router.prototype:t.Router;return(0,FA.isWrapped)(r.route)&&this._unwrap(r,"route"),this._wrap(r,"route",this._getRoutePatch()),(0,FA.isWrapped)(r.use)&&this._unwrap(r,"use"),this._wrap(r,"use",this._getRouterUsePatch()),(0,FA.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[gB.kLayerPatched]!==!0&&(t[gB.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={[A7t.ATTR_HTTP_ROUTE]:l},f=(0,Jp.getLayerMetadata)(u,t,n),p=f.attributes[cqe.AttributeNames.EXPRESS_TYPE],h=(0,oqe.getRPCMetadata)(hu.context.active());if(h?.type===oqe.RPCType.HTTP&&(h.route=l),(0,Jp.isLayerIgnored)(f.name,p,r.getConfig()))return p===aqe.ExpressLayerType.MIDDLEWARE&&o[gB._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,FA.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[cqe.AttributeNames.EXPRESS_TYPE]===aqe.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[gB._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}}};yB.ExpressInstrumentation=Aee});var dqe=w(Jy=>{"use strict";Object.defineProperty(Jy,"__esModule",{value:!0});Jy.AttributeNames=Jy.ExpressLayerType=Jy.ExpressInstrumentation=void 0;var w7t=lqe();Object.defineProperty(Jy,"ExpressInstrumentation",{enumerable:!0,get:function(){return w7t.ExpressInstrumentation}});var k7t=hB();Object.defineProperty(Jy,"ExpressLayerType",{enumerable:!0,get:function(){return k7t.ExpressLayerType}});var I7t=mB();Object.defineProperty(Jy,"AttributeNames",{enumerable:!0,get:function(){return I7t.AttributeNames}})});var So,QE=v(()=>{So=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});function x7t(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 O7t(e,t){if(vn()===Wl())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 fqe,pqe,hqe,P7t,mqe,gqe=v(()=>{fqe=Re(dqe(),1);st();sr();QE();pqe="Express";hqe=rt(pqe,()=>new fqe.ExpressInstrumentation({requestHook:e=>x7t(e),spanNameHook:(e,t)=>O7t(e,t)})),P7t=(()=>({name:pqe,setupOnce(){hqe()}})),mqe=P7t});var yqe=w(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});KP.SeverityNumber=void 0;var N7t;(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"})(N7t=KP.SeverityNumber||(KP.SeverityNumber={}))});var EB=w(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.NOOP_LOGGER=jA.NoopLogger=void 0;var bB=class{emit(t){}};jA.NoopLogger=bB;jA.NOOP_LOGGER=new bB});var Sqe=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 C7t(e,t,n){return r=>r===e?t:n}Xp.makeGetter=C7t;Xp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var wee=w(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.NOOP_LOGGER_PROVIDER=HA.NoopLoggerProvider=void 0;var M7t=EB(),_B=class{getLogger(t,n,r){return new M7t.NoopLogger}};HA.NoopLoggerProvider=_B;HA.NOOP_LOGGER_PROVIDER=new _B});var bqe=w(TB=>{"use strict";Object.defineProperty(TB,"__esModule",{value:!0});TB.ProxyLogger=void 0;var D7t=EB(),kee=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):D7t.NOOP_LOGGER}};TB.ProxyLogger=kee});var Eqe=w(vB=>{"use strict";Object.defineProperty(vB,"__esModule",{value:!0});vB.ProxyLoggerProvider=void 0;var L7t=wee(),U7t=bqe(),Iee=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new U7t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:L7t.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)}};vB.ProxyLoggerProvider=Iee});var Tqe=w(RB=>{"use strict";Object.defineProperty(RB,"__esModule",{value:!0});RB.LogsAPI=void 0;var $l=Sqe(),F7t=wee(),_qe=Eqe(),xee=class e{constructor(){this._proxyLoggerProvider=new _qe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return $l._global[$l.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():($l._global[$l.GLOBAL_LOGS_API_KEY]=(0,$l.makeGetter)($l.API_BACKWARDS_COMPATIBILITY_VERSION,t,F7t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=$l._global[$l.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call($l._global,$l.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete $l._global[$l.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new _qe.ProxyLoggerProvider}};RB.LogsAPI=xee});var Oee=w(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});Qp.logs=Qp.NoopLogger=Qp.NOOP_LOGGER=Qp.SeverityNumber=void 0;var j7t=yqe();Object.defineProperty(Qp,"SeverityNumber",{enumerable:!0,get:function(){return j7t.SeverityNumber}});var vqe=EB();Object.defineProperty(Qp,"NOOP_LOGGER",{enumerable:!0,get:function(){return vqe.NOOP_LOGGER}});Object.defineProperty(Qp,"NoopLogger",{enumerable:!0,get:function(){return vqe.NoopLogger}});var H7t=Tqe();Qp.logs=H7t.LogsAPI.getInstance()});var Rqe=w(qA=>{"use strict";Object.defineProperty(qA,"__esModule",{value:!0});qA.disableInstrumentations=qA.enableInstrumentations=void 0;function q7t(e,t,n,r){for(let i=0,s=e.length;it.disable())}qA.disableInstrumentations=B7t});var kqe=w(AB=>{"use strict";Object.defineProperty(AB,"__esModule",{value:!0});AB.registerInstrumentations=void 0;var Aqe=(Me(),ke(Ze)),z7t=Oee(),wqe=Rqe();function G7t(e){let t=e.tracerProvider||Aqe.trace.getTracerProvider(),n=e.meterProvider||Aqe.metrics.getMeterProvider(),r=e.loggerProvider||z7t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,wqe.enableInstrumentations)(i,t,n,r),()=>{(0,wqe.disableInstrumentations)(i)}}AB.registerInstrumentations=G7t});var Lqe=w(wB=>{"use strict";Object.defineProperty(wB,"__esModule",{value:!0});wB.satisfies=void 0;var Mee=(Me(),ke(Ze)),Nqe=/^(?: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-]+)*))?$/,V7t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,W7t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function K7t(e,t,n){if(!Y7t(e))return Mee.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=Q7t(e);if(!r)return!1;let i=[],s=Cqe(r,t,i,n);return s&&!n?.includePrerelease?J7t(r,i):s}wB.satisfies=K7t;function Y7t(e){return typeof e=="string"&&Nqe.test(e)}function Cqe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Pee(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=bJt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!Pee(e,s,n,r))return!1;return!0}return Pee(e,t,n,r)}function Pee(e,t,n,r){if(t=X7t(t,r),t.includes(" "))return Cqe(e,t,n,r);{let i=$7t(t);return n.push(i),Z7t(e,i)}}function Z7t(e,t){if(t.invalid)return!1;if(!t.version||Cee(t.version))return!0;let n=xqe(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=xqe(r,i)}return W7t[t.op]?.includes(n)}function J7t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function X7t(e,t){return e=e.trim(),e=yJt(e,t),e=gJt(e),e=SJt(e,t),e=e.trim(),e}function Dc(e){return!e||e.toLowerCase()==="x"||e==="*"}function Q7t(e){let t=e.match(Nqe);if(!t){Mee.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 $7t(e){if(!e)return{};let t=e.match(V7t);if(!t)return Mee.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 Cee(e){return e==="*"||e==="x"||e==="X"}function Iqe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function eJt(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 tJt(e,t){if(Cee(e)||Cee(t))return 0;let[n,r]=eJt(Iqe(e),Iqe(t));return n>r?1:n)?=?)",Oqe=`(?:${Dqe}|${nJt})`,iJt=`(?:-(${Oqe}(?:\\.${Oqe})*))`,Pqe=`${Mqe}+`,sJt=`(?:\\+(${Pqe}(?:\\.${Pqe})*))`,Nee=`${Dqe}|x|X|\\*`,YP=`[v=\\s]*(${Nee})(?:\\.(${Nee})(?:\\.(${Nee})(?:${iJt})?${sJt}?)?)?`,oJt=`^${rJt}\\s*${YP}$`,aJt=new RegExp(oJt),cJt=`^\\s*(${YP})\\s+-\\s+(${YP})\\s*$`,uJt=new RegExp(cJt),lJt="(?:~>?)",dJt=`^${lJt}${YP}$`,fJt=new RegExp(dJt),pJt="(?:\\^)",hJt=`^${pJt}${YP}$`,mJt=new RegExp(hJt);function gJt(e){let t=fJt;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 yJt(e,t){let n=mJt,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 SJt(e,t){let n=aJt;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 bJt(e,t){let n=uJt;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 Dee=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 EJt=(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=EJt;var _Jt=(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=_Jt;var TJt=(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=TJt;var vJt=(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=vJt;function JP(e){e&&e.logger&&(typeof e.logger!="function"?Lc("new logger isn't a function, not replacing"):Lc=e.logger)}da.default=JP;JP.wrap=da.wrap;JP.massWrap=da.massWrap;JP.unwrap=da.unwrap;JP.massUnwrap=da.massUnwrap});var Uqe=w(IB=>{"use strict";Object.defineProperty(IB,"__esModule",{value:!0});IB.InstrumentationAbstract=void 0;var Lee=(Me(),ke(Ze)),RJt=Oee(),kB=Dee(),Uee=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=Lee.diag.createComponentLogger({namespace:t}),this._tracer=Lee.trace.getTracer(t,n),this._meter=Lee.metrics.getMeter(t,n),this._logger=RJt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=kB.wrap;_unwrap=kB.unwrap;_massWrap=kB.massWrap;_massUnwrap=kB.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)}}};IB.InstrumentationAbstract=Uee});var Fqe=w(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});Xy.ModuleNameTrie=Xy.ModuleNameSeparator=void 0;Xy.ModuleNameSeparator="/";var xB=class{hooks=[];children=new Map},Fee=class{_trie=new xB;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(Xy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new xB,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(Xy.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))}};Xy.ModuleNameTrie=Fee});var Hqe=w(OB=>{"use strict";Object.defineProperty(OB,"__esModule",{value:!0});OB.RequireInTheMiddleSingleton=void 0;var AJt=RE(),jqe=Y("path"),jee=Fqe(),wJt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),Hee=class e{_moduleNameTrie=new jee.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new AJt.Hook(null,{internals:!0},(t,n,r)=>{let i=kJt(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 wJt?new e:this._instance=this._instance??new e}};OB.RequireInTheMiddleSingleton=Hee;function kJt(e){return jqe.sep!==jee.ModuleNameSeparator?e.split(jqe.sep).join(jee.ModuleNameSeparator):e}});var Vqe=w(XP=>{var qqe=[],qee=new WeakMap,Bqe=new WeakMap,zqe=new Map,Gqe=[],IJt={set(e,t,n){let r=qee.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=Bqe.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=qee.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function xJt(e,t,n,r,i){zqe.set(e,i),qee.set(t,n),Bqe.set(t,r);let s=new Proxy(t,IJt);qqe.forEach(o=>o(e,s,i)),Gqe.push([e,s,i])}XP.register=xJt;XP.importHooks=qqe;XP.specifiers=zqe;XP.toHook=Gqe});var Zqe=w((AMr,zA)=>{var Wqe=Y("path"),OJt=xO(),{fileURLToPath:PJt}=Y("url"),{MessageChannel:NJt}=Y("worker_threads"),{isBuiltin:Bee}=Y("module");Bee||(Bee=()=>!0);var{importHooks:zee,specifiers:CJt,toHook:MJt}=Vqe();function Kqe(e){zee.push(e),MJt.forEach(([t,n,r])=>e(t,n,r))}function Yqe(e){let t=zee.indexOf(e);t>-1&&zee.splice(t,1)}function BA(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var Gee;function DJt(){let{port1:e,port2:t}=new NJt,n=0,r;Gee=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 QP(e,t,n){if(!(this instanceof QP))return new QP(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;Gee&&Array.isArray(e)&&Gee(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);Bee(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=PJt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=OJt(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)BA(n,s,u,void 0);else if(d===i){if(!l)BA(n,s,i,l);else if(l.endsWith(CJt.get(a)))BA(n,s,i,l);else if(r){let f=i+Wqe.sep+Wqe.relative(l,u);BA(n,s,f,l)}}else d===o&&BA(n,s,o,l);else BA(n,s,i,l)},Kqe(this._iitmHook)}QP.prototype.unhook=function(){Yqe(this._iitmHook)};zA.exports=QP;zA.exports.Hook=QP;zA.exports.addHook=Kqe;zA.exports.removeHook=Yqe;zA.exports.createAddHookMessageChannel=DJt});var Vee=w(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.isWrapped=Qy.safeExecuteInTheMiddleAsync=Qy.safeExecuteInTheMiddle=void 0;function LJt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}Qy.safeExecuteInTheMiddle=LJt;async function UJt(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}}Qy.safeExecuteInTheMiddleAsync=UJt;function FJt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}Qy.isWrapped=FJt});var Qqe=w(PB=>{"use strict";Object.defineProperty(PB,"__esModule",{value:!0});PB.InstrumentationBase=void 0;var $P=Y("path"),Jqe=Y("util"),jJt=Lqe(),Wee=Dee(),HJt=Uqe(),qJt=Hqe(),BJt=Zqe(),eN=(Me(),ke(Ze)),zJt=RE(),GJt=Y("fs"),VJt=Vee(),Kee=class extends HJt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=qJt.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,VJt.isWrapped)(t[n])&&this._unwrap(t,n),Jqe.types.isProxy(t)){let i=(0,Wee.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,Wee.wrap)(t,n,r)};_unwrap=(t,n)=>Jqe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,Wee.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{eN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){eN.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{eN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){eN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=Y.resolve(n);Y.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,GJt.readFileSync)($P.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{eN.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 Xqe(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=$P.normalize(r);return o.filter(u=>u.name===a&&Xqe(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&&$P.isAbsolute(a)){let u=$P.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=$P.isAbsolute(t.name)?new zJt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new BJt.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}};PB.InstrumentationBase=Kee;function Xqe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,jJt.satisfies)(t,r,{includePrerelease:n}))}});var $qe=w(NB=>{"use strict";Object.defineProperty(NB,"__esModule",{value:!0});NB.normalize=void 0;var WJt=Y("path");Object.defineProperty(NB,"normalize",{enumerable:!0,get:function(){return WJt.normalize}})});var eBe=w(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.normalize=GA.InstrumentationBase=void 0;var KJt=Qqe();Object.defineProperty(GA,"InstrumentationBase",{enumerable:!0,get:function(){return KJt.InstrumentationBase}});var YJt=$qe();Object.defineProperty(GA,"normalize",{enumerable:!0,get:function(){return YJt.normalize}})});var Yee=w(VA=>{"use strict";Object.defineProperty(VA,"__esModule",{value:!0});VA.normalize=VA.InstrumentationBase=void 0;var tBe=eBe();Object.defineProperty(VA,"InstrumentationBase",{enumerable:!0,get:function(){return tBe.InstrumentationBase}});Object.defineProperty(VA,"normalize",{enumerable:!0,get:function(){return tBe.normalize}})});var nBe=w(CB=>{"use strict";Object.defineProperty(CB,"__esModule",{value:!0});CB.InstrumentationNodeModuleDefinition=void 0;var Zee=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}};CB.InstrumentationNodeModuleDefinition=Zee});var rBe=w(MB=>{"use strict";Object.defineProperty(MB,"__esModule",{value:!0});MB.InstrumentationNodeModuleFile=void 0;var ZJt=Yee(),Jee=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,ZJt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};MB.InstrumentationNodeModuleFile=Jee});var iBe=w($E=>{"use strict";Object.defineProperty($E,"__esModule",{value:!0});$E.semconvStabilityFromStr=$E.SemconvStability=void 0;var DB;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(DB=$E.SemconvStability||($E.SemconvStability={}));function JJt(e,t){let n=DB.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=DB.DUPLICATE;break}else i.toLowerCase()===e&&(n=DB.STABLE);return n}$E.semconvStabilityFromStr=JJt});var oBe=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 XJt=kqe();Object.defineProperty(Ks,"registerInstrumentations",{enumerable:!0,get:function(){return XJt.registerInstrumentations}});var QJt=Yee();Object.defineProperty(Ks,"InstrumentationBase",{enumerable:!0,get:function(){return QJt.InstrumentationBase}});var $Jt=nBe();Object.defineProperty(Ks,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return $Jt.InstrumentationNodeModuleDefinition}});var eXt=rBe();Object.defineProperty(Ks,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return eXt.InstrumentationNodeModuleFile}});var Xee=Vee();Object.defineProperty(Ks,"isWrapped",{enumerable:!0,get:function(){return Xee.isWrapped}});Object.defineProperty(Ks,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return Xee.safeExecuteInTheMiddle}});Object.defineProperty(Ks,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return Xee.safeExecuteInTheMiddleAsync}});var sBe=iBe();Object.defineProperty(Ks,"SemconvStability",{enumerable:!0,get:function(){return sBe.SemconvStability}});Object.defineProperty(Ks,"semconvStabilityFromStr",{enumerable:!0,get:function(){return sBe.semconvStabilityFromStr}})});var aBe=w((LMr,tXt)=>{tXt.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 uBe=w(e_=>{"use strict";Object.defineProperty(e_,"__esModule",{value:!0});e_.range=e_.balanced=void 0;var nXt=(e,t,n)=>{let r=e instanceof RegExp?cBe(e,n):e,i=t instanceof RegExp?cBe(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=nXt;var cBe=(e,t)=>{let n=t.match(e);return n?n[0]:null},rXt=(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=rXt});var gBe=w(WA=>{"use strict";Object.defineProperty(WA,"__esModule",{value:!0});WA.EXPANSION_MAX=void 0;WA.expand=gXt;var lBe=uBe(),dBe="\0SLASH"+Math.random()+"\0",fBe="\0OPEN"+Math.random()+"\0",$ee="\0CLOSE"+Math.random()+"\0",pBe="\0COMMA"+Math.random()+"\0",hBe="\0PERIOD"+Math.random()+"\0",iXt=new RegExp(dBe,"g"),sXt=new RegExp(fBe,"g"),oXt=new RegExp($ee,"g"),aXt=new RegExp(pBe,"g"),cXt=new RegExp(hBe,"g"),uXt=/\\\\/g,lXt=/\\{/g,dXt=/\\}/g,fXt=/\\,/g,pXt=/\\\./g;WA.EXPANSION_MAX=1e5;function Qee(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function hXt(e){return e.replace(uXt,dBe).replace(lXt,fBe).replace(dXt,$ee).replace(fXt,pBe).replace(pXt,hBe)}function mXt(e){return e.replace(iXt,"\\").replace(sXt,"{").replace(oXt,"}").replace(aXt,",").replace(cXt,".")}function mBe(e){if(!e)return[""];let t=[],n=(0,lBe.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=mBe(s);return s.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function gXt(e,t={}){if(!e)return[];let{max:n=WA.EXPANSION_MAX}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),tN(hXt(e),n,!0).map(mXt)}function yXt(e){return"{"+e+"}"}function SXt(e){return/^-?0\d/.test(e)}function bXt(e,t){return e<=t}function EXt(e,t){return e>=t}function tN(e,t,n){let r=[],i=(0,lBe.balanced)("{","}",e);if(!i)return[e];let s=i.pre,o=i.post.length?tN(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+$ee+i.post,tN(e,t,!0)):[e];let d;if(u)d=i.body.split(/\.\./);else if(d=mBe(i.body),d.length===1&&d[0]!==void 0&&(d=tN(d[0],t,!1).map(yXt),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=Qee(d[0]),h=Qee(d[1]),m=Math.max(d[0].length,d[1].length),g=d.length===3&&d[2]!==void 0?Math.max(Math.abs(Qee(d[2])),1):1,y=bXt;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(LB,"__esModule",{value:!0});LB.assertValidPattern=void 0;var _Xt=1024*64,TXt=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>_Xt)throw new TypeError("pattern is too long")};LB.assertValidPattern=TXt});var bBe=w(UB=>{"use strict";Object.defineProperty(UB,"__esModule",{value:!0});UB.parseClass=void 0;var vXt={"[: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]},nN=e=>e.replace(/[[\]\\-]/g,"\\$&"),RXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),SBe=e=>e.join(""),AXt=(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(nN(d)+"-"+nN(m)):m===d&&r.push(nN(m)),d="",s++;continue}if(e.startsWith("-]",s+1)){r.push(nN(m+"-")),s+=2;continue}if(e.startsWith("-",s+1)){d=m,s+=2;continue}r.push(nN(m)),s++}if(l{"use strict";Object.defineProperty(FB,"__esModule",{value:!0});FB.unescape=void 0;var wXt=(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");FB.unescape=wXt});var nte=w(zB=>{"use strict";var mu;Object.defineProperty(zB,"__esModule",{value:!0});zB.AST=void 0;var kXt=bBe(),HB=jB(),IXt=new Set(["!","?","+","*","@"]),ete=e=>IXt.has(e),EBe=e=>ete(e.type),xXt=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),OXt=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),PXt=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),_Be=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),NXt="(?!(?:^|/)\\.\\.?(?:$|/))",qB="(?!\\.)",CXt=new Set(["[","."]),MXt=new Set(["..","."]),DXt=new Set("().*{}+?[]^$\\!"),LXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),tte="[^/]",TBe=tte+"*?",vBe=tte+"+?",UXt=0,BB=class{type;#t;#n;#i=!1;#e=[];#r;#s;#c;#u=!1;#o;#a;#l=!1;id=++UXt;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&&MXt.has(this.#e[0]))){let h=CXt,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?NXt:g?qB:""}let d="";return this.isEnd()&&this.#t.#u&&this.#r?.type==="!"&&(d="(?:$|\\/)"),[l+u+d,(0,HB.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,HB.unescape)(this.toString()),!1,!1]}let o=!r||t||n||!qB?"":this.#y(!0);o===s&&(o=""),o&&(s=`(?:${s})(?:${o})*?`);let a="";if(this.type==="!"&&this.#l)a=(this.isStart()&&!n?qB:"")+vBe;else{let c=this.type==="!"?"))"+(this.isStart()&&!n&&!t?qB:"")+TBe+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+s+c}return[a,(0,HB.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(GB,"__esModule",{value:!0});GB.escape=void 0;var FXt=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");GB.escape=FXt});var OBe=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 jXt=gBe(),VB=yBe(),wBe=nte(),HXt=rte(),qXt=jB(),BXt=(e,t,n={})=>((0,VB.assertValidPattern)(t),!n.nocomment&&t.charAt(0)==="#"?!1:new t_(t,n).match(e));it.minimatch=BXt;var zXt=/^\*+([^+@!?*[(]*)$/,GXt=e=>t=>!t.startsWith(".")&&t.endsWith(e),VXt=e=>t=>t.endsWith(e),WXt=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),KXt=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),YXt=/^\*+\.\*+$/,ZXt=e=>!e.startsWith(".")&&e.includes("."),JXt=e=>e!=="."&&e!==".."&&e.includes("."),XXt=/^\.\*+$/,QXt=e=>e!=="."&&e!==".."&&e.startsWith("."),$Xt=/^\*+$/,eQt=e=>e.length!==0&&!e.startsWith("."),tQt=e=>e.length!==0&&e!=="."&&e!=="..",nQt=/^\?+([^+@!?*[(]*)?$/,rQt=([e,t=""])=>{let n=kBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},iQt=([e,t=""])=>{let n=IBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},sQt=([e,t=""])=>{let n=IBe([e]);return t?r=>n(r)&&r.endsWith(t):n},oQt=([e,t=""])=>{let n=kBe([e]);return t?r=>n(r)&&r.endsWith(t):n},kBe=([e])=>{let t=e.length;return n=>n.length===t&&!n.startsWith(".")},IBe=([e])=>{let t=e.length;return n=>n.length===t&&n!=="."&&n!==".."},xBe=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",RBe={win32:{sep:"\\"},posix:{sep:"/"}};it.sep=xBe==="win32"?RBe.win32.sep:RBe.posix.sep;it.minimatch.sep=it.sep;it.GLOBSTAR=Symbol("globstar **");it.minimatch.GLOBSTAR=it.GLOBSTAR;var aQt="[^/]",cQt=aQt+"*?",uQt="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",lQt="(?:(?!(?:\\/|^)\\.).)*?",dQt=(e,t={})=>n=>(0,it.minimatch)(n,e,t);it.filter=dQt;it.minimatch.filter=it.filter;var ed=(e,t={})=>Object.assign({},e,t),fQt=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,ed(e,s)),{Minimatch:class extends t.Minimatch{constructor(i,s={}){super(i,ed(e,s))}static defaults(i){return t.defaults(ed(e,i)).Minimatch}},AST:class extends t.AST{constructor(i,s,o={}){super(i,s,ed(e,o))}static fromGlob(i,s={}){return t.AST.fromGlob(i,ed(e,s))}},unescape:(r,i={})=>t.unescape(r,ed(e,i)),escape:(r,i={})=>t.escape(r,ed(e,i)),filter:(r,i={})=>t.filter(r,ed(e,i)),defaults:r=>t.defaults(ed(e,r)),makeRe:(r,i={})=>t.makeRe(r,ed(e,i)),braceExpand:(r,i={})=>t.braceExpand(r,ed(e,i)),match:(r,i,s={})=>t.match(r,i,ed(e,s)),sep:t.sep,GLOBSTAR:it.GLOBSTAR})};it.defaults=fQt;it.minimatch.defaults=it.defaults;var pQt=(e,t={})=>((0,VB.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,jXt.expand)(e,{max:t.braceExpandMax}));it.braceExpand=pQt;it.minimatch.braceExpand=it.braceExpand;var hQt=(e,t={})=>new t_(e,t).makeRe();it.makeRe=hQt;it.minimatch.makeRe=it.makeRe;var mQt=(e,t,n={})=>{let r=new t_(t,n);return e=e.filter(i=>r.match(i)),r.options.nonull&&!e.length&&e.push(t),e};it.match=mQt;it.minimatch.match=it.match;var ABe=/[?*]|[+@!]\(.*?\)|\[|\]/,gQt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),t_=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,n={}){(0,VB.assertValidPattern)(t),n=n||{},this.options=n,this.maxGlobstarRecursion=n.maxGlobstarRecursion??200,this.pattern=t,this.platform=n.platform||xBe,this.isWindows=this.platform==="win32";let r="allowWindowsEscape";this.windowsPathsNoEscape=!!n.windowsPathsNoEscape||n[r]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!n.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!n.nonegate,this.comment=!1,this.empty=!1,this.partial=!!n.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=n.windowsNoMagicRoot!==void 0?n.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let n of t)if(typeof n!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,n=this.options;if(!n.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],n.debug&&(this.debug=(...s)=>console.error(...s)),this.debug(this.pattern,this.globSet);let r=this.globSet.map(s=>this.slashSplit(s));this.globParts=this.preprocess(r),this.debug(this.pattern,this.globParts);let i=this.globParts.map((s,o,a)=>{if(this.isWindows&&this.windowsNoMagicRoot){let c=s[0]===""&&s[1]===""&&(s[2]==="?"||!ABe.test(s[2]))&&!ABe.test(s[3]),u=/^[a-z]:/i.test(s[0]);if(c)return[...s.slice(0,4),...s.slice(4).map(l=>this.parse(l))];if(u)return[s[0],...s.slice(1).map(l=>this.parse(l))]}return s.map(c=>this.parse(c))});if(this.debug(this.pattern,i),this.set=i.filter(s=>s.indexOf(!1)===-1),this.isWindows)for(let s=0;s=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):n>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(n=>{let r=-1;for(;(r=n.indexOf("**",r+1))!==-1;){let i=r;for(;n[i+1]==="**";)i++;i!==r&&n.splice(r,i-r)}return n})}levelOneOptimize(t){return t.map(n=>(n=n.reduce((r,i)=>{let s=r[r.length-1];return i==="**"&&s==="**"?r:i===".."&&s&&s!==".."&&s!=="."&&s!=="**"?(r.pop(),r):(r.push(i),r)},[]),n.length===0?[""]:n))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let n=!1;do{if(n=!1,!this.preserveMultipleSlashes){for(let i=1;ii&&r.splice(i+1,o-i);let a=r[i+1],c=r[i+2],u=r[i+3];if(a!==".."||!c||c==="."||c===".."||!u||u==="."||u==="..")continue;n=!0,r.splice(i,1);let l=r.slice(0);l[i]="**",t.push(l),i--}if(!this.preserveMultipleSlashes){for(let o=1;on.length)}partsMatch(t,n,r=!1){let i=0,s=0,o=[],a="";for(;i=2&&(t=this.levelTwoFileOptimize(t)),n.includes(it.GLOBSTAR)?this.#t(t,n,r,i,s):this.#i(t,n,r,i,s)}#t(t,n,r,i,s){let o=n.indexOf(it.GLOBSTAR,s),a=n.lastIndexOf(it.GLOBSTAR),[c,u,l]=r?[n.slice(s,o),n.slice(o+1),[]]:[n.slice(s,o),n.slice(o+1,a),n.slice(a+1)];if(c.length){let 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"?gQt(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=t_;var yQt=nte();Object.defineProperty(it,"AST",{enumerable:!0,get:function(){return yQt.AST}});var SQt=rte();Object.defineProperty(it,"escape",{enumerable:!0,get:function(){return SQt.escape}});var bQt=jB();Object.defineProperty(it,"unescape",{enumerable:!0,get:function(){return bQt.unescape}});it.minimatch.AST=wBe.AST;it.minimatch.Minimatch=t_;it.minimatch.escape=HXt.escape;it.minimatch.unescape=qXt.unescape});var UBe=w((KMr,ote)=>{"use strict";var PBe=Y("node:diagnostics_channel"),{context:WB,trace:ite,SpanStatusCode:KB,propagation:ste,diag:EQt}=(Me(),ke(Ze)),{getRPCMetadata:_Qt,RPCType:TQt}=pr(),{ATTR_HTTP_ROUTE:YB,ATTR_HTTP_RESPONSE_STATUS_CODE:NBe,ATTR_HTTP_REQUEST_METHOD:vQt,ATTR_URL_PATH:RQt}=(Nn(),ke(Mr)),{InstrumentationBase:AQt}=oBe(),{version:wQt,name:CBe}=aBe(),kQt=">=4.0.0 <6",MBe=["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"},$y={ROUTE:"route-hook",INSTANCE:"hook",HANDLER:"request-handler"},Om="anonymous",eS=Symbol("fastify otel instance"),tS=Symbol("fastify otel request spans"),rN=Symbol("fastify otel request context"),DBe=Symbol("fastify otel addhook original"),LBe=Symbol("fastify otel setnotfound original"),iN=Symbol("fastify otel ignore path"),sN=Symbol("fastify otel record exceptions"),ZB=class extends AQt{logger=null;_requestHook=null;_lifecycleHook=null;constructor(t){if(super(CBe,wQt,t),this.logger=EQt.createComponentLogger({namespace:CBe}),this[iN]=null,this[sN]=!0,t?.recordExceptions!=null){if(typeof t.recordExceptions!="boolean")throw new TypeError("recordExceptions must be a boolean");this[sN]=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[iN]=i=>typeof n=="function"?n(i):(r==null&&(r=OBe().minimatch),r(i.url,n))}}enable(){return this._handleInitialization===void 0&&this.getConfig().registerOnInitialization&&(this._handleInitialization=t=>{this.plugin()(t.fastify,void 0,()=>{});let n=(r,i,s)=>{s()};n[Symbol.for("skip-override")]=!0,n[Symbol.for("fastify.display-name")]="@fastify/otel",t.fastify.register(n)},PBe.subscribe("fastify.initialization",this._handleInitialization)),super.enable()}disable(){return this._handleInitialization&&(PBe.unsubscribe("fastify.initialization",this._handleInitialization),this._handleInitialization=void 0),super.disable()}init(){return[]}plugin(){let t=this;return n[Symbol.for("skip-override")]=!0,n[Symbol.for("fastify.display-name")]="@fastify/otel",n[Symbol.for("plugin-meta")]={fastify:kQt,name:"@fastify/otel"},n;function n(r,i,s){r.decorate(eS,t),r.decorate(DBe,r.addHook),r.decorate(LBe,r.setNotFoundHandler),r.decorateRequest("opentelemetry",function(){let p=this[rN],h=this[tS];return{enabled:this.routeOptions.config?.otel!==!1,span:h,tracer:t.tracer,context:p,inject:(m,g)=>ste.inject(p,m,g),extract:(m,g)=>ste.extract(p,m,g)}}),r.decorateRequest(tS,null),r.decorateRequest(rN,null),r.addHook("onRoute",function(p){if(t[iN]?.(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 MBe)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]:$y.ROUTE,[YB]:p.url,[fi.HOOK_CALLBACK_NAME]:m.name?.length>0?m.name:Om});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]:$y.ROUTE,[YB]:p.url,[fi.HOOK_CALLBACK_NAME]:y.name?.length>0?y.name:Om}));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]:$y.HANDLER,[YB]:p.url,[fi.HOOK_CALLBACK_NAME]:p.handler.name.length>0?p.handler.name:Om})}),r.addHook("onRequest",function(p,h,m){if(this[eS].isEnabled()===!1||p.routeOptions.config?.otel===!1)return m();if(this[eS][iN]?.({url:p.url,method:p.method})===!0)return this[eS].logger.debug(`Ignoring request ${p.method} ${p.url} because it matches the ignore path`),m();let g=WB.active();ite.getSpan(g)==null&&(g=ste.extract(g,p.headers));let y=_Qt(g);p.routeOptions.url!=null&&y?.type===TQt.HTTP&&(y.route=p.routeOptions.url);let b={[fi.ROOT]:"@fastify/otel",[vQt]:p.method,[RQt]:p.url};p.routeOptions.url!=null&&(b[YB]=p.routeOptions.url);let S=this[eS].tracer.startSpan("request",{attributes:b},g);try{this[eS]._requestHook?.(S,p)}catch(E){this[eS].logger.error({err:E},"requestHook threw")}p[rN]=ite.setSpan(g,S),p[tS]=S,WB.with(p[rN],()=>{m()})}),r.addHook("onResponse",function(p,h,m){let g=p[tS];g!=null&&(g.setAttributes({[NBe]:h.statusCode}),g.end()),p[tS]=null,m()}),r.addHook=c,r.setNotFoundHandler=u,s();function o(f,p,h,m){let g=f[tS];g!=null&&(p.statusCode>=500&&g.setStatus({code:KB.ERROR}),g.setAttributes({[NBe]:p.statusCode}),g.end()),f[tS]=null,m(null,h)}function a(f,p,h,m){let g=f[tS];g!=null&&(g.setStatus({code:KB.ERROR,message:h.message}),t[sN]!==!1&&g.recordException(h)),m()}function c(f,p){let h=this[DBe];return MBe.includes(f)?h.call(this,f,d(p,f,{[fi.HOOK_NAME]:`${this.pluginName} - ${f}`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:Om})):h.call(this,f,p)}function u(f,p){let h=this[LBe];typeof f=="function"?(p=d(f,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.name?.length>0?f.name:Om}),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]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preValidation.name?.length>0?f.preValidation.name:Om})),f.preHandler!=null&&(f.preHandler=d(f.preHandler,"notFoundHandler - preHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler - preHandler`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preHandler.name?.length>0?f.preHandler.name:Om})),p=d(p,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:$y.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:Om}),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[eS],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[iN]?.({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[rN]??WB.active(),E=f.name?.length>0?f.name:this.pluginName??Om,_=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 WB.with(ite.setSpan(S,_),function(){try{let T=f.call(this,...g);return typeof T?.then=="function"?T.then(R=>(_.end(),R),R=>(_.setStatus({code:KB.ERROR,message:R.message}),y[sN]!==!1&&_.recordException(R),_.end(),Promise.reject(R))):(_.end(),T)}catch(T){throw _.setStatus({code:KB.ERROR,message:T.message}),y[sN]!==!1&&_.recordException(T),_.end(),T}},this)}}}}};ote.exports=ZB;ote.exports.FastifyOtelInstrumentation=ZB});var Pm,oN,aN,FBe=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})(Pm||(Pm={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request_handler";e.REQUEST_HANDLER=n})(oN||(oN={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request handler";e.REQUEST_HANDLER=n})(aN||(aN={}))});var cN,jBe=v(()=>{cN=Symbol("opentelemetry.instrumentation.fastify.request_active_span")});function ate(e,t,n,r={}){let i=t.startSpan(n,{attributes:r}),s=e[cN]||[];return s.push(i),Object.defineProperty(e,cN,{enumerable:!1,configurable:!0,value:s}),i}function JB(e,t){let n=e[cN]||[];n.length&&(n.forEach(r=>{t&&(r.setStatus({code:as.ERROR,message:t.message}),r.recordException(t)),r.end()}),delete e[cN])}function qBe(e,t,n){let r,i;try{i=e(),HBe(i)&&i.then(s=>t(void 0,s),s=>t(s))}catch(s){r=s}finally{if(!HBe(i)&&(t(r,i),r))throw r;return i}}function HBe(e){return typeof e=="object"&&e&&typeof Object.getOwnPropertyDescriptor(e,"then")?.value=="function"||!1}var BBe=v(()=>{Me();jBe()});function PQt(){let e=ct();e&&e.on("spanStart",t=>{GBe(t)})}function GBe(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 QB,n_,IQt,xQt,zBe,OQt,XB,VBe=v(()=>{Me();QB=Re(pr(),1),n_=Re(Jt(),1);Nn();st();FBe();BBe();IQt="0.1.0",xQt="@sentry/instrumentation-fastify-v3",zBe="anonymous",OQt=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]),XB=class extends n_.InstrumentationBase{constructor(t={}){super(xQt,IQt,t)}init(){return[new n_.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,QB.getRPCMetadata)(Ve.active()),c=o.routeOptions?o.routeOptions.url:r.routerPath;c&&a?.type===QB.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||zBe,c=`${aN.MIDDLEWARE} - ${a}`,u=o[1],l=ate(u,s.tracer,c,{[Pm.FASTIFY_TYPE]:oN.MIDDLEWARE,[Pm.PLUGIN_NAME]:t,[Pm.HOOK_NAME]:n}),d=i&&o[o.length-1];return d&&(o[o.length-1]=function(...f){JB(u),d.apply(this,f)}),Ve.with(jt.setSpan(Ve.active(),l),()=>qBe(()=>r.apply(this,o),f=>{f instanceof Error&&(l.setStatus({code:as.ERROR,message:f.message}),l.recordException(f)),i||JB(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(!OQt.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()),PQt(),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,n_.safeExecuteInTheMiddle)(()=>r.apply(this,s),a=>{!a&&o instanceof Error&&(a=o),JB(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=`${aN.REQUEST_HANDLER} - ${c||this.pluginName||zBe}`,l={[Pm.PLUGIN_NAME]:this.pluginName,[Pm.FASTIFY_TYPE]:oN.REQUEST_HANDLER,[g7]:o.routeOptions?o.routeOptions.url:r.routerPath};c&&(l[Pm.FASTIFY_NAME]=c);let d=ate(i,t.tracer,u,l);GBe(d);let{requestHook:f}=t.getConfig();return f&&(0,n_.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 cte from"node:diagnostics_channel";function NQt(){let e=ct();if(e)return e.getIntegrationByName($B)}function WBe(e,t,n,r){let i=NQt()?.getShouldHandleError()||XBe;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 XBe(e,t,n){let r=n.statusCode;return r>=500||r<=299}function QBe(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 MQt(){let e=ct();e&&e.on("spanStart",t=>{QBe(t)})}function DQt(e){e.addHook("onRequest",async(t,n)=>{if(t.opentelemetry){let{span:s}=t.opentelemetry();s&&QBe(s)}let r=t.routeOptions?.url,i=t.method||"GET";vn().setTransactionName(`${i} ${r}`)})}var KBe,$B,YBe,ZBe,CQt,JBe,$Be=v(()=>{KBe=Re(UBe(),1);st();sr();QE();VBe();$B="Fastify",YBe=rt(`${$B}.v3`,()=>new XB);ZBe=rt(`${$B}.v5`,()=>{let e=new KBe.FastifyOtelInstrumentation,t=e.plugin();return cte.subscribe("fastify.initialization",n=>{let r=n.fastify;r?.register(t).after(i=>{i?So&&Z.error("Failed to setup Fastify instrumentation",i):(MQt(),r&&DQt(r))})}),cte.subscribe("tracing:fastify.request.handler:error",n=>{let{error:r,request:i,reply:s}=n;WBe.call(WBe,r,i,s,"diagnostics-channel")}),e}),CQt=(({shouldHandleError:e})=>{let t;return{name:$B,setupOnce(){t=e||XBe,YBe(),ZBe()},getShouldHandleError(){return t},setShouldHandleError(n){t=n}}}),JBe=(e={})=>CQt(e)});var ute=w(hf=>{"use strict";Object.defineProperty(hf,"__esModule",{value:!0});hf.SpanNames=hf.TokenKind=hf.AllowedOperationTypes=void 0;var LQt;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})(LQt=hf.AllowedOperationTypes||(hf.AllowedOperationTypes={}));var UQt;(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"})(UQt=hf.TokenKind||(hf.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=hf.SpanNames||(hf.SpanNames={}))});var lte=w(uN=>{"use strict";Object.defineProperty(uN,"__esModule",{value:!0});uN.AttributeNames=void 0;var jQt;(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"})(jQt=uN.AttributeNames||(uN.AttributeNames={}))});var ez=w(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.OTEL_GRAPHQL_DATA_SYMBOL=KA.OTEL_PATCHED_SYMBOL=void 0;KA.OTEL_PATCHED_SYMBOL=Symbol.for("opentelemetry.patched");KA.OTEL_GRAPHQL_DATA_SYMBOL=Symbol.for("opentelemetry.graphql_data")});var eze=w(tz=>{"use strict";Object.defineProperty(tz,"__esModule",{value:!0});tz.OPERATION_NOT_SUPPORTED=void 0;var pDr=ez();tz.OPERATION_NOT_SUPPORTED="Operation$operationName$not supported"});var hze=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 YA=(Me(),ke(Ze)),nS=ute(),r_=lte(),Nm=ez(),tze=Object.values(nS.AllowedOperationTypes),HQt=e=>typeof e?.then=="function";bo.isPromise=HQt;var qQt=e=>typeof e=="object"&&e!==null;function dte(e,t,n){Array.isArray(n)?n.forEach((r,i)=>{dte(e,`${t}.${i}`,r)}):n instanceof Object?Object.entries(n).forEach(([r,i])=>{dte(e,`${t}.${r}`,i)}):e.setAttribute(`${r_.AttributeNames.VARIABLES}${String(t)}`,n)}function BQt(e,t){Object.entries(t).forEach(([n,r])=>{dte(e,n,r)})}bo.addInputVariableAttributes=BQt;function sze(e,t,n,r,i){let s=lze(t,n,r,i);e.setAttribute(r_.AttributeNames.SOURCE,s)}bo.addSpanSource=sze;function zQt(e,t,n,r,i){let s=oze(n,i);if(s)return{field:s,spanAdded:!1};let a=t().flatResolveSpans?cze(n):aze(n,i);return s={span:GQt(e,t,n,r,i,a)},KQt(n,i,s),{field:s,spanAdded:!0}}function GQt(e,t,n,r,i,s){let o={[r_.AttributeNames.FIELD_NAME]:r.fieldName,[r_.AttributeNames.FIELD_PATH]:i.join("."),[r_.AttributeNames.FIELD_TYPE]:r.returnType.toString(),[r_.AttributeNames.PARENT_NAME]:r.parentType.name},a=e.startSpan(`${nS.SpanNames.RESOLVE} ${o[r_.AttributeNames.FIELD_PATH]}`,{attributes:o},s?YA.trace.setSpan(YA.context.active(),s):void 0),c=n[Nm.OTEL_GRAPHQL_DATA_SYMBOL].source,u=r.fieldNodes.find(l=>l.kind==="Field");return u&&sze(a,c.loc,t().allowValues,u.loc?.start,u.loc?.end),a}function VQt(e,t){t&&e.recordException(t),e.end()}bo.endSpan=VQt;function WQt(e,t){if(!(!e||!Array.isArray(e.definitions)))return t?e.definitions.filter(n=>tze.indexOf(n?.operation)!==-1).find(n=>t===n?.name?.value):e.definitions.find(n=>tze.indexOf(n?.operation)!==-1)}bo.getOperation=WQt;function KQt(e,t,n){return e[Nm.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]=n}function oze(e,t){return e[Nm.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]}function aze(e,t){for(let n=t.length-1;n>0;n--){let r=oze(e,t.slice(0,n));if(r)return r.span}return cze(e)}function cze(e){return e[Nm.OTEL_GRAPHQL_DATA_SYMBOL].span}function YQt(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 ZQt(e){return uze(` +`,e)}function nze(e){return uze(" ",e)}function uze(e,t){let n="";for(let r=0;ro){a=a.next,c=a?.line;continue}let u=a.value||a.kind,l="";!t&&JQt.indexOf(a.kind)>=0&&(u="*"),a.kind===nS.TokenKind.STRING&&(u=`"${u}"`),a.kind===nS.TokenKind.EOF&&(u=""),a.line>c?(i+=ZQt(a.line-c),c=a.line,l=nze(a.column-1)):a.line===a.prev?.line&&(l=nze(a.start-(a.prev?.end||0))),i+=l+u,a&&(a=a.next)}}return i}bo.getSourceFromLocation=lze;function dze(e,t,n){if(!e||e[Nm.OTEL_PATCHED_SYMBOL])return;let r=e.getFields();e[Nm.OTEL_PATCHED_SYMBOL]=!0,Object.keys(r).forEach(i=>{let s=r[i];if(s&&(s.resolve&&(s.resolve=pze(t,n,s.resolve)),s.type)){let o=fze(s.type);for(let a of o)dze(a,t,n)}})}bo.wrapFields=dze;function fze(e){return"ofType"in e?fze(e.ofType):XQt(e)?e.getTypes():QQt(e)?[e]:[]}function XQt(e){return"getTypes"in e&&typeof e.getTypes=="function"}function QQt(e){return"getFields"in e&&typeof e.getFields=="function"}var rze=(e,t,n)=>{n&&(e.recordException(t),e.setStatus({code:YA.SpanStatusCode.ERROR,message:t.message}),e.end())},ize=(e,t)=>{t&&e.end()};function pze(e,t,n,r=!1){if(i[Nm.OTEL_PATCHED_SYMBOL]||typeof n!="function")return n;function i(s,o,a,c){if(!n)return;let u=t();if(u.ignoreTrivialResolveSpans&&r&&(qQt(s)||typeof s=="function")&&typeof s[c.fieldName]!="function")return n.call(this,s,o,a,c);if(!a[Nm.OTEL_GRAPHQL_DATA_SYMBOL])return n.call(this,s,o,a,c);let l=YQt(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=>(ize(f,p),m),m=>{throw rze(f,m,p),m}):(ize(f,p),h)}catch(h){throw rze(f,h,p),h}})}return i[Nm.OTEL_PATCHED_SYMBOL]=!0,i}bo.wrapFieldResolver=pze});var mze=w(ZA=>{"use strict";Object.defineProperty(ZA,"__esModule",{value:!0});ZA.PACKAGE_NAME=ZA.PACKAGE_VERSION=void 0;ZA.PACKAGE_VERSION="0.62.0";ZA.PACKAGE_NAME="@opentelemetry/instrumentation-graphql"});var Sze=w(iz=>{"use strict";Object.defineProperty(iz,"__esModule",{value:!0});iz.GraphQLInstrumentation=void 0;var Cm=(Me(),ke(Ze)),td=Jt(),lN=ute(),nz=lte(),fte=ez(),$Qt=eze(),Qa=hze(),gze=mze(),yze={mergeItems:!1,depth:-1,allowValues:!1,ignoreResolveSpans:!1},rz=[">=14.0.0 <17"],pte=class extends td.InstrumentationBase{constructor(t={}){super(gze.PACKAGE_NAME,gze.PACKAGE_VERSION,{...yze,...t})}setConfig(t={}){super.setConfig({...yze,...t})}init(){let t=new td.InstrumentationNodeModuleDefinition("graphql",rz);return t.files.push(this._addPatchingExecute()),t.files.push(this._addPatchingParser()),t.files.push(this._addPatchingValidate()),t}_addPatchingExecute(){return new td.InstrumentationNodeModuleFile("graphql/execution/execute.js",rz,t=>((0,td.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 td.InstrumentationNodeModuleFile("graphql/language/parser.js",rz,t=>((0,td.isWrapped)(t.parse)&&this._unwrap(t,"parse"),this._wrap(t,"parse",this._patchParse()),t),t=>{t&&this._unwrap(t,"parse")})}_addPatchingValidate(){return new td.InstrumentationNodeModuleFile("graphql/validation/validate.js",rz,t=>((0,td.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[fte.OTEL_GRAPHQL_DATA_SYMBOL]={source:o.document?o.document||o.document[fte.OTEL_GRAPHQL_DATA_SYMBOL]:void 0,span:c,fields:{}},Cm.context.with(Cm.trace.setSpan(Cm.context.active(),c),()=>(0,td.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,td.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(lN.SpanNames.PARSE);return Cm.context.with(Cm.trace.setSpan(Cm.context.active(),o),()=>(0,td.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(lN.SpanNames.SCHEMA_PARSE)),(0,Qa.endSpan)(o,a)}))}_validate(t,n,r,i,s,o,a){let c=this.tracer.startSpan(lN.SpanNames.VALIDATE,{});return Cm.context.with(Cm.trace.setSpan(Cm.context.active(),c),()=>(0,td.safeExecuteInTheMiddle)(()=>n.call(t,r,i,s,a,o),(u,l)=>{i.loc||c.updateName(lN.SpanNames.SCHEMA_VALIDATE),l&&l.length&&c.recordException({name:nz.AttributeNames.ERROR_VALIDATION_NAME,message:JSON.stringify(l)}),(0,Qa.endSpan)(c,u)}))}_createExecuteSpan(t,n){let r=this.getConfig(),i=this.tracer.startSpan(lN.SpanNames.EXECUTE,{});if(t){let{operation:s,name:o}=t;i.setAttribute(nz.AttributeNames.OPERATION_TYPE,s);let a=o?.value;a?(i.setAttribute(nz.AttributeNames.OPERATION_NAME,a),i.updateName(`${s} ${a}`)):i.updateName(s)}else{let s=" ";n.operationName&&(s=` "${n.operationName}" `),s=$Qt.OPERATION_NOT_SUPPORTED.replace("$operationName$",s),i.setAttribute(nz.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[fte.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}}};iz.GraphQLInstrumentation=pte});var bze=w(sz=>{"use strict";Object.defineProperty(sz,"__esModule",{value:!0});sz.GraphQLInstrumentation=void 0;var e$t=Sze();Object.defineProperty(sz,"GraphQLInstrumentation",{enumerable:!0,get:function(){return e$t.GraphQLInstrumentation}})});function Rze(e){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...e}}function n$t(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 Eze,_ze,Tze,t$t,vze,Aze=v(()=>{Me();Eze=Re(bze(),1);st();sr();CA();_ze="Graphql",Tze=rt(_ze,Eze.GraphQLInstrumentation,e=>{let t=Rze(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[PA]||[],d=a?`${o} ${a}`:`${o}`;Array.isArray(l)?(l.push(d),c.setAttribute(PA,l)):typeof l=="string"?c.setAttribute(PA,[l,d]):c.setAttribute(PA,d),vt(c).data["original-description"]||c.setAttribute("original-description",vt(c).description),c.updateName(`${vt(c).data["original-description"]} (${n$t(l)})`)}}}}),t$t=((e={})=>({name:_ze,setupOnce(){Tze(Rze(e))}})),vze=t$t});var wze=w(oz=>{"use strict";Object.defineProperty(oz,"__esModule",{value:!0});oz.EVENT_LISTENERS_SET=void 0;oz.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.kafkajs.eventListenersSet")});var kze=w(az=>{"use strict";Object.defineProperty(az,"__esModule",{value:!0});az.bufferTextMapGetter=void 0;az.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 Ize=w(jn=>{"use strict";Object.defineProperty(jn,"__esModule",{value:!0});jn.METRIC_MESSAGING_PROCESS_DURATION=jn.METRIC_MESSAGING_CLIENT_SENT_MESSAGES=jn.METRIC_MESSAGING_CLIENT_OPERATION_DURATION=jn.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES=jn.MESSAGING_SYSTEM_VALUE_KAFKA=jn.MESSAGING_OPERATION_TYPE_VALUE_SEND=jn.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE=jn.MESSAGING_OPERATION_TYPE_VALUE_PROCESS=jn.ATTR_MESSAGING_SYSTEM=jn.ATTR_MESSAGING_OPERATION_TYPE=jn.ATTR_MESSAGING_OPERATION_NAME=jn.ATTR_MESSAGING_KAFKA_OFFSET=jn.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE=jn.ATTR_MESSAGING_KAFKA_MESSAGE_KEY=jn.ATTR_MESSAGING_DESTINATION_PARTITION_ID=jn.ATTR_MESSAGING_DESTINATION_NAME=jn.ATTR_MESSAGING_BATCH_MESSAGE_COUNT=void 0;jn.ATTR_MESSAGING_BATCH_MESSAGE_COUNT="messaging.batch.message_count";jn.ATTR_MESSAGING_DESTINATION_NAME="messaging.destination.name";jn.ATTR_MESSAGING_DESTINATION_PARTITION_ID="messaging.destination.partition.id";jn.ATTR_MESSAGING_KAFKA_MESSAGE_KEY="messaging.kafka.message.key";jn.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE="messaging.kafka.message.tombstone";jn.ATTR_MESSAGING_KAFKA_OFFSET="messaging.kafka.offset";jn.ATTR_MESSAGING_OPERATION_NAME="messaging.operation.name";jn.ATTR_MESSAGING_OPERATION_TYPE="messaging.operation.type";jn.ATTR_MESSAGING_SYSTEM="messaging.system";jn.MESSAGING_OPERATION_TYPE_VALUE_PROCESS="process";jn.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE="receive";jn.MESSAGING_OPERATION_TYPE_VALUE_SEND="send";jn.MESSAGING_SYSTEM_VALUE_KAFKA="kafka";jn.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES="messaging.client.consumed.messages";jn.METRIC_MESSAGING_CLIENT_OPERATION_DURATION="messaging.client.operation.duration";jn.METRIC_MESSAGING_CLIENT_SENT_MESSAGES="messaging.client.sent.messages";jn.METRIC_MESSAGING_PROCESS_DURATION="messaging.process.duration"});var xze=w(JA=>{"use strict";Object.defineProperty(JA,"__esModule",{value:!0});JA.PACKAGE_NAME=JA.PACKAGE_VERSION=void 0;JA.PACKAGE_VERSION="0.23.0";JA.PACKAGE_NAME="@opentelemetry/instrumentation-kafkajs"});var Dze=w(uz=>{"use strict";Object.defineProperty(uz,"__esModule",{value:!0});uz.KafkaJsInstrumentation=void 0;var Lr=(Me(),ke(Ze)),nd=Jt(),XA=(Nn(),ke(Mr)),Oze=wze(),Pze=kze(),ot=Ize(),Nze=xze();function cz(e,t,n){return r=>{e.add(t,{...n,...r?{[XA.ATTR_ERROR_TYPE]:r}:{}})}}function Cze(e,t,n){return r=>{e.record((Date.now()-t)/1e3,{...n,...r?{[XA.ATTR_ERROR_TYPE]:r}:{}})}}var Mze=[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10],hte=class extends nd.InstrumentationBase{constructor(t={}){super(Nze.PACKAGE_NAME,Nze.PACKAGE_VERSION,t)}_updateMetricInstruments(){this._clientDuration=this.meter.createHistogram(ot.METRIC_MESSAGING_CLIENT_OPERATION_DURATION,{advice:{explicitBucketBoundaries:Mze}}),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:Mze}})}init(){let t=r=>{(0,nd.isWrapped)(r?.Kafka?.prototype.producer)&&this._unwrap(r.Kafka.prototype,"producer"),(0,nd.isWrapped)(r?.Kafka?.prototype.consumer)&&this._unwrap(r.Kafka.prototype,"consumer")};return new nd.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,nd.isWrapped)(s.run)&&t._unwrap(s,"run"),t._wrap(s,"run",t._getConsumerRunPatch()),t._setKafkaEventListeners(s),s}}_setKafkaEventListeners(t){t[Oze.EVENT_LISTENERS_SET]||(t.events?.REQUEST&&t.on(t.events.REQUEST,this._recordClientDurationMetric.bind(this)),t[Oze.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}`,[XA.ATTR_SERVER_ADDRESS]:n,[XA.ATTR_SERVER_PORT]:Number.parseInt(r,10)})}_getProducerPatch(){let t=this;return n=>function(...i){let s=n.apply(this,i);return(0,nd.isWrapped)(s.sendBatch)&&t._unwrap(s,"sendBatch"),t._wrap(s,"sendBatch",t._getSendBatchPatch()),(0,nd.isWrapped)(s.send)&&t._unwrap(s,"send"),t._wrap(s,"send",t._getSendPatch()),(0,nd.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,nd.isWrapped)(s.eachMessage)&&t._unwrap(s,"eachMessage"),t._wrap(s,"eachMessage",t._getConsumerEachMessagePatch())),s?.eachBatch&&((0,nd.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,Pze.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=[Cze(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)}),cz(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=[cz(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,Pze.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(Cze(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(cz(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=>cz(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=XA.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(XA.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,nd.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,nd.safeExecuteInTheMiddle)(()=>i(r,{topic:t,message:n}),s=>{s&&this._diag.error("producerHook error",s)},!0),r}};uz.KafkaJsInstrumentation=hte});var Lze=w(lz=>{"use strict";Object.defineProperty(lz,"__esModule",{value:!0});lz.KafkaJsInstrumentation=void 0;var r$t=Dze();Object.defineProperty(lz,"KafkaJsInstrumentation",{enumerable:!0,get:function(){return r$t.KafkaJsInstrumentation}})});var Uze,Fze,jze,i$t,Hze,qze=v(()=>{Uze=Re(Lze(),1);sr();Fze="Kafka",jze=rt(Fze,()=>new Uze.KafkaJsInstrumentation({consumerHook(e){Dr(e,"auto.kafkajs.otel.consumer")},producerHook(e){Dr(e,"auto.kafkajs.otel.producer")}})),i$t=(()=>({name:Fze,setupOnce(){jze()}})),Hze=i$t});var Bze=w(QA=>{"use strict";Object.defineProperty(QA,"__esModule",{value:!0});QA.PACKAGE_NAME=QA.PACKAGE_VERSION=void 0;QA.PACKAGE_VERSION="0.58.0";QA.PACKAGE_NAME="@opentelemetry/instrumentation-lru-memoizer"});var Wze=w(dz=>{"use strict";Object.defineProperty(dz,"__esModule",{value:!0});dz.LruMemoizerInstrumentation=void 0;var zze=(Me(),ke(Ze)),Gze=Jt(),Vze=Bze(),mte=class extends Gze.InstrumentationBase{constructor(t={}){super(Vze.PACKAGE_NAME,Vze.PACKAGE_VERSION,t)}init(){return[new Gze.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"?zze.context.bind(zze.context.active(),s):s;return i.push(o),r.apply(this,i)}};return n.sync=t.sync,n},void 0)]}};dz.LruMemoizerInstrumentation=mte});var Kze=w(fz=>{"use strict";Object.defineProperty(fz,"__esModule",{value:!0});fz.LruMemoizerInstrumentation=void 0;var s$t=Wze();Object.defineProperty(fz,"LruMemoizerInstrumentation",{enumerable:!0,get:function(){return s$t.LruMemoizerInstrumentation}})});var Yze,Zze,Jze,o$t,Xze,Qze=v(()=>{Yze=Re(Kze(),1);sr();Zze="LruMemoizer",Jze=rt(Zze,()=>new Yze.LruMemoizerInstrumentation),o$t=(()=>({name:Zze,setupOnce(){Jze()}})),Xze=o$t});var $ze=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 eGe=w(dN=>{"use strict";Object.defineProperty(dN,"__esModule",{value:!0});dN.MongodbCommandType=void 0;var a$t;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.AGGREGATE="aggregate",e.UNKNOWN="unknown"})(a$t=dN.MongodbCommandType||(dN.MongodbCommandType={}))});var tGe=w($A=>{"use strict";Object.defineProperty($A,"__esModule",{value:!0});$A.PACKAGE_NAME=$A.PACKAGE_VERSION=void 0;$A.PACKAGE_VERSION="0.67.0";$A.PACKAGE_NAME="@opentelemetry/instrumentation-mongodb"});var iGe=w(pz=>{"use strict";Object.defineProperty(pz,"__esModule",{value:!0});pz.MongoDBInstrumentation=void 0;var Yi=(Me(),ke(Ze)),Hn=Jt(),Mm=(Nn(),ke(Mr)),hl=$ze(),i_=eGe(),nGe=tGe(),rGe={requireParentSpan:!0},gte=class e extends Hn.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(nGe.PACKAGE_NAME,nGe.PACKAGE_VERSION,{...rGe,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,Hn.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,Hn.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...rGe,...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 Hn.InstrumentationNodeModuleDefinition("mongodb",[">=3.3.0 <4"],void 0,void 0,[new Hn.InstrumentationNodeModuleFile("mongodb/lib/core/wireprotocol/index.js",[">=3.3.0 <4"],t,n)]),new Hn.InstrumentationNodeModuleDefinition("mongodb",[">=4.0.0 <8"],void 0,void 0,[new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=4.0.0 <6.4"],s,a),new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=6.4.0 <8"],o,a),new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection_pool.js",[">=4.0.0 <6.4"],c,u),new Hn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connect.js",[">=4.0.0 <8"],r,i),new Hn.InstrumentationNodeModuleFile("mongodb/lib/sessions.js",[">=4.0.0 <8"],l,d)])]}_getV3ConnectionPatches(){return{v3PatchConnection:t=>((0,Hn.isWrapped)(t.insert)&&this._unwrap(t,"insert"),this._wrap(t,"insert",this._getV3PatchOperation("insert")),(0,Hn.isWrapped)(t.remove)&&this._unwrap(t,"remove"),this._wrap(t,"remove",this._getV3PatchOperation("remove")),(0,Hn.isWrapped)(t.update)&&this._unwrap(t,"update"),this._wrap(t,"update",this._getV3PatchOperation("update")),(0,Hn.isWrapped)(t.command)&&this._unwrap(t,"command"),this._wrap(t,"command",this._getV3PatchCommand()),(0,Hn.isWrapped)(t.query)&&this._unwrap(t,"query"),this._wrap(t,"query",this._getV3PatchFind()),(0,Hn.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,Hn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),this._wrap(t.ServerSessionPool.prototype,"acquire",this._getV4AcquireCommand()),(0,Hn.isWrapped)(t.release)&&this._unwrap(t,"release"),this._wrap(t.ServerSessionPool.prototype,"release",this._getV4ReleaseCommand()),t),v4UnpatchSessions:t=>{t!==void 0&&((0,Hn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),(0,Hn.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,Hn.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,Hn.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=Yi.context.bind(Yi.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,Hn.isWrapped)(t.Connection.prototype.command)&&this._unwrap(t.Connection.prototype,"command"),this._wrap(t.Connection.prototype,"command",this._getV4PatchCommandCallback()),t),v4PatchConnectionPromise:t=>((0,Hn.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=Yi.trace.getSpan(Yi.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:Yi.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=Yi.trace.getSpan(Yi.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===i_.MongodbCommandType.UNKNOWN?void 0:f,h=t._getV3SpanAttributes(s,i,o,p),m=t._spanNameFromAttrs(h),g=t.tracer.startSpan(m,{kind:Yi.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=Yi.trace.getSpan(Yi.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:Yi.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=Yi.trace.getSpan(Yi.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:Yi.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=Yi.trace.getSpan(Yi.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:Yi.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=Yi.trace.getSpan(Yi.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:Yi.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?i_.MongodbCommandType.CREATE_INDEXES:t.findandmodify!==void 0?i_.MongodbCommandType.FIND_AND_MODIFY:t.ismaster!==void 0?i_.MongodbCommandType.IS_MASTER:t.count!==void 0?i_.MongodbCommandType.COUNT:t.aggregate!==void 0?i_.MongodbCommandType.AGGREGATE:i_.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&Hn.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&Hn.SemconvStability.STABLE&&(a[Mm.ATTR_DB_SYSTEM_NAME]=hl.DB_SYSTEM_NAME_VALUE_MONGODB,a[Mm.ATTR_DB_NAMESPACE]=t,a[Mm.ATTR_DB_OPERATION_NAME]=o,a[Mm.ATTR_DB_COLLECTION_NAME]=n),r&&i){this._netSemconvStability&Hn.SemconvStability.OLD&&(a[hl.ATTR_NET_PEER_NAME]=r),this._netSemconvStability&Hn.SemconvStability.STABLE&&(a[Mm.ATTR_SERVER_ADDRESS]=r);let c=parseInt(i,10);isNaN(c)||(this._netSemconvStability&Hn.SemconvStability.OLD&&(a[hl.ATTR_NET_PEER_PORT]=c),this._netSemconvStability&Hn.SemconvStability.STABLE&&(a[Mm.ATTR_SERVER_PORT]=c))}if(s){let{dbStatementSerializer:c}=this.getConfig(),u=typeof c=="function"?c:this._defaultDbStatementSerializer.bind(this);(0,Hn.safeExecuteInTheMiddle)(()=>{let l=u(s);this._dbSemconvStability&Hn.SemconvStability.OLD&&(a[hl.ATTR_DB_STATEMENT]=l),this._dbSemconvStability&Hn.SemconvStability.STABLE&&(a[Mm.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&Hn.SemconvStability.STABLE?n=[t[Mm.ATTR_DB_OPERATION_NAME],t[Mm.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,Hn.safeExecuteInTheMiddle)(()=>{r(t,{data:n})},i=>{i&&this._diag.error("Error running response hook",i)},!0)}_patchEnd(t,n,r,i){let s=Yi.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:Yi.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 Yi.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}};pz.MongoDBInstrumentation=gte});var sGe=w(fN=>{"use strict";Object.defineProperty(fN,"__esModule",{value:!0});fN.MongodbCommandType=void 0;var c$t;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.UNKNOWN="unknown"})(c$t=fN.MongodbCommandType||(fN.MongodbCommandType={}))});var oGe=w(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.MongodbCommandType=ew.MongoDBInstrumentation=void 0;var u$t=iGe();Object.defineProperty(ew,"MongoDBInstrumentation",{enumerable:!0,get:function(){return u$t.MongoDBInstrumentation}});var l$t=sGe();Object.defineProperty(ew,"MongodbCommandType",{enumerable:!0,get:function(){return l$t.MongodbCommandType}})});function d$t(e){let t=yte(e);return JSON.stringify(t)}function yte(e){if(Array.isArray(e))return e.map(t=>yte(t));if(f$t(e)){let t={};return Object.entries(e).map(([n,r])=>[n,yte(r)]).reduce((n,r)=>(h$t(r)&&(n[r[0]]=r[1]),n),t)}return"?"}function f$t(e){return typeof e=="object"&&e!==null&&!p$t(e)}function p$t(e){let t=!1;return typeof Buffer<"u"&&(t=Buffer.isBuffer(e)),t}function h$t(e){return Array.isArray(e)}var aGe,cGe,uGe,m$t,lGe,dGe=v(()=>{aGe=Re(oGe(),1);sr();cGe="Mongo",uGe=rt(cGe,()=>new aGe.MongoDBInstrumentation({dbStatementSerializer:d$t,responseHook(e){Dr(e,"auto.db.otel.mongo")}}));m$t=(()=>({name:cGe,setupOnce(){uGe()}})),lGe=m$t});var Ste=w(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.DB_SYSTEM_NAME_VALUE_MONGODB=Ys.ATTR_NET_PEER_PORT=Ys.ATTR_NET_PEER_NAME=Ys.ATTR_DB_USER=Ys.ATTR_DB_SYSTEM=Ys.ATTR_DB_STATEMENT=Ys.ATTR_DB_OPERATION=Ys.ATTR_DB_NAME=Ys.ATTR_DB_MONGODB_COLLECTION=void 0;Ys.ATTR_DB_MONGODB_COLLECTION="db.mongodb.collection";Ys.ATTR_DB_NAME="db.name";Ys.ATTR_DB_OPERATION="db.operation";Ys.ATTR_DB_STATEMENT="db.statement";Ys.ATTR_DB_SYSTEM="db.system";Ys.ATTR_DB_USER="db.user";Ys.ATTR_NET_PEER_NAME="net.peer.name";Ys.ATTR_NET_PEER_PORT="net.peer.port";Ys.DB_SYSTEM_NAME_VALUE_MONGODB="mongodb"});var hGe=w(rS=>{"use strict";Object.defineProperty(rS,"__esModule",{value:!0});rS.handleCallbackResponse=rS.handlePromiseResponse=rS.getAttributesFromCollection=void 0;var fGe=(Me(),ke(Ze)),hN=Jt(),pN=Ste(),hz=(Nn(),ke(Mr));function g$t(e,t,n){let r={};return t&hN.SemconvStability.OLD&&(r[pN.ATTR_DB_MONGODB_COLLECTION]=e.name,r[pN.ATTR_DB_NAME]=e.conn.name,r[pN.ATTR_DB_USER]=e.conn.user),t&hN.SemconvStability.STABLE&&(r[hz.ATTR_DB_COLLECTION_NAME]=e.name,r[hz.ATTR_DB_NAMESPACE]=e.conn.name),n&hN.SemconvStability.OLD&&(r[pN.ATTR_NET_PEER_NAME]=e.conn.host,r[pN.ATTR_NET_PEER_PORT]=e.conn.port),n&hN.SemconvStability.STABLE&&(r[hz.ATTR_SERVER_ADDRESS]=e.conn.host,r[hz.ATTR_SERVER_PORT]=e.conn.port),r}rS.getAttributesFromCollection=g$t;function pGe(e,t={}){e.recordException(t),e.setStatus({code:fGe.SpanStatusCode.ERROR,message:`${t.message} ${t.code?` +Mongoose Error Code: ${t.code}`:""}`})}function bte(e,t,n,r=void 0){n&&(0,hN.safeExecuteInTheMiddle)(()=>n(e,{moduleVersion:r,response:t}),i=>{i&&fGe.diag.error("mongoose instrumentation: responseHook error",i)},!0)}function y$t(e,t,n,r=void 0){return e instanceof Promise?e.then(i=>(bte(t,i,n,r),i)).catch(i=>{throw pGe(t,i),i}).finally(()=>t.end()):(bte(t,e,n,r),t.end(),e)}rS.handlePromiseResponse=y$t;function S$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?pGe(r,c):bte(r,u,s,o),r.end(),e(c,u)),t.apply(n,i)}rS.handleCallbackResponse=S$t});var mGe=w(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});tw.PACKAGE_NAME=tw.PACKAGE_VERSION=void 0;tw.PACKAGE_VERSION="0.60.0";tw.PACKAGE_NAME="@opentelemetry/instrumentation-mongoose"});var EGe=w(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.MongooseInstrumentation=gu._ALREADY_INSTRUMENTED=gu._STORED_PARENT_SPAN=void 0;var Eo=(Me(),ke(Ze)),b$t=pr(),Ete=hGe(),fa=Jt(),gGe=mGe(),iS=Ste(),s_=(Nn(),ke(Mr)),mz=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],E$t=["remove","count","findOneAndRemove",...mz],_$t=["count","findOneAndRemove",...mz],T$t=[...mz];function yGe(e){return e?e.startsWith("6.")||e.startsWith("5.")?E$t:e.startsWith("7.")?_$t:T$t:mz}function SGe(e){return e&&(e.startsWith("5.")||e.startsWith("6."))||!1}function bGe(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 _te=class extends fa.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(gGe.PACKAGE_NAME,gGe.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,SGe(n)&&this._wrap(r.Model.prototype,"remove",this.patchOnModelMethods("remove",n)),bGe(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)),yGe(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=yGe(n);this._unwrap(r.Model.prototype,"save"),r.Model.prototype.$save=r.Model.prototype.save,SGe(n)&&this._unwrap(r.Model.prototype,"remove"),bGe(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[iS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[s_.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[iS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[s_.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[iS.ATTR_DB_STATEMENT]=f),r._dbSemconvStability&fa.SemconvStability.STABLE&&(u[s_.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[iS.ATTR_DB_STATEMENT]=g),r._dbSemconvStability&fa.SemconvStability.STABLE&&(f[s_.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[iS.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&fa.SemconvStability.STABLE&&(l[s_.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,Ete.getAttributesFromCollection)(t,this._dbSemconvStability,this._netSemconvStability)};this._dbSemconvStability&fa.SemconvStability.OLD&&(o[iS.ATTR_DB_OPERATION]=r,o[iS.ATTR_DB_SYSTEM]="mongoose"),this._dbSemconvStability&fa.SemconvStability.STABLE&&(o[s_.ATTR_DB_OPERATION_NAME]=r,o[s_.ATTR_DB_SYSTEM_NAME]=iS.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,Ete.handleCallbackResponse)(s,n,r,t,i,a.getConfig().responseHook,o));{let c=a._callOriginalFunction(()=>n.apply(r,i));return(0,Ete.handlePromiseResponse)(c,t,a.getConfig().responseHook,o)}}_callOriginalFunction(t){return this.getConfig().suppressInternalInstrumentation?Eo.context.with((0,b$t.suppressTracing)(Eo.context.active()),t):t()}};gu.MongooseInstrumentation=_te});var _Ge=w(gz=>{"use strict";Object.defineProperty(gz,"__esModule",{value:!0});gz.MongooseInstrumentation=void 0;var v$t=EGe();Object.defineProperty(gz,"MongooseInstrumentation",{enumerable:!0,get:function(){return v$t.MongooseInstrumentation}})});var TGe,vGe,RGe,R$t,AGe,wGe=v(()=>{TGe=Re(_Ge(),1);sr();vGe="Mongoose",RGe=rt(vGe,()=>new TGe.MongooseInstrumentation({responseHook(e){Dr(e,"auto.db.otel.mongoose")}})),R$t=(()=>({name:vGe,setupOnce(){RGe()}})),AGe=R$t});var kGe=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 IGe=w(mN=>{"use strict";Object.defineProperty(mN,"__esModule",{value:!0});mN.AttributeNames=void 0;var A$t;(function(e){e.MYSQL_VALUES="db.mysql.values"})(A$t=mN.AttributeNames||(mN.AttributeNames={}))});var xGe=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 w$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=w$t;function k$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}$a.getJDBCString=k$t;function I$t(e){return typeof e=="string"?e:e.sql}$a.getDbQueryText=I$t;function x$t(e,t){return Tte(typeof e=="string"?t:t||e.values)}$a.getDbValues=x$t;function O$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=O$t;function Tte(e){return e?`[${e.toString()}]`:""}$a.arrayStringifyHelper=Tte;function P$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=P$t});var OGe=w(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.PACKAGE_NAME=nw.PACKAGE_VERSION=void 0;nw.PACKAGE_VERSION="0.60.0";nw.PACKAGE_NAME="@opentelemetry/instrumentation-mysql"});var NGe=w(yz=>{"use strict";Object.defineProperty(yz,"__esModule",{value:!0});yz.MySQLInstrumentation=void 0;var yu=(Me(),ke(Ze)),rd=Jt(),rw=(Nn(),ke(Mr)),Dm=kGe(),N$t=IGe(),o_=xGe(),PGe=OGe(),vte=class extends rd.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(PGe.PACKAGE_NAME,PGe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,rd.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,rd.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._connectionsUsageOld=this.meter.createUpDownCounter(Dm.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 rd.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],t=>((0,rd.isWrapped)(t.createConnection)&&this._unwrap(t,"createConnection"),this._wrap(t,"createConnection",this._patchCreateConnection()),(0,rd.isWrapped)(t.createPool)&&this._unwrap(t,"createPool"),this._wrap(t,"createPool",this._patchCreatePool()),(0,rd.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,o_.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,rd.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,o_.getConfig)(t.config),f=parseInt(u,10),p=(0,o_.getDbQueryText)(i);r._dbSemconvStability&rd.SemconvStability.OLD&&(a[Dm.ATTR_DB_SYSTEM]=Dm.DB_SYSTEM_VALUE_MYSQL,a[Dm.ATTR_DB_CONNECTION_STRING]=(0,o_.getJDBCString)(c,u,l),a[Dm.ATTR_DB_NAME]=l,a[Dm.ATTR_DB_USER]=d,a[Dm.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&rd.SemconvStability.STABLE&&(a[rw.ATTR_DB_SYSTEM_NAME]=rw.DB_SYSTEM_NAME_VALUE_MYSQL,a[rw.ATTR_DB_NAMESPACE]=l,a[rw.ATTR_DB_QUERY_TEXT]=p),r._netSemconvStability&rd.SemconvStability.OLD&&(a[Dm.ATTR_NET_PEER_NAME]=c,isNaN(f)||(a[Dm.ATTR_NET_PEER_PORT]=f)),r._netSemconvStability&rd.SemconvStability.STABLE&&(a[rw.ATTR_SERVER_ADDRESS]=c,isNaN(f)||(a[rw.ATTR_SERVER_PORT]=f));let h=r.tracer.startSpan((0,o_.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(N$t.AttributeNames.MYSQL_VALUES,(0,o_.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,o_.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")})}};yz.MySQLInstrumentation=vte});var CGe=w(Sz=>{"use strict";Object.defineProperty(Sz,"__esModule",{value:!0});Sz.MySQLInstrumentation=void 0;var C$t=NGe();Object.defineProperty(Sz,"MySQLInstrumentation",{enumerable:!0,get:function(){return C$t.MySQLInstrumentation}})});var MGe,DGe,LGe,M$t,UGe,FGe=v(()=>{MGe=Re(CGe(),1);sr();DGe="Mysql",LGe=rt(DGe,()=>new MGe.MySQLInstrumentation({})),M$t=(()=>({name:DGe,setupOnce(){LGe()}})),UGe=M$t});var Rte=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 wte=w(bz=>{"use strict";Object.defineProperty(bz,"__esModule",{value:!0});bz.addSqlCommenterComment=void 0;var Ate=(Me(),ke(Ze)),D$t=pr();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 D$t.W3CTraceContextPropagator,r={};n.inject(Ate.trace.setSpan(Ate.ROOT_CONTEXT,e),r,Ate.defaultTextMapSetter);let i=Object.keys(r).sort();if(i.length===0)return t;let s=i.map(o=>{let a=U$t(r[o]);return`${o}='${a}'`}).join(",");return`${t} /*${s}*/`}bz.addSqlCommenterComment=F$t});var jGe=w(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.getConnectionPrototypeToInstrument=id.once=id.getSpanName=id.getQueryText=id.getConnectionAttributes=void 0;var gN=Rte(),Ez=Jt(),kte=(Nn(),ke(Mr));function j$t(e,t,n){let{host:r,port:i,database:s,user:o}=H$t(e),a={};t&Ez.SemconvStability.OLD&&(a[gN.ATTR_DB_CONNECTION_STRING]=q$t(r,i,s),a[gN.ATTR_DB_NAME]=s,a[gN.ATTR_DB_USER]=o),t&Ez.SemconvStability.STABLE&&(a[kte.ATTR_DB_NAMESPACE]=s);let c=parseInt(i,10);return n&Ez.SemconvStability.OLD&&(a[gN.ATTR_NET_PEER_NAME]=r,isNaN(c)||(a[gN.ATTR_NET_PEER_PORT]=c)),n&Ez.SemconvStability.STABLE&&(a[kte.ATTR_SERVER_ADDRESS]=r,isNaN(c)||(a[kte.ATTR_SERVER_PORT]=c)),a}id.getConnectionAttributes=j$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 q$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}function B$t(e,t,n,r=!1,i=z$t){let[s,o]=typeof e=="string"?[e,n]:[e.sql,G$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"}}id.getQueryText=B$t;function z$t(e){return e.replace(/\b\d+\b/g,"?").replace(/(["'])(?:(?=(\\?))\2.)*?\1/g,"?")}function G$t(e){return"values"in e}function V$t(e){let t=typeof e=="object"?e.sql:e,n=t?.indexOf(" ");return typeof n=="number"&&n!==-1?t?.substring(0,n):t}id.getSpanName=V$t;var W$t=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};id.once=W$t;function K$t(e){let t=e.prototype,n=Object.getPrototypeOf(t);return typeof n?.query=="function"&&typeof n?.execute=="function"?n:t}id.getConnectionPrototypeToInstrument=K$t});var HGe=w(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.PACKAGE_NAME=iw.PACKAGE_VERSION=void 0;iw.PACKAGE_VERSION="0.60.0";iw.PACKAGE_NAME="@opentelemetry/instrumentation-mysql2"});var GGe=w(_z=>{"use strict";Object.defineProperty(_z,"__esModule",{value:!0});_z.MySQL2Instrumentation=void 0;var qGe=(Me(),ke(Ze)),mf=Jt(),Ite=Rte(),BGe=wte(),sw=jGe(),zGe=HGe(),xte=(Nn(),ke(Mr)),Ote=[">=1.4.2 <4"],Pte=class extends mf.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(zGe.PACKAGE_NAME,zGe.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",Ote,s=>(n(s),s),()=>{},[new mf.InstrumentationNodeModuleFile("mysql2/promise.js",Ote,s=>(n(s),s),()=>{}),new mf.InstrumentationNodeModuleFile("mysql2/lib/connection.js",Ote,s=>{let o=(0,sw.getConnectionPrototypeToInstrument)(s);return r(o),s},s=>{if(s===void 0)return;let o=(0,sw.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,sw.getConnectionAttributes)(this.config,i._dbSemconvStability,i._netSemconvStability),p=(0,sw.getQueryText)(s,t,c,u,l);i._dbSemconvStability&mf.SemconvStability.OLD&&(f[Ite.ATTR_DB_SYSTEM]=Ite.DB_SYSTEM_VALUE_MYSQL,f[Ite.ATTR_DB_STATEMENT]=p),i._dbSemconvStability&mf.SemconvStability.STABLE&&(f[xte.ATTR_DB_SYSTEM_NAME]=xte.DB_SYSTEM_NAME_VALUE_MYSQL,f[xte.ATTR_DB_QUERY_TEXT]=p);let h=i.tracer.startSpan((0,sw.getSpanName)(s),{kind:qGe.SpanKind.CLIENT,attributes:f});!n&&i.getConfig().addSqlCommenterCommentToQueries&&(arguments[0]=s=typeof s=="string"?(0,BGe.addSqlCommenterComment)(h,s):Object.assign(s,{sql:(0,BGe.addSqlCommenterComment)(h,s.sql)}));let m=(0,sw.once)((g,y)=>{g?h.setStatus({code:qGe.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)}}};_z.MySQL2Instrumentation=Pte});var VGe=w(Tz=>{"use strict";Object.defineProperty(Tz,"__esModule",{value:!0});Tz.MySQL2Instrumentation=void 0;var Y$t=GGe();Object.defineProperty(Tz,"MySQL2Instrumentation",{enumerable:!0,get:function(){return Y$t.MySQL2Instrumentation}})});var WGe,KGe,YGe,Z$t,ZGe,JGe=v(()=>{WGe=Re(VGe(),1);sr();KGe="Mysql2",YGe=rt(KGe,()=>new WGe.MySQL2Instrumentation({responseHook(e){Dr(e,"auto.db.otel.mysql2")}})),Z$t=(()=>({name:KGe,setupOnce(){YGe()}})),ZGe=Z$t});var XGe=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 QGe=w(vz=>{"use strict";Object.defineProperty(vz,"__esModule",{value:!0});vz.endSpan=void 0;var J$t=(Me(),ke(Ze)),X$t=(e,t)=>{t&&(e.recordException(t),e.setStatus({code:J$t.SpanStatusCode.ERROR,message:t.message})),e.end()};vz.endSpan=X$t});var Az=w(Rz=>{"use strict";Object.defineProperty(Rz,"__esModule",{value:!0});Rz.defaultDbStatementSerializer=void 0;var Q$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}],$$t=(e,t)=>{if(Array.isArray(t)&&t.length){let n=Q$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};Rz.defaultDbStatementSerializer=$$t});var $Ge=w(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.PACKAGE_NAME=ow.PACKAGE_VERSION=void 0;ow.PACKAGE_VERSION="0.62.0";ow.PACKAGE_NAME="@opentelemetry/instrumentation-ioredis"});var r2e=w(wz=>{"use strict";Object.defineProperty(wz,"__esModule",{value:!0});wz.IORedisInstrumentation=void 0;var sS=(Me(),ke(Ze)),Su=Jt(),oS=(Nn(),ke(Mr)),bu=XGe(),e2e=Jt(),yN=QGe(),een=Az(),t2e=$Ge(),n2e={requireParentSpan:!0},Nte=class extends Su.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(t2e.PACKAGE_NAME,t2e.PACKAGE_VERSION,{...n2e,...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({...n2e,...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||een.defaultDbStatementSerializer,a=sS.trace.getSpan(sS.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[oS.ATTR_DB_SYSTEM_NAME]=bu.DB_SYSTEM_NAME_VALUE_REDIS,c[oS.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[oS.ATTR_SERVER_ADDRESS]=u,c[oS.ATTR_SERVER_PORT]=l);let f=r.tracer.startSpan(i.name,{kind:sS.SpanKind.CLIENT,attributes:c}),{requestHook:p}=s;p&&(0,e2e.safeExecuteInTheMiddle)(()=>p(f,{moduleVersion:n,cmdName:i.name,cmdArgs:i.args}),h=>{h&&sS.diag.error("ioredis instrumentation: request hook failed",h)},!0);try{let h=t.apply(this,arguments),m=i.resolve;i.resolve=function(y){(0,e2e.safeExecuteInTheMiddle)(()=>s.responseHook?.(f,i.name,i.args,y),b=>{b&&sS.diag.error("ioredis instrumentation: response hook failed",b)},!0),(0,yN.endSpan)(f,null),m(y)};let g=i.reject;return i.reject=function(y){(0,yN.endSpan)(f,y),g(y)},h}catch(h){throw(0,yN.endSpan)(f,h),h}}}_traceConnection(t){let n=this;return function(){let r=sS.trace.getSpan(sS.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[oS.ATTR_DB_SYSTEM_NAME]=bu.DB_SYSTEM_NAME_VALUE_REDIS,i[oS.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[oS.ATTR_SERVER_ADDRESS]=s,i[oS.ATTR_SERVER_PORT]=o);let a=n.tracer.startSpan("connect",{kind:sS.SpanKind.CLIENT,attributes:i});try{let c=t.apply(this,arguments);return(0,yN.endSpan)(a,null),c}catch(c){throw(0,yN.endSpan)(a,c),c}}}};wz.IORedisInstrumentation=Nte});var i2e=w(kz=>{"use strict";Object.defineProperty(kz,"__esModule",{value:!0});kz.IORedisInstrumentation=void 0;var ten=r2e();Object.defineProperty(kz,"IORedisInstrumentation",{enumerable:!0,get:function(){return ten.IORedisInstrumentation}})});var Iz=w(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});aw.PACKAGE_NAME=aw.PACKAGE_VERSION=void 0;aw.PACKAGE_VERSION="0.62.0";aw.PACKAGE_NAME="@opentelemetry/instrumentation-redis"});var s2e=w(aS=>{"use strict";Object.defineProperty(aS,"__esModule",{value:!0});aS.getTracedCreateStreamTrace=aS.getTracedCreateClient=aS.endSpan=void 0;var SN=(Me(),ke(Ze)),nen=(e,t)=>{t&&e.setStatus({code:SN.SpanStatusCode.ERROR,message:t.message}),e.end()};aS.endSpan=nen;var ren=e=>function(){let n=e.apply(this,arguments);return SN.context.bind(SN.context.active(),n)};aS.getTracedCreateClient=ren;var ien=e=>function(){return Object.prototype.hasOwnProperty.call(this,"stream")||Object.defineProperty(this,"stream",{get(){return this._patched_redis_stream},set(n){SN.context.bind(SN.context.active(),n),this._patched_redis_stream=n}}),e.apply(this,arguments)};aS.getTracedCreateStreamTrace=ien});var xz=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 a2e=w(Pz=>{"use strict";Object.defineProperty(Pz,"__esModule",{value:!0});Pz.RedisInstrumentationV2_V3=void 0;var ml=Jt(),Oz=s2e(),o2e=Iz(),bN=(Me(),ke(Ze)),EN=(Nn(),ke(Mr)),a_=xz(),sen=Az(),Cte=class e extends ml.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(o2e.PACKAGE_NAME,o2e.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=bN.trace.getSpan(bN.context.active())===void 0;if(o.requireParentSpan===!0&&a)return r.apply(this,arguments);let c=o?.dbStatementSerializer||sen.defaultDbStatementSerializer,u={};t._semconvStability&ml.SemconvStability.OLD&&Object.assign(u,{[a_.ATTR_DB_SYSTEM]:a_.DB_SYSTEM_VALUE_REDIS,[a_.ATTR_DB_STATEMENT]:c(s.command,s.args)}),t._semconvStability&ml.SemconvStability.STABLE&&Object.assign(u,{[EN.ATTR_DB_SYSTEM_NAME]:a_.DB_SYSTEM_NAME_VALUE_REDIS,[EN.ATTR_DB_OPERATION_NAME]:s.command,[EN.ATTR_DB_QUERY_TEXT]:c(s.command,s.args)});let l=t.tracer.startSpan(`${e.COMPONENT}-${s.command}`,{kind:bN.SpanKind.CLIENT,attributes:u});if(this.connection_options){let f={};t._semconvStability&ml.SemconvStability.OLD&&Object.assign(f,{[a_.ATTR_NET_PEER_NAME]:this.connection_options.host,[a_.ATTR_NET_PEER_PORT]:this.connection_options.port}),t._semconvStability&ml.SemconvStability.STABLE&&Object.assign(f,{[EN.ATTR_SERVER_ADDRESS]:this.connection_options.host,[EN.ATTR_SERVER_PORT]:this.connection_options.port}),l.setAttributes(f)}this.address&&t._semconvStability&ml.SemconvStability.OLD&&l.setAttribute(a_.ATTR_DB_CONNECTION_STRING,`redis://${this.address}`);let d=arguments[0].callback;if(d){let f=bN.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,Oz.endSpan)(l,h),bN.context.with(f,d,this,...arguments)}}try{return r.apply(this,arguments)}catch(f){throw(0,Oz.endSpan)(l,f),f}}}}_getPatchCreateClient(){return function(n){return(0,Oz.getTracedCreateClient)(n)}}_getPatchCreateStream(){return function(n){return(0,Oz.getTracedCreateStreamTrace)(n)}}};Pz.RedisInstrumentationV2_V3=Cte});var u2e=w(Nz=>{"use strict";Object.defineProperty(Nz,"__esModule",{value:!0});Nz.getClientAttributes=void 0;var Mte=(Nn(),ke(Mr)),cw=xz(),c2e=Jt();function oen(e,t,n){let r={};return n&c2e.SemconvStability.OLD&&Object.assign(r,{[cw.ATTR_DB_SYSTEM]:cw.DB_SYSTEM_VALUE_REDIS,[cw.ATTR_NET_PEER_NAME]:t?.socket?.host,[cw.ATTR_NET_PEER_PORT]:t?.socket?.port,[cw.ATTR_DB_CONNECTION_STRING]:aen(e,t?.url)}),n&c2e.SemconvStability.STABLE&&Object.assign(r,{[Mte.ATTR_DB_SYSTEM_NAME]:cw.DB_SYSTEM_NAME_VALUE_REDIS,[Mte.ATTR_SERVER_ADDRESS]:t?.socket?.host,[Mte.ATTR_SERVER_PORT]:t?.socket?.port}),r}Nz.getClientAttributes=oen;function aen(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 p2e=w(Cz=>{"use strict";Object.defineProperty(Cz,"__esModule",{value:!0});Cz.RedisInstrumentationV4_V5=void 0;var sd=(Me(),ke(Ze)),pi=Jt(),l2e=u2e(),cen=Az(),d2e=Iz(),Dte=(Nn(),ke(Mr)),uen=xz(),_N=Symbol("opentelemetry.instrumentation.redis.open_spans"),f2e=Symbol("opentelemetry.instrumentation.redis.multi_command_options"),Lte=class e extends pi.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(d2e.PACKAGE_NAME,d2e.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[_N];return n._endSpansWithRedisReplies(c,a,t),a}).catch(a=>{let c=this[_N];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[f2e]=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,l2e.getClientAttributes)(t._diag,s,t._semconvStability),a=t.tracer.startSpan(`${e.COMPONENT}-connect`,{kind:sd.SpanKind.CLIENT,attributes:o});return sd.context.with(sd.trace.setSpan(sd.context.active(),a),()=>r.apply(this)).then(u=>(a.end(),u)).catch(u=>(a.recordException(u),a.setStatus({code:sd.SpanStatusCode.ERROR,message:u.message}),a.end(),Promise.reject(u)))}}}_traceClientCommand(t,n,r,i){if(sd.trace.getSpan(sd.context.active())===void 0&&this.getConfig().requireParentSpan)return t.apply(n,r);let o=n.options||n[f2e],a=i[0],c=i.slice(1),u=this.getConfig().dbStatementSerializer||cen.defaultDbStatementSerializer,l=(0,l2e.getClientAttributes)(this._diag,o,this._semconvStability);this._semconvStability&pi.SemconvStability.STABLE&&(l[Dte.ATTR_DB_OPERATION_NAME]=a);try{let p=u(a,c);p!=null&&(this._semconvStability&pi.SemconvStability.OLD&&(l[uen.ATTR_DB_STATEMENT]=p),this._semconvStability&pi.SemconvStability.STABLE&&(l[Dte.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:sd.SpanKind.CLIENT,attributes:l}),f=sd.context.with(sd.trace.setSpan(sd.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[_N]=p[_N]||[],p[_N].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(Mz,"__esModule",{value:!0});Mz.RedisInstrumentation=void 0;var len=Jt(),h2e=Iz(),den=a2e(),fen=p2e(),m2e={requireParentSpan:!1},Ute=class extends len.InstrumentationBase{instrumentationV2_V3;instrumentationV4_V5;initialized=!1;constructor(t={}){let n={...m2e,...t};super(h2e.PACKAGE_NAME,h2e.PACKAGE_VERSION,n),this.instrumentationV2_V3=new den.RedisInstrumentationV2_V3(this.getConfig()),this.instrumentationV4_V5=new fen.RedisInstrumentationV4_V5(this.getConfig()),this.initialized=!0}setConfig(t={}){let n={...m2e,...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())}};Mz.RedisInstrumentation=Ute});var y2e=w(Dz=>{"use strict";Object.defineProperty(Dz,"__esModule",{value:!0});Dz.RedisInstrumentation=void 0;var pen=g2e();Object.defineProperty(Dz,"RedisInstrumentation",{enumerable:!0,get:function(){return pen.RedisInstrumentation}})});function TN(e,t){return e.includes(t.toLowerCase())}function jte(e){return TN(Fte,e)?"cache.get":TN(men,e)?"cache.put":void 0}function gen(e,t){return t.some(n=>e.startsWith(n))}function b2e(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)?S2e(i.map(s=>n(s))):[""],r=t[0];return TN(hen,e)&&r!=null?n(r):S2e(t.map(i=>n(i)))}catch{return}}function E2e(e,t,n){if(!jte(e))return!1;for(let r of t)if(gen(r,n))return!0;return!1}function _2e(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 S2e(e){let t=[],n=r=>{r.forEach(i=>{Array.isArray(i)?n(i):t.push(i)})};return n(e),t}var hen,Fte,men,T2e=v(()=>{hen=["get","set","setex"],Fte=["get","mget"],men=["set","setex"]});var v2e,R2e,Lz,vN,A2e,yen,Sen,w2e,ben,k2e,I2e=v(()=>{v2e=Re(i2e(),1),R2e=Re(y2e(),1);st();sr();T2e();Lz="Redis",vN={},A2e=(e,t,n,r)=>{e.setAttribute(At,"auto.db.otel.redis");let i=b2e(t,n),s=jte(t);if(!i||!s||!vN.cachePrefixes||!E2e(t,i,vN.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=_2e(r);c&&e.setAttribute(cX,c),TN(Fte,t)&&c!==void 0&&e.setAttribute(oX,c>0),e.setAttributes({[zt]:s,[aX]:i});let u=i.join(", ");e.updateName(vN.maxCacheKeyLength?_y(u,vN.maxCacheKeyLength):u)},yen=rt(`${Lz}.IORedis`,()=>new v2e.IORedisInstrumentation({responseHook:A2e})),Sen=rt(`${Lz}.Redis`,()=>new R2e.RedisInstrumentation({responseHook:A2e})),w2e=Object.assign(()=>{yen(),Sen()},{id:Lz}),ben=((e={})=>({name:Lz,setupOnce(){vN=e,w2e()}})),k2e=ben});var x2e=w(Uz=>{"use strict";Object.defineProperty(Uz,"__esModule",{value:!0});Uz.EVENT_LISTENERS_SET=void 0;Uz.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.pg.eventListenersSet")});var Hte=w(RN=>{"use strict";Object.defineProperty(RN,"__esModule",{value:!0});RN.AttributeNames=void 0;var Een;(function(e){e.PG_VALUES="db.postgresql.values",e.PG_PLAN="db.postgresql.plan",e.IDLE_TIMEOUT_MILLIS="db.postgresql.idle.timeout.millis",e.MAX_CLIENT="db.postgresql.max.client"})(Een=RN.AttributeNames||(RN.AttributeNames={}))});var qte=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 Bte=w(AN=>{"use strict";Object.defineProperty(AN,"__esModule",{value:!0});AN.SpanNames=void 0;var _en;(function(e){e.QUERY_PREFIX="pg.query",e.CONNECT="pg.connect",e.POOL_CONNECT="pg-pool.connect"})(_en=AN.SpanNames||(AN.SpanNames={}))});var L2e=w(qn=>{"use strict";Object.defineProperty(qn,"__esModule",{value:!0});qn.sanitizedErrorMessage=qn.isObjectWithTextString=qn.getErrorMessage=qn.patchClientConnectCallback=qn.patchCallbackPGPool=qn.updateCounter=qn.getPoolName=qn.patchCallback=qn.handleExecutionResult=qn.handleConfigQuery=qn.shouldSkipInstrumentation=qn.getSemanticAttributesFromPoolConnection=qn.getSemanticAttributesFromConnection=qn.getConnectionString=qn.parseAndMaskConnectionString=qn.parseNormalizedOperationName=qn.getQuerySpanName=void 0;var cS=(Me(),ke(Ze)),Fz=Hte(),od=(Nn(),ke(Mr)),ds=qte(),c_=Jt(),O2e=Bte();function P2e(e,t){if(!t)return O2e.SpanNames.QUERY_PREFIX;let n=typeof t.name=="string"&&t.name?t.name:N2e(t.text);return`${O2e.SpanNames.QUERY_PREFIX}:${n}${e?` ${e}`:""}`}qn.getQuerySpanName=P2e;function N2e(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}qn.parseNormalizedOperationName=N2e;function C2e(e){try{let t=new URL(e);return t.username="",t.password="",t.toString()}catch{return"postgresql://localhost:5432/"}}qn.parseAndMaskConnectionString=C2e;function zte(e){if("connectionString"in e&&e.connectionString)return C2e(e.connectionString);let t=e.host||"localhost",n=e.port||5432,r=e.database||"";return`postgresql://${t}:${n}/${r}`}qn.getConnectionString=zte;function jz(e){if(Number.isInteger(e))return e}function M2e(e,t){let n={};return t&c_.SemconvStability.OLD&&(n={...n,[ds.ATTR_DB_SYSTEM]:ds.DB_SYSTEM_VALUE_POSTGRESQL,[ds.ATTR_DB_NAME]:e.database,[ds.ATTR_DB_CONNECTION_STRING]:zte(e),[ds.ATTR_DB_USER]:e.user,[ds.ATTR_NET_PEER_NAME]:e.host,[ds.ATTR_NET_PEER_PORT]:jz(e.port)}),t&c_.SemconvStability.STABLE&&(n={...n,[od.ATTR_DB_SYSTEM_NAME]:od.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[od.ATTR_DB_NAMESPACE]:e.namespace,[od.ATTR_SERVER_ADDRESS]:e.host,[od.ATTR_SERVER_PORT]:jz(e.port)}),n}qn.getSemanticAttributesFromConnection=M2e;function Ten(e,t){let n;try{n=e.connectionString?new URL(e.connectionString):void 0}catch{n=void 0}let r={[Fz.AttributeNames.IDLE_TIMEOUT_MILLIS]:e.idleTimeoutMillis,[Fz.AttributeNames.MAX_CLIENT]:e.maxClient};return t&c_.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]:zte(e),[ds.ATTR_NET_PEER_NAME]:n?.hostname??e.host,[ds.ATTR_NET_PEER_PORT]:Number(n?.port)||jz(e.port),[ds.ATTR_DB_USER]:n?.username??e.user}),t&c_.SemconvStability.STABLE&&(r={...r,[od.ATTR_DB_SYSTEM_NAME]:od.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[od.ATTR_DB_NAMESPACE]:e.namespace,[od.ATTR_SERVER_ADDRESS]:n?.hostname??e.host,[od.ATTR_SERVER_PORT]:Number(n?.port)||jz(e.port)}),r}qn.getSemanticAttributesFromPoolConnection=Ten;function ven(e){return e.requireParentSpan===!0&&cS.trace.getSpan(cS.context.active())===void 0}qn.shouldSkipInstrumentation=ven;function Ren(e,t,n,r){let{connectionParameters:i}=this,s=i.database,o=P2e(s,r),a=e.startSpan(o,{kind:cS.SpanKind.CLIENT,attributes:M2e(i,n)});if(!r)return a;if(r.text&&(n&c_.SemconvStability.OLD&&a.setAttribute(ds.ATTR_DB_STATEMENT,r.text),n&c_.SemconvStability.STABLE&&a.setAttribute(od.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(Fz.AttributeNames.PG_VALUES,c)}catch(c){cS.diag.error("failed to stringify ",r.values,c)}return typeof r.name=="string"&&a.setAttribute(Fz.AttributeNames.PG_PLAN,r.name),a}qn.handleConfigQuery=Ren;function D2e(e,t,n){typeof e.responseHook=="function"&&(0,c_.safeExecuteInTheMiddle)(()=>{e.responseHook(t,{data:n})},r=>{r&&cS.diag.error("Error running response hook",r)},!0)}qn.handleExecutionResult=D2e;function Aen(e,t,n,r,i){return function(o,a){o?(Object.prototype.hasOwnProperty.call(o,"code")&&(r[od.ATTR_ERROR_TYPE]=o.code),o instanceof Error&&t.recordException(Hz(o)),t.setStatus({code:cS.SpanStatusCode.ERROR,message:o.message})):D2e(e,t,a),i(),t.end(),n.call(this,o,a)}}qn.patchCallback=Aen;function wen(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()}qn.getPoolName=wen;function ken(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}}qn.updateCounter=ken;function Ien(e,t){return function(r,i,s){r&&(r instanceof Error&&e.recordException(Hz(r)),e.setStatus({code:cS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.call(this,r,i,s)}}qn.patchCallbackPGPool=Ien;function xen(e,t){return function(r){r&&(r instanceof Error&&e.recordException(Hz(r)),e.setStatus({code:cS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.apply(this,arguments)}}qn.patchClientConnectCallback=xen;function Oen(e){return typeof e=="object"&&e!==null&&"message"in e?String(e.message):void 0}qn.getErrorMessage=Oen;function Pen(e){return typeof e=="object"&&typeof e?.text=="string"}qn.isObjectWithTextString=Pen;function Hz(e){let t=e?.name??"PostgreSQLError",n=e?.code??"UNKNOWN";return`PostgreSQL error of type '${t}' occurred (code: ${n})`}qn.sanitizedErrorMessage=Hz});var U2e=w(uw=>{"use strict";Object.defineProperty(uw,"__esModule",{value:!0});uw.PACKAGE_NAME=uw.PACKAGE_VERSION=void 0;uw.PACKAGE_VERSION="0.66.0";uw.PACKAGE_NAME="@opentelemetry/instrumentation-pg"});var z2e=w(Bz=>{"use strict";Object.defineProperty(Bz,"__esModule",{value:!0});Bz.PgInstrumentation=void 0;var Uc=Jt(),Ur=(Me(),ke(Ze)),F2e=x2e(),Zi=L2e(),j2e=wte(),H2e=U2e(),q2e=Bte(),qz=pr(),gf=(Nn(),ke(Mr)),wN=qte();function lw(e){return e[Symbol.toStringTag]==="Module"?e.default:e}var Gte=class extends Uc.InstrumentationBase{_connectionsCounter={used:0,idle:0,pending:0};_semconvStability;constructor(t={}){super(H2e.PACKAGE_NAME,H2e.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(wN.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(wN.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=lw(a);return this._patchPgClient(c.Client),a},a=>{let c=lw(a);return this._unpatchPgClient(c.Client),a},[i,r]),o=new Uc.InstrumentationNodeModuleDefinition("pg-pool",n,a=>{let c=lw(a);return(0,Uc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect"),this._wrap(c.prototype,"connect",this._getPoolConnectPatch()),c},a=>{let c=lw(a);(0,Uc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect")});return[s,o]}_patchPgClient(t){if(!t)return;let n=lw(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=lw(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(Zi.shouldSkipInstrumentation(s)||s.ignoreConnectSpans)return n.call(this,i);let o=t.tracer.startSpan(q2e.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 B2e(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(wN.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,qz.hrTimeToMilliseconds)((0,qz.hrTimeDuration)(n,(0,qz.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,qz.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={[wN.ATTR_DB_SYSTEM]:wN.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]=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,j2e.addSqlCommenterComment)(p,o):c&&!("name"in o)&&(i[0]={...o,text:(0,j2e.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]=Zi.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=Zi.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(Zi.sanitizedErrorMessage(g)),p.setStatus({code:Ur.SpanStatusCode.ERROR,message:Zi.getErrorMessage(g)}),p.end(),g}return m instanceof Promise?m.then(g=>new Promise(y=>{Zi.handleExecutionResult(t.getConfig(),p,g),d(),p.end(),y(g)})).catch(g=>new Promise((y,b)=>{g instanceof Error&&p.recordException(Zi.sanitizedErrorMessage(g)),p.setStatus({code:Ur.SpanStatusCode.ERROR,message:g.message}),d(),p.end(),b(g)})):m})}_setPoolConnectEventListeners(t){if(t[F2e.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[F2e.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(q2e.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 B2e(o,a)}}};Bz.PgInstrumentation=Gte;function B2e(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 G2e=w(dw=>{"use strict";Object.defineProperty(dw,"__esModule",{value:!0});dw.AttributeNames=dw.PgInstrumentation=void 0;var Nen=z2e();Object.defineProperty(dw,"PgInstrumentation",{enumerable:!0,get:function(){return Nen.PgInstrumentation}});var Cen=Hte();Object.defineProperty(dw,"AttributeNames",{enumerable:!0,get:function(){return Cen.AttributeNames}})});var V2e,W2e,K2e,Men,Y2e,Z2e=v(()=>{V2e=Re(G2e(),1);sr();W2e="Postgres",K2e=rt(W2e,V2e.PgInstrumentation,e=>({requireParentSpan:!0,requestHook(t){Dr(t,"auto.db.otel.postgres")},ignoreConnectSpans:e?.ignoreConnectSpans??!1})),Men=(e=>({name:W2e,setupOnce(){K2e(e)}})),Y2e=Men});var uS,Wte,J2e,Den,Len,X2e,Vte,Uen,Q2e,$2e=v(()=>{Me();uS=Re(Jt(),1);Nn();st();sr();QE();Wte="PostgresJs",J2e=[">=3.0.0 <4"],Den=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,Len=Symbol.for("sentry.query.from.instrumented.sql"),X2e=rt(Wte,e=>new Vte({requireParentSpan:e?.requireParentSpan??!0,requestHook:e?.requestHook})),Vte=class extends uS.InstrumentationBase{constructor(t){super("sentry-postgres-js",Cn,t)}init(){let t=new uS.InstrumentationNodeModuleDefinition("postgres",J2e,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 uS.InstrumentationNodeModuleFile(`postgres/${n}/query.js`,J2e,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 iQ(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:(_P(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(yR,r);return}let i=n?.match(Den);i?.[1]&&t.setAttribute(yR,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({[SE]:"postgres",[v7]:o});let c=n.getConfig(),{requestHook:u}=c;u&&(0,uS.safeExecuteInTheMiddle)(()=>u(a,o,void 0),f=>{f&&(a.setAttribute("sentry.hook.error","requestHook failed"),So&&Z.error(`Error in requestHook for ${Wte} 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(R7,h?.[0]?.code||"unknown"),a.setAttribute(A7,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}},Uen=(e=>({name:Wte,setupOnce(){X2e(e)}})),Q2e=Uen});var eVe=w(kN=>{"use strict";Object.defineProperty(kN,"__esModule",{value:!0});kN.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=kN.SeverityNumber||(kN.SeverityNumber={}))});var Gz=w(fw=>{"use strict";Object.defineProperty(fw,"__esModule",{value:!0});fw.NOOP_LOGGER=fw.NoopLogger=void 0;var zz=class{emit(t){}};fw.NoopLogger=zz;fw.NOOP_LOGGER=new zz});var Wz=w(pw=>{"use strict";Object.defineProperty(pw,"__esModule",{value:!0});pw.NOOP_LOGGER_PROVIDER=pw.NoopLoggerProvider=void 0;var jen=Gz(),Vz=class{getLogger(t,n,r){return new jen.NoopLogger}};pw.NoopLoggerProvider=Vz;pw.NOOP_LOGGER_PROVIDER=new Vz});var Yte=w(Kz=>{"use strict";Object.defineProperty(Kz,"__esModule",{value:!0});Kz.ProxyLogger=void 0;var Hen=Gz(),Kte=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}};Kz.ProxyLogger=Kte});var Jte=w(Yz=>{"use strict";Object.defineProperty(Yz,"__esModule",{value:!0});Yz.ProxyLoggerProvider=void 0;var qen=Wz(),Ben=Yte(),Zte=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new Ben.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:qen.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)}};Yz.ProxyLoggerProvider=Zte});var tVe=w(Zz=>{"use strict";Object.defineProperty(Zz,"__esModule",{value:!0});Zz._globalThis=void 0;Zz._globalThis=typeof globalThis=="object"?globalThis:global});var nVe=w(Jz=>{"use strict";Object.defineProperty(Jz,"__esModule",{value:!0});Jz._globalThis=void 0;var zen=tVe();Object.defineProperty(Jz,"_globalThis",{enumerable:!0,get:function(){return zen._globalThis}})});var rVe=w(Xz=>{"use strict";Object.defineProperty(Xz,"__esModule",{value:!0});Xz._globalThis=void 0;var Gen=nVe();Object.defineProperty(Xz,"_globalThis",{enumerable:!0,get:function(){return Gen._globalThis}})});var iVe=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 Ven=rVe();$p.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");$p._global=Ven._globalThis;function Wen(e,t,n){return r=>r===e?t:n}$p.makeGetter=Wen;$p.API_BACKWARDS_COMPATIBILITY_VERSION=1});var oVe=w(Qz=>{"use strict";Object.defineProperty(Qz,"__esModule",{value:!0});Qz.LogsAPI=void 0;var ad=iVe(),Ken=Wz(),sVe=Jte(),Xte=class e{constructor(){this._proxyLoggerProvider=new sVe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return ad._global[ad.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(ad._global[ad.GLOBAL_LOGS_API_KEY]=(0,ad.makeGetter)(ad.API_BACKWARDS_COMPATIBILITY_VERSION,t,Ken.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=ad._global[ad.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(ad._global,ad.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete ad._global[ad.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new sVe.ProxyLoggerProvider}};Qz.LogsAPI=Xte});var Qte=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 Yen=eVe();Object.defineProperty(Bo,"SeverityNumber",{enumerable:!0,get:function(){return Yen.SeverityNumber}});var aVe=Gz();Object.defineProperty(Bo,"NOOP_LOGGER",{enumerable:!0,get:function(){return aVe.NOOP_LOGGER}});Object.defineProperty(Bo,"NoopLogger",{enumerable:!0,get:function(){return aVe.NoopLogger}});var cVe=Wz();Object.defineProperty(Bo,"NOOP_LOGGER_PROVIDER",{enumerable:!0,get:function(){return cVe.NOOP_LOGGER_PROVIDER}});Object.defineProperty(Bo,"NoopLoggerProvider",{enumerable:!0,get:function(){return cVe.NoopLoggerProvider}});var Zen=Yte();Object.defineProperty(Bo,"ProxyLogger",{enumerable:!0,get:function(){return Zen.ProxyLogger}});var Jen=Jte();Object.defineProperty(Bo,"ProxyLoggerProvider",{enumerable:!0,get:function(){return Jen.ProxyLoggerProvider}});var Xen=oVe();Bo.logs=Xen.LogsAPI.getInstance()});var uVe=w(hw=>{"use strict";Object.defineProperty(hw,"__esModule",{value:!0});hw.disableInstrumentations=hw.enableInstrumentations=void 0;function Qen(e,t,n,r){for(let i=0,s=e.length;it.disable())}hw.disableInstrumentations=$en});var fVe=w($z=>{"use strict";Object.defineProperty($z,"__esModule",{value:!0});$z.registerInstrumentations=void 0;var lVe=(Me(),ke(Ze)),etn=Qte(),dVe=uVe();function ttn(e){let t=e.tracerProvider||lVe.trace.getTracerProvider(),n=e.meterProvider||lVe.metrics.getMeterProvider(),r=e.loggerProvider||etn.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,dVe.enableInstrumentations)(i,t,n,r),()=>{(0,dVe.disableInstrumentations)(i)}}$z.registerInstrumentations=ttn});var _Ve=w(eG=>{"use strict";Object.defineProperty(eG,"__esModule",{value:!0});eG.satisfies=void 0;var nne=(Me(),ke(Ze)),yVe=/^(?: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-]+)*))?$/,ntn=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,rtn={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function itn(e,t,n){if(!stn(e))return nne.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=utn(e);if(!r)return!1;let i=[],s=SVe(r,t,i,n);return s&&!n?.includePrerelease?atn(r,i):s}eG.satisfies=itn;function stn(e){return typeof e=="string"&&yVe.test(e)}function SVe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if($te(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=Otn(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!$te(e,s,n,r))return!1;return!0}return $te(e,t,n,r)}function $te(e,t,n,r){if(t=ctn(t,r),t.includes(" "))return SVe(e,t,n,r);{let i=ltn(t);return n.push(i),otn(e,i)}}function otn(e,t){if(t.invalid)return!1;if(!t.version||tne(t.version))return!0;let n=hVe(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=hVe(r,i)}return rtn[t.op]?.includes(n)}function atn(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function ctn(e,t){return e=e.trim(),e=Itn(e,t),e=ktn(e),e=xtn(e,t),e=e.trim(),e}function Fc(e){return!e||e.toLowerCase()==="x"||e==="*"}function utn(e){let t=e.match(yVe);if(!t){nne.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 ltn(e){if(!e)return{};let t=e.match(ntn);if(!t)return nne.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 tne(e){return e==="*"||e==="x"||e==="X"}function pVe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function dtn(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 ftn(e,t){if(tne(e)||tne(t))return 0;let[n,r]=dtn(pVe(e),pVe(t));return n>r?1:n)?=?)",mVe=`(?:${EVe}|${ptn})`,mtn=`(?:-(${mVe}(?:\\.${mVe})*))`,gVe=`${bVe}+`,gtn=`(?:\\+(${gVe}(?:\\.${gVe})*))`,ene=`${EVe}|x|X|\\*`,IN=`[v=\\s]*(${ene})(?:\\.(${ene})(?:\\.(${ene})(?:${mtn})?${gtn}?)?)?`,ytn=`^${htn}\\s*${IN}$`,Stn=new RegExp(ytn),btn=`^\\s*(${IN})\\s+-\\s+(${IN})\\s*$`,Etn=new RegExp(btn),_tn="(?:~>?)",Ttn=`^${_tn}${IN}$`,vtn=new RegExp(Ttn),Rtn="(?:\\^)",Atn=`^${Rtn}${IN}$`,wtn=new RegExp(Atn);function ktn(e){let t=vtn;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 Itn(e,t){let n=wtn,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 xtn(e,t){let n=Stn;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 Otn(e,t){let n=Etn;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 rne=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 xN(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var Ptn=(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 xN(i,"__original",r),xN(i,"__unwrap",()=>{e[t]===i&&xN(e,t,r)}),xN(i,"__wrapped",!0),xN(e,t,i),i};pa.wrap=Ptn;var Ntn=(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=Ntn;var Ctn=(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=Ctn;var Mtn=(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=Mtn;function ON(e){e&&e.logger&&(typeof e.logger!="function"?jc("new logger isn't a function, not replacing"):jc=e.logger)}pa.default=ON;ON.wrap=pa.wrap;ON.massWrap=pa.massWrap;ON.unwrap=pa.unwrap;ON.massUnwrap=pa.massUnwrap});var TVe=w(nG=>{"use strict";Object.defineProperty(nG,"__esModule",{value:!0});nG.InstrumentationAbstract=void 0;var ine=(Me(),ke(Ze)),Dtn=Qte(),tG=rne(),sne=class{instrumentationName;instrumentationVersion;_config={};_tracer;_meter;_logger;_diag;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=ine.diag.createComponentLogger({namespace:t}),this._tracer=ine.trace.getTracer(t,n),this._meter=ine.metrics.getMeter(t,n),this._logger=Dtn.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=tG.wrap;_unwrap=tG.unwrap;_massWrap=tG.massWrap;_massUnwrap=tG.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)}}};nG.InstrumentationAbstract=sne});var vVe=w(lS=>{"use strict";Object.defineProperty(lS,"__esModule",{value:!0});lS.ModuleNameTrie=lS.ModuleNameSeparator=void 0;lS.ModuleNameSeparator="/";var rG=class{hooks=[];children=new Map},one=class{_trie=new rG;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(lS.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new rG,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(lS.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))}};lS.ModuleNameTrie=one});var AVe=w(iG=>{"use strict";Object.defineProperty(iG,"__esModule",{value:!0});iG.RequireInTheMiddleSingleton=void 0;var Ltn=RE(),RVe=Y("path"),ane=vVe(),Utn=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),cne=class e{_moduleNameTrie=new ane.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 Utn?new e:this._instance=this._instance??new e}};iG.RequireInTheMiddleSingleton=cne;function Ftn(e){return RVe.sep!==ane.ModuleNameSeparator?e.split(RVe.sep).join(ane.ModuleNameSeparator):e}});var OVe=w(PN=>{var wVe=[],une=new WeakMap,kVe=new WeakMap,IVe=new Map,xVe=[],jtn={set(e,t,n){let r=une.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=kVe.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=une.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function Htn(e,t,n,r,i){IVe.set(e,i),une.set(t,n),kVe.set(t,r);let s=new Proxy(t,jtn);wVe.forEach(o=>o(e,s,i)),xVe.push([e,s,i])}PN.register=Htn;PN.importHooks=wVe;PN.specifiers=IVe;PN.toHook=xVe});var MVe=w((h1r,gw)=>{var PVe=Y("path"),qtn=xO(),{fileURLToPath:Btn}=Y("url"),{MessageChannel:ztn}=Y("worker_threads"),{isBuiltin:lne}=Y("module");lne||(lne=()=>!0);var{importHooks:dne,specifiers:Gtn,toHook:Vtn}=OVe();function NVe(e){dne.push(e),Vtn.forEach(([t,n,r])=>e(t,n,r))}function CVe(e){let t=dne.indexOf(e);t>-1&&dne.splice(t,1)}function mw(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var fne;function Wtn(){let{port1:e,port2:t}=new ztn,n=0,r;fne=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 NN(e,t,n){if(!(this instanceof NN))return new NN(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;fne&&Array.isArray(e)&&fne(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);lne(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=Btn(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=qtn(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)mw(n,s,u,void 0);else if(d===i){if(!l)mw(n,s,i,l);else if(l.endsWith(Gtn.get(a)))mw(n,s,i,l);else if(r){let f=i+PVe.sep+PVe.relative(l,u);mw(n,s,f,l)}}else d===o&&mw(n,s,o,l);else mw(n,s,i,l)},NVe(this._iitmHook)}NN.prototype.unhook=function(){CVe(this._iitmHook)};gw.exports=NN;gw.exports.Hook=NN;gw.exports.addHook=NVe;gw.exports.removeHook=CVe;gw.exports.createAddHookMessageChannel=Wtn});var pne=w(dS=>{"use strict";Object.defineProperty(dS,"__esModule",{value:!0});dS.isWrapped=dS.safeExecuteInTheMiddleAsync=dS.safeExecuteInTheMiddle=void 0;function Ktn(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}dS.safeExecuteInTheMiddle=Ktn;async function Ytn(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}}dS.safeExecuteInTheMiddleAsync=Ytn;function Ztn(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}dS.isWrapped=Ztn});var UVe=w(sG=>{"use strict";Object.defineProperty(sG,"__esModule",{value:!0});sG.InstrumentationBase=void 0;var CN=Y("path"),DVe=Y("util"),Jtn=_Ve(),hne=rne(),Xtn=TVe(),Qtn=AVe(),$tn=MVe(),MN=(Me(),ke(Ze)),enn=RE(),tnn=Y("fs"),nnn=pne(),mne=class extends Xtn.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=Qtn.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,nnn.isWrapped)(t[n])&&this._unwrap(t,n),DVe.types.isProxy(t)){let i=(0,hne.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,hne.wrap)(t,n,r)};_unwrap=(t,n)=>DVe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,hne.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{MN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{MN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=Y.resolve(n);Y.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,tnn.readFileSync)(CN.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{MN.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return LVe(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=CN.normalize(r);return o.filter(u=>u.name===a).filter(u=>LVe(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&CN.isAbsolute(a)){let u=CN.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=CN.isAbsolute(t.name)?new enn.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new $tn.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}};sG.InstrumentationBase=mne;function LVe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,Jtn.satisfies)(t,r,{includePrerelease:n}))}});var FVe=w(oG=>{"use strict";Object.defineProperty(oG,"__esModule",{value:!0});oG.normalize=void 0;var rnn=Y("path");Object.defineProperty(oG,"normalize",{enumerable:!0,get:function(){return rnn.normalize}})});var jVe=w(yw=>{"use strict";Object.defineProperty(yw,"__esModule",{value:!0});yw.normalize=yw.InstrumentationBase=void 0;var inn=UVe();Object.defineProperty(yw,"InstrumentationBase",{enumerable:!0,get:function(){return inn.InstrumentationBase}});var snn=FVe();Object.defineProperty(yw,"normalize",{enumerable:!0,get:function(){return snn.normalize}})});var gne=w(Sw=>{"use strict";Object.defineProperty(Sw,"__esModule",{value:!0});Sw.normalize=Sw.InstrumentationBase=void 0;var HVe=jVe();Object.defineProperty(Sw,"InstrumentationBase",{enumerable:!0,get:function(){return HVe.InstrumentationBase}});Object.defineProperty(Sw,"normalize",{enumerable:!0,get:function(){return HVe.normalize}})});var qVe=w(aG=>{"use strict";Object.defineProperty(aG,"__esModule",{value:!0});aG.InstrumentationNodeModuleDefinition=void 0;var yne=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||[]}};aG.InstrumentationNodeModuleDefinition=yne});var BVe=w(cG=>{"use strict";Object.defineProperty(cG,"__esModule",{value:!0});cG.InstrumentationNodeModuleFile=void 0;var onn=gne(),Sne=class{supportedVersions;patch;unpatch;name;constructor(t,n,r,i){this.supportedVersions=n,this.patch=r,this.unpatch=i,this.name=(0,onn.normalize)(t)}};cG.InstrumentationNodeModuleFile=Sne});var zVe=w(u_=>{"use strict";Object.defineProperty(u_,"__esModule",{value:!0});u_.semconvStabilityFromStr=u_.SemconvStability=void 0;var uG;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(uG=u_.SemconvStability||(u_.SemconvStability={}));function ann(e,t){let n=uG.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=uG.DUPLICATE;break}else i.toLowerCase()===e&&(n=uG.STABLE);return n}u_.semconvStabilityFromStr=ann});var VVe=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 cnn=fVe();Object.defineProperty(Js,"registerInstrumentations",{enumerable:!0,get:function(){return cnn.registerInstrumentations}});var unn=gne();Object.defineProperty(Js,"InstrumentationBase",{enumerable:!0,get:function(){return unn.InstrumentationBase}});var lnn=qVe();Object.defineProperty(Js,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return lnn.InstrumentationNodeModuleDefinition}});var dnn=BVe();Object.defineProperty(Js,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return dnn.InstrumentationNodeModuleFile}});var bne=pne();Object.defineProperty(Js,"isWrapped",{enumerable:!0,get:function(){return bne.isWrapped}});Object.defineProperty(Js,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return bne.safeExecuteInTheMiddle}});Object.defineProperty(Js,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return bne.safeExecuteInTheMiddleAsync}});var GVe=zVe();Object.defineProperty(Js,"SemconvStability",{enumerable:!0,get:function(){return GVe.SemconvStability}});Object.defineProperty(Js,"semconvStabilityFromStr",{enumerable:!0,get:function(){return GVe.semconvStabilityFromStr}})});function hnn(){let e=bw[_ne];return e?.helper?e.helper:bw[Ene]?.helper}function mnn(e){let t={helper:e};bw[_ne]=t,bw[Ene]=t}function gnn(){delete bw[_ne],delete bw[Ene]}function bnn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}function YVe(e,t,n,r,i){if(ZVe(t.name,i))return;let s={attributes:t.attributes,kind:bnn(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)YVe(e,c,n,r,i);o.end(t.endTime)})}function WVe(e,t){return _nn(t)?t.then(n=>(e.end(),n),n=>{throw e.end(),n}):(e.end(),t)}function _nn(e){return e!=null&&typeof e.then=="function"}function ZVe(e,t){return t.some(n=>typeof n=="string"?n===e:n.test(e))}var lG,fnn,pnn,Ene,_ne,bw,ynn,Snn,Enn,JVe,KVe,Tnn,vnn,XVe,QVe=v(()=>{Me();lG=Re(VVe(),1);Me();fnn={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"}},pnn=fnn.version.split(".")[0],Ene="PRISMA_INSTRUMENTATION",_ne=`V${pnn}_PRISMA_INSTRUMENTATION`,bw=globalThis;ynn=process.env.PRISMA_SHOW_ALL_TRACES==="true",Snn="00-10-10-00";Enn=class{tracerProvider;ignoreSpanTypes;constructor({tracerProvider:e,ignoreSpanTypes:t}){this.tracerProvider=e,this.ignoreSpanTypes=t}isEnabled(){return!0}getTraceParent(e){let t=jt.getSpanContext(e??Ve.active());return t?`00-${t.traceId}-${t.spanId}-0${t.traceFlags}`:Snn}dispatchEngineSpans(e){let t=this.tracerProvider.getTracer("prisma"),n=new Map,r=e.filter(i=>i.parentId===null);for(let i of r)YVe(t,i,e,n,this.ignoreSpanTypes)}getActiveContext(){return Ve.active()}runInChildSpan(e,t){if(typeof e=="string"&&(e={name:e}),e.internal&&!ynn)return t();let n=this.tracerProvider.getTracer("prisma"),r=e.context??this.getActiveContext(),i=`prisma:client:${e.name}`;if(ZVe(i,this.ignoreSpanTypes))return t();if(e.active===!1){let s=n.startSpan(i,e,r);return WVe(s,t(s,r))}return n.startActiveSpan(i,e,s=>WVe(s,t(s,r)))}};JVe={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},KVe=JVe.version,Tnn=JVe.name,vnn="@prisma/client",XVe=class extends lG.InstrumentationBase{tracerProvider;constructor(e={}){super(Tnn,KVe,e)}setTracerProvider(e){this.tracerProvider=e}init(){return[new lG.InstrumentationNodeModuleDefinition(vnn,[KVe])]}enable(){let e=this._config;mnn(new Enn({tracerProvider:this.tracerProvider??jt.getTracerProvider(),ignoreSpanTypes:e.ignoreSpanTypes??[]}))}disable(){gnn()}isEnabled(){return hnn()!==void 0}}});function Rnn(e){return!!e&&typeof e=="object"&&"dispatchEngineSpans"in e}function eWe(){let e=globalThis.PRISMA_INSTRUMENTATION;return e&&typeof e=="object"&&"helper"in e?e.helper:void 0}function Ann(e){return e==="client"?$r.CLIENT:$r.INTERNAL}var $Ve,Tne,wnn,tWe,nWe=v(()=>{Me();QVe();st();sr();$Ve="Prisma";Tne=class extends XVe{constructor(t){super(t?.instrumentationConfig)}enable(){super.enable();let t=eWe();Rnn(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=Ann(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}})}};wnn=rt($Ve,e=>new Tne(e)),tWe=e=>({name:$Ve,setupOnce(){wnn(e)},setup(t){eWe()&&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 rWe=w(Ew=>{"use strict";Object.defineProperty(Ew,"__esModule",{value:!0});Ew.PACKAGE_NAME=Ew.PACKAGE_VERSION=void 0;Ew.PACKAGE_VERSION="0.60.0";Ew.PACKAGE_NAME="@opentelemetry/instrumentation-hapi"});var vne=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 iWe=w(dG=>{"use strict";Object.defineProperty(dG,"__esModule",{value:!0});dG.ATTR_HTTP_METHOD=void 0;dG.ATTR_HTTP_METHOD="http.method"});var Rne=w(DN=>{"use strict";Object.defineProperty(DN,"__esModule",{value:!0});DN.AttributeNames=void 0;var knn;(function(e){e.HAPI_TYPE="hapi.type",e.PLUGIN_NAME="hapi.plugin.name",e.EXT_TYPE="server.ext.type"})(knn=DN.AttributeNames||(DN.AttributeNames={}))});var aWe=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 sWe=(Nn(),ke(Mr)),Inn=iWe(),LN=vne(),fS=Rne(),oWe=Jt();function xnn(e){return e.name?e.name:e.pkg.name}Xs.getPluginName=xnn;var Onn=e=>typeof e=="string"&&LN.HapiLifecycleMethodNames.has(e);Xs.isLifecycleExtType=Onn;var Pnn=e=>{let t=e?.type;return t!==void 0&&(0,Xs.isLifecycleExtType)(t)};Xs.isLifecycleExtEventObj=Pnn;var Nnn=e=>Array.isArray(e)&&e.length<=3&&(0,Xs.isLifecycleExtType)(e[0])&&typeof e[1]=="function";Xs.isDirectExtInput=Nnn;var Cnn=e=>!Array.isArray(e);Xs.isPatchableExtMethod=Cnn;var Mnn=(e,t,n)=>{let r={[sWe.ATTR_HTTP_ROUTE]:e.path};t&oWe.SemconvStability.OLD&&(r[Inn.ATTR_HTTP_METHOD]=e.method),t&oWe.SemconvStability.STABLE&&(r[sWe.ATTR_HTTP_REQUEST_METHOD]=e.method);let i;return n?(r[fS.AttributeNames.HAPI_TYPE]=LN.HapiLayerType.PLUGIN,r[fS.AttributeNames.PLUGIN_NAME]=n,i=`${n}: route - ${e.path}`):(r[fS.AttributeNames.HAPI_TYPE]=LN.HapiLayerType.ROUTER,i=`route - ${e.path}`),{attributes:r,name:i}};Xs.getRouteMetadata=Mnn;var Dnn=(e,t,n)=>{let r=`ext - ${e}`;return n&&n!=="method"&&(r=`ext - ${e} - ${n}`),t?{attributes:{[fS.AttributeNames.EXT_TYPE]:e,[fS.AttributeNames.HAPI_TYPE]:LN.HapiLayerType.EXT,[fS.AttributeNames.PLUGIN_NAME]:t},name:`${t}: ${r}`}:{attributes:{[fS.AttributeNames.EXT_TYPE]:e,[fS.AttributeNames.HAPI_TYPE]:LN.HapiLayerType.EXT},name:r}};Xs.getExtMetadata=Dnn;var Lnn=e=>"plugin"in e?"plugin"in e.plugin?e.plugin.plugin:e.plugin:e;Xs.getPluginFromInput=Lnn});var lWe=w(fG=>{"use strict";Object.defineProperty(fG,"__esModule",{value:!0});fG.HapiInstrumentation=void 0;var gl=(Me(),ke(Ze)),cWe=pr(),UN=Jt(),uWe=rWe(),FN=vne(),Lm=aWe(),Ane=class extends UN.InstrumentationBase{_semconvStability;constructor(t={}){super(uWe.PACKAGE_NAME,uWe.PACKAGE_VERSION,t),this._semconvStability=(0,UN.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new UN.InstrumentationNodeModuleDefinition(FN.HapiComponentName,[">=17.0.0 <22"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,UN.isWrapped)(n.server)||this._wrap(n,"server",this._getServerPatch.bind(this)),(0,UN.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,Lm.getPluginFromInput)(o);n._wrapRegisterHandler(a)}else{let o=(0,Lm.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,cWe.getRPCMetadata)(gl.context.active());a?.type===cWe.RPCType.HTTP&&(a.route=t.path);let c=(0,Lm.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}};fG.HapiInstrumentation=Ane});var dWe=w(_w=>{"use strict";Object.defineProperty(_w,"__esModule",{value:!0});_w.AttributeNames=_w.HapiInstrumentation=void 0;var Unn=lWe();Object.defineProperty(_w,"HapiInstrumentation",{enumerable:!0,get:function(){return Unn.HapiInstrumentation}});var Fnn=Rne();Object.defineProperty(_w,"AttributeNames",{enumerable:!0,get:function(){return Fnn.AttributeNames}})});var fWe,pWe,hWe,jnn,mWe,gWe=v(()=>{fWe=Re(dWe(),1);sr();pWe="Hapi",hWe=rt(pWe,()=>new fWe.HapiInstrumentation),jnn=(()=>({name:pWe,setupOnce(){hWe()}})),mWe=jnn});var pS,jN,wne=v(()=>{pS={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},jN={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"}});var hG,Hnn,qnn,pG,yWe=v(()=>{Me();hG=Re(Jt(),1);st();wne();Hnn="@sentry/instrumentation-hono",qnn="0.0.1",pG=class extends hG.InstrumentationBase{constructor(t={}){super(Hnn,qnn,t)}init(){return[new hG.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({[pS.HONO_TYPE]:u,[pS.HONO_NAME]:u===jN.REQUEST_HANDLER?s:t.name||"anonymous"}),n.getConfig().responseHook?.(o),c});{let c=n._determineHandlerType(a);return o.setAttributes({[pS.HONO_TYPE]:c,[pS.HONO_NAME]:c===jN.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?jN.MIDDLEWARE:jN.REQUEST_HANDLER}_handleError(t,n){n instanceof Error&&(t.setStatus({code:as.ERROR,message:n.message}),t.recordException(n))}}});function Bnn(e){let t=vt(e).data,n=t[pS.HONO_TYPE];if(t[zt]||!n)return;e.setAttributes({[At]:"auto.http.otel.hono",[zt]:`${n}.hono`});let r=t[pS.HONO_NAME];if(typeof r=="string"&&e.updateName(r),vn()===Wl()){So&&Z.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let i=t[dm],s=t[bE];typeof i=="string"&&typeof s=="string"&&vn().setTransactionName(`${s} ${i}`)}var SWe,bWe,znn,EWe,_We=v(()=>{Nn();st();sr();QE();wne();yWe();SWe="Hono";bWe=rt(SWe,()=>new pG({responseHook:e=>{Bnn(e)}})),znn=(()=>({name:SWe,setupOnce(){bWe()}})),EWe=znn});var mG=w(HN=>{"use strict";Object.defineProperty(HN,"__esModule",{value:!0});HN.KoaLayerType=void 0;var Gnn;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware"})(Gnn=HN.KoaLayerType||(HN.KoaLayerType={}))});var TWe=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-koa"});var kne=w(qN=>{"use strict";Object.defineProperty(qN,"__esModule",{value:!0});qN.AttributeNames=void 0;var Vnn;(function(e){e.KOA_TYPE="koa.type",e.KOA_NAME="koa.name"})(Vnn=qN.AttributeNames||(qN.AttributeNames={}))});var RWe=w(vw=>{"use strict";Object.defineProperty(vw,"__esModule",{value:!0});vw.isLayerIgnored=vw.getMiddlewareMetadata=void 0;var vWe=mG(),gG=kne(),Wnn=(Nn(),ke(Mr)),Knn=(e,t,n,r)=>n?{attributes:{[gG.AttributeNames.KOA_NAME]:r?.toString(),[gG.AttributeNames.KOA_TYPE]:vWe.KoaLayerType.ROUTER,[Wnn.ATTR_HTTP_ROUTE]:r?.toString()},name:e._matchedRouteName||`router - ${r}`}:{attributes:{[gG.AttributeNames.KOA_NAME]:t.name??"middleware",[gG.AttributeNames.KOA_TYPE]:vWe.KoaLayerType.MIDDLEWARE},name:`middleware - ${t.name}`};vw.getMiddlewareMetadata=Knn;var Ynn=(e,t)=>!!(Array.isArray(t?.ignoreLayersType)&&t?.ignoreLayersType?.includes(e));vw.isLayerIgnored=Ynn});var AWe=w(yG=>{"use strict";Object.defineProperty(yG,"__esModule",{value:!0});yG.kLayerPatched=void 0;yG.kLayerPatched=Symbol("koa-layer-patched")});var PWe=w(SG=>{"use strict";Object.defineProperty(SG,"__esModule",{value:!0});SG.KoaInstrumentation=void 0;var th=(Me(),ke(Ze)),BN=Jt(),wWe=mG(),kWe=TWe(),IWe=RWe(),xWe=pr(),OWe=AWe(),Ine=class extends BN.InstrumentationBase{constructor(t={}){super(kWe.PACKAGE_NAME,kWe.PACKAGE_VERSION,t)}init(){return new BN.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return n==null?n:((0,BN.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,BN.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,IWe.getMiddlewareMetadata)(s,t,n,r),u=this.tracer.startSpan(c.name,{attributes:c.attributes}),l=(0,xWe.getRPCMetadata)(th.context.active());l?.type===xWe.RPCType.HTTP&&s._matchedRoute&&(l.route=s._matchedRoute.toString());let{requestHook:d}=this.getConfig();d&&(0,BN.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()}})})}};SG.KoaInstrumentation=Ine});var NWe=w(hS=>{"use strict";Object.defineProperty(hS,"__esModule",{value:!0});hS.KoaLayerType=hS.AttributeNames=hS.KoaInstrumentation=void 0;var Znn=PWe();Object.defineProperty(hS,"KoaInstrumentation",{enumerable:!0,get:function(){return Znn.KoaInstrumentation}});var Jnn=kne();Object.defineProperty(hS,"AttributeNames",{enumerable:!0,get:function(){return Jnn.AttributeNames}});var Xnn=mG();Object.defineProperty(hS,"KoaLayerType",{enumerable:!0,get:function(){return Xnn.KoaLayerType}})});var CWe,MWe,DWe,Qnn,LWe,UWe=v(()=>{CWe=Re(NWe(),1);Nn();st();sr();QE();MWe="Koa",DWe=rt(MWe,CWe.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()===Wl()){So&&Z.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let o=r[dm],a=n.context?.request?.method?.toUpperCase()||"GET";o&&vn().setTransactionName(`${a} ${o}`)}})),Qnn=((e={})=>({name:MWe,setupOnce(){DWe(e)}})),LWe=Qnn});var xne=w(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});yf.ConnectNames=yf.ConnectTypes=yf.AttributeNames=void 0;var $nn;(function(e){e.CONNECT_TYPE="connect.type",e.CONNECT_NAME="connect.name"})($nn=yf.AttributeNames||(yf.AttributeNames={}));var ern;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(ern=yf.ConnectTypes||(yf.ConnectTypes={}));var trn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request handler"})(trn=yf.ConnectNames||(yf.ConnectNames={}))});var FWe=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-connect"});var jWe=w(bG=>{"use strict";Object.defineProperty(bG,"__esModule",{value:!0});bG._LAYERS_STORE_PROPERTY=void 0;bG._LAYERS_STORE_PROPERTY=Symbol("opentelemetry.instrumentation-connect.request-route-stack")});var HWe=w(gS=>{"use strict";Object.defineProperty(gS,"__esModule",{value:!0});gS.generateRoute=gS.replaceCurrentStackRoute=gS.addNewStackLayer=void 0;var nrn=(Me(),ke(Ze)),mS=jWe(),rrn=e=>{Array.isArray(e[mS._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,mS._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),e[mS._LAYERS_STORE_PROPERTY].push("/");let t=e[mS._LAYERS_STORE_PROPERTY].length;return()=>{t===e[mS._LAYERS_STORE_PROPERTY].length?e[mS._LAYERS_STORE_PROPERTY].pop():nrn.diag.warn("Connect: Trying to pop the stack multiple time")}};gS.addNewStackLayer=rrn;var irn=(e,t)=>{t&&e[mS._LAYERS_STORE_PROPERTY].splice(-1,1,t)};gS.replaceCurrentStackRoute=irn;var srn=e=>e[mS._LAYERS_STORE_PROPERTY].reduce((t,n)=>t.replace(/\/+$/,"")+n);gS.generateRoute=srn});var zWe=w(yS=>{"use strict";Object.defineProperty(yS,"__esModule",{value:!0});yS.ConnectInstrumentation=yS.ANONYMOUS_NAME=void 0;var orn=(Me(),ke(Ze)),qWe=pr(),Aw=xne(),BWe=FWe(),EG=Jt(),arn=(Nn(),ke(Mr)),One=HWe();yS.ANONYMOUS_NAME="anonymous";var Pne=class extends EG.InstrumentationBase{constructor(t={}){super(BWe.PACKAGE_NAME,BWe.PACKAGE_VERSION,t)}init(){return[new EG.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],t=>this._patchConstructor(t))]}_patchApp(t){(0,EG.isWrapped)(t.use)||this._wrap(t,"use",this._patchUse.bind(this)),(0,EG.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=Aw.ConnectTypes.REQUEST_HANDLER,s=Aw.ConnectNames.REQUEST_HANDLER,i=t):(r=Aw.ConnectTypes.MIDDLEWARE,s=Aw.ConnectNames.MIDDLEWARE,i=n.name||yS.ANONYMOUS_NAME);let o=`${s} - ${i}`,a={attributes:{[arn.ATTR_HTTP_ROUTE]:t.length>0?t:"/",[Aw.AttributeNames.CONNECT_TYPE]:r,[Aw.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,One.replaceCurrentStackRoute)(u,t);let f=(0,qWe.getRPCMetadata)(orn.context.active());t&&f?.type===qWe.RPCType.HTTP&&(f.route=(0,One.generateRoute)(u));let p="";t?p=`request handler - ${t}`:p=`middleware - ${n.name||yS.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,One.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)}}};yS.ConnectInstrumentation=Pne});var VWe=w(cd=>{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.ConnectTypes=cd.ConnectNames=cd.AttributeNames=cd.ANONYMOUS_NAME=cd.ConnectInstrumentation=void 0;var GWe=zWe();Object.defineProperty(cd,"ConnectInstrumentation",{enumerable:!0,get:function(){return GWe.ConnectInstrumentation}});Object.defineProperty(cd,"ANONYMOUS_NAME",{enumerable:!0,get:function(){return GWe.ANONYMOUS_NAME}});var Nne=xne();Object.defineProperty(cd,"AttributeNames",{enumerable:!0,get:function(){return Nne.AttributeNames}});Object.defineProperty(cd,"ConnectNames",{enumerable:!0,get:function(){return Nne.ConnectNames}});Object.defineProperty(cd,"ConnectTypes",{enumerable:!0,get:function(){return Nne.ConnectTypes}})});var WWe,KWe,YWe,crn,ZWe,JWe=v(()=>{WWe=Re(VWe(),1);sr();KWe="Connect",YWe=rt(KWe,()=>new WWe.ConnectInstrumentation),crn=(()=>({name:KWe,setupOnce(){YWe()}})),ZWe=crn});var XWe=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 QWe=w(ww=>{"use strict";Object.defineProperty(ww,"__esModule",{value:!0});ww.once=ww.getSpanName=void 0;function urn(e,t,n,r){return e==="execBulkLoad"&&r&&t?`${e} ${r} ${t}`:e==="callProcedure"?t?`${e} ${n} ${t}`:`${e} ${n}`:t?`${e} ${t}`:`${e}`}ww.getSpanName=urn;var lrn=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};ww.once=lrn});var $We=w(kw=>{"use strict";Object.defineProperty(kw,"__esModule",{value:!0});kw.PACKAGE_NAME=kw.PACKAGE_VERSION=void 0;kw.PACKAGE_VERSION="0.33.0";kw.PACKAGE_NAME="@opentelemetry/instrumentation-tedious"});var i4e=w(bS=>{"use strict";Object.defineProperty(bS,"__esModule",{value:!0});bS.TediousInstrumentation=bS.INJECTED_CTX=void 0;var Iw=(Me(),ke(Ze)),drn=Y("events"),nh=Jt(),l_=(Nn(),ke(Mr)),SS=XWe(),e4e=QWe(),t4e=$We(),r4e=Symbol("opentelemetry.instrumentation-tedious.current-database");bS.INJECTED_CTX=Symbol("opentelemetry.instrumentation-tedious.context-info-injected");var n4e=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function _G(e){Object.defineProperty(this,r4e,{value:e,writable:!0})}var Cne=class e extends nh.InstrumentationBase{static COMPONENT="tedious";_netSemconvStability;_dbSemconvStability;constructor(t={}){super(t4e.PACKAGE_NAME,t4e.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 n4e)(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 n4e)this._unwrap(n,r);this._unwrap(n,"connect")})]}_patchConnect(t){return function(){return _G.call(this,this.config?.options?.database),this.removeListener("databaseChange",_G),this.on("databaseChange",_G),this.once("end",()=>{this.removeListener("databaseChange",_G)}),t.apply(this,arguments)}}_buildTraceparent(t){let n=t.spanContext();return`00-${n.traceId}-${n.spanId}-0${Number(n.traceFlags||Iw.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,bS.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?.[bS.INJECTED_CTX])return r.apply(this,arguments);if(!(o instanceof drn.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[r4e],f=(E=>E.sqlTextOrProcedure==="sp_prepare"&&E.parametersByName?.stmt?.value?E.parametersByName.stmt.value:E.sqlTextOrProcedure)(o),p={};i._dbSemconvStability&nh.SemconvStability.OLD&&(p[SS.ATTR_DB_SYSTEM]=SS.DB_SYSTEM_VALUE_MSSQL,p[SS.ATTR_DB_NAME]=d,p[SS.ATTR_DB_USER]=this.config?.userName??this.config?.authentication?.options?.userName,p[SS.ATTR_DB_STATEMENT]=f,p[SS.ATTR_DB_SQL_TABLE]=o.table),i._dbSemconvStability&nh.SemconvStability.STABLE&&(p[l_.ATTR_DB_NAMESPACE]=d,p[l_.ATTR_DB_SYSTEM_NAME]=l_.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER,p[l_.ATTR_DB_QUERY_TEXT]=f,p[l_.ATTR_DB_COLLECTION_NAME]=o.table),i._netSemconvStability&nh.SemconvStability.OLD&&(p[SS.ATTR_NET_PEER_NAME]=this.config?.server,p[SS.ATTR_NET_PEER_PORT]=this.config?.options?.port),i._netSemconvStability&nh.SemconvStability.STABLE&&(p[l_.ATTR_SERVER_ADDRESS]=this.config?.server,p[l_.ATTR_SERVER_PORT]=this.config?.options?.port);let h=i.tracer.startSpan((0,e4e.getSpanName)(t,d,f,o.table),{kind:Iw.SpanKind.CLIENT,attributes:p}),m=(0,e4e.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:Iw.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=()=>Iw.context.with(Iw.trace.setSpan(Iw.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)}}};bS.TediousInstrumentation=Cne});var s4e=w(TG=>{"use strict";Object.defineProperty(TG,"__esModule",{value:!0});TG.TediousInstrumentation=void 0;var frn=i4e();Object.defineProperty(TG,"TediousInstrumentation",{enumerable:!0,get:function(){return frn.TediousInstrumentation}})});var o4e,prn,a4e,c4e,hrn,u4e,l4e=v(()=>{o4e=Re(s4e(),1);st();sr();prn=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),a4e="Tedious",c4e=rt(a4e,()=>new o4e.TediousInstrumentation({})),hrn=(()=>{let e;return{name:a4e,setupOnce(){let t=c4e();e=vP(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]||"";prn.has(s)&&n.setAttribute(At,"auto.db.otel.tedious")}))}}}),u4e=hrn});var d4e=w(xw=>{"use strict";Object.defineProperty(xw,"__esModule",{value:!0});xw.PACKAGE_NAME=xw.PACKAGE_VERSION=void 0;xw.PACKAGE_VERSION="0.57.0";xw.PACKAGE_NAME="@opentelemetry/instrumentation-generic-pool"});var p4e=w(vG=>{"use strict";Object.defineProperty(vG,"__esModule",{value:!0});vG.GenericPoolInstrumentation=void 0;var Ow=(Me(),ke(Ze)),d_=Jt(),f4e=d4e(),Mne="generic-pool",Dne=class extends d_.InstrumentationBase{_isDisabled=!1;constructor(t={}){super(f4e.PACKAGE_NAME,f4e.PACKAGE_VERSION,t)}init(){return[new d_.InstrumentationNodeModuleDefinition(Mne,[">=3.0.0 <4"],t=>{let n=t.Pool;return(0,d_.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 d_.InstrumentationNodeModuleDefinition(Mne,[">=2.4.0 <3"],t=>{let n=t.Pool;return(0,d_.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 d_.InstrumentationNodeModuleDefinition(Mne,[">=2.0.0 <2.4"],t=>(this._isDisabled=!1,(0,d_.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=Ow.context.active(),o=n.tracer.startSpan("generic-pool.acquire",{},s);return Ow.context.with(Ow.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=Ow.context.active(),a=n.tracer.startSpan("generic-pool.acquire",{},o);return Ow.context.with(Ow.trace.setSpan(o,a),()=>{t.call(this,(c,u)=>{if(a.end(),i)return i(c,u)},s)})}}};vG.GenericPoolInstrumentation=Dne});var h4e=w(RG=>{"use strict";Object.defineProperty(RG,"__esModule",{value:!0});RG.GenericPoolInstrumentation=void 0;var mrn=p4e();Object.defineProperty(RG,"GenericPoolInstrumentation",{enumerable:!0,get:function(){return mrn.GenericPoolInstrumentation}})});var m4e,g4e,y4e,grn,S4e,b4e=v(()=>{m4e=Re(h4e(),1);st();sr();g4e="GenericPool",y4e=rt(g4e,()=>new m4e.GenericPoolInstrumentation({})),grn=(()=>{let e;return{name:g4e,setupOnce(){let t=y4e();e=vP(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")}))}}}),S4e=grn});var Lne=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 Une=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 Fne=w(f_=>{"use strict";Object.defineProperty(f_,"__esModule",{value:!0});f_.DEFAULT_CONFIG=f_.EndOperation=void 0;var yrn;(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"})(yrn=f_.EndOperation||(f_.EndOperation={}));f_.DEFAULT_CONFIG={consumeTimeoutMs:1e3*60,useLinksForConsume:!1}});var v4e=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 jne=(Me(),ke(Ze)),ES=Jt(),AG=(Nn(),ke(Mr)),zN=Lne(),wG=Une();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 Hne=(0,jne.createContextKey)("opentelemetry.amqplib.channel.is-confirm-channel"),Srn=e=>e!==""?e:"";ps.normalizeExchange=Srn;var brn=e=>e.replace(/:[^:@/]*@/,":***@"),E4e=(e,t)=>e||(t==="AMQP"?5672:5671),_4e=e=>{let t=e||"amqp";return(t.endsWith(":")?t.substring(0,t.length-1):t).toUpperCase()},T4e=e=>e||"localhost",ih=(e,t,n,r)=>n?{[t]:n}:(jne.diag.error(`amqplib instrumentation: could not extract connection attribute ${r} from user supplied url`,{url:e}),{}),Ern=e=>{let t=e.serverProperties.product?.toLowerCase?.();return t?{[zN.ATTR_MESSAGING_SYSTEM]:t}:{}};ps.getConnectionAttributesFromServer=Ern;var _rn=(e,t)=>{let n={[wG.ATTR_MESSAGING_PROTOCOL_VERSION]:"0.9.1"};if(e=e||"amqp://localhost",typeof e=="object"){let r=e,i=_4e(r?.protocol);Object.assign(n,{...ih(e,wG.ATTR_MESSAGING_PROTOCOL,i,"protocol")});let s=T4e(r?.hostname);t&ES.SemconvStability.OLD&&Object.assign(n,{...ih(e,zN.ATTR_NET_PEER_NAME,s,"hostname")}),t&ES.SemconvStability.STABLE&&Object.assign(n,{...ih(e,AG.ATTR_SERVER_ADDRESS,s,"hostname")});let o=E4e(r.port,i);t&ES.SemconvStability.OLD&&Object.assign(n,ih(e,zN.ATTR_NET_PEER_PORT,o,"port")),t&ES.SemconvStability.STABLE&&Object.assign(n,ih(e,AG.ATTR_SERVER_PORT,o,"port"))}else{let r=brn(e);n[wG.ATTR_MESSAGING_URL]=r;try{let i=new URL(r),s=_4e(i.protocol);Object.assign(n,{...ih(r,wG.ATTR_MESSAGING_PROTOCOL,s,"protocol")});let o=T4e(i.hostname);t&ES.SemconvStability.OLD&&Object.assign(n,{...ih(r,zN.ATTR_NET_PEER_NAME,o,"hostname")}),t&ES.SemconvStability.STABLE&&Object.assign(n,{...ih(r,AG.ATTR_SERVER_ADDRESS,o,"hostname")});let a=E4e(i.port?parseInt(i.port):void 0,s);t&ES.SemconvStability.OLD&&Object.assign(n,ih(r,zN.ATTR_NET_PEER_PORT,a,"port")),t&ES.SemconvStability.STABLE&&Object.assign(n,ih(r,AG.ATTR_SERVER_PORT,a,"port"))}catch(i){jne.diag.error("amqplib instrumentation: error while extracting connection details from connection url",{censoredUrl:r,err:i})}}return n};ps.getConnectionAttributesFromUrl=_rn;var Trn=e=>e.setValue(Hne,!0);ps.markConfirmChannelTracing=Trn;var vrn=e=>e.deleteValue(Hne);ps.unmarkConfirmChannelTracing=vrn;var Rrn=e=>e.getValue(Hne)===!0;ps.isConfirmChannelTracing=Rrn});var R4e=w(Pw=>{"use strict";Object.defineProperty(Pw,"__esModule",{value:!0});Pw.PACKAGE_NAME=Pw.PACKAGE_VERSION=void 0;Pw.PACKAGE_VERSION="0.61.0";Pw.PACKAGE_NAME="@opentelemetry/instrumentation-amqplib"});var w4e=w(xG=>{"use strict";Object.defineProperty(xG,"__esModule",{value:!0});xG.AmqplibInstrumentation=void 0;var Ji=(Me(),ke(Ze)),kG=pr(),hr=Jt(),Arn=Lne(),yl=Une(),Hc=Fne(),hs=v4e(),A4e=R4e(),IG=[">=0.5.5 <1"],qne=class extends hr.InstrumentationBase{_netSemconvStability;constructor(t={}){super(A4e.PACKAGE_NAME,A4e.PACKAGE_VERSION,{...Hc.DEFAULT_CONFIG,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,hr.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...Hc.DEFAULT_CONFIG,...t})}init(){let t=new hr.InstrumentationNodeModuleFile("amqplib/lib/channel_model.js",IG,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),n=new hr.InstrumentationNodeModuleFile("amqplib/lib/callback_model.js",IG,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),r=new hr.InstrumentationNodeModuleFile("amqplib/lib/connect.js",IG,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new hr.InstrumentationNodeModuleDefinition("amqplib",IG,void 0,void 0,[t,r,n])}patchConnect(t){return t=this.unpatchConnect(t),(0,hr.isWrapped)(t.connect)||this._wrap(t,"connect",this.getConnectPatch.bind(this)),t}unpatchConnect(t){return(0,hr.isWrapped)(t.connect)&&this._unwrap(t,"connect"),t}patchChannelModel(t,n){return(0,hr.isWrapped)(t.Channel.prototype.publish)||this._wrap(t.Channel.prototype,"publish",this.getPublishPatch.bind(this,n)),(0,hr.isWrapped)(t.Channel.prototype.consume)||this._wrap(t.Channel.prototype,"consume",this.getConsumePatch.bind(this,n)),(0,hr.isWrapped)(t.Channel.prototype.ack)||this._wrap(t.Channel.prototype,"ack",this.getAckPatch.bind(this,!1,Hc.EndOperation.Ack)),(0,hr.isWrapped)(t.Channel.prototype.nack)||this._wrap(t.Channel.prototype,"nack",this.getAckPatch.bind(this,!0,Hc.EndOperation.Nack)),(0,hr.isWrapped)(t.Channel.prototype.reject)||this._wrap(t.Channel.prototype,"reject",this.getAckPatch.bind(this,!0,Hc.EndOperation.Reject)),(0,hr.isWrapped)(t.Channel.prototype.ackAll)||this._wrap(t.Channel.prototype,"ackAll",this.getAckAllPatch.bind(this,!1,Hc.EndOperation.AckAll)),(0,hr.isWrapped)(t.Channel.prototype.nackAll)||this._wrap(t.Channel.prototype,"nackAll",this.getAckAllPatch.bind(this,!0,Hc.EndOperation.NackAll)),(0,hr.isWrapped)(t.Channel.prototype.emit)||this._wrap(t.Channel.prototype,"emit",this.getChannelEmitPatch.bind(this)),(0,hr.isWrapped)(t.ConfirmChannel.prototype.publish)||this._wrap(t.ConfirmChannel.prototype,"publish",this.getConfirmedPublishPatch.bind(this,n)),t}unpatchChannelModel(t){return(0,hr.isWrapped)(t.Channel.prototype.publish)&&this._unwrap(t.Channel.prototype,"publish"),(0,hr.isWrapped)(t.Channel.prototype.consume)&&this._unwrap(t.Channel.prototype,"consume"),(0,hr.isWrapped)(t.Channel.prototype.ack)&&this._unwrap(t.Channel.prototype,"ack"),(0,hr.isWrapped)(t.Channel.prototype.nack)&&this._unwrap(t.Channel.prototype,"nack"),(0,hr.isWrapped)(t.Channel.prototype.reject)&&this._unwrap(t.Channel.prototype,"reject"),(0,hr.isWrapped)(t.Channel.prototype.ackAll)&&this._unwrap(t.Channel.prototype,"ackAll"),(0,hr.isWrapped)(t.Channel.prototype.nackAll)&&this._unwrap(t.Channel.prototype,"nackAll"),(0,hr.isWrapped)(t.Channel.prototype.emit)&&this._unwrap(t.Channel.prototype,"emit"),(0,hr.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=Ji.propagation.extract(Ji.ROOT_CONTEXT,d),p=l.fields?.exchange,h;if(r._config.useLinksForConsume){let b=f?Ji.trace.getSpan(f)?.spanContext():void 0;f=void 0,b&&(h=[{context:b}])}let m=r.tracer.startSpan(`${s} process`,{kind:Ji.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,[Arn.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,hr.safeExecuteInTheMiddle)(()=>g(m,{moduleVersion:t,msg:l}),b=>{b&&Ji.diag.error("amqplib instrumentation: consumerHook error",b)},!0),a?.noAck||(c[hs.CHANNEL_SPANS_NOT_ENDED].push({msg:l,timeOfConsume:(0,kG.hrTime)()}),l[hs.MESSAGE_STORED_SPAN]=m);let y=f||Ji.ROOT_CONTEXT;Ji.context.with(Ji.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,hr.safeExecuteInTheMiddle)(()=>p(d,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:f,isConfirmChannel:!0}),y=>{y&&Ji.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,hr.safeExecuteInTheMiddle)(()=>S(d,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:c,isConfirmChannel:!0,confirmError:y}),E=>{E&&Ji.diag.error("amqplib instrumentation: publishConfirmHook error",E)},!0),y&&d.setStatus({code:Ji.SpanStatusCode.ERROR,message:"message confirmation has been nack'ed"}),d.end()}},m=(0,hs.markConfirmChannelTracing)(Ji.context.active()),g=[...arguments];return g[3]=f,g[4]=Ji.context.bind((0,hs.unmarkConfirmChannelTracing)(Ji.trace.setSpan(m,d)),h),Ji.context.with(m,n.bind(this,...g))}}getPublishPatch(t,n){let r=this;return function(s,o,a,c){if((0,hs.isConfirmChannelTracing)(Ji.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,hr.safeExecuteInTheMiddle)(()=>f(l,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:d,isConfirmChannel:!1}),m=>{m&&Ji.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:Ji.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??{},Ji.propagation.inject(Ji.trace.setSpan(Ji.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:Ji.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,hr.safeExecuteInTheMiddle)(()=>s(t,{msg:n,rejected:r,endOperation:i}),o=>{o&&Ji.diag.error("amqplib instrumentation: consumerEndHook error",o)},!0)}checkConsumeTimeoutOnChannel(t){let n=(0,kG.hrTime)(),r=t[hs.CHANNEL_SPANS_NOT_ENDED]??[],i,{consumeTimeoutMs:s}=this.getConfig();for(i=0;i{"use strict";Object.defineProperty(_S,"__esModule",{value:!0});_S.EndOperation=_S.DEFAULT_CONFIG=_S.AmqplibInstrumentation=void 0;var wrn=w4e();Object.defineProperty(_S,"AmqplibInstrumentation",{enumerable:!0,get:function(){return wrn.AmqplibInstrumentation}});var k4e=Fne();Object.defineProperty(_S,"DEFAULT_CONFIG",{enumerable:!0,get:function(){return k4e.DEFAULT_CONFIG}});Object.defineProperty(_S,"EndOperation",{enumerable:!0,get:function(){return k4e.EndOperation}})});var x4e,O4e,krn,P4e,Irn,N4e,C4e=v(()=>{x4e=Re(I4e(),1);sr();O4e="Amqplib",krn={consumeEndHook:e=>{Dr(e,"auto.amqplib.otel.consumer")},publishHook:e=>{Dr(e,"auto.amqplib.otel.publisher")}},P4e=rt(O4e,()=>new x4e.AmqplibInstrumentation(krn)),Irn=(()=>({name:O4e,setupOnce(){P4e()}})),N4e=Irn});var GN,Bne=v(()=>{GN="VercelAI"});function Orn(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 Prn(e){if(typeof e!="object"||e===null||!("content"in e))return;let t=e;Array.isArray(t.content)&&(Nrn(t.content),Crn(t.content))}function Nrn(e){for(let t of e){if(!Orn(t))continue;let n=kQ(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 Crn(e){for(let t of e)typeof t=="object"&&t!==null&&"toolCallId"in t&&typeof t.toolCallId=="string"&&IQ(t.toolCallId)}function Mrn(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 PG,xrn,M4e,OG,D4e=v(()=>{PG=Re(Jt(),1);st();Bne();xrn=[">=3.0.0 <7"],M4e=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];OG=class e extends PG.InstrumentationBase{__init(){this._isPatched=!1}__init2(){this._callbacks=[]}constructor(t={}){super("@sentry/instrumentation-vercel-ai",Cn,t),e.prototype.__init.call(this),e.prototype.__init2.call(this)}init(){return new PG.InstrumentationNodeModuleDefinition("ai",xrn,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(GN),d=l?.options,f=l?!!u?.getOptions().sendDefaultPii:!1,{recordInputs:p,recordOutputs:h}=Mrn(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",Yl())},()=>{},m=>{Prn(m)})}});if(Object.prototype.toString.call(t)==="[object Module]"){for(let r of M4e)t[r]!=null&&(t[r]=n(t[r]));return t}else{let r=M4e.reduce((i,s)=>(t[s]!=null&&(i[s]=n(t[s])),i),{});return{...t,...r}}}}});function Drn(e){return!!e.getIntegrationByName("Modules")?.getModules?.()?.ai}var L4e,Lrn,U4e,F4e=v(()=>{st();sr();Bne();D4e();L4e=rt(GN,()=>new OG({}));Lrn=((e={})=>{let t;return{name:GN,options:e,setupOnce(){t=L4e()},afterAllSetup(n){e.force??Drn(n)?UH(n):t?.callWhenPatched(()=>UH(n))}}}),U4e=Lrn});var CG,Urn,NG,j4e=v(()=>{CG=Re(Jt(),1);st();Urn=[">=4.0.0 <7"],NG=class extends CG.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-openai",Cn,t)}init(){return new CG.InstrumentationNodeModuleDefinition("openai",Urn,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(LE(Vy))return Reflect.construct(r,o);let a=Reflect.construct(r,o);return HH(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 H4e,Frn,q4e,B4e=v(()=>{st();sr();j4e();H4e=rt(Vy,e=>new NG(e)),Frn=((e={})=>({name:Vy,setupOnce(){H4e(e)}})),q4e=Frn});var DG,jrn,MG,z4e=v(()=>{DG=Re(Jt(),1);st();jrn=[">=0.19.2 <1.0.0"],MG=class extends DG.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-anthropic-ai",Cn,t)}init(){return new DG.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",jrn,this._patch.bind(this))}_patch(t){let n=t.Anthropic,r=this.getConfig(),i=function(...s){if(LE(Wy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return qH(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 G4e,Hrn,V4e,W4e=v(()=>{st();sr();z4e();G4e=rt(Wy,e=>new MG(e)),Hrn=((e={})=>({name:Wy,options:e,setupOnce(){G4e(e)}})),V4e=Hrn});var Nw,K4e,LG,Y4e=v(()=>{Nw=Re(Jt(),1);st();K4e=[">=0.10.0 <2"],LG=class extends Nw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-google-genai",Cn,t)}init(){return new Nw.InstrumentationNodeModuleDefinition("@google/genai",K4e,n=>this._patch(n),n=>n,[new Nw.InstrumentationNodeModuleFile("@google/genai/dist/node/index.cjs",K4e,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(LE(Ky))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return BH(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 _P(t,"GoogleGenAI",i),t}}});var Z4e,qrn,J4e,X4e=v(()=>{st();sr();Y4e();Z4e=rt(Ky,e=>new LG(e)),qrn=((e={})=>({name:Ky,setupOnce(){Z4e(e)}})),J4e=qrn});function Brn(e,t){return e?Array.isArray(e)?e.includes(t)?e:[...e,t]:typeof e=="object"?[e,t]:e:[t]}function zrn(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=Brn(c,t);return a.callbacks=u,Reflect.apply(r,i,s)}})}var TS,UG,FG,Q4e=v(()=>{TS=Re(Jt(),1);st();UG=[">=0.1.0 <2.0.0"];FG=class extends TS.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langchain",Cn,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 TS.InstrumentationNodeModuleDefinition(r,UG,this._patch.bind(this),i=>i,[new TS.InstrumentationNodeModuleFile(`${r}/dist/index.cjs`,UG,this._patch.bind(this),i=>i)]));return t.push(new TS.InstrumentationNodeModuleDefinition("langchain",UG,this._patch.bind(this),r=>r,[new TS.InstrumentationNodeModuleFile("langchain/dist/chat_models/universal.cjs",UG,this._patch.bind(this),r=>r)])),t}_patch(t){WX([Vy,Wy,Ky]);let n=WH(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]=zrn(u,n))}}}});var $4e,Grn,eKe,tKe=v(()=>{st();sr();Q4e();$4e=rt(zH,e=>new FG(e)),Grn=((e={})=>({name:zH,setupOnce(){$4e(e)}})),eKe=Grn});var Cw,nKe,jG,rKe=v(()=>{Cw=Re(Jt(),1);st();nKe=[">=0.0.0 <2.0.0"],jG=class extends Cw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langgraph",Cn,t)}init(){return new Cw.InstrumentationNodeModuleDefinition("@langchain/langgraph",nKe,this._patch.bind(this),n=>n,[new Cw.InstrumentationNodeModuleFile("@langchain/langgraph/dist/index.cjs",nKe,this._patch.bind(this),n=>n)])}_patch(t){return t.StateGraph&&typeof t.StateGraph=="function"&&YH(t.StateGraph.prototype,this.getConfig()),t}}});var iKe,Vrn,sKe,oKe=v(()=>{st();sr();rKe();iKe=rt(KH,e=>new jG(e)),Vrn=((e={})=>({name:KH,setupOnce(){iKe(e)}})),sKe=Vrn});import*as cKe from"node:net";function uKe(e,t,n,r,i){let o=()=>{},a=i.firestoreSpanCreationHook;typeof a=="function"&&(o=l=>{(0,Um.safeExecuteInTheMiddle)(()=>a(l),d=>{d&&sl.error(d?.message)},!0)});let c=new Um.InstrumentationNodeModuleDefinition("@firebase/firestore",t,l=>aKe(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 Um.InstrumentationNodeModuleFile(l,t,d=>aKe(d,n,r,e,o),d=>lKe(d,r)));return c}function aKe(e,t,n,r,i){return lKe(e,n),t(e,"addDoc",Wrn(r,i)),t(e,"getDocs",Yrn(r,i)),t(e,"setDoc",Zrn(r,i)),t(e,"deleteDoc",Krn(r,i)),e}function lKe(e,t){for(let n of["addDoc","getDocs","setDoc","deleteDoc"])(0,Um.isWrapped)(e[n])&&t(e,n);return e}function Wrn(e,t){return function(r){return function(i,s){let o=qG(e,"addDoc",i);return t(o),HG(o,()=>r(i,s))}}}function Krn(e,t){return function(r){return function(i){let s=qG(e,"deleteDoc",i.parent||i);return t(s),HG(s,()=>r(i))}}}function Yrn(e,t){return function(r){return function(i){let s=qG(e,"getDocs",i);return t(s),HG(s,()=>r(i))}}}function Zrn(e,t){return function(r){return function(i,s,o){let a=qG(e,"setDoc",i.parent||i);return t(a),HG(a,()=>typeof o<"u"?r(i,s,o):r(i,s))}}}function HG(e,t){return Ve.with(jt.setSpan(Ve.active(),e),()=>(0,Um.safeExecuteInTheMiddle)(()=>t(),n=>{n&&e.recordException(n),e.end()},!0))}function qG(e,t,n){let r=e.startSpan(`${t} ${n.path}`,{kind:$r.CLIENT});return Xrn(r,n),r.setAttribute(yR,t),r}function Jrn(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(cKe.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 Xrn(e,t){let n=t.firestore.app,r=n.options,s=(t.firestore.toJSON()||{}).settings||{},o={[_7]:t.path,[T7]:n.name,[SE]:"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}=Jrn(s);a&&(o[O7]=a),c&&(o[P7]=c),e.setAttributes(o)}var Um,dKe=v(()=>{Me();Um=Re(Jt(),1);Nn()});function fKe(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,Fm.safeExecuteInTheMiddle)(()=>u(f,p),h=>{h&&sl.error(h?.message)},!0)}),typeof c=="function"&&(s=f=>{(0,Fm.safeExecuteInTheMiddle)(()=>c(f),p=>{p&&sl.error(p?.message)},!0)});let l=new Fm.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 Fm.InstrumentationNodeModuleFile(f,t,h=>Qrn(h,n,r,e,{requestHook:s,responseHook:o,errorHook:a},p),h=>pKe(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 Qrn(e,t,n,r,i,s){switch(pKe(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 pKe(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,Fm.isWrapped)(e[r])&&t(e,r);return e}var Fm,hKe=v(()=>{Me();Fm=Re(Jt(),1)});var gKe,mKe,$rn,ein,BG,yKe=v(()=>{gKe=Re(Jt(),1);st();dKe();hKe();mKe={},$rn=[">=3.0.0 <5"],ein=[">=6.0.0 <7"],BG=class extends gKe.InstrumentationBase{constructor(t=mKe){super("@sentry/instrumentation-firebase",Cn,t)}setConfig(t={}){super.setConfig({...mKe,...t})}init(){let t=[];return t.push(uKe(this.tracer,$rn,this._wrap,this._unwrap,this.getConfig())),t.push(fKe(this.tracer,ein,this._wrap,this._unwrap,this.getConfig())),t}}});var SKe,tin,bKe,nin,EKe,_Ke=v(()=>{st();sr();yKe();SKe="Firebase",tin={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 tA(2e3))}}},bKe=rt(SKe,()=>new BG(tin)),nin=(()=>({name:SKe,setupOnce(){bKe()}})),EKe=nin});function TKe(){return[mqe(),JBe(),vze(),EWe(),lGe(),AGe(),UGe(),ZGe(),k2e(),Y2e(),tWe(),mWe(),LWe(),ZWe(),u4e(),S4e(),Hze(),N4e(),Xze(),eKe(),sKe(),U4e(),q4e(),V4e(),J4e(),Q2e(),EKe()]}var vKe=v(()=>{C4e();W4e();JWe();gqe();$Be();_Ke();b4e();X4e();Aze();gWe();_We();qze();UWe();tKe();oKe();Qze();dGe();wGe();FGe();JGe();B4e();Z2e();$2e();nWe();I2e();l4e();F4e()});function AKe(e,t={}){e.getOptions().debug&&oee();let[n,r]=rin(e,t);e.traceProvider=n,e.asyncLocalStorageLookup=r}function rin(e,t={}){let n=new RKe.BasicTracerProvider({sampler:new eB(e),resource:(0,zG.defaultResource)().merge((0,zG.resourceFromAttributes)({[N7]:"node",[E7]:"sentry",[C7]:Cn})),forceFlushTimeoutMillis:500,spanProcessors:[new $q({timeout:iin(e.getOptions().maxSpanWaitDuration)}),...t.spanProcessors||[]]});jt.setGlobalTracerProvider(n),Qd.setGlobalPropagator(new Qq);let r=new see;return Ve.setGlobalContextManager(r),[n,r.getAsyncLocalStorageLookup()]}function iin(e){if(e!=null){if(e>zne)return So&&Z.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${zne}`),zne;if(e<=0||Number.isNaN(e)){So&&Z.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return e}}var zG,RKe,zne,wKe=v(()=>{Me();zG=Re(S$(),1),RKe=Re(G$(),1);Nn();st();sr();CA();QE();zne=1e6});function kKe(){return uB().filter(t=>t.name!=="Http"&&t.name!=="NodeFetch").concat(VHe(),eqe())}function IKe(e){return[...kKe(),...Os(e)?TKe():[]]}function Gne(e={}){return sin(e,IKe)}function sin(e={},t){UE(e,"node");let n=See({...e,defaultIntegrations:e.defaultIntegrations??t(e)});return n&&!e.skipOpenTelemetrySetup&&(AKe(n,{spanProcessors:e.openTelemetrySpanProcessors}),bee()),n}var xKe=v(()=>{st();sr();WHe();tqe();vKe();wKe()});var OKe=v(()=>{xKe();st()});var UKe={};Ar(UKe,{_resetPluginRootForTests:()=>cin,features:()=>Go,observability:()=>Kne,resolvePluginRoot:()=>nn,review:()=>bf,stripWildcardAllowedOrigins:()=>Wne});import{existsSync as PKe}from"node:fs";import{dirname as NKe,join as CKe}from"node:path";import{fileURLToPath as ain}from"node:url";function LKe(e){if(!e.startsWith("HAIKU_")){let t=process.env[`HAIKU_${e}`];if(t!==void 0)return t}return process.env[e]}function Vne(e,t){let n=LKe(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 MKe(e,t){let n=LKe(e);return n===void 0||n===""?t:n}function cin(){Sf=null}function nn(){if(Sf!==null)return Sf;let e=process.env.CLAUDE_PLUGIN_ROOT;if(e)return Sf=e,Sf;let t=DKe(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=ain(import.meta.url),r=DKe(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 DKe(e){if(!e)return null;let t=NKe(e);for(let n=0;n<6;n++){if(PKe(CKe(t,"studios"))||PKe(CKe(t,".claude-plugin","plugin.json")))return t;let r=NKe(t);if(r===t)return null;t=r}return null}function Wne(){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,Kne,Ci=v(()=>{"use strict";Sf=null;Go={modelSelection:Vne("HAIKU_MODEL_SELECTION",!0),remoteReview:Vne("HAIKU_REMOTE_REVIEW",!1),telemetry:Vne("CLAUDE_CODE_ENABLE_TELEMETRY",!1)},bf={siteUrl:MKe("HAIKU_REVIEW_SITE_URL","https://haikumethod.ai"),allowedOrigins:MKe("HAIKU_REVIEW_ALLOWED_ORIGINS","").split(",").map(e=>e.trim()).filter(Boolean)};Kne={sentryDsn:""}});import{readFileSync as uin}from"node:fs";import{join as lin}from"node:path";function vS(){try{let e=nn();if(e)return JSON.parse(uin(lin(e,".claude-plugin","plugin.json"),"utf8")).version??"unknown"}catch{}return"unknown"}var ud,p_=v(()=>{"use strict";Ci();ud="10.1.0"});var jKe={};Ar(jKe,{flush:()=>Ef,isSentryConfigured:()=>Zne,reportError:()=>ms,reportFeedback:()=>Yne});function FKe(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){Mw&&Ja(r=>{FKe(r,n),Wt(e,{extra:t})})}function Yne(e,t,n,r){Mw&&Ja(i=>{FKe(i,t),i.setTag("feedback","true"),IH({message:e,email:n,name:r||"H\xB7AI\xB7K\xB7U User"})})}function Zne(){return Mw!==""}async function Ef(e=2e3){Mw&&await tA(e)}var Mw,sh=v(()=>{"use strict";OKe();Ci();p_();Mw=Kne.sentryDsn;Mw&&Gne({dsn:Mw,release:`haiku-mcp@${ud}`,tracesSampleRate:0})});var qKe={};Ar(qKe,{maybeRebuildSpaForDev:()=>yin});import{execFileSync as din}from"node:child_process";import{existsSync as VG,readdirSync as fin,statSync as HKe}from"node:fs";import{dirname as pin,join as GG,resolve as Jne}from"node:path";import{fileURLToPath as hin}from"node:url";function min(e){if(!VG(e))return 0;let t=0,n=[e];for(;n.length>0;){let r=n.pop(),i;try{i=fin(r)}catch{continue}for(let s of i){if(s==="node_modules"||s==="dist"||s==="__tests__")continue;let o=GG(r,s),a;try{a=HKe(o)}catch{continue}a.isDirectory()?n.push(o):a.isFile()&&a.mtimeMs>t&&(t=a.mtimeMs)}}return t}function gin(e){let t;try{t=pin(hin(e))}catch{t=process.cwd()}let n=Jne(t,".."),r=Jne(n,".."),i=GG(r,"haiku-ui","src"),s=GG(n,"scripts","bundle-haiku-ui.mjs"),o=GG(n,"src","haiku-ui-html.ts");return!VG(i)||!VG(s)?null:{repoRoot:Jne(r,".."),uiSrcDir:i,bundledHtml:o,bundleScript:s}}function yin(e){if(process.env.HAIKU_DEV_SPA_AUTO_REBUILD==="0")return;let t=gin(e);if(!t)return;let n=min(t.uiSrcDir),r=VG(t.bundledHtml)?HKe(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{din("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 BKe=v(()=>{"use strict"});var zKe={};Ar(zKe,{askUserInstruction:()=>Tin,getCapabilities:()=>Mi,getHarness:()=>bin,isClaudeCode:()=>oh,listHarnesses:()=>Ein,mapModelTier:()=>vin,setHarness:()=>Sin,skillReference:()=>WN,subagentInstruction:()=>_in});function Sin(e){let t=e.toLowerCase().replace(/[\s_]/g,"-");t in VN?Dw=t:(console.error(`[haiku] Unknown harness "${e}" \u2014 falling back to claude-code. Known: ${Object.keys(VN).join(", ")}`),Dw="claude-code"),console.error(`[haiku] Harness: ${VN[Dw].displayName}`)}function bin(){return Dw}function Mi(){return VN[Dw]}function oh(){return Dw==="claude-code"}function Ein(){return Object.keys(VN)}function _in(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 WN(e){let t=Mi();return t.promptsAsSlashCommands?`/haiku:${e}`:t.mcpPrompts?`the \`haiku:${e}\` prompt`:`the haiku ${e} workflow`}function Tin(){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 vin(e){return Mi().modelTierMap[e]||e}var VN,Dw,_f=v(()=>{"use strict";VN={"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"}}},Dw="claude-code"});var Mn,Xne,Qe,ah,KN=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})(Mn||(Mn={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Xne||(Xne={}));Qe=Mn.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,Rin,Eu,WG=v(()=>{KN();Ie=Mn.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"]),Rin=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 Ain,jm,Qne=v(()=>{WG();KN();Ain=(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,Mn.jsonStringifyReplacer)}`;break;case Ie.unrecognized_keys:n=`Unrecognized key(s) in object: ${Mn.joinValues(e.keys,", ")}`;break;case Ie.invalid_union:n="Invalid input";break;case Ie.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Mn.joinValues(e.options)}`;break;case Ie.invalid_enum_value:n=`Invalid enum value. Expected ${Mn.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}"`:Mn.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,Mn.assertNever(e)}return{message:n}},jm=Ain});function win(e){GKe=e}function Lw(){return GKe}var GKe,KG=v(()=>{Qne();GKe=jm});function We(e,t){let n=Lw(),r=YN({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===jm?void 0:jm].filter(i=>!!i)});e.common.issues.push(r)}var YN,kin,ha,Mt,h_,nc,YG,ZG,RS,Uw,$ne=v(()=>{KG();Qne();YN=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}},kin=[];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"}),h_=e=>({status:"dirty",value:e}),nc=e=>({status:"valid",value:e}),YG=e=>e.status==="aborted",ZG=e=>e.status==="dirty",RS=e=>e.status==="valid",Uw=e=>typeof Promise<"u"&&e instanceof Promise});var VKe=v(()=>{});var ut,WKe=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 JKe(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 Gin(e){return new RegExp(`^${JKe(e)}$`)}function XKe(e){let t=`${ZKe}T${JKe(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 Vin(e,t){return!!((t==="v4"||!t)&&Uin.test(e)||(t==="v6"||!t)&&jin.test(e))}function Win(e,t){if(!Cin.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function Kin(e,t){return!!((t==="v4"||!t)&&Fin.test(e)||(t==="v6"||!t)&&Hin.test(e))}function Yin(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 Fw(e){if(e instanceof _u){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=ld.create(Fw(r))}return new _u({...e._def,shape:()=>t})}else return e instanceof Bm?new Bm({...e._def,type:Fw(e.element)}):e instanceof ld?ld.create(Fw(e.unwrap())):e instanceof uh?uh.create(Fw(e.unwrap())):e instanceof ch?ch.create(e.items.map(t=>Fw(t))):e}function tre(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=Mn.objectKeys(t),s=Mn.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of s){let c=tre(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=YKe(t,r),c=a.fatal??n??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!s){let o=YKe(t,r),a=o.fatal??n??!0;i.addIssue({code:"custom",...o,fatal:a})}}):wS.create()}var dd,KKe,gn,Iin,xin,Oin,Pin,Nin,Cin,Min,Din,Lin,ere,Uin,Fin,jin,Hin,qin,Bin,ZKe,zin,AS,m_,g_,y_,S_,jw,b_,E_,wS,qm,Tf,Hw,Bm,_u,__,Hm,JG,T_,ch,XG,qw,Bw,QG,v_,R_,A_,w_,kS,fd,ld,uh,k_,I_,zw,Zin,ZN,JN,x_,Jin,Bt,Xin,e3e,t3e,Qin,$in,n3e,esn,tsn,nsn,rsn,isn,ssn,osn,asn,csn,usn,lsn,dsn,fsn,psn,hsn,msn,gsn,ysn,Ssn,bsn,Esn,_sn,Tsn,vsn,Rsn,Asn,wsn,ksn,Isn,xsn,Osn,Psn,Nsn,Csn,r3e=v(()=>{WG();KG();WKe();$ne();KN();dd=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}},KKe=(e,t)=>{if(RS(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}}};gn=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(Uw(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 KKe(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 RS(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=>RS(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(Uw(i)?i:Promise.resolve(i));return KKe(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 fd({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 ld.create(this,this._def)}nullable(){return uh.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Bm.create(this)}promise(){return kS.create(this,this._def)}or(t){return __.create([this,t],this._def)}and(t){return T_.create(this,t,this._def)}transform(t){return new fd({...un(this._def),schema:this,typeName:Bt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new k_({...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 I_({...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 JN.create(this,t)}readonly(){return x_.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Iin=/^c[^\s-]{8,}$/i,xin=/^[0-9a-z]+$/,Oin=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Pin=/^[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,Nin=/^[a-z0-9_-]{21}$/i,Cin=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Min=/^[-+]?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)?)??$/,Din=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Lin="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Uin=/^(?:(?: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])$/,jin=/^(([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])$/,qin=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Bin=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ZKe="((\\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])))",zin=new RegExp(`^${ZKe}$`);AS=class e extends gn{_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 AS({checks:[],typeName:Bt.ZodString,coerce:e?.coerce??!1,...un(e)});m_=class e extends gn{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"?Mn.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"?Yin(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()):Mn.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"&&Mn.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 m_({checks:[],typeName:Bt.ZodNumber,coerce:e?.coerce||!1,...un(e)});g_=class e extends gn{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()):Mn.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 g_({checks:[],typeName:Bt.ZodBigInt,coerce:e?.coerce??!1,...un(e)});y_=class extends gn{_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)}};y_.create=e=>new y_({typeName:Bt.ZodBoolean,coerce:e?.coerce||!1,...un(e)});S_=class e extends gn{_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()):Mn.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 S_({checks:[],coerce:e?.coerce||!1,typeName:Bt.ZodDate,...un(e)});jw=class extends gn{_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)}};jw.create=e=>new jw({typeName:Bt.ZodSymbol,...un(e)});b_=class extends gn{_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)}};b_.create=e=>new b_({typeName:Bt.ZodUndefined,...un(e)});E_=class extends gn{_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)}};E_.create=e=>new E_({typeName:Bt.ZodNull,...un(e)});wS=class extends gn{constructor(){super(...arguments),this._any=!0}_parse(t){return nc(t.data)}};wS.create=e=>new wS({typeName:Bt.ZodAny,...un(e)});qm=class extends gn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return nc(t.data)}};qm.create=e=>new qm({typeName:Bt.ZodUnknown,...un(e)});Tf=class extends gn{_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)});Hw=class extends gn{_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)}};Hw.create=e=>new Hw({typeName:Bt.ZodVoid,...un(e)});Bm=class e extends gn{_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 dd(n,o,n.path,a)))).then(o=>ha.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new dd(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)}};Bm.create=(e,t)=>new Bm({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Bt.ZodArray,...un(t)});_u=class e extends gn{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=Mn.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 dd(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 dd(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 Mn.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 Mn.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Fw(this)}partial(t){let n={};for(let r of Mn.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 Mn.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof ld;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return QKe(Mn.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)});__=class extends gn{_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}};__.create=(e,t)=>new __({options:e,typeName:Bt.ZodUnion,...un(t)});Hm=e=>e instanceof v_?Hm(e.schema):e instanceof fd?Hm(e.innerType()):e instanceof R_?[e.value]:e instanceof A_?e.options:e instanceof w_?Mn.objectValues(e.enum):e instanceof k_?Hm(e._def.innerType):e instanceof b_?[void 0]:e instanceof E_?[null]:e instanceof ld?[void 0,...Hm(e.unwrap())]:e instanceof uh?[null,...Hm(e.unwrap())]:e instanceof ZN||e instanceof x_?Hm(e.unwrap()):e instanceof I_?Hm(e._def.innerType):[],JG=class e extends gn{_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=Hm(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)})}};T_=class extends gn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(YG(s)||YG(o))return Mt;let a=tre(s.value,o.value);return a.valid?((ZG(s)||ZG(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}))}};T_.create=(e,t,n)=>new T_({left:e,right:t,typeName:Bt.ZodIntersection,...un(n)});ch=class e extends gn{_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 dd(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)})};XG=class e extends gn{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 dd(r,a,r.path,a)),value:o._parse(new dd(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 gn?new e({keyType:t,valueType:n,typeName:Bt.ZodRecord,...un(r)}):new e({keyType:AS.create(),valueType:t,typeName:Bt.ZodRecord,...un(n)})}},qw=class extends gn{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 dd(r,a,r.path,[u,"key"])),value:s._parse(new dd(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}}}};qw.create=(e,t,n)=>new qw({valueType:t,keyType:e,typeName:Bt.ZodMap,...un(n)});Bw=class e extends gn{_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 dd(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)}};Bw.create=(e,t)=>new Bw({valueType:e,minSize:null,maxSize:null,typeName:Bt.ZodSet,...un(t)});QG=class e extends gn{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 YN({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Lw(),jm].filter(u=>!!u),issueData:{code:Ie.invalid_arguments,argumentsError:c}})}function i(a,c){return YN({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Lw(),jm].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 kS){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(qm.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(qm.create()),returns:n||qm.create(),typeName:Bt.ZodFunction,...un(r)})}},v_=class extends gn{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})}};v_.create=(e,t)=>new v_({getter:e,typeName:Bt.ZodLazy,...un(t)});R_=class extends gn{_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}};R_.create=(e,t)=>new R_({value:e,typeName:Bt.ZodLiteral,...un(t)});A_=class e extends gn{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return We(n,{expected:Mn.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})}};A_.create=QKe;w_=class extends gn{_parse(t){let n=Mn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==Qe.string&&r.parsedType!==Qe.number){let i=Mn.objectValues(n);return We(r,{expected:Mn.joinValues(i),received:r.parsedType,code:Ie.invalid_type}),Mt}if(this._cache||(this._cache=new Set(Mn.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=Mn.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}};w_.create=(e,t)=>new w_({values:e,typeName:Bt.ZodNativeEnum,...un(t)});kS=class extends gn{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})))}};kS.create=(e,t)=>new kS({type:e,typeName:Bt.ZodPromise,...un(t)});fd=class extends gn{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"?h_(c.value):n.value==="dirty"?h_(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"?h_(a.value):n.value==="dirty"?h_(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(!RS(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=>RS(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:n.value,value:a})):Mt);Mn.assertNever(i)}};fd.create=(e,t,n)=>new fd({schema:e,typeName:Bt.ZodEffects,effect:t,...un(n)});fd.createWithPreprocess=(e,t,n)=>new fd({schema:t,effect:{type:"preprocess",transform:e},typeName:Bt.ZodEffects,...un(n)});ld=class extends gn{_parse(t){return this._getType(t)===Qe.undefined?nc(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ld.create=(e,t)=>new ld({innerType:e,typeName:Bt.ZodOptional,...un(t)});uh=class extends gn{_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)});k_=class extends gn{_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}};k_.create=(e,t)=>new k_({innerType:e,typeName:Bt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...un(t)});I_=class extends gn{_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 Uw(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}};I_.create=(e,t)=>new I_({innerType:e,typeName:Bt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...un(t)});zw=class extends gn{_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}}};zw.create=e=>new zw({typeName:Bt.ZodNaN,...un(e)});Zin=Symbol("zod_brand"),ZN=class extends gn{_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}},JN=class e extends gn{_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(),h_(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})}},x_=class extends gn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(RS(i)&&(i.value=Object.freeze(i.value)),i);return Uw(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};x_.create=(e,t)=>new x_({innerType:e,typeName:Bt.ZodReadonly,...un(t)});Jin={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={}));Xin=(e,t={message:`Input not instance of ${e.name}`})=>$Ke(n=>n instanceof e,t),e3e=AS.create,t3e=m_.create,Qin=zw.create,$in=g_.create,n3e=y_.create,esn=S_.create,tsn=jw.create,nsn=b_.create,rsn=E_.create,isn=wS.create,ssn=qm.create,osn=Tf.create,asn=Hw.create,csn=Bm.create,usn=_u.create,lsn=_u.strictCreate,dsn=__.create,fsn=JG.create,psn=T_.create,hsn=ch.create,msn=XG.create,gsn=qw.create,ysn=Bw.create,Ssn=QG.create,bsn=v_.create,Esn=R_.create,_sn=A_.create,Tsn=w_.create,vsn=kS.create,Rsn=fd.create,Asn=ld.create,wsn=uh.create,ksn=fd.createWithPreprocess,Isn=JN.create,xsn=()=>e3e().optional(),Osn=()=>t3e().optional(),Psn=()=>n3e().optional(),Nsn={string:(e=>AS.create({...e,coerce:!0})),number:(e=>m_.create({...e,coerce:!0})),boolean:(e=>y_.create({...e,coerce:!0})),bigint:(e=>g_.create({...e,coerce:!0})),date:(e=>S_.create({...e,coerce:!0}))},Csn=Mt});var O={};Ar(O,{BRAND:()=>Zin,DIRTY:()=>h_,EMPTY_PATH:()=>kin,INVALID:()=>Mt,NEVER:()=>Csn,OK:()=>nc,ParseStatus:()=>ha,Schema:()=>gn,ZodAny:()=>wS,ZodArray:()=>Bm,ZodBigInt:()=>g_,ZodBoolean:()=>y_,ZodBranded:()=>ZN,ZodCatch:()=>I_,ZodDate:()=>S_,ZodDefault:()=>k_,ZodDiscriminatedUnion:()=>JG,ZodEffects:()=>fd,ZodEnum:()=>A_,ZodError:()=>Eu,ZodFirstPartyTypeKind:()=>Bt,ZodFunction:()=>QG,ZodIntersection:()=>T_,ZodIssueCode:()=>Ie,ZodLazy:()=>v_,ZodLiteral:()=>R_,ZodMap:()=>qw,ZodNaN:()=>zw,ZodNativeEnum:()=>w_,ZodNever:()=>Tf,ZodNull:()=>E_,ZodNullable:()=>uh,ZodNumber:()=>m_,ZodObject:()=>_u,ZodOptional:()=>ld,ZodParsedType:()=>Qe,ZodPipeline:()=>JN,ZodPromise:()=>kS,ZodReadonly:()=>x_,ZodRecord:()=>XG,ZodSchema:()=>gn,ZodSet:()=>Bw,ZodString:()=>AS,ZodSymbol:()=>jw,ZodTransformer:()=>fd,ZodTuple:()=>ch,ZodType:()=>gn,ZodUndefined:()=>b_,ZodUnion:()=>__,ZodUnknown:()=>qm,ZodVoid:()=>Hw,addIssueToContext:()=>We,any:()=>isn,array:()=>csn,bigint:()=>$in,boolean:()=>n3e,coerce:()=>Nsn,custom:()=>$Ke,date:()=>esn,datetimeRegex:()=>XKe,defaultErrorMap:()=>jm,discriminatedUnion:()=>fsn,effect:()=>Rsn,enum:()=>_sn,function:()=>Ssn,getErrorMap:()=>Lw,getParsedType:()=>ah,instanceof:()=>Xin,intersection:()=>psn,isAborted:()=>YG,isAsync:()=>Uw,isDirty:()=>ZG,isValid:()=>RS,late:()=>Jin,lazy:()=>bsn,literal:()=>Esn,makeIssue:()=>YN,map:()=>gsn,nan:()=>Qin,nativeEnum:()=>Tsn,never:()=>osn,null:()=>rsn,nullable:()=>wsn,number:()=>t3e,object:()=>usn,objectUtil:()=>Xne,oboolean:()=>Psn,onumber:()=>Osn,optional:()=>Asn,ostring:()=>xsn,pipeline:()=>Isn,preprocess:()=>ksn,promise:()=>vsn,quotelessJson:()=>Rin,record:()=>msn,set:()=>ysn,setErrorMap:()=>win,strictObject:()=>lsn,string:()=>e3e,symbol:()=>tsn,transformer:()=>Rsn,tuple:()=>hsn,undefined:()=>nsn,union:()=>dsn,unknown:()=>ssn,util:()=>Mn,void:()=>asn});var nre=v(()=>{KG();$ne();VKe();KN();r3e();WG()});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 pd(e){return e&&Object.assign($G,e),$G}var CHr,zm,$G,Gw=v(()=>{CHr=Object.freeze({status:"aborted"});zm=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},$G={}});var or={};Ar(or,{BIGINT_FORMAT_RANGES:()=>s3e,Class:()=>ire,NUMBER_FORMAT_RANGES:()=>fre,aborted:()=>P_,allowsEval:()=>ure,assert:()=>Fsn,assertEqual:()=>Msn,assertIs:()=>Lsn,assertNever:()=>Usn,assertNotEqual:()=>Dsn,assignProp:()=>cre,cached:()=>QN,captureStackTrace:()=>t2,cleanEnum:()=>Xsn,cleanRegex:()=>eC,clone:()=>lh,createTransparentProxy:()=>Gsn,defineLazy:()=>ni,esc:()=>O_,escapeRegex:()=>IS,extend:()=>Ksn,finalizeIssue:()=>vf,floatSafeRemainder:()=>are,getElementAtPath:()=>jsn,getEnumValues:()=>sre,getLengthableOrigin:()=>tC,getParsedType:()=>zsn,getSizableOrigin:()=>o3e,isObject:()=>Vw,isPlainObject:()=>Ww,issue:()=>pre,joinValues:()=>e2,jsonStringifyReplacer:()=>ore,merge:()=>Ysn,normalizeParams:()=>Dt,nullish:()=>$N,numKeys:()=>Bsn,omit:()=>Wsn,optionalKeys:()=>dre,partial:()=>Zsn,pick:()=>Vsn,prefixIssues:()=>dh,primitiveTypes:()=>i3e,promiseAllObject:()=>Hsn,propertyKeyTypes:()=>lre,randomString:()=>qsn,required:()=>Jsn,stringifyPrimitive:()=>n2,unwrapMessage:()=>XN});function Msn(e){return e}function Dsn(e){return e}function Lsn(e){}function Usn(e){throw new Error}function Fsn(e){}function sre(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 e2(e,t="|"){return e.map(n=>n2(n)).join(t)}function ore(e,t){return typeof t=="bigint"?t.toString():t}function QN(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function $N(e){return e==null}function eC(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function are(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 cre(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function jsn(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 Gsn(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 n2(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function dre(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Vsn(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 Wsn(e,t){let n={...e._zod.def.shape},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete n[i]}return lh(e,{...e._zod.def,shape:n,checks:[]})}function Ksn(e,t){if(!Ww(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 cre(this,"shape",r),r},checks:[]};return lh(e,n)}function Ysn(e,t){return lh(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return cre(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function Zsn(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 Jsn(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 P_(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function XN(e){return typeof e=="string"?e:e?.message}function vf(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=XN(e.inst?._zod.def?.error?.(e))??XN(t?.error?.(e))??XN(n.customError?.(e))??XN(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function o3e(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function tC(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function pre(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Xsn(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}var t2,ure,zsn,lre,i3e,fre,s3e,ire,Gm=v(()=>{t2=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};ure=QN(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});zsn=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}`)}},lre=new Set(["string","number","symbol"]),i3e=new Set(["string","number","bigint","boolean","symbol","undefined"]);fre={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]},s3e={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};ire=class{constructor(...t){}}});function c3e(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 u3e(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{Gw();Gm();a3e=(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,ore,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},r2=me("$ZodError",a3e),hre=me("$ZodError",a3e,{Parent:Error})});var l3e,d3e,gre,nC,yre,i2,Sre=v(()=>{Gw();mre();Gm();l3e=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 zm;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>vf(c,s,pd())));throw t2(a,i?.callee),a}return o.value},d3e=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,pd())));throw t2(a,i?.callee),a}return o.value},gre=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 zm;return s.issues.length?{success:!1,error:new(e??r2)(s.issues.map(o=>vf(o,i,pd())))}:{success:!0,data:s.value}},nC=gre(hre),yre=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,pd())))}:{success:!0,data:s.value}},i2=yre(hre)});function _3e(){return new RegExp($sn,"u")}function P3e(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 N3e(e){return new RegExp(`^${P3e(e)}$`)}function C3e(e){let t=P3e({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(`^${x3e}T(?:${r})$`)}var f3e,p3e,h3e,m3e,g3e,y3e,S3e,b3e,bre,E3e,$sn,T3e,v3e,R3e,A3e,w3e,Ere,k3e,I3e,x3e,O3e,M3e,D3e,L3e,U3e,F3e,j3e,H3e,s2=v(()=>{f3e=/^[cC][^\s-]{8,}$/,p3e=/^[0-9a-z]+$/,h3e=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,m3e=/^[0-9a-vA-V]{20}$/,g3e=/^[A-Za-z0-9]{27}$/,y3e=/^[a-zA-Z0-9_-]{21}$/,S3e=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,b3e=/^([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})$/,bre=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)$/,E3e=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,$sn="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";T3e=/^(?:(?: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])$/,v3e=/^(([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})$/,R3e=/^((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])$/,A3e=/^(([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])$/,w3e=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Ere=/^[A-Za-z0-9_-]*$/,k3e=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,I3e=/^\+(?:[0-9]){6,14}[0-9]$/,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])))",O3e=new RegExp(`^${x3e}$`);M3e=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},D3e=/^\d+$/,L3e=/^-?\d+(?:\.\d+)?/i,U3e=/true|false/i,F3e=/null/i,j3e=/^[^A-Z]*$/,H3e=/^[^a-z]*$/});var rc,q3e,Tre,vre,B3e,z3e,G3e,V3e,W3e,rC,K3e,Y3e,Z3e,J3e,X3e,Q3e,$3e,o2=v(()=>{Gw();s2();Gm();rc=me("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),q3e={number:"number",bigint:"bigint",object:"date"},Tre=me("$ZodCheckLessThan",(e,t)=>{rc.init(e,t);let n=q3e[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=q3e[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})}}),B3e=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):are(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})}}),z3e=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]=fre[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=D3e)}),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})}}),G3e=me("$ZodCheckMaxLength",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!$N(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=tC(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),V3e=me("$ZodCheckMinLength",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!$N(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=tC(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),W3e=me("$ZodCheckLengthEquals",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!$N(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=tC(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})}}),rC=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=()=>{})}),K3e=me("$ZodCheckRegex",(e,t)=>{rC.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})}}),Y3e=me("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=j3e),rC.init(e,t)}),Z3e=me("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=H3e),rC.init(e,t)}),J3e=me("$ZodCheckIncludes",(e,t)=>{rc.init(e,t);let n=IS(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})}}),X3e=me("$ZodCheckStartsWith",(e,t)=>{rc.init(e,t);let n=new RegExp(`^${IS(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})}}),Q3e=me("$ZodCheckEndsWith",(e,t)=>{rc.init(e,t);let n=new RegExp(`.*${IS(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})}}),$3e=me("$ZodCheckOverwrite",(e,t)=>{rc.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}})});var a2,Rre=v(()=>{a2=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 $3e,Rre=v(()=>{$3e={major:4,minor:0,patch:0}});function I9e(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}function Qsn(e){if(!bre.test(e))return!1;let t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return I9e(n)}function $sn(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 e9e(e,t,n){e.issues.length&&t.issues.push(...dh(n,e.issues)),t.value[n]=e.value}function c2(e,t,n){e.issues.length&&t.issues.push(...dh(n,e.issues)),t.value[n]=e.value}function t9e(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 n9e(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,pd())))}),t}function Are(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(Ww(e)&&Ww(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=Are(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{o2();Gw();vre();yre();s2();Gm();Rre();Gm();ri=me("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=$3e;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=P_(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 zm;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=P_(s,d)))});else{if(s.issues.length===d)continue;c||(c=P_(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 zm;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=nC(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return i2(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),u2=me("$ZodString",(e,t)=>{ri.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??N3e(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)=>{rC.init(e,t),u2.init(e,t)}),u9e=me("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=y3e),hi.init(e,t)}),l9e=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=Sre(r))}else t.pattern??(t.pattern=Sre());hi.init(e,t)}),d9e=me("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=S3e),hi.init(e,t)}),f9e=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:A3e.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})}}}),p9e=me("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=b3e()),hi.init(e,t)}),h9e=me("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=m3e),hi.init(e,t)}),m9e=me("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=l3e),hi.init(e,t)}),g9e=me("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=d3e),hi.init(e,t)}),y9e=me("$ZodULID",(e,t)=>{t.pattern??(t.pattern=f3e),hi.init(e,t)}),S9e=me("$ZodXID",(e,t)=>{t.pattern??(t.pattern=p3e),hi.init(e,t)}),b9e=me("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=h3e),hi.init(e,t)}),E9e=me("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=P3e(t)),hi.init(e,t)}),_9e=me("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=I3e),hi.init(e,t)}),T9e=me("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=O3e(t)),hi.init(e,t)}),v9e=me("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=g3e),hi.init(e,t)}),R9e=me("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=E3e),hi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),A9e=me("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=_3e),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})}}}),w9e=me("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=T3e),hi.init(e,t)}),k9e=me("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=v3e),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})}}});x9e=me("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=R3e),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{I9e(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});O9e=me("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=bre),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{Qsn(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),P9e=me("$ZodE164",(e,t)=>{t.pattern??(t.pattern=w3e),hi.init(e,t)});N9e=me("$ZodJWT",(e,t)=>{hi.init(e,t),e._zod.check=n=>{$sn(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),wre=me("$ZodNumber",(e,t)=>{ri.init(e,t),e._zod.pattern=e._zod.bag.pattern??M3e,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}}),C9e=me("$ZodNumber",(e,t)=>{q3e.init(e,t),wre.init(e,t)}),M9e=me("$ZodBoolean",(e,t)=>{ri.init(e,t),e._zod.pattern=D3e,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}}),D9e=me("$ZodNull",(e,t)=>{ri.init(e,t),e._zod.pattern=L3e,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}}),L9e=me("$ZodUnknown",(e,t)=>{ri.init(e,t),e._zod.parse=n=>n}),U9e=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)});F9e=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;oe9e(u,n,o))):e9e(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});j9e=me("$ZodObject",(e,t)=>{ri.init(e,t);let n=QN(()=>{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=lre(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 a2(["shape","payload","ctx"]),p=n.value,h=b=>{let S=O_(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=O_(b);f.write(` +`))}}});var t9e,Are=v(()=>{t9e={major:4,minor:0,patch:0}});function O9e(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}function eon(e){if(!Ere.test(e))return!1;let t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return O9e(n)}function ton(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 n9e(e,t,n){e.issues.length&&t.issues.push(...dh(n,e.issues)),t.value[n]=e.value}function c2(e,t,n){e.issues.length&&t.issues.push(...dh(n,e.issues)),t.value[n]=e.value}function r9e(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 i9e(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,pd())))}),t}function wre(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(Ww(e)&&Ww(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=wre(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{o2();Gw();Rre();Sre();s2();Gm();Are();Gm();ri=me("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=t9e;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=P_(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 zm;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=P_(s,d)))});else{if(s.issues.length===d)continue;c||(c=P_(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 zm;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=nC(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return i2(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),u2=me("$ZodString",(e,t)=>{ri.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??M3e(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)=>{rC.init(e,t),u2.init(e,t)}),d9e=me("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=b3e),hi.init(e,t)}),f9e=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=bre(r))}else t.pattern??(t.pattern=bre());hi.init(e,t)}),p9e=me("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=E3e),hi.init(e,t)}),h9e=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:k3e.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})}}}),m9e=me("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=_3e()),hi.init(e,t)}),g9e=me("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=y3e),hi.init(e,t)}),y9e=me("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=f3e),hi.init(e,t)}),S9e=me("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=p3e),hi.init(e,t)}),b9e=me("$ZodULID",(e,t)=>{t.pattern??(t.pattern=h3e),hi.init(e,t)}),E9e=me("$ZodXID",(e,t)=>{t.pattern??(t.pattern=m3e),hi.init(e,t)}),_9e=me("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=g3e),hi.init(e,t)}),T9e=me("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=C3e(t)),hi.init(e,t)}),v9e=me("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=O3e),hi.init(e,t)}),R9e=me("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=N3e(t)),hi.init(e,t)}),A9e=me("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=S3e),hi.init(e,t)}),w9e=me("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=T3e),hi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),k9e=me("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=v3e),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})}}}),I9e=me("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=R3e),hi.init(e,t)}),x9e=me("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=A3e),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})}}});P9e=me("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=w3e),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{O9e(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});N9e=me("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Ere),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{eon(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),C9e=me("$ZodE164",(e,t)=>{t.pattern??(t.pattern=I3e),hi.init(e,t)});M9e=me("$ZodJWT",(e,t)=>{hi.init(e,t),e._zod.check=n=>{ton(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),kre=me("$ZodNumber",(e,t)=>{ri.init(e,t),e._zod.pattern=e._zod.bag.pattern??L3e,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}}),D9e=me("$ZodNumber",(e,t)=>{z3e.init(e,t),kre.init(e,t)}),L9e=me("$ZodBoolean",(e,t)=>{ri.init(e,t),e._zod.pattern=U3e,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}}),U9e=me("$ZodNull",(e,t)=>{ri.init(e,t),e._zod.pattern=F3e,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}}),F9e=me("$ZodUnknown",(e,t)=>{ri.init(e,t),e._zod.parse=n=>n}),j9e=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)});H9e=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;on9e(u,n,o))):n9e(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});q9e=me("$ZodObject",(e,t)=>{ri.init(e,t);let n=QN(()=>{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=dre(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 a2(["shape","payload","ctx"]),p=n.value,h=b=>{let S=O_(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=O_(b);f.write(` if (${S}.issues.length) { if (input[${E}] === undefined) { if (${E} in input) { @@ -62,16 +62,16 @@ Mongoose Error Code: ${t.code}`:""}`})}function Ste(e,t,n,r=void 0){n&&(0,hN.saf if (${S}.issues.length) payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ ...iss, path: iss.path ? [${O_(b)}, ...iss.path] : [${O_(b)}] - })));`),f.write(`newResult[${O_(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=Vw,o=!$G.jitless,c=o&&cre.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?t9e(A,d,E,p):c2(A,d,E))):R?t9e(T,d,E,p):c2(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(_=>c2(_,d,S))):c2(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}});kre=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=>eC(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=>n9e(o,n,e,r)):n9e(s,n,e,r)}}),H9e=me("$ZodDiscriminatedUnion",(e,t)=>{kre.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=QN(()=>{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(!Vw(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)}}),q9e=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])=>r9e(n,c,u)):r9e(n,s,o)}});B9e=me("$ZodRecord",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Ww(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,pd())),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}}),z9e=me("$ZodEnum",(e,t)=>{ri.init(e,t);let n=ire(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>ure.has(typeof r)).map(r=>typeof r=="string"?IS(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}}),G9e=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"?IS(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}}),V9e=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 zm;return n.value=i,n}}),W9e=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(`^(${eC(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)}),K9e=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(`^(${eC(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)}),Y9e=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=>i9e(s,t)):i9e(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))}),J9e=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=>s9e(s,e)):s9e(i,e)}});X9e=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,pd()))},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,pd()))},input:n.value}),n.issues=[]),n)}}),Q9e=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=>o9e(s,t,r)):o9e(i,t,r)}});$9e=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(a9e):a9e(i)}});eYe=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=>c9e(s,n,r,e));c9e(i,n,r,e)}})});function nYe(){return{localeError:ton()}}var eon,ton,rYe=v(()=>{Gm();eon=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},ton=()=>{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 ${eon(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${n2(r.values[0])}`:`Invalid option: expected one of ${e2(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":""}: ${e2(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 l2=v(()=>{});function non(){return new xre}var xre,iC,iYe=v(()=>{xre=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)}};iC=non()});function sYe(e,t){return new e({type:"string",...Dt(t)})}function oYe(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Dt(t)})}function Ore(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Dt(t)})}function aYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Dt(t)})}function cYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Dt(t)})}function uYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Dt(t)})}function lYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Dt(t)})}function dYe(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Dt(t)})}function fYe(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Dt(t)})}function pYe(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Dt(t)})}function hYe(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Dt(t)})}function mYe(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Dt(t)})}function gYe(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Dt(t)})}function yYe(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Dt(t)})}function SYe(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Dt(t)})}function bYe(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Dt(t)})}function EYe(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Dt(t)})}function _Ye(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Dt(t)})}function TYe(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Dt(t)})}function vYe(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Dt(t)})}function RYe(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Dt(t)})}function AYe(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Dt(t)})}function wYe(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Dt(t)})}function kYe(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Dt(t)})}function IYe(e,t){return new e({type:"string",format:"date",check:"string_format",...Dt(t)})}function xYe(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Dt(t)})}function OYe(e,t){return new e({type:"string",format:"duration",check:"string_format",...Dt(t)})}function PYe(e,t){return new e({type:"number",checks:[],...Dt(t)})}function NYe(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Dt(t)})}function CYe(e,t){return new e({type:"boolean",...Dt(t)})}function MYe(e,t){return new e({type:"null",...Dt(t)})}function DYe(e){return new e({type:"unknown"})}function LYe(e,t){return new e({type:"never",...Dt(t)})}function d2(e,t){return new _re({check:"less_than",...Dt(t),value:e,inclusive:!1})}function sC(e,t){return new _re({check:"less_than",...Dt(t),value:e,inclusive:!0})}function f2(e,t){return new Tre({check:"greater_than",...Dt(t),value:e,inclusive:!1})}function oC(e,t){return new Tre({check:"greater_than",...Dt(t),value:e,inclusive:!0})}function p2(e,t){return new H3e({check:"multiple_of",...Dt(t),value:e})}function h2(e,t){return new B3e({check:"max_length",...Dt(t),maximum:e})}function Kw(e,t){return new z3e({check:"min_length",...Dt(t),minimum:e})}function m2(e,t){return new G3e({check:"length_equals",...Dt(t),length:e})}function Pre(e,t){return new V3e({check:"string_format",format:"regex",...Dt(t),pattern:e})}function Nre(e){return new W3e({check:"string_format",format:"lowercase",...Dt(e)})}function Cre(e){return new K3e({check:"string_format",format:"uppercase",...Dt(e)})}function Mre(e,t){return new Y3e({check:"string_format",format:"includes",...Dt(t),includes:e})}function Dre(e,t){return new Z3e({check:"string_format",format:"starts_with",...Dt(t),prefix:e})}function Lre(e,t){return new J3e({check:"string_format",format:"ends_with",...Dt(t),suffix:e})}function N_(e){return new X3e({check:"overwrite",tx:e})}function Ure(e){return N_(t=>t.normalize(e))}function Fre(){return N_(e=>e.trim())}function jre(){return N_(e=>e.toLowerCase())}function Hre(){return N_(e=>e.toUpperCase())}function UYe(e,t,n){return new e({type:"array",element:t,...Dt(n)})}function FYe(e,t,n){let r=Dt(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function jYe(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Dt(n)})}var HYe=v(()=>{o2();Gm()});var qYe=v(()=>{});var BYe=v(()=>{});var zYe=v(()=>{});var hd=v(()=>{Gw();yre();hre();tYe();o2();Rre();Gm();s2();l2();iYe();vre();qYe();HYe();BYe();zYe()});var GYe=v(()=>{hd()});var VYe=v(()=>{});var WYe=v(()=>{});var KYe=v(()=>{});var YYe=v(()=>{});var ZYe=v(()=>{hd();GYe();VYe();WYe();l2();KYe();YYe()});var JYe=v(()=>{ZYe()});var XYe=v(()=>{JYe()});function Zw(e){return!!e._zod}function xS(e,t){return Zw(e)?nC(e,t):e.safeParse(t)}function g2(e){if(!e)return;let t;if(Zw(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function QYe(e){if(Zw(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 y2=v(()=>{XYe()});var qre=v(()=>{hd()});var aC={};Ar(aC,{ZodISODate:()=>eZe,ZodISODateTime:()=>$Ye,ZodISODuration:()=>nZe,ZodISOTime:()=>tZe,date:()=>zre,datetime:()=>Bre,duration:()=>Vre,time:()=>Gre});function Bre(e){return kYe($Ye,e)}function zre(e){return IYe(eZe,e)}function Gre(e){return xYe(tZe,e)}function Vre(e){return OYe(nZe,e)}var $Ye,eZe,tZe,nZe,Wre=v(()=>{hd();Kre();$Ye=me("ZodISODateTime",(e,t)=>{E9e.init(e,t),Di.init(e,t)});eZe=me("ZodISODate",(e,t)=>{_9e.init(e,t),Di.init(e,t)});tZe=me("ZodISOTime",(e,t)=>{T9e.init(e,t),Di.init(e,t)});nZe=me("ZodISODuration",(e,t)=>{v9e.init(e,t),Di.init(e,t)})});var rZe,Lqr,cC,Yre=v(()=>{hd();hd();rZe=(e,t)=>{r2.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>a3e(e,n)},flatten:{value:n=>o3e(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},Lqr=me("ZodError",rZe),cC=me("ZodError",rZe,{Parent:Error})});var iZe,sZe,oZe,aZe,Zre=v(()=>{hd();Yre();iZe=c3e(cC),sZe=u3e(cC),oZe=mre(cC),aZe=gre(cC)});function le(e){return sYe(pon,e)}function vr(e){return PYe(fZe,e)}function uZe(e){return NYe(Pon,e)}function Vo(e){return CYe(Non,e)}function pZe(e){return MYe(Con,e)}function Li(){return DYe(Mon)}function Lon(e){return LYe(Don,e)}function Vn(e,t){return UYe(Uon,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 hZe(n)}function Bc(e,t){return new hZe({type:"object",get shape(){return or.assignProp(this,"shape",{...e}),this.shape},catchall:Li(),...or.normalizeParams(t)})}function mi(e,t){return new mZe({type:"union",options:e,...or.normalizeParams(t)})}function Qre(e,t,n){return new Fon({type:"union",options:t,discriminator:e,...or.normalizeParams(n)})}function b2(e,t){return new jon({type:"intersection",left:e,right:t})}function ii(e,t,n){return new Hon({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 Jre({type:"enum",entries:n,...or.normalizeParams(t)})}function ft(e,t){return new qon({type:"literal",values:Array.isArray(e)?e:[e],...or.normalizeParams(t)})}function gZe(e){return new Bon({type:"transform",transform:e})}function Ui(e){return new yZe({type:"optional",innerType:e})}function lZe(e){return new zon({type:"nullable",innerType:e})}function Von(e,t){return new Gon({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Kon(e,t){return new Won({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Yon(e,t){return new SZe({type:"nonoptional",innerType:e,...or.normalizeParams(t)})}function Jon(e,t){return new Zon({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function Xre(e,t){return new Xon({type:"pipe",in:e,out:t})}function $on(e){return new Qon({type:"readonly",innerType:e})}function ean(e){let t=new rc({check:"custom"});return t._zod.check=e,t}function EZe(e,t){return FYe(bZe,e??(()=>!0),t)}function tan(e,t={}){return jYe(bZe,e,t)}function nan(e){let t=ean(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 $re(e,t){return Xre(gZe(e),t)}var Xi,dZe,pon,Di,hon,cZe,S2,mon,gon,yon,Son,bon,Eon,_on,Ton,von,Ron,Aon,won,kon,Ion,xon,Oon,fZe,Pon,Non,Con,Mon,Don,Uon,hZe,mZe,Fon,jon,Hon,Jre,qon,Bon,yZe,zon,Gon,Won,SZe,Zon,Xon,Qon,bZe,Kre=v(()=>{hd();hd();qre();Wre();Zre();Xi=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)=>iZe(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>oZe(e,n,r),e.parseAsync=async(n,r)=>sZe(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>aZe(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(tan(n,r)),e.superRefine=n=>e.check(nan(n)),e.overwrite=n=>e.check(N_(n)),e.optional=()=>Ui(e),e.nullable=()=>lZe(e),e.nullish=()=>Ui(lZe(e)),e.nonoptional=n=>Yon(e,n),e.array=()=>Vn(e),e.or=n=>mi([e,n]),e.and=n=>b2(e,n),e.transform=n=>Xre(e,gZe(n)),e.default=n=>Von(e,n),e.prefault=n=>Kon(e,n),e.catch=n=>Jon(e,n),e.pipe=n=>Xre(e,n),e.readonly=()=>$on(e),e.describe=n=>{let r=e.clone();return iC.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return iC.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return iC.get(e);let r=e.clone();return iC.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),dZe=me("_ZodString",(e,t)=>{u2.init(e,t),Xi.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(Pre(...r)),e.includes=(...r)=>e.check(Mre(...r)),e.startsWith=(...r)=>e.check(Dre(...r)),e.endsWith=(...r)=>e.check(Lre(...r)),e.min=(...r)=>e.check(Kw(...r)),e.max=(...r)=>e.check(h2(...r)),e.length=(...r)=>e.check(m2(...r)),e.nonempty=(...r)=>e.check(Kw(1,...r)),e.lowercase=r=>e.check(Nre(r)),e.uppercase=r=>e.check(Cre(r)),e.trim=()=>e.check(Fre()),e.normalize=(...r)=>e.check(Ure(...r)),e.toLowerCase=()=>e.check(jre()),e.toUpperCase=()=>e.check(Hre())}),pon=me("ZodString",(e,t)=>{u2.init(e,t),dZe.init(e,t),e.email=n=>e.check(oYe(hon,n)),e.url=n=>e.check(dYe(mon,n)),e.jwt=n=>e.check(wYe(Oon,n)),e.emoji=n=>e.check(fYe(gon,n)),e.guid=n=>e.check(Ore(cZe,n)),e.uuid=n=>e.check(aYe(S2,n)),e.uuidv4=n=>e.check(cYe(S2,n)),e.uuidv6=n=>e.check(uYe(S2,n)),e.uuidv7=n=>e.check(lYe(S2,n)),e.nanoid=n=>e.check(pYe(yon,n)),e.guid=n=>e.check(Ore(cZe,n)),e.cuid=n=>e.check(hYe(Son,n)),e.cuid2=n=>e.check(mYe(bon,n)),e.ulid=n=>e.check(gYe(Eon,n)),e.base64=n=>e.check(vYe(kon,n)),e.base64url=n=>e.check(RYe(Ion,n)),e.xid=n=>e.check(yYe(_on,n)),e.ksuid=n=>e.check(SYe(Ton,n)),e.ipv4=n=>e.check(bYe(von,n)),e.ipv6=n=>e.check(EYe(Ron,n)),e.cidrv4=n=>e.check(_Ye(Aon,n)),e.cidrv6=n=>e.check(TYe(won,n)),e.e164=n=>e.check(AYe(xon,n)),e.datetime=n=>e.check(Bre(n)),e.date=n=>e.check(zre(n)),e.time=n=>e.check(Gre(n)),e.duration=n=>e.check(Vre(n))});Di=me("ZodStringFormat",(e,t)=>{hi.init(e,t),dZe.init(e,t)}),hon=me("ZodEmail",(e,t)=>{d9e.init(e,t),Di.init(e,t)}),cZe=me("ZodGUID",(e,t)=>{u9e.init(e,t),Di.init(e,t)}),S2=me("ZodUUID",(e,t)=>{l9e.init(e,t),Di.init(e,t)}),mon=me("ZodURL",(e,t)=>{f9e.init(e,t),Di.init(e,t)}),gon=me("ZodEmoji",(e,t)=>{p9e.init(e,t),Di.init(e,t)}),yon=me("ZodNanoID",(e,t)=>{h9e.init(e,t),Di.init(e,t)}),Son=me("ZodCUID",(e,t)=>{m9e.init(e,t),Di.init(e,t)}),bon=me("ZodCUID2",(e,t)=>{g9e.init(e,t),Di.init(e,t)}),Eon=me("ZodULID",(e,t)=>{y9e.init(e,t),Di.init(e,t)}),_on=me("ZodXID",(e,t)=>{S9e.init(e,t),Di.init(e,t)}),Ton=me("ZodKSUID",(e,t)=>{b9e.init(e,t),Di.init(e,t)}),von=me("ZodIPv4",(e,t)=>{R9e.init(e,t),Di.init(e,t)}),Ron=me("ZodIPv6",(e,t)=>{A9e.init(e,t),Di.init(e,t)}),Aon=me("ZodCIDRv4",(e,t)=>{w9e.init(e,t),Di.init(e,t)}),won=me("ZodCIDRv6",(e,t)=>{k9e.init(e,t),Di.init(e,t)}),kon=me("ZodBase64",(e,t)=>{x9e.init(e,t),Di.init(e,t)}),Ion=me("ZodBase64URL",(e,t)=>{O9e.init(e,t),Di.init(e,t)}),xon=me("ZodE164",(e,t)=>{P9e.init(e,t),Di.init(e,t)}),Oon=me("ZodJWT",(e,t)=>{N9e.init(e,t),Di.init(e,t)}),fZe=me("ZodNumber",(e,t)=>{wre.init(e,t),Xi.init(e,t),e.gt=(r,i)=>e.check(f2(r,i)),e.gte=(r,i)=>e.check(oC(r,i)),e.min=(r,i)=>e.check(oC(r,i)),e.lt=(r,i)=>e.check(d2(r,i)),e.lte=(r,i)=>e.check(sC(r,i)),e.max=(r,i)=>e.check(sC(r,i)),e.int=r=>e.check(uZe(r)),e.safe=r=>e.check(uZe(r)),e.positive=r=>e.check(f2(0,r)),e.nonnegative=r=>e.check(oC(0,r)),e.negative=r=>e.check(d2(0,r)),e.nonpositive=r=>e.check(sC(0,r)),e.multipleOf=(r,i)=>e.check(p2(r,i)),e.step=(r,i)=>e.check(p2(r,i)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});Pon=me("ZodNumberFormat",(e,t)=>{C9e.init(e,t),fZe.init(e,t)});Non=me("ZodBoolean",(e,t)=>{M9e.init(e,t),Xi.init(e,t)});Con=me("ZodNull",(e,t)=>{D9e.init(e,t),Xi.init(e,t)});Mon=me("ZodUnknown",(e,t)=>{L9e.init(e,t),Xi.init(e,t)});Don=me("ZodNever",(e,t)=>{U9e.init(e,t),Xi.init(e,t)});Uon=me("ZodArray",(e,t)=>{F9e.init(e,t),Xi.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(Kw(n,r)),e.nonempty=n=>e.check(Kw(1,n)),e.max=(n,r)=>e.check(h2(n,r)),e.length=(n,r)=>e.check(m2(n,r)),e.unwrap=()=>e.element});hZe=me("ZodObject",(e,t)=>{j9e.init(e,t),Xi.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:Lon()}),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(yZe,e,n[0]),e.required=(...n)=>or.required(SZe,e,n[0])});mZe=me("ZodUnion",(e,t)=>{kre.init(e,t),Xi.init(e,t),e.options=t.options});Fon=me("ZodDiscriminatedUnion",(e,t)=>{mZe.init(e,t),H9e.init(e,t)});jon=me("ZodIntersection",(e,t)=>{q9e.init(e,t),Xi.init(e,t)});Hon=me("ZodRecord",(e,t)=>{B9e.init(e,t),Xi.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});Jre=me("ZodEnum",(e,t)=>{z9e.init(e,t),Xi.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 Jre({...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 Jre({...t,checks:[],...or.normalizeParams(i),entries:s})}});qon=me("ZodLiteral",(e,t)=>{G9e.init(e,t),Xi.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]}})});Bon=me("ZodTransform",(e,t)=>{V9e.init(e,t),Xi.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)}});yZe=me("ZodOptional",(e,t)=>{W9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType});zon=me("ZodNullable",(e,t)=>{K9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType});Gon=me("ZodDefault",(e,t)=>{Y9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});Won=me("ZodPrefault",(e,t)=>{Z9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType});SZe=me("ZodNonOptional",(e,t)=>{J9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType});Zon=me("ZodCatch",(e,t)=>{X9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});Xon=me("ZodPipe",(e,t)=>{Q9e.init(e,t),Xi.init(e,t),e.in=t.in,e.out=t.out});Qon=me("ZodReadonly",(e,t)=>{$9e.init(e,t),Xi.init(e,t)});bZe=me("ZodCustom",(e,t)=>{eYe.init(e,t),Xi.init(e,t)})});var _Ze=v(()=>{});var TZe=v(()=>{});var vZe=v(()=>{hd();Kre();qre();Yre();Zre();_Ze();hd();rYe();l2();Wre();TZe();pd(nYe())});var RZe=v(()=>{vZe()});var AZe=v(()=>{RZe()});var tie,wZe,OS,_2,_o,kZe,IZe,PBr,san,oan,nie,Sl,uC,xZe,ma,md,gd,ga,T2,OZe,rie,PZe,NZe,iie,lC,Sn,sie,CZe,MZe,NBr,v2,aan,R2,can,dC,Jw,DZe,uan,lan,dan,fan,pan,han,oie,man,gan,aie,A2,yan,San,w2,ban,fC,pC,Ean,hC,Xw,_an,mC,k2,I2,x2,CBr,O2,P2,N2,LZe,UZe,FZe,cie,jZe,gC,Qw,HZe,Tan,van,Ran,Aan,wan,uie,kan,Ian,xan,Oan,Pan,Nan,Can,Man,Dan,Lan,Uan,Fan,lie,jan,Han,die,fie,pie,hie,qan,Ban,zan,mie,Gan,Van,Wan,Kan,Yan,qZe,gie,Zan,C2,MBr,Jan,yC,Xan,DBr,SC,Qan,yie,$an,ecn,tcn,ncn,rcn,icn,scn,E2,ocn,acn,ccn,bC,Sie,ucn,lcn,dcn,fcn,pcn,hcn,mcn,gcn,ycn,Scn,bcn,Ecn,_cn,Tcn,vcn,Rcn,Acn,wcn,$w,kcn,Icn,xcn,bie,Ocn,Pcn,Ncn,Eie,Ccn,LBr,UBr,FBr,jBr,HBr,qBr,rn,eie,C_=v(()=>{AZe();tie="2025-11-25",wZe=[tie,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],OS="io.modelcontextprotocol/related-task",_2="2.0",_o=EZe(e=>e!==null&&(typeof e=="object"||typeof e=="function")),kZe=mi([le(),vr().int()]),IZe=le(),PBr=Bc({ttl:vr().optional(),pollInterval:vr().optional()}),san=$e({ttl:vr().optional()}),oan=$e({taskId:le()}),nie=Bc({progressToken:kZe.optional(),[OS]:oan.optional()}),Sl=$e({_meta:nie.optional()}),uC=Sl.extend({task:san.optional()}),xZe=e=>uC.safeParse(e).success,ma=$e({method:le(),params:Sl.loose().optional()}),md=$e({_meta:nie.optional()}),gd=$e({method:le(),params:md.loose().optional()}),ga=Bc({_meta:nie.optional()}),T2=mi([le(),vr().int()]),OZe=$e({jsonrpc:ft(_2),id:T2,...ma.shape}).strict(),rie=e=>OZe.safeParse(e).success,PZe=$e({jsonrpc:ft(_2),...gd.shape}).strict(),NZe=e=>PZe.safeParse(e).success,iie=$e({jsonrpc:ft(_2),id:T2,result:ga}).strict(),lC=e=>iie.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"})(Sn||(Sn={}));sie=$e({jsonrpc:ft(_2),id:T2.optional(),error:$e({code:vr().int(),message:le(),data:Li().optional()})}).strict(),CZe=e=>sie.safeParse(e).success,MZe=mi([OZe,PZe,iie,sie]),NBr=mi([iie,sie]),v2=ga.strict(),aan=md.extend({requestId:T2.optional(),reason:le().optional()}),R2=gd.extend({method:ft("notifications/cancelled"),params:aan}),can=$e({src:le(),mimeType:le().optional(),sizes:Vn(le()).optional(),theme:Tu(["light","dark"]).optional()}),dC=$e({icons:Vn(can).optional()}),Jw=$e({name:le(),title:le().optional()}),DZe=Jw.extend({...Jw.shape,...dC.shape,version:le(),websiteUrl:le().optional(),description:le().optional()}),uan=b2($e({applyDefaults:Vo().optional()}),ii(le(),Li())),lan=$re(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,b2($e({form:uan.optional(),url:_o.optional()}),ii(le(),Li()).optional())),dan=Bc({list:_o.optional(),cancel:_o.optional(),requests:Bc({sampling:Bc({createMessage:_o.optional()}).optional(),elicitation:Bc({create:_o.optional()}).optional()}).optional()}),fan=Bc({list:_o.optional(),cancel:_o.optional(),requests:Bc({tools:Bc({call:_o.optional()}).optional()}).optional()}),pan=$e({experimental:ii(le(),_o).optional(),sampling:$e({context:_o.optional(),tools:_o.optional()}).optional(),elicitation:lan.optional(),roots:$e({listChanged:Vo().optional()}).optional(),tasks:dan.optional(),extensions:ii(le(),_o).optional()}),han=Sl.extend({protocolVersion:le(),capabilities:pan,clientInfo:DZe}),oie=ma.extend({method:ft("initialize"),params:han}),man=$e({experimental:ii(le(),_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:fan.optional(),extensions:ii(le(),_o).optional()}),gan=ga.extend({protocolVersion:le(),capabilities:man,serverInfo:DZe,instructions:le().optional()}),aie=gd.extend({method:ft("notifications/initialized"),params:md.optional()}),A2=ma.extend({method:ft("ping"),params:Sl.optional()}),yan=$e({progress:vr(),total:Ui(vr()),message:Ui(le())}),San=$e({...md.shape,...yan.shape,progressToken:kZe}),w2=gd.extend({method:ft("notifications/progress"),params:San}),ban=Sl.extend({cursor:IZe.optional()}),fC=ma.extend({params:ban.optional()}),pC=ga.extend({nextCursor:IZe.optional()}),Ean=Tu(["working","input_required","completed","failed","cancelled"]),hC=$e({taskId:le(),status:Ean,ttl:mi([vr(),pZe()]),createdAt:le(),lastUpdatedAt:le(),pollInterval:Ui(vr()),statusMessage:Ui(le())}),Xw=ga.extend({task:hC}),_an=md.merge(hC),mC=gd.extend({method:ft("notifications/tasks/status"),params:_an}),k2=ma.extend({method:ft("tasks/get"),params:Sl.extend({taskId:le()})}),I2=ga.merge(hC),x2=ma.extend({method:ft("tasks/result"),params:Sl.extend({taskId:le()})}),CBr=ga.loose(),O2=fC.extend({method:ft("tasks/list")}),P2=pC.extend({tasks:Vn(hC)}),N2=ma.extend({method:ft("tasks/cancel"),params:Sl.extend({taskId:le()})}),LZe=ga.merge(hC),UZe=$e({uri:le(),mimeType:Ui(le()),_meta:ii(le(),Li()).optional()}),FZe=UZe.extend({text:le()}),cie=le().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),jZe=UZe.extend({blob:cie}),gC=Tu(["user","assistant"]),Qw=$e({audience:Vn(gC).optional(),priority:vr().min(0).max(1).optional(),lastModified:aC.datetime({offset:!0}).optional()}),HZe=$e({...Jw.shape,...dC.shape,uri:le(),description:Ui(le()),mimeType:Ui(le()),size:Ui(vr()),annotations:Qw.optional(),_meta:Ui(Bc({}))}),Tan=$e({...Jw.shape,...dC.shape,uriTemplate:le(),description:Ui(le()),mimeType:Ui(le()),annotations:Qw.optional(),_meta:Ui(Bc({}))}),van=fC.extend({method:ft("resources/list")}),Ran=pC.extend({resources:Vn(HZe)}),Aan=fC.extend({method:ft("resources/templates/list")}),wan=pC.extend({resourceTemplates:Vn(Tan)}),uie=Sl.extend({uri:le()}),kan=uie,Ian=ma.extend({method:ft("resources/read"),params:kan}),xan=ga.extend({contents:Vn(mi([FZe,jZe]))}),Oan=gd.extend({method:ft("notifications/resources/list_changed"),params:md.optional()}),Pan=uie,Nan=ma.extend({method:ft("resources/subscribe"),params:Pan}),Can=uie,Man=ma.extend({method:ft("resources/unsubscribe"),params:Can}),Dan=md.extend({uri:le()}),Lan=gd.extend({method:ft("notifications/resources/updated"),params:Dan}),Uan=$e({name:le(),description:Ui(le()),required:Ui(Vo())}),Fan=$e({...Jw.shape,...dC.shape,description:Ui(le()),arguments:Ui(Vn(Uan)),_meta:Ui(Bc({}))}),lie=fC.extend({method:ft("prompts/list")}),jan=pC.extend({prompts:Vn(Fan)}),Han=Sl.extend({name:le(),arguments:ii(le(),le()).optional()}),die=ma.extend({method:ft("prompts/get"),params:Han}),fie=$e({type:ft("text"),text:le(),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),pie=$e({type:ft("image"),data:cie,mimeType:le(),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),hie=$e({type:ft("audio"),data:cie,mimeType:le(),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),qan=$e({type:ft("tool_use"),name:le(),id:le(),input:ii(le(),Li()),_meta:ii(le(),Li()).optional()}),Ban=$e({type:ft("resource"),resource:mi([FZe,jZe]),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),zan=HZe.extend({type:ft("resource_link")}),mie=mi([fie,pie,hie,zan,Ban]),Gan=$e({role:gC,content:mie}),Van=ga.extend({description:le().optional(),messages:Vn(Gan)}),Wan=gd.extend({method:ft("notifications/prompts/list_changed"),params:md.optional()}),Kan=$e({title:le().optional(),readOnlyHint:Vo().optional(),destructiveHint:Vo().optional(),idempotentHint:Vo().optional(),openWorldHint:Vo().optional()}),Yan=$e({taskSupport:Tu(["required","optional","forbidden"]).optional()}),qZe=$e({...Jw.shape,...dC.shape,description:le().optional(),inputSchema:$e({type:ft("object"),properties:ii(le(),_o).optional(),required:Vn(le()).optional()}).catchall(Li()),outputSchema:$e({type:ft("object"),properties:ii(le(),_o).optional(),required:Vn(le()).optional()}).catchall(Li()).optional(),annotations:Kan.optional(),execution:Yan.optional(),_meta:ii(le(),Li()).optional()}),gie=fC.extend({method:ft("tools/list")}),Zan=pC.extend({tools:Vn(qZe)}),C2=ga.extend({content:Vn(mie).default([]),structuredContent:ii(le(),Li()).optional(),isError:Vo().optional()}),MBr=C2.or(ga.extend({toolResult:Li()})),Jan=uC.extend({name:le(),arguments:ii(le(),Li()).optional()}),yC=ma.extend({method:ft("tools/call"),params:Jan}),Xan=gd.extend({method:ft("notifications/tools/list_changed"),params:md.optional()}),DBr=$e({autoRefresh:Vo().default(!0),debounceMs:vr().int().nonnegative().default(300)}),SC=Tu(["debug","info","notice","warning","error","critical","alert","emergency"]),Qan=Sl.extend({level:SC}),yie=ma.extend({method:ft("logging/setLevel"),params:Qan}),$an=md.extend({level:SC,logger:le().optional(),data:Li()}),ecn=gd.extend({method:ft("notifications/message"),params:$an}),tcn=$e({name:le().optional()}),ncn=$e({hints:Vn(tcn).optional(),costPriority:vr().min(0).max(1).optional(),speedPriority:vr().min(0).max(1).optional(),intelligencePriority:vr().min(0).max(1).optional()}),rcn=$e({mode:Tu(["auto","required","none"]).optional()}),icn=$e({type:ft("tool_result"),toolUseId:le().describe("The unique identifier for the corresponding tool call."),content:Vn(mie).default([]),structuredContent:$e({}).loose().optional(),isError:Vo().optional(),_meta:ii(le(),Li()).optional()}),scn=Qre("type",[fie,pie,hie]),E2=Qre("type",[fie,pie,hie,qan,icn]),ocn=$e({role:gC,content:mi([E2,Vn(E2)]),_meta:ii(le(),Li()).optional()}),acn=uC.extend({messages:Vn(ocn),modelPreferences:ncn.optional(),systemPrompt:le().optional(),includeContext:Tu(["none","thisServer","allServers"]).optional(),temperature:vr().optional(),maxTokens:vr().int(),stopSequences:Vn(le()).optional(),metadata:_o.optional(),tools:Vn(qZe).optional(),toolChoice:rcn.optional()}),ccn=ma.extend({method:ft("sampling/createMessage"),params:acn}),bC=ga.extend({model:le(),stopReason:Ui(Tu(["endTurn","stopSequence","maxTokens"]).or(le())),role:gC,content:scn}),Sie=ga.extend({model:le(),stopReason:Ui(Tu(["endTurn","stopSequence","maxTokens","toolUse"]).or(le())),role:gC,content:mi([E2,Vn(E2)])}),ucn=$e({type:ft("boolean"),title:le().optional(),description:le().optional(),default:Vo().optional()}),lcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),minLength:vr().optional(),maxLength:vr().optional(),format:Tu(["email","uri","date","date-time"]).optional(),default:le().optional()}),dcn=$e({type:Tu(["number","integer"]),title:le().optional(),description:le().optional(),minimum:vr().optional(),maximum:vr().optional(),default:vr().optional()}),fcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),enum:Vn(le()),default:le().optional()}),pcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),oneOf:Vn($e({const:le(),title:le()})),default:le().optional()}),hcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),enum:Vn(le()),enumNames:Vn(le()).optional(),default:le().optional()}),mcn=mi([fcn,pcn]),gcn=$e({type:ft("array"),title:le().optional(),description:le().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({type:ft("string"),enum:Vn(le())}),default:Vn(le()).optional()}),ycn=$e({type:ft("array"),title:le().optional(),description:le().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({anyOf:Vn($e({const:le(),title:le()}))}),default:Vn(le()).optional()}),Scn=mi([gcn,ycn]),bcn=mi([hcn,mcn,Scn]),Ecn=mi([bcn,ucn,lcn,dcn]),_cn=uC.extend({mode:ft("form").optional(),message:le(),requestedSchema:$e({type:ft("object"),properties:ii(le(),Ecn),required:Vn(le()).optional()})}),Tcn=uC.extend({mode:ft("url"),message:le(),elicitationId:le(),url:le().url()}),vcn=mi([_cn,Tcn]),Rcn=ma.extend({method:ft("elicitation/create"),params:vcn}),Acn=md.extend({elicitationId:le()}),wcn=gd.extend({method:ft("notifications/elicitation/complete"),params:Acn}),$w=ga.extend({action:Tu(["accept","decline","cancel"]),content:$re(e=>e===null?void 0:e,ii(le(),mi([le(),vr(),Vo(),Vn(le())])).optional())}),kcn=$e({type:ft("ref/resource"),uri:le()}),Icn=$e({type:ft("ref/prompt"),name:le()}),xcn=Sl.extend({ref:mi([Icn,kcn]),argument:$e({name:le(),value:le()}),context:$e({arguments:ii(le(),le()).optional()}).optional()}),bie=ma.extend({method:ft("completion/complete"),params:xcn}),Ocn=ga.extend({completion:Bc({values:Vn(le()).max(100),total:Ui(vr().int()),hasMore:Ui(Vo())})}),Pcn=$e({uri:le().startsWith("file://"),name:le().optional(),_meta:ii(le(),Li()).optional()}),Ncn=ma.extend({method:ft("roots/list"),params:Sl.optional()}),Eie=ga.extend({roots:Vn(Pcn)}),Ccn=gd.extend({method:ft("notifications/roots/list_changed"),params:md.optional()}),LBr=mi([A2,oie,bie,yie,die,lie,van,Aan,Ian,Nan,Man,yC,gie,k2,x2,O2,N2]),UBr=mi([R2,w2,aie,Ccn,mC]),FBr=mi([v2,bC,Sie,$w,Eie,I2,P2,Xw]),jBr=mi([A2,ccn,Rcn,Ncn,k2,x2,O2,N2]),HBr=mi([R2,w2,ecn,Lan,Oan,Xan,Wan,mC,wcn]),qBr=mi([v2,gan,Ocn,Van,jan,Ran,wan,xan,C2,Zan,I2,P2,Xw]),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===Sn.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new eie(i.elicitations,n)}return new e(t,n,r)}},eie=class extends rn{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(Sn.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}}});function PS(e){return e==="completed"||e==="failed"||e==="cancelled"}var BZe=v(()=>{});var M2=v(()=>{});var _ie=v(()=>{M2()});var NS=v(()=>{});var D2=v(()=>{});var yd=v(()=>{D2()});var Tie=v(()=>{NS();Qs()});var vie=v(()=>{NS()});var Rie=v(()=>{});var L2=v(()=>{Qs()});var Aie=v(()=>{Qs()});var wie=v(()=>{NS()});var kie=v(()=>{Qs()});var Iie=v(()=>{Qs();yd()});var xie=v(()=>{});var Oie=v(()=>{Qs()});var Pie=v(()=>{});var Ezr,U2=v(()=>{NS();Ezr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789")});var F2=v(()=>{Qs();U2();L2();yd()});var Nie=v(()=>{Qs();F2();yd()});var Cie=v(()=>{});var Mie=v(()=>{yd()});var Die=v(()=>{});var j2=v(()=>{Qs()});var Lie=v(()=>{Qs();j2()});var Uie=v(()=>{NS()});var Fie=v(()=>{Qs()});var jie=v(()=>{Qs();yd()});var Hie=v(()=>{Qs()});var qie=v(()=>{Qs()});var Bie=v(()=>{NS();Qs()});var zie=v(()=>{Qs()});var Gie=v(()=>{yd()});var Vie=v(()=>{yd()});var Wie=v(()=>{Qs()});var Kie=v(()=>{yd();Tie();vie();Rie();L2();Aie();wie();kie();Iie();xie();Oie();Pie();Nie();Cie();Mie();Die();Lie();Uie();Fie();jie();Hie();qie();F2();Bie();U2();zie();Gie();j2();Vie();Wie()});var Qs=v(()=>{M2();Kie();D2();yd()});var zZe=v(()=>{});var Yie=v(()=>{Qs();_ie();yd()});var Zie=v(()=>{M2();_ie();NS();D2();Qs();zZe();yd();Tie();vie();Rie();L2();Aie();wie();kie();Iie();xie();Oie();Pie();Nie();Cie();Mie();Die();Lie();Uie();Fie();jie();Hie();qie();Wie();F2();Bie();U2();zie();Gie();j2();Vie();Kie();Yie();Yie()});function Jie(e){let n=g2(e)?.method;if(!n)throw new Error("Schema is missing a method literal");let r=QYe(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function Xie(e,t){let n=xS(e,t);if(!n.success)throw n.error;return n.data}var VZe=v(()=>{y2();Zie()});function WZe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function KZe(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];WZe(o)&&WZe(s)?n[i]={...o,...s}:n[i]=s}return n}var Fcn,H2,YZe=v(()=>{y2();C_();BZe();VZe();Fcn=6e4,H2=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(R2,n=>{this._oncancel(n)}),this.setNotificationHandler(w2,n=>{this._onprogress(n)}),this.setRequestHandler(A2,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(k2,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(Sn.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(x2,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(Sn.InvalidParams,`Task not found: ${s}`);if(!PS(o.status))return await this._waitForTaskUpdate(s,r.signal),await i();if(PS(o.status)){let a=await this._taskStore.getTaskResult(s,r.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[OS]:{taskId:s}}}}return await i()};return await i()}),this.setRequestHandler(O2,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(Sn.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(N2,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(Sn.InvalidParams,`Task not found: ${n.params.taskId}`);if(PS(i.status))throw new rn(Sn.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(Sn.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof rn?i:new rn(Sn.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(Sn.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),lC(s)||CZe(s)?this._onresponse(s):rie(s)?this._onrequest(s,o):NZe(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(Sn.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?.[OS]?.taskId;if(r===void 0){let l={jsonrpc:"2.0",id:t.id,error:{code:Sn.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=xZe(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(Sn.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:Sn.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),lC(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(lC(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),lC(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(Sn.InternalError,String(o))}}return}let s;try{let o=await this.request(t,Xw,r);if(o.task)s=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new rn(Sn.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},r);if(yield{type:"taskStatus",task:a},PS(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(Sn.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new rn(Sn.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(Sn.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||{},[OS]: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(Sn.RequestTimeout,String(b));l(S)};this._responseHandlers.set(f,b=>{if(!r?.signal?.aborted){if(b instanceof Error)return l(b);try{let S=xS(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??Fcn,g=()=>h(rn.fromError(Sn.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},I2,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},P2,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},LZe,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||{},[OS]: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||{},[OS]: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||{},[OS]:n.relatedTask}}}),await this._transport.send(o,n)}setRequestHandler(t,n){let r=Jie(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=Xie(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=Jie(t);this._notificationHandlers.set(r,i=>{let s=Xie(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"&&rie(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new rn(Sn.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(Sn.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,r);n.addEventListener("abort",()=>{clearTimeout(o),s(new rn(Sn.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(Sn.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=mC.parse({method:"notifications/tasks/status",params:a});await this.notification(c),PS(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(Sn.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(PS(a.status))throw new rn(Sn.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=mC.parse({method:"notifications/tasks/status",params:c});await this.notification(u),PS(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}}});var ek=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 _C=class{};tr._CodeOrName=_C;tr.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var M_=class extends _C{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=M_;var Sd=class extends _C{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 M_&&(n[r.str]=(n[r.str]||0)+1),n),{})}};tr._Code=Sd;tr.nil=new Sd("");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=ek(),ese=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},q2;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(q2||(Ru.UsedValueState=q2={}));Ru.varKinds={const:new vu.Name("const"),let:new vu.Name("let"),var:new vu.Name("var")};var B2=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=B2;var z2=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=z2;var Kcn=(0,vu._)`\n`,tse=class extends B2{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?Kcn:vu.nil}}get(){return this._scope}name(t){return new z2(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,q2.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 ese(u);c.set(u,q2.Completed)})}return s}};Ru.ValueScope=tse});var Ot=w(bn=>{"use strict";Object.defineProperty(bn,"__esModule",{value:!0});bn.or=bn.and=bn.not=bn.CodeGen=bn.operators=bn.varKinds=bn.ValueScopeName=bn.ValueScope=bn.Scope=bn.Name=bn.regexpCode=bn.stringify=bn.getProperty=bn.nil=bn.strConcat=bn.str=bn._=void 0;var Wn=ek(),Rf=G2(),CS=ek();Object.defineProperty(bn,"_",{enumerable:!0,get:function(){return CS._}});Object.defineProperty(bn,"str",{enumerable:!0,get:function(){return CS.str}});Object.defineProperty(bn,"strConcat",{enumerable:!0,get:function(){return CS.strConcat}});Object.defineProperty(bn,"nil",{enumerable:!0,get:function(){return CS.nil}});Object.defineProperty(bn,"getProperty",{enumerable:!0,get:function(){return CS.getProperty}});Object.defineProperty(bn,"stringify",{enumerable:!0,get:function(){return CS.stringify}});Object.defineProperty(bn,"regexpCode",{enumerable:!0,get:function(){return CS.regexpCode}});Object.defineProperty(bn,"Name",{enumerable:!0,get:function(){return CS.Name}});var Y2=G2();Object.defineProperty(bn,"Scope",{enumerable:!0,get:function(){return Y2.Scope}});Object.defineProperty(bn,"ValueScope",{enumerable:!0,get:function(){return Y2.ValueScope}});Object.defineProperty(bn,"ValueScopeName",{enumerable:!0,get:function(){return Y2.ValueScopeName}});Object.defineProperty(bn,"varKinds",{enumerable:!0,get:function(){return Y2.varKinds}});bn.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 Wm=class{optimizeNodes(){return this}optimizeNames(t,n){return this}},nse=class extends Wm{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=nk(this.rhs,t,n)),this}get names(){return this.rhs instanceof Wn._CodeOrName?this.rhs.names:{}}},V2=class extends Wm{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=nk(this.rhs,t,n),this}get names(){let t=this.lhs instanceof Wn.Name?{}:{...this.lhs.names};return K2(t,this.rhs)}},rse=class extends V2{constructor(t,n,r,i){super(t,r,i),this.op=n}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},ise=class extends Wm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},sse=class extends Wm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},ose=class extends Wm{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},ase=class extends Wm{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=nk(this.code,t,n),this}get names(){return this.code instanceof Wn._CodeOrName?this.code.names:{}}},vC=class extends Wm{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)||(Ycn(t,s.names),r.splice(i,1))}return r.length>0?this:void 0}get names(){return this.nodes.reduce((t,n)=>U_(t,n.names),{})}},Km=class extends vC{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},cse=class extends vC{},tk=class extends Km{};tk.kind="else";var D_=class e extends Km{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 tk(r):r}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(XZe(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=nk(this.condition,t,n),this}get names(){let t=super.names;return K2(t,this.condition),this.else&&U_(t,this.else.names),t}};D_.kind="if";var L_=class extends Km{};L_.kind="for";var use=class extends L_{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=nk(this.iteration,t,n),this}get names(){return U_(super.names,this.iteration.names)}},lse=class extends L_{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=K2(super.names,this.from);return K2(t,this.to)}},W2=class extends L_{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=nk(this.iterable,t,n),this}get names(){return U_(super.names,this.iterable.names)}},RC=class extends Km{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)}};RC.kind="func";var AC=class extends vC{render(t){return"return "+super.render(t)}};AC.kind="return";var dse=class extends Km{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&&U_(t,this.catch.names),this.finally&&U_(t,this.finally.names),t}},wC=class extends Km{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};wC.kind="catch";var kC=class extends Km{render(t){return"finally"+super.render(t)}};kC.kind="finally";var fse=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 cse]}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 nse(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 V2(t,n,r))}add(t,n){return this._leafNode(new rse(t,bn.operators.ADD,n))}code(t){return typeof t=="function"?t():t!==Wn.nil&&this._leafNode(new ase(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 D_(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 D_(t))}else(){return this._elseNode(new tk)}endIf(){return this._endBlockNode(D_,tk)}_for(t,n){return this._blockNode(t),n&&this.code(n).endFor(),this}for(t,n){return this._for(new use(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 lse(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 W2("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 W2("in",i,s,n),()=>r(s))}endFor(){return this._endBlockNode(L_)}label(t){return this._leafNode(new ise(t))}break(t){return this._leafNode(new sse(t))}return(t){let n=new AC;if(this._blockNode(n),this.code(t),n.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(AC)}try(t,n,r){if(!n&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new dse;if(this._blockNode(i),this.code(t),n){let s=this.name("e");this._currNode=i.catch=new wC(s),n(s)}return r&&(this._currNode=i.finally=new kC,this.code(r)),this._endBlockNode(wC,kC)}throw(t){return this._leafNode(new ose(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 RC(t,n,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(RC)}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 D_))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}};bn.CodeGen=fse;function U_(e,t){for(let n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function K2(e,t){return t instanceof Wn._CodeOrName?U_(e,t.names):e}function nk(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 Ycn(e,t){for(let n in t)e[n]=(e[n]||0)-(t[n]||0)}function XZe(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,Wn._)`!${pse(e)}`}bn.not=XZe;var Zcn=QZe(bn.operators.AND);function Jcn(...e){return e.reduce(Zcn)}bn.and=Jcn;var Xcn=QZe(bn.operators.OR);function Qcn(...e){return e.reduce(Xcn)}bn.or=Qcn;function QZe(e){return(t,n)=>t===Wn.nil?n:n===Wn.nil?t:(0,Wn._)`${pse(t)} ${e} ${pse(n)}`}function pse(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(),$cn=ek();function eun(e){let t={};for(let n of e)t[n]=!0;return t}Rn.toHash=eun;function tun(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(t6e(e,t),!n6e(t,e.self.RULES.all))}Rn.alwaysValidSchema=tun;function t6e(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]||s6e(e,`unknown keyword: "${s}"`)}Rn.checkUnknownRules=t6e;function n6e(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(t[n])return!0;return!1}Rn.schemaHasRules=n6e;function nun(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=nun;function run({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=run;function iun(e){return r6e(decodeURIComponent(e))}Rn.unescapeFragment=iun;function sun(e){return encodeURIComponent(mse(e))}Rn.escapeFragment=sun;function mse(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}Rn.escapeJsonPointer=mse;function r6e(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}Rn.unescapeJsonPointer=r6e;function oun(e,t){if(Array.isArray(e))for(let n of e)t(n);else t(e)}Rn.eachItem=oun;function $Ze({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:$Ze({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} || {}`),gse(e,n,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:i6e}),items:$Ze({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 i6e(e,t){if(t===!0)return e.var("props",!0);let n=e.var("props",(0,Wr._)`{}`);return t!==void 0&&gse(e,n,t),n}Rn.evaluatedPropsToName=i6e;function gse(e,t,n){Object.keys(n).forEach(r=>e.assign((0,Wr._)`${t}${(0,Wr.getProperty)(r)}`,!0))}Rn.setEvaluated=gse;var e6e={};function aun(e,t){return e.scopeValue("func",{ref:t,code:e6e[t.code]||(e6e[t.code]=new $cn._Code(t.code))})}Rn.useFunc=aun;var hse;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(hse||(Rn.Type=hse={}));function cun(e,t,n){if(e instanceof Wr.Name){let r=t===hse.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():"/"+mse(e)}Rn.getErrorPath=cun;function s6e(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=s6e});var bd=w(yse=>{"use strict";Object.defineProperty(yse,"__esModule",{value:!0});var ic=Ot(),uun={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")};yse.default=uun});var IC=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(),Z2=pn(),zc=bd();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 lun(e,t=sc.keywordError,n,r){let{it:i}=e,{gen:s,compositeRule:o,allErrors:a}=i,c=c6e(e,t,n);r??(o||a)?o6e(s,c):a6e(i,(0,Jn._)`[${c}]`)}sc.reportError=lun;function dun(e,t=sc.keywordError,n){let{it:r}=e,{gen:i,compositeRule:s,allErrors:o}=r,a=c6e(e,t,n);o6e(i,a),s||o||a6e(r,zc.default.vErrors)}sc.reportExtraError=dun;function fun(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=fun;function pun({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=pun;function o6e(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 a6e(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 F_={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 c6e(e,t,n){let{createErrors:r}=e.it;return r===!1?(0,Jn._)`{}`:hun(e,t,n)}function hun(e,t,n={}){let{gen:r,it:i}=e,s=[mun(i,n),gun(e,n)];return yun(e,t,s),r.object(...s)}function mun({errorPath:e},{instancePath:t}){let n=t?(0,Jn.str)`${e}${(0,Z2.getErrorPath)(t,Z2.Type.Str)}`:e;return[zc.default.instancePath,(0,Jn.strConcat)(zc.default.instancePath,n)]}function gun({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,Z2.getErrorPath)(n,Z2.Type.Str)}`),[F_.schemaPath,i]}function yun(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([F_.keyword,i],[F_.params,typeof t=="function"?t(e):t||(0,Jn._)`{}`]),c.messages&&r.push([F_.message,typeof n=="function"?n(e):n]),c.verbose&&r.push([F_.schema,o],[F_.parentSchema,(0,Jn._)`${l}${d}`],[zc.default.data,s]),u&&r.push([F_.propertyName,u])}});var l6e=w(rk=>{"use strict";Object.defineProperty(rk,"__esModule",{value:!0});rk.boolOrEmptySchema=rk.topBoolOrEmptySchema=void 0;var Sun=IC(),bun=Ot(),Eun=bd(),_un={message:"boolean schema is false"};function Tun(e){let{gen:t,schema:n,validateName:r}=e;n===!1?u6e(e,!1):typeof n=="object"&&n.$async===!0?t.return(Eun.default.data):(t.assign((0,bun._)`${r}.errors`,null),t.return(!0))}rk.topBoolOrEmptySchema=Tun;function vun(e,t){let{gen:n,schema:r}=e;r===!1?(n.var(t,!1),u6e(e)):n.var(t,!0)}rk.boolOrEmptySchema=vun;function u6e(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,Sun.reportError)(i,_un,void 0,t)}});var Sse=w(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});ik.getRules=ik.isJSONType=void 0;var Run=["string","number","integer","boolean","null","object","array"],Aun=new Set(Run);function wun(e){return typeof e=="string"&&Aun.has(e)}ik.isJSONType=wun;function kun(){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:{}}}ik.getRules=kun});var bse=w(MS=>{"use strict";Object.defineProperty(MS,"__esModule",{value:!0});MS.shouldUseRule=MS.shouldUseGroup=MS.schemaHasRulesForType=void 0;function Iun({schema:e,self:t},n){let r=t.RULES.types[n];return r&&r!==!0&&d6e(e,r)}MS.schemaHasRulesForType=Iun;function d6e(e,t){return t.rules.some(n=>f6e(e,n))}MS.shouldUseGroup=d6e;function f6e(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))}MS.shouldUseRule=f6e});var xC=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 xun=Sse(),Oun=bse(),Pun=IC(),hn=Ot(),p6e=pn(),sk;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(sk||(oc.DataType=sk={}));function Nun(e){let t=h6e(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=Nun;function h6e(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(xun.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}oc.getJSONTypes=h6e;function Cun(e,t){let{gen:n,data:r,opts:i}=e,s=Mun(t,i.coerceTypes),o=t.length>0&&!(s.length===0&&t.length===1&&(0,Oun.schemaHasRulesForType)(e,t[0]));if(o){let a=_se(t,r,i.strictNumbers,sk.Wrong);n.if(a,()=>{s.length?Dun(e,t,s):Tse(e)})}return o}oc.coerceAndCheckDataType=Cun;var m6e=new Set(["string","number","integer","boolean","null"]);function Mun(e,t){return t?e.filter(n=>m6e.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(_se(t,i,s.strictNumbers),()=>r.assign(a,i))),r.if((0,hn._)`${a} !== undefined`);for(let u of n)(m6e.has(u)||u==="array"&&s.coerceTypes==="array")&&c(u);r.else(),Tse(e),r.endIf(),r.if((0,hn._)`${a} !== undefined`,()=>{r.assign(i,a),Lun(e,a)});function c(u){switch(u){case"string":r.elseIf((0,hn._)`${o} == "number" || ${o} == "boolean"`).assign(a,(0,hn._)`"" + ${i}`).elseIf((0,hn._)`${i} === null`).assign(a,(0,hn._)`""`);return;case"number":r.elseIf((0,hn._)`${o} == "boolean" || ${i} === null + })));`),f.write(`newResult[${O_(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=Vw,o=!$G.jitless,c=o&&ure.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?r9e(A,d,E,p):c2(A,d,E))):R?r9e(T,d,E,p):c2(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(_=>c2(_,d,S))):c2(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}});Ire=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=>eC(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=>i9e(o,n,e,r)):i9e(s,n,e,r)}}),B9e=me("$ZodDiscriminatedUnion",(e,t)=>{Ire.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=QN(()=>{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(!Vw(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)}}),z9e=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])=>s9e(n,c,u)):s9e(n,s,o)}});G9e=me("$ZodRecord",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Ww(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,pd())),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}}),V9e=me("$ZodEnum",(e,t)=>{ri.init(e,t);let n=sre(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>lre.has(typeof r)).map(r=>typeof r=="string"?IS(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}}),W9e=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"?IS(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}}),K9e=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 zm;return n.value=i,n}}),Y9e=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(`^(${eC(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)}),Z9e=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(`^(${eC(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)}),J9e=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=>o9e(s,t)):o9e(i,t)}});X9e=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))}),Q9e=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=>a9e(s,e)):a9e(i,e)}});$9e=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,pd()))},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,pd()))},input:n.value}),n.issues=[]),n)}}),eYe=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=>c9e(s,t,r)):c9e(i,t,r)}});tYe=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(u9e):u9e(i)}});nYe=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=>l9e(s,n,r,e));l9e(i,n,r,e)}})});function iYe(){return{localeError:ron()}}var non,ron,sYe=v(()=>{Gm();non=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},ron=()=>{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 ${non(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${n2(r.values[0])}`:`Invalid option: expected one of ${e2(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":""}: ${e2(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 l2=v(()=>{});function ion(){return new Ore}var Ore,iC,oYe=v(()=>{Ore=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)}};iC=ion()});function aYe(e,t){return new e({type:"string",...Dt(t)})}function cYe(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Dt(t)})}function Pre(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Dt(t)})}function uYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Dt(t)})}function lYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Dt(t)})}function dYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Dt(t)})}function fYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Dt(t)})}function pYe(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Dt(t)})}function hYe(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Dt(t)})}function mYe(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Dt(t)})}function gYe(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Dt(t)})}function yYe(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Dt(t)})}function SYe(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Dt(t)})}function bYe(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Dt(t)})}function EYe(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Dt(t)})}function _Ye(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Dt(t)})}function TYe(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Dt(t)})}function vYe(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Dt(t)})}function RYe(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Dt(t)})}function AYe(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Dt(t)})}function wYe(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Dt(t)})}function kYe(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Dt(t)})}function IYe(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Dt(t)})}function xYe(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Dt(t)})}function OYe(e,t){return new e({type:"string",format:"date",check:"string_format",...Dt(t)})}function PYe(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Dt(t)})}function NYe(e,t){return new e({type:"string",format:"duration",check:"string_format",...Dt(t)})}function CYe(e,t){return new e({type:"number",checks:[],...Dt(t)})}function MYe(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Dt(t)})}function DYe(e,t){return new e({type:"boolean",...Dt(t)})}function LYe(e,t){return new e({type:"null",...Dt(t)})}function UYe(e){return new e({type:"unknown"})}function FYe(e,t){return new e({type:"never",...Dt(t)})}function d2(e,t){return new Tre({check:"less_than",...Dt(t),value:e,inclusive:!1})}function sC(e,t){return new Tre({check:"less_than",...Dt(t),value:e,inclusive:!0})}function f2(e,t){return new vre({check:"greater_than",...Dt(t),value:e,inclusive:!1})}function oC(e,t){return new vre({check:"greater_than",...Dt(t),value:e,inclusive:!0})}function p2(e,t){return new B3e({check:"multiple_of",...Dt(t),value:e})}function h2(e,t){return new G3e({check:"max_length",...Dt(t),maximum:e})}function Kw(e,t){return new V3e({check:"min_length",...Dt(t),minimum:e})}function m2(e,t){return new W3e({check:"length_equals",...Dt(t),length:e})}function Nre(e,t){return new K3e({check:"string_format",format:"regex",...Dt(t),pattern:e})}function Cre(e){return new Y3e({check:"string_format",format:"lowercase",...Dt(e)})}function Mre(e){return new Z3e({check:"string_format",format:"uppercase",...Dt(e)})}function Dre(e,t){return new J3e({check:"string_format",format:"includes",...Dt(t),includes:e})}function Lre(e,t){return new X3e({check:"string_format",format:"starts_with",...Dt(t),prefix:e})}function Ure(e,t){return new Q3e({check:"string_format",format:"ends_with",...Dt(t),suffix:e})}function N_(e){return new $3e({check:"overwrite",tx:e})}function Fre(e){return N_(t=>t.normalize(e))}function jre(){return N_(e=>e.trim())}function Hre(){return N_(e=>e.toLowerCase())}function qre(){return N_(e=>e.toUpperCase())}function jYe(e,t,n){return new e({type:"array",element:t,...Dt(n)})}function HYe(e,t,n){let r=Dt(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function qYe(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Dt(n)})}var BYe=v(()=>{o2();Gm()});var zYe=v(()=>{});var GYe=v(()=>{});var VYe=v(()=>{});var hd=v(()=>{Gw();Sre();mre();rYe();o2();Are();Gm();s2();l2();oYe();Rre();zYe();BYe();GYe();VYe()});var WYe=v(()=>{hd()});var KYe=v(()=>{});var YYe=v(()=>{});var ZYe=v(()=>{});var JYe=v(()=>{});var XYe=v(()=>{hd();WYe();KYe();YYe();l2();ZYe();JYe()});var QYe=v(()=>{XYe()});var $Ye=v(()=>{QYe()});function Zw(e){return!!e._zod}function xS(e,t){return Zw(e)?nC(e,t):e.safeParse(t)}function g2(e){if(!e)return;let t;if(Zw(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function eZe(e){if(Zw(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 y2=v(()=>{$Ye()});var Bre=v(()=>{hd()});var aC={};Ar(aC,{ZodISODate:()=>nZe,ZodISODateTime:()=>tZe,ZodISODuration:()=>iZe,ZodISOTime:()=>rZe,date:()=>Gre,datetime:()=>zre,duration:()=>Wre,time:()=>Vre});function zre(e){return xYe(tZe,e)}function Gre(e){return OYe(nZe,e)}function Vre(e){return PYe(rZe,e)}function Wre(e){return NYe(iZe,e)}var tZe,nZe,rZe,iZe,Kre=v(()=>{hd();Yre();tZe=me("ZodISODateTime",(e,t)=>{T9e.init(e,t),Di.init(e,t)});nZe=me("ZodISODate",(e,t)=>{v9e.init(e,t),Di.init(e,t)});rZe=me("ZodISOTime",(e,t)=>{R9e.init(e,t),Di.init(e,t)});iZe=me("ZodISODuration",(e,t)=>{A9e.init(e,t),Di.init(e,t)})});var sZe,Lqr,cC,Zre=v(()=>{hd();hd();sZe=(e,t)=>{r2.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>u3e(e,n)},flatten:{value:n=>c3e(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},Lqr=me("ZodError",sZe),cC=me("ZodError",sZe,{Parent:Error})});var oZe,aZe,cZe,uZe,Jre=v(()=>{hd();Zre();oZe=l3e(cC),aZe=d3e(cC),cZe=gre(cC),uZe=yre(cC)});function le(e){return aYe(mon,e)}function vr(e){return CYe(hZe,e)}function dZe(e){return MYe(Con,e)}function Vo(e){return DYe(Mon,e)}function mZe(e){return LYe(Don,e)}function Li(){return UYe(Lon)}function Fon(e){return FYe(Uon,e)}function Vn(e,t){return jYe(jon,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 gZe(n)}function Bc(e,t){return new gZe({type:"object",get shape(){return or.assignProp(this,"shape",{...e}),this.shape},catchall:Li(),...or.normalizeParams(t)})}function mi(e,t){return new yZe({type:"union",options:e,...or.normalizeParams(t)})}function $re(e,t,n){return new Hon({type:"union",options:t,discriminator:e,...or.normalizeParams(n)})}function b2(e,t){return new qon({type:"intersection",left:e,right:t})}function ii(e,t,n){return new Bon({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 Xre({type:"enum",entries:n,...or.normalizeParams(t)})}function ft(e,t){return new zon({type:"literal",values:Array.isArray(e)?e:[e],...or.normalizeParams(t)})}function SZe(e){return new Gon({type:"transform",transform:e})}function Ui(e){return new bZe({type:"optional",innerType:e})}function fZe(e){return new Von({type:"nullable",innerType:e})}function Kon(e,t){return new Won({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Zon(e,t){return new Yon({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Jon(e,t){return new EZe({type:"nonoptional",innerType:e,...or.normalizeParams(t)})}function Qon(e,t){return new Xon({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function Qre(e,t){return new $on({type:"pipe",in:e,out:t})}function tan(e){return new ean({type:"readonly",innerType:e})}function nan(e){let t=new rc({check:"custom"});return t._zod.check=e,t}function TZe(e,t){return HYe(_Ze,e??(()=>!0),t)}function ran(e,t={}){return qYe(_Ze,e,t)}function ian(e){let t=nan(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 eie(e,t){return Qre(SZe(e),t)}var Xi,pZe,mon,Di,gon,lZe,S2,yon,Son,bon,Eon,_on,Ton,von,Ron,Aon,won,kon,Ion,xon,Oon,Pon,Non,hZe,Con,Mon,Don,Lon,Uon,jon,gZe,yZe,Hon,qon,Bon,Xre,zon,Gon,bZe,Von,Won,Yon,EZe,Xon,$on,ean,_Ze,Yre=v(()=>{hd();hd();Bre();Kre();Jre();Xi=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)=>oZe(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>cZe(e,n,r),e.parseAsync=async(n,r)=>aZe(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>uZe(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(ran(n,r)),e.superRefine=n=>e.check(ian(n)),e.overwrite=n=>e.check(N_(n)),e.optional=()=>Ui(e),e.nullable=()=>fZe(e),e.nullish=()=>Ui(fZe(e)),e.nonoptional=n=>Jon(e,n),e.array=()=>Vn(e),e.or=n=>mi([e,n]),e.and=n=>b2(e,n),e.transform=n=>Qre(e,SZe(n)),e.default=n=>Kon(e,n),e.prefault=n=>Zon(e,n),e.catch=n=>Qon(e,n),e.pipe=n=>Qre(e,n),e.readonly=()=>tan(e),e.describe=n=>{let r=e.clone();return iC.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return iC.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return iC.get(e);let r=e.clone();return iC.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),pZe=me("_ZodString",(e,t)=>{u2.init(e,t),Xi.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(Nre(...r)),e.includes=(...r)=>e.check(Dre(...r)),e.startsWith=(...r)=>e.check(Lre(...r)),e.endsWith=(...r)=>e.check(Ure(...r)),e.min=(...r)=>e.check(Kw(...r)),e.max=(...r)=>e.check(h2(...r)),e.length=(...r)=>e.check(m2(...r)),e.nonempty=(...r)=>e.check(Kw(1,...r)),e.lowercase=r=>e.check(Cre(r)),e.uppercase=r=>e.check(Mre(r)),e.trim=()=>e.check(jre()),e.normalize=(...r)=>e.check(Fre(...r)),e.toLowerCase=()=>e.check(Hre()),e.toUpperCase=()=>e.check(qre())}),mon=me("ZodString",(e,t)=>{u2.init(e,t),pZe.init(e,t),e.email=n=>e.check(cYe(gon,n)),e.url=n=>e.check(pYe(yon,n)),e.jwt=n=>e.check(IYe(Non,n)),e.emoji=n=>e.check(hYe(Son,n)),e.guid=n=>e.check(Pre(lZe,n)),e.uuid=n=>e.check(uYe(S2,n)),e.uuidv4=n=>e.check(lYe(S2,n)),e.uuidv6=n=>e.check(dYe(S2,n)),e.uuidv7=n=>e.check(fYe(S2,n)),e.nanoid=n=>e.check(mYe(bon,n)),e.guid=n=>e.check(Pre(lZe,n)),e.cuid=n=>e.check(gYe(Eon,n)),e.cuid2=n=>e.check(yYe(_on,n)),e.ulid=n=>e.check(SYe(Ton,n)),e.base64=n=>e.check(AYe(xon,n)),e.base64url=n=>e.check(wYe(Oon,n)),e.xid=n=>e.check(bYe(von,n)),e.ksuid=n=>e.check(EYe(Ron,n)),e.ipv4=n=>e.check(_Ye(Aon,n)),e.ipv6=n=>e.check(TYe(won,n)),e.cidrv4=n=>e.check(vYe(kon,n)),e.cidrv6=n=>e.check(RYe(Ion,n)),e.e164=n=>e.check(kYe(Pon,n)),e.datetime=n=>e.check(zre(n)),e.date=n=>e.check(Gre(n)),e.time=n=>e.check(Vre(n)),e.duration=n=>e.check(Wre(n))});Di=me("ZodStringFormat",(e,t)=>{hi.init(e,t),pZe.init(e,t)}),gon=me("ZodEmail",(e,t)=>{p9e.init(e,t),Di.init(e,t)}),lZe=me("ZodGUID",(e,t)=>{d9e.init(e,t),Di.init(e,t)}),S2=me("ZodUUID",(e,t)=>{f9e.init(e,t),Di.init(e,t)}),yon=me("ZodURL",(e,t)=>{h9e.init(e,t),Di.init(e,t)}),Son=me("ZodEmoji",(e,t)=>{m9e.init(e,t),Di.init(e,t)}),bon=me("ZodNanoID",(e,t)=>{g9e.init(e,t),Di.init(e,t)}),Eon=me("ZodCUID",(e,t)=>{y9e.init(e,t),Di.init(e,t)}),_on=me("ZodCUID2",(e,t)=>{S9e.init(e,t),Di.init(e,t)}),Ton=me("ZodULID",(e,t)=>{b9e.init(e,t),Di.init(e,t)}),von=me("ZodXID",(e,t)=>{E9e.init(e,t),Di.init(e,t)}),Ron=me("ZodKSUID",(e,t)=>{_9e.init(e,t),Di.init(e,t)}),Aon=me("ZodIPv4",(e,t)=>{w9e.init(e,t),Di.init(e,t)}),won=me("ZodIPv6",(e,t)=>{k9e.init(e,t),Di.init(e,t)}),kon=me("ZodCIDRv4",(e,t)=>{I9e.init(e,t),Di.init(e,t)}),Ion=me("ZodCIDRv6",(e,t)=>{x9e.init(e,t),Di.init(e,t)}),xon=me("ZodBase64",(e,t)=>{P9e.init(e,t),Di.init(e,t)}),Oon=me("ZodBase64URL",(e,t)=>{N9e.init(e,t),Di.init(e,t)}),Pon=me("ZodE164",(e,t)=>{C9e.init(e,t),Di.init(e,t)}),Non=me("ZodJWT",(e,t)=>{M9e.init(e,t),Di.init(e,t)}),hZe=me("ZodNumber",(e,t)=>{kre.init(e,t),Xi.init(e,t),e.gt=(r,i)=>e.check(f2(r,i)),e.gte=(r,i)=>e.check(oC(r,i)),e.min=(r,i)=>e.check(oC(r,i)),e.lt=(r,i)=>e.check(d2(r,i)),e.lte=(r,i)=>e.check(sC(r,i)),e.max=(r,i)=>e.check(sC(r,i)),e.int=r=>e.check(dZe(r)),e.safe=r=>e.check(dZe(r)),e.positive=r=>e.check(f2(0,r)),e.nonnegative=r=>e.check(oC(0,r)),e.negative=r=>e.check(d2(0,r)),e.nonpositive=r=>e.check(sC(0,r)),e.multipleOf=(r,i)=>e.check(p2(r,i)),e.step=(r,i)=>e.check(p2(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});Con=me("ZodNumberFormat",(e,t)=>{D9e.init(e,t),hZe.init(e,t)});Mon=me("ZodBoolean",(e,t)=>{L9e.init(e,t),Xi.init(e,t)});Don=me("ZodNull",(e,t)=>{U9e.init(e,t),Xi.init(e,t)});Lon=me("ZodUnknown",(e,t)=>{F9e.init(e,t),Xi.init(e,t)});Uon=me("ZodNever",(e,t)=>{j9e.init(e,t),Xi.init(e,t)});jon=me("ZodArray",(e,t)=>{H9e.init(e,t),Xi.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(Kw(n,r)),e.nonempty=n=>e.check(Kw(1,n)),e.max=(n,r)=>e.check(h2(n,r)),e.length=(n,r)=>e.check(m2(n,r)),e.unwrap=()=>e.element});gZe=me("ZodObject",(e,t)=>{q9e.init(e,t),Xi.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: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(bZe,e,n[0]),e.required=(...n)=>or.required(EZe,e,n[0])});yZe=me("ZodUnion",(e,t)=>{Ire.init(e,t),Xi.init(e,t),e.options=t.options});Hon=me("ZodDiscriminatedUnion",(e,t)=>{yZe.init(e,t),B9e.init(e,t)});qon=me("ZodIntersection",(e,t)=>{z9e.init(e,t),Xi.init(e,t)});Bon=me("ZodRecord",(e,t)=>{G9e.init(e,t),Xi.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});Xre=me("ZodEnum",(e,t)=>{V9e.init(e,t),Xi.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 Xre({...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 Xre({...t,checks:[],...or.normalizeParams(i),entries:s})}});zon=me("ZodLiteral",(e,t)=>{W9e.init(e,t),Xi.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]}})});Gon=me("ZodTransform",(e,t)=>{K9e.init(e,t),Xi.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)}});bZe=me("ZodOptional",(e,t)=>{Y9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType});Von=me("ZodNullable",(e,t)=>{Z9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType});Won=me("ZodDefault",(e,t)=>{J9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});Yon=me("ZodPrefault",(e,t)=>{X9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType});EZe=me("ZodNonOptional",(e,t)=>{Q9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType});Xon=me("ZodCatch",(e,t)=>{$9e.init(e,t),Xi.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});$on=me("ZodPipe",(e,t)=>{eYe.init(e,t),Xi.init(e,t),e.in=t.in,e.out=t.out});ean=me("ZodReadonly",(e,t)=>{tYe.init(e,t),Xi.init(e,t)});_Ze=me("ZodCustom",(e,t)=>{nYe.init(e,t),Xi.init(e,t)})});var vZe=v(()=>{});var RZe=v(()=>{});var AZe=v(()=>{hd();Yre();Bre();Zre();Jre();vZe();hd();sYe();l2();Kre();RZe();pd(iYe())});var wZe=v(()=>{AZe()});var kZe=v(()=>{wZe()});var nie,IZe,OS,_2,_o,xZe,OZe,PBr,aan,can,rie,Sl,uC,PZe,ma,md,gd,ga,T2,NZe,iie,CZe,MZe,sie,lC,Sn,oie,DZe,LZe,NBr,v2,uan,R2,lan,dC,Jw,UZe,dan,fan,pan,han,man,gan,aie,yan,San,cie,A2,ban,Ean,w2,_an,fC,pC,Tan,hC,Xw,van,mC,k2,I2,x2,CBr,O2,P2,N2,FZe,jZe,HZe,uie,qZe,gC,Qw,BZe,Ran,Aan,wan,kan,Ian,lie,xan,Oan,Pan,Nan,Can,Man,Dan,Lan,Uan,Fan,jan,Han,die,qan,Ban,fie,pie,hie,mie,zan,Gan,Van,gie,Wan,Kan,Yan,Zan,Jan,zZe,yie,Xan,C2,MBr,Qan,yC,$an,DBr,SC,ecn,Sie,tcn,ncn,rcn,icn,scn,ocn,acn,E2,ccn,ucn,lcn,bC,bie,dcn,fcn,pcn,hcn,mcn,gcn,ycn,Scn,bcn,Ecn,_cn,Tcn,vcn,Rcn,Acn,wcn,kcn,Icn,$w,xcn,Ocn,Pcn,Eie,Ncn,Ccn,Mcn,_ie,Dcn,LBr,UBr,FBr,jBr,HBr,qBr,rn,tie,C_=v(()=>{kZe();nie="2025-11-25",IZe=[nie,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],OS="io.modelcontextprotocol/related-task",_2="2.0",_o=TZe(e=>e!==null&&(typeof e=="object"||typeof e=="function")),xZe=mi([le(),vr().int()]),OZe=le(),PBr=Bc({ttl:vr().optional(),pollInterval:vr().optional()}),aan=$e({ttl:vr().optional()}),can=$e({taskId:le()}),rie=Bc({progressToken:xZe.optional(),[OS]:can.optional()}),Sl=$e({_meta:rie.optional()}),uC=Sl.extend({task:aan.optional()}),PZe=e=>uC.safeParse(e).success,ma=$e({method:le(),params:Sl.loose().optional()}),md=$e({_meta:rie.optional()}),gd=$e({method:le(),params:md.loose().optional()}),ga=Bc({_meta:rie.optional()}),T2=mi([le(),vr().int()]),NZe=$e({jsonrpc:ft(_2),id:T2,...ma.shape}).strict(),iie=e=>NZe.safeParse(e).success,CZe=$e({jsonrpc:ft(_2),...gd.shape}).strict(),MZe=e=>CZe.safeParse(e).success,sie=$e({jsonrpc:ft(_2),id:T2,result:ga}).strict(),lC=e=>sie.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"})(Sn||(Sn={}));oie=$e({jsonrpc:ft(_2),id:T2.optional(),error:$e({code:vr().int(),message:le(),data:Li().optional()})}).strict(),DZe=e=>oie.safeParse(e).success,LZe=mi([NZe,CZe,sie,oie]),NBr=mi([sie,oie]),v2=ga.strict(),uan=md.extend({requestId:T2.optional(),reason:le().optional()}),R2=gd.extend({method:ft("notifications/cancelled"),params:uan}),lan=$e({src:le(),mimeType:le().optional(),sizes:Vn(le()).optional(),theme:Tu(["light","dark"]).optional()}),dC=$e({icons:Vn(lan).optional()}),Jw=$e({name:le(),title:le().optional()}),UZe=Jw.extend({...Jw.shape,...dC.shape,version:le(),websiteUrl:le().optional(),description:le().optional()}),dan=b2($e({applyDefaults:Vo().optional()}),ii(le(),Li())),fan=eie(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,b2($e({form:dan.optional(),url:_o.optional()}),ii(le(),Li()).optional())),pan=Bc({list:_o.optional(),cancel:_o.optional(),requests:Bc({sampling:Bc({createMessage:_o.optional()}).optional(),elicitation:Bc({create:_o.optional()}).optional()}).optional()}),han=Bc({list:_o.optional(),cancel:_o.optional(),requests:Bc({tools:Bc({call:_o.optional()}).optional()}).optional()}),man=$e({experimental:ii(le(),_o).optional(),sampling:$e({context:_o.optional(),tools:_o.optional()}).optional(),elicitation:fan.optional(),roots:$e({listChanged:Vo().optional()}).optional(),tasks:pan.optional(),extensions:ii(le(),_o).optional()}),gan=Sl.extend({protocolVersion:le(),capabilities:man,clientInfo:UZe}),aie=ma.extend({method:ft("initialize"),params:gan}),yan=$e({experimental:ii(le(),_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:han.optional(),extensions:ii(le(),_o).optional()}),San=ga.extend({protocolVersion:le(),capabilities:yan,serverInfo:UZe,instructions:le().optional()}),cie=gd.extend({method:ft("notifications/initialized"),params:md.optional()}),A2=ma.extend({method:ft("ping"),params:Sl.optional()}),ban=$e({progress:vr(),total:Ui(vr()),message:Ui(le())}),Ean=$e({...md.shape,...ban.shape,progressToken:xZe}),w2=gd.extend({method:ft("notifications/progress"),params:Ean}),_an=Sl.extend({cursor:OZe.optional()}),fC=ma.extend({params:_an.optional()}),pC=ga.extend({nextCursor:OZe.optional()}),Tan=Tu(["working","input_required","completed","failed","cancelled"]),hC=$e({taskId:le(),status:Tan,ttl:mi([vr(),mZe()]),createdAt:le(),lastUpdatedAt:le(),pollInterval:Ui(vr()),statusMessage:Ui(le())}),Xw=ga.extend({task:hC}),van=md.merge(hC),mC=gd.extend({method:ft("notifications/tasks/status"),params:van}),k2=ma.extend({method:ft("tasks/get"),params:Sl.extend({taskId:le()})}),I2=ga.merge(hC),x2=ma.extend({method:ft("tasks/result"),params:Sl.extend({taskId:le()})}),CBr=ga.loose(),O2=fC.extend({method:ft("tasks/list")}),P2=pC.extend({tasks:Vn(hC)}),N2=ma.extend({method:ft("tasks/cancel"),params:Sl.extend({taskId:le()})}),FZe=ga.merge(hC),jZe=$e({uri:le(),mimeType:Ui(le()),_meta:ii(le(),Li()).optional()}),HZe=jZe.extend({text:le()}),uie=le().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),qZe=jZe.extend({blob:uie}),gC=Tu(["user","assistant"]),Qw=$e({audience:Vn(gC).optional(),priority:vr().min(0).max(1).optional(),lastModified:aC.datetime({offset:!0}).optional()}),BZe=$e({...Jw.shape,...dC.shape,uri:le(),description:Ui(le()),mimeType:Ui(le()),size:Ui(vr()),annotations:Qw.optional(),_meta:Ui(Bc({}))}),Ran=$e({...Jw.shape,...dC.shape,uriTemplate:le(),description:Ui(le()),mimeType:Ui(le()),annotations:Qw.optional(),_meta:Ui(Bc({}))}),Aan=fC.extend({method:ft("resources/list")}),wan=pC.extend({resources:Vn(BZe)}),kan=fC.extend({method:ft("resources/templates/list")}),Ian=pC.extend({resourceTemplates:Vn(Ran)}),lie=Sl.extend({uri:le()}),xan=lie,Oan=ma.extend({method:ft("resources/read"),params:xan}),Pan=ga.extend({contents:Vn(mi([HZe,qZe]))}),Nan=gd.extend({method:ft("notifications/resources/list_changed"),params:md.optional()}),Can=lie,Man=ma.extend({method:ft("resources/subscribe"),params:Can}),Dan=lie,Lan=ma.extend({method:ft("resources/unsubscribe"),params:Dan}),Uan=md.extend({uri:le()}),Fan=gd.extend({method:ft("notifications/resources/updated"),params:Uan}),jan=$e({name:le(),description:Ui(le()),required:Ui(Vo())}),Han=$e({...Jw.shape,...dC.shape,description:Ui(le()),arguments:Ui(Vn(jan)),_meta:Ui(Bc({}))}),die=fC.extend({method:ft("prompts/list")}),qan=pC.extend({prompts:Vn(Han)}),Ban=Sl.extend({name:le(),arguments:ii(le(),le()).optional()}),fie=ma.extend({method:ft("prompts/get"),params:Ban}),pie=$e({type:ft("text"),text:le(),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),hie=$e({type:ft("image"),data:uie,mimeType:le(),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),mie=$e({type:ft("audio"),data:uie,mimeType:le(),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),zan=$e({type:ft("tool_use"),name:le(),id:le(),input:ii(le(),Li()),_meta:ii(le(),Li()).optional()}),Gan=$e({type:ft("resource"),resource:mi([HZe,qZe]),annotations:Qw.optional(),_meta:ii(le(),Li()).optional()}),Van=BZe.extend({type:ft("resource_link")}),gie=mi([pie,hie,mie,Van,Gan]),Wan=$e({role:gC,content:gie}),Kan=ga.extend({description:le().optional(),messages:Vn(Wan)}),Yan=gd.extend({method:ft("notifications/prompts/list_changed"),params:md.optional()}),Zan=$e({title:le().optional(),readOnlyHint:Vo().optional(),destructiveHint:Vo().optional(),idempotentHint:Vo().optional(),openWorldHint:Vo().optional()}),Jan=$e({taskSupport:Tu(["required","optional","forbidden"]).optional()}),zZe=$e({...Jw.shape,...dC.shape,description:le().optional(),inputSchema:$e({type:ft("object"),properties:ii(le(),_o).optional(),required:Vn(le()).optional()}).catchall(Li()),outputSchema:$e({type:ft("object"),properties:ii(le(),_o).optional(),required:Vn(le()).optional()}).catchall(Li()).optional(),annotations:Zan.optional(),execution:Jan.optional(),_meta:ii(le(),Li()).optional()}),yie=fC.extend({method:ft("tools/list")}),Xan=pC.extend({tools:Vn(zZe)}),C2=ga.extend({content:Vn(gie).default([]),structuredContent:ii(le(),Li()).optional(),isError:Vo().optional()}),MBr=C2.or(ga.extend({toolResult:Li()})),Qan=uC.extend({name:le(),arguments:ii(le(),Li()).optional()}),yC=ma.extend({method:ft("tools/call"),params:Qan}),$an=gd.extend({method:ft("notifications/tools/list_changed"),params:md.optional()}),DBr=$e({autoRefresh:Vo().default(!0),debounceMs:vr().int().nonnegative().default(300)}),SC=Tu(["debug","info","notice","warning","error","critical","alert","emergency"]),ecn=Sl.extend({level:SC}),Sie=ma.extend({method:ft("logging/setLevel"),params:ecn}),tcn=md.extend({level:SC,logger:le().optional(),data:Li()}),ncn=gd.extend({method:ft("notifications/message"),params:tcn}),rcn=$e({name:le().optional()}),icn=$e({hints:Vn(rcn).optional(),costPriority:vr().min(0).max(1).optional(),speedPriority:vr().min(0).max(1).optional(),intelligencePriority:vr().min(0).max(1).optional()}),scn=$e({mode:Tu(["auto","required","none"]).optional()}),ocn=$e({type:ft("tool_result"),toolUseId:le().describe("The unique identifier for the corresponding tool call."),content:Vn(gie).default([]),structuredContent:$e({}).loose().optional(),isError:Vo().optional(),_meta:ii(le(),Li()).optional()}),acn=$re("type",[pie,hie,mie]),E2=$re("type",[pie,hie,mie,zan,ocn]),ccn=$e({role:gC,content:mi([E2,Vn(E2)]),_meta:ii(le(),Li()).optional()}),ucn=uC.extend({messages:Vn(ccn),modelPreferences:icn.optional(),systemPrompt:le().optional(),includeContext:Tu(["none","thisServer","allServers"]).optional(),temperature:vr().optional(),maxTokens:vr().int(),stopSequences:Vn(le()).optional(),metadata:_o.optional(),tools:Vn(zZe).optional(),toolChoice:scn.optional()}),lcn=ma.extend({method:ft("sampling/createMessage"),params:ucn}),bC=ga.extend({model:le(),stopReason:Ui(Tu(["endTurn","stopSequence","maxTokens"]).or(le())),role:gC,content:acn}),bie=ga.extend({model:le(),stopReason:Ui(Tu(["endTurn","stopSequence","maxTokens","toolUse"]).or(le())),role:gC,content:mi([E2,Vn(E2)])}),dcn=$e({type:ft("boolean"),title:le().optional(),description:le().optional(),default:Vo().optional()}),fcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),minLength:vr().optional(),maxLength:vr().optional(),format:Tu(["email","uri","date","date-time"]).optional(),default:le().optional()}),pcn=$e({type:Tu(["number","integer"]),title:le().optional(),description:le().optional(),minimum:vr().optional(),maximum:vr().optional(),default:vr().optional()}),hcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),enum:Vn(le()),default:le().optional()}),mcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),oneOf:Vn($e({const:le(),title:le()})),default:le().optional()}),gcn=$e({type:ft("string"),title:le().optional(),description:le().optional(),enum:Vn(le()),enumNames:Vn(le()).optional(),default:le().optional()}),ycn=mi([hcn,mcn]),Scn=$e({type:ft("array"),title:le().optional(),description:le().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({type:ft("string"),enum:Vn(le())}),default:Vn(le()).optional()}),bcn=$e({type:ft("array"),title:le().optional(),description:le().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({anyOf:Vn($e({const:le(),title:le()}))}),default:Vn(le()).optional()}),Ecn=mi([Scn,bcn]),_cn=mi([gcn,ycn,Ecn]),Tcn=mi([_cn,dcn,fcn,pcn]),vcn=uC.extend({mode:ft("form").optional(),message:le(),requestedSchema:$e({type:ft("object"),properties:ii(le(),Tcn),required:Vn(le()).optional()})}),Rcn=uC.extend({mode:ft("url"),message:le(),elicitationId:le(),url:le().url()}),Acn=mi([vcn,Rcn]),wcn=ma.extend({method:ft("elicitation/create"),params:Acn}),kcn=md.extend({elicitationId:le()}),Icn=gd.extend({method:ft("notifications/elicitation/complete"),params:kcn}),$w=ga.extend({action:Tu(["accept","decline","cancel"]),content:eie(e=>e===null?void 0:e,ii(le(),mi([le(),vr(),Vo(),Vn(le())])).optional())}),xcn=$e({type:ft("ref/resource"),uri:le()}),Ocn=$e({type:ft("ref/prompt"),name:le()}),Pcn=Sl.extend({ref:mi([Ocn,xcn]),argument:$e({name:le(),value:le()}),context:$e({arguments:ii(le(),le()).optional()}).optional()}),Eie=ma.extend({method:ft("completion/complete"),params:Pcn}),Ncn=ga.extend({completion:Bc({values:Vn(le()).max(100),total:Ui(vr().int()),hasMore:Ui(Vo())})}),Ccn=$e({uri:le().startsWith("file://"),name:le().optional(),_meta:ii(le(),Li()).optional()}),Mcn=ma.extend({method:ft("roots/list"),params:Sl.optional()}),_ie=ga.extend({roots:Vn(Ccn)}),Dcn=gd.extend({method:ft("notifications/roots/list_changed"),params:md.optional()}),LBr=mi([A2,aie,Eie,Sie,fie,die,Aan,kan,Oan,Man,Lan,yC,yie,k2,x2,O2,N2]),UBr=mi([R2,w2,cie,Dcn,mC]),FBr=mi([v2,bC,bie,$w,_ie,I2,P2,Xw]),jBr=mi([A2,lcn,wcn,Mcn,k2,x2,O2,N2]),HBr=mi([R2,w2,ncn,Fan,Nan,$an,Yan,mC,Icn]),qBr=mi([v2,San,Ncn,Kan,qan,wan,Ian,Pan,C2,Xan,I2,P2,Xw]),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===Sn.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new tie(i.elicitations,n)}return new e(t,n,r)}},tie=class extends rn{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(Sn.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}}});function PS(e){return e==="completed"||e==="failed"||e==="cancelled"}var GZe=v(()=>{});var M2=v(()=>{});var Tie=v(()=>{M2()});var NS=v(()=>{});var D2=v(()=>{});var yd=v(()=>{D2()});var vie=v(()=>{NS();Qs()});var Rie=v(()=>{NS()});var Aie=v(()=>{});var L2=v(()=>{Qs()});var wie=v(()=>{Qs()});var kie=v(()=>{NS()});var Iie=v(()=>{Qs()});var xie=v(()=>{Qs();yd()});var Oie=v(()=>{});var Pie=v(()=>{Qs()});var Nie=v(()=>{});var Ezr,U2=v(()=>{NS();Ezr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789")});var F2=v(()=>{Qs();U2();L2();yd()});var Cie=v(()=>{Qs();F2();yd()});var Mie=v(()=>{});var Die=v(()=>{yd()});var Lie=v(()=>{});var j2=v(()=>{Qs()});var Uie=v(()=>{Qs();j2()});var Fie=v(()=>{NS()});var jie=v(()=>{Qs()});var Hie=v(()=>{Qs();yd()});var qie=v(()=>{Qs()});var Bie=v(()=>{Qs()});var zie=v(()=>{NS();Qs()});var Gie=v(()=>{Qs()});var Vie=v(()=>{yd()});var Wie=v(()=>{yd()});var Kie=v(()=>{Qs()});var Yie=v(()=>{yd();vie();Rie();Aie();L2();wie();kie();Iie();xie();Oie();Pie();Nie();Cie();Mie();Die();Lie();Uie();Fie();jie();Hie();qie();Bie();F2();zie();U2();Gie();Vie();j2();Wie();Kie()});var Qs=v(()=>{M2();Yie();D2();yd()});var VZe=v(()=>{});var Zie=v(()=>{Qs();Tie();yd()});var Jie=v(()=>{M2();Tie();NS();D2();Qs();VZe();yd();vie();Rie();Aie();L2();wie();kie();Iie();xie();Oie();Pie();Nie();Cie();Mie();Die();Lie();Uie();Fie();jie();Hie();qie();Bie();Kie();F2();zie();U2();Gie();Vie();j2();Wie();Yie();Zie();Zie()});function Xie(e){let n=g2(e)?.method;if(!n)throw new Error("Schema is missing a method literal");let r=eZe(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function Qie(e,t){let n=xS(e,t);if(!n.success)throw n.error;return n.data}var KZe=v(()=>{y2();Jie()});function YZe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function ZZe(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];YZe(o)&&YZe(s)?n[i]={...o,...s}:n[i]=s}return n}var Hcn,H2,JZe=v(()=>{y2();C_();GZe();KZe();Hcn=6e4,H2=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(R2,n=>{this._oncancel(n)}),this.setNotificationHandler(w2,n=>{this._onprogress(n)}),this.setRequestHandler(A2,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(k2,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(Sn.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(x2,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(Sn.InvalidParams,`Task not found: ${s}`);if(!PS(o.status))return await this._waitForTaskUpdate(s,r.signal),await i();if(PS(o.status)){let a=await this._taskStore.getTaskResult(s,r.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[OS]:{taskId:s}}}}return await i()};return await i()}),this.setRequestHandler(O2,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(Sn.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(N2,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(Sn.InvalidParams,`Task not found: ${n.params.taskId}`);if(PS(i.status))throw new rn(Sn.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(Sn.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof rn?i:new rn(Sn.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(Sn.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),lC(s)||DZe(s)?this._onresponse(s):iie(s)?this._onrequest(s,o):MZe(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(Sn.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?.[OS]?.taskId;if(r===void 0){let l={jsonrpc:"2.0",id:t.id,error:{code:Sn.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=PZe(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(Sn.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:Sn.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),lC(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(lC(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),lC(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(Sn.InternalError,String(o))}}return}let s;try{let o=await this.request(t,Xw,r);if(o.task)s=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new rn(Sn.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},r);if(yield{type:"taskStatus",task:a},PS(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(Sn.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new rn(Sn.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(Sn.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||{},[OS]: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(Sn.RequestTimeout,String(b));l(S)};this._responseHandlers.set(f,b=>{if(!r?.signal?.aborted){if(b instanceof Error)return l(b);try{let S=xS(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??Hcn,g=()=>h(rn.fromError(Sn.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},I2,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},P2,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},FZe,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||{},[OS]: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||{},[OS]: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||{},[OS]:n.relatedTask}}}),await this._transport.send(o,n)}setRequestHandler(t,n){let r=Xie(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=Qie(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=Xie(t);this._notificationHandlers.set(r,i=>{let s=Qie(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"&&iie(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new rn(Sn.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(Sn.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,r);n.addEventListener("abort",()=>{clearTimeout(o),s(new rn(Sn.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(Sn.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=mC.parse({method:"notifications/tasks/status",params:a});await this.notification(c),PS(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(Sn.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(PS(a.status))throw new rn(Sn.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=mC.parse({method:"notifications/tasks/status",params:c});await this.notification(u),PS(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}}});var ek=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 _C=class{};tr._CodeOrName=_C;tr.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var M_=class extends _C{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=M_;var Sd=class extends _C{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 M_&&(n[r.str]=(n[r.str]||0)+1),n),{})}};tr._Code=Sd;tr.nil=new Sd("");function XZe(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=ek(),tse=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},q2;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(q2||(Ru.UsedValueState=q2={}));Ru.varKinds={const:new vu.Name("const"),let:new vu.Name("let"),var:new vu.Name("var")};var B2=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=B2;var z2=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=z2;var Zcn=(0,vu._)`\n`,nse=class extends B2{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?Zcn:vu.nil}}get(){return this._scope}name(t){return new z2(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,q2.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 tse(u);c.set(u,q2.Completed)})}return s}};Ru.ValueScope=nse});var Ot=w(bn=>{"use strict";Object.defineProperty(bn,"__esModule",{value:!0});bn.or=bn.and=bn.not=bn.CodeGen=bn.operators=bn.varKinds=bn.ValueScopeName=bn.ValueScope=bn.Scope=bn.Name=bn.regexpCode=bn.stringify=bn.getProperty=bn.nil=bn.strConcat=bn.str=bn._=void 0;var Wn=ek(),Rf=G2(),CS=ek();Object.defineProperty(bn,"_",{enumerable:!0,get:function(){return CS._}});Object.defineProperty(bn,"str",{enumerable:!0,get:function(){return CS.str}});Object.defineProperty(bn,"strConcat",{enumerable:!0,get:function(){return CS.strConcat}});Object.defineProperty(bn,"nil",{enumerable:!0,get:function(){return CS.nil}});Object.defineProperty(bn,"getProperty",{enumerable:!0,get:function(){return CS.getProperty}});Object.defineProperty(bn,"stringify",{enumerable:!0,get:function(){return CS.stringify}});Object.defineProperty(bn,"regexpCode",{enumerable:!0,get:function(){return CS.regexpCode}});Object.defineProperty(bn,"Name",{enumerable:!0,get:function(){return CS.Name}});var Y2=G2();Object.defineProperty(bn,"Scope",{enumerable:!0,get:function(){return Y2.Scope}});Object.defineProperty(bn,"ValueScope",{enumerable:!0,get:function(){return Y2.ValueScope}});Object.defineProperty(bn,"ValueScopeName",{enumerable:!0,get:function(){return Y2.ValueScopeName}});Object.defineProperty(bn,"varKinds",{enumerable:!0,get:function(){return Y2.varKinds}});bn.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 Wm=class{optimizeNodes(){return this}optimizeNames(t,n){return this}},rse=class extends Wm{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=nk(this.rhs,t,n)),this}get names(){return this.rhs instanceof Wn._CodeOrName?this.rhs.names:{}}},V2=class extends Wm{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=nk(this.rhs,t,n),this}get names(){let t=this.lhs instanceof Wn.Name?{}:{...this.lhs.names};return K2(t,this.rhs)}},ise=class extends V2{constructor(t,n,r,i){super(t,r,i),this.op=n}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},sse=class extends Wm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},ose=class extends Wm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},ase=class extends Wm{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},cse=class extends Wm{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=nk(this.code,t,n),this}get names(){return this.code instanceof Wn._CodeOrName?this.code.names:{}}},vC=class extends Wm{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)||(Jcn(t,s.names),r.splice(i,1))}return r.length>0?this:void 0}get names(){return this.nodes.reduce((t,n)=>U_(t,n.names),{})}},Km=class extends vC{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},use=class extends vC{},tk=class extends Km{};tk.kind="else";var D_=class e extends Km{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 tk(r):r}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e($Ze(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=nk(this.condition,t,n),this}get names(){let t=super.names;return K2(t,this.condition),this.else&&U_(t,this.else.names),t}};D_.kind="if";var L_=class extends Km{};L_.kind="for";var lse=class extends L_{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=nk(this.iteration,t,n),this}get names(){return U_(super.names,this.iteration.names)}},dse=class extends L_{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=K2(super.names,this.from);return K2(t,this.to)}},W2=class extends L_{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=nk(this.iterable,t,n),this}get names(){return U_(super.names,this.iterable.names)}},RC=class extends Km{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)}};RC.kind="func";var AC=class extends vC{render(t){return"return "+super.render(t)}};AC.kind="return";var fse=class extends Km{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&&U_(t,this.catch.names),this.finally&&U_(t,this.finally.names),t}},wC=class extends Km{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};wC.kind="catch";var kC=class extends Km{render(t){return"finally"+super.render(t)}};kC.kind="finally";var pse=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 use]}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 rse(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 V2(t,n,r))}add(t,n){return this._leafNode(new ise(t,bn.operators.ADD,n))}code(t){return typeof t=="function"?t():t!==Wn.nil&&this._leafNode(new cse(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 D_(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 D_(t))}else(){return this._elseNode(new tk)}endIf(){return this._endBlockNode(D_,tk)}_for(t,n){return this._blockNode(t),n&&this.code(n).endFor(),this}for(t,n){return this._for(new lse(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 dse(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 W2("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 W2("in",i,s,n),()=>r(s))}endFor(){return this._endBlockNode(L_)}label(t){return this._leafNode(new sse(t))}break(t){return this._leafNode(new ose(t))}return(t){let n=new AC;if(this._blockNode(n),this.code(t),n.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(AC)}try(t,n,r){if(!n&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new fse;if(this._blockNode(i),this.code(t),n){let s=this.name("e");this._currNode=i.catch=new wC(s),n(s)}return r&&(this._currNode=i.finally=new kC,this.code(r)),this._endBlockNode(wC,kC)}throw(t){return this._leafNode(new ase(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 RC(t,n,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(RC)}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 D_))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}};bn.CodeGen=pse;function U_(e,t){for(let n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function K2(e,t){return t instanceof Wn._CodeOrName?U_(e,t.names):e}function nk(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 Jcn(e,t){for(let n in t)e[n]=(e[n]||0)-(t[n]||0)}function $Ze(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,Wn._)`!${hse(e)}`}bn.not=$Ze;var Xcn=e6e(bn.operators.AND);function Qcn(...e){return e.reduce(Xcn)}bn.and=Qcn;var $cn=e6e(bn.operators.OR);function eun(...e){return e.reduce($cn)}bn.or=eun;function e6e(e){return(t,n)=>t===Wn.nil?n:n===Wn.nil?t:(0,Wn._)`${hse(t)} ${e} ${hse(n)}`}function hse(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(),tun=ek();function nun(e){let t={};for(let n of e)t[n]=!0;return t}Rn.toHash=nun;function run(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(r6e(e,t),!i6e(t,e.self.RULES.all))}Rn.alwaysValidSchema=run;function r6e(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]||a6e(e,`unknown keyword: "${s}"`)}Rn.checkUnknownRules=r6e;function i6e(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(t[n])return!0;return!1}Rn.schemaHasRules=i6e;function iun(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=iun;function sun({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=sun;function oun(e){return s6e(decodeURIComponent(e))}Rn.unescapeFragment=oun;function aun(e){return encodeURIComponent(gse(e))}Rn.escapeFragment=aun;function gse(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}Rn.escapeJsonPointer=gse;function s6e(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}Rn.unescapeJsonPointer=s6e;function cun(e,t){if(Array.isArray(e))for(let n of e)t(n);else t(e)}Rn.eachItem=cun;function t6e({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:t6e({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} || {}`),yse(e,n,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:o6e}),items:t6e({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 o6e(e,t){if(t===!0)return e.var("props",!0);let n=e.var("props",(0,Wr._)`{}`);return t!==void 0&&yse(e,n,t),n}Rn.evaluatedPropsToName=o6e;function yse(e,t,n){Object.keys(n).forEach(r=>e.assign((0,Wr._)`${t}${(0,Wr.getProperty)(r)}`,!0))}Rn.setEvaluated=yse;var n6e={};function uun(e,t){return e.scopeValue("func",{ref:t,code:n6e[t.code]||(n6e[t.code]=new tun._Code(t.code))})}Rn.useFunc=uun;var mse;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(mse||(Rn.Type=mse={}));function lun(e,t,n){if(e instanceof Wr.Name){let r=t===mse.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():"/"+gse(e)}Rn.getErrorPath=lun;function a6e(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=a6e});var bd=w(Sse=>{"use strict";Object.defineProperty(Sse,"__esModule",{value:!0});var ic=Ot(),dun={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")};Sse.default=dun});var IC=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(),Z2=pn(),zc=bd();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 fun(e,t=sc.keywordError,n,r){let{it:i}=e,{gen:s,compositeRule:o,allErrors:a}=i,c=l6e(e,t,n);r??(o||a)?c6e(s,c):u6e(i,(0,Jn._)`[${c}]`)}sc.reportError=fun;function pun(e,t=sc.keywordError,n){let{it:r}=e,{gen:i,compositeRule:s,allErrors:o}=r,a=l6e(e,t,n);c6e(i,a),s||o||u6e(r,zc.default.vErrors)}sc.reportExtraError=pun;function hun(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=hun;function mun({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=mun;function c6e(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 u6e(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 F_={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 l6e(e,t,n){let{createErrors:r}=e.it;return r===!1?(0,Jn._)`{}`:gun(e,t,n)}function gun(e,t,n={}){let{gen:r,it:i}=e,s=[yun(i,n),Sun(e,n)];return bun(e,t,s),r.object(...s)}function yun({errorPath:e},{instancePath:t}){let n=t?(0,Jn.str)`${e}${(0,Z2.getErrorPath)(t,Z2.Type.Str)}`:e;return[zc.default.instancePath,(0,Jn.strConcat)(zc.default.instancePath,n)]}function Sun({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,Z2.getErrorPath)(n,Z2.Type.Str)}`),[F_.schemaPath,i]}function bun(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([F_.keyword,i],[F_.params,typeof t=="function"?t(e):t||(0,Jn._)`{}`]),c.messages&&r.push([F_.message,typeof n=="function"?n(e):n]),c.verbose&&r.push([F_.schema,o],[F_.parentSchema,(0,Jn._)`${l}${d}`],[zc.default.data,s]),u&&r.push([F_.propertyName,u])}});var f6e=w(rk=>{"use strict";Object.defineProperty(rk,"__esModule",{value:!0});rk.boolOrEmptySchema=rk.topBoolOrEmptySchema=void 0;var Eun=IC(),_un=Ot(),Tun=bd(),vun={message:"boolean schema is false"};function Run(e){let{gen:t,schema:n,validateName:r}=e;n===!1?d6e(e,!1):typeof n=="object"&&n.$async===!0?t.return(Tun.default.data):(t.assign((0,_un._)`${r}.errors`,null),t.return(!0))}rk.topBoolOrEmptySchema=Run;function Aun(e,t){let{gen:n,schema:r}=e;r===!1?(n.var(t,!1),d6e(e)):n.var(t,!0)}rk.boolOrEmptySchema=Aun;function d6e(e,t){let{gen:n,data:r}=e,i={gen:n,keyword:"false schema",data:r,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,Eun.reportError)(i,vun,void 0,t)}});var bse=w(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});ik.getRules=ik.isJSONType=void 0;var wun=["string","number","integer","boolean","null","object","array"],kun=new Set(wun);function Iun(e){return typeof e=="string"&&kun.has(e)}ik.isJSONType=Iun;function xun(){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:{}}}ik.getRules=xun});var Ese=w(MS=>{"use strict";Object.defineProperty(MS,"__esModule",{value:!0});MS.shouldUseRule=MS.shouldUseGroup=MS.schemaHasRulesForType=void 0;function Oun({schema:e,self:t},n){let r=t.RULES.types[n];return r&&r!==!0&&p6e(e,r)}MS.schemaHasRulesForType=Oun;function p6e(e,t){return t.rules.some(n=>h6e(e,n))}MS.shouldUseGroup=p6e;function h6e(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))}MS.shouldUseRule=h6e});var xC=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 Pun=bse(),Nun=Ese(),Cun=IC(),hn=Ot(),m6e=pn(),sk;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(sk||(oc.DataType=sk={}));function Mun(e){let t=g6e(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=Mun;function g6e(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(Pun.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}oc.getJSONTypes=g6e;function Dun(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,Nun.schemaHasRulesForType)(e,t[0]));if(o){let a=Tse(t,r,i.strictNumbers,sk.Wrong);n.if(a,()=>{s.length?Uun(e,t,s):vse(e)})}return o}oc.coerceAndCheckDataType=Dun;var y6e=new Set(["string","number","integer","boolean","null"]);function Lun(e,t){return t?e.filter(n=>y6e.has(n)||t==="array"&&n==="array"):[]}function Uun(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(Tse(t,i,s.strictNumbers),()=>r.assign(a,i))),r.if((0,hn._)`${a} !== undefined`);for(let u of n)(y6e.has(u)||u==="array"&&s.coerceTypes==="array")&&c(u);r.else(),vse(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 || (${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 Lun({gen:e,parentData:t,parentDataProperty:n},r){e.if((0,hn._)`${t} !== undefined`,()=>e.assign((0,hn._)`${t}[${n}]`,r))}function Ese(e,t,n,r=sk.Correct){let i=r===sk.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===sk.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=Ese;function _se(e,t,n,r){if(e.length===1)return Ese(e[0],t,n,r);let i,s=(0,p6e.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,Ese(o,t,n,r));return i}oc.checkDataTypes=_se;var Uun={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,hn._)`{type: ${e}}`:(0,hn._)`{type: ${t}}`};function Tse(e){let t=Fun(e);(0,Pun.reportError)(t,Uun)}oc.reportTypeError=Tse;function Fun(e){let{gen:t,data:n,schema:r}=e,i=(0,p6e.schemaRefOrVal)(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:e}}});var y6e=w(J2=>{"use strict";Object.defineProperty(J2,"__esModule",{value:!0});J2.assignDefaults=void 0;var ok=Ot(),jun=pn();function Hun(e,t){let{properties:n,items:r}=e.schema;if(t==="object"&&n)for(let i in n)g6e(e,i,n[i].default);else t==="array"&&Array.isArray(r)&&r.forEach((i,s)=>g6e(e,s,i.default))}J2.assignDefaults=Hun;function g6e(e,t,n){let{gen:r,compositeRule:i,data:s,opts:o}=e;if(n===void 0)return;let a=(0,ok._)`${s}${(0,ok.getProperty)(t)}`;if(i){(0,jun.checkStrictMode)(e,`default is ignored for: ${a}`);return}let c=(0,ok._)`${a} === undefined`;o.useDefaults==="empty"&&(c=(0,ok._)`${c} || ${a} === null || ${a} === ""`),r.if(c,(0,ok._)`${a} = ${(0,ok.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(),vse=pn(),DS=bd(),qun=pn();function Bun(e,t){let{gen:n,data:r,it:i}=e;n.if(Ase(n,r,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,gi._)`${t}`},!0),e.error()})}Fr.checkReportMissingProp=Bun;function zun({gen:e,data:t,it:{opts:n}},r,i){return(0,gi.or)(...r.map(s=>(0,gi.and)(Ase(e,t,s,n.ownProperties),(0,gi._)`${i} = ${s}`)))}Fr.checkMissingProp=zun;function Gun(e,t){e.setParams({missingProperty:t},!0),e.error()}Fr.reportMissingProp=Gun;function S6e(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,gi._)`Object.prototype.hasOwnProperty`})}Fr.hasPropFunc=S6e;function Rse(e,t,n){return(0,gi._)`${S6e(e)}.call(${t}, ${n})`}Fr.isOwnProperty=Rse;function Vun(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} !== undefined`;return r?(0,gi._)`${i} && ${Rse(e,t,n)}`:i}Fr.propertyInData=Vun;function Ase(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} === undefined`;return r?(0,gi.or)(i,(0,gi.not)(Rse(e,t,n))):i}Fr.noPropertyInData=Ase;function b6e(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}Fr.allSchemaProperties=b6e;function Wun(e,t){return b6e(t).filter(n=>!(0,vse.alwaysValidSchema)(e,t[n]))}Fr.schemaProperties=Wun;function Kun({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=[[DS.default.instancePath,(0,gi.strConcat)(DS.default.instancePath,s)],[DS.default.parentData,o.parentData],[DS.default.parentDataProperty,o.parentDataProperty],[DS.default.rootData,DS.default.rootData]];o.opts.dynamicRef&&d.push([DS.default.dynamicAnchors,DS.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=Kun;var Yun=(0,gi._)`new RegExp`;function Zun({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"?Yun:(0,qun.useFunc)(e,i)}(${n}, ${r})`})}Fr.usePattern=Zun;function Jun(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:vse.Type.Num},s),t.if((0,gi.not)(s),a)})}}Fr.validateArray=Jun;function Xun(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,vse.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=Xun});var T6e=w(fh=>{"use strict";Object.defineProperty(fh,"__esModule",{value:!0});fh.validateKeywordUsage=fh.validSchemaType=fh.funcKeywordCode=fh.macroKeywordCode=void 0;var Gc=Ot(),j_=bd(),Qun=Sa(),$un=IC();function eln(e,t){let{gen:n,keyword:r,schema:i,parentSchema:s,it:o}=e,a=t.macro.call(o.self,i,s,o),c=_6e(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=eln;function tln(e,t){var n;let{gen:r,keyword:i,schema:s,parentSchema:o,$data:a,it:c}=e;rln(c,t);let u=!a&&t.compile?t.compile.call(c.self,s,o,c):t.validate,l=_6e(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&&E6e(e),g(()=>e.error());else{let y=t.async?p():h();t.modifying&&E6e(e),g(()=>nln(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?j_.default.this:j_.default.self,S=!("compile"in t&&!a||t.schema===!1);r.assign(d,(0,Gc._)`${y}${(0,Qun.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=tln;function E6e(e){let{gen:t,data:n,it:r}=e;t.if(r.parentData,()=>t.assign(n,(0,Gc._)`${r.parentData}[${r.parentDataProperty}]`))}function nln(e,t){let{gen:n}=e;n.if((0,Gc._)`Array.isArray(${t})`,()=>{n.assign(j_.default.vErrors,(0,Gc._)`${j_.default.vErrors} === null ? ${t} : ${j_.default.vErrors}.concat(${t})`).assign(j_.default.errors,(0,Gc._)`${j_.default.vErrors}.length`),(0,$un.extendErrors)(e)},()=>e.error())}function rln({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function _6e(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 iln(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=iln;function sln({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=sln});var R6e=w(LS=>{"use strict";Object.defineProperty(LS,"__esModule",{value:!0});LS.extendSubschemaMode=LS.extendSubschemaData=LS.getSubschema=void 0;var ph=Ot(),v6e=pn();function oln(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,v6e.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')}LS.getSubschema=oln;function aln(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,v6e.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]}}LS.extendSubschemaData=aln;function cln(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}LS.extendSubschemaMode=cln});var OC=w((CVr,A6e)=>{"use strict";A6e.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 k6e=w((MVr,w6e)=>{"use strict";var US=w6e.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(){};X2(t,r,i,e,"",e)};US.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};US.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};US.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};US.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 X2(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 US.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 lln=pn(),dln=OC(),fln=k6e(),pln=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function hln(e,t=!0){return typeof e=="boolean"?!0:t===!0?!wse(e):t?I6e(e)<=t:!1}Au.inlineRef=hln;var mln=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function wse(e){for(let t in e){if(mln.has(t))return!0;let n=e[t];if(Array.isArray(n)&&n.some(wse)||typeof n=="object"&&wse(n))return!0}return!1}function I6e(e){let t=0;for(let n in e){if(n==="$ref")return 1/0;if(t++,!pln.has(n)&&(typeof e[n]=="object"&&(0,lln.eachItem)(e[n],r=>t+=I6e(r)),t===1/0))return 1/0}return t}function x6e(e,t="",n){n!==!1&&(t=ak(t));let r=e.parse(t);return O6e(e,r)}Au.getFullPath=x6e;function O6e(e,t){return e.serialize(t).split("#")[0]+"#"}Au._getFullPath=O6e;var gln=/#\/?$/;function ak(e){return e?e.replace(gln,""):""}Au.normalizeId=ak;function yln(e,t,n){return n=ak(n),e.resolve(t,n)}Au.resolveUrl=yln;var Sln=/^[a-z_][-a-z0-9._]*$/i;function bln(e,t){if(typeof e=="boolean")return{};let{schemaId:n,uriResolver:r}=this.opts,i=ak(e[n]||t),s={"":i},o=x6e(r,i,!1),a={},c=new Set;return fln(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=ak(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!==ak(m)&&(S[0]==="#"?(u(d,a[S],S),a[S]=d):this.refs[S]=m),S}function b(S){if(typeof S=="string"){if(!Sln.test(S))throw new Error(`invalid anchor "${S}"`);y.call(this,`#${S}`)}}}),a;function u(d,f,p){if(f!==void 0&&!dln(d,f))throw l(p)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Au.getSchemaRefs=bln});var ck=w(FS=>{"use strict";Object.defineProperty(FS,"__esModule",{value:!0});FS.getData=FS.KeywordCxt=FS.validateFunctionCode=void 0;var D6e=l6e(),P6e=xC(),Ise=bse(),Q2=xC(),Eln=y6e(),CC=T6e(),kse=R6e(),pt=Ot(),Xt=bd(),_ln=PC(),Ym=pn(),NC=IC();function Tln(e){if(F6e(e)&&(j6e(e),U6e(e))){Aln(e);return}L6e(e,()=>(0,D6e.topBoolOrEmptySchema)(e))}FS.validateFunctionCode=Tln;function L6e({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"; ${N6e(n,i)}`),Rln(e,i),e.code(s)}):e.func(t,(0,pt._)`${Xt.default.data}, ${vln(i)}`,r.$async,()=>e.code(N6e(n,i)).code(s))}function vln(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 Rln(e,t){e.if(Xt.default.valCxt,()=>{e.var(Xt.default.instancePath,(0,pt._)`${Xt.default.valCxt}.${Xt.default.instancePath}`),e.var(Xt.default.parentData,(0,pt._)`${Xt.default.valCxt}.${Xt.default.parentData}`),e.var(Xt.default.parentDataProperty,(0,pt._)`${Xt.default.valCxt}.${Xt.default.parentDataProperty}`),e.var(Xt.default.rootData,(0,pt._)`${Xt.default.valCxt}.${Xt.default.rootData}`),t.dynamicRef&&e.var(Xt.default.dynamicAnchors,(0,pt._)`${Xt.default.valCxt}.${Xt.default.dynamicAnchors}`)},()=>{e.var(Xt.default.instancePath,(0,pt._)`""`),e.var(Xt.default.parentData,(0,pt._)`undefined`),e.var(Xt.default.parentDataProperty,(0,pt._)`undefined`),e.var(Xt.default.rootData,Xt.default.data),t.dynamicRef&&e.var(Xt.default.dynamicAnchors,(0,pt._)`{}`)})}function Aln(e){let{schema:t,opts:n,gen:r}=e;L6e(e,()=>{n.$comment&&t.$comment&&q6e(e),Oln(e),r.let(Xt.default.vErrors,null),r.let(Xt.default.errors,0),n.unevaluated&&wln(e),H6e(e),Cln(e)})}function wln(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 N6e(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 kln(e,t){if(F6e(e)&&(j6e(e),U6e(e))){Iln(e,t);return}(0,D6e.boolOrEmptySchema)(e,t)}function U6e({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 F6e(e){return typeof e.schema!="boolean"}function Iln(e,t){let{schema:n,gen:r,opts:i}=e;i.$comment&&n.$comment&&q6e(e),Pln(e),Nln(e);let s=r.const("_errs",Xt.default.errors);H6e(e,s),r.var(t,(0,pt._)`${s} === ${Xt.default.errors}`)}function j6e(e){(0,Ym.checkUnknownRules)(e),xln(e)}function H6e(e,t){if(e.opts.jtd)return C6e(e,[],!1,t);let n=(0,P6e.getSchemaTypes)(e.schema),r=(0,P6e.coerceAndCheckDataType)(e,n);C6e(e,n,!r,t)}function xln(e){let{schema:t,errSchemaPath:n,opts:r,self:i}=e;t.$ref&&r.ignoreKeywordsWithRef&&(0,Ym.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,Ym.checkStrictMode)(e,"default is ignored in the schema root")}function Pln(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,_ln.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function Nln(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function q6e({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 Cln(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&&Mln(e),t.return((0,pt._)`${Xt.default.errors} === 0`))}function Mln({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 C6e(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,Ym.schemaHasRulesButRef)(s,l))){i.block(()=>z6e(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,Ise.shouldUseGroup)(s,f)&&(f.type?(i.if((0,Q2.checkDataType)(f.type,o,c.strictNumbers)),M6e(e,f),t.length===1&&t[0]===f.type&&n&&(i.else(),(0,Q2.reportTypeError)(e)),i.endIf()):M6e(e,f),a||i.if((0,pt._)`${Xt.default.errors} === ${r||0}`))}}function M6e(e,t){let{gen:n,schema:r,opts:{useDefaults:i}}=e;i&&(0,Eln.assignDefaults)(e,t.type),n.block(()=>{for(let s of t.rules)(0,Ise.shouldUseRule)(r,s)&&z6e(e,s.keyword,s.definition,t.type)})}function Dln(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(Lln(e,t),e.opts.allowUnionTypes||Uln(e,t),Fln(e,e.dataTypes))}function Lln(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(n=>{B6e(e.dataTypes,n)||xse(e,`type "${n}" not allowed by context "${e.dataTypes.join(",")}"`)}),Hln(e,t)}}function Uln(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&xse(e,"use allowUnionTypes to allow union type keyword")}function Fln(e,t){let n=e.self.RULES.all;for(let r in n){let i=n[r];if(typeof i=="object"&&(0,Ise.shouldUseRule)(e.schema,i)){let{type:s}=i.definition;s.length&&!s.some(o=>jln(t,o))&&xse(e,`missing type "${s.join(",")}" for keyword "${r}"`)}}}function jln(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function B6e(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function Hln(e,t){let n=[];for(let r of e.dataTypes)B6e(t,r)?n.push(r):t.includes("integer")&&r==="number"&&n.push("integer");e.dataTypes=n}function xse(e,t){let n=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${n}" (strictTypes)`,(0,Ym.checkStrictMode)(e,t,e.opts.strictTypes)}var $2=class{constructor(t,n,r){if((0,CC.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,Ym.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",G6e(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,CC.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?NC.reportExtraError:NC.reportError)(this,this.def.error,n)}$dataError(){(0,NC.reportError)(this,this.def.$dataError||NC.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,NC.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,Q2.checkDataTypes)(c,n,s.opts.strictNumbers,Q2.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,kse.getSubschema)(this.it,t);(0,kse.extendSubschemaData)(r,this.it,t),(0,kse.extendSubschemaMode)(r,t);let i={...this.it,...r,items:void 0,props:void 0};return kln(i,n),i}mergeEvaluated(t,n){let{it:r,gen:i}=this;r.opts.unevaluated&&(r.props!==!0&&t.props!==void 0&&(r.props=Ym.mergeEvaluated.props(i,t.props,r.props,n)),r.items!==!0&&t.items!==void 0&&(r.items=Ym.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}};FS.KeywordCxt=$2;function z6e(e,t,n,r){let i=new $2(e,n,t);"code"in n?n.code(i,r):i.$data&&n.validate?(0,CC.funcKeywordCode)(i,n):"macro"in n?(0,CC.macroKeywordCode)(i,n):(n.compile||n.validate)&&(0,CC.funcKeywordCode)(i,n)}var qln=/^\/(?:[^~]|~0|~1)*$/,Bln=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function G6e(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let i,s;if(e==="")return Xt.default.rootData;if(e[0]==="/"){if(!qln.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,s=Xt.default.rootData}else{let u=Bln.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,Ym.unescapeJsonPointer)(u))}`,o=(0,pt._)`${o} && ${s}`);return o;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${t}`}}FS.getData=G6e});var MC=w(Pse=>{"use strict";Object.defineProperty(Pse,"__esModule",{value:!0});var Ose=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Pse.default=Ose});var Zm=w(Mse=>{"use strict";Object.defineProperty(Mse,"__esModule",{value:!0});var Nse=PC(),Cse=class extends Error{constructor(t,n,r,i){super(i||`can't resolve reference ${r} from id ${n}`),this.missingRef=(0,Nse.resolveUrl)(t,n,r),this.missingSchema=(0,Nse.normalizeId)((0,Nse.getFullPath)(t,this.missingRef))}};Mse.default=Cse});var q_=w(Ed=>{"use strict";Object.defineProperty(Ed,"__esModule",{value:!0});Ed.resolveSchema=Ed.getCompilingSchema=Ed.resolveRef=Ed.compileSchema=Ed.SchemaEnv=void 0;var Af=Ot(),zln=MC(),H_=bd(),wf=PC(),V6e=pn(),Gln=ck(),uk=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={}}};Ed.SchemaEnv=uk;function Lse(e){let t=W6e.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:zln.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:H_.default.data,parentData:H_.default.parentData,parentDataProperty:H_.default.parentDataProperty,dataNames:[H_.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,Gln.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let d=o.toString();l=`${o.scopeRefs(H_.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let p=new Function(`${H_.default.self}`,`${H_.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)}}Ed.compileSchema=Lse;function Vln(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=Yln.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 uk({schema:o,schemaId:a,root:e,baseId:t}))}if(s!==void 0)return e.refs[n]=Wln.call(this,s)}Ed.resolveRef=Vln;function Wln(e){return(0,wf.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:Lse.call(this,e)}function W6e(e){for(let t of this._compilations)if(Kln(t,e))return t}Ed.getCompilingSchema=W6e;function Kln(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function Yln(e,t){let n;for(;typeof(n=this.refs[t])=="string";)t=n;return n||this.schemas[t]||eV.call(this,e,t)}function eV(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 Dse.call(this,n,e);let s=(0,wf.normalizeId)(r),o=this.refs[s]||this.schemas[s];if(typeof o=="string"){let a=eV.call(this,e,o);return typeof a?.schema!="object"?void 0:Dse.call(this,n,a)}if(typeof o?.schema=="object"){if(o.validate||Lse.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 uk({schema:a,schemaId:c,root:e,baseId:i})}return Dse.call(this,n,o)}}Ed.resolveSchema=eV;var Zln=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Dse(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,V6e.unescapeFragment)(a)];if(c===void 0)return;n=c;let u=typeof n=="object"&&n[this.opts.schemaId];!Zln.has(a)&&u&&(t=(0,wf.resolveUrl)(this.opts.uriResolver,t,u))}let s;if(typeof n!="boolean"&&n.$ref&&!(0,V6e.schemaHasRulesButRef)(n,this.RULES)){let a=(0,wf.resolveUrl)(this.opts.uriResolver,t,n.$ref);s=eV.call(this,r,a)}let{schemaId:o}=this.opts;if(s=s||new uk({schema:n,schemaId:o,root:r,baseId:t}),s.schema!==s.root.schema)return s}});var K6e=w((HVr,Jln)=>{Jln.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 Fse=w((qVr,X6e)=>{"use strict";var Xln=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 Use(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 Qln=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Y6e(e){return e.length=0,!0}function $ln(e,t,n){if(e.length){let r=Use(e);if(r!=="")t.push(r);else return n.error=!0,!1;e.length=0}return!0}function edn(e){let t=0,n={error:!1,address:"",zone:""},r=[],i=[],s=!1,o=!1,a=$ln;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=Y6e}else{i.push(u);continue}}return i.length&&(a===Y6e?n.zone=i.join(""):o?r.push(i.join("")):r.push(Use(i))),n.address=r.join(""),n}function J6e(e){if(tdn(e,":")<2)return{host:e,isIPV6:!1};let t=edn(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 tdn(e,t){let n=0;for(let r=0;r{"use strict";var{isUUID:sdn}=Fse(),odn=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,adn=["http","https","ws","wss","urn","urn:uuid"];function cdn(e){return adn.indexOf(e)!==-1}function jse(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 Q6e(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function $6e(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 udn(e){return e.secure=jse(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function ldn(e){if((e.port===(jse(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 ddn(e,t){if(!e.path)return e.error="URN can not be parsed",e;let n=e.path.match(odn);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=Hse(i);e.path=void 0,s&&(e=s.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function fdn(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=Hse(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 pdn(e,t){let n=e;return n.uuid=n.nss,n.nss=void 0,!t.tolerant&&(!n.uuid||!sdn(n.uuid))&&(n.error=n.error||"UUID is not valid."),n}function hdn(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var e5e={scheme:"http",domainHost:!0,parse:Q6e,serialize:$6e},mdn={scheme:"https",domainHost:e5e.domainHost,parse:Q6e,serialize:$6e},tV={scheme:"ws",domainHost:!0,parse:udn,serialize:ldn},gdn={scheme:"wss",domainHost:tV.domainHost,parse:tV.parse,serialize:tV.serialize},ydn={scheme:"urn",parse:ddn,serialize:fdn,skipNormalize:!0},Sdn={scheme:"urn:uuid",parse:pdn,serialize:hdn,skipNormalize:!0},nV={http:e5e,https:mdn,ws:tV,wss:gdn,urn:ydn,"urn:uuid":Sdn};Object.setPrototypeOf(nV,null);function Hse(e){return e&&(nV[e]||nV[e.toLowerCase()])||void 0}t5e.exports={wsIsSecure:jse,SCHEMES:nV,isValidSchemeName:cdn,getSchemeHandler:Hse}});var sV=w((zVr,iV)=>{"use strict";var{normalizeIPv6:bdn,removeDotSegments:DC,recomposeAuthority:Edn,normalizeComponentEncoding:rV,isIPv4:_dn,nonSimpleDomain:Tdn}=Fse(),{SCHEMES:vdn,getSchemeHandler:r5e}=n5e();function Rdn(e,t){return typeof e=="string"?e=hh(Jm(e,t),t):typeof e=="object"&&(e=Jm(hh(e,t),t)),e}function Adn(e,t,n){let r=n?Object.assign({scheme:"null"},n):{scheme:"null"},i=i5e(Jm(e,r),Jm(t,r),r,!0);return r.skipEscape=!0,hh(i,r)}function i5e(e,t,n,r){let i={};return r||(e=Jm(hh(e,n),n),t=Jm(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=DC(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=DC(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=DC(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=DC(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 wdn(e,t,n){return typeof e=="string"?(e=unescape(e),e=hh(rV(Jm(e,n),!0),{...n,skipEscape:!0})):typeof e=="object"&&(e=hh(rV(e,!0),{...n,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=hh(rV(Jm(t,n),!0),{...n,skipEscape:!0})):typeof t=="object"&&(t=hh(rV(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=r5e(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=Edn(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=DC(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 kdn=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Jm(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(kdn);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(_dn(r.host)===!1){let c=bdn(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=r5e(n.scheme||r.scheme);if(!n.unicodeSupport&&(!o||!o.unicodeSupport)&&r.host&&(n.domainHost||o&&o.domainHost)&&i===!1&&Tdn(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 qse={SCHEMES:vdn,normalize:Rdn,resolve:Adn,resolveComponent:i5e,equal:wdn,serialize:hh,parse:Jm};iV.exports=qse;iV.exports.default=qse;iV.exports.fastUri=qse});var o5e=w(Bse=>{"use strict";Object.defineProperty(Bse,"__esModule",{value:!0});var s5e=sV();s5e.code='require("ajv/dist/runtime/uri").default';Bse.default=s5e});var Vse=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 Idn=ck();Object.defineProperty(ba,"KeywordCxt",{enumerable:!0,get:function(){return Idn.KeywordCxt}});var lk=Ot();Object.defineProperty(ba,"_",{enumerable:!0,get:function(){return lk._}});Object.defineProperty(ba,"str",{enumerable:!0,get:function(){return lk.str}});Object.defineProperty(ba,"stringify",{enumerable:!0,get:function(){return lk.stringify}});Object.defineProperty(ba,"nil",{enumerable:!0,get:function(){return lk.nil}});Object.defineProperty(ba,"Name",{enumerable:!0,get:function(){return lk.Name}});Object.defineProperty(ba,"CodeGen",{enumerable:!0,get:function(){return lk.CodeGen}});var xdn=MC(),d5e=Zm(),Odn=Sse(),LC=q_(),Pdn=Ot(),UC=PC(),oV=xC(),Gse=pn(),a5e=K6e(),Ndn=o5e(),f5e=(e,t)=>new RegExp(e,t);f5e.code="new RegExp";var Cdn=["removeAdditional","useDefaults","coerceTypes"],Mdn=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."},Ldn={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},c5e=200;function Udn(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:f5e,L=(i=e.uriResolver)!==null&&i!==void 0?i:Ndn.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:c5e,loopEnum:(g=e.loopEnum)!==null&&g!==void 0?g:c5e,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 FC=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...Udn(t)};let{es5:n,lines:r}=this.opts.code;this.scope=new Pdn.ValueScope({scope:{},prefixes:Mdn,es5:n,lines:r}),this.logger=zdn(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,Odn.getRules)(),u5e.call(this,Ddn,t,"NOT SUPPORTED"),u5e.call(this,Ldn,t,"DEPRECATED","warn"),this._metaOpts=qdn.call(this),t.formats&&jdn.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&Hdn.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),Fdn.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:n,schemaId:r}=this.opts,i=a5e;r==="id"&&(i={...a5e},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 d5e.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,UC.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=l5e.call(this,t))=="string";)t=n;if(n===void 0){let{schemaId:r}=this.opts,i=new LC.SchemaEnv({schema:{},schemaId:r});if(n=LC.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=l5e.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,UC.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(Vdn.call(this,r,n),!n)return(0,Gse.eachItem)(r,s=>zse.call(this,s)),this;Kdn.call(this,n);let i={...n,type:(0,oV.getJSONTypes)(n.type),schemaType:(0,oV.getJSONTypes)(n.schemaType)};return(0,Gse.eachItem)(r,i.type.length===0?s=>zse.call(this,s,i):s=>i.type.forEach(o=>zse.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]=p5e(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,UC.normalizeId)(o||r);let u=UC.getSchemaRefs.call(this,t,r);return c=new LC.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):LC.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{LC.compileSchema.call(this,t)}finally{this.opts=n}}};FC.ValidationError=xdn.default;FC.MissingRefError=d5e.default;ba.default=FC;function u5e(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 l5e(e){return e=(0,UC.normalizeId)(e),this.schemas[e]||this.refs[e]}function Fdn(){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 jdn(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function Hdn(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 qdn(){let e={...this.opts};for(let t of Cdn)delete e[t];return e}var Bdn={log(){},warn(){},error(){}};function zdn(e){if(e===!1)return Bdn;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 Gdn=/^[a-z_$][a-z0-9_$:-]*$/i;function Vdn(e,t){let{RULES:n}=this;if((0,Gse.eachItem)(e,r=>{if(n.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!Gdn.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 zse(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,oV.getJSONTypes)(t.type),schemaType:(0,oV.getJSONTypes)(t.schemaType)}};t.before?Wdn.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 Wdn(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 Kdn(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=p5e(t)),e.validateSchema=this.compile(t,!0))}var Ydn={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function p5e(e){return{anyOf:[e,Ydn]}}});var h5e=w(Wse=>{"use strict";Object.defineProperty(Wse,"__esModule",{value:!0});var Zdn={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Wse.default=Zdn});var Kse=w(B_=>{"use strict";Object.defineProperty(B_,"__esModule",{value:!0});B_.callRef=B_.getValidate=void 0;var Jdn=Zm(),m5e=Sa(),wu=Ot(),dk=bd(),g5e=q_(),aV=pn(),Xdn={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=g5e.resolveRef.call(c,u,i,n);if(l===void 0)throw new Jdn.default(r.opts.uriResolver,i,n);if(l instanceof g5e.SchemaEnv)return f(l);return p(l);function d(){if(s===u)return cV(e,o,s,s.$async);let h=t.scopeValue("root",{ref:u});return cV(e,(0,wu._)`${h}.validate`,u,u.$async)}function f(h){let m=y5e(e,h);cV(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 y5e(e,t){let{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):(0,wu._)`${n.scopeValue("wrapper",{ref:t})}.validate`}B_.getValidate=y5e;function cV(e,t,n,r){let{gen:i,it:s}=e,{allErrors:o,schemaEnv:a,opts:c}=s,u=c.passContext?dk.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,m5e.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,m5e.callValidateCode)(e,t,u),()=>p(t),()=>f(t))}function f(h){let m=(0,wu._)`${h}.errors`;i.assign(dk.default.vErrors,(0,wu._)`${dk.default.vErrors} === null ? ${m} : ${dk.default.vErrors}.concat(${m})`),i.assign(dk.default.errors,(0,wu._)`${dk.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=aV.mergeEvaluated.props(i,g.props,s.props));else{let y=i.var("props",(0,wu._)`${h}.evaluated.props`);s.props=aV.mergeEvaluated.props(i,y,s.props,wu.Name)}if(s.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(s.items=aV.mergeEvaluated.items(i,g.items,s.items));else{let y=i.var("items",(0,wu._)`${h}.evaluated.items`);s.items=aV.mergeEvaluated.items(i,y,s.items,wu.Name)}}}B_.callRef=cV;B_.default=Xdn});var S5e=w(Yse=>{"use strict";Object.defineProperty(Yse,"__esModule",{value:!0});var Qdn=h5e(),$dn=Kse(),efn=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Qdn.default,$dn.default];Yse.default=efn});var b5e=w(Zse=>{"use strict";Object.defineProperty(Zse,"__esModule",{value:!0});var uV=Ot(),jS=uV.operators,lV={maximum:{okStr:"<=",ok:jS.LTE,fail:jS.GT},minimum:{okStr:">=",ok:jS.GTE,fail:jS.LT},exclusiveMaximum:{okStr:"<",ok:jS.LT,fail:jS.GTE},exclusiveMinimum:{okStr:">",ok:jS.GT,fail:jS.LTE}},tfn={message:({keyword:e,schemaCode:t})=>(0,uV.str)`must be ${lV[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,uV._)`{comparison: ${lV[e].okStr}, limit: ${t}}`},nfn={keyword:Object.keys(lV),type:"number",schemaType:"number",$data:!0,error:tfn,code(e){let{keyword:t,data:n,schemaCode:r}=e;e.fail$data((0,uV._)`${n} ${lV[t].fail} ${r} || isNaN(${n})`)}};Zse.default=nfn});var E5e=w(Jse=>{"use strict";Object.defineProperty(Jse,"__esModule",{value:!0});var jC=Ot(),rfn={message:({schemaCode:e})=>(0,jC.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,jC._)`{multipleOf: ${e}}`},ifn={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:rfn,code(e){let{gen:t,data:n,schemaCode:r,it:i}=e,s=i.opts.multipleOfPrecision,o=t.let("res"),a=s?(0,jC._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${s}`:(0,jC._)`${o} !== parseInt(${o})`;e.fail$data((0,jC._)`(${r} === 0 || (${o} = ${n}/${r}, ${a}))`)}};Jse.default=ifn});var T5e=w(Xse=>{"use strict";Object.defineProperty(Xse,"__esModule",{value:!0});function _5e(e){let t=e.length,n=0,r=0,i;for(;r=55296&&i<=56319&&r{"use strict";Object.defineProperty(Qse,"__esModule",{value:!0});var z_=Ot(),sfn=pn(),ofn=T5e(),afn={message({keyword:e,schemaCode:t}){let n=e==="maxLength"?"more":"fewer";return(0,z_.str)`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>(0,z_._)`{limit: ${e}}`},cfn={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:afn,code(e){let{keyword:t,data:n,schemaCode:r,it:i}=e,s=t==="maxLength"?z_.operators.GT:z_.operators.LT,o=i.opts.unicode===!1?(0,z_._)`${n}.length`:(0,z_._)`${(0,sfn.useFunc)(e.gen,ofn.default)}(${n})`;e.fail$data((0,z_._)`${o} ${s} ${r}`)}};Qse.default=cfn});var R5e=w($se=>{"use strict";Object.defineProperty($se,"__esModule",{value:!0});var ufn=Sa(),lfn=pn(),fk=Ot(),dfn={message:({schemaCode:e})=>(0,fk.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,fk._)`{pattern: ${e}}`},ffn={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:dfn,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,fk._)`new RegExp`:(0,lfn.useFunc)(t,c),l=t.let("valid");t.try(()=>t.assign(l,(0,fk._)`${u}(${s}, ${a}).test(${n})`),()=>t.assign(l,!1)),e.fail$data((0,fk._)`!${l}`)}else{let c=(0,ufn.usePattern)(e,i);e.fail$data((0,fk._)`!${c}.test(${n})`)}}};$se.default=ffn});var A5e=w(eoe=>{"use strict";Object.defineProperty(eoe,"__esModule",{value:!0});var HC=Ot(),pfn={message({keyword:e,schemaCode:t}){let n=e==="maxProperties"?"more":"fewer";return(0,HC.str)`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>(0,HC._)`{limit: ${e}}`},hfn={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:pfn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxProperties"?HC.operators.GT:HC.operators.LT;e.fail$data((0,HC._)`Object.keys(${n}).length ${i} ${r}`)}};eoe.default=hfn});var w5e=w(toe=>{"use strict";Object.defineProperty(toe,"__esModule",{value:!0});var qC=Sa(),BC=Ot(),mfn=pn(),gfn={message:({params:{missingProperty:e}})=>(0,BC.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,BC._)`{missingProperty: ${e}}`},yfn={keyword:"required",type:"object",schemaType:"array",$data:!0,error:gfn,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,mfn.checkStrictMode)(o,y,o.opts.strictRequired)}}function u(){if(c||s)e.block$data(BC.nil,d);else for(let p of n)(0,qC.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,qC.checkMissingProp)(e,n,p)),(0,qC.reportMissingProp)(e,p),t.else()}function d(){t.forOf("prop",r,p=>{e.setParams({missingProperty:p}),t.if((0,qC.noPropertyInData)(t,i,p,a.ownProperties),()=>e.error())})}function f(p,h){e.setParams({missingProperty:p}),t.forOf(p,r,()=>{t.assign(h,(0,qC.propertyInData)(t,i,p,a.ownProperties)),t.if((0,BC.not)(h),()=>{e.error(),t.break()})},BC.nil)}}};toe.default=yfn});var k5e=w(noe=>{"use strict";Object.defineProperty(noe,"__esModule",{value:!0});var zC=Ot(),Sfn={message({keyword:e,schemaCode:t}){let n=e==="maxItems"?"more":"fewer";return(0,zC.str)`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>(0,zC._)`{limit: ${e}}`},bfn={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Sfn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxItems"?zC.operators.GT:zC.operators.LT;e.fail$data((0,zC._)`${n}.length ${i} ${r}`)}};noe.default=bfn});var GC=w(roe=>{"use strict";Object.defineProperty(roe,"__esModule",{value:!0});var I5e=OC();I5e.code='require("ajv/dist/runtime/equal").default';roe.default=I5e});var x5e=w(soe=>{"use strict";Object.defineProperty(soe,"__esModule",{value:!0});var ioe=xC(),Ea=Ot(),Efn=pn(),_fn=GC(),Tfn={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}}`},vfn={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Tfn,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,ioe.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,ioe.checkDataTypes)(u,g,a.opts.strictNumbers,ioe.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,Efn.useFunc)(t,_fn.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)})))}}};soe.default=vfn});var O5e=w(aoe=>{"use strict";Object.defineProperty(aoe,"__esModule",{value:!0});var ooe=Ot(),Rfn=pn(),Afn=GC(),wfn={message:"must be equal to constant",params:({schemaCode:e})=>(0,ooe._)`{allowedValue: ${e}}`},kfn={keyword:"const",$data:!0,error:wfn,code(e){let{gen:t,data:n,$data:r,schemaCode:i,schema:s}=e;r||s&&typeof s=="object"?e.fail$data((0,ooe._)`!${(0,Rfn.useFunc)(t,Afn.default)}(${n}, ${i})`):e.fail((0,ooe._)`${s} !== ${n}`)}};aoe.default=kfn});var P5e=w(coe=>{"use strict";Object.defineProperty(coe,"__esModule",{value:!0});var VC=Ot(),Ifn=pn(),xfn=GC(),Ofn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,VC._)`{allowedValues: ${e}}`},Pfn={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,xfn.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,VC.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,VC._)`${u()}(${n}, ${p})`,()=>t.assign(l,!0).break()))}function f(p,h){let m=i[h];return typeof m=="object"&&m!==null?(0,VC._)`${u()}(${n}, ${p}[${h}])`:(0,VC._)`${n} === ${m}`}}};coe.default=Pfn});var N5e=w(uoe=>{"use strict";Object.defineProperty(uoe,"__esModule",{value:!0});var Nfn=b5e(),Cfn=E5e(),Mfn=v5e(),Dfn=R5e(),Lfn=A5e(),Ufn=w5e(),Ffn=k5e(),jfn=x5e(),Hfn=O5e(),qfn=P5e(),Bfn=[Nfn.default,Cfn.default,Mfn.default,Dfn.default,Lfn.default,Ufn.default,Ffn.default,jfn.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Hfn.default,qfn.default];uoe.default=Bfn});var doe=w(WC=>{"use strict";Object.defineProperty(WC,"__esModule",{value:!0});WC.validateAdditionalItems=void 0;var G_=Ot(),loe=pn(),zfn={message:({params:{len:e}})=>(0,G_.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,G_._)`{limit: ${e}}`},Gfn={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:zfn,code(e){let{parentSchema:t,it:n}=e,{items:r}=t;if(!Array.isArray(r)){(0,loe.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas');return}C5e(e,r)}};function C5e(e,t){let{gen:n,schema:r,data:i,keyword:s,it:o}=e;o.items=!0;let a=n.const("len",(0,G_._)`${i}.length`);if(r===!1)e.setParams({len:t.length}),e.pass((0,G_._)`${a} <= ${t.length}`);else if(typeof r=="object"&&!(0,loe.alwaysValidSchema)(o,r)){let u=n.var("valid",(0,G_._)`${a} <= ${t.length}`);n.if((0,G_.not)(u),()=>c(u)),e.ok(u)}function c(u){n.forRange("i",t.length,a,l=>{e.subschema({keyword:s,dataProp:l,dataPropType:loe.Type.Num},u),o.allErrors||n.if((0,G_.not)(u),()=>n.break())})}}WC.validateAdditionalItems=C5e;WC.default=Gfn});var foe=w(KC=>{"use strict";Object.defineProperty(KC,"__esModule",{value:!0});KC.validateTuple=void 0;var M5e=Ot(),dV=pn(),Vfn=Sa(),Wfn={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:n}=e;if(Array.isArray(t))return D5e(e,"additionalItems",t);n.items=!0,!(0,dV.alwaysValidSchema)(n,t)&&e.ok((0,Vfn.validateArray)(e))}};function D5e(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=dV.mergeEvaluated.items(r,n.length,a.items));let c=r.name("valid"),u=r.const("len",(0,M5e._)`${s}.length`);n.forEach((d,f)=>{(0,dV.alwaysValidSchema)(a,d)||(r.if((0,M5e._)`${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,dV.checkStrictMode)(a,g,f.strictTuples)}}}KC.validateTuple=D5e;KC.default=Wfn});var L5e=w(poe=>{"use strict";Object.defineProperty(poe,"__esModule",{value:!0});var Kfn=foe(),Yfn={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,Kfn.validateTuple)(e,"items")};poe.default=Yfn});var F5e=w(hoe=>{"use strict";Object.defineProperty(hoe,"__esModule",{value:!0});var U5e=Ot(),Zfn=pn(),Jfn=Sa(),Xfn=doe(),Qfn={message:({params:{len:e}})=>(0,U5e.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,U5e._)`{limit: ${e}}`},$fn={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Qfn,code(e){let{schema:t,parentSchema:n,it:r}=e,{prefixItems:i}=n;r.items=!0,!(0,Zfn.alwaysValidSchema)(r,t)&&(i?(0,Xfn.validateAdditionalItems)(e,i):e.ok((0,Jfn.validateArray)(e)))}};hoe.default=$fn});var j5e=w(moe=>{"use strict";Object.defineProperty(moe,"__esModule",{value:!0});var _d=Ot(),fV=pn(),epn={message:({params:{min:e,max:t}})=>t===void 0?(0,_d.str)`must contain at least ${e} valid item(s)`:(0,_d.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,_d._)`{minContains: ${e}}`:(0,_d._)`{minContains: ${e}, maxContains: ${t}}`},tpn={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:epn,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,_d._)`${i}.length`);if(e.setParams({min:o,max:a}),a===void 0&&o===0){(0,fV.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&o>a){(0,fV.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,fV.alwaysValidSchema)(s,n)){let m=(0,_d._)`${l} >= ${o}`;a!==void 0&&(m=(0,_d._)`${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,_d._)`${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:fV.Type.Num,compositeRule:!0},m),g()})}function h(m){t.code((0,_d._)`${m}++`),a===void 0?t.if((0,_d._)`${m} >= ${o}`,()=>t.assign(d,!0).break()):(t.if((0,_d._)`${m} > ${a}`,()=>t.assign(d,!1).break()),o===1?t.assign(d,!0):t.if((0,_d._)`${m} >= ${o}`,()=>t.assign(d,!0)))}}};moe.default=tpn});var B5e=w(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0});mh.validateSchemaDeps=mh.validatePropertyDeps=mh.error=void 0;var goe=Ot(),npn=pn(),YC=Sa();mh.error={message:({params:{property:e,depsCount:t,deps:n}})=>{let r=t===1?"property":"properties";return(0,goe.str)`must have ${r} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:r}})=>(0,goe._)`{property: ${e}, + || ${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 _se(e,t,n,r=sk.Correct){let i=r===sk.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===sk.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=_se;function Tse(e,t,n,r){if(e.length===1)return _se(e[0],t,n,r);let i,s=(0,m6e.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,_se(o,t,n,r));return i}oc.checkDataTypes=Tse;var jun={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,hn._)`{type: ${e}}`:(0,hn._)`{type: ${t}}`};function vse(e){let t=Hun(e);(0,Cun.reportError)(t,jun)}oc.reportTypeError=vse;function Hun(e){let{gen:t,data:n,schema:r}=e,i=(0,m6e.schemaRefOrVal)(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:e}}});var b6e=w(J2=>{"use strict";Object.defineProperty(J2,"__esModule",{value:!0});J2.assignDefaults=void 0;var ok=Ot(),qun=pn();function Bun(e,t){let{properties:n,items:r}=e.schema;if(t==="object"&&n)for(let i in n)S6e(e,i,n[i].default);else t==="array"&&Array.isArray(r)&&r.forEach((i,s)=>S6e(e,s,i.default))}J2.assignDefaults=Bun;function S6e(e,t,n){let{gen:r,compositeRule:i,data:s,opts:o}=e;if(n===void 0)return;let a=(0,ok._)`${s}${(0,ok.getProperty)(t)}`;if(i){(0,qun.checkStrictMode)(e,`default is ignored for: ${a}`);return}let c=(0,ok._)`${a} === undefined`;o.useDefaults==="empty"&&(c=(0,ok._)`${c} || ${a} === null || ${a} === ""`),r.if(c,(0,ok._)`${a} = ${(0,ok.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(),Rse=pn(),DS=bd(),zun=pn();function Gun(e,t){let{gen:n,data:r,it:i}=e;n.if(wse(n,r,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,gi._)`${t}`},!0),e.error()})}Fr.checkReportMissingProp=Gun;function Vun({gen:e,data:t,it:{opts:n}},r,i){return(0,gi.or)(...r.map(s=>(0,gi.and)(wse(e,t,s,n.ownProperties),(0,gi._)`${i} = ${s}`)))}Fr.checkMissingProp=Vun;function Wun(e,t){e.setParams({missingProperty:t},!0),e.error()}Fr.reportMissingProp=Wun;function E6e(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,gi._)`Object.prototype.hasOwnProperty`})}Fr.hasPropFunc=E6e;function Ase(e,t,n){return(0,gi._)`${E6e(e)}.call(${t}, ${n})`}Fr.isOwnProperty=Ase;function Kun(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} !== undefined`;return r?(0,gi._)`${i} && ${Ase(e,t,n)}`:i}Fr.propertyInData=Kun;function wse(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} === undefined`;return r?(0,gi.or)(i,(0,gi.not)(Ase(e,t,n))):i}Fr.noPropertyInData=wse;function _6e(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}Fr.allSchemaProperties=_6e;function Yun(e,t){return _6e(t).filter(n=>!(0,Rse.alwaysValidSchema)(e,t[n]))}Fr.schemaProperties=Yun;function Zun({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=[[DS.default.instancePath,(0,gi.strConcat)(DS.default.instancePath,s)],[DS.default.parentData,o.parentData],[DS.default.parentDataProperty,o.parentDataProperty],[DS.default.rootData,DS.default.rootData]];o.opts.dynamicRef&&d.push([DS.default.dynamicAnchors,DS.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=Zun;var Jun=(0,gi._)`new RegExp`;function Xun({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"?Jun:(0,zun.useFunc)(e,i)}(${n}, ${r})`})}Fr.usePattern=Xun;function Qun(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:Rse.Type.Num},s),t.if((0,gi.not)(s),a)})}}Fr.validateArray=Qun;function $un(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,Rse.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=$un});var R6e=w(fh=>{"use strict";Object.defineProperty(fh,"__esModule",{value:!0});fh.validateKeywordUsage=fh.validSchemaType=fh.funcKeywordCode=fh.macroKeywordCode=void 0;var Gc=Ot(),j_=bd(),eln=Sa(),tln=IC();function nln(e,t){let{gen:n,keyword:r,schema:i,parentSchema:s,it:o}=e,a=t.macro.call(o.self,i,s,o),c=v6e(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=nln;function rln(e,t){var n;let{gen:r,keyword:i,schema:s,parentSchema:o,$data:a,it:c}=e;sln(c,t);let u=!a&&t.compile?t.compile.call(c.self,s,o,c):t.validate,l=v6e(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&&T6e(e),g(()=>e.error());else{let y=t.async?p():h();t.modifying&&T6e(e),g(()=>iln(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?j_.default.this:j_.default.self,S=!("compile"in t&&!a||t.schema===!1);r.assign(d,(0,Gc._)`${y}${(0,eln.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=rln;function T6e(e){let{gen:t,data:n,it:r}=e;t.if(r.parentData,()=>t.assign(n,(0,Gc._)`${r.parentData}[${r.parentDataProperty}]`))}function iln(e,t){let{gen:n}=e;n.if((0,Gc._)`Array.isArray(${t})`,()=>{n.assign(j_.default.vErrors,(0,Gc._)`${j_.default.vErrors} === null ? ${t} : ${j_.default.vErrors}.concat(${t})`).assign(j_.default.errors,(0,Gc._)`${j_.default.vErrors}.length`),(0,tln.extendErrors)(e)},()=>e.error())}function sln({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function v6e(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 oln(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=oln;function aln({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=aln});var w6e=w(LS=>{"use strict";Object.defineProperty(LS,"__esModule",{value:!0});LS.extendSubschemaMode=LS.extendSubschemaData=LS.getSubschema=void 0;var ph=Ot(),A6e=pn();function cln(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,A6e.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')}LS.getSubschema=cln;function uln(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,A6e.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]}}LS.extendSubschemaData=uln;function lln(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}LS.extendSubschemaMode=lln});var OC=w((CVr,k6e)=>{"use strict";k6e.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 x6e=w((MVr,I6e)=>{"use strict";var US=I6e.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(){};X2(t,r,i,e,"",e)};US.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};US.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};US.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};US.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 X2(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 US.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 fln=pn(),pln=OC(),hln=x6e(),mln=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function gln(e,t=!0){return typeof e=="boolean"?!0:t===!0?!kse(e):t?O6e(e)<=t:!1}Au.inlineRef=gln;var yln=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function kse(e){for(let t in e){if(yln.has(t))return!0;let n=e[t];if(Array.isArray(n)&&n.some(kse)||typeof n=="object"&&kse(n))return!0}return!1}function O6e(e){let t=0;for(let n in e){if(n==="$ref")return 1/0;if(t++,!mln.has(n)&&(typeof e[n]=="object"&&(0,fln.eachItem)(e[n],r=>t+=O6e(r)),t===1/0))return 1/0}return t}function P6e(e,t="",n){n!==!1&&(t=ak(t));let r=e.parse(t);return N6e(e,r)}Au.getFullPath=P6e;function N6e(e,t){return e.serialize(t).split("#")[0]+"#"}Au._getFullPath=N6e;var Sln=/#\/?$/;function ak(e){return e?e.replace(Sln,""):""}Au.normalizeId=ak;function bln(e,t,n){return n=ak(n),e.resolve(t,n)}Au.resolveUrl=bln;var Eln=/^[a-z_][-a-z0-9._]*$/i;function _ln(e,t){if(typeof e=="boolean")return{};let{schemaId:n,uriResolver:r}=this.opts,i=ak(e[n]||t),s={"":i},o=P6e(r,i,!1),a={},c=new Set;return hln(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=ak(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!==ak(m)&&(S[0]==="#"?(u(d,a[S],S),a[S]=d):this.refs[S]=m),S}function b(S){if(typeof S=="string"){if(!Eln.test(S))throw new Error(`invalid anchor "${S}"`);y.call(this,`#${S}`)}}}),a;function u(d,f,p){if(f!==void 0&&!pln(d,f))throw l(p)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Au.getSchemaRefs=_ln});var ck=w(FS=>{"use strict";Object.defineProperty(FS,"__esModule",{value:!0});FS.getData=FS.KeywordCxt=FS.validateFunctionCode=void 0;var U6e=f6e(),C6e=xC(),xse=Ese(),Q2=xC(),Tln=b6e(),CC=R6e(),Ise=w6e(),pt=Ot(),Xt=bd(),vln=PC(),Ym=pn(),NC=IC();function Rln(e){if(H6e(e)&&(q6e(e),j6e(e))){kln(e);return}F6e(e,()=>(0,U6e.topBoolOrEmptySchema)(e))}FS.validateFunctionCode=Rln;function F6e({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"; ${M6e(n,i)}`),wln(e,i),e.code(s)}):e.func(t,(0,pt._)`${Xt.default.data}, ${Aln(i)}`,r.$async,()=>e.code(M6e(n,i)).code(s))}function Aln(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 wln(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 kln(e){let{schema:t,opts:n,gen:r}=e;F6e(e,()=>{n.$comment&&t.$comment&&z6e(e),Nln(e),r.let(Xt.default.vErrors,null),r.let(Xt.default.errors,0),n.unevaluated&&Iln(e),B6e(e),Dln(e)})}function Iln(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 M6e(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 xln(e,t){if(H6e(e)&&(q6e(e),j6e(e))){Oln(e,t);return}(0,U6e.boolOrEmptySchema)(e,t)}function j6e({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 H6e(e){return typeof e.schema!="boolean"}function Oln(e,t){let{schema:n,gen:r,opts:i}=e;i.$comment&&n.$comment&&z6e(e),Cln(e),Mln(e);let s=r.const("_errs",Xt.default.errors);B6e(e,s),r.var(t,(0,pt._)`${s} === ${Xt.default.errors}`)}function q6e(e){(0,Ym.checkUnknownRules)(e),Pln(e)}function B6e(e,t){if(e.opts.jtd)return D6e(e,[],!1,t);let n=(0,C6e.getSchemaTypes)(e.schema),r=(0,C6e.coerceAndCheckDataType)(e,n);D6e(e,n,!r,t)}function Pln(e){let{schema:t,errSchemaPath:n,opts:r,self:i}=e;t.$ref&&r.ignoreKeywordsWithRef&&(0,Ym.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}function Nln(e){let{schema:t,opts:n}=e;t.default!==void 0&&n.useDefaults&&n.strictSchema&&(0,Ym.checkStrictMode)(e,"default is ignored in the schema root")}function Cln(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,vln.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function Mln(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function z6e({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 Dln(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&&Lln(e),t.return((0,pt._)`${Xt.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 D6e(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,Ym.schemaHasRulesButRef)(s,l))){i.block(()=>V6e(e,"$ref",l.all.$ref.definition));return}c.jtd||Uln(e,t),i.block(()=>{for(let f of l.rules)d(f);d(l.post)});function d(f){(0,xse.shouldUseGroup)(s,f)&&(f.type?(i.if((0,Q2.checkDataType)(f.type,o,c.strictNumbers)),L6e(e,f),t.length===1&&t[0]===f.type&&n&&(i.else(),(0,Q2.reportTypeError)(e)),i.endIf()):L6e(e,f),a||i.if((0,pt._)`${Xt.default.errors} === ${r||0}`))}}function L6e(e,t){let{gen:n,schema:r,opts:{useDefaults:i}}=e;i&&(0,Tln.assignDefaults)(e,t.type),n.block(()=>{for(let s of t.rules)(0,xse.shouldUseRule)(r,s)&&V6e(e,s.keyword,s.definition,t.type)})}function Uln(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(Fln(e,t),e.opts.allowUnionTypes||jln(e,t),Hln(e,e.dataTypes))}function Fln(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(n=>{G6e(e.dataTypes,n)||Ose(e,`type "${n}" not allowed by context "${e.dataTypes.join(",")}"`)}),Bln(e,t)}}function jln(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Ose(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,xse.shouldUseRule)(e.schema,i)){let{type:s}=i.definition;s.length&&!s.some(o=>qln(t,o))&&Ose(e,`missing type "${s.join(",")}" for keyword "${r}"`)}}}function qln(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function G6e(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function Bln(e,t){let n=[];for(let r of e.dataTypes)G6e(t,r)?n.push(r):t.includes("integer")&&r==="number"&&n.push("integer");e.dataTypes=n}function Ose(e,t){let n=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${n}" (strictTypes)`,(0,Ym.checkStrictMode)(e,t,e.opts.strictTypes)}var $2=class{constructor(t,n,r){if((0,CC.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,Ym.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",W6e(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,CC.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?NC.reportExtraError:NC.reportError)(this,this.def.error,n)}$dataError(){(0,NC.reportError)(this,this.def.$dataError||NC.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,NC.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,Q2.checkDataTypes)(c,n,s.opts.strictNumbers,Q2.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,Ise.getSubschema)(this.it,t);(0,Ise.extendSubschemaData)(r,this.it,t),(0,Ise.extendSubschemaMode)(r,t);let i={...this.it,...r,items:void 0,props:void 0};return xln(i,n),i}mergeEvaluated(t,n){let{it:r,gen:i}=this;r.opts.unevaluated&&(r.props!==!0&&t.props!==void 0&&(r.props=Ym.mergeEvaluated.props(i,t.props,r.props,n)),r.items!==!0&&t.items!==void 0&&(r.items=Ym.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}};FS.KeywordCxt=$2;function V6e(e,t,n,r){let i=new $2(e,n,t);"code"in n?n.code(i,r):i.$data&&n.validate?(0,CC.funcKeywordCode)(i,n):"macro"in n?(0,CC.macroKeywordCode)(i,n):(n.compile||n.validate)&&(0,CC.funcKeywordCode)(i,n)}var zln=/^\/(?:[^~]|~0|~1)*$/,Gln=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function W6e(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let i,s;if(e==="")return Xt.default.rootData;if(e[0]==="/"){if(!zln.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,s=Xt.default.rootData}else{let u=Gln.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,Ym.unescapeJsonPointer)(u))}`,o=(0,pt._)`${o} && ${s}`);return o;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${t}`}}FS.getData=W6e});var MC=w(Nse=>{"use strict";Object.defineProperty(Nse,"__esModule",{value:!0});var Pse=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Nse.default=Pse});var Zm=w(Dse=>{"use strict";Object.defineProperty(Dse,"__esModule",{value:!0});var Cse=PC(),Mse=class extends Error{constructor(t,n,r,i){super(i||`can't resolve reference ${r} from id ${n}`),this.missingRef=(0,Cse.resolveUrl)(t,n,r),this.missingSchema=(0,Cse.normalizeId)((0,Cse.getFullPath)(t,this.missingRef))}};Dse.default=Mse});var q_=w(Ed=>{"use strict";Object.defineProperty(Ed,"__esModule",{value:!0});Ed.resolveSchema=Ed.getCompilingSchema=Ed.resolveRef=Ed.compileSchema=Ed.SchemaEnv=void 0;var Af=Ot(),Vln=MC(),H_=bd(),wf=PC(),K6e=pn(),Wln=ck(),uk=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={}}};Ed.SchemaEnv=uk;function Use(e){let t=Y6e.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:Vln.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:H_.default.data,parentData:H_.default.parentData,parentDataProperty:H_.default.parentDataProperty,dataNames:[H_.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,Wln.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let d=o.toString();l=`${o.scopeRefs(H_.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let p=new Function(`${H_.default.self}`,`${H_.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)}}Ed.compileSchema=Use;function Kln(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=Jln.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 uk({schema:o,schemaId:a,root:e,baseId:t}))}if(s!==void 0)return e.refs[n]=Yln.call(this,s)}Ed.resolveRef=Kln;function Yln(e){return(0,wf.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:Use.call(this,e)}function Y6e(e){for(let t of this._compilations)if(Zln(t,e))return t}Ed.getCompilingSchema=Y6e;function Zln(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function Jln(e,t){let n;for(;typeof(n=this.refs[t])=="string";)t=n;return n||this.schemas[t]||eV.call(this,e,t)}function eV(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 Lse.call(this,n,e);let s=(0,wf.normalizeId)(r),o=this.refs[s]||this.schemas[s];if(typeof o=="string"){let a=eV.call(this,e,o);return typeof a?.schema!="object"?void 0:Lse.call(this,n,a)}if(typeof o?.schema=="object"){if(o.validate||Use.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 uk({schema:a,schemaId:c,root:e,baseId:i})}return Lse.call(this,n,o)}}Ed.resolveSchema=eV;var Xln=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Lse(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,K6e.unescapeFragment)(a)];if(c===void 0)return;n=c;let u=typeof n=="object"&&n[this.opts.schemaId];!Xln.has(a)&&u&&(t=(0,wf.resolveUrl)(this.opts.uriResolver,t,u))}let s;if(typeof n!="boolean"&&n.$ref&&!(0,K6e.schemaHasRulesButRef)(n,this.RULES)){let a=(0,wf.resolveUrl)(this.opts.uriResolver,t,n.$ref);s=eV.call(this,r,a)}let{schemaId:o}=this.opts;if(s=s||new uk({schema:n,schemaId:o,root:r,baseId:t}),s.schema!==s.root.schema)return s}});var Z6e=w((HVr,Qln)=>{Qln.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 jse=w((qVr,$6e)=>{"use strict";var $ln=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),X6e=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 Fse(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 edn=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function J6e(e){return e.length=0,!0}function tdn(e,t,n){if(e.length){let r=Fse(e);if(r!=="")t.push(r);else return n.error=!0,!1;e.length=0}return!0}function ndn(e){let t=0,n={error:!1,address:"",zone:""},r=[],i=[],s=!1,o=!1,a=tdn;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=J6e}else{i.push(u);continue}}return i.length&&(a===J6e?n.zone=i.join(""):o?r.push(i.join("")):r.push(Fse(i))),n.address=r.join(""),n}function Q6e(e){if(rdn(e,":")<2)return{host:e,isIPV6:!1};let t=ndn(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 rdn(e,t){let n=0;for(let r=0;r{"use strict";var{isUUID:adn}=jse(),cdn=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,udn=["http","https","ws","wss","urn","urn:uuid"];function ldn(e){return udn.indexOf(e)!==-1}function Hse(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 e5e(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function t5e(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 ddn(e){return e.secure=Hse(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function fdn(e){if((e.port===(Hse(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 pdn(e,t){if(!e.path)return e.error="URN can not be parsed",e;let n=e.path.match(cdn);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=qse(i);e.path=void 0,s&&(e=s.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function hdn(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=qse(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 mdn(e,t){let n=e;return n.uuid=n.nss,n.nss=void 0,!t.tolerant&&(!n.uuid||!adn(n.uuid))&&(n.error=n.error||"UUID is not valid."),n}function gdn(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var n5e={scheme:"http",domainHost:!0,parse:e5e,serialize:t5e},ydn={scheme:"https",domainHost:n5e.domainHost,parse:e5e,serialize:t5e},tV={scheme:"ws",domainHost:!0,parse:ddn,serialize:fdn},Sdn={scheme:"wss",domainHost:tV.domainHost,parse:tV.parse,serialize:tV.serialize},bdn={scheme:"urn",parse:pdn,serialize:hdn,skipNormalize:!0},Edn={scheme:"urn:uuid",parse:mdn,serialize:gdn,skipNormalize:!0},nV={http:n5e,https:ydn,ws:tV,wss:Sdn,urn:bdn,"urn:uuid":Edn};Object.setPrototypeOf(nV,null);function qse(e){return e&&(nV[e]||nV[e.toLowerCase()])||void 0}r5e.exports={wsIsSecure:Hse,SCHEMES:nV,isValidSchemeName:ldn,getSchemeHandler:qse}});var sV=w((zVr,iV)=>{"use strict";var{normalizeIPv6:_dn,removeDotSegments:DC,recomposeAuthority:Tdn,normalizeComponentEncoding:rV,isIPv4:vdn,nonSimpleDomain:Rdn}=jse(),{SCHEMES:Adn,getSchemeHandler:s5e}=i5e();function wdn(e,t){return typeof e=="string"?e=hh(Jm(e,t),t):typeof e=="object"&&(e=Jm(hh(e,t),t)),e}function kdn(e,t,n){let r=n?Object.assign({scheme:"null"},n):{scheme:"null"},i=o5e(Jm(e,r),Jm(t,r),r,!0);return r.skipEscape=!0,hh(i,r)}function o5e(e,t,n,r){let i={};return r||(e=Jm(hh(e,n),n),t=Jm(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=DC(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=DC(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=DC(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=DC(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 Idn(e,t,n){return typeof e=="string"?(e=unescape(e),e=hh(rV(Jm(e,n),!0),{...n,skipEscape:!0})):typeof e=="object"&&(e=hh(rV(e,!0),{...n,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=hh(rV(Jm(t,n),!0),{...n,skipEscape:!0})):typeof t=="object"&&(t=hh(rV(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=s5e(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=Tdn(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=DC(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 xdn=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Jm(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(xdn);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(vdn(r.host)===!1){let c=_dn(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=s5e(n.scheme||r.scheme);if(!n.unicodeSupport&&(!o||!o.unicodeSupport)&&r.host&&(n.domainHost||o&&o.domainHost)&&i===!1&&Rdn(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 Bse={SCHEMES:Adn,normalize:wdn,resolve:kdn,resolveComponent:o5e,equal:Idn,serialize:hh,parse:Jm};iV.exports=Bse;iV.exports.default=Bse;iV.exports.fastUri=Bse});var c5e=w(zse=>{"use strict";Object.defineProperty(zse,"__esModule",{value:!0});var a5e=sV();a5e.code='require("ajv/dist/runtime/uri").default';zse.default=a5e});var Wse=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 Odn=ck();Object.defineProperty(ba,"KeywordCxt",{enumerable:!0,get:function(){return Odn.KeywordCxt}});var lk=Ot();Object.defineProperty(ba,"_",{enumerable:!0,get:function(){return lk._}});Object.defineProperty(ba,"str",{enumerable:!0,get:function(){return lk.str}});Object.defineProperty(ba,"stringify",{enumerable:!0,get:function(){return lk.stringify}});Object.defineProperty(ba,"nil",{enumerable:!0,get:function(){return lk.nil}});Object.defineProperty(ba,"Name",{enumerable:!0,get:function(){return lk.Name}});Object.defineProperty(ba,"CodeGen",{enumerable:!0,get:function(){return lk.CodeGen}});var Pdn=MC(),p5e=Zm(),Ndn=bse(),LC=q_(),Cdn=Ot(),UC=PC(),oV=xC(),Vse=pn(),u5e=Z6e(),Mdn=c5e(),h5e=(e,t)=>new RegExp(e,t);h5e.code="new RegExp";var Ddn=["removeAdditional","useDefaults","coerceTypes"],Ldn=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),Udn={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.'},l5e=200;function jdn(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:h5e,L=(i=e.uriResolver)!==null&&i!==void 0?i:Mdn.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:l5e,loopEnum:(g=e.loopEnum)!==null&&g!==void 0?g:l5e,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 FC=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...jdn(t)};let{es5:n,lines:r}=this.opts.code;this.scope=new Cdn.ValueScope({scope:{},prefixes:Ldn,es5:n,lines:r}),this.logger=Vdn(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,Ndn.getRules)(),d5e.call(this,Udn,t,"NOT SUPPORTED"),d5e.call(this,Fdn,t,"DEPRECATED","warn"),this._metaOpts=zdn.call(this),t.formats&&qdn.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&Bdn.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=u5e;r==="id"&&(i={...u5e},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 p5e.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,UC.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=f5e.call(this,t))=="string";)t=n;if(n===void 0){let{schemaId:r}=this.opts,i=new LC.SchemaEnv({schema:{},schemaId:r});if(n=LC.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=f5e.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,UC.normalizeId)(r),delete this.schemas[r],delete this.refs[r]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let n of t)this.addKeyword(n);return this}addKeyword(t,n){let r;if(typeof t=="string")r=t,typeof n=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),n.keyword=r);else if(typeof t=="object"&&n===void 0){if(n=t,r=n.keyword,Array.isArray(r)&&!r.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(Kdn.call(this,r,n),!n)return(0,Vse.eachItem)(r,s=>Gse.call(this,s)),this;Zdn.call(this,n);let i={...n,type:(0,oV.getJSONTypes)(n.type),schemaType:(0,oV.getJSONTypes)(n.schemaType)};return(0,Vse.eachItem)(r,i.type.length===0?s=>Gse.call(this,s,i):s=>i.type.forEach(o=>Gse.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]=m5e(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,UC.normalizeId)(o||r);let u=UC.getSchemaRefs.call(this,t,r);return c=new LC.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):LC.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{LC.compileSchema.call(this,t)}finally{this.opts=n}}};FC.ValidationError=Pdn.default;FC.MissingRefError=p5e.default;ba.default=FC;function d5e(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 f5e(e){return e=(0,UC.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 qdn(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function Bdn(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 zdn(){let e={...this.opts};for(let t of Ddn)delete e[t];return e}var Gdn={log(){},warn(){},error(){}};function Vdn(e){if(e===!1)return Gdn;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var Wdn=/^[a-z_$][a-z0-9_$:-]*$/i;function Kdn(e,t){let{RULES:n}=this;if((0,Vse.eachItem)(e,r=>{if(n.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!Wdn.test(r))throw new Error(`Keyword ${r} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function Gse(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,oV.getJSONTypes)(t.type),schemaType:(0,oV.getJSONTypes)(t.schemaType)}};t.before?Ydn.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 Ydn(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 Zdn(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=m5e(t)),e.validateSchema=this.compile(t,!0))}var Jdn={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function m5e(e){return{anyOf:[e,Jdn]}}});var g5e=w(Kse=>{"use strict";Object.defineProperty(Kse,"__esModule",{value:!0});var Xdn={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Kse.default=Xdn});var Yse=w(B_=>{"use strict";Object.defineProperty(B_,"__esModule",{value:!0});B_.callRef=B_.getValidate=void 0;var Qdn=Zm(),y5e=Sa(),wu=Ot(),dk=bd(),S5e=q_(),aV=pn(),$dn={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=S5e.resolveRef.call(c,u,i,n);if(l===void 0)throw new Qdn.default(r.opts.uriResolver,i,n);if(l instanceof S5e.SchemaEnv)return f(l);return p(l);function d(){if(s===u)return cV(e,o,s,s.$async);let h=t.scopeValue("root",{ref:u});return cV(e,(0,wu._)`${h}.validate`,u,u.$async)}function f(h){let m=b5e(e,h);cV(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 b5e(e,t){let{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):(0,wu._)`${n.scopeValue("wrapper",{ref:t})}.validate`}B_.getValidate=b5e;function cV(e,t,n,r){let{gen:i,it:s}=e,{allErrors:o,schemaEnv:a,opts:c}=s,u=c.passContext?dk.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,y5e.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,y5e.callValidateCode)(e,t,u),()=>p(t),()=>f(t))}function f(h){let m=(0,wu._)`${h}.errors`;i.assign(dk.default.vErrors,(0,wu._)`${dk.default.vErrors} === null ? ${m} : ${dk.default.vErrors}.concat(${m})`),i.assign(dk.default.errors,(0,wu._)`${dk.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=aV.mergeEvaluated.props(i,g.props,s.props));else{let y=i.var("props",(0,wu._)`${h}.evaluated.props`);s.props=aV.mergeEvaluated.props(i,y,s.props,wu.Name)}if(s.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(s.items=aV.mergeEvaluated.items(i,g.items,s.items));else{let y=i.var("items",(0,wu._)`${h}.evaluated.items`);s.items=aV.mergeEvaluated.items(i,y,s.items,wu.Name)}}}B_.callRef=cV;B_.default=$dn});var E5e=w(Zse=>{"use strict";Object.defineProperty(Zse,"__esModule",{value:!0});var efn=g5e(),tfn=Yse(),nfn=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",efn.default,tfn.default];Zse.default=nfn});var _5e=w(Jse=>{"use strict";Object.defineProperty(Jse,"__esModule",{value:!0});var uV=Ot(),jS=uV.operators,lV={maximum:{okStr:"<=",ok:jS.LTE,fail:jS.GT},minimum:{okStr:">=",ok:jS.GTE,fail:jS.LT},exclusiveMaximum:{okStr:"<",ok:jS.LT,fail:jS.GTE},exclusiveMinimum:{okStr:">",ok:jS.GT,fail:jS.LTE}},rfn={message:({keyword:e,schemaCode:t})=>(0,uV.str)`must be ${lV[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,uV._)`{comparison: ${lV[e].okStr}, limit: ${t}}`},ifn={keyword:Object.keys(lV),type:"number",schemaType:"number",$data:!0,error:rfn,code(e){let{keyword:t,data:n,schemaCode:r}=e;e.fail$data((0,uV._)`${n} ${lV[t].fail} ${r} || isNaN(${n})`)}};Jse.default=ifn});var T5e=w(Xse=>{"use strict";Object.defineProperty(Xse,"__esModule",{value:!0});var jC=Ot(),sfn={message:({schemaCode:e})=>(0,jC.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,jC._)`{multipleOf: ${e}}`},ofn={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:sfn,code(e){let{gen:t,data:n,schemaCode:r,it:i}=e,s=i.opts.multipleOfPrecision,o=t.let("res"),a=s?(0,jC._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${s}`:(0,jC._)`${o} !== parseInt(${o})`;e.fail$data((0,jC._)`(${r} === 0 || (${o} = ${n}/${r}, ${a}))`)}};Xse.default=ofn});var R5e=w(Qse=>{"use strict";Object.defineProperty(Qse,"__esModule",{value:!0});function v5e(e){let t=e.length,n=0,r=0,i;for(;r=55296&&i<=56319&&r{"use strict";Object.defineProperty($se,"__esModule",{value:!0});var z_=Ot(),afn=pn(),cfn=R5e(),ufn={message({keyword:e,schemaCode:t}){let n=e==="maxLength"?"more":"fewer";return(0,z_.str)`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>(0,z_._)`{limit: ${e}}`},lfn={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:ufn,code(e){let{keyword:t,data:n,schemaCode:r,it:i}=e,s=t==="maxLength"?z_.operators.GT:z_.operators.LT,o=i.opts.unicode===!1?(0,z_._)`${n}.length`:(0,z_._)`${(0,afn.useFunc)(e.gen,cfn.default)}(${n})`;e.fail$data((0,z_._)`${o} ${s} ${r}`)}};$se.default=lfn});var w5e=w(eoe=>{"use strict";Object.defineProperty(eoe,"__esModule",{value:!0});var dfn=Sa(),ffn=pn(),fk=Ot(),pfn={message:({schemaCode:e})=>(0,fk.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,fk._)`{pattern: ${e}}`},hfn={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:pfn,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,fk._)`new RegExp`:(0,ffn.useFunc)(t,c),l=t.let("valid");t.try(()=>t.assign(l,(0,fk._)`${u}(${s}, ${a}).test(${n})`),()=>t.assign(l,!1)),e.fail$data((0,fk._)`!${l}`)}else{let c=(0,dfn.usePattern)(e,i);e.fail$data((0,fk._)`!${c}.test(${n})`)}}};eoe.default=hfn});var k5e=w(toe=>{"use strict";Object.defineProperty(toe,"__esModule",{value:!0});var HC=Ot(),mfn={message({keyword:e,schemaCode:t}){let n=e==="maxProperties"?"more":"fewer";return(0,HC.str)`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>(0,HC._)`{limit: ${e}}`},gfn={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:mfn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxProperties"?HC.operators.GT:HC.operators.LT;e.fail$data((0,HC._)`Object.keys(${n}).length ${i} ${r}`)}};toe.default=gfn});var I5e=w(noe=>{"use strict";Object.defineProperty(noe,"__esModule",{value:!0});var qC=Sa(),BC=Ot(),yfn=pn(),Sfn={message:({params:{missingProperty:e}})=>(0,BC.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,BC._)`{missingProperty: ${e}}`},bfn={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Sfn,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,yfn.checkStrictMode)(o,y,o.opts.strictRequired)}}function u(){if(c||s)e.block$data(BC.nil,d);else for(let p of n)(0,qC.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,qC.checkMissingProp)(e,n,p)),(0,qC.reportMissingProp)(e,p),t.else()}function d(){t.forOf("prop",r,p=>{e.setParams({missingProperty:p}),t.if((0,qC.noPropertyInData)(t,i,p,a.ownProperties),()=>e.error())})}function f(p,h){e.setParams({missingProperty:p}),t.forOf(p,r,()=>{t.assign(h,(0,qC.propertyInData)(t,i,p,a.ownProperties)),t.if((0,BC.not)(h),()=>{e.error(),t.break()})},BC.nil)}}};noe.default=bfn});var x5e=w(roe=>{"use strict";Object.defineProperty(roe,"__esModule",{value:!0});var zC=Ot(),Efn={message({keyword:e,schemaCode:t}){let n=e==="maxItems"?"more":"fewer";return(0,zC.str)`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>(0,zC._)`{limit: ${e}}`},_fn={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Efn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxItems"?zC.operators.GT:zC.operators.LT;e.fail$data((0,zC._)`${n}.length ${i} ${r}`)}};roe.default=_fn});var GC=w(ioe=>{"use strict";Object.defineProperty(ioe,"__esModule",{value:!0});var O5e=OC();O5e.code='require("ajv/dist/runtime/equal").default';ioe.default=O5e});var P5e=w(ooe=>{"use strict";Object.defineProperty(ooe,"__esModule",{value:!0});var soe=xC(),Ea=Ot(),Tfn=pn(),vfn=GC(),Rfn={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}}`},Afn={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Rfn,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,soe.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,soe.checkDataTypes)(u,g,a.opts.strictNumbers,soe.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,Tfn.useFunc)(t,vfn.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)})))}}};ooe.default=Afn});var N5e=w(coe=>{"use strict";Object.defineProperty(coe,"__esModule",{value:!0});var aoe=Ot(),wfn=pn(),kfn=GC(),Ifn={message:"must be equal to constant",params:({schemaCode:e})=>(0,aoe._)`{allowedValue: ${e}}`},xfn={keyword:"const",$data:!0,error:Ifn,code(e){let{gen:t,data:n,$data:r,schemaCode:i,schema:s}=e;r||s&&typeof s=="object"?e.fail$data((0,aoe._)`!${(0,wfn.useFunc)(t,kfn.default)}(${n}, ${i})`):e.fail((0,aoe._)`${s} !== ${n}`)}};coe.default=xfn});var C5e=w(uoe=>{"use strict";Object.defineProperty(uoe,"__esModule",{value:!0});var VC=Ot(),Ofn=pn(),Pfn=GC(),Nfn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,VC._)`{allowedValues: ${e}}`},Cfn={keyword:"enum",schemaType:"array",$data:!0,error:Nfn,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,Ofn.useFunc)(t,Pfn.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,VC.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,VC._)`${u()}(${n}, ${p})`,()=>t.assign(l,!0).break()))}function f(p,h){let m=i[h];return typeof m=="object"&&m!==null?(0,VC._)`${u()}(${n}, ${p}[${h}])`:(0,VC._)`${n} === ${m}`}}};uoe.default=Cfn});var M5e=w(loe=>{"use strict";Object.defineProperty(loe,"__esModule",{value:!0});var Mfn=_5e(),Dfn=T5e(),Lfn=A5e(),Ufn=w5e(),Ffn=k5e(),jfn=I5e(),Hfn=x5e(),qfn=P5e(),Bfn=N5e(),zfn=C5e(),Gfn=[Mfn.default,Dfn.default,Lfn.default,Ufn.default,Ffn.default,jfn.default,Hfn.default,qfn.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Bfn.default,zfn.default];loe.default=Gfn});var foe=w(WC=>{"use strict";Object.defineProperty(WC,"__esModule",{value:!0});WC.validateAdditionalItems=void 0;var G_=Ot(),doe=pn(),Vfn={message:({params:{len:e}})=>(0,G_.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,G_._)`{limit: ${e}}`},Wfn={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Vfn,code(e){let{parentSchema:t,it:n}=e,{items:r}=t;if(!Array.isArray(r)){(0,doe.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas');return}D5e(e,r)}};function D5e(e,t){let{gen:n,schema:r,data:i,keyword:s,it:o}=e;o.items=!0;let a=n.const("len",(0,G_._)`${i}.length`);if(r===!1)e.setParams({len:t.length}),e.pass((0,G_._)`${a} <= ${t.length}`);else if(typeof r=="object"&&!(0,doe.alwaysValidSchema)(o,r)){let u=n.var("valid",(0,G_._)`${a} <= ${t.length}`);n.if((0,G_.not)(u),()=>c(u)),e.ok(u)}function c(u){n.forRange("i",t.length,a,l=>{e.subschema({keyword:s,dataProp:l,dataPropType:doe.Type.Num},u),o.allErrors||n.if((0,G_.not)(u),()=>n.break())})}}WC.validateAdditionalItems=D5e;WC.default=Wfn});var poe=w(KC=>{"use strict";Object.defineProperty(KC,"__esModule",{value:!0});KC.validateTuple=void 0;var L5e=Ot(),dV=pn(),Kfn=Sa(),Yfn={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:n}=e;if(Array.isArray(t))return U5e(e,"additionalItems",t);n.items=!0,!(0,dV.alwaysValidSchema)(n,t)&&e.ok((0,Kfn.validateArray)(e))}};function U5e(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=dV.mergeEvaluated.items(r,n.length,a.items));let c=r.name("valid"),u=r.const("len",(0,L5e._)`${s}.length`);n.forEach((d,f)=>{(0,dV.alwaysValidSchema)(a,d)||(r.if((0,L5e._)`${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,dV.checkStrictMode)(a,g,f.strictTuples)}}}KC.validateTuple=U5e;KC.default=Yfn});var F5e=w(hoe=>{"use strict";Object.defineProperty(hoe,"__esModule",{value:!0});var Zfn=poe(),Jfn={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,Zfn.validateTuple)(e,"items")};hoe.default=Jfn});var H5e=w(moe=>{"use strict";Object.defineProperty(moe,"__esModule",{value:!0});var j5e=Ot(),Xfn=pn(),Qfn=Sa(),$fn=foe(),epn={message:({params:{len:e}})=>(0,j5e.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,j5e._)`{limit: ${e}}`},tpn={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:epn,code(e){let{schema:t,parentSchema:n,it:r}=e,{prefixItems:i}=n;r.items=!0,!(0,Xfn.alwaysValidSchema)(r,t)&&(i?(0,$fn.validateAdditionalItems)(e,i):e.ok((0,Qfn.validateArray)(e)))}};moe.default=tpn});var q5e=w(goe=>{"use strict";Object.defineProperty(goe,"__esModule",{value:!0});var _d=Ot(),fV=pn(),npn={message:({params:{min:e,max:t}})=>t===void 0?(0,_d.str)`must contain at least ${e} valid item(s)`:(0,_d.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,_d._)`{minContains: ${e}}`:(0,_d._)`{minContains: ${e}, maxContains: ${t}}`},rpn={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:npn,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,_d._)`${i}.length`);if(e.setParams({min:o,max:a}),a===void 0&&o===0){(0,fV.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&o>a){(0,fV.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,fV.alwaysValidSchema)(s,n)){let m=(0,_d._)`${l} >= ${o}`;a!==void 0&&(m=(0,_d._)`${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,_d._)`${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:fV.Type.Num,compositeRule:!0},m),g()})}function h(m){t.code((0,_d._)`${m}++`),a===void 0?t.if((0,_d._)`${m} >= ${o}`,()=>t.assign(d,!0).break()):(t.if((0,_d._)`${m} > ${a}`,()=>t.assign(d,!1).break()),o===1?t.assign(d,!0):t.if((0,_d._)`${m} >= ${o}`,()=>t.assign(d,!0)))}}};goe.default=rpn});var G5e=w(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0});mh.validateSchemaDeps=mh.validatePropertyDeps=mh.error=void 0;var yoe=Ot(),ipn=pn(),YC=Sa();mh.error={message:({params:{property:e,depsCount:t,deps:n}})=>{let r=t===1?"property":"properties";return(0,yoe.str)`must have ${r} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:r}})=>(0,yoe._)`{property: ${e}, missingProperty: ${r}, depsCount: ${t}, - deps: ${n}}`};var rpn={keyword:"dependencies",type:"object",schemaType:"object",error:mh.error,code(e){let[t,n]=ipn(e);H5e(e,t),q5e(e,n)}};function ipn({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 H5e(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,YC.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,YC.checkReportMissingProp)(e,u)}):(n.if((0,goe._)`${c} && (${(0,YC.checkMissingProp)(e,a,s)})`),(0,YC.reportMissingProp)(e,s),n.else())}}mh.validatePropertyDeps=H5e;function q5e(e,t=e.schema){let{gen:n,data:r,keyword:i,it:s}=e,o=n.name("valid");for(let a in t)(0,npn.alwaysValidSchema)(s,t[a])||(n.if((0,YC.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=q5e;mh.default=rpn});var G5e=w(yoe=>{"use strict";Object.defineProperty(yoe,"__esModule",{value:!0});var z5e=Ot(),spn=pn(),opn={message:"property name must be valid",params:({params:e})=>(0,z5e._)`{propertyName: ${e.propertyName}}`},apn={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:opn,code(e){let{gen:t,schema:n,data:r,it:i}=e;if((0,spn.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,z5e.not)(s),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(s)}};yoe.default=apn});var boe=w(Soe=>{"use strict";Object.defineProperty(Soe,"__esModule",{value:!0});var pV=Sa(),kf=Ot(),cpn=bd(),hV=pn(),upn={message:"must NOT have additional properties",params:({params:e})=>(0,kf._)`{additionalProperty: ${e.additionalProperty}}`},lpn={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:upn,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,hV.alwaysValidSchema)(o,n))return;let u=(0,pV.allSchemaProperties)(r.properties),l=(0,pV.allSchemaProperties)(r.patternProperties);d(),e.ok((0,kf._)`${s} === ${cpn.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,hV.schemaRefOrVal)(o,r.properties,"properties");y=(0,pV.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,pV.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,hV.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:hV.Type.Str};b===!1&&Object.assign(S,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(S,y)}}};Soe.default=lpn});var K5e=w(_oe=>{"use strict";Object.defineProperty(_oe,"__esModule",{value:!0});var dpn=ck(),V5e=Sa(),Eoe=pn(),W5e=boe(),fpn={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&&W5e.default.code(new dpn.KeywordCxt(s,W5e.default,"additionalProperties"));let o=(0,V5e.allSchemaProperties)(n);for(let d of o)s.definedProperties.add(d);s.opts.unevaluated&&o.length&&s.props!==!0&&(s.props=Eoe.mergeEvaluated.props(t,(0,Eoe.toHash)(o),s.props));let a=o.filter(d=>!(0,Eoe.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,V5e.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)}}};_oe.default=fpn});var X5e=w(Toe=>{"use strict";Object.defineProperty(Toe,"__esModule",{value:!0});var Y5e=Sa(),mV=Ot(),Z5e=pn(),J5e=pn(),ppn={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,Y5e.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 mV.Name)&&(s.props=(0,J5e.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,mV._)`${(0,Y5e.usePattern)(e,m)}.test(${g})`,()=>{let y=c.includes(m);y||e.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:J5e.Type.Str},l),s.opts.unevaluated&&d!==!0?t.assign((0,mV._)`${d}[${g}]`,!0):!y&&!s.allErrors&&t.if((0,mV.not)(l),()=>t.break())})})}}};Toe.default=ppn});var Q5e=w(voe=>{"use strict";Object.defineProperty(voe,"__esModule",{value:!0});var hpn=pn(),mpn={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:n,it:r}=e;if((0,hpn.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"}};voe.default=mpn});var $5e=w(Roe=>{"use strict";Object.defineProperty(Roe,"__esModule",{value:!0});var gpn=Sa(),ypn={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:gpn.validateUnion,error:{message:"must match a schema in anyOf"}};Roe.default=ypn});var e8e=w(Aoe=>{"use strict";Object.defineProperty(Aoe,"__esModule",{value:!0});var gV=Ot(),Spn=pn(),bpn={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,gV._)`{passingSchemas: ${e.passing}}`},Epn={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:bpn,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,Spn.alwaysValidSchema)(i,l)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,gV._)`${c} && ${o}`).assign(o,!1).assign(a,(0,gV._)`[${a}, ${d}]`).else(),t.if(c,()=>{t.assign(o,!0),t.assign(a,d),f&&e.mergeEvaluated(f,gV.Name)})})}}};Aoe.default=Epn});var t8e=w(woe=>{"use strict";Object.defineProperty(woe,"__esModule",{value:!0});var _pn=pn(),Tpn={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,_pn.alwaysValidSchema)(r,s))return;let a=e.subschema({keyword:"allOf",schemaProp:o},i);e.ok(i),e.mergeEvaluated(a)})}};woe.default=Tpn});var i8e=w(koe=>{"use strict";Object.defineProperty(koe,"__esModule",{value:!0});var yV=Ot(),r8e=pn(),vpn={message:({params:e})=>(0,yV.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,yV._)`{failingKeyword: ${e.ifClause}}`},Rpn={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:vpn,code(e){let{gen:t,parentSchema:n,it:r}=e;n.then===void 0&&n.else===void 0&&(0,r8e.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=n8e(r,"then"),s=n8e(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,yV.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,yV._)`${l}`):e.setParams({ifClause:l})}}}};function n8e(e,t){let n=e.schema[t];return n!==void 0&&!(0,r8e.alwaysValidSchema)(e,n)}koe.default=Rpn});var s8e=w(Ioe=>{"use strict";Object.defineProperty(Ioe,"__esModule",{value:!0});var Apn=pn(),wpn={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,Apn.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};Ioe.default=wpn});var o8e=w(xoe=>{"use strict";Object.defineProperty(xoe,"__esModule",{value:!0});var kpn=doe(),Ipn=L5e(),xpn=foe(),Opn=F5e(),Ppn=j5e(),Npn=B5e(),Cpn=G5e(),Mpn=boe(),Dpn=K5e(),Lpn=X5e(),Upn=Q5e(),Fpn=$5e(),jpn=e8e(),Hpn=t8e(),qpn=i8e(),Bpn=s8e();function zpn(e=!1){let t=[Upn.default,Fpn.default,jpn.default,Hpn.default,qpn.default,Bpn.default,Cpn.default,Mpn.default,Npn.default,Dpn.default,Lpn.default];return e?t.push(Ipn.default,Opn.default):t.push(kpn.default,xpn.default),t.push(Ppn.default),t}xoe.default=zpn});var a8e=w(Ooe=>{"use strict";Object.defineProperty(Ooe,"__esModule",{value:!0});var Cs=Ot(),Gpn={message:({schemaCode:e})=>(0,Cs.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,Cs._)`{format: ${e}}`},Vpn={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:Gpn,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})`}}}};Ooe.default=Vpn});var c8e=w(Poe=>{"use strict";Object.defineProperty(Poe,"__esModule",{value:!0});var Wpn=a8e(),Kpn=[Wpn.default];Poe.default=Kpn});var u8e=w(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});pk.contentVocabulary=pk.metadataVocabulary=void 0;pk.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];pk.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var d8e=w(Noe=>{"use strict";Object.defineProperty(Noe,"__esModule",{value:!0});var Ypn=S5e(),Zpn=N5e(),Jpn=o8e(),Xpn=c8e(),l8e=u8e(),Qpn=[Ypn.default,Zpn.default,(0,Jpn.default)(),Xpn.default,l8e.metadataVocabulary,l8e.contentVocabulary];Noe.default=Qpn});var Coe=w(SV=>{"use strict";Object.defineProperty(SV,"__esModule",{value:!0});SV.DiscrError=void 0;var f8e;(function(e){e.Tag="tag",e.Mapping="mapping"})(f8e||(SV.DiscrError=f8e={}))});var h8e=w(Doe=>{"use strict";Object.defineProperty(Doe,"__esModule",{value:!0});var hk=Ot(),Moe=Coe(),p8e=q_(),$pn=Zm(),ehn=pn(),thn={message:({params:{discrError:e,tagName:t}})=>e===Moe.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,hk._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},nhn={keyword:"discriminator",type:"object",schemaType:"object",error:thn,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,hk._)`${n}${(0,hk.getProperty)(a)}`);t.if((0,hk._)`typeof ${u} == "string"`,()=>l(),()=>e.error(!1,{discrError:Moe.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,hk._)`${u} === ${h}`),t.assign(c,d(p[h]));t.else(),e.error(!1,{discrError:Moe.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,hk.Name),h}function f(){var p;let h={},m=y(i),g=!0;for(let E=0;E{rhn.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 V_=w((yi,Loe)=>{"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 ihn=Vse(),shn=d8e(),ohn=h8e(),g8e=m8e(),ahn=["/properties"],bV="http://json-schema.org/draft-07/schema",mk=class extends ihn.default{_addVocabularies(){super._addVocabularies(),shn.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(ohn.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(g8e,ahn):g8e;this.addMetaSchema(t,bV,!1),this.refs["http://json-schema.org/schema"]=bV}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(bV)?bV:void 0)}};yi.Ajv=mk;Loe.exports=yi=mk;Loe.exports.Ajv=mk;Object.defineProperty(yi,"__esModule",{value:!0});yi.default=mk;var chn=ck();Object.defineProperty(yi,"KeywordCxt",{enumerable:!0,get:function(){return chn.KeywordCxt}});var gk=Ot();Object.defineProperty(yi,"_",{enumerable:!0,get:function(){return gk._}});Object.defineProperty(yi,"str",{enumerable:!0,get:function(){return gk.str}});Object.defineProperty(yi,"stringify",{enumerable:!0,get:function(){return gk.stringify}});Object.defineProperty(yi,"nil",{enumerable:!0,get:function(){return gk.nil}});Object.defineProperty(yi,"Name",{enumerable:!0,get:function(){return gk.Name}});Object.defineProperty(yi,"CodeGen",{enumerable:!0,get:function(){return gk.CodeGen}});var uhn=MC();Object.defineProperty(yi,"ValidationError",{enumerable:!0,get:function(){return uhn.default}});var lhn=Zm();Object.defineProperty(yi,"MissingRefError",{enumerable:!0,get:function(){return lhn.default}})});var EV=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(E8e,Hoe),time:gh(Foe(!0),qoe),"date-time":gh(y8e(!0),T8e),"iso-time":gh(Foe(),_8e),"iso-date-time":gh(y8e(),v8e),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:ghn,"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:vhn,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:yhn,int32:{type:"number",validate:Ehn},int64:{type:"number",validate:_hn},float:{type:"number",validate:b8e},double:{type:"number",validate:b8e},password:!0,binary:!0};yh.fastFormats={...yh.fullFormats,date:gh(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,Hoe),time:gh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,qoe),"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,T8e),"iso-time":gh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,_8e),"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,v8e),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 dhn(e){return e%4===0&&(e%100!==0||e%400===0)}var fhn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,phn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function E8e(e){let t=fhn.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&&dhn(n)?29:phn[r])}function Hoe(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 qoe(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 _8e(e,t){if(!(e&&t))return;let n=Uoe.exec(e),r=Uoe.exec(t);if(n&&r)return e=n[1]+n[2]+n[3],t=r[1]+r[2]+r[3],e>t?1:e=Shn}function _hn(e){return Number.isInteger(e)}function b8e(){return!0}var Thn=/[^\\]\\Z/;function vhn(e){if(Thn.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var R8e=w(yk=>{"use strict";Object.defineProperty(yk,"__esModule",{value:!0});yk.formatLimitDefinition=void 0;var Rhn=V_(),If=Ot(),HS=If.operators,_V={formatMaximum:{okStr:"<=",ok:HS.LTE,fail:HS.GT},formatMinimum:{okStr:">=",ok:HS.GTE,fail:HS.LT},formatExclusiveMaximum:{okStr:"<",ok:HS.LT,fail:HS.GTE},formatExclusiveMinimum:{okStr:">",ok:HS.GT,fail:HS.LTE}},Ahn={message:({keyword:e,schemaCode:t})=>(0,If.str)`should be ${_V[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,If._)`{comparison: ${_V[e].okStr}, limit: ${t}}`};yk.formatLimitDefinition={keyword:Object.keys(_V),type:"string",schemaType:"string",$data:!0,error:Ahn,code(e){let{gen:t,data:n,schemaCode:r,keyword:i,it:s}=e,{opts:o,self:a}=s;if(!o.validateFormats)return;let c=new Rhn.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}) ${_V[i].fail} 0`}},dependencies:["format"]};var whn=e=>(e.addKeyword(yk.formatLimitDefinition),e);yk.default=whn});var TV=w((ZC,k8e)=>{"use strict";Object.defineProperty(ZC,"__esModule",{value:!0});var Sk=EV(),khn=R8e(),Boe=Ot(),A8e=new Boe.Name("fullFormats"),Ihn=new Boe.Name("fastFormats"),zoe=(e,t={keywords:!0})=>{if(Array.isArray(t))return w8e(e,t,Sk.fullFormats,A8e),e;let[n,r]=t.mode==="fast"?[Sk.fastFormats,Ihn]:[Sk.fullFormats,A8e],i=t.formats||Sk.formatNames;return w8e(e,i,n,r),t.keywords&&(0,khn.default)(e),e};zoe.get=(e,t="full")=>{let r=(t==="fast"?Sk.fastFormats:Sk.fullFormats)[e];if(!r)throw new Error(`Unknown format "${e}"`);return r};function w8e(e,t,n,r){var i,s;(i=(s=e.opts.code).formats)!==null&&i!==void 0||(s.formats=(0,Boe._)`require("ajv-formats/dist/formats").${r}`);for(let o of t)e.addFormat(o,n[o])}k8e.exports=ZC=zoe;Object.defineProperty(ZC,"__esModule",{value:!0});ZC.default=zoe});function xhn(){let e=new I8e.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,x8e.default)(e),e}var I8e,x8e,vV,O8e=v(()=>{I8e=Re(V_(),1),x8e=Re(TV(),1);vV=class{constructor(t){this._ajv=t??xhn()}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 RV,P8e=v(()=>{C_();RV=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},bC,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},$w,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 N8e(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 C8e(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 M8e=v(()=>{});var AV,D8e=v(()=>{YZe();C_();O8e();y2();P8e();M8e();AV=class extends H2{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(aie,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(yie,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 RV(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=KZe(this._capabilities,t)}setRequestHandler(t,n){let i=g2(t)?.method;if(!i)throw new Error("Schema is missing a method literal");let s;if(Zw(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=xS(yC,c);if(!l.success){let h=l.error instanceof Error?l.error.message:String(l.error);throw new rn(Sn.InvalidParams,`Invalid tools/call request: ${h}`)}let{params:d}=l.data,f=await Promise.resolve(n(c,u));if(d.task){let h=xS(Xw,f);if(!h.success){let m=h.error instanceof Error?h.error.message:String(h.error);throw new rn(Sn.InvalidParams,`Invalid task creation result: ${m}`)}return h.data}let p=xS(C2,f);if(!p.success){let h=p.error instanceof Error?p.error.message:String(p.error);throw new rn(Sn.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){C8e(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&N8e(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:wZe.includes(n)?n:tie,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"},v2)}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},Sie,n):this.request({method:"sampling/createMessage",params:t},bC,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},$w,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},$w,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(Sn.InvalidParams,`Elicitation response content does not match requested schema: ${a.errorMessage}`)}catch(o){throw o instanceof rn?o:new rn(Sn.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},Eie,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 MZe.parse(JSON.parse(e))}function L8e(e){return JSON.stringify(e)+` -`}var wV,U8e=v(()=>{C_();wV=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 F8e from"node:process";var kV,j8e=v(()=>{U8e();kV=class{constructor(t=F8e.stdin,n=F8e.stdout){this._stdin=t,this._stdout=n,this._readBuffer=new wV,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=L8e(t);this._stdout.write(r)?n():this._stdout.once("drain",n)})}}});var q8e=w((JWr,Goe)=>{"use strict";var Phn=/at\s(?:.*\.)?plugin\s.*\n\s*(.*)/,Nhn=/(\w*(\.\w*)*)\..*/;Goe.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,H8e(r.stack)}};function H8e(e){let t=e.match(Phn);return t?t[1].split(/[/\\]/).slice(-1)[0].match(Nhn)[1]:"anonymous"}Goe.exports.extractPluginName=H8e});var z8e=w((XWr,B8e)=>{"use strict";B8e.exports=function(t){return t[0]==="@"&&(t=t.slice(1).replace("/","-")),t.replace(/-(.)/g,function(n,r){return r.toUpperCase()})}});var JC=w((QWr,IV)=>{"use strict";var Chn=q8e(),Mhn=z8e(),Dhn=0;function Voe(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=Chn(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=Mhn(t.name);return!n&&!e[r]&&(e[r]=e),e}IV.exports=Voe;IV.exports.default=Voe;IV.exports.fastifyPlugin=Voe});var NV=w(Sh=>{"use strict";var Woe=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}},Koe=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}},XC=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}},xV=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 G8e(e){return`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}-${e.getDate().toString().padStart(2,"0")}`}var Yoe=class{constructor(t,n,r){this.cacheId=t,this.statisticTtlInHours=n,this.collectionStart=new Date,this.currentTimeStamp=G8e(this.collectionStart),this.records=r||new xV,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=G8e(this.collectionStart),this.records.initForCache(this.cacheId,this.currentTimeStamp))}},OV=class extends XC{constructor(t,n,r,i,s){if(super(t||1e3,n||0),!r)throw new Error("Cache id is mandatory");this.hitStatistics=new Yoe(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()}},PV=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=PV;Sh.FifoMap=Woe;Sh.FifoObject=PV;Sh.HitStatisticsRecord=xV;Sh.Lru=XC;Sh.LruHitStatistics=OV;Sh.LruMap=Koe;Sh.LruObject=XC;Sh.LruObjectHitStatistics=OV});var W8e=w((e4r,QC)=>{"use strict";var{FifoMap:Lhn}=NV(),Uhn=/^[!#$%&'*+\-.^\w`|~]+$/u;function Fhn(e){if(Uhn.test(e)===!1)throw new TypeError("Fieldname contains invalid characters.")}function V8e(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 jhn=JC(),{addAccessControlRequestHeadersToVaryHeader:Hhn,addOriginToVaryHeader:qhn}=W8e(),Xoe={origin:"*",methods:"GET,HEAD,POST",hook:"onRequest",preflightContinue:!1,optionsSuccessStatus:204,credentials:!1,exposedHeaders:null,allowedHeaders:null,maxAge:null,preflight:!0,strictPreflight:!0},Bhn=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend"],Joe=["preSerialization","preParsing","onSend"];function Z8e(e,t){Bhn.indexOf(e)===-1&&t(new TypeError("@fastify/cors: Invalid hook option provided."))}function zhn(e,t,n){e.decorateRequest("corsPreflightEnabled",!1);let r=!0,i;if(typeof t=="function")K8e(t,e,{hook:Xoe.hook},n);else if(t.delegator){let{delegator:s,...o}=t;K8e(s,e,o,n)}else{let s=CV(t);Z8e(s.hook,n),Joe.indexOf(s.hook)!==-1?e.addHook(s.hook,function(a,c,u,l){$C(e,s,a,c,l)}):e.addHook(s.hook,function(a,c,u){$C(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 K8e(e,t,n,r){let i=n?.hook||Xoe.hook;Z8e(i,r),e.length===2?Joe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){Y8e(e,t,o,a,u)}):t.addHook(i,function(o,a,c){Y8e(e,t,o,a,c)}):Joe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){let l=e(o);if(l&&typeof l.then=="function"){l.then(d=>$C(t,CV(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=>$C(t,CV(l,!0),o,a,c)).catch(c);return}c(new Error("Invalid CORS origin option"))})}function Y8e(e,t,n,r,i){e(n,(s,o)=>{s?i(s):$C(t,CV(o,!0),n,r,i)})}function CV(e,t){let n={...Xoe,...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 $C(e,t,n,r,i){let s={...t,...n.routeOptions.config?.cors};(typeof s.origin!="string"&&s.origin!==!1||s.dynamic)&&qhn(r),(typeof s.origin=="function"?Whn(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(Ghn(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,Vhn(n,r,s),!s.preflightContinue){r.code(s.optionsSuccessStatus).header("Content-Length","0").send();return}}return i()})}function Ghn(e,t,n,r){let i=Khn(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 Vhn(e,t,n){if(t.header("Access-Control-Allow-Methods",Array.isArray(n.methods)?n.methods.join(", "):n.methods),n.allowedHeaders===null){Hhn(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 Whn(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 Khn(e,t){return typeof t=="string"?t:J8e(e,t)?e:!1}function J8e(e,t){if(Array.isArray(t)){for(let n=0;n{var Yhn=/^(-?(?:\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?)?)?$/,DV=1e3,LV=DV*60,UV=LV*60,tM=UV*24,$oe=tM*365.25;function Zhn(e){var t,n=e.toLowerCase().match(Yhn);if(n!=null&&(t=parseFloat(n[1])))return n[3]!=null?t*DV:n[4]!=null?t*LV:n[5]!=null?t*UV:n[6]!=null?t*tM:n[7]!=null?t*tM*7:n[8]!=null?t*$oe:t}function eM(e,t,n,r){var i=(e|0)===e?e:~~(e+.5);return t+i+(r?" "+n+(i!=1?"s":""):n[0])}function Jhn(e,t){var n=e<0?"-":"",r=e<0?-e:e;return r{"use strict";var{LruMap:Xhn}=NV();function FV(e,t,n=5e3){this.continueExceeding=e,this.exponentialBackoff=t,this.lru=new Xhn(n)}FV.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)};FV.prototype.child=function(e){return new FV(e.continueExceeding,e.exponentialBackoff,e.cache)};$8e.exports=FV});var n7e=w((i4r,t7e)=>{"use strict";var Qhn=` + deps: ${n}}`};var spn={keyword:"dependencies",type:"object",schemaType:"object",error:mh.error,code(e){let[t,n]=opn(e);B5e(e,t),z5e(e,n)}};function opn({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 B5e(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,YC.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,YC.checkReportMissingProp)(e,u)}):(n.if((0,yoe._)`${c} && (${(0,YC.checkMissingProp)(e,a,s)})`),(0,YC.reportMissingProp)(e,s),n.else())}}mh.validatePropertyDeps=B5e;function z5e(e,t=e.schema){let{gen:n,data:r,keyword:i,it:s}=e,o=n.name("valid");for(let a in t)(0,ipn.alwaysValidSchema)(s,t[a])||(n.if((0,YC.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=z5e;mh.default=spn});var W5e=w(Soe=>{"use strict";Object.defineProperty(Soe,"__esModule",{value:!0});var V5e=Ot(),apn=pn(),cpn={message:"property name must be valid",params:({params:e})=>(0,V5e._)`{propertyName: ${e.propertyName}}`},upn={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:cpn,code(e){let{gen:t,schema:n,data:r,it:i}=e;if((0,apn.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,V5e.not)(s),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(s)}};Soe.default=upn});var Eoe=w(boe=>{"use strict";Object.defineProperty(boe,"__esModule",{value:!0});var pV=Sa(),kf=Ot(),lpn=bd(),hV=pn(),dpn={message:"must NOT have additional properties",params:({params:e})=>(0,kf._)`{additionalProperty: ${e.additionalProperty}}`},fpn={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:dpn,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,hV.alwaysValidSchema)(o,n))return;let u=(0,pV.allSchemaProperties)(r.properties),l=(0,pV.allSchemaProperties)(r.patternProperties);d(),e.ok((0,kf._)`${s} === ${lpn.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,hV.schemaRefOrVal)(o,r.properties,"properties");y=(0,pV.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,pV.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,hV.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:hV.Type.Str};b===!1&&Object.assign(S,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(S,y)}}};boe.default=fpn});var Z5e=w(Toe=>{"use strict";Object.defineProperty(Toe,"__esModule",{value:!0});var ppn=ck(),K5e=Sa(),_oe=pn(),Y5e=Eoe(),hpn={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&&Y5e.default.code(new ppn.KeywordCxt(s,Y5e.default,"additionalProperties"));let o=(0,K5e.allSchemaProperties)(n);for(let d of o)s.definedProperties.add(d);s.opts.unevaluated&&o.length&&s.props!==!0&&(s.props=_oe.mergeEvaluated.props(t,(0,_oe.toHash)(o),s.props));let a=o.filter(d=>!(0,_oe.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,K5e.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)}}};Toe.default=hpn});var $5e=w(voe=>{"use strict";Object.defineProperty(voe,"__esModule",{value:!0});var J5e=Sa(),mV=Ot(),X5e=pn(),Q5e=pn(),mpn={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,J5e.allSchemaProperties)(n),c=a.filter(m=>(0,X5e.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 mV.Name)&&(s.props=(0,Q5e.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,X5e.checkStrictMode)(s,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){t.forIn("key",r,g=>{t.if((0,mV._)`${(0,J5e.usePattern)(e,m)}.test(${g})`,()=>{let y=c.includes(m);y||e.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:Q5e.Type.Str},l),s.opts.unevaluated&&d!==!0?t.assign((0,mV._)`${d}[${g}]`,!0):!y&&!s.allErrors&&t.if((0,mV.not)(l),()=>t.break())})})}}};voe.default=mpn});var e8e=w(Roe=>{"use strict";Object.defineProperty(Roe,"__esModule",{value:!0});var gpn=pn(),ypn={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:n,it:r}=e;if((0,gpn.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"}};Roe.default=ypn});var t8e=w(Aoe=>{"use strict";Object.defineProperty(Aoe,"__esModule",{value:!0});var Spn=Sa(),bpn={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Spn.validateUnion,error:{message:"must match a schema in anyOf"}};Aoe.default=bpn});var n8e=w(woe=>{"use strict";Object.defineProperty(woe,"__esModule",{value:!0});var gV=Ot(),Epn=pn(),_pn={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,gV._)`{passingSchemas: ${e.passing}}`},Tpn={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:_pn,code(e){let{gen:t,schema:n,parentSchema:r,it:i}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(i.opts.discriminator&&r.discriminator)return;let s=n,o=t.let("valid",!1),a=t.let("passing",null),c=t.name("_valid");e.setParams({passing:a}),t.block(u),e.result(o,()=>e.reset(),()=>e.error(!0));function u(){s.forEach((l,d)=>{let f;(0,Epn.alwaysValidSchema)(i,l)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,gV._)`${c} && ${o}`).assign(o,!1).assign(a,(0,gV._)`[${a}, ${d}]`).else(),t.if(c,()=>{t.assign(o,!0),t.assign(a,d),f&&e.mergeEvaluated(f,gV.Name)})})}}};woe.default=Tpn});var r8e=w(koe=>{"use strict";Object.defineProperty(koe,"__esModule",{value:!0});var vpn=pn(),Rpn={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,vpn.alwaysValidSchema)(r,s))return;let a=e.subschema({keyword:"allOf",schemaProp:o},i);e.ok(i),e.mergeEvaluated(a)})}};koe.default=Rpn});var o8e=w(Ioe=>{"use strict";Object.defineProperty(Ioe,"__esModule",{value:!0});var yV=Ot(),s8e=pn(),Apn={message:({params:e})=>(0,yV.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,yV._)`{failingKeyword: ${e.ifClause}}`},wpn={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Apn,code(e){let{gen:t,parentSchema:n,it:r}=e;n.then===void 0&&n.else===void 0&&(0,s8e.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=i8e(r,"then"),s=i8e(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,yV.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,yV._)`${l}`):e.setParams({ifClause:l})}}}};function i8e(e,t){let n=e.schema[t];return n!==void 0&&!(0,s8e.alwaysValidSchema)(e,n)}Ioe.default=wpn});var a8e=w(xoe=>{"use strict";Object.defineProperty(xoe,"__esModule",{value:!0});var kpn=pn(),Ipn={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,kpn.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};xoe.default=Ipn});var c8e=w(Ooe=>{"use strict";Object.defineProperty(Ooe,"__esModule",{value:!0});var xpn=foe(),Opn=F5e(),Ppn=poe(),Npn=H5e(),Cpn=q5e(),Mpn=G5e(),Dpn=W5e(),Lpn=Eoe(),Upn=Z5e(),Fpn=$5e(),jpn=e8e(),Hpn=t8e(),qpn=n8e(),Bpn=r8e(),zpn=o8e(),Gpn=a8e();function Vpn(e=!1){let t=[jpn.default,Hpn.default,qpn.default,Bpn.default,zpn.default,Gpn.default,Dpn.default,Lpn.default,Mpn.default,Upn.default,Fpn.default];return e?t.push(Opn.default,Npn.default):t.push(xpn.default,Ppn.default),t.push(Cpn.default),t}Ooe.default=Vpn});var u8e=w(Poe=>{"use strict";Object.defineProperty(Poe,"__esModule",{value:!0});var Cs=Ot(),Wpn={message:({schemaCode:e})=>(0,Cs.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,Cs._)`{format: ${e}}`},Kpn={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:Wpn,code(e,t){let{gen:n,data:r,$data:i,schema:s,schemaCode:o,it:a}=e,{opts:c,errSchemaPath:u,schemaEnv:l,self:d}=a;if(!c.validateFormats)return;i?f():p();function f(){let h=n.scopeValue("formats",{ref:d.formats,code:c.code.formats}),m=n.const("fDef",(0,Cs._)`${h}[${o}]`),g=n.let("fType"),y=n.let("format");n.if((0,Cs._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>n.assign(g,(0,Cs._)`${m}.type || "string"`).assign(y,(0,Cs._)`${m}.validate`),()=>n.assign(g,(0,Cs._)`"string"`).assign(y,m)),e.fail$data((0,Cs.or)(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})`}}}};Poe.default=Kpn});var l8e=w(Noe=>{"use strict";Object.defineProperty(Noe,"__esModule",{value:!0});var Ypn=u8e(),Zpn=[Ypn.default];Noe.default=Zpn});var d8e=w(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});pk.contentVocabulary=pk.metadataVocabulary=void 0;pk.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];pk.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var p8e=w(Coe=>{"use strict";Object.defineProperty(Coe,"__esModule",{value:!0});var Jpn=E5e(),Xpn=M5e(),Qpn=c8e(),$pn=l8e(),f8e=d8e(),ehn=[Jpn.default,Xpn.default,(0,Qpn.default)(),$pn.default,f8e.metadataVocabulary,f8e.contentVocabulary];Coe.default=ehn});var Moe=w(SV=>{"use strict";Object.defineProperty(SV,"__esModule",{value:!0});SV.DiscrError=void 0;var h8e;(function(e){e.Tag="tag",e.Mapping="mapping"})(h8e||(SV.DiscrError=h8e={}))});var g8e=w(Loe=>{"use strict";Object.defineProperty(Loe,"__esModule",{value:!0});var hk=Ot(),Doe=Moe(),m8e=q_(),thn=Zm(),nhn=pn(),rhn={message:({params:{discrError:e,tagName:t}})=>e===Doe.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,hk._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},ihn={keyword:"discriminator",type:"object",schemaType:"object",error:rhn,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,hk._)`${n}${(0,hk.getProperty)(a)}`);t.if((0,hk._)`typeof ${u} == "string"`,()=>l(),()=>e.error(!1,{discrError:Doe.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,hk._)`${u} === ${h}`),t.assign(c,d(p[h]));t.else(),e.error(!1,{discrError:Doe.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,hk.Name),h}function f(){var p;let h={},m=y(i),g=!0;for(let E=0;E{shn.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 V_=w((yi,Uoe)=>{"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 ohn=Wse(),ahn=p8e(),chn=g8e(),S8e=y8e(),uhn=["/properties"],bV="http://json-schema.org/draft-07/schema",mk=class extends ohn.default{_addVocabularies(){super._addVocabularies(),ahn.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(chn.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(S8e,uhn):S8e;this.addMetaSchema(t,bV,!1),this.refs["http://json-schema.org/schema"]=bV}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(bV)?bV:void 0)}};yi.Ajv=mk;Uoe.exports=yi=mk;Uoe.exports.Ajv=mk;Object.defineProperty(yi,"__esModule",{value:!0});yi.default=mk;var lhn=ck();Object.defineProperty(yi,"KeywordCxt",{enumerable:!0,get:function(){return lhn.KeywordCxt}});var gk=Ot();Object.defineProperty(yi,"_",{enumerable:!0,get:function(){return gk._}});Object.defineProperty(yi,"str",{enumerable:!0,get:function(){return gk.str}});Object.defineProperty(yi,"stringify",{enumerable:!0,get:function(){return gk.stringify}});Object.defineProperty(yi,"nil",{enumerable:!0,get:function(){return gk.nil}});Object.defineProperty(yi,"Name",{enumerable:!0,get:function(){return gk.Name}});Object.defineProperty(yi,"CodeGen",{enumerable:!0,get:function(){return gk.CodeGen}});var dhn=MC();Object.defineProperty(yi,"ValidationError",{enumerable:!0,get:function(){return dhn.default}});var fhn=Zm();Object.defineProperty(yi,"MissingRefError",{enumerable:!0,get:function(){return fhn.default}})});var EV=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(T8e,qoe),time:gh(joe(!0),Boe),"date-time":gh(b8e(!0),R8e),"iso-time":gh(joe(),v8e),"iso-date-time":gh(b8e(),A8e),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:Shn,"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:Ahn,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:bhn,int32:{type:"number",validate:Thn},int64:{type:"number",validate:vhn},float:{type:"number",validate:_8e},double:{type:"number",validate:_8e},password:!0,binary:!0};yh.fastFormats={...yh.fullFormats,date:gh(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,qoe),time:gh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,Boe),"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,R8e),"iso-time":gh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,v8e),"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,A8e),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};yh.formatNames=Object.keys(yh.fullFormats);function phn(e){return e%4===0&&(e%100!==0||e%400===0)}var hhn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,mhn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function T8e(e){let t=hhn.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&&phn(n)?29:mhn[r])}function qoe(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 Boe(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 v8e(e,t){if(!(e&&t))return;let n=Foe.exec(e),r=Foe.exec(t);if(n&&r)return e=n[1]+n[2]+n[3],t=r[1]+r[2]+r[3],e>t?1:e=Ehn}function vhn(e){return Number.isInteger(e)}function _8e(){return!0}var Rhn=/[^\\]\\Z/;function Ahn(e){if(Rhn.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var w8e=w(yk=>{"use strict";Object.defineProperty(yk,"__esModule",{value:!0});yk.formatLimitDefinition=void 0;var whn=V_(),If=Ot(),HS=If.operators,_V={formatMaximum:{okStr:"<=",ok:HS.LTE,fail:HS.GT},formatMinimum:{okStr:">=",ok:HS.GTE,fail:HS.LT},formatExclusiveMaximum:{okStr:"<",ok:HS.LT,fail:HS.GTE},formatExclusiveMinimum:{okStr:">",ok:HS.GT,fail:HS.LTE}},khn={message:({keyword:e,schemaCode:t})=>(0,If.str)`should be ${_V[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,If._)`{comparison: ${_V[e].okStr}, limit: ${t}}`};yk.formatLimitDefinition={keyword:Object.keys(_V),type:"string",schemaType:"string",$data:!0,error:khn,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 whn.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}) ${_V[i].fail} 0`}},dependencies:["format"]};var Ihn=e=>(e.addKeyword(yk.formatLimitDefinition),e);yk.default=Ihn});var TV=w((ZC,x8e)=>{"use strict";Object.defineProperty(ZC,"__esModule",{value:!0});var Sk=EV(),xhn=w8e(),zoe=Ot(),k8e=new zoe.Name("fullFormats"),Ohn=new zoe.Name("fastFormats"),Goe=(e,t={keywords:!0})=>{if(Array.isArray(t))return I8e(e,t,Sk.fullFormats,k8e),e;let[n,r]=t.mode==="fast"?[Sk.fastFormats,Ohn]:[Sk.fullFormats,k8e],i=t.formats||Sk.formatNames;return I8e(e,i,n,r),t.keywords&&(0,xhn.default)(e),e};Goe.get=(e,t="full")=>{let r=(t==="fast"?Sk.fastFormats:Sk.fullFormats)[e];if(!r)throw new Error(`Unknown format "${e}"`);return r};function I8e(e,t,n,r){var i,s;(i=(s=e.opts.code).formats)!==null&&i!==void 0||(s.formats=(0,zoe._)`require("ajv-formats/dist/formats").${r}`);for(let o of t)e.addFormat(o,n[o])}x8e.exports=ZC=Goe;Object.defineProperty(ZC,"__esModule",{value:!0});ZC.default=Goe});function Phn(){let e=new O8e.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,P8e.default)(e),e}var O8e,P8e,vV,N8e=v(()=>{O8e=Re(V_(),1),P8e=Re(TV(),1);vV=class{constructor(t){this._ajv=t??Phn()}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 RV,C8e=v(()=>{C_();RV=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},bC,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},$w,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 M8e(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 D8e(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 L8e=v(()=>{});var AV,U8e=v(()=>{JZe();C_();N8e();y2();C8e();L8e();AV=class extends H2{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(cie,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(Sie,async(r,i)=>{let s=i.sessionId||i.requestInfo?.headers["mcp-session-id"]||void 0,{level:o}=r.params,a=SC.safeParse(o);return a.success&&this._loggingLevels.set(s,a.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new RV(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=ZZe(this._capabilities,t)}setRequestHandler(t,n){let i=g2(t)?.method;if(!i)throw new Error("Schema is missing a method literal");let s;if(Zw(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=xS(yC,c);if(!l.success){let h=l.error instanceof Error?l.error.message:String(l.error);throw new rn(Sn.InvalidParams,`Invalid tools/call request: ${h}`)}let{params:d}=l.data,f=await Promise.resolve(n(c,u));if(d.task){let h=xS(Xw,f);if(!h.success){let m=h.error instanceof Error?h.error.message:String(h.error);throw new rn(Sn.InvalidParams,`Invalid task creation result: ${m}`)}return h.data}let p=xS(C2,f);if(!p.success){let h=p.error instanceof Error?p.error.message:String(p.error);throw new rn(Sn.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){D8e(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&M8e(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:IZe.includes(n)?n:nie,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"},v2)}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},bie,n):this.request({method:"sampling/createMessage",params:t},bC,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},$w,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},$w,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(Sn.InvalidParams,`Elicitation response content does not match requested schema: ${a.errorMessage}`)}catch(o){throw o instanceof rn?o:new rn(Sn.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},_ie,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 Nhn(e){return LZe.parse(JSON.parse(e))}function F8e(e){return JSON.stringify(e)+` +`}var wV,j8e=v(()=>{C_();wV=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),Nhn(n)}clear(){this._buffer=void 0}}});import H8e from"node:process";var kV,q8e=v(()=>{j8e();kV=class{constructor(t=H8e.stdin,n=H8e.stdout){this._stdin=t,this._stdout=n,this._readBuffer=new wV,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=F8e(t);this._stdout.write(r)?n():this._stdout.once("drain",n)})}}});var z8e=w((JWr,Voe)=>{"use strict";var Chn=/at\s(?:.*\.)?plugin\s.*\n\s*(.*)/,Mhn=/(\w*(\.\w*)*)\..*/;Voe.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,B8e(r.stack)}};function B8e(e){let t=e.match(Chn);return t?t[1].split(/[/\\]/).slice(-1)[0].match(Mhn)[1]:"anonymous"}Voe.exports.extractPluginName=B8e});var V8e=w((XWr,G8e)=>{"use strict";G8e.exports=function(t){return t[0]==="@"&&(t=t.slice(1).replace("/","-")),t.replace(/-(.)/g,function(n,r){return r.toUpperCase()})}});var JC=w((QWr,IV)=>{"use strict";var Dhn=z8e(),Lhn=V8e(),Uhn=0;function Woe(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=Dhn(e)+"-auto-"+Uhn++),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}IV.exports=Woe;IV.exports.default=Woe;IV.exports.fastifyPlugin=Woe});var NV=w(Sh=>{"use strict";var Koe=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=new Map,this.last=null,this.max=t,this.ttl=n}get size(){return this.items.size}clear(){this.items=new Map,this.first=null,this.last=null}delete(t){if(this.items.has(t)){let n=this.items.get(t);this.items.delete(t),n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;this.items.delete(t.key),this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(this.items.has(t))return this.items.get(t).expiry}get(t){if(this.items.has(t)){let n=this.items.get(t);if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl;return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items.set(t,r),this.size===1?this.first=r:this.last.next=r,this.last=r}},Yoe=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=new Map,this.last=null,this.max=t,this.ttl=n}get size(){return this.items.size}bumpLru(t){if(this.last===t)return;let n=this.last,r=t.next,i=t.prev;this.first===t&&(this.first=r),t.next=null,t.prev=n,n.next=t,i!==null&&(i.next=r),r!==null&&(r.prev=i),this.last=t}clear(){this.items=new Map,this.first=null,this.last=null}delete(t){if(this.items.has(t)){let n=this.items.get(t);this.items.delete(t),n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;this.items.delete(t.key),this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(this.items.has(t))return this.items.get(t).expiry}get(t){if(this.items.has(t)){let n=this.items.get(t);if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return this.bumpLru(n),n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl,this.last!==i&&this.bumpLru(i);return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items.set(t,r),this.size===1?this.first=r:this.last.next=r,this.last=r}},XC=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}},xV=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 Zoe=class{constructor(t,n,r){this.cacheId=t,this.statisticTtlInHours=n,this.collectionStart=new Date,this.currentTimeStamp=W8e(this.collectionStart),this.records=r||new xV,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))}},OV=class extends XC{constructor(t,n,r,i,s){if(super(t||1e3,n||0),!r)throw new Error("Cache id is mandatory");this.hitStatistics=new Zoe(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()}},PV=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=PV;Sh.FifoMap=Koe;Sh.FifoObject=PV;Sh.HitStatisticsRecord=xV;Sh.Lru=XC;Sh.LruHitStatistics=OV;Sh.LruMap=Yoe;Sh.LruObject=XC;Sh.LruObjectHitStatistics=OV});var Y8e=w((e4r,QC)=>{"use strict";var{FifoMap:Fhn}=NV(),jhn=/^[!#$%&'*+\-.^\w`|~]+$/u;function Hhn(e){if(jhn.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 qhn=JC(),{addAccessControlRequestHeadersToVaryHeader:Bhn,addOriginToVaryHeader:zhn}=Y8e(),Qoe={origin:"*",methods:"GET,HEAD,POST",hook:"onRequest",preflightContinue:!1,optionsSuccessStatus:204,credentials:!1,exposedHeaders:null,allowedHeaders:null,maxAge:null,preflight:!0,strictPreflight:!0},Ghn=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend"],Xoe=["preSerialization","preParsing","onSend"];function X8e(e,t){Ghn.indexOf(e)===-1&&t(new TypeError("@fastify/cors: Invalid hook option provided."))}function Vhn(e,t,n){e.decorateRequest("corsPreflightEnabled",!1);let r=!0,i;if(typeof t=="function")Z8e(t,e,{hook:Qoe.hook},n);else if(t.delegator){let{delegator:s,...o}=t;Z8e(s,e,o,n)}else{let s=CV(t);X8e(s.hook,n),Xoe.indexOf(s.hook)!==-1?e.addHook(s.hook,function(a,c,u,l){$C(e,s,a,c,l)}):e.addHook(s.hook,function(a,c,u){$C(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 Z8e(e,t,n,r){let i=n?.hook||Qoe.hook;X8e(i,r),e.length===2?Xoe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){J8e(e,t,o,a,u)}):t.addHook(i,function(o,a,c){J8e(e,t,o,a,c)}):Xoe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){let l=e(o);if(l&&typeof l.then=="function"){l.then(d=>$C(t,CV(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=>$C(t,CV(l,!0),o,a,c)).catch(c);return}c(new Error("Invalid CORS origin option"))})}function J8e(e,t,n,r,i){e(n,(s,o)=>{s?i(s):$C(t,CV(o,!0),n,r,i)})}function CV(e,t){let n={...Qoe,...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 $C(e,t,n,r,i){let s={...t,...n.routeOptions.config?.cors};(typeof s.origin!="string"&&s.origin!==!1||s.dynamic)&&zhn(r),(typeof s.origin=="function"?Yhn(e,s.origin):(a,c)=>c(null,s.origin))(n,(a,c)=>{if(a!==null)return i(a);if(c===!1||n.routeOptions.config?.cors===!1)return i();if(!c)return i(new Error("Invalid CORS origin option"));if(Whn(n,r,c,s),n.raw.method==="OPTIONS"&&s.preflight===!0){if(s.strictPreflight===!0&&(!n.headers.origin||!n.headers["access-control-request-method"])){r.status(400).type("text/plain").send("Invalid Preflight Request");return}if(n.corsPreflightEnabled=!0,Khn(n,r,s),!s.preflightContinue){r.code(s.optionsSuccessStatus).header("Content-Length","0").send();return}}return i()})}function Whn(e,t,n,r){let i=Zhn(e.headers.origin,n);i&&t.header("Access-Control-Allow-Origin",i),r.credentials&&t.header("Access-Control-Allow-Credentials","true"),r.exposedHeaders!==null&&t.header("Access-Control-Expose-Headers",Array.isArray(r.exposedHeaders)?r.exposedHeaders.join(", "):r.exposedHeaders)}function Khn(e,t,n){if(t.header("Access-Control-Allow-Methods",Array.isArray(n.methods)?n.methods.join(", "):n.methods),n.allowedHeaders===null){Bhn(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 Yhn(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 Zhn(e,t){return typeof t=="string"?t:Q8e(e,t)?e:!1}function Q8e(e,t){if(Array.isArray(t)){for(let n=0;n{var Jhn=/^(-?(?:\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?)?)?$/,DV=1e3,LV=DV*60,UV=LV*60,tM=UV*24,eae=tM*365.25;function Xhn(e){var t,n=e.toLowerCase().match(Jhn);if(n!=null&&(t=parseFloat(n[1])))return n[3]!=null?t*DV:n[4]!=null?t*LV:n[5]!=null?t*UV:n[6]!=null?t*tM:n[7]!=null?t*tM*7:n[8]!=null?t*eae:t}function eM(e,t,n,r){var i=(e|0)===e?e:~~(e+.5);return t+i+(r?" "+n+(i!=1?"s":""):n[0])}function Qhn(e,t){var n=e<0?"-":"",r=e<0?-e:e;return r{"use strict";var{LruMap:$hn}=NV();function FV(e,t,n=5e3){this.continueExceeding=e,this.exponentialBackoff=t,this.lru=new $hn(n)}FV.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)};FV.prototype.child=function(e){return new FV(e.continueExceeding,e.exponentialBackoff,e.cache)};t7e.exports=FV});var i7e=w((i4r,r7e)=>{"use strict";var emn=` -- Key to operate on local key = KEYS[1] -- Time window for the TTL @@ -100,21 +100,21 @@ Mongoose Error Code: ${t.code}`:""}`})}function Ste(e,t,n,r=void 0){n&&(0,hN.saf end return {current, timeWindow} -`;function jV(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:Qhn})}jV.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]})})};jV.prototype.child=function(e){return new jV(e.continueExceeding,e.exponentialBackoff,this.redis,`${this.key}${e.routeInfo.method}${e.routeInfo.url}-`)};t7e.exports=jV});var d7e=w((s4r,HV)=>{"use strict";var $hn=JC(),{parse:s7e,format:emn}=Q8e(),tmn=e7e(),nmn=n7e(),o7e=1e3,a7e=6e4,rmn="onRequest",imn={rateLimit:"x-ratelimit-limit",rateRemaining:"x-ratelimit-remaining",rateReset:"x-ratelimit-reset",retryAfter:"retry-after"},smn={rateLimit:"ratelimit-limit",rateRemaining:"ratelimit-remaining",rateReset:"ratelimit-reset",retryAfter:"retry-after"},tae=()=>{},omn=e=>e.ip,amn=(e,t)=>{let n=new Error(`Rate limit exceeded, retry in ${t.after}`);return n.statusCode=t.statusCode,n};async function nae(e,t){let n={global:typeof t.global=="boolean"?t.global:!0};typeof t.enableDraftSpec=="boolean"&&t.enableDraftSpec?(n.enableDraftSpec=!0,n.labels=smn):(n.enableDraftSpec=!1,n.labels=imn),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=o7e,Number.isFinite(t.timeWindow)&&t.timeWindow>=0?n.timeWindow=Math.trunc(t.timeWindow):typeof t.timeWindow=="string"?n.timeWindow=s7e(t.timeWindow):typeof t.timeWindow=="function"?n.timeWindow=t.timeWindow:n.timeWindow=a7e,n.hook=t.hook||rmn,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:tae,n.onExceeding=typeof t.onExceeding=="function"?t.onExceeding:tae,n.onExceeded=typeof t.onExceeded=="function"?t.onExceeded:tae,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:omn,typeof t.errorResponseBuilder=="function"?(n.errorResponseBuilder=t.errorResponseBuilder,n.isCustomErrorMessage=!0):(n.errorResponseBuilder=amn,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 nmn(n.continueExceeding,n.exponentialBackoff,t.redis,t.nameSpace):r.store=new tmn(n.continueExceeding,n.exponentialBackoff,t.cache);e.decorateRequest(r.rateLimitRan,!1),e.hasDecorator("createRateLimit")||e.decorate("createRateLimit",i=>{let s=r7e(r,n,i);return o=>u7e.apply(this,s.concat(o))}),e.hasDecorator("rateLimit")||e.decorate("rateLimit",i=>{let s=r7e(r,n,i);return l7e(...s)}),e.addHook("onRoute",i=>{if(i.config?.rateLimit!=null){if(typeof i.config.rateLimit=="object"){let s=Object.create(r),o=c7e(n,i.config.rateLimit,{routeInfo:i});s.store=r.store.child(o),i7e(s,o,i)}else if(i.config.rateLimit!==!1)throw new Error("Unknown value for route rate-limit configuration")}else n.global&&i7e(r,n,i)})}function c7e(...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=s7e(t.timeWindow):typeof t.timeWindow!="function"&&(t.timeWindow=a7e),Number.isFinite(t.max)&&t.max>=0?t.max=Math.trunc(t.max):typeof t.max!="function"&&(t.max=o7e),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 r7e(e,t,n){if(typeof n=="object"){let r=Object.create(e),i=c7e(t,n,{routeInfo:{}});return r.store=r.store.child(i),[r,i]}return[e,t]}function i7e(e,t,n){let r=t.hook,i=l7e(e,t);Array.isArray(n[r])?n[r].push(i):typeof n[r]=="function"?n[r]=[n[r],i]:n[r]=[i]}async function u7e(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 l7e(e,t){let{rateLimitRan:n}=e;return async(r,i)=>{if(r[n])return;r[n]=!0;let s=await u7e(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:emn(l*1e3,!0)};throw f&&(p.statusCode=403,p.ban=!0,t.onBanReach(r,o)),t.errorResponseBuilder(r,p)}}HV.exports=$hn(nae,{fastify:"5.x",name:"@fastify/rate-limit"});HV.exports.default=nae;HV.exports.fastifyRateLimit=nae});var Xm=w((o4r,h7e)=>{"use strict";var f7e=["nodebuffer","arraybuffer","fragments"],p7e=typeof Blob<"u";p7e&&f7e.push("blob");h7e.exports={BINARY_TYPES:f7e,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:p7e,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var nM=w((a4r,qV)=>{"use strict";var{EMPTY_BUFFER:cmn}=Xm(),rae=Buffer[Symbol.species];function umn(e,t){if(e.length===0)return cmn;if(e.length===1)return e[0];let n=Buffer.allocUnsafe(t),r=0;for(let i=0;i{"use strict";var y7e=Symbol("kDone"),sae=Symbol("kRun"),oae=class{constructor(t){this[y7e]=()=>{this.pending--,this[sae]()},this.concurrency=t||1/0,this.jobs=[],this.pending=0}add(t){this.jobs.push(t),this[sae]()}[sae](){if(this.pending!==this.concurrency&&this.jobs.length){let t=this.jobs.shift();this.pending++,t(this[y7e])}}};S7e.exports=oae});var _k=w((u4r,v7e)=>{"use strict";var rM=Y("zlib"),E7e=nM(),dmn=b7e(),{kStatusCode:_7e}=Xm(),fmn=Buffer[Symbol.species],pmn=Buffer.from([0,0,255,255]),zV=Symbol("permessage-deflate"),Qm=Symbol("total-length"),bk=Symbol("callback"),qS=Symbol("buffers"),Ek=Symbol("error"),BV,aae=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,!BV){let n=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;BV=new dmn(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[bk];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){BV.add(i=>{this._decompress(t,n,(s,o)=>{i(),r(s,o)})})}compress(t,n,r){BV.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"?rM.Z_DEFAULT_WINDOWBITS:this.params[s];this._inflate=rM.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[zV]=this,this._inflate[Qm]=0,this._inflate[qS]=[],this._inflate.on("error",mmn),this._inflate.on("data",T7e)}this._inflate[bk]=r,this._inflate.write(t),n&&this._inflate.write(pmn),this._inflate.flush(()=>{let s=this._inflate[Ek];if(s){this._inflate.close(),this._inflate=null,r(s);return}let o=E7e.concat(this._inflate[qS],this._inflate[Qm]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Qm]=0,this._inflate[qS]=[],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"?rM.Z_DEFAULT_WINDOWBITS:this.params[s];this._deflate=rM.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[Qm]=0,this._deflate[qS]=[],this._deflate.on("data",hmn)}this._deflate[bk]=r,this._deflate.write(t),this._deflate.flush(rM.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let s=E7e.concat(this._deflate[qS],this._deflate[Qm]);n&&(s=new fmn(s.buffer,s.byteOffset,s.length-4)),this._deflate[bk]=null,this._deflate[Qm]=0,this._deflate[qS]=[],n&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),r(null,s)})}};v7e.exports=aae;function hmn(e){this[qS].push(e),this[Qm]+=e.length}function T7e(e){if(this[Qm]+=e.length,this[zV]._maxPayload<1||this[Qm]<=this[zV]._maxPayload){this[qS].push(e);return}this[Ek]=new RangeError("Max payload size exceeded"),this[Ek].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[Ek][_7e]=1009,this.removeListener("data",T7e),this.reset()}function mmn(e){if(this[zV]._inflate=null,this[Ek]){this[bk](this[Ek]);return}e[_7e]=1007,this[bk](e)}});var Tk=w((l4r,GV)=>{"use strict";var{isUtf8:R7e}=Y("buffer"),{hasBlob:gmn}=Xm(),ymn=[0,0,0,0,0,0,0,0,0,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 Smn(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function cae(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 bmn(e){return gmn&&typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}GV.exports={isBlob:bmn,isValidStatusCode:Smn,isValidUTF8:cae,tokenChars:ymn};if(R7e)GV.exports.isValidUTF8=function(e){return e.length<24?cae(e):R7e(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let e=Y("utf-8-validate");GV.exports.isValidUTF8=function(t){return t.length<32?cae(t):e(t)}}catch{}});var pae=w((d4r,P7e)=>{"use strict";var{Writable:Emn}=Y("stream"),A7e=_k(),{BINARY_TYPES:_mn,EMPTY_BUFFER:w7e,kStatusCode:Tmn,kWebSocket:vmn}=Xm(),{concat:uae,toArrayBuffer:Rmn,unmask:Amn}=nM(),{isValidStatusCode:wmn,isValidUTF8:k7e}=Tk(),VV=Buffer[Symbol.species],Td=0,I7e=1,x7e=2,O7e=3,lae=4,dae=5,WV=6,fae=class extends Emn{constructor(t={}){super(),this._allowSynchronousEvents=t.allowSynchronousEvents!==void 0?t.allowSynchronousEvents:!0,this._binaryType=t.binaryType||_mn[0],this._extensions=t.extensions||{},this._isServer=!!t.isServer,this._maxPayload=t.maxPayload|0,this._skipUTF8Validation=!!t.skipUTF8Validation,this[vmn]=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=Td}_write(t,n,r){if(this._opcode===8&&this._state==Td)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 VV(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 Td:this.getInfo(t);break;case I7e:this.getPayloadLength16(t);break;case x7e:this.getPayloadLength64(t);break;case O7e:this.getMask();break;case lae:this.getData(t);break;case dae:case WV: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[A7e.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=I7e:this._payloadLength===127?this._state=x7e: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=O7e:this._state=lae}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=lae}getData(t){let n=w7e;if(this._payloadLength){if(this._bufferedBytes7){this.controlMessage(n,t);return}if(this._compressed){this._state=dae,this.decompress(n,t);return}n.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(n)),this.dataMessage(t)}decompress(t,n){this._extensions[A7e.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===Td&&this.startLoop(n)})}dataMessage(t){if(!this._fin){this._state=Td;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=uae(r,n):this._binaryType==="arraybuffer"?i=Rmn(uae(r,n)):this._binaryType==="blob"?i=new Blob(r):i=r,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=Td):(this._state=WV,setImmediate(()=>{this.emit("message",i,!0),this._state=Td,this.startLoop(t)}))}else{let i=uae(r,n);if(!this._skipUTF8Validation&&!k7e(i)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(s);return}this._state===dae||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=Td):(this._state=WV,setImmediate(()=>{this.emit("message",i,!1),this._state=Td,this.startLoop(t)}))}}controlMessage(t,n){if(this._opcode===8){if(t.length===0)this._loop=!1,this.emit("conclude",1005,w7e),this.end();else{let r=t.readUInt16BE(0);if(!wmn(r)){let s=this.createError(RangeError,`invalid status code ${r}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");n(s);return}let i=new VV(t.buffer,t.byteOffset+2,t.length-2);if(!this._skipUTF8Validation&&!k7e(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=Td;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",t),this._state=Td):(this._state=WV,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",t),this._state=Td,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[Tmn]=i,o}};P7e.exports=fae});var gae=w((p4r,M7e)=>{"use strict";var{Duplex:f4r}=Y("stream"),{randomFillSync:kmn}=Y("crypto"),N7e=_k(),{EMPTY_BUFFER:Imn,kWebSocket:xmn,NOOP:Omn}=Xm(),{isBlob:vk,isValidStatusCode:Pmn}=Tk(),{mask:C7e,toBuffer:W_}=nM(),vd=Symbol("kByteLength"),Nmn=Buffer.alloc(4),KV=8*1024,K_,Rk=KV,xf=0,Cmn=1,Mmn=2,hae=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=Omn,this[xmn]=void 0}static frame(t,n){let r,i=!1,s=2,o=!1;n.mask&&(r=n.maskBuffer||Nmn,n.generateMask?n.generateMask(r):(Rk===KV&&(K_===void 0&&(K_=Buffer.alloc(KV)),kmn(K_,0,KV),Rk=0),r[0]=K_[Rk++],r[1]=K_[Rk++],r[2]=K_[Rk++],r[3]=K_[Rk++]),o=(r[0]|r[1]|r[2]|r[3])===0,s=6);let a;typeof t=="string"?(!n.mask||o)&&n[vd]!==void 0?a=n[vd]:(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?(C7e(t,r,u,s,a),[u]):(C7e(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"||!Pmn(t))throw new TypeError("First argument must be a valid error code number");if(n===void 0||!n.length)s=Buffer.allocUnsafe(2),s.writeUInt16BE(t,0);else{let a=Buffer.byteLength(n);if(a>123)throw new RangeError("The message must not be greater than 123 bytes");s=Buffer.allocUnsafe(2+a),s.writeUInt16BE(t,0),typeof n=="string"?s.write(n,2):s.set(n,2)}}let o={[vd]: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):vk(t)?(i=t.size,s=!1):(t=W_(t),i=t.length,s=W_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[vd]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:s,rsv1:!1};vk(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):vk(t)?(i=t.size,s=!1):(t=W_(t),i=t.length,s=W_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[vd]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:s,rsv1:!1};vk(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[N7e.extensionName],s=n.binary?2:1,o=n.compress,a,c;typeof t=="string"?(a=Buffer.byteLength(t),c=!1):vk(t)?(a=t.size,c=!1):(t=W_(t),a=t.length,c=W_.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={[vd]:a,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:s,readOnly:c,rsv1:o};vk(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[vd],this._state=Mmn,t.arrayBuffer().then(s=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick(mae,this,a,i);return}this._bufferedBytes-=r[vd];let o=W_(s);n?this.dispatch(o,n,r,i):(this._state=xf,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[N7e.extensionName];this._bufferedBytes+=r[vd],this._state=Cmn,s.compress(t,r.fin,(o,a)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");mae(this,c,i);return}this._bufferedBytes-=r[vd],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][vd],Reflect.apply(t[0],this,t.slice(1))}}enqueue(t){this._bufferedBytes+=t[3][vd],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)}};M7e.exports=hae;function mae(e,t,n){typeof n=="function"&&n(t);for(let r=0;r{"use strict";var{kForOnEventAttribute:iM,kListener:yae}=Xm(),D7e=Symbol("kCode"),L7e=Symbol("kData"),U7e=Symbol("kError"),F7e=Symbol("kMessage"),j7e=Symbol("kReason"),Ak=Symbol("kTarget"),H7e=Symbol("kType"),q7e=Symbol("kWasClean"),$m=class{constructor(t){this[Ak]=null,this[H7e]=t}get target(){return this[Ak]}get type(){return this[H7e]}};Object.defineProperty($m.prototype,"target",{enumerable:!0});Object.defineProperty($m.prototype,"type",{enumerable:!0});var Y_=class extends $m{constructor(t,n={}){super(t),this[D7e]=n.code===void 0?0:n.code,this[j7e]=n.reason===void 0?"":n.reason,this[q7e]=n.wasClean===void 0?!1:n.wasClean}get code(){return this[D7e]}get reason(){return this[j7e]}get wasClean(){return this[q7e]}};Object.defineProperty(Y_.prototype,"code",{enumerable:!0});Object.defineProperty(Y_.prototype,"reason",{enumerable:!0});Object.defineProperty(Y_.prototype,"wasClean",{enumerable:!0});var wk=class extends $m{constructor(t,n={}){super(t),this[U7e]=n.error===void 0?null:n.error,this[F7e]=n.message===void 0?"":n.message}get error(){return this[U7e]}get message(){return this[F7e]}};Object.defineProperty(wk.prototype,"error",{enumerable:!0});Object.defineProperty(wk.prototype,"message",{enumerable:!0});var sM=class extends $m{constructor(t,n={}){super(t),this[L7e]=n.data===void 0?null:n.data}get data(){return this[L7e]}};Object.defineProperty(sM.prototype,"data",{enumerable:!0});var Lmn={addEventListener(e,t,n={}){for(let i of this.listeners(e))if(!n[iM]&&i[yae]===t&&!i[iM])return;let r;if(e==="message")r=function(s,o){let a=new sM("message",{data:o?s:s.toString()});a[Ak]=this,YV(t,this,a)};else if(e==="close")r=function(s,o){let a=new Y_("close",{code:s,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[Ak]=this,YV(t,this,a)};else if(e==="error")r=function(s){let o=new wk("error",{error:s,message:s.message});o[Ak]=this,YV(t,this,o)};else if(e==="open")r=function(){let s=new $m("open");s[Ak]=this,YV(t,this,s)};else return;r[iM]=!!n[iM],r[yae]=t,n.once?this.once(e,r):this.on(e,r)},removeEventListener(e,t){for(let n of this.listeners(e))if(n[yae]===t&&!n[iM]){this.removeListener(e,n);break}}};B7e.exports={CloseEvent:Y_,ErrorEvent:wk,Event:$m,EventTarget:Lmn,MessageEvent:sM};function YV(e,t,n){typeof e=="object"&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}});var ZV=w((m4r,G7e)=>{"use strict";var{tokenChars:oM}=Tk();function bh(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}function Umn(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(", ")}G7e.exports={format:Fmn,parse:Umn}});var $V=w((S4r,nJe)=>{"use strict";var jmn=Y("events"),Hmn=Y("https"),qmn=Y("http"),K7e=Y("net"),Bmn=Y("tls"),{randomBytes:zmn,createHash:Gmn}=Y("crypto"),{Duplex:g4r,Readable:y4r}=Y("stream"),{URL:Sae}=Y("url"),BS=_k(),Vmn=pae(),Wmn=gae(),{isBlob:Kmn}=Tk(),{BINARY_TYPES:V7e,CLOSE_TIMEOUT:Ymn,EMPTY_BUFFER:JV,GUID:Zmn,kForOnEventAttribute:bae,kListener:Jmn,kStatusCode:Xmn,kWebSocket:Wo,NOOP:Y7e}=Xm(),{EventTarget:{addEventListener:Qmn,removeEventListener:$mn}}=z7e(),{format:egn,parse:tgn}=ZV(),{toBuffer:ngn}=nM(),Z7e=Symbol("kAborted"),Eae=[8,13],eg=["CONNECTING","OPEN","CLOSING","CLOSED"],rgn=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,Fi=class e extends jmn{constructor(t,n,r){super(),this._binaryType=V7e[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=JV,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]),J7e(this,t,n,r)):(this._autoPong=r.autoPong,this._closeTimeout=r.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(t){V7e.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 Vmn({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation}),s=new Wmn(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",ogn),i.on("drain",agn),i.on("error",cgn),i.on("message",ugn),i.on("ping",lgn),i.on("pong",dgn),s.onerror=fgn,t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on("close",$7e),t.on("data",QV),t.on("end",eJe),t.on("error",tJe),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[BS.extensionName]&&this._extensions[BS.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())}),Q7e(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){_ae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.ping(t||JV,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){_ae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.pong(t||JV,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){_ae(this,t,r);return}let i={binary:typeof t!="string",mask:!this._isServer,compress:!0,fin:!0,...n};this._extensions[BS.extensionName]||(i.compress=!1),this._sender.send(t||JV,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:eg.indexOf("CONNECTING")});Object.defineProperty(Fi.prototype,"CONNECTING",{enumerable:!0,value:eg.indexOf("CONNECTING")});Object.defineProperty(Fi,"OPEN",{enumerable:!0,value:eg.indexOf("OPEN")});Object.defineProperty(Fi.prototype,"OPEN",{enumerable:!0,value:eg.indexOf("OPEN")});Object.defineProperty(Fi,"CLOSING",{enumerable:!0,value:eg.indexOf("CLOSING")});Object.defineProperty(Fi.prototype,"CLOSING",{enumerable:!0,value:eg.indexOf("CLOSING")});Object.defineProperty(Fi,"CLOSED",{enumerable:!0,value:eg.indexOf("CLOSED")});Object.defineProperty(Fi.prototype,"CLOSED",{enumerable:!0,value:eg.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[bae])return t[Jmn];return null},set(t){for(let n of this.listeners(e))if(n[bae]){this.removeListener(e,n);break}typeof t=="function"&&this.addEventListener(e,t,{[bae]:!0})}})});Fi.prototype.addEventListener=Qmn;Fi.prototype.removeEventListener=$mn;nJe.exports=Fi;function J7e(e,t,n,r){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:Ymn,protocolVersion:Eae[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,!Eae.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${Eae.join(", ")})`);let s;if(t instanceof Sae)s=t;else try{s=new Sae(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;XV(e,m);return}let u=o?443:80,l=zmn(16).toString("base64"),d=o?Hmn.request:qmn.request,f=new Set,p;if(i.createConnection=i.createConnection||(o?sgn:ign),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 BS({...i.perMessageDeflate,isServer:!1,maxPayload:i.maxPayload}),i.headers["Sec-WebSocket-Extensions"]=egn({[BS.extensionName]:p.offer()})),n.length){for(let m of n){if(typeof m!="string"||!rgn.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,XV(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 Sae(g,t)}catch{let E=new SyntaxError(`Invalid URL: ${g}`);XV(e,E);return}J7e(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=Gmn("sha1").update(l+Zmn).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=tgn(T)}catch{bl(e,g,"Invalid Sec-WebSocket-Extensions header");return}let A=Object.keys(R);if(A.length!==1||A[0]!==BS.extensionName){bl(e,g,"Server indicated an extension that was not requested");return}try{p.accept(R[BS.extensionName])}catch{bl(e,g,"Invalid Sec-WebSocket-Extensions header");return}e._extensions[BS.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 XV(e,t){e._readyState=Fi.CLOSING,e._errorEmitted=!0,e.emit("error",t),e.emitClose()}function ign(e){return e.path=e.socketPath,K7e.connect(e)}function sgn(e){return e.path=void 0,!e.servername&&e.servername!==""&&(e.servername=K7e.isIP(e.host)?"":e.host),Bmn.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(XV,e,r)):(t.destroy(r),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function _ae(e,t,n){if(t){let r=Kmn(t)?t.size:ngn(t).length;e._socket?e._sender._bufferedBytes+=r:e._bufferedAmount+=r}if(n){let r=new Error(`WebSocket is not open: readyState ${e.readyState} (${eg[e.readyState]})`);process.nextTick(n,r)}}function ogn(e,t){let n=this[Wo];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,n._socket[Wo]!==void 0&&(n._socket.removeListener("data",QV),process.nextTick(X7e,n._socket),e===1005?n.close():n.close(e,t))}function agn(){let e=this[Wo];e.isPaused||e._socket.resume()}function cgn(e){let t=this[Wo];t._socket[Wo]!==void 0&&(t._socket.removeListener("data",QV),process.nextTick(X7e,t._socket),t.close(e[Xmn])),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e))}function W7e(){this[Wo].emitClose()}function ugn(e,t){this[Wo].emit("message",e,t)}function lgn(e){let t=this[Wo];t._autoPong&&t.pong(e,!this._isServer,Y7e),t.emit("ping",e)}function dgn(e){this[Wo].emit("pong",e)}function X7e(e){e.resume()}function fgn(e){let t=this[Wo];t.readyState!==Fi.CLOSED&&(t.readyState===Fi.OPEN&&(t._readyState=Fi.CLOSING,Q7e(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e)))}function Q7e(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function $7e(){let e=this[Wo];if(this.removeListener("close",$7e),this.removeListener("data",QV),this.removeListener("end",eJe),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",W7e),e._receiver.on("finish",W7e))}function QV(e){this[Wo]._receiver.write(e)||this.pause()}function eJe(){let e=this[Wo];e._readyState=Fi.CLOSING,e._receiver.end(),this.end()}function tJe(){let e=this[Wo];this.removeListener("error",tJe),this.on("error",Y7e),e&&(e._readyState=Fi.CLOSING,this.destroy())}});var oJe=w((E4r,sJe)=>{"use strict";var b4r=$V(),{Duplex:pgn}=Y("stream");function rJe(e){e.emit("close")}function hgn(){!this.destroyed&&this._writableState.finished&&this.destroy()}function iJe(e){this.removeListener("error",iJe),this.destroy(),this.listenerCount("error")===0&&this.emit("error",e)}function mgn(e,t){let n=!0,r=new pgn({...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(rJe,r);return}let o=!1;e.once("error",function(c){o=!0,s(c)}),e.once("close",function(){o||s(i),process.nextTick(rJe,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",hgn),r.on("error",iJe),r}sJe.exports=mgn});var Tae=w((_4r,aJe)=>{"use strict";var{tokenChars:ggn}=Tk();function ygn(e){let t=new Set,n=-1,r=-1,i=0;for(i;i{"use strict";var Sgn=Y("events"),eW=Y("http"),{Duplex:T4r}=Y("stream"),{createHash:bgn}=Y("crypto"),cJe=ZV(),Z_=_k(),Egn=Tae(),_gn=$V(),{CLOSE_TIMEOUT:Tgn,GUID:vgn,kWebSocket:Rgn}=Xm(),Agn=/^[+/0-9A-Za-z]{22}==$/,uJe=0,lJe=1,fJe=2,vae=class extends Sgn{constructor(t,n){if(super(),t={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:Tgn,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:_gn,...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=eW.createServer((r,i)=>{let s=eW.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=wgn(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=uJe}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===fJe){t&&this.once("close",()=>{t(new Error("The server is not running"))}),process.nextTick(aM,this);return}if(t&&this.once("close",t),this._state!==lJe)if(this._state=lJe,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(aM,this):process.nextTick(aM,this);else{let n=this._server;this._removeListeners(),this._removeListeners=this._server=null,n.close(()=>{aM(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",dJe);let s=t.headers["sec-websocket-key"],o=t.headers.upgrade,a=+t.headers["sec-websocket-version"];if(t.method!=="GET"){J_(this,t,n,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){J_(this,t,n,400,"Invalid Upgrade header");return}if(s===void 0||!Agn.test(s)){J_(this,t,n,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==13&&a!==8){J_(this,t,n,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(t)){cM(n,400);return}let c=t.headers["sec-websocket-protocol"],u=new Set;if(c!==void 0)try{u=Egn.parse(c)}catch{J_(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 Z_({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let p=cJe.parse(l);p[Z_.extensionName]&&(f.accept(p[Z_.extensionName]),d[Z_.extensionName]=f)}catch{J_(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 cM(n,h||401,m,g);this.completeUpgrade(d,s,u,t,n,r,i)});return}if(!this.options.verifyClient(f))return cM(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[Rgn])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>uJe)return cM(s,503);let u=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${bgn("sha1").update(n+vgn).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[Z_.extensionName]){let d=t[Z_.extensionName].params,f=cJe.format({[Z_.extensionName]:[d]});u.push(`Sec-WebSocket-Extensions: ${f}`),l._extensions=t}this.emit("headers",u,i),s.write(u.concat(`\r +`;function jV(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:emn})}jV.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]})})};jV.prototype.child=function(e){return new jV(e.continueExceeding,e.exponentialBackoff,this.redis,`${this.key}${e.routeInfo.method}${e.routeInfo.url}-`)};r7e.exports=jV});var p7e=w((s4r,HV)=>{"use strict";var tmn=JC(),{parse:a7e,format:nmn}=e7e(),rmn=n7e(),imn=i7e(),c7e=1e3,u7e=6e4,smn="onRequest",omn={rateLimit:"x-ratelimit-limit",rateRemaining:"x-ratelimit-remaining",rateReset:"x-ratelimit-reset",retryAfter:"retry-after"},amn={rateLimit:"ratelimit-limit",rateRemaining:"ratelimit-remaining",rateReset:"ratelimit-reset",retryAfter:"retry-after"},nae=()=>{},cmn=e=>e.ip,umn=(e,t)=>{let n=new Error(`Rate limit exceeded, retry in ${t.after}`);return n.statusCode=t.statusCode,n};async function rae(e,t){let n={global:typeof t.global=="boolean"?t.global:!0};typeof t.enableDraftSpec=="boolean"&&t.enableDraftSpec?(n.enableDraftSpec=!0,n.labels=amn):(n.enableDraftSpec=!1,n.labels=omn),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=c7e,Number.isFinite(t.timeWindow)&&t.timeWindow>=0?n.timeWindow=Math.trunc(t.timeWindow):typeof t.timeWindow=="string"?n.timeWindow=a7e(t.timeWindow):typeof t.timeWindow=="function"?n.timeWindow=t.timeWindow:n.timeWindow=u7e,n.hook=t.hook||smn,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:nae,n.onExceeding=typeof t.onExceeding=="function"?t.onExceeding:nae,n.onExceeded=typeof t.onExceeded=="function"?t.onExceeded:nae,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:cmn,typeof t.errorResponseBuilder=="function"?(n.errorResponseBuilder=t.errorResponseBuilder,n.isCustomErrorMessage=!0):(n.errorResponseBuilder=umn,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 imn(n.continueExceeding,n.exponentialBackoff,t.redis,t.nameSpace):r.store=new rmn(n.continueExceeding,n.exponentialBackoff,t.cache);e.decorateRequest(r.rateLimitRan,!1),e.hasDecorator("createRateLimit")||e.decorate("createRateLimit",i=>{let s=s7e(r,n,i);return o=>d7e.apply(this,s.concat(o))}),e.hasDecorator("rateLimit")||e.decorate("rateLimit",i=>{let s=s7e(r,n,i);return f7e(...s)}),e.addHook("onRoute",i=>{if(i.config?.rateLimit!=null){if(typeof i.config.rateLimit=="object"){let s=Object.create(r),o=l7e(n,i.config.rateLimit,{routeInfo:i});s.store=r.store.child(o),o7e(s,o,i)}else if(i.config.rateLimit!==!1)throw new Error("Unknown value for route rate-limit configuration")}else n.global&&o7e(r,n,i)})}function l7e(...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=a7e(t.timeWindow):typeof t.timeWindow!="function"&&(t.timeWindow=u7e),Number.isFinite(t.max)&&t.max>=0?t.max=Math.trunc(t.max):typeof t.max!="function"&&(t.max=c7e),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 s7e(e,t,n){if(typeof n=="object"){let r=Object.create(e),i=l7e(t,n,{routeInfo:{}});return r.store=r.store.child(i),[r,i]}return[e,t]}function o7e(e,t,n){let r=t.hook,i=f7e(e,t);Array.isArray(n[r])?n[r].push(i):typeof n[r]=="function"?n[r]=[n[r],i]:n[r]=[i]}async function d7e(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 f7e(e,t){let{rateLimitRan:n}=e;return async(r,i)=>{if(r[n])return;r[n]=!0;let s=await d7e(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:nmn(l*1e3,!0)};throw f&&(p.statusCode=403,p.ban=!0,t.onBanReach(r,o)),t.errorResponseBuilder(r,p)}}HV.exports=tmn(rae,{fastify:"5.x",name:"@fastify/rate-limit"});HV.exports.default=rae;HV.exports.fastifyRateLimit=rae});var Xm=w((o4r,g7e)=>{"use strict";var h7e=["nodebuffer","arraybuffer","fragments"],m7e=typeof Blob<"u";m7e&&h7e.push("blob");g7e.exports={BINARY_TYPES:h7e,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:m7e,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var nM=w((a4r,qV)=>{"use strict";var{EMPTY_BUFFER:lmn}=Xm(),iae=Buffer[Symbol.species];function dmn(e,t){if(e.length===0)return lmn;if(e.length===1)return e[0];let n=Buffer.allocUnsafe(t),r=0;for(let i=0;i{"use strict";var b7e=Symbol("kDone"),oae=Symbol("kRun"),aae=class{constructor(t){this[b7e]=()=>{this.pending--,this[oae]()},this.concurrency=t||1/0,this.jobs=[],this.pending=0}add(t){this.jobs.push(t),this[oae]()}[oae](){if(this.pending!==this.concurrency&&this.jobs.length){let t=this.jobs.shift();this.pending++,t(this[b7e])}}};E7e.exports=aae});var _k=w((u4r,A7e)=>{"use strict";var rM=Y("zlib"),T7e=nM(),pmn=_7e(),{kStatusCode:v7e}=Xm(),hmn=Buffer[Symbol.species],mmn=Buffer.from([0,0,255,255]),zV=Symbol("permessage-deflate"),Qm=Symbol("total-length"),bk=Symbol("callback"),qS=Symbol("buffers"),Ek=Symbol("error"),BV,cae=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,!BV){let n=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;BV=new pmn(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[bk];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){BV.add(i=>{this._decompress(t,n,(s,o)=>{i(),r(s,o)})})}compress(t,n,r){BV.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"?rM.Z_DEFAULT_WINDOWBITS:this.params[s];this._inflate=rM.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[zV]=this,this._inflate[Qm]=0,this._inflate[qS]=[],this._inflate.on("error",ymn),this._inflate.on("data",R7e)}this._inflate[bk]=r,this._inflate.write(t),n&&this._inflate.write(mmn),this._inflate.flush(()=>{let s=this._inflate[Ek];if(s){this._inflate.close(),this._inflate=null,r(s);return}let o=T7e.concat(this._inflate[qS],this._inflate[Qm]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Qm]=0,this._inflate[qS]=[],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"?rM.Z_DEFAULT_WINDOWBITS:this.params[s];this._deflate=rM.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[Qm]=0,this._deflate[qS]=[],this._deflate.on("data",gmn)}this._deflate[bk]=r,this._deflate.write(t),this._deflate.flush(rM.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let s=T7e.concat(this._deflate[qS],this._deflate[Qm]);n&&(s=new hmn(s.buffer,s.byteOffset,s.length-4)),this._deflate[bk]=null,this._deflate[Qm]=0,this._deflate[qS]=[],n&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),r(null,s)})}};A7e.exports=cae;function gmn(e){this[qS].push(e),this[Qm]+=e.length}function R7e(e){if(this[Qm]+=e.length,this[zV]._maxPayload<1||this[Qm]<=this[zV]._maxPayload){this[qS].push(e);return}this[Ek]=new RangeError("Max payload size exceeded"),this[Ek].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[Ek][v7e]=1009,this.removeListener("data",R7e),this.reset()}function ymn(e){if(this[zV]._inflate=null,this[Ek]){this[bk](this[Ek]);return}e[v7e]=1007,this[bk](e)}});var Tk=w((l4r,GV)=>{"use strict";var{isUtf8:w7e}=Y("buffer"),{hasBlob:Smn}=Xm(),bmn=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function Emn(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function uae(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 _mn(e){return Smn&&typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}GV.exports={isBlob:_mn,isValidStatusCode:Emn,isValidUTF8:uae,tokenChars:bmn};if(w7e)GV.exports.isValidUTF8=function(e){return e.length<24?uae(e):w7e(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let e=Y("utf-8-validate");GV.exports.isValidUTF8=function(t){return t.length<32?uae(t):e(t)}}catch{}});var hae=w((d4r,C7e)=>{"use strict";var{Writable:Tmn}=Y("stream"),k7e=_k(),{BINARY_TYPES:vmn,EMPTY_BUFFER:I7e,kStatusCode:Rmn,kWebSocket:Amn}=Xm(),{concat:lae,toArrayBuffer:wmn,unmask:kmn}=nM(),{isValidStatusCode:Imn,isValidUTF8:x7e}=Tk(),VV=Buffer[Symbol.species],Td=0,O7e=1,P7e=2,N7e=3,dae=4,fae=5,WV=6,pae=class extends Tmn{constructor(t={}){super(),this._allowSynchronousEvents=t.allowSynchronousEvents!==void 0?t.allowSynchronousEvents:!0,this._binaryType=t.binaryType||vmn[0],this._extensions=t.extensions||{},this._isServer=!!t.isServer,this._maxPayload=t.maxPayload|0,this._skipUTF8Validation=!!t.skipUTF8Validation,this[Amn]=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=Td}_write(t,n,r){if(this._opcode===8&&this._state==Td)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 VV(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 Td:this.getInfo(t);break;case O7e:this.getPayloadLength16(t);break;case P7e:this.getPayloadLength64(t);break;case N7e:this.getMask();break;case dae:this.getData(t);break;case fae:case WV: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[k7e.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=O7e:this._payloadLength===127?this._state=P7e: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=N7e:this._state=dae}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=dae}getData(t){let n=I7e;if(this._payloadLength){if(this._bufferedBytes7){this.controlMessage(n,t);return}if(this._compressed){this._state=fae,this.decompress(n,t);return}n.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(n)),this.dataMessage(t)}decompress(t,n){this._extensions[k7e.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===Td&&this.startLoop(n)})}dataMessage(t){if(!this._fin){this._state=Td;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=lae(r,n):this._binaryType==="arraybuffer"?i=wmn(lae(r,n)):this._binaryType==="blob"?i=new Blob(r):i=r,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=Td):(this._state=WV,setImmediate(()=>{this.emit("message",i,!0),this._state=Td,this.startLoop(t)}))}else{let i=lae(r,n);if(!this._skipUTF8Validation&&!x7e(i)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(s);return}this._state===fae||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=Td):(this._state=WV,setImmediate(()=>{this.emit("message",i,!1),this._state=Td,this.startLoop(t)}))}}controlMessage(t,n){if(this._opcode===8){if(t.length===0)this._loop=!1,this.emit("conclude",1005,I7e),this.end();else{let r=t.readUInt16BE(0);if(!Imn(r)){let s=this.createError(RangeError,`invalid status code ${r}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");n(s);return}let i=new VV(t.buffer,t.byteOffset+2,t.length-2);if(!this._skipUTF8Validation&&!x7e(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=Td;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",t),this._state=Td):(this._state=WV,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",t),this._state=Td,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[Rmn]=i,o}};C7e.exports=pae});var yae=w((p4r,L7e)=>{"use strict";var{Duplex:f4r}=Y("stream"),{randomFillSync:xmn}=Y("crypto"),M7e=_k(),{EMPTY_BUFFER:Omn,kWebSocket:Pmn,NOOP:Nmn}=Xm(),{isBlob:vk,isValidStatusCode:Cmn}=Tk(),{mask:D7e,toBuffer:W_}=nM(),vd=Symbol("kByteLength"),Mmn=Buffer.alloc(4),KV=8*1024,K_,Rk=KV,xf=0,Dmn=1,Lmn=2,mae=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=Nmn,this[Pmn]=void 0}static frame(t,n){let r,i=!1,s=2,o=!1;n.mask&&(r=n.maskBuffer||Mmn,n.generateMask?n.generateMask(r):(Rk===KV&&(K_===void 0&&(K_=Buffer.alloc(KV)),xmn(K_,0,KV),Rk=0),r[0]=K_[Rk++],r[1]=K_[Rk++],r[2]=K_[Rk++],r[3]=K_[Rk++]),o=(r[0]|r[1]|r[2]|r[3])===0,s=6);let a;typeof t=="string"?(!n.mask||o)&&n[vd]!==void 0?a=n[vd]:(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?(D7e(t,r,u,s,a),[u]):(D7e(t,r,t,0,a),[u,t])):[u,t]}close(t,n,r,i){let s;if(t===void 0)s=Omn;else{if(typeof t!="number"||!Cmn(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={[vd]: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):vk(t)?(i=t.size,s=!1):(t=W_(t),i=t.length,s=W_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[vd]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:s,rsv1:!1};vk(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):vk(t)?(i=t.size,s=!1):(t=W_(t),i=t.length,s=W_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[vd]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:s,rsv1:!1};vk(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[M7e.extensionName],s=n.binary?2:1,o=n.compress,a,c;typeof t=="string"?(a=Buffer.byteLength(t),c=!1):vk(t)?(a=t.size,c=!1):(t=W_(t),a=t.length,c=W_.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={[vd]:a,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:s,readOnly:c,rsv1:o};vk(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[vd],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(gae,this,a,i);return}this._bufferedBytes-=r[vd];let o=W_(s);n?this.dispatch(o,n,r,i):(this._state=xf,this.sendFrame(e.frame(o,r),i),this.dequeue())}).catch(s=>{process.nextTick(Umn,this,s,i)})}dispatch(t,n,r,i){if(!n){this.sendFrame(e.frame(t,r),i);return}let s=this._extensions[M7e.extensionName];this._bufferedBytes+=r[vd],this._state=Dmn,s.compress(t,r.fin,(o,a)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");gae(this,c,i);return}this._bufferedBytes-=r[vd],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][vd],Reflect.apply(t[0],this,t.slice(1))}}enqueue(t){this._bufferedBytes+=t[3][vd],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)}};L7e.exports=mae;function gae(e,t,n){typeof n=="function"&&n(t);for(let r=0;r{"use strict";var{kForOnEventAttribute:iM,kListener:Sae}=Xm(),U7e=Symbol("kCode"),F7e=Symbol("kData"),j7e=Symbol("kError"),H7e=Symbol("kMessage"),q7e=Symbol("kReason"),Ak=Symbol("kTarget"),B7e=Symbol("kType"),z7e=Symbol("kWasClean"),$m=class{constructor(t){this[Ak]=null,this[B7e]=t}get target(){return this[Ak]}get type(){return this[B7e]}};Object.defineProperty($m.prototype,"target",{enumerable:!0});Object.defineProperty($m.prototype,"type",{enumerable:!0});var Y_=class extends $m{constructor(t,n={}){super(t),this[U7e]=n.code===void 0?0:n.code,this[q7e]=n.reason===void 0?"":n.reason,this[z7e]=n.wasClean===void 0?!1:n.wasClean}get code(){return this[U7e]}get reason(){return this[q7e]}get wasClean(){return this[z7e]}};Object.defineProperty(Y_.prototype,"code",{enumerable:!0});Object.defineProperty(Y_.prototype,"reason",{enumerable:!0});Object.defineProperty(Y_.prototype,"wasClean",{enumerable:!0});var wk=class extends $m{constructor(t,n={}){super(t),this[j7e]=n.error===void 0?null:n.error,this[H7e]=n.message===void 0?"":n.message}get error(){return this[j7e]}get message(){return this[H7e]}};Object.defineProperty(wk.prototype,"error",{enumerable:!0});Object.defineProperty(wk.prototype,"message",{enumerable:!0});var sM=class extends $m{constructor(t,n={}){super(t),this[F7e]=n.data===void 0?null:n.data}get data(){return this[F7e]}};Object.defineProperty(sM.prototype,"data",{enumerable:!0});var Fmn={addEventListener(e,t,n={}){for(let i of this.listeners(e))if(!n[iM]&&i[Sae]===t&&!i[iM])return;let r;if(e==="message")r=function(s,o){let a=new sM("message",{data:o?s:s.toString()});a[Ak]=this,YV(t,this,a)};else if(e==="close")r=function(s,o){let a=new Y_("close",{code:s,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[Ak]=this,YV(t,this,a)};else if(e==="error")r=function(s){let o=new wk("error",{error:s,message:s.message});o[Ak]=this,YV(t,this,o)};else if(e==="open")r=function(){let s=new $m("open");s[Ak]=this,YV(t,this,s)};else return;r[iM]=!!n[iM],r[Sae]=t,n.once?this.once(e,r):this.on(e,r)},removeEventListener(e,t){for(let n of this.listeners(e))if(n[Sae]===t&&!n[iM]){this.removeListener(e,n);break}}};G7e.exports={CloseEvent:Y_,ErrorEvent:wk,Event:$m,EventTarget:Fmn,MessageEvent:sM};function YV(e,t,n){typeof e=="object"&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}});var ZV=w((m4r,W7e)=>{"use strict";var{tokenChars:oM}=Tk();function bh(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}function jmn(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(", ")}W7e.exports={format:Hmn,parse:jmn}});var $V=w((S4r,iJe)=>{"use strict";var qmn=Y("events"),Bmn=Y("https"),zmn=Y("http"),Z7e=Y("net"),Gmn=Y("tls"),{randomBytes:Vmn,createHash:Wmn}=Y("crypto"),{Duplex:g4r,Readable:y4r}=Y("stream"),{URL:bae}=Y("url"),BS=_k(),Kmn=hae(),Ymn=yae(),{isBlob:Zmn}=Tk(),{BINARY_TYPES:K7e,CLOSE_TIMEOUT:Jmn,EMPTY_BUFFER:JV,GUID:Xmn,kForOnEventAttribute:Eae,kListener:Qmn,kStatusCode:$mn,kWebSocket:Wo,NOOP:J7e}=Xm(),{EventTarget:{addEventListener:egn,removeEventListener:tgn}}=V7e(),{format:ngn,parse:rgn}=ZV(),{toBuffer:ign}=nM(),X7e=Symbol("kAborted"),_ae=[8,13],eg=["CONNECTING","OPEN","CLOSING","CLOSED"],sgn=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,Fi=class e extends qmn{constructor(t,n,r){super(),this._binaryType=K7e[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=JV,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]),Q7e(this,t,n,r)):(this._autoPong=r.autoPong,this._closeTimeout=r.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(t){K7e.includes(t)&&(this._binaryType=t,this._receiver&&(this._receiver._binaryType=t))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(t,n,r){let i=new Kmn({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation}),s=new Ymn(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",cgn),i.on("drain",ugn),i.on("error",lgn),i.on("message",dgn),i.on("ping",fgn),i.on("pong",pgn),s.onerror=hgn,t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on("close",tJe),t.on("data",QV),t.on("end",nJe),t.on("error",rJe),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[BS.extensionName]&&this._extensions[BS.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())}),eJe(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){Tae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.ping(t||JV,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){Tae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.pong(t||JV,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){Tae(this,t,r);return}let i={binary:typeof t!="string",mask:!this._isServer,compress:!0,fin:!0,...n};this._extensions[BS.extensionName]||(i.compress=!1),this._sender.send(t||JV,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:eg.indexOf("CONNECTING")});Object.defineProperty(Fi.prototype,"CONNECTING",{enumerable:!0,value:eg.indexOf("CONNECTING")});Object.defineProperty(Fi,"OPEN",{enumerable:!0,value:eg.indexOf("OPEN")});Object.defineProperty(Fi.prototype,"OPEN",{enumerable:!0,value:eg.indexOf("OPEN")});Object.defineProperty(Fi,"CLOSING",{enumerable:!0,value:eg.indexOf("CLOSING")});Object.defineProperty(Fi.prototype,"CLOSING",{enumerable:!0,value:eg.indexOf("CLOSING")});Object.defineProperty(Fi,"CLOSED",{enumerable:!0,value:eg.indexOf("CLOSED")});Object.defineProperty(Fi.prototype,"CLOSED",{enumerable:!0,value:eg.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[Eae])return t[Qmn];return null},set(t){for(let n of this.listeners(e))if(n[Eae]){this.removeListener(e,n);break}typeof t=="function"&&this.addEventListener(e,t,{[Eae]:!0})}})});Fi.prototype.addEventListener=egn;Fi.prototype.removeEventListener=tgn;iJe.exports=Fi;function Q7e(e,t,n,r){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:Jmn,protocolVersion:_ae[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,!_ae.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${_ae.join(", ")})`);let s;if(t instanceof bae)s=t;else try{s=new bae(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;XV(e,m);return}let u=o?443:80,l=Vmn(16).toString("base64"),d=o?Bmn.request:zmn.request,f=new Set,p;if(i.createConnection=i.createConnection||(o?agn:ogn),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 BS({...i.perMessageDeflate,isServer:!1,maxPayload:i.maxPayload}),i.headers["Sec-WebSocket-Extensions"]=ngn({[BS.extensionName]:p.offer()})),n.length){for(let m of n){if(typeof m!="string"||!sgn.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[X7e]||(h=e._req=null,XV(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 bae(g,t)}catch{let E=new SyntaxError(`Invalid URL: ${g}`);XV(e,E);return}Q7e(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=Wmn("sha1").update(l+Xmn).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=rgn(T)}catch{bl(e,g,"Invalid Sec-WebSocket-Extensions header");return}let A=Object.keys(R);if(A.length!==1||A[0]!==BS.extensionName){bl(e,g,"Server indicated an extension that was not requested");return}try{p.accept(R[BS.extensionName])}catch{bl(e,g,"Invalid Sec-WebSocket-Extensions header");return}e._extensions[BS.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 XV(e,t){e._readyState=Fi.CLOSING,e._errorEmitted=!0,e.emit("error",t),e.emitClose()}function ogn(e){return e.path=e.socketPath,Z7e.connect(e)}function agn(e){return e.path=void 0,!e.servername&&e.servername!==""&&(e.servername=Z7e.isIP(e.host)?"":e.host),Gmn.connect(e)}function bl(e,t,n){e._readyState=Fi.CLOSING;let r=new Error(n);Error.captureStackTrace(r,bl),t.setHeader?(t[X7e]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(XV,e,r)):(t.destroy(r),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function Tae(e,t,n){if(t){let r=Zmn(t)?t.size:ign(t).length;e._socket?e._sender._bufferedBytes+=r:e._bufferedAmount+=r}if(n){let r=new Error(`WebSocket is not open: readyState ${e.readyState} (${eg[e.readyState]})`);process.nextTick(n,r)}}function cgn(e,t){let n=this[Wo];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,n._socket[Wo]!==void 0&&(n._socket.removeListener("data",QV),process.nextTick($7e,n._socket),e===1005?n.close():n.close(e,t))}function ugn(){let e=this[Wo];e.isPaused||e._socket.resume()}function lgn(e){let t=this[Wo];t._socket[Wo]!==void 0&&(t._socket.removeListener("data",QV),process.nextTick($7e,t._socket),t.close(e[$mn])),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e))}function Y7e(){this[Wo].emitClose()}function dgn(e,t){this[Wo].emit("message",e,t)}function fgn(e){let t=this[Wo];t._autoPong&&t.pong(e,!this._isServer,J7e),t.emit("ping",e)}function pgn(e){this[Wo].emit("pong",e)}function $7e(e){e.resume()}function hgn(e){let t=this[Wo];t.readyState!==Fi.CLOSED&&(t.readyState===Fi.OPEN&&(t._readyState=Fi.CLOSING,eJe(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e)))}function eJe(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function tJe(){let e=this[Wo];if(this.removeListener("close",tJe),this.removeListener("data",QV),this.removeListener("end",nJe),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",Y7e),e._receiver.on("finish",Y7e))}function QV(e){this[Wo]._receiver.write(e)||this.pause()}function nJe(){let e=this[Wo];e._readyState=Fi.CLOSING,e._receiver.end(),this.end()}function rJe(){let e=this[Wo];this.removeListener("error",rJe),this.on("error",J7e),e&&(e._readyState=Fi.CLOSING,this.destroy())}});var cJe=w((E4r,aJe)=>{"use strict";var b4r=$V(),{Duplex:mgn}=Y("stream");function sJe(e){e.emit("close")}function ggn(){!this.destroyed&&this._writableState.finished&&this.destroy()}function oJe(e){this.removeListener("error",oJe),this.destroy(),this.listenerCount("error")===0&&this.emit("error",e)}function ygn(e,t){let n=!0,r=new mgn({...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(sJe,r);return}let o=!1;e.once("error",function(c){o=!0,s(c)}),e.once("close",function(){o||s(i),process.nextTick(sJe,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",ggn),r.on("error",oJe),r}aJe.exports=ygn});var vae=w((_4r,uJe)=>{"use strict";var{tokenChars:Sgn}=Tk();function bgn(e){let t=new Set,n=-1,r=-1,i=0;for(i;i{"use strict";var Egn=Y("events"),eW=Y("http"),{Duplex:T4r}=Y("stream"),{createHash:_gn}=Y("crypto"),lJe=ZV(),Z_=_k(),Tgn=vae(),vgn=$V(),{CLOSE_TIMEOUT:Rgn,GUID:Agn,kWebSocket:wgn}=Xm(),kgn=/^[+/0-9A-Za-z]{22}==$/,dJe=0,fJe=1,hJe=2,Rae=class extends Egn{constructor(t,n){if(super(),t={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:Rgn,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:vgn,...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=eW.createServer((r,i)=>{let s=eW.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=Ign(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=dJe}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===hJe){t&&this.once("close",()=>{t(new Error("The server is not running"))}),process.nextTick(aM,this);return}if(t&&this.once("close",t),this._state!==fJe)if(this._state=fJe,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(aM,this):process.nextTick(aM,this);else{let n=this._server;this._removeListeners(),this._removeListeners=this._server=null,n.close(()=>{aM(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",pJe);let s=t.headers["sec-websocket-key"],o=t.headers.upgrade,a=+t.headers["sec-websocket-version"];if(t.method!=="GET"){J_(this,t,n,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){J_(this,t,n,400,"Invalid Upgrade header");return}if(s===void 0||!kgn.test(s)){J_(this,t,n,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==13&&a!==8){J_(this,t,n,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(t)){cM(n,400);return}let c=t.headers["sec-websocket-protocol"],u=new Set;if(c!==void 0)try{u=Tgn.parse(c)}catch{J_(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 Z_({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let p=lJe.parse(l);p[Z_.extensionName]&&(f.accept(p[Z_.extensionName]),d[Z_.extensionName]=f)}catch{J_(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 cM(n,h||401,m,g);this.completeUpgrade(d,s,u,t,n,r,i)});return}if(!this.options.verifyClient(f))return cM(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[wgn])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>dJe)return cM(s,503);let u=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${_gn("sha1").update(n+Agn).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[Z_.extensionName]){let d=t[Z_.extensionName].params,f=lJe.format({[Z_.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",dJe),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(aM,this)})),a(l,i)}};pJe.exports=vae;function wgn(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 aM(e){e._state=fJe,e.emit("close")}function dJe(){this.destroy()}function cM(e,t,n,r){n=n||eW.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} ${eW.STATUS_CODES[t]}\r +`)),s.removeListener("error",pJe),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(aM,this)})),a(l,i)}};mJe.exports=Rae;function Ign(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 aM(e){e._state=hJe,e.emit("close")}function pJe(){this.destroy()}function cM(e,t,n,r){n=n||eW.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} ${eW.STATUS_CODES[t]}\r `+Object.keys(r).map(i=>`${i}: ${r[i]}`).join(`\r `)+`\r \r -`+n)}function J_(e,t,n,r,i,s){if(e.listenerCount("wsClientError")){let o=new Error(i);Error.captureStackTrace(o,J_),e.emit("wsClientError",o,n,t)}else cM(n,r,i,s)}});var yJe=w((R4r,gJe)=>{"use strict";var kgn=oJe(),Ign=ZV(),xgn=_k(),Ogn=pae(),Pgn=gae(),Ngn=Tae(),Of=$V(),mJe=hJe();Of.createWebSocketStream=kgn;Of.extension=Ign;Of.PerMessageDeflate=xgn;Of.Receiver=Ogn;Of.Sender=Pgn;Of.Server=mJe;Of.subprotocol=Ngn;Of.WebSocket=Of;Of.WebSocketServer=mJe;gJe.exports=Of});var Rae=w((A4r,SJe)=>{SJe.exports=Y("stream")});var RJe=w((w4r,vJe)=>{"use strict";function bJe(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 EJe(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 tW.alloc(0);for(var r=tW.allocUnsafe(n>>>0),i=this.head,s=0;i;)Hgn(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=tW.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:jgn,value:function(n,r){return Aae(this,EJe(EJe({},r),{},{depth:0,customInspect:!1}))}}]),e})()});var kae=w((k4r,wJe)=>{"use strict";function qgn(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(wae,this,e)):process.nextTick(wae,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(nW,n):(n._writableState.errorEmitted=!0,process.nextTick(AJe,n,s)):process.nextTick(AJe,n,s):t?(process.nextTick(nW,n),t(s)):process.nextTick(nW,n)}),this)}function AJe(e,t){wae(e,t),nW(e)}function nW(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function Bgn(){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 wae(e,t){e.emit("error",t)}function zgn(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}wJe.exports={destroy:qgn,undestroy:Bgn,errorOrDestroy:zgn}});var zS=w((I4r,xJe)=>{"use strict";var IJe={};function Rd(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,IJe[e]=i}function kJe(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 Ggn(e,t,n){return e.substr(!n||n<0?0:+n,t.length)===t}function Vgn(e,t,n){return(n===void 0||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}function Wgn(e,t,n){return typeof n!="number"&&(n=0),n+t.length>e.length?!1:e.indexOf(t,n)!==-1}Rd("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);Rd("ERR_INVALID_ARG_TYPE",function(e,t,n){let r;typeof t=="string"&&Ggn(t,"not ")?(r="must not be",t=t.replace(/^not /,"")):r="must be";let i;if(Vgn(e," argument"))i=`The ${e} ${r} ${kJe(t,"type")}`;else{let s=Wgn(e,".")?"property":"argument";i=`The "${e}" ${s} ${r} ${kJe(t,"type")}`}return i+=`. Received type ${typeof n}`,i},TypeError);Rd("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Rd("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});Rd("ERR_STREAM_PREMATURE_CLOSE","Premature close");Rd("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});Rd("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Rd("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Rd("ERR_STREAM_WRITE_AFTER_END","write after end");Rd("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Rd("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);Rd("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");xJe.exports.codes=IJe});var Iae=w((x4r,OJe)=>{"use strict";var Kgn=zS().codes.ERR_INVALID_OPT_VALUE;function Ygn(e,t,n){return e.highWaterMark!=null?e.highWaterMark:t?e[n]:null}function Zgn(e,t,n,r){var i=Ygn(t,r,n);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var s=r?n:"highWaterMark";throw new Kgn(s,i)}return Math.floor(i)}return e.objectMode?16:16*1024}OJe.exports={getHighWaterMark:Zgn}});var PJe=w((O4r,xae)=>{typeof Object.create=="function"?xae.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:xae.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 X_=w((P4r,Pae)=>{try{if(Oae=Y("util"),typeof Oae.inherits!="function")throw"";Pae.exports=Oae.inherits}catch{Pae.exports=PJe()}var Oae});var CJe=w((N4r,NJe)=>{NJe.exports=Y("util").deprecate});var Mae=w((C4r,jJe)=>{"use strict";jJe.exports=gs;function DJe(e){var t=this;this.next=null,this.entry=null,this.finish=function(){Tyn(t,e)}}var kk;gs.WritableState=lM;var Jgn={deprecate:CJe()},LJe=Rae(),iW=Y("buffer").Buffer,Xgn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Qgn(e){return iW.from(e)}function $gn(e){return iW.isBuffer(e)||e instanceof Xgn}var Cae=kae(),eyn=Iae(),tyn=eyn.getHighWaterMark,GS=zS().codes,nyn=GS.ERR_INVALID_ARG_TYPE,ryn=GS.ERR_METHOD_NOT_IMPLEMENTED,iyn=GS.ERR_MULTIPLE_CALLBACK,syn=GS.ERR_STREAM_CANNOT_PIPE,oyn=GS.ERR_STREAM_DESTROYED,ayn=GS.ERR_STREAM_NULL_VALUES,cyn=GS.ERR_STREAM_WRITE_AFTER_END,uyn=GS.ERR_UNKNOWN_ENCODING,Ik=Cae.errorOrDestroy;X_()(gs,LJe);function lyn(){}function lM(e,t,n){kk=kk||Q_(),e=e||{},typeof n!="boolean"&&(n=t instanceof kk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=tyn(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){yyn(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 DJe(this)}lM.prototype.getBuffer=function(){for(var t=this.bufferedRequest,n=[];t;)n.push(t),t=t.next;return n};(function(){try{Object.defineProperty(lM.prototype,"buffer",{get:Jgn.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var rW;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(rW=Function.prototype[Symbol.hasInstance],Object.defineProperty(gs,Symbol.hasInstance,{value:function(t){return rW.call(this,t)?!0:this!==gs?!1:t&&t._writableState instanceof lM}})):rW=function(t){return t instanceof this};function gs(e){kk=kk||Q_();var t=this instanceof kk;if(!t&&!rW.call(gs,this))return new gs(e);this._writableState=new lM(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)),LJe.call(this)}gs.prototype.pipe=function(){Ik(this,new syn)};function dyn(e,t){var n=new cyn;Ik(e,n),process.nextTick(t,n)}function fyn(e,t,n,r){var i;return n===null?i=new ayn:typeof n!="string"&&!t.objectMode&&(i=new nyn("chunk",["string","Buffer"],n)),i?(Ik(e,i),process.nextTick(r,i),!1):!0}gs.prototype.write=function(e,t,n){var r=this._writableState,i=!1,s=!r.objectMode&&$gn(e);return s&&!iW.isBuffer(e)&&(e=Qgn(e)),typeof t=="function"&&(n=t,t=null),s?t="buffer":t||(t=r.defaultEncoding),typeof n!="function"&&(n=lyn),r.ending?dyn(this,n):(s||fyn(this,r,e,n))&&(r.pendingcb++,i=hyn(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&&UJe(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 uyn(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(gs.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function pyn(e,t,n){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=iW.from(t,n)),t}Object.defineProperty(gs.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function hyn(e,t,n,r,i,s){if(!n){var o=pyn(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 vyn=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};qJe.exports=Eh;var HJe=Uae(),Lae=Mae();X_()(Eh,HJe);for(Dae=vyn(Lae.prototype),sW=0;sW{var aW=Y("buffer"),_h=aW.Buffer;function BJe(e,t){for(var n in e)t[n]=e[n]}_h.from&&_h.alloc&&_h.allocUnsafe&&_h.allocUnsafeSlow?zJe.exports=aW:(BJe(aW,Fae),Fae.Buffer=$_);function $_(e,t,n){return _h(e,t,n)}$_.prototype=Object.create(_h.prototype);BJe(_h,$_);$_.from=function(e,t,n){if(typeof e=="number")throw new TypeError("Argument must not be a number");return _h(e,t,n)};$_.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};$_.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return _h(e)};$_.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return aW.SlowBuffer(e)}});var qae=w(WJe=>{"use strict";var Hae=GJe().Buffer,VJe=Hae.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 wyn(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 kyn(e){var t=wyn(e);if(typeof t!="string"&&(Hae.isEncoding===VJe||!VJe(e)))throw new Error("Unknown encoding: "+e);return t||e}WJe.StringDecoder=dM;function dM(e){this.encoding=kyn(e);var t;switch(this.encoding){case"utf16le":this.text=Cyn,this.end=Myn,t=4;break;case"utf8":this.fillLast=Oyn,t=4;break;case"base64":this.text=Dyn,this.end=Lyn,t=3;break;default:this.write=Uyn,this.end=Fyn;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Hae.allocUnsafe(t)}dM.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 xyn(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=xyn(this,e,t);if(n!==void 0)return n;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function Pyn(e,t){var n=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 Nyn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function Cyn(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 Myn(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 Lyn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Uyn(e){return e.toString(this.encoding)}function Fyn(e){return e&&e.length?this.write(e):""}});var cW=w((L4r,ZJe)=>{"use strict";var KJe=zS().codes.ERR_STREAM_PREMATURE_CLOSE;function jyn(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 uW;function VS(e,t,n){return t=Byn(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Byn(e){var t=zyn(e,"string");return typeof t=="symbol"?t:String(t)}function zyn(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 Gyn=cW(),WS=Symbol("lastResolve"),eT=Symbol("lastReject"),fM=Symbol("error"),lW=Symbol("ended"),tT=Symbol("lastPromise"),Bae=Symbol("handlePromise"),nT=Symbol("stream");function KS(e,t){return{value:e,done:t}}function Vyn(e){var t=e[WS];if(t!==null){var n=e[nT].read();n!==null&&(e[tT]=null,e[WS]=null,e[eT]=null,t(KS(n,!1)))}}function Wyn(e){process.nextTick(Vyn,e)}function Kyn(e,t){return function(n,r){e.then(function(){if(t[lW]){n(KS(void 0,!0));return}t[Bae](n,r)},r)}}var Yyn=Object.getPrototypeOf(function(){}),Zyn=Object.setPrototypeOf((uW={get stream(){return this[nT]},next:function(){var t=this,n=this[fM];if(n!==null)return Promise.reject(n);if(this[lW])return Promise.resolve(KS(void 0,!0));if(this[nT].destroyed)return new Promise(function(o,a){process.nextTick(function(){t[fM]?a(t[fM]):o(KS(void 0,!0))})});var r=this[tT],i;if(r)i=new Promise(Kyn(r,this));else{var s=this[nT].read();if(s!==null)return Promise.resolve(KS(s,!1));i=new Promise(this[Bae])}return this[tT]=i,i}},VS(uW,Symbol.asyncIterator,function(){return this}),VS(uW,"return",function(){var t=this;return new Promise(function(n,r){t[nT].destroy(null,function(i){if(i){r(i);return}n(KS(void 0,!0))})})}),uW),Yyn),Jyn=function(t){var n,r=Object.create(Zyn,(n={},VS(n,nT,{value:t,writable:!0}),VS(n,WS,{value:null,writable:!0}),VS(n,eT,{value:null,writable:!0}),VS(n,fM,{value:null,writable:!0}),VS(n,lW,{value:t._readableState.endEmitted,writable:!0}),VS(n,Bae,{value:function(s,o){var a=r[nT].read();a?(r[tT]=null,r[WS]=null,r[eT]=null,s(KS(a,!1))):(r[WS]=s,r[eT]=o)},writable:!0}),n));return r[tT]=null,Gyn(t,function(i){if(i&&i.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=r[eT];s!==null&&(r[tT]=null,r[WS]=null,r[eT]=null,s(i)),r[fM]=i;return}var o=r[WS];o!==null&&(r[tT]=null,r[WS]=null,r[eT]=null,o(KS(void 0,!0))),r[lW]=!0}),t.on("readable",Wyn.bind(null,r)),r};JJe.exports=Jyn});var tXe=w((F4r,eXe)=>{"use strict";function QJe(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 Xyn(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var s=e.apply(t,n);function o(c){QJe(s,r,i,o,a,"next",c)}function a(c){QJe(s,r,i,o,a,"throw",c)}o(void 0)})}}function $Je(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 Qyn(e){for(var t=1;t{"use strict";dXe.exports=nr;var xk;nr.ReadableState=sXe;var j4r=Y("events").EventEmitter,iXe=function(t,n){return t.listeners(n).length},hM=Rae(),dW=Y("buffer").Buffer,iSn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function sSn(e){return dW.from(e)}function oSn(e){return dW.isBuffer(e)||e instanceof iSn}var zae=Y("util"),An;zae&&zae.debuglog?An=zae.debuglog("stream"):An=function(){};var aSn=RJe(),Jae=kae(),cSn=Iae(),uSn=cSn.getHighWaterMark,fW=zS().codes,lSn=fW.ERR_INVALID_ARG_TYPE,dSn=fW.ERR_STREAM_PUSH_AFTER_EOF,fSn=fW.ERR_METHOD_NOT_IMPLEMENTED,pSn=fW.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,Ok,Gae,Vae;X_()(nr,hM);var pM=Jae.errorOrDestroy,Wae=["error","close","destroy","pause","resume"];function hSn(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 sXe(e,t,n){xk=xk||Q_(),e=e||{},typeof n!="boolean"&&(n=t instanceof xk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=uSn(this,e,"readableHighWaterMark",n),this.buffer=new aSn,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&&(Ok||(Ok=qae().StringDecoder),this.decoder=new Ok(e.encoding),this.encoding=e.encoding)}function nr(e){if(xk=xk||Q_(),!(this instanceof nr))return new nr(e);var t=this instanceof xk;this._readableState=new sXe(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),hM.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=Jae.destroy;nr.prototype._undestroy=Jae.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=dW.from(e,t),t=""),r=!0),oXe(this,e,t,!1,r)};nr.prototype.unshift=function(e){return oXe(this,e,null,!0,!1)};function oXe(e,t,n,r,i){An("readableAddChunk",t);var s=e._readableState;if(t===null)s.reading=!1,ySn(e,s);else{var o;if(i||(o=mSn(s,t)),o)pM(e,o);else if(s.objectMode||t&&t.length>0)if(typeof t!="string"&&!s.objectMode&&Object.getPrototypeOf(t)!==dW.prototype&&(t=sSn(t)),r)s.endEmitted?pM(e,new pSn):Kae(e,s,t,!0);else if(s.ended)pM(e,new dSn);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||t.length!==0?Kae(e,s,t,!1):Zae(e,s)):Kae(e,s,t,!1)}else r||(s.reading=!1,Zae(e,s))}return!s.ended&&(s.length=nXe?e=nXe:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function rXe(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=gSn(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?Yae(this):pW(this),null;if(e=rXe(e,t),e===0&&t.ended)return t.length===0&&Yae(this),null;var r=t.needReadable;An("need readable",r),(t.length===0||t.length-e0?i=uXe(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&&Yae(this)),i!==null&&this.emit("data",i),i};function ySn(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?pW(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,aXe(e)))}}function pW(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(aXe,e))}function aXe(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,Xae(e)}function Zae(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(SSn,e,t))}function SSn(e,t){for(;!t.reading&&!t.ended&&(t.length1&&lXe(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),iXe(e,"error")===0&&pM(e,g)}hSn(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 bSn(e){return function(){var n=e._readableState;An("pipeOnDrain",n.awaitDrain),n.awaitDrain&&n.awaitDrain--,n.awaitDrain===0&&iXe(e,"data")&&(n.flowing=!0,Xae(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?pW(this):r.reading||process.nextTick(ESn,this)),n};nr.prototype.addListener=nr.prototype.on;nr.prototype.removeListener=function(e,t){var n=hM.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(cXe,this),n};nr.prototype.removeAllListeners=function(e){var t=hM.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(cXe,this),t};function cXe(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 ESn(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,_Sn(this,e)),e.paused=!1,this};function _Sn(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(TSn,e,t))}function TSn(e,t){An("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),Xae(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 Xae(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 Yae(e){var t=e._readableState;An("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(vSn,t,e))}function vSn(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 Vae===void 0&&(Vae=tXe()),Vae(nr,e,t)});function lXe(e,t){for(var n=0,r=e.length;n{"use strict";pXe.exports=tg;var hW=zS().codes,RSn=hW.ERR_METHOD_NOT_IMPLEMENTED,ASn=hW.ERR_MULTIPLE_CALLBACK,wSn=hW.ERR_TRANSFORM_ALREADY_TRANSFORMING,kSn=hW.ERR_TRANSFORM_WITH_LENGTH_0,mW=Q_();X_()(tg,mW);function ISn(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(r===null)return this.emit("error",new ASn);n.writechunk=null,n.writecb=null,t!=null&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{"use strict";mXe.exports=mM;var hXe=Qae();X_()(mM,hXe);function mM(e){if(!(this instanceof mM))return new mM(e);hXe.call(this,e)}mM.prototype._transform=function(e,t,n){n(null,e)}});var _Xe=w((z4r,EXe)=>{"use strict";var $ae;function OSn(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var bXe=zS().codes,PSn=bXe.ERR_MISSING_ARGS,NSn=bXe.ERR_STREAM_DESTROYED;function yXe(e){if(e)throw e}function CSn(e){return e.setHeader&&typeof e.abort=="function"}function MSn(e,t,n,r){r=OSn(r);var i=!1;e.on("close",function(){i=!0}),$ae===void 0&&($ae=cW()),$ae(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,CSn(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();r(o||new NSn("pipe"))}}}function SXe(e){e()}function DSn(e,t){return e.pipe(t)}function LSn(e){return!e.length||typeof e[e.length-1]!="function"?yXe:e.pop()}function USn(){for(var e=arguments.length,t=new Array(e),n=0;n0;return MSn(o,c,u,function(l){i||(i=l),l&&s.forEach(SXe),!c&&(s.forEach(SXe),r(i))})});return t.reduce(DSn)}EXe.exports=USn});var TXe=w((Ad,yM)=>{var gM=Y("stream");process.env.READABLE_STREAM==="disable"&&gM?(yM.exports=gM.Readable,Object.assign(yM.exports,gM),yM.exports.Stream=gM):(Ad=yM.exports=Uae(),Ad.Stream=gM||Ad,Ad.Readable=Ad,Ad.Writable=Mae(),Ad.Duplex=Q_(),Ad.Transform=Qae(),Ad.PassThrough=gXe(),Ad.finished=cW(),Ad.pipeline=_Xe())});var AXe=w((G4r,RXe)=>{RXe.exports=vXe;function vXe(e,t){if(e&&t)return vXe(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 wXe=AXe();ece.exports=wXe(gW);ece.exports.strict=wXe(kXe);gW.proto=gW(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return gW(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return kXe(this)},configurable:!0})});function gW(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function kXe(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 PXe=w((W4r,OXe)=>{var FSn=IXe(),jSn=function(){},HSn=global.Bare?queueMicrotask:process.nextTick.bind(process),qSn=function(e){return e.setHeader&&typeof e.abort=="function"},BSn=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},xXe=function(e,t,n){if(typeof t=="function")return xXe(e,null,t);t||(t={}),n=FSn(n||jSn);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(){HSn(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 qSn(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)),BSn(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)}};OXe.exports=xXe});var CXe=w((K4r,NXe)=>{NXe.exports=zSn;function zSn(e){var t=e._readableState;return t?t.objectMode||typeof e._duplexState=="number"?e.read():e.read(GSn(t)):null}function GSn(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 FXe=w((Y4r,UXe)=>{var yW=TXe(),MXe=PXe(),VSn=X_(),WSn=CXe(),DXe=Buffer.from&&Buffer.from!==Uint8Array.from?Buffer.from([0]):new Buffer([0]),tce=function(e,t){e._corked?e.once("uncork",t):t()},KSn=function(e,t){e._autoDestroy&&e.destroy(t)},LXe=function(e,t){return function(n){n?KSn(e,n.message==="premature close"?null:n):t&&!e._ended&&e.end()}},YSn=function(e,t){if(!e||e._writableState&&e._writableState.finished)return t();if(e._writableState)return e.end(t);e.end(),t()},ZSn=function(){},JSn=function(e){return new yW.Readable({objectMode:!0,highWaterMark:16}).wrap(e)},_a=function(e,t,n){if(!(this instanceof _a))return new _a(e,t,n);yW.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)};VSn(_a,yW.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=MXe(e,{writable:!0,readable:!1},LXe(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=MXe(e,{writable:!1,readable:!0},LXe(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:JSn(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=WSn(this._readable2))!==null;)this.destroyed||(this._drained=this.push(e));this._forwarding=!1}};_a.prototype.destroy=function(e,t){if(t||(t=ZSn),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 tce(this,this._write.bind(this,e,t,n));if(e===DXe)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"),tce(this,function(){YSn(t._forwardEnd&&t._writable,function(){t._writableState.prefinished===!1&&(t._writableState.prefinished=!0),t.emit("prefinish"),tce(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(DXe),yW.Writable.prototype.end.call(this,n))};UXe.exports=_a});var BXe=w((Z4r,bW)=>{"use strict";var{ServerResponse:XSn}=Y("node:http"),{PassThrough:jXe}=Y("node:stream"),{randomBytes:QSn}=Y("node:crypto"),$Sn=JC(),HXe=yJe(),qXe=FXe(),rT=Symbol("ws-socket"),SW=Symbol("ws-head"),ebn=/HTTP\/1.1 (\d+)/u;function nce(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 HXe.Server(s);e.decorate("websocketServer",a);async function c(h="/",m={},g={}){let y=new jXe,b=new jXe,S=new qXe(y,b),E=new qXe(b,y),_=new HXe(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(ebn.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":QSn(16).toString("base64")},httpVersion:"1.1",url:h,[rT]:S,[SW]:T};return o.emit("upgrade",P,P[rT],P[SW]),x}e.decorate("injectWS",c);function u(h,m,g){h[rT]=m,h[SW]=g;let y=new XSn(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[rT],h[SW],g=>{a.emit("connection",g,h),g.on("error",y=>{e.log.error(y)}),m(g)})};e.addHook("onRequest",(h,m,g)=>{h.raw[rT]?h.ws=!0:h.ws=!1,g()}),e.addHook("onResponse",(h,m,g)=>{h.ws&&h.raw[rT].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[rT])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()}bW.exports=$Sn(nce,{fastify:"5.x",name:"@fastify/websocket"});bW.exports.default=nce;bW.exports.fastifyWebsocket=nce});var GXe=w((J4r,zXe)=>{"use strict";function tbn(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}}zXe.exports=tbn});var WXe=w((X4r,rce)=>{"use strict";var nbn=GXe();function VXe(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=nbn(rbn),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 rbn(){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 ibn(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=VXe(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}}rce.exports=VXe;rce.exports.promise=ibn});var _W=w((Q4r,SM)=>{"use strict";var{format:sbn}=Y("node:util");function obn(){return`${this.name} [${this.code}]: ${this.message}`}var EW=Symbol.for("fastify-error-generic");function Pk(e,t,n=500,r=Error,i=Pk.captureStackTrace){let s=e===EW;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=sbn(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},[EW]:{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[EW]},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=obn,a}Pk.captureStackTrace=!0;var abn=Pk(EW,"Fastify Error",500,Error);SM.exports=Pk;SM.exports.FastifyError=abn;SM.exports.default=Pk;SM.exports.createError=Pk});var TW=w(($4r,KXe)=>{"use strict";var{createError:YS}=_W();KXe.exports={AVV_ERR_EXPOSE_ALREADY_DEFINED:YS("AVV_ERR_EXPOSE_ALREADY_DEFINED","'%s' is already defined, specify an expose option for '%s'"),AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:YS("AVV_ERR_ATTRIBUTE_ALREADY_DEFINED","'%s' is already defined"),AVV_ERR_CALLBACK_NOT_FN:YS("AVV_ERR_CALLBACK_NOT_FN","Callback for '%s' hook is not a function. Received: '%s'"),AVV_ERR_PLUGIN_NOT_VALID:YS("AVV_ERR_PLUGIN_NOT_VALID","Plugin must be a function or a promise. Received: '%s'"),AVV_ERR_ROOT_PLG_BOOTED:YS("AVV_ERR_ROOT_PLG_BOOTED","Root plugin has already booted"),AVV_ERR_PARENT_PLG_LOADED:YS("AVV_ERR_PARENT_PLG_LOADED","Impossible to load '%s' plugin because the parent '%s' was already loaded"),AVV_ERR_READY_TIMEOUT:YS("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:YS("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 Nk=w((eKr,YXe)=>{"use strict";var cbn=Symbol("avvio.Boot"),ubn=Symbol("isOnCloseHandler"),lbn=Symbol("avvio.ThenifyDoNotWrap"),dbn=Symbol("avvio.TimeTree.untrackNode"),fbn=Symbol("avvio.TimeTree.trackNode"),pbn=Symbol("avvio.TimeTree.getParent"),hbn=Symbol("avvio.TimeTree.getNode"),mbn=Symbol("avvio.TimeTree.addNode"),gbn=Symbol.for("plugin-meta");YXe.exports={kAvvio:cbn,kIsOnCloseHandler:ubn,kThenifyDoNotWrap:lbn,kUntrackNode:dbn,kTrackNode:fbn,kGetParent:pbn,kGetNode:hbn,kAddNode:mbn,kPluginMeta:gbn}});var tQe=w((tKr,eQe)=>{"use strict";var{kUntrackNode:ZXe,kTrackNode:ice,kGetParent:JXe,kGetNode:XXe,kAddNode:QXe}=Nk(),sce=class{constructor(){this.root=null,this.tableId=new Map,this.tableLabel=new Map}[ice](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)}[JXe](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}[XXe](t){return this.tableId.get(t)}[QXe](t,n,r){let i=this[JXe](t);if(i===null)return this.root={parent:null,id:"root",label:n,nodes:[],start:r,stop:null,diff:-1},this[ice](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[ice](a),o}start(t,n,r=Date.now()){return this[QXe](t,n,r)}stop(t,n=Date.now()){let r=this[XXe](t);r&&(r.stop=n,r.diff=r.stop-r.start||0,this[ZXe](r))}toJSON(){return Object.assign({},this.root)}prettyPrint(){return $Xe(this.toJSON())}};function $Xe(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:ybn}=Y("node:util"),Sbn=ybn("avvio");nQe.exports={debug:Sbn}});var iQe=w((rKr,rQe)=>{"use strict";function bbn(){let e={resolve:null,reject:null,promise:null};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}rQe.exports={createPromise:bbn}});var aQe=w((iKr,oQe)=>{"use strict";var{kPluginMeta:sQe}=Nk();function Ebn(e,t){return e[sQe]?.name?e[sQe].name:t?.name?t.name:e.name?e.name:e.toString().split(` -`).slice(0,2).map(n=>n.trim()).join(" -- ")}oQe.exports={getPluginName:Ebn}});var RW=w((sKr,cQe)=>{"use strict";function _bn(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}cQe.exports={isPromiseLike:_bn}});var lQe=w((oKr,uQe)=>{"use strict";var{EventEmitter:Tbn}=Y("node:events"),{inherits:vbn}=Y("node:util"),{debug:Ta}=vW(),{createPromise:Rbn}=iQe(),{AVV_ERR_PLUGIN_EXEC_TIMEOUT:Abn}=TW(),{getPluginName:wbn}=aQe(),{isPromiseLike:kbn}=RW();function Ck(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=wbn(t,n),this.queue.pause(),this._error=null,this.loaded=!1,this._promise=null,this.startTime=null}vbn(Ck,Tbn);Ck.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 Abn(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);kbn(a)?(Ta("exec: resolving promise",r),a.then(()=>process.nextTick(o),c=>process.nextTick(o,c))):n.length<3&&o()};Ck.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=Rbn(),t=this._promise.promise,this.server?e():this.on("start",e)),t};Ck.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)};Ck.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=Ibn,queueMicrotask(r)}};queueMicrotask(r),this.queue.resume()};function Ibn(){}uQe.exports={Plugin:Ck}});var fQe=w((aKr,dQe)=>{"use strict";var{AVV_ERR_PLUGIN_NOT_VALID:oce}=TW();function xbn(e){if(!(e&&(typeof e=="function"||typeof e.then=="function")))throw Array.isArray(e)?new oce("array"):e===null?new oce("null"):new oce(typeof e)}dQe.exports={validatePlugin:xbn}});var hQe=w((cKr,pQe)=>{"use strict";function Obn(e){return e!==null&&typeof e=="object"&&typeof e.default=="function"}pQe.exports={isBundledOrTypescriptPlugin:Obn}});var yQe=w((uKr,gQe)=>{"use strict";var{debug:mQe}=vW(),{kThenifyDoNotWrap:ace}=Nk();function Pbn(){if(this.booted){mQe("thenify returning undefined because we are already booted");return}if(this[ace]){this[ace]=!1;return}return mQe("thenify"),(e,t)=>this._loadRegistered().then(()=>(this[ace]=!0,e(this._server)),t)}gQe.exports={thenify:Pbn}});var bQe=w((lKr,SQe)=>{"use strict";var{isPromiseLike:Nbn}=RW(),{kAvvio:Cbn}=Nk();function Mbn(e,t,n){let r;try{r=e.apply(e,t)}catch(i){n&&process.nextTick(n,i);return}Nbn(r)&&!r[Cbn]?r.then(()=>process.nextTick(n),i=>process.nextTick(n,i)):n&&process.nextTick(n)}SQe.exports={executeWithThenable:Mbn}});var IQe=w((dKr,kQe)=>{"use strict";var AW=WXe(),Dbn=Y("node:events").EventEmitter,Lbn=Y("node:util").inherits,{AVV_ERR_EXPOSE_ALREADY_DEFINED:bM,AVV_ERR_CALLBACK_NOT_FN:Mk,AVV_ERR_ROOT_PLG_BOOTED:Ubn,AVV_ERR_READY_TIMEOUT:Fbn,AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:jbn}=TW(),{kAvvio:TQe,kIsOnCloseHandler:vQe}=Nk(),{TimeTree:Hbn}=tQe(),{Plugin:RQe}=lQe(),{debug:Dk}=vW(),{validatePlugin:qbn}=fQe(),{isBundledOrTypescriptPlugin:Bbn}=hQe(),{isPromiseLike:zbn}=RW(),{thenify:AQe}=yQe(),{executeWithThenable:EQe}=bQe();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 Hbn,this._readyQ=AW(this,wQe,1),this._readyQ.pause(),this._readyQ.drain=()=>{this.emit("start"),this._readyQ.drain=_Qe},this._closeQ=AW(this,Vbn,1),this._closeQ.pause(),this._closeQ.drain=()=>{this.emit("close"),this._closeQ.drain=_Qe},this._doStart=null;let r=this;this._root=new RQe(AW(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=>{Dk("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()})}Lbn(Ms,Dbn);"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[TQe]=!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(Bbn(e)&&(e=e.default),qbn(e),t=t||{},this.booted)throw new Ubn;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 RQe(AW(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 bM(r,"use");if(n[r]=function(c,u){return t.use(c,u),this},n[i])throw new bM(i,"after");if(n[i]=function(c){return typeof c!="function"?t._loadRegistered():(t.after(cce(c,this)),this)},n[s])throw new bM(s,"ready");if(n[s]=function(c){if(c&&typeof c!="function")throw new Mk(s,typeof c);return t.ready(c?cce(c,this):void 0)},n[o])throw new bM(o,"onClose");if(n[o]=function(c){if(typeof c!="function")throw new Mk(o,typeof c);return t.onClose(Wbn(c,this)),this},n[a])throw new bM(a,"close");if(n[a]=function(c){if(c&&typeof c!="function")throw new Mk(a,typeof c);return c?(t.close(cce(c,this)),this):t.close()},n.then)throw new jbn("then");Object.defineProperty(n,"then",{get:AQe.bind(t)}),n[TQe]=!0};Ms.prototype.after=function(e){if(!e)return this._loadRegistered();this._addPlugin(t.bind(this),{},!0);function t(n,r,i){wQe.call(this,e,i)}return this};Ms.prototype.onClose=function(e){if(typeof e!="function")throw new Mk("onClose",typeof e);return e[vQe]=!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 Mk("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 Mk("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(zbn(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){Dk("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 Dk("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 _Qe(){}function wQe(e,t){let n=this._server,r=this._error;if(this._error=null,e.length===0)this._error=r,EQe(e,[],t);else if(e.length===1)EQe(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 Gbn.call(this,e,r,n,t)}function Gbn(e,t,n,r){let i=e.unwrappedName??e.name;Dk("setting up ready timeout",i,this._opts.timeout);let s=setTimeout(()=>{Dk("timed out",i),s=null;let a=new Fbn(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 Vbn(e,t){let n=this._server,r=e[vQe];if(e.length===0||e.length===1){let i;r?i=e(n):i=e(this._error),i&&typeof i.then=="function"?(Dk("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 Wbn(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 cce(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)}}kQe.exports=Ms});var $s=w((fKr,xQe)=>{"use strict";var Kbn={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")};xQe.exports=Kbn});var PQe=w((pKr,wW)=>{"use strict";var{format:uce}=Y("node:util");function Ybn(e){return OQe({...e,name:"DeprecationWarning"})}function OQe({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=uce(n,o,a,c):o&&a?u=uce(n,o,a):o?u=uce(n,o):u=n,u},s}var lce={createWarning:OQe,createDeprecation:Ybn};wW.exports=lce;wW.exports.default=lce;wW.exports.processWarning=lce});var Lk=w((hKr,NQe)=>{"use strict";var{createWarning:EM}=PQe(),Zbn=EM({name:"FastifyWarning",code:"FSTWRN001",message:"The %s schema for %s: %s is missing. This may indicate the schema is not well specified.",unlimited:!0}),Jbn=EM({name:"FastifyWarning",code:"FSTWRN003",message:"The %s mixes async and callback styles that may lead to unhandled rejections. Please use only one of them.",unlimited:!0}),Xbn=EM({name:"FastifyWarning",code:"FSTWRN004",message:"It seems that you are overriding an errorHandler in the same scope, which can lead to subtle bugs.",unlimited:!0}),Qbn=EM({name:"FastifySecurity",code:"FSTSEC001",message:'You are using /%s/ Content-Type which may be vulnerable to CORS attack. Please make sure your RegExp start with "^" or include ";?" to proper detection of the essence MIME type.',unlimited:!0}),$bn=EM({name:"FastifyWarning",code:"FSTDEP022",message:'The router options for %s property access is deprecated. Please use "options.routerOptions" instead for accessing router options. The router options will be removed in `fastify@6`.',unlimited:!0});NQe.exports={FSTWRN001:Zbn,FSTWRN003:Jbn,FSTWRN004:Xbn,FSTSEC001:Qbn,FSTDEP022:$bn}});var Ko=w((mKr,kW)=>{"use strict";var je=_W(),iT={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 eEn(e,t){return t.cause=e,t}kW.exports=iT;kW.exports.appendStackTrace=eEn;kW.exports.AVVIO_ERRORS_MAP={AVV_ERR_CALLBACK_NOT_FN:iT.FST_ERR_PLUGIN_CALLBACK_NOT_FN,AVV_ERR_PLUGIN_NOT_VALID:iT.FST_ERR_PLUGIN_NOT_VALID,AVV_ERR_ROOT_PLG_BOOTED:iT.FST_ERR_ROOT_PLG_BOOTED,AVV_ERR_PARENT_PLG_LOADED:iT.FST_ERR_PARENT_PLUGIN_BOOTED,AVV_ERR_READY_TIMEOUT:iT.FST_ERR_PLUGIN_TIMEOUT,AVV_ERR_PLUGIN_EXEC_TIMEOUT:iT.FST_ERR_PLUGIN_TIMEOUT}});var ZS=w((gKr,qQe)=>{"use strict";var tEn=["onRoute","onRegister","onReady","onListen","preClose","onClose"],LQe=["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError","onRequestAbort"],nEn=LQe.concat(tEn),{FST_ERR_HOOK_INVALID_TYPE:rEn,FST_ERR_HOOK_INVALID_HANDLER:iEn,FST_ERR_SEND_UNDEFINED_ERR:IW,FST_ERR_HOOK_TIMEOUT:sEn,FST_ERR_HOOK_NOT_SUPPORTED:oEn,AVVIO_ERRORS_MAP:CQe,appendStackTrace:MQe}=Ko(),{kChildren:_M,kHooks:UQe,kRequestPayloadStream:DQe}=$s();function TM(){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=[]}TM.prototype=Object.create(null);TM.prototype.validate=function(e,t){if(typeof e!="string")throw new rEn;if(Array.isArray(this[e])===!1)throw new oEn(e);if(typeof t!="function")throw new iEn(e,Object.prototype.toString.call(t))};TM.prototype.add=function(e,t){this.validate(e,t),this[e].push(t)};function aEn(e){let t=new TM;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 FQe(e,t,n,r){let i=n[UQe][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=MQe(l,new sEn(e,f)):l=CQe[l.code]!=null?MQe(l,new CQe[l.code](l.message)):l,r(l);return}r()}function c(l){if(l){a(l);return}if(s===i.length&&o===n[_M].length){s===0&&o===0?a():t(function(f,p){a(f),p(f)});return}if(s===i.length&&o{"use strict";BQe.exports=function(){return{[Symbol.iterator]:function*(){},add(){},delete(){},has(){return!0}}}});var dce=w((SKr,VQe)=>{"use strict";var{kTestInternals:yEn}=$s();function GQe(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}VQe.exports={withResolvers:typeof Promise.withResolvers=="function"?Promise.withResolvers.bind(Promise):GQe,[yEn]:{withResolvers:GQe}}});var n$e=w((bKr,t$e)=>{"use strict";var SEn=Y("node:http"),bEn=Y("node:https"),WQe=Y("node:http2"),EEn=Y("node:dns"),_En=Y("node:os"),{kState:Ds,kOptions:TEn,kServerBindings:vEn,kHttp2ServerSessions:sT}=$s(),{FSTWRN003:REn}=Lk(),{onListenHookRunner:xW}=ZS(),{FST_ERR_REOPENED_CLOSE_SERVER:YQe,FST_ERR_REOPENED_SERVER:ZQe,FST_ERR_LISTEN_OPTIONS_INVALID:AEn,FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:wEn}=Ko(),kEn=zQe(),JQe=dce();t$e.exports.createServer=IEn;function XQe(e){return`Server listening at ${e}`}function IEn(e,t){let n=$Qe(e,t);function r(u={port:0,host:"localhost"},l=void 0){if(typeof l=="function"&&(l.constructor.name==="AsyncFunction"&&REn("listen method"),u.cb=l),u.signal){if(typeof u.signal.on!="function"&&typeof u.signal.addEventListener!="function")throw new AEn("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}KQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,l(null,p),xW(this)})}:u.cb=(f,p)=>{if(f){l(f,p);return}this[Ds].listening=!0,l(null,p),xW(this)},l===void 0)return xEn.call(this,n,u).then(p=>{let{promise:h,resolve:m}=JQe.withResolvers();return d==="localhost"?KQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,m(p),xW(this)}):(m(p),xW(this)),h});this.ready(QQe.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 wEn;typeof a!="boolean"&&(a=s?"idle":!1);let c=!i&&a===!0?new Set:kEn();return{server:n,listen:r,forceCloseConnections:a,serverHasCloseAllConnections:i,serverHasCloseHttp2Sessions:o,keepAliveConnections:c}}function KQe(e,t,n,r,i){this[Ds].listening=!1,EEn.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[vEn].push(h),u===c&&i()}}),h=$Qe(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,QQe.call(this,h,p)()}}if(c===0){i();return}let l=e.unref;e.unref=function(){l.call(e),e.emit("unref")}})}function QQe(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=e$e.call(this,e,t.listenTextResolver||XQe);t.cb(null,i)}};return r=>{if(r!=null)return t.cb(r);if(this[Ds].listening&&this[Ds].closing)return t.cb(new YQe,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 xEn(e,t){return this[Ds].listening&&this[Ds].closing?Promise.reject(new YQe):this[Ds].listening?Promise.reject(new ZQe):this.ready().then(()=>{if(this[Ds].aborted)return;let{promise:n,resolve:r,reject:i}=JQe.withResolvers(),s=c=>{a(),this[Ds].listening=!1,i(c)},o=()=>{a(),this[Ds].listening=!0,r(e$e.call(this,e,t.listenTextResolver||XQe))};function a(){e.removeListener("error",s),e.removeListener("listening",o)}return e.once("error",s),e.once("listening",o),e.listen(t),n})}function $Qe(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"?WQe.createSecureServer(n,t):WQe.createServer(e.http,t);return i.on("session",s=>s.setTimeout(e.http2SessionTimeout,()=>{s.close()})),e.forceCloseConnections===!0&&(i.closeHttp2Sessions=PEn(i)),i.setTimeout(e.connectionTimeout),i}let r=n?bEn.createServer(n,t):SEn.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 OEn(e){return e.address==="0.0.0.0"?Object.values(_En.networkInterfaces()).flatMap(t=>t.filter(n=>n.family==="IPv4")).sort(t=>t.internal?-1:1).map(t=>t.address):[e.address]}function e$e(e,t){let n;typeof e.address()=="string"?n=[e.address()]:(e.address().address.indexOf(":")===-1?n=OEn(e.address()).map(i=>i+":"+e.address().port):n=["["+e.address().address+"]:"+e.address().port],n=n.map(i=>"http"+(this[TEn].https?"s":"")+"://"+i));for(let i of n)this.log.info(t(i));return n[0]}function PEn(e){return e[sT]=new Set,e.on("session",function(t){t.once("connect",function(){e[sT].add(t)}),t.once("close",function(){e[sT].delete(t)}),t.once("frameError",function(n,r,i){i===0&&e[sT].delete(t)}),t.once("goaway",function(){e[sT].delete(t)})}),function(){if(e[sT].size!==0)for(let n of e[sT])n.close()}}});var hce=w((EKr,s$e)=>{"use strict";var fce=/(?:^|;)\s*([\w!#$%&'*+.^`|~-]+)=([^;]*)/gm,r$e=/^[\w!#$%&'*+.^`|~-]+$/,i$e=/^[\w!#$%&'*+.^`|~-]+\s*$/,pce=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();r$e.test(c)===!0&&i$e.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(r$e.test(s)===!1||i$e.test(o)===!1)return;this.#i=s,this.#e=o,this.#t=!0,this.#n=!1;let a=fce.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=fce.exec(i);continue}this.#r.set(c,u.slice(1,u.length-1))}else this.#r.set(c,u);a=fce.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}};s$e.exports=pce});var OW=w((_Kr,o$e)=>{"use strict";var{kReplyHasStatusCode:NEn}=$s();function CEn(e,t){if(!e[NEn]||e.statusCode===200){let n=t&&(t.statusCode||t.status);e.code(n>=400?n:500)}}o$e.exports={setErrorStatusCode:CEn}});var mce=w((TKr,c$e)=>{"use strict";var{kReplyIsError:a$e,kReplyHijacked:MEn}=$s(),{setErrorStatusCode:DEn}=OW(),LEn=Y("node:diagnostics_channel"),RM=LEn.tracingChannel("fastify.request.handler");function UEn(e,t,n){n&&(n.async=!0),e.then(function(r){if(t[MEn]!==!0){n&&RM.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[a$e]=!0,t.send(i)}}finally{n&&RM.asyncEnd.publish(n)}}},function(r){n&&(n.error=r,DEn(t,r),RM.error.publish(n),RM.asyncStart.publish(n));try{if(t.sent===!0){t.log.error({err:r},"Promise errored, but reply.sent = true was set");return}t[a$e]=!0,t.send(r)}catch(i){t.send(i)}finally{n&&RM.asyncEnd.publish(n)}})}c$e.exports=UEn});var Sce=w((vKr,l$e)=>{"use strict";var{kSchemaHeaders:CW,kSchemaParams:gce,kSchemaQuerystring:yce,kSchemaBody:oT,kSchemaResponse:u$e}=$s(),FEn=/^[1-5](?:\d{2}|xx)$|^default$/,{FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:jEn}=Ko(),{FSTWRN001:PW}=Lk();function HEn(e,t){if(!e.schema||!e.schema.response)return;let{method:n,url:r}=e.config||{};e[u$e]=Object.keys(e.schema.response).reduce(function(i,s){let o=e.schema.response[s];if(s=s.toLowerCase(),!FEn.test(s))throw new jEn;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 qEn(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[CW]=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[CW]=t({schema:a,method:i,url:s,httpPart:"headers"})}else Object.hasOwn(r,"headers")&&PW("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[oT]=c}else e[oT]=t({schema:r.body,method:i,url:s,httpPart:"body"})}else Object.hasOwn(r,"body")&&PW("body",i,s);r.querystring?e[yce]=t({schema:r.querystring,method:i,url:s,httpPart:"querystring"}):Object.hasOwn(r,"querystring")&&PW("querystring",i,s),r.params?e[gce]=t({schema:r.params,method:i,url:s,httpPart:"params"}):Object.hasOwn(r,"params")&&PW("params",i,s)}function NW(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 MW(e,t,n){let r=n===void 0;if(r||!n.skipParams){let s=NW(e[gce],t,"params");if(s)return typeof s.then!="function"?JS(s,"params",e.schemaErrorFormatter):BEn(s,e,t)}if(r||!n.skipBody){let s=null;if(typeof e[oT]=="function")s=e[oT];else if(e[oT]){let a=WEn(t.headers["content-type"]),c=e[oT][a];c&&(s=c)}let o=NW(s,t,"body");if(o)return typeof o.then!="function"?JS(o,"body",e.schemaErrorFormatter):zEn(o,e,t)}if(r||!n.skipQuery){let s=NW(e[yce],t,"query");if(s)return typeof s.then!="function"?JS(s,"querystring",e.schemaErrorFormatter):GEn(s,e,t)}let i=NW(e[CW],t,"headers");return i?typeof i.then!="function"?JS(i,"headers",e.schemaErrorFormatter):VEn(i,e,t):!1}function BEn(e,t,n){return e.then(r=>r?JS(r,"params",t.schemaErrorFormatter):MW(t,n,{skipParams:!0}))}function zEn(e,t,n){return e.then(r=>r?JS(r,"body",t.schemaErrorFormatter):MW(t,n,{skipParams:!0,skipBody:!0}))}function GEn(e,t,n){return e.then(r=>r?JS(r,"querystring",t.schemaErrorFormatter):MW(t,n,{skipParams:!0,skipBody:!0,skipQuery:!0}))}function VEn(e,t,n){return e.then(r=>r?JS(r,"headers",t.schemaErrorFormatter):!1)}function JS(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 WEn(e){return e?e.trimStart().split(/[ ;]/,1)[0].trim().toLowerCase():""}l$e.exports={symbols:{bodySchema:oT,querystringSchema:yce,responseSchema:u$e,paramsSchema:gce,headersSchema:CW},compileSchemasForValidation:qEn,compileSchemasForSerialization:HEn,validate:MW}});var Tce=w((RKr,_ce)=>{"use strict";var KEn=Y("node:diagnostics_channel"),YEn=hce(),ZEn=mce(),{validate:JEn}=Sce(),{preValidationHookRunner:XEn,preHandlerHookRunner:QEn}=ZS(),{FST_ERR_CTP_INVALID_MEDIA_TYPE:$En}=Ko(),{setErrorStatusCode:d$e}=OW(),{kReplyIsError:wM,kRouteContext:Th,kFourOhFourContext:e_n,kSupportedHTTPMethods:f$e}=$s(),AM=KEn.tracingChannel("fastify.request.handler");function t_n(e,t,n){if(n.sent===!0)return;if(e!=null){n[wM]=!0,n.send(e);return}let r=t.method;if(this[f$e].bodyless.has(r)){Fk(t,n);return}if(this[f$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")){Fk(t,n);return}t[Th].contentTypeParser.run("",Fk,t,n);return}let o=new YEn(s);if(o.isValid===!1){n[wM]=!0,n.status(415).send(new $En);return}t[Th].contentTypeParser.run(o.toString(),Fk,t,n);return}Fk(t,n)}function Fk(e,t){try{e[Th].preValidation!==null?XEn(e[Th].preValidation,e,t,bce):bce(null,e,t)}catch(n){bce(n,e,t)}}function bce(e,t,n){if(n.sent===!0)return;if(e!=null){n[wM]=!0,n.send(e);return}let r=JEn(n[Th],t);if(r&&typeof r.then=="function"||!1){let s=p$e.bind(null,t,n);r.then(s,s)}else p$e(t,n,r)}function p$e(e,t,n){if(n){if(t[Th].attachValidation===!1){t.send(n);return}t.request.validationError=n}e[Th].preHandler!==null?QEn(e[Th].preHandler,e,t,Ece):Ece(null,e,t)}function Ece(e,t,n){if(n.sent)return;let r=t[Th];if(!AM.hasSubscribers||r[e_n]===null)h$e(e,t,n);else{let i={request:t,reply:n,async:!1,route:{url:r.config.url,method:r.config.method}};AM.start.runStores(i,h$e,void 0,e,t,n,i)}}function h$e(e,t,n,r){let i=t[Th];try{if(e!=null){n[wM]=!0,r&&(r.error=e,d$e(n,e),AM.error.publish(r)),n.send(e);return}let s;try{s=i.handler(t,n)}catch(o){r&&(r.error=o,d$e(n,o),AM.error.publish(r)),n[wM]=!0,n.send(o);return}s!==void 0&&(s!==null&&typeof s.then=="function"?ZEn(s,n,r):n.send(s))}finally{r&&AM.end.publish(r)}}_ce.exports=t_n;_ce.exports[Symbol.for("internals")]={handler:Fk,preHandlerCallback:Ece}});var g$e=w((AKr,m$e)=>{"use strict";function jk(){}var n_n={fatal:jk,error:jk,warn:jk,info:jk,debug:jk,trace:jk};Object.defineProperty(m$e,"exports",{get(){return Object.create(n_n)}})});var Rce=w((wKr,b$e)=>{"use strict";var kM=e=>e&&typeof e.message=="string",vce=e=>{if(!e)return;let t=e.cause;if(typeof t=="function"){let n=e.cause();return kM(n)?n:void 0}else return kM(t)?t:void 0},y$e=(e,t)=>{if(!kM(e))return"";let n=e.stack||"";if(t.has(e))return n+` -causes have become circular...`;let r=vce(e);return r?(t.add(e),n+` -caused by: `+y$e(r,t)):n},r_n=e=>y$e(e,new Set),S$e=(e,t,n)=>{if(!kM(e))return"";let r=n?"":e.message||"";if(t.has(e))return r+": ...";let i=vce(e);if(i){t.add(e);let s=typeof e.cause=="function";return r+(s?"":": ")+S$e(i,t,s)}else return r},i_n=e=>S$e(e,new Set);b$e.exports={isErrorLike:kM,getErrorCause:vce,stackWithCauses:r_n,messageWithCauses:i_n}});var Ace=w((kKr,_$e)=>{"use strict";var s_n=Symbol("circular-ref-tag"),DW=Symbol("pino-raw-err-ref"),E$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[DW]},set:function(e){this[DW]=e}}});Object.defineProperty(E$e,DW,{writable:!0,value:{}});_$e.exports={pinoErrProto:E$e,pinoErrorSymbols:{seen:s_n,rawSymbol:DW}}});var R$e=w((IKr,v$e)=>{"use strict";v$e.exports=kce;var{messageWithCauses:o_n,stackWithCauses:a_n,isErrorLike:T$e}=Rce(),{pinoErrProto:c_n,pinoErrorSymbols:u_n}=Ace(),{seen:wce}=u_n,{toString:l_n}=Object.prototype;function kce(e){if(!T$e(e))return e;e[wce]=void 0;let t=Object.create(c_n);t.type=l_n.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,t.message=o_n(e),t.stack=a_n(e),Array.isArray(e.errors)&&(t.aggregateErrors=e.errors.map(n=>kce(n)));for(let n in e)if(t[n]===void 0){let r=e[n];T$e(r)?n!=="cause"&&!Object.prototype.hasOwnProperty.call(r,wce)&&(t[n]=kce(r)):t[n]=r}return delete e[wce],t.raw=e,t}});var w$e=w((xKr,A$e)=>{"use strict";A$e.exports=UW;var{isErrorLike:Ice}=Rce(),{pinoErrProto:d_n,pinoErrorSymbols:f_n}=Ace(),{seen:LW}=f_n,{toString:p_n}=Object.prototype;function UW(e){if(!Ice(e))return e;e[LW]=void 0;let t=Object.create(d_n);t.type=p_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=>UW(n))),Ice(e.cause)&&!Object.prototype.hasOwnProperty.call(e.cause,LW)&&(t.cause=UW(e.cause));for(let n in e)if(t[n]===void 0){let r=e[n];Ice(r)?Object.prototype.hasOwnProperty.call(r,LW)||(t[n]=UW(r)):t[n]=r}return delete e[LW],t.raw=e,t}});var O$e=w((OKr,x$e)=>{"use strict";x$e.exports={mapHttpRequest:h_n,reqSerializer:I$e};var xce=Symbol("pino-raw-req-ref"),k$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[xce]},set:function(e){this[xce]=e}}});Object.defineProperty(k$e,xce,{writable:!0,value:{}});function I$e(e){let t=e.info||e.socket,n=Object.create(k$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 h_n(e){return{req:I$e(e)}}});var M$e=w((PKr,C$e)=>{"use strict";C$e.exports={mapHttpResponse:m_n,resSerializer:N$e};var Oce=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[Oce]},set:function(e){this[Oce]=e}}});Object.defineProperty(P$e,Oce,{writable:!0,value:{}});function N$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 m_n(e){return{res:N$e(e)}}});var Nce=w((NKr,D$e)=>{"use strict";var Pce=R$e(),g_n=w$e(),FW=O$e(),jW=M$e();D$e.exports={err:Pce,errWithCause:g_n,mapHttpRequest:FW.mapHttpRequest,mapHttpResponse:jW.mapHttpResponse,req:FW.reqSerializer,res:jW.resSerializer,wrapErrorSerializer:function(t){return t===Pce?t:function(r){return t(Pce(r))}},wrapRequestSerializer:function(t){return t===FW.reqSerializer?t:function(r){return t(FW.reqSerializer(r))}},wrapResponseSerializer:function(t){return t===jW.resSerializer?t:function(r){return t(jW.resSerializer(r))}}}});var Cce=w((CKr,L$e)=>{"use strict";function y_n(e,t){return t}L$e.exports=function(){let t=Error.prepareStackTrace;Error.prepareStackTrace=y_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 B$e=w((MKr,q$e)=>{"use strict";function Mce(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)j$e(l,a);else{let f=typeof n=="function"?n(b_n(l,a),[...c.slice(0,d),...a]):n;F$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 A_n(e){if(!Array.isArray(e))throw new TypeError("paths must be an array");for(let t of e)R_n(t)}function w_n(e={}){let{paths:t=[],censor:n="[REDACTED]",serialize:r=JSON.stringify,strict:i=!0,remove:s=!1}=e;A_n(t);let o=T_n(t);return function(c){if(i&&(c===null||typeof c!="object")&&(c==null||typeof c!="object"))return r?r(c):c;let u=v_n(c,o),l=c,d=n;return typeof n=="function"&&(d=n),E_n(u,t,d,s),r===!1?(u.restore=function(){return Mce(l)},u):typeof r=="function"?r(u):JSON.stringify(u)}}q$e.exports=w_n});var Hk=w((DKr,z$e)=>{"use strict";var k_n=Symbol("pino.setLevel"),I_n=Symbol("pino.getLevel"),x_n=Symbol("pino.levelVal"),O_n=Symbol("pino.levelComp"),P_n=Symbol("pino.useLevelLabels"),N_n=Symbol("pino.useOnlyCustomLevels"),C_n=Symbol("pino.mixin"),M_n=Symbol("pino.lsCache"),D_n=Symbol("pino.chindings"),L_n=Symbol("pino.asJson"),U_n=Symbol("pino.write"),F_n=Symbol("pino.redactFmt"),j_n=Symbol("pino.time"),H_n=Symbol("pino.timeSliceIndex"),q_n=Symbol("pino.stream"),B_n=Symbol("pino.stringify"),z_n=Symbol("pino.stringifySafe"),G_n=Symbol("pino.stringifiers"),V_n=Symbol("pino.end"),W_n=Symbol("pino.formatOpts"),K_n=Symbol("pino.messageKey"),Y_n=Symbol("pino.errorKey"),Z_n=Symbol("pino.nestedKey"),J_n=Symbol("pino.nestedKeyStr"),X_n=Symbol("pino.mixinMergeStrategy"),Q_n=Symbol("pino.msgPrefix"),$_n=Symbol("pino.wildcardFirst"),eTn=Symbol.for("pino.serializers"),tTn=Symbol.for("pino.formatters"),nTn=Symbol.for("pino.hooks"),rTn=Symbol.for("pino.metadata");z$e.exports={setLevelSym:k_n,getLevelSym:I_n,levelValSym:x_n,levelCompSym:O_n,useLevelLabelsSym:P_n,mixinSym:C_n,lsCacheSym:M_n,chindingsSym:D_n,asJsonSym:L_n,writeSym:U_n,serializersSym:eTn,redactFmtSym:F_n,timeSym:j_n,timeSliceIndexSym:H_n,streamSym:q_n,stringifySym:B_n,stringifySafeSym:z_n,stringifiersSym:G_n,endSym:V_n,formatOptsSym:W_n,messageKeySym:K_n,errorKeySym:Y_n,nestedKeySym:Z_n,wildcardFirstSym:$_n,needsMetadataGsym:rTn,useOnlyCustomLevelsSym:N_n,formattersSym:tTn,hooksSym:nTn,nestedKeyStrSym:J_n,mixinMergeStrategySym:X_n,msgPrefixSym:Q_n}});var Lce=w((LKr,K$e)=>{"use strict";var G$e=B$e(),{redactFmtSym:iTn,wildcardFirstSym:qW}=Hk(),Dce=/[^.[\]]+|\[([^[\]]*?)\]/g,V$e="[Redacted]",W$e=!1;function sTn(e,t){let{paths:n,censor:r,remove:i}=oTn(e),s=n.reduce((c,u)=>{Dce.lastIndex=0;let l=Dce.exec(u),d=Dce.exec(u),f=l[1]!==void 0?l[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):l[0];if(f==="*"&&(f=qW),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!==qW&&c[f].length===0&&c[f].push(...c[qW]||[]),f===qW&&Object.keys(c).forEach(function(m){c[m]&&c[m].push(h)}),c[f].push(h),c},{}),o={[iTn]:G$e({paths:n,censor:r,serialize:t,strict:W$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]=G$e({paths:s[u],censor:l,serialize:t,strict:W$e,remove:i})}return c},o)}function oTn(e){if(Array.isArray(e))return e={paths:e,censor:V$e},e;let{paths:t,censor:n=V$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}}K$e.exports=sTn});var J$e=w((UKr,Z$e)=>{"use strict";var aTn=()=>"",cTn=()=>`,"time":${Date.now()}`,uTn=()=>`,"time":${Math.round(Date.now()/1e3)}`,lTn=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,dTn=1000000n,Y$e=1000000000n,fTn=BigInt(Date.now())*dTn,pTn=process.hrtime.bigint(),hTn=()=>{let e=process.hrtime.bigint()-pTn,t=fTn+e,n=t/Y$e,r=t%Y$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:aTn,epochTime:cTn,unixTime:uTn,isoTime:lTn,isoTimeNano:hTn}});var Q$e=w((FKr,X$e)=>{"use strict";function mTn(e){try{return JSON.stringify(e)}catch{return'"[Circular]"'}}X$e.exports=gTn;function gTn(e,t,n){var r=n&&n.stringify||mTn,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));Uce.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(););};Uce.exports=e}});var oet=w((HKr,set)=>{"use strict";var Si=Y("fs"),yTn=Y("events"),STn=Y("util").inherits,$$e=Y("path"),Hce=Fce(),bTn=Y("assert"),BW=100,zW=Buffer.allocUnsafe(0),ETn=16*1024,eet="buffer",tet="utf8",[_Tn,TTn]=(process.versions.node||"0.0").split(".").map(Number),vTn=_Tn>=22&&TTn>=7;function net(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($$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($$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||ETn,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===eet)this._writingBuf=zW,this.write=wTn,this.flush=ITn,this.flushSync=OTn,this._actualWrite=NTn,h=()=>Si.writeSync(this.fd,this._writingBuf),m=()=>Si.write(this.fd,this._writingBuf,this.release);else if(f===void 0||f===tet)this._writingBuf="",this.write=ATn,this.flush=kTn,this.flushSync=xTn,this._actualWrite=PTn,h=()=>Buffer.isBuffer(this._writingBuf)?Si.writeSync(this.fd,this._writingBuf):Si.writeSync(this.fd,this._writingBuf,"utf8"),m=()=>Buffer.isBuffer(this._writingBuf)?Si.write(this.fd,this._writingBuf,this.release):Si.write(this.fd,this._writingBuf,"utf8",this.release);else throw new Error(`SonicBoom supports "${tet}" and "${eet}", but passed ${f}`);if(typeof t=="number")this.fd=t,process.nextTick(()=>this.emit("ready"));else if(typeof t=="string")net(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{Hce(BW),this.release(void 0,0)}catch(E){this.release(E)}else setTimeout(m,BW);else this._writing=!1,this.emit("error",g);return}this.emit("write",y);let b=jce(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(),_=jce(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,GW(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(RTn,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 jce(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 RTn(e){e.listenerCount("drain")>0&&(e._asyncDrainScheduled=!1,e.emit("drain"))}STn(Pf,yTn);function ret(e,t){return e.length===0?zW:e.length===1?e[0]:Buffer.concat(e,t)}function ATn(e){if(this.destroyed)throw new Error("SonicBoom destroyed");e=""+e;let t=Buffer.byteLength(e),n=this._len+t,r=this._bufs;return this.maxLength&&n>this.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?r.push(e):r[r.length-1]+=e,this._len=n,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._lenthis.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?(n.push([e]),r.push(e.length)):(n[n.length-1].push(e),r[r.length-1]+=e.length),this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._len{if(this._fsync)this._flushPending=!1,e();else try{Si.fsync(this.fd,r=>{this._flushPending=!1,e(r)})}catch(r){e(r)}this.off("error",n)},n=r=>{this._flushPending=!1,e(r),this.off("drain",t)};this.once("drain",t),this.once("error",n)}function kTn(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&&iet.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&&iet.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)})}),net(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():GW(this)))};function xTn(){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=jce(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;Hce(BW)}}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=zW);let e=zW;for(;this._bufs.length||e.length;){e.length<=0&&(e=ret(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;Hce(BW)}}}Pf.prototype.destroy=function(){this.destroyed||GW(this)};function PTn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:this._bufs.shift()||"",this.sync)try{let t=Buffer.isBuffer(this._writingBuf)?Si.writeSync(this.fd,this._writingBuf):Si.writeSync(this.fd,this._writingBuf,"utf8");e(null,t)}catch(t){e(t)}else Si.write(this.fd,this._writingBuf,e)}function NTn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:ret(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 vTn&&(this._writingBuf=Buffer.from(this._writingBuf)),Si.write(this.fd,this._writingBuf,e)}function GW(e){if(e.fd===-1){e.once("ready",GW.bind(null,e));return}e._periodicFlushTimer!==void 0&&clearInterval(e._periodicFlushTimer),e.destroyed=!0,e._bufs=[],e._lens=[],bTn(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;set.exports=Pf});var qce=w((qKr,fet)=>{"use strict";var Nf={exit:[],beforeExit:[]},aet={exit:DTn,beforeExit:LTn},qk;function CTn(){qk===void 0&&(qk=new FinalizationRegistry(UTn))}function MTn(e){Nf[e].length>0||process.on(e,aet[e])}function cet(e){Nf[e].length>0||(process.removeListener(e,aet[e]),Nf.exit.length===0&&Nf.beforeExit.length===0&&(qk=void 0))}function DTn(){uet("exit")}function LTn(){uet("beforeExit")}function uet(e){for(let t of Nf[e]){let n=t.deref(),r=t.fn;n!==void 0&&r(n,e)}Nf[e]=[]}function UTn(e){for(let t of["exit","beforeExit"]){let n=Nf[t].indexOf(e);Nf[t].splice(n,n+1),cet(t)}}function det(e,t,n){if(t===void 0)throw new Error("the object can't be undefined");MTn(e);let r=new WeakRef(t);r.fn=n,CTn(),qk.register(t,r),Nf[e].push(r)}function FTn(e,t){det("exit",e,t)}function jTn(e,t){det("beforeExit",e,t)}function HTn(e){if(qk!==void 0){qk.unregister(e);for(let t of["exit","beforeExit"])Nf[t]=Nf[t].filter(n=>{let r=n.deref();return r&&r!==e}),cet(t)}}fet.exports={register:FTn,registerBeforeExit:jTn,unregister:HTn}});var pet=w((BKr,qTn)=>{qTn.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 met=w((zKr,het)=>{"use strict";function BTn(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 zTn(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()}het.exports={wait:BTn,waitDiff:zTn}});var yet=w((GKr,get)=>{"use strict";get.exports={WRITE_INDEX:4,READ_INDEX:8}});var vet=w((VKr,Tet)=>{"use strict";var{version:GTn}=pet(),{EventEmitter:VTn}=Y("events"),{Worker:WTn}=Y("worker_threads"),{join:KTn}=Y("path"),{pathToFileURL:YTn}=Y("url"),{wait:ZTn}=met(),{WRITE_INDEX:xu,READ_INDEX:Iu}=yet(),JTn=Y("buffer"),XTn=Y("assert"),be=Symbol("kImpl"),QTn=JTn.constants.MAX_STRING_LENGTH,IM=class{constructor(t){this._value=t}deref(){return this._value}},WW=class{register(){}unregister(){}},$Tn=process.env.NODE_V8_COVERAGE?WW:global.FinalizationRegistry||WW,evn=process.env.NODE_V8_COVERAGE?IM:global.WeakRef||IM,bet=new $Tn(e=>{e.exited||e.terminate()});function tvn(e,t){let{filename:n,workerData:r}=t,s=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||KTn(__dirname,"lib","worker.js"),o=new WTn(s,{...t.workerOpts,trackUnmanagedFds:!1,workerData:{filename:n.indexOf("file://")===0?n:YTn(n).href,dataBuf:e[be].dataBuf,stateBuf:e[be].stateBuf,workerData:{$context:{threadStreamVersion:GTn},...r}}});return o.stream=new IM(e),o.on("message",nvn),o.on("exit",_et),bet.register(e,o),o}function Eet(e){XTn(!e[be].sync),e[be].needDrain&&(e[be].needDrain=!1,e.emit("drain"))}function VW(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?Wce(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),KW(e,r,VW.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),KW(e,r,VW.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),VW(e)})}else vh(e,new Error("overwritten"))}function nvn(e){let t=this.stream.deref();if(t===void 0){this.exited=!0,this.terminate();return}switch(e.code){case"READY":this.stream=new evn(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 _et(e){let t=this.stream.deref();t!==void 0&&(bet.unregister(t),t.worker.exited=!0,t.worker.off("exit",_et),vh(t,e!==0?new Error("the worker thread exited"):null))}var zce=class extends VTn{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=tvn(this,t),this.on("message",(n,r)=>{this.worker.postMessage(n,r)})}write(t){if(this[be].destroyed)return Gce(this,new Error("the worker has exited")),!1;if(this[be].ending)return Gce(this,new Error("the worker is ending")),!1;if(this[be].flushing&&this[be].buf.length+t.length>=QTn)try{Bce(this),this[be].flushing=!0}catch(n){return vh(this,n),!1}if(this[be].buf+=t,this[be].sync)try{return Bce(this),!0}catch(n){return vh(this,n),!1}return this[be].flushing||(this[be].flushing=!0,setImmediate(VW,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,Wce(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);ZTn(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||(Bce(this),Vce(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 Gce(e,t){setImmediate(()=>{e.emit("error",t)})}function vh(e,t){e[be].destroyed||(e[be].destroyed=!0,t&&(e[be].errored=t,Gce(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 KW(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 Wce(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 Bce(e){let t=()=>{e[be].ending?Wce(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,xu),r=e[be].data.length-n;if(r===0){Vce(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),KW(e,i,t);else{for(Vce(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),KW(e,i,t)}}}function Vce(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)")}}Tet.exports=zce});var Zce=w((WKr,wet)=>{"use strict";var{createRequire:rvn}=Y("module"),{existsSync:ivn}=Y("node:fs"),svn=Cce(),{join:Kce,isAbsolute:Aet,sep:ovn}=Y("node:path"),{fileURLToPath:avn}=Y("node:url"),cvn=Fce(),Yce=qce(),uvn=vet();function lvn(e){Yce.register(e,mvn),Yce.registerBeforeExit(e,gvn),e.on("close",function(){Yce.unregister(e)})}function dvn(){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"]||Kce(__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 hvn(p(d),c,s,a,f);function p(h){if(h=l[h]||h,Aet(h)||h.indexOf("file://")===0)return h;if(h==="pino/file")return Kce(__dirname,"..","file.js");let m;for(let g of u)try{let y=g==="node:repl"?process.cwd()+ovn:g;m=rvn(y).resolve(h);break}catch{continue}if(!m)throw new Error(`unable to determine transport target for "${h}"`);return m}}wet.exports=yvn});var JW=w((YKr,jet)=>{"use strict";var Svn=Y("node:diagnostics_channel"),ket=Q$e(),{mapHttpRequest:bvn,mapHttpResponse:Evn}=Nce(),Xce=oet(),Iet=qce(),{lsCacheSym:_vn,chindingsSym:Cet,writeSym:xet,serializersSym:Met,formatOptsSym:Oet,endSym:Tvn,stringifiersSym:Det,stringifySym:Let,stringifySafeSym:Qce,wildcardFirstSym:Uet,nestedKeySym:vvn,formattersSym:Fet,messageKeySym:Rvn,errorKeySym:Avn,nestedKeyStrSym:wvn,msgPrefixSym:YW}=Hk(),{isMainThread:kvn}=Y("worker_threads"),Ivn=Zce(),[xvn]=process.versions.node.split(".").map(e=>Number(e)),Pet=Svn.tracingChannel("pino_asJson"),Jce=xvn>=25?e=>JSON.stringify(e):Pvn;function Bk(){}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=bvn(r):typeof r.setHeader=="function"&&(r=Evn(r)));let o;s===null&&i.length===0?o=[null]:(s=i.shift(),o=i),typeof this[YW]=="string"&&s!==void 0&&s!==null&&(s=this[YW]+s),this[xet](r,ket(s,o,this[Oet]),e)}else{let s=r===void 0?i.shift():r;typeof this[YW]=="string"&&s!==void 0&&s!==null&&(s=this[YW]+s),this[xet](null,ket(s,i,this[Oet]),e)}}}function Pvn(e){let t="",n=0,r=!1,i=255,s=e.length;if(s>100)return JSON.stringify(e);for(var o=0;o=32;o++)i=e.charCodeAt(o),(i===34||i===92)&&(t+=e.slice(n,o)+"\\",n=o,r=!0);return r?t+=e.slice(n):t=e,i<32?JSON.stringify(e):'"'+t+'"'}function Nvn(e,t,n,r){if(Pet.hasSubscribers===!1)return Net.call(this,e,t,n,r);let i={instance:this,arguments};return Pet.traceSync(Net,i,this,e,t,n,r)}function Net(e,t,n,r){let i=this[Let],s=this[Qce],o=this[Det],a=this[Tvn],c=this[Cet],u=this[Met],l=this[Fet],d=this[Rvn],f=this[Avn],p=this[_vn][n]+r;p=p+c;let h;l.log&&(e=l.log(e));let m=o[Uet],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||Jce)(h);break;default:h=(S||i)(h,s)}if(h===void 0)continue;let E=Jce(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||Jce)(h),y=',"'+d+'":'+h;break;default:h=(b||i)(h,s),y=',"'+d+'":'+h}}return this[vvn]&&g?p+this[wvn]+g.slice(1)+"}"+y+a:p+g+y+a}function Cvn(e,t){let n,r=e[Cet],i=e[Let],s=e[Qce],o=e[Det],a=o[Uet],c=e[Met],u=e[Fet].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 Mvn(e){return e.write!==e.constructor.prototype.write}function ZW(e){let t=new Xce(e);return t.on("error",n),!e.sync&&kvn&&(Iet.register(t,Dvn),t.on("close",function(){Iet.unregister(t)})),t;function n(r){if(r.code==="EPIPE"){t.write=Bk,t.end=Bk,t.flushSync=Bk,t.destroy=Bk;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 Lvn(e){return function(n,r,i={},s){if(typeof i=="string")s=ZW({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=ZW({dest:s})}else if(i instanceof Xce||i.writable||i._writableState)s=i,i={};else if(i.transport){if(i.transport instanceof Xce||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=Bk),s||(Mvn(process.stdout)?s=process.stdout:s=ZW({fd:process.stdout.fd||1})),{opts:i,stream:s}}}function Uvn(e,t){try{return JSON.stringify(e)}catch{try{return(t||this[Qce])(e)}catch{return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function Fvn(e,t,n){return{level:e,bindings:t,log:n}}function jvn(e){let t=Number(e);return typeof e=="string"&&Number.isFinite(t)?t:e===void 0?1:e}jet.exports={noop:Bk,buildSafeSonicBoom:ZW,asChindings:Cvn,asJson:Nvn,genLog:Ovn,createArgsNormalizer:Lvn,stringify:Uvn,buildFormatters:Fvn,normalizeDestFileDescriptor:jvn}});var XW=w((ZKr,Het)=>{var Hvn={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},qvn={ASC:"ASC",DESC:"DESC"};Het.exports={DEFAULT_LEVELS:Hvn,SORTING_ORDER:qvn}});var tue=w((JKr,Get)=>{"use strict";var{lsCacheSym:Bvn,levelValSym:$ce,useOnlyCustomLevelsSym:zvn,streamSym:Gvn,formattersSym:Vvn,hooksSym:Wvn,levelCompSym:qet}=Hk(),{noop:Kvn,genLog:aT}=JW(),{DEFAULT_LEVELS:Rh,SORTING_ORDER:Bet}=XW(),zet={fatal:e=>{let t=aT(Rh.fatal,e);return function(...n){let r=this[Gvn];if(t.call(this,...n),typeof r.flushSync=="function")try{r.flushSync()}catch{}}},error:e=>aT(Rh.error,e),warn:e=>aT(Rh.warn,e),info:e=>aT(Rh.info,e),debug:e=>aT(Rh.debug,e),trace:e=>aT(Rh.trace,e)},eue=Object.keys(Rh).reduce((e,t)=>(e[Rh[t]]=t,e),{}),Yvn=Object.keys(eue).reduce((e,t)=>(e[t]='{"level":'+Number(t),e),{});function Zvn(e){let t=e[Vvn].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[Bvn]=r,e}function Jvn(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 Xvn(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[$ce],i=this[$ce]=n[e],s=this[zvn],o=this[qet],a=this[Wvn].logMethod;for(let c in n){if(o(n[c],i)===!1){this[c]=Kvn;continue}this[c]=Jvn(c,s)?zet[c](a):aT(n[c],a)}this.emit("level-change",e,i,t[r],r,this)}function Qvn(e){let{levels:t,levelVal:n}=this;return t&&t.labels?t.labels[n]:""}function $vn(e){let{values:t}=this.levels,n=t[e];return n!==void 0&&this[qet](n,this[$ce])}function eRn(e,t,n){return e===Bet.DESC?t<=n:t>=n}function tRn(e){return typeof e=="string"?eRn.bind(null,e):e}function nRn(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:eue,n),i=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),t?null:Rh,e);return{labels:r,values:i}}function rRn(e,t,n){if(typeof e=="number"){if(![].concat(Object.keys(t||{}).map(s=>t[s]),n?[]:Object.keys(eue).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 iRn(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 sRn(e){if(typeof e!="function"&&!(typeof e=="string"&&Object.values(Bet).includes(e)))throw new Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}Get.exports={initialLsCache:Yvn,genLsCache:Zvn,levelMethods:zet,getLevel:Qvn,setLevel:Xvn,isLevelEnabled:$vn,mappings:nRn,assertNoLevelCollisions:iRn,assertDefaultLevelFound:rRn,genLevelComparison:tRn,assertLevelComparison:sRn}});var nue=w((XKr,Vet)=>{"use strict";Vet.exports={version:"10.3.1"}});var $et=w(($Kr,Qet)=>{"use strict";var{EventEmitter:oRn}=Y("node:events"),{lsCacheSym:aRn,levelValSym:cRn,setLevelSym:iue,getLevelSym:Wet,chindingsSym:$W,mixinSym:uRn,asJsonSym:Yet,writeSym:lRn,mixinMergeStrategySym:dRn,timeSym:fRn,timeSliceIndexSym:pRn,streamSym:Zet,serializersSym:cT,formattersSym:xM,errorKeySym:hRn,messageKeySym:mRn,useOnlyCustomLevelsSym:gRn,needsMetadataGsym:yRn,redactFmtSym:SRn,stringifySym:bRn,formatOptsSym:ERn,stringifiersSym:_Rn,msgPrefixSym:sue,hooksSym:TRn}=Hk(),{getLevel:vRn,setLevel:RRn,isLevelEnabled:ARn,mappings:wRn,initialLsCache:kRn,genLsCache:IRn,assertNoLevelCollisions:xRn}=tue(),{asChindings:oue,asJson:ORn,buildFormatters:rue,stringify:Ket,noop:Jet}=JW(),{version:PRn}=nue(),NRn=Lce(),CRn=class{},Xet={constructor:CRn,child:MRn,bindings:DRn,setBindings:LRn,flush:jRn,isLevelEnabled:ARn,version:PRn,get level(){return this[Wet]()},set level(e){this[iue](e)},get levelVal(){return this[cRn]},set levelVal(e){throw Error("levelVal is read-only")},get msgPrefix(){return this[sue]},get[Symbol.toStringTag](){return"Pino"},[aRn]:kRn,[lRn]:FRn,[Yet]:ORn,[Wet]:vRn,[iue]:RRn};Object.setPrototypeOf(Xet,oRn.prototype);Qet.exports=function(){return Object.create(Xet)};var QW=e=>e;function MRn(e,t){if(!e)throw Error("missing bindings for child Pino");let n=this[cT],r=this[xM],i=Object.create(this);if(t==null)return i[xM].bindings!==QW&&(i[xM]=rue(r.level,QW,r.log)),i[$W]=oue(i,e),this.onChild!==Jet&&this.onChild(i),i;if(t.hasOwnProperty("serializers")===!0){i[cT]=Object.create(null);for(let u in n)i[cT][u]=n[u];let a=Object.getOwnPropertySymbols(n);for(var s=0;s{"use strict";var{hasOwnProperty:OM}=Object.prototype,lT=uue();lT.configure=uue;lT.stringify=lT;lT.default=lT;lue.stringify=lT;lue.configure=uue;ntt.exports=lT;var HRn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function XS(e){return e.length<5e3&&!HRn.test(e)?`"${e}"`:JSON.stringify(e)}function aue(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 qRn=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function cue(e){return qRn.call(e)!==void 0&&e.length!==0}function ett(e,t,n){e.length= 1`)}return n===void 0?1/0:n}function uT(e){return e===1?"1 item":`${e} items`}function VRn(e){let t=new Set;for(let n of e)(typeof n=="string"||typeof n=="number")&&t.add(String(n));return t}function WRn(e){if(OM.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 uue(e){e={...e};let t=WRn(e);t&&(e.bigint===void 0&&(e.bigint=!1),"circularValue"in e||(e.circularValue=Error));let n=BRn(e),r=GRn(e,"bigint"),i=zRn(e),s=typeof i=="function"?i:void 0,o=ttt(e,"maximumDepth"),a=ttt(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 XS(S);case"object":{if(S===null)return"null";if(m.indexOf(S)!==-1)return n;let E="",_=",",T=b;if(Array.isArray(S)){if(S.length===0)return"[]";if(o{"use strict";var xgn=cJe(),Ogn=ZV(),Pgn=_k(),Ngn=hae(),Cgn=yae(),Mgn=vae(),Of=$V(),yJe=gJe();Of.createWebSocketStream=xgn;Of.extension=Ogn;Of.PerMessageDeflate=Pgn;Of.Receiver=Ngn;Of.Sender=Cgn;Of.Server=yJe;Of.subprotocol=Mgn;Of.WebSocket=Of;Of.WebSocketServer=yJe;SJe.exports=Of});var Aae=w((A4r,EJe)=>{EJe.exports=Y("stream")});var wJe=w((w4r,AJe)=>{"use strict";function _Je(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 TJe(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 tW.alloc(0);for(var r=tW.allocUnsafe(n>>>0),i=this.head,s=0;i;)Bgn(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=tW.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:qgn,value:function(n,r){return wae(this,TJe(TJe({},r),{},{depth:0,customInspect:!1}))}}]),e})()});var Iae=w((k4r,IJe)=>{"use strict";function zgn(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(kae,this,e)):process.nextTick(kae,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(nW,n):(n._writableState.errorEmitted=!0,process.nextTick(kJe,n,s)):process.nextTick(kJe,n,s):t?(process.nextTick(nW,n),t(s)):process.nextTick(nW,n)}),this)}function kJe(e,t){kae(e,t),nW(e)}function nW(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function Ggn(){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 kae(e,t){e.emit("error",t)}function Vgn(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}IJe.exports={destroy:zgn,undestroy:Ggn,errorOrDestroy:Vgn}});var zS=w((I4r,PJe)=>{"use strict";var OJe={};function Rd(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,OJe[e]=i}function xJe(e,t){if(Array.isArray(e)){let n=e.length;return e=e.map(r=>String(r)),n>2?`one of ${t} ${e.slice(0,n-1).join(", ")}, or `+e[n-1]:n===2?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}else return`of ${t} ${String(e)}`}function Wgn(e,t,n){return e.substr(!n||n<0?0:+n,t.length)===t}function Kgn(e,t,n){return(n===void 0||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}function Ygn(e,t,n){return typeof n!="number"&&(n=0),n+t.length>e.length?!1:e.indexOf(t,n)!==-1}Rd("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);Rd("ERR_INVALID_ARG_TYPE",function(e,t,n){let r;typeof t=="string"&&Wgn(t,"not ")?(r="must not be",t=t.replace(/^not /,"")):r="must be";let i;if(Kgn(e," argument"))i=`The ${e} ${r} ${xJe(t,"type")}`;else{let s=Ygn(e,".")?"property":"argument";i=`The "${e}" ${s} ${r} ${xJe(t,"type")}`}return i+=`. Received type ${typeof n}`,i},TypeError);Rd("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Rd("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});Rd("ERR_STREAM_PREMATURE_CLOSE","Premature close");Rd("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});Rd("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Rd("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Rd("ERR_STREAM_WRITE_AFTER_END","write after end");Rd("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Rd("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);Rd("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");PJe.exports.codes=OJe});var xae=w((x4r,NJe)=>{"use strict";var Zgn=zS().codes.ERR_INVALID_OPT_VALUE;function Jgn(e,t,n){return e.highWaterMark!=null?e.highWaterMark:t?e[n]:null}function Xgn(e,t,n,r){var i=Jgn(t,r,n);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var s=r?n:"highWaterMark";throw new Zgn(s,i)}return Math.floor(i)}return e.objectMode?16:16*1024}NJe.exports={getHighWaterMark:Xgn}});var CJe=w((O4r,Oae)=>{typeof Object.create=="function"?Oae.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Oae.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 X_=w((P4r,Nae)=>{try{if(Pae=Y("util"),typeof Pae.inherits!="function")throw"";Nae.exports=Pae.inherits}catch{Nae.exports=CJe()}var Pae});var DJe=w((N4r,MJe)=>{MJe.exports=Y("util").deprecate});var Dae=w((C4r,qJe)=>{"use strict";qJe.exports=gs;function UJe(e){var t=this;this.next=null,this.entry=null,this.finish=function(){Ryn(t,e)}}var kk;gs.WritableState=lM;var Qgn={deprecate:DJe()},FJe=Aae(),iW=Y("buffer").Buffer,$gn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function eyn(e){return iW.from(e)}function tyn(e){return iW.isBuffer(e)||e instanceof $gn}var Mae=Iae(),nyn=xae(),ryn=nyn.getHighWaterMark,GS=zS().codes,iyn=GS.ERR_INVALID_ARG_TYPE,syn=GS.ERR_METHOD_NOT_IMPLEMENTED,oyn=GS.ERR_MULTIPLE_CALLBACK,ayn=GS.ERR_STREAM_CANNOT_PIPE,cyn=GS.ERR_STREAM_DESTROYED,uyn=GS.ERR_STREAM_NULL_VALUES,lyn=GS.ERR_STREAM_WRITE_AFTER_END,dyn=GS.ERR_UNKNOWN_ENCODING,Ik=Mae.errorOrDestroy;X_()(gs,FJe);function fyn(){}function lM(e,t,n){kk=kk||Q_(),e=e||{},typeof n!="boolean"&&(n=t instanceof kk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=ryn(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){byn(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 UJe(this)}lM.prototype.getBuffer=function(){for(var t=this.bufferedRequest,n=[];t;)n.push(t),t=t.next;return n};(function(){try{Object.defineProperty(lM.prototype,"buffer",{get:Qgn.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var rW;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(rW=Function.prototype[Symbol.hasInstance],Object.defineProperty(gs,Symbol.hasInstance,{value:function(t){return rW.call(this,t)?!0:this!==gs?!1:t&&t._writableState instanceof lM}})):rW=function(t){return t instanceof this};function gs(e){kk=kk||Q_();var t=this instanceof kk;if(!t&&!rW.call(gs,this))return new gs(e);this._writableState=new lM(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)),FJe.call(this)}gs.prototype.pipe=function(){Ik(this,new ayn)};function pyn(e,t){var n=new lyn;Ik(e,n),process.nextTick(t,n)}function hyn(e,t,n,r){var i;return n===null?i=new uyn:typeof n!="string"&&!t.objectMode&&(i=new iyn("chunk",["string","Buffer"],n)),i?(Ik(e,i),process.nextTick(r,i),!1):!0}gs.prototype.write=function(e,t,n){var r=this._writableState,i=!1,s=!r.objectMode&&tyn(e);return s&&!iW.isBuffer(e)&&(e=eyn(e)),typeof t=="function"&&(n=t,t=null),s?t="buffer":t||(t=r.defaultEncoding),typeof n!="function"&&(n=fyn),r.ending?pyn(this,n):(s||hyn(this,r,e,n))&&(r.pendingcb++,i=gyn(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&&jJe(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 dyn(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(gs.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function myn(e,t,n){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=iW.from(t,n)),t}Object.defineProperty(gs.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function gyn(e,t,n,r,i,s){if(!n){var o=myn(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 Ayn=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};zJe.exports=Eh;var BJe=Fae(),Uae=Dae();X_()(Eh,BJe);for(Lae=Ayn(Uae.prototype),sW=0;sW{var aW=Y("buffer"),_h=aW.Buffer;function GJe(e,t){for(var n in e)t[n]=e[n]}_h.from&&_h.alloc&&_h.allocUnsafe&&_h.allocUnsafeSlow?VJe.exports=aW:(GJe(aW,jae),jae.Buffer=$_);function $_(e,t,n){return _h(e,t,n)}$_.prototype=Object.create(_h.prototype);GJe(_h,$_);$_.from=function(e,t,n){if(typeof e=="number")throw new TypeError("Argument must not be a number");return _h(e,t,n)};$_.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};$_.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return _h(e)};$_.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return aW.SlowBuffer(e)}});var Bae=w(YJe=>{"use strict";var qae=WJe().Buffer,KJe=qae.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 Iyn(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 xyn(e){var t=Iyn(e);if(typeof t!="string"&&(qae.isEncoding===KJe||!KJe(e)))throw new Error("Unknown encoding: "+e);return t||e}YJe.StringDecoder=dM;function dM(e){this.encoding=xyn(e);var t;switch(this.encoding){case"utf16le":this.text=Dyn,this.end=Lyn,t=4;break;case"utf8":this.fillLast=Nyn,t=4;break;case"base64":this.text=Uyn,this.end=Fyn,t=3;break;default:this.write=jyn,this.end=Hyn;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=qae.allocUnsafe(t)}dM.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 Oyn(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 Pyn(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 Nyn(e){var t=this.lastTotal-this.lastNeed,n=Pyn(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 Cyn(e,t){var n=Oyn(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 Myn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function Dyn(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 Uyn(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 jyn(e){return e.toString(this.encoding)}function Hyn(e){return e&&e.length?this.write(e):""}});var cW=w((L4r,XJe)=>{"use strict";var ZJe=zS().codes.ERR_STREAM_PREMATURE_CLOSE;function qyn(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 uW;function VS(e,t,n){return t=Gyn(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Gyn(e){var t=Vyn(e,"string");return typeof t=="symbol"?t:String(t)}function Vyn(e,t){if(typeof e!="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Wyn=cW(),WS=Symbol("lastResolve"),eT=Symbol("lastReject"),fM=Symbol("error"),lW=Symbol("ended"),tT=Symbol("lastPromise"),zae=Symbol("handlePromise"),nT=Symbol("stream");function KS(e,t){return{value:e,done:t}}function Kyn(e){var t=e[WS];if(t!==null){var n=e[nT].read();n!==null&&(e[tT]=null,e[WS]=null,e[eT]=null,t(KS(n,!1)))}}function Yyn(e){process.nextTick(Kyn,e)}function Zyn(e,t){return function(n,r){e.then(function(){if(t[lW]){n(KS(void 0,!0));return}t[zae](n,r)},r)}}var Jyn=Object.getPrototypeOf(function(){}),Xyn=Object.setPrototypeOf((uW={get stream(){return this[nT]},next:function(){var t=this,n=this[fM];if(n!==null)return Promise.reject(n);if(this[lW])return Promise.resolve(KS(void 0,!0));if(this[nT].destroyed)return new Promise(function(o,a){process.nextTick(function(){t[fM]?a(t[fM]):o(KS(void 0,!0))})});var r=this[tT],i;if(r)i=new Promise(Zyn(r,this));else{var s=this[nT].read();if(s!==null)return Promise.resolve(KS(s,!1));i=new Promise(this[zae])}return this[tT]=i,i}},VS(uW,Symbol.asyncIterator,function(){return this}),VS(uW,"return",function(){var t=this;return new Promise(function(n,r){t[nT].destroy(null,function(i){if(i){r(i);return}n(KS(void 0,!0))})})}),uW),Jyn),Qyn=function(t){var n,r=Object.create(Xyn,(n={},VS(n,nT,{value:t,writable:!0}),VS(n,WS,{value:null,writable:!0}),VS(n,eT,{value:null,writable:!0}),VS(n,fM,{value:null,writable:!0}),VS(n,lW,{value:t._readableState.endEmitted,writable:!0}),VS(n,zae,{value:function(s,o){var a=r[nT].read();a?(r[tT]=null,r[WS]=null,r[eT]=null,s(KS(a,!1))):(r[WS]=s,r[eT]=o)},writable:!0}),n));return r[tT]=null,Wyn(t,function(i){if(i&&i.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=r[eT];s!==null&&(r[tT]=null,r[WS]=null,r[eT]=null,s(i)),r[fM]=i;return}var o=r[WS];o!==null&&(r[tT]=null,r[WS]=null,r[eT]=null,o(KS(void 0,!0))),r[lW]=!0}),t.on("readable",Yyn.bind(null,r)),r};QJe.exports=Qyn});var rXe=w((F4r,nXe)=>{"use strict";function eXe(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 $yn(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var s=e.apply(t,n);function o(c){eXe(s,r,i,o,a,"next",c)}function a(c){eXe(s,r,i,o,a,"throw",c)}o(void 0)})}}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 eSn(e){for(var t=1;t{"use strict";pXe.exports=nr;var xk;nr.ReadableState=aXe;var j4r=Y("events").EventEmitter,oXe=function(t,n){return t.listeners(n).length},hM=Aae(),dW=Y("buffer").Buffer,oSn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function aSn(e){return dW.from(e)}function cSn(e){return dW.isBuffer(e)||e instanceof oSn}var Gae=Y("util"),An;Gae&&Gae.debuglog?An=Gae.debuglog("stream"):An=function(){};var uSn=wJe(),Xae=Iae(),lSn=xae(),dSn=lSn.getHighWaterMark,fW=zS().codes,fSn=fW.ERR_INVALID_ARG_TYPE,pSn=fW.ERR_STREAM_PUSH_AFTER_EOF,hSn=fW.ERR_METHOD_NOT_IMPLEMENTED,mSn=fW.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,Ok,Vae,Wae;X_()(nr,hM);var pM=Xae.errorOrDestroy,Kae=["error","close","destroy","pause","resume"];function gSn(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 aXe(e,t,n){xk=xk||Q_(),e=e||{},typeof n!="boolean"&&(n=t instanceof xk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=dSn(this,e,"readableHighWaterMark",n),this.buffer=new uSn,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&&(Ok||(Ok=Bae().StringDecoder),this.decoder=new Ok(e.encoding),this.encoding=e.encoding)}function nr(e){if(xk=xk||Q_(),!(this instanceof nr))return new nr(e);var t=this instanceof xk;this._readableState=new aXe(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),hM.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=Xae.destroy;nr.prototype._undestroy=Xae.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=dW.from(e,t),t=""),r=!0),cXe(this,e,t,!1,r)};nr.prototype.unshift=function(e){return cXe(this,e,null,!0,!1)};function cXe(e,t,n,r,i){An("readableAddChunk",t);var s=e._readableState;if(t===null)s.reading=!1,bSn(e,s);else{var o;if(i||(o=ySn(s,t)),o)pM(e,o);else if(s.objectMode||t&&t.length>0)if(typeof t!="string"&&!s.objectMode&&Object.getPrototypeOf(t)!==dW.prototype&&(t=aSn(t)),r)s.endEmitted?pM(e,new mSn):Yae(e,s,t,!0);else if(s.ended)pM(e,new pSn);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||t.length!==0?Yae(e,s,t,!1):Jae(e,s)):Yae(e,s,t,!1)}else r||(s.reading=!1,Jae(e,s))}return!s.ended&&(s.length=iXe?e=iXe:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function sXe(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=SSn(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?Zae(this):pW(this),null;if(e=sXe(e,t),e===0&&t.ended)return t.length===0&&Zae(this),null;var r=t.needReadable;An("need readable",r),(t.length===0||t.length-e0?i=dXe(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&&Zae(this)),i!==null&&this.emit("data",i),i};function bSn(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?pW(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,uXe(e)))}}function pW(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(uXe,e))}function uXe(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,Qae(e)}function Jae(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(ESn,e,t))}function ESn(e,t){for(;!t.reading&&!t.ended&&(t.length1&&fXe(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),oXe(e,"error")===0&&pM(e,g)}gSn(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 _Sn(e){return function(){var n=e._readableState;An("pipeOnDrain",n.awaitDrain),n.awaitDrain&&n.awaitDrain--,n.awaitDrain===0&&oXe(e,"data")&&(n.flowing=!0,Qae(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?pW(this):r.reading||process.nextTick(TSn,this)),n};nr.prototype.addListener=nr.prototype.on;nr.prototype.removeListener=function(e,t){var n=hM.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(lXe,this),n};nr.prototype.removeAllListeners=function(e){var t=hM.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(lXe,this),t};function lXe(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 TSn(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,vSn(this,e)),e.paused=!1,this};function vSn(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(RSn,e,t))}function RSn(e,t){An("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),Qae(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 Qae(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 Zae(e){var t=e._readableState;An("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(ASn,t,e))}function ASn(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 Wae===void 0&&(Wae=rXe()),Wae(nr,e,t)});function fXe(e,t){for(var n=0,r=e.length;n{"use strict";mXe.exports=tg;var hW=zS().codes,wSn=hW.ERR_METHOD_NOT_IMPLEMENTED,kSn=hW.ERR_MULTIPLE_CALLBACK,ISn=hW.ERR_TRANSFORM_ALREADY_TRANSFORMING,xSn=hW.ERR_TRANSFORM_WITH_LENGTH_0,mW=Q_();X_()(tg,mW);function OSn(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(r===null)return this.emit("error",new kSn);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";yXe.exports=mM;var gXe=$ae();X_()(mM,gXe);function mM(e){if(!(this instanceof mM))return new mM(e);gXe.call(this,e)}mM.prototype._transform=function(e,t,n){n(null,e)}});var vXe=w((z4r,TXe)=>{"use strict";var ece;function NSn(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var _Xe=zS().codes,CSn=_Xe.ERR_MISSING_ARGS,MSn=_Xe.ERR_STREAM_DESTROYED;function bXe(e){if(e)throw e}function DSn(e){return e.setHeader&&typeof e.abort=="function"}function LSn(e,t,n,r){r=NSn(r);var i=!1;e.on("close",function(){i=!0}),ece===void 0&&(ece=cW()),ece(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,DSn(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();r(o||new MSn("pipe"))}}}function EXe(e){e()}function USn(e,t){return e.pipe(t)}function FSn(e){return!e.length||typeof e[e.length-1]!="function"?bXe:e.pop()}function jSn(){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(EXe),!c&&(s.forEach(EXe),r(i))})});return t.reduce(USn)}TXe.exports=jSn});var RXe=w((Ad,yM)=>{var gM=Y("stream");process.env.READABLE_STREAM==="disable"&&gM?(yM.exports=gM.Readable,Object.assign(yM.exports,gM),yM.exports.Stream=gM):(Ad=yM.exports=Fae(),Ad.Stream=gM||Ad,Ad.Readable=Ad,Ad.Writable=Dae(),Ad.Duplex=Q_(),Ad.Transform=$ae(),Ad.PassThrough=SXe(),Ad.finished=cW(),Ad.pipeline=vXe())});var kXe=w((G4r,wXe)=>{wXe.exports=AXe;function AXe(e,t){if(e&&t)return AXe(e)(t);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(r){n[r]=e[r]}),n;function n(){for(var r=new Array(arguments.length),i=0;i{var IXe=kXe();tce.exports=IXe(gW);tce.exports.strict=IXe(xXe);gW.proto=gW(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return gW(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return xXe(this)},configurable:!0})});function gW(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function xXe(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 CXe=w((W4r,NXe)=>{var HSn=OXe(),qSn=function(){},BSn=global.Bare?queueMicrotask:process.nextTick.bind(process),zSn=function(e){return e.setHeader&&typeof e.abort=="function"},GSn=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},PXe=function(e,t,n){if(typeof t=="function")return PXe(e,null,t);t||(t={}),n=HSn(n||qSn);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(){BSn(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 zSn(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)),GSn(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)}};NXe.exports=PXe});var DXe=w((K4r,MXe)=>{MXe.exports=VSn;function VSn(e){var t=e._readableState;return t?t.objectMode||typeof e._duplexState=="number"?e.read():e.read(WSn(t)):null}function WSn(e){if(e.buffer.length){var t=e.bufferIndex||0;if(e.buffer.head)return e.buffer.head.data.length;if(e.buffer.length-t>0&&e.buffer[t])return e.buffer[t].length}return e.length}});var HXe=w((Y4r,jXe)=>{var yW=RXe(),LXe=CXe(),KSn=X_(),YSn=DXe(),UXe=Buffer.from&&Buffer.from!==Uint8Array.from?Buffer.from([0]):new Buffer([0]),nce=function(e,t){e._corked?e.once("uncork",t):t()},ZSn=function(e,t){e._autoDestroy&&e.destroy(t)},FXe=function(e,t){return function(n){n?ZSn(e,n.message==="premature close"?null:n):t&&!e._ended&&e.end()}},JSn=function(e,t){if(!e||e._writableState&&e._writableState.finished)return t();if(e._writableState)return e.end(t);e.end(),t()},XSn=function(){},QSn=function(e){return new yW.Readable({objectMode:!0,highWaterMark:16}).wrap(e)},_a=function(e,t,n){if(!(this instanceof _a))return new _a(e,t,n);yW.Duplex.call(this,n),this._writable=null,this._readable=null,this._readable2=null,this._autoDestroy=!n||n.autoDestroy!==!1,this._forwardDestroy=!n||n.destroy!==!1,this._forwardEnd=!n||n.end!==!1,this._corked=1,this._ondrain=null,this._drained=!1,this._forwarding=!1,this._unwrite=null,this._unread=null,this._ended=!1,this.destroyed=!1,e&&this.setWritable(e),t&&this.setReadable(t)};KSn(_a,yW.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=LXe(e,{writable:!0,readable:!1},FXe(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=LXe(e,{writable:!1,readable:!0},FXe(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:QSn(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=YSn(this._readable2))!==null;)this.destroyed||(this._drained=this.push(e));this._forwarding=!1}};_a.prototype.destroy=function(e,t){if(t||(t=XSn),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 nce(this,this._write.bind(this,e,t,n));if(e===UXe)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"),nce(this,function(){JSn(t._forwardEnd&&t._writable,function(){t._writableState.prefinished===!1&&(t._writableState.prefinished=!0),t.emit("prefinish"),nce(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(UXe),yW.Writable.prototype.end.call(this,n))};jXe.exports=_a});var GXe=w((Z4r,bW)=>{"use strict";var{ServerResponse:$Sn}=Y("node:http"),{PassThrough:qXe}=Y("node:stream"),{randomBytes:ebn}=Y("node:crypto"),tbn=JC(),BXe=bJe(),zXe=HXe(),rT=Symbol("ws-socket"),SW=Symbol("ws-head"),nbn=/HTTP\/1.1 (\d+)/u;function rce(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 BXe.Server(s);e.decorate("websocketServer",a);async function c(h="/",m={},g={}){let y=new qXe,b=new qXe,S=new zXe(y,b),E=new zXe(b,y),_=new BXe(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(nbn.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":ebn(16).toString("base64")},httpVersion:"1.1",url:h,[rT]:S,[SW]:T};return o.emit("upgrade",P,P[rT],P[SW]),x}e.decorate("injectWS",c);function u(h,m,g){h[rT]=m,h[SW]=g;let y=new $Sn(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[rT],h[SW],g=>{a.emit("connection",g,h),g.on("error",y=>{e.log.error(y)}),m(g)})};e.addHook("onRequest",(h,m,g)=>{h.raw[rT]?h.ws=!0:h.ws=!1,g()}),e.addHook("onResponse",(h,m,g)=>{h.ws&&h.raw[rT].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[rT])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()}bW.exports=tbn(rce,{fastify:"5.x",name:"@fastify/websocket"});bW.exports.default=rce;bW.exports.fastifyWebsocket=rce});var WXe=w((J4r,VXe)=>{"use strict";function rbn(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}}VXe.exports=rbn});var YXe=w((X4r,ice)=>{"use strict";var ibn=WXe();function KXe(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=ibn(sbn),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 sbn(){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 obn(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=KXe(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}}ice.exports=KXe;ice.exports.promise=obn});var _W=w((Q4r,SM)=>{"use strict";var{format:abn}=Y("node:util");function cbn(){return`${this.name} [${this.code}]: ${this.message}`}var EW=Symbol.for("fastify-error-generic");function Pk(e,t,n=500,r=Error,i=Pk.captureStackTrace){let s=e===EW;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=abn(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},[EW]:{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[EW]},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=cbn,a}Pk.captureStackTrace=!0;var ubn=Pk(EW,"Fastify Error",500,Error);SM.exports=Pk;SM.exports.FastifyError=ubn;SM.exports.default=Pk;SM.exports.createError=Pk});var TW=w(($4r,ZXe)=>{"use strict";var{createError:YS}=_W();ZXe.exports={AVV_ERR_EXPOSE_ALREADY_DEFINED:YS("AVV_ERR_EXPOSE_ALREADY_DEFINED","'%s' is already defined, specify an expose option for '%s'"),AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:YS("AVV_ERR_ATTRIBUTE_ALREADY_DEFINED","'%s' is already defined"),AVV_ERR_CALLBACK_NOT_FN:YS("AVV_ERR_CALLBACK_NOT_FN","Callback for '%s' hook is not a function. Received: '%s'"),AVV_ERR_PLUGIN_NOT_VALID:YS("AVV_ERR_PLUGIN_NOT_VALID","Plugin must be a function or a promise. Received: '%s'"),AVV_ERR_ROOT_PLG_BOOTED:YS("AVV_ERR_ROOT_PLG_BOOTED","Root plugin has already booted"),AVV_ERR_PARENT_PLG_LOADED:YS("AVV_ERR_PARENT_PLG_LOADED","Impossible to load '%s' plugin because the parent '%s' was already loaded"),AVV_ERR_READY_TIMEOUT:YS("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:YS("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 Nk=w((eKr,JXe)=>{"use strict";var lbn=Symbol("avvio.Boot"),dbn=Symbol("isOnCloseHandler"),fbn=Symbol("avvio.ThenifyDoNotWrap"),pbn=Symbol("avvio.TimeTree.untrackNode"),hbn=Symbol("avvio.TimeTree.trackNode"),mbn=Symbol("avvio.TimeTree.getParent"),gbn=Symbol("avvio.TimeTree.getNode"),ybn=Symbol("avvio.TimeTree.addNode"),Sbn=Symbol.for("plugin-meta");JXe.exports={kAvvio:lbn,kIsOnCloseHandler:dbn,kThenifyDoNotWrap:fbn,kUntrackNode:pbn,kTrackNode:hbn,kGetParent:mbn,kGetNode:gbn,kAddNode:ybn,kPluginMeta:Sbn}});var rQe=w((tKr,nQe)=>{"use strict";var{kUntrackNode:XXe,kTrackNode:sce,kGetParent:QXe,kGetNode:$Xe,kAddNode:eQe}=Nk(),oce=class{constructor(){this.root=null,this.tableId=new Map,this.tableLabel=new Map}[sce](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])}[XXe](t){this.tableId.delete(t.id);let n=this.tableLabel.get(t.label);n.pop(),n.length===0&&this.tableLabel.delete(t.label)}[QXe](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}[$Xe](t){return this.tableId.get(t)}[eQe](t,n,r){let i=this[QXe](t);if(i===null)return this.root={parent:null,id:"root",label:n,nodes:[],start:r,stop:null,diff:-1},this[sce](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[sce](a),o}start(t,n,r=Date.now()){return this[eQe](t,n,r)}stop(t,n=Date.now()){let r=this[$Xe](t);r&&(r.stop=n,r.diff=r.stop-r.start||0,this[XXe](r))}toJSON(){return Object.assign({},this.root)}prettyPrint(){return tQe(this.toJSON())}};function tQe(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:bbn}=Y("node:util"),Ebn=bbn("avvio");iQe.exports={debug:Ebn}});var oQe=w((rKr,sQe)=>{"use strict";function _bn(){let e={resolve:null,reject:null,promise:null};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}sQe.exports={createPromise:_bn}});var uQe=w((iKr,cQe)=>{"use strict";var{kPluginMeta:aQe}=Nk();function Tbn(e,t){return e[aQe]?.name?e[aQe].name:t?.name?t.name:e.name?e.name:e.toString().split(` +`).slice(0,2).map(n=>n.trim()).join(" -- ")}cQe.exports={getPluginName:Tbn}});var RW=w((sKr,lQe)=>{"use strict";function vbn(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}lQe.exports={isPromiseLike:vbn}});var fQe=w((oKr,dQe)=>{"use strict";var{EventEmitter:Rbn}=Y("node:events"),{inherits:Abn}=Y("node:util"),{debug:Ta}=vW(),{createPromise:wbn}=oQe(),{AVV_ERR_PLUGIN_EXEC_TIMEOUT:kbn}=TW(),{getPluginName:Ibn}=uQe(),{isPromiseLike:xbn}=RW();function Ck(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=Ibn(t,n),this.queue.pause(),this._error=null,this.loaded=!1,this._promise=null,this.startTime=null}Abn(Ck,Rbn);Ck.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 kbn(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);xbn(a)?(Ta("exec: resolving promise",r),a.then(()=>process.nextTick(o),c=>process.nextTick(o,c))):n.length<3&&o()};Ck.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=wbn(),t=this._promise.promise,this.server?e():this.on("start",e)),t};Ck.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)};Ck.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=Obn,queueMicrotask(r)}};queueMicrotask(r),this.queue.resume()};function Obn(){}dQe.exports={Plugin:Ck}});var hQe=w((aKr,pQe)=>{"use strict";var{AVV_ERR_PLUGIN_NOT_VALID:ace}=TW();function Pbn(e){if(!(e&&(typeof e=="function"||typeof e.then=="function")))throw Array.isArray(e)?new ace("array"):e===null?new ace("null"):new ace(typeof e)}pQe.exports={validatePlugin:Pbn}});var gQe=w((cKr,mQe)=>{"use strict";function Nbn(e){return e!==null&&typeof e=="object"&&typeof e.default=="function"}mQe.exports={isBundledOrTypescriptPlugin:Nbn}});var bQe=w((uKr,SQe)=>{"use strict";var{debug:yQe}=vW(),{kThenifyDoNotWrap:cce}=Nk();function Cbn(){if(this.booted){yQe("thenify returning undefined because we are already booted");return}if(this[cce]){this[cce]=!1;return}return yQe("thenify"),(e,t)=>this._loadRegistered().then(()=>(this[cce]=!0,e(this._server)),t)}SQe.exports={thenify:Cbn}});var _Qe=w((lKr,EQe)=>{"use strict";var{isPromiseLike:Mbn}=RW(),{kAvvio:Dbn}=Nk();function Lbn(e,t,n){let r;try{r=e.apply(e,t)}catch(i){n&&process.nextTick(n,i);return}Mbn(r)&&!r[Dbn]?r.then(()=>process.nextTick(n),i=>process.nextTick(n,i)):n&&process.nextTick(n)}EQe.exports={executeWithThenable:Lbn}});var OQe=w((dKr,xQe)=>{"use strict";var AW=YXe(),Ubn=Y("node:events").EventEmitter,Fbn=Y("node:util").inherits,{AVV_ERR_EXPOSE_ALREADY_DEFINED:bM,AVV_ERR_CALLBACK_NOT_FN:Mk,AVV_ERR_ROOT_PLG_BOOTED:jbn,AVV_ERR_READY_TIMEOUT:Hbn,AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:qbn}=TW(),{kAvvio:RQe,kIsOnCloseHandler:AQe}=Nk(),{TimeTree:Bbn}=rQe(),{Plugin:wQe}=fQe(),{debug:Dk}=vW(),{validatePlugin:zbn}=hQe(),{isBundledOrTypescriptPlugin:Gbn}=gQe(),{isPromiseLike:Vbn}=RW(),{thenify:kQe}=bQe(),{executeWithThenable:TQe}=_Qe();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 Bbn,this._readyQ=AW(this,IQe,1),this._readyQ.pause(),this._readyQ.drain=()=>{this.emit("start"),this._readyQ.drain=vQe},this._closeQ=AW(this,Kbn,1),this._closeQ.pause(),this._closeQ.drain=()=>{this.emit("close"),this._closeQ.drain=vQe},this._doStart=null;let r=this;this._root=new wQe(AW(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=>{Dk("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()})}Fbn(Ms,Ubn);"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[RQe]=!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:kQe});Ms.prototype._addPlugin=function(e,t,n){if(Gbn(e)&&(e=e.default),zbn(e),t=t||{},this.booted)throw new jbn;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 wQe(AW(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 bM(r,"use");if(n[r]=function(c,u){return t.use(c,u),this},n[i])throw new bM(i,"after");if(n[i]=function(c){return typeof c!="function"?t._loadRegistered():(t.after(uce(c,this)),this)},n[s])throw new bM(s,"ready");if(n[s]=function(c){if(c&&typeof c!="function")throw new Mk(s,typeof c);return t.ready(c?uce(c,this):void 0)},n[o])throw new bM(o,"onClose");if(n[o]=function(c){if(typeof c!="function")throw new Mk(o,typeof c);return t.onClose(Ybn(c,this)),this},n[a])throw new bM(a,"close");if(n[a]=function(c){if(c&&typeof c!="function")throw new Mk(a,typeof c);return c?(t.close(uce(c,this)),this):t.close()},n.then)throw new qbn("then");Object.defineProperty(n,"then",{get:kQe.bind(t)}),n[RQe]=!0};Ms.prototype.after=function(e){if(!e)return this._loadRegistered();this._addPlugin(t.bind(this),{},!0);function t(n,r,i){IQe.call(this,e,i)}return this};Ms.prototype.onClose=function(e){if(typeof e!="function")throw new Mk("onClose",typeof e);return e[AQe]=!0,this._closeQ.unshift(e,t=>{t&&(this._error=t)}),this};Ms.prototype.close=function(e){let t;if(e){if(typeof e!="function")throw new Mk("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 Mk("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(Vbn(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){Dk("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 Dk("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 vQe(){}function IQe(e,t){let n=this._server,r=this._error;if(this._error=null,e.length===0)this._error=r,TQe(e,[],t);else if(e.length===1)TQe(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 Wbn.call(this,e,r,n,t)}function Wbn(e,t,n,r){let i=e.unwrappedName??e.name;Dk("setting up ready timeout",i,this._opts.timeout);let s=setTimeout(()=>{Dk("timed out",i),s=null;let a=new Hbn(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 Kbn(e,t){let n=this._server,r=e[AQe];if(e.length===0||e.length===1){let i;r?i=e(n):i=e(this._error),i&&typeof i.then=="function"?(Dk("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 Ybn(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 uce(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)}}xQe.exports=Ms});var $s=w((fKr,PQe)=>{"use strict";var Zbn={kAvvioBoot:Symbol("fastify.avvioBoot"),kChildren:Symbol("fastify.children"),kServerBindings:Symbol("fastify.serverBindings"),kBodyLimit:Symbol("fastify.bodyLimit"),kSupportedHTTPMethods:Symbol("fastify.acceptedHTTPMethods"),kRoutePrefix:Symbol("fastify.routePrefix"),kLogLevel:Symbol("fastify.logLevel"),kLogSerializers:Symbol("fastify.logSerializers"),kHooks:Symbol("fastify.hooks"),kContentTypeParser:Symbol("fastify.contentTypeParser"),kState:Symbol("fastify.state"),kOptions:Symbol("fastify.options"),kDisableRequestLogging:Symbol("fastify.disableRequestLogging"),kPluginNameChain:Symbol("fastify.pluginNameChain"),kRouteContext:Symbol("fastify.context"),kGenReqId:Symbol("fastify.genReqId"),kHttp2ServerSessions:Symbol("fastify.http2ServerSessions"),kSchemaController:Symbol("fastify.schemaController"),kSchemaHeaders:Symbol("headers-schema"),kSchemaParams:Symbol("params-schema"),kSchemaQuerystring:Symbol("querystring-schema"),kSchemaBody:Symbol("body-schema"),kSchemaResponse:Symbol("response-schema"),kSchemaErrorFormatter:Symbol("fastify.schemaErrorFormatter"),kSchemaVisited:Symbol("fastify.schemas.visited"),kRequest:Symbol("fastify.Request"),kRequestPayloadStream:Symbol("fastify.RequestPayloadStream"),kRequestAcceptVersion:Symbol("fastify.RequestAcceptVersion"),kRequestCacheValidateFns:Symbol("fastify.request.cache.validateFns"),kRequestOriginalUrl:Symbol("fastify.request.originalUrl"),kRequestSignal:Symbol("fastify.request.signal"),kHandlerTimeout:Symbol("fastify.handlerTimeout"),kTimeoutTimer:Symbol("fastify.request.timeoutTimer"),kOnAbort:Symbol("fastify.request.onAbort"),kFourOhFour:Symbol("fastify.404"),kCanSetNotFoundHandler:Symbol("fastify.canSetNotFoundHandler"),kFourOhFourLevelInstance:Symbol("fastify.404LogLevelInstance"),kFourOhFourContext:Symbol("fastify.404ContextKey"),kDefaultJsonParse:Symbol("fastify.defaultJSONParse"),kReply:Symbol("fastify.Reply"),kReplySerializer:Symbol("fastify.reply.serializer"),kReplyIsError:Symbol("fastify.reply.isError"),kReplyHeaders:Symbol("fastify.reply.headers"),kReplyTrailers:Symbol("fastify.reply.trailers"),kReplyHasStatusCode:Symbol("fastify.reply.hasStatusCode"),kReplyHijacked:Symbol("fastify.reply.hijacked"),kReplyStartTime:Symbol("fastify.reply.startTime"),kReplyNextErrorHandler:Symbol("fastify.reply.nextErrorHandler"),kReplyEndTime:Symbol("fastify.reply.endTime"),kReplyErrorHandlerCalled:Symbol("fastify.reply.errorHandlerCalled"),kReplyIsRunningOnErrorHook:Symbol("fastify.reply.isRunningOnErrorHook"),kReplySerializerDefault:Symbol("fastify.replySerializerDefault"),kReplyCacheSerializeFns:Symbol("fastify.reply.cache.serializeFns"),kTestInternals:Symbol("fastify.testInternals"),kErrorHandler:Symbol("fastify.errorHandler"),kErrorHandlerAlreadySet:Symbol("fastify.errorHandlerAlreadySet"),kChildLoggerFactory:Symbol("fastify.childLoggerFactory"),kHasBeenDecorated:Symbol("fastify.hasBeenDecorated"),kKeepAliveConnections:Symbol("fastify.keepAliveConnections"),kRouteByFastify:Symbol("fastify.routeByFastify")};PQe.exports=Zbn});var CQe=w((pKr,wW)=>{"use strict";var{format:lce}=Y("node:util");function Jbn(e){return NQe({...e,name:"DeprecationWarning"})}function NQe({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=lce(n,o,a,c):o&&a?u=lce(n,o,a):o?u=lce(n,o):u=n,u},s}var dce={createWarning:NQe,createDeprecation:Jbn};wW.exports=dce;wW.exports.default=dce;wW.exports.processWarning=dce});var Lk=w((hKr,MQe)=>{"use strict";var{createWarning:EM}=CQe(),Xbn=EM({name:"FastifyWarning",code:"FSTWRN001",message:"The %s schema for %s: %s is missing. This may indicate the schema is not well specified.",unlimited:!0}),Qbn=EM({name:"FastifyWarning",code:"FSTWRN003",message:"The %s mixes async and callback styles that may lead to unhandled rejections. Please use only one of them.",unlimited:!0}),$bn=EM({name:"FastifyWarning",code:"FSTWRN004",message:"It seems that you are overriding an errorHandler in the same scope, which can lead to subtle bugs.",unlimited:!0}),eEn=EM({name:"FastifySecurity",code:"FSTSEC001",message:'You are using /%s/ Content-Type which may be vulnerable to CORS attack. Please make sure your RegExp start with "^" or include ";?" to proper detection of the essence MIME type.',unlimited:!0}),tEn=EM({name:"FastifyWarning",code:"FSTDEP022",message:'The router options for %s property access is deprecated. Please use "options.routerOptions" instead for accessing router options. The router options will be removed in `fastify@6`.',unlimited:!0});MQe.exports={FSTWRN001:Xbn,FSTWRN003:Qbn,FSTWRN004:$bn,FSTSEC001:eEn,FSTDEP022:tEn}});var Ko=w((mKr,kW)=>{"use strict";var je=_W(),iT={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 nEn(e,t){return t.cause=e,t}kW.exports=iT;kW.exports.appendStackTrace=nEn;kW.exports.AVVIO_ERRORS_MAP={AVV_ERR_CALLBACK_NOT_FN:iT.FST_ERR_PLUGIN_CALLBACK_NOT_FN,AVV_ERR_PLUGIN_NOT_VALID:iT.FST_ERR_PLUGIN_NOT_VALID,AVV_ERR_ROOT_PLG_BOOTED:iT.FST_ERR_ROOT_PLG_BOOTED,AVV_ERR_PARENT_PLG_LOADED:iT.FST_ERR_PARENT_PLUGIN_BOOTED,AVV_ERR_READY_TIMEOUT:iT.FST_ERR_PLUGIN_TIMEOUT,AVV_ERR_PLUGIN_EXEC_TIMEOUT:iT.FST_ERR_PLUGIN_TIMEOUT}});var ZS=w((gKr,zQe)=>{"use strict";var rEn=["onRoute","onRegister","onReady","onListen","preClose","onClose"],FQe=["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError","onRequestAbort"],iEn=FQe.concat(rEn),{FST_ERR_HOOK_INVALID_TYPE:sEn,FST_ERR_HOOK_INVALID_HANDLER:oEn,FST_ERR_SEND_UNDEFINED_ERR:IW,FST_ERR_HOOK_TIMEOUT:aEn,FST_ERR_HOOK_NOT_SUPPORTED:cEn,AVVIO_ERRORS_MAP:DQe,appendStackTrace:LQe}=Ko(),{kChildren:_M,kHooks:jQe,kRequestPayloadStream:UQe}=$s();function TM(){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=[]}TM.prototype=Object.create(null);TM.prototype.validate=function(e,t){if(typeof e!="string")throw new sEn;if(Array.isArray(this[e])===!1)throw new cEn(e);if(typeof t!="function")throw new oEn(e,Object.prototype.toString.call(t))};TM.prototype.add=function(e,t){this.validate(e,t),this[e].push(t)};function uEn(e){let t=new TM;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 HQe(e,t,n,r){let i=n[jQe][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=LQe(l,new aEn(e,f)):l=DQe[l.code]!=null?LQe(l,new DQe[l.code](l.message)):l,r(l);return}r()}function c(l){if(l){a(l);return}if(s===i.length&&o===n[_M].length){s===0&&o===0?a():t(function(f,p){a(f),p(f)});return}if(s===i.length&&o{"use strict";GQe.exports=function(){return{[Symbol.iterator]:function*(){},add(){},delete(){},has(){return!0}}}});var fce=w((SKr,KQe)=>{"use strict";var{kTestInternals:bEn}=$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,[bEn]:{withResolvers:WQe}}});var i$e=w((bKr,r$e)=>{"use strict";var EEn=Y("node:http"),_En=Y("node:https"),YQe=Y("node:http2"),TEn=Y("node:dns"),vEn=Y("node:os"),{kState:Ds,kOptions:REn,kServerBindings:AEn,kHttp2ServerSessions:sT}=$s(),{FSTWRN003:wEn}=Lk(),{onListenHookRunner:xW}=ZS(),{FST_ERR_REOPENED_CLOSE_SERVER:JQe,FST_ERR_REOPENED_SERVER:XQe,FST_ERR_LISTEN_OPTIONS_INVALID:kEn,FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:IEn}=Ko(),xEn=VQe(),QQe=fce();r$e.exports.createServer=OEn;function $Qe(e){return`Server listening at ${e}`}function OEn(e,t){let n=t$e(e,t);function r(u={port:0,host:"localhost"},l=void 0){if(typeof l=="function"&&(l.constructor.name==="AsyncFunction"&&wEn("listen method"),u.cb=l),u.signal){if(typeof u.signal.on!="function"&&typeof u.signal.addEventListener!="function")throw new kEn("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}ZQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,l(null,p),xW(this)})}:u.cb=(f,p)=>{if(f){l(f,p);return}this[Ds].listening=!0,l(null,p),xW(this)},l===void 0)return PEn.call(this,n,u).then(p=>{let{promise:h,resolve:m}=QQe.withResolvers();return d==="localhost"?ZQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,m(p),xW(this)}):(m(p),xW(this)),h});this.ready(e$e.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 IEn;typeof a!="boolean"&&(a=s?"idle":!1);let c=!i&&a===!0?new Set:xEn();return{server:n,listen:r,forceCloseConnections:a,serverHasCloseAllConnections:i,serverHasCloseHttp2Sessions:o,keepAliveConnections:c}}function ZQe(e,t,n,r,i){this[Ds].listening=!1,TEn.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[AEn].push(h),u===c&&i()}}),h=t$e(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,e$e.call(this,h,p)()}}if(c===0){i();return}let l=e.unref;e.unref=function(){l.call(e),e.emit("unref")}})}function e$e(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=n$e.call(this,e,t.listenTextResolver||$Qe);t.cb(null,i)}};return r=>{if(r!=null)return t.cb(r);if(this[Ds].listening&&this[Ds].closing)return t.cb(new JQe,null);if(this[Ds].listening)return t.cb(new XQe,null);e.once("error",n),this[Ds].closing||(e.once("listening",n),e.listen(t),this[Ds].listening=!0)}}function PEn(e,t){return this[Ds].listening&&this[Ds].closing?Promise.reject(new JQe):this[Ds].listening?Promise.reject(new XQe):this.ready().then(()=>{if(this[Ds].aborted)return;let{promise:n,resolve:r,reject:i}=QQe.withResolvers(),s=c=>{a(),this[Ds].listening=!1,i(c)},o=()=>{a(),this[Ds].listening=!0,r(n$e.call(this,e,t.listenTextResolver||$Qe))};function a(){e.removeListener("error",s),e.removeListener("listening",o)}return e.once("error",s),e.once("listening",o),e.listen(t),n})}function t$e(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"?YQe.createSecureServer(n,t):YQe.createServer(e.http,t);return i.on("session",s=>s.setTimeout(e.http2SessionTimeout,()=>{s.close()})),e.forceCloseConnections===!0&&(i.closeHttp2Sessions=CEn(i)),i.setTimeout(e.connectionTimeout),i}let r=n?_En.createServer(n,t):EEn.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 NEn(e){return e.address==="0.0.0.0"?Object.values(vEn.networkInterfaces()).flatMap(t=>t.filter(n=>n.family==="IPv4")).sort(t=>t.internal?-1:1).map(t=>t.address):[e.address]}function n$e(e,t){let n;typeof e.address()=="string"?n=[e.address()]:(e.address().address.indexOf(":")===-1?n=NEn(e.address()).map(i=>i+":"+e.address().port):n=["["+e.address().address+"]:"+e.address().port],n=n.map(i=>"http"+(this[REn].https?"s":"")+"://"+i));for(let i of n)this.log.info(t(i));return n[0]}function CEn(e){return e[sT]=new Set,e.on("session",function(t){t.once("connect",function(){e[sT].add(t)}),t.once("close",function(){e[sT].delete(t)}),t.once("frameError",function(n,r,i){i===0&&e[sT].delete(t)}),t.once("goaway",function(){e[sT].delete(t)})}),function(){if(e[sT].size!==0)for(let n of e[sT])n.close()}}});var mce=w((EKr,a$e)=>{"use strict";var pce=/(?:^|;)\s*([\w!#$%&'*+.^`|~-]+)=([^;]*)/gm,s$e=/^[\w!#$%&'*+.^`|~-]+$/,o$e=/^[\w!#$%&'*+.^`|~-]+\s*$/,hce=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();s$e.test(c)===!0&&o$e.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(s$e.test(s)===!1||o$e.test(o)===!1)return;this.#i=s,this.#e=o,this.#t=!0,this.#n=!1;let a=pce.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=pce.exec(i);continue}this.#r.set(c,u.slice(1,u.length-1))}else this.#r.set(c,u);a=pce.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}};a$e.exports=hce});var OW=w((_Kr,c$e)=>{"use strict";var{kReplyHasStatusCode:MEn}=$s();function DEn(e,t){if(!e[MEn]||e.statusCode===200){let n=t&&(t.statusCode||t.status);e.code(n>=400?n:500)}}c$e.exports={setErrorStatusCode:DEn}});var gce=w((TKr,l$e)=>{"use strict";var{kReplyIsError:u$e,kReplyHijacked:LEn}=$s(),{setErrorStatusCode:UEn}=OW(),FEn=Y("node:diagnostics_channel"),RM=FEn.tracingChannel("fastify.request.handler");function jEn(e,t,n){n&&(n.async=!0),e.then(function(r){if(t[LEn]!==!0){n&&RM.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[u$e]=!0,t.send(i)}}finally{n&&RM.asyncEnd.publish(n)}}},function(r){n&&(n.error=r,UEn(t,r),RM.error.publish(n),RM.asyncStart.publish(n));try{if(t.sent===!0){t.log.error({err:r},"Promise errored, but reply.sent = true was set");return}t[u$e]=!0,t.send(r)}catch(i){t.send(i)}finally{n&&RM.asyncEnd.publish(n)}})}l$e.exports=jEn});var bce=w((vKr,f$e)=>{"use strict";var{kSchemaHeaders:CW,kSchemaParams:yce,kSchemaQuerystring:Sce,kSchemaBody:oT,kSchemaResponse:d$e}=$s(),HEn=/^[1-5](?:\d{2}|xx)$|^default$/,{FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:qEn}=Ko(),{FSTWRN001:PW}=Lk();function BEn(e,t){if(!e.schema||!e.schema.response)return;let{method:n,url:r}=e.config||{};e[d$e]=Object.keys(e.schema.response).reduce(function(i,s){let o=e.schema.response[s];if(s=s.toLowerCase(),!HEn.test(s))throw new qEn;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 zEn(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[CW]=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[CW]=t({schema:a,method:i,url:s,httpPart:"headers"})}else Object.hasOwn(r,"headers")&&PW("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[oT]=c}else e[oT]=t({schema:r.body,method:i,url:s,httpPart:"body"})}else Object.hasOwn(r,"body")&&PW("body",i,s);r.querystring?e[Sce]=t({schema:r.querystring,method:i,url:s,httpPart:"querystring"}):Object.hasOwn(r,"querystring")&&PW("querystring",i,s),r.params?e[yce]=t({schema:r.params,method:i,url:s,httpPart:"params"}):Object.hasOwn(r,"params")&&PW("params",i,s)}function NW(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 MW(e,t,n){let r=n===void 0;if(r||!n.skipParams){let s=NW(e[yce],t,"params");if(s)return typeof s.then!="function"?JS(s,"params",e.schemaErrorFormatter):GEn(s,e,t)}if(r||!n.skipBody){let s=null;if(typeof e[oT]=="function")s=e[oT];else if(e[oT]){let a=YEn(t.headers["content-type"]),c=e[oT][a];c&&(s=c)}let o=NW(s,t,"body");if(o)return typeof o.then!="function"?JS(o,"body",e.schemaErrorFormatter):VEn(o,e,t)}if(r||!n.skipQuery){let s=NW(e[Sce],t,"query");if(s)return typeof s.then!="function"?JS(s,"querystring",e.schemaErrorFormatter):WEn(s,e,t)}let i=NW(e[CW],t,"headers");return i?typeof i.then!="function"?JS(i,"headers",e.schemaErrorFormatter):KEn(i,e,t):!1}function GEn(e,t,n){return e.then(r=>r?JS(r,"params",t.schemaErrorFormatter):MW(t,n,{skipParams:!0}))}function VEn(e,t,n){return e.then(r=>r?JS(r,"body",t.schemaErrorFormatter):MW(t,n,{skipParams:!0,skipBody:!0}))}function WEn(e,t,n){return e.then(r=>r?JS(r,"querystring",t.schemaErrorFormatter):MW(t,n,{skipParams:!0,skipBody:!0,skipQuery:!0}))}function KEn(e,t,n){return e.then(r=>r?JS(r,"headers",t.schemaErrorFormatter):!1)}function JS(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 YEn(e){return e?e.trimStart().split(/[ ;]/,1)[0].trim().toLowerCase():""}f$e.exports={symbols:{bodySchema:oT,querystringSchema:Sce,responseSchema:d$e,paramsSchema:yce,headersSchema:CW},compileSchemasForValidation:zEn,compileSchemasForSerialization:BEn,validate:MW}});var vce=w((RKr,Tce)=>{"use strict";var ZEn=Y("node:diagnostics_channel"),JEn=mce(),XEn=gce(),{validate:QEn}=bce(),{preValidationHookRunner:$En,preHandlerHookRunner:e_n}=ZS(),{FST_ERR_CTP_INVALID_MEDIA_TYPE:t_n}=Ko(),{setErrorStatusCode:p$e}=OW(),{kReplyIsError:wM,kRouteContext:Th,kFourOhFourContext:n_n,kSupportedHTTPMethods:h$e}=$s(),AM=ZEn.tracingChannel("fastify.request.handler");function r_n(e,t,n){if(n.sent===!0)return;if(e!=null){n[wM]=!0,n.send(e);return}let r=t.method;if(this[h$e].bodyless.has(r)){Fk(t,n);return}if(this[h$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")){Fk(t,n);return}t[Th].contentTypeParser.run("",Fk,t,n);return}let o=new JEn(s);if(o.isValid===!1){n[wM]=!0,n.status(415).send(new t_n);return}t[Th].contentTypeParser.run(o.toString(),Fk,t,n);return}Fk(t,n)}function Fk(e,t){try{e[Th].preValidation!==null?$En(e[Th].preValidation,e,t,Ece):Ece(null,e,t)}catch(n){Ece(n,e,t)}}function Ece(e,t,n){if(n.sent===!0)return;if(e!=null){n[wM]=!0,n.send(e);return}let r=QEn(n[Th],t);if(r&&typeof r.then=="function"||!1){let s=m$e.bind(null,t,n);r.then(s,s)}else m$e(t,n,r)}function m$e(e,t,n){if(n){if(t[Th].attachValidation===!1){t.send(n);return}t.request.validationError=n}e[Th].preHandler!==null?e_n(e[Th].preHandler,e,t,_ce):_ce(null,e,t)}function _ce(e,t,n){if(n.sent)return;let r=t[Th];if(!AM.hasSubscribers||r[n_n]===null)g$e(e,t,n);else{let i={request:t,reply:n,async:!1,route:{url:r.config.url,method:r.config.method}};AM.start.runStores(i,g$e,void 0,e,t,n,i)}}function g$e(e,t,n,r){let i=t[Th];try{if(e!=null){n[wM]=!0,r&&(r.error=e,p$e(n,e),AM.error.publish(r)),n.send(e);return}let s;try{s=i.handler(t,n)}catch(o){r&&(r.error=o,p$e(n,o),AM.error.publish(r)),n[wM]=!0,n.send(o);return}s!==void 0&&(s!==null&&typeof s.then=="function"?XEn(s,n,r):n.send(s))}finally{r&&AM.end.publish(r)}}Tce.exports=r_n;Tce.exports[Symbol.for("internals")]={handler:Fk,preHandlerCallback:_ce}});var S$e=w((AKr,y$e)=>{"use strict";function jk(){}var i_n={fatal:jk,error:jk,warn:jk,info:jk,debug:jk,trace:jk};Object.defineProperty(y$e,"exports",{get(){return Object.create(i_n)}})});var Ace=w((wKr,_$e)=>{"use strict";var kM=e=>e&&typeof e.message=="string",Rce=e=>{if(!e)return;let t=e.cause;if(typeof t=="function"){let n=e.cause();return kM(n)?n:void 0}else return kM(t)?t:void 0},b$e=(e,t)=>{if(!kM(e))return"";let n=e.stack||"";if(t.has(e))return n+` +causes have become circular...`;let r=Rce(e);return r?(t.add(e),n+` +caused by: `+b$e(r,t)):n},s_n=e=>b$e(e,new Set),E$e=(e,t,n)=>{if(!kM(e))return"";let r=n?"":e.message||"";if(t.has(e))return r+": ...";let i=Rce(e);if(i){t.add(e);let s=typeof e.cause=="function";return r+(s?"":": ")+E$e(i,t,s)}else return r},o_n=e=>E$e(e,new Set);_$e.exports={isErrorLike:kM,getErrorCause:Rce,stackWithCauses:s_n,messageWithCauses:o_n}});var wce=w((kKr,v$e)=>{"use strict";var a_n=Symbol("circular-ref-tag"),DW=Symbol("pino-raw-err-ref"),T$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[DW]},set:function(e){this[DW]=e}}});Object.defineProperty(T$e,DW,{writable:!0,value:{}});v$e.exports={pinoErrProto:T$e,pinoErrorSymbols:{seen:a_n,rawSymbol:DW}}});var w$e=w((IKr,A$e)=>{"use strict";A$e.exports=Ice;var{messageWithCauses:c_n,stackWithCauses:u_n,isErrorLike:R$e}=Ace(),{pinoErrProto:l_n,pinoErrorSymbols:d_n}=wce(),{seen:kce}=d_n,{toString:f_n}=Object.prototype;function Ice(e){if(!R$e(e))return e;e[kce]=void 0;let t=Object.create(l_n);t.type=f_n.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,t.message=c_n(e),t.stack=u_n(e),Array.isArray(e.errors)&&(t.aggregateErrors=e.errors.map(n=>Ice(n)));for(let n in e)if(t[n]===void 0){let r=e[n];R$e(r)?n!=="cause"&&!Object.prototype.hasOwnProperty.call(r,kce)&&(t[n]=Ice(r)):t[n]=r}return delete e[kce],t.raw=e,t}});var I$e=w((xKr,k$e)=>{"use strict";k$e.exports=UW;var{isErrorLike:xce}=Ace(),{pinoErrProto:p_n,pinoErrorSymbols:h_n}=wce(),{seen:LW}=h_n,{toString:m_n}=Object.prototype;function UW(e){if(!xce(e))return e;e[LW]=void 0;let t=Object.create(p_n);t.type=m_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=>UW(n))),xce(e.cause)&&!Object.prototype.hasOwnProperty.call(e.cause,LW)&&(t.cause=UW(e.cause));for(let n in e)if(t[n]===void 0){let r=e[n];xce(r)?Object.prototype.hasOwnProperty.call(r,LW)||(t[n]=UW(r)):t[n]=r}return delete e[LW],t.raw=e,t}});var N$e=w((OKr,P$e)=>{"use strict";P$e.exports={mapHttpRequest:g_n,reqSerializer:O$e};var Oce=Symbol("pino-raw-req-ref"),x$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[Oce]},set:function(e){this[Oce]=e}}});Object.defineProperty(x$e,Oce,{writable:!0,value:{}});function O$e(e){let t=e.info||e.socket,n=Object.create(x$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 g_n(e){return{req:O$e(e)}}});var L$e=w((PKr,D$e)=>{"use strict";D$e.exports={mapHttpResponse:y_n,resSerializer:M$e};var Pce=Symbol("pino-raw-res-ref"),C$e=Object.create({},{statusCode:{enumerable:!0,writable:!0,value:0},headers:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[Pce]},set:function(e){this[Pce]=e}}});Object.defineProperty(C$e,Pce,{writable:!0,value:{}});function M$e(e){let t=Object.create(C$e);return t.statusCode=e.headersSent?e.statusCode:null,t.headers=e.getHeaders?e.getHeaders():e._headers,t.raw=e,t}function y_n(e){return{res:M$e(e)}}});var Cce=w((NKr,U$e)=>{"use strict";var Nce=w$e(),S_n=I$e(),FW=N$e(),jW=L$e();U$e.exports={err:Nce,errWithCause:S_n,mapHttpRequest:FW.mapHttpRequest,mapHttpResponse:jW.mapHttpResponse,req:FW.reqSerializer,res:jW.resSerializer,wrapErrorSerializer:function(t){return t===Nce?t:function(r){return t(Nce(r))}},wrapRequestSerializer:function(t){return t===FW.reqSerializer?t:function(r){return t(FW.reqSerializer(r))}},wrapResponseSerializer:function(t){return t===jW.resSerializer?t:function(r){return t(jW.resSerializer(r))}}}});var Mce=w((CKr,F$e)=>{"use strict";function b_n(e,t){return t}F$e.exports=function(){let t=Error.prepareStackTrace;Error.prepareStackTrace=b_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 G$e=w((MKr,z$e)=>{"use strict";function Dce(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)q$e(l,a);else{let f=typeof n=="function"?n(__n(l,a),[...c.slice(0,d),...a]):n;H$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 k_n(e){if(!Array.isArray(e))throw new TypeError("paths must be an array");for(let t of e)w_n(t)}function I_n(e={}){let{paths:t=[],censor:n="[REDACTED]",serialize:r=JSON.stringify,strict:i=!0,remove:s=!1}=e;k_n(t);let o=R_n(t);return function(c){if(i&&(c===null||typeof c!="object")&&(c==null||typeof c!="object"))return r?r(c):c;let u=A_n(c,o),l=c,d=n;return typeof n=="function"&&(d=n),T_n(u,t,d,s),r===!1?(u.restore=function(){return Dce(l)},u):typeof r=="function"?r(u):JSON.stringify(u)}}z$e.exports=I_n});var Hk=w((DKr,V$e)=>{"use strict";var x_n=Symbol("pino.setLevel"),O_n=Symbol("pino.getLevel"),P_n=Symbol("pino.levelVal"),N_n=Symbol("pino.levelComp"),C_n=Symbol("pino.useLevelLabels"),M_n=Symbol("pino.useOnlyCustomLevels"),D_n=Symbol("pino.mixin"),L_n=Symbol("pino.lsCache"),U_n=Symbol("pino.chindings"),F_n=Symbol("pino.asJson"),j_n=Symbol("pino.write"),H_n=Symbol("pino.redactFmt"),q_n=Symbol("pino.time"),B_n=Symbol("pino.timeSliceIndex"),z_n=Symbol("pino.stream"),G_n=Symbol("pino.stringify"),V_n=Symbol("pino.stringifySafe"),W_n=Symbol("pino.stringifiers"),K_n=Symbol("pino.end"),Y_n=Symbol("pino.formatOpts"),Z_n=Symbol("pino.messageKey"),J_n=Symbol("pino.errorKey"),X_n=Symbol("pino.nestedKey"),Q_n=Symbol("pino.nestedKeyStr"),$_n=Symbol("pino.mixinMergeStrategy"),eTn=Symbol("pino.msgPrefix"),tTn=Symbol("pino.wildcardFirst"),nTn=Symbol.for("pino.serializers"),rTn=Symbol.for("pino.formatters"),iTn=Symbol.for("pino.hooks"),sTn=Symbol.for("pino.metadata");V$e.exports={setLevelSym:x_n,getLevelSym:O_n,levelValSym:P_n,levelCompSym:N_n,useLevelLabelsSym:C_n,mixinSym:D_n,lsCacheSym:L_n,chindingsSym:U_n,asJsonSym:F_n,writeSym:j_n,serializersSym:nTn,redactFmtSym:H_n,timeSym:q_n,timeSliceIndexSym:B_n,streamSym:z_n,stringifySym:G_n,stringifySafeSym:V_n,stringifiersSym:W_n,endSym:K_n,formatOptsSym:Y_n,messageKeySym:Z_n,errorKeySym:J_n,nestedKeySym:X_n,wildcardFirstSym:tTn,needsMetadataGsym:sTn,useOnlyCustomLevelsSym:M_n,formattersSym:rTn,hooksSym:iTn,nestedKeyStrSym:Q_n,mixinMergeStrategySym:$_n,msgPrefixSym:eTn}});var Uce=w((LKr,Z$e)=>{"use strict";var W$e=G$e(),{redactFmtSym:oTn,wildcardFirstSym:qW}=Hk(),Lce=/[^.[\]]+|\[([^[\]]*?)\]/g,K$e="[Redacted]",Y$e=!1;function aTn(e,t){let{paths:n,censor:r,remove:i}=cTn(e),s=n.reduce((c,u)=>{Lce.lastIndex=0;let l=Lce.exec(u),d=Lce.exec(u),f=l[1]!==void 0?l[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):l[0];if(f==="*"&&(f=qW),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!==qW&&c[f].length===0&&c[f].push(...c[qW]||[]),f===qW&&Object.keys(c).forEach(function(m){c[m]&&c[m].push(h)}),c[f].push(h),c},{}),o={[oTn]:W$e({paths:n,censor:r,serialize:t,strict:Y$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:Y$e,remove:i})}return c},o)}function cTn(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}}Z$e.exports=aTn});var Q$e=w((UKr,X$e)=>{"use strict";var uTn=()=>"",lTn=()=>`,"time":${Date.now()}`,dTn=()=>`,"time":${Math.round(Date.now()/1e3)}`,fTn=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,pTn=1000000n,J$e=1000000000n,hTn=BigInt(Date.now())*pTn,mTn=process.hrtime.bigint(),gTn=()=>{let e=process.hrtime.bigint()-mTn,t=hTn+e,n=t/J$e,r=t%J$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"`};X$e.exports={nullTime:uTn,epochTime:lTn,unixTime:dTn,isoTime:fTn,isoTimeNano:gTn}});var eet=w((FKr,$$e)=>{"use strict";function yTn(e){try{return JSON.stringify(e)}catch{return'"[Circular]"'}}$$e.exports=STn;function STn(e,t,n){var r=n&&n.stringify||yTn,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));Fce.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(););};Fce.exports=e}});var cet=w((HKr,aet)=>{"use strict";var Si=Y("fs"),bTn=Y("events"),ETn=Y("util").inherits,tet=Y("path"),qce=jce(),_Tn=Y("assert"),BW=100,zW=Buffer.allocUnsafe(0),TTn=16*1024,net="buffer",ret="utf8",[vTn,RTn]=(process.versions.node||"0.0").split(".").map(Number),ATn=vTn>=22&&RTn>=7;function iet(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(tet.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(tet.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||TTn,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===net)this._writingBuf=zW,this.write=ITn,this.flush=OTn,this.flushSync=NTn,this._actualWrite=MTn,h=()=>Si.writeSync(this.fd,this._writingBuf),m=()=>Si.write(this.fd,this._writingBuf,this.release);else if(f===void 0||f===ret)this._writingBuf="",this.write=kTn,this.flush=xTn,this.flushSync=PTn,this._actualWrite=CTn,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 "${ret}" and "${net}", but passed ${f}`);if(typeof t=="number")this.fd=t,process.nextTick(()=>this.emit("ready"));else if(typeof t=="string")iet(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{qce(BW),this.release(void 0,0)}catch(E){this.release(E)}else setTimeout(m,BW);else this._writing=!1,this.emit("error",g);return}this.emit("write",y);let b=Hce(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(),_=Hce(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,GW(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(wTn,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 Hce(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 wTn(e){e.listenerCount("drain")>0&&(e._asyncDrainScheduled=!1,e.emit("drain"))}ETn(Pf,bTn);function set(e,t){return e.length===0?zW:e.length===1?e[0]:Buffer.concat(e,t)}function kTn(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 xTn(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&&oet.call(this,e),!this._writing&&(this._bufs.length===0&&this._bufs.push(""),this._actualWrite())}function OTn(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&&oet.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)})}),iet(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():GW(this)))};function PTn(){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=Hce(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;qce(BW)}}try{Si.fsyncSync(this.fd)}catch{}}function NTn(){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=zW);let e=zW;for(;this._bufs.length||e.length;){e.length<=0&&(e=set(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;qce(BW)}}}Pf.prototype.destroy=function(){this.destroyed||GW(this)};function CTn(){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 MTn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:set(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 ATn&&(this._writingBuf=Buffer.from(this._writingBuf)),Si.write(this.fd,this._writingBuf,e)}function GW(e){if(e.fd===-1){e.once("ready",GW.bind(null,e));return}e._periodicFlushTimer!==void 0&&clearInterval(e._periodicFlushTimer),e.destroyed=!0,e._bufs=[],e._lens=[],_Tn(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;aet.exports=Pf});var Bce=w((qKr,het)=>{"use strict";var Nf={exit:[],beforeExit:[]},uet={exit:UTn,beforeExit:FTn},qk;function DTn(){qk===void 0&&(qk=new FinalizationRegistry(jTn))}function LTn(e){Nf[e].length>0||process.on(e,uet[e])}function det(e){Nf[e].length>0||(process.removeListener(e,uet[e]),Nf.exit.length===0&&Nf.beforeExit.length===0&&(qk=void 0))}function UTn(){fet("exit")}function FTn(){fet("beforeExit")}function fet(e){for(let t of Nf[e]){let n=t.deref(),r=t.fn;n!==void 0&&r(n,e)}Nf[e]=[]}function jTn(e){for(let t of["exit","beforeExit"]){let n=Nf[t].indexOf(e);Nf[t].splice(n,n+1),det(t)}}function pet(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,DTn(),qk.register(t,r),Nf[e].push(r)}function HTn(e,t){pet("exit",e,t)}function qTn(e,t){pet("beforeExit",e,t)}function BTn(e){if(qk!==void 0){qk.unregister(e);for(let t of["exit","beforeExit"])Nf[t]=Nf[t].filter(n=>{let r=n.deref();return r&&r!==e}),det(t)}}het.exports={register:HTn,registerBeforeExit:qTn,unregister:BTn}});var met=w((BKr,zTn)=>{zTn.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 yet=w((zKr,get)=>{"use strict";function GTn(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 VTn(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()}get.exports={wait:GTn,waitDiff:VTn}});var Eet=w((GKr,bet)=>{"use strict";bet.exports={WRITE_INDEX:4,READ_INDEX:8}});var Aet=w((VKr,Ret)=>{"use strict";var{version:WTn}=met(),{EventEmitter:KTn}=Y("events"),{Worker:YTn}=Y("worker_threads"),{join:ZTn}=Y("path"),{pathToFileURL:JTn}=Y("url"),{wait:XTn}=yet(),{WRITE_INDEX:xu,READ_INDEX:Iu}=Eet(),QTn=Y("buffer"),$Tn=Y("assert"),be=Symbol("kImpl"),evn=QTn.constants.MAX_STRING_LENGTH,IM=class{constructor(t){this._value=t}deref(){return this._value}},WW=class{register(){}unregister(){}},tvn=process.env.NODE_V8_COVERAGE?WW:global.FinalizationRegistry||WW,nvn=process.env.NODE_V8_COVERAGE?IM:global.WeakRef||IM,_et=new tvn(e=>{e.exited||e.terminate()});function rvn(e,t){let{filename:n,workerData:r}=t,s=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||ZTn(__dirname,"lib","worker.js"),o=new YTn(s,{...t.workerOpts,trackUnmanagedFds:!1,workerData:{filename:n.indexOf("file://")===0?n:JTn(n).href,dataBuf:e[be].dataBuf,stateBuf:e[be].stateBuf,workerData:{$context:{threadStreamVersion:WTn},...r}}});return o.stream=new IM(e),o.on("message",ivn),o.on("exit",vet),_et.register(e,o),o}function Tet(e){$Tn(!e[be].sync),e[be].needDrain&&(e[be].needDrain=!1,e.emit("drain"))}function VW(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?Kce(e):e[be].needDrain&&process.nextTick(Tet,e);return}let r=e[be].buf.slice(0,n),i=Buffer.byteLength(r);i<=n?(e[be].buf=e[be].buf.slice(n),KW(e,r,VW.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),KW(e,r,VW.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),VW(e)})}else vh(e,new Error("overwritten"))}function ivn(e){let t=this.stream.deref();if(t===void 0){this.exited=!0,this.terminate();return}switch(e.code){case"READY":this.stream=new nvn(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 vet(e){let t=this.stream.deref();t!==void 0&&(_et.unregister(t),t.worker.exited=!0,t.worker.off("exit",vet),vh(t,e!==0?new Error("the worker thread exited"):null))}var Gce=class extends KTn{constructor(t={}){if(super(),t.bufferSize<4)throw new Error("bufferSize must at least fit a 4-byte utf-8 char");this[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=rvn(this,t),this.on("message",(n,r)=>{this.worker.postMessage(n,r)})}write(t){if(this[be].destroyed)return Vce(this,new Error("the worker has exited")),!1;if(this[be].ending)return Vce(this,new Error("the worker is ending")),!1;if(this[be].flushing&&this[be].buf.length+t.length>=evn)try{zce(this),this[be].flushing=!0}catch(n){return vh(this,n),!1}if(this[be].buf+=t,this[be].sync)try{return zce(this),!0}catch(n){return vh(this,n),!1}return this[be].flushing||(this[be].flushing=!0,setImmediate(VW,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,Kce(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);XTn(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||(zce(this),Wce(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 Vce(e,t){setImmediate(()=>{e.emit("error",t)})}function vh(e,t){e[be].destroyed||(e[be].destroyed=!0,t&&(e[be].errored=t,Vce(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 KW(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 Kce(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 zce(e){let t=()=>{e[be].ending?Kce(e):e[be].needDrain&&process.nextTick(Tet,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){Wce(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),KW(e,i,t);else{for(Wce(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),KW(e,i,t)}}}function Wce(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)")}}Ret.exports=Gce});var Jce=w((WKr,Iet)=>{"use strict";var{createRequire:svn}=Y("module"),{existsSync:ovn}=Y("node:fs"),avn=Mce(),{join:Yce,isAbsolute:ket,sep:cvn}=Y("node:path"),{fileURLToPath:uvn}=Y("node:url"),lvn=jce(),Zce=Bce(),dvn=Aet();function fvn(e){Zce.register(e,yvn),Zce.registerBeforeExit(e,Svn),e.on("close",function(){Zce.unregister(e)})}function pvn(){let e=process.execArgv;for(let t=0;th.target).map(h=>({...h,target:p(h.target)})),c.pipelines=n.filter(h=>h.pipeline).map(h=>h.pipeline.map(m=>({...m,level:h.level,target:p(m.target)})))):t&&(d=l["pino-worker"]||Yce(__dirname,"worker.js"),c.pipelines=[t.map(h=>({...h,target:p(h.target)}))]),r&&(c.levels=r),i&&(c.dedupe=i),c.pinoWillSendConfig=!0;let f=n||t?"pino.transport":d;return gvn(p(d),c,s,a,f);function p(h){if(h=l[h]||h,ket(h)||h.indexOf("file://")===0)return h;if(h==="pino/file")return Yce(__dirname,"..","file.js");let m;for(let g of u)try{let y=g==="node:repl"?process.cwd()+cvn:g;m=svn(y).resolve(h);break}catch{continue}if(!m)throw new Error(`unable to determine transport target for "${h}"`);return m}}Iet.exports=bvn});var JW=w((YKr,qet)=>{"use strict";var Evn=Y("node:diagnostics_channel"),xet=eet(),{mapHttpRequest:_vn,mapHttpResponse:Tvn}=Cce(),Qce=cet(),Oet=Bce(),{lsCacheSym:vvn,chindingsSym:Det,writeSym:Pet,serializersSym:Let,formatOptsSym:Net,endSym:Rvn,stringifiersSym:Uet,stringifySym:Fet,stringifySafeSym:$ce,wildcardFirstSym:jet,nestedKeySym:Avn,formattersSym:Het,messageKeySym:wvn,errorKeySym:kvn,nestedKeyStrSym:Ivn,msgPrefixSym:YW}=Hk(),{isMainThread:xvn}=Y("worker_threads"),Ovn=Jce(),[Pvn]=process.versions.node.split(".").map(e=>Number(e)),Cet=Evn.tracingChannel("pino_asJson"),Xce=Pvn>=25?e=>JSON.stringify(e):Cvn;function Bk(){}function Nvn(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=_vn(r):typeof r.setHeader=="function"&&(r=Tvn(r)));let o;s===null&&i.length===0?o=[null]:(s=i.shift(),o=i),typeof this[YW]=="string"&&s!==void 0&&s!==null&&(s=this[YW]+s),this[Pet](r,xet(s,o,this[Net]),e)}else{let s=r===void 0?i.shift():r;typeof this[YW]=="string"&&s!==void 0&&s!==null&&(s=this[YW]+s),this[Pet](null,xet(s,i,this[Net]),e)}}}function Cvn(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 Mvn(e,t,n,r){if(Cet.hasSubscribers===!1)return Met.call(this,e,t,n,r);let i={instance:this,arguments};return Cet.traceSync(Met,i,this,e,t,n,r)}function Met(e,t,n,r){let i=this[Fet],s=this[$ce],o=this[Uet],a=this[Rvn],c=this[Det],u=this[Let],l=this[Het],d=this[wvn],f=this[kvn],p=this[vvn][n]+r;p=p+c;let h;l.log&&(e=l.log(e));let m=o[jet],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||Xce)(h);break;default:h=(S||i)(h,s)}if(h===void 0)continue;let E=Xce(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||Xce)(h),y=',"'+d+'":'+h;break;default:h=(b||i)(h,s),y=',"'+d+'":'+h}}return this[Avn]&&g?p+this[Ivn]+g.slice(1)+"}"+y+a:p+g+y+a}function Dvn(e,t){let n,r=e[Det],i=e[Fet],s=e[$ce],o=e[Uet],a=o[jet],c=e[Let],u=e[Het].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 ZW(e){let t=new Qce(e);return t.on("error",n),!e.sync&&xvn&&(Oet.register(t,Uvn),t.on("close",function(){Oet.unregister(t)})),t;function n(r){if(r.code==="EPIPE"){t.write=Bk,t.end=Bk,t.flushSync=Bk,t.destroy=Bk;return}t.removeListener("error",n),t.emit("error",r)}}function Uvn(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=ZW({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=ZW({dest:s})}else if(i instanceof Qce||i.writable||i._writableState)s=i,i={};else if(i.transport){if(i.transport instanceof Qce||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=Ovn({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=Bk),s||(Lvn(process.stdout)?s=process.stdout:s=ZW({fd:process.stdout.fd||1})),{opts:i,stream:s}}}function jvn(e,t){try{return JSON.stringify(e)}catch{try{return(t||this[$ce])(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 qvn(e){let t=Number(e);return typeof e=="string"&&Number.isFinite(t)?t:e===void 0?1:e}qet.exports={noop:Bk,buildSafeSonicBoom:ZW,asChindings:Dvn,asJson:Mvn,genLog:Nvn,createArgsNormalizer:Fvn,stringify:jvn,buildFormatters:Hvn,normalizeDestFileDescriptor:qvn}});var XW=w((ZKr,Bet)=>{var Bvn={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},zvn={ASC:"ASC",DESC:"DESC"};Bet.exports={DEFAULT_LEVELS:Bvn,SORTING_ORDER:zvn}});var nue=w((JKr,Wet)=>{"use strict";var{lsCacheSym:Gvn,levelValSym:eue,useOnlyCustomLevelsSym:Vvn,streamSym:Wvn,formattersSym:Kvn,hooksSym:Yvn,levelCompSym:zet}=Hk(),{noop:Zvn,genLog:aT}=JW(),{DEFAULT_LEVELS:Rh,SORTING_ORDER:Get}=XW(),Vet={fatal:e=>{let t=aT(Rh.fatal,e);return function(...n){let r=this[Wvn];if(t.call(this,...n),typeof r.flushSync=="function")try{r.flushSync()}catch{}}},error:e=>aT(Rh.error,e),warn:e=>aT(Rh.warn,e),info:e=>aT(Rh.info,e),debug:e=>aT(Rh.debug,e),trace:e=>aT(Rh.trace,e)},tue=Object.keys(Rh).reduce((e,t)=>(e[Rh[t]]=t,e),{}),Jvn=Object.keys(tue).reduce((e,t)=>(e[t]='{"level":'+Number(t),e),{});function Xvn(e){let t=e[Kvn].level,{labels:n}=e.levels,r={};for(let i in n){let s=t(n[i],Number(i));r[i]=JSON.stringify(s).slice(0,-1)}return e[Gvn]=r,e}function Qvn(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 $vn(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[eue],i=this[eue]=n[e],s=this[Vvn],o=this[zet],a=this[Yvn].logMethod;for(let c in n){if(o(n[c],i)===!1){this[c]=Zvn;continue}this[c]=Qvn(c,s)?Vet[c](a):aT(n[c],a)}this.emit("level-change",e,i,t[r],r,this)}function eRn(e){let{levels:t,levelVal:n}=this;return t&&t.labels?t.labels[n]:""}function tRn(e){let{values:t}=this.levels,n=t[e];return n!==void 0&&this[zet](n,this[eue])}function nRn(e,t,n){return e===Get.DESC?t<=n:t>=n}function rRn(e){return typeof e=="string"?nRn.bind(null,e):e}function iRn(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:tue,n),i=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),t?null:Rh,e);return{labels:r,values:i}}function sRn(e,t,n){if(typeof e=="number"){if(![].concat(Object.keys(t||{}).map(s=>t[s]),n?[]:Object.keys(tue).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 oRn(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 aRn(e){if(typeof e!="function"&&!(typeof e=="string"&&Object.values(Get).includes(e)))throw new Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}Wet.exports={initialLsCache:Jvn,genLsCache:Xvn,levelMethods:Vet,getLevel:eRn,setLevel:$vn,isLevelEnabled:tRn,mappings:iRn,assertNoLevelCollisions:oRn,assertDefaultLevelFound:sRn,genLevelComparison:rRn,assertLevelComparison:aRn}});var rue=w((XKr,Ket)=>{"use strict";Ket.exports={version:"10.3.1"}});var ttt=w(($Kr,ett)=>{"use strict";var{EventEmitter:cRn}=Y("node:events"),{lsCacheSym:uRn,levelValSym:lRn,setLevelSym:sue,getLevelSym:Yet,chindingsSym:$W,mixinSym:dRn,asJsonSym:Jet,writeSym:fRn,mixinMergeStrategySym:pRn,timeSym:hRn,timeSliceIndexSym:mRn,streamSym:Xet,serializersSym:cT,formattersSym:xM,errorKeySym:gRn,messageKeySym:yRn,useOnlyCustomLevelsSym:SRn,needsMetadataGsym:bRn,redactFmtSym:ERn,stringifySym:_Rn,formatOptsSym:TRn,stringifiersSym:vRn,msgPrefixSym:oue,hooksSym:RRn}=Hk(),{getLevel:ARn,setLevel:wRn,isLevelEnabled:kRn,mappings:IRn,initialLsCache:xRn,genLsCache:ORn,assertNoLevelCollisions:PRn}=nue(),{asChindings:aue,asJson:NRn,buildFormatters:iue,stringify:Zet,noop:Qet}=JW(),{version:CRn}=rue(),MRn=Uce(),DRn=class{},$et={constructor:DRn,child:LRn,bindings:URn,setBindings:FRn,flush:qRn,isLevelEnabled:kRn,version:CRn,get level(){return this[Yet]()},set level(e){this[sue](e)},get levelVal(){return this[lRn]},set levelVal(e){throw Error("levelVal is read-only")},get msgPrefix(){return this[oue]},get[Symbol.toStringTag](){return"Pino"},[uRn]:xRn,[fRn]:HRn,[Jet]:NRn,[Yet]:ARn,[sue]:wRn};Object.setPrototypeOf($et,cRn.prototype);ett.exports=function(){return Object.create($et)};var QW=e=>e;function LRn(e,t){if(!e)throw Error("missing bindings for child Pino");let n=this[cT],r=this[xM],i=Object.create(this);if(t==null)return i[xM].bindings!==QW&&(i[xM]=iue(r.level,QW,r.log)),i[$W]=aue(i,e),this.onChild!==Qet&&this.onChild(i),i;if(t.hasOwnProperty("serializers")===!0){i[cT]=Object.create(null);for(let u in n)i[cT][u]=n[u];let a=Object.getOwnPropertySymbols(n);for(var s=0;s{"use strict";var{hasOwnProperty:OM}=Object.prototype,lT=lue();lT.configure=lue;lT.stringify=lT;lT.default=lT;due.stringify=lT;due.configure=lue;itt.exports=lT;var BRn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function XS(e){return e.length<5e3&&!BRn.test(e)?`"${e}"`:JSON.stringify(e)}function cue(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 zRn=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function uue(e){return zRn.call(e)!==void 0&&e.length!==0}function ntt(e,t,n){e.length= 1`)}return n===void 0?1/0:n}function uT(e){return e===1?"1 item":`${e} items`}function KRn(e){let t=new Set;for(let n of e)(typeof n=="string"||typeof n=="number")&&t.add(String(n));return t}function YRn(e){if(OM.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 lue(e){e={...e};let t=YRn(e);t&&(e.bigint===void 0&&(e.bigint=!1),"circularValue"in e||(e.circularValue=Error));let n=GRn(e),r=WRn(e,"bigint"),i=VRn(e),s=typeof i=="function"?i:void 0,o=rtt(e,"maximumDepth"),a=rtt(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 XS(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+=`${_}"... ${uT(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}"${uT(N)} not stringified"`,k=_}return y!==""&&k.length>1&&(E=` +${b}`,x=" ");let P=Math.min(A,a);i&&!uue(S)&&(R=cue(R,s)),m.push(S);for(let N=0;Na){let N=A-a;E+=`${k}"...":${x}"${uT(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 XS(h);case"object":{if(h===null)return"null";if(m.indexOf(h)!==-1)return n;let S=b,E="",_=",";if(Array.isArray(h)){if(h.length===0)return"[]";if(oa){let L=h.length-a-1;x+=`${k}"... ${uT(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}"...": "${uT(x)} not stringified"`,R=_}return R!==""&&(T=` +${y}`,T="",R="",A=Math.min(E,a);uue(h)&&(T+=ntt(h,_,a),S=S.slice(h.length),A-=h.length,R=_),i&&(S=cue(S,s)),m.push(h);for(let x=0;xa){let x=E-a;T+=`${R}"...": "${uT(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 XS(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+=`,"... ${uT(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}"...":"${uT(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,[],VRn(h),g,"")}if(g.length!==0)return l("",p,[],g,"")}return d("",p,[])}return f}});var att=w((e3r,ott)=>{"use strict";var due=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:stt}=XW(),KRn=stt.info;function YRn(e,t){e=e||[],t=t||{dedupe:!1};let n=Object.create(stt);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,[due]:!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=ZRn(h.length,t.dedupe);XRn(y,h.length,t.dedupe);y=JRn(y,t.dedupe))if(f=h[y],f.level<=p){if(m!==0&&m!==f.level)break;if(g=f.stream,g[due]){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=KRn;let y={stream:p,level:g,levelVal:void 0,id:++r.lastId};return h.unshift(y),h.sort(itt),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(itt),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 QRn=Y("node:os"),mtt=Nce(),$Rn=Cce(),eAn=Lce(),gtt=J$e(),tAn=$et(),ytt=Hk(),{configure:nAn}=rtt(),{assertDefaultLevelFound:rAn,mappings:Stt,genLsCache:iAn,genLevelComparison:sAn,assertLevelComparison:oAn}=tue(),{DEFAULT_LEVELS:btt,SORTING_ORDER:aAn}=XW(),{createArgsNormalizer:cAn,asChindings:uAn,buildSafeSonicBoom:ctt,buildFormatters:lAn,stringify:fue,normalizeDestFileDescriptor:utt,noop:dAn}=JW(),{version:fAn}=nue(),{chindingsSym:ltt,redactFmtSym:pAn,serializersSym:dtt,timeSym:hAn,timeSliceIndexSym:mAn,streamSym:gAn,stringifySym:ftt,stringifySafeSym:pue,stringifiersSym:ptt,setLevelSym:yAn,endSym:SAn,formatOptsSym:bAn,messageKeySym:EAn,errorKeySym:_An,nestedKeySym:TAn,mixinSym:vAn,levelCompSym:RAn,useOnlyCustomLevelsSym:AAn,formattersSym:htt,hooksSym:wAn,nestedKeyStrSym:kAn,mixinMergeStrategySym:IAn,msgPrefixSym:xAn}=ytt,{epochTime:Ett,nullTime:OAn}=gtt,{pid:PAn}=process,NAn=QRn.hostname(),CAn=mtt.err,MAn={level:"info",levelComparison:aAn.ASC,levels:btt,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:PAn,hostname:NAn},serializers:Object.assign(Object.create(null),{err:CAn}),formatters:Object.assign(Object.create(null),{bindings(e){return e},level(e,t){return{level:t}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:Ett,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},DAn=cAn(MAn),LAn=Object.assign(Object.create(null),mtt);function hue(...e){let t={},{opts:n,stream:r}=DAn(t,$Rn(),...e);n.level&&typeof n.level=="string"&&btt[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=nAn({maximumDepth:_,maximumBreadth:T}),k=lAn(S.level,S.bindings,S.log),P=fue.bind({[pue]:x}),N=i?eAn(i,P):{},C=i?{stringify:N[pAn]}:{stringify:P},L="}"+(s?`\r +${b}`),m.pop(),`{${T}}`}case"number":return isFinite(h)?String(h):t?t(h):"null";case"boolean":return h===!0?"true":"false";case"undefined":return;case"bigint":if(r)return String(h);default:return t?t(h):void 0}}function d(p,h,m){switch(typeof h){case"string":return XS(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+=`,"... ${uT(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}"...":"${uT(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,[],KRn(h),g,"")}if(g.length!==0)return l("",p,[],g,"")}return d("",p,[])}return f}});var utt=w((e3r,ctt)=>{"use strict";var fue=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:att}=XW(),ZRn=att.info;function JRn(e,t){e=e||[],t=t||{dedupe:!1};let n=Object.create(att);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,[fue]:!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=XRn(h.length,t.dedupe);$Rn(y,h.length,t.dedupe);y=QRn(y,t.dedupe))if(f=h[y],f.level<=p){if(m!==0&&m!==f.level)break;if(g=f.stream,g[fue]){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=ZRn;let y={stream:p,level:g,levelVal:void 0,id:++r.lastId};return h.unshift(y),h.sort(ott),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(ott),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 eAn=Y("node:os"),ytt=Cce(),tAn=Mce(),nAn=Uce(),Stt=Q$e(),rAn=ttt(),btt=Hk(),{configure:iAn}=stt(),{assertDefaultLevelFound:sAn,mappings:Ett,genLsCache:oAn,genLevelComparison:aAn,assertLevelComparison:cAn}=nue(),{DEFAULT_LEVELS:_tt,SORTING_ORDER:uAn}=XW(),{createArgsNormalizer:lAn,asChindings:dAn,buildSafeSonicBoom:ltt,buildFormatters:fAn,stringify:pue,normalizeDestFileDescriptor:dtt,noop:pAn}=JW(),{version:hAn}=rue(),{chindingsSym:ftt,redactFmtSym:mAn,serializersSym:ptt,timeSym:gAn,timeSliceIndexSym:yAn,streamSym:SAn,stringifySym:htt,stringifySafeSym:hue,stringifiersSym:mtt,setLevelSym:bAn,endSym:EAn,formatOptsSym:_An,messageKeySym:TAn,errorKeySym:vAn,nestedKeySym:RAn,mixinSym:AAn,levelCompSym:wAn,useOnlyCustomLevelsSym:kAn,formattersSym:gtt,hooksSym:IAn,nestedKeyStrSym:xAn,mixinMergeStrategySym:OAn,msgPrefixSym:PAn}=btt,{epochTime:Ttt,nullTime:NAn}=Stt,{pid:CAn}=process,MAn=eAn.hostname(),DAn=ytt.err,LAn={level:"info",levelComparison:uAn.ASC,levels:_tt,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:CAn,hostname:MAn},serializers:Object.assign(Object.create(null),{err:DAn}),formatters:Object.assign(Object.create(null),{bindings(e){return e},level(e,t){return{level:t}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:Ttt,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},UAn=lAn(LAn),FAn=Object.assign(Object.create(null),ytt);function mue(...e){let t={},{opts:n,stream:r}=UAn(t,tAn(),...e);n.level&&typeof n.level=="string"&&_tt[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=iAn({maximumDepth:_,maximumBreadth:T}),k=fAn(S.level,S.bindings,S.log),P=pue.bind({[hue]:x}),N=i?nAn(i,P):{},C=i?{stringify:N[mAn]}:{stringify:P},L="}"+(s?`\r `:` -`),G=uAn.bind(null,{[ltt]:"",[dtt]:o,[ptt]:N,[ftt]:fue,[pue]:x,[htt]:k}),W="";d!==null&&(f===void 0?W=G(d):W=G(Object.assign({},d,{name:f})));let $=a instanceof Function?a:a?Ett:OAn,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"`);rAn(p,h,b);let Q=Stt(h,b);typeof r.emit=="function"&&r.emit("message",{code:"PINO_CONFIG",config:{levels:Q,messageKey:c,errorKey:u}}),oAn(m);let B=sAn(m);return Object.assign(t,{levels:Q,[RAn]:B,[AAn]:b,[gAn]:r,[hAn]:$,[mAn]:q,[ftt]:fue,[pue]:x,[ptt]:N,[SAn]:L,[bAn]:C,[EAn]:c,[_An]:u,[TAn]:l,[kAn]:l?`,${JSON.stringify(l)}:{`:"",[dtt]:o,[vAn]:g,[IAn]:y,[ltt]:W,[htt]:k,[wAn]:E,silent:dAn,onChild:R,[xAn]:A}),Object.setPrototypeOf(t,tAn()),iAn(t),t[yAn](p),t}wd.exports=hue;wd.exports.destination=(e=process.stdout.fd)=>typeof e=="object"?(e.dest=utt(e.dest||process.stdout.fd),ctt(e)):ctt({dest:utt(e),minLength:0});wd.exports.transport=Zce();wd.exports.multistream=att();wd.exports.levels=Stt();wd.exports.stdSerializers=LAn;wd.exports.stdTimeFunctions=Object.assign({},gtt);wd.exports.symbols=ytt;wd.exports.version=fAn;wd.exports.default=hue;wd.exports.pino=hue});var Rtt=w((n3r,vtt)=>{"use strict";var e4=_tt(),{serializersSym:Ttt}=e4.symbols,{FST_ERR_LOG_INVALID_DESTINATION:UAn}=Ko();function FAn(e){if(e.stream&&e.file)throw new UAn;e.file&&(e.stream=e4.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[Ttt]&&(e.serializers=Object.assign({},e.serializers,t[Ttt])),r=t.child({},e),e.logger=t,e.genReqId=n):r=e4(e,e.stream),r}var jAn={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:e4.stdSerializers.err,res:function(t){return{statusCode:t.statusCode}}};vtt.exports={serializers:jAn,createPinoLogger:FAn}});var PM=w((r3r,wtt)=>{"use strict";var{FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:HAn,FST_ERR_LOG_INVALID_LOGGER_CONFIG:qAn,FST_ERR_LOG_INVALID_LOGGER_INSTANCE:BAn,FST_ERR_LOG_INVALID_LOGGER:zAn}=Ko();function GAn(e,t,n,r,i){let s={[e.requestIdLogLabel]:r},o=e.childLoggerFactory.call(e.server,t,s,i||{},n);return e.childLoggerFactory!==Att&&t4(o,!0),o}function Att(e,t,n){return e.child(t,n)}function t4(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 zAn(r.join(","))}else return!0}function VAn(e){if(e.logger&&e.loggerInstance)throw new HAn;if(!e.loggerInstance&&!e.logger){let o=g$e();return o.child=()=>o,{logger:o,hasLogger:!1}}let{createPinoLogger:t,serializers:n}=Rtt();if(t4(e.loggerInstance))return{logger:t({logger:e.loggerInstance,serializers:Object.assign({},n,e.loggerInstance.serializers)}),hasLogger:!0};if(t4(e.logger))throw qAn();if(e.loggerInstance)throw BAn();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 WAn(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}wtt.exports={createChildLogger:GAn,defaultChildLoggerFactory:Att,createLogger:VAn,validateLogger:t4,now:WAn}});var n4=w((i3r,ktt)=>{"use strict";ktt.exports=KAn;function zk(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function KAn(e){if(e=e||{},e.circles)return YAn(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 ZAn=n4()({circles:!1,proto:!0}),{kSchemaVisited:Itt,kSchemaResponse:JAn}=$s(),mue=Symbol.for("fluent-schema-object"),{FST_ERR_SCH_MISSING_ID:XAn,FST_ERR_SCH_ALREADY_PRESENT:QAn,FST_ERR_SCH_DUPLICATE:$An,FST_ERR_SCH_CONTENT_MISSING_SCHEMA:xtt}=Ko(),Ptt=["params","body","querystring","query","headers"];function r4(e){this.store=e||{}}r4.prototype.add=function(e){let t=ZAn(e.isFluentSchema||e.isFluentJSONSchema||e[mue]?e.valueOf():e),n=t.$id;if(!n)throw new XAn;if(this.store[n])throw new QAn(n);this.store[n]=t};r4.prototype.getSchemas=function(){return Object.assign({},this.store)};r4.prototype.getSchema=function(e){return this.store[e]};function Ott(e){return typeof e=="object"&&Object.getPrototypeOf(e)!==Object.prototype}function ewn(e,t){if(e[Itt])return e;if(e.query){if(e.querystring)throw new $An("querystring");e.querystring=e.query}twn(e);for(let n of Ptt){let r=e[n];if(r&&!Ott(r)&&n==="body"&&r.content){let i=r.content,s=Object.keys(i);for(let o=0;o{"use strict";var rwn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;Mtt.exports=class Ctt{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&&rwn.test(t)===!1?'"'+t+'"':JSON.stringify(t)}asUnsafeString(t){return'"'+t+'"'}getState(){return this._options}static restoreFromState(t){return new Ctt(t)}}});var Ltt=w((a3r,Dtt)=>{"use strict";var iwn=i4(),swn={mode:"standalone"},own=iwn.restoreFromState(swn),awn=null;Dtt.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})(awn,own)});var CM=w((c3r,Htt)=>{"use strict";var Utt=Y("node:http").STATUS_CODES,cwn=mce(),{setErrorStatusCode:uwn}=OW(),{kReplyHeaders:dT,kReplyNextErrorHandler:s4,kReplyIsRunningOnErrorHook:lwn,kRouteContext:jtt,kDisableRequestLogging:o4}=$s(),{FST_ERR_REP_INVALID_PAYLOAD_TYPE:dwn,FST_ERR_FAILED_ERROR_SERIALIZATION:fwn}=Ko(),{getSchemaSerializer:pwn}=NM(),gue=Ltt(),hwn={func:gwn,toJSON(){return this.func.name.toString()+"()"}};function mwn(e,t,n){e[lwn]=!1;let r=e[jtt];if(e[s4]===!1){Ftt(t,e,function(o,a){try{o.raw.writeHead(o.raw.statusCode,o[dT])}catch(c){o.log[o4]||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[s4]||r.errorHandler;e[s4]=Object.getPrototypeOf(i),delete e[dT]["content-type"],delete e[dT]["content-length"];let s=i.func;if(!s){e[s4]=!1,Ftt(t,e,n);return}try{let o=s(t,e.request,e);o!==void 0&&(o!==null&&typeof o.then=="function"?cwn(o,e):e.send(o))}catch(o){e.send(o)}}function gwn(e,t,n){Swn(e,n),uwn(n,e),n.statusCode<500?n.log[o4]||n.log.info({res:n,err:e},e?.message):n.log[o4]||n.log.error({req:t,res:n,err:e},e?.message),n.send(e)}function Ftt(e,t,n){let r=t.raw,i=t.statusCode;t[dT]["content-type"]=t[dT]["content-type"]??"application/json; charset=utf-8";let s;try{let o=pwn(t[jtt],i,t[dT]["content-type"]);o===!1?s=gue({error:Utt[i+""],code:e.code,message:e.message,statusCode:i}):s=o(Object.create(e,{error:{value:Utt[i+""]},message:{value:e.message},statusCode:{value:i}}))}catch(o){t.log[o4]||t.log.error({err:o,statusCode:r.statusCode},"The serializer for the given status code failed"),t.code(500),s=gue(new fwn(o.message,e.message))}typeof s!="string"&&!Buffer.isBuffer(s)&&(s=gue(new dwn(typeof s))),t[dT]["content-length"]=""+Buffer.byteLength(s),n(t,s)}function ywn(e=hwn,t){if(!t)return e;let n=Object.create(e);return n.func=t,n}function Swn(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}Htt.exports={buildErrorHandler:ywn,handleError:mwn}});var LM=w((u3r,Gtt)=>{"use strict";var{kReply:yue,kRequest:Sue,kState:bwn,kHasBeenDecorated:Ewn}=$s(),{FST_ERR_DEC_ALREADY_PRESENT:qtt,FST_ERR_DEC_MISSING_DEPENDENCY:_wn,FST_ERR_DEC_AFTER_START:Twn,FST_ERR_DEC_REFERENCE_TYPE:vwn,FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:Rwn,FST_ERR_DEC_UNDECLARED:Awn}=Ko();function wwn(e,t,n,r){if(Object.hasOwn(e,t))throw new qtt(t);bue(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 kwn(e){if(!MM(this,e))throw new Awn(e,"instance");return typeof this[e]=="function"?this[e].bind(this):this[e]}function Btt(e,t,n,r){let i=e.prototype;if(Object.hasOwn(i,t)||DM(e,t))throw new qtt(t);e[Ewn]=!0,bue(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 ztt(e,t){if(typeof t=="object"&&t&&!(typeof t.getter=="function"||typeof t.setter=="function"))throw new vwn(e,typeof t)}function Iwn(e,t,n){return Eue(this,e),wwn(this,e,t,n),this}function MM(e,t){return t?t in e||e.prototype&&t in e.prototype||DM(e,t):e in this}function DM(e,t){return e.props?e.props.find(({key:n})=>n===t):!1}function xwn(e){return e&&DM(this[Sue],e)?!0:MM(this[Sue].prototype,e)}function Own(e){return e&&DM(this[yue],e)?!0:MM(this[yue].prototype,e)}function bue(e,t,n){if(n!=null){if(!Array.isArray(n))throw new Rwn(t);for(let r=0;r!==n.length;++r)if(!MM(e,n[r]))throw new _wn(n[r])}}function Pwn(e,t,n){return Eue(this,e),ztt(e,t),Btt(this[yue],e,t,n),this}function Nwn(e,t,n){return Eue(this,e),ztt(e,t),Btt(this[Sue],e,t,n),this}function Eue(e,t){if(e[bwn].started)throw new Twn(t)}Gtt.exports={add:Iwn,exist:MM,existRequest:xwn,existReply:Own,dependencies:bue,decorateReply:Pwn,decorateRequest:Nwn,getInstanceDecorator:kwn,hasKey:DM}});var m4=w((l3r,h4)=>{"use strict";var a4=Y("node:stream").finished,{kFourOhFourContext:Vtt,kReplyErrorHandlerCalled:Qtt,kReplyHijacked:Aue,kReplyStartTime:FM,kReplyEndTime:wue,kReplySerializer:ng,kReplySerializerDefault:c4,kReplyIsError:u4,kReplyHeaders:jr,kReplyTrailers:Yo,kReplyHasStatusCode:kue,kReplyIsRunningOnErrorHook:Iue,kReplyNextErrorHandler:Cwn,kDisableRequestLogging:$tt,kSchemaResponse:l4,kReplyCacheSerializeFns:QS,kSchemaController:_ue,kOptions:Mwn,kRouteContext:Dn,kTimeoutTimer:d4,kOnAbort:Gk,kRequestSignal:ent}=$s(),{onSendHookRunner:tnt,onResponseHookRunner:Dwn,preHandlerHookRunner:Lwn,preSerializationHookRunner:Uwn}=ZS(),Wtt=Tce()[Symbol.for("internals")],Fwn=PM(),Rue=Fwn.now,{handleError:Ktt}=CM(),{getSchemaSerializer:jwn}=NM(),Tue={JSON:"application/json; charset=utf-8",PLAIN:"text/plain; charset=utf-8",OCTET:"application/octet-stream"},{FST_ERR_REP_INVALID_PAYLOAD_TYPE:Hwn,FST_ERR_REP_RESPONSE_BODY_CONSUMED:qwn,FST_ERR_REP_READABLE_STREAM_LOCKED:Bwn,FST_ERR_REP_ALREADY_SENT:zwn,FST_ERR_SEND_INSIDE_ONERR:Gwn,FST_ERR_BAD_STATUS_CODE:Vwn,FST_ERR_BAD_TRAILER_NAME:Wwn,FST_ERR_BAD_TRAILER_VALUE:Kwn,FST_ERR_MISSING_SERIALIZATION_FN:Ywn,FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:Zwn,FST_ERR_DEC_UNDECLARED:Jwn}=Ko(),Ytt=LM(),nnt=Object.prototype.toString;function Hr(e,t,n){this.raw=e,this[ng]=null,this[Qtt]=!1,this[u4]=!1,this[Iue]=!1,this.request=t,this[jr]={},this[Yo]=null,this[kue]=!1,this[FM]=void 0,this.log=n}Hr.props=[];Object.defineProperties(Hr.prototype,{[Dn]:{get(){return this.request[Dn]}},elapsedTime:{get(){return this[FM]===void 0?0:(this[wue]||Rue())-this[FM]}},server:{get(){return this.request[Dn].server}},sent:{enumerable:!0,get(){return(this[Aue]||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[Aue]=!0,this.request[ent]&&(clearTimeout(this.request[d4]),this.request[d4]=null,this.request[Gk]&&(this.request.raw.removeListener("close",this.request[Gk]),this.request[Gk]=null)),this};Hr.prototype.send=function(e){if(this[Iue])throw new Gwn;if(this.sent===!0)return this.log.warn({err:new zwn(this.request.url,this.request.method)}),this;if(this[u4]||e instanceof Error)return this[u4]=!1,Vk(this,e,fT),this;if(e===void 0)return fT(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"||nnt.call(e)==="[object Response]")return fT(this,e),this;if(e.buffer instanceof ArrayBuffer){n||(this[jr]["content-type"]=Tue.OCTET);let r=Buffer.isBuffer(e)?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength);return fT(this,r),this}if(!n&&typeof e=="string")return this[jr]["content-type"]=Tue.PLAIN,fT(this,e),this}if(this[ng]!==null){if(typeof e!="string")return Ztt(this,e),this;e=this[ng](e)}else if(!n||t.indexOf("json")!==-1){if(!n)this[jr]["content-type"]=Tue.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 fT(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 Xwn=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(),Xwn.has(e))throw new Wwn(e);if(typeof t!="function")throw new Kwn(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 Vwn(e||String(e));return this.raw.statusCode=t,this[kue]=!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[Dn][l4]?.[e]?.[t]:n=this[Dn][l4]?.[e]:typeof e=="object"&&(n=this[Dn][QS]?.get(e)),n};Hr.prototype.compileSerializationSchema=function(e,t=null,n=null){let{request:r}=this,{method:i,url:s}=r;if(this[Dn][QS]?.has(e))return this[Dn][QS].get(e);let a=(this[Dn].serializerCompiler||this.server[_ue].serializerCompiler||this.server[_ue].setupSerializer(this.server[Mwn])||this.server[_ue].serializerCompiler)({schema:e,method:i,url:s,httpStatus:t,contentType:n});return this[Dn][QS]==null&&(this[Dn][QS]=new WeakMap),this[Dn][QS].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[Dn][l4]?.[n]?.[r]:s=this[Dn][l4]?.[n],s==null)throw r?new Zwn(n,r):new Ywn(n)}else this[Dn][QS]?.has(t)?s=this[Dn][QS].get(t):s=this.compileSerializationSchema(t,n,r);return s(e)};Hr.prototype.serialize=function(e){return this[ng]!==null?this[ng](e):this[Dn]&&this[Dn][c4]?this[Dn][c4](e,this.raw.statusCode):int(this[Dn],e,this.raw.statusCode)};Hr.prototype.serializer=function(e){return this[ng]=e,this};Hr.prototype.type=function(e){return this[jr]["content-type"]=e,this};Hr.prototype.redirect=function(e,t){return t||(t=this[kue]?this.raw.statusCode:302),this.header("location",e).code(t).send()};Hr.prototype.callNotFound=function(){return skn(this),this};Hr.prototype.then=function(e,t){if(this.sent){e();return}a4(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(!Ytt.hasKey(this,e)&&!Ytt.exist(this,e))throw new Jwn(e,"reply");let t=this[e];return typeof t=="function"?t.bind(this):t};function Ztt(e,t){e[Dn].preSerialization!==null?Uwn(e[Dn].preSerialization,e.request,e,t,Jtt):Jtt(null,void 0,e,t)}function Jtt(e,t,n,r){if(e!=null){Vk(n,e);return}try{n[ng]!==null?r=n[ng](r):n[Dn]&&n[Dn][c4]?r=n[Dn][c4](r,n.raw.statusCode):r=int(n[Dn],r,n.raw.statusCode,n[jr]["content-type"])}catch(i){Qwn(i,n),Vk(n,i);return}fT(n,r)}function Qwn(e,t){e.serialization=t[Dn].config}function fT(e,t){e[Dn].onSend!==null?tnt(e[Dn].onSend,e.request,e,t,$wn):rnt(e,t)}function $wn(e,t,n,r){e!=null?Vk(n,e):rnt(n,r)}function vue(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 rnt(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(nnt.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 qwn;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"),vue(e,i),UM(t,n,e);return}if(i>=100&&i<200||i===204){e.removeHeader("content-type"),e.removeHeader("content-length"),vue(e,i),UM(void 0,n,e),typeof t.resume=="function"&&(t.on("error",p4),t.resume());return}if(typeof t.pipe=="function"){tkn(t,n,e);return}if(typeof t.getReader=="function"){ekn(t,n,e);return}if(typeof t!="string"&&!Buffer.isBuffer(t))throw new Hwn(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))}vue(e,i),n.write(t),UM(t,n,e)}function f4(e,t,n){t.code==="ERR_STREAM_PREMATURE_CLOSE"?e[$tt]||e.info({res:n},"stream closed prematurely"):e.warn({err:t},"response terminated with an error with headers already sent")}function ekn(e,t,n){if(e.locked)throw new Bwn;let r=!0,i=!1,s=!1,o=e.getReader();if(a4(t,function(l){r&&(l!=null&&t.headersSent&&!i&&(i=!0,f4(n.log,l,t)),o.cancel().catch(p4))}),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,UM(null,t,n);return}if(t.destroyed){r=!1,o.cancel().catch(p4);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,f4(n.log,l,n)),t.destroy()):Vk(n,l)}o.read().then(a,u)}function tkn(e,t,n){let r=!0,i=!1;if(nkn(e,t,n),a4(e,{readable:!0,writable:!1},function(s){r=!1,s!=null&&(t.headersSent||n.request.raw.aborted===!0?(i||(i=!0,f4(n.log,s,n)),t.destroy()):Vk(n,s))}),a4(t,function(s){r&&(s!=null&&t.headersSent&&!i&&(i=!0,f4(n.log,s,t)),typeof e.destroy=="function"?e.destroy():typeof e.close=="function"?e.close(p4):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 UM(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 nkn(e,t,n){n[Yo]!==null&&e.on("end",()=>UM(null,t,n))}function Vk(e,t,n){e[Dn].onError!==null&&!e[Cwn]?(e[Iue]=!0,tnt(e[Dn].onError,e.request,e,t,()=>Ktt(e,t,n))):Ktt(e,t,n)}function rkn(e){e[FM]=Rue();let t=n=>{e[wue]=Rue(),e.raw.removeListener("finish",t),e.raw.removeListener("error",t);let r=e[Dn];e.request[ent]&&(clearTimeout(e.request[d4]),e.request[d4]=null,e.request[Gk]&&(e.request.raw.removeListener("close",e.request[Gk]),e.request[Gk]=null)),r&&r.onResponse!==null?Dwn(r.onResponse,e.request,e,Xtt):Xtt(n,e.request,e)};e.raw.on("finish",t),e.raw.on("error",t)}function Xtt(e,t,n){if(n.log[$tt])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 ikn(e){let t=e.props.slice();function n(r,i,s){this.raw=r,this[u4]=!1,this[Qtt]=!1,this[Aue]=!1,this[ng]=null,this.request=i,this[jr]={},this[Yo]=null,this[FM]=void 0,this[wue]=void 0,this.log=s;let o;for(let a=0;a{"use strict";function xue(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 okn(t,n)}function okn(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}g4.exports=xue;g4.exports.default=xue;g4.exports.forwarded=xue});var ant=w((ont,y4)=>{(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";Wk.exports=Oue;Wk.exports.default=Oue;Wk.exports.proxyaddr=Oue;Wk.exports.all=lnt;Wk.exports.compile=dnt;var akn=snt(),unt=ant(),ckn=/^\d+$/u,S4=unt.isValid,b4=unt.parse,cnt={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 lnt(e,t){let n=akn(e);if(!t)return n;typeof t!="function"&&(t=dnt(t));for(let r=0;ri)throw new TypeError("invalid range on address: "+e);return[r,s]}function fkn(e){let t=b4(e);return t.kind()==="ipv4"?t.prefixLengthFromSubnetMask():null}function Oue(e,t){if(!e)throw new TypeError("req argument is required");if(!t)throw new TypeError("trust argument is required");let n=lnt(e,t);return n[n.length-1]}function pkn(){return!1}function hkn(e){return function(n){if(!S4(n))return!1;let r=b4(n),i,s=r.kind();for(let o=0;o{"use strict";var E4=fnt(),{kHasBeenDecorated:gkn,kSchemaBody:ykn,kSchemaHeaders:Skn,kSchemaParams:bkn,kSchemaQuerystring:pnt,kSchemaController:Pue,kOptions:Ekn,kRequestCacheValidateFns:$S,kRouteContext:ac,kRequestOriginalUrl:Nue,kRequestSignal:hnt,kOnAbort:_kn}=$s(),{FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:Tkn,FST_ERR_DEC_UNDECLARED:vkn}=Ko(),mnt=LM(),gnt={body:ykn,headers:Skn,params:bkn,querystring:pnt,query:pnt};function Cue(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}Cue.props=[];function Rkn(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 E4.compile(t)}return E4.compile(e)}function Akn(e,t){return t?wkn(e,t):bnt(e)}function bnt(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[_kn]=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=gnt[e];return this[ac][t]}else if(typeof e=="object")return this[ac][$S]?.get(e)}},compileValidationSchema:{value:function(e,t=null){let{method:n,url:r}=this;if(this[ac][$S]?.has(e))return this[ac][$S].get(e);let s=(this[ac].validatorCompiler||this.server[Pue].validatorCompiler||this.server[Pue].setupValidator(this.server[Ekn])||this.server[Pue].validatorCompiler)({schema:e,method:n,url:r,httpPart:t});return this[ac][$S]==null&&(this[ac][$S]=new WeakMap),this[ac][$S].set(e,s),s}},validateInput:{value:function(e,t,n){n=typeof t=="string"?t:n;let r=n!=null&&typeof n=="string"&&gnt[n],i;if(r&&(i=this[ac][r]),i==null&&(t==null||typeof t!="object"||Array.isArray(t)))throw new Tkn(n);return i==null&&(this[ac][$S]?.has(t)?i=this[ac][$S].get(t):i=this.compileValidationSchema(t,n)),i(e)}},getDecorator:{value:function(e){Snt(this,e);let t=this[e];return typeof t=="function"?t.bind(this):t}},setDecorator:{value:function(e,t){Snt(this,e),this[e]=t}}});Mue.exports=Cue;Mue.exports.buildRequest=Akn});var T4=w((h3r,Ent)=>{"use strict";var{kFourOhFourContext:kkn,kReplySerializerDefault:Ikn,kSchemaErrorFormatter:xkn,kErrorHandler:Okn,kChildLoggerFactory:Pkn,kOptions:Nkn,kReply:Ckn,kRequest:Mkn,kBodyLimit:Dkn,kLogLevel:Lkn,kContentTypeParser:Ukn,kRouteByFastify:Fkn,kRequestCacheValidateFns:jkn,kReplyCacheSerializeFns:Hkn,kHandlerTimeout:qkn}=$s();function Bkn({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[Ckn],this.Request=g[Mkn],this.contentTypeParser=g[Ukn],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[Okn],this.requestIdLogLabel=r||g[Nkn].requestIdLogLabel,this.childLoggerFactory=i||g[Pkn],this._middie=null,this._parserOptions={limit:o||g[Dkn]},this.exposeHeadRoute=h,this.prefixTrailingSlash=m,this.logLevel=a||g[Lkn],this.logSerializers=c,this[kkn]=null,this.attachValidation=u,this[Ikn]=f,this.schemaErrorFormatter=p||g[xkn]||zkn,this[Fkn]=y,this[jkn]=null,this[Hkn]=null,this.validatorCompiler=l||null,this.serializerCompiler=d||null,this.handlerTimeout=b||g[qkn]||0,this.server=g}function zkn(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))}Ent.exports=Bkn});var Lue=w((m3r,Kk)=>{"use strict";var Gkn=typeof Buffer<"u",_nt=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,Tnt=/"(?: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 vnt(e,t,n){n==null&&t!==null&&typeof t=="object"&&(n=t,t=void 0),Gkn&&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(_nt.test(e)===!1&&Tnt.test(e)===!1)return r}else if(i!=="ignore"&&s==="ignore"){if(_nt.test(e)===!1)return r}else if(Tnt.test(e)===!1)return r;return Rnt(r,{protoAction:i,constructorAction:s,safe:n&&n.safe})}function Rnt(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 Due(e,t,n){let{stackTraceLimit:r}=Error;Error.stackTraceLimit=0;try{return vnt(e,t,n)}finally{Error.stackTraceLimit=r}}function Vkn(e,t){let{stackTraceLimit:n}=Error;Error.stackTraceLimit=0;try{return vnt(e,t,{safe:!0})}catch{return}finally{Error.stackTraceLimit=n}}Kk.exports=Due;Kk.exports.default=Due;Kk.exports.parse=Due;Kk.exports.safeParse=Vkn;Kk.exports.scan=Rnt});var que=w((g3r,qM)=>{"use strict";var{AsyncResource:Wkn}=Y("node:async_hooks"),{FifoMap:knt}=NV(),{parse:Kkn}=Lue(),HM=hce(),{kDefaultJsonParse:jM,kContentTypeParser:Yk,kBodyLimit:Ykn,kRequestPayloadStream:Int,kState:Fue,kTestInternals:Zkn,kReplyIsError:Ant,kRouteContext:Jkn}=$s(),{FST_ERR_CTP_INVALID_TYPE:v4,FST_ERR_CTP_EMPTY_TYPE:Xkn,FST_ERR_CTP_ALREADY_PRESENT:Qkn,FST_ERR_CTP_INVALID_HANDLER:$kn,FST_ERR_CTP_INVALID_PARSE_TYPE:eIn,FST_ERR_CTP_BODY_TOO_LARGE:wnt,FST_ERR_CTP_INVALID_MEDIA_TYPE:tIn,FST_ERR_CTP_INVALID_CONTENT_LENGTH:nIn,FST_ERR_CTP_EMPTY_JSON_BODY:rIn,FST_ERR_CTP_INSTANCE_ALREADY_STARTED:jue,FST_ERR_CTP_INVALID_JSON_BODY:iIn}=Ko(),{FSTSEC001:sIn}=Lk();function rg(e,t,n){this[jM]=Ont(t,n),this.customParsers=new Map,this.customParsers.set("application/json",new Uue(!0,!1,e,this[jM])),this.customParsers.set("text/plain",new Uue(!0,!1,e,Hue)),this.parserList=["application/json","text/plain"],this.parserRegExpList=[],this.cache=new knt(100)}rg.prototype.add=function(e,t,n){let r=typeof e=="string";if(r){if(e=e.trim().toLowerCase(),e.length===0)throw new Xkn}else if(!(e instanceof RegExp))throw new v4;if(typeof n!="function")throw new $kn;if(this.existingParser(e))throw new Qkn(e);if(t.parseAs!==void 0&&t.parseAs!=="string"&&t.parseAs!=="buffer")throw new eIn(t.parseAs);let i=new Uue(t.parseAs==="string",t.parseAs==="buffer",t.bodyLimit,n);if(e==="*")this.customParsers.set("",i);else if(r){let s=new HM(e);if(s.isValid===!1)throw new v4;let o=s.toString();this.parserList.unshift(o),this.customParsers.set(o,i)}else dIn(e),this.parserRegExpList.unshift(e),this.customParsers.set(e.toString(),i)};rg.prototype.hasParser=function(e){if(typeof e=="string")e=new HM(e).toString();else{if(!(e instanceof RegExp))throw new v4;e=e.toString()}return this.customParsers.has(e)};rg.prototype.existingParser=function(e){if(typeof e=="string"){let t=new HM(e).toString();if(e==="application/json"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==this[jM];if(e==="text/plain"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==Hue}return this.hasParser(e)};rg.prototype.getParser=function(e){typeof e=="string"&&(e=new HM(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("")};rg.prototype.removeAll=function(){this.customParsers=new Map,this.parserRegExpList=[],this.parserList=[],this.cache=new knt(100)};rg.prototype.remove=function(e){let t;if(typeof e=="string")e=new HM(e).toString(),t=this.parserList;else{if(!(e instanceof RegExp))throw new v4;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};rg.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 tIn);return}let s=new Wkn("content-type-parser:run",n),o=s.bind(c);if(i.asString===!0||i.asBuffer===!0){xnt(n,r,r[Jkn]._parserOptions,i,o);return}let a=i.fn(n,n[Int],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 xnt(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 wnt,void 0);return}let c=0,u=s?"":[],l=e[Int]||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 wnt,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 nIn,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 Ont(e,t){let n={protoAction:e,constructorAction:t};return r;function r(i,s,o){if(s.length===0){o(new rIn,void 0);return}try{o(null,Kkn(s,n))}catch{o(new iIn,void 0)}}}function Hue(e,t,n){n(null,t)}function Uue(e,t,n,r){this.asString=e,this.asBuffer=t,this.bodyLimit=n,this.fn=r}function oIn(e){let t=new rg;return t[jM]=e[jM],t.customParsers=new Map(e.customParsers.entries()),t.parserList=e.parserList.slice(),t.parserRegExpList=e.parserRegExpList.slice(),t}function aIn(e,t,n){if(this[Fue].started)throw new jue("addContentTypeParser");return typeof t=="function"&&(n=t,t={}),t||(t={}),t.bodyLimit||(t.bodyLimit=this[Ykn]),Array.isArray(e)?e.forEach(r=>this[Yk].add(r,t,n)):this[Yk].add(e,t,n),this}function cIn(e){return this[Yk].hasParser(e)}function uIn(e){if(this[Fue].started)throw new jue("removeContentTypeParser");if(Array.isArray(e))for(let t of e)this[Yk].remove(t);else this[Yk].remove(e)}function lIn(){if(this[Fue].started)throw new jue("removeAllContentTypeParsers");this[Yk].removeAll()}function dIn(e){e.source[0]!=="^"&&e.source.includes(";?")===!1&&sIn(e.source)}qM.exports=rg;qM.exports.helpers={buildContentTypeParser:oIn,addContentTypeParser:aIn,hasContentTypeParser:cIn,removeContentTypeParser:uIn,removeAllContentTypeParsers:lIn};qM.exports.defaultParsers={getDefaultJsonParser:Ont,defaultTextParser:Hue};qM.exports[Zkn]={rawBody:xnt}});var ig=w(BM=>{"use strict";Object.defineProperty(BM,"__esModule",{value:!0});BM.checkMetadata=void 0;var fIn=pn(),pIn={keyword:"metadata",schemaType:"object",code(e){Pnt(e);let{gen:t,schema:n,it:r}=e;if((0,fIn.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`)}BM.checkMetadata=Pnt;BM.default=pIn});var R4=w(GM=>{"use strict";Object.defineProperty(GM,"__esModule",{value:!0});GM.hasRef=void 0;var Nnt=q_(),zM=Ot(),hIn=Zm(),Cnt=bd(),Mnt=Kse(),mIn=ig(),gIn={keyword:"ref",schemaType:"string",code(e){(0,mIn.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,zM._)`${n} === null`),t.if((0,zM.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 hIn.default(s.opts.uriResolver,"",r,`No definition ${r}`);Bue(f)||!s.opts.inlineRefs?u(f):l(f)}function u(d){let f=Nnt.compileSchema.call(s.self,new Nnt.SchemaEnv({schema:d,root:o,schemaPath:`/definitions/${r}`})),p=(0,Mnt.getValidate)(e,f),h=t.const("_errs",Cnt.default.errors);(0,Mnt.callRef)(e,p,f,f.$async),t.assign(a,(0,zM._)`${h} === ${Cnt.default.errors}`)}function l(d){let f=t.scopeValue("schema",s.opts.code.source===!0?{ref:d,code:(0,zM.stringify)(d)}:{ref:d});e.subschema({schema:d,dataTypes:[],schemaPath:zM.nil,topSchemaRef:f,errSchemaPath:`/definitions/${r}`},a)}}};function Bue(e){for(let t in e){let n;if(t==="ref"||typeof(n=e[t])=="object"&&Bue(n))return!0}return!1}GM.hasRef=Bue;GM.default=gIn});var Gue=w(zue=>{"use strict";Object.defineProperty(zue,"__esModule",{value:!0});var yIn=/t|\s/i,SIn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,bIn=/^(\d\d):(\d\d):(\d\d)(?:\.\d+)?(?:z|([+-]\d\d)(?::?(\d\d))?)$/i,EIn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Lnt(e,t){let n=e.split(yIn);return n.length===2&&Dnt(n[0])&&_In(n[1])||t&&n.length===1&&Dnt(n[0])}zue.default=Lnt;function Dnt(e){let t=SIn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&(i<=EIn[r]||r===2&&i===29&&(n%100===0?n%400===0:n%4===0))}function _In(e){let t=bIn.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}Lnt.code='require("ajv/dist/runtime/timestamp").default'});var Zk=w(eb=>{"use strict";Object.defineProperty(eb,"__esModule",{value:!0});eb.typeErrorParams=eb.typeErrorMessage=eb.typeError=void 0;var TIn=Ot();function vIn(e){return{message:t=>Unt(t,e),params:t=>Fnt(t,e)}}eb.typeError=vIn;function Unt({parentSchema:e},t){return e?.nullable?`must be ${t} or null`:`must be ${t}`}eb.typeErrorMessage=Unt;function Fnt({parentSchema:e},t){return(0,TIn._)`{type: ${t}, nullable: ${!!e?.nullable}}`}eb.typeErrorParams=Fnt});var Vue=w(Jk=>{"use strict";Object.defineProperty(Jk,"__esModule",{value:!0});Jk.intRange=void 0;var El=Ot(),RIn=Gue(),AIn=pn(),wIn=ig(),jnt=Zk();Jk.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 kIn={message:e=>(0,jnt.typeErrorMessage)(e,e.schema),params:e=>(0,jnt.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,El._)`${n} instanceof Date `;let o=(0,AIn.useFunc)(t,RIn.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 xIn={keyword:"type",schemaType:"string",error:kIn,code(e){(0,wIn.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=IIn(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]=Jk.intRange[o];s=(0,El._)`${s} && ${t} >= ${a} && ${t} <= ${c}`}}}e.pass(r.nullable?(0,El.or)((0,El._)`${t} === null`,s):s)}};Jk.default=xIn});var Qk=w(Xk=>{"use strict";Object.defineProperty(Xk,"__esModule",{value:!0});Xk.checkNullableObject=Xk.checkNullable=void 0;var A4=Ot();function Hnt({gen:e,data:t,parentSchema:n},r=A4.nil){let i=e.name("valid");return n.nullable?(e.let(i,(0,A4._)`${t} === null`),r=(0,A4.not)(i)):e.let(i,!1),[i,r]}Xk.checkNullable=Hnt;function OIn(e,t){let[n,r]=Hnt(e,t);return[n,(0,A4._)`${r} && typeof ${e.data} == "object" && !Array.isArray(${e.data})`]}Xk.checkNullableObject=OIn});var qnt=w(Wue=>{"use strict";Object.defineProperty(Wue,"__esModule",{value:!0});var tb=Ot(),PIn=ig(),NIn=Qk(),CIn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,tb._)`{allowedValues: ${e}}`},MIn={keyword:"enum",schemaType:"array",error:CIn,code(e){(0,PIn.checkMetadata)(e);let{gen:t,data:n,schema:r,schemaValue:i,parentSchema:s,it:o}=e;if(r.length===0)throw new Error("enum must have non-empty array");if(r.length!==new Set(r).size)throw new Error("enum items must be unique");let a,c=(0,tb._)`typeof ${n} == "string"`;if(r.length>=o.opts.loopEnum){let l;[a,l]=(0,NIn.checkNullable)(e,c),t.if(l,u)}else{if(!Array.isArray(r))throw new Error("ajv implementation error");a=(0,tb.and)(c,(0,tb.or)(...r.map(l=>(0,tb._)`${n} === ${l}`))),s.nullable&&(a=(0,tb.or)((0,tb._)`${n} === null`,a))}e.pass(a);function u(){t.forOf("v",i,l=>t.if((0,tb._)`${a} = ${n} === ${l}`,()=>t.break()))}}};Wue.default=MIn});var znt=w(Kue=>{"use strict";Object.defineProperty(Kue,"__esModule",{value:!0});var DIn=pn(),LIn=Sa(),Bnt=Ot(),UIn=ig(),FIn=Qk(),jIn=Zk(),HIn={keyword:"elements",schemaType:"object",error:(0,jIn.typeError)("array"),code(e){(0,UIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e;if((0,DIn.alwaysValidSchema)(i,r))return;let[s]=(0,FIn.checkNullable)(e);t.if((0,Bnt.not)(s),()=>t.if((0,Bnt._)`Array.isArray(${n})`,()=>t.assign(s,(0,LIn.validateArray)(e)),()=>e.error())),e.ok(s)}};Kue.default=HIn});var Zue=w(nb=>{"use strict";Object.defineProperty(nb,"__esModule",{value:!0});nb.validateProperties=nb.error=void 0;var Yue=Sa(),Gnt=pn(),sg=Ot(),qIn=ig(),BIn=Qk(),Vnt=Zk(),$k;(function(e){e.Additional="additional",e.Missing="missing"})($k||($k={}));nb.error={message:e=>{let{params:t}=e;return t.propError?t.propError===$k.Additional?"must NOT have additional properties":`must have property '${t.missingProperty}'`:(0,Vnt.typeErrorMessage)(e,"object")},params:e=>{let{params:t}=e;return t.propError?t.propError===$k.Additional?(0,sg._)`{error: ${t.propError}, additionalProperty: ${t.additionalProperty}}`:(0,sg._)`{error: ${t.propError}, missingProperty: ${t.missingProperty}}`:(0,Vnt.typeErrorParams)(e,"object")}};var zIn={keyword:"properties",schemaType:"object",error:nb.error,code:Wnt};function Wnt(e){(0,qIn.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,BIn.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,Yue.allSchemaProperties)(E):[];if(i.jtdDiscriminator&&_.some(R=>R===i.jtdDiscriminator))throw new Error(`JTD: discriminator tag used in ${S}`);let T=_.filter(R=>!(0,Gnt.alwaysValidSchema)(i,E[R]));return[_,T]}function m(S,E,_){let T=t.var("valid");for(let A of S)t.if((0,Yue.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:$k.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,sg.and)(E,_);t.if(T,()=>{i.opts.removeAdditional?t.code((0,sg._)`delete ${n}[${S}]`):(e.error(!1,{propError:$k.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,Gnt.schemaRefOrVal)(i,r[_],_);R=(0,sg.not)((0,Yue.isOwnProperty)(t,A,S)),T!==void 0&&(R=(0,sg.and)(R,(0,sg._)`${S} !== ${T}`))}else if(E.length||T!==void 0){let A=T===void 0?E:[T].concat(E);R=(0,sg.and)(...A.map(x=>(0,sg._)`${S} !== ${x}`))}else R=!0;return R}}nb.validateProperties=Wnt;nb.default=zIn});var Ynt=w(Jue=>{"use strict";Object.defineProperty(Jue,"__esModule",{value:!0});var Knt=Zue(),GIn={keyword:"optionalProperties",schemaType:"object",error:Knt.error,code(e){e.parentSchema.properties||(0,Knt.validateProperties)(e)}};Jue.default=GIn});var Jnt=w(Xue=>{"use strict";Object.defineProperty(Xue,"__esModule",{value:!0});var pT=Ot(),VIn=ig(),WIn=Qk(),Znt=Zk(),w4=Coe(),KIn={message:e=>{let{schema:t,params:n}=e;return n.discrError?n.discrError===w4.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,pT._)`{error: ${n.discrError}, tag: ${t}, tagValue: ${n.tag}}`:(0,Znt.typeErrorParams)(e,"object")}},YIn={keyword:"discriminator",schemaType:"string",implements:["mapping"],error:KIn,code(e){(0,VIn.checkMetadata)(e);let{gen:t,data:n,schema:r,parentSchema:i}=e,[s,o]=(0,WIn.checkNullableObject)(e,n);t.if(o),a(),t.elseIf((0,pT.not)(s)),e.error(),t.endIf(),e.ok(s);function a(){let l=t.const("tag",(0,pT._)`${n}${(0,pT.getProperty)(r)}`);t.if((0,pT._)`${l} === undefined`),e.error(!1,{discrError:w4.DiscrError.Tag,tag:l}),t.elseIf((0,pT._)`typeof ${l} == "string"`),c(l),t.else(),e.error(!1,{discrError:w4.DiscrError.Tag,tag:l},{instancePath:r}),t.endIf()}function c(l){t.if(!1);for(let d in i.mapping)t.elseIf((0,pT._)`${l} === ${d}`),t.assign(s,u(d));t.else(),e.error(!1,{discrError:w4.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}}};Xue.default=YIn});var Qnt=w(Que=>{"use strict";Object.defineProperty(Que,"__esModule",{value:!0});var Xnt=pn(),k4=Ot(),ZIn=ig(),JIn=Qk(),XIn=Zk(),QIn={keyword:"values",schemaType:"object",error:(0,XIn.typeError)("object"),code(e){(0,ZIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e,[s,o]=(0,JIn.checkNullableObject)(e,n);(0,Xnt.alwaysValidSchema)(i,r)?t.if((0,k4.not)((0,k4.or)(o,s)),()=>e.error()):(t.if(o),t.assign(s,a()),t.elseIf((0,k4.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:Xnt.Type.Str},c),t.if((0,k4.not)(c),l)})}}}};Que.default=QIn});var $nt=w($ue=>{"use strict";Object.defineProperty($ue,"__esModule",{value:!0});var $In=Sa(),e0n={keyword:"union",schemaType:"array",trackErrors:!0,code:$In.validateUnion,error:{message:"must match a schema in union"}};$ue.default=e0n});var ert=w(ele=>{"use strict";Object.defineProperty(ele,"__esModule",{value:!0});var t0n=R4(),n0n=Vue(),r0n=qnt(),i0n=znt(),s0n=Zue(),o0n=Ynt(),a0n=Jnt(),c0n=Qnt(),u0n=$nt(),l0n=ig(),d0n=["definitions",t0n.default,n0n.default,r0n.default,i0n.default,s0n.default,o0n.default,a0n.default,c0n.default,u0n.default,l0n.default,{keyword:"additionalProperties",schemaType:"boolean"},{keyword:"nullable",schemaType:"boolean"}];ele.default=d0n});var irt=w(tle=>{"use strict";Object.defineProperty(tle,"__esModule",{value:!0});var og=e=>{let t={nullable:{type:"boolean"},metadata:{optionalProperties:{union:{elements:{ref:"schema"}}},additionalProperties:!0}};return e&&(t.definitions={values:{ref:"schema"}}),t},f0n=e=>({optionalProperties:og(e)}),p0n=e=>({properties:{ref:{type:"string"}},optionalProperties:og(e)}),h0n=e=>({properties:{type:{enum:["boolean","timestamp","string","float32","float64","int8","uint8","int16","uint16","int32","uint32"]}},optionalProperties:og(e)}),m0n=e=>({properties:{enum:{elements:{type:"string"}}},optionalProperties:og(e)}),g0n=e=>({properties:{elements:{ref:"schema"}},optionalProperties:og(e)}),nrt=e=>({properties:{properties:{values:{ref:"schema"}}},optionalProperties:{optionalProperties:{values:{ref:"schema"}},additionalProperties:{type:"boolean"},...og(e)}}),rrt=e=>({properties:{optionalProperties:{values:{ref:"schema"}}},optionalProperties:{additionalProperties:{type:"boolean"},...og(e)}}),y0n=e=>({properties:{discriminator:{type:"string"},mapping:{values:{metadata:{union:[nrt(!1),rrt(!1)]}}}},optionalProperties:og(e)}),S0n=e=>({properties:{values:{ref:"schema"}},optionalProperties:og(e)}),trt=e=>({metadata:{union:[f0n,p0n,h0n,m0n,g0n,nrt,rrt,y0n,S0n].map(t=>t(e))}}),b0n={definitions:{schema:trt(!1)},...trt(!0)};tle.default=b0n});var nle=w(I4=>{"use strict";Object.defineProperty(I4,"__esModule",{value:!0});I4.jtdForms=void 0;I4.jtdForms=["elements","values","discriminator","properties","optionalProperties","enum","type","ref"]});var ort=w(ile=>{"use strict";Object.defineProperty(ile,"__esModule",{value:!0});var rle=/[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,E0n={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function srt(e){return rle.lastIndex=0,'"'+(rle.test(e)?e.replace(rle,t=>{let n=E0n[t];return typeof n=="string"?n:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)}):e)+'"'}ile.default=srt;srt.code='require("ajv/dist/runtime/quote").default'});var frt=w(ole=>{"use strict";Object.defineProperty(ole,"__esModule",{value:!0});var _0n=nle(),crt=q_(),En=Ot(),T0n=Zm(),qr=bd(),v0n=Sa(),R0n=R4(),A0n=pn(),w0n=ort(),k0n={elements:x0n,values:O0n,discriminator:P0n,properties:art,optionalProperties:art,enum:VM,type:N0n,ref:M0n};function urt(e,t){let n=crt.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)``),WM(c),o.return(qr.default.json)}),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(qr.default.scope)}return ${l}`;let f=new Function(`${qr.default.scope}`,u)(this.scope.get());this.scope.value(a,{ref:f}),e.serialize=f}catch(l){throw u&&this.logger.error("Error compiling serializer, function code:",u),delete e.serialize,delete e.serializeName,l}finally{this._compilations.delete(e)}return e}ole.default=urt;function WM(e){let t;for(let n of _0n.jtdForms)if(n in e.schema){t=n;break}I0n(e,t?k0n[t]:L0n)}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 x0n(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=>{sle(e,i),WM({...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=>lrt(e,s,n.values,i)),t.add(qr.default.json,(0,En.str)`}`)}function lrt(e,t,n,r){let{gen:i,data:s}=e;sle(e,r),VM({...e,data:t}),i.add(qr.default.json,(0,En.str)`:`);let o=i.const("value",(0,En._)`${s}${(0,En.getProperty)(t)}`);WM({...e,schema:n,data:o})}function P0n(e){let{gen:t,schema:n,data:r}=e,{discriminator:i}=n;t.add(qr.default.json,(0,En.str)`{${JSON.stringify(i)}:`);let s=t.const("tag",(0,En._)`${r}${(0,En.getProperty)(i)}`);VM({...e,data:s}),t.if(!1);for(let o in n.mapping){t.elseIf((0,En._)`${s} === ${o}`);let a=n.mapping[o];drt({...e,schema:a},i)}t.endIf(),t.add(qr.default.json,(0,En.str)`}`)}function art(e){let{gen:t}=e;t.add(qr.default.json,(0,En.str)`{`),drt(e),t.add(qr.default.json,(0,En.str)`}`)}function drt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o}=r,a=f(s),c=f(o),u=p(a.concat(c)),l=!t,d;for(let y of a)l?l=!1:n.add(qr.default.json,(0,En.str)`,`),m(y,s[y],h(y));l&&(d=n.let("first",!0));for(let y of c){let b=h(y);n.if((0,En.and)((0,En._)`${b} !== undefined`,(0,v0n.isOwnProperty)(n,i,y)),()=>{sle(e,d),m(y,o[y],b)})}r.additionalProperties&&n.forIn("key",i,y=>n.if(g(y,u),()=>lrt(e,y,{},d)));function f(y){return y?Object.keys(y):[]}function p(y){if(t&&y.push(t),new Set(y).size!==y.length)throw new Error("JTD: properties/optionalProperties/disciminator overlap");return y}function h(y){return n.const("value",(0,En._)`${i}${(0,En.getProperty)(y)}`)}function m(y,b,S){n.add(qr.default.json,(0,En.str)`${JSON.stringify(y)}:`),WM({...e,schema:b,data:S})}function g(y,b){return b.length?(0,En.and)(...b.map(S=>(0,En._)`${y} !== ${S}`)):!0}}function N0n(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":VM(e);break;case"timestamp":t.if((0,En._)`${r} instanceof Date`,()=>t.add(qr.default.json,(0,En._)`'"' + ${r}.toISOString() + '"'`),()=>VM(e));break;default:C0n(e)}}function VM({gen:e,data:t}){e.add(qr.default.json,(0,En._)`${(0,A0n.useFunc)(e,w0n.default)}(${t})`)}function C0n({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 M0n(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 T0n.default(n.opts.uriResolver,"",a,`No definition ${a}`);if(!(0,R0n.hasRef)(c))return WM({...e,schema:c});let{root:u}=o,l=urt.call(n,new crt.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 L0n({gen:e,data:t}){e.add(qr.default.json,(0,En._)`JSON.stringify(${t})`)}function sle({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 hrt=w(ib=>{"use strict";Object.defineProperty(ib,"__esModule",{value:!0});ib.parseJsonString=ib.parseJsonNumber=ib.parseJson=void 0;var U0n=/position\s(\d+)(?: \(line \d+ column \d+\))?$/;function ag(e,t){let n;ag.message=void 0;let r;t&&(e=e.slice(t));try{return ag.position=t+e.length,JSON.parse(e)}catch(i){if(r=U0n.exec(i.message),!r){ag.message="unexpected end";return}n=+r[1];let s=e[n];e=e.slice(0,n),ag.position=t+n;try{return JSON.parse(e)}catch{ag.message=`unexpected token ${s}`;return}}}ib.parseJson=ag;ag.message=void 0;ag.position=0;ag.code='require("ajv/dist/runtime/parseJson").parseJson';function cg(e,t,n){let r="",i;if(cg.message=void 0,e[t]==="-"&&(r+="-",t++),e[t]==="0")r+="0",t++;else if(!s(n)){o();return}if(n)return cg.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 cg.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(){cg.position=t,cg.message=t="a"&&r<="f")o+=r.charCodeAt(0)-F0n+10;else if(r>="0"&&r<="9")o+=r.charCodeAt(0)-j0n;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 rb.position=t,n;function i(s){rb.position=t,rb.message=s}}ib.parseJsonString=rb;rb.message=void 0;rb.position=0;rb.code='require("ajv/dist/runtime/parseJson").parseJsonString'});var Art=w(hle=>{"use strict";Object.defineProperty(hle,"__esModule",{value:!0});var H0n=nle(),Srt=q_(),mt=Ot(),q0n=Zm(),Ln=bd(),B0n=Sa(),z0n=R4(),G0n=Vue(),ule=hrt(),brt=pn(),V0n=Gue(),W0n={elements:J0n,values:X0n,discriminator:$0n,properties:mrt,optionalProperties:mrt,enum:txn,type:exn,ref:nxn};function Ert(e,t){let n=Srt.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:Ln.default.data,parseName:a,char:o.name("c")},u;try{this._compilations.add(e),e.parseName=a,K0n(c),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(Ln.default.scope)}return ${l}`;let f=new Function(`${Ln.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}hle.default=Ert;var cle=(0,mt._)`undefined`;function K0n(e){let{gen:t,parseName:n,char:r}=e;t.func(n,(0,mt._)`${Ln.default.json}, ${Ln.default.jsonPos}, ${Ln.default.jsonPart}`,!1,()=>{t.let(Ln.default.data),t.let(r),t.assign((0,mt._)`${n}.message`,cle),t.assign((0,mt._)`${n}.position`,cle),t.assign(Ln.default.jsonPos,(0,mt._)`${Ln.default.jsonPos} || 0`),t.const(Ln.default.jsonLen,(0,mt._)`${Ln.default.json}.length`),x4(e),ple(e),t.if(Ln.default.jsonPart,()=>{t.assign((0,mt._)`${n}.position`,Ln.default.jsonPos),t.return(Ln.default.data)}),t.if((0,mt._)`${Ln.default.jsonPos} === ${Ln.default.jsonLen}`,()=>t.return(Ln.default.data)),eI(e)})}function x4(e){let t;for(let n of H0n.jtdForms)if(n in e.schema){t=n;break}t?Z0n(e,W0n[t]):dle(e)}var Y0n=yrt(!0,yrt(!1,eI));function Z0n(e,t){let{gen:n,schema:r,data:i}=e;if(!r.nullable)return t(e);KM(e,"null",t,()=>n.assign(i,null))}function J0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"[");let i=t.let("i",0);t.assign(r,(0,mt._)`[]`),lle(e,"]",()=>{let s=t.let("el");x4({...e,schema:n.elements,data:s}),t.assign((0,mt._)`${r}[${i}++]`,s)})}function X0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"{"),t.assign(r,(0,mt._)`{}`),lle(e,"}",()=>Q0n(e,n.values))}function lle(e,t,n){_rt(e,t,n),Ah(e,t)}function _rt(e,t,n){let{gen:r}=e;r.for((0,mt._)`;${Ln.default.jsonPos}<${Ln.default.jsonLen} && ${O4(1)}!==${t};`,()=>{n(),KM(e,",",()=>r.break(),i)});function i(){KM(e,t,()=>{},eI)}}function Q0n(e,t){let{gen:n}=e,r=n.let("key");hT({...e,data:r}),Ah(e,":"),vrt(e,r,t)}function $0n(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",Ln.default.jsonPos),a=t.let("value"),c=t.let("tag");_rt(e,"}",()=>{let u=t.let("key");hT({...e,data:u}),Ah(e,":"),t.if((0,mt._)`${u} === ${i}`,()=>{hT({...e,data:c}),t.assign((0,mt._)`${n}[${u}]`,c),t.break()},()=>dle({...e,data:a}))}),t.assign(Ln.default.jsonPos,o),t.if((0,mt._)`${c} === undefined`),ug(e,(0,mt.str)`discriminator tag not found`);for(let u in s)t.elseIf((0,mt._)`${c} === ${u}`),Trt({...e,schema:s[u]},i);t.else(),ug(e,(0,mt.str)`discriminator value not in schema`),t.endIf()}function mrt(e){let{gen:t,data:n}=e;Ah(e,"{"),t.assign(n,(0,mt._)`{}`),Trt(e)}function Trt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o,additionalProperties:a}=r;if(lle(e,"}",()=>{let c=n.let("key");if(hT({...e,data:c}),Ah(e,":"),n.if(!1),grt(e,c,s),grt(e,c,o),t){n.elseIf((0,mt._)`${c} === ${t}`);let u=n.let("tag");hT({...e,data:u})}n.else(),a?dle({...e,data:(0,mt._)`${i}[${c}]`}):ug(e,(0,mt.str)`property ${c} not allowed`),n.endIf()}),s){let c=(0,B0n.hasPropFunc)(n),u=(0,mt.and)(...Object.keys(s).map(l=>(0,mt._)`${c}.call(${i}, ${l})`));n.if((0,mt.not)(u),()=>ug(e,(0,mt.str)`missing required properties`))}}function grt(e,t,n={}){let{gen:r}=e;for(let i in n)r.elseIf((0,mt._)`${t} === ${i}`),vrt(e,t,n[i])}function vrt(e,t,n){x4({...e,schema:n,data:(0,mt._)`${e.data}[${t}]`})}function exn(e){let{gen:t,schema:n,data:r,self:i}=e;switch(n.type){case"boolean":Y0n(e);break;case"string":hT(e);break;case"timestamp":{hT(e);let s=(0,brt.useFunc)(t,V0n.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,()=>ug(e,(0,mt.str)`invalid timestamp`));break}case"float32":case"float64":ale(e);break;default:{let s=n.type;if(!i.opts.int32range&&(s==="int32"||s==="uint32"))ale(e,16),s==="uint32"&&t.if((0,mt._)`${r} < 0`,()=>ug(e,(0,mt.str)`integer out of range`));else{let[o,a,c]=G0n.intRange[s];ale(e,c),t.if((0,mt._)`${r} < ${o} || ${r} > ${a}`,()=>ug(e,(0,mt.str)`integer out of range`))}}}}function hT(e){Ah(e,'"'),fle(e,ule.parseJsonString)}function txn(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._)`${O4(o.length)} === ${o}`),t.assign(n,(0,mt.str)`${s}`),t.add(Ln.default.jsonPos,o.length)}t.else(),eI(e),t.endIf()}function ale(e,t){let{gen:n}=e;ple(e),n.if((0,mt._)`"-0123456789".indexOf(${O4(1)}) < 0`,()=>eI(e),()=>fle(e,ule.parseJsonNumber,t))}function yrt(e,t){return n=>{let{gen:r,data:i}=n;KM(n,`${e}`,()=>t(n),()=>r.assign(i,e))}}function nxn(e){let{gen:t,self:n,definitions:r,schema:i,schemaEnv:s}=e,{ref:o}=i,a=r[o];if(!a)throw new q0n.default(n.opts.uriResolver,"",o,`No definition ${o}`);if(!(0,z0n.hasRef)(a))return x4({...e,schema:a});let{root:c}=s,u=Ert.call(n,new Srt.SchemaEnv({schema:a,root:c}),r);Rrt(e,rxn(t,u),!0)}function rxn(e,t){return t.parse?e.scopeValue("parse",{ref:t.parse}):(0,mt._)`${e.scopeValue("wrapper",{ref:t})}.parse`}function dle(e){fle(e,ule.parseJson)}function fle(e,t,n){Rrt(e,(0,brt.useFunc)(e.gen,t),n)}function Rrt(e,t,n){let{gen:r,data:i}=e;r.assign(i,(0,mt._)`${t}(${Ln.default.json}, ${Ln.default.jsonPos}${n?(0,mt._)`, ${n}`:mt.nil})`),r.assign(Ln.default.jsonPos,(0,mt._)`${t}.position`),r.if((0,mt._)`${i} === undefined`,()=>ug(e,(0,mt._)`${t}.message`))}function Ah(e,t){KM(e,t,eI)}function KM(e,t,n,r){let{gen:i}=e,s=t.length;ple(e),i.if((0,mt._)`${O4(s)} === ${t}`,()=>{i.add(Ln.default.jsonPos,s),r?.(e)},()=>n(e))}function ple({gen:e,char:t}){e.code((0,mt._)`while((${t}=${Ln.default.json}[${Ln.default.jsonPos}],${t}===" "||${t}==="\\n"||${t}==="\\r"||${t}==="\\t"))${Ln.default.jsonPos}++;`)}function O4(e){return e===1?(0,mt._)`${Ln.default.json}[${Ln.default.jsonPos}]`:(0,mt._)`${Ln.default.json}.slice(${Ln.default.jsonPos}, ${Ln.default.jsonPos}+${e})`}function eI(e){ug(e,(0,mt._)`"unexpected token " + ${Ln.default.json}[${Ln.default.jsonPos}]`)}function ug({gen:e,parseName:t},n){e.assign((0,mt._)`${t}.message`,n),e.assign((0,mt._)`${t}.position`,Ln.default.jsonPos),e.return(cle)}});var yle=w((bi,gle)=>{"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 ixn=Vse(),sxn=ert(),oxn=irt(),axn=frt(),cxn=Art(),mle="JTD-meta-schema",tI=class extends ixn.default{constructor(t={}){super({...t,jtd:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(sxn.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema(),this.opts.meta&&this.addMetaSchema(oxn.default,mle,!1)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(mle)?mle: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(axn.default.call(this,t,t.schema.definitions||{}),!t.serialize)throw new Error("ajv implementation error");return t.serialize}_compileParser(t){if(cxn.default.call(this,t,t.schema.definitions||{}),!t.parse)throw new Error("ajv implementation error");return t.parse}};bi.Ajv=tI;gle.exports=bi=tI;gle.exports.Ajv=tI;Object.defineProperty(bi,"__esModule",{value:!0});bi.default=tI;var uxn=ck();Object.defineProperty(bi,"KeywordCxt",{enumerable:!0,get:function(){return uxn.KeywordCxt}});var nI=Ot();Object.defineProperty(bi,"_",{enumerable:!0,get:function(){return nI._}});Object.defineProperty(bi,"str",{enumerable:!0,get:function(){return nI.str}});Object.defineProperty(bi,"stringify",{enumerable:!0,get:function(){return nI.stringify}});Object.defineProperty(bi,"nil",{enumerable:!0,get:function(){return nI.nil}});Object.defineProperty(bi,"Name",{enumerable:!0,get:function(){return nI.Name}});Object.defineProperty(bi,"CodeGen",{enumerable:!0,get:function(){return nI.CodeGen}});var lxn=MC();Object.defineProperty(bi,"ValidationError",{enumerable:!0,get:function(){return lxn.default}});var dxn=Zm();Object.defineProperty(bi,"MissingRefError",{enumerable:!0,get:function(){return dxn.default}})});var Sle=w((U3r,wrt)=>{"use strict";var fxn=sV();wrt.exports=Object.freeze({coerceTypes:"array",useDefaults:!0,removeAdditional:!0,uriResolver:fxn,addUsedSchema:!1,allErrors:!1})});var xrt=w((F3r,Irt)=>{"use strict";var pxn=V_().default,hxn=yle(),krt=Sle(),ble=class{constructor(t,n){n.mode==="JTD"?this.ajv=new hxn(Object.assign({},krt,n.customOptions)):this.ajv=new pxn(Object.assign({},krt,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&&TV()(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)}};Irt.exports=ble});var Prt=w((j3r,Ort)=>{"use strict";var mxn=yle(),gxn=Sle(),Ele=class{constructor(t,n){this.ajv=new mxn(Object.assign({},gxn,n))}buildSerializerFunction({schema:t}){return this.ajv.compileSerializer(t)}};Ort.exports=Ele});var Mrt=w((ZM,Crt)=>{"use strict";Object.defineProperty(ZM,"__esModule",{value:!0});var YM=G2(),Cf=ek();function Nrt(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)===YM.UsedValueState.Completed)return Cf.nil;p(c.validateName,YM.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?YM.varKinds.var:YM.varKinds.const,E=(0,Cf._)`${S} ${h} = {validate: ${b}};`;if(f(b)===YM.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)}}}Crt.exports=ZM=Nrt;Object.defineProperty(ZM,"__esModule",{value:!0});ZM.default=Nrt});var Urt=w((H3r,Lrt)=>{"use strict";var Drt=_le(),yxn=Mrt().default;function Sxn(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=Drt();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=yxn(s[Drt.AjvReference].ajv,a);return e.storeFunction(o,c),a}}}Lrt.exports=Sxn});var _le=w((q3r,rI)=>{"use strict";var jrt=Symbol.for("fastify.ajv-compiler.reference"),bxn=xrt(),Exn=Prt();function Tle(e){let t=new Map,n=new Map;return e&&e.jtdSerializer===!0?function(i,s){let o=Frt({},s);if(n.has(o))return n.get(o);let a=new Exn(i,s),c=a.buildSerializerFunction.bind(a);return n.set(o,c),c}:function(i,s){let o=Frt(i,s.customOptions);if(t.has(o))return t.get(o);let a=new bxn(i,s),c=a.buildValidatorFunction.bind(a);return t.set(o,c),s.customOptions.code!==void 0&&(c[jrt]=a),c}}function Frt(e,t){let n=JSON.stringify(e),r=JSON.stringify(t);return`${n}${r}`}rI.exports=Tle;rI.exports.default=Tle;rI.exports.AjvCompiler=Tle;rI.exports.AjvReference=jrt;rI.exports.StandaloneValidator=Urt()});var P4=w(Brt=>{var Hrt=Object.prototype.hasOwnProperty;function qrt(e,t,n){for(n of e.keys())if(JM(n,t))return n}function JM(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--&&JM(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=qrt(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=qrt(t,i),!i)||!JM(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(Hrt.call(e,n)&&++r&&!Hrt.call(t,n)||!(n in t)||!JM(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}Brt.dequal=JM});var Wrt=w((z3r,Vrt)=>{"use strict";var{dequal:zrt}=P4(),_xn=Symbol.for("json-schema-ref"),vle=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]:Grt(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]:Grt(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[_xn]=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(zrt(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&&zrt(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 Grt(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}Vrt.exports={RefResolver:vle}});var Ale=w((G3r,Krt)=>{"use strict";var Txn=V_(),vxn=sV(),Rxn=TV(),Axn=n4()({proto:!0}),Rle=class e{constructor(t){this.ajv=new Txn({...t,strictSchema:!1,validateSchema:!1,allowUnionTypes:!0,uriResolver:vxn}),Rxn(this.ajv),this.ajv.addKeyword({keyword:"fjs_type",type:"object",errors:!1,validate:(n,r)=>r&&typeof r.toJSON=="function"}),this._ajvSchemas={},this._ajvOptions=t||{}}addSchema(t,n){let r=t.$id||n;if(t.$id!==void 0&&t.$id[0]==="#"&&(r=n+t.$id),this.ajv.refs[r]===void 0&&this.ajv.schemas[r]===void 0){let i=Axn(t);this.convertSchemaToAjvFormat(i),this.ajv.addSchema(i,r),this._ajvSchemas[r]=t}}validate(t,n){return this.ajv.validate(t,n)}convertSchemaToAjvFormat(t){if(t!==null){t.type==="string"?(t.fjs_type="string",t.type=["string","object"]):Array.isArray(t.type)&&t.type.includes("string")&&!t.type.includes("object")&&(t.fjs_type="string",t.type.push("object"));for(let n in t)typeof t[n]=="object"&&this.convertSchemaToAjvFormat(t[n])}}getState(){return{ajvOptions:this._ajvOptions,ajvSchemas:this._ajvSchemas}}static restoreFromState(t){let n=new e(t.ajvOptions);for(let[r,i]of Object.entries(t.ajvSchemas))n.ajv.addSchema(i,r);return n}};Krt.exports=Rle});var Zrt=w((V3r,Yrt)=>{"use strict";var wle=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}};Yrt.exports=wle});var eit=w((W3r,Ile)=>{"use strict";Ile.exports=qe;Ile.exports.default=qe;var wxn={$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},Jrt={enum:["array","boolean","integer","null","number","object","string"]},Xrt=/^(?:[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,kxn=EV().fullFormats.uri,Qrt=EV().fullFormats.regex;function kd(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))?(kd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1):(kd.errors=s,o===0):(kd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1)}var kle={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;kd(e.minLength,{instancePath:t+"/minLength",parentData:e,parentDataProperty:"minLength",rootData:i})||(s=s===null?kd.errors:s.concat(kd.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(!Qrt(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;kd(e.minItems,{instancePath:t+"/minItems",parentData:e,parentDataProperty:"minItems",rootData:i})||(s=s===null?kd.errors:s.concat(kd.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;kd(e.minProperties,{instancePath:t+"/minProperties",parentData:e,parentDataProperty:"minProperties",rootData:i})||(s=s===null?kd.errors:s.concat(kd.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"&&!Qrt(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($rt(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:Jrt.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($rt(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 Nle=w((K3r,tit)=>{"use strict";var xle=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}},Ole=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}},Ple=class extends Error{constructor(t){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Invalid "onConflict" option: "${t}".`}};tit.exports={MergeError:xle,ResolverNotFoundError:Ole,InvalidOnConflictOptionError:Ple}});var iit=w((Y3r,rit)=>{"use strict";var{dequal:Ixn}=P4(),{MergeError:Cle}=Nle();function nit(e){let t=e[0];for(let n=1;ne[n].includes(r));return t}function xxn(e,t,n){let r=nit(t);if(r.length===0)throw new Cle(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:jxn}=P4(),Qi=iit(),M4=Nle(),ait={$id:Qi.skip,type:Qi.hybridArraysIntersection,enum:Qi.arraysIntersection,minLength:Qi.maxNumber,maxLength:Qi.minNumber,minimum:Qi.maxNumber,maximum:Qi.minNumber,multipleOf:Qi.commonMultiple,exclusiveMinimum:Qi.maxNumber,exclusiveMaximum:Qi.minNumber,minItems:Qi.maxNumber,maxItems:Qi.minNumber,maxProperties:Qi.minNumber,minProperties:Qi.maxNumber,const:Qi.allEqual,default:Qi.allEqual,format:Qi.allEqual,required:Qi.arraysUnion,properties:Vxn,patternProperties:C4,additionalProperties:N4,items:Bxn,additionalItems:zxn,definitions:C4,$defs:C4,nullable:Qi.booleanAnd,oneOf:sit,anyOf:sit,allOf:Qi.arraysUnion,not:N4,if:Wxn,then:Qi.skip,else:Qi.skip,dependencies:oit,dependentRequired:oit,dependentSchemas:C4,propertyNames:N4,uniqueItems:Qi.booleanOr,contains:N4};function N4(e,t,n,r,i){n[e]=Mf(t,i)}function Hxn(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 sit(e,t,n,r,i){if(t.length===1){n[e]=t[0];return}let s=Hxn(t),o=[];for(let a of s)try{let c=Mf(a,i);c!==void 0&&o.push(c)}catch(c){if(c instanceof M4.MergeError)continue;throw c}n[e]=o}function qxn(e,t){let{items:n,additionalItems:r}=e;return Array.isArray(n)?t{"use strict";var{mergeSchemas:Yxn}=lit();function Zxn(e){return Yxn(e,{onConflict:"skip"})}dit.exports=Zxn});var pit=w((X3r,Mle)=>{"use strict";function Jxn(e,t,n,r){let i="";t.validatorSchemasIds.size>0?(i+=`const Validator = require('fast-json-stringify/lib/validator') +`),G=dAn.bind(null,{[ftt]:"",[ptt]:o,[mtt]:N,[htt]:pue,[hue]:x,[gtt]:k}),W="";d!==null&&(f===void 0?W=G(d):W=G(Object.assign({},d,{name:f})));let $=a instanceof Function?a:a?Ttt:NAn,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"`);sAn(p,h,b);let Q=Ett(h,b);typeof r.emit=="function"&&r.emit("message",{code:"PINO_CONFIG",config:{levels:Q,messageKey:c,errorKey:u}}),cAn(m);let B=aAn(m);return Object.assign(t,{levels:Q,[wAn]:B,[kAn]:b,[SAn]:r,[gAn]:$,[yAn]:q,[htt]:pue,[hue]:x,[mtt]:N,[EAn]:L,[_An]:C,[TAn]:c,[vAn]:u,[RAn]:l,[xAn]:l?`,${JSON.stringify(l)}:{`:"",[ptt]:o,[AAn]:g,[OAn]:y,[ftt]:W,[gtt]:k,[IAn]:E,silent:pAn,onChild:R,[PAn]:A}),Object.setPrototypeOf(t,rAn()),oAn(t),t[bAn](p),t}wd.exports=mue;wd.exports.destination=(e=process.stdout.fd)=>typeof e=="object"?(e.dest=dtt(e.dest||process.stdout.fd),ltt(e)):ltt({dest:dtt(e),minLength:0});wd.exports.transport=Jce();wd.exports.multistream=utt();wd.exports.levels=Ett();wd.exports.stdSerializers=FAn;wd.exports.stdTimeFunctions=Object.assign({},Stt);wd.exports.symbols=btt;wd.exports.version=hAn;wd.exports.default=mue;wd.exports.pino=mue});var wtt=w((n3r,Att)=>{"use strict";var e4=vtt(),{serializersSym:Rtt}=e4.symbols,{FST_ERR_LOG_INVALID_DESTINATION:jAn}=Ko();function HAn(e){if(e.stream&&e.file)throw new jAn;e.file&&(e.stream=e4.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[Rtt]&&(e.serializers=Object.assign({},e.serializers,t[Rtt])),r=t.child({},e),e.logger=t,e.genReqId=n):r=e4(e,e.stream),r}var qAn={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:e4.stdSerializers.err,res:function(t){return{statusCode:t.statusCode}}};Att.exports={serializers:qAn,createPinoLogger:HAn}});var PM=w((r3r,Itt)=>{"use strict";var{FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:BAn,FST_ERR_LOG_INVALID_LOGGER_CONFIG:zAn,FST_ERR_LOG_INVALID_LOGGER_INSTANCE:GAn,FST_ERR_LOG_INVALID_LOGGER:VAn}=Ko();function WAn(e,t,n,r,i){let s={[e.requestIdLogLabel]:r},o=e.childLoggerFactory.call(e.server,t,s,i||{},n);return e.childLoggerFactory!==ktt&&t4(o,!0),o}function ktt(e,t,n){return e.child(t,n)}function t4(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 VAn(r.join(","))}else return!0}function KAn(e){if(e.logger&&e.loggerInstance)throw new BAn;if(!e.loggerInstance&&!e.logger){let o=S$e();return o.child=()=>o,{logger:o,hasLogger:!1}}let{createPinoLogger:t,serializers:n}=wtt();if(t4(e.loggerInstance))return{logger:t({logger:e.loggerInstance,serializers:Object.assign({},n,e.loggerInstance.serializers)}),hasLogger:!0};if(t4(e.logger))throw zAn();if(e.loggerInstance)throw GAn();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 YAn(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}Itt.exports={createChildLogger:WAn,defaultChildLoggerFactory:ktt,createLogger:KAn,validateLogger:t4,now:YAn}});var n4=w((i3r,xtt)=>{"use strict";xtt.exports=ZAn;function zk(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function ZAn(e){if(e=e||{},e.circles)return JAn(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 XAn=n4()({circles:!1,proto:!0}),{kSchemaVisited:Ott,kSchemaResponse:QAn}=$s(),gue=Symbol.for("fluent-schema-object"),{FST_ERR_SCH_MISSING_ID:$An,FST_ERR_SCH_ALREADY_PRESENT:ewn,FST_ERR_SCH_DUPLICATE:twn,FST_ERR_SCH_CONTENT_MISSING_SCHEMA:Ptt}=Ko(),Ctt=["params","body","querystring","query","headers"];function r4(e){this.store=e||{}}r4.prototype.add=function(e){let t=XAn(e.isFluentSchema||e.isFluentJSONSchema||e[gue]?e.valueOf():e),n=t.$id;if(!n)throw new $An;if(this.store[n])throw new ewn(n);this.store[n]=t};r4.prototype.getSchemas=function(){return Object.assign({},this.store)};r4.prototype.getSchema=function(e){return this.store[e]};function Ntt(e){return typeof e=="object"&&Object.getPrototypeOf(e)!==Object.prototype}function nwn(e,t){if(e[Ott])return e;if(e.query){if(e.querystring)throw new twn("querystring");e.querystring=e.query}rwn(e);for(let n of Ctt){let r=e[n];if(r&&!Ntt(r)&&n==="body"&&r.content){let i=r.content,s=Object.keys(i);for(let o=0;o{"use strict";var swn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;Ltt.exports=class Dtt{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&&swn.test(t)===!1?'"'+t+'"':JSON.stringify(t)}asUnsafeString(t){return'"'+t+'"'}getState(){return this._options}static restoreFromState(t){return new Dtt(t)}}});var Ftt=w((a3r,Utt)=>{"use strict";var own=i4(),awn={mode:"standalone"},cwn=own.restoreFromState(awn),uwn=null;Utt.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})(uwn,cwn)});var CM=w((c3r,Btt)=>{"use strict";var jtt=Y("node:http").STATUS_CODES,lwn=gce(),{setErrorStatusCode:dwn}=OW(),{kReplyHeaders:dT,kReplyNextErrorHandler:s4,kReplyIsRunningOnErrorHook:fwn,kRouteContext:qtt,kDisableRequestLogging:o4}=$s(),{FST_ERR_REP_INVALID_PAYLOAD_TYPE:pwn,FST_ERR_FAILED_ERROR_SERIALIZATION:hwn}=Ko(),{getSchemaSerializer:mwn}=NM(),yue=Ftt(),gwn={func:Swn,toJSON(){return this.func.name.toString()+"()"}};function ywn(e,t,n){e[fwn]=!1;let r=e[qtt];if(e[s4]===!1){Htt(t,e,function(o,a){try{o.raw.writeHead(o.raw.statusCode,o[dT])}catch(c){o.log[o4]||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[s4]||r.errorHandler;e[s4]=Object.getPrototypeOf(i),delete e[dT]["content-type"],delete e[dT]["content-length"];let s=i.func;if(!s){e[s4]=!1,Htt(t,e,n);return}try{let o=s(t,e.request,e);o!==void 0&&(o!==null&&typeof o.then=="function"?lwn(o,e):e.send(o))}catch(o){e.send(o)}}function Swn(e,t,n){Ewn(e,n),dwn(n,e),n.statusCode<500?n.log[o4]||n.log.info({res:n,err:e},e?.message):n.log[o4]||n.log.error({req:t,res:n,err:e},e?.message),n.send(e)}function Htt(e,t,n){let r=t.raw,i=t.statusCode;t[dT]["content-type"]=t[dT]["content-type"]??"application/json; charset=utf-8";let s;try{let o=mwn(t[qtt],i,t[dT]["content-type"]);o===!1?s=yue({error:jtt[i+""],code:e.code,message:e.message,statusCode:i}):s=o(Object.create(e,{error:{value:jtt[i+""]},message:{value:e.message},statusCode:{value:i}}))}catch(o){t.log[o4]||t.log.error({err:o,statusCode:r.statusCode},"The serializer for the given status code failed"),t.code(500),s=yue(new hwn(o.message,e.message))}typeof s!="string"&&!Buffer.isBuffer(s)&&(s=yue(new pwn(typeof s))),t[dT]["content-length"]=""+Buffer.byteLength(s),n(t,s)}function bwn(e=gwn,t){if(!t)return e;let n=Object.create(e);return n.func=t,n}function Ewn(e,t){let n=t.raw,r=n.statusCode;r=r>=400?r:500,e!=null&&(e.headers!==void 0&&t.headers(e.headers),e.status>=400?r=e.status:e.statusCode>=400&&(r=e.statusCode)),n.statusCode=r}Btt.exports={buildErrorHandler:bwn,handleError:ywn}});var LM=w((u3r,Wtt)=>{"use strict";var{kReply:Sue,kRequest:bue,kState:_wn,kHasBeenDecorated:Twn}=$s(),{FST_ERR_DEC_ALREADY_PRESENT:ztt,FST_ERR_DEC_MISSING_DEPENDENCY:vwn,FST_ERR_DEC_AFTER_START:Rwn,FST_ERR_DEC_REFERENCE_TYPE:Awn,FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:wwn,FST_ERR_DEC_UNDECLARED:kwn}=Ko();function Iwn(e,t,n,r){if(Object.hasOwn(e,t))throw new ztt(t);Eue(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 xwn(e){if(!MM(this,e))throw new kwn(e,"instance");return typeof this[e]=="function"?this[e].bind(this):this[e]}function Gtt(e,t,n,r){let i=e.prototype;if(Object.hasOwn(i,t)||DM(e,t))throw new ztt(t);e[Twn]=!0,Eue(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 Vtt(e,t){if(typeof t=="object"&&t&&!(typeof t.getter=="function"||typeof t.setter=="function"))throw new Awn(e,typeof t)}function Own(e,t,n){return _ue(this,e),Iwn(this,e,t,n),this}function MM(e,t){return t?t in e||e.prototype&&t in e.prototype||DM(e,t):e in this}function DM(e,t){return e.props?e.props.find(({key:n})=>n===t):!1}function Pwn(e){return e&&DM(this[bue],e)?!0:MM(this[bue].prototype,e)}function Nwn(e){return e&&DM(this[Sue],e)?!0:MM(this[Sue].prototype,e)}function Eue(e,t,n){if(n!=null){if(!Array.isArray(n))throw new wwn(t);for(let r=0;r!==n.length;++r)if(!MM(e,n[r]))throw new vwn(n[r])}}function Cwn(e,t,n){return _ue(this,e),Vtt(e,t),Gtt(this[Sue],e,t,n),this}function Mwn(e,t,n){return _ue(this,e),Vtt(e,t),Gtt(this[bue],e,t,n),this}function _ue(e,t){if(e[_wn].started)throw new Rwn(t)}Wtt.exports={add:Own,exist:MM,existRequest:Pwn,existReply:Nwn,dependencies:Eue,decorateReply:Cwn,decorateRequest:Mwn,getInstanceDecorator:xwn,hasKey:DM}});var m4=w((l3r,h4)=>{"use strict";var a4=Y("node:stream").finished,{kFourOhFourContext:Ktt,kReplyErrorHandlerCalled:ent,kReplyHijacked:wue,kReplyStartTime:FM,kReplyEndTime:kue,kReplySerializer:ng,kReplySerializerDefault:c4,kReplyIsError:u4,kReplyHeaders:jr,kReplyTrailers:Yo,kReplyHasStatusCode:Iue,kReplyIsRunningOnErrorHook:xue,kReplyNextErrorHandler:Dwn,kDisableRequestLogging:tnt,kSchemaResponse:l4,kReplyCacheSerializeFns:QS,kSchemaController:Tue,kOptions:Lwn,kRouteContext:Dn,kTimeoutTimer:d4,kOnAbort:Gk,kRequestSignal:nnt}=$s(),{onSendHookRunner:rnt,onResponseHookRunner:Uwn,preHandlerHookRunner:Fwn,preSerializationHookRunner:jwn}=ZS(),Ytt=vce()[Symbol.for("internals")],Hwn=PM(),Aue=Hwn.now,{handleError:Ztt}=CM(),{getSchemaSerializer:qwn}=NM(),vue={JSON:"application/json; charset=utf-8",PLAIN:"text/plain; charset=utf-8",OCTET:"application/octet-stream"},{FST_ERR_REP_INVALID_PAYLOAD_TYPE:Bwn,FST_ERR_REP_RESPONSE_BODY_CONSUMED:zwn,FST_ERR_REP_READABLE_STREAM_LOCKED:Gwn,FST_ERR_REP_ALREADY_SENT:Vwn,FST_ERR_SEND_INSIDE_ONERR:Wwn,FST_ERR_BAD_STATUS_CODE:Kwn,FST_ERR_BAD_TRAILER_NAME:Ywn,FST_ERR_BAD_TRAILER_VALUE:Zwn,FST_ERR_MISSING_SERIALIZATION_FN:Jwn,FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:Xwn,FST_ERR_DEC_UNDECLARED:Qwn}=Ko(),Jtt=LM(),int=Object.prototype.toString;function Hr(e,t,n){this.raw=e,this[ng]=null,this[ent]=!1,this[u4]=!1,this[xue]=!1,this.request=t,this[jr]={},this[Yo]=null,this[Iue]=!1,this[FM]=void 0,this.log=n}Hr.props=[];Object.defineProperties(Hr.prototype,{[Dn]:{get(){return this.request[Dn]}},elapsedTime:{get(){return this[FM]===void 0?0:(this[kue]||Aue())-this[FM]}},server:{get(){return this.request[Dn].server}},sent:{enumerable:!0,get(){return(this[wue]||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[wue]=!0,this.request[nnt]&&(clearTimeout(this.request[d4]),this.request[d4]=null,this.request[Gk]&&(this.request.raw.removeListener("close",this.request[Gk]),this.request[Gk]=null)),this};Hr.prototype.send=function(e){if(this[xue])throw new Wwn;if(this.sent===!0)return this.log.warn({err:new Vwn(this.request.url,this.request.method)}),this;if(this[u4]||e instanceof Error)return this[u4]=!1,Vk(this,e,fT),this;if(e===void 0)return fT(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"||int.call(e)==="[object Response]")return fT(this,e),this;if(e.buffer instanceof ArrayBuffer){n||(this[jr]["content-type"]=vue.OCTET);let r=Buffer.isBuffer(e)?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength);return fT(this,r),this}if(!n&&typeof e=="string")return this[jr]["content-type"]=vue.PLAIN,fT(this,e),this}if(this[ng]!==null){if(typeof e!="string")return Xtt(this,e),this;e=this[ng](e)}else if(!n||t.indexOf("json")!==-1){if(!n)this[jr]["content-type"]=vue.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 Xtt(this,e),this}return fT(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 $wn=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(),$wn.has(e))throw new Ywn(e);if(typeof t!="function")throw new Zwn(e,typeof t);return this[Yo]===null&&(this[Yo]={}),this[Yo][e]=t,this};Hr.prototype.hasTrailer=function(e){return this[Yo]?.[e.toLowerCase()]!==void 0};Hr.prototype.removeTrailer=function(e){return this[Yo]===null?this:(this[Yo][e.toLowerCase()]=void 0,this)};Hr.prototype.code=function(e){let t=+e;if(!(t>=100&&t<=599))throw new Kwn(e||String(e));return this.raw.statusCode=t,this[Iue]=!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[Dn][l4]?.[e]?.[t]:n=this[Dn][l4]?.[e]:typeof e=="object"&&(n=this[Dn][QS]?.get(e)),n};Hr.prototype.compileSerializationSchema=function(e,t=null,n=null){let{request:r}=this,{method:i,url:s}=r;if(this[Dn][QS]?.has(e))return this[Dn][QS].get(e);let a=(this[Dn].serializerCompiler||this.server[Tue].serializerCompiler||this.server[Tue].setupSerializer(this.server[Lwn])||this.server[Tue].serializerCompiler)({schema:e,method:i,url:s,httpStatus:t,contentType:n});return this[Dn][QS]==null&&(this[Dn][QS]=new WeakMap),this[Dn][QS].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[Dn][l4]?.[n]?.[r]:s=this[Dn][l4]?.[n],s==null)throw r?new Xwn(n,r):new Jwn(n)}else this[Dn][QS]?.has(t)?s=this[Dn][QS].get(t):s=this.compileSerializationSchema(t,n,r);return s(e)};Hr.prototype.serialize=function(e){return this[ng]!==null?this[ng](e):this[Dn]&&this[Dn][c4]?this[Dn][c4](e,this.raw.statusCode):ont(this[Dn],e,this.raw.statusCode)};Hr.prototype.serializer=function(e){return this[ng]=e,this};Hr.prototype.type=function(e){return this[jr]["content-type"]=e,this};Hr.prototype.redirect=function(e,t){return t||(t=this[Iue]?this.raw.statusCode:302),this.header("location",e).code(t).send()};Hr.prototype.callNotFound=function(){return akn(this),this};Hr.prototype.then=function(e,t){if(this.sent){e();return}a4(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(!Jtt.hasKey(this,e)&&!Jtt.exist(this,e))throw new Qwn(e,"reply");let t=this[e];return typeof t=="function"?t.bind(this):t};function Xtt(e,t){e[Dn].preSerialization!==null?jwn(e[Dn].preSerialization,e.request,e,t,Qtt):Qtt(null,void 0,e,t)}function Qtt(e,t,n,r){if(e!=null){Vk(n,e);return}try{n[ng]!==null?r=n[ng](r):n[Dn]&&n[Dn][c4]?r=n[Dn][c4](r,n.raw.statusCode):r=ont(n[Dn],r,n.raw.statusCode,n[jr]["content-type"])}catch(i){ekn(i,n),Vk(n,i);return}fT(n,r)}function ekn(e,t){e.serialization=t[Dn].config}function fT(e,t){e[Dn].onSend!==null?rnt(e[Dn].onSend,e.request,e,t,tkn):snt(e,t)}function tkn(e,t,n,r){e!=null?Vk(n,e):snt(n,r)}function Rue(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 snt(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(int.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 zwn;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"),Rue(e,i),UM(t,n,e);return}if(i>=100&&i<200||i===204){e.removeHeader("content-type"),e.removeHeader("content-length"),Rue(e,i),UM(void 0,n,e),typeof t.resume=="function"&&(t.on("error",p4),t.resume());return}if(typeof t.pipe=="function"){rkn(t,n,e);return}if(typeof t.getReader=="function"){nkn(t,n,e);return}if(typeof t!="string"&&!Buffer.isBuffer(t))throw new Bwn(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))}Rue(e,i),n.write(t),UM(t,n,e)}function f4(e,t,n){t.code==="ERR_STREAM_PREMATURE_CLOSE"?e[tnt]||e.info({res:n},"stream closed prematurely"):e.warn({err:t},"response terminated with an error with headers already sent")}function nkn(e,t,n){if(e.locked)throw new Gwn;let r=!0,i=!1,s=!1,o=e.getReader();if(a4(t,function(l){r&&(l!=null&&t.headersSent&&!i&&(i=!0,f4(n.log,l,t)),o.cancel().catch(p4))}),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,UM(null,t,n);return}if(t.destroyed){r=!1,o.cancel().catch(p4);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,f4(n.log,l,n)),t.destroy()):Vk(n,l)}o.read().then(a,u)}function rkn(e,t,n){let r=!0,i=!1;if(ikn(e,t,n),a4(e,{readable:!0,writable:!1},function(s){r=!1,s!=null&&(t.headersSent||n.request.raw.aborted===!0?(i||(i=!0,f4(n.log,s,n)),t.destroy()):Vk(n,s))}),a4(t,function(s){r&&(s!=null&&t.headersSent&&!i&&(i=!0,f4(n.log,s,t)),typeof e.destroy=="function"?e.destroy():typeof e.close=="function"?e.close(p4):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 UM(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 ikn(e,t,n){n[Yo]!==null&&e.on("end",()=>UM(null,t,n))}function Vk(e,t,n){e[Dn].onError!==null&&!e[Dwn]?(e[xue]=!0,rnt(e[Dn].onError,e.request,e,t,()=>Ztt(e,t,n))):Ztt(e,t,n)}function skn(e){e[FM]=Aue();let t=n=>{e[kue]=Aue(),e.raw.removeListener("finish",t),e.raw.removeListener("error",t);let r=e[Dn];e.request[nnt]&&(clearTimeout(e.request[d4]),e.request[d4]=null,e.request[Gk]&&(e.request.raw.removeListener("close",e.request[Gk]),e.request[Gk]=null)),r&&r.onResponse!==null?Uwn(r.onResponse,e.request,e,$tt):$tt(n,e.request,e)};e.raw.on("finish",t),e.raw.on("error",t)}function $tt(e,t,n){if(n.log[tnt])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 okn(e){let t=e.props.slice();function n(r,i,s){this.raw=r,this[u4]=!1,this[ent]=!1,this[wue]=!1,this[ng]=null,this.request=i,this[jr]={},this[Yo]=null,this[FM]=void 0,this[kue]=void 0,this.log=s;let o;for(let a=0;a{"use strict";function Oue(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 ckn(t,n)}function ckn(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}g4.exports=Oue;g4.exports.default=Oue;g4.exports.forwarded=Oue});var unt=w((cnt,y4)=>{(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";Wk.exports=Pue;Wk.exports.default=Pue;Wk.exports.proxyaddr=Pue;Wk.exports.all=fnt;Wk.exports.compile=pnt;var ukn=ant(),dnt=unt(),lkn=/^\d+$/u,S4=dnt.isValid,b4=dnt.parse,lnt={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 fnt(e,t){let n=ukn(e);if(!t)return n;typeof t!="function"&&(t=pnt(t));for(let r=0;ri)throw new TypeError("invalid range on address: "+e);return[r,s]}function hkn(e){let t=b4(e);return t.kind()==="ipv4"?t.prefixLengthFromSubnetMask():null}function Pue(e,t){if(!e)throw new TypeError("req argument is required");if(!t)throw new TypeError("trust argument is required");let n=fnt(e,t);return n[n.length-1]}function mkn(){return!1}function gkn(e){return function(n){if(!S4(n))return!1;let r=b4(n),i,s=r.kind();for(let o=0;o{"use strict";var E4=hnt(),{kHasBeenDecorated:Skn,kSchemaBody:bkn,kSchemaHeaders:Ekn,kSchemaParams:_kn,kSchemaQuerystring:mnt,kSchemaController:Nue,kOptions:Tkn,kRequestCacheValidateFns:$S,kRouteContext:ac,kRequestOriginalUrl:Cue,kRequestSignal:gnt,kOnAbort:vkn}=$s(),{FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:Rkn,FST_ERR_DEC_UNDECLARED:Akn}=Ko(),ynt=LM(),Snt={body:bkn,headers:Ekn,params:_kn,querystring:mnt,query:mnt};function Mue(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}Mue.props=[];function wkn(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 E4.compile(t)}return E4.compile(e)}function kkn(e,t){return t?Ikn(e,t):_nt(e)}function _nt(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[vkn]=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=Snt[e];return this[ac][t]}else if(typeof e=="object")return this[ac][$S]?.get(e)}},compileValidationSchema:{value:function(e,t=null){let{method:n,url:r}=this;if(this[ac][$S]?.has(e))return this[ac][$S].get(e);let s=(this[ac].validatorCompiler||this.server[Nue].validatorCompiler||this.server[Nue].setupValidator(this.server[Tkn])||this.server[Nue].validatorCompiler)({schema:e,method:n,url:r,httpPart:t});return this[ac][$S]==null&&(this[ac][$S]=new WeakMap),this[ac][$S].set(e,s),s}},validateInput:{value:function(e,t,n){n=typeof t=="string"?t:n;let r=n!=null&&typeof n=="string"&&Snt[n],i;if(r&&(i=this[ac][r]),i==null&&(t==null||typeof t!="object"||Array.isArray(t)))throw new Rkn(n);return i==null&&(this[ac][$S]?.has(t)?i=this[ac][$S].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}}});Due.exports=Mue;Due.exports.buildRequest=kkn});var T4=w((h3r,Tnt)=>{"use strict";var{kFourOhFourContext:xkn,kReplySerializerDefault:Okn,kSchemaErrorFormatter:Pkn,kErrorHandler:Nkn,kChildLoggerFactory:Ckn,kOptions:Mkn,kReply:Dkn,kRequest:Lkn,kBodyLimit:Ukn,kLogLevel:Fkn,kContentTypeParser:jkn,kRouteByFastify:Hkn,kRequestCacheValidateFns:qkn,kReplyCacheSerializeFns:Bkn,kHandlerTimeout:zkn}=$s();function Gkn({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[Dkn],this.Request=g[Lkn],this.contentTypeParser=g[jkn],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[Nkn],this.requestIdLogLabel=r||g[Mkn].requestIdLogLabel,this.childLoggerFactory=i||g[Ckn],this._middie=null,this._parserOptions={limit:o||g[Ukn]},this.exposeHeadRoute=h,this.prefixTrailingSlash=m,this.logLevel=a||g[Fkn],this.logSerializers=c,this[xkn]=null,this.attachValidation=u,this[Okn]=f,this.schemaErrorFormatter=p||g[Pkn]||Vkn,this[Hkn]=y,this[qkn]=null,this[Bkn]=null,this.validatorCompiler=l||null,this.serializerCompiler=d||null,this.handlerTimeout=b||g[zkn]||0,this.server=g}function Vkn(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))}Tnt.exports=Gkn});var Uue=w((m3r,Kk)=>{"use strict";var Wkn=typeof Buffer<"u",vnt=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,Rnt=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function Ant(e,t,n){n==null&&t!==null&&typeof t=="object"&&(n=t,t=void 0),Wkn&&Buffer.isBuffer(e)&&(e=e.toString()),e&&e.charCodeAt(0)===65279&&(e=e.slice(1));let r=JSON.parse(e,t);if(r===null||typeof r!="object")return r;let i=n&&n.protoAction||"error",s=n&&n.constructorAction||"error";if(i==="ignore"&&s==="ignore")return r;if(i!=="ignore"&&s!=="ignore"){if(vnt.test(e)===!1&&Rnt.test(e)===!1)return r}else if(i!=="ignore"&&s==="ignore"){if(vnt.test(e)===!1)return r}else if(Rnt.test(e)===!1)return r;return wnt(r,{protoAction:i,constructorAction:s,safe:n&&n.safe})}function wnt(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 Lue(e,t,n){let{stackTraceLimit:r}=Error;Error.stackTraceLimit=0;try{return Ant(e,t,n)}finally{Error.stackTraceLimit=r}}function Kkn(e,t){let{stackTraceLimit:n}=Error;Error.stackTraceLimit=0;try{return Ant(e,t,{safe:!0})}catch{return}finally{Error.stackTraceLimit=n}}Kk.exports=Lue;Kk.exports.default=Lue;Kk.exports.parse=Lue;Kk.exports.safeParse=Kkn;Kk.exports.scan=wnt});var Bue=w((g3r,qM)=>{"use strict";var{AsyncResource:Ykn}=Y("node:async_hooks"),{FifoMap:xnt}=NV(),{parse:Zkn}=Uue(),HM=mce(),{kDefaultJsonParse:jM,kContentTypeParser:Yk,kBodyLimit:Jkn,kRequestPayloadStream:Ont,kState:jue,kTestInternals:Xkn,kReplyIsError:knt,kRouteContext:Qkn}=$s(),{FST_ERR_CTP_INVALID_TYPE:v4,FST_ERR_CTP_EMPTY_TYPE:$kn,FST_ERR_CTP_ALREADY_PRESENT:eIn,FST_ERR_CTP_INVALID_HANDLER:tIn,FST_ERR_CTP_INVALID_PARSE_TYPE:nIn,FST_ERR_CTP_BODY_TOO_LARGE:Int,FST_ERR_CTP_INVALID_MEDIA_TYPE:rIn,FST_ERR_CTP_INVALID_CONTENT_LENGTH:iIn,FST_ERR_CTP_EMPTY_JSON_BODY:sIn,FST_ERR_CTP_INSTANCE_ALREADY_STARTED:Hue,FST_ERR_CTP_INVALID_JSON_BODY:oIn}=Ko(),{FSTSEC001:aIn}=Lk();function rg(e,t,n){this[jM]=Nnt(t,n),this.customParsers=new Map,this.customParsers.set("application/json",new Fue(!0,!1,e,this[jM])),this.customParsers.set("text/plain",new Fue(!0,!1,e,que)),this.parserList=["application/json","text/plain"],this.parserRegExpList=[],this.cache=new xnt(100)}rg.prototype.add=function(e,t,n){let r=typeof e=="string";if(r){if(e=e.trim().toLowerCase(),e.length===0)throw new $kn}else if(!(e instanceof RegExp))throw new v4;if(typeof n!="function")throw new tIn;if(this.existingParser(e))throw new eIn(e);if(t.parseAs!==void 0&&t.parseAs!=="string"&&t.parseAs!=="buffer")throw new nIn(t.parseAs);let i=new Fue(t.parseAs==="string",t.parseAs==="buffer",t.bodyLimit,n);if(e==="*")this.customParsers.set("",i);else if(r){let s=new HM(e);if(s.isValid===!1)throw new v4;let o=s.toString();this.parserList.unshift(o),this.customParsers.set(o,i)}else pIn(e),this.parserRegExpList.unshift(e),this.customParsers.set(e.toString(),i)};rg.prototype.hasParser=function(e){if(typeof e=="string")e=new HM(e).toString();else{if(!(e instanceof RegExp))throw new v4;e=e.toString()}return this.customParsers.has(e)};rg.prototype.existingParser=function(e){if(typeof e=="string"){let t=new HM(e).toString();if(e==="application/json"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==this[jM];if(e==="text/plain"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==que}return this.hasParser(e)};rg.prototype.getParser=function(e){typeof e=="string"&&(e=new HM(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("")};rg.prototype.removeAll=function(){this.customParsers=new Map,this.parserRegExpList=[],this.parserList=[],this.cache=new xnt(100)};rg.prototype.remove=function(e){let t;if(typeof e=="string")e=new HM(e).toString(),t=this.parserList;else{if(!(e instanceof RegExp))throw new v4;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};rg.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[knt]=!0,r.send(new rIn);return}let s=new Ykn("content-type-parser:run",n),o=s.bind(c);if(i.asString===!0||i.asBuffer===!0){Pnt(n,r,r[Qkn]._parserOptions,i,o);return}let a=i.fn(n,n[Ont],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[knt]=!0,r.send(u);return}n.body=l,t(n,r)}};function Pnt(e,t,n,r,i){let s=r.asString===!0,o=n.limit===null?r.bodyLimit:n.limit,a=Number(e.headers["content-length"]);if(a>o){i(new Int,void 0);return}let c=0,u=s?"":[],l=e[Ont]||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 Int,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 iIn,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 Nnt(e,t){let n={protoAction:e,constructorAction:t};return r;function r(i,s,o){if(s.length===0){o(new sIn,void 0);return}try{o(null,Zkn(s,n))}catch{o(new oIn,void 0)}}}function que(e,t,n){n(null,t)}function Fue(e,t,n,r){this.asString=e,this.asBuffer=t,this.bodyLimit=n,this.fn=r}function cIn(e){let t=new rg;return t[jM]=e[jM],t.customParsers=new Map(e.customParsers.entries()),t.parserList=e.parserList.slice(),t.parserRegExpList=e.parserRegExpList.slice(),t}function uIn(e,t,n){if(this[jue].started)throw new Hue("addContentTypeParser");return typeof t=="function"&&(n=t,t={}),t||(t={}),t.bodyLimit||(t.bodyLimit=this[Jkn]),Array.isArray(e)?e.forEach(r=>this[Yk].add(r,t,n)):this[Yk].add(e,t,n),this}function lIn(e){return this[Yk].hasParser(e)}function dIn(e){if(this[jue].started)throw new Hue("removeContentTypeParser");if(Array.isArray(e))for(let t of e)this[Yk].remove(t);else this[Yk].remove(e)}function fIn(){if(this[jue].started)throw new Hue("removeAllContentTypeParsers");this[Yk].removeAll()}function pIn(e){e.source[0]!=="^"&&e.source.includes(";?")===!1&&aIn(e.source)}qM.exports=rg;qM.exports.helpers={buildContentTypeParser:cIn,addContentTypeParser:uIn,hasContentTypeParser:lIn,removeContentTypeParser:dIn,removeAllContentTypeParsers:fIn};qM.exports.defaultParsers={getDefaultJsonParser:Nnt,defaultTextParser:que};qM.exports[Xkn]={rawBody:Pnt}});var ig=w(BM=>{"use strict";Object.defineProperty(BM,"__esModule",{value:!0});BM.checkMetadata=void 0;var hIn=pn(),mIn={keyword:"metadata",schemaType:"object",code(e){Cnt(e);let{gen:t,schema:n,it:r}=e;if((0,hIn.alwaysValidSchema)(r,n))return;let i=t.name("valid");e.subschema({keyword:"metadata",jtdMetadata:!0},i),e.ok(i)}};function Cnt({it:e,keyword:t},n){if(e.jtdMetadata!==n)throw new Error(`JTD: "${t}" cannot be used in this schema location`)}BM.checkMetadata=Cnt;BM.default=mIn});var R4=w(GM=>{"use strict";Object.defineProperty(GM,"__esModule",{value:!0});GM.hasRef=void 0;var Mnt=q_(),zM=Ot(),gIn=Zm(),Dnt=bd(),Lnt=Yse(),yIn=ig(),SIn={keyword:"ref",schemaType:"string",code(e){(0,yIn.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,zM._)`${n} === null`),t.if((0,zM.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 gIn.default(s.opts.uriResolver,"",r,`No definition ${r}`);zue(f)||!s.opts.inlineRefs?u(f):l(f)}function u(d){let f=Mnt.compileSchema.call(s.self,new Mnt.SchemaEnv({schema:d,root:o,schemaPath:`/definitions/${r}`})),p=(0,Lnt.getValidate)(e,f),h=t.const("_errs",Dnt.default.errors);(0,Lnt.callRef)(e,p,f,f.$async),t.assign(a,(0,zM._)`${h} === ${Dnt.default.errors}`)}function l(d){let f=t.scopeValue("schema",s.opts.code.source===!0?{ref:d,code:(0,zM.stringify)(d)}:{ref:d});e.subschema({schema:d,dataTypes:[],schemaPath:zM.nil,topSchemaRef:f,errSchemaPath:`/definitions/${r}`},a)}}};function zue(e){for(let t in e){let n;if(t==="ref"||typeof(n=e[t])=="object"&&zue(n))return!0}return!1}GM.hasRef=zue;GM.default=SIn});var Vue=w(Gue=>{"use strict";Object.defineProperty(Gue,"__esModule",{value:!0});var bIn=/t|\s/i,EIn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,_In=/^(\d\d):(\d\d):(\d\d)(?:\.\d+)?(?:z|([+-]\d\d)(?::?(\d\d))?)$/i,TIn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Fnt(e,t){let n=e.split(bIn);return n.length===2&&Unt(n[0])&&vIn(n[1])||t&&n.length===1&&Unt(n[0])}Gue.default=Fnt;function Unt(e){let t=EIn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&(i<=TIn[r]||r===2&&i===29&&(n%100===0?n%400===0:n%4===0))}function vIn(e){let t=_In.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}Fnt.code='require("ajv/dist/runtime/timestamp").default'});var Zk=w(eb=>{"use strict";Object.defineProperty(eb,"__esModule",{value:!0});eb.typeErrorParams=eb.typeErrorMessage=eb.typeError=void 0;var RIn=Ot();function AIn(e){return{message:t=>jnt(t,e),params:t=>Hnt(t,e)}}eb.typeError=AIn;function jnt({parentSchema:e},t){return e?.nullable?`must be ${t} or null`:`must be ${t}`}eb.typeErrorMessage=jnt;function Hnt({parentSchema:e},t){return(0,RIn._)`{type: ${t}, nullable: ${!!e?.nullable}}`}eb.typeErrorParams=Hnt});var Wue=w(Jk=>{"use strict";Object.defineProperty(Jk,"__esModule",{value:!0});Jk.intRange=void 0;var El=Ot(),wIn=Vue(),kIn=pn(),IIn=ig(),qnt=Zk();Jk.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 xIn={message:e=>(0,qnt.typeErrorMessage)(e,e.schema),params:e=>(0,qnt.typeErrorParams)(e,e.schema)};function OIn(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,kIn.useFunc)(t,wIn.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 PIn={keyword:"type",schemaType:"string",error:xIn,code(e){(0,IIn.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=OIn(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]=Jk.intRange[o];s=(0,El._)`${s} && ${t} >= ${a} && ${t} <= ${c}`}}}e.pass(r.nullable?(0,El.or)((0,El._)`${t} === null`,s):s)}};Jk.default=PIn});var Qk=w(Xk=>{"use strict";Object.defineProperty(Xk,"__esModule",{value:!0});Xk.checkNullableObject=Xk.checkNullable=void 0;var A4=Ot();function Bnt({gen:e,data:t,parentSchema:n},r=A4.nil){let i=e.name("valid");return n.nullable?(e.let(i,(0,A4._)`${t} === null`),r=(0,A4.not)(i)):e.let(i,!1),[i,r]}Xk.checkNullable=Bnt;function NIn(e,t){let[n,r]=Bnt(e,t);return[n,(0,A4._)`${r} && typeof ${e.data} == "object" && !Array.isArray(${e.data})`]}Xk.checkNullableObject=NIn});var znt=w(Kue=>{"use strict";Object.defineProperty(Kue,"__esModule",{value:!0});var tb=Ot(),CIn=ig(),MIn=Qk(),DIn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,tb._)`{allowedValues: ${e}}`},LIn={keyword:"enum",schemaType:"array",error:DIn,code(e){(0,CIn.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,tb._)`typeof ${n} == "string"`;if(r.length>=o.opts.loopEnum){let l;[a,l]=(0,MIn.checkNullable)(e,c),t.if(l,u)}else{if(!Array.isArray(r))throw new Error("ajv implementation error");a=(0,tb.and)(c,(0,tb.or)(...r.map(l=>(0,tb._)`${n} === ${l}`))),s.nullable&&(a=(0,tb.or)((0,tb._)`${n} === null`,a))}e.pass(a);function u(){t.forOf("v",i,l=>t.if((0,tb._)`${a} = ${n} === ${l}`,()=>t.break()))}}};Kue.default=LIn});var Vnt=w(Yue=>{"use strict";Object.defineProperty(Yue,"__esModule",{value:!0});var UIn=pn(),FIn=Sa(),Gnt=Ot(),jIn=ig(),HIn=Qk(),qIn=Zk(),BIn={keyword:"elements",schemaType:"object",error:(0,qIn.typeError)("array"),code(e){(0,jIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e;if((0,UIn.alwaysValidSchema)(i,r))return;let[s]=(0,HIn.checkNullable)(e);t.if((0,Gnt.not)(s),()=>t.if((0,Gnt._)`Array.isArray(${n})`,()=>t.assign(s,(0,FIn.validateArray)(e)),()=>e.error())),e.ok(s)}};Yue.default=BIn});var Jue=w(nb=>{"use strict";Object.defineProperty(nb,"__esModule",{value:!0});nb.validateProperties=nb.error=void 0;var Zue=Sa(),Wnt=pn(),sg=Ot(),zIn=ig(),GIn=Qk(),Knt=Zk(),$k;(function(e){e.Additional="additional",e.Missing="missing"})($k||($k={}));nb.error={message:e=>{let{params:t}=e;return t.propError?t.propError===$k.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===$k.Additional?(0,sg._)`{error: ${t.propError}, additionalProperty: ${t.additionalProperty}}`:(0,sg._)`{error: ${t.propError}, missingProperty: ${t.missingProperty}}`:(0,Knt.typeErrorParams)(e,"object")}};var VIn={keyword:"properties",schemaType:"object",error:nb.error,code:Ynt};function Ynt(e){(0,zIn.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,GIn.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,Zue.allSchemaProperties)(E):[];if(i.jtdDiscriminator&&_.some(R=>R===i.jtdDiscriminator))throw new Error(`JTD: discriminator tag used in ${S}`);let T=_.filter(R=>!(0,Wnt.alwaysValidSchema)(i,E[R]));return[_,T]}function m(S,E,_){let T=t.var("valid");for(let A of S)t.if((0,Zue.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:$k.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,sg.and)(E,_);t.if(T,()=>{i.opts.removeAdditional?t.code((0,sg._)`delete ${n}[${S}]`):(e.error(!1,{propError:$k.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,Wnt.schemaRefOrVal)(i,r[_],_);R=(0,sg.not)((0,Zue.isOwnProperty)(t,A,S)),T!==void 0&&(R=(0,sg.and)(R,(0,sg._)`${S} !== ${T}`))}else if(E.length||T!==void 0){let A=T===void 0?E:[T].concat(E);R=(0,sg.and)(...A.map(x=>(0,sg._)`${S} !== ${x}`))}else R=!0;return R}}nb.validateProperties=Ynt;nb.default=VIn});var Jnt=w(Xue=>{"use strict";Object.defineProperty(Xue,"__esModule",{value:!0});var Znt=Jue(),WIn={keyword:"optionalProperties",schemaType:"object",error:Znt.error,code(e){e.parentSchema.properties||(0,Znt.validateProperties)(e)}};Xue.default=WIn});var Qnt=w(Que=>{"use strict";Object.defineProperty(Que,"__esModule",{value:!0});var pT=Ot(),KIn=ig(),YIn=Qk(),Xnt=Zk(),w4=Moe(),ZIn={message:e=>{let{schema:t,params:n}=e;return n.discrError?n.discrError===w4.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in mapping`:(0,Xnt.typeErrorMessage)(e,"object")},params:e=>{let{schema:t,params:n}=e;return n.discrError?(0,pT._)`{error: ${n.discrError}, tag: ${t}, tagValue: ${n.tag}}`:(0,Xnt.typeErrorParams)(e,"object")}},JIn={keyword:"discriminator",schemaType:"string",implements:["mapping"],error:ZIn,code(e){(0,KIn.checkMetadata)(e);let{gen:t,data:n,schema:r,parentSchema:i}=e,[s,o]=(0,YIn.checkNullableObject)(e,n);t.if(o),a(),t.elseIf((0,pT.not)(s)),e.error(),t.endIf(),e.ok(s);function a(){let l=t.const("tag",(0,pT._)`${n}${(0,pT.getProperty)(r)}`);t.if((0,pT._)`${l} === undefined`),e.error(!1,{discrError:w4.DiscrError.Tag,tag:l}),t.elseIf((0,pT._)`typeof ${l} == "string"`),c(l),t.else(),e.error(!1,{discrError:w4.DiscrError.Tag,tag:l},{instancePath:r}),t.endIf()}function c(l){t.if(!1);for(let d in i.mapping)t.elseIf((0,pT._)`${l} === ${d}`),t.assign(s,u(d));t.else(),e.error(!1,{discrError:w4.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}}};Que.default=JIn});var ert=w($ue=>{"use strict";Object.defineProperty($ue,"__esModule",{value:!0});var $nt=pn(),k4=Ot(),XIn=ig(),QIn=Qk(),$In=Zk(),e0n={keyword:"values",schemaType:"object",error:(0,$In.typeError)("object"),code(e){(0,XIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e,[s,o]=(0,QIn.checkNullableObject)(e,n);(0,$nt.alwaysValidSchema)(i,r)?t.if((0,k4.not)((0,k4.or)(o,s)),()=>e.error()):(t.if(o),t.assign(s,a()),t.elseIf((0,k4.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:$nt.Type.Str},c),t.if((0,k4.not)(c),l)})}}}};$ue.default=e0n});var trt=w(ele=>{"use strict";Object.defineProperty(ele,"__esModule",{value:!0});var t0n=Sa(),n0n={keyword:"union",schemaType:"array",trackErrors:!0,code:t0n.validateUnion,error:{message:"must match a schema in union"}};ele.default=n0n});var nrt=w(tle=>{"use strict";Object.defineProperty(tle,"__esModule",{value:!0});var r0n=R4(),i0n=Wue(),s0n=znt(),o0n=Vnt(),a0n=Jue(),c0n=Jnt(),u0n=Qnt(),l0n=ert(),d0n=trt(),f0n=ig(),p0n=["definitions",r0n.default,i0n.default,s0n.default,o0n.default,a0n.default,c0n.default,u0n.default,l0n.default,d0n.default,f0n.default,{keyword:"additionalProperties",schemaType:"boolean"},{keyword:"nullable",schemaType:"boolean"}];tle.default=p0n});var ort=w(nle=>{"use strict";Object.defineProperty(nle,"__esModule",{value:!0});var og=e=>{let t={nullable:{type:"boolean"},metadata:{optionalProperties:{union:{elements:{ref:"schema"}}},additionalProperties:!0}};return e&&(t.definitions={values:{ref:"schema"}}),t},h0n=e=>({optionalProperties:og(e)}),m0n=e=>({properties:{ref:{type:"string"}},optionalProperties:og(e)}),g0n=e=>({properties:{type:{enum:["boolean","timestamp","string","float32","float64","int8","uint8","int16","uint16","int32","uint32"]}},optionalProperties:og(e)}),y0n=e=>({properties:{enum:{elements:{type:"string"}}},optionalProperties:og(e)}),S0n=e=>({properties:{elements:{ref:"schema"}},optionalProperties:og(e)}),irt=e=>({properties:{properties:{values:{ref:"schema"}}},optionalProperties:{optionalProperties:{values:{ref:"schema"}},additionalProperties:{type:"boolean"},...og(e)}}),srt=e=>({properties:{optionalProperties:{values:{ref:"schema"}}},optionalProperties:{additionalProperties:{type:"boolean"},...og(e)}}),b0n=e=>({properties:{discriminator:{type:"string"},mapping:{values:{metadata:{union:[irt(!1),srt(!1)]}}}},optionalProperties:og(e)}),E0n=e=>({properties:{values:{ref:"schema"}},optionalProperties:og(e)}),rrt=e=>({metadata:{union:[h0n,m0n,g0n,y0n,S0n,irt,srt,b0n,E0n].map(t=>t(e))}}),_0n={definitions:{schema:rrt(!1)},...rrt(!0)};nle.default=_0n});var rle=w(I4=>{"use strict";Object.defineProperty(I4,"__esModule",{value:!0});I4.jtdForms=void 0;I4.jtdForms=["elements","values","discriminator","properties","optionalProperties","enum","type","ref"]});var crt=w(sle=>{"use strict";Object.defineProperty(sle,"__esModule",{value:!0});var ile=/[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,T0n={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function art(e){return ile.lastIndex=0,'"'+(ile.test(e)?e.replace(ile,t=>{let n=T0n[t];return typeof n=="string"?n:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)}):e)+'"'}sle.default=art;art.code='require("ajv/dist/runtime/quote").default'});var hrt=w(ale=>{"use strict";Object.defineProperty(ale,"__esModule",{value:!0});var v0n=rle(),lrt=q_(),En=Ot(),R0n=Zm(),qr=bd(),A0n=Sa(),w0n=R4(),k0n=pn(),I0n=crt(),x0n={elements:P0n,values:N0n,discriminator:C0n,properties:urt,optionalProperties:urt,enum:VM,type:M0n,ref:L0n};function drt(e,t){let n=lrt.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)``),WM(c),o.return(qr.default.json)}),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(qr.default.scope)}return ${l}`;let f=new Function(`${qr.default.scope}`,u)(this.scope.get());this.scope.value(a,{ref:f}),e.serialize=f}catch(l){throw u&&this.logger.error("Error compiling serializer, function code:",u),delete e.serialize,delete e.serializeName,l}finally{this._compilations.delete(e)}return e}ale.default=drt;function WM(e){let t;for(let n of v0n.jtdForms)if(n in e.schema){t=n;break}O0n(e,t?x0n[t]:F0n)}function O0n(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 P0n(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=>{ole(e,i),WM({...e,schema:n.elements,data:s})}),t.add(qr.default.json,(0,En.str)`]`)}function N0n(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=>frt(e,s,n.values,i)),t.add(qr.default.json,(0,En.str)`}`)}function frt(e,t,n,r){let{gen:i,data:s}=e;ole(e,r),VM({...e,data:t}),i.add(qr.default.json,(0,En.str)`:`);let o=i.const("value",(0,En._)`${s}${(0,En.getProperty)(t)}`);WM({...e,schema:n,data:o})}function C0n(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)}`);VM({...e,data:s}),t.if(!1);for(let o in n.mapping){t.elseIf((0,En._)`${s} === ${o}`);let a=n.mapping[o];prt({...e,schema:a},i)}t.endIf(),t.add(qr.default.json,(0,En.str)`}`)}function urt(e){let{gen:t}=e;t.add(qr.default.json,(0,En.str)`{`),prt(e),t.add(qr.default.json,(0,En.str)`}`)}function prt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o}=r,a=f(s),c=f(o),u=p(a.concat(c)),l=!t,d;for(let y of a)l?l=!1:n.add(qr.default.json,(0,En.str)`,`),m(y,s[y],h(y));l&&(d=n.let("first",!0));for(let y of c){let b=h(y);n.if((0,En.and)((0,En._)`${b} !== undefined`,(0,A0n.isOwnProperty)(n,i,y)),()=>{ole(e,d),m(y,o[y],b)})}r.additionalProperties&&n.forIn("key",i,y=>n.if(g(y,u),()=>frt(e,y,{},d)));function f(y){return y?Object.keys(y):[]}function p(y){if(t&&y.push(t),new Set(y).size!==y.length)throw new Error("JTD: properties/optionalProperties/disciminator overlap");return y}function h(y){return n.const("value",(0,En._)`${i}${(0,En.getProperty)(y)}`)}function m(y,b,S){n.add(qr.default.json,(0,En.str)`${JSON.stringify(y)}:`),WM({...e,schema:b,data:S})}function g(y,b){return b.length?(0,En.and)(...b.map(S=>(0,En._)`${y} !== ${S}`)):!0}}function M0n(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":VM(e);break;case"timestamp":t.if((0,En._)`${r} instanceof Date`,()=>t.add(qr.default.json,(0,En._)`'"' + ${r}.toISOString() + '"'`),()=>VM(e));break;default:D0n(e)}}function VM({gen:e,data:t}){e.add(qr.default.json,(0,En._)`${(0,k0n.useFunc)(e,I0n.default)}(${t})`)}function D0n({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 R0n.default(n.opts.uriResolver,"",a,`No definition ${a}`);if(!(0,w0n.hasRef)(c))return WM({...e,schema:c});let{root:u}=o,l=drt.call(n,new lrt.SchemaEnv({schema:c,root:u}),i);t.add(qr.default.json,(0,En._)`${U0n(t,l)}(${r})`)}function U0n(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 ole({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 grt=w(ib=>{"use strict";Object.defineProperty(ib,"__esModule",{value:!0});ib.parseJsonString=ib.parseJsonNumber=ib.parseJson=void 0;var j0n=/position\s(\d+)(?: \(line \d+ column \d+\))?$/;function ag(e,t){let n;ag.message=void 0;let r;t&&(e=e.slice(t));try{return ag.position=t+e.length,JSON.parse(e)}catch(i){if(r=j0n.exec(i.message),!r){ag.message="unexpected end";return}n=+r[1];let s=e[n];e=e.slice(0,n),ag.position=t+n;try{return JSON.parse(e)}catch{ag.message=`unexpected token ${s}`;return}}}ib.parseJson=ag;ag.message=void 0;ag.position=0;ag.code='require("ajv/dist/runtime/parseJson").parseJson';function cg(e,t,n){let r="",i;if(cg.message=void 0,e[t]==="-"&&(r+="-",t++),e[t]==="0")r+="0",t++;else if(!s(n)){o();return}if(n)return cg.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 cg.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(){cg.position=t,cg.message=t="a"&&r<="f")o+=r.charCodeAt(0)-H0n+10;else if(r>="0"&&r<="9")o+=r.charCodeAt(0)-q0n;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 rb.position=t,n;function i(s){rb.position=t,rb.message=s}}ib.parseJsonString=rb;rb.message=void 0;rb.position=0;rb.code='require("ajv/dist/runtime/parseJson").parseJsonString'});var krt=w(mle=>{"use strict";Object.defineProperty(mle,"__esModule",{value:!0});var B0n=rle(),Ert=q_(),mt=Ot(),z0n=Zm(),Ln=bd(),G0n=Sa(),V0n=R4(),W0n=Wue(),lle=grt(),_rt=pn(),K0n=Vue(),Y0n={elements:Q0n,values:$0n,discriminator:txn,properties:yrt,optionalProperties:yrt,enum:rxn,type:nxn,ref:ixn};function Trt(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 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:Ln.default.data,parseName:a,char:o.name("c")},u;try{this._compilations.add(e),e.parseName=a,Z0n(c),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(Ln.default.scope)}return ${l}`;let f=new Function(`${Ln.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}mle.default=Trt;var ule=(0,mt._)`undefined`;function Z0n(e){let{gen:t,parseName:n,char:r}=e;t.func(n,(0,mt._)`${Ln.default.json}, ${Ln.default.jsonPos}, ${Ln.default.jsonPart}`,!1,()=>{t.let(Ln.default.data),t.let(r),t.assign((0,mt._)`${n}.message`,ule),t.assign((0,mt._)`${n}.position`,ule),t.assign(Ln.default.jsonPos,(0,mt._)`${Ln.default.jsonPos} || 0`),t.const(Ln.default.jsonLen,(0,mt._)`${Ln.default.json}.length`),x4(e),hle(e),t.if(Ln.default.jsonPart,()=>{t.assign((0,mt._)`${n}.position`,Ln.default.jsonPos),t.return(Ln.default.data)}),t.if((0,mt._)`${Ln.default.jsonPos} === ${Ln.default.jsonLen}`,()=>t.return(Ln.default.data)),eI(e)})}function x4(e){let t;for(let n of B0n.jtdForms)if(n in e.schema){t=n;break}t?X0n(e,Y0n[t]):fle(e)}var J0n=brt(!0,brt(!1,eI));function X0n(e,t){let{gen:n,schema:r,data:i}=e;if(!r.nullable)return t(e);KM(e,"null",t,()=>n.assign(i,null))}function Q0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"[");let i=t.let("i",0);t.assign(r,(0,mt._)`[]`),dle(e,"]",()=>{let s=t.let("el");x4({...e,schema:n.elements,data:s}),t.assign((0,mt._)`${r}[${i}++]`,s)})}function $0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"{"),t.assign(r,(0,mt._)`{}`),dle(e,"}",()=>exn(e,n.values))}function dle(e,t,n){vrt(e,t,n),Ah(e,t)}function vrt(e,t,n){let{gen:r}=e;r.for((0,mt._)`;${Ln.default.jsonPos}<${Ln.default.jsonLen} && ${O4(1)}!==${t};`,()=>{n(),KM(e,",",()=>r.break(),i)});function i(){KM(e,t,()=>{},eI)}}function exn(e,t){let{gen:n}=e,r=n.let("key");hT({...e,data:r}),Ah(e,":"),Art(e,r,t)}function txn(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",Ln.default.jsonPos),a=t.let("value"),c=t.let("tag");vrt(e,"}",()=>{let u=t.let("key");hT({...e,data:u}),Ah(e,":"),t.if((0,mt._)`${u} === ${i}`,()=>{hT({...e,data:c}),t.assign((0,mt._)`${n}[${u}]`,c),t.break()},()=>fle({...e,data:a}))}),t.assign(Ln.default.jsonPos,o),t.if((0,mt._)`${c} === undefined`),ug(e,(0,mt.str)`discriminator tag not found`);for(let u in s)t.elseIf((0,mt._)`${c} === ${u}`),Rrt({...e,schema:s[u]},i);t.else(),ug(e,(0,mt.str)`discriminator value not in schema`),t.endIf()}function yrt(e){let{gen:t,data:n}=e;Ah(e,"{"),t.assign(n,(0,mt._)`{}`),Rrt(e)}function Rrt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o,additionalProperties:a}=r;if(dle(e,"}",()=>{let c=n.let("key");if(hT({...e,data:c}),Ah(e,":"),n.if(!1),Srt(e,c,s),Srt(e,c,o),t){n.elseIf((0,mt._)`${c} === ${t}`);let u=n.let("tag");hT({...e,data:u})}n.else(),a?fle({...e,data:(0,mt._)`${i}[${c}]`}):ug(e,(0,mt.str)`property ${c} not allowed`),n.endIf()}),s){let c=(0,G0n.hasPropFunc)(n),u=(0,mt.and)(...Object.keys(s).map(l=>(0,mt._)`${c}.call(${i}, ${l})`));n.if((0,mt.not)(u),()=>ug(e,(0,mt.str)`missing required properties`))}}function Srt(e,t,n={}){let{gen:r}=e;for(let i in n)r.elseIf((0,mt._)`${t} === ${i}`),Art(e,t,n[i])}function Art(e,t,n){x4({...e,schema:n,data:(0,mt._)`${e.data}[${t}]`})}function nxn(e){let{gen:t,schema:n,data:r,self:i}=e;switch(n.type){case"boolean":J0n(e);break;case"string":hT(e);break;case"timestamp":{hT(e);let s=(0,_rt.useFunc)(t,K0n.default),{allowDate:o,parseDate:a}=i.opts,c=o?(0,mt._)`!${s}(${r}, true)`:(0,mt._)`!${s}(${r})`,u=a?(0,mt.or)(c,(0,mt._)`(${r} = new Date(${r}), false)`,(0,mt._)`isNaN(${r}.valueOf())`):c;t.if(u,()=>ug(e,(0,mt.str)`invalid timestamp`));break}case"float32":case"float64":cle(e);break;default:{let s=n.type;if(!i.opts.int32range&&(s==="int32"||s==="uint32"))cle(e,16),s==="uint32"&&t.if((0,mt._)`${r} < 0`,()=>ug(e,(0,mt.str)`integer out of range`));else{let[o,a,c]=W0n.intRange[s];cle(e,c),t.if((0,mt._)`${r} < ${o} || ${r} > ${a}`,()=>ug(e,(0,mt.str)`integer out of range`))}}}}function hT(e){Ah(e,'"'),ple(e,lle.parseJsonString)}function rxn(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._)`${O4(o.length)} === ${o}`),t.assign(n,(0,mt.str)`${s}`),t.add(Ln.default.jsonPos,o.length)}t.else(),eI(e),t.endIf()}function cle(e,t){let{gen:n}=e;hle(e),n.if((0,mt._)`"-0123456789".indexOf(${O4(1)}) < 0`,()=>eI(e),()=>ple(e,lle.parseJsonNumber,t))}function brt(e,t){return n=>{let{gen:r,data:i}=n;KM(n,`${e}`,()=>t(n),()=>r.assign(i,e))}}function ixn(e){let{gen:t,self:n,definitions:r,schema:i,schemaEnv:s}=e,{ref:o}=i,a=r[o];if(!a)throw new z0n.default(n.opts.uriResolver,"",o,`No definition ${o}`);if(!(0,V0n.hasRef)(a))return x4({...e,schema:a});let{root:c}=s,u=Trt.call(n,new Ert.SchemaEnv({schema:a,root:c}),r);wrt(e,sxn(t,u),!0)}function sxn(e,t){return t.parse?e.scopeValue("parse",{ref:t.parse}):(0,mt._)`${e.scopeValue("wrapper",{ref:t})}.parse`}function fle(e){ple(e,lle.parseJson)}function ple(e,t,n){wrt(e,(0,_rt.useFunc)(e.gen,t),n)}function wrt(e,t,n){let{gen:r,data:i}=e;r.assign(i,(0,mt._)`${t}(${Ln.default.json}, ${Ln.default.jsonPos}${n?(0,mt._)`, ${n}`:mt.nil})`),r.assign(Ln.default.jsonPos,(0,mt._)`${t}.position`),r.if((0,mt._)`${i} === undefined`,()=>ug(e,(0,mt._)`${t}.message`))}function Ah(e,t){KM(e,t,eI)}function KM(e,t,n,r){let{gen:i}=e,s=t.length;hle(e),i.if((0,mt._)`${O4(s)} === ${t}`,()=>{i.add(Ln.default.jsonPos,s),r?.(e)},()=>n(e))}function hle({gen:e,char:t}){e.code((0,mt._)`while((${t}=${Ln.default.json}[${Ln.default.jsonPos}],${t}===" "||${t}==="\\n"||${t}==="\\r"||${t}==="\\t"))${Ln.default.jsonPos}++;`)}function O4(e){return e===1?(0,mt._)`${Ln.default.json}[${Ln.default.jsonPos}]`:(0,mt._)`${Ln.default.json}.slice(${Ln.default.jsonPos}, ${Ln.default.jsonPos}+${e})`}function eI(e){ug(e,(0,mt._)`"unexpected token " + ${Ln.default.json}[${Ln.default.jsonPos}]`)}function ug({gen:e,parseName:t},n){e.assign((0,mt._)`${t}.message`,n),e.assign((0,mt._)`${t}.position`,Ln.default.jsonPos),e.return(ule)}});var Sle=w((bi,yle)=>{"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 oxn=Wse(),axn=nrt(),cxn=ort(),uxn=hrt(),lxn=krt(),gle="JTD-meta-schema",tI=class extends oxn.default{constructor(t={}){super({...t,jtd:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(axn.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema(),this.opts.meta&&this.addMetaSchema(cxn.default,gle,!1)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(gle)?gle: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(uxn.default.call(this,t,t.schema.definitions||{}),!t.serialize)throw new Error("ajv implementation error");return t.serialize}_compileParser(t){if(lxn.default.call(this,t,t.schema.definitions||{}),!t.parse)throw new Error("ajv implementation error");return t.parse}};bi.Ajv=tI;yle.exports=bi=tI;yle.exports.Ajv=tI;Object.defineProperty(bi,"__esModule",{value:!0});bi.default=tI;var dxn=ck();Object.defineProperty(bi,"KeywordCxt",{enumerable:!0,get:function(){return dxn.KeywordCxt}});var nI=Ot();Object.defineProperty(bi,"_",{enumerable:!0,get:function(){return nI._}});Object.defineProperty(bi,"str",{enumerable:!0,get:function(){return nI.str}});Object.defineProperty(bi,"stringify",{enumerable:!0,get:function(){return nI.stringify}});Object.defineProperty(bi,"nil",{enumerable:!0,get:function(){return nI.nil}});Object.defineProperty(bi,"Name",{enumerable:!0,get:function(){return nI.Name}});Object.defineProperty(bi,"CodeGen",{enumerable:!0,get:function(){return nI.CodeGen}});var fxn=MC();Object.defineProperty(bi,"ValidationError",{enumerable:!0,get:function(){return fxn.default}});var pxn=Zm();Object.defineProperty(bi,"MissingRefError",{enumerable:!0,get:function(){return pxn.default}})});var ble=w((U3r,Irt)=>{"use strict";var hxn=sV();Irt.exports=Object.freeze({coerceTypes:"array",useDefaults:!0,removeAdditional:!0,uriResolver:hxn,addUsedSchema:!1,allErrors:!1})});var Prt=w((F3r,Ort)=>{"use strict";var mxn=V_().default,gxn=Sle(),xrt=ble(),Ele=class{constructor(t,n){n.mode==="JTD"?this.ajv=new gxn(Object.assign({},xrt,n.customOptions)):this.ajv=new mxn(Object.assign({},xrt,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&&TV()(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)}};Ort.exports=Ele});var Crt=w((j3r,Nrt)=>{"use strict";var yxn=Sle(),Sxn=ble(),_le=class{constructor(t,n){this.ajv=new yxn(Object.assign({},Sxn,n))}buildSerializerFunction({schema:t}){return this.ajv.compileSerializer(t)}};Nrt.exports=_le});var Lrt=w((ZM,Drt)=>{"use strict";Object.defineProperty(ZM,"__esModule",{value:!0});var YM=G2(),Cf=ek();function Mrt(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)===YM.UsedValueState.Completed)return Cf.nil;p(c.validateName,YM.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?YM.varKinds.var:YM.varKinds.const,E=(0,Cf._)`${S} ${h} = {validate: ${b}};`;if(f(b)===YM.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)}}}Drt.exports=ZM=Mrt;Object.defineProperty(ZM,"__esModule",{value:!0});ZM.default=Mrt});var jrt=w((H3r,Frt)=>{"use strict";var Urt=Tle(),bxn=Lrt().default;function Exn(e={readMode:!0}){if(e.readMode===!0&&!e.restoreFunction)throw new Error("You must provide a restoreFunction options when readMode ON");if(e.readMode!==!0&&!e.storeFunction)throw new Error("You must provide a storeFunction options when readMode OFF");if(e.readMode===!0)return function(){return function(r){return e.restoreFunction(r)}};let t=Urt();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=bxn(s[Urt.AjvReference].ajv,a);return e.storeFunction(o,c),a}}}Frt.exports=Exn});var Tle=w((q3r,rI)=>{"use strict";var qrt=Symbol.for("fastify.ajv-compiler.reference"),_xn=Prt(),Txn=Crt();function vle(e){let t=new Map,n=new Map;return e&&e.jtdSerializer===!0?function(i,s){let o=Hrt({},s);if(n.has(o))return n.get(o);let a=new Txn(i,s),c=a.buildSerializerFunction.bind(a);return n.set(o,c),c}:function(i,s){let o=Hrt(i,s.customOptions);if(t.has(o))return t.get(o);let a=new _xn(i,s),c=a.buildValidatorFunction.bind(a);return t.set(o,c),s.customOptions.code!==void 0&&(c[qrt]=a),c}}function Hrt(e,t){let n=JSON.stringify(e),r=JSON.stringify(t);return`${n}${r}`}rI.exports=vle;rI.exports.default=vle;rI.exports.AjvCompiler=vle;rI.exports.AjvReference=qrt;rI.exports.StandaloneValidator=jrt()});var P4=w(Grt=>{var Brt=Object.prototype.hasOwnProperty;function zrt(e,t,n){for(n of e.keys())if(JM(n,t))return n}function JM(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--&&JM(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=zrt(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=zrt(t,i),!i)||!JM(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(Brt.call(e,n)&&++r&&!Brt.call(t,n)||!(n in t)||!JM(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}Grt.dequal=JM});var Yrt=w((z3r,Krt)=>{"use strict";var{dequal:Vrt}=P4(),vxn=Symbol.for("json-schema-ref"),Rle=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[vxn]=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(Vrt(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&&Vrt(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:Rle}});var wle=w((G3r,Zrt)=>{"use strict";var Rxn=V_(),Axn=sV(),wxn=TV(),kxn=n4()({proto:!0}),Ale=class e{constructor(t){this.ajv=new Rxn({...t,strictSchema:!1,validateSchema:!1,allowUnionTypes:!0,uriResolver:Axn}),wxn(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=kxn(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}};Zrt.exports=Ale});var Xrt=w((V3r,Jrt)=>{"use strict";var kle=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}};Jrt.exports=kle});var nit=w((W3r,xle)=>{"use strict";xle.exports=qe;xle.exports.default=qe;var Ixn={$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},Qrt={enum:["array","boolean","integer","null","number","object","string"]},$rt=/^(?:[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,xxn=EV().fullFormats.uri,eit=EV().fullFormats.regex;function kd(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))?(kd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1):(kd.errors=s,o===0):(kd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1)}var Ile={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;kd(e.minLength,{instancePath:t+"/minLength",parentData:e,parentDataProperty:"minLength",rootData:i})||(s=s===null?kd.errors:s.concat(kd.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(!eit(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;kd(e.minItems,{instancePath:t+"/minItems",parentData:e,parentDataProperty:"minItems",rootData:i})||(s=s===null?kd.errors:s.concat(kd.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;kd(e.minProperties,{instancePath:t+"/minProperties",parentData:e,parentDataProperty:"minProperties",rootData:i})||(s=s===null?kd.errors:s.concat(kd.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"&&!eit(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(tit(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:Qrt.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(tit(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 Cle=w((K3r,rit)=>{"use strict";var Ole=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}},Ple=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}},Nle=class extends Error{constructor(t){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Invalid "onConflict" option: "${t}".`}};rit.exports={MergeError:Ole,ResolverNotFoundError:Ple,InvalidOnConflictOptionError:Nle}});var oit=w((Y3r,sit)=>{"use strict";var{dequal:Oxn}=P4(),{MergeError:Mle}=Cle();function iit(e){let t=e[0];for(let n=1;ne[n].includes(r));return t}function Pxn(e,t,n){let r=iit(t);if(r.length===0)throw new Mle(e,t);n[e]=r}function Nxn(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 Uxn(e,t,n){let r=t[0];for(let i=1;i{"use strict";var{dequal:qxn}=P4(),Qi=oit(),M4=Cle(),uit={$id:Qi.skip,type:Qi.hybridArraysIntersection,enum:Qi.arraysIntersection,minLength:Qi.maxNumber,maxLength:Qi.minNumber,minimum:Qi.maxNumber,maximum:Qi.minNumber,multipleOf:Qi.commonMultiple,exclusiveMinimum:Qi.maxNumber,exclusiveMaximum:Qi.minNumber,minItems:Qi.maxNumber,maxItems:Qi.minNumber,maxProperties:Qi.minNumber,minProperties:Qi.maxNumber,const:Qi.allEqual,default:Qi.allEqual,format:Qi.allEqual,required:Qi.arraysUnion,properties:Kxn,patternProperties:C4,additionalProperties:N4,items:Gxn,additionalItems:Vxn,definitions:C4,$defs:C4,nullable:Qi.booleanAnd,oneOf:ait,anyOf:ait,allOf:Qi.arraysUnion,not:N4,if:Yxn,then:Qi.skip,else:Qi.skip,dependencies:cit,dependentRequired:cit,dependentSchemas:C4,propertyNames:N4,uniqueItems:Qi.booleanOr,contains:N4};function N4(e,t,n,r,i){n[e]=Mf(t,i)}function Bxn(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 ait(e,t,n,r,i){if(t.length===1){n[e]=t[0];return}let s=Bxn(t),o=[];for(let a of s)try{let c=Mf(a,i);c!==void 0&&o.push(c)}catch(c){if(c instanceof M4.MergeError)continue;throw c}n[e]=o}function zxn(e,t){let{items:n,additionalItems:r}=e;return Array.isArray(n)?t{"use strict";var{mergeSchemas:Jxn}=fit();function Xxn(e){return Jxn(e,{onConflict:"skip"})}pit.exports=Xxn});var mit=w((X3r,Dle)=>{"use strict";function Qxn(e,t,n,r){let i="";t.validatorSchemasIds.size>0?(i+=`const Validator = require('fast-json-stringify/lib/validator') `,i+=`const validatorState = ${JSON.stringify(r.getState())} `,i+=`const validator = Validator.restoreFromState(validatorState) `):i+=`const validator = null @@ -144,7 +144,7 @@ ${b}`),m.pop(),`{${T}}`}case"number":return isFinite(h)?String(h):t?t(h):"null"; ${i} - module.exports = ${e.toString()}(validator, serializer)`}Mle.exports=Jxn;Mle.exports.dependencies={Serializer:i4(),Validator:Ale()}});var Tit=w((Q3r,iI)=>{"use strict";var{RefResolver:Xxn}=Wrt(),Qxn=i4(),$xn=Ale(),mT=Zrt(),hit=eit(),eOn=fit(),tOn=/'/g,XM=2e4,D4="default",nOn=` + module.exports = ${e.toString()}(validator, serializer)`}Dle.exports=Qxn;Dle.exports.dependencies={Serializer:i4(),Validator:wle()}});var Rit=w((Q3r,iI)=>{"use strict";var{RefResolver:$xn}=Yrt(),eOn=i4(),tOn=wle(),mT=Xrt(),git=nit(),nOn=hit(),rOn=/'/g,XM=2e4,D4="default",iOn=` const { asString, asNumber, @@ -157,8 +157,8 @@ const { const asInteger = serializer.asInteger.bind(serializer) -`,rOn=new Set(["floor","ceil","round","trunc"]),Sit=new Set(["default","json-stringify"]),QM=0;function Dle(e,t){if(!hit(e)){t?t=`"${t}" `:t="";let n=hit.errors[0],r=new Error(`${t}schema is invalid: data${n.instancePath} ${n.message}`);throw r.errors=Dle.errors,r}}function lg(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 mT(o,i,s);return o.$ref!==void 0?lg(e,a):a}function L4(e,t){let n=e.refResolver.getSchema(t,"#");return new mT(n,t,"#")}function mit(e,t){return e.$id&&e.$id.charAt(0)!=="#"?e.$id:t}function $M(e,t){let n=t.getSchemaRef()||"";return n.startsWith(e.rootSchemaId)&&(n=n.replace(e.rootSchemaId,"")||"#"),n}function Ule(e,t){Dle(e),t=t||{};let n={functions:[],functionsCounter:0,functionsNamesBySchema:new Map,options:t,refResolver:new Xxn,rootSchemaId:e.$id||`__fjs_root_${QM++}`,validatorSchemasIds:new Set,mergedSchemasIds:new Map,recursiveSchemas:new Set,recursivePaths:new Set,buildingSet:new Set,uid:0},r=mit(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=mit(d,l);n.refResolver.hasSchema(f)||(Dle(d,l),n.refResolver.addSchema(d,l))}if(t.rounding&&!rOn.has(t.rounding))throw new Error(`Unsupported integer rounding method ${t.rounding}`);if(t.largeArrayMechanism)if(Sit.has(t.largeArrayMechanism))D4=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)))XM=d;else if(l==="number"&&Number.isInteger(t.largeArraySize))XM=t.largeArraySize;else if(l==="bigint")XM=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 mT(e,n.rootSchemaId);pOn(n,i);let s=cc(n,i,"input"),o=` - ${nOn} +`,sOn=new Set(["floor","ceil","round","trunc"]),Eit=new Set(["default","json-stringify"]),QM=0;function Lle(e,t){if(!git(e)){t?t=`"${t}" `:t="";let n=git.errors[0],r=new Error(`${t}schema is invalid: data${n.instancePath} ${n.message}`);throw r.errors=Lle.errors,r}}function lg(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 mT(o,i,s);return o.$ref!==void 0?lg(e,a):a}function L4(e,t){let n=e.refResolver.getSchema(t,"#");return new mT(n,t,"#")}function yit(e,t){return e.$id&&e.$id.charAt(0)!=="#"?e.$id:t}function $M(e,t){let n=t.getSchemaRef()||"";return n.startsWith(e.rootSchemaId)&&(n=n.replace(e.rootSchemaId,"")||"#"),n}function Fle(e,t){Lle(e),t=t||{};let n={functions:[],functionsCounter:0,functionsNamesBySchema:new Map,options:t,refResolver:new $xn,rootSchemaId:e.$id||`__fjs_root_${QM++}`,validatorSchemasIds:new Set,mergedSchemasIds:new Map,recursiveSchemas:new Set,recursivePaths:new Set,buildingSet:new Set,uid:0},r=yit(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=yit(d,l);n.refResolver.hasSchema(f)||(Lle(d,l),n.refResolver.addSchema(d,l))}if(t.rounding&&!sOn.has(t.rounding))throw new Error(`Unsupported integer rounding method ${t.rounding}`);if(t.largeArrayMechanism)if(Eit.has(t.largeArrayMechanism))D4=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)))XM=d;else if(l==="number"&&Number.isInteger(t.largeArraySize))XM=t.largeArraySize;else if(l==="bigint")XM=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 mT(e,n.rootSchemaId);mOn(n,i);let s=cc(n,i,"input"),o=` + ${iOn} 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 Qxn(t),c=new $xn(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 eOn(t),c=new tOn(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"?pit()(u,n,a,c):u(c,a)}var iOn=["properties","required","additionalProperties","patternProperties","maxProperties","minProperties","dependencies"],sOn=["items","additionalItems","maxItems","minItems","uniqueItems","contains"],oOn=["maxLength","minLength","pattern"],aOn=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum"];function cOn(e){for(let t of iOn)if(t in e)return"object";for(let t of sOn)if(t in e)return"array";for(let t of oOn)if(t in e)return"string";for(let t of aOn)if(t in e)return"number";return e.type}function uOn(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"?mit()(u,n,a,c):u(c,a)}var oOn=["properties","required","additionalProperties","patternProperties","maxProperties","minProperties","dependencies"],aOn=["items","additionalItems","maxItems","minItems","uniqueItems","contains"],cOn=["maxLength","minLength","pattern"],uOn=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum"];function lOn(e){for(let t of oOn)if(t in e)return"object";for(let t of aOn)if(t in e)return"array";for(let t of cOn)if(t in e)return"string";for(let t of uOn)if(t in e)return"number";return e.type}function dOn(e,t,n,r){let i=t.schema,s=Object.keys(i.properties||{}),o=` for (const key of Object.keys(${r})) { if ( ${s.length>0?s.map(d=>`key === ${JSON.stringify(d)}`).join(" || ")+" ||":""} @@ -211,7 +211,7 @@ ${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode=== ${cc(e,d,"value")} `}return o+=` } - `,o}function git(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 Sit(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;lLle(i,t)).join(" || ")})`)}return n}function Eit(e){return"anonymous"+e.functionsCounter++}function fOn(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=_it(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=>Ule(i,t)).join(" || ")})`)}return n}function Tit(e){return"anonymous"+e.functionsCounter++}function hOn(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=vit(e,t,n),u=a===0?"if":"else if";switch(o){case"null":s+=` ${u} (${n} === null) { ${c} } @@ -389,7 +389,7 @@ ${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode=== } `;break}}}),s+=` else throw new TypeError(\`The value of '${$M(e,t)}' does not match schema definition.\`) - `,s}function _it(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})`:` + `,s}function vit(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,19 +403,19 @@ ${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 lOn(e,t,n);case"array":return dOn(e,t,n);case void 0:return`json += JSON.stringify(${n})`;default:throw new Error(`${r.type} unsupported`)}}function pOn(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=lg(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 SOn=Tit();function vit(){return function(t,n){let r=Object.assign({},n,{schema:t});return bOn.bind(null,r)}}function bOn(e,{schema:t}){return e.schema&&t.$id&&e.schema[t.$id]&&(e.schema={...e.schema},delete e.schema[t.$id]),SOn(t,e)}function Rit(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=vit();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)}}}F4.exports.SerializerSelector=vit;F4.exports.StandaloneSerializer=Rit;F4.exports.default=Rit});var wit=w((e9r,eD)=>{"use strict";var{SerializerSelector:Fle,StandaloneSerializer:EOn}=Ait();eD.exports=Fle;eD.exports.default=Fle;eD.exports.SerializerSelector=Fle;eD.exports.StandaloneSerializer=EOn});var jle=w((t9r,kit)=>{"use strict";var{buildSchemas:_On}=NM();function TOn(e,t){if(e)return new sI(e,t);let n=Object.assign({buildValidator:null,buildSerializer:null},t?.compilersFactory);if(!n.buildValidator){let i=_le();n.buildValidator=i()}if(!n.buildSerializer){let i=wit();n.buildSerializer=i()}let r={bucket:t&&t.bucket||_On,compilersFactory:n,isCustomValidatorCompiler:typeof t?.compilersFactory?.buildValidator=="function",isCustomSerializerCompiler:typeof t?.compilersFactory?.buildValidator=="function"};return new sI(void 0,r)}var sI=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))}};sI.buildSchemaController=TOn;kit.exports=sI});var tD=w((n9r,Iit)=>{"use strict";var vOn="2.0.0",ROn=Number.MAX_SAFE_INTEGER||9007199254740991,AOn=16,wOn=250,kOn=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Iit.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:AOn,MAX_SAFE_BUILD_LENGTH:wOn,MAX_SAFE_INTEGER:ROn,RELEASE_TYPES:kOn,SEMVER_SPEC_VERSION:vOn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var nD=w((r9r,xit)=>{"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):()=>{};xit.exports=IOn});var oI=w((wh,Oit)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Hle,MAX_SAFE_BUILD_LENGTH:xOn,MAX_LENGTH:OOn}=tD(),POn=nD();wh=Oit.exports={};var NOn=wh.re=[],COn=wh.safeRe=[],et=wh.src=[],MOn=wh.safeSrc=[],tt=wh.t={},DOn=0,qle="[a-zA-Z0-9-]",LOn=[["\\s",1],["\\d",OOn],[qle,xOn]],UOn=e=>{for(let[t,n]of LOn)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e},on=(e,t,n)=>{let r=UOn(t),i=DOn++;POn(e,i,t),tt[e]=i,et[i]=t,MOn[i]=r,NOn[i]=new RegExp(t,n?"g":void 0),COn[i]=new RegExp(r,n?"g":void 0)};on("NUMERICIDENTIFIER","0|[1-9]\\d*");on("NUMERICIDENTIFIERLOOSE","\\d+");on("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${qle}*`);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",`${qle}+`);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,${Hle}})(?:\\.(\\d{1,${Hle}}))?(?:\\.(\\d{1,${Hle}}))?`);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 j4=w((i9r,Pit)=>{"use strict";var FOn=Object.freeze({loose:!0}),jOn=Object.freeze({}),HOn=e=>e?typeof e!="object"?FOn:e:jOn;Pit.exports=HOn});var Ble=w((s9r,Mit)=>{"use strict";var Nit=/^[0-9]+$/,Cit=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:eCit(t,e);Mit.exports={compareIdentifiers:Cit,rcompareIdentifiers:qOn}});var uc=w((o9r,Lit)=>{"use strict";var H4=nD(),{MAX_LENGTH:Dit,MAX_SAFE_INTEGER:q4}=tD(),{safeRe:B4,t:z4}=oI(),BOn=j4(),{compareIdentifiers:zle}=Ble(),Gle=class e{constructor(t,n){if(n=BOn(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>Dit)throw new TypeError(`version is longer than ${Dit} characters`);H4("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;let r=t.trim().match(n.loose?B4[z4.LOOSE]:B4[z4.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>q4||this.major<0)throw new TypeError("Invalid major version");if(this.minor>q4||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>q4||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(H4("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 zle(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(H4("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 zle(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?B4[z4.PRERELEASELOOSE]:B4[z4.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]),zle(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}};Lit.exports=Gle});var gT=w((a9r,Fit)=>{"use strict";var Uit=uc(),zOn=(e,t,n=!1)=>{if(e instanceof Uit)return e;try{return new Uit(e,t)}catch(r){if(!n)return null;throw r}};Fit.exports=zOn});var Hit=w((c9r,jit)=>{"use strict";var GOn=gT(),VOn=(e,t)=>{let n=GOn(e,t);return n?n.version:null};jit.exports=VOn});var Bit=w((u9r,qit)=>{"use strict";var WOn=gT(),KOn=(e,t)=>{let n=WOn(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null};qit.exports=KOn});var Vit=w((l9r,Git)=>{"use strict";var zit=uc(),YOn=(e,t,n,r,i)=>{typeof n=="string"&&(i=r,r=n,n=void 0);try{return new zit(e instanceof zit?e.version:e,n).inc(t,r,i).version}catch{return null}};Git.exports=YOn});var Yit=w((d9r,Kit)=>{"use strict";var Wit=gT(),ZOn=(e,t)=>{let n=Wit(e,null,!0),r=Wit(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"};Kit.exports=ZOn});var Jit=w((f9r,Zit)=>{"use strict";var JOn=uc(),XOn=(e,t)=>new JOn(e,t).major;Zit.exports=XOn});var Qit=w((p9r,Xit)=>{"use strict";var QOn=uc(),$On=(e,t)=>new QOn(e,t).minor;Xit.exports=$On});var est=w((h9r,$it)=>{"use strict";var ePn=uc(),tPn=(e,t)=>new ePn(e,t).patch;$it.exports=tPn});var nst=w((m9r,tst)=>{"use strict";var nPn=gT(),rPn=(e,t)=>{let n=nPn(e,t);return n&&n.prerelease.length?n.prerelease:null};tst.exports=rPn});var Id=w((g9r,ist)=>{"use strict";var rst=uc(),iPn=(e,t,n)=>new rst(e,n).compare(new rst(t,n));ist.exports=iPn});var ost=w((y9r,sst)=>{"use strict";var sPn=Id(),oPn=(e,t,n)=>sPn(t,e,n);sst.exports=oPn});var cst=w((S9r,ast)=>{"use strict";var aPn=Id(),cPn=(e,t)=>aPn(e,t,!0);ast.exports=cPn});var G4=w((b9r,lst)=>{"use strict";var ust=uc(),uPn=(e,t,n)=>{let r=new ust(e,n),i=new ust(t,n);return r.compare(i)||r.compareBuild(i)};lst.exports=uPn});var fst=w((E9r,dst)=>{"use strict";var lPn=G4(),dPn=(e,t)=>e.sort((n,r)=>lPn(n,r,t));dst.exports=dPn});var hst=w((_9r,pst)=>{"use strict";var fPn=G4(),pPn=(e,t)=>e.sort((n,r)=>fPn(r,n,t));pst.exports=pPn});var rD=w((T9r,mst)=>{"use strict";var hPn=Id(),mPn=(e,t,n)=>hPn(e,t,n)>0;mst.exports=mPn});var V4=w((v9r,gst)=>{"use strict";var gPn=Id(),yPn=(e,t,n)=>gPn(e,t,n)<0;gst.exports=yPn});var Vle=w((R9r,yst)=>{"use strict";var SPn=Id(),bPn=(e,t,n)=>SPn(e,t,n)===0;yst.exports=bPn});var Wle=w((A9r,Sst)=>{"use strict";var EPn=Id(),_Pn=(e,t,n)=>EPn(e,t,n)!==0;Sst.exports=_Pn});var W4=w((w9r,bst)=>{"use strict";var TPn=Id(),vPn=(e,t,n)=>TPn(e,t,n)>=0;bst.exports=vPn});var K4=w((k9r,Est)=>{"use strict";var RPn=Id(),APn=(e,t,n)=>RPn(e,t,n)<=0;Est.exports=APn});var Kle=w((I9r,_st)=>{"use strict";var wPn=Vle(),kPn=Wle(),IPn=rD(),xPn=W4(),OPn=V4(),PPn=K4(),NPn=(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 wPn(e,n,r);case"!=":return kPn(e,n,r);case">":return IPn(e,n,r);case">=":return xPn(e,n,r);case"<":return OPn(e,n,r);case"<=":return PPn(e,n,r);default:throw new TypeError(`Invalid operator: ${t}`)}};_st.exports=NPn});var vst=w((x9r,Tst)=>{"use strict";var CPn=uc(),MPn=gT(),{safeRe:Y4,t:Z4}=oI(),DPn=(e,t)=>{if(e instanceof CPn)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?Y4[Z4.COERCEFULL]:Y4[Z4.COERCE]);else{let c=t.includePrerelease?Y4[Z4.COERCERTLFULL]:Y4[Z4.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 MPn(`${r}.${i}.${s}${o}${a}`,t)};Tst.exports=DPn});var Ast=w((O9r,Rst)=>{"use strict";var Yle=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}};Rst.exports=Yle});var xd=w((P9r,xst)=>{"use strict";var LPn=/\s+/g,Zle=class e{constructor(t,n){if(n=FPn(n),t instanceof e)return t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease?t:new e(t.raw,n);if(t instanceof Jle)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(LPn," "),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=>!kst(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&&VPn(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&&zPn)|(this.options.loose&&GPn))+":"+t,i=wst.get(r);if(i)return i;let s=this.options.loose,o=s?Wc[lc.HYPHENRANGELOOSE]:Wc[lc.HYPHENRANGE];t=t.replace(o,tNn(this.options.includePrerelease)),Ei("hyphen replace",t),t=t.replace(Wc[lc.COMPARATORTRIM],HPn),Ei("comparator trim",t),t=t.replace(Wc[lc.TILDETRIM],qPn),Ei("tilde trim",t),t=t.replace(Wc[lc.CARETTRIM],BPn),Ei("caret trim",t);let a=t.split(" ").map(d=>WPn(d,this.options)).join(" ").split(/\s+/).map(d=>eNn(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 Jle(d,this.options));for(let d of u){if(kst(d))return[d];c.set(d.value,d)}c.size>1&&c.has("")&&c.delete("");let l=[...c.values()];return wst.set(r,l),l}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(r=>Ist(r,n)&&t.set.some(i=>Ist(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 jPn(t,this.options)}catch{return!1}for(let n=0;ne.value==="<0.0.0-0",VPn=e=>e.value==="",Ist=(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},WPn=(e,t)=>(e=e.replace(Wc[lc.BUILD],""),Ei("comp",e,t),e=ZPn(e,t),Ei("caret",e),e=KPn(e,t),Ei("tildes",e),e=XPn(e,t),Ei("xrange",e),e=$Pn(e,t),Ei("stars",e),e),Kc=e=>!e||e.toLowerCase()==="x"||e==="*",KPn=(e,t)=>e.trim().split(/\s+/).map(n=>YPn(n,t)).join(" "),YPn=(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})},ZPn=(e,t)=>e.trim().split(/\s+/).map(n=>JPn(n,t)).join(" "),JPn=(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})},XPn=(e,t)=>(Ei("replaceXRanges",e,t),e.split(/\s+/).map(n=>QPn(n,t)).join(" ")),QPn=(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})},$Pn=(e,t)=>(Ei("replaceStars",e,t),e.trim().replace(Wc[lc.STAR],"")),eNn=(e,t)=>(Ei("replaceGTE0",e,t),e.trim().replace(Wc[t.includePrerelease?lc.GTE0PRE:lc.GTE0],"")),tNn=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()),nNn=(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 iD=w((N9r,Dst)=>{"use strict";var sD=Symbol("SemVer ANY"),$le=class e{static get ANY(){return sD}constructor(t,n){if(n=Ost(n),t instanceof e){if(t.loose===!!n.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),Qle("comparator",t,n),this.options=n,this.loose=!!n.loose,this.parse(t),this.semver===sD?this.value="":this.value=this.operator+this.semver.version,Qle("comp",this)}parse(t){let n=this.options.loose?Pst[Nst.COMPARATORLOOSE]:Pst[Nst.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 Cst(r[2],this.options.loose):this.semver=sD}toString(){return this.value}test(t){if(Qle("Comparator.test",t,this.options.loose),this.semver===sD||t===sD)return!0;if(typeof t=="string")try{t=new Cst(t,this.options)}catch{return!1}return Xle(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 Mst(t.value,n).test(this.value):t.operator===""?t.value===""?!0:new Mst(this.value,n).test(t.semver):(n=Ost(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("=")||Xle(this.semver,"<",t.semver,n)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||Xle(this.semver,">",t.semver,n)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};Dst.exports=$le;var Ost=j4(),{safeRe:Pst,t:Nst}=oI(),Xle=Kle(),Qle=nD(),Cst=uc(),Mst=xd()});var oD=w((C9r,Lst)=>{"use strict";var rNn=xd(),iNn=(e,t,n)=>{try{t=new rNn(t,n)}catch{return!1}return t.test(e)};Lst.exports=iNn});var Fst=w((M9r,Ust)=>{"use strict";var sNn=xd(),oNn=(e,t)=>new sNn(e,t).set.map(n=>n.map(r=>r.value).join(" ").trim().split(" "));Ust.exports=oNn});var Hst=w((D9r,jst)=>{"use strict";var aNn=uc(),cNn=xd(),uNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new cNn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===-1)&&(r=o,i=new aNn(r,n))}),r};jst.exports=uNn});var Bst=w((L9r,qst)=>{"use strict";var lNn=uc(),dNn=xd(),fNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new dNn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===1)&&(r=o,i=new lNn(r,n))}),r};qst.exports=fNn});var Vst=w((U9r,Gst)=>{"use strict";var ede=uc(),pNn=xd(),zst=rD(),hNn=(e,t)=>{e=new pNn(e,t);let n=new ede("0.0.0");if(e.test(n)||(n=new ede("0.0.0-0"),e.test(n)))return n;n=null;for(let r=0;r{let a=new ede(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||zst(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!n||zst(n,s))&&(n=s)}return n&&e.test(n)?n:null};Gst.exports=hNn});var Kst=w((F9r,Wst)=>{"use strict";var mNn=xd(),gNn=(e,t)=>{try{return new mNn(e,t).range||"*"}catch{return null}};Wst.exports=gNn});var J4=w((j9r,Xst)=>{"use strict";var yNn=uc(),Jst=iD(),{ANY:SNn}=Jst,bNn=xd(),ENn=oD(),Yst=rD(),Zst=V4(),_Nn=K4(),TNn=W4(),vNn=(e,t,n,r)=>{e=new yNn(e,r),t=new bNn(t,r);let i,s,o,a,c;switch(n){case">":i=Yst,s=_Nn,o=Zst,a=">",c=">=";break;case"<":i=Zst,s=TNn,o=Yst,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(ENn(e,t,r))return!1;for(let u=0;u{p.semver===SNn&&(p=new Jst(">=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};Xst.exports=vNn});var $st=w((H9r,Qst)=>{"use strict";var RNn=J4(),ANn=(e,t,n)=>RNn(e,t,">",n);Qst.exports=ANn});var tot=w((q9r,eot)=>{"use strict";var wNn=J4(),kNn=(e,t,n)=>wNn(e,t,"<",n);eot.exports=kNn});var iot=w((B9r,rot)=>{"use strict";var not=xd(),INn=(e,t,n)=>(e=new not(e,n),t=new not(t,n),e.intersects(t,n));rot.exports=INn});var oot=w((z9r,sot)=>{"use strict";var xNn=oD(),ONn=Id();sot.exports=(e,t,n)=>{let r=[],i=null,s=null,o=e.sort((l,d)=>ONn(l,d,n));for(let l of o)xNn(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 aot=xd(),nde=iD(),{ANY:tde}=nde,aD=oD(),rde=Id(),PNn=(e,t,n={})=>{if(e===t)return!0;e=new aot(e,n),t=new aot(t,n);let r=!1;e:for(let i of e.set){for(let s of t.set){let o=CNn(i,s,n);if(r=r||o!==null,o)continue e}if(r)return!1}return!0},NNn=[new nde(">=0.0.0-0")],cot=[new nde(">=0.0.0")],CNn=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===tde){if(t.length===1&&t[0].semver===tde)return!0;n.includePrerelease?e=NNn:e=cot}if(t.length===1&&t[0].semver===tde){if(n.includePrerelease)return!0;t=cot}let r=new Set,i,s;for(let p of e)p.operator===">"||p.operator===">="?i=uot(i,p,n):p.operator==="<"||p.operator==="<="?s=lot(s,p,n):r.add(p.semver);if(r.size>1)return null;let o;if(i&&s){if(o=rde(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&&!aD(p,String(i),n)||s&&!aD(p,String(s),n))return null;for(let h of t)if(!aD(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=uot(i,p,n),a===p&&a!==i)return!1}else if(i.operator===">="&&!aD(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=lot(s,p,n),c===p&&c!==s)return!1}else if(s.operator==="<="&&!aD(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)},uot=(e,t,n)=>{if(!e)return t;let r=rde(e.semver,t.semver,n);return r>0?e:r<0||t.operator===">"&&e.operator===">="?t:e},lot=(e,t,n)=>{if(!e)return t;let r=rde(e.semver,t.semver,n);return r<0?e:r>0||t.operator==="<"&&e.operator==="<="?t:e};dot.exports=PNn});var got=w((V9r,mot)=>{"use strict";var ide=oI(),pot=tD(),MNn=uc(),hot=Ble(),DNn=gT(),LNn=Hit(),UNn=Bit(),FNn=Vit(),jNn=Yit(),HNn=Jit(),qNn=Qit(),BNn=est(),zNn=nst(),GNn=Id(),VNn=ost(),WNn=cst(),KNn=G4(),YNn=fst(),ZNn=hst(),JNn=rD(),XNn=V4(),QNn=Vle(),$Nn=Wle(),eCn=W4(),tCn=K4(),nCn=Kle(),rCn=vst(),iCn=iD(),sCn=xd(),oCn=oD(),aCn=Fst(),cCn=Hst(),uCn=Bst(),lCn=Vst(),dCn=Kst(),fCn=J4(),pCn=$st(),hCn=tot(),mCn=iot(),gCn=oot(),yCn=fot();mot.exports={parse:DNn,valid:LNn,clean:UNn,inc:FNn,diff:jNn,major:HNn,minor:qNn,patch:BNn,prerelease:zNn,compare:GNn,rcompare:VNn,compareLoose:WNn,compareBuild:KNn,sort:YNn,rsort:ZNn,gt:JNn,lt:XNn,eq:QNn,neq:$Nn,gte:eCn,lte:tCn,cmp:nCn,coerce:rCn,Comparator:iCn,Range:sCn,satisfies:oCn,toComparators:aCn,maxSatisfying:cCn,minSatisfying:uCn,minVersion:lCn,validRange:dCn,outside:fCn,gtr:pCn,ltr:hCn,intersects:mCn,simplifyRange:gCn,subset:yCn,SemVer:MNn,re:ide.re,src:ide.src,tokens:ide.t,SEMVER_SPEC_VERSION:pot.SEMVER_SPEC_VERSION,RELEASE_TYPES:pot.RELEASE_TYPES,compareIdentifiers:hot.compareIdentifiers,rcompareIdentifiers:hot.rcompareIdentifiers}});var lde=w((W9r,ude)=>{"use strict";var sde=got(),ade=Y("node:assert"),cde=Symbol.for("registered-plugin"),{kTestInternals:SCn}=$s(),{exist:bCn,existReply:ECn,existRequest:_Cn}=LM(),{FST_ERR_PLUGIN_VERSION_MISMATCH:TCn,FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:vCn,FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:RCn}=Ko(),ACn=/-(?:rc|pre|alpha).+$/u;function cD(e){return e[Symbol.for("plugin-meta")]}function yot(e){let t=Sot(e);if(t)return t;let n=Y.cache;if(n){let r=Object.keys(n);for(let i=0;it.trim()).join(" -- ")}function Sot(e){return e[Symbol.for("fastify.display-name")]}function bot(e){return!!e[Symbol.for("skip-override")]}function Eot(e){let t=cD(e);if(!t)return;let n=t.dependencies;n&&(ade(Array.isArray(n),"The dependencies should be an array of strings"),n.forEach(r=>{ade(this[cde].indexOf(r)>-1,`The dependency '${r}' of plugin '${t.name}' is not registered`)}))}function _ot(e){let t=cD(e);if(!t)return;let{decorators:n,name:r}=t;n&&(n.fastify&&ode(this,"Fastify",n.fastify,r),n.reply&&ode(this,"Reply",n.reply,r),n.request&&ode(this,"Request",n.request,r))}var kCn={Fastify:bCn,Request:_Cn,Reply:ECn};function ode(e,t,n,r){ade(Array.isArray(n),"The decorators should be an array of strings"),n.forEach(i=>{let s=typeof r=="string"?` required by '${r}'`:"";if(!kCn[t].call(e,i))throw new vCn(i,s,t)})}function ICn(e){let t=cD(e);if(t?.fastify==null)return;let n=t.fastify,r=ACn.test(this.version);if(!(r===!0&&sde.gt(this.version,sde.coerce(n))===!0)&&n&&sde.satisfies(this.version,n,{includePrerelease:r})===!1)throw new TCn(t.name,n,this.version)}function xCn(e){let t=cD(e);if(!t)return;let n=t.name;if(n)return this[cde].push(n),n}function OCn(e,t){if(e.constructor.name==="AsyncFunction"&&e.length===3)throw new RCn(t)}function PCn(e){let t=xCn.call(this,e)||yot(e);return OCn.call(this,e,t),ICn.call(this,e),_ot.call(this,e),Eot.call(this,e),bot(e)}ude.exports={getPluginName:yot,getFuncPreview:wCn,kRegisteredPlugins:cde,getDisplayName:Sot,registerPlugin:PCn};ude.exports[SCn]={shouldSkipOverride:bot,getMeta:cD,checkDecorators:_ot,checkDependencies:Eot}});var X4=w((Y9r,Tot)=>{"use strict";function NCn(e,t){let n=t||MCn();return e?DCn(e,n):n}function CCn(e,t){return e.genReqId(t)}function MCn(){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)}}Tot.exports={getGenReqId:CCn,reqIdGenFactory:NCn}});var wot=w((Z9r,Aot)=>{"use strict";var vot=12,LCn=0,dde=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 UCn(e){var t=e.indexOf("%");if(t===-1)return e;for(var n=e.length,r="",i=0,s=0,o=t,a=vot;t>-1&&t>10),56320+(s&1023)),s=0,i=t+3,t=o=e.indexOf("%",i);else{if(a===LCn)return null;if(t+=3,t{"use strict";var kot=wot(),Iot=/\+/g,xot=function(){};xot.prototype=Object.create(null);function jCn(e){let t=new xot;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(Iot," ")),a&&(r=kot(r)||r),d&&(i=e.slice(o+1,p),l&&(i=i.replace(Iot," ")),c&&(i=kot(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}Oot.exports=jCn});var Cot=w((X9r,Not)=>{var kh=Array.from({length:256},(e,t)=>"%"+((t<16?"0":"")+t.toString(16)).toUpperCase()),HCn=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 qCn(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:fde}=Cot();function Mot(e){let t=typeof e;return t==="string"?fde(e):t==="bigint"?e.toString():t==="boolean"?e?"true":"false":t==="number"&&Number.isFinite(e)?e<1e21?""+e:fde(""+e):""}function BCn(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 Uot=Pot(),Fot=Lot(),jot={parse:Uot,stringify:Fot};uD.exports=jot;uD.exports.default=jot;uD.exports.parse=Uot;uD.exports.stringify=Fot});var Bot=w(qot=>{"use strict";Object.defineProperty(qot,"__esModule",{value:!0})});var zot=w(lD=>{"use strict";Object.defineProperty(lD,"__esModule",{value:!0});lD.types=void 0;var zCn;(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"})(zCn=lD.types||(lD.types={}))});var Vot=w(Got=>{"use strict";Object.defineProperty(Got,"__esModule",{value:!0})});var fg=w(dg=>{"use strict";var GCn=dg&&dg.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),pde=dg&&dg.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&GCn(t,e,n)};Object.defineProperty(dg,"__esModule",{value:!0});pde(Bot(),dg);pde(zot(),dg);pde(Vot(),dg)});var Q4=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 mr=fg(),Wot=()=>[{type:mr.types.RANGE,from:48,to:57}],Kot=()=>[{type:mr.types.CHAR,value:95},{type:mr.types.RANGE,from:97,to:122},{type:mr.types.RANGE,from:65,to:90},{type:mr.types.RANGE,from:48,to:57}],Yot=()=>[{type:mr.types.CHAR,value:9},{type:mr.types.CHAR,value:10},{type:mr.types.CHAR,value:11},{type:mr.types.CHAR,value:12},{type:mr.types.CHAR,value:13},{type:mr.types.CHAR,value:32},{type:mr.types.CHAR,value:160},{type:mr.types.CHAR,value:5760},{type:mr.types.RANGE,from:8192,to:8202},{type:mr.types.CHAR,value:8232},{type:mr.types.CHAR,value:8233},{type:mr.types.CHAR,value:8239},{type:mr.types.CHAR,value:8287},{type:mr.types.CHAR,value:12288},{type:mr.types.CHAR,value:65279}],VCn=()=>[{type:mr.types.CHAR,value:10},{type:mr.types.CHAR,value:13},{type:mr.types.CHAR,value:8232},{type:mr.types.CHAR,value:8233}];dc.words=()=>({type:mr.types.SET,set:Kot(),not:!1});dc.notWords=()=>({type:mr.types.SET,set:Kot(),not:!0});dc.ints=()=>({type:mr.types.SET,set:Wot(),not:!1});dc.notInts=()=>({type:mr.types.SET,set:Wot(),not:!0});dc.whitespace=()=>({type:mr.types.SET,set:Yot(),not:!1});dc.notWhitespace=()=>({type:mr.types.SET,set:Yot(),not:!0});dc.anyChar=()=>({type:mr.types.SET,set:VCn(),not:!0})});var Jot=w(Od=>{"use strict";var WCn=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]})),KCn=Od&&Od.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),YCn=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)&&WCn(t,e,n);return KCn(t,e),t};Object.defineProperty(Od,"__esModule",{value:!0});Od.tokenizeClass=Od.strToChars=void 0;var Zot=fg(),aI=YCn(Q4()),ZCn="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?";Od.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?ZCn.indexOf(a):{0:0,t:9,n:10,v:11,f:12,r:13}[c],l=String.fromCharCode(u);return/[[\]{}^$.|?*+()]/.test(l)?`\\${l}`:l})};Od.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]&&aI.words())!==null&&n!==void 0?n:l[2]&&aI.ints())!==null&&r!==void 0?r:l[3]&&aI.whitespace())!==null&&i!==void 0?i:l[4]&&aI.notWords())!==null&&s!==void 0?s:l[5]&&aI.notInts())!==null&&o!==void 0?o:l[6]&&aI.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 hde=w(Ih=>{"use strict";var JCn=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]})),XCn=Ih&&Ih.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),$ot=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)&&JCn(t,e,n);return XCn(t,e),t};Object.defineProperty(Ih,"__esModule",{value:!0});Ih.tokenizer=void 0;var Xot=$ot(Jot()),va=fg(),yT=$ot(Q4()),QCn=/^[a-zA-Z_$]$/i,$Cn=/^[a-zA-Z0-9_$]$/i,Qot=/\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=Xot.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 eMn(a,c),r};function eMn(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 tat=w(fc=>{"use strict";var tMn=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]})),nMn=fc&&fc.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),rMn=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)&&tMn(t,e,n);return nMn(t,e),t};Object.defineProperty(fc,"__esModule",{value:!0});fc.NOTANYCHAR=fc.WHITESPACE=fc.WORDS=fc.INTS=void 0;var $4=rMn(Q4()),eat=fg();function eK(e){let t={},n=0;for(let r of e)r.type===eat.types.CHAR&&(t[r.value]=!0),r.type===eat.types.RANGE&&(t[`${r.from}-${r.to}`]=!0),n+=1;return{lookup:()=>Object.assign({},t),len:n}}fc.INTS=eK($4.ints().set);fc.WORDS=eK($4.words().set);fc.WHITESPACE=eK($4.whitespace().set);fc.NOTANYCHAR=eK($4.anyChar().set)});var rat=w(Pd=>{"use strict";var iMn=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]})),sMn=Pd&&Pd.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),oMn=Pd&&Pd.__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)&&iMn(t,e,n);return sMn(t,e),t};Object.defineProperty(Pd,"__esModule",{value:!0});Pd.writeSetTokens=Pd.setChar=void 0;var iK=fg(),tK=oMn(tat());function rK(e){return e===94?"\\^":e===92?"\\\\":e===93?"\\]":e===45?"\\-":String.fromCharCode(e)}Pd.setChar=rK;function nK(e,{lookup:t,len:n}){if(n!==e.length)return!1;let r=t();for(let i of e){if(i.type===iK.types.SET)return!1;let s=i.type===iK.types.CHAR?i.value:`${i.from}-${i.to}`;if(r[s])r[s]=!1;else return!1}return!0}function nat(e,t=!1){if(nK(e.set,tK.INTS))return e.not?"\\D":"\\d";if(nK(e.set,tK.WORDS))return e.not?"\\W":"\\w";if(e.not&&nK(e.set,tK.NOTANYCHAR))return".";if(nK(e.set,tK.WHITESPACE))return e.not?"\\S":"\\s";let n="";for(let i=0;i{"use strict";Object.defineProperty(cI,"__esModule",{value:!0});cI.reconstruct=void 0;var sb=fg(),mde=rat(),iat=e=>e.map(cI.reconstruct).join(""),sat=e=>{if("options"in e)return e.options.map(iat).join("|");if("stack"in e)return iat(e.stack);throw new Error("options or stack must be Root or Group token")};cI.reconstruct=e=>{switch(e.type){case sb.types.ROOT:return sat(e);case sb.types.CHAR:{let t=String.fromCharCode(e.value);return(/[[\\{}$^.|?*+()]/.test(t)?"\\":"")+t}case sb.types.POSITION:return e.value==="^"||e.value==="$"?e.value:`\\${e.value}`;case sb.types.REFERENCE:return`\\${e.value}`;case sb.types.SET:return mde.writeSetTokens(e);case sb.types.GROUP:return`(${e.name?`?<${e.name}>`:e.remember?"":e.followedBy?"?=":e.notFollowedBy?"?!":"?:"}${sat(e)})`;case sb.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}}`,`${cI.reconstruct(e.value)}${r}`}case sb.types.RANGE:return`${mde.setChar(e.from)}-${mde.setChar(e.to)}`;default:throw new Error(`Invalid token type ${e}`)}}});var Sde=w((Nd,sK)=>{"use strict";var cMn=Nd&&Nd.__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]})),yde=Nd&&Nd.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&cMn(t,e,n)};Object.defineProperty(Nd,"__esModule",{value:!0});Nd.types=void 0;var oat=fg();Object.defineProperty(Nd,"types",{enumerable:!0,get:function(){return oat.types}});yde(hde(),Nd);yde(gde(),Nd);var aat=hde(),uMn=gde();yde(fg(),Nd);Nd.default=aat.tokenizer;sK.exports=aat.tokenizer;sK.exports.types=oat.types;sK.exports.reconstruct=uMn.reconstruct});var cat=w((lYr,oK)=>{"use strict";var lMn=Sde(),{types:dMn}=Sde();function bde(e,t,n){let r,i,s;if(e.type===dMn.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";uat.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 gat=w((fYr,mat)=>{"use strict";var lat=OC(),dat=aK(),fat=Symbol("treeData");function pat(e,t=""){let n="",r=Object.keys(e);for(let i=0;i{"use strict";var EOn=Rit();function Ait(){return function(t,n){let r=Object.assign({},n,{schema:t});return _On.bind(null,r)}}function _On(e,{schema:t}){return e.schema&&t.$id&&e.schema[t.$id]&&(e.schema={...e.schema},delete e.schema[t.$id]),EOn(t,e)}function wit(e={readMode:!0}){if(e.readMode===!0&&typeof e.restoreFunction!="function")throw new Error("You must provide a function for the restoreFunction-option when readMode ON");if(e.readMode!==!0&&typeof e.storeFunction!="function")throw new Error("You must provide a function for the storeFunction-option when readMode OFF");if(e.readMode===!0)return function(){return function(r){return e.restoreFunction(r)}};let t=Ait();return function(r,i={}){i.mode="standalone";let s=t(r,i);return function(o){let a=s(o);return e.storeFunction(o,a),new Function(a)}}}F4.exports.SerializerSelector=Ait;F4.exports.StandaloneSerializer=wit;F4.exports.default=wit});var Iit=w((e9r,eD)=>{"use strict";var{SerializerSelector:jle,StandaloneSerializer:TOn}=kit();eD.exports=jle;eD.exports.default=jle;eD.exports.SerializerSelector=jle;eD.exports.StandaloneSerializer=TOn});var Hle=w((t9r,xit)=>{"use strict";var{buildSchemas:vOn}=NM();function ROn(e,t){if(e)return new sI(e,t);let n=Object.assign({buildValidator:null,buildSerializer:null},t?.compilersFactory);if(!n.buildValidator){let i=Tle();n.buildValidator=i()}if(!n.buildSerializer){let i=Iit();n.buildSerializer=i()}let r={bucket:t&&t.bucket||vOn,compilersFactory:n,isCustomValidatorCompiler:typeof t?.compilersFactory?.buildValidator=="function",isCustomSerializerCompiler:typeof t?.compilersFactory?.buildValidator=="function"};return new sI(void 0,r)}var sI=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))}};sI.buildSchemaController=ROn;xit.exports=sI});var tD=w((n9r,Oit)=>{"use strict";var AOn="2.0.0",wOn=Number.MAX_SAFE_INTEGER||9007199254740991,kOn=16,IOn=250,xOn=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Oit.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:kOn,MAX_SAFE_BUILD_LENGTH:IOn,MAX_SAFE_INTEGER:wOn,RELEASE_TYPES:xOn,SEMVER_SPEC_VERSION:AOn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var nD=w((r9r,Pit)=>{"use strict";var OOn=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};Pit.exports=OOn});var oI=w((wh,Nit)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:qle,MAX_SAFE_BUILD_LENGTH:POn,MAX_LENGTH:NOn}=tD(),COn=nD();wh=Nit.exports={};var MOn=wh.re=[],DOn=wh.safeRe=[],et=wh.src=[],LOn=wh.safeSrc=[],tt=wh.t={},UOn=0,Ble="[a-zA-Z0-9-]",FOn=[["\\s",1],["\\d",NOn],[Ble,POn]],jOn=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=jOn(t),i=UOn++;COn(e,i,t),tt[e]=i,et[i]=t,LOn[i]=r,MOn[i]=new RegExp(t,n?"g":void 0),DOn[i]=new RegExp(r,n?"g":void 0)};on("NUMERICIDENTIFIER","0|[1-9]\\d*");on("NUMERICIDENTIFIERLOOSE","\\d+");on("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Ble}*`);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",`${Ble}+`);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,${qle}})(?:\\.(\\d{1,${qle}}))?(?:\\.(\\d{1,${qle}}))?`);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 j4=w((i9r,Cit)=>{"use strict";var HOn=Object.freeze({loose:!0}),qOn=Object.freeze({}),BOn=e=>e?typeof e!="object"?HOn:e:qOn;Cit.exports=BOn});var zle=w((s9r,Lit)=>{"use strict";var Mit=/^[0-9]+$/,Dit=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:eDit(t,e);Lit.exports={compareIdentifiers:Dit,rcompareIdentifiers:zOn}});var uc=w((o9r,Fit)=>{"use strict";var H4=nD(),{MAX_LENGTH:Uit,MAX_SAFE_INTEGER:q4}=tD(),{safeRe:B4,t:z4}=oI(),GOn=j4(),{compareIdentifiers:Gle}=zle(),Vle=class e{constructor(t,n){if(n=GOn(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>Uit)throw new TypeError(`version is longer than ${Uit} characters`);H4("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;let r=t.trim().match(n.loose?B4[z4.LOOSE]:B4[z4.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>q4||this.major<0)throw new TypeError("Invalid major version");if(this.minor>q4||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>q4||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(H4("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 Gle(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(H4("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 Gle(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?B4[z4.PRERELEASELOOSE]:B4[z4.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]),Gle(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}};Fit.exports=Vle});var gT=w((a9r,Hit)=>{"use strict";var jit=uc(),VOn=(e,t,n=!1)=>{if(e instanceof jit)return e;try{return new jit(e,t)}catch(r){if(!n)return null;throw r}};Hit.exports=VOn});var Bit=w((c9r,qit)=>{"use strict";var WOn=gT(),KOn=(e,t)=>{let n=WOn(e,t);return n?n.version:null};qit.exports=KOn});var Git=w((u9r,zit)=>{"use strict";var YOn=gT(),ZOn=(e,t)=>{let n=YOn(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null};zit.exports=ZOn});var Kit=w((l9r,Wit)=>{"use strict";var Vit=uc(),JOn=(e,t,n,r,i)=>{typeof n=="string"&&(i=r,r=n,n=void 0);try{return new Vit(e instanceof Vit?e.version:e,n).inc(t,r,i).version}catch{return null}};Wit.exports=JOn});var Jit=w((d9r,Zit)=>{"use strict";var Yit=gT(),XOn=(e,t)=>{let n=Yit(e,null,!0),r=Yit(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"};Zit.exports=XOn});var Qit=w((f9r,Xit)=>{"use strict";var QOn=uc(),$On=(e,t)=>new QOn(e,t).major;Xit.exports=$On});var est=w((p9r,$it)=>{"use strict";var ePn=uc(),tPn=(e,t)=>new ePn(e,t).minor;$it.exports=tPn});var nst=w((h9r,tst)=>{"use strict";var nPn=uc(),rPn=(e,t)=>new nPn(e,t).patch;tst.exports=rPn});var ist=w((m9r,rst)=>{"use strict";var iPn=gT(),sPn=(e,t)=>{let n=iPn(e,t);return n&&n.prerelease.length?n.prerelease:null};rst.exports=sPn});var Id=w((g9r,ost)=>{"use strict";var sst=uc(),oPn=(e,t,n)=>new sst(e,n).compare(new sst(t,n));ost.exports=oPn});var cst=w((y9r,ast)=>{"use strict";var aPn=Id(),cPn=(e,t,n)=>aPn(t,e,n);ast.exports=cPn});var lst=w((S9r,ust)=>{"use strict";var uPn=Id(),lPn=(e,t)=>uPn(e,t,!0);ust.exports=lPn});var G4=w((b9r,fst)=>{"use strict";var dst=uc(),dPn=(e,t,n)=>{let r=new dst(e,n),i=new dst(t,n);return r.compare(i)||r.compareBuild(i)};fst.exports=dPn});var hst=w((E9r,pst)=>{"use strict";var fPn=G4(),pPn=(e,t)=>e.sort((n,r)=>fPn(n,r,t));pst.exports=pPn});var gst=w((_9r,mst)=>{"use strict";var hPn=G4(),mPn=(e,t)=>e.sort((n,r)=>hPn(r,n,t));mst.exports=mPn});var rD=w((T9r,yst)=>{"use strict";var gPn=Id(),yPn=(e,t,n)=>gPn(e,t,n)>0;yst.exports=yPn});var V4=w((v9r,Sst)=>{"use strict";var SPn=Id(),bPn=(e,t,n)=>SPn(e,t,n)<0;Sst.exports=bPn});var Wle=w((R9r,bst)=>{"use strict";var EPn=Id(),_Pn=(e,t,n)=>EPn(e,t,n)===0;bst.exports=_Pn});var Kle=w((A9r,Est)=>{"use strict";var TPn=Id(),vPn=(e,t,n)=>TPn(e,t,n)!==0;Est.exports=vPn});var W4=w((w9r,_st)=>{"use strict";var RPn=Id(),APn=(e,t,n)=>RPn(e,t,n)>=0;_st.exports=APn});var K4=w((k9r,Tst)=>{"use strict";var wPn=Id(),kPn=(e,t,n)=>wPn(e,t,n)<=0;Tst.exports=kPn});var Yle=w((I9r,vst)=>{"use strict";var IPn=Wle(),xPn=Kle(),OPn=rD(),PPn=W4(),NPn=V4(),CPn=K4(),MPn=(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 IPn(e,n,r);case"!=":return xPn(e,n,r);case">":return OPn(e,n,r);case">=":return PPn(e,n,r);case"<":return NPn(e,n,r);case"<=":return CPn(e,n,r);default:throw new TypeError(`Invalid operator: ${t}`)}};vst.exports=MPn});var Ast=w((x9r,Rst)=>{"use strict";var DPn=uc(),LPn=gT(),{safeRe:Y4,t:Z4}=oI(),UPn=(e,t)=>{if(e instanceof DPn)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?Y4[Z4.COERCEFULL]:Y4[Z4.COERCE]);else{let c=t.includePrerelease?Y4[Z4.COERCERTLFULL]:Y4[Z4.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 LPn(`${r}.${i}.${s}${o}${a}`,t)};Rst.exports=UPn});var kst=w((O9r,wst)=>{"use strict";var Zle=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}};wst.exports=Zle});var xd=w((P9r,Pst)=>{"use strict";var FPn=/\s+/g,Jle=class e{constructor(t,n){if(n=HPn(n),t instanceof e)return t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease?t:new e(t.raw,n);if(t instanceof Xle)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(FPn," "),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=>!xst(i[0])),this.set.length===0)this.set=[r];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&KPn(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t0&&(this.formatted+="||");let n=this.set[t];for(let r=0;r0&&(this.formatted+=" "),this.formatted+=n[r].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){let r=((this.options.includePrerelease&&VPn)|(this.options.loose&&WPn))+":"+t,i=Ist.get(r);if(i)return i;let s=this.options.loose,o=s?Wc[lc.HYPHENRANGELOOSE]:Wc[lc.HYPHENRANGE];t=t.replace(o,rNn(this.options.includePrerelease)),Ei("hyphen replace",t),t=t.replace(Wc[lc.COMPARATORTRIM],BPn),Ei("comparator trim",t),t=t.replace(Wc[lc.TILDETRIM],zPn),Ei("tilde trim",t),t=t.replace(Wc[lc.CARETTRIM],GPn),Ei("caret trim",t);let a=t.split(" ").map(d=>YPn(d,this.options)).join(" ").split(/\s+/).map(d=>nNn(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 Xle(d,this.options));for(let d of u){if(xst(d))return[d];c.set(d.value,d)}c.size>1&&c.has("")&&c.delete("");let l=[...c.values()];return Ist.set(r,l),l}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(r=>Ost(r,n)&&t.set.some(i=>Ost(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 qPn(t,this.options)}catch{return!1}for(let n=0;ne.value==="<0.0.0-0",KPn=e=>e.value==="",Ost=(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},YPn=(e,t)=>(e=e.replace(Wc[lc.BUILD],""),Ei("comp",e,t),e=XPn(e,t),Ei("caret",e),e=ZPn(e,t),Ei("tildes",e),e=$Pn(e,t),Ei("xrange",e),e=tNn(e,t),Ei("stars",e),e),Kc=e=>!e||e.toLowerCase()==="x"||e==="*",ZPn=(e,t)=>e.trim().split(/\s+/).map(n=>JPn(n,t)).join(" "),JPn=(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})},XPn=(e,t)=>e.trim().split(/\s+/).map(n=>QPn(n,t)).join(" "),QPn=(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})},$Pn=(e,t)=>(Ei("replaceXRanges",e,t),e.split(/\s+/).map(n=>eNn(n,t)).join(" ")),eNn=(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})},tNn=(e,t)=>(Ei("replaceStars",e,t),e.trim().replace(Wc[lc.STAR],"")),nNn=(e,t)=>(Ei("replaceGTE0",e,t),e.trim().replace(Wc[t.includePrerelease?lc.GTE0PRE:lc.GTE0],"")),rNn=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()),iNn=(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 iD=w((N9r,Ust)=>{"use strict";var sD=Symbol("SemVer ANY"),ede=class e{static get ANY(){return sD}constructor(t,n){if(n=Nst(n),t instanceof e){if(t.loose===!!n.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),$le("comparator",t,n),this.options=n,this.loose=!!n.loose,this.parse(t),this.semver===sD?this.value="":this.value=this.operator+this.semver.version,$le("comp",this)}parse(t){let n=this.options.loose?Cst[Mst.COMPARATORLOOSE]:Cst[Mst.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 Dst(r[2],this.options.loose):this.semver=sD}toString(){return this.value}test(t){if($le("Comparator.test",t,this.options.loose),this.semver===sD||t===sD)return!0;if(typeof t=="string")try{t=new Dst(t,this.options)}catch{return!1}return Qle(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 Lst(t.value,n).test(this.value):t.operator===""?t.value===""?!0:new Lst(this.value,n).test(t.semver):(n=Nst(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("=")||Qle(this.semver,"<",t.semver,n)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||Qle(this.semver,">",t.semver,n)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};Ust.exports=ede;var Nst=j4(),{safeRe:Cst,t:Mst}=oI(),Qle=Yle(),$le=nD(),Dst=uc(),Lst=xd()});var oD=w((C9r,Fst)=>{"use strict";var sNn=xd(),oNn=(e,t,n)=>{try{t=new sNn(t,n)}catch{return!1}return t.test(e)};Fst.exports=oNn});var Hst=w((M9r,jst)=>{"use strict";var aNn=xd(),cNn=(e,t)=>new aNn(e,t).set.map(n=>n.map(r=>r.value).join(" ").trim().split(" "));jst.exports=cNn});var Bst=w((D9r,qst)=>{"use strict";var uNn=uc(),lNn=xd(),dNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new lNn(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};qst.exports=dNn});var Gst=w((L9r,zst)=>{"use strict";var fNn=uc(),pNn=xd(),hNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new pNn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===1)&&(r=o,i=new fNn(r,n))}),r};zst.exports=hNn});var Kst=w((U9r,Wst)=>{"use strict";var tde=uc(),mNn=xd(),Vst=rD(),gNn=(e,t)=>{e=new mNn(e,t);let n=new tde("0.0.0");if(e.test(n)||(n=new tde("0.0.0-0"),e.test(n)))return n;n=null;for(let r=0;r{let a=new tde(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||Vst(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!n||Vst(n,s))&&(n=s)}return n&&e.test(n)?n:null};Wst.exports=gNn});var Zst=w((F9r,Yst)=>{"use strict";var yNn=xd(),SNn=(e,t)=>{try{return new yNn(e,t).range||"*"}catch{return null}};Yst.exports=SNn});var J4=w((j9r,$st)=>{"use strict";var bNn=uc(),Qst=iD(),{ANY:ENn}=Qst,_Nn=xd(),TNn=oD(),Jst=rD(),Xst=V4(),vNn=K4(),RNn=W4(),ANn=(e,t,n,r)=>{e=new bNn(e,r),t=new _Nn(t,r);let i,s,o,a,c;switch(n){case">":i=Jst,s=vNn,o=Xst,a=">",c=">=";break;case"<":i=Xst,s=RNn,o=Jst,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(TNn(e,t,r))return!1;for(let u=0;u{p.semver===ENn&&(p=new Qst(">=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};$st.exports=ANn});var tot=w((H9r,eot)=>{"use strict";var wNn=J4(),kNn=(e,t,n)=>wNn(e,t,">",n);eot.exports=kNn});var rot=w((q9r,not)=>{"use strict";var INn=J4(),xNn=(e,t,n)=>INn(e,t,"<",n);not.exports=xNn});var oot=w((B9r,sot)=>{"use strict";var iot=xd(),ONn=(e,t,n)=>(e=new iot(e,n),t=new iot(t,n),e.intersects(t,n));sot.exports=ONn});var cot=w((z9r,aot)=>{"use strict";var PNn=oD(),NNn=Id();aot.exports=(e,t,n)=>{let r=[],i=null,s=null,o=e.sort((l,d)=>NNn(l,d,n));for(let l of o)PNn(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 uot=xd(),rde=iD(),{ANY:nde}=rde,aD=oD(),ide=Id(),CNn=(e,t,n={})=>{if(e===t)return!0;e=new uot(e,n),t=new uot(t,n);let r=!1;e:for(let i of e.set){for(let s of t.set){let o=DNn(i,s,n);if(r=r||o!==null,o)continue e}if(r)return!1}return!0},MNn=[new rde(">=0.0.0-0")],lot=[new rde(">=0.0.0")],DNn=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===nde){if(t.length===1&&t[0].semver===nde)return!0;n.includePrerelease?e=MNn:e=lot}if(t.length===1&&t[0].semver===nde){if(n.includePrerelease)return!0;t=lot}let r=new Set,i,s;for(let p of e)p.operator===">"||p.operator===">="?i=dot(i,p,n):p.operator==="<"||p.operator==="<="?s=fot(s,p,n):r.add(p.semver);if(r.size>1)return null;let o;if(i&&s){if(o=ide(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&&!aD(p,String(i),n)||s&&!aD(p,String(s),n))return null;for(let h of t)if(!aD(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=dot(i,p,n),a===p&&a!==i)return!1}else if(i.operator===">="&&!aD(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=fot(s,p,n),c===p&&c!==s)return!1}else if(s.operator==="<="&&!aD(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)},dot=(e,t,n)=>{if(!e)return t;let r=ide(e.semver,t.semver,n);return r>0?e:r<0||t.operator===">"&&e.operator===">="?t:e},fot=(e,t,n)=>{if(!e)return t;let r=ide(e.semver,t.semver,n);return r<0?e:r>0||t.operator==="<"&&e.operator==="<="?t:e};pot.exports=CNn});var Sot=w((V9r,yot)=>{"use strict";var sde=oI(),mot=tD(),LNn=uc(),got=zle(),UNn=gT(),FNn=Bit(),jNn=Git(),HNn=Kit(),qNn=Jit(),BNn=Qit(),zNn=est(),GNn=nst(),VNn=ist(),WNn=Id(),KNn=cst(),YNn=lst(),ZNn=G4(),JNn=hst(),XNn=gst(),QNn=rD(),$Nn=V4(),eCn=Wle(),tCn=Kle(),nCn=W4(),rCn=K4(),iCn=Yle(),sCn=Ast(),oCn=iD(),aCn=xd(),cCn=oD(),uCn=Hst(),lCn=Bst(),dCn=Gst(),fCn=Kst(),pCn=Zst(),hCn=J4(),mCn=tot(),gCn=rot(),yCn=oot(),SCn=cot(),bCn=hot();yot.exports={parse:UNn,valid:FNn,clean:jNn,inc:HNn,diff:qNn,major:BNn,minor:zNn,patch:GNn,prerelease:VNn,compare:WNn,rcompare:KNn,compareLoose:YNn,compareBuild:ZNn,sort:JNn,rsort:XNn,gt:QNn,lt:$Nn,eq:eCn,neq:tCn,gte:nCn,lte:rCn,cmp:iCn,coerce:sCn,Comparator:oCn,Range:aCn,satisfies:cCn,toComparators:uCn,maxSatisfying:lCn,minSatisfying:dCn,minVersion:fCn,validRange:pCn,outside:hCn,gtr:mCn,ltr:gCn,intersects:yCn,simplifyRange:SCn,subset:bCn,SemVer:LNn,re:sde.re,src:sde.src,tokens:sde.t,SEMVER_SPEC_VERSION:mot.SEMVER_SPEC_VERSION,RELEASE_TYPES:mot.RELEASE_TYPES,compareIdentifiers:got.compareIdentifiers,rcompareIdentifiers:got.rcompareIdentifiers}});var dde=w((W9r,lde)=>{"use strict";var ode=Sot(),cde=Y("node:assert"),ude=Symbol.for("registered-plugin"),{kTestInternals:ECn}=$s(),{exist:_Cn,existReply:TCn,existRequest:vCn}=LM(),{FST_ERR_PLUGIN_VERSION_MISMATCH:RCn,FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:ACn,FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:wCn}=Ko(),kCn=/-(?:rc|pre|alpha).+$/u;function cD(e){return e[Symbol.for("plugin-meta")]}function bot(e){let t=Eot(e);if(t)return t;let n=Y.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 _ot(e){return!!e[Symbol.for("skip-override")]}function Tot(e){let t=cD(e);if(!t)return;let n=t.dependencies;n&&(cde(Array.isArray(n),"The dependencies should be an array of strings"),n.forEach(r=>{cde(this[ude].indexOf(r)>-1,`The dependency '${r}' of plugin '${t.name}' is not registered`)}))}function vot(e){let t=cD(e);if(!t)return;let{decorators:n,name:r}=t;n&&(n.fastify&&ade(this,"Fastify",n.fastify,r),n.reply&&ade(this,"Reply",n.reply,r),n.request&&ade(this,"Request",n.request,r))}var xCn={Fastify:_Cn,Request:vCn,Reply:TCn};function ade(e,t,n,r){cde(Array.isArray(n),"The decorators should be an array of strings"),n.forEach(i=>{let s=typeof r=="string"?` required by '${r}'`:"";if(!xCn[t].call(e,i))throw new ACn(i,s,t)})}function OCn(e){let t=cD(e);if(t?.fastify==null)return;let n=t.fastify,r=kCn.test(this.version);if(!(r===!0&&ode.gt(this.version,ode.coerce(n))===!0)&&n&&ode.satisfies(this.version,n,{includePrerelease:r})===!1)throw new RCn(t.name,n,this.version)}function PCn(e){let t=cD(e);if(!t)return;let n=t.name;if(n)return this[ude].push(n),n}function NCn(e,t){if(e.constructor.name==="AsyncFunction"&&e.length===3)throw new wCn(t)}function CCn(e){let t=PCn.call(this,e)||bot(e);return NCn.call(this,e,t),OCn.call(this,e),vot.call(this,e),Tot.call(this,e),_ot(e)}lde.exports={getPluginName:bot,getFuncPreview:ICn,kRegisteredPlugins:ude,getDisplayName:Eot,registerPlugin:CCn};lde.exports[ECn]={shouldSkipOverride:_ot,getMeta:cD,checkDecorators:vot,checkDependencies:Tot}});var X4=w((Y9r,Rot)=>{"use strict";function MCn(e,t){let n=t||LCn();return e?UCn(e,n):n}function DCn(e,t){return e.genReqId(t)}function LCn(){let t=0;return function(){return t=t+1&2147483647,`req-${t.toString(36)}`}}function UCn(e,t){return function(n){return n.headers[e]||t(n)}}Rot.exports={getGenReqId:DCn,reqIdGenFactory:MCn}});var Iot=w((Z9r,kot)=>{"use strict";var Aot=12,FCn=0,fde=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 jCn(e){var t=e.indexOf("%");if(t===-1)return e;for(var n=e.length,r="",i=0,s=0,o=t,a=Aot;t>-1&&t>10),56320+(s&1023)),s=0,i=t+3,t=o=e.indexOf("%",i);else{if(a===FCn)return null;if(t+=3,t{"use strict";var xot=Iot(),Oot=/\+/g,Pot=function(){};Pot.prototype=Object.create(null);function qCn(e){let t=new Pot;if(typeof e!="string")return t;let n=e.length,r="",i="",s=-1,o=-1,a=!1,c=!1,u=!1,l=!1,d=!1,f=0;for(let p=0;ps,d||(o=p),r=e.slice(s+1,o),d||r.length>0){u&&(r=r.replace(Oot," ")),a&&(r=xot(r)||r),d&&(i=e.slice(o+1,p),l&&(i=i.replace(Oot," ")),c&&(i=xot(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}Not.exports=qCn});var Dot=w((X9r,Mot)=>{var kh=Array.from({length:256},(e,t)=>"%"+((t<16?"0":"")+t.toString(16)).toUpperCase()),BCn=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 zCn(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:pde}=Dot();function Lot(e){let t=typeof e;return t==="string"?pde(e):t==="bigint"?e.toString():t==="boolean"?e?"true":"false":t==="number"&&Number.isFinite(e)?e<1e21?""+e:pde(""+e):""}function GCn(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 jot=Cot(),Hot=Fot(),qot={parse:jot,stringify:Hot};uD.exports=qot;uD.exports.default=qot;uD.exports.parse=jot;uD.exports.stringify=Hot});var Got=w(zot=>{"use strict";Object.defineProperty(zot,"__esModule",{value:!0})});var Vot=w(lD=>{"use strict";Object.defineProperty(lD,"__esModule",{value:!0});lD.types=void 0;var VCn;(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"})(VCn=lD.types||(lD.types={}))});var Kot=w(Wot=>{"use strict";Object.defineProperty(Wot,"__esModule",{value:!0})});var fg=w(dg=>{"use strict";var WCn=dg&&dg.__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=dg&&dg.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&WCn(t,e,n)};Object.defineProperty(dg,"__esModule",{value:!0});hde(Got(),dg);hde(Vot(),dg);hde(Kot(),dg)});var Q4=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 mr=fg(),Yot=()=>[{type:mr.types.RANGE,from:48,to:57}],Zot=()=>[{type:mr.types.CHAR,value:95},{type:mr.types.RANGE,from:97,to:122},{type:mr.types.RANGE,from:65,to:90},{type:mr.types.RANGE,from:48,to:57}],Jot=()=>[{type:mr.types.CHAR,value:9},{type:mr.types.CHAR,value:10},{type:mr.types.CHAR,value:11},{type:mr.types.CHAR,value:12},{type:mr.types.CHAR,value:13},{type:mr.types.CHAR,value:32},{type:mr.types.CHAR,value:160},{type:mr.types.CHAR,value:5760},{type:mr.types.RANGE,from:8192,to:8202},{type:mr.types.CHAR,value:8232},{type:mr.types.CHAR,value:8233},{type:mr.types.CHAR,value:8239},{type:mr.types.CHAR,value:8287},{type:mr.types.CHAR,value:12288},{type:mr.types.CHAR,value:65279}],KCn=()=>[{type:mr.types.CHAR,value:10},{type:mr.types.CHAR,value:13},{type:mr.types.CHAR,value:8232},{type:mr.types.CHAR,value:8233}];dc.words=()=>({type:mr.types.SET,set:Zot(),not:!1});dc.notWords=()=>({type:mr.types.SET,set:Zot(),not:!0});dc.ints=()=>({type:mr.types.SET,set:Yot(),not:!1});dc.notInts=()=>({type:mr.types.SET,set:Yot(),not:!0});dc.whitespace=()=>({type:mr.types.SET,set:Jot(),not:!1});dc.notWhitespace=()=>({type:mr.types.SET,set:Jot(),not:!0});dc.anyChar=()=>({type:mr.types.SET,set:KCn(),not:!0})});var Qot=w(Od=>{"use strict";var YCn=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]})),ZCn=Od&&Od.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),JCn=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)&&YCn(t,e,n);return ZCn(t,e),t};Object.defineProperty(Od,"__esModule",{value:!0});Od.tokenizeClass=Od.strToChars=void 0;var Xot=fg(),aI=JCn(Q4()),XCn="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?";Od.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?XCn.indexOf(a):{0:0,t:9,n:10,v:11,f:12,r:13}[c],l=String.fromCharCode(u);return/[[\]{}^$.|?*+()]/.test(l)?`\\${l}`:l})};Od.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]&&aI.words())!==null&&n!==void 0?n:l[2]&&aI.ints())!==null&&r!==void 0?r:l[3]&&aI.whitespace())!==null&&i!==void 0?i:l[4]&&aI.notWords())!==null&&s!==void 0?s:l[5]&&aI.notInts())!==null&&o!==void 0?o:l[6]&&aI.notWhitespace())!==null&&a!==void 0?a:l[7]&&{type:Xot.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:Xot.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 mde=w(Ih=>{"use strict";var QCn=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]})),$Cn=Ih&&Ih.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),tat=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)&&QCn(t,e,n);return $Cn(t,e),t};Object.defineProperty(Ih,"__esModule",{value:!0});Ih.tokenizer=void 0;var $ot=tat(Qot()),va=fg(),yT=tat(Q4()),eMn=/^[a-zA-Z_$]$/i,tMn=/^[a-zA-Z0-9_$]$/i,eat=/\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=$ot.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 nMn(a,c),r};function nMn(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 rat=w(fc=>{"use strict";var rMn=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]})),iMn=fc&&fc.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),sMn=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)&&rMn(t,e,n);return iMn(t,e),t};Object.defineProperty(fc,"__esModule",{value:!0});fc.NOTANYCHAR=fc.WHITESPACE=fc.WORDS=fc.INTS=void 0;var $4=sMn(Q4()),nat=fg();function eK(e){let t={},n=0;for(let r of e)r.type===nat.types.CHAR&&(t[r.value]=!0),r.type===nat.types.RANGE&&(t[`${r.from}-${r.to}`]=!0),n+=1;return{lookup:()=>Object.assign({},t),len:n}}fc.INTS=eK($4.ints().set);fc.WORDS=eK($4.words().set);fc.WHITESPACE=eK($4.whitespace().set);fc.NOTANYCHAR=eK($4.anyChar().set)});var sat=w(Pd=>{"use strict";var oMn=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]})),aMn=Pd&&Pd.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),cMn=Pd&&Pd.__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)&&oMn(t,e,n);return aMn(t,e),t};Object.defineProperty(Pd,"__esModule",{value:!0});Pd.writeSetTokens=Pd.setChar=void 0;var iK=fg(),tK=cMn(rat());function rK(e){return e===94?"\\^":e===92?"\\\\":e===93?"\\]":e===45?"\\-":String.fromCharCode(e)}Pd.setChar=rK;function nK(e,{lookup:t,len:n}){if(n!==e.length)return!1;let r=t();for(let i of e){if(i.type===iK.types.SET)return!1;let s=i.type===iK.types.CHAR?i.value:`${i.from}-${i.to}`;if(r[s])r[s]=!1;else return!1}return!0}function iat(e,t=!1){if(nK(e.set,tK.INTS))return e.not?"\\D":"\\d";if(nK(e.set,tK.WORDS))return e.not?"\\W":"\\w";if(e.not&&nK(e.set,tK.NOTANYCHAR))return".";if(nK(e.set,tK.WHITESPACE))return e.not?"\\S":"\\s";let n="";for(let i=0;i{"use strict";Object.defineProperty(cI,"__esModule",{value:!0});cI.reconstruct=void 0;var sb=fg(),gde=sat(),oat=e=>e.map(cI.reconstruct).join(""),aat=e=>{if("options"in e)return e.options.map(oat).join("|");if("stack"in e)return oat(e.stack);throw new Error("options or stack must be Root or Group token")};cI.reconstruct=e=>{switch(e.type){case sb.types.ROOT:return aat(e);case sb.types.CHAR:{let t=String.fromCharCode(e.value);return(/[[\\{}$^.|?*+()]/.test(t)?"\\":"")+t}case sb.types.POSITION:return e.value==="^"||e.value==="$"?e.value:`\\${e.value}`;case sb.types.REFERENCE:return`\\${e.value}`;case sb.types.SET:return gde.writeSetTokens(e);case sb.types.GROUP:return`(${e.name?`?<${e.name}>`:e.remember?"":e.followedBy?"?=":e.notFollowedBy?"?!":"?:"}${aat(e)})`;case sb.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}}`,`${cI.reconstruct(e.value)}${r}`}case sb.types.RANGE:return`${gde.setChar(e.from)}-${gde.setChar(e.to)}`;default:throw new Error(`Invalid token type ${e}`)}}});var bde=w((Nd,sK)=>{"use strict";var lMn=Nd&&Nd.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),Sde=Nd&&Nd.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&lMn(t,e,n)};Object.defineProperty(Nd,"__esModule",{value:!0});Nd.types=void 0;var cat=fg();Object.defineProperty(Nd,"types",{enumerable:!0,get:function(){return cat.types}});Sde(mde(),Nd);Sde(yde(),Nd);var uat=mde(),dMn=yde();Sde(fg(),Nd);Nd.default=uat.tokenizer;sK.exports=uat.tokenizer;sK.exports.types=cat.types;sK.exports.reconstruct=dMn.reconstruct});var lat=w((lYr,oK)=>{"use strict";var fMn=bde(),{types:pMn}=bde();function Ede(e,t,n){let r,i,s;if(e.type===pMn.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";dat.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 Sat=w((fYr,yat)=>{"use strict";var fat=OC(),pat=aK(),hat=Symbol("treeData");function mat(e,t=""){let n="",r=Object.keys(e);for(let i=0;ihat(t)):typeof e=="symbol"?e.toString():typeof e=="function"?pMn(e):e}function hMn(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(hat(a));r[o]=c}}return r}function mMn(e){let t="";for(let[n,r]of Object.entries(e))t+=` -\u2022 (${n}) ${r}`;return t}function gMn(e){let t={...e.opts.constraints},n=t[dat.name];return delete t[dat.name],{...e,method:n,opts:{constraints:t}}}function yMn(e){let t=` (${e.method})`,n=e.opts.constraints||{};return Object.keys(n).length!==0&&(t+=" "+JSON.stringify(n)),t+=mMn(e.metaData),t}function SMn(e){return e.reduce((t,n)=>{for(let r of t)if(lat(n.opts.constraints,r.opts.constraints)&&lat(n.metaData,r.metaData))return r.method+=", "+n.method,t;return t.push(n),t},[])}function bMn(e,t,n){let r=e.routes;return n.method===void 0&&(r=r.map(gMn)),r=r.map(i=>(i.metaData=hMn(i,n),i)),n.method===void 0&&(r=SMn(r)),r.map(yMn).join(` -${t}`)}function cK(e,t,n,r){if((e.isLeafNode||r.commonPrefix!==!1)&&(n=n||"(empty root node)",t=t[n]={},e.isLeafNode&&(t[fat]=bMn(e,n,r)),n=""),e.staticChildren)for(let i of Object.values(e.staticChildren))cK(i,t,n+i.prefix,r);if(e.parametricChildren)for(let i of Object.values(e.parametricChildren)){let s=Array.from(i.nodePaths).join("|");cK(i,t,n+s,r)}e.wildcardChild&&cK(e.wildcardChild,t,"*",r)}function EMn(e,t){let n={};return cK(e,n,e.prefix,t),pat(n)}mat.exports={prettyPrintTree:EMn}});var bat=w((pYr,Sat)=>{"use strict";var yat=function(){};yat.prototype=Object.create(null);Sat.exports={NullObject:yat}});var _at=w((hYr,Eat)=>{"use strict";var{NullObject:_Mn}=bat(),TMn=aK(),_de=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(TMn.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;rgat(t)):typeof e=="symbol"?e.toString():typeof e=="function"?mMn(e):e}function gMn(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(gat(a));r[o]=c}}return r}function yMn(e){let t="";for(let[n,r]of Object.entries(e))t+=` +\u2022 (${n}) ${r}`;return t}function SMn(e){let t={...e.opts.constraints},n=t[pat.name];return delete t[pat.name],{...e,method:n,opts:{constraints:t}}}function bMn(e){let t=` (${e.method})`,n=e.opts.constraints||{};return Object.keys(n).length!==0&&(t+=" "+JSON.stringify(n)),t+=yMn(e.metaData),t}function EMn(e){return e.reduce((t,n)=>{for(let r of t)if(fat(n.opts.constraints,r.opts.constraints)&&fat(n.metaData,r.metaData))return r.method+=", "+n.method,t;return t.push(n),t},[])}function _Mn(e,t,n){let r=e.routes;return n.method===void 0&&(r=r.map(SMn)),r=r.map(i=>(i.metaData=gMn(i,n),i)),n.method===void 0&&(r=EMn(r)),r.map(bMn).join(` +${t}`)}function cK(e,t,n,r){if((e.isLeafNode||r.commonPrefix!==!1)&&(n=n||"(empty root node)",t=t[n]={},e.isLeafNode&&(t[hat]=_Mn(e,n,r)),n=""),e.staticChildren)for(let i of Object.values(e.staticChildren))cK(i,t,n+i.prefix,r);if(e.parametricChildren)for(let i of Object.values(e.parametricChildren)){let s=Array.from(i.nodePaths).join("|");cK(i,t,n+s,r)}e.wildcardChild&&cK(e.wildcardChild,t,"*",r)}function TMn(e,t){let n={};return cK(e,n,e.prefix,t),mat(n)}yat.exports={prettyPrintTree:TMn}});var _at=w((pYr,Eat)=>{"use strict";var bat=function(){};bat.prototype=Object.create(null);Eat.exports={NullObject:bat}});var vat=w((hYr,Tat)=>{"use strict";var{NullObject:vMn}=_at(),RMn=aK(),Tde=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(RMn.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 vMn=_at(),hK={STATIC:0,PARAMETRIC:1,WILDCARD:2},uK=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 vMn),this.isLeafNode=!0,this.routes.push(t),this.handlerStorage.addHandler(n,t)}},lK=class extends uK{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 fK(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 pK,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 RMn=Y("node:assert");function dD(){if(!(this instanceof dD))return new dD;this.store=new Map,this.maxMajor=0,this.maxMinors={},this.maxPatches={}}dD.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};dD.prototype.get=function(e){return this.store.get(e)};Rat.exports={name:"version",mustMatchWhenDerived:!0,storage:dD,validate(e){RMn(typeof e=="string","Version should be a string")}}});var kat=w((yYr,wat)=>{"use strict";var AMn=Y("node:assert");function wMn(){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)}}}wat.exports={name:"host",mustMatchWhenDerived:!1,storage:wMn,validate(e){AMn(typeof e=="string"||Object.prototype.toString.call(e)==="[object RegExp]","Host should be a string or a RegExp")}}});var xat=w((SYr,Iat)=>{"use strict";var kMn=Aat(),IMn=kat(),Tde=Y("node:assert"),vde=class{constructor(t){if(this.strategies={version:kMn,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(Tde(typeof t.name=="string"&&t.name!=="","strategy.name is required."),Tde(t.storage&&typeof t.storage=="function","strategy.storage function is required."),Tde(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)}};Iat.exports=vde});var Pat=w((bYr,Oat)=>{"use strict";var xMn=["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"];Oat.exports=xMn});var Mat=w((EYr,Cat)=>{"use strict";function Nat(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=Y("node:assert"),NMn=Hot(),lI=cat(),wde=OC(),{prettyPrintTree:CMn}=gat(),{StaticNode:Dat,NODE_TYPES:Lat}=vat(),MMn=xat(),uI=Pat(),Rde=aK(),{safeDecodeURI:Uat,safeDecodeURIComponent:Ade}=Mat(),Fat=/^https?:\/\/.*?\//,ST=/(\/:[^/()]*?)\?(\/?)/,jat=/[.*+?^${}()|[\]\\]/g,Hat=/\/\/+/g;if(!lI(Fat))throw new Error("the FULL_PATH_REGEXP is not safe, update this module");if(!lI(ST))throw new Error("the OPTIONAL_PARAM_REGEXP is not safe, update this module");if(!lI(jat))throw new Error("the ESCAPE_REGEXP is not safe, update this module");if(!lI(Hat))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?{}:NMn.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 MMn(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(ST);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(ST,"$1$2"),l=n.replace(ST,"$2")||"/";this.on(t,u,r,i,s),this.on(t,l,r,i,s);return}let a=n;this.ignoreDuplicateSlashes&&(n=mK(n)),this.ignoreTrailingSlash&&(n=gK(n));let c=Array.isArray(t)?t:[t];for(let u of c)Ls(typeof u=="string","Method should be a string"),Ls(uI.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 Dat("/"));let a=n;if(a==="*"&&this.trees[t].prefix.length!==0){let f=this.trees[t];this.trees[t]=new Dat(""),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=zat(a,E),C=a.slice(E,N+1);this.allowUnsafeRegex||Ls(lI(new RegExp(C)),`The regex '${C}' is not safe!`),b.push(Bat(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(ST);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(ST,"$1$2"),a=n.replace(ST,"$2");this.off(t,o,r),this.off(t,a,r);return}this.ignoreDuplicateSlashes&&(n=mK(n)),this.ignoreTrailingSlash&&(n=gK(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(uI.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)||!wde(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(Fat,"/")),this.ignoreDuplicateSlashes&&(n=mK(n));let s,o,a;try{s=Uat(n,this.useSemicolonDelimiter),n=s.path,o=s.querystring,a=s.shouldDecodeParam}catch{return this._onBadUrl(n)}this.ignoreTrailingSlash&&(n=gK(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===Lat.STATIC){l+=i.prefix.length;continue}if(i.kind===Lat.WILDCARD){let y=c.slice(l);a&&(y=Ade(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=Ade(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[Rde.name]=Rde;let o=new _i({...this._opts,constraints:s}),a=this.routes.map(c=>{let u={...c.opts.constraints,[Rde.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)":CMn(n,e)};for(let e in uI){if(!uI.hasOwnProperty(e))continue;let t=uI[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(uI,e,t,n)};_i.sanitizeUrlPath=function(t,n){let r=Uat(t,n);return r.shouldDecodeParam?Ade(r.path):r.path};_i.removeDuplicateSlashes=mK;_i.trimLastSlash=gK;Gat.exports=_i;function qat(e){return e.replace(jat,"\\$&")}function mK(e){return e.indexOf("//")!==-1?e.replace(Hat,"/"):e}function gK(e){return e.length>1&&e.charCodeAt(e.length-1)===47?e.slice(0,-1):e}function Bat(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 zat(e,t){let n=1;for(;t{"use strict";function Ide(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 LMn(e){return e==null?Ide:Array.isArray(e)?[...e,Ide]:[e,Ide]}Vat.exports={parseHeadOnSendHandlers:LMn}});var fct=w((vYr,dct)=>{"use strict";var UMn=kde(),FMn=T4(),Kat=Tce(),{onRequestAbortHookRunner:jMn,lifecycleHooks:Yat,preParsingHookRunner:HMn,onTimeoutHookRunner:qMn,onRequestHookRunner:BMn}=ZS(),{normalizeSchema:zMn}=NM(),{parseHeadOnSendHandlers:GMn}=Wat(),{compileSchemasForValidation:VMn,compileSchemasForSerialization:WMn}=Sce(),{FST_ERR_SCH_VALIDATION_BUILD:KMn,FST_ERR_SCH_SERIALIZATION_BUILD:YMn,FST_ERR_DUPLICATED_ROUTE:ZMn,FST_ERR_INVALID_URL:JMn,FST_ERR_HOOK_INVALID_HANDLER:Zat,FST_ERR_ROUTE_OPTIONS_NOT_OBJ:XMn,FST_ERR_ROUTE_DUPLICATED_HANDLER:QMn,FST_ERR_ROUTE_HANDLER_NOT_FN:Jat,FST_ERR_ROUTE_MISSING_HANDLER:$Mn,FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:eDn,FST_ERR_ROUTE_METHOD_INVALID:tDn,FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:nDn,FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:rDn,FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:iDn,FST_ERR_HANDLER_TIMEOUT:sDn,FST_ERR_HOOK_INVALID_ASYNC_HANDLER:xde}=Ko(),{kRoutePrefix:oDn,kSupportedHTTPMethods:Nde,kLogLevel:aDn,kLogSerializers:Xat,kHooks:Qat,kSchemaController:cDn,kOptions:$at,kReplySerializerDefault:Ode,kReplyIsError:uct,kRequestPayloadStream:uDn,kDisableRequestLogging:ect,kSchemaErrorFormatter:lDn,kErrorHandler:tct,kHasBeenDecorated:nct,kRequestAcceptVersion:Pde,kRouteByFastify:dDn,kRouteContext:rct,kRequestSignal:fDn,kTimeoutTimer:ict,kOnAbort:pDn}=$s(),{buildErrorHandler:hDn}=CM(),{createChildLogger:mDn}=PM(),{getGenReqId:gDn}=X4(),{FSTDEP022:yDn}=Lk(),sct=["allowUnsafeRegex","buildPrettyMeta","caseSensitive","constraints","defaultRoute","ignoreDuplicateSlashes","ignoreTrailingSlash","maxParamLength","onBadUrl","querystringParser","useSemicolonDelimiter"];function SDn(e){let t=UMn(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 JMn(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 XMn(A,x);if(k.handler)throw typeof k.handler=="function"?new QMn(A,x):new Jat(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 $Mn(k.method,P);if(k.errorHandler!==void 0&&typeof k.errorHandler!="function")throw new Jat(k.method,P);lct(k.bodyLimit),_Dn(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[aDn],(this[Xat]||k.logSerializers)&&(k.logSerializers=Object.assign(Object.create(this[Xat]),k.logSerializers)),k.attachValidation==null&&(k.attachValidation=!1),Q===!1)for(let K of this[Qat].onRoute)K.call(this,k);for(let K of Yat)if(k&&K in k){if(Array.isArray(k[K]))for(let ee of k[K]){if(typeof ee!="function")throw new Zat(K,Object.prototype.toString.call(ee));if(K==="onSend"||K==="preSerialization"||K==="onError"||K==="preParsing"){if(ee.constructor.name==="AsyncFunction"&&ee.length===4)throw new xde}else if(K==="onRequestAbort"){if(ee.constructor.name==="AsyncFunction"&&ee.length!==1)throw new xde}else if(ee.constructor.name==="AsyncFunction"&&ee.length===3)throw new xde}else if(k[K]!==void 0&&typeof k[K]!="function")throw new Zat(K,Object.prototype.toString.call(k[K]))}let V=k.constraints||{},U={...k.config,url:F,method:k.method},M=new FMn({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[Ode],validatorCompiler:k.validatorCompiler,serializerCompiler:k.serializerCompiler,exposeHeadRoute:N,prefixTrailingSlash:k.prefixTrailingSlash||"both",server:this,isFastify:B,handlerTimeout:k.handlerTimeout}),H=t.findRoute("HEAD",k.url,V)!==null;try{t.on(k.method,k.url,{constraints:V},R,M)}catch(K){if(!M[dDn])throw K.message.includes(`Method '${k.method}' already declared for route`)?new ZMn(k.method,k.url):K}if(this.after((K,ee)=>{M.errorHandler=k.errorHandler?hDn(this[tct],k.errorHandler):this[tct],M._parserOptions.limit=k.bodyLimit||null,M.logLevel=k.logLevel,M.logSerializers=k.logSerializers,M.attachValidation=k.attachValidation,M[Ode]=this[Ode],M.schemaErrorFormatter=k.schemaErrorFormatter||this[lDn]||M.schemaErrorFormatter,n.once("preReady",()=>{for(let se of Yat){let Le=this[Qat][se].concat(k[se]||[]).map(Ae=>Ae.bind(this));M[se]=Le.length?Le:null}for(;!M.Request[nct]&&M.Request.parent;)M.Request=M.Request.parent;for(;!M.Reply[nct]&&M.Reply.parent;)M.Reply=M.Reply.parent;if(r.setContext(this,M),k.schema){M.schema=zMn(M.schema,this.initialConfig);let se=this[cDn],Le=k.schema.body||k.schema.headers||k.schema.querystring||k.schema.params;!k.validatorCompiler&&Le&&se.setupValidator(this[$at]);try{let Ae=typeof k?.validatorCompiler=="function"||se.isCustomValidatorCompiler;VMn(M,k.validatorCompiler||se.validatorCompiler,Ae)}catch(Ae){throw new KMn(k.method,F,Ae.message)}k.schema.response&&!k.serializerCompiler&&se.setupSerializer(this[$at]);try{WMn(M,k.serializerCompiler||se.serializerCompiler)}catch(Ae){throw new YMn(k.method,F,Ae.message)}}}),ee(K)}),N&&C&&!L&&!H){let K=GMn(G.onSend);S.call(this,{method:"HEAD",url:q,options:{...G,onSend:K},isFastify:!0})}}}function R(A,x,k,P,N){let C=gDn(P.server,A),L={level:P.logLevel};P.logSerializers&&(L.serializers=P.logSerializers);let G=mDn(P,i,A,C,L);if(G[ect]=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",vDn.bind({keepAliveConnections:h,socket:A.socket}))),A.headers[Pde]!==void 0&&(A.headers["accept-version"]=A.headers[Pde],A.headers[Pde]=void 0);let $=new P.Request(C,k,A,N,G,P),q=new P.Reply(x,$,G),Q=u?u($):c;G[ect]=Q,Q===!1&&G.info({req:$},"incoming request");let B=P.handlerTimeout;if(B>0){let F=new AbortController;$[fDn]=F,$[ict]=setTimeout(()=>{if(!q.sent){let U=new sDn(B,P.config?.url);F.abort(U),q[uct]=!0,q.send(U)}},B);let V=()=>{F.signal.aborted||F.abort(),clearTimeout($[ict])};A.on("close",V),$[pDn]=V}(s===!0||P.onResponse!==null||B>0)&&o(q),P.onRequest!==null?BMn(P.onRequest,$,q,cct):cct(null,$,q),P.onRequestAbort!==null&&A.on("close",()=>{A.aborted&&jMn(P.onRequestAbort,$,bDn.bind(null,q))}),P.onTimeout!==null&&($.raw.socket._meta||$.raw.socket.on("timeout",EDn),$.raw.socket._meta={context:P,request:$,reply:q})}}function bDn(e,t){t&&e.log.error({err:t},"onRequestAborted hook failed")}function EDn(){let{context:e,request:t,reply:n}=this._meta;qMn(e.onTimeout,t,n,RDn)}function oct(e){if(typeof e!="string")throw new tDn;if(e=e.toUpperCase(),!this[Nde].bodyless.has(e)&&!this[Nde].bodywith.has(e))throw new eDn(e);return e}function act(e,t,n){if(this[Nde].bodyless.has(e)&&n?.body)throw new nDn(e,t)}function lct(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new rDn(e)}function _Dn(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new iDn(e)}function cct(e,t,n){if(n.sent!==!0){if(e!=null){n[uct]=!0,n.send(e);return}t[uDn]=t.raw,t[rct].preParsing!==null?HMn(t[rct].preParsing,t,n,Kat.bind(t.server)):Kat.call(t.server,null,t,n)}}function TDn(e,t){let n=e.routerOptions==null?Object.create(null):Object.assign(Object.create(null),e.routerOptions),r=sct.filter(i=>Object.hasOwn(e,i));r.length>0&&yDn(r.join(", "));for(let i of sct)Object.hasOwn(n,i)||(n[i]=e[i]??t[i]);return n}function vDn(){this.keepAliveConnections.delete(this.socket)}function RDn(){}dct.exports={buildRouting:SDn,validateBodyLimitOption:lct,buildRouterOptions:TDn}});var bct=w((RYr,Sct)=>{"use strict";var ADn=kde(),pct=m4(),hct=_4(),wDn=T4(),{kRoutePrefix:kDn,kCanSetNotFoundHandler:fD,kFourOhFourLevelInstance:pD,kFourOhFourContext:xh,kHooks:IDn,kErrorHandler:mct}=$s(),{lifecycleHooks:xDn}=ZS(),{buildErrorHandler:ODn}=CM(),{FST_ERR_NOT_FOUND:PDn}=Ko(),{createChildLogger:gct}=PM(),{getGenReqId:yct}=X4();function NDn(e){let{logger:t,disableRequestLogging:n}=e,r=ADn({onBadUrl:a(),defaultRoute:d}),i=null;return{router:r,setNotFoundHandler:u,setContext:c,arrange404:s};function s(f){f[pD]=f,f[fD]=!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[pD][xh],y=yct(g.server,h),b=gct(g,t,h,y),S=new hct(y,null,h,null,b,g),E=new pct(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[fD]===void 0&&(this[fD]=!0),this[xh]===void 0&&(this[xh]=null);let g=this,y=this[kDn]||"/";if(this[fD]===!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[pD][fD]=!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 wDn({schema:p.schema,handler:h,config:p.config||{},server:this});if(m.once("preReady",()=>{let b=this[xh];for(let S of xDn){let E=this[IDn][S].concat(p[S]||[]).map(_=>_.bind(this));b[S]=E.length?E:null}b.errorHandler=p.errorHandler?ODn(this[mct],p.errorHandler):this[mct]}),this[xh]!==null&&f==="/"){Object.assign(this[xh],y);return}this[pD][xh]=y,r.all(f+(f.endsWith("/")?"*":"/*"),g,y),r.all(f,g,y)}function d(f,p){let h=this[pD][xh],m=yct(h.server,f),g=gct(h,t,f,m);g.info({req:f},"incoming request");let y=new hct(m,null,f,null,g,h),b=new pct(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 PDn)}}Sct.exports=NDn});var Ect=w((AYr,yK)=>{"use strict";yK.exports=Bn;yK.exports.default=Bn;var CDn={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:{}}}}}},MDn=Object.prototype.hasOwnProperty,DDn=new RegExp("idle","u");function Bn(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)MDn.call(CDn.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 Bn.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 Bn.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"&&!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&&(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++,Bn.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 Bn.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 Bn.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 Bn.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 Bn.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 Bn.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 Bn.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 H;if(H===void 0)if(U==="false"||U===0||U===null)H=!1;else if(U==="true"||U===1)H=!0;else return Bn.errors=[{instancePath:t+"/http2",schemaPath:"#/properties/http2/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;H!==void 0&&(U=H,e!==void 0&&(e.http2=H))}var a=M===o}else var a=!0;if(a){if(e.https!==void 0){let U=e.https,M=o,j=o,H=!0,K=o,ee=o,se=o,Le=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 kt={};s===null?s=[kt]:s.push(kt),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 kt={};s===null?s=[kt]:s.push(kt),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 Un={};s===null?s=[Un]:s.push(Un),o++}else{let Un=o;for(let dr in U)dr!=="allowHTTP1"&&delete U[dr];if(Un===o&&U.allowHTTP1!==void 0){let dr=U.allowHTTP1;if(typeof dr!="boolean"){let sn;if(sn===void 0)if(dr==="false"||dr===0||dr===null)sn=!1;else if(dr==="true"||dr===1)sn=!0;else{let fr={};s===null?s=[fr]:s.push(fr),o++}sn!==void 0&&(dr=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=Le,s!==null&&(Le?s.length=Le:s=null);else{let _e={};s===null?s=[_e]:s.push(_e),o++}var l=se===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=K===o;if(o=j,s!==null&&(j?s.length=j:s=null),d){let _e=o;e.https=!0;var d=_e===o;H=d}if(!H){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++,Bn.errors=s,!1}var a=M===o}else var a=!0;if(a){let U=e.ignoreTrailingSlash,M=o;if(typeof U!="boolean"){let H;if(H===void 0)if(U==="false"||U===0||U===null)H=!1;else if(U==="true"||U===1)H=!0;else return Bn.errors=[{instancePath:t+"/ignoreTrailingSlash",schemaPath:"#/properties/ignoreTrailingSlash/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;H!==void 0&&(U=H,e!==void 0&&(e.ignoreTrailingSlash=H))}var a=M===o;if(a){let H=e.ignoreDuplicateSlashes,K=o;if(typeof H!="boolean"){let se;if(se===void 0)if(H==="false"||H===0||H===null)se=!1;else if(H==="true"||H===1)se=!0;else return Bn.errors=[{instancePath:t+"/ignoreDuplicateSlashes",schemaPath:"#/properties/ignoreDuplicateSlashes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;se!==void 0&&(H=se,e!==void 0&&(e.ignoreDuplicateSlashes=se))}var a=K===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 Bn.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 de=typeof z,_e;if(_e===void 0)if(de=="number"||de=="boolean")_e=""+z;else if(z===null)_e="";else return Bn.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 de=e.onConstructorPoisoning,_e=o;if(typeof de!="string"){let Ue=typeof de,Un;if(Un===void 0)if(Ue=="number"||Ue=="boolean")Un=""+de;else if(de===null)Un="";else return Bn.errors=[{instancePath:t+"/onConstructorPoisoning",schemaPath:"#/properties/onConstructorPoisoning/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Un!==void 0&&(de=Un,e!==void 0&&(e.onConstructorPoisoning=Un))}var a=_e===o;if(a){let Ue=e.pluginTimeout,Un=o;if(!(typeof Ue=="number"&&!(Ue%1)&&!isNaN(Ue)&&isFinite(Ue))){let sn=typeof Ue,fr;if(fr===void 0)if(sn==="boolean"||Ue===null||sn==="string"&&Ue&&Ue==+Ue&&!(Ue%1))fr=+Ue;else return Bn.errors=[{instancePath:t+"/pluginTimeout",schemaPath:"#/properties/pluginTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;fr!==void 0&&(Ue=fr,e!==void 0&&(e.pluginTimeout=fr))}var a=Un===o;if(a){let sn=e.requestIdHeader,fr=o,nl=o,As=!1,lE=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=lE===o;if(As=As||f,!As){let Ii=o;if(typeof sn!="string"){let ly=typeof sn,Rr;if(Rr===void 0)if(ly=="number"||ly=="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++,Bn.errors=s,!1}var a=fr===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 Bn.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 Bn.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 Bn.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,ne=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 Bn.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=ne===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 Bn.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 Bn.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,dE;if(dE===void 0)if(Rp==="boolean"||xi===null||Rp==="string"&&xi&&xi==+xi&&!(xi%1))dE=+xi;else return Bn.errors=[{instancePath:t+"/routerOptions/maxParamLength",schemaPath:"#/properties/routerOptions/properties/maxParamLength/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;dE!==void 0&&(xi=dE,Se!==void 0&&(Se.maxParamLength=dE))}var p=vp===o;if(p){let Rp=Se.allowUnsafeRegex,dE=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 Bn.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=dE===o;if(p){let au=Se.useSemicolonDelimiter,aMt=o;if(typeof au!="boolean"){let uR;if(uR===void 0)if(au==="false"||au===0||au===null)uR=!1;else if(au==="true"||au===1)uR=!0;else return Bn.errors=[{instancePath:t+"/routerOptions/useSemicolonDelimiter",schemaPath:"#/properties/routerOptions/properties/useSemicolonDelimiter/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;uR!==void 0&&(au=uR,Se!==void 0&&(Se.useSemicolonDelimiter=uR))}var p=aMt===o}}}}}else return Bn.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 Bn.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 Hl=dn.name;if(typeof Hl!="string"){let xi=typeof Hl,vp;if(vp===void 0)if(xi=="number"||xi=="boolean")vp=""+Hl;else if(Hl===null)vp="";else return Bn.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&&(Hl=vp,dn!==void 0&&(dn.name=vp))}}}else return Bn.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 Bn.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 Bn.errors=[{instancePath:t,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;return Bn.errors=s,o===0}yK.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 _ct=w((wYr,bK)=>{"use strict";var SK=Ect(),LDn=n4()({circles:!0,proto:!1}),{FST_ERR_INIT_OPTS_INVALID:UDn}=Ko();function FDn(e){let t=LDn(e);if(!SK(t)){let n=new UDn(JSON.stringify(SK.errors.map(r=>r.message)));throw n.errors=SK.errors,n}return Cde(t)}function Cde(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"?Cde(r):r)}return Object.freeze(e)}bK.exports=FDn;bK.exports.defaultInitOptions=SK.defaultInitOptions;bK.exports.utils={deepFreezeObject:Cde}});var Oct=w((kYr,xct)=>{"use strict";var{kAvvioBoot:jDn,kChildren:Tct,kRoutePrefix:vct,kLogLevel:Rct,kLogSerializers:Mde,kHooks:Dde,kSchemaController:dI,kContentTypeParser:Act,kReply:wct,kRequest:kct,kFourOhFour:HDn,kPluginNameChain:Ict,kErrorHandlerAlreadySet:qDn}=$s(),BDn=m4(),zDn=_4(),GDn=jle(),VDn=que(),{buildHooks:WDn}=ZS(),hD=lde();xct.exports=function(t,n,r){let i=hD.registerPlugin.call(t,n),s=hD.getPluginName(n)||hD.getFuncPreview(n);if(i)return t[Ict].push(s),t;let o=Object.create(t);t[Tct].push(o),o.ready=t[jDn].bind(o),o[Tct]=[],o[wct]=BDn.buildReply(o[wct]),o[kct]=zDn.buildRequest(o[kct]),o[Act]=VDn.helpers.buildContentTypeParser(o[Act]),o[Dde]=WDn(o[Dde]),o[vct]=KDn(o[vct],r.prefix),o[Rct]=r.logLevel||o[Rct],o[dI]=GDn.buildSchemaController(t[dI]),o.getSchema=o[dI].getSchema.bind(o[dI]),o.getSchemas=o[dI].getSchemas.bind(o[dI]),o[hD.kRegisteredPlugins]=Object.create(o[hD.kRegisteredPlugins]),o[Ict]=[s],o[qDn]=!1,(o[Mde]||r.logSerializers)&&(o[Mde]=Object.assign(Object.create(o[Mde]),r.logSerializers)),r.prefix&&o[HDn].arrange404(o);for(let a of o[Dde].onRegister)a.call(t,o,r);return o};function KDn(e,t){return t?(e.endsWith("/")&&t[0]==="/"?t=t.slice(1):t[0]!=="/"&&(t="/"+t),e+t):e}});var Dct=w(Oh=>{"use strict";Object.defineProperty(Oh,"__esModule",{value:!0});Oh.parseCookie=Cct;Oh.parse=Cct;Oh.stringifyCookie=$Dn;Oh.stringifySetCookie=EK;Oh.serialize=EK;Oh.parseSetCookie=eLn;Oh.stringifySetCookie=EK;Oh.serialize=EK;var Pct=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,Nct=/^[\u0021-\u003A\u003C-\u007E]*$/,YDn=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,ZDn=/^[\u0020-\u003A\u003D-\u007E]*$/,JDn=/^-?\d+$/,XDn=Object.prototype.toString,QDn=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function Cct(e,t){let n=new QDn,r=e.length;if(r<2)return n;let i=t?.decode||Mct,s=0;do{let o=Ude(e,s,r);if(o===-1)break;let a=Lde(e,s,r);if(o>a){s=e.lastIndexOf(";",o-1)+1;continue}let c=ob(e,s,o);n[c]===void 0&&(n[c]=i(ob(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 Mct(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function tLn(e){return XDn.call(e)==="[object Date]"}});var Uct=w((xYr,_K)=>{"use strict";var{format:Fde}=Y("node:util");function nLn(e){return Lct({...e,name:"DeprecationWarning"})}function Lct({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=Fde(n,o,a,c):o&&a?u=Fde(n,o,a):o?u=Fde(n,o):u=n,u},s}var jde={createWarning:Lct,createDeprecation:nLn};_K.exports=jde;_K.exports.default=jde;_K.exports.processWarning=jde});var Hct=w((OYr,jct)=>{"use strict";var{URL:Fct}=Y("node:url"),Hde="http://localhost";jct.exports=function(t,n){(typeof t=="string"||Object.prototype.toString.call(t)==="[object String]")&&t.startsWith("//")&&(t=Hde+t);let r=typeof t=="object"?Object.assign(new Fct(Hde),t):new Fct(t,Hde);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 qct=w((PYr,qde)=>{"use strict";var{randomUUID:rLn}=Y("node:crypto"),{Readable:iLn}=Y("node:stream"),fI;function sLn(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 oLn(e){fI=fI??new TextEncoder;let t=`----formdata-${rLn()}`,n=`--${t}\r +`))}};Tat.exports=Tde});var Aat=w((mYr,Rat)=>{"use strict";var AMn=vat(),hK={STATIC:0,PARAMETRIC:1,WILDCARD:2},uK=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 AMn),this.isLeafNode=!0,this.routes.push(t),this.handlerStorage.addHandler(n,t)}},lK=class extends uK{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 fK(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 pK,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 wMn=Y("node:assert");function dD(){if(!(this instanceof dD))return new dD;this.store=new Map,this.maxMajor=0,this.maxMinors={},this.maxPatches={}}dD.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};dD.prototype.get=function(e){return this.store.get(e)};wat.exports={name:"version",mustMatchWhenDerived:!0,storage:dD,validate(e){wMn(typeof e=="string","Version should be a string")}}});var xat=w((yYr,Iat)=>{"use strict";var kMn=Y("node:assert");function IMn(){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)}}}Iat.exports={name:"host",mustMatchWhenDerived:!1,storage:IMn,validate(e){kMn(typeof e=="string"||Object.prototype.toString.call(e)==="[object RegExp]","Host should be a string or a RegExp")}}});var Pat=w((SYr,Oat)=>{"use strict";var xMn=kat(),OMn=xat(),vde=Y("node:assert"),Rde=class{constructor(t){if(this.strategies={version:xMn,host:OMn},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(vde(typeof t.name=="string"&&t.name!=="","strategy.name is required."),vde(t.storage&&typeof t.storage=="function","strategy.storage function is required."),vde(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)}};Oat.exports=Rde});var Cat=w((bYr,Nat)=>{"use strict";var PMn=["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"];Nat.exports=PMn});var Lat=w((EYr,Dat)=>{"use strict";function Mat(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 NMn(e,t){let n=!1,r=!1,i="";for(let o=1;o{"use strict";var Ls=Y("node:assert"),MMn=Bot(),lI=lat(),kde=OC(),{prettyPrintTree:DMn}=Sat(),{StaticNode:Uat,NODE_TYPES:Fat}=Aat(),LMn=Pat(),uI=Cat(),Ade=aK(),{safeDecodeURI:jat,safeDecodeURIComponent:wde}=Lat(),Hat=/^https?:\/\/.*?\//,ST=/(\/:[^/()]*?)\?(\/?)/,qat=/[.*+?^${}()|[\]\\]/g,Bat=/\/\/+/g;if(!lI(Hat))throw new Error("the FULL_PATH_REGEXP is not safe, update this module");if(!lI(ST))throw new Error("the OPTIONAL_PARAM_REGEXP is not safe, update this module");if(!lI(qat))throw new Error("the ESCAPE_REGEXP is not safe, update this module");if(!lI(Bat))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=UMn,e.querystringParser?(Ls(typeof e.querystringParser=="function","querystringParser must be a function"),this.querystringParser=e.querystringParser):this.querystringParser=t=>t.length===0?{}:MMn.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(ST);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(ST,"$1$2"),l=n.replace(ST,"$2")||"/";this.on(t,u,r,i,s),this.on(t,l,r,i,s);return}let a=n;this.ignoreDuplicateSlashes&&(n=mK(n)),this.ignoreTrailingSlash&&(n=gK(n));let c=Array.isArray(t)?t:[t];for(let u of c)Ls(typeof u=="string","Method should be a string"),Ls(uI.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 Uat("/"));let a=n;if(a==="*"&&this.trees[t].prefix.length!==0){let f=this.trees[t];this.trees[t]=new Uat(""),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=Vat(a,E),C=a.slice(E,N+1);this.allowUnsafeRegex||Ls(lI(new RegExp(C)),`The regex '${C}' is not safe!`),b.push(Gat(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(ST);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(ST,"$1$2"),a=n.replace(ST,"$2");this.off(t,o,r),this.off(t,a,r);return}this.ignoreDuplicateSlashes&&(n=mK(n)),this.ignoreTrailingSlash&&(n=gK(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(uI.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)||!kde(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(Hat,"/")),this.ignoreDuplicateSlashes&&(n=mK(n));let s,o,a;try{s=jat(n,this.useSemicolonDelimiter),n=s.path,o=s.querystring,a=s.shouldDecodeParam}catch{return this._onBadUrl(n)}this.ignoreTrailingSlash&&(n=gK(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===Fat.STATIC){l+=i.prefix.length;continue}if(i.kind===Fat.WILDCARD){let y=c.slice(l);a&&(y=wde(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=wde(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[Ade.name]=Ade;let o=new _i({...this._opts,constraints:s}),a=this.routes.map(c=>{let u={...c.opts.constraints,[Ade.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)":DMn(n,e)};for(let e in uI){if(!uI.hasOwnProperty(e))continue;let t=uI[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(uI,e,t,n)};_i.sanitizeUrlPath=function(t,n){let r=jat(t,n);return r.shouldDecodeParam?wde(r.path):r.path};_i.removeDuplicateSlashes=mK;_i.trimLastSlash=gK;Wat.exports=_i;function zat(e){return e.replace(qat,"\\$&")}function mK(e){return e.indexOf("//")!==-1?e.replace(Bat,"/"):e}function gK(e){return e.length>1&&e.charCodeAt(e.length-1)===47?e.slice(0,-1):e}function Gat(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 Vat(e,t){let n=1;for(;t{"use strict";function xde(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?xde:Array.isArray(e)?[...e,xde]:[e,xde]}Kat.exports={parseHeadOnSendHandlers:FMn}});var hct=w((vYr,pct)=>{"use strict";var jMn=Ide(),HMn=T4(),Zat=vce(),{onRequestAbortHookRunner:qMn,lifecycleHooks:Jat,preParsingHookRunner:BMn,onTimeoutHookRunner:zMn,onRequestHookRunner:GMn}=ZS(),{normalizeSchema:VMn}=NM(),{parseHeadOnSendHandlers:WMn}=Yat(),{compileSchemasForValidation:KMn,compileSchemasForSerialization:YMn}=bce(),{FST_ERR_SCH_VALIDATION_BUILD:ZMn,FST_ERR_SCH_SERIALIZATION_BUILD:JMn,FST_ERR_DUPLICATED_ROUTE:XMn,FST_ERR_INVALID_URL:QMn,FST_ERR_HOOK_INVALID_HANDLER:Xat,FST_ERR_ROUTE_OPTIONS_NOT_OBJ:$Mn,FST_ERR_ROUTE_DUPLICATED_HANDLER:eDn,FST_ERR_ROUTE_HANDLER_NOT_FN:Qat,FST_ERR_ROUTE_MISSING_HANDLER:tDn,FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:nDn,FST_ERR_ROUTE_METHOD_INVALID:rDn,FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:iDn,FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:sDn,FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:oDn,FST_ERR_HANDLER_TIMEOUT:aDn,FST_ERR_HOOK_INVALID_ASYNC_HANDLER:Ode}=Ko(),{kRoutePrefix:cDn,kSupportedHTTPMethods:Cde,kLogLevel:uDn,kLogSerializers:$at,kHooks:ect,kSchemaController:lDn,kOptions:tct,kReplySerializerDefault:Pde,kReplyIsError:dct,kRequestPayloadStream:dDn,kDisableRequestLogging:nct,kSchemaErrorFormatter:fDn,kErrorHandler:rct,kHasBeenDecorated:ict,kRequestAcceptVersion:Nde,kRouteByFastify:pDn,kRouteContext:sct,kRequestSignal:hDn,kTimeoutTimer:oct,kOnAbort:mDn}=$s(),{buildErrorHandler:gDn}=CM(),{createChildLogger:yDn}=PM(),{getGenReqId:SDn}=X4(),{FSTDEP022:bDn}=Lk(),act=["allowUnsafeRegex","buildPrettyMeta","caseSensitive","constraints","defaultRoute","ignoreDuplicateSlashes","ignoreTrailingSlash","maxParamLength","onBadUrl","querystringParser","useSemicolonDelimiter"];function EDn(e){let t=jMn(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 QMn(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 $Mn(A,x);if(k.handler)throw typeof k.handler=="function"?new eDn(A,x):new Qat(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 tDn(k.method,P);if(k.errorHandler!==void 0&&typeof k.errorHandler!="function")throw new Qat(k.method,P);fct(k.bodyLimit),vDn(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[uDn],(this[$at]||k.logSerializers)&&(k.logSerializers=Object.assign(Object.create(this[$at]),k.logSerializers)),k.attachValidation==null&&(k.attachValidation=!1),Q===!1)for(let K of this[ect].onRoute)K.call(this,k);for(let K of Jat)if(k&&K in k){if(Array.isArray(k[K]))for(let ee of k[K]){if(typeof ee!="function")throw new Xat(K,Object.prototype.toString.call(ee));if(K==="onSend"||K==="preSerialization"||K==="onError"||K==="preParsing"){if(ee.constructor.name==="AsyncFunction"&&ee.length===4)throw new Ode}else if(K==="onRequestAbort"){if(ee.constructor.name==="AsyncFunction"&&ee.length!==1)throw new Ode}else if(ee.constructor.name==="AsyncFunction"&&ee.length===3)throw new Ode}else if(k[K]!==void 0&&typeof k[K]!="function")throw new Xat(K,Object.prototype.toString.call(k[K]))}let V=k.constraints||{},U={...k.config,url:F,method:k.method},M=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[Pde],validatorCompiler:k.validatorCompiler,serializerCompiler:k.serializerCompiler,exposeHeadRoute:N,prefixTrailingSlash:k.prefixTrailingSlash||"both",server:this,isFastify:B,handlerTimeout:k.handlerTimeout}),H=t.findRoute("HEAD",k.url,V)!==null;try{t.on(k.method,k.url,{constraints:V},R,M)}catch(K){if(!M[pDn])throw K.message.includes(`Method '${k.method}' already declared for route`)?new XMn(k.method,k.url):K}if(this.after((K,ee)=>{M.errorHandler=k.errorHandler?gDn(this[rct],k.errorHandler):this[rct],M._parserOptions.limit=k.bodyLimit||null,M.logLevel=k.logLevel,M.logSerializers=k.logSerializers,M.attachValidation=k.attachValidation,M[Pde]=this[Pde],M.schemaErrorFormatter=k.schemaErrorFormatter||this[fDn]||M.schemaErrorFormatter,n.once("preReady",()=>{for(let se of Jat){let Le=this[ect][se].concat(k[se]||[]).map(Ae=>Ae.bind(this));M[se]=Le.length?Le:null}for(;!M.Request[ict]&&M.Request.parent;)M.Request=M.Request.parent;for(;!M.Reply[ict]&&M.Reply.parent;)M.Reply=M.Reply.parent;if(r.setContext(this,M),k.schema){M.schema=VMn(M.schema,this.initialConfig);let se=this[lDn],Le=k.schema.body||k.schema.headers||k.schema.querystring||k.schema.params;!k.validatorCompiler&&Le&&se.setupValidator(this[tct]);try{let Ae=typeof k?.validatorCompiler=="function"||se.isCustomValidatorCompiler;KMn(M,k.validatorCompiler||se.validatorCompiler,Ae)}catch(Ae){throw new ZMn(k.method,F,Ae.message)}k.schema.response&&!k.serializerCompiler&&se.setupSerializer(this[tct]);try{YMn(M,k.serializerCompiler||se.serializerCompiler)}catch(Ae){throw new JMn(k.method,F,Ae.message)}}}),ee(K)}),N&&C&&!L&&!H){let K=WMn(G.onSend);S.call(this,{method:"HEAD",url:q,options:{...G,onSend:K},isFastify:!0})}}}function R(A,x,k,P,N){let C=SDn(P.server,A),L={level:P.logLevel};P.logSerializers&&(L.serializers=P.logSerializers);let G=yDn(P,i,A,C,L);if(G[nct]=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",ADn.bind({keepAliveConnections:h,socket:A.socket}))),A.headers[Nde]!==void 0&&(A.headers["accept-version"]=A.headers[Nde],A.headers[Nde]=void 0);let $=new P.Request(C,k,A,N,G,P),q=new P.Reply(x,$,G),Q=u?u($):c;G[nct]=Q,Q===!1&&G.info({req:$},"incoming request");let B=P.handlerTimeout;if(B>0){let F=new AbortController;$[hDn]=F,$[oct]=setTimeout(()=>{if(!q.sent){let U=new aDn(B,P.config?.url);F.abort(U),q[dct]=!0,q.send(U)}},B);let V=()=>{F.signal.aborted||F.abort(),clearTimeout($[oct])};A.on("close",V),$[mDn]=V}(s===!0||P.onResponse!==null||B>0)&&o(q),P.onRequest!==null?GMn(P.onRequest,$,q,lct):lct(null,$,q),P.onRequestAbort!==null&&A.on("close",()=>{A.aborted&&qMn(P.onRequestAbort,$,_Dn.bind(null,q))}),P.onTimeout!==null&&($.raw.socket._meta||$.raw.socket.on("timeout",TDn),$.raw.socket._meta={context:P,request:$,reply:q})}}function _Dn(e,t){t&&e.log.error({err:t},"onRequestAborted hook failed")}function TDn(){let{context:e,request:t,reply:n}=this._meta;zMn(e.onTimeout,t,n,wDn)}function cct(e){if(typeof e!="string")throw new rDn;if(e=e.toUpperCase(),!this[Cde].bodyless.has(e)&&!this[Cde].bodywith.has(e))throw new nDn(e);return e}function uct(e,t,n){if(this[Cde].bodyless.has(e)&&n?.body)throw new iDn(e,t)}function fct(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new sDn(e)}function vDn(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new oDn(e)}function lct(e,t,n){if(n.sent!==!0){if(e!=null){n[dct]=!0,n.send(e);return}t[dDn]=t.raw,t[sct].preParsing!==null?BMn(t[sct].preParsing,t,n,Zat.bind(t.server)):Zat.call(t.server,null,t,n)}}function RDn(e,t){let n=e.routerOptions==null?Object.create(null):Object.assign(Object.create(null),e.routerOptions),r=act.filter(i=>Object.hasOwn(e,i));r.length>0&&bDn(r.join(", "));for(let i of act)Object.hasOwn(n,i)||(n[i]=e[i]??t[i]);return n}function ADn(){this.keepAliveConnections.delete(this.socket)}function wDn(){}pct.exports={buildRouting:EDn,validateBodyLimitOption:fct,buildRouterOptions:RDn}});var _ct=w((RYr,Ect)=>{"use strict";var kDn=Ide(),mct=m4(),gct=_4(),IDn=T4(),{kRoutePrefix:xDn,kCanSetNotFoundHandler:fD,kFourOhFourLevelInstance:pD,kFourOhFourContext:xh,kHooks:ODn,kErrorHandler:yct}=$s(),{lifecycleHooks:PDn}=ZS(),{buildErrorHandler:NDn}=CM(),{FST_ERR_NOT_FOUND:CDn}=Ko(),{createChildLogger:Sct}=PM(),{getGenReqId:bct}=X4();function MDn(e){let{logger:t,disableRequestLogging:n}=e,r=kDn({onBadUrl:a(),defaultRoute:d}),i=null;return{router:r,setNotFoundHandler:u,setContext:c,arrange404:s};function s(f){f[pD]=f,f[fD]=!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[pD][xh],y=bct(g.server,h),b=Sct(g,t,h,y),S=new gct(y,null,h,null,b,g),E=new mct(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[fD]===void 0&&(this[fD]=!0),this[xh]===void 0&&(this[xh]=null);let g=this,y=this[xDn]||"/";if(this[fD]===!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[pD][fD]=!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 IDn({schema:p.schema,handler:h,config:p.config||{},server:this});if(m.once("preReady",()=>{let b=this[xh];for(let S of PDn){let E=this[ODn][S].concat(p[S]||[]).map(_=>_.bind(this));b[S]=E.length?E:null}b.errorHandler=p.errorHandler?NDn(this[yct],p.errorHandler):this[yct]}),this[xh]!==null&&f==="/"){Object.assign(this[xh],y);return}this[pD][xh]=y,r.all(f+(f.endsWith("/")?"*":"/*"),g,y),r.all(f,g,y)}function d(f,p){let h=this[pD][xh],m=bct(h.server,f),g=Sct(h,t,f,m);g.info({req:f},"incoming request");let y=new gct(m,null,f,null,g,h),b=new mct(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 CDn)}}Ect.exports=MDn});var Tct=w((AYr,yK)=>{"use strict";yK.exports=Bn;yK.exports.default=Bn;var DDn={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,UDn=new RegExp("idle","u");function Bn(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)LDn.call(DDn.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 Bn.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 Bn.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"&&!UDn.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++,Bn.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 Bn.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 Bn.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 Bn.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 Bn.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 Bn.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 Bn.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 H;if(H===void 0)if(U==="false"||U===0||U===null)H=!1;else if(U==="true"||U===1)H=!0;else return Bn.errors=[{instancePath:t+"/http2",schemaPath:"#/properties/http2/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;H!==void 0&&(U=H,e!==void 0&&(e.http2=H))}var a=M===o}else var a=!0;if(a){if(e.https!==void 0){let U=e.https,M=o,j=o,H=!0,K=o,ee=o,se=o,Le=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 kt={};s===null?s=[kt]:s.push(kt),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 kt={};s===null?s=[kt]:s.push(kt),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 Un={};s===null?s=[Un]:s.push(Un),o++}else{let Un=o;for(let dr in U)dr!=="allowHTTP1"&&delete U[dr];if(Un===o&&U.allowHTTP1!==void 0){let dr=U.allowHTTP1;if(typeof dr!="boolean"){let sn;if(sn===void 0)if(dr==="false"||dr===0||dr===null)sn=!1;else if(dr==="true"||dr===1)sn=!0;else{let fr={};s===null?s=[fr]:s.push(fr),o++}sn!==void 0&&(dr=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=Le,s!==null&&(Le?s.length=Le:s=null);else{let _e={};s===null?s=[_e]:s.push(_e),o++}var l=se===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=K===o;if(o=j,s!==null&&(j?s.length=j:s=null),d){let _e=o;e.https=!0;var d=_e===o;H=d}if(!H){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++,Bn.errors=s,!1}var a=M===o}else var a=!0;if(a){let U=e.ignoreTrailingSlash,M=o;if(typeof U!="boolean"){let H;if(H===void 0)if(U==="false"||U===0||U===null)H=!1;else if(U==="true"||U===1)H=!0;else return Bn.errors=[{instancePath:t+"/ignoreTrailingSlash",schemaPath:"#/properties/ignoreTrailingSlash/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;H!==void 0&&(U=H,e!==void 0&&(e.ignoreTrailingSlash=H))}var a=M===o;if(a){let H=e.ignoreDuplicateSlashes,K=o;if(typeof H!="boolean"){let se;if(se===void 0)if(H==="false"||H===0||H===null)se=!1;else if(H==="true"||H===1)se=!0;else return Bn.errors=[{instancePath:t+"/ignoreDuplicateSlashes",schemaPath:"#/properties/ignoreDuplicateSlashes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;se!==void 0&&(H=se,e!==void 0&&(e.ignoreDuplicateSlashes=se))}var a=K===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 Bn.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 de=typeof z,_e;if(_e===void 0)if(de=="number"||de=="boolean")_e=""+z;else if(z===null)_e="";else return Bn.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 de=e.onConstructorPoisoning,_e=o;if(typeof de!="string"){let Ue=typeof de,Un;if(Un===void 0)if(Ue=="number"||Ue=="boolean")Un=""+de;else if(de===null)Un="";else return Bn.errors=[{instancePath:t+"/onConstructorPoisoning",schemaPath:"#/properties/onConstructorPoisoning/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Un!==void 0&&(de=Un,e!==void 0&&(e.onConstructorPoisoning=Un))}var a=_e===o;if(a){let Ue=e.pluginTimeout,Un=o;if(!(typeof Ue=="number"&&!(Ue%1)&&!isNaN(Ue)&&isFinite(Ue))){let sn=typeof Ue,fr;if(fr===void 0)if(sn==="boolean"||Ue===null||sn==="string"&&Ue&&Ue==+Ue&&!(Ue%1))fr=+Ue;else return Bn.errors=[{instancePath:t+"/pluginTimeout",schemaPath:"#/properties/pluginTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;fr!==void 0&&(Ue=fr,e!==void 0&&(e.pluginTimeout=fr))}var a=Un===o;if(a){let sn=e.requestIdHeader,fr=o,nl=o,As=!1,lE=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=lE===o;if(As=As||f,!As){let Ii=o;if(typeof sn!="string"){let ly=typeof sn,Rr;if(Rr===void 0)if(ly=="number"||ly=="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++,Bn.errors=s,!1}var a=fr===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 Bn.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 Bn.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 Bn.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,ne=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 Bn.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=ne===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 Bn.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 Bn.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,dE;if(dE===void 0)if(Rp==="boolean"||xi===null||Rp==="string"&&xi&&xi==+xi&&!(xi%1))dE=+xi;else return Bn.errors=[{instancePath:t+"/routerOptions/maxParamLength",schemaPath:"#/properties/routerOptions/properties/maxParamLength/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;dE!==void 0&&(xi=dE,Se!==void 0&&(Se.maxParamLength=dE))}var p=vp===o;if(p){let Rp=Se.allowUnsafeRegex,dE=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 Bn.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=dE===o;if(p){let au=Se.useSemicolonDelimiter,uMt=o;if(typeof au!="boolean"){let uR;if(uR===void 0)if(au==="false"||au===0||au===null)uR=!1;else if(au==="true"||au===1)uR=!0;else return Bn.errors=[{instancePath:t+"/routerOptions/useSemicolonDelimiter",schemaPath:"#/properties/routerOptions/properties/useSemicolonDelimiter/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;uR!==void 0&&(au=uR,Se!==void 0&&(Se.useSemicolonDelimiter=uR))}var p=uMt===o}}}}}else return Bn.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 Bn.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 Hl=dn.name;if(typeof Hl!="string"){let xi=typeof Hl,vp;if(vp===void 0)if(xi=="number"||xi=="boolean")vp=""+Hl;else if(Hl===null)vp="";else return Bn.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&&(Hl=vp,dn!==void 0&&(dn.name=vp))}}}else return Bn.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 Bn.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 Bn.errors=[{instancePath:t,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;return Bn.errors=s,o===0}yK.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 vct=w((wYr,bK)=>{"use strict";var SK=Tct(),FDn=n4()({circles:!0,proto:!1}),{FST_ERR_INIT_OPTS_INVALID:jDn}=Ko();function HDn(e){let t=FDn(e);if(!SK(t)){let n=new jDn(JSON.stringify(SK.errors.map(r=>r.message)));throw n.errors=SK.errors,n}return Mde(t)}function Mde(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"?Mde(r):r)}return Object.freeze(e)}bK.exports=HDn;bK.exports.defaultInitOptions=SK.defaultInitOptions;bK.exports.utils={deepFreezeObject:Mde}});var Nct=w((kYr,Pct)=>{"use strict";var{kAvvioBoot:qDn,kChildren:Rct,kRoutePrefix:Act,kLogLevel:wct,kLogSerializers:Dde,kHooks:Lde,kSchemaController:dI,kContentTypeParser:kct,kReply:Ict,kRequest:xct,kFourOhFour:BDn,kPluginNameChain:Oct,kErrorHandlerAlreadySet:zDn}=$s(),GDn=m4(),VDn=_4(),WDn=Hle(),KDn=Bue(),{buildHooks:YDn}=ZS(),hD=dde();Pct.exports=function(t,n,r){let i=hD.registerPlugin.call(t,n),s=hD.getPluginName(n)||hD.getFuncPreview(n);if(i)return t[Oct].push(s),t;let o=Object.create(t);t[Rct].push(o),o.ready=t[qDn].bind(o),o[Rct]=[],o[Ict]=GDn.buildReply(o[Ict]),o[xct]=VDn.buildRequest(o[xct]),o[kct]=KDn.helpers.buildContentTypeParser(o[kct]),o[Lde]=YDn(o[Lde]),o[Act]=ZDn(o[Act],r.prefix),o[wct]=r.logLevel||o[wct],o[dI]=WDn.buildSchemaController(t[dI]),o.getSchema=o[dI].getSchema.bind(o[dI]),o.getSchemas=o[dI].getSchemas.bind(o[dI]),o[hD.kRegisteredPlugins]=Object.create(o[hD.kRegisteredPlugins]),o[Oct]=[s],o[zDn]=!1,(o[Dde]||r.logSerializers)&&(o[Dde]=Object.assign(Object.create(o[Dde]),r.logSerializers)),r.prefix&&o[BDn].arrange404(o);for(let a of o[Lde].onRegister)a.call(t,o,r);return o};function ZDn(e,t){return t?(e.endsWith("/")&&t[0]==="/"?t=t.slice(1):t[0]!=="/"&&(t="/"+t),e+t):e}});var Uct=w(Oh=>{"use strict";Object.defineProperty(Oh,"__esModule",{value:!0});Oh.parseCookie=Dct;Oh.parse=Dct;Oh.stringifyCookie=tLn;Oh.stringifySetCookie=EK;Oh.serialize=EK;Oh.parseSetCookie=nLn;Oh.stringifySetCookie=EK;Oh.serialize=EK;var Cct=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,Mct=/^[\u0021-\u003A\u003C-\u007E]*$/,JDn=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,XDn=/^[\u0020-\u003A\u003D-\u007E]*$/,QDn=/^-?\d+$/,$Dn=Object.prototype.toString,eLn=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function Dct(e,t){let n=new eLn,r=e.length;if(r<2)return n;let i=t?.decode||Lct,s=0;do{let o=Fde(e,s,r);if(o===-1)break;let a=Ude(e,s,r);if(o>a){s=e.lastIndexOf(";",o-1)+1;continue}let c=ob(e,s,o);n[c]===void 0&&(n[c]=i(ob(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 Lct(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function rLn(e){return $Dn.call(e)==="[object Date]"}});var jct=w((xYr,_K)=>{"use strict";var{format:jde}=Y("node:util");function iLn(e){return Fct({...e,name:"DeprecationWarning"})}function Fct({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=jde(n,o,a,c):o&&a?u=jde(n,o,a):o?u=jde(n,o):u=n,u},s}var Hde={createWarning:Fct,createDeprecation:iLn};_K.exports=Hde;_K.exports.default=Hde;_K.exports.processWarning=Hde});var Bct=w((OYr,qct)=>{"use strict";var{URL:Hct}=Y("node:url"),qde="http://localhost";qct.exports=function(t,n){(typeof t=="string"||Object.prototype.toString.call(t)==="[object String]")&&t.startsWith("//")&&(t=qde+t);let r=typeof t=="object"?Object.assign(new Hct(qde),t):new Hct(t,qde);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 zct=w((PYr,Bde)=>{"use strict";var{randomUUID:sLn}=Y("node:crypto"),{Readable:oLn}=Y("node:stream"),fI;function aLn(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 cLn(e){fI=fI??new TextEncoder;let t=`----formdata-${sLn()}`,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 fI.encode(`${n}; name="${r(i(c))}"\r \r @@ -464,105 +464,105 @@ Content-Disposition: form-data`;let r=c=>c.replace(/\n/g,"%0A").replace(/\r/g,"% `);else{let l=`${n}; name="${r(i(c))}"`;u.name&&(l+=`; filename="${r(u.name)}"`),l+=`\r Content-Type: ${u.type||"application/octet-stream"}\r \r -`,yield fI.encode(l),u.stream?yield*u.stream():yield u,yield s}yield fI.encode(`--${t}--`)}return{stream:iLn.from(o()),contentType:`multipart/form-data; boundary=${t}`}}qde.exports.isFormDataLike=sLn;qde.exports.formDataToStream=oLn});var Gct=w((NYr,TK)=>{"use strict";var{Readable:Bct,addAbortSignal:aLn}=Y("node:stream"),zde=Y("node:util"),cLn=Dct(),uLn=Y("node:assert"),{createDeprecation:lLn}=Uct(),dLn=Hct(),{isFormDataLike:fLn,formDataToStream:pLn}=qct(),{EventEmitter:hLn}=Y("node:events"),mLn=lLn({name:"FastifyDeprecationLightMyRequest",code:"FST_LIGHTMYREQUEST_DEP01",message:'You are accessing "request.connection", use "request.socket" instead.'});function gLn(e){return e.port?e.host:e.hostname+(e.protocol==="https:"?":443":":80")}var Bde=class extends hLn{constructor(t){super(),this.remoteAddress=t}};function zct(e){return new t(this);function t(n){ab.call(n,{...e,Request:void 0}),Object.assign(this,n);for(let r of Object.keys(ab.prototype))this.constructor.prototype[r]=ab.prototype[r];return zde.inherits(this.constructor,e.Request),this}}function ab(e){Bct.call(this,{autoDestroy:!1});let t=dLn(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];uLn(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||gLn(t),e.cookies){let{cookies:o}=e,a=Object.keys(o).map(c=>cLn.serialize(c,o[c]));this.headers.cookie&&a.unshift(this.headers.cookie),this.headers.cookie=a.join("; ")}this.socket=new Bde(e.remoteAddress||"127.0.0.1"),Object.defineProperty(this,"connection",{get(){return mLn(),this.socket},configurable:!0});let r=e.payload||e.body||null,i=r&&typeof r.resume=="function";if(fLn(r)){let o=pLn(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&&aLn(s,this);{let o=this._lightMyRequest.payload;o?._readableState?(this._read=yLn,o.on("error",a=>{this.destroy(a)}),o.on("end",()=>{this.push(null)})):this._read=SLn}return this}function yLn(){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 SLn(){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)})}zde.inherits(ab,Bct);zde.inherits(zct,ab);ab.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")))};TK.exports=ab;TK.exports.Request=ab;TK.exports.CustomRequest=zct});var Wct=w((CYr,mD)=>{"use strict";var vK={decodeValues:!0,map:!1,silent:!1};function Gde(e){return typeof e!="string"||e in{}}function Vde(){return Object.create(null)}function Wde(e){return typeof e=="string"&&!!e.trim()}function Kde(e,t){var n=e.split(";").filter(Wde),r=n.shift(),i=bLn(r),s=i.name,o=i.value;if(t=t?Object.assign({},vK,t):vK,Gde(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=Vde();return a.name=s,a.value=o,n.forEach(function(c){var u=c.split("="),l=u.shift().trimLeft().toLowerCase();if(!Gde(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 bLn(e){var t="",n="",r=e.split("=");return r.length>1?(t=r.shift(),n=r.join("=")):n=e,{name:t,value:n}}function Vct(e,t){if(t=t?Object.assign({},vK,t):vK,!e)return t.map?Vde():[];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=Vde();return e.filter(Wde).reduce(function(i,s){var o=Kde(s,t);return o&&!Gde(o.name)&&(i[o.name]=o),i},r)}else return e.filter(Wde).map(function(i){return Kde(i,t)}).filter(Boolean)}function ELn(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}mD.exports=Vct;mD.exports.parse=Vct;mD.exports.parseString=Kde;mD.exports.splitCookiesString=ELn});var Xct=w((MYr,Jct)=>{"use strict";var gD=Y("node:http"),{Writable:_Ln,Readable:Kct,addAbortSignal:TLn}=Y("node:stream"),vLn=Y("node:util"),RLn=Wct();function cb(e,t,n){if(gD.ServerResponse.call(this,e),e._lightMyRequest?.payloadAsStream){let a=this.emit.bind(this,"drain");this._lightMyRequest={headers:null,trailers:{},stream:new Kct({read:a})};let c=e._lightMyRequest.signal;c&&TLn(c,this._lightMyRequest.stream)}else this._lightMyRequest={headers:null,trailers:{},payloadChunks:[]};this.setHeader("foo","bar"),this.removeHeader("foo"),this.assignSocket(ALn()),this._promiseCallback=typeof n=="function";let r=!1,i=a=>{if(!r){if(r=!0,this._promiseCallback)return process.nextTick(()=>t(a));process.nextTick(()=>t(null,a))}};this._lightMyRequest.onEndSuccess=i;let s=!1,o=a=>{if(r){this._lightMyRequest.stream&&!s&&(a||(a=new Error("response destroyed before completion"),a.code="LIGHT_ECONNRESET"),this._lightMyRequest.stream.destroy(a),this._lightMyRequest.stream.on("error",()=>{}));return}if(r=!0,a||(a=new Error("response destroyed before completion"),a.code="LIGHT_ECONNRESET"),this._promiseCallback)return process.nextTick(()=>n(a));process.nextTick(()=>t(a,null))};this._lightMyRequest.stream?this.once("finish",()=>{s=!0,this._lightMyRequest.stream.push(null)}):this.once("finish",()=>{let a=Yct(this);a.raw.req=e,i(a)}),this.connection.once("error",o),this.once("error",o),this.once("close",o)}vLn.inherits(cb,gD.ServerResponse);cb.prototype.setTimeout=function(e,t){return this.timeoutHandle=setTimeout(()=>{this.emit("timeout")},e),this.on("timeout",t),this};cb.prototype.writeHead=function(){let e=gD.ServerResponse.prototype.writeHead.apply(this,arguments);return Zct(this),this._lightMyRequest.stream&&this._lightMyRequest.onEndSuccess(Yct(this)),e};cb.prototype.write=function(e,t,n){return this.timeoutHandle&&clearTimeout(this.timeoutHandle),gD.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)};cb.prototype.end=function(e,t,n){e&&this.write(e,t),gD.ServerResponse.prototype.end.call(this,n),this.emit("finish"),this.destroy()};cb.prototype.destroy=function(e){this.destroyed||(this.destroyed=!0,e&&process.nextTick(()=>this.emit("error",e)),process.nextTick(()=>this.emit("close")))};cb.prototype.addTrailers=function(e){for(let t in e)this._lightMyRequest.trailers[t.toLowerCase().trim()]=e[t].toString().trim()};function Yct(e){e._lightMyRequest.headers===null&&Zct(e),wLn(e);let t={raw:{res:e},headers:e._lightMyRequest.headers,statusCode:e.statusCode,statusMessage:e.statusMessage,trailers:{},get cookies(){return RLn.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:Kct.from(e._lightMyRequest.payloadChunks)},t}function ALn(){return new _Ln({write(e,t,n){setImmediate(n)}})}function wLn(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])})}Jct.exports=cb});var Qct=w((DYr,Yde)=>{"use strict";Yde.exports=eo;Yde.exports.default=eo;var kLn={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:kLn.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 tut=w((LYr,SD)=>{"use strict";var ILn=Y("node:assert"),Zde=Gct(),RK=Xct(),wK="The dispatch function has already been invoked",$ct=Qct();function Jde(e,t,n){return n===void 0?new yD(e,t):AK(e,t,n)}function xLn(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 eut(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()}),xLn(n,()=>e.call(t,n,r))}function AK(e,t,n){if(t=typeof t=="string"?{url:t}:t,t.validate!==!1&&(ILn(typeof e=="function","dispatchFunc should be a function"),!$ct(t)))throw new Error($ct.errors.map(o=>o.message));let r=t.server||{},i=t.Request?Zde.CustomRequest:Zde;if(e.request&&e.request.app===e&&(Object.setPrototypeOf(Object.getPrototypeOf(e.request),i.prototype),Object.setPrototypeOf(Object.getPrototypeOf(e.response),RK.prototype)),typeof n=="function"){let s=new i(t),o=new RK(s,n);return eut(e,r,s,o)}else return new Promise((s,o)=>{let a=new i(t),c=new RK(a,s,o);eut(e,r,a,c)})}function yD(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=>{yD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(wK);return this.option.url=t,this.option.method=e.toUpperCase(),this}});var PLn=["body","cookies","headers","payload","query"];PLn.forEach(e=>{yD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(wK);return this.option[e]=t,this}});yD.prototype.end=function(e){if(this._hasInvoked===!0||this._promise)throw new Error(wK);if(this._hasInvoked=!0,typeof e=="function")AK(this.dispatch,this.option,e);else return this._promise=AK(this.dispatch,this.option),this._promise};Object.getOwnPropertyNames(Promise.prototype).forEach(e=>{e!=="constructor"&&(yD.prototype[e]=function(...t){if(!this._promise){if(this._hasInvoked===!0)throw new Error(wK);this._hasInvoked=!0,this._promise=AK(this.dispatch,this.option)}return this._promise[e](...t)})});function NLn(e){return e instanceof Zde||e instanceof RK||e?.constructor?.name==="_CustomLMRRequest"}SD.exports=Jde;SD.exports.default=Jde;SD.exports.inject=Jde;SD.exports.isInjection=NLn});var yut=w((UYr,vD)=>{"use strict";var CLn="5.8.5",MLn=IQe(),OK=Y("node:http"),DLn=Y("node:diagnostics_channel"),bD,{kAvvioBoot:ED,kChildren:Xde,kServerBindings:nut,kBodyLimit:LLn,kSupportedHTTPMethods:bT,kRoutePrefix:rut,kLogLevel:ULn,kLogSerializers:FLn,kHooks:Qde,kSchemaController:ub,kRequestAcceptVersion:jLn,kReplySerializerDefault:iut,kContentTypeParser:HLn,kReply:qLn,kRequest:BLn,kFourOhFour:zLn,kState:$i,kOptions:$de,kPluginNameChain:_D,kSchemaErrorFormatter:efe,kErrorHandler:kK,kKeepAliveConnections:tfe,kChildLoggerFactory:nfe,kGenReqId:rfe,kErrorHandlerAlreadySet:IK,kHandlerTimeout:GLn}=$s(),{createServer:VLn}=n$e(),TD=m4(),xK=_4(),WLn=T4(),ET=LM(),_T=que(),sut=jle(),{Hooks:KLn,hookRunnerApplication:out,supportedHooks:ife}=ZS(),{createChildLogger:aut,defaultChildLoggerFactory:YLn,createLogger:ZLn}=PM(),cut=lde(),{getGenReqId:uut,reqIdGenFactory:mut}=X4(),{buildRouting:JLn,validateBodyLimitOption:XLn,buildRouterOptions:QLn}=fct(),$Ln=bct(),gut=_ct(),e1n=Oct(),{appendStackTrace:t1n,AVVIO_ERRORS_MAP:lut,...TT}=Ko(),n1n=dce(),{defaultInitOptions:Ou}=gut,{FST_ERR_ASYNC_CONSTRAINT:r1n,FST_ERR_BAD_URL:i1n,FST_ERR_OPTIONS_NOT_OBJ:s1n,FST_ERR_QSP_NOT_FN:o1n,FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:a1n,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:c1n,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:u1n,FST_ERR_INSTANCE_ALREADY_LISTENING:l1n,FST_ERR_REOPENED_CLOSE_SERVER:d1n,FST_ERR_ROUTE_REWRITE_NOT_STR:f1n,FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:dut,FST_ERR_ERROR_HANDLER_NOT_FN:p1n,FST_ERR_ERROR_HANDLER_ALREADY_SET:h1n,FST_ERR_ROUTE_METHOD_INVALID:m1n}=TT,{buildErrorHandler:fut}=CM(),{FSTWRN004:g1n}=Lk(),put=DLn.channel("fastify.initialization");function sfe(e){let{options:t,genReqId:n,disableRequestLogging:r,hasLogger:i,initialConfig:s}=y1n(e,P,N),o=JLn(t.routerOptions),a=$Ln(t),c=U(o,t),{server:u,listen:l,forceCloseConnections:d,serverHasCloseAllConnections:f,serverHasCloseHttp2Sessions:p,keepAliveConnections:h}=VLn(t,c),m=TD.setupResponseListeners,g=sut.buildSchemaController(null,t.schemaController),y={[$i]:{listening:!1,closing:!1,started:!1,ready:!1,booting:!1,aborted:!1,readyResolver:null},[tfe]:h,[bT]:{bodyless:new Set(["GET","HEAD","TRACE"]),bodywith:new Set(["DELETE","OPTIONS","PATCH","PUT","POST"])},[$de]:t,[Xde]:[],[nut]:[],[LLn]:t.bodyLimit,[GLn]:t.handlerTimeout,[rut]:"",[ULn]:"",[FLn]:null,[Qde]:new KLn,[ub]:g,[efe]:null,[kK]:fut(),[IK]:!1,[nfe]:t.childLoggerFactory||YLn,[iut]:null,[HLn]:new _T(t.bodyLimit,t.onProtoPoisoning||Ou.onProtoPoisoning,t.onConstructorPoisoning||Ou.onConstructorPoisoning),[qLn]:TD.buildReply(TD),[BLn]:xK.buildRequest(xK,t.trustProxy),[zLn]:a,[cut.kRegisteredPlugins]:[],[_D]:["fastify"],[ED]:null,[rfe]:n,routing:c,delete:function(K,ee,se){return o.prepareRoute.call(this,{method:"DELETE",url:K,options:ee,handler:se})},get:function(K,ee,se){return o.prepareRoute.call(this,{method:"GET",url:K,options:ee,handler:se})},head:function(K,ee,se){return o.prepareRoute.call(this,{method:"HEAD",url:K,options:ee,handler:se})},trace:function(K,ee,se){return o.prepareRoute.call(this,{method:"TRACE",url:K,options:ee,handler:se})},patch:function(K,ee,se){return o.prepareRoute.call(this,{method:"PATCH",url:K,options:ee,handler:se})},post:function(K,ee,se){return o.prepareRoute.call(this,{method:"POST",url:K,options:ee,handler:se})},put:function(K,ee,se){return o.prepareRoute.call(this,{method:"PUT",url:K,options:ee,handler:se})},options:function(K,ee,se){return o.prepareRoute.call(this,{method:"OPTIONS",url:K,options:ee,handler:se})},all:function(K,ee,se){return o.prepareRoute.call(this,{method:this.supportedMethods,url:K,options:ee,handler:se})},route:function(K){return o.route.call(this,{options:K})},hasRoute:function(K){return o.hasRoute.call(this,{options:K})},findRoute:function(K){return o.findRoute(K)},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:_T.helpers.addContentTypeParser,hasContentTypeParser:_T.helpers.hasContentTypeParser,getDefaultJsonParser:_T.defaultParsers.getDefaultJsonParser,defaultTextParser:_T.defaultParsers.defaultTextParser,removeContentTypeParser:_T.helpers.removeContentTypeParser,removeAllContentTypeParsers:_T.helpers.removeAllContentTypeParsers,register:null,after:null,ready:null,onClose:null,close:null,printPlugins:null,hasPlugin:function(H){return this[cut.kRegisteredPlugins].includes(H)||this[_D].includes(H)},listen:l,server:u,addresses:function(){let H=this[nut].map(K=>K.address());return H.push(this.server.address()),H.filter(K=>K)},decorate:ET.add,hasDecorator:ET.exist,decorateReply:ET.decorateReply,decorateRequest:ET.decorateRequest,hasRequestDecorator:ET.existRequest,hasReplyDecorator:ET.existReply,getDecorator:ET.getInstanceDecorator,addHttpMethod:j,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 H=this.addresses().slice(-1).pop();if(typeof H=="string")return H;let K=H.family==="IPv6"?`[${H.address}]`:H.address;return`${this[$de].https?"https":"http"}://${K}:${H.port}`}},pluginName:{configurable:!0,get(){return this[_D].length>1?this[_D].join(" -> "):this[_D][0]}},prefix:{configurable:!0,get(){return this[rut]}},validatorCompiler:{configurable:!0,get(){return this[ub].getValidatorCompiler()}},serializerCompiler:{configurable:!0,get(){return this[ub].getSerializerCompiler()}},childLoggerFactory:{configurable:!0,get(){return this[nfe]}},version:{configurable:!0,get(){return CLn}},errorHandler:{configurable:!0,get(){return this[kK].func}},genReqId:{configurable:!0,get(){return this[rfe]}},supportedMethods:{configurable:!1,get(){return[...this[bT].bodyless,...this[bT].bodywith]}}}),t.schemaErrorFormatter&&(hut(t.schemaErrorFormatter),y[efe]=t.schemaErrorFormatter.bind(y));let b=Number(t.pluginTimeout),S=MLn(y,{autostart:!1,timeout:isNaN(b)===!1?b:Ou.pluginTimeout,expose:{use:"register"}});S.override=e1n,S.on("start",()=>y[$i].started=!0),y[ED]=y.ready,y.ready=R,y.printPlugins=S.prettyPrint.bind(S),S.once("preReady",()=>{y.onClose((H,K)=>{y[$i].closing=!0,o.closeRoutes(),out("preClose",y[ED],y,function(){if(y[$i].listening){if(d==="idle")H.server.closeIdleConnections();else if(f&&d)H.server.closeAllConnections();else if(d===!0)for(let ee of y[tfe])ee.destroy(),y[tfe].delete(ee)}p&&H.server.closeHttp2Sessions(),!t.serverFactory||y[$i].listening?H.server.close(function(ee){ee&&ee.code!=="ERR_SERVER_NOT_RUNNING"?K(null):K()}):process.nextTick(K,null)})})});let E=new WLn({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)),put.hasSubscribers&&put.publish({fastify:y}),"asyncDispose"in Symbol&&(y[Symbol.asyncDispose]=function(){return y.close()}),y;function _(H){if(y[$i].started)throw new l1n(H)}function T(H,K){if(bD===void 0&&(bD=tut()),y[$i].started){if(y[$i].closing){let ee=new d1n;if(K){K(ee);return}else return Promise.reject(ee)}return bD(c,H,K)}if(K)this.ready(ee=>{ee?K(ee,null):bD(c,H,K)});else return bD((ee,se)=>{this.ready(function(Le){if(Le){se.emit("error",Le);return}c(ee,se)})},H)}function R(H){if(this[$i].readyResolver!==null){if(H!=null){this[$i].readyResolver.promise.then(()=>H(null,y),H);return}return this[$i].readyResolver.promise}if(process.nextTick(K),this[$i].readyResolver=n1n.withResolvers(),H)this[$i].readyResolver.promise.then(()=>H(null,y),H);else return this[$i].readyResolver.promise;function K(){y[ED]((se,Le)=>{se||y[$i].started||y[$i].ready||y[$i].booting?ee(se):(y[$i].booting=!0,out("onReady",y[ED],y,ee)),Le()})}function ee(se){if(se=se!=null&&lut[se.code]!=null?t1n(se,new lut[se.code](se.message)):se,se)return y[$i].readyResolver.reject(se);y[$i].readyResolver.resolve(y),y[$i].booting=!1,y[$i].ready=!0,y[$i].readyResolver=null}}function A(){return this}function x(H,K){if(_('Cannot call "addHook"!'),K==null)throw new TT.FST_ERR_HOOK_INVALID_HANDLER(H,K);if(H==="onSend"||H==="preSerialization"||H==="onError"||H==="preParsing"){if(K.constructor.name==="AsyncFunction"&&K.length===4)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(H==="onReady"||H==="onListen"){if(K.constructor.name==="AsyncFunction"&&K.length!==0)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(H==="onRequestAbort"){if(K.constructor.name==="AsyncFunction"&&K.length!==1)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(K.constructor.name==="AsyncFunction"&&K.length===3)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER;return H==="onClose"?this.onClose(K.bind(this)):H==="onReady"||H==="onListen"||H==="onRoute"?this[Qde].add(H,K):this.after((se,Le)=>{try{ee.call(this,H,K),Le(se)}catch(Ae){Le(Ae)}}),this;function ee(se,Le){this[Qde].add(se,Le),this[Xde].forEach(Ae=>ee.call(Ae,se,Le))}}function k(H){return _('Cannot call "addSchema"!'),this[ub].add(H),this[Xde].forEach(K=>K.addSchema(H)),this}function P(H,K){H.headers["accept-version"]!==void 0&&(H.headers[jLn]=H.headers["accept-version"],H.headers["accept-version"]=void 0),a.router.lookup(H,K)}function N(H,K,ee){if(t.frameworkErrors){let Le=uut(E.server,K),Ae=aut(E,t.logger,K,Le),z=new xK(Le,null,K,null,Ae,E),J=new TD(ee,z,Ae);return(typeof r=="function"?r(K):r)===!1&&Ae.info({req:z},"incoming request"),t.frameworkErrors(new i1n(H),z,J)}let se=JSON.stringify({error:"Bad Request",code:"FST_ERR_BAD_URL",message:`'${H}' 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(H,K,ee){if(H!==!1)return function(Le){if(Le){if(t.frameworkErrors){let z=uut(E.server,K),J=aut(E,t.logger,K,z),oe=new xK(z,null,K,null,J,E),de=new TD(ee,oe,J);return(typeof r=="function"?r(K):r)===!1&&J.info({req:oe},"incoming request"),t.frameworkErrors(new r1n,oe,de)}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(H,K){return _('Cannot call "setNotFoundHandler"!'),a.setNotFoundHandler.call(this,H,K,S,o.routeHandler),this}function G(H){return _('Cannot call "setValidatorCompiler"!'),this[ub].setValidatorCompiler(H),this}function W(H){return _('Cannot call "setSchemaErrorFormatter"!'),hut(H),this[efe]=H.bind(this),this}function $(H){return _('Cannot call "setSerializerCompiler"!'),this[ub].setSerializerCompiler(H),this}function q(H){_('Cannot call "setSchemaController"!');let K=this[ub],ee=sut.buildSchemaController(K,Object.assign({},K.opts,H));return this[ub]=ee,this.getSchema=ee.getSchema.bind(ee),this.getSchemas=ee.getSchemas.bind(ee),this}function Q(H){return _('Cannot call "setReplySerializer"!'),this[iut]=H,this}function B(H){if(_('Cannot call "setErrorHandler"!'),typeof H!="function")throw new p1n;if(!t.allowErrorHandlerOverride&&this[IK])throw new h1n;return this[IK]&&g1n("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[IK]=!0,this[kK]=fut(this[kK],H.bind(this)),this}function F(H){return _('Cannot call "setChildLoggerFactory"!'),this[nfe]=H,this}function V(H={}){return H.includeMeta=H.includeHooks?H.includeMeta?ife.concat(H.includeMeta):ife:H.includeMeta,o.printRoutes(H)}function U(H,{rewriteUrl:K,logger:ee}){let se;return function(Ae,z){if(se===void 0&&(se=H.isAsyncConstraint()),K){Ae.originalUrl=Ae.url;let J=K.call(y,Ae);if(typeof J=="string")Ae.url=J;else{let oe=new f1n(Ae.url,typeof J);Ae.destroy(oe)}}H.routing(Ae,z,C(se,Ae,z))}}function M(H){return _('Cannot call "setGenReqId"!'),this[rfe]=mut(this[$de].requestIdHeader,H),this}function j(H,{hasBody:K=!1}={}){if(typeof H!="string"||OK.METHODS.indexOf(H)===-1)throw new m1n;K===!0?(this[bT].bodywith.add(H),this[bT].bodyless.delete(H)):(this[bT].bodywith.delete(H),this[bT].bodyless.add(H));let ee=H.toLowerCase();return this.hasDecorator(ee)||this.decorate(ee,function(se,Le,Ae){return o.prepareRoute.call(this,{method:H,url:se,options:Le,handler:Ae})}),this}}function y1n(e,t,n){if(e&&typeof e!="object")throw new s1n;if(e=Object.assign({},e),e.querystringParser&&typeof e.querystringParser!="function"||e.routerOptions?.querystringParser&&typeof e.routerOptions.querystringParser!="function")throw new o1n(typeof(e.querystringParser??e.routerOptions.querystringParser));if(e.schemaController&&e.schemaController.bucket&&typeof e.schemaController.bucket!="function")throw new a1n(typeof e.schemaController.bucket);XLn(e.bodyLimit);let r=typeof e.requestIdHeader=="string"&&e.requestIdHeader.length!==0?e.requestIdHeader.toLowerCase():e.requestIdHeader===!0&&"request-id",i=mut(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 c1n(typeof a.customOptions);if(!a.plugins||!Array.isArray(a.plugins))throw new u1n(typeof a.plugins);let{logger:c,hasLogger:u}=ZLn(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||b1n,e.allowErrorHandlerOverride=e.allowErrorHandlerOverride??Ou.allowErrorHandlerOverride;let l=gut(e);return e.exposeHeadRoutes=l.exposeHeadRoutes,e.http2SessionTimeout=l.http2SessionTimeout,e.routerOptions=QLn(e,{defaultRoute:t,onBadUrl:n,ignoreTrailingSlash:Ou.ignoreTrailingSlash,ignoreDuplicateSlashes:Ou.ignoreDuplicateSlashes,maxParamLength:Ou.maxParamLength,allowUnsafeRegex:Ou.allowUnsafeRegex,buildPrettyMeta:S1n,useSemicolonDelimiter:Ou.useSemicolonDelimiter}),{options:e,genReqId:i,disableRequestLogging:o,hasLogger:u,initialConfig:l}}function S1n(e){let t={};return["errorHandler","logLevel","logSerializers"].concat(ife).forEach(r=>{t[r]=e.store[r]}),Object.assign({},t)}function b1n(e,t){if(e.code==="ECONNRESET"||t.destroyed)return;let n,r,i,s;e.code==="ERR_HTTP_REQUEST_TIMEOUT"?(r="408",i=OK.STATUS_CODES[r],n=`{"error":"${i}","message":"Client Timeout","statusCode":408}`,s="timeout"):e.code==="HPE_HEADER_OVERFLOW"?(r="431",i=OK.STATUS_CODES[r],n=`{"error":"${i}","message":"Exceeded maximum allowed HTTP header size","statusCode":431}`,s="header_overflow"):(r="400",i=OK.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 fI.encode(l),u.stream?yield*u.stream():yield u,yield s}yield fI.encode(`--${t}--`)}return{stream:oLn.from(o()),contentType:`multipart/form-data; boundary=${t}`}}Bde.exports.isFormDataLike=aLn;Bde.exports.formDataToStream=cLn});var Wct=w((NYr,TK)=>{"use strict";var{Readable:Gct,addAbortSignal:uLn}=Y("node:stream"),Gde=Y("node:util"),lLn=Uct(),dLn=Y("node:assert"),{createDeprecation:fLn}=jct(),pLn=Bct(),{isFormDataLike:hLn,formDataToStream:mLn}=zct(),{EventEmitter:gLn}=Y("node:events"),yLn=fLn({name:"FastifyDeprecationLightMyRequest",code:"FST_LIGHTMYREQUEST_DEP01",message:'You are accessing "request.connection", use "request.socket" instead.'});function SLn(e){return e.port?e.host:e.hostname+(e.protocol==="https:"?":443":":80")}var zde=class extends gLn{constructor(t){super(),this.remoteAddress=t}};function Vct(e){return new t(this);function t(n){ab.call(n,{...e,Request:void 0}),Object.assign(this,n);for(let r of Object.keys(ab.prototype))this.constructor.prototype[r]=ab.prototype[r];return Gde.inherits(this.constructor,e.Request),this}}function ab(e){Gct.call(this,{autoDestroy:!1});let t=pLn(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];dLn(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||SLn(t),e.cookies){let{cookies:o}=e,a=Object.keys(o).map(c=>lLn.serialize(c,o[c]));this.headers.cookie&&a.unshift(this.headers.cookie),this.headers.cookie=a.join("; ")}this.socket=new zde(e.remoteAddress||"127.0.0.1"),Object.defineProperty(this,"connection",{get(){return yLn(),this.socket},configurable:!0});let r=e.payload||e.body||null,i=r&&typeof r.resume=="function";if(hLn(r)){let o=mLn(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&&uLn(s,this);{let o=this._lightMyRequest.payload;o?._readableState?(this._read=bLn,o.on("error",a=>{this.destroy(a)}),o.on("end",()=>{this.push(null)})):this._read=ELn}return this}function bLn(){let e=this._lightMyRequest.payload,t=!0,n=!1,r;for(;t&&(r=e.read());)n=!0,t=this.push(r);t&&!n&&this._lightMyRequest.payload.once("readable",this._read.bind(this))}function ELn(){setImmediate(()=>{if(this._lightMyRequest.isDone){this._lightMyRequest.simulate.end!==!1&&this.push(null);return}this._lightMyRequest.isDone=!0,this._lightMyRequest.payload&&(this._lightMyRequest.simulate.split?(this.push(this._lightMyRequest.payload.slice(0,1)),this.push(this._lightMyRequest.payload.slice(1))):this.push(this._lightMyRequest.payload)),this._lightMyRequest.simulate.error&&this.emit("error",new Error("Simulated")),this._lightMyRequest.simulate.close&&this.emit("close"),this._lightMyRequest.simulate.end!==!1&&this.push(null)})}Gde.inherits(ab,Gct);Gde.inherits(Vct,ab);ab.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")))};TK.exports=ab;TK.exports.Request=ab;TK.exports.CustomRequest=Vct});var Yct=w((CYr,mD)=>{"use strict";var vK={decodeValues:!0,map:!1,silent:!1};function Vde(e){return typeof e!="string"||e in{}}function Wde(){return Object.create(null)}function Kde(e){return typeof e=="string"&&!!e.trim()}function Yde(e,t){var n=e.split(";").filter(Kde),r=n.shift(),i=_Ln(r),s=i.name,o=i.value;if(t=t?Object.assign({},vK,t):vK,Vde(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=Wde();return a.name=s,a.value=o,n.forEach(function(c){var u=c.split("="),l=u.shift().trimLeft().toLowerCase();if(!Vde(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 _Ln(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({},vK,t):vK,!e)return t.map?Wde():[];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=Wde();return e.filter(Kde).reduce(function(i,s){var o=Yde(s,t);return o&&!Vde(o.name)&&(i[o.name]=o),i},r)}else return e.filter(Kde).map(function(i){return Yde(i,t)}).filter(Boolean)}function TLn(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}mD.exports=Kct;mD.exports.parse=Kct;mD.exports.parseString=Yde;mD.exports.splitCookiesString=TLn});var $ct=w((MYr,Qct)=>{"use strict";var gD=Y("node:http"),{Writable:vLn,Readable:Zct,addAbortSignal:RLn}=Y("node:stream"),ALn=Y("node:util"),wLn=Yct();function cb(e,t,n){if(gD.ServerResponse.call(this,e),e._lightMyRequest?.payloadAsStream){let a=this.emit.bind(this,"drain");this._lightMyRequest={headers:null,trailers:{},stream:new Zct({read:a})};let c=e._lightMyRequest.signal;c&&RLn(c,this._lightMyRequest.stream)}else this._lightMyRequest={headers:null,trailers:{},payloadChunks:[]};this.setHeader("foo","bar"),this.removeHeader("foo"),this.assignSocket(kLn()),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=Jct(this);a.raw.req=e,i(a)}),this.connection.once("error",o),this.once("error",o),this.once("close",o)}ALn.inherits(cb,gD.ServerResponse);cb.prototype.setTimeout=function(e,t){return this.timeoutHandle=setTimeout(()=>{this.emit("timeout")},e),this.on("timeout",t),this};cb.prototype.writeHead=function(){let e=gD.ServerResponse.prototype.writeHead.apply(this,arguments);return Xct(this),this._lightMyRequest.stream&&this._lightMyRequest.onEndSuccess(Jct(this)),e};cb.prototype.write=function(e,t,n){return this.timeoutHandle&&clearTimeout(this.timeoutHandle),gD.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)};cb.prototype.end=function(e,t,n){e&&this.write(e,t),gD.ServerResponse.prototype.end.call(this,n),this.emit("finish"),this.destroy()};cb.prototype.destroy=function(e){this.destroyed||(this.destroyed=!0,e&&process.nextTick(()=>this.emit("error",e)),process.nextTick(()=>this.emit("close")))};cb.prototype.addTrailers=function(e){for(let t in e)this._lightMyRequest.trailers[t.toLowerCase().trim()]=e[t].toString().trim()};function Jct(e){e._lightMyRequest.headers===null&&Xct(e),ILn(e);let t={raw:{res:e},headers:e._lightMyRequest.headers,statusCode:e.statusCode,statusMessage:e.statusMessage,trailers:{},get cookies(){return wLn.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:Zct.from(e._lightMyRequest.payloadChunks)},t}function kLn(){return new vLn({write(e,t,n){setImmediate(n)}})}function ILn(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 Xct(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])})}Qct.exports=cb});var eut=w((DYr,Zde)=>{"use strict";Zde.exports=eo;Zde.exports.default=eo;var xLn={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:xLn.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 rut=w((LYr,SD)=>{"use strict";var OLn=Y("node:assert"),Jde=Wct(),RK=$ct(),wK="The dispatch function has already been invoked",tut=eut();function Xde(e,t,n){return n===void 0?new yD(e,t):AK(e,t,n)}function PLn(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 nut(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()}),PLn(n,()=>e.call(t,n,r))}function AK(e,t,n){if(t=typeof t=="string"?{url:t}:t,t.validate!==!1&&(OLn(typeof e=="function","dispatchFunc should be a function"),!tut(t)))throw new Error(tut.errors.map(o=>o.message));let r=t.server||{},i=t.Request?Jde.CustomRequest:Jde;if(e.request&&e.request.app===e&&(Object.setPrototypeOf(Object.getPrototypeOf(e.request),i.prototype),Object.setPrototypeOf(Object.getPrototypeOf(e.response),RK.prototype)),typeof n=="function"){let s=new i(t),o=new RK(s,n);return nut(e,r,s,o)}else return new Promise((s,o)=>{let a=new i(t),c=new RK(a,s,o);nut(e,r,a,c)})}function yD(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 NLn=["delete","get","head","options","patch","post","put","trace"];NLn.forEach(e=>{yD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(wK);return this.option.url=t,this.option.method=e.toUpperCase(),this}});var CLn=["body","cookies","headers","payload","query"];CLn.forEach(e=>{yD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(wK);return this.option[e]=t,this}});yD.prototype.end=function(e){if(this._hasInvoked===!0||this._promise)throw new Error(wK);if(this._hasInvoked=!0,typeof e=="function")AK(this.dispatch,this.option,e);else return this._promise=AK(this.dispatch,this.option),this._promise};Object.getOwnPropertyNames(Promise.prototype).forEach(e=>{e!=="constructor"&&(yD.prototype[e]=function(...t){if(!this._promise){if(this._hasInvoked===!0)throw new Error(wK);this._hasInvoked=!0,this._promise=AK(this.dispatch,this.option)}return this._promise[e](...t)})});function MLn(e){return e instanceof Jde||e instanceof RK||e?.constructor?.name==="_CustomLMRRequest"}SD.exports=Xde;SD.exports.default=Xde;SD.exports.inject=Xde;SD.exports.isInjection=MLn});var but=w((UYr,vD)=>{"use strict";var DLn="5.8.5",LLn=OQe(),OK=Y("node:http"),ULn=Y("node:diagnostics_channel"),bD,{kAvvioBoot:ED,kChildren:Qde,kServerBindings:iut,kBodyLimit:FLn,kSupportedHTTPMethods:bT,kRoutePrefix:sut,kLogLevel:jLn,kLogSerializers:HLn,kHooks:$de,kSchemaController:ub,kRequestAcceptVersion:qLn,kReplySerializerDefault:out,kContentTypeParser:BLn,kReply:zLn,kRequest:GLn,kFourOhFour:VLn,kState:$i,kOptions:efe,kPluginNameChain:_D,kSchemaErrorFormatter:tfe,kErrorHandler:kK,kKeepAliveConnections:nfe,kChildLoggerFactory:rfe,kGenReqId:ife,kErrorHandlerAlreadySet:IK,kHandlerTimeout:WLn}=$s(),{createServer:KLn}=i$e(),TD=m4(),xK=_4(),YLn=T4(),ET=LM(),_T=Bue(),aut=Hle(),{Hooks:ZLn,hookRunnerApplication:cut,supportedHooks:sfe}=ZS(),{createChildLogger:uut,defaultChildLoggerFactory:JLn,createLogger:XLn}=PM(),lut=dde(),{getGenReqId:dut,reqIdGenFactory:yut}=X4(),{buildRouting:QLn,validateBodyLimitOption:$Ln,buildRouterOptions:e1n}=hct(),t1n=_ct(),Sut=vct(),n1n=Nct(),{appendStackTrace:r1n,AVVIO_ERRORS_MAP:fut,...TT}=Ko(),i1n=fce(),{defaultInitOptions:Ou}=Sut,{FST_ERR_ASYNC_CONSTRAINT:s1n,FST_ERR_BAD_URL:o1n,FST_ERR_OPTIONS_NOT_OBJ:a1n,FST_ERR_QSP_NOT_FN:c1n,FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:u1n,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:l1n,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:d1n,FST_ERR_INSTANCE_ALREADY_LISTENING:f1n,FST_ERR_REOPENED_CLOSE_SERVER:p1n,FST_ERR_ROUTE_REWRITE_NOT_STR:h1n,FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:put,FST_ERR_ERROR_HANDLER_NOT_FN:m1n,FST_ERR_ERROR_HANDLER_ALREADY_SET:g1n,FST_ERR_ROUTE_METHOD_INVALID:y1n}=TT,{buildErrorHandler:hut}=CM(),{FSTWRN004:S1n}=Lk(),mut=ULn.channel("fastify.initialization");function ofe(e){let{options:t,genReqId:n,disableRequestLogging:r,hasLogger:i,initialConfig:s}=b1n(e,P,N),o=QLn(t.routerOptions),a=t1n(t),c=U(o,t),{server:u,listen:l,forceCloseConnections:d,serverHasCloseAllConnections:f,serverHasCloseHttp2Sessions:p,keepAliveConnections:h}=KLn(t,c),m=TD.setupResponseListeners,g=aut.buildSchemaController(null,t.schemaController),y={[$i]:{listening:!1,closing:!1,started:!1,ready:!1,booting:!1,aborted:!1,readyResolver:null},[nfe]:h,[bT]:{bodyless:new Set(["GET","HEAD","TRACE"]),bodywith:new Set(["DELETE","OPTIONS","PATCH","PUT","POST"])},[efe]:t,[Qde]:[],[iut]:[],[FLn]:t.bodyLimit,[WLn]:t.handlerTimeout,[sut]:"",[jLn]:"",[HLn]:null,[$de]:new ZLn,[ub]:g,[tfe]:null,[kK]:hut(),[IK]:!1,[rfe]:t.childLoggerFactory||JLn,[out]:null,[BLn]:new _T(t.bodyLimit,t.onProtoPoisoning||Ou.onProtoPoisoning,t.onConstructorPoisoning||Ou.onConstructorPoisoning),[zLn]:TD.buildReply(TD),[GLn]:xK.buildRequest(xK,t.trustProxy),[VLn]:a,[lut.kRegisteredPlugins]:[],[_D]:["fastify"],[ED]:null,[ife]:n,routing:c,delete:function(K,ee,se){return o.prepareRoute.call(this,{method:"DELETE",url:K,options:ee,handler:se})},get:function(K,ee,se){return o.prepareRoute.call(this,{method:"GET",url:K,options:ee,handler:se})},head:function(K,ee,se){return o.prepareRoute.call(this,{method:"HEAD",url:K,options:ee,handler:se})},trace:function(K,ee,se){return o.prepareRoute.call(this,{method:"TRACE",url:K,options:ee,handler:se})},patch:function(K,ee,se){return o.prepareRoute.call(this,{method:"PATCH",url:K,options:ee,handler:se})},post:function(K,ee,se){return o.prepareRoute.call(this,{method:"POST",url:K,options:ee,handler:se})},put:function(K,ee,se){return o.prepareRoute.call(this,{method:"PUT",url:K,options:ee,handler:se})},options:function(K,ee,se){return o.prepareRoute.call(this,{method:"OPTIONS",url:K,options:ee,handler:se})},all:function(K,ee,se){return o.prepareRoute.call(this,{method:this.supportedMethods,url:K,options:ee,handler:se})},route:function(K){return o.route.call(this,{options:K})},hasRoute:function(K){return o.hasRoute.call(this,{options:K})},findRoute:function(K){return o.findRoute(K)},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:_T.helpers.addContentTypeParser,hasContentTypeParser:_T.helpers.hasContentTypeParser,getDefaultJsonParser:_T.defaultParsers.getDefaultJsonParser,defaultTextParser:_T.defaultParsers.defaultTextParser,removeContentTypeParser:_T.helpers.removeContentTypeParser,removeAllContentTypeParsers:_T.helpers.removeAllContentTypeParsers,register:null,after:null,ready:null,onClose:null,close:null,printPlugins:null,hasPlugin:function(H){return this[lut.kRegisteredPlugins].includes(H)||this[_D].includes(H)},listen:l,server:u,addresses:function(){let H=this[iut].map(K=>K.address());return H.push(this.server.address()),H.filter(K=>K)},decorate:ET.add,hasDecorator:ET.exist,decorateReply:ET.decorateReply,decorateRequest:ET.decorateRequest,hasRequestDecorator:ET.existRequest,hasReplyDecorator:ET.existReply,getDecorator:ET.getInstanceDecorator,addHttpMethod:j,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 H=this.addresses().slice(-1).pop();if(typeof H=="string")return H;let K=H.family==="IPv6"?`[${H.address}]`:H.address;return`${this[efe].https?"https":"http"}://${K}:${H.port}`}},pluginName:{configurable:!0,get(){return this[_D].length>1?this[_D].join(" -> "):this[_D][0]}},prefix:{configurable:!0,get(){return this[sut]}},validatorCompiler:{configurable:!0,get(){return this[ub].getValidatorCompiler()}},serializerCompiler:{configurable:!0,get(){return this[ub].getSerializerCompiler()}},childLoggerFactory:{configurable:!0,get(){return this[rfe]}},version:{configurable:!0,get(){return DLn}},errorHandler:{configurable:!0,get(){return this[kK].func}},genReqId:{configurable:!0,get(){return this[ife]}},supportedMethods:{configurable:!1,get(){return[...this[bT].bodyless,...this[bT].bodywith]}}}),t.schemaErrorFormatter&&(gut(t.schemaErrorFormatter),y[tfe]=t.schemaErrorFormatter.bind(y));let b=Number(t.pluginTimeout),S=LLn(y,{autostart:!1,timeout:isNaN(b)===!1?b:Ou.pluginTimeout,expose:{use:"register"}});S.override=n1n,S.on("start",()=>y[$i].started=!0),y[ED]=y.ready,y.ready=R,y.printPlugins=S.prettyPrint.bind(S),S.once("preReady",()=>{y.onClose((H,K)=>{y[$i].closing=!0,o.closeRoutes(),cut("preClose",y[ED],y,function(){if(y[$i].listening){if(d==="idle")H.server.closeIdleConnections();else if(f&&d)H.server.closeAllConnections();else if(d===!0)for(let ee of y[nfe])ee.destroy(),y[nfe].delete(ee)}p&&H.server.closeHttp2Sessions(),!t.serverFactory||y[$i].listening?H.server.close(function(ee){ee&&ee.code!=="ERR_SERVER_NOT_RUNNING"?K(null):K()}):process.nextTick(K,null)})})});let E=new YLn({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)),mut.hasSubscribers&&mut.publish({fastify:y}),"asyncDispose"in Symbol&&(y[Symbol.asyncDispose]=function(){return y.close()}),y;function _(H){if(y[$i].started)throw new f1n(H)}function T(H,K){if(bD===void 0&&(bD=rut()),y[$i].started){if(y[$i].closing){let ee=new p1n;if(K){K(ee);return}else return Promise.reject(ee)}return bD(c,H,K)}if(K)this.ready(ee=>{ee?K(ee,null):bD(c,H,K)});else return bD((ee,se)=>{this.ready(function(Le){if(Le){se.emit("error",Le);return}c(ee,se)})},H)}function R(H){if(this[$i].readyResolver!==null){if(H!=null){this[$i].readyResolver.promise.then(()=>H(null,y),H);return}return this[$i].readyResolver.promise}if(process.nextTick(K),this[$i].readyResolver=i1n.withResolvers(),H)this[$i].readyResolver.promise.then(()=>H(null,y),H);else return this[$i].readyResolver.promise;function K(){y[ED]((se,Le)=>{se||y[$i].started||y[$i].ready||y[$i].booting?ee(se):(y[$i].booting=!0,cut("onReady",y[ED],y,ee)),Le()})}function ee(se){if(se=se!=null&&fut[se.code]!=null?r1n(se,new fut[se.code](se.message)):se,se)return y[$i].readyResolver.reject(se);y[$i].readyResolver.resolve(y),y[$i].booting=!1,y[$i].ready=!0,y[$i].readyResolver=null}}function A(){return this}function x(H,K){if(_('Cannot call "addHook"!'),K==null)throw new TT.FST_ERR_HOOK_INVALID_HANDLER(H,K);if(H==="onSend"||H==="preSerialization"||H==="onError"||H==="preParsing"){if(K.constructor.name==="AsyncFunction"&&K.length===4)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(H==="onReady"||H==="onListen"){if(K.constructor.name==="AsyncFunction"&&K.length!==0)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(H==="onRequestAbort"){if(K.constructor.name==="AsyncFunction"&&K.length!==1)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(K.constructor.name==="AsyncFunction"&&K.length===3)throw new TT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER;return H==="onClose"?this.onClose(K.bind(this)):H==="onReady"||H==="onListen"||H==="onRoute"?this[$de].add(H,K):this.after((se,Le)=>{try{ee.call(this,H,K),Le(se)}catch(Ae){Le(Ae)}}),this;function ee(se,Le){this[$de].add(se,Le),this[Qde].forEach(Ae=>ee.call(Ae,se,Le))}}function k(H){return _('Cannot call "addSchema"!'),this[ub].add(H),this[Qde].forEach(K=>K.addSchema(H)),this}function P(H,K){H.headers["accept-version"]!==void 0&&(H.headers[qLn]=H.headers["accept-version"],H.headers["accept-version"]=void 0),a.router.lookup(H,K)}function N(H,K,ee){if(t.frameworkErrors){let Le=dut(E.server,K),Ae=uut(E,t.logger,K,Le),z=new xK(Le,null,K,null,Ae,E),J=new TD(ee,z,Ae);return(typeof r=="function"?r(K):r)===!1&&Ae.info({req:z},"incoming request"),t.frameworkErrors(new o1n(H),z,J)}let se=JSON.stringify({error:"Bad Request",code:"FST_ERR_BAD_URL",message:`'${H}' 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(H,K,ee){if(H!==!1)return function(Le){if(Le){if(t.frameworkErrors){let z=dut(E.server,K),J=uut(E,t.logger,K,z),oe=new xK(z,null,K,null,J,E),de=new TD(ee,oe,J);return(typeof r=="function"?r(K):r)===!1&&J.info({req:oe},"incoming request"),t.frameworkErrors(new s1n,oe,de)}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(H,K){return _('Cannot call "setNotFoundHandler"!'),a.setNotFoundHandler.call(this,H,K,S,o.routeHandler),this}function G(H){return _('Cannot call "setValidatorCompiler"!'),this[ub].setValidatorCompiler(H),this}function W(H){return _('Cannot call "setSchemaErrorFormatter"!'),gut(H),this[tfe]=H.bind(this),this}function $(H){return _('Cannot call "setSerializerCompiler"!'),this[ub].setSerializerCompiler(H),this}function q(H){_('Cannot call "setSchemaController"!');let K=this[ub],ee=aut.buildSchemaController(K,Object.assign({},K.opts,H));return this[ub]=ee,this.getSchema=ee.getSchema.bind(ee),this.getSchemas=ee.getSchemas.bind(ee),this}function Q(H){return _('Cannot call "setReplySerializer"!'),this[out]=H,this}function B(H){if(_('Cannot call "setErrorHandler"!'),typeof H!="function")throw new m1n;if(!t.allowErrorHandlerOverride&&this[IK])throw new g1n;return this[IK]&&S1n("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[IK]=!0,this[kK]=hut(this[kK],H.bind(this)),this}function F(H){return _('Cannot call "setChildLoggerFactory"!'),this[rfe]=H,this}function V(H={}){return H.includeMeta=H.includeHooks?H.includeMeta?sfe.concat(H.includeMeta):sfe:H.includeMeta,o.printRoutes(H)}function U(H,{rewriteUrl:K,logger:ee}){let se;return function(Ae,z){if(se===void 0&&(se=H.isAsyncConstraint()),K){Ae.originalUrl=Ae.url;let J=K.call(y,Ae);if(typeof J=="string")Ae.url=J;else{let oe=new h1n(Ae.url,typeof J);Ae.destroy(oe)}}H.routing(Ae,z,C(se,Ae,z))}}function M(H){return _('Cannot call "setGenReqId"!'),this[ife]=yut(this[efe].requestIdHeader,H),this}function j(H,{hasBody:K=!1}={}){if(typeof H!="string"||OK.METHODS.indexOf(H)===-1)throw new y1n;K===!0?(this[bT].bodywith.add(H),this[bT].bodyless.delete(H)):(this[bT].bodywith.delete(H),this[bT].bodyless.add(H));let ee=H.toLowerCase();return this.hasDecorator(ee)||this.decorate(ee,function(se,Le,Ae){return o.prepareRoute.call(this,{method:H,url:se,options:Le,handler:Ae})}),this}}function b1n(e,t,n){if(e&&typeof e!="object")throw new a1n;if(e=Object.assign({},e),e.querystringParser&&typeof e.querystringParser!="function"||e.routerOptions?.querystringParser&&typeof e.routerOptions.querystringParser!="function")throw new c1n(typeof(e.querystringParser??e.routerOptions.querystringParser));if(e.schemaController&&e.schemaController.bucket&&typeof e.schemaController.bucket!="function")throw new u1n(typeof e.schemaController.bucket);$Ln(e.bodyLimit);let r=typeof e.requestIdHeader=="string"&&e.requestIdHeader.length!==0?e.requestIdHeader.toLowerCase():e.requestIdHeader===!0&&"request-id",i=yut(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 l1n(typeof a.customOptions);if(!a.plugins||!Array.isArray(a.plugins))throw new d1n(typeof a.plugins);let{logger:c,hasLogger:u}=XLn(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||_1n,e.allowErrorHandlerOverride=e.allowErrorHandlerOverride??Ou.allowErrorHandlerOverride;let l=Sut(e);return e.exposeHeadRoutes=l.exposeHeadRoutes,e.http2SessionTimeout=l.http2SessionTimeout,e.routerOptions=e1n(e,{defaultRoute:t,onBadUrl:n,ignoreTrailingSlash:Ou.ignoreTrailingSlash,ignoreDuplicateSlashes:Ou.ignoreDuplicateSlashes,maxParamLength:Ou.maxParamLength,allowUnsafeRegex:Ou.allowUnsafeRegex,buildPrettyMeta:E1n,useSemicolonDelimiter:Ou.useSemicolonDelimiter}),{options:e,genReqId:i,disableRequestLogging:o,hasLogger:u,initialConfig:l}}function E1n(e){let t={};return["errorHandler","logLevel","logSerializers"].concat(sfe).forEach(r=>{t[r]=e.store[r]}),Object.assign({},t)}function _1n(e,t){if(e.code==="ECONNRESET"||t.destroyed)return;let n,r,i,s;e.code==="ERR_HTTP_REQUEST_TIMEOUT"?(r="408",i=OK.STATUS_CODES[r],n=`{"error":"${i}","message":"Client Timeout","statusCode":408}`,s="timeout"):e.code==="HPE_HEADER_OVERFLOW"?(r="431",i=OK.STATUS_CODES[r],n=`{"error":"${i}","message":"Exceeded maximum allowed HTTP header size","statusCode":431}`,s="header_overflow"):(r="400",i=OK.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 hut(e){if(typeof e!="function")throw new dut(typeof e);if(e.constructor.name==="AsyncFunction")throw new dut("AsyncFunction")}vD.exports=sfe;vD.exports.errorCodes=TT;vD.exports.fastify=sfe;vD.exports.default=sfe});var _l=v(()=>{tre();tre()});var E1n,ofe=v(()=>{"use strict";_l();E1n=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 _1n,T1n,afe=v(()=>{"use strict";_l();_1n=O.enum(["loopback","token"]).describe("Transport invariant \u2014 routes declare 'loopback' (v1 runtime policy) or 'token' (reserved for future bearer-token routes)."),T1n=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 Sut,cfe,but,RD,PK,Eut,_ut,ufe,Tut,pI,v1n,R1n,NK,WYr,AD,A1n,KYr,wD,CK,kD,lfe,pg=v(()=>{"use strict";_l();afe();Sut=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."),cfe=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)."),but=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."),RD=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."),PK=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."),Eut=O.object({author:O.string().min(1).max(200).describe("Free-form author handle ('user', agent name)."),author_type:Sut,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"),_ut=Sut,ufe=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"),Tut=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"),pI=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(ufe).optional(),comments:O.array(Tut).optional()}).describe("Annotations attached to a review decision"),v1n=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"),R1n=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"),NK=O.object({comments:O.array(Tut).optional(),pins:O.array(v1n).optional(),screenshots:O.array(R1n).max(20).optional()}).describe("Annotations attached to a question answer"),WYr=O.enum(["review","question","design_direction"]).describe("Session type discriminator"),AD=O.enum(["pending","decided","answered","approved","changes_requested"]).describe("Runtime status across review | question | design_direction sessions."),A1n=O.object({code:O.string(),message:O.string(),path:O.array(O.union([O.string(),O.number()]))}).passthrough().describe("Structural ZodIssue on the wire \u2014 we expose code/message/path at minimum; extra keys are preserved via passthrough."),KYr=O.object({error:O.literal("validation_failed"),issues:O.array(A1n)}).describe("Uniform 400 response for request-body validation failure (malformed JSON, schema mismatch, oversize)"),wD=1048576,CK=131072,kD=8388608,lfe=33554432});var w1n,k1n,I1n,x1n,O1n,P1n,N1n,dfe,C1n,ffe=v(()=>{"use strict";_l();pg();w1n=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"),k1n=O.object({pins:O.array(ufe).optional(),screenshots:O.array(w1n).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:k1n.optional()}).describe("Final selection \u2014 user picked one archetype"),x1n=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"),P1n=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"),N1n=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"),dfe=O.discriminatedUnion("mode",[I1n,x1n,P1n,N1n]).describe("POST /direction/:sessionId/select request body"),C1n=O.object({ok:O.literal(!0)}).describe("POST /direction/:sessionId/select response body")});var vut,M1n,D1n,L1n,U1n,pfe,F1n,hfe,j1n,H1n,mfe,q1n,gfe=v(()=>{"use strict";_l();pg();vut=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"),M1n=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:RD,origin:cfe,severity:but.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:_ut,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:PK.nullable().optional().describe("Routing hint for the feedback resolver. null/unset = router defaults to stage_revisit."),replies:O.array(Eut).optional().describe("Thread of replies on this feedback item. Empty / missing = no replies yet."),inline_anchor:vut.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(M1n)}).describe("GET /api/feedback/:intent/:stage response body"),L1n=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"),U1n=6e6,pfe=O.object({title:O.string().min(1).max(200),body:O.string().min(1).max(1e4),origin:cfe.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:L1n.optional(),inline_anchor:vut.optional(),resolution:PK.optional().describe("Author's preferred resolution path. Router defaults to stage_revisit when omitted."),attachment_data_url:O.string().max(U1n).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"),F1n=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"),hfe=O.object({status:RD.optional(),closed_by:O.string().max(200).optional(),resolution:PK.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"),j1n=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"),H1n=O.object({feedback_id:O.string(),deleted:O.literal(!0),message:O.string()}).describe("DELETE /api/feedback/:intent/:stage/:id response body"),mfe=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"),q1n=O.object({feedback_id:O.string(),reply_index:O.number().int().nonnegative().describe("Zero-based index of the new reply inside replies[]."),status:RD,message:O.string()}).describe("POST /api/feedback/:intent/:stage/:id/replies response body")});var yfe,Sfe,B1n,MK=v(()=>{"use strict";_l();pg();yfe=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"),Sfe=O.object({answers:O.array(yfe).max(50),feedback:O.string().max(1e4).optional(),annotations:NK.optional()}).describe("POST /question/:sessionId/answer request body"),B1n=O.object({ok:O.literal(!0)}).describe("POST /question/:sessionId/answer response body")});var z1n,bfe,G1n,Efe=v(()=>{"use strict";_l();pg();z1n=O.enum(["approved","changes_requested"]).describe("Canonical review decision. Anything != approved is coerced to changes_requested server-side."),bfe=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:pI.optional()}).describe("POST /review/:sessionId/decide request body"),G1n=O.object({ok:O.literal(!0),decision:z1n,feedback:O.string()}).describe("POST /review/:sessionId/decide response body")});var ID,lZr,V1n,W1n,K1n,_fe,Y1n,Z1n,J1n,Rut,X1n,Q1n,$1n,eUn,tUn,nUn,rUn,iUn,sUn,oUn,aUn,cUn,uUn,lUn,dUn,fUn,pUn,hUn,mUn,gUn,yUn,SUn,dZr,bUn,Tfe=v(()=>{"use strict";_l();pg();ID=O.record(O.unknown()).describe("Opaque parsed artifact (ParsedIntent / ParsedUnit / CriterionItem / etc.)"),lZr=O.enum(["auto","ask","external","await"]).describe("Review-gate type declared in STAGE.md"),V1n=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."),W1n=O.object({name:O.string(),content:O.string()}),K1n=O.object({stage:O.string(),name:O.string(),content:O.string()}),_fe=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()}),Y1n=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()}),Z1n=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."),J1n=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."),Rut=O.object({key:O.string(),label:O.string(),status:O.enum(["done","active","pending"])}).describe("One milestone in the granular per-stage progress track"),X1n=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(Rut).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?'."),Q1n=O.enum(["ad_hoc_done","open_pr","submit_external","start_intent","start_execution","complete_stage","submit_intent_review","complete_intent","approve"]),$1n=O.object({label:O.string(),kind:Q1n}).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')."),eUn=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"),tUn=O.object({session_id:O.string(),session_type:O.literal("review"),status:AD,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:pI.optional(),intent:ID.optional(),units:O.array(ID).optional(),criteria:O.array(ID).optional(),mermaid:O.string().optional(),intent_mockups:O.array(ID).optional(),unit_mockups:O.record(O.array(ID)).optional(),stage_states:O.record(V1n).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(Rut)).optional(),current_state:X1n.optional(),knowledge_files:O.array(W1n).optional(),stage_artifacts:O.array(K1n).optional(),output_artifacts:O.array(_fe).optional(),other_files:O.array(_fe).optional(),intent_other_files:O.array(_fe).optional(),unit_outputs:O.record(O.array(Y1n)).optional(),output_declared_by:O.record(O.array(O.string())).optional(),previous_review:J1n.optional(),drift:O.array(Z1n).optional(),discovered_review_url:eUn.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:$1n.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)"),nUn=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"),rUn=O.object({question:O.string(),selectedOptions:O.array(O.string()),otherText:O.string().optional()}),iUn=O.object({session_id:O.string(),session_type:O.literal("question"),status:AD,title:O.string().optional(),context:O.string().optional(),questions:O.array(nUn).optional(),answers:O.array(rUn).optional(),image_urls:O.array(O.string()).optional()}).describe("Question session payload (GET /api/session/:id, session_type=question)"),sUn=O.object({name:O.string(),description:O.string(),preview_html:O.string()}),oUn=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)"),aUn=O.object({session_id:O.string(),session_type:O.literal("design_direction"),status:AD,title:O.string().optional(),intent_slug:O.string().optional(),context:O.string().optional(),archetypes:O.array(sUn).optional(),selection:oUn.nullable().optional()}).describe("Design-direction session payload (GET /api/session/:id, session_type=design_direction)"),cUn=O.enum(["studio","mode","stage","confirm","url_input"]),uUn=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)."),lUn=O.object({id:O.string()}).describe("Saved picker selection (nullable on the session)"),dUn=O.object({session_id:O.string(),session_type:O.literal("picker"),status:AD,intent_slug:O.string().optional(),kind:cUn,title:O.string(),prompt:O.string(),options:O.array(uUn),selection:lUn.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"),fUn=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"),pUn=O.object({ok:O.literal(!0),id:O.string()}).describe("Success response from POST /picker/:sessionId/select"),hUn=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."),mUn=O.discriminatedUnion("session_type",[tUn,iUn,aUn,dUn,hUn]).describe("GET /api/session/:id response body \u2014 discriminated on session_type"),gUn=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."),yUn=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()}),SUn=O.object({slug:O.string(),title:O.string(),status:O.string()}),dZr=O.object({intent:O.string(),stage:O.string().nullable(),phase:O.string().optional(),units:O.array(SUn),feedback_summary:gUn,stages:O.array(yUn)}).describe("GET /api/review/current response body"),bUn=O.object({}).describe("HEAD /api/session/:id/heartbeat \u2014 no body. 200 if session exists, 404 otherwise.")});var vfe=v(()=>{"use strict";ofe();pg();ffe();gfe();MK();Efe();Tfe()});var Rfe=v(()=>{"use strict"});var Aut=v(()=>{"use strict";Zie();vfe();Rfe()});function RUn(e){return!(e.includes("\0")||TUn.test(e)||e.startsWith("/")||e.startsWith("\\")||vUn.test(e)||e==="."||e.split(/[\\/]+/).some(n=>n===".."))}var TUn,vUn,wut,kZr,kut=v(()=>{"use strict";_l();TUn=/%(?:00|2e|2f|5c)/i,vUn=/^[A-Za-z]:/;wut=O.object({sessionId:O.string().min(1).describe("Session ID (UUID issued by sessions.createSession)"),path:O.string().min(1).refine(RUn,{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"),kZr=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 Iut,AUn,wUn,kUn,IUn,xut,Out,xUn,OUn,PUn,NUn,CUn,MUn,DUn,LUn,UUn,FUn,jUn,HUn,NZr,Put=v(()=>{"use strict";_l();pg();MK();Iut=65536,AUn=O.object({type:O.literal("decide"),decision:O.string().max(32),feedback:O.string().max(1e4).optional(),annotations:pI.optional()}).describe("Review decision frame (session_type=review)"),wUn=O.object({type:O.literal("answer"),answers:O.array(yfe),feedback:O.string().max(1e4).optional(),annotations:NK.optional()}).describe("Question answer frame (session_type=question)"),kUn=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."),xut=(e,t)=>{let n=JSON.stringify(e).length;n>Iut&&t.addIssue({code:O.ZodIssueCode.custom,message:`Serialized frame size ${n} exceeds ${Iut} bytes`,path:[]})},Out=O.discriminatedUnion("type",[AUn,wUn,kUn,IUn]).superRefine(xut).describe("Any client -> server WebSocket envelope"),xUn=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"),PUn=O.object({type:O.literal("heartbeat_ack"),t:O.number().optional()}).describe("Server heartbeat acknowledgement \u2014 presence was recorded; the connection is still seen as live."),NUn=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)."),CUn=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()}),MUn=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()}),LUn=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()}),UUn=O.object({type:O.literal("await_state_changed"),session_id:O.string().max(64),await_active:O.boolean()}),FUn=O.object({type:O.literal("pending_decision_changed"),session_id:O.string().max(64),queued:O.boolean()}),jUn=O.discriminatedUnion("type",[CUn,MUn,DUn,LUn,UUn,FUn]),HUn=O.object({type:O.literal("intent-event"),session_id:O.string().max(64),event:jUn}).describe("Server broadcast \u2014 a per-intent live-state event for any SPA tab subscribed to this intent's channel."),NZr=O.discriminatedUnion("type",[xUn,OUn,PUn,NUn,HUn]).superRefine(xut).describe("Any server -> client WebSocket envelope")});var vT=v(()=>{"use strict";Aut();vfe();ofe();afe();pg();ffe();gfe();kut();MK();Efe();Tfe();Put();Rfe()});function hg(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}=Nut(t[1]);return r.length===0?{text:e,removed:[]}:{text:`--- +${n}`),t.destroy(e)}function gut(e){if(typeof e!="function")throw new put(typeof e);if(e.constructor.name==="AsyncFunction")throw new put("AsyncFunction")}vD.exports=ofe;vD.exports.errorCodes=TT;vD.exports.fastify=ofe;vD.exports.default=ofe});var _l=v(()=>{nre();nre()});var T1n,afe=v(()=>{"use strict";_l();T1n=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 v1n,R1n,cfe=v(()=>{"use strict";_l();v1n=O.enum(["loopback","token"]).describe("Transport invariant \u2014 routes declare 'loopback' (v1 runtime policy) or 'token' (reserved for future bearer-token routes)."),R1n=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,ufe,_ut,RD,PK,Tut,vut,lfe,Rut,pI,A1n,w1n,NK,WYr,AD,k1n,KYr,wD,CK,kD,dfe,pg=v(()=>{"use strict";_l();cfe();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."),ufe=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)."),_ut=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."),RD=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."),PK=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."),Tut=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"),vut=Eut,lfe=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"),Rut=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"),pI=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(lfe).optional(),comments:O.array(Rut).optional()}).describe("Annotations attached to a review decision"),A1n=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"),w1n=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"),NK=O.object({comments:O.array(Rut).optional(),pins:O.array(A1n).optional(),screenshots:O.array(w1n).max(20).optional()}).describe("Annotations attached to a question answer"),WYr=O.enum(["review","question","design_direction"]).describe("Session type discriminator"),AD=O.enum(["pending","decided","answered","approved","changes_requested"]).describe("Runtime status across review | question | design_direction sessions."),k1n=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."),KYr=O.object({error:O.literal("validation_failed"),issues:O.array(k1n)}).describe("Uniform 400 response for request-body validation failure (malformed JSON, schema mismatch, oversize)"),wD=1048576,CK=131072,kD=8388608,dfe=33554432});var I1n,x1n,O1n,P1n,N1n,C1n,M1n,ffe,D1n,pfe=v(()=>{"use strict";_l();pg();I1n=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"),x1n=O.object({pins:O.array(lfe).optional(),screenshots:O.array(I1n).max(20).optional()}).describe("Annotations attached to a design-direction selection"),O1n=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:x1n.optional()}).describe("Final selection \u2014 user picked one archetype"),P1n=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"),N1n=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"),C1n=O.object({mode:O.literal("upload"),files:O.array(N1n).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"),M1n=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"),ffe=O.discriminatedUnion("mode",[O1n,P1n,C1n,M1n]).describe("POST /direction/:sessionId/select request body"),D1n=O.object({ok:O.literal(!0)}).describe("POST /direction/:sessionId/select response body")});var Aut,L1n,U1n,F1n,j1n,hfe,H1n,mfe,q1n,B1n,gfe,z1n,yfe=v(()=>{"use strict";_l();pg();Aut=O.object({selected_text:O.string().min(1).max(1e3),paragraph:O.number().int().nonnegative().max(1e4),location:O.string().max(500),comment_id:O.string().max(200).optional(),file_path:O.string().max(1e3).optional(),content_sha:O.string().max(64).optional()}).describe("Inline text-anchor metadata for inline-comment feedback"),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:RD,origin:ufe,severity:_ut.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:vut,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:PK.nullable().optional().describe("Routing hint for the feedback resolver. null/unset = router defaults to stage_revisit."),replies:O.array(Tut).optional().describe("Thread of replies on this feedback item. Empty / missing = no replies yet."),inline_anchor:Aut.nullable().optional().describe("Inline-text anchor metadata. Present when the feedback was created by selecting text in a rendered artifact and attaching a comment. Null / absent for visual-pin or plain chat feedback."),scope:O.enum(["intent","stage"]).optional().describe("Whether this feedback lives under .haiku/intents//feedback/ (intent scope, logged by the studio-level completion review) or .haiku/intents//stages//feedback/ (stage scope, the normal adversarial review output). UI shows intent-scope items with a distinguishing chip so cross-stage findings don't get hidden behind a stage tab."),iterations:O.array(O.object({bolt:O.number().int().nonnegative(),hat:O.string().max(200),started_at:O.string().max(40).optional(),completed_at:O.string().max(40).optional(),result:O.enum(["advanced","closed","reopened","rejected"]).optional(),commit:O.string().max(64).optional(),message:O.string().max(4e3).optional(),reason:O.string().max(1e3).optional()})).optional().describe("Per-bolt history of the fix loop \u2014 one entry per hat that fires against this finding. Mirrors the `iterations:` frontmatter on unit files so reviewers can see at a glance why a finding needed multiple tries."),closure_reply:O.object({text:O.string().max(2e3),at:O.string().max(40)}).optional().describe("Agent's plain-language reply to the requester at FB closure time. Set on the terminal fix-hat advance."),closure_reply_unread:O.boolean().optional().describe("True when the reply hasn't been acknowledged in the SPA yet. Flipped to false by the dismiss action.")}).describe("Wire shape of a feedback item"),U1n=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"),j1n=6e6,hfe=O.object({title:O.string().min(1).max(200),body:O.string().min(1).max(1e4),origin:ufe.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:Aut.optional(),resolution:PK.optional().describe("Author's preferred resolution path. Router defaults to stage_revisit when omitted."),attachment_data_url:O.string().max(j1n).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"),mfe=O.object({status:RD.optional(),closed_by:O.string().max(200).optional(),resolution:PK.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"),q1n=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"),B1n=O.object({feedback_id:O.string(),deleted:O.literal(!0),message:O.string()}).describe("DELETE /api/feedback/:intent/:stage/:id response body"),gfe=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"),z1n=O.object({feedback_id:O.string(),reply_index:O.number().int().nonnegative().describe("Zero-based index of the new reply inside replies[]."),status:RD,message:O.string()}).describe("POST /api/feedback/:intent/:stage/:id/replies response body")});var Sfe,bfe,G1n,MK=v(()=>{"use strict";_l();pg();Sfe=O.object({question:O.string().max(1e3).describe("Question prompt text (echoed back)"),selectedOptions:O.array(O.string().max(200)).max(50).describe("Options the user selected (may contain one or many)"),otherText:O.string().max(2e3).optional().describe("Free-text 'other' input, when the question allows it")}).describe("A single question's answer in a multi-question session"),bfe=O.object({answers:O.array(Sfe).max(50),feedback:O.string().max(1e4).optional(),annotations:NK.optional()}).describe("POST /question/:sessionId/answer request body"),G1n=O.object({ok:O.literal(!0)}).describe("POST /question/:sessionId/answer response body")});var V1n,Efe,W1n,_fe=v(()=>{"use strict";_l();pg();V1n=O.enum(["approved","changes_requested"]).describe("Canonical review decision. Anything != approved is coerced to changes_requested server-side."),Efe=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:pI.optional()}).describe("POST /review/:sessionId/decide request body"),W1n=O.object({ok:O.literal(!0),decision:V1n,feedback:O.string()}).describe("POST /review/:sessionId/decide response body")});var ID,lZr,K1n,Y1n,Z1n,Tfe,J1n,X1n,Q1n,wut,$1n,eUn,tUn,nUn,rUn,iUn,sUn,oUn,aUn,cUn,uUn,lUn,dUn,fUn,pUn,hUn,mUn,gUn,yUn,SUn,bUn,EUn,dZr,_Un,vfe=v(()=>{"use strict";_l();pg();ID=O.record(O.unknown()).describe("Opaque parsed artifact (ParsedIntent / ParsedUnit / CriterionItem / etc.)"),lZr=O.enum(["auto","ask","external","await"]).describe("Review-gate type declared in STAGE.md"),K1n=O.object({stage:O.string(),mergedIntoMain:O.boolean(),status:O.string().optional().describe("Deprecated v3 shim \u2014 derived"),phase:O.string().optional().describe("Deprecated v3 shim \u2014 derived"),started_at:O.string().optional(),completed_at:O.string().nullable().optional(),gate_entered_at:O.string().nullable().optional(),gate_outcome:O.string().nullable().optional()}).describe("Per-stage status snapshot. v4: only `stage` and `mergedIntoMain` are authoritative; other fields are deprecated v3 shims pending SPA rewrite."),Y1n=O.object({name:O.string(),content:O.string()}),Z1n=O.object({stage:O.string(),name:O.string(),content:O.string()}),Tfe=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()}),J1n=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()}),X1n=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."),Q1n=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."),wut=O.object({key:O.string(),label:O.string(),status:O.enum(["done","active","pending"])}).describe("One milestone in the granular per-stage progress track"),$1n=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(wut).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?'."),eUn=O.enum(["ad_hoc_done","open_pr","submit_external","start_intent","start_execution","complete_stage","submit_intent_review","complete_intent","approve"]),tUn=O.object({label:O.string(),kind:eUn}).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')."),nUn=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"),rUn=O.object({session_id:O.string(),session_type:O.literal("review"),status:AD,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:pI.optional(),intent:ID.optional(),units:O.array(ID).optional(),criteria:O.array(ID).optional(),mermaid:O.string().optional(),intent_mockups:O.array(ID).optional(),unit_mockups:O.record(O.array(ID)).optional(),stage_states:O.record(K1n).optional(),stage_summaries:O.record(O.string()).optional(),stage_briefs:O.record(O.string()).optional(),stage_observations:O.record(O.string()).optional(),stage_elaborations:O.record(O.string()).optional(),reflection:O.string().optional(),stage_milestones:O.record(O.array(wut)).optional(),current_state:$1n.optional(),knowledge_files:O.array(Y1n).optional(),stage_artifacts:O.array(Z1n).optional(),output_artifacts:O.array(Tfe).optional(),other_files:O.array(Tfe).optional(),intent_other_files:O.array(Tfe).optional(),unit_outputs:O.record(O.array(J1n)).optional(),output_declared_by:O.record(O.array(O.string())).optional(),previous_review:Q1n.optional(),drift:O.array(X1n).optional(),discovered_review_url:nUn.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:tUn.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)"),iUn=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"),sUn=O.object({question:O.string(),selectedOptions:O.array(O.string()),otherText:O.string().optional()}),oUn=O.object({session_id:O.string(),session_type:O.literal("question"),status:AD,title:O.string().optional(),context:O.string().optional(),questions:O.array(iUn).optional(),answers:O.array(sUn).optional(),image_urls:O.array(O.string()).optional()}).describe("Question session payload (GET /api/session/:id, session_type=question)"),aUn=O.object({name:O.string(),description:O.string(),preview_html:O.string()}),cUn=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)"),uUn=O.object({session_id:O.string(),session_type:O.literal("design_direction"),status:AD,title:O.string().optional(),intent_slug:O.string().optional(),context:O.string().optional(),archetypes:O.array(aUn).optional(),selection:cUn.nullable().optional()}).describe("Design-direction session payload (GET /api/session/:id, session_type=design_direction)"),lUn=O.enum(["studio","mode","stage","confirm","url_input"]),dUn=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)."),fUn=O.object({id:O.string()}).describe("Saved picker selection (nullable on the session)"),pUn=O.object({session_id:O.string(),session_type:O.literal("picker"),status:AD,intent_slug:O.string().optional(),kind:lUn,title:O.string(),prompt:O.string(),options:O.array(dUn),selection:fUn.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"),hUn=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"),mUn=O.object({ok:O.literal(!0),id:O.string()}).describe("Success response from POST /picker/:sessionId/select"),gUn=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."),yUn=O.discriminatedUnion("session_type",[rUn,oUn,uUn,pUn,gUn]).describe("GET /api/session/:id response body \u2014 discriminated on session_type"),SUn=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."),bUn=O.object({name:O.string(),status:O.string(),phase:O.string().optional(),iteration:O.number().optional(),iterations:O.array(O.unknown()).optional(),visits:O.number().optional()}),EUn=O.object({slug:O.string(),title:O.string(),status:O.string()}),dZr=O.object({intent:O.string(),stage:O.string().nullable(),phase:O.string().optional(),units:O.array(EUn),feedback_summary:SUn,stages:O.array(bUn)}).describe("GET /api/review/current response body"),_Un=O.object({}).describe("HEAD /api/session/:id/heartbeat \u2014 no body. 200 if session exists, 404 otherwise.")});var Rfe=v(()=>{"use strict";afe();pg();pfe();yfe();MK();_fe();vfe()});var Afe=v(()=>{"use strict"});var kut=v(()=>{"use strict";Jie();Rfe();Afe()});function wUn(e){return!(e.includes("\0")||RUn.test(e)||e.startsWith("/")||e.startsWith("\\")||AUn.test(e)||e==="."||e.split(/[\\/]+/).some(n=>n===".."))}var RUn,AUn,Iut,kZr,xut=v(()=>{"use strict";_l();RUn=/%(?:00|2e|2f|5c)/i,AUn=/^[A-Za-z]:/;Iut=O.object({sessionId:O.string().min(1).describe("Session ID (UUID issued by sessions.createSession)"),path:O.string().min(1).refine(wUn,{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"),kZr=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 Out,kUn,IUn,xUn,OUn,Put,Nut,PUn,NUn,CUn,MUn,DUn,LUn,UUn,FUn,jUn,HUn,qUn,BUn,NZr,Cut=v(()=>{"use strict";_l();pg();MK();Out=65536,kUn=O.object({type:O.literal("decide"),decision:O.string().max(32),feedback:O.string().max(1e4).optional(),annotations:pI.optional()}).describe("Review decision frame (session_type=review)"),IUn=O.object({type:O.literal("answer"),answers:O.array(Sfe),feedback:O.string().max(1e4).optional(),annotations:NK.optional()}).describe("Question answer frame (session_type=question)"),xUn=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"),OUn=O.object({type:O.literal("heartbeat"),t:O.number().optional()}).describe("Client liveness heartbeat (any session_type). Sent every 30s over the long-lived WS; the server records presence and replies heartbeat_ack."),Put=(e,t)=>{let n=JSON.stringify(e).length;n>Out&&t.addIssue({code:O.ZodIssueCode.custom,message:`Serialized frame size ${n} exceeds ${Out} bytes`,path:[]})},Nut=O.discriminatedUnion("type",[kUn,IUn,xUn,OUn]).superRefine(Put).describe("Any client -> server WebSocket envelope"),PUn=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."),NUn=O.object({type:O.literal("error"),error:O.string().max(500)}).describe("Server error frame"),CUn=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."),MUn=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)."),DUn=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()}),UUn=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()}),jUn=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()}),qUn=O.discriminatedUnion("type",[DUn,LUn,UUn,FUn,jUn,HUn]),BUn=O.object({type:O.literal("intent-event"),session_id:O.string().max(64),event:qUn}).describe("Server broadcast \u2014 a per-intent live-state event for any SPA tab subscribed to this intent's channel."),NZr=O.discriminatedUnion("type",[PUn,NUn,CUn,MUn,BUn]).superRefine(Put).describe("Any server -> client WebSocket envelope")});var vT=v(()=>{"use strict";kut();Rfe();afe();cfe();pg();pfe();yfe();xut();MK();_fe();vfe();Cut();Afe()});function hg(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}=Mut(t[1]);return r.length===0?{text:e,removed:[]}:{text:`--- ${n} ----${t[2]??""}`,removed:r}}function Nut(e){let t=e.split(/\r?\n/),n=[],r=null;for(let c of t){let u=c.match(/^([A-Za-z_][A-Za-z0-9_-]*)\s*:/);u!=null&&!c.startsWith(" ")&&!c.startsWith(" ")&&u?(r&&n.push(r),r={key:u[1],text:[c]}):r?r.text.push(c):n.push({key:null,text:[c]})}r&&n.push(r);let i=new Map,s=new Map;for(let c=0;c1&&o.push(c);let a=[];for(let c=0;c{});var OD=w((e6r,Mut)=>{var qUn=Object.prototype.toString;Mut.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 WUn(t)?"generatorfunction":"function";if(BUn(t))return"array";if(ZUn(t))return"buffer";if(YUn(t))return"arguments";if(GUn(t))return"date";if(zUn(t))return"error";if(VUn(t))return"regexp";switch(Cut(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(KUn(t))return"generator";switch(n=qUn.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 Cut(e){return typeof e.constructor=="function"?e.constructor.name:null}function BUn(e){return Array.isArray?Array.isArray(e):e instanceof Array}function zUn(e){return e instanceof Error||typeof e.message=="string"&&e.constructor&&typeof e.constructor.stackTraceLimit=="number"}function GUn(e){return e instanceof Date?!0:typeof e.toDateString=="function"&&typeof e.getDate=="function"&&typeof e.setDate=="function"}function VUn(e){return e instanceof RegExp?!0:typeof e.flags=="string"&&typeof e.ignoreCase=="boolean"&&typeof e.multiline=="boolean"&&typeof e.global=="boolean"}function WUn(e,t){return Cut(e)==="GeneratorFunction"}function KUn(e){return typeof e.throw=="function"&&typeof e.return=="function"&&typeof e.next=="function"}function YUn(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 ZUn(e){return e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}});var Lut=w((t6r,Dut)=>{"use strict";Dut.exports=function(t){return typeof t<"u"&&t!==null&&(typeof t=="object"||typeof t=="function")}});var jut=w((n6r,Fut)=>{"use strict";var Uut=Lut();Fut.exports=function(t){Uut(t)||(t={});for(var n=arguments.length,r=1;r{"use strict";var QUn=OD(),$Un=jut();qut.exports=function(e,t){typeof t=="function"&&(t={parse:t});var n=tFn(e),r={section_delimiter:"---",parse:rFn},i=$Un({},r,t),s=i.section_delimiter,o=n.content.split(/\r?\n/),a=null,c=Hut(),u=[],l=[];function d(y){n.content=y,a=[],u=[]}function f(y){l.length&&(c.key=nFn(l[0],s),c.content=y,i.parse(c,a),a.push(c),c=Hut(),u=[],l=[])}for(var p=0;p1&&o.push(c);let a=[];for(let c=0;c{});var OD=w((e6r,Lut)=>{var zUn=Object.prototype.toString;Lut.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 YUn(t)?"generatorfunction":"function";if(GUn(t))return"array";if(XUn(t))return"buffer";if(JUn(t))return"arguments";if(WUn(t))return"date";if(VUn(t))return"error";if(KUn(t))return"regexp";switch(Dut(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(ZUn(t))return"generator";switch(n=zUn.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 Dut(e){return typeof e.constructor=="function"?e.constructor.name:null}function GUn(e){return Array.isArray?Array.isArray(e):e instanceof Array}function VUn(e){return e instanceof Error||typeof e.message=="string"&&e.constructor&&typeof e.constructor.stackTraceLimit=="number"}function WUn(e){return e instanceof Date?!0:typeof e.toDateString=="function"&&typeof e.getDate=="function"&&typeof e.setDate=="function"}function KUn(e){return e instanceof RegExp?!0:typeof e.flags=="string"&&typeof e.ignoreCase=="boolean"&&typeof e.multiline=="boolean"&&typeof e.global=="boolean"}function YUn(e,t){return Dut(e)==="GeneratorFunction"}function ZUn(e){return typeof e.throw=="function"&&typeof e.return=="function"&&typeof e.next=="function"}function JUn(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 XUn(e){return e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}});var Fut=w((t6r,Uut)=>{"use strict";Uut.exports=function(t){return typeof t<"u"&&t!==null&&(typeof t=="object"||typeof t=="function")}});var qut=w((n6r,Hut)=>{"use strict";var jut=Fut();Hut.exports=function(t){jut(t)||(t={});for(var n=arguments.length,r=1;r{"use strict";var eFn=OD(),tFn=qut();zut.exports=function(e,t){typeof t=="function"&&(t={parse:t});var n=rFn(e),r={section_delimiter:"---",parse:sFn},i=tFn({},r,t),s=i.section_delimiter,o=n.content.split(/\r?\n/),a=null,c=But(),u=[],l=[];function d(y){n.content=y,a=[],u=[]}function f(y){l.length&&(c.key=iFn(l[0],s),c.content=y,i.parse(c,a),a.push(c),c=But(),u=[],l=[])}for(var p=0;p{"use strict";function zut(e){return typeof e>"u"||e===null}function sFn(e){return typeof e=="object"&&e!==null}function oFn(e){return Array.isArray(e)?e:zut(e)?[]:[e]}function aFn(e,t){var n,r,i,s;if(t)for(s=Object.keys(t),n=0,r=s.length;n{"use strict";function PD(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||""}PD.prototype=Object.create(Error.prototype);PD.prototype.constructor=PD;PD.prototype.toString=function(t){var n=this.name+": ";return n+=this.reason||"(unknown reason)",!t&&this.mark&&(n+=" "+this.mark.toString()),n};Gut.exports=PD});var Kut=w((o6r,Wut)=>{"use strict";var Vut=AT();function Afe(e,t,n,r,i){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=i}Afe.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 nFn(e,t){return!(e.slice(0,t.length)!==t||e.charAt(t.length+1)===t.slice(-1))}function rFn(e){if(eFn(e)!=="object"&&(e={content:e}),typeof e.content!="string"&&!oFn(e.content))throw new TypeError("expected a buffer or string");return e.content=e.content.toString(),e.sections=[],e}function iFn(e,t){return e?e.slice(t.length).trim():""}function But(){return{key:"",data:"",content:""}}function sFn(e){return e}function oFn(e){return e&&e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}});var AT=w((i6r,RT)=>{"use strict";function Vut(e){return typeof e>"u"||e===null}function aFn(e){return typeof e=="object"&&e!==null}function cFn(e){return Array.isArray(e)?e:Vut(e)?[]:[e]}function uFn(e,t){var n,r,i,s;if(t)for(s=Object.keys(t),n=0,r=s.length;n{"use strict";function PD(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||""}PD.prototype=Object.create(Error.prototype);PD.prototype.constructor=PD;PD.prototype.toString=function(t){var n=this.name+": ";return n+=this.reason||"(unknown reason)",!t&&this.mark&&(n+=" "+this.mark.toString()),n};Wut.exports=PD});var Zut=w((o6r,Yut)=>{"use strict";var Kut=AT();function wfe(e,t,n,r,i){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=i}wfe.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),Vut.repeat(" ",t)+r+a+s+` -`+Vut.repeat(" ",t+this.position-i+r.length)+"^"};Afe.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};Wut.exports=Afe});var To=w((a6r,Zut)=>{"use strict";var Yut=mI(),lFn=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],dFn=["scalar","sequence","mapping"];function fFn(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(r){t[String(r)]=n})}),t}function pFn(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(lFn.indexOf(n)===-1)throw new Yut('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=fFn(t.styleAliases||null),dFn.indexOf(this.kind)===-1)throw new Yut('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}Zut.exports=pFn});var wT=w((c6r,Xut)=>{"use strict";var Jut=AT(),DK=mI(),hFn=To();function wfe(e,t,n){var r=[];return e.include.forEach(function(i){n=wfe(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 mFn(){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 gFn=To();Qut.exports=new gFn("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var tlt=w((l6r,elt)=>{"use strict";var yFn=To();elt.exports=new yFn("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var rlt=w((d6r,nlt)=>{"use strict";var SFn=To();nlt.exports=new SFn("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var LK=w((f6r,ilt)=>{"use strict";var bFn=wT();ilt.exports=new bFn({explicit:[$ut(),tlt(),rlt()]})});var olt=w((p6r,slt)=>{"use strict";var EFn=To();function _Fn(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function TFn(){return null}function vFn(e){return e===null}slt.exports=new EFn("tag:yaml.org,2002:null",{kind:"scalar",resolve:_Fn,construct:TFn,predicate:vFn,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var clt=w((h6r,alt)=>{"use strict";var RFn=To();function AFn(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function wFn(e){return e==="true"||e==="True"||e==="TRUE"}function kFn(e){return Object.prototype.toString.call(e)==="[object Boolean]"}alt.exports=new RFn("tag:yaml.org,2002:bool",{kind:"scalar",resolve:AFn,construct:wFn,predicate:kFn,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 llt=w((m6r,ult)=>{"use strict";var IFn=AT(),xFn=To();function OFn(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function PFn(e){return 48<=e&&e<=55}function NFn(e){return 48<=e&&e<=57}function CFn(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 plt=w((g6r,flt)=>{"use strict";var dlt=AT(),LFn=To(),UFn=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 FFn(e){return!(e===null||!UFn.test(e)||e[e.length-1]==="_")}function jFn(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 HFn=/^[-+]?[0-9]+e/;function qFn(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(dlt.isNegativeZero(e))return"-0.0";return n=e.toString(10),HFn.test(n)?n.replace("e",".e"):n}function BFn(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||dlt.isNegativeZero(e))}flt.exports=new LFn("tag:yaml.org,2002:float",{kind:"scalar",resolve:FFn,construct:jFn,predicate:BFn,represent:qFn,defaultStyle:"lowercase"})});var kfe=w((y6r,hlt)=>{"use strict";var zFn=wT();hlt.exports=new zFn({include:[LK()],implicit:[olt(),clt(),llt(),plt()]})});var Ife=w((S6r,mlt)=>{"use strict";var GFn=wT();mlt.exports=new GFn({include:[kfe()]})});var blt=w((b6r,Slt)=>{"use strict";var VFn=To(),glt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),ylt=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 WFn(e){return e===null?!1:glt.exec(e)!==null||ylt.exec(e)!==null}function KFn(e){var t,n,r,i,s,o,a,c=0,u=null,l,d,f;if(t=glt.exec(e),t===null&&(t=ylt.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 YFn(e){return e.toISOString()}Slt.exports=new VFn("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:WFn,construct:KFn,instanceOf:Date,represent:YFn})});var _lt=w((E6r,Elt)=>{"use strict";var ZFn=To();function JFn(e){return e==="<<"||e===null}Elt.exports=new ZFn("tag:yaml.org,2002:merge",{kind:"scalar",resolve:JFn})});var Rlt=w((_6r,vlt)=>{"use strict";var kT;try{Tlt=Y,kT=Tlt("buffer").Buffer}catch{}var Tlt,XFn=To(),xfe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function QFn(e){if(e===null)return!1;var t,n,r=0,i=e.length,s=xfe;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8===0}function $Fn(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,s=xfe,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),kT?kT.from?kT.from(a):new kT(a):a}function ejn(e){var t="",n=0,r,i,s=e.length,o=xfe;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 tjn(e){return kT&&kT.isBuffer(e)}vlt.exports=new XFn("tag:yaml.org,2002:binary",{kind:"scalar",resolve:QFn,construct:$Fn,predicate:tjn,represent:ejn})});var wlt=w((v6r,Alt)=>{"use strict";var njn=To(),rjn=Object.prototype.hasOwnProperty,ijn=Object.prototype.toString;function sjn(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 ajn=To(),cjn=Object.prototype.toString;function ujn(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 djn=To(),fjn=Object.prototype.hasOwnProperty;function pjn(e){if(e===null)return!0;var t,n=e;for(t in n)if(fjn.call(n,t)&&n[t]!==null)return!1;return!0}function hjn(e){return e!==null?e:{}}xlt.exports=new djn("tag:yaml.org,2002:set",{kind:"mapping",resolve:pjn,construct:hjn})});var yI=w((w6r,Plt)=>{"use strict";var mjn=wT();Plt.exports=new mjn({include:[Ife()],implicit:[blt(),_lt()],explicit:[Rlt(),wlt(),Ilt(),Olt()]})});var Clt=w((k6r,Nlt)=>{"use strict";var gjn=To();function yjn(){return!0}function Sjn(){}function bjn(){return""}function Ejn(e){return typeof e>"u"}Nlt.exports=new gjn("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:yjn,construct:Sjn,predicate:Ejn,represent:bjn})});var Dlt=w((I6r,Mlt)=>{"use strict";var _jn=To();function Tjn(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 vjn(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 Rjn(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function Ajn(e){return Object.prototype.toString.call(e)==="[object RegExp]"}Mlt.exports=new _jn("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:Tjn,construct:vjn,predicate:Ajn,represent:Rjn})});var Flt=w((x6r,Ult)=>{"use strict";var UK;try{Llt=Y,UK=Llt("esprima")}catch{typeof window<"u"&&(UK=window.esprima)}var Llt,wjn=To();function kjn(e){if(e===null)return!1;try{var t="("+e+")",n=UK.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=UK.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 xjn(e){return e.toString()}function Ojn(e){return Object.prototype.toString.call(e)==="[object Function]"}Ult.exports=new wjn("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:kjn,construct:Ijn,predicate:Ojn,represent:xjn})});var ND=w((P6r,Hlt)=>{"use strict";var jlt=wT();Hlt.exports=jlt.DEFAULT=new jlt({include:[yI()],explicit:[Clt(),Dlt(),Flt()]})});var odt=w((N6r,CD)=>{"use strict";var mg=AT(),Klt=mI(),Pjn=Kut(),Ylt=yI(),Njn=ND(),db=Object.prototype.hasOwnProperty,FK=1,Zlt=2,Jlt=3,jK=4,Ofe=1,Cjn=2,qlt=3,Mjn=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Djn=/[\x85\u2028\u2029]/,Ljn=/[,\[\]\{\}]/,Xlt=/^(?:!|!!|![a-z\-]+!)$/i,Qlt=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Blt(e){return Object.prototype.toString.call(e)}function Ph(e){return e===10||e===13}function xT(e){return e===9||e===32}function Pu(e){return e===9||e===32||e===10||e===13}function SI(e){return e===44||e===91||e===93||e===123||e===125}function Ujn(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function Fjn(e){return e===120?2:e===117?4:e===85?8:0}function jjn(e){return 48<=e&&e<=57?e-48:-1}function zlt(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 Hjn(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function $lt(e,t,n){t==="__proto__"?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!0,value:n}):e[t]=n}var edt=new Array(256),tdt=new Array(256);for(IT=0;IT<256;IT++)edt[IT]=zlt(IT)?1:0,tdt[IT]=zlt(IT);var IT;function qjn(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Njn,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 ndt(e,t){return new Klt(t,new Pjn(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Lt(e,t){throw ndt(e,t)}function HK(e,t){e.onWarning&&e.onWarning.call(null,ndt(e,t))}var Glt={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&&HK(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],Xlt.test(i)||Lt(t,"ill-formed tag handle (first argument) of the TAG directive"),db.call(t.tagMap,i)&&Lt(t,'there is a previously declared suffix for "'+i+'" tag handle'),Qlt.test(s)||Lt(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[i]=s}};function lb(e,t,n,r){var i,s,o,a;if(t1&&(e.result+=mg.repeat(` -`,t-1))}function Bjn(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)||SI(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(i=e.input.charCodeAt(e.position+1),Pu(i)||n&&SI(i)))return!1;for(e.kind="scalar",e.result="",s=o=e.position,a=!1;p!==0;){if(p===58){if(i=e.input.charCodeAt(e.position+1),Pu(i)||n&&SI(i))break}else if(p===35){if(r=e.input.charCodeAt(e.position-1),Pu(r))break}else{if(e.position===e.lineStart&&qK(e)||n&&SI(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&&(lb(e,s,o,!1),Nfe(e,e.line-c),s=o=e.position,a=!1),xT(p)||(o=e.position+1),p=e.input.charCodeAt(++e.position)}return lb(e,s,o,!1),e.result?!0:(e.kind=d,e.result=f,!1)}function zjn(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(lb(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)?(lb(e,r,i,!0),Nfe(e,to(e,!1,t)),r=i=e.position):e.position===e.lineStart&&qK(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 Gjn(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 lb(e,n,e.position,!0),e.position++,!0;if(a===92){if(lb(e,n,e.position,!0),a=e.input.charCodeAt(++e.position),Ph(a))to(e,!1,t);else if(a<256&&edt[a])e.result+=tdt[a],e.position++;else if((o=Fjn(a))>0){for(i=o,s=0;i>0;i--)a=e.input.charCodeAt(++e.position),(o=Ujn(a))>=0?s=(s<<4)+o:Lt(e,"expected hexadecimal character");e.result+=Hjn(s),e.position++}else Lt(e,"unknown escape sequence");n=r=e.position}else Ph(a)?(lb(e,n,r,!0),Nfe(e,to(e,!1,t)),n=r=e.position):e.position===e.lineStart&&qK(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 Vjn(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,EI(e,t,FK,!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),EI(e,t,FK,!1,!0),m=e.result),d?bI(e,s,f,h,p,m):u?s.push(bI(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 Wjn(e,t){var n,r,i=Ofe,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)Ofe===i?i=d===43?qlt:Cjn:Lt(e,"repeat of a chomping mode identifier");else if((l=jjn(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(xT(d)){do d=e.input.charCodeAt(++e.position);while(xT(d));if(d===35)do d=e.input.charCodeAt(++e.position);while(!Ph(d)&&d!==0)}for(;d!==0;){for(Pfe(e),e.lineIndent=0,d=e.input.charCodeAt(e.position);(!o||e.lineIndenta&&(a=e.lineIndent),Ph(d)){c++;continue}if(e.lineIndentn/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(i,o),Kut.repeat(" ",t)+r+a+s+` +`+Kut.repeat(" ",t+this.position-i+r.length)+"^"};wfe.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};Yut.exports=wfe});var To=w((a6r,Xut)=>{"use strict";var Jut=mI(),fFn=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],pFn=["scalar","sequence","mapping"];function hFn(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(r){t[String(r)]=n})}),t}function mFn(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(fFn.indexOf(n)===-1)throw new Jut('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=hFn(t.styleAliases||null),pFn.indexOf(this.kind)===-1)throw new Jut('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}Xut.exports=mFn});var wT=w((c6r,$ut)=>{"use strict";var Qut=AT(),DK=mI(),gFn=To();function kfe(e,t,n){var r=[];return e.include.forEach(function(i){n=kfe(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 yFn(){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 SFn=To();elt.exports=new SFn("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var rlt=w((l6r,nlt)=>{"use strict";var bFn=To();nlt.exports=new bFn("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var slt=w((d6r,ilt)=>{"use strict";var EFn=To();ilt.exports=new EFn("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var LK=w((f6r,olt)=>{"use strict";var _Fn=wT();olt.exports=new _Fn({explicit:[tlt(),rlt(),slt()]})});var clt=w((p6r,alt)=>{"use strict";var TFn=To();function vFn(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function RFn(){return null}function AFn(e){return e===null}alt.exports=new TFn("tag:yaml.org,2002:null",{kind:"scalar",resolve:vFn,construct:RFn,predicate:AFn,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var llt=w((h6r,ult)=>{"use strict";var wFn=To();function kFn(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 IFn(e){return e==="true"||e==="True"||e==="TRUE"}function xFn(e){return Object.prototype.toString.call(e)==="[object Boolean]"}ult.exports=new wFn("tag:yaml.org,2002:bool",{kind:"scalar",resolve:kFn,construct:IFn,predicate:xFn,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 flt=w((m6r,dlt)=>{"use strict";var OFn=AT(),PFn=To();function NFn(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function CFn(e){return 48<=e&&e<=55}function MFn(e){return 48<=e&&e<=57}function DFn(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 mlt=w((g6r,hlt)=>{"use strict";var plt=AT(),FFn=To(),jFn=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||!jFn.test(e)||e[e.length-1]==="_")}function qFn(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 BFn=/^[-+]?[0-9]+e/;function zFn(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(plt.isNegativeZero(e))return"-0.0";return n=e.toString(10),BFn.test(n)?n.replace("e",".e"):n}function GFn(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||plt.isNegativeZero(e))}hlt.exports=new FFn("tag:yaml.org,2002:float",{kind:"scalar",resolve:HFn,construct:qFn,predicate:GFn,represent:zFn,defaultStyle:"lowercase"})});var Ife=w((y6r,glt)=>{"use strict";var VFn=wT();glt.exports=new VFn({include:[LK()],implicit:[clt(),llt(),flt(),mlt()]})});var xfe=w((S6r,ylt)=>{"use strict";var WFn=wT();ylt.exports=new WFn({include:[Ife()]})});var _lt=w((b6r,Elt)=>{"use strict";var KFn=To(),Slt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),blt=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 YFn(e){return e===null?!1:Slt.exec(e)!==null||blt.exec(e)!==null}function ZFn(e){var t,n,r,i,s,o,a,c=0,u=null,l,d,f;if(t=Slt.exec(e),t===null&&(t=blt.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 JFn(e){return e.toISOString()}Elt.exports=new KFn("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:YFn,construct:ZFn,instanceOf:Date,represent:JFn})});var vlt=w((E6r,Tlt)=>{"use strict";var XFn=To();function QFn(e){return e==="<<"||e===null}Tlt.exports=new XFn("tag:yaml.org,2002:merge",{kind:"scalar",resolve:QFn})});var wlt=w((_6r,Alt)=>{"use strict";var kT;try{Rlt=Y,kT=Rlt("buffer").Buffer}catch{}var Rlt,$Fn=To(),Ofe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function ejn(e){if(e===null)return!1;var t,n,r=0,i=e.length,s=Ofe;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8===0}function tjn(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,s=Ofe,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),kT?kT.from?kT.from(a):new kT(a):a}function njn(e){var t="",n=0,r,i,s=e.length,o=Ofe;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 rjn(e){return kT&&kT.isBuffer(e)}Alt.exports=new $Fn("tag:yaml.org,2002:binary",{kind:"scalar",resolve:ejn,construct:tjn,predicate:rjn,represent:njn})});var Ilt=w((v6r,klt)=>{"use strict";var ijn=To(),sjn=Object.prototype.hasOwnProperty,ojn=Object.prototype.toString;function ajn(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 ujn=To(),ljn=Object.prototype.toString;function djn(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 pjn=To(),hjn=Object.prototype.hasOwnProperty;function mjn(e){if(e===null)return!0;var t,n=e;for(t in n)if(hjn.call(n,t)&&n[t]!==null)return!1;return!0}function gjn(e){return e!==null?e:{}}Plt.exports=new pjn("tag:yaml.org,2002:set",{kind:"mapping",resolve:mjn,construct:gjn})});var yI=w((w6r,Clt)=>{"use strict";var yjn=wT();Clt.exports=new yjn({include:[xfe()],implicit:[_lt(),vlt()],explicit:[wlt(),Ilt(),Olt(),Nlt()]})});var Dlt=w((k6r,Mlt)=>{"use strict";var Sjn=To();function bjn(){return!0}function Ejn(){}function _jn(){return""}function Tjn(e){return typeof e>"u"}Mlt.exports=new Sjn("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:bjn,construct:Ejn,predicate:Tjn,represent:_jn})});var Ult=w((I6r,Llt)=>{"use strict";var vjn=To();function Rjn(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 Ajn(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 wjn(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function kjn(e){return Object.prototype.toString.call(e)==="[object RegExp]"}Llt.exports=new vjn("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:Rjn,construct:Ajn,predicate:kjn,represent:wjn})});var Hlt=w((x6r,jlt)=>{"use strict";var UK;try{Flt=Y,UK=Flt("esprima")}catch{typeof window<"u"&&(UK=window.esprima)}var Flt,Ijn=To();function xjn(e){if(e===null)return!1;try{var t="("+e+")",n=UK.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 Ojn(e){var t="("+e+")",n=UK.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 Pjn(e){return e.toString()}function Njn(e){return Object.prototype.toString.call(e)==="[object Function]"}jlt.exports=new Ijn("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:xjn,construct:Ojn,predicate:Njn,represent:Pjn})});var ND=w((P6r,Blt)=>{"use strict";var qlt=wT();Blt.exports=qlt.DEFAULT=new qlt({include:[yI()],explicit:[Dlt(),Ult(),Hlt()]})});var cdt=w((N6r,CD)=>{"use strict";var mg=AT(),Zlt=mI(),Cjn=Zut(),Jlt=yI(),Mjn=ND(),db=Object.prototype.hasOwnProperty,FK=1,Xlt=2,Qlt=3,jK=4,Pfe=1,Djn=2,zlt=3,Ljn=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Ujn=/[\x85\u2028\u2029]/,Fjn=/[,\[\]\{\}]/,$lt=/^(?:!|!!|![a-z\-]+!)$/i,edt=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Glt(e){return Object.prototype.toString.call(e)}function Ph(e){return e===10||e===13}function xT(e){return e===9||e===32}function Pu(e){return e===9||e===32||e===10||e===13}function SI(e){return e===44||e===91||e===93||e===123||e===125}function jjn(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 qjn(e){return 48<=e&&e<=57?e-48:-1}function Vlt(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 Bjn(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function tdt(e,t,n){t==="__proto__"?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!0,value:n}):e[t]=n}var ndt=new Array(256),rdt=new Array(256);for(IT=0;IT<256;IT++)ndt[IT]=Vlt(IT)?1:0,rdt[IT]=Vlt(IT);var IT;function zjn(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Mjn,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function idt(e,t){return new Zlt(t,new Cjn(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Lt(e,t){throw idt(e,t)}function HK(e,t){e.onWarning&&e.onWarning.call(null,idt(e,t))}var Wlt={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&&HK(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],$lt.test(i)||Lt(t,"ill-formed tag handle (first argument) of the TAG directive"),db.call(t.tagMap,i)&&Lt(t,'there is a previously declared suffix for "'+i+'" tag handle'),edt.test(s)||Lt(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[i]=s}};function lb(e,t,n,r){var i,s,o,a;if(t1&&(e.result+=mg.repeat(` +`,t-1))}function Gjn(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)||SI(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(i=e.input.charCodeAt(e.position+1),Pu(i)||n&&SI(i)))return!1;for(e.kind="scalar",e.result="",s=o=e.position,a=!1;p!==0;){if(p===58){if(i=e.input.charCodeAt(e.position+1),Pu(i)||n&&SI(i))break}else if(p===35){if(r=e.input.charCodeAt(e.position-1),Pu(r))break}else{if(e.position===e.lineStart&&qK(e)||n&&SI(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&&(lb(e,s,o,!1),Cfe(e,e.line-c),s=o=e.position,a=!1),xT(p)||(o=e.position+1),p=e.input.charCodeAt(++e.position)}return lb(e,s,o,!1),e.result?!0:(e.kind=d,e.result=f,!1)}function Vjn(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(lb(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)?(lb(e,r,i,!0),Cfe(e,to(e,!1,t)),r=i=e.position):e.position===e.lineStart&&qK(e)?Lt(e,"unexpected end of the document within a single quoted scalar"):(e.position++,i=e.position);Lt(e,"unexpected end of the stream within a single quoted scalar")}function Wjn(e,t){var n,r,i,s,o,a;if(a=e.input.charCodeAt(e.position),a!==34)return!1;for(e.kind="scalar",e.result="",e.position++,n=r=e.position;(a=e.input.charCodeAt(e.position))!==0;){if(a===34)return lb(e,n,e.position,!0),e.position++,!0;if(a===92){if(lb(e,n,e.position,!0),a=e.input.charCodeAt(++e.position),Ph(a))to(e,!1,t);else if(a<256&&ndt[a])e.result+=rdt[a],e.position++;else if((o=Hjn(a))>0){for(i=o,s=0;i>0;i--)a=e.input.charCodeAt(++e.position),(o=jjn(a))>=0?s=(s<<4)+o:Lt(e,"expected hexadecimal character");e.result+=Bjn(s),e.position++}else Lt(e,"unknown escape sequence");n=r=e.position}else Ph(a)?(lb(e,n,r,!0),Cfe(e,to(e,!1,t)),n=r=e.position):e.position===e.lineStart&&qK(e)?Lt(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}Lt(e,"unexpected end of the stream within a double quoted scalar")}function Kjn(e,t){var n=!0,r,i=e.tag,s,o=e.anchor,a,c,u,l,d,f={},p,h,m,g;if(g=e.input.charCodeAt(e.position),g===91)c=93,d=!1,s=[];else if(g===123)c=125,d=!0,s={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=s),g=e.input.charCodeAt(++e.position);g!==0;){if(to(e,!0,t),g=e.input.charCodeAt(e.position),g===c)return e.position++,e.tag=i,e.anchor=o,e.kind=d?"mapping":"sequence",e.result=s,!0;n||Lt(e,"missed comma between flow collection entries"),h=p=m=null,u=l=!1,g===63&&(a=e.input.charCodeAt(e.position+1),Pu(a)&&(u=l=!0,e.position++,to(e,!0,t))),r=e.line,EI(e,t,FK,!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),EI(e,t,FK,!1,!0),m=e.result),d?bI(e,s,f,h,p,m):u?s.push(bI(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 Yjn(e,t){var n,r,i=Pfe,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)Pfe===i?i=d===43?zlt:Djn:Lt(e,"repeat of a chomping mode identifier");else if((l=qjn(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(xT(d)){do d=e.input.charCodeAt(++e.position);while(xT(d));if(d===35)do d=e.input.charCodeAt(++e.position);while(!Ph(d)&&d!==0)}for(;d!==0;){for(Nfe(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)&&(EI(e,t,jK,!0,i)&&(h?f=e.result:p=e.result),h||(bI(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 Xjn(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(;xT(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&&Pfe(e),db.call(Glt,r)?Glt[r](e,r,i):HK(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"),EI(e,e.lineIndent-1,jK,!1,!0),to(e,!0,-1),e.checkLineBreaks&&Djn.test(e.input.slice(t,e.position))&&HK(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&qK(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=rdt(e,n);if(typeof t!="function")return r;for(var i=0,s=r.length;i"u"&&(n=t,t=null),idt(e,t,mg.extend({schema:Ylt},n))}function $jn(e,t){return sdt(e,mg.extend({schema:Ylt},t))}CD.exports.loadAll=idt;CD.exports.load=sdt;CD.exports.safeLoadAll=Qjn;CD.exports.safeLoad=$jn});var xdt=w((C6r,Lfe)=>{"use strict";var DD=AT(),LD=mI(),eHn=ND(),tHn=yI(),hdt=Object.prototype.toString,mdt=Object.prototype.hasOwnProperty,nHn=9,MD=10,rHn=13,iHn=32,sHn=33,oHn=34,gdt=35,aHn=37,cHn=38,uHn=39,lHn=42,ydt=44,dHn=45,Sdt=58,fHn=61,pHn=62,hHn=63,mHn=64,bdt=91,Edt=93,gHn=96,_dt=123,yHn=124,Tdt=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 SHn=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function bHn(e,t){var n,r,i,s,o,a,c;if(t===null)return{};for(n={},r=Object.keys(t),i=0,s=r.length;it)&&c!==0)Lt(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(EI(e,t,jK,!0,i)&&(h?f=e.result:p=e.result),h||(bI(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 $jn(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(;xT(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&&Nfe(e),db.call(Wlt,r)?Wlt[r](e,r,i):HK(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"),EI(e,e.lineIndent-1,jK,!1,!0),to(e,!0,-1),e.checkLineBreaks&&Ujn.test(e.input.slice(t,e.position))&&HK(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&qK(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=sdt(e,n);if(typeof t!="function")return r;for(var i=0,s=r.length;i"u"&&(n=t,t=null),odt(e,t,mg.extend({schema:Jlt},n))}function tHn(e,t){return adt(e,mg.extend({schema:Jlt},t))}CD.exports.loadAll=odt;CD.exports.load=adt;CD.exports.safeLoadAll=eHn;CD.exports.safeLoad=tHn});var Pdt=w((C6r,Ufe)=>{"use strict";var DD=AT(),LD=mI(),nHn=ND(),rHn=yI(),gdt=Object.prototype.toString,ydt=Object.prototype.hasOwnProperty,iHn=9,MD=10,sHn=13,oHn=32,aHn=33,cHn=34,Sdt=35,uHn=37,lHn=38,dHn=39,fHn=42,bdt=44,pHn=45,Edt=58,hHn=61,mHn=62,gHn=63,yHn=64,_dt=91,Tdt=93,SHn=96,vdt=123,bHn=124,Rdt=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 EHn=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function _Hn(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&&udt(o,a)}else{for(s=0;sr&&e[d+1]!==" ",d=s);else if(!_I(o))return BK;a=s>0?e.charCodeAt(s-1):null,f=f&&udt(o,a)}u=u||l&&s-d-1>r&&e[d+1]!==" "}return!c&&!u?f&&!i(e)?Rdt:Adt:n>9&&vdt(e)?BK:u?kdt:wdt}function AHn(e,t,n,r){e.dump=(function(){if(t.length===0)return"''";if(!e.noCompatMode&&SHn.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 _Hn(e,c)}switch(RHn(t,o,e.indent,s,a)){case Rdt:return t;case Adt:return"'"+t.replace(/'/g,"''")+"'";case wdt:return"|"+ldt(t,e.indent)+ddt(cdt(t,i));case kdt:return">"+ldt(t,e.indent)+ddt(cdt(wHn(t,s),i));case BK:return'"'+kHn(t,s)+'"';default:throw new LD("impossible error: invalid scalar style")}})()}function ldt(e,t){var n=vdt(e)?String(t):"",r=e[e.length-1]===` +`&&(s+=n),s+=o;return s}function Mfe(e,t){return` +`+DD.repeat(" ",e.indent*t)}function vHn(e,t){var n,r,i;for(n=0,r=e.implicitTypes.length;n0?e.charCodeAt(s-1):null,f=f&&ddt(o,a)}else{for(s=0;sr&&e[d+1]!==" ",d=s);else if(!_I(o))return BK;a=s>0?e.charCodeAt(s-1):null,f=f&&ddt(o,a)}u=u||l&&s-d-1>r&&e[d+1]!==" "}return!c&&!u?f&&!i(e)?wdt:kdt:n>9&&Adt(e)?BK:u?xdt:Idt}function kHn(e,t,n,r){e.dump=(function(){if(t.length===0)return"''";if(!e.noCompatMode&&EHn.indexOf(t)!==-1)return"'"+t+"'";var i=e.indent*Math.max(1,n),s=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-i),o=r||e.flowLevel>-1&&n>=e.flowLevel;function a(c){return vHn(e,c)}switch(wHn(t,o,e.indent,s,a)){case wdt:return t;case kdt:return"'"+t.replace(/'/g,"''")+"'";case Idt:return"|"+fdt(t,e.indent)+pdt(ldt(t,i));case xdt:return">"+fdt(t,e.indent)+pdt(ldt(IHn(t,s),i));case BK:return'"'+xHn(t,s)+'"';default:throw new LD("impossible error: invalid scalar style")}})()}function fdt(e,t){var n=Adt(e)?String(t):"",r=e[e.length-1]===` `,i=r&&(e[e.length-2]===` `||e===` `),s=i?"+":r?"":"-";return n+s+` -`}function ddt(e){return e[e.length-1]===` -`?e.slice(0,-1):e}function wHn(e,t){for(var n=/(\n+)([^\n]*)/g,r=(function(){var u=e.indexOf(` -`);return u=u!==-1?u:e.length,n.lastIndex=u,fdt(e.slice(0,u),t)})(),i=e[0]===` +`}function pdt(e){return e[e.length-1]===` +`?e.slice(0,-1):e}function IHn(e,t){for(var n=/(\n+)([^\n]*)/g,r=(function(){var u=e.indexOf(` +`);return u=u!==-1?u:e.length,n.lastIndex=u,hdt(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!==""?` -`:"")+fdt(c,t),i=s}return r}function fdt(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+=` +`:"")+hdt(c,t),i=s}return r}function hdt(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 kHn(e){for(var t="",n,r,i,s=0;s=55296&&n<=56319&&(r=e.charCodeAt(s+1),r>=56320&&r<=57343)){t+=adt((n-55296)*1024+r-56320+65536),s++;continue}i=pc[n],t+=!i&&_I(n)?e[s]:i||adt(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?"":" "),OT(e,t,u,!1,!1)&&(l+=e.dump,r+=l));e.tag=i,e.dump="{"+r+"}"}function PHn(e,t,n,r){var i="",s=e.tag,o=Object.keys(n),a,c,u,l,d,f;if(e.sortKeys===!0)o.sort();else if(typeof e.sortKeys=="function")o.sort(e.sortKeys);else if(e.sortKeys)throw new LD("sortKeys must be a boolean or a function");for(a=0,c=o.length;a1024,d&&(e.dump&&MD===e.dump.charCodeAt(0)?f+="?":f+="? "),f+=e.dump,d&&(f+=Cfe(e,t)),OT(e,t+1,l,!0,d)&&(e.dump&&MD===e.dump.charCodeAt(0)?f+=":":f+=": ",f+=e.dump,i+=f));e.tag=s,e.dump=i||"{}"}function pdt(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 OT(e,t,n,r,i,s){e.tag=null,e.dump=n,pdt(e,n,!1)||pdt(e,n,!0);var o=hdt.call(e.dump);r&&(r=e.flowLevel<0||e.flowLevel>t);var a=o==="[object Object]"||o==="[object Array]",c,u;if(a&&(c=e.duplicates.indexOf(n),u=c!==-1),(e.tag!==null&&e.tag!=="?"||u||e.indent!==2&&t>0)&&(i=!1),u&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(a&&u&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),o==="[object Object]")r&&Object.keys(e.dump).length!==0?(PHn(e,t,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(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?(xHn(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!=="?"&&AHn(e,e.dump,t,s);else{if(e.skipInvalid)return!1;throw new LD("unacceptable kind of an object to dump "+o)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function NHn(e,t){var n=[],r=[],i,s;for(Mfe(e,n,r),i=0,s=r.length;i{"use strict";var zK=odt(),Odt=xdt();function GK(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}ys.exports.Type=To();ys.exports.Schema=wT();ys.exports.FAILSAFE_SCHEMA=LK();ys.exports.JSON_SCHEMA=kfe();ys.exports.CORE_SCHEMA=Ife();ys.exports.DEFAULT_SAFE_SCHEMA=yI();ys.exports.DEFAULT_FULL_SCHEMA=ND();ys.exports.load=zK.load;ys.exports.loadAll=zK.loadAll;ys.exports.safeLoad=zK.safeLoad;ys.exports.safeLoadAll=zK.safeLoadAll;ys.exports.dump=Odt.dump;ys.exports.safeDump=Odt.safeDump;ys.exports.YAMLException=mI();ys.exports.MINIMAL_SCHEMA=LK();ys.exports.SAFE_SCHEMA=yI();ys.exports.DEFAULT_SCHEMA=ND();ys.exports.scan=GK("scan");ys.exports.parse=GK("parse");ys.exports.compose=GK("compose");ys.exports.addConstructor=GK("addConstructor")});var Cdt=w((D6r,Ndt)=>{"use strict";var MHn=Pdt();Ndt.exports=MHn});var Ufe=w((exports,module)=>{"use strict";var yaml=Cdt(),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 xHn(e){for(var t="",n,r,i,s=0;s=55296&&n<=56319&&(r=e.charCodeAt(s+1),r>=56320&&r<=57343)){t+=udt((n-55296)*1024+r-56320+65536),s++;continue}i=pc[n],t+=!i&&_I(n)?e[s]:i||udt(n)}return t}function OHn(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?"":" "),OT(e,t,u,!1,!1)&&(l+=e.dump,r+=l));e.tag=i,e.dump="{"+r+"}"}function CHn(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 LD("sortKeys must be a boolean or a function");for(a=0,c=o.length;a1024,d&&(e.dump&&MD===e.dump.charCodeAt(0)?f+="?":f+="? "),f+=e.dump,d&&(f+=Mfe(e,t)),OT(e,t+1,l,!0,d)&&(e.dump&&MD===e.dump.charCodeAt(0)?f+=":":f+=": ",f+=e.dump,i+=f));e.tag=s,e.dump=i||"{}"}function mdt(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 OT(e,t,n,r,i,s){e.tag=null,e.dump=n,mdt(e,n,!1)||mdt(e,n,!0);var o=gdt.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?(CHn(e,t,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(NHn(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?(PHn(e,l,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(OHn(e,l,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump))}else if(o==="[object String]")e.tag!=="?"&&kHn(e,e.dump,t,s);else{if(e.skipInvalid)return!1;throw new LD("unacceptable kind of an object to dump "+o)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function MHn(e,t){var n=[],r=[],i,s;for(Dfe(e,n,r),i=0,s=r.length;i{"use strict";var zK=cdt(),Ndt=Pdt();function GK(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}ys.exports.Type=To();ys.exports.Schema=wT();ys.exports.FAILSAFE_SCHEMA=LK();ys.exports.JSON_SCHEMA=Ife();ys.exports.CORE_SCHEMA=xfe();ys.exports.DEFAULT_SAFE_SCHEMA=yI();ys.exports.DEFAULT_FULL_SCHEMA=ND();ys.exports.load=zK.load;ys.exports.loadAll=zK.loadAll;ys.exports.safeLoad=zK.safeLoad;ys.exports.safeLoadAll=zK.safeLoadAll;ys.exports.dump=Ndt.dump;ys.exports.safeDump=Ndt.safeDump;ys.exports.YAMLException=mI();ys.exports.MINIMAL_SCHEMA=LK();ys.exports.SAFE_SCHEMA=yI();ys.exports.DEFAULT_SCHEMA=ND();ys.exports.scan=GK("scan");ys.exports.parse=GK("parse");ys.exports.compose=GK("compose");ys.exports.addConstructor=GK("addConstructor")});var Ddt=w((D6r,Mdt)=>{"use strict";var LHn=Cdt();Mdt.exports=LHn});var Ffe=w((exports,module)=>{"use strict";var yaml=Ddt(),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 Ddt=w((L6r,Mdt)=>{"use strict";Mdt.exports=function(e){return typeof e=="string"&&e.charAt(0)==="\uFEFF"?e.slice(1):e}});var VK=w(gg=>{"use strict";var Ldt=Ddt(),Udt=OD();gg.define=function(e,t,n){Reflect.defineProperty(e,t,{enumerable:!1,configurable:!0,writable:!0,value:n})};gg.isBuffer=function(e){return Udt(e)==="buffer"};gg.isObject=function(e){return Udt(e)==="object"};gg.toBuffer=function(e){return typeof e=="string"?Buffer.from(e):e};gg.toString=function(e){if(gg.isBuffer(e))return Ldt(String(e));if(typeof e!="string")throw new TypeError("expected input to be a string or buffer");return Ldt(e)};gg.arrayify=function(e){return e?Array.isArray(e)?e:[e]:[]};gg.startsWith=function(e,t,n){return typeof n!="number"&&(n=t.length),e.slice(0,n)===t}});var UD=w((F6r,Fdt)=>{"use strict";var DHn=Ufe(),LHn=VK();Fdt.exports=function(e){let t=Object.assign({},e);return t.delimiters=LHn.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 Ffe=w((j6r,jdt)=>{"use strict";jdt.exports=function(e,t){let n=t.engines[e]||t.engines[UHn(e)];if(typeof n>"u")throw new Error('gray-matter engine "'+e+'" is not registered');return typeof n=="function"&&(n={parse:n}),n};function UHn(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 jfe=w((H6r,Hdt)=>{"use strict";var FHn=OD(),jHn=Ffe(),HHn=UD();Hdt.exports=function(e,t,n){if(t==null&&n==null)switch(FHn(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=HHn(n);if(t==null){if(!i.data)return e;t=i.data}let s=e.language||i.language,o=jHn(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=TI(a)+TI(u)+TI(c)),typeof e.excerpt=="string"&&e.excerpt!==""&&r.indexOf(e.excerpt.trim())===-1&&(l+=TI(e.excerpt)+TI(c)),l+TI(r)};function TI(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 Udt=w((L6r,Ldt)=>{"use strict";Ldt.exports=function(e){return typeof e=="string"&&e.charAt(0)==="\uFEFF"?e.slice(1):e}});var VK=w(gg=>{"use strict";var Fdt=Udt(),jdt=OD();gg.define=function(e,t,n){Reflect.defineProperty(e,t,{enumerable:!1,configurable:!0,writable:!0,value:n})};gg.isBuffer=function(e){return jdt(e)==="buffer"};gg.isObject=function(e){return jdt(e)==="object"};gg.toBuffer=function(e){return typeof e=="string"?Buffer.from(e):e};gg.toString=function(e){if(gg.isBuffer(e))return Fdt(String(e));if(typeof e!="string")throw new TypeError("expected input to be a string or buffer");return Fdt(e)};gg.arrayify=function(e){return e?Array.isArray(e)?e:[e]:[]};gg.startsWith=function(e,t,n){return typeof n!="number"&&(n=t.length),e.slice(0,n)===t}});var UD=w((F6r,Hdt)=>{"use strict";var UHn=Ffe(),FHn=VK();Hdt.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({},UHn,t.parsers,t.engines),t}});var jfe=w((j6r,qdt)=>{"use strict";qdt.exports=function(e,t){let n=t.engines[e]||t.engines[jHn(e)];if(typeof n>"u")throw new Error('gray-matter engine "'+e+'" is not registered');return typeof n=="function"&&(n={parse:n}),n};function jHn(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 Hfe=w((H6r,Bdt)=>{"use strict";var HHn=OD(),qHn=jfe(),BHn=UD();Bdt.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=BHn(n);if(t==null){if(!i.data)return e;t=i.data}let s=e.language||i.language,o=qHn(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=TI(a)+TI(u)+TI(c)),typeof e.excerpt=="string"&&e.excerpt!==""&&r.indexOf(e.excerpt.trim())===-1&&(l+=TI(e.excerpt)+TI(c)),l+TI(r)};function TI(e){return e.slice(-1)!==` `?e+` -`:e}});var Bdt=w((q6r,qdt)=>{"use strict";var qHn=UD();qdt.exports=function(e,t){let n=qHn(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 Vdt=w((B6r,Gdt)=>{"use strict";var zdt=OD(),BHn=jfe(),vI=VK();Gdt.exports=function(e){return zdt(e)!=="object"&&(e={content:e}),zdt(e.data)!=="object"&&(e.data={}),e.contents&&e.content==null&&(e.content=e.contents),vI.define(e,"orig",vI.toBuffer(e.content)),vI.define(e,"language",e.language||""),vI.define(e,"matter",e.matter||""),vI.define(e,"stringify",function(t,n){return n&&n.language&&(e.language=n.language),BHn(e,t,n)}),e.content=vI.toString(e.content),e.isEmpty=!1,e.excerpt="",e}});var Kdt=w((z6r,Wdt)=>{"use strict";var zHn=Ffe(),GHn=UD();Wdt.exports=function(e,t,n){let r=GHn(n),i=zHn(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((G6r,Jdt)=>{"use strict";var VHn=Y("fs"),WHn=But(),Hfe=UD(),KHn=jfe(),Ydt=Bdt(),YHn=Ufe(),ZHn=Vdt(),JHn=Kdt(),Zdt=VK();function Yc(e,t){if(e==="")return{data:{},content:e,excerpt:"",orig:e};let n=ZHn(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 XHn(n,t)}function XHn(e,t){let n=Hfe(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 Ydt(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=JHn(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))),Ydt(e,n),(n.sections===!0||typeof n.section=="function")&&WHn(e,n.section),e}Yc.engines=YHn;Yc.stringify=function(e,t,n){return typeof e=="string"&&(e=Yc(e,n)),KHn(e,t,n)};Yc.read=function(e,t){let n=VHn.readFileSync(e,"utf8"),r=Yc(n,t);return r.path=e,r};Yc.test=function(e,t){return Zdt.startsWith(e,Hfe(t).delimiters[0])};Yc.language=function(e,t){let r=Hfe(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={}};Jdt.exports=Yc});import{execFileSync as QHn}from"node:child_process";function WK(e,t){try{return QHn(e,t,{stdio:"ignore",timeout:5e3}),!0}catch{return!1}}function FD(e){let t=e.toLowerCase().replace(/[\s_]/g,"-"),n=Qdt[t];if(!n)return!1;let r=Xdt.get(t);if(r!==void 0)return r;let i=n.probe();return Xdt.set(t,i),i}function qfe(){return Object.keys(Qdt).filter(FD)}var Qdt,Xdt,Bfe=v(()=>{"use strict";Qdt={docker:{name:"docker",displayName:"Docker",probe:()=>WK("docker",["info"])},"docker-compose":{name:"docker-compose",displayName:"Docker Compose",probe:()=>WK("docker",["compose","version"])||WK("docker-compose",["version"])},make:{name:"make",displayName:"Make",probe:()=>WK("make",["--version"])}},Xdt=new Map});function eqn(e,t={}){for(let n of t.requiredTools??[])if(!FD(n))return{environment:!0,requiresTool:n,reason:`gate '${e.name}' needs '${n}', which isn't available in this environment`};return $Hn.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 KK(e,t={}){for(let n of e){let r=eqn(n,t);if(r.environment)return r}return{environment:!1,reason:null}}var $Hn,zfe=v(()=>{"use strict";Bfe();$Hn=[/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=YK.get(e)??[];if(r.some(i=>i.to===t))throw new Error(`registerMigrator: duplicate edge ${e} \u2192 ${t}`);r.push({to:t,migrator:n}),YK.set(e,r)}function tqn(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=YK.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 ZK(e,t,n){if(t===n)return{from:t,to:n,steps:0,chain:[],details:hc()};let r=tqn(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=(YK.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 YK,Nh=v(()=>{"use strict";YK=new Map});import{join as $dt}from"node:path";function rr(e,t){if(/[/\\]|\.\./.test(e))throw new Error(`Invalid ${t}: "${e}"`);return e}function eft(){let e=nn();return[$dt(process.cwd(),".haiku","studios"),$dt(e,"studios")]}var Gfe=v(()=>{"use strict";Ci();ze();ze()});function tft(e){return typeof e=="string"&&rqn.has(e)}function RI(e){return tft(e)?e:void 0}function fb(e){let t=[["unit",e.unit],["hat",e.hat],["stage",e.stage],["studio",e.studio]];for(let[n,r]of t){let i=RI(r);if(i)return{model:i,source:n}}return{model:void 0,source:"none"}}function Vfe(e){if(tft(e))return iqn[e]}var nqn,rqn,iqn,pb=v(()=>{"use strict";nqn=["haiku","sonnet","opus"],rqn=new Set(nqn),iqn={haiku:"sonnet",sonnet:"opus",opus:void 0}});import{existsSync as Ss,lstatSync as sqn,readdirSync as Ch,readFileSync as Cu,statSync as nft}from"node:fs";import{join as Yt}from"node:path";function ift(e){try{if(!Ss(e))return;let{data:t}=re(Cu(e,"utf8"));return RI(t.model)}catch{return}}function es(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 Cd(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 sft(e){return e==="plan"||e==="build"||e==="verify"?e:void 0}function oft(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 oft(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:sft(o.role),raw:s}}return n}function hb(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"hat");let r=null;for(let i of oft(e,t)){let s=Yt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Kfe(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??hb(e,t,n)}function aft(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 aft(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 qD(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"agent");let r=null;for(let i of aft(e,t)){let s=Yt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Yfe(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 oqn(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 yg(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 BD(e){if(!e||!Ss(e))return null;let{body:t}=re(Cu(e,"utf8"));return(t||"").trim()||null}function AI(e,t,n,r=!1){return BD(r?Kfe(e,t,n):hb(e,t,n))}function Mh(e,t,n){let r=t?qD(e,t,n):yg(e)[n]??null;return BD(r)}function wI(e,t,n){return BD(Yfe(e,t,n))}function JK(e,t,n){return BD(oqn(e,t,n))}function XK(e,t,n){return(Zfe(e,t,n)?.body||"").trim()||null}function Dh(e,t){return(es(e,t)?.body||"").trim()||null}function cft(e,t){return BD(zD(e)[t]??null)}function uft(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 QK(e){rr(e,"studio");let t={};for(let n of uft(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:sft(s.role),raw:i}}return t}function zD(e){rr(e,"studio");let t={};for(let n of uft(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 lft(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=aqn(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 aqn(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 $K(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=rft(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&nft(u).isDirectory())&&l){let f=Wfe(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=rft(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&nft(u).isDirectory())&&l){let f=Wfe(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 Wfe(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=sqn(s)}catch{continue}if(!a.isSymbolicLink())if(a.isDirectory())r.push(Wfe(s,o));else{let c;try{c=Cu(s,"utf8")}catch{continue}r.push(`### ${o} +`:e}});var Gdt=w((q6r,zdt)=>{"use strict";var zHn=UD();zdt.exports=function(e,t){let n=zHn(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((B6r,Wdt)=>{"use strict";var Vdt=OD(),GHn=Hfe(),vI=VK();Wdt.exports=function(e){return Vdt(e)!=="object"&&(e={content:e}),Vdt(e.data)!=="object"&&(e.data={}),e.contents&&e.content==null&&(e.content=e.contents),vI.define(e,"orig",vI.toBuffer(e.content)),vI.define(e,"language",e.language||""),vI.define(e,"matter",e.matter||""),vI.define(e,"stringify",function(t,n){return n&&n.language&&(e.language=n.language),GHn(e,t,n)}),e.content=vI.toString(e.content),e.isEmpty=!1,e.excerpt="",e}});var Zdt=w((z6r,Ydt)=>{"use strict";var VHn=jfe(),WHn=UD();Ydt.exports=function(e,t,n){let r=WHn(n),i=VHn(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((G6r,Qdt)=>{"use strict";var KHn=Y("fs"),YHn=Gut(),qfe=UD(),ZHn=Hfe(),Jdt=Gdt(),JHn=Ffe(),XHn=Kdt(),QHn=Zdt(),Xdt=VK();function Yc(e,t){if(e==="")return{data:{},content:e,excerpt:"",orig:e};let n=XHn(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 $Hn(n,t)}function $Hn(e,t){let n=qfe(t),r=n.delimiters[0],i=` +`+n.delimiters[1],s=e.content;n.language&&(e.language=n.language);let o=r.length;if(!Xdt.startsWith(s,r,o))return Jdt(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=QHn(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))),Jdt(e,n),(n.sections===!0||typeof n.section=="function")&&YHn(e,n.section),e}Yc.engines=JHn;Yc.stringify=function(e,t,n){return typeof e=="string"&&(e=Yc(e,n)),ZHn(e,t,n)};Yc.read=function(e,t){let n=KHn.readFileSync(e,"utf8"),r=Yc(n,t);return r.path=e,r};Yc.test=function(e,t){return Xdt.startsWith(e,qfe(t).delimiters[0])};Yc.language=function(e,t){let r=qfe(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={}};Qdt.exports=Yc});import{execFileSync as eqn}from"node:child_process";function WK(e,t){try{return eqn(e,t,{stdio:"ignore",timeout:5e3}),!0}catch{return!1}}function FD(e){let t=e.toLowerCase().replace(/[\s_]/g,"-"),n=eft[t];if(!n)return!1;let r=$dt.get(t);if(r!==void 0)return r;let i=n.probe();return $dt.set(t,i),i}function Bfe(){return Object.keys(eft).filter(FD)}var eft,$dt,zfe=v(()=>{"use strict";eft={docker:{name:"docker",displayName:"Docker",probe:()=>WK("docker",["info"])},"docker-compose":{name:"docker-compose",displayName:"Docker Compose",probe:()=>WK("docker",["compose","version"])||WK("docker-compose",["version"])},make:{name:"make",displayName:"Make",probe:()=>WK("make",["--version"])}},$dt=new Map});function nqn(e,t={}){for(let n of t.requiredTools??[])if(!FD(n))return{environment:!0,requiresTool:n,reason:`gate '${e.name}' needs '${n}', which isn't available in this environment`};return tqn.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 KK(e,t={}){for(let n of e){let r=nqn(n,t);if(r.environment)return r}return{environment:!1,reason:null}}var tqn,Gfe=v(()=>{"use strict";zfe();tqn=[/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=YK.get(e)??[];if(r.some(i=>i.to===t))throw new Error(`registerMigrator: duplicate edge ${e} \u2192 ${t}`);r.push({to:t,migrator:n}),YK.set(e,r)}function rqn(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=YK.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 ZK(e,t,n){if(t===n)return{from:t,to:n,steps:0,chain:[],details:hc()};let r=rqn(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=(YK.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 YK,Nh=v(()=>{"use strict";YK=new Map});import{join as tft}from"node:path";function rr(e,t){if(/[/\\]|\.\./.test(e))throw new Error(`Invalid ${t}: "${e}"`);return e}function nft(){let e=nn();return[tft(process.cwd(),".haiku","studios"),tft(e,"studios")]}var Vfe=v(()=>{"use strict";Ci();ze();ze()});function rft(e){return typeof e=="string"&&sqn.has(e)}function RI(e){return rft(e)?e:void 0}function fb(e){let t=[["unit",e.unit],["hat",e.hat],["stage",e.stage],["studio",e.studio]];for(let[n,r]of t){let i=RI(r);if(i)return{model:i,source:n}}return{model:void 0,source:"none"}}function Wfe(e){if(rft(e))return oqn[e]}var iqn,sqn,oqn,pb=v(()=>{"use strict";iqn=["haiku","sonnet","opus"],sqn=new Set(iqn),oqn={haiku:"sonnet",sonnet:"opus",opus:void 0}});import{existsSync as Ss,lstatSync as aqn,readdirSync as Ch,readFileSync as Cu,statSync as ift}from"node:fs";import{join as Yt}from"node:path";function oft(e){try{if(!Ss(e))return;let{data:t}=re(Cu(e,"utf8"));return RI(t.model)}catch{return}}function es(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 Cd(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 aft(e){return e==="plan"||e==="build"||e==="verify"?e:void 0}function cft(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 cft(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:aft(o.role),raw:s}}return n}function hb(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"hat");let r=null;for(let i of cft(e,t)){let s=Yt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Yfe(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??hb(e,t,n)}function uft(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 uft(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 qD(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"agent");let r=null;for(let i of uft(e,t)){let s=Yt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Zfe(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"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 cqn(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 yg(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 BD(e){if(!e||!Ss(e))return null;let{body:t}=re(Cu(e,"utf8"));return(t||"").trim()||null}function AI(e,t,n,r=!1){return BD(r?Yfe(e,t,n):hb(e,t,n))}function Mh(e,t,n){let r=t?qD(e,t,n):yg(e)[n]??null;return BD(r)}function wI(e,t,n){return BD(Zfe(e,t,n))}function JK(e,t,n){return BD(cqn(e,t,n))}function XK(e,t,n){return(Jfe(e,t,n)?.body||"").trim()||null}function Dh(e,t){return(es(e,t)?.body||"").trim()||null}function lft(e,t){return BD(zD(e)[t]??null)}function dft(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 QK(e){rr(e,"studio");let t={};for(let n of dft(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:aft(s.role),raw:i}}return t}function zD(e){rr(e,"studio");let t={};for(let n of dft(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 fft(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=uqn(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 uqn(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 $K(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=sft(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&ift(u).isDirectory())&&l){let f=Kfe(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=sft(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&ift(u).isDirectory())&&l){let f=Kfe(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 Kfe(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=aqn(s)}catch{continue}if(!a.isSymbolicLink())if(a.isDirectory())r.push(Kfe(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 rft(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 uqn(){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 kI(){let e=Mu().join("|"),t=Date.now();if(HD&&HD.key===e&&HD.expiresAt>t)return HD.value;let n=uqn();return HD={key:e,expiresAt:t+cqn,value:n},n}function si(e){if(!e)return null;let t=e.toLowerCase(),n=kI();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 Zfe(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 dft(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,cqn,HD,Kn=v(()=>{"use strict";Gfe();Ci();pb();ze();Mu=eft;cqn=2e3,HD=null});import{spawnSync as lqn}from"node:child_process";import{readFileSync as dqn}from"node:fs";import{homedir as fqn}from"node:os";import{join as Jfe}from"node:path";function Md(e){let t=(process.env[`HAIKU_${e}`]??"").trim();return t||(process.env[e]??"").trim()}function fft(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 pqn(){let e=Md("OTEL_EXPORTER_OTLP_LOGS_ENDPOINT");return e||`${(Md("OTEL_EXPORTER_OTLP_ENDPOINT")||"http://localhost:4318").replace(/\/$/,"")}/v1/logs`}function hqn(){let e=Md("OTEL_EXPORTER_OTLP_LOGS_HEADERS");return fft(e||Md("OTEL_EXPORTER_OTLP_HEADERS"))}function mqn(){let e=Md("OTEL_EXPORTER_OTLP_LOGS_PROTOCOL");return e||Md("OTEL_EXPORTER_OTLP_PROTOCOL")||"http/json"}function gqn(){let e=Number(Md("OTEL_EXPORTER_OTLP_LOGS_TIMEOUT"));if(Number.isFinite(e)&&e>0)return e;let t=Number(Md("OTEL_EXPORTER_OTLP_TIMEOUT"));return Number.isFinite(t)&&t>0?t:1e4}function yqn(){return Md("OTEL_LOGS_EXPORTER").toLowerCase()||"otlp"}function Sqn(e){try{let t=dqn(e,"utf8"),n=JSON.parse(t);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{}return null}function bqn(){let e={},t=fqn(),n=process.cwd(),r=[t?Jfe(t,".claude","settings.json"):null,Jfe(n,".claude","settings.json"),Jfe(n,".claude","settings.local.json")].filter(i=>i!==null);for(let i of r){let s=Sqn(i);s&&Object.assign(e,s)}return e}function Eqn(){let t=bqn().otelHeadersHelper;return typeof t=="string"?t.trim():""}function Tqn(){let e=Number(Md("CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS"));return Number.isFinite(e)&&e>0?e:_qn}function vqn(e){let[t,...n]=e.split(/\s+/).filter(Boolean);if(!t)return null;let r=lqn(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 Rqn(){let e=Tqn();if(II!==null&&Date.now()-Xfe({key:c,value:{stringValue:u}}))],s=JSON.stringify({resourceLogs:[{resource:{attributes:xqn},scopeLogs:[{scope:{name:"haiku"},logRecords:[{timeUnixNano:r,severityNumber:9,severityText:"INFO",body:{stringValue:e},attributes:i}]}]}]}),o=Rqn(),a={"Content-Type":"application/json",...kqn,...o};fetch(wqn,{method:"POST",headers:a,body:s,signal:AbortSignal.timeout(Iqn)}).catch(()=>{})}var $fe,_qn,II,Xfe,wqn,kqn,hft,Iqn,xqn,Qfe,epe,mft,Oqn,Pqn,pft,vo=v(()=>{"use strict";Ci();$fe=Go.telemetry;_qn=174e4,II=null,Xfe=0;wqn=pqn(),kqn=hqn(),hft=mqn(),Iqn=gqn(),xqn=Aqn(),Qfe=yqn(),epe=Qfe==="otlp",mft=hft==="http/json";$fe&&!epe&&Qfe!=="none"&&console.error(`[haiku/telemetry] OTEL_LOGS_EXPORTER="${Qfe}" not supported \u2014 telemetry disabled. Use "otlp" or unset.`);$fe&&epe&&!mft&&console.error(`[haiku/telemetry] OTLP protocol "${hft}" not supported \u2014 only http/json is implemented. Telemetry disabled.`);Oqn=$fe&&epe&&mft,Pqn=new Set(["diff_unified","excerpt","file_content","file_body","user_email","user_name","message_body","finding_body","fb_body","content","password","passwd","pwd","token","access_token","refresh_token","id_token","bearer_token","bearer","api_key","apikey","api-key","authorization","auth_header","auth","secret","client_secret","signing_secret","credential","credentials","session_id","cookie","private_key","pem"]),pft=new Set});import{existsSync as Lu,mkdirSync as Cqn,readdirSync as xI,readFileSync as yft,renameSync as Mqn,rmSync as tpe,writeFileSync as Dqn}from"node:fs";import{dirname as Lqn,join as ro}from"node:path";function qqn(e){return!1}function OI(e){let t=yft(e,"utf8"),n=(0,npe.default)(t);return{data:n.data,body:n.content}}function rpe(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 ipe(e,t,n){let r=npe.default.stringify(n,t);Dqn(e,r)}function spe(e,t){let n={};for(let[r,i]of Object.entries(e))t.has(r)||(n[r]=i);return n}function bft(e){for(let t of e)if(typeof t=="string"&&t.length>0)return t;return new Date().toISOString()}function Gqn(e,t){let n=ro(e,"intent.md");Lu(n)&&rpe(n,()=>{let{data:r,body:i}=OI(n),s=spe(r,Uqn);s.plugin_version=Sft,(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),ipe(n,s,i),t.intent_md_migrated=!0},"intent.md")}function Vqn(e,t,n,r){let i=ro(e,"units");if(!Lu(i))return;let s=xI(i,{withFileTypes:!0});for(let o of s){if(!o.isFile()||!o.name.endsWith(".md"))continue;let a=ro(i,o.name);rpe(a,()=>Kqn(a,t,n,r),`unit ${o.name}`)}}function Wqn(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 Kqn(e,t,n,r){let{data:i,body:s}=OI(e),o=i.status==="completed",a=typeof i.completed_at=="string"?i.completed_at:null,c=spe(i,Fqn);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=bft([a]);Wqn(c,u,n,r,t),t.units_with_synthesized_approval++}ipe(e,c,s),t.units_migrated++}function gft(e,t,n){if(!Lu(e))return;let r=xI(e,{withFileTypes:!0});for(let i of r){if(!i.isFile()||!i.name.endsWith(".md"))continue;let s=ro(e,i.name);rpe(s,()=>Zqn(s,t,n),`feedback ${i.name}`)}}function Yqn(e,t,n){let r=t.upstream_stage;if(typeof r!="string"||!r)return null;let s=Lqn(e).match(/\/stages\/([^/]+)\/feedback\/?$/);if((s?s[1]:"")===r)return null;let a=ro(n,"stages",r,"feedback");if(!Lu(a))try{Cqn(a,{recursive:!0})}catch{return null}let c=new Set;for(let h of xI(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:(Mqn(e,p),p)}function Zqn(e,t,n){let{data:r,body:i}=OI(e),s=typeof r.status=="string"?r.status:"",o=typeof r.closed_by=="string"?r.closed_by:null,a=spe(r,Bqn);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&&(zqn.has(s)?(a.closed_at=bft([o,r.created_at]),c=!0):a.closed_at=null),ipe(e,a,i),n.feedback_migrated++,c&&n.feedback_with_synthesized_closure++,Yqn(e,r,t)&&n.feedback_relocated++}function Jqn(e){let{intentDir:t}=e,n=hc();Gqn(t,n);let r="",i=ro(t,"intent.md");if(Lu(i))try{let o=OI(i).data;typeof o.studio=="string"&&(r=o.studio)}catch{r=""}let s=ro(t,"stages");if(Lu(s))for(let o of xI(s,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=ro(s,o.name),c=o.name;Vqn(a,n,r,c),gft(ro(a,"feedback"),t,n);let u=ro(a,"state.json");Lu(u)&&(tpe(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)&&(tpe(d,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}}gft(ro(t,"feedback"),t,n);for(let o of["baseline.json","drift-markers.json","baseline-content"]){let a=ro(t,o);Lu(a)&&(tpe(a,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}return n}function e3(e){let t=ro(e,"intent.md");if(Lu(t))try{let r=OI(t).data;for(let i of jqn)if(i in r)return!0}catch{}let n=ro(e,"stages");if(!Lu(n))return!1;for(let r of xI(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=ro(n,r.name),s=ro(i,"units");if(Lu(s)){let a=xI(s).filter(c=>c.endsWith(".md"));for(let c of a)try{let u=OI(ro(s,c)).data;for(let l of Hqn)if(l in u)return!0;if(qqn(u))return!0}catch{}}let o=ro(i,"state.json");if(Lu(o))try{let a=JSON.parse(yft(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 npe,Sft,Uqn,Fqn,jqn,Hqn,Bqn,zqn,t3=v(()=>{"use strict";npe=Re(Kt(),1);Kn();vo();Nh();Sft="4.0.0",Uqn=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"]),Fqn=new Set(["status","hat","bolt","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]),jqn=new Set(["active_stage","phase","iteration","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at","composite","intent_reviewed","autopilot"]),Hqn=new Set(["status","bolt","hat","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]);Bqn=new Set(["status","bolt","triaged_at","closed_by","resolution","iteration","visit","integrator_attempts","upstream_stage"]),zqn=new Set(["closed","answered","addressed","rejected"]);Nu("0",Sft,Jqn)});var MI={};Ar(MI,{GIT_NETWORK_TIMEOUT_MS:()=>Ra,GIT_NONINTERACTIVE_ENV:()=>Aa,addTempWorktree:()=>s3,branchAheadOfOrigin:()=>u3,branchExists:()=>Pt,buildCompareUrl:()=>c3,checkoutFromBranchOnIntentMain:()=>lBn,cleanupDiscoveryWorktree:()=>mBn,cleanupFixChainWorktree:()=>f3,cleanupIntentWorktrees:()=>QD,cleanupOrphanedStageBranches:()=>l3,cleanupUnitWorktree:()=>Npe,commitAndPushFromWorktree:()=>a3,consolidateStageBranches:()=>vpe,createDiscoveryWorktree:()=>xpe,createFixChainWorktree:()=>Ppe,createIntentBranch:()=>PI,createStageBranch:()=>_pe,createUnitWorktree:()=>kpe,deleteBranch:()=>$D,deleteStageBranch:()=>bb,detectPrTool:()=>CT,discoveryBranchName:()=>CI,discoveryWorktreePath:()=>NI,ensureOnIntentMain:()=>bpe,ensureOnStageBranch:()=>yr,ensureStageBranch:()=>Sb,fetchOrigin:()=>NT,finalizeIntentBranches:()=>Cpe,fixChainBranchName:()=>JD,fixChainWorktreePath:()=>Sg,getCurrentBranch:()=>gr,getMainlineBranch:()=>Zo,hasGitRemote:()=>fpe,hasNoMergeDebt:()=>WD,isAncestor:()=>Uu,isBranchMerged:()=>Zc,isCurrentWorktreeLocked:()=>cBn,isLiveWorktree:()=>Rft,isMergeInProgress:()=>gb,isOnIntentBranch:()=>iBn,isOnStageBranch:()=>Epe,listIntentBranches:()=>i3,listOrphanDiscreteIntents:()=>lpe,markPullRequestReady:()=>ype,mergeDiscoveryWorktree:()=>Ope,mergeFixChainWorktree:()=>XD,mergeStageBranchForward:()=>Tpe,mergeStageBranchIntoMain:()=>ZD,mergeUnitWorktree:()=>Ipe,openIntentDraftPullRequest:()=>mpe,openPullRequest:()=>MT,openStageDraftPullRequest:()=>gpe,openStagePullRequest:()=>nBn,prepareRevisitBranch:()=>gBn,pushBranchToOrigin:()=>Lh,pushFixChainWorktree:()=>hpe,pushStageBranch:()=>YD,pushUnitWorktree:()=>ppe,readFileFromBranch:()=>Rpe,reconcileIntentBranches:()=>Spe,reconcileMisroutedStageMerges:()=>rBn,refsHaveIdenticalTrees:()=>r3,removeTempWorktree:()=>o3,resolveMainlineRef:()=>upe,syncBranchDownstream:()=>cpe,uncommittedAgentWork:()=>Ape,unitBranchExists:()=>dpe,unitSpecInWorktree:()=>aBn,unitWorktreePath:()=>yb,writeOnIntentMain:()=>uBn});import{execFileSync as Kr}from"node:child_process";import{existsSync as io,writeFileSync as ope,mkdirSync as VD,mkdtempSync as Xqn,readFileSync as Qqn,rmSync as ape}from"node:fs";import{tmpdir as $qn}from"node:os";import{join as ts}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 eBn(e){if(!(e instanceof Error))return String(e);let t=e.stderr;return[e.message,t?t.toString():""].join(` -`)}function r3(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 gb(){if(!Ee())return!1;let e=ae(["git","rev-parse","--git-dir"]);if(!e)return!1;let t=e.startsWith("/")?e:ts(process.cwd(),e);for(let n of["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(io(ts(t,n)))return!0;return!1}function WD(e,t){return!!(r3(e,t)||Uu(e,t))}function n3(e,t){try{return Kr(e[0],e.slice(1),{encoding:"utf8",stdio:"pipe",cwd:t,timeout:Ra,env:Aa}).trim()}catch{return""}}function gr(){return ae(["git","rev-parse","--abbrev-ref","HEAD"])}function Pt(e){return Ee()?ae(["git","rev-parse","--verify",e])!=="":!1}function cpe(e){if(!Ee())return{ok:!0,performed:!1,message:"non-git mode"};let t=Zo(),n=`haiku/${e}/main`,r=gr(),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&&!WD(c,n)){let u=tBn(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}/`)&&!r3(r,n)){let s=Tft(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 tBn(e,t,n,r,i){if(n===t)return Tft(e,r,i);try{return Uh(t,o=>KD(["-C",o],e,i,r))}catch(s){return{ok:!1,performed:!1,message:s instanceof Error?s.message:String(s)}}}function KD(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};d3(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 Tft(e,t,n){return KD([],e,n,t)}function Zo(){if(!Ee())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 upe(){if(!Ee())return"";let e=Zo();return ae(["git","rev-parse","--verify",e])?e:ae(["git","rev-parse","--verify",`origin/${e}`])?`origin/${e}`:""}function NT(){if(!Ee())return!1;try{return Kr("git",["fetch","--prune","origin"],{stdio:"pipe",timeout:Ra,env:Aa}),!0}catch{return!1}}function i3(){if(!Ee())return[];let e=new Set,t=ae(["git","for-each-ref","--format=%(refname:short)","refs/heads/haiku"]);for(let r of t.split(` +`)}function sft(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 dqn(){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 kI(){let e=Mu().join("|"),t=Date.now();if(HD&&HD.key===e&&HD.expiresAt>t)return HD.value;let n=dqn();return HD={key:e,expiresAt:t+lqn,value:n},n}function si(e){if(!e)return null;let t=e.toLowerCase(),n=kI();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 Jfe(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 pft(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,lqn,HD,Kn=v(()=>{"use strict";Vfe();Ci();pb();ze();Mu=nft;lqn=2e3,HD=null});import{spawnSync as fqn}from"node:child_process";import{readFileSync as pqn}from"node:fs";import{homedir as hqn}from"node:os";import{join as Xfe}from"node:path";function Md(e){let t=(process.env[`HAIKU_${e}`]??"").trim();return t||(process.env[e]??"").trim()}function hft(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 mqn(){let e=Md("OTEL_EXPORTER_OTLP_LOGS_ENDPOINT");return e||`${(Md("OTEL_EXPORTER_OTLP_ENDPOINT")||"http://localhost:4318").replace(/\/$/,"")}/v1/logs`}function gqn(){let e=Md("OTEL_EXPORTER_OTLP_LOGS_HEADERS");return hft(e||Md("OTEL_EXPORTER_OTLP_HEADERS"))}function yqn(){let e=Md("OTEL_EXPORTER_OTLP_LOGS_PROTOCOL");return e||Md("OTEL_EXPORTER_OTLP_PROTOCOL")||"http/json"}function Sqn(){let e=Number(Md("OTEL_EXPORTER_OTLP_LOGS_TIMEOUT"));if(Number.isFinite(e)&&e>0)return e;let t=Number(Md("OTEL_EXPORTER_OTLP_TIMEOUT"));return Number.isFinite(t)&&t>0?t:1e4}function bqn(){return Md("OTEL_LOGS_EXPORTER").toLowerCase()||"otlp"}function Eqn(e){try{let t=pqn(e,"utf8"),n=JSON.parse(t);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{}return null}function _qn(){let e={},t=hqn(),n=process.cwd(),r=[t?Xfe(t,".claude","settings.json"):null,Xfe(n,".claude","settings.json"),Xfe(n,".claude","settings.local.json")].filter(i=>i!==null);for(let i of r){let s=Eqn(i);s&&Object.assign(e,s)}return e}function Tqn(){let t=_qn().otelHeadersHelper;return typeof t=="string"?t.trim():""}function Rqn(){let e=Number(Md("CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS"));return Number.isFinite(e)&&e>0?e:vqn}function Aqn(e){let[t,...n]=e.split(/\s+/).filter(Boolean);if(!t)return null;let r=fqn(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 wqn(){let e=Rqn();if(II!==null&&Date.now()-Qfe({key:c,value:{stringValue:u}}))],s=JSON.stringify({resourceLogs:[{resource:{attributes:Pqn},scopeLogs:[{scope:{name:"haiku"},logRecords:[{timeUnixNano:r,severityNumber:9,severityText:"INFO",body:{stringValue:e},attributes:i}]}]}]}),o=wqn(),a={"Content-Type":"application/json",...xqn,...o};fetch(Iqn,{method:"POST",headers:a,body:s,signal:AbortSignal.timeout(Oqn)}).catch(()=>{})}var epe,vqn,II,Qfe,Iqn,xqn,gft,Oqn,Pqn,$fe,tpe,yft,Nqn,Cqn,mft,vo=v(()=>{"use strict";Ci();epe=Go.telemetry;vqn=174e4,II=null,Qfe=0;Iqn=mqn(),xqn=gqn(),gft=yqn(),Oqn=Sqn(),Pqn=kqn(),$fe=bqn(),tpe=$fe==="otlp",yft=gft==="http/json";epe&&!tpe&&$fe!=="none"&&console.error(`[haiku/telemetry] OTEL_LOGS_EXPORTER="${$fe}" not supported \u2014 telemetry disabled. Use "otlp" or unset.`);epe&&tpe&&!yft&&console.error(`[haiku/telemetry] OTLP protocol "${gft}" not supported \u2014 only http/json is implemented. Telemetry disabled.`);Nqn=epe&&tpe&&yft,Cqn=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"]),mft=new Set});import{existsSync as Lu,mkdirSync as Dqn,readdirSync as xI,readFileSync as bft,renameSync as Lqn,rmSync as npe,writeFileSync as Uqn}from"node:fs";import{dirname as Fqn,join as ro}from"node:path";function zqn(e){return!1}function OI(e){let t=bft(e,"utf8"),n=(0,rpe.default)(t);return{data:n.data,body:n.content}}function ipe(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 spe(e,t,n){let r=rpe.default.stringify(n,t);Uqn(e,r)}function ope(e,t){let n={};for(let[r,i]of Object.entries(e))t.has(r)||(n[r]=i);return n}function _ft(e){for(let t of e)if(typeof t=="string"&&t.length>0)return t;return new Date().toISOString()}function Wqn(e,t){let n=ro(e,"intent.md");Lu(n)&&ipe(n,()=>{let{data:r,body:i}=OI(n),s=ope(r,jqn);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),spe(n,s,i),t.intent_md_migrated=!0},"intent.md")}function Kqn(e,t,n,r){let i=ro(e,"units");if(!Lu(i))return;let s=xI(i,{withFileTypes:!0});for(let o of s){if(!o.isFile()||!o.name.endsWith(".md"))continue;let a=ro(i,o.name);ipe(a,()=>Zqn(a,t,n,r),`unit ${o.name}`)}}function Yqn(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 Zqn(e,t,n,r){let{data:i,body:s}=OI(e),o=i.status==="completed",a=typeof i.completed_at=="string"?i.completed_at:null,c=ope(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=_ft([a]);Yqn(c,u,n,r,t),t.units_with_synthesized_approval++}spe(e,c,s),t.units_migrated++}function Sft(e,t,n){if(!Lu(e))return;let r=xI(e,{withFileTypes:!0});for(let i of r){if(!i.isFile()||!i.name.endsWith(".md"))continue;let s=ro(e,i.name);ipe(s,()=>Xqn(s,t,n),`feedback ${i.name}`)}}function Jqn(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(!Lu(a))try{Dqn(a,{recursive:!0})}catch{return null}let c=new Set;for(let h of xI(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:(Lqn(e,p),p)}function Xqn(e,t,n){let{data:r,body:i}=OI(e),s=typeof r.status=="string"?r.status:"",o=typeof r.closed_by=="string"?r.closed_by:null,a=ope(r,Gqn);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&&(Vqn.has(s)?(a.closed_at=_ft([o,r.created_at]),c=!0):a.closed_at=null),spe(e,a,i),n.feedback_migrated++,c&&n.feedback_with_synthesized_closure++,Jqn(e,r,t)&&n.feedback_relocated++}function Qqn(e){let{intentDir:t}=e,n=hc();Wqn(t,n);let r="",i=ro(t,"intent.md");if(Lu(i))try{let o=OI(i).data;typeof o.studio=="string"&&(r=o.studio)}catch{r=""}let s=ro(t,"stages");if(Lu(s))for(let o of xI(s,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=ro(s,o.name),c=o.name;Kqn(a,n,r,c),Sft(ro(a,"feedback"),t,n);let u=ro(a,"state.json");Lu(u)&&(npe(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)&&(npe(d,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}}Sft(ro(t,"feedback"),t,n);for(let o of["baseline.json","drift-markers.json","baseline-content"]){let a=ro(t,o);Lu(a)&&(npe(a,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}return n}function e3(e){let t=ro(e,"intent.md");if(Lu(t))try{let r=OI(t).data;for(let i of qqn)if(i in r)return!0}catch{}let n=ro(e,"stages");if(!Lu(n))return!1;for(let r of xI(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=ro(n,r.name),s=ro(i,"units");if(Lu(s)){let a=xI(s).filter(c=>c.endsWith(".md"));for(let c of a)try{let u=OI(ro(s,c)).data;for(let l of Bqn)if(l in u)return!0;if(zqn(u))return!0}catch{}}let o=ro(i,"state.json");if(Lu(o))try{let a=JSON.parse(bft(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 rpe,Eft,jqn,Hqn,qqn,Bqn,Gqn,Vqn,t3=v(()=>{"use strict";rpe=Re(Kt(),1);Kn();vo();Nh();Eft="4.0.0",jqn=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"]),qqn=new Set(["active_stage","phase","iteration","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at","composite","intent_reviewed","autopilot"]),Bqn=new Set(["status","bolt","hat","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]);Gqn=new Set(["status","bolt","triaged_at","closed_by","resolution","iteration","visit","integrator_attempts","upstream_stage"]),Vqn=new Set(["closed","answered","addressed","rejected"]);Nu("0",Eft,Qqn)});var MI={};Ar(MI,{GIT_NETWORK_TIMEOUT_MS:()=>Ra,GIT_NONINTERACTIVE_ENV:()=>Aa,addTempWorktree:()=>s3,branchAheadOfOrigin:()=>u3,branchExists:()=>Pt,buildCompareUrl:()=>c3,checkoutFromBranchOnIntentMain:()=>fBn,cleanupDiscoveryWorktree:()=>yBn,cleanupFixChainWorktree:()=>f3,cleanupIntentWorktrees:()=>QD,cleanupOrphanedStageBranches:()=>l3,cleanupUnitWorktree:()=>Cpe,commitAndPushFromWorktree:()=>a3,consolidateStageBranches:()=>Rpe,createDiscoveryWorktree:()=>Ope,createFixChainWorktree:()=>Npe,createIntentBranch:()=>PI,createStageBranch:()=>Tpe,createUnitWorktree:()=>Ipe,deleteBranch:()=>$D,deleteStageBranch:()=>bb,detectPrTool:()=>CT,discoveryBranchName:()=>CI,discoveryWorktreePath:()=>NI,ensureOnIntentMain:()=>Epe,ensureOnStageBranch:()=>yr,ensureStageBranch:()=>Sb,fetchOrigin:()=>NT,finalizeIntentBranches:()=>Mpe,fixChainBranchName:()=>JD,fixChainWorktreePath:()=>Sg,getCurrentBranch:()=>gr,getMainlineBranch:()=>Zo,hasGitRemote:()=>ppe,hasNoMergeDebt:()=>WD,isAncestor:()=>Uu,isBranchMerged:()=>Zc,isCurrentWorktreeLocked:()=>lBn,isLiveWorktree:()=>wft,isMergeInProgress:()=>gb,isOnIntentBranch:()=>oBn,isOnStageBranch:()=>_pe,listIntentBranches:()=>i3,listOrphanDiscreteIntents:()=>dpe,markPullRequestReady:()=>Spe,mergeDiscoveryWorktree:()=>Ppe,mergeFixChainWorktree:()=>XD,mergeStageBranchForward:()=>vpe,mergeStageBranchIntoMain:()=>ZD,mergeUnitWorktree:()=>xpe,openIntentDraftPullRequest:()=>gpe,openPullRequest:()=>MT,openStageDraftPullRequest:()=>ype,openStagePullRequest:()=>iBn,prepareRevisitBranch:()=>SBn,pushBranchToOrigin:()=>Lh,pushFixChainWorktree:()=>mpe,pushStageBranch:()=>YD,pushUnitWorktree:()=>hpe,readFileFromBranch:()=>Ape,reconcileIntentBranches:()=>bpe,reconcileMisroutedStageMerges:()=>sBn,refsHaveIdenticalTrees:()=>r3,removeTempWorktree:()=>o3,resolveMainlineRef:()=>lpe,syncBranchDownstream:()=>upe,uncommittedAgentWork:()=>wpe,unitBranchExists:()=>fpe,unitSpecInWorktree:()=>uBn,unitWorktreePath:()=>yb,writeOnIntentMain:()=>dBn});import{execFileSync as Kr}from"node:child_process";import{existsSync as io,writeFileSync as ape,mkdirSync as VD,mkdtempSync as $qn,readFileSync as eBn,rmSync as cpe}from"node:fs";import{tmpdir as tBn}from"node:os";import{join as ts}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 nBn(e){if(!(e instanceof Error))return String(e);let t=e.stderr;return[e.message,t?t.toString():""].join(` +`)}function r3(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 gb(){if(!Ee())return!1;let e=ae(["git","rev-parse","--git-dir"]);if(!e)return!1;let t=e.startsWith("/")?e:ts(process.cwd(),e);for(let n of["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(io(ts(t,n)))return!0;return!1}function WD(e,t){return!!(r3(e,t)||Uu(e,t))}function n3(e,t){try{return Kr(e[0],e.slice(1),{encoding:"utf8",stdio:"pipe",cwd:t,timeout:Ra,env:Aa}).trim()}catch{return""}}function gr(){return ae(["git","rev-parse","--abbrev-ref","HEAD"])}function Pt(e){return Ee()?ae(["git","rev-parse","--verify",e])!=="":!1}function upe(e){if(!Ee())return{ok:!0,performed:!1,message:"non-git mode"};let t=Zo(),n=`haiku/${e}/main`,r=gr(),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&&!WD(c,n)){let u=rBn(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}/`)&&!r3(r,n)){let s=Rft(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 rBn(e,t,n,r,i){if(n===t)return Rft(e,r,i);try{return Uh(t,o=>KD(["-C",o],e,i,r))}catch(s){return{ok:!1,performed:!1,message:s instanceof Error?s.message:String(s)}}}function KD(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};d3(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 Rft(e,t,n){return KD([],e,n,t)}function Zo(){if(!Ee())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 lpe(){if(!Ee())return"";let e=Zo();return ae(["git","rev-parse","--verify",e])?e:ae(["git","rev-parse","--verify",`origin/${e}`])?`origin/${e}`:""}function NT(){if(!Ee())return!1;try{return Kr("git",["fetch","--prune","origin"],{stdio:"pipe",timeout:Ra,env:Aa}),!0}catch{return!1}}function i3(){if(!Ee())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 lpe(){if(!Ee())return[];let e=new Set(i3()),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(!Ee())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=CT(),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 s3(e,t="haiku-repair",n=!1){if(!Ee())throw new Error("not a git repo");let r=ts("/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 o3(e){e&&io(e)&&ae(["git","worktree","remove","--force",e])}function a3(e,t,n){if(!Ee())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??"")){n3(["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 CT(){return ae(["which","gh"])?"gh":ae(["which","glab"])?"glab":null}function MT(e,t,n,r,i){let s=CT();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=n3(["glab","mr","list","--source-branch",e,"--state","opened","--per-page","1"]).match(/^!(\d+)\b/m);if(c){let d=c[1],f=n3(["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 dpe(e,t){if(!Ee())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 fpe(){return Ee()?!!ae(["git","remote"])?.trim():!1}function ppe(e,t){if(!Ee())return;let n=yb(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 hpe(e,t,n){if(!Ee())return;let r=Sg(e,t,n);if(!io(r))return;let i=JD(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 Lh(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 c3(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 nBn(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 dpe(){if(!Ee())return[];let e=new Set(i3()),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(!Ee())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=CT(),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 s3(e,t="haiku-repair",n=!1){if(!Ee())throw new Error("not a git repo");let r=ts("/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 o3(e){e&&io(e)&&ae(["git","worktree","remove","--force",e])}function a3(e,t,n){if(!Ee())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??"")){n3(["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 CT(){return ae(["which","gh"])?"gh":ae(["which","glab"])?"glab":null}function MT(e,t,n,r,i){let s=CT();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=n3(["glab","mr","list","--source-branch",e,"--state","opened","--per-page","1"]).match(/^!(\d+)\b/m);if(c){let d=c[1],f=n3(["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 fpe(e,t){if(!Ee())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 ppe(){return Ee()?!!ae(["git","remote"])?.trim():!1}function hpe(e,t){if(!Ee())return;let n=yb(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 mpe(e,t,n){if(!Ee())return;let r=Sg(e,t,n);if(!io(r))return;let i=JD(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 Lh(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 c3(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 iBn(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(!Ee())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=Lh(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=MT(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=c3(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 mpe(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(!Ee())return{branch:t,base:n,message:"Not a git repo \u2014 no draft PR opened."};let s=Lh(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=MT(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=c3(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 gpe(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}`,i=e.body??`Stage \`${e.stage}\` of intent \`${e.slug}\` is in flight. The H\xB7AI\xB7K\xB7U engine opened this PR as a draft so the stage's work \u2014 and its runtime-verification proof \u2014 can be watched as units land. The engine marks it ready at the stage gate; merging it signals approval.`;if(!Ee())return{branch:t,base:n,message:"Not a git repo \u2014 no draft stage PR opened."};let s=Lh(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=MT(t,n,r,i,{draft:!0});if(c.ok&&c.url)return o.createdUrl=c.url,o.message=`Draft stage PR opened: ${c.url}`,o;o.prError=c.error}let a=c3(t,n);return a?(o.compareUrl=a,o.message=s.ok?`Stage 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 stage PR at: ${a}`,o):(o.message=s.ok?`Pushed \`${t}\` but no compare URL could be built (origin host not recognised). Open the draft stage PR manually from \`${t}\` into \`${n}\`.`:`Failed to push \`${t}\` (${s.error}) and no compare URL could be built.`,o)}function ype(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 YD(e,t){if(!Ee())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"])?u3(n)?Lh(n):{ok:!0,skipped:!0}:{ok:!0,skipped:!0}:{ok:!0,skipped:!0}}function u3(e){if(!Ee()||!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 rBn(e,t){if(!Ee())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)&&Eft(c,u)>0)continue;let l=ae(["git","rev-parse","--verify",`origin/${r}`])||ae(["git","rev-parse","--verify",r]);if(!l||!Uu(c,l)||Eft(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=gr(),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=Lh(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 Spe(e){let t={intentMainFastForwarded:!1,stageBranchFastForwarded:!1};if(!Ee())return t;NT();let n=`haiku/${e}/main`,r=Zo();if(!Pt(n)||!r)return t;let i=gr(),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 Eft(e,t){let n=ae(["git","rev-list","--count",`${e}..${t}`]),r=Number.parseInt(n,10);return Number.isFinite(r)?r:0}function iBn(e){return gr()===`haiku/${e}/main`}function bpe(e){if(!Ee())return!0;let t=`haiku/${e}/main`;if(!Pt(t)||gr()===t)return!0;try{return PT(["checkout",t]),!0}catch{return!1}}function Epe(e,t){return gr()===`haiku/${e}/${t}`}function vft(e,t){if(ae(["git","rev-parse","--verify",e]))gr()!==e&&PT(["checkout",e]);else if(t)PT(["checkout","-b",e,t]);else try{PT(["checkout","-b",e])}catch{}return e}function PI(e,t){let n=`haiku/${e}/main`;return!Ee()||Pt(n)||Gt(t?["git","branch",n,t]:["git","branch",n]),n}function _pe(e,t){if(t==="main")throw new Error("Stage name 'main' is reserved \u2014 it would collide with the intent hub branch");if(!Ee())return`haiku/${e}/${t}`;let n=`haiku/${e}/main`;return vft(`haiku/${e}/${t}`,n)}function Tpe(e,t,n){if(!Ee())return{success:!0,message:"no git"};let r=`haiku/${e}/${t}`,i=`haiku/${e}/${n}`,s=gr();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=KD(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():Uh(i,c=>o(c));return a.conflictFiles.length>0?{success:!1,isConflict:!0,conflictFiles:a.conflictFiles,message:`Merge ${r} \u2192 ${i} left ${a.conflictFiles.length} conflicted file(s): ${a.conflictFiles.join(", ")}. Resolve the conflicts on '${i}' (edit files, \`git add\`, \`git commit\`), then retry the forward merge.`}:{success:!0,message:`merged ${r} \u2192 ${i}`}}catch(a){return ae(["git","merge","--abort"]),{success:!1,message:a instanceof Error?a.message:String(a)}}}function ZD(e,t){if(!Ee())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=gr();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]),WD(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=gr(),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[];d3(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=eBn(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=sBn(e,f)}catch(m){oBn(e,m)}return{conflictFiles:[],postMergeMigration:h}},d;if(c===r)d=l();else if(c===n){GD(n);try{PT(["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=Uh(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)&&gr()!==s&&!gb()&&ae(["git","checkout",s]),{success:!1,message:o instanceof Error?o.message:String(o)}}}function sBn(e,t){let n=t??Br(),r=ts(n,".haiku","intents",e);if(!io(r))return{migrated:!1,unitsMigrated:0};if(!e3(r))return{migrated:!1,unitsMigrated:0};let i=ZK({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 oBn(e,t){try{Ke("haiku.post_merge_migrate.failed",{intent:e,error:String(t?.message??t)})}catch{}}function vpe(e,t){let n=`haiku/${e}/main`;if(!Ee())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:vft(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=gr()===n?i(Br()):Uh(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 Rpe(e,t){if(!Ee())return null;try{return Gt(["git","show",`${e}:${t}`])}catch{return null}}function yb(e,t){return ts(Br(),".haiku","worktrees",e,t)}function Sg(e,t,n){return ts(Br(),".haiku","worktrees",e,`fix-${t}-${n}`)}function JD(e,t,n){return`haiku/${e}/fix-${t}-${n}`}function aBn(e,t,n){let r=yb(e,n),i=n.endsWith(".md")?n:`${n}.md`;return ts(r,".haiku","intents",e,"stages",t,"units",i)}function Sb(e,t){let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;return!Ee()||Pt(n)||(Pt(r)||PI(e),DT(e),ae(["git","branch",n,r])),n}function PT(e){Gt(["git",...e])}function cBn(){try{let e=Kr("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}).trim();if(!e)return!1;let t=e.startsWith("/")?e:ts(process.cwd(),e),n=ts(t,"locked");return io(n)}catch{return!1}}function yr(e,t){if(!Ee())return{ok:!0,branch:"",message:"no git",switched:!1};let n=`haiku/${e}/main`,r=t?`haiku/${e}/${t}`:"";t&&r&&!Pt(r)&&Sb(e,t);let i=t&&Pt(r)?r:n,s=gr();if(!Pt(i)){let l=Zo();if(l&&Pt(l)&&s!==l){let d=wpe(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=GD(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(ts(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=GD(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&&!r3(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=GD(s);if(g.ok)try{Gt(["git","checkout",r])}catch(y){return{ok:!1,branch:gr()||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:_ft(h),target_branch:r}}else return{ok:!1,branch:gr()||s,message:`failed to checkout '${r}' before merging main: ${h}`,switched:!1,target_branch:r}}let d=KD([],n,e,`haiku: merge intent-main \u2192 stage ${t} (workflow engine branch enforcement)`);if(d.ok)return{ok:!0,branch:r,message:`merged main \u2192 stage, now on ${r}`,switched:!0};let f=d.conflictFiles??[];return{ok:!1,branch:r,message:f.length>0?`Merge intent-main \u2192 stage '${t}' left ${f.length} conflicted file(s): ${f.join(", ")}. Resolve on '${r}', then \`git add\` + \`git commit\` and retry. +Merging this PR signals approval to the H\xB7AI\xB7K\xB7U workflow engine.`;if(!Ee())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=Lh(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=MT(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=c3(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 gpe(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(!Ee())return{branch:t,base:n,message:"Not a git repo \u2014 no draft PR opened."};let s=Lh(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=MT(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=c3(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 ype(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}`,i=e.body??`Stage \`${e.stage}\` of intent \`${e.slug}\` is in flight. The H\xB7AI\xB7K\xB7U engine opened this PR as a draft so the stage's work \u2014 and its runtime-verification proof \u2014 can be watched as units land. The engine marks it ready at the stage gate; merging it signals approval.`;if(!Ee())return{branch:t,base:n,message:"Not a git repo \u2014 no draft stage PR opened."};let s=Lh(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=MT(t,n,r,i,{draft:!0});if(c.ok&&c.url)return o.createdUrl=c.url,o.message=`Draft stage PR opened: ${c.url}`,o;o.prError=c.error}let a=c3(t,n);return a?(o.compareUrl=a,o.message=s.ok?`Stage 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 stage PR at: ${a}`,o):(o.message=s.ok?`Pushed \`${t}\` but no compare URL could be built (origin host not recognised). Open the draft stage PR manually from \`${t}\` into \`${n}\`.`:`Failed to push \`${t}\` (${s.error}) and no compare URL could be built.`,o)}function Spe(e){if(!e)return{ok:!1,error:"empty url"};let t;try{t=new URL(e)}catch{return{ok:!1,error:`not a valid URL: ${e}`}}try{if(t.hostname.includes("github"))return Kr("gh",["pr","ready",e],{encoding:"utf8",stdio:"pipe",timeout: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 YD(e,t){if(!Ee())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"])?u3(n)?Lh(n):{ok:!0,skipped:!0}:{ok:!0,skipped:!0}:{ok:!0,skipped:!0}}function u3(e){if(!Ee()||!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 sBn(e,t){if(!Ee())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)&&Tft(c,u)>0)continue;let l=ae(["git","rev-parse","--verify",`origin/${r}`])||ae(["git","rev-parse","--verify",r]);if(!l||!Uu(c,l)||Tft(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=gr(),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=Lh(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 bpe(e){let t={intentMainFastForwarded:!1,stageBranchFastForwarded:!1};if(!Ee())return t;NT();let n=`haiku/${e}/main`,r=Zo();if(!Pt(n)||!r)return t;let i=gr(),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 Tft(e,t){let n=ae(["git","rev-list","--count",`${e}..${t}`]),r=Number.parseInt(n,10);return Number.isFinite(r)?r:0}function oBn(e){return gr()===`haiku/${e}/main`}function Epe(e){if(!Ee())return!0;let t=`haiku/${e}/main`;if(!Pt(t)||gr()===t)return!0;try{return PT(["checkout",t]),!0}catch{return!1}}function _pe(e,t){return gr()===`haiku/${e}/${t}`}function Aft(e,t){if(ae(["git","rev-parse","--verify",e]))gr()!==e&&PT(["checkout",e]);else if(t)PT(["checkout","-b",e,t]);else try{PT(["checkout","-b",e])}catch{}return e}function PI(e,t){let n=`haiku/${e}/main`;return!Ee()||Pt(n)||Gt(t?["git","branch",n,t]:["git","branch",n]),n}function Tpe(e,t){if(t==="main")throw new Error("Stage name 'main' is reserved \u2014 it would collide with the intent hub branch");if(!Ee())return`haiku/${e}/${t}`;let n=`haiku/${e}/main`;return Aft(`haiku/${e}/${t}`,n)}function vpe(e,t,n){if(!Ee())return{success:!0,message:"no git"};let r=`haiku/${e}/${t}`,i=`haiku/${e}/${n}`,s=gr();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=KD(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():Uh(i,c=>o(c));return a.conflictFiles.length>0?{success:!1,isConflict:!0,conflictFiles:a.conflictFiles,message:`Merge ${r} \u2192 ${i} left ${a.conflictFiles.length} conflicted file(s): ${a.conflictFiles.join(", ")}. Resolve the conflicts on '${i}' (edit files, \`git add\`, \`git commit\`), then retry the forward merge.`}:{success:!0,message:`merged ${r} \u2192 ${i}`}}catch(a){return ae(["git","merge","--abort"]),{success:!1,message:a instanceof Error?a.message:String(a)}}}function ZD(e,t){if(!Ee())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=gr();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]),WD(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=gr(),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[];d3(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=nBn(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=aBn(e,f)}catch(m){cBn(e,m)}return{conflictFiles:[],postMergeMigration:h}},d;if(c===r)d=l();else if(c===n){GD(n);try{PT(["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=Uh(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)&&gr()!==s&&!gb()&&ae(["git","checkout",s]),{success:!1,message:o instanceof Error?o.message:String(o)}}}function aBn(e,t){let n=t??Br(),r=ts(n,".haiku","intents",e);if(!io(r))return{migrated:!1,unitsMigrated:0};if(!e3(r))return{migrated:!1,unitsMigrated:0};let i=ZK({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 cBn(e,t){try{Ke("haiku.post_merge_migrate.failed",{intent:e,error:String(t?.message??t)})}catch{}}function Rpe(e,t){let n=`haiku/${e}/main`;if(!Ee())return{branch:n,success:!0,message:"no git"};if(t.length===0)return{branch:n,success:!0,message:"no stages"};try{let r=`haiku/${e}/${t[t.length-1]}`;if(Gt(["git","rev-parse","--verify",r]),!Pt(n))return{branch:Aft(n,r),success:!0,message:`created ${n} from ${r}`};let i=a=>{try{return Gt(["git","-C",a,"merge",r,"--no-ff","--no-edit","-m","haiku: consolidate discrete stages into main"]),{conflictFiles:[]}}catch(c){let u=ae(["git","-C",a,"diff","--name-only","--diff-filter=U"]).split(` +`).filter(Boolean);if(u.length===0)throw ae(["git","-C",a,"merge","--abort"]),c;return{conflictFiles:u}}},o=gr()===n?i(Br()):Uh(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 Ape(e,t){if(!Ee())return null;try{return Gt(["git","show",`${e}:${t}`])}catch{return null}}function yb(e,t){return ts(Br(),".haiku","worktrees",e,t)}function Sg(e,t,n){return ts(Br(),".haiku","worktrees",e,`fix-${t}-${n}`)}function JD(e,t,n){return`haiku/${e}/fix-${t}-${n}`}function uBn(e,t,n){let r=yb(e,n),i=n.endsWith(".md")?n:`${n}.md`;return ts(r,".haiku","intents",e,"stages",t,"units",i)}function Sb(e,t){let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;return!Ee()||Pt(n)||(Pt(r)||PI(e),DT(e),ae(["git","branch",n,r])),n}function PT(e){Gt(["git",...e])}function lBn(){try{let e=Kr("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}).trim();if(!e)return!1;let t=e.startsWith("/")?e:ts(process.cwd(),e),n=ts(t,"locked");return io(n)}catch{return!1}}function yr(e,t){if(!Ee())return{ok:!0,branch:"",message:"no git",switched:!1};let n=`haiku/${e}/main`,r=t?`haiku/${e}/${t}`:"";t&&r&&!Pt(r)&&Sb(e,t);let i=t&&Pt(r)?r:n,s=gr();if(!Pt(i)){let l=Zo();if(l&&Pt(l)&&s!==l){let d=kpe(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=GD(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(ts(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=GD(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&&!r3(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=GD(s);if(g.ok)try{Gt(["git","checkout",r])}catch(y){return{ok:!1,branch:gr()||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:vft(h),target_branch:r}}else return{ok:!1,branch:gr()||s,message:`failed to checkout '${r}' before merging main: ${h}`,switched:!1,target_branch:r}}let d=KD([],n,e,`haiku: merge intent-main \u2192 stage ${t} (workflow engine branch enforcement)`);if(d.ok)return{ok:!0,branch:r,message:`merged main \u2192 stage, now on ${r}`,switched:!0};let f=d.conflictFiles??[];return{ok:!1,branch:r,message:f.length>0?`Merge intent-main \u2192 stage '${t}' left ${f.length} conflicted file(s): ${f.join(", ")}. Resolve on '${r}', then \`git add\` + \`git commit\` and retry. While this merge is in progress the workflow-file guardrails are SUSPENDED (both raw Read/Write/Edit and the internal MCP write tools' lifecycle/ownership preventions), so you can resolve the conflicts directly. Prefer the schema-safe internal tools (\`haiku_feedback_write\`, \`haiku_unit_set\`, \`haiku_intent_set\`) \u2014 their schema validation still runs, so the resolved files stay valid. -Resolution rule for engine-owned feedback/unit YAML: the MORE-ADVANCED state wins. A terminal (closed/rejected) feedback beats an open one; more iterations / a later closure timestamp beats fewer. BUT feedback that exists only on this (incomplete, not-yet-merged) stage branch must be KEPT \u2014 intent-main doesn't have it yet, so don't drop it in favor of main's absence.`:`failed to merge main into stage: ${d.message??"unknown error"}. Resolve manually on '${r}', then retry.`,switched:!1,block:f.length>0?"merge_conflict":void 0,dirty_files:f.length>0?f:void 0,target_branch:r}}}try{return Gt(["git","checkout",i]),{ok:!0,branch:i,message:`checked out ${i}`,switched:!0}}catch(l){let d=l instanceof Error?l.message:String(l);if(d.includes("would be overwritten by checkout")||d.includes("Please commit your changes or stash them")){let p=GD(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:_ft(d),target_branch:i}}return{ok:!1,branch:s,message:`failed to checkout ${i}: ${d}`,switched:!1,target_branch:i}}}function GD(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 Ape(){if(!Ee())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 _ft(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 uBn(e,t,n,r){if(!Ee())return{ok:!0,message:"no git"};let i=`haiku/${e}/main`;if(!Pt(i))return{ok:!1,message:`${i} does not exist`};try{if(gr()===i){let o=Br(),a=ts(o,t),c=a.replace(/\/[^/]+$/,"");VD(c,{recursive:!0}),ope(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 Uh(i,o=>{let a=ts(o,t),c=a.replace(/\/[^/]+$/,"");VD(c,{recursive:!0}),ope(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 lBn(e,t,n,r){let i={paths_copied:[]};if(!Ee())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(` +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=GD(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:vft(d),target_branch:i}}return{ok:!1,branch:s,message:`failed to checkout ${i}: ${d}`,switched:!1,target_branch:i}}}function GD(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 wpe(){if(!Ee())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 vft(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 dBn(e,t,n,r){if(!Ee())return{ok:!0,message:"no git"};let i=`haiku/${e}/main`;if(!Pt(i))return{ok:!1,message:`${i} does not exist`};try{if(gr()===i){let o=Br(),a=ts(o,t),c=a.replace(/\/[^/]+$/,"");VD(c,{recursive:!0}),ape(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 Uh(i,o=>{let a=ts(o,t),c=a.replace(/\/[^/]+$/,"");VD(c,{recursive:!0}),ape(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 fBn(e,t,n,r){let i={paths_copied:[]};if(!Ee())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 gr()===s?a(Br()):Uh(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 l3(e){let t={deleted_local:[],deleted_remote:[]};if(!Ee())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)&&n3(["git","push","origin","--delete",o])&&t.deleted_remote.push(o)}return t}function dBn(e,t){let n=Xqn(ts($qn(),"haiku-merge-"));try{Gt(["git","worktree","add",n,e]);try{return t(n)}finally{ae(["git","worktree","remove","--force",n])}}finally{try{ape(n,{recursive:!0,force:!0})}catch{}}}function DT(e){if(Ee())try{let t=ts(Br(),".haiku","intents",e);if(!io(t))return;let n=["action-log.jsonl merge=union","write-audit.jsonl merge=union"],i=`${[...["# Engine-owned append-only event streams. `merge=union` tells git","# to concatenate both sides on conflict \u2014 these files are pure","# event streams and never benefit from manual conflict resolution."],...n].join(` +`).filter(Boolean)){let o=s.startsWith("origin/")?s.slice(7):s;o===n||o.slice(`haiku/${e}/`.length).startsWith("unit-")||Zc(o,n)&&n3(["git","push","origin","--delete",o])&&t.deleted_remote.push(o)}return t}function pBn(e,t){let n=$qn(ts(tBn(),"haiku-merge-"));try{Gt(["git","worktree","add",n,e]);try{return t(n)}finally{ae(["git","worktree","remove","--force",n])}}finally{try{cpe(n,{recursive:!0,force:!0})}catch{}}}function DT(e){if(Ee())try{let t=ts(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?ts(u,o):ts(Br(),o),f="";try{io(d)&&(f=Qqn(d,"utf8"))}catch{}n.every(p=>f.includes(p))||(ope(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=gr();if(c===s)a();else try{Uh(s,u=>a(u))}catch{}c&&c!==s&&a()}catch{}}function mb(e,t){if(!Ee()||!Pt(e)||ae(["git","branch","-D",e])!=="")return!0;let r=wpe(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 wpe(e){if(!Ee()||!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 Rft(e){return io(ts(e,".git"))}function fBn(e){try{Kr("git",["worktree","prune"],{stdio:["ignore","ignore","ignore"]})}catch{}try{ape(e,{recursive:!0,force:!0})}catch{}}function pBn(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 Uh(e,t){let n=wpe(e);if(n){let r=pBn(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 dBn(e,t)}function kpe(e,t,n){if(!Ee())return null;if(!n)throw new Error("createUnitWorktree requires `stage` \u2014 units always fork from the stage branch");let r=Sb(e,n);DT(e),eL();let i=`haiku/${e}/${t}`,s=ts(Br(),".haiku","worktrees",e),o=ts(s,t);try{if(io(o))return o;if(VD(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 hBn(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 d3(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)hBn(s,n)&&(ae(["git",...e,"checkout",t,"--",s]),ae(["git",...e,"add","--",s]))}function Ipe(e,t,n){if(!Ee())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=Sb(e,n),i=`haiku/${e}/${t}`,s=yb(e,t);DT(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=gr()===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}d3(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():Uh(r,u=>c(u)),ae(["git","worktree","remove",s,"--force"]),mb(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 NI(e,t,n){return ts(Br(),".haiku","worktrees",e,`discovery-${t}-${n}`)}function CI(e,t,n){return`haiku/${e}/discovery-${t}-${n}`}function xpe(e,t,n){if(!Ee())return null;if(!t||!n)throw new Error("createDiscoveryWorktree requires `stage` and `template`");let r=Sb(e,t);DT(e),eL();let i=CI(e,t,n),s=NI(e,t,n),o=ts(Br(),".haiku","worktrees",e);try{return io(s)||(VD(o,{recursive:!0}),Pt(i)||ae(["git","branch",i,r]),Gt(["git","worktree","add",s,i])),s}catch{return null}}function Ope(e,t,n){if(!Ee())return{success:!0,message:"no worktree"};let r=Sb(e,t),i=CI(e,t,n),s=NI(e,t,n);if(DT(e),!io(s))return mb(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?ts(u,o):ts(Br(),o),f="";try{io(d)&&(f=eBn(d,"utf8"))}catch{}n.every(p=>f.includes(p))||(ape(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=gr();if(c===s)a();else try{Uh(s,u=>a(u))}catch{}c&&c!==s&&a()}catch{}}function mb(e,t){if(!Ee()||!Pt(e)||ae(["git","branch","-D",e])!=="")return!0;let r=kpe(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 kpe(e){if(!Ee()||!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 wft(e){return io(ts(e,".git"))}function hBn(e){try{Kr("git",["worktree","prune"],{stdio:["ignore","ignore","ignore"]})}catch{}try{cpe(e,{recursive:!0,force:!0})}catch{}}function mBn(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 Uh(e,t){let n=kpe(e);if(n){let r=mBn(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 pBn(e,t)}function Ipe(e,t,n){if(!Ee())return null;if(!n)throw new Error("createUnitWorktree requires `stage` \u2014 units always fork from the stage branch");let r=Sb(e,n);DT(e),eL();let i=`haiku/${e}/${t}`,s=ts(Br(),".haiku","worktrees",e),o=ts(s,t);try{if(io(o))return o;if(VD(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 gBn(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 d3(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)gBn(s,n)&&(ae(["git",...e,"checkout",t,"--",s]),ae(["git",...e,"add","--",s]))}function xpe(e,t,n){if(!Ee())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=Sb(e,n),i=`haiku/${e}/${t}`,s=yb(e,t);DT(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=gr()===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}d3(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():Uh(r,u=>c(u)),ae(["git","worktree","remove",s,"--force"]),mb(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 NI(e,t,n){return ts(Br(),".haiku","worktrees",e,`discovery-${t}-${n}`)}function CI(e,t,n){return`haiku/${e}/discovery-${t}-${n}`}function Ope(e,t,n){if(!Ee())return null;if(!t||!n)throw new Error("createDiscoveryWorktree requires `stage` and `template`");let r=Sb(e,t);DT(e),eL();let i=CI(e,t,n),s=NI(e,t,n),o=ts(Br(),".haiku","worktrees",e);try{return io(s)||(VD(o,{recursive:!0}),Pt(i)||ae(["git","branch",i,r]),Gt(["git","worktree","add",s,i])),s}catch{return null}}function Ppe(e,t,n){if(!Ee())return{success:!0,message:"no worktree"};let r=Sb(e,t),i=CI(e,t,n),s=NI(e,t,n);if(DT(e),!io(s))return mb(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=gr()===r,u=l=>{let f=KD(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 Uh(r,l=>u(l));return ae(["git","worktree","remove",s,"--force"]),mb(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 mBn(e,t,n){if(!Ee())return{success:!0,message:"no git"};let r=CI(e,t,n),i=NI(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),mb(r,`discovery cleanup for ${e}/${t}/${n}`),{success:!0,message:`cleaned up ${r}`}}function Ppe(e,t,n){if(!Ee())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`:Sb(e,t);DT(e),eL();let i=JD(e,t,n),s=Sg(e,t,n),o=ts(Br(),".haiku","worktrees",e);try{if(io(s))return s;if(VD(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 XD(e,t,n){if(!Ee())return{success:!0,message:"no worktree"};let r=t==="intent"?`haiku/${e}/main`:Sb(e,t),i=JD(e,t,n),s=Sg(e,t,n);if(DT(e),!io(s)||!Rft(s))return io(s)&&fBn(s),mb(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=gr()===r,u=l=>{let f=KD(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 Uh(r,l=>u(l));return ae(["git","worktree","remove",s,"--force"]),mb(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 yBn(e,t,n){if(!Ee())return{success:!0,message:"no git"};let r=CI(e,t,n),i=NI(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),mb(r,`discovery cleanup for ${e}/${t}/${n}`),{success:!0,message:`cleaned up ${r}`}}function Npe(e,t,n){if(!Ee())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`:Sb(e,t);DT(e),eL();let i=JD(e,t,n),s=Sg(e,t,n),o=ts(Br(),".haiku","worktrees",e);try{if(io(s))return s;if(VD(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 XD(e,t,n){if(!Ee())return{success:!0,message:"no worktree"};let r=t==="intent"?`haiku/${e}/main`:Sb(e,t),i=JD(e,t,n),s=Sg(e,t,n);if(DT(e),!io(s)||!wft(s))return io(s)&&hBn(s),mb(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=gr()===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}d3(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():Uh(r,l=>u(l)),ae(["git","worktree","remove",s,"--force"]),mb(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 f3(e,t,n){if(!Ee())return{success:!0,message:"no git"};let r=JD(e,t,n),i=Sg(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),mb(r,`fix-chain cleanup for ${e}/${t}/${n}`),ae(["git","push","origin","--delete",r]),{success:!0,message:`cleaned up ${r}`}}function Npe(e,t){if(!Ee())return{success:!0,message:"no git"};let n=`haiku/${e}/${t}`,r=yb(e,t);return io(r)&&ae(["git","worktree","remove",r,"--force"]),mb(n,`unit reset for ${e}/${t}`),ae(["git","push","origin","--delete",n]),ae(["git","worktree","prune"]),{success:!0,message:`reset unit worktree ${n}`}}function QD(e){let t=ts(Br(),".haiku","worktrees",e);try{ape(t,{recursive:!0,force:!0})}catch{}ae(["git","worktree","prune"])}function $D(e){return!Ee()||gr()===e||!Pt(e)?!1:ae(["git","branch","-D",e])!==""}function bb(e,t){if(!Ee()||t==="main")return!1;let n=`haiku/${e}/${t}`;return ae(["git","worktree","prune"]),$D(n)}function Cpe(e,t){let n=`haiku/${e}/main`;if(!Ee())return{success:!0,merged:[],deleted:[],message:"no git"};if(!Pt(n))return{success:!0,merged:[],deleted:[],message:`no intent main branch (${n})`};let r=[],i=[];for(let s of t){let o=`haiku/${e}/${s}`;if(!Pt(o)||Zc(o,n))continue;let a=ZD(e,s);if(!a.success)return{success:!1,merged:r,deleted:i,message:`merge of '${s}' into main failed: ${a.message}`};r.push(o)}if(gr()!==n)try{PT(["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)&&$D(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 gBn(e,t,n){if(!Ee())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]),gr()!==r&&PT(["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,ar=v(()=>{"use strict";Nh();t3();ze();vo();Ra=3e4,Aa={...process.env,GIT_TERMINAL_PROMPT:"0",GIT_ASKPASS:"true",SSH_ASKPASS:"true",SSH_ASKPASS_REQUIRE:"never"}});import*as kft from"node:fs";import*as Dd from"node:path";function tL(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(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():Uh(r,l=>u(l)),ae(["git","worktree","remove",s,"--force"]),mb(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 f3(e,t,n){if(!Ee())return{success:!0,message:"no git"};let r=JD(e,t,n),i=Sg(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),mb(r,`fix-chain cleanup for ${e}/${t}/${n}`),ae(["git","push","origin","--delete",r]),{success:!0,message:`cleaned up ${r}`}}function Cpe(e,t){if(!Ee())return{success:!0,message:"no git"};let n=`haiku/${e}/${t}`,r=yb(e,t);return io(r)&&ae(["git","worktree","remove",r,"--force"]),mb(n,`unit reset for ${e}/${t}`),ae(["git","push","origin","--delete",n]),ae(["git","worktree","prune"]),{success:!0,message:`reset unit worktree ${n}`}}function QD(e){let t=ts(Br(),".haiku","worktrees",e);try{cpe(t,{recursive:!0,force:!0})}catch{}ae(["git","worktree","prune"])}function $D(e){return!Ee()||gr()===e||!Pt(e)?!1:ae(["git","branch","-D",e])!==""}function bb(e,t){if(!Ee()||t==="main")return!1;let n=`haiku/${e}/${t}`;return ae(["git","worktree","prune"]),$D(n)}function Mpe(e,t){let n=`haiku/${e}/main`;if(!Ee())return{success:!0,merged:[],deleted:[],message:"no git"};if(!Pt(n))return{success:!0,merged:[],deleted:[],message:`no intent main branch (${n})`};let r=[],i=[];for(let s of t){let o=`haiku/${e}/${s}`;if(!Pt(o)||Zc(o,n))continue;let a=ZD(e,s);if(!a.success)return{success:!1,merged:r,deleted:i,message:`merge of '${s}' into main failed: ${a.message}`};r.push(o)}if(gr()!==n)try{PT(["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)&&$D(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 SBn(e,t,n){if(!Ee())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]),gr()!==r&&PT(["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,ar=v(()=>{"use strict";Nh();t3();ze();vo();Ra=3e4,Aa={...process.env,GIT_TERMINAL_PROMPT:"0",GIT_ASKPASS:"true",SSH_ASKPASS:"true",SSH_ASKPASS_REQUIRE:"never"}});import*as xft from"node:fs";import*as Dd from"node:path";function tL(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 Ift(e)}function bBn(e,t,n,r){let i=t.split(` + `+Array(s).join(" ")+"^",new Oft(e)}function _Bn(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 yBn((a?a+":"+n+` +`),u=new bBn((a?a+":"+n+` `:"line "+n+` `)+c+` -`+e.message);throw u.name=e.name,u.cause=e,u}function EBn(e){let t="";try{t=kft.readFileSync(e,"utf8")}catch(n){throw n?.code==="ENOENT"?new Mpe(`Could not find template: ${e}`):n}return t}function _Bn(e,t){let n="",r=this.config.views;if(!r)throw new Mpe("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+=Dd.extname(e)?"":s,i){if(this.config.cacheFilepaths&&this.filepathCache[o])return this.filepathCache[o];if(vBn.exec(e)?.length){let a=e.replace(/^\/*|^\\*/,"");n=Dd.join(r,a)}else n=Dd.join(Dd.dirname(i),e)}else n=Dd.join(r,e);if(TBn(r,n))return i&&this.config.cacheFilepaths&&(this.filepathCache[o]=n),n;throw new Mpe(`Template '${e}' is not in the views directory`)}function TBn(e,t){let n=Dd.relative(e,t);return n&&!n.startsWith("..")&&!Dd.isAbsolute(n)}function ABn(e,t){let n=this.config,r=t?.async?RBn:Function;try{return new r(n.varName,"options",this.compileToString.call(this,e,t))}catch(i){throw i instanceof SyntaxError?new Ift(`Bad template syntax +`+e.message);throw u.name=e.name,u.cause=e,u}function TBn(e){let t="";try{t=xft.readFileSync(e,"utf8")}catch(n){throw n?.code==="ENOENT"?new Dpe(`Could not find template: ${e}`):n}return t}function vBn(e,t){let n="",r=this.config.views;if(!r)throw new Dpe("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+=Dd.extname(e)?"":s,i){if(this.config.cacheFilepaths&&this.filepathCache[o])return this.filepathCache[o];if(ABn.exec(e)?.length){let a=e.replace(/^\/*|^\\*/,"");n=Dd.join(r,a)}else n=Dd.join(Dd.dirname(i),e)}else n=Dd.join(r,e);if(RBn(r,n))return i&&this.config.cacheFilepaths&&(this.filepathCache[o]=n),n;throw new Dpe(`Template '${e}' is not in the views directory`)}function RBn(e,t){let n=Dd.relative(e,t);return n&&!n.startsWith("..")&&!Dd.isAbsolute(n)}function kBn(e,t){let n=this.config,r=t?.async?wBn:Function;try{return new r(n.varName,"options",this.compileToString.call(this,e,t))}catch(i){throw i instanceof SyntaxError?new Oft(`Bad template syntax `+i.message+` `+Array(i.message.length+1).join("=")+` `+this.compileToString.call(this,e,t)+` -`):i}}function wBn(e,t){let n=this.config,r=t?.async,i=this.compileBody,s=this.parse.call(this,e),o=`${n.functionHeader} +`):i}}function IBn(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); @@ -585,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 g3(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function NBn(e,t){return e.slice(0,t).split(` -`).length}function CBn(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+"|"+g3(p):p?g3(p):f,""),u=new RegExp(g3(t.tags[0])+"(-|_)?\\s*("+c+")?\\s*","g"),l=new RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?"+g3(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&&tL("unclosed comment",e,m.index),l.lastIndex=b}else y==="'"?(h3.lastIndex=m.index,h3.exec(e)?l.lastIndex=h3.lastIndex:tL("unclosed string",e,m.index)):y==='"'?(m3.lastIndex=m.index,m3.exec(e)?l.lastIndex=m3.lastIndex:tL("unclosed string",e,m.index)):y==="`"&&(p3.lastIndex=m.index,p3.exec(e)?l.lastIndex=p3.lastIndex:tL("unclosed string",e,m.index))}g?(t.debug&&(g.lineNo=NBn(e,d.index)),n.push(g)):tL("unclosed tag",e,d.index)}if(a(e.slice(i,e.length),!1),t.plugins)for(let f=0;f{nL=class extends Error{constructor(e){super(e),this.name="Eta Error"}},Ift=class extends nL{constructor(e){super(e),this.name="EtaParser Error"}},yBn=class extends nL{constructor(e){super(e),this.name="EtaRuntime Error"}},Mpe=class extends nL{constructor(e){super(e),this.name="EtaFileResolution Error"}},SBn=class extends nL{constructor(e){super(e),this.name="EtaNameResolution Error"}};vBn=/^\\|^\//,RBn=(async()=>{}).constructor;xBn={"&":"&","<":"<",">":">",'"':""","'":"'"};Aft={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,customTags:{},debug:!1,escapeFunction:PBn,filterFunction:e=>String(e),outputFunctionName:"output",functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it",defaultExtension:".eta"},p3=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,h3=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,m3=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;wft=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}}},LBn=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 nL(`Custom tag prefix "${n}" conflicts with a built-in prefix`)}config;RuntimeErr=bBn;compile=ABn;compileToString=wBn;compileBody=kBn;parse=CBn;render=Oft;renderAsync=Pft;renderString=MBn;renderStringAsync=DBn;filepathCache={};templatesSync=new wft({});templatesAsync=new wft({});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 LBn{readFile=EBn;resolvePath=_Bn}});import{execFileSync as UBn}from"node:child_process";import{existsSync as FBn,mkdirSync as H5r,readdirSync as q5r,readFileSync as B5r,writeFileSync as z5r}from"node:fs";import{join as Dpe}from"node:path";function Ee(){if(LT!==null)return LT;try{UBn("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}),LT=!0}catch{LT=!1}return LT}function Nft(){LT=null}function Cft(e){LT=e}function Mft(e){Lpe=e}function ve(){if(Lpe)return Lpe;let e=process.cwd();for(let t=0;t<20;t++){if(FBn(Dpe(e,".haiku")))return Dpe(e,".haiku");let n=Dpe(e,"..");if(n===e)break;e=n}throw new Error("No .haiku/ directory found")}var jBn,LT,Lpe,Eb=v(()=>{"use strict";xD();jBn=Re(Kt(),1);sh();LT=null;Lpe=null});import{execFileSync as HBn}from"node:child_process";import{mkdirSync as S3,mkdtempSync as qBn,readdirSync as J5r,renameSync as BBn,rmSync as zBn,statSync as X5r,writeFileSync as GBn}from"node:fs";import{homedir as VBn,tmpdir as WBn}from"node:os";import{dirname as Dft,join as Fu,resolve as KBn}from"node:path";function Lft(e){e&&(y3&&y3!==e||(y3=e))}function YBn(){return y3||process.env.CLAUDE_SESSION_ID||process.env.HAIKU_SESSION_ID||String(process.pid)}function ZBn(){try{let e=HBn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Dft(KBn(e))}catch{}try{return Dft(ve())}catch{return process.cwd()}}function JBn(){return ZBn().replace(/\//g,"-")}function XBn(){return process.env.NODE_TEST_CONTEXT||process.env.NODE_ENV==="test"?!0:process.argv.some(e=>/\.test\.(mjs|js|ts)$/.test(e))}function Fpe(){let e=process.env.HAIKU_PROJECTS_ROOT;return e||(XBn()?(Upe||(Upe=qBn(Fu(WBn(),"haiku-test-projects-"))),Upe):Fu(VBn(),".haiku","projects"))}function jpe(){return Fu(Fpe(),JBn())}function b3(e,t){let n=o=>o.replace(/[^A-Za-z0-9._-]+/g,"-"),r=n(e),i=t?Fu("stages",n(t)):"intent",s=Fu(jpe(),"intents",r,"prompts",i);return S3(s,{recursive:!0}),s}function QBn(){let e=Fu(jpe(),"sessions",YBn());return S3(e,{recursive:!0}),e}function Uft(e){return Fu(QBn(),e)}function DI(e,t){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-"),r=Fu(jpe(),"intents",n);return S3(r,{recursive:!0}),Fu(r,t)}function Fft(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=b3(s,o),d=Fu(l,`${u}.prompt.md`);_3(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 _b(e){let{intent:t,stage:n,kind:r,name:i,body:s}=e,o=u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"),a=Fu(b3(t,n),"refs",o(r));S3(a,{recursive:!0});let c=Fu(a,`${o(i).replace(/\.md$/,"")}.md`);return _3(c,s),c}function jft(e){let{action:t,intent:n,stage:r,content:i}=e,o=`main-action-${(u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"))(t)}`,a=b3(n,r),c=Fu(a,`${o}.prompt.md`);return _3(c,i),{path:c}}function Hft(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 OBn(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 NBn(e){return PBn[e]}function CBn(e){let t=String(e);return/[&<>"']/.test(t)?t.replace(/[&<>"']/g,NBn):t}function g3(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function MBn(e,t){return e.slice(0,t).split(` +`).length}function DBn(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+"|"+g3(p):p?g3(p):f,""),u=new RegExp(g3(t.tags[0])+"(-|_)?\\s*("+c+")?\\s*","g"),l=new RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?"+g3(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&&tL("unclosed comment",e,m.index),l.lastIndex=b}else y==="'"?(h3.lastIndex=m.index,h3.exec(e)?l.lastIndex=h3.lastIndex:tL("unclosed string",e,m.index)):y==='"'?(m3.lastIndex=m.index,m3.exec(e)?l.lastIndex=m3.lastIndex:tL("unclosed string",e,m.index)):y==="`"&&(p3.lastIndex=m.index,p3.exec(e)?l.lastIndex=p3.lastIndex:tL("unclosed string",e,m.index))}g?(t.debug&&(g.lineNo=MBn(e,d.index)),n.push(g)):tL("unclosed tag",e,d.index)}if(a(e.slice(i,e.length),!1),t.plugins)for(let f=0;f{nL=class extends Error{constructor(e){super(e),this.name="Eta Error"}},Oft=class extends nL{constructor(e){super(e),this.name="EtaParser Error"}},bBn=class extends nL{constructor(e){super(e),this.name="EtaRuntime Error"}},Dpe=class extends nL{constructor(e){super(e),this.name="EtaFileResolution Error"}},EBn=class extends nL{constructor(e){super(e),this.name="EtaNameResolution Error"}};ABn=/^\\|^\//,wBn=(async()=>{}).constructor;PBn={"&":"&","<":"<",">":">",'"':""","'":"'"};kft={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,customTags:{},debug:!1,escapeFunction:CBn,filterFunction:e=>String(e),outputFunctionName:"output",functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it",defaultExtension:".eta"},p3=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,h3=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,m3=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;Ift=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={...kft,...e}:this.config={...kft};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 nL(`Custom tag prefix "${n}" conflicts with a built-in prefix`)}config;RuntimeErr=_Bn;compile=kBn;compileToString=IBn;compileBody=xBn;parse=DBn;render=Nft;renderAsync=Cft;renderString=LBn;renderStringAsync=UBn;filepathCache={};templatesSync=new Ift({});templatesAsync=new Ift({});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=TBn;resolvePath=vBn}});import{execFileSync as jBn}from"node:child_process";import{existsSync as HBn,mkdirSync as H5r,readdirSync as q5r,readFileSync as B5r,writeFileSync as z5r}from"node:fs";import{join as Lpe}from"node:path";function Ee(){if(LT!==null)return LT;try{jBn("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}),LT=!0}catch{LT=!1}return LT}function Mft(){LT=null}function Dft(e){LT=e}function Lft(e){Upe=e}function ve(){if(Upe)return Upe;let e=process.cwd();for(let t=0;t<20;t++){if(HBn(Lpe(e,".haiku")))return Lpe(e,".haiku");let n=Lpe(e,"..");if(n===e)break;e=n}throw new Error("No .haiku/ directory found")}var qBn,LT,Upe,Eb=v(()=>{"use strict";xD();qBn=Re(Kt(),1);sh();LT=null;Upe=null});import{execFileSync as BBn}from"node:child_process";import{mkdirSync as S3,mkdtempSync as zBn,readdirSync as J5r,renameSync as GBn,rmSync as VBn,statSync as X5r,writeFileSync as WBn}from"node:fs";import{homedir as KBn,tmpdir as YBn}from"node:os";import{dirname as Uft,join as Fu,resolve as ZBn}from"node:path";function Fft(e){e&&(y3&&y3!==e||(y3=e))}function JBn(){return y3||process.env.CLAUDE_SESSION_ID||process.env.HAIKU_SESSION_ID||String(process.pid)}function XBn(){try{let e=BBn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Uft(ZBn(e))}catch{}try{return Uft(ve())}catch{return process.cwd()}}function QBn(){return XBn().replace(/\//g,"-")}function $Bn(){return process.env.NODE_TEST_CONTEXT||process.env.NODE_ENV==="test"?!0:process.argv.some(e=>/\.test\.(mjs|js|ts)$/.test(e))}function jpe(){let e=process.env.HAIKU_PROJECTS_ROOT;return e||($Bn()?(Fpe||(Fpe=zBn(Fu(YBn(),"haiku-test-projects-"))),Fpe):Fu(KBn(),".haiku","projects"))}function Hpe(){return Fu(jpe(),QBn())}function b3(e,t){let n=o=>o.replace(/[^A-Za-z0-9._-]+/g,"-"),r=n(e),i=t?Fu("stages",n(t)):"intent",s=Fu(Hpe(),"intents",r,"prompts",i);return S3(s,{recursive:!0}),s}function ezn(){let e=Fu(Hpe(),"sessions",JBn());return S3(e,{recursive:!0}),e}function jft(e){return Fu(ezn(),e)}function DI(e,t){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-"),r=Fu(Hpe(),"intents",n);return S3(r,{recursive:!0}),Fu(r,t)}function Hft(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=b3(s,o),d=Fu(l,`${u}.prompt.md`);_3(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 _b(e){let{intent:t,stage:n,kind:r,name:i,body:s}=e,o=u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"),a=Fu(b3(t,n),"refs",o(r));S3(a,{recursive:!0});let c=Fu(a,`${o(i).replace(/\.md$/,"")}.md`);return _3(c,s),c}function qft(e){let{action:t,intent:n,stage:r,content:i}=e,o=`main-action-${(u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"))(t)}`,a=b3(n,r),c=Fu(a,`${o}.prompt.md`);return _3(c,i),{path:c}}function Bft(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 $Bn(e){let{unit:t,hat:n,bolt:r,intent:i,stage:s}=e,o=`subagent-${t.replace(/\.md$/,"")}-${n}-${r}`;return Fu(b3(i,s),`${o}.next-relay.md`)}function E3(e,t){_3($Bn(e),t)}function _3(e,t){let n=`${e}.${process.pid}.tmp`;GBn(n,t,"utf8");try{BBn(n,e)}catch(r){try{zBn(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 y3,Upe,vl=v(()=>{"use strict";Eb();y3=null;Upe=null});import{existsSync as ezn,readFileSync as tzn,statSync as Hpe}from"node:fs";import{join as T3}from"node:path";import{fileURLToPath as nzn}from"node:url";function izn(e,t){let n=T3(process.cwd(),".haiku","prompts",e);try{if(Hpe(n).isFile())return n}catch{}let r=T3(t,e);try{if(Hpe(r).isFile())return r}catch{}throw new Error(`loadTemplate: could not find "${e}" \u2014 checked ${n} and ${r}`)}function Gft(e){let t=nzn(e),n=t.indexOf(Bft);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+Bft.length),s=i.lastIndexOf("/");return{rel:s<0?"":i.slice(0,s),pluginPromptsRoot:T3(r,"plugin","prompts")}}function szn(e){let t=Hpe(e).mtimeMs,n=zft.get(e);if(n&&n.mtimeMs>=t)return n.body;let r=tzn(e,"utf8");return zft.set(e,{body:r,mtimeMs:t,path:e}),r}function ozn(){let e=T3(nn(),"prompts");if(ezn(e))return e;try{return Gft(import.meta.url).pluginPromptsRoot}catch{return e}}function ie(e,t="template.eta.md"){let n,r;if(e.startsWith(qft))n=e.slice(qft.length),r=ozn();else{let a=Gft(e);n=a.rel,r=a.pluginPromptsRoot}let i=n?`${n}/${t}`:t,s=rzn.get(i);if(s!==void 0)return s;let o=izn(i,r);return szn(o)}var qft,Bft,zft,rzn,ht=v(()=>{"use strict";Ci();qft="@canon:",Bft="/packages/haiku/src/orchestrator/prompts/",zft=new Map,rzn=new Map});import{existsSync as v3,readFileSync as qpe}from"node:fs";import{join as rL}from"node:path";function azn(e){let t=e;for(let n=0;n<4;n++){let r=rL(t,"settings.yml");if(v3(r))try{let i=qpe(r,"utf8"),{data:s}=(0,R3.default)(`--- +`}function tzn(e){let{unit:t,hat:n,bolt:r,intent:i,stage:s}=e,o=`subagent-${t.replace(/\.md$/,"")}-${n}-${r}`;return Fu(b3(i,s),`${o}.next-relay.md`)}function E3(e,t){_3(tzn(e),t)}function _3(e,t){let n=`${e}.${process.pid}.tmp`;WBn(n,t,"utf8");try{GBn(n,e)}catch(r){try{VBn(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 y3,Fpe,vl=v(()=>{"use strict";Eb();y3=null;Fpe=null});import{existsSync as nzn,readFileSync as rzn,statSync as qpe}from"node:fs";import{join as T3}from"node:path";import{fileURLToPath as izn}from"node:url";function ozn(e,t){let n=T3(process.cwd(),".haiku","prompts",e);try{if(qpe(n).isFile())return n}catch{}let r=T3(t,e);try{if(qpe(r).isFile())return r}catch{}throw new Error(`loadTemplate: could not find "${e}" \u2014 checked ${n} and ${r}`)}function Wft(e){let t=izn(e),n=t.indexOf(Gft);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+Gft.length),s=i.lastIndexOf("/");return{rel:s<0?"":i.slice(0,s),pluginPromptsRoot:T3(r,"plugin","prompts")}}function azn(e){let t=qpe(e).mtimeMs,n=Vft.get(e);if(n&&n.mtimeMs>=t)return n.body;let r=rzn(e,"utf8");return Vft.set(e,{body:r,mtimeMs:t,path:e}),r}function czn(){let e=T3(nn(),"prompts");if(nzn(e))return e;try{return Wft(import.meta.url).pluginPromptsRoot}catch{return e}}function ie(e,t="template.eta.md"){let n,r;if(e.startsWith(zft))n=e.slice(zft.length),r=czn();else{let a=Wft(e);n=a.rel,r=a.pluginPromptsRoot}let i=n?`${n}/${t}`:t,s=szn.get(i);if(s!==void 0)return s;let o=ozn(i,r);return azn(o)}var zft,Gft,Vft,szn,ht=v(()=>{"use strict";Ci();zft="@canon:",Gft="/packages/haiku/src/orchestrator/prompts/",Vft=new Map,szn=new Map});import{existsSync as v3,readFileSync as Bpe}from"node:fs";import{join as rL}from"node:path";function uzn(e){let t=e;for(let n=0;n<4;n++){let r=rL(t,"settings.yml");if(v3(r))try{let i=Bpe(r,"utf8"),{data:s}=(0,R3.default)(`--- ${i} --- -`);return s}catch{return{}}t=rL(t,"..")}try{let n=ve(),r=rL(n,"settings.yml");if(v3(r)){let i=qpe(r,"utf8"),{data:s}=(0,R3.default)(`--- +`);return s}catch{return{}}t=rL(t,"..")}try{let n=ve(),r=rL(n,"settings.yml");if(v3(r)){let i=Bpe(r,"utf8"),{data:s}=(0,R3.default)(`--- ${i} --- -`);return s}}catch{}return{}}function czn(e){let t;try{t=ve()}catch{t=process.cwd()}let n=rL(t,"providers",`${e}.md`);if(v3(n))return n;let r=rL(nn(),"providers",`${e}.md`);return v3(r)?r:null}function uzn(e){try{let t=qpe(e,"utf8"),n=(0,R3.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 lzn(e){return e==="git"?Ee():!0}function dzn(e){let n=azn(e).providers??{},r=["git","ticketing","spec","knowledge","design"],i=[];for(let s of r){let o=czn(s);if(!o)continue;let a=uzn(o);if(!a)continue;if(n[s]!==void 0){i.push(a);continue}a.alwaysOn&&lzn(s)&&i.push(a)}return i}function Vft(e,t){return dzn(t).filter(n=>n.splicesInto.includes(e))}var R3,Wft=v(()=>{"use strict";R3=Re(Kt(),1);Ci();Eb()});var UT,FT,A3=v(()=>{"use strict";UT=new Set(["runtime-verifier"]),FT=new Set(["delivery-verifier","runtime-verifier"])});import{execFileSync as fzn}from"node:child_process";import{mkdirSync as Jft,writeFileSync as Xft}from"node:fs";import{dirname as Kft,join as iL,resolve as pzn}from"node:path";function jT(e){let t=null;return()=>(t===null&&(t=ie("@canon:_shared",e)),t)}function Tzn(){return Bpe===null&&(Bpe=hzn.renderString(ie("@canon:_shared","workflow-contracts-review.eta.md"),{maxStageIterations:Df})),Bpe}function vzn(){try{let e=fzn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Kft(pzn(e))}catch{}try{return Kft(ve())}catch{return process.cwd()}}function zpe(){let e=vzn().replace(/\//g,"-");return iL(Fpe(),e,"shared")}function Rzn(){let e=zpe();if(Yft!==e){Jft(e,{recursive:!0});for(let[t,n]of Object.entries(Qft))try{Xft(iL(e,`${t}.md`),n.content(),"utf8")}catch{}Yft=e}}function bs(e){Rzn();let t=Qft[e],n=iL(zpe(),`${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 wzn(e,t){let n=Azn();Jft(n,{recursive:!0});let r=iL(n,`${e}.md`),i=`${r}:${e}`;if(!Zft.has(i)){try{Xft(r,t,"utf8")}catch{}Zft.add(i)}return r}function $ft(e){let t=wzn(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 hzn,mzn,gzn,yzn,Szn,bzn,Ezn,_zn,Bpe,Qft,Yft,Azn,Zft,Fh=v(()=>{"use strict";gt();Eb();ze();vl();ht();A3();hzn=new Te({autoEscape:!1,useWith:!0});mzn=jT("announcement.md"),gzn=jT("subagent-error-recovery.md"),yzn=jT("workflow-contracts-elaborate.md"),Szn=jT("workflow-contracts-execute.md"),bzn=jT("workflow-contracts-fix-loop.md"),Ezn=jT("runtime-verification.md"),_zn=jT("service-dependencies.md"),Bpe=null;Qft={"workflow-contracts-elaborate":{content:()=>yzn(),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:()=>Szn(),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:()=>Tzn(),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:()=>bzn(),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:()=>mzn(),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:()=>gzn(),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:()=>Ezn(),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 + a self-installed Playwright script that records video, with the `haiku-playwright` MCP as fallback; 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 video+screenshot evidence under the gitignored `proof/` and upload it to the change request (GitLab uploads API / GitHub release-asset); and the PASS/FAIL/BLOCKED/SKIP verdict that drives sign-off vs. feedback."},"service-dependencies":{content:()=>_zn(),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."}},Yft="";Azn=()=>iL(zpe(),"providers"),Zft=new Set});import{existsSync as sL,readdirSync as kzn,readFileSync as w3}from"node:fs";import{join as Izn}from"node:path";function LI(e){if(!(!e||!sL(e)))try{let{data:t}=re(w3(e,"utf8")),n=t.interpretation;return n==="lens"||n==="strict"?n:void 0}catch{return}}function UI(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 lzn(e){let t;try{t=ve()}catch{t=process.cwd()}let n=rL(t,"providers",`${e}.md`);if(v3(n))return n;let r=rL(nn(),"providers",`${e}.md`);return v3(r)?r:null}function dzn(e){try{let t=Bpe(e,"utf8"),n=(0,R3.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 fzn(e){return e==="git"?Ee():!0}function pzn(e){let n=uzn(e).providers??{},r=["git","ticketing","spec","knowledge","design"],i=[];for(let s of r){let o=lzn(s);if(!o)continue;let a=dzn(o);if(!a)continue;if(n[s]!==void 0){i.push(a);continue}a.alwaysOn&&fzn(s)&&i.push(a)}return i}function Kft(e,t){return pzn(t).filter(n=>n.splicesInto.includes(e))}var R3,Yft=v(()=>{"use strict";R3=Re(Kt(),1);Ci();Eb()});var UT,FT,A3=v(()=>{"use strict";UT=new Set(["runtime-verifier"]),FT=new Set(["delivery-verifier","runtime-verifier"])});import{execFileSync as hzn}from"node:child_process";import{mkdirSync as Qft,writeFileSync as $ft}from"node:fs";import{dirname as Zft,join as iL,resolve as mzn}from"node:path";function jT(e){let t=null;return()=>(t===null&&(t=ie("@canon:_shared",e)),t)}function Rzn(){return zpe===null&&(zpe=gzn.renderString(ie("@canon:_shared","workflow-contracts-review.eta.md"),{maxStageIterations:Df})),zpe}function Azn(){try{let e=hzn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Zft(mzn(e))}catch{}try{return Zft(ve())}catch{return process.cwd()}}function Gpe(){let e=Azn().replace(/\//g,"-");return iL(jpe(),e,"shared")}function wzn(){let e=Gpe();if(Jft!==e){Qft(e,{recursive:!0});for(let[t,n]of Object.entries(ept))try{$ft(iL(e,`${t}.md`),n.content(),"utf8")}catch{}Jft=e}}function bs(e){wzn();let t=ept[e],n=iL(Gpe(),`${e}.md`);return[`### ${t.title} (REQUIRED reading)`,"",`**Read** \`${n}\` **before continuing this prompt.** It defines ${t.summary} These rules are universal \u2014 the workflow engine validates against them; non-compliant work blocks at \`haiku_run_next\`. The file is stable across ticks, so once you've read it this session you've got it.`].join(` +`)}function Izn(e,t){let n=kzn();Qft(n,{recursive:!0});let r=iL(n,`${e}.md`),i=`${r}:${e}`;if(!Xft.has(i)){try{$ft(r,t,"utf8")}catch{}Xft.add(i)}return r}function tpt(e){let t=Izn(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 gzn,yzn,Szn,bzn,Ezn,_zn,Tzn,vzn,zpe,ept,Jft,kzn,Xft,Fh=v(()=>{"use strict";gt();Eb();ze();vl();ht();A3();gzn=new Te({autoEscape:!1,useWith:!0});yzn=jT("announcement.md"),Szn=jT("subagent-error-recovery.md"),bzn=jT("workflow-contracts-elaborate.md"),Ezn=jT("workflow-contracts-execute.md"),_zn=jT("workflow-contracts-fix-loop.md"),Tzn=jT("runtime-verification.md"),vzn=jT("service-dependencies.md"),zpe=null;ept={"workflow-contracts-elaborate":{content:()=>bzn(),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:()=>Ezn(),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:()=>Rzn(),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:()=>_zn(),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:()=>yzn(),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:()=>Szn(),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:()=>Tzn(),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 + a self-installed Playwright script that records video, with the `haiku-playwright` MCP as fallback; 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 video+screenshot evidence under the gitignored `proof/` and upload it to the change request (GitLab uploads API / GitHub release-asset); and the PASS/FAIL/BLOCKED/SKIP verdict that drives sign-off vs. feedback."},"service-dependencies":{content:()=>vzn(),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."}},Jft="";kzn=()=>iL(Gpe(),"providers"),Xft=new Set});import{existsSync as sL,readdirSync as xzn,readFileSync as w3}from"node:fs";import{join as Ozn}from"node:path";function LI(e){if(!(!e||!sL(e)))try{let{data:t}=re(w3(e,"utf8")),n=t.interpretation;return n==="lens"||n==="strict"?n:void 0}catch{return}}function UI(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 Gpe(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(!sL(e))return"";let n=w3(e,"utf8"),r;try{r=(0,ept.default)(n).content.trim()}catch{r=n}return r?`### ${t} +`):""}function Vpe(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(!sL(e))return"";let n=w3(e,"utf8"),r;try{r=(0,npt.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** \`${_b({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 npt(e,t){if(!sL(e))return"";let n=[];try{let{data:p}=re(w3(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** \`${_b({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 ipt(e,t){if(!sL(e))return"";let n=[];try{let{data:p}=re(w3(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 k3(e){return npt(e,{rejectResults:new Set(["reject"]),rejectAdvanceTool:"haiku_unit_advance_hat",rejectHatTool:"haiku_unit_reject_hat",fixLoop:!1})}function FI(e){return npt(e,{rejectResults:new Set(["rejected"]),rejectAdvanceTool:"haiku_feedback_advance_hat",rejectHatTool:"haiku_feedback_reject_hat",fixLoop:!0})}function jI(e,t){let n=[];try{let c=t?Us(e,t):[],u=Us(e,""),l=new Set;for(let d of[...c,...u])l.has(d.file)||(l.add(d.file),n.push(d))}catch{return""}if(n.length===0)return"";let r=50,i=n.slice(0,r),s=(c,u)=>c.length>u?`${c.slice(0,u)}\u2026`:c,o=i.map(c=>{let u=c.file.includes("/stages/")?"stage":"intent",l=c.severity?`${c.severity} \xB7 `:"",d=(c.body||"").replace(/```[\s\S]*?```/g," ").replace(/\s+/g," ").trim(),f=s(d,140),p="",h=c.closure_reply?.text?.replace(/\s+/g," ").trim();if(h)p=` \xB7 resolved: ${s(h,160)}`;else if(c.status==="rejected"){let m=(c.body||"").match(/\*\*Rejection reason:\*\*\s*([\s\S]+)$/),g=m?m[1].replace(/\s+/g," ").trim():"";p=g?` \xB7 dismissed: ${s(g,160)}`:" \xB7 dismissed"}return`- \`${c.id}\` [${l}${c.status} \xB7 ${c.origin} \xB7 ${u}] ${c.title}${f?` \u2014 ${f}`:""}${p}`}),a=n.length>r?` +${f}`}function k3(e){return ipt(e,{rejectResults:new Set(["reject"]),rejectAdvanceTool:"haiku_unit_advance_hat",rejectHatTool:"haiku_unit_reject_hat",fixLoop:!1})}function FI(e){return ipt(e,{rejectResults:new Set(["rejected"]),rejectAdvanceTool:"haiku_feedback_advance_hat",rejectHatTool:"haiku_feedback_reject_hat",fixLoop:!0})}function jI(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 HI(e){let t=Izn(ce(e),"stages");if(!sL(t))return"";let n=[];try{for(let r of kzn(t,{withFileTypes:!0}))if(r.isDirectory())for(let i of I3(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}=Fft({unit:t,hat:n,bolt:r,intent:i,stage:s,content:c,omitBolt:f});return Hft({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=ift(t);if(s)return s}if(r){let s=es(n,r),o=RI(s?.data?.default_model);if(o)return o}let i=Cd(n);return RI(i?.data?.default_model)}function rpt(e,t,n,r,i){let s=Mi();return s.hooks?"":tpt.renderString(xzn,{slug:e,stage:t,hat:n,hatsStr:r.join(" \u2192 "),bolt:i,nativeAskUser:s.nativeAskUser})}function qI(e,t){if(!t)return"";let n=Vft(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=>$ft({kind:i.kind,category:i.category,body:i.body})).join(` +`).trimEnd()}function HI(e){let t=Ozn(ce(e),"stages");if(!sL(t))return"";let n=[];try{for(let r of xzn(t,{withFileTypes:!0}))if(r.isDirectory())for(let i of I3(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}=Hft({unit:t,hat:n,bolt:r,intent:i,stage:s,content:c,omitBolt:f});return Bft({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=oft(t);if(s)return s}if(r){let s=es(n,r),o=RI(s?.data?.default_model);if(o)return o}let i=Cd(n);return RI(i?.data?.default_model)}function spt(e,t,n,r,i){let s=Mi();return s.hooks?"":rpt.renderString(Pzn,{slug:e,stage:t,hat:n,hatsStr:r.join(" \u2192 "),bolt:i,nativeAskUser:s.nativeAskUser})}function qI(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=>tpt({kind:i.kind,category:i.category,body:i.body})).join(` `)].join(` -`)}function BI(e){let t=`${e.replace(/\/$/,"")}/intent.md`;if(!sL(t))return"";try{let{data:n}=re(w3(t,"utf8"));return typeof n.mode=="string"?n.mode:""}catch{return""}}function zI(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?"":tpt.renderString(Ozn,{slug:n,concurrentLines:o.map(a=>a.line)})}var ept,tpt,xzn,Ozn,ns=v(()=>{"use strict";gt();ept=Re(Kt(),1);Ci();_f();pb();ze();Kn();vl();ht();Wft();Fh();tpt=new Te({autoEscape:!1,useWith:!0}),xzn=ie("@canon:","_shared/inline-subagent-context.eta.md"),Ozn=ie("@canon:","_shared/concurrent-elaborate-loop.eta.md")});function x3(e,t,n){let r=e.ensureWorktree(),i=e.mandateRef(t),s=e.priorHandoffBlock(),o=e.resolveModel(t),a=e.bolt(),c=Pzn.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 Pzn,Vpe=v(()=>{"use strict";gt();ns();Pzn=new Te({autoEscape:!1,useWith:!0})});import{existsSync as ipt,readdirSync as spt,readFileSync as opt}from"node:fs";import{join as GI}from"node:path";function Nzn(){return Wpe===null&&(Wpe=ie("@canon:feedback/start_feedback_hat","subagent.eta.md")),Wpe}function Czn(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?GI(cr(t,n),"feedback"):GI(ce(t),"feedback");try{let p=ipt(f)?spt(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=opt(GI(f,p[0]),"utf8");o=(0,Kpe.default)(h).data.model}}catch{}}let a=n?Du(r,n)?.[i]:QK(r)?.[i],c=n?es(r,n):void 0,u=Cd(r),l=fb({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}function VI(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?GI(cr(t,i),"feedback"):GI(ce(t),"feedback"),p=r.replace(/^FB-/i,""),h="",m=1;if(ipt(f)){let g=spt(f).find(y=>y.startsWith(p)&&y.endsWith(".md"));if(g){let y=GI(f,g);h=FI(y);try{let b=(0,Kpe.default)(opt(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:()=>Ppe(t,c,r)??"",mandateRef:f=>kr({resolveBody:()=>i?AI(n,i,f,!0):cft(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=>Czn({slug:t,studio:n,stage:i,hat:f,feedbackId:r})?.model,bolt:()=>l().bolt,template:()=>Nzn(),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 x3(d,s,o)}var Kpe,Wpe,Ype=v(()=>{"use strict";Kpe=Re(Kt(),1);Ci();ar();pb();ze();Kn();Vpe();ns();ht();Wpe=null});function Zpe(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 apt=v(()=>{"use strict"});var upt={};Ar(upt,{computeStageDependents:()=>ehe,filterInputsByPlanStages:()=>Xpe,resolveIntentStages:()=>wn,resolveStageFixHats:()=>bg,resolveStageHats:()=>Es,resolveStageMetadata:()=>rhe,resolveStageOptional:()=>oL,resolveStageReview:()=>nhe,resolveStudioFilePath:()=>Ff,resolveStudioFixHats:()=>jf,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>the,stageRequiresExternalReview:()=>$pe});import{existsSync as Uf,readdirSync as Mzn,readFileSync as Jpe}from"node:fs";import{join as Yr}from"node:path";function HT(e){if(!Uf(e))return{};let t=Jpe(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 Xpe(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 HT(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 HT(o).hats||[]}return[]}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))return HT(o)}return{}}function oL(e,t){return Qpe(e,t).optional===!0}function $pe(e,t){let n=Qpe(e,t).review;return typeof n=="string"?n==="external":Array.isArray(n)?n.includes("external"):!1}function ehe(e,t,n){let r=n.indexOf(t);if(r<0)return[];let i=[];for(let s of n.slice(r+1)){let o=Qpe(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=HT(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 Mzn(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=HT(o).fix_hats;return Array.isArray(c)?c:[]}}return[]}function the(e,t,n,r){let i=Es(e,t),s=ce(n),o=Yr(s,"stages",t,"units",r.endsWith(".md")?r:`${r}.md`);if(!Uf(o))return i;try{let{data:a}=re(Jpe(o,"utf8"));if((a.closes||[]).length>0&&!i.includes("feedback-assessor"))return[...i,"feedback-assessor"]}catch{}return i}function nhe(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=HT(o).review;return Array.isArray(c)?c.join(","):c||"auto"}}return"auto"}function rhe(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=Jpe(o,"utf8"),c=HT(o),{content:u}=(0,cpt.default)(a);return{description:c.description||t,body:u.trim()}}}return null}var cpt,ji=v(()=>{"use strict";cpt=Re(Kt(),1);Ci();ze();Kn()});import{existsSync as lpt,readFileSync as dpt}from"node:fs";import{join as she}from"node:path";function Dzn(){return ihe===null&&(ihe=ie("@canon:stage/execute/start_unit_hat","subagent.eta.md")),ihe}function Lzn(e){if(!Go.modelSelection)return;let{slug:t,studio:n,stage:r,hat:i,unit:s}=e,o,a=she(cr(t,r),"units",`${s}.md`);if(lpt(a))try{let d=dpt(a,"utf8");o=(0,ohe.default)(d).data.model}catch{}let c=r?Du(n,r)?.[i]:void 0,u=r?es(n,r):void 0,l=Cd(n);return fb({unit:o,hat:c?.model,stage:u?.data?.default_model,studio:l?.data?.default_model}).model}function Uzn(e){let{slug:t,stage:n,unit:r}=e,i=she(cr(t,n),"units",`${r}.md`);if(!lpt(i))return[];try{let s=(0,ohe.default)(dpt(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 WI(e){let{slug:t,studio:n,unit:r,stage:i,hat:s,terminal:o}=e,a=she(cr(t,i),"units",`${r}.md`),c=null,u=()=>c??=Uzn({slug:t,stage:i,unit:r});return x3({slug:t,emitStage:i||void 0,dispatchId:r,ensureWorktree:()=>kpe(t,r,i)??"",mandateRef:d=>kr({resolveBody:()=>AI(n,i,d),toolName:"haiku_read_hat",toolArgs:{studio:n,stage:i,hat:d},intent:t,stage:i,kind:"mandate",name:d}),priorHandoffBlock:()=>k3(a),resolveModel:d=>Lzn({slug:t,studio:n,stage:i,hat:d,unit:r}),bolt:()=>u().length+1,template:()=>Dzn(),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 ohe,ihe,ahe=v(()=>{"use strict";ohe=Re(Kt(),1);Ci();ar();pb();ze();Kn();Vpe();ns();ht();ihe=null});function P3(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 ppt(e){let t=new Map;for(let i of e.nodes)t.set(i.id,0);for(let i of e.edges)t.set(i.to,(t.get(i.to)??0)+1);let n=[];for(let[i,s]of t)s===0&&n.push(i);n.sort();let r=[];for(;n.length>0;){let i=n.shift();if(!i)break;r.push(i);let s=e.adjacency.get(i)??[];for(let o of s){let a=(t.get(o)??1)-1;if(t.set(o,a),a===0){let c=n.findIndex(u=>u>o);c===-1?n.push(o):n.splice(c,0,o)}}}if(r.lengths.id).filter(s=>!r.includes(s));throw new Error(`Circular dependency detected among units: ${i.join(", ")}`)}return r}function N3(e){let t=ppt(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 O3(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 C3(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=O3(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=O3(h),g=Hu(p.slug);n.push(` ${g}["${m}"]`)}n.push(" end")}else{let l=N3(e),d=new Map(t.map(h=>[h.slug,h])),f=Array.from(l.keys()).sort((h,m)=>h-m),p=f.length>1;for(let h of f){let 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=O3(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=O3(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=fpt[l]??fpt.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 fpt,che=v(()=>{"use strict";fpt={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 uhe,readdirSync as hpt,readFileSync as Fzn,rmSync as jzn}from"node:fs";import{join as M3}from"node:path";function Hzn(e){if(!uhe(e))return{};let t=Fzn(e,"utf8"),{data:n}=re(t);return n}function aL(e,t){let n=Eg(e,t);return n.length===0?!0:!n.some(r=>r.status==="completed")}function mpt(e,t){if(!aL(e,t))return[];let n=M3(e,"stages",t,"feedback");if(!uhe(n))return[];let r=[];for(let i of hpt(n))if(i.endsWith(".md")&&/^\d+-/.test(i))try{jzn(M3(n,i),{force:!0}),r.push(i)}catch{}return r}function qzn(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=M3(e,"stages",t,"units");if(!uhe(n))return[];let i=hpt(n).filter(o=>o.endsWith(".md")).map(o=>{let a=Hzn(M3(n,o)),c=qzn(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 KI(e){let t=e.map(c=>({id:c.name,status:c.status})),n=[],r=new Map;for(let c of e)r.set(c.name,[]);for(let c of e)for(let u of c.dependsOn){if(!r.has(u))continue;n.push({from:u,to:c.name});let l=r.get(u);l&&l.push(c.name)}let i={nodes:t,edges:n,adjacency:r},s;try{s=N3(i)}catch{s=new Map([[0,e.map(c=>c.name)]])}let o=new Map,a=0;for(let[c,u]of s){for(let l of u)o.set(l,c);c+1>a&&(a=c+1)}return{waves:s,unitWave:o,totalWaves:a}}function YI(e,t,n){for(let r=0;rt.get(s.name)===r&&s.status!=="completed"))return r;return 0}function D3(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}=KI(n),u=YI(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 L3=v(()=>{"use strict";che();ze()});var mc={};Ar(mc,{HasPropertyKey:()=>U3,IsArray:()=>js,IsAsyncIterator:()=>lhe,IsBigInt:()=>cL,IsBoolean:()=>_g,IsDate:()=>qT,IsFunction:()=>dhe,IsIterator:()=>fhe,IsNull:()=>phe,IsNumber:()=>Al,IsObject:()=>Ir,IsRegExp:()=>uL,IsString:()=>Zr,IsSymbol:()=>hhe,IsUint8Array:()=>Tg,IsUndefined:()=>Hs});function U3(e,t){return t in e}function lhe(e){return Ir(e)&&!js(e)&&!Tg(e)&&Symbol.asyncIterator in e}function js(e){return Array.isArray(e)}function cL(e){return typeof e=="bigint"}function _g(e){return typeof e=="boolean"}function qT(e){return e instanceof globalThis.Date}function dhe(e){return typeof e=="function"}function fhe(e){return Ir(e)&&!js(e)&&!Tg(e)&&Symbol.iterator in e}function phe(e){return e===null}function Al(e){return typeof e=="number"}function Ir(e){return typeof e=="object"&&e!==null}function uL(e){return e instanceof globalThis.RegExp}function Zr(e){return typeof e=="string"}function hhe(e){return typeof e=="symbol"}function Tg(e){return e instanceof globalThis.Uint8Array}function Hs(e){return e===void 0}var Jc=v(()=>{});function Bzn(e){return e.map(t=>F3(t))}function zzn(e){return new Date(e.getTime())}function Gzn(e){return new Uint8Array(e)}function Vzn(e){return new RegExp(e.source,e.flags)}function Wzn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=F3(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=F3(e[n]);return t}function F3(e){return js(e)?Bzn(e):qT(e)?zzn(e):Tg(e)?Gzn(e):uL(e)?Vzn(e):Ir(e)?Wzn(e):e}function vi(e){return F3(e)}var qu=v(()=>{Jc()});function ZI(e,t){return t===void 0?vi(e):vi({...t,...e})}var j3=v(()=>{qu()});var mhe=v(()=>{j3();qu()});function gpt(e){return e!==null&&typeof e=="object"}function ypt(e){return globalThis.Array.isArray(e)&&!globalThis.ArrayBuffer.isView(e)}function Spt(e){return e===void 0}function bpt(e){return typeof e=="number"}var Ept=v(()=>{});var _pt=v(()=>{Ept()});var H3,Tpt=v(()=>{_pt();(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=gpt(o);return e.AllowArrayObject?a:a&&!ypt(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?bpt(o):Number.isFinite(o)}e.IsNumberLike=i;function s(o){let a=Spt(o);return e.AllowNullVoid?a||o===null:a}e.IsVoidLike=s})(H3||(H3={}))});function Kzn(e){return globalThis.Object.freeze(e).map(t=>lL(t))}function Yzn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=lL(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=lL(e[n]);return globalThis.Object.freeze(t)}function lL(e){return js(e)?Kzn(e):qT(e)?e:Tg(e)?e:uL(e)?e:Ir(e)?Yzn(e):e}var vpt=v(()=>{Jc()});function fe(e,t){let n=t!==void 0?{...t,...e}:e;switch(H3.InstanceMode){case"freeze":return lL(n);case"clone":return vi(n);default:return n}}var Nt=v(()=>{Tpt();vpt();qu()});var vg=v(()=>{Nt()});var Jo,Rpt=v(()=>{Jo=class extends Error{constructor(t){super(t)}}});var jh=v(()=>{Rpt()});var so,Hf,wa,Ld,Pe,dL=v(()=>{so=Symbol.for("TypeBox.Transform"),Hf=Symbol.for("TypeBox.Readonly"),wa=Symbol.for("TypeBox.Optional"),Ld=Symbol.for("TypeBox.Hint"),Pe=Symbol.for("TypeBox.Kind")});var Ut=v(()=>{dL()});function JI(e){return Ir(e)&&e[Hf]==="Readonly"}function Bu(e){return Ir(e)&&e[wa]==="Optional"}function ghe(e){return zn(e,"Any")}function yhe(e){return zn(e,"Argument")}function qf(e){return zn(e,"Array")}function BT(e){return zn(e,"AsyncIterator")}function zT(e){return zn(e,"BigInt")}function Rg(e){return zn(e,"Boolean")}function Bf(e){return zn(e,"Computed")}function zf(e){return zn(e,"Constructor")}function Zzn(e){return zn(e,"Date")}function Gf(e){return zn(e,"Function")}function Vf(e){return zn(e,"Integer")}function rs(e){return zn(e,"Intersect")}function GT(e){return zn(e,"Iterator")}function zn(e,t){return Ir(e)&&Pe in e&&e[Pe]===t}function q3(e){return _g(e)||Al(e)||Zr(e)}function wl(e){return zn(e,"Literal")}function kl(e){return zn(e,"MappedKey")}function Ri(e){return zn(e,"MappedResult")}function Tb(e){return zn(e,"Never")}function Jzn(e){return zn(e,"Not")}function fL(e){return zn(e,"Null")}function Wf(e){return zn(e,"Number")}function qs(e){return zn(e,"Object")}function VT(e){return zn(e,"Promise")}function WT(e){return zn(e,"Record")}function _s(e){return zn(e,"Ref")}function She(e){return zn(e,"RegExp")}function Ag(e){return zn(e,"String")}function pL(e){return zn(e,"Symbol")}function Il(e){return zn(e,"TemplateLiteral")}function Xzn(e){return zn(e,"This")}function vb(e){return Ir(e)&&so in e}function xl(e){return zn(e,"Tuple")}function hL(e){return zn(e,"Undefined")}function Yn(e){return zn(e,"Union")}function Qzn(e){return zn(e,"Uint8Array")}function $zn(e){return zn(e,"Unknown")}function eGn(e){return zn(e,"Unsafe")}function tGn(e){return zn(e,"Void")}function nGn(e){return Ir(e)&&Pe in e&&Zr(e[Pe])}function Ol(e){return ghe(e)||yhe(e)||qf(e)||Rg(e)||zT(e)||BT(e)||Bf(e)||zf(e)||Zzn(e)||Gf(e)||Vf(e)||rs(e)||GT(e)||wl(e)||kl(e)||Ri(e)||Tb(e)||Jzn(e)||fL(e)||Wf(e)||qs(e)||VT(e)||WT(e)||_s(e)||She(e)||Ag(e)||pL(e)||Il(e)||Xzn(e)||xl(e)||hL(e)||Yn(e)||Qzn(e)||$zn(e)||eGn(e)||tGn(e)||nGn(e)}var Xn=v(()=>{Jc();Ut()});var X={};Ar(X,{IsAny:()=>Ipt,IsArgument:()=>xpt,IsArray:()=>Opt,IsAsyncIterator:()=>Ppt,IsBigInt:()=>Npt,IsBoolean:()=>Cpt,IsComputed:()=>Mpt,IsConstructor:()=>Dpt,IsDate:()=>Lpt,IsFunction:()=>Upt,IsImport:()=>cGn,IsInteger:()=>Fpt,IsIntersect:()=>jpt,IsIterator:()=>Hpt,IsKind:()=>fht,IsKindOf:()=>kn,IsLiteral:()=>gL,IsLiteralBoolean:()=>uGn,IsLiteralNumber:()=>Bpt,IsLiteralString:()=>qpt,IsLiteralValue:()=>zpt,IsMappedKey:()=>Gpt,IsMappedResult:()=>Vpt,IsNever:()=>Wpt,IsNot:()=>Kpt,IsNull:()=>Ypt,IsNumber:()=>Zpt,IsObject:()=>Jpt,IsOptional:()=>aGn,IsPromise:()=>Xpt,IsProperties:()=>B3,IsReadonly:()=>oGn,IsRecord:()=>Qpt,IsRecursive:()=>lGn,IsRef:()=>$pt,IsRegExp:()=>eht,IsSchema:()=>Xo,IsString:()=>tht,IsSymbol:()=>nht,IsTemplateLiteral:()=>rht,IsThis:()=>iht,IsTransform:()=>sht,IsTuple:()=>oht,IsUint8Array:()=>cht,IsUndefined:()=>aht,IsUnion:()=>The,IsUnionLiteral:()=>dGn,IsUnknown:()=>uht,IsUnsafe:()=>lht,IsVoid:()=>dht,TypeGuardUnknownTypeError:()=>bhe});function Apt(e){try{return new RegExp(e),!0}catch{return!1}}function Ehe(e){if(!Zr(e))return!1;for(let t=0;t=7&&n<=13||n===27||n===127)return!1}return!0}function wpt(e){return _he(e)||Xo(e)}function mL(e){return Hs(e)||cL(e)}function Jr(e){return Hs(e)||Al(e)}function _he(e){return Hs(e)||_g(e)}function xr(e){return Hs(e)||Zr(e)}function iGn(e){return Hs(e)||Zr(e)&&Ehe(e)&&Apt(e)}function sGn(e){return Hs(e)||Zr(e)&&Ehe(e)}function kpt(e){return Hs(e)||Xo(e)}function oGn(e){return Ir(e)&&e[Hf]==="Readonly"}function aGn(e){return Ir(e)&&e[wa]==="Optional"}function Ipt(e){return kn(e,"Any")&&xr(e.$id)}function xpt(e){return kn(e,"Argument")&&Al(e.index)}function Opt(e){return kn(e,"Array")&&e.type==="array"&&xr(e.$id)&&Xo(e.items)&&Jr(e.minItems)&&Jr(e.maxItems)&&_he(e.uniqueItems)&&kpt(e.contains)&&Jr(e.minContains)&&Jr(e.maxContains)}function Ppt(e){return kn(e,"AsyncIterator")&&e.type==="AsyncIterator"&&xr(e.$id)&&Xo(e.items)}function Npt(e){return kn(e,"BigInt")&&e.type==="bigint"&&xr(e.$id)&&mL(e.exclusiveMaximum)&&mL(e.exclusiveMinimum)&&mL(e.maximum)&&mL(e.minimum)&&mL(e.multipleOf)}function Cpt(e){return kn(e,"Boolean")&&e.type==="boolean"&&xr(e.$id)}function Mpt(e){return kn(e,"Computed")&&Zr(e.target)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))}function Dpt(e){return kn(e,"Constructor")&&e.type==="Constructor"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function Lpt(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 Upt(e){return kn(e,"Function")&&e.type==="Function"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function cGn(e){return kn(e,"Import")&&U3(e,"$defs")&&Ir(e.$defs)&&B3(e.$defs)&&U3(e,"$ref")&&Zr(e.$ref)&&e.$ref in e.$defs}function Fpt(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 B3(e){return Ir(e)&&Object.entries(e).every(([t,n])=>Ehe(t)&&Xo(n))}function jpt(e){return kn(e,"Intersect")&&!(Zr(e.type)&&e.type!=="object")&&js(e.allOf)&&e.allOf.every(t=>Xo(t)&&!sht(t))&&xr(e.type)&&(_he(e.unevaluatedProperties)||kpt(e.unevaluatedProperties))&&xr(e.$id)}function Hpt(e){return kn(e,"Iterator")&&e.type==="Iterator"&&xr(e.$id)&&Xo(e.items)}function kn(e,t){return Ir(e)&&Pe in e&&e[Pe]===t}function qpt(e){return gL(e)&&Zr(e.const)}function Bpt(e){return gL(e)&&Al(e.const)}function uGn(e){return gL(e)&&_g(e.const)}function gL(e){return kn(e,"Literal")&&xr(e.$id)&&zpt(e.const)}function zpt(e){return _g(e)||Al(e)||Zr(e)}function Gpt(e){return kn(e,"MappedKey")&&js(e.keys)&&e.keys.every(t=>Al(t)||Zr(t))}function Vpt(e){return kn(e,"MappedResult")&&B3(e.properties)}function Wpt(e){return kn(e,"Never")&&Ir(e.not)&&Object.getOwnPropertyNames(e.not).length===0}function Kpt(e){return kn(e,"Not")&&Xo(e.not)}function Ypt(e){return kn(e,"Null")&&e.type==="null"&&xr(e.$id)}function Zpt(e){return kn(e,"Number")&&e.type==="number"&&xr(e.$id)&&Jr(e.exclusiveMaximum)&&Jr(e.exclusiveMinimum)&&Jr(e.maximum)&&Jr(e.minimum)&&Jr(e.multipleOf)}function Jpt(e){return kn(e,"Object")&&e.type==="object"&&xr(e.$id)&&B3(e.properties)&&wpt(e.additionalProperties)&&Jr(e.minProperties)&&Jr(e.maxProperties)}function Xpt(e){return kn(e,"Promise")&&e.type==="Promise"&&xr(e.$id)&&Xo(e.item)}function Qpt(e){return kn(e,"Record")&&e.type==="object"&&xr(e.$id)&&wpt(e.additionalProperties)&&Ir(e.patternProperties)&&(t=>{let n=Object.getOwnPropertyNames(t.patternProperties);return n.length===1&&Apt(n[0])&&Ir(t.patternProperties)&&Xo(t.patternProperties[n[0]])})(e)}function lGn(e){return Ir(e)&&Ld in e&&e[Ld]==="Recursive"}function $pt(e){return kn(e,"Ref")&&xr(e.$id)&&Zr(e.$ref)}function eht(e){return kn(e,"RegExp")&&xr(e.$id)&&Zr(e.source)&&Zr(e.flags)&&Jr(e.maxLength)&&Jr(e.minLength)}function tht(e){return kn(e,"String")&&e.type==="string"&&xr(e.$id)&&Jr(e.minLength)&&Jr(e.maxLength)&&iGn(e.pattern)&&sGn(e.format)}function nht(e){return kn(e,"Symbol")&&e.type==="symbol"&&xr(e.$id)}function rht(e){return kn(e,"TemplateLiteral")&&e.type==="string"&&Zr(e.pattern)&&e.pattern[0]==="^"&&e.pattern[e.pattern.length-1]==="$"}function iht(e){return kn(e,"This")&&xr(e.$id)&&Zr(e.$ref)}function sht(e){return Ir(e)&&so in e}function oht(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 aht(e){return kn(e,"Undefined")&&e.type==="undefined"&&xr(e.$id)}function dGn(e){return The(e)&&e.anyOf.every(t=>qpt(t)||Bpt(t))}function The(e){return kn(e,"Union")&&xr(e.$id)&&Ir(e)&&js(e.anyOf)&&e.anyOf.every(t=>Xo(t))}function cht(e){return kn(e,"Uint8Array")&&e.type==="Uint8Array"&&xr(e.$id)&&Jr(e.minByteLength)&&Jr(e.maxByteLength)}function uht(e){return kn(e,"Unknown")&&xr(e.$id)}function lht(e){return kn(e,"Unsafe")}function dht(e){return kn(e,"Void")&&e.type==="void"&&xr(e.$id)}function fht(e){return Ir(e)&&Pe in e&&Zr(e[Pe])&&!rGn.includes(e[Pe])}function Xo(e){return Ir(e)&&(Ipt(e)||xpt(e)||Opt(e)||Cpt(e)||Npt(e)||Ppt(e)||Mpt(e)||Dpt(e)||Lpt(e)||Upt(e)||Fpt(e)||jpt(e)||Hpt(e)||gL(e)||Gpt(e)||Vpt(e)||Wpt(e)||Kpt(e)||Ypt(e)||Zpt(e)||Jpt(e)||Xpt(e)||Qpt(e)||$pt(e)||eht(e)||tht(e)||nht(e)||rht(e)||iht(e)||oht(e)||aht(e)||The(e)||cht(e)||uht(e)||lht(e)||dht(e)||fht(e))}var bhe,rGn,pht=v(()=>{Jc();Ut();jh();bhe=class extends Jo{},rGn=["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 vhe=v(()=>{Xn();pht();Jc()});var hht=v(()=>{});var mht=v(()=>{hht()});var Rhe,yL,Ahe,fGn,J7r,Rb,Ab,ght,yht=v(()=>{Rhe="(true|false)",yL="(0|[1-9][0-9]*)",Ahe="(.*)",fGn="(?!.*)",J7r=`^${Rhe}$`,Rb=`^${yL}$`,Ab=`^${Ahe}$`,ght=`^${fGn}$`});var SL=v(()=>{yht()});var Sht=v(()=>{});var bht=v(()=>{});var Eht=v(()=>{Sht();bht()});function _ht(e,t){return e.includes(t)}function Tht(e){return[...new Set(e)]}function mGn(e,t){return e.filter(n=>t.includes(n))}function gGn(e,t){return e.reduce((n,r)=>mGn(n,r),t)}function vht(e){return e.length===1?e[0]:e.length>1?gGn(e.slice(1),e[0]):[]}function Rht(e){let t=[];for(let n of e)t.push(...n);return t}var Aht=v(()=>{});var bL=v(()=>{Aht()});function wb(e){return fe({[Pe]:"Any"},e)}var wht=v(()=>{vg();Ut()});var EL=v(()=>{wht()});function XI(e,t){return fe({[Pe]:"Array",type:"array",items:e},t)}var kht=v(()=>{Nt();Ut()});var _L=v(()=>{kht()});function Iht(e){return fe({[Pe]:"Argument",index:e})}var xht=v(()=>{Nt();Ut()});var whe=v(()=>{xht()});function QI(e,t){return fe({[Pe]:"AsyncIterator",type:"AsyncIterator",items:e},t)}var Oht=v(()=>{Ut();Nt()});var TL=v(()=>{Oht()});function oi(e,t,n){return fe({[Pe]:"Computed",target:e,parameters:t},n)}var Pht=v(()=>{vg();dL()});var kb=v(()=>{Pht()});function yGn(e,t){let{[t]:n,...r}=e;return r}function is(e,t){return t.reduce((n,r)=>yGn(n,r),e)}var z3=v(()=>{});var kg=v(()=>{z3()});function Zn(e){return fe({[Pe]:"Never",not:{}},e)}var Nht=v(()=>{Nt();Ut()});var ka=v(()=>{Nht()});var Cht=v(()=>{});function Qn(e){return fe({[Pe]:"MappedResult",properties:e})}var khe=v(()=>{Nt();Ut()});function $I(e,t,n){return fe({[Pe]:"Constructor",type:"Constructor",parameters:e,returns:t},n)}var Mht=v(()=>{Nt();Ut()});var vL=v(()=>{Mht()});function Hh(e,t,n){return fe({[Pe]:"Function",type:"Function",parameters:e,returns:t},n)}var Dht=v(()=>{Nt();Ut()});var KT=v(()=>{Dht()});function RL(e,t){return fe({[Pe]:"Union",anyOf:e},t)}var Ihe=v(()=>{Nt();Ut()});function SGn(e){return e.some(t=>Bu(t))}function Lht(e){return e.map(t=>Bu(t)?bGn(t):t)}function bGn(e){return is(e,[wa])}function EGn(e,t){return SGn(e)?gc(RL(Lht(e),t)):RL(Lht(e),t)}function qh(e,t){return e.length===1?fe(e[0],t):e.length===0?Zn(t):EGn(e,t)}var Uht=v(()=>{Nt();Ut();kg();ka();Ig();Ihe();Xn()});var Fht=v(()=>{});function Sr(e,t){return e.length===0?Zn(t):e.length===1?fe(e[0],t):RL(e,t)}var jht=v(()=>{ka();Nt();Ihe()});var oo=v(()=>{Uht();Fht();jht()});function _Gn(e){return e.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function xhe(e,t,n){return e[t]===n&&e.charCodeAt(t-1)!==92}function xg(e,t){return xhe(e,t,"(")}function AL(e,t){return xhe(e,t,")")}function Hht(e,t){return xhe(e,t,"|")}function TGn(e){if(!(xg(e,0)&&AL(e,e.length-1)))return!1;let t=0;for(let n=0;n0&&r.push(e0(o)),n=s+1}let i=e.slice(n);return i.length>0&&r.push(e0(i)),r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"or",expr:r}}function kGn(e){function t(i,s){if(!xg(i,s))throw new G3("TemplateLiteralParser: Index must point to open parens");let o=0;for(let a=s;a0&&r.push(e0(a)),i=o-1}return r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"and",expr:r}}function e0(e){return TGn(e)?e0(vGn(e)):RGn(e)?wGn(e):AGn(e)?kGn(e):{type:"const",const:_Gn(e)}}function t0(e){return e0(e.slice(1,e.length-1))}var G3,V3=v(()=>{jh();G3=class extends Jo{}});function IGn(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 xGn(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 OGn(e){return e.type==="const"&&e.const===".*"}function YT(e){return IGn(e)||OGn(e)?!1:xGn(e)?!0:e.type==="and"?e.expr.every(t=>YT(t)):e.type==="or"?e.expr.every(t=>YT(t)):e.type==="const"?!0:(()=>{throw new Ohe("Unknown expression type")})()}function qht(e){let t=t0(e.pattern);return YT(t)}var Ohe,Phe=v(()=>{V3();jh();Ohe=class extends Jo{}});function*Bht(e){if(e.length===1)return yield*e[0];for(let t of e[0])for(let n of Bht(e.slice(1)))yield`${t}${n}`}function*PGn(e){return yield*Bht(e.expr.map(t=>[...wL(t)]))}function*NGn(e){for(let t of e.expr)yield*wL(t)}function*CGn(e){return yield e.const}function*wL(e){return e.type==="and"?yield*PGn(e):e.type==="or"?yield*NGn(e):e.type==="const"?yield*CGn(e):(()=>{throw new Nhe("Unknown expression")})()}function W3(e){let t=t0(e.pattern);return YT(t)?[...wL(t)]:[]}var Nhe,Che=v(()=>{Phe();V3();jh();Nhe=class extends Jo{}});function ur(e,t){return fe({[Pe]:"Literal",const:e,type:typeof e},t)}var zht=v(()=>{Nt();Ut()});var zu=v(()=>{zht()});function K3(e){return fe({[Pe]:"Boolean",type:"boolean"},e)}var Ght=v(()=>{Ut();vg()});var Y3=v(()=>{Ght()});function n0(e){return fe({[Pe]:"BigInt",type:"bigint"},e)}var Vht=v(()=>{Ut();vg()});var kL=v(()=>{Vht()});function Ud(e){return fe({[Pe]:"Number",type:"number"},e)}var Wht=v(()=>{Nt();Ut()});var ZT=v(()=>{Wht()});function Kf(e){return fe({[Pe]:"String",type:"string"},e)}var Kht=v(()=>{Nt();Ut()});var r0=v(()=>{Kht()});function*MGn(e){let t=e.trim().replace(/"|'/g,"");return t==="boolean"?yield K3():t==="number"?yield Ud():t==="bigint"?yield n0():t==="string"?yield Kf():yield(()=>{let n=t.split("|").map(r=>ur(r.trim()));return n.length===0?Zn():n.length===1?n[0]:qh(n)})()}function*DGn(e){if(e[1]!=="{"){let t=ur("$"),n=Mhe(e.slice(1));return yield*[t,...n]}for(let t=2;t{zu();Y3();kL();ZT();r0();oo();ka()});function LGn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Zht(e,t){return Il(e)?e.pattern.slice(1,e.pattern.length-1):Yn(e)?`(${e.anyOf.map(n=>Zht(n,t)).join("|")})`:Wf(e)?`${t}${yL}`:Vf(e)?`${t}${yL}`:zT(e)?`${t}${yL}`:Ag(e)?`${t}${Ahe}`:wl(e)?`${t}${LGn(e.const.toString())}`:Rg(e)?`${t}${Rhe}`:(()=>{throw new Lhe(`Unexpected Kind '${e[Pe]}'`)})()}function Uhe(e){return`^${e.map(t=>Zht(t,"")).join("")}$`}var Lhe,Fhe=v(()=>{SL();Ut();jh();Xn();Lhe=class extends Jo{}});function JT(e){let n=W3(e).map(r=>ur(r));return qh(n)}var Jht=v(()=>{oo();zu();Che()});function Z3(e,t){let n=Zr(e)?Uhe(Yht(e)):Uhe(e);return fe({[Pe]:"TemplateLiteral",type:"string",pattern:n},t)}var Xht=v(()=>{Nt();Dhe();Fhe();Jc();Ut()});var Og=v(()=>{Phe();Che();Dhe();V3();Fhe();Jht();Xht()});function UGn(e){return W3(e).map(n=>n.toString())}function FGn(e){let t=[];for(let n of e)t.push(...Gu(n));return t}function jGn(e){return[e.toString()]}function Gu(e){return[...new Set(Il(e)?UGn(e):Yn(e)?FGn(e.anyOf):wl(e)?jGn(e.const):Wf(e)?["[number]"]:Vf(e)?["[number]"]:[])]}var J3=v(()=>{Og();Xn()});function HGn(e,t,n){let r={};for(let i of Object.getOwnPropertyNames(t))r[i]=Ib(e,Gu(t[i]),n);return r}function qGn(e,t,n){return HGn(e,t.properties,n)}function Qht(e,t,n){let r=qGn(e,t,n);return Qn(r)}var jhe=v(()=>{Ro();J3();Bh()});function emt(e,t){return e.map(n=>tmt(n,t))}function BGn(e){return e.filter(t=>!Tb(t))}function zGn(e,t){return X3(BGn(emt(e,t)))}function GGn(e){return e.some(t=>Tb(t))?[]:e}function VGn(e,t){return qh(GGn(emt(e,t)))}function WGn(e,t){return t in e?e[t]:t==="[number]"?qh(e):Zn()}function KGn(e,t){return t==="[number]"?e:Zn()}function YGn(e,t){return t in e?e[t]:Zn()}function tmt(e,t){return rs(e)?zGn(e.allOf,t):Yn(e)?VGn(e.anyOf,t):xl(e)?WGn(e.items??[],t):qf(e)?KGn(e.items,t):qs(e)?YGn(e.properties,t):Zn()}function Hhe(e,t){return t.map(n=>tmt(e,n))}function $ht(e,t){return qh(Hhe(e,t))}function Ib(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)?Qht(e,t,n):kl(t)?nmt(e,t,n):fe(Ol(t)?$ht(e,Gu(t)):$ht(e,t),n)}var qhe=v(()=>{Nt();jh();kb();ka();Fd();oo();J3();Bhe();jhe();Xn()});function ZGn(e,t,n){return{[t]:Ib(e,[t],vi(n))}}function JGn(e,t,n){return t.reduce((r,i)=>({...r,...ZGn(e,i,n)}),{})}function XGn(e,t,n){return JGn(e,t.keys,n)}function nmt(e,t,n){let r=XGn(e,t,n);return Qn(r)}var Bhe=v(()=>{qhe();Ro();qu()});var Bh=v(()=>{Bhe();jhe();J3();qhe()});function i0(e,t){return fe({[Pe]:"Iterator",type:"Iterator",items:e},t)}var rmt=v(()=>{Nt();Ut()});var IL=v(()=>{rmt()});function QGn(e){return globalThis.Object.keys(e).filter(t=>!Bu(e[t]))}function $Gn(e,t){let n=QGn(e),r=n.length>0?{[Pe]:"Object",type:"object",required:n,properties:e}:{[Pe]:"Object",type:"object",properties:e};return fe(r,t)}var Or,imt=v(()=>{Nt();Ut();Xn();Or=$Gn});var Pl=v(()=>{imt()});function Q3(e,t){return fe({[Pe]:"Promise",type:"Promise",item:e},t)}var smt=v(()=>{Nt();Ut()});var $3=v(()=>{smt()});function e2n(e){return fe(is(e,[Hf]))}function t2n(e){return fe({...e,[Hf]:"Readonly"})}function n2n(e,t){return t===!1?e2n(e):t2n(e)}function Vu(e,t){let n=t??!0;return Ri(e)?omt(e,n):n2n(e,n)}var zhe=v(()=>{Nt();Ut();kg();Ghe();Xn()});function r2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=Vu(e[r],t);return n}function i2n(e,t){return r2n(e.properties,t)}function omt(e,t){let n=i2n(e,t);return Qn(n)}var Ghe=v(()=>{Ro();zhe()});var XT=v(()=>{Ghe();zhe()});function jd(e,t){return fe(e.length>0?{[Pe]:"Tuple",type:"array",items:e,additionalItems:!1,minItems:e.length,maxItems:e.length}:{[Pe]:"Tuple",type:"array",minItems:e.length,maxItems:e.length},t)}var amt=v(()=>{Nt();Ut()});var xb=v(()=>{amt()});function cmt(e,t){return e in t?Hd(e,t[e]):Qn(t)}function s2n(e){return{[e]:ur(e)}}function o2n(e){let t={};for(let n of e)t[n]=ur(n);return t}function a2n(e,t){return _ht(t,e)?s2n(e):o2n(t)}function c2n(e,t){let n=a2n(e,t);return cmt(e,n)}function xL(e,t){return t.map(n=>Hd(e,n))}function u2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(t))n[r]=Hd(e,t[r]);return n}function Hd(e,t){let n={...t};return Bu(t)?gc(Hd(e,is(t,[wa]))):JI(t)?Vu(Hd(e,is(t,[Hf]))):Ri(t)?cmt(e,t.properties):kl(t)?c2n(e,t.keys):zf(t)?$I(xL(e,t.parameters),Hd(e,t.returns),n):Gf(t)?Hh(xL(e,t.parameters),Hd(e,t.returns),n):BT(t)?QI(Hd(e,t.items),n):GT(t)?i0(Hd(e,t.items),n):rs(t)?yc(xL(e,t.allOf),n):Yn(t)?Sr(xL(e,t.anyOf),n):xl(t)?jd(xL(e,t.items??[]),n):qs(t)?Or(u2n(e,t.properties),n):qf(t)?XI(Hd(e,t.items),n):VT(t)?Q3(Hd(e,t.item),n):t}function l2n(e,t){let n={};for(let r of e)n[r]=Hd(r,t);return n}function umt(e,t,n){let r=Ol(e)?Gu(e):e,i=t({[Pe]:"MappedKey",keys:r}),s=l2n(r,i);return Or(s,n)}var lmt=v(()=>{Ut();kg();_L();TL();vL();KT();Bh();Fd();IL();zu();Pl();Ig();$3();XT();xb();oo();bL();khe();Xn()});var Ro=v(()=>{Cht();khe();lmt()});function d2n(e){return fe(is(e,[wa]))}function f2n(e){return fe({...e,[wa]:"Optional"})}function p2n(e,t){return t===!1?d2n(e):f2n(e)}function gc(e,t){let n=t??!0;return Ri(e)?dmt(e,n):p2n(e,n)}var Vhe=v(()=>{Nt();Ut();kg();Whe();Xn()});function h2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=gc(e[r],t);return n}function m2n(e,t){return h2n(e.properties,t)}function dmt(e,t){let n=m2n(e,t);return Qn(n)}var Whe=v(()=>{Ro();Vhe()});var Ig=v(()=>{Whe();Vhe()});function OL(e,t={}){let n=e.every(i=>qs(i)),r=Ol(t.unevaluatedProperties)?{unevaluatedProperties:t.unevaluatedProperties}:{};return fe(t.unevaluatedProperties===!1||Ol(t.unevaluatedProperties)||n?{...r,[Pe]:"Intersect",type:"object",allOf:e}:{...r,[Pe]:"Intersect",allOf:e},t)}var Khe=v(()=>{Nt();Ut();Xn()});function g2n(e){return e.every(t=>Bu(t))}function y2n(e){return is(e,[wa])}function fmt(e){return e.map(t=>Bu(t)?y2n(t):t)}function S2n(e,t){return g2n(e)?gc(OL(fmt(e),t)):OL(fmt(e),t)}function X3(e,t={}){if(e.length===1)return fe(e[0],t);if(e.length===0)return Zn(t);if(e.some(n=>vb(n)))throw new Error("Cannot intersect transform types");return S2n(e,t)}var pmt=v(()=>{Ut();Nt();kg();ka();Ig();Khe();Xn()});var hmt=v(()=>{});function yc(e,t){if(e.length===1)return fe(e[0],t);if(e.length===0)return Zn(t);if(e.some(n=>vb(n)))throw new Error("Cannot intersect transform types");return OL(e,t)}var mmt=v(()=>{Nt();ka();Khe();Xn()});var Fd=v(()=>{pmt();hmt();mmt()});function zh(...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 fe({[Pe]:"Ref",$ref:t},n)}var gmt=v(()=>{jh();Nt();Ut()});var QT=v(()=>{gmt()});function b2n(e,t){return oi("Awaited",[oi(e,t)])}function E2n(e){return oi("Awaited",[zh(e)])}function _2n(e){return yc(ymt(e))}function T2n(e){return Sr(ymt(e))}function v2n(e){return s0(e)}function ymt(e){return e.map(t=>s0(t))}function s0(e,t){return fe(Bf(e)?b2n(e.target,e.parameters):rs(e)?_2n(e.allOf):Yn(e)?T2n(e.anyOf):VT(e)?v2n(e.item):_s(e)?E2n(e.$ref):e,t)}var Smt=v(()=>{Nt();kb();Fd();oo();QT();Xn()});var e9=v(()=>{Smt()});function bmt(e){let t=[];for(let n of e)t.push(PL(n));return t}function R2n(e){let t=bmt(e);return Rht(t)}function A2n(e){let t=bmt(e);return vht(t)}function w2n(e){return e.map((t,n)=>n.toString())}function k2n(e){return["[number]"]}function I2n(e){return globalThis.Object.getOwnPropertyNames(e)}function x2n(e){return O2n?globalThis.Object.getOwnPropertyNames(e).map(n=>n[0]==="^"&&n[n.length-1]==="$"?n.slice(1,n.length-1):n):[]}function PL(e){return rs(e)?R2n(e.allOf):Yn(e)?A2n(e.anyOf):xl(e)?w2n(e.items??[]):qf(e)?k2n(e.items):qs(e)?I2n(e.properties):WT(e)?x2n(e.patternProperties):[]}var O2n,Yhe=v(()=>{bL();Xn();O2n=!1});function P2n(e,t){return oi("KeyOf",[oi(e,t)])}function N2n(e){return oi("KeyOf",[zh(e)])}function C2n(e,t){let n=PL(e),r=M2n(n),i=qh(r);return fe(i,t)}function M2n(e){return e.map(t=>t==="[number]"?Ud():ur(t))}function o0(e,t){return Bf(e)?P2n(e.target,e.parameters):_s(e)?N2n(e.$ref):Ri(e)?Emt(e,t):C2n(e,t)}var Zhe=v(()=>{Nt();zu();ZT();kb();QT();Yhe();oo();Jhe();Xn()});function D2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=o0(e[r],vi(t));return n}function L2n(e,t){return D2n(e.properties,t)}function Emt(e,t){let n=L2n(e,t);return Qn(n)}var Jhe=v(()=>{Ro();Zhe();qu()});var _mt=v(()=>{});var NL=v(()=>{Jhe();_mt();Yhe();Zhe()});function U2n(e){let t=[];for(let n of e)t.push(...PL(n));return Tht(t)}function F2n(e){return e.filter(t=>!Tb(t))}function j2n(e,t){let n=[];for(let r of e)n.push(...Hhe(r,[t]));return F2n(n)}function H2n(e,t){let n={};for(let r of t)n[r]=X3(j2n(e,r));return n}function Tmt(e,t){let n=U2n(e),r=H2n(e,n);return Or(r,t)}var vmt=v(()=>{Fd();Bh();NL();Pl();bL();Xn()});var Xhe=v(()=>{vmt()});function t9(e){return fe({[Pe]:"Date",type:"Date"},e)}var Rmt=v(()=>{Ut();Nt()});var n9=v(()=>{Rmt()});function r9(e){return fe({[Pe]:"Null",type:"null"},e)}var Amt=v(()=>{Nt();Ut()});var i9=v(()=>{Amt()});function s9(e){return fe({[Pe]:"Symbol",type:"symbol"},e)}var wmt=v(()=>{Nt();Ut()});var o9=v(()=>{wmt()});function a9(e){return fe({[Pe]:"Undefined",type:"undefined"},e)}var kmt=v(()=>{Nt();Ut()});var c9=v(()=>{kmt()});function u9(e){return fe({[Pe]:"Uint8Array",type:"Uint8Array"},e)}var Imt=v(()=>{Nt();Ut()});var l9=v(()=>{Imt()});function Ob(e){return fe({[Pe]:"Unknown"},e)}var xmt=v(()=>{Nt();Ut()});var a0=v(()=>{xmt()});function q2n(e){return e.map(t=>Qhe(t,!1))}function B2n(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=Vu(Qhe(e[n],!1));return t}function d9(e,t){return t===!0?e:Vu(e)}function Qhe(e,t){return lhe(e)?d9(wb(),t):fhe(e)?d9(wb(),t):js(e)?Vu(jd(q2n(e))):Tg(e)?u9():qT(e)?t9():Ir(e)?d9(Or(B2n(e)),t):dhe(e)?d9(Hh([],Ob()),t):Hs(e)?a9():phe(e)?r9():hhe(e)?s9():cL(e)?n0():Al(e)?ur(e):_g(e)?ur(e):Zr(e)?ur(e):Or({})}function Omt(e,t){return fe(Qhe(e,!0),t)}var Pmt=v(()=>{EL();kL();n9();KT();zu();i9();Pl();o9();xb();XT();c9();l9();a0();vg();Jc()});var $he=v(()=>{Pmt()});function Nmt(e,t){return zf(e)?jd(e.parameters,t):Zn(t)}var Cmt=v(()=>{xb();ka();Xn()});var eme=v(()=>{Cmt()});function Mmt(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=>ur(s));return Sr(i,{...t,[Ld]:"Enum"})}var Dmt=v(()=>{zu();Ut();oo();Jc()});var tme=v(()=>{Dmt()});function qd(e){return e===pe.False?e:pe.True}function c0(e){throw new rme(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)?Bmt(e,t):X.IsIntersect(t)?f9(e,t):X.IsUnion(t)?ame(e,t):X.IsUnknown(t)?Wmt(e,t):X.IsAny(t)?ome(e,t):c0("StructuralRight")}function ome(e,t){return pe.True}function z2n(e,t){return X.IsIntersect(t)?f9(e,t):X.IsUnion(t)&&t.anyOf.some(n=>X.IsAny(n)||X.IsUnknown(n))?pe.True:X.IsUnion(t)?pe.Union:X.IsUnknown(t)||X.IsAny(t)?pe.True:pe.Union}function G2n(e,t){return X.IsUnknown(e)?pe.False:X.IsAny(e)?pe.Union:X.IsNever(e)?pe.True:pe.False}function V2n(e,t){return X.IsObject(t)&&p9(t)?pe.True:ao(t)?co(e,t):X.IsArray(t)?qd(Pr(e.items,t.items)):pe.False}function W2n(e,t){return ao(t)?co(e,t):X.IsAsyncIterator(t)?qd(Pr(e.items,t.items)):pe.False}function K2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsBigInt(t)?pe.True:pe.False}function Hmt(e,t){return X.IsLiteralBoolean(e)||X.IsBoolean(e)?pe.True:pe.False}function Y2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsBoolean(t)?pe.True:pe.False}function Z2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsConstructor(t)?e.parameters.length>t.parameters.length?pe.False:e.parameters.every((n,r)=>qd(Pr(t.parameters[r],n))===pe.True)?qd(Pr(e.returns,t.returns)):pe.False:pe.False}function J2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsDate(t)?pe.True:pe.False}function X2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsFunction(t)?e.parameters.length>t.parameters.length?pe.False:e.parameters.every((n,r)=>qd(Pr(t.parameters[r],n))===pe.True)?qd(Pr(e.returns,t.returns)):pe.False:pe.False}function qmt(e,t){return X.IsLiteral(e)&&mc.IsNumber(e.const)||X.IsNumber(e)||X.IsInteger(e)?pe.True:pe.False}function Q2n(e,t){return X.IsInteger(t)||X.IsNumber(t)?pe.True:ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):pe.False}function f9(e,t){return t.allOf.every(n=>Pr(e,n)===pe.True)?pe.True:pe.False}function $2n(e,t){return e.allOf.some(n=>Pr(n,t)===pe.True)?pe.True:pe.False}function eVn(e,t){return ao(t)?co(e,t):X.IsIterator(t)?qd(Pr(e.items,t.items)):pe.False}function tVn(e,t){return X.IsLiteral(t)&&t.const===e.const?pe.True:ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsString(t)?Vmt(e,t):X.IsNumber(t)?zmt(e,t):X.IsInteger(t)?qmt(e,t):X.IsBoolean(t)?Hmt(e,t):pe.False}function Bmt(e,t){return pe.False}function nVn(e,t){return pe.True}function Lmt(e){let[t,n]=[e,0];for(;X.IsNot(t);)t=t.not,n+=1;return n%2===0?t:Ob()}function rVn(e,t){return X.IsNot(e)?Pr(Lmt(e),t):X.IsNot(t)?Pr(e,Lmt(t)):c0("Invalid fallthrough for Not")}function iVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsNull(t)?pe.True:pe.False}function zmt(e,t){return X.IsLiteralNumber(e)||X.IsNumber(e)||X.IsInteger(e)?pe.True:pe.False}function sVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsInteger(t)||X.IsNumber(t)?pe.True:pe.False}function Wu(e,t){return Object.getOwnPropertyNames(e.properties).length===t}function Umt(e){return p9(e)}function Fmt(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 nme(e){return Wu(e,0)}function jmt(e){return Wu(e,0)}function oVn(e){return Wu(e,0)}function aVn(e){return Wu(e,0)}function cVn(e){return p9(e)}function uVn(e){let t=Ud();return Wu(e,0)||Wu(e,1)&&"length"in e.properties&&qd(Pr(e.properties.length,t))===pe.True}function lVn(e){return Wu(e,0)}function p9(e){let t=Ud();return Wu(e,0)||Wu(e,1)&&"length"in e.properties&&qd(Pr(e.properties.length,t))===pe.True}function dVn(e){let t=Hh([wb()],wb());return Wu(e,0)||Wu(e,1)&&"then"in e.properties&&qd(Pr(e.properties.then,t))===pe.True}function Gmt(e,t){return Pr(e,t)===pe.False||X.IsOptional(e)&&!X.IsOptional(t)?pe.False:pe.True}function Sc(e,t){return X.IsUnknown(e)?pe.False:X.IsAny(e)?pe.Union:X.IsNever(e)||X.IsLiteralString(e)&&Umt(t)||X.IsLiteralNumber(e)&&nme(t)||X.IsLiteralBoolean(e)&&jmt(t)||X.IsSymbol(e)&&Fmt(t)||X.IsBigInt(e)&&oVn(t)||X.IsString(e)&&Umt(t)||X.IsSymbol(e)&&Fmt(t)||X.IsNumber(e)&&nme(t)||X.IsInteger(e)&&nme(t)||X.IsBoolean(e)&&jmt(t)||X.IsUint8Array(e)&&cVn(t)||X.IsDate(e)&&aVn(t)||X.IsConstructor(e)&&lVn(t)||X.IsFunction(e)&&uVn(t)?pe.True:X.IsRecord(e)&&X.IsString(ime(e))?t[Ld]==="Record"?pe.True:pe.False:X.IsRecord(e)&&X.IsNumber(ime(e))&&Wu(t,0)?pe.True:pe.False}function fVn(e,t){return ao(t)?co(e,t):X.IsRecord(t)?Bd(e,t):X.IsObject(t)?(()=>{for(let n of Object.getOwnPropertyNames(t.properties)){if(!(n in e.properties)&&!X.IsOptional(t.properties[n]))return pe.False;if(X.IsOptional(t.properties[n]))return pe.True;if(Gmt(e.properties[n],t.properties[n])===pe.False)return pe.False}return pe.True})():pe.False}function pVn(e,t){return ao(t)?co(e,t):X.IsObject(t)&&dVn(t)?pe.True:X.IsPromise(t)?qd(Pr(e.item,t.item)):pe.False}function ime(e){return Rb in e.patternProperties?Ud():Ab in e.patternProperties?Kf():c0("Unknown record key pattern")}function sme(e){return Rb in e.patternProperties?e.patternProperties[Rb]:Ab in e.patternProperties?e.patternProperties[Ab]:c0("Unable to get record value schema")}function Bd(e,t){let[n,r]=[ime(t),sme(t)];return X.IsLiteralString(e)&&X.IsNumber(n)&&qd(Pr(e,r))===pe.True?pe.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(Gmt(r,e.properties[i])===pe.False)return pe.False;return pe.True})():pe.False}function hVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Pr(sme(e),sme(t)):pe.False}function mVn(e,t){let n=X.IsRegExp(e)?Kf():e,r=X.IsRegExp(t)?Kf():t;return Pr(n,r)}function Vmt(e,t){return X.IsLiteral(e)&&mc.IsString(e.const)||X.IsString(e)?pe.True:pe.False}function gVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsString(t)?pe.True:pe.False}function yVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsSymbol(t)?pe.True:pe.False}function SVn(e,t){return X.IsTemplateLiteral(e)?Pr(JT(e),t):X.IsTemplateLiteral(t)?Pr(e,JT(t)):c0("Invalid fallthrough for TemplateLiteral")}function bVn(e,t){return X.IsArray(t)&&e.items!==void 0&&e.items.every(n=>Pr(n,t.items)===pe.True)}function EVn(e,t){return X.IsNever(e)?pe.True:X.IsUnknown(e)?pe.False:X.IsAny(e)?pe.Union:pe.False}function _Vn(e,t){return ao(t)?co(e,t):X.IsObject(t)&&p9(t)||X.IsArray(t)&&bVn(e,t)?pe.True:X.IsTuple(t)?mc.IsUndefined(e.items)&&!mc.IsUndefined(t.items)||!mc.IsUndefined(e.items)&&mc.IsUndefined(t.items)?pe.False:mc.IsUndefined(e.items)&&!mc.IsUndefined(t.items)||e.items.every((n,r)=>Pr(n,t.items[r])===pe.True)?pe.True:pe.False:pe.False}function TVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsUint8Array(t)?pe.True:pe.False}function vVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsVoid(t)?wVn(e,t):X.IsUndefined(t)?pe.True:pe.False}function ame(e,t){return t.anyOf.some(n=>Pr(e,n)===pe.True)?pe.True:pe.False}function RVn(e,t){return e.anyOf.every(n=>Pr(n,t)===pe.True)?pe.True:pe.False}function Wmt(e,t){return pe.True}function AVn(e,t){return X.IsNever(t)?Bmt(e,t):X.IsIntersect(t)?f9(e,t):X.IsUnion(t)?ame(e,t):X.IsAny(t)?ome(e,t):X.IsString(t)?Vmt(e,t):X.IsNumber(t)?zmt(e,t):X.IsInteger(t)?qmt(e,t):X.IsBoolean(t)?Hmt(e,t):X.IsArray(t)?G2n(e,t):X.IsTuple(t)?EVn(e,t):X.IsObject(t)?Sc(e,t):X.IsUnknown(t)?pe.True:pe.False}function wVn(e,t){return X.IsUndefined(e)||X.IsUndefined(e)?pe.True:pe.False}function kVn(e,t){return X.IsIntersect(t)?f9(e,t):X.IsUnion(t)?ame(e,t):X.IsUnknown(t)?Wmt(e,t):X.IsAny(t)?ome(e,t):X.IsObject(t)?Sc(e,t):X.IsVoid(t)?pe.True:pe.False}function Pr(e,t){return X.IsTemplateLiteral(e)||X.IsTemplateLiteral(t)?SVn(e,t):X.IsRegExp(e)||X.IsRegExp(t)?mVn(e,t):X.IsNot(e)||X.IsNot(t)?rVn(e,t):X.IsAny(e)?z2n(e,t):X.IsArray(e)?V2n(e,t):X.IsBigInt(e)?K2n(e,t):X.IsBoolean(e)?Y2n(e,t):X.IsAsyncIterator(e)?W2n(e,t):X.IsConstructor(e)?Z2n(e,t):X.IsDate(e)?J2n(e,t):X.IsFunction(e)?X2n(e,t):X.IsInteger(e)?Q2n(e,t):X.IsIntersect(e)?$2n(e,t):X.IsIterator(e)?eVn(e,t):X.IsLiteral(e)?tVn(e,t):X.IsNever(e)?nVn(e,t):X.IsNull(e)?iVn(e,t):X.IsNumber(e)?sVn(e,t):X.IsObject(e)?fVn(e,t):X.IsRecord(e)?hVn(e,t):X.IsString(e)?gVn(e,t):X.IsSymbol(e)?yVn(e,t):X.IsTuple(e)?_Vn(e,t):X.IsPromise(e)?pVn(e,t):X.IsUint8Array(e)?TVn(e,t):X.IsUndefined(e)?vVn(e,t):X.IsUnion(e)?RVn(e,t):X.IsUnknown(e)?AVn(e,t):X.IsVoid(e)?kVn(e,t):c0(`Unknown left type operand '${e[Pe]}'`)}function Pb(e,t){return Pr(e,t)}var rme,pe,cme=v(()=>{EL();KT();ZT();r0();a0();Og();SL();Ut();jh();vhe();rme=class extends Jo{};(function(e){e[e.Union=0]="Union",e[e.True=1]="True",e[e.False=2]="False"})(pe||(pe={}))});function IVn(e,t,n,r,i){let s={};for(let o of globalThis.Object.getOwnPropertyNames(e))s[o]=u0(e[o],t,n,r,vi(i));return s}function xVn(e,t,n,r,i){return IVn(e.properties,t,n,r,i)}function Kmt(e,t,n,r,i){let s=xVn(e,t,n,r,i);return Qn(s)}var ume=v(()=>{Ro();h9();qu()});function OVn(e,t,n,r){let i=Pb(e,t);return i===pe.Union?Sr([n,r]):i===pe.True?n:r}function u0(e,t,n,r,i){return Ri(e)?Kmt(e,t,n,r,i):kl(e)?fe(Ymt(e,t,n,r,i)):fe(OVn(e,t,n,r),i)}var h9=v(()=>{Nt();oo();cme();lme();ume();Xn()});function PVn(e,t,n,r,i){return{[e]:u0(ur(e),t,n,r,vi(i))}}function NVn(e,t,n,r,i){return e.reduce((s,o)=>({...s,...PVn(o,t,n,r,i)}),{})}function CVn(e,t,n,r,i){return NVn(e.keys,t,n,r,i)}function Ymt(e,t,n,r,i){let s=CVn(e,t,n,r,i);return Qn(s)}var lme=v(()=>{Ro();zu();h9();qu()});var Zmt=v(()=>{});var CL=v(()=>{cme();lme();ume();Zmt();h9()});function Jmt(e,t){return l0(JT(e),t)}var dme=v(()=>{m9();Og()});function MVn(e,t){let n=e.filter(r=>Pb(r,t)===pe.False);return n.length===1?n[0]:Sr(n)}function l0(e,t,n={}){return Il(e)?fe(Jmt(e,t),n):Ri(e)?fe(Xmt(e,t),n):fe(Yn(e)?MVn(e.anyOf,t):Pb(e,t)!==pe.False?Zn():e,n)}var m9=v(()=>{Nt();oo();ka();CL();fme();dme();Xn()});function DVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=l0(e[r],t);return n}function LVn(e,t){return DVn(e.properties,t)}function Xmt(e,t){let n=LVn(e,t);return Qn(n)}var fme=v(()=>{Ro();m9()});var pme=v(()=>{fme();dme();m9()});function Qmt(e,t){return d0(JT(e),t)}var hme=v(()=>{g9();Og()});function UVn(e,t){let n=e.filter(r=>Pb(r,t)!==pe.False);return n.length===1?n[0]:Sr(n)}function d0(e,t,n){return Il(e)?fe(Qmt(e,t),n):Ri(e)?fe($mt(e,t),n):fe(Yn(e)?UVn(e.anyOf,t):Pb(e,t)!==pe.False?e:Zn(),n)}var g9=v(()=>{Nt();oo();ka();CL();mme();hme();Xn()});function FVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=d0(e[r],t);return n}function jVn(e,t){return FVn(e.properties,t)}function $mt(e,t){let n=jVn(e,t);return Qn(n)}var mme=v(()=>{Ro();g9()});var gme=v(()=>{mme();hme();g9()});function egt(e,t){return zf(e)?fe(e.returns,t):Zn(t)}var tgt=v(()=>{Nt();ka();Xn()});var yme=v(()=>{tgt()});function y9(e){return Vu(gc(e))}var ngt=v(()=>{XT();Ig()});var S9=v(()=>{ngt()});function $T(e,t,n){return fe({[Pe]:"Record",type:"object",patternProperties:{[e]:t}},n)}function Sme(e,t,n){let r={};for(let i of e)r[i]=t;return Or(r,{...n,[Ld]:"Record"})}function HVn(e,t,n){return qht(e)?Sme(Gu(e),t,n):$T(e.pattern,t,n)}function qVn(e,t,n){return Sme(Gu(Sr(e)),t,n)}function BVn(e,t,n){return Sme([e.toString()],t,n)}function zVn(e,t,n){return $T(e.source,t,n)}function GVn(e,t,n){let r=Hs(e.pattern)?Ab:e.pattern;return $T(r,t,n)}function VVn(e,t,n){return $T(Ab,t,n)}function WVn(e,t,n){return $T(ght,t,n)}function KVn(e,t,n){return Or({true:t,false:t},n)}function YVn(e,t,n){return $T(Rb,t,n)}function ZVn(e,t,n){return $T(Rb,t,n)}function b9(e,t,n={}){return Yn(e)?qVn(e.anyOf,t,n):Il(e)?HVn(e,t,n):wl(e)?BVn(e.const,t,n):Rg(e)?KVn(e,t,n):Vf(e)?YVn(e,t,n):Wf(e)?ZVn(e,t,n):She(e)?zVn(e,t,n):Ag(e)?GVn(e,t,n):ghe(e)?VVn(e,t,n):Tb(e)?WVn(e,t,n):Zn(n)}function E9(e){return globalThis.Object.getOwnPropertyNames(e.patternProperties)[0]}function rgt(e){let t=E9(e);return t===Ab?Kf():t===Rb?Ud():Kf({pattern:t})}function _9(e){return e.patternProperties[E9(e)]}var igt=v(()=>{Nt();Ut();ka();ZT();Pl();r0();oo();Og();SL();Bh();Jc();Xn()});var ML=v(()=>{igt()});function JVn(e,t){return t.parameters=DL(e,t.parameters),t.returns=Yf(e,t.returns),t}function XVn(e,t){return t.parameters=DL(e,t.parameters),t.returns=Yf(e,t.returns),t}function QVn(e,t){return t.allOf=DL(e,t.allOf),t}function $Vn(e,t){return t.anyOf=DL(e,t.anyOf),t}function eWn(e,t){return Hs(t.items)||(t.items=DL(e,t.items)),t}function tWn(e,t){return t.items=Yf(e,t.items),t}function nWn(e,t){return t.items=Yf(e,t.items),t}function rWn(e,t){return t.items=Yf(e,t.items),t}function iWn(e,t){return t.item=Yf(e,t.item),t}function sWn(e,t){let n=uWn(e,t.properties);return{...t,...Or(n)}}function oWn(e,t){let n=Yf(e,rgt(t)),r=Yf(e,_9(t)),i=b9(n,r);return{...t,...i}}function aWn(e,t){return t.index in e?e[t.index]:Ob()}function cWn(e,t){let n=JI(t),r=Bu(t),i=Yf(e,t);return n&&r?y9(i):n&&!r?Vu(i):!n&&r?gc(i):i}function uWn(e,t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:cWn(e,t[r])}),{})}function DL(e,t){return t.map(n=>Yf(e,n))}function Yf(e,t){return zf(t)?JVn(e,t):Gf(t)?XVn(e,t):rs(t)?QVn(e,t):Yn(t)?$Vn(e,t):xl(t)?eWn(e,t):qf(t)?tWn(e,t):BT(t)?nWn(e,t):GT(t)?rWn(e,t):VT(t)?iWn(e,t):qs(t)?sWn(e,t):WT(t)?oWn(e,t):yhe(t)?aWn(e,t):t}function sgt(e,t){return Yf(t,ZI(e))}var ogt=v(()=>{j3();a0();S9();XT();Ig();Pl();ML();Jc();Xn()});var bme=v(()=>{ogt()});function agt(e){return fe({[Pe]:"Integer",type:"integer"},e)}var cgt=v(()=>{Nt();Ut()});var Eme=v(()=>{cgt()});function lWn(e,t,n){return{[e]:Zf(ur(e),t,vi(n))}}function dWn(e,t,n){return e.reduce((i,s)=>({...i,...lWn(s,t,n)}),{})}function fWn(e,t,n){return dWn(e.keys,t,n)}function ugt(e,t,n){let r=fWn(e,t,n);return Qn(r)}var _me=v(()=>{Ro();ev();zu();qu()});function pWn(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toLowerCase(),n].join("")}function hWn(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toUpperCase(),n].join("")}function mWn(e){return e.toUpperCase()}function gWn(e){return e.toLowerCase()}function yWn(e,t,n){let r=t0(e.pattern);if(!YT(r))return{...e,pattern:lgt(e.pattern,t)};let o=[...wL(r)].map(u=>ur(u)),a=dgt(o,t),c=Sr(a);return Z3([c],n)}function lgt(e,t){return typeof e=="string"?t==="Uncapitalize"?pWn(e):t==="Capitalize"?hWn(e):t==="Uppercase"?mWn(e):t==="Lowercase"?gWn(e):e:e.toString()}function dgt(e,t){return e.map(n=>Zf(n,t))}function Zf(e,t,n={}){return kl(e)?ugt(e,t,n):Il(e)?yWn(e,t,n):Yn(e)?Sr(dgt(e.anyOf,t),n):wl(e)?ur(lgt(e.const,t),n):fe(e,n)}var ev=v(()=>{Nt();Og();_me();zu();oo();Xn()});function fgt(e,t={}){return Zf(e,"Capitalize",t)}var pgt=v(()=>{ev()});function hgt(e,t={}){return Zf(e,"Lowercase",t)}var mgt=v(()=>{ev()});function ggt(e,t={}){return Zf(e,"Uncapitalize",t)}var ygt=v(()=>{ev()});function Sgt(e,t={}){return Zf(e,"Uppercase",t)}var bgt=v(()=>{ev()});var Tme=v(()=>{pgt();_me();ev();mgt();ygt();bgt()});function SWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Nb(e[i],t,vi(n));return r}function bWn(e,t,n){return SWn(e.properties,t,n)}function Egt(e,t,n){let r=bWn(e,t,n);return Qn(r)}var vme=v(()=>{Ro();T9();qu()});function EWn(e,t){return e.map(n=>Rme(n,t))}function _Wn(e,t){return e.map(n=>Rme(n,t))}function TWn(e,t){let{[t]:n,...r}=e;return r}function vWn(e,t){return t.reduce((n,r)=>TWn(n,r),e)}function RWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=vWn(n,t);return Or(i,r)}function AWn(e){let t=e.reduce((n,r)=>q3(r)?[...n,ur(r)]:n,[]);return Sr(t)}function Rme(e,t){return rs(e)?yc(EWn(e.allOf,t)):Yn(e)?Sr(_Wn(e.anyOf,t)):qs(e)?RWn(e,t,e.properties):Or({})}function Nb(e,t,n){let r=js(t)?AWn(t):t,i=Ol(t)?Gu(t):t,s=_s(e),o=_s(t);return Ri(e)?Egt(e,i,n):kl(t)?_gt(e,t,n):s&&o?oi("Omit",[e,r],n):!s&&o?oi("Omit",[e,r],n):s&&!o?oi("Omit",[e,r],n):fe({...Rme(e,i),...n})}var T9=v(()=>{Nt();z3();dL();kb();zu();Bh();Fd();oo();Pl();Ame();vme();Xn();Jc()});function wWn(e,t,n){return{[t]:Nb(e,[t],vi(n))}}function kWn(e,t,n){return t.reduce((r,i)=>({...r,...wWn(e,i,n)}),{})}function IWn(e,t,n){return kWn(e,t.keys,n)}function _gt(e,t,n){let r=IWn(e,t,n);return Qn(r)}var Ame=v(()=>{Ro();T9();qu()});var v9=v(()=>{Ame();vme();T9()});function xWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Cb(e[i],t,vi(n));return r}function OWn(e,t,n){return xWn(e.properties,t,n)}function Tgt(e,t,n){let r=OWn(e,t,n);return Qn(r)}var wme=v(()=>{Ro();R9();qu()});function PWn(e,t){return e.map(n=>kme(n,t))}function NWn(e,t){return e.map(n=>kme(n,t))}function CWn(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function MWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=CWn(n,t);return Or(i,r)}function DWn(e){let t=e.reduce((n,r)=>q3(r)?[...n,ur(r)]:n,[]);return Sr(t)}function kme(e,t){return rs(e)?yc(PWn(e.allOf,t)):Yn(e)?Sr(NWn(e.anyOf,t)):qs(e)?MWn(e,t,e.properties):Or({})}function Cb(e,t,n){let r=js(t)?DWn(t):t,i=Ol(t)?Gu(t):t,s=_s(e),o=_s(t);return Ri(e)?Tgt(e,i,n):kl(t)?vgt(e,t,n):s&&o?oi("Pick",[e,r],n):!s&&o?oi("Pick",[e,r],n):s&&!o?oi("Pick",[e,r],n):fe({...kme(e,i),...n})}var R9=v(()=>{Nt();z3();kb();Fd();zu();Pl();oo();Bh();dL();Xn();Jc();Ime();wme()});function LWn(e,t,n){return{[t]:Cb(e,[t],vi(n))}}function UWn(e,t,n){return t.reduce((r,i)=>({...r,...LWn(e,i,n)}),{})}function FWn(e,t,n){return UWn(e,t.keys,n)}function vgt(e,t,n){let r=FWn(e,t,n);return Qn(r)}var Ime=v(()=>{Ro();R9();qu()});var A9=v(()=>{Ime();wme();R9()});function jWn(e,t){return oi("Partial",[oi(e,t)])}function HWn(e){return oi("Partial",[zh(e)])}function qWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=gc(e[n]);return t}function BWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=qWn(t);return Or(r,n)}function Rgt(e){return e.map(t=>Agt(t))}function Agt(e){return Bf(e)?jWn(e.target,e.parameters):_s(e)?HWn(e.$ref):rs(e)?yc(Rgt(e.allOf)):Yn(e)?Sr(Rgt(e.anyOf)):qs(e)?BWn(e,e.properties):zT(e)||Rg(e)||Vf(e)||wl(e)||fL(e)||Wf(e)||Ag(e)||pL(e)||hL(e)?e:Or({})}function f0(e,t){return Ri(e)?wgt(e,t):fe({...Agt(e),...t})}var xme=v(()=>{Nt();kb();Ig();Pl();Fd();oo();QT();kg();Ut();Ome();Xn()});function zWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=f0(e[r],vi(t));return n}function GWn(e,t){return zWn(e.properties,t)}function wgt(e,t){let n=GWn(e,t);return Qn(n)}var Ome=v(()=>{Ro();xme();qu()});var w9=v(()=>{Ome();xme()});function VWn(e,t){return oi("Required",[oi(e,t)])}function WWn(e){return oi("Required",[zh(e)])}function KWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=is(e[n],[wa]);return t}function YWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=KWn(t);return Or(r,n)}function kgt(e){return e.map(t=>Igt(t))}function Igt(e){return Bf(e)?VWn(e.target,e.parameters):_s(e)?WWn(e.$ref):rs(e)?yc(kgt(e.allOf)):Yn(e)?Sr(kgt(e.anyOf)):qs(e)?YWn(e,e.properties):zT(e)||Rg(e)||Vf(e)||wl(e)||fL(e)||Wf(e)||Ag(e)||pL(e)||hL(e)?e:Or({})}function p0(e,t){return Ri(e)?xgt(e,t):fe({...Igt(e),...t})}var Pme=v(()=>{Nt();kb();Pl();Fd();oo();QT();Ut();kg();Nme();Xn()});function ZWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=p0(e[r],t);return n}function JWn(e,t){return ZWn(e.properties,t)}function xgt(e,t){let n=JWn(e,t);return Qn(n)}var Nme=v(()=>{Ro();Pme()});var k9=v(()=>{Nme();Pme()});function XWn(e,t){return t.map(n=>_s(n)?Cme(e,n.$ref):Nl(e,n))}function Cme(e,t){return t in e?_s(e[t])?Cme(e,e[t].$ref):Nl(e,e[t]):Zn()}function QWn(e){return s0(e[0])}function $Wn(e){return Ib(e[0],e[1])}function e4n(e){return o0(e[0])}function t4n(e){return f0(e[0])}function n4n(e){return Nb(e[0],e[1])}function r4n(e){return Cb(e[0],e[1])}function i4n(e){return p0(e[0])}function s4n(e,t,n){let r=XWn(e,n);return t==="Awaited"?QWn(r):t==="Index"?$Wn(r):t==="KeyOf"?e4n(r):t==="Partial"?t4n(r):t==="Omit"?n4n(r):t==="Pick"?r4n(r):t==="Required"?i4n(r):Zn()}function o4n(e,t){return XI(Nl(e,t))}function a4n(e,t){return QI(Nl(e,t))}function c4n(e,t,n){return $I(LL(e,t),Nl(e,n))}function u4n(e,t,n){return Hh(LL(e,t),Nl(e,n))}function l4n(e,t){return yc(LL(e,t))}function d4n(e,t){return i0(Nl(e,t))}function f4n(e,t){return Or(globalThis.Object.keys(t).reduce((n,r)=>({...n,[r]:Nl(e,t[r])}),{}))}function p4n(e,t){let[n,r]=[Nl(e,_9(t)),E9(t)],i=ZI(t);return i.patternProperties[r]=n,i}function h4n(e,t){return _s(t)?{...Cme(e,t.$ref),[so]:t[so]}:t}function m4n(e,t){return jd(LL(e,t))}function g4n(e,t){return Sr(LL(e,t))}function LL(e,t){return t.map(n=>Nl(e,n))}function Nl(e,t){return Bu(t)?fe(Nl(e,is(t,[wa])),t):JI(t)?fe(Nl(e,is(t,[Hf])),t):vb(t)?fe(h4n(e,t),t):qf(t)?fe(o4n(e,t.items),t):BT(t)?fe(a4n(e,t.items),t):Bf(t)?fe(s4n(e,t.target,t.parameters)):zf(t)?fe(c4n(e,t.parameters,t.returns),t):Gf(t)?fe(u4n(e,t.parameters,t.returns),t):rs(t)?fe(l4n(e,t.allOf),t):GT(t)?fe(d4n(e,t.items),t):qs(t)?fe(f4n(e,t.properties),t):WT(t)?fe(p4n(e,t)):xl(t)?fe(m4n(e,t.items||[]),t):Yn(t)?fe(g4n(e,t.anyOf),t):t}function y4n(e,t){return t in e?Nl(e,e[t]):Zn()}function Ogt(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:y4n(e,n)}),{})}var Pgt=v(()=>{vg();mhe();kg();_L();e9();TL();vL();Bh();KT();Fd();IL();NL();Pl();v9();A9();ka();w9();ML();k9();xb();oo();Ut();Xn()});function Ngt(e){return new Mme(e)}var Mme,Cgt=v(()=>{vg();Ut();Pgt();Mme=class{constructor(t){let n=Ogt(t),r=this.WithIdentifiers(n);this.$defs=r}Import(t,n){let r={...this.$defs,[t]:fe(this.$defs[t],n)};return fe({[Pe]:"Import",$defs:r,$ref:t})}WithIdentifiers(t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:{...t[r],$id:r}}),{})}}});var Dme=v(()=>{Cgt()});function Mgt(e,t){return fe({[Pe]:"Not",not:e},t)}var Dgt=v(()=>{Nt();Ut()});var Lme=v(()=>{Dgt()});function Lgt(e,t){return Gf(e)?jd(e.parameters,t):Zn()}var Ugt=v(()=>{xb();ka();Xn()});var Ume=v(()=>{Ugt()});function Fgt(e,t={}){Hs(t.$id)&&(t.$id=`T${S4n++}`);let n=ZI(e({[Pe]:"This",$ref:`${t.$id}`}));return n.$id=t.$id,fe({[Ld]:"Recursive",...n},t)}var S4n,jgt=v(()=>{j3();Nt();Jc();Ut();S4n=0});var Fme=v(()=>{jgt()});function Hgt(e,t){let n=Zr(e)?new globalThis.RegExp(e):e;return fe({[Pe]:"RegExp",type:"RegExp",source:n.source,flags:n.flags},t)}var qgt=v(()=>{Nt();Jc();Ut()});var jme=v(()=>{qgt()});function b4n(e){return rs(e)?e.allOf:Yn(e)?e.anyOf:xl(e)?e.items??[]:[]}function Bgt(e){return b4n(e)}var zgt=v(()=>{Xn()});var Hme=v(()=>{zgt()});function Ggt(e,t){return Gf(e)?fe(e.returns,t):Zn(t)}var Vgt=v(()=>{Nt();ka();Xn()});var qme=v(()=>{Vgt()});var Wgt=v(()=>{});var Kgt=v(()=>{});var Ygt=v(()=>{Wgt();Kgt()});var Zgt=v(()=>{});var Jgt=v(()=>{Zgt()});function Xgt(e){return new Bme(e)}var Bme,zme,Qgt=v(()=>{Ut();Xn();Bme=class{constructor(t){this.schema=t}Decode(t){return new zme(this.schema,t)}},zme=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 vb(this.schema)?this.EncodeTransform(t,this.schema):this.EncodeSchema(t,this.schema)}}});var Gme=v(()=>{Qgt()});function $gt(e={}){return fe({[Pe]:e[Pe]??"Unsafe"},e)}var eyt=v(()=>{Nt();Ut()});var Vme=v(()=>{eyt()});function tyt(e){return fe({[Pe]:"Void",type:"void"},e)}var nyt=v(()=>{Nt();Ut()});var Wme=v(()=>{nyt()});var Kme={};Ar(Kme,{Any:()=>wb,Argument:()=>Iht,Array:()=>XI,AsyncIterator:()=>QI,Awaited:()=>s0,BigInt:()=>n0,Boolean:()=>K3,Capitalize:()=>fgt,Composite:()=>Tmt,Const:()=>Omt,Constructor:()=>$I,ConstructorParameters:()=>Nmt,Date:()=>t9,Enum:()=>Mmt,Exclude:()=>l0,Extends:()=>u0,Extract:()=>d0,Function:()=>Hh,Index:()=>Ib,InstanceType:()=>egt,Instantiate:()=>sgt,Integer:()=>agt,Intersect:()=>yc,Iterator:()=>i0,KeyOf:()=>o0,Literal:()=>ur,Lowercase:()=>hgt,Mapped:()=>umt,Module:()=>Ngt,Never:()=>Zn,Not:()=>Mgt,Null:()=>r9,Number:()=>Ud,Object:()=>Or,Omit:()=>Nb,Optional:()=>gc,Parameters:()=>Lgt,Partial:()=>f0,Pick:()=>Cb,Promise:()=>Q3,Readonly:()=>Vu,ReadonlyOptional:()=>y9,Record:()=>b9,Recursive:()=>Fgt,Ref:()=>zh,RegExp:()=>Hgt,Required:()=>p0,Rest:()=>Bgt,ReturnType:()=>Ggt,String:()=>Kf,Symbol:()=>s9,TemplateLiteral:()=>Z3,Transform:()=>Xgt,Tuple:()=>jd,Uint8Array:()=>u9,Uncapitalize:()=>ggt,Undefined:()=>a9,Union:()=>Sr,Unknown:()=>Ob,Unsafe:()=>$gt,Uppercase:()=>Sgt,Void:()=>tyt});var ryt=v(()=>{EL();whe();_L();TL();e9();kL();Y3();Xhe();$he();vL();eme();n9();tme();pme();CL();gme();KT();Bh();yme();bme();Eme();Fd();Tme();IL();NL();zu();Ro();Dme();ka();Lme();i9();ZT();Pl();v9();Ig();Ume();w9();A9();$3();XT();S9();ML();Fme();QT();jme();k9();Hme();qme();r0();o9();Og();Gme();xb();l9();c9();oo();a0();Vme();Wme()});var I,iyt=v(()=>{ryt();I=Kme});var Ao=v(()=>{mhe();vg();jh();vhe();mht();SL();Eht();bL();Ut();EL();_L();whe();TL();e9();kL();Y3();Xhe();$he();vL();eme();n9();tme();pme();CL();gme();KT();Bh();yme();bme();Eme();Fd();IL();Tme();NL();zu();Dme();Ro();ka();Lme();i9();ZT();Pl();v9();Ig();Ume();w9();A9();$3();XT();S9();ML();Fme();QT();jme();k9();Hme();qme();Ygt();Jgt();r0();o9();Og();Gme();xb();l9();c9();oo();a0();Vme();Wme();iyt()});var E4n,Yme,Zme=v(()=>{"use strict";Ao();E4n=I.Object({at:I.String({description:"ISO 8601 timestamp the spec review was signed. Drift sweep walks `git log --since=` against the unit spec to detect out-of-band edits."}),migrated:I.Optional(I.Boolean({description:"True when synthesized by the v0\u2192v4 migrator from legacy state. Real reviews omit this field."}))},{additionalProperties:!1}),Yme=I.Object({at:I.String({description:"ISO 8601 timestamp the approval was signed. Drift sweep walks `git log --since=` against declared output paths to detect out-of-band edits."}),migrated:I.Optional(I.Boolean({description:"True when synthesized by the v0\u2192v4 migrator from a legacy `status: completed` unit. Real approvals omit this field."}))},{additionalProperties:!1})});var syt,He,Ia=v(()=>{"use strict";syt=Re(V_(),1),He=new syt.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 oyt(){let e=(process.env.HAIKU_FIX_SEVERITY_THRESHOLD||"high").trim().toLowerCase();return UL.includes(e)?Xc(e):Xc("high")}function h0(e){return typeof e!="string"||e.length===0?!0:Xc(e)<=oyt()}var I9,UL,ayt,cyt,_4n,T4n,v4n,R4n,x9,Jme,A4n,zli,FL,jL,uyt=v(()=>{"use strict";Ao();Ia();I9=["adversarial-review","studio-review","engine-review","drift","discovery","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],UL=["blocker","high","medium","low"];ayt="^(?:FB-)?\\d+$",cyt=["iterations","closed_at"],_4n=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}),T4n=I.Object({text:I.String({minLength:1}),at:I.String()},{additionalProperties:!1}),v4n=I.Object({title:I.Optional(I.String({minLength:1,maxLength:120})),origin:I.Optional(I.String({enum:[...I9]})),severity:I.Optional(I.String({enum:[...UL]})),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(_4n),closure_reply:I.Optional(T4n),closure_reply_unread:I.Optional(I.Boolean())},{propertyNames:{not:{enum:[...cyt]}},additionalProperties:!0}),R4n=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}),x9=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:[...UL],description:`How urgent the finding is. REQUIRED \u2014 classify as you file. One of: ${UL.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:[...I9],description:`Source of the feedback. One of: ${I9.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(R4n),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}),Jme=He.compile(x9),A4n=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String()),feedback_id:I.String({pattern:ayt}),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}),zli=He.compile(A4n),FL=cyt,jL=["title","origin","severity","author","author_type","created_at","source_ref","attachment","inline_anchor","targets"]});var m0,Xme,O9,Qme,P9,$me,lyt=v(()=>{"use strict";Ao();Ia();m0=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}),Xme=He.compile(m0),O9=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}),Qme=He.compile(O9),P9=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}),$me=He.compile(P9)});var HL,g0,ege,dyt=v(()=>{"use strict";Ao();Ia();HL=["force_stage_complete","set_intent_field","reset_drift","mutate_feedback","set_unit_iterations","preview_cursor"],g0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),op:I.String({enum:[...HL],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}),ege=He.compile(g0)});var y0,tge,fyt=v(()=>{"use strict";Ao();Ia();y0=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}),tge=He.compile(y0)});var Gh,Pg,N9,nge,C9,rge,M9,ige,D9,sge,L9,oge,U9,age,F9,cge,j9,uge,H9,lge,q9,dge,pyt=v(()=>{"use strict";Ao();Ia();Gh=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."})},N9=I.Object({...Pg,state_file:Gh},{additionalProperties:!1}),nge=He.compile(N9),C9=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:Gh},{additionalProperties:!1}),rge=He.compile(C9),M9=I.Object({...Pg,reason:I.String({minLength:1,description:"Explanation for why this feedback is being rejected"}),state_file:Gh},{additionalProperties:!1}),ige=He.compile(M9),D9=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:Gh},{additionalProperties:!1}),sge=He.compile(D9),L9=I.Object({...Pg,state_file:Gh},{additionalProperties:!1}),oge=He.compile(L9),U9=I.Object({...Pg,body:I.String({description:"Full markdown body to write. Replaces the prior body entirely."}),state_file:Gh},{additionalProperties:!1}),age=He.compile(U9),F9=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:Gh},{additionalProperties:!1}),cge=He.compile(F9),j9=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:Gh},{additionalProperties:!1}),uge=He.compile(j9),H9=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:Gh},{additionalProperties:!1}),lge=He.compile(H9),q9=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:Gh},{additionalProperties:!1}),dge=He.compile(q9)});var B9,qL,z9,fge,G9,pge,V9,hge,hyt=v(()=>{"use strict";Ao();Ia();B9=I.Optional(I.String()),qL=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:B9},{additionalProperties:!1}),z9=I.Object({slug:I.String({minLength:1,description:"Intent slug"}),field:I.String({minLength:1,description:"Frontmatter field name to read"}),state_file:B9},{additionalProperties:!1}),fge=He.compile(z9),G9=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:B9},{additionalProperties:!1}),pge=He.compile(G9),V9=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:B9},{additionalProperties:!1}),hge=He.compile(V9)});var wo,myt,W9,mge,K9,gge,Y9,yge,Z9,Sge,BL,zL,J9,bge,X9,Ege,Q9,_ge,$9,Tge,eY,vge,tY,Rge,nY,Age,rY,wge,iY,kge,sY,Ige,oY,xge,S0,Oge,aY,Pge,cY,Nge,uY,Cge,gyt=v(()=>{"use strict";Ao();Ia();wo=I.Optional(I.String()),myt=I.Object({state_file:wo},{additionalProperties:!1}),W9=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}),mge=He.compile(W9),K9=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}),gge=He.compile(K9),Y9=I.Object({intent:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),yge=He.compile(Y9),Z9=I.Object({intent:I.String({minLength:1}),name:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),Sge=He.compile(Z9),BL=myt,zL=He.compile(myt),J9=I.Object({studio:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),bge=He.compile(J9),X9=I.Object({studio:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),Ege=He.compile(X9),Q9=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}),_ge=He.compile(Q9),$9=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}),Tge=He.compile($9),eY=I.Object({studio:I.Optional(I.String({description:"Optional: filter to a specific studio"})),state_file:wo},{additionalProperties:!1}),vge=He.compile(eY),tY=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}),Rge=He.compile(tY),nY=I.Object({intent:I.Optional(I.String({description:"Optional: intent slug for context"})),state_file:wo},{additionalProperties:!1}),Age=He.compile(nY),rY=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}),wge=He.compile(rY),iY=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}),kge=He.compile(iY),sY=I.Object({action:I.Optional(I.String({enum:["list","plant","check"],description:"Defaults to `list`."})),state_file:wo},{additionalProperties:!1}),Ige=He.compile(sY),oY=I.Object({version:I.Optional(I.String({description:"Optional: specific version to extract (e.g. '1.2.0')"})),state_file:wo},{additionalProperties:!1}),xge=He.compile(oY),S0=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}),Oge=He.compile(S0),aY=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}),Pge=He.compile(aY),cY=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}),Nge=He.compile(cY),uY=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by `haiku_view`."}),state_file:wo},{additionalProperties:!1}),Cge=He.compile(uY)});var b0,Mge,yyt=v(()=>{"use strict";Ao();Ia();b0=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}),Mge=He.compile(b0)});var E0,Dge,_0,Lge,T0,Uge,v0,Fge,Syt=v(()=>{"use strict";Ao();Ia();E0=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}),Dge=He.compile(E0),_0=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}),Lge=He.compile(_0),T0=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}),Uge=He.compile(T0),v0=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}),Fge=He.compile(v0)});var byt,R0,jge,A0,Hge,w0,qge,lY,Bge,dY,zge,k0,Gge,Eyt=v(()=>{"use strict";Ao();Ia();byt=I.Optional(I.String()),R0=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}),jge=He.compile(R0),A0=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}),Hge=He.compile(A0),w0=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}),qge=He.compile(w0),lY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),field:I.String({minLength:1}),state_file:byt},{additionalProperties:!1}),Bge=He.compile(lY),dY=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:byt},{additionalProperties:!1}),zge=He.compile(dY),k0=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}),Gge=He.compile(k0)});var fY,Vge,pY,Wge,hY,Kge,mY,Yge,gY,Zge,yY,Jge,SY,Xge,_yt=v(()=>{"use strict";Ao();Ia();fY=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}),Vge=He.compile(fY),pY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"})},{additionalProperties:!1}),Wge=He.compile(pY),hY=I.Object({intent:I.String({minLength:1,description:"Intent slug"})},{additionalProperties:!1}),Kge=He.compile(hY),mY=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}),Yge=He.compile(mY),gY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),template:I.String({minLength:1,description:"Discovery template name (no .md extension)"})},{additionalProperties:!1}),Zge=He.compile(gY),yY=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}),Jge=He.compile(yY),SY=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}),Xge=He.compile(SY)});var bY,Mb,EY,Qge,_Y,$ge,TY,eye,tye,vY,nye,RY,rye,AY,iye,wY,sye,kY,oye,IY,aye,I0,cye,Tyt=v(()=>{"use strict";Ao();Ia();bY={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."})},Mb=I.Optional(I.String()),EY=I.Object({...bY,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:Mb},{additionalProperties:!1}),Qge=He.compile(EY),_Y=I.Object({...bY,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}),$ge=He.compile(_Y),TY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:Mb},{additionalProperties:!1}),eye=He.compile(TY),tye=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."})),vY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:tye,state_file:Mb},{additionalProperties:!1}),nye=He.compile(vY),RY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:tye,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:Mb},{additionalProperties:!1}),rye=He.compile(RY),AY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:tye,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:Mb},{additionalProperties:!1}),iye=He.compile(AY),wY=I.Object({...bY,state_file:Mb},{additionalProperties:!1}),sye=He.compile(wY),kY=I.Object({...bY,state_file:Mb},{additionalProperties:!1}),oye=He.compile(kY),IY=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:Mb},{additionalProperties:!1}),aye=He.compile(IY),I0=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}),cye=He.compile(I0)});var uye,w4n,xY,k4n,GL,x0,I4n,tv,nv,OY,lye=v(()=>{"use strict";Ao();Ia();Zme();uye=["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"],w4n=["draft","ready","failed"],xY=["continuous","discrete","autopilot","discrete-hybrid","quick"],k4n=I.Record(I.String(),I.Union([Yme,I.Null()])),GL=I.Object({title:I.Optional(I.String({minLength:1})),description:I.Optional(I.String()),mode:I.Optional(I.String({enum:[...xY]})),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:[...w4n]})),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:[...uye]}},additionalProperties:!0}),x0=He.compile(GL),I4n=new Set(uye),tv=Object.keys(GL.properties??{}).filter(e=>!I4n.has(e)),nv=uye,OY=["studio","plugin_version","follows"]});var x4n,vyt=v(()=>{"use strict";Ao();x4n=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 dye,fye,Ryt=v(()=>{"use strict";Ao();dye=I.Object({error:I.String({description:"Stable named error code."}),message:I.String({description:"Human-readable remediation guidance."})},{additionalProperties:!0}),fye=I.Object({ok:I.Literal(!0),message:I.String()},{additionalProperties:!0})});var PY,pye,Ayt=v(()=>{"use strict";Ao();PY=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}),pye=Object.keys(PY.properties??{})});var kyt,wyt,rv,Ng,Db,Jf,Iyt=v(()=>{"use strict";Ao();Ia();kyt=["started_at","iterations","reviews","approvals","quality_gates_env_blocked"],wyt="^[^\\s:,]+(?:/[^\\s:,]+)*$",rv=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:wyt}),{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:wyt}),{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:[...kyt]}},additionalProperties:!0}),Ng=He.compile(rv),Db=Object.keys(rv.properties??{}),Jf=kyt});var Hi=v(()=>{"use strict";Zme();uyt();lyt();dyt();fyt();pyt();hyt();gyt();yyt();Syt();Eyt();_yt();Tyt();lye();vyt();Ryt();Ayt();Iyt()});var Pyt={};Ar(Pyt,{DIR_INVENTORY_SKIP:()=>MY,bodyMatchesStoredHash:()=>VL,bodySha256:()=>Cg,buildApprovalRecord:()=>zd,buildOutputWitnesses:()=>N4n,buildReviewRecord:()=>Cl,fileSha256:()=>O0,isTextBodyExtension:()=>CY,normalizeInputPath:()=>WL,outputSha256:()=>Lb,resolveInputWitnesses:()=>DY});import{createHash as NY}from"node:crypto";import{existsSync as iv,readdirSync as O4n,readFileSync as hye,statSync as xyt}from"node:fs";import{join as sv}from"node:path";function Cg(e){if(!iv(e))return"";let t=hye(e,"utf8"),n=t;try{n=(0,mye.default)(t).content}catch{n=t}return n.endsWith(` +`)}function BI(e){let t=`${e.replace(/\/$/,"")}/intent.md`;if(!sL(t))return"";try{let{data:n}=re(w3(t,"utf8"));return typeof n.mode=="string"?n.mode:""}catch{return""}}function zI(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?"":rpt.renderString(Nzn,{slug:n,concurrentLines:o.map(a=>a.line)})}var npt,rpt,Pzn,Nzn,ns=v(()=>{"use strict";gt();npt=Re(Kt(),1);Ci();_f();pb();ze();Kn();vl();ht();Yft();Fh();rpt=new Te({autoEscape:!1,useWith:!0}),Pzn=ie("@canon:","_shared/inline-subagent-context.eta.md"),Nzn=ie("@canon:","_shared/concurrent-elaborate-loop.eta.md")});function x3(e,t,n){let r=e.ensureWorktree(),i=e.mandateRef(t),s=e.priorHandoffBlock(),o=e.resolveModel(t),a=e.bolt(),c=Czn.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 Czn,Wpe=v(()=>{"use strict";gt();ns();Czn=new Te({autoEscape:!1,useWith:!0})});import{existsSync as opt,readdirSync as apt,readFileSync as cpt}from"node:fs";import{join as GI}from"node:path";function Mzn(){return Kpe===null&&(Kpe=ie("@canon:feedback/start_feedback_hat","subagent.eta.md")),Kpe}function Dzn(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?GI(cr(t,n),"feedback"):GI(ce(t),"feedback");try{let p=opt(f)?apt(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=cpt(GI(f,p[0]),"utf8");o=(0,Ype.default)(h).data.model}}catch{}}let a=n?Du(r,n)?.[i]:QK(r)?.[i],c=n?es(r,n):void 0,u=Cd(r),l=fb({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}function VI(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?GI(cr(t,i),"feedback"):GI(ce(t),"feedback"),p=r.replace(/^FB-/i,""),h="",m=1;if(opt(f)){let g=apt(f).find(y=>y.startsWith(p)&&y.endsWith(".md"));if(g){let y=GI(f,g);h=FI(y);try{let b=(0,Ype.default)(cpt(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:()=>Npe(t,c,r)??"",mandateRef:f=>kr({resolveBody:()=>i?AI(n,i,f,!0):lft(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=>Dzn({slug:t,studio:n,stage:i,hat:f,feedbackId:r})?.model,bolt:()=>l().bolt,template:()=>Mzn(),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 x3(d,s,o)}var Ype,Kpe,Zpe=v(()=>{"use strict";Ype=Re(Kt(),1);Ci();ar();pb();ze();Kn();Wpe();ns();ht();Kpe=null});function Jpe(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 upt=v(()=>{"use strict"});var dpt={};Ar(dpt,{computeStageDependents:()=>the,filterInputsByPlanStages:()=>Qpe,resolveIntentStages:()=>wn,resolveStageFixHats:()=>bg,resolveStageHats:()=>Es,resolveStageMetadata:()=>ihe,resolveStageOptional:()=>oL,resolveStageReview:()=>rhe,resolveStudioFilePath:()=>Ff,resolveStudioFixHats:()=>jf,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>nhe,stageRequiresExternalReview:()=>ehe});import{existsSync as Uf,readdirSync as Lzn,readFileSync as Xpe}from"node:fs";import{join as Yr}from"node:path";function HT(e){if(!Uf(e))return{};let t=Xpe(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 Qpe(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 HT(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 HT(o).hats||[]}return[]}function $pe(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 HT(o)}return{}}function oL(e,t){return $pe(e,t).optional===!0}function ehe(e,t){let n=$pe(e,t).review;return typeof n=="string"?n==="external":Array.isArray(n)?n.includes("external"):!1}function the(e,t,n){let r=n.indexOf(t);if(r<0)return[];let i=[];for(let s of n.slice(r+1)){let o=$pe(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=HT(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 Lzn(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=HT(o).fix_hats;return Array.isArray(c)?c:[]}}return[]}function nhe(e,t,n,r){let i=Es(e,t),s=ce(n),o=Yr(s,"stages",t,"units",r.endsWith(".md")?r:`${r}.md`);if(!Uf(o))return i;try{let{data:a}=re(Xpe(o,"utf8"));if((a.closes||[]).length>0&&!i.includes("feedback-assessor"))return[...i,"feedback-assessor"]}catch{}return i}function rhe(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=HT(o).review;return Array.isArray(c)?c.join(","):c||"auto"}}return"auto"}function ihe(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=Xpe(o,"utf8"),c=HT(o),{content:u}=(0,lpt.default)(a);return{description:c.description||t,body:u.trim()}}}return null}var lpt,ji=v(()=>{"use strict";lpt=Re(Kt(),1);Ci();ze();Kn()});import{existsSync as fpt,readFileSync as ppt}from"node:fs";import{join as ohe}from"node:path";function Uzn(){return she===null&&(she=ie("@canon:stage/execute/start_unit_hat","subagent.eta.md")),she}function Fzn(e){if(!Go.modelSelection)return;let{slug:t,studio:n,stage:r,hat:i,unit:s}=e,o,a=ohe(cr(t,r),"units",`${s}.md`);if(fpt(a))try{let d=ppt(a,"utf8");o=(0,ahe.default)(d).data.model}catch{}let c=r?Du(n,r)?.[i]:void 0,u=r?es(n,r):void 0,l=Cd(n);return fb({unit:o,hat:c?.model,stage:u?.data?.default_model,studio:l?.data?.default_model}).model}function jzn(e){let{slug:t,stage:n,unit:r}=e,i=ohe(cr(t,n),"units",`${r}.md`);if(!fpt(i))return[];try{let s=(0,ahe.default)(ppt(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 WI(e){let{slug:t,studio:n,unit:r,stage:i,hat:s,terminal:o}=e,a=ohe(cr(t,i),"units",`${r}.md`),c=null,u=()=>c??=jzn({slug:t,stage:i,unit:r});return x3({slug:t,emitStage:i||void 0,dispatchId:r,ensureWorktree:()=>Ipe(t,r,i)??"",mandateRef:d=>kr({resolveBody:()=>AI(n,i,d),toolName:"haiku_read_hat",toolArgs:{studio:n,stage:i,hat:d},intent:t,stage:i,kind:"mandate",name:d}),priorHandoffBlock:()=>k3(a),resolveModel:d=>Fzn({slug:t,studio:n,stage:i,hat:d,unit:r}),bolt:()=>u().length+1,template:()=>Uzn(),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 ahe,she,che=v(()=>{"use strict";ahe=Re(Kt(),1);Ci();ar();pb();ze();Kn();Wpe();ns();ht();she=null});function P3(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 mpt(e){let t=new Map;for(let i of e.nodes)t.set(i.id,0);for(let i of e.edges)t.set(i.to,(t.get(i.to)??0)+1);let n=[];for(let[i,s]of t)s===0&&n.push(i);n.sort();let r=[];for(;n.length>0;){let i=n.shift();if(!i)break;r.push(i);let s=e.adjacency.get(i)??[];for(let o of s){let a=(t.get(o)??1)-1;if(t.set(o,a),a===0){let c=n.findIndex(u=>u>o);c===-1?n.push(o):n.splice(c,0,o)}}}if(r.lengths.id).filter(s=>!r.includes(s));throw new Error(`Circular dependency detected among units: ${i.join(", ")}`)}return r}function N3(e){let t=mpt(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 O3(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 C3(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=O3(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=O3(h),g=Hu(p.slug);n.push(` ${g}["${m}"]`)}n.push(" end")}else{let l=N3(e),d=new Map(t.map(h=>[h.slug,h])),f=Array.from(l.keys()).sort((h,m)=>h-m),p=f.length>1;for(let h of f){let 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=O3(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=O3(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=hpt[l]??hpt.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 hpt,uhe=v(()=>{"use strict";hpt={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 lhe,readdirSync as gpt,readFileSync as Hzn,rmSync as qzn}from"node:fs";import{join as M3}from"node:path";function Bzn(e){if(!lhe(e))return{};let t=Hzn(e,"utf8"),{data:n}=re(t);return n}function aL(e,t){let n=Eg(e,t);return n.length===0?!0:!n.some(r=>r.status==="completed")}function ypt(e,t){if(!aL(e,t))return[];let n=M3(e,"stages",t,"feedback");if(!lhe(n))return[];let r=[];for(let i of gpt(n))if(i.endsWith(".md")&&/^\d+-/.test(i))try{qzn(M3(n,i),{force:!0}),r.push(i)}catch{}return r}function zzn(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=M3(e,"stages",t,"units");if(!lhe(n))return[];let i=gpt(n).filter(o=>o.endsWith(".md")).map(o=>{let a=Bzn(M3(n,o)),c=zzn(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 KI(e){let t=e.map(c=>({id:c.name,status:c.status})),n=[],r=new Map;for(let c of e)r.set(c.name,[]);for(let c of e)for(let u of c.dependsOn){if(!r.has(u))continue;n.push({from:u,to:c.name});let l=r.get(u);l&&l.push(c.name)}let i={nodes:t,edges:n,adjacency:r},s;try{s=N3(i)}catch{s=new Map([[0,e.map(c=>c.name)]])}let o=new Map,a=0;for(let[c,u]of s){for(let l of u)o.set(l,c);c+1>a&&(a=c+1)}return{waves:s,unitWave:o,totalWaves:a}}function YI(e,t,n){for(let r=0;rt.get(s.name)===r&&s.status!=="completed"))return r;return 0}function D3(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}=KI(n),u=YI(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 L3=v(()=>{"use strict";uhe();ze()});var mc={};Ar(mc,{HasPropertyKey:()=>U3,IsArray:()=>js,IsAsyncIterator:()=>dhe,IsBigInt:()=>cL,IsBoolean:()=>_g,IsDate:()=>qT,IsFunction:()=>fhe,IsIterator:()=>phe,IsNull:()=>hhe,IsNumber:()=>Al,IsObject:()=>Ir,IsRegExp:()=>uL,IsString:()=>Zr,IsSymbol:()=>mhe,IsUint8Array:()=>Tg,IsUndefined:()=>Hs});function U3(e,t){return t in e}function dhe(e){return Ir(e)&&!js(e)&&!Tg(e)&&Symbol.asyncIterator in e}function js(e){return Array.isArray(e)}function cL(e){return typeof e=="bigint"}function _g(e){return typeof e=="boolean"}function qT(e){return e instanceof globalThis.Date}function fhe(e){return typeof e=="function"}function phe(e){return Ir(e)&&!js(e)&&!Tg(e)&&Symbol.iterator in e}function hhe(e){return e===null}function Al(e){return typeof e=="number"}function Ir(e){return typeof e=="object"&&e!==null}function uL(e){return e instanceof globalThis.RegExp}function Zr(e){return typeof e=="string"}function mhe(e){return typeof e=="symbol"}function Tg(e){return e instanceof globalThis.Uint8Array}function Hs(e){return e===void 0}var Jc=v(()=>{});function Gzn(e){return e.map(t=>F3(t))}function Vzn(e){return new Date(e.getTime())}function Wzn(e){return new Uint8Array(e)}function Kzn(e){return new RegExp(e.source,e.flags)}function Yzn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=F3(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=F3(e[n]);return t}function F3(e){return js(e)?Gzn(e):qT(e)?Vzn(e):Tg(e)?Wzn(e):uL(e)?Kzn(e):Ir(e)?Yzn(e):e}function vi(e){return F3(e)}var qu=v(()=>{Jc()});function ZI(e,t){return t===void 0?vi(e):vi({...t,...e})}var j3=v(()=>{qu()});var ghe=v(()=>{j3();qu()});function Spt(e){return e!==null&&typeof e=="object"}function bpt(e){return globalThis.Array.isArray(e)&&!globalThis.ArrayBuffer.isView(e)}function Ept(e){return e===void 0}function _pt(e){return typeof e=="number"}var Tpt=v(()=>{});var vpt=v(()=>{Tpt()});var H3,Rpt=v(()=>{vpt();(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=Spt(o);return e.AllowArrayObject?a:a&&!bpt(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?_pt(o):Number.isFinite(o)}e.IsNumberLike=i;function s(o){let a=Ept(o);return e.AllowNullVoid?a||o===null:a}e.IsVoidLike=s})(H3||(H3={}))});function Zzn(e){return globalThis.Object.freeze(e).map(t=>lL(t))}function Jzn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=lL(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=lL(e[n]);return globalThis.Object.freeze(t)}function lL(e){return js(e)?Zzn(e):qT(e)?e:Tg(e)?e:uL(e)?e:Ir(e)?Jzn(e):e}var Apt=v(()=>{Jc()});function fe(e,t){let n=t!==void 0?{...t,...e}:e;switch(H3.InstanceMode){case"freeze":return lL(n);case"clone":return vi(n);default:return n}}var Nt=v(()=>{Rpt();Apt();qu()});var vg=v(()=>{Nt()});var Jo,wpt=v(()=>{Jo=class extends Error{constructor(t){super(t)}}});var jh=v(()=>{wpt()});var so,Hf,wa,Ld,Pe,dL=v(()=>{so=Symbol.for("TypeBox.Transform"),Hf=Symbol.for("TypeBox.Readonly"),wa=Symbol.for("TypeBox.Optional"),Ld=Symbol.for("TypeBox.Hint"),Pe=Symbol.for("TypeBox.Kind")});var Ut=v(()=>{dL()});function JI(e){return Ir(e)&&e[Hf]==="Readonly"}function Bu(e){return Ir(e)&&e[wa]==="Optional"}function yhe(e){return zn(e,"Any")}function She(e){return zn(e,"Argument")}function qf(e){return zn(e,"Array")}function BT(e){return zn(e,"AsyncIterator")}function zT(e){return zn(e,"BigInt")}function Rg(e){return zn(e,"Boolean")}function Bf(e){return zn(e,"Computed")}function zf(e){return zn(e,"Constructor")}function Xzn(e){return zn(e,"Date")}function Gf(e){return zn(e,"Function")}function Vf(e){return zn(e,"Integer")}function rs(e){return zn(e,"Intersect")}function GT(e){return zn(e,"Iterator")}function zn(e,t){return Ir(e)&&Pe in e&&e[Pe]===t}function q3(e){return _g(e)||Al(e)||Zr(e)}function wl(e){return zn(e,"Literal")}function kl(e){return zn(e,"MappedKey")}function Ri(e){return zn(e,"MappedResult")}function Tb(e){return zn(e,"Never")}function Qzn(e){return zn(e,"Not")}function fL(e){return zn(e,"Null")}function Wf(e){return zn(e,"Number")}function qs(e){return zn(e,"Object")}function VT(e){return zn(e,"Promise")}function WT(e){return zn(e,"Record")}function _s(e){return zn(e,"Ref")}function bhe(e){return zn(e,"RegExp")}function Ag(e){return zn(e,"String")}function pL(e){return zn(e,"Symbol")}function Il(e){return zn(e,"TemplateLiteral")}function $zn(e){return zn(e,"This")}function vb(e){return Ir(e)&&so in e}function xl(e){return zn(e,"Tuple")}function hL(e){return zn(e,"Undefined")}function Yn(e){return zn(e,"Union")}function eGn(e){return zn(e,"Uint8Array")}function tGn(e){return zn(e,"Unknown")}function nGn(e){return zn(e,"Unsafe")}function rGn(e){return zn(e,"Void")}function iGn(e){return Ir(e)&&Pe in e&&Zr(e[Pe])}function Ol(e){return yhe(e)||She(e)||qf(e)||Rg(e)||zT(e)||BT(e)||Bf(e)||zf(e)||Xzn(e)||Gf(e)||Vf(e)||rs(e)||GT(e)||wl(e)||kl(e)||Ri(e)||Tb(e)||Qzn(e)||fL(e)||Wf(e)||qs(e)||VT(e)||WT(e)||_s(e)||bhe(e)||Ag(e)||pL(e)||Il(e)||$zn(e)||xl(e)||hL(e)||Yn(e)||eGn(e)||tGn(e)||nGn(e)||rGn(e)||iGn(e)}var Xn=v(()=>{Jc();Ut()});var X={};Ar(X,{IsAny:()=>Opt,IsArgument:()=>Ppt,IsArray:()=>Npt,IsAsyncIterator:()=>Cpt,IsBigInt:()=>Mpt,IsBoolean:()=>Dpt,IsComputed:()=>Lpt,IsConstructor:()=>Upt,IsDate:()=>Fpt,IsFunction:()=>jpt,IsImport:()=>lGn,IsInteger:()=>Hpt,IsIntersect:()=>qpt,IsIterator:()=>Bpt,IsKind:()=>hht,IsKindOf:()=>kn,IsLiteral:()=>gL,IsLiteralBoolean:()=>dGn,IsLiteralNumber:()=>Gpt,IsLiteralString:()=>zpt,IsLiteralValue:()=>Vpt,IsMappedKey:()=>Wpt,IsMappedResult:()=>Kpt,IsNever:()=>Ypt,IsNot:()=>Zpt,IsNull:()=>Jpt,IsNumber:()=>Xpt,IsObject:()=>Qpt,IsOptional:()=>uGn,IsPromise:()=>$pt,IsProperties:()=>B3,IsReadonly:()=>cGn,IsRecord:()=>eht,IsRecursive:()=>fGn,IsRef:()=>tht,IsRegExp:()=>nht,IsSchema:()=>Xo,IsString:()=>rht,IsSymbol:()=>iht,IsTemplateLiteral:()=>sht,IsThis:()=>oht,IsTransform:()=>aht,IsTuple:()=>cht,IsUint8Array:()=>lht,IsUndefined:()=>uht,IsUnion:()=>vhe,IsUnionLiteral:()=>pGn,IsUnknown:()=>dht,IsUnsafe:()=>fht,IsVoid:()=>pht,TypeGuardUnknownTypeError:()=>Ehe});function kpt(e){try{return new RegExp(e),!0}catch{return!1}}function _he(e){if(!Zr(e))return!1;for(let t=0;t=7&&n<=13||n===27||n===127)return!1}return!0}function Ipt(e){return The(e)||Xo(e)}function mL(e){return Hs(e)||cL(e)}function Jr(e){return Hs(e)||Al(e)}function The(e){return Hs(e)||_g(e)}function xr(e){return Hs(e)||Zr(e)}function oGn(e){return Hs(e)||Zr(e)&&_he(e)&&kpt(e)}function aGn(e){return Hs(e)||Zr(e)&&_he(e)}function xpt(e){return Hs(e)||Xo(e)}function cGn(e){return Ir(e)&&e[Hf]==="Readonly"}function uGn(e){return Ir(e)&&e[wa]==="Optional"}function Opt(e){return kn(e,"Any")&&xr(e.$id)}function Ppt(e){return kn(e,"Argument")&&Al(e.index)}function Npt(e){return kn(e,"Array")&&e.type==="array"&&xr(e.$id)&&Xo(e.items)&&Jr(e.minItems)&&Jr(e.maxItems)&&The(e.uniqueItems)&&xpt(e.contains)&&Jr(e.minContains)&&Jr(e.maxContains)}function Cpt(e){return kn(e,"AsyncIterator")&&e.type==="AsyncIterator"&&xr(e.$id)&&Xo(e.items)}function Mpt(e){return kn(e,"BigInt")&&e.type==="bigint"&&xr(e.$id)&&mL(e.exclusiveMaximum)&&mL(e.exclusiveMinimum)&&mL(e.maximum)&&mL(e.minimum)&&mL(e.multipleOf)}function Dpt(e){return kn(e,"Boolean")&&e.type==="boolean"&&xr(e.$id)}function Lpt(e){return kn(e,"Computed")&&Zr(e.target)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))}function Upt(e){return kn(e,"Constructor")&&e.type==="Constructor"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function Fpt(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 jpt(e){return kn(e,"Function")&&e.type==="Function"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function lGn(e){return kn(e,"Import")&&U3(e,"$defs")&&Ir(e.$defs)&&B3(e.$defs)&&U3(e,"$ref")&&Zr(e.$ref)&&e.$ref in e.$defs}function Hpt(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 B3(e){return Ir(e)&&Object.entries(e).every(([t,n])=>_he(t)&&Xo(n))}function qpt(e){return kn(e,"Intersect")&&!(Zr(e.type)&&e.type!=="object")&&js(e.allOf)&&e.allOf.every(t=>Xo(t)&&!aht(t))&&xr(e.type)&&(The(e.unevaluatedProperties)||xpt(e.unevaluatedProperties))&&xr(e.$id)}function Bpt(e){return kn(e,"Iterator")&&e.type==="Iterator"&&xr(e.$id)&&Xo(e.items)}function kn(e,t){return Ir(e)&&Pe in e&&e[Pe]===t}function zpt(e){return gL(e)&&Zr(e.const)}function Gpt(e){return gL(e)&&Al(e.const)}function dGn(e){return gL(e)&&_g(e.const)}function gL(e){return kn(e,"Literal")&&xr(e.$id)&&Vpt(e.const)}function Vpt(e){return _g(e)||Al(e)||Zr(e)}function Wpt(e){return kn(e,"MappedKey")&&js(e.keys)&&e.keys.every(t=>Al(t)||Zr(t))}function Kpt(e){return kn(e,"MappedResult")&&B3(e.properties)}function Ypt(e){return kn(e,"Never")&&Ir(e.not)&&Object.getOwnPropertyNames(e.not).length===0}function Zpt(e){return kn(e,"Not")&&Xo(e.not)}function Jpt(e){return kn(e,"Null")&&e.type==="null"&&xr(e.$id)}function Xpt(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 Qpt(e){return kn(e,"Object")&&e.type==="object"&&xr(e.$id)&&B3(e.properties)&&Ipt(e.additionalProperties)&&Jr(e.minProperties)&&Jr(e.maxProperties)}function $pt(e){return kn(e,"Promise")&&e.type==="Promise"&&xr(e.$id)&&Xo(e.item)}function eht(e){return kn(e,"Record")&&e.type==="object"&&xr(e.$id)&&Ipt(e.additionalProperties)&&Ir(e.patternProperties)&&(t=>{let n=Object.getOwnPropertyNames(t.patternProperties);return n.length===1&&kpt(n[0])&&Ir(t.patternProperties)&&Xo(t.patternProperties[n[0]])})(e)}function fGn(e){return Ir(e)&&Ld in e&&e[Ld]==="Recursive"}function tht(e){return kn(e,"Ref")&&xr(e.$id)&&Zr(e.$ref)}function nht(e){return kn(e,"RegExp")&&xr(e.$id)&&Zr(e.source)&&Zr(e.flags)&&Jr(e.maxLength)&&Jr(e.minLength)}function rht(e){return kn(e,"String")&&e.type==="string"&&xr(e.$id)&&Jr(e.minLength)&&Jr(e.maxLength)&&oGn(e.pattern)&&aGn(e.format)}function iht(e){return kn(e,"Symbol")&&e.type==="symbol"&&xr(e.$id)}function sht(e){return kn(e,"TemplateLiteral")&&e.type==="string"&&Zr(e.pattern)&&e.pattern[0]==="^"&&e.pattern[e.pattern.length-1]==="$"}function oht(e){return kn(e,"This")&&xr(e.$id)&&Zr(e.$ref)}function aht(e){return Ir(e)&&so in e}function cht(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 uht(e){return kn(e,"Undefined")&&e.type==="undefined"&&xr(e.$id)}function pGn(e){return vhe(e)&&e.anyOf.every(t=>zpt(t)||Gpt(t))}function vhe(e){return kn(e,"Union")&&xr(e.$id)&&Ir(e)&&js(e.anyOf)&&e.anyOf.every(t=>Xo(t))}function lht(e){return kn(e,"Uint8Array")&&e.type==="Uint8Array"&&xr(e.$id)&&Jr(e.minByteLength)&&Jr(e.maxByteLength)}function dht(e){return kn(e,"Unknown")&&xr(e.$id)}function fht(e){return kn(e,"Unsafe")}function pht(e){return kn(e,"Void")&&e.type==="void"&&xr(e.$id)}function hht(e){return Ir(e)&&Pe in e&&Zr(e[Pe])&&!sGn.includes(e[Pe])}function Xo(e){return Ir(e)&&(Opt(e)||Ppt(e)||Npt(e)||Dpt(e)||Mpt(e)||Cpt(e)||Lpt(e)||Upt(e)||Fpt(e)||jpt(e)||Hpt(e)||qpt(e)||Bpt(e)||gL(e)||Wpt(e)||Kpt(e)||Ypt(e)||Zpt(e)||Jpt(e)||Xpt(e)||Qpt(e)||$pt(e)||eht(e)||tht(e)||nht(e)||rht(e)||iht(e)||sht(e)||oht(e)||cht(e)||uht(e)||vhe(e)||lht(e)||dht(e)||fht(e)||pht(e)||hht(e))}var Ehe,sGn,mht=v(()=>{Jc();Ut();jh();Ehe=class extends Jo{},sGn=["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 Rhe=v(()=>{Xn();mht();Jc()});var ght=v(()=>{});var yht=v(()=>{ght()});var Ahe,yL,whe,hGn,J7r,Rb,Ab,Sht,bht=v(()=>{Ahe="(true|false)",yL="(0|[1-9][0-9]*)",whe="(.*)",hGn="(?!.*)",J7r=`^${Ahe}$`,Rb=`^${yL}$`,Ab=`^${whe}$`,Sht=`^${hGn}$`});var SL=v(()=>{bht()});var Eht=v(()=>{});var _ht=v(()=>{});var Tht=v(()=>{Eht();_ht()});function vht(e,t){return e.includes(t)}function Rht(e){return[...new Set(e)]}function yGn(e,t){return e.filter(n=>t.includes(n))}function SGn(e,t){return e.reduce((n,r)=>yGn(n,r),t)}function Aht(e){return e.length===1?e[0]:e.length>1?SGn(e.slice(1),e[0]):[]}function wht(e){let t=[];for(let n of e)t.push(...n);return t}var kht=v(()=>{});var bL=v(()=>{kht()});function wb(e){return fe({[Pe]:"Any"},e)}var Iht=v(()=>{vg();Ut()});var EL=v(()=>{Iht()});function XI(e,t){return fe({[Pe]:"Array",type:"array",items:e},t)}var xht=v(()=>{Nt();Ut()});var _L=v(()=>{xht()});function Oht(e){return fe({[Pe]:"Argument",index:e})}var Pht=v(()=>{Nt();Ut()});var khe=v(()=>{Pht()});function QI(e,t){return fe({[Pe]:"AsyncIterator",type:"AsyncIterator",items:e},t)}var Nht=v(()=>{Ut();Nt()});var TL=v(()=>{Nht()});function oi(e,t,n){return fe({[Pe]:"Computed",target:e,parameters:t},n)}var Cht=v(()=>{vg();dL()});var kb=v(()=>{Cht()});function bGn(e,t){let{[t]:n,...r}=e;return r}function is(e,t){return t.reduce((n,r)=>bGn(n,r),e)}var z3=v(()=>{});var kg=v(()=>{z3()});function Zn(e){return fe({[Pe]:"Never",not:{}},e)}var Mht=v(()=>{Nt();Ut()});var ka=v(()=>{Mht()});var Dht=v(()=>{});function Qn(e){return fe({[Pe]:"MappedResult",properties:e})}var Ihe=v(()=>{Nt();Ut()});function $I(e,t,n){return fe({[Pe]:"Constructor",type:"Constructor",parameters:e,returns:t},n)}var Lht=v(()=>{Nt();Ut()});var vL=v(()=>{Lht()});function Hh(e,t,n){return fe({[Pe]:"Function",type:"Function",parameters:e,returns:t},n)}var Uht=v(()=>{Nt();Ut()});var KT=v(()=>{Uht()});function RL(e,t){return fe({[Pe]:"Union",anyOf:e},t)}var xhe=v(()=>{Nt();Ut()});function EGn(e){return e.some(t=>Bu(t))}function Fht(e){return e.map(t=>Bu(t)?_Gn(t):t)}function _Gn(e){return is(e,[wa])}function TGn(e,t){return EGn(e)?gc(RL(Fht(e),t)):RL(Fht(e),t)}function qh(e,t){return e.length===1?fe(e[0],t):e.length===0?Zn(t):TGn(e,t)}var jht=v(()=>{Nt();Ut();kg();ka();Ig();xhe();Xn()});var Hht=v(()=>{});function Sr(e,t){return e.length===0?Zn(t):e.length===1?fe(e[0],t):RL(e,t)}var qht=v(()=>{ka();Nt();xhe()});var oo=v(()=>{jht();Hht();qht()});function vGn(e){return e.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function Ohe(e,t,n){return e[t]===n&&e.charCodeAt(t-1)!==92}function xg(e,t){return Ohe(e,t,"(")}function AL(e,t){return Ohe(e,t,")")}function Bht(e,t){return Ohe(e,t,"|")}function RGn(e){if(!(xg(e,0)&&AL(e,e.length-1)))return!1;let t=0;for(let n=0;n0&&r.push(e0(o)),n=s+1}let i=e.slice(n);return i.length>0&&r.push(e0(i)),r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"or",expr:r}}function xGn(e){function t(i,s){if(!xg(i,s))throw new G3("TemplateLiteralParser: Index must point to open parens");let o=0;for(let a=s;a0&&r.push(e0(a)),i=o-1}return r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"and",expr:r}}function e0(e){return RGn(e)?e0(AGn(e)):wGn(e)?IGn(e):kGn(e)?xGn(e):{type:"const",const:vGn(e)}}function t0(e){return e0(e.slice(1,e.length-1))}var G3,V3=v(()=>{jh();G3=class extends Jo{}});function OGn(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="0"&&e.expr[1].type==="const"&&e.expr[1].const==="[1-9][0-9]*"}function PGn(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="true"&&e.expr[1].type==="const"&&e.expr[1].const==="false"}function NGn(e){return e.type==="const"&&e.const===".*"}function YT(e){return OGn(e)||NGn(e)?!1:PGn(e)?!0:e.type==="and"?e.expr.every(t=>YT(t)):e.type==="or"?e.expr.every(t=>YT(t)):e.type==="const"?!0:(()=>{throw new Phe("Unknown expression type")})()}function zht(e){let t=t0(e.pattern);return YT(t)}var Phe,Nhe=v(()=>{V3();jh();Phe=class extends Jo{}});function*Ght(e){if(e.length===1)return yield*e[0];for(let t of e[0])for(let n of Ght(e.slice(1)))yield`${t}${n}`}function*CGn(e){return yield*Ght(e.expr.map(t=>[...wL(t)]))}function*MGn(e){for(let t of e.expr)yield*wL(t)}function*DGn(e){return yield e.const}function*wL(e){return e.type==="and"?yield*CGn(e):e.type==="or"?yield*MGn(e):e.type==="const"?yield*DGn(e):(()=>{throw new Che("Unknown expression")})()}function W3(e){let t=t0(e.pattern);return YT(t)?[...wL(t)]:[]}var Che,Mhe=v(()=>{Nhe();V3();jh();Che=class extends Jo{}});function ur(e,t){return fe({[Pe]:"Literal",const:e,type:typeof e},t)}var Vht=v(()=>{Nt();Ut()});var zu=v(()=>{Vht()});function K3(e){return fe({[Pe]:"Boolean",type:"boolean"},e)}var Wht=v(()=>{Ut();vg()});var Y3=v(()=>{Wht()});function n0(e){return fe({[Pe]:"BigInt",type:"bigint"},e)}var Kht=v(()=>{Ut();vg()});var kL=v(()=>{Kht()});function Ud(e){return fe({[Pe]:"Number",type:"number"},e)}var Yht=v(()=>{Nt();Ut()});var ZT=v(()=>{Yht()});function Kf(e){return fe({[Pe]:"String",type:"string"},e)}var Zht=v(()=>{Nt();Ut()});var r0=v(()=>{Zht()});function*LGn(e){let t=e.trim().replace(/"|'/g,"");return t==="boolean"?yield K3():t==="number"?yield Ud():t==="bigint"?yield n0():t==="string"?yield Kf():yield(()=>{let n=t.split("|").map(r=>ur(r.trim()));return n.length===0?Zn():n.length===1?n[0]:qh(n)})()}function*UGn(e){if(e[1]!=="{"){let t=ur("$"),n=Dhe(e.slice(1));return yield*[t,...n]}for(let t=2;t{zu();Y3();kL();ZT();r0();oo();ka()});function FGn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Xht(e,t){return Il(e)?e.pattern.slice(1,e.pattern.length-1):Yn(e)?`(${e.anyOf.map(n=>Xht(n,t)).join("|")})`:Wf(e)?`${t}${yL}`:Vf(e)?`${t}${yL}`:zT(e)?`${t}${yL}`:Ag(e)?`${t}${whe}`:wl(e)?`${t}${FGn(e.const.toString())}`:Rg(e)?`${t}${Ahe}`:(()=>{throw new Uhe(`Unexpected Kind '${e[Pe]}'`)})()}function Fhe(e){return`^${e.map(t=>Xht(t,"")).join("")}$`}var Uhe,jhe=v(()=>{SL();Ut();jh();Xn();Uhe=class extends Jo{}});function JT(e){let n=W3(e).map(r=>ur(r));return qh(n)}var Qht=v(()=>{oo();zu();Mhe()});function Z3(e,t){let n=Zr(e)?Fhe(Jht(e)):Fhe(e);return fe({[Pe]:"TemplateLiteral",type:"string",pattern:n},t)}var $ht=v(()=>{Nt();Lhe();jhe();Jc();Ut()});var Og=v(()=>{Nhe();Mhe();Lhe();V3();jhe();Qht();$ht()});function jGn(e){return W3(e).map(n=>n.toString())}function HGn(e){let t=[];for(let n of e)t.push(...Gu(n));return t}function qGn(e){return[e.toString()]}function Gu(e){return[...new Set(Il(e)?jGn(e):Yn(e)?HGn(e.anyOf):wl(e)?qGn(e.const):Wf(e)?["[number]"]:Vf(e)?["[number]"]:[])]}var J3=v(()=>{Og();Xn()});function BGn(e,t,n){let r={};for(let i of Object.getOwnPropertyNames(t))r[i]=Ib(e,Gu(t[i]),n);return r}function zGn(e,t,n){return BGn(e,t.properties,n)}function emt(e,t,n){let r=zGn(e,t,n);return Qn(r)}var Hhe=v(()=>{Ro();J3();Bh()});function nmt(e,t){return e.map(n=>rmt(n,t))}function GGn(e){return e.filter(t=>!Tb(t))}function VGn(e,t){return X3(GGn(nmt(e,t)))}function WGn(e){return e.some(t=>Tb(t))?[]:e}function KGn(e,t){return qh(WGn(nmt(e,t)))}function YGn(e,t){return t in e?e[t]:t==="[number]"?qh(e):Zn()}function ZGn(e,t){return t==="[number]"?e:Zn()}function JGn(e,t){return t in e?e[t]:Zn()}function rmt(e,t){return rs(e)?VGn(e.allOf,t):Yn(e)?KGn(e.anyOf,t):xl(e)?YGn(e.items??[],t):qf(e)?ZGn(e.items,t):qs(e)?JGn(e.properties,t):Zn()}function qhe(e,t){return t.map(n=>rmt(e,n))}function tmt(e,t){return qh(qhe(e,t))}function Ib(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)?emt(e,t,n):kl(t)?imt(e,t,n):fe(Ol(t)?tmt(e,Gu(t)):tmt(e,t),n)}var Bhe=v(()=>{Nt();jh();kb();ka();Fd();oo();J3();zhe();Hhe();Xn()});function XGn(e,t,n){return{[t]:Ib(e,[t],vi(n))}}function QGn(e,t,n){return t.reduce((r,i)=>({...r,...XGn(e,i,n)}),{})}function $Gn(e,t,n){return QGn(e,t.keys,n)}function imt(e,t,n){let r=$Gn(e,t,n);return Qn(r)}var zhe=v(()=>{Bhe();Ro();qu()});var Bh=v(()=>{zhe();Hhe();J3();Bhe()});function i0(e,t){return fe({[Pe]:"Iterator",type:"Iterator",items:e},t)}var smt=v(()=>{Nt();Ut()});var IL=v(()=>{smt()});function e2n(e){return globalThis.Object.keys(e).filter(t=>!Bu(e[t]))}function t2n(e,t){let n=e2n(e),r=n.length>0?{[Pe]:"Object",type:"object",required:n,properties:e}:{[Pe]:"Object",type:"object",properties:e};return fe(r,t)}var Or,omt=v(()=>{Nt();Ut();Xn();Or=t2n});var Pl=v(()=>{omt()});function Q3(e,t){return fe({[Pe]:"Promise",type:"Promise",item:e},t)}var amt=v(()=>{Nt();Ut()});var $3=v(()=>{amt()});function n2n(e){return fe(is(e,[Hf]))}function r2n(e){return fe({...e,[Hf]:"Readonly"})}function i2n(e,t){return t===!1?n2n(e):r2n(e)}function Vu(e,t){let n=t??!0;return Ri(e)?cmt(e,n):i2n(e,n)}var Ghe=v(()=>{Nt();Ut();kg();Vhe();Xn()});function s2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=Vu(e[r],t);return n}function o2n(e,t){return s2n(e.properties,t)}function cmt(e,t){let n=o2n(e,t);return Qn(n)}var Vhe=v(()=>{Ro();Ghe()});var XT=v(()=>{Vhe();Ghe()});function jd(e,t){return fe(e.length>0?{[Pe]:"Tuple",type:"array",items:e,additionalItems:!1,minItems:e.length,maxItems:e.length}:{[Pe]:"Tuple",type:"array",minItems:e.length,maxItems:e.length},t)}var umt=v(()=>{Nt();Ut()});var xb=v(()=>{umt()});function lmt(e,t){return e in t?Hd(e,t[e]):Qn(t)}function a2n(e){return{[e]:ur(e)}}function c2n(e){let t={};for(let n of e)t[n]=ur(n);return t}function u2n(e,t){return vht(t,e)?a2n(e):c2n(t)}function l2n(e,t){let n=u2n(e,t);return lmt(e,n)}function xL(e,t){return t.map(n=>Hd(e,n))}function d2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(t))n[r]=Hd(e,t[r]);return n}function Hd(e,t){let n={...t};return Bu(t)?gc(Hd(e,is(t,[wa]))):JI(t)?Vu(Hd(e,is(t,[Hf]))):Ri(t)?lmt(e,t.properties):kl(t)?l2n(e,t.keys):zf(t)?$I(xL(e,t.parameters),Hd(e,t.returns),n):Gf(t)?Hh(xL(e,t.parameters),Hd(e,t.returns),n):BT(t)?QI(Hd(e,t.items),n):GT(t)?i0(Hd(e,t.items),n):rs(t)?yc(xL(e,t.allOf),n):Yn(t)?Sr(xL(e,t.anyOf),n):xl(t)?jd(xL(e,t.items??[]),n):qs(t)?Or(d2n(e,t.properties),n):qf(t)?XI(Hd(e,t.items),n):VT(t)?Q3(Hd(e,t.item),n):t}function f2n(e,t){let n={};for(let r of e)n[r]=Hd(r,t);return n}function dmt(e,t,n){let r=Ol(e)?Gu(e):e,i=t({[Pe]:"MappedKey",keys:r}),s=f2n(r,i);return Or(s,n)}var fmt=v(()=>{Ut();kg();_L();TL();vL();KT();Bh();Fd();IL();zu();Pl();Ig();$3();XT();xb();oo();bL();Ihe();Xn()});var Ro=v(()=>{Dht();Ihe();fmt()});function p2n(e){return fe(is(e,[wa]))}function h2n(e){return fe({...e,[wa]:"Optional"})}function m2n(e,t){return t===!1?p2n(e):h2n(e)}function gc(e,t){let n=t??!0;return Ri(e)?pmt(e,n):m2n(e,n)}var Whe=v(()=>{Nt();Ut();kg();Khe();Xn()});function g2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=gc(e[r],t);return n}function y2n(e,t){return g2n(e.properties,t)}function pmt(e,t){let n=y2n(e,t);return Qn(n)}var Khe=v(()=>{Ro();Whe()});var Ig=v(()=>{Khe();Whe()});function OL(e,t={}){let n=e.every(i=>qs(i)),r=Ol(t.unevaluatedProperties)?{unevaluatedProperties:t.unevaluatedProperties}:{};return fe(t.unevaluatedProperties===!1||Ol(t.unevaluatedProperties)||n?{...r,[Pe]:"Intersect",type:"object",allOf:e}:{...r,[Pe]:"Intersect",allOf:e},t)}var Yhe=v(()=>{Nt();Ut();Xn()});function S2n(e){return e.every(t=>Bu(t))}function b2n(e){return is(e,[wa])}function hmt(e){return e.map(t=>Bu(t)?b2n(t):t)}function E2n(e,t){return S2n(e)?gc(OL(hmt(e),t)):OL(hmt(e),t)}function X3(e,t={}){if(e.length===1)return fe(e[0],t);if(e.length===0)return Zn(t);if(e.some(n=>vb(n)))throw new Error("Cannot intersect transform types");return E2n(e,t)}var mmt=v(()=>{Ut();Nt();kg();ka();Ig();Yhe();Xn()});var gmt=v(()=>{});function yc(e,t){if(e.length===1)return fe(e[0],t);if(e.length===0)return Zn(t);if(e.some(n=>vb(n)))throw new Error("Cannot intersect transform types");return OL(e,t)}var ymt=v(()=>{Nt();ka();Yhe();Xn()});var Fd=v(()=>{mmt();gmt();ymt()});function zh(...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 fe({[Pe]:"Ref",$ref:t},n)}var Smt=v(()=>{jh();Nt();Ut()});var QT=v(()=>{Smt()});function _2n(e,t){return oi("Awaited",[oi(e,t)])}function T2n(e){return oi("Awaited",[zh(e)])}function v2n(e){return yc(bmt(e))}function R2n(e){return Sr(bmt(e))}function A2n(e){return s0(e)}function bmt(e){return e.map(t=>s0(t))}function s0(e,t){return fe(Bf(e)?_2n(e.target,e.parameters):rs(e)?v2n(e.allOf):Yn(e)?R2n(e.anyOf):VT(e)?A2n(e.item):_s(e)?T2n(e.$ref):e,t)}var Emt=v(()=>{Nt();kb();Fd();oo();QT();Xn()});var e9=v(()=>{Emt()});function _mt(e){let t=[];for(let n of e)t.push(PL(n));return t}function w2n(e){let t=_mt(e);return wht(t)}function k2n(e){let t=_mt(e);return Aht(t)}function I2n(e){return e.map((t,n)=>n.toString())}function x2n(e){return["[number]"]}function O2n(e){return globalThis.Object.getOwnPropertyNames(e)}function P2n(e){return N2n?globalThis.Object.getOwnPropertyNames(e).map(n=>n[0]==="^"&&n[n.length-1]==="$"?n.slice(1,n.length-1):n):[]}function PL(e){return rs(e)?w2n(e.allOf):Yn(e)?k2n(e.anyOf):xl(e)?I2n(e.items??[]):qf(e)?x2n(e.items):qs(e)?O2n(e.properties):WT(e)?P2n(e.patternProperties):[]}var N2n,Zhe=v(()=>{bL();Xn();N2n=!1});function C2n(e,t){return oi("KeyOf",[oi(e,t)])}function M2n(e){return oi("KeyOf",[zh(e)])}function D2n(e,t){let n=PL(e),r=L2n(n),i=qh(r);return fe(i,t)}function L2n(e){return e.map(t=>t==="[number]"?Ud():ur(t))}function o0(e,t){return Bf(e)?C2n(e.target,e.parameters):_s(e)?M2n(e.$ref):Ri(e)?Tmt(e,t):D2n(e,t)}var Jhe=v(()=>{Nt();zu();ZT();kb();QT();Zhe();oo();Xhe();Xn()});function U2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=o0(e[r],vi(t));return n}function F2n(e,t){return U2n(e.properties,t)}function Tmt(e,t){let n=F2n(e,t);return Qn(n)}var Xhe=v(()=>{Ro();Jhe();qu()});var vmt=v(()=>{});var NL=v(()=>{Xhe();vmt();Zhe();Jhe()});function j2n(e){let t=[];for(let n of e)t.push(...PL(n));return Rht(t)}function H2n(e){return e.filter(t=>!Tb(t))}function q2n(e,t){let n=[];for(let r of e)n.push(...qhe(r,[t]));return H2n(n)}function B2n(e,t){let n={};for(let r of t)n[r]=X3(q2n(e,r));return n}function Rmt(e,t){let n=j2n(e),r=B2n(e,n);return Or(r,t)}var Amt=v(()=>{Fd();Bh();NL();Pl();bL();Xn()});var Qhe=v(()=>{Amt()});function t9(e){return fe({[Pe]:"Date",type:"Date"},e)}var wmt=v(()=>{Ut();Nt()});var n9=v(()=>{wmt()});function r9(e){return fe({[Pe]:"Null",type:"null"},e)}var kmt=v(()=>{Nt();Ut()});var i9=v(()=>{kmt()});function s9(e){return fe({[Pe]:"Symbol",type:"symbol"},e)}var Imt=v(()=>{Nt();Ut()});var o9=v(()=>{Imt()});function a9(e){return fe({[Pe]:"Undefined",type:"undefined"},e)}var xmt=v(()=>{Nt();Ut()});var c9=v(()=>{xmt()});function u9(e){return fe({[Pe]:"Uint8Array",type:"Uint8Array"},e)}var Omt=v(()=>{Nt();Ut()});var l9=v(()=>{Omt()});function Ob(e){return fe({[Pe]:"Unknown"},e)}var Pmt=v(()=>{Nt();Ut()});var a0=v(()=>{Pmt()});function z2n(e){return e.map(t=>$he(t,!1))}function G2n(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=Vu($he(e[n],!1));return t}function d9(e,t){return t===!0?e:Vu(e)}function $he(e,t){return dhe(e)?d9(wb(),t):phe(e)?d9(wb(),t):js(e)?Vu(jd(z2n(e))):Tg(e)?u9():qT(e)?t9():Ir(e)?d9(Or(G2n(e)),t):fhe(e)?d9(Hh([],Ob()),t):Hs(e)?a9():hhe(e)?r9():mhe(e)?s9():cL(e)?n0():Al(e)?ur(e):_g(e)?ur(e):Zr(e)?ur(e):Or({})}function Nmt(e,t){return fe($he(e,!0),t)}var Cmt=v(()=>{EL();kL();n9();KT();zu();i9();Pl();o9();xb();XT();c9();l9();a0();vg();Jc()});var eme=v(()=>{Cmt()});function Mmt(e,t){return zf(e)?jd(e.parameters,t):Zn(t)}var Dmt=v(()=>{xb();ka();Xn()});var tme=v(()=>{Dmt()});function Lmt(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=>ur(s));return Sr(i,{...t,[Ld]:"Enum"})}var Umt=v(()=>{zu();Ut();oo();Jc()});var nme=v(()=>{Umt()});function qd(e){return e===pe.False?e:pe.True}function c0(e){throw new ime(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)?Gmt(e,t):X.IsIntersect(t)?f9(e,t):X.IsUnion(t)?cme(e,t):X.IsUnknown(t)?Ymt(e,t):X.IsAny(t)?ame(e,t):c0("StructuralRight")}function ame(e,t){return pe.True}function V2n(e,t){return X.IsIntersect(t)?f9(e,t):X.IsUnion(t)&&t.anyOf.some(n=>X.IsAny(n)||X.IsUnknown(n))?pe.True:X.IsUnion(t)?pe.Union:X.IsUnknown(t)||X.IsAny(t)?pe.True:pe.Union}function W2n(e,t){return X.IsUnknown(e)?pe.False:X.IsAny(e)?pe.Union:X.IsNever(e)?pe.True:pe.False}function K2n(e,t){return X.IsObject(t)&&p9(t)?pe.True:ao(t)?co(e,t):X.IsArray(t)?qd(Pr(e.items,t.items)):pe.False}function Y2n(e,t){return ao(t)?co(e,t):X.IsAsyncIterator(t)?qd(Pr(e.items,t.items)):pe.False}function Z2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsBigInt(t)?pe.True:pe.False}function Bmt(e,t){return X.IsLiteralBoolean(e)||X.IsBoolean(e)?pe.True:pe.False}function J2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsBoolean(t)?pe.True:pe.False}function X2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsConstructor(t)?e.parameters.length>t.parameters.length?pe.False:e.parameters.every((n,r)=>qd(Pr(t.parameters[r],n))===pe.True)?qd(Pr(e.returns,t.returns)):pe.False:pe.False}function Q2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsDate(t)?pe.True:pe.False}function $2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsFunction(t)?e.parameters.length>t.parameters.length?pe.False:e.parameters.every((n,r)=>qd(Pr(t.parameters[r],n))===pe.True)?qd(Pr(e.returns,t.returns)):pe.False:pe.False}function zmt(e,t){return X.IsLiteral(e)&&mc.IsNumber(e.const)||X.IsNumber(e)||X.IsInteger(e)?pe.True:pe.False}function eVn(e,t){return X.IsInteger(t)||X.IsNumber(t)?pe.True:ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):pe.False}function f9(e,t){return t.allOf.every(n=>Pr(e,n)===pe.True)?pe.True:pe.False}function tVn(e,t){return e.allOf.some(n=>Pr(n,t)===pe.True)?pe.True:pe.False}function nVn(e,t){return ao(t)?co(e,t):X.IsIterator(t)?qd(Pr(e.items,t.items)):pe.False}function rVn(e,t){return X.IsLiteral(t)&&t.const===e.const?pe.True:ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsString(t)?Kmt(e,t):X.IsNumber(t)?Vmt(e,t):X.IsInteger(t)?zmt(e,t):X.IsBoolean(t)?Bmt(e,t):pe.False}function Gmt(e,t){return pe.False}function iVn(e,t){return pe.True}function Fmt(e){let[t,n]=[e,0];for(;X.IsNot(t);)t=t.not,n+=1;return n%2===0?t:Ob()}function sVn(e,t){return X.IsNot(e)?Pr(Fmt(e),t):X.IsNot(t)?Pr(e,Fmt(t)):c0("Invalid fallthrough for Not")}function oVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsNull(t)?pe.True:pe.False}function Vmt(e,t){return X.IsLiteralNumber(e)||X.IsNumber(e)||X.IsInteger(e)?pe.True:pe.False}function aVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsInteger(t)||X.IsNumber(t)?pe.True:pe.False}function Wu(e,t){return Object.getOwnPropertyNames(e.properties).length===t}function jmt(e){return p9(e)}function Hmt(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 rme(e){return Wu(e,0)}function qmt(e){return Wu(e,0)}function cVn(e){return Wu(e,0)}function uVn(e){return Wu(e,0)}function lVn(e){return p9(e)}function dVn(e){let t=Ud();return Wu(e,0)||Wu(e,1)&&"length"in e.properties&&qd(Pr(e.properties.length,t))===pe.True}function fVn(e){return Wu(e,0)}function p9(e){let t=Ud();return Wu(e,0)||Wu(e,1)&&"length"in e.properties&&qd(Pr(e.properties.length,t))===pe.True}function pVn(e){let t=Hh([wb()],wb());return Wu(e,0)||Wu(e,1)&&"then"in e.properties&&qd(Pr(e.properties.then,t))===pe.True}function Wmt(e,t){return Pr(e,t)===pe.False||X.IsOptional(e)&&!X.IsOptional(t)?pe.False:pe.True}function Sc(e,t){return X.IsUnknown(e)?pe.False:X.IsAny(e)?pe.Union:X.IsNever(e)||X.IsLiteralString(e)&&jmt(t)||X.IsLiteralNumber(e)&&rme(t)||X.IsLiteralBoolean(e)&&qmt(t)||X.IsSymbol(e)&&Hmt(t)||X.IsBigInt(e)&&cVn(t)||X.IsString(e)&&jmt(t)||X.IsSymbol(e)&&Hmt(t)||X.IsNumber(e)&&rme(t)||X.IsInteger(e)&&rme(t)||X.IsBoolean(e)&&qmt(t)||X.IsUint8Array(e)&&lVn(t)||X.IsDate(e)&&uVn(t)||X.IsConstructor(e)&&fVn(t)||X.IsFunction(e)&&dVn(t)?pe.True:X.IsRecord(e)&&X.IsString(sme(e))?t[Ld]==="Record"?pe.True:pe.False:X.IsRecord(e)&&X.IsNumber(sme(e))&&Wu(t,0)?pe.True:pe.False}function hVn(e,t){return ao(t)?co(e,t):X.IsRecord(t)?Bd(e,t):X.IsObject(t)?(()=>{for(let n of Object.getOwnPropertyNames(t.properties)){if(!(n in e.properties)&&!X.IsOptional(t.properties[n]))return pe.False;if(X.IsOptional(t.properties[n]))return pe.True;if(Wmt(e.properties[n],t.properties[n])===pe.False)return pe.False}return pe.True})():pe.False}function mVn(e,t){return ao(t)?co(e,t):X.IsObject(t)&&pVn(t)?pe.True:X.IsPromise(t)?qd(Pr(e.item,t.item)):pe.False}function sme(e){return Rb in e.patternProperties?Ud():Ab in e.patternProperties?Kf():c0("Unknown record key pattern")}function ome(e){return Rb in e.patternProperties?e.patternProperties[Rb]:Ab in e.patternProperties?e.patternProperties[Ab]:c0("Unable to get record value schema")}function Bd(e,t){let[n,r]=[sme(t),ome(t)];return X.IsLiteralString(e)&&X.IsNumber(n)&&qd(Pr(e,r))===pe.True?pe.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(Wmt(r,e.properties[i])===pe.False)return pe.False;return pe.True})():pe.False}function gVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Pr(ome(e),ome(t)):pe.False}function yVn(e,t){let n=X.IsRegExp(e)?Kf():e,r=X.IsRegExp(t)?Kf():t;return Pr(n,r)}function Kmt(e,t){return X.IsLiteral(e)&&mc.IsString(e.const)||X.IsString(e)?pe.True:pe.False}function SVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsString(t)?pe.True:pe.False}function bVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsSymbol(t)?pe.True:pe.False}function EVn(e,t){return X.IsTemplateLiteral(e)?Pr(JT(e),t):X.IsTemplateLiteral(t)?Pr(e,JT(t)):c0("Invalid fallthrough for TemplateLiteral")}function _Vn(e,t){return X.IsArray(t)&&e.items!==void 0&&e.items.every(n=>Pr(n,t.items)===pe.True)}function TVn(e,t){return X.IsNever(e)?pe.True:X.IsUnknown(e)?pe.False:X.IsAny(e)?pe.Union:pe.False}function vVn(e,t){return ao(t)?co(e,t):X.IsObject(t)&&p9(t)||X.IsArray(t)&&_Vn(e,t)?pe.True:X.IsTuple(t)?mc.IsUndefined(e.items)&&!mc.IsUndefined(t.items)||!mc.IsUndefined(e.items)&&mc.IsUndefined(t.items)?pe.False:mc.IsUndefined(e.items)&&!mc.IsUndefined(t.items)||e.items.every((n,r)=>Pr(n,t.items[r])===pe.True)?pe.True:pe.False:pe.False}function RVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsUint8Array(t)?pe.True:pe.False}function AVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Bd(e,t):X.IsVoid(t)?IVn(e,t):X.IsUndefined(t)?pe.True:pe.False}function cme(e,t){return t.anyOf.some(n=>Pr(e,n)===pe.True)?pe.True:pe.False}function wVn(e,t){return e.anyOf.every(n=>Pr(n,t)===pe.True)?pe.True:pe.False}function Ymt(e,t){return pe.True}function kVn(e,t){return X.IsNever(t)?Gmt(e,t):X.IsIntersect(t)?f9(e,t):X.IsUnion(t)?cme(e,t):X.IsAny(t)?ame(e,t):X.IsString(t)?Kmt(e,t):X.IsNumber(t)?Vmt(e,t):X.IsInteger(t)?zmt(e,t):X.IsBoolean(t)?Bmt(e,t):X.IsArray(t)?W2n(e,t):X.IsTuple(t)?TVn(e,t):X.IsObject(t)?Sc(e,t):X.IsUnknown(t)?pe.True:pe.False}function IVn(e,t){return X.IsUndefined(e)||X.IsUndefined(e)?pe.True:pe.False}function xVn(e,t){return X.IsIntersect(t)?f9(e,t):X.IsUnion(t)?cme(e,t):X.IsUnknown(t)?Ymt(e,t):X.IsAny(t)?ame(e,t):X.IsObject(t)?Sc(e,t):X.IsVoid(t)?pe.True:pe.False}function Pr(e,t){return X.IsTemplateLiteral(e)||X.IsTemplateLiteral(t)?EVn(e,t):X.IsRegExp(e)||X.IsRegExp(t)?yVn(e,t):X.IsNot(e)||X.IsNot(t)?sVn(e,t):X.IsAny(e)?V2n(e,t):X.IsArray(e)?K2n(e,t):X.IsBigInt(e)?Z2n(e,t):X.IsBoolean(e)?J2n(e,t):X.IsAsyncIterator(e)?Y2n(e,t):X.IsConstructor(e)?X2n(e,t):X.IsDate(e)?Q2n(e,t):X.IsFunction(e)?$2n(e,t):X.IsInteger(e)?eVn(e,t):X.IsIntersect(e)?tVn(e,t):X.IsIterator(e)?nVn(e,t):X.IsLiteral(e)?rVn(e,t):X.IsNever(e)?iVn(e,t):X.IsNull(e)?oVn(e,t):X.IsNumber(e)?aVn(e,t):X.IsObject(e)?hVn(e,t):X.IsRecord(e)?gVn(e,t):X.IsString(e)?SVn(e,t):X.IsSymbol(e)?bVn(e,t):X.IsTuple(e)?vVn(e,t):X.IsPromise(e)?mVn(e,t):X.IsUint8Array(e)?RVn(e,t):X.IsUndefined(e)?AVn(e,t):X.IsUnion(e)?wVn(e,t):X.IsUnknown(e)?kVn(e,t):X.IsVoid(e)?xVn(e,t):c0(`Unknown left type operand '${e[Pe]}'`)}function Pb(e,t){return Pr(e,t)}var ime,pe,ume=v(()=>{EL();KT();ZT();r0();a0();Og();SL();Ut();jh();Rhe();ime=class extends Jo{};(function(e){e[e.Union=0]="Union",e[e.True=1]="True",e[e.False=2]="False"})(pe||(pe={}))});function OVn(e,t,n,r,i){let s={};for(let o of globalThis.Object.getOwnPropertyNames(e))s[o]=u0(e[o],t,n,r,vi(i));return s}function PVn(e,t,n,r,i){return OVn(e.properties,t,n,r,i)}function Zmt(e,t,n,r,i){let s=PVn(e,t,n,r,i);return Qn(s)}var lme=v(()=>{Ro();h9();qu()});function NVn(e,t,n,r){let i=Pb(e,t);return i===pe.Union?Sr([n,r]):i===pe.True?n:r}function u0(e,t,n,r,i){return Ri(e)?Zmt(e,t,n,r,i):kl(e)?fe(Jmt(e,t,n,r,i)):fe(NVn(e,t,n,r),i)}var h9=v(()=>{Nt();oo();ume();dme();lme();Xn()});function CVn(e,t,n,r,i){return{[e]:u0(ur(e),t,n,r,vi(i))}}function MVn(e,t,n,r,i){return e.reduce((s,o)=>({...s,...CVn(o,t,n,r,i)}),{})}function DVn(e,t,n,r,i){return MVn(e.keys,t,n,r,i)}function Jmt(e,t,n,r,i){let s=DVn(e,t,n,r,i);return Qn(s)}var dme=v(()=>{Ro();zu();h9();qu()});var Xmt=v(()=>{});var CL=v(()=>{ume();dme();lme();Xmt();h9()});function Qmt(e,t){return l0(JT(e),t)}var fme=v(()=>{m9();Og()});function LVn(e,t){let n=e.filter(r=>Pb(r,t)===pe.False);return n.length===1?n[0]:Sr(n)}function l0(e,t,n={}){return Il(e)?fe(Qmt(e,t),n):Ri(e)?fe($mt(e,t),n):fe(Yn(e)?LVn(e.anyOf,t):Pb(e,t)!==pe.False?Zn():e,n)}var m9=v(()=>{Nt();oo();ka();CL();pme();fme();Xn()});function UVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=l0(e[r],t);return n}function FVn(e,t){return UVn(e.properties,t)}function $mt(e,t){let n=FVn(e,t);return Qn(n)}var pme=v(()=>{Ro();m9()});var hme=v(()=>{pme();fme();m9()});function egt(e,t){return d0(JT(e),t)}var mme=v(()=>{g9();Og()});function jVn(e,t){let n=e.filter(r=>Pb(r,t)!==pe.False);return n.length===1?n[0]:Sr(n)}function d0(e,t,n){return Il(e)?fe(egt(e,t),n):Ri(e)?fe(tgt(e,t),n):fe(Yn(e)?jVn(e.anyOf,t):Pb(e,t)!==pe.False?e:Zn(),n)}var g9=v(()=>{Nt();oo();ka();CL();gme();mme();Xn()});function HVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=d0(e[r],t);return n}function qVn(e,t){return HVn(e.properties,t)}function tgt(e,t){let n=qVn(e,t);return Qn(n)}var gme=v(()=>{Ro();g9()});var yme=v(()=>{gme();mme();g9()});function ngt(e,t){return zf(e)?fe(e.returns,t):Zn(t)}var rgt=v(()=>{Nt();ka();Xn()});var Sme=v(()=>{rgt()});function y9(e){return Vu(gc(e))}var igt=v(()=>{XT();Ig()});var S9=v(()=>{igt()});function $T(e,t,n){return fe({[Pe]:"Record",type:"object",patternProperties:{[e]:t}},n)}function bme(e,t,n){let r={};for(let i of e)r[i]=t;return Or(r,{...n,[Ld]:"Record"})}function BVn(e,t,n){return zht(e)?bme(Gu(e),t,n):$T(e.pattern,t,n)}function zVn(e,t,n){return bme(Gu(Sr(e)),t,n)}function GVn(e,t,n){return bme([e.toString()],t,n)}function VVn(e,t,n){return $T(e.source,t,n)}function WVn(e,t,n){let r=Hs(e.pattern)?Ab:e.pattern;return $T(r,t,n)}function KVn(e,t,n){return $T(Ab,t,n)}function YVn(e,t,n){return $T(Sht,t,n)}function ZVn(e,t,n){return Or({true:t,false:t},n)}function JVn(e,t,n){return $T(Rb,t,n)}function XVn(e,t,n){return $T(Rb,t,n)}function b9(e,t,n={}){return Yn(e)?zVn(e.anyOf,t,n):Il(e)?BVn(e,t,n):wl(e)?GVn(e.const,t,n):Rg(e)?ZVn(e,t,n):Vf(e)?JVn(e,t,n):Wf(e)?XVn(e,t,n):bhe(e)?VVn(e,t,n):Ag(e)?WVn(e,t,n):yhe(e)?KVn(e,t,n):Tb(e)?YVn(e,t,n):Zn(n)}function E9(e){return globalThis.Object.getOwnPropertyNames(e.patternProperties)[0]}function sgt(e){let t=E9(e);return t===Ab?Kf():t===Rb?Ud():Kf({pattern:t})}function _9(e){return e.patternProperties[E9(e)]}var ogt=v(()=>{Nt();Ut();ka();ZT();Pl();r0();oo();Og();SL();Bh();Jc();Xn()});var ML=v(()=>{ogt()});function QVn(e,t){return t.parameters=DL(e,t.parameters),t.returns=Yf(e,t.returns),t}function $Vn(e,t){return t.parameters=DL(e,t.parameters),t.returns=Yf(e,t.returns),t}function eWn(e,t){return t.allOf=DL(e,t.allOf),t}function tWn(e,t){return t.anyOf=DL(e,t.anyOf),t}function nWn(e,t){return Hs(t.items)||(t.items=DL(e,t.items)),t}function rWn(e,t){return t.items=Yf(e,t.items),t}function iWn(e,t){return t.items=Yf(e,t.items),t}function sWn(e,t){return t.items=Yf(e,t.items),t}function oWn(e,t){return t.item=Yf(e,t.item),t}function aWn(e,t){let n=dWn(e,t.properties);return{...t,...Or(n)}}function cWn(e,t){let n=Yf(e,sgt(t)),r=Yf(e,_9(t)),i=b9(n,r);return{...t,...i}}function uWn(e,t){return t.index in e?e[t.index]:Ob()}function lWn(e,t){let n=JI(t),r=Bu(t),i=Yf(e,t);return n&&r?y9(i):n&&!r?Vu(i):!n&&r?gc(i):i}function dWn(e,t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:lWn(e,t[r])}),{})}function DL(e,t){return t.map(n=>Yf(e,n))}function Yf(e,t){return zf(t)?QVn(e,t):Gf(t)?$Vn(e,t):rs(t)?eWn(e,t):Yn(t)?tWn(e,t):xl(t)?nWn(e,t):qf(t)?rWn(e,t):BT(t)?iWn(e,t):GT(t)?sWn(e,t):VT(t)?oWn(e,t):qs(t)?aWn(e,t):WT(t)?cWn(e,t):She(t)?uWn(e,t):t}function agt(e,t){return Yf(t,ZI(e))}var cgt=v(()=>{j3();a0();S9();XT();Ig();Pl();ML();Jc();Xn()});var Eme=v(()=>{cgt()});function ugt(e){return fe({[Pe]:"Integer",type:"integer"},e)}var lgt=v(()=>{Nt();Ut()});var _me=v(()=>{lgt()});function fWn(e,t,n){return{[e]:Zf(ur(e),t,vi(n))}}function pWn(e,t,n){return e.reduce((i,s)=>({...i,...fWn(s,t,n)}),{})}function hWn(e,t,n){return pWn(e.keys,t,n)}function dgt(e,t,n){let r=hWn(e,t,n);return Qn(r)}var Tme=v(()=>{Ro();ev();zu();qu()});function mWn(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toLowerCase(),n].join("")}function gWn(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toUpperCase(),n].join("")}function yWn(e){return e.toUpperCase()}function SWn(e){return e.toLowerCase()}function bWn(e,t,n){let r=t0(e.pattern);if(!YT(r))return{...e,pattern:fgt(e.pattern,t)};let o=[...wL(r)].map(u=>ur(u)),a=pgt(o,t),c=Sr(a);return Z3([c],n)}function fgt(e,t){return typeof e=="string"?t==="Uncapitalize"?mWn(e):t==="Capitalize"?gWn(e):t==="Uppercase"?yWn(e):t==="Lowercase"?SWn(e):e:e.toString()}function pgt(e,t){return e.map(n=>Zf(n,t))}function Zf(e,t,n={}){return kl(e)?dgt(e,t,n):Il(e)?bWn(e,t,n):Yn(e)?Sr(pgt(e.anyOf,t),n):wl(e)?ur(fgt(e.const,t),n):fe(e,n)}var ev=v(()=>{Nt();Og();Tme();zu();oo();Xn()});function hgt(e,t={}){return Zf(e,"Capitalize",t)}var mgt=v(()=>{ev()});function ggt(e,t={}){return Zf(e,"Lowercase",t)}var ygt=v(()=>{ev()});function Sgt(e,t={}){return Zf(e,"Uncapitalize",t)}var bgt=v(()=>{ev()});function Egt(e,t={}){return Zf(e,"Uppercase",t)}var _gt=v(()=>{ev()});var vme=v(()=>{mgt();Tme();ev();ygt();bgt();_gt()});function EWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Nb(e[i],t,vi(n));return r}function _Wn(e,t,n){return EWn(e.properties,t,n)}function Tgt(e,t,n){let r=_Wn(e,t,n);return Qn(r)}var Rme=v(()=>{Ro();T9();qu()});function TWn(e,t){return e.map(n=>Ame(n,t))}function vWn(e,t){return e.map(n=>Ame(n,t))}function RWn(e,t){let{[t]:n,...r}=e;return r}function AWn(e,t){return t.reduce((n,r)=>RWn(n,r),e)}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)=>q3(r)?[...n,ur(r)]:n,[]);return Sr(t)}function Ame(e,t){return rs(e)?yc(TWn(e.allOf,t)):Yn(e)?Sr(vWn(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)?Tgt(e,i,n):kl(t)?vgt(e,t,n):s&&o?oi("Omit",[e,r],n):!s&&o?oi("Omit",[e,r],n):s&&!o?oi("Omit",[e,r],n):fe({...Ame(e,i),...n})}var T9=v(()=>{Nt();z3();dL();kb();zu();Bh();Fd();oo();Pl();wme();Rme();Xn();Jc()});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 vgt(e,t,n){let r=OWn(e,t,n);return Qn(r)}var wme=v(()=>{Ro();T9();qu()});var v9=v(()=>{wme();Rme();T9()});function PWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Cb(e[i],t,vi(n));return r}function NWn(e,t,n){return PWn(e.properties,t,n)}function Rgt(e,t,n){let r=NWn(e,t,n);return Qn(r)}var kme=v(()=>{Ro();R9();qu()});function CWn(e,t){return e.map(n=>Ime(n,t))}function MWn(e,t){return e.map(n=>Ime(n,t))}function DWn(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=DWn(n,t);return Or(i,r)}function UWn(e){let t=e.reduce((n,r)=>q3(r)?[...n,ur(r)]:n,[]);return Sr(t)}function Ime(e,t){return rs(e)?yc(CWn(e.allOf,t)):Yn(e)?Sr(MWn(e.anyOf,t)):qs(e)?LWn(e,t,e.properties):Or({})}function Cb(e,t,n){let r=js(t)?UWn(t):t,i=Ol(t)?Gu(t):t,s=_s(e),o=_s(t);return Ri(e)?Rgt(e,i,n):kl(t)?Agt(e,t,n):s&&o?oi("Pick",[e,r],n):!s&&o?oi("Pick",[e,r],n):s&&!o?oi("Pick",[e,r],n):fe({...Ime(e,i),...n})}var R9=v(()=>{Nt();z3();kb();Fd();zu();Pl();oo();Bh();dL();Xn();Jc();xme();kme()});function FWn(e,t,n){return{[t]:Cb(e,[t],vi(n))}}function jWn(e,t,n){return t.reduce((r,i)=>({...r,...FWn(e,i,n)}),{})}function HWn(e,t,n){return jWn(e,t.keys,n)}function Agt(e,t,n){let r=HWn(e,t,n);return Qn(r)}var xme=v(()=>{Ro();R9();qu()});var A9=v(()=>{xme();kme();R9()});function qWn(e,t){return oi("Partial",[oi(e,t)])}function BWn(e){return oi("Partial",[zh(e)])}function zWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=gc(e[n]);return t}function GWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=zWn(t);return Or(r,n)}function wgt(e){return e.map(t=>kgt(t))}function kgt(e){return Bf(e)?qWn(e.target,e.parameters):_s(e)?BWn(e.$ref):rs(e)?yc(wgt(e.allOf)):Yn(e)?Sr(wgt(e.anyOf)):qs(e)?GWn(e,e.properties):zT(e)||Rg(e)||Vf(e)||wl(e)||fL(e)||Wf(e)||Ag(e)||pL(e)||hL(e)?e:Or({})}function f0(e,t){return Ri(e)?Igt(e,t):fe({...kgt(e),...t})}var Ome=v(()=>{Nt();kb();Ig();Pl();Fd();oo();QT();kg();Ut();Pme();Xn()});function VWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=f0(e[r],vi(t));return n}function WWn(e,t){return VWn(e.properties,t)}function Igt(e,t){let n=WWn(e,t);return Qn(n)}var Pme=v(()=>{Ro();Ome();qu()});var w9=v(()=>{Pme();Ome()});function KWn(e,t){return oi("Required",[oi(e,t)])}function YWn(e){return oi("Required",[zh(e)])}function ZWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=is(e[n],[wa]);return t}function JWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=ZWn(t);return Or(r,n)}function xgt(e){return e.map(t=>Ogt(t))}function Ogt(e){return Bf(e)?KWn(e.target,e.parameters):_s(e)?YWn(e.$ref):rs(e)?yc(xgt(e.allOf)):Yn(e)?Sr(xgt(e.anyOf)):qs(e)?JWn(e,e.properties):zT(e)||Rg(e)||Vf(e)||wl(e)||fL(e)||Wf(e)||Ag(e)||pL(e)||hL(e)?e:Or({})}function p0(e,t){return Ri(e)?Pgt(e,t):fe({...Ogt(e),...t})}var Nme=v(()=>{Nt();kb();Pl();Fd();oo();QT();Ut();kg();Cme();Xn()});function XWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=p0(e[r],t);return n}function QWn(e,t){return XWn(e.properties,t)}function Pgt(e,t){let n=QWn(e,t);return Qn(n)}var Cme=v(()=>{Ro();Nme()});var k9=v(()=>{Cme();Nme()});function $Wn(e,t){return t.map(n=>_s(n)?Mme(e,n.$ref):Nl(e,n))}function Mme(e,t){return t in e?_s(e[t])?Mme(e,e[t].$ref):Nl(e,e[t]):Zn()}function e4n(e){return s0(e[0])}function t4n(e){return Ib(e[0],e[1])}function n4n(e){return o0(e[0])}function r4n(e){return f0(e[0])}function i4n(e){return Nb(e[0],e[1])}function s4n(e){return Cb(e[0],e[1])}function o4n(e){return p0(e[0])}function a4n(e,t,n){let r=$Wn(e,n);return t==="Awaited"?e4n(r):t==="Index"?t4n(r):t==="KeyOf"?n4n(r):t==="Partial"?r4n(r):t==="Omit"?i4n(r):t==="Pick"?s4n(r):t==="Required"?o4n(r):Zn()}function c4n(e,t){return XI(Nl(e,t))}function u4n(e,t){return QI(Nl(e,t))}function l4n(e,t,n){return $I(LL(e,t),Nl(e,n))}function d4n(e,t,n){return Hh(LL(e,t),Nl(e,n))}function f4n(e,t){return yc(LL(e,t))}function p4n(e,t){return i0(Nl(e,t))}function h4n(e,t){return Or(globalThis.Object.keys(t).reduce((n,r)=>({...n,[r]:Nl(e,t[r])}),{}))}function m4n(e,t){let[n,r]=[Nl(e,_9(t)),E9(t)],i=ZI(t);return i.patternProperties[r]=n,i}function g4n(e,t){return _s(t)?{...Mme(e,t.$ref),[so]:t[so]}:t}function y4n(e,t){return jd(LL(e,t))}function S4n(e,t){return Sr(LL(e,t))}function LL(e,t){return t.map(n=>Nl(e,n))}function Nl(e,t){return Bu(t)?fe(Nl(e,is(t,[wa])),t):JI(t)?fe(Nl(e,is(t,[Hf])),t):vb(t)?fe(g4n(e,t),t):qf(t)?fe(c4n(e,t.items),t):BT(t)?fe(u4n(e,t.items),t):Bf(t)?fe(a4n(e,t.target,t.parameters)):zf(t)?fe(l4n(e,t.parameters,t.returns),t):Gf(t)?fe(d4n(e,t.parameters,t.returns),t):rs(t)?fe(f4n(e,t.allOf),t):GT(t)?fe(p4n(e,t.items),t):qs(t)?fe(h4n(e,t.properties),t):WT(t)?fe(m4n(e,t)):xl(t)?fe(y4n(e,t.items||[]),t):Yn(t)?fe(S4n(e,t.anyOf),t):t}function b4n(e,t){return t in e?Nl(e,e[t]):Zn()}function Ngt(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:b4n(e,n)}),{})}var Cgt=v(()=>{vg();ghe();kg();_L();e9();TL();vL();Bh();KT();Fd();IL();NL();Pl();v9();A9();ka();w9();ML();k9();xb();oo();Ut();Xn()});function Mgt(e){return new Dme(e)}var Dme,Dgt=v(()=>{vg();Ut();Cgt();Dme=class{constructor(t){let n=Ngt(t),r=this.WithIdentifiers(n);this.$defs=r}Import(t,n){let r={...this.$defs,[t]:fe(this.$defs[t],n)};return fe({[Pe]:"Import",$defs:r,$ref:t})}WithIdentifiers(t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:{...t[r],$id:r}}),{})}}});var Lme=v(()=>{Dgt()});function Lgt(e,t){return fe({[Pe]:"Not",not:e},t)}var Ugt=v(()=>{Nt();Ut()});var Ume=v(()=>{Ugt()});function Fgt(e,t){return Gf(e)?jd(e.parameters,t):Zn()}var jgt=v(()=>{xb();ka();Xn()});var Fme=v(()=>{jgt()});function Hgt(e,t={}){Hs(t.$id)&&(t.$id=`T${E4n++}`);let n=ZI(e({[Pe]:"This",$ref:`${t.$id}`}));return n.$id=t.$id,fe({[Ld]:"Recursive",...n},t)}var E4n,qgt=v(()=>{j3();Nt();Jc();Ut();E4n=0});var jme=v(()=>{qgt()});function Bgt(e,t){let n=Zr(e)?new globalThis.RegExp(e):e;return fe({[Pe]:"RegExp",type:"RegExp",source:n.source,flags:n.flags},t)}var zgt=v(()=>{Nt();Jc();Ut()});var Hme=v(()=>{zgt()});function _4n(e){return rs(e)?e.allOf:Yn(e)?e.anyOf:xl(e)?e.items??[]:[]}function Ggt(e){return _4n(e)}var Vgt=v(()=>{Xn()});var qme=v(()=>{Vgt()});function Wgt(e,t){return Gf(e)?fe(e.returns,t):Zn(t)}var Kgt=v(()=>{Nt();ka();Xn()});var Bme=v(()=>{Kgt()});var Ygt=v(()=>{});var Zgt=v(()=>{});var Jgt=v(()=>{Ygt();Zgt()});var Xgt=v(()=>{});var Qgt=v(()=>{Xgt()});function $gt(e){return new zme(e)}var zme,Gme,eyt=v(()=>{Ut();Xn();zme=class{constructor(t){this.schema=t}Decode(t){return new Gme(this.schema,t)}},Gme=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 vb(this.schema)?this.EncodeTransform(t,this.schema):this.EncodeSchema(t,this.schema)}}});var Vme=v(()=>{eyt()});function tyt(e={}){return fe({[Pe]:e[Pe]??"Unsafe"},e)}var nyt=v(()=>{Nt();Ut()});var Wme=v(()=>{nyt()});function ryt(e){return fe({[Pe]:"Void",type:"void"},e)}var iyt=v(()=>{Nt();Ut()});var Kme=v(()=>{iyt()});var Yme={};Ar(Yme,{Any:()=>wb,Argument:()=>Oht,Array:()=>XI,AsyncIterator:()=>QI,Awaited:()=>s0,BigInt:()=>n0,Boolean:()=>K3,Capitalize:()=>hgt,Composite:()=>Rmt,Const:()=>Nmt,Constructor:()=>$I,ConstructorParameters:()=>Mmt,Date:()=>t9,Enum:()=>Lmt,Exclude:()=>l0,Extends:()=>u0,Extract:()=>d0,Function:()=>Hh,Index:()=>Ib,InstanceType:()=>ngt,Instantiate:()=>agt,Integer:()=>ugt,Intersect:()=>yc,Iterator:()=>i0,KeyOf:()=>o0,Literal:()=>ur,Lowercase:()=>ggt,Mapped:()=>dmt,Module:()=>Mgt,Never:()=>Zn,Not:()=>Lgt,Null:()=>r9,Number:()=>Ud,Object:()=>Or,Omit:()=>Nb,Optional:()=>gc,Parameters:()=>Fgt,Partial:()=>f0,Pick:()=>Cb,Promise:()=>Q3,Readonly:()=>Vu,ReadonlyOptional:()=>y9,Record:()=>b9,Recursive:()=>Hgt,Ref:()=>zh,RegExp:()=>Bgt,Required:()=>p0,Rest:()=>Ggt,ReturnType:()=>Wgt,String:()=>Kf,Symbol:()=>s9,TemplateLiteral:()=>Z3,Transform:()=>$gt,Tuple:()=>jd,Uint8Array:()=>u9,Uncapitalize:()=>Sgt,Undefined:()=>a9,Union:()=>Sr,Unknown:()=>Ob,Unsafe:()=>tyt,Uppercase:()=>Egt,Void:()=>ryt});var syt=v(()=>{EL();khe();_L();TL();e9();kL();Y3();Qhe();eme();vL();tme();n9();nme();hme();CL();yme();KT();Bh();Sme();Eme();_me();Fd();vme();IL();NL();zu();Ro();Lme();ka();Ume();i9();ZT();Pl();v9();Ig();Fme();w9();A9();$3();XT();S9();ML();jme();QT();Hme();k9();qme();Bme();r0();o9();Og();Vme();xb();l9();c9();oo();a0();Wme();Kme()});var I,oyt=v(()=>{syt();I=Yme});var Ao=v(()=>{ghe();vg();jh();Rhe();yht();SL();Tht();bL();Ut();EL();_L();khe();TL();e9();kL();Y3();Qhe();eme();vL();tme();n9();nme();hme();CL();yme();KT();Bh();Sme();Eme();_me();Fd();IL();vme();NL();zu();Lme();Ro();ka();Ume();i9();ZT();Pl();v9();Ig();Fme();w9();A9();$3();XT();S9();ML();jme();QT();Hme();k9();qme();Bme();Jgt();Qgt();r0();o9();Og();Vme();xb();l9();c9();oo();a0();Wme();Kme();oyt()});var T4n,Zme,Jme=v(()=>{"use strict";Ao();T4n=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 ayt,He,Ia=v(()=>{"use strict";ayt=Re(V_(),1),He=new ayt.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 cyt(){let e=(process.env.HAIKU_FIX_SEVERITY_THRESHOLD||"high").trim().toLowerCase();return UL.includes(e)?Xc(e):Xc("high")}function h0(e){return typeof e!="string"||e.length===0?!0:Xc(e)<=cyt()}var I9,UL,uyt,lyt,v4n,R4n,A4n,w4n,x9,Xme,k4n,zli,FL,jL,dyt=v(()=>{"use strict";Ao();Ia();I9=["adversarial-review","studio-review","engine-review","drift","discovery","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],UL=["blocker","high","medium","low"];uyt="^(?:FB-)?\\d+$",lyt=["iterations","closed_at"],v4n=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}),R4n=I.Object({text:I.String({minLength:1}),at:I.String()},{additionalProperties:!1}),A4n=I.Object({title:I.Optional(I.String({minLength:1,maxLength:120})),origin:I.Optional(I.String({enum:[...I9]})),severity:I.Optional(I.String({enum:[...UL]})),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(v4n),closure_reply:I.Optional(R4n),closure_reply_unread:I.Optional(I.Boolean())},{propertyNames:{not:{enum:[...lyt]}},additionalProperties:!0}),w4n=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}),x9=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:[...UL],description:`How urgent the finding is. REQUIRED \u2014 classify as you file. One of: ${UL.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:[...I9],description:`Source of the feedback. One of: ${I9.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(w4n),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}),Xme=He.compile(x9),k4n=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String()),feedback_id:I.String({pattern:uyt}),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}),zli=He.compile(k4n),FL=lyt,jL=["title","origin","severity","author","author_type","created_at","source_ref","attachment","inline_anchor","targets"]});var m0,Qme,O9,$me,P9,ege,fyt=v(()=>{"use strict";Ao();Ia();m0=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}),Qme=He.compile(m0),O9=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}),$me=He.compile(O9),P9=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}),ege=He.compile(P9)});var HL,g0,tge,pyt=v(()=>{"use strict";Ao();Ia();HL=["force_stage_complete","set_intent_field","reset_drift","mutate_feedback","set_unit_iterations","preview_cursor"],g0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),op:I.String({enum:[...HL],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}),tge=He.compile(g0)});var y0,nge,hyt=v(()=>{"use strict";Ao();Ia();y0=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}),nge=He.compile(y0)});var Gh,Pg,N9,rge,C9,ige,M9,sge,D9,oge,L9,age,U9,cge,F9,uge,j9,lge,H9,dge,q9,fge,myt=v(()=>{"use strict";Ao();Ia();Gh=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."})},N9=I.Object({...Pg,state_file:Gh},{additionalProperties:!1}),rge=He.compile(N9),C9=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:Gh},{additionalProperties:!1}),ige=He.compile(C9),M9=I.Object({...Pg,reason:I.String({minLength:1,description:"Explanation for why this feedback is being rejected"}),state_file:Gh},{additionalProperties:!1}),sge=He.compile(M9),D9=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:Gh},{additionalProperties:!1}),oge=He.compile(D9),L9=I.Object({...Pg,state_file:Gh},{additionalProperties:!1}),age=He.compile(L9),U9=I.Object({...Pg,body:I.String({description:"Full markdown body to write. Replaces the prior body entirely."}),state_file:Gh},{additionalProperties:!1}),cge=He.compile(U9),F9=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:Gh},{additionalProperties:!1}),uge=He.compile(F9),j9=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:Gh},{additionalProperties:!1}),lge=He.compile(j9),H9=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:Gh},{additionalProperties:!1}),dge=He.compile(H9),q9=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:Gh},{additionalProperties:!1}),fge=He.compile(q9)});var B9,qL,z9,pge,G9,hge,V9,mge,gyt=v(()=>{"use strict";Ao();Ia();B9=I.Optional(I.String()),qL=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:B9},{additionalProperties:!1}),z9=I.Object({slug:I.String({minLength:1,description:"Intent slug"}),field:I.String({minLength:1,description:"Frontmatter field name to read"}),state_file:B9},{additionalProperties:!1}),pge=He.compile(z9),G9=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:B9},{additionalProperties:!1}),hge=He.compile(G9),V9=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:B9},{additionalProperties:!1}),mge=He.compile(V9)});var wo,yyt,W9,gge,K9,yge,Y9,Sge,Z9,bge,BL,zL,J9,Ege,X9,_ge,Q9,Tge,$9,vge,eY,Rge,tY,Age,nY,wge,rY,kge,iY,Ige,sY,xge,oY,Oge,S0,Pge,aY,Nge,cY,Cge,uY,Mge,Syt=v(()=>{"use strict";Ao();Ia();wo=I.Optional(I.String()),yyt=I.Object({state_file:wo},{additionalProperties:!1}),W9=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}),gge=He.compile(W9),K9=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}),yge=He.compile(K9),Y9=I.Object({intent:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),Sge=He.compile(Y9),Z9=I.Object({intent:I.String({minLength:1}),name:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),bge=He.compile(Z9),BL=yyt,zL=He.compile(yyt),J9=I.Object({studio:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),Ege=He.compile(J9),X9=I.Object({studio:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),_ge=He.compile(X9),Q9=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}),Tge=He.compile(Q9),$9=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}),vge=He.compile($9),eY=I.Object({studio:I.Optional(I.String({description:"Optional: filter to a specific studio"})),state_file:wo},{additionalProperties:!1}),Rge=He.compile(eY),tY=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}),Age=He.compile(tY),nY=I.Object({intent:I.Optional(I.String({description:"Optional: intent slug for context"})),state_file:wo},{additionalProperties:!1}),wge=He.compile(nY),rY=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}),kge=He.compile(rY),iY=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}),Ige=He.compile(iY),sY=I.Object({action:I.Optional(I.String({enum:["list","plant","check"],description:"Defaults to `list`."})),state_file:wo},{additionalProperties:!1}),xge=He.compile(sY),oY=I.Object({version:I.Optional(I.String({description:"Optional: specific version to extract (e.g. '1.2.0')"})),state_file:wo},{additionalProperties:!1}),Oge=He.compile(oY),S0=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}),Pge=He.compile(S0),aY=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}),Nge=He.compile(aY),cY=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}),Cge=He.compile(cY),uY=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by `haiku_view`."}),state_file:wo},{additionalProperties:!1}),Mge=He.compile(uY)});var b0,Dge,byt=v(()=>{"use strict";Ao();Ia();b0=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}),Dge=He.compile(b0)});var E0,Lge,_0,Uge,T0,Fge,v0,jge,Eyt=v(()=>{"use strict";Ao();Ia();E0=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}),Lge=He.compile(E0),_0=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}),Uge=He.compile(_0),T0=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}),Fge=He.compile(T0),v0=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}),jge=He.compile(v0)});var _yt,R0,Hge,A0,qge,w0,Bge,lY,zge,dY,Gge,k0,Vge,Tyt=v(()=>{"use strict";Ao();Ia();_yt=I.Optional(I.String()),R0=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}),Hge=He.compile(R0),A0=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}),qge=He.compile(A0),w0=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}),Bge=He.compile(w0),lY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),field:I.String({minLength:1}),state_file:_yt},{additionalProperties:!1}),zge=He.compile(lY),dY=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:_yt},{additionalProperties:!1}),Gge=He.compile(dY),k0=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}),Vge=He.compile(k0)});var fY,Wge,pY,Kge,hY,Yge,mY,Zge,gY,Jge,yY,Xge,SY,Qge,vyt=v(()=>{"use strict";Ao();Ia();fY=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}),Wge=He.compile(fY),pY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"})},{additionalProperties:!1}),Kge=He.compile(pY),hY=I.Object({intent:I.String({minLength:1,description:"Intent slug"})},{additionalProperties:!1}),Yge=He.compile(hY),mY=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(mY),gY=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}),Jge=He.compile(gY),yY=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}),Xge=He.compile(yY),SY=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}),Qge=He.compile(SY)});var bY,Mb,EY,$ge,_Y,eye,TY,tye,nye,vY,rye,RY,iye,AY,sye,wY,oye,kY,aye,IY,cye,I0,uye,Ryt=v(()=>{"use strict";Ao();Ia();bY={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."})},Mb=I.Optional(I.String()),EY=I.Object({...bY,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:Mb},{additionalProperties:!1}),$ge=He.compile(EY),_Y=I.Object({...bY,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}),eye=He.compile(_Y),TY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:Mb},{additionalProperties:!1}),tye=He.compile(TY),nye=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."})),vY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:nye,state_file:Mb},{additionalProperties:!1}),rye=He.compile(vY),RY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:nye,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:Mb},{additionalProperties:!1}),iye=He.compile(RY),AY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:nye,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:Mb},{additionalProperties:!1}),sye=He.compile(AY),wY=I.Object({...bY,state_file:Mb},{additionalProperties:!1}),oye=He.compile(wY),kY=I.Object({...bY,state_file:Mb},{additionalProperties:!1}),aye=He.compile(kY),IY=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:Mb},{additionalProperties:!1}),cye=He.compile(IY),I0=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}),uye=He.compile(I0)});var lye,I4n,xY,x4n,GL,x0,O4n,tv,nv,OY,dye=v(()=>{"use strict";Ao();Ia();Jme();lye=["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"],I4n=["draft","ready","failed"],xY=["continuous","discrete","autopilot","discrete-hybrid","quick"],x4n=I.Record(I.String(),I.Union([Zme,I.Null()])),GL=I.Object({title:I.Optional(I.String({minLength:1})),description:I.Optional(I.String()),mode:I.Optional(I.String({enum:[...xY]})),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:[...I4n]})),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:[...lye]}},additionalProperties:!0}),x0=He.compile(GL),O4n=new Set(lye),tv=Object.keys(GL.properties??{}).filter(e=>!O4n.has(e)),nv=lye,OY=["studio","plugin_version","follows"]});var P4n,Ayt=v(()=>{"use strict";Ao();P4n=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 fye,pye,wyt=v(()=>{"use strict";Ao();fye=I.Object({error:I.String({description:"Stable named error code."}),message:I.String({description:"Human-readable remediation guidance."})},{additionalProperties:!0}),pye=I.Object({ok:I.Literal(!0),message:I.String()},{additionalProperties:!0})});var PY,hye,kyt=v(()=>{"use strict";Ao();PY=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}),hye=Object.keys(PY.properties??{})});var xyt,Iyt,rv,Ng,Db,Jf,Oyt=v(()=>{"use strict";Ao();Ia();xyt=["started_at","iterations","reviews","approvals","quality_gates_env_blocked"],Iyt="^[^\\s:,]+(?:/[^\\s:,]+)*$",rv=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:Iyt}),{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:Iyt}),{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:[...xyt]}},additionalProperties:!0}),Ng=He.compile(rv),Db=Object.keys(rv.properties??{}),Jf=xyt});var Hi=v(()=>{"use strict";Jme();dyt();fyt();pyt();hyt();myt();gyt();Syt();byt();Eyt();Tyt();vyt();Ryt();dye();Ayt();wyt();kyt();Oyt()});var Cyt={};Ar(Cyt,{DIR_INVENTORY_SKIP:()=>MY,bodyMatchesStoredHash:()=>VL,bodySha256:()=>Cg,buildApprovalRecord:()=>zd,buildOutputWitnesses:()=>M4n,buildReviewRecord:()=>Cl,fileSha256:()=>O0,isTextBodyExtension:()=>CY,normalizeInputPath:()=>WL,outputSha256:()=>Lb,resolveInputWitnesses:()=>DY});import{createHash as NY}from"node:crypto";import{existsSync as iv,readdirSync as N4n,readFileSync as mye,statSync as Pyt}from"node:fs";import{join as sv}from"node:path";function Cg(e){if(!iv(e))return"";let t=mye(e,"utf8"),n=t;try{n=(0,gye.default)(t).content}catch{n=t}return n.endsWith(` `)||(n=`${n} -`),NY("sha256").update(n,"utf8").digest("hex")}function O0(e){if(!iv(e))return"";let t=hye(e);return NY("sha256").update(t).digest("hex")}function VL(e,t){if(!iv(e))return!0;let n=Cg(e);if(n&&n===t)return!0;let r=hye(e,"utf8"),i=r;try{i=(0,mye.default)(r).content}catch{i=r}if(NY("sha256").update(i,"utf8").digest("hex")===t)return!0;let o=i.endsWith(` -`)?i.slice(0,-1):i;return o===i?!1:NY("sha256").update(o,"utf8").digest("hex")===t}function Lb(e){return iv(e)?CY(e)?Cg(e):O0(e):""}function CY(e){let t=e.slice(e.lastIndexOf(".")).toLowerCase();return P4n.has(t)}function N4n(e,t,n){let r={},i=n??Oyt(e);for(let s of t){let o=s.startsWith("stages/")?sv(e,s):sv(i,s),a=Lb(o);a&&(r[s]=a)}return r}function Oyt(e){return sv(e,"..","..","..")}function WL(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 C4n(e){let t={},n=[];try{n=O4n(e)}catch{return t}for(let r of n){if(r.startsWith(".")||MY.has(r))continue;let i=sv(e,r);try{if(!xyt(i).isFile())continue}catch{continue}let s=O0(i);s&&(t[r]=s)}return t}function DY(e){let t=e.repoRoot??Oyt(e.intentDir),n={files:{},dirs:{}},r=sv(e.intentDir,"intent.md");if(iv(r)){let i=Cg(r);i&&(n.files["intent.md"]=i)}for(let i of e.unitInputs){if(i==="intent.md")continue;let s=WL(i,e.intentDir);if(s==="intent.md")continue;let o=sv(e.intentDir,s),a=iv(o)?o:sv(t,s);if(!iv(a))continue;let c=!1;try{c=xyt(a).isDirectory()}catch{continue}if(c)n.dirs[s]=C4n(a);else{let u=Lb(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:DY({intentDir:t.intentDir,repoRoot:t.repoRoot,unitInputs:t.unitInputs})}:n}function zd(e,t){return{at:new Date().toISOString()}}var mye,P4n,MY,Xf=v(()=>{"use strict";mye=Re(Kt(),1);P4n=new Set([".md",".markdown",".mdx",".txt",".rst",".adoc"]);MY=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 ov,readdirSync as Nyt,readFileSync as gye}from"node:fs";import{join as Vh}from"node:path";function M4n(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function yye(e,t){return`${e}:${t}`}function D4n(e){let t=new Map;for(let n of e){let r=yye(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(yye(d,f))}return t}function U4n(e,t){let n=t.slice(t.lastIndexOf(".")).toLowerCase();return n===".md"||n===".markdown"||n===".mdx"?Cg(e):Lb(e)}function F4n(e,t,n){let r=Vh(t,e);if(ov(r))return r;let i=Vh(n,e);if(ov(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=Vh(t,a);if(ov(c))return c}}return null}function j4n(e){let t=Vh(e.intentDir,"stages",e.stage,"units",`${e.unit}.md`);if(!ov(t))return;let n=gye(t,"utf8"),i=(0,LY.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&&Ne(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};Ne(t,"reviews",d)}function H4n(e){let t=Vh(e.intentDir,"intent.md");if(!ov(t))return;let n=gye(t,"utf8"),s=(0,LY.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};Ne(t,"approvals",u)}function q4n(e){let t=e.group.slots.map(s=>`- \`${s.unit}\` / role \`${s.role}\``).join(` +`),NY("sha256").update(n,"utf8").digest("hex")}function O0(e){if(!iv(e))return"";let t=mye(e);return NY("sha256").update(t).digest("hex")}function VL(e,t){if(!iv(e))return!0;let n=Cg(e);if(n&&n===t)return!0;let r=mye(e,"utf8"),i=r;try{i=(0,gye.default)(r).content}catch{i=r}if(NY("sha256").update(i,"utf8").digest("hex")===t)return!0;let o=i.endsWith(` +`)?i.slice(0,-1):i;return o===i?!1:NY("sha256").update(o,"utf8").digest("hex")===t}function Lb(e){return iv(e)?CY(e)?Cg(e):O0(e):""}function CY(e){let t=e.slice(e.lastIndexOf(".")).toLowerCase();return C4n.has(t)}function M4n(e,t,n){let r={},i=n??Nyt(e);for(let s of t){let o=s.startsWith("stages/")?sv(e,s):sv(i,s),a=Lb(o);a&&(r[s]=a)}return r}function Nyt(e){return sv(e,"..","..","..")}function WL(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 D4n(e){let t={},n=[];try{n=N4n(e)}catch{return t}for(let r of n){if(r.startsWith(".")||MY.has(r))continue;let i=sv(e,r);try{if(!Pyt(i).isFile())continue}catch{continue}let s=O0(i);s&&(t[r]=s)}return t}function DY(e){let t=e.repoRoot??Nyt(e.intentDir),n={files:{},dirs:{}},r=sv(e.intentDir,"intent.md");if(iv(r)){let i=Cg(r);i&&(n.files["intent.md"]=i)}for(let i of e.unitInputs){if(i==="intent.md")continue;let s=WL(i,e.intentDir);if(s==="intent.md")continue;let o=sv(e.intentDir,s),a=iv(o)?o:sv(t,s);if(!iv(a))continue;let c=!1;try{c=Pyt(a).isDirectory()}catch{continue}if(c)n.dirs[s]=D4n(a);else{let u=Lb(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:DY({intentDir:t.intentDir,repoRoot:t.repoRoot,unitInputs:t.unitInputs})}:n}function zd(e,t){return{at:new Date().toISOString()}}var gye,C4n,MY,Xf=v(()=>{"use strict";gye=Re(Kt(),1);C4n=new Set([".md",".markdown",".mdx",".txt",".rst",".adoc"]);MY=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 ov,readdirSync as Myt,readFileSync as yye}from"node:fs";import{join as Vh}from"node:path";function L4n(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function Sye(e,t){return`${e}:${t}`}function U4n(e){let t=new Map;for(let n of e){let r=Sye(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(Sye(d,f))}return t}function j4n(e,t){let n=t.slice(t.lastIndexOf(".")).toLowerCase();return n===".md"||n===".markdown"||n===".mdx"?Cg(e):Lb(e)}function H4n(e,t,n){let r=Vh(t,e);if(ov(r))return r;let i=Vh(n,e);if(ov(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=Vh(t,a);if(ov(c))return c}}return null}function q4n(e){let t=Vh(e.intentDir,"stages",e.stage,"units",`${e.unit}.md`);if(!ov(t))return;let n=yye(t,"utf8"),i=(0,LY.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&&Ne(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};Ne(t,"reviews",d)}function B4n(e){let t=Vh(e.intentDir,"intent.md");if(!ov(t))return;let n=yye(t,"utf8"),s=(0,LY.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};Ne(t,"approvals",u)}function z4n(e){let t=e.group.slots.map(s=>`- \`${s.unit}\` / role \`${s.role}\``).join(` `),n=e.group.kind==="input_deletion"||e.currentSha===null?`**File**: \`${e.group.file}\` (no longer present on disk)`:`**File**: \`${e.group.file}\``,r=e.currentSha?`**Current SHA**: \`${e.currentSha}\``:"",i=`**Witnessed at**: ${e.group.since}`;return`_Engine-authored drift FB. The premise that ${e.group.slots.length} signed slot(s) depended on has shifted. Read the file at the path below and classify._ ${n} @@ -652,46 +652,46 @@ 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 Myt(e){let t=e.repoRoot??Vh(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=D4n(e.events);n.groups_total=r.length;let i=L4n(e.intentDir),s=i.size>=Cyt;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 ${Cyt}. 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=F4n(o.file,e.intentDir,t),c=a?U4n(a,o.file):"";for(let m of o.slots){if(m.unit==="(intent)"){c&&(H4n({intentDir:e.intentDir,role:m.role,currentSha:c}),n.slots_restamped++);continue}j4n({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")&&!M4n(o.file)){n.fbs_untracked_skipped=(n.fbs_untracked_skipped??0)+1;continue}let l=yye(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:q4n({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 LY,Cyt,Dyt=v(()=>{"use strict";LY=Re(Kt(),1);ze();Xf();Cyt=(()=>{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 B4n,createReadStream as dfi,existsSync as UY,fsyncSync as ffi,mkdirSync as pfi,openSync as z4n,readdirSync as Lyt,readFileSync as Uyt,readSync as G4n,statSync as V4n,unlinkSync as hfi,writeFileSync as mfi,writeSync as gfi}from"node:fs";import{dirname as Sfi,join as Mg,relative as bfi}from"node:path";function av(e){return e.replace(/^(stages\/[^/]+\/)outputs\//,"$1artifacts/")}function jyt(e){try{if(V4n(e).size<12)return null;let n=Buffer.alloc(16),r=z4n(e,"r");try{G4n(r,n,0,16,0)}finally{B4n(r)}for(let{kind:i,prefix:s}of J4n)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 X4n(e,t){return Mg(e,"stages",t,"baseline-content")}function Hyt(e,t,n){return Mg(X4n(e,t),n)}function Q4n(e){return Mg(e,"baseline-content")}function qyt(e,t){return Mg(Q4n(e),t)}function Ub(e,t){let n=Mg(e,"stages");if(!UY(n))return 0;let r=i=>{if(!UY(i))return null;try{let o=JSON.parse(Uyt(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=Lyt(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 FY(e){let t=Mg(e,"settings.yml");if(!UY(t))return!1;try{let n=Uyt(t,"utf-8"),{data:r}=(0,Fyt.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 Lyt(e){let t=e.repoRoot??Vh(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=U4n(e.events);n.groups_total=r.length;let i=F4n(e.intentDir),s=i.size>=Dyt;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 ${Dyt}. 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=H4n(o.file,e.intentDir,t),c=a?j4n(a,o.file):"";for(let m of o.slots){if(m.unit==="(intent)"){c&&(B4n({intentDir:e.intentDir,role:m.role,currentSha:c}),n.slots_restamped++);continue}q4n({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")&&!L4n(o.file)){n.fbs_untracked_skipped=(n.fbs_untracked_skipped??0)+1;continue}let l=Sye(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:z4n({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 LY,Dyt,Uyt=v(()=>{"use strict";LY=Re(Kt(),1);ze();Xf();Dyt=(()=>{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 G4n,createReadStream as dfi,existsSync as UY,fsyncSync as ffi,mkdirSync as pfi,openSync as V4n,readdirSync as Fyt,readFileSync as jyt,readSync as W4n,statSync as K4n,unlinkSync as hfi,writeFileSync as mfi,writeSync as gfi}from"node:fs";import{dirname as Sfi,join as Mg,relative as bfi}from"node:path";function av(e){return e.replace(/^(stages\/[^/]+\/)outputs\//,"$1artifacts/")}function qyt(e){try{if(K4n(e).size<12)return null;let n=Buffer.alloc(16),r=V4n(e,"r");try{W4n(r,n,0,16,0)}finally{G4n(r)}for(let{kind:i,prefix:s}of Q4n)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 $4n(e,t){return Mg(e,"stages",t,"baseline-content")}function Byt(e,t,n){return Mg($4n(e,t),n)}function eKn(e){return Mg(e,"baseline-content")}function zyt(e,t){return Mg(eKn(e),t)}function Ub(e,t){let n=Mg(e,"stages");if(!UY(n))return 0;let r=i=>{if(!UY(i))return null;try{let o=JSON.parse(jyt(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=Fyt(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 FY(e){let t=Mg(e,"settings.yml");if(!UY(t))return!1;try{let n=jyt(t,"utf-8"),{data:r}=(0,Hyt.default)(`--- ${n} --- -`);return r.drift_detection===!1}catch{return!1}}function Byt(e){let t=Mg(e,"stages");if(!UY(t))return[];try{return Lyt(t,{withFileTypes:!0}).filter(n=>n.isDirectory()).map(n=>n.name)}catch{return[]}}var Fyt,W4n,K4n,Y4n,Z4n,_fi,Tfi,J4n,P0=v(()=>{"use strict";Fyt=Re(Kt(),1);_l();W4n=O.enum(["agent","human-via-mcp","human-implicit"]),K4n=O.enum(["agent-write","human-write-tool","spa-upload","classification-terminal","baseline-init"]),Y4n=O.enum(["stage-output","knowledge","unit-output","intent-meta"]),Z4n=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:W4n,acknowledged_at:O.string(),acknowledged_via:K4n,stage:O.string().nullable(),tracking_class:Y4n}),_fi=O.record(O.string(),Z4n);Tfi=64*1024,J4n=[{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 Vyt,readFileSync as $4n,statSync as eKn}from"node:fs";import{basename as Wyt,join as $o,relative as jY}from"node:path";function tKn(e){if(!Qf(e))return[];let t=[];try{t=Vyt(e)}catch{return[]}let n=[];for(let r of t)if(!r.startsWith(".")&&!MY.has(r))try{eKn($o(e,r)).isFile()&&n.push(r)}catch{}return n}function nKn(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 bye(e){if(!Qf(e))return null;try{let t=$4n(e,"utf8");return(0,Kyt.default)(t).data}catch{return null}}function Sye(e){if(e===null||typeof e!="object")return null;let t=e;return typeof t.at=="string"&&t.at.length>0?t.at:null}function zyt(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 Gyt(e,t){let n=Lb(e);if(!n)return null;if(n===t)return{matches:!0,current:n};let r=O0(e);return r===t?{matches:!0,current:r}:{matches:!1,current:n}}function rKn(e){let t=$o(e,"units");return Qf(t)?Vyt(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>$o(t,n.name)):[]}function iKn(e,t,n){return $o(e,"stages",t,"discovery",`${n}.md`)}function Eye(e,t){let n=e.replace(/\{intent-slug\}/g,t),r=`.haiku/intents/${t}/`;return n.startsWith(r)?n.slice(r.length):n}function sKn(e,t,n,r){let i=Wyt(e),s=new Set;try{for(let o of no(t,n))o.location&&s.add(Eye(o.location,i))}catch{}for(let o of r){let a=bye(o),c=a&&Array.isArray(a.outputs)?a.outputs:[];for(let u of c)typeof u=="string"&&u.length>0&&s.add(Eye(u,i))}return s}function oKn(e,t,n,r){return $o(e,"plugin","studios",t,"stages",n,"discovery",`${r}.md`)}function HY(e){let t=e.repoRoot??$o(e.intentDir,"..","..",".."),n=$o(t,".haiku");if(FY(n))return{events:[],scanned:0,skipped:0};let r=[],i=0,s=0,o=$o(e.intentDir,"stages",e.stage),a=rKn(o),c=sKn(e.intentDir,e.studio,e.stage,a),u=Wyt(e.intentDir),l=p=>c.has(p)||c.has(Eye(p,u));for(let p of a){let h=bye(p);if(!h)continue;let m=(p.split("/").pop()??"").replace(/\.md$/,"");if(h.started_at==null){s++;continue}let g=jY(e.intentDir,p),y=h.reviews??{};for(let[S,E]of Object.entries(y)){i++;let _=Sye(E);if(!_)continue;let T=zyt(E);T&&Qf(p)&&!VL(p,T)&&r.push({unit:m,role:S,kind:"spec",file:g,since:_});let R=nKn(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=WL(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}(CY(N)?!VL(N,x):(()=>{let L=Lb(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=WL(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=tKn(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=O0($);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 _=Sye(E);if(!_)continue;let T=E,R=iKn(e.intentDir,e.stage,S),A=typeof T.output_sha256=="string"?T.output_sha256:null;if(A){let P=Gyt(R,A);P&&!P.matches&&r.push({unit:m,role:S,kind:"discovery_output",file:jY(e.intentDir,R),since:_})}let x=oKn(t,e.studio,e.stage,S),k=typeof T.mandate_sha256=="string"?T.mandate_sha256:null;if(k){let P=Gyt(x,k);P&&!P.matches&&r.push({unit:m,role:S,kind:"discovery_mandate",file:jY(t,x),since:_})}}}let d=$o(e.intentDir,"intent.md"),f=bye(d);if(f){let p=f.approvals??{},h=jY(e.intentDir,d);for(let[m,g]of Object.entries(p)){i++;let y=Sye(g);if(!y)continue;let b=zyt(g);b&&(VL(d,b)||r.push({unit:"(intent)",role:m,kind:"spec",file:h,since:y}))}}return{events:r,scanned:i,skipped:s}}var Kyt,_ye=v(()=>{"use strict";Kyt=Re(Kt(),1);Kn();P0();Xf()});function N0(e,t={}){let n=`haiku/${e}/main`;if(!Ee())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 KL(e,t={}){let n=N0(e,t);return n.applicable&&!n.merged}var YL=v(()=>{"use strict";ar();Eb()});var D0={};Ar(D0,{__testOnly:()=>mKn,computeElaborateSignals:()=>M0,derivePosition:()=>$f,findCurrentStage:()=>ai,intentReviewRoles:()=>GY,isBriefEnabled:()=>Xyt,isReflectionEnabled:()=>lv,isStageComplete:()=>C0,listUnitPaths:()=>dv,nextHatForUnit:()=>uv,pendingApprovalSlots:()=>uKn,pendingReviewSlots:()=>cKn,readFm:()=>Qc,serializeElaborateSignals:()=>Aye,stageOwesBrief:()=>eSt,stageOwesObservations:()=>vye,stageRoleLists:()=>VY,unitName:()=>zY,walkFeedbackTrack:()=>Rye});import{existsSync as xa,readdirSync as ZL,readFileSync as qY,writeFileSync as Yyt}from"node:fs";import{basename as Jyt,join as zr}from"node:path";function aKn(e){let t=zr(e.intentDir,"intent.md");if(xa(t))try{let n=qY(t,"utf8"),r=(0,cv.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,Yyt(t,cv.default.stringify(r.content,i))):u===!0&&(delete c[o],Object.keys(c).length===0?delete i[s]:i[s]=c,Yyt(t,cv.default.stringify(r.content,i)))}catch{}}function lv(e){let t=zr(e,"intent.md");if(!xa(t))return!0;try{let n=qY(t,"utf8"),i=(0,cv.default)(n).data;return!(i.reflection===!1||i.autotune===!1)}catch{return!0}}function Xyt(e){let t=zr(e,"intent.md");if(!xa(t))return!0;try{let n=qY(t,"utf8");return(0,cv.default)(n).data.brief!==!1}catch{return!0}}function Qc(e){if(!xa(e))return null;try{let t=qY(e,"utf8"),n=(0,cv.default)(t);return{data:n.data,body:n.content}}catch{return null}}function Qyt(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 Fb(e){return Array.isArray(e.iterations)?e.iterations??[]:[]}function BY(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function $yt(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function zY(e){return Jyt(e).replace(/\.md$/,"")}function dv(e){let t=zr(e,"units");return xa(t)?ZL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>zr(t,n.name)).sort():[]}function Zyt(e){let t=zr(e,"feedback");return xa(t)?ZL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>zr(t,n.name)).sort():[]}function uv(e,t){if(t.length===0)return null;let n=Fb(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 cKn(e,t){let n=$yt(e);return t.filter(r=>!n[r])}function uKn(e,t){let n=BY(e);return t.filter(r=>!n[r])}function lKn(e,t,n){let r=Object.keys(Tl(e,t)).sort();return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...r,"user"]}function dKn(e){return typeof e.started_at=="string"&&e.started_at.length>0}function fKn(e,t){let n=BY(e);for(let r of t)if(!n[r])return!1;return!0}function pKn(e,t){if(fKn(e,t))return!0;let n=dKn(e),r=Fb(e);return n&&r.length===0?(Array.isArray(e.outputs)?e.outputs:[]).length===0:!1}function hKn(e,t,n,r){let i=zr(e,"stages",n,"units");if(!xa(i))return!1;let s=ZL(i).filter(c=>c.endsWith(".md"));if(s.length===0||Es(t,n).length===0)return!1;let a=lKn(t,n,r);for(let c of s){let u=Qc(zr(i,c))?.data;if(!u||!pKn(u,a))return!1}return!0}function C0(e,t,n,r){return hKn(e,t,n,r)}function vye(e,t){return lv(e)?!xa(zr(e,"stages",t,"observations.md")):!1}function eSt(e,t,n){return!(!Xyt(e)||xa(zr(e,"stages",t,"BRIEF.md"))||n)}function ai(e,t,n){let r=n??zr(ve(),"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(!C0(r,t,c,a))return c;return null}function Rye(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=tSt(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=Zyt(zr(t,"stages",b));for(let E of S){let _=u(b,E);if(_)return _}}let l=Zyt(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=ZL(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&&Qyt(k)){A=!0;break}}if(A){_=!1;break}}_&&p.push(b)}if(p.length===0||!p.some(b=>b.inFlight||h0(b.severity)))return null;let g=[...p].sort((b,S)=>Xc(b.severity)-Xc(S.severity)).slice(0,fv),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 tSt(e,t,n){let r=Qc(t);if(!r)return null;let i=r.data;if(Qyt(i))return null;let s=nSt(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=Fb(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=uv(i,a);if(c===null){let u=Fb(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 nSt(e){let t=Jyt(e).match(/^(\d+)-/);return t?`FB-${t[1].padStart(3,"0")}`:null}function rSt(e){let{slug:t,intentDir:n,studio:r,stage:i,mode:s}=e,o=zr(n,"stages",i),c=dv(o).map(R=>({path:R,name:zY(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}=VY(r,i,s,d),h=M0({slug:t,studio:r,stage:i,stageDir:o,unitNames:c.map(R=>R.name),mode:s});if(h.length>0){if(oL(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:ehe(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||Fb(P.fm).length>0?!1:!$yt(P.fm)[x]).map(P=>P.name);if(k.length!==0){if(x==="user"){A=k;continue}if(Tye.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||Fb(k.fm).length>0);if(eSt(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=Fb(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&&uv(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,fv),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=uv(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:Fb(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=>!BY(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(Tye.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(lv(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",a;if(s&&typeof s.data.sealed_at=="string"&&s.data.sealed_at.length>0&&(a=N0(t),!a.applicable||a.merged))return{track:"sealed",action:{kind:"sealed"}};if(s&&o!=="autopilot"&&!(typeof s.data.verified_at=="string"?s.data.verified_at:"")){let d=wn(s.data,r)[0]??"",f=d?zr(n,"stages",d):"",p=f&&xa(f)?dv(f).length>0:!1;if(ai(t,r,n)===d&&!p)return{track:"intent",action:{kind:"elaborate_loop",signals_unmet:[{signal:"verify_conversation"}]}}}let c=ai(t,r,n);if(c){let u=HY({intentDir:n,stage:c,studio:r});if(u.events.length>0){let l=Myt({events:u.events,intentDir:n,stage:c,slug:t});s&&aKn({intentDir:n,stage:c,tripped:l.cascade_alarm_tripped})}}{let u=s?.data??{},l=Rye({intentDir:n,studio:r,intent:u,currentStage:c??wn(u,r).slice(-1)[0]??""});if(l)return{track:"feedback",action:l}}if(c){let u=rSt({slug:t,intentDir:n,studio:r,stage:c,mode:o});return u!==null?{track:"intent",action:u}:{track:"noop",action:null}}if(s){let u=BY(s.data),l=Object.keys(yg(r)).sort(),d=GY(o,l),f=[],p=!1;for(let m of d)if(!u[m]){if(m==="user"){p=!0;continue}if(Tye.has(m))return f.length>0?{track:"intent",action:{kind:"intent_review",role:f[0].role,dispatches:f}}:{track:"intent",action:{kind:"intent_review",role:m,dispatches:[{role:m}]}};f.push({role:m})}if(f.length>0)return{track:"intent",action:{kind:"intent_review",role:f[0].role,dispatches:f}};if(!u.intent_quality_gates)return{track:"intent",action:{kind:"dispatch_quality_gates",stage:"",units:[],scope:"intent"}};if(p)return{track:"intent",action:{kind:"intent_review",role:"user",dispatches:[{role:"user"}]}};if(s.data.sealed_at==null&&lv(n)){let m=zr(n,"reflection.md");if(!xa(m))return{track:"intent",action:{kind:"record_reflection"}}}let h=a??N0(t);if(h.applicable&&!h.merged)return{track:"intent",action:{kind:"pending_seal",default_branch:h.defaultBranch}};if(s.data.sealed_at==null)return{track:"intent",action:{kind:"seal_intent"}}}return{track:"sealed",action:{kind:"sealed"}}}function GY(e,t=[]){let n=["spec","continuity","cross-stage-consistency"],r=t.filter(i=>!n.includes(i));return[...n,...r,"user"]}function VY(e,t,n,r){let s=["continuity","cross-stage-consistency",...r??Object.keys(Tl(e,t)).sort()],o=n==="autopilot",a=s.filter(l=>!UT.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 M0(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)&&ZL(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 Aye(e){return e.map(t=>t.signal==="discovery"?`discovery:${t.agent}`:t.signal)}var cv,Tye,mKn,Oa=v(()=>{"use strict";cv=Re(Kt(),1);Hi();ze();Kn();A3();ji();Dyt();_ye();YL();Tye=new Set(["spec","quality_gates","user"]);mKn={walkIntentTrack:rSt,walkFeedbackTrack:Rye,nextActionForFeedback:tSt,parseFbIdFromFilename:nSt}});var iSt,JL,wye=v(()=>{"use strict";iSt=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"]),JL=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 SKn(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 bKn(e,t){let n=t.toLowerCase(),r=new RegExp(`<${n}\\b[^>]*/?>`,"gi");return e.replace(r,"")}function EKn(e){return e.replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function _Kn(e){return e.replace(/\s+(?:formaction|srcdoc|xlink:href)\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function TKn(e){return e.replace(/\b(href|src)\s*=\s*(["']?)([^"'\s>]+)/gi,(t,n,r,i)=>oSt.test(i.trim())?`${n}=${r||'"'}#${r||'"'}`:t)}function vKn(e){return e.replace(/(!?\[[^\]]*\])\(([^)]+)\)/g,(t,n,r)=>oSt.test(r.trim())?`${n}(#)`:t)}function sSt(e){let t=e;for(let n of gKn)t=SKn(t,n);for(let n of yKn)t=bKn(t,n);return t=EKn(t),t=_Kn(t),t=TKn(t),t=vKn(t),t}function pv(e){if(typeof e!="string")return"";let t=e;for(let n=0;n<5;n++){let r=sSt(t);if(r===t)return r;t=r}return sSt(t)}var gKn,yKn,oSt,kye=v(()=>{"use strict";gKn=["script","iframe","object","style","form"],yKn=["embed"],oSt=/^(?:javascript|vbscript|data:text\/html|data:text\/javascript|data:application\/(?:java|ecma)script|data:image\/svg\+xml)/i});import{randomBytes as RKn}from"node:crypto";function L0(){let e=wKn();return kKn(e)}function wKn(){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=RKn(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 kKn(e){let t=0;for(;t0n;){let i=Number(n%58n);n=n/58n,r=AKn[i]+r}return"1".repeat(t)+r}var AKn,aSt=v(()=>{"use strict";AKn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"});var Uye={};Ar(Uye,{_runPresenceSweepForTests:()=>NKn,beginPresenceWatch:()=>Iye,clearHeartbeat:()=>WY,clearPreviousReviewSnapshot:()=>pSt,createDesignDirectionSession:()=>Cye,createPickerSession:()=>Mye,createQuestionSession:()=>Nye,createSession:()=>KY,createViewSession:()=>Dye,deleteSession:()=>q0,endPresenceWatch:()=>xye,findLiveReviewSessionForIntent:()=>e1,getPreviousReviewSnapshot:()=>Pye,getSession:()=>$t,hasAttachedReviewSessionForIntent:()=>t1,hasPresenceLost:()=>Oye,isBrowserAttached:()=>mv,notifySessionUpdate:()=>H0,recordHeartbeat:()=>QL,setPreviousReviewSnapshot:()=>fSt,updateDesignDirectionSession:()=>r1,updatePickerSession:()=>DKn,updateQuestionSession:()=>n1,updateSession:()=>Ml,updateViewSession:()=>Lye,waitForSession:()=>hv});import{EventEmitter as IKn}from"node:events";function Iye(e,t={}){j0.set(e,t.startedAt??Date.now())}function xye(e){j0.delete(e)}function QL(e){return qi.has(e)?(F0.set(e,Date.now()),j0.delete(e),jb.delete(e)&&console.error(`[haiku] Presence restored for session ${e}`),!0):!1}function Oye(e){return jb.has(e)}function WY(e){F0.delete(e),jb.delete(e),j0.delete(e)}function cSt(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 uSt(e,t){jb.has(e)||(jb.add(e),console.error(`[haiku] Presence lost for session ${e} \u2014 ${t}`),U0.emit(`session:${e}`))}function dSt(){let e=Date.now();for(let[t,n]of F0){if(e-n<=xKn)continue;let r=qi.get(t);if(!r){F0.delete(t),jb.delete(t);continue}cSt(r)&&uSt(t,`no heartbeat in ${Math.round((e-n)/1e3)}s`)}for(let[t,n]of j0){if(F0.has(t)||e-n<=PKn)continue;let r=qi.get(t);if(!r){j0.delete(t);continue}cSt(r)&&uSt(t,`SPA never opened (no heartbeat in the first ${Math.round((e-n)/1e3)}s)`)}}function NKn(){dSt()}function H0(e){U0.emit(`session:${e}`)}function hv(e,t=1800*1e3,n){return new Promise((r,i)=>{let s=setTimeout(()=>{U0.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),U0.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}),U0.once(`session:${e}`,o)})}function Pye(e){return XL.get(e)}function fSt(e,t){XL.set(e,t)}function pSt(e){XL.delete(e)}function lSt(e){if(XL.has(e)){for(let t of qi.values())if(t.session_type==="review"&&t.intent_dir===e)return;XL.delete(e)}}function $L(){let e=Date.now();for(let[t,n]of ep)if(e-n>MKn){let r=qi.get(t);qi.delete(t),ep.delete(t),WY(t),r?.session_type==="review"&&lSt(r.intent_dir)}for(;qi.size>=CKn;){let t=ep.entries().next().value;if(!t)break;let n=qi.get(t[0]);qi.delete(t[0]),ep.delete(t[0]),WY(t[0]),n?.session_type==="review"&&lSt(n.intent_dir)}}function KY(e){$L();let t=L0(),n={...e,session_type:"review",session_id:t,status:"pending",decision:"",feedback:""};return qi.set(t,n),ep.set(t,Date.now()),n}function Nye(e){$L();let t=L0(),n={...e,session_type:"question",session_id:t,imagePaths:e.imagePaths??[],status:"pending",answers:[],feedback:""};return qi.set(t,n),ep.set(t,Date.now()),n}function Cye(e){$L();let t=L0(),n={...e,session_type:"design_direction",session_id:t,status:"pending",selection:null};return qi.set(t,n),ep.set(t,Date.now()),n}function Mye(e){$L();let t=L0(),n={...e,session_type:"picker",session_id:t,status:"pending",selection:null};return qi.set(t,n),ep.set(t,Date.now()),n}function DKn(e,t){let n=qi.get(e);if(!(!n||n.session_type!=="picker"))return Object.assign(n,t),H0(e),n}function Dye(e){$L();let t=L0(),n={...e,session_type:"view",session_id:t,status:"open"};return qi.set(t,n),ep.set(t,Date.now()),n}function Lye(e,t){let n=qi.get(e);if(!(!n||n.session_type!=="view"))return Object.assign(n,t),H0(e),n}function $t(e){return qi.get(e)}function e1(e){let t,n=0;for(let[r,i]of qi){if(i.session_type!=="review"||i.intent_slug!==e||i.ad_hoc||jb.has(r))continue;let s=ep.get(r)??0;s>n&&(t=i,n=s)}return t}function mv(e){if(!qi.has(e)||jb.has(e))return!1;let t=F0.get(e);return t?Date.now()-t<=LKn:!1}function t1(e){for(let[t,n]of qi)if(n.session_type==="review"&&n.intent_slug===e&&!n.ad_hoc&&mv(t))return!0;return!1}function q0(e){let t=qi.delete(e);return ep.delete(e),WY(e),t}function Ml(e,t){let n=qi.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);fSt(n.intent_dir,{feedback:n.feedback??"",reviewedAt:new Date().toISOString(),intentRawContent:r?.rawContent??"",unitRawContents:s})}else pSt(n.intent_dir);return H0(e),n}}function n1(e,t){let n=qi.get(e);if(!(!n||n.session_type!=="question"))return Object.assign(n,t),H0(e),n}function r1(e,t){let n=qi.get(e);if(!(!n||n.session_type!=="design_direction"))return Object.assign(n,t),H0(e),n}var U0,xKn,OKn,F0,jb,PKn,j0,qi,XL,CKn,MKn,ep,LKn,$c=v(()=>{"use strict";aSt();U0=new IKn;U0.setMaxListeners(200);xKn=12e4,OKn=5e3,F0=new Map,jb=new Set,PKn=6e4,j0=new Map;setInterval(dSt,OKn).unref();qi=new Map,XL=new Map;CKn=100,MKn=14400*1e3,ep=new Map;LKn=3e4});import{spawn as UKn}from"node:child_process";import{existsSync as B0,readFileSync as gSt}from"node:fs";import{createServer as FKn}from"node:net";import{isAbsolute as jKn,join as gv}from"node:path";function qKn(){return new Promise((e,t)=>{let n=FKn();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 BKn(e){return new Promise(t=>{let{Socket:n}=Y("node:net"),r=new n;r.setTimeout(500),r.once("connect",()=>{r.destroy(),t(!0)}),r.once("timeout",()=>{r.destroy(),t(!1)}),r.once("error",()=>{r.destroy(),t(!1)}),r.connect(e,"127.0.0.1")})}async function zKn(e,t){let n=Date.now()+YY;for(;Date.now()setTimeout(r,SSt))}throw new Error(`Dev server did not bind to port ${e} within ${YY}ms`)}async function GKn(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 VKn(e,t){let n=Date.now()+YY;for(;Date.now()setTimeout(r,SSt))}throw new Error(`Process did not return a healthy ready_url (${e}) within ${YY}ms`)}function bSt(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 ESt(e){let t=gv(e,"package.json");if(!B0(t))return null;let n;try{n=JSON.parse(gSt(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=WKn(e);return{command:s==="npm"?["npm","run",i]:[s,"run",i],cwd:e,description:`${s} run ${i}`}}function WKn(e){return B0(gv(e,"bun.lockb"))||B0(gv(e,"bun.lock"))?"bun":B0(gv(e,"pnpm-lock.yaml"))?"pnpm":B0(gv(e,"yarn.lock"))?"yarn":"npm"}function Lg(e){return new Error(`[${_St}] ${e}`)}function hSt(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 Fye(e){let t=gv(e,_St);if(!B0(t))return null;let n;try{n=(0,ySt.default)(gSt(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 jKn(s)?s:gv(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:hSt(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:hSt(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 s1(e){let t=Fye(e);return t?t.processes.filter(n=>n.service||n.requires_tool!==void 0&&n.name!==t.primary):[]}function KKn(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 jye(e,t,n){if(t.length===0)throw new Error("spawnBootGroup: at least one process spec required");let r=KKn(t),i=new Map;for(let l of t)i.set(l.name,l.no_port?null:await qKn());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`),z0(e)},HKn);o.unref?.();let a={sessionId:e,processes:[],primaryName:n,primaryPort:i.get(n)??null,startedAt:Date.now(),ttlTimer:o};i1.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=UKn(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 VKn(b)}else await zKn(d)}}catch(l){throw z0(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 TSt(e,t){let n={name:"app",command:t.command,cwd:t.cwd};return(await jye(e,[n],"app")).primary}function z0(e){let t=i1.get(e);if(!t)return!1;clearTimeout(t.ttlTimer),i1.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 vSt(){let e=0;for(let[t]of i1)$t(t)||(z0(t),e+=1);return e}function YKn(){if(mSt)return;mSt=!0;let e=()=>{for(let[t]of i1)z0(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var ySt,i1,HKn,YY,SSt,_St,mSt,o1=v(()=>{"use strict";ySt=Re(Kt(),1);$c();i1=new Map,HKn=1800*1e3,YY=60*1e3,SSt=200;_St=".haiku/boot.md";mSt=!1;YKn()});import{lstatSync as Hye,mkdirSync as ZKn,realpathSync as RSt,renameSync as JKn,unlinkSync as XKn}from"node:fs";import{isAbsolute as QKn,relative as $Kn,resolve as ZY,sep as JY}from"node:path";function yv(e,t,n,r){let i=ZY(e),s=ZY(t),o=ZY(r),a;try{if(Hye(i).isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`intent root '${i}' is itself a symlink \u2014 refusing`};a=RSt(i)}catch(d){return{ok:!1,code:"parent_open_failed",detail:`cannot stat intent root: ${G0(d)}`}}if(s!==i&&!s.startsWith(`${i}${JY}`))return{ok:!1,code:"parent_chain_escape",detail:`parent '${s}' is not inside intent root '${i}'`};if(!o.startsWith(`${s}${JY}`))return{ok:!1,code:"parent_chain_escape",detail:`dest '${o}' is not directly below parent '${s}'`};let c=$Kn(i,s),u=c===""?[]:c.split(JY),l=i;for(let d of u){if(d===""||d==="."||d===".."||QKn(d))return{ok:!1,code:"parent_chain_escape",detail:`chain segment '${d}' is invalid`};l=ZY(l,d);try{let f=Hye(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{ZKn(l)}catch(h){if(h.code==="EEXIST")try{let g=Hye(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: ${G0(g)}`}}else return{ok:!1,code:"parent_open_failed",detail:`mkdir '${l}' failed: ${G0(h)}`}}else return{ok:!1,code:"parent_open_failed",detail:`lstat '${l}' failed: ${G0(f)}`}}}try{let d=RSt(s);if(d!==a&&!d.startsWith(`${a}${JY}`))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: ${G0(d)}`}}try{JKn(n,o)}catch(d){return{ok:!1,code:"rename_failed",detail:`rename '${n}' \u2192 '${o}' failed: ${G0(d)}`}}return{ok:!0}}function G0(e){return e instanceof Error?e.message:String(e)}function V0(e){try{XKn(e)}catch{}}var XY=v(()=>{"use strict"});var l1={};Ar(l1,{applyFeedbackInvalidations:()=>Bye,drainPendingDispatches:()=>n3n,stampSingleDispatch:()=>qye,stashPendingDispatch:()=>e3n,stashPendingIntentReview:()=>t3n});import{existsSync as a1,readdirSync as wSt,readFileSync as c1}from"node:fs";import{join as Ug}from"node:path";function u1(e){let t=Ug(ve(),"intents",e,"intent.md");if(!a1(t))return null;let n=c1(t,"utf8"),r=re(n);return{path:t,fm:r.data||{}}}function tZ(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function kSt(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function e3n(e,t,n,r,i){let s=u1(e);if(!s)return;let o=t==="review"?$Y:eZ,a={...tZ(s.fm,o)},c={...a[n]??{}};c[r]={dispatched_at:new Date().toISOString(),units:[...i]},a[n]=c,Ne(s.path,o,a)}function t3n(e,t){if(t==="user")return;let n=u1(e);if(!n)return;let r={...kSt(n.fm,QY)};r[t]={dispatched_at:new Date().toISOString()},Ne(n.path,QY,r)}function ISt(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(!a1(l))continue;if(s&&r3n({intentDir:t,stage:n,targetUnit:u,role:r,sinceIso:s})){c.push(u);continue}let d=c1(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}),Ne(l,"reviews",h)}else{let h=Array.isArray(p.outputs)?p.outputs:[],m=p.approvals&&typeof p.approvals=="object"?{...p.approvals}:{};m[r]=zd(t,h),Ne(l,"approvals",m)}a.push(u)}return{stamped:a,skipped:c}}function qye(e,t,n,r){let i=u1(e);if(!i)return{found:!1,stamped:[],skipped:[]};let s=t==="review"?$Y:eZ,o=tZ(i.fm,s),a=o[n]?.[r];if(!a||!Array.isArray(a.units))return{found:!1,stamped:[],skipped:[]};let c=Ug(ve(),"intents",e),{stamped:u,skipped:l}=ISt({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,Ne(i.path,s,o),{found:!0,stamped:u,skipped:l}}function n3n(e){let t=u1(e);if(!t)return!1;let n=ve(),r=Ug(n,"intents",e),i=!1;for(let o of["review","approval"]){let a=o==="review"?$Y:eZ,c=tZ(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;ISt({intentDir:r,stage:u,role:d,units:f.units,dispatchedAt:f.dispatched_at,kind:o}).stamped.length>0&&(i=!0)}}Ne(t.path,a,{})}}let s=kSt(t.fm,QY);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&&(i3n({intentDir:r,role:c,sinceIso:u.dispatched_at})||(o[c]={at:new Date().toISOString()},a=!0,i=!0))}a&&Ne(t.path,"approvals",o),Ne(t.path,QY,{})}return i}function r3n(e){let t=Ug(e.intentDir,"stages",e.stage,"feedback");if(!a1(t))return!1;for(let n of wSt(t,{withFileTypes:!0})){if(!n.isFile()||!n.name.endsWith(".md"))continue;let r=Ug(t,n.name),i=c1(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)||!h0(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],Ne(t.path,e.field,n))}var $Y,eZ,QY,Sv=v(()=>{"use strict";Hi();ze();Xf();$Y="_pending_review_dispatches",eZ="_pending_approval_dispatches",QY="_pending_intent_review_dispatches"});import{existsSync as s3n,readFileSync as o3n}from"node:fs";import{join as a3n}from"node:path";function OSt(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{Bye({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{c3n({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 c3n(e){let t=ve(),n=a3n(t,"intents",e.slug,"stages",e.stage,"units",`${e.targetUnit}.md`);if(!s3n(n))return;let r=Cg(n);if(!r)return;let i=o3n(n,"utf8"),o=(0,xSt.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&&Ne(n,"reviews",u);let l=c("approvals");l&&Ne(n,"approvals",l)}var xSt,PSt=v(()=>{"use strict";xSt=Re(Kt(),1);Sv();Xf();ze();vo()});var FSt={};Ar(FSt,{__testOnly:()=>S3n,withIntentDispatchLock:()=>W0,withIntentMainLock:()=>sZ,withStageLock:()=>Hb});import{existsSync as u3n,mkdirSync as CSt,readFileSync as l3n,rmSync as MSt,statSync as d3n,writeFileSync as f3n}from"node:fs";import{join as nZ}from"node:path";function DSt(){return nZ(Br(),".haiku","locks")}function m3n(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function g3n(e){let t=nZ(e,"holder.json");if(!u3n(t))return null;try{let n=l3n(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 LSt(e){let t;try{t=Date.now()-d3n(e).mtimeMs}catch{return!1}if(t{"use strict";ze();p3n=50,NSt=3e4,h3n=5*6e4;S3n={acquireLock:rZ,releaseLock:iZ,lockRoot:DSt,isStale:LSt}});function d1(e){return Array.isArray(e.iterations)?e.iterations:[]}function b3n(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function zye(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function jSt(e){let t=e.fm.started_at;return typeof t=="string"&&t.length>0||t instanceof Date&&!Number.isNaN(t.getTime())?!0:d1(e.fm).length>0}function E3n(e,t,n,r){return r===!0?"completed":r===!1?e.length===0?"pending":e.some(jSt)?"active":"pending":e.length===0||!e.some(jSt)?"pending":e.every(s=>{let o=d1(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=zye(s.fm);return n.every(u=>c[u])})?"completed":"active"}function _3n(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=>!b3n(c.fm)[o]))return"review";if(t.length>0&&!e.every(a=>{let c=d1(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=>!zye(c.fm)[o]))return"gate";return null}function T3n(e,t){return e.length===0?null:e.every(r=>{let i=zye(r.fm);return t.every(s=>i[s])})?"advanced":null}function HSt(e){return typeof e=="string"&&e.length>0?e:e instanceof Date&&!Number.isNaN(e.getTime())?e.toISOString():null}function v3n(e){return e.map(n=>HSt(n.fm.started_at)).filter(n=>n!==null).sort()[0]??null}function R3n(e,t){if(t!=="completed")return null;let n=null;for(let r of e){let i=d1(r.fm);if(i.length===0)continue;let s=i[i.length-1];if(s.result!=="advance")continue;let o=HSt(s.completed_at);o!==null&&(n===null||o>n)&&(n=o)}return n}function A3n(e){let t=0;for(let n of e){let r=d1(n.fm);r.length>t&&(t=r.length)}return t}function Gye(e){let{stage:t,units:n,intentMode:r,hats:i=[],reviewRoles:s=[],approvalRoles:o=[],stageMergedIntoMain:a=null,elaborationVerified:c=null}=e,u=E3n(n,i,o,a),l=u==="completed"?null:_3n(n,i,s,o,r,c),d=T3n(n,o),f=v3n(n),p=R3n(n,u),h=A3n(n);return{stage:t,status:u,phase:l,started_at:f,completed_at:p,gate_outcome:d,visits:h}}var Vye=v(()=>{});import{execFileSync as aZ}from"node:child_process";import{existsSync as BSt,readdirSync as w3n,readFileSync as k3n}from"node:fs";import{basename as zSt,join as oZ}from"node:path";function Wye(e){if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(Wye);if(e!==null&&typeof e=="object"){let t={};for(let[n,r]of Object.entries(e))t[n]=Wye(r);return t}return e}function VSt(e){try{let t=(0,GSt.default)(e).data;return Wye(t)}catch{return null}}function WSt(e){if(!BSt(e))return null;try{return VSt(k3n(e,"utf8"))}catch{return null}}function I3n(e){let t=oZ(e,"units");return BSt(t)?w3n(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).sort((n,r)=>n.name.localeCompare(r.name)).map(n=>{let r=WSt(oZ(t,n.name))??{};return{name:zSt(n.name,".md"),fm:r}}):[]}function x3n(e,t){if(!Ee())return null;try{return aZ("git",["show",`${e}:${t}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return null}}function KSt(e,t){let n=x3n(e,t);return n==null?null:VSt(n)}function O3n(e,t){if(!Ee())return[];try{return aZ("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 P3n(e,t,n){let r=`.haiku/intents/${t}/stages/${n}/units`,i=O3n(e,r);return i.length===0?[]:i.map(s=>{let o=KSt(e,`${r}/${s}`)??{};return{name:zSt(s,".md"),fm:o}})}function Kye(e,t,n){return n==="autopilot"?["spec"]:["spec",...Object.keys(Tl(e,t)).sort(),"user"]}function Yye(e,t,n){return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...Object.keys(Tl(e,t)).sort(),"user"]}function N3n(e,t){if(!Ee())return!1;let n=`haiku/${e}/main`,r=`.haiku/intents/${e}/stages/${t}/units`;try{return aZ("git",["ls-tree","--name-only",`${n}:${r}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` -`).some(s=>s.trim().endsWith(".md"))}catch{return!1}}function qSt(e){if(!Ee())return!1;try{return aZ("git",["rev-parse","--verify",e],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!1}}function bv(e){let{slug:t,studio:n,stage:r,intentDir:i,intentMode:s}=e,o=oZ(i,"stages",r),a=Es(n,r),c=Kye(n,r,s),u=Yye(n,r,s),l=`haiku/${t}/main`,d=`haiku/${t}/${r}`,f=Ee(),p=f&&qSt(l),m=f&&qSt(d)?d:p?l:null,g=m?P3n(m,t,r):I3n(o),y=p?N3n(t,r):null,b=oZ(o,"elaboration.md"),S=`.haiku/intents/${t}/stages/${r}/elaboration.md`,E=m?KSt(m,S):WSt(b),_=null;return E!==null&&(_=(typeof E.verified_at=="string"?E.verified_at:"").length>0),Gye({stage:r,units:g,intentMode:s,hats:a,reviewRoles:c,approvalRoles:u,stageMergedIntoMain:y,elaborationVerified:_})}var GSt,f1=v(()=>{"use strict";Vye();GSt=Re(Kt(),1);Eb();Kn();ji()});import{appendFileSync as C3n,existsSync as xpi,mkdirSync as YSt,readFileSync as Opi,writeFileSync as M3n}from"node:fs";import{dirname as ZSt}from"node:path";function JSt(e,t){try{YSt(ZSt(e),{recursive:!0}),M3n(e,`${JSON.stringify(t,null,2)} -`)}catch{}}function Bi(e,t){try{let n=e.replace(/\.json$/,".jsonl");YSt(ZSt(n),{recursive:!0});let r={...t,ts:new Date().toISOString()};C3n(n,`${JSON.stringify(r)} -`)}catch{}}var p1=v(()=>{"use strict"});var XSt,QSt,$St,ebt=v(()=>{"use strict";XSt=["status","active_stage","started_at","completed_at","phase","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at"],QSt=["status","phase","started_at","completed_at","gate_entered_at","gate_outcome"],$St=["status","started_at","completed_at","bolt","hat","hat_started_at","scope_reject_attempts"]});import{createHash as D3n}from"node:crypto";import{existsSync as tbt,readdirSync as L3n,readFileSync as nbt,writeFileSync as U3n}from"node:fs";import{join as cZ}from"node:path";function F3n(e){let t=JSON.stringify(e,Object.keys(e).sort());return D3n("sha256").update(t).digest("hex").slice(0,16)}function Zye(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function j3n(e,t,n){if(!n)return{};let r=cZ(e,"intents",t,"stages",n,"units");if(!tbt(r))return{};for(let i of L3n(r)){if(!i.endsWith(".md"))continue;let s=nbt(cZ(r,i),"utf8"),{data:o}=re(s);if(o.status==="active")return Zye(o,$St)}return{}}function ci(e){if(!Mi().hooks)try{let t=ve(),n=cZ(t,"intents",e,"intent.md");if(!tbt(n))return;let r=nbt(n,"utf8"),{data:i}=re(r),s=i.active_stage||"",o=Zye(i,XSt),a={};if(s){let f=Y0(e,s),p=qb(f);a=Zye(p,QSt)}let c=j3n(t,e,s),l=F3n({intent:o,stage:a,unit:c}),d=cZ(t,"intents",e,".fsm_checksum");U3n(d,l)}catch(t){console.error(`[haiku] sealIntentState(${e}) failed:`,t)}}var uZ=v(()=>{"use strict";_f();ze();ebt()});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 AZ={};Ar(AZ,{AGENT_AUTHORABLE_INTENT_FIELDS:()=>tv,AGENT_AUTHORABLE_UNIT_FIELDS:()=>Db,CREATE_TIME_FB_FIELDS:()=>jL,ERROR_OUTPUT_SCHEMA:()=>dye,FEEDBACK_ASSESSOR_HAT:()=>Rbt,FEEDBACK_ORIGINS:()=>k9n,FEEDBACK_STATUSES:()=>Bb,FSM_DRIVEN_FB_FIELDS:()=>FL,FSM_DRIVEN_INTENT_FIELDS:()=>nv,FSM_DRIVEN_UNIT_FIELDS:()=>Jf,INTENT_FRONTMATTER_SCHEMA:()=>GL,INTENT_TITLE_MAX_LENGTH:()=>aSe,IntentScopeTickPersistError:()=>Vd,MAX_CONCURRENT_SUBAGENTS:()=>fv,MAX_FIX_LOOP_BOLTS:()=>Dg,MAX_INTEGRATOR_ATTEMPTS:()=>I9n,MAX_RATIONALE_BYTES:()=>tSe,MAX_RATIONALE_EXCERPT_BYTES:()=>nSe,MAX_STAGE_ITERATIONS:()=>Df,MAX_UNIT_BOLTS:()=>Ev,OK_OUTPUT_SCHEMA:()=>fye,REJECT_LOOP_MIN_REPEATS:()=>gZ,STAGE_STATE_FIELDS:()=>pye,STAGE_STATE_SCHEMA:()=>PY,UNIT_FRONTMATTER_SCHEMA:()=>rv,_resetIsGitRepoForTests:()=>Nft,appendFeedbackIteration:()=>C9n,appendFeedbackReply:()=>TSe,appendStageIteration:()=>fSe,applyAutoFixes:()=>cSe,closeCurrentStageIteration:()=>pSe,completeUnitIteration:()=>yZ,computeFeedbackSignature:()=>ybt,countConsecutiveSameRejects:()=>gbt,countInFlightUnits:()=>kbt,countPendingFeedback:()=>D9n,countUnitBolts:()=>mbt,deleteFeedbackFile:()=>RZ,deleteFrontmatterFields:()=>Zh,deriveAuthorType:()=>ySe,deriveFeedbackIdFromFilename:()=>Obt,deriveFeedbackStatus:()=>np,deriveUnitStatus:()=>J0,detectDagCycles:()=>Tbt,detectSettledDuplicate:()=>Sbt,dismissFeedbackClosureReply:()=>vSe,ensureHaikuGitignored:()=>eL,feedbackDir:()=>lo,feedbackSeverityRank:()=>Xc,findFeedbackFile:()=>bc,findHaikuRoot:()=>ve,formatFeedbackId:()=>Gd,getIntentScopeTickCounter:()=>T1,getStageIterationCount:()=>Ebt,gitCommitAll:()=>SZ,gitCommitState:()=>wt,gitCommitStateBackgroundPush:()=>jg,gitCommitStateIfDirty:()=>mSe,handleStateTool:()=>ASe,incrementFeedbackBolt:()=>L9n,intentDir:()=>ce,intentFromCurrentBranch:()=>_v,intentTitleNeedsRepair:()=>b1,isGitRepo:()=>Ee,isIntentArchived:()=>_1,isIntentLocked:()=>E1,listInstalledSkills:()=>$0,listVisibleIntentSlugs:()=>v9n,listVisibleIntents:()=>Fg,matchesGlob:()=>rSe,migrateIterationReasonsOnRead:()=>iSe,migrateMisplacedWorktrees:()=>hbt,moveFeedbackFile:()=>xbt,normalizeLegacyFeedbackStatus:()=>TZ,normalizeRejectReason:()=>lSe,parseFrontmatter:()=>re,persistDesignDirectionSelection:()=>SSe,persistDesignDirectionUploads:()=>bSe,pickUndispatchedUnitBlocks:()=>wbt,primaryRepoRoot:()=>Br,readClaimedAuthorId:()=>r9n,readDecisionLog:()=>I3,readFeedbackFiles:()=>Us,readIntentBody:()=>Yh,readJson:()=>qb,readStagePr:()=>Tv,readStagePrs:()=>hSe,repairDeclaredOutput:()=>_Z,resolveUnitHats:()=>oSe,runInlineQualityGates:()=>uSe,safeMkdirAndRename:()=>yv,setFrontmatterField:()=>Ne,setHaikuRootForTests:()=>Mft,setIsGitRepoForTests:()=>Cft,setStagePrField:()=>zb,setUnitFrontmatterField:()=>R9n,slugifyTitle:()=>vZ,stageDir:()=>cr,stageStatePath:()=>Y0,stampDispatchClaim:()=>Abt,stampUnitHatLease:()=>ESe,startUnitIteration:()=>y1,stateToolDefs:()=>RSe,syncSessionMetadata:()=>Xr,timestamp:()=>mn,unitIntentDir:()=>s9n,unitOutputExists:()=>Kh,unitPath:()=>Pa,updateFeedbackFile:()=>_Se,validateBranch:()=>gSe,validateIntentSchema:()=>x0,validateRationaleCaps:()=>W3n,validateSlugArgs:()=>jD,validateUnitFrontmatter:()=>_bt,validateUnitSchema:()=>Ng,validateUnitScope:()=>mZ,writeFeedbackFile:()=>Qo,writeJson:()=>S1});import{execFileSync as Na,execSync as Wh,spawn as H3n,spawnSync as lZ}from"node:child_process";import{randomBytes as q3n}from"node:crypto";import{appendFileSync as B3n,existsSync as ue,lstatSync as z3n,mkdirSync as Dl,readdirSync as an,readFileSync as xe,renameSync as ubt,rmSync as eSe,statSync as lbt,unlinkSync as X0,writeFileSync as In}from"node:fs";import{homedir as G3n}from"node:os";import{basename as V3n,dirname as Q0,join as te,resolve as tp,sep as Z0}from"node:path";import{readdirSync as b9n}from"node:fs";function rbt(e){return Buffer.byteLength(e,"utf-8")}function W3n(e){let t=rbt(e.agent_rationale);if(t>tSe)return{kind:"agent_rationale_too_long",bytes:t,cap:tSe};for(let n=0;nnSe)return{kind:"rationale_excerpt_too_long",index:n,path:r.path,bytes:i,cap:nSe}}return null}function b1(e){if(typeof e!="string")return!0;let t=e.trim();return!!(t.length===0||t.length>aSe||/\n/.test(t))}function cSe(e,t,n){let r=te(e,t,"intent.md");if(!ue(r))return{applied:[],remaining:n};let i=[],s=[r],o=te(e,t,"stages");if(ue(o))for(let y of an(o,{withFileTypes:!0})){if(!y.isDirectory())continue;let b=te(o,y.name,"units");if(ue(b))for(let S of an(b,{withFileTypes:!0}))S.isFile()&&S.name.endsWith(".md")&&s.push(te(b,S.name))}for(let y of s){let b=xe(y,"utf8"),{text:S,removed:E}=hg(b);if(E.length===0)continue;In(y,S);let _=y.startsWith(te(e,t))?y.slice(te(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=xe(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"&&b1(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=K3n(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=te(e,t,"stages");if(ue(h))for(let y of an(h,{withFileTypes:!0})){if(!y.isDirectory())continue;let b=te(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=te(b,S.name),_=xe(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],_=te(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=te(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=xe(_,"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 K3n(e){try{return lbt(e)}catch{return null}}function Y3n(e,t){if(!Ee())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 fbt(e){let t=new Map,n=nn(),r=[te(e,"studios"),te(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=te(i,s.name,"STUDIO.md");if(!ue(o))continue;let{data:a}=re(xe(o,"utf8")),c=Array.isArray(a.stages)?a.stages:[];t.set(s.name,c)}return{studioMap:t,searchPaths:r}}function EZ(e,t,n,r){let i=te(e,t,"intent.md");if(!ue(i))return[];let s=xe(i,"utf8"),{data:o}=re(s),a=[],{removed:c}=hg(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"&&b1(o.title)){let d=o.title,f=/\n/.test(d)?"title contains newlines":`title is ${d.length} chars (max ${aSe})`;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=te(e,t,"stages",d,"units");if(!ue(f))continue;let p=[];if(u){let h=null;for(let m of r){let g=te(m,u,"stages",d,"STAGE.md");if(!ue(g))continue;let{data:y}=re(xe(g,"utf8"));Array.isArray(y.inputs)&&y.inputs.length>0&&(h=y.inputs);break}if(h){let m=te(e,t);for(let g of h)for(let y of r)for(let b of["discovery","outputs"]){let S=te(y,u,"stages",g.stage,b);if(ue(S))for(let E of an(S).filter(_=>_.endsWith(".md"))){let _=xe(te(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=te(m,k);ue(P)&&p.push(k)}}}}for(let h of an(f,{withFileTypes:!0})){if(!(h.isFile()&&h.name.endsWith(".md")))continue;Z3n.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=xe(te(f,h.name),"utf8"),{removed:g}=hg(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(Ee()){let d=te(e,t,"intent.md"),f=Y3n(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 pbt(e,t,n){let r=e??ve(),i=te(r,"intents");if(!ue(i))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};let{studioMap:s,searchPaths:o}=fbt(r),a;if(t){if(/[/\\]|\.\./.test(t))throw new Error(`Invalid intent slug: "${t}"`);if(!ue(te(i,t,"intent.md")))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};a=[t]}else a=an(i,{withFileTypes:!0}).filter(f=>f.isDirectory()&&ue(te(i,f.name,"intent.md"))).map(f=>f.name);let c=[],u=[],l=[],d=[];for(let f of a){let p=EZ(i,f,s,o);if(n&&p.length>0){let h=cSe(i,f,p);l.push(...h.applied),h.applied.length>0&&(p=EZ(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 J3n(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 ibt(){if(!Ee())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 X3n(e){try{return Na("git",["-C",e,"status","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!0}}function hbt(){let e={moved:[],skipped:[],cleanedSkeletons:[]};if(!Ee())return e;let t=Br(),n=`${Z0}.haiku${Z0}worktrees${Z0}`;for(let i of ibt()){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(X3n(i.path)){e.skipped.push({path:i.path,reason:"uncommitted changes \u2014 commit/stash inside the worktree, then re-run haiku_repair"});continue}try{let u=c.slice(0,c.lastIndexOf(Z0));Dl(u,{recursive:!0}),Na("git",["worktree","move",i.path,c],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}),e.moved.push({old:i.path,new:c,branch:i.branch??"(detached)"})}catch(u){e.skipped.push({path:i.path,reason:`git worktree move failed: ${u instanceof Error?u.message:String(u)}`})}}let r=new Set;for(let i of ibt())i.path!==t&&r.add(i.path);for(let i of r){let s=te(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=te(c,u.name);if(u.isFile()||u.isSymbolicLink()){o=!0;return}u.isDirectory()&&a(l)}};a(s)}catch{o=!0}if(!o)try{eSe(s,{recursive:!0,force:!0}),e.cleanedSkeletons.push(s);let a=te(i,".haiku");ue(a)&&an(a).length===0&&eSe(a,{recursive:!0,force:!0})}catch{}}return e}function Q3n(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 $3n(e){NT();let t=Zo(),n=[];if(e){let s=lpe();for(let{slug:o,branches:a}of s){let c=a.map(u=>u.replace(`haiku/${o}/`,""));try{let u=a[0],l=Rpe(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=vpe(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=i3();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=s3(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=te(a,".haiku"),l=pbt(u,void 0,e);c.scanned=l.scanned,c.applied=l.applied,c.remaining=l.remaining;let d=te(u,"intents",s,"intent.md");if(ue(d)&&re(xe(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=a3(a,o,p.join(` +`);return r.drift_detection===!1}catch{return!1}}function Gyt(e){let t=Mg(e,"stages");if(!UY(t))return[];try{return Fyt(t,{withFileTypes:!0}).filter(n=>n.isDirectory()).map(n=>n.name)}catch{return[]}}var Hyt,Y4n,Z4n,J4n,X4n,_fi,Tfi,Q4n,P0=v(()=>{"use strict";Hyt=Re(Kt(),1);_l();Y4n=O.enum(["agent","human-via-mcp","human-implicit"]),Z4n=O.enum(["agent-write","human-write-tool","spa-upload","classification-terminal","baseline-init"]),J4n=O.enum(["stage-output","knowledge","unit-output","intent-meta"]),X4n=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:Y4n,acknowledged_at:O.string(),acknowledged_via:Z4n,stage:O.string().nullable(),tracking_class:J4n}),_fi=O.record(O.string(),X4n);Tfi=64*1024,Q4n=[{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 Kyt,readFileSync as tKn,statSync as nKn}from"node:fs";import{basename as Yyt,join as $o,relative as jY}from"node:path";function rKn(e){if(!Qf(e))return[];let t=[];try{t=Kyt(e)}catch{return[]}let n=[];for(let r of t)if(!r.startsWith(".")&&!MY.has(r))try{nKn($o(e,r)).isFile()&&n.push(r)}catch{}return n}function iKn(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 Eye(e){if(!Qf(e))return null;try{let t=tKn(e,"utf8");return(0,Zyt.default)(t).data}catch{return null}}function bye(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 Vyt(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 Wyt(e,t){let n=Lb(e);if(!n)return null;if(n===t)return{matches:!0,current:n};let r=O0(e);return r===t?{matches:!0,current:r}:{matches:!1,current:n}}function sKn(e){let t=$o(e,"units");return Qf(t)?Kyt(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>$o(t,n.name)):[]}function oKn(e,t,n){return $o(e,"stages",t,"discovery",`${n}.md`)}function _ye(e,t){let n=e.replace(/\{intent-slug\}/g,t),r=`.haiku/intents/${t}/`;return n.startsWith(r)?n.slice(r.length):n}function aKn(e,t,n,r){let i=Yyt(e),s=new Set;try{for(let o of no(t,n))o.location&&s.add(_ye(o.location,i))}catch{}for(let o of r){let a=Eye(o),c=a&&Array.isArray(a.outputs)?a.outputs:[];for(let u of c)typeof u=="string"&&u.length>0&&s.add(_ye(u,i))}return s}function cKn(e,t,n,r){return $o(e,"plugin","studios",t,"stages",n,"discovery",`${r}.md`)}function HY(e){let t=e.repoRoot??$o(e.intentDir,"..","..",".."),n=$o(t,".haiku");if(FY(n))return{events:[],scanned:0,skipped:0};let r=[],i=0,s=0,o=$o(e.intentDir,"stages",e.stage),a=sKn(o),c=aKn(e.intentDir,e.studio,e.stage,a),u=Yyt(e.intentDir),l=p=>c.has(p)||c.has(_ye(p,u));for(let p of a){let h=Eye(p);if(!h)continue;let m=(p.split("/").pop()??"").replace(/\.md$/,"");if(h.started_at==null){s++;continue}let g=jY(e.intentDir,p),y=h.reviews??{};for(let[S,E]of Object.entries(y)){i++;let _=bye(E);if(!_)continue;let T=Vyt(E);T&&Qf(p)&&!VL(p,T)&&r.push({unit:m,role:S,kind:"spec",file:g,since:_});let R=iKn(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=WL(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}(CY(N)?!VL(N,x):(()=>{let L=Lb(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=WL(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=rKn(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=O0($);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 _=bye(E);if(!_)continue;let T=E,R=oKn(e.intentDir,e.stage,S),A=typeof T.output_sha256=="string"?T.output_sha256:null;if(A){let P=Wyt(R,A);P&&!P.matches&&r.push({unit:m,role:S,kind:"discovery_output",file:jY(e.intentDir,R),since:_})}let x=cKn(t,e.studio,e.stage,S),k=typeof T.mandate_sha256=="string"?T.mandate_sha256:null;if(k){let P=Wyt(x,k);P&&!P.matches&&r.push({unit:m,role:S,kind:"discovery_mandate",file:jY(t,x),since:_})}}}let d=$o(e.intentDir,"intent.md"),f=Eye(d);if(f){let p=f.approvals??{},h=jY(e.intentDir,d);for(let[m,g]of Object.entries(p)){i++;let y=bye(g);if(!y)continue;let b=Vyt(g);b&&(VL(d,b)||r.push({unit:"(intent)",role:m,kind:"spec",file:h,since:y}))}}return{events:r,scanned:i,skipped:s}}var Zyt,Tye=v(()=>{"use strict";Zyt=Re(Kt(),1);Kn();P0();Xf()});function N0(e,t={}){let n=`haiku/${e}/main`;if(!Ee())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 KL(e,t={}){let n=N0(e,t);return n.applicable&&!n.merged}var YL=v(()=>{"use strict";ar();Eb()});var D0={};Ar(D0,{__testOnly:()=>yKn,computeElaborateSignals:()=>M0,derivePosition:()=>$f,findCurrentStage:()=>ai,intentReviewRoles:()=>GY,isBriefEnabled:()=>$yt,isReflectionEnabled:()=>lv,isStageComplete:()=>C0,listUnitPaths:()=>dv,nextHatForUnit:()=>uv,pendingApprovalSlots:()=>dKn,pendingReviewSlots:()=>lKn,readFm:()=>Qc,serializeElaborateSignals:()=>wye,stageOwesBrief:()=>nSt,stageOwesObservations:()=>Rye,stageRoleLists:()=>VY,unitName:()=>zY,walkFeedbackTrack:()=>Aye});import{existsSync as xa,readdirSync as ZL,readFileSync as qY,writeFileSync as Jyt}from"node:fs";import{basename as Qyt,join as zr}from"node:path";function uKn(e){let t=zr(e.intentDir,"intent.md");if(xa(t))try{let n=qY(t,"utf8"),r=(0,cv.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,Jyt(t,cv.default.stringify(r.content,i))):u===!0&&(delete c[o],Object.keys(c).length===0?delete i[s]:i[s]=c,Jyt(t,cv.default.stringify(r.content,i)))}catch{}}function lv(e){let t=zr(e,"intent.md");if(!xa(t))return!0;try{let n=qY(t,"utf8"),i=(0,cv.default)(n).data;return!(i.reflection===!1||i.autotune===!1)}catch{return!0}}function $yt(e){let t=zr(e,"intent.md");if(!xa(t))return!0;try{let n=qY(t,"utf8");return(0,cv.default)(n).data.brief!==!1}catch{return!0}}function Qc(e){if(!xa(e))return null;try{let t=qY(e,"utf8"),n=(0,cv.default)(t);return{data:n.data,body:n.content}}catch{return null}}function eSt(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 Fb(e){return Array.isArray(e.iterations)?e.iterations??[]:[]}function BY(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function tSt(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function zY(e){return Qyt(e).replace(/\.md$/,"")}function dv(e){let t=zr(e,"units");return xa(t)?ZL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>zr(t,n.name)).sort():[]}function Xyt(e){let t=zr(e,"feedback");return xa(t)?ZL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>zr(t,n.name)).sort():[]}function uv(e,t){if(t.length===0)return null;let n=Fb(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 lKn(e,t){let n=tSt(e);return t.filter(r=>!n[r])}function dKn(e,t){let n=BY(e);return t.filter(r=>!n[r])}function fKn(e,t,n){let r=Object.keys(Tl(e,t)).sort();return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...r,"user"]}function pKn(e){return typeof e.started_at=="string"&&e.started_at.length>0}function hKn(e,t){let n=BY(e);for(let r of t)if(!n[r])return!1;return!0}function mKn(e,t){if(hKn(e,t))return!0;let n=pKn(e),r=Fb(e);return n&&r.length===0?(Array.isArray(e.outputs)?e.outputs:[]).length===0:!1}function gKn(e,t,n,r){let i=zr(e,"stages",n,"units");if(!xa(i))return!1;let s=ZL(i).filter(c=>c.endsWith(".md"));if(s.length===0||Es(t,n).length===0)return!1;let a=fKn(t,n,r);for(let c of s){let u=Qc(zr(i,c))?.data;if(!u||!mKn(u,a))return!1}return!0}function C0(e,t,n,r){return gKn(e,t,n,r)}function Rye(e,t){return lv(e)?!xa(zr(e,"stages",t,"observations.md")):!1}function nSt(e,t,n){return!(!$yt(e)||xa(zr(e,"stages",t,"BRIEF.md"))||n)}function ai(e,t,n){let r=n??zr(ve(),"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(!C0(r,t,c,a))return c;return null}function Aye(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=rSt(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=Xyt(zr(t,"stages",b));for(let E of S){let _=u(b,E);if(_)return _}}let l=Xyt(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=ZL(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&&eSt(k)){A=!0;break}}if(A){_=!1;break}}_&&p.push(b)}if(p.length===0||!p.some(b=>b.inFlight||h0(b.severity)))return null;let g=[...p].sort((b,S)=>Xc(b.severity)-Xc(S.severity)).slice(0,fv),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 rSt(e,t,n){let r=Qc(t);if(!r)return null;let i=r.data;if(eSt(i))return null;let s=iSt(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=Fb(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=uv(i,a);if(c===null){let u=Fb(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 iSt(e){let t=Qyt(e).match(/^(\d+)-/);return t?`FB-${t[1].padStart(3,"0")}`:null}function sSt(e){let{slug:t,intentDir:n,studio:r,stage:i,mode:s}=e,o=zr(n,"stages",i),c=dv(o).map(R=>({path:R,name:zY(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}=VY(r,i,s,d),h=M0({slug:t,studio:r,stage:i,stageDir:o,unitNames:c.map(R=>R.name),mode:s});if(h.length>0){if(oL(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:the(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||Fb(P.fm).length>0?!1:!tSt(P.fm)[x]).map(P=>P.name);if(k.length!==0){if(x==="user"){A=k;continue}if(vye.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||Fb(k.fm).length>0);if(nSt(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=Fb(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&&uv(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,fv),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=uv(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:Fb(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=>!BY(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(vye.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(lv(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",a;if(s&&typeof s.data.sealed_at=="string"&&s.data.sealed_at.length>0&&(a=N0(t),!a.applicable||a.merged))return{track:"sealed",action:{kind:"sealed"}};if(s&&o!=="autopilot"&&!(typeof s.data.verified_at=="string"?s.data.verified_at:"")){let d=wn(s.data,r)[0]??"",f=d?zr(n,"stages",d):"",p=f&&xa(f)?dv(f).length>0:!1;if(ai(t,r,n)===d&&!p)return{track:"intent",action:{kind:"elaborate_loop",signals_unmet:[{signal:"verify_conversation"}]}}}let c=ai(t,r,n);if(c){let u=HY({intentDir:n,stage:c,studio:r});if(u.events.length>0){let l=Lyt({events:u.events,intentDir:n,stage:c,slug:t});s&&uKn({intentDir:n,stage:c,tripped:l.cascade_alarm_tripped})}}{let u=s?.data??{},l=Aye({intentDir:n,studio:r,intent:u,currentStage:c??wn(u,r).slice(-1)[0]??""});if(l)return{track:"feedback",action:l}}if(c){let u=sSt({slug:t,intentDir:n,studio:r,stage:c,mode:o});return u!==null?{track:"intent",action:u}:{track:"noop",action:null}}if(s){let u=BY(s.data),l=Object.keys(yg(r)).sort(),d=GY(o,l),f=[],p=!1;for(let m of d)if(!u[m]){if(m==="user"){p=!0;continue}if(vye.has(m))return f.length>0?{track:"intent",action:{kind:"intent_review",role:f[0].role,dispatches:f}}:{track:"intent",action:{kind:"intent_review",role:m,dispatches:[{role:m}]}};f.push({role:m})}if(f.length>0)return{track:"intent",action:{kind:"intent_review",role:f[0].role,dispatches:f}};if(!u.intent_quality_gates)return{track:"intent",action:{kind:"dispatch_quality_gates",stage:"",units:[],scope:"intent"}};if(p)return{track:"intent",action:{kind:"intent_review",role:"user",dispatches:[{role:"user"}]}};if(s.data.sealed_at==null&&lv(n)){let m=zr(n,"reflection.md");if(!xa(m))return{track:"intent",action:{kind:"record_reflection"}}}let h=a??N0(t);if(h.applicable&&!h.merged)return{track:"intent",action:{kind:"pending_seal",default_branch:h.defaultBranch}};if(s.data.sealed_at==null)return{track:"intent",action:{kind:"seal_intent"}}}return{track:"sealed",action:{kind:"sealed"}}}function GY(e,t=[]){let n=["spec","continuity","cross-stage-consistency"],r=t.filter(i=>!n.includes(i));return[...n,...r,"user"]}function VY(e,t,n,r){let s=["continuity","cross-stage-consistency",...r??Object.keys(Tl(e,t)).sort()],o=n==="autopilot",a=s.filter(l=>!UT.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 M0(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)&&ZL(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 wye(e){return e.map(t=>t.signal==="discovery"?`discovery:${t.agent}`:t.signal)}var cv,vye,yKn,Oa=v(()=>{"use strict";cv=Re(Kt(),1);Hi();ze();Kn();A3();ji();Uyt();Tye();YL();vye=new Set(["spec","quality_gates","user"]);yKn={walkIntentTrack:sSt,walkFeedbackTrack:Aye,nextActionForFeedback:rSt,parseFbIdFromFilename:iSt}});var oSt,JL,kye=v(()=>{"use strict";oSt=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"]),JL=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 EKn(e,t){let n=t.toLowerCase(),r=new RegExp(`<${n}\\b[^>]*>[\\s\\S]*?<\\/${n}\\s*>`,"gi"),i=e.replace(r,""),s=new RegExp(`<${n}\\b[^>]*>`,"gi");i=i.replace(s,"");let o=new RegExp(`<\\/${n}\\s*>`,"gi");return i=i.replace(o,""),i}function _Kn(e,t){let n=t.toLowerCase(),r=new RegExp(`<${n}\\b[^>]*/?>`,"gi");return e.replace(r,"")}function TKn(e){return e.replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function vKn(e){return e.replace(/\s+(?:formaction|srcdoc|xlink:href)\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function RKn(e){return e.replace(/\b(href|src)\s*=\s*(["']?)([^"'\s>]+)/gi,(t,n,r,i)=>cSt.test(i.trim())?`${n}=${r||'"'}#${r||'"'}`:t)}function AKn(e){return e.replace(/(!?\[[^\]]*\])\(([^)]+)\)/g,(t,n,r)=>cSt.test(r.trim())?`${n}(#)`:t)}function aSt(e){let t=e;for(let n of SKn)t=EKn(t,n);for(let n of bKn)t=_Kn(t,n);return t=TKn(t),t=vKn(t),t=RKn(t),t=AKn(t),t}function pv(e){if(typeof e!="string")return"";let t=e;for(let n=0;n<5;n++){let r=aSt(t);if(r===t)return r;t=r}return aSt(t)}var SKn,bKn,cSt,Iye=v(()=>{"use strict";SKn=["script","iframe","object","style","form"],bKn=["embed"],cSt=/^(?:javascript|vbscript|data:text\/html|data:text\/javascript|data:application\/(?:java|ecma)script|data:image\/svg\+xml)/i});import{randomBytes as wKn}from"node:crypto";function L0(){let e=IKn();return xKn(e)}function IKn(){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=wKn(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 xKn(e){let t=0;for(;t0n;){let i=Number(n%58n);n=n/58n,r=kKn[i]+r}return"1".repeat(t)+r}var kKn,uSt=v(()=>{"use strict";kKn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"});var Fye={};Ar(Fye,{_runPresenceSweepForTests:()=>MKn,beginPresenceWatch:()=>xye,clearHeartbeat:()=>WY,clearPreviousReviewSnapshot:()=>mSt,createDesignDirectionSession:()=>Mye,createPickerSession:()=>Dye,createQuestionSession:()=>Cye,createSession:()=>KY,createViewSession:()=>Lye,deleteSession:()=>q0,endPresenceWatch:()=>Oye,findLiveReviewSessionForIntent:()=>e1,getPreviousReviewSnapshot:()=>Nye,getSession:()=>$t,hasAttachedReviewSessionForIntent:()=>t1,hasPresenceLost:()=>Pye,isBrowserAttached:()=>mv,notifySessionUpdate:()=>H0,recordHeartbeat:()=>QL,setPreviousReviewSnapshot:()=>hSt,updateDesignDirectionSession:()=>r1,updatePickerSession:()=>UKn,updateQuestionSession:()=>n1,updateSession:()=>Ml,updateViewSession:()=>Uye,waitForSession:()=>hv});import{EventEmitter as OKn}from"node:events";function xye(e,t={}){j0.set(e,t.startedAt??Date.now())}function Oye(e){j0.delete(e)}function QL(e){return qi.has(e)?(F0.set(e,Date.now()),j0.delete(e),jb.delete(e)&&console.error(`[haiku] Presence restored for session ${e}`),!0):!1}function Pye(e){return jb.has(e)}function WY(e){F0.delete(e),jb.delete(e),j0.delete(e)}function lSt(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 dSt(e,t){jb.has(e)||(jb.add(e),console.error(`[haiku] Presence lost for session ${e} \u2014 ${t}`),U0.emit(`session:${e}`))}function pSt(){let e=Date.now();for(let[t,n]of F0){if(e-n<=PKn)continue;let r=qi.get(t);if(!r){F0.delete(t),jb.delete(t);continue}lSt(r)&&dSt(t,`no heartbeat in ${Math.round((e-n)/1e3)}s`)}for(let[t,n]of j0){if(F0.has(t)||e-n<=CKn)continue;let r=qi.get(t);if(!r){j0.delete(t);continue}lSt(r)&&dSt(t,`SPA never opened (no heartbeat in the first ${Math.round((e-n)/1e3)}s)`)}}function MKn(){pSt()}function H0(e){U0.emit(`session:${e}`)}function hv(e,t=1800*1e3,n){return new Promise((r,i)=>{let s=setTimeout(()=>{U0.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),U0.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}),U0.once(`session:${e}`,o)})}function Nye(e){return XL.get(e)}function hSt(e,t){XL.set(e,t)}function mSt(e){XL.delete(e)}function fSt(e){if(XL.has(e)){for(let t of qi.values())if(t.session_type==="review"&&t.intent_dir===e)return;XL.delete(e)}}function $L(){let e=Date.now();for(let[t,n]of ep)if(e-n>LKn){let r=qi.get(t);qi.delete(t),ep.delete(t),WY(t),r?.session_type==="review"&&fSt(r.intent_dir)}for(;qi.size>=DKn;){let t=ep.entries().next().value;if(!t)break;let n=qi.get(t[0]);qi.delete(t[0]),ep.delete(t[0]),WY(t[0]),n?.session_type==="review"&&fSt(n.intent_dir)}}function KY(e){$L();let t=L0(),n={...e,session_type:"review",session_id:t,status:"pending",decision:"",feedback:""};return qi.set(t,n),ep.set(t,Date.now()),n}function Cye(e){$L();let t=L0(),n={...e,session_type:"question",session_id:t,imagePaths:e.imagePaths??[],status:"pending",answers:[],feedback:""};return qi.set(t,n),ep.set(t,Date.now()),n}function Mye(e){$L();let t=L0(),n={...e,session_type:"design_direction",session_id:t,status:"pending",selection:null};return qi.set(t,n),ep.set(t,Date.now()),n}function Dye(e){$L();let t=L0(),n={...e,session_type:"picker",session_id:t,status:"pending",selection:null};return qi.set(t,n),ep.set(t,Date.now()),n}function UKn(e,t){let n=qi.get(e);if(!(!n||n.session_type!=="picker"))return Object.assign(n,t),H0(e),n}function Lye(e){$L();let t=L0(),n={...e,session_type:"view",session_id:t,status:"open"};return qi.set(t,n),ep.set(t,Date.now()),n}function Uye(e,t){let n=qi.get(e);if(!(!n||n.session_type!=="view"))return Object.assign(n,t),H0(e),n}function $t(e){return qi.get(e)}function e1(e){let t,n=0;for(let[r,i]of qi){if(i.session_type!=="review"||i.intent_slug!==e||i.ad_hoc||jb.has(r))continue;let s=ep.get(r)??0;s>n&&(t=i,n=s)}return t}function mv(e){if(!qi.has(e)||jb.has(e))return!1;let t=F0.get(e);return t?Date.now()-t<=FKn:!1}function t1(e){for(let[t,n]of qi)if(n.session_type==="review"&&n.intent_slug===e&&!n.ad_hoc&&mv(t))return!0;return!1}function q0(e){let t=qi.delete(e);return ep.delete(e),WY(e),t}function Ml(e,t){let n=qi.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);hSt(n.intent_dir,{feedback:n.feedback??"",reviewedAt:new Date().toISOString(),intentRawContent:r?.rawContent??"",unitRawContents:s})}else mSt(n.intent_dir);return H0(e),n}}function n1(e,t){let n=qi.get(e);if(!(!n||n.session_type!=="question"))return Object.assign(n,t),H0(e),n}function r1(e,t){let n=qi.get(e);if(!(!n||n.session_type!=="design_direction"))return Object.assign(n,t),H0(e),n}var U0,PKn,NKn,F0,jb,CKn,j0,qi,XL,DKn,LKn,ep,FKn,$c=v(()=>{"use strict";uSt();U0=new OKn;U0.setMaxListeners(200);PKn=12e4,NKn=5e3,F0=new Map,jb=new Set,CKn=6e4,j0=new Map;setInterval(pSt,NKn).unref();qi=new Map,XL=new Map;DKn=100,LKn=14400*1e3,ep=new Map;FKn=3e4});import{spawn as jKn}from"node:child_process";import{existsSync as B0,readFileSync as SSt}from"node:fs";import{createServer as HKn}from"node:net";import{isAbsolute as qKn,join as gv}from"node:path";function zKn(){return new Promise((e,t)=>{let n=HKn();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 GKn(e){return new Promise(t=>{let{Socket:n}=Y("node:net"),r=new n;r.setTimeout(500),r.once("connect",()=>{r.destroy(),t(!0)}),r.once("timeout",()=>{r.destroy(),t(!1)}),r.once("error",()=>{r.destroy(),t(!1)}),r.connect(e,"127.0.0.1")})}async function VKn(e,t){let n=Date.now()+YY;for(;Date.now()setTimeout(r,ESt))}throw new Error(`Dev server did not bind to port ${e} within ${YY}ms`)}async function WKn(e){try{let t=new AbortController,n=setTimeout(()=>t.abort(),1500),r=await fetch(e,{signal:t.signal});return clearTimeout(n),r.status<500}catch{return!1}}async function KKn(e,t){let n=Date.now()+YY;for(;Date.now()setTimeout(r,ESt))}throw new Error(`Process did not return a healthy ready_url (${e}) within ${YY}ms`)}function _St(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 TSt(e){let t=gv(e,"package.json");if(!B0(t))return null;let n;try{n=JSON.parse(SSt(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=YKn(e);return{command:s==="npm"?["npm","run",i]:[s,"run",i],cwd:e,description:`${s} run ${i}`}}function YKn(e){return B0(gv(e,"bun.lockb"))||B0(gv(e,"bun.lock"))?"bun":B0(gv(e,"pnpm-lock.yaml"))?"pnpm":B0(gv(e,"yarn.lock"))?"yarn":"npm"}function Lg(e){return new Error(`[${vSt}] ${e}`)}function gSt(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 jye(e){let t=gv(e,vSt);if(!B0(t))return null;let n;try{n=(0,bSt.default)(SSt(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 qKn(s)?s:gv(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:gSt(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:gSt(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 s1(e){let t=jye(e);return t?t.processes.filter(n=>n.service||n.requires_tool!==void 0&&n.name!==t.primary):[]}function ZKn(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 Hye(e,t,n){if(t.length===0)throw new Error("spawnBootGroup: at least one process spec required");let r=ZKn(t),i=new Map;for(let l of t)i.set(l.name,l.no_port?null:await zKn());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`),z0(e)},BKn);o.unref?.();let a={sessionId:e,processes:[],primaryName:n,primaryPort:i.get(n)??null,startedAt:Date.now(),ttlTimer:o};i1.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=jKn(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 KKn(b)}else await VKn(d)}}catch(l){throw z0(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 RSt(e,t){let n={name:"app",command:t.command,cwd:t.cwd};return(await Hye(e,[n],"app")).primary}function z0(e){let t=i1.get(e);if(!t)return!1;clearTimeout(t.ttlTimer),i1.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 ASt(){let e=0;for(let[t]of i1)$t(t)||(z0(t),e+=1);return e}function JKn(){if(ySt)return;ySt=!0;let e=()=>{for(let[t]of i1)z0(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var bSt,i1,BKn,YY,ESt,vSt,ySt,o1=v(()=>{"use strict";bSt=Re(Kt(),1);$c();i1=new Map,BKn=1800*1e3,YY=60*1e3,ESt=200;vSt=".haiku/boot.md";ySt=!1;JKn()});import{lstatSync as qye,mkdirSync as XKn,realpathSync as wSt,renameSync as QKn,unlinkSync as $Kn}from"node:fs";import{isAbsolute as e3n,relative as t3n,resolve as ZY,sep as JY}from"node:path";function yv(e,t,n,r){let i=ZY(e),s=ZY(t),o=ZY(r),a;try{if(qye(i).isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`intent root '${i}' is itself a symlink \u2014 refusing`};a=wSt(i)}catch(d){return{ok:!1,code:"parent_open_failed",detail:`cannot stat intent root: ${G0(d)}`}}if(s!==i&&!s.startsWith(`${i}${JY}`))return{ok:!1,code:"parent_chain_escape",detail:`parent '${s}' is not inside intent root '${i}'`};if(!o.startsWith(`${s}${JY}`))return{ok:!1,code:"parent_chain_escape",detail:`dest '${o}' is not directly below parent '${s}'`};let c=t3n(i,s),u=c===""?[]:c.split(JY),l=i;for(let d of u){if(d===""||d==="."||d===".."||e3n(d))return{ok:!1,code:"parent_chain_escape",detail:`chain segment '${d}' is invalid`};l=ZY(l,d);try{let f=qye(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{XKn(l)}catch(h){if(h.code==="EEXIST")try{let g=qye(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: ${G0(g)}`}}else return{ok:!1,code:"parent_open_failed",detail:`mkdir '${l}' failed: ${G0(h)}`}}else return{ok:!1,code:"parent_open_failed",detail:`lstat '${l}' failed: ${G0(f)}`}}}try{let d=wSt(s);if(d!==a&&!d.startsWith(`${a}${JY}`))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: ${G0(d)}`}}try{QKn(n,o)}catch(d){return{ok:!1,code:"rename_failed",detail:`rename '${n}' \u2192 '${o}' failed: ${G0(d)}`}}return{ok:!0}}function G0(e){return e instanceof Error?e.message:String(e)}function V0(e){try{$Kn(e)}catch{}}var XY=v(()=>{"use strict"});var l1={};Ar(l1,{applyFeedbackInvalidations:()=>zye,drainPendingDispatches:()=>i3n,stampSingleDispatch:()=>Bye,stashPendingDispatch:()=>n3n,stashPendingIntentReview:()=>r3n});import{existsSync as a1,readdirSync as ISt,readFileSync as c1}from"node:fs";import{join as Ug}from"node:path";function u1(e){let t=Ug(ve(),"intents",e,"intent.md");if(!a1(t))return null;let n=c1(t,"utf8"),r=re(n);return{path:t,fm:r.data||{}}}function tZ(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function xSt(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function n3n(e,t,n,r,i){let s=u1(e);if(!s)return;let o=t==="review"?$Y:eZ,a={...tZ(s.fm,o)},c={...a[n]??{}};c[r]={dispatched_at:new Date().toISOString(),units:[...i]},a[n]=c,Ne(s.path,o,a)}function r3n(e,t){if(t==="user")return;let n=u1(e);if(!n)return;let r={...xSt(n.fm,QY)};r[t]={dispatched_at:new Date().toISOString()},Ne(n.path,QY,r)}function OSt(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(!a1(l))continue;if(s&&s3n({intentDir:t,stage:n,targetUnit:u,role:r,sinceIso:s})){c.push(u);continue}let d=c1(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}),Ne(l,"reviews",h)}else{let h=Array.isArray(p.outputs)?p.outputs:[],m=p.approvals&&typeof p.approvals=="object"?{...p.approvals}:{};m[r]=zd(t,h),Ne(l,"approvals",m)}a.push(u)}return{stamped:a,skipped:c}}function Bye(e,t,n,r){let i=u1(e);if(!i)return{found:!1,stamped:[],skipped:[]};let s=t==="review"?$Y:eZ,o=tZ(i.fm,s),a=o[n]?.[r];if(!a||!Array.isArray(a.units))return{found:!1,stamped:[],skipped:[]};let c=Ug(ve(),"intents",e),{stamped:u,skipped:l}=OSt({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,Ne(i.path,s,o),{found:!0,stamped:u,skipped:l}}function i3n(e){let t=u1(e);if(!t)return!1;let n=ve(),r=Ug(n,"intents",e),i=!1;for(let o of["review","approval"]){let a=o==="review"?$Y:eZ,c=tZ(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;OSt({intentDir:r,stage:u,role:d,units:f.units,dispatchedAt:f.dispatched_at,kind:o}).stamped.length>0&&(i=!0)}}Ne(t.path,a,{})}}let s=xSt(t.fm,QY);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&&(o3n({intentDir:r,role:c,sinceIso:u.dispatched_at})||(o[c]={at:new Date().toISOString()},a=!0,i=!0))}a&&Ne(t.path,"approvals",o),Ne(t.path,QY,{})}return i}function s3n(e){let t=Ug(e.intentDir,"stages",e.stage,"feedback");if(!a1(t))return!1;for(let n of ISt(t,{withFileTypes:!0})){if(!n.isFile()||!n.name.endsWith(".md"))continue;let r=Ug(t,n.name),i=c1(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)||!h0(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],Ne(t.path,e.field,n))}var $Y,eZ,QY,Sv=v(()=>{"use strict";Hi();ze();Xf();$Y="_pending_review_dispatches",eZ="_pending_approval_dispatches",QY="_pending_intent_review_dispatches"});import{existsSync as a3n,readFileSync as c3n}from"node:fs";import{join as u3n}from"node:path";function NSt(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{zye({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{l3n({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 l3n(e){let t=ve(),n=u3n(t,"intents",e.slug,"stages",e.stage,"units",`${e.targetUnit}.md`);if(!a3n(n))return;let r=Cg(n);if(!r)return;let i=c3n(n,"utf8"),o=(0,PSt.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&&Ne(n,"reviews",u);let l=c("approvals");l&&Ne(n,"approvals",l)}var PSt,CSt=v(()=>{"use strict";PSt=Re(Kt(),1);Sv();Xf();ze();vo()});var HSt={};Ar(HSt,{__testOnly:()=>E3n,withIntentDispatchLock:()=>W0,withIntentMainLock:()=>sZ,withStageLock:()=>Hb});import{existsSync as d3n,mkdirSync as DSt,readFileSync as f3n,rmSync as LSt,statSync as p3n,writeFileSync as h3n}from"node:fs";import{join as nZ}from"node:path";function USt(){return nZ(Br(),".haiku","locks")}function y3n(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function S3n(e){let t=nZ(e,"holder.json");if(!d3n(t))return null;try{let n=f3n(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 FSt(e){let t;try{t=Date.now()-p3n(e).mtimeMs}catch{return!1}if(t{"use strict";ze();m3n=50,MSt=3e4,g3n=5*6e4;E3n={acquireLock:rZ,releaseLock:iZ,lockRoot:USt,isStale:FSt}});function d1(e){return Array.isArray(e.iterations)?e.iterations:[]}function _3n(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function Gye(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function qSt(e){let t=e.fm.started_at;return typeof t=="string"&&t.length>0||t instanceof Date&&!Number.isNaN(t.getTime())?!0:d1(e.fm).length>0}function T3n(e,t,n,r){return r===!0?"completed":r===!1?e.length===0?"pending":e.some(qSt)?"active":"pending":e.length===0||!e.some(qSt)?"pending":e.every(s=>{let o=d1(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=Gye(s.fm);return n.every(u=>c[u])})?"completed":"active"}function v3n(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=>!_3n(c.fm)[o]))return"review";if(t.length>0&&!e.every(a=>{let c=d1(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=>!Gye(c.fm)[o]))return"gate";return null}function R3n(e,t){return e.length===0?null:e.every(r=>{let i=Gye(r.fm);return t.every(s=>i[s])})?"advanced":null}function BSt(e){return typeof e=="string"&&e.length>0?e:e instanceof Date&&!Number.isNaN(e.getTime())?e.toISOString():null}function A3n(e){return e.map(n=>BSt(n.fm.started_at)).filter(n=>n!==null).sort()[0]??null}function w3n(e,t){if(t!=="completed")return null;let n=null;for(let r of e){let i=d1(r.fm);if(i.length===0)continue;let s=i[i.length-1];if(s.result!=="advance")continue;let o=BSt(s.completed_at);o!==null&&(n===null||o>n)&&(n=o)}return n}function k3n(e){let t=0;for(let n of e){let r=d1(n.fm);r.length>t&&(t=r.length)}return t}function Vye(e){let{stage:t,units:n,intentMode:r,hats:i=[],reviewRoles:s=[],approvalRoles:o=[],stageMergedIntoMain:a=null,elaborationVerified:c=null}=e,u=T3n(n,i,o,a),l=u==="completed"?null:v3n(n,i,s,o,r,c),d=R3n(n,o),f=A3n(n),p=w3n(n,u),h=k3n(n);return{stage:t,status:u,phase:l,started_at:f,completed_at:p,gate_outcome:d,visits:h}}var Wye=v(()=>{});import{execFileSync as aZ}from"node:child_process";import{existsSync as GSt,readdirSync as I3n,readFileSync as x3n}from"node:fs";import{basename as VSt,join as oZ}from"node:path";function Kye(e){if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(Kye);if(e!==null&&typeof e=="object"){let t={};for(let[n,r]of Object.entries(e))t[n]=Kye(r);return t}return e}function KSt(e){try{let t=(0,WSt.default)(e).data;return Kye(t)}catch{return null}}function YSt(e){if(!GSt(e))return null;try{return KSt(x3n(e,"utf8"))}catch{return null}}function O3n(e){let t=oZ(e,"units");return GSt(t)?I3n(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).sort((n,r)=>n.name.localeCompare(r.name)).map(n=>{let r=YSt(oZ(t,n.name))??{};return{name:VSt(n.name,".md"),fm:r}}):[]}function P3n(e,t){if(!Ee())return null;try{return aZ("git",["show",`${e}:${t}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return null}}function ZSt(e,t){let n=P3n(e,t);return n==null?null:KSt(n)}function N3n(e,t){if(!Ee())return[];try{return aZ("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 C3n(e,t,n){let r=`.haiku/intents/${t}/stages/${n}/units`,i=N3n(e,r);return i.length===0?[]:i.map(s=>{let o=ZSt(e,`${r}/${s}`)??{};return{name:VSt(s,".md"),fm:o}})}function Yye(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 M3n(e,t){if(!Ee())return!1;let n=`haiku/${e}/main`,r=`.haiku/intents/${e}/stages/${t}/units`;try{return aZ("git",["ls-tree","--name-only",`${n}:${r}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` +`).some(s=>s.trim().endsWith(".md"))}catch{return!1}}function zSt(e){if(!Ee())return!1;try{return aZ("git",["rev-parse","--verify",e],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!1}}function bv(e){let{slug:t,studio:n,stage:r,intentDir:i,intentMode:s}=e,o=oZ(i,"stages",r),a=Es(n,r),c=Yye(n,r,s),u=Zye(n,r,s),l=`haiku/${t}/main`,d=`haiku/${t}/${r}`,f=Ee(),p=f&&zSt(l),m=f&&zSt(d)?d:p?l:null,g=m?C3n(m,t,r):O3n(o),y=p?M3n(t,r):null,b=oZ(o,"elaboration.md"),S=`.haiku/intents/${t}/stages/${r}/elaboration.md`,E=m?ZSt(m,S):YSt(b),_=null;return E!==null&&(_=(typeof E.verified_at=="string"?E.verified_at:"").length>0),Vye({stage:r,units:g,intentMode:s,hats:a,reviewRoles:c,approvalRoles:u,stageMergedIntoMain:y,elaborationVerified:_})}var WSt,f1=v(()=>{"use strict";Wye();WSt=Re(Kt(),1);Eb();Kn();ji()});import{appendFileSync as D3n,existsSync as xpi,mkdirSync as JSt,readFileSync as Opi,writeFileSync as L3n}from"node:fs";import{dirname as XSt}from"node:path";function QSt(e,t){try{JSt(XSt(e),{recursive:!0}),L3n(e,`${JSON.stringify(t,null,2)} +`)}catch{}}function Bi(e,t){try{let n=e.replace(/\.json$/,".jsonl");JSt(XSt(n),{recursive:!0});let r={...t,ts:new Date().toISOString()};D3n(n,`${JSON.stringify(r)} +`)}catch{}}var p1=v(()=>{"use strict"});var $St,ebt,tbt,nbt=v(()=>{"use strict";$St=["status","active_stage","started_at","completed_at","phase","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at"],ebt=["status","phase","started_at","completed_at","gate_entered_at","gate_outcome"],tbt=["status","started_at","completed_at","bolt","hat","hat_started_at","scope_reject_attempts"]});import{createHash as U3n}from"node:crypto";import{existsSync as rbt,readdirSync as F3n,readFileSync as ibt,writeFileSync as j3n}from"node:fs";import{join as cZ}from"node:path";function H3n(e){let t=JSON.stringify(e,Object.keys(e).sort());return U3n("sha256").update(t).digest("hex").slice(0,16)}function Jye(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function q3n(e,t,n){if(!n)return{};let r=cZ(e,"intents",t,"stages",n,"units");if(!rbt(r))return{};for(let i of F3n(r)){if(!i.endsWith(".md"))continue;let s=ibt(cZ(r,i),"utf8"),{data:o}=re(s);if(o.status==="active")return Jye(o,tbt)}return{}}function ci(e){if(!Mi().hooks)try{let t=ve(),n=cZ(t,"intents",e,"intent.md");if(!rbt(n))return;let r=ibt(n,"utf8"),{data:i}=re(r),s=i.active_stage||"",o=Jye(i,$St),a={};if(s){let f=Y0(e,s),p=qb(f);a=Jye(p,ebt)}let c=q3n(t,e,s),l=H3n({intent:o,stage:a,unit:c}),d=cZ(t,"intents",e,".fsm_checksum");j3n(d,l)}catch(t){console.error(`[haiku] sealIntentState(${e}) failed:`,t)}}var uZ=v(()=>{"use strict";_f();ze();nbt()});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 AZ={};Ar(AZ,{AGENT_AUTHORABLE_INTENT_FIELDS:()=>tv,AGENT_AUTHORABLE_UNIT_FIELDS:()=>Db,CREATE_TIME_FB_FIELDS:()=>jL,ERROR_OUTPUT_SCHEMA:()=>fye,FEEDBACK_ASSESSOR_HAT:()=>wbt,FEEDBACK_ORIGINS:()=>x9n,FEEDBACK_STATUSES:()=>Bb,FSM_DRIVEN_FB_FIELDS:()=>FL,FSM_DRIVEN_INTENT_FIELDS:()=>nv,FSM_DRIVEN_UNIT_FIELDS:()=>Jf,INTENT_FRONTMATTER_SCHEMA:()=>GL,INTENT_TITLE_MAX_LENGTH:()=>cSe,IntentScopeTickPersistError:()=>Vd,MAX_CONCURRENT_SUBAGENTS:()=>fv,MAX_FIX_LOOP_BOLTS:()=>Dg,MAX_INTEGRATOR_ATTEMPTS:()=>O9n,MAX_RATIONALE_BYTES:()=>nSe,MAX_RATIONALE_EXCERPT_BYTES:()=>rSe,MAX_STAGE_ITERATIONS:()=>Df,MAX_UNIT_BOLTS:()=>Ev,OK_OUTPUT_SCHEMA:()=>pye,REJECT_LOOP_MIN_REPEATS:()=>gZ,STAGE_STATE_FIELDS:()=>hye,STAGE_STATE_SCHEMA:()=>PY,UNIT_FRONTMATTER_SCHEMA:()=>rv,_resetIsGitRepoForTests:()=>Mft,appendFeedbackIteration:()=>D9n,appendFeedbackReply:()=>vSe,appendStageIteration:()=>pSe,applyAutoFixes:()=>uSe,closeCurrentStageIteration:()=>hSe,completeUnitIteration:()=>yZ,computeFeedbackSignature:()=>bbt,countConsecutiveSameRejects:()=>Sbt,countInFlightUnits:()=>xbt,countPendingFeedback:()=>U9n,countUnitBolts:()=>ybt,deleteFeedbackFile:()=>RZ,deleteFrontmatterFields:()=>Zh,deriveAuthorType:()=>SSe,deriveFeedbackIdFromFilename:()=>Nbt,deriveFeedbackStatus:()=>np,deriveUnitStatus:()=>J0,detectDagCycles:()=>Rbt,detectSettledDuplicate:()=>Ebt,dismissFeedbackClosureReply:()=>RSe,ensureHaikuGitignored:()=>eL,feedbackDir:()=>lo,feedbackSeverityRank:()=>Xc,findFeedbackFile:()=>bc,findHaikuRoot:()=>ve,formatFeedbackId:()=>Gd,getIntentScopeTickCounter:()=>T1,getStageIterationCount:()=>Tbt,gitCommitAll:()=>SZ,gitCommitState:()=>wt,gitCommitStateBackgroundPush:()=>jg,gitCommitStateIfDirty:()=>gSe,handleStateTool:()=>wSe,incrementFeedbackBolt:()=>F9n,intentDir:()=>ce,intentFromCurrentBranch:()=>_v,intentTitleNeedsRepair:()=>b1,isGitRepo:()=>Ee,isIntentArchived:()=>_1,isIntentLocked:()=>E1,listInstalledSkills:()=>$0,listVisibleIntentSlugs:()=>A9n,listVisibleIntents:()=>Fg,matchesGlob:()=>iSe,migrateIterationReasonsOnRead:()=>sSe,migrateMisplacedWorktrees:()=>gbt,moveFeedbackFile:()=>Pbt,normalizeLegacyFeedbackStatus:()=>TZ,normalizeRejectReason:()=>dSe,parseFrontmatter:()=>re,persistDesignDirectionSelection:()=>bSe,persistDesignDirectionUploads:()=>ESe,pickUndispatchedUnitBlocks:()=>Ibt,primaryRepoRoot:()=>Br,readClaimedAuthorId:()=>s9n,readDecisionLog:()=>I3,readFeedbackFiles:()=>Us,readIntentBody:()=>Yh,readJson:()=>qb,readStagePr:()=>Tv,readStagePrs:()=>mSe,repairDeclaredOutput:()=>_Z,resolveUnitHats:()=>aSe,runInlineQualityGates:()=>lSe,safeMkdirAndRename:()=>yv,setFrontmatterField:()=>Ne,setHaikuRootForTests:()=>Lft,setIsGitRepoForTests:()=>Dft,setStagePrField:()=>zb,setUnitFrontmatterField:()=>w9n,slugifyTitle:()=>vZ,stageDir:()=>cr,stageStatePath:()=>Y0,stampDispatchClaim:()=>kbt,stampUnitHatLease:()=>_Se,startUnitIteration:()=>y1,stateToolDefs:()=>ASe,syncSessionMetadata:()=>Xr,timestamp:()=>mn,unitIntentDir:()=>a9n,unitOutputExists:()=>Kh,unitPath:()=>Pa,updateFeedbackFile:()=>TSe,validateBranch:()=>ySe,validateIntentSchema:()=>x0,validateRationaleCaps:()=>Y3n,validateSlugArgs:()=>jD,validateUnitFrontmatter:()=>vbt,validateUnitSchema:()=>Ng,validateUnitScope:()=>mZ,writeFeedbackFile:()=>Qo,writeJson:()=>S1});import{execFileSync as Na,execSync as Wh,spawn as B3n,spawnSync as lZ}from"node:child_process";import{randomBytes as z3n}from"node:crypto";import{appendFileSync as G3n,existsSync as ue,lstatSync as V3n,mkdirSync as Dl,readdirSync as an,readFileSync as xe,renameSync as dbt,rmSync as tSe,statSync as fbt,unlinkSync as X0,writeFileSync as In}from"node:fs";import{homedir as W3n}from"node:os";import{basename as K3n,dirname as Q0,join as te,resolve as tp,sep as Z0}from"node:path";import{readdirSync as _9n}from"node:fs";function sbt(e){return Buffer.byteLength(e,"utf-8")}function Y3n(e){let t=sbt(e.agent_rationale);if(t>nSe)return{kind:"agent_rationale_too_long",bytes:t,cap:nSe};for(let n=0;nrSe)return{kind:"rationale_excerpt_too_long",index:n,path:r.path,bytes:i,cap:rSe}}return null}function b1(e){if(typeof e!="string")return!0;let t=e.trim();return!!(t.length===0||t.length>cSe||/\n/.test(t))}function uSe(e,t,n){let r=te(e,t,"intent.md");if(!ue(r))return{applied:[],remaining:n};let i=[],s=[r],o=te(e,t,"stages");if(ue(o))for(let y of an(o,{withFileTypes:!0})){if(!y.isDirectory())continue;let b=te(o,y.name,"units");if(ue(b))for(let S of an(b,{withFileTypes:!0}))S.isFile()&&S.name.endsWith(".md")&&s.push(te(b,S.name))}for(let y of s){let b=xe(y,"utf8"),{text:S,removed:E}=hg(b);if(E.length===0)continue;In(y,S);let _=y.startsWith(te(e,t))?y.slice(te(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=xe(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"&&b1(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=Z3n(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=te(e,t,"stages");if(ue(h))for(let y of an(h,{withFileTypes:!0})){if(!y.isDirectory())continue;let b=te(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=te(b,S.name),_=xe(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],_=te(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=te(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=xe(_,"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 Z3n(e){try{return fbt(e)}catch{return null}}function J3n(e,t){if(!Ee())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 hbt(e){let t=new Map,n=nn(),r=[te(e,"studios"),te(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=te(i,s.name,"STUDIO.md");if(!ue(o))continue;let{data:a}=re(xe(o,"utf8")),c=Array.isArray(a.stages)?a.stages:[];t.set(s.name,c)}return{studioMap:t,searchPaths:r}}function EZ(e,t,n,r){let i=te(e,t,"intent.md");if(!ue(i))return[];let s=xe(i,"utf8"),{data:o}=re(s),a=[],{removed:c}=hg(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"&&b1(o.title)){let d=o.title,f=/\n/.test(d)?"title contains newlines":`title is ${d.length} chars (max ${cSe})`;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=te(e,t,"stages",d,"units");if(!ue(f))continue;let p=[];if(u){let h=null;for(let m of r){let g=te(m,u,"stages",d,"STAGE.md");if(!ue(g))continue;let{data:y}=re(xe(g,"utf8"));Array.isArray(y.inputs)&&y.inputs.length>0&&(h=y.inputs);break}if(h){let m=te(e,t);for(let g of h)for(let y of r)for(let b of["discovery","outputs"]){let S=te(y,u,"stages",g.stage,b);if(ue(S))for(let E of an(S).filter(_=>_.endsWith(".md"))){let _=xe(te(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=te(m,k);ue(P)&&p.push(k)}}}}for(let h of an(f,{withFileTypes:!0})){if(!(h.isFile()&&h.name.endsWith(".md")))continue;X3n.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=xe(te(f,h.name),"utf8"),{removed:g}=hg(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(Ee()){let d=te(e,t,"intent.md"),f=J3n(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 mbt(e,t,n){let r=e??ve(),i=te(r,"intents");if(!ue(i))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};let{studioMap:s,searchPaths:o}=hbt(r),a;if(t){if(/[/\\]|\.\./.test(t))throw new Error(`Invalid intent slug: "${t}"`);if(!ue(te(i,t,"intent.md")))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};a=[t]}else a=an(i,{withFileTypes:!0}).filter(f=>f.isDirectory()&&ue(te(i,f.name,"intent.md"))).map(f=>f.name);let c=[],u=[],l=[],d=[];for(let f of a){let p=EZ(i,f,s,o);if(n&&p.length>0){let h=uSe(i,f,p);l.push(...h.applied),h.applied.length>0&&(p=EZ(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 Q3n(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 obt(){if(!Ee())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 $3n(e){try{return Na("git",["-C",e,"status","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!0}}function gbt(){let e={moved:[],skipped:[],cleanedSkeletons:[]};if(!Ee())return e;let t=Br(),n=`${Z0}.haiku${Z0}worktrees${Z0}`;for(let i of obt()){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($3n(i.path)){e.skipped.push({path:i.path,reason:"uncommitted changes \u2014 commit/stash inside the worktree, then re-run haiku_repair"});continue}try{let u=c.slice(0,c.lastIndexOf(Z0));Dl(u,{recursive:!0}),Na("git",["worktree","move",i.path,c],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}),e.moved.push({old:i.path,new:c,branch:i.branch??"(detached)"})}catch(u){e.skipped.push({path:i.path,reason:`git worktree move failed: ${u instanceof Error?u.message:String(u)}`})}}let r=new Set;for(let i of obt())i.path!==t&&r.add(i.path);for(let i of r){let s=te(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=te(c,u.name);if(u.isFile()||u.isSymbolicLink()){o=!0;return}u.isDirectory()&&a(l)}};a(s)}catch{o=!0}if(!o)try{tSe(s,{recursive:!0,force:!0}),e.cleanedSkeletons.push(s);let a=te(i,".haiku");ue(a)&&an(a).length===0&&tSe(a,{recursive:!0,force:!0})}catch{}}return e}function e9n(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 t9n(e){NT();let t=Zo(),n=[];if(e){let s=dpe();for(let{slug:o,branches:a}of s){let c=a.map(u=>u.replace(`haiku/${o}/`,""));try{let u=a[0],l=Ape(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=Rpe(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=i3();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=s3(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=te(a,".haiku"),l=mbt(u,void 0,e);c.scanned=l.scanned,c.applied=l.applied,c.remaining=l.remaining;let d=te(u,"intents",s,"intent.md");if(ue(d)&&re(xe(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=a3(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=MT(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&&o3(a)}n.push(c)}let i=e9n(r,t,e);return{summaries:n,mainline:t,archivedSummary:i}}function e9n(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=s3(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=te(o,".haiku"),c=te(a,"intents");if(!ue(c))return;let l=an(c,{withFileTypes:!0}).filter(p=>p.isDirectory()&&ue(te(c,p.name,"intent.md"))).map(p=>p.name).filter(p=>!r.has(p));if(l.length===0)return;let{studioMap:d,searchPaths:f}=fbt(a);for(let p of l){let h=EZ(c,p,d,f);if(s.scanned++,n&&h.length>0){let m=cSe(c,p,h);s.applied.push(...m.applied),m.applied.length>0&&(h=EZ(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=a3(o,i,p.join(` +`)}`);m.ok?c.prUrl=m.url:c.prError=m.error}}}finally{a&&o3(a)}n.push(c)}let i=n9n(r,t,e);return{summaries:n,mainline:t,archivedSummary:i}}function n9n(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=s3(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=te(o,".haiku"),c=te(a,"intents");if(!ue(c))return;let l=an(c,{withFileTypes:!0}).filter(p=>p.isDirectory()&&ue(te(c,p.name,"intent.md"))).map(p=>p.name).filter(p=>!r.has(p));if(l.length===0)return;let{studioMap:d,searchPaths:f}=hbt(a);for(let p of l){let h=EZ(c,p,d,f);if(s.scanned++,n&&h.length>0){let m=uSe(c,p,h);s.applied.push(...m.applied),m.applied.length>0&&(h=EZ(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=a3(o,i,p.join(` `));if(s.committed=h.committed,s.pushed=h.pushed,s.pushError=h.pushError,h.committed&&h.pushed){let m=MT(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&&o3(o)}if(s.scanned>0||s.setupError)return s}function t9n(e,t,n){if(e.length===0&&!n)return"No intent branches or archived intents found in this repository.";let r=["# Multi-Branch Repair Report","",`Scanned ${e.length} intent branch(es). Mainline: \`${t}\`.`,""],i=e.reduce((l,d)=>l+d.applied.length,0)+(n?.applied.length??0),s=e.reduce((l,d)=>l+d.remaining.length,0)+(n?.remaining.length??0),o=e.filter(l=>l.pushed).length+(n?.pushed?1:0),a=e.filter(l=>l.prUrl).length,c=n?.prUrl?1:0,u=a>0&&c>0?`${a} PR(s) for already-merged branches + 1 PR for archived intents`:a>0?`${a} PR(s) opened for already-merged branches`:c>0?"1 PR opened for archived intents":"no PRs opened";r.push(`**Summary:** ${i} fix(es) auto-applied across ${o} branch(es); ${u}; ${s} issue(s) still need attention.`),r.push("");for(let l of e){if(r.push(`## \`${l.branch}\``),r.push(""),r.push(`- Scanned: ${l.scanned} intent(s)`),r.push(`- Auto-applied: ${l.applied.length}`),r.push(`- Remaining: ${l.remaining.length}`),l.committed&&l.pushed?r.push(`- Committed and pushed to \`origin/${l.branch}\``):l.committed?r.push(`- Committed locally; push failed: ${l.pushError||"unknown"}`):l.error?r.push(`- Error: ${l.error}`):l.pushError&&r.push(`- Push error: ${l.pushError}`),l.merged&&l.prUrl?r.push(`- Branch already merged into \`${t}\` \u2014 opened PR/MR: ${l.prUrl}`):l.merged&&l.prError&&r.push(`- Branch already merged into \`${t}\` \u2014 failed to open PR: ${l.prError}`),l.applied.length>0){r.push(""),r.push("**Fixes applied:**");for(let d of l.applied)r.push(`- ${d.intent}/${d.field}: ${d.description}`)}if(l.remaining.length>0){r.push(""),r.push("**Remaining issues (need agent attention):**");for(let d of l.remaining)r.push(`- **${d.intent}**/${d.field} (${d.severity}): ${d.message} \u2192 ${d.fix}`)}r.push("")}if(n){if(r.push("## Archived intents (mainline only)"),r.push(""),n.setupError)return r.push(`- **Mainline worktree setup failed:** ${n.setupError}`),r.push("- No archived intents were scanned. Fix the underlying git/filesystem issue and re-run `/repair`."),r.push(""),r.join(` +`)}`);m.ok?s.prUrl=m.url:s.prError=m.error}}}finally{o&&o3(o)}if(s.scanned>0||s.setupError)return s}function r9n(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(h1!==null&&h1.cwd===e)return h1.root;if(!Ee())return h1={cwd:e,root:e},e;let t;try{let n=Na("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(!n)t=e;else{let r=n.startsWith("/")?n:tp(e,n);t=tp(r,"..")}}catch{t=e}return h1={cwd:e,root:t},t}function uSe(e,t){let n=ve(),r=te(n,"intents",e,"intent.md");function i(f){if(!ue(f))return[];let p=xe(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=Wh("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 n9n(e){try{let t=s1(Br());return[...new Set(t.map(n=>n.requires_tool).filter(n=>typeof n=="string"&&n.length>0))]}catch{return[]}}function ce(e){return te(ve(),"intents",e)}function Yh(e){let t=te(ce(e),"intent.md");if(!ue(t))return null;let{body:n}=re(xe(t,"utf8"));return(n||"").trim()||null}function E1(e){try{let t=te(e,"intent.md");if(!ue(t))return!1;let n=xe(t,"utf-8"),{data:r}=(0,Ct.default)(n);return r.status==="locked"}catch{return!1}}function _1(e){try{let t=te(e,"intent.md");if(!ue(t))return!1;let n=xe(t,"utf-8"),{data:r}=(0,Ct.default)(n),i=r;return i.status==="archived"||i.archived===!0}catch{return!1}}function r9n(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 i9n(e){return te(e,"intent-tick.json")}function T1(e){let t=i9n(e),n=Q0(t);try{let o=z3n(n);if(o.isSymbolicLink())throw new Vd(`intent dir '${n}' is a symlink \u2014 refusing (V-04)`);if(!o.isDirectory())throw new Vd(`intent dir '${n}' exists but is not a directory`)}catch(o){throw o instanceof Vd?o:new Vd(`cannot stat intent dir '${n}': ${o instanceof Error?o.message:String(o)}`)}let r=0;try{if(ue(t)){let o=xe(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=te(n,`.intent-tick-${process.pid}-${q3n(6).toString("hex")}.json.tmp`);try{In(s,JSON.stringify({tick:i},null,2)),ubt(s,t)}catch(o){try{X0(s)}catch{}throw new Vd(`failed to persist intent-scope tick counter at '${t}': ${o instanceof Error?o.message:String(o)}`)}return i}function s9n(e,t){let n=te(Br(),".haiku","worktrees",e,t),r=te(n,".haiku","intents",e);return ue(r)?r:ce(e)}function m1(e){if(!ue(e))return!1;try{let t=lbt(e);if(t.isFile()&&t.size===0)return!1}catch{return!0}return!0}function Kh(e,t,n){let r=tp(ce(e),n);if(m1(r))return!0;let i=te(Br(),".haiku","worktrees",e,t),s=te(i,".haiku","intents",e);if(ue(s)){let a=tp(s,n);if(m1(a))return!0}let o=(()=>{try{return Wh("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{return null}})();if(o){let a=tp(o,n);if(m1(a))return!0}if(ue(i)){let a=tp(i,n);if(m1(a))return!0}return!1}function o9n(e,t){let n=[ce(e)],r=te(Br(),".haiku","worktrees",e,t),i=te(r,".haiku","intents",e);ue(i)&&n.push(i);try{let s=Wh("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 Jye(e){let t=e.lastIndexOf(".");return t<=0?e:e.slice(0,t)}function _Z(e,t,n){let r=V3n(n);if(Jye(r)===r)return null;let i=Jye(r),s=Q0(n),o=new Set;for(let c of o9n(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&&Jye(d)===i&&m1(te(u,d))&&o.add(d)}if(o.size!==1)return null;let a=[...o][0];return s==="."?a:te(s,a)}function cr(e,t){return te(ce(e),"stages",t)}function Pa(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=te(cr(e,t),"units"),s=te(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?te(i,u[0]):s}function Y0(e,t){return te(cr(e,t),"state.json")}function rSe(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 a9n(e,t,n){if(!Ee())return null;let r=t.replace(/\.md$/,""),i=te(Br(),".haiku","worktrees",e,r);if(!ue(i))return null;try{let s=`haiku/${e}/${r}`,o=`haiku/${e}/${n}`,a=Wh(`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(Wh(`git diff --name-only ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(Wh(`git log --name-only --pretty=format: ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(Wh("git diff --name-only HEAD",{cwd:i,encoding:"utf8"}).toString()),u(Wh("git diff --name-only --cached",{cwd:i,encoding:"utf8"}).toString()),u(Wh("git ls-files --others --exclude-standard",{cwd:i,encoding:"utf8"}).toString()),[...c].filter(l=>ue(te(i,l)))}catch{return null}}function c9n(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 u9n(e,t,n,r){let i=a9n(e,n,t);return i!==null?i:[]}function l9n(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=>rSe(s,o))||r&&s===null&&(n.repoWildcard||n.repoGlobs.some(o=>rSe(e,o))))}function d9n(e,t,n,r){if(r.length===0)return;let i=Pa(e,t,n);if(!ue(i))return;let s=xe(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=Ee(),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))||JL.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 mZ(e,t,n,r){let i=Pa(e,n,r);if(!ue(i))return null;let{data:s}=re(xe(i,"utf8")),o=s.hat_started_at,a=u9n(e,n,r,o);if(a.length===0)return null;let c=c9n(e,t,n,r),u=Ee(),l=[];for(let d of a)l9n(d,e,c,u)||l.push(d);return l.length>0?{violations:l,scope:c}:(d9n(e,n,r,a),null)}function lSe(e){return e?e.replace(/\s+/g," ").trim().toLowerCase().slice(0,100):""}function mbt(e){let t=0;for(let n of e)n.result==="reject"&&t++;return t}function gbt(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||lSe(s.reason)!==n)break;r++}}return r}function ybt(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 sbt(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&&!f9n.has(i));return new Set(r)}function p9n(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 Sbt(e,t,n){let r;try{let a=t?Us(e,t):[],c=Us(e,"");r=[...a,...c]}catch{return null}let i=sbt(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=p9n(i,sbt(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 bbt(e,t){return te(cr(e,t),"decisions.jsonl")}function obt(e,t,n){let r=bbt(e,t);try{Dl(Q0(r),{recursive:!0}),B3n(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 I3(e,t){let n=bbt(e,t);if(!ue(n))return[];let r=xe(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 dSe(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 Ebt(e,t,n){if(t&&n){let s=dSe(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 fSe(e,t,n,r="feedback-revisit"){let i=dSe(e,t),s=mn();i.length>0&&(i[i.length-1].completed_at||void 0);let o=n.feedbackTitles?ybt(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 pSe(e,t,n,r){let i=dSe(e,t),s=mn();i.length===0&&void 0,{...r?{reason:r}:{}}}function y1(e,t){if(!ue(e))return;let{data:n,body:r}=re(xe(e,"utf8")),i=Array.isArray(n.iterations)?n.iterations.slice():[];i.push({hat:t,started_at:mn(),completed_at:null,result:null}),n.iterations=i,In(e,Ct.default.stringify(r,n))}function iSe(e){if(!ue(e))return;let t;try{t=re(xe(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 yZ(e,t,n){if(!ue(e))return;let{data:r,body:i}=re(xe(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=mn(),o.result=t,n&&(o.message=n),r.iterations=s,In(e,Ct.default.stringify(i,r)))}function g9n(e){let t=[],n=new Set;for(let r of m9n){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 y9n(e){let t=g9n(e);if(t.length===0)return null;let n=process.cwd(),r=n.endsWith(Z0)?n:`${n}${Z0}`;for(let i of t){let s=i.path.startsWith("/")?i.path:te(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=xe(o,"utf8");if(!new RegExp(`(?:export[^\\n]*\\b${Xye(i.identifier)}\\b|\\bfunction\\s+${Xye(i.identifier)}\\b|\\b${Xye(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 Xye(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function S9n(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 E9n(e){if(!Qye){let t=new dbt.Ajv({allErrors:!0,strict:!1}),n=nn(),r=te(n,"schemas","providers");if(ue(r)){let a="https://haiku.dev/schemas/";for(let c of b9n(r))if(c.endsWith(".schema.json"))try{let u=JSON.parse(xe(te(r,c),"utf8"));u.$id=`${a}providers/${c}`,t.addSchema(u)}catch{}}let i=te(n,"schemas","settings.schema.json"),s=ue(i)?JSON.parse(xe(i,"utf8")):{type:"object",additionalProperties:!0},o=t.compile(s);Qye=o,sSe=()=>o.errors}return Qye(e)}function _9n(){return sSe?sSe():[]}function T9n(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 dZ(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 _bt(e,t){let n=[];if(!Ng(e)&&Ng.errors)for(let i of Ng.errors)n.push(T9n(i));if(Array.isArray(e.depends_on))for(let i of e.depends_on){if(typeof i!="string")continue;(i===t.unit||dZ(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=>dZ(i,o))&&!dZ(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=>dZ(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 Tbt(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 v1(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:v1(r),body:i.trim()}};try{return t(e)}catch(n){if(!hI(n))throw n;let{text:r,removed:i}=hg(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=te(e,i,"intent.md");if(!ue(s))continue;let{data:o}=re(xe(s,"utf8"));!n&&o.archived===!0||r.push({slug:i,data:o})}return r}function v9n(e,t){return Fg(e,t).map(n=>n.slug)}function _v(){if(!Ee())return null;let e=gr();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 Ne(e,t,n){let r=xe(e,"utf8"),i=(0,Ct.default)(r),s={...i.data,[t]:n};In(e,Ct.default.stringify(i.content,v1(s)))}function hSe(e){let t=te(ce(e),"intent.md");if(!ue(t))return{};let r=re(xe(t,"utf8")).data.stage_prs;return!r||typeof r!="object"||Array.isArray(r)?{}:r}function Tv(e,t){return hSe(e)[t]??null}function zb(e,t,n,r){let i=te(ce(e),"intent.md");if(!ue(i))return;let s=hSe(e),o={...s[t]??{},[n]:r},a={...s,[t]:o};Ne(i,"stage_prs",a)}function Zh(e,t){if(!ue(e))return;let n=xe(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,v1(i)))}function R9n(e,t,n,r,i){let s=Pa(e,t,n);ue(s)&&Ne(s,r,i);let o=te(Br(),".haiku","worktrees",e,n);if(!ue(o))return;let a=te(o,".haiku","intents",e,"stages",t,"units",n.endsWith(".md")?n:`${n}.md`);ue(a)&&Ne(a,r,i)}function abt(e){let{data:t}=(0,Ct.default)(`--- +`)}`,failures:u}}function i9n(e){try{let t=s1(Br());return[...new Set(t.map(n=>n.requires_tool).filter(n=>typeof n=="string"&&n.length>0))]}catch{return[]}}function ce(e){return te(ve(),"intents",e)}function Yh(e){let t=te(ce(e),"intent.md");if(!ue(t))return null;let{body:n}=re(xe(t,"utf8"));return(n||"").trim()||null}function E1(e){try{let t=te(e,"intent.md");if(!ue(t))return!1;let n=xe(t,"utf-8"),{data:r}=(0,Ct.default)(n);return r.status==="locked"}catch{return!1}}function _1(e){try{let t=te(e,"intent.md");if(!ue(t))return!1;let n=xe(t,"utf-8"),{data:r}=(0,Ct.default)(n),i=r;return i.status==="archived"||i.archived===!0}catch{return!1}}function s9n(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 o9n(e){return te(e,"intent-tick.json")}function T1(e){let t=o9n(e),n=Q0(t);try{let o=V3n(n);if(o.isSymbolicLink())throw new Vd(`intent dir '${n}' is a symlink \u2014 refusing (V-04)`);if(!o.isDirectory())throw new Vd(`intent dir '${n}' exists but is not a directory`)}catch(o){throw o instanceof Vd?o:new Vd(`cannot stat intent dir '${n}': ${o instanceof Error?o.message:String(o)}`)}let r=0;try{if(ue(t)){let o=xe(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=te(n,`.intent-tick-${process.pid}-${z3n(6).toString("hex")}.json.tmp`);try{In(s,JSON.stringify({tick:i},null,2)),dbt(s,t)}catch(o){try{X0(s)}catch{}throw new Vd(`failed to persist intent-scope tick counter at '${t}': ${o instanceof Error?o.message:String(o)}`)}return i}function a9n(e,t){let n=te(Br(),".haiku","worktrees",e,t),r=te(n,".haiku","intents",e);return ue(r)?r:ce(e)}function m1(e){if(!ue(e))return!1;try{let t=fbt(e);if(t.isFile()&&t.size===0)return!1}catch{return!0}return!0}function Kh(e,t,n){let r=tp(ce(e),n);if(m1(r))return!0;let i=te(Br(),".haiku","worktrees",e,t),s=te(i,".haiku","intents",e);if(ue(s)){let a=tp(s,n);if(m1(a))return!0}let o=(()=>{try{return Wh("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{return null}})();if(o){let a=tp(o,n);if(m1(a))return!0}if(ue(i)){let a=tp(i,n);if(m1(a))return!0}return!1}function c9n(e,t){let n=[ce(e)],r=te(Br(),".haiku","worktrees",e,t),i=te(r,".haiku","intents",e);ue(i)&&n.push(i);try{let s=Wh("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 Xye(e){let t=e.lastIndexOf(".");return t<=0?e:e.slice(0,t)}function _Z(e,t,n){let r=K3n(n);if(Xye(r)===r)return null;let i=Xye(r),s=Q0(n),o=new Set;for(let c of c9n(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&&Xye(d)===i&&m1(te(u,d))&&o.add(d)}if(o.size!==1)return null;let a=[...o][0];return s==="."?a:te(s,a)}function cr(e,t){return te(ce(e),"stages",t)}function Pa(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=te(cr(e,t),"units"),s=te(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?te(i,u[0]):s}function Y0(e,t){return te(cr(e,t),"state.json")}function iSe(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 u9n(e,t,n){if(!Ee())return null;let r=t.replace(/\.md$/,""),i=te(Br(),".haiku","worktrees",e,r);if(!ue(i))return null;try{let s=`haiku/${e}/${r}`,o=`haiku/${e}/${n}`,a=Wh(`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(Wh(`git diff --name-only ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(Wh(`git log --name-only --pretty=format: ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(Wh("git diff --name-only HEAD",{cwd:i,encoding:"utf8"}).toString()),u(Wh("git diff --name-only --cached",{cwd:i,encoding:"utf8"}).toString()),u(Wh("git ls-files --others --exclude-standard",{cwd:i,encoding:"utf8"}).toString()),[...c].filter(l=>ue(te(i,l)))}catch{return null}}function l9n(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 d9n(e,t,n,r){let i=u9n(e,n,t);return i!==null?i:[]}function f9n(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=>iSe(s,o))||r&&s===null&&(n.repoWildcard||n.repoGlobs.some(o=>iSe(e,o))))}function p9n(e,t,n,r){if(r.length===0)return;let i=Pa(e,t,n);if(!ue(i))return;let s=xe(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=Ee(),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))||JL.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 mZ(e,t,n,r){let i=Pa(e,n,r);if(!ue(i))return null;let{data:s}=re(xe(i,"utf8")),o=s.hat_started_at,a=d9n(e,n,r,o);if(a.length===0)return null;let c=l9n(e,t,n,r),u=Ee(),l=[];for(let d of a)f9n(d,e,c,u)||l.push(d);return l.length>0?{violations:l,scope:c}:(p9n(e,n,r,a),null)}function dSe(e){return e?e.replace(/\s+/g," ").trim().toLowerCase().slice(0,100):""}function ybt(e){let t=0;for(let n of e)n.result==="reject"&&t++;return t}function Sbt(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||dSe(s.reason)!==n)break;r++}}return r}function bbt(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 abt(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&&!h9n.has(i));return new Set(r)}function m9n(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 Ebt(e,t,n){let r;try{let a=t?Us(e,t):[],c=Us(e,"");r=[...a,...c]}catch{return null}let i=abt(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=m9n(i,abt(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 _bt(e,t){return te(cr(e,t),"decisions.jsonl")}function cbt(e,t,n){let r=_bt(e,t);try{Dl(Q0(r),{recursive:!0}),G3n(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 I3(e,t){let n=_bt(e,t);if(!ue(n))return[];let r=xe(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 fSe(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 Tbt(e,t,n){if(t&&n){let s=fSe(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 pSe(e,t,n,r="feedback-revisit"){let i=fSe(e,t),s=mn();i.length>0&&(i[i.length-1].completed_at||void 0);let o=n.feedbackTitles?bbt(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 hSe(e,t,n,r){let i=fSe(e,t),s=mn();i.length===0&&void 0,{...r?{reason:r}:{}}}function y1(e,t){if(!ue(e))return;let{data:n,body:r}=re(xe(e,"utf8")),i=Array.isArray(n.iterations)?n.iterations.slice():[];i.push({hat:t,started_at:mn(),completed_at:null,result:null}),n.iterations=i,In(e,Ct.default.stringify(r,n))}function sSe(e){if(!ue(e))return;let t;try{t=re(xe(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 yZ(e,t,n){if(!ue(e))return;let{data:r,body:i}=re(xe(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=mn(),o.result=t,n&&(o.message=n),r.iterations=s,In(e,Ct.default.stringify(i,r)))}function S9n(e){let t=[],n=new Set;for(let r of y9n){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 b9n(e){let t=S9n(e);if(t.length===0)return null;let n=process.cwd(),r=n.endsWith(Z0)?n:`${n}${Z0}`;for(let i of t){let s=i.path.startsWith("/")?i.path:te(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=xe(o,"utf8");if(!new RegExp(`(?:export[^\\n]*\\b${Qye(i.identifier)}\\b|\\bfunction\\s+${Qye(i.identifier)}\\b|\\b${Qye(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 Qye(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function E9n(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 T9n(e){if(!$ye){let t=new pbt.Ajv({allErrors:!0,strict:!1}),n=nn(),r=te(n,"schemas","providers");if(ue(r)){let a="https://haiku.dev/schemas/";for(let c of _9n(r))if(c.endsWith(".schema.json"))try{let u=JSON.parse(xe(te(r,c),"utf8"));u.$id=`${a}providers/${c}`,t.addSchema(u)}catch{}}let i=te(n,"schemas","settings.schema.json"),s=ue(i)?JSON.parse(xe(i,"utf8")):{type:"object",additionalProperties:!0},o=t.compile(s);$ye=o,oSe=()=>o.errors}return $ye(e)}function v9n(){return oSe?oSe():[]}function R9n(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 dZ(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 vbt(e,t){let n=[];if(!Ng(e)&&Ng.errors)for(let i of Ng.errors)n.push(R9n(i));if(Array.isArray(e.depends_on))for(let i of e.depends_on){if(typeof i!="string")continue;(i===t.unit||dZ(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=>dZ(i,o))&&!dZ(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=>dZ(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 Rbt(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 v1(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:v1(r),body:i.trim()}};try{return t(e)}catch(n){if(!hI(n))throw n;let{text:r,removed:i}=hg(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=te(e,i,"intent.md");if(!ue(s))continue;let{data:o}=re(xe(s,"utf8"));!n&&o.archived===!0||r.push({slug:i,data:o})}return r}function A9n(e,t){return Fg(e,t).map(n=>n.slug)}function _v(){if(!Ee())return null;let e=gr();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 Ne(e,t,n){let r=xe(e,"utf8"),i=(0,Ct.default)(r),s={...i.data,[t]:n};In(e,Ct.default.stringify(i.content,v1(s)))}function mSe(e){let t=te(ce(e),"intent.md");if(!ue(t))return{};let r=re(xe(t,"utf8")).data.stage_prs;return!r||typeof r!="object"||Array.isArray(r)?{}:r}function Tv(e,t){return mSe(e)[t]??null}function zb(e,t,n,r){let i=te(ce(e),"intent.md");if(!ue(i))return;let s=mSe(e),o={...s[t]??{},[n]:r},a={...s,[t]:o};Ne(i,"stage_prs",a)}function Zh(e,t){if(!ue(e))return;let n=xe(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,v1(i)))}function w9n(e,t,n,r,i){let s=Pa(e,t,n);ue(s)&&Ne(s,r,i);let o=te(Br(),".haiku","worktrees",e,n);if(!ue(o))return;let a=te(o,".haiku","intents",e,"stages",t,"units",n.endsWith(".md")?n:`${n}.md`);ue(a)&&Ne(a,r,i)}function ubt(e){let{data:t}=(0,Ct.default)(`--- ${e} --- -`);return v1(t)}function A9n(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 qb(e){return ue(e)?JSON.parse(xe(e,"utf8")):{}}function S1(e,t){Dl(te(e,".."),{recursive:!0}),In(e,`${JSON.stringify(t,null,2)} +`);return v1(t)}function k9n(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 qb(e){return ue(e)?JSON.parse(xe(e,"utf8")):{}}function S1(e,t){Dl(te(e,".."),{recursive:!0}),In(e,`${JSON.stringify(t,null,2)} `)}function mn(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function eL(){if(Ee())try{let e=te(Br(),".gitignore"),t="";try{ue(e)&&(t=xe(e,"utf8"))}catch{}let n=t.split(` -`).map(c=>c.trim()).filter(Boolean),r=new Set(n),i=w9n.filter(c=>!r.has(c.entry)&&!c.accept.some(u=>r.has(u))).map(c=>c.entry);if(i.length===0)return;let s="# H\xB7AI\xB7K\xB7U engine-managed: worktree pool (linked git worktrees) + runtime-verification proof (regenerated binary churn \u2014 uploaded to the PR, never committed).",o=t&&!t.endsWith(` +`).map(u=>u.trim()).filter(Boolean),r=new Set(n),i=I9n.filter(u=>!r.has(u.entry)&&!u.accept.some(l=>r.has(l))).map(u=>u.entry);if(i.length===0)return;let o=n.some(u=>u.startsWith(".haiku/"))?"# H\xB7AI\xB7K\xB7U engine-managed (proof: regenerated binary churn \u2014 uploaded to the PR, never committed)":"# H\xB7AI\xB7K\xB7U engine-managed: worktree pool (linked git worktrees) + runtime-verification proof (regenerated binary churn \u2014 uploaded to the PR, never committed).",a=t&&!t.endsWith(` `)?` -`:"";In(e,`${t}${o}${t?` -`:""}${s} +`:"";In(e,`${t}${a}${t?` +`:""}${o} ${i.join(` `)} -`),Na("git",["add","--",".gitignore"],{encoding:"utf8",stdio:"pipe"}),Na("git",["commit","-m",`chore(haiku): gitignore engine artifacts (${i.join(", ")})`,"--",".gitignore"],{encoding:"utf8",stdio:"pipe"})}catch{}}function vbt(e){Na("git",["add","--",e],{encoding:"utf8",stdio:"pipe"});try{Na("git",["rm","--cached","-r","--ignore-unmatch","-f","--",te(e,"worktrees")],{encoding:"utf8",stdio:"pipe"})}catch{}}function SZ(e){if(!Ee())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: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(!Ee())return{committed:!1,pushed:!1};try{vbt(ve()),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 mSe(e){if(!Ee())return{committed:!1,pushed:!1};try{if(!Na("git",["status","--porcelain","--",ve()],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim())return{committed:!1,pushed:!1}}catch{}return wt(e)}function jg(e){if(!Ee())return{committed:!1};try{vbt(ve()),Na("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"})}catch{return{committed:!1}}try{let t=H3n("git",["push"],{stdio:"ignore",detached:!0});t.unref(),t.on("error",()=>{})}catch{}return{committed:!0}}function gSe(e,t,n){if(!Ee())return"";let r=gr();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 fZ(e){return e.pushed||!e.committed?"":` +`),Na("git",["add","--",".gitignore"],{encoding:"utf8",stdio:"pipe"}),Na("git",["commit","-m",`chore(haiku): gitignore engine artifacts (${i.join(", ")})`,"--",".gitignore"],{encoding:"utf8",stdio:"pipe"})}catch{}}function Abt(e){Na("git",["add","--",e],{encoding:"utf8",stdio:"pipe"});try{Na("git",["rm","--cached","-r","--ignore-unmatch","-f","--",te(e,"worktrees")],{encoding:"utf8",stdio:"pipe"})}catch{}}function SZ(e){if(!Ee())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: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(!Ee())return{committed:!1,pushed:!1};try{Abt(ve()),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 gSe(e){if(!Ee())return{committed:!1,pushed:!1};try{if(!Na("git",["status","--porcelain","--",ve()],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim())return{committed:!1,pushed:!1}}catch{}return wt(e)}function jg(e){if(!Ee())return{committed:!1};try{Abt(ve()),Na("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"})}catch{return{committed:!1}}try{let t=B3n("git",["push"],{stdio:"ignore",detached:!0});t.unref(),t.on("error",()=>{})}catch{}return{committed:!0}}function ySe(e,t,n){if(!Ee())return"";let r=gr();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 fZ(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 pZ(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 g1(e){let t=ve(),n=te(t,"intents",e,"intent.md");if(!ue(n))return"";let{data:r}=re(xe(n,"utf8"));return r.active_stage||""}function ea(e,t){if(gb())return null;let n=yr(e,t);if(!n.ok){if(n.block==="dirty_tree"){let r=n.dirty_files||[],i=r.length>0?` @@ -702,39 +702,39 @@ ${r.map(o=>` - ${o}`).join(` Steps: 1. \`git add ${r.length>0?r.join(" "):""}\` 2. \`git commit -m "haiku: wip on ${n.branch}"\` - 3. Retry the call.`};return{content:[{type:"text",text:JSON.stringify(s,null,2)}],isError:!0}}return{content:[{type:"text",text:`Error: stage-branch enforcement failed for intent '${e}', stage '${t??"(none)"}' \u2014 ${n.message}`}],isError:!0}}return null}function bZ(e,t){let n=ve(),r=g1(e);if(r){let s=Pa(e,r,t);if(ue(s))return{path:s,stage:r}}let i=te(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 oSe(e,t,n){return R1(e,t)}function R1(e,t){try{let n=ve(),r=te(n,"intents",e,"intent.md");if(!ue(r))return[];let{data:i}=re(xe(r,"utf8")),s=i.studio||"";if(!s)return[];let o=nn();for(let a of[te(process.cwd(),".haiku","studios"),te(o,"studios")]){let c=te(a,s,"stages",t,"STAGE.md");if(!ue(c))continue;let{data:u}=re(xe(c,"utf8"));return u.hats||[]}}catch{}return[]}function hZ(e,t){try{let n=ve(),r=te(n,"intents",e,"intent.md");if(!ue(r))return"";let{data:i}=re(xe(r,"utf8")),s=i.studio||"";if(!s)return"";let o=nn();for(let a of[te(process.cwd(),".haiku","studios"),te(o,"studios")]){let c=te(a,s,"stages",t,"STAGE.md");if(!ue(c))continue;let u=xe(c,"utf8"),l=re(u),{content:d}=(0,Ct.default)(u),f=l.data.description||t;return`[stage_scope] ${t}: ${f} | ${d.trim().slice(0,500)}`}}catch{}return""}function Xr(e,t){if(t)try{let n=ve(),r=te(n,"intents",e,"intent.md");if(!ue(r))return;let{data:i}=re(xe(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=bv({slug:e,studio:s,stage:o,intentDir:te(n,"intents",e),intentMode:f}).phase??""}let c=null,u=null,l=null;if(o){let f=te(cr(e,o),"units");if(ue(f))for(let p of an(f).filter(h=>h.endsWith(".md"))){let{data:h}=re(xe(te(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[te(process.cwd(),".haiku","studios"),te(f,"studios")]){let h=te(p,s,"stages",o,"STAGE.md");if(!ue(h))continue;let{data:m}=re(xe(h,"utf8"));d=m.description||o;break}}JSt(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 J0(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 TZ(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 ySe(e){return x9n.has(e)?"human":"agent"}function O9n(e){return ySe(e)==="human"?"user":"agent"}function P9n(e,t){return Array.isArray(e)?e:t.startsWith("user-")?["user"]:[]}function vZ(e,t=60){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-{2,}/g,"-").slice(0,t).replace(/-+$/,"")}function SSe(e){let t=te(cr(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{X0(te(t,s))}catch{}let n=vZ(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-${A1(i)}-${n}.${a}`;In(te(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=te(ce(e.slug),"intent.md");if(ue(s)){let o=xe(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:mn()},Ne(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=te(cr(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"archetype",archetype:e.archetype,recorded_at:mn()};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(Q0(s),{recursive:!0}),In(s,Ct.default.stringify(`${a.join(` + 3. Retry the call.`};return{content:[{type:"text",text:JSON.stringify(s,null,2)}],isError:!0}}return{content:[{type:"text",text:`Error: stage-branch enforcement failed for intent '${e}', stage '${t??"(none)"}' \u2014 ${n.message}`}],isError:!0}}return null}function bZ(e,t){let n=ve(),r=g1(e);if(r){let s=Pa(e,r,t);if(ue(s))return{path:s,stage:r}}let i=te(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 aSe(e,t,n){return R1(e,t)}function R1(e,t){try{let n=ve(),r=te(n,"intents",e,"intent.md");if(!ue(r))return[];let{data:i}=re(xe(r,"utf8")),s=i.studio||"";if(!s)return[];let o=nn();for(let a of[te(process.cwd(),".haiku","studios"),te(o,"studios")]){let c=te(a,s,"stages",t,"STAGE.md");if(!ue(c))continue;let{data:u}=re(xe(c,"utf8"));return u.hats||[]}}catch{}return[]}function hZ(e,t){try{let n=ve(),r=te(n,"intents",e,"intent.md");if(!ue(r))return"";let{data:i}=re(xe(r,"utf8")),s=i.studio||"";if(!s)return"";let o=nn();for(let a of[te(process.cwd(),".haiku","studios"),te(o,"studios")]){let c=te(a,s,"stages",t,"STAGE.md");if(!ue(c))continue;let u=xe(c,"utf8"),l=re(u),{content:d}=(0,Ct.default)(u),f=l.data.description||t;return`[stage_scope] ${t}: ${f} | ${d.trim().slice(0,500)}`}}catch{}return""}function Xr(e,t){if(t)try{let n=ve(),r=te(n,"intents",e,"intent.md");if(!ue(r))return;let{data:i}=re(xe(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=bv({slug:e,studio:s,stage:o,intentDir:te(n,"intents",e),intentMode:f}).phase??""}let c=null,u=null,l=null;if(o){let f=te(cr(e,o),"units");if(ue(f))for(let p of an(f).filter(h=>h.endsWith(".md"))){let{data:h}=re(xe(te(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[te(process.cwd(),".haiku","studios"),te(f,"studios")]){let h=te(p,s,"stages",o,"STAGE.md");if(!ue(h))continue;let{data:m}=re(xe(h,"utf8"));d=m.description||o;break}}QSt(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 J0(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 TZ(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 SSe(e){return P9n.has(e)?"human":"agent"}function N9n(e){return SSe(e)==="human"?"user":"agent"}function C9n(e,t){return Array.isArray(e)?e:t.startsWith("user-")?["user"]:[]}function vZ(e,t=60){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-{2,}/g,"-").slice(0,t).replace(/-+$/,"")}function bSe(e){let t=te(cr(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{X0(te(t,s))}catch{}let n=vZ(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-${A1(i)}-${n}.${a}`;In(te(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=te(ce(e.slug),"intent.md");if(ue(s)){let o=xe(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:mn()},Ne(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=te(cr(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"archetype",archetype:e.archetype,recorded_at:mn()};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(Q0(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 bSe(e){let t=te(cr(e.slug,e.stage),"artifacts","design-direction"),n=te(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{X0(te(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=vZ(e.files[i-1]?.filename.replace(/\.[^.]+$/,"")??"")||`upload-${i}`,l=`up-${A1(i)}-${u}.${c}`;In(te(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=te(ce(e.slug),"intent.md");if(ue(s)){let o=xe(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:mn()},Ne(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=te(cr(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"upload",recorded_at:mn()};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(Q0(s),{recursive:!0}),In(s,Ct.default.stringify(`${a.join(` +`,o))}catch(s){console.error(`[haiku] failed to write design-direction.md manifest: ${s instanceof Error?s.message:String(s)}`)}return{annotations:r,artifactsDir:t}}function ESe(e){let t=te(cr(e.slug,e.stage),"artifacts","design-direction"),n=te(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{X0(te(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=vZ(e.files[i-1]?.filename.replace(/\.[^.]+$/,"")??"")||`upload-${i}`,l=`up-${A1(i)}-${u}.${c}`;In(te(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=te(ce(e.slug),"intent.md");if(ue(s)){let o=xe(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:mn()},Ne(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=te(cr(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"upload",recorded_at:mn()};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(Q0(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?te(cr(e,t),"feedback"):te(ce(e),"feedback")}function Abt(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=te(s,a),u=xe(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:mn(),result:null,bolt:m});let g={...d,iterations:f};In(c,Ct.default.stringify(`${l.content.trimEnd()} -`,g))}catch{}}function ESe(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)(xe(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=mn(),Ne(s,"iterations",c)}catch{}}function cbt(e,t){try{return W0(e,()=>{let n=ce(e),r=te(n,"intent.md");if(!ue(r))return null;let i=(0,Ct.default)(xe(r,"utf8")).data,s=typeof i.studio=="string"?i.studio:"";if(!s)return null;if(t){let d=bZ(e,t);if(!d)return null;let f=re(xe(d.path,"utf8")),p=R1(e,d.stage),h=uv(f.data,p);if(!h)return null;let m=WI({slug:e,studio:s,unit:t,stage:d.stage,hat:h.hat,terminal:h.terminal});return ESe({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:WI({slug:e,studio:s,unit:u[0],stage:a,hat:c,terminal:l})})}catch{return null}}function $ye(e,t){let n=ce(e),r=ue(te(n,"intent.md"))?(0,Ct.default)(xe(te(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:te(n,"stages",d,"feedback")});c.push({stage:"",dir:te(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(xe(te(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 Abt({slug:e,stage:l.stage,feedbackId:l.feedbackId,hat:l.firstHat}),VI({slug:e,studio:t,feedbackId:l.feedbackId,stage:l.stage,hat:l.firstHat,terminal:l.terminal})}function wbt(e,t,n){if(n<=0)return[];let r=ce(e),i=ai(e,t,r)??"";if(!i)return[];let s=R1(e,i);if(s.length===0)return[];let o=s[0],a=s[s.length-1],c=s.length===1,u=te(cr(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=te(u,h),g;try{g=re(xe(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=>!Kh(e,h.name,b))||(Ne(h.path,"started_at",mn()),y1(h.path,o),ESe({slug:e,stage:i,unit:h.name,hat:o}),p.push(WI({slug:e,studio:t,unit:h.name,stage:i,hat:o,terminal:c})))}return p.length>0&&ci(e),p}function kbt(e,t,n){let r=R1(e,t);if(r.length===0)return 0;let i=te(cr(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(xe(te(i,o),"utf8")).data}catch{continue}!c||c.started_at==null||uv(c,r)!==null&&s++}return s}function Ibt(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 A1(e){return e.toString().padStart(3,"0")}function Qo(e,t,n){let r=lo(e,t);Dl(r,{recursive:!0});let i=Ibt(r),s=A1(i),o=vZ(n.title),a=`${s}-${o}.md`,c=te(r,a),u=n.origin||"agent",l=n.authorType??ySe(u),d=n.author||O9n(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=Y0(e,t),A=ue(R)?qb(R):{};h=Ebt(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=te(r,m);In(k,Buffer.from(R[2],"base64"))}}let g=pv(n.body),y=m?`${g.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?te(cr(e,t),"feedback"):te(ce(e),"feedback")}function kbt(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=te(s,a),u=xe(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:mn(),result:null,bolt:m});let g={...d,iterations:f};In(c,Ct.default.stringify(`${l.content.trimEnd()} +`,g))}catch{}}function _Se(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)(xe(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=mn(),Ne(s,"iterations",c)}catch{}}function lbt(e,t){try{return W0(e,()=>{let n=ce(e),r=te(n,"intent.md");if(!ue(r))return null;let i=(0,Ct.default)(xe(r,"utf8")).data,s=typeof i.studio=="string"?i.studio:"";if(!s)return null;if(t){let d=bZ(e,t);if(!d)return null;let f=re(xe(d.path,"utf8")),p=R1(e,d.stage),h=uv(f.data,p);if(!h)return null;let m=WI({slug:e,studio:s,unit:t,stage:d.stage,hat:h.hat,terminal:h.terminal});return _Se({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:WI({slug:e,studio:s,unit:u[0],stage:a,hat:c,terminal:l})})}catch{return null}}function eSe(e,t){let n=ce(e),r=ue(te(n,"intent.md"))?(0,Ct.default)(xe(te(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:te(n,"stages",d,"feedback")});c.push({stage:"",dir:te(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(xe(te(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 kbt({slug:e,stage:l.stage,feedbackId:l.feedbackId,hat:l.firstHat}),VI({slug:e,studio:t,feedbackId:l.feedbackId,stage:l.stage,hat:l.firstHat,terminal:l.terminal})}function Ibt(e,t,n){if(n<=0)return[];let r=ce(e),i=ai(e,t,r)??"";if(!i)return[];let s=R1(e,i);if(s.length===0)return[];let o=s[0],a=s[s.length-1],c=s.length===1,u=te(cr(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=te(u,h),g;try{g=re(xe(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=>!Kh(e,h.name,b))||(Ne(h.path,"started_at",mn()),y1(h.path,o),_Se({slug:e,stage:i,unit:h.name,hat:o}),p.push(WI({slug:e,studio:t,unit:h.name,stage:i,hat:o,terminal:c})))}return p.length>0&&ci(e),p}function xbt(e,t,n){let r=R1(e,t);if(r.length===0)return 0;let i=te(cr(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(xe(te(i,o),"utf8")).data}catch{continue}!c||c.started_at==null||uv(c,r)!==null&&s++}return s}function Obt(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 A1(e){return e.toString().padStart(3,"0")}function Qo(e,t,n){let r=lo(e,t);Dl(r,{recursive:!0});let i=Obt(r),s=A1(i),o=vZ(n.title),a=`${s}-${o}.md`,c=te(r,a),u=n.origin||"agent",l=n.authorType??SSe(u),d=n.author||N9n(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=Y0(e,t),A=ue(R)?qb(R):{};h=Tbt(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=te(r,m);In(k,Buffer.from(R[2],"base64"))}}let g=pv(n.body),y=m?`${g.trim()} ![annotation](/api/feedback-attachment/${encodeURIComponent(e)}/${encodeURIComponent(t)}/${encodeURIComponent(m)}) -`:g,b=new Set(["question","inline_fix","stage_revisit"]),S=typeof n.resolution=="string"&&b.has(n.resolution)?n.resolution:null,E={title:n.title,status:"pending",origin:u,...p?{severity:p}:{},author:d,author_type:l,created_at:mn(),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"?mn():null,resolution:S,replies:[],targets:{unit:n.targetUnit===void 0||n.targetUnit===null?null:n.targetUnit,invalidates:P9n(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(` +`: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:mn(),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"?mn():null,resolution:S,replies:[],targets:{unit:n.targetUnit===void 0||n.targetUnit===null?null:n.targetUnit,invalidates:C9n(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=xe(te(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-${A1(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:M9n(l),iterations:N9n(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 N9n(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 C9n(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=te(i,o),c=xe(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,v1(f)))}function M9n(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 D9n(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(xe(te(r,c),"utf8"));return{path:te(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 xbt(e,t,n,r){let i=bc(e,t,n);if(!i)return null;let s=mn(),o={...i.data,triaged_at:s};if(t===r){TZ(o);let S=Ct.default.stringify(` +`,E);In(c,_);let T=t?`.haiku/intents/${e}/stages/${t}/feedback/${a}`:`.haiku/intents/${e}/feedback/${a}`;return{feedback_id:`FB-${s}`,file:T,num:i}}function Us(e,t){let n=lo(e,t);if(!ue(n))return[];let r=an(n).filter(s=>s.endsWith(".md")).sort(),i=[];for(let s of r){let o=s.match(/^(\d+)-(.+)\.md$/);if(!o)continue;let a=Number.parseInt(o[1],10),c=o[2],u=xe(te(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-${A1(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:L9n(l),iterations:M9n(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 M9n(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 D9n(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=te(i,o),c=xe(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,v1(f)))}function L9n(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 U9n(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(xe(te(r,c),"utf8"));return{path:te(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 Pbt(e,t,n,r){let i=bc(e,t,n);if(!i)return null;let s=mn(),o={...i.data,triaged_at:s};if(t===r){TZ(o);let S=Ct.default.stringify(` ${i.body.trim()} -`,o);In(i.path,S);let E=t?`.haiku/intents/${e}/stages/${t}/feedback/${i.filename}`:`.haiku/intents/${e}/feedback/${i.filename}`,_=o.id;return{feedback_id:typeof _=="string"&&_.length>0?_:Obt(i.filename),file:E,moved:!1,triaged_at:s}}let a=lo(e,r);Dl(a,{recursive:!0});let c=Ibt(a),u=A1(c),l=i.filename.match(/^\d+-(.+)\.md$/),d=l?l[1]:"moved-feedback",f=`${u}-${d}.md`,p=te(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=te(h,`${g}-${d}.${S}`);if(ue(E)){let _=te(a,`${u}-${d}.${S}`);if(ue(_))throw new Error(`moveFeedbackFile: refusing to overwrite existing attachment '${_}' \u2014 clean it up manually before retrying.`)}}let y=Ct.default.stringify(` +`,o);In(i.path,S);let E=t?`.haiku/intents/${e}/stages/${t}/feedback/${i.filename}`:`.haiku/intents/${e}/feedback/${i.filename}`,_=o.id;return{feedback_id:typeof _=="string"&&_.length>0?_:Nbt(i.filename),file:E,moved:!1,triaged_at:s}}let a=lo(e,r);Dl(a,{recursive:!0});let c=Obt(a),u=A1(c),l=i.filename.match(/^\d+-(.+)\.md$/),d=l?l[1]:"moved-feedback",f=`${u}-${d}.md`,p=te(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=te(h,`${g}-${d}.${S}`);if(ue(E)){let _=te(a,`${u}-${d}.${S}`);if(ue(_))throw new Error(`moveFeedbackFile: refusing to overwrite existing attachment '${_}' \u2014 clean it up manually before retrying.`)}}let y=Ct.default.stringify(` ${i.body.trim()} -`,o);if(In(p,y),g)for(let S of["png","jpg","jpeg","webp"]){let E=te(h,`${g}-${d}.${S}`);if(ue(E)){let _=te(a,`${u}-${d}.${S}`);ubt(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(` +`,o);if(In(p,y),g)for(let S of["png","jpg","jpeg","webp"]){let E=te(h,`${g}-${d}.${S}`);if(ue(E)){let _=te(a,`${u}-${d}.${S}`);dbt(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))}}X0(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 Obt(e){let t=e.match(/^(\d+)-/);return t?`FB-${t[1]}`:"FB-???"}function Gd(e){return`FB-${e.toString().padStart(3,"0")}`}function _Se(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&&!Bb.includes(r.status))return{ok:!1,error:`Error: status must be one of: ${Bb.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=te(cr(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")),TZ(a),In(s.path,Ct.default.stringify(` +`,o))}}X0(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 Nbt(e){let t=e.match(/^(\d+)-/);return t?`FB-${t[1]}`:"FB-???"}function Gd(e){return`FB-${e.toString().padStart(3,"0")}`}function TSe(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&&!Bb.includes(r.status))return{ok:!1,error:`Error: status must be one of: ${Bb.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=te(cr(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")),TZ(a),In(s.path,Ct.default.stringify(` ${s.body} -`,a)),{ok:!0,updated_fields:o}}function TSe(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=pv(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:mn()},l=[...Array.isArray(s.data.replies)?s.data.replies:[],c],d={...s.data,replies:l};return i.close_as_answered&&(d.closed_at||(d.closed_at=new Date().toISOString()),d.resolution||(d.resolution="answered")),In(s.path,Ct.default.stringify(` +`,a)),{ok:!0,updated_fields:o}}function vSe(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=pv(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:mn()},l=[...Array.isArray(s.data.replies)?s.data.replies:[],c],d={...s.data,replies:l};return i.close_as_answered&&(d.closed_at||(d.closed_at=new Date().toISOString()),d.resolution||(d.resolution="answered")),In(s.path,Ct.default.stringify(` ${s.body} -`,d)),{ok:!0,reply_index:l.length-1,status:np(d)}}function L9n(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(` +`,d)),{ok:!0,reply_index:l.length-1,status:np(d)}}function F9n(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 vSe(e,t,n){let r=bc(e,t,n);if(!r)return null;if(!(r.data.closure_reply_unread===!0))return{ok:!0,already_dismissed:!0};let s={...r.data,closure_reply_unread:!1};return In(r.path,Ct.default.stringify(` +`,o)),{bolt:s}}function RSe(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 RZ(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."};X0(i.path);let a=Q0(i.path),c=i.filename.match(/^(\d+-.+)\.md$/);if(c){let u=c[1];for(let l of["png","jpg","jpeg","webp"]){let d=te(a,`${u}.${l}`);if(ue(d))try{X0(d)}catch{}}}return{ok:!0}}function $0(){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=te(i,c,"SKILL.md");if(ue(u)){t.add(c);try{let l=xe(u,"utf8"),{data:d}=re(l);e.push({slug:c,name:d.name||c,description:d.description||"",source:s})}catch{}}}}n(te(process.cwd(),".claude","skills"),"project");try{let i=te(G3n(),".claude","plugins");if(ue(i))for(let s of an(i,{withFileTypes:!0}))s.isDirectory()&&n(te(i,s.name,"skills"),"global")}catch{}let r=nn();return r&&n(te(r,"skills"),"plugin"),e}function jD(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 U9n(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 F9n(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 RZ(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."};X0(i.path);let a=Q0(i.path),c=i.filename.match(/^(\d+-.+)\.md$/);if(c){let u=c[1];for(let l of["png","jpg","jpeg","webp"]){let d=te(a,`${u}.${l}`);if(ue(d))try{X0(d)}catch{}}}return{ok:!0}}function $0(){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=te(i,c,"SKILL.md");if(ue(u)){t.add(c);try{let l=xe(u,"utf8"),{data:d}=re(l);e.push({slug:c,name:d.name||c,description:d.description||"",source:s})}catch{}}}}n(te(process.cwd(),".claude","skills"),"project");try{let i=te(W3n(),".claude","plugins");if(ue(i))for(let s of an(i,{withFileTypes:!0}))s.isDirectory()&&n(te(i,s.name,"skills"),"global")}catch{}let r=nn();return r&&n(te(r,"skills"),"plugin"),e}function jD(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 j9n(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 H9n(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 j9n(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 H9n(e){let t=e.task,n=kI(),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=j9n(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=es(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)=>U9n(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(F9n(b)),m.push("```"),m.push("")}return{message:m.join(` -`),studio:s,stage:c}}function ASe(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&&Lft(i.CLAUDE_SESSION_ID);let s=jD(t);if(s)return s;switch(e){case"haiku_intent_get":{let o=Be(t,fge,"haiku_intent_get");if(o)return o;let a=te(ce(t.slug),"intent.md");if(!ue(a))return r({found:!1,field:t.field,value:null});let{data:c}=re(xe(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,pge,"haiku_intent_list");if(o)return o;let a=ve(),c=te(a,"intents");if(!ue(c))return n("[]");let u=t.include_archived===!0,l=Fg(c,{includeArchived:u}),d=_v(),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=KL(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,Bge,"haiku_stage_get");if(o)return o;let a=t.intent,c=t.stage,u=t.field,l=te(ce(a),"intent.md"),d=ue(l)?re(xe(l,"utf8")).data:{},f=d.studio||"",p=typeof d.mode=="string"&&d.mode.length>0?d.mode:"continuous",h=bv({slug:a,studio:f,stage:c,intentDir:ce(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,$ge,"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: [${Db.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(xe(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,Qge,"haiku_unit_set");if(o)return o;let a=t.field,c=t.value,u=gb();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(xe(d,"utf8")),h=J0(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=rv.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 Ne(d,a,c),n("ok")}case"haiku_unit_list":{let o=Be(t,eye,"haiku_unit_list");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=te(cr(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(xe(te(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,nye,"haiku_unit_start");if(o)return o;let a=bZ(t.intent,t.unit),c=t.stage||a?.stage||g1(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(xe(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=hZ(t.intent,c);return n(A?`ok (already started by the engine) +`)}function q9n(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 B9n(e){let t=e.task,n=kI(),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=q9n(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=es(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)=>j9n(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(H9n(b)),m.push("```"),m.push("")}return{message:m.join(` +`),studio:s,stage:c}}function wSe(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&&Fft(i.CLAUDE_SESSION_ID);let s=jD(t);if(s)return s;switch(e){case"haiku_intent_get":{let o=Be(t,pge,"haiku_intent_get");if(o)return o;let a=te(ce(t.slug),"intent.md");if(!ue(a))return r({found:!1,field:t.field,value:null});let{data:c}=re(xe(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,hge,"haiku_intent_list");if(o)return o;let a=ve(),c=te(a,"intents");if(!ue(c))return n("[]");let u=t.include_archived===!0,l=Fg(c,{includeArchived:u}),d=_v(),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=KL(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,zge,"haiku_stage_get");if(o)return o;let a=t.intent,c=t.stage,u=t.field,l=te(ce(a),"intent.md"),d=ue(l)?re(xe(l,"utf8")).data:{},f=d.studio||"",p=typeof d.mode=="string"&&d.mode.length>0?d.mode:"continuous",h=bv({slug:a,studio:f,stage:c,intentDir:ce(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,eye,"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: [${Db.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(xe(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,$ge,"haiku_unit_set");if(o)return o;let a=t.field,c=t.value,u=gb();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(xe(d,"utf8")),h=J0(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=rv.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 Ne(d,a,c),n("ok")}case"haiku_unit_list":{let o=Be(t,tye,"haiku_unit_list");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=te(cr(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(xe(te(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,rye,"haiku_unit_start");if(o)return o;let a=bZ(t.intent,t.unit),c=t.stage||a?.stage||g1(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(xe(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=hZ(t.intent,c);return n(A?`ok (already started by the engine) ${A}`:"ok (already started by the engine)")}let T=hZ(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(xe(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)Kh(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=R1(t.intent,c)[0]||"";Ne(l,"started_at",mn()),y1(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&&Bi(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=hZ(t.intent,c);return n((m?`ok -${m}`:"ok")+fZ(h))}case"haiku_unit_advance_hat":{let o=Be(t,rye,"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=bZ(t.intent,t.unit);if(!C)return r({error:"unit_not_found",message:`Unit '${t.unit}' not found in any stage of intent '${t.intent}'.`},{isError:!0});u=C.path,c=C.stage}let l=ea(t.intent,c);if(l)return l;let d=(C,L,G)=>L&&L.length>0?`${C} +${m}`:"ok")+fZ(h))}case"haiku_unit_advance_hat":{let o=Be(t,iye,"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=bZ(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} --- @@ -742,7 +742,7 @@ Wave still has work \u2014 spawn the block below as your next Task call: ${L}`:`${C} -Wave done \u2014 call \`haiku_run_next { intent: "${G}" }\` for the next instruction.`,f=xe(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=ce(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=>!Kh(t.intent,t.unit,W));if(G.length>0){let W=t.state_file;return W&&Bi(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=oSe(t.intent,c,t.unit),E=b.indexOf(g)+1;if(E>=b.length){{let z=`${ce(t.intent)}/intent.md`,{data:J}=re(xe(z,"utf8")),oe=J.studio||"",de=oe?mZ(t.intent,oe,c,t.unit):null;if(de){let _e=t.state_file;_e&&Bi(_e,{event:"unit_scope_violation",intent:t.intent,stage:c,unit:t.unit,violations:de.violations});let kt=[...de.scope.intentGlobs.map(Ue=>` - \`${Ue}\` (intent-relative)`),...de.scope.repoGlobs.map(Ue=>` - \`${Ue}\` (repo-relative)`),de.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=xe(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=ce(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=>!Kh(t.intent,t.unit,W));if(G.length>0){let W=t.state_file;return W&&Bi(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=aSe(t.intent,c,t.unit),E=b.indexOf(g)+1;if(E>=b.length){{let z=`${ce(t.intent)}/intent.md`,{data:J}=re(xe(z,"utf8")),oe=J.studio||"",de=oe?mZ(t.intent,oe,c,t.unit):null;if(de){let _e=t.state_file;_e&&Bi(_e,{event:"unit_scope_violation",intent:t.intent,stage:c,unit:t.unit,violations:de.violations});let kt=[...de.scope.intentGlobs.map(Ue=>` - \`${Ue}\` (intent-relative)`),...de.scope.repoGlobs.map(Ue=>` - \`${Ue}\` (repo-relative)`),de.scope.repoWildcard?" - any repo-level path (stage declares scope: repo with wildcard location)":""].filter(Boolean).join(` `);return r({error:"unit_scope_violation",violations:de.violations,scope:de.scope,message:`Cannot complete unit: ${de.violations.length} file(s) were written outside the stage's declared scope. Out-of-bounds files: @@ -756,9 +756,9 @@ To resolve (in the unit worktree): (a) drop ALL unit commits with \`git reset -- NOTE: \`git checkout HEAD -- \` does NOT work on committed files (it's a no-op when the file matches HEAD). Use one of the above. -Alternatively: (d) update the stage's output template \`location:\` / \`scope:\` if this pattern is legitimate, or (e) log a stage_revisit feedback at the upstream stage via \`haiku_feedback\` with \`resolution: "stage_revisit"\` if the scope itself is wrong.`},{isError:!0})}}let C=xe(u,"utf8"),{data:L}=re(C),G=L.outputs||[];if(G.length===0){let z=t.state_file;return z&&Bi(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(Kh(t.intent,t.unit,z)){q.push(z);continue}let J=_Z(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=xe(u,"utf8"),{data:J,content:oe}=(0,Ct.default)(z);In(u,Ct.default.stringify(oe,{...J,outputs:q}));let de=t.state_file;de&&Bi(de,{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&&Bi(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&&Bi(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})}yZ(u,"advance",t.message),Ke("haiku.unit.completed",{intent:t.intent,stage:c,unit:t.unit});{let z=t.state_file;z&&Bi(z,{event:"unit_completed",intent:t.intent,stage:c,unit:t.unit})}let B=SZ(`haiku: complete unit ${t.unit}`),F=t.intent,V=`haiku/${F}/${c}`,U=Hb(F,c,()=>Ipe(F,t.unit,c));if(!U.success){let z=te(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(de=>de.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})`,j=D3(ce(t.intent),c),H=`completed (last hat) \u2014 unit branch merged into ${V}${M}. +Alternatively: (d) update the stage's output template \`location:\` / \`scope:\` if this pattern is legitimate, or (e) log a stage_revisit feedback at the upstream stage via \`haiku_feedback\` with \`resolution: "stage_revisit"\` if the scope itself is wrong.`},{isError:!0})}}let C=xe(u,"utf8"),{data:L}=re(C),G=L.outputs||[];if(G.length===0){let z=t.state_file;return z&&Bi(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(Kh(t.intent,t.unit,z)){q.push(z);continue}let J=_Z(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=xe(u,"utf8"),{data:J,content:oe}=(0,Ct.default)(z);In(u,Ct.default.stringify(oe,{...J,outputs:q}));let de=t.state_file;de&&Bi(de,{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&&Bi(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&&Bi(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})}yZ(u,"advance",t.message),Ke("haiku.unit.completed",{intent:t.intent,stage:c,unit:t.unit});{let z=t.state_file;z&&Bi(z,{event:"unit_completed",intent:t.intent,stage:c,unit:t.unit})}let B=SZ(`haiku: complete unit ${t.unit}`),F=t.intent,V=`haiku/${F}/${c}`,U=Hb(F,c,()=>xpe(F,t.unit,c));if(!U.success){let z=te(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(de=>de.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})`,j=D3(ce(t.intent),c),H=`completed (last hat) \u2014 unit branch merged into ${V}${M}. ${t.unit}: ${g} done \u2014 unit complete`+(j?` -${j}`:"")+fZ(B),K=(()=>{let z=te(ce(t.intent),"intent.md");if(!ue(z))return"";let J=(0,Ct.default)(xe(z,"utf8")).data;return typeof J.studio=="string"?J.studio:""})(),ee=kbt(t.intent,c,t.unit),se=Math.max(0,fv-ee),Le=K&&se>0?W0(t.intent,()=>wbt(t.intent,K,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=`${H} +${j}`:"")+fZ(B),K=(()=>{let z=te(ce(t.intent),"intent.md");if(!ue(z))return"";let J=(0,Ct.default)(xe(z,"utf8")).data;return typeof J.studio=="string"?J.studio:""})(),ee=xbt(t.intent,c,t.unit),se=Math.max(0,fv-ee),Le=K&&se>0?W0(t.intent,()=>Ibt(t.intent,K,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=`${H} --- @@ -780,11 +780,11 @@ ${W.violations.map(Q=>` - ${Q}`).join(` Allowed paths (stage output templates + workflow engine metadata): ${q} -Revert the out-of-bounds commits in the unit worktree: drop all unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${c})\`, or amend a single file out with \`git rm && git commit --amend --no-edit\`, or \`git revert --no-edit \` for a whole commit. NOTE: \`git checkout HEAD -- \` is a no-op on committed files. Or update the stage's output template if this pattern is legitimate. Do NOT advance with scope violations \u2014 downstream hats will run blind.`},{isError:!0})}}let T=b[E];yZ(u,"advance",t.message),y1(u,T);{let C=t.state_file;C&&Bi(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=SZ(`haiku: advance hat to ${T} on ${t.unit}`);ppe(t.intent,t.unit),Xr(t.intent,t.state_file);let A=hZ(t.intent,c),x=`${t.unit}: ${g} \u2192 ${T} (hat ${E+1}/${b.length})`,k=D3(ce(t.intent),c),P=`advanced to ${T} +Revert the out-of-bounds commits in the unit worktree: drop all unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${c})\`, or amend a single file out with \`git rm && git commit --amend --no-edit\`, or \`git revert --no-edit \` for a whole commit. NOTE: \`git checkout HEAD -- \` is a no-op on committed files. Or update the stage's output template if this pattern is legitimate. Do NOT advance with scope violations \u2014 downstream hats will run blind.`},{isError:!0})}}let T=b[E];yZ(u,"advance",t.message),y1(u,T);{let C=t.state_file;C&&Bi(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=SZ(`haiku: advance hat to ${T} on ${t.unit}`);hpe(t.intent,t.unit),Xr(t.intent,t.state_file);let A=hZ(t.intent,c),x=`${t.unit}: ${g} \u2192 ${T} (hat ${E+1}/${b.length})`,k=D3(ce(t.intent),c),P=`advanced to ${T} ${x}`+(k?` ${k}`:"")+(A?` -${A}`:"")+fZ(R),N=cbt(t.intent,t.unit);return n(d(P,N,t.intent))}case"haiku_unit_reject_hat":{let o=Be(t,iye,"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=bZ(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(xe(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=mbt(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)Kh(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=lSe(g),A=gbt(f,h,R);if(R.length>0&&A+1>=gZ&&m+1<=Ev){let B=null;try{let V=`Reject-loop escalation: ${(g||"").trim().slice(0,80)||"unit stuck on same reason"}`,U=`Unit \`${t.unit}\` (stage \`${u}\`) has been rejected ${A+1} consecutive times by hat \`${h}\` for substantially the same reason. The doer cannot fix what requires a spec change, an open question, or user input. +${A}`:"")+fZ(R),N=lbt(t.intent,t.unit);return n(d(P,N,t.intent))}case"haiku_unit_reject_hat":{let o=Be(t,sye,"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=bZ(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(xe(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=ybt(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)Kh(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=dSe(g),A=Sbt(f,h,R);if(R.length>0&&A+1>=gZ&&m+1<=Ev){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**: @@ -798,7 +798,7 @@ Out-of-bounds files: ${U.violations.map(M=>` - ${M}`).join(` `)} -Revert the out-of-bounds commits in the unit worktree: drop all unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${u})\`, or amend a single file out with \`git rm && git commit --amend --no-edit\`, or \`git revert --no-edit \` for a whole commit. NOTE: \`git checkout HEAD -- \` is a NO-OP on committed files and will not clear the violation. After the revert, call reject_hat again.`},{isError:!0})}let x=oSe(t.intent,u,t.unit),k=re(xe(`${ce(t.intent)}/intent.md`,"utf8")).data.studio||"",P=k?Du(k,u):{},{targetHat:N}=Zpe(x,h,{assessorToFirst:!0,assessorHat:Rbt,roleOf:B=>P[B]?.role});if(Go.modelSelection){let B=d.model,F=Vfe(B);B&&F&&(Ne(c,"model_original",B),Ne(c,"model",F),console.error(`[haiku] model escalated: ${B} \u2192 ${F} (hat rejected, iteration ${m+1})`))}let C=g;yZ(c,"reject",C),y1(c,N);{let B=t.state_file;B&&Bi(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=cbt(t.intent,t.unit),W=T?`${T} `:"",$=D3(ce(t.intent),u),q=`${W}rejected \u2014 back to ${N} (iteration ${m+1}). Reason: ${C??"(none)"} +Revert the out-of-bounds commits in the unit worktree: drop all unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${u})\`, or amend a single file out with \`git rm && git commit --amend --no-edit\`, or \`git revert --no-edit \` for a whole commit. NOTE: \`git checkout HEAD -- \` is a NO-OP on committed files and will not clear the violation. After the revert, call reject_hat again.`},{isError:!0})}let x=aSe(t.intent,u,t.unit),k=re(xe(`${ce(t.intent)}/intent.md`,"utf8")).data.studio||"",P=k?Du(k,u):{},{targetHat:N}=Jpe(x,h,{assessorToFirst:!0,assessorHat:wbt,roleOf:B=>P[B]?.role});if(Go.modelSelection){let B=d.model,F=Wfe(B);B&&F&&(Ne(c,"model_original",B),Ne(c,"model",F),console.error(`[haiku] model escalated: ${B} \u2192 ${F} (hat rejected, iteration ${m+1})`))}let C=g;yZ(c,"reject",C),y1(c,N);{let B=t.state_file;B&&Bi(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=lbt(t.intent,t.unit),W=T?`${T} `:"",$=D3(ce(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})`+($?` ${$}`:"")+fZ(L),Q=G&&G.length>0?`${q} @@ -808,8 +808,8 @@ Wave still has work \u2014 spawn the block below as your next Task call: ${G}`:`${q} -Call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;return r({ok:!0,unit:t.unit,stage:u,prev_hat:N,bolt:m+1,reason:C??null,outputs_present:E,outputs_files_present:b,outputs_files_missing:S,next_subagent_dispatch_block:G,message:Q})}case"haiku_unit_read":{let o=Be(t,sye,"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});iSe(c);let{data:u,body:l}=re(xe(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,Vge,"haiku_read_hat");if(o)return o;let a=t.studio,c=t.stage,u=t.hat,l=t.fix===!0,d=AI(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,Wge,"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,Yge,"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,Kge,"haiku_read_intent");if(o)return o;let a=t.intent,c=Yh(a);return c===null?r({error:"intent_not_found",intent:a,message:`No intent.md for '${a}'.`},{isError:!0}):r({intent:a,body:c})}case"haiku_read_discovery":{let o=Be(t,Zge,"haiku_read_discovery");if(o)return o;let a=t.studio,c=t.stage,u=t.template,l=wI(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,Jge,"haiku_read_phase");if(o)return o;let a=t.studio,c=t.stage,u=t.phase,l=XK(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,Xge,"haiku_read_output");if(o)return o;let a=t.studio,c=t.stage,u=t.name,l=JK(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,oye,"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(xe(c,"utf8")),l=J0(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}):(eSe(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,aye,"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(xe(p,"utf8")),k=J0(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=te(cr(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(xe(te(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=te(ce(c),"intent.md");if(ue(x)){let k=re(xe(x,"utf8")).data.studio||"",P=k?si(k):null;if(P){let N=es(P.dir,u);N&&N.data.produces==="build"&&(b="build")}}}catch{}let S=_bt(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(xe(te(m,x),"utf8"));E[k]=Array.isArray(P.depends_on)?P.depends_on:[]}E[l]=Array.isArray(f.depends_on)?f.depends_on:[];let _=Tbt(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=y9n(d);if(T)return r(T,{isError:!0});let R=S9n(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,mge,"haiku_reconciliation_acknowledge");if(o)return o;let a=t.intent,u=t.stage||g1(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=te(ce(a),"stages",u);Dl(d,{recursive:!0});let f=te(d,"upstream-reconciliation.json");return S1(f,{acknowledged:!0,acknowledged_at:mn(),rationale:l}),obt(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:mn()}),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,gge,"haiku_decision_record");if(o)return o;let a=t.intent,u=t.stage||g1(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=te(ce(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=te(l,"no-decisions.json");return S1(b,{declared:!0,declared_at:mn(),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});obt(a,u,{decision:p,options:h,choice:m,source:g,rationale:f||null,recorded_at:mn()});let y=I3(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,yge,"haiku_knowledge_list");if(o)return o;let a=te(ce(t.intent),"knowledge");if(!ue(a))return r({files:[]});let c=an(a).filter(u=>u.endsWith(".md"));return r({files:c})}case"haiku_knowledge_read":{let o=Be(t,Sge,"haiku_knowledge_read");if(o)return o;let a=te(ce(t.intent),"knowledge",t.name);return ue(a)?r({found:!0,name:t.name,content:xe(a,"utf8")}):r({found:!1,name:t.name,content:""})}case"haiku_skill_list":{let o=Be(t,zL,"haiku_skill_list");return o||r({skills:$0()})}case"haiku_studio_list":{let o=Be(t,zL,"haiku_studio_list");if(o)return o;let a=kI().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,bge,"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,Ege,"haiku_studio_stage_get");if(o)return o;let a=si(t.studio);if(!a)return r({found:!1});let c=t.stage,u=te(a.path,"stages",c,"STAGE.md");if(!ue(u))return r({found:!1});let l=xe(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,_ge,"haiku_settings_get");if(o)return o;let a=t.field,c="";try{c=te(ve(),"settings.yml")}catch{}if(!(c&&ue(c)))return r({found:!1,field:a,value:null});let u=xe(c,"utf8"),l=abt(u),d=A9n(l,a);return r({found:d!=null,field:a,value:d??null})}case"haiku_settings_set":{let o=Be(t,Tge,"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=te(ve(),"settings.yml")}catch(m){return u("haiku_root_not_found",`No .haiku/ directory found: ${m.message}`)}let f={...ue(l)?abt(xe(l,"utf8")):{}};if(c==null?delete f[a]:f[a]=c,!E9n(f)){let m=_9n()[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,hge,"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=gb();if(!d&&nv.includes(c))return l("intent_field_engine_only",`Field '${c}' is workflow engine-managed \u2014 agents cannot set it. Engine-only fields: ${nv.join(", ")}.`);if(!d&&OY.includes(c))return l("intent_field_immutable",`Field '${c}' is immutable after creation.`);if(!tv.includes(c))return l("intent_field_unknown",`Field '${c}' is not in INTENT_FRONTMATTER_SCHEMA. Allowed: ${tv.filter(h=>!OY.includes(h)).join(", ")}.`);let f="";try{f=te(ce(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(!x0(p)){let h=x0.errors?.[0];return l("intent_field_type_mismatch",`Field '${c}' fails INTENT_FRONTMATTER_SCHEMA validation: ${h?.instancePath||"(root)"} ${h?.message||"invalid"}.`)}return Ne(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,zge,"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,vge,"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=te(u,"intents");if(!ue(l))return r({markdown:"No intents found.",studio:c});let d=Fg(l),f=m=>{if(m.length===0)return 0;let g=[...m].sort((b,S)=>b-S),y=Math.floor(g.length/2);return g.length%2!==0?g[y]:(g[y-1]+g[y])/2},p=new Map;for(let{slug:m,data:g}of d){let y=g.studio||"unassigned";if(a&&y!==a)continue;p.has(y)||p.set(y,[]);let b=typeof g.plugin_version=="string",S=g.status||"",E=b?typeof g.sealed_at=="string"&&g.sealed_at?"completed":"active":"",_=S||E||"unknown";p.get(y)?.push({slug:m,status:_,data:g})}if(p.size===0)return r({markdown:a?`No intents found for studio '${a}'.`:"No intents found.",studio:c});let h=`# Capacity Report +Call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;return r({ok:!0,unit:t.unit,stage:u,prev_hat:N,bolt:m+1,reason:C??null,outputs_present:E,outputs_files_present:b,outputs_files_missing:S,next_subagent_dispatch_block:G,message:Q})}case"haiku_unit_read":{let o=Be(t,oye,"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});sSe(c);let{data:u,body:l}=re(xe(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,Wge,"haiku_read_hat");if(o)return o;let a=t.studio,c=t.stage,u=t.hat,l=t.fix===!0,d=AI(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,Kge,"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,Yge,"haiku_read_intent");if(o)return o;let a=t.intent,c=Yh(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,Jge,"haiku_read_discovery");if(o)return o;let a=t.studio,c=t.stage,u=t.template,l=wI(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,Xge,"haiku_read_phase");if(o)return o;let a=t.studio,c=t.stage,u=t.phase,l=XK(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,Qge,"haiku_read_output");if(o)return o;let a=t.studio,c=t.stage,u=t.name,l=JK(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,aye,"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(xe(c,"utf8")),l=J0(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}):(tSe(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,cye,"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(xe(p,"utf8")),k=J0(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=te(cr(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(xe(te(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=te(ce(c),"intent.md");if(ue(x)){let k=re(xe(x,"utf8")).data.studio||"",P=k?si(k):null;if(P){let N=es(P.dir,u);N&&N.data.produces==="build"&&(b="build")}}}catch{}let S=vbt(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(xe(te(m,x),"utf8"));E[k]=Array.isArray(P.depends_on)?P.depends_on:[]}E[l]=Array.isArray(f.depends_on)?f.depends_on:[];let _=Rbt(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=b9n(d);if(T)return r(T,{isError:!0});let R=E9n(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,gge,"haiku_reconciliation_acknowledge");if(o)return o;let a=t.intent,u=t.stage||g1(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=te(ce(a),"stages",u);Dl(d,{recursive:!0});let f=te(d,"upstream-reconciliation.json");return S1(f,{acknowledged:!0,acknowledged_at:mn(),rationale:l}),cbt(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:mn()}),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,yge,"haiku_decision_record");if(o)return o;let a=t.intent,u=t.stage||g1(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=te(ce(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=te(l,"no-decisions.json");return S1(b,{declared:!0,declared_at:mn(),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});cbt(a,u,{decision:p,options:h,choice:m,source:g,rationale:f||null,recorded_at:mn()});let y=I3(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,Sge,"haiku_knowledge_list");if(o)return o;let a=te(ce(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,bge,"haiku_knowledge_read");if(o)return o;let a=te(ce(t.intent),"knowledge",t.name);return ue(a)?r({found:!0,name:t.name,content:xe(a,"utf8")}):r({found:!1,name:t.name,content:""})}case"haiku_skill_list":{let o=Be(t,zL,"haiku_skill_list");return o||r({skills:$0()})}case"haiku_studio_list":{let o=Be(t,zL,"haiku_studio_list");if(o)return o;let a=kI().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,Ege,"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,_ge,"haiku_studio_stage_get");if(o)return o;let a=si(t.studio);if(!a)return r({found:!1});let c=t.stage,u=te(a.path,"stages",c,"STAGE.md");if(!ue(u))return r({found:!1});let l=xe(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,Tge,"haiku_settings_get");if(o)return o;let a=t.field,c="";try{c=te(ve(),"settings.yml")}catch{}if(!(c&&ue(c)))return r({found:!1,field:a,value:null});let u=xe(c,"utf8"),l=ubt(u),d=k9n(l,a);return r({found:d!=null,field:a,value:d??null})}case"haiku_settings_set":{let o=Be(t,vge,"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=te(ve(),"settings.yml")}catch(m){return u("haiku_root_not_found",`No .haiku/ directory found: ${m.message}`)}let f={...ue(l)?ubt(xe(l,"utf8")):{}};if(c==null?delete f[a]:f[a]=c,!T9n(f)){let m=v9n()[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,mge,"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=gb();if(!d&&nv.includes(c))return l("intent_field_engine_only",`Field '${c}' is workflow engine-managed \u2014 agents cannot set it. Engine-only fields: ${nv.join(", ")}.`);if(!d&&OY.includes(c))return l("intent_field_immutable",`Field '${c}' is immutable after creation.`);if(!tv.includes(c))return l("intent_field_unknown",`Field '${c}' is not in INTENT_FRONTMATTER_SCHEMA. Allowed: ${tv.filter(h=>!OY.includes(h)).join(", ")}.`);let f="";try{f=te(ce(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(!x0(p)){let h=x0.errors?.[0];return l("intent_field_type_mismatch",`Field '${c}' fails INTENT_FRONTMATTER_SCHEMA validation: ${h?.instancePath||"(root)"} ${h?.message||"invalid"}.`)}return Ne(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,Gge,"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,Rge,"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=te(u,"intents");if(!ue(l))return r({markdown:"No intents found.",studio:c});let d=Fg(l),f=m=>{if(m.length===0)return 0;let g=[...m].sort((b,S)=>b-S),y=Math.floor(g.length/2);return g.length%2!==0?g[y]:(g[y-1]+g[y])/2},p=new Map;for(let{slug:m,data:g}of d){let y=g.studio||"unassigned";if(a&&y!==a)continue;p.has(y)||p.set(y,[]);let b=typeof g.plugin_version=="string",S=g.status||"",E=b?typeof g.sealed_at=="string"&&g.sealed_at?"completed":"active":"",_=S||E||"unknown";p.get(y)?.push({slug:m,status:_,data:g})}if(p.size===0)return r({markdown:a?`No intents found for studio '${a}'.`:"No intents found.",studio:c});let h=`# Capacity Report `;for(let[m,g]of p){let y=g.filter(E=>E.status==="completed").length,b=g.filter(E=>E.status==="active").length;h+=` ## Studio: ${m} `,h+=`- Total intents: ${g.length} @@ -819,7 +819,7 @@ Call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;ret | Stage | Units | Median Iterations | |-------|-------|-------------------| `;for(let[E,_]of S)h+=`| ${E} | ${_.length} | ${f(_)} | -`}}return r({markdown:h,studio:c})}case"haiku_zap":{let o=Be(t,Rge,"haiku_zap");if(o)return o;let a=H9n(t);return r(a,a.error?{isError:!0}:void 0)}case"haiku_review":{let o=Be(t,Age,"haiku_review");if(o)return o;let a=Zo();try{let m=lZ("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=lZ("git",["diff",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe",maxBuffer:10485760}).stdout||"",u=lZ("git",["diff","--stat",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||"",l=lZ("git",["diff","--name-only",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||""}catch{}let d=1e5;c.length>d&&(c=`${c.slice(0,d)} +`}}return r({markdown:h,studio:c})}case"haiku_zap":{let o=Be(t,Age,"haiku_zap");if(o)return o;let a=B9n(t);return r(a,a.error?{isError:!0}:void 0)}case"haiku_review":{let o=Be(t,wge,"haiku_review");if(o)return o;let a=Zo();try{let m=lZ("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=lZ("git",["diff",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe",maxBuffer:10485760}).stdout||"",u=lZ("git",["diff","--stat",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||"",l=lZ("git",["diff","--name-only",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||""}catch{}let d=1e5;c.length>d&&(c=`${c.slice(0,d)} ... [TRUNCATED at 100k chars] ...`);let f="",p=process.cwd();for(let m of["REVIEW.md","CLAUDE.md"]){let g=te(p,m);ue(g)&&(f+=` ### ${m} @@ -848,7 +848,7 @@ ${c||"No changes detected."} `,h+=`2. Collect findings, deduplicate across agents `,h+=`3. Fix all HIGH severity findings before delivery `,h+=`4. Report findings summary to the user -`,n(h)}case"haiku_backlog":{let o=Be(t,kge,"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=te(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,Ige,"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=te(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 | |---|------|----------|---------| @@ -880,7 +880,7 @@ For each item, ask the user and apply their choice. `,d+=`1. Read the backlog item file `,d+=`2. Use /haiku:haiku-start to create an intent from its description `,d+=`3. Delete the backlog file after the intent is created -`,c(d)}default:return c(`Unknown backlog action: '${a}'. Valid actions: list, add, review, promote.`)}}case"haiku_seed":{let o=Be(t,Ige,"haiku_seed");if(o)return o;let a=t.action||"list",c;try{c=ve()}catch{return n("No .haiku directory found.")}let u=te(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(xe(te(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,xge,"haiku_seed");if(o)return o;let a=t.action||"list",c;try{c=ve()}catch{return n("No .haiku directory found.")}let u=te(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(xe(te(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}) @@ -906,7 +906,7 @@ Evaluate each planted seed's trigger condition against the current project state `}return f+=`--- For each seed: if the trigger condition is met, update its status to 'surfaced'. If not, leave as 'planted'. -`,n(f)}default:return n(`Unknown seed action: '${a}'. Valid actions: list, plant, check.`)}}case"haiku_release_notes":{let o=Be(t,xge,"haiku_release_notes");if(o)return o;let a=t.version||"",c=a||null,u=b=>r({markdown:b,version:c}),l="",d=nn();if(d){let b=te(d,"CHANGELOG.md");ue(b)&&(l=b)}if(!l){let b=process.cwd();for(let S=0;S<20;S++){let E=te(b,"CHANGELOG.md");if(ue(E)){l=E;break}let _=te(b,"..");if(_===b)break;b=_}}if(!l)return u("No CHANGELOG.md found.");let f=xe(l,"utf8"),p=/^## \[([^\]]+)\]/gm,h=[],m=p.exec(f);for(;m!==null;)h.push({version:m[1],start:m.index}),m=p.exec(f);if(h.length===0)return u("No versioned entries found in CHANGELOG.md.");if(a){let b=h.findIndex(_=>_.version===a);if(b===-1)return u(`Version '${a}' not found in CHANGELOG.md. Available: ${h.slice(0,10).map(_=>_.version).join(", ")}`);let S=b+1r({markdown:b,version:c}),l="",d=nn();if(d){let b=te(d,"CHANGELOG.md");ue(b)&&(l=b)}if(!l){let b=process.cwd();for(let S=0;S<20;S++){let E=te(b,"CHANGELOG.md");if(ue(E)){l=E;break}let _=te(b,"..");if(_===b)break;b=_}}if(!l)return u("No CHANGELOG.md found.");let f=xe(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?hbt():{moved:[],skipped:[],cleanedSkeletons:[]},f=Q3n(d);if(Ee()&&!a&&!u)try{let{summaries:m,mainline:g,archivedSummary:y}=$3n(c);if(m.length>0||y){let b=t9n(m,g,y);return l(f?`${f} +`,u(y)}case"haiku_repair":{let o=Be(t,Nge,"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?gbt():{moved:[],skipped:[],cleanedSkeletons:[]},f=e9n(d);if(Ee()&&!a&&!u)try{let{summaries:m,mainline:g,archivedSummary:y}=t9n(c);if(m.length>0||y){let b=r9n(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{ve()}catch{return l(f?`${f} -No .haiku/ directory found.`:"No .haiku/ directory found.")}let p;try{p=pbt(void 0,a,c)}catch(m){let g=`Repair failed: ${m instanceof Error?m.message:String(m)}`;return l(f?`${f} +No .haiku/ directory found.`:"No .haiku/ directory found.")}let p;try{p=mbt(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=J3n(p);return l(f?`${f} -${h}`:h)}case"haiku_feedback":{let o=Be(t,Jme,"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=te(ce(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=cr(a,c);if(!ue(k)){let{data:P}=re(xe(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=Sbt(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(pZ(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,nge,"haiku_feedback_delete");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=RZ(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(pZ(p,f))}case"haiku_feedback_move":{let o=Be(t,rge,"haiku_feedback_move");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=te(ce(a),"intent.md");if(!ue(d))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};if(l){let{data:S}=re(xe(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=xbt(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(pZ(b,y))}case"haiku_feedback_reject":{let o=Be(t,ige,"haiku_feedback_reject");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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()};TZ(h);let m=`${f.body} +No intents found.`:"No intents found.");let h=Q3n(p);return l(f?`${f} +${h}`:h)}case"haiku_feedback":{let o=Be(t,Xme,"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=te(ce(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=cr(a,c);if(!ue(k)){let{data:P}=re(xe(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=Ebt(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(pZ(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,rge,"haiku_feedback_delete");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=RZ(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(pZ(p,f))}case"haiku_feedback_move":{let o=Be(t,ige,"haiku_feedback_move");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=te(ce(a),"intent.md");if(!ue(d))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};if(l){let{data:S}=re(xe(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=Pbt(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(pZ(b,y))}case"haiku_feedback_reject":{let o=Be(t,sge,"haiku_feedback_reject");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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()};TZ(h);let m=`${f.body} --- **Rejection reason:** ${l}`;In(f.path,Ct.default.stringify(` ${m} -`,h));let g=wt(c?`feedback: reject ${u} in ${c}`:`feedback: reject ${u} (intent-scope)`);f3(a,c||"intent",u);let y=null;try{let S=te(ce(a),"intent.md"),E=ue(S)?re(xe(S,"utf8")).data.studio??"":"";E&&(y=W0(a,()=>$ye(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(pZ(b,g))}case"haiku_feedback_list":{let o=Be(t,sge,"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=te(ce(a),"intent.md");if(!ue(l))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};let d=ea(a,c??g1(a));if(d)return d;let f;if(c)f=[c];else{let g=te(ce(a),"stages");ue(g)?f=an(g).filter(y=>ue(te(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,oge,"haiku_feedback_read");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=te(l,S),{data:_,body:T}=re(xe(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});iSe(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,age,"haiku_feedback_write");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(t.feedback_id),l=t.body??"",d=pv(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(!gb()&&(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!gb()&&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,lge,"haiku_feedback_advance_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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 j=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 ${j}.`},{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=te(ce(a),"intent.md"),b="software";if(ue(y)){let{data:j}=re(xe(y,"utf8"));b=j.studio||"software"}if(c){let j=es(b,c);j?.data?.fix_hats&&Array.isArray(j.data.fix_hats)&&(g=j.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 j=(typeof t.reply=="string"?t.reply.trim():"")||(typeof t.message=="string"?t.message.trim():"");if(!j)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 H=Array.isArray(p.iterations)?p.iterations.slice():[],K=H[H.length-1],ee={bolt:E,hat:R,completed_at:mn(),result:"closed",message:j};K&&(K.result===null||K.result===void 0)&&K.hat===R?H[H.length-1]={...K,...ee}:H.push(ee);let se={...p,hat:R,iterations:H,status:"non_actionable",resolution:"non_actionable",closed_at:mn(),closed_by:`${R}:non_actionable`,closure_reply:{text:j,at:mn()},closure_reply_unread:!0};In(f,Ct.default.stringify(`${h.trimEnd()} -`,se)),ci(a),f3(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=$ye(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}': ${j}`+(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:mn(),result:A?"closed":"advanced",...P?{message:P}:{}}:N.push({bolt:E,hat:R,completed_at:mn(),result:A?"closed":"advanced",...P?{message:P}:{}});let G=m,W,$;A?(G="closed",W=`fix-loop:${u}:bolt-${E}`,$=mn()):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:mn()},Q.closure_reply_unread=!0),In(f,Ct.default.stringify(`${h.trimEnd()} -`,Q)),ci(a),A&&OSt({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)hpe(a,B,u);else{SZ(`haiku: close fix-chain ${u}`);let j=Hb(a,B,()=>XD(a,B,u));if(!j.success){let H=Sg(a,B,u);return j.isConflict?r({action:"integrate_fix_chains",intent:a,scope:B,items:[{feedback_id:u}],feedback_id:u,worktree:H,conflict_paths:j.conflictFiles??[],message:`Fix-chain ${u} closed, but landing its code on ${B==="intent"?`haiku/${a}/main`:`stage '${B}'`} produced conflicts on ${(j.conflictFiles??[]).length} file(s): ${(j.conflictFiles??[]).join(", ")}. The merge is left in-progress in the fix-chain worktree (${H}) \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:H,error:j.message,message:`Fix-chain ${u} closed, but the engine could not merge its code into ${B==="intent"?`haiku/${a}/main`:`stage '${B}'`}. Git output: ${j.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 j=te(ce(a),"intent.md");if(!ue(j))return"";let H=(0,Ct.default)(xe(j,"utf8")).data;return typeof H.studio=="string"?H.studio:""})();if(!A&&F&&M)try{let j=T+1===g.length-1;V=VI({slug:a,studio:M,feedbackId:u,stage:c??"",hat:F,terminal:j}),U="Relay the `next_subagent_dispatch_block` field verbatim as your final message."}catch{}else if(A&&M)try{V=W0(a,()=>$ye(a,M)),V&&(U="Relay the `next_subagent_dispatch_block` field verbatim as your final message.")}catch{}if(!V){let j=!1;try{let H=ce(a),K=[te(H,"feedback")],ee=te(H,"stages");if(ue(ee))for(let se of an(ee))K.push(te(ee,se,"feedback"));e:for(let se of K)if(ue(se))for(let Le of an(se).filter(Ae=>Ae.endsWith(".md"))){let Ae=xe(te(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)){j=!0;break e}}}catch{}U=j?"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,dge,"haiku_feedback_reject_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=te(ce(a),"intent.md"),S="software";if(ue(b)){let{data:V}=re(xe(b,"utf8"));S=V.studio||"software"}if(c){let V=es(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):QK(S),{targetHat:N}=Zpe(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:mn(),result:"rejected",message:l||"(no message provided)"}:C.push({bolt:_,hat:A,completed_at:mn(),result:"rejected",message:l||"(no message provided)"});let $,q;if(Go.modelSelection){let V=h.model,U=Vfe(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=VI({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,cge,"haiku_feedback_set_targets");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(t.feedback_id),l=t.target_unit===null||t.target_unit===void 0?null:t.target_unit,d=t.target_invalidates??[],f=typeof t.reasoning=="string"?t.reasoning.trim():"",p=ea(a,c||void 0);if(p)return p;let h=bc(a,c,u);if(!h)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let m=h.data.targets&&typeof h.data.targets=="object"?h.data.targets:null,g=m&&typeof m.unit<"u"&&m.unit!==null?m.unit:null,y=m&&Array.isArray(m.invalidates)?m.invalidates:[];if(g!==null||y.length>0)return r({error:"targets_already_set",feedback_id:u,current_target_unit:g,current_target_invalidates:y,message:`Feedback '${u}' already has classified targets \u2014 once set, immutable per the FB-as-unit architecture. To retarget, reject the FB (haiku_feedback_reject) and create a new one with the correct targets.`},{isError:!0});let b=h.data.status||"pending";if(b==="closed"||b==="rejected")return r({error:"lifecycle_violation",current_status:b,message:`Cannot classify FB '${u}' \u2014 already ${b} (terminal).`},{isError:!0});let S={unit:l,invalidates:d};f&&(S.reasoning=f);let E={...h.data,targets:S};return In(h.path,Ct.default.stringify(` +`,h));let g=wt(c?`feedback: reject ${u} in ${c}`:`feedback: reject ${u} (intent-scope)`);f3(a,c||"intent",u);let y=null;try{let S=te(ce(a),"intent.md"),E=ue(S)?re(xe(S,"utf8")).data.studio??"":"";E&&(y=W0(a,()=>eSe(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(pZ(b,g))}case"haiku_feedback_list":{let o=Be(t,oge,"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=te(ce(a),"intent.md");if(!ue(l))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};let d=ea(a,c??g1(a));if(d)return d;let f;if(c)f=[c];else{let g=te(ce(a),"stages");ue(g)?f=an(g).filter(y=>ue(te(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,age,"haiku_feedback_read");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=te(l,S),{data:_,body:T}=re(xe(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});sSe(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,cge,"haiku_feedback_write");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(t.feedback_id),l=t.body??"",d=pv(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(!gb()&&(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!gb()&&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,dge,"haiku_feedback_advance_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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 j=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 ${j}.`},{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=te(ce(a),"intent.md"),b="software";if(ue(y)){let{data:j}=re(xe(y,"utf8"));b=j.studio||"software"}if(c){let j=es(b,c);j?.data?.fix_hats&&Array.isArray(j.data.fix_hats)&&(g=j.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 j=(typeof t.reply=="string"?t.reply.trim():"")||(typeof t.message=="string"?t.message.trim():"");if(!j)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 H=Array.isArray(p.iterations)?p.iterations.slice():[],K=H[H.length-1],ee={bolt:E,hat:R,completed_at:mn(),result:"closed",message:j};K&&(K.result===null||K.result===void 0)&&K.hat===R?H[H.length-1]={...K,...ee}:H.push(ee);let se={...p,hat:R,iterations:H,status:"non_actionable",resolution:"non_actionable",closed_at:mn(),closed_by:`${R}:non_actionable`,closure_reply:{text:j,at:mn()},closure_reply_unread:!0};In(f,Ct.default.stringify(`${h.trimEnd()} +`,se)),ci(a),f3(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=eSe(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}': ${j}`+(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:mn(),result:A?"closed":"advanced",...P?{message:P}:{}}:N.push({bolt:E,hat:R,completed_at:mn(),result:A?"closed":"advanced",...P?{message:P}:{}});let G=m,W,$;A?(G="closed",W=`fix-loop:${u}:bolt-${E}`,$=mn()):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:mn()},Q.closure_reply_unread=!0),In(f,Ct.default.stringify(`${h.trimEnd()} +`,Q)),ci(a),A&&NSt({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)mpe(a,B,u);else{SZ(`haiku: close fix-chain ${u}`);let j=Hb(a,B,()=>XD(a,B,u));if(!j.success){let H=Sg(a,B,u);return j.isConflict?r({action:"integrate_fix_chains",intent:a,scope:B,items:[{feedback_id:u}],feedback_id:u,worktree:H,conflict_paths:j.conflictFiles??[],message:`Fix-chain ${u} closed, but landing its code on ${B==="intent"?`haiku/${a}/main`:`stage '${B}'`} produced conflicts on ${(j.conflictFiles??[]).length} file(s): ${(j.conflictFiles??[]).join(", ")}. The merge is left in-progress in the fix-chain worktree (${H}) \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:H,error:j.message,message:`Fix-chain ${u} closed, but the engine could not merge its code into ${B==="intent"?`haiku/${a}/main`:`stage '${B}'`}. Git output: ${j.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 j=te(ce(a),"intent.md");if(!ue(j))return"";let H=(0,Ct.default)(xe(j,"utf8")).data;return typeof H.studio=="string"?H.studio:""})();if(!A&&F&&M)try{let j=T+1===g.length-1;V=VI({slug:a,studio:M,feedbackId:u,stage:c??"",hat:F,terminal:j}),U="Relay the `next_subagent_dispatch_block` field verbatim as your final message."}catch{}else if(A&&M)try{V=W0(a,()=>eSe(a,M)),V&&(U="Relay the `next_subagent_dispatch_block` field verbatim as your final message.")}catch{}if(!V){let j=!1;try{let H=ce(a),K=[te(H,"feedback")],ee=te(H,"stages");if(ue(ee))for(let se of an(ee))K.push(te(ee,se,"feedback"));e:for(let se of K)if(ue(se))for(let Le of an(se).filter(Ae=>Ae.endsWith(".md"))){let Ae=xe(te(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)){j=!0;break e}}}catch{}U=j?"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,fge,"haiku_feedback_reject_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(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=te(ce(a),"intent.md"),S="software";if(ue(b)){let{data:V}=re(xe(b,"utf8"));S=V.studio||"software"}if(c){let V=es(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):QK(S),{targetHat:N}=Jpe(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:mn(),result:"rejected",message:l||"(no message provided)"}:C.push({bolt:_,hat:A,completed_at:mn(),result:"rejected",message:l||"(no message provided)"});let $,q;if(Go.modelSelection){let V=h.model,U=Wfe(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=VI({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,uge,"haiku_feedback_set_targets");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(t.feedback_id),l=t.target_unit===null||t.target_unit===void 0?null:t.target_unit,d=t.target_invalidates??[],f=typeof t.reasoning=="string"?t.reasoning.trim():"",p=ea(a,c||void 0);if(p)return p;let h=bc(a,c,u);if(!h)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let m=h.data.targets&&typeof h.data.targets=="object"?h.data.targets:null,g=m&&typeof m.unit<"u"&&m.unit!==null?m.unit:null,y=m&&Array.isArray(m.invalidates)?m.invalidates:[];if(g!==null||y.length>0)return r({error:"targets_already_set",feedback_id:u,current_target_unit:g,current_target_invalidates:y,message:`Feedback '${u}' already has classified targets \u2014 once set, immutable per the FB-as-unit architecture. To retarget, reject the FB (haiku_feedback_reject) and create a new one with the correct targets.`},{isError:!0});let b=h.data.status||"pending";if(b==="closed"||b==="rejected")return r({error:"lifecycle_violation",current_status:b,message:`Cannot classify FB '${u}' \u2014 already ${b} (terminal).`},{isError:!0});let S={unit:l,invalidates:d};f&&(S.reasoning=f);let E={...h.data,targets:S};return In(h.path,Ct.default.stringify(` ${h.body} -`,E)),ci(a),r({ok:!0,feedback_id:u,target_unit:l,target_invalidates:d,reasoning:f||null,message:`Feedback '${u}' classified: target_unit=${l??"null (intent-scope)"}, invalidates=[${d.join(", ")}]${f?` \u2014 ${f}`:""}.`})}case"haiku_feedback_set_severity":{let o=Be(t,uge,"haiku_feedback_set_severity");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(t.feedback_id),l=t.severity,d=typeof t.reasoning=="string"?t.reasoning.trim():"",f=ea(a,c||void 0);if(f)return f;let p=bc(a,c,u);if(!p)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let h=typeof p.data.severity=="string"?p.data.severity:null;if(h!==null)return r({error:"severity_already_set",feedback_id:u,current_severity:h,message:`Feedback '${u}' already has severity '${h}' \u2014 once set, immutable per the FB-as-unit architecture. To re-rank, reject the FB (haiku_feedback_reject) and create a new one.`},{isError:!0});let m=p.data.status||"pending";if(m==="closed"||m==="rejected")return r({error:"lifecycle_violation",current_status:m,message:`Cannot set severity on FB '${u}' \u2014 already ${m} (terminal).`},{isError:!0});let g={...p.data,severity:l};return In(p.path,Ct.default.stringify(` +`,E)),ci(a),r({ok:!0,feedback_id:u,target_unit:l,target_invalidates:d,reasoning:f||null,message:`Feedback '${u}' classified: target_unit=${l??"null (intent-scope)"}, invalidates=[${d.join(", ")}]${f?` \u2014 ${f}`:""}.`})}case"haiku_feedback_set_severity":{let o=Be(t,lge,"haiku_feedback_set_severity");if(o)return o;let a=t.intent,c=t.stage||"",u=Gd(t.feedback_id),l=t.severity,d=typeof t.reasoning=="string"?t.reasoning.trim():"",f=ea(a,c||void 0);if(f)return f;let p=bc(a,c,u);if(!p)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let h=typeof p.data.severity=="string"?p.data.severity:null;if(h!==null)return r({error:"severity_already_set",feedback_id:u,current_severity:h,message:`Feedback '${u}' already has severity '${h}' \u2014 once set, immutable per the FB-as-unit architecture. To re-rank, reject the FB (haiku_feedback_reject) and create a new one.`},{isError:!0});let m=p.data.status||"pending";if(m==="closed"||m==="rejected")return r({error:"lifecycle_violation",current_status:m,message:`Cannot set severity on FB '${u}' \u2014 already ${m} (terminal).`},{isError:!0});let g={...p.data,severity:l};return In(p.path,Ct.default.stringify(` ${p.body} -`,g)),ci(a),r({ok:!0,feedback_id:u,severity:l,reasoning:d||null,message:`Feedback '${u}' severity set to '${l}'${d?` \u2014 ${d}`:""}.`})}case"haiku_version_info":{let o=Be(t,zL,"haiku_version_info");if(o)return o;let a=ud==="dev",c={mcp_version:ud,plugin_version:vS(),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 dbt,Ct,tSe,nSe,aSe,Z3n,h1,Vd,Df,Ev,gZ,f9n,h9n,m9n,Qye,sSe,w9n,Rbt,k9n,Bb,Dg,I9n,fv,x9n,RSe,ze=v(()=>{"use strict";xD();dbt=Re(V_(),1),Ct=Re(Kt(),1);Ci();zfe();Ype();apt();ji();ahe();L3();Oa();YL();wye();kye();o1();XY();PSt();ar();K0();pb();f1();sh();p1();uZ();Kn();vl();vo();p_();Eb();Hi();Ia();Hi();uo();tSe=10*1024,nSe=1024;aSe=80;Z3n=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;h1=null;Vd=class extends Error{constructor(t){super(t),this.name="IntentScopeTickPersistError"}};Df=2,Ev=5,gZ=3;f9n=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"]);h9n=.6;m9n=[/\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];Qye=null,sSe=null;w9n=[{entry:".haiku/worktrees/",accept:[".haiku/worktrees"]},{entry:".haiku/intents/*/stages/*/proof/",accept:[".haiku/intents/*/stages/*/proof"]},{entry:".haiku/intents/*/proof/",accept:[".haiku/intents/*/proof"]}];Rbt="feedback-assessor";k9n=["adversarial-review","studio-review","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],Bb=["pending","fixing","addressed","answered","non_actionable","closed","rejected"];Dg=3,I9n=3,fv=(()=>{let e=process.env.HAIKU_MAX_CONCURRENT_SUBAGENTS,t=e?Number.parseInt(e,10):NaN;return Number.isFinite(t)&&t>0?t:10})(),x9n=new Set(["user-visual","user-chat","user-question","user-revisit","external-pr","external-mr"]);RSe=[{name:"haiku_intent_get",description:"Read a field from an intent's frontmatter",inputSchema:z9,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:G9,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:lY,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: ${Db.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:_Y,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: ${Db.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:EY,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:TY,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:vY,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:RY,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:AY,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:wY,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:fY,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:pY,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:mY,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:hY,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:gY,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:yY,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:SY,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:kY,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,zL,"haiku_version_info");if(o)return o;let a=ud==="dev",c={mcp_version:ud,plugin_version:vS(),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 pbt,Ct,nSe,rSe,cSe,X3n,h1,Vd,Df,Ev,gZ,h9n,g9n,y9n,$ye,oSe,I9n,wbt,x9n,Bb,Dg,O9n,fv,P9n,ASe,ze=v(()=>{"use strict";xD();pbt=Re(V_(),1),Ct=Re(Kt(),1);Ci();Gfe();Zpe();upt();ji();che();L3();Oa();YL();kye();Iye();o1();XY();CSt();ar();K0();pb();f1();sh();p1();uZ();Kn();vl();vo();p_();Eb();Hi();Ia();Hi();uo();nSe=10*1024,rSe=1024;cSe=80;X3n=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;h1=null;Vd=class extends Error{constructor(t){super(t),this.name="IntentScopeTickPersistError"}};Df=2,Ev=5,gZ=3;h9n=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"]);g9n=.6;y9n=[/\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];$ye=null,oSe=null;I9n=[{entry:".haiku/worktrees/",accept:[".haiku/worktrees"]},{entry:".haiku/intents/*/stages/*/proof/",accept:[".haiku/intents/*/stages/*/proof"]},{entry:".haiku/intents/*/proof/",accept:[".haiku/intents/*/proof"]}];wbt="feedback-assessor";x9n=["adversarial-review","studio-review","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],Bb=["pending","fixing","addressed","answered","non_actionable","closed","rejected"];Dg=3,O9n=3,fv=(()=>{let e=process.env.HAIKU_MAX_CONCURRENT_SUBAGENTS,t=e?Number.parseInt(e,10):NaN;return Number.isFinite(t)&&t>0?t:10})(),P9n=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:z9,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:G9,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:lY,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: ${Db.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:_Y,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: ${Db.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:EY,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:TY,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:vY,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:RY,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:AY,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:wY,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:fY,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:pY,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:mY,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:hY,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:gY,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:yY,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:SY,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:kY,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): ${Db.join(", ")} \u2014 plus any stage-specific fields the per-stage \`phases/ELABORATION.md\` documents. @@ -949,23 +949,23 @@ Frontmatter is workflow engine-controlled and cannot be set through this tool. F \u2022 workflow-driven (mutated over the FB lifecycle): ${FL.join(", ")} \u2022 Set at creation, immutable thereafter: ${jL.join(", ")} -Use haiku_feedback_update for status transitions and haiku_feedback_reject for rejections.`,inputSchema:U9,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:H9,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:q9,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:F9,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:j9,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:oY,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:aY,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Repair report \u2014 markdown text including any worktree-migration findings."}},required:["markdown"]}},{name:"haiku_version_info",description:"Return the running MCP binary version and plugin version. MCP version is baked into the binary at build time; plugin version is read from plugin.json at runtime.",inputSchema:BL,outputSchema:{type:"object",properties:{mcp_version:{type:"string"},plugin_version:{type:"string"}},required:["mcp_version","plugin_version"]}}]});var wSe=w((whi,Pbt)=>{"use strict";Pbt.exports=function(t,n){return function(){for(var i=new Array(arguments.length),s=0;s{"use strict";var q9n=wSe(),vv=Object.prototype.toString;function xSe(e){return vv.call(e)==="[object Array]"}function kSe(e){return typeof e>"u"}function B9n(e){return e!==null&&!kSe(e)&&e.constructor!==null&&!kSe(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function z9n(e){return vv.call(e)==="[object ArrayBuffer]"}function G9n(e){return typeof FormData<"u"&&e instanceof FormData}function V9n(e){var t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function W9n(e){return typeof e=="string"}function K9n(e){return typeof e=="number"}function Nbt(e){return e!==null&&typeof e=="object"}function wZ(e){if(vv.call(e)!=="[object Object]")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Y9n(e){return vv.call(e)==="[object Date]"}function Z9n(e){return vv.call(e)==="[object File]"}function J9n(e){return vv.call(e)==="[object Blob]"}function Cbt(e){return vv.call(e)==="[object Function]"}function X9n(e){return Nbt(e)&&Cbt(e.pipe)}function Q9n(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function $9n(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function eYn(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function OSe(e,t){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),xSe(e))for(var n=0,r=e.length;n{"use strict";var ex=eu();function Dbt(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}Lbt.exports=function(t,n,r){if(!n)return t;var i;if(r)i=r(n);else if(ex.isURLSearchParams(n))i=n.toString();else{var s=[];ex.forEach(n,function(c,u){c===null||typeof c>"u"||(ex.isArray(c)?u=u+"[]":c=[c],ex.forEach(c,function(d){ex.isDate(d)?d=d.toISOString():ex.isObject(d)&&(d=JSON.stringify(d)),s.push(Dbt(u)+"="+Dbt(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 Fbt=w((xhi,Ubt)=>{"use strict";var rYn=eu();function IZ(){this.handlers=[]}IZ.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};IZ.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};IZ.prototype.forEach=function(t){rYn.forEach(this.handlers,function(r){r!==null&&t(r)})};Ubt.exports=IZ});var Hbt=w((Ohi,jbt)=>{"use strict";var iYn=eu();jbt.exports=function(t,n){iYn.forEach(t,function(i,s){s!==n&&s.toUpperCase()===n.toUpperCase()&&(t[n]=i,delete t[s])})}});var xZ=w((Phi,qbt)=>{"use strict";qbt.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 OZ=w((Nhi,Bbt)=>{"use strict";var sYn=xZ();Bbt.exports=function(t,n,r,i,s){var o=new Error(t);return sYn(o,n,r,i,s)}});var PSe=w((Chi,zbt)=>{"use strict";var oYn=OZ();zbt.exports=function(t,n,r){var i=r.config.validateStatus;!r.status||!i||i(r.status)?t(r):n(oYn("Request failed with status code "+r.status,r.config,null,r.request,r))}});var Vbt=w((Mhi,Gbt)=>{"use strict";var PZ=eu();Gbt.exports=PZ.isStandardBrowserEnv()?(function(){return{write:function(n,r,i,s,o,a){var c=[];c.push(n+"="+encodeURIComponent(r)),PZ.isNumber(i)&&c.push("expires="+new Date(i).toGMTString()),PZ.isString(s)&&c.push("path="+s),PZ.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 Kbt=w((Dhi,Wbt)=>{"use strict";Wbt.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}});var Zbt=w((Lhi,Ybt)=>{"use strict";Ybt.exports=function(t,n){return n?t.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):t}});var NSe=w((Uhi,Jbt)=>{"use strict";var aYn=Kbt(),cYn=Zbt();Jbt.exports=function(t,n){return t&&!aYn(n)?cYn(t,n):n}});var Qbt=w((Fhi,Xbt)=>{"use strict";var CSe=eu(),uYn=["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"];Xbt.exports=function(t){var n={},r,i,s;return t&&CSe.forEach(t.split(` -`),function(a){if(s=a.indexOf(":"),r=CSe.trim(a.substr(0,s)).toLowerCase(),i=CSe.trim(a.substr(s+1)),r){if(n[r]&&uYn.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 tEt=w((jhi,eEt)=>{"use strict";var $bt=eu();eEt.exports=$bt.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=$bt.isString(o)?i(o):o;return a.protocol===r.protocol&&a.host===r.host}})():(function(){return function(){return!0}})()});var rEt=w((Hhi,nEt)=>{"use strict";var NZ=eu(),lYn=PSe(),dYn=Vbt(),fYn=kZ(),pYn=NSe(),hYn=Qbt(),mYn=tEt(),MSe=OZ();nEt.exports=function(t){return new Promise(function(r,i){var s=t.data,o=t.headers,a=t.responseType;NZ.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=pYn(t.baseURL,t.url);c.open(t.method.toUpperCase(),fYn(d,t.params,t.paramsSerializer),!0),c.timeout=t.timeout;function f(){if(c){var h="getAllResponseHeaders"in c?hYn(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};lYn(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(MSe("Request aborted",t,"ECONNABORTED",c)),c=null)},c.onerror=function(){i(MSe("Network Error",t,null,c)),c=null},c.ontimeout=function(){var m="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(m=t.timeoutErrorMessage),i(MSe(m,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",c)),c=null},NZ.isStandardBrowserEnv()){var p=(t.withCredentials||mYn(d))&&t.xsrfCookieName?dYn.read(t.xsrfCookieName):void 0;p&&(o[t.xsrfHeaderName]=p)}"setRequestHeader"in c&&NZ.forEach(o,function(m,g){typeof s>"u"&&g.toLowerCase()==="content-type"?delete o[g]:c.setRequestHeader(g,m)}),NZ.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 sEt=w((qhi,iEt)=>{var tx=1e3,nx=tx*60,rx=nx*60,Rv=rx*24,gYn=Rv*7,yYn=Rv*365.25;iEt.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return SYn(e);if(n==="number"&&isFinite(e))return t.long?EYn(e):bYn(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function SYn(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*yYn;case"weeks":case"week":case"w":return n*gYn;case"days":case"day":case"d":return n*Rv;case"hours":case"hour":case"hrs":case"hr":case"h":return n*rx;case"minutes":case"minute":case"mins":case"min":case"m":return n*nx;case"seconds":case"second":case"secs":case"sec":case"s":return n*tx;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function bYn(e){var t=Math.abs(e);return t>=Rv?Math.round(e/Rv)+"d":t>=rx?Math.round(e/rx)+"h":t>=nx?Math.round(e/nx)+"m":t>=tx?Math.round(e/tx)+"s":e+"ms"}function EYn(e){var t=Math.abs(e);return t>=Rv?CZ(e,t,Rv,"day"):t>=rx?CZ(e,t,rx,"hour"):t>=nx?CZ(e,t,nx,"minute"):t>=tx?CZ(e,t,tx,"second"):e+" ms"}function CZ(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var DSe=w((Bhi,oEt)=>{function _Yn(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=sEt(),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=vYn;Ll.save=RYn;Ll.load=AYn;Ll.useColors=TYn;Ll.storage=wYn();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 TYn(){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 vYn(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+MZ.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 RYn(e){try{e?Ll.storage.setItem("debug",e):Ll.storage.removeItem("debug")}catch{}}function AYn(){let e;try{e=Ll.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function wYn(){try{return localStorage}catch{}}MZ.exports=DSe()(Ll);var{formatters:kYn}=MZ.exports;kYn.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var uEt=w((Ma,LZ)=>{var IYn=Y("tty"),DZ=Y("util");Ma.init=DYn;Ma.log=NYn;Ma.formatArgs=OYn;Ma.save=CYn;Ma.load=MYn;Ma.useColors=xYn;Ma.destroy=DZ.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=mj();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 xYn(){return"colors"in Ma.inspectOpts?!!Ma.inspectOpts.colors:IYn.isatty(process.stderr.fd)}function OYn(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:U9,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:H9,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:q9,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:F9,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:j9,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:oY,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:aY,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Repair report \u2014 markdown text including any worktree-migration findings."}},required:["markdown"]}},{name:"haiku_version_info",description:"Return the running MCP binary version and plugin version. MCP version is baked into the binary at build time; plugin version is read from plugin.json at runtime.",inputSchema:BL,outputSchema:{type:"object",properties:{mcp_version:{type:"string"},plugin_version:{type:"string"}},required:["mcp_version","plugin_version"]}}]});var kSe=w((whi,Cbt)=>{"use strict";Cbt.exports=function(t,n){return function(){for(var i=new Array(arguments.length),s=0;s{"use strict";var z9n=kSe(),vv=Object.prototype.toString;function OSe(e){return vv.call(e)==="[object Array]"}function ISe(e){return typeof e>"u"}function G9n(e){return e!==null&&!ISe(e)&&e.constructor!==null&&!ISe(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function V9n(e){return vv.call(e)==="[object ArrayBuffer]"}function W9n(e){return typeof FormData<"u"&&e instanceof FormData}function K9n(e){var t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function Y9n(e){return typeof e=="string"}function Z9n(e){return typeof e=="number"}function Mbt(e){return e!==null&&typeof e=="object"}function wZ(e){if(vv.call(e)!=="[object Object]")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function J9n(e){return vv.call(e)==="[object Date]"}function X9n(e){return vv.call(e)==="[object File]"}function Q9n(e){return vv.call(e)==="[object Blob]"}function Dbt(e){return vv.call(e)==="[object Function]"}function $9n(e){return Mbt(e)&&Dbt(e.pipe)}function eYn(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function tYn(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function nYn(){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]),OSe(e))for(var n=0,r=e.length;n{"use strict";var ex=eu();function Ubt(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}Fbt.exports=function(t,n,r){if(!n)return t;var i;if(r)i=r(n);else if(ex.isURLSearchParams(n))i=n.toString();else{var s=[];ex.forEach(n,function(c,u){c===null||typeof c>"u"||(ex.isArray(c)?u=u+"[]":c=[c],ex.forEach(c,function(d){ex.isDate(d)?d=d.toISOString():ex.isObject(d)&&(d=JSON.stringify(d)),s.push(Ubt(u)+"="+Ubt(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 Hbt=w((xhi,jbt)=>{"use strict";var sYn=eu();function IZ(){this.handlers=[]}IZ.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};IZ.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};IZ.prototype.forEach=function(t){sYn.forEach(this.handlers,function(r){r!==null&&t(r)})};jbt.exports=IZ});var Bbt=w((Ohi,qbt)=>{"use strict";var oYn=eu();qbt.exports=function(t,n){oYn.forEach(t,function(i,s){s!==n&&s.toUpperCase()===n.toUpperCase()&&(t[n]=i,delete t[s])})}});var xZ=w((Phi,zbt)=>{"use strict";zbt.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 OZ=w((Nhi,Gbt)=>{"use strict";var aYn=xZ();Gbt.exports=function(t,n,r,i,s){var o=new Error(t);return aYn(o,n,r,i,s)}});var NSe=w((Chi,Vbt)=>{"use strict";var cYn=OZ();Vbt.exports=function(t,n,r){var i=r.config.validateStatus;!r.status||!i||i(r.status)?t(r):n(cYn("Request failed with status code "+r.status,r.config,null,r.request,r))}});var Kbt=w((Mhi,Wbt)=>{"use strict";var PZ=eu();Wbt.exports=PZ.isStandardBrowserEnv()?(function(){return{write:function(n,r,i,s,o,a){var c=[];c.push(n+"="+encodeURIComponent(r)),PZ.isNumber(i)&&c.push("expires="+new Date(i).toGMTString()),PZ.isString(s)&&c.push("path="+s),PZ.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 Zbt=w((Dhi,Ybt)=>{"use strict";Ybt.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}});var Xbt=w((Lhi,Jbt)=>{"use strict";Jbt.exports=function(t,n){return n?t.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):t}});var CSe=w((Uhi,Qbt)=>{"use strict";var uYn=Zbt(),lYn=Xbt();Qbt.exports=function(t,n){return t&&!uYn(n)?lYn(t,n):n}});var eEt=w((Fhi,$bt)=>{"use strict";var MSe=eu(),dYn=["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"];$bt.exports=function(t){var n={},r,i,s;return t&&MSe.forEach(t.split(` +`),function(a){if(s=a.indexOf(":"),r=MSe.trim(a.substr(0,s)).toLowerCase(),i=MSe.trim(a.substr(s+1)),r){if(n[r]&&dYn.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 rEt=w((jhi,nEt)=>{"use strict";var tEt=eu();nEt.exports=tEt.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=tEt.isString(o)?i(o):o;return a.protocol===r.protocol&&a.host===r.host}})():(function(){return function(){return!0}})()});var sEt=w((Hhi,iEt)=>{"use strict";var NZ=eu(),fYn=NSe(),pYn=Kbt(),hYn=kZ(),mYn=CSe(),gYn=eEt(),yYn=rEt(),DSe=OZ();iEt.exports=function(t){return new Promise(function(r,i){var s=t.data,o=t.headers,a=t.responseType;NZ.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=mYn(t.baseURL,t.url);c.open(t.method.toUpperCase(),hYn(d,t.params,t.paramsSerializer),!0),c.timeout=t.timeout;function f(){if(c){var h="getAllResponseHeaders"in c?gYn(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};fYn(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(DSe("Request aborted",t,"ECONNABORTED",c)),c=null)},c.onerror=function(){i(DSe("Network Error",t,null,c)),c=null},c.ontimeout=function(){var m="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(m=t.timeoutErrorMessage),i(DSe(m,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",c)),c=null},NZ.isStandardBrowserEnv()){var p=(t.withCredentials||yYn(d))&&t.xsrfCookieName?pYn.read(t.xsrfCookieName):void 0;p&&(o[t.xsrfHeaderName]=p)}"setRequestHeader"in c&&NZ.forEach(o,function(m,g){typeof s>"u"&&g.toLowerCase()==="content-type"?delete o[g]:c.setRequestHeader(g,m)}),NZ.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 aEt=w((qhi,oEt)=>{var tx=1e3,nx=tx*60,rx=nx*60,Rv=rx*24,SYn=Rv*7,bYn=Rv*365.25;oEt.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return EYn(e);if(n==="number"&&isFinite(e))return t.long?TYn(e):_Yn(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function EYn(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*bYn;case"weeks":case"week":case"w":return n*SYn;case"days":case"day":case"d":return n*Rv;case"hours":case"hour":case"hrs":case"hr":case"h":return n*rx;case"minutes":case"minute":case"mins":case"min":case"m":return n*nx;case"seconds":case"second":case"secs":case"sec":case"s":return n*tx;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function _Yn(e){var t=Math.abs(e);return t>=Rv?Math.round(e/Rv)+"d":t>=rx?Math.round(e/rx)+"h":t>=nx?Math.round(e/nx)+"m":t>=tx?Math.round(e/tx)+"s":e+"ms"}function TYn(e){var t=Math.abs(e);return t>=Rv?CZ(e,t,Rv,"day"):t>=rx?CZ(e,t,rx,"hour"):t>=nx?CZ(e,t,nx,"minute"):t>=tx?CZ(e,t,tx,"second"):e+" ms"}function CZ(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var LSe=w((Bhi,cEt)=>{function vYn(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=aEt(),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=AYn;Ll.save=wYn;Ll.load=kYn;Ll.useColors=RYn;Ll.storage=IYn();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 RYn(){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 AYn(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+MZ.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 wYn(e){try{e?Ll.storage.setItem("debug",e):Ll.storage.removeItem("debug")}catch{}}function kYn(){let e;try{e=Ll.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function IYn(){try{return localStorage}catch{}}MZ.exports=LSe()(Ll);var{formatters:xYn}=MZ.exports;xYn.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var dEt=w((Ma,LZ)=>{var OYn=Y("tty"),DZ=Y("util");Ma.init=UYn;Ma.log=MYn;Ma.formatArgs=NYn;Ma.save=DYn;Ma.load=LYn;Ma.useColors=PYn;Ma.destroy=DZ.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=mj();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 PYn(){return"colors"in Ma.inspectOpts?!!Ma.inspectOpts.colors:OYn.isatty(process.stderr.fd)}function NYn(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+"+LZ.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=PYn()+t+" "+e[0]}function PYn(){return Ma.inspectOpts.hideDate?"":new Date().toISOString()+" "}function NYn(...e){return process.stderr.write(DZ.format(...e)+` -`)}function CYn(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function MYn(){return process.env.DEBUG}function DYn(e){e.inspectOpts={};let t=Object.keys(Ma.inspectOpts);for(let n=0;nt.trim()).join(" ")};cEt.O=function(e){return this.inspectOpts.colors=this.useColors,DZ.inspect(e,this.inspectOpts)}});var lEt=w((zhi,LSe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?LSe.exports=aEt():LSe.exports=uEt()});var fEt=w((Ghi,dEt)=>{var w1;dEt.exports=function(){if(!w1){try{w1=lEt()("follow-redirects")}catch{}typeof w1!="function"&&(w1=function(){})}w1.apply(null,arguments)}});var ZSe=w((Vhi,YSe)=>{var I1=Y("url"),k1=I1.URL,LYn=Y("http"),UYn=Y("https"),qSe=Y("stream").Writable,BSe=Y("assert"),pEt=fEt();(function(){var t=typeof process<"u",n=typeof window<"u"&&typeof document<"u",r=wv(Error.captureStackTrace);!t&&(n||!r)&&console.warn("The follow-redirects package should be excluded from browser builds.")})();var zSe=!1;try{BSe(new k1(""))}catch(e){zSe=e.code==="ERR_INVALID_URL"}var FYn=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],GSe=["abort","aborted","connect","error","socket","timeout"],VSe=Object.create(null);GSe.forEach(function(e){VSe[e]=function(t,n,r){this._redirectable.emit(e,t,n,r)}});var FSe=x1("ERR_INVALID_URL","Invalid URL",TypeError),jSe=x1("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),jYn=x1("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",jSe),HYn=x1("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),qYn=x1("ERR_STREAM_WRITE_AFTER_END","write after end"),BYn=qSe.prototype.destroy||mEt;function Ku(e,t){qSe.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 jSe?i:new jSe({cause:i}))}},this._performRequest()}Ku.prototype=Object.create(qSe.prototype);Ku.prototype.abort=function(){KSe(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};Ku.prototype.destroy=function(e){return KSe(this._currentRequest,e),BYn.call(this,e),this};Ku.prototype.write=function(e,t,n){if(this._ending)throw new qYn;if(!Av(e)&&!VYn(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(wv(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 HYn),this.abort())};Ku.prototype.end=function(e,t,n){if(wv(e)?(n=e,e=t=null):wv(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 GSe)r.on(i,VSe[i]);if(this._currentUrl=/^\//.test(this._options.path)?I1.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(KSe(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new jYn;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=[],USe(/^content-/i,this._options.headers));var o=USe(/^host$/i,this._options.headers),a=WSe(this._currentUrl),c=o||a.host,u=/^\w+:/.test(n)?this._currentUrl:I1.format(Object.assign(a,{host:c})),l=zYn(n,u);if(pEt("redirecting to",l.href),this._isRedirect=!0,HSe(l,this._options),(l.protocol!==a.protocol&&l.protocol!=="https:"||l.host!==c&&!GYn(l.host,c))&&USe(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),wv(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 hEt(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 WYn(u)?u=HSe(u):Av(u)?u=HSe(WSe(u)):(d=l,l=gEt(u),u={protocol:i}),wv(l)&&(d=l,l=null),l=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},u,l),l.nativeProtocols=n,!Av(l.host)&&!Av(l.hostname)&&(l.hostname="::1"),BSe.equal(l.protocol,i,"protocol mismatch"),pEt("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 mEt(){}function WSe(e){var t;if(zSe)t=new k1(e);else if(t=gEt(I1.parse(e)),!Av(t.protocol))throw new FSe({input:e});return t}function zYn(e,t){return zSe?new k1(e,t):WSe(I1.resolve(t,e))}function gEt(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new FSe({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new FSe({input:e.href||e});return e}function HSe(e,t){var n=t||{};for(var r of FYn)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 USe(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 x1(e,t,n){function r(i){wv(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 KSe(e,t){for(var n of GSe)e.removeListener(n,VSe[n]);e.on("error",mEt),e.destroy(t)}function GYn(e,t){BSe(Av(e)&&Av(t));var n=e.length-t.length-1;return n>0&&e[n]==="."&&e.endsWith(t)}function Av(e){return typeof e=="string"||e instanceof String}function wv(e){return typeof e=="function"}function VYn(e){return typeof e=="object"&&"length"in e}function WYn(e){return k1&&e instanceof k1}YSe.exports=hEt({http:LYn,https:UYn});YSe.exports.wrap=hEt});var JSe=w((Whi,KYn)=>{KYn.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 TEt=w((Khi,_Et)=>{"use strict";var O1=eu(),yEt=PSe(),YYn=NSe(),ZYn=kZ(),JYn=Y("http"),XYn=Y("https"),QYn=ZSe().http,$Yn=ZSe().https,SEt=Y("url"),eZn=Y("zlib"),tZn=JSe(),UZ=OZ(),XSe=xZ(),bEt=/https:?/;function EEt(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,EEt(s,t,s.href)}}_Et.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/"+tZn.version,a&&!O1.isStream(a)){if(!Buffer.isBuffer(a))if(O1.isArrayBuffer(a))a=Buffer.from(new Uint8Array(a));else if(O1.isString(a))a=Buffer.from(a,"utf-8");else return o(UZ("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=YYn(t.baseURL,t.url),p=SEt.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=bEt.test(h),S=b?t.httpsAgent:t.httpAgent,E={path:ZYn(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=SEt.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:""),EEt(E,_,h+"//"+p.hostname+(p.port?":"+p.port:"")+E.path));var C,L=b&&(_?bEt.test(_.protocol):!0);t.transport?C=t.transport:t.maxRedirects===0?C=L?XYn:JYn:(t.maxRedirects&&(E.maxRedirects=t.maxRedirects),C=L?$Yn:QYn),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(eZn.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,yEt(s,o,F);else{var V=[],U=0;Q.on("data",function(j){V.push(j),U+=j.length,t.maxContentLength>-1&&U>t.maxContentLength&&(Q.destroy(),o(UZ("maxContentLength size of "+t.maxContentLength+" exceeded",t,null,B)))}),Q.on("error",function(j){G.aborted||o(XSe(j,t,null,B))}),Q.on("end",function(){var j=Buffer.concat(V);t.responseType!=="arraybuffer"&&(j=j.toString(t.responseEncoding),(!t.responseEncoding||t.responseEncoding==="utf8")&&(j=O1.stripBOM(j))),F.data=j,yEt(s,o,F)})}}});if(G.on("error",function(q){G.aborted&&q.code!=="ERR_FR_TOO_MANY_REDIRECTS"||o(XSe(q,t,null,G))}),t.timeout){var W=parseInt(t.timeout,10);if(isNaN(W)){o(UZ("error trying to parse `config.timeout` to int",t,"ERR_PARSE_TIMEOUT",G));return}G.setTimeout(W,function(){G.abort(),o(UZ("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))}),O1.isStream(a)?a.on("error",function(q){o(XSe(q,t,null,G))}).pipe(G):G.end(a)})}});var jZ=w((Yhi,AEt)=>{"use strict";var Da=eu(),vEt=Hbt(),nZn=xZ(),rZn={"Content-Type":"application/x-www-form-urlencoded"};function REt(e,t){!Da.isUndefined(e)&&Da.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function iZn(){var e;return typeof XMLHttpRequest<"u"?e=rEt():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=TEt()),e}function sZn(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 FZ={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:iZn(),transformRequest:[function(t,n){return vEt(n,"Accept"),vEt(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)?(REt(n,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):Da.isObject(t)||n&&n["Content-Type"]==="application/json"?(REt(n,"application/json"),sZn(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"?nZn(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}};FZ.headers={common:{Accept:"application/json, text/plain, */*"}};Da.forEach(["delete","get","head"],function(t){FZ.headers[t]={}});Da.forEach(["post","put","patch"],function(t){FZ.headers[t]=Da.merge(rZn)});AEt.exports=FZ});var kEt=w((Zhi,wEt)=>{"use strict";var oZn=eu(),aZn=jZ();wEt.exports=function(t,n,r){var i=this||aZn;return oZn.forEach(r,function(o){t=o.call(i,t,n)}),t}});var QSe=w((Jhi,IEt)=>{"use strict";IEt.exports=function(t){return!!(t&&t.__CANCEL__)}});var PEt=w((Xhi,OEt)=>{"use strict";var xEt=eu(),$Se=kEt(),cZn=QSe(),uZn=jZ();function ebe(e){e.cancelToken&&e.cancelToken.throwIfRequested()}OEt.exports=function(t){ebe(t),t.headers=t.headers||{},t.data=$Se.call(t,t.data,t.headers,t.transformRequest),t.headers=xEt.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),xEt.forEach(["delete","get","head","post","put","patch","common"],function(i){delete t.headers[i]});var n=t.adapter||uZn.adapter;return n(t).then(function(i){return ebe(t),i.data=$Se.call(t,i.data,i.headers,t.transformResponse),i},function(i){return cZn(i)||(ebe(t),i&&i.response&&(i.response.data=$Se.call(t,i.response.data,i.response.headers,t.transformResponse))),Promise.reject(i)})}});var tbe=w((Qhi,NEt)=>{"use strict";var Ec=eu();NEt.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 UEt=w(($hi,LEt)=>{"use strict";var MEt=JSe(),nbe={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){nbe[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});var CEt={},lZn=MEt.version.split(".");function DEt(e,t){for(var n=t?t.split("."):lZn,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)}}LEt.exports={isOlderVersion:DEt,assertOptions:dZn,validators:nbe}});var zEt=w((emi,BEt)=>{"use strict";var HEt=eu(),fZn=kZ(),FEt=Fbt(),jEt=PEt(),HZ=tbe(),qEt=UEt(),ix=qEt.validators;function P1(e){this.defaults=e,this.interceptors={request:new FEt,response:new FEt}}P1.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=HZ(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&&qEt.assertOptions(n,{silentJSONParsing:ix.transitional(ix.boolean,"1.0.0"),forcedJSONParsing:ix.transitional(ix.boolean,"1.0.0"),clarifyTimeoutError:ix.transitional(ix.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=[jEt,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=jEt(c)}catch(d){return Promise.reject(d)}for(;s.length;)o=o.then(s.shift(),s.shift());return o};P1.prototype.getUri=function(t){return t=HZ(this.defaults,t),fZn(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};HEt.forEach(["delete","get","head","options"],function(t){P1.prototype[t]=function(n,r){return this.request(HZ(r||{},{method:t,url:n,data:(r||{}).data}))}});HEt.forEach(["post","put","patch"],function(t){P1.prototype[t]=function(n,r,i){return this.request(HZ(i||{},{method:t,url:n,data:r}))}});BEt.exports=P1});var ibe=w((tmi,GEt)=>{"use strict";function rbe(e){this.message=e}rbe.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};rbe.prototype.__CANCEL__=!0;GEt.exports=rbe});var WEt=w((nmi,VEt)=>{"use strict";var pZn=ibe();function qZ(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 pZn(i),t(n.reason))})}qZ.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};qZ.source=function(){var t,n=new qZ(function(i){t=i});return{token:n,cancel:t}};VEt.exports=qZ});var YEt=w((rmi,KEt)=>{"use strict";KEt.exports=function(t){return function(r){return t.apply(null,r)}}});var JEt=w((imi,ZEt)=>{"use strict";ZEt.exports=function(t){return typeof t=="object"&&t.isAxiosError===!0}});var $Et=w((smi,sbe)=>{"use strict";var XEt=eu(),hZn=wSe(),BZ=zEt(),mZn=tbe(),gZn=jZ();function QEt(e){var t=new BZ(e),n=hZn(BZ.prototype.request,t);return XEt.extend(n,BZ.prototype,t),XEt.extend(n,t),n}var rp=QEt(gZn);rp.Axios=BZ;rp.create=function(t){return QEt(mZn(rp.defaults,t))};rp.Cancel=ibe();rp.CancelToken=WEt();rp.isCancel=QSe();rp.all=function(t){return Promise.all(t)};rp.spread=YEt();rp.isAxiosError=JEt();sbe.exports=rp;sbe.exports.default=rp});var t_t=w((omi,e_t)=>{e_t.exports=$Et()});var r_t=w((ami,n_t)=>{var sx=1e3,ox=sx*60,ax=ox*60,kv=ax*24,yZn=kv*7,SZn=kv*365.25;n_t.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return bZn(e);if(n==="number"&&isFinite(e))return t.long?_Zn(e):EZn(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function bZn(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*SZn;case"weeks":case"week":case"w":return n*yZn;case"days":case"day":case"d":return n*kv;case"hours":case"hour":case"hrs":case"hr":case"h":return n*ax;case"minutes":case"minute":case"mins":case"min":case"m":return n*ox;case"seconds":case"second":case"secs":case"sec":case"s":return n*sx;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function EZn(e){var t=Math.abs(e);return t>=kv?Math.round(e/kv)+"d":t>=ax?Math.round(e/ax)+"h":t>=ox?Math.round(e/ox)+"m":t>=sx?Math.round(e/sx)+"s":e+"ms"}function _Zn(e){var t=Math.abs(e);return t>=kv?zZ(e,t,kv,"day"):t>=ax?zZ(e,t,ax,"hour"):t>=ox?zZ(e,t,ox,"minute"):t>=sx?zZ(e,t,sx,"second"):e+" ms"}function zZ(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var obe=w((cmi,i_t)=>{function TZn(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=r_t(),n.destroy=u,Object.keys(e).forEach(l=>{n[l]=e[l]}),n.names=[],n.skips=[],n.formatters={};function t(l){let d=0;for(let f=0;f{if(T==="%%")return"%";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=RZn;Ul.save=AZn;Ul.load=wZn;Ul.useColors=vZn;Ul.storage=kZn();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 vZn(){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 RZn(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+GZ.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 AZn(e){try{e?Ul.storage.setItem("debug",e):Ul.storage.removeItem("debug")}catch{}}function wZn(){let e;try{e=Ul.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function kZn(){try{return localStorage}catch{}}GZ.exports=obe()(Ul);var{formatters:IZn}=GZ.exports;IZn.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var a_t=w((La,WZ)=>{var xZn=Y("tty"),VZ=Y("util");La.init=LZn;La.log=CZn;La.formatArgs=PZn;La.save=MZn;La.load=DZn;La.useColors=OZn;La.destroy=VZ.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=mj();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 OZn(){return"colors"in La.inspectOpts?!!La.inspectOpts.colors:xZn.isatty(process.stderr.fd)}function PZn(e){let{namespace:t,useColors:n}=this;if(n){let r=this.color,i="\x1B[3"+(r<8?r:"8;5;"+r),s=` ${i};1m${t} \x1B[0m`;e[0]=s+e[0].split(` +`+s),e.push(i+"m+"+LZ.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=CYn()+t+" "+e[0]}function CYn(){return Ma.inspectOpts.hideDate?"":new Date().toISOString()+" "}function MYn(...e){return process.stderr.write(DZ.format(...e)+` +`)}function DYn(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function LYn(){return process.env.DEBUG}function UYn(e){e.inspectOpts={};let t=Object.keys(Ma.inspectOpts);for(let n=0;nt.trim()).join(" ")};lEt.O=function(e){return this.inspectOpts.colors=this.useColors,DZ.inspect(e,this.inspectOpts)}});var fEt=w((zhi,USe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?USe.exports=uEt():USe.exports=dEt()});var hEt=w((Ghi,pEt)=>{var w1;pEt.exports=function(){if(!w1){try{w1=fEt()("follow-redirects")}catch{}typeof w1!="function"&&(w1=function(){})}w1.apply(null,arguments)}});var JSe=w((Vhi,ZSe)=>{var I1=Y("url"),k1=I1.URL,FYn=Y("http"),jYn=Y("https"),BSe=Y("stream").Writable,zSe=Y("assert"),mEt=hEt();(function(){var t=typeof process<"u",n=typeof window<"u"&&typeof document<"u",r=wv(Error.captureStackTrace);!t&&(n||!r)&&console.warn("The follow-redirects package should be excluded from browser builds.")})();var GSe=!1;try{zSe(new k1(""))}catch(e){GSe=e.code==="ERR_INVALID_URL"}var HYn=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],VSe=["abort","aborted","connect","error","socket","timeout"],WSe=Object.create(null);VSe.forEach(function(e){WSe[e]=function(t,n,r){this._redirectable.emit(e,t,n,r)}});var jSe=x1("ERR_INVALID_URL","Invalid URL",TypeError),HSe=x1("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),qYn=x1("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",HSe),BYn=x1("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),zYn=x1("ERR_STREAM_WRITE_AFTER_END","write after end"),GYn=BSe.prototype.destroy||yEt;function Ku(e,t){BSe.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 HSe?i:new HSe({cause:i}))}},this._performRequest()}Ku.prototype=Object.create(BSe.prototype);Ku.prototype.abort=function(){YSe(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};Ku.prototype.destroy=function(e){return YSe(this._currentRequest,e),GYn.call(this,e),this};Ku.prototype.write=function(e,t,n){if(this._ending)throw new zYn;if(!Av(e)&&!KYn(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(wv(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 BYn),this.abort())};Ku.prototype.end=function(e,t,n){if(wv(e)?(n=e,e=t=null):wv(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 VSe)r.on(i,WSe[i]);if(this._currentUrl=/^\//.test(this._options.path)?I1.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(YSe(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new qYn;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=[],FSe(/^content-/i,this._options.headers));var o=FSe(/^host$/i,this._options.headers),a=KSe(this._currentUrl),c=o||a.host,u=/^\w+:/.test(n)?this._currentUrl:I1.format(Object.assign(a,{host:c})),l=VYn(n,u);if(mEt("redirecting to",l.href),this._isRedirect=!0,qSe(l,this._options),(l.protocol!==a.protocol&&l.protocol!=="https:"||l.host!==c&&!WYn(l.host,c))&&FSe(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),wv(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 YYn(u)?u=qSe(u):Av(u)?u=qSe(KSe(u)):(d=l,l=SEt(u),u={protocol:i}),wv(l)&&(d=l,l=null),l=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},u,l),l.nativeProtocols=n,!Av(l.host)&&!Av(l.hostname)&&(l.hostname="::1"),zSe.equal(l.protocol,i,"protocol mismatch"),mEt("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 yEt(){}function KSe(e){var t;if(GSe)t=new k1(e);else if(t=SEt(I1.parse(e)),!Av(t.protocol))throw new jSe({input:e});return t}function VYn(e,t){return GSe?new k1(e,t):KSe(I1.resolve(t,e))}function SEt(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new jSe({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new jSe({input:e.href||e});return e}function qSe(e,t){var n=t||{};for(var r of HYn)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 FSe(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 x1(e,t,n){function r(i){wv(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 YSe(e,t){for(var n of VSe)e.removeListener(n,WSe[n]);e.on("error",yEt),e.destroy(t)}function WYn(e,t){zSe(Av(e)&&Av(t));var n=e.length-t.length-1;return n>0&&e[n]==="."&&e.endsWith(t)}function Av(e){return typeof e=="string"||e instanceof String}function wv(e){return typeof e=="function"}function KYn(e){return typeof e=="object"&&"length"in e}function YYn(e){return k1&&e instanceof k1}ZSe.exports=gEt({http:FYn,https:jYn});ZSe.exports.wrap=gEt});var XSe=w((Whi,ZYn)=>{ZYn.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 REt=w((Khi,vEt)=>{"use strict";var O1=eu(),bEt=NSe(),JYn=CSe(),XYn=kZ(),QYn=Y("http"),$Yn=Y("https"),eZn=JSe().http,tZn=JSe().https,EEt=Y("url"),nZn=Y("zlib"),rZn=XSe(),UZ=OZ(),QSe=xZ(),_Et=/https:?/;function TEt(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,TEt(s,t,s.href)}}vEt.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/"+rZn.version,a&&!O1.isStream(a)){if(!Buffer.isBuffer(a))if(O1.isArrayBuffer(a))a=Buffer.from(new Uint8Array(a));else if(O1.isString(a))a=Buffer.from(a,"utf-8");else return o(UZ("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=EEt.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=_Et.test(h),S=b?t.httpsAgent:t.httpAgent,E={path:XYn(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=EEt.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:""),TEt(E,_,h+"//"+p.hostname+(p.port?":"+p.port:"")+E.path));var C,L=b&&(_?_Et.test(_.protocol):!0);t.transport?C=t.transport:t.maxRedirects===0?C=L?$Yn:QYn:(t.maxRedirects&&(E.maxRedirects=t.maxRedirects),C=L?tZn:eZn),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(nZn.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,bEt(s,o,F);else{var V=[],U=0;Q.on("data",function(j){V.push(j),U+=j.length,t.maxContentLength>-1&&U>t.maxContentLength&&(Q.destroy(),o(UZ("maxContentLength size of "+t.maxContentLength+" exceeded",t,null,B)))}),Q.on("error",function(j){G.aborted||o(QSe(j,t,null,B))}),Q.on("end",function(){var j=Buffer.concat(V);t.responseType!=="arraybuffer"&&(j=j.toString(t.responseEncoding),(!t.responseEncoding||t.responseEncoding==="utf8")&&(j=O1.stripBOM(j))),F.data=j,bEt(s,o,F)})}}});if(G.on("error",function(q){G.aborted&&q.code!=="ERR_FR_TOO_MANY_REDIRECTS"||o(QSe(q,t,null,G))}),t.timeout){var W=parseInt(t.timeout,10);if(isNaN(W)){o(UZ("error trying to parse `config.timeout` to int",t,"ERR_PARSE_TIMEOUT",G));return}G.setTimeout(W,function(){G.abort(),o(UZ("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))}),O1.isStream(a)?a.on("error",function(q){o(QSe(q,t,null,G))}).pipe(G):G.end(a)})}});var jZ=w((Yhi,kEt)=>{"use strict";var Da=eu(),AEt=Bbt(),iZn=xZ(),sZn={"Content-Type":"application/x-www-form-urlencoded"};function wEt(e,t){!Da.isUndefined(e)&&Da.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function oZn(){var e;return typeof XMLHttpRequest<"u"?e=sEt():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=REt()),e}function aZn(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 FZ={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:oZn(),transformRequest:[function(t,n){return AEt(n,"Accept"),AEt(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)?(wEt(n,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):Da.isObject(t)||n&&n["Content-Type"]==="application/json"?(wEt(n,"application/json"),aZn(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"?iZn(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}};FZ.headers={common:{Accept:"application/json, text/plain, */*"}};Da.forEach(["delete","get","head"],function(t){FZ.headers[t]={}});Da.forEach(["post","put","patch"],function(t){FZ.headers[t]=Da.merge(sZn)});kEt.exports=FZ});var xEt=w((Zhi,IEt)=>{"use strict";var cZn=eu(),uZn=jZ();IEt.exports=function(t,n,r){var i=this||uZn;return cZn.forEach(r,function(o){t=o.call(i,t,n)}),t}});var $Se=w((Jhi,OEt)=>{"use strict";OEt.exports=function(t){return!!(t&&t.__CANCEL__)}});var CEt=w((Xhi,NEt)=>{"use strict";var PEt=eu(),ebe=xEt(),lZn=$Se(),dZn=jZ();function tbe(e){e.cancelToken&&e.cancelToken.throwIfRequested()}NEt.exports=function(t){tbe(t),t.headers=t.headers||{},t.data=ebe.call(t,t.data,t.headers,t.transformRequest),t.headers=PEt.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),PEt.forEach(["delete","get","head","post","put","patch","common"],function(i){delete t.headers[i]});var n=t.adapter||dZn.adapter;return n(t).then(function(i){return tbe(t),i.data=ebe.call(t,i.data,i.headers,t.transformResponse),i},function(i){return lZn(i)||(tbe(t),i&&i.response&&(i.response.data=ebe.call(t,i.response.data,i.response.headers,t.transformResponse))),Promise.reject(i)})}});var nbe=w((Qhi,MEt)=>{"use strict";var Ec=eu();MEt.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 jEt=w(($hi,FEt)=>{"use strict";var LEt=XSe(),rbe={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){rbe[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});var DEt={},fZn=LEt.version.split(".");function UEt(e,t){for(var n=t?t.split("."):fZn,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)}}FEt.exports={isOlderVersion:UEt,assertOptions:pZn,validators:rbe}});var VEt=w((emi,GEt)=>{"use strict";var BEt=eu(),hZn=kZ(),HEt=Hbt(),qEt=CEt(),HZ=nbe(),zEt=jEt(),ix=zEt.validators;function P1(e){this.defaults=e,this.interceptors={request:new HEt,response:new HEt}}P1.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=HZ(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&&zEt.assertOptions(n,{silentJSONParsing:ix.transitional(ix.boolean,"1.0.0"),forcedJSONParsing:ix.transitional(ix.boolean,"1.0.0"),clarifyTimeoutError:ix.transitional(ix.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=[qEt,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=qEt(c)}catch(d){return Promise.reject(d)}for(;s.length;)o=o.then(s.shift(),s.shift());return o};P1.prototype.getUri=function(t){return t=HZ(this.defaults,t),hZn(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};BEt.forEach(["delete","get","head","options"],function(t){P1.prototype[t]=function(n,r){return this.request(HZ(r||{},{method:t,url:n,data:(r||{}).data}))}});BEt.forEach(["post","put","patch"],function(t){P1.prototype[t]=function(n,r,i){return this.request(HZ(i||{},{method:t,url:n,data:r}))}});GEt.exports=P1});var sbe=w((tmi,WEt)=>{"use strict";function ibe(e){this.message=e}ibe.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};ibe.prototype.__CANCEL__=!0;WEt.exports=ibe});var YEt=w((nmi,KEt)=>{"use strict";var mZn=sbe();function qZ(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 mZn(i),t(n.reason))})}qZ.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};qZ.source=function(){var t,n=new qZ(function(i){t=i});return{token:n,cancel:t}};KEt.exports=qZ});var JEt=w((rmi,ZEt)=>{"use strict";ZEt.exports=function(t){return function(r){return t.apply(null,r)}}});var QEt=w((imi,XEt)=>{"use strict";XEt.exports=function(t){return typeof t=="object"&&t.isAxiosError===!0}});var t_t=w((smi,obe)=>{"use strict";var $Et=eu(),gZn=kSe(),BZ=VEt(),yZn=nbe(),SZn=jZ();function e_t(e){var t=new BZ(e),n=gZn(BZ.prototype.request,t);return $Et.extend(n,BZ.prototype,t),$Et.extend(n,t),n}var rp=e_t(SZn);rp.Axios=BZ;rp.create=function(t){return e_t(yZn(rp.defaults,t))};rp.Cancel=sbe();rp.CancelToken=YEt();rp.isCancel=$Se();rp.all=function(t){return Promise.all(t)};rp.spread=JEt();rp.isAxiosError=QEt();obe.exports=rp;obe.exports.default=rp});var r_t=w((omi,n_t)=>{n_t.exports=t_t()});var s_t=w((ami,i_t)=>{var sx=1e3,ox=sx*60,ax=ox*60,kv=ax*24,bZn=kv*7,EZn=kv*365.25;i_t.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return _Zn(e);if(n==="number"&&isFinite(e))return t.long?vZn(e):TZn(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function _Zn(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*EZn;case"weeks":case"week":case"w":return n*bZn;case"days":case"day":case"d":return n*kv;case"hours":case"hour":case"hrs":case"hr":case"h":return n*ax;case"minutes":case"minute":case"mins":case"min":case"m":return n*ox;case"seconds":case"second":case"secs":case"sec":case"s":return n*sx;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function TZn(e){var t=Math.abs(e);return t>=kv?Math.round(e/kv)+"d":t>=ax?Math.round(e/ax)+"h":t>=ox?Math.round(e/ox)+"m":t>=sx?Math.round(e/sx)+"s":e+"ms"}function vZn(e){var t=Math.abs(e);return t>=kv?zZ(e,t,kv,"day"):t>=ax?zZ(e,t,ax,"hour"):t>=ox?zZ(e,t,ox,"minute"):t>=sx?zZ(e,t,sx,"second"):e+" ms"}function zZ(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var abe=w((cmi,o_t)=>{function RZn(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=s_t(),n.destroy=u,Object.keys(e).forEach(l=>{n[l]=e[l]}),n.names=[],n.skips=[],n.formatters={};function t(l){let d=0;for(let f=0;f{if(T==="%%")return"%";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=wZn;Ul.save=kZn;Ul.load=IZn;Ul.useColors=AZn;Ul.storage=xZn();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 AZn(){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 wZn(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+GZ.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 kZn(e){try{e?Ul.storage.setItem("debug",e):Ul.storage.removeItem("debug")}catch{}}function IZn(){let e;try{e=Ul.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function xZn(){try{return localStorage}catch{}}GZ.exports=abe()(Ul);var{formatters:OZn}=GZ.exports;OZn.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var u_t=w((La,WZ)=>{var PZn=Y("tty"),VZ=Y("util");La.init=FZn;La.log=DZn;La.formatArgs=CZn;La.save=LZn;La.load=UZn;La.useColors=NZn;La.destroy=VZ.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=mj();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 NZn(){return"colors"in La.inspectOpts?!!La.inspectOpts.colors:PZn.isatty(process.stderr.fd)}function CZn(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+"+WZ.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=NZn()+t+" "+e[0]}function NZn(){return La.inspectOpts.hideDate?"":new Date().toISOString()+" "}function CZn(...e){return process.stderr.write(VZ.format(...e)+` -`)}function MZn(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function DZn(){return process.env.DEBUG}function LZn(e){e.inspectOpts={};let t=Object.keys(La.inspectOpts);for(let n=0;nt.trim()).join(" ")};o_t.O=function(e){return this.inspectOpts.colors=this.useColors,VZ.inspect(e,this.inspectOpts)}});var cbe=w((umi,abe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?abe.exports=s_t():abe.exports=a_t()});var u_t=w((lmi,c_t)=>{var{Transform:UZn}=Y("stream"),ube=class extends UZn{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)))}};c_t.exports=ube});var f_t=w((fmi,d_t)=>{var{EventEmitter:FZn}=Y("events"),Jh=cbe()("localtunnel:client"),lbe=Y("fs"),l_t=Y("net"),jZn=Y("tls"),HZn=u_t();d_t.exports=class extends FZn{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;Jh("establishing tunnel %s://%s:%s <> %s:%s",o,i,s,n,r);let c=l_t.connect({host:n,port:r});c.setKeepAlive(!0),c.on("error",l=>{Jh("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){Jh("remote destroyed"),this.emit("dead");return}Jh("connecting locally to %s://%s:%d",o,i,s),c.pause(),a&&Jh("allowing invalid certificates");let l=()=>a?{rejectUnauthorized:!1}:{cert:lbe.readFileSync(t.local_cert),key:lbe.readFileSync(t.local_key),ca:t.local_ca?[lbe.readFileSync(t.local_ca)]:void 0},d=t.local_https?jZn.connect({host:i,port:s,...l()}):l_t.connect({host:i,port:s}),f=()=>{Jh("remote close"),this.emit("dead"),d.end()};c.once("close",f),d.once("error",p=>{if(Jh("local error %s",p.message),d.end(),c.removeListener("close",f),p.code!=="ECONNREFUSED")return c.end();setTimeout(u,1e3)}),d.once("connect",()=>{Jh("connected locally"),c.resume();let p=c;t.local_host&&(Jh("transform Host header to %s",t.local_host),p=c.pipe(new HZn({host:t.local_host}))),p.pipe(d).pipe(c),d.once("close",h=>{Jh("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 m_t=w((hmi,h_t)=>{var{parse:qZn}=Y("url"),{EventEmitter:p_t}=Y("events"),BZn=t_t(),N1=cbe()("localtunnel:client"),zZn=f_t();h_t.exports=class extends p_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:qZn(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(){BZn.get(a,i).then(u=>{let l=u.data;if(N1("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=>(N1(`tunnel server offline: ${u.message}, retry 1s`),setTimeout(c,1e3)))})()}_establish(t){this.setMaxListeners(t.max_conn+(p_t.defaultMaxListeners||10)),this.tunnelCluster=new zZn(t),this.tunnelCluster.once("open",()=>{this.emit("url",t.url)}),this.tunnelCluster.on("error",r=>{N1("got socket error",r.message),this.emit("error",r)});let n=0;this.tunnelCluster.on("open",r=>{n++,N1("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--,N1("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 y_t=w((mmi,g_t)=>{var GZn=m_t();g_t.exports=function(t,n,r){let i=typeof t=="object"?t:{...n,port:t},s=typeof t=="object"?n:r,o=new GZn(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 k_t={};Ar(k_t,{__setActiveTunnelForTesting:()=>XZn,buildReviewUrl:()=>Ov,clearE2EKey:()=>ybe,closeTunnel:()=>mbe,e2eEncrypt:()=>gbe,getTunnelUrl:()=>w_t,isE2EActive:()=>D1,isRemoteReviewEnabled:()=>zi,isTunnelOpen:()=>ZZn,openTunnel:()=>Hg,signJWT:()=>R_t,verifyTunnelJWT:()=>Xh});import{createCipheriv as VZn,createHmac as __t,randomBytes as pbe,timingSafeEqual as WZn}from"node:crypto";async function YZn(){if(!(!Ts||xv||Iv))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,fbe()}}function v_t(){KZ(),C1=setInterval(YZn,KZn),C1.unref()}function KZ(){C1&&(clearInterval(C1),C1=null)}function S_t(e){return(typeof e=="string"?Buffer.from(e).toString("base64"):e.toString("base64")).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function R_t(e){let t=S_t(JSON.stringify({alg:"HS256",typ:"JWT"})),n=S_t(JSON.stringify(e)),r=__t("sha256",T_t).update(`${t}.${n}`).digest("base64url");return`${t}.${n}.${r}`}function Xh(e,t){let n=e.split(".");if(n.length!==3)return{ok:!1,reason:"malformed"};let[r,i,s]=n;if(!r||!i||!s)return{ok:!1,reason:"malformed"};try{let f=Buffer.from(r,"base64url").toString("utf-8"),p=JSON.parse(f);if(p.alg!=="HS256")return{ok:!1,reason:"bad_alg"};if(p.typ!==void 0&&p.typ!=="JWT")return{ok:!1,reason:"bad_typ"}}catch{return{ok:!1,reason:"malformed"}}let o=__t("sha256",T_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(!WZn(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=w_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 fbe(){if(Iv||xv||!dbe)return;Iv=!0;let e=5;for(let t=0;tsetTimeout(r,n));try{let r=await(0,hbe.default)({port:dbe});Ts=r,A_t(r),console.error(`[haiku] Tunnel reconnected: ${r.url}`),v_t(),Iv=!1;return}catch(r){console.error("[haiku] Tunnel reconnect failed:",r instanceof Error?r.message:r)}}Iv=!1,console.error(`[haiku] Tunnel reconnect exhausted \u2014 giving up after ${e} attempts`)}function A_t(e){e.on("close",()=>{Ts===e&&(Ts=null,KZ(),console.error("[haiku] Tunnel closed unexpectedly"),xv||fbe())}),e.on("error",t=>{console.error("[haiku] Tunnel error:",t.message),Ts===e&&(Ts=null,KZ(),xv||fbe())})}async function Hg(e){if(Ts)return Ts.url;if(Iv){let n=Date.now()+b_t;if(await new Promise((r,i)=>{let s=setInterval(()=>{Iv?Date.now()>n&&(clearInterval(s),i(new Error(`openTunnel: timed out after ${b_t}ms waiting for an in-flight reconnect to settle`))):(clearInterval(s),r())},100)}),Ts)return Ts.url}dbe=e,xv=!1;let t=3;for(let n=0;nsetTimeout(()=>o(new Error(`localtunnel did not respond within ${E_t}ms`)),E_t)),i=await Promise.race([(0,hbe.default)({port:e}),r]);return Ts=i,A_t(i),console.error(`[haiku] Tunnel opened: ${i.url}`),v_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 mbe(){xv=!0,KZ(),Ts&&(Ts.close(),Ts=null,console.error("[haiku] Tunnel closed"))}function w_t(){return Ts?.url??null}function ZZn(){return Ts!==null}function zi(){return Go.remoteReview}function Ov(e,t,n){let r=pbe(32);M1.set(e,r);let i=Math.floor(Date.now()/1e3),s=R_t({tun:t,sid:e,typ:n,key:r.toString("base64url"),iat:i,exp:i+3600});return`${JZn}/review/#${s}`}function gbe(e,t){let n=M1.get(e);if(!n)return null;let r=pbe(12),i=VZn("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 D1(e){return e?M1.has(e):M1.size>0}function ybe(e){M1.delete(e)}function XZn(e){e?Ts={url:e,close:()=>{Ts=null},on:()=>{}}:Ts=null}var hbe,T_t,M1,Ts,dbe,Iv,xv,C1,KZn,b_t,E_t,JZn,Qh=v(()=>{"use strict";hbe=Re(y_t(),1);Ci();T_t=pbe(32),M1=new Map,Ts=null,dbe=null,Iv=!1,xv=!1,C1=null,KZn=3e4;b_t=3e4,E_t=15e3;JZn=bf.siteUrl});import{randomBytes as QZn}from"node:crypto";function e6n(){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 P_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 t6n(){let e=process.env.HAIKU_CSRF_NONCE_REQUIRED;return e==="true"||e==="1"}function n6n(){let e=process.env.HAIKU_CSRF_NONCE_TTL_MS;if(!e)return I_t;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?I_t:t}function N_t(e){let t=QZn(32).toString("base64url");return Sbe.set(e,{nonce:t,expiresAt:Date.now()+n6n()}),t}function C_t(e){let t=Sbe.get(e);return t?t.expiresAt{if(!zi())return n.send({nonce:"local-mode-no-csrf-required"});let r=L1(t);if(!r)return n.status(401).send({error:"unauthorized",reason:"missing_token"});let i=Xh(r,null);if(!i.ok)return n.status(401).send({error:"unauthorized",reason:i.reason});let s=N_t(i.payload.sid);return n.send({nonce:s})})}var $Zn,x_t,O_t,I_t,Sbe,bbe=v(()=>{"use strict";Qh();qg();$Zn=new Set(["POST","PUT","PATCH","DELETE"]),x_t="query_param_token_disallowed_on_mutating_route",O_t="X-Haiku-CSRF";I_t=3600*1e3;Sbe=new Map});function L1(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(!zi())return!0;let r=L1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Xh(r,n);return i.ok?!0:(t.status(401).send({error:"unauthorized",reason:i.reason}),!1)}function cx(e,t,n){if(!zi())return!0;let r=L1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Xh(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 ux,qg=v(()=>{"use strict";$c();Qh();bbe();ux=cx});import{existsSync as L_t}from"node:fs";import{join as U_t}from"node:path";function r6n(e,t,n=400){let r={error:"validation_failed",issues:t};return e.status(n).send(r)}function Gb(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 r6n(e,i),{ok:!1}}return{ok:!0,data:r.data}}function yn(e){let t;try{t=decodeURIComponent(e)}catch{return!1}return t.includes("\0")?!1:!/[/\\]|\.\./.test(t)}function Ua(e){try{let t=ce(e);return L_t(U_t(t,"intent.md"))}catch{return!1}}function $h(e,t){try{let n=ce(e);return L_t(U_t(n,"stages",t))}catch{return!1}}var Pv=v(()=>{"use strict";ze()});import{existsSync as YZ,readdirSync as Ebe,readFileSync as i6n}from"node:fs";import{join as F1}from"node:path";function j_t(e){return typeof e!="string"||e.length<=F_t?e:`${e.slice(0,F_t)}\u2026`}function s6n(e){let t={...e};t.agent_rationale=j_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:j_t(r.rationale_excerpt)})),t}function o6n(e){return/^DA-\d+$/.test(e)}function U1(e){try{let t=i6n(e,"utf-8");return JSON.parse(t)}catch{return null}}function a6n(e){let t=ce(e),n=F1(t,"stages");if(!YZ(n))return[];let r=[],i;try{i=Ebe(n,{withFileTypes:!0}).filter(s=>s.isDirectory()).map(s=>s.name)}catch{return[]}for(let s of i){let o=F1(n,s,"drift-assessments");if(!YZ(o))continue;let a;try{a=Ebe(o).filter(c=>/^DA-\d+\.json$/.test(c))}catch{continue}for(let c of a){let u=c.replace(/\.json$/,""),l=F1(o,c),d=U1(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 H_t(e){e.get("/api/intents/:intent/assessments",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r}=t.params;if(!yn(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=a6n(r).filter(m=>{if(o!==null&&new Date(m.createdAt).getTime()<=o)return!1;if(a!==null){let g=U1(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=U1(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=U1(m.absPath);g!==null&&h.push(s6n(g))}n.send({ok:!0,assessments:h,total:d,has_more:f})}),e.get("/api/intents/:intent/assessments/:assessmentId",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,assessmentId:i}=t.params;if(!yn(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(!o6n(i)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let s=ce(r),o=F1(s,"stages");if(!YZ(o)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let a;try{a=Ebe(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=F1(o,c,"drift-assessments",`${i}.json`);if(YZ(u)){let l=U1(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 F_t,q_t=v(()=>{"use strict";ze();qg();Pv();F_t=256});import{createReadStream as c6n,existsSync as u6n}from"node:fs";function ZZ(e,t){e.status(400).send({error:t,code:t})}function _be(e,t){e.status(404).send({error:t,code:t})}function z_t(e,t){if(!u6n(t)){_be(e,"sidecar_not_found");return}let n=jyt(t),r=n?l6n[n]:"application/octet-stream";e.header("Content-Type",r),e.header("Cache-Control","public, max-age=31536000, immutable"),e.send(c6n(t))}function G_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(!yn(r)||!yn(i)){ZZ(n,"bad_param");return}if(!B_t.test(s)){ZZ(n,"bad_sha");return}if(!Ua(r)){_be(n,"intent_not_found");return}let o=Hyt(ce(r),i,s);z_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(!yn(r)){ZZ(n,"bad_param");return}if(!B_t.test(i)){ZZ(n,"bad_sha");return}if(!Ua(r)){_be(n,"intent_not_found");return}let s=qyt(ce(r),i);z_t(n,s)})}var B_t,l6n,V_t=v(()=>{"use strict";P0();ze();qg();Pv();B_t=/^[0-9a-f]{64}$/,l6n={png:"image/png",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",avif:"image/avif"}});import{brotliDecompressSync as d6n}from"node:zlib";var f6n,Wd,JZ=v(()=>{"use strict";f6n="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",Wd=d6n(Buffer.from(f6n,"base64")).toString("utf-8")});import{existsSync as ip,readdirSync as lx,readFileSync as Nv,writeFileSync as p6n}from"node:fs";import{join as ko}from"node:path";function XZ(e){let t=ce(e.slug),n=ko(t,"intent.md");if(!ip(n))return{ok:!1,error:"intent_not_found",details:{slug:e.slug}};let r=re(Nv(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=Kye(i,y,s),E=Yye(i,y,s);for(let _ of lx(b).filter(T=>T.endsWith(".md"))){let T=ko(b,_),R=re(Nv(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]=zd(t,b));Ne(y.unitPath,"reviews",S),Ne(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(Nv(S,"utf8")).data,T=!1;_.verified_at||(Ne(S,"verified_at",E),T=!0),_.decompose_verified_at||(Ne(S,"decompose_verified_at",E),T=!0),T&&h++}else{let _=`# Elaboration (synthesized by /haiku:haiku-debug) +`+s),e.push(i+"m+"+WZ.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=MZn()+t+" "+e[0]}function MZn(){return La.inspectOpts.hideDate?"":new Date().toISOString()+" "}function DZn(...e){return process.stderr.write(VZ.format(...e)+` +`)}function LZn(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function UZn(){return process.env.DEBUG}function FZn(e){e.inspectOpts={};let t=Object.keys(La.inspectOpts);for(let n=0;nt.trim()).join(" ")};c_t.O=function(e){return this.inspectOpts.colors=this.useColors,VZ.inspect(e,this.inspectOpts)}});var ube=w((umi,cbe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?cbe.exports=a_t():cbe.exports=u_t()});var d_t=w((lmi,l_t)=>{var{Transform:jZn}=Y("stream"),lbe=class extends jZn{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)))}};l_t.exports=lbe});var h_t=w((fmi,p_t)=>{var{EventEmitter:HZn}=Y("events"),Jh=ube()("localtunnel:client"),dbe=Y("fs"),f_t=Y("net"),qZn=Y("tls"),BZn=d_t();p_t.exports=class extends HZn{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;Jh("establishing tunnel %s://%s:%s <> %s:%s",o,i,s,n,r);let c=f_t.connect({host:n,port:r});c.setKeepAlive(!0),c.on("error",l=>{Jh("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){Jh("remote destroyed"),this.emit("dead");return}Jh("connecting locally to %s://%s:%d",o,i,s),c.pause(),a&&Jh("allowing invalid certificates");let l=()=>a?{rejectUnauthorized:!1}:{cert:dbe.readFileSync(t.local_cert),key:dbe.readFileSync(t.local_key),ca:t.local_ca?[dbe.readFileSync(t.local_ca)]:void 0},d=t.local_https?qZn.connect({host:i,port:s,...l()}):f_t.connect({host:i,port:s}),f=()=>{Jh("remote close"),this.emit("dead"),d.end()};c.once("close",f),d.once("error",p=>{if(Jh("local error %s",p.message),d.end(),c.removeListener("close",f),p.code!=="ECONNREFUSED")return c.end();setTimeout(u,1e3)}),d.once("connect",()=>{Jh("connected locally"),c.resume();let p=c;t.local_host&&(Jh("transform Host header to %s",t.local_host),p=c.pipe(new BZn({host:t.local_host}))),p.pipe(d).pipe(c),d.once("close",h=>{Jh("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 y_t=w((hmi,g_t)=>{var{parse:zZn}=Y("url"),{EventEmitter:m_t}=Y("events"),GZn=r_t(),N1=ube()("localtunnel:client"),VZn=h_t();g_t.exports=class extends m_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:zZn(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(){GZn.get(a,i).then(u=>{let l=u.data;if(N1("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=>(N1(`tunnel server offline: ${u.message}, retry 1s`),setTimeout(c,1e3)))})()}_establish(t){this.setMaxListeners(t.max_conn+(m_t.defaultMaxListeners||10)),this.tunnelCluster=new VZn(t),this.tunnelCluster.once("open",()=>{this.emit("url",t.url)}),this.tunnelCluster.on("error",r=>{N1("got socket error",r.message),this.emit("error",r)});let n=0;this.tunnelCluster.on("open",r=>{n++,N1("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--,N1("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 b_t=w((mmi,S_t)=>{var WZn=y_t();S_t.exports=function(t,n,r){let i=typeof t=="object"?t:{...n,port:t},s=typeof t=="object"?n:r,o=new WZn(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 x_t={};Ar(x_t,{__setActiveTunnelForTesting:()=>$Zn,buildReviewUrl:()=>Ov,clearE2EKey:()=>Sbe,closeTunnel:()=>gbe,e2eEncrypt:()=>ybe,getTunnelUrl:()=>I_t,isE2EActive:()=>D1,isRemoteReviewEnabled:()=>zi,isTunnelOpen:()=>XZn,openTunnel:()=>Hg,signJWT:()=>w_t,verifyTunnelJWT:()=>Xh});import{createCipheriv as KZn,createHmac as v_t,randomBytes as hbe,timingSafeEqual as YZn}from"node:crypto";async function JZn(){if(!(!Ts||xv||Iv))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,pbe()}}function A_t(){KZ(),C1=setInterval(JZn,ZZn),C1.unref()}function KZ(){C1&&(clearInterval(C1),C1=null)}function E_t(e){return(typeof e=="string"?Buffer.from(e).toString("base64"):e.toString("base64")).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function w_t(e){let t=E_t(JSON.stringify({alg:"HS256",typ:"JWT"})),n=E_t(JSON.stringify(e)),r=v_t("sha256",R_t).update(`${t}.${n}`).digest("base64url");return`${t}.${n}.${r}`}function Xh(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=v_t("sha256",R_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(!YZn(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=I_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 pbe(){if(Iv||xv||!fbe)return;Iv=!0;let e=5;for(let t=0;tsetTimeout(r,n));try{let r=await(0,mbe.default)({port:fbe});Ts=r,k_t(r),console.error(`[haiku] Tunnel reconnected: ${r.url}`),A_t(),Iv=!1;return}catch(r){console.error("[haiku] Tunnel reconnect failed:",r instanceof Error?r.message:r)}}Iv=!1,console.error(`[haiku] Tunnel reconnect exhausted \u2014 giving up after ${e} attempts`)}function k_t(e){e.on("close",()=>{Ts===e&&(Ts=null,KZ(),console.error("[haiku] Tunnel closed unexpectedly"),xv||pbe())}),e.on("error",t=>{console.error("[haiku] Tunnel error:",t.message),Ts===e&&(Ts=null,KZ(),xv||pbe())})}async function Hg(e){if(Ts)return Ts.url;if(Iv){let n=Date.now()+__t;if(await new Promise((r,i)=>{let s=setInterval(()=>{Iv?Date.now()>n&&(clearInterval(s),i(new Error(`openTunnel: timed out after ${__t}ms waiting for an in-flight reconnect to settle`))):(clearInterval(s),r())},100)}),Ts)return Ts.url}fbe=e,xv=!1;let t=3;for(let n=0;nsetTimeout(()=>o(new Error(`localtunnel did not respond within ${T_t}ms`)),T_t)),i=await Promise.race([(0,mbe.default)({port:e}),r]);return Ts=i,k_t(i),console.error(`[haiku] Tunnel opened: ${i.url}`),A_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 gbe(){xv=!0,KZ(),Ts&&(Ts.close(),Ts=null,console.error("[haiku] Tunnel closed"))}function I_t(){return Ts?.url??null}function XZn(){return Ts!==null}function zi(){return Go.remoteReview}function Ov(e,t,n){let r=hbe(32);M1.set(e,r);let i=Math.floor(Date.now()/1e3),s=w_t({tun:t,sid:e,typ:n,key:r.toString("base64url"),iat:i,exp:i+3600});return`${QZn}/review/#${s}`}function ybe(e,t){let n=M1.get(e);if(!n)return null;let r=hbe(12),i=KZn("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 D1(e){return e?M1.has(e):M1.size>0}function Sbe(e){M1.delete(e)}function $Zn(e){e?Ts={url:e,close:()=>{Ts=null},on:()=>{}}:Ts=null}var mbe,R_t,M1,Ts,fbe,Iv,xv,C1,ZZn,__t,T_t,QZn,Qh=v(()=>{"use strict";mbe=Re(b_t(),1);Ci();R_t=hbe(32),M1=new Map,Ts=null,fbe=null,Iv=!1,xv=!1,C1=null,ZZn=3e4;__t=3e4,T_t=15e3;QZn=bf.siteUrl});import{randomBytes as e6n}from"node:crypto";function n6n(){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 C_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 r6n(){let e=process.env.HAIKU_CSRF_NONCE_REQUIRED;return e==="true"||e==="1"}function i6n(){let e=process.env.HAIKU_CSRF_NONCE_TTL_MS;if(!e)return O_t;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?O_t:t}function M_t(e){let t=e6n(32).toString("base64url");return bbe.set(e,{nonce:t,expiresAt:Date.now()+i6n()}),t}function D_t(e){let t=bbe.get(e);return t?t.expiresAt{if(!zi())return n.send({nonce:"local-mode-no-csrf-required"});let r=L1(t);if(!r)return n.status(401).send({error:"unauthorized",reason:"missing_token"});let i=Xh(r,null);if(!i.ok)return n.status(401).send({error:"unauthorized",reason:i.reason});let s=M_t(i.payload.sid);return n.send({nonce:s})})}var t6n,P_t,N_t,O_t,bbe,Ebe=v(()=>{"use strict";Qh();qg();t6n=new Set(["POST","PUT","PATCH","DELETE"]),P_t="query_param_token_disallowed_on_mutating_route",N_t="X-Haiku-CSRF";O_t=3600*1e3;bbe=new Map});function L1(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(!zi())return!0;let r=L1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Xh(r,n);return i.ok?!0:(t.status(401).send({error:"unauthorized",reason:i.reason}),!1)}function cx(e,t,n){if(!zi())return!0;let r=L1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Xh(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 ux,qg=v(()=>{"use strict";$c();Qh();Ebe();ux=cx});import{existsSync as F_t}from"node:fs";import{join as j_t}from"node:path";function s6n(e,t,n=400){let r={error:"validation_failed",issues:t};return e.status(n).send(r)}function Gb(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 s6n(e,i),{ok:!1}}return{ok:!0,data:r.data}}function yn(e){let t;try{t=decodeURIComponent(e)}catch{return!1}return t.includes("\0")?!1:!/[/\\]|\.\./.test(t)}function Ua(e){try{let t=ce(e);return F_t(j_t(t,"intent.md"))}catch{return!1}}function $h(e,t){try{let n=ce(e);return F_t(j_t(n,"stages",t))}catch{return!1}}var Pv=v(()=>{"use strict";ze()});import{existsSync as YZ,readdirSync as _be,readFileSync as o6n}from"node:fs";import{join as F1}from"node:path";function q_t(e){return typeof e!="string"||e.length<=H_t?e:`${e.slice(0,H_t)}\u2026`}function a6n(e){let t={...e};t.agent_rationale=q_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:q_t(r.rationale_excerpt)})),t}function c6n(e){return/^DA-\d+$/.test(e)}function U1(e){try{let t=o6n(e,"utf-8");return JSON.parse(t)}catch{return null}}function u6n(e){let t=ce(e),n=F1(t,"stages");if(!YZ(n))return[];let r=[],i;try{i=_be(n,{withFileTypes:!0}).filter(s=>s.isDirectory()).map(s=>s.name)}catch{return[]}for(let s of i){let o=F1(n,s,"drift-assessments");if(!YZ(o))continue;let a;try{a=_be(o).filter(c=>/^DA-\d+\.json$/.test(c))}catch{continue}for(let c of a){let u=c.replace(/\.json$/,""),l=F1(o,c),d=U1(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 B_t(e){e.get("/api/intents/:intent/assessments",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r}=t.params;if(!yn(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=u6n(r).filter(m=>{if(o!==null&&new Date(m.createdAt).getTime()<=o)return!1;if(a!==null){let g=U1(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=U1(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=U1(m.absPath);g!==null&&h.push(a6n(g))}n.send({ok:!0,assessments:h,total:d,has_more:f})}),e.get("/api/intents/:intent/assessments/:assessmentId",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,assessmentId:i}=t.params;if(!yn(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(!c6n(i)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let s=ce(r),o=F1(s,"stages");if(!YZ(o)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let a;try{a=_be(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=F1(o,c,"drift-assessments",`${i}.json`);if(YZ(u)){let l=U1(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 H_t,z_t=v(()=>{"use strict";ze();qg();Pv();H_t=256});import{createReadStream as l6n,existsSync as d6n}from"node:fs";function ZZ(e,t){e.status(400).send({error:t,code:t})}function Tbe(e,t){e.status(404).send({error:t,code:t})}function V_t(e,t){if(!d6n(t)){Tbe(e,"sidecar_not_found");return}let n=qyt(t),r=n?f6n[n]:"application/octet-stream";e.header("Content-Type",r),e.header("Cache-Control","public, max-age=31536000, immutable"),e.send(l6n(t))}function W_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(!yn(r)||!yn(i)){ZZ(n,"bad_param");return}if(!G_t.test(s)){ZZ(n,"bad_sha");return}if(!Ua(r)){Tbe(n,"intent_not_found");return}let o=Byt(ce(r),i,s);V_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(!yn(r)){ZZ(n,"bad_param");return}if(!G_t.test(i)){ZZ(n,"bad_sha");return}if(!Ua(r)){Tbe(n,"intent_not_found");return}let s=zyt(ce(r),i);V_t(n,s)})}var G_t,f6n,K_t=v(()=>{"use strict";P0();ze();qg();Pv();G_t=/^[0-9a-f]{64}$/,f6n={png:"image/png",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",avif:"image/avif"}});import{brotliDecompressSync as p6n}from"node:zlib";var h6n,Wd,JZ=v(()=>{"use strict";h6n="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",Wd=p6n(Buffer.from(h6n,"base64")).toString("utf-8")});import{existsSync as ip,readdirSync as lx,readFileSync as Nv,writeFileSync as m6n}from"node:fs";import{join as ko}from"node:path";function XZ(e){let t=ce(e.slug),n=ko(t,"intent.md");if(!ip(n))return{ok:!1,error:"intent_not_found",details:{slug:e.slug}};let r=re(Nv(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=Yye(i,y,s),E=Zye(i,y,s);for(let _ of lx(b).filter(T=>T.endsWith(".md"))){let T=ko(b,_),R=re(Nv(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]=zd(t,b));Ne(y.unitPath,"reviews",S),Ne(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(Nv(S,"utf8")).data,T=!1;_.verified_at||(Ne(S,"verified_at",E),T=!0),_.decompose_verified_at||(Ne(S,"decompose_verified_at",E),T=!0),T&&h++}else{let _=`# Elaboration (synthesized by /haiku:haiku-debug) This stage's units terminal-advanced through every hat without an elaboration.md being recorded. The debug recovery op synthesized this artifact so the cursor can walk past the elaborate phase. -`,T={recorded_at:E,verified_at:E,decompose_verified_at:E,intent:e.slug,stage:y,synthesized_by:"force_complete"};p6n(S,W_t.default.stringify(_,T)),h++}}let m=!1;if(a===o.length-1){let y=r.approvals&&typeof r.approvals=="object"?{...r.approvals}:{};for(let b of["spec","continuity","user","intent_quality_gates"])y[b]||(y[b]={at:new Date().toISOString()});Ne(n,"approvals",y),m=!0}let g=0;if(e.closeOpenFeedback){let y=p.map(S=>ko(t,"stages",S,"feedback"));a===o.length-1&&y.push(ko(t,"feedback"));let b=new Date().toISOString();for(let S of y)if(ip(S))for(let E of lx(S).filter(_=>_.endsWith(".md"))){let _=ko(S,E),T=re(Nv(_,"utf8")).data,R=T.closed_at,A=T.rejected_at;if(typeof R=="string"&&R.length>0||typeof A=="string"&&A.length>0)continue;Ne(_,"closed_at",b);let x=T.closed_by;typeof x=="string"&&x.length>0||Ne(_,"closed_by","force_complete"),g++}}return{ok:!0,result:{stages_processed:p,units_signed:f,intent_quality_gates_signed:m,feedback_closed:g,elaborations_sealed:h}}}function dx(e){let t=ko(ce(e.slug),"intent.md");return ip(t)?(Ne(t,e.field,e.value),{ok:!0}):{ok:!1,error:"intent_not_found"}}function QZ(e){let t=ce(e.slug),n=ko(t,"stages");if(!ip(n))return{ok:!1,error:"no_stages_dir"};let r=0,i=0;for(let s of lx(n,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=ko(n,s.name,"units");if(ip(o))for(let a of lx(o).filter(c=>c.endsWith(".md"))){let c=ko(o,a),u=re(Nv(c,"utf8")).data,l=Array.isArray(u.outputs)?u.outputs:[],d=u.reviews&&typeof u.reviews=="object"?{...u.reviews}:{},f=Array.isArray(u.inputs)?u.inputs:[];for(let h of Object.keys(d))d[h]=Cl(c,{intentDir:t,unitInputs:f}),r++;let p=u.approvals&&typeof u.approvals=="object"?{...u.approvals}:{};for(let h of Object.keys(p))p[h]=zd(t,l),i++;Object.keys(d).length>0&&Ne(c,"reviews",d),Object.keys(p).length>0&&Ne(c,"approvals",p)}}return{ok:!0,reviews_refreshed:r,approvals_refreshed:i}}function $Z(e){let t=ce(e.slug),n=ko(t,"intent.md");if(!ip(n))return{ok:!1,error:"intent_not_found"};let i=re(Nv(n,"utf8")).data.studio||"";if(!i)return{ok:!1,error:"intent_missing_studio"};let s=ko(t,"stages",e.stage,"units");if(!ip(s))return{ok:!1,error:"units_dir_not_found",details:{stage:e.stage}};let o=lx(s).filter(u=>u.endsWith(".md")).find(u=>{let l=u.replace(/\.md$/,"");if(l===e.unit||l.startsWith(`${e.unit}-`))return!0;let d=e.unit.match(/^(?:unit-)?(\d+)$/i);if(d){let f=Number.parseInt(d[1],10),p=l.match(/^unit-(\d+)-/);if(p&&Number.parseInt(p[1],10)===f)return!0}return!1});if(!o)return{ok:!1,error:"unit_not_found",details:{stage:e.stage,unit:e.unit}};let a=ko(s,o);if(Array.isArray(e.iterations)&&e.iterations.length===0)return{ok:!1,error:"use_haiku_unit_reset",details:{message:"Passing iterations: [] does NOT reset a unit \u2014 set_unit_iterations with no entries synthesizes a COMPLETED state (one advance per hat). To return a unit to pending (clear iterations, discard its worktree), use haiku_unit_reset { intent, stage, unit }."}};let c;if(e.iterations&&e.iterations.length>0){let u=new Date().toISOString();c=e.iterations.map(l=>({hat:l.hat,result:l.result,at:l.at||u}))}else{let u=Es(i,e.stage);if(u.length===0)return{ok:!1,error:"no_hats_defined_for_stage",details:{studio:i,stage:e.stage}};let l=new Date().toISOString();c=u.map(d=>({hat:d,result:"advance",at:l}))}return Ne(a,"iterations",c),{ok:!0,unit_file:o,iterations_written:c.length}}function fx(e){let t=ce(e.slug),n=e.stage?ko(t,"stages",e.stage,"feedback"):ko(t,"feedback");if(!ip(n))return{ok:!1,error:"feedback_dir_not_found"};let r=e.feedbackId.match(/^(?:FB-)?(\d+)/i);if(!r)return{ok:!1,error:"invalid_feedback_id_shape"};let i=Number.parseInt(r[1],10),s=lx(n).filter(c=>c.endsWith(".md")).find(c=>{let u=c.match(/^(\d+)-/);return u&&Number.parseInt(u[1],10)===i});if(!s)return{ok:!1,error:"feedback_not_found"};let o=ko(n,s),a=[];for(let[c,u]of Object.entries(e.patch))Ne(o,c,u),a.push(c);return{ok:!0,written_keys:a}}function e6(e){let t=ce(e.slug),n=ko(t,"intent.md");if(!ip(n))return{ok:!1,error:"intent_not_found"};let i=re(Nv(n,"utf8")).data.studio||"";return i?{ok:!0,position:$f({slug:e.slug,intentDir:t,studio:i})}:{ok:!1,error:"intent_missing_studio"}}var W_t,Tbe=v(()=>{"use strict";W_t=Re(Kt(),1);ze();ji();Oa();f1();Xf()});import{existsSync as t6,readdirSync as Y_t,readFileSync as Z_t}from"node:fs";import{join as n6}from"node:path";function h6n(){let e=n6(ve(),"intents");if(!t6(e))return[];let t=[];for(let n of Y_t(e,{withFileTypes:!0})){if(!n.isDirectory())continue;let r=n6(e,n.name,"intent.md");if(t6(r))try{let i=re(Z_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 m6n(e){if(!yn(e))return{ok:!1,error:"invalid_slug"};let t=ce(e),n=n6(t,"intent.md");if(!t6(n))return{ok:!1,error:"intent_not_found"};let r=re(Z_t(n,"utf8")).data,i=n6(t,"stages"),s=t6(i)?Y_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 J_t(e){e.get("/debug",async(t,n)=>{n.type("text/html; charset=utf-8").send(Wd)}),e.get("/debug/:slug",async(t,n)=>{n.type("text/html; charset=utf-8").send(Wd)}),e.get("/api/debug/intents",async(t,n)=>{Gn(t,n,null)&&n.send({intents:h6n()})}),e.get("/api/debug/intents/:intent",async(t,n)=>{if(!Gn(t,n,null))return;let r=m6n(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(!yn(r)){n.status(400).send({error:"invalid_slug"});return}try{let i=e6({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(!yn(r)){n.status(400).send({error:"invalid_slug"});return}if(!cx(t,n,r))return;if(!K_t.has(i)){n.status(400).send({error:"unsupported_op",message:`op must be one of: ${[...K_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(!yn(a)){n.status(400).send({error:"invalid_stage"});return}o=XZ({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:dx({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=dx({slug:r,field:a,value:s.value});break}case"reset_drift":{o=QZ({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(!yn(a)){n.status(400).send({error:"invalid_stage"});return}if(!yn(c)){n.status(400).send({error:"invalid_unit"});return}let u=Array.isArray(s.iterations)?s.iterations:void 0;o=$Z({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&&!yn(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:fx({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=fx({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 K_t,X_t=v(()=>{"use strict";JZ();Tbe();ze();qg();Pv();K_t=new Set(["force_stage_complete","set_intent_field","reset_drift","mutate_feedback","set_unit_iterations"])});function Q_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:ud,plugin_version:g6n})),e.get("/",async(n,r)=>{r.type("text/html; charset=utf-8").send(Wd)}),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(Wd);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)?kD:wD;i.status(413).send({error:"payload_too_large",max_bytes:l});return}i.status(o).send({error:"internal_error",message:a})})}var g6n,$_t=v(()=>{"use strict";vT();JZ();p_();g6n=vS()});function vbe(e){return e.match(/\/(?:api\/session|review|question|direction|files|mockups|wireframe|stage-artifacts|question-image)\/([^/]+)/)?.[1]??null}async function eTt(e,t,n){if(t.statusCode>=400||t.statusCode===204||t.statusCode===205||t.statusCode===304)return n;let r=vbe(e.url.split("?")[0]);if(!r||!D1(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=gbe(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 tTt=v(()=>{"use strict";Qh()});function ta(e){try{let t={ts:new Date().toISOString(),reqId:e.reqId,action:e.action,status:e.status,...e.intent?{intent:e.intent}:{},...e.stage?{stage:e.stage}:{},...e.feedbackId?{feedbackId:e.feedbackId}:{},...e.detail?{detail:e.detail}:{}};process.stderr.write(`[haiku-mcp][feedback] ${JSON.stringify(t)} -`)}catch{}}var Rbe=v(()=>{"use strict"});import{readFile as y6n}from"node:fs/promises";import{dirname as r6,relative as S6n,resolve as wbe,sep as Abe}from"node:path";function kbe(e){return e.length>0&&!/^[a-z][a-z0-9+.-]*:/i.test(e)&&!e.startsWith("//")&&!e.startsWith("/")&&!e.startsWith("#")}function rTt(e,t){let n=t.endsWith(Abe)?t:t+Abe;return e===t||e.startsWith(n)}function nTt(e,t,n){return e.replace(/url\(\s*(['"]?)([^'")]+)\1\s*\)/gi,(r,i,s)=>{let o=s.trim();return kbe(o)?`url("${S6n(n,wbe(t,o)).split(Abe).join("/")}")`:r})}async function iTt(e,t,n,r=0){if(r>3)return null;let i;try{i=await y6n(e,"utf-8")}catch{return null}let s=r6(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(!kbe(l))continue;let f=wbe(s,l);if(!rTt(f,t))continue;let p=await iTt(f,t,n,r+1);p!=null&&(a+=nTt(i.slice(c,d),s,n),a+=p,c=d+u[0].length)}return a+=nTt(i.slice(c),s,n),a}async function i6(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||!kbe(f))continue;let p=wbe(r,f);if(!rTt(p,n))continue;let h=await iTt(p,n,r);h!=null&&(s+=e.slice(o,u),s+=``,o=u+c.length)}return s+=e.slice(o),s}function sTt(e,t){let n=t.split(/[/\\]+/).filter(Boolean).length-1,r=r6(e);for(let i=0;i{"use strict"});import{readFile as oTt,realpath as xbe}from"node:fs/promises";import{extname as aTt,resolve as Obe}from"node:path";async function Pbe(e,t){let n=Obe(e),r=Obe(n,t);if(!r.startsWith(`${n}/`)&&r!==n)return{ok:!1};try{let i=await xbe(r).catch(()=>null),s=await xbe(n).catch(()=>n);return!i||!i.startsWith(`${s}/`)&&i!==s?{ok:!1}:{ok:!0,path:i}}catch{return{ok:!1}}}function j1(e,t,n){return wut.safeParse({sessionId:t,path:n}).success?!1:(e.status(403).send({error:"forbidden_path_traversal"}),!0)}async function Nbe(e,t){try{let n=await oTt(t),r=aTt(t).toLowerCase(),i=b6n[r],s=E6n.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 Cbe(e,t,n){if(!_6n.has(aTt(t).toLowerCase()))return Nbe(e,t);let r;try{let i=await oTt(t,"utf-8"),s=await xbe(n).catch(()=>Obe(n));r=await i6(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 px(e,t,n){let r=await Pbe(t,n);if(!r.ok){e.status(403).send({error:"forbidden_path_traversal"});return}return Cbe(e,r.path,t)}var b6n,E6n,_6n,Mbe=v(()=>{"use strict";vT();Ibe();b6n={".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"},E6n=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);_6n=new Set([".html",".htm"])});import{join as T6n}from"node:path";function cTt(e){e.get("/api/feedback/:intent/:stage",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(yn(r)&&yn(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(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let s=t.query?.status;if(s&&!Bb.includes(s)){n.status(400).send({error:`Invalid status filter. Must be one of: ${Bb.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(!yn(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&&!Bb.includes(i)){n.status(400).send({error:`Invalid status filter. Must be one of: ${Bb.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(!(yn(r)&&yn(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=T6n(ce(r),"stages",i,"feedback");await px(n,o,s)}),e.post("/api/feedback/:intent/:stage",{bodyLimit:kD},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(yn(r)&&yn(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(!ux(t,n,r))return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let s=Gb(n,t.body,pfe);if(!s.ok)return;let o=s.data.inline_anchor,a=pv(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:CK},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!ux(t,n,r))return;let o=Gb(n,t.body,hfe);if(!o.ok)return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let a=_Se(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(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}if(!ux(t,n,r))return;let o=vSe(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(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!ux(t,n,r))return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let o=RZ(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:CK},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!ux(t,n,r))return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let o=Gb(n,t.body,mfe);if(!o.ok)return;let a=pv(o.data.body),c=TSe(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 uTt=v(()=>{"use strict";vT();kye();ze();Rbe();qg();Mbe();Pv()});import{realpath as lTt}from"node:fs/promises";import{dirname as dTt,join as v6n,resolve as fTt}from"node:path";function pTt(e){e.get("/files/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!Gn(t,n,r)||j1(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?fTt(dTt(dTt(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 Pbe(l,i);if(!d.ok){u=!0;continue}return Cbe(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)||j1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return px(n,v6n(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)||j1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return px(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)||j1(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 px(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 lTt(a).catch(()=>null),l=await lTt(c).catch(()=>fTt(c));if(!u||!u.startsWith(`${l}/`)&&u!==l){n.status(403).send("Forbidden");return}}catch{n.status(403).send("Forbidden");return}return Nbe(n,a)})}var hTt=v(()=>{"use strict";$c();qg();Mbe()});import{EventEmitter as R6n}from"node:events";function mTt(e,t){let n=`intent:${e}`;return s6.on(n,t),()=>{s6.off(n,t)}}function Kd(e,t){s6.emit(`intent:${e}`,t)}var s6,hx=v(()=>{"use strict";s6=new R6n;s6.setMaxListeners(200)});import{spawn as A6n}from"node:child_process";import{accessSync as w6n,constants as k6n,existsSync as I6n,mkdirSync as x6n,readdirSync as O6n,rmSync as P6n}from"node:fs";import{homedir as Ube,tmpdir as N6n}from"node:os";import{join as na}from"node:path";function C6n(e=process.platform,t=process.env,n=Ube(),r=i=>{try{return O6n(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 M6n(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(Ube(),"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 D6n(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 L6n(e=process.platform,t=process.env,n=i=>{try{return w6n(i,k6n.X_OK),!0}catch{return I6n(i)}},r){let i=t.HAIKU_MICRO_APP_BROWSER;if(i)return n(i)?i:null;let s=C6n(e,t,Ube(),r);if(s&&n(s))return s;for(let o of M6n(e,t)){let a=D6n(o,t,n);if(a)return a}return null}function STt(){return Dbe===void 0&&(Dbe=L6n()),Dbe}function U6n(){return process.env.HAIKU_DISABLE_MICRO_APP==="1"?!1:STt()!==null}function F6n(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 j6n(e,t=na(N6n(),"haiku-micro-app")){return na(t,e)}function bTt(e,t={}){if(!U6n())return!1;let n=STt();if(!n)return!1;let r=t.sessionId??`anon-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,i=Cv.get(r);if(i&&i.child.exitCode===null&&!i.child.killed)return!0;let s=j6n(r);try{x6n(s,{recursive:!0})}catch{return!1}try{let o=A6n(n,F6n(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.`),Cv.delete(r),Lbe(s)}),Cv.set(r,{child:o,profileDir:s}),H6n(),!0}catch(o){return console.error(`[haiku-micro-app] spawn threw: ${o instanceof Error?o.message:String(o)}`),Lbe(s),!1}}function Lbe(e){try{P6n(e,{recursive:!0,force:!0})}catch{}}function gTt(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 mx(e){let t=Cv.get(e);return t?(Cv.delete(e),gTt(t,"SIGTERM"),setTimeout(()=>{gTt(t,"SIGKILL")},2e3).unref?.(),Lbe(t.profileDir),!0):!1}function ETt(){let e=0;for(let[t]of Cv)t.startsWith("anon-")||$t(t)||(mx(t),e+=1);return e}function H6n(){if(yTt)return;yTt=!0;let e=()=>{for(let[t]of Cv)mx(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var Cv,Dbe,yTt,H1=v(()=>{"use strict";$c();Cv=new Map;yTt=!1});import{existsSync as _Tt,readdirSync as q6n,readFileSync as B6n}from"node:fs";import{join as a6}from"node:path";function o6(e,t){return t?a6(t,"intents",e):ce(e)}function G6n(e,t){let n=a6(o6(e,t),"intent.md");if(!_Tt(n))return null;let{data:r}=re(B6n(n,"utf8"));return r}function TTt(e,t){let n=G6n(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,o6(e,t)),c=a??s[s.length-1],l=bv({slug:e,studio:r,stage:c,intentDir:o6(e,t),intentMode:o}).phase??"",d=z6n.has(l)?l:"",f;if(d==="elaborate"){let m=a6(o6(e,t),"stages",c),g=a6(m,"units"),y=_Tt(g)?q6n(g).filter(S=>S.endsWith(".md")).map(S=>S.replace(/\.md$/,"")):[],b=M0({slug:e,studio:r,stage:c,stageDir:m,unitNames:y,mode:o});b.length>0&&(f=Aye(b))}let p,h;if(a===null){let m=typeof n.sealed_at=="string"&&n.sealed_at.length>0,g=N0(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 z6n,vTt=v(()=>{"use strict";ji();Oa();f1();YL();ze();z6n=new Set(["elaborate","execute","review","gate"])});import{execFileSync as V6n}from"node:child_process";function c6(e){try{return V6n(e[0],e.slice(1),{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:5e3}).trim()}catch{return""}}function W6n(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 K6n(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=c6(["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 Y6n(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 Z6n(e){if(!Ee())return null;let t=`haiku/${e}/main`,n=c6(["git","rev-parse","--verify",t])||c6(["git","rev-parse","--verify",`origin/${t}`]);if(!n)return null;let r=c6(["git","remote","get-url","origin"]),i=W6n(r);if(!i)return null;let s=K6n(n,i);if(!s)return null;let o=Y6n(i,s.source,s.prNumber);return o?{url:o,source:s.source,prNumber:s.prNumber,matchedSha:n}:null}function ATt(e){let t=Date.now(),n=RTt.get(e);if(n&&n.expiresAt>t)return n.value;let r=Z6n(e);return RTt.set(e,{value:r,expiresAt:t+J6n}),r}var J6n,RTt,wTt=v(()=>{"use strict";Eb();J6n=3e4,RTt=new Map});var kTt=v(()=>{});var FTt=w(cn=>{"use strict";var Hbe=Symbol.for("react.transitional.element"),X6n=Symbol.for("react.portal"),Q6n=Symbol.for("react.fragment"),$6n=Symbol.for("react.strict_mode"),e5n=Symbol.for("react.profiler"),t5n=Symbol.for("react.consumer"),n5n=Symbol.for("react.context"),r5n=Symbol.for("react.forward_ref"),i5n=Symbol.for("react.suspense"),s5n=Symbol.for("react.memo"),NTt=Symbol.for("react.lazy"),o5n=Symbol.for("react.activity"),ITt=Symbol.iterator;function a5n(e){return e===null||typeof e!="object"?null:(e=ITt&&e[ITt]||e["@@iterator"],typeof e=="function"?e:null)}var CTt={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},MTt=Object.assign,DTt={};function yx(e,t,n){this.props=e,this.context=t,this.refs=DTt,this.updater=n||CTt}yx.prototype.isReactComponent={};yx.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")};yx.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function LTt(){}LTt.prototype=yx.prototype;function qbe(e,t,n){this.props=e,this.context=t,this.refs=DTt,this.updater=n||CTt}var Bbe=qbe.prototype=new LTt;Bbe.constructor=qbe;MTt(Bbe,yx.prototype);Bbe.isPureReactComponent=!0;var xTt=Array.isArray;function jbe(){}var Ai={H:null,A:null,T:null,S:null},UTt=Object.prototype.hasOwnProperty;function zbe(e,t,n){var r=n.ref;return{$$typeof:Hbe,type:e,key:t,ref:r!==void 0?r:null,props:n}}function c5n(e,t){return zbe(e.type,t,e.props)}function Gbe(e){return typeof e=="object"&&e!==null&&e.$$typeof===Hbe}function u5n(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var OTt=/\/+/g;function Fbe(e,t){return typeof e=="object"&&e!==null&&e.key!=null?u5n(""+e.key):t.toString(36)}function l5n(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(jbe,jbe):(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 gx(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 Hbe:case X6n:o=!0;break;case NTt:return o=e._init,gx(o(e._payload),t,n,r,i)}}if(o)return i=i(e),o=r===""?"."+Fbe(e,0):r,xTt(i)?(n="",o!=null&&(n=o.replace(OTt,"$&/")+"/"),gx(i,t,n,"",function(u){return u})):i!=null&&(Gbe(i)&&(i=c5n(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(xTt(e))for(var c=0;c{"use strict";process.env.NODE_ENV!=="production"&&(function(){function e(D,ne){Object.defineProperty(r.prototype,D,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",ne[0],ne[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,ne){D=(D=D.constructor)&&(D.displayName||D.name)||"ReactClass";var Ce=D+"."+ne;Ae[Ce]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",ne,D),Ae[Ce]=!0)}function r(D,ne,Ce){this.props=D,this.context=ne,this.refs=oe,this.updater=Ce||z}function i(){}function s(D,ne,Ce){this.props=D,this.context=ne,this.refs=oe,this.updater=Ce||z}function o(){}function a(D){return""+D}function c(D){try{a(D);var ne=!1}catch{ne=!0}if(ne){ne=console;var Ce=ne.error,Se=typeof Symbol=="function"&&Symbol.toStringTag&&D[Symbol.toStringTag]||D.constructor.name||"Object";return Ce.call(ne,"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 j:return"Suspense";case H: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 ne=D.render;return D=D.displayName,D||(D=ne.displayName||ne.name||"",D=D!==""?"ForwardRef("+D+")":"ForwardRef"),D;case K:return ne=D.displayName||null,ne!==null?ne:u(D.type)||"Memo";case ee:ne=D._payload,D=D._init;try{return u(D(ne))}catch{}}return null}function l(D){if(D===Q)return"<>";if(typeof D=="object"&&D!==null&&D.$$typeof===ee)return"<...>";try{var ne=u(D);return ne?"<"+ne+">":"<...>"}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(Un.call(D,"key")){var ne=Object.getOwnPropertyDescriptor(D,"key").get;if(ne&&ne.isReactWarning)return!1}return D.key!==void 0}function h(D,ne){function Ce(){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)",ne))}Ce.isReactWarning=!0,Object.defineProperty(D,"key",{get:Ce,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,ne,Ce,Se,at,Pn){var It=Ce.ref;return D={$$typeof:$,type:D,key:ne,props:Ce,_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:Pn}),Object.freeze&&(Object.freeze(D.props),Object.freeze(D)),D}function y(D,ne){return ne=g(D.type,ne,D.props,D._owner,D._debugStack,D._debugTask),D._store&&(ne._store.validated=D._store.validated),ne}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 ne={"=":"=0",":":"=2"};return"$"+D.replace(/[=:]/g,function(Ce){return ne[Ce]})}function _(D,ne){return typeof D=="object"&&D!==null&&D.key!=null?(c(D.key),E(""+D.key)):ne.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(ne){D.status==="pending"&&(D.status="fulfilled",D.value=ne)},function(ne){D.status==="pending"&&(D.status="rejected",D.reason=ne)})),D.status){case"fulfilled":return D.value;case"rejected":throw D.reason}}throw D}function R(D,ne,Ce,Se,at){var Pn=typeof D;(Pn==="undefined"||Pn==="boolean")&&(D=null);var It=!1;if(D===null)It=!0;else switch(Pn){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),ne,Ce,Se,at)}}if(It){It=D,at=at(It);var dn=Se===""?"."+_(It,0):Se;return _e(at)?(Ce="",dn!=null&&(Ce=dn.replace(Ii,"$&/")+"/"),R(at,ne,Ce,"",function(ra){return ra})):at!=null&&(S(at)&&(at.key!=null&&(It&&It.key===at.key||c(at.key)),Ce=y(at,Ce+(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&&(Ce._store.validated=2),at=Ce),ne.push(at)),1}if(It=0,dn=Se===""?".":Se+":",_e(D))for(var _t=0;_t`,o=u+c.length)}return s+=e.slice(o),s}function aTt(e,t){let n=t.split(/[/\\]+/).filter(Boolean).length-1,r=r6(e);for(let i=0;i{"use strict"});import{readFile as cTt,realpath as Obe}from"node:fs/promises";import{extname as uTt,resolve as Pbe}from"node:path";async function Nbe(e,t){let n=Pbe(e),r=Pbe(n,t);if(!r.startsWith(`${n}/`)&&r!==n)return{ok:!1};try{let i=await Obe(r).catch(()=>null),s=await Obe(n).catch(()=>n);return!i||!i.startsWith(`${s}/`)&&i!==s?{ok:!1}:{ok:!0,path:i}}catch{return{ok:!1}}}function j1(e,t,n){return Iut.safeParse({sessionId:t,path:n}).success?!1:(e.status(403).send({error:"forbidden_path_traversal"}),!0)}async function Cbe(e,t){try{let n=await cTt(t),r=uTt(t).toLowerCase(),i=_6n[r],s=T6n.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 Mbe(e,t,n){if(!v6n.has(uTt(t).toLowerCase()))return Cbe(e,t);let r;try{let i=await cTt(t,"utf-8"),s=await Obe(n).catch(()=>Pbe(n));r=await i6(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 px(e,t,n){let r=await Nbe(t,n);if(!r.ok){e.status(403).send({error:"forbidden_path_traversal"});return}return Mbe(e,r.path,t)}var _6n,T6n,v6n,Dbe=v(()=>{"use strict";vT();xbe();_6n={".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"},T6n=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);v6n=new Set([".html",".htm"])});import{join as R6n}from"node:path";function lTt(e){e.get("/api/feedback/:intent/:stage",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(yn(r)&&yn(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(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let s=t.query?.status;if(s&&!Bb.includes(s)){n.status(400).send({error:`Invalid status filter. Must be one of: ${Bb.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(!yn(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&&!Bb.includes(i)){n.status(400).send({error:`Invalid status filter. Must be one of: ${Bb.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(!(yn(r)&&yn(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=R6n(ce(r),"stages",i,"feedback");await px(n,o,s)}),e.post("/api/feedback/:intent/:stage",{bodyLimit:kD},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(yn(r)&&yn(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(!ux(t,n,r))return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let s=Gb(n,t.body,hfe);if(!s.ok)return;let o=s.data.inline_anchor,a=pv(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:CK},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!ux(t,n,r))return;let o=Gb(n,t.body,mfe);if(!o.ok)return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let a=TSe(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(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}if(!ux(t,n,r))return;let o=RSe(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(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!ux(t,n,r))return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let o=RZ(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:CK},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(yn(r)&&yn(i)&&yn(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(!ux(t,n,r))return;if(!$h(r,i)){n.status(404).send({error:"Stage not found"});return}let o=Gb(n,t.body,gfe);if(!o.ok)return;let a=pv(o.data.body),c=vSe(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 dTt=v(()=>{"use strict";vT();Iye();ze();Abe();qg();Dbe();Pv()});import{realpath as fTt}from"node:fs/promises";import{dirname as pTt,join as A6n,resolve as hTt}from"node:path";function mTt(e){e.get("/files/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!Gn(t,n,r)||j1(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?hTt(pTt(pTt(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 Nbe(l,i);if(!d.ok){u=!0;continue}return Mbe(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)||j1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return px(n,A6n(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)||j1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return px(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)||j1(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 px(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 fTt(a).catch(()=>null),l=await fTt(c).catch(()=>hTt(c));if(!u||!u.startsWith(`${l}/`)&&u!==l){n.status(403).send("Forbidden");return}}catch{n.status(403).send("Forbidden");return}return Cbe(n,a)})}var gTt=v(()=>{"use strict";$c();qg();Dbe()});import{EventEmitter as w6n}from"node:events";function yTt(e,t){let n=`intent:${e}`;return s6.on(n,t),()=>{s6.off(n,t)}}function Kd(e,t){s6.emit(`intent:${e}`,t)}var s6,hx=v(()=>{"use strict";s6=new w6n;s6.setMaxListeners(200)});import{spawn as k6n}from"node:child_process";import{accessSync as I6n,constants as x6n,existsSync as O6n,mkdirSync as P6n,readdirSync as N6n,rmSync as C6n}from"node:fs";import{homedir as Fbe,tmpdir as M6n}from"node:os";import{join as na}from"node:path";function D6n(e=process.platform,t=process.env,n=Fbe(),r=i=>{try{return N6n(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 L6n(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(Fbe(),"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 U6n(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 F6n(e=process.platform,t=process.env,n=i=>{try{return I6n(i,x6n.X_OK),!0}catch{return O6n(i)}},r){let i=t.HAIKU_MICRO_APP_BROWSER;if(i)return n(i)?i:null;let s=D6n(e,t,Fbe(),r);if(s&&n(s))return s;for(let o of L6n(e,t)){let a=U6n(o,t,n);if(a)return a}return null}function ETt(){return Lbe===void 0&&(Lbe=F6n()),Lbe}function j6n(){return process.env.HAIKU_DISABLE_MICRO_APP==="1"?!1:ETt()!==null}function H6n(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 q6n(e,t=na(M6n(),"haiku-micro-app")){return na(t,e)}function _Tt(e,t={}){if(!j6n())return!1;let n=ETt();if(!n)return!1;let r=t.sessionId??`anon-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,i=Cv.get(r);if(i&&i.child.exitCode===null&&!i.child.killed)return!0;let s=q6n(r);try{P6n(s,{recursive:!0})}catch{return!1}try{let o=k6n(n,H6n(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.`),Cv.delete(r),Ube(s)}),Cv.set(r,{child:o,profileDir:s}),B6n(),!0}catch(o){return console.error(`[haiku-micro-app] spawn threw: ${o instanceof Error?o.message:String(o)}`),Ube(s),!1}}function Ube(e){try{C6n(e,{recursive:!0,force:!0})}catch{}}function STt(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 mx(e){let t=Cv.get(e);return t?(Cv.delete(e),STt(t,"SIGTERM"),setTimeout(()=>{STt(t,"SIGKILL")},2e3).unref?.(),Ube(t.profileDir),!0):!1}function TTt(){let e=0;for(let[t]of Cv)t.startsWith("anon-")||$t(t)||(mx(t),e+=1);return e}function B6n(){if(bTt)return;bTt=!0;let e=()=>{for(let[t]of Cv)mx(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var Cv,Lbe,bTt,H1=v(()=>{"use strict";$c();Cv=new Map;bTt=!1});import{existsSync as vTt,readdirSync as z6n,readFileSync as G6n}from"node:fs";import{join as a6}from"node:path";function o6(e,t){return t?a6(t,"intents",e):ce(e)}function W6n(e,t){let n=a6(o6(e,t),"intent.md");if(!vTt(n))return null;let{data:r}=re(G6n(n,"utf8"));return r}function RTt(e,t){let n=W6n(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,o6(e,t)),c=a??s[s.length-1],l=bv({slug:e,studio:r,stage:c,intentDir:o6(e,t),intentMode:o}).phase??"",d=V6n.has(l)?l:"",f;if(d==="elaborate"){let m=a6(o6(e,t),"stages",c),g=a6(m,"units"),y=vTt(g)?z6n(g).filter(S=>S.endsWith(".md")).map(S=>S.replace(/\.md$/,"")):[],b=M0({slug:e,studio:r,stage:c,stageDir:m,unitNames:y,mode:o});b.length>0&&(f=wye(b))}let p,h;if(a===null){let m=typeof n.sealed_at=="string"&&n.sealed_at.length>0,g=N0(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 V6n,ATt=v(()=>{"use strict";ji();Oa();f1();YL();ze();V6n=new Set(["elaborate","execute","review","gate"])});import{execFileSync as K6n}from"node:child_process";function c6(e){try{return K6n(e[0],e.slice(1),{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:5e3}).trim()}catch{return""}}function Y6n(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 Z6n(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=c6(["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 X6n(e){if(!Ee())return null;let t=`haiku/${e}/main`,n=c6(["git","rev-parse","--verify",t])||c6(["git","rev-parse","--verify",`origin/${t}`]);if(!n)return null;let r=c6(["git","remote","get-url","origin"]),i=Y6n(r);if(!i)return null;let s=Z6n(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 kTt(e){let t=Date.now(),n=wTt.get(e);if(n&&n.expiresAt>t)return n.value;let r=X6n(e);return wTt.set(e,{value:r,expiresAt:t+Q6n}),r}var Q6n,wTt,ITt=v(()=>{"use strict";Eb();Q6n=3e4,wTt=new Map});var xTt=v(()=>{});var HTt=w(cn=>{"use strict";var qbe=Symbol.for("react.transitional.element"),$6n=Symbol.for("react.portal"),e5n=Symbol.for("react.fragment"),t5n=Symbol.for("react.strict_mode"),n5n=Symbol.for("react.profiler"),r5n=Symbol.for("react.consumer"),i5n=Symbol.for("react.context"),s5n=Symbol.for("react.forward_ref"),o5n=Symbol.for("react.suspense"),a5n=Symbol.for("react.memo"),MTt=Symbol.for("react.lazy"),c5n=Symbol.for("react.activity"),OTt=Symbol.iterator;function u5n(e){return e===null||typeof e!="object"?null:(e=OTt&&e[OTt]||e["@@iterator"],typeof e=="function"?e:null)}var DTt={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},LTt=Object.assign,UTt={};function yx(e,t,n){this.props=e,this.context=t,this.refs=UTt,this.updater=n||DTt}yx.prototype.isReactComponent={};yx.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")};yx.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function FTt(){}FTt.prototype=yx.prototype;function Bbe(e,t,n){this.props=e,this.context=t,this.refs=UTt,this.updater=n||DTt}var zbe=Bbe.prototype=new FTt;zbe.constructor=Bbe;LTt(zbe,yx.prototype);zbe.isPureReactComponent=!0;var PTt=Array.isArray;function Hbe(){}var Ai={H:null,A:null,T:null,S:null},jTt=Object.prototype.hasOwnProperty;function Gbe(e,t,n){var r=n.ref;return{$$typeof:qbe,type:e,key:t,ref:r!==void 0?r:null,props:n}}function l5n(e,t){return Gbe(e.type,t,e.props)}function Vbe(e){return typeof e=="object"&&e!==null&&e.$$typeof===qbe}function d5n(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var NTt=/\/+/g;function jbe(e,t){return typeof e=="object"&&e!==null&&e.key!=null?d5n(""+e.key):t.toString(36)}function f5n(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(Hbe,Hbe):(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 gx(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 qbe:case $6n:o=!0;break;case MTt:return o=e._init,gx(o(e._payload),t,n,r,i)}}if(o)return i=i(e),o=r===""?"."+jbe(e,0):r,PTt(i)?(n="",o!=null&&(n=o.replace(NTt,"$&/")+"/"),gx(i,t,n,"",function(u){return u})):i!=null&&(Vbe(i)&&(i=l5n(i,n+(i.key==null||e&&e.key===i.key?"":(""+i.key).replace(NTt,"$&/")+"/")+o)),t.push(i)),1;o=0;var a=r===""?".":r+":";if(PTt(e))for(var c=0;c{"use strict";process.env.NODE_ENV!=="production"&&(function(){function e(D,ne){Object.defineProperty(r.prototype,D,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",ne[0],ne[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,ne){D=(D=D.constructor)&&(D.displayName||D.name)||"ReactClass";var Ce=D+"."+ne;Ae[Ce]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",ne,D),Ae[Ce]=!0)}function r(D,ne,Ce){this.props=D,this.context=ne,this.refs=oe,this.updater=Ce||z}function i(){}function s(D,ne,Ce){this.props=D,this.context=ne,this.refs=oe,this.updater=Ce||z}function o(){}function a(D){return""+D}function c(D){try{a(D);var ne=!1}catch{ne=!0}if(ne){ne=console;var Ce=ne.error,Se=typeof Symbol=="function"&&Symbol.toStringTag&&D[Symbol.toStringTag]||D.constructor.name||"Object";return Ce.call(ne,"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 j:return"Suspense";case H: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 ne=D.render;return D=D.displayName,D||(D=ne.displayName||ne.name||"",D=D!==""?"ForwardRef("+D+")":"ForwardRef"),D;case K:return ne=D.displayName||null,ne!==null?ne:u(D.type)||"Memo";case ee:ne=D._payload,D=D._init;try{return u(D(ne))}catch{}}return null}function l(D){if(D===Q)return"<>";if(typeof D=="object"&&D!==null&&D.$$typeof===ee)return"<...>";try{var ne=u(D);return ne?"<"+ne+">":"<...>"}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(Un.call(D,"key")){var ne=Object.getOwnPropertyDescriptor(D,"key").get;if(ne&&ne.isReactWarning)return!1}return D.key!==void 0}function h(D,ne){function Ce(){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)",ne))}Ce.isReactWarning=!0,Object.defineProperty(D,"key",{get:Ce,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,ne,Ce,Se,at,Pn){var It=Ce.ref;return D={$$typeof:$,type:D,key:ne,props:Ce,_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:Pn}),Object.freeze&&(Object.freeze(D.props),Object.freeze(D)),D}function y(D,ne){return ne=g(D.type,ne,D.props,D._owner,D._debugStack,D._debugTask),D._store&&(ne._store.validated=D._store.validated),ne}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 ne={"=":"=0",":":"=2"};return"$"+D.replace(/[=:]/g,function(Ce){return ne[Ce]})}function _(D,ne){return typeof D=="object"&&D!==null&&D.key!=null?(c(D.key),E(""+D.key)):ne.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(ne){D.status==="pending"&&(D.status="fulfilled",D.value=ne)},function(ne){D.status==="pending"&&(D.status="rejected",D.reason=ne)})),D.status){case"fulfilled":return D.value;case"rejected":throw D.reason}}throw D}function R(D,ne,Ce,Se,at){var Pn=typeof D;(Pn==="undefined"||Pn==="boolean")&&(D=null);var It=!1;if(D===null)It=!0;else switch(Pn){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),ne,Ce,Se,at)}}if(It){It=D,at=at(It);var dn=Se===""?"."+_(It,0):Se;return _e(at)?(Ce="",dn!=null&&(Ce=dn.replace(Ii,"$&/")+"/"),R(at,ne,Ce,"",function(ra){return ra})):at!=null&&(S(at)&&(at.key!=null&&(It&&It.key===at.key||c(at.key)),Ce=y(at,Ce+(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&&(Ce._store.validated=2),at=Ce),ne.push(at)),1}if(It=0,dn=Se===""?".":Se+":",_e(D))for(var _t=0;_t import('./MyComponent')) @@ -977,41 +977,41 @@ Your code should look like: 1. You might have mismatching versions of React and the renderer (such as React DOM) 2. You might be breaking the Rules of Hooks 3. You might have more than one copy of React in the same app -See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`),D}function P(){Ue.asyncTransitions--}function N(D){if(Rr===null)try{var ne=("require"+Math.random()).slice(0,7);Rr=(l6&&l6[ne]).call(l6,"timers").setImmediate}catch{Rr=function(Se){ly===!1&&(ly=!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(Hl){if(L(ne,Ce),Ce===0){try{W(Se),N(function(){return G(Hl,_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?dr(l(D)):lE)},en.createRef=function(){var D={current:null};return Object.seal(D),D},en.forwardRef=function(D){D!=null&&D.$$typeof===K?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 ne={$$typeof:M,render:D},Ce;return Object.defineProperty(ne,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ce},set:function(Se){Ce=Se,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Se}),D.displayName=Se)}}),ne},en.isValidElement=S,en.lazy=function(D){D={_status:-1,_result:D};var ne={$$typeof:ee,_payload:D,_init:x},Ce={name:"lazy",start:-1,end:-1,value:null,owner:null,debugStack:Error("react-stack-top-frame"),debugTask:console.createTask?console.createTask("lazy()"):null};return D._ioInfo=Ce,ne._debugInfo=[{awaited:Ce}],ne},en.memo=function(D,ne){D==null&&console.error("memo: The first argument must be a component. Instead received: %s",D===null?"null":typeof D),ne={$$typeof:K,type:D,compare:ne===void 0?null:ne};var Ce;return Object.defineProperty(ne,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ce},set:function(Se){Ce=Se,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Se}),D.displayName=Se)}}),ne},en.startTransition=function(D){var ne=Ue.T,Ce={};Ce._updatedFibers=new Set,Ue.T=Ce;try{var Se=D(),at=Ue.S;at!==null&&at(Ce,Se),typeof Se=="object"&&Se!==null&&typeof Se.then=="function"&&(Ue.asyncTransitions++,Se.then(P,P),Se.then(o,_p))}catch(Pn){_p(Pn)}finally{ne===null&&Ce._updatedFibers&&(D=Ce._updatedFibers.size,Ce._updatedFibers.clear(),10{"use strict";process.env.NODE_ENV==="production"?Vbe.exports=FTt():Vbe.exports=jTt()});var p5n,qTt=v(()=>{p5n=Re(HTt(),1)});var BTt=v(()=>{});var zTt=v(()=>{});var GTt=v(()=>{});var VTt=v(()=>{kTt();qTt();BTt();zTt();GTt()});var WTt=v(()=>{});function YTt(e){return e==="user"?"spec gate":e==="cross-stage-consistency"?"cross-stage review":`${e} review`}function ZTt(e){return e==="user"?"approval gate":e==="quality_gates"?"quality gates":e==="cross-stage-consistency"?"cross-stage approval":`${e} approval`}function d6(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 Wbe(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(...KTt(n,"review",t,o)),a.push({key:"execute",label:"execute",done:r}),a.push(...KTt(i,"approve",r,o)),s!=null&&a.push({key:"observations",label:"observations",done:s}),d6(a)}function KTt(e,t,n,r=!0){let i=[],s=[],o=0,a=t==="review"?"adversarial review":"adversarial approval",c=l=>t==="review"?YTt(l):ZTt(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)b5n.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 b5n,JTt=v(()=>{b5n=new Set(["spec","quality_gates","user"])});var XTt=v(()=>{VTt();Vye();WTt();xD();JTt()});import{existsSync as QTt}from"node:fs";import{join as Mv}from"node:path";function Ybe(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&&!Kbe.has(t)}function f6(e,t){if(!e)return-1;let n=e.kind,r=e.role,i=e.gate_kind,s=Ybe(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 E5n(e){let t=e.reviews;return t&&typeof t=="object"?t:{}}function evt(e){let t=e.approvals;return t&&typeof t=="object"?t:{}}function _5n(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=dv(i).map(y=>({name:zY(y),fm:Qc(y)?.data??{}})).filter(y=>y.fm),u=c.map(y=>y.name),l=Es(n,r),{reviewRoles:d,approvalRoles:f}=VY(n,r,s),p=M0({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"?E5n(S.fm):evt(S.fm))[b]),m=c.length>0&&(l.length===0||c.every(y=>{let b=_5n(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=lv(Mv(i,"..",".."))?QTt(Mv(i,"observations.md")):null;return Wbe({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 tvt(e){let{intentDir:t,mode:n,groupAdversarial:r=!0}=e,i=[],s=Qc(Mv(t,"intent.md"))?.data??{},o=evt(s),a=s.studio||"",c=a?Object.keys(yg(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 GY(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}),lv(t)&&i.push({key:"reflection",label:"reflection",done:QTt(Mv(t,"reflection.md"))}),i.push({key:"seal",label:"seal",done:s.sealed_at!=null}),d6(i)}function p6(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:Mv(r,"stages",o),mode:i}):tvt({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 nvt(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:Mv(r,"stages",o),mode:i,groupAdversarial:!1}):tvt({intentDir:r,mode:i,groupAdversarial:!1})}function rvt(e){return Zbe({slug:e.slug,studio:e.studio,stage:e.stage,stageDir:Mv(e.intentDir,"stages",e.stage),mode:e.mode})}var Kbe,$Tt,Jbe=v(()=>{"use strict";XTt();Kn();ji();Oa();Kbe=new Set(["spec","quality_gates","user"]),$Tt=e=>e.includes(":")?e.slice(e.indexOf(":")+1):e});import{existsSync as q1,readFileSync as B1}from"node:fs";import{join as z1}from"node:path";function T5n(e){return e.split(/[-_]/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function svt(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 v5n(e){return e.map(t=>({...t,frontmatter:svt(t.frontmatter)??t.frontmatter}))}function Xbe(e){if(!e)return{};let t=z1(ce(e),"intent.md");if(!q1(t))return{};try{return re(B1(t,"utf8")).data}catch{return{}}}function A5n(e){let t=`${e.slug}::${e.stage}`,n=Date.now(),r=ivt.get(t);if(r&&n-r.atd.trim()),o=i.some(d=>d==="external")&&i.length===1,a=t?.stage||e.stage||"",c=a?T5n(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=Xbe(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(yg(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 ovt(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:svt(o.frontmatter)}}if(n.parsedUnits&&(r.units=v5n(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?TTt(n.intent_slug):null;if(i&&(r.current_state=i,n.intent_slug&&i.studio))try{let o=Xbe(n.intent_slug),a=typeof o?.mode=="string"?o.mode:"",c=p6({slug:n.intent_slug,studio:i.studio,intentDir:ce(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:ce(n.intent_slug),studio:i.studio}),d=f6(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?Xbe(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=ce(o),p={},h={},m={},g={},y={};for(let b of d){try{let _=rvt({slug:o,studio:c,intentDir:f,stage:b,mode:u});_.length>0&&(p[b]=_)}catch{}let E=es(c,b)?.data?.description;typeof E=="string"&&E.trim()&&(h[b]=E.trim());try{let _=z1(f,"stages",b,"BRIEF.md");if(q1(_)){let T=B1(_,"utf8").trim();T&&(m[b]=T)}}catch{}try{let _=z1(f,"stages",b,"observations.md");if(q1(_)){let T=B1(_,"utf8").trim();T&&(g[b]=T)}}catch{}try{let _=z1(f,"stages",b,"elaboration.md");if(q1(_)){let T=B1(_,"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=z1(f,"reflection.md");if(q1(b)){let S=B1(b,"utf8").trim();S&&(r.reflection=S)}}catch{}}catch{}}let s=n.intent_slug;if(s&&i?.stage&&i.studio)try{let o=A5n({slug:s,stage:i.stage,studio:i.studio,intentDir:ce(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=ATt(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=w5n(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 ivt,R5n,avt=v(()=>{"use strict";vTt();wTt();ji();Oa();_ye();Jbe();$c();ze();Kn();ivt=new Map,R5n=2e3});import{appendFileSync as k5n}from"node:fs";function Vb(e){try{k5n(I5n,`${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 ne=("require"+Math.random()).slice(0,7);Rr=(l6&&l6[ne]).call(l6,"timers").setImmediate}catch{Rr=function(Se){ly===!1&&(ly=!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(Hl){if(L(ne,Ce),Ce===0){try{W(Se),N(function(){return G(Hl,_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?dr(l(D)):lE)},en.createRef=function(){var D={current:null};return Object.seal(D),D},en.forwardRef=function(D){D!=null&&D.$$typeof===K?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 ne={$$typeof:M,render:D},Ce;return Object.defineProperty(ne,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ce},set:function(Se){Ce=Se,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Se}),D.displayName=Se)}}),ne},en.isValidElement=S,en.lazy=function(D){D={_status:-1,_result:D};var ne={$$typeof:ee,_payload:D,_init:x},Ce={name:"lazy",start:-1,end:-1,value:null,owner:null,debugStack:Error("react-stack-top-frame"),debugTask:console.createTask?console.createTask("lazy()"):null};return D._ioInfo=Ce,ne._debugInfo=[{awaited:Ce}],ne},en.memo=function(D,ne){D==null&&console.error("memo: The first argument must be a component. Instead received: %s",D===null?"null":typeof D),ne={$$typeof:K,type:D,compare:ne===void 0?null:ne};var Ce;return Object.defineProperty(ne,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ce},set:function(Se){Ce=Se,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Se}),D.displayName=Se)}}),ne},en.startTransition=function(D){var ne=Ue.T,Ce={};Ce._updatedFibers=new Set,Ue.T=Ce;try{var Se=D(),at=Ue.S;at!==null&&at(Ce,Se),typeof Se=="object"&&Se!==null&&typeof Se.then=="function"&&(Ue.asyncTransitions++,Se.then(P,P),Se.then(o,_p))}catch(Pn){_p(Pn)}finally{ne===null&&Ce._updatedFibers&&(D=Ce._updatedFibers.size,Ce._updatedFibers.clear(),10{"use strict";process.env.NODE_ENV==="production"?Wbe.exports=HTt():Wbe.exports=qTt()});var m5n,zTt=v(()=>{m5n=Re(BTt(),1)});var GTt=v(()=>{});var VTt=v(()=>{});var WTt=v(()=>{});var KTt=v(()=>{xTt();zTt();GTt();VTt();WTt()});var YTt=v(()=>{});function JTt(e){return e==="user"?"spec gate":e==="cross-stage-consistency"?"cross-stage review":`${e} review`}function XTt(e){return e==="user"?"approval gate":e==="quality_gates"?"quality gates":e==="cross-stage-consistency"?"cross-stage approval":`${e} approval`}function d6(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 Kbe(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(...ZTt(n,"review",t,o)),a.push({key:"execute",label:"execute",done:r}),a.push(...ZTt(i,"approve",r,o)),s!=null&&a.push({key:"observations",label:"observations",done:s}),d6(a)}function ZTt(e,t,n,r=!0){let i=[],s=[],o=0,a=t==="review"?"adversarial review":"adversarial approval",c=l=>t==="review"?JTt(l):XTt(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)_5n.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 _5n,QTt=v(()=>{_5n=new Set(["spec","quality_gates","user"])});var $Tt=v(()=>{KTt();Wye();YTt();xD();QTt()});import{existsSync as evt}from"node:fs";import{join as Mv}from"node:path";function Zbe(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&&!Ybe.has(t)}function f6(e,t){if(!e)return-1;let n=e.kind,r=e.role,i=e.gate_kind,s=Zbe(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 T5n(e){let t=e.reviews;return t&&typeof t=="object"?t:{}}function nvt(e){let t=e.approvals;return t&&typeof t=="object"?t:{}}function v5n(e){return Array.isArray(e.iterations)?e.iterations:[]}function Jbe(e){let{slug:t,studio:n,stage:r,stageDir:i,mode:s,groupAdversarial:o=!0}=e,c=dv(i).map(y=>({name:zY(y),fm:Qc(y)?.data??{}})).filter(y=>y.fm),u=c.map(y=>y.name),l=Es(n,r),{reviewRoles:d,approvalRoles:f}=VY(n,r,s),p=M0({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"?T5n(S.fm):nvt(S.fm))[b]),m=c.length>0&&(l.length===0||c.every(y=>{let b=v5n(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=lv(Mv(i,"..",".."))?evt(Mv(i,"observations.md")):null;return Kbe({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 rvt(e){let{intentDir:t,mode:n,groupAdversarial:r=!0}=e,i=[],s=Qc(Mv(t,"intent.md"))?.data??{},o=nvt(s),a=s.studio||"",c=a?Object.keys(yg(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 GY(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}),lv(t)&&i.push({key:"reflection",label:"reflection",done:evt(Mv(t,"reflection.md"))}),i.push({key:"seal",label:"seal",done:s.sealed_at!=null}),d6(i)}function p6(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:ai(t,n,r),a=o?Jbe({slug:t,studio:n,stage:o,stageDir:Mv(r,"stages",o),mode:i}):rvt({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 ivt(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:ai(t,n,r);return o?Jbe({slug:t,studio:n,stage:o,stageDir:Mv(r,"stages",o),mode:i,groupAdversarial:!1}):rvt({intentDir:r,mode:i,groupAdversarial:!1})}function svt(e){return Jbe({slug:e.slug,studio:e.studio,stage:e.stage,stageDir:Mv(e.intentDir,"stages",e.stage),mode:e.mode})}var Ybe,tvt,Xbe=v(()=>{"use strict";$Tt();Kn();ji();Oa();Ybe=new Set(["spec","quality_gates","user"]),tvt=e=>e.includes(":")?e.slice(e.indexOf(":")+1):e});import{existsSync as q1,readFileSync as B1}from"node:fs";import{join as z1}from"node:path";function R5n(e){return e.split(/[-_]/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function avt(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 A5n(e){return e.map(t=>({...t,frontmatter:avt(t.frontmatter)??t.frontmatter}))}function Qbe(e){if(!e)return{};let t=z1(ce(e),"intent.md");if(!q1(t))return{};try{return re(B1(t,"utf8")).data}catch{return{}}}function k5n(e){let t=`${e.slug}::${e.stage}`,n=Date.now(),r=ovt.get(t);if(r&&n-r.atd.trim()),o=i.some(d=>d==="external")&&i.length===1,a=t?.stage||e.stage||"",c=a?R5n(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=Qbe(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(yg(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 cvt(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:avt(o.frontmatter)}}if(n.parsedUnits&&(r.units=A5n(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?RTt(n.intent_slug):null;if(i&&(r.current_state=i,n.intent_slug&&i.studio))try{let o=Qbe(n.intent_slug),a=typeof o?.mode=="string"?o.mode:"",c=p6({slug:n.intent_slug,studio:i.studio,intentDir:ce(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:ce(n.intent_slug),studio:i.studio}),d=f6(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?Qbe(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=ce(o),p={},h={},m={},g={},y={};for(let b of d){try{let _=svt({slug:o,studio:c,intentDir:f,stage:b,mode:u});_.length>0&&(p[b]=_)}catch{}let E=es(c,b)?.data?.description;typeof E=="string"&&E.trim()&&(h[b]=E.trim());try{let _=z1(f,"stages",b,"BRIEF.md");if(q1(_)){let T=B1(_,"utf8").trim();T&&(m[b]=T)}}catch{}try{let _=z1(f,"stages",b,"observations.md");if(q1(_)){let T=B1(_,"utf8").trim();T&&(g[b]=T)}}catch{}try{let _=z1(f,"stages",b,"elaboration.md");if(q1(_)){let T=B1(_,"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=z1(f,"reflection.md");if(q1(b)){let S=B1(b,"utf8").trim();S&&(r.reflection=S)}}catch{}}catch{}}let s=n.intent_slug;if(s&&i?.stage&&i.studio)try{let o=k5n({slug:s,stage:i.stage,studio:i.studio,intentDir:ce(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=kTt(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=I5n(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 ovt,w5n,uvt=v(()=>{"use strict";ATt();ITt();ji();Oa();Tye();Xbe();$c();ze();Kn();ovt=new Map,w5n=2e3});import{appendFileSync as x5n}from"node:fs";function Vb(e){try{x5n(O5n,`${new Date().toISOString()} ${e} `)}catch{}process.stderr.write(`[haiku-mcp] ${e} -`)}function lvt(e){let t=Date.now(),n=t-1e3,i=(Qbe.get(e)??[]).filter(s=>s>n);return i.length>=x5n?(Qbe.set(e,i),!1):(i.push(t),Qbe.set(e,i),!0)}function em(e,t){let n=Yu.get(e);if(!(!n||n.readyState!==n.OPEN))try{n.send(JSON.stringify(t))}catch{}}function Dv(e,t){Vb(`closeSessionConnection(${e}) invoked [build:fastify] reason=${t??"null"}`),mx(e);let n=Yu.get(e);if(!n){Vb(`closeSessionConnection(${e}): NO socket registered \u2014 SPA has no active WS`);return}try{n.send(JSON.stringify({type:"session-ended",reason:t??null})),Vb(`closeSessionConnection(${e}): hint frame queued`)}catch(r){Vb(`closeSessionConnection(${e}): hint write threw ${r instanceof Error?r.message:String(r)}`)}try{n.close(4001,t??"session ended"),Vb(`closeSessionConnection(${e}): close frame sent`)}catch{}Yu.delete(e)}function dvt(e,t){let n;try{n=JSON.parse(t)}catch{em(e,{type:"error",error:"invalid_json"});return}let r=Out.safeParse(n);if(!r.success){em(e,{type:"error",error:"invalid_ws_frame"});return}let i=r.data,s=$t(e);if(s){if(i.type==="heartbeat"){QL(e),em(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&&Kd(s.intent_slug,{type:"pending_decision_changed",session_id:e,queued:!0}),em(e,{type:"ack",ok:!0,decision:o,feedback:a})}else if(s.session_type==="question"&&i.type==="answer"){let o=i.annotations;n1(e,{status:"answered",answers:i.answers,feedback:i.feedback??"",annotations:o}),em(e,{type:"ack",ok:!0})}else if(s.session_type==="design_direction"&&i.type==="select"){if(s.status==="answered"){em(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}:{}};r1(e,{status:"answered",selection:o}),em(e,{type:"ack",ok:!0})}}}var I5n,Yu,Qbe,cvt,x5n,uvt,G1,h6=v(()=>{"use strict";vT();hx();H1();$c();I5n="/tmp/haiku-session-cancel.log";Yu=new Map,Qbe=new WeakMap,cvt=20,x5n=(()=>{let e=process.env.HAIKU_WS_RATE_LIMIT;if(e===void 0)return cvt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?cvt:Math.max(t,1)})();uvt=128,G1=(()=>{let e=process.env.HAIKU_MAX_WS_SESSIONS;if(e===void 0)return uvt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?uvt:Math.max(t,1)})()});import{existsSync as fvt,readdirSync as O5n,readFileSync as pvt}from"node:fs";import{join as eEe}from"node:path";function hvt(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(Wd)}),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(Wd)}),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(Wd)}),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(Wd)}),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=Gb(n,t.body,bfe);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),Dv(t.params.sessionId,"ad-hoc review closed"),zi()&&(ybe(t.params.sessionId),mbe()),q0(t.params.sessionId);return}Ml(t.params.sessionId,{pending_decision:{decision:s,feedback:o,annotations:a,submitted_at:new Date().toISOString()}}),r.intent_slug&&Kd(r.intent_slug,{type:"pending_decision_changed",session_id:t.params.sessionId,queued:!0}),n.send(c),mx(t.params.sessionId)}),e.post("/question/:sessionId/answer",{bodyLimit:lfe},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=Gb(n,t.body,Sfe);if(!i.ok)return;n1(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:lfe},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=Gb(n,t.body,dfe);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?$be(c):"";if(c&&u){let l=i.data.annotations?.screenshots??[],d=!1;if(l.length>0)try{SSe({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=Y0(c,u),p=qb(f);p.design_direction_selected=!0,p.design_direction_selected_at=mn(),p.design_direction={archetype:i.data.archetype,...i.data.comments?{comments:i.data.comments}:{}},delete p.design_direction_surfaced,S1(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?$be(c):"";if(c&&u)try{let{uploads:l}=bSe({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}}r1(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(Wd)}),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(()=>($c(),Uye));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(),Uye));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)&&ovt(n,t.params.sessionId)}),e.head("/api/session/:sessionId/heartbeat",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=QL(t.params.sessionId);n.status(r?200:404).send()}),e.post("/api/advance/:sessionId",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){ta({reqId:t.id,action:"advance",status:404,detail:`session=${t.params.sessionId} not_found_or_wrong_type`}),n.status(404).send("Session not found");return}if(!r.intent_slug){ta({reqId:t.id,action:"advance",status:409,detail:`session=${t.params.sessionId} no_intent_context`}),n.status(409).send({error:"Session has no intent context"});return}let i=r.intent_slug,s=$be(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{P5n(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&&Kd(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 $be(e){let t=eEe(ce(e),"intent.md");if(!fvt(t))return"";try{let{data:n}=re(pvt(t,"utf8"));return n.active_stage||""}catch{return""}}function P5n(e,t){let n=ce(e),r=eEe(n,"stages",t,"units");if(!fvt(r))return;let i=O5n(r).filter(s=>s.endsWith(".md"));for(let s of i){let o=eEe(r,s);try{let{data:a}=re(pvt(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=zd(n,c),f=!0),d&&Ne(o,"reviews",u),f&&Ne(o,"approvals",l)}catch{}}}var mvt=v(()=>{"use strict";vT();JZ();hx();H1();Xf();$c();ze();Qh();Rbe();qg();avt();Pv();h6()});var tEe=w((fSi,gvt)=>{"use strict";var{EventEmitter:N5n}=Y("node:events"),{inherits:C5n}=Y("node:util");function Lv(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};Lv.prototype._sbmh_lookup_char=function(e,t){return t<0?this._lookbehind[this._lookbehind_size+t]:e[t]};Lv.prototype._sbmh_memcmp=function(e,t,n){for(var r=0;r{"use strict";var M5n=Y("node:util").inherits,yvt=Y("node:stream").Readable;function nEe(e){yvt.call(this,e)}M5n(nEe,yvt);nEe.prototype._read=function(e){};Svt.exports=nEe});var m6=w((hSi,Evt)=>{"use strict";Evt.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((mSi,vvt)=>{"use strict";var Tvt=Y("node:events").EventEmitter,D5n=Y("node:util").inherits,_vt=m6(),L5n=tEe(),U5n=Buffer.from(`\r +`)}function fvt(e){let t=Date.now(),n=t-1e3,i=($be.get(e)??[]).filter(s=>s>n);return i.length>=P5n?($be.set(e,i),!1):(i.push(t),$be.set(e,i),!0)}function em(e,t){let n=Yu.get(e);if(!(!n||n.readyState!==n.OPEN))try{n.send(JSON.stringify(t))}catch{}}function Dv(e,t){Vb(`closeSessionConnection(${e}) invoked [build:fastify] reason=${t??"null"}`),mx(e);let n=Yu.get(e);if(!n){Vb(`closeSessionConnection(${e}): NO socket registered \u2014 SPA has no active WS`);return}try{n.send(JSON.stringify({type:"session-ended",reason:t??null})),Vb(`closeSessionConnection(${e}): hint frame queued`)}catch(r){Vb(`closeSessionConnection(${e}): hint write threw ${r instanceof Error?r.message:String(r)}`)}try{n.close(4001,t??"session ended"),Vb(`closeSessionConnection(${e}): close frame sent`)}catch{}Yu.delete(e)}function pvt(e,t){let n;try{n=JSON.parse(t)}catch{em(e,{type:"error",error:"invalid_json"});return}let r=Nut.safeParse(n);if(!r.success){em(e,{type:"error",error:"invalid_ws_frame"});return}let i=r.data,s=$t(e);if(s){if(i.type==="heartbeat"){QL(e),em(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&&Kd(s.intent_slug,{type:"pending_decision_changed",session_id:e,queued:!0}),em(e,{type:"ack",ok:!0,decision:o,feedback:a})}else if(s.session_type==="question"&&i.type==="answer"){let o=i.annotations;n1(e,{status:"answered",answers:i.answers,feedback:i.feedback??"",annotations:o}),em(e,{type:"ack",ok:!0})}else if(s.session_type==="design_direction"&&i.type==="select"){if(s.status==="answered"){em(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}:{}};r1(e,{status:"answered",selection:o}),em(e,{type:"ack",ok:!0})}}}var O5n,Yu,$be,lvt,P5n,dvt,G1,h6=v(()=>{"use strict";vT();hx();H1();$c();O5n="/tmp/haiku-session-cancel.log";Yu=new Map,$be=new WeakMap,lvt=20,P5n=(()=>{let e=process.env.HAIKU_WS_RATE_LIMIT;if(e===void 0)return lvt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?lvt:Math.max(t,1)})();dvt=128,G1=(()=>{let e=process.env.HAIKU_MAX_WS_SESSIONS;if(e===void 0)return dvt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?dvt:Math.max(t,1)})()});import{existsSync as hvt,readdirSync as N5n,readFileSync as mvt}from"node:fs";import{join as tEe}from"node:path";function gvt(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(Wd)}),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(Wd)}),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(Wd)}),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(Wd)}),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=Gb(n,t.body,Efe);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),Dv(t.params.sessionId,"ad-hoc review closed"),zi()&&(Sbe(t.params.sessionId),gbe()),q0(t.params.sessionId);return}Ml(t.params.sessionId,{pending_decision:{decision:s,feedback:o,annotations:a,submitted_at:new Date().toISOString()}}),r.intent_slug&&Kd(r.intent_slug,{type:"pending_decision_changed",session_id:t.params.sessionId,queued:!0}),n.send(c),mx(t.params.sessionId)}),e.post("/question/:sessionId/answer",{bodyLimit:dfe},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=Gb(n,t.body,bfe);if(!i.ok)return;n1(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:dfe},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=Gb(n,t.body,ffe);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?eEe(c):"";if(c&&u){let l=i.data.annotations?.screenshots??[],d=!1;if(l.length>0)try{bSe({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=Y0(c,u),p=qb(f);p.design_direction_selected=!0,p.design_direction_selected_at=mn(),p.design_direction={archetype:i.data.archetype,...i.data.comments?{comments:i.data.comments}:{}},delete p.design_direction_surfaced,S1(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?eEe(c):"";if(c&&u)try{let{uploads:l}=ESe({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}}r1(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(Wd)}),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(()=>($c(),Fye));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(),Fye));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)&&cvt(n,t.params.sessionId)}),e.head("/api/session/:sessionId/heartbeat",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=QL(t.params.sessionId);n.status(r?200:404).send()}),e.post("/api/advance/:sessionId",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){ta({reqId:t.id,action:"advance",status:404,detail:`session=${t.params.sessionId} not_found_or_wrong_type`}),n.status(404).send("Session not found");return}if(!r.intent_slug){ta({reqId:t.id,action:"advance",status:409,detail:`session=${t.params.sessionId} no_intent_context`}),n.status(409).send({error:"Session has no intent context"});return}let i=r.intent_slug,s=eEe(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{C5n(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&&Kd(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 eEe(e){let t=tEe(ce(e),"intent.md");if(!hvt(t))return"";try{let{data:n}=re(mvt(t,"utf8"));return n.active_stage||""}catch{return""}}function C5n(e,t){let n=ce(e),r=tEe(n,"stages",t,"units");if(!hvt(r))return;let i=N5n(r).filter(s=>s.endsWith(".md"));for(let s of i){let o=tEe(r,s);try{let{data:a}=re(mvt(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=zd(n,c),f=!0),d&&Ne(o,"reviews",u),f&&Ne(o,"approvals",l)}catch{}}}var yvt=v(()=>{"use strict";vT();JZ();hx();H1();Xf();$c();ze();Qh();Abe();qg();uvt();Pv();h6()});var nEe=w((fSi,Svt)=>{"use strict";var{EventEmitter:M5n}=Y("node:events"),{inherits:D5n}=Y("node:util");function Lv(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};Lv.prototype._sbmh_lookup_char=function(e,t){return t<0?this._lookbehind[this._lookbehind_size+t]:e[t]};Lv.prototype._sbmh_memcmp=function(e,t,n){for(var r=0;r{"use strict";var L5n=Y("node:util").inherits,bvt=Y("node:stream").Readable;function rEe(e){bvt.call(this,e)}L5n(rEe,bvt);rEe.prototype._read=function(e){};Evt.exports=rEe});var m6=w((hSi,Tvt)=>{"use strict";Tvt.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 wvt=w((mSi,Avt)=>{"use strict";var Rvt=Y("node:events").EventEmitter,U5n=Y("node:util").inherits,vvt=m6(),F5n=nEe(),j5n=Buffer.from(`\r \r -`),F5n=/\r\n/g,j5n=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function Sx(e){Tvt.call(this),e=e||{};let t=this;this.nread=0,this.maxed=!1,this.npairs=0,this.maxHeaderPairs=_vt(e,"maxHeaderPairs",2e3),this.maxHeaderSize=_vt(e,"maxHeaderSize",80*1024),this.buffer="",this.header={},this.finished=!1,this.ss=new L5n(U5n),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()})}D5n(Sx,Tvt);Sx.prototype.push=function(e){let t=this.ss.push(e);if(this.finished)return t};Sx.prototype.reset=function(){this.finished=!1,this.buffer="",this.header={},this.ss.reset()};Sx.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)};Sx.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs)return;let e=this.buffer.split(F5n),t=e.length,n,r;for(var i=0;i{"use strict";var rEe=Y("node:stream").Writable,H5n=Y("node:util").inherits,q5n=tEe(),Avt=bvt(),B5n=Rvt(),z5n=45,G5n=Buffer.from("-"),V5n=Buffer.from(`\r -`),W5n=function(){};function sp(e){if(!(this instanceof sp))return new sp(e);if(rEe.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 B5n(e),this._hparser.on("header",function(n){t._inHeader=!1,t._part.emit("header",n)})}H5n(sp,rEe);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 rEe.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 Avt(this._partOpts),this.listenerCount("preamble")!==0?this.emit("preamble",this._part):this._ignore());let r=this._hparser.push(e);if(!this._inHeader&&r!==void 0&&r{"use strict";var kvt=new TextDecoder("utf-8"),Ivt=new Map([["utf-8",kvt],["utf8",kvt]]);function K5n(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return V1.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 V1.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return V1.utf16le;case"base64":return V1.base64;default:if(t===void 0){t=!0,e=e.toLowerCase();continue}return V1.other.bind(e)}}var V1={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)),Ivt.has(sEe.toString()))try{return Ivt.get(sEe).decode(e)}catch{}return typeof e=="string"?e:e.toString()}};function Y5n(e,t,n){return e&&K5n(n)(e,t)}xvt.exports=Y5n});var aEe=w((ySi,Mvt)=>{"use strict";var y6=g6(),Ovt=/%[a-fA-F0-9][a-fA-F0-9]/g,Z5n={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"\x07","%08":"\b","%09":" ","%0a":` +`),H5n=/\r\n/g,q5n=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function Sx(e){Rvt.call(this),e=e||{};let t=this;this.nread=0,this.maxed=!1,this.npairs=0,this.maxHeaderPairs=vvt(e,"maxHeaderPairs",2e3),this.maxHeaderSize=vvt(e,"maxHeaderSize",80*1024),this.buffer="",this.header={},this.finished=!1,this.ss=new F5n(j5n),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()})}U5n(Sx,Rvt);Sx.prototype.push=function(e){let t=this.ss.push(e);if(this.finished)return t};Sx.prototype.reset=function(){this.finished=!1,this.buffer="",this.header={},this.ss.reset()};Sx.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)};Sx.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs)return;let e=this.buffer.split(H5n),t=e.length,n,r;for(var i=0;i{"use strict";var iEe=Y("node:stream").Writable,B5n=Y("node:util").inherits,z5n=nEe(),kvt=_vt(),G5n=wvt(),V5n=45,W5n=Buffer.from("-"),K5n=Buffer.from(`\r +`),Y5n=function(){};function sp(e){if(!(this instanceof sp))return new sp(e);if(iEe.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 G5n(e),this._hparser.on("header",function(n){t._inHeader=!1,t._part.emit("header",n)})}B5n(sp,iEe);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 iEe.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 kvt(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 xvt=new TextDecoder("utf-8"),Ovt=new Map([["utf-8",xvt],["utf8",xvt]]);function Z5n(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return V1.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 V1.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return V1.utf16le;case"base64":return V1.base64;default:if(t===void 0){t=!0,e=e.toLowerCase();continue}return V1.other.bind(e)}}var V1={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)),Ovt.has(oEe.toString()))try{return Ovt.get(oEe).decode(e)}catch{}return typeof e=="string"?e:e.toString()}};function J5n(e,t,n){return e&&Z5n(n)(e,t)}Pvt.exports=J5n});var cEe=w((ySi,Lvt)=>{"use strict";var y6=g6(),Nvt=/%[a-fA-F0-9][a-fA-F0-9]/g,X5n={"%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 Pvt(e){return Z5n[e]}var S6=0,Nvt=1,oEe=2,Cvt=3;function J5n(e){let t=[],n=S6,r="",i=!1,s=!1,o=0,a="",c=e.length;for(var u=0;u{"use strict";Dvt.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 Hvt=w((bSi,jvt)=>{"use strict";var{Readable:Fvt}=Y("node:stream"),{inherits:X5n}=Y("node:util"),Q5n=iEe(),Uvt=aEe(),$5n=g6(),e8n=Lvt(),Uv=m6(),t8n=/^boundary$/i,n8n=/^form-data$/i,r8n=/^charset$/i,i8n=/^filename$/i,s8n=/^name$/i;b6.detect=/^multipart\/form-data/i;function b6(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",bx),e.hitPartsLimit=!0,e.emit("partsLimit"),bx(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=Uvt(C["content-type"][0]),W[0])){for(L=W[0].toLowerCase(),n=0,r=W.length;nh){let j=h-B+M.length;j>0&&U.push(M.slice(0,j)),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")),bx(N);++_,++T;let U="",M=!1;A=N,F=function(j){if((B+=j.length)>p){let H=p-(B-j.length);U+=j.toString("binary",0,H),M=!0,N.removeAllListeners("data")}else U+=j.toString("binary")},V=function(){A=void 0,U.length&&(U=$5n(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()})}b6.prototype.write=function(e,t){let n=this.parser.write(e);n&&!this._pause?t():(this._needDrain=!n,this._cb=t)};b6.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 bx(e){e.resume()}function cEe(e){Fvt.call(this,e),this.bytesRead=0,this.truncated=!1}X5n(cEe,Fvt);cEe.prototype._read=function(e){};jvt.exports=b6});var Bvt=w((ESi,qvt)=>{"use strict";var o8n=/\+/g,a8n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 uEe(){this.buffer=void 0}uEe.prototype.write=function(e){e=e.replace(o8n," ");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 c8n=Bvt(),Ex=g6(),lEe=m6(),u8n=/^charset$/i;E6.detect=/^application\/x-www-form-urlencoded/i;function E6(e,t){let n=t.limits,r=t.parsedConType;this.boy=e,this.fieldSizeLimit=lEe(n,"fieldSize",1*1024*1024),this.fieldNameSizeLimit=lEe(n,"fieldNameSize",100),this.fieldsLimit=lEe(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",Ex(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",Ex(this._key,"binary",this.charset),Ex(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",Ex(this._key,"binary",this.charset),"",this._keyTrunc,!1):this._state==="val"&&this.boy.emit("field",Ex(this._key,"binary",this.charset),Ex(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this.boy._done=!0,this.boy.emit("finish"))};zvt.exports=E6});var Kvt=w((TSi,W1)=>{"use strict";var dEe=Y("node:stream").Writable,{inherits:l8n}=Y("node:util"),d8n=iEe(),Vvt=Hvt(),Wvt=Gvt(),f8n=aEe();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},dEe.call(this,this.opts),this._done=!1,this._parser=this.getParserByHeaders(t),this._finished=!1}l8n(Bg,dEe);Bg.prototype.emit=function(e){if(e==="finish"){if(this._done){if(this._finished)return}else{this._parser?.end();return}this._finished=!0}dEe.prototype.emit.apply(this,arguments)};Bg.prototype.getParserByHeaders=function(e){let t=f8n(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(Vvt.detect.test(t[0]))return new Vvt(this,n);if(Wvt.detect.test(t[0]))return new Wvt(this,n);throw new Error("Unsupported Content-Type.")};Bg.prototype._write=function(e,t,n){this._parser.write(e,n)};W1.exports=Bg;W1.exports.default=Bg;W1.exports.Busboy=Bg;W1.exports.Dicer=d8n});var Jvt=w((vSi,Zvt)=>{"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"],Fv=Math.random;function Yvt(){return zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]}Zvt.exports.generateId=(function(){let t=0,n=Yvt();return function(){return t===255?(n=Yvt())+zg[t=0]:n+zg[++t]}})()});var Qvt=w((RSi,Xvt)=>{"use strict";Xvt.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 tRt=w((ASi,K1)=>{"use strict";var $vt=Object.getPrototypeOf({});function eRt(){return function(t){return typeof t=="object"&&t!==null&&!(t instanceof RegExp)&&!(t instanceof Date)}}function fEe(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 p8n=Kvt(),h8n=Y("node:os"),m8n=JC(),{createWriteStream:g8n}=Y("node:fs"),{unlink:y8n}=Y("node:fs/promises"),nRt=Y("node:path"),{generateId:S8n}=Jvt(),Gg=_W(),b8n=Qvt(),E8n=tRt()({all:!0}),{PassThrough:_8n,Readable:T8n}=Y("node:stream"),{pipeline:v8n}=Y("node:stream/promises"),R8n=Lue(),mEe=Symbol("multipart"),_6=Symbol("multipartHandler"),Y1=Symbol("savedRequestFilesResult"),rRt=Gg("FST_PARTS_LIMIT","reach parts limit",413),iRt=Gg("FST_FILES_LIMIT","reach files limit",413),sRt=Gg("FST_FIELDS_LIMIT","reach fields limit",413),pEe=Gg("FST_REQ_FILE_TOO_LARGE","request file too large",413),hEe=Gg("FST_PROTO_VIOLATION","prototype property is not allowed as field name",400),oRt=Gg("FST_INVALID_MULTIPART_CONTENT_TYPE","the request is not multipart",406),aRt=Gg("FST_INVALID_JSON_FIELD_ERROR","a request field is not a valid JSON as declared by its Content-Type",406),cRt=Gg("FST_FILE_BUFFER_NOT_FOUND","the file buffer was not found",500),A8n=Gg("FST_NO_FORM_DATA","FormData is not available",500);function w8n(e,t,n){e[mEe]=!0,n()}function k8n(e){try{return new p8n(e)}catch(t){let n=new _8n;return process.nextTick(function(){n.emit("error",t)}),n}}function gEe(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[mEe]}function o(p={}){if(!this.isMultipart())throw new oRt;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=E8n({headers:T.headers},t,p);this.log.trace({busboyOptions:R},"Providing options to busboy");let A=k8n(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 rRt;P(C),process.nextTick(()=>N(C))}),A.on("filesLimit",function(){let C=new iRt;P(C),process.nextTick(()=>N(C))}),A.on("fieldsLimit",function(){let C=new sRt;P(C),process.nextTick(()=>N(C))}),T.pipe(A);function x(C,L,G,W,$,q){if(C in Object.prototype){P(new hEe);return}if(q.startsWith("application/json")){if(W){P(new aRt);return}try{L=R8n.parse(L),q="application/json"}catch{P(new aRt);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){b8n(L).catch(()=>{}),P(new hEe);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 pEe,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 pEe;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[Y1])return this[Y1];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||h8n.tmpdir();this.tmpUploads=[];let y=0;for await(let b of h){if(m=b.fields,!b.file)continue;let S=nRt.join(g,S8n()+nRt.extname(b.filename||"file"+y++)),E=g8n(S);try{this.tmpUploads.push(S),await v8n(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[Y1]={files:this.savedRequestFiles,values:m},this[Y1]}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"}})}Z1.exports=m8n(gEe,{fastify:"5.x",name:"@fastify/multipart"});Z1.exports.default=gEe;Z1.exports.fastifyMultipart=gEe;Z1.exports.ajvFilePlugin=I8n});import{mkdirSync as x8n}from"node:fs";import{open as O8n}from"node:fs/promises";import{dirname as P8n,join as N8n}from"node:path";function Q1(e,t){let n=String(t).padStart(2,"0");return`HWM-${e}-${n}`}function dRt(e,t=200){return e.length<=t?e:`${e.slice(0,t)}...`}function X1(e){return Buffer.byteLength(e,"utf-8")}function yEe(e,t){if(X1(e)<=t)return e;let n="...[truncated]",r=X1(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 U8n(e){let t=(s,o)=>s==null?null:yEe(s,o),n={...e,path:yEe(e.path,M8n),claimed_author_id:t(e.claimed_author_id,lRt),human_author_id:t(e.human_author_id,lRt),rationale:t(e.rationale,C8n),dirs_created:(e.dirs_created??[]).slice(0,D8n).map(s=>yEe(s,L8n))},r=JSON.stringify(n),i=X1(r);return i>T6?{ok:!1,reason:"record_too_large",bytes:i,cap:T6}:{ok:!0,record:n,line:r}}function F8n(e){return N8n(e,"write-audit.jsonl")}async function j8n(e,t){let n=J1.get(e)??Promise.resolve(),r,i=new Promise(s=>{r=s});J1.set(e,n.then(()=>i));try{return await n,await t()}finally{r(),queueMicrotask(()=>{let s=J1.get(e);s!==void 0&&Promise.resolve(s).then(()=>{J1.get(e)===s&&J1.delete(e)})})}}async function fRt(e,t){try{x8n(P8n(e),{recursive:!0})}catch(n){return{ok:!1,reason:String(n)}}return j8n(e,async()=>{let n=null;try{return n=await O8n(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 $1(e,t){let n=U8n(t);if(!n.ok)return{ok:!1,reason:`${n.reason} (bytes=${n.bytes}, cap=${n.cap})`};let r=F8n(e);return fRt(r,n.line)}async function pRt(e,t){return X1(t)>T6?{ok:!1,reason:`record_too_large (bytes=${X1(t)}, cap=${T6})`}:fRt(e,t)}var T6,C8n,lRt,M8n,D8n,L8n,J1,v6=v(()=>{"use strict";T6=16*1024,C8n=4096,lRt=128,M8n=1024,D8n=16,L8n=512;J1=new Map});import{join as H8n}from"node:path";function SEe(e){return H8n(e,"action-log.jsonl")}async function jv(e,t,n){let r=SEe(e),i=JSON.stringify(n);return pRt(r,i)}var R6=v(()=>{"use strict";v6()});import{createHash as q8n}from"node:crypto";import{createWriteStream as B8n,existsSync as EEe,readFileSync as z8n,unlinkSync as TRt}from"node:fs";import{join as eU,resolve as hRt}from"node:path";function G8n(e){return!(!e||e==="application/octet-stream")}function gRt(e){return typeof e!="string"?!1:TEe.test(e)}function V8n(e){let t=e.lastIndexOf(".");return t<0?"":e.slice(t).toLowerCase()}function W8n(e){if(!e)return"";let t=e.indexOf(";");return(t<0?e:e.slice(0,t)).trim().toLowerCase()}function yRt(e){return _Ee.has(V8n(e))}function bEe(){let e=process.env.HAIKU_UPLOAD_MAX_BYTES,t;if(e===void 0)t=mRt;else{let n=Number.parseInt(e,10);t=!Number.isFinite(n)||n<=0?mRt:n}return t>A6?(Ke("haiku.upload.cap_clamped",{env_value:String(t),hard_cap:String(A6)}),A6):Math.min(t,A6)}function SRt(e,t){try{let n=eU(ce(e),"stages",t,"state.json");if(!EEe(n))return!1;let r=z8n(n,"utf-8"),s=JSON.parse(r).status;return s==="complete"||s==="sealed"}catch{return!1}}function bRt(e){return _1(ce(e))}function ERt(e){return E1(ce(e))}async function _Rt(e,t,n){let r=eU(t,`.upload-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}.tmp`),i=q8n("sha256"),s=0,o=B8n(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{TRt(r)}catch{}throw c}),{tmpPath:r,sha256:i.digest("hex"),bytes:s}}async function RRt(e){await e.register(async t=>{await t.register(vRt.default,{limits:{fileSize:bEe()+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(!yn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!cx(n,r,i))return;if(!Ua(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(bRt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(ERt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=bEe(),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(!gRt(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:TEe.source});return}let d=yRt(l.filename),f=yRt(a);if(d||f){r.status(415).send({error:"unsupported_media_type",code:"unsupported_media_type",message:`Files with extensions ${Array.from(_Ee).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(_Ee)});return}let p=W8n(l.mimetype);if(!G8n(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(!yn(o)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!$h(i,o)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(SRt(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=av(`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=ce(i),S=eU(b,g),E=S.substring(0,S.lastIndexOf("/")),_=hRt(S),T=hRt(eU(b,y));if(!_.startsWith(T)){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let R=EEe(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 _Rt(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=yv(b,E,A,S);if(!P.ok){V0(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=Ub(b,o),C=Q1(N,1),L=new Date().toISOString();await jv(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 $1(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(!Gn(n,r,null))return;let{intent:i}=n.params;if(!yn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!cx(n,r,i))return;if(!Ua(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(bRt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(ERt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=bEe(),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(!gRt(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:TEe.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(!yn(a)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!$h(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(SRt(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}}let d=ce(i),f=a!==null?`stages/${a}/knowledge/${l}`:`knowledge/${l}`,p=eU(d,f),h=p.substring(0,p.lastIndexOf("/"));if(EEe(p)){r.status(409).send({error:"filename_collision",code:"filename_collision"});return}let g=null,y,b;try{let k=await _Rt(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=yv(d,h,g,p);if(!S.ok){V0(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?T1(d):Ub(d,a)}catch(k){if(k instanceof Vd){try{TRt(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=Q1(_,1),A=new Date().toISOString();await jv(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 $1(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 vRt,mRt,A6,_Ee,TEe,ARt=v(()=>{"use strict";vRt=Re(uRt(),1);R6();P0();v6();XY();ze();vo();qg();Pv();mRt=50*1024*1024,A6=50*1024*1024,_Ee=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);TEe=/^[\w][\w\-.@ ]{0,127}$/});function wRt(e){e.register(async t=>{t.get("/ws/session/:sessionId",{websocket:!0,preValidation:async(n,r)=>{if(!zi())return;let{sessionId:i}=n.params,s=n.query?.t;if(!s){r.status(401).send({error:"unauthorized",reason:"missing_token"});return}let o=Xh(s,i);if(!o.ok){r.status(401).send({error:"unauthorized",reason:o.reason});return}}},(n,r)=>{let{sessionId:i}=r.params;if(zi()){let c=r.query?.t;if(!c){n.close(4401,"unauthorized");return}if(!Xh(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>=G1){Vb(`upgrade REJECT session=${i} reason=ws_session_cap size=${Yu.size} cap=${G1}`),n.close(1013,"session cap reached");return}Yu.set(i,n),Vb(`upgrade ACCEPT session=${i}`);let o=null,a=s.session_type==="review"?s:null;a?.intent_slug&&(o=mTt(a.intent_slug,c=>{em(i,{type:"intent-event",session_id:i,event:c})})),n.on("message",c=>{if(!lvt(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");dvt(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 kRt=v(()=>{"use strict";hx();$c();Qh();h6()});import{randomUUID as K8n}from"node:crypto";function Y8n(){return vEe}function Z8n(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 J8n(){let e=(0,MRt.default)({logger:!1,bodyLimit:wD,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 K8n()},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{}}),zi()&&await e.register(PRt.default,{origin:(t,n)=>{n(null,Z8n(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}),zi()){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(NRt.default,{max:t,timeWindow:n})}return await e.register(CRt.default,{options:{maxPayload:64*1024}}),e.addHook("onSend",async(t,n,r)=>{let i=vbe((t.url??"/").split("?")[0]);if(!i||!D1(i)||n.statusCode>=400)return r;try{return await eTt(t,n,r)}catch{return r}}),Q_t(e,Y8n),D_t(e),hvt(e),pTt(e),cTt(e),await RRt(e),H_t(e),G_t(e),J_t(e),wRt(e),e}function ORt(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 Yb(){if(Kb&&Wb!==null)return Wb;zi()&&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."),Kb=await J8n();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 Kb.listen({host:t,port:0});Kb.server.maxConnections=xRt;let r=n.match(/^https?:\/\/(\[?[^\]]*\]?|[^:]+):(\d+)/);if(r&&(Wb=Number.parseInt(r[2],10),ORt(r[1].replace(/^\[|\]$/g,""))),Wb===null){let i=Kb.server.address();i&&typeof i=="object"&&(Wb=i.port,ORt(i.address))}return console.error(`Review HTTP server listening on http://127.0.0.1:${Wb} (maxConnections=${xRt}, maxWsSessions=${G1})`),vEe=!0,Wb}async function DRt(){if(Kb)try{for(let e of Array.from(Yu.keys()))try{Dv(e,"shutdown")}catch{}await Kb.close()}finally{Kb=null,Wb=null,vEe=!1}}var PRt,NRt,CRt,MRt,IRt,xRt,Kb,Wb,vEe,w6=v(()=>{"use strict";PRt=Re(X8e(),1),NRt=Re(d7e(),1),CRt=Re(BXe(),1),MRt=Re(yut(),1);vT();Ci();q_t();V_t();bbe();X_t();$_t();tTt();uTt();hTt();mvt();ARt();h6();kRt();Qh();IRt=256,xRt=(()=>{let e=process.env.HAIKU_MAX_CONNECTIONS;if(e===void 0)return IRt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?IRt:Math.max(t,1)})(),Kb=null,Wb=null,vEe=!1});import{execFileSync as X8n}from"node:child_process";import{cpSync as LRt,existsSync as wEe,mkdirSync as REe}from"node:fs";import{homedir as URt}from"node:os";import{join as kEe}from"node:path";function e7n(){return kEe(URt(),".claude","plugins","npm-cache","node_modules","haiku-method")}function t7n(e){let t=e??nn();if(!t)return{removed:!0,root:"",missingPaths:[""]};let n=[];for(let r of Q8n)wEe(kEe(t,r))||n.push(r);return{removed:n.length>0,root:t,missingPaths:n}}function n7n(){if(ud==="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=e7n();if(wEe(t))try{return REe(e,{recursive:!0}),LRt(t,e,{recursive:!0,force:!0}),{ok:!0,method:"npm-cache-copy"}}catch(r){}let n=kEe(URt(),".claude","plugins","npm-cache");try{return REe(n,{recursive:!0}),X8n("npm",["install",`haiku-method@${ud}`,"--prefix",n],{encoding:"utf8",timeout:6e4,stdio:"pipe"}),wEe(t)?(REe(e,{recursive:!0}),LRt(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 FRt(e){let t=Date.now();if(t-AEe<$8n)return{ok:!0,repaired:!1};let n=t7n();if(!n.removed)return AEe=t,{ok:!0,repaired:!1};ms(new Error(`Haiku plugin dir missing during tool call: ${n.missingPaths.join(", ")}`),{context:"plugin-self-repair-detected",plugin_root:n.root,missing_paths:n.missingPaths,mcp_version:ud},e);let r=n7n();return ms(new Error(`Haiku plugin self-repair ${r.ok?"succeeded":"failed"} (${r.method})`),{context:"plugin-self-repair-result",ok:r.ok,method:r.method,reason:r.reason,error:r.error,mcp_version:ud},e),r.ok&&(AEe=t),{ok:r.ok,repaired:r.ok,result:r}}var Q8n,$8n,AEe,jRt=v(()=>{"use strict";Ci();sh();p_();Q8n=["studios","schemas",".claude-plugin/plugin.json"],$8n=5e3,AEe=0});var Rt=v(()=>{"use strict"});var r7n,i7n,HRt,qRt=v(()=>{"use strict";gt();ht();Rt();r7n=new Te({autoEscape:!1,useWith:!0}),i7n=ie("@canon:feedback/changes_requested"),HRt=({slug:e,action:t})=>{let n=t.annotations,r=t.message||"No details provided.";return r7n.renderString(i7n,{slug:e,message:r,annotations:n})}});var s7n,o7n,BRt,zRt=v(()=>{"use strict";gt();ht();Rt();s7n=new Te({autoEscape:!1,useWith:!0}),o7n=ie("@canon:feedback/close_feedback"),BRt=({slug:e,action:t})=>{let n=t.stage||"",r=t.feedback_id||"";return s7n.renderString(o7n,{slug:e,stage:n,fbId:r})}});var a7n,c7n,GRt,VRt=v(()=>{"use strict";gt();ns();ht();Rt();a7n=new Te({autoEscape:!1,useWith:!0}),c7n=ie("@canon:feedback/feedback_question"),GRt=e=>{let t=e.action;return a7n.renderString(c7n,{slug:e.slug,stage:t.stage,feedbackId:t.feedback_id,feedbackPath:t.feedback_path,isAutopilot:BI(e.dir)==="autopilot"})}});var u7n,l7n,WRt,KRt=v(()=>{"use strict";gt();ht();Rt();u7n=new Te({autoEscape:!1,useWith:!0}),l7n=ie("@canon:feedback/fix_quality_gates"),WRt=({slug:e,action:t})=>{let n=t.stage||"",r=n?`, stage: "${n}"`:"",i=t.message||"No details provided.";return u7n.renderString(l7n,{slug:e,stageHint:r,message:i})}});import{existsSync as k6}from"node:fs";import{join as d7n}from"node:path";var YRt,f7n,p7n,ZRt,JRt=v(()=>{"use strict";gt();_f();ze();Kn();vl();ns();ht();Fh();Rt();YRt=new Te({autoEscape:!1,useWith:!0}),f7n=ie("@canon:feedback/intent_completion_fix"),p7n=ie("@canon:feedback/intent_completion_fix","subagent.eta.md"),ZRt=({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=ve(),u=zD(t),l=s.map(({feedback_id:f,feedback_file:p,feedback_title:h,bolt:m,worktree:g,branch:y})=>{let b=d7n(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&&k6(x)?Rl(x,`Fix-hat mandate: ${A}`):"",N=x&&k6(x)?UI(LI(x)):"",C=k6(b)?Rl(b,`Feedback: ${f} \u2014 ${h}`):"",L=k6(b)?FI(b):"",G=YRt.renderString(p7n,{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:Ee(),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{E3({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 YRt.renderString(f7n,{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 I6}from"node:fs";import{join as x6}from"node:path";var XRt,h7n,m7n,QRt,$Rt=v(()=>{"use strict";gt();Ci();_f();ze();Kn();vl();ji();ns();ht();Fh();Rt();XRt=new Te({autoEscape:!1,useWith:!0}),h7n=ie("@canon:feedback/review_fix"),m7n=ie("@canon:feedback/review_fix","subagent.eta.md"),QRt=({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=ve(),l=Du(t,r),d=si(t),f=d?d.dir:t,p=nn(),h=Ff(x6(f,"stages",r,"STAGE.md")),m=o.map(({feedback_id:y,feedback_file:b,feedback_title:S,bolt:E,worktree:_,branch:T})=>{let R=x6(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?x6(p,"studios",f,"stages",r,"hats",`${C}.md`):null,W=N===i.length-1,$=h?Rl(h,`Stage scope: ${r}`):"",q=G&&I6(G)?Rl(G,`Hat mandate: ${C}`):"",Q=G&&I6(G)?UI(LI(G)):"",B=I6(R)?Rl(R,`Feedback: ${y} \u2014 ${S}`):"",F=I6(R)?FI(R):"",V=XRt.renderString(m7n,{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:Ee(),isLast:W}),U=x6(nn(),"studios",t,"stages",r,"hats",`${C}.md`),M=ju({mandatePath:U,studio:t,stage:r}),j=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{E3({unit:`fix-${y}`,hat:C,bolt:E,intent:e,stage:r},k)}catch{}k=j,N===0&&(P=j)}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 XRt.renderString(h7n,{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 eAt,readdirSync as tAt,readFileSync as nAt}from"node:fs";import{join as _x}from"node:path";function S7n(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?_x(cr(t,n),"feedback"):_x(ce(t),"feedback");try{let p=eAt(f)?tAt(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=nAt(_x(f,p[0]),"utf8");o=(0,IEe.default)(h).data.model}}catch{}}let a=n?Du(r,n)?.[i]:void 0,c=n?es(r,n):void 0,u=Cd(r),l=fb({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}var IEe,g7n,y7n,rAt,iAt=v(()=>{"use strict";gt();IEe=Re(Kt(),1);Ci();pb();ze();Kn();Ype();ns();ht();Fh();Rt();g7n=new Te({autoEscape:!1,useWith:!0}),y7n=ie("@canon:feedback/start_feedback_hat");rAt=({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?_x(cr(e,s.stage),"feedback"):_x(ce(e),"feedback");if(!eAt(a))return!0;let c=tAt(a).filter(u=>u.startsWith(o)&&u.endsWith(".md"));if(c.length===0)return!0;try{let u=nAt(_x(a,c[0]),"utf8"),l=(0,IEe.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=S7n({slug:e,studio:t,stage:s.stage,hat:s.hat,feedbackId:s.feedback_id}),a=VI({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?hb(t,s.stage,s.hat):null,dispatch_block:a}});return g7n.renderString(y7n,{slug:e,dispatches:i,dispatchCount:i.length,plural:i.length===1?"":"s",batchDirective:i.length>0?zI(i.length,"fix-hat subagents"):"",fixLoopContractsBlock:bs("workflow-contracts-fix-loop")})}});var b7n,E7n,sAt,oAt=v(()=>{"use strict";gt();ht();Rt();b7n=new Te({autoEscape:!1,useWith:!0}),E7n=ie("@canon:global/complete"),sAt=({action:e})=>b7n.renderString(E7n,{message:e.message??""})});var _7n,T7n,aAt,cAt=v(()=>{"use strict";gt();ht();Rt();_7n=new Te({autoEscape:!1,useWith:!0}),T7n=ie("@canon:global/error"),aAt=({action:e})=>_7n.renderString(T7n,{message:e.message??""})});var v7n,R7n,uAt,lAt=v(()=>{"use strict";gt();ht();Rt();v7n=new Te({autoEscape:!1,useWith:!0}),R7n=ie("@canon:global/loop_halted"),uAt=({action:e})=>{let t=e;return v7n.renderString(R7n,{message:t.message??"",loop:t.loop??"repeat",intent:t.intent??""})}});function k7n(e){let t=e.match(/^---\n[\s\S]*?\n---\n?/);return(t?e.slice(t[0].length):e).trim()}var A7n,w7n,dAt,fAt=v(()=>{"use strict";gt();Kn();ht();Rt();A7n=new Te({autoEscape:!1,useWith:!0}),w7n=ie("@canon:intent/reflection/record_reflection");dAt=({slug:e,studio:t})=>{let n=t?Object.entries(dft(t)).map(([r,i])=>({name:r,body:k7n(i)})):[];return A7n.renderString(w7n,{slug:e,dimensions:n})}});var I7n,x7n,pAt,hAt=v(()=>{"use strict";gt();ht();Rt();I7n=new Te({autoEscape:!1,useWith:!0}),x7n=ie("@canon:intent/repair/external_review_requested"),pAt=({action:e})=>I7n.renderString(x7n,{message:e.message??""})});var O7n,P7n,mAt,gAt=v(()=>{"use strict";gt();ht();Rt();O7n=new Te({autoEscape:!1,useWith:!0}),P7n=ie("@canon:intent/repair/revise_unit_specs"),mAt=({action:e})=>O7n.renderString(P7n,{message:e.message??""})});var N7n,C7n,yAt,SAt=v(()=>{"use strict";gt();ht();Rt();N7n=new Te({autoEscape:!1,useWith:!0}),C7n=ie("@canon:intent/repair/safe_intent_repair"),yAt=({slug:e,action:t})=>{let n=t.synthesized_stages||[],r=t.phase_regressed||!1,i=t.message||"";return N7n.renderString(C7n,{slug:e,message:i,synthesizedStages:n,phaseWasRegressed:r})}});import{existsSync as M7n,readFileSync as D7n}from"node:fs";import{join as L7n}from"node:path";function j7n(e){let t=L7n(ce(e),"intent.md");return M7n(t)&&re(D7n(t,"utf8")).data.draft_pr_url||""}function H7n(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 q7n(e,t,n){let r=U7n[n],i="",s;if(r){let l=O6.renderString(r,{slug:e}).trim();i=`**Read** \`${_b({intent:e,kind:"engine-body",name:n,body:l})}\``}else{let l=Mh(t,void 0,n);l&&(i=kr({resolveBody:()=>l,toolName:"haiku_read_review_agent",toolArgs:{studio:t,role:n},intent:e,kind:"mandate",name:n}),s=ju({mandatePath:yg(t)[n],studio:t}))}let o=FT.has(n),a=o?j7n(e):"",c=i?O6.renderString(F7n,{slug:e,role:n,mandateRef:i,doctrineRef:UT.has(n)?bs("runtime-verification"):"",prInteraction:o,proofTargetPrUrl:a,existingFeedback:jI(e,""),decisions:HI(e)}):H7n(e,n);return{dispatchBlock:Ti({unit:"review",hat:n,bolt:1,intent:e,agentType:"general-purpose",model:s,promptBody:c,heading:`### Subagent: \`${n}\``,omitBolt:!0}),isEngine:!!r}}var U7n,O6,bAt,F7n,EAt,_At=v(()=>{"use strict";gt();ze();Kn();vl();ns();ht();Fh();Rt();U7n={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")},O6=new Te({autoEscape:!1,useWith:!0}),bAt=ie("@canon:intent/review/intent_review"),F7n=ie("@canon:intent/review/intent_review","subagent.eta.md");EAt=({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 O6.renderString(bAt,{slug:e,role:"user",roles:["user"],dispatchCount:1,mandatePath:"",dispatchBlock:"",isEngineRole:!1,description:""});let i=r.map(o=>q7n(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 Cvt(e){return X5n[e]}var S6=0,Mvt=1,aEe=2,Dvt=3;function Q5n(e){let t=[],n=S6,r="",i=!1,s=!1,o=0,a="",c=e.length;for(var u=0;u{"use strict";Uvt.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 Bvt=w((bSi,qvt)=>{"use strict";var{Readable:Hvt}=Y("node:stream"),{inherits:$5n}=Y("node:util"),e8n=sEe(),jvt=cEe(),t8n=g6(),n8n=Fvt(),Uv=m6(),r8n=/^boundary$/i,i8n=/^form-data$/i,s8n=/^charset$/i,o8n=/^filename$/i,a8n=/^name$/i;b6.detect=/^multipart\/form-data/i;function b6(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",bx),e.hitPartsLimit=!0,e.emit("partsLimit"),bx(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=jvt(C["content-type"][0]),W[0])){for(L=W[0].toLowerCase(),n=0,r=W.length;nh){let j=h-B+M.length;j>0&&U.push(M.slice(0,j)),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")),bx(N);++_,++T;let U="",M=!1;A=N,F=function(j){if((B+=j.length)>p){let H=p-(B-j.length);U+=j.toString("binary",0,H),M=!0,N.removeAllListeners("data")}else U+=j.toString("binary")},V=function(){A=void 0,U.length&&(U=t8n(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()})}b6.prototype.write=function(e,t){let n=this.parser.write(e);n&&!this._pause?t():(this._needDrain=!n,this._cb=t)};b6.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 bx(e){e.resume()}function uEe(e){Hvt.call(this,e),this.bytesRead=0,this.truncated=!1}$5n(uEe,Hvt);uEe.prototype._read=function(e){};qvt.exports=b6});var Gvt=w((ESi,zvt)=>{"use strict";var c8n=/\+/g,u8n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 lEe(){this.buffer=void 0}lEe.prototype.write=function(e){e=e.replace(c8n," ");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 l8n=Gvt(),Ex=g6(),dEe=m6(),d8n=/^charset$/i;E6.detect=/^application\/x-www-form-urlencoded/i;function E6(e,t){let n=t.limits,r=t.parsedConType;this.boy=e,this.fieldSizeLimit=dEe(n,"fieldSize",1*1024*1024),this.fieldNameSizeLimit=dEe(n,"fieldNameSize",100),this.fieldsLimit=dEe(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",Ex(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",Ex(this._key,"binary",this.charset),Ex(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",Ex(this._key,"binary",this.charset),"",this._keyTrunc,!1):this._state==="val"&&this.boy.emit("field",Ex(this._key,"binary",this.charset),Ex(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this.boy._done=!0,this.boy.emit("finish"))};Vvt.exports=E6});var Zvt=w((TSi,W1)=>{"use strict";var fEe=Y("node:stream").Writable,{inherits:f8n}=Y("node:util"),p8n=sEe(),Kvt=Bvt(),Yvt=Wvt(),h8n=cEe();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},fEe.call(this,this.opts),this._done=!1,this._parser=this.getParserByHeaders(t),this._finished=!1}f8n(Bg,fEe);Bg.prototype.emit=function(e){if(e==="finish"){if(this._done){if(this._finished)return}else{this._parser?.end();return}this._finished=!0}fEe.prototype.emit.apply(this,arguments)};Bg.prototype.getParserByHeaders=function(e){let t=h8n(e["content-type"]),n={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:e,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:t,preservePath:this.opts.preservePath};if(Kvt.detect.test(t[0]))return new Kvt(this,n);if(Yvt.detect.test(t[0]))return new Yvt(this,n);throw new Error("Unsupported Content-Type.")};Bg.prototype._write=function(e,t,n){this._parser.write(e,n)};W1.exports=Bg;W1.exports.default=Bg;W1.exports.Busboy=Bg;W1.exports.Dicer=p8n});var Qvt=w((vSi,Xvt)=>{"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"],Fv=Math.random;function Jvt(){return zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]+zg[255*Fv()|0]}Xvt.exports.generateId=(function(){let t=0,n=Jvt();return function(){return t===255?(n=Jvt())+zg[t=0]:n+zg[++t]}})()});var eRt=w((RSi,$vt)=>{"use strict";$vt.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 rRt=w((ASi,K1)=>{"use strict";var tRt=Object.getPrototypeOf({});function nRt(){return function(t){return typeof t=="object"&&t!==null&&!(t instanceof RegExp)&&!(t instanceof Date)}}function pEe(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 m8n=Zvt(),g8n=Y("node:os"),y8n=JC(),{createWriteStream:S8n}=Y("node:fs"),{unlink:b8n}=Y("node:fs/promises"),iRt=Y("node:path"),{generateId:E8n}=Qvt(),Gg=_W(),_8n=eRt(),T8n=rRt()({all:!0}),{PassThrough:v8n,Readable:R8n}=Y("node:stream"),{pipeline:A8n}=Y("node:stream/promises"),w8n=Uue(),gEe=Symbol("multipart"),_6=Symbol("multipartHandler"),Y1=Symbol("savedRequestFilesResult"),sRt=Gg("FST_PARTS_LIMIT","reach parts limit",413),oRt=Gg("FST_FILES_LIMIT","reach files limit",413),aRt=Gg("FST_FIELDS_LIMIT","reach fields limit",413),hEe=Gg("FST_REQ_FILE_TOO_LARGE","request file too large",413),mEe=Gg("FST_PROTO_VIOLATION","prototype property is not allowed as field name",400),cRt=Gg("FST_INVALID_MULTIPART_CONTENT_TYPE","the request is not multipart",406),uRt=Gg("FST_INVALID_JSON_FIELD_ERROR","a request field is not a valid JSON as declared by its Content-Type",406),lRt=Gg("FST_FILE_BUFFER_NOT_FOUND","the file buffer was not found",500),k8n=Gg("FST_NO_FORM_DATA","FormData is not available",500);function I8n(e,t,n){e[gEe]=!0,n()}function x8n(e){try{return new m8n(e)}catch(t){let n=new v8n;return process.nextTick(function(){n.emit("error",t)}),n}}function yEe(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[gEe]}function o(p={}){if(!this.isMultipart())throw new cRt;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=T8n({headers:T.headers},t,p);this.log.trace({busboyOptions:R},"Providing options to busboy");let A=x8n(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 sRt;P(C),process.nextTick(()=>N(C))}),A.on("filesLimit",function(){let C=new oRt;P(C),process.nextTick(()=>N(C))}),A.on("fieldsLimit",function(){let C=new aRt;P(C),process.nextTick(()=>N(C))}),T.pipe(A);function x(C,L,G,W,$,q){if(C in Object.prototype){P(new mEe);return}if(q.startsWith("application/json")){if(W){P(new uRt);return}try{L=w8n.parse(L),q="application/json"}catch{P(new uRt);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){_8n(L).catch(()=>{}),P(new mEe);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 hEe,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 hEe;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[Y1])return this[Y1];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||g8n.tmpdir();this.tmpUploads=[];let y=0;for await(let b of h){if(m=b.fields,!b.file)continue;let S=iRt.join(g,E8n()+iRt.extname(b.filename||"file"+y++)),E=S8n(S);try{this.tmpUploads.push(S),await A8n(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[Y1]={files:this.savedRequestFiles,values:m},this[Y1]}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"}})}Z1.exports=y8n(yEe,{fastify:"5.x",name:"@fastify/multipart"});Z1.exports.default=yEe;Z1.exports.fastifyMultipart=yEe;Z1.exports.ajvFilePlugin=O8n});import{mkdirSync as P8n}from"node:fs";import{open as N8n}from"node:fs/promises";import{dirname as C8n,join as M8n}from"node:path";function Q1(e,t){let n=String(t).padStart(2,"0");return`HWM-${e}-${n}`}function pRt(e,t=200){return e.length<=t?e:`${e.slice(0,t)}...`}function X1(e){return Buffer.byteLength(e,"utf-8")}function SEe(e,t){if(X1(e)<=t)return e;let n="...[truncated]",r=X1(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 j8n(e){let t=(s,o)=>s==null?null:SEe(s,o),n={...e,path:SEe(e.path,L8n),claimed_author_id:t(e.claimed_author_id,fRt),human_author_id:t(e.human_author_id,fRt),rationale:t(e.rationale,D8n),dirs_created:(e.dirs_created??[]).slice(0,U8n).map(s=>SEe(s,F8n))},r=JSON.stringify(n),i=X1(r);return i>T6?{ok:!1,reason:"record_too_large",bytes:i,cap:T6}:{ok:!0,record:n,line:r}}function H8n(e){return M8n(e,"write-audit.jsonl")}async function q8n(e,t){let n=J1.get(e)??Promise.resolve(),r,i=new Promise(s=>{r=s});J1.set(e,n.then(()=>i));try{return await n,await t()}finally{r(),queueMicrotask(()=>{let s=J1.get(e);s!==void 0&&Promise.resolve(s).then(()=>{J1.get(e)===s&&J1.delete(e)})})}}async function hRt(e,t){try{P8n(C8n(e),{recursive:!0})}catch(n){return{ok:!1,reason:String(n)}}return q8n(e,async()=>{let n=null;try{return n=await N8n(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 $1(e,t){let n=j8n(t);if(!n.ok)return{ok:!1,reason:`${n.reason} (bytes=${n.bytes}, cap=${n.cap})`};let r=H8n(e);return hRt(r,n.line)}async function mRt(e,t){return X1(t)>T6?{ok:!1,reason:`record_too_large (bytes=${X1(t)}, cap=${T6})`}:hRt(e,t)}var T6,D8n,fRt,L8n,U8n,F8n,J1,v6=v(()=>{"use strict";T6=16*1024,D8n=4096,fRt=128,L8n=1024,U8n=16,F8n=512;J1=new Map});import{join as B8n}from"node:path";function bEe(e){return B8n(e,"action-log.jsonl")}async function jv(e,t,n){let r=bEe(e),i=JSON.stringify(n);return mRt(r,i)}var R6=v(()=>{"use strict";v6()});import{createHash as z8n}from"node:crypto";import{createWriteStream as G8n,existsSync as _Ee,readFileSync as V8n,unlinkSync as RRt}from"node:fs";import{join as eU,resolve as gRt}from"node:path";function W8n(e){return!(!e||e==="application/octet-stream")}function SRt(e){return typeof e!="string"?!1:vEe.test(e)}function K8n(e){let t=e.lastIndexOf(".");return t<0?"":e.slice(t).toLowerCase()}function Y8n(e){if(!e)return"";let t=e.indexOf(";");return(t<0?e:e.slice(0,t)).trim().toLowerCase()}function bRt(e){return TEe.has(K8n(e))}function EEe(){let e=process.env.HAIKU_UPLOAD_MAX_BYTES,t;if(e===void 0)t=yRt;else{let n=Number.parseInt(e,10);t=!Number.isFinite(n)||n<=0?yRt:n}return t>A6?(Ke("haiku.upload.cap_clamped",{env_value:String(t),hard_cap:String(A6)}),A6):Math.min(t,A6)}function ERt(e,t){try{let n=eU(ce(e),"stages",t,"state.json");if(!_Ee(n))return!1;let r=V8n(n,"utf-8"),s=JSON.parse(r).status;return s==="complete"||s==="sealed"}catch{return!1}}function _Rt(e){return _1(ce(e))}function TRt(e){return E1(ce(e))}async function vRt(e,t,n){let r=eU(t,`.upload-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}.tmp`),i=z8n("sha256"),s=0,o=G8n(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{RRt(r)}catch{}throw c}),{tmpPath:r,sha256:i.digest("hex"),bytes:s}}async function wRt(e){await e.register(async t=>{await t.register(ARt.default,{limits:{fileSize:EEe()+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(!yn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!cx(n,r,i))return;if(!Ua(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(_Rt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(TRt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=EEe(),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(!SRt(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:vEe.source});return}let d=bRt(l.filename),f=bRt(a);if(d||f){r.status(415).send({error:"unsupported_media_type",code:"unsupported_media_type",message:`Files with extensions ${Array.from(TEe).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(TEe)});return}let p=Y8n(l.mimetype);if(!W8n(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(!yn(o)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!$h(i,o)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(ERt(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=av(`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=ce(i),S=eU(b,g),E=S.substring(0,S.lastIndexOf("/")),_=gRt(S),T=gRt(eU(b,y));if(!_.startsWith(T)){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let R=_Ee(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 vRt(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=yv(b,E,A,S);if(!P.ok){V0(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=Ub(b,o),C=Q1(N,1),L=new Date().toISOString();await jv(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 $1(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(!Gn(n,r,null))return;let{intent:i}=n.params;if(!yn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!cx(n,r,i))return;if(!Ua(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(_Rt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(TRt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=EEe(),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(!SRt(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:vEe.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(!yn(a)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!$h(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(ERt(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}}let d=ce(i),f=a!==null?`stages/${a}/knowledge/${l}`:`knowledge/${l}`,p=eU(d,f),h=p.substring(0,p.lastIndexOf("/"));if(_Ee(p)){r.status(409).send({error:"filename_collision",code:"filename_collision"});return}let g=null,y,b;try{let k=await vRt(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=yv(d,h,g,p);if(!S.ok){V0(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?T1(d):Ub(d,a)}catch(k){if(k instanceof Vd){try{RRt(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=Q1(_,1),A=new Date().toISOString();await jv(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 $1(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 ARt,yRt,A6,TEe,vEe,kRt=v(()=>{"use strict";ARt=Re(dRt(),1);R6();P0();v6();XY();ze();vo();qg();Pv();yRt=50*1024*1024,A6=50*1024*1024,TEe=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);vEe=/^[\w][\w\-.@ ]{0,127}$/});function IRt(e){e.register(async t=>{t.get("/ws/session/:sessionId",{websocket:!0,preValidation:async(n,r)=>{if(!zi())return;let{sessionId:i}=n.params,s=n.query?.t;if(!s){r.status(401).send({error:"unauthorized",reason:"missing_token"});return}let o=Xh(s,i);if(!o.ok){r.status(401).send({error:"unauthorized",reason:o.reason});return}}},(n,r)=>{let{sessionId:i}=r.params;if(zi()){let c=r.query?.t;if(!c){n.close(4401,"unauthorized");return}if(!Xh(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>=G1){Vb(`upgrade REJECT session=${i} reason=ws_session_cap size=${Yu.size} cap=${G1}`),n.close(1013,"session cap reached");return}Yu.set(i,n),Vb(`upgrade ACCEPT session=${i}`);let o=null,a=s.session_type==="review"?s:null;a?.intent_slug&&(o=yTt(a.intent_slug,c=>{em(i,{type:"intent-event",session_id:i,event:c})})),n.on("message",c=>{if(!fvt(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");pvt(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 xRt=v(()=>{"use strict";hx();$c();Qh();h6()});import{randomUUID as Z8n}from"node:crypto";function J8n(){return REe}function X8n(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,LRt.default)({logger:!1,bodyLimit:wD,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 Z8n()},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{}}),zi()&&await e.register(CRt.default,{origin:(t,n)=>{n(null,X8n(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}),zi()){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(MRt.default,{max:t,timeWindow:n})}return await e.register(DRt.default,{options:{maxPayload:64*1024}}),e.addHook("onSend",async(t,n,r)=>{let i=Rbe((t.url??"/").split("?")[0]);if(!i||!D1(i)||n.statusCode>=400)return r;try{return await nTt(t,n,r)}catch{return r}}),eTt(e,J8n),U_t(e),gvt(e),mTt(e),lTt(e),await wRt(e),B_t(e),W_t(e),Q_t(e),IRt(e),e}function NRt(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 Yb(){if(Kb&&Wb!==null)return Wb;zi()&&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."),Kb=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 Kb.listen({host:t,port:0});Kb.server.maxConnections=PRt;let r=n.match(/^https?:\/\/(\[?[^\]]*\]?|[^:]+):(\d+)/);if(r&&(Wb=Number.parseInt(r[2],10),NRt(r[1].replace(/^\[|\]$/g,""))),Wb===null){let i=Kb.server.address();i&&typeof i=="object"&&(Wb=i.port,NRt(i.address))}return console.error(`Review HTTP server listening on http://127.0.0.1:${Wb} (maxConnections=${PRt}, maxWsSessions=${G1})`),REe=!0,Wb}async function URt(){if(Kb)try{for(let e of Array.from(Yu.keys()))try{Dv(e,"shutdown")}catch{}await Kb.close()}finally{Kb=null,Wb=null,REe=!1}}var CRt,MRt,DRt,LRt,ORt,PRt,Kb,Wb,REe,w6=v(()=>{"use strict";CRt=Re($8e(),1),MRt=Re(p7e(),1),DRt=Re(GXe(),1),LRt=Re(but(),1);vT();Ci();z_t();K_t();Ebe();$_t();tTt();rTt();dTt();gTt();yvt();kRt();h6();xRt();Qh();ORt=256,PRt=(()=>{let e=process.env.HAIKU_MAX_CONNECTIONS;if(e===void 0)return ORt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?ORt:Math.max(t,1)})(),Kb=null,Wb=null,REe=!1});import{execFileSync as $8n}from"node:child_process";import{cpSync as FRt,existsSync as kEe,mkdirSync as AEe}from"node:fs";import{homedir as jRt}from"node:os";import{join as IEe}from"node:path";function n7n(){return IEe(jRt(),".claude","plugins","npm-cache","node_modules","haiku-method")}function r7n(e){let t=e??nn();if(!t)return{removed:!0,root:"",missingPaths:[""]};let n=[];for(let r of e7n)kEe(IEe(t,r))||n.push(r);return{removed:n.length>0,root:t,missingPaths:n}}function i7n(){if(ud==="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=n7n();if(kEe(t))try{return AEe(e,{recursive:!0}),FRt(t,e,{recursive:!0,force:!0}),{ok:!0,method:"npm-cache-copy"}}catch(r){}let n=IEe(jRt(),".claude","plugins","npm-cache");try{return AEe(n,{recursive:!0}),$8n("npm",["install",`haiku-method@${ud}`,"--prefix",n],{encoding:"utf8",timeout:6e4,stdio:"pipe"}),kEe(t)?(AEe(e,{recursive:!0}),FRt(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 HRt(e){let t=Date.now();if(t-wEe{"use strict";Ci();sh();p_();e7n=["studios","schemas",".claude-plugin/plugin.json"],t7n=5e3,wEe=0});var Rt=v(()=>{"use strict"});var s7n,o7n,BRt,zRt=v(()=>{"use strict";gt();ht();Rt();s7n=new Te({autoEscape:!1,useWith:!0}),o7n=ie("@canon:feedback/changes_requested"),BRt=({slug:e,action:t})=>{let n=t.annotations,r=t.message||"No details provided.";return s7n.renderString(o7n,{slug:e,message:r,annotations:n})}});var a7n,c7n,GRt,VRt=v(()=>{"use strict";gt();ht();Rt();a7n=new Te({autoEscape:!1,useWith:!0}),c7n=ie("@canon:feedback/close_feedback"),GRt=({slug:e,action:t})=>{let n=t.stage||"",r=t.feedback_id||"";return a7n.renderString(c7n,{slug:e,stage:n,fbId:r})}});var u7n,l7n,WRt,KRt=v(()=>{"use strict";gt();ns();ht();Rt();u7n=new Te({autoEscape:!1,useWith:!0}),l7n=ie("@canon:feedback/feedback_question"),WRt=e=>{let t=e.action;return u7n.renderString(l7n,{slug:e.slug,stage:t.stage,feedbackId:t.feedback_id,feedbackPath:t.feedback_path,isAutopilot:BI(e.dir)==="autopilot"})}});var d7n,f7n,YRt,ZRt=v(()=>{"use strict";gt();ht();Rt();d7n=new Te({autoEscape:!1,useWith:!0}),f7n=ie("@canon:feedback/fix_quality_gates"),YRt=({slug:e,action:t})=>{let n=t.stage||"",r=n?`, stage: "${n}"`:"",i=t.message||"No details provided.";return d7n.renderString(f7n,{slug:e,stageHint:r,message:i})}});import{existsSync as k6}from"node:fs";import{join as p7n}from"node:path";var JRt,h7n,m7n,XRt,QRt=v(()=>{"use strict";gt();_f();ze();Kn();vl();ns();ht();Fh();Rt();JRt=new Te({autoEscape:!1,useWith:!0}),h7n=ie("@canon:feedback/intent_completion_fix"),m7n=ie("@canon:feedback/intent_completion_fix","subagent.eta.md"),XRt=({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=ve(),u=zD(t),l=s.map(({feedback_id:f,feedback_file:p,feedback_title:h,bolt:m,worktree:g,branch:y})=>{let b=p7n(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&&k6(x)?Rl(x,`Fix-hat mandate: ${A}`):"",N=x&&k6(x)?UI(LI(x)):"",C=k6(b)?Rl(b,`Feedback: ${f} \u2014 ${h}`):"",L=k6(b)?FI(b):"",G=JRt.renderString(m7n,{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:Ee(),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{E3({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 JRt.renderString(h7n,{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 I6}from"node:fs";import{join as x6}from"node:path";var $Rt,g7n,y7n,eAt,tAt=v(()=>{"use strict";gt();Ci();_f();ze();Kn();vl();ji();ns();ht();Fh();Rt();$Rt=new Te({autoEscape:!1,useWith:!0}),g7n=ie("@canon:feedback/review_fix"),y7n=ie("@canon:feedback/review_fix","subagent.eta.md"),eAt=({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=ve(),l=Du(t,r),d=si(t),f=d?d.dir:t,p=nn(),h=Ff(x6(f,"stages",r,"STAGE.md")),m=o.map(({feedback_id:y,feedback_file:b,feedback_title:S,bolt:E,worktree:_,branch:T})=>{let R=x6(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?x6(p,"studios",f,"stages",r,"hats",`${C}.md`):null,W=N===i.length-1,$=h?Rl(h,`Stage scope: ${r}`):"",q=G&&I6(G)?Rl(G,`Hat mandate: ${C}`):"",Q=G&&I6(G)?UI(LI(G)):"",B=I6(R)?Rl(R,`Feedback: ${y} \u2014 ${S}`):"",F=I6(R)?FI(R):"",V=$Rt.renderString(y7n,{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:Ee(),isLast:W}),U=x6(nn(),"studios",t,"stages",r,"hats",`${C}.md`),M=ju({mandatePath:U,studio:t,stage:r}),j=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{E3({unit:`fix-${y}`,hat:C,bolt:E,intent:e,stage:r},k)}catch{}k=j,N===0&&(P=j)}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 $Rt.renderString(g7n,{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 nAt,readdirSync as rAt,readFileSync as iAt}from"node:fs";import{join as _x}from"node:path";function E7n(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?_x(cr(t,n),"feedback"):_x(ce(t),"feedback");try{let p=nAt(f)?rAt(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=iAt(_x(f,p[0]),"utf8");o=(0,xEe.default)(h).data.model}}catch{}}let a=n?Du(r,n)?.[i]:void 0,c=n?es(r,n):void 0,u=Cd(r),l=fb({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}var xEe,S7n,b7n,sAt,oAt=v(()=>{"use strict";gt();xEe=Re(Kt(),1);Ci();pb();ze();Kn();Zpe();ns();ht();Fh();Rt();S7n=new Te({autoEscape:!1,useWith:!0}),b7n=ie("@canon:feedback/start_feedback_hat");sAt=({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?_x(cr(e,s.stage),"feedback"):_x(ce(e),"feedback");if(!nAt(a))return!0;let c=rAt(a).filter(u=>u.startsWith(o)&&u.endsWith(".md"));if(c.length===0)return!0;try{let u=iAt(_x(a,c[0]),"utf8"),l=(0,xEe.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=E7n({slug:e,studio:t,stage:s.stage,hat:s.hat,feedbackId:s.feedback_id}),a=VI({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?hb(t,s.stage,s.hat):null,dispatch_block:a}});return S7n.renderString(b7n,{slug:e,dispatches:i,dispatchCount:i.length,plural:i.length===1?"":"s",batchDirective:i.length>0?zI(i.length,"fix-hat subagents"):"",fixLoopContractsBlock:bs("workflow-contracts-fix-loop")})}});var _7n,T7n,aAt,cAt=v(()=>{"use strict";gt();ht();Rt();_7n=new Te({autoEscape:!1,useWith:!0}),T7n=ie("@canon:global/complete"),aAt=({action:e})=>_7n.renderString(T7n,{message:e.message??""})});var v7n,R7n,uAt,lAt=v(()=>{"use strict";gt();ht();Rt();v7n=new Te({autoEscape:!1,useWith:!0}),R7n=ie("@canon:global/error"),uAt=({action:e})=>v7n.renderString(R7n,{message:e.message??""})});var A7n,w7n,dAt,fAt=v(()=>{"use strict";gt();ht();Rt();A7n=new Te({autoEscape:!1,useWith:!0}),w7n=ie("@canon:global/loop_halted"),dAt=({action:e})=>{let t=e;return A7n.renderString(w7n,{message:t.message??"",loop:t.loop??"repeat",intent:t.intent??""})}});function x7n(e){let t=e.match(/^---\n[\s\S]*?\n---\n?/);return(t?e.slice(t[0].length):e).trim()}var k7n,I7n,pAt,hAt=v(()=>{"use strict";gt();Kn();ht();Rt();k7n=new Te({autoEscape:!1,useWith:!0}),I7n=ie("@canon:intent/reflection/record_reflection");pAt=({slug:e,studio:t})=>{let n=t?Object.entries(pft(t)).map(([r,i])=>({name:r,body:x7n(i)})):[];return k7n.renderString(I7n,{slug:e,dimensions:n})}});var O7n,P7n,mAt,gAt=v(()=>{"use strict";gt();ht();Rt();O7n=new Te({autoEscape:!1,useWith:!0}),P7n=ie("@canon:intent/repair/external_review_requested"),mAt=({action:e})=>O7n.renderString(P7n,{message:e.message??""})});var N7n,C7n,yAt,SAt=v(()=>{"use strict";gt();ht();Rt();N7n=new Te({autoEscape:!1,useWith:!0}),C7n=ie("@canon:intent/repair/revise_unit_specs"),yAt=({action:e})=>N7n.renderString(C7n,{message:e.message??""})});var M7n,D7n,bAt,EAt=v(()=>{"use strict";gt();ht();Rt();M7n=new Te({autoEscape:!1,useWith:!0}),D7n=ie("@canon:intent/repair/safe_intent_repair"),bAt=({slug:e,action:t})=>{let n=t.synthesized_stages||[],r=t.phase_regressed||!1,i=t.message||"";return M7n.renderString(D7n,{slug:e,message:i,synthesizedStages:n,phaseWasRegressed:r})}});import{existsSync as L7n,readFileSync as U7n}from"node:fs";import{join as F7n}from"node:path";function q7n(e){let t=F7n(ce(e),"intent.md");return L7n(t)&&re(U7n(t,"utf8")).data.draft_pr_url||""}function B7n(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 z7n(e,t,n){let r=j7n[n],i="",s;if(r){let l=O6.renderString(r,{slug:e}).trim();i=`**Read** \`${_b({intent:e,kind:"engine-body",name:n,body:l})}\``}else{let l=Mh(t,void 0,n);l&&(i=kr({resolveBody:()=>l,toolName:"haiku_read_review_agent",toolArgs:{studio:t,role:n},intent:e,kind:"mandate",name:n}),s=ju({mandatePath:yg(t)[n],studio:t}))}let o=FT.has(n),a=o?q7n(e):"",c=i?O6.renderString(H7n,{slug:e,role:n,mandateRef:i,doctrineRef:UT.has(n)?bs("runtime-verification"):"",prInteraction:o,proofTargetPrUrl:a,existingFeedback:jI(e,""),decisions:HI(e)}):B7n(e,n);return{dispatchBlock:Ti({unit:"review",hat:n,bolt:1,intent:e,agentType:"general-purpose",model:s,promptBody:c,heading:`### Subagent: \`${n}\``,omitBolt:!0}),isEngine:!!r}}var j7n,O6,_At,H7n,TAt,vAt=v(()=>{"use strict";gt();ze();Kn();vl();ns();ht();Fh();Rt();j7n={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")},O6=new Te({autoEscape:!1,useWith:!0}),_At=ie("@canon:intent/review/intent_review"),H7n=ie("@canon:intent/review/intent_review","subagent.eta.md");TAt=({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 O6.renderString(_At,{slug:e,role:"user",roles:["user"],dispatchCount:1,mandatePath:"",dispatchBlock:"",isEngineRole:!1,description:""});let i=r.map(o=>z7n(e,t,o.role)),s=i.map(o=>o.dispatchBlock).join(` -`);return O6.renderString(bAt,{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 B7n,z7n,TAt,vAt=v(()=>{"use strict";gt();ht();Rt();B7n=new Te({autoEscape:!1,useWith:!0}),z7n=ie("@canon:intent/seal/intent_approved"),TAt=({slug:e})=>B7n.renderString(z7n,{slug:e})});var G7n,V7n,RAt,AAt=v(()=>{"use strict";gt();ar();ze();ht();Rt();G7n=new Te({autoEscape:!1,useWith:!0}),V7n=ie("@canon:intent/seal/intent_complete"),RAt=({slug:e})=>{let t=Ee(),n=t?Zo():"";return G7n.renderString(V7n,{slug:e,gitMode:t,mainline:n})}});import{existsSync as W7n,readFileSync as K7n}from"node:fs";import{join as Y7n}from"node:path";var wAt,Z7n,J7n,kAt,IAt=v(()=>{"use strict";gt();wAt=Re(Kt(),1);ht();Rt();Z7n=new Te({autoEscape:!1,useWith:!0}),J7n=ie("@canon:intent/seal/pending_seal"),kAt=({slug:e,action:t,dir:n})=>{let r=t.default_branch||"the default branch",i="";try{let s=Y7n(n,"intent.md");if(W7n(s)){let o=(0,wAt.default)(K7n(s,"utf8")).data;typeof o.draft_pr_url=="string"&&(i=o.draft_pr_url)}}catch{}return Z7n.renderString(J7n,{slug:e,defaultBranch:r,prUrl:i,intentMain:`haiku/${e}/main`})}});var X7n,Q7n,xAt,OAt=v(()=>{"use strict";gt();ns();ht();Rt();X7n=new Te({autoEscape:!1,useWith:!0}),Q7n=ie("@canon:intent/seal/seal_intent"),xAt=({slug:e,dir:t})=>X7n.renderString(Q7n,{slug:e,providerBlock:qI("seal_intent",t)})});var $7n,eJn,PAt,NAt=v(()=>{"use strict";gt();ht();Rt();$7n=new Te({autoEscape:!1,useWith:!0}),eJn=ie("@canon:intent/setup/migrated"),PAt=({action:e})=>$7n.renderString(eJn,{message:e.message??""})});var tJn,nJn,CAt,MAt=v(()=>{"use strict";gt();ht();Rt();tJn=new Te({autoEscape:!1,useWith:!0}),nJn=ie("@canon:intent/setup/select_studio"),CAt=({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 tJn.renderString(nJn,{slug:e,studioListing:r,emptyFallback:i})}});import{existsSync as DAt,readFileSync as LAt}from"node:fs";import{join as UAt}from"node:path";function iJn(e,t){let n=UAt(ce(e),"intent.md");if(!DAt(n))return"";let r=re(LAt(n,"utf8")).data,i=r.mode||"";if(t&&rJn.has(i)){let s=Tv(e,t)?.url;if(s)return s}return r.draft_pr_url||""}function cJn(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=UAt(cr(e,t),"units",r);if(!DAt(i))return[];try{let{data:s}=(0,FAt.default)(LAt(i,"utf8")),o=s.outputs;return Array.isArray(o)?o.filter(a=>typeof a=="string"):[]}catch{return[]}}function uJn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=aJn[i],a="",c;if(o){let m=xEe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${_b({intent:t,stage:r||void 0,kind:"engine-body",name:i,body:m})}\``}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 m=qD(n,r,i);m&&(c=ju({mandatePath:m,studio:n,stage:r}))}let u=r?s.flatMap(m=>cJn(t,r,m)).filter((m,g,y)=>y.indexOf(m)===g):[],l=UT.has(i)?bs("runtime-verification"):"",d=FT.has(i),f=d?iJn(t,r):"",p=xEe.renderString(oJn,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,outputPaths:u,doctrineRef:l,prInteraction:d,proofTargetPrUrl:f,existingFeedback:jI(t,r),decisions:HI(t)});return{dispatchBlock:Ti({unit:`approval-${i}`,hat:"approval",bolt:1,intent:t,stage:r||void 0,agentType:"general-purpose",model:c,promptBody:p,heading:`### Subagent: \`${i}\` (post-execute approval)`,omitBolt:!0}),isEngineRole:o!==void 0}}var FAt,rJn,xEe,sJn,oJn,aJn,jAt,HAt=v(()=>{"use strict";gt();FAt=Re(Kt(),1);ze();Kn();vl();ns();ht();Fh();Rt();rJn=new Set(["discrete","discrete-hybrid"]);xEe=new Te({autoEscape:!1,useWith:!0}),sJn=ie("@canon:stage/approve/dispatch_approval"),oJn=ie("@canon:stage/approve/dispatch_approval","subagent.eta.md"),aJn={spec:ie("@canon:stage/approve/dispatch_approval","engine-bodies/spec.eta.md"),continuity:ie("@canon:stage/approve/dispatch_approval","engine-bodies/continuity.eta.md"),"cross-stage-consistency":ie("@canon:stage/approve/dispatch_approval","engine-bodies/cross_stage_consistency.eta.md")};jAt=({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=>uJn({slug:e,studio:t,stage:r,role:c.role,units:c.units})),o=s.map(c=>c.dispatchBlock).join(` +`);return O6.renderString(_At,{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 G7n,V7n,RAt,AAt=v(()=>{"use strict";gt();ht();Rt();G7n=new Te({autoEscape:!1,useWith:!0}),V7n=ie("@canon:intent/seal/intent_approved"),RAt=({slug:e})=>G7n.renderString(V7n,{slug:e})});var W7n,K7n,wAt,kAt=v(()=>{"use strict";gt();ar();ze();ht();Rt();W7n=new Te({autoEscape:!1,useWith:!0}),K7n=ie("@canon:intent/seal/intent_complete"),wAt=({slug:e})=>{let t=Ee(),n=t?Zo():"";return W7n.renderString(K7n,{slug:e,gitMode:t,mainline:n})}});import{existsSync as Y7n,readFileSync as Z7n}from"node:fs";import{join as J7n}from"node:path";var IAt,X7n,Q7n,xAt,OAt=v(()=>{"use strict";gt();IAt=Re(Kt(),1);ht();Rt();X7n=new Te({autoEscape:!1,useWith:!0}),Q7n=ie("@canon:intent/seal/pending_seal"),xAt=({slug:e,action:t,dir:n})=>{let r=t.default_branch||"the default branch",i="";try{let s=J7n(n,"intent.md");if(Y7n(s)){let o=(0,IAt.default)(Z7n(s,"utf8")).data;typeof o.draft_pr_url=="string"&&(i=o.draft_pr_url)}}catch{}return X7n.renderString(Q7n,{slug:e,defaultBranch:r,prUrl:i,intentMain:`haiku/${e}/main`})}});var $7n,eJn,PAt,NAt=v(()=>{"use strict";gt();ns();ht();Rt();$7n=new Te({autoEscape:!1,useWith:!0}),eJn=ie("@canon:intent/seal/seal_intent"),PAt=({slug:e,dir:t})=>$7n.renderString(eJn,{slug:e,providerBlock:qI("seal_intent",t)})});var tJn,nJn,CAt,MAt=v(()=>{"use strict";gt();ht();Rt();tJn=new Te({autoEscape:!1,useWith:!0}),nJn=ie("@canon:intent/setup/migrated"),CAt=({action:e})=>tJn.renderString(nJn,{message:e.message??""})});var rJn,iJn,DAt,LAt=v(()=>{"use strict";gt();ht();Rt();rJn=new Te({autoEscape:!1,useWith:!0}),iJn=ie("@canon:intent/setup/select_studio"),DAt=({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 rJn.renderString(iJn,{slug:e,studioListing:r,emptyFallback:i})}});var P6,OEe=v(()=>{"use strict";P6=new Set(["discrete","discrete-hybrid"])});import{existsSync as UAt,readFileSync as FAt}from"node:fs";import{join as jAt}from"node:path";function sJn(e,t){let n=jAt(ce(e),"intent.md");if(!UAt(n))return"";let r=re(FAt(n,"utf8")).data,i=r.mode||"";if(t&&P6.has(i)){let s=Tv(e,t)?.url;if(s)return s}return r.draft_pr_url||""}function uJn(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=jAt(cr(e,t),"units",r);if(!UAt(i))return[];try{let{data:s}=(0,HAt.default)(FAt(i,"utf8")),o=s.outputs;return Array.isArray(o)?o.filter(a=>typeof a=="string"):[]}catch{return[]}}function lJn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=cJn[i],a="",c;if(o){let m=PEe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${_b({intent:t,stage:r||void 0,kind:"engine-body",name:i,body:m})}\``}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 m=qD(n,r,i);m&&(c=ju({mandatePath:m,studio:n,stage:r}))}let u=r?s.flatMap(m=>uJn(t,r,m)).filter((m,g,y)=>y.indexOf(m)===g):[],l=UT.has(i)?bs("runtime-verification"):"",d=FT.has(i),f=d?sJn(t,r):"",p=PEe.renderString(aJn,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,outputPaths:u,doctrineRef:l,prInteraction:d,proofTargetPrUrl:f,existingFeedback:jI(t,r),decisions:HI(t)});return{dispatchBlock:Ti({unit:`approval-${i}`,hat:"approval",bolt:1,intent:t,stage:r||void 0,agentType:"general-purpose",model:c,promptBody:p,heading:`### Subagent: \`${i}\` (post-execute approval)`,omitBolt:!0}),isEngineRole:o!==void 0}}var HAt,PEe,oJn,aJn,cJn,qAt,BAt=v(()=>{"use strict";gt();HAt=Re(Kt(),1);ze();Kn();vl();ns();ht();Fh();Rt();OEe();PEe=new Te({autoEscape:!1,useWith:!0}),oJn=ie("@canon:stage/approve/dispatch_approval"),aJn=ie("@canon:stage/approve/dispatch_approval","subagent.eta.md"),cJn={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")};qAt=({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=>lJn({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 xEe.renderString(sJn,{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 lJn,dJn,qAt,BAt=v(()=>{"use strict";gt();ht();Rt();lJn=new Te({autoEscape:!1,useWith:!0}),dJn=ie("@canon:stage/approve/dispatch_quality_gates"),qAt=({slug:e,action:t})=>{let n=t.stage||"",r=t.units||[],s=(t.scope||"")==="intent"||n==="";return lJn.renderString(dJn,{slug:e,stage:n,units:r,unitCount:r.length,unitsJson:JSON.stringify(r),intentScope:s})}});var fJn,pJn,zAt,GAt=v(()=>{"use strict";gt();ht();Rt();fJn=new Te({autoEscape:!1,useWith:!0}),pJn=ie("@canon:stage/complete/advance_phase"),zAt=({slug:e,action:t})=>{let n=t.to_phase;return fJn.renderString(pJn,{slug:e,toPhase:n})}});var hJn,mJn,VAt,WAt=v(()=>{"use strict";gt();ht();Rt();hJn=new Te({autoEscape:!1,useWith:!0}),mJn=ie("@canon:stage/complete/advance_stage"),VAt=({slug:e,action:t})=>{let n=t.stage,r=t.next_stage;return hJn.renderString(mJn,{slug:e,stage:n,nextStage:r})}});var gJn,yJn,KAt,YAt=v(()=>{"use strict";gt();ns();ht();Rt();gJn=new Te({autoEscape:!1,useWith:!0}),yJn=ie("@canon:stage/complete/complete_stage"),KAt=({slug:e,action:t,dir:n})=>{let r=t.stage||"";return gJn.renderString(yJn,{slug:e,stage:r,providerBlock:qI("complete_stage",n)})}});var SJn,bJn,ZAt,JAt=v(()=>{"use strict";gt();ht();Rt();SJn=new Te({autoEscape:!1,useWith:!0}),bJn=ie("@canon:stage/complete/record_observations"),ZAt=({slug:e,action:t})=>{let n=t.stage||"";return SJn.renderString(bJn,{slug:e,stage:n})}});import{execFileSync as EJn,execSync as XAt}from"node:child_process";import{existsSync as _c,readdirSync as op,readFileSync as P6,statSync as _Jn}from"node:fs";import{join as br,resolve as TJn}from"node:path";function tU(e){if(!_c(e))return{};let t=P6(e,"utf8"),{data:n}=re(t);return n}function QAt(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=P6(br(s,c),"utf8"),{data:l}=(0,OEe.default)(u);if(!(l.required!==!1))continue;let f=l.location||"";if(!f||f.startsWith("("))continue;let p=f.replace("{intent-slug}",e),h=br(process.cwd(),p);p.endsWith("/")?(!_c(h)||op(h).filter(m=>m!==".gitkeep").length===0)&&a.push({name:l.name||c,location:p}):_c(h)||a.push({name:l.name||c,location:p})}if(a.length>0)return{action:"outputs_missing",intent:e,stage:t,missing:a,message:`Cannot advance to review: ${a.length} required output(s) not found. +`),a=[...new Set(i.flatMap(c=>c.units))];return PEe.renderString(oJn,{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 dJn,fJn,zAt,GAt=v(()=>{"use strict";gt();ht();Rt();dJn=new Te({autoEscape:!1,useWith:!0}),fJn=ie("@canon:stage/approve/dispatch_quality_gates"),zAt=({slug:e,action:t})=>{let n=t.stage||"",r=t.units||[],s=(t.scope||"")==="intent"||n==="";return dJn.renderString(fJn,{slug:e,stage:n,units:r,unitCount:r.length,unitsJson:JSON.stringify(r),intentScope:s})}});var pJn,hJn,VAt,WAt=v(()=>{"use strict";gt();ht();Rt();pJn=new Te({autoEscape:!1,useWith:!0}),hJn=ie("@canon:stage/complete/advance_phase"),VAt=({slug:e,action:t})=>{let n=t.to_phase;return pJn.renderString(hJn,{slug:e,toPhase:n})}});var mJn,gJn,KAt,YAt=v(()=>{"use strict";gt();ht();Rt();mJn=new Te({autoEscape:!1,useWith:!0}),gJn=ie("@canon:stage/complete/advance_stage"),KAt=({slug:e,action:t})=>{let n=t.stage,r=t.next_stage;return mJn.renderString(gJn,{slug:e,stage:n,nextStage:r})}});var yJn,SJn,ZAt,JAt=v(()=>{"use strict";gt();ns();ht();Rt();yJn=new Te({autoEscape:!1,useWith:!0}),SJn=ie("@canon:stage/complete/complete_stage"),ZAt=({slug:e,action:t,dir:n})=>{let r=t.stage||"";return yJn.renderString(SJn,{slug:e,stage:r,providerBlock:qI("complete_stage",n)})}});var bJn,EJn,XAt,QAt=v(()=>{"use strict";gt();ht();Rt();bJn=new Te({autoEscape:!1,useWith:!0}),EJn=ie("@canon:stage/complete/record_observations"),XAt=({slug:e,action:t})=>{let n=t.stage||"";return bJn.renderString(EJn,{slug:e,stage:n})}});import{execFileSync as _Jn,execSync as $At}from"node:child_process";import{existsSync as _c,readdirSync as op,readFileSync as N6,statSync as TJn}from"node:fs";import{join as br,resolve as vJn}from"node:path";function tU(e){if(!_c(e))return{};let t=N6(e,"utf8"),{data:n}=re(t);return n}function ewt(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=N6(br(s,c),"utf8"),{data:l}=(0,NEe.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 N6(e,t,n){let r=[],i=n.annotations;if(i?.pins)for(let s of i.pins){if(!s.text)continue;let o=s.text.length>120?`${s.text.slice(0,117)}...`:s.text,a=Qo(e,t,{title:o,body:s.text,origin:"user-visual",author:"user",source_ref:`pin:${s.x},${s.y}`});r.push(a.feedback_id)}if(i?.comments)for(let s of i.comments){if(!s.comment)continue;let o=s.comment.length>120?`${s.comment.slice(0,117)}...`:s.comment,a=s.selectedText?s.selectedText.split(` +The execution phase must produce these artifacts. Go back and create them, then call haiku_run_next again.`};break}return null}function C6(e,t,n){let r=[],i=n.annotations;if(i?.pins)for(let s of i.pins){if(!s.text)continue;let o=s.text.length>120?`${s.text.slice(0,117)}...`:s.text,a=Qo(e,t,{title:o,body:s.text,origin:"user-visual",author:"user",source_ref:`pin:${s.x},${s.y}`});r.push(a.feedback_id)}if(i?.comments)for(let s of i.comments){if(!s.comment)continue;let o=s.comment.length>120?`${s.comment.slice(0,117)}...`:s.comment,a=s.selectedText?s.selectedText.split(` `).map(p=>`> ${p}`).join(` `):"",u=[s.location?`**Location:** \`${s.location}\` (paragraph ${s.paragraph})`:`**Location:** paragraph ${s.paragraph}`];a&&u.push("","**Selected text:**","",a),u.push("","**Comment:**","",s.comment);let l=u.join(` `),d=s.location?`${s.location}:paragraph=${s.paragraph}`:`paragraph:${s.paragraph}`,f=Qo(e,t,{title:o,body:l,origin:"user-visual",author:"user",source_ref:d});r.push(f.feedback_id)}if(n.feedback?.trim()){let s=n.feedback.trim(),o=s.length>120?`${s.slice(0,117)}...`:s,a=Qo(e,t,{title:o,body:s,origin:"user-chat",author:"user"});r.push(a.feedback_id)}return r.length>0&&wt(t?`feedback: create ${r.join(", ")} from review UI in ${t}`:`feedback: create ${r.join(", ")} from review UI (intent-scope)`),r}function Tx(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:()=>JK(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 $At(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=P6(br(s,c),"utf8"),{data:l}=(0,OEe.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. +`)}function twt(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=N6(br(s,c),"utf8"),{data:l}=(0,NEe.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 ewt(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(!vJn.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 nwt(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(!RJn.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 twt(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=tU(br(n,s)),a=o.status||"";if(["complete","skipped","failed"].includes(a))continue;(o.inputs||o.refs||[]).length===0&&i.push(s.replace(/\.md$/,""))}if(i.length>0){let s=e.split("/intents/")[1]||"";return{action:"unit_inputs_missing",intent:s,stage:t,missing_units:i,message:`Cannot advance to execution: ${i.length} unit(s) have no \`inputs:\` field. +Rename the files to match the convention, then call \`haiku_run_next { intent: "${o}" }\` again.`}}return null}function rwt(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=tU(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. @@ -1019,7 +1019,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 nwt(e){let t=br(e,"coverage-decisions.json");if(!_c(t))return new Set;try{let n=JSON.parse(P6(t,"utf8")),r=new Set;for(let i of n.decisions??[])i?.path&&r.add(i.path);return r}catch{return new Set}}function AJn(e,t){let n=[];for(let r of RJn){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=_Jn(d);f.isDirectory()?s.push(l):f.isFile()&&n.push(`${t}/${r}/${l}`)}catch{}}}}return n}function wJn(e){if(!_c(e))return[];let t=[];for(let n of op(e)){if(!n.endsWith(".md"))continue;let i=tU(br(e,n)).outputs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.push(s.trim())}return t}function kJn(e){let t=new Set;if(!_c(e))return t;for(let n of op(e)){if(!n.endsWith(".md"))continue;let r=tU(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 rwt(e,t,n){if(n.length===0)return null;let r=br(e,"stages",t,"units"),i=kJn(r),s=nwt(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=wJn(br(l,"units")),p=AJn(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 iwt(e){let t=br(e,"coverage-decisions.json");if(!_c(t))return new Set;try{let n=JSON.parse(N6(t,"utf8")),r=new Set;for(let i of n.decisions??[])i?.path&&r.add(i.path);return r}catch{return new Set}}function wJn(e,t){let n=[];for(let r of AJn){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=TJn(d);f.isDirectory()?s.push(l):f.isFile()&&n.push(`${t}/${r}/${l}`)}catch{}}}}return n}function kJn(e){if(!_c(e))return[];let t=[];for(let n of op(e)){if(!n.endsWith(".md"))continue;let i=tU(br(e,n)).outputs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.push(s.trim())}return t}function IJn(e){let t=new Set;if(!_c(e))return t;for(let n of op(e)){if(!n.endsWith(".md"))continue;let r=tU(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 swt(e,t,n){if(n.length===0)return null;let r=br(e,"stages",t,"units"),i=IJn(r),s=iwt(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=kJn(br(l,"units")),p=wJn(l,d);for(let h of[...f,...p])a.has(h)||(a.add(h),!i.has(h)&&(s.has(h)||o.push({path:h,from_stage:u})))}if(o.length===0)return null;let c=e.split("/intents/")[1]||"";return{action:"coverage_review_required",intent:c,stage:t,unreferenced:o,message:`Cannot advance past elaborate: ${o.length} prior-stage output(s) are not referenced by any unit's \`inputs:\` in stage '${t}' AND have no entry in \`stages/${t}/coverage-decisions.json\`. Continuity contract: downstream stages must cover upstream deliverables. For each unreferenced file, EITHER: (a) Call \`haiku_unit_set { intent: "${c}", stage: "${t}", unit: "", field: "inputs", value: [...existing, ""] }\` to add it to a unit's inputs (the canonical path). @@ -1029,8 +1029,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 OJn(e){return!(!IJn.test(e)||xJn.test(e))}function PJn(e){let t=e.replace(/^.*\//,""),n=t.lastIndexOf(".");return n>0?t.slice(0,n):t}function NJn(e){return e.startsWith(".haiku/")}function CJn(e,t,n){if(t===""||t.length<2)return[];try{return EJn("git",["grep","-lw","--",t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).split(` -`).map(i=>i.trim()).filter(i=>i!==""&&i!==n&&!NJn(i))}catch{return[]}}function iwt(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=tU(br(u,l)).outputs||[];for(let p of f)typeof p!="string"||!OJn(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=nwt(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=PJn(c.path);CJn(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 PJn(e){return!(!xJn.test(e)||OJn.test(e))}function NJn(e){let t=e.replace(/^.*\//,""),n=t.lastIndexOf(".");return n>0?t.slice(0,n):t}function CJn(e){return e.startsWith(".haiku/")}function MJn(e,t,n){if(t===""||t.length<2)return[];try{return _Jn("git",["grep","-lw","--",t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).split(` +`).map(i=>i.trim()).filter(i=>i!==""&&i!==n&&!CJn(i))}catch{return[]}}function owt(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=tU(br(u,l)).outputs||[];for(let p of f)typeof p!="string"||!PJn(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=iwt(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=NJn(c.path);MJn(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. @@ -1040,16 +1040,16 @@ Orphan outputs: ${o.map(c=>`- \`${c.path}\` (declared by ${c.from_unit} in stage '${c.from_stage}')`).join(` `)} -After resolving each, call \`haiku_run_next { intent: "${a}" }\` to re-run the validator.`}}function swt(e,t){let n=ve(),r=br(n,"intents",e),i=br(r,"intent.md"),s;try{s=XAt("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{s=process.cwd()}function o(p){let h=tU(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";OEe=Re(Kt(),1);Ci();ze();Kn();ns();ji();vJn=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;RJn=["artifacts","outputs","knowledge","discovery"];IJn=/\.(ts|tsx|js|jsx|mjs|cjs)$/i,xJn=/\.(test|spec)\.[a-z]+$|\/__tests__\/|\/test\//i});import{existsSync as Vg,mkdirSync as MJn,readdirSync as DJn,readFileSync as cwt,renameSync as LJn}from"node:fs";import{dirname as UJn,join as tu}from"node:path";function owt(e){if(!Vg(e))return{};let t=cwt(e,"utf8"),{data:n}=re(t);return n}function PEe(e,t,n,r){let i=lft(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[jJn,"",...o].join(` -`).trimEnd()}function awt(){let e=$0();if(e.length===0)return null;let t=e.map(n=>{let r=n.description?` \u2014 ${n.description}`:"";return`- \`/${n.slug}\`${r}`});return vx.renderString(QJn,{preamble:HJn,skillLines:t})}function $Jn(e){let{slug:t,studio:n,action:r,dir:i}=e,s=r.stage,o=es(n,s),c=BI(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=owt(F),U=V.title||B,M=V.hat||"",j=Array.isArray(V.outputs)?V.outputs:[],H=[`- **${B}** \u2014 ${U}`,M?` - hat: \`${M}\``:null,j.length>0?` - outputs: ${j.map(K=>`\`${K}\``).join(", ")}`:null,` - file: \`.haiku/intents/${t}/stages/${s}/units/${B}.md\``].filter(Boolean).join(` +After resolving each, call \`haiku_run_next { intent: "${a}" }\` to re-run the validator.`}}function awt(e,t){let n=ve(),r=br(n,"intents",e),i=br(r,"intent.md"),s;try{s=$At("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{s=process.cwd()}function o(p){let h=tU(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";NEe=Re(Kt(),1);Ci();ze();Kn();ns();ji();RJn=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;AJn=["artifacts","outputs","knowledge","discovery"];xJn=/\.(ts|tsx|js|jsx|mjs|cjs)$/i,OJn=/\.(test|spec)\.[a-z]+$|\/__tests__\/|\/test\//i});import{existsSync as Vg,mkdirSync as DJn,readdirSync as LJn,readFileSync as lwt,renameSync as UJn}from"node:fs";import{dirname as FJn,join as tu}from"node:path";function cwt(e){if(!Vg(e))return{};let t=lwt(e,"utf8"),{data:n}=re(t);return n}function CEe(e,t,n,r){let i=fft(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[HJn,"",...o].join(` +`).trimEnd()}function uwt(){let e=$0();if(e.length===0)return null;let t=e.map(n=>{let r=n.description?` \u2014 ${n.description}`:"";return`- \`/${n.slug}\`${r}`});return vx.renderString($Jn,{preamble:qJn,skillLines:t})}function eXn(e){let{slug:t,studio:n,action:r,dir:i}=e,s=r.stage,o=es(n,s),c=BI(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=cwt(F),U=V.title||B,M=V.hat||"",j=Array.isArray(V.outputs)?V.outputs:[],H=[`- **${B}** \u2014 ${U}`,M?` - hat: \`${M}\``:null,j.length>0?` - outputs: ${j.map(K=>`\`${K}\``).join(", ")}`:null,` - file: \`.haiku/intents/${t}/stages/${s}/units/${B}.md\``].filter(Boolean).join(` `);Q.push(H)}y.push(Q.join(` `))}f.length>0&&y.push(`### Pending Units (targets for this iteration) ${f.map(Q=>`- \`${Q}\``).join(` `)} -These units exist but haven't been executed. If they're still relevant, leave them. Revise their specs if the intent has evolved. Reject individual units by deleting their file (not advised unless clearly obsolete).`),y.push(bs("workflow-contracts-elaborate"));let q=PEe(n,s,i,t);return q&&y.push(q),y.push(vx.renderString(FJn,{slug:t})),y.join(` +These units exist but haven't been executed. If they're still relevant, leave them. Revise their specs if the intent has evolved. Reject individual units by deleting their file (not advised unless clearly obsolete).`),y.push(bs("workflow-contracts-elaborate"));let q=CEe(n,s,i,t);return q&&y.push(q),y.push(vx.renderString(jJn,{slug:t})),y.join(` `)}if(l>1){g||y.push(`## Revisit Elaborate: ${s} (iteration #${l})`),m&&y.push(`### Validation Error @@ -1065,7 +1065,7 @@ ${h.map(B=>`- **${B.feedback_id}** \u2014 ${B.title} - origin: ${B.origin} \xB7 author: ${B.author}`).join(` `)} -You MUST open every file above and read it completely before drafting units. The title is only a handle; the body carries requirements, tests, and acceptance criteria.`);let q=PEe(n,s,i,t);q&&y.push(q);let Q=awt();return Q&&y.push(Q),y.push("### Responsibilities\n\n- Read every `pending_feedback[].file` in full before drafting \u2014 the title is only a handle.\n- Draft one or more new units whose `closes:` frontmatter references the feedback items they resolve.\n- Every pending feedback item MUST be referenced by at least one new unit's `closes:` (orphans block advancement).\n- Ask the user clarifying questions (`AskUserQuestion` with options[]) when trade-offs are unclear; iterate across turns.\n- When the user approves the drafted units, call `haiku_run_next` to advance.\n\nInputs (read directly \u2014 do not inline summaries, open the actual files):\n- every `pending_feedback[].file` listed above\n- `stage_metadata` (STAGE.md body + review agents)\n- `completed_units` (read-only reference)\n- `intent.md` for overall goals"),y.push(`### Mechanics +You MUST open every file above and read it completely before drafting units. The title is only a handle; the body carries requirements, tests, and acceptance criteria.`);let q=CEe(n,s,i,t);q&&y.push(q);let Q=uwt();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. @@ -1073,16 +1073,16 @@ You MUST open every file above and read it completely before drafting units. The 4. Use the unit-file naming convention: \`unit-NNN-slug.md\` (kebab-case slug, 3-digit zero-padded number; max 999). 5. Call \`haiku_run_next { intent: "${t}" }\` when done \u2014 the orchestrator re-validates and advances.`),y.join(` -`)}if(g||y.push(`## Elaborate: ${s}`),o&&y.push(`${o.body}`),Zfe(n,s,"ELABORATION")){let q=kr({resolveBody:()=>XK(n,s,"ELABORATION"),toolName:"haiku_read_phase",toolArgs:{studio:n,stage:s,phase:"ELABORATION"},intent:t,stage:s,kind:"phase",name:"ELABORATION"});y.push(`### Phase: Elaboration Override +`)}if(g||y.push(`## Elaborate: ${s}`),o&&y.push(`${o.body}`),Jfe(n,s,"ELABORATION")){let q=kr({resolveBody:()=>XK(n,s,"ELABORATION"),toolName:"haiku_read_phase",toolArgs:{studio:n,stage:s,phase:"ELABORATION"},intent:t,stage:s,kind:"phase",name:"ELABORATION"});y.push(`### Phase: Elaboration Override -${q}`)}y.push(bs("workflow-contracts-elaborate"));let b=qI("elaborate",i);b&&y.push(b);let S=PEe(n,s,i,t);S&&y.push(S);let E=wn(Vg(tu(i,"intent.md"))?owt(tu(i,"intent.md")):{},n),_=[],T=[];if(o?.data?.inputs&&Array.isArray(o.data.inputs)){let q=o.data.inputs,Q=Xpe(q,E),B=$K(n,Q,i,t),F=B.filter(U=>U.exists),V=B.filter(U=>!U.exists);if(F.length>0){T=F.map(U=>U.resolvedPath.startsWith(`${i}/`)?U.resolvedPath.slice(i.length+1):U.resolvedPath);for(let U of F){let M=U.resolvedPath.startsWith(`${i}/`)?U.resolvedPath.slice(i.length+1):U.resolvedPath;_.push(`- **${U.stage}/${U.artifactName}** (${U.kind}) \u2014 \`${M}\``)}}V.length>0&&y.push(`## \u26A0 Missing Upstream Artifacts +${q}`)}y.push(bs("workflow-contracts-elaborate"));let b=qI("elaborate",i);b&&y.push(b);let S=CEe(n,s,i,t);S&&y.push(S);let E=wn(Vg(tu(i,"intent.md"))?cwt(tu(i,"intent.md")):{},n),_=[],T=[];if(o?.data?.inputs&&Array.isArray(o.data.inputs)){let q=o.data.inputs,Q=Qpe(q,E),B=$K(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: ${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 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=[qJn];_.length>0&&(q.push("","### Declared Inputs (from STAGE.md)"),q.push("",..._)),R.length>0&&q.push("",BJn,"",...R,"",zJn),y.push(q.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 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=[BJn];_.length>0&&(q.push("","### Declared Inputs (from STAGE.md)"),q.push("",..._)),R.length>0&&q.push("",zJn,"",...R,"",GJn),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. @@ -1100,7 +1100,7 @@ This project carries knowledge that persists across intents (\`scope: project\`) ${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 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 DJn(B).filter(V=>V.endsWith(".md"))){if(q.has(F))continue;q.add(F);let V=tu(B,F),U=cwt(V,"utf8"),{data:M}=re(U),j=M.location,H=typeof j=="string"?j.replace(/\{intent-slug\}/g,t):j,K=null;typeof H=="string"&&H.length>0&&(H.startsWith(".haiku/")?K=tu(process.cwd(),H):H.startsWith("/")?K=H:K=tu(i,H)),A.push({name:F.replace(/\.md$/i,"").toLowerCase(),templatePath:V,outputPath:K})}}}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{MJn(UJn(q.outputPath),{recursive:!0}),LJn(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(j=>`\`${j.name}\``).join(", "),Q=k.length!==1?"s":"",B=kr({resolveBody:()=>Yh(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) +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 LJn(B).filter(V=>V.endsWith(".md"))){if(q.has(F))continue;q.add(F);let V=tu(B,F),U=lwt(V,"utf8"),{data:M}=re(U),j=M.location,H=typeof j=="string"?j.replace(/\{intent-slug\}/g,t):j,K=null;typeof H=="string"&&H.length>0&&(H.startsWith(".haiku/")?K=tu(process.cwd(),H):H.startsWith("/")?K=H:K=tu(i,H)),A.push({name:F.replace(/\.md$/i,"").toLowerCase(),templatePath:V,outputPath:K})}}}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{DJn(FJn(q.outputPath),{recursive:!0}),UJn(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(j=>`\`${j.name}\``).join(", "),Q=k.length!==1?"s":"",B=kr({resolveBody:()=>Yh(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${Q}: ${q}. @@ -1110,7 +1110,7 @@ ${bs("workflow-contracts-announcement")} ${zI(k.length,"discovery subagents",{forceForeground:c})} -`;for(let j of k){let H=xpe(t,s,j.name),K=H?j.outputPath?j.outputPath.startsWith(i)?tu(H,".haiku","intents",t,j.outputPath.slice(i.length+1)):j.outputPath.startsWith(process.cwd())?tu(H,j.outputPath.slice(process.cwd().length+1)):j.outputPath:tu(H,".haiku","intents",t,"knowledge",`${j.name.toUpperCase()}.md`):null,ee=kr({resolveBody:()=>wI(n,s,j.name),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:s,template:j.name},intent:t,stage:s,kind:"discovery-template",name:j.name}),se=vx.renderString(XJn,{artifactName:j.name,slug:t,stage:s,studio:n,worktree:H,branchName:H?CI(t,s,j.name):"",expectedArtifactPath:K,intentRef:B,stageRef:F,templateRef:ee}),Le=ju({mandatePath:j.templatePath,studio:n,stage:s});V+=`${Ti({unit:"discovery",hat:j.name,bolt:1,intent:t,stage:s,agentType:"general-purpose",model:Le,promptBody:se,heading:`### Subagent: \`${j.name}\``,forceForeground:c,omitBolt:!0})} +`;for(let j of k){let H=Ope(t,s,j.name),K=H?j.outputPath?j.outputPath.startsWith(i)?tu(H,".haiku","intents",t,j.outputPath.slice(i.length+1)):j.outputPath.startsWith(process.cwd())?tu(H,j.outputPath.slice(process.cwd().length+1)):j.outputPath:tu(H,".haiku","intents",t,"knowledge",`${j.name.toUpperCase()}.md`):null,ee=kr({resolveBody:()=>wI(n,s,j.name),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:s,template:j.name},intent:t,stage:s,kind:"discovery-template",name:j.name}),se=vx.renderString(QJn,{artifactName:j.name,slug:t,stage:s,studio:n,worktree:H,branchName:H?CI(t,s,j.name):"",expectedArtifactPath:K,intentRef:B,stageRef:F,templateRef:ee}),Le=ju({mandatePath:j.templatePath,studio:n,stage:s});V+=`${Ti({unit:"discovery",hat:j.name,bolt:1,intent:t,stage:s,agentType:"general-purpose",model:Le,promptBody:se,heading:`### Subagent: \`${j.name}\``,forceForeground:c,omitBolt:!0})} `}let U=Mi().subagents.backgroundSpawn&&!c?' Each `` carries `background="true"` \u2014 pass `run_in_background: true` to the Task tool so the parent thread stays responsive while discovery agents run.':"",M=c?` **You are in autopilot mode \u2014 do NOT yield.** Spawn the subagents in the foreground (the \`\` blocks above carry no \`background\` attribute) and wait for every one to return in this same response. The instant the last subagent returns, call \`haiku_run_next { intent: "${t}" }\` in the SAME response. The next tick emits the unit-decomposition instructions, which you also handle in-turn. Autopilot is a contiguous drive \u2014 pausing across turns defeats the mode.`:` When ALL subagents return, call \`haiku_run_next { intent: "${t}" }\` \u2014 the workflow engine merges their isolation worktrees back into the stage branch (resolving conflicts via the integrator if needed) and then emits the unit-decomposition instructions. **Do NOT proceed to decomposition in this response** \u2014 wait for the next workflow tick so the merged knowledge artifacts are visible.`;return V+=`### Parent Instructions (do NOT include in subagent prompts) @@ -1118,41 +1118,41 @@ Spawn each subagent above using the \`prompt_file\` attribute \u2014 pass \`"Rea `)}let P=Tx(n,s,`## Stage Output Expectations -This stage must ultimately produce the following outputs during execution. Plan units accordingly:`,t);P&&y.push(P),o?.data?.produces==="build"&&y.push("## Build-Class Units: Declare Verification\n\nThis is a **build** stage \u2014 every unit that declares `outputs:` MUST also declare a `quality_gates:` field. Pair each produced artifact with the executable check that verifies it (the verify-command pattern in this stage's elaboration guidance). If a unit genuinely defers verification to a sibling test unit, declare an explicit empty list (`quality_gates: []`) \u2014 but the field must be present so the choice is deliberate and reviewable. `haiku_unit_write` will reject a producing unit that omits it.\n\n**Gates that need a live dependency** (a test suite that hits a database, a migration, a check that talks to a queue/cache) only verify something when that dependency is running. Declare the dependency once as a service in `.haiku/boot.md` \u2014 a `processes:` entry with `service: true` and `requires_tool: docker` (e.g. a `docker compose up` Postgres with a `ready_url` health probe). At gate time the engine brings declared services up via the live tool, or \u2014 if the tool isn't available \u2014 escalates to the user. It will NOT advance a gate that couldn't reach its dependency, so a missing service recipe turns into a hold, not a false green. If this project already has a `docker-compose.yml` / `Makefile` the engine can auto-detect it, but a `.haiku/boot.md` service entry is the reproducible declaration.\n\n**Declare real internal services; never mock them.** Internal infrastructure the app owns \u2014 its database, cache, queue, search, object store (Postgres, Redis, Mongo, Elasticsearch, Kafka, \u2026) \u2014 MUST be a real `service:` process in `.haiku/boot.md`; never a mock, in-memory fake, or SQLite stand-in, because a gate that passes against a faked datastore verified nothing about migrations/queries/persistence. Third-party SaaS the app only calls across the network (Stripe, Twilio, SendGrid, vendor LLM/auth APIs) is the opposite: do NOT declare it as a `service:` to run \u2014 stub it or use the vendor sandbox at the app's edge, since hitting it live costs money and fires real side effects. The line is ownership: a process we stand up ourselves is real; a vendor API we call out to is mocked.");let N=o?.data?.hats||[];(s.includes("design")||N.some(q=>q.includes("designer")||q.includes("design"))||o?.body?.includes("pick_design_direction"))&&y.push(GJn),y.push(vx.renderString(VJn,{collaborative:u==="collaborative"}));let L=awt();L&&y.push(L);let G=u==="collaborative"?WJn:KJn,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.':"",$=vx.renderString(YJn,{slug:t,stage:s});return y.push(`${ZJn} +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(VJn),y.push(vx.renderString(WJn,{collaborative:u==="collaborative"}));let L=uwt();L&&y.push(L);let G=u==="collaborative"?KJn:YJn,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.':"",$=vx.renderString(ZJn,{slug:t,stage:s});return y.push(`${JJn} ${G}${W} ${$}`),g||y.push(Lf("decompose",{slug:t,stage:s})),y.join(` -`)}var vx,FJn,jJn,HJn,qJn,BJn,zJn,GJn,VJn,WJn,KJn,YJn,ZJn,JJn,XJn,QJn,uwt,lwt=v(()=>{"use strict";gt();ar();_f();ze();Kn();ji();C6();ns();ht();Fh();Rt();vx=new Te({autoEscape:!1,useWith:!0}),FJn=ie("@canon:stage/elaborate/decompose","blocks/iterative-decide.eta.md"),jJn=ie("@canon:stage/elaborate/decompose","blocks/lens-preamble.md"),HJn=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-preamble.md"),qJn=ie("@canon:stage/elaborate/decompose","blocks/upstream-context-header.md"),BJn=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-preamble.md"),zJn=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-footer.md"),GJn=ie("@canon:stage/elaborate/decompose","blocks/design-provider-mcps.md"),VJn=ie("@canon:stage/elaborate/decompose","blocks/approach-selection.eta.md"),WJn=ie("@canon:stage/elaborate/decompose","blocks/collaborative-mechanics.md"),KJn=ie("@canon:stage/elaborate/decompose","blocks/autonomous-mechanics.md"),YJn=ie("@canon:stage/elaborate/decompose","blocks/elaborate-output-tail.eta.md"),ZJn=ie("@canon:stage/elaborate/decompose","blocks/scope-header.md"),JJn=ie("@canon:stage/elaborate/decompose","blocks/file-based-pointer.eta.md"),XJn=ie("@canon:stage/elaborate/decompose","blocks/discovery-subagent.eta.md"),QJn=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-section.eta.md");uwt=e=>{let t=e.action.prompt_file;return t?vx.renderString(JJn,{promptFile:t}):$Jn(e)}});import{join as eXn}from"node:path";var dwt,tXn,nXn,fwt,pwt=v(()=>{"use strict";gt();ze();Kn();ns();ht();Rt();dwt=new Te({autoEscape:!1,useWith:!0}),tXn=ie("@canon:stage/elaborate/decompose_review"),nXn=ie("@canon:stage/elaborate/decompose_review","subagent.eta.md"),fwt=e=>{let t=e.action,n=t.stage,r=t.intent??e.slug,i=e.studio,s=t.verifier_nonce??"",o=kr({resolveBody:()=>Yh(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=eXn(e.dir,"stages",n,"elaboration.md"),u=Lf("verify_decompose",{slug:r,stage:n}),l=dwt.renderString(nXn,{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 dwt.renderString(tXn,{stage:n,intentSlug:r,elabPath:c,concurrentLoopBlock:u,verifierNonce:s,composedMode:e.composedMode===!0,dispatchBlock:d})}});var hwt,rXn,iXn,NEe,mwt=v(()=>{"use strict";gt();Kn();ns();ht();Rt();hwt=new Te({autoEscape:!1,useWith:!0}),rXn=ie("@canon:stage/elaborate/discovery_required"),iXn=ie("@canon:stage/elaborate/discovery_required","subagent.eta.md"),NEe=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:()=>wI(n,i,l),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:i,template:l},intent:t,stage:i,kind:"discovery-template",name:l}),b=hwt.renderString(iXn,{agent:l,stage:i,slug:t,unit:f,resolvedLocation:h,templateRef:y}),S=ju({mandatePath:Yfe(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 hwt.renderString(rXn,{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 sXn,oXn,gwt,ywt=v(()=>{"use strict";gt();ze();Kn();ns();ht();Rt();sXn=new Te({autoEscape:!1,useWith:!0}),oXn=ie("@canon:stage/elaborate/elaborate"),gwt=e=>{let t=e.action,n=t.stage??"(unknown)",r=t.intent??e.slug,i=kr({resolveBody:()=>Yh(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 sXn.renderString(oXn,{stage:n,intentSlug:r,intentRef:i,stageRef:s,concurrentLoopBlock:o,composedMode:e.composedMode===!0})}});import{join as aXn}from"node:path";var Swt,cXn,uXn,bwt,Ewt=v(()=>{"use strict";gt();ze();Kn();ns();ht();Rt();Swt=new Te({autoEscape:!1,useWith:!0}),cXn=ie("@canon:stage/elaborate/elaborate_review"),uXn=ie("@canon:stage/elaborate/elaborate_review","subagent.eta.md"),bwt=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:()=>Yh(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?"":aXn(e.dir,"stages",o,"elaboration.md"),l=i?"":Lf("verify_conversation",{slug:r,stage:o}),d=Swt.renderString(uXn,{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 Swt.renderString(cXn,{isPreIntent:i,intentSlug:r,stage:o,elabPath:u,concurrentLoopBlock:l,composedMode:e.composedMode===!0,verifierNonce:s,dispatchBlock:f})}});function lXn(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 dXn(e){switch(e){case"conversation":return gwt;case"verify_conversation":return bwt;case"discovery":return NEe;case"decompose":return uwt;case"verify_decompose":return fwt}}function _wt(e){switch(e){case"conversation":return"Signal: `conversation` \u2014 capture the stage's human-conversation outcome";case"verify_conversation":return"Signal: `verify_conversation` \u2014 dispatch the elaboration substance verifier";case"discovery":return"Signal: `discovery` \u2014 produce a missing discovery artifact";case"decompose":return"Signal: `decompose` \u2014 draft unit specs for this stage";case"verify_decompose":return"Signal: `verify_decompose` \u2014 dispatch the decompose coverage verifier"}}var Twt,vwt=v(()=>{"use strict";ns();Rt();lwt();pwt();mwt();ywt();Ewt();Twt=e=>{let t=e.action,n=t.signals_unmet??[],r=t.stage,i=t.intent??e.slug,s=BI(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 vx,jJn,HJn,qJn,BJn,zJn,GJn,VJn,WJn,KJn,YJn,ZJn,JJn,XJn,QJn,$Jn,dwt,fwt=v(()=>{"use strict";gt();ar();_f();ze();Kn();ji();M6();ns();ht();Fh();Rt();vx=new Te({autoEscape:!1,useWith:!0}),jJn=ie("@canon:stage/elaborate/decompose","blocks/iterative-decide.eta.md"),HJn=ie("@canon:stage/elaborate/decompose","blocks/lens-preamble.md"),qJn=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-preamble.md"),BJn=ie("@canon:stage/elaborate/decompose","blocks/upstream-context-header.md"),zJn=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-preamble.md"),GJn=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-footer.md"),VJn=ie("@canon:stage/elaborate/decompose","blocks/design-provider-mcps.md"),WJn=ie("@canon:stage/elaborate/decompose","blocks/approach-selection.eta.md"),KJn=ie("@canon:stage/elaborate/decompose","blocks/collaborative-mechanics.md"),YJn=ie("@canon:stage/elaborate/decompose","blocks/autonomous-mechanics.md"),ZJn=ie("@canon:stage/elaborate/decompose","blocks/elaborate-output-tail.eta.md"),JJn=ie("@canon:stage/elaborate/decompose","blocks/scope-header.md"),XJn=ie("@canon:stage/elaborate/decompose","blocks/file-based-pointer.eta.md"),QJn=ie("@canon:stage/elaborate/decompose","blocks/discovery-subagent.eta.md"),$Jn=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-section.eta.md");dwt=e=>{let t=e.action.prompt_file;return t?vx.renderString(XJn,{promptFile:t}):eXn(e)}});import{join as tXn}from"node:path";var pwt,nXn,rXn,hwt,mwt=v(()=>{"use strict";gt();ze();Kn();ns();ht();Rt();pwt=new Te({autoEscape:!1,useWith:!0}),nXn=ie("@canon:stage/elaborate/decompose_review"),rXn=ie("@canon:stage/elaborate/decompose_review","subagent.eta.md"),hwt=e=>{let t=e.action,n=t.stage,r=t.intent??e.slug,i=e.studio,s=t.verifier_nonce??"",o=kr({resolveBody:()=>Yh(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=tXn(e.dir,"stages",n,"elaboration.md"),u=Lf("verify_decompose",{slug:r,stage:n}),l=pwt.renderString(rXn,{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 pwt.renderString(nXn,{stage:n,intentSlug:r,elabPath:c,concurrentLoopBlock:u,verifierNonce:s,composedMode:e.composedMode===!0,dispatchBlock:d})}});var gwt,iXn,sXn,MEe,ywt=v(()=>{"use strict";gt();Kn();ns();ht();Rt();gwt=new Te({autoEscape:!1,useWith:!0}),iXn=ie("@canon:stage/elaborate/discovery_required"),sXn=ie("@canon:stage/elaborate/discovery_required","subagent.eta.md"),MEe=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:()=>wI(n,i,l),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:i,template:l},intent:t,stage:i,kind:"discovery-template",name:l}),b=gwt.renderString(sXn,{agent:l,stage:i,slug:t,unit:f,resolvedLocation:h,templateRef:y}),S=ju({mandatePath:Zfe(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 gwt.renderString(iXn,{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 oXn,aXn,Swt,bwt=v(()=>{"use strict";gt();ze();Kn();ns();ht();Rt();oXn=new Te({autoEscape:!1,useWith:!0}),aXn=ie("@canon:stage/elaborate/elaborate"),Swt=e=>{let t=e.action,n=t.stage??"(unknown)",r=t.intent??e.slug,i=kr({resolveBody:()=>Yh(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 oXn.renderString(aXn,{stage:n,intentSlug:r,intentRef:i,stageRef:s,concurrentLoopBlock:o,composedMode:e.composedMode===!0})}});import{join as cXn}from"node:path";var Ewt,uXn,lXn,_wt,Twt=v(()=>{"use strict";gt();ze();Kn();ns();ht();Rt();Ewt=new Te({autoEscape:!1,useWith:!0}),uXn=ie("@canon:stage/elaborate/elaborate_review"),lXn=ie("@canon:stage/elaborate/elaborate_review","subagent.eta.md"),_wt=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:()=>Yh(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?"":cXn(e.dir,"stages",o,"elaboration.md"),l=i?"":Lf("verify_conversation",{slug:r,stage:o}),d=Ewt.renderString(lXn,{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 Ewt.renderString(uXn,{isPreIntent:i,intentSlug:r,stage:o,elabPath:u,concurrentLoopBlock:l,composedMode:e.composedMode===!0,verifierNonce:s,dispatchBlock:f})}});function dXn(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 fXn(e){switch(e){case"conversation":return Swt;case"verify_conversation":return _wt;case"discovery":return MEe;case"decompose":return dwt;case"verify_decompose":return hwt}}function vwt(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 Rwt,Awt=v(()=>{"use strict";ns();Rt();fwt();mwt();ywt();bwt();Twt();Rwt=e=>{let t=e.action,n=t.signals_unmet??[],r=t.stage,i=t.intent??e.slug,s=BI(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=NEe(f)??"";o.push(`### ${_wt("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=MEe(f)??"";o.push(`### ${vwt("discovery")} -${p.trim()}`)}for(let d of l){let f=lXn(t,d),p={...e,action:f,composedMode:!0},h=dXn(d.signal)(p)??"";o.push(`### ${_wt(d.signal)} +${p.trim()}`)}for(let d of l){let f=dXn(t,d),p={...e,action:f,composedMode:!0},h=fXn(d.signal)(p)??"";o.push(`### ${vwt(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 fXn,pXn,Rwt,Awt=v(()=>{"use strict";gt();ht();Rt();fXn=new Te({autoEscape:!1,useWith:!0}),pXn=ie("@canon:stage/error/blocked"),Rwt=({action:e})=>{let t=e.blocked_units||[];return fXn.renderString(pXn,{blockedUnits:t})}});var hXn,mXn,wwt,kwt=v(()=>{"use strict";gt();ht();Rt();hXn=new Te({autoEscape:!1,useWith:!0}),mXn=ie("@canon:stage/error/coverage_review_required"),wwt=({action:e})=>hXn.renderString(mXn,{message:e.message??""})});var gXn,yXn,Iwt,xwt=v(()=>{"use strict";gt();ht();Rt();gXn=new Te({autoEscape:!1,useWith:!0}),yXn=ie("@canon:stage/error/dag_cycle_detected"),Iwt=({action:e})=>gXn.renderString(yXn,{message:e.message??""})});var SXn,bXn,Owt,Pwt=v(()=>{"use strict";gt();ht();Rt();SXn=new Te({autoEscape:!1,useWith:!0}),bXn=ie("@canon:stage/error/discovery_missing"),Owt=({action:e})=>SXn.renderString(bXn,{message:e.message??""})});var EXn,_Xn,Nwt,Cwt=v(()=>{"use strict";gt();ht();Rt();EXn=new Te({autoEscape:!1,useWith:!0}),_Xn=ie("@canon:stage/error/elaboration_insufficient"),Nwt=({action:e})=>EXn.renderString(_Xn,{message:e.message??""})});var TXn,vXn,Mwt,Dwt=v(()=>{"use strict";gt();ze();ht();Rt();TXn=new Te({autoEscape:!1,useWith:!0}),vXn=ie("@canon:stage/error/escalate"),Mwt=({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 TXn.renderString(vXn,{header:l,message:o,pendingItems:a,capLine:f,rejectExample:d,isIntentScope:c})}});var RXn,AXn,Lwt,Uwt=v(()=>{"use strict";gt();ht();Rt();RXn=new Te({autoEscape:!1,useWith:!0}),AXn=ie("@canon:stage/error/gate_blocked"),Lwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return RXn.renderString(AXn,{slug:e,message:n})}});var wXn,kXn,Fwt,jwt=v(()=>{"use strict";gt();ht();Rt();wXn=new Te({autoEscape:!1,useWith:!0}),kXn=ie("@canon:stage/error/output_liveness_review_required"),Fwt=({action:e})=>wXn.renderString(kXn,{message:e.message??""})});var IXn,xXn,Hwt,qwt=v(()=>{"use strict";gt();ht();Rt();IXn=new Te({autoEscape:!1,useWith:!0}),xXn=ie("@canon:stage/error/outputs_missing"),Hwt=({action:e})=>IXn.renderString(xXn,{message:e.message??""})});var OXn,PXn,Bwt,zwt=v(()=>{"use strict";gt();ht();Rt();OXn=new Te({autoEscape:!1,useWith:!0}),PXn=ie("@canon:stage/error/save_wip"),Bwt=({action:e})=>OXn.renderString(PXn,{message:e.message??""})});var NXn,CXn,Gwt,Vwt=v(()=>{"use strict";gt();ht();Rt();NXn=new Te({autoEscape:!1,useWith:!0}),CXn=ie("@canon:stage/error/unit_inputs_missing"),Gwt=({action:e})=>NXn.renderString(CXn,{message:e.message??""})});var MXn,DXn,Wwt,Kwt=v(()=>{"use strict";gt();ht();Rt();MXn=new Te({autoEscape:!1,useWith:!0}),DXn=ie("@canon:stage/error/unit_inputs_not_declared"),Wwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return MXn.renderString(DXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var LXn,UXn,Ywt,Zwt=v(()=>{"use strict";gt();ht();Rt();LXn=new Te({autoEscape:!1,useWith:!0}),UXn=ie("@canon:stage/error/unit_naming_invalid"),Ywt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return LXn.renderString(UXn,{slug:e,message:n})}});var FXn,jXn,Jwt,Xwt=v(()=>{"use strict";gt();ht();Rt();FXn=new Te({autoEscape:!1,useWith:!0}),jXn=ie("@canon:stage/error/unit_outputs_empty_iterations"),Jwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return FXn.renderString(jXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var HXn,qXn,Qwt,$wt=v(()=>{"use strict";gt();ht();Rt();HXn=new Te({autoEscape:!1,useWith:!0}),qXn=ie("@canon:stage/error/unresolved_dependencies"),Qwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return HXn.renderString(qXn,{slug:e,message:n})}});import{existsSync as CEe,readFileSync as ekt}from"node:fs";import{join as ap,resolve as M6}from"node:path";var D6,BXn,zXn,GXn,VXn,WXn,KXn,YXn,ZXn,tkt,nkt=v(()=>{"use strict";gt();Ci();_f();pb();ze();Kn();ji();C6();ns();ht();Fh();Rt();D6=new Te({autoEscape:!1,useWith:!0}),BXn=ie("@canon:stage/execute/start_unit","blocks/worktree-and-timeouts.md"),zXn=ie("@canon:stage/execute/start_unit","blocks/required-context-preamble.md"),GXn=ie("@canon:stage/execute/start_unit","blocks/skills-preamble.md"),VXn=ie("@canon:stage/execute/start_unit","blocks/autonomy-note.md"),WXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions.eta.md"),KXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions-assessor.eta.md"),YXn=ie("@canon:stage/execute/start_unit","blocks/unit-subagent.eta.md"),ZXn=ie("@canon:stage/execute/start_unit","blocks/feedback-assessor.eta.md"),tkt=({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(CEe(f)){let{data:q}=re(ekt(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=es(t,i),Q=Cd(t),{model:B,source:F}=fb({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=M6(r);for(let Q of p){let B=M6(r,Q);!B.startsWith(`${q}/`)&&B!==q||CEe(ap(r,Q))&&E.push(Q)}}let _=[];{let q=es(t,i);if(q?.data?.inputs&&Array.isArray(q.data.inputs)){let Q=q.data.inputs,F=$K(t,Q,r,e).filter(U=>U.exists),V=new Set(p.map(U=>M6(r,U)));for(let U of F){if(V.has(M6(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=Tx(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=rpt(e,i,o,a,c),N=[];if(o==="feedback-assessor"){let q=CEe(f)?re(ekt(f,"utf8")).data:{},Q=q.closes||[],B=q.outputs||[],F=[],V=Us(e,i);for(let K of Q){let ee=V.find(se=>se.id===K);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=Gpe(B.map(K=>({heading:`Unit output: ${K}`,path:ap(A,K)}))),j=Gpe(F.map(K=>({heading:`Feedback ${K.id}`,path:ap(A,K.file)}))),H=D6.renderString(ZXn,{slug:e,stage:i,unit:s,bolt:c,worktreePath:R,intentRoot:A,unitInline:U,outputsInline:M,feedbackInline:j});if(k.subagents.supported){let K=P?`${P} +`)}});var pXn,hXn,wwt,kwt=v(()=>{"use strict";gt();ht();Rt();pXn=new Te({autoEscape:!1,useWith:!0}),hXn=ie("@canon:stage/error/blocked"),wwt=({action:e})=>{let t=e.blocked_units||[];return pXn.renderString(hXn,{blockedUnits:t})}});var mXn,gXn,Iwt,xwt=v(()=>{"use strict";gt();ht();Rt();mXn=new Te({autoEscape:!1,useWith:!0}),gXn=ie("@canon:stage/error/coverage_review_required"),Iwt=({action:e})=>mXn.renderString(gXn,{message:e.message??""})});var yXn,SXn,Owt,Pwt=v(()=>{"use strict";gt();ht();Rt();yXn=new Te({autoEscape:!1,useWith:!0}),SXn=ie("@canon:stage/error/dag_cycle_detected"),Owt=({action:e})=>yXn.renderString(SXn,{message:e.message??""})});var bXn,EXn,Nwt,Cwt=v(()=>{"use strict";gt();ht();Rt();bXn=new Te({autoEscape:!1,useWith:!0}),EXn=ie("@canon:stage/error/discovery_missing"),Nwt=({action:e})=>bXn.renderString(EXn,{message:e.message??""})});var _Xn,TXn,Mwt,Dwt=v(()=>{"use strict";gt();ht();Rt();_Xn=new Te({autoEscape:!1,useWith:!0}),TXn=ie("@canon:stage/error/elaboration_insufficient"),Mwt=({action:e})=>_Xn.renderString(TXn,{message:e.message??""})});var vXn,RXn,Lwt,Uwt=v(()=>{"use strict";gt();ze();ht();Rt();vXn=new Te({autoEscape:!1,useWith:!0}),RXn=ie("@canon:stage/error/escalate"),Lwt=({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 vXn.renderString(RXn,{header:l,message:o,pendingItems:a,capLine:f,rejectExample:d,isIntentScope:c})}});var AXn,wXn,Fwt,jwt=v(()=>{"use strict";gt();ht();Rt();AXn=new Te({autoEscape:!1,useWith:!0}),wXn=ie("@canon:stage/error/gate_blocked"),Fwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return AXn.renderString(wXn,{slug:e,message:n})}});var kXn,IXn,Hwt,qwt=v(()=>{"use strict";gt();ht();Rt();kXn=new Te({autoEscape:!1,useWith:!0}),IXn=ie("@canon:stage/error/output_liveness_review_required"),Hwt=({action:e})=>kXn.renderString(IXn,{message:e.message??""})});var xXn,OXn,Bwt,zwt=v(()=>{"use strict";gt();ht();Rt();xXn=new Te({autoEscape:!1,useWith:!0}),OXn=ie("@canon:stage/error/outputs_missing"),Bwt=({action:e})=>xXn.renderString(OXn,{message:e.message??""})});var PXn,NXn,Gwt,Vwt=v(()=>{"use strict";gt();ht();Rt();PXn=new Te({autoEscape:!1,useWith:!0}),NXn=ie("@canon:stage/error/save_wip"),Gwt=({action:e})=>PXn.renderString(NXn,{message:e.message??""})});var CXn,MXn,Wwt,Kwt=v(()=>{"use strict";gt();ht();Rt();CXn=new Te({autoEscape:!1,useWith:!0}),MXn=ie("@canon:stage/error/unit_inputs_missing"),Wwt=({action:e})=>CXn.renderString(MXn,{message:e.message??""})});var DXn,LXn,Ywt,Zwt=v(()=>{"use strict";gt();ht();Rt();DXn=new Te({autoEscape:!1,useWith:!0}),LXn=ie("@canon:stage/error/unit_inputs_not_declared"),Ywt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return DXn.renderString(LXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var UXn,FXn,Jwt,Xwt=v(()=>{"use strict";gt();ht();Rt();UXn=new Te({autoEscape:!1,useWith:!0}),FXn=ie("@canon:stage/error/unit_naming_invalid"),Jwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return UXn.renderString(FXn,{slug:e,message:n})}});var jXn,HXn,Qwt,$wt=v(()=>{"use strict";gt();ht();Rt();jXn=new Te({autoEscape:!1,useWith:!0}),HXn=ie("@canon:stage/error/unit_outputs_empty_iterations"),Qwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return jXn.renderString(HXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var qXn,BXn,ekt,tkt=v(()=>{"use strict";gt();ht();Rt();qXn=new Te({autoEscape:!1,useWith:!0}),BXn=ie("@canon:stage/error/unresolved_dependencies"),ekt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return qXn.renderString(BXn,{slug:e,message:n})}});import{existsSync as DEe,readFileSync as nkt}from"node:fs";import{join as ap,resolve as D6}from"node:path";var L6,zXn,GXn,VXn,WXn,KXn,YXn,ZXn,JXn,rkt,ikt=v(()=>{"use strict";gt();Ci();_f();pb();ze();Kn();ji();M6();ns();ht();Fh();Rt();L6=new Te({autoEscape:!1,useWith:!0}),zXn=ie("@canon:stage/execute/start_unit","blocks/worktree-and-timeouts.md"),GXn=ie("@canon:stage/execute/start_unit","blocks/required-context-preamble.md"),VXn=ie("@canon:stage/execute/start_unit","blocks/skills-preamble.md"),WXn=ie("@canon:stage/execute/start_unit","blocks/autonomy-note.md"),KXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions.eta.md"),YXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions-assessor.eta.md"),ZXn=ie("@canon:stage/execute/start_unit","blocks/unit-subagent.eta.md"),JXn=ie("@canon:stage/execute/start_unit","blocks/feedback-assessor.eta.md"),rkt=({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(DEe(f)){let{data:q}=re(nkt(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=es(t,i),Q=Cd(t),{model:B,source:F}=fb({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=D6(r);for(let Q of p){let B=D6(r,Q);!B.startsWith(`${q}/`)&&B!==q||DEe(ap(r,Q))&&E.push(Q)}}let _=[];{let q=es(t,i);if(q?.data?.inputs&&Array.isArray(q.data.inputs)){let Q=q.data.inputs,F=$K(t,Q,r,e).filter(U=>U.exists),V=new Set(p.map(U=>D6(r,U)));for(let U of F){if(V.has(D6(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=Tx(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=spt(e,i,o,a,c),N=[];if(o==="feedback-assessor"){let q=DEe(f)?re(nkt(f,"utf8")).data:{},Q=q.closes||[],B=q.outputs||[],F=[],V=Us(e,i);for(let K of Q){let ee=V.find(se=>se.id===K);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=Vpe(B.map(K=>({heading:`Unit output: ${K}`,path:ap(A,K)}))),j=Vpe(F.map(K=>({heading:`Feedback ${K.id}`,path:ap(A,K.file)}))),H=L6.renderString(JXn,{slug:e,stage:i,unit:s,bolt:c,worktreePath:R,intentRoot:A,unitInline:U,outputsInline:M,feedbackInline:j});if(k.subagents.supported){let K=P?`${P} -${H}`:H;N.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:b,model:S,promptBody:K,toolAttr:!0})),N.push(D6.renderString(KXn,{backgroundSpawn:k.subagents.backgroundSpawn}))}else P&&N.push(P),N.push(`### Feedback Assessor (Direct Execution) +${H}`:H;N.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:b,model:S,promptBody:K,toolAttr:!0})),N.push(L6.renderString(YXn,{backgroundSpawn:k.subagents.backgroundSpawn}))}else P&&N.push(P),N.push(`### Feedback Assessor (Direct Execution) ${H}`);return N.join(` -`)}let C=o===(a[0]||""),L=new Map($0().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?UI(LI(l)):"",$=D6.renderString(YXn,{unit:s,hat:o,bolt:c,stage:i,studio:t,slug:e,worktreePath:R,intentRoot:A,worktreeAndTimeoutsBlock:BXn,requiredContextPreamble:zXn,stageInline:u?Rl(u,"Stage scope"):"",hatInline:l?Rl(l,`Hat: ${o}`):"",hatInterpBlock:W,unitInline:Rl(x,`Unit spec: ${s}`),outputsDir:d||"",priorRejectBlock:k3(f),unitInputPaths:E.map(q=>ap(A,q)),upstreamPaths:_.map(q=>({label:q.label,path:ap(A,q.path)})),outputReqs:T||"",skillLines:G,skillsPreamble:GXn,isStartUnit:n.action==="start_unit",isFirstHat:C,autonomyNote:VXn,subagentErrorRecovery:bs("subagent-error-recovery")});if(k.subagents.supported){let q=P?`${P} +`)}let C=o===(a[0]||""),L=new Map($0().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?UI(LI(l)):"",$=L6.renderString(ZXn,{unit:s,hat:o,bolt:c,stage:i,studio:t,slug:e,worktreePath:R,intentRoot:A,worktreeAndTimeoutsBlock:zXn,requiredContextPreamble:GXn,stageInline:u?Rl(u,"Stage scope"):"",hatInline:l?Rl(l,`Hat: ${o}`):"",hatInterpBlock:W,unitInline:Rl(x,`Unit spec: ${s}`),outputsDir:d||"",priorRejectBlock:k3(f),unitInputPaths:E.map(q=>ap(A,q)),upstreamPaths:_.map(q=>({label:q.label,path:ap(A,q.path)})),outputReqs:T||"",skillLines:G,skillsPreamble:VXn,isStartUnit:n.action==="start_unit",isFirstHat:C,autonomyNote:WXn,subagentErrorRecovery:bs("subagent-error-recovery")});if(k.subagents.supported){let q=P?`${P} -${$}`:$;N.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:b,model:S,promptBody:q,toolAttr:!0})),N.push(D6.renderString(WXn,{backgroundSpawn:k.subagents.backgroundSpawn}))}else P&&N.push(P),N.push(`### Mechanics (Direct Execution) +${$}`:$;N.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:b,model:S,promptBody:q,toolAttr:!0})),N.push(L6.renderString(KXn,{backgroundSpawn:k.subagents.backgroundSpawn}))}else P&&N.push(P),N.push(`### Mechanics (Direct Execution) **Execute the "${o}" hat work directly** \u2014 your harness does not support subagents. ${$}`);return N.join(` -`)}});var JXn,XXn,rkt,ikt=v(()=>{"use strict";gt();ahe();ns();ht();Fh();Rt();JXn=new Te({autoEscape:!1,useWith:!0}),XXn=ie("@canon:stage/execute/start_unit_hat"),rkt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=n.hat||"",s=n.units||[],o=n.terminal||!1,a=s.map(c=>WI({slug:e,studio:t,unit:c,stage:r,hat:i,terminal:o}));return JXn.renderString(XXn,{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?zI(s.length,"subagents"):""})}});var QXn,$Xn,skt,okt=v(()=>{"use strict";gt();ht();Rt();QXn=new Te({autoEscape:!1,useWith:!0}),$Xn=ie("@canon:stage/gate/user_gate"),skt=({slug:e,action:t})=>{let n=t.stage||"",r=t.gate_kind||"approval",i=t.units||[];return QXn.renderString($Xn,{slug:e,stage:n,gateKind:r,units:i,unitCount:i.length,unitsJson:JSON.stringify(i)})}});function rQn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=nQn[i],a="",c;if(o){let d=MEe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${_b({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=qD(n,r,i);d&&(c=ju({mandatePath:d,studio:n,stage:r}))}let u=MEe.renderString(tQn,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,existingFeedback:jI(t,r),decisions:HI(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 MEe,eQn,tQn,nQn,akt,ckt=v(()=>{"use strict";gt();Kn();vl();ns();ht();Rt();MEe=new Te({autoEscape:!1,useWith:!0}),eQn=ie("@canon:stage/review/dispatch_review"),tQn=ie("@canon:stage/review/dispatch_review","subagent.eta.md"),nQn={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")};akt=({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=>rQn({slug:e,studio:t,stage:r,role:c.role,units:c.units})),o=s.map(c=>c.dispatchBlock).join(` +`)}});var XXn,QXn,skt,okt=v(()=>{"use strict";gt();che();ns();ht();Fh();Rt();XXn=new Te({autoEscape:!1,useWith:!0}),QXn=ie("@canon:stage/execute/start_unit_hat"),skt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=n.hat||"",s=n.units||[],o=n.terminal||!1,a=s.map(c=>WI({slug:e,studio:t,unit:c,stage:r,hat:i,terminal:o}));return XXn.renderString(QXn,{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?zI(s.length,"subagents"):""})}});var $Xn,eQn,akt,ckt=v(()=>{"use strict";gt();ht();Rt();$Xn=new Te({autoEscape:!1,useWith:!0}),eQn=ie("@canon:stage/gate/user_gate"),akt=({slug:e,action:t})=>{let n=t.stage||"",r=t.gate_kind||"approval",i=t.units||[];return $Xn.renderString(eQn,{slug:e,stage:n,gateKind:r,units:i,unitCount:i.length,unitsJson:JSON.stringify(i)})}});function iQn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=rQn[i],a="",c;if(o){let d=LEe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${_b({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=qD(n,r,i);d&&(c=ju({mandatePath:d,studio:n,stage:r}))}let u=LEe.renderString(nQn,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,existingFeedback:jI(t,r),decisions:HI(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 LEe,tQn,nQn,rQn,ukt,lkt=v(()=>{"use strict";gt();Kn();vl();ns();ht();Rt();LEe=new Te({autoEscape:!1,useWith:!0}),tQn=ie("@canon:stage/review/dispatch_review"),nQn=ie("@canon:stage/review/dispatch_review","subagent.eta.md"),rQn={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")};ukt=({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=>iQn({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 MEe.renderString(eQn,{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 ukt,iQn,sQn,lkt,dkt=v(()=>{"use strict";gt();ns();ht();Rt();ukt=new Te({autoEscape:!1,useWith:!0}),iQn=ie("@canon:stage/review/write_brief"),sQn=ie("@canon:stage/review/write_brief","subagent.eta.md"),lkt=({slug:e,action:t})=>{let n=t.stage||"",r=ukt.renderString(sQn,{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 ukt.renderString(iQn,{slug:e,stage:n,dispatchBlock:i})}});var oQn,aQn,fkt,pkt=v(()=>{"use strict";gt();Kn();ht();Rt();oQn=new Te({autoEscape:!1,useWith:!0}),aQn=ie("@canon:stage/start_stage"),fkt=({slug:e,studio:t,action:n})=>{let r=n.stage,i=n.hats||[],s=es(t,r),o=Cd(t);return oQn.renderString(aQn,{slug:e,studio:t,stage:r,hats:i,studioBody:o?.body||"",stageBody:s?.body||"",follows:n.follows||"",parentKnowledgeJson:JSON.stringify(n.parent_knowledge)})}});var hkt,mkt=v(()=>{"use strict";qRt();zRt();VRt();KRt();JRt();$Rt();iAt();oAt();cAt();lAt();fAt();hAt();gAt();SAt();_At();vAt();AAt();IAt();OAt();NAt();MAt();HAt();BAt();GAt();WAt();YAt();JAt();vwt();Awt();kwt();xwt();Pwt();Cwt();Dwt();Uwt();jwt();qwt();zwt();Vwt();Kwt();Zwt();Xwt();$wt();nkt();ikt();okt();ckt();dkt();pkt();hkt=new Map([["start_stage",fkt],["elaborate_loop",Twt],["start_unit",tkt],["start_unit_hat",rkt],["dispatch_review",akt],["write_brief",lkt],["dispatch_approval",jAt],["dispatch_quality_gates",qAt],["user_gate",skt],["advance_phase",zAt],["advance_stage",VAt],["complete_stage",KAt],["record_observations",ZAt],["record_reflection",dAt],["blocked",Rwt],["coverage_review_required",wwt],["dag_cycle_detected",Iwt],["discovery_missing",Owt],["elaboration_insufficient",Nwt],["escalate",Mwt],["gate_blocked",Lwt],["output_liveness_review_required",Fwt],["outputs_missing",Hwt],["save_wip",Bwt],["unit_inputs_missing",Gwt],["unit_inputs_not_declared",Wwt],["unit_naming_invalid",Ywt],["unit_outputs_empty_iterations",Jwt],["unresolved_dependencies",Qwt],["migrated",PAt],["select_studio",CAt],["intent_review",EAt],["intent_approved",TAt],["intent_complete",RAt],["seal_intent",xAt],["pending_seal",kAt],["external_review_requested",pAt],["revise_unit_specs",mAt],["safe_intent_repair",yAt],["changes_requested",HRt],["close_feedback",BRt],["feedback_question",GRt],["fix_quality_gates",WRt],["intent_completion_fix",ZRt],["review_fix",QRt],["start_feedback_hat",rAt],["complete",sAt],["error",aAt],["loop_halted",uAt]])});var L6,gkt=v(()=>{"use strict";Hi();uo();L6=[{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:m0},{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:qL},{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:E0},{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:_0},{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:T0},{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:v0},{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:S0},{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:I0},{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:g0},{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:k0},{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:R0},{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:A0},{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:w0},{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:y0},{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:b0},{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 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,DEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===LEe||(s.plugin_version=LEe,lQn(n,DEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var DEe,fQn,LEe,ykt=v(()=>{"use strict";DEe=Re(Kt(),1);Nh();fQn="4.0.0",LEe="5.0.0";Nu(fQn,LEe,pQn)});import{existsSync as hQn,readFileSync as mQn,writeFileSync as gQn}from"node:fs";import{join as yQn}from"node:path";function bQn(e){let t=hc(),n=yQn(e.intentDir,"intent.md");if(!hQn(n))return t;let r=mQn(n,"utf8"),i=(0,UEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===FEe||(s.plugin_version=FEe,gQn(n,UEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var UEe,SQn,FEe,Skt=v(()=>{"use strict";UEe=Re(Kt(),1);Nh();SQn="5.0.0",FEe="6.0.0";Nu(SQn,FEe,bQn)});import{existsSync as EQn,readFileSync as _Qn,writeFileSync as TQn}from"node:fs";import{join as vQn}from"node:path";function AQn(e){let t=hc(),n=vQn(e.intentDir,"intent.md");if(!EQn(n))return t;let r=_Qn(n,"utf8"),i=(0,jEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===HEe||(s.plugin_version=HEe,TQn(n,jEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var jEe,RQn,HEe,bkt=v(()=>{"use strict";jEe=Re(Kt(),1);Nh();RQn="6.0.0",HEe="7.0.0";Nu(RQn,HEe,AQn)});import{existsSync as Rx,readdirSync as U6,readFileSync as BEe,writeFileSync as zEe}from"node:fs";import{join as Zb}from"node:path";function kQn(e){let t=BEe(e,"utf8"),n=(0,Hv.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,zEe(e,Hv.default.stringify(n.content,r)),{migrated:!0,closure_synthesized:a}}function IQn(e){let t=BEe(e,"utf8"),n=(0,Hv.default)(t),r=n.data;return r.status===void 0?!1:(delete r.status,zEe(e,Hv.default.stringify(n.content,r)),!0)}function xQn(e,t){let n=[],r=Zb(e,"feedback");Rx(r)&&n.push(r);let i=Zb(e,"stages");if(Rx(i))for(let s of U6(i,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=Zb(i,s.name,"feedback");Rx(o)&&n.push(o)}for(let s of n)for(let o of U6(s).filter(a=>a.endsWith(".md"))){let a=kQn(Zb(s,o));a.migrated&&(t.feedback_migrated++,a.closure_synthesized&&t.feedback_with_synthesized_closure++)}}function OQn(e,t){let n=Zb(e,"stages");if(Rx(n))for(let r of U6(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Zb(n,r.name,"units");if(Rx(i))for(let s of U6(i).filter(o=>o.endsWith(".md")))IQn(Zb(i,s))&&t.units_migrated++}}function PQn(e){let t=hc(),n={feedback_migrated:0,feedback_with_synthesized_closure:0,units_migrated:0};xQn(e.intentDir,n),OQn(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=Zb(e.intentDir,"intent.md");if(Rx(r)){let i=BEe(r,"utf8"),s=(0,Hv.default)(i),o=s.data;(typeof o.plugin_version=="string"?o.plugin_version:"")!==qEe&&(o.plugin_version=qEe,zEe(r,Hv.default.stringify(s.content,o)),t.intent_md_migrated=!0)}return t}var Hv,wQn,qEe,Ekt=v(()=>{"use strict";Hv=Re(Kt(),1);Nh();wQn="7.0.0",qEe="8.0.0";Nu(wQn,qEe,PQn)});import{existsSync as qv,readdirSync as nU,readFileSync as VEe,rmSync as _kt,statSync as NQn,writeFileSync as WEe}from"node:fs";import{join as Fa}from"node:path";function Tkt(e){let t=e.iterations;if(!Array.isArray(t))return 0;let n=0;for(let r of t){if(!r||typeof r!="object"||Array.isArray(r))continue;let i=r;typeof i.reason=="string"&&(i.message===void 0&&i.reason.length>0&&(i.message=i.reason),delete i.reason,n++)}return n}function MQn(e,t,n,r){let i=VEe(e,"utf8"),s=(0,Bv.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=DY({intentDir:t,repoRoot:n,unitInputs:c});h.input_witnesses=m,r.review_slots_backfilled++,a=!0}}let l=o.approvals;if(l&&typeof l=="object"&&!Array.isArray(l)){let f=l;for(let[,p]of Object.entries(f)){if(!p||typeof p!="object"||Array.isArray(p))continue;let h=p;h.witnesses!==void 0&&(delete h.witnesses,r.approval_slots_stripped++,a=!0)}}let d=Tkt(o);return d>0&&(r.iterations_message_migrated+=d,a=!0),a?(WEe(e,Bv.default.stringify(s.content,o)),!0):!1}function DQn(e,t){let n=[Fa(e,"feedback")],r=Fa(e,"stages");if(qv(r))for(let i of nU(r,{withFileTypes:!0}))i.isDirectory()&&n.push(Fa(r,i.name,"feedback"));for(let i of n)if(qv(i))for(let s of nU(i).filter(o=>o.endsWith(".md"))){let o=Fa(i,s),a=VEe(o,"utf8"),c=(0,Bv.default)(a),u=c.data,l=Tkt(u);l>0&&(t.iterations_message_migrated+=l,WEe(o,Bv.default.stringify(c.content,u)))}}function Ax(e,t){if(qv(e))try{NQn(e).isDirectory()?_kt(e,{recursive:!0,force:!0}):_kt(e,{force:!0}),t.drift_artifacts_deleted++}catch{}}function LQn(e,t){Ax(Fa(e,"drift-markers.json"),t);let n=Fa(e,"stages");if(qv(n))for(let r of nU(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Fa(n,r.name);Ax(Fa(i,"baseline.json"),t),Ax(Fa(i,"baseline-content"),t),Ax(Fa(i,".baseline-ack"),t),Ax(Fa(i,"baseline-thrash.json"),t),Ax(Fa(i,"gate-session.json"),t)}}function UQn(e){return Fa(e,"..","..","..")}function FQn(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=UQn(e.intentDir),i=Fa(e.intentDir,"stages");if(qv(i))for(let o of nU(i,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=Fa(i,o.name,"units");if(qv(a))for(let c of nU(a).filter(u=>u.endsWith(".md"))){let u=Fa(a,c);MQn(u,e.intentDir,r,n)&&n.units_migrated++}}DQn(e.intentDir,n),LQn(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(qv(s)){let o=VEe(s,"utf8"),a=(0,Bv.default)(o),c=a.data;(typeof c.plugin_version=="string"?c.plugin_version:"")!==GEe&&(c.plugin_version=GEe,WEe(s,Bv.default.stringify(a.content,c)),t.intent_md_migrated=!0)}return t}var Bv,CQn,GEe,vkt=v(()=>{"use strict";Bv=Re(Kt(),1);Nh();Xf();CQn="8.0.0",GEe="9.0.0";Nu(CQn,GEe,FQn)});import{existsSync as jQn,readFileSync as HQn,writeFileSync as qQn}from"node:fs";import{join as BQn}from"node:path";function GQn(e){let t=hc(),n=BQn(e.intentDir,"intent.md");if(!jQn(n))return t;let r=HQn(n,"utf8"),i=(0,KEe.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===YEe&&!a||(s.plugin_version=YEe,qQn(n,KEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var KEe,zQn,YEe,Rkt=v(()=>{"use strict";KEe=Re(Kt(),1);Nh();ji();zQn="9.0.0",YEe="10.0.0";Nu(zQn,YEe,GQn)});import{existsSync as Akt,readFileSync as VQn,renameSync as WQn,unlinkSync as KQn,writeFileSync as YQn}from"node:fs";function kkt(e,t){let n=DI(e,wkt),r=`${n}.tmp-${process.pid}-${Date.now()}`;try{let i={intent:e,action:t??null,at:new Date().toISOString()};YQn(r,JSON.stringify(i)),WQn(r,n)}catch{try{Akt(r)&&KQn(r)}catch{}}}function Ikt(e){try{let t=DI(e,wkt);if(!Akt(t))return null;let n=JSON.parse(VQn(t,"utf8"));return!n||typeof n!="object"||n.intent!==e?null:n}catch{return null}}var wkt,ZEe=v(()=>{"use strict";vl();wkt="statusline.json"});import{existsSync as ZQn,readFileSync as JQn,rmSync as Zwi,writeFileSync as XQn}from"node:fs";function Nkt(e){let t=wx.get(e);if(t)return t;try{let n=DI(e,Pkt);if(!ZQn(n))return;let r=JSON.parse(JQn(n,"utf8")),i=r.updated_at??r.first_seen;return!i||Date.now()-new Date(i).getTime()>Mkt?void 0:(wx.set(e,r),r)}catch{return}}function $Qn(e,t){wx.set(e,t);try{XQn(DI(e,Pkt),JSON.stringify(t),"utf8"),QQn.add(e)}catch{}}function n$n(){if(wx.size<100)return;let e=Date.now();for(let[t,n]of wx)e-new Date(n.first_seen).getTime()>Mkt&&wx.delete(t)}function Dkt(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 Lkt(e,t){if(XEe(t))return;let n=Dkt(t),r=new Date().toISOString(),i=Nkt(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(-JEe);o={signature:n,count:a,first_seen:i.first_seen,updated_at:r,recent:c,churn_fired:i.churn_fired},a===e$n&&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(-JEe),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=Ukt(a);if(!o.churn_fired&&u.length>=xkt){let l=u.slice(-xkt),d=new Set(l);d.size<=Ckt&&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};$Qn(e,o),n$n()}function XEe(e){if(!e||typeof e!="object")return!1;let t=e.action;return typeof t!="string"?!1:!!(r$n.has(t)||t==="intent_review"&&e.role==="user")}function i$n(e){try{return XEe(JSON.parse(e))}catch{return!1}}function Ukt(e){return e.filter(t=>!i$n(t))}function Fkt(e,t){if(XEe(t))return null;let n=Dkt(t),r=Nkt(e);if(!r)return null;if(r.signature===n&&r.count+1>=t$n)return{kind:"repeat",count:r.count+1,signature:n};let i=Ukt([...r.recent,n].slice(-JEe));if(i.length>=Okt){let s=i.slice(-Okt),o=new Set(s);if(o.size<=Ckt&&o.size>1)return{kind:"churn",distinct:o.size,window:s.length}}return null}function jkt(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 LEe.renderString(tQn,{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 dkt,sQn,oQn,fkt,pkt=v(()=>{"use strict";gt();ns();ht();Rt();dkt=new Te({autoEscape:!1,useWith:!0}),sQn=ie("@canon:stage/review/write_brief"),oQn=ie("@canon:stage/review/write_brief","subagent.eta.md"),fkt=({slug:e,action:t})=>{let n=t.stage||"",r=dkt.renderString(oQn,{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 dkt.renderString(sQn,{slug:e,stage:n,dispatchBlock:i})}});var aQn,cQn,hkt,mkt=v(()=>{"use strict";gt();Kn();ht();Rt();aQn=new Te({autoEscape:!1,useWith:!0}),cQn=ie("@canon:stage/start_stage"),hkt=({slug:e,studio:t,action:n})=>{let r=n.stage,i=n.hats||[],s=es(t,r),o=Cd(t);return aQn.renderString(cQn,{slug:e,studio:t,stage:r,hats:i,studioBody:o?.body||"",stageBody:s?.body||"",follows:n.follows||"",parentKnowledgeJson:JSON.stringify(n.parent_knowledge)})}});var gkt,ykt=v(()=>{"use strict";zRt();VRt();KRt();ZRt();QRt();tAt();oAt();cAt();lAt();fAt();hAt();gAt();SAt();EAt();vAt();AAt();kAt();OAt();NAt();MAt();LAt();BAt();GAt();WAt();YAt();JAt();QAt();Awt();kwt();xwt();Pwt();Cwt();Dwt();Uwt();jwt();qwt();zwt();Vwt();Kwt();Zwt();Xwt();$wt();tkt();ikt();okt();ckt();lkt();pkt();mkt();gkt=new Map([["start_stage",hkt],["elaborate_loop",Rwt],["start_unit",rkt],["start_unit_hat",skt],["dispatch_review",ukt],["write_brief",fkt],["dispatch_approval",qAt],["dispatch_quality_gates",zAt],["user_gate",akt],["advance_phase",VAt],["advance_stage",KAt],["complete_stage",ZAt],["record_observations",XAt],["record_reflection",pAt],["blocked",wwt],["coverage_review_required",Iwt],["dag_cycle_detected",Owt],["discovery_missing",Nwt],["elaboration_insufficient",Mwt],["escalate",Lwt],["gate_blocked",Fwt],["output_liveness_review_required",Hwt],["outputs_missing",Bwt],["save_wip",Gwt],["unit_inputs_missing",Wwt],["unit_inputs_not_declared",Ywt],["unit_naming_invalid",Jwt],["unit_outputs_empty_iterations",Qwt],["unresolved_dependencies",ekt],["migrated",CAt],["select_studio",DAt],["intent_review",TAt],["intent_approved",RAt],["intent_complete",wAt],["seal_intent",PAt],["pending_seal",xAt],["external_review_requested",mAt],["revise_unit_specs",yAt],["safe_intent_repair",bAt],["changes_requested",BRt],["close_feedback",GRt],["feedback_question",WRt],["fix_quality_gates",YRt],["intent_completion_fix",XRt],["review_fix",eAt],["start_feedback_hat",sAt],["complete",aAt],["error",uAt],["loop_halted",dAt]])});var U6,Skt=v(()=>{"use strict";Hi();uo();U6=[{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:m0},{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:qL},{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:E0},{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:_0},{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:T0},{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:v0},{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:S0},{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:I0},{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:g0},{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:k0},{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:R0},{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:A0},{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:w0},{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:y0},{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:b0},{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 uQn,readFileSync as lQn,writeFileSync as dQn}from"node:fs";import{join as fQn}from"node:path";function hQn(e){let t=hc(),n=fQn(e.intentDir,"intent.md");if(!uQn(n))return t;let r=lQn(n,"utf8"),i=(0,UEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===FEe||(s.plugin_version=FEe,dQn(n,UEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var UEe,pQn,FEe,bkt=v(()=>{"use strict";UEe=Re(Kt(),1);Nh();pQn="4.0.0",FEe="5.0.0";Nu(pQn,FEe,hQn)});import{existsSync as mQn,readFileSync as gQn,writeFileSync as yQn}from"node:fs";import{join as SQn}from"node:path";function EQn(e){let t=hc(),n=SQn(e.intentDir,"intent.md");if(!mQn(n))return t;let r=gQn(n,"utf8"),i=(0,jEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===HEe||(s.plugin_version=HEe,yQn(n,jEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var jEe,bQn,HEe,Ekt=v(()=>{"use strict";jEe=Re(Kt(),1);Nh();bQn="5.0.0",HEe="6.0.0";Nu(bQn,HEe,EQn)});import{existsSync as _Qn,readFileSync as TQn,writeFileSync as vQn}from"node:fs";import{join as RQn}from"node:path";function wQn(e){let t=hc(),n=RQn(e.intentDir,"intent.md");if(!_Qn(n))return t;let r=TQn(n,"utf8"),i=(0,qEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===BEe||(s.plugin_version=BEe,vQn(n,qEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var qEe,AQn,BEe,_kt=v(()=>{"use strict";qEe=Re(Kt(),1);Nh();AQn="6.0.0",BEe="7.0.0";Nu(AQn,BEe,wQn)});import{existsSync as Rx,readdirSync as F6,readFileSync as GEe,writeFileSync as VEe}from"node:fs";import{join as Zb}from"node:path";function IQn(e){let t=GEe(e,"utf8"),n=(0,Hv.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,VEe(e,Hv.default.stringify(n.content,r)),{migrated:!0,closure_synthesized:a}}function xQn(e){let t=GEe(e,"utf8"),n=(0,Hv.default)(t),r=n.data;return r.status===void 0?!1:(delete r.status,VEe(e,Hv.default.stringify(n.content,r)),!0)}function OQn(e,t){let n=[],r=Zb(e,"feedback");Rx(r)&&n.push(r);let i=Zb(e,"stages");if(Rx(i))for(let s of F6(i,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=Zb(i,s.name,"feedback");Rx(o)&&n.push(o)}for(let s of n)for(let o of F6(s).filter(a=>a.endsWith(".md"))){let a=IQn(Zb(s,o));a.migrated&&(t.feedback_migrated++,a.closure_synthesized&&t.feedback_with_synthesized_closure++)}}function PQn(e,t){let n=Zb(e,"stages");if(Rx(n))for(let r of F6(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Zb(n,r.name,"units");if(Rx(i))for(let s of F6(i).filter(o=>o.endsWith(".md")))xQn(Zb(i,s))&&t.units_migrated++}}function NQn(e){let t=hc(),n={feedback_migrated:0,feedback_with_synthesized_closure:0,units_migrated:0};OQn(e.intentDir,n),PQn(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=Zb(e.intentDir,"intent.md");if(Rx(r)){let i=GEe(r,"utf8"),s=(0,Hv.default)(i),o=s.data;(typeof o.plugin_version=="string"?o.plugin_version:"")!==zEe&&(o.plugin_version=zEe,VEe(r,Hv.default.stringify(s.content,o)),t.intent_md_migrated=!0)}return t}var Hv,kQn,zEe,Tkt=v(()=>{"use strict";Hv=Re(Kt(),1);Nh();kQn="7.0.0",zEe="8.0.0";Nu(kQn,zEe,NQn)});import{existsSync as qv,readdirSync as nU,readFileSync as KEe,rmSync as vkt,statSync as CQn,writeFileSync as YEe}from"node:fs";import{join as Fa}from"node:path";function Rkt(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 DQn(e,t,n,r){let i=KEe(e,"utf8"),s=(0,Bv.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=DY({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=Rkt(o);return d>0&&(r.iterations_message_migrated+=d,a=!0),a?(YEe(e,Bv.default.stringify(s.content,o)),!0):!1}function LQn(e,t){let n=[Fa(e,"feedback")],r=Fa(e,"stages");if(qv(r))for(let i of nU(r,{withFileTypes:!0}))i.isDirectory()&&n.push(Fa(r,i.name,"feedback"));for(let i of n)if(qv(i))for(let s of nU(i).filter(o=>o.endsWith(".md"))){let o=Fa(i,s),a=KEe(o,"utf8"),c=(0,Bv.default)(a),u=c.data,l=Rkt(u);l>0&&(t.iterations_message_migrated+=l,YEe(o,Bv.default.stringify(c.content,u)))}}function Ax(e,t){if(qv(e))try{CQn(e).isDirectory()?vkt(e,{recursive:!0,force:!0}):vkt(e,{force:!0}),t.drift_artifacts_deleted++}catch{}}function UQn(e,t){Ax(Fa(e,"drift-markers.json"),t);let n=Fa(e,"stages");if(qv(n))for(let r of nU(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Fa(n,r.name);Ax(Fa(i,"baseline.json"),t),Ax(Fa(i,"baseline-content"),t),Ax(Fa(i,".baseline-ack"),t),Ax(Fa(i,"baseline-thrash.json"),t),Ax(Fa(i,"gate-session.json"),t)}}function FQn(e){return Fa(e,"..","..","..")}function jQn(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=FQn(e.intentDir),i=Fa(e.intentDir,"stages");if(qv(i))for(let o of nU(i,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=Fa(i,o.name,"units");if(qv(a))for(let c of nU(a).filter(u=>u.endsWith(".md"))){let u=Fa(a,c);DQn(u,e.intentDir,r,n)&&n.units_migrated++}}LQn(e.intentDir,n),UQn(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(qv(s)){let o=KEe(s,"utf8"),a=(0,Bv.default)(o),c=a.data;(typeof c.plugin_version=="string"?c.plugin_version:"")!==WEe&&(c.plugin_version=WEe,YEe(s,Bv.default.stringify(a.content,c)),t.intent_md_migrated=!0)}return t}var Bv,MQn,WEe,Akt=v(()=>{"use strict";Bv=Re(Kt(),1);Nh();Xf();MQn="8.0.0",WEe="9.0.0";Nu(MQn,WEe,jQn)});import{existsSync as HQn,readFileSync as qQn,writeFileSync as BQn}from"node:fs";import{join as zQn}from"node:path";function VQn(e){let t=hc(),n=zQn(e.intentDir,"intent.md");if(!HQn(n))return t;let r=qQn(n,"utf8"),i=(0,ZEe.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===JEe&&!a||(s.plugin_version=JEe,BQn(n,ZEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var ZEe,GQn,JEe,wkt=v(()=>{"use strict";ZEe=Re(Kt(),1);Nh();ji();GQn="9.0.0",JEe="10.0.0";Nu(GQn,JEe,VQn)});import{existsSync as kkt,readFileSync as WQn,renameSync as KQn,unlinkSync as YQn,writeFileSync as ZQn}from"node:fs";function xkt(e,t){let n=DI(e,Ikt),r=`${n}.tmp-${process.pid}-${Date.now()}`;try{let i={intent:e,action:t??null,at:new Date().toISOString()};ZQn(r,JSON.stringify(i)),KQn(r,n)}catch{try{kkt(r)&&YQn(r)}catch{}}}function Okt(e){try{let t=DI(e,Ikt);if(!kkt(t))return null;let n=JSON.parse(WQn(t,"utf8"));return!n||typeof n!="object"||n.intent!==e?null:n}catch{return null}}var Ikt,XEe=v(()=>{"use strict";vl();Ikt="statusline.json"});import{existsSync as JQn,readFileSync as XQn,rmSync as Xwi,writeFileSync as QQn}from"node:fs";function Mkt(e){let t=wx.get(e);if(t)return t;try{let n=DI(e,Ckt);if(!JQn(n))return;let r=JSON.parse(XQn(n,"utf8")),i=r.updated_at??r.first_seen;return!i||Date.now()-new Date(i).getTime()>Lkt?void 0:(wx.set(e,r),r)}catch{return}}function e$n(e,t){wx.set(e,t);try{QQn(DI(e,Ckt),JSON.stringify(t),"utf8"),$Qn.add(e)}catch{}}function r$n(){if(wx.size<100)return;let e=Date.now();for(let[t,n]of wx)e-new Date(n.first_seen).getTime()>Lkt&&wx.delete(t)}function Ukt(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 Fkt(e,t){if($Ee(t))return;let n=Ukt(t),r=new Date().toISOString(),i=Mkt(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(-QEe);o={signature:n,count:a,first_seen:i.first_seen,updated_at:r,recent:c,churn_fired:i.churn_fired},a===t$n&&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(-QEe),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=jkt(a);if(!o.churn_fired&&u.length>=Pkt){let l=u.slice(-Pkt),d=new Set(l);d.size<=Dkt&&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};e$n(e,o),r$n()}function $Ee(e){if(!e||typeof e!="object")return!1;let t=e.action;return typeof t!="string"?!1:!!(i$n.has(t)||t==="intent_review"&&e.role==="user")}function s$n(e){try{return $Ee(JSON.parse(e))}catch{return!1}}function jkt(e){return e.filter(t=>!s$n(t))}function Hkt(e,t){if($Ee(t))return null;let n=Ukt(t),r=Mkt(e);if(!r)return null;if(r.signature===n&&r.count+1>=n$n)return{kind:"repeat",count:r.count+1,signature:n};let i=jkt([...r.recent,n].slice(-QEe));if(i.length>=Nkt){let s=i.slice(-Nkt),o=new Set(s);if(o.size<=Dkt&&o.size>1)return{kind:"churn",distinct:o.size,window:s.length}}return null}function qkt(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. @@ -1167,28 +1167,28 @@ 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 wx,QQn,Pkt,e$n,JEe,xkt,Ckt,t$n,Okt,Mkt,r$n,Hkt=v(()=>{"use strict";vl();vo();wx=new Map,QQn=new Set,Pkt=".deadlock-history.json";e$n=2,JEe=10,xkt=4,Ckt=2,t$n=4,Okt=8,Mkt=3600*1e3;r$n=new Set(["user_gate","feedback_question","select_studio","select_mode","select_stage"])});import{existsSync as QEe,readdirSync as s$n,readFileSync as qkt}from"node:fs";function Bkt(e,t){if(!Ee())return{action:null};let n=[];try{let o=`${ce(e)}/intent.md`;if(!QEe(o))return{action:null};let a=re(qkt(o,"utf8")).data,c=[...wn(a,t),""];for(let u of c){let l=u||"intent",d=lo(e,u);if(QEe(d))for(let f of s$n(d).filter(p=>p.endsWith(".md"))){let p;try{p=re(qkt(`${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=Gd(h),g=Sg(e,l,m);if(!QEe(g))continue;let y=Hb(e,l,()=>XD(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 zkt=v(()=>{"use strict";ar();K0();ze();ji()});import{existsSync as Gkt,readdirSync as o$n,readFileSync as Vkt,writeFileSync as a$n}from"node:fs";import{join as rU}from"node:path";function c$n(e,t){return new Set(Es(e,t).filter(n=>hb(e,t,n)!==null))}function u$n(e,t){return new Set(bg(e,t).filter(n=>Kfe(e,t,n)!==null))}function l$n(e){let t=zD(e);return new Set(jf(e).filter(n=>t[n]!=null))}function d$n(e,t){let n;try{n=(0,F6.default)(Vkt(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,a$n(e,F6.default.stringify(n.content,o)),!0}function $Ee(e,t,n,r){if(Gkt(e))for(let i of o$n(e).filter(s=>s.endsWith(".md")))d$n(rU(e,i),t)&&r.push(`${n}/${i.replace(/\.md$/,"")}`)}function Wkt(e){let t=[],n=ce(e),r=rU(n,"intent.md");if(!Gkt(r))return{reconciled:t};let i=[],s="";try{let{data:o}=(0,F6.default)(Vkt(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)$Ee(rU(n,"stages",o,"units"),c$n(s,o),o,t),$Ee(rU(n,"stages",o,"feedback"),u$n(s,o),`${o}/feedback`,t);return $Ee(rU(n,"feedback"),l$n(s),"feedback",t),{reconciled:t}}var F6,Kkt=v(()=>{"use strict";F6=Re(Kt(),1);ze();Kn();ji()});import{existsSync as f$n,readdirSync as Ykt,readFileSync as Zkt,renameSync as p$n,rmSync as h$n,writeFileSync as m$n}from"node:fs";import{join as kx}from"node:path";function g$n(e){let t=e.match(/^(\d+)-/);return t?Number.parseInt(t[1],10):null}function Jkt(e,t){let n=[],r=["",...t];for(let i of r){let s=lo(e,i);if(!f$n(s))continue;let o;try{o=Ykt(s)}catch{continue}let a=o.filter(d=>d.endsWith(".md")),c=new Map;for(let d of a){let f=g$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,j6.default)(Zkt(kx(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";j6=Re(Kt(),1);ze()});import{existsSync as iU,readdirSync as S$n,rmSync as Qkt,statSync as eIt}from"node:fs";import{join as H6}from"node:path";function $kt(e){if(iU(e))try{eIt(e).isDirectory()?Qkt(e,{recursive:!0,force:!0}):Qkt(e,{force:!0})}catch{}}function tIt(e){let t=0,n=new Set;for(let i of b$n){let s=H6(e,i);iU(s)&&n.add(s),$kt(s)}let r=H6(e,"stages");if(iU(r)){let i=[];try{i=S$n(r)}catch{i=[]}for(let s of i){let o=H6(r,s),a=!1;try{a=eIt(o).isDirectory()}catch{continue}if(a)for(let c of E$n){let u=H6(o,c);iU(u)&&n.add(u),$kt(u)}}}for(let i of n)iU(i)||t++;return t}var b$n,E$n,nIt=v(()=>{"use strict";b$n=["drift-markers.json"],E$n=["baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","gate-session.json"]});import{existsSync as zv,readdirSync as q6,readFileSync as iIt,writeFileSync as _$n}from"node:fs";import{join as Jb}from"node:path";function T$n(e){if(!zv(e))return null;try{let t=iIt(e,"utf8"),n=(0,B6.default)(t);return{data:JSON.parse(JSON.stringify(n.data)),body:n.content}}catch{return null}}function v$n(e,t,n){_$n(e,B6.default.stringify(n,t))}function R$n(e,t){let n=Jb(e,"stages",t);if(!zv(n))return!1;let r=Jb(n,"units");if(zv(r)&&q6(r,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||zv(Jb(n,"elaboration.md")))return!0;let i=Jb(n,"feedback");return!!(zv(i)&&q6(i,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||q6(n,{withFileTypes:!0}).some(o=>o.isFile()&&o.name.endsWith(".md")))}function sIt(e){let t=e.iterations;return Array.isArray(t)?t:[]}function A$n(e,t){let n=sIt(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 oIt(e,t,n){let r={stagesRepaired:[],unitsTouched:0,reviewsAdded:0,approvalsAdded:0},i=Jb(e,"intent.md");if(!zv(i))return r;let s={};try{s=(0,B6.default)(iIt(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(_=>Jb(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=w$n(t,c),y=[],b=!0;for(let _ of d){let T=T$n(_);if(!T){Ke("haiku.self_repair.unit_unreadable",{stage:c,path:_}),b=!1;break}y.push({path:_,data:T.data,body:T.body}),A$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:rIt},r.reviewsAdded++,C=!0);for(let L of m)N[L]==null&&(N[L]={at:k,migrated:!0,synthesized_reason:rIt},r.approvalsAdded++,C=!0);C&&(T.reviews=P,T.approvals=N,v$n(_,T,R),r.unitsTouched++,E=!0)}E&&r.stagesRepaired.push(c)}return r}function w$n(e,t){try{return Es(e,t)||[]}catch{return[]}}var B6,rIt,aIt=v(()=>{"use strict";B6=Re(Kt(),1);Kn();vo();ji();rIt="pre-tick-self-repair: later stage has on-disk work"});import{existsSync as z6,readdirSync as cIt,readFileSync as uIt}from"node:fs";import{join as G6}from"node:path";function lIt(e,t){let n=[];try{if(!fpe())return{reset:n};let r=ce(e),i=ai(e,t,r);if(!i)return{reset:n};let s=G6(r,"stages",i,"units");if(!z6(s))return{reset:n};let o=Es(t,i),a=o[o.length-1]??"";for(let c of cIt(s).filter(u=>u.endsWith(".md"))){let u=G6(s,c),l;try{l=re(uIt(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(z6(yb(e,h)))continue;let{local:m,remote:g}=dpe(e,h);m||g||(Array.isArray(l.outputs)?l.outputs.filter(b=>typeof b=="string"&&b.length>0):[]).some(b=>Kh(e,h,b))||(Ne(u,"iterations",[]),Ne(u,"started_at",null),n.push(h))}}catch{}return{reset:n}}function dIt(e,t){let n=[];try{let r=ce(e),i=ai(e,t,r);if(!i)return{cleared:n};let s=G6(r,"stages",i,"units");if(!z6(s))return{cleared:n};let o=Ee(),a=Date.now();for(let c of cIt(s).filter(u=>u.endsWith(".md"))){let u=G6(s,c),l;try{l=re(uIt(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&&!z6(yb(e,h)),g=a-Date.parse(p),y=Number.isFinite(g)&&g>k$n;!m&&!y||(f.dispatched_at=null,Ne(u,"iterations",d),n.push(h))}}catch{}return{cleared:n}}var k$n,fIt=v(()=>{"use strict";ar();ze();ji();Oa();k$n=Number.parseInt(process.env.HAIKU_UNIT_LEASE_TTL_MS??"",10)||45*6e4});import{existsSync as I$n,readdirSync as x$n,readFileSync as O$n,writeFileSync as P$n}from"node:fs";import{join as e_e}from"node:path";function pIt(e,t){let n=[],r=[],i=[];for(let s of t){let o=e_e(cr(e,s),"units");if(!I$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=x$n(o).filter(u=>u.endsWith(".md"))}catch{continue}for(let u of c){let l=u.replace(/\.md$/,""),d;try{d=(0,t_e.default)(O$n(e_e(o,u),"utf8"))}catch{continue}let f=Array.isArray(d.data.outputs)?d.data.outputs.filter(g=>typeof g=="string"):[];if(f.length===0)continue;let p=[],h=[],m=!1;for(let g of f){if(Kh(e,l,g)){p.push(g);continue}let y=_Z(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{P$n(e_e(o,u),t_e.default.stringify(d.content,{...d.data,outputs:p}))}catch{}for(let g of h){let y=`missing-output:${l}:${g}`;if(a.has(y)){i.push(`${l}:${g}`);continue}let 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 t_e,hIt=v(()=>{"use strict";t_e=Re(Kt(),1);ze()});import{existsSync as N$n,readdirSync as C$n,readFileSync as M$n}from"node:fs";import{join as mIt}from"node:path";function yIt(e,t,n){let r=[],i=[],s=ai(e,n,t);if(!s)return{filed:r,skipped:i};let o=mIt(cr(e,s),"units");if(!N$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=C$n(o).filter(u=>u.endsWith(".md"))}catch{return{filed:r,skipped:i}}for(let u of c){let l;try{l=(0,gIt.default)(M$n(mIt(o,u),"utf8")).data}catch{continue}let f=(Array.isArray(l.inputs)?l.inputs:[]).filter(g=>typeof g=="string"&&D$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 gIt,D$n,SIt=v(()=>{"use strict";gIt=Re(Kt(),1);ze();Oa();D$n=/^unit-\d+-/});import{randomBytes as L$n}from"node:crypto";import{existsSync as bIt,readFileSync as U$n,unlinkSync as F$n,writeFileSync as j$n}from"node:fs";import{join as H$n}from"node:path";function EIt(e,t){let n=t??ve();return H$n(n,"intents",e,".verifier-nonces.json")}function n_e(e){switch(e.kind){case"intent_elaborate":return"intent.elaborate";case"stage_elaborate":return`stages/${e.stage}/elaborate`;case"stage_decompose":return`stages/${e.stage}/decompose`}}function r_e(e){let t=EIt(e);if(!bIt(t))return{};try{let n=U$n(t,"utf8"),r=JSON.parse(n);return!r||typeof r!="object"||Array.isArray(r)?{}:r}catch{return{}}}function i_e(e,t){let n=EIt(e);if(Object.keys(t).length===0){if(bIt(n))try{F$n(n)}catch{}return}j$n(n,`${JSON.stringify(t,null,2)} -`)}function V6(e,t){let n=r_e(e.slug),r=n_e(e),i=n[r];if(i&&i.tied_to===t)return i.nonce;let s=L$n(16).toString("hex");return n[r]={nonce:s,tied_to:t},i_e(e.slug,n),s}function Ix(e,t){if(!t||t.length===0)return{ok:!1,reason:"missing"};let n=r_e(e.slug),r=n_e(e),i=n[r];return i?i.nonce!==t?{ok:!1,reason:"mismatch"}:(delete n[r],i_e(e.slug,n),{ok:!0}):{ok:!1,reason:"missing"}}function s_e(e){let t=r_e(e.slug),n=n_e(e);t[n]&&(delete t[n],i_e(e.slug,t))}var xx=v(()=>{"use strict";ze()});import{existsSync as vIt,readFileSync as RIt}from"node:fs";import{join as AIt}from"node:path";function a_e(e,t){let n;try{n=ce(e)}catch{return null}let r=AIt(n,"intent.md");if(!vIt(r))return null;let i=vS(),s=Number(i.split(".")[0]??"0"),o=_It(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&&e3(n);if(p>s)Ke("haiku.migrate.skipped_no_regress",{intent:e,source:f,target:i});else if(p0){mSe(`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.`),Gv(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)}),Gv(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.`}})}}}tIt(n),vSt(),ETt();let a=o.studio||"";if(!a)return Gv(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 Gv(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 Gv(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=oIt(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=lIt(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=dIt(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=Wkt(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=Jkt(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=yIt(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=pIt(e,f);(p.repaired.length>0||p.filed.length>0)&&Ke("haiku.output_validation.closeout_sweep",{intent:e,repaired:String(p.repaired.length),filed:String(p.filed.length)})}}catch(f){Ke("haiku.output_validation.failed",{intent:e,error:String(f?.message??f)})}try{let f=Bkt(e,a);if(f.action)return Gv(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?q$n(e,l.action):null;return Gv(e,{position:l,action:d})}function wIt(e,t){let n=a_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 _It(e){let t=RIt(e,"utf8");return(0,o_e.default)(t).data}function q$n(e,t){let n={...t,action:t.kind,intent:e};if(t.kind==="elaborate_loop"){let r=B$n(e,t);Object.keys(r).length>0&&(n.verifier_nonces=r)}return n}function B$n(e,t){let n={};for(let r of t.signals_unmet)if(r.signal==="verify_conversation")if(t.stage){let i=TIt(e,t.stage);n.verify_conversation=V6({kind:"stage_elaborate",slug:e,stage:t.stage},i)}else n.verify_conversation=V6({kind:"intent_elaborate",slug:e},null);else if(r.signal==="verify_decompose"&&t.stage){let i=TIt(e,t.stage);n.verify_decompose=V6({kind:"stage_decompose",slug:e,stage:t.stage},i)}return n}function TIt(e,t){let n=AIt(ce(e),"stages",t,"elaboration.md");if(!vIt(n))return null;try{let r=RIt(n,"utf8"),s=(0,o_e.default)(r).data.recorded_at;return typeof s=="string"&&s.length>0?s:null}catch{return null}}function Gv(e,t){let n=Fkt(e,t.action),r=t;if(n!==null){let i=jkt(e,n);r={position:t.position,action:i}}return r.action&&Kd(e,{type:"tick_committed",action:r.action.action??"unknown"}),Lkt(e,r.action),kkt(e,r.position.action),r}var o_e,c_e=v(()=>{"use strict";o_e=Re(Kt(),1);hx();ze();vo();p_();Nh();t3();ykt();Skt();bkt();Ekt();vkt();Rkt();H1();ZEe();o1();t3();ji();Oa();Hkt();zkt();Kkt();Xkt();nIt();aIt();fIt();hIt();SIt();xx()});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 Gi=v(()=>{"use strict"});function xn(e,t){return`${z$n} ${e} +4. Once the underlying state has changed, the next \`haiku_run_next\` tick will surface a different action and the loop guard will reset.`;return{action:"loop_halted",intent:e,message:i,loop:t.kind}}var wx,$Qn,Ckt,t$n,QEe,Pkt,Dkt,n$n,Nkt,Lkt,i$n,Bkt=v(()=>{"use strict";vl();vo();wx=new Map,$Qn=new Set,Ckt=".deadlock-history.json";t$n=2,QEe=10,Pkt=4,Dkt=2,n$n=4,Nkt=8,Lkt=3600*1e3;i$n=new Set(["user_gate","feedback_question","select_studio","select_mode","select_stage"])});import{existsSync as e_e,readdirSync as o$n,readFileSync as zkt}from"node:fs";function Gkt(e,t){if(!Ee())return{action:null};let n=[];try{let o=`${ce(e)}/intent.md`;if(!e_e(o))return{action:null};let a=re(zkt(o,"utf8")).data,c=[...wn(a,t),""];for(let u of c){let l=u||"intent",d=lo(e,u);if(e_e(d))for(let f of o$n(d).filter(p=>p.endsWith(".md"))){let p;try{p=re(zkt(`${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=Gd(h),g=Sg(e,l,m);if(!e_e(g))continue;let y=Hb(e,l,()=>XD(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 Vkt=v(()=>{"use strict";ar();K0();ze();ji()});import{existsSync as Wkt,readdirSync as a$n,readFileSync as Kkt,writeFileSync as c$n}from"node:fs";import{join as rU}from"node:path";function u$n(e,t){return new Set(Es(e,t).filter(n=>hb(e,t,n)!==null))}function l$n(e,t){return new Set(bg(e,t).filter(n=>Yfe(e,t,n)!==null))}function d$n(e){let t=zD(e);return new Set(jf(e).filter(n=>t[n]!=null))}function f$n(e,t){let n;try{n=(0,j6.default)(Kkt(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,c$n(e,j6.default.stringify(n.content,o)),!0}function t_e(e,t,n,r){if(Wkt(e))for(let i of a$n(e).filter(s=>s.endsWith(".md")))f$n(rU(e,i),t)&&r.push(`${n}/${i.replace(/\.md$/,"")}`)}function Ykt(e){let t=[],n=ce(e),r=rU(n,"intent.md");if(!Wkt(r))return{reconciled:t};let i=[],s="";try{let{data:o}=(0,j6.default)(Kkt(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)t_e(rU(n,"stages",o,"units"),u$n(s,o),o,t),t_e(rU(n,"stages",o,"feedback"),l$n(s,o),`${o}/feedback`,t);return t_e(rU(n,"feedback"),d$n(s),"feedback",t),{reconciled:t}}var j6,Zkt=v(()=>{"use strict";j6=Re(Kt(),1);ze();Kn();ji()});import{existsSync as p$n,readdirSync as Jkt,readFileSync as Xkt,renameSync as h$n,rmSync as m$n,writeFileSync as g$n}from"node:fs";import{join as kx}from"node:path";function y$n(e){let t=e.match(/^(\d+)-/);return t?Number.parseInt(t[1],10):null}function Qkt(e,t){let n=[],r=["",...t];for(let i of r){let s=lo(e,i);if(!p$n(s))continue;let o;try{o=Jkt(s)}catch{continue}let a=o.filter(d=>d.endsWith(".md")),c=new Map;for(let d of a){let f=y$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,H6.default)(Xkt(kx(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";H6=Re(Kt(),1);ze()});import{existsSync as iU,readdirSync as b$n,rmSync as eIt,statSync as nIt}from"node:fs";import{join as q6}from"node:path";function tIt(e){if(iU(e))try{nIt(e).isDirectory()?eIt(e,{recursive:!0,force:!0}):eIt(e,{force:!0})}catch{}}function rIt(e){let t=0,n=new Set;for(let i of E$n){let s=q6(e,i);iU(s)&&n.add(s),tIt(s)}let r=q6(e,"stages");if(iU(r)){let i=[];try{i=b$n(r)}catch{i=[]}for(let s of i){let o=q6(r,s),a=!1;try{a=nIt(o).isDirectory()}catch{continue}if(a)for(let c of _$n){let u=q6(o,c);iU(u)&&n.add(u),tIt(u)}}}for(let i of n)iU(i)||t++;return t}var E$n,_$n,iIt=v(()=>{"use strict";E$n=["drift-markers.json"],_$n=["baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","gate-session.json"]});import{existsSync as zv,readdirSync as B6,readFileSync as oIt,writeFileSync as T$n}from"node:fs";import{join as Jb}from"node:path";function v$n(e){if(!zv(e))return null;try{let t=oIt(e,"utf8"),n=(0,z6.default)(t);return{data:JSON.parse(JSON.stringify(n.data)),body:n.content}}catch{return null}}function R$n(e,t,n){T$n(e,z6.default.stringify(n,t))}function A$n(e,t){let n=Jb(e,"stages",t);if(!zv(n))return!1;let r=Jb(n,"units");if(zv(r)&&B6(r,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||zv(Jb(n,"elaboration.md")))return!0;let i=Jb(n,"feedback");return!!(zv(i)&&B6(i,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||B6(n,{withFileTypes:!0}).some(o=>o.isFile()&&o.name.endsWith(".md")))}function aIt(e){let t=e.iterations;return Array.isArray(t)?t:[]}function w$n(e,t){let n=aIt(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 cIt(e,t,n){let r={stagesRepaired:[],unitsTouched:0,reviewsAdded:0,approvalsAdded:0},i=Jb(e,"intent.md");if(!zv(i))return r;let s={};try{s=(0,z6.default)(oIt(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(_=>Jb(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=k$n(t,c),y=[],b=!0;for(let _ of d){let T=v$n(_);if(!T){Ke("haiku.self_repair.unit_unreadable",{stage:c,path:_}),b=!1;break}y.push({path:_,data:T.data,body:T.body}),w$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:sIt},r.reviewsAdded++,C=!0);for(let L of m)N[L]==null&&(N[L]={at:k,migrated:!0,synthesized_reason:sIt},r.approvalsAdded++,C=!0);C&&(T.reviews=P,T.approvals=N,R$n(_,T,R),r.unitsTouched++,E=!0)}E&&r.stagesRepaired.push(c)}return r}function k$n(e,t){try{return Es(e,t)||[]}catch{return[]}}var z6,sIt,uIt=v(()=>{"use strict";z6=Re(Kt(),1);Kn();vo();ji();sIt="pre-tick-self-repair: later stage has on-disk work"});import{existsSync as G6,readdirSync as lIt,readFileSync as dIt}from"node:fs";import{join as V6}from"node:path";function fIt(e,t){let n=[];try{if(!ppe())return{reset:n};let r=ce(e),i=ai(e,t,r);if(!i)return{reset:n};let s=V6(r,"stages",i,"units");if(!G6(s))return{reset:n};let o=Es(t,i),a=o[o.length-1]??"";for(let c of lIt(s).filter(u=>u.endsWith(".md"))){let u=V6(s,c),l;try{l=re(dIt(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(G6(yb(e,h)))continue;let{local:m,remote:g}=fpe(e,h);m||g||(Array.isArray(l.outputs)?l.outputs.filter(b=>typeof b=="string"&&b.length>0):[]).some(b=>Kh(e,h,b))||(Ne(u,"iterations",[]),Ne(u,"started_at",null),n.push(h))}}catch{}return{reset:n}}function pIt(e,t){let n=[];try{let r=ce(e),i=ai(e,t,r);if(!i)return{cleared:n};let s=V6(r,"stages",i,"units");if(!G6(s))return{cleared:n};let o=Ee(),a=Date.now();for(let c of lIt(s).filter(u=>u.endsWith(".md"))){let u=V6(s,c),l;try{l=re(dIt(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&&!G6(yb(e,h)),g=a-Date.parse(p),y=Number.isFinite(g)&&g>I$n;!m&&!y||(f.dispatched_at=null,Ne(u,"iterations",d),n.push(h))}}catch{}return{cleared:n}}var I$n,hIt=v(()=>{"use strict";ar();ze();ji();Oa();I$n=Number.parseInt(process.env.HAIKU_UNIT_LEASE_TTL_MS??"",10)||45*6e4});import{existsSync as x$n,readdirSync as O$n,readFileSync as P$n,writeFileSync as N$n}from"node:fs";import{join as n_e}from"node:path";function mIt(e,t){let n=[],r=[],i=[];for(let s of t){let o=n_e(cr(e,s),"units");if(!x$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=O$n(o).filter(u=>u.endsWith(".md"))}catch{continue}for(let u of c){let l=u.replace(/\.md$/,""),d;try{d=(0,r_e.default)(P$n(n_e(o,u),"utf8"))}catch{continue}let f=Array.isArray(d.data.outputs)?d.data.outputs.filter(g=>typeof g=="string"):[];if(f.length===0)continue;let p=[],h=[],m=!1;for(let g of f){if(Kh(e,l,g)){p.push(g);continue}let y=_Z(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{N$n(n_e(o,u),r_e.default.stringify(d.content,{...d.data,outputs:p}))}catch{}for(let g of h){let y=`missing-output:${l}:${g}`;if(a.has(y)){i.push(`${l}:${g}`);continue}let 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 r_e,gIt=v(()=>{"use strict";r_e=Re(Kt(),1);ze()});import{existsSync as C$n,readdirSync as M$n,readFileSync as D$n}from"node:fs";import{join as yIt}from"node:path";function bIt(e,t,n){let r=[],i=[],s=ai(e,n,t);if(!s)return{filed:r,skipped:i};let o=yIt(cr(e,s),"units");if(!C$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=M$n(o).filter(u=>u.endsWith(".md"))}catch{return{filed:r,skipped:i}}for(let u of c){let l;try{l=(0,SIt.default)(D$n(yIt(o,u),"utf8")).data}catch{continue}let f=(Array.isArray(l.inputs)?l.inputs:[]).filter(g=>typeof g=="string"&&L$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 SIt,L$n,EIt=v(()=>{"use strict";SIt=Re(Kt(),1);ze();Oa();L$n=/^unit-\d+-/});import{randomBytes as U$n}from"node:crypto";import{existsSync as _It,readFileSync as F$n,unlinkSync as j$n,writeFileSync as H$n}from"node:fs";import{join as q$n}from"node:path";function TIt(e,t){let n=t??ve();return q$n(n,"intents",e,".verifier-nonces.json")}function i_e(e){switch(e.kind){case"intent_elaborate":return"intent.elaborate";case"stage_elaborate":return`stages/${e.stage}/elaborate`;case"stage_decompose":return`stages/${e.stage}/decompose`}}function s_e(e){let t=TIt(e);if(!_It(t))return{};try{let n=F$n(t,"utf8"),r=JSON.parse(n);return!r||typeof r!="object"||Array.isArray(r)?{}:r}catch{return{}}}function o_e(e,t){let n=TIt(e);if(Object.keys(t).length===0){if(_It(n))try{j$n(n)}catch{}return}H$n(n,`${JSON.stringify(t,null,2)} +`)}function W6(e,t){let n=s_e(e.slug),r=i_e(e),i=n[r];if(i&&i.tied_to===t)return i.nonce;let s=U$n(16).toString("hex");return n[r]={nonce:s,tied_to:t},o_e(e.slug,n),s}function Ix(e,t){if(!t||t.length===0)return{ok:!1,reason:"missing"};let n=s_e(e.slug),r=i_e(e),i=n[r];return i?i.nonce!==t?{ok:!1,reason:"mismatch"}:(delete n[r],o_e(e.slug,n),{ok:!0}):{ok:!1,reason:"missing"}}function a_e(e){let t=s_e(e.slug),n=i_e(e);t[n]&&(delete t[n],o_e(e.slug,t))}var xx=v(()=>{"use strict";ze()});import{existsSync as AIt,readFileSync as wIt}from"node:fs";import{join as kIt}from"node:path";function u_e(e,t){let n;try{n=ce(e)}catch{return null}let r=kIt(n,"intent.md");if(!AIt(r))return null;let i=vS(),s=Number(i.split(".")[0]??"0"),o=vIt(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&&e3(n);if(p>s)Ke("haiku.migrate.skipped_no_regress",{intent:e,source:f,target:i});else if(p0){gSe(`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.`),Gv(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)}),Gv(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.`}})}}}rIt(n),ASt(),TTt();let a=o.studio||"";if(!a)return Gv(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 Gv(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 Gv(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=cIt(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=fIt(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=pIt(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=Ykt(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=Qkt(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=bIt(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=mIt(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=Gkt(e,a);if(f.action)return Gv(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?B$n(e,l.action):null;return Gv(e,{position:l,action:d})}function IIt(e,t){let n=u_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 vIt(e){let t=wIt(e,"utf8");return(0,c_e.default)(t).data}function B$n(e,t){let n={...t,action:t.kind,intent:e};if(t.kind==="elaborate_loop"){let r=z$n(e,t);Object.keys(r).length>0&&(n.verifier_nonces=r)}return n}function z$n(e,t){let n={};for(let r of t.signals_unmet)if(r.signal==="verify_conversation")if(t.stage){let i=RIt(e,t.stage);n.verify_conversation=W6({kind:"stage_elaborate",slug:e,stage:t.stage},i)}else n.verify_conversation=W6({kind:"intent_elaborate",slug:e},null);else if(r.signal==="verify_decompose"&&t.stage){let i=RIt(e,t.stage);n.verify_decompose=W6({kind:"stage_decompose",slug:e,stage:t.stage},i)}return n}function RIt(e,t){let n=kIt(ce(e),"stages",t,"elaboration.md");if(!AIt(n))return null;try{let r=wIt(n,"utf8"),s=(0,c_e.default)(r).data.recorded_at;return typeof s=="string"&&s.length>0?s:null}catch{return null}}function Gv(e,t){let n=Hkt(e,t.action),r=t;if(n!==null){let i=qkt(e,n);r={position:t.position,action:i}}return r.action&&Kd(e,{type:"tick_committed",action:r.action.action??"unknown"}),Fkt(e,r.action),xkt(e,r.position.action),r}var c_e,l_e=v(()=>{"use strict";c_e=Re(Kt(),1);hx();ze();vo();p_();Nh();t3();bkt();Ekt();_kt();Tkt();Akt();wkt();H1();XEe();o1();t3();ji();Oa();Bkt();Vkt();Zkt();$kt();iIt();uIt();hIt();gIt();EIt();xx()});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 Gi=v(()=>{"use strict"});function xn(e,t){return`${G$n} ${e} -${t}`}var z$n,Vv=v(()=>{"use strict";z$n="**ANNOUNCE TO USER (post in chat now):**"});function kIt(e){return e.includes("Review timeout")||e.includes("Session timeout")||e.includes("timeout")||e.includes("Timeout")}function IIt(e){return e.includes("lost presence")}function xIt(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 OIt(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 PIt=v(()=>{"use strict"});function ye(e){return{content:[{type:"text",text:e}]}}var vs=v(()=>{"use strict"});function G$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 V$n(e,t){return t.promptsAsSlashCommands?e:e.replace(/\/haiku:(\w[\w-]*)/g,(n,r)=>WN(r))}function W$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 K$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 Y$n(e,t){return t.hooks?e:e.replace(/\bpermission_mode\b[^\n]*/g,"")}function Z$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 W6(e){let t=Mi();if(oh())return e;let n=e;return n=G$n(n,t),n=V$n(n,t),n=W$n(n,t),n=K$n(n,t),n=Y$n(n,t),n=Z$n(n,t),n}var u_e=v(()=>{"use strict";_f()});function NIt(e,t,n){Ox(n);let r=sU(e,t,n,ce(e)),i=W6(r),{tell_user:s,next_step:o,...a}=n;return`${JSON.stringify(a,null,2)} +${t}`}var G$n,Vv=v(()=>{"use strict";G$n="**ANNOUNCE TO USER (post in chat now):**"});function xIt(e){return e.includes("Review timeout")||e.includes("Session timeout")||e.includes("timeout")||e.includes("Timeout")}function OIt(e){return e.includes("lost presence")}function PIt(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 NIt(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 CIt=v(()=>{"use strict"});function ye(e){return{content:[{type:"text",text:e}]}}var vs=v(()=>{"use strict"});function V$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 W$n(e,t){return t.promptsAsSlashCommands?e:e.replace(/\/haiku:(\w[\w-]*)/g,(n,r)=>WN(r))}function K$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 Y$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 Z$n(e,t){return t.hooks?e:e.replace(/\bpermission_mode\b[^\n]*/g,"")}function J$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 K6(e){let t=Mi();if(oh())return e;let n=e;return n=V$n(n,t),n=W$n(n,t),n=K$n(n,t),n=Y$n(n,t),n=Z$n(n,t),n=J$n(n,t),n}var d_e=v(()=>{"use strict";_f()});function MIt(e,t,n){Ox(n);let r=sU(e,t,n,ce(e)),i=K6(r),{tell_user:s,next_step:o,...a}=n;return`${JSON.stringify(a,null,2)} --- -${i}`}var CIt=v(()=>{"use strict";u_e();Yd();ze()});import{existsSync as MIt,mkdirSync as J$n,readdirSync as X$n,readFileSync as Q$n,writeFileSync as $$n}from"node:fs";import{join as Fl}from"node:path";function aU(e){if(!MIt(e))return{};let t=Q$n(e,"utf8"),{data:n}=re(t);return n}function oU(e,t,n){let r=ce(e),i=Fl(r,"intent.md");if(t==="intent_completion"||t==="intent_review"){let u=aU(i),l=u.approvals&&typeof u.approvals=="object"?u.approvals:{};l.user=Cl(i),Ne(i,"approvals",l);return}let s=t==="elaborate_to_execute",o=s?"reviews":"approvals",a=Fl(r,"stages",n,"units");if(!MIt(a))return;let c=X$n(a);for(let u of c){if(!u.endsWith(".md"))continue;let l=Fl(a,u),d=aU(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=zd();Ne(l,o,f)}}var eer,DIt,LIt=v(()=>{"use strict";ar();Xf();Yd();sh();p1();$c();Hi();uo();uZ();ze();Gi();Vv();PIt();vs();CIt();eer=(e,t)=>{};DIt={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:m0,async handle(e,t){let n=Be(e,Xme,"haiku_await_gate");if(n)return n;let r=e,i=r.intent,s=r.state_file,o=Fl(ce(i),"intent.md"),a=aU(o),c=a.studio||"",{findCurrentStage:u}=await Promise.resolve().then(()=>(Oa(),D0)),l=c?u(i,c)??"":"",d=a.phase||"",f=!l||d==="intent_review"||d==="awaiting_completion_review"||d==="intent_completion",p=e1(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=l_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&&Bi(s,{event:"haiku_await_gate_entered",intent:i,stage:S,session_id:b,auto_open:k});let P=N=>NIt(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&&Zh(o,N)}catch{}try{let N=await A(b,{autoOpen:k,reviewUrl:x,timeoutMs:144e5,signal:t}),C=yr(i,S);if(!C.ok)return Xb(i,S,C,"after review wait");if(s&&Bi(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:xn("User signaled advance. Run the next tick \u2014 the cursor will pick up on-disk feedback / approvals / drift and emit the natural next action.","Call haiku_run_next to continue.")}));if(N.decision==="approved"){if(T==="intent_completion"){let U=aU(Fl(ce(i),"intent.md")).studio||"",M=uU(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}));oU(i,"intent_completion",S),Z6(i),Xr(i,s);let j={action:"intent_complete",intent:i,studio:U,message:xn(`The user approved final review for "${i}" \u2014 intent complete.`,"Report the completion summary to the user.")};return ye(P(j))}if(T==="intent_review"){oU(i,"intent_review",S);let U=Fl(process.cwd(),R,"intent.md");Ne(U,"intent_reviewed",!0),S&&_?cU(i,S,_):(Zh(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?xn(`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.`):xn(`The user approved intent "${i}" \u2014 beginning stage 0.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`)};return ye(P(M))}if(T==="elaborate_to_execute"&&_){oU(i,"elaborate_to_execute",S),cU(i,S,_),Xr(i,s);let U={action:"advance_phase",intent:i,stage:S,from_phase:"elaborate",to_phase:_,message:xn(`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){oU(i,"stage_gate",S),K6(i,S,E),Xr(i,s);let U={action:"advance_stage",intent:i,stage:S,next_stage:E,gate_outcome:"advanced",message:xn(`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))}oU(i,"stage_gate",S),Px(i,S,"advanced"),Xr(i,s);let F=aU(Fl(ce(i),"intent.md")).studio||"",V=Y6(i,F,xn(`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"){Px(i,S,"advanced"),Xr(i,s);let F,V=Tv(i,S);if(Ee()&&V?.url){let M=V.url,{markPullRequestReady:j}=await Promise.resolve().then(()=>(ar(),MI)),H=j(M);try{let K=Fl(ce(i),"intent.md");Ne(K,"external_review_url",M)}catch{}H.ok?(zb(i,S,"status","ready"),zb(i,S,"ready_at",mn()),F=xn(`The user routed stage "${S}" to external review. The engine flipped the stage's draft PR to ready: ${M}`,`Tell the user: "The stage PR at ${M} is ready for review \u2014 merge it when you're satisfied. Run /haiku:haiku-pickup after the merge to continue." It targets \`haiku/${i}/main\` so the engine detects the merge.`)):(console.error(`[haiku] flip-to-ready of stage PR ${M} failed: ${H.error}`),F=xn(`The user routed stage "${S}" to external review. The stage's draft PR is at ${M}.`,`The engine couldn't flip the draft to ready (${H.error??"unknown"}). Tell the user to mark ${M} ready and merge it \u2014 it targets \`haiku/${i}/main\` so the merge signal lands correctly. Run /haiku:haiku-pickup after the merge.`))}else if(Ee()){let{openStagePullRequest:M}=await Promise.resolve().then(()=>(ar(),MI)),j=M({slug:i,stage:S});if(j.createdUrl){try{let H=Fl(ce(i),"intent.md");Ne(H,"external_review_url",j.createdUrl)}catch{}F=xn(`The user routed stage "${S}" to external review. The engine opened the MR for you: ${j.createdUrl}`,`Tell the user: "I opened the MR at ${j.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 j.compareUrl?F=xn(`The user routed stage "${S}" to external review. ${j.message}`,`The engine couldn't open the MR programmatically (${j.prError??j.pushError??"no gh/glab on PATH"}). Tell the user to click ${j.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=xn(`The user routed stage "${S}" to external review.`,`${j.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=xn(`The user routed stage "${S}" to external review.`,`Submit the work for review through your project's review process. Record the review URL via haiku_run_next { intent: "${i}", external_review_url: "" }. Run /haiku:haiku-pickup again after the PR is merged.`);let U={action:"external_review_requested",intent:i,stage:S,feedback:N.feedback,message:F};return ye(P(U))}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=Fl(process.cwd(),R),q=(T==="intent_review"&&!S?!0:T==="elaborate_to_execute"||T==="intent_review"?aL(W,S):!1)||!S?[]:N6(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:xn(`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=Fl(ce(i),"intent.md");Ne(F,"completion_review_dispatched",!1),Ne(F,"completion_review_skipped",!1),eer(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:xn(`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:xn(`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:xn(`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=Fl(process.cwd(),".haiku","logs");J$n(W,{recursive:!0}),$$n(Fl(W,"gate-review-error.log"),`${new Date().toISOString()} +${i}`}var DIt=v(()=>{"use strict";d_e();Yd();ze()});import{existsSync as LIt,mkdirSync as X$n,readdirSync as Q$n,readFileSync as $$n,writeFileSync as eer}from"node:fs";import{join as Fl}from"node:path";function aU(e){if(!LIt(e))return{};let t=$$n(e,"utf8"),{data:n}=re(t);return n}function oU(e,t,n){let r=ce(e),i=Fl(r,"intent.md");if(t==="intent_completion"||t==="intent_review"){let u=aU(i),l=u.approvals&&typeof u.approvals=="object"?u.approvals:{};l.user=Cl(i),Ne(i,"approvals",l);return}let s=t==="elaborate_to_execute",o=s?"reviews":"approvals",a=Fl(r,"stages",n,"units");if(!LIt(a))return;let c=Q$n(a);for(let u of c){if(!u.endsWith(".md"))continue;let l=Fl(a,u),d=aU(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=zd();Ne(l,o,f)}}var ter,UIt,FIt=v(()=>{"use strict";ar();Xf();Yd();sh();p1();$c();Hi();uo();uZ();ze();Gi();Vv();CIt();vs();DIt();ter=(e,t)=>{};UIt={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:m0,async handle(e,t){let n=Be(e,Qme,"haiku_await_gate");if(n)return n;let r=e,i=r.intent,s=r.state_file,o=Fl(ce(i),"intent.md"),a=aU(o),c=a.studio||"",{findCurrentStage:u}=await Promise.resolve().then(()=>(Oa(),D0)),l=c?u(i,c)??"":"",d=a.phase||"",f=!l||d==="intent_review"||d==="awaiting_completion_review"||d==="intent_completion",p=e1(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=f_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&&Bi(s,{event:"haiku_await_gate_entered",intent:i,stage:S,session_id:b,auto_open:k});let P=N=>MIt(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&&Zh(o,N)}catch{}try{let N=await A(b,{autoOpen:k,reviewUrl:x,timeoutMs:144e5,signal:t}),C=yr(i,S);if(!C.ok)return Xb(i,S,C,"after review wait");if(s&&Bi(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:xn("User signaled advance. Run the next tick \u2014 the cursor will pick up on-disk feedback / approvals / drift and emit the natural next action.","Call haiku_run_next to continue.")}));if(N.decision==="approved"){if(T==="intent_completion"){let U=aU(Fl(ce(i),"intent.md")).studio||"",M=uU(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}));oU(i,"intent_completion",S),J6(i),Xr(i,s);let j={action:"intent_complete",intent:i,studio:U,message:xn(`The user approved final review for "${i}" \u2014 intent complete.`,"Report the completion summary to the user.")};return ye(P(j))}if(T==="intent_review"){oU(i,"intent_review",S);let U=Fl(process.cwd(),R,"intent.md");Ne(U,"intent_reviewed",!0),S&&_?cU(i,S,_):(Zh(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?xn(`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.`):xn(`The user approved intent "${i}" \u2014 beginning stage 0.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`)};return ye(P(M))}if(T==="elaborate_to_execute"&&_){oU(i,"elaborate_to_execute",S),cU(i,S,_),Xr(i,s);let U={action:"advance_phase",intent:i,stage:S,from_phase:"elaborate",to_phase:_,message:xn(`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){oU(i,"stage_gate",S),Y6(i,S,E),Xr(i,s);let U={action:"advance_stage",intent:i,stage:S,next_stage:E,gate_outcome:"advanced",message:xn(`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))}oU(i,"stage_gate",S),Px(i,S,"advanced"),Xr(i,s);let F=aU(Fl(ce(i),"intent.md")).studio||"",V=Z6(i,F,xn(`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"){Px(i,S,"advanced"),Xr(i,s);let F,V=Tv(i,S);if(Ee()&&V?.url){let M=V.url,{markPullRequestReady:j}=await Promise.resolve().then(()=>(ar(),MI)),H=j(M);try{let K=Fl(ce(i),"intent.md");Ne(K,"external_review_url",M)}catch{}H.ok?(zb(i,S,"status","ready"),zb(i,S,"ready_at",mn()),F=xn(`The user routed stage "${S}" to external review. The engine flipped the stage's draft PR to ready: ${M}`,`Tell the user: "The stage PR at ${M} is ready for review \u2014 merge it when you're satisfied. Run /haiku:haiku-pickup after the merge to continue." It targets \`haiku/${i}/main\` so the engine detects the merge.`)):(console.error(`[haiku] flip-to-ready of stage PR ${M} failed: ${H.error}`),F=xn(`The user routed stage "${S}" to external review. The stage's draft PR is at ${M}.`,`The engine couldn't flip the draft to ready (${H.error??"unknown"}). Tell the user to mark ${M} ready and merge it \u2014 it targets \`haiku/${i}/main\` so the merge signal lands correctly. Run /haiku:haiku-pickup after the merge.`))}else if(Ee()){let{openStagePullRequest:M}=await Promise.resolve().then(()=>(ar(),MI)),j=M({slug:i,stage:S});if(j.createdUrl){try{let H=Fl(ce(i),"intent.md");Ne(H,"external_review_url",j.createdUrl)}catch{}F=xn(`The user routed stage "${S}" to external review. The engine opened the MR for you: ${j.createdUrl}`,`Tell the user: "I opened the MR at ${j.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 j.compareUrl?F=xn(`The user routed stage "${S}" to external review. ${j.message}`,`The engine couldn't open the MR programmatically (${j.prError??j.pushError??"no gh/glab on PATH"}). Tell the user to click ${j.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=xn(`The user routed stage "${S}" to external review.`,`${j.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=xn(`The user routed stage "${S}" to external review.`,`Submit the work for review through your project's review process. Record the review URL via haiku_run_next { intent: "${i}", external_review_url: "" }. Run /haiku:haiku-pickup again after the PR is merged.`);let U={action:"external_review_requested",intent:i,stage:S,feedback:N.feedback,message:F};return ye(P(U))}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=Fl(process.cwd(),R),q=(T==="intent_review"&&!S?!0:T==="elaborate_to_execute"||T==="intent_review"?aL(W,S):!1)||!S?[]:C6(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:xn(`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=Fl(ce(i),"intent.md");Ne(F,"completion_review_dispatched",!1),Ne(F,"completion_review_skipped",!1),ter(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:xn(`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:xn(`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:xn(`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=Fl(process.cwd(),".haiku","logs");X$n(W,{recursive:!0}),eer(Fl(W,"gate-review-error.log"),`${new Date().toISOString()} intent: ${i} stage: ${S} error: ${C} ${L} --- -`,{flag:"a"})}catch{}if(C.includes("not found")||C.includes("wrong type"))return{content:[{type:"text",text:`Gate review session expired or unavailable: ${C}. Call haiku_run_next { intent: "${i}" } to recreate it.`}],isError:!0};if(kIt(C))return OIt(i);if(IIt(C)){Xr(i,s);let W=xIt(x,a,S);return ye(P({action:"gate_awaiting_client",intent:i,stage:S,review_url:W||null,message:xn(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&&Bi(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 UIt,mkdirSync as ter,readFileSync as ner,renameSync as rer,writeFileSync as ier}from"node:fs";import{dirname as ser,join as FIt}from"node:path";function jIt(e,t){let n=ve();return FIt(n,"intents",e,"stages",t,"coverage-decisions.json")}function oer(e,t){let n=jIt(e,t);if(!UIt(n))return{stage:t,decisions:[]};try{let r=JSON.parse(ner(n,"utf8"));return{stage:r.stage||t,decisions:Array.isArray(r.decisions)?r.decisions:[]}}catch{return{stage:t,decisions:[]}}}function aer(e,t,n){let r=jIt(e,t);ter(ser(r),{recursive:!0});let i=`${r}.tmp`;ier(i,`${JSON.stringify(n,null,2)} -`),rer(i,r)}function d_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var HIt,qIt=v(()=>{"use strict";ze();Gi();HIt={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 d_e("empty_rationale","`rationale` must contain at least one non-whitespace character.");if(i==="covered-by-unit"&&(!o||o.trim()===""))return d_e("unit_required","`unit` is required when decision is `covered-by-unit`.");let c=ve(),u=FIt(c,"intents",t,"stages",n);if(!UIt(u))return d_e("stage_not_found",`Stage '${n}' not found for intent '${t}'.`);let l=oer(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),aer(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 m_e(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function YIt(e){Yv=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 tm(e,t){if(t){if(nu.escapeTest.test(e))return e.replace(nu.escapeReplace,GIt)}else if(nu.escapeTestNoEncode.test(e))return e.replace(nu.escapeReplaceNoEncode,GIt);return e}function VIt(e){try{e=encodeURI(e).replace(nu.percentDecode,"%")}catch{return null}return e}function WIt(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 Wer(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 KIt(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 Ker(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(xIt(C))return NIt(i);if(OIt(C)){Xr(i,s);let W=PIt(x,a,S);return ye(P({action:"gate_awaiting_client",intent:i,stage:S,review_url:W||null,message:xn(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&&Bi(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 jIt,mkdirSync as ner,readFileSync as rer,renameSync as ier,writeFileSync as ser}from"node:fs";import{dirname as oer,join as HIt}from"node:path";function qIt(e,t){let n=ve();return HIt(n,"intents",e,"stages",t,"coverage-decisions.json")}function aer(e,t){let n=qIt(e,t);if(!jIt(n))return{stage:t,decisions:[]};try{let r=JSON.parse(rer(n,"utf8"));return{stage:r.stage||t,decisions:Array.isArray(r.decisions)?r.decisions:[]}}catch{return{stage:t,decisions:[]}}}function cer(e,t,n){let r=qIt(e,t);ner(oer(r),{recursive:!0});let i=`${r}.tmp`;ser(i,`${JSON.stringify(n,null,2)} +`),ier(i,r)}function p_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var BIt,zIt=v(()=>{"use strict";ze();Gi();BIt={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 p_e("empty_rationale","`rationale` must contain at least one non-whitespace character.");if(i==="covered-by-unit"&&(!o||o.trim()===""))return p_e("unit_required","`unit` is required when decision is `covered-by-unit`.");let c=ve(),u=HIt(c,"intents",t,"stages",n);if(!jIt(u))return p_e("stage_not_found",`Stage '${n}' not found for intent '${t}'.`);let l=aer(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),cer(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 y_e(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function JIt(e){Yv=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 tm(e,t){if(t){if(nu.escapeTest.test(e))return e.replace(nu.escapeReplace,WIt)}else if(nu.escapeTestNoEncode.test(e))return e.replace(nu.escapeReplaceNoEncode,WIt);return e}function KIt(e){try{e=encodeURI(e).replace(nu.percentDecode,"%")}catch{return null}return e}function YIt(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 Ker(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 ZIt(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 Yer(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(` `).map(s=>{let o=s.match(n.other.beginningSpace);if(o===null)return s;let[a]=o;return a.length>=i.length?s.slice(i.length):s}).join(` -`)}function Nr(e,t){return Kv.parse(e,t)}var Yv,Wv,cer,nu,uer,ler,der,pU,fer,g_e,ZIt,JIt,per,y_e,her,S_e,mer,ger,e5,b_e,yer,XIt,Ser,E_e,BIt,ber,Eer,_er,Ter,QIt,ver,Nx,t5,__e,Rer,$It,Aer,wer,ker,e0t,Ier,xer,t0t,Oer,Per,Ner,Cer,Mer,Der,Ler,Uer,Fer,jer,X6,Her,n0t,r0t,qer,zIt,T_e,Ber,f_e,zer,J6,lU,Ger,GIt,Q6,cp,$6,v_e,up,fU,Yer,Kv,t0i,n0i,r0i,i0i,s0i,o0i,a0i,i0t=v(()=>{Yv=m_e();Wv={exec:()=>null};cer=(()=>{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)}}>`)},uer=/^(?:[ \t]*(?:\n|$))+/,ler=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,der=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,pU=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,fer=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,g_e=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,ZIt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,JIt=$n(ZIt).replace(/bull/g,g_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(),per=$n(ZIt).replace(/bull/g,g_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(),y_e=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,her=/^[^\n]+/,S_e=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,mer=$n(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",S_e).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),ger=$n(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,g_e).getRegex(),e5="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",b_e=/|$))/,yer=$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",b_e).replace("tag",e5).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),XIt=$n(y_e).replace("hr",pU).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",e5).getRegex(),Ser=$n(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",XIt).getRegex(),E_e={blockquote:Ser,code:ler,def:mer,fences:der,heading:fer,hr:pU,html:yer,lheading:JIt,list:ger,newline:uer,paragraph:XIt,table:Wv,text:her},BIt=$n("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",pU).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",e5).getRegex(),ber={...E_e,lheading:per,table:BIt,paragraph:$n(y_e).replace("hr",pU).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",BIt).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",e5).getRegex()},Eer={...E_e,html:$n(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",b_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:Wv,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:$n(y_e).replace("hr",pU).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",JIt).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},_er=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Ter=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,QIt=/^( {2,}|\\)\n(?!\s*$)/,ver=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",cer?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),e0t=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Ier=$n(e0t,"u").replace(/punct/g,Nx).getRegex(),xer=$n(e0t,"u").replace(/punct/g,$It).getRegex(),t0t="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Oer=$n(t0t,"gu").replace(/notPunctSpace/g,__e).replace(/punctSpace/g,t5).replace(/punct/g,Nx).getRegex(),Per=$n(t0t,"gu").replace(/notPunctSpace/g,wer).replace(/punctSpace/g,Aer).replace(/punct/g,$It).getRegex(),Ner=$n("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,__e).replace(/punctSpace/g,t5).replace(/punct/g,Nx).getRegex(),Cer=$n(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Nx).getRegex(),Mer="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",Der=$n(Mer,"gu").replace(/notPunctSpace/g,__e).replace(/punctSpace/g,t5).replace(/punct/g,Nx).getRegex(),Ler=$n(/\\(punct)/,"gu").replace(/punct/g,Nx).getRegex(),Uer=$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(),Fer=$n(b_e).replace("(?:-->|$)","-->").getRegex(),jer=$n("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",Fer).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),X6=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Her=$n(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",X6).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),n0t=$n(/^!?\[(label)\]\[(ref)\]/).replace("label",X6).replace("ref",S_e).getRegex(),r0t=$n(/^!?\[(ref)\](?:\[\])?/).replace("ref",S_e).getRegex(),qer=$n("reflink|nolink(?!\\()","g").replace("reflink",n0t).replace("nolink",r0t).getRegex(),zIt=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,T_e={_backpedal:Wv,anyPunctuation:Ler,autolink:Uer,blockSkip:ker,br:QIt,code:Ter,del:Wv,delLDelim:Wv,delRDelim:Wv,emStrongLDelim:Ier,emStrongRDelimAst:Oer,emStrongRDelimUnd:Ner,escape:_er,link:Her,nolink:r0t,punctuation:Rer,reflink:n0t,reflinkSearch:qer,tag:jer,text:ver,url:Wv},Ber={...T_e,link:$n(/^!?\[(label)\]\((.*?)\)/).replace("label",X6).getRegex(),reflink:$n(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",X6).getRegex()},f_e={...T_e,emStrongRDelimAst:Per,emStrongLDelim:xer,delLDelim:Cer,delRDelim:Der,url:$n(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",zIt).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]*?(?:(?=[\\":">",'"':""","'":"'"},GIt=e=>Ger[e];Q6=class{options;rules;lexer;constructor(e){this.options=e||Yv}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:dU(n,` -`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=Ker(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=dU(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:dU(t[0],` +`)}function Nr(e,t){return Kv.parse(e,t)}var Yv,Wv,uer,nu,ler,der,fer,pU,per,S_e,XIt,QIt,her,b_e,mer,E_e,ger,yer,t5,__e,Ser,$It,ber,T_e,GIt,Eer,_er,Ter,ver,e0t,Rer,Nx,n5,v_e,Aer,t0t,wer,ker,Ier,n0t,xer,Oer,r0t,Per,Ner,Cer,Mer,Der,Ler,Uer,Fer,jer,Her,Q6,qer,i0t,s0t,Ber,VIt,R_e,zer,h_e,Ger,X6,lU,Ver,WIt,$6,cp,e5,A_e,up,fU,Zer,Kv,r0i,i0i,s0i,o0i,a0i,c0i,u0i,o0t=v(()=>{Yv=y_e();Wv={exec:()=>null};uer=(()=>{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)}}>`)},ler=/^(?:[ \t]*(?:\n|$))+/,der=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,fer=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,pU=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,per=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,S_e=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,XIt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,QIt=$n(XIt).replace(/bull/g,S_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(),her=$n(XIt).replace(/bull/g,S_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(),b_e=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,mer=/^[^\n]+/,E_e=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,ger=$n(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",E_e).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),yer=$n(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,S_e).getRegex(),t5="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",__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",__e).replace("tag",t5).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),$It=$n(b_e).replace("hr",pU).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",t5).getRegex(),ber=$n(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",$It).getRegex(),T_e={blockquote:ber,code:der,def:ger,fences:fer,heading:per,hr:pU,html:Ser,lheading:QIt,list:yer,newline:ler,paragraph:$It,table:Wv,text:mer},GIt=$n("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",pU).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",t5).getRegex(),Eer={...T_e,lheading:her,table:GIt,paragraph:$n(b_e).replace("hr",pU).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",GIt).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",t5).getRegex()},_er={...T_e,html:$n(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",__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:Wv,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:$n(b_e).replace("hr",pU).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",QIt).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Ter=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,ver=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,e0t=/^( {2,}|\\)\n(?!\s*$)/,Rer=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",uer?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),n0t=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,xer=$n(n0t,"u").replace(/punct/g,Nx).getRegex(),Oer=$n(n0t,"u").replace(/punct/g,t0t).getRegex(),r0t="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Per=$n(r0t,"gu").replace(/notPunctSpace/g,v_e).replace(/punctSpace/g,n5).replace(/punct/g,Nx).getRegex(),Ner=$n(r0t,"gu").replace(/notPunctSpace/g,ker).replace(/punctSpace/g,wer).replace(/punct/g,t0t).getRegex(),Cer=$n("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,v_e).replace(/punctSpace/g,n5).replace(/punct/g,Nx).getRegex(),Mer=$n(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Nx).getRegex(),Der="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",Ler=$n(Der,"gu").replace(/notPunctSpace/g,v_e).replace(/punctSpace/g,n5).replace(/punct/g,Nx).getRegex(),Uer=$n(/\\(punct)/,"gu").replace(/punct/g,Nx).getRegex(),Fer=$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(),jer=$n(__e).replace("(?:-->|$)","-->").getRegex(),Her=$n("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",jer).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Q6=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,qer=$n(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",Q6).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),i0t=$n(/^!?\[(label)\]\[(ref)\]/).replace("label",Q6).replace("ref",E_e).getRegex(),s0t=$n(/^!?\[(ref)\](?:\[\])?/).replace("ref",E_e).getRegex(),Ber=$n("reflink|nolink(?!\\()","g").replace("reflink",i0t).replace("nolink",s0t).getRegex(),VIt=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,R_e={_backpedal:Wv,anyPunctuation:Uer,autolink:Fer,blockSkip:Ier,br:e0t,code:ver,del:Wv,delLDelim:Wv,delRDelim:Wv,emStrongLDelim:xer,emStrongRDelimAst:Per,emStrongRDelimUnd:Cer,escape:Ter,link:qer,nolink:s0t,punctuation:Aer,reflink:i0t,reflinkSearch:Ber,tag:Her,text:Rer,url:Wv},zer={...R_e,link:$n(/^!?\[(label)\]\((.*?)\)/).replace("label",Q6).getRegex(),reflink:$n(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Q6).getRegex()},h_e={...R_e,emStrongRDelimAst:Ner,emStrongLDelim:Oer,delLDelim:Mer,delRDelim:Ler,url:$n(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",VIt).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]*?(?:(?=[\\":">",'"':""","'":"'"},WIt=e=>Ver[e];$6=class{options;rules;lexer;constructor(e){this.options=e||Yv}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:dU(n,` +`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=Yer(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=dU(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:dU(t[0],` `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=dU(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=Wer(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=Ker(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),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=WIt(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=dU(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=Ver(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)),KIt(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 KIt(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 p_e{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Yv,this.options.tokenizer=this.options.tokenizer||new Q6,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:J6.normal,inline:lU.normal};this.options.pedantic?(n.block=J6.pedantic,n.inline=lU.pedantic):this.options.gfm&&(n.block=J6.gfm,this.options.breaks?n.inline=lU.breaks:n.inline=lU.gfm),this.tokenizer.rules=n}static get rules(){return{block:J6,inline:lU}}static lex(t,n){return new p_e(n).lex(t)}static lexInline(t,n){return new p_e(n).inlineTokens(t)}lex(t){t=t.replace(nu.carriageReturn,` +`,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=YIt(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=dU(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=Wer(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)),ZIt(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 ZIt(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 m_e{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Yv,this.options.tokenizer=this.options.tokenizer||new $6,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:X6.normal,inline:lU.normal};this.options.pedantic?(n.block=X6.pedantic,n.inline=lU.pedantic):this.options.gfm&&(n.block=X6.gfm,this.options.breaks?n.inline=lU.breaks:n.inline=lU.gfm),this.tokenizer.rules=n}static get rules(){return{block:X6,inline:lU}}static lex(t,n){return new m_e(n).lex(t)}static lexInline(t,n){return new m_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(` `)?"":` @@ -1223,7 +1223,7 @@ ${l}`:l;let d=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTo `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):n.push(i),r=s.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length);let o=n.at(-1);o?.type==="text"?(o.raw+=(o.raw.endsWith(` `)?"":` `)+i.raw,o.text+=` -`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):n.push(i);continue}if(t){let o="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(o);break}else throw new Error(o)}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){this.tokenizer.lexer=this;let r=t,i=null;if(this.tokens.links){let c=Object.keys(this.tokens.links);if(c.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(r))!==null;)c.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(r=r.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(r))!==null;)r=r.slice(0,i.index)+"++"+r.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let s;for(;(i=this.tokenizer.rules.inline.blockSkip.exec(r))!==null;)s=i[2]?i[2].length:0,r=r.slice(0,i.index+s)+"["+"a".repeat(i[0].length-s-2)+"]"+r.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);r=this.options.hooks?.emStrongMask?.call({lexer:this},r)??r;let o=!1,a="";for(;t;){o||(a=""),o=!1;let c;if(this.options.extensions?.inline?.some(l=>(c=l.call({lexer:this},t,n))?(t=t.substring(c.raw.length),n.push(c),!0):!1))continue;if(c=this.tokenizer.escape(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.tag(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.link(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(c.raw.length);let l=n.at(-1);c.type==="text"&&l?.type==="text"?(l.raw+=c.raw,l.text+=c.text):n.push(c);continue}if(c=this.tokenizer.emStrong(t,r,a)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.codespan(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.br(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.del(t,r,a)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.autolink(t)){t=t.substring(c.raw.length),n.push(c);continue}if(!this.state.inLink&&(c=this.tokenizer.url(t))){t=t.substring(c.raw.length),n.push(c);continue}let u=t;if(this.options.extensions?.startInline){let l=1/0,d=t.slice(1),f;this.options.extensions.startInline.forEach(p=>{f=p.call({lexer:this},d),typeof f=="number"&&f>=0&&(l=Math.min(l,f))}),l<1/0&&l>=0&&(u=t.substring(0,l+1))}if(c=this.tokenizer.inlineText(u)){t=t.substring(c.raw.length),c.raw.slice(-1)!=="_"&&(a=c.raw.slice(-1)),o=!0;let l=n.at(-1);l?.type==="text"?(l.raw+=c.raw,l.text+=c.text):n.push(c);continue}if(t){let l="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return n}},$6=class{options;parser;constructor(e){this.options=e||Yv}space(e){return""}code({text:e,lang:t,escaped:n}){let r=(t||"").match(nu.notSpaceStart)?.[0],i=e.replace(nu.endingNewline,"")+` +`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):n.push(i);continue}if(t){let o="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(o);break}else throw new Error(o)}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){this.tokenizer.lexer=this;let r=t,i=null;if(this.tokens.links){let c=Object.keys(this.tokens.links);if(c.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(r))!==null;)c.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(r=r.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(r))!==null;)r=r.slice(0,i.index)+"++"+r.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let s;for(;(i=this.tokenizer.rules.inline.blockSkip.exec(r))!==null;)s=i[2]?i[2].length:0,r=r.slice(0,i.index+s)+"["+"a".repeat(i[0].length-s-2)+"]"+r.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);r=this.options.hooks?.emStrongMask?.call({lexer:this},r)??r;let o=!1,a="";for(;t;){o||(a=""),o=!1;let c;if(this.options.extensions?.inline?.some(l=>(c=l.call({lexer:this},t,n))?(t=t.substring(c.raw.length),n.push(c),!0):!1))continue;if(c=this.tokenizer.escape(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.tag(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.link(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(c.raw.length);let l=n.at(-1);c.type==="text"&&l?.type==="text"?(l.raw+=c.raw,l.text+=c.text):n.push(c);continue}if(c=this.tokenizer.emStrong(t,r,a)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.codespan(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.br(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.del(t,r,a)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.autolink(t)){t=t.substring(c.raw.length),n.push(c);continue}if(!this.state.inLink&&(c=this.tokenizer.url(t))){t=t.substring(c.raw.length),n.push(c);continue}let u=t;if(this.options.extensions?.startInline){let l=1/0,d=t.slice(1),f;this.options.extensions.startInline.forEach(p=>{f=p.call({lexer:this},d),typeof f=="number"&&f>=0&&(l=Math.min(l,f))}),l<1/0&&l>=0&&(u=t.substring(0,l+1))}if(c=this.tokenizer.inlineText(u)){t=t.substring(c.raw.length),c.raw.slice(-1)!=="_"&&(a=c.raw.slice(-1)),o=!0;let l=n.at(-1);l?.type==="text"?(l.raw+=c.raw,l.text+=c.text):n.push(c);continue}if(t){let l="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return n}},e5=class{options;parser;constructor(e){this.options=e||Yv}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:tm(i,!0))+`
`:"
"+(n?i:tm(i,!0))+`
`}blockquote({tokens:e}){return`
@@ -1241,35 +1241,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`${tm(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=VIt(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=VIt(e);if(i===null)return tm(n);e=i;let s=`${tm(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 $6(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 Q6(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 fU;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];fU.passThroughHooks.has(s)?i[o]=u=>{if(this.defaults.async&&fU.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:

"+tm(n.message+"",!0)+"
";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}},Kv=new Yer;Nr.options=Nr.setOptions=function(e){return Kv.setOptions(e),Nr.defaults=Kv.defaults,YIt(Nr.defaults),Nr};Nr.getDefaults=m_e;Nr.defaults=Yv;Nr.use=function(...e){return Kv.use(...e),Nr.defaults=Kv.defaults,YIt(Nr.defaults),Nr};Nr.walkTokens=function(e,t){return Kv.walkTokens(e,t)};Nr.parseInline=Kv.parseInline;Nr.Parser=up;Nr.parser=up.parse;Nr.Renderer=$6;Nr.TextRenderer=v_e;Nr.Lexer=cp;Nr.lexer=cp.lex;Nr.Tokenizer=Q6;Nr.Hooks=fU;Nr.parse=Nr;t0i=Nr.options,n0i=Nr.setOptions,r0i=Nr.use,i0i=Nr.walkTokens,s0i=Nr.parseInline,o0i=up.parse,a0i=cp.lex});function n5(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`${tm(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=KIt(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=KIt(e);if(i===null)return tm(n);e=i;let s=`${tm(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 e5(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 $6(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 fU;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];fU.passThroughHooks.has(s)?i[o]=u=>{if(this.defaults.async&&fU.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:

"+tm(n.message+"",!0)+"
";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}},Kv=new Zer;Nr.options=Nr.setOptions=function(e){return Kv.setOptions(e),Nr.defaults=Kv.defaults,JIt(Nr.defaults),Nr};Nr.getDefaults=y_e;Nr.defaults=Yv;Nr.use=function(...e){return Kv.use(...e),Nr.defaults=Kv.defaults,JIt(Nr.defaults),Nr};Nr.walkTokens=function(e,t){return Kv.walkTokens(e,t)};Nr.parseInline=Kv.parseInline;Nr.Parser=up;Nr.parser=up.parse;Nr.Renderer=e5;Nr.TextRenderer=A_e;Nr.Lexer=cp;Nr.lexer=cp.lex;Nr.Tokenizer=$6;Nr.Hooks=fU;Nr.parse=Nr;r0i=Nr.options,i0i=Nr.setOptions,s0i=Nr.use,o0i=Nr.walkTokens,a0i=Nr.parseInline,c0i=up.parse,u0i=cp.lex});function r5(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 r5(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 R_e=v(()=>{"use strict";i0t()});import{existsSync as Zer}from"node:fs";import{readdir as Zu,readFile as lp}from"node:fs/promises";import{basename as hU,join as wi,relative as s0t,resolve as i5}from"node:path";function A_e(e,t){try{return(0,Qb.default)(e)}catch(n){if(!hI(n))throw n;let{text:r,removed:i}=hg(e);if(i.length===0)throw n;let s=(0,Qb.default)(r);return console.warn(`[haiku] Recovered duplicate YAML keys in ${t}: kept last occurrence of ${i.join(", ")}`),s}}function o0t(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 a0t(e){let t=e.match(/^# (.+)$/m);return t?t[1].trim():""}function c0t(e){return e.replace(/^# .+$/m,"").trim()}async function mU(e){try{let t=wi(e,"intent.md"),n=await lp(t,"utf-8"),{data:r,content:i}=A_e(n,t),s=o0t(r),o=a0t(i),a=c0t(i),c=n5(a);return{slug:hU(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 u0t(e){try{let t=await lp(e,"utf-8"),{data:n,content:r}=A_e(t,e),i=o0t(n),s=a0t(r),o=c0t(r),a=n5(o),c=hU(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 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,"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 u0t(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 a5(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 Jer(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 Jer(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,Qb.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 c5(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,Qb.default)(s);t.push({name:i.replace(/\.md$/,""),content:o})}catch{}}catch{}return t}async function u5(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,Qb.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,Qb.default)(d);t.push({stage:i.name,name:`${a}/${l.name.replace(/\.md$/,"")}`,content:f})}catch{}}catch{}}catch{}}catch{}return t}async function l0t(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 l0t(i)):t.push(i)}return t}async function s5(e,t,n,r){let i=hU(e),s=i.substring(i.lastIndexOf(".")).toLowerCase();if(s===".md")try{let o=await lp(e,"utf-8"),{content:a}=(0,Qb.default)(o);return{stage:t,name:n,type:"markdown",content:a}}catch{return null}if(Qer.includes(s))try{let o=await lp(e,"utf-8"),a=await i6(o,e,sTt(e,r));return{stage:t,name:n,type:"html",content:a,relativePath:r}}catch{return null}if(Xer.includes(s))return{stage:t,name:n,type:"image",relativePath:r};if($er.includes(s))return{stage:t,name:n,type:"video",relativePath:r};if(ttr.includes(s))try{let o=await lp(e,"utf-8");return{stage:t,name:n,type:"code",language:etr[s],content:o,relativePath:r}}catch{}try{let o=await lp(e);if(ntr(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 ntr(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 gU(e,t){let r=`.haiku/intents/${hU(t)}/`;return e.startsWith(r)?e.slice(r.length):e}async function itr(e){let t=[],n=i5(e),r=`${n}/`,i=n.indexOf("/.haiku/"),s=i>=0?n.slice(0,i):i5(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()&&rtr.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=A_e(m,p).data.outputs;h=Array.isArray(y)?y.filter(b=>typeof b=="string"):[]}catch{continue}for(let m of h){if(JL.has(hU(m)))continue;let g=gU(m,e),y=i5(n,g),b=y!==n&&y.startsWith(r),S=y,E=s0t(n,y),_=E;if(!(b&&Zer(y))){let R=i5(s,m);if(R!==s&&R.startsWith(o))S=R,E=m,_=void 0;else if(!b)continue}let T=await s5(S,u,E,_??E);T&&(_===void 0&&(T.relativePath=void 0),t.push({absPath:S,artifact:T}))}}}return t}async function d0t(e,t=""){let n=[],r;try{r=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&iSt.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 d0t(o,s)):i.isFile()&&n.push({absPath:o,relFromStage:s})}return n}async function l5(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 l0t(c)).sort();for(let l of u){let d=s0t(c,l),f=d,p=`stages/${a}/artifacts/${d}`,h=await s5(l,a,f,p);h&&(t.push(h),r.add(l))}}}catch{}for(let{absPath:s,artifact:o}of await itr(e))r.has(s)||(t.push(o),r.add(s));for(let s of i){let o=wi(e,"stages",s),a=await d0t(o);a.sort((c,u)=>c.relFromStage.localeCompare(u.relFromStage));for(let{absPath:c,relFromStage:u}of a){if(r.has(c)||otr.has(u))continue;let l=u,d=`stages/${s}/${u}`,f=await s5(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 d5(e){let t=[],n=await f0t(e);n.sort((r,i)=>r.relFromRoot.localeCompare(i.relFromRoot));for(let{absPath:r,relFromRoot:i}of n){let s=await s5(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 f0t(e,t=""){let n=[],r;try{r=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&JL.has(i.name))continue;let s=t?`${t}/${i.name}`:i.name,o=wi(e,i.name);i.isDirectory()?n.push(...await f0t(o,s)):i.isFile()&&n.push({absPath:o,relFromRoot:s})}return n}var Qb,Xer,Qer,$er,etr,ttr,rtr,otr,f5=v(()=>{"use strict";xD();Qb=Re(Kt(),1);Ibe();R_e();wye();Xer=[".png",".jpg",".jpeg",".svg",".webp",".gif"],Qer=[".html",".htm"],$er=[".mp4",".webm",".mov",".m4v",".ogv"],etr={".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"},ttr=[".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"];rtr=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;otr=new Set(["BRIEF.md","elaboration.md","observations.md"])});var p0t=v(()=>{"use strict";che();R_e();f5()});function yU(e,t){let n=t.replace(/^\/+/,"");return`/stage-artifacts/${e}/${n}`}var w_e=v(()=>{"use strict"});import{readFile as h0t,stat as atr}from"node:fs/promises";import{basename as y0t,relative as ctr,resolve as m0t}from"node:path";function k_e(e){let t=y0t(e);return!!(t.startsWith(".")||ptr.has(t)||t.endsWith(".manifest")||t.includes("fs-manifest"))}async function b0t(e,t,n){if(!n||n.length===0)return[];let r=m0t(e),i=`${r}/`,s=[];for(let o of n){if(typeof o!="string"||k_e(o))continue;let a=gU(o,e),c=m0t(r,a);if(c!==r&&!c.startsWith(i))continue;let u=ctr(r,c),l=y0t(u),d=l.lastIndexOf("."),f=d>=0?l.substring(d).toLowerCase():"",p=l.replace(/\.[^.]+$/,"")||l,h=yU(t,u),m=!0,g;try{let b=await atr(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 h0t(c,"utf-8"),{content:E}=(0,S0t.default)(S);b=g0t(E,utr)}catch{}s.push({...y,type:"markdown",...b!==void 0?{previewBody:b}:{}});continue}if(ftr.has(f)){let b;if(m)try{let S=await h0t(c,"utf-8");b=g0t(S,ltr)}catch{}s.push({...y,type:"html",...b!==void 0?{previewBody:b}:{}});continue}if(dtr.has(f)){s.push({...y,type:"image"});continue}s.push({...y,type:"file"})}return s}function g0t(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 i5(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 w_e=v(()=>{"use strict";o0t()});import{existsSync as Jer}from"node:fs";import{readdir as Zu,readFile as lp}from"node:fs/promises";import{basename as hU,join as wi,relative as a0t,resolve as s5}from"node:path";function k_e(e,t){try{return(0,Qb.default)(e)}catch(n){if(!hI(n))throw n;let{text:r,removed:i}=hg(e);if(i.length===0)throw n;let s=(0,Qb.default)(r);return console.warn(`[haiku] Recovered duplicate YAML keys in ${t}: kept last occurrence of ${i.join(", ")}`),s}}function c0t(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 u0t(e){let t=e.match(/^# (.+)$/m);return t?t[1].trim():""}function l0t(e){return e.replace(/^# .+$/m,"").trim()}async function mU(e){try{let t=wi(e,"intent.md"),n=await lp(t,"utf-8"),{data:r,content:i}=k_e(n,t),s=c0t(r),o=u0t(i),a=l0t(i),c=r5(a);return{slug:hU(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 d0t(e){try{let t=await lp(e,"utf-8"),{data:n,content:r}=k_e(t,e),i=c0t(n),s=u0t(r),o=l0t(r),a=r5(o),c=hU(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 a5(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 d0t(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 c5(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 Xer(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 Xer(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,Qb.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 u5(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,Qb.default)(s);t.push({name:i.replace(/\.md$/,""),content:o})}catch{}}catch{}return t}async function l5(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,Qb.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,Qb.default)(d);t.push({stage:i.name,name:`${a}/${l.name.replace(/\.md$/,"")}`,content:f})}catch{}}catch{}}catch{}}catch{}return t}async function f0t(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 f0t(i)):t.push(i)}return t}async function o5(e,t,n,r){let i=hU(e),s=i.substring(i.lastIndexOf(".")).toLowerCase();if(s===".md")try{let o=await lp(e,"utf-8"),{content:a}=(0,Qb.default)(o);return{stage:t,name:n,type:"markdown",content:a}}catch{return null}if($er.includes(s))try{let o=await lp(e,"utf-8"),a=await i6(o,e,aTt(e,r));return{stage:t,name:n,type:"html",content:a,relativePath:r}}catch{return null}if(Qer.includes(s))return{stage:t,name:n,type:"image",relativePath:r};if(etr.includes(s))return{stage:t,name:n,type:"video",relativePath:r};if(ntr.includes(s))try{let o=await lp(e,"utf-8");return{stage:t,name:n,type:"code",language:ttr[s],content:o,relativePath:r}}catch{}try{let o=await lp(e);if(rtr(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 rtr(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 gU(e,t){let r=`.haiku/intents/${hU(t)}/`;return e.startsWith(r)?e.slice(r.length):e}async function otr(e){let t=[],n=s5(e),r=`${n}/`,i=n.indexOf("/.haiku/"),s=i>=0?n.slice(0,i):s5(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()&&itr.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=k_e(m,p).data.outputs;h=Array.isArray(y)?y.filter(b=>typeof b=="string"):[]}catch{continue}for(let m of h){if(JL.has(hU(m)))continue;let g=gU(m,e),y=s5(n,g),b=y!==n&&y.startsWith(r),S=y,E=a0t(n,y),_=E;if(!(b&&Jer(y))){let R=s5(s,m);if(R!==s&&R.startsWith(o))S=R,E=m,_=void 0;else if(!b)continue}let T=await o5(S,u,E,_??E);T&&(_===void 0&&(T.relativePath=void 0),t.push({absPath:S,artifact:T}))}}}return t}async function p0t(e,t=""){let n=[],r;try{r=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&oSt.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 p0t(o,s)):i.isFile()&&n.push({absPath:o,relFromStage:s})}return n}async function d5(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 f0t(c)).sort();for(let l of u){let d=a0t(c,l),f=d,p=`stages/${a}/artifacts/${d}`,h=await o5(l,a,f,p);h&&(t.push(h),r.add(l))}}}catch{}for(let{absPath:s,artifact:o}of await otr(e))r.has(s)||(t.push(o),r.add(s));for(let s of i){let o=wi(e,"stages",s),a=await p0t(o);a.sort((c,u)=>c.relFromStage.localeCompare(u.relFromStage));for(let{absPath:c,relFromStage:u}of a){if(r.has(c)||atr.has(u))continue;let l=u,d=`stages/${s}/${u}`,f=await o5(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 f5(e){let t=[],n=await h0t(e);n.sort((r,i)=>r.relFromRoot.localeCompare(i.relFromRoot));for(let{absPath:r,relFromRoot:i}of n){let s=await o5(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 h0t(e,t=""){let n=[],r;try{r=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&JL.has(i.name))continue;let s=t?`${t}/${i.name}`:i.name,o=wi(e,i.name);i.isDirectory()?n.push(...await h0t(o,s)):i.isFile()&&n.push({absPath:o,relFromRoot:s})}return n}var Qb,Qer,$er,etr,ttr,ntr,itr,atr,p5=v(()=>{"use strict";xD();Qb=Re(Kt(),1);xbe();w_e();kye();Qer=[".png",".jpg",".jpeg",".svg",".webp",".gif"],$er=[".html",".htm"],etr=[".mp4",".webm",".mov",".m4v",".ogv"],ttr={".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"},ntr=[".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"];itr=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;atr=new Set(["BRIEF.md","elaboration.md","observations.md"])});var m0t=v(()=>{"use strict";uhe();w_e();p5()});function yU(e,t){let n=t.replace(/^\/+/,"");return`/stage-artifacts/${e}/${n}`}var I_e=v(()=>{"use strict"});import{readFile as g0t,stat as ctr}from"node:fs/promises";import{basename as b0t,relative as utr,resolve as y0t}from"node:path";function x_e(e){let t=b0t(e);return!!(t.startsWith(".")||htr.has(t)||t.endsWith(".manifest")||t.includes("fs-manifest"))}async function _0t(e,t,n){if(!n||n.length===0)return[];let r=y0t(e),i=`${r}/`,s=[];for(let o of n){if(typeof o!="string"||x_e(o))continue;let a=gU(o,e),c=y0t(r,a);if(c!==r&&!c.startsWith(i))continue;let u=utr(r,c),l=b0t(u),d=l.lastIndexOf("."),f=d>=0?l.substring(d).toLowerCase():"",p=l.replace(/\.[^.]+$/,"")||l,h=yU(t,u),m=!0,g;try{let b=await ctr(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 g0t(c,"utf-8"),{content:E}=(0,E0t.default)(S);b=S0t(E,ltr)}catch{}s.push({...y,type:"markdown",...b!==void 0?{previewBody:b}:{}});continue}if(ptr.has(f)){let b;if(m)try{let S=await g0t(c,"utf-8");b=S0t(S,dtr)}catch{}s.push({...y,type:"html",...b!==void 0?{previewBody:b}:{}});continue}if(ftr.has(f)){s.push({...y,type:"image"});continue}s.push({...y,type:"file"})}return s}function S0t(e,t){let n=e.trim();return n.length<=t?n:`${n.slice(0,t).trimEnd()} -\u2026`}var S0t,utr,ltr,dtr,ftr,ptr,I_e=v(()=>{"use strict";S0t=Re(Kt(),1);f5();w_e();utr=2e3,ltr=2e3,dtr=new Set([".png",".jpg",".jpeg",".svg",".webp",".gif",".avif"]),ftr=new Set([".html",".htm"]),ptr=new Set(["action-log.jsonl","write-audit.jsonl","decisions.jsonl","coverage-decisions.json"])});import{readdir as E0t,readFile as htr}from"node:fs/promises";import{basename as mtr,join as x_e,relative as gtr,resolve as _0t}from"node:path";async function v0t(e){let t=_0t(e),n=`${t}/`,r={},i;try{i=await E0t(x_e(e,"stages"),{withFileTypes:!0,encoding:"utf8"})}catch{return r}for(let s of i){if(!s.isDirectory())continue;let o=x_e(e,"stages",s.name,"units"),a;try{a=(await E0t(o,{withFileTypes:!0,encoding:"utf8"})).filter(c=>c.isFile()&&ytr.test(c.name)).map(c=>c.name).sort()}catch{continue}for(let c of a){let u=x_e(o,c),l=mtr(c,".md"),d;try{let f=await htr(u,"utf-8"),p=(0,T0t.default)(f).data.outputs;d=Array.isArray(p)?p.filter(h=>typeof h=="string"):[]}catch{continue}for(let f of d){if(k_e(f))continue;let p=gU(f,e),h=_0t(t,p);if(h!==t&&!h.startsWith(n))continue;let m=gtr(t,h);r[m]||(r[m]=[]),r[m].includes(l)||r[m].push(l)}}}return r}var T0t,ytr,R0t=v(()=>{"use strict";T0t=Re(Kt(),1);f5();I_e();ytr=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/});import{spawn as Str}from"node:child_process";import{appendFileSync as btr,existsSync as O_e,mkdirSync as k0t,writeFileSync as I0t}from"node:fs";import{readFile as SU}from"node:fs/promises";import{dirname as P_e,join as nm,resolve as h5}from"node:path";async function O0t(e,t,n){let r=await Promise.all(n.map(async o=>({slug:o.slug,outputs:await b0t(e,t,o.frontmatter.outputs)}))),i={};for(let{slug:o,outputs:a}of r)a.length>0&&(i[o]=a);let s=await v0t(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.`),bTt(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=Str(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 p5(e){try{btr(Ttr,`${new Date().toISOString()} ${e} +\u2026`}var E0t,ltr,dtr,ftr,ptr,htr,O_e=v(()=>{"use strict";E0t=Re(Kt(),1);p5();I_e();ltr=2e3,dtr=2e3,ftr=new Set([".png",".jpg",".jpeg",".svg",".webp",".gif",".avif"]),ptr=new Set([".html",".htm"]),htr=new Set(["action-log.jsonl","write-audit.jsonl","decisions.jsonl","coverage-decisions.json"])});import{readdir as T0t,readFile as mtr}from"node:fs/promises";import{basename as gtr,join as P_e,relative as ytr,resolve as v0t}from"node:path";async function A0t(e){let t=v0t(e),n=`${t}/`,r={},i;try{i=await T0t(P_e(e,"stages"),{withFileTypes:!0,encoding:"utf8"})}catch{return r}for(let s of i){if(!s.isDirectory())continue;let o=P_e(e,"stages",s.name,"units"),a;try{a=(await T0t(o,{withFileTypes:!0,encoding:"utf8"})).filter(c=>c.isFile()&&Str.test(c.name)).map(c=>c.name).sort()}catch{continue}for(let c of a){let u=P_e(o,c),l=gtr(c,".md"),d;try{let f=await mtr(u,"utf-8"),p=(0,R0t.default)(f).data.outputs;d=Array.isArray(p)?p.filter(h=>typeof h=="string"):[]}catch{continue}for(let f of d){if(x_e(f))continue;let p=gU(f,e),h=v0t(t,p);if(h!==t&&!h.startsWith(n))continue;let m=ytr(t,h);r[m]||(r[m]=[]),r[m].includes(l)||r[m].push(l)}}}return r}var R0t,Str,w0t=v(()=>{"use strict";R0t=Re(Kt(),1);p5();O_e();Str=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/});import{spawn as btr}from"node:child_process";import{appendFileSync as Etr,existsSync as N_e,mkdirSync as x0t,writeFileSync as O0t}from"node:fs";import{readFile as SU}from"node:fs/promises";import{dirname as C_e,join as nm,resolve as m5}from"node:path";async function N0t(e,t,n){let r=await Promise.all(n.map(async o=>({slug:o.slug,outputs:await _0t(e,t,o.frontmatter.outputs)}))),i={};for(let{slug:o,outputs:a}of r)a.length>0&&(i[o]=a);let s=await A0t(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.`),_Tt(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=btr(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 h5(e){try{Etr(vtr,`${new Date().toISOString()} ${e} `)}catch{}process.stderr.write(`[haiku-mcp] ${e} -`)}function vtr(e,t){if(!t){p5(`bindSessionCancellation(${e}): no signal passed \u2014 cancel will not fire`);return}if(p5(`bindSessionCancellation(${e}): signal attached, aborted=${t.aborted}`),t.aborted){p5(`bindSessionCancellation(${e}): signal was already aborted, closing immediately`),Dv(e,"tool call cancelled");return}t.addEventListener("abort",()=>{p5(`abort fired for session ${e} \u2014 closing WS (reason: ${t.reason})`),Dv(e,"tool call cancelled")},{once:!0})}async function P0t(e,t){let{name:n,arguments:r}=e.params;if(bU.has(n))return M_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(!Yne())try{let u=nm(ve(),"reports");k0t(u,{recursive:!0});let l=new Date().toISOString().replace(/[:.]/g,"-"),d=nm(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 Kne(s,c,o,a),{content:[{type:"text",text:"Feedback submitted. Thank you!"}]}}if(n==="haiku_review_open"){let i=r??{},s=Be(i,wge,"haiku_review_open");if(s)return s;let o=i.intent||"";if(!o){let q=_v();if(q)o=q.slug;else{let Q=ve(),B=nm(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=ce(o),c=await mU(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(),D0)),h=u||(d?f(o,d)??"":""),m=await o5(a),g=P3(m),y=C3(g,m),b=c.sections.find(q=>q.heading?.toLowerCase().includes("completion criteria")||q.heading?.toLowerCase().includes("success criteria")),S=b?r5(b.content):[],E=KY({intent_dir:a,intent_slug:o,target:""});E.ad_hoc=!0,E.stage=h||void 0;let{unitOutputs:_,outputDeclaredBy:T}=await O0t(a,E.session_id,m);Object.assign(E,{parsedIntent:c,parsedUnits:m,parsedCriteria:S,parsedMermaid:y,unitOutputs:_,outputDeclaredBy:T});let R=await a5(a),A=await c5(a),x=await u5(a),{outputs:k,other:P}=await l5(a),N=await d5(a);for(let q of[...k,...P,...N])q.relativePath&&(q.intentRelativePath=q.relativePath,q.relativePath=yU(E.session_id,q.relativePath));Object.assign(E,{stageStates:R,knowledgeFiles:A,stageArtifacts:x,outputArtifacts:k,otherFiles:P,intentOtherFiles:N});let C=await Yb(),L=zi()?Ov(E.session_id,await Hg(C),"intent"):`http://127.0.0.1:${C}/review/${E.session_id}`,G=h?`/stages/${h}`:"",W=`${L}${G}`;vtr(E.session_id,t);let $=i.gate_kind||"";return $==="spec"||$==="approval"?(E.ad_hoc=!1,dp(W,"User gate review",E.session_id),{content:[{type:"text",text:`User-gate review opened for stage "${h||"(unspecified)"}". Review URL: ${W} +`)}function Rtr(e,t){if(!t){h5(`bindSessionCancellation(${e}): no signal passed \u2014 cancel will not fire`);return}if(h5(`bindSessionCancellation(${e}): signal attached, aborted=${t.aborted}`),t.aborted){h5(`bindSessionCancellation(${e}): signal was already aborted, closing immediately`),Dv(e,"tool call cancelled");return}t.addEventListener("abort",()=>{h5(`abort fired for session ${e} \u2014 closing WS (reason: ${t.reason})`),Dv(e,"tool call cancelled")},{once:!0})}async function C0t(e,t){let{name:n,arguments:r}=e.params;if(bU.has(n))return L_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(!Zne())try{let u=nm(ve(),"reports");x0t(u,{recursive:!0});let l=new Date().toISOString().replace(/[:.]/g,"-"),d=nm(u,`${l}.json`);return O0t(d,`${JSON.stringify({recorded_at:new Date().toISOString(),message:s,contact_email:o??null,name:a??null,session_context:c??null},null,2)} +`),{content:[{type:"text",text:`Sentry is not configured in this installation; report written locally to ${d}.`}]}}catch(u){return{content:[{type:"text",text:`Sentry is not configured and the local report sink failed: ${u instanceof Error?u.message:String(u)}`}],isError:!0}}return Yne(s,c,o,a),{content:[{type:"text",text:"Feedback submitted. Thank you!"}]}}if(n==="haiku_review_open"){let i=r??{},s=Be(i,kge,"haiku_review_open");if(s)return s;let o=i.intent||"";if(!o){let q=_v();if(q)o=q.slug;else{let Q=ve(),B=nm(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=ce(o),c=await mU(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(),D0)),h=u||(d?f(o,d)??"":""),m=await a5(a),g=P3(m),y=C3(g,m),b=c.sections.find(q=>q.heading?.toLowerCase().includes("completion criteria")||q.heading?.toLowerCase().includes("success criteria")),S=b?i5(b.content):[],E=KY({intent_dir:a,intent_slug:o,target:""});E.ad_hoc=!0,E.stage=h||void 0;let{unitOutputs:_,outputDeclaredBy:T}=await N0t(a,E.session_id,m);Object.assign(E,{parsedIntent:c,parsedUnits:m,parsedCriteria:S,parsedMermaid:y,unitOutputs:_,outputDeclaredBy:T});let R=await c5(a),A=await u5(a),x=await l5(a),{outputs:k,other:P}=await d5(a),N=await f5(a);for(let q of[...k,...P,...N])q.relativePath&&(q.intentRelativePath=q.relativePath,q.relativePath=yU(E.session_id,q.relativePath));Object.assign(E,{stageStates:R,knowledgeFiles:A,stageArtifacts:x,outputArtifacts:k,otherFiles:P,intentOtherFiles:N});let C=await Yb(),L=zi()?Ov(E.session_id,await Hg(C),"intent"):`http://127.0.0.1:${C}/review/${E.session_id}`,G=h?`/stages/${h}`:"",W=`${L}${G}`;Rtr(E.session_id,t);let $=i.gate_kind||"";return $==="spec"||$==="approval"?(E.ad_hoc=!1,dp(W,"User gate review",E.session_id),{content:[{type:"text",text:`User-gate review opened for stage "${h||"(unspecified)"}". Review URL: ${W} -Now call haiku_await_gate { intent: "${o}" } to block on the user's decision. On approve, the engine stamps ${$==="spec"?"reviews.user":"approvals.user"} on each unit and the cursor advances on the next tick.`}]}):(dp(W,"Ad-hoc review",E.session_id),{content:[{type:"text",text:`Ad-hoc review pane open at ${W} (stage "${h||"(unspecified)"}"). Non-blocking \u2014 keep working. The user browses and closes the pane with Done when finished; any feedback they leave persists to disk and the next \`haiku_run_next\` routes it through the normal fix-loop. No workflow action is required here.`}]})}if(n.startsWith("haiku_")&&!Rtr.has(n))return ASe(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=Etr.parse(r),s=i.title??"Question",o=i.context??"",a=i.questions,c=i.image_paths??[],u=c.map(h=>P_e(h5(h))),l=Nye({title:s,questions:a,context:o,imagePaths:c,imageBaseDirs:u}),d=c.map((h,m)=>`/question-image/${l.session_id}/${m}`),f=await Yb(),p;if(zi()){let h=await Hg(f);p=Ov(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 w0t(l.session_id,{url:p,signal:t})}if(n==="haiku_view"){let i=r??{},s=Be(i,Nge,"haiku_view");if(s)return s;let o=i,a=o.mode??"auto",c=o.intent;if(!c){let R=_v();if(R)c=R.slug;else{let A=ve(),x=nm(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=ce(c);if(!O_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?nm(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?nm(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=Fye(P_e(ve()))}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=bSt(o.command,d):h=ESt(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 mU(u))?.frontmatter;A&&typeof A.studio=="string"&&A.studio&&(m=A.studio)}catch{}let g=f||h?"boot":"viewer",y=Dye({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 jye(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 TSt(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");Lye(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 q0(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 Yb(),S=zi()?Ov(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,Cge,"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"?z0(o.session_id):!1,d=q0(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,Qme,"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 w0t(a,{url:u,signal:t}))}if(n==="pick_design_direction"){let i=_tr.parse(r),s=i.title??"Design Direction";try{let l=nm(ve(),"intents",i.intent_slug,"intent.md");if(O_e(l)){let d=await SU(l,"utf-8");if((re(d).data.mode||"")==="autopilot"){let p=await M0t(i.intent_slug);if(!p)return{content:[{type:"text",text:`Autopilot short-circuit for pick_design_direction failed: no discovery template with tool=pick_design_direction found for intent '${i.intent_slug}'. The cursor's discovery gate will not clear automatically \u2014 file a bug or fall back to manual handling.`}],isError:!0};let h=[];if(i.archetypes)h=i.archetypes;else if(i.archetypes_file){let y=await SU(h5(i.archetypes_file),"utf-8");h=O.array(N_e).parse(JSON.parse(y))}let m=h[0];C_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:xn(g,"Call `haiku_run_next` to continue \u2014 the cursor's discovery gate is now cleared.")}]}}}}catch(l){console.error(`[pick_design_direction] autopilot check failed: ${l instanceof Error?l.message:String(l)}. Falling through to the SPA picker.`)}let o=[];if(i.archetypes)o=i.archetypes;else if(i.archetypes_file){let l=await SU(h5(i.archetypes_file),"utf-8");o=O.array(N_e).parse(JSON.parse(l))}let a=Cye({intent_slug:i.intent_slug,archetypes:o,context:i.context??""}),c=await Yb(),u;if(zi()){let l=await Hg(c);u=Ov(a.session_id,l,"direction")}else u=`http://127.0.0.1:${c}/direction/${a.session_id}`;return dp(u,"Direction session"),await A0t(a.session_id,{url:u,intentSlug:i.intent_slug,signal:t})}if(n==="haiku_await_design_direction"){let i=r??{},s=Be(i,$me,"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 A0t(a,{url:u,intentSlug:d,signal:t})}return{content:[{type:"text",text:`Unknown tool: ${n}`}],isError:!0}}async function N0t(e,t,n){let r=h5(process.cwd(),e),i=await mU(r);if(!i)throw new Error("Could not parse intent");let s=await o5(r),o=P3(s),a=C3(o,s),c=i.sections.find(k=>k.heading?.toLowerCase().includes("completion criteria")||k.heading?.toLowerCase().includes("success criteria")),u=c?r5(c.content):[],l=e1(i.slug),d=l??KY({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=Pye(r);h&&(d.previousReview=h);let m=await a5(r),g=await c5(r),y=await u5(r),{outputs:b,other:S}=await l5(r),E=await d5(r);for(let k of[...b,...S,...E])k.relativePath&&(k.intentRelativePath=k.relativePath,k.relativePath=yU(d.session_id,k.relativePath));Object.assign(d,{stageStates:m,knowledgeFiles:g,stageArtifacts:y,outputArtifacts:b,otherFiles:S,intentOtherFiles:E});let _=await Yb(),T=zi(),R=T?Ov(d.session_id,await Hg(_),"intent"):`http://127.0.0.1:${_}/review/${d.session_id}`,A=l!==void 0,x=A&&mv(d.session_id);return Kd(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 Atr(e,t,n,r){return!(!e||!t||mv(n)||r&&t1(r))}async function C0t(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(Atr(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}),Kd(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}),Kd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!0}),Iye(e);try{for(;;){let u=!1;try{await hv(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(Oye(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{xye(e),Ml(e,{await_active:!1,last_await_ended_at:new Date().toISOString()}),Kd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!1})}}async function M0t(e){let t=nm(ve(),"intents",e,"intent.md");if(!O_e(t))return null;let n=await SU(t,"utf-8"),r=re(n).data.studio||"";if(!r)return null;let{findCurrentStage:i}=await Promise.resolve().then(()=>(Oa(),D0)),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:nm(ve(),"..",c),stage:s,templateBody:a.body}}function C_e(e){k0t(P_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,x0t.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_")&&!Atr.has(n))return wSe(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=_tr.parse(r),s=i.title??"Question",o=i.context??"",a=i.questions,c=i.image_paths??[],u=c.map(h=>C_e(m5(h))),l=Cye({title:s,questions:a,context:o,imagePaths:c,imageBaseDirs:u}),d=c.map((h,m)=>`/question-image/${l.session_id}/${m}`),f=await Yb(),p;if(zi()){let h=await Hg(f);p=Ov(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 I0t(l.session_id,{url:p,signal:t})}if(n==="haiku_view"){let i=r??{},s=Be(i,Cge,"haiku_view");if(s)return s;let o=i,a=o.mode??"auto",c=o.intent;if(!c){let R=_v();if(R)c=R.slug;else{let A=ve(),x=nm(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=ce(c);if(!N_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?nm(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?nm(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=jye(C_e(ve()))}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=_St(o.command,d):h=TSt(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 mU(u))?.frontmatter;A&&typeof A.studio=="string"&&A.studio&&(m=A.studio)}catch{}let g=f||h?"boot":"viewer",y=Lye({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 Hye(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 RSt(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");Uye(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 q0(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 Yb(),S=zi()?Ov(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,Mge,"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"?z0(o.session_id):!1,d=q0(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,$me,"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 I0t(a,{url:u,signal:t}))}if(n==="pick_design_direction"){let i=Ttr.parse(r),s=i.title??"Design Direction";try{let l=nm(ve(),"intents",i.intent_slug,"intent.md");if(N_e(l)){let d=await SU(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 y=await SU(m5(i.archetypes_file),"utf-8");h=O.array(M_e).parse(JSON.parse(y))}let m=h[0];D_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:xn(g,"Call `haiku_run_next` to continue \u2014 the cursor's discovery gate is now cleared.")}]}}}}catch(l){console.error(`[pick_design_direction] autopilot check failed: ${l instanceof Error?l.message:String(l)}. Falling through to the SPA picker.`)}let o=[];if(i.archetypes)o=i.archetypes;else if(i.archetypes_file){let l=await SU(m5(i.archetypes_file),"utf-8");o=O.array(M_e).parse(JSON.parse(l))}let a=Mye({intent_slug:i.intent_slug,archetypes:o,context:i.context??""}),c=await Yb(),u;if(zi()){let l=await Hg(c);u=Ov(a.session_id,l,"direction")}else u=`http://127.0.0.1:${c}/direction/${a.session_id}`;return dp(u,"Direction session"),await k0t(a.session_id,{url:u,intentSlug:i.intent_slug,signal:t})}if(n==="haiku_await_design_direction"){let i=r??{},s=Be(i,ege,"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 k0t(a,{url:u,intentSlug:d,signal:t})}return{content:[{type:"text",text:`Unknown tool: ${n}`}],isError:!0}}async function M0t(e,t,n){let r=m5(process.cwd(),e),i=await mU(r);if(!i)throw new Error("Could not parse intent");let s=await a5(r),o=P3(s),a=C3(o,s),c=i.sections.find(k=>k.heading?.toLowerCase().includes("completion criteria")||k.heading?.toLowerCase().includes("success criteria")),u=c?i5(c.content):[],l=e1(i.slug),d=l??KY({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 N0t(r,d.session_id,s);Object.assign(d,{parsedIntent:i,parsedUnits:s,parsedCriteria:u,parsedMermaid:a,unitOutputs:f,outputDeclaredBy:p});let h=Nye(r);h&&(d.previousReview=h);let m=await c5(r),g=await u5(r),y=await l5(r),{outputs:b,other:S}=await d5(r),E=await f5(r);for(let k of[...b,...S,...E])k.relativePath&&(k.intentRelativePath=k.relativePath,k.relativePath=yU(d.session_id,k.relativePath));Object.assign(d,{stageStates:m,knowledgeFiles:g,stageArtifacts:y,outputArtifacts:b,otherFiles:S,intentOtherFiles:E});let _=await Yb(),T=zi(),R=T?Ov(d.session_id,await Hg(_),"intent"):`http://127.0.0.1:${_}/review/${d.session_id}`,A=l!==void 0,x=A&&mv(d.session_id);return Kd(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 wtr(e,t,n,r){return!(!e||!t||mv(n)||r&&t1(r))}async function D0t(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(wtr(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}),Kd(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}),Kd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!0}),xye(e);try{for(;;){let u=!1;try{await hv(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(Pye(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{Oye(e),Ml(e,{await_active:!1,last_await_ended_at:new Date().toISOString()}),Kd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!1})}}async function L0t(e){let t=nm(ve(),"intents",e,"intent.md");if(!N_e(t))return null;let n=await SU(t,"utf-8"),r=re(n).data.studio||"";if(!r)return null;let{findCurrentStage:i}=await Promise.resolve().then(()=>(Oa(),D0)),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:nm(ve(),"..",c),stage:s,templateBody:a.body}}function D_e(e){x0t(C_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}`),O0t(e.absPath,P0t.default.stringify(`${n.join(` `)} -`,t))}async function A0t(e,t={}){let{url:n="",intentSlug:r="",signal:i,timeoutMs:s=1800*1e3}=t;try{await hv(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:xn(f,p)}]}}if(a.mode==="generate"){let l=a.comments?`The user has no existing designs and wants you to generate variants. Steering notes: ${a.comments}`:"The user has no existing designs and wants you to generate variants.";return{content:[{type:"text",text:xn(l,"Generate 2-3 distinct archetypes (HTML wireframe snippets \u2014 different layouts, interaction patterns, or visual hierarchies) and call `pick_design_direction` again with `archetypes` populated.")}]}}if(r)try{let l=await SU(nm(ve(),"intents",r,"intent.md"),"utf-8"),d=re(l).data.studio||"",{findCurrentStage:f}=await Promise.resolve().then(()=>(Oa(),D0)),p=d?f(r,d)??"":"";if(p){let h=yr(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 M0t(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{C_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:xn(d.join(` -`),"Call `haiku_run_next` to continue \u2014 the workflow will surface the upload paths so you can `Read` each file and incorporate the designs into elaboration.")}]}}if(c)try{C_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:xn(u.join(` -`),"Call `haiku_run_next` to continue \u2014 the workflow will surface any screenshot annotations the user attached.")}]}}async function w0t(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:xn("The user answered your visual question \u2014 see the `answers` field below.","Acknowledge their answer in chat and continue with whatever the answer enables.")};u.feedback&&(f.feedback=u.feedback),Object.keys(l).length>0&&(f.annotations=l);let p=[{type:"text",text:JSON.stringify(f,null,2)}],h=d?.screenshots??[];if(h.length>0){p.push({type:"text",text:` +`,t))}async function k0t(e,t={}){let{url:n="",intentSlug:r="",signal:i,timeoutMs:s=1800*1e3}=t;try{await hv(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:xn(f,p)}]}}if(a.mode==="generate"){let l=a.comments?`The user has no existing designs and wants you to generate variants. Steering notes: ${a.comments}`:"The user has no existing designs and wants you to generate variants.";return{content:[{type:"text",text:xn(l,"Generate 2-3 distinct archetypes (HTML wireframe snippets \u2014 different layouts, interaction patterns, or visual hierarchies) and call `pick_design_direction` again with `archetypes` populated.")}]}}if(r)try{let l=await SU(nm(ve(),"intents",r,"intent.md"),"utf-8"),d=re(l).data.studio||"",{findCurrentStage:f}=await Promise.resolve().then(()=>(Oa(),D0)),p=d?f(r,d)??"":"";if(p){let h=yr(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{D_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:xn(d.join(` +`),"Call `haiku_run_next` to continue \u2014 the workflow will surface the upload paths so you can `Read` each file and incorporate the designs into elaboration.")}]}}if(c)try{D_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:xn(u.join(` +`),"Call `haiku_run_next` to continue \u2014 the workflow will surface any screenshot annotations the user attached.")}]}}async function I0t(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:xn("The user answered your visual question \u2014 see the `answers` field below.","Acknowledge their answer in chat and continue with whatever the answer enables.")};u.feedback&&(f.feedback=u.feedback),Object.keys(l).length>0&&(f.annotations=l);let p=[{type:"text",text:JSON.stringify(f,null,2)}],h=d?.screenshots??[];if(h.length>0){p.push({type:"text",text:` ${h.length} screenshot annotation${h.length===1?"":"s"} attached below \u2014 each pair is the reviewer's note + the captured surface they were drawing on.`});for(let m=0;m{"use strict";x0t=Re(Kt(),1);_l();ar();w6();p0t();hx();H1();Yd();R0t();sh();$c();w_e();Hi();uo();ze();Kn();Vv();EU();Qh();I_e();o1();Etr=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.")}),N_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")}),_tr=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(N_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')")});Ttr="/tmp/haiku-session-cancel.log";Rtr=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=Mye({intent_slug:e.intentSlug,kind:e.kind,title:e.title,prompt:e.prompt,options:e.options}),r=await Yb(),i;if(zi()){let a=await Hg(r),{buildReviewUrl:c}=await Promise.resolve().then(()=>(Qh(),k_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??wtr,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 hv(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 wtr,$b=v(()=>{"use strict";w6();$c();Qh();m5();wtr=1800*1e3});function eE(e){return{content:[{type:"text",text:JSON.stringify(e)}],isError:!0}}function ktr(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,L0t=v(()=>{"use strict";Tbe();$b();Hi();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:g0,async handle(e,t){let n=Be(e,ege,"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(!HL.includes(s))return eE({error:"unsupported_op",message:`Unknown op '${s}'. Supported: ${HL.join(", ")}.`});if(s==="preview_cursor")try{let l=e6({slug:i});return ye(JSON.stringify(l))}catch(l){return eE({error:"preview_cursor_threw",detail:l instanceof Error?l.message:String(l)})}let o=ktr(s,e),a=typeof e.reason=="string"&&e.reason.trim().length>0?e.reason.trim():null,c=a?`Why: ${a} +Annotation ${m+1} (image ${g.image_index+1}): ${g.comment}`});let y=/^data:(image\/[a-z+]+);base64,(.+)$/i.exec(g.screenshot_data_url);y?p.push({type:"image",mimeType:y[1],data:y[2]}):p.push({type:"text",text:`(screenshot for annotation ${m+1} could not be decoded)`})}}return{content:p}},o=s();if(o)return o;let a=Date.now()+i,c="User did not respond within 30 minutes. Call haiku_await_visual_answer to keep waiting, or ask_user_visual_question to start a new session.";for(;;){let u=a-Date.now();if(u<=0)break;try{await hv(e,u,r)}catch(d){if(r?.aborted)throw d;return{content:[{type:"text",text:JSON.stringify({status:"timeout",session_id:e,...n?{url:n}:{},message:c},null,2)}]}}let l=s();if(l)return l}return{content:[{type:"text",text:JSON.stringify({status:"timeout",session_id:e,...n?{url:n}:{},message:c},null,2)}]}}var P0t,_tr,M_e,Ttr,vtr,Atr,g5=v(()=>{"use strict";P0t=Re(Kt(),1);_l();ar();w6();m0t();hx();H1();Yd();w0t();sh();$c();I_e();Hi();uo();ze();Kn();Vv();EU();Qh();O_e();o1();_tr=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")}),Ttr=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')")});vtr="/tmp/haiku-session-cancel.log";Atr=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=Dye({intent_slug:e.intentSlug,kind:e.kind,title:e.title,prompt:e.prompt,options:e.options}),r=await Yb(),i;if(zi()){let a=await Hg(r),{buildReviewUrl:c}=await Promise.resolve().then(()=>(Qh(),x_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??ktr,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 hv(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 ktr,$b=v(()=>{"use strict";w6();$c();Qh();g5();ktr=1800*1e3});function eE(e){return{content:[{type:"text",text:JSON.stringify(e)}],isError:!0}}function Itr(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 U0t,F0t=v(()=>{"use strict";vbe();$b();Hi();uo();Gi();vs();U0t={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:g0,async handle(e,t){let n=Be(e,tge,"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(!HL.includes(s))return eE({error:"unsupported_op",message:`Unknown op '${s}'. Supported: ${HL.join(", ")}.`});if(s==="preview_cursor")try{let l=e6({slug:i});return ye(JSON.stringify(l))}catch(l){return eE({error:"preview_cursor_threw",detail:l instanceof Error?l.message:String(l)})}let o=Itr(s,e),a=typeof e.reason=="string"&&e.reason.trim().length>0?e.reason.trim():null,c=a?`Why: ${a} `:"",u=await Ju({intentSlug:i,kind:"confirm",title:`DEBUG: ${s} on ${i}`,prompt:`${c}${o} -This is an ADMIN op that BYPASSES the normal workflow engine. It mutates state in ways the cursor would not. Confirm only if you understand the consequences.`,options:[{id:"confirm",label:`Yes, run ${s}`,description:"Proceed with the admin op. State will be mutated immediately."},{id:"cancel",label:"Cancel",description:"Abort. No state changes."}],signal:t});if(u.timedOut||!u.selection||u.selection.id!=="confirm")return ye(JSON.stringify({action:"cancelled",message:`Debug op '${s}' cancelled \u2014 no state mutated.`}));try{switch(s){case"force_stage_complete":{let l=e.stage;if(!l)return eE({error:"missing_stage",message:"force_stage_complete requires `stage`"});let d=XZ({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:dx({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 eE({error:"missing_field",message:"set_intent_field requires `field` or `fields`"});let f=dx({slug:i,field:l,value:d});return ye(JSON.stringify(f))}case"reset_drift":{let l=QZ({slug:i});return ye(JSON.stringify(l))}case"set_unit_iterations":{let l=e.stage,d=e.unit;if(!l||!d)return eE({error:"missing_stage_or_unit",message:"set_unit_iterations requires `stage` and `unit`"});let f=Array.isArray(e.iterations)?e.iterations:void 0,p=$Z({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:fx({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 eE({error:"missing_feedback_id",message:"mutate_feedback requires `feedback_id` or `feedback_ids`"});let p=fx({slug:i,stage:d,feedbackId:f,patch:l});return ye(JSON.stringify(p))}default:return eE({error:"unhandled_op",op:s})}}catch(l){return eE({error:"debug_op_threw",op:s,detail:l instanceof Error?l.message:String(l)})}}}});import{existsSync as D_e,readFileSync as Itr}from"node:fs";import{join as g5}from"node:path";function xtr(e,t,n){if(!n)return null;let r=n.replace(/\{intent-slug\}/g,t);return r.startsWith(".haiku/")?g5(e,r):r.startsWith("/")?r:g5(e,".haiku","intents",t,r)}var U0t,F0t=v(()=>{"use strict";ar();K0();Hi();uo();ze();Kn();vo();Gi();vs();U0t={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:y0,async handle(e){let t=Be(e,tge,"haiku_discovery_complete");if(t)return t;let n=e,{intent:r,stage:i,template:s}=n,o=ve(),a=g5(o,"intents",r);if(!D_e(a))return ye(JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${r}' not found at ${a}.`}));let c=NI(r,i,s);if(!D_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(Itr(g5(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=xtr(c,r,f.location);if(p&&!D_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=Hb(r,i,()=>Ope(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 j0t}from"node:child_process";import{existsSync as Zv,readdirSync as L_e,readFileSync as Kg,statSync as Otr,writeFileSync as Cx}from"node:fs";import{join as fp,resolve as Ptr}from"node:path";function Ctr(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},Cx(e,Tc.default.stringify(r.content,i)),o}catch{return 1}}function q0t(){let e=[];try{e=s1(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?FD(r.requires_tool):!0})),n=t.some(r=>r.tool_live);return{services:t,bootable:n}}function y5(e,t,n){let r=Array.isArray(n)?n:[n],i=t?fp(ce(e),"stages",t,"feedback"):fp(ce(e),"feedback");if(!Zv(i))return[];let s=[];for(let o of L_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 B0t(e){if(e.closed_at||e.rejected_at)return!1;let t=e.status;return t!=="closed"&&t!=="rejected"}function z0t(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},Cx(e,Tc.default.stringify(n.content,r))}catch{}}function Mtr(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}))],Cx(e,Tc.default.stringify(n.content,r))}catch{}}function Dtr(e,t,n){let r=[],i=[],s=[],o=[];for(let c of n){let u=fp(ce(e),"stages",t,"units",`${c}.md`);if(!Zv(u)){i.push({unit:c,failures:[{name:"unit_not_found",command:"",exit_code:1,output:`Unit file not found at ${u}`}]});continue}let l=uSe(e,u);if(l===null)jtr(u,"quality_gates"),r.push(c);else if(l.environment){let d=Ctr(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}`;y5(e,t,[m,d]).length>=U_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 ${U_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.`;Mtr(u,f);let g=[d,...h.map(y=>`${d}:${y}`)];for(let y of y5(e,t,g))B0t(y.data)&&z0t(y.path,m);s.push({unit:c,gates:h,reason:m})}if(p.length>0){i.push({unit:c,failures:p});for(let h of p){let m=`${d}:${h.name}`;Qo(e,t,{title:`quality_gates failure on ${c} (${h.name})`,body:`Declared quality_gate \`${h.name}\` failed on unit \`${c}\`: +This is an ADMIN op that BYPASSES the normal workflow engine. It mutates state in ways the cursor would not. Confirm only if you understand the consequences.`,options:[{id:"confirm",label:`Yes, run ${s}`,description:"Proceed with the admin op. State will be mutated immediately."},{id:"cancel",label:"Cancel",description:"Abort. No state changes."}],signal:t});if(u.timedOut||!u.selection||u.selection.id!=="confirm")return ye(JSON.stringify({action:"cancelled",message:`Debug op '${s}' cancelled \u2014 no state mutated.`}));try{switch(s){case"force_stage_complete":{let l=e.stage;if(!l)return eE({error:"missing_stage",message:"force_stage_complete requires `stage`"});let d=XZ({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:dx({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 eE({error:"missing_field",message:"set_intent_field requires `field` or `fields`"});let f=dx({slug:i,field:l,value:d});return ye(JSON.stringify(f))}case"reset_drift":{let l=QZ({slug:i});return ye(JSON.stringify(l))}case"set_unit_iterations":{let l=e.stage,d=e.unit;if(!l||!d)return eE({error:"missing_stage_or_unit",message:"set_unit_iterations requires `stage` and `unit`"});let f=Array.isArray(e.iterations)?e.iterations:void 0,p=$Z({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:fx({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 eE({error:"missing_feedback_id",message:"mutate_feedback requires `feedback_id` or `feedback_ids`"});let p=fx({slug:i,stage:d,feedbackId:f,patch:l});return ye(JSON.stringify(p))}default:return eE({error:"unhandled_op",op:s})}}catch(l){return eE({error:"debug_op_threw",op:s,detail:l instanceof Error?l.message:String(l)})}}}});import{existsSync as U_e,readFileSync as xtr}from"node:fs";import{join as y5}from"node:path";function Otr(e,t,n){if(!n)return null;let r=n.replace(/\{intent-slug\}/g,t);return r.startsWith(".haiku/")?y5(e,r):r.startsWith("/")?r:y5(e,".haiku","intents",t,r)}var j0t,H0t=v(()=>{"use strict";ar();K0();Hi();uo();ze();Kn();vo();Gi();vs();j0t={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:y0,async handle(e){let t=Be(e,nge,"haiku_discovery_complete");if(t)return t;let n=e,{intent:r,stage:i,template:s}=n,o=ve(),a=y5(o,"intents",r);if(!U_e(a))return ye(JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${r}' not found at ${a}.`}));let c=NI(r,i,s);if(!U_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(xtr(y5(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=Otr(c,r,f.location);if(p&&!U_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=Hb(r,i,()=>Ppe(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 q0t}from"node:child_process";import{existsSync as Zv,readdirSync as F_e,readFileSync as Kg,statSync as Ptr,writeFileSync as Cx}from"node:fs";import{join as fp,resolve as Ntr}from"node:path";function Mtr(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},Cx(e,Tc.default.stringify(r.content,i)),o}catch{return 1}}function z0t(){let e=[];try{e=s1(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?FD(r.requires_tool):!0})),n=t.some(r=>r.tool_live);return{services:t,bootable:n}}function S5(e,t,n){let r=Array.isArray(n)?n:[n],i=t?fp(ce(e),"stages",t,"feedback"):fp(ce(e),"feedback");if(!Zv(i))return[];let s=[];for(let o of F_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 G0t(e){if(e.closed_at||e.rejected_at)return!1;let t=e.status;return t!=="closed"&&t!=="rejected"}function V0t(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},Cx(e,Tc.default.stringify(n.content,r))}catch{}}function Dtr(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}))],Cx(e,Tc.default.stringify(n.content,r))}catch{}}function Ltr(e,t,n){let r=[],i=[],s=[],o=[];for(let c of n){let u=fp(ce(e),"stages",t,"units",`${c}.md`);if(!Zv(u)){i.push({unit:c,failures:[{name:"unit_not_found",command:"",exit_code:1,output:`Unit file not found at ${u}`}]});continue}let l=lSe(e,u);if(l===null)Htr(u,"quality_gates"),r.push(c);else if(l.environment){let d=Mtr(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}`;S5(e,t,[m,d]).length>=j_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 ${j_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.`;Dtr(u,f);let g=[d,...h.map(y=>`${d}:${y}`)];for(let y of S5(e,t,g))G0t(y.data)&&V0t(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=q0t(),u=o.every(h=>h.attempts>Ntr),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=qfe(),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=z0t(),u=o.every(h=>h.attempts>Ctr),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=Bfe(),p=l==="best_effort_boot"?`Quality gates can't reach a live environment on: ${o.map(h=>h.unit).join(", ")}. ${o.map(h=>` \u2022 ${h.unit}: ${h.reason}`).join(` `)} @@ -1287,32 +1287,32 @@ ${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 Ltr(e){let t=ce(e),n=fp(t,"stages"),r=Utr(t),i=Ftr(n,r);if(i.length===0)return H0t(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=j0t("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{}let o=[];for(let u of i){let l=u.dir?Ptr(s,u.dir):s;try{j0t(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 H0t(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(s1(Br()).map(d=>d.requires_tool).filter(d=>typeof d=="string"&&d.length>0))]}catch{u=[]}let l=KK(o,{requiredTools:u});if(l.environment){let d=q0t(),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=qfe();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 Utr(e){let t=ce(e),n=fp(t,"stages"),r=Ftr(t),i=jtr(n,r);if(i.length===0)return B0t(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=q0t("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{}let o=[];for(let u of i){let l=u.dir?Ntr(s,u.dir):s;try{q0t(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 B0t(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(s1(Br()).map(d=>d.requires_tool).filter(d=>typeof d=="string"&&d.length>0))]}catch{u=[]}let l=KK(o,{requiredTools:u});if(l.environment){let d=z0t(),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=Bfe();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=y5(e,"","intent_quality_gates").length;if(a>=U_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.`;Htr(e,o);for(let d of y5(e,"","intent_quality_gates"))B0t(d.data)&&z0t(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=S5(e,"","intent_quality_gates").length;if(a>=j_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.`;qtr(e,o);for(let d of S5(e,"","intent_quality_gates"))G0t(d.data)&&V0t(d.path,l);return ye(JSON.stringify({scope:"intent",ran:i.length,failures:o,deferred:{gates:u,reason:l},message:`${o.length} of ${i.length} intent-scope quality_gates stayed red across ${a} fix-loop attempt(s) \u2014 DEFERRED to CI. approvals.intent_quality_gates stamped deferred; intent can seal.`},null,2))}let c=o.map(u=>`- **${u.name}**: \`${u.command}\` exited ${u.exit_code} (declared by: ${u.contributors.join(", ")}) ${u.output.slice(0,400).split(` `).join(` `)}`).join(` `);return Qo(e,"",{title:`intent_quality_gates: ${o.length} failing command(s)`,body:`${o.length} of ${i.length} distinct quality_gates command(s) failed at intent scope. The studio fix-hat loop should resolve each failure; on close, the cursor's intent walk will re-dispatch dispatch_quality_gates because approvals.intent_quality_gates is still unset. If the gates keep failing across attempts, the engine defers them to CI (environmental / non-source-convergent). -${c}`,origin:"agent",severity:"blocker",author:"engine",source_ref:"intent_quality_gates"}),ye(JSON.stringify({scope:"intent",ran:i.length,failures:o,message:`${o.length} of ${i.length} distinct quality_gates command(s) failed at intent scope \u2014 intent-scope FB filed.`},null,2))}function Utr(e){let t=fp(e,"intent.md");if(!Zv(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 Ftr(e,t=new Set){if(!Zv(e))return[];let n=new Map,r=L_e(e).filter(i=>{try{return Otr(fp(e,i)).isDirectory()}catch{return!1}});for(let i of r){let s=fp(e,i,"units");if(!Zv(s))continue;let o=L_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 jtr(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]=zd(a,o),i.approvals=s;let c=Tc.default.stringify(r.content,i);Cx(e,c)}function Htr(e,t){let n=fp(ce(e),"intent.md");if(Zv(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}))],Cx(n,Tc.default.stringify(r.content,i))}catch{}}function H0t(e,t){let n=fp(ce(e),"intent.md");if(!Zv(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,Cx(n,Tc.default.stringify(i.content,s))}var Tc,Ntr,U_e,G0t,V0t=v(()=>{"use strict";Tc=Re(Kt(),1);Bfe();zfe();Xf();ze();o1();Gi();vs();Ntr=1;U_e=2;G0t={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"?Ltr(t):Dtr(t,n,r)}}});import{existsSync as W0t,readFileSync as qtr}from"node:fs";import{join as S5}from"node:path";var K0t,Y0t=v(()=>{"use strict";ji();Oa();Hi();uo();ze();vo();Gi();Vv();vs();K0t={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:v0,async handle(e){let t=Be(e,Fge,"haiku_drop_stage");if(t)return t;let{intent:n,stage:r}=e,i=ve(),s=S5(i,"intents",n),o=S5(s,"intent.md");if(!W0t(o))return ye(JSON.stringify({error:"not_found",message:`Intent '${n}' not found`}));let a=re(qtr(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(!oL(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=S5(s,"stages",r);if(W0t(S5(l,"elaboration.md"))||dv(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 Ne(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:xn(`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 Btr,randomBytes as ztr}from"node:crypto";import{existsSync as Jv,readFileSync as H_e,realpathSync as Z0t,unlinkSync as Gtr}from"node:fs";import{writeFile as Vtr}from"node:fs/promises";import{dirname as j_e,isAbsolute as Wtr,join as Xv,relative as _U,resolve as F_e}from"node:path";function Ktr(e){let t=Xv(e,"settings.yml");if(!Jv(t))return!1;try{let n=H_e(t,"utf8"),{data:r}=(0,J0t.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 Ftr(e){let t=fp(e,"intent.md");if(!Zv(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 jtr(e,t=new Set){if(!Zv(e))return[];let n=new Map,r=F_e(e).filter(i=>{try{return Ptr(fp(e,i)).isDirectory()}catch{return!1}});for(let i of r){let s=fp(e,i,"units");if(!Zv(s))continue;let o=F_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 Htr(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]=zd(a,o),i.approvals=s;let c=Tc.default.stringify(r.content,i);Cx(e,c)}function qtr(e,t){let n=fp(ce(e),"intent.md");if(Zv(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}))],Cx(n,Tc.default.stringify(r.content,i))}catch{}}function B0t(e,t){let n=fp(ce(e),"intent.md");if(!Zv(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,Cx(n,Tc.default.stringify(i.content,s))}var Tc,Ctr,j_e,W0t,K0t=v(()=>{"use strict";Tc=Re(Kt(),1);zfe();Gfe();Xf();ze();o1();Gi();vs();Ctr=1;j_e=2;W0t={name:"haiku_dispatch_quality_gates",description:"Run the declared `quality_gates` at stage scope (per-unit, with fix-loop on failure) or at intent scope (union of all units' gates, deduped by command, stamped on intent.md). Engine-callable from the cursor's dispatch_quality_gates action.",inputSchema:{type:"object",properties:{intent:{type:"string"},stage:{type:"string"},units:{type:"array",items:{type:"string"}},scope:{type:"string",enum:["intent","stage"]}},required:["intent"]},async handle(e){let t=e.intent,n=e.stage||"",r=e.units||[];return(e.scope??(n===""?"intent":"stage"))==="intent"?Utr(t):Ltr(t,n,r)}}});import{existsSync as Y0t,readFileSync as Btr}from"node:fs";import{join as b5}from"node:path";var Z0t,J0t=v(()=>{"use strict";ji();Oa();Hi();uo();ze();vo();Gi();Vv();vs();Z0t={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:v0,async handle(e){let t=Be(e,jge,"haiku_drop_stage");if(t)return t;let{intent:n,stage:r}=e,i=ve(),s=b5(i,"intents",n),o=b5(s,"intent.md");if(!Y0t(o))return ye(JSON.stringify({error:"not_found",message:`Intent '${n}' not found`}));let a=re(Btr(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(!oL(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=b5(s,"stages",r);if(Y0t(b5(l,"elaboration.md"))||dv(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 Ne(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:xn(`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 ztr,randomBytes as Gtr}from"node:crypto";import{existsSync as Jv,readFileSync as B_e,realpathSync as X0t,unlinkSync as Vtr}from"node:fs";import{writeFile as Wtr}from"node:fs/promises";import{dirname as q_e,isAbsolute as Ktr,join as Xv,relative as _U,resolve as H_e}from"node:path";function Ytr(e){let t=Xv(e,"settings.yml");if(!Jv(t))return!1;try{let n=B_e(t,"utf8"),{data:r}=(0,Q0t.default)(`--- ${n} --- -`);return r.human_write_require_rationale===!0}catch{return!1}}function Ytr(e){let t=Xv(e,"write-audit.jsonl");if(!Jv(t))return 1;try{return H_e(t,"utf8").split(` -`).filter(i=>i.trim()!=="").length+1}catch{return 1}}function Jtr(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 Xtr(e,t,n){let r=av(e),i=F_e(t);if(Wtr(r)){let l=F_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=_U(i,l)}let s=F_e(Xv(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=_U(i,s),a=j_e(s);if(Jv(a))try{let l=Z0t(a),d=Z0t(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=av(o);for(let l of Ztr)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=Jtr(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 J0t,Ztr,X0t,Q0t=v(()=>{"use strict";J0t=Re(Kt(),1);R6();P0();v6();XY();ze();Gi();vs();Ztr=[{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."}];X0t={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=ve(),f=Xv(d,"intents",t),p=Xv(f,"intent.md");if(!Jv(p))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${t}' not found.`},null,2)}],isError:!0};if(_1(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(E1(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(Ktr(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=Byt(f),g=Xtr(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=Xv(f,y),S=j_e(b);if(!c&&Jv(b)){let F="";try{let{createHash:V}=await import("node:crypto"),U=H_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&&!Jv(S))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"parent_dir_missing",path:y,missing_dir:_U(f,S),message:`Parent directory '${_U(f,S)}' does not exist and create_dirs is false.`},null,2)}],isError:!0};let E=[];if(u){let F=S,V=[];for(;!Jv(F);){V.unshift(F);let U=j_e(F);if(U===F)break;F=U}for(let U of V)E.push(_U(f,U))}let _=Btr("sha256").update(h).digest("hex"),T=process.pid,R=ztr(6).toString("hex"),A=Xv(f,`.hwm-tmp-${T}-${R}.tmp`);try{await Vtr(A,h)}catch(F){return V0(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=yv(f,S,A,b);if(!x.ok){V0(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?T1(f):Ub(f,k[1])}catch(F){if(F instanceof Vd){try{Gtr(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=Ytr(f),W=Q1(N,G),$=FY(d);await jv(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?dRt(a):null;q=(await $1(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 Qtr,readFileSync as $tr}from"node:fs";import{join as enr}from"node:path";var $0t,ext=v(()=>{"use strict";ar();ze();Gi();vs();$0t={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=enr(n,"intents",t,"intent.md");if(!Qtr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let{data:i}=re($tr(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=yr(t,void 0);return s.ok?(Ne(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 b5}from"node:child_process";import{existsSync as tnr,mkdirSync as q_e,writeFileSync as B_e}from"node:fs";import{join as rm}from"node:path";function txt(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 nxt,rxt=v(()=>{"use strict";ar();Gfe();p1();Hi();uo();ze();Kn();vo();p_();Gi();vs();nxt={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:qL,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(b1(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=txt(i),o=txt(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=ve(),d=rm(l,"intents",r),f=`haiku/${r}/main`;if(Ee())try{let y=upe();Pt(f)||PI(r,y||void 0);let b="";try{b=b5("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}b!==f&&b5("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(tnr(rm(d,"intent.md")))return ye(JSON.stringify({error:"intent_exists",slug:r,message:`Intent '${r}' already exists`}));q_e(rm(d,"knowledge"),{recursive:!0}),q_e(rm(d,"stages"),{recursive:!0});let p=e.context,h=(t||"").trim(),m=["---",`title: "${i.replace(/"/g,'\\"')}"`,'studio: ""',`plugin_version: "${vS()}"`,"status: active",`created_at: ${mn()}`,"---","",`# ${i}`,"",...h?[h,""]:[],...p?[p,""]:[]].join(` -`);if(B_e(rm(d,"intent.md"),m),Ne(rm(d,"intent.md"),"studio_candidates",c),B_e(rm(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(` -`)),Ee())try{let y=`.haiku/intents/${r}/.gitattributes`;b5("git",["add","--",y],{stdio:"pipe"}),b5("git",["commit","-m",`haiku: seed .gitattributes (merge=union for event streams) for ${r}`,"--",y],{stdio:"pipe"})}catch{}if(p){let y=rm(d,"knowledge");q_e(y,{recursive:!0}),B_e(rm(y,"CONVERSATION-CONTEXT.md"),`# Conversation Context +`);return r.human_write_require_rationale===!0}catch{return!1}}function Ztr(e){let t=Xv(e,"write-audit.jsonl");if(!Jv(t))return 1;try{return B_e(t,"utf8").split(` +`).filter(i=>i.trim()!=="").length+1}catch{return 1}}function Xtr(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 Qtr(e,t,n){let r=av(e),i=H_e(t);if(Ktr(r)){let l=H_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=_U(i,l)}let s=H_e(Xv(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=_U(i,s),a=q_e(s);if(Jv(a))try{let l=X0t(a),d=X0t(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=av(o);for(let l of Jtr)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=Xtr(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 Q0t,Jtr,$0t,ext=v(()=>{"use strict";Q0t=Re(Kt(),1);R6();P0();v6();XY();ze();Gi();vs();Jtr=[{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."}];$0t={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=ve(),f=Xv(d,"intents",t),p=Xv(f,"intent.md");if(!Jv(p))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${t}' not found.`},null,2)}],isError:!0};if(_1(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(E1(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(Ytr(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=Gyt(f),g=Qtr(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=Xv(f,y),S=q_e(b);if(!c&&Jv(b)){let F="";try{let{createHash:V}=await import("node:crypto"),U=B_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&&!Jv(S))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"parent_dir_missing",path:y,missing_dir:_U(f,S),message:`Parent directory '${_U(f,S)}' does not exist and create_dirs is false.`},null,2)}],isError:!0};let E=[];if(u){let F=S,V=[];for(;!Jv(F);){V.unshift(F);let U=q_e(F);if(U===F)break;F=U}for(let U of V)E.push(_U(f,U))}let _=ztr("sha256").update(h).digest("hex"),T=process.pid,R=Gtr(6).toString("hex"),A=Xv(f,`.hwm-tmp-${T}-${R}.tmp`);try{await Wtr(A,h)}catch(F){return V0(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=yv(f,S,A,b);if(!x.ok){V0(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?T1(f):Ub(f,k[1])}catch(F){if(F instanceof Vd){try{Vtr(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=Ztr(f),W=Q1(N,G),$=FY(d);await jv(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?pRt(a):null;q=(await $1(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 $tr,readFileSync as enr}from"node:fs";import{join as tnr}from"node:path";var txt,nxt=v(()=>{"use strict";ar();ze();Gi();vs();txt={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=tnr(n,"intents",t,"intent.md");if(!$tr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let{data:i}=re(enr(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=yr(t,void 0);return s.ok?(Ne(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 E5}from"node:child_process";import{existsSync as nnr,mkdirSync as z_e,writeFileSync as G_e}from"node:fs";import{join as rm}from"node:path";function rxt(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 ixt,sxt=v(()=>{"use strict";ar();Vfe();p1();Hi();uo();ze();Kn();vo();p_();Gi();vs();ixt={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:qL,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(b1(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=rxt(i),o=rxt(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=ve(),d=rm(l,"intents",r),f=`haiku/${r}/main`;if(Ee())try{let y=lpe();Pt(f)||PI(r,y||void 0);let b="";try{b=E5("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}b!==f&&E5("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(nnr(rm(d,"intent.md")))return ye(JSON.stringify({error:"intent_exists",slug:r,message:`Intent '${r}' already exists`}));z_e(rm(d,"knowledge"),{recursive:!0}),z_e(rm(d,"stages"),{recursive:!0});let p=e.context,h=(t||"").trim(),m=["---",`title: "${i.replace(/"/g,'\\"')}"`,'studio: ""',`plugin_version: "${vS()}"`,"status: active",`created_at: ${mn()}`,"---","",`# ${i}`,"",...h?[h,""]:[],...p?[p,""]:[]].join(` +`);if(G_e(rm(d,"intent.md"),m),Ne(rm(d,"intent.md"),"studio_candidates",c),G_e(rm(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(` +`)),Ee())try{let y=`.haiku/intents/${r}/.gitattributes`;E5("git",["add","--",y],{stdio:"pipe"}),E5("git",["commit","-m",`haiku: seed .gitattributes (merge=union for event streams) for ${r}`,"--",y],{stdio:"pipe"})}catch{}if(p){let y=rm(d,"knowledge");z_e(y,{recursive:!0}),G_e(rm(y,"CONVERSATION-CONTEXT.md"),`# Conversation Context ${p} -`)}wt(`haiku: create intent ${r}`);let g="";if(Ee()&&CT()!==null)try{let y=rm(d,"intent.md"),b=mpe({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(Ee()&&CT()!==null)try{let y=rm(d,"intent.md"),b=gpe({slug:r,title:i?`H\xB7AI\xB7K\xB7U: ${i}`:`H\xB7AI\xB7K\xB7U: ${r}`,body:t?`${t} --- @@ -1322,38 +1322,38 @@ Draft PR opened: ${b.createdUrl}`):b.compareUrl?(Ne(y,"draft_pr_status","failed" The engine couldn't open the draft PR via the CLI (${b.prError??b.pushError??"unknown"}). Open one manually: ${b.compareUrl}`):(Ne(y,"draft_pr_status","failed"),g=` -The engine couldn't open a draft PR: ${b.message}`),wt(`haiku: stamp draft PR status for ${r}`);try{let S=Lh(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&&Bi(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 z_e}from"node:child_process";import{existsSync as ixt,readFileSync as sxt,rmSync as nnr}from"node:fs";import{join as G_e}from"node:path";var oxt,axt=v(()=>{"use strict";ar();Yd();$b();ze();Gi();vs();oxt={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=G_e(r,"intents",n),s=G_e(i,"intent.md");if(!ixt(s))return{content:[{type:"text",text:`Intent '${n}' not found.`}],isError:!0};let o=sxt(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=G_e(i,"knowledge","CONVERSATION-CONTEXT.md");ixt(p)&&(f=sxt(p,"utf8").replace(/^# Conversation Context\n\n/,""));let m=re(o).data.studio||"";if(Ee()){try{let y=Zo(),b="";try{b=z_e("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(y&&b!==y)try{z_e("git",["checkout",y],{encoding:"utf8",stdio:"pipe"})}catch(S){try{z_e("git",["checkout",`${y}^0`],{encoding:"utf8",stdio:"pipe"})}catch(E){let _=S instanceof Error?S.message:String(S),T=E instanceof Error?E.message:String(E);throw new Error(`could not move HEAD off the haiku branches: \`git checkout ${y}\` failed (${_.split(` +The engine couldn't open a draft PR: ${b.message}`),wt(`haiku: stamp draft PR status for ${r}`);try{let S=Lh(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&&Bi(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 V_e}from"node:child_process";import{existsSync as oxt,readFileSync as axt,rmSync as rnr}from"node:fs";import{join as W_e}from"node:path";var cxt,uxt=v(()=>{"use strict";ar();Yd();$b();ze();Gi();vs();cxt={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=W_e(r,"intents",n),s=W_e(i,"intent.md");if(!oxt(s))return{content:[{type:"text",text:`Intent '${n}' not found.`}],isError:!0};let o=axt(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=W_e(i,"knowledge","CONVERSATION-CONTEXT.md");oxt(p)&&(f=axt(p,"utf8").replace(/^# Conversation Context\n\n/,""));let m=re(o).data.studio||"";if(Ee()){try{let y=Zo(),b="";try{b=V_e("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(y&&b!==y)try{V_e("git",["checkout",y],{encoding:"utf8",stdio:"pipe"})}catch(S){try{V_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(QD(n),m){let y=Fs(m);for(let b of y){let S=`haiku/${n}/${b}`;Pt(S)&&bb(n,b)}}let g=`haiku/${n}/main`;Pt(g)&&$D(g)}return nnr(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 rnr,readFileSync as inr,writeFileSync as snr}from"node:fs";import{join as onr}from"node:path";var V_e,cxt,uxt=v(()=>{"use strict";V_e=Re(Kt(),1);ar();xx();Hi();uo();ze();Gi();vs();cxt={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:k0,handle(e){let t=Be(e,Gge,"haiku_intent_seal");if(t)return t;let n=e.intent,r=e.nonce,i=e.notes??"",s=Ix({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=onr(o,"intents",n,"intent.md");if(!rnr(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=yr(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=inr(a,"utf8"),l=(0,V_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()),snr(a,V_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 anr,readFileSync as cnr,writeFileSync as unr}from"node:fs";import{join as lnr}from"node:path";var W_e,lxt,dxt=v(()=>{"use strict";W_e=Re(Kt(),1);ar();ze();Gi();vs();lxt={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=lnr(n,"intents",t,"intent.md");if(!anr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let i=cnr(r,"utf8"),s=(0,W_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=yr(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 unr(r,W_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 dnr}from"node:crypto";import{existsSync as fxt,readFileSync as pxt}from"node:fs";function fnr(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 pnr(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function hnr(e){let t=SEe(e);if(!fxt(t))return 1;try{return pxt(t,"utf8").split(` -`).filter(n=>n.trim()!=="").length+1}catch{return 1}}async function E5(e){let t=fnr(e);if(!t)return{stamped:!1,reason:"not_in_intent_dir"};if(!pnr(t.pathRel))return{stamped:!1,reason:"not_in_tracked_surface"};if(!fxt(e))return{stamped:!1,reason:"file_missing"};let n;try{n=dnr("sha256").update(pxt(e)).digest("hex")}catch{return{stamped:!1,reason:"read_failed"}}let r=t.stageOwner?Ub(t.intentDir,t.stageOwner):Ub(t.intentDir),i=hnr(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=av(t.pathRel);return await jv(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 K_e=v(()=>{"use strict";R6();P0()});import{realpathSync as hxt}from"node:fs";import{isAbsolute as mnr,join as mxt}from"node:path";function Y_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var gxt,yxt=v(()=>{"use strict";K_e();ze();Gi();gxt={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 Y_e("missing_intent_slug","`intent_slug` is required and must be a non-empty string.");if(typeof n!="string"||n.trim()==="")return Y_e("missing_path","`path` is required and must be a non-empty string.");let r=Wg({intent:t});if(r)return r;let i=ve(),s=mxt(i,"intents",t),o=mnr(n)?n:mxt(s,n),a=(()=>{try{return hxt(s)}catch{return s}})(),c=(()=>{try{return hxt(o)}catch{return o}})();if(!c.startsWith(`${a}/`)&&c!==a)return Y_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 E5(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 Sxt,bxt,Ext=v(()=>{"use strict";Sv();Hi();uo();vo();Gi();vs();Sxt="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.",bxt={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:b0,async handle(e){let t=Be(e,Mge,"haiku_review_stamp");if(t)return t;let{intent:n,kind:r,role:i,stage:s}=e,o=qye(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)`:""}. ${Sxt}`:`No pending ${r} dispatch for '${i}' on stage '${s}' (already stamped). ${Sxt}`}))}}});import{appendFileSync as gnr}from"node:fs";function _5(e){return Date.now()-e>_xt}function T5(e,t,n,r){let i=Date.now()-n;return im(`${e} (wall-deadline ${_xt}ms exceeded; elapsed=${i}ms)`,t,r,"no_progress")}function Mx(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 ynr(e){let t=`[${new Date().toISOString()}] ${e} -`;try{let n=Uft("loop-guards.log");return gnr(n,t),n}catch{return null}}function im(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=ynr(`loop guard fired: ${s}`),a=o?` +`)[0]}). Commit / stash / clean any uncommitted changes here and retry.`)}}}catch(y){let b=y instanceof Error?y.message:String(y);return{content:[{type:"text",text:`Error: failed to move HEAD off the haiku branches before resetting intent '${n}'. ${b}`}],isError:!0}}if(QD(n),m){let y=Fs(m);for(let b of y){let S=`haiku/${n}/${b}`;Pt(S)&&bb(n,b)}}let g=`haiku/${n}/main`;Pt(g)&&$D(g)}return rnr(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 inr,readFileSync as snr,writeFileSync as onr}from"node:fs";import{join as anr}from"node:path";var K_e,lxt,dxt=v(()=>{"use strict";K_e=Re(Kt(),1);ar();xx();Hi();uo();ze();Gi();vs();lxt={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:k0,handle(e){let t=Be(e,Vge,"haiku_intent_seal");if(t)return t;let n=e.intent,r=e.nonce,i=e.notes??"",s=Ix({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=anr(o,"intents",n,"intent.md");if(!inr(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=yr(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=snr(a,"utf8"),l=(0,K_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()),onr(a,K_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 cnr,readFileSync as unr,writeFileSync as lnr}from"node:fs";import{join as dnr}from"node:path";var Y_e,fxt,pxt=v(()=>{"use strict";Y_e=Re(Kt(),1);ar();ze();Gi();vs();fxt={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=dnr(n,"intents",t,"intent.md");if(!cnr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let i=unr(r,"utf8"),s=(0,Y_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=yr(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 lnr(r,Y_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 fnr}from"node:crypto";import{existsSync as hxt,readFileSync as mxt}from"node:fs";function pnr(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 hnr(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function mnr(e){let t=bEe(e);if(!hxt(t))return 1;try{return mxt(t,"utf8").split(` +`).filter(n=>n.trim()!=="").length+1}catch{return 1}}async function _5(e){let t=pnr(e);if(!t)return{stamped:!1,reason:"not_in_intent_dir"};if(!hnr(t.pathRel))return{stamped:!1,reason:"not_in_tracked_surface"};if(!hxt(e))return{stamped:!1,reason:"file_missing"};let n;try{n=fnr("sha256").update(mxt(e)).digest("hex")}catch{return{stamped:!1,reason:"read_failed"}}let r=t.stageOwner?Ub(t.intentDir,t.stageOwner):Ub(t.intentDir),i=mnr(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=av(t.pathRel);return await jv(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 Z_e=v(()=>{"use strict";R6();P0()});import{realpathSync as gxt}from"node:fs";import{isAbsolute as gnr,join as yxt}from"node:path";function J_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var Sxt,bxt=v(()=>{"use strict";Z_e();ze();Gi();Sxt={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 J_e("missing_intent_slug","`intent_slug` is required and must be a non-empty string.");if(typeof n!="string"||n.trim()==="")return J_e("missing_path","`path` is required and must be a non-empty string.");let r=Wg({intent:t});if(r)return r;let i=ve(),s=yxt(i,"intents",t),o=gnr(n)?n:yxt(s,n),a=(()=>{try{return gxt(s)}catch{return s}})(),c=(()=>{try{return gxt(o)}catch{return o}})();if(!c.startsWith(`${a}/`)&&c!==a)return J_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 _5(o);if(!u.stamped){let l={not_in_intent_dir:`Path is not inside an intent directory (resolved: ${o}). Only writes inside .haiku/intents// get tracked.`,not_in_tracked_surface:`Path is inside the intent dir but not in the drift-tracked surface (resolved: ${o}). Tracked locations are stages//{artifacts,outputs,knowledge,discovery}/... and intent-root knowledge/...`,file_missing:`File does not exist on disk (resolved: ${o}). Did the write succeed?`,read_failed:`Could not read file to compute SHA (resolved: ${o}).`};return{content:[{type:"text",text:JSON.stringify({ok:!0,stamped:!1,reason:u.reason,message:l[u.reason??""]??"Stamp skipped for unknown reason."},null,2)}]}}return{content:[{type:"text",text:JSON.stringify({ok:!0,stamped:!0,path:u.pathRel,sha:u.sha,tick_counter:u.tickCounter,tick_scope:u.tickScope,next_step:"The next `haiku_run_next` tick will see the agent_write entry and silently update the baseline \u2014 no manual_change_assessment finding for this path."},null,2)}]}}}});var Ext,_xt,Txt=v(()=>{"use strict";Sv();Hi();uo();vo();Gi();vs();Ext="Your work here is done \u2014 terminate with your one-line findings summary. Do NOT call haiku_run_next; your parent ticks the workflow when the whole review wave closes.",_xt={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:b0,async handle(e){let t=Be(e,Dge,"haiku_review_stamp");if(t)return t;let{intent:n,kind:r,role:i,stage:s}=e,o=Bye(n,r,s,i);return Ke("haiku.review.stamped",{intent:n,kind:r,role:i,stage:s,found:String(o.found),stamped_count:String(o.stamped.length),skipped_count:String(o.skipped.length)}),ye(JSON.stringify({ok:!0,intent:n,kind:r,role:i,stage:s,found:o.found,stamped:o.stamped,skipped:o.skipped,message:o.found?`Recorded ${r} witness for '${i}' on stage '${s}': ${o.stamped.length} unit(s) stamped${o.skipped.length>0?`, ${o.skipped.length} skipped (you filed open findings against them \u2014 they re-review after close)`:""}. ${Ext}`:`No pending ${r} dispatch for '${i}' on stage '${s}' (already stamped). ${Ext}`}))}}});import{appendFileSync as ynr}from"node:fs";function T5(e){return Date.now()-e>vxt}function v5(e,t,n,r){let i=Date.now()-n;return im(`${e} (wall-deadline ${vxt}ms exceeded; elapsed=${i}ms)`,t,r,"no_progress")}function Mx(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=jft("loop-guards.log");return ynr(n,t),n}catch{return null}}function im(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 TU,_xt,Txt=v(()=>{"use strict";vl();TU=16,_xt=9e4});var Rxt={};Ar(Rxt,{invalidateDownstreamApprovals:()=>_nr});import{existsSync as Snr,readdirSync as bnr,readFileSync as Enr}from"node:fs";import{join as vxt}from"node:path";function _nr(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=vxt(e.intentDir,"stages",o,"units");if(!Snr(a))continue;let c=bnr(a).filter(l=>l.endsWith(".md")),u=!1;for(let l of c){let d=vxt(a,l);try{let f=Enr(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"),Zh(d,g),s++,u=!0}catch(f){console.error(`[invalidate-downstream] skipping ${d}: ${f instanceof Error?f.message:String(f)}`)}}u&&i.push(o)}return{stages_cleared:i,units_cleared:s}}var Axt=v(()=>{"use strict";ze();ji()});var cNt={};Ar(cNt,{AbortError:()=>rE,EXIT_REASONS:()=>Gsr,HOOK_EVENTS:()=>zsr,createSdkMcpServer:()=>opr,query:()=>apr,tool:()=>spr,unstable_v2_createSession:()=>cpr,unstable_v2_prompt:()=>lpr,unstable_v2_resumeSession:()=>upr});import{join as kxt}from"path";import{fileURLToPath as krr}from"url";import{setMaxListeners as Irr}from"events";import{spawn as Orr}from"child_process";import{createInterface as Prr}from"readline";import*as Zt from"fs";import{stat as Nrr}from"fs/promises";import{join as Tsr}from"path";import{homedir as vsr}from"os";import{dirname as sTe,join as POt}from"path";import{cwd as Rsr}from"process";import{realpathSync as Asr}from"fs";import{randomUUID as wsr}from"crypto";import{randomUUID as Vsr}from"crypto";import{appendFileSync as Wsr,existsSync as Ksr,mkdirSync as Ysr}from"fs";import{join as Mxt}from"path";import{randomUUID as Qsr}from"crypto";import{join as Lxt}from"path";import{fileURLToPath as $sr}from"url";function jTe(e=xrr){let t=new AbortController;return Irr(e,t.signal),t}function Hrr(e){var t=Frr.call(e,vU),n=e[vU];try{e[vU]=void 0;var r=!0}catch{}var i=jrr.call(e);return r&&(t?e[vU]=n:delete e[vU]),i}function Grr(e){return zrr.call(e)}function Yrr(e){return e==null?e===void 0?Krr:Wrr:Ixt&&Ixt in Object(e)?qrr(e):Vrr(e)}function Jrr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function tir(e){if(!kOt(e))return!1;var t=Zrr(e);return t==Qrr||t==$rr||t==Xrr||t==eir}function iir(e){return!!xxt&&xxt in e}function cir(e){if(e!=null){try{return air.call(e)}catch{}try{return e+""}catch{}}return""}function yir(e){if(!kOt(e)||sir(e))return!1;var t=nir(e)?gir:dir;return t.test(uir(e))}function bir(e,t){return e?.[t]}function _ir(e,t){var n=Eir(e,t);return Sir(n)?n:void 0}function vir(){this.__data__=PU?PU(null):{},this.size=0}function Air(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function Oir(e){var t=this.__data__;if(PU){var n=t[e];return n===kir?void 0:n}return xir.call(t,e)?t[e]:void 0}function Mir(e){var t=this.__data__;return PU?t[e]!==void 0:Cir.call(t,e)}function Uir(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=PU&&t===void 0?Lir:t,this}function Qx(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}function Qir(e,t){var n=this.__data__,r=X5(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function $x(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 _sr(e,t){if(!t)return!0;let n=bsr(e);return Esr(n,t)}function OOt(){return process.env.CLAUDE_CONFIG_DIR??Tsr(vsr(),".claude")}function Nxt(e){if(!e)return!1;if(typeof e=="boolean")return e;let t=e.toLowerCase().trim();return["1","true","yes","on"].includes(t)}function NOt(e){return{name:e,default:v5,validate:t=>{if(!t)return{effective:v5,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:v5,status:"invalid",message:`Invalid value "${t}" (using default: ${v5})`}:n>J_e?{effective:J_e,status:"capped",message:`Capped from ${n} to ${J_e}`}:{effective:n,status:"valid"}}}}function xsr(){let e="";return typeof process<"u"&&typeof process.cwd=="function"&&(e=Asr(Rsr())),{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:wsr(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[ksr,Isr],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 Psr(){return Osr.sessionId}function Nsr({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 Csr(e){return Cxt.add(e),()=>Cxt.delete(e)}function Msr(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 MOt(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>COt&&(Zg(`[SLOW OPERATION DETECTED] ${e} (${r.toFixed(1)}ms)`),void 0)}}function sm(e,t,n){let r=Msr(e);return MOt(`JSON.stringify(${r})`,()=>JSON.stringify(e,t,n))}function Usr(e){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let t=Lsr();return _sr(e,t)}function jsr(){return R5||(R5=Nsr({writeFn:e=>{let t=UOt();Xg().existsSync(sTe(t))||Xg().mkdirSync(sTe(t)),Xg().appendFileSync(t,e),Hsr()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:Dsr()}),Csr(async()=>R5?.dispose())),R5}function Zg(e,{level:t}={level:"debug"}){if(!Usr(e))return;Fsr&&e.includes(` +diagnostic: ${s}${a}`}],isError:!0}}var TU,vxt,Rxt=v(()=>{"use strict";vl();TU=16,vxt=9e4});var wxt={};Ar(wxt,{invalidateDownstreamApprovals:()=>Tnr});import{existsSync as bnr,readdirSync as Enr,readFileSync as _nr}from"node:fs";import{join as Axt}from"node:path";function Tnr(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=Axt(e.intentDir,"stages",o,"units");if(!bnr(a))continue;let c=Enr(a).filter(l=>l.endsWith(".md")),u=!1;for(let l of c){let d=Axt(a,l);try{let f=_nr(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"),Zh(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 kxt=v(()=>{"use strict";ze();ji()});var lNt={};Ar(lNt,{AbortError:()=>rE,EXIT_REASONS:()=>Vsr,HOOK_EVENTS:()=>Gsr,createSdkMcpServer:()=>apr,query:()=>cpr,tool:()=>opr,unstable_v2_createSession:()=>upr,unstable_v2_prompt:()=>dpr,unstable_v2_resumeSession:()=>lpr});import{join as xxt}from"path";import{fileURLToPath as Irr}from"url";import{setMaxListeners as xrr}from"events";import{spawn as Prr}from"child_process";import{createInterface as Nrr}from"readline";import*as Zt from"fs";import{stat as Crr}from"fs/promises";import{join as vsr}from"path";import{homedir as Rsr}from"os";import{dirname as aTe,join as COt}from"path";import{cwd as Asr}from"process";import{realpathSync as wsr}from"fs";import{randomUUID as ksr}from"crypto";import{randomUUID as Wsr}from"crypto";import{appendFileSync as Ksr,existsSync as Ysr,mkdirSync as Zsr}from"fs";import{join as Lxt}from"path";import{randomUUID as $sr}from"crypto";import{join as Fxt}from"path";import{fileURLToPath as eor}from"url";function qTe(e=Orr){let t=new AbortController;return xrr(e,t.signal),t}function qrr(e){var t=jrr.call(e,vU),n=e[vU];try{e[vU]=void 0;var r=!0}catch{}var i=Hrr.call(e);return r&&(t?e[vU]=n:delete e[vU]),i}function Vrr(e){return Grr.call(e)}function Zrr(e){return e==null?e===void 0?Yrr:Krr:Oxt&&Oxt in Object(e)?Brr(e):Wrr(e)}function Xrr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function nir(e){if(!xOt(e))return!1;var t=Jrr(e);return t==$rr||t==eir||t==Qrr||t==tir}function sir(e){return!!Pxt&&Pxt in e}function uir(e){if(e!=null){try{return cir.call(e)}catch{}try{return e+""}catch{}}return""}function Sir(e){if(!xOt(e)||oir(e))return!1;var t=rir(e)?yir:fir;return t.test(lir(e))}function Eir(e,t){return e?.[t]}function Tir(e,t){var n=_ir(e,t);return bir(n)?n:void 0}function Rir(){this.__data__=PU?PU(null):{},this.size=0}function wir(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function Pir(e){var t=this.__data__;if(PU){var n=t[e];return n===Iir?void 0:n}return Oir.call(t,e)?t[e]:void 0}function Dir(e){var t=this.__data__;return PU?t[e]!==void 0:Mir.call(t,e)}function Fir(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=PU&&t===void 0?Uir:t,this}function Qx(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}function $ir(e,t){var n=this.__data__,r=Q5(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function $x(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 Tsr(e,t){if(!t)return!0;let n=Esr(e);return _sr(n,t)}function NOt(){return process.env.CLAUDE_CONFIG_DIR??vsr(Rsr(),".claude")}function Mxt(e){if(!e)return!1;if(typeof e=="boolean")return e;let t=e.toLowerCase().trim();return["1","true","yes","on"].includes(t)}function MOt(e){return{name:e,default:R5,validate:t=>{if(!t)return{effective:R5,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:R5,status:"invalid",message:`Invalid value "${t}" (using default: ${R5})`}:n>Q_e?{effective:Q_e,status:"capped",message:`Capped from ${n} to ${Q_e}`}:{effective:n,status:"valid"}}}}function Osr(){let e="";return typeof process<"u"&&typeof process.cwd=="function"&&(e=wsr(Asr())),{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:ksr(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[Isr,xsr],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 Nsr(){return Psr.sessionId}function Csr({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 Msr(e){return Dxt.add(e),()=>Dxt.delete(e)}function Dsr(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>DOt&&(Zg(`[SLOW OPERATION DETECTED] ${e} (${r.toFixed(1)}ms)`),void 0)}}function sm(e,t,n){let r=Dsr(e);return LOt(`JSON.stringify(${r})`,()=>JSON.stringify(e,t,n))}function Fsr(e){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let t=Usr();return Tsr(e,t)}function Hsr(){return A5||(A5=Csr({writeFn:e=>{let t=jOt();Xg().existsSync(aTe(t))||Xg().mkdirSync(aTe(t)),Xg().appendFileSync(t,e),qsr()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:Lsr()}),Msr(async()=>A5?.dispose())),A5}function Zg(e,{level:t}={level:"debug"}){if(!Fsr(e))return;jsr&&e.includes(` `)&&(e=sm(e));let r=`${new Date().toISOString()} [${t.toUpperCase()}] ${e.trim()} -`;if(LOt()){ysr(r);return}jsr().write(r)}function UOt(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??POt(OOt(),"debug",`${Psr()}.txt`)}function fo(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>COt&&(Zg(`[SLOW OPERATION DETECTED] fs.${e} (${r.toFixed(1)}ms)`),`${e}`,void 0)}}function Xg(){return Bsr}function BTe(){return process.versions.bun!==void 0}function Zsr(){if(Dxt)return A5;if(Dxt=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let e=Mxt(OOt(),"debug");return A5=Mxt(e,`sdk-${Vsr()}.txt`),Ksr(e)||Ysr(e,{recursive:!0}),process.stderr.write(`SDK debug logs: ${A5} -`),A5}function Qv(e){let t=Zsr();if(!t)return;let r=`${new Date().toISOString()} ${e} -`;Wsr(t,r)}function Jsr(e,t){let n={...e};if(t){let r={sandbox:t};if(n.settings)try{r={...DOt(n.settings),sandbox:t}}catch{}n.settings=sm(r)}return n}function Xsr(e){return![".js",".mjs",".tsx",".ts",".jsx"].some(n=>e.endsWith(n))}function FOt(e){return new D5(e)}function eor(e,t){return new D5({...t,resume:e})}function aTe(){return nor}function Ye(e,t){let n=aTe(),r=cTe({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===NU?void 0:NU].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 HOt(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 Eor(e){return new RegExp(`^${HOt(e)}$`)}function _or(e){let t=`${jOt}T${HOt(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 Tor(e,t){return!!((t==="v4"||!t)&&por.test(e)||(t==="v6"||!t)&&mor.test(e))}function vor(e,t){if(!cor.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 Ror(e,t){return!!((t==="v4"||!t)&&hor.test(e)||(t==="v6"||!t)&&gor.test(e))}function Aor(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 Dx(e){if(e instanceof jl){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=mp.create(Dx(r))}return new jl({...e._def,shape:()=>t})}else return e instanceof oE?new oE({...e._def,type:Dx(e.element)}):e instanceof mp?mp.create(Dx(e.unwrap())):e instanceof $g?$g.create(Dx(e.unwrap())):e instanceof Qg?Qg.create(e.items.map(t=>Dx(t))):e}function lTe(e,t){let n=nE(e),r=nE(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=lTe(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(pTe,e),pTe}function kor(e){return e}function Ior(e){return e}function xor(e){}function Oor(e){throw new Error}function Por(e){}function zTe(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 hTe(e,t="|"){return e.map(n=>WTe(n)).join(t)}function BOt(e,t){return typeof t=="bigint"?t.toString():t}function $5(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function e8(e){return e==null}function t8(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function zOt(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 GTe(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Nor(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function Cor(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 For(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 WTe(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function WOt(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Hor(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 qor(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 Bor(e,t){if(!GU(t))throw new Error("Invalid input to extend: expected a plain object");let n={...e._zod.def,get shape(){let r={...e._zod.def.shape,...t};return GTe(this,"shape",r),r},checks:[]};return ny(e,n)}function zor(e,t){return ny(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return GTe(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function Gor(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 Vor(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 Ux(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function kU(e){return typeof e=="string"?e:e?.message}function ty(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=kU(e.inst?._zod.def?.error?.(e))??kU(t?.error?.(e))??kU(n.customError?.(e))??kU(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function Wor(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function n8(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function YOt(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Kor(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function Yor(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 Zor(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 aPt(n)}function ucr(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 Bxt(e,t,n){e.issues.length&&t.issues.push(...iE(n,e.issues)),t.value[n]=e.value}function w5(e,t,n){e.issues.length&&t.issues.push(...iE(n,e.issues)),t.value[n]=e.value}function zxt(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(...iE(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function Gxt(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 yTe(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(GU(e)&&GU(t)){let n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),i={...e,...t};for(let s of r){let o=yTe(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 _ur(){return WU(e=>e.trim())}function Tur(){return WU(e=>e.toLowerCase())}function vur(){return WU(e=>e.toUpperCase())}function Rur(e,t,n){return new e({type:"array",element:t,...Ht(n)})}function Aur(e,t,n){let r=Ht(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function wur(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Ht(n)})}function kur(e,t){if(e instanceof j5){let r=new q5(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 q5(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 tOt(e,t){let n={type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},...Gr.normalizeParams(t)};return new xur(n)}function yp(e){return!!e._zod}function xU(e){let t=Object.values(e);if(t.length===0)return tOt({});let n=t.every(yp),r=t.every(i=>!yp(i));if(n)return tOt(e);if(r)return wor(e);throw new Error("Mixed Zod versions detected in object shape.")}function OU(e,t){return yp(e)?KTe(e,t):e.safeParse(t)}async function eTe(e,t){return yp(e)?await YTe(e,t):await e.safeParseAsync(t)}function KU(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 RU(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 xU(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 tTe(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 Our(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 Pur(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 pPt(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 gPt(e){return iur(mPt,e)}function SPt(e){return sur(yPt,e)}function EPt(e){return our(bPt,e)}function TPt(e){return aur(_Pt,e)}function he(e){return Lcr(Lur,e)}function ui(e){return cur(APt,e)}function rOt(e){return uur(elr,e)}function vc(e){return lur(tlr,e)}function wPt(e){return dur(nlr,e)}function xo(){return fur(rlr)}function slr(e){return pur(ilr,e)}function er(e,t){return Rur(olr,e,t)}function Ge(e,t){let n={type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},...Gr.normalizeParams(t)};return new kPt(n)}function Sp(e,t){return new kPt({type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},catchall:xo(),...Gr.normalizeParams(t)})}function Wi(e,t){return new IPt({type:"union",options:e,...Gr.normalizeParams(t)})}function xPt(e,t,n){return new alr({type:"union",options:t,discriminator:e,...Gr.normalizeParams(n)})}function JTe(e,t){return new clr({type:"intersection",left:e,right:t})}function Oo(e,t,n){return new ulr({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 STe({type:"enum",entries:n,...Gr.normalizeParams(t)})}function St(e,t){return new llr({type:"literal",values:Array.isArray(e)?e:[e],...Gr.normalizeParams(t)})}function OPt(e){return new dlr({type:"transform",transform:e})}function yt(e){return new PPt({type:"optional",innerType:e})}function iOt(e){return new flr({type:"nullable",innerType:e})}function hlr(e,t){return new plr({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function glr(e,t){return new mlr({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function ylr(e,t){return new NPt({type:"nonoptional",innerType:e,...Gr.normalizeParams(t)})}function blr(e,t){return new Slr({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function bTe(e,t){return new Elr({type:"pipe",in:e,out:t})}function Tlr(e){return new _lr({type:"readonly",innerType:e})}function vlr(e,t){let n=new $u({check:"custom",...Gr.normalizeParams(t)});return n._zod.check=e,n}function Rlr(e,t){return Aur(CPt,e??(()=>!0),t)}function Alr(e,t={}){return wur(CPt,e,t)}function wlr(e,t){let n=vlr(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 MPt(e,t){return bTe(OPt(e),t)}function $dr(e){if(e.params.ref.type!=="ref/prompt")throw new TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function efr(e){if(e.params.ref.type!=="ref/resource")throw new TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}function $v(e){return e==="completed"||e==="failed"||e==="cancelled"}function eNt(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function Cr(e,t,n,r,i){e[t]=n,eNt(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"?tNt(t,e.currentPath):t.join("/")}}function cfr(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 ufr(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 lfr(){return{type:"boolean"}}function nNt(e,t){return Er(e.type._def,t)}function rNt(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((i,s)=>rNt(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 ffr(e,t)}}function pfr(e,t){return{...Er(e.innerType._def,t),default:e.defaultValue()}}function hfr(e,t){return t.effectStrategy==="input"?Er(e.schema._def,t):Qu(t)}function mfr(e){return{type:"string",enum:Array.from(e.values)}}function yfr(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(gfr(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 Sfr(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 iNt(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(`^${rTe(r.value,t)}`),r.message,t);break;case"endsWith":ru(n,RegExp(`${rTe(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(rTe(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 rTe(e,t){return t.patternStrategy==="escape"?Efr(e):e}function Efr(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:aOt(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):Cr(e,"pattern",aOt(t,r),n,r)}function aOt(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;cDOt&&(Zg(`[SLOW OPERATION DETECTED] fs.${e} (${r.toFixed(1)}ms)`),`${e}`,void 0)}}function Xg(){return zsr}function GTe(){return process.versions.bun!==void 0}function Jsr(){if(Uxt)return w5;if(Uxt=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let e=Lxt(NOt(),"debug");return w5=Lxt(e,`sdk-${Wsr()}.txt`),Ysr(e)||Zsr(e,{recursive:!0}),process.stderr.write(`SDK debug logs: ${w5} +`),w5}function Qv(e){let t=Jsr();if(!t)return;let r=`${new Date().toISOString()} ${e} +`;Ksr(t,r)}function Xsr(e,t){let n={...e};if(t){let r={sandbox:t};if(n.settings)try{r={...UOt(n.settings),sandbox:t}}catch{}n.settings=sm(r)}return n}function Qsr(e){return![".js",".mjs",".tsx",".ts",".jsx"].some(n=>e.endsWith(n))}function HOt(e){return new L5(e)}function tor(e,t){return new L5({...t,resume:e})}function uTe(){return ror}function Ye(e,t){let n=uTe(),r=lTe({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===NU?void 0:NU].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 BOt(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 _or(e){return new RegExp(`^${BOt(e)}$`)}function Tor(e){let t=`${qOt}T${BOt(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 vor(e,t){return!!((t==="v4"||!t)&&hor.test(e)||(t==="v6"||!t)&&gor.test(e))}function Ror(e,t){if(!uor.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 Aor(e,t){return!!((t==="v4"||!t)&&mor.test(e)||(t==="v6"||!t)&&yor.test(e))}function wor(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 Dx(e){if(e instanceof jl){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=mp.create(Dx(r))}return new jl({...e._def,shape:()=>t})}else return e instanceof oE?new oE({...e._def,type:Dx(e.element)}):e instanceof mp?mp.create(Dx(e.unwrap())):e instanceof $g?$g.create(Dx(e.unwrap())):e instanceof Qg?Qg.create(e.items.map(t=>Dx(t))):e}function fTe(e,t){let n=nE(e),r=nE(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=fTe(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(mTe,e),mTe}function Ior(e){return e}function xor(e){return e}function Oor(e){}function Por(e){throw new Error}function Nor(e){}function VTe(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 gTe(e,t="|"){return e.map(n=>YTe(n)).join(t)}function GOt(e,t){return typeof t=="bigint"?t.toString():t}function e8(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function t8(e){return e==null}function n8(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function VOt(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 WTe(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Cor(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function Mor(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 jor(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 YTe(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function YOt(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function qor(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 Bor(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 zor(e,t){if(!GU(t))throw new Error("Invalid input to extend: expected a plain object");let n={...e._zod.def,get shape(){let r={...e._zod.def.shape,...t};return WTe(this,"shape",r),r},checks:[]};return ny(e,n)}function Gor(e,t){return ny(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return WTe(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function Vor(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 Wor(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 Ux(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function kU(e){return typeof e=="string"?e:e?.message}function ty(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=kU(e.inst?._zod.def?.error?.(e))??kU(t?.error?.(e))??kU(n.customError?.(e))??kU(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function Kor(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function r8(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function JOt(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Yor(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function Zor(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 Jor(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 uPt(n)}function lcr(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 Gxt(e,t,n){e.issues.length&&t.issues.push(...iE(n,e.issues)),t.value[n]=e.value}function k5(e,t,n){e.issues.length&&t.issues.push(...iE(n,e.issues)),t.value[n]=e.value}function Vxt(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(...iE(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function Wxt(e,t,n,r){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(i=>i.issues.map(s=>ty(s,r,ey())))}),t}function bTe(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(GU(e)&&GU(t)){let n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),i={...e,...t};for(let s of r){let o=bTe(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 Tur(){return WU(e=>e.trim())}function vur(){return WU(e=>e.toLowerCase())}function Rur(){return WU(e=>e.toUpperCase())}function Aur(e,t,n){return new e({type:"array",element:t,...Ht(n)})}function wur(e,t,n){let r=Ht(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function kur(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Ht(n)})}function Iur(e,t){if(e instanceof H5){let r=new B5(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 B5(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 rOt(e,t){let n={type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},...Gr.normalizeParams(t)};return new Our(n)}function yp(e){return!!e._zod}function xU(e){let t=Object.values(e);if(t.length===0)return rOt({});let n=t.every(yp),r=t.every(i=>!yp(i));if(n)return rOt(e);if(r)return kor(e);throw new Error("Mixed Zod versions detected in object shape.")}function OU(e,t){return yp(e)?ZTe(e,t):e.safeParse(t)}async function nTe(e,t){return yp(e)?await JTe(e,t):await e.safeParseAsync(t)}function KU(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 RU(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 xU(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 rTe(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 Pur(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 Nur(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 mPt(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 SPt(e){return sur(yPt,e)}function EPt(e){return our(bPt,e)}function TPt(e){return aur(_Pt,e)}function RPt(e){return cur(vPt,e)}function he(e){return Ucr(Uur,e)}function ui(e){return uur(kPt,e)}function sOt(e){return lur(tlr,e)}function vc(e){return dur(nlr,e)}function IPt(e){return fur(rlr,e)}function xo(){return pur(ilr)}function olr(e){return hur(slr,e)}function er(e,t){return Aur(alr,e,t)}function Ge(e,t){let n={type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},...Gr.normalizeParams(t)};return new xPt(n)}function Sp(e,t){return new xPt({type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},catchall:xo(),...Gr.normalizeParams(t)})}function Wi(e,t){return new OPt({type:"union",options:e,...Gr.normalizeParams(t)})}function PPt(e,t,n){return new clr({type:"union",options:t,discriminator:e,...Gr.normalizeParams(n)})}function QTe(e,t){return new ulr({type:"intersection",left:e,right:t})}function Oo(e,t,n){return new llr({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 ETe({type:"enum",entries:n,...Gr.normalizeParams(t)})}function St(e,t){return new dlr({type:"literal",values:Array.isArray(e)?e:[e],...Gr.normalizeParams(t)})}function NPt(e){return new flr({type:"transform",transform:e})}function yt(e){return new CPt({type:"optional",innerType:e})}function oOt(e){return new plr({type:"nullable",innerType:e})}function mlr(e,t){return new hlr({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function ylr(e,t){return new glr({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Slr(e,t){return new MPt({type:"nonoptional",innerType:e,...Gr.normalizeParams(t)})}function Elr(e,t){return new blr({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function _Te(e,t){return new _lr({type:"pipe",in:e,out:t})}function vlr(e){return new Tlr({type:"readonly",innerType:e})}function Rlr(e,t){let n=new $u({check:"custom",...Gr.normalizeParams(t)});return n._zod.check=e,n}function Alr(e,t){return wur(DPt,e??(()=>!0),t)}function wlr(e,t={}){return kur(DPt,e,t)}function klr(e,t){let n=Rlr(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 LPt(e,t){return _Te(NPt(e),t)}function efr(e){if(e.params.ref.type!=="ref/prompt")throw new TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function tfr(e){if(e.params.ref.type!=="ref/resource")throw new TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}function $v(e){return e==="completed"||e==="failed"||e==="cancelled"}function nNt(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function Cr(e,t,n,r,i){e[t]=n,nNt(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"?rNt(t,e.currentPath):t.join("/")}}function ufr(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 lfr(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 dfr(){return{type:"boolean"}}function iNt(e,t){return Er(e.type._def,t)}function sNt(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((i,s)=>sNt(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 pfr(e,t)}}function hfr(e,t){return{...Er(e.innerType._def,t),default:e.defaultValue()}}function mfr(e,t){return t.effectStrategy==="input"?Er(e.schema._def,t):Qu(t)}function gfr(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(yfr(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 bfr(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 oNt(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(`^${sTe(r.value,t)}`),r.message,t);break;case"endsWith":ru(n,RegExp(`${sTe(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(sTe(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 sTe(e,t){return t.patternStrategy==="escape"?_fr(e):e}function _fr(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:uOt(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):Cr(e,"pattern",uOt(t,r),n,r)}function uOt(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;let n={i:e.flags.includes("i"),m:e.flags.includes("m"),s:e.flags.includes("s")},r=n.i?e.source.toLowerCase():e.source,i="",s=!1,o=!1,a=!1;for(let c=0;c({...r,[i]:Er(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",i]})??Qu(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let n={type:"object",additionalProperties:Er(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]})??t.allowedAdditionalProperties};if(t.target==="openApi3")return n;if(e.keyType?._def.typeName===De.ZodString&&e.keyType._def.checks?.length){let{type:r,...i}=iNt(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}=nNt(e.keyType._def,t);return{...n,propertyNames:i}}}return n}function _fr(e,t){if(t.mapStrategy==="record")return sNt(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 Tfr(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 vfr(e){return e.target==="openAi"?void 0:{not:Qu({...e,currentPath:[...e.currentPath,"not"]})}}function Rfr(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}function Afr(e,t){if(t.target==="openApi3")return cOt(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(r=>r._def.typeName in W5&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((i,s)=>{let o=W5[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 cOt(e,t)}function wfr(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:W5[e.innerType._def.typeName],nullable:!0}:{type:[W5[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 kfr(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",eNt(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 Ifr(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=Ofr(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=xfr(e,t);return o!==void 0&&(r.additionalProperties=o),r}function xfr(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 Ofr(e){try{return e.isOptional()}catch{return!0}}function Cfr(e,t){return Er(e.type._def,t)}function Mfr(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 Dfr(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 Lfr(e){return{not:Qu(e)}}function Ufr(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!==sfr)return a}if(r&&!n){let a=Hfr(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=jfr(e,e.typeName,t),o=typeof s=="function"?Er(s(),t):s;if(o&&qfr(e,t,o),t.postProcess){let a=t.postProcess(o,e,t);return i.jsonSchema=o,a}return i.jsonSchema=o,o}function zfr(e){return!e||e==="jsonSchema7"||e==="draft-7"?"draft-7":e==="jsonSchema2019-09"||e==="draft-2020-12"?"draft-2020-12":"draft-7"}function uOt(e,t){var n,r,i;return yp(e)?kur(e,{target:zfr(t?.target),io:(n=t?.pipeStrategy)!==null&&n!==void 0?n:"input"}):Bfr(e,{strictUnions:(r=t?.strictUnions)!==null&&r!==void 0?r:!0,pipeStrategy:(i=t?.pipeStrategy)!==null&&i!==void 0?i:"input"})}function lOt(e){let t=KU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=pPt(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function dOt(e,t){let n=OU(e,t);if(!n.success)throw n.error;return n.data}function fOt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Vfr(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];fOt(o)&&fOt(s)?n[i]={...o,...s}:n[i]=s}return n}function Yfr(){let e=new Wfr.Ajv({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0}),t=Kfr.default;return t(e),e}function Zfr(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 Jfr(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 Xfr(e){return!!e&&typeof e=="object"&&oNt in e}function Qfr(e){let t=e[oNt];return t?.complete}function epr(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"),!$fr.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 tpr(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 hOt(e){let t=epr(e);return tpr(e,t.warnings),t.isValid}function aNt(e){return e!==null&&typeof e=="object"&&"parse"in e&&typeof e.parse=="function"&&"safeParse"in e&&typeof e.safeParse=="function"}function rpr(e){return"_def"in e||"_zod"in e||aNt(e)}function DTe(e){return typeof e!="object"||e===null||rpr(e)?!1:Object.keys(e).length===0?!0:Object.values(e).some(aNt)}function mOt(e){if(e)return DTe(e)?xU(e):e}function ipr(e){let t=KU(e);return t?Object.entries(t).map(([n,r])=>{let i=Our(r),s=Pur(r);return{name:n,description:i,required:!s}}):[]}function tE(e){let t=KU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=pPt(n);if(typeof r=="string")return r;throw new Error("Schema method literal must be a string")}function gOt(e){return{completion:{values:e.slice(0,100),total:e.length,hasMore:e.length>100}}}function spr(e,t,n,r){return{name:e,description:t,inputSchema:n,handler:r}}function opr(e){let t=new MTe({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 apr({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 de=krr(import.meta.url),_e=kxt(de,"..");c=kxt(_e,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.77";let{abortController:u=jTe(),additionalDirectories:l=[],agents:d,allowedTools:f=[],betas:p,canUseTool:h,continue:m,cwd:g,disallowedTools:y=[],tools:b,env:S,executable:E=BTe()?"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:j,strictMcpConfig:H}=s,K=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[de,_e]of Object.entries(W))_e.type==="sdk"&&"instance"in _e?(Le.set(de,_e.instance),se[de]={type:"sdk",name:de}):se[de]=_e;let Ae=typeof e=="string",z=new N5({abortController:u,additionalDirectories:l,betas:p,cwd:g,executable:E,executableArgs:_,extraArgs:T,pathToClaudeCodeExecutable:c,env:ee,forkSession:x,stderr:j,maxThinkingTokens:C,maxTurns:L,maxBudgetUsd:G,model:$,fallbackModel:R,jsonSchema:K,permissionMode:Q,allowDangerouslySkipPermissions:B,permissionPromptToolName:F,continueConversation:m,resume:U,resumeSessionAt:M,settingSources:r??[],allowedTools:f,disallowedTools:y,tools:b,mcpServers:se,strictMcpConfig:H,canUseTool:!!h,hooks:!!k,includePartialMessages:P,persistSession:N,plugins:V,sandbox:i,spawnClaudeCodeProcess:s.spawnClaudeCodeProcess}),J={systemPrompt:o,appendSystemPrompt:a,agents:d},oe=new M5(z,Ae,h,k,u,Le,K,J);return typeof e=="string"?z.write(sm({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:e}]},parent_tool_use_id:null})+` -`):oe.streamInput(e),oe}function cpr(e){return FOt(e)}function upr(e,t){return eor(e,t)}async function lpr(e,t){let n=[];try{let o=Inr(n,FOt(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=xnr(n,r,i);s&&await s}}var Tnr,vnr,iTe,Rnr,Anr,yOt,Xe,SOt,wnr,knr,Inr,xnr,x5,wxt,_n,lr,aE,K5,Onr,bOt,EOt,O5,Pnr,bp,Nnr,Cnr,_Ot,Mnr,Y5,Z5,LTe,J5,UTe,Dnr,Lnr,Unr,Fnr,jnr,Hnr,qnr,Bnr,znr,Gnr,Vnr,Wnr,Knr,Ynr,Znr,Jnr,Xnr,Qnr,FTe,$nr,err,trr,nrr,TOt,vOt,rrr,irr,srr,orr,arr,ROt,crr,urr,lrr,drr,frr,prr,hrr,mrr,grr,yrr,Srr,brr,Err,_rr,Trr,vrr,AOt,Rrr,Arr,wrr,xrr,Crr,Mrr,Drr,Lrr,HTe,Urr,P5,wOt,Frr,jrr,vU,qrr,Brr,zrr,Vrr,Wrr,Krr,Ixt,Zrr,kOt,Xrr,Qrr,$rr,eir,nir,rir,Z_e,xxt,sir,oir,air,uir,lir,dir,fir,pir,hir,mir,gir,Sir,Eir,IOt,Tir,PU,Rir,wir,kir,Iir,xir,Pir,Nir,Cir,Dir,Lir,Fir,Oxt,Hir,Bir,X5,Gir,Vir,Kir,Zir,Xir,$ir,esr,tsr,nsr,isr,osr,Q5,usr,dsr,psr,msr,xOt,gsr,VU,Pxt,Ssr,J_e,v5,ksr,$Pi,Isr,Osr,Cxt,COt,DOt,Dsr,Lsr,LOt,Fsr,R5,Hsr,qsr,Bsr,zsr,Gsr,rE,A5,Dxt,N5,C5,oTe,M5,D5,ir,Uxt,nt,nE,Oe,Zd,tor,NU,nor,cTe,iu,Vt,wU,Xu,Fxt,jxt,Fx,L5,lt,Jd,Hxt,Tn,ror,ior,sor,oor,aor,cor,uor,lor,dor,X_e,por,hor,mor,gor,yor,Sor,jOt,bor,jx,CU,MU,DU,LU,UU,Hx,qx,FU,sE,am,jU,oE,jl,Bx,Yg,uTe,zx,Qg,dTe,HU,qU,fTe,Gx,Vx,Wx,Kx,eR,gp,mp,$g,Yx,Zx,BU,U5,F5,Jx,oNi,De,aNi,cNi,uNi,lNi,dNi,fNi,pNi,hNi,mNi,gNi,yNi,SNi,bNi,ENi,wor,_Ni,TNi,vNi,RNi,ANi,wNi,kNi,INi,xNi,ONi,PNi,NNi,CNi,MNi,DNi,LNi,UNi,FNi,jNi,HNi,tR,pTe,Gr,VTe,GOt,Lor,VOt,Uor,KOt,jor,mTe,ZOt,JOt,r8,XOt,Jor,QOt,Xor,$Ot,KTe,ePt,YTe,Qor,$or,ear,tar,nar,rar,iar,sar,qxt,oar,aar,uar,lar,dar,far,par,tPt,har,mar,nPt,gar,bar,Ear,_ar,Tar,Rar,Aar,war,$u,iPt,sPt,oPt,kar,Iar,xar,Oar,Par,i8,Nar,Car,Mar,Dar,Lar,Uar,Far,gTe,jar,li,ZTe,Vi,Har,qar,Bar,zar,Gar,Var,War,Kar,Yar,Zar,Jar,Xar,Qar,$ar,ecr,tcr,ncr,rcr,icr,scr,acr,ccr,lcr,cPt,dcr,fcr,pcr,hcr,mcr,gcr,uPt,lPt,ycr,Scr,bcr,Ecr,_cr,Tcr,vcr,Rcr,Acr,wcr,kcr,Icr,xcr,Ocr,Pcr,Ncr,Ccr,j5,IU,q5,Iur,xur,hPt,mPt,yPt,bPt,_Pt,vPt,qNi,s8,Nur,Cur,Mur,Dur,ss,RPt,Lur,os,Uur,nOt,k5,Fur,jur,Hur,qur,Bur,zur,Gur,Vur,Wur,Kur,Yur,Zur,Jur,Xur,Qur,$ur,APt,elr,tlr,nlr,rlr,ilr,olr,kPt,IPt,alr,clr,ulr,STe,llr,dlr,PPt,flr,plr,mlr,NPt,Slr,Elr,_lr,CPt,DPt,klr,Jg,o8,om,LPt,UPt,Ilr,XTe,xlr,el,ja,nR,Xd,Ac,a8,FPt,sOt,jPt,Olr,HPt,I5,Ft,qPt,Plr,BNi,QTe,Nlr,$Te,Clr,YU,Xx,BPt,Mlr,Dlr,Llr,Ulr,Flr,jlr,zPt,Hlr,qlr,GPt,eve,Blr,zlr,tve,Glr,ZU,JU,XU,c8,Vlr,B5,nve,rve,ive,sve,ove,Wlr,Klr,VPt,WPt,ave,KPt,nO,YPt,Ylr,ETe,Zlr,_Te,Jlr,cve,Xlr,TTe,Qlr,$lr,edr,tdr,ndr,rdr,idr,sdr,odr,adr,vTe,cdr,udr,RTe,uve,lve,dve,ldr,ddr,fdr,fve,pdr,hdr,mdr,gdr,ydr,ZPt,ATe,Sdr,pve,zNi,bdr,z5,Edr,G5,_dr,JPt,Tdr,vdr,Rdr,Adr,wdr,kdr,Idr,V5,xdr,Odr,Pdr,XPt,QPt,Ndr,Cdr,Mdr,Ddr,Ldr,Udr,Fdr,jdr,Hdr,qdr,Bdr,zdr,Gdr,Vdr,Wdr,Kdr,Ydr,Zdr,wTe,Jdr,Xdr,Qdr,kTe,tfr,nfr,rfr,$Pt,ifr,GNi,VNi,WNi,KNi,YNi,ZNi,Et,ITe,sfr,oOt,ofr,afr,tNt,dfr,ffr,gfr,nTe,pp,bfr,W5,cOt,Pfr,Nfr,Ffr,jfr,Hfr,qfr,Bfr,Gfr,xTe,Wfr,Kfr,OTe,PTe,NTe,oNt,pOt,$fr,CTe,MTe,npr,AU,uNt=v(()=>{Tnr=Object.create,vnr=Object.getPrototypeOf,iTe=Object.defineProperty,Rnr=Object.getOwnPropertyNames,Anr=Object.prototype.hasOwnProperty,yOt=(e,t,n)=>{n=e!=null?Tnr(vnr(e)):{};let r=t||!e||!e.__esModule?iTe(n,"default",{value:e,enumerable:!0}):n;for(let i of Rnr(e))Anr.call(r,i)||iTe(r,i,{get:()=>e[i],enumerable:!0});return r},Xe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),SOt=(e,t)=>{for(var n in t)iTe(e,n,{get:t[n],enumerable:!0,configurable:!0,set:r=>t[n]=()=>r})},wnr=Symbol.dispose||Symbol.for("Symbol.dispose"),knr=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),Inr=(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[knr]),r===void 0&&(r=t[wnr]),typeof r!="function")throw TypeError("Object not disposable");e.push([n,r,t])}else n&&e.push([n]);return t},xnr=(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()},x5=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=x5();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=x5(),n=wxt(),r=x5();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=wxt();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,j){return this}}class o extends s{constructor(M,j,H){super(),this.varKind=M,this.name=j,this.rhs=H}render({es5:M,_n:j}){let H=M?n.varKinds.var:this.varKind,K=this.rhs===void 0?"":` = ${this.rhs}`;return`${H} ${this.name}${K};`+j}optimizeNames(M,j){if(M[this.name.str])return this.rhs&&(this.rhs=L(this.rhs,M,j)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class a extends s{constructor(M,j,H){super(),this.lhs=M,this.rhs=j,this.sideEffects=H}render({_n:M}){return`${this.lhs} = ${this.rhs};`+M}optimizeNames(M,j){if(!(this.lhs instanceof t.Name&&!M[this.lhs.str]&&!this.sideEffects))return this.rhs=L(this.rhs,M,j),this}get names(){let M=this.lhs instanceof t.Name?{}:{...this.lhs.names};return C(M,this.rhs)}}class c extends a{constructor(M,j,H,K){super(M,H,K),this.op=j}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,j){return this.code=L(this.code,M,j),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((j,H)=>j+H.render(M),"")}optimizeNodes(){let{nodes:M}=this,j=M.length;for(;j--;){let H=M[j].optimizeNodes();Array.isArray(H)?M.splice(j,1,...H):H?M[j]=H:M.splice(j,1)}return M.length>0?this:void 0}optimizeNames(M,j){let{nodes:H}=this,K=H.length;for(;K--;){let ee=H[K];ee.optimizeNames(M,j)||(G(M,ee.names),H.splice(K,1))}return H.length>0?this:void 0}get names(){return this.nodes.reduce((M,j)=>N(M,j.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,j){super(j),this.condition=M}render(M){let j=`if(${this.condition})`+super.render(M);return this.else&&(j+="else "+this.else.render(M)),j}optimizeNodes(){super.optimizeNodes();let M=this.condition;if(M===!0)return this.nodes;let j=this.else;if(j){let H=j.optimizeNodes();j=this.else=Array.isArray(H)?new g(H):H}if(j)return M===!1?j instanceof y?j:j.nodes:this.nodes.length?this:new y(W(M),j instanceof y?[j]:j.nodes);if(!(M===!1||!this.nodes.length))return this}optimizeNames(M,j){var H;if(this.else=(H=this.else)===null||H===void 0?void 0:H.optimizeNames(M,j),!!(super.optimizeNames(M,j)||this.else))return this.condition=L(this.condition,M,j),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,j){if(super.optimizeNames(M,j))return this.iteration=L(this.iteration,M,j),this}get names(){return N(super.names,this.iteration.names)}}class E extends b{constructor(M,j,H,K){super(),this.varKind=M,this.name=j,this.from=H,this.to=K}render(M){let j=M.es5?n.varKinds.var:this.varKind,{name:H,from:K,to:ee}=this;return`for(${j} ${H}=${K}; ${H}<${ee}; ${H}++)`+super.render(M)}get names(){let M=C(super.names,this.from);return C(M,this.to)}}class _ extends b{constructor(M,j,H,K){super(),this.loop=M,this.varKind=j,this.name=H,this.iterable=K}render(M){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(M)}optimizeNames(M,j){if(super.optimizeNames(M,j))return this.iterable=L(this.iterable,M,j),this}get names(){return N(super.names,this.iterable.names)}}class T extends h{constructor(M,j,H){super(),this.name=M,this.args=j,this.async=H}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 j="try"+super.render(M);return this.catch&&(j+=this.catch.render(M)),this.finally&&(j+=this.finally.render(M)),j}optimizeNodes(){var M,j;return super.optimizeNodes(),(M=this.catch)===null||M===void 0||M.optimizeNodes(),(j=this.finally)===null||j===void 0||j.optimizeNodes(),this}optimizeNames(M,j){var H,K;return super.optimizeNames(M,j),(H=this.catch)===null||H===void 0||H.optimizeNames(M,j),(K=this.finally)===null||K===void 0||K.optimizeNames(M,j),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,j={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...j,_n:j.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,j){let H=this._extScope.value(M,j);return(this._values[H.prefix]||(this._values[H.prefix]=new Set)).add(H),H}getScopeValue(M,j){return this._extScope.getValue(M,j)}scopeRefs(M){return this._extScope.scopeRefs(M,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(M,j,H,K){let ee=this._scope.toName(j);return H!==void 0&&K&&(this._constants[ee.str]=H),this._leafNode(new o(M,ee,H)),ee}const(M,j,H){return this._def(n.varKinds.const,M,j,H)}let(M,j,H){return this._def(n.varKinds.let,M,j,H)}var(M,j,H){return this._def(n.varKinds.var,M,j,H)}assign(M,j,H){return this._leafNode(new a(M,j,H))}add(M,j){return this._leafNode(new c(M,e.operators.ADD,j))}code(M){return typeof M=="function"?M():M!==t.nil&&this._leafNode(new f(M)),this}object(...M){let j=["{"];for(let[H,K]of M)j.length>1&&j.push(","),j.push(H),(H!==K||this.opts.es5)&&(j.push(":"),(0,t.addCodeArg)(j,K));return j.push("}"),new t._Code(j)}if(M,j,H){if(this._blockNode(new y(M)),j&&H)this.code(j).else().code(H).endIf();else if(j)this.code(j).endIf();else if(H)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,j){return this._blockNode(M),j&&this.code(j).endFor(),this}for(M,j){return this._for(new S(M),j)}forRange(M,j,H,K,ee=this.opts.es5?n.varKinds.var:n.varKinds.let){let se=this._scope.toName(M);return this._for(new E(ee,se,j,H),()=>K(se))}forOf(M,j,H,K=n.varKinds.const){let ee=this._scope.toName(M);if(this.opts.es5){let se=j instanceof t.Name?j:this.var("_arr",j);return this.forRange("_i",0,(0,t._)`${se}.length`,Le=>{this.var(ee,(0,t._)`${se}[${Le}]`),H(ee)})}return this._for(new _("of",K,ee,j),()=>H(ee))}forIn(M,j,H,K=this.opts.es5?n.varKinds.var:n.varKinds.const){if(this.opts.ownProperties)return this.forOf(M,(0,t._)`Object.keys(${j})`,H);let ee=this._scope.toName(M);return this._for(new _("in",K,ee,j),()=>H(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 j=new R;if(this._blockNode(j),this.code(M),j.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(R)}try(M,j,H){if(!j&&!H)throw new Error('CodeGen: "try" without "catch" and "finally"');let K=new A;if(this._blockNode(K),this.code(M),j){let ee=this.name("e");this._currNode=K.catch=new x(ee),j(ee)}return H&&(this._currNode=K.finally=new k,this.code(H)),this._endBlockNode(x,k)}throw(M){return this._leafNode(new d(M))}block(M,j){return this._blockStarts.push(this._nodes.length),M&&this.code(M).endBlock(j),this}endBlock(M){let j=this._blockStarts.pop();if(j===void 0)throw new Error("CodeGen: not in self-balancing block");let H=this._nodes.length-j;if(H<0||M!==void 0&&H!==M)throw new Error(`CodeGen: wrong number of nodes: ${H} vs ${M} expected`);return this._nodes.length=j,this}func(M,j=t.nil,H,K){return this._blockNode(new T(M,j,H)),K&&this.code(K).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,j){let H=this._currNode;if(H instanceof M||j&&H instanceof j)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${j?`${M.kind}/${j.kind}`:M.kind}"`)}_elseNode(M){let j=this._currNode;if(!(j instanceof y))throw new Error('CodeGen: "else" without "if"');return this._currNode=j.else=M,this}get _root(){return this._nodes[0]}get _currNode(){let M=this._nodes;return M[M.length-1]}set _currNode(M){let j=this._nodes;j[j.length-1]=M}}e.CodeGen=P;function N(U,M){for(let j in M)U[j]=(U[j]||0)+(M[j]||0);return U}function C(U,M){return M instanceof t._CodeOrName?N(U,M.names):U}function L(U,M,j){if(U instanceof t.Name)return H(U);if(!K(U))return U;return new t._Code(U._items.reduce((ee,se)=>(se instanceof t.Name&&(se=H(se)),se instanceof t._Code?ee.push(...se._items):ee.push(se),ee),[]));function H(ee){let se=j[ee.str];return se===void 0||M[ee.str]!==1?ee:(delete M[ee.str],se)}function K(ee){return ee instanceof t._Code&&ee._items.some(se=>se instanceof t.Name&&M[se.str]===1&&j[se.str]!==void 0)}}function G(U,M){for(let j in M)U[j]=(U[j]||0)-(M[j]||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,j)=>M===t.nil?j:j===t.nil?M:(0,t._)`${V(M)} ${U} ${V(j)}`}function V(U){return U instanceof t.Name?U:(0,t._)`(${U})`}}),lr=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=x5();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=_}),aE=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}),K5=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=lr(),r=aE();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])}}),Onr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.boolOrEmptySchema=e.topBoolOrEmptySchema=void 0;var t=K5(),n=_n(),r=aE(),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)}}),bOt=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}),EOt=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}),O5=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=bOt(),n=EOt(),r=K5(),i=_n(),s=lr(),o;(function(S){S[S.Correct=0]="Correct",S[S.Wrong=1]="Wrong"})(o||(e.DataType=o={}));function a(S){let E=c(S.type);if(E.includes("null")){if(S.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!E.length&&S.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');S.nullable===!0&&E.push("null")}return E}e.getSchemaTypes=a;function c(S){let E=Array.isArray(S)?S:S?[S]:[];if(E.every(t.isJSONType))return E;throw new Error("type must be JSONType or JSONType[]: "+E.join(","))}e.getJSONTypes=c;function u(S,E){let{gen:_,data:T,opts:R}=S,A=d(E,R.coerceTypes),x=E.length>0&&!(A.length===0&&E.length===1&&(0,n.schemaHasRulesForType)(S,E[0]));if(x){let k=m(E,T,R.strictNumbers,o.Wrong);_.if(k,()=>{A.length?f(S,E,A):y(S)})}return x}e.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(S,E){return E?S.filter(_=>l.has(_)||E==="array"&&_==="array"):[]}function f(S,E,_){let{gen:T,data:R,opts:A}=S,x=T.let("dataType",(0,i._)`typeof ${R}`),k=T.let("coerced",(0,i._)`undefined`);A.coerceTypes==="array"&&T.if((0,i._)`${x} == 'object' && Array.isArray(${R}) && ${R}.length == 1`,()=>T.assign(R,(0,i._)`${R}[0]`).assign(x,(0,i._)`typeof ${R}`).if(m(E,R,A.strictNumbers),()=>T.assign(k,R))),T.if((0,i._)`${k} !== undefined`);for(let N of _)(l.has(N)||N==="array"&&A.coerceTypes==="array")&&P(N);T.else(),y(S),T.endIf(),T.if((0,i._)`${k} !== undefined`,()=>{T.assign(R,k),p(S,k)});function P(N){switch(N){case"string":T.elseIf((0,i._)`${x} == "number" || ${x} == "boolean"`).assign(k,(0,i._)`"" + ${R}`).elseIf((0,i._)`${R} === null`).assign(k,(0,i._)`""`);return;case"number":T.elseIf((0,i._)`${x} == "boolean" || ${R} === null +]`;continue}i+=r[c],r[c]==="\\"?s=!0:o&&r[c]==="]"?o=!1:!o&&r[c]==="["&&(o=!0)}try{new RegExp(i)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return i}function aNt(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}=oNt(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}=iNt(e.keyType._def,t);return{...n,propertyNames:i}}}return n}function Tfr(e,t){if(t.mapStrategy==="record")return aNt(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 vfr(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 Rfr(e){return e.target==="openAi"?void 0:{not:Qu({...e,currentPath:[...e.currentPath,"not"]})}}function Afr(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}function wfr(e,t){if(t.target==="openApi3")return lOt(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(r=>r._def.typeName in K5&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((i,s)=>{let o=K5[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 lOt(e,t)}function kfr(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:K5[e.innerType._def.typeName],nullable:!0}:{type:[K5[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 Ifr(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",nNt(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 xfr(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=Pfr(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=Ofr(e,t);return o!==void 0&&(r.additionalProperties=o),r}function Ofr(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 Pfr(e){try{return e.isOptional()}catch{return!0}}function Mfr(e,t){return Er(e.type._def,t)}function Dfr(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 Lfr(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 Ufr(e){return{not:Qu(e)}}function Ffr(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!==ofr)return a}if(r&&!n){let a=qfr(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=Hfr(e,e.typeName,t),o=typeof s=="function"?Er(s(),t):s;if(o&&Bfr(e,t,o),t.postProcess){let a=t.postProcess(o,e,t);return i.jsonSchema=o,a}return i.jsonSchema=o,o}function Gfr(e){return!e||e==="jsonSchema7"||e==="draft-7"?"draft-7":e==="jsonSchema2019-09"||e==="draft-2020-12"?"draft-2020-12":"draft-7"}function dOt(e,t){var n,r,i;return yp(e)?Iur(e,{target:Gfr(t?.target),io:(n=t?.pipeStrategy)!==null&&n!==void 0?n:"input"}):zfr(e,{strictUnions:(r=t?.strictUnions)!==null&&r!==void 0?r:!0,pipeStrategy:(i=t?.pipeStrategy)!==null&&i!==void 0?i:"input"})}function fOt(e){let t=KU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=mPt(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function pOt(e,t){let n=OU(e,t);if(!n.success)throw n.error;return n.data}function hOt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Wfr(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];hOt(o)&&hOt(s)?n[i]={...o,...s}:n[i]=s}return n}function Zfr(){let e=new Kfr.Ajv({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0}),t=Yfr.default;return t(e),e}function Jfr(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 Xfr(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 Qfr(e){return!!e&&typeof e=="object"&&cNt in e}function $fr(e){let t=e[cNt];return t?.complete}function tpr(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"),!epr.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 npr(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 gOt(e){let t=tpr(e);return npr(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 ipr(e){return"_def"in e||"_zod"in e||uNt(e)}function UTe(e){return typeof e!="object"||e===null||ipr(e)?!1:Object.keys(e).length===0?!0:Object.values(e).some(uNt)}function yOt(e){if(e)return UTe(e)?xU(e):e}function spr(e){let t=KU(e);return t?Object.entries(t).map(([n,r])=>{let i=Pur(r),s=Nur(r);return{name:n,description:i,required:!s}}):[]}function tE(e){let t=KU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=mPt(n);if(typeof r=="string")return r;throw new Error("Schema method literal must be a string")}function SOt(e){return{completion:{values:e.slice(0,100),total:e.length,hasMore:e.length>100}}}function opr(e,t,n,r){return{name:e,description:t,inputSchema:n,handler:r}}function apr(e){let t=new LTe({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 cpr({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 de=Irr(import.meta.url),_e=xxt(de,"..");c=xxt(_e,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.77";let{abortController:u=qTe(),additionalDirectories:l=[],agents:d,allowedTools:f=[],betas:p,canUseTool:h,continue:m,cwd:g,disallowedTools:y=[],tools:b,env:S,executable:E=GTe()?"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:j,strictMcpConfig:H}=s,K=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[de,_e]of Object.entries(W))_e.type==="sdk"&&"instance"in _e?(Le.set(de,_e.instance),se[de]={type:"sdk",name:de}):se[de]=_e;let Ae=typeof e=="string",z=new C5({abortController:u,additionalDirectories:l,betas:p,cwd:g,executable:E,executableArgs:_,extraArgs:T,pathToClaudeCodeExecutable:c,env:ee,forkSession:x,stderr:j,maxThinkingTokens:C,maxTurns:L,maxBudgetUsd:G,model:$,fallbackModel:R,jsonSchema:K,permissionMode:Q,allowDangerouslySkipPermissions:B,permissionPromptToolName:F,continueConversation:m,resume:U,resumeSessionAt:M,settingSources:r??[],allowedTools:f,disallowedTools:y,tools:b,mcpServers:se,strictMcpConfig:H,canUseTool:!!h,hooks:!!k,includePartialMessages:P,persistSession:N,plugins:V,sandbox:i,spawnClaudeCodeProcess:s.spawnClaudeCodeProcess}),J={systemPrompt:o,appendSystemPrompt:a,agents:d},oe=new D5(z,Ae,h,k,u,Le,K,J);return typeof e=="string"?z.write(sm({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:e}]},parent_tool_use_id:null})+` +`):oe.streamInput(e),oe}function upr(e){return HOt(e)}function lpr(e,t){return tor(e,t)}async function dpr(e,t){let n=[];try{let o=xnr(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=Onr(n,r,i);s&&await s}}var vnr,Rnr,oTe,Anr,wnr,bOt,Xe,EOt,knr,Inr,xnr,Onr,O5,Ixt,_n,lr,aE,Y5,Pnr,_Ot,TOt,P5,Nnr,bp,Cnr,Mnr,vOt,Dnr,Z5,J5,FTe,X5,jTe,Lnr,Unr,Fnr,jnr,Hnr,qnr,Bnr,znr,Gnr,Vnr,Wnr,Knr,Ynr,Znr,Jnr,Xnr,Qnr,$nr,HTe,err,trr,nrr,rrr,ROt,AOt,irr,srr,orr,arr,crr,wOt,urr,lrr,drr,frr,prr,hrr,mrr,grr,yrr,Srr,brr,Err,_rr,Trr,vrr,Rrr,kOt,Arr,wrr,krr,Orr,Mrr,Drr,Lrr,Urr,BTe,Frr,N5,IOt,jrr,Hrr,vU,Brr,zrr,Grr,Wrr,Krr,Yrr,Oxt,Jrr,xOt,Qrr,$rr,eir,tir,rir,iir,X_e,Pxt,oir,air,cir,lir,dir,fir,pir,hir,mir,gir,yir,bir,_ir,OOt,vir,PU,Air,kir,Iir,xir,Oir,Nir,Cir,Mir,Lir,Uir,jir,Nxt,qir,zir,Q5,Vir,Wir,Yir,Jir,Qir,esr,tsr,nsr,rsr,ssr,asr,$5,lsr,fsr,hsr,gsr,POt,ysr,VU,Cxt,bsr,Q_e,R5,Isr,tNi,xsr,Psr,Dxt,DOt,UOt,Lsr,Usr,FOt,jsr,A5,qsr,Bsr,zsr,Gsr,Vsr,rE,w5,Uxt,C5,M5,cTe,D5,L5,ir,jxt,nt,nE,Oe,Zd,nor,NU,ror,lTe,iu,Vt,wU,Xu,Hxt,qxt,Fx,U5,lt,Jd,Bxt,Tn,ior,sor,oor,aor,cor,uor,lor,dor,por,$_e,hor,mor,gor,yor,Sor,bor,qOt,Eor,jx,CU,MU,DU,LU,UU,Hx,qx,FU,sE,am,jU,oE,jl,Bx,Yg,dTe,zx,Qg,pTe,HU,qU,hTe,Gx,Vx,Wx,Kx,eR,gp,mp,$g,Yx,Zx,BU,F5,j5,Jx,cNi,De,uNi,lNi,dNi,fNi,pNi,hNi,mNi,gNi,yNi,SNi,bNi,ENi,_Ni,TNi,kor,vNi,RNi,ANi,wNi,kNi,INi,xNi,ONi,PNi,NNi,CNi,MNi,DNi,LNi,UNi,FNi,jNi,HNi,qNi,BNi,tR,mTe,Gr,KTe,WOt,Uor,KOt,For,ZOt,Hor,yTe,XOt,QOt,i8,$Ot,Xor,ePt,Qor,tPt,ZTe,nPt,JTe,$or,ear,tar,nar,rar,iar,sar,oar,zxt,aar,car,lar,dar,far,par,har,rPt,mar,gar,iPt,yar,Ear,_ar,Tar,Rar,Aar,war,kar,$u,oPt,aPt,cPt,Iar,xar,Oar,Par,Nar,s8,Car,Mar,Dar,Lar,Uar,Far,jar,STe,Har,li,XTe,Vi,qar,Bar,zar,Gar,Var,War,Kar,Yar,Zar,Jar,Xar,Qar,$ar,ecr,tcr,ncr,rcr,icr,scr,ocr,ccr,ucr,dcr,lPt,fcr,pcr,hcr,mcr,gcr,ycr,dPt,fPt,Scr,bcr,Ecr,_cr,Tcr,vcr,Rcr,Acr,wcr,kcr,Icr,xcr,Ocr,Pcr,Ncr,Ccr,Mcr,H5,IU,B5,xur,Our,gPt,yPt,bPt,_Pt,vPt,APt,zNi,o8,Cur,Mur,Dur,Lur,ss,wPt,Uur,os,Fur,iOt,I5,jur,Hur,qur,Bur,zur,Gur,Vur,Wur,Kur,Yur,Zur,Jur,Xur,Qur,$ur,elr,kPt,tlr,nlr,rlr,ilr,slr,alr,xPt,OPt,clr,ulr,llr,ETe,dlr,flr,CPt,plr,hlr,glr,MPt,blr,_lr,Tlr,DPt,UPt,Ilr,Jg,a8,om,FPt,jPt,xlr,$Te,Olr,el,ja,nR,Xd,Ac,c8,HPt,aOt,qPt,Plr,BPt,x5,Ft,zPt,Nlr,GNi,eve,Clr,tve,Mlr,YU,Xx,GPt,Dlr,Llr,Ulr,Flr,jlr,Hlr,VPt,qlr,Blr,WPt,nve,zlr,Glr,rve,Vlr,ZU,JU,XU,u8,Wlr,z5,ive,sve,ove,ave,cve,Klr,Ylr,KPt,YPt,uve,ZPt,nO,JPt,Zlr,TTe,Jlr,vTe,Xlr,lve,Qlr,RTe,$lr,edr,tdr,ndr,rdr,idr,sdr,odr,adr,cdr,ATe,udr,ldr,wTe,dve,fve,pve,ddr,fdr,pdr,hve,hdr,mdr,gdr,ydr,Sdr,XPt,kTe,bdr,mve,VNi,Edr,G5,_dr,V5,Tdr,QPt,vdr,Rdr,Adr,wdr,kdr,Idr,xdr,W5,Odr,Pdr,Ndr,$Pt,eNt,Cdr,Mdr,Ddr,Ldr,Udr,Fdr,jdr,Hdr,qdr,Bdr,zdr,Gdr,Vdr,Wdr,Kdr,Ydr,Zdr,Jdr,ITe,Xdr,Qdr,$dr,xTe,nfr,rfr,ifr,tNt,sfr,WNi,KNi,YNi,ZNi,JNi,XNi,Et,OTe,ofr,cOt,afr,cfr,rNt,ffr,pfr,yfr,iTe,pp,Efr,K5,lOt,Nfr,Cfr,jfr,Hfr,qfr,Bfr,zfr,Vfr,PTe,Kfr,Yfr,NTe,CTe,MTe,cNt,mOt,epr,DTe,LTe,rpr,AU,dNt=v(()=>{vnr=Object.create,Rnr=Object.getPrototypeOf,oTe=Object.defineProperty,Anr=Object.getOwnPropertyNames,wnr=Object.prototype.hasOwnProperty,bOt=(e,t,n)=>{n=e!=null?vnr(Rnr(e)):{};let r=t||!e||!e.__esModule?oTe(n,"default",{value:e,enumerable:!0}):n;for(let i of Anr(e))wnr.call(r,i)||oTe(r,i,{get:()=>e[i],enumerable:!0});return r},Xe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),EOt=(e,t)=>{for(var n in t)oTe(e,n,{get:t[n],enumerable:!0,configurable:!0,set:r=>t[n]=()=>r})},knr=Symbol.dispose||Symbol.for("Symbol.dispose"),Inr=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),xnr=(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[Inr]),r===void 0&&(r=t[knr]),typeof r!="function")throw TypeError("Object not disposable");e.push([n,r,t])}else n&&e.push([n]);return t},Onr=(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()},O5=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=O5();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=O5(),n=Ixt(),r=O5();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=Ixt();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,j){return this}}class o extends s{constructor(M,j,H){super(),this.varKind=M,this.name=j,this.rhs=H}render({es5:M,_n:j}){let H=M?n.varKinds.var:this.varKind,K=this.rhs===void 0?"":` = ${this.rhs}`;return`${H} ${this.name}${K};`+j}optimizeNames(M,j){if(M[this.name.str])return this.rhs&&(this.rhs=L(this.rhs,M,j)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class a extends s{constructor(M,j,H){super(),this.lhs=M,this.rhs=j,this.sideEffects=H}render({_n:M}){return`${this.lhs} = ${this.rhs};`+M}optimizeNames(M,j){if(!(this.lhs instanceof t.Name&&!M[this.lhs.str]&&!this.sideEffects))return this.rhs=L(this.rhs,M,j),this}get names(){let M=this.lhs instanceof t.Name?{}:{...this.lhs.names};return C(M,this.rhs)}}class c extends a{constructor(M,j,H,K){super(M,H,K),this.op=j}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,j){return this.code=L(this.code,M,j),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((j,H)=>j+H.render(M),"")}optimizeNodes(){let{nodes:M}=this,j=M.length;for(;j--;){let H=M[j].optimizeNodes();Array.isArray(H)?M.splice(j,1,...H):H?M[j]=H:M.splice(j,1)}return M.length>0?this:void 0}optimizeNames(M,j){let{nodes:H}=this,K=H.length;for(;K--;){let ee=H[K];ee.optimizeNames(M,j)||(G(M,ee.names),H.splice(K,1))}return H.length>0?this:void 0}get names(){return this.nodes.reduce((M,j)=>N(M,j.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,j){super(j),this.condition=M}render(M){let j=`if(${this.condition})`+super.render(M);return this.else&&(j+="else "+this.else.render(M)),j}optimizeNodes(){super.optimizeNodes();let M=this.condition;if(M===!0)return this.nodes;let j=this.else;if(j){let H=j.optimizeNodes();j=this.else=Array.isArray(H)?new g(H):H}if(j)return M===!1?j instanceof y?j:j.nodes:this.nodes.length?this:new y(W(M),j instanceof y?[j]:j.nodes);if(!(M===!1||!this.nodes.length))return this}optimizeNames(M,j){var H;if(this.else=(H=this.else)===null||H===void 0?void 0:H.optimizeNames(M,j),!!(super.optimizeNames(M,j)||this.else))return this.condition=L(this.condition,M,j),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,j){if(super.optimizeNames(M,j))return this.iteration=L(this.iteration,M,j),this}get names(){return N(super.names,this.iteration.names)}}class E extends b{constructor(M,j,H,K){super(),this.varKind=M,this.name=j,this.from=H,this.to=K}render(M){let j=M.es5?n.varKinds.var:this.varKind,{name:H,from:K,to:ee}=this;return`for(${j} ${H}=${K}; ${H}<${ee}; ${H}++)`+super.render(M)}get names(){let M=C(super.names,this.from);return C(M,this.to)}}class _ extends b{constructor(M,j,H,K){super(),this.loop=M,this.varKind=j,this.name=H,this.iterable=K}render(M){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(M)}optimizeNames(M,j){if(super.optimizeNames(M,j))return this.iterable=L(this.iterable,M,j),this}get names(){return N(super.names,this.iterable.names)}}class T extends h{constructor(M,j,H){super(),this.name=M,this.args=j,this.async=H}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 j="try"+super.render(M);return this.catch&&(j+=this.catch.render(M)),this.finally&&(j+=this.finally.render(M)),j}optimizeNodes(){var M,j;return super.optimizeNodes(),(M=this.catch)===null||M===void 0||M.optimizeNodes(),(j=this.finally)===null||j===void 0||j.optimizeNodes(),this}optimizeNames(M,j){var H,K;return super.optimizeNames(M,j),(H=this.catch)===null||H===void 0||H.optimizeNames(M,j),(K=this.finally)===null||K===void 0||K.optimizeNames(M,j),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,j={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...j,_n:j.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,j){let H=this._extScope.value(M,j);return(this._values[H.prefix]||(this._values[H.prefix]=new Set)).add(H),H}getScopeValue(M,j){return this._extScope.getValue(M,j)}scopeRefs(M){return this._extScope.scopeRefs(M,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(M,j,H,K){let ee=this._scope.toName(j);return H!==void 0&&K&&(this._constants[ee.str]=H),this._leafNode(new o(M,ee,H)),ee}const(M,j,H){return this._def(n.varKinds.const,M,j,H)}let(M,j,H){return this._def(n.varKinds.let,M,j,H)}var(M,j,H){return this._def(n.varKinds.var,M,j,H)}assign(M,j,H){return this._leafNode(new a(M,j,H))}add(M,j){return this._leafNode(new c(M,e.operators.ADD,j))}code(M){return typeof M=="function"?M():M!==t.nil&&this._leafNode(new f(M)),this}object(...M){let j=["{"];for(let[H,K]of M)j.length>1&&j.push(","),j.push(H),(H!==K||this.opts.es5)&&(j.push(":"),(0,t.addCodeArg)(j,K));return j.push("}"),new t._Code(j)}if(M,j,H){if(this._blockNode(new y(M)),j&&H)this.code(j).else().code(H).endIf();else if(j)this.code(j).endIf();else if(H)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,j){return this._blockNode(M),j&&this.code(j).endFor(),this}for(M,j){return this._for(new S(M),j)}forRange(M,j,H,K,ee=this.opts.es5?n.varKinds.var:n.varKinds.let){let se=this._scope.toName(M);return this._for(new E(ee,se,j,H),()=>K(se))}forOf(M,j,H,K=n.varKinds.const){let ee=this._scope.toName(M);if(this.opts.es5){let se=j instanceof t.Name?j:this.var("_arr",j);return this.forRange("_i",0,(0,t._)`${se}.length`,Le=>{this.var(ee,(0,t._)`${se}[${Le}]`),H(ee)})}return this._for(new _("of",K,ee,j),()=>H(ee))}forIn(M,j,H,K=this.opts.es5?n.varKinds.var:n.varKinds.const){if(this.opts.ownProperties)return this.forOf(M,(0,t._)`Object.keys(${j})`,H);let ee=this._scope.toName(M);return this._for(new _("in",K,ee,j),()=>H(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 j=new R;if(this._blockNode(j),this.code(M),j.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(R)}try(M,j,H){if(!j&&!H)throw new Error('CodeGen: "try" without "catch" and "finally"');let K=new A;if(this._blockNode(K),this.code(M),j){let ee=this.name("e");this._currNode=K.catch=new x(ee),j(ee)}return H&&(this._currNode=K.finally=new k,this.code(H)),this._endBlockNode(x,k)}throw(M){return this._leafNode(new d(M))}block(M,j){return this._blockStarts.push(this._nodes.length),M&&this.code(M).endBlock(j),this}endBlock(M){let j=this._blockStarts.pop();if(j===void 0)throw new Error("CodeGen: not in self-balancing block");let H=this._nodes.length-j;if(H<0||M!==void 0&&H!==M)throw new Error(`CodeGen: wrong number of nodes: ${H} vs ${M} expected`);return this._nodes.length=j,this}func(M,j=t.nil,H,K){return this._blockNode(new T(M,j,H)),K&&this.code(K).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,j){let H=this._currNode;if(H instanceof M||j&&H instanceof j)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${j?`${M.kind}/${j.kind}`:M.kind}"`)}_elseNode(M){let j=this._currNode;if(!(j instanceof y))throw new Error('CodeGen: "else" without "if"');return this._currNode=j.else=M,this}get _root(){return this._nodes[0]}get _currNode(){let M=this._nodes;return M[M.length-1]}set _currNode(M){let j=this._nodes;j[j.length-1]=M}}e.CodeGen=P;function N(U,M){for(let j in M)U[j]=(U[j]||0)+(M[j]||0);return U}function C(U,M){return M instanceof t._CodeOrName?N(U,M.names):U}function L(U,M,j){if(U instanceof t.Name)return H(U);if(!K(U))return U;return new t._Code(U._items.reduce((ee,se)=>(se instanceof t.Name&&(se=H(se)),se instanceof t._Code?ee.push(...se._items):ee.push(se),ee),[]));function H(ee){let se=j[ee.str];return se===void 0||M[ee.str]!==1?ee:(delete M[ee.str],se)}function K(ee){return ee instanceof t._Code&&ee._items.some(se=>se instanceof t.Name&&M[se.str]===1&&j[se.str]!==void 0)}}function G(U,M){for(let j in M)U[j]=(U[j]||0)-(M[j]||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,j)=>M===t.nil?j:j===t.nil?M:(0,t._)`${V(M)} ${U} ${V(j)}`}function V(U){return U instanceof t.Name?U:(0,t._)`(${U})`}}),lr=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=O5();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=_}),aE=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}),Y5=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=lr(),r=aE();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])}}),Pnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.boolOrEmptySchema=e.topBoolOrEmptySchema=void 0;var t=Y5(),n=_n(),r=aE(),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)}}),_Ot=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}),TOt=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}),P5=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=_Ot(),n=TOt(),r=Y5(),i=_n(),s=lr(),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}}}),Pnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.assignDefaults=void 0;var t=_n(),n=lr();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=lr(),r=aE(),i=lr();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}),Nnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateKeywordUsage=e.validSchemaType=e.funcKeywordCode=e.macroKeywordCode=void 0;var t=_n(),n=aE(),r=bp(),i=K5();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}),Cnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendSubschemaMode=e.extendSubschemaData=e.getSubschema=void 0;var t=_n(),n=lr();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}),_Ot=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}}),Mnr=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=lr(),n=_Ot(),r=Mnr(),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}),Z5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getData=e.KeywordCxt=e.validateFunctionCode=void 0;var t=Onr(),n=O5(),r=EOt(),i=O5(),s=Pnr(),o=Nnr(),a=Cnr(),c=_n(),u=aE(),l=Y5(),d=lr(),f=K5();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:de,opts:_e},kt){_e.code.es5?z.func(J,(0,c._)`${u.default.data}, ${u.default.valCxt}`,de.$async,()=>{z.code((0,c._)`"use strict"; ${S(oe,_e)}`),g(z,_e),z.code(kt)}):z.func(J,(0,c._)`${u.default.data}, ${m(_e)}`,de.$async,()=>z.code(S(oe,_e)).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:de}=z;h(z,()=>{oe.$comment&&J.$comment&&L(z),P(z),de.let(u.default.vErrors,null),de.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:de,opts:_e}=z;_e.$comment&&oe.$comment&&L(z),N(z),C(z);let kt=de.const("_errs",u.default.errors);x(z,kt),de.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),de=(0,n.coerceAndCheckDataType)(z,oe);$(z,oe,!de,J)}function k(z){let{schema:J,errSchemaPath:oe,opts:de,self:_e}=z;J.$ref&&de.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(J,_e.RULES)&&_e.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:de,opts:_e}){let kt=oe.$comment;if(_e.$comment===!0)z.code((0,c._)`${u.default.self}.logger.log(${kt})`);else if(typeof _e.$comment=="function"){let Ue=(0,c.str)`${de}/$comment`,Un=z.scopeValue("root",{ref:J.root});z.code((0,c._)`${u.default.self}.opts.$comment(${kt}, ${Ue}, ${Un}.schema)`)}}function G(z){let{gen:J,schemaEnv:oe,validateName:de,ValidationError:_e,opts:kt}=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._)`${de}.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:de}){oe instanceof c.Name&&z.assign((0,c._)`${J}.props`,oe),de instanceof c.Name&&z.assign((0,c._)`${J}.items`,de)}function $(z,J,oe,de){let{gen:_e,schema:kt,data:Ue,allErrors:Un,opts:dr,self:sn}=z,{RULES:fr}=sn;if(kt.$ref&&(dr.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(kt,fr))){_e.block(()=>ee(z,"$ref",fr.all.$ref.definition));return}dr.jtd||Q(z,J),_e.block(()=>{for(let As of fr.rules)nl(As);nl(fr.post)});function nl(As){(0,r.shouldUseGroup)(kt,As)&&(As.type?(_e.if((0,i.checkDataType)(As.type,Ue,dr.strictNumbers)),q(z,As),J.length===1&&J[0]===As.type&&oe&&(_e.else(),(0,i.reportTypeError)(z)),_e.endIf()):q(z,As),Un||_e.if((0,c._)`${u.default.errors} === ${de||0}`))}}function q(z,J){let{gen:oe,schema:de,opts:{useDefaults:_e}}=z;_e&&(0,s.assignDefaults)(z,J.type),oe.block(()=>{for(let kt of J.rules)(0,r.shouldUseRule)(de,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)||H(z,`type "${oe}" not allowed by context "${z.dataTypes.join(",")}"`)}),j(z,J)}}function F(z,J){J.length>1&&!(J.length===2&&J.includes("null"))&&H(z,"use allowUnionTypes to allow union type keyword")}function V(z,J){let oe=z.self.RULES.all;for(let de in oe){let _e=oe[de];if(typeof _e=="object"&&(0,r.shouldUseRule)(z.schema,_e)){let{type:kt}=_e.definition;kt.length&&!kt.some(Ue=>U(J,Ue))&&H(z,`missing type "${kt.join(",")}" for keyword "${de}"`)}}}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 j(z,J){let oe=[];for(let de of z.dataTypes)M(J,de)?oe.push(de):J.includes("integer")&&de==="number"&&oe.push("integer");z.dataTypes=oe}function H(z,J){let oe=z.schemaEnv.baseId+z.errSchemaPath;J+=` at "${oe}" (strictTypes)`,(0,d.checkStrictMode)(z,J,z.opts.strictTypes)}class K{constructor(J,oe,de){if((0,o.validateKeywordUsage)(J,oe,de),this.gen=J.gen,this.allErrors=J.allErrors,this.keyword=de,this.data=J.data,this.schema=J.schema[de],this.$data=oe.$data&&J.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(J,this.schema,de,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(`${de} 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,de){this.failResult((0,c.not)(J),oe,de)}failResult(J,oe,de){this.gen.if(J),de?de():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,de){if(oe){this.setParams(oe),this._error(J,de),this.setParams({});return}this._error(J,de)}_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,de=c.nil){this.gen.block(()=>{this.check$data(J,de),oe()})}check$data(J=c.nil,oe=c.nil){if(!this.$data)return;let{gen:de,schemaCode:_e,schemaType:kt,def:Ue}=this;de.if((0,c.or)((0,c._)`${_e} === undefined`,oe)),J!==c.nil&&de.assign(J,!0),(kt.length||Ue.validateSchema)&&(de.elseIf(this.invalid$data()),this.$dataError(),J!==c.nil&&de.assign(J,!1)),de.else()}invalid$data(){let{gen:J,schemaCode:oe,schemaType:de,def:_e,it:kt}=this;return(0,c.or)(Ue(),Un());function Ue(){if(de.length){if(!(oe instanceof c.Name))throw new Error("ajv implementation error");let dr=Array.isArray(de)?de:[de];return(0,c._)`${(0,i.checkDataTypes)(dr,oe,kt.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function Un(){if(_e.validateSchema){let dr=J.scopeValue("validate$data",{ref:_e.validateSchema});return(0,c._)`!${dr}(${oe})`}return c.nil}}subschema(J,oe){let de=(0,a.getSubschema)(this.it,J);(0,a.extendSubschemaData)(de,this.it,J),(0,a.extendSubschemaMode)(de,J);let _e={...this.it,...de,items:void 0,props:void 0};return E(_e,oe),_e}mergeEvaluated(J,oe){let{it:de,gen:_e}=this;de.opts.unevaluated&&(de.props!==!0&&J.props!==void 0&&(de.props=d.mergeEvaluated.props(_e,J.props,de.props,oe)),de.items!==!0&&J.items!==void 0&&(de.items=d.mergeEvaluated.items(_e,J.items,de.items,oe)))}mergeValidEvaluated(J,oe){let{it:de,gen:_e}=this;if(de.opts.unevaluated&&(de.props!==!0||de.items!==!0))return _e.if(oe,()=>this.mergeEvaluated(J,c.Name)),!0}}e.KeywordCxt=K;function ee(z,J,oe,de){let _e=new K(z,oe,J);"code"in oe?oe.code(_e,de):_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 se=/^\/(?:[^~]|~0|~1)*$/,Le=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Ae(z,{dataLevel:J,dataNames:oe,dataPathArr:de}){let _e,kt;if(z==="")return u.default.rootData;if(z[0]==="/"){if(!se.test(z))throw new Error(`Invalid JSON-pointer: ${z}`);_e=z,kt=u.default.rootData}else{let sn=Le.exec(z);if(!sn)throw new Error(`Invalid JSON-pointer: ${z}`);let fr=+sn[1];if(_e=sn[2],_e==="#"){if(fr>=J)throw new Error(dr("property/index",fr));return de[J-fr]}if(fr>J)throw new Error(dr("data",fr));if(kt=oe[J-fr],!_e)return kt}let Ue=kt,Un=_e.split("/");for(let sn of Un)sn&&(kt=(0,c._)`${kt}${(0,c.getProperty)((0,d.unescapeJsonPointer)(sn))}`,Ue=(0,c._)`${Ue} && ${kt}`);return Ue;function dr(sn,fr){return`Cannot access ${sn} ${fr} levels up, current level is ${J}`}}e.getData=Ae}),LTe=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}),J5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Y5();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}),UTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.resolveSchema=e.getCompilingSchema=e.resolveRef=e.compileSchema=e.SchemaEnv=void 0;var t=_n(),n=LTe(),r=aE(),i=Y5(),s=lr(),o=Z5();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}}),Dnr=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}}),Lnr=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}}),Unr=Xe((e,t)=>{var{HEX:n}=Lnr(),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}),jnr=Xe((e,t)=>{var{normalizeIPv6:n,normalizeIPv4:r,removeDotSegments:i,recomposeAuthority:s,normalizeComponentEncoding:o}=Unr(),a=Fnr();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}),Hnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=jnr();t.code='require("ajv/dist/runtime/uri").default',e.default=t}),qnr=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=Z5();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=LTe(),i=J5(),s=bOt(),o=UTe(),a=_n(),c=Y5(),u=O5(),l=lr(),d=Dnr(),f=Hnr(),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,j,H,K,ee,se,Le,Ae,z,J,oe,de,_e,kt,Ue,Un,dr,sn,fr,nl,As,lE;let uy=B.strict,Ii=(F=B.code)===null||F===void 0?void 0:F.optimize,_p=Ii===!0||Ii===void 0?1:Ii||0,ly=(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:(H=(j=B.strictSchema)!==null&&j!==void 0?j:uy)!==null&&H!==void 0?H:!0,strictNumbers:(ee=(K=B.strictNumbers)!==null&&K!==void 0?K:uy)!==null&&ee!==void 0?ee:!0,strictTypes:(Le=(se=B.strictTypes)!==null&&se!==void 0?se:uy)!==null&&Le!==void 0?Le:"log",strictTuples:(z=(Ae=B.strictTuples)!==null&&Ae!==void 0?Ae:uy)!==null&&z!==void 0?z:"log",strictRequired:(oe=(J=B.strictRequired)!==null&&J!==void 0?J:uy)!==null&&oe!==void 0?oe:!1,code:B.code?{...B.code,optimize:_p,regExp:ly}:{optimize:_p,regExp:ly},loopRequired:(de=B.loopRequired)!==null&&de!==void 0?de:b,loopEnum:(_e=B.loopEnum)!==null&&_e!==void 0?_e:b,meta:(kt=B.meta)!==null&&kt!==void 0?kt:!0,messages:(Ue=B.messages)!==null&&Ue!==void 0?Ue:!0,inlineRefs:(Un=B.inlineRefs)!==null&&Un!==void 0?Un:!0,schemaId:(dr=B.schemaId)!==null&&dr!==void 0?dr:"$id",addUsedSchema:(sn=B.addUsedSchema)!==null&&sn!==void 0?sn:!0,validateSchema:(fr=B.validateSchema)!==null&&fr!==void 0?fr:!0,validateFormats:(nl=B.validateFormats)!==null&&nl!==void 0?nl:!0,unicodeRegExp:(As=B.unicodeRegExp)!==null&&As!==void 0?As:!0,int32range:(lE=B.int32range)!==null&&lE!==void 0?lE:!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 j.call(this,Le.$schema);let z=this._addSchema(Le,Ae);return z.validate||H.call(this,z)}async function j(Le){Le&&!this.getSchema(Le)&&await M.call(this,{$ref:Le},!0)}async function H(Le){try{return this._compileSchemaEnv(Le)}catch(Ae){if(!(Ae instanceof i.default))throw Ae;return K.call(this,Ae),await ee.call(this,Ae.missingSchema),H.call(this,Le)}}function K({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 j.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 H of F)this.addSchema(H,void 0,U,M);return this}let j;if(typeof F=="object"){let{schemaId:H}=this.opts;if(j=F[H],j!==void 0&&typeof j!="string")throw new Error(`schema ${H} must be string`)}return V=(0,c.normalizeId)(V||j),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 j="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(j);else throw new Error(j)}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,j=>G.call(this,j)),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?j=>G.call(this,j,M):j=>M.type.forEach(H=>G.call(this,j,M,H))),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(j=>j.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,j)=>M+V+j)}$dataMetaSchema(F,V){let U=this.RULES.all;F=JSON.parse(JSON.stringify(F));for(let M of V){let j=M.split("/").slice(1),H=F;for(let K of j)H=H[K];for(let K in U){let ee=U[K];if(typeof ee!="object")continue;let{$data:se}=ee.definition,Le=H[K];se&&Le&&(H[K]=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,j=this.opts.addUsedSchema){let H,{schemaId:K}=this.opts;if(typeof F=="object")H=F[K];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)(H||U);let se=c.getSchemaRefs.call(this,F,U);return ee=new o.SchemaEnv({schema:F,schemaId:K,meta:V,baseId:U,localRefs:se}),this._cache.set(ee.schema,ee),j&&!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 j=M;j in F&&this.logger[U](`${V}: option ${M}. ${B[j]}`)}}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:j}=this,H=M?j.post:j.rules.find(({type:ee})=>ee===V);if(H||(H={type:V,rules:[]},j.rules.push(H)),j.keywords[B]=!0,!F)return;let K={keyword:B,definition:{...F,type:(0,u.getJSONTypes)(F.type),schemaType:(0,u.getJSONTypes)(F.schemaType)}};F.before?W.call(this,H,K,F.before):H.rules.push(K),j.all[B]=K,(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]}}}),Bnr=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}),znr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.callRef=e.getValidate=void 0;var t=J5(),n=bp(),r=_n(),i=aE(),s=UTe(),o=lr(),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}),Gnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Bnr(),n=znr(),r=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",t.default,n.default];e.default=r}),Vnr=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}),Wnr=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}),Knr=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=lr(),r=Knr(),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}),Znr=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}),Jnr=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}),Xnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=lr(),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}),Qnr=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}),FTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_Ot();t.code='require("ajv/dist/runtime/equal").default',e.default=t}),$nr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=O5(),n=_n(),r=lr(),i=FTe(),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}),err=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),r=FTe(),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}),trr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),r=FTe(),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}),nrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Vnr(),n=Wnr(),r=Ynr(),i=Znr(),s=Jnr(),o=Xnr(),a=Qnr(),c=$nr(),u=err(),l=trr(),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}),TOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateAdditionalItems=void 0;var t=_n(),n=lr(),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}),vOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateTuple=void 0;var t=_n(),n=lr(),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}),rrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=vOt(),n={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,t.validateTuple)(r,"items")};e.default=n}),irr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),r=bp(),i=TOt(),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}),srr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),orr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;var t=_n(),n=lr(),r=bp();e.error={message:({params:{property:c,depsCount:u,deps:l}})=>{let d=u===1?"property":"properties";return(0,t.str)`must have ${d} ${l} when property ${c} is present`},params:({params:{property:c,depsCount:u,deps:l,missingProperty:d}})=>(0,t._)`{property: ${c}, + || ${x} === "boolean" || ${R} === null`).assign(k,(0,i._)`[${R}]`)}}}function p({gen:S,parentData:E,parentDataProperty:_},T){S.if((0,i._)`${E} !== undefined`,()=>S.assign((0,i._)`${E}[${_}]`,T))}function h(S,E,_,T=o.Correct){let R=T===o.Correct?i.operators.EQ:i.operators.NEQ,A;switch(S){case"null":return(0,i._)`${E} ${R} null`;case"array":A=(0,i._)`Array.isArray(${E})`;break;case"object":A=(0,i._)`${E} && typeof ${E} == "object" && !Array.isArray(${E})`;break;case"integer":A=x((0,i._)`!(${E} % 1) && !isNaN(${E})`);break;case"number":A=x();break;default:return(0,i._)`typeof ${E} ${R} ${S}`}return T===o.Correct?A:(0,i.not)(A);function x(k=i.nil){return(0,i.and)((0,i._)`typeof ${E} == "number"`,k,_?(0,i._)`isFinite(${E})`:i.nil)}}e.checkDataType=h;function m(S,E,_,T){if(S.length===1)return h(S[0],E,_,T);let R,A=(0,s.toHash)(S);if(A.array&&A.object){let x=(0,i._)`typeof ${E} != "object"`;R=A.null?x:(0,i._)`!${E} || ${x}`,delete A.null,delete A.array,delete A.object}else R=i.nil;A.number&&delete A.integer;for(let x in A)R=(0,i.and)(R,h(x,E,_,T));return R}e.checkDataTypes=m;var g={message:({schema:S})=>`must be ${S}`,params:({schema:S,schemaValue:E})=>typeof S=="string"?(0,i._)`{type: ${S}}`:(0,i._)`{type: ${E}}`};function y(S){let E=b(S);(0,r.reportError)(E,g)}e.reportTypeError=y;function b(S){let{gen:E,data:_,schema:T}=S,R=(0,s.schemaRefOrVal)(S,T,"type");return{gen:E,keyword:"type",data:_,schema:T.type,schemaCode:R,schemaValue:R,parentSchema:T,params:{},it:S}}}),Nnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.assignDefaults=void 0;var t=_n(),n=lr();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=lr(),r=aE(),i=lr();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}),Cnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateKeywordUsage=e.validSchemaType=e.funcKeywordCode=e.macroKeywordCode=void 0;var t=_n(),n=aE(),r=bp(),i=Y5();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}),Mnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendSubschemaMode=e.extendSubschemaData=e.getSubschema=void 0;var t=_n(),n=lr();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}),vOt=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}}),Dnr=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=lr(),n=vOt(),r=Dnr(),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}),J5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getData=e.KeywordCxt=e.validateFunctionCode=void 0;var t=Pnr(),n=P5(),r=TOt(),i=P5(),s=Nnr(),o=Cnr(),a=Mnr(),c=_n(),u=aE(),l=Z5(),d=lr(),f=Y5();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:de,opts:_e},kt){_e.code.es5?z.func(J,(0,c._)`${u.default.data}, ${u.default.valCxt}`,de.$async,()=>{z.code((0,c._)`"use strict"; ${S(oe,_e)}`),g(z,_e),z.code(kt)}):z.func(J,(0,c._)`${u.default.data}, ${m(_e)}`,de.$async,()=>z.code(S(oe,_e)).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:de}=z;h(z,()=>{oe.$comment&&J.$comment&&L(z),P(z),de.let(u.default.vErrors,null),de.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:de,opts:_e}=z;_e.$comment&&oe.$comment&&L(z),N(z),C(z);let kt=de.const("_errs",u.default.errors);x(z,kt),de.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),de=(0,n.coerceAndCheckDataType)(z,oe);$(z,oe,!de,J)}function k(z){let{schema:J,errSchemaPath:oe,opts:de,self:_e}=z;J.$ref&&de.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(J,_e.RULES)&&_e.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:de,opts:_e}){let kt=oe.$comment;if(_e.$comment===!0)z.code((0,c._)`${u.default.self}.logger.log(${kt})`);else if(typeof _e.$comment=="function"){let Ue=(0,c.str)`${de}/$comment`,Un=z.scopeValue("root",{ref:J.root});z.code((0,c._)`${u.default.self}.opts.$comment(${kt}, ${Ue}, ${Un}.schema)`)}}function G(z){let{gen:J,schemaEnv:oe,validateName:de,ValidationError:_e,opts:kt}=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._)`${de}.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:de}){oe instanceof c.Name&&z.assign((0,c._)`${J}.props`,oe),de instanceof c.Name&&z.assign((0,c._)`${J}.items`,de)}function $(z,J,oe,de){let{gen:_e,schema:kt,data:Ue,allErrors:Un,opts:dr,self:sn}=z,{RULES:fr}=sn;if(kt.$ref&&(dr.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(kt,fr))){_e.block(()=>ee(z,"$ref",fr.all.$ref.definition));return}dr.jtd||Q(z,J),_e.block(()=>{for(let As of fr.rules)nl(As);nl(fr.post)});function nl(As){(0,r.shouldUseGroup)(kt,As)&&(As.type?(_e.if((0,i.checkDataType)(As.type,Ue,dr.strictNumbers)),q(z,As),J.length===1&&J[0]===As.type&&oe&&(_e.else(),(0,i.reportTypeError)(z)),_e.endIf()):q(z,As),Un||_e.if((0,c._)`${u.default.errors} === ${de||0}`))}}function q(z,J){let{gen:oe,schema:de,opts:{useDefaults:_e}}=z;_e&&(0,s.assignDefaults)(z,J.type),oe.block(()=>{for(let kt of J.rules)(0,r.shouldUseRule)(de,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)||H(z,`type "${oe}" not allowed by context "${z.dataTypes.join(",")}"`)}),j(z,J)}}function F(z,J){J.length>1&&!(J.length===2&&J.includes("null"))&&H(z,"use allowUnionTypes to allow union type keyword")}function V(z,J){let oe=z.self.RULES.all;for(let de in oe){let _e=oe[de];if(typeof _e=="object"&&(0,r.shouldUseRule)(z.schema,_e)){let{type:kt}=_e.definition;kt.length&&!kt.some(Ue=>U(J,Ue))&&H(z,`missing type "${kt.join(",")}" for keyword "${de}"`)}}}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 j(z,J){let oe=[];for(let de of z.dataTypes)M(J,de)?oe.push(de):J.includes("integer")&&de==="number"&&oe.push("integer");z.dataTypes=oe}function H(z,J){let oe=z.schemaEnv.baseId+z.errSchemaPath;J+=` at "${oe}" (strictTypes)`,(0,d.checkStrictMode)(z,J,z.opts.strictTypes)}class K{constructor(J,oe,de){if((0,o.validateKeywordUsage)(J,oe,de),this.gen=J.gen,this.allErrors=J.allErrors,this.keyword=de,this.data=J.data,this.schema=J.schema[de],this.$data=oe.$data&&J.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(J,this.schema,de,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(`${de} 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,de){this.failResult((0,c.not)(J),oe,de)}failResult(J,oe,de){this.gen.if(J),de?de():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,de){if(oe){this.setParams(oe),this._error(J,de),this.setParams({});return}this._error(J,de)}_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,de=c.nil){this.gen.block(()=>{this.check$data(J,de),oe()})}check$data(J=c.nil,oe=c.nil){if(!this.$data)return;let{gen:de,schemaCode:_e,schemaType:kt,def:Ue}=this;de.if((0,c.or)((0,c._)`${_e} === undefined`,oe)),J!==c.nil&&de.assign(J,!0),(kt.length||Ue.validateSchema)&&(de.elseIf(this.invalid$data()),this.$dataError(),J!==c.nil&&de.assign(J,!1)),de.else()}invalid$data(){let{gen:J,schemaCode:oe,schemaType:de,def:_e,it:kt}=this;return(0,c.or)(Ue(),Un());function Ue(){if(de.length){if(!(oe instanceof c.Name))throw new Error("ajv implementation error");let dr=Array.isArray(de)?de:[de];return(0,c._)`${(0,i.checkDataTypes)(dr,oe,kt.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function Un(){if(_e.validateSchema){let dr=J.scopeValue("validate$data",{ref:_e.validateSchema});return(0,c._)`!${dr}(${oe})`}return c.nil}}subschema(J,oe){let de=(0,a.getSubschema)(this.it,J);(0,a.extendSubschemaData)(de,this.it,J),(0,a.extendSubschemaMode)(de,J);let _e={...this.it,...de,items:void 0,props:void 0};return E(_e,oe),_e}mergeEvaluated(J,oe){let{it:de,gen:_e}=this;de.opts.unevaluated&&(de.props!==!0&&J.props!==void 0&&(de.props=d.mergeEvaluated.props(_e,J.props,de.props,oe)),de.items!==!0&&J.items!==void 0&&(de.items=d.mergeEvaluated.items(_e,J.items,de.items,oe)))}mergeValidEvaluated(J,oe){let{it:de,gen:_e}=this;if(de.opts.unevaluated&&(de.props!==!0||de.items!==!0))return _e.if(oe,()=>this.mergeEvaluated(J,c.Name)),!0}}e.KeywordCxt=K;function ee(z,J,oe,de){let _e=new K(z,oe,J);"code"in oe?oe.code(_e,de):_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 se=/^\/(?:[^~]|~0|~1)*$/,Le=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Ae(z,{dataLevel:J,dataNames:oe,dataPathArr:de}){let _e,kt;if(z==="")return u.default.rootData;if(z[0]==="/"){if(!se.test(z))throw new Error(`Invalid JSON-pointer: ${z}`);_e=z,kt=u.default.rootData}else{let sn=Le.exec(z);if(!sn)throw new Error(`Invalid JSON-pointer: ${z}`);let fr=+sn[1];if(_e=sn[2],_e==="#"){if(fr>=J)throw new Error(dr("property/index",fr));return de[J-fr]}if(fr>J)throw new Error(dr("data",fr));if(kt=oe[J-fr],!_e)return kt}let Ue=kt,Un=_e.split("/");for(let sn of Un)sn&&(kt=(0,c._)`${kt}${(0,c.getProperty)((0,d.unescapeJsonPointer)(sn))}`,Ue=(0,c._)`${Ue} && ${kt}`);return Ue;function dr(sn,fr){return`Cannot access ${sn} ${fr} levels up, current level is ${J}`}}e.getData=Ae}),FTe=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}),X5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Z5();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}),jTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.resolveSchema=e.getCompilingSchema=e.resolveRef=e.compileSchema=e.SchemaEnv=void 0;var t=_n(),n=FTe(),r=aE(),i=Z5(),s=lr(),o=J5();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}}),Lnr=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}}),Unr=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}}),Fnr=Xe((e,t)=>{var{HEX:n}=Unr(),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}),Hnr=Xe((e,t)=>{var{normalizeIPv6:n,normalizeIPv4:r,removeDotSegments:i,recomposeAuthority:s,normalizeComponentEncoding:o}=Fnr(),a=jnr();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}),qnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Hnr();t.code='require("ajv/dist/runtime/uri").default',e.default=t}),Bnr=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=J5();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=FTe(),i=X5(),s=_Ot(),o=jTe(),a=_n(),c=Z5(),u=P5(),l=lr(),d=Lnr(),f=qnr(),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,j,H,K,ee,se,Le,Ae,z,J,oe,de,_e,kt,Ue,Un,dr,sn,fr,nl,As,lE;let uy=B.strict,Ii=(F=B.code)===null||F===void 0?void 0:F.optimize,_p=Ii===!0||Ii===void 0?1:Ii||0,ly=(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:(H=(j=B.strictSchema)!==null&&j!==void 0?j:uy)!==null&&H!==void 0?H:!0,strictNumbers:(ee=(K=B.strictNumbers)!==null&&K!==void 0?K:uy)!==null&&ee!==void 0?ee:!0,strictTypes:(Le=(se=B.strictTypes)!==null&&se!==void 0?se:uy)!==null&&Le!==void 0?Le:"log",strictTuples:(z=(Ae=B.strictTuples)!==null&&Ae!==void 0?Ae:uy)!==null&&z!==void 0?z:"log",strictRequired:(oe=(J=B.strictRequired)!==null&&J!==void 0?J:uy)!==null&&oe!==void 0?oe:!1,code:B.code?{...B.code,optimize:_p,regExp:ly}:{optimize:_p,regExp:ly},loopRequired:(de=B.loopRequired)!==null&&de!==void 0?de:b,loopEnum:(_e=B.loopEnum)!==null&&_e!==void 0?_e:b,meta:(kt=B.meta)!==null&&kt!==void 0?kt:!0,messages:(Ue=B.messages)!==null&&Ue!==void 0?Ue:!0,inlineRefs:(Un=B.inlineRefs)!==null&&Un!==void 0?Un:!0,schemaId:(dr=B.schemaId)!==null&&dr!==void 0?dr:"$id",addUsedSchema:(sn=B.addUsedSchema)!==null&&sn!==void 0?sn:!0,validateSchema:(fr=B.validateSchema)!==null&&fr!==void 0?fr:!0,validateFormats:(nl=B.validateFormats)!==null&&nl!==void 0?nl:!0,unicodeRegExp:(As=B.unicodeRegExp)!==null&&As!==void 0?As:!0,int32range:(lE=B.int32range)!==null&&lE!==void 0?lE:!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 j.call(this,Le.$schema);let z=this._addSchema(Le,Ae);return z.validate||H.call(this,z)}async function j(Le){Le&&!this.getSchema(Le)&&await M.call(this,{$ref:Le},!0)}async function H(Le){try{return this._compileSchemaEnv(Le)}catch(Ae){if(!(Ae instanceof i.default))throw Ae;return K.call(this,Ae),await ee.call(this,Ae.missingSchema),H.call(this,Le)}}function K({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 j.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 H of F)this.addSchema(H,void 0,U,M);return this}let j;if(typeof F=="object"){let{schemaId:H}=this.opts;if(j=F[H],j!==void 0&&typeof j!="string")throw new Error(`schema ${H} must be string`)}return V=(0,c.normalizeId)(V||j),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 j="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(j);else throw new Error(j)}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,j=>G.call(this,j)),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?j=>G.call(this,j,M):j=>M.type.forEach(H=>G.call(this,j,M,H))),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(j=>j.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,j)=>M+V+j)}$dataMetaSchema(F,V){let U=this.RULES.all;F=JSON.parse(JSON.stringify(F));for(let M of V){let j=M.split("/").slice(1),H=F;for(let K of j)H=H[K];for(let K in U){let ee=U[K];if(typeof ee!="object")continue;let{$data:se}=ee.definition,Le=H[K];se&&Le&&(H[K]=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,j=this.opts.addUsedSchema){let H,{schemaId:K}=this.opts;if(typeof F=="object")H=F[K];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)(H||U);let se=c.getSchemaRefs.call(this,F,U);return ee=new o.SchemaEnv({schema:F,schemaId:K,meta:V,baseId:U,localRefs:se}),this._cache.set(ee.schema,ee),j&&!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 j=M;j in F&&this.logger[U](`${V}: option ${M}. ${B[j]}`)}}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:j}=this,H=M?j.post:j.rules.find(({type:ee})=>ee===V);if(H||(H={type:V,rules:[]},j.rules.push(H)),j.keywords[B]=!0,!F)return;let K={keyword:B,definition:{...F,type:(0,u.getJSONTypes)(F.type),schemaType:(0,u.getJSONTypes)(F.schemaType)}};F.before?W.call(this,H,K,F.before):H.rules.push(K),j.all[B]=K,(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]}}}),znr=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}),Gnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.callRef=e.getValidate=void 0;var t=X5(),n=bp(),r=_n(),i=aE(),s=jTe(),o=lr(),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}),Vnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=znr(),n=Gnr(),r=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",t.default,n.default];e.default=r}),Wnr=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}),Knr=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}),Ynr=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=lr(),r=Ynr(),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}),Jnr=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}),Xnr=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}),Qnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=lr(),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}),$nr=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}),HTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=vOt();t.code='require("ajv/dist/runtime/equal").default',e.default=t}),err=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=P5(),n=_n(),r=lr(),i=HTe(),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}),trr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),r=HTe(),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}),nrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),r=HTe(),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}),rrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Wnr(),n=Knr(),r=Znr(),i=Jnr(),s=Xnr(),o=Qnr(),a=$nr(),c=err(),u=trr(),l=nrr(),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}),ROt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateAdditionalItems=void 0;var t=_n(),n=lr(),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}),AOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateTuple=void 0;var t=_n(),n=lr(),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}),irr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=AOt(),n={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,t.validateTuple)(r,"items")};e.default=n}),srr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),r=bp(),i=ROt(),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}),orr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),arr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;var t=_n(),n=lr(),r=bp();e.error={message:({params:{property:c,depsCount:u,deps:l}})=>{let d=u===1?"property":"properties";return(0,t.str)`must have ${d} ${l} when property ${c} is present`},params:({params:{property:c,depsCount:u,deps:l,missingProperty:d}})=>(0,t._)`{property: ${c}, missingProperty: ${d}, depsCount: ${u}, - deps: ${l}}`};var i={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(c){let[u,l]=s(c);o(c,u),a(c,l)}};function s({schema:c}){let u={},l={};for(let d in c){if(d==="__proto__")continue;let f=Array.isArray(c[d])?u:l;f[d]=c[d]}return[u,l]}function o(c,u=c.schema){let{gen:l,data:d,it:f}=c;if(Object.keys(u).length===0)return;let p=l.let("missing");for(let h in u){let m=u[h];if(m.length===0)continue;let g=(0,r.propertyInData)(l,d,h,f.opts.ownProperties);c.setParams({property:h,depsCount:m.length,deps:m.join(", ")}),f.allErrors?l.if(g,()=>{for(let y of m)(0,r.checkReportMissingProp)(c,y)}):(l.if((0,t._)`${g} && (${(0,r.checkMissingProp)(c,m,p)})`),(0,r.reportMissingProp)(c,p),l.else())}}e.validatePropertyDeps=o;function a(c,u=c.schema){let{gen:l,data:d,keyword:f,it:p}=c,h=l.name("valid");for(let m in u)(0,n.alwaysValidSchema)(p,u[m])||(l.if((0,r.propertyInData)(l,d,m,p.opts.ownProperties),()=>{let g=c.subschema({keyword:f,schemaProp:m},h);c.mergeValidEvaluated(g,h)},()=>l.var(h,!0)),c.ok(h))}e.validateSchemaDeps=a,e.default=i}),arr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),ROt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=aE(),i=lr(),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}),crr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Z5(),n=bp(),r=lr(),i=ROt(),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}),urr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=lr(),i=lr(),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}),lrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lr(),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}),drr=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}),frr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),prr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lr(),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}),hrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),mrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lr(),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}),grr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=TOt(),n=rrr(),r=vOt(),i=irr(),s=srr(),o=orr(),a=arr(),c=ROt(),u=crr(),l=urr(),d=lrr(),f=drr(),p=frr(),h=prr(),m=hrr(),g=mrr();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}),yrr=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}),Srr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=yrr(),n=[t.default];e.default=n}),brr=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"]}),Err=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Gnr(),n=nrr(),r=grr(),i=Srr(),s=brr(),o=[t.default,n.default,(0,r.default)(),i.default,s.metadataVocabulary,s.contentVocabulary];e.default=o}),_rr=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={}))}),Trr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=_rr(),r=UTe(),i=J5(),s=lr(),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}}),AOt=Xe((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv=void 0;var n=qnr(),r=Err(),i=Trr(),s=vrr(),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=Z5();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=LTe();Object.defineProperty(e,"ValidationError",{enumerable:!0,get:function(){return d.default}});var f=J5();Object.defineProperty(e,"MissingRefError",{enumerable:!0,get:function(){return f.default}})}),Rrr=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}}}),Arr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatLimitDefinition=void 0;var t=AOt(),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}),wrr=Xe((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=Rrr(),r=Arr(),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}),xrr=50;Crr=typeof global=="object"&&global&&global.Object===Object&&global,Mrr=Crr,Drr=typeof self=="object"&&self&&self.Object===Object&&self,Lrr=Mrr||Drr||Function("return this")(),HTe=Lrr,Urr=HTe.Symbol,P5=Urr,wOt=Object.prototype,Frr=wOt.hasOwnProperty,jrr=wOt.toString,vU=P5?P5.toStringTag:void 0;qrr=Hrr,Brr=Object.prototype,zrr=Brr.toString;Vrr=Grr,Wrr="[object Null]",Krr="[object Undefined]",Ixt=P5?P5.toStringTag:void 0;Zrr=Yrr;kOt=Jrr,Xrr="[object AsyncFunction]",Qrr="[object Function]",$rr="[object GeneratorFunction]",eir="[object Proxy]";nir=tir,rir=HTe["__core-js_shared__"],Z_e=rir,xxt=(function(){var e=/[^.]+$/.exec(Z_e&&Z_e.keys&&Z_e.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();sir=iir,oir=Function.prototype,air=oir.toString;uir=cir,lir=/[\\^$.*+?()[\]{}|]/g,dir=/^\[object .+?Constructor\]$/,fir=Function.prototype,pir=Object.prototype,hir=fir.toString,mir=pir.hasOwnProperty,gir=RegExp("^"+hir.call(mir).replace(lir,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");Sir=yir;Eir=bir;IOt=_ir,Tir=IOt(Object,"create"),PU=Tir;Rir=vir;wir=Air,kir="__lodash_hash_undefined__",Iir=Object.prototype,xir=Iir.hasOwnProperty;Pir=Oir,Nir=Object.prototype,Cir=Nir.hasOwnProperty;Dir=Mir,Lir="__lodash_hash_undefined__";Fir=Uir;Qx.prototype.clear=Rir;Qx.prototype.delete=wir;Qx.prototype.get=Pir;Qx.prototype.has=Dir;Qx.prototype.set=Fir;Oxt=Qx;Hir=jir;Bir=qir;X5=zir,Gir=Array.prototype,Vir=Gir.splice;Kir=Wir;Zir=Yir;Xir=Jir;$ir=Qir;$x.prototype.clear=Hir;$x.prototype.delete=Kir;$x.prototype.get=Zir;$x.prototype.has=Xir;$x.prototype.set=$ir;esr=$x,tsr=IOt(HTe,"Map"),nsr=tsr;isr=rsr;osr=ssr;Q5=asr;usr=csr;dsr=lsr;psr=fsr;msr=hsr;eO.prototype.clear=isr;eO.prototype.delete=usr;eO.prototype.get=dsr;eO.prototype.has=psr;eO.prototype.set=msr;xOt=eO,gsr="Expected a function";qTe.Cache=xOt;VU=qTe,Pxt=2e3;Ssr=VU(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}});J_e=15e4,v5=3e4;ksr=NOt("BASH_MAX_OUTPUT_LENGTH"),$Pi=NOt("TASK_MAX_OUTPUT_LENGTH"),Isr={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"}}};Osr=xsr();Cxt=new Set;COt=1/0;DOt=(e,t)=>{let n=typeof e=="string"?e.length:0;return MOt(`JSON.parse(${n} chars)`,()=>JSON.parse(e,t))},Dsr=VU(()=>Nxt(process.env.DEBUG)||Nxt(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||LOt()||process.argv.some(e=>e.startsWith("--debug="))),Lsr=VU(()=>{let e=process.argv.find(n=>n.startsWith("--debug="));if(!e)return null;let t=e.substring(8);return Ssr(t)}),LOt=VU(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));Fsr=!1,R5=null;Hsr=VU(()=>{if(process.argv[2]!=="--ripgrep")try{let e=UOt(),t=sTe(e),n=POt(t,"latest");if(Xg().existsSync(t)||Xg().mkdirSync(t),Xg().existsSync(n))try{Xg().unlinkSync(n)}catch{}Xg().symlinkSync(e,n)}catch{}});qsr={cwd(){return process.cwd()},existsSync(e){return fo(`existsSync(${e})`,()=>Zt.existsSync(e))},async stat(e){return Nrr(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)}},Bsr=qsr;zsr=["PreToolUse","PostToolUse","PostToolUseFailure","Notification","UserPromptSubmit","SessionStart","SessionEnd","Stop","SubagentStart","SubagentStop","PreCompact","PermissionRequest"],Gsr=["clear","logout","prompt_input_exit","other","bypass_permissions_disabled"],rE=class extends Error{};A5=null,Dxt=!1;N5=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(t){this.options=t,this.abortController=t.abortController||jTe(),this.initialize()}getDefaultExecutable(){return BTe()?"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=Orr(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();Qv(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",sm(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",sm({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=Jsr(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=Xsr(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)Qv(`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)}Qv(`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 rE("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${F.message}`),Qv(this.exitError.message))}),this.process.on("exit",(F,V)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new rE("Claude Code process aborted by user");else{let U=this.getProcessExitError(F,V);U&&(this.exitError=U,Qv(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 rE("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}`);Qv(`[ProcessTransport] Writing to stdin: ${t.substring(0,100)}`);try{this.processStdin.write(t)||Qv("[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=Prr({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 rE("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)})})}};C5=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})}},oTe=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?.())}},M5=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new C5;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(sm(i)+` + deps: ${l}}`};var i={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(c){let[u,l]=s(c);o(c,u),a(c,l)}};function s({schema:c}){let u={},l={};for(let d in c){if(d==="__proto__")continue;let f=Array.isArray(c[d])?u:l;f[d]=c[d]}return[u,l]}function o(c,u=c.schema){let{gen:l,data:d,it:f}=c;if(Object.keys(u).length===0)return;let p=l.let("missing");for(let h in u){let m=u[h];if(m.length===0)continue;let g=(0,r.propertyInData)(l,d,h,f.opts.ownProperties);c.setParams({property:h,depsCount:m.length,deps:m.join(", ")}),f.allErrors?l.if(g,()=>{for(let y of m)(0,r.checkReportMissingProp)(c,y)}):(l.if((0,t._)`${g} && (${(0,r.checkMissingProp)(c,m,p)})`),(0,r.reportMissingProp)(c,p),l.else())}}e.validatePropertyDeps=o;function a(c,u=c.schema){let{gen:l,data:d,keyword:f,it:p}=c,h=l.name("valid");for(let m in u)(0,n.alwaysValidSchema)(p,u[m])||(l.if((0,r.propertyInData)(l,d,m,p.opts.ownProperties),()=>{let g=c.subschema({keyword:f,schemaProp:m},h);c.mergeValidEvaluated(g,h)},()=>l.var(h,!0)),c.ok(h))}e.validateSchemaDeps=a,e.default=i}),crr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),wOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=aE(),i=lr(),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}),urr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=J5(),n=bp(),r=lr(),i=wOt(),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}),lrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=lr(),i=lr(),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}),drr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lr(),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}),frr=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}),prr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),hrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lr(),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}),mrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=lr(),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}),grr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lr(),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}),yrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ROt(),n=irr(),r=AOt(),i=srr(),s=orr(),o=arr(),a=crr(),c=wOt(),u=urr(),l=lrr(),d=drr(),f=frr(),p=prr(),h=hrr(),m=mrr(),g=grr();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}),brr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Srr(),n=[t.default];e.default=n}),Err=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"]}),_rr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Vnr(),n=rrr(),r=yrr(),i=brr(),s=Err(),o=[t.default,n.default,(0,r.default)(),i.default,s.metadataVocabulary,s.contentVocabulary];e.default=o}),Trr=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={}))}),vrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=Trr(),r=jTe(),i=X5(),s=lr(),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}}),kOt=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=Bnr(),r=_rr(),i=vrr(),s=Rrr(),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=J5();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=FTe();Object.defineProperty(e,"ValidationError",{enumerable:!0,get:function(){return d.default}});var f=X5();Object.defineProperty(e,"MissingRefError",{enumerable:!0,get:function(){return f.default}})}),Arr=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}}}),wrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatLimitDefinition=void 0;var t=kOt(),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}),krr=Xe((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=Arr(),r=wrr(),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}),Orr=50;Mrr=typeof global=="object"&&global&&global.Object===Object&&global,Drr=Mrr,Lrr=typeof self=="object"&&self&&self.Object===Object&&self,Urr=Drr||Lrr||Function("return this")(),BTe=Urr,Frr=BTe.Symbol,N5=Frr,IOt=Object.prototype,jrr=IOt.hasOwnProperty,Hrr=IOt.toString,vU=N5?N5.toStringTag:void 0;Brr=qrr,zrr=Object.prototype,Grr=zrr.toString;Wrr=Vrr,Krr="[object Null]",Yrr="[object Undefined]",Oxt=N5?N5.toStringTag:void 0;Jrr=Zrr;xOt=Xrr,Qrr="[object AsyncFunction]",$rr="[object Function]",eir="[object GeneratorFunction]",tir="[object Proxy]";rir=nir,iir=BTe["__core-js_shared__"],X_e=iir,Pxt=(function(){var e=/[^.]+$/.exec(X_e&&X_e.keys&&X_e.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();oir=sir,air=Function.prototype,cir=air.toString;lir=uir,dir=/[\\^$.*+?()[\]{}|]/g,fir=/^\[object .+?Constructor\]$/,pir=Function.prototype,hir=Object.prototype,mir=pir.toString,gir=hir.hasOwnProperty,yir=RegExp("^"+mir.call(gir).replace(dir,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");bir=Sir;_ir=Eir;OOt=Tir,vir=OOt(Object,"create"),PU=vir;Air=Rir;kir=wir,Iir="__lodash_hash_undefined__",xir=Object.prototype,Oir=xir.hasOwnProperty;Nir=Pir,Cir=Object.prototype,Mir=Cir.hasOwnProperty;Lir=Dir,Uir="__lodash_hash_undefined__";jir=Fir;Qx.prototype.clear=Air;Qx.prototype.delete=kir;Qx.prototype.get=Nir;Qx.prototype.has=Lir;Qx.prototype.set=jir;Nxt=Qx;qir=Hir;zir=Bir;Q5=Gir,Vir=Array.prototype,Wir=Vir.splice;Yir=Kir;Jir=Zir;Qir=Xir;esr=$ir;$x.prototype.clear=qir;$x.prototype.delete=Yir;$x.prototype.get=Jir;$x.prototype.has=Qir;$x.prototype.set=esr;tsr=$x,nsr=OOt(BTe,"Map"),rsr=nsr;ssr=isr;asr=osr;$5=csr;lsr=usr;fsr=dsr;hsr=psr;gsr=msr;eO.prototype.clear=ssr;eO.prototype.delete=lsr;eO.prototype.get=fsr;eO.prototype.has=hsr;eO.prototype.set=gsr;POt=eO,ysr="Expected a function";zTe.Cache=POt;VU=zTe,Cxt=2e3;bsr=VU(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}});Q_e=15e4,R5=3e4;Isr=MOt("BASH_MAX_OUTPUT_LENGTH"),tNi=MOt("TASK_MAX_OUTPUT_LENGTH"),xsr={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"}}};Psr=Osr();Dxt=new Set;DOt=1/0;UOt=(e,t)=>{let n=typeof e=="string"?e.length:0;return LOt(`JSON.parse(${n} chars)`,()=>JSON.parse(e,t))},Lsr=VU(()=>Mxt(process.env.DEBUG)||Mxt(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||FOt()||process.argv.some(e=>e.startsWith("--debug="))),Usr=VU(()=>{let e=process.argv.find(n=>n.startsWith("--debug="));if(!e)return null;let t=e.substring(8);return bsr(t)}),FOt=VU(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));jsr=!1,A5=null;qsr=VU(()=>{if(process.argv[2]!=="--ripgrep")try{let e=jOt(),t=aTe(e),n=COt(t,"latest");if(Xg().existsSync(t)||Xg().mkdirSync(t),Xg().existsSync(n))try{Xg().unlinkSync(n)}catch{}Xg().symlinkSync(e,n)}catch{}});Bsr={cwd(){return process.cwd()},existsSync(e){return fo(`existsSync(${e})`,()=>Zt.existsSync(e))},async stat(e){return Crr(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)}},zsr=Bsr;Gsr=["PreToolUse","PostToolUse","PostToolUseFailure","Notification","UserPromptSubmit","SessionStart","SessionEnd","Stop","SubagentStart","SubagentStop","PreCompact","PermissionRequest"],Vsr=["clear","logout","prompt_input_exit","other","bypass_permissions_disabled"],rE=class extends Error{};w5=null,Uxt=!1;C5=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(t){this.options=t,this.abortController=t.abortController||qTe(),this.initialize()}getDefaultExecutable(){return GTe()?"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=Prr(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();Qv(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",sm(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",sm({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=Xsr(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=Qsr(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)Qv(`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)}Qv(`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 rE("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${F.message}`),Qv(this.exitError.message))}),this.process.on("exit",(F,V)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new rE("Claude Code process aborted by user");else{let U=this.getProcessExitError(F,V);U&&(this.exitError=U,Qv(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 rE("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}`);Qv(`[ProcessTransport] Writing to stdin: ${t.substring(0,100)}`);try{this.processStdin.write(t)||Qv("[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=Nrr({input:this.processStdout});try{for await(let n of t)n.trim()&&(yield UOt(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 rE("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)})})}};M5=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})}},cTe=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?.())}},D5=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new M5;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(sm(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(sm(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(sm(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(sm(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 rE))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 oTe(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:Qsr(),request:{subtype:"mcp_message",server_name:t,message:n}};this.transport.write(sm(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}})}},D5=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 C5;let n=t.pathToClaudeCodeExecutable;if(!n){let s=$sr(import.meta.url),o=Lxt(s,"..");n=Lxt(o,"cli.js")}let r={...t.env??process.env};r.CLAUDE_CODE_ENTRYPOINT||(r.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),this.abortController=jTe();let i=new N5({abortController:this.abortController,pathToClaudeCodeExecutable:n,env:r,executable:t.executable??(BTe()?"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 M5(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})})(Uxt||(Uxt={}));nt=ir.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),nE=e=>{switch(typeof e){case"undefined":return nt.undefined;case"string":return nt.string;case"number":return Number.isNaN(e)?nt.nan:nt.number;case"boolean":return nt.boolean;case"function":return nt.function;case"bigint":return nt.bigint;case"symbol":return nt.symbol;case"object":return Array.isArray(e)?nt.array:e===null?nt.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?nt.promise:typeof Map<"u"&&e instanceof Map?nt.map:typeof Set<"u"&&e instanceof Set?nt.set:typeof Date<"u"&&e instanceof Date?nt.date:nt.object;default:return nt.unknown}},Oe=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);tor=(e,t)=>{let n;switch(e.code){case Oe.invalid_type:e.received===nt.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case Oe.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,ir.jsonStringifyReplacer)}`;break;case Oe.unrecognized_keys:n=`Unrecognized key(s) in object: ${ir.joinValues(e.keys,", ")}`;break;case Oe.invalid_union:n="Invalid input";break;case Oe.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${ir.joinValues(e.options)}`;break;case Oe.invalid_enum_value:n=`Invalid enum value. Expected ${ir.joinValues(e.options)}, received '${e.received}'`;break;case Oe.invalid_arguments:n="Invalid function arguments";break;case Oe.invalid_return_type:n="Invalid function return type";break;case Oe.invalid_date:n="Invalid date";break;case Oe.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:ir.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case Oe.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case Oe.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case Oe.custom:n="Invalid input";break;case Oe.invalid_intersection_types:n="Intersection results could not be merged";break;case Oe.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Oe.not_finite:n="Number must be finite";break;default:n=t.defaultError,ir.assertNever(e)}return{message:n}},NU=tor,nor=NU;cTe=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"}),wU=e=>({status:"dirty",value:e}),Xu=e=>({status:"valid",value:e}),Fxt=e=>e.status==="aborted",jxt=e=>e.status==="dirty",Fx=e=>e.status==="valid",L5=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}},Hxt=(e,t)=>{if(Fx(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 nE(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:nE(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:nE(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(L5(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:nE(t)},i=this._parseSync({data:t,path:r.path,parent:r});return Hxt(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:nE(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return Fx(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=>Fx(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:nE(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(L5(i)?i:Promise.resolve(i));return Hxt(r,s)}refine(t,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{let o=t(i),a=()=>s.addIssue({code:Oe.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new 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 oE.create(this)}promise(){return eR.create(this,this._def)}or(t){return Bx.create([this,t],this._def)}and(t){return zx.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 Yx({...ln(this._def),innerType:this,defaultValue:n,typeName:De.ZodDefault})}brand(){return new U5({typeName:De.ZodBranded,type:this,...ln(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Zx({...ln(this._def),innerType:this,catchValue:n,typeName:De.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return F5.create(this,t)}readonly(){return Jx.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},ror=/^c[^\s-]{8,}$/i,ior=/^[0-9a-z]+$/,sor=/^[0-9A-HJKMNP-TV-Z]{26}$/i,oor=/^[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,aor=/^[a-z0-9_-]{21}$/i,cor=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,uor=/^[-+]?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)?)??$/,lor=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,dor="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",por=/^(?:(?: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])$/,hor=/^(?:(?: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])$/,mor=/^(([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]))$/,gor=/^(([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])$/,yor=/^([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}(=)?))?$/,jOt="((\\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])))",bor=new RegExp(`^${jOt}$`);jx=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:Oe.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:Oe.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let o=t.data.length>s.value,a=t.data.lengtht.test(i),{validation:n,code:Oe.invalid_string,...lt.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...lt.errToObj(t)})}url(t){return this._addCheck({kind:"url",...lt.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...lt.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...lt.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...lt.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...lt.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...lt.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...lt.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...lt.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...lt.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...lt.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...lt.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...lt.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...lt.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...lt.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...lt.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...lt.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...lt.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...lt.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...lt.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...lt.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...lt.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...lt.errToObj(n)})}nonempty(t){return this.min(1,lt.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew jx({checks:[],typeName:De.ZodString,coerce:e?.coerce??!1,...ln(e)});CU=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:Oe.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:Oe.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?Aor(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.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 CU({checks:[],typeName:De.ZodNumber,coerce:e?.coerce||!1,...ln(e)});MU=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:Oe.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.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:Oe.invalid_type,expected:nt.bigint,received:n.parsedType}),Vt}gte(t,n){return this.setLimit("min",t,!0,lt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,lt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,lt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,lt.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lt.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:lt.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew MU({checks:[],typeName:De.ZodBigInt,coerce:e?.coerce??!1,...ln(e)});DU=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:Oe.invalid_type,expected:nt.boolean,received:r.parsedType}),Vt}return Xu(t.data)}};DU.create=e=>new DU({typeName:De.ZodBoolean,coerce:e?.coerce||!1,...ln(e)});LU=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:Oe.invalid_type,expected:nt.date,received:s.parsedType}),Vt}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return Ye(s,{code:Oe.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:Oe.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 LU({checks:[],coerce:e?.coerce||!1,typeName:De.ZodDate,...ln(e)});UU=class extends Tn{_parse(t){if(this._getType(t)!==nt.symbol){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.symbol,received:r.parsedType}),Vt}return Xu(t.data)}};UU.create=e=>new UU({typeName:De.ZodSymbol,...ln(e)});Hx=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.undefined,received:r.parsedType}),Vt}return Xu(t.data)}};Hx.create=e=>new Hx({typeName:De.ZodUndefined,...ln(e)});qx=class extends Tn{_parse(t){if(this._getType(t)!==nt.null){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.null,received:r.parsedType}),Vt}return Xu(t.data)}};qx.create=e=>new qx({typeName:De.ZodNull,...ln(e)});FU=class extends Tn{constructor(){super(...arguments),this._any=!0}_parse(t){return Xu(t.data)}};FU.create=e=>new FU({typeName:De.ZodAny,...ln(e)});sE=class extends Tn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Xu(t.data)}};sE.create=e=>new sE({typeName:De.ZodUnknown,...ln(e)});am=class extends Tn{_parse(t){let n=this._getOrReturnCtx(t);return Ye(n,{code:Oe.invalid_type,expected:nt.never,received:n.parsedType}),Vt}};am.create=e=>new am({typeName:De.ZodNever,...ln(e)});jU=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.void,received:r.parsedType}),Vt}return Xu(t.data)}};jU.create=e=>new jU({typeName:De.ZodVoid,...ln(e)});oE=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:Oe.invalid_type,expected:nt.array,received:n.parsedType}),Vt;if(i.exactLength!==null){let o=n.data.length>i.exactLength.value,a=n.data.lengthi.maxLength.value&&(Ye(n,{code:Oe.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,a)=>i.type._parseAsync(new 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)}};oE.create=(e,t)=>new oE({type:e,minLength:null,maxLength:null,exactLength:null,typeName:De.ZodArray,...ln(t)});jl=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:Oe.invalid_type,expected:nt.object,received:u.parsedType}),Vt}let{status:r,ctx:i}=this._processInputParams(t),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof am&&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 am){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:Oe.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new 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 Dx(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 qOt(ir.objectKeys(this.shape))}};jl.create=(e,t)=>new jl({shape:()=>e,unknownKeys:"strip",catchall:am.create(),typeName:De.ZodObject,...ln(t)});jl.strictCreate=(e,t)=>new jl({shape:()=>e,unknownKeys:"strict",catchall:am.create(),typeName:De.ZodObject,...ln(t)});jl.lazycreate=(e,t)=>new jl({shape:e,unknownKeys:"strip",catchall:am.create(),typeName:De.ZodObject,...ln(t)});Bx=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:Oe.invalid_union,unionErrors:o}),Vt}if(n.common.async)return Promise.all(r.map(async s=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of r){let u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new Zd(c));return Ye(n,{code:Oe.invalid_union,unionErrors:a}),Vt}}get options(){return this._def.options}};Bx.create=(e,t)=>new Bx({options:e,typeName:De.ZodUnion,...ln(t)});Yg=e=>e instanceof Gx?Yg(e.schema):e instanceof gp?Yg(e.innerType()):e instanceof Vx?[e.value]:e instanceof Wx?e.options:e instanceof Kx?ir.objectValues(e.enum):e instanceof Yx?Yg(e._def.innerType):e instanceof Hx?[void 0]:e instanceof qx?[null]:e instanceof mp?[void 0,...Yg(e.unwrap())]:e instanceof $g?[null,...Yg(e.unwrap())]:e instanceof U5||e instanceof Jx?Yg(e.unwrap()):e instanceof Zx?Yg(e._def.innerType):[],uTe=class e extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.object)return Ye(n,{code:Oe.invalid_type,expected:nt.object,received:n.parsedType}),Vt;let r=this.discriminator,i=n.data[r],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(Ye(n,{code:Oe.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Vt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let s of n){let o=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)})}};zx=class extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(Fxt(s)||Fxt(o))return Vt;let a=lTe(s.value,o.value);return a.valid?((jxt(s)||jxt(o))&&n.dirty(),{status:n.value,value:a.data}):(Ye(r,{code:Oe.invalid_intersection_types}),Vt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};zx.create=(e,t,n)=>new zx({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:Oe.invalid_type,expected:nt.array,received:r.parsedType}),Vt;if(r.data.lengththis._def.items.length&&(Ye(r,{code:Oe.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new 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)})};dTe=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:Oe.invalid_type,expected:nt.object,received:r.parsedType}),Vt;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in r.data)i.push({key:s._parse(new 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:jx.create(),valueType:t,typeName:De.ZodRecord,...ln(n)})}},HU=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:Oe.invalid_type,expected:nt.map,received:r.parsedType}),Vt;let i=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([a,c],u)=>({key:i._parse(new 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}}}};HU.create=(e,t,n)=>new HU({valueType:t,keyType:e,typeName:De.ZodMap,...ln(n)});qU=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.set)return Ye(r,{code:Oe.invalid_type,expected:nt.set,received:r.parsedType}),Vt;let i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(Ye(r,{code:Oe.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Vt;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((c,u)=>s._parse(new 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)}};qU.create=(e,t)=>new qU({valueType:e,minSize:null,maxSize:null,typeName:De.ZodSet,...ln(t)});fTe=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:Oe.invalid_type,expected:nt.function,received:n.parsedType}),Vt;function r(a,c){return cTe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,aTe(),NU].filter(u=>!!u),issueData:{code:Oe.invalid_arguments,argumentsError:c}})}function i(a,c){return cTe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,aTe(),NU].filter(u=>!!u),issueData:{code:Oe.invalid_return_type,returnTypeError:c}})}let s={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof eR){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(sE.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(sE.create()),returns:n||sE.create(),typeName:De.ZodFunction,...ln(r)})}},Gx=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})}};Gx.create=(e,t)=>new Gx({getter:e,typeName:De.ZodLazy,...ln(t)});Vx=class extends Tn{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return Ye(n,{received:n.data,code:Oe.invalid_literal,expected:this._def.value}),Vt}return{status:"valid",value:t.data}}get value(){return this._def.value}};Vx.create=(e,t)=>new Vx({value:e,typeName:De.ZodLiteral,...ln(t)});Wx=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:Oe.invalid_type}),Vt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return Ye(n,{received:n.data,code:Oe.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})}};Wx.create=qOt;Kx=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:Oe.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:Oe.invalid_enum_value,options:i}),Vt}return Xu(t.data)}get enum(){return this._def.values}};Kx.create=(e,t)=>new Kx({values:e,typeName:De.ZodNativeEnum,...ln(t)});eR=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:Oe.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})))}};eR.create=(e,t)=>new eR({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"?wU(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"?wU(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(!Fx(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=>Fx(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)});Yx=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}};Yx.create=(e,t)=>new Yx({innerType:e,typeName:De.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...ln(t)});Zx=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return L5(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Zd(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Zd(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Zx.create=(e,t)=>new Zx({innerType:e,typeName:De.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...ln(t)});BU=class extends Tn{_parse(t){if(this._getType(t)!==nt.nan){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.nan,received:r.parsedType}),Vt}return{status:"valid",value:t.data}}};BU.create=e=>new BU({typeName:De.ZodNaN,...ln(e)});U5=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}},F5=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(),wU(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})}},Jx=class extends Tn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(Fx(i)&&(i.value=Object.freeze(i.value)),i);return L5(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};Jx.create=(e,t)=>new Jx({innerType:e,typeName:De.ZodReadonly,...ln(t)});oNi={object:jl.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={}));aNi=jx.create,cNi=CU.create,uNi=BU.create,lNi=MU.create,dNi=DU.create,fNi=LU.create,pNi=UU.create,hNi=Hx.create,mNi=qx.create,gNi=FU.create,yNi=sE.create,SNi=am.create,bNi=jU.create,ENi=oE.create,wor=jl.create,_Ni=jl.strictCreate,TNi=Bx.create,vNi=uTe.create,RNi=zx.create,ANi=Qg.create,wNi=dTe.create,kNi=HU.create,INi=qU.create,xNi=fTe.create,ONi=Gx.create,PNi=Vx.create,NNi=Wx.create,CNi=Kx.create,MNi=eR.create,DNi=gp.create,LNi=mp.create,UNi=$g.create,FNi=gp.createWithPreprocess,jNi=F5.create,HNi=Object.freeze({status:"aborted"});tR=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},pTe={};Gr={};SOt(Gr,{unwrapMessage:()=>kU,stringifyPrimitive:()=>WTe,required:()=>Vor,randomString:()=>Mor,propertyKeyTypes:()=>VOt,promiseAllObject:()=>Cor,primitiveTypes:()=>Uor,prefixIssues:()=>iE,pick:()=>Hor,partial:()=>Gor,optionalKeys:()=>WOt,omit:()=>qor,numKeys:()=>Dor,nullish:()=>e8,normalizeParams:()=>Ht,merge:()=>zor,jsonStringifyReplacer:()=>BOt,joinValues:()=>hTe,issue:()=>YOt,isPlainObject:()=>GU,isObject:()=>zU,getSizableOrigin:()=>Wor,getParsedType:()=>Lor,getLengthableOrigin:()=>n8,getEnumValues:()=>zTe,getElementAtPath:()=>Nor,floatSafeRemainder:()=>zOt,finalizeIssue:()=>ty,extend:()=>Bor,escapeRegex:()=>tO,esc:()=>Lx,defineLazy:()=>ki,createTransparentProxy:()=>For,clone:()=>ny,cleanRegex:()=>t8,cleanEnum:()=>Kor,captureStackTrace:()=>VTe,cached:()=>$5,assignProp:()=>GTe,assertNotEqual:()=>Ior,assertNever:()=>Oor,assertIs:()=>xor,assertEqual:()=>kor,assert:()=>Por,allowsEval:()=>GOt,aborted:()=>Ux,NUMBER_FORMAT_RANGES:()=>KOt,Class:()=>mTe,BIGINT_FORMAT_RANGES:()=>jor});VTe=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};GOt=$5(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});Lor=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}`)}},VOt=new Set(["string","number","symbol"]),Uor=new Set(["string","number","bigint","boolean","symbol","undefined"]);KOt={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]},jor={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};mTe=class{constructor(...t){}},ZOt=(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,BOt,2)},enumerable:!0})},JOt=ge("$ZodError",ZOt),r8=ge("$ZodError",ZOt,{Parent:Error});XOt=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 tR;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>ty(c,s,ey())));throw VTe(a,i?.callee),a}return o.value},Jor=XOt(r8),QOt=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 VTe(a,i?.callee),a}return o.value},Xor=QOt(r8),$Ot=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 tR;return s.issues.length?{success:!1,error:new(e??JOt)(s.issues.map(o=>ty(o,i,ey())))}:{success:!0,data:s.value}},KTe=$Ot(r8),ePt=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}},YTe=ePt(r8),Qor=/^[cC][^\s-]{8,}$/,$or=/^[0-9a-z]+$/,ear=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,tar=/^[0-9a-vA-V]{20}$/,nar=/^[A-Za-z0-9]{27}$/,rar=/^[a-zA-Z0-9_-]{21}$/,iar=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,sar=/^([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})$/,qxt=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)$/,oar=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,aar="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";uar=/^(?:(?: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])$/,lar=/^(([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})$/,dar=/^((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])$/,far=/^(([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])$/,par=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,tPt=/^[A-Za-z0-9_-]*$/,har=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,mar=/^\+(?:[0-9]){6,14}[0-9]$/,nPt="(?:(?:\\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])))",gar=new RegExp(`^${nPt}$`);bar=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Ear=/^\d+$/,_ar=/^-?\d+(?:\.\d+)?/i,Tar=/true|false/i,Rar=/null/i,Aar=/^[^A-Z]*$/,war=/^[^a-z]*$/,$u=ge("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),iPt={number:"number",bigint:"bigint",object:"date"},sPt=ge("$ZodCheckLessThan",(e,t)=>{$u.init(e,t);let n=iPt[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=iPt[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})}}),kar=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):zOt(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})}}),Iar=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]=KOt[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=Ear)}),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})}}),xar=ge("$ZodCheckMaxLength",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!e8(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=n8(r);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Oar=ge("$ZodCheckMinLength",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!e8(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=n8(r);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Par=ge("$ZodCheckLengthEquals",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!e8(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=n8(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})}}),i8=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=()=>{})}),Nar=ge("$ZodCheckRegex",(e,t)=>{i8.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})}}),Car=ge("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Aar),i8.init(e,t)}),Mar=ge("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=war),i8.init(e,t)}),Dar=ge("$ZodCheckIncludes",(e,t)=>{$u.init(e,t);let n=tO(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})}}),Lar=ge("$ZodCheckStartsWith",(e,t)=>{$u.init(e,t);let n=new RegExp(`^${tO(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})}}),Uar=ge("$ZodCheckEndsWith",(e,t)=>{$u.init(e,t);let n=new RegExp(`.*${tO(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})}}),Far=ge("$ZodCheckOverwrite",(e,t)=>{$u.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}}),gTe=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let r=t.split(` +`))}Zg(`[Query.streamInput] Finished processing ${n} messages from input stream`),n>0&&this.hasBidirectionalNeeds()&&(Zg("[Query.streamInput] Has bidirectional needs, waiting for first result"),await this.waitForFirstResult()),Zg("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(n){if(!(n instanceof rE))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 cTe(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:$sr(),request:{subtype:"mcp_message",server_name:t,message:n}};this.transport.write(sm(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}})}},L5=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 M5;let n=t.pathToClaudeCodeExecutable;if(!n){let s=eor(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=qTe();let i=new C5({abortController:this.abortController,pathToClaudeCodeExecutable:n,env:r,executable:t.executable??(GTe()?"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 D5(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})})(jxt||(jxt={}));nt=ir.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),nE=e=>{switch(typeof e){case"undefined":return nt.undefined;case"string":return nt.string;case"number":return Number.isNaN(e)?nt.nan:nt.number;case"boolean":return nt.boolean;case"function":return nt.function;case"bigint":return nt.bigint;case"symbol":return nt.symbol;case"object":return Array.isArray(e)?nt.array:e===null?nt.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?nt.promise:typeof Map<"u"&&e instanceof Map?nt.map:typeof Set<"u"&&e instanceof Set?nt.set:typeof Date<"u"&&e instanceof Date?nt.date:nt.object;default:return nt.unknown}},Oe=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);nor=(e,t)=>{let n;switch(e.code){case Oe.invalid_type:e.received===nt.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case Oe.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,ir.jsonStringifyReplacer)}`;break;case Oe.unrecognized_keys:n=`Unrecognized key(s) in object: ${ir.joinValues(e.keys,", ")}`;break;case Oe.invalid_union:n="Invalid input";break;case Oe.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${ir.joinValues(e.options)}`;break;case Oe.invalid_enum_value:n=`Invalid enum value. Expected ${ir.joinValues(e.options)}, received '${e.received}'`;break;case Oe.invalid_arguments:n="Invalid function arguments";break;case Oe.invalid_return_type:n="Invalid function return type";break;case Oe.invalid_date:n="Invalid date";break;case Oe.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:ir.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case Oe.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case Oe.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case Oe.custom:n="Invalid input";break;case Oe.invalid_intersection_types:n="Intersection results could not be merged";break;case Oe.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Oe.not_finite:n="Number must be finite";break;default:n=t.defaultError,ir.assertNever(e)}return{message:n}},NU=nor,ror=NU;lTe=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"}),wU=e=>({status:"dirty",value:e}),Xu=e=>({status:"valid",value:e}),Hxt=e=>e.status==="aborted",qxt=e=>e.status==="dirty",Fx=e=>e.status==="valid",U5=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}},Bxt=(e,t)=>{if(Fx(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 nE(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:nE(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:nE(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(U5(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:nE(t)},i=this._parseSync({data:t,path:r.path,parent:r});return Bxt(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:nE(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return Fx(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=>Fx(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:nE(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(U5(i)?i:Promise.resolve(i));return Bxt(r,s)}refine(t,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{let o=t(i),a=()=>s.addIssue({code:Oe.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new 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 oE.create(this)}promise(){return eR.create(this,this._def)}or(t){return Bx.create([this,t],this._def)}and(t){return zx.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 Yx({...ln(this._def),innerType:this,defaultValue:n,typeName:De.ZodDefault})}brand(){return new F5({typeName:De.ZodBranded,type:this,...ln(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Zx({...ln(this._def),innerType:this,catchValue:n,typeName:De.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return j5.create(this,t)}readonly(){return Jx.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},ior=/^c[^\s-]{8,}$/i,sor=/^[0-9a-z]+$/,oor=/^[0-9A-HJKMNP-TV-Z]{26}$/i,aor=/^[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,cor=/^[a-z0-9_-]{21}$/i,uor=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,lor=/^[-+]?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)?)??$/,dor=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,por="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",hor=/^(?:(?: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])$/,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])\/(3[0-2]|[12]?[0-9])$/,gor=/^(([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]))$/,yor=/^(([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])$/,Sor=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,bor=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,qOt="((\\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])))",Eor=new RegExp(`^${qOt}$`);jx=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:Oe.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:Oe.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let o=t.data.length>s.value,a=t.data.lengtht.test(i),{validation:n,code:Oe.invalid_string,...lt.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...lt.errToObj(t)})}url(t){return this._addCheck({kind:"url",...lt.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...lt.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...lt.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...lt.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...lt.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...lt.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...lt.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...lt.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...lt.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...lt.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...lt.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...lt.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...lt.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...lt.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...lt.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...lt.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...lt.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...lt.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...lt.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...lt.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...lt.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...lt.errToObj(n)})}nonempty(t){return this.min(1,lt.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew jx({checks:[],typeName:De.ZodString,coerce:e?.coerce??!1,...ln(e)});CU=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:Oe.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:Oe.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?wor(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.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 CU({checks:[],typeName:De.ZodNumber,coerce:e?.coerce||!1,...ln(e)});MU=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:Oe.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:Oe.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:Oe.invalid_type,expected:nt.bigint,received:n.parsedType}),Vt}gte(t,n){return this.setLimit("min",t,!0,lt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,lt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,lt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,lt.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lt.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:lt.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew MU({checks:[],typeName:De.ZodBigInt,coerce:e?.coerce??!1,...ln(e)});DU=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:Oe.invalid_type,expected:nt.boolean,received:r.parsedType}),Vt}return Xu(t.data)}};DU.create=e=>new DU({typeName:De.ZodBoolean,coerce:e?.coerce||!1,...ln(e)});LU=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:Oe.invalid_type,expected:nt.date,received:s.parsedType}),Vt}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return Ye(s,{code:Oe.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:Oe.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 LU({checks:[],coerce:e?.coerce||!1,typeName:De.ZodDate,...ln(e)});UU=class extends Tn{_parse(t){if(this._getType(t)!==nt.symbol){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.symbol,received:r.parsedType}),Vt}return Xu(t.data)}};UU.create=e=>new UU({typeName:De.ZodSymbol,...ln(e)});Hx=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.undefined,received:r.parsedType}),Vt}return Xu(t.data)}};Hx.create=e=>new Hx({typeName:De.ZodUndefined,...ln(e)});qx=class extends Tn{_parse(t){if(this._getType(t)!==nt.null){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.null,received:r.parsedType}),Vt}return Xu(t.data)}};qx.create=e=>new qx({typeName:De.ZodNull,...ln(e)});FU=class extends Tn{constructor(){super(...arguments),this._any=!0}_parse(t){return Xu(t.data)}};FU.create=e=>new FU({typeName:De.ZodAny,...ln(e)});sE=class extends Tn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Xu(t.data)}};sE.create=e=>new sE({typeName:De.ZodUnknown,...ln(e)});am=class extends Tn{_parse(t){let n=this._getOrReturnCtx(t);return Ye(n,{code:Oe.invalid_type,expected:nt.never,received:n.parsedType}),Vt}};am.create=e=>new am({typeName:De.ZodNever,...ln(e)});jU=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.void,received:r.parsedType}),Vt}return Xu(t.data)}};jU.create=e=>new jU({typeName:De.ZodVoid,...ln(e)});oE=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:Oe.invalid_type,expected:nt.array,received:n.parsedType}),Vt;if(i.exactLength!==null){let o=n.data.length>i.exactLength.value,a=n.data.lengthi.maxLength.value&&(Ye(n,{code:Oe.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,a)=>i.type._parseAsync(new 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)}};oE.create=(e,t)=>new oE({type:e,minLength:null,maxLength:null,exactLength:null,typeName:De.ZodArray,...ln(t)});jl=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:Oe.invalid_type,expected:nt.object,received:u.parsedType}),Vt}let{status:r,ctx:i}=this._processInputParams(t),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof am&&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 am){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:Oe.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new 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 Dx(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 zOt(ir.objectKeys(this.shape))}};jl.create=(e,t)=>new jl({shape:()=>e,unknownKeys:"strip",catchall:am.create(),typeName:De.ZodObject,...ln(t)});jl.strictCreate=(e,t)=>new jl({shape:()=>e,unknownKeys:"strict",catchall:am.create(),typeName:De.ZodObject,...ln(t)});jl.lazycreate=(e,t)=>new jl({shape:e,unknownKeys:"strip",catchall:am.create(),typeName:De.ZodObject,...ln(t)});Bx=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:Oe.invalid_union,unionErrors:o}),Vt}if(n.common.async)return Promise.all(r.map(async s=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of r){let u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new Zd(c));return Ye(n,{code:Oe.invalid_union,unionErrors:a}),Vt}}get options(){return this._def.options}};Bx.create=(e,t)=>new Bx({options:e,typeName:De.ZodUnion,...ln(t)});Yg=e=>e instanceof Gx?Yg(e.schema):e instanceof gp?Yg(e.innerType()):e instanceof Vx?[e.value]:e instanceof Wx?e.options:e instanceof Kx?ir.objectValues(e.enum):e instanceof Yx?Yg(e._def.innerType):e instanceof Hx?[void 0]:e instanceof qx?[null]:e instanceof mp?[void 0,...Yg(e.unwrap())]:e instanceof $g?[null,...Yg(e.unwrap())]:e instanceof F5||e instanceof Jx?Yg(e.unwrap()):e instanceof Zx?Yg(e._def.innerType):[],dTe=class e extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.object)return Ye(n,{code:Oe.invalid_type,expected:nt.object,received:n.parsedType}),Vt;let r=this.discriminator,i=n.data[r],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(Ye(n,{code:Oe.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Vt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let s of n){let o=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)})}};zx=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=fTe(s.value,o.value);return a.valid?((qxt(s)||qxt(o))&&n.dirty(),{status:n.value,value:a.data}):(Ye(r,{code:Oe.invalid_intersection_types}),Vt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};zx.create=(e,t,n)=>new zx({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:Oe.invalid_type,expected:nt.array,received:r.parsedType}),Vt;if(r.data.lengththis._def.items.length&&(Ye(r,{code:Oe.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new 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)})};pTe=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:Oe.invalid_type,expected:nt.object,received:r.parsedType}),Vt;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in r.data)i.push({key:s._parse(new 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:jx.create(),valueType:t,typeName:De.ZodRecord,...ln(n)})}},HU=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:Oe.invalid_type,expected:nt.map,received:r.parsedType}),Vt;let i=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([a,c],u)=>({key:i._parse(new 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}}}};HU.create=(e,t,n)=>new HU({valueType:t,keyType:e,typeName:De.ZodMap,...ln(n)});qU=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.set)return Ye(r,{code:Oe.invalid_type,expected:nt.set,received:r.parsedType}),Vt;let i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(Ye(r,{code:Oe.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Vt;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((c,u)=>s._parse(new 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)}};qU.create=(e,t)=>new qU({valueType:e,minSize:null,maxSize:null,typeName:De.ZodSet,...ln(t)});hTe=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:Oe.invalid_type,expected:nt.function,received:n.parsedType}),Vt;function r(a,c){return lTe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,uTe(),NU].filter(u=>!!u),issueData:{code:Oe.invalid_arguments,argumentsError:c}})}function i(a,c){return lTe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,uTe(),NU].filter(u=>!!u),issueData:{code:Oe.invalid_return_type,returnTypeError:c}})}let s={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof eR){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(sE.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(sE.create()),returns:n||sE.create(),typeName:De.ZodFunction,...ln(r)})}},Gx=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})}};Gx.create=(e,t)=>new Gx({getter:e,typeName:De.ZodLazy,...ln(t)});Vx=class extends Tn{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return Ye(n,{received:n.data,code:Oe.invalid_literal,expected:this._def.value}),Vt}return{status:"valid",value:t.data}}get value(){return this._def.value}};Vx.create=(e,t)=>new Vx({value:e,typeName:De.ZodLiteral,...ln(t)});Wx=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:Oe.invalid_type}),Vt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return Ye(n,{received:n.data,code:Oe.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})}};Wx.create=zOt;Kx=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:Oe.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:Oe.invalid_enum_value,options:i}),Vt}return Xu(t.data)}get enum(){return this._def.values}};Kx.create=(e,t)=>new Kx({values:e,typeName:De.ZodNativeEnum,...ln(t)});eR=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:Oe.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})))}};eR.create=(e,t)=>new eR({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"?wU(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"?wU(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(!Fx(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=>Fx(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)});Yx=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}};Yx.create=(e,t)=>new Yx({innerType:e,typeName:De.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...ln(t)});Zx=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return U5(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Zd(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Zd(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Zx.create=(e,t)=>new Zx({innerType:e,typeName:De.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...ln(t)});BU=class extends Tn{_parse(t){if(this._getType(t)!==nt.nan){let r=this._getOrReturnCtx(t);return Ye(r,{code:Oe.invalid_type,expected:nt.nan,received:r.parsedType}),Vt}return{status:"valid",value:t.data}}};BU.create=e=>new BU({typeName:De.ZodNaN,...ln(e)});F5=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}},j5=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(),wU(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})}},Jx=class extends Tn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(Fx(i)&&(i.value=Object.freeze(i.value)),i);return U5(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};Jx.create=(e,t)=>new Jx({innerType:e,typeName:De.ZodReadonly,...ln(t)});cNi={object:jl.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={}));uNi=jx.create,lNi=CU.create,dNi=BU.create,fNi=MU.create,pNi=DU.create,hNi=LU.create,mNi=UU.create,gNi=Hx.create,yNi=qx.create,SNi=FU.create,bNi=sE.create,ENi=am.create,_Ni=jU.create,TNi=oE.create,kor=jl.create,vNi=jl.strictCreate,RNi=Bx.create,ANi=dTe.create,wNi=zx.create,kNi=Qg.create,INi=pTe.create,xNi=HU.create,ONi=qU.create,PNi=hTe.create,NNi=Gx.create,CNi=Vx.create,MNi=Wx.create,DNi=Kx.create,LNi=eR.create,UNi=gp.create,FNi=mp.create,jNi=$g.create,HNi=gp.createWithPreprocess,qNi=j5.create,BNi=Object.freeze({status:"aborted"});tR=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},mTe={};Gr={};EOt(Gr,{unwrapMessage:()=>kU,stringifyPrimitive:()=>YTe,required:()=>Wor,randomString:()=>Dor,propertyKeyTypes:()=>KOt,promiseAllObject:()=>Mor,primitiveTypes:()=>For,prefixIssues:()=>iE,pick:()=>qor,partial:()=>Vor,optionalKeys:()=>YOt,omit:()=>Bor,numKeys:()=>Lor,nullish:()=>t8,normalizeParams:()=>Ht,merge:()=>Gor,jsonStringifyReplacer:()=>GOt,joinValues:()=>gTe,issue:()=>JOt,isPlainObject:()=>GU,isObject:()=>zU,getSizableOrigin:()=>Kor,getParsedType:()=>Uor,getLengthableOrigin:()=>r8,getEnumValues:()=>VTe,getElementAtPath:()=>Cor,floatSafeRemainder:()=>VOt,finalizeIssue:()=>ty,extend:()=>zor,escapeRegex:()=>tO,esc:()=>Lx,defineLazy:()=>ki,createTransparentProxy:()=>jor,clone:()=>ny,cleanRegex:()=>n8,cleanEnum:()=>Yor,captureStackTrace:()=>KTe,cached:()=>e8,assignProp:()=>WTe,assertNotEqual:()=>xor,assertNever:()=>Por,assertIs:()=>Oor,assertEqual:()=>Ior,assert:()=>Nor,allowsEval:()=>WOt,aborted:()=>Ux,NUMBER_FORMAT_RANGES:()=>ZOt,Class:()=>yTe,BIGINT_FORMAT_RANGES:()=>Hor});KTe=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};WOt=e8(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});Uor=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},KOt=new Set(["string","number","symbol"]),For=new Set(["string","number","bigint","boolean","symbol","undefined"]);ZOt={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]},Hor={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};yTe=class{constructor(...t){}},XOt=(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,GOt,2)},enumerable:!0})},QOt=ge("$ZodError",XOt),i8=ge("$ZodError",XOt,{Parent:Error});$Ot=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 tR;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>ty(c,s,ey())));throw KTe(a,i?.callee),a}return o.value},Xor=$Ot(i8),ePt=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 KTe(a,i?.callee),a}return o.value},Qor=ePt(i8),tPt=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 tR;return s.issues.length?{success:!1,error:new(e??QOt)(s.issues.map(o=>ty(o,i,ey())))}:{success:!0,data:s.value}},ZTe=tPt(i8),nPt=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}},JTe=nPt(i8),$or=/^[cC][^\s-]{8,}$/,ear=/^[0-9a-z]+$/,tar=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,nar=/^[0-9a-vA-V]{20}$/,rar=/^[A-Za-z0-9]{27}$/,iar=/^[a-zA-Z0-9_-]{21}$/,sar=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,oar=/^([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})$/,zxt=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)$/,aar=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,car="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";lar=/^(?:(?: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])$/,dar=/^(([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})$/,far=/^((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])$/,par=/^(([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])$/,har=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,rPt=/^[A-Za-z0-9_-]*$/,mar=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,gar=/^\+(?:[0-9]){6,14}[0-9]$/,iPt="(?:(?:\\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])))",yar=new RegExp(`^${iPt}$`);Ear=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},_ar=/^\d+$/,Tar=/^-?\d+(?:\.\d+)?/i,Rar=/true|false/i,Aar=/null/i,war=/^[^A-Z]*$/,kar=/^[^a-z]*$/,$u=ge("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),oPt={number:"number",bigint:"bigint",object:"date"},aPt=ge("$ZodCheckLessThan",(e,t)=>{$u.init(e,t);let n=oPt[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=oPt[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})}}),Iar=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):VOt(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})}}),xar=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]=ZOt[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=_ar)}),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})}}),Oar=ge("$ZodCheckMaxLength",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!t8(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=r8(r);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Par=ge("$ZodCheckMinLength",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!t8(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=r8(r);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Nar=ge("$ZodCheckLengthEquals",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!t8(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=r8(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})}}),s8=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=()=>{})}),Car=ge("$ZodCheckRegex",(e,t)=>{s8.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})}}),Mar=ge("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=war),s8.init(e,t)}),Dar=ge("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=kar),s8.init(e,t)}),Lar=ge("$ZodCheckIncludes",(e,t)=>{$u.init(e,t);let n=tO(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})}}),Uar=ge("$ZodCheckStartsWith",(e,t)=>{$u.init(e,t);let n=new RegExp(`^${tO(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})}}),Far=ge("$ZodCheckEndsWith",(e,t)=>{$u.init(e,t);let n=new RegExp(`.*${tO(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})}}),jar=ge("$ZodCheckOverwrite",(e,t)=>{$u.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}}),STe=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(` -`))}},jar={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=jar;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=Ux(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 tR;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=Ux(s,d)))});else{if(s.issues.length===d)continue;c||(c=Ux(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 tR;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=KTe(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return YTe(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()??bar(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}}),Vi=ge("$ZodStringFormat",(e,t)=>{i8.init(e,t),ZTe.init(e,t)}),Har=ge("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=sar),Vi.init(e,t)}),qar=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=qxt(r))}else t.pattern??(t.pattern=qxt());Vi.init(e,t)}),Bar=ge("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=oar),Vi.init(e,t)}),zar=ge("$ZodURL",(e,t)=>{Vi.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:har.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})}}}),Gar=ge("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=car()),Vi.init(e,t)}),Var=ge("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=rar),Vi.init(e,t)}),War=ge("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Qor),Vi.init(e,t)}),Kar=ge("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=$or),Vi.init(e,t)}),Yar=ge("$ZodULID",(e,t)=>{t.pattern??(t.pattern=ear),Vi.init(e,t)}),Zar=ge("$ZodXID",(e,t)=>{t.pattern??(t.pattern=tar),Vi.init(e,t)}),Jar=ge("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=nar),Vi.init(e,t)}),Xar=ge("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Sar(t)),Vi.init(e,t)}),Qar=ge("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=gar),Vi.init(e,t)}),$ar=ge("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=yar(t)),Vi.init(e,t)}),ecr=ge("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=iar),Vi.init(e,t)}),tcr=ge("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=uar),Vi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),ncr=ge("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=lar),Vi.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})}}}),rcr=ge("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=dar),Vi.init(e,t)}),icr=ge("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=far),Vi.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})}}});scr=ge("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=par),Vi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{aPt(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});acr=ge("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=tPt),Vi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{ocr(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),ccr=ge("$ZodE164",(e,t)=>{t.pattern??(t.pattern=mar),Vi.init(e,t)});lcr=ge("$ZodJWT",(e,t)=>{Vi.init(e,t),e._zod.check=n=>{ucr(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),cPt=ge("$ZodNumber",(e,t)=>{li.init(e,t),e._zod.pattern=e._zod.bag.pattern??_ar,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}}),dcr=ge("$ZodNumber",(e,t)=>{Iar.init(e,t),cPt.init(e,t)}),fcr=ge("$ZodBoolean",(e,t)=>{li.init(e,t),e._zod.pattern=Tar,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}}),pcr=ge("$ZodNull",(e,t)=>{li.init(e,t),e._zod.pattern=Rar,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}}),hcr=ge("$ZodUnknown",(e,t)=>{li.init(e,t),e._zod.parse=n=>n}),mcr=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)});gcr=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;oBxt(u,n,o))):Bxt(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});uPt=ge("$ZodObject",(e,t)=>{li.init(e,t);let n=$5(()=>{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=WOt(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 gTe(["shape","payload","ctx"]),p=n.value,h=b=>{let S=Lx(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=Lx(b);f.write(` +`))}},Har={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=Har;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=Ux(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 tR;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=Ux(s,d)))});else{if(s.issues.length===d)continue;c||(c=Ux(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 tR;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=ZTe(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return JTe(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),XTe=ge("$ZodString",(e,t)=>{li.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Ear(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}}),Vi=ge("$ZodStringFormat",(e,t)=>{s8.init(e,t),XTe.init(e,t)}),qar=ge("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=oar),Vi.init(e,t)}),Bar=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=zxt(r))}else t.pattern??(t.pattern=zxt());Vi.init(e,t)}),zar=ge("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=aar),Vi.init(e,t)}),Gar=ge("$ZodURL",(e,t)=>{Vi.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:mar.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})}}}),Var=ge("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=uar()),Vi.init(e,t)}),War=ge("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=iar),Vi.init(e,t)}),Kar=ge("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=$or),Vi.init(e,t)}),Yar=ge("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=ear),Vi.init(e,t)}),Zar=ge("$ZodULID",(e,t)=>{t.pattern??(t.pattern=tar),Vi.init(e,t)}),Jar=ge("$ZodXID",(e,t)=>{t.pattern??(t.pattern=nar),Vi.init(e,t)}),Xar=ge("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=rar),Vi.init(e,t)}),Qar=ge("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=bar(t)),Vi.init(e,t)}),$ar=ge("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=yar),Vi.init(e,t)}),ecr=ge("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Sar(t)),Vi.init(e,t)}),tcr=ge("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=sar),Vi.init(e,t)}),ncr=ge("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=lar),Vi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),rcr=ge("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=dar),Vi.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})}}}),icr=ge("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=far),Vi.init(e,t)}),scr=ge("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=par),Vi.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})}}});ocr=ge("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=har),Vi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{uPt(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});ccr=ge("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=rPt),Vi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{acr(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),ucr=ge("$ZodE164",(e,t)=>{t.pattern??(t.pattern=gar),Vi.init(e,t)});dcr=ge("$ZodJWT",(e,t)=>{Vi.init(e,t),e._zod.check=n=>{lcr(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),lPt=ge("$ZodNumber",(e,t)=>{li.init(e,t),e._zod.pattern=e._zod.bag.pattern??Tar,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}}),fcr=ge("$ZodNumber",(e,t)=>{xar.init(e,t),lPt.init(e,t)}),pcr=ge("$ZodBoolean",(e,t)=>{li.init(e,t),e._zod.pattern=Rar,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}}),hcr=ge("$ZodNull",(e,t)=>{li.init(e,t),e._zod.pattern=Aar,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}}),mcr=ge("$ZodUnknown",(e,t)=>{li.init(e,t),e._zod.parse=n=>n}),gcr=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)});ycr=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;oGxt(u,n,o))):Gxt(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});dPt=ge("$ZodObject",(e,t)=>{li.init(e,t);let n=e8(()=>{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=YOt(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 STe(["shape","payload","ctx"]),p=n.value,h=b=>{let S=Lx(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=Lx(b);f.write(` if (${S}.issues.length) { if (input[${E}] === undefined) { if (${E} in input) { @@ -1376,9 +1376,9 @@ diagnostic: ${s}${a}`}],isError:!0}}var TU,_xt,Txt=v(()=>{"use strict";vl();TU=1 if (${S}.issues.length) payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ ...iss, path: iss.path ? [${Lx(b)}, ...iss.path] : [${Lx(b)}] - })));`),f.write(`newResult[${Lx(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=zU,o=!pTe.jitless,c=o&&GOt.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?zxt(A,d,E,p):w5(A,d,E))):R?zxt(T,d,E,p):w5(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(_=>w5(_,d,S))):w5(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}});lPt=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=>t8(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=>Gxt(o,n,e,r)):Gxt(s,n,e,r)}}),ycr=ge("$ZodDiscriminatedUnion",(e,t)=>{lPt.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=$5(()=>{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(!zU(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)}}),Scr=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])=>Vxt(n,c,u)):Vxt(n,s,o)}});bcr=ge("$ZodRecord",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!GU(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;let s=[];if(t.keyType._zod.values){let o=t.keyType._zod.values;n.value={};for(let c of o)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&n.issues.push(...iE(c,l.issues)),n.value[c]=l.value})):(u.issues.length&&n.issues.push(...iE(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(...iE(o,u.issues)),n.value[a.value]=u.value})):(c.issues.length&&n.issues.push(...iE(o,c.issues)),n.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),Ecr=ge("$ZodEnum",(e,t)=>{li.init(e,t);let n=zTe(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>VOt.has(typeof r)).map(r=>typeof r=="string"?tO(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}}),_cr=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"?tO(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}}),Tcr=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 tR;return n.value=i,n}}),vcr=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(`^(${t8(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)}),Rcr=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(`^(${t8(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)}),Acr=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=>Wxt(s,t)):Wxt(i,t)}});wcr=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))}),kcr=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=>Kxt(s,e)):Kxt(i,e)}});Icr=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)}}),xcr=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=>Yxt(s,t,r)):Yxt(i,t,r)}});Ocr=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(Zxt):Zxt(i)}});Pcr=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=>Jxt(s,n,r,e));Jxt(i,n,r,e)}});Ncr=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},Ccr=()=>{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 ${Ncr(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${WTe(r.values[0])}`:`Invalid option: expected one of ${hTe(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":""}: ${hTe(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"}}};j5=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)}};IU=Dcr();q5=class{constructor(t){this.counter=0,this.metadataRegistry=t?.metadata??IU,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=zTe(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("/")}/ + })));`),f.write(`newResult[${Lx(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=zU,o=!mTe.jitless,c=o&&WOt.value,u=t.catchall,l;e._zod.parse=(d,f)=>{l??(l=n.value);let p=d.value;if(!s(p))return d.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),d;let h=[];if(o&&c&&f?.async===!1&&f.jitless!==!0)i||(i=r(t.shape)),d=i(d,f);else{d.value={};let S=l.shape;for(let 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?Vxt(A,d,E,p):k5(A,d,E))):R?Vxt(T,d,E,p):k5(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(_=>k5(_,d,S))):k5(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}});fPt=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=>n8(r.source)).join("|")})$`)}}),e._zod.parse=(n,r)=>{let i=!1,s=[];for(let o of t.options){let a=o._zod.run({value:n.value,issues:[]},r);if(a instanceof Promise)s.push(a),i=!0;else{if(a.issues.length===0)return a;s.push(a)}}return i?Promise.all(s).then(o=>Wxt(o,n,e,r)):Wxt(s,n,e,r)}}),Scr=ge("$ZodDiscriminatedUnion",(e,t)=>{fPt.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=e8(()=>{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(!zU(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)}}),bcr=ge("$ZodIntersection",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value,s=t.left._zod.run({value:i,issues:[]},r),o=t.right._zod.run({value:i,issues:[]},r);return s instanceof Promise||o instanceof Promise?Promise.all([s,o]).then(([c,u])=>Kxt(n,c,u)):Kxt(n,s,o)}});Ecr=ge("$ZodRecord",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!GU(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;let s=[];if(t.keyType._zod.values){let o=t.keyType._zod.values;n.value={};for(let c of o)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&n.issues.push(...iE(c,l.issues)),n.value[c]=l.value})):(u.issues.length&&n.issues.push(...iE(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(...iE(o,u.issues)),n.value[a.value]=u.value})):(c.issues.length&&n.issues.push(...iE(o,c.issues)),n.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),_cr=ge("$ZodEnum",(e,t)=>{li.init(e,t);let n=VTe(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>KOt.has(typeof r)).map(r=>typeof r=="string"?tO(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}}),Tcr=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"?tO(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}}),vcr=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 tR;return n.value=i,n}}),Rcr=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(`^(${n8(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)}),Acr=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(`^(${n8(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)}),wcr=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=>Yxt(s,t)):Yxt(i,t)}});kcr=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))}),Icr=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=>Zxt(s,e)):Zxt(i,e)}});xcr=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)}}),Ocr=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=>Jxt(s,t,r)):Jxt(i,t,r)}});Pcr=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(Xxt):Xxt(i)}});Ncr=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=>Qxt(s,n,r,e));Qxt(i,n,r,e)}});Ccr=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},Mcr=()=>{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 ${Ccr(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${YTe(r.values[0])}`:`Invalid option: expected one of ${gTe(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":""}: ${gTe(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"}}};H5=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)}};IU=Lcr();B5=class{constructor(t){this.counter=0,this.metadataRegistry=t?.metadata??IU,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=VTe(i.entries);m.every(g=>typeof g=="number")&&(h.type="number"),m.every(g=>typeof g=="string")&&(h.type="string"),h.enum=m;break}case"literal":{let h=p,m=[];for(let g of i.values)if(g===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof g=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");m.push(Number(g))}else m.push(g);if(m.length!==0)if(m.length===1){let g=m[0];h.type=g===null?"null":typeof g,h.const=g}else m.every(g=>typeof g=="number")&&(h.type="number"),m.every(g=>typeof g=="string")&&(h.type="string"),m.every(g=>typeof g=="boolean")&&(h.type="string"),m.every(g=>g===null)&&(h.type="null"),h.enum=m;break}case"file":{let h=p,m={type:"string",format:"binary",contentEncoding:"binary"},{minimum:g,maximum:y,mime:b}=t._zod.bag;g!==void 0&&(m.minLength=g),y!==void 0&&(m.maxLength=y),b?b.length===1?(m.contentMediaType=b[0],Object.assign(h,m)):h.anyOf=b.map(S=>({...m,contentMediaType:S})):Object.assign(h,m);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{let h=this.process(i.innerType,d);p.anyOf=[h,{type:"null"}];break}case"nonoptional":{this.process(i.innerType,d),a.ref=i.innerType;break}case"success":{let h=p;h.type="boolean";break}case"default":{this.process(i.innerType,d),a.ref=i.innerType,p.default=JSON.parse(JSON.stringify(i.defaultValue));break}case"prefault":{this.process(i.innerType,d),a.ref=i.innerType,this.io==="input"&&(p._prefault=JSON.parse(JSON.stringify(i.defaultValue)));break}case"catch":{this.process(i.innerType,d),a.ref=i.innerType;let h;try{h=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}p.default=h;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let h=p,m=t._zod.pattern;if(!m)throw new Error("Pattern not found in template literal");h.type="string",h.pattern=m.source;break}case"pipe":{let h=this.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;this.process(h,d),a.ref=h;break}case"readonly":{this.process(i.innerType,d),a.ref=i.innerType,p.readOnly=!0;break}case"promise":{this.process(i.innerType,d),a.ref=i.innerType;break}case"optional":{this.process(i.innerType,d),a.ref=i.innerType;break}case"lazy":{let h=t._zod.innerType;this.process(h,d),a.ref=h;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}default:}}}let u=this.metadataRegistry.get(t);return u&&Object.assign(a.schema,u),this.io==="input"&&Io(t)&&(delete a.schema.examples,delete a.schema.default),this.io==="input"&&a.schema._prefault&&((r=a.schema).default??(r.default=a.schema._prefault)),delete a.schema._prefault,this.seen.get(t).schema}emit(t,n){let r={cycles:n?.cycles??"ref",reused:n?.reused??"inline",external:n?.external??void 0},i=this.seen.get(t);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");let s=l=>{let d=this.target==="draft-2020-12"?"$defs":"definitions";if(r.external){let m=r.external.registry.get(l[0])?.id;if(m)return{ref:r.external.uri(m)};let g=l[1].defId??l[1].schema.id??`schema${this.counter++}`;return l[1].defId=g,{defId:g,ref:`${r.external.uri("__shared")}#/${d}/${g}`}}if(l[1]===i)return{ref:"#"};let p=`#/${d}/`,h=l[1].schema.id??`__schema${this.counter++}`;return{defId:h,ref:p+h}},o=l=>{if(l[1].schema.$ref)return;let d=l[1],{ref:f,defId:p}=s(l);d.def={...d.schema},p&&(d.defId=p);let h=d.schema;for(let m in h)delete h[m];h.$ref=f};for(let l of this.seen.entries()){let d=l[1];if(t===l[0]){o(l);continue}if(r.external){let p=r.external.registry.get(l[0])?.id;if(t!==l[0]&&p){o(l);continue}}if(this.metadataRegistry.get(l[0])?.id){o(l);continue}if(d.cycle){if(r.cycles==="throw")throw new Error(`Cycle detected: #/${d.cycle?.join("/")}/ -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`);r.cycles==="ref"&&o(l);continue}if(d.count>1&&r.reused==="ref"){o(l);continue}}let a=(l,d)=>{let f=this.seen.get(l),p=f.def??f.schema,h={...p};if(f.ref===null)return;let m=f.ref;if(f.ref=null,m){a(m,d);let g=this.seen.get(m).schema;g.$ref&&d.target==="draft-7"?(p.allOf=p.allOf??[],p.allOf.push(g)):(Object.assign(p,g),Object.assign(p,h))}f.isParent||this.override({zodSchema:l,jsonSchema:p,path:f.path??[]})};for(let l of[...this.seen.entries()].reverse())a(l[0],{target:this.target});let c={};this.target==="draft-2020-12"?c.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?c.$schema="http://json-schema.org/draft-07/schema#":console.warn(`Invalid target: ${this.target}`),Object.assign(c,i.def);let u=r.external?.defs??{};for(let l of this.seen.entries()){let d=l[1];d.def&&d.defId&&(u[d.defId]=d.def)}!r.external&&Object.keys(u).length>0&&(this.target==="draft-2020-12"?c.$defs=u:c.definitions=u);try{return JSON.parse(JSON.stringify(c))}catch{throw new Error("Error converting schema to JSON.")}}};Iur=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)=>Jor(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>KTe(e,n,r),e.parseAsync=async(n,r)=>Xor(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>YTe(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)}),xur=ge("ZodMiniObject",(e,t)=>{uPt.init(e,t),Iur.init(e,t),Gr.defineLazy(e,"shape",()=>t.shape)});hPt={};SOt(hPt,{time:()=>EPt,duration:()=>TPt,datetime:()=>gPt,date:()=>SPt,ZodISOTime:()=>bPt,ZodISODuration:()=>_Pt,ZodISODateTime:()=>mPt,ZodISODate:()=>yPt});mPt=ge("ZodISODateTime",(e,t)=>{Xar.init(e,t),os.init(e,t)});yPt=ge("ZodISODate",(e,t)=>{Qar.init(e,t),os.init(e,t)});bPt=ge("ZodISOTime",(e,t)=>{$ar.init(e,t),os.init(e,t)});_Pt=ge("ZodISODuration",(e,t)=>{ecr.init(e,t),os.init(e,t)});vPt=(e,t)=>{JOt.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>Zor(e,n)},flatten:{value:n=>Yor(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},qNi=ge("ZodError",vPt),s8=ge("ZodError",vPt,{Parent:Error}),Nur=XOt(s8),Cur=QOt(s8),Mur=$Ot(s8),Dur=ePt(s8),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)=>Nur(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Mur(e,n,r),e.parseAsync=async(n,r)=>Cur(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>Dur(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(Alr(n,r)),e.superRefine=n=>e.check(wlr(n)),e.overwrite=n=>e.check(WU(n)),e.optional=()=>yt(e),e.nullable=()=>iOt(e),e.nullish=()=>yt(iOt(e)),e.nonoptional=n=>ylr(e,n),e.array=()=>er(e),e.or=n=>Wi([e,n]),e.and=n=>JTe(e,n),e.transform=n=>bTe(e,OPt(n)),e.default=n=>hlr(e,n),e.prefault=n=>glr(e,n),e.catch=n=>blr(e,n),e.pipe=n=>bTe(e,n),e.readonly=()=>Tlr(e),e.describe=n=>{let r=e.clone();return IU.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return IU.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return IU.get(e);let r=e.clone();return IU.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),RPt=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(hur(...r)),e.includes=(...r)=>e.check(yur(...r)),e.startsWith=(...r)=>e.check(Sur(...r)),e.endsWith=(...r)=>e.check(bur(...r)),e.min=(...r)=>e.check(H5(...r)),e.max=(...r)=>e.check(dPt(...r)),e.length=(...r)=>e.check(fPt(...r)),e.nonempty=(...r)=>e.check(H5(1,...r)),e.lowercase=r=>e.check(mur(r)),e.uppercase=r=>e.check(gur(r)),e.trim=()=>e.check(_ur()),e.normalize=(...r)=>e.check(Eur(...r)),e.toLowerCase=()=>e.check(Tur()),e.toUpperCase=()=>e.check(vur())}),Lur=ge("ZodString",(e,t)=>{ZTe.init(e,t),RPt.init(e,t),e.email=n=>e.check(Ucr(Uur,n)),e.url=n=>e.check(Bcr(Fur,n)),e.jwt=n=>e.check(rur($ur,n)),e.emoji=n=>e.check(zcr(jur,n)),e.guid=n=>e.check(Xxt(nOt,n)),e.uuid=n=>e.check(Fcr(k5,n)),e.uuidv4=n=>e.check(jcr(k5,n)),e.uuidv6=n=>e.check(Hcr(k5,n)),e.uuidv7=n=>e.check(qcr(k5,n)),e.nanoid=n=>e.check(Gcr(Hur,n)),e.guid=n=>e.check(Xxt(nOt,n)),e.cuid=n=>e.check(Vcr(qur,n)),e.cuid2=n=>e.check(Wcr(Bur,n)),e.ulid=n=>e.check(Kcr(zur,n)),e.base64=n=>e.check(eur(Jur,n)),e.base64url=n=>e.check(tur(Xur,n)),e.xid=n=>e.check(Ycr(Gur,n)),e.ksuid=n=>e.check(Zcr(Vur,n)),e.ipv4=n=>e.check(Jcr(Wur,n)),e.ipv6=n=>e.check(Xcr(Kur,n)),e.cidrv4=n=>e.check(Qcr(Yur,n)),e.cidrv6=n=>e.check($cr(Zur,n)),e.e164=n=>e.check(nur(Qur,n)),e.datetime=n=>e.check(gPt(n)),e.date=n=>e.check(SPt(n)),e.time=n=>e.check(EPt(n)),e.duration=n=>e.check(TPt(n))});os=ge("ZodStringFormat",(e,t)=>{Vi.init(e,t),RPt.init(e,t)}),Uur=ge("ZodEmail",(e,t)=>{Bar.init(e,t),os.init(e,t)}),nOt=ge("ZodGUID",(e,t)=>{Har.init(e,t),os.init(e,t)}),k5=ge("ZodUUID",(e,t)=>{qar.init(e,t),os.init(e,t)}),Fur=ge("ZodURL",(e,t)=>{zar.init(e,t),os.init(e,t)}),jur=ge("ZodEmoji",(e,t)=>{Gar.init(e,t),os.init(e,t)}),Hur=ge("ZodNanoID",(e,t)=>{Var.init(e,t),os.init(e,t)}),qur=ge("ZodCUID",(e,t)=>{War.init(e,t),os.init(e,t)}),Bur=ge("ZodCUID2",(e,t)=>{Kar.init(e,t),os.init(e,t)}),zur=ge("ZodULID",(e,t)=>{Yar.init(e,t),os.init(e,t)}),Gur=ge("ZodXID",(e,t)=>{Zar.init(e,t),os.init(e,t)}),Vur=ge("ZodKSUID",(e,t)=>{Jar.init(e,t),os.init(e,t)}),Wur=ge("ZodIPv4",(e,t)=>{tcr.init(e,t),os.init(e,t)}),Kur=ge("ZodIPv6",(e,t)=>{ncr.init(e,t),os.init(e,t)}),Yur=ge("ZodCIDRv4",(e,t)=>{rcr.init(e,t),os.init(e,t)}),Zur=ge("ZodCIDRv6",(e,t)=>{icr.init(e,t),os.init(e,t)}),Jur=ge("ZodBase64",(e,t)=>{scr.init(e,t),os.init(e,t)}),Xur=ge("ZodBase64URL",(e,t)=>{acr.init(e,t),os.init(e,t)}),Qur=ge("ZodE164",(e,t)=>{ccr.init(e,t),os.init(e,t)}),$ur=ge("ZodJWT",(e,t)=>{lcr.init(e,t),os.init(e,t)}),APt=ge("ZodNumber",(e,t)=>{cPt.init(e,t),ss.init(e,t),e.gt=(r,i)=>e.check($xt(r,i)),e.gte=(r,i)=>e.check($_e(r,i)),e.min=(r,i)=>e.check($_e(r,i)),e.lt=(r,i)=>e.check(Qxt(r,i)),e.lte=(r,i)=>e.check(Q_e(r,i)),e.max=(r,i)=>e.check(Q_e(r,i)),e.int=r=>e.check(rOt(r)),e.safe=r=>e.check(rOt(r)),e.positive=r=>e.check($xt(0,r)),e.nonnegative=r=>e.check($_e(0,r)),e.negative=r=>e.check(Qxt(0,r)),e.nonpositive=r=>e.check(Q_e(0,r)),e.multipleOf=(r,i)=>e.check(eOt(r,i)),e.step=(r,i)=>e.check(eOt(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});elr=ge("ZodNumberFormat",(e,t)=>{dcr.init(e,t),APt.init(e,t)});tlr=ge("ZodBoolean",(e,t)=>{fcr.init(e,t),ss.init(e,t)});nlr=ge("ZodNull",(e,t)=>{pcr.init(e,t),ss.init(e,t)});rlr=ge("ZodUnknown",(e,t)=>{hcr.init(e,t),ss.init(e,t)});ilr=ge("ZodNever",(e,t)=>{mcr.init(e,t),ss.init(e,t)});olr=ge("ZodArray",(e,t)=>{gcr.init(e,t),ss.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(H5(n,r)),e.nonempty=n=>e.check(H5(1,n)),e.max=(n,r)=>e.check(dPt(n,r)),e.length=(n,r)=>e.check(fPt(n,r)),e.unwrap=()=>e.element});kPt=ge("ZodObject",(e,t)=>{uPt.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:slr()}),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(PPt,e,n[0]),e.required=(...n)=>Gr.required(NPt,e,n[0])});IPt=ge("ZodUnion",(e,t)=>{lPt.init(e,t),ss.init(e,t),e.options=t.options});alr=ge("ZodDiscriminatedUnion",(e,t)=>{IPt.init(e,t),ycr.init(e,t)});clr=ge("ZodIntersection",(e,t)=>{Scr.init(e,t),ss.init(e,t)});ulr=ge("ZodRecord",(e,t)=>{bcr.init(e,t),ss.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});STe=ge("ZodEnum",(e,t)=>{Ecr.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 STe({...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 STe({...t,checks:[],...Gr.normalizeParams(i),entries:s})}});llr=ge("ZodLiteral",(e,t)=>{_cr.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]}})});dlr=ge("ZodTransform",(e,t)=>{Tcr.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)}});PPt=ge("ZodOptional",(e,t)=>{vcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});flr=ge("ZodNullable",(e,t)=>{Rcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});plr=ge("ZodDefault",(e,t)=>{Acr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});mlr=ge("ZodPrefault",(e,t)=>{wcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});NPt=ge("ZodNonOptional",(e,t)=>{kcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});Slr=ge("ZodCatch",(e,t)=>{Icr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});Elr=ge("ZodPipe",(e,t)=>{xcr.init(e,t),ss.init(e,t),e.in=t.in,e.out=t.out});_lr=ge("ZodReadonly",(e,t)=>{Ocr.init(e,t),ss.init(e,t)});CPt=ge("ZodCustom",(e,t)=>{Pcr.init(e,t),ss.init(e,t)});ey(Mcr());DPt="2025-11-25",klr=[DPt,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Jg="io.modelcontextprotocol/related-task",o8="2.0",om=Rlr(e=>e!==null&&(typeof e=="object"||typeof e=="function")),LPt=Wi([he(),ui().int()]),UPt=he(),Ilr=Sp({ttl:Wi([ui(),wPt()]).optional(),pollInterval:ui().optional()}),XTe=Sp({taskId:he()}),xlr=Sp({progressToken:LPt.optional(),[Jg]:XTe.optional()}),el=Sp({task:Ilr.optional(),_meta:xlr.optional()}),ja=Ge({method:he(),params:el.optional()}),nR=Sp({_meta:Ge({[Jg]:yt(XTe)}).passthrough().optional()}),Xd=Ge({method:he(),params:nR.optional()}),Ac=Sp({_meta:Sp({[Jg]:XTe.optional()}).optional()}),a8=Wi([he(),ui().int()]),FPt=Ge({jsonrpc:St(o8),id:a8,...ja.shape}).strict(),sOt=e=>FPt.safeParse(e).success,jPt=Ge({jsonrpc:St(o8),...Xd.shape}).strict(),Olr=e=>jPt.safeParse(e).success,HPt=Ge({jsonrpc:St(o8),id:a8,result:Ac}).strict(),I5=e=>HPt.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={}));qPt=Ge({jsonrpc:St(o8),id:a8,error:Ge({code:ui().int(),message:he(),data:yt(xo())})}).strict(),Plr=e=>qPt.safeParse(e).success,BNi=Wi([FPt,jPt,HPt,qPt]),QTe=Ac.strict(),Nlr=nR.extend({requestId:a8,reason:he().optional()}),$Te=Xd.extend({method:St("notifications/cancelled"),params:Nlr}),Clr=Ge({src:he(),mimeType:he().optional(),sizes:er(he()).optional()}),YU=Ge({icons:er(Clr).optional()}),Xx=Ge({name:he(),title:he().optional()}),BPt=Xx.extend({...Xx.shape,...YU.shape,version:he(),websiteUrl:he().optional()}),Mlr=JTe(Ge({applyDefaults:vc().optional()}),Oo(he(),xo())),Dlr=MPt(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,JTe(Ge({form:Mlr.optional(),url:om.optional()}),Oo(he(),xo()).optional())),Llr=Ge({list:yt(Ge({}).passthrough()),cancel:yt(Ge({}).passthrough()),requests:yt(Ge({sampling:yt(Ge({createMessage:yt(Ge({}).passthrough())}).passthrough()),elicitation:yt(Ge({create:yt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Ulr=Ge({list:yt(Ge({}).passthrough()),cancel:yt(Ge({}).passthrough()),requests:yt(Ge({tools:yt(Ge({call:yt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Flr=Ge({experimental:Oo(he(),om).optional(),sampling:Ge({context:om.optional(),tools:om.optional()}).optional(),elicitation:Dlr.optional(),roots:Ge({listChanged:vc().optional()}).optional(),tasks:yt(Llr)}),jlr=el.extend({protocolVersion:he(),capabilities:Flr,clientInfo:BPt}),zPt=ja.extend({method:St("initialize"),params:jlr}),Hlr=Ge({experimental:Oo(he(),om).optional(),logging:om.optional(),completions:om.optional(),prompts:yt(Ge({listChanged:yt(vc())})),resources:Ge({subscribe:vc().optional(),listChanged:vc().optional()}).optional(),tools:Ge({listChanged:vc().optional()}).optional(),tasks:yt(Ulr)}).passthrough(),qlr=Ac.extend({protocolVersion:he(),capabilities:Hlr,serverInfo:BPt,instructions:he().optional()}),GPt=Xd.extend({method:St("notifications/initialized")}),eve=ja.extend({method:St("ping")}),Blr=Ge({progress:ui(),total:yt(ui()),message:yt(he())}),zlr=Ge({...nR.shape,...Blr.shape,progressToken:LPt}),tve=Xd.extend({method:St("notifications/progress"),params:zlr}),Glr=el.extend({cursor:UPt.optional()}),ZU=ja.extend({params:Glr.optional()}),JU=Ac.extend({nextCursor:yt(UPt)}),XU=Ge({taskId:he(),status:Rc(["working","input_required","completed","failed","cancelled"]),ttl:Wi([ui(),wPt()]),createdAt:he(),lastUpdatedAt:he(),pollInterval:yt(ui()),statusMessage:yt(he())}),c8=Ac.extend({task:XU}),Vlr=nR.merge(XU),B5=Xd.extend({method:St("notifications/tasks/status"),params:Vlr}),nve=ja.extend({method:St("tasks/get"),params:el.extend({taskId:he()})}),rve=Ac.merge(XU),ive=ja.extend({method:St("tasks/result"),params:el.extend({taskId:he()})}),sve=ZU.extend({method:St("tasks/list")}),ove=JU.extend({tasks:er(XU)}),Wlr=ja.extend({method:St("tasks/cancel"),params:el.extend({taskId:he()})}),Klr=Ac.merge(XU),VPt=Ge({uri:he(),mimeType:yt(he()),_meta:Oo(he(),xo()).optional()}),WPt=VPt.extend({text:he()}),ave=he().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),KPt=VPt.extend({blob:ave}),nO=Ge({audience:er(Rc(["user","assistant"])).optional(),priority:ui().min(0).max(1).optional(),lastModified:hPt.datetime({offset:!0}).optional()}),YPt=Ge({...Xx.shape,...YU.shape,uri:he(),description:yt(he()),mimeType:yt(he()),annotations:nO.optional(),_meta:yt(Sp({}))}),Ylr=Ge({...Xx.shape,...YU.shape,uriTemplate:he(),description:yt(he()),mimeType:yt(he()),annotations:nO.optional(),_meta:yt(Sp({}))}),ETe=ZU.extend({method:St("resources/list")}),Zlr=JU.extend({resources:er(YPt)}),_Te=ZU.extend({method:St("resources/templates/list")}),Jlr=JU.extend({resourceTemplates:er(Ylr)}),cve=el.extend({uri:he()}),Xlr=cve,TTe=ja.extend({method:St("resources/read"),params:Xlr}),Qlr=Ac.extend({contents:er(Wi([WPt,KPt]))}),$lr=Xd.extend({method:St("notifications/resources/list_changed")}),edr=cve,tdr=ja.extend({method:St("resources/subscribe"),params:edr}),ndr=cve,rdr=ja.extend({method:St("resources/unsubscribe"),params:ndr}),idr=nR.extend({uri:he()}),sdr=Xd.extend({method:St("notifications/resources/updated"),params:idr}),odr=Ge({name:he(),description:yt(he()),required:yt(vc())}),adr=Ge({...Xx.shape,...YU.shape,description:yt(he()),arguments:yt(er(odr)),_meta:yt(Sp({}))}),vTe=ZU.extend({method:St("prompts/list")}),cdr=JU.extend({prompts:er(adr)}),udr=el.extend({name:he(),arguments:Oo(he(),he()).optional()}),RTe=ja.extend({method:St("prompts/get"),params:udr}),uve=Ge({type:St("text"),text:he(),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),lve=Ge({type:St("image"),data:ave,mimeType:he(),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),dve=Ge({type:St("audio"),data:ave,mimeType:he(),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),ldr=Ge({type:St("tool_use"),name:he(),id:he(),input:Ge({}).passthrough(),_meta:yt(Ge({}).passthrough())}).passthrough(),ddr=Ge({type:St("resource"),resource:Wi([WPt,KPt]),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),fdr=YPt.extend({type:St("resource_link")}),fve=Wi([uve,lve,dve,fdr,ddr]),pdr=Ge({role:Rc(["user","assistant"]),content:fve}),hdr=Ac.extend({description:yt(he()),messages:er(pdr)}),mdr=Xd.extend({method:St("notifications/prompts/list_changed")}),gdr=Ge({title:he().optional(),readOnlyHint:vc().optional(),destructiveHint:vc().optional(),idempotentHint:vc().optional(),openWorldHint:vc().optional()}),ydr=Ge({taskSupport:Rc(["required","optional","forbidden"]).optional()}),ZPt=Ge({...Xx.shape,...YU.shape,description:he().optional(),inputSchema:Ge({type:St("object"),properties:Oo(he(),om).optional(),required:er(he()).optional()}).catchall(xo()),outputSchema:Ge({type:St("object"),properties:Oo(he(),om).optional(),required:er(he()).optional()}).catchall(xo()).optional(),annotations:yt(gdr),execution:yt(ydr),_meta:Oo(he(),xo()).optional()}),ATe=ZU.extend({method:St("tools/list")}),Sdr=JU.extend({tools:er(ZPt)}),pve=Ac.extend({content:er(fve).default([]),structuredContent:Oo(he(),xo()).optional(),isError:yt(vc())}),zNi=pve.or(Ac.extend({toolResult:xo()})),bdr=el.extend({name:he(),arguments:yt(Oo(he(),xo()))}),z5=ja.extend({method:St("tools/call"),params:bdr}),Edr=Xd.extend({method:St("notifications/tools/list_changed")}),G5=Rc(["debug","info","notice","warning","error","critical","alert","emergency"]),_dr=el.extend({level:G5}),JPt=ja.extend({method:St("logging/setLevel"),params:_dr}),Tdr=nR.extend({level:G5,logger:he().optional(),data:xo()}),vdr=Xd.extend({method:St("notifications/message"),params:Tdr}),Rdr=Ge({name:he().optional()}),Adr=Ge({hints:yt(er(Rdr)),costPriority:yt(ui().min(0).max(1)),speedPriority:yt(ui().min(0).max(1)),intelligencePriority:yt(ui().min(0).max(1))}),wdr=Ge({mode:yt(Rc(["auto","required","none"]))}),kdr=Ge({type:St("tool_result"),toolUseId:he().describe("The unique identifier for the corresponding tool call."),content:er(fve).default([]),structuredContent:Ge({}).passthrough().optional(),isError:yt(vc()),_meta:yt(Ge({}).passthrough())}).passthrough(),Idr=xPt("type",[uve,lve,dve]),V5=xPt("type",[uve,lve,dve,ldr,kdr]),xdr=Ge({role:Rc(["user","assistant"]),content:Wi([V5,er(V5)]),_meta:yt(Ge({}).passthrough())}).passthrough(),Odr=el.extend({messages:er(xdr),modelPreferences:Adr.optional(),systemPrompt:he().optional(),includeContext:Rc(["none","thisServer","allServers"]).optional(),temperature:ui().optional(),maxTokens:ui().int(),stopSequences:er(he()).optional(),metadata:om.optional(),tools:yt(er(ZPt)),toolChoice:yt(wdr)}),Pdr=ja.extend({method:St("sampling/createMessage"),params:Odr}),XPt=Ac.extend({model:he(),stopReason:yt(Rc(["endTurn","stopSequence","maxTokens"]).or(he())),role:Rc(["user","assistant"]),content:Idr}),QPt=Ac.extend({model:he(),stopReason:yt(Rc(["endTurn","stopSequence","maxTokens","toolUse"]).or(he())),role:Rc(["user","assistant"]),content:Wi([V5,er(V5)])}),Ndr=Ge({type:St("boolean"),title:he().optional(),description:he().optional(),default:vc().optional()}),Cdr=Ge({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()}),Mdr=Ge({type:Rc(["number","integer"]),title:he().optional(),description:he().optional(),minimum:ui().optional(),maximum:ui().optional(),default:ui().optional()}),Ddr=Ge({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),default:he().optional()}),Ldr=Ge({type:St("string"),title:he().optional(),description:he().optional(),oneOf:er(Ge({const:he(),title:he()})),default:he().optional()}),Udr=Ge({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),enumNames:er(he()).optional(),default:he().optional()}),Fdr=Wi([Ddr,Ldr]),jdr=Ge({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:Ge({type:St("string"),enum:er(he())}),default:er(he()).optional()}),Hdr=Ge({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:Ge({anyOf:er(Ge({const:he(),title:he()}))}),default:er(he()).optional()}),qdr=Wi([jdr,Hdr]),Bdr=Wi([Udr,Fdr,qdr]),zdr=Wi([Bdr,Ndr,Cdr,Mdr]),Gdr=el.extend({mode:St("form").optional(),message:he(),requestedSchema:Ge({type:St("object"),properties:Oo(he(),zdr),required:er(he()).optional()})}),Vdr=el.extend({mode:St("url"),message:he(),elicitationId:he(),url:he().url()}),Wdr=Wi([Gdr,Vdr]),Kdr=ja.extend({method:St("elicitation/create"),params:Wdr}),Ydr=nR.extend({elicitationId:he()}),Zdr=Xd.extend({method:St("notifications/elicitation/complete"),params:Ydr}),wTe=Ac.extend({action:Rc(["accept","decline","cancel"]),content:MPt(e=>e===null?void 0:e,Oo(he(),Wi([he(),ui(),vc(),er(he())])).optional())}),Jdr=Ge({type:St("ref/resource"),uri:he()}),Xdr=Ge({type:St("ref/prompt"),name:he()}),Qdr=el.extend({ref:Wi([Xdr,Jdr]),argument:Ge({name:he(),value:he()}),context:Ge({arguments:Oo(he(),he()).optional()}).optional()}),kTe=ja.extend({method:St("completion/complete"),params:Qdr});tfr=Ac.extend({completion:Sp({values:er(he()).max(100),total:yt(ui().int()),hasMore:yt(vc())})}),nfr=Ge({uri:he().startsWith("file://"),name:he().optional(),_meta:Oo(he(),xo()).optional()}),rfr=ja.extend({method:St("roots/list")}),$Pt=Ac.extend({roots:er(nfr)}),ifr=Xd.extend({method:St("notifications/roots/list_changed")}),GNi=Wi([eve,zPt,kTe,JPt,RTe,vTe,ETe,_Te,TTe,tdr,rdr,z5,ATe,nve,ive,sve]),VNi=Wi([$Te,tve,GPt,ifr,B5]),WNi=Wi([QTe,XPt,QPt,wTe,$Pt,rve,ove,c8]),KNi=Wi([eve,Pdr,Kdr,rfr,nve,ive,sve]),YNi=Wi([$Te,tve,vdr,sdr,$lr,Edr,mdr,B5,Zdr]),ZNi=Wi([QTe,qlr,tfr,hdr,cdr,Zlr,Jlr,Qlr,pve,Sdr,rve,ove,c8]),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 ITe(i.elicitations,n)}return new e(t,n,r)}},ITe=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:[]}};sfr=Symbol("Let zodToJsonSchema decide on which parser to use"),oOt={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"},ofr=e=>typeof e=="string"?{...oOt,name:e}:{...oOt,...e},afr=e=>{let t=ofr(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}]))}};tNt=(e,t)=>{let n=0;for(;nEr(e.innerType._def,t);ffr=(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};gfr=e=>"type"in e&&e.type==="string"?!1:"allOf"in e;nTe=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:()=>(nTe===void 0&&(nTe=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),nTe),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-_]*$/};bfr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");W5={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};cOt=(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};Pfr=(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)},Nfr=(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)}};Ffr=(e,t)=>Er(e.innerType._def,t),jfr=(e,t,n)=>{switch(t){case De.ZodString:return iNt(e,n);case De.ZodNumber:return kfr(e,n);case De.ZodObject:return Ifr(e,n);case De.ZodBigInt:return ufr(e,n);case De.ZodBoolean:return lfr();case De.ZodDate:return rNt(e,n);case De.ZodUndefined:return Lfr(n);case De.ZodNull:return Rfr(n);case De.ZodArray:return cfr(e,n);case De.ZodUnion:case De.ZodDiscriminatedUnion:return Afr(e,n);case De.ZodIntersection:return yfr(e,n);case De.ZodTuple:return Dfr(e,n);case De.ZodRecord:return sNt(e,n);case De.ZodLiteral:return Sfr(e,n);case De.ZodEnum:return mfr(e);case De.ZodNativeEnum:return Tfr(e);case De.ZodNullable:return wfr(e,n);case De.ZodOptional:return Pfr(e,n);case De.ZodMap:return _fr(e,n);case De.ZodSet:return Mfr(e,n);case De.ZodLazy:return()=>e.getter()._def;case De.ZodPromise:return Cfr(e,n);case De.ZodNaN:case De.ZodNever:return vfr(n);case De.ZodEffects:return hfr(e,n);case De.ZodAny:return Qu(n);case De.ZodUnknown:return Ufr(n);case De.ZodDefault:return pfr(e,n);case De.ZodBranded:return nNt(e,n);case De.ZodReadonly:return Ffr(e,n);case De.ZodCatch:return dfr(e,n);case De.ZodPipeline:return Nfr(e,n);case De.ZodFunction:case De.ZodVoid:case De.ZodSymbol:return;default:return(r=>{})(t)}};Hfr=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:tNt(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}},qfr=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),Bfr=(e,t)=>{let n=afr(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};Gfr=6e4,xTe=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($Te,n=>{this._oncancel(n)}),this.setNotificationHandler(tve,n=>{this._onprogress(n)}),this.setRequestHandler(eve,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(nve,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(ive,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(!$v(a.status))return await this._waitForTaskUpdate(o,r.signal),await i();if($v(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(sve,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(Wlr,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($v(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),I5(c)||Plr(c)?this._onresponse(c):sOt(c)?this._onrequest(c,u):Olr(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),I5(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(I5(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),I5(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,c8,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},$v(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=OU(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:Gfr,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},rve,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},ove,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},Klr,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=lOt(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=dOt(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=lOt(t);this._notificationHandlers.set(r,i=>{let s=dOt(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"&&sOt(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=B5.parse({method:"notifications/tasks/status",params:a});await this.notification(c),$v(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($v(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=B5.parse({method:"notifications/tasks/status",params:c});await this.notification(u),$v(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}};Wfr=yOt(AOt(),1),Kfr=yOt(wrr(),1);OTe=class{constructor(t){this._ajv=t??Yfr()}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)}}},PTe=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)}};NTe=class extends xTe{constructor(t,n){var r,i;super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(G5.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(GPt,()=>{var s;return(s=this.oninitialized)===null||s===void 0?void 0:s.call(this)}),this._capabilities.logging&&this.setRequestHandler(JPt,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=G5.safeParse(u);return l.success&&this._loggingLevels.set(c,l.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new PTe(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Vfr(this._capabilities,t)}setRequestHandler(t,n){var r,i,s;let o=KU(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=OU(z5,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=OU(c8,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=OU(pve,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;Jfr((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&&Zfr((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:klr.includes(n)?n:DPt,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"},QTe)}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},QPt,n):this.request({method:"sampling/createMessage",params:t},XPt,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},wTe,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},wTe,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},$Pt,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"})}},oNt=Symbol.for("mcp.completable");(function(e){e.Completable="McpCompletable"})(pOt||(pOt={}));$fr=/^[A-Za-z0-9._-]{1,128}$/;CTe=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)}},MTe=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 NTe(t,n)}get experimental(){return this._experimental||(this._experimental={tasks:new CTe(this)}),this._experimental}async connect(t){return await this.server.connect(t)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler(tE(ATe)),this.server.assertCanSetRequestHandler(tE(z5)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(ATe,()=>({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=RU(n.inputSchema);return i?uOt(i,{strictUnions:!0,pipeStrategy:"input"}):npr})(),annotations:n.annotations,execution:n.execution,_meta:n._meta};if(n.outputSchema){let i=RU(n.outputSchema);i&&(r.outputSchema=uOt(i,{strictUnions:!0,pipeStrategy:"output"}))}return r})})),this.server.setRequestHandler(z5,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=RU(t.inputSchema),s=i??t.inputSchema,o=await eTe(s,n);if(!o.success){let a="error"in o?o.error:"Unknown error",c=tTe(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=RU(t.outputSchema),s=await eTe(i,n.structuredContent);if(!s.success){let o="error"in s?s.error:"Unknown error",a=tTe(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(tE(kTe)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(kTe,async t=>{switch(t.params.ref.type){case"ref/prompt":return $dr(t),this.handlePromptCompletion(t,t.params.ref);case"ref/resource":return efr(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 AU;let i=KU(r.argsSchema),s=i?.[t.params.argument.name];if(!Xfr(s))return AU;let o=Qfr(s);if(!o)return AU;let a=await o(t.params.argument.value,t.params.context);return gOt(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 AU;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 AU;let s=await i(t.params.argument.value,t.params.context);return gOt(s)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(tE(ETe)),this.server.assertCanSetRequestHandler(tE(_Te)),this.server.assertCanSetRequestHandler(tE(TTe)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(ETe,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(_Te,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([n,r])=>({name:n,uriTemplate:r.resourceTemplate.uriTemplate.toString(),...r.metadata}))})),this.server.setRequestHandler(TTe,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(tE(vTe)),this.server.assertCanSetRequestHandler(tE(RTe)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(vTe,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,t])=>t.enabled).map(([t,n])=>({name:t,title:n.title,description:n.description,arguments:n.argsSchema?ipr(n.argsSchema):void 0}))})),this.server.setRequestHandler(RTe,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=RU(r.argsSchema),s=await eTe(i,t.params.arguments);if(!s.success){let c="error"in s?s.error:"Unknown error",u=tTe(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:xU(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=xU(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){hOt(t);let l={title:n,description:r,inputSchema:mOt(i),outputSchema:mOt(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"&&hOt(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=xU(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];DTe(c)?(i=n.shift(),n.length>1&&typeof n[0]=="object"&&n[0]!==null&&!DTe(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()}},npr={type:"object",properties:{}};AU={completion:{values:[],hasMore:!1}}});var lNt={};Ar(lNt,{runRepairAgent:()=>dpr});import{existsSync as rR,readdirSync as hve,readFileSync as mve}from"node:fs";import{join as ry}from"node:path";async function dpr(e){let t;try{t=(await Promise.resolve().then(()=>(uNt(),cNt))).query}catch{return{success:!1,summary:"Claude Agent SDK not available \u2014 mechanical repair applied, remaining issues need manual attention",fallbackUsed:!0}}let n=fpr(e),r=ppr(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 fpr(e){let t=hpr(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.")}}};xur=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)=>Xor(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>ZTe(e,n,r),e.parseAsync=async(n,r)=>Qor(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>JTe(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)}),Our=ge("ZodMiniObject",(e,t)=>{dPt.init(e,t),xur.init(e,t),Gr.defineLazy(e,"shape",()=>t.shape)});gPt={};EOt(gPt,{time:()=>TPt,duration:()=>RPt,datetime:()=>SPt,date:()=>EPt,ZodISOTime:()=>_Pt,ZodISODuration:()=>vPt,ZodISODateTime:()=>yPt,ZodISODate:()=>bPt});yPt=ge("ZodISODateTime",(e,t)=>{Qar.init(e,t),os.init(e,t)});bPt=ge("ZodISODate",(e,t)=>{$ar.init(e,t),os.init(e,t)});_Pt=ge("ZodISOTime",(e,t)=>{ecr.init(e,t),os.init(e,t)});vPt=ge("ZodISODuration",(e,t)=>{tcr.init(e,t),os.init(e,t)});APt=(e,t)=>{QOt.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>Jor(e,n)},flatten:{value:n=>Zor(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},zNi=ge("ZodError",APt),o8=ge("ZodError",APt,{Parent:Error}),Cur=$Ot(o8),Mur=ePt(o8),Dur=tPt(o8),Lur=nPt(o8),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)=>Cur(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Dur(e,n,r),e.parseAsync=async(n,r)=>Mur(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>Lur(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(wlr(n,r)),e.superRefine=n=>e.check(klr(n)),e.overwrite=n=>e.check(WU(n)),e.optional=()=>yt(e),e.nullable=()=>oOt(e),e.nullish=()=>yt(oOt(e)),e.nonoptional=n=>Slr(e,n),e.array=()=>er(e),e.or=n=>Wi([e,n]),e.and=n=>QTe(e,n),e.transform=n=>_Te(e,NPt(n)),e.default=n=>mlr(e,n),e.prefault=n=>ylr(e,n),e.catch=n=>Elr(e,n),e.pipe=n=>_Te(e,n),e.readonly=()=>vlr(e),e.describe=n=>{let r=e.clone();return IU.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return IU.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return IU.get(e);let r=e.clone();return IU.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),wPt=ge("_ZodString",(e,t)=>{XTe.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(mur(...r)),e.includes=(...r)=>e.check(Sur(...r)),e.startsWith=(...r)=>e.check(bur(...r)),e.endsWith=(...r)=>e.check(Eur(...r)),e.min=(...r)=>e.check(q5(...r)),e.max=(...r)=>e.check(pPt(...r)),e.length=(...r)=>e.check(hPt(...r)),e.nonempty=(...r)=>e.check(q5(1,...r)),e.lowercase=r=>e.check(gur(r)),e.uppercase=r=>e.check(yur(r)),e.trim=()=>e.check(Tur()),e.normalize=(...r)=>e.check(_ur(...r)),e.toLowerCase=()=>e.check(vur()),e.toUpperCase=()=>e.check(Rur())}),Uur=ge("ZodString",(e,t)=>{XTe.init(e,t),wPt.init(e,t),e.email=n=>e.check(Fcr(Fur,n)),e.url=n=>e.check(zcr(jur,n)),e.jwt=n=>e.check(iur(elr,n)),e.emoji=n=>e.check(Gcr(Hur,n)),e.guid=n=>e.check($xt(iOt,n)),e.uuid=n=>e.check(jcr(I5,n)),e.uuidv4=n=>e.check(Hcr(I5,n)),e.uuidv6=n=>e.check(qcr(I5,n)),e.uuidv7=n=>e.check(Bcr(I5,n)),e.nanoid=n=>e.check(Vcr(qur,n)),e.guid=n=>e.check($xt(iOt,n)),e.cuid=n=>e.check(Wcr(Bur,n)),e.cuid2=n=>e.check(Kcr(zur,n)),e.ulid=n=>e.check(Ycr(Gur,n)),e.base64=n=>e.check(tur(Xur,n)),e.base64url=n=>e.check(nur(Qur,n)),e.xid=n=>e.check(Zcr(Vur,n)),e.ksuid=n=>e.check(Jcr(Wur,n)),e.ipv4=n=>e.check(Xcr(Kur,n)),e.ipv6=n=>e.check(Qcr(Yur,n)),e.cidrv4=n=>e.check($cr(Zur,n)),e.cidrv6=n=>e.check(eur(Jur,n)),e.e164=n=>e.check(rur($ur,n)),e.datetime=n=>e.check(SPt(n)),e.date=n=>e.check(EPt(n)),e.time=n=>e.check(TPt(n)),e.duration=n=>e.check(RPt(n))});os=ge("ZodStringFormat",(e,t)=>{Vi.init(e,t),wPt.init(e,t)}),Fur=ge("ZodEmail",(e,t)=>{zar.init(e,t),os.init(e,t)}),iOt=ge("ZodGUID",(e,t)=>{qar.init(e,t),os.init(e,t)}),I5=ge("ZodUUID",(e,t)=>{Bar.init(e,t),os.init(e,t)}),jur=ge("ZodURL",(e,t)=>{Gar.init(e,t),os.init(e,t)}),Hur=ge("ZodEmoji",(e,t)=>{Var.init(e,t),os.init(e,t)}),qur=ge("ZodNanoID",(e,t)=>{War.init(e,t),os.init(e,t)}),Bur=ge("ZodCUID",(e,t)=>{Kar.init(e,t),os.init(e,t)}),zur=ge("ZodCUID2",(e,t)=>{Yar.init(e,t),os.init(e,t)}),Gur=ge("ZodULID",(e,t)=>{Zar.init(e,t),os.init(e,t)}),Vur=ge("ZodXID",(e,t)=>{Jar.init(e,t),os.init(e,t)}),Wur=ge("ZodKSUID",(e,t)=>{Xar.init(e,t),os.init(e,t)}),Kur=ge("ZodIPv4",(e,t)=>{ncr.init(e,t),os.init(e,t)}),Yur=ge("ZodIPv6",(e,t)=>{rcr.init(e,t),os.init(e,t)}),Zur=ge("ZodCIDRv4",(e,t)=>{icr.init(e,t),os.init(e,t)}),Jur=ge("ZodCIDRv6",(e,t)=>{scr.init(e,t),os.init(e,t)}),Xur=ge("ZodBase64",(e,t)=>{ocr.init(e,t),os.init(e,t)}),Qur=ge("ZodBase64URL",(e,t)=>{ccr.init(e,t),os.init(e,t)}),$ur=ge("ZodE164",(e,t)=>{ucr.init(e,t),os.init(e,t)}),elr=ge("ZodJWT",(e,t)=>{dcr.init(e,t),os.init(e,t)}),kPt=ge("ZodNumber",(e,t)=>{lPt.init(e,t),ss.init(e,t),e.gt=(r,i)=>e.check(tOt(r,i)),e.gte=(r,i)=>e.check(tTe(r,i)),e.min=(r,i)=>e.check(tTe(r,i)),e.lt=(r,i)=>e.check(eOt(r,i)),e.lte=(r,i)=>e.check(eTe(r,i)),e.max=(r,i)=>e.check(eTe(r,i)),e.int=r=>e.check(sOt(r)),e.safe=r=>e.check(sOt(r)),e.positive=r=>e.check(tOt(0,r)),e.nonnegative=r=>e.check(tTe(0,r)),e.negative=r=>e.check(eOt(0,r)),e.nonpositive=r=>e.check(eTe(0,r)),e.multipleOf=(r,i)=>e.check(nOt(r,i)),e.step=(r,i)=>e.check(nOt(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});tlr=ge("ZodNumberFormat",(e,t)=>{fcr.init(e,t),kPt.init(e,t)});nlr=ge("ZodBoolean",(e,t)=>{pcr.init(e,t),ss.init(e,t)});rlr=ge("ZodNull",(e,t)=>{hcr.init(e,t),ss.init(e,t)});ilr=ge("ZodUnknown",(e,t)=>{mcr.init(e,t),ss.init(e,t)});slr=ge("ZodNever",(e,t)=>{gcr.init(e,t),ss.init(e,t)});alr=ge("ZodArray",(e,t)=>{ycr.init(e,t),ss.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(q5(n,r)),e.nonempty=n=>e.check(q5(1,n)),e.max=(n,r)=>e.check(pPt(n,r)),e.length=(n,r)=>e.check(hPt(n,r)),e.unwrap=()=>e.element});xPt=ge("ZodObject",(e,t)=>{dPt.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:olr()}),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(CPt,e,n[0]),e.required=(...n)=>Gr.required(MPt,e,n[0])});OPt=ge("ZodUnion",(e,t)=>{fPt.init(e,t),ss.init(e,t),e.options=t.options});clr=ge("ZodDiscriminatedUnion",(e,t)=>{OPt.init(e,t),Scr.init(e,t)});ulr=ge("ZodIntersection",(e,t)=>{bcr.init(e,t),ss.init(e,t)});llr=ge("ZodRecord",(e,t)=>{Ecr.init(e,t),ss.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});ETe=ge("ZodEnum",(e,t)=>{_cr.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 ETe({...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 ETe({...t,checks:[],...Gr.normalizeParams(i),entries:s})}});dlr=ge("ZodLiteral",(e,t)=>{Tcr.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]}})});flr=ge("ZodTransform",(e,t)=>{vcr.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)}});CPt=ge("ZodOptional",(e,t)=>{Rcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});plr=ge("ZodNullable",(e,t)=>{Acr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});hlr=ge("ZodDefault",(e,t)=>{wcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});glr=ge("ZodPrefault",(e,t)=>{kcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});MPt=ge("ZodNonOptional",(e,t)=>{Icr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});blr=ge("ZodCatch",(e,t)=>{xcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});_lr=ge("ZodPipe",(e,t)=>{Ocr.init(e,t),ss.init(e,t),e.in=t.in,e.out=t.out});Tlr=ge("ZodReadonly",(e,t)=>{Pcr.init(e,t),ss.init(e,t)});DPt=ge("ZodCustom",(e,t)=>{Ncr.init(e,t),ss.init(e,t)});ey(Dcr());UPt="2025-11-25",Ilr=[UPt,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Jg="io.modelcontextprotocol/related-task",a8="2.0",om=Alr(e=>e!==null&&(typeof e=="object"||typeof e=="function")),FPt=Wi([he(),ui().int()]),jPt=he(),xlr=Sp({ttl:Wi([ui(),IPt()]).optional(),pollInterval:ui().optional()}),$Te=Sp({taskId:he()}),Olr=Sp({progressToken:FPt.optional(),[Jg]:$Te.optional()}),el=Sp({task:xlr.optional(),_meta:Olr.optional()}),ja=Ge({method:he(),params:el.optional()}),nR=Sp({_meta:Ge({[Jg]:yt($Te)}).passthrough().optional()}),Xd=Ge({method:he(),params:nR.optional()}),Ac=Sp({_meta:Sp({[Jg]:$Te.optional()}).optional()}),c8=Wi([he(),ui().int()]),HPt=Ge({jsonrpc:St(a8),id:c8,...ja.shape}).strict(),aOt=e=>HPt.safeParse(e).success,qPt=Ge({jsonrpc:St(a8),...Xd.shape}).strict(),Plr=e=>qPt.safeParse(e).success,BPt=Ge({jsonrpc:St(a8),id:c8,result:Ac}).strict(),x5=e=>BPt.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={}));zPt=Ge({jsonrpc:St(a8),id:c8,error:Ge({code:ui().int(),message:he(),data:yt(xo())})}).strict(),Nlr=e=>zPt.safeParse(e).success,GNi=Wi([HPt,qPt,BPt,zPt]),eve=Ac.strict(),Clr=nR.extend({requestId:c8,reason:he().optional()}),tve=Xd.extend({method:St("notifications/cancelled"),params:Clr}),Mlr=Ge({src:he(),mimeType:he().optional(),sizes:er(he()).optional()}),YU=Ge({icons:er(Mlr).optional()}),Xx=Ge({name:he(),title:he().optional()}),GPt=Xx.extend({...Xx.shape,...YU.shape,version:he(),websiteUrl:he().optional()}),Dlr=QTe(Ge({applyDefaults:vc().optional()}),Oo(he(),xo())),Llr=LPt(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,QTe(Ge({form:Dlr.optional(),url:om.optional()}),Oo(he(),xo()).optional())),Ulr=Ge({list:yt(Ge({}).passthrough()),cancel:yt(Ge({}).passthrough()),requests:yt(Ge({sampling:yt(Ge({createMessage:yt(Ge({}).passthrough())}).passthrough()),elicitation:yt(Ge({create:yt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Flr=Ge({list:yt(Ge({}).passthrough()),cancel:yt(Ge({}).passthrough()),requests:yt(Ge({tools:yt(Ge({call:yt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),jlr=Ge({experimental:Oo(he(),om).optional(),sampling:Ge({context:om.optional(),tools:om.optional()}).optional(),elicitation:Llr.optional(),roots:Ge({listChanged:vc().optional()}).optional(),tasks:yt(Ulr)}),Hlr=el.extend({protocolVersion:he(),capabilities:jlr,clientInfo:GPt}),VPt=ja.extend({method:St("initialize"),params:Hlr}),qlr=Ge({experimental:Oo(he(),om).optional(),logging:om.optional(),completions:om.optional(),prompts:yt(Ge({listChanged:yt(vc())})),resources:Ge({subscribe:vc().optional(),listChanged:vc().optional()}).optional(),tools:Ge({listChanged:vc().optional()}).optional(),tasks:yt(Flr)}).passthrough(),Blr=Ac.extend({protocolVersion:he(),capabilities:qlr,serverInfo:GPt,instructions:he().optional()}),WPt=Xd.extend({method:St("notifications/initialized")}),nve=ja.extend({method:St("ping")}),zlr=Ge({progress:ui(),total:yt(ui()),message:yt(he())}),Glr=Ge({...nR.shape,...zlr.shape,progressToken:FPt}),rve=Xd.extend({method:St("notifications/progress"),params:Glr}),Vlr=el.extend({cursor:jPt.optional()}),ZU=ja.extend({params:Vlr.optional()}),JU=Ac.extend({nextCursor:yt(jPt)}),XU=Ge({taskId:he(),status:Rc(["working","input_required","completed","failed","cancelled"]),ttl:Wi([ui(),IPt()]),createdAt:he(),lastUpdatedAt:he(),pollInterval:yt(ui()),statusMessage:yt(he())}),u8=Ac.extend({task:XU}),Wlr=nR.merge(XU),z5=Xd.extend({method:St("notifications/tasks/status"),params:Wlr}),ive=ja.extend({method:St("tasks/get"),params:el.extend({taskId:he()})}),sve=Ac.merge(XU),ove=ja.extend({method:St("tasks/result"),params:el.extend({taskId:he()})}),ave=ZU.extend({method:St("tasks/list")}),cve=JU.extend({tasks:er(XU)}),Klr=ja.extend({method:St("tasks/cancel"),params:el.extend({taskId:he()})}),Ylr=Ac.merge(XU),KPt=Ge({uri:he(),mimeType:yt(he()),_meta:Oo(he(),xo()).optional()}),YPt=KPt.extend({text:he()}),uve=he().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),ZPt=KPt.extend({blob:uve}),nO=Ge({audience:er(Rc(["user","assistant"])).optional(),priority:ui().min(0).max(1).optional(),lastModified:gPt.datetime({offset:!0}).optional()}),JPt=Ge({...Xx.shape,...YU.shape,uri:he(),description:yt(he()),mimeType:yt(he()),annotations:nO.optional(),_meta:yt(Sp({}))}),Zlr=Ge({...Xx.shape,...YU.shape,uriTemplate:he(),description:yt(he()),mimeType:yt(he()),annotations:nO.optional(),_meta:yt(Sp({}))}),TTe=ZU.extend({method:St("resources/list")}),Jlr=JU.extend({resources:er(JPt)}),vTe=ZU.extend({method:St("resources/templates/list")}),Xlr=JU.extend({resourceTemplates:er(Zlr)}),lve=el.extend({uri:he()}),Qlr=lve,RTe=ja.extend({method:St("resources/read"),params:Qlr}),$lr=Ac.extend({contents:er(Wi([YPt,ZPt]))}),edr=Xd.extend({method:St("notifications/resources/list_changed")}),tdr=lve,ndr=ja.extend({method:St("resources/subscribe"),params:tdr}),rdr=lve,idr=ja.extend({method:St("resources/unsubscribe"),params:rdr}),sdr=nR.extend({uri:he()}),odr=Xd.extend({method:St("notifications/resources/updated"),params:sdr}),adr=Ge({name:he(),description:yt(he()),required:yt(vc())}),cdr=Ge({...Xx.shape,...YU.shape,description:yt(he()),arguments:yt(er(adr)),_meta:yt(Sp({}))}),ATe=ZU.extend({method:St("prompts/list")}),udr=JU.extend({prompts:er(cdr)}),ldr=el.extend({name:he(),arguments:Oo(he(),he()).optional()}),wTe=ja.extend({method:St("prompts/get"),params:ldr}),dve=Ge({type:St("text"),text:he(),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),fve=Ge({type:St("image"),data:uve,mimeType:he(),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),pve=Ge({type:St("audio"),data:uve,mimeType:he(),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),ddr=Ge({type:St("tool_use"),name:he(),id:he(),input:Ge({}).passthrough(),_meta:yt(Ge({}).passthrough())}).passthrough(),fdr=Ge({type:St("resource"),resource:Wi([YPt,ZPt]),annotations:nO.optional(),_meta:Oo(he(),xo()).optional()}),pdr=JPt.extend({type:St("resource_link")}),hve=Wi([dve,fve,pve,pdr,fdr]),hdr=Ge({role:Rc(["user","assistant"]),content:hve}),mdr=Ac.extend({description:yt(he()),messages:er(hdr)}),gdr=Xd.extend({method:St("notifications/prompts/list_changed")}),ydr=Ge({title:he().optional(),readOnlyHint:vc().optional(),destructiveHint:vc().optional(),idempotentHint:vc().optional(),openWorldHint:vc().optional()}),Sdr=Ge({taskSupport:Rc(["required","optional","forbidden"]).optional()}),XPt=Ge({...Xx.shape,...YU.shape,description:he().optional(),inputSchema:Ge({type:St("object"),properties:Oo(he(),om).optional(),required:er(he()).optional()}).catchall(xo()),outputSchema:Ge({type:St("object"),properties:Oo(he(),om).optional(),required:er(he()).optional()}).catchall(xo()).optional(),annotations:yt(ydr),execution:yt(Sdr),_meta:Oo(he(),xo()).optional()}),kTe=ZU.extend({method:St("tools/list")}),bdr=JU.extend({tools:er(XPt)}),mve=Ac.extend({content:er(hve).default([]),structuredContent:Oo(he(),xo()).optional(),isError:yt(vc())}),VNi=mve.or(Ac.extend({toolResult:xo()})),Edr=el.extend({name:he(),arguments:yt(Oo(he(),xo()))}),G5=ja.extend({method:St("tools/call"),params:Edr}),_dr=Xd.extend({method:St("notifications/tools/list_changed")}),V5=Rc(["debug","info","notice","warning","error","critical","alert","emergency"]),Tdr=el.extend({level:V5}),QPt=ja.extend({method:St("logging/setLevel"),params:Tdr}),vdr=nR.extend({level:V5,logger:he().optional(),data:xo()}),Rdr=Xd.extend({method:St("notifications/message"),params:vdr}),Adr=Ge({name:he().optional()}),wdr=Ge({hints:yt(er(Adr)),costPriority:yt(ui().min(0).max(1)),speedPriority:yt(ui().min(0).max(1)),intelligencePriority:yt(ui().min(0).max(1))}),kdr=Ge({mode:yt(Rc(["auto","required","none"]))}),Idr=Ge({type:St("tool_result"),toolUseId:he().describe("The unique identifier for the corresponding tool call."),content:er(hve).default([]),structuredContent:Ge({}).passthrough().optional(),isError:yt(vc()),_meta:yt(Ge({}).passthrough())}).passthrough(),xdr=PPt("type",[dve,fve,pve]),W5=PPt("type",[dve,fve,pve,ddr,Idr]),Odr=Ge({role:Rc(["user","assistant"]),content:Wi([W5,er(W5)]),_meta:yt(Ge({}).passthrough())}).passthrough(),Pdr=el.extend({messages:er(Odr),modelPreferences:wdr.optional(),systemPrompt:he().optional(),includeContext:Rc(["none","thisServer","allServers"]).optional(),temperature:ui().optional(),maxTokens:ui().int(),stopSequences:er(he()).optional(),metadata:om.optional(),tools:yt(er(XPt)),toolChoice:yt(kdr)}),Ndr=ja.extend({method:St("sampling/createMessage"),params:Pdr}),$Pt=Ac.extend({model:he(),stopReason:yt(Rc(["endTurn","stopSequence","maxTokens"]).or(he())),role:Rc(["user","assistant"]),content:xdr}),eNt=Ac.extend({model:he(),stopReason:yt(Rc(["endTurn","stopSequence","maxTokens","toolUse"]).or(he())),role:Rc(["user","assistant"]),content:Wi([W5,er(W5)])}),Cdr=Ge({type:St("boolean"),title:he().optional(),description:he().optional(),default:vc().optional()}),Mdr=Ge({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()}),Ddr=Ge({type:Rc(["number","integer"]),title:he().optional(),description:he().optional(),minimum:ui().optional(),maximum:ui().optional(),default:ui().optional()}),Ldr=Ge({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),default:he().optional()}),Udr=Ge({type:St("string"),title:he().optional(),description:he().optional(),oneOf:er(Ge({const:he(),title:he()})),default:he().optional()}),Fdr=Ge({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),enumNames:er(he()).optional(),default:he().optional()}),jdr=Wi([Ldr,Udr]),Hdr=Ge({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:Ge({type:St("string"),enum:er(he())}),default:er(he()).optional()}),qdr=Ge({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:Ge({anyOf:er(Ge({const:he(),title:he()}))}),default:er(he()).optional()}),Bdr=Wi([Hdr,qdr]),zdr=Wi([Fdr,jdr,Bdr]),Gdr=Wi([zdr,Cdr,Mdr,Ddr]),Vdr=el.extend({mode:St("form").optional(),message:he(),requestedSchema:Ge({type:St("object"),properties:Oo(he(),Gdr),required:er(he()).optional()})}),Wdr=el.extend({mode:St("url"),message:he(),elicitationId:he(),url:he().url()}),Kdr=Wi([Vdr,Wdr]),Ydr=ja.extend({method:St("elicitation/create"),params:Kdr}),Zdr=nR.extend({elicitationId:he()}),Jdr=Xd.extend({method:St("notifications/elicitation/complete"),params:Zdr}),ITe=Ac.extend({action:Rc(["accept","decline","cancel"]),content:LPt(e=>e===null?void 0:e,Oo(he(),Wi([he(),ui(),vc(),er(he())])).optional())}),Xdr=Ge({type:St("ref/resource"),uri:he()}),Qdr=Ge({type:St("ref/prompt"),name:he()}),$dr=el.extend({ref:Wi([Qdr,Xdr]),argument:Ge({name:he(),value:he()}),context:Ge({arguments:Oo(he(),he()).optional()}).optional()}),xTe=ja.extend({method:St("completion/complete"),params:$dr});nfr=Ac.extend({completion:Sp({values:er(he()).max(100),total:yt(ui().int()),hasMore:yt(vc())})}),rfr=Ge({uri:he().startsWith("file://"),name:he().optional(),_meta:Oo(he(),xo()).optional()}),ifr=ja.extend({method:St("roots/list")}),tNt=Ac.extend({roots:er(rfr)}),sfr=Xd.extend({method:St("notifications/roots/list_changed")}),WNi=Wi([nve,VPt,xTe,QPt,wTe,ATe,TTe,vTe,RTe,ndr,idr,G5,kTe,ive,ove,ave]),KNi=Wi([tve,rve,WPt,sfr,z5]),YNi=Wi([eve,$Pt,eNt,ITe,tNt,sve,cve,u8]),ZNi=Wi([nve,Ndr,Ydr,ifr,ive,ove,ave]),JNi=Wi([tve,rve,Rdr,odr,edr,_dr,gdr,z5,Jdr]),XNi=Wi([eve,Blr,nfr,mdr,udr,Jlr,Xlr,$lr,mve,bdr,sve,cve,u8]),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 OTe(i.elicitations,n)}return new e(t,n,r)}},OTe=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:[]}};ofr=Symbol("Let zodToJsonSchema decide on which parser to use"),cOt={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"},afr=e=>typeof e=="string"?{...cOt,name:e}:{...cOt,...e},cfr=e=>{let t=afr(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}]))}};rNt=(e,t)=>{let n=0;for(;nEr(e.innerType._def,t);pfr=(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};yfr=e=>"type"in e&&e.type==="string"?!1:"allOf"in e;iTe=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:()=>(iTe===void 0&&(iTe=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),iTe),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-_]*$/};Efr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");K5={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};lOt=(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};Nfr=(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)},Cfr=(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)}};jfr=(e,t)=>Er(e.innerType._def,t),Hfr=(e,t,n)=>{switch(t){case De.ZodString:return oNt(e,n);case De.ZodNumber:return Ifr(e,n);case De.ZodObject:return xfr(e,n);case De.ZodBigInt:return lfr(e,n);case De.ZodBoolean:return dfr();case De.ZodDate:return sNt(e,n);case De.ZodUndefined:return Ufr(n);case De.ZodNull:return Afr(n);case De.ZodArray:return ufr(e,n);case De.ZodUnion:case De.ZodDiscriminatedUnion:return wfr(e,n);case De.ZodIntersection:return Sfr(e,n);case De.ZodTuple:return Lfr(e,n);case De.ZodRecord:return aNt(e,n);case De.ZodLiteral:return bfr(e,n);case De.ZodEnum:return gfr(e);case De.ZodNativeEnum:return vfr(e);case De.ZodNullable:return kfr(e,n);case De.ZodOptional:return Nfr(e,n);case De.ZodMap:return Tfr(e,n);case De.ZodSet:return Dfr(e,n);case De.ZodLazy:return()=>e.getter()._def;case De.ZodPromise:return Mfr(e,n);case De.ZodNaN:case De.ZodNever:return Rfr(n);case De.ZodEffects:return mfr(e,n);case De.ZodAny:return Qu(n);case De.ZodUnknown:return Ffr(n);case De.ZodDefault:return hfr(e,n);case De.ZodBranded:return iNt(e,n);case De.ZodReadonly:return jfr(e,n);case De.ZodCatch:return ffr(e,n);case De.ZodPipeline:return Cfr(e,n);case De.ZodFunction:case De.ZodVoid:case De.ZodSymbol:return;default:return(r=>{})(t)}};qfr=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:rNt(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}},Bfr=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),zfr=(e,t)=>{let n=cfr(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};Vfr=6e4,PTe=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(tve,n=>{this._oncancel(n)}),this.setNotificationHandler(rve,n=>{this._onprogress(n)}),this.setRequestHandler(nve,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(ive,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(ove,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(!$v(a.status))return await this._waitForTaskUpdate(o,r.signal),await i();if($v(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(ave,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(Klr,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($v(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),x5(c)||Nlr(c)?this._onresponse(c):aOt(c)?this._onrequest(c,u):Plr(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),x5(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(x5(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),x5(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,u8,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},$v(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=OU(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:Vfr,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},sve,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},cve,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},Ylr,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=fOt(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=pOt(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=fOt(t);this._notificationHandlers.set(r,i=>{let s=pOt(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"&&aOt(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=z5.parse({method:"notifications/tasks/status",params:a});await this.notification(c),$v(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($v(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=z5.parse({method:"notifications/tasks/status",params:c});await this.notification(u),$v(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}};Kfr=bOt(kOt(),1),Yfr=bOt(krr(),1);NTe=class{constructor(t){this._ajv=t??Zfr()}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)}}},CTe=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 PTe{constructor(t,n){var r,i;super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(V5.options.map((s,o)=>[s,o])),this.isMessageIgnored=(s,o)=>{let a=this._loggingLevels.get(o);return a?this.LOG_LEVEL_SEVERITY.get(s)this._oninitialize(s)),this.setNotificationHandler(WPt,()=>{var s;return(s=this.oninitialized)===null||s===void 0?void 0:s.call(this)}),this._capabilities.logging&&this.setRequestHandler(QPt,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=V5.safeParse(u);return l.success&&this._loggingLevels.set(c,l.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new CTe(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Wfr(this._capabilities,t)}setRequestHandler(t,n){var r,i,s;let o=KU(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=OU(G5,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=OU(u8,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=OU(mve,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;Xfr((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&&Jfr((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:Ilr.includes(n)?n:UPt,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"},eve)}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},eNt,n):this.request({method:"sampling/createMessage",params:t},$Pt,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},ITe,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},ITe,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},tNt,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"})}},cNt=Symbol.for("mcp.completable");(function(e){e.Completable="McpCompletable"})(mOt||(mOt={}));epr=/^[A-Za-z0-9._-]{1,128}$/;DTe=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)}},LTe=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 DTe(this)}),this._experimental}async connect(t){return await this.server.connect(t)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler(tE(kTe)),this.server.assertCanSetRequestHandler(tE(G5)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(kTe,()=>({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=RU(n.inputSchema);return i?dOt(i,{strictUnions:!0,pipeStrategy:"input"}):rpr})(),annotations:n.annotations,execution:n.execution,_meta:n._meta};if(n.outputSchema){let i=RU(n.outputSchema);i&&(r.outputSchema=dOt(i,{strictUnions:!0,pipeStrategy:"output"}))}return r})})),this.server.setRequestHandler(G5,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=RU(t.inputSchema),s=i??t.inputSchema,o=await nTe(s,n);if(!o.success){let a="error"in o?o.error:"Unknown error",c=rTe(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=RU(t.outputSchema),s=await nTe(i,n.structuredContent);if(!s.success){let o="error"in s?s.error:"Unknown error",a=rTe(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(tE(xTe)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(xTe,async t=>{switch(t.params.ref.type){case"ref/prompt":return efr(t),this.handlePromptCompletion(t,t.params.ref);case"ref/resource":return tfr(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 AU;let i=KU(r.argsSchema),s=i?.[t.params.argument.name];if(!Qfr(s))return AU;let o=$fr(s);if(!o)return AU;let a=await o(t.params.argument.value,t.params.context);return SOt(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 AU;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 AU;let s=await i(t.params.argument.value,t.params.context);return SOt(s)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(tE(TTe)),this.server.assertCanSetRequestHandler(tE(vTe)),this.server.assertCanSetRequestHandler(tE(RTe)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(TTe,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(vTe,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([n,r])=>({name:n,uriTemplate:r.resourceTemplate.uriTemplate.toString(),...r.metadata}))})),this.server.setRequestHandler(RTe,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(tE(ATe)),this.server.assertCanSetRequestHandler(tE(wTe)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(ATe,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,t])=>t.enabled).map(([t,n])=>({name:t,title:n.title,description:n.description,arguments:n.argsSchema?spr(n.argsSchema):void 0}))})),this.server.setRequestHandler(wTe,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=RU(r.argsSchema),s=await nTe(i,t.params.arguments);if(!s.success){let c="error"in s?s.error:"Unknown error",u=rTe(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:xU(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=xU(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){gOt(t);let l={title:n,description:r,inputSchema:yOt(i),outputSchema:yOt(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"&&gOt(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=xU(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];UTe(c)?(i=n.shift(),n.length>1&&typeof n[0]=="object"&&n[0]!==null&&!UTe(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()}},rpr={type:"object",properties:{}};AU={completion:{values:[],hasMore:!1}}});var fNt={};Ar(fNt,{runRepairAgent:()=>fpr});import{existsSync as rR,readdirSync as gve,readFileSync as yve}from"node:fs";import{join as ry}from"node:path";async function fpr(e){let t;try{t=(await Promise.resolve().then(()=>(dNt(),lNt))).query}catch{return{success:!1,summary:"Claude Agent SDK not available \u2014 mechanical repair applied, remaining issues need manual attention",fallbackUsed:!0}}let n=ppr(e),r=hpr(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 ppr(e){let t=mpr(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) @@ -1464,7 +1464,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 ppr(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 hpr(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(` @@ -1489,7 +1489,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=mpr(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=gpr(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): @@ -1510,31 +1510,31 @@ 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 hpr(e){let t=ry(e,"stages");if(!rR(t))return"(no stages directory found)";let n=[],r;try{r=hve(t).filter(i=>rR(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=mve(s,"utf8"),{data:a}=(0,u8.default)(o),c=Object.keys(a).length>0?Object.entries(a).map(([u,l])=>`${u}: ${JSON.stringify(l)}`).join(` +`)}function mpr(e){let t=ry(e,"stages");if(!rR(t))return"(no stages directory found)";let n=[],r;try{r=gve(t).filter(i=>rR(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=yve(s,"utf8"),{data:a}=(0,l8.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 mpr(e){let t=[],n=ry(e.studioDir,"stages");if(!rR(n))return t;let r={},i;try{i=hve(n).filter(o=>rR(ry(n,o,"STAGE.md")))}catch{return t}for(let o of i){let a=ry(n,o,"discovery");if(rR(a))try{for(let c of hve(a).filter(u=>u.endsWith(".md"))){let{data:u}=(0,u8.default)(mve(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(!rR(s))return t;try{let o=mve(s,"utf8"),{data:a}=(0,u8.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);rR(d)||t.push({name:u.discovery,path:l,neededBy:e.activeStage})}}}catch{}return t}var u8,dNt=v(()=>{"use strict";u8=Re(Kt(),1)});import{execFileSync as cE}from"node:child_process";import{existsSync as su,mkdirSync as gpr,readFileSync as rO,writeFileSync as ypr}from"node:fs";import{join as po}from"node:path";function iy(e){let t=a_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 fNt(){try{return cE("git",["branch","--show-current"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return""}}function Spr(e){for(let t of e.content??[]){if(t.type!=="text"||typeof t.text!="string")continue;let n=t.text.indexOf(` +`)}function gpr(e){let t=[],n=ry(e.studioDir,"stages");if(!rR(n))return t;let r={},i;try{i=gve(n).filter(o=>rR(ry(n,o,"STAGE.md")))}catch{return t}for(let o of i){let a=ry(n,o,"discovery");if(rR(a))try{for(let c of gve(a).filter(u=>u.endsWith(".md"))){let{data:u}=(0,l8.default)(yve(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(!rR(s))return t;try{let o=yve(s,"utf8"),{data:a}=(0,l8.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);rR(d)||t.push({name:u.discovery,path:l,neededBy:e.activeStage})}}}catch{}return t}var l8,pNt=v(()=>{"use strict";l8=Re(Kt(),1)});import{execFileSync as cE}from"node:child_process";import{existsSync as su,mkdirSync as ypr,readFileSync as rO,writeFileSync as Spr}from"node:fs";import{join as po}from"node:path";function iy(e){let t=u_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 hNt(){try{return cE("git",["branch","--show-current"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return""}}function bpr(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 bpr(e,t,n){let{orchestratorToolHandlers:r}=await Promise.resolve().then(()=>(EU(),gve)),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 Epr(e,t,n){let{orchestratorToolHandlers:r}=await Promise.resolve().then(()=>(EU(),Sve)),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 QU(e){if(!su(e))return{};let t=rO(e,"utf8"),{data:n}=re(t);return n}var pNt,hNt=v(()=>{"use strict";ar();u_e();A3();Oa();c_e();Yd();Txt();sh();m5();p1();$c();ze();Kn();vo();Gi();vs();pNt={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=_v();if(S)r=S.slug;else{if(Ee())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=ve(),_=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=gSe(r,"intent");if(s)return{content:[{type:"text",text:s}],isError:!0};if(Ee())try{let S=cE("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 _=cE("git",["diff","--name-only","--diff-filter=U"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` -`).filter(Boolean),T=cE("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=Ape();if(o.length>0){let S=o.slice(0,50).join(` +`).trim();if(a)try{if(JSON.parse(a)?.action==="cancelled")return{ok:!1,message:`Picker for ${e} was cancelled or timed out without a selection. Re-run \`haiku_run_next\` to surface the picker again.`}}catch{}return{ok:!0}}catch(o){return{ok:!1,message:`Picker for ${e} threw: ${o instanceof Error?o.message:String(o)}`}}}function QU(e){if(!su(e))return{};let t=rO(e,"utf8"),{data:n}=re(t);return n}var mNt,gNt=v(()=>{"use strict";ar();d_e();A3();Oa();l_e();Yd();Rxt();sh();g5();p1();$c();ze();Kn();vo();Gi();vs();mNt={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=_v();if(S)r=S.slug;else{if(Ee())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=ve(),_=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=ySe(r,"intent");if(s)return{content:[{type:"text",text:s}],isError:!0};if(Ee())try{let S=cE("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 _=cE("git",["diff","--name-only","--diff-filter=U"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` +`).filter(Boolean),T=cE("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=wpe();if(o.length>0){let S=o.slice(0,50).join(` `),E=o.length>50?` \u2026and ${o.length-50} more`:"";return ye(JSON.stringify({action:"error",intent:r,error:"dirty_tree_blocking_tick",dirty_files:o,message:`I can't advance the workflow with uncommitted work in the tree. Commit everything first \u2014 you author these commits, not the engine, because you know what you just did and can tell the story of the work. Keep the commit messages logical: group related changes into separate, coherent commits (one logical step each), and write messages that explain the WHY of the change \u2014 not a single catch-all 'wip' dump. Then re-run \`haiku_run_next\` to continue. Uncommitted: - `+S+E},null,2))}try{let S=po(ve(),"intents",r,"intent.md");if(su(S)){let E=QU(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(()=>(ze(),AZ));if(R()){NT();let{resolveStudioStages:A}=await Promise.resolve().then(()=>(Yd(),mNt)),{reconcileMisroutedStageMerges:x}=await Promise.resolve().then(()=>(ar(),MI)),k=A(_),N=x(r,k).filter(C=>C.misrouted&&!C.reconciled&&C.error);if(N.length>0)return{content:[{type:"text",text:`Stage merge routed to the wrong branch \u2014 manual reconciliation needed: + `+S+E},null,2))}try{let S=po(ve(),"intents",r,"intent.md");if(su(S)){let E=QU(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(()=>(ze(),AZ));if(R()){NT();let{resolveStudioStages:A}=await Promise.resolve().then(()=>(Yd(),yNt)),{reconcileMisroutedStageMerges:x}=await Promise.resolve().then(()=>(ar(),MI)),k=A(_),N=x(r,k).filter(C=>C.misrouted&&!C.reconciled&&C.error);if(N.length>0)return{content:[{type:"text",text:`Stage merge routed to the wrong branch \u2014 manual reconciliation needed: ${N.map(C=>`- **Stage ${C.stage}**: ${C.error}`).join(` `)} -When reconciled, re-run \`haiku_run_next\` to continue.`}],isError:!0}}}}}catch(S){console.error(`[haiku_run_next] pre-cursor reconciliation failed: ${S instanceof Error?S.message:String(S)}`)}let a="";if(e.pickup===!0&&Ee())try{NT();let S=po(ve(),"intents",r,"intent.md");if(su(S)){let _=QU(S).studio||"";if(_){let T=ai(r,_);if(T){let R=`haiku/${r}/${T}`;try{cE("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=Spe(r);S.error&&console.error(`[haiku_run_next] reconcile: ${S.error}`)}{let S=po(ve(),"intents",r,"intent.md");if(su(S)){let E=QU(S),_=E.studio||"",T=E.mode||"";if(!_||!T){if(!gr().startsWith(`haiku/${r}/`)){let x=yr(r,void 0);if(!x.ok)return Xb(r,void 0,x,"run_next entry \u2014 intent main (pre-selection)")}}else{let R=cpe(r);if(!R.ok){let A=R.conflictAt==="mainline_to_intent_main"?`haiku/${r}/main`:gr()||`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=ve(),E=po(S,"intents",r,"intent.md");su(E)&&Ne(E,"external_review_url",e.external_review_url)}catch{}try{let{drainPendingDispatches:S}=await Promise.resolve().then(()=>(Sv(),l1));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=fNt(),E=`haiku/${r}/`,_=S.startsWith(E)&&S!==`${E}main`?S.slice(E.length):null;if(_&&!(typeof c.stage=="string"&&c.stage===_)){let T=ce(r),R=po(T,"intent.md");if(su(R)){let A=QU(R),x=A.studio||"",k=A.mode||"continuous";if(x&&C0(T,x,_,k)){let P=`haiku/${r}/${_}`,N=`haiku/${r}/main`;WD(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=Mx(c);if(++S>TU)return im("select_*",S,c,"cap");if(_5(n))return T5("select_*",S,n,c);let _=await bpr(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")&&Mx(c)===E)return im("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(()=>(Sv(),l1)),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(()=>(ze(),AZ));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(()=>(Sv(),l1));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=Mx(c);if(++u>TU)return im("close_feedback",u,c,"cap");if(_5(n))return T5("close_feedback",u,n,c);if(S===l)return im("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();Ne(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(()=>(Sv(),l1));C({slug:r,stage:E,targetUnit:P,invalidates:N})}if(A.origin==="drift"&&P){let C=po(ve(),"intents",r,"stages",E,"units",`${P}.md`);if(su(C)){let L=po(ve(),"intents",r),{buildReviewRecord:G}=await Promise.resolve().then(()=>(Xf(),Pyt)),W=rO(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 j=G(C,{intentDir:L,unitInputs:B});Q[V]={...M,body_sha256:j.body_sha256,input_witnesses:j.input_witnesses},F=!0}F&&Ne(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(ve(),"intents",r,"intent.md");su(S)&&(Ne(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(ve(),"intents",r,"intent.md");if(su(S)){let{data:E}=re(rO(S,"utf8")),_=E.approvals&&typeof E.approvals=="object"?{...E.approvals}:{},T=!1;for(let R of Object.keys(_))FT.has(R)&&_[R]!=null&&(_[R]=null,T=!0);T&&(Ne(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=Mx(c);if(++d>TU)return im("complete_stage",d,c,"cap");if(_5(n))return T5("complete_stage",d,n,c);if(S===f)return im("complete_stage",d,c,"no_progress");f=S;let E=c.stage;if(vye(ce(r),E)){c={action:"record_observations",intent:r,stage:E};break}try{let{isGitRepo:_}=await Promise.resolve().then(()=>(ze(),AZ));if(!_()){c=iy(r);continue}try{let x=`haiku/${r}/${E}`;if(fNt()===x){let k=`.haiku/intents/${r}/stages/${E}/observations.md`;cE("git",["status","--porcelain","--",k],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()&&(cE("git",["add","--",k],{stdio:"ignore"}),cE("git",["commit","-m",`haiku: observations for stage ${E}`],{stdio:"ignore"}))}}catch{}let{mergeStageBranchIntoMain:T}=await Promise.resolve().then(()=>(ar(),MI)),{withIntentMainLock:R}=await Promise.resolve().then(()=>(K0(),FSt)),A=R(r,()=>T(r,E));if(!A.success)return A.isConflict?{content:[{type:"text",text:`Stage '${E}' completion blocked by conflict: ${A.message}`}],isError:!0}:{content:[{type:"text",text:`Stage '${E}' completion blocked: its branch could not be merged into intent-main: ${A.message} +When reconciled, re-run \`haiku_run_next\` to continue.`}],isError:!0}}}}}catch(S){console.error(`[haiku_run_next] pre-cursor reconciliation failed: ${S instanceof Error?S.message:String(S)}`)}let a="";if(e.pickup===!0&&Ee())try{NT();let S=po(ve(),"intents",r,"intent.md");if(su(S)){let _=QU(S).studio||"";if(_){let T=ai(r,_);if(T){let R=`haiku/${r}/${T}`;try{cE("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=bpe(r);S.error&&console.error(`[haiku_run_next] reconcile: ${S.error}`)}{let S=po(ve(),"intents",r,"intent.md");if(su(S)){let E=QU(S),_=E.studio||"",T=E.mode||"";if(!_||!T){if(!gr().startsWith(`haiku/${r}/`)){let x=yr(r,void 0);if(!x.ok)return Xb(r,void 0,x,"run_next entry \u2014 intent main (pre-selection)")}}else{let R=upe(r);if(!R.ok){let A=R.conflictAt==="mainline_to_intent_main"?`haiku/${r}/main`:gr()||`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=ve(),E=po(S,"intents",r,"intent.md");su(E)&&Ne(E,"external_review_url",e.external_review_url)}catch{}try{let{drainPendingDispatches:S}=await Promise.resolve().then(()=>(Sv(),l1));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=hNt(),E=`haiku/${r}/`,_=S.startsWith(E)&&S!==`${E}main`?S.slice(E.length):null;if(_&&!(typeof c.stage=="string"&&c.stage===_)){let T=ce(r),R=po(T,"intent.md");if(su(R)){let A=QU(R),x=A.studio||"",k=A.mode||"continuous";if(x&&C0(T,x,_,k)){let P=`haiku/${r}/${_}`,N=`haiku/${r}/main`;WD(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=Mx(c);if(++S>TU)return im("select_*",S,c,"cap");if(T5(n))return v5("select_*",S,n,c);let _=await Epr(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")&&Mx(c)===E)return im("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(()=>(Sv(),l1)),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(()=>(ze(),AZ));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(()=>(Sv(),l1));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=Mx(c);if(++u>TU)return im("close_feedback",u,c,"cap");if(T5(n))return v5("close_feedback",u,n,c);if(S===l)return im("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();Ne(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(()=>(Sv(),l1));C({slug:r,stage:E,targetUnit:P,invalidates:N})}if(A.origin==="drift"&&P){let C=po(ve(),"intents",r,"stages",E,"units",`${P}.md`);if(su(C)){let L=po(ve(),"intents",r),{buildReviewRecord:G}=await Promise.resolve().then(()=>(Xf(),Cyt)),W=rO(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 j=G(C,{intentDir:L,unitInputs:B});Q[V]={...M,body_sha256:j.body_sha256,input_witnesses:j.input_witnesses},F=!0}F&&Ne(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(ve(),"intents",r,"intent.md");su(S)&&(Ne(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(ve(),"intents",r,"intent.md");if(su(S)){let{data:E}=re(rO(S,"utf8")),_=E.approvals&&typeof E.approvals=="object"?{...E.approvals}:{},T=!1;for(let R of Object.keys(_))FT.has(R)&&_[R]!=null&&(_[R]=null,T=!0);T&&(Ne(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=Mx(c);if(++d>TU)return im("complete_stage",d,c,"cap");if(T5(n))return v5("complete_stage",d,n,c);if(S===f)return im("complete_stage",d,c,"no_progress");f=S;let E=c.stage;if(Rye(ce(r),E)){c={action:"record_observations",intent:r,stage:E};break}try{let{isGitRepo:_}=await Promise.resolve().then(()=>(ze(),AZ));if(!_()){c=iy(r);continue}try{let x=`haiku/${r}/${E}`;if(hNt()===x){let k=`.haiku/intents/${r}/stages/${E}/observations.md`;cE("git",["status","--porcelain","--",k],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()&&(cE("git",["add","--",k],{stdio:"ignore"}),cE("git",["commit","-m",`haiku: observations for stage ${E}`],{stdio:"ignore"}))}}catch{}let{mergeStageBranchIntoMain:T}=await Promise.resolve().then(()=>(ar(),MI)),{withIntentMainLock:R}=await Promise.resolve().then(()=>(K0(),HSt)),A=R(r,()=>T(r,E));if(!A.success)return A.isConflict?{content:[{type:"text",text:`Stage '${E}' completion blocked by conflict: ${A.message}`}],isError:!0}:{content:[{type:"text",text:`Stage '${E}' completion blocked: its branch could not be merged into intent-main: ${A.message} -The stage branch \`haiku/${r}/${E}\` is intact (not deleted) \u2014 no work is lost. Resolve the merge on \`haiku/${r}/main\` (commit/stash any blocking untracked files, then \`git merge haiku/${r}/${E}\`), then re-run.`}],isError:!0};try{let{invalidateDownstreamApprovals:x}=await Promise.resolve().then(()=>(Axt(),Rxt)),k=ce(r),P=po(k,"intent.md");if(su(P)){let N=QU(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(ve(),"intents",r,"intent.md");if(su(S)){let E=yr(r,c.stage);if(!E.ok)return Xb(r,c.stage,E,"run_next post-cursor revisit alignment")}}catch{}Ke("haiku.orchestrator.action",{intent:r,action:c.action}),i&&Bi(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"&&Bi(i,{event:"outputs_missing",intent:r,stage:c.stage,missing:c.missing}),i&&c.action==="discovery_missing"&&Bi(i,{event:"discovery_missing",intent:r,stage:c.stage,missing:c.missing});let p={};try{let S=ce(r),E=rO(po(S,"intent.md"),"utf8");p=re(E).data}catch{}let h=p.studio||"",m=S=>{Ox(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 _=sU(r,h,S,ce(r)),T=W6(_),{tell_user:R,next_step:A,...x}=S;return`${JSON.stringify(x,null,2)} +The stage branch \`haiku/${r}/${E}\` is intact (not deleted) \u2014 no work is lost. Resolve the merge on \`haiku/${r}/main\` (commit/stash any blocking untracked files, then \`git merge haiku/${r}/${E}\`), then re-run.`}],isError:!0};try{let{invalidateDownstreamApprovals:x}=await Promise.resolve().then(()=>(kxt(),wxt)),k=ce(r),P=po(k,"intent.md");if(su(P)){let N=QU(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(ve(),"intents",r,"intent.md");if(su(S)){let E=yr(r,c.stage);if(!E.ok)return Xb(r,c.stage,E,"run_next post-cursor revisit alignment")}}catch{}Ke("haiku.orchestrator.action",{intent:r,action:c.action}),i&&Bi(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"&&Bi(i,{event:"outputs_missing",intent:r,stage:c.stage,missing:c.missing}),i&&c.action==="discovery_missing"&&Bi(i,{event:"discovery_missing",intent:r,stage:c.stage,missing:c.missing});let p={};try{let S=ce(r),E=rO(po(S,"intent.md"),"utf8");p=re(E).data}catch{}let h=p.studio||"",m=S=>{Ox(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 _=sU(r,h,S,ce(r)),T=K6(_),{tell_user:R,next_step:A,...x}=S;return`${JSON.stringify(x,null,2)} --- @@ -1546,30 +1546,30 @@ Engine couldn't open the MR via gh/glab (${E.prError??E.pushError??"no CLI found ${E.message} Open ONE merge request from branch \`haiku/${r}/${c.stage}\` to \`haiku/${r}/main\` (NOT the repo default branch \u2014 the engine detects merges via intent main, not the repo default). Record the URL via haiku_run_next { intent: "${r}", external_review_url: "" }.`}catch(S){c.message=`${c.message||""} -IMPORTANT: Open the change request from \`haiku/${r}/${c.stage}\` to \`haiku/${r}/main\` (NOT the repo default). Try \`gh pr create --base haiku/${r}/main\` for GitHub or \`glab mr create --target-branch haiku/${r}/main\` for GitLab. (Engine helper threw: ${S instanceof Error?S.message:String(S)}.) Record the URL via haiku_run_next { intent: "${r}", external_review_url: "" }.`}let g=0,y=null;for(;c.action==="gate_review"||c.action==="user_gate";){let S=Mx(c);if(++g>TU)return im("gate_review",g,c,"cap");if(S===y)return im("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(()=>(ji(),upt)),L=po(ve(),"intents",r,"intent.md"),G=su(L)?re(rO(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&&Bi(i,{event:"gate_review_prepared",intent:r,stage:E,gate_type:k});let N=yve();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=()=>mv(C.session_id)||t1(r);!C.browser_attached&&!W()&&dp(C.review_url,"Gate review",C.session_id);let{orchestratorToolHandlers:$}=await Promise.resolve().then(()=>(EU(),gve)),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=Spr(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");gpr(Q,{recursive:!0}),ypr(po(Q,"gate-review-error.log"),`${new Date().toISOString()} +IMPORTANT: Open the change request from \`haiku/${r}/${c.stage}\` to \`haiku/${r}/main\` (NOT the repo default). Try \`gh pr create --base haiku/${r}/main\` for GitHub or \`glab mr create --target-branch haiku/${r}/main\` for GitLab. (Engine helper threw: ${S instanceof Error?S.message:String(S)}.) Record the URL via haiku_run_next { intent: "${r}", external_review_url: "" }.`}let g=0,y=null;for(;c.action==="gate_review"||c.action==="user_gate";){let S=Mx(c);if(++g>TU)return im("gate_review",g,c,"cap");if(S===y)return im("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(()=>(ji(),dpt)),L=po(ve(),"intents",r,"intent.md"),G=su(L)?re(rO(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&&Bi(i,{event:"gate_review_prepared",intent:r,stage:E,gate_type:k});let N=bve();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=()=>mv(C.session_id)||t1(r);!C.browser_attached&&!W()&&dp(C.review_url,"Gate review",C.session_id);let{orchestratorToolHandlers:$}=await Promise.resolve().then(()=>(EU(),Sve)),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=bpr(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");ypr(Q,{recursive:!0}),Spr(po(Q,"gate-review-error.log"),`${new Date().toISOString()} intent: ${r} stage: ${E} phase: ${q} error: ${L} ${G} --- -`,{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(()=>(dNt(),lNt)),E=ve(),_=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=yr(r,c.stage||void 0);if(!P.ok)return Xb(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&&Bi(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} +`,{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(()=>(pNt(),fNt)),E=ve(),_=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=yr(r,c.stage||void 0);if(!P.ok)return Xb(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&&Bi(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(P)}]}}}catch{}try{let S=ce(r),E=po(S,"intent.md");if(su(E)){let _=rO(E,"utf8"),{data:T}=re(_),R=T.studio||"";if(R){let A=ai(r,R);if(A){let x=`haiku/${r}/${A}`,k=YD(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)&&u3(x)){let k=Lh(x);!k.ok&&k.error&&console.error(`[haiku] auto-push of ${x} failed: ${k.error}`)}}}}}catch(S){console.error(`[haiku] auto-push end-of-tick check threw: ${S instanceof Error?S.message:String(S)}`)}Xr(r,e.state_file);let b=m(c);return ye(a?`${a} -${b}`:b)}}});import{existsSync as yNt,readFileSync as Epr}from"node:fs";import{join as gNt}from"node:path";function _pr(e){if(!yNt(e))return{};let t=Epr(e,"utf8"),{data:n}=re(t);return n}var Tpr,SNt,bNt=v(()=>{"use strict";ar();Yd();$b();Hi();uo();lye();ze();vo();Gi();Vv();vs();Tpr={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."},SNt={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:_0,async handle(e,t){let n=Be(e,Lge,"haiku_select_mode");if(n)return n;let r=e,i=r.intent,s=ve(),o=gNt(s,"intents",i),a=gNt(o,"intent.md");if(!yNt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=_pr(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(),D0)),p=!!(d(i,u)??""),m=xY.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:Tpr[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:xn("Mode picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));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=yr(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(Ne(a,"mode",b),b==="quick")Zh(a,["stages"]);else{let E=Fs(u);Ne(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"?xn(`The user picked **quick** mode for "${i}".`,`Call haiku_run_next { intent: "${i}" } \u2014 the engine will open the stage picker next.`):xn(`The user picked **${b}** mode for "${i}"${l&&l!==b?` (was ${l})`:""}.`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))}}});import{existsSync as _Nt,readFileSync as vpr}from"node:fs";import{join as ENt}from"node:path";function Rpr(e){if(!_Nt(e))return{};let t=vpr(e,"utf8"),{data:n}=re(t);return n}var TNt,vNt=v(()=>{"use strict";ar();Yd();$b();Hi();uo();ze();vo();Gi();Vv();vs();TNt={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:T0,async handle(e,t){let n=Be(e,Uge,"haiku_select_stage");if(n)return n;let r=e,i=r.intent,s=ve(),o=ENt(s,"intents",i),a=ENt(o,"intent.md");if(!_Nt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=Rpr(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:xn("Stage picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));m=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=yr(i,void 0);return g.ok?(Ne(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:xn(`The user picked the **${m}** stage for quick intent "${i}".`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))):{content:[{type:"text",text:`Error: branch enforcement failed after stage selection for intent '${i}' \u2014 ${g.message}. Resolve manually and retry.`}],isError:!0}}}});function RNt(e,t){let n=new Map(e.map(a=>[a.name,a])),r=new Set(t),i=[];for(let a of t){let c=n.get(a);c&&!i.includes(c)&&i.push(c)}let s=[...i,...e.filter(a=>!r.has(a.name))],o=i.length>0;return s.map(a=>({id:a.dir,label:a.name,description:a.description??"",...o&&!r.has(a.name)?{secondary:!0}:{}}))}var ANt=v(()=>{"use strict"});import{existsSync as Sve,readdirSync as Apr,readFileSync as wpr}from"node:fs";import{join as l8}from"node:path";var wNt,kNt=v(()=>{"use strict";ar();Yd();$b();Hi();uo();ze();Kn();vo();Gi();Vv();vs();ANt();wNt={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:E0,async handle(e,t){let n=Be(e,Dge,"haiku_select_studio");if(n)return n;let r=e,i=r.intent,s=ve(),o=l8(s,"intents",i),a=l8(o,"intent.md");if(!Sve(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=l8(o,"stages");if(Sve(c))for(let h of Apr(c,{withFileTypes:!0})){if(!h.isDirectory())continue;let m=l8(c,h.name,"state.json");if(Sve(m)){let g=qb(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=kI().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(wpr(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=RNt(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:xn("Studio picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon the intent.")}));d=y.selection.id}if(!d)return{content:[{type:"text",text:"No studio selected."}],isError:!0};let f=yr(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 Ne(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:xn(`The user selected the **${d}** studio for "${i}". Studio is now locked.`,"Continue the tick \u2014 the engine will drive the next selection (mode, then stage if quick) automatically.")},null,2))}}});import{existsSync as INt,readFileSync as kpr,writeFileSync as Ipr}from"node:fs";import{join as xNt}from"node:path";var bve,ONt,PNt=v(()=>{"use strict";bve=Re(Kt(),1);ar();xx();Hi();uo();ze();Gi();vs();ONt={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:w0,handle(e){let t=Be(e,qge,"haiku_stage_decompose_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=Ix({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=xNt(a,"intents",n);if(!INt(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=xNt(c,"stages",r,"elaboration.md");if(!INt(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=yr(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=kpr(u,"utf8"),f=(0,bve.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()),Ipr(u,bve.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 xpr,mkdirSync as Opr,writeFileSync as Ppr}from"node:fs";import{join as Eve}from"node:path";var NNt,CNt,MNt=v(()=>{"use strict";NNt=Re(Kt(),1);ar();xx();Hi();uo();ze();Gi();vs();CNt={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:R0,handle(e){let t=Be(e,jge,"haiku_stage_elaboration_record");if(t)return t;let n=e.intent,r=e.stage,i=e.body,s=ve(),o=Eve(s,"intents",n);if(!xpr(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=Eve(o,"stages",r),c=yr(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};Opr(a,{recursive:!0});let u=Eve(a,"elaboration.md"),l=new Date().toISOString(),d={recorded_at:l,intent:n,stage:r};return Ppr(u,NNt.default.stringify(i,d)),s_e({kind:"stage_elaborate",slug:n,stage:r}),s_e({kind:"stage_decompose",slug:n,stage:r}),wt(`haiku: record elaboration for ${n}/${r}`),ye(JSON.stringify({action:"elaboration_recorded",slug:n,stage:r,path:u,recorded_at:l,message:`Captured elaboration for '${n}/${r}'. The cursor will dispatch the verifier on the next tick.`},null,2))}}});import{existsSync as DNt,readFileSync as Npr,writeFileSync as Cpr}from"node:fs";import{join as LNt}from"node:path";var _ve,UNt,FNt=v(()=>{"use strict";_ve=Re(Kt(),1);ar();xx();Hi();uo();ze();Gi();vs();UNt={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:A0,handle(e){let t=Be(e,Hge,"haiku_stage_elaboration_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=Ix({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=LNt(a,"intents",n);if(!DNt(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=LNt(c,"stages",r,"elaboration.md");if(!DNt(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=yr(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=Npr(u,"utf8"),f=(0,_ve.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()),Cpr(u,_ve.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 Tve}from"node:child_process";import{existsSync as $U,readdirSync as jNt,readFileSync as Mpr,rmSync as HNt,statSync as qNt}from"node:fs";import{join as uE}from"node:path";var BNt,zNt=v(()=>{"use strict";ar();$b();Hi();uo();ze();Gi();vs();BNt={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:S0,async handle(e,t){let n=Be(e,Oge,"haiku_stage_reset");if(n)return n;let{intent:r,stage:i}=e,s=ve(),o=uE(s,"intents",r),a=uE(o,"intent.md");if(!$U(a))return{content:[{type:"text",text:`Intent '${r}' not found.`}],isError:!0};let c=uE(o,"stages",i);if(!$U(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=uE(c,m);$U(g)&&u.push(m)}let l=uE(c,"discovery"),d=(()=>{if(!$U(l))return!1;try{return jNt(l).some(m=>{let g=uE(l,m);try{return qNt(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=Ee()&&Pt(f);if(p&&u.push(`git branch \`${f}\``),u.length===0)return ye(JSON.stringify({action:"noop",message:`Stage '${i}' has no resettable state \u2014 already clean.`}));let h=await Ju({intentSlug:r,kind:"confirm",title:`Reset stage "${i}" on intent "${r}"?`,prompt:`This will DELETE the following from stage '${i}': +${b}`:b)}}});import{existsSync as bNt,readFileSync as _pr}from"node:fs";import{join as SNt}from"node:path";function Tpr(e){if(!bNt(e))return{};let t=_pr(e,"utf8"),{data:n}=re(t);return n}var vpr,ENt,_Nt=v(()=>{"use strict";ar();Yd();$b();Hi();uo();dye();ze();vo();Gi();Vv();vs();vpr={continuous:"You're in chat for every stage gate. Best for first-time use or work you want to steer.",discrete:"Each stage opens a real GitHub PR / GitLab MR. Merging the PR is your approval signal.",autopilot:"Agent runs the whole pipeline. Only the pre-intent review and the final delivery PR require human attention.","discrete-hybrid":"Continuous within most stages, but specific stages declared with external review still pop a per-stage PR.",quick:"Single stage only. Operates like continuous but the workflow runs exactly one studio stage and stops. Not changeable mid-flight."},ENt={name:"haiku_select_mode",description:"Select an execution mode for an intent. Pass the intent slug and optionally a list of mode names to limit the selection. If only one option is provided, auto-selects it. Otherwise opens a SPA picker and blocks on the user's selection. Side effects: writes `mode` to intent.md; for non-quick modes also writes `stages` (the studio's full stage list). For quick mode, leaves `stages` empty so the workflow routes to select_stage next. Refuses transitions into or out of `quick` once the intent has started a stage.",inputSchema:_0,async handle(e,t){let n=Be(e,Uge,"haiku_select_mode");if(n)return n;let r=e,i=r.intent,s=ve(),o=SNt(s,"intents",i),a=SNt(o,"intent.md");if(!bNt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=Tpr(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(),D0)),p=!!(d(i,u)??""),m=xY.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:vpr[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:xn("Mode picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));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=yr(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(Ne(a,"mode",b),b==="quick")Zh(a,["stages"]);else{let E=Fs(u);Ne(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"?xn(`The user picked **quick** mode for "${i}".`,`Call haiku_run_next { intent: "${i}" } \u2014 the engine will open the stage picker next.`):xn(`The user picked **${b}** mode for "${i}"${l&&l!==b?` (was ${l})`:""}.`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))}}});import{existsSync as vNt,readFileSync as Rpr}from"node:fs";import{join as TNt}from"node:path";function Apr(e){if(!vNt(e))return{};let t=Rpr(e,"utf8"),{data:n}=re(t);return n}var RNt,ANt=v(()=>{"use strict";ar();Yd();$b();Hi();uo();ze();vo();Gi();Vv();vs();RNt={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:T0,async handle(e,t){let n=Be(e,Fge,"haiku_select_stage");if(n)return n;let r=e,i=r.intent,s=ve(),o=TNt(s,"intents",i),a=TNt(o,"intent.md");if(!vNt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=Apr(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:xn("Stage picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));m=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=yr(i,void 0);return g.ok?(Ne(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:xn(`The user picked the **${m}** stage for quick intent "${i}".`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))):{content:[{type:"text",text:`Error: branch enforcement failed after stage selection for intent '${i}' \u2014 ${g.message}. Resolve manually and retry.`}],isError:!0}}}});function wNt(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 kNt=v(()=>{"use strict"});import{existsSync as Eve,readdirSync as wpr,readFileSync as kpr}from"node:fs";import{join as d8}from"node:path";var INt,xNt=v(()=>{"use strict";ar();Yd();$b();Hi();uo();ze();Kn();vo();Gi();Vv();vs();kNt();INt={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:E0,async handle(e,t){let n=Be(e,Lge,"haiku_select_studio");if(n)return n;let r=e,i=r.intent,s=ve(),o=d8(s,"intents",i),a=d8(o,"intent.md");if(!Eve(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=d8(o,"stages");if(Eve(c))for(let h of wpr(c,{withFileTypes:!0})){if(!h.isDirectory())continue;let m=d8(c,h.name,"state.json");if(Eve(m)){let g=qb(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=kI().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(kpr(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=wNt(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:xn("Studio picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon the intent.")}));d=y.selection.id}if(!d)return{content:[{type:"text",text:"No studio selected."}],isError:!0};let f=yr(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 Ne(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:xn(`The user selected the **${d}** studio for "${i}". Studio is now locked.`,"Continue the tick \u2014 the engine will drive the next selection (mode, then stage if quick) automatically.")},null,2))}}});import{existsSync as ONt,readFileSync as Ipr,writeFileSync as xpr}from"node:fs";import{join as PNt}from"node:path";var _ve,NNt,CNt=v(()=>{"use strict";_ve=Re(Kt(),1);ar();xx();Hi();uo();ze();Gi();vs();NNt={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:w0,handle(e){let t=Be(e,Bge,"haiku_stage_decompose_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=Ix({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=PNt(a,"intents",n);if(!ONt(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=PNt(c,"stages",r,"elaboration.md");if(!ONt(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=yr(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=Ipr(u,"utf8"),f=(0,_ve.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()),xpr(u,_ve.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 Opr,mkdirSync as Ppr,writeFileSync as Npr}from"node:fs";import{join as Tve}from"node:path";var MNt,DNt,LNt=v(()=>{"use strict";MNt=Re(Kt(),1);ar();xx();Hi();uo();ze();Gi();vs();DNt={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:R0,handle(e){let t=Be(e,Hge,"haiku_stage_elaboration_record");if(t)return t;let n=e.intent,r=e.stage,i=e.body,s=ve(),o=Tve(s,"intents",n);if(!Opr(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=Tve(o,"stages",r),c=yr(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};Ppr(a,{recursive:!0});let u=Tve(a,"elaboration.md"),l=new Date().toISOString(),d={recorded_at:l,intent:n,stage:r};return Npr(u,MNt.default.stringify(i,d)),a_e({kind:"stage_elaborate",slug:n,stage:r}),a_e({kind:"stage_decompose",slug:n,stage:r}),wt(`haiku: record elaboration for ${n}/${r}`),ye(JSON.stringify({action:"elaboration_recorded",slug:n,stage:r,path:u,recorded_at:l,message:`Captured elaboration for '${n}/${r}'. The cursor will dispatch the verifier on the next tick.`},null,2))}}});import{existsSync as UNt,readFileSync as Cpr,writeFileSync as Mpr}from"node:fs";import{join as FNt}from"node:path";var vve,jNt,HNt=v(()=>{"use strict";vve=Re(Kt(),1);ar();xx();Hi();uo();ze();Gi();vs();jNt={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:A0,handle(e){let t=Be(e,qge,"haiku_stage_elaboration_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=Ix({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=FNt(a,"intents",n);if(!UNt(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=FNt(c,"stages",r,"elaboration.md");if(!UNt(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=yr(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=Cpr(u,"utf8"),f=(0,vve.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()),Mpr(u,vve.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 Rve}from"node:child_process";import{existsSync as $U,readdirSync as qNt,readFileSync as Dpr,rmSync as BNt,statSync as zNt}from"node:fs";import{join as uE}from"node:path";var GNt,VNt=v(()=>{"use strict";ar();$b();Hi();uo();ze();Gi();vs();GNt={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:S0,async handle(e,t){let n=Be(e,Pge,"haiku_stage_reset");if(n)return n;let{intent:r,stage:i}=e,s=ve(),o=uE(s,"intents",r),a=uE(o,"intent.md");if(!$U(a))return{content:[{type:"text",text:`Intent '${r}' not found.`}],isError:!0};let c=uE(o,"stages",i);if(!$U(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=uE(c,m);$U(g)&&u.push(m)}let l=uE(c,"discovery"),d=(()=>{if(!$U(l))return!1;try{return qNt(l).some(m=>{let g=uE(l,m);try{return zNt(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=Ee()&&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(Ee())try{let m="";try{m=Tve("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{Tve("git",["checkout",b],{encoding:"utf8",stdio:"pipe"})}catch{Tve("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=uE(c,m);$U(g)&&HNt(g,{recursive:!0,force:!0})}if(d)try{for(let m of jNt(l)){if(!m.endsWith(".md"))continue;let g=uE(l,m);try{qNt(g).isFile()&&HNt(g,{force:!0})}catch{}}}catch{}try{let m=Mpr(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);Zh(a,y)}}catch{}if(p)try{bb(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 Dpr,readFileSync as Lpr,writeFileSync as Upr}from"node:fs";var vve,Fpr,GNt,VNt=v(()=>{"use strict";vve=Re(Kt(),1);ar();$b();Hi();uo();ze();Gi();vs();Fpr=["iterations","reviews","approvals","started_at","hat","hat_started_at","bolt","status"],GNt={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:I0,async handle(e,t){let n=Be(e,cye,"haiku_unit_reset");if(n)return n;let{intent:r,stage:i,unit:s}=e,o=Pa(r,i,s);if(!Dpr(o))return{content:[{type:"text",text:`No unit '${s}' in stage '${i}' of intent '${r}'.`}],isError:!0};let a=Lpr(o,"utf8"),{data:c,content:u}=(0,vve.default)(a),l=J0(c);if(l==="pending")return ye(JSON.stringify({action:"noop",slug:r,stage:i,unit:s,message:`Unit '${s}' is already pending \u2014 nothing to reset. Edit it with haiku_unit_write or let the engine run it.`}));if(l==="completed")return{content:[{type:"text",text:JSON.stringify({error:"unit_completed_not_resettable",slug:r,stage:i,unit:s,message:`Unit '${s}' is completed \u2014 its work is already merged into the stage branch. Reset cannot un-merge it and would only desync engine state from the code on disk. Reset is for wedged in-flight units only. To change completed work, file feedback against the stage (fix-loop) or revisit the stage.`})}],isError:!0};let d=await Ju({intentSlug:r,kind:"confirm",title:`Reset unit "${s}" (currently ${l}) on "${r}"?`,prompt:`This will return unit '${s}' in stage '${i}' to **pending**: +Other stages of '${r}' will NOT be touched. Intent main's git history (including any prior merge of this stage) stays put. The next \`haiku_run_next\` will re-enter '${i}' at its elaborate phase. This cannot be undone.`,options:[{id:"reset",label:`Yes, reset stage ${i}`,description:"Wipe the stage and let the engine re-run it"},{id:"cancel",label:"Cancel",description:"Keep the stage as-is"}],signal:t});if(h.timedOut||!h.selection||h.selection.id!=="reset")return ye(JSON.stringify({action:"cancelled",message:`Reset of stage '${i}' cancelled.`}));if(Ee())try{let m="";try{m=Rve("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{Rve("git",["checkout",b],{encoding:"utf8",stdio:"pipe"})}catch{Rve("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=uE(c,m);$U(g)&&BNt(g,{recursive:!0,force:!0})}if(d)try{for(let m of qNt(l)){if(!m.endsWith(".md"))continue;let g=uE(l,m);try{zNt(g).isFile()&&BNt(g,{force:!0})}catch{}}}catch{}try{let m=Dpr(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);Zh(a,y)}}catch{}if(p)try{bb(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 Lpr,readFileSync as Upr,writeFileSync as Fpr}from"node:fs";var Ave,jpr,WNt,KNt=v(()=>{"use strict";Ave=Re(Kt(),1);ar();$b();Hi();uo();ze();Gi();vs();jpr=["iterations","reviews","approvals","started_at","hat","hat_started_at","bolt","status"],WNt={name:"haiku_unit_reset",description:"Reset ONE unit back to pending: clear its iterations/reviews/approvals so it can be re-authored or re-run, and discard its worktree + branch (rolling its in-progress code back to the stage baseline). Sibling units and the stage branch are untouched. Use when a unit hits the bolt cap or its spec premise was wrong from the start \u2014 the recovery path the escalation message points to. Requires user confirmation via the SPA picker.",inputSchema:I0,async handle(e,t){let n=Be(e,uye,"haiku_unit_reset");if(n)return n;let{intent:r,stage:i,unit:s}=e,o=Pa(r,i,s);if(!Lpr(o))return{content:[{type:"text",text:`No unit '${s}' in stage '${i}' of intent '${r}'.`}],isError:!0};let a=Upr(o,"utf8"),{data:c,content:u}=(0,Ave.default)(a),l=J0(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 Fpr)delete f[h];Upr(o,vve.default.stringify(u,f));let p=Npe(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 gve={};Ar(gve,{orchestratorToolHandlers:()=>bU});var bU,EU=v(()=>{"use strict";LIt();qIt();L0t();F0t();V0t();Y0t();Q0t();ext();rxt();axt();uxt();dxt();yxt();Ext();hNt();bNt();vNt();kNt();PNt();MNt();FNt();zNt();VNt();bU=new Map([DIt,HIt,D0t,U0t,G0t,K0t,X0t,$0t,nxt,oxt,cxt,lxt,gxt,bxt,pNt,SNt,TNt,wNt,ONt,CNt,UNt,BNt,GNt].map(e=>[e.name,e]))});function WNt(e){return{feedback_id:e.id,title:e.title,status:e.status,origin:e.origin,author:e.author,file:e.file}}function Xb(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 jpr)delete f[h];Fpr(o,Ave.default.stringify(u,f));let p=Cpe(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 Sve={};Ar(Sve,{orchestratorToolHandlers:()=>bU});var bU,EU=v(()=>{"use strict";FIt();zIt();F0t();H0t();K0t();J0t();ext();nxt();sxt();uxt();dxt();pxt();bxt();Txt();gNt();_Nt();ANt();xNt();CNt();LNt();HNt();VNt();KNt();bU=new Map([UIt,BIt,U0t,j0t,W0t,Z0t,$0t,txt,ixt,cxt,lxt,fxt,Sxt,_xt,mNt,ENt,RNt,INt,NNt,DNt,jNt,GNt,WNt].map(e=>[e.name,e]))});function YNt(e){return{feedback_id:e.id,title:e.title,status:e.status,origin:e.origin,author:e.author,file:e.file}}function Xb(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(` @@ -1578,15 +1578,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 KNt(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 YNt(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 ZNt(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 JNt(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 ZNt=v(()=>{"use strict";ze();vo()});function Ox(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=Ee()?"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 JNt=v(()=>{"use strict";ze()});import{execFileSync as XNt}from"node:child_process";import{existsSync as iR,readFileSync as jpr}from"node:fs";import{join as sy}from"node:path";function Rve(e,t){if(t)try{let n=YD(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 iO(e){if(!iR(e))return{};let t=jpr(e,"utf8"),{data:n}=re(t);return n}function qpr(e,t){let n=iO(sy(ce(e),"intent.md")),r=n.mode||"";if(Hpr.has(r)){if(r==="discrete-hybrid"){let i=n.studio||"";if(!i||!$pe(i,t))return}if(!(!Ee()||CT()===null)&&!Tv(e,t)?.url)try{let i=gpe({slug:e,stage:t});i.createdUrl?(zb(e,t,"url",i.createdUrl),zb(e,t,"status","draft")):(zb(e,t,"status","failed"),console.error(`[haiku] stage draft PR for ${e}/${t} not opened: ${i.message}`))}catch(i){console.error(`[haiku] stage draft PR for ${e}/${t} threw: ${i instanceof Error?i.message:String(i)}`)}}}function Bpr(e,t){let n=sy(ce(e),"intent.md"),r=iO(n),i=r.studio||"",s=wn(r,i),o=s.indexOf(t);return o>0?s[o-1]:void 0}function Ave(e,t){PI(e),l3(e),wt(`haiku: pre-stage cleanup for ${e}/${t}`),Rve(e,t);let n=Bpr(e,t),r=n?`haiku/${e}/${n}`:"";if(n&&Pt(r)&&!Zc(r,`haiku/${e}/main`)){let i=sZ(e,()=>ZD(e,n));if(!i.success)throw new Error(`Merge of completed stage '${n}' into main failed: ${i.message}. Resolve conflicts on 'haiku/${e}/main' manually, then retry.`)}if(n&&Pt(r)){bb(e,n);try{XNt("git",["push","origin","--delete",r],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}if(!Epe(e,t)){let i=`haiku/${e}/${t}`;if(Pt(i)&&n){let s=Tpe(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 _pe(e,t)}fSe(e,t,{trigger:"initial"}),l3(e),qpr(e,t),Ke("haiku.stage.started",{intent:e,stage:t}),wt(`haiku: start stage ${t}`),Rve(e,t),ci(e)}function cU(e,t,n){Ke("haiku.stage.phase",{intent:e,stage:t,phase:n}),ci(e)}function Px(e,t,n){pSe(e,t,n==="advanced"?"advanced":"rejected"),Ke("haiku.stage.completed",{intent:e,stage:t,gate_outcome:n}),wt(`haiku: complete stage ${t}`),Rve(e,t),ci(e)}function K6(e,t,n){Px(e,t,"advanced"),Ave(e,n),ci(e)}function QNt(e,t){Ke("haiku.gate.entered",{intent:e,stage:t}),ci(e)}function zpr(e){let t=sy(ce(e),"intent.md");iR(t)&&(Ne(t,"completion_review_entered_at",mn()),Ke("haiku.intent.completion_review_entered",{intent:e}),ci(e))}function Gpr(e,t){if(!Ee()||!t)return;let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;if(Pt(n)&&!Zc(n,r)){let i=sZ(e,()=>ZD(e,t));i.success||console.error(`[workflowFinalizeStageIntoIntentMain] merge ${n}\u2192${r} failed: ${i.message}. +${i}${o}`:`${s}${o}`}var XNt=v(()=>{"use strict";ze();vo()});function Ox(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=Ee()?"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 QNt=v(()=>{"use strict";ze()});import{execFileSync as $Nt}from"node:child_process";import{existsSync as iR,readFileSync as Hpr}from"node:fs";import{join as sy}from"node:path";function wve(e,t){if(t)try{let n=YD(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 iO(e){if(!iR(e))return{};let t=Hpr(e,"utf8"),{data:n}=re(t);return n}function qpr(e,t){let n=iO(sy(ce(e),"intent.md")),r=n.mode||"";if(P6.has(r)){if(r==="discrete-hybrid"){let i=n.studio||"";if(!i||!ehe(i,t))return}if(!(!Ee()||CT()===null)&&!Tv(e,t)?.url)try{let i=ype({slug:e,stage:t});i.createdUrl?(zb(e,t,"url",i.createdUrl),zb(e,t,"status","draft")):(zb(e,t,"status","failed"),console.error(`[haiku] stage draft PR for ${e}/${t} not opened: ${i.message}`))}catch(i){console.error(`[haiku] stage draft PR for ${e}/${t} threw: ${i instanceof Error?i.message:String(i)}`)}}}function Bpr(e,t){let n=sy(ce(e),"intent.md"),r=iO(n),i=r.studio||"",s=wn(r,i),o=s.indexOf(t);return o>0?s[o-1]:void 0}function kve(e,t){PI(e),l3(e),wt(`haiku: pre-stage cleanup for ${e}/${t}`),wve(e,t);let n=Bpr(e,t),r=n?`haiku/${e}/${n}`:"";if(n&&Pt(r)&&!Zc(r,`haiku/${e}/main`)){let i=sZ(e,()=>ZD(e,n));if(!i.success)throw new Error(`Merge of completed stage '${n}' into main failed: ${i.message}. Resolve conflicts on 'haiku/${e}/main' manually, then retry.`)}if(n&&Pt(r)){bb(e,n);try{$Nt("git",["push","origin","--delete",r],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}if(!_pe(e,t)){let i=`haiku/${e}/${t}`;if(Pt(i)&&n){let s=vpe(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 Tpe(e,t)}pSe(e,t,{trigger:"initial"}),l3(e),qpr(e,t),Ke("haiku.stage.started",{intent:e,stage:t}),wt(`haiku: start stage ${t}`),wve(e,t),ci(e)}function cU(e,t,n){Ke("haiku.stage.phase",{intent:e,stage:t,phase:n}),ci(e)}function Px(e,t,n){hSe(e,t,n==="advanced"?"advanced":"rejected"),Ke("haiku.stage.completed",{intent:e,stage:t,gate_outcome:n}),wt(`haiku: complete stage ${t}`),wve(e,t),ci(e)}function Y6(e,t,n){Px(e,t,"advanced"),kve(e,n),ci(e)}function eCt(e,t){Ke("haiku.gate.entered",{intent:e,stage:t}),ci(e)}function zpr(e){let t=sy(ce(e),"intent.md");iR(t)&&(Ne(t,"completion_review_entered_at",mn()),Ke("haiku.intent.completion_review_entered",{intent:e}),ci(e))}function Gpr(e,t){if(!Ee()||!t)return;let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;if(Pt(n)&&!Zc(n,r)){let i=sZ(e,()=>ZD(e,t));i.success||console.error(`[workflowFinalizeStageIntoIntentMain] merge ${n}\u2192${r} failed: ${i.message}. Intent-completion review will still open; resolve the merge manually before approving the final gate. Recovery paths for the stage branch if the reap below loses it before you can merge: - \`git reflog show ${n}\` \u2014 the branch's tip is still in reflog until gc runs (default 90 days). - \`origin/${n}\` \u2014 if the branch was pushed, the remote tracking ref still has the tip. - - \`git fsck --lost-found\` \u2014 catches dangling commits even after the branch ref is deleted.`)}if(Pt(n)&&Zc(n,r)){bb(e,t);try{XNt("git",["push","origin","--delete",n],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}yr(e,void 0)}function uU(e,t,n){let r=n?sy(n,"intents",e):ce(e),i=sy(r,"intent.md"),s=iR(i)?iO(i):{},o=wn(s,t),a=typeof s.mode=="string"&&s.mode.length>0?s.mode:"continuous",c=[];for(let u of o)bv({slug:e,studio:t,stage:u,intentDir:r,intentMode:a}).status!=="completed"&&c.push(u);return c}function Vpr(e,t){let n=t?sy(t,"intents",e):ce(e),r=sy(n,"intent.md");iR(r)&&(Ne(r,"completion_review_entered_at",""),Ne(r,"completion_review_dispatched",!1),Ne(r,"completion_review_skipped",!1),Ne(r,"completion_review_dispatched_at",""),ci(e))}function Y6(e,t,n){let r=uU(e,t);if(r.length>0)return Vpr(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=sy(ce(e),"intent.md"),s=iR(i)?iO(i):{},a=wn(s,t).at(-1)??"";return a&&Gpr(e,a),zpr(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 Z6(e){let t=sy(ce(e),"intent.md");if(iR(t)){let s=iO(t),o=s.draft_pr_url,a=s.draft_pr_status;if(o&&a==="draft"){let c=ype(o);c.ok?(Ne(t,"draft_pr_status","ready"),Ne(t,"draft_pr_ready_at",mn())):(console.error(`[haiku] mark-ready of ${o} failed: ${c.error}`),Ne(t,"draft_pr_status","failed"))}}Ke("haiku.intent.completed",{intent:e}),wt(`haiku: complete intent ${e}`);let n=iR(t)?iO(t):{},r=n.studio||"",i=r?wn(n,r):[];if(i.length>0){let s=Cpe(e,i);s.success||console.error(`[haiku] finalizeIntentBranches warning for ${e}: ${s.message}`)}QD(e),ci(e),bpe(e)}var Hpr,$Nt=v(()=>{"use strict";ar();K0();Yd();ji();uZ();ze();vo();f1();Hpr=new Set(["discrete","discrete-hybrid"])});var mNt={};Ar(mNt,{buildElaboratorInstruction:()=>YNt,buildGuardResponse:()=>Xb,buildOutputRequirements:()=>Tx,buildRunInstructions:()=>sU,cleanupPreExecuteFeedback:()=>mpt,completeOrReviewIntent:()=>Y6,computeUnitWaves:()=>KI,currentWaveNumber:()=>YI,enrichActionWithPreview:()=>Ox,findIncompleteStages:()=>uU,getAwaitGateReviewSession:()=>l_e,getPrepareGateReview:()=>yve,handleOrchestratorTool:()=>M_e,isStagePreExecute:()=>aL,listUnits:()=>Eg,maybeEscalate:()=>KNt,orchestratorToolDefs:()=>L6,resolveIntentStages:()=>wn,resolveStageHats:()=>Es,resolveStageMetadata:()=>rhe,resolveStageReview:()=>nhe,resolveStudioFilePath:()=>Ff,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>the,runNext:()=>Wpr,runQualityGates:()=>swt,setGateReviewHandlers:()=>wve,summarizeFeedback:()=>WNt,validateCumulativeInputCoverage:()=>rwt,validateDiscoveryArtifacts:()=>$At,validateOutputLiveness:()=>iwt,validateStageOutputs:()=>QAt,validateUnitInputs:()=>twt,validateUnitNaming:()=>ewt,workflowAdvancePhase:()=>cU,workflowAdvanceStage:()=>K6,workflowCompleteStage:()=>Px,workflowGateAsk:()=>QNt,workflowIntentComplete:()=>Z6,workflowStartStage:()=>Ave,writeReviewFeedbackFiles:()=>N6});function Ypr(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 sU(e,t,n,r){let i=hkt.get(n.action),s=null;if(i&&(s=i({slug:e,studio:t,action:n,dir:r})),s&&!Kpr.has(n.action)&&!n.prompt_file)try{let{path:d}=jft({action:n.action,intent:e,stage:n.stage||void 0,content:s,tickHint:Ypr(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)){bb(e,t);try{$Nt("git",["push","origin","--delete",n],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}yr(e,void 0)}function uU(e,t,n){let r=n?sy(n,"intents",e):ce(e),i=sy(r,"intent.md"),s=iR(i)?iO(i):{},o=wn(s,t),a=typeof s.mode=="string"&&s.mode.length>0?s.mode:"continuous",c=[];for(let u of o)bv({slug:e,studio:t,stage:u,intentDir:r,intentMode:a}).status!=="completed"&&c.push(u);return c}function Vpr(e,t){let n=t?sy(t,"intents",e):ce(e),r=sy(n,"intent.md");iR(r)&&(Ne(r,"completion_review_entered_at",""),Ne(r,"completion_review_dispatched",!1),Ne(r,"completion_review_skipped",!1),Ne(r,"completion_review_dispatched_at",""),ci(e))}function Z6(e,t,n){let r=uU(e,t);if(r.length>0)return Vpr(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=sy(ce(e),"intent.md"),s=iR(i)?iO(i):{},a=wn(s,t).at(-1)??"";return a&&Gpr(e,a),zpr(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 J6(e){let t=sy(ce(e),"intent.md");if(iR(t)){let s=iO(t),o=s.draft_pr_url,a=s.draft_pr_status;if(o&&a==="draft"){let c=Spe(o);c.ok?(Ne(t,"draft_pr_status","ready"),Ne(t,"draft_pr_ready_at",mn())):(console.error(`[haiku] mark-ready of ${o} failed: ${c.error}`),Ne(t,"draft_pr_status","failed"))}}Ke("haiku.intent.completed",{intent:e}),wt(`haiku: complete intent ${e}`);let n=iR(t)?iO(t):{},r=n.studio||"",i=r?wn(n,r):[];if(i.length>0){let s=Mpe(e,i);s.success||console.error(`[haiku] finalizeIntentBranches warning for ${e}: ${s.message}`)}QD(e),ci(e),Epe(e)}var tCt=v(()=>{"use strict";ar();K0();Yd();uZ();ze();vo();ji();OEe();f1()});var yNt={};Ar(yNt,{buildElaboratorInstruction:()=>JNt,buildGuardResponse:()=>Xb,buildOutputRequirements:()=>Tx,buildRunInstructions:()=>sU,cleanupPreExecuteFeedback:()=>ypt,completeOrReviewIntent:()=>Z6,computeUnitWaves:()=>KI,currentWaveNumber:()=>YI,enrichActionWithPreview:()=>Ox,findIncompleteStages:()=>uU,getAwaitGateReviewSession:()=>f_e,getPrepareGateReview:()=>bve,handleOrchestratorTool:()=>L_e,isStagePreExecute:()=>aL,listUnits:()=>Eg,maybeEscalate:()=>ZNt,orchestratorToolDefs:()=>U6,resolveIntentStages:()=>wn,resolveStageHats:()=>Es,resolveStageMetadata:()=>ihe,resolveStageReview:()=>rhe,resolveStudioFilePath:()=>Ff,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>nhe,runNext:()=>Wpr,runQualityGates:()=>awt,setGateReviewHandlers:()=>Ive,summarizeFeedback:()=>YNt,validateCumulativeInputCoverage:()=>swt,validateDiscoveryArtifacts:()=>twt,validateOutputLiveness:()=>owt,validateStageOutputs:()=>ewt,validateUnitInputs:()=>rwt,validateUnitNaming:()=>nwt,workflowAdvancePhase:()=>cU,workflowAdvanceStage:()=>Y6,workflowCompleteStage:()=>Px,workflowGateAsk:()=>eCt,workflowIntentComplete:()=>J6,workflowStartStage:()=>kve,writeReviewFeedbackFiles:()=>C6});function Ypr(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 sU(e,t,n,r){let i=gkt.get(n.action),s=null;if(i&&(s=i({slug:e,studio:t,action:n,dir:r})),s&&!Kpr.has(n.action)&&!n.prompt_file)try{let{path:d}=qft({action:n.action,intent:e,stage:n.stage||void 0,content:s,tickHint:Ypr(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(` @@ -1601,29 +1601,29 @@ ${u} ${JSON.stringify(n,null,2)}`),l.join(` -`))}function wve(e){eCt=e.prepare,tCt=e.await}function yve(){return eCt}function l_e(){return tCt}async function M_e(e,t,n){let r=o=>({content:[{type:"text",text:o}]}),i=jD(t);if(i)return i;let s=bU.get(e);if(s){let o=s.handle(t,n);return o instanceof Promise?await o:o}return r(`Unknown orchestrator tool: ${e}`)}var Wpr,Kpr,eCt,tCt,Yd=v(()=>{"use strict";mkt();gkt();c_e();ze();vl();EU();ZNt();JNt();ji();L3();C6();$Nt();Wpr=wIt,Kpr=new Set(["noop","sealed","error"]);eCt=null,tCt=null});function kve(e){d8.set(e.name,e)}function nCt(){return Array.from(d8.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 rCt(e,t){let n=d8.get(e);if(!n)throw new rn(Sn.InvalidParams,`Unknown prompt: ${e}`);let r=t??{};for(let i of n.arguments)if(i.required&&!(i.name in r))throw new rn(Sn.InvalidParams,`Missing required argument: ${i.name} for prompt ${e}`);return n.handler(r)}async function iCt(e){let t={completion:{values:[]}};if(e.ref.type!=="ref/prompt")return t;let n=e.ref.name;if(!n)return t;let r=d8.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 d8,Ive=v(()=>{"use strict";C_();d8=new Map});import{existsSync as sCt,readdirSync as Zpr,readFileSync as Jpr}from"node:fs";import{join as oCt}from"node:path";function aCt(){let e=0;kve({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=oCt(t,"skills");if(!sCt(n))return console.error(`[haiku] Registered ${e} prompt(s) (skills dir not found \u2014 skills not bridged)`),e;let r=Zpr(n,{withFileTypes:!0});for(let i of r){if(!i.isDirectory())continue;let s=oCt(n,i.name,"SKILL.md");if(!sCt(s))continue;let o=Jpr(s,"utf8"),{data:a,body:c}=re(o),u=a.name||i.name,l=a.description||"",d=`haiku:${u}`;kve({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 Ive(e){nCt=e.prepare,rCt=e.await}function bve(){return nCt}function f_e(){return rCt}async function L_e(e,t,n){let r=o=>({content:[{type:"text",text:o}]}),i=jD(t);if(i)return i;let s=bU.get(e);if(s){let o=s.handle(t,n);return o instanceof Promise?await o:o}return r(`Unknown orchestrator tool: ${e}`)}var Wpr,Kpr,nCt,rCt,Yd=v(()=>{"use strict";ykt();Skt();l_e();ze();vl();EU();XNt();QNt();ji();L3();M6();tCt();Wpr=IIt,Kpr=new Set(["noop","sealed","error"]);nCt=null,rCt=null});function xve(e){f8.set(e.name,e)}function iCt(){return Array.from(f8.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 sCt(e,t){let n=f8.get(e);if(!n)throw new rn(Sn.InvalidParams,`Unknown prompt: ${e}`);let r=t??{};for(let i of n.arguments)if(i.required&&!(i.name in r))throw new rn(Sn.InvalidParams,`Missing required argument: ${i.name} for prompt ${e}`);return n.handler(r)}async function oCt(e){let t={completion:{values:[]}};if(e.ref.type!=="ref/prompt")return t;let n=e.ref.name;if(!n)return t;let r=f8.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 f8,Ove=v(()=>{"use strict";C_();f8=new Map});import{existsSync as aCt,readdirSync as Zpr,readFileSync as Jpr}from"node:fs";import{join as cCt}from"node:path";function uCt(){let e=0;xve({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=cCt(t,"skills");if(!aCt(n))return console.error(`[haiku] Registered ${e} prompt(s) (skills dir not found \u2014 skills not bridged)`),e;let r=Zpr(n,{withFileTypes:!0});for(let i of r){if(!i.isDirectory())continue;let s=cCt(n,i.name,"SKILL.md");if(!aCt(s))continue;let o=Jpr(s,"utf8"),{data:a,body:c}=re(o),u=a.name||i.name,l=a.description||"",d=`haiku:${u}`;xve({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 cCt=v(()=>{"use strict";Ci();ze();Ive()});var Qpr={};async function Xpr(){Vne();let e=new kV;await sR.connect(e);let t=oh()?"":` (harness: ${Mi().displayName})`;console.error(`H\xB7AI\xB7K\xB7U Review MCP server running on stdio${t}`)}async function dCt(e){if(lCt)return;lCt=!0,console.error(`Shutting down (${e})...`);let t=setTimeout(()=>{console.error(`Graceful shutdown exceeded ${uCt}ms \u2014 forcing exit`),process.exit(1)},uCt);t.unref();try{await sR.close(),await DRt(),await Ef()}catch(n){console.error(`Error during graceful shutdown: ${n instanceof Error?n.message:String(n)}`)}finally{clearTimeout(t),process.exit(0)}}var sR,uCt,lCt,fCt=v(()=>{"use strict";D8e();j8e();C_();Ci();w6();jRt();sh();_f();Yd();Ive();cCt();m5();Hi();uo();ze();sR=new AV({name:"haiku-review",version:"0.1.0"},{capabilities:{tools:{},prompts:{listChanged:!0},completions:{}}});oh()||Mi().mcpPrompts&&aCt();sR.setRequestHandler(lie,async()=>({prompts:nCt()}));sR.setRequestHandler(die,async e=>rCt(e.params.name,e.params.arguments));sR.setRequestHandler(bie,async e=>iCt(e.params));sR.setRequestHandler(gie,async()=>{let e=Mi(),n=[...L6,...RSe,{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:O9},{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:P9},{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}});sR.setRequestHandler(yC,async(e,t)=>{let r=(e.params?.arguments??{})._session_context,i=FRt(r);if(!i.ok)return{content:[{type:"text",text:`Haiku plugin dir was wiped from under the running MCP server and self-repair failed (${i.result?`${i.result.method}${i.result.reason?`:${i.result.reason}`:""}${i.result.error?` \u2014 ${i.result.error}`:""}`:"no-result"}). Run \`/plugin install haiku@haiku\` (or \`/plugin update haiku\`) to restore it manually.`}],isError:!0};let s;try{s=await P0t(e,t?.signal)}catch(o){if(t?.signal?.aborted)throw o;let a=e.params?.name??"",u=(e.params?.arguments??{})._session_context;try{let{appendFileSync:l}=await import("node:fs"),d=new Date().toISOString(),f=o instanceof Error?o.stack||o.message:String(o);l("/tmp/haiku-mcp-crashes.log",` +**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 lCt=v(()=>{"use strict";Ci();ze();Ove()});var Qpr={};async function Xpr(){Wne();let e=new kV;await sR.connect(e);let t=oh()?"":` (harness: ${Mi().displayName})`;console.error(`H\xB7AI\xB7K\xB7U Review MCP server running on stdio${t}`)}async function pCt(e){if(fCt)return;fCt=!0,console.error(`Shutting down (${e})...`);let t=setTimeout(()=>{console.error(`Graceful shutdown exceeded ${dCt}ms \u2014 forcing exit`),process.exit(1)},dCt);t.unref();try{await sR.close(),await URt(),await Ef()}catch(n){console.error(`Error during graceful shutdown: ${n instanceof Error?n.message:String(n)}`)}finally{clearTimeout(t),process.exit(0)}}var sR,dCt,fCt,hCt=v(()=>{"use strict";U8e();q8e();C_();Ci();w6();qRt();sh();_f();Yd();Ove();lCt();g5();Hi();uo();ze();sR=new AV({name:"haiku-review",version:"0.1.0"},{capabilities:{tools:{},prompts:{listChanged:!0},completions:{}}});oh()||Mi().mcpPrompts&&uCt();sR.setRequestHandler(die,async()=>({prompts:iCt()}));sR.setRequestHandler(fie,async e=>sCt(e.params.name,e.params.arguments));sR.setRequestHandler(Eie,async e=>oCt(e.params));sR.setRequestHandler(yie,async()=>{let e=Mi(),n=[...U6,...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:O9},{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:P9},{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}});sR.setRequestHandler(yC,async(e,t)=>{let r=(e.params?.arguments??{})._session_context,i=HRt(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 C0t(e,t?.signal)}catch(o){if(t?.signal?.aborted)throw o;let a=e.params?.name??"",u=(e.params?.arguments??{})._session_context;try{let{appendFileSync:l}=await import("node:fs"),d=new Date().toISOString(),f=o instanceof Error?o.stack||o.message:String(o);l("/tmp/haiku-mcp-crashes.log",` --- ${d} tool=${a} --- ${f} -`)}catch{}ms(o,{context:"mcp-tool-handler",tool_name:a},u);try{let{flush:l}=await Promise.resolve().then(()=>(sh(),UKe));await l(1e3)}catch{}throw console.error(`[haiku] Tool handler '${a}' threw:`,o instanceof Error?o.stack||o.message:String(o)),o}return s});wve({prepare:N0t,await:C0t});uCt=1e4,lCt=!1;process.on("SIGINT",()=>{dCt("SIGINT")});process.on("SIGTERM",()=>{dCt("SIGTERM")});Xpr().catch(e=>{ms(e,{context:"mcp-server-fatal"}),console.error("Fatal error:",e),process.exit(1)})});var oy=v(()=>{"use strict"});import{execSync as $pr}from"node:child_process";import{existsSync as eF,mkdirSync as kLi,readdirSync as ehr,readFileSync as pCt,statSync as ILi,writeFileSync as xLi}from"node:fs";import{dirname as PLi,join as f8}from"node:path";function xve(e,t){if(!eF(e))return"";let r=pCt(e,"utf8").match(new RegExp(`^${t}:\\s*(.+)$`,"m"));return r?r[1].trim().replace(/^["']|["']$/g,""):""}function hCt(e){if(!eF(e))return{};try{return JSON.parse(pCt(e,"utf8"))}catch{return{}}}function sO(){return eF(f8(p8(),".haiku"))}function oO(){let e=p8(),t=f8(e,".haiku","intents");if(!eF(t))return null;let n=ehr(t);for(let r of n){let i=f8(t,r,"intent.md");if(!eF(i))continue;if(xve(i,"status")==="active")return f8(t,r)}return null}function p8(){try{return $pr("git rev-parse --show-toplevel",{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return process.cwd()}}var oR=v(()=>{"use strict"});import{appendFileSync as mCt,existsSync as thr,readFileSync as nhr}from"node:fs";import{join as Ove}from"node:path";function rhr(e){let t=Ove(e,"intent.md"),n=xve(t,"active_stage");if(!n)return null;let r=Ove(e,"stages",n,"state.json"),i=hCt(r);return(typeof i.phase=="string"?i.phase:"")||null}async function ihr(e,t){let n=Number(e.total_tokens??0),r=Number(e.max_tokens??0);if(n===0||r===0)return;let i=oO();if(!i||rhr(i)!=="elaborate")return;let s=Math.floor((r-n)*100/r),o=process.env.CLAUDE_SESSION_ID??"unknown",a=Ove("/tmp",`context-monitor-${o}`),c="";thr(a)&&(c=nhr(a,"utf8")),s<=25?c.includes("25")||(mCt(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")||(mCt(a,`35 +`)}catch{}ms(o,{context:"mcp-tool-handler",tool_name:a},u);try{let{flush:l}=await Promise.resolve().then(()=>(sh(),jKe));await l(1e3)}catch{}throw console.error(`[haiku] Tool handler '${a}' threw:`,o instanceof Error?o.stack||o.message:String(o)),o}return s});Ive({prepare:M0t,await:D0t});dCt=1e4,fCt=!1;process.on("SIGINT",()=>{pCt("SIGINT")});process.on("SIGTERM",()=>{pCt("SIGTERM")});Xpr().catch(e=>{ms(e,{context:"mcp-server-fatal"}),console.error("Fatal error:",e),process.exit(1)})});var oy=v(()=>{"use strict"});import{execSync as $pr}from"node:child_process";import{existsSync as eF,mkdirSync as OLi,readdirSync as ehr,readFileSync as mCt,statSync as PLi,writeFileSync as NLi}from"node:fs";import{dirname as MLi,join as p8}from"node:path";function Pve(e,t){if(!eF(e))return"";let r=mCt(e,"utf8").match(new RegExp(`^${t}:\\s*(.+)$`,"m"));return r?r[1].trim().replace(/^["']|["']$/g,""):""}function gCt(e){if(!eF(e))return{};try{return JSON.parse(mCt(e,"utf8"))}catch{return{}}}function sO(){return eF(p8(h8(),".haiku"))}function oO(){let e=h8(),t=p8(e,".haiku","intents");if(!eF(t))return null;let n=ehr(t);for(let r of n){let i=p8(t,r,"intent.md");if(!eF(i))continue;if(Pve(i,"status")==="active")return p8(t,r)}return null}function h8(){try{return $pr("git rev-parse --show-toplevel",{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return process.cwd()}}var oR=v(()=>{"use strict"});import{appendFileSync as yCt,existsSync as thr,readFileSync as nhr}from"node:fs";import{join as Nve}from"node:path";function rhr(e){let t=Nve(e,"intent.md"),n=Pve(t,"active_stage");if(!n)return null;let r=Nve(e,"stages",n,"state.json"),i=gCt(r);return(typeof i.phase=="string"?i.phase:"")||null}async function ihr(e,t){let n=Number(e.total_tokens??0),r=Number(e.max_tokens??0);if(n===0||r===0)return;let i=oO();if(!i||rhr(i)!=="elaborate")return;let s=Math.floor((r-n)*100/r),o=process.env.CLAUDE_SESSION_ID??"unknown",a=Nve("/tmp",`context-monitor-${o}`),c="";thr(a)&&(c=nhr(a,"utf8")),s<=25?c.includes("25")||(yCt(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")||(yCt(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 gCt,yCt=v(()=>{"use strict";oy();oR();gCt={name:"context-monitor",description:"PostToolUse: while elaborating in an active intent, suggest /clear at 35% / 25% remaining context budget.",async handle(e,t){await ihr(e,t.pluginRoot)}}});function shr(e){if(e==null)return!1;if(typeof e=="string"){let n=e.toLowerCase();return Pve.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(Pve.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(Pve.some(s=>i.includes(s)))return!0}}return!1}var Pve,SCt,bCt=v(()=>{"use strict";oy();oR();Pve=["file has not been read yet","file has not been read in this session","read it first before writing to it"];SCt={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(!sO())return;let n=e??{};if(!shr(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 ohr}from"node:child_process";import{existsSync as ahr}from"node:fs";import{join as ECt,resolve as chr}from"node:path";function uhr(e){process.stderr.write(e)}function lhr(e){try{let t=ohr("git",["rev-parse","--git-dir"],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(!t)return!1;let n=t.startsWith("/")?t:ECt(e,t);for(let r of["MERGE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(ahr(ECt(n,r)))return!0;return!1}catch{return!1}}function dhr(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 fhr(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 SCt,bCt=v(()=>{"use strict";oy();oR();SCt={name:"context-monitor",description:"PostToolUse: while elaborating in an active intent, suggest /clear at 35% / 25% remaining context budget.",async handle(e,t){await ihr(e,t.pluginRoot)}}});function shr(e){if(e==null)return!1;if(typeof e=="string"){let n=e.toLowerCase();return Cve.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(Cve.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(Cve.some(s=>i.includes(s)))return!0}}return!1}var Cve,ECt,_Ct=v(()=>{"use strict";oy();oR();Cve=["file has not been read yet","file has not been read in this session","read it first before writing to it"];ECt={name:"edit-auto-read-hint",description:"PostToolUse: when Edit/MultiEdit fails with 'file not read yet', surface a Read-first hint so the agent recovers in one turn instead of retrying blindly.",async handle(e,t){if(!sO())return;let n=e??{};if(!shr(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 ohr}from"node:child_process";import{existsSync as ahr}from"node:fs";import{join as TCt,resolve as chr}from"node:path";function uhr(e){process.stderr.write(e)}function lhr(e){try{let t=ohr("git",["rev-parse","--git-dir"],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(!t)return!1;let n=t.startsWith("/")?t:TCt(e,t);for(let r of["MERGE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(ahr(TCt(n,r)))return!0;return!1}catch{return!1}}function dhr(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 fhr(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 phr(e){if(!sO())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=chr(process.cwd(),r),s=dhr(i);s.kind!==null&&(s.kind==="brief"&&t!=="Read"||lhr(process.cwd())||(uhr(fhr(t,s)),process.exit(2)))}var _Ct,TCt=v(()=>{"use strict";oR();oy();_Ct={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 phr(e)}}});import{join as vCt}from"node:path";function hhr(e){return e.replace(/^\//,"-").replace(/[/.]/g,"-")}function mhr(){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 ghr(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||vCt(process.env.HOME||"",".claude"),s=hhr(process.cwd());n.state_file=vCt(i,"projects",s,r,"haiku.json")}n._session_context=mhr(),process.stdout.write(JSON.stringify(n))}var RCt,ACt=v(()=>{"use strict";oy();RCt={name:"inject-state-file",description:"PreToolUse: inject state_file path + _session_context into haiku_* tool calls.",async handle(e,t){await ghr(e)}}});async function Shr(e,t){if(!sO())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||"";yhr.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 phr(e){if(!sO())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=chr(process.cwd(),r),s=dhr(i);s.kind!==null&&(s.kind==="brief"&&t!=="Read"||lhr(process.cwd())||(uhr(fhr(t,s)),process.exit(2)))}var vCt,RCt=v(()=>{"use strict";oR();oy();vCt={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 phr(e)}}});import{join as ACt}from"node:path";function hhr(e){return e.replace(/^\//,"-").replace(/[/.]/g,"-")}function mhr(){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 ghr(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||ACt(process.env.HOME||"",".claude"),s=hhr(process.cwd());n.state_file=ACt(i,"projects",s,r,"haiku.json")}n._session_context=mhr(),process.stdout.write(JSON.stringify(n))}var wCt,kCt=v(()=>{"use strict";oy();wCt={name:"inject-state-file",description:"PreToolUse: inject state_file path + _session_context into haiku_* tool calls.",async handle(e,t){await ghr(e)}}});async function Shr(e,t){if(!sO())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||"";yhr.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 yhr,wCt,kCt=v(()=>{"use strict";oy();oR();yhr=/ignore previous|disregard|override instructions|you are now|system prompt||<\/system>/i;wCt={name:"prompt-guard",description:"PreToolUse Write/Edit: advisory scan for prompt injection in haiku spec writes.",async handle(e,t){await Shr(e,t.pluginRoot)}}});import{existsSync as bhr}from"node:fs";import{join as Ehr}from"node:path";function _hr(){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 Thr(e,t){if(e.tool_name!=="EnterPlanMode"||!_hr()||!oh()||oO())return;let n=p8();if(!bhr(Ehr(n,".haiku")))return;let r=WN("start"),i={hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`H\xB7AI\xB7K\xB7U: Use ${r} instead of plan mode. +`)}var yhr,ICt,xCt=v(()=>{"use strict";oy();oR();yhr=/ignore previous|disregard|override instructions|you are now|system prompt||<\/system>/i;ICt={name:"prompt-guard",description:"PreToolUse Write/Edit: advisory scan for prompt injection in haiku spec writes.",async handle(e,t){await Shr(e,t.pluginRoot)}}});import{existsSync as bhr}from"node:fs";import{join as Ehr}from"node:path";function _hr(){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 Thr(e,t){if(e.tool_name!=="EnterPlanMode"||!_hr()||!oh()||oO())return;let n=h8();if(!bhr(Ehr(n,".haiku")))return;let r=WN("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: @@ -1635,9 +1635,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,xCt=v(()=>{"use strict";_f();oy();oR();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 Thr(e,t.pluginRoot)}}});import{resolve as vhr}from"node:path";async function Rhr(e){if(!oO())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 E5(vhr(process.cwd(),i))}var OCt,PCt=v(()=>{"use strict";K_e();oy();oR();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 Rhr(e)}catch{}}}});import{existsSync as NCt,readdirSync as Ahr}from"node:fs";import{join as Nve}from"node:path";function whr(){let e=Nve(process.cwd(),".haiku","intents");if(!NCt(e))return null;let t=Ahr(e).filter(n=>NCt(Nve(e,n,"intent.md")));return t.length===1?Nve(e,t[0]):null}async function khr(e,t){let n=e.tool_name;if(n!=="Write"&&n!=="Edit"||!whr())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 CCt,MCt=v(()=>{"use strict";oy();CCt={name:"workflow-guard",description:"PreToolUse Write/Edit: warn when editing outside the active hat's scope.",async handle(e,t){await khr(e,t.pluginRoot)}}});var LCt={};Ar(LCt,{__HOOK_REGISTRY:()=>Chr,runHook:()=>Nhr});import{readFileSync as Ihr}from"node:fs";function Phr(){try{return Ihr(0,"utf8")}catch{return""}}async function Nhr(e,t){if(Ohr.has(e))return;let n=xhr.get(e);n||(console.error(`haiku: hook '${e}' not implemented`),process.exit(2));let r=Phr(),i={};try{r.trim()&&(i=JSON.parse(r))}catch{}let{resolvePluginRoot:s}=await Promise.resolve().then(()=>(Ci(),DKe)),o=s();await n.handle(i,{pluginRoot:o})}var DCt,xhr,Ohr,Chr,UCt=v(()=>{"use strict";yCt();bCt();TCt();ACt();kCt();xCt();PCt();MCt();DCt=[gCt,SCt,_Ct,RCt,wCt,ICt,OCt,CCt],xhr=new Map(DCt.map(e=>[e.name,e])),Ohr=new Set(["quality-gate","track-outputs","ensure-deps","inject-context","subagent-hook","subagent-context","enforce-iteration"]);Chr=DCt});var HCt={};Ar(HCt,{runMigrate:()=>Fhr});import{execSync as Mhr}from"node:child_process";import{cpSync as tF,existsSync as ay,mkdirSync as aO,readdirSync as FCt,readFileSync as Dhr,writeFileSync as cO}from"node:fs";import{basename as Cve,join as On}from"node:path";function jCt(e){let t=Dhr(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 Lhr(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function Mve(e){try{let{execSync:t}=Y("node:child_process");return t(`git log --diff-filter=A --follow --format=%aI -- "${e}" | tail -1`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}function Uhr(e){try{let{execSync:t}=Y("node:child_process");return t(`git log -1 --format=%aI -- "${e}"`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}async function Fhr(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=On(c,".ai-dlc"),l=On(c,".haiku","intents");if(!ay(u)){console.log("No .ai-dlc/ directory found. Nothing to migrate.");return}let d=FCt(u).filter(_=>{let T=On(u,_);return ay(On(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 OCt,PCt=v(()=>{"use strict";_f();oy();oR();OCt={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 Thr(e,t.pluginRoot)}}});import{resolve as vhr}from"node:path";async function Rhr(e){if(!oO())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 _5(vhr(process.cwd(),i))}var NCt,CCt=v(()=>{"use strict";Z_e();oy();oR();NCt={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 Rhr(e)}catch{}}}});import{existsSync as MCt,readdirSync as Ahr}from"node:fs";import{join as Mve}from"node:path";function whr(){let e=Mve(process.cwd(),".haiku","intents");if(!MCt(e))return null;let t=Ahr(e).filter(n=>MCt(Mve(e,n,"intent.md")));return t.length===1?Mve(e,t[0]):null}async function khr(e,t){let n=e.tool_name;if(n!=="Write"&&n!=="Edit"||!whr())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 DCt,LCt=v(()=>{"use strict";oy();DCt={name:"workflow-guard",description:"PreToolUse Write/Edit: warn when editing outside the active hat's scope.",async handle(e,t){await khr(e,t.pluginRoot)}}});var FCt={};Ar(FCt,{__HOOK_REGISTRY:()=>Chr,runHook:()=>Nhr});import{readFileSync as Ihr}from"node:fs";function Phr(){try{return Ihr(0,"utf8")}catch{return""}}async function Nhr(e,t){if(Ohr.has(e))return;let n=xhr.get(e);n||(console.error(`haiku: hook '${e}' not implemented`),process.exit(2));let r=Phr(),i={};try{r.trim()&&(i=JSON.parse(r))}catch{}let{resolvePluginRoot:s}=await Promise.resolve().then(()=>(Ci(),UKe)),o=s();await n.handle(i,{pluginRoot:o})}var UCt,xhr,Ohr,Chr,jCt=v(()=>{"use strict";bCt();_Ct();RCt();kCt();xCt();PCt();CCt();LCt();UCt=[SCt,ECt,vCt,wCt,ICt,OCt,NCt,DCt],xhr=new Map(UCt.map(e=>[e.name,e])),Ohr=new Set(["quality-gate","track-outputs","ensure-deps","inject-context","subagent-hook","subagent-context","enforce-iteration"]);Chr=UCt});var BCt={};Ar(BCt,{runMigrate:()=>Fhr});import{execSync as Mhr}from"node:child_process";import{cpSync as tF,existsSync as ay,mkdirSync as aO,readdirSync as HCt,readFileSync as Dhr,writeFileSync as cO}from"node:fs";import{basename as Dve,join as On}from"node:path";function qCt(e){let t=Dhr(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 Lhr(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function Lve(e){try{let{execSync:t}=Y("node:child_process");return t(`git log --diff-filter=A --follow --format=%aI -- "${e}" | tail -1`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}function Uhr(e){try{let{execSync:t}=Y("node:child_process");return t(`git log -1 --format=%aI -- "${e}"`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}async function Fhr(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=On(c,".ai-dlc"),l=On(c,".haiku","intents");if(!ay(u)){console.log("No .ai-dlc/ directory found. Nothing to migrate.");return}let d=HCt(u).filter(_=>{let T=On(u,_);return ay(On(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/: @@ -1663,7 +1663,7 @@ Commit or stash first, or pass --allow-dirty. ${_}`)}console.log(`Found ${d.length} intent(s) in .ai-dlc/ (${y.length} primary, ${h.size} merged). Migrating ${b.length} primary intent(s)${i?" (DRY RUN \u2014 pass --apply to write)":""}. -`);let S=0,E=0;for(let _ of b){let T=On(u,_),R=On(l,_);if(ay(R)){let ee=ay(On(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}=jCt(On(T,"intent.md")),k=A.status||"active",P=x.match(/^# (.+)$/m)?.[1]||_,N=g.get(_)||"",C=Mve(On(T,"intent.md")),L=Uhr(T),G=A.created||"",W=C||(G?`${G}T00:00:00Z`:Lhr()),$=k==="completed"||k==="complete"?L||W:null;if(i){console.log(` DRY RUN: ${_} (status: ${k})`),S++;continue}aO(On(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=On(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=FCt(ee).filter(Ae=>Ae.startsWith("unit-")&&Ae.endsWith(".md"));for(let Ae of Le){let{data:z,body:J}=jCt(On(ee,Ae)),oe=z.pass||"",de=oe?Q[oe]||"development":se||"development";U.has(de)||U.set(de,[]),U.get(de)?.push({file:Ae,fm:z,body:J}),M++}if(ee!==T){if(ay(On(ee,"discovery.md"))){let Ae=Cve(ee);i||tF(On(ee,"discovery.md"),On(R,"knowledge",`${Ae}-discovery.md`))}if(ay(On(ee,"mockups"))&&!i){let Ae=On(R,"stages","design","artifacts");aO(Ae,{recursive:!0});try{tF(On(ee,"mockups"),Ae,{recursive:!0})}catch{}}}}let j=A.active_pass||"",H=j&&Q[j]||"",K=A.epic||"";if(k==="completed"||k==="complete"){cO(On(R,"intent.md"),`--- +`);let S=0,E=0;for(let _ of b){let T=On(u,_),R=On(l,_);if(ay(R)){let ee=ay(On(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}=qCt(On(T,"intent.md")),k=A.status||"active",P=x.match(/^# (.+)$/m)?.[1]||_,N=g.get(_)||"",C=Lve(On(T,"intent.md")),L=Uhr(T),G=A.created||"",W=C||(G?`${G}T00:00:00Z`:Lhr()),$=k==="completed"||k==="complete"?L||W:null;if(i){console.log(` DRY RUN: ${_} (status: ${k})`),S++;continue}aO(On(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=On(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=HCt(ee).filter(Ae=>Ae.startsWith("unit-")&&Ae.endsWith(".md"));for(let Ae of Le){let{data:z,body:J}=qCt(On(ee,Ae)),oe=z.pass||"",de=oe?Q[oe]||"development":se||"development";U.has(de)||U.set(de,[]),U.get(de)?.push({file:Ae,fm:z,body:J}),M++}if(ee!==T){if(ay(On(ee,"discovery.md"))){let Ae=Dve(ee);i||tF(On(ee,"discovery.md"),On(R,"knowledge",`${Ae}-discovery.md`))}if(ay(On(ee,"mockups"))&&!i){let Ae=On(R,"stages","design","artifacts");aO(Ae,{recursive:!0});try{tF(On(ee,"mockups"),Ae,{recursive:!0})}catch{}}}}let j=A.active_pass||"",H=j&&Q[j]||"",K=A.epic||"";if(k==="completed"||k==="complete"){cO(On(R,"intent.md"),`--- title: "${P}" studio: software stages: [inception, design, product, development, operations, security] @@ -1678,8 +1678,8 @@ follows: ${N}`:""} ${x} `);for(let se of q)aO(On(R,"stages",se,"units"),{recursive:!0}),cO(On(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){aO(On(R,"stages",se,"units"),{recursive:!0});for(let{file:Ae,fm:z,body:J}of Le){let oe=z.status||"pending",de=z.depends_on||[],_e=z.discipline||"fullstack",kt=z.last_updated||Mve(On(T,Ae))||null,Ue=z.ticket||"",Un=z.branch||"";cO(On(R,"stages",se,"units",Ae),`--- -name: ${Cve(Ae,".md")} +`);for(let[se,Le]of U){aO(On(R,"stages",se,"units"),{recursive:!0});for(let{file:Ae,fm:z,body:J}of Le){let oe=z.status||"pending",de=z.depends_on||[],_e=z.discipline||"fullstack",kt=z.last_updated||Lve(On(T,Ae))||null,Ue=z.ticket||"",Un=z.branch||"";cO(On(R,"stages",se,"units",Ae),`--- +name: ${Dve(Ae,".md")} type: ${_e} status: ${oe} depends_on: [${de.join(", ")}] @@ -1707,8 +1707,8 @@ follows: ${N}`:""} ${x} `);for(let Ae of q)aO(On(R,"stages",Ae,"units"),{recursive:!0}),U.has(Ae)&&cO(On(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:de}of z){let _e=oe.status||"pending",kt=oe.depends_on||[],Ue=oe.discipline||"fullstack",Un=oe.last_updated||Mve(On(T,J))||null,dr=oe.ticket||"",sn=oe.branch||"";cO(On(R,"stages",Ae,"units",J),`--- -name: ${Cve(J,".md")} +`);for(let[Ae,z]of U)for(let{file:J,fm:oe,body:de}of z){let _e=oe.status||"pending",kt=oe.depends_on||[],Ue=oe.discipline||"fullstack",Un=oe.last_updated||Lve(On(T,J))||null,dr=oe.ticket||"",sn=oe.branch||"";cO(On(R,"stages",Ae,"units",J),`--- +name: ${Dve(J,".md")} type: ${Ue} status: ${_e} depends_on: [${kt.join(", ")}] @@ -1723,16 +1723,16 @@ completed_at: ${_e==="completed"&&Un||"null"} ${de} `)}let Le=F.length>0?` [merged: ${F.join(", ")}]`:"";console.log(` MIGRATED: ${_} (active, stage: ${H||"inception"}, ${M} units across ${U.size} stage(s))${Le}`)}if(ay(On(T,"discovery.md"))&&tF(On(T,"discovery.md"),On(R,"knowledge","DISCOVERY.md")),ay(On(T,"knowledge")))try{tF(On(T,"knowledge"),On(R,"knowledge"),{recursive:!0})}catch{}if(ay(On(T,"mockups"))){let ee=On(R,"stages","design","artifacts");aO(ee,{recursive:!0});try{tF(On(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 qCt=v(()=>{"use strict"});function zhr(e,t){return t?Qr.gate:Qr[e]??Qr.execute}function GCt(e,t={}){let n=t.color??!process.env.NO_COLOR,r=(k,P)=>n?`${k}${P}${Qr.reset}`:P,i=r(Qr.brand,jhr),s=r(Qr.brand,"\u2B22"),o=r(Qr.intent,e.intent),a=e.studio?r(Qr.dim,e.studio):"",c=zhr(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}`:Bhr(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?Hhr[k.severity]:qhr,N=P?P.pips:zCt;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=BCt[k.status]??BCt.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 jhr,nF,zCt,h8,BCt,Hhr,qhr,Bhr,Qr,VCt=v(()=>{"use strict";jhr="H\xB7AI\xB7K\xB7U",nF="\x1B[1;38;2;255;255;0m",zCt={done:"\x1B[38;5;71m",active:nF,rejected:"\x1B[1;38;5;167m",pending:"\x1B[38;5;244m"},h8="\x1B[38;5;240m",BCt={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"}},Hhr={blocker:{bg:"\x1B[48;5;210m",mark:"!",pips:{done:"\x1B[1;38;5;22m",active:nF,rejected:"\x1B[1;38;5;52m",pending:h8}},high:{bg:"\x1B[48;5;216m",mark:"^",pips:{done:"\x1B[1;38;5;22m",active:nF,rejected:"\x1B[1;38;5;88m",pending:h8}},medium:{bg:"\x1B[48;5;223m",mark:"~",pips:{done:"\x1B[1;38;5;22m",active:nF,rejected:"\x1B[1;38;5;88m",pending:h8}},low:{bg:"\x1B[48;5;254m",mark:".",pips:zCt}},qhr={bg:"\x1B[48;5;189m",mark:"?",pips:{done:"\x1B[1;38;5;28m",active:nF,rejected:"\x1B[1;38;5;124m",pending:h8}},Bhr=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 Ghr}from"node:child_process";import{existsSync as cy,readdirSync as uO,readFileSync as Vhr,statSync as Whr}from"node:fs";import{join as wc}from"node:path";function lO(e){if(!cy(e))return null;try{return re(Vhr(e,"utf8")).data}catch{return null}}function Khr(){try{return Ghr("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return""}}function Yhr(e){let t=wc(e,"intents");if(!cy(t))return null;let r=Khr().match(/^haiku\/(.+?)\/[^/]+$/);if(r?.[1]){let o=r[1];if(cy(wc(t,o,"intent.md")))return o}let i;try{i=uO(t).filter(o=>{try{return Whr(wc(t,o)).isDirectory()}catch{return!1}})}catch{return null}let s=i.filter(o=>{let a=lO(wc(t,o,"intent.md"));return!a||a.archived===!0?!1:typeof a.sealed_at=="string"&&a.sealed_at.length>0?KL(o,{localOnly:!0}):!0});return s.length===1?s[0]:null}function Lve(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 Jhr(e){return!!e&&Lve(e)===""&&Zhr.has(e.kind)}function Dve(e){return e==="cross-stage-consistency"?"cross-stage":e}function Xhr(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":`${Dve(e.role)} review`,gated:!1}}case"dispatch_approval":{let t=e.dispatches;return{kind:"approve",label:t&&t.length>1?"adversarial approval":`${Dve(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":`${Dve(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 WCt(e,t,n,r){let i=wc(r,"stages",n,"units");if(!cy(i))return{done:0,total:0};let s=Es(t,n),o=s[s.length-1]??"",a=0,c=0;for(let u of uO(i).filter(l=>l.endsWith(".md"))){let l=lO(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 KCt(e,t){let n=t?wc(e,"stages",t,"feedback"):wc(e,"feedback");if(!cy(n))return{closed:0,total:0};let r=0,i=0;for(let s of uO(n).filter(o=>o.endsWith(".md"))){let o=lO(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 JCt(e){return e.match(/^(?:unit-)?(\d+)/)?.[1]??""}function Qhr(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 XCt(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"&&YCt.has(c)?"done":typeof c=="string"&&$hr.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"&&YCt.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 uO(r).filter(c=>c.endsWith(".md")).sort()){if(!s.has(a.replace(/\.md$/,"")))continue;let c=lO(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-${JCt(a)}`,segments:XCt(u,i,l)})}return o}function ZCt(e,t){if(!cy(e)||t.length===0)return[];let n=[];for(let r of uO(e).filter(i=>i.endsWith(".md")).sort()){let i=lO(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-${JCt(r)}`,segments:XCt(a,t,a.length>0),severity:c})}return n}function QCt(){let e;try{e=ve()}catch{return null}let t=Yhr(e);if(!t)return null;let n=ce(t),r=lO(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=KL(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=Ikt(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"&&!Lve(u))return s("verifying intent",3);let{kind:d,label:f,gated:p}=Xhr(u),h=Jhr(u),m=h?"":Lve(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&&C0(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}=WCt(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}=KI(C);if(G>1){let W=YI(C,L,G);b=`${b||`${N} units`} \xB7 wave ${W+1}/${G}`}}}catch{}}else if(d==="fixloop"){let P=y?KCt(n,y):{closed:0,total:0},N=KCt(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}=WCt(t,i,y,n);P>0&&(b=`${P} units`)}else d==="elaborate"&&(b="decomposing");let S=null,E="",_=null;try{if(_=p6({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=f6(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=emr(i,y,n);P.length>0&&(T=P)}else if(d==="fixloop"){let P=[];y&&P.push(...ZCt(wc(n,"stages",y,"feedback"),bg(i,y))),P.push(...ZCt(wc(n,"feedback"),jf(i))),P.sort((N,C)=>Xc(N.severity)-Xc(C.severity)),P.length>0&&(T=P.slice(0,fv))}let R=null;if(_&&(d==="review"||d==="approve")&&Ybe(u)){let P=nvt({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)&&!Kbe.has($Tt(L.key))).map(L=>({id:Qhr(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("/")?cy(W)&&uO(W).filter($=>$!==".gitkeep").length>0:cy(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";ji();L3();Oa();YL();Jbe();Hi();ze();Kn();ZEe();Zhr=new Set(["intent_review","record_reflection","seal_intent","pending_seal","sealed"]);YCt=new Set(["advance","advanced","closed"]),$hr=new Set(["reject","rejected"])});var sMt={};Ar(sMt,{resolveFallbackCommand:()=>rMt,runStatusline:()=>pmr});import{execFileSync as tmr}from"node:child_process";import{existsSync as cR,mkdirSync as eMt,readFileSync as rF,writeFileSync as Fve}from"node:fs";import{homedir as m8}from"node:os";import{dirname as jve,join as tl}from"node:path";function nmr(){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 tMt(e){let t=e;for(let n=0;n<30;n++){let r=tl(t,".haiku");if(cR(r))return r;let i=jve(t);if(i===t)break;t=i}return null}function rmr(e,t=m8()){let n=[],r=tMt(e);r&&n.push(tl(r,iF)),n.push(tl(t,".haiku",iF));for(let i of n)if(cR(i))try{return JSON.parse(rF(i,"utf8"))}catch{}return null}function imr(e){return e?nMt(e.statusLine):null}function nMt(e){let t=e;return t&&t.type==="command"&&typeof t.command=="string"&&t.command?t.command:null}function Uve(e){return e.includes("statusline")&&e.includes("haiku")}function smr(e){if(!cR(e))return null;try{let t=JSON.parse(rF(e,"utf8"));return nMt(t.statusLine)}catch{return null}}function omr(e){let t=tMt(e);return t?jve(t):e}function rMt(e,t=m8()){let n=imr(rmr(e,t)),r=omr(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=smr(s);if(o){if(Uve(o)){if(n&&!Uve(n))return n;continue}return o}}return n&&!Uve(n)?n:null}async function amr(){let e=await nmr(),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=QCt()}catch(s){n&&process.stderr.write(`[haiku statusline] resolveStatuslineState threw: ${s instanceof Error?`${s.message} +Next steps:`),console.log(" git add .haiku/intents/ && git commit -m 'haiku: migrate intents from .ai-dlc/'"),console.log(" For active intents: run /haiku:haiku-pickup to start from inception"))}var zCt=v(()=>{"use strict"});function zhr(e,t){return t?Qr.gate:Qr[e]??Qr.execute}function WCt(e,t={}){let n=t.color??!process.env.NO_COLOR,r=(k,P)=>n?`${k}${P}${Qr.reset}`:P,i=r(Qr.brand,jhr),s=r(Qr.brand,"\u2B22"),o=r(Qr.intent,e.intent),a=e.studio?r(Qr.dim,e.studio):"",c=zhr(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}`:Bhr(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?Hhr[k.severity]:qhr,N=P?P.pips:VCt;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=GCt[k.status]??GCt.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 jhr,nF,VCt,m8,GCt,Hhr,qhr,Bhr,Qr,KCt=v(()=>{"use strict";jhr="H\xB7AI\xB7K\xB7U",nF="\x1B[1;38;2;255;255;0m",VCt={done:"\x1B[38;5;71m",active:nF,rejected:"\x1B[1;38;5;167m",pending:"\x1B[38;5;244m"},m8="\x1B[38;5;240m",GCt={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"}},Hhr={blocker:{bg:"\x1B[48;5;210m",mark:"!",pips:{done:"\x1B[1;38;5;22m",active:nF,rejected:"\x1B[1;38;5;52m",pending:m8}},high:{bg:"\x1B[48;5;216m",mark:"^",pips:{done:"\x1B[1;38;5;22m",active:nF,rejected:"\x1B[1;38;5;88m",pending:m8}},medium:{bg:"\x1B[48;5;223m",mark:"~",pips:{done:"\x1B[1;38;5;22m",active:nF,rejected:"\x1B[1;38;5;88m",pending:m8}},low:{bg:"\x1B[48;5;254m",mark:".",pips:VCt}},qhr={bg:"\x1B[48;5;189m",mark:"?",pips:{done:"\x1B[1;38;5;28m",active:nF,rejected:"\x1B[1;38;5;124m",pending:m8}},Bhr=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 Ghr}from"node:child_process";import{existsSync as cy,readdirSync as uO,readFileSync as Vhr,statSync as Whr}from"node:fs";import{join as wc}from"node:path";function lO(e){if(!cy(e))return null;try{return re(Vhr(e,"utf8")).data}catch{return null}}function Khr(){try{return Ghr("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return""}}function Yhr(e){let t=wc(e,"intents");if(!cy(t))return null;let r=Khr().match(/^haiku\/(.+?)\/[^/]+$/);if(r?.[1]){let o=r[1];if(cy(wc(t,o,"intent.md")))return o}let i;try{i=uO(t).filter(o=>{try{return Whr(wc(t,o)).isDirectory()}catch{return!1}})}catch{return null}let s=i.filter(o=>{let a=lO(wc(t,o,"intent.md"));return!a||a.archived===!0?!1:typeof a.sealed_at=="string"&&a.sealed_at.length>0?KL(o,{localOnly:!0}):!0});return s.length===1?s[0]:null}function Fve(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 Jhr(e){return!!e&&Fve(e)===""&&Zhr.has(e.kind)}function Uve(e){return e==="cross-stage-consistency"?"cross-stage":e}function Xhr(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":`${Uve(e.role)} review`,gated:!1}}case"dispatch_approval":{let t=e.dispatches;return{kind:"approve",label:t&&t.length>1?"adversarial approval":`${Uve(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":`${Uve(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 YCt(e,t,n,r){let i=wc(r,"stages",n,"units");if(!cy(i))return{done:0,total:0};let s=Es(t,n),o=s[s.length-1]??"",a=0,c=0;for(let u of uO(i).filter(l=>l.endsWith(".md"))){let l=lO(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 ZCt(e,t){let n=t?wc(e,"stages",t,"feedback"):wc(e,"feedback");if(!cy(n))return{closed:0,total:0};let r=0,i=0;for(let s of uO(n).filter(o=>o.endsWith(".md"))){let o=lO(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 QCt(e){return e.match(/^(?:unit-)?(\d+)/)?.[1]??""}function Qhr(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 $Ct(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"&&JCt.has(c)?"done":typeof c=="string"&&$hr.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"&&JCt.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 uO(r).filter(c=>c.endsWith(".md")).sort()){if(!s.has(a.replace(/\.md$/,"")))continue;let c=lO(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-${QCt(a)}`,segments:$Ct(u,i,l)})}return o}function XCt(e,t){if(!cy(e)||t.length===0)return[];let n=[];for(let r of uO(e).filter(i=>i.endsWith(".md")).sort()){let i=lO(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-${QCt(r)}`,segments:$Ct(a,t,a.length>0),severity:c})}return n}function eMt(){let e;try{e=ve()}catch{return null}let t=Yhr(e);if(!t)return null;let n=ce(t),r=lO(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=KL(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=Okt(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"&&!Fve(u))return s("verifying intent",3);let{kind:d,label:f,gated:p}=Xhr(u),h=Jhr(u),m=h?"":Fve(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&&C0(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}=YCt(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}=KI(C);if(G>1){let W=YI(C,L,G);b=`${b||`${N} units`} \xB7 wave ${W+1}/${G}`}}}catch{}}else if(d==="fixloop"){let P=y?ZCt(n,y):{closed:0,total:0},N=ZCt(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}=YCt(t,i,y,n);P>0&&(b=`${P} units`)}else d==="elaborate"&&(b="decomposing");let S=null,E="",_=null;try{if(_=p6({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=f6(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=emr(i,y,n);P.length>0&&(T=P)}else if(d==="fixloop"){let P=[];y&&P.push(...XCt(wc(n,"stages",y,"feedback"),bg(i,y))),P.push(...XCt(wc(n,"feedback"),jf(i))),P.sort((N,C)=>Xc(N.severity)-Xc(C.severity)),P.length>0&&(T=P.slice(0,fv))}let R=null;if(_&&(d==="review"||d==="approve")&&Zbe(u)){let P=ivt({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)&&!Ybe.has(tvt(L.key))).map(L=>({id:Qhr(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("/")?cy(W)&&uO(W).filter($=>$!==".gitkeep").length>0:cy(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";ji();L3();Oa();YL();Xbe();Hi();ze();Kn();XEe();Zhr=new Set(["intent_review","record_reflection","seal_intent","pending_seal","sealed"]);JCt=new Set(["advance","advanced","closed"]),$hr=new Set(["reject","rejected"])});var aMt={};Ar(aMt,{resolveFallbackCommand:()=>sMt,runStatusline:()=>pmr});import{execFileSync as tmr}from"node:child_process";import{existsSync as cR,mkdirSync as nMt,readFileSync as rF,writeFileSync as Hve}from"node:fs";import{homedir as g8}from"node:os";import{dirname as qve,join as tl}from"node:path";function nmr(){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 rMt(e){let t=e;for(let n=0;n<30;n++){let r=tl(t,".haiku");if(cR(r))return r;let i=qve(t);if(i===t)break;t=i}return null}function rmr(e,t=g8()){let n=[],r=rMt(e);r&&n.push(tl(r,iF)),n.push(tl(t,".haiku",iF));for(let i of n)if(cR(i))try{return JSON.parse(rF(i,"utf8"))}catch{}return null}function imr(e){return e?iMt(e.statusLine):null}function iMt(e){let t=e;return t&&t.type==="command"&&typeof t.command=="string"&&t.command?t.command:null}function jve(e){return e.includes("statusline")&&e.includes("haiku")}function smr(e){if(!cR(e))return null;try{let t=JSON.parse(rF(e,"utf8"));return iMt(t.statusLine)}catch{return null}}function omr(e){let t=rMt(e);return t?qve(t):e}function sMt(e,t=g8()){let n=imr(rmr(e,t)),r=omr(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=smr(s);if(o){if(jve(o)){if(n&&!jve(n))return n;continue}return o}}return n&&!jve(n)?n:null}async function amr(){let e=await nmr(),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=eMt()}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(GCt(r));return}let i=rMt(t);if(i)try{let s=tmr("sh",["-c",i],{input:e,encoding:"utf8",stdio:["pipe","pipe","ignore"]});process.stdout.write(s)}catch{}}function umr(e){return process.env.HAIKU_PROD==="1"?!0:process.env.HAIKU_DEV==="1"?!1:/\/\.claude\/(plugins|mcpb)\//.test(e)}function lmr(){let e=nn();if(e&&umr(e))return`npx -y ${cmr} statusline`;if(e){let t=tl(e,"bin","haiku");if(cR(t))return`${t} statusline`}return"haiku statusline"}function iMt(e,t){return e?{settingsPath:tl(m8(),".claude","settings.json"),haikuDir:tl(m8(),".haiku")}:{settingsPath:tl(t,".claude","settings.json"),haikuDir:tl(t,".haiku")}}function dmr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=iMt(t,n),s={};if(cR(r))try{s=JSON.parse(rF(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=lmr(),c=o&&typeof o=="object"&&typeof o.command=="string"&&o.command.includes("statusline");c||(eMt(i,{recursive:!0}),Fve(tl(i,iF),JSON.stringify({statusLine:o??null},null,2))),s.statusLine={type:"command",command:a,padding:0},eMt(jve(r),{recursive:!0}),Fve(r,`${JSON.stringify(s,null,2)} +`),r){process.stdout.write(WCt(r));return}let i=sMt(t);if(i)try{let s=tmr("sh",["-c",i],{input:e,encoding:"utf8",stdio:["pipe","pipe","ignore"]});process.stdout.write(s)}catch{}}function umr(e){return process.env.HAIKU_PROD==="1"?!0:process.env.HAIKU_DEV==="1"?!1:/\/\.claude\/(plugins|mcpb)\//.test(e)}function lmr(){let e=nn();if(e&&umr(e))return`npx -y ${cmr} statusline`;if(e){let t=tl(e,"bin","haiku");if(cR(t))return`${t} statusline`}return"haiku statusline"}function oMt(e,t){return e?{settingsPath:tl(g8(),".claude","settings.json"),haikuDir:tl(g8(),".haiku")}:{settingsPath:tl(t,".claude","settings.json"),haikuDir:tl(t,".haiku")}}function dmr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=oMt(t,n),s={};if(cR(r))try{s=JSON.parse(rF(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=lmr(),c=o&&typeof o=="object"&&typeof o.command=="string"&&o.command.includes("statusline");c||(nMt(i,{recursive:!0}),Hve(tl(i,iF),JSON.stringify({statusLine:o??null},null,2))),s.statusLine={type:"command",command:a,padding:0},nMt(qve(r),{recursive:!0}),Hve(r,`${JSON.stringify(s,null,2)} `),console.error(`haiku statusline installed \u2192 ${r} command: ${a} - fallback saved: ${c?"(unchanged)":tl(i,iF)}`)}function fmr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=iMt(t,n);if(!cR(r)){console.error(`haiku statusline uninstall: no settings at ${r}`);return}let s;try{s=JSON.parse(rF(r,"utf8"))}catch{console.error(`haiku statusline uninstall: ${r} is not valid JSON`),process.exit(1)}let o=tl(i,iF),a=null;if(cR(o))try{a=JSON.parse(rF(o,"utf8")).statusLine}catch{}a?s.statusLine=a:delete s.statusLine,Fve(r,`${JSON.stringify(s,null,2)} + fallback saved: ${c?"(unchanged)":tl(i,iF)}`)}function fmr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=oMt(t,n);if(!cR(r)){console.error(`haiku statusline uninstall: no settings at ${r}`);return}let s;try{s=JSON.parse(rF(r,"utf8"))}catch{console.error(`haiku statusline uninstall: ${r} is not valid JSON`),process.exit(1)}let o=tl(i,iF),a=null;if(cR(o))try{a=JSON.parse(rF(o,"utf8")).statusLine}catch{}a?s.statusLine=a:delete s.statusLine,Hve(r,`${JSON.stringify(s,null,2)} `),console.error(`haiku statusline uninstalled \u2192 ${r} - restored: ${a?"original statusLine":"(none \u2014 removed)"}`)}async function pmr(e){let t=e[0];return t==="install"?dmr(e.slice(1)):t==="uninstall"?fmr(e.slice(1)):amr()}var iF,cmr,oMt=v(()=>{"use strict";Ci();VCt();$Ct();iF="statusline-fallback.json";cmr="@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[g8,...Ep]=process.argv.slice(2);if(g8==="mcp"){let e=Promise.resolve().then(()=>(HKe(),jKe)).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(),qKe)).then(i=>i.setHarness(t)):Promise.resolve();Promise.all([e,r]).then(()=>Promise.resolve().then(()=>(fCt(),Qpr))).catch(i=>{ms(i,{context:"mcp-bootstrap"}),console.error(`haiku mcp: ${i.message}`),Ef().finally(()=>process.exit(1))})}else if(g8==="hook"){let e=Ep[0];e||(console.error("Usage: haiku hook "),process.exit(1)),Promise.resolve().then(()=>(UCt(),LCt)).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 g8==="migrate"?Promise.resolve().then(()=>(qCt(),HCt)).then(e=>e.runMigrate(Ep)).catch(e=>{ms(e,{context:"migrate"}),console.error(`haiku migrate: ${e.message}`),Ef().finally(()=>process.exit(1))}):g8==="statusline"?Promise.resolve().then(()=>(oMt(),sMt)).then(e=>e.runStatusline(Ep)).catch(e=>{ms(e,{context:"statusline"}),process.env.HAIKU_STATUSLINE_DEBUG&&console.error(`[haiku statusline] handler error: ${e instanceof Error?`${e.message} + restored: ${a?"original statusLine":"(none \u2014 removed)"}`)}async function pmr(e){let t=e[0];return t==="install"?dmr(e.slice(1)):t==="uninstall"?fmr(e.slice(1)):amr()}var iF,cmr,cMt=v(()=>{"use strict";Ci();KCt();tMt();iF="statusline-fallback.json";cmr="@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[y8,...Ep]=process.argv.slice(2);if(y8==="mcp"){let e=Promise.resolve().then(()=>(BKe(),qKe)).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(),zKe)).then(i=>i.setHarness(t)):Promise.resolve();Promise.all([e,r]).then(()=>Promise.resolve().then(()=>(hCt(),Qpr))).catch(i=>{ms(i,{context:"mcp-bootstrap"}),console.error(`haiku mcp: ${i.message}`),Ef().finally(()=>process.exit(1))})}else if(y8==="hook"){let e=Ep[0];e||(console.error("Usage: haiku hook "),process.exit(1)),Promise.resolve().then(()=>(jCt(),FCt)).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 y8==="migrate"?Promise.resolve().then(()=>(zCt(),BCt)).then(e=>e.runMigrate(Ep)).catch(e=>{ms(e,{context:"migrate"}),console.error(`haiku migrate: ${e.message}`),Ef().finally(()=>process.exit(1))}):y8==="statusline"?Promise.resolve().then(()=>(cMt(),aMt)).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: